Update VTN Coordinator sources to the latest version. 27/5727/1
authorShigeru Yasuda <s-yasuda@da.jp.nec.com>
Mon, 24 Mar 2014 10:03:56 +0000 (19:03 +0900)
committerShigeru Yasuda <s-yasuda@da.jp.nec.com>
Mon, 24 Mar 2014 10:47:03 +0000 (19:47 +0900)
VTN Coordinator version is changed to 5.1.0.0-SNAPSHOT.

Change-Id: I6f76c22e5210ad5c7d97eb52ec23953aa1fe052d
Signed-off-by: Shigeru Yasuda <s-yasuda@da.jp.nec.com>
710 files changed:
coordinator/VERSION
coordinator/cmds/dbm/common/dbm_functions.in
coordinator/configure
coordinator/core/build/defs.mk
coordinator/core/build/rules.mk
coordinator/core/cmds/pfcd/Makefile
coordinator/core/cmds/pfcd/child.c
coordinator/core/configure
coordinator/core/include/pfc/ctype.h
coordinator/core/include/pfc/list.h
coordinator/core/include/pfc/module.h
coordinator/core/libs/libpfc/module.c
coordinator/core/libs/libpfc_util/proc_linux.c
coordinator/core/libs/libpfc_util/synch.c
coordinator/core/libs/libpfc_util/synch_linux.c
coordinator/core/test/libs/libpfc_util/Makefile
coordinator/core/test/libs/libpfc_util/test_list.cc
coordinator/core/test/libs/libpfc_util/test_misc.cc
coordinator/core/test/libs/libpfc_util/test_proc.cc [new file with mode: 0644]
coordinator/core/tools/src/exec-defs.mk
coordinator/core/tools/src/perl/mkjproject.PL
coordinator/dist/pom.xml
coordinator/include/unc/keytype.h
coordinator/include/unc/pfcdriver_ipc_enum.h
coordinator/include/unc/tc/external/tc_services.h
coordinator/include/unc/unc_base.h
coordinator/include/unc/unc_dataflow.h [new file with mode: 0644]
coordinator/include/unc/upll_errno.h
coordinator/include/unc/upll_ipc_enum.h
coordinator/include/unc/uppl_common.h
coordinator/include/uncxx/dataflow.hh [new file with mode: 0644]
coordinator/include/uncxx/tclib/tclib_interface.hh
coordinator/ipc/dataflow.ipct [new file with mode: 0644]
coordinator/ipc/pfcdriver.ipct
coordinator/ipc/uppl.ipct
coordinator/java/ROOT/Makefile [new file with mode: 0644]
coordinator/java/ROOT/src/org/opendaylight/vtn/root/VtnRedirectFilter.java [new file with mode: 0644]
coordinator/java/ROOT/webapp/META-INF/context.xml [new file with mode: 0644]
coordinator/java/ROOT/webapp/WEB-INF/web.xml [new file with mode: 0644]
coordinator/java/ROOT/webapp/index.html [new file with mode: 0644]
coordinator/java/tomcat/Makefile
coordinator/java/vtn-javaapi/Makefile
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/RestResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/annotation/UNCField.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/annotation/UNCVtnService.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/annotation/package-info.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/connection/IpcChannelConnection.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/connection/IpcConnPool.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/connection/package-info.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/constants/VtnServiceConsts.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/constants/VtnServiceIpcConsts.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/constants/VtnServiceJsonConsts.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/constants/package-info.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/exception/VtnServiceException.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/exception/VtnServiceExceptionHandler.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/exception/VtnServiceInitFailException.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/exception/package-info.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/init/VtnServiceConfiguration.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/init/VtnServiceInitManager.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/init/package-info.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/IpcRequestPacket.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/IpcRequestProcessor.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/IpcRollback.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/IpcStructFactory.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/conversion/IpAddressUtil.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/conversion/IpcDataUnitWrapper.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/conversion/IpcLogicalResponseFactory.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/conversion/IpcPhysicalResponseFactory.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/conversion/package-info.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/enums/IpcRequestPacketEnum.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/enums/PomStatsIndex.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/enums/UncCommonEnum.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/enums/UncDataType.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/enums/UncErrorBean.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/enums/UncIpcErrorCode.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/enums/UncJavaAPIErrorCode.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/enums/UncKeyTypeEnum.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/enums/UncOption1Enum.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/enums/UncOption2Enum.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/enums/UncPhysicalStructIndexEnum.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/enums/UncSYSMGEnums.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/enums/UncSessionEnums.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/enums/UncStructEnum.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/enums/UncStructIndexEnum.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/enums/UncTCEnums.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/enums/UncUPLLEnums.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/enums/UncUPPLEnums.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/enums/package-info.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/enums/upll_errors.properties
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/enums/uppl_errors.properties
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/package-info.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/beans/FreeCounterBean.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/beans/StaticRouteBean.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/beans/VBridgeBean.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/beans/VBridgeInterfaceBean.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/beans/VRouterBean.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/beans/VRouterInterfaceBean.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/beans/VtnBean.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/beans/package-info.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/constants/VtnServiceOpenStackConsts.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/constants/package-info.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/convertor/MapResourceGenerator.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/convertor/StaticRouteResourceGenerator.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/convertor/VbrResourcesGenerator.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/convertor/VrtResourcesGenerator.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/convertor/VtnResourcesGenerator.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/convertor/package-info.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dao/DestinationControllerDao.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dao/FreeCounterDao.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dao/StaticRouteDao.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dao/VBridgeDao.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dao/VBridgeInterfaceDao.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dao/VRouterDao.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dao/VRouterInterfaceDao.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dao/VtnDao.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dao/package-info.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dbmanager/ConnectionProperties.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dbmanager/DataBaseConnectionPool.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dbmanager/ResourceIdManager.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dbmanager/VtnOpenStackSQLFactory.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dbmanager/package-info.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/validation/DestinationControllerResourceValidator.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/validation/NetworkResourceValidator.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/validation/PortResourceValidator.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/validation/RouteResourceValidator.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/validation/RouterInterfaceResourceValidator.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/validation/RouterResourceValidator.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/validation/TenantResourceValidator.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/validation/package-info.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/package-info.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/reflect/AnnotationReflect.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/reflect/package-info.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/AbortCandidateConfigResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/AbstractResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/AcquireConfigModeResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/ApiVersionResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/AutoSaveResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/ClearStartupConfigurationResource.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/ConfigResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/DifferenceConfigResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/ReadLockResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/ReleaseConfigModeResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/SessionResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/SessionsResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/UTResource.java [deleted file]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/UserResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/ArpEntryResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/CoordinatorVersionResource.java [moved from coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/physical/VersionResource.java with 57% similarity]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/DhcpRelayInterfaceResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/DhcpRelayInterfacesResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/DhcpRelayResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/DhcpRelayServerResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/DhcpRelayServersResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/FlowFilterEntriesResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/FlowFilterEntryResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/FlowFilterResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/FlowFiltersResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/FlowListEntriesResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/FlowListEntryResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/FlowListResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/FlowListsResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/HostAddressResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/IpRouteResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/L2DomainResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/MacEntryResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/StaticIpRouteResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/StaticIpRoutesResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VBridgeFlowFilterEntriesResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VBridgeFlowFilterEntryResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VBridgeFlowFilterResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VBridgeFlowFiltersResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VBridgeInterfaceFlowFilterEntriesResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VBridgeInterfaceFlowFilterEntryResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VBridgeInterfaceFlowFilterResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VBridgeInterfaceFlowFiltersResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VBridgeInterfacePortMapResource.java [moved from coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/PortMapResource.java with 90% similarity]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VBridgeInterfaceResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VBridgeInterfacesResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VBridgeResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VBridgesResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VBypassInterfaceResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VBypassInterfacesResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VBypassResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VBypassesResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VLinkResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VLinksResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VRouterInterfaceFlowFilterEntriesResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VRouterInterfaceFlowFilterEntryResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VRouterInterfaceFlowFilterResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VRouterInterfaceFlowFiltersResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VRouterInterfaceResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VRouterInterfacesResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VRouterResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VRoutersResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VTepGroupResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VTepGroupsResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VTepInterfacePortMapResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VTepInterfaceResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VTepInterfacesResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VTepResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VTepsResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VTunnelInterfacePortMapResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VTunnelInterfaceResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VTunnelInterfacesResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VTunnelResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VTunnelsResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VlanMapResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VlanMapsResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VtnDataFlowResource.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VtnMappingResource.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VtnMappingsResource.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VtnResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VtnStationsResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VtnsResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/package-info.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/DestinationControllerResource.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/NetworkResource.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/NetworksResource.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/PortResource.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/PortsResource.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/RouteResource.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/RouterInterfaceResource.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/RouterInterfacesResource.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/RouterResource.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/RoutersResource.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/RoutesResource.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/TenantResource.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/TenantsResource.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/package-info.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/package-info.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/physical/AlarmResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/physical/BoundariesResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/physical/BoundaryResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/physical/ControllerDataFlowResource.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/physical/ControllerResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/physical/ControllersResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/physical/DataFlowResource.java [moved from coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/physical/LinkResource.java with 62% similarity]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/physical/DomainLogicalPortResource.java [deleted file]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/physical/DomainLogicalPortsResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/physical/DomainResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/physical/DomainsResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/physical/LinksResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/physical/SwitchPortResource.java [deleted file]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/physical/SwitchPortsResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/physical/SwitchResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/physical/SwitchesResource.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/physical/package-info.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/util/VtnIniParser.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/util/VtnServiceUtil.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/util/package-info.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/AbortCandidateConfigResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/ApiVersionResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/AutoSaveResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/ClearStartupConfigurationResourceValidator.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/CommonValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/ConfigModeResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/ConfigResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/DifferenceConfigResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/ReadLockResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/SessionResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/UserResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/VtnServiceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/ArpEntryResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/CoordinatorVersionResourceValidator.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/DhcpRelayResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/DhcpRelayServerResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/FlowFilterEntriesResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/FlowFilterEntryResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/FlowFilterResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/FlowListEntryResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/FlowListResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/HostAddressResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/InterfaceResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/IpRouteResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/L2DomainResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/MacEntryResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/PortMapResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/StaticIpRouteResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/VBridgeFlowFilterEntriesResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/VBridgeFlowFilterEntryResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/VBridgeResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/VBypassResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/VLanMapResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/VLinkResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/VRouterInterfaceResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/VRouterResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/VTepGroupResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/VTepResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/VTunnelResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/VtnDataFlowResourceValidator.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/VtnMappingResourceValidator.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/VtnResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/VtnStationsResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/package-info.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/package-info.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/physical/AlarmResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/physical/BoundaryResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/physical/ControllerDataFlowResourceValidator.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/physical/ControllerResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/physical/DataFlowResourceValidator.java [new file with mode: 0644]
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/physical/DomainLogicalPortResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/physical/DomainResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/physical/LinkResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/physical/SwitchPortResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/physical/SwitchResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/physical/VersionResourceValidator.java
coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/physical/package-info.java [new file with mode: 0644]
coordinator/java/vtn-webapi/Makefile
coordinator/java/vtn-webapi/src/mapmode.properties [new file with mode: 0644]
coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/constants/ApplicationConstants.java [moved from coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/enums/ApplicationConstants.java with 57% similarity]
coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/constants/package-info.java [new file with mode: 0644]
coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/endpoint/VtnServiceWebAPIServlet.java
coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/endpoint/package-info.java [new file with mode: 0644]
coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/enums/ContentTypeEnum.java
coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/enums/HttpErrorCodeEnum.java [new file with mode: 0644]
coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/enums/ResourcePathEnum.java
coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/enums/SessionEnum.java
coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/enums/package-info.java [new file with mode: 0644]
coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/exception/VtnServiceWebAPIException.java
coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/exception/package-info.java [new file with mode: 0644]
coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/pojo/SessionBean.java
coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/pojo/package-info.java [new file with mode: 0644]
coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/services/VtnServiceWebAPIController.java
coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/services/VtnServiceWebAPIHandler.java
coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/services/package-info.java [new file with mode: 0644]
coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/utils/ConfigurationManager.java
coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/utils/DataConverter.java
coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/utils/InitManager.java
coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/utils/VtnServiceCommonUtil.java
coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/utils/VtnServiceWebUtil.java
coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/utils/XMLTransformationUtil.java
coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/utils/package-info.java [new file with mode: 0644]
coordinator/java/vtn-webapi/src/pwd.properties [new file with mode: 0644]
coordinator/java/vtn-webapi/src/webapiconf.properties
coordinator/java/vtn-webapi/src/webapp_connection.properties
coordinator/modules/alarm/alarm.cc
coordinator/modules/alarm/include/alarm.hh
coordinator/modules/capa/capa_module.cc
coordinator/modules/capa/capa_module.hh
coordinator/modules/capa/ctrlr_capa.cfdef
coordinator/modules/capa/ctrlr_capa_defines.cc
coordinator/modules/capa/ctrlr_capability.cc
coordinator/modules/capa/include/capa_intf.hh
coordinator/modules/capa/include/ctrlr_capa_defines.hh
coordinator/modules/capa/pfc_capa.conf
coordinator/modules/dal/dal_bind_column_info.cc
coordinator/modules/dal/dal_bind_column_info.hh
coordinator/modules/dal/dal_bind_info.cc
coordinator/modules/dal/dal_bind_info.hh
coordinator/modules/dal/dal_conn_intf.hh
coordinator/modules/dal/dal_cursor.cc
coordinator/modules/dal/dal_defines.hh
coordinator/modules/dal/dal_dml_intf.hh
coordinator/modules/dal/dal_error_handler.cc
coordinator/modules/dal/dal_module.cc
coordinator/modules/dal/dal_odbc_mgr.cc
coordinator/modules/dal/dal_odbc_mgr.hh
coordinator/modules/dal/dal_query_builder.cc
coordinator/modules/dal/dal_query_builder.hh
coordinator/modules/dal/dal_schema.cc
coordinator/modules/dal/dal_schema.hh
coordinator/modules/dal/utils/table_creation.cc
coordinator/modules/dal/utils/table_creation.sh [new file with mode: 0644]
coordinator/modules/dal/utils/table_deletion.cc
coordinator/modules/dal/utils/upll_create_table.sql
coordinator/modules/dataflow/Makefile [new file with mode: 0644]
coordinator/modules/dataflow/dataflow.cc [new file with mode: 0644]
coordinator/modules/odcdriver/include/odc_link.hh
coordinator/modules/odcdriver/include/odc_port.hh
coordinator/modules/odcdriver/include/odc_switch.hh
coordinator/modules/odcdriver/include/odc_vbr.hh
coordinator/modules/odcdriver/include/odc_vbr_vlanmap.hh
coordinator/modules/odcdriver/include/odc_vbrif.hh
coordinator/modules/odcdriver/include/odc_vtn.hh
coordinator/modules/odcdriver/odc_link.cc
coordinator/modules/odcdriver/odc_mod.cc
coordinator/modules/odcdriver/odc_port.cc
coordinator/modules/odcdriver/odc_switch.cc
coordinator/modules/odcdriver/odc_vbr.cc
coordinator/modules/odcdriver/odc_vbr_vlanmap.cc
coordinator/modules/odcdriver/odc_vbrif.cc
coordinator/modules/odcdriver/odc_vtn.cc
coordinator/modules/tc/include/tc_db_handler.hh
coordinator/modules/tc/include/tc_lock.hh
coordinator/modules/tc/include/tc_module.hh
coordinator/modules/tc/include/tc_module_data.hh
coordinator/modules/tc/include/tc_operations.hh
coordinator/modules/tc/include/tcmsg.hh
coordinator/modules/tc/include/tcmsg_audit.hh
coordinator/modules/tc/tc.cfdef
coordinator/modules/tc/tc.conf
coordinator/modules/tc/tc_audit_operations.cc
coordinator/modules/tc/tc_db_handler.cc
coordinator/modules/tc/tc_lock.cc
coordinator/modules/tc/tc_module.cc
coordinator/modules/tc/tc_operations.cc
coordinator/modules/tc/tc_startup_operations.cc
coordinator/modules/tc/tcmsg.cc
coordinator/modules/tc/tcmsg_audit.cc
coordinator/modules/tclib/include/tclib_module.hh
coordinator/modules/tclib/include/tclib_msg_util.hh
coordinator/modules/tclib/include/tclib_struct_defs.hh
coordinator/modules/tclib/tclib_module.cc
coordinator/modules/tclib/tclib_msg_util.cc
coordinator/modules/upll/Makefile
coordinator/modules/upll/config_lock.cc
coordinator/modules/upll/config_lock.hh
coordinator/modules/upll/config_mgr.cc
coordinator/modules/upll/config_mgr.hh
coordinator/modules/upll/config_svc.cc
coordinator/modules/upll/config_svc.hh
coordinator/modules/upll/ctrlr_mgr.cc
coordinator/modules/upll/ctrlr_mgr.hh
coordinator/modules/upll/dbconn_mgr.cc [new file with mode: 0644]
coordinator/modules/upll/dbconn_mgr.hh [new file with mode: 0644]
coordinator/modules/upll/dhcprelay_if_momgr.cc
coordinator/modules/upll/dhcprelay_if_momgr.hh
coordinator/modules/upll/dhcprelay_server_momgr.cc
coordinator/modules/upll/dhcprelay_server_momgr.hh
coordinator/modules/upll/flowlist_entry_momgr.cc
coordinator/modules/upll/flowlist_entry_momgr.hh
coordinator/modules/upll/flowlist_momgr.cc
coordinator/modules/upll/flowlist_momgr.hh
coordinator/modules/upll/ipc_client_handler.cc [new file with mode: 0644]
coordinator/modules/upll/ipc_client_handler.hh [new file with mode: 0644]
coordinator/modules/upll/ipc_util.cc
coordinator/modules/upll/ipc_util.hh
coordinator/modules/upll/ipct_st.cc
coordinator/modules/upll/ipct_st.hh
coordinator/modules/upll/iproute_momgr.cc
coordinator/modules/upll/iproute_momgr.hh
coordinator/modules/upll/key_tree.cc
coordinator/modules/upll/key_tree.hh
coordinator/modules/upll/kt_util.cc
coordinator/modules/upll/kt_util.hh
coordinator/modules/upll/momgr_impl.cc
coordinator/modules/upll/momgr_impl.hh
coordinator/modules/upll/momgr_intf.cc
coordinator/modules/upll/momgr_intf.hh
coordinator/modules/upll/momgr_util.cc
coordinator/modules/upll/nwm_host_momgr.cc
coordinator/modules/upll/nwm_host_momgr.hh
coordinator/modules/upll/nwm_momgr.cc
coordinator/modules/upll/nwm_momgr.hh
coordinator/modules/upll/policingprofile_entry_momgr.cc
coordinator/modules/upll/policingprofile_entry_momgr.hh
coordinator/modules/upll/policingprofile_momgr.cc
coordinator/modules/upll/policingprofile_momgr.hh
coordinator/modules/upll/read_bulk.cc
coordinator/modules/upll/tclib_intf_impl.cc
coordinator/modules/upll/tclib_intf_impl.hh
coordinator/modules/upll/tx_mgr.cc
coordinator/modules/upll/upll.cfdef
coordinator/modules/upll/upll.conf
coordinator/modules/upll/upll.dep
coordinator/modules/upll/upll_util.hh
coordinator/modules/upll/upll_validation.hh
coordinator/modules/upll/vbr_flowfilter_entry_momgr.cc
coordinator/modules/upll/vbr_flowfilter_entry_momgr.hh
coordinator/modules/upll/vbr_flowfilter_momgr.cc
coordinator/modules/upll/vbr_flowfilter_momgr.hh
coordinator/modules/upll/vbr_if_flowfilter_entry_momgr.cc
coordinator/modules/upll/vbr_if_flowfilter_entry_momgr.hh
coordinator/modules/upll/vbr_if_flowfilter_momgr.cc
coordinator/modules/upll/vbr_if_flowfilter_momgr.hh
coordinator/modules/upll/vbr_if_momgr.cc
coordinator/modules/upll/vbr_if_momgr.hh
coordinator/modules/upll/vbr_if_policingmap_momgr.cc
coordinator/modules/upll/vbr_if_policingmap_momgr.hh
coordinator/modules/upll/vbr_momgr.cc
coordinator/modules/upll/vbr_momgr.hh
coordinator/modules/upll/vbr_policingmap_momgr.cc
coordinator/modules/upll/vbr_policingmap_momgr.hh
coordinator/modules/upll/vlanmap_momgr.cc
coordinator/modules/upll/vlanmap_momgr.hh
coordinator/modules/upll/vlink_momgr.cc
coordinator/modules/upll/vlink_momgr.hh
coordinator/modules/upll/vnode_child_momgr.cc
coordinator/modules/upll/vnode_child_momgr.hh
coordinator/modules/upll/vnode_momgr.cc
coordinator/modules/upll/vnode_momgr.hh
coordinator/modules/upll/vrt_if_flowfilter_entry_momgr.cc
coordinator/modules/upll/vrt_if_flowfilter_entry_momgr.hh
coordinator/modules/upll/vrt_if_flowfilter_momgr.cc
coordinator/modules/upll/vrt_if_flowfilter_momgr.hh
coordinator/modules/upll/vrt_if_momgr.cc
coordinator/modules/upll/vrt_if_momgr.hh
coordinator/modules/upll/vrt_momgr.cc
coordinator/modules/upll/vrt_momgr.hh
coordinator/modules/upll/vtep_grp_momgr.cc
coordinator/modules/upll/vtep_grp_momgr.hh
coordinator/modules/upll/vtep_if_momgr.cc
coordinator/modules/upll/vtep_if_momgr.hh
coordinator/modules/upll/vtep_momgr.cc
coordinator/modules/upll/vtep_momgr.hh
coordinator/modules/upll/vtepgrp_mem_momgr.cc
coordinator/modules/upll/vtepgrp_mem_momgr.hh
coordinator/modules/upll/vtn_dataflow_momgr.cc [new file with mode: 0644]
coordinator/modules/upll/vtn_dataflow_momgr.hh [new file with mode: 0644]
coordinator/modules/upll/vtn_flowfilter_entry_momgr.cc
coordinator/modules/upll/vtn_flowfilter_entry_momgr.hh
coordinator/modules/upll/vtn_flowfilter_momgr.cc
coordinator/modules/upll/vtn_flowfilter_momgr.hh
coordinator/modules/upll/vtn_momgr.cc
coordinator/modules/upll/vtn_momgr.hh
coordinator/modules/upll/vtn_policingmap_momgr.cc
coordinator/modules/upll/vtn_policingmap_momgr.hh
coordinator/modules/upll/vtunnel_if_momgr.cc
coordinator/modules/upll/vtunnel_if_momgr.hh
coordinator/modules/upll/vtunnel_momgr.cc
coordinator/modules/upll/vtunnel_momgr.hh
coordinator/modules/upll/vunk_if_momgr.cc
coordinator/modules/upll/vunk_if_momgr.hh
coordinator/modules/upll/vunk_momgr.cc
coordinator/modules/upll/vunk_momgr.hh
coordinator/modules/uppl/Makefile
coordinator/modules/uppl/controller_version.cc
coordinator/modules/uppl/include/controller_version.hh
coordinator/modules/uppl/include/ipc_client_configuration_handler.hh
coordinator/modules/uppl/include/ipc_client_logical_handler.hh
coordinator/modules/uppl/include/ipc_connection_manager.hh
coordinator/modules/uppl/include/ipct_util.hh
coordinator/modules/uppl/include/itc_audit_request.hh
coordinator/modules/uppl/include/itc_configuration_request.hh
coordinator/modules/uppl/include/itc_db_config.hh
coordinator/modules/uppl/include/itc_import_request.hh
coordinator/modules/uppl/include/itc_kt_base.hh
coordinator/modules/uppl/include/itc_kt_boundary.hh
coordinator/modules/uppl/include/itc_kt_controller.hh
coordinator/modules/uppl/include/itc_kt_ctr_dataflow.hh [new file with mode: 0644]
coordinator/modules/uppl/include/itc_kt_ctr_domain.hh
coordinator/modules/uppl/include/itc_kt_dataflow.hh [new file with mode: 0644]
coordinator/modules/uppl/include/itc_kt_link.hh
coordinator/modules/uppl/include/itc_kt_logical_member_port.hh
coordinator/modules/uppl/include/itc_kt_logicalport.hh
coordinator/modules/uppl/include/itc_kt_port.hh
coordinator/modules/uppl/include/itc_kt_root.hh
coordinator/modules/uppl/include/itc_kt_state_base.hh
coordinator/modules/uppl/include/itc_kt_switch.hh
coordinator/modules/uppl/include/itc_notification_request.hh
coordinator/modules/uppl/include/itc_read_request.hh
coordinator/modules/uppl/include/itc_state_change.hh
coordinator/modules/uppl/include/itc_transaction_request.hh
coordinator/modules/uppl/include/odbcm_common.hh
coordinator/modules/uppl/include/odbcm_connection.hh
coordinator/modules/uppl/include/odbcm_db_varbind.hh
coordinator/modules/uppl/include/odbcm_mgr.hh
coordinator/modules/uppl/include/odbcm_query_factory.hh
coordinator/modules/uppl/include/odbcm_utils.hh
coordinator/modules/uppl/include/phy_util.hh
coordinator/modules/uppl/include/physical_common_def.hh
coordinator/modules/uppl/include/physical_core.hh
coordinator/modules/uppl/include/physical_itc.hh
coordinator/modules/uppl/include/physical_itc_req.hh
coordinator/modules/uppl/include/physicallayer.hh
coordinator/modules/uppl/ipc_client_configuration_handler.cc
coordinator/modules/uppl/ipc_client_logical_handler.cc
coordinator/modules/uppl/ipc_connection_manager.cc
coordinator/modules/uppl/ipc_server_handler.cc
coordinator/modules/uppl/ipct_util.cc
coordinator/modules/uppl/itc_audit_request.cc
coordinator/modules/uppl/itc_configuration_request.cc
coordinator/modules/uppl/itc_db_config.cc
coordinator/modules/uppl/itc_import_request.cc
coordinator/modules/uppl/itc_kt_base.cc
coordinator/modules/uppl/itc_kt_boundary.cc
coordinator/modules/uppl/itc_kt_controller.cc
coordinator/modules/uppl/itc_kt_ctr_dataflow.cc [new file with mode: 0644]
coordinator/modules/uppl/itc_kt_ctr_domain.cc
coordinator/modules/uppl/itc_kt_dataflow.cc [new file with mode: 0644]
coordinator/modules/uppl/itc_kt_link.cc
coordinator/modules/uppl/itc_kt_logical_member_port.cc
coordinator/modules/uppl/itc_kt_logicalport.cc
coordinator/modules/uppl/itc_kt_port.cc
coordinator/modules/uppl/itc_kt_root.cc
coordinator/modules/uppl/itc_kt_state_base.cc
coordinator/modules/uppl/itc_kt_switch.cc
coordinator/modules/uppl/itc_notification_request.cc
coordinator/modules/uppl/itc_read_request.cc
coordinator/modules/uppl/itc_state_change.cc
coordinator/modules/uppl/itc_transaction_request.cc
coordinator/modules/uppl/odbcm_bind_controller.cc
coordinator/modules/uppl/odbcm_bind_port.cc
coordinator/modules/uppl/odbcm_bind_switch.cc
coordinator/modules/uppl/odbcm_connection.cc
coordinator/modules/uppl/odbcm_db_varbind.cc
coordinator/modules/uppl/odbcm_mgr.cc
coordinator/modules/uppl/odbcm_mgr_dboperations.cc
coordinator/modules/uppl/odbcm_query_factory.cc
coordinator/modules/uppl/odbcm_query_processor.cc
coordinator/modules/uppl/odbcm_utils.cc
coordinator/modules/uppl/phy_util.cc
coordinator/modules/uppl/physical_core.cc
coordinator/modules/uppl/physical_itc.cc
coordinator/modules/uppl/physicallayer.cc
coordinator/modules/uppl/unc_state_handler.cc
coordinator/modules/uppl/uppl.cfdef
coordinator/modules/uppl/uppl.conf
coordinator/modules/uppl/uppl.dep
coordinator/modules/uppl/uppl_ctr_capability.conf
coordinator/modules/usess/include/usess.hh
coordinator/modules/usess/include/usess_base_common.hh
coordinator/modules/usess/include/usess_conf_common.hh
coordinator/modules/usess/include/usess_conf_enable.hh
coordinator/modules/usess/include/usess_conf_session.hh
coordinator/modules/usess/include/usess_conf_user.hh
coordinator/modules/usess/include/usess_def.hh
coordinator/modules/usess/include/usess_enable.hh
coordinator/modules/usess/include/usess_session.hh
coordinator/modules/usess/include/usess_sessions.hh
coordinator/modules/usess/include/usess_user.hh
coordinator/modules/usess/include/usess_users.hh
coordinator/modules/usess/usess.cc
coordinator/modules/usess/usess_base_common.cc
coordinator/modules/usess/usess_conf_common.cc
coordinator/modules/usess/usess_conf_enable.cc
coordinator/modules/usess/usess_conf_session.cc
coordinator/modules/usess/usess_conf_user.cc
coordinator/modules/usess/usess_enable.cc
coordinator/modules/usess/usess_session.cc
coordinator/modules/usess/usess_sessions.cc
coordinator/modules/usess/usess_user.cc
coordinator/modules/usess/usess_users.cc
coordinator/modules/vtncacheutil/confignode.cc
coordinator/modules/vtncacheutil/include/confignode.hh
coordinator/modules/vtncacheutil/include/keytree.hh
coordinator/modules/vtncacheutil/include/vtn_conf_utility.hh
coordinator/modules/vtncacheutil/keytree.cc
coordinator/modules/vtndrvintf/controller_fw.cc
coordinator/modules/vtndrvintf/include/controller_fw.hh
coordinator/modules/vtndrvintf/include/driver/driver_command.hh
coordinator/modules/vtndrvintf/include/kt_handler.hh
coordinator/modules/vtndrvintf/include/request_template.hh
coordinator/modules/vtndrvintf/include/vtn_drv_transaction_handle.hh
coordinator/modules/vtndrvintf/vtn_drv_module.cc
coordinator/modules/vtndrvintf/vtn_drv_transaction_handle.cc
coordinator/sql/create_uppl_tables.sql
coordinator/sql/os_vtn_db_create.sql [new file with mode: 0644]
coordinator/sql/tc.sql
coordinator/sql/upll_create_table.sql
coordinator/test/modules/odcdriver/ut/odc_link_ut.cc
coordinator/test/modules/odcdriver/ut/odc_port_ut.cc
coordinator/test/modules/odcdriver/ut/odc_switch_ut.cc
coordinator/test/modules/odcdriver/ut/odc_vbr_if_ut.cc
coordinator/test/modules/odcdriver/ut/odc_vbr_ut.cc
coordinator/test/modules/odcdriver/ut/odc_vbr_vlanmap_ut.cc
coordinator/test/modules/odcdriver/ut/odc_vtn_ut.cc
coordinator/test/modules/stub/ContrllerFrameworkStub/controller_fw.hh
coordinator/test/modules/stub/ContrllerFrameworkStub/driver/driver_command.hh
coordinator/test/modules/stub/ContrllerFrameworkStub/kt_handler.hh
coordinator/test/modules/stub/ODBC/include/odbcm_mgr.hh
coordinator/test/modules/stub/ODBC/odbcm_mgr_stub.cc
coordinator/test/modules/stub/capa_module/capa_intf.hh [new file with mode: 0644]
coordinator/test/modules/stub/dal/dal_dml_intf.hh
coordinator/test/modules/stub/dal/dal_odbc_mgr.cc
coordinator/test/modules/stub/dal/dal_odbc_mgr.hh
coordinator/test/modules/stub/dal/dal_schema.hh
coordinator/test/modules/stub/include/cxx/pfcxx/ipc_client.hh
coordinator/test/modules/stub/include/cxx/pfcxx/ipc_server.hh
coordinator/test/modules/stub/include/cxx/pfcxx/synch.hh [new file with mode: 0644]
coordinator/test/modules/stub/include/uncxx/dataflow.hh [new file with mode: 0644]
coordinator/test/modules/stub/include/uncxx/unc_dataflow.h [new file with mode: 0644]
coordinator/test/modules/stub/misc/ipc_client.cc
coordinator/test/modules/stub/misc/ipc_server.cc
coordinator/test/modules/stub/stub_oper_utils.cc
coordinator/test/modules/stub/tclib_module/tclib_module.cc
coordinator/test/modules/stub/tclib_module/tclib_module.hh
coordinator/test/modules/tc/ut/test_tcauditoperations.cc
coordinator/test/modules/tc/ut/test_tcautosaveoperations.hh
coordinator/test/modules/tc/ut/test_tcconfigoperations.cc
coordinator/test/modules/tc/ut/test_tcconfigoperations.hh
coordinator/test/modules/tc/ut/test_tcdboperations.cc
coordinator/test/modules/tc/ut/test_tcdboperations.hh
coordinator/test/modules/tc/ut/test_tcmsg.hh
coordinator/test/modules/tc/ut/test_tcreadoperations.cc
coordinator/test/modules/tc/ut/test_tcreadoperations.hh
coordinator/test/modules/tc/ut/test_tcstartupoperations.hh
coordinator/test/modules/upll/ut/Makefile
coordinator/test/modules/upll/ut/ut_stub.h
coordinator/test/modules/upll/ut/vbr_if_momgr_ut.cc
coordinator/test/modules/upll/ut/vbr_momgr_ut.cc
coordinator/test/modules/upll/ut/vlanmap_stub.hh [new file with mode: 0644]
coordinator/test/modules/upll/ut/vlanmap_ut.cc [new file with mode: 0644]
coordinator/test/modules/upll/ut/vtn_momgr_ut.cc
coordinator/test/modules/uppl/utest/Boundary_ut.cc
coordinator/test/modules/uppl/utest/Controller_ut.cc
coordinator/test/modules/uppl/utest/Domain_ut.cc
coordinator/test/modules/uppl/utest/Link_ut.cc
coordinator/test/modules/uppl/utest/LogicalMemberPort_ut.cc
coordinator/test/modules/uppl/utest/LogicalPort_ut.cc
coordinator/test/modules/uppl/utest/Makefile
coordinator/test/modules/uppl/utest/PhysicalLayerStub.cc
coordinator/test/modules/uppl/utest/PhysicalLayerStub.hh
coordinator/test/modules/uppl/utest/Port_ut.cc
coordinator/test/modules/uppl/utest/Switch_ut.cc
coordinator/test/modules/uppl/utest/ut_stub.h
coordinator/test/modules/uppl/utest/ut_util.hh
coordinator/test/modules/uppl/utest/util.cc
coordinator/test/modules/vtncacheutil/ut/test_confignode.cc
coordinator/test/modules/vtncacheutil/ut/test_keytree.cc
coordinator/test/modules/vtndrvintf/controller/ut/controller_fw_ut.cc
coordinator/test/modules/vtndrvintf/request_template/ut/test_request_template.cc
coordinator/test/modules/vtndrvintf/transaction_handle/ut/vtn_drv_transaction_handle_ut.cc
coordinator/test/vtn_ft/controller.py
coordinator/test/vtn_ft/multi_ctr_mininet.py
coordinator/test/vtn_ft/resp_code.py [new file with mode: 0644]
coordinator/test/vtn_ft/switch_test.py
coordinator/test/vtn_ft/vbrif_portmap.py
coordinator/test/vtn_ft/vtn_vbr.py
coordinator/test/vtn_ft/vtn_vbr_vlanmap.py

index dec29f362ddafde58a9c1b5873ee684706907534..b7bcff9e90202bab40cbf6ea6e136f4f80d84364 100644 (file)
@@ -6,4 +6,4 @@
 # terms of the Eclipse Public License v1.0 which accompanies this
 # distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
 #
-5.0.0.0
+5.1.0.0
index 6585852e7390892cee02da7b319864acd58bb261..bdee1d6bf17ebd8ce00aae96d3f7c0fb1ff161c3 100644 (file)
@@ -66,7 +66,7 @@ ODBCINSTALLEDFILE=$DBMTMPDIR/unc_odbc_DSN.installed
 UNCDATASQLDIR=%INST_SQLDIR%
 DBLOGFILE=$DBMLOGDIR/unc_db_script.log
 
-PGCTL_START_WAIT=333
+PGCTL_START_WAIT=60
 PGCTL_STOP_WAIT=180
 
 clm_date() { date +'%y-%m-%d %H:%M:%S.%N'; }
index 9be399d9c055b42f5aa7d456b9563ac88ea237d1..4c2f0d346bc90d6608b1bdf97f6679049a7c1355 100755 (executable)
@@ -85,12 +85,19 @@ use constant        JSON_C_VERSION          => '0.10';
 # Define required Java libraries.
 @JAVA_LIBSPEC = ({KEY => 'gson', DESC => 'Google gson',
                  NAME => 'GOOGLE_GSON', FILEPAT => qr(.*gson.*\.jar$),
-                 FNAME => 'google-gson.jar',
                  REQUIRED_CLASS => 'com/google/gson/JsonObject.class'},
                 {KEY => 'org-json', DESC => 'org.json',
                  NAME => 'ORG_JSON', FILEPAT => qr(.*json.*\.jar$),
-                 FNAME => 'org-json.jar',
-                 REQUIRED_CLASS => 'org/json/JSONObject.class'});
+                 REQUIRED_CLASS => 'org/json/JSONObject.class'},
+                {KEY => 'postgresql-jdbc', DESC => 'PostgreSQL JDBC driver',
+                 NAME => 'POSTGRESQL_JDBC',
+                 FILEPAT => qr(postgresql-.*-jdbc.*\.jar$),
+                 REQUIRED_CLASS => 'org/postgresql/PGConnection.class'},
+                {KEY => 'commons-net', DESC => 'Apache Commons Net library',
+                 NAME => 'COMMONS_NET',
+                 FILEPAT => qr(commons-net-.*\.jar$),
+                 REQUIRED_CLASS =>
+                         'org/apache/commons/net/util/SubnetUtils.class'});
 
 # Define required Apache Tomcat libraries.
 @TOMCAT_LIBSPEC = ({NAME => 'TOMCAT_SERVLET_API',
@@ -1412,6 +1419,14 @@ OUT
                   "Specify absolute path to org.json Java library.",
                   arg => OptSpec::OPTARG_FILE, auto => 1, unc => 1,
                   check => 'checkAbsPath'],
+                 [OPTTYPE_STRING, 'postgresql-jdbc',
+                  "Specify absolute path to PostgreSQL JDBC driver.",
+                  arg => OptSpec::OPTARG_FILE, auto => 1, unc => 1,
+                  check => 'checkAbsPath'],
+                 [OPTTYPE_STRING, 'commons-net',
+                  "Specify absolute path to Apache Commons Net library.",
+                  arg => OptSpec::OPTARG_FILE, auto => 1, unc => 1,
+                  check => 'checkAbsPath'],
                );
 
 
@@ -2898,6 +2913,7 @@ sub check_jar($\%\%$)
 
        my $vname = $spec->{NAME};
        $vars->{$vname} = $path;
+       $spec->{FNAME} = basename($path) unless ($spec->{FNAME});
 
        return undef;
 }
index 46289ac1ea4a7882f785bf4952fb0caeba29b12e..a6e1d8f329a77abfa9f488d9babe528ae7a7063c 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2010-2013 NEC Corporation
+# Copyright (c) 2010-2014 NEC Corporation
 # All rights reserved.
 # 
 # This program and the accompanying materials are made available under the
@@ -161,7 +161,8 @@ endif       # DEBUG_BUILD
 # Note that CPPFLAGS is applied to both C and C++ compilation.
 CC_DEFS                = $(CC_FEATURE_DEFS) $(CC_DEBUG_DEFS) $(EXTRA_CPPFLAGS)
 CC_INCLUDES    = $(CC_INCDIRS_PREP:%=-I%) $(OBJS_INCDIRS:%=-I$(OBJROOT)/%)
-CC_INCLUDES    += $(CC_INCDIRS:%=-I$(SRCROOT)/%) $(EXTRA_INCDIRS:%=-I%)
+CC_INCLUDES    += $(CC_INCDIRS:%=-I$(SRCROOT)/%) $(OPENSSL_INCDIR:%=-I%)
+CC_INCLUDES    +=  $(EXTRA_INCDIRS:%=-I%)
 CPPFLAGS       = $(CPPFLAGS_ALL) $(CC_DEFS) $(CC_INCLUDES)
 CXX_DEFS       = $(EXTRA_CXX_CPPFLAGS)
 CXX_INCLUDES   = $(CXX_INCDIRS:%=-I$(SRCROOT)/%) $(BOOST_INCDIR:%=-I%)
@@ -197,7 +198,8 @@ ASFLAGS             = -x assembler-with-cpp
 PFC_EXTLIBDIRS = $(PFC_EXTLIBS:%=$(OBJROOT)/ext/%)
 
 # Library search path for runtime linker.
-LD_RUNTIME_DIR = $(EXTRA_RUNTIME_DIR) $(INST_LIBDIR) $(EXTERNAL_RUNPATH)
+LD_RUNTIME_DIR = $(EXTRA_RUNTIME_DIR) $(OPENSSL_RUNPATH) $(INST_LIBDIR)
+LD_RUNTIME_DIR += $(EXTERNAL_RUNPATH)
 LD_RPATH       = $(filter-out $(DEFAULT_LIBPATH), $(abspath $(LD_RUNTIME_DIR)))
 
 # Linker option to disallow unresolved symbol.
@@ -212,7 +214,8 @@ LD_ZDEFS    = -z defs
 # LD_LDFLAGS:          Linker options to be passed via "-Wl".
 # EXTRA_LDFLAGS:       Extra flags to be passed to linker.
 LD_LIBDIRS     = $(LINK_LIBDIR) $(OBJTREE_LIBDIRS:%=$(OBJROOT)/%)
-LD_LIBDIRS     += $(PFC_EXTLIBDIRS) $(EXTRA_LIBDIRS)
+LD_LIBDIRS     += $(OPENSSL_LIBDIR) $(PFC_EXTLIBDIRS)
+LD_LIBDIRS     += $(filter-out $(DEFAULT_LIBPATH),$(abspath $(EXTRA_LIBDIRS)))
 LDFLAGS_RPATH  = $(LD_RPATH:%=-Wl,-rpath,%)
 LDFLAGS                = $(LD_LIBDIRS:%=-L%) $(LDFLAGS_RPATH) $(LD_LDFLAGS:%=-Wl,%)
 LDFLAGS                += $(LD_MODE) $(EXTRA_LDFLAGS)
index e268d17616976202592647e207987c5a636130e4..c66565b880c1968431af20df0884d683ed547df9 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2010-2013 NEC Corporation
+# Copyright (c) 2010-2014 NEC Corporation
 # All rights reserved.
 # 
 # This program and the accompanying materials are made available under the
@@ -53,7 +53,8 @@ endif # !empty(LINK_COPYRIGHT)
 # If C++ source exists and boost library is specified by BOOST_LIBS,
 # boost library is passed to linker.
 ifneq  ($(strip $(BOOST_LIBS)),)
-CXX_LDLIBS     = $(BOOST_LIBDIR:%=-L%) $(BOOST_LIBS)
+CXX_LDLIBS             = $(BOOST_LIBDIR:%=-L%) $(BOOST_LIBS)
+EXTRA_RUNTIME_DIR      += $(BOOST_LIBDIR)
 endif  # !empty(BOOST_LIBS)
 
 # make clean: Remove files generated by build process.
index 2c67042b1c19a61559dfbb230a1e5dcdc588f3da..160e6d10e5d0f25276d65f0a840b353617375e3b 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2010-2013 NEC Corporation
+# Copyright (c) 2010-2014 NEC Corporation
 # All rights reserved.
 # 
 # This program and the accompanying materials are made available under the
@@ -50,6 +50,7 @@ LDFLAGS               += $(EXT_LIBDIRS:%=-Wl,-rpath-link,%)
 
 PFC_LIBS       = libpfc libpfc_cmd libpfc_util libpfc_ipcsrv libpfc_ipcclnt
 LDLIBS         += -ldl
+LDLIBS_PREP    = $(PFCD_EXTRA_LDLIBS)
 
 # Embed build timestamp.
 # Note that this always causes rebuild of pfcd.
index f0124815a557e1e3d95ccbe39ba3534d3c3f8b8d..2fe2b2b9444395f5fde1906d631740ae958519fe 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011-2013 NEC Corporation
+ * Copyright (c) 2011-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -362,9 +362,11 @@ child_alloc(void)
                /* Initialize reference counter for callback and flags. */
                cep->ce_ncallbacks = 0;
                cep->ce_flags = 0;
+
+               return &cep->ce_cmd;
        }
 
-       return &cep->ce_cmd;
+       return NULL;
 }
 
 /*
index d1ea65a11f8627bebf3c6b4f82283069c6d30a43..7f47099ab7b0a32c59553a26df0d6a192d39ca68 100755 (executable)
@@ -23,7 +23,7 @@ use vars qw(%COMMAND_SPEC %OSTYPE %OS_CONF %GCC_OSTYPE %ARCH %GCC_ARCH @PATH
            %DEFAULT_OSARCH_LIBPATH @DEFAULT_LIBPATH @LIBDIR_NAMES
            $PFC_PRODUCT_NAME %MAKEVAR_RESV @LINUX_DIST $PFC_SCM_REVISION
            @OPENSSL_TESTS @CONFIG_TESTS @CFLAGS_TESTS %REQUIRED_CFLAGS
-           @UNLINK_ON_ERROR $YEAR_RANGE @JAVA_LIBRARY_PATH);
+           @UNLINK_ON_ERROR $YEAR_RANGE @JAVA_LIBRARY_PATH %MAKEVAR_OP);
 
 use Cwd qw(abs_path);
 use DirHandle;
@@ -2417,7 +2417,7 @@ sub check_gtest_config($);
 sub compile_and_exec($%);
 sub check_perl($);
 sub check_boost($);
-sub check_openssl($);
+sub check_openssl($\@);
 sub check_openssl_const(%);
 sub check_cflags_tests();
 sub check_config_tests(\@$\%);
@@ -2441,6 +2441,7 @@ sub check_gcc_multiarch($);
 sub check_gcc_option($$$$$);
 sub check_gcc_ld($);
 sub check_os_arch($$$$);
+sub write_makevar($$$);
 sub create_config_mk($\%);
 sub create_config_pl(\%);
 sub create_java_config_mk($\%);
@@ -3565,6 +3566,9 @@ OUT
                  [OPTTYPE_INST, 'javadir',
                   "Installation directory for Java programs.",
                   dname => 'java', relative => 'libdir'],
+                 [OPTTYPE_INST, 'certsdir',
+                  "Installation directory for Certification Authorities.",
+                  dname => 'certs', relative => 'sysconfdir'],
 
                  [OPTTYPE_STRING, 'c-optimize',
                   "Specify C compiler option for optimization.",
@@ -3631,8 +3635,11 @@ OUT
                   "Specify installation prefix of boost.",
                   arg => OptSpec::OPTARG_DIR, auto => 1],
                  [OPTTYPE_STRING, 'openssl',
-                  "Specify installation prefix of OpenSSL.\n",
+                  "Specify installation prefix of OpenSSL.",
                   arg => OptSpec::OPTARG_DIR, auto => 1],
+                 [OPTTYPE_STRING, 'openssl-runpath',
+                  'Specify runtime library path for OpenSSL libraries.',
+                  arg => OptSpec::OPTARG_PATH],
                  [OPTTYPE_STRING, 'shell',
                   "Specify absolute path to bourne shell on the target " .
                   "system.",
@@ -3718,6 +3725,10 @@ OUT
                  [OPTTYPE_BOOL, 'tidlog',
                   "Enable or disable thread ID logging in the PFC log.",
                   default => 1],
+
+                 [OPTTYPE_STRING, 'build-type-suffix',
+                  "Specify an arbitrary string to be added to build type " .
+                  "suffix."],
                );
 
        sub new
@@ -4029,8 +4040,9 @@ MAIN:
        my $perl = $conf->get('perl');
        check_perl($perl);
 
+       my (@hdefs);
        my $boost_var = check_boost($conf);
-       my $openssl_var = check_openssl($conf);
+       my $openssl_var = check_openssl($conf, @hdefs);
        my $runpath = check_runpath($conf);
 
        my $cfdef_arch = $arch;
@@ -4141,7 +4153,6 @@ MAIN:
        }
 
        # Check system configuration.
-       my (@hdefs);
        check_cflags_tests();
        check_config_tests(@hdefs, $os, %vars);
 
@@ -5136,11 +5147,9 @@ OUT
        return \%vars;
 }
 
-sub check_openssl($)
+sub check_openssl($\@)
 {
-       my ($conf) = @_;
-
-       return {} unless ($conf->isUNC());
+       my ($conf, $hdefs) = @_;
 
        my $spec = $conf->getSpec('openssl');
        my $prefix = $spec->value();
@@ -5179,14 +5188,25 @@ sub check_openssl($)
        undef $incdir if (is_default_header_path($incdir));
 
        my (%opts) = (PREFIX => [$prefix]);
+       my (@cppflags);
+       push(@cppflags, '-I' . $incdir) if ($incdir);
+       $opts{CPPFLAGS} = \@cppflags;
+       $opts{CODE} = <<'OUT';
+#include <openssl/crypto.h>
+
+int
+main(int argc, char **argv)
+{
+       SSLeay();
+       return;
+}
+OUT
        my ($libname, $libdir) = check_library('crypto', %opts);
-       error("OpenSSL library is not found.") unless ($libdir);
+       error("OpenSSL libcrypto library is not found.") unless ($libdir);
        undef $libdir if (is_default_library_path($libdir));
 
        my $gcc = $COMMAND_SPEC{gcc}->{PATH};
-       my (@cppflags, @ldflags);
-
-       push(@cppflags, '-I' . $incdir) if ($incdir);
+       my (@ldflags);
        push(@ldflags, '-L' . $libdir, '-Wl,-rpath,' . $libdir) if ($libdir);
        (%opts) = (CC => $gcc, CFLAGS => $CC_MODE);
        $opts{CPPFLAGS} = \@cppflags;
@@ -5198,17 +5218,24 @@ sub check_openssl($)
                $opts{CC_ERROR} = \@errout;
                my $out;
                my ($checking, $source) = ($test->{CHECK}, $test->{CODE});
+               my $libs = $test->{LIBS} || '-lcrypto';
+               $opts{LIBS} = $libs;
 
                checking($checking);
                eval {
                        $out = compile_and_exec($source, %opts);
                };
                if ($@) {
-                       print "unknown\n";
-                       if (@errout) {
-                               print "\n", @errout, "\n";
+                       if ($test->{IGNORE_ERROR}) {
+                               $out = ["NO:Compilation failed\n"];
+                       }
+                       else {
+                               print "unknown\n";
+                               if (@errout) {
+                                       print "\n", @errout, "\n";
+                               }
+                               error("OpenSSL test failed: $@");
                        }
-                       error("OpenSSL test failed: $@");
                }
 
                my $line = $out->[0];
@@ -5219,13 +5246,37 @@ sub check_openssl($)
                        error($1);
                }
 
-               $line =~ s,^OK:,,;
-               print $line, "\n";
+               my $value;
+               if ($line =~ m,^NO(:(.+))?$,o) {
+                       my $msg = ($2) ? " ($2)" : '';
+
+                       print "no$msg\n";
+                       my $mandatory = $test->{MANDATORY};
+                       error($mandatory) if ($mandatory);
+               }
+               elsif ($line =~ m,^VALUE:(.+)$,o) {
+                       $value = $1;
+                       print $value, "\n";
+               }
+               elsif ($line =~ m,^OK:(.+)$,o) {
+                       print $1, "\n";
+                       $value = 1;
+               }
+               else {
+                       error("Unexpected output: $line");
+               }
+
+               my ($name, $desc) = ($test->{DEFINE}, $test->{DESC});
+               push(@$hdefs, ConfDef->new($name, $value, $desc)) if ($name);
        }
 
        my (%vars) = (OPENSSL_INCDIR => $incdir, OPENSSL_LIBDIR => $libdir,
                      OPENSSL_PREFIX => $prefix,
                      OPENSSL_CONST => check_openssl_const(%opts));
+       my $runpath = $conf->get('openssl-runpath');
+       $runpath = '$(OPENSSL_LIBDIR)' unless ($runpath);
+       $vars{OPENSSL_RUNPATH} = $runpath;
+       $MAKEVAR_OP{OPENSSL_RUNPATH} = '=';
 
        return \%vars;
 }
@@ -5260,6 +5311,9 @@ main(int argc, char **argv)
        DEFCONST(EVP_MAX_KEY_LENGTH);
        DEFCONST(EVP_MAX_IV_LENGTH);
 
+       DEFCONST(CRYPTO_LOCK);
+       DEFCONST(CRYPTO_UNLOCK);
+
        return 0;
 }
 OUT
@@ -5892,7 +5946,7 @@ sub check_library($\%)
 {
        my ($libname, $args) = @_;
 
-       checking("for $libname library");
+       checking("for lib$libname library");
 
        my $code = $args->{CODE};
        unless ($code) {
@@ -5912,17 +5966,25 @@ OUT
        $args->{CFLAGS} = $CC_MODE unless ($cflags);
        $args->{CC_ONLY} = 1;
 
-       my $prefix = $args->{PREFIX} || [];
-       foreach my $pfx (@$prefix, '/') {
-               foreach my $dir (@LIBDIR_NAMES) {
-                       my $path = canonicalize_path("$pfx/$dir");
-                       my $libname = check_library_impl($libname, $path,
-                                                        %$args);
-                       if ($libname) {
-                               print "$path\n";
-                               return ($libname, $path);
+       my $libdirs = $args->{LIBDIRS};
+       unless ($libdirs) {
+               my $prefix = $args->{PREFIX} || [];
+               my (@dirs);
+               foreach my $pfx (@$prefix, '/') {
+                       foreach my $dir (@LIBDIR_NAMES) {
+                               my $path = canonicalize_path("$pfx/$dir");
+                               push(@dirs, $path) if (-d $path);
                        }
                }
+               $libdirs = \@dirs;
+       }
+
+       foreach my $path (@$libdirs) {
+               my $libname = check_library_impl($libname, $path, %$args);
+               if ($libname) {
+                       print "$path\n";
+                       return ($libname, $path);
+               }
        }
 
        print "not found\n";
@@ -5935,7 +5997,8 @@ sub check_library_impl($$\%)
        my ($libname, $path, $args) = @_;
 
        my (%opts) = (%$args);
-       $opts{LDFLAGS} = '-L' . $path;
+       my (@ldflags) = ('-L' . $path, '-Wl,-rpath,' . $path);
+       $opts{LDFLAGS} = \@ldflags;
        my $code = $args->{CODE};
 
        $opts{LIBS} = '-l' . $libname;
@@ -6226,6 +6289,14 @@ sub check_os_arch($$$$)
        return ($os, $arch, $multiarch);
 }
 
+sub write_makevar($$$)
+{
+       my ($fh, $name, $value) = @_;
+
+       my $op = $MAKEVAR_OP{$name} || ':=';
+       $fh->printf("%s\t\t%s %s\n", $name, $op, $value);
+}
+
 sub create_config_mk($\%)
 {
        my ($conf, $vars) = @_;
@@ -6257,18 +6328,14 @@ OUT
 
        foreach my $vname (sort(keys(%$vars))) {
                my $value = $vars->{$vname};
-               $fh->print(<<OUT);
-$vname         := $value
-OUT
+               write_makevar($fh, $vname, $value);
        }
        $fh->print("\n");
 
        foreach my $key (sort(@{$conf->getInstDirKeys()})) {
                my $dir = $conf->get($key);
                my $vname = make_symbol('INST_', $key);
-               $fh->print(<<OUT);
-$vname         := $dir
-OUT
+               write_makevar($fh, $vname, $dir);
        }
        $fh->print("\n");
 
@@ -6278,9 +6345,7 @@ OUT
                        my $var = uc($key);
                        my $path = $spec->{PATH};
                        next unless ($path);
-                       $fh->print(<<OUT);
-$var           := $path
-OUT
+                       write_makevar($fh, $var, $path);
                }
        }
 
@@ -6352,9 +6417,7 @@ OUT
                if ($key eq 'ANT') {
                        $key = 'ANT_PATH';
                }
-               $fh->print(<<OUT);
-$key           := $value
-OUT
+               write_makevar($fh, $key, $value);
        }
 
        my $junit = $jenv->{JAVA_JUNIT};
@@ -6425,14 +6488,22 @@ OUT
 OUT
        }
 
+       my $ssuffix;
+       my $suff = $conf->get('build-type-suffix');
+       if ($suff) {
+               $ssuffix = ' ' . stringify('-' . $suff);
+       }
+
        $fh->print(<<OUT);
 /* Version suffix which represents build type. */
 #ifdef PFC_VERBOSE_DEBUG
-#define        PFC_BUILD_TYPE_SUFFIX   "-debug"
+#define        PFC_DEBUG_BUILD_TYPE_SUFFIX     "-debug"
 #else  /* !PFC_VERBOSE_DEBUG */
-#define        PFC_BUILD_TYPE_SUFFIX   ""
+#define        PFC_DEBUG_BUILD_TYPE_SUFFIX     ""
 #endif /* PFC_VERBOSE_DEBUG */
 
+#define        PFC_BUILD_TYPE_SUFFIX   PFC_DEBUG_BUILD_TYPE_SUFFIX$ssuffix
+
 /* PFC installation root. */
 #define        PFC_ROOTDIR     $sprefix
 
index 669f47b343a9fd4b3799025e6dc0e2880739baa0..2ab53364ed3847871b60eef120b0378a853c2b1f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -388,7 +388,7 @@ pfc_tolower_u(uint8_t c)
 
 /*
  * static inline uint8_t PFC_FATTR_ALWAYS_INLINE
- * pfc_toupper(uint8_t c)
+ * pfc_toupper_u(uint8_t c)
  *     Convert the character specified by `c' to upper case, if possible.
  *
  * Calling/Exit State:
index bcd2446b65fd707671959bf656b5e9c2bad5c0e4..c5155eb762a072900dcaf46791b68c19e68b58ac 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010-2013 NEC Corporation
+ * Copyright (c) 2010-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -177,24 +177,34 @@ pfc_list_move_all(pfc_list_t *head, pfc_list_t *newhead)
 /*
  * List iterator.
  */
-#define        PFC_LIST_FOREACH(head, var)                                     \
-       for ((var) = (head)->pl_next; (var) != (head); (var) = (var)->pl_next)
-#define        PFC_LIST_REV_FOREACH(head, var)                                 \
-       for ((var) = (head)->pl_prev; (var) != (head); (var) = (var)->pl_prev)
+#define        PFC_LIST_FOREACH_FROM(head, from, var)                          \
+       for ((var) = (from); (var) != (head); (var) = (var)->pl_next)
+#define        PFC_LIST_REV_FOREACH_FROM(head, from, var)                      \
+       for ((var) = (from); (var) != (head); (var) = (var)->pl_prev)
+
+#define        PFC_LIST_FOREACH(head, var)                             \
+       PFC_LIST_FOREACH_FROM(head, (head)->pl_next, var)
+#define        PFC_LIST_REV_FOREACH(head, var)                         \
+       PFC_LIST_REV_FOREACH_FROM(head, (head)->pl_prev, var)
 
 /*
  * List iterator that allow removal of `var'.
  * One more variable must be specified to preserve next or previous link.
  */
-#define        PFC_LIST_FOREACH_SAFE(head, var, next)                          \
-       for ((var) = (head)->pl_next;                                   \
+#define        PFC_LIST_FOREACH_SAFE_FROM(head, from, var, next)               \
+       for ((var) = (from);                                            \
             (var) != (head) && ((next) = (var)->pl_next, 1);           \
             (var) = (next))
-#define        PFC_LIST_REV_FOREACH_SAFE(head, var, prev)                      \
-       for ((var) = (head)->pl_prev;                                   \
+#define        PFC_LIST_REV_FOREACH_SAFE_FROM(head, from, var, prev)           \
+       for ((var) = (from);                                            \
             (var) != (head) && ((prev) = (var)->pl_prev, 1);           \
             (var) = (prev))
 
+#define        PFC_LIST_FOREACH_SAFE(head, var, next)                          \
+       PFC_LIST_FOREACH_SAFE_FROM(head, (head)->pl_next, var, next)
+#define        PFC_LIST_REV_FOREACH_SAFE(head, var, prev)                      \
+       PFC_LIST_REV_FOREACH_SAFE_FROM(head, (head)->pl_prev, var, prev)
+
 PFC_C_END_DECL
 
 #endif /* !_PFC_LIST_H */
index 4bc74fa16ee4a73d5aadf4ec240d2efa83f5bafa..4d05f2235f79fa036af0230e5b140bd1b54ab2ac 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010-2013 NEC Corporation
+ * Copyright (c) 2010-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
index 5bd10490c65a3ec37008669e2f8d228521e6d4a2..3f48955557799623ab5cf809a0ad01aef480af58 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010-2013 NEC Corporation
+ * Copyright (c) 2010-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
index 5160afa16a5dd36d2d93c4a00b6a356950a0da4f..285d3ecccbf6d63ce539d47d147c0e64452d8732 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010-2013 NEC Corporation
+ * Copyright (c) 2010-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -163,6 +163,9 @@ pfc_proc_getcmdline(pid_t pid, pfc_listm_t *listp)
        err = proc_buf_readline(&pbuf, fp);
        fclose(fp);
        if (PFC_EXPECT_FALSE(err != 0)) {
+               if (err < 0) {
+                       err = ENODATA;
+               }
                goto out;
        }
 
index aefdb9ddd177e4cab8d882718f51fd521d1e379f..dba92bd998b9a0e6a02432262f3cabbc03f4c432 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010-2013 NEC Corporation
+ * Copyright (c) 2010-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -50,7 +50,7 @@ pfc_mutex_init(pfc_mutex_t *mutexp, pfc_mutextype_t type)
                err = pthread_mutexattr_settype(&attr,
                                                PTHREAD_MUTEX_RECURSIVE);
                if (PFC_EXPECT_FALSE(err != 0)) {
-                       return err;
+                       goto out;
                }
        }
        else if (USE_ERRORCHECK_MUTEX) {
@@ -58,11 +58,16 @@ pfc_mutex_init(pfc_mutex_t *mutexp, pfc_mutextype_t type)
                err = pthread_mutexattr_settype(&attr,
                                                PTHREAD_MUTEX_ERRORCHECK);
                if (PFC_EXPECT_FALSE(err != 0)) {
-                       return err;
+                       goto out;
                }
        }
 
-       return pthread_mutex_init((pthread_mutex_t *)mutexp, &attr);
+       err = pthread_mutex_init((pthread_mutex_t *)mutexp, &attr);
+
+out:
+       pthread_mutexattr_destroy(&attr);
+
+       return err;
 }
 
 /*
index 90e20df12e041e701c5d55b601a26c6d80849ba1..e924d4f0a87578b4503a1a56dd10a3e776764850 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010-2013 NEC Corporation
+ * Copyright (c) 2010-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -40,11 +40,13 @@ pfc_cond_init(pfc_cond_t *condp)
 
        /* Use monotonic clock. */
        err = pthread_condattr_setclock(&cattr, CLOCK_MONOTONIC);
-       if (PFC_EXPECT_FALSE(err != 0)) {
-               return err;
+       if (PFC_EXPECT_TRUE(err == 0)) {
+               err = pthread_cond_init((pthread_cond_t *)condp, &cattr);
        }
 
-       return pthread_cond_init((pthread_cond_t *)condp, &cattr);
+       pthread_condattr_destroy(&cattr);
+
+       return err;
 }
 
 /*
index 466a385277206a5232df64bdc07e29db1142b3e4..12139017fc35714f266b1df8255db7a5dff279c6 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2012-2013 NEC Corporation
+# Copyright (c) 2012-2014 NEC Corporation
 # All rights reserved.
 # 
 # This program and the accompanying materials are made available under the
@@ -84,7 +84,8 @@ CXX_SOURCES   =                       \
        test_hash_util.cc               \
        test_pseudo_rand.cc             \
        test_pidfile.cc                 \
-       test_time.cc
+       test_time.cc                    \
+       test_proc.cc
 
 CXX_SOURCES    +=              \
        child.cc                \
index d59d337f93f3bb088478ae1380ad1ccbc5d1ce5f..a5abdf3b5e47a7a0e41c078a8d5b77717a8e3e5b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010-2013 NEC Corporation
+ * Copyright (c) 2010-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -15,6 +15,7 @@
 #include <sys/stat.h>
 #include <fcntl.h>
 #include <unistd.h>
+#include <list>
 
 #include <pfc/base.h>
 #include <pfc/list.h>
@@ -33,6 +34,16 @@ typedef struct {
     int        data;
 } list_ent_t;
 
+#define LISTENT_PTR(elem)                               \
+    PFC_CAST_CONTAINER((elem), list_ent_t, list_hdr)
+
+#define LISTENT_SETUP(head, ent, i)                     \
+    do {                                                \
+        (ent)->data = (i);                              \
+        pfc_list_push_tail((head), &(ent)->list_hdr);   \
+    } while (0)
+
+typedef std::list<int>  intlist_t;
 
 /*
  *
@@ -44,6 +55,9 @@ PFC_ATTR_UNUSED static void dump_list (pfc_list_t *head);
 static int  list_size (pfc_list_t *head);
 static void verify_size (pfc_list_t *head, int size);
 static void verify_links (pfc_list_t *head);
+static void verify_list_ent(pfc_list_t *head, intlist_t &required);
+static void setup_list_ent(list_ent_t *entries, size_t nentries,
+                           pfc_list_t *head, intlist_t &required);
 static void base_list_use_case_1 (int ent_num, int push_tail, int pop_tail);
 static void base_list_use_case_2 (int ent_num, int remove_odd, int in_order);
 static void base_list_use_case_3 (int ent_num);
@@ -100,6 +114,218 @@ TEST(simple_list, use_case_1_3)
     }
 }
 
+/*
+ * Test for PFC_LIST_FOREACH().
+ */
+TEST(simple_list, foreach)
+{
+    list_ent_t  entries[20];
+    pfc_list_t  head;
+    intlist_t   required;
+    setup_list_ent(entries, PFC_ARRAY_CAPACITY(entries), &head, required);
+
+    pfc_list_t *elem;
+    int i(0);
+    PFC_LIST_FOREACH(&head, elem) {
+        list_ent_t  *ent(LISTENT_PTR(elem));
+        ASSERT_EQ(&entries[i], ent);
+        ASSERT_EQ(i, ent->data);
+        i++;
+    }
+}
+
+/*
+ * Test for PFC_LIST_REV_FOREACH().
+ */
+TEST(simple_list, rev_foreach)
+{
+    list_ent_t  entries[20];
+    pfc_list_t  head;
+    intlist_t   required;
+    setup_list_ent(entries, PFC_ARRAY_CAPACITY(entries), &head, required);
+
+    pfc_list_t *elem;
+    int i(static_cast<int>(PFC_ARRAY_CAPACITY(entries) - 1));
+    PFC_LIST_REV_FOREACH(&head, elem) {
+        list_ent_t  *ent(LISTENT_PTR(elem));
+        ASSERT_EQ(&entries[i], ent);
+        ASSERT_EQ(i, ent->data);
+        i--;
+    }
+}
+
+/*
+ * Test for PFC_LIST_FOREACH_FROM().
+ */
+TEST(simple_list, foreach_from)
+{
+    list_ent_t  entries[20];
+    pfc_list_t  head;
+    intlist_t   required;
+    setup_list_ent(entries, PFC_ARRAY_CAPACITY(entries), &head, required);
+
+    for (int from(0); (size_t)from < PFC_ARRAY_CAPACITY(entries); from++) {
+        pfc_list_t *elem;
+        int i(from);
+        PFC_LIST_FOREACH_FROM(&head, &entries[from].list_hdr, elem) {
+            list_ent_t  *ent(LISTENT_PTR(elem));
+            ASSERT_EQ(&entries[i], ent);
+            ASSERT_EQ(i, ent->data);
+            i++;
+        }
+    }
+}
+
+/*
+ * Test for PFC_LIST_REV_FOREACH_FROM().
+ */
+TEST(simple_list, rev_foreach_from)
+{
+    list_ent_t  entries[20];
+    pfc_list_t  head;
+    intlist_t   required;
+    setup_list_ent(entries, PFC_ARRAY_CAPACITY(entries), &head, required);
+
+    for (int from(0); (size_t)from < PFC_ARRAY_CAPACITY(entries); from++) {
+        pfc_list_t *elem;
+        int i(from);
+        PFC_LIST_REV_FOREACH_FROM(&head, &entries[from].list_hdr, elem) {
+            list_ent_t  *ent(LISTENT_PTR(elem));
+            ASSERT_EQ(&entries[i], ent);
+            ASSERT_EQ(i, ent->data);
+            i--;
+        }
+    }
+}
+
+/*
+ * Test for PFC_LIST_FOREACH_SAFE().
+ */
+TEST(simple_list, foreach_safe)
+{
+    list_ent_t  entries[20];
+    pfc_list_t  head;
+    intlist_t   required;
+    setup_list_ent(entries, PFC_ARRAY_CAPACITY(entries), &head, required);
+
+    pfc_list_t *elem, *next;
+    int i(0);
+    PFC_LIST_FOREACH_SAFE(&head, elem, next) {
+        list_ent_t  *ent(LISTENT_PTR(elem));
+        ASSERT_EQ(&entries[i], ent);
+        ASSERT_EQ(i, ent->data);
+
+        pfc_list_remove(elem);
+        memset(ent, 0, sizeof(*ent));
+        required.remove(i);
+        verify_list_ent(&head, required);
+        i++;
+    }
+
+    ASSERT_TRUE(required.empty());
+}
+
+/*
+ * Test for PFC_LIST_REV_FOREACH_SAFE().
+ */
+TEST(simple_list, rev_foreach_safe)
+{
+    list_ent_t  entries[20];
+    pfc_list_t  head;
+    intlist_t   required;
+    setup_list_ent(entries, PFC_ARRAY_CAPACITY(entries), &head, required);
+
+    pfc_list_t *elem, *next;
+    int i(static_cast<int>(PFC_ARRAY_CAPACITY(entries) - 1));
+    PFC_LIST_REV_FOREACH_SAFE(&head, elem, next) {
+        list_ent_t  *ent(LISTENT_PTR(elem));
+        ASSERT_EQ(&entries[i], ent);
+        ASSERT_EQ(i, ent->data);
+
+        pfc_list_remove(elem);
+        memset(ent, 0, sizeof(*ent));
+        required.remove(i);
+        verify_list_ent(&head, required);
+        i--;
+    }
+
+    ASSERT_TRUE(required.empty());
+}
+
+/*
+ * Test for PFC_LIST_FOREACH_SAFE_FROM().
+ */
+TEST(simple_list, foreach_safe_from)
+{
+    list_ent_t  entries[20];
+    pfc_list_t  head;
+    intlist_t   required;
+    setup_list_ent(entries, PFC_ARRAY_CAPACITY(entries), &head, required);
+
+    int nentries(static_cast<int>(PFC_ARRAY_CAPACITY(entries)));
+    int from(nentries >> 1);
+    while (nentries > 0) {
+        pfc_list_t *elem, *next;
+        int i(from);
+        PFC_LIST_FOREACH_SAFE_FROM(&head, &entries[from].list_hdr,
+                                   elem, next) {
+            list_ent_t  *ent(LISTENT_PTR(elem));
+            ASSERT_EQ(&entries[i], ent);
+            ASSERT_EQ(i, ent->data);
+
+            pfc_list_remove(elem);
+            memset(ent, 0, sizeof(*ent));
+            required.remove(i);
+            verify_list_ent(&head, required);
+            nentries--;
+            i++;
+        }
+
+        from >>= 1;
+    }
+
+    ASSERT_TRUE(required.empty());
+}
+
+/*
+ * Test for PFC_LIST_REV_FOREACH_SAFE_FROM().
+ */
+TEST(simple_list, rev_foreach_safe_from)
+{
+    list_ent_t  entries[20];
+    pfc_list_t  head;
+    intlist_t   required;
+    setup_list_ent(entries, PFC_ARRAY_CAPACITY(entries), &head, required);
+
+    int nentries(static_cast<int>(PFC_ARRAY_CAPACITY(entries)));
+    int from(nentries >> 1);
+    while (nentries > 0) {
+        pfc_list_t *elem, *next;
+        int i(from);
+        PFC_LIST_REV_FOREACH_SAFE_FROM(&head, &entries[from].list_hdr,
+                                       elem, next) {
+            list_ent_t  *ent(LISTENT_PTR(elem));
+            ASSERT_EQ(&entries[i], ent);
+            ASSERT_EQ(i, ent->data);
+
+            pfc_list_remove(elem);
+            memset(ent, 0, sizeof(*ent));
+            required.remove(i);
+            verify_list_ent(&head, required);
+            nentries--;
+            i--;
+        }
+
+        if (nentries == 1) {
+            from = static_cast<int>(PFC_ARRAY_CAPACITY(entries) - 1);
+        }
+        else {
+            from += (nentries >> 1);
+        }
+    }
+
+    ASSERT_TRUE(required.empty());
+}
 
 /*
  *
@@ -160,6 +386,37 @@ verify_links (pfc_list_t *head)
     }
 }
 
+static void
+verify_list_ent(pfc_list_t *head, intlist_t &required)
+{
+    intlist_t::iterator it(required.begin());
+    intlist_t::iterator end(required.end());
+    pfc_list_t *prev(head);
+    for (pfc_list_t *elem(head->pl_next); elem != head;
+         prev = elem, elem = elem->pl_next, it++) {
+        ASSERT_EQ(prev, elem->pl_prev);
+
+        list_ent_t *ent(LISTENT_PTR(elem));
+        ASSERT_TRUE(end != it);
+        ASSERT_EQ(*it, ent->data);
+    }
+
+    ASSERT_TRUE(end == it);
+}
+
+static void
+setup_list_ent(list_ent_t *entries, size_t nentries, pfc_list_t *head,
+               intlist_t &required)
+{
+    pfc_list_init(head);
+
+    list_ent_t *ent(entries);
+    for (int i(0); (size_t)i < nentries; i++, ent++) {
+        LISTENT_SETUP(head, ent, i);
+        required.push_back(i);
+    }
+    verify_list_ent(head, required);
+}
 
 /*
  *
index 496d9dca8e9ecf28e42c544e12384e51c7a3f850..17f34e31d16c494d16786abbca9e661f329b9dc2 100644 (file)
@@ -238,7 +238,7 @@ public:
  * Test Data
  *      pfc_is_safepath()
  */
-safe_path_test_data sptd[] = {
+static safe_path_test_data sptd[] = {
        {"invalid", EINVAL},
        {TOO_LONG_NAME, ENAMETOOLONG},
        {"/homehomehome", ENOENT},
diff --git a/coordinator/core/test/libs/libpfc_util/test_proc.cc b/coordinator/core/test/libs/libpfc_util/test_proc.cc
new file mode 100644 (file)
index 0000000..d6373e7
--- /dev/null
@@ -0,0 +1,203 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/*
+ * test_proc.cc - Test for PFC process utilities.
+ */
+
+#include <string>
+#include <unistd.h>
+#include <pfc/util.h>
+#include <pfc/listmodel.h>
+#include "test.h"
+#include "misc.hh"
+#include "random.hh"
+
+using namespace std;
+
+/*
+ * static void
+ * test_closefrom(uint32_t num, uint32_t from)
+ *   This function called fork(2).
+ */
+static void
+test_closefrom(uint32_t num, uint32_t from)
+{
+    pid_t pid;
+
+    pid = fork();
+    if (pid == 0) {
+        /* Test main */
+        uint32_t i;
+        pfc_listm_t list;
+        DIR *dir;
+        struct dirent *dep;
+        ostringstream oss;
+        string str_pid;
+
+        oss << getpid();
+        str_pid = "/proc/" + oss.str() + "/fd";
+
+        ASSERT_EQ(0, pfc_llist_create_u64(&list));
+
+        /* Create file descriptor. */
+        for (i = 0; i < num; i++) {
+            ASSERT_NE(-1, open("/dev/null", O_RDWR))
+                << "*** ERROR: " << strerror(errno);
+        }
+
+        /* Check opening file descriptor. */
+        dir = opendir(str_pid.c_str());
+        dep = readdir(dir);
+        while (dep != NULL) {
+            string filename = dep->d_name;
+            int fd;
+
+            /* ".", ".." is skip.  */
+            if (filename == "." || filename == "..") {
+                dep = readdir(dir);
+                continue;
+            }
+
+            /* Convert string to integer. */
+            istringstream is(filename);
+            is >> fd;
+            ASSERT_EQ(0, pfc_listm64_push_tail(list, (uint64_t)fd));
+
+            /* Check next file. */
+            dep = readdir(dir);
+        }
+        ASSERT_EQ(0, closedir(dir));
+
+        /* Close file descriptor. */
+        pfc_closefrom(from);
+
+        /* Check opening file descriptor. */
+        dir = opendir(str_pid.c_str());
+        dep = readdir(dir);
+        while (dep != NULL) {
+            string filename = dep->d_name;
+            int fd;
+
+            /* ".", ".." is skip.  */
+            if (filename == "." || filename == "..") {
+                dep = readdir(dir);
+                continue;
+            }
+
+            /* Convert string to integer. */
+            istringstream is(filename);
+            is >> fd;
+
+            /* Check the value which is less than 'from'. */
+            if (dirfd(dir) != fd) {
+                ASSERT_LT(fd, from);
+            }
+            /* Check the value which is in the list. */
+            ASSERT_LE(0, pfc_listm64_index(list, (uint64_t)fd));
+
+            /* Check next file. */
+            dep = readdir(dir);
+        }
+        ASSERT_EQ(0, closedir(dir));
+
+        /* Child process exit. */
+        exit(0);
+    } else {
+        int status;
+        ASSERT_LT(0, wait(&status));
+        ASSERT_EQ(0, WEXITSTATUS(status));
+        ASSERT_EQ(0, WIFSIGNALED(status));
+    }
+}
+
+/*
+ * Create a zombie process.
+ */
+class Zombie
+{
+public:
+    Zombie() : _pid(static_cast<pid_t>(-1)) {}
+
+    ~Zombie()
+    {
+        if (_pid != static_cast<pid_t>(-1)) {
+            waitpid(_pid, NULL, 0);
+        }
+    }
+
+    void setup(void);
+
+    inline pid_t
+    operator*() const
+    {
+        return _pid;
+    }
+
+private:
+    pid_t  _pid;
+};
+
+void
+Zombie::setup(void)
+{
+    int  fds[2];
+    ASSERT_EQ(0, pipe(fds)) << "*** ERROR: " << strerror(errno);
+    FdRef rfd(fds[0]), wfd(fds[1]);
+
+    _pid = fork();
+    ASSERT_NE(static_cast<pid_t>(-1), _pid)
+        << "*** ERROR: " << strerror(errno);
+    if (_pid == 0) {
+        _exit(0);
+    }
+
+    ASSERT_EQ(0, close(wfd.get())) << "*** ERROR: " << strerror(errno);
+    wfd.set(-1);
+
+    char c;
+    ASSERT_EQ(0, read(rfd.get(), &c, 1));
+}
+
+/*
+ * Test for pfc_closefrom().
+ *   This test called fork(2).
+ */
+TEST(proc, pfc_closefrom)
+{
+    int i;
+    uint32_t max;
+    RandomGenerator rand;
+
+    /* Max number of open file descriptor. */
+    max = 50;
+    for (i = 0; i < 10; i++) {
+        uint32_t num;
+        uint32_t from;
+        rand.randomInteger(num, max);
+        rand.randomInteger(from, num);
+        test_closefrom(num, from);
+    }
+}
+
+/*
+ * Test case for zombie process.
+ */
+TEST(proc, zombie)
+{
+    // pfc_proc_getcmdline() must fail.
+    {
+        Zombie z;
+        z.setup();
+        RETURN_ON_ERROR();
+
+        pfc_listm_t list;
+        ASSERT_EQ(ENODATA, pfc_proc_getcmdline(*z, &list));
+    }
+}
index 0b785b8c7fe68a05d9577bbaa347474e5c3c4ed2..584ca8d62e732688905a5ec68d54905f90081cfa 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2011-2013 NEC Corporation
+# Copyright (c) 2011-2014 NEC Corporation
 # All rights reserved.
 # 
 # This program and the accompanying materials are made available under the
@@ -13,3 +13,6 @@
 
 include ../config.mk
 include $(BLDDIR)/exec-defs.mk
+
+# Don't apply configurations for runtime environment.
+OPENSSL_RUNPATH                := $(OPENSSL_LIBDIR)
index 5e7ea90ffe362a7f2d871707268d1a2fa7c61d29..3fdc6dcde3b6dcd145c7bf7ae94d7aca587a6a3c 100644 (file)
@@ -18,7 +18,7 @@ $fh->print($Config{startperl}, "\n");
 $fh->print(<<'EOF');
 
 #
-# Copyright (c) 2012-2013 NEC Corporation
+# Copyright (c) 2012-2014 NEC Corporation
 # All rights reserved.
 # 
 # This program and the accompanying materials are made available under the
@@ -601,7 +601,7 @@ MAIN:
        }
 
        my ($pclasspath, @jarclpath);
-       if (@classpath or @extlibs) {
+       if (@classpath or @extlibs or @build_cp) {
                $pclasspath = create_classpath($proj, 'pkg.build.classpath',
                                               classpath => \@classpath,
                                               build_classpath => \@build_cp,
index 134ced80610280b9642e364692c61de1aef53637..3a9898754843661e2d112479b6f4f8118c5fe053 100644 (file)
@@ -29,7 +29,7 @@
 
   <groupId>org.opendaylight.vtn</groupId>
   <artifactId>distribution.vtn-coordinator</artifactId>
-  <version>5.0.0.1-SNAPSHOT</version>
+  <version>5.1.0.0-SNAPSHOT</version>
   <packaging>pom</packaging>
 
   <profiles>
@@ -70,6 +70,8 @@
     <vtn.gson.version>2.2.2</vtn.gson.version>
     <vtn.json.version>20090211</vtn.json.version>
     <vtn.tomcat.version>7.0.39</vtn.tomcat.version>
+    <vtn.commons.net.version>3.3</vtn.commons.net.version>
+    <vtn.postgresql.jdbc.version>9.2-1003-jdbc4</vtn.postgresql.jdbc.version>
 
     <vtn.build.destdir>root</vtn.build.destdir>
     <vtn.build.prefix>/usr/local/vtn</vtn.build.prefix>
                   <outputDirectory>${vtn.java.libdir}</outputDirectory>
                 </artifactItem>
 
+                <artifactItem>
+                  <groupId>commons-net</groupId>
+                  <artifactId>commons-net</artifactId>
+                  <version>${vtn.commons.net.version}</version>
+                  <outputDirectory>${vtn.java.libdir}</outputDirectory>
+                </artifactItem>
+
+                <artifactItem>
+                  <groupId>org.postgresql</groupId>
+                  <artifactId>postgresql</artifactId>
+                  <version>${vtn.postgresql.jdbc.version}</version>
+                  <outputDirectory>${vtn.java.libdir}</outputDirectory>
+                </artifactItem>
+
                 <artifactItem>
                   <groupId>org.apache.tomcat</groupId>
                   <artifactId>tomcat-catalina</artifactId>
       <artifactId>gson</artifactId>
       <version>${vtn.gson.version}</version>
     </dependency>
+
     <dependency>
       <groupId>org.json</groupId>
       <artifactId>json</artifactId>
       <version>${vtn.json.version}</version>
     </dependency>
+
+    <dependency>
+      <groupId>commons-net</groupId>
+      <artifactId>commons-net</artifactId>
+      <version>${vtn.commons.net.version}</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.postgresql</groupId>
+      <artifactId>postgresql</artifactId>
+      <version>${vtn.postgresql.jdbc.version}</version>
+    </dependency>
+
     <dependency>
       <groupId>org.apache.tomcat</groupId>
       <artifactId>tomcat-catalina</artifactId>
index b6c8ff355a12bc45f205cf150a5ff7b4be53013f..21b4d5837b66e88935080ac00f123be51cbe5bc7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -66,6 +66,7 @@ typedef enum {
        UNC_KT_VTN_FLOWFILTER_CONTROLLER,
        UNC_KT_VTN_PATHMAP_ENTRY,
        UNC_KT_VTN_PATHMAP_CONTROLLER,
+       UNC_KT_VTN_DATAFLOW,
        /* UPPL: 0x200~0x3ff */
        UNC_KT_CONTROLLER = 0x200,
        UNC_KT_SWITCH,
@@ -75,7 +76,8 @@ typedef enum {
        UNC_KT_LOGICAL_PORT,
        UNC_KT_LOGICAL_MEMBER_PORT,
        UNC_KT_BOUNDARY,
-  UNC_KT_INVALID = 0x300
+       UNC_KT_DATAFLOW,
+       UNC_KT_CTR_DATAFLOW
 } unc_key_type_t;
 
 /* Operation */
@@ -124,7 +126,8 @@ typedef enum {
        UNC_OPT2_CLEAR_ARPAGENT,        /* clear arpagent */
        UNC_OPT2_MATCH_SWITCH1,         /* match-switch1 */
        UNC_OPT2_MATCH_SWITCH2,         /* match-switch2 */
-       UNC_OPT2_MATCH_BOTH_SWITCH      /* match-both-switch */
+       UNC_OPT2_MATCH_BOTH_SWITCH,     /* match-both-switch */
+       UNC_OPT2_SIBLING_ALL        /* return all sibling details */
 } unc_keytype_option2_t;
 
 /* Data type indicates the data storage. */
@@ -142,8 +145,7 @@ typedef enum {
 typedef enum {
        UNC_CS_UNKNOWN= 0,
        UNC_CS_APPLIED,
-       UNC_CS_PARTAILLY_APPLIED,
-       UNC_CS_PARTIALLY_APPLIED = UNC_CS_PARTAILLY_APPLIED,
+       UNC_CS_PARTIALLY_APPLIED,
        UNC_CS_NOT_APPLIED,
        UNC_CS_INVALID,
        UNC_CS_NOT_SUPPORTED
@@ -154,8 +156,7 @@ typedef enum {
        UNC_VF_INVALID= 0,
        UNC_VF_VALID,
        UNC_VF_VALID_NO_VALUE,
-       UNC_VF_NOT_SOPPORTED,
-       UNC_VF_NOT_SUPPORTED = UNC_VF_NOT_SOPPORTED,
+       UNC_VF_NOT_SUPPORTED,
   UNC_VF_VALUE_NOT_MODIFIED
 } unc_keytype_validflag_t;
 
index 551c7b026af6d5af1eaac0be86cd32e63fa9a9e2..9ded8ee15031de9c9d5c3c02e2dd676446f74ac2 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -45,5 +45,10 @@ typedef enum {
   PFCDRV_IDX_VAL_VBRIF_VEXTIF_PM,
 } pfcdrv_val_vbrif_policingmap_index_t;
 
+/* enum for pfcdrv val vbrif structure */
+typedef enum {
+  PFCDRV_IDX_VAL_VLAN_MAP = 0,
+  PFCDRV_IDX_BDRY_REF_COUNT,
+} pfcdrv_val_vlan_map_index_t;
 
 #endif
index fcf4450a7ed58db70ba39c59f4aa0c8c725d2259..47cf81e196902beb89c78de8ce3af957817b9168 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -10,6 +10,8 @@
 #ifndef SRC_INCLUDE_UNC_TC_EXTERNAL_TC_SERVICES_H_
 #define SRC_INCLUDE_UNC_TC_EXTERNAL_TC_SERVICES_H_
 
+#include <unc/unc_base.h>
+
 /* Values used to establish Client Session with TC Module */
 #define UNC_CHANNEL_NAME "uncd"
 #define TC_SERVICE_NAME  "tc"
@@ -56,13 +58,13 @@ typedef enum {
 /* List of Return Values and Operation Status Values */
 typedef enum {
   /* System Failover */
-  TC_OPER_FAILURE = -11,
+  TC_OPER_FAILURE       = UNC_TC_OPER_FAILURE,
   /* Invalid Input Values Passed*/
-  TC_OPER_INVALID_INPUT = -10,
-  TC_OPER_SUCCESS = 0,
-  TC_CONFIG_NOT_PRESENT,
+  TC_OPER_INVALID_INPUT = UNC_TC_OPER_INVALID_INPUT,
+  TC_OPER_SUCCESS       = UNC_RC_SUCCESS,
+  TC_CONFIG_NOT_PRESENT = UNC_TC_CONFIG_NOT_PRESENT,
   TC_CONFIG_PRESENT,
-  TC_INVALID_CONFIG_ID,
+  TC_INVALID_CONFIG_ID, 
   TC_INVALID_OPERATION_TYPE,
   TC_INVALID_SESSION_ID,
   TC_INVALID_STATE,
index e2023a6251c5994a3acacf59e015fecb8e56d1c4..290837b7261ce55d5d3f88855e47a130be0efdb7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
 #ifdef __cplusplus
 extern "C" {
 #endif  /* __cplusplus */
-#if 0
-#include "unc_events.h"
-#include "pfcdriver_ipc_enum.h"
-#endif
+
 /**
-* @brief  PFC Driver API response code returned
+ * @brief  UNC API response code returned
 */
-
 typedef enum {
-  DRVAPI_RESPONSE_SUCCESS = 0,              /* successful               */
-  DRVAPI_RESPONSE_FAILURE,                  /* failure                  */
-  DRVAPI_RESPONSE_CTRLAPI_FAILURE,          /* Driver api failed       */
-  DRVAPI_RESPONSE_NOT_RUNNING,              /* not running              */
-  DRVAPI_RESPONSE_INVALID_REQUEST_FORMAT,   /* invalid request format   */
-  DRVAPI_RESPONSE_INVALID_SESSION_ID,       /* invalid session id       */
-  DRVAPI_RESPONSE_INVALID_CONFIG_ID,        /* invalid config id        */
-  DRVAPI_RESPONSE_INVALID_OPERATION,        /* invalid operation        */
-  DRVAPI_RESPONSE_INVALID_OPTION1,          /* invalid option1          */
-  DRVAPI_RESPONSE_INVALID_OPTION2,          /* invalid option2          */
-  DRVAPI_RESPONSE_INVALID_DATATYPE,         /* invalid data type        */
-  DRVAPI_RESPONSE_INVALID_KEYTYPE,          /* invalid key type         */
-  DRVAPI_RESPONSE_MISSING_KEY_STRUCT,       /* missing key structure    */
-  DRVAPI_RESPONSE_MISSING_VAL_STRUCT,       /* missing value structure  */
-  DRVAPI_RESPONSE_CONTROLLER_DISCONNECTED,  /* controller disconnected  */
-  DRVAPI_RESPONSE_NOT_SENT_TO_CONTROLLER,   /* not sent to controller   */
-  DRVAPI_RESPONSE_NO_SUCH_INSTANCE,         /* READ has no result       */
-  DRVAPI_RESPONSE_INVALID_TRANSACTION       /* invalid transaction      */
-} drv_resp_code_t;
+  UNC_RC_SUCCESS = 0,  
+  
+  /*TC response codes*/
+  UNC_TC_OPER_FAILURE = -11,           /* System Failover */
+  UNC_TC_OPER_INVALID_INPUT = -10,     /* Invalid Input Values Passed */
+  UNC_TC_CONFIG_NOT_PRESENT = 100,     /* Config mode is not acquired */
+  UNC_TC_CONFIG_PRESENT,               /* Config mode already present */
+  UNC_TC_INVALID_CONFIG_ID,        
+  UNC_TC_INVALID_OPERATION_TYPE,
+  UNC_TC_INVALID_SESSION_ID,
+  UNC_TC_INVALID_STATE,
+  UNC_TC_OPER_ABORT,                    /* Operation aborted */
+  UNC_TC_SESSION_ALREADY_ACTIVE,
+  UNC_TC_SESSION_NOT_ACTIVE,
+  UNC_TC_SYSTEM_BUSY,                   /* Acquiring lock failed as another 
+                                           operation is in progress */
+  UNC_TC_SYSTEM_FAILURE,                /* Internal errors in any of the modules */   
+  
+  /* UPLL Service */
+  UNC_UPLL_RC_ERR_GENERIC = 1000,                   /* Generic error */
+  UNC_UPLL_RC_ERR_BAD_REQUEST,               /* The request message format is bad */
+  UNC_UPLL_RC_ERR_BAD_CONFIG_OR_SESSION_ID,  /* The given session does not have the
+                                            config lock */
+  UNC_UPLL_RC_ERR_NO_SUCH_OPERATION,         /* Not a valid operation */
+  UNC_UPLL_RC_ERR_INVALID_OPTION1,           /* Not a valid option1 */
+  UNC_UPLL_RC_ERR_INVALID_OPTION2,           /* Not a valid option2 */
+  UNC_UPLL_RC_ERR_CFG_SYNTAX,                /* Syntax check failed */
+  UNC_UPLL_RC_ERR_CFG_SEMANTIC,              /* Semantic check failed */
+  UNC_UPLL_RC_ERR_RESOURCE_DISCONNECTED,     /* Resource (DBMS, Physical, Driver) is
+                                            diconnected */
+  UNC_UPLL_RC_ERR_DB_ACCESS,                 /* DBMS access (read / write /
+                                            transacation) failure */
+  UNC_UPLL_RC_ERR_NO_SUCH_INSTANCE,          /* Instance specified by key does not
+                                            exist */
+  UNC_UPLL_RC_ERR_NO_SUCH_NAME,              /* The specified keytype is unknown */
+  UNC_UPLL_RC_ERR_NO_SUCH_DATATYPE,          /* The specified datatype is unknown */
+  UNC_UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,    /* The operation not supported by
+                                            controller */
+  UNC_UPLL_RC_ERR_NOT_SUPPORTED_BY_STANDBY,  /* The operation not supported by
+                                            standby UPLL */
+  UNC_UPLL_RC_ERR_PARENT_DOES_NOT_EXIST,     /* For creating the given keytype
+                                            instance, its parent does not
+                                            exist */
+  UNC_UPLL_RC_ERR_INSTANCE_EXISTS,           /* The given keytype instance cannot be
+                                            created because it already exists */
+  UNC_UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT,   /* Not allowed for this datatype */
+  UNC_UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT,   /* Not allowed for this KT */
+  UNC_UPLL_RC_ERR_NOT_ALLOWED_AT_THIS_TIME,  /* Not allowed for at this time */
+  UNC_UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT,    /* The given operation exceeds the
+                                            resource limit */
+  UNC_UPLL_RC_ERR_MERGE_CONFLICT,            /* Merge failed as there is a merge
+                                            conflict */
+  UNC_UPLL_RC_ERR_CANDIDATE_IS_DIRTY,        /* The operation could not be performed
+                                            because there are uncommited changes
+                                            in the candidate configuration */
+  UNC_UPLL_RC_ERR_SHUTTING_DOWN,              /* UPLL daemon is shutting down and
+                                            cannot process the request */
+  /*UPPL Service*/
+  UNC_UPPL_RC_ERR_BAD_REQUEST = 2000,       /* The request message format is bad */
+  UNC_UPPL_RC_FAILURE,                  /* REMOVE THIS */
+  UNC_UPPL_RC_ERR_INVALID_CONFIGID,         /* Invalid config-id*/
+  UNC_UPPL_RC_ERR_INVALID_SESSIONID,        /* Invalid session-id */
+  UNC_UPPL_RC_ERR_VERSION_NOT_SUPPORTED,    /* unsupported version*/
+  UNC_UPPL_RC_ERR_KEYTYPE_NOT_SUPPORTED,    /* unsupported keytype*/
+  UNC_UPPL_RC_ERR_DATATYPE_NOT_SUPPORTED,   /* Unsupported datatype*/
+  UNC_UPPL_RC_ERR_ATTRIBUTE_NOT_SUPPORTED,  /* Unsupported attribute*/
+  UNC_UPPL_RC_ERR_OPERATION_NOT_SUPPORTED,  /* Unsupported operation*/
+  UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED,    /* Operation is not allowed at this state*/
+  UNC_UPPL_RC_ERR_INVALID_OPTION1,          /* Not a valid option1 */
+  UNC_UPPL_RC_ERR_INVALID_OPTION2,          /* Not a valid option2 */
+  UNC_UPPL_RC_ERR_CFG_SYNTAX,               /* Syntax check failed */
+  UNC_UPPL_RC_ERR_CFG_SEMANTIC,             /* Semantic check failed */
+  UNC_UPPL_RC_ERR_PARENT_DOES_NOT_EXIST,    /* parent does not exist */
+  UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE,         /* required instance does not exist */
+  UNC_UPPL_RC_ERR_INSTANCE_EXISTS,          /* instance already exists */
+  UNC_UPPL_RC_ERR_EXCEEDS_RESOURCE_LIMIT,   /* Exceeds resource limit */
+  UNC_UPPL_RC_ERR_DB_ACCESS,                /* Error while accessing Database */
+  UNC_UPPL_RC_ERR_NOT_SUPPORTED_BY_STANDBY, /* operation not allowed in SBY */
+  UNC_UPPL_RC_ERR_RESOURCE_DISCONNECTED,    /* resource disconnected*/
+  UNC_UPPL_RC_ERR_INVALID_STATE,            /* Invalid state */
+  UNC_UPPL_RC_ERR_MERGE_CONFLICT,           /* Merge conflict */
+  UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION,    /* Fatal resource allocation */
+  UNC_UPPL_RC_ERR_DRIVER_COMMUNICATION_FAILURE, /* communication with driver failed*/
+  UNC_UPPL_RC_ERR_LOGICAL_COMMUNICATION_FAILURE,/* communication with upll failed */
+  UNC_UPPL_RC_ERR_SHUTTING_DOWN,            /* process is shutting down */
+  UNC_UPPL_RC_ERR_IPC_WRITE_ERROR,          /* IPC write error */
+  UNC_UPPL_RC_ERR_DB_UPDATE,                /* DB update error */
+  UNC_UPPL_RC_ERR_DB_GET,                   /* DB Get error */
+  UNC_UPPL_RC_ERR_DB_DELETE,                /* DB delete error */
+  UNC_UPPL_RC_ERR_DB_CREATE,                /* DB create error */
+  UNC_UPPL_RC_ERR_CANDIDATE_IS_DIRTY,       /* candidate is dirty */
+  UNC_UPPL_RC_ERR_ATTRIBUTE_NOT_FOUND,      /* could not find the required attribute */
+  UNC_UPPL_RC_ERR_NOTIFICATION_NOT_SUPPORTED,   /* Unsupported notification */
+  UNC_UPPL_RC_ERR_NOTIFICATION_HANDLING_FAILED, /* Notification handling failed */
+  UNC_UPPL_RC_ERR_ALARM_API,                    /* Alarm API failure*/
+  UNC_UPPL_RC_ERR_CONF_FILE_READ,               /* Error reading configuration file */
+  UNC_UPPL_RC_ERR_CAP_FILE_READ,                /* Error in reading capability file */
+  UNC_UPPL_RC_ERR_DB_OPER_STATUS,               /* DB status error */
+  UNC_UPPL_RC_ERR_CTRLR_DISCONNECTED,           /* Controller is disconnected for state read */
+  UNC_UPPL_RC_ERR_AUDIT_NOT_IN_PROGRESS,        /* audit not in progress */
+  UNC_UPPL_RC_ERR_FATAL_COPY_CONFIG,            /* copying running DB to startup DB failed */
+  UNC_UPPL_RC_ERR_FATAL_COPYDB_CANDID_RUNNING,  /* DB connection error while copying 
+                                               candidate DB to running DB */
+  UNC_UPPL_RC_ERR_COPY_CANDID_TO_RUNNING,       /* Error in copying candidate to running DB
+                                               while startup*/
+  UNC_UPPL_RC_ERR_COPY_RUNNING_TO_CANDID,       /* copy running to candidate database failed in 
+                                                abort candidate */
+  UNC_UPPL_RC_ERR_INVALID_CANDID_CONFIG,        
+  UNC_UPPL_RC_ERR_WRITE_ENTITY_DB,
+  UNC_UPPL_RC_ERR_COPY_RUNNING_TO_START,
+  UNC_UPPL_RC_ERR_COPY_STARTUP_TO_CANDID,
+  UNC_UPPL_RC_ERR_CLEAR_DB,
+  UNC_UPPL_RC_ERR_IMPORT_START_INVALID_DRIVER_RESPONSE,
+  UNC_UPPL_RC_ERR_IMPORT_FAILURE,
+  UNC_UPPL_RC_ERR_IMPORT_MERGE_FAILURE,
+  UNC_UPPL_RC_ERR_COMMIT_OPERATION_NOT_ALLOWED,
+  UNC_UPPL_RC_ERR_COMMIT_UPDATE_DRIVER_FAILURE,
+  UNC_UPPL_RC_ERR_TRANSACTION_START,
+  UNC_UPPL_RC_ERR_INVALID_TRANSACT_START_REQ,
+  UNC_UPPL_RC_ERR_TRANSACTION_START_INVALID_DRIVER_RESPONSE,
+  UNC_UPPL_RC_ERR_VOTE_DB_INVALID,
+  UNC_UPPL_RC_ERR_VOTE_INVALID_REQ,
+  UNC_UPPL_RC_ERR_AUDIT_FAILURE,
+  UNC_UPPL_RC_ERR_IMPORT_IN,
+  UNC_UPPL_RC_ERR_ABORT_AUDIT,
+  UNC_UPPL_RC_ERR_ABORT_TRANSACTION,
+  UNC_UPPL_RC_ERR_MANDATORY_ATTRIB_NULL_VALUE,
+  UNC_UPPL_RC_ERR_MANDATORY_ATTRIB_INVALID,
+
+  /*Driver response codes*/
+  UNC_DRV_RC_ERR_GENERIC = 3000,       /* internal/generic errors  */
+  UNC_DRV_RC_DAEMON_INACTIVE,          /* driver daemon is not up  */
+  UNC_DRV_RC_INVALID_REQUEST_FORMAT,   /* invalid request format   */
+  UNC_DRV_RC_INVALID_SESSION_ID,       /* invalid session id       */
+  UNC_DRV_RC_INVALID_CONFIG_ID,        /* invalid config id        */
+  UNC_DRV_RC_INVALID_OPERATION,        /* invalid operation        */
+  UNC_DRV_RC_INVALID_OPTION1,          /* invalid option1          */
+  UNC_DRV_RC_INVALID_OPTION2,          /* invalid option2          */
+  UNC_DRV_RC_INVALID_DATATYPE,         /* invalid data type        */
+  UNC_DRV_RC_INVALID_KEYTYPE,          /* invalid key type         */
+  UNC_DRV_RC_MISSING_KEY_STRUCT,       /* missing key structure    */
+  UNC_DRV_RC_MISSING_VAL_STRUCT,       /* missing value structure  */
+  UNC_DRV_RC_ERR_ATTRIBUTE_SYNTAX,     /* attribute syntax error */
+  UNC_DRV_RC_ERR_ATTRIBUTE_SEMANTIC,   /* attribute semantic error */
+  UNC_DRV_RC_ERR_NOT_SUPPORTED_BY_CTRLR, /* capa check error */ 
+
+  /*Transaction errors*/
+  UNC_RC_INTERNAL_ERR = 4000,      /* Internal error in any of the modules*/
+  UNC_RC_CONFIG_INVAL,             /* invalid configuiration   */
+  UNC_RC_CTRLAPI_FAILURE,          /* controller api failed    */
+  UNC_RC_CTR_CONFIG_STATUS_ERR,    /* controller configuration status is not confirmed */
+  UNC_RC_CTR_BUSY,                 /* acquiring config mode failed in controller */
+  UNC_RC_CTR_DISCONNECTED,         /* controller disconnected/down  */
+  UNC_RC_REQ_NOT_SENT_TO_CTR,      /* request not sent to controller   */
+  UNC_RC_NO_SUCH_INSTANCE          /* request for unknown attribute */
+}UncRespCode;
 
 #ifdef __cplusplus
 }  /* End of extern "C" */
diff --git a/coordinator/include/unc/unc_dataflow.h b/coordinator/include/unc/unc_dataflow.h
new file mode 100644 (file)
index 0000000..f0a58ac
--- /dev/null
@@ -0,0 +1,129 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+#ifndef _UNC_DATAFLOW_H_
+#define _UNC_DATAFLOW_H_
+
+/**
+ * @brief   UNC Dataflow Header
+ * @file    unc_dataflow.h
+ * @author  HCL
+ * @date    Sep-2013
+ * @version SYSTEM:UNC 1.0
+ *
+ */
+
+typedef enum {
+  kidxDfDataFlowReason = 0,
+  kidxDfDataFlowControllerCount
+} unc_val_df_dataflow_index;
+
+typedef enum {
+  kidxDfDataFlowStPackets = 0,
+  kidxDfDataFlowStOctets,
+  kidxDfDataFlowStDuration
+} unc_val_df_dataflow_st_index;
+
+typedef enum {
+  kidxDfDataFlowPathInfoSwitchId = 0,
+  kidxDfDataFlowPathInfoInPort,
+  kidxDfDataFlowPathInfoOutPort
+} unc_val_df_dataflow_path_info_index;
+
+typedef enum {
+  kidxDfDataFlowControllerName = 0,
+  kidxDfDataFlowControllerType,
+  kidxDfDataFlowFlowId,
+  kidxDfDataFlowStatus,
+  kidxDfDataFlowFlowType,
+  kidxDfDataFlowPolicyIndex,
+  kidxDfDataFlowVtnId,
+  kidxDfDataFlowIngressSwitchId,
+  kidxDfDataFlowInPort,
+  kidxDfDataFlowInStationId,
+  kidxDfDataFlowInDomain,
+  kidxDfDataFlowEgressSwitchId,
+  kidxDfDataFlowOutPort,
+  kidxDfDataFlowOutStationId,
+  kidxDfDataFlowOutDomain,
+  kidxDfDataFlowPathInfoCount,
+  kidxDfDataFlowMatchCount,
+  kidxDfDataFlowActionCount
+} unc_val_df_dataflow_cmn_index;
+
+typedef enum {
+  UNC_DF_RES_SUCCESS = 0,
+  /* If traversed PFC version is 5.0 */
+  UNC_DF_RES_OPERATION_NOT_SUPPORTED,
+  /* If flow count exceeds across a boundary by certain limit */
+  UNC_DF_RES_EXCEEDS_FLOW_LIMIT,
+  /* If traversed PFC is disconnected */
+  UNC_DF_RES_CTRLR_DISCONNECTED,
+  /* If flow traversal exceeds by certain hop limit */
+  UNC_DF_RES_EXCEEDS_HOP_LIMIT,
+  /* If target controller is not able to find for a VNP/BYPASS */
+  UNC_DF_RES_DST_NOT_REACHED,
+  /* If flow not found in target PFC */
+  UNC_DF_RES_FLOW_NOT_FOUND,
+  /* If any system level error at UNC */
+  UNC_DF_RES_SYSTEM_ERROR
+}UncDataflowReason;
+
+typedef enum {
+  UNC_DF_STAT_INIT = 0,
+  UNC_DF_STAT_ACTIVATING,
+  UNC_DF_STAT_ACTIVE,
+  UNC_DF_STAT_SWITCHING
+}UncDataflowStatus;
+
+typedef enum {
+  UNC_DF_TYPE_VTN = 0
+}UncDataflowFlowType;
+
+typedef enum {
+  UNC_MATCH_IN_PORT = 0,
+  UNC_MATCH_DL_SRC,
+  UNC_MATCH_DL_DST,
+  UNC_MATCH_DL_TYPE,
+  UNC_MATCH_VLAN_ID,
+  UNC_MATCH_VLAN_PCP,
+  UNC_MATCH_IP_TOS,
+  UNC_MATCH_IP_PROTO,
+  UNC_MATCH_IPV4_SRC,
+  UNC_MATCH_IPV4_DST,
+  UNC_MATCH_IPV6_SRC,
+  UNC_MATCH_IPV6_DST,
+  UNC_MATCH_TP_SRC,
+  UNC_MATCH_TP_DST
+}UncDataflowFlowMatchType;
+
+typedef enum {
+  UNC_MATCH_MASK_INVALID = 0,
+  UNC_MATCH_MASK_VALID
+}UncDataflowFlowMatchMask;
+
+typedef enum {
+  UNC_ACTION_OUTPUT = 0,
+  UNC_ACTION_SET_ENQUEUE,
+  UNC_ACTION_SET_DL_SRC,
+  UNC_ACTION_SET_DL_DST,
+  UNC_ACTION_SET_VLAN_ID,
+  UNC_ACTION_SET_VLAN_PCP,
+  UNC_ACTION_STRIP_VLAN,
+  UNC_ACTION_SET_IPV4_SRC,
+  UNC_ACTION_SET_IPV4_DST,
+  UNC_ACTION_SET_IP_TOS,
+  UNC_ACTION_SET_TP_SRC,
+  UNC_ACTION_SET_TP_DST,
+  UNC_ACTION_SET_IPV6_SRC,
+  UNC_ACTION_SET_IPV6_DST
+}UncDataflowFlowActionType;
+
+#endif  //  _UNC_DATAFLOW_H_
+
index 0580748490f18589215e75824ee7dc12dfe2aeda..5661a1cfdfb2fc4e750c75a2702a3a9db81ace90 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
 #ifndef UNC_UPLL_ERRNO_H_
 #define UNC_UPLL_ERRNO_H_
 
-#include "base.h"
+#include "unc/unc_base.h"
+#include "unc/base.h"
 
 UNC_C_BEGIN_DECL
 
 /* Error numbers returned by UPLL Service */
 typedef enum {
-  UPLL_RC_SUCCESS = 0,                   /* Request successfully processed */
-  UPLL_RC_ERR_GENERIC,                   /* Generic error */
-  UPLL_RC_ERR_BAD_REQUEST,               /* The request message format is bad */
-  UPLL_RC_ERR_BAD_CONFIG_OR_SESSION_ID,  /* The given session does not have the
-                                            config lock */
-  UPLL_RC_ERR_NO_SUCH_OPERATION,         /* Not a valid operation */
-  UPLL_RC_ERR_INVALID_OPTION1,           /* Not a valid option1 */
-  UPLL_RC_ERR_INVALID_OPTION2,           /* Not a valid option2 */
-  UPLL_RC_ERR_CFG_SYNTAX,                /* Syntax check failed */
-  UPLL_RC_ERR_CFG_SEMANTIC,              /* Semantic check failed */
-  UPLL_RC_ERR_RESOURCE_DISCONNECTED,     /* Resource (DBMS, Physical, Driver) is
-                                            diconnected */
-  UPLL_RC_ERR_DB_ACCESS,                 /* DBMS access (read / write /
-                                            transacation) failure */
-  UPLL_RC_ERR_NO_SUCH_INSTANCE,          /* Instance specified by key does not
-                                            exist */
-  UPLL_RC_ERR_NO_SUCH_NAME,              /* The specified keytype is unknown */
-  UPLL_RC_ERR_NO_SUCH_DATATYPE,          /* The specified datatype is unknown */
-  UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,    /* The operation not supported by
-                                            controller */
-  UPLL_RC_ERR_NOT_SUPPORTED_BY_STANDBY,  /* The operation not supported by
-                                            standby UPLL */
-  UPLL_RC_ERR_PARENT_DOES_NOT_EXIST,     /* For creating the given keytype
-                                            instance, its parent does not
-                                            exist */
-  UPLL_RC_ERR_INSTANCE_EXISTS,           /* The given keytype instance cannot be
-                                            created because it already exists */
-  UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT,   /* Not allowed for this datatype */
-  UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT,   /* Not allowed for this KT */
-  UPLL_RC_ERR_NOT_ALLOWED_AT_THIS_TIME,  /* Not allowed for at this time */
-  UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT,    /* The given operation exceeds the
-                                            resource limit */
-  UPLL_RC_ERR_MERGE_CONFLICT,            /* Merge failed as there is a merge
-                                            conflict */
-  UPLL_RC_ERR_CANDIDATE_IS_DIRTY,        /* The operation could not be performed
-                                            because there are uncommited changes
-                                            in the candidate configuration */
-  UPLL_RC_ERR_SHUTTING_DOWN              /* UPLL daemon is shutting down and
-                                            cannot process the request */
+  /* Request successfully processed */
+  UPLL_RC_SUCCESS = UNC_RC_SUCCESS,
+  /* Generic error */
+  UPLL_RC_ERR_GENERIC = UNC_UPLL_RC_ERR_GENERIC,
+  /* The request message format is bad */
+  UPLL_RC_ERR_BAD_REQUEST = UNC_UPLL_RC_ERR_BAD_REQUEST,
+  /* The given session does not have the config lock */
+  UPLL_RC_ERR_BAD_CONFIG_OR_SESSION_ID =
+              UNC_UPLL_RC_ERR_BAD_CONFIG_OR_SESSION_ID,
+  /* Not a valid operation */
+  UPLL_RC_ERR_NO_SUCH_OPERATION = UNC_UPLL_RC_ERR_NO_SUCH_OPERATION,
+  /* Not a valid option1 */
+  UPLL_RC_ERR_INVALID_OPTION1 = UNC_UPLL_RC_ERR_INVALID_OPTION1,
+  /* Not a valid option2 */
+  UPLL_RC_ERR_INVALID_OPTION2 = UNC_UPLL_RC_ERR_INVALID_OPTION2,
+  /* Syntax check failed */
+  UPLL_RC_ERR_CFG_SYNTAX = UNC_UPLL_RC_ERR_CFG_SYNTAX,
+  /* Semantic check failed */
+  UPLL_RC_ERR_CFG_SEMANTIC = UNC_UPLL_RC_ERR_CFG_SEMANTIC,
+  /* Resource (DBMS, Physical, Driver) is disconnected */
+  UPLL_RC_ERR_RESOURCE_DISCONNECTED = UNC_UPLL_RC_ERR_RESOURCE_DISCONNECTED,
+  /* DBMS access (read / write / transacation) failure */
+  UPLL_RC_ERR_DB_ACCESS = UNC_UPLL_RC_ERR_DB_ACCESS,
+  /* Instance specified by key does not exist */
+  UPLL_RC_ERR_NO_SUCH_INSTANCE = UNC_UPLL_RC_ERR_NO_SUCH_INSTANCE,
+  /* The specified keytype is unknown */
+  UPLL_RC_ERR_NO_SUCH_NAME = UNC_UPLL_RC_ERR_NO_SUCH_NAME,
+  /* The specified datatype is unknown */
+  UPLL_RC_ERR_NO_SUCH_DATATYPE = UNC_UPLL_RC_ERR_NO_SUCH_DATATYPE,
+  /* The operation not supported by controller */
+  UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR = UNC_UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+  /* The operation not supported by standby UPLL */
+  UPLL_RC_ERR_NOT_SUPPORTED_BY_STANDBY =
+              UNC_UPLL_RC_ERR_NOT_SUPPORTED_BY_STANDBY,
+  /* For creating the given keytype instance, its parent does not exist */
+  UPLL_RC_ERR_PARENT_DOES_NOT_EXIST = UNC_UPLL_RC_ERR_PARENT_DOES_NOT_EXIST,
+  /* The given keytype instance cannot be created because it already exists */
+  UPLL_RC_ERR_INSTANCE_EXISTS = UNC_UPLL_RC_ERR_INSTANCE_EXISTS,
+  /* Not allowed for this datatype */
+  UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT = UNC_UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT,
+  /* Not allowed for this KT */
+  UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT = UNC_UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT,
+  /* Not allowed for at this time */
+  UPLL_RC_ERR_NOT_ALLOWED_AT_THIS_TIME =
+              UNC_UPLL_RC_ERR_NOT_ALLOWED_AT_THIS_TIME,
+  /* The given operation exceeds the resource limit */
+  UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT = UNC_UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT,
+  /* Merge failed as there is a merge conflict */
+  UPLL_RC_ERR_MERGE_CONFLICT = UNC_UPLL_RC_ERR_MERGE_CONFLICT,
+  /* The operation could not be performed because there are uncommited changes
+   * in the candidate configuration */
+  UPLL_RC_ERR_CANDIDATE_IS_DIRTY = UNC_UPLL_RC_ERR_CANDIDATE_IS_DIRTY,
+  /* UPLL daemon is shutting down and cannot process the request */
+  UPLL_RC_ERR_SHUTTING_DOWN = UNC_UPLL_RC_ERR_SHUTTING_DOWN,
+  /* Controller disconnected error */
+  UPLL_RC_ERR_CTR_DISCONNECTED = UNC_RC_CTR_DISCONNECTED
 } upll_rc_t;
 
 UNC_C_END_DECL
index ed42a5873666860290c8a7ea472bfd8c1764dd4c..c82819a46b076449e878f63e16586de9c4467c76 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -626,6 +626,57 @@ enum val_policingmap_controller_index {
   UPLL_IDX_SEQ_NUM_PMC = 0    /* sequence_num */
 };
 
+/* valid array enum in val_vtn_dataflow_cmn */
+enum val_vtn_dataflow_cmn_index {
+  UPLL_IDX_CONTROLLER_ID_VVDC = 0,           /* Controller id */
+  UPLL_IDX_CONTROLLER_TYPE_VVDC,             /* Controller type */
+  UPLL_IDX_FLOW_ID_VVDC,                     /* Flow id */
+  UPLL_IDX_CREATED_TIME_VVDC,                /* Created time */
+  UPLL_IDX_IDLE_TIMEOUT_VVDC,                /* Idle timeout */
+  UPLL_IDX_HARD_TIMEOUT_VVDC,                /* Hard timeout */
+  UPLL_IDX_INGRESS_VNODE_VVDC,               /* Ingress vNode */
+  UPLL_IDX_INGRESS_VINTERFACE_VVDC,          /* Ingress vNode interface */
+  UPLL_IDX_INGRESS_SWITCH_ID_VVDC,           /* Ingress switch id */
+  UPLL_IDX_INGRESS_PORT_ID_VVDC,             /* Ingress port id */
+  UPLL_IDX_INGRESS_LOGICAL_PORT_ID_VVDC,     /* Ingress logical port id */
+  UPLL_IDX_INGRESS_DOMAIN_VVDC,              /* Ingress domain */
+  UPLL_IDX_EGRESS_VNODE_VVDC,                /* Egress vNode */
+  UPLL_IDX_EGRESS_VINTERFACE_VVDC,           /* Egress vNode interface */
+  UPLL_IDX_EGRESS_SWITCH_ID_VVDC,            /* Egress switch id */
+  UPLL_IDX_EGRESS_PORT_ID_VVDC,              /* Egress port id */
+  UPLL_IDX_EGRESS_LOGICAL_PORT_ID_VVDC,     /* Ingress logical port id */
+  UPLL_IDX_EGRESS_DOMAIN_VVDC,               /* Egress domain */
+  UPLL_IDX_MATCH_COUNT_VVDC,                 /* Number of match */
+  UPLL_IDX_ACTION_COUNT_VVDC,                /* Number of count */
+  UPLL_IDX_PATH_INFO_COUNT_VVDC              /* Number of path */
+};
+
+/* valid array enum in val_vtn_dataflow_path_info */
+enum val_vtn_dataflow_path_info_index {
+  UPLL_IDX_IN_VNODE_VVDPI = 0, /* In VTN node */
+  UPLL_IDX_IN_VIF_VVDPI,       /* In VTN interface */
+  UPLL_IDX_OUT_VNODE_VVDPI,    /* Out VTN node */
+  UPLL_IDX_OUT_VIF_VVDPI,      /* Out VTN interface */
+  UPLL_IDX_VLINK_FLAG_VVDPI,   /* Vlink flag */
+  UPLL_IDX_STATUS_VVDPI        /* flow status */
+};
+
+enum val_vtn_dataflow_status {
+  UPLL_DATAFLOW_PATH_STATUS_NORMAL_=0,  /* Normal data flow */
+  UPLL_DATAFLOW_PATH_STATUS_DROP        /* Dropped data flow */
+};
+
+enum val_vtn_dataflow_vlink_flag {
+  UPLL_DATAFLOW_PATH_VLINK_NOT_EXISTS_ =0,  /* Vlink Not Exist */
+  UPLL_DATAFLOW_PATH_VLINK_EXISTS        /* Vlink Exist */
+};
+
+enum val_vtn_dataflow_index {
+  UPLL_IDX_REASON_VVD = 0,      /* Reason */
+  UPLL_IDX_CTRLR_DOMAIN_COUNT_VVD   /* Hop count */
+};
+
+
 UNC_C_END_DECL
 
 #endif  /* IPC_UPLL_IPC_ENUM_H_*/
index 563c751a61b0fa55034815938404116cd41859d8..5a70bdcfc5ea25ac474f3c5fe447aaeb356fc8b8 100644 (file)
@@ -1,8 +1,5 @@
-#ifndef _UPPL_COMMON_H_
-#define _UPPL_COMMON_H_
-
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -10,6 +7,9 @@
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
+#ifndef UNC_UPPL_COMMON_H_
+#define UNC_UPPL_COMMON_H_
+
 /**
  * @brief   UPPL Common Header
  * @file    uppl_common.h
@@ -19,7 +19,6 @@
  *
  */
 
-
 /*
  * @brief System State
  */
 #define UPPL_IPC_CHN_NAME                   "phynwd"
 #define UPPL_IPC_SVC_NAME                   "uppl"
 
+#define UPPL_LP_STANDARD_SD_DESC "PF Standard Subdomain"
+#define UPPL_LP_EXTENSION_SD_DESC "PF Extension Subdomain"
+#define UPPL_LP_MAC_FORWARDING_DESC "PF MAC Forwarding Subdomain"
+
 typedef enum {
   UPPL_SYSTEM_ST_ACTIVE = 0,
   UPPL_SYSTEM_ST_STANDBY
@@ -68,10 +71,10 @@ typedef enum {
 
 //  Enum for the structure val_path_fault_alarm
 typedef enum {
-   kIdxIngressLogicalPort = 0,
-   kIdxEgressLogicalPort,
-   kIdxIngressNoOfPorts,
-   kIdxEgressNoOfPorts
+  kIdxIngressLogicalPort = 0,
+  kIdxEgressLogicalPort,
+  kIdxIngressNoOfPorts,
+  kIdxEgressNoOfPorts
 }uppl_val_path_fault_alarm_index;
 
 /*
@@ -167,6 +170,11 @@ typedef enum {
   kIdxSwitchAlarmStatus
 }uppl_val_switch_st_index;
 
+typedef enum {
+  kIdxSwitchSt = 0,
+  kIdxSwitchStatFlowCount
+}uppl_val_switch_st_detail_index;
+
 /*
  * KT_PORT specific
  */
@@ -210,6 +218,22 @@ typedef enum {
   kIdxPortLogicalPortId
 }uppl_val_port_st_index;
 
+typedef enum {
+  kIdxPortStatSt = 0,
+  kIdxPortStatRxPackets,
+  kIdxPortStatTxPackets,
+  kIdxPortStatRxBytes,
+  kIdxPortStatTxBytes,
+  kIdxPortStatRxDropped,
+  kIdxPortStatTxDropped,
+  kIdxPortStatRxErrors,
+  kIdxPortStatTxErrors,
+  kIdxPortStatRxFrameErr,
+  kIdxPortStatRxOverErr,
+  kIdxPortStatRxCrcErr,
+  kIdxPortStatCollisions
+}uppl_val_port_stats_index;
+
 typedef enum {
   kIdxPort = 0,
   kIdxPortConnectedSwitchId,
@@ -258,83 +282,7 @@ typedef enum {
   kIdxBoundaryStOperStatus
 }uppl_val_boundary_st_index;
 
-/*
- * @brief DB Return Status and (Error Code)
- */
 
-typedef enum {
-  UPPL_RC_SUCCESS = 0,
-  UPPL_RC_FAILURE,
-  UPPL_RC_ERR_BAD_REQUEST,
-  UPPL_RC_ERR_INVALID_CONFIGID,
-  UPPL_RC_ERR_INVALID_SESSIONID,
-  UPPL_RC_ERR_VERSION_NOT_SUPPORTED,
-  UPPL_RC_ERR_KEYTYPE_NOT_SUPPORTED,
-  UPPL_RC_ERR_DATATYPE_NOT_SUPPORTED,
-  UPPL_RC_ERR_ATTRIBUTE_NOT_SUPPORTED,
-  UPPL_RC_ERR_OPERATION_NOT_SUPPORTED,
-  UPPL_RC_ERR_OPERATION_NOT_ALLOWED,
-  UPPL_RC_ERR_INVALID_OPTION1,
-  UPPL_RC_ERR_INVALID_OPTION2,
-  UPPL_RC_ERR_CFG_SYNTAX,
-  UPPL_RC_ERR_CFG_SEMANTIC,
-  UPPL_RC_ERR_PARENT_DOES_NOT_EXIST,
-  UPPL_RC_ERR_NO_SUCH_INSTANCE,
-  UPPL_RC_ERR_INSTANCE_EXISTS,
-  UPPL_RC_ERR_EXCEEDS_RESOURCE_LIMIT,
-  UPPL_RC_ERR_DB_ACCESS,
-  UPPL_RC_ERR_NOT_SUPPORTED_BY_STANDBY,
-  UPPL_RC_ERR_RESOURCE_DISCONNECTED,
-  UPPL_RC_ERR_INVALID_STATE,
-  UPPL_RC_ERR_MERGE_CONFLICT,
-  UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION,
-  UPPL_RC_ERR_DRIVER_COMMUNICATION_FAILURE,
-  UPPL_RC_ERR_LOGICAL_COMMUNICATION_FAILURE,
-  UPPL_RC_ERR_SHUTTING_DOWN,
-  UPPL_RC_ERR_IPC_WRITE_ERROR,
-  UPPL_RC_ERR_DB_UPDATE,
-  UPPL_RC_ERR_DB_GET,
-  UPPL_RC_ERR_DB_DELETE,
-  UPPL_RC_ERR_DB_CREATE,
-  UPPL_RC_ERR_CANDIDATE_IS_DIRTY,
-  UPPL_RC_ERR_ATTRIBUTE_NOT_FOUND,
-
-  UPPL_RC_ERR_NOTIFICATION_NOT_SUPPORTED,
-  UPPL_RC_ERR_NOTIFICATION_HANDLING_FAILED,
-  UPPL_RC_ERR_ALARM_API,
-
-  UPPL_RC_ERR_CONF_FILE_READ,
-  UPPL_RC_ERR_CAP_FILE_READ,
-
-  UPPL_RC_ERR_DB_OPER_STATUS,
-
-  UPPL_RC_ERR_AUDIT_NOT_IN_PROGRESS,
-  UPPL_RC_ERR_FATAL_COPY_CONFIG,
-  UPPL_RC_ERR_FATAL_COPYDB_CANDID_RUNNING,
-  UPPL_RC_ERR_COPY_CANDID_TO_RUNNING,
-  UPPL_RC_ERR_COPY_RUNNING_TO_CANDID,
-  UPPL_RC_ERR_INVALID_CANDID_CONFIG,
-  UPPL_RC_ERR_WRITE_ENTITY_DB,
-  UPPL_RC_ERR_COPY_RUNNING_TO_START,
-  UPPL_RC_ERR_COPY_STARTUP_TO_CANDID,
-  UPPL_RC_ERR_CLEAR_DB,
-  UPPL_RC_ERR_IMPORT_START_INVALID_DRIVER_RESPONSE,
-  UPPL_RC_ERR_IMPORT_FAILURE,
-  UPPL_RC_ERR_IMPORT_MERGE_FAILURE,
-  UPPL_RC_ERR_COMMIT_OPERATION_NOT_ALLOWED,
-  UPPL_RC_ERR_COMMIT_UPDATE_DRIVER_FAILURE,
-  UPPL_RC_ERR_TRANSACTION_START,
-  UPPL_RC_ERR_INVALID_TRANSACT_START_REQ,
-  UPPL_RC_ERR_TRANSACTION_START_INVALID_DRIVER_RESPONSE,
-  UPPL_RC_ERR_VOTE_DB_INVALID,
-  UPPL_RC_ERR_VOTE_INVALID_REQ,
-  UPPL_RC_ERR_AUDIT_FAILURE,
-  UPPL_RC_ERR_IMPORT_IN,
-  UPPL_RC_ERR_ABORT_AUDIT,
-  UPPL_RC_ERR_ABORT_TRANSACTION,
-  UPPL_RC_ERR_MANDATORY_ATTRIB_NULL_VALUE,
-  UPPL_RC_ERR_MANDATORY_ATTRIB_INVALID,
-}UpplReturnCode;
 
 typedef enum {
   UPPL_SVC_CONFIGREQ = 0,
@@ -357,13 +305,13 @@ typedef enum {
 /*Alarm type enumeration body*/
 typedef enum {
   UPPL_ALARMS_PATH_FAULT = 0,   /*Physical Path Fault/Recovery*/
-  UPPL_ALARMS_OFS_BC_CORE_DOMAIN_SPLIT, /* Broadcast Core Domain Split/Recovery*/
-  UPPL_ALARMS_OFS_BC_SUB_DOMAIN_SPLIT, /* Broadcast Sub Domain Split/Recovery*/
+  UPPL_ALARMS_OFS_BC_CORE_DOMAIN_SPLIT, /* BC Core Domain Split/Recovery*/
+  UPPL_ALARMS_OFS_BC_SUB_DOMAIN_SPLIT, /* BC Sub Domain Split/Recovery*/
   UPPL_ALARMS_FLOW_ENT_FULL,    /*FlowEntry Full Occurred/Recovery*/
   UPPL_ALARMS_DEFAULT_FLOW,     /*Default Flow Failure/Success*/
   UPPL_ALARMS_PORT_DIRECTION,   /*Port direction is inconsistent/consistent*/
   UPPL_ALARMS_PORT_CONGES,      /*OFS Port Congestion Occurred/Recovered*/
-  UPPL_ALARMS_OFS_LACK_FEATURES,/*OFS is lack of features/OFS has recovered lack of features*/
+  UPPL_ALARMS_OFS_LACK_FEATURES,/*OFS has lack of features/recovered it*/
 } uppl_alarm_type_t;
 
 /*
@@ -399,6 +347,4 @@ typedef enum {
   UNC_OP_CLEAR_IMPORT_CONFIG
 } unc_addl_operation_t;
 
-
-#endif  //  _UPPL_COMMON_H_
-
+#endif  // UNC_UPPL_COMMON_H_
diff --git a/coordinator/include/uncxx/dataflow.hh b/coordinator/include/uncxx/dataflow.hh
new file mode 100644 (file)
index 0000000..16deca6
--- /dev/null
@@ -0,0 +1,250 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+#ifndef UNC_DATAFLOW_UTIL_HH_
+#define UNC_DATAFLOW_UTIL_HH_
+
+#include <pfc/debug.h>
+#include <pfc/log.h>
+#include <pfcxx/ipc_server.hh>
+#include <string>
+#include <map>
+#include <vector>
+#include <stack>
+#include <sstream>
+#include "pfcxx/module.hh"
+#include "pfcxx/synch.hh"
+#include "unc/upll_ipc_enum.h"
+#include <unc/keytype.h>
+
+using std::vector;
+using std::map;
+using std::stack;
+using std::string;
+using std::stringstream;
+using std::endl;
+using pfc::core::ipc::ServerSession;
+using pfc::core::ipc::ClientSession;
+
+#include "unc/unc_dataflow.h"
+
+#define kMaxLenCtrlrDomId  31
+
+namespace unc {
+namespace dataflow {
+
+enum IpctStructNum {
+  kidx_val_df_data_flow_cmn = 0,
+  kidx_val_vtn_dataflow_cmn
+};
+
+struct key_vtn_ctrlr_dataflow {
+  key_vtn  vtn_key;
+  uint8_t    ctrlr[32];
+  uint8_t    domain[32];
+  uint16_t   vlanid;
+  uint8_t    src_mac_address[6];
+  key_vtn_ctrlr_dataflow(key_vtn_dataflow_t *key_vtn_df, uint8_t *in_ctrlr,
+                         uint8_t *in_dom) {
+    vtn_key = key_vtn_df->vtn_key;
+    vlanid = key_vtn_df->vlanid; 
+    memcpy(ctrlr, in_ctrlr, sizeof(ctrlr));
+    memcpy(domain, in_dom, sizeof(domain));
+    memcpy(src_mac_address, key_vtn_df->src_mac_address, sizeof(src_mac_address));
+
+  }
+};
+
+
+typedef struct actions_vect_st {
+  UncDataflowFlowActionType action_type;
+  void *action_st_ptr;
+} val_actions_vect_st;
+
+class AddlData {
+ public:
+  AddlData();
+  ~AddlData();
+  uint32_t  reason;
+  uint32_t  controller_count;
+  uint32_t  max_dom_traversal_count;
+  uint32_t  current_traversal_count;
+  map<string, uint32_t> traversed_controllers;
+  string nonpfc_ingr_bdry_id;
+};
+
+class DataflowDummy : public pfc::core::Module {
+ public:
+  explicit DataflowDummy(const pfc_modattr_t *attr);
+
+  pfc_bool_t init();
+  pfc_bool_t fini();
+  static DataflowDummy* get_dataflow_dummy();
+ private:
+  static DataflowDummy* dataflow_dummy_;
+};
+
+class DataflowCmn;
+
+class DataflowDetail {
+ public:
+  DataflowDetail(IpctStructNum df_type, unc_keytype_ctrtype_t ctr_type = UNC_CT_PFC);
+  ~DataflowDetail();
+  // Read the DataflowCmn details from session as mentioned in FD API doc
+  int sessReadDataflow(ClientSession& sess, uint32_t& getres_pos);
+  val_df_data_flow_cmn_t *df_common;
+  val_vtn_dataflow_cmn_t *vtn_df_common;
+  map<UncDataflowFlowMatchType, void *> matches;
+  vector<val_actions_vect_st *> actions;
+  vector<val_df_data_flow_path_info_t *> path_infos;
+  vector<val_vtn_dataflow_path_info_t *> vtn_path_infos;
+  void *ckv_egress;
+  uint32_t flow_traversed;
+  IpctStructNum st_num_;
+};
+
+class DataflowCmn {
+ public:
+  DataflowCmn(bool isHead, DataflowDetail *df_segm);
+  ~DataflowCmn();
+  DataflowDetail *df_segment;
+  bool is_head;
+  map<UncDataflowFlowMatchType, void *> output_matches;
+  vector<DataflowCmn *> next;
+  DataflowCmn *head;
+  AddlData *addl_data;
+  uint32_t total_flow_count;
+  bool is_vlan_src_mac_changed_;
+  DataflowCmn *parent_node;
+
+  std::string ToStr();
+  // Write the DataflowCmn details into session as mentioned in FD API doc
+  int sessOutDataflow(ServerSession& sess, int& putresp_pos);
+  // Append given nextCtrlrFlow to 'next' vector
+  UncDataflowReason appendFlow(DataflowCmn* nextCtrlrFlow
+                  , map<string, uint32_t> & ctrlr_dom_count_map);
+
+  // check given 'output_matches' against 'matches'
+  bool check_match_condition(map <UncDataflowFlowMatchType
+                            , void *> output_matches);
+  // Apply 'actions' to 'matches' and fill 'output_matches'
+  void apply_action();
+  bool CompareDataflow(DataflowCmn *otherflow);
+
+  static string get_string(const AddlData *ptr);
+  static string get_string(const key_dataflow_t &k);
+  static string get_string(const key_ctr_dataflow_t &k);
+
+  static string get_string(const val_df_data_flow_cmn_t &val_obj);
+
+  static string get_string(const val_df_flow_match_t &val_obj);
+  static string get_string(const val_df_flow_match_in_port_t &val_obj);
+  static string get_string(const val_df_flow_match_dl_addr_t &val_obj);
+  static string get_string(const val_df_flow_match_dl_type_t &val_obj);
+  static string get_string(const val_df_flow_match_vlan_id_t &val_obj);
+  static string get_string(const val_df_flow_match_vlan_pcp_t &val_obj);
+  static string get_string(const val_df_flow_match_ip_tos_t &val_obj);
+  static string get_string(const val_df_flow_match_ip_proto_t &val_obj);
+  static string get_string(const val_df_flow_match_ipv4_addr_t &val_obj);
+  static string get_string(const val_df_flow_match_tp_port_t &val_obj);
+  static string get_string(const val_df_flow_match_ipv6_addr_t &val_obj);
+
+  static string get_string(const val_df_flow_action_t &val_obj);
+  static string get_string(const val_df_flow_action_output_port_t &val_obj);
+  static string get_string(const val_df_flow_action_enqueue_port_t &val_obj);
+  static string get_string(const val_df_flow_action_set_dl_addr_t &val_obj);
+  static string get_string(const val_df_flow_action_set_vlan_id_t &val_obj);
+  static string get_string(const val_df_flow_action_set_vlan_pcp_t &val_obj);
+  static string get_string(const val_df_flow_action_set_ipv4_t &val_obj);
+  static string get_string(const val_df_flow_action_set_ip_tos_t &val_obj);
+  static string get_string(const val_df_flow_action_set_tp_port_t &val_obj);
+  static string get_string(const val_df_flow_action_set_ipv6_t &val_obj);
+
+  static string get_string(const val_df_data_flow_path_info_t &val_obj);
+  static bool Compare(const key_dataflow_t& lhs, const key_dataflow_t& rhs);
+  void deep_copy();
+ /* VTN */
+  static string get_string(const key_vtn_dataflow_t &k); 
+  static string get_string(const val_vtn_dataflow_path_info_t &val_obj);
+  static string get_string(const val_vtn_dataflow_cmn_t &val_obj); 
+  static bool Compare(const key_vtn_ctrlr_dataflow& lhs, const key_vtn_ctrlr_dataflow& rhs);
+  bool CompareVtnDataflow(DataflowCmn *otherflow);
+
+};
+
+struct KeyDataflowCmp {
+  bool operator()(const key_dataflow_t& lhs, const key_dataflow_t& rhs);
+};
+
+
+
+struct KeyVtnDataflowCmp {
+  bool operator()(const key_vtn_ctrlr_dataflow &lhs, const key_vtn_ctrlr_dataflow &rhs);
+};
+
+class DataflowUtil {
+ public:
+  ~DataflowUtil();
+  // Write the DataflowCmn details into NB session as mentioned in FD API doc
+  int sessOutDataflows(ServerSession& sess);
+
+  // Method for PFCDriver module. Write the DataflowCmn details
+  // into physical session as mentioned in FD API doc
+  int sessOutDataflowsFromDriver(ServerSession& sess);
+  uint32_t storeFlowDetails(key_dataflow_t, vector<DataflowDetail*> );
+
+  uint32_t get_total_flow_count();
+  // Append given firstCtrlrFlow to 'firstCtrlrFlows' vector
+  uint32_t appendFlow(DataflowCmn* firstCtrlrFlow);
+
+  static string get_string(const val_df_data_flow_t &val_obj);
+  static string get_string(const val_df_data_flow_st_t &val_obj);
+  static string get_string(const val_vtn_dataflow_t &val_obj);
+  static bool checkMacAddress(uint8_t macaddr[6], uint8_t macaddr_mask[6]
+                             , uint8_t checkmacaddr[6]);
+  static bool checkMacAddress(uint8_t macaddr[6], uint8_t macaddr_mask[6]
+                             , uint8_t checkmacaddr[6]
+                             , uint8_t checkmacaddr_mask[6]);
+  static bool checkIPv4Address(in_addr ipaddr, in_addr ip_mask
+                             , in_addr checkipaddr);
+  static bool checkIPv4Address(uint32_t ipaddr, uint32_t ip_mask
+                             , uint32_t checkipaddr);
+  static bool checkByte(uint8_t ipaddr, uint8_t ip_mask
+                             , uint8_t checkipaddr);
+  static bool checkByte(uint8_t ipaddr, uint8_t ip_mask
+                             , uint8_t checkipaddr, uint8_t chk_ip_mask);
+  static bool checkIPv4Address(in_addr ipaddr, in_addr ip_mask
+                             , in_addr checkipaddr, in_addr chk_ip_mask);
+  static bool checkIPv4Address(uint32_t ipaddr, uint32_t ip_mask
+                             , uint32_t checkipaddr, uint32_t chk_ip_mask);
+  static bool checkIPv6Address(in6_addr ipv6addr, in6_addr ipv6_mask
+                             , in6_addr checkipv6addr);
+  static bool checkIPv6Address(in6_addr ipv6addr, in6_addr ipv6_mask
+                             , in6_addr checkipv6addr, in6_addr chk_ipv6_mask);
+  static string getipstring(in_addr ipnaddr, int radix);
+  static string getipstring(uint32_t ipaddr, int radix);
+  static string getbytestring(uint8_t ipaddr, int radix);
+
+  vector<DataflowCmn*>* get_firstCtrlrFlows() {
+    return &firstCtrlrFlows;
+  };
+  std::map<std::string, uint32_t>* get_ctrlr_dom_count_map() {
+    return &ctrlr_dom_count_map;
+  };
+  std::map<key_dataflow_t, vector<DataflowDetail *>, KeyDataflowCmp > pfc_flows;
+  std::map<key_vtn_ctrlr_dataflow, vector<DataflowDetail *>, KeyVtnDataflowCmp  > upll_pfc_flows;
+  std::map<std::string, uint32_t> ctrlr_dom_count_map;
+ private:
+  vector<DataflowCmn* > firstCtrlrFlows;
+};
+
+}  // namespace dataflow
+}  // namespace unc
+
+#endif  // UNC_DATAFLOW_UTIL_HH_
index 372d8ae63427fb1dcdad5971795e63159a4032c3..806165449bb58a3480e552a44cf0c32daedc3467 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -133,7 +133,7 @@ class TcLibInterface {
 
   /* audit related interfaces */
   /**
-   * @brief      Handling of audit start in audit operation
+   * @brief      Handling of audit start in UPLL/UPPL for audit operation
    * @param[in]  session_id 
    *             session on which audit request sent (user audit)
    *             session id will be 0 for driver audit
@@ -144,7 +144,24 @@ class TcLibInterface {
    */
   virtual TcCommonRet HandleAuditStart(uint32_t session_id,
                                        unc_keytype_ctrtype_t ctr_type,
-                                       std::string controller_id)=0;
+                                       std::string controller_id) = 0;
+
+  /**
+   * @brief      Handling of audit start in driver modules for audit operation
+   * @param[in]  session_id 
+   *             session on which audit request sent (user audit)
+   *             session id will be 0 for driver audit
+   * @param[in]  ctr_type controller type openflow/overlay/legacy 
+   * @param[in]  controller_id controller id intended for audit
+   * @param[in]  force_reconnect set to audit controller after reconnecting.
+   * @retval     TC_SUCCESS audit start success
+   * @retval     TC_FAILURE audit start failed
+   */
+  virtual TcCommonRet HandleAuditStart(uint32_t session_id,
+                                       unc_keytype_ctrtype_t ctr_type,
+                                       std::string controller_id,
+                                       pfc_bool_t force_reconnect) = 0;
+
 
   /**
    * @brief      Handling of audit end in audit operation
diff --git a/coordinator/ipc/dataflow.ipct b/coordinator/ipc/dataflow.ipct
new file mode 100644 (file)
index 0000000..2ef28ba
--- /dev/null
@@ -0,0 +1,218 @@
+#
+# Copyright (c) 2013-2014 NEC Corporation
+# All rights reserved.
+# 
+# This program and the accompanying materials are made available under the
+# terms of the Eclipse Public License v1.0 which accompanies this
+# distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+#
+
+include "uppl.ipct";
+include "upll.ipct";
+
+ipc_struct val_df_flow_match {
+    UINT32  match_type;
+};
+
+ipc_struct val_df_flow_match_in_port {
+    UINT32   in_port;
+};
+
+ipc_struct val_df_flow_match_dl_addr {
+    UINT8   dl_addr[6];
+    UINT8   v_mask;
+    UINT8   dl_addr_mask[6];
+};
+
+ipc_struct val_df_flow_match_dl_type {
+    UINT16  dl_type;
+};
+
+ipc_struct val_df_flow_match_vlan_id{
+    UINT16   vlan_id;
+};
+
+ipc_struct val_df_flow_match_vlan_pcp {
+    UINT8   vlan_pcp;
+};
+
+ipc_struct val_df_flow_match_ip_tos {
+    UINT8   ip_tos;
+};
+
+ipc_struct val_df_flow_match_ip_proto {
+    UINT8  ip_proto;
+};
+
+ipc_struct val_df_flow_match_ipv4_addr {
+    IPV4    ipv4_addr;
+    UINT8   v_mask;
+    IPV4    ipv4_addr_mask;
+};
+
+ipc_struct val_df_flow_match_tp_port
+{
+    UINT16  tp_port;
+    UINT8   v_mask;
+    UINT16  tp_port_mask;
+};
+
+ipc_struct val_df_flow_match_ipv6_addr {
+    IPV6    ipv6_addr;
+    UINT8   v_mask;
+    IPV6    ipv6_addr_mask;
+};
+
+   
+ipc_struct val_df_flow_action {
+    UINT32  action_type;       
+};
+
+ipc_struct val_df_flow_action_output_port {
+    UINT32  output_port;    
+};
+
+ipc_struct val_df_flow_action_enqueue_port {
+    UINT32  output_port;
+    UINT16  enqueue_id;     
+};
+
+ipc_struct val_df_flow_action_set_dl_addr {
+    UINT8   dl_addr[6];
+};
+
+ipc_struct val_df_flow_action_set_vlan_id {
+    UINT16  vlan_id;        
+};
+
+ipc_struct val_df_flow_action_set_vlan_pcp {
+    UINT8   vlan_pcp;      
+};
+
+ipc_struct val_df_flow_action_set_ipv4 {
+    IPV4    ipv4_addr;
+};
+
+ipc_struct val_df_flow_action_set_ip_tos {
+    UINT8   ip_tos;
+};
+
+ipc_struct val_df_flow_action_set_tp_port {
+    UINT16  tp_port;
+};
+
+ipc_struct val_df_flow_action_set_ipv6 {
+    IPV6    ipv6_addr;
+};
+
+ipc_struct val_df_data_flow_path_info {
+    UINT8   switch_id[256]; 
+    UINT8   in_port[32];   
+    UINT8   out_port[32];
+    UINT8   valid[3];
+};
+
+ipc_struct val_df_data_flow_cmn {
+    UINT8   controller_name[32];
+    UINT8   controller_type;
+    UINT64  flow_id;
+    UINT32  status;
+    UINT32  flow_type;
+    UINT32  policy_index;
+    UINT32  vtn_id;
+    UINT8   ingress_switch_id[256];
+    UINT8   in_port[32];
+    UINT64  in_station_id;
+    UINT8   in_domain[32];
+    UINT8   egress_switch_id[256];
+    UINT8   out_port[32];
+    UINT64  out_station_id;
+    UINT8   out_domain[32];
+    UINT32  path_info_count;
+    UINT32  match_count;
+    UINT32  action_count;
+    UINT8   valid[18];
+};
+
+ipc_struct val_df_data_flow {
+    UINT32  reason;
+    UINT32  controller_count;
+    UINT8   valid[2];
+};
+
+ipc_struct val_df_data_flow_st {
+    UINT64  packets;
+    UINT64  octets;
+    UINT32  duration;
+    UINT8   valid[3];
+};
+
+
+##
+## UNC_KT_DATAFLOW ipc structure
+##
+ipc_struct key_dataflow {
+  UINT8  controller_name[32];
+  UINT8  switch_id[256];
+  UINT8  port_id[32];
+  UINT16 vlan_id;
+  UINT8  src_mac_address[6];
+};
+
+##
+## UNC_KT_CTR_DATAFLOW ipc structure
+##
+ipc_struct key_ctr_dataflow {
+  key_ctr ctr_key;
+  UINT64 flow_id;
+};
+
+ipc_struct key_vtn_dataflow {
+  key_vtn  vtn_key;
+  UINT8    vnode_id[32];
+  UINT16   vlanid;
+  UINT8    src_mac_address[6];
+};
+
+ipc_struct val_vtn_dataflow {
+  UINT8                  valid[2];  
+  UINT32                 reason;
+  UINT32                 ctrlr_domain_count;
+};
+
+ipc_struct val_vtn_dataflow_cmn {
+  UINT8                          valid[21];
+  UINT8                          controller_id[32];
+  UINT8                          controller_type;
+  UINT64                         flow_id; 
+  UINT64                         created_time; 
+  UINT32                         idle_timeout;
+  UINT32                         hard_timeout;
+  UINT8                          ingress_vnode[32];
+  UINT8                          ingress_vinterface[32];
+  UINT8                          ingress_switch_id[256];
+  UINT8                          ingress_port_id[32];
+  UINT8                          ingress_logical_port_id[320]; 
+  UINT8                          ingress_domain[32];  
+  UINT8                          egress_vnode[32];
+  UINT8                          egress_vinterface[32];
+  UINT8                          egress_switch_id[256];
+  UINT8                          egress_port_id[32];
+  UINT8                          egress_logical_port_id[320]; 
+  UINT8                          egress_domain[32];  
+  UINT32                         match_count;
+  UINT32                         action_count; 
+  UINT32                         path_info_count;
+};
+
+
+ipc_struct val_vtn_dataflow_path_info {
+  UINT8   valid[6];
+  UINT8   in_vnode[32];
+  UINT8   in_vif[32];
+  UINT8   out_vnode[32];
+  UINT8   out_vif[32];
+  UINT8   vlink_flag;     
+  UINT8   status;
+};
+
index 891f528a1b3ea2972db5befe8a675f9f07ffc89a..b9d094292b6728c7ad44f9b0b1d3e66b7353ff58 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2012-2013 NEC Corporation
+# Copyright (c) 2012-2014 NEC Corporation
 # All rights reserved.
 # 
 # This program and the accompanying materials are made available under the
@@ -10,7 +10,6 @@
 # value structure for ALARM
 
 include "upll.ipct";
-
 ipc_struct pfcdrv_val_alarm_data {
  UINT64 ingress_ofs_dpid;
  UINT64 egress_ofs_dpid;
@@ -103,3 +102,16 @@ ipc_struct pfcdrv_val_vbrif_policingmap {
   pfcdrv_val_vbrif_vextif   val_vbrif_vextif;
 };
 
+ipc_struct pfcdrv_trunk_port_info {
+ UINT64  dpid;
+ UINT8  trunk_name[32];
+ UINT8  port_name[16];
+ UINT8  status;
+};
+
+# vbr vlanmap vlaue structure
+ipc_struct pfcdrv_val_vlan_map {
+  UINT8         valid[2];
+  val_vlan_map  vm;
+  UINT32        bdry_ref_count;
+};
index 41bcbb4e00cea09265181fcf72eb6af5b272c4e0..c2fe1f76cd250866e5bf9428f370cc12578f28ec 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2012-2013 NEC Corporation
+# Copyright (c) 2012-2014 NEC Corporation
 # All rights reserved.
 # 
 # This program and the accompanying materials are made available under the
@@ -173,6 +173,12 @@ ipc_struct val_switch_st {
   UINT8 valid[6];
 };
 
+ipc_struct val_switch_st_detail {
+  val_switch_st switch_st_val;
+  UINT32 flow_count;
+  UINT8 valid[2];
+};
+
 ipc_struct val_flow_entry_full_alarm {
  UINT8 ofs_dpid[256];
 };
@@ -219,6 +225,23 @@ ipc_struct val_port_st {
   UINT8 valid[8];
 };
 
+ipc_struct val_port_stats {
+   val_port_st port_st_val;
+   UINT64 rx_packets;
+   UINT64 tx_packets;
+   UINT64 rx_bytes;
+   UINT64 tx_bytes;
+   UINT64 rx_dropped;
+   UINT64 tx_dropped;
+   UINT64 rx_errors;
+   UINT64 tx_errors;
+   UINT64 rx_frame_err;
+   UINT64 rx_over_err;
+   UINT64 rx_crc_err;
+   UINT64 collisions;
+   UINT8 valid[13];
+};
+
 ipc_struct val_port_st_neighbor {
   val_port port;
   UINT8 connected_switch_id[256];
diff --git a/coordinator/java/ROOT/Makefile b/coordinator/java/ROOT/Makefile
new file mode 100644 (file)
index 0000000..9e8791f
--- /dev/null
@@ -0,0 +1,30 @@
+#
+# Copyright (c) 2013-2014 NEC Corporation
+# All rights reserved.
+# 
+# This program and the accompanying materials are made available under the
+# terms of the Eclipse Public License v1.0 which accompanies this
+# distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+#
+
+##
+## Makefile that drives the production of ROOT context
+##
+
+include ../defs.mk
+
+ifdef  JAVA_EXT_MK
+
+# Attributes for manifest file.
+JAVA_SPEC_TITLE         = VTN Service WEB API redirection for OpenStack
+JAVA_IMPL_TITLE         = $(JAVA_SPEC_TITLE)
+
+include ../rules.mk
+
+else   # !JAVA_EXT_MK
+
+all install clean clobber doc:
+
+.PHONY:        all install clean clobber doc
+
+endif  # JAVA_EXT_MK
diff --git a/coordinator/java/ROOT/src/org/opendaylight/vtn/root/VtnRedirectFilter.java b/coordinator/java/ROOT/src/org/opendaylight/vtn/root/VtnRedirectFilter.java
new file mode 100644 (file)
index 0000000..525b707
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.vtn.root;
+
+import java.io.IOException;
+
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * Filter Class VtnRedirectFilter that forwards all requests corresponding to
+ * OpenStack APIs to vtn-webapi application
+ */
+public class VtnRedirectFilter implements Filter {
+
+       @Override
+       public void doFilter(ServletRequest req, ServletResponse res,
+                       FilterChain chain) throws ServletException, IOException {
+               HttpServletRequest request = (HttpServletRequest) req;
+
+               String requestURI = request.getRequestURI();
+               String query = request.getQueryString();
+
+               /*
+                * forwards requests corresponding to OpenStack operations
+                */
+               if (requestURI.startsWith("/tenants")) {
+                       if (query != null) {
+                               requestURI = requestURI + "?" + query;
+                       }
+                       req.getServletContext().getContext("/vtn-webapi")
+                                       .getRequestDispatcher(requestURI).forward(req, res);
+               }
+       }
+
+       /*
+        * Destroy method for Filter - No destruction is required
+        * 
+        * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
+        */
+       @Override
+       public void destroy() {
+               // No implementation required
+       }
+
+       /*
+        * Initialization method for Filter - No initialization is required
+        * 
+        * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
+        */
+       @Override
+       public void init(FilterConfig arg0) throws ServletException {
+               // No implementation required
+       }
+}
+
diff --git a/coordinator/java/ROOT/webapp/META-INF/context.xml b/coordinator/java/ROOT/webapp/META-INF/context.xml
new file mode 100644 (file)
index 0000000..9af4c2c
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version='1.0' encoding='utf-8'?>
+
+<!--
+#
+# Copyright (c) 2014 NEC Corporation
+# All rights reserved.
+#
+# This program and the accompanying materials are made available under the
+# terms of the Eclipse Public License v1.0 which accompanies this
+# distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+#
+-->
+
+<Context crossContext="true" />
diff --git a/coordinator/java/ROOT/webapp/WEB-INF/web.xml b/coordinator/java/ROOT/webapp/WEB-INF/web.xml
new file mode 100644 (file)
index 0000000..c71ca33
--- /dev/null
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+#
+# Copyright (c) 2013-2014 NEC Corporation
+# All rights reserved.
+#
+# This program and the accompanying materials are made available under the
+# terms of the Eclipse Public License v1.0 which accompanies this
+# distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+#
+-->
+
+<web-app xmlns="http://java.sun.com/xml/ns/javaee"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
+                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
+  version="3.0"
+  metadata-complete="true">
+
+  <display-name>
+    Welcome to Tomcat
+  </display-name>
+  <description>
+    Welcome to Tomcat
+  </description>
+
+  <filter> 
+    <filter-name>vtnFilter</filter-name>
+    <filter-class>org.opendaylight.vtn.root.VtnRedirectFilter</filter-class> 
+  </filter> 
+  <filter-mapping> 
+    <filter-name>vtnFilter</filter-name>
+    <url-pattern>/tenants/*</url-pattern>
+  </filter-mapping>
+
+</web-app>
diff --git a/coordinator/java/ROOT/webapp/index.html b/coordinator/java/ROOT/webapp/index.html
new file mode 100644 (file)
index 0000000..2fc3750
--- /dev/null
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!--
+#
+# Copyright (c) 2013-2014 NEC Corporation
+# All rights reserved.
+#
+# This program and the accompanying materials are made available under the
+# terms of the Eclipse Public License v1.0 which accompanies this
+# distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+#
+-->
+
+<html>
+  <head>
+    <meta http-equiv="Content-Style-Type" content="text/css">
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>Welcome to Tomcat</title>
+  </head>
+
+  <body>
+    <h1>Welcome to Tomcat</h1>
+    <p>
+      Tomcat is running.
+    </p>
+  </body>
+</html>
index 8eaad9fc8677ca54ad729f4013d879180a1c3409..2a232e2933d79254e9c762cba5b47031ddf29f41 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2012-2013 NEC Corporation
+# Copyright (c) 2012-2014 NEC Corporation
 # All rights reserved.
 # 
 # This program and the accompanying materials are made available under the
@@ -61,7 +61,7 @@ all-subdirs install-subdirs clean-subdirs:    $(SUBDIRS)
 
 all-subdirs:           SUBDIR_TARGET = all
 install-subdirs:       SUBDIR_TARGET = install
-clean-subdirs:         SUBDIR_TARGET = install
+clean-subdirs:         SUBDIR_TARGET = clean
 
 include $(BLDDIR)/rules.mk
 include $(JAVA_EXT_RULES_MK)
index 88f47aec6c6ddf8dfc67cd4acbdcc14a6cd9e6b7..3451196c362ea90a64da63fe7b896890d5c1ef5a 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2012-2013 NEC Corporation
+# Copyright (c) 2012-2014 NEC Corporation
 # All rights reserved.
 # 
 # This program and the accompanying materials are made available under the
@@ -22,8 +22,8 @@ JAVA_IMPL_TITLE               = $(JAVA_SPEC_TITLE)
 # Use PFC-IPC and PFC-Core utility library.
 JAVA_LIBS              = pfc_ipc.jar pfc_util.jar
 
-# Use Google gson.
-JAVA_EXTLIBS           = $(GOOGLE_GSON)
+# Define external libraries.
+JAVA_EXTLIBS           = $(GOOGLE_GSON) $(COMMONS_NET) $(POSTGRESQL_JDBC)
 
 # Install as Tomcat shared library.
 TOMCAT_SHARED          = 1
index 69f48ddc6d483a2c16bef1bbf836d3e812a4e1b2..f51df77fb17563f19ddde9b379950e1a749cfb7b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -8,6 +8,8 @@
  */
 package org.opendaylight.vtn.javaapi;
 
+import java.sql.Connection;
+
 import com.google.gson.JsonObject;
 import org.opendaylight.vtn.core.util.Logger;
 import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
@@ -19,6 +21,7 @@ import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum.UncResultCode;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
 import org.opendaylight.vtn.javaapi.reflect.AnnotationReflect;
 import org.opendaylight.vtn.javaapi.resources.AbstractResource;
+import org.opendaylight.vtn.javaapi.resources.ConfigResource;
 import org.opendaylight.vtn.javaapi.util.VtnServiceUtil;
 
 /**
@@ -36,12 +39,15 @@ public class RestResource implements VtnServiceResource {
        private long configID;
 
        private transient AbstractResource resource;
-       private transient final VtnServiceExceptionHandler exceptionHandler;
+       private final transient VtnServiceExceptionHandler exceptionHandler;
 
        /* Resource path and Response information instances */
        private String path;
        private transient JsonObject info;
-
+       
+       /* OpenStack DB Connection instance */
+       Connection openStackConnection;
+       
        /**
         * Instantiates a new rest resource.
         */
@@ -104,6 +110,9 @@ public class RestResource implements VtnServiceResource {
                                        resource.setExceptionHandler(exceptionHandler);
                                }
                                resource.setConnPool();
+                               if (resource instanceof ConfigResource) {
+                                       resource.setOpenStackConnection(openStackConnection);
+                               }
                        }
                } catch (final RuntimeException exception) {
                        exceptionHandler.handle(
@@ -136,9 +145,9 @@ public class RestResource implements VtnServiceResource {
                                final JsonObject errorJsonObject = new JsonObject();
                                final JsonObject error = new JsonObject();
                                error.addProperty(VtnServiceJsonConsts.CODE,
-                                               UncCommonEnum.UncResultCode.UNC_CLIENT_ERROR.getValue());
+                                               UncCommonEnum.UncResultCode.UNC_NOT_FOUND.getValue());
                                error.addProperty(VtnServiceJsonConsts.MSG,
-                                               VtnServiceConsts.RESOURCE_PATH_INCORRECT);
+                                               UncCommonEnum.UncResultCode.UNC_NOT_FOUND.getMessage());
                                errorJsonObject.add(VtnServiceJsonConsts.ERROR, error);
                                info = errorJsonObject;
                        }
@@ -151,7 +160,7 @@ public class RestResource implements VtnServiceResource {
         * 
         * @return the resource path
         */
-       public String getPath() {
+       public final String getPath() {
                LOG.trace("Return from RestResource#getResourcePath()");
                LOG.debug("Return value for path : " + path);
                return path;
@@ -162,7 +171,7 @@ public class RestResource implements VtnServiceResource {
         * 
         */
        @Override
-       public int delete() {
+       public final int delete() {
                LOG.trace("Start RestResource#delete()");
                int responseCode = UncCommonEnum.UncResultCode.UNC_CLIENT_ERROR
                                .getValue();
@@ -184,6 +193,8 @@ public class RestResource implements VtnServiceResource {
                                // if response is not success, then set the info for error
                                if (responseCode != UncResultCode.UNC_SUCCESS.getValue()) {
                                        info = resource.getInfo();
+                               } else {
+                                       openStackConnection = resource.getOpenStackConnection();
                                }
                        } catch (final VtnServiceException exception) {
                                exceptionHandler.handle(
@@ -217,7 +228,7 @@ public class RestResource implements VtnServiceResource {
         * 
         */
        @Override
-       public int delete(final JsonObject queryString) {
+       public final int delete(final JsonObject queryString) {
                LOG.trace("Start RestResource#delete()");
                int responseCode = UncResultCode.UNC_CLIENT_ERROR.getValue();
                /*
@@ -237,6 +248,8 @@ public class RestResource implements VtnServiceResource {
                                // if response is not success, then set the info for error
                                if (responseCode != UncResultCode.UNC_SUCCESS.getValue()) {
                                        info = resource.getInfo();
+                               } else {
+                                       openStackConnection = resource.getOpenStackConnection();
                                }
                        } catch (final VtnServiceException exception) {
                                exceptionHandler.handle(
@@ -270,7 +283,7 @@ public class RestResource implements VtnServiceResource {
         * 
         */
        @Override
-       public int get() {
+       public final int get() {
                LOG.trace("Start RestResource#get()");
                int responseCode = UncResultCode.UNC_CLIENT_ERROR.getValue();
                /*
@@ -287,6 +300,7 @@ public class RestResource implements VtnServiceResource {
                                                .getValue();
                                responseCode = resource.get();
                                info = resource.getInfo();
+                               openStackConnection = resource.getOpenStackConnection();
                        } catch (final VtnServiceException exception) {
                                exceptionHandler.handle(
                                                Thread.currentThread().getStackTrace()[1]
@@ -320,7 +334,7 @@ public class RestResource implements VtnServiceResource {
         * 
         */
        @Override
-       public int get(final JsonObject queryString) {
+       public final int get(final JsonObject queryString) {
                LOG.trace("Start RestResource#get()");
                int responseCode = UncResultCode.UNC_CLIENT_ERROR.getValue();
                /*
@@ -339,6 +353,7 @@ public class RestResource implements VtnServiceResource {
                                                .getValue();
                                responseCode = resource.get(queryString);
                                info = resource.getInfo();
+                               openStackConnection = resource.getOpenStackConnection();
                        } catch (final VtnServiceException exception) {
                                exceptionHandler.handle(
                                                Thread.currentThread().getStackTrace()[1]
@@ -372,7 +387,7 @@ public class RestResource implements VtnServiceResource {
         * 
         */
        @Override
-       public int post(final JsonObject requestBody) {
+       public final int post(final JsonObject requestBody) {
                LOG.trace("Start RestResource#post()");
                int responseCode = UncResultCode.UNC_CLIENT_ERROR.getValue();
                /*
@@ -392,6 +407,8 @@ public class RestResource implements VtnServiceResource {
                                // if response is not success, then set the info for error
                                if (responseCode != UncResultCode.UNC_SUCCESS.getValue()) {
                                        info = resource.getInfo();
+                               } else {
+                                       openStackConnection = resource.getOpenStackConnection();
                                }
                        } catch (final VtnServiceException exception) {
                                exceptionHandler.handle(
@@ -425,7 +442,7 @@ public class RestResource implements VtnServiceResource {
         * 
         */
        @Override
-       public int put(final JsonObject requestBody) {
+       public final int put(final JsonObject requestBody) {
                LOG.trace("Start RestResource#put()");
                int responseCode = UncResultCode.UNC_CLIENT_ERROR.getValue();
                /*
@@ -445,6 +462,8 @@ public class RestResource implements VtnServiceResource {
                                // if response is not success, then set the info for error
                                if (responseCode != UncResultCode.UNC_SUCCESS.getValue()) {
                                        info = resource.getInfo();
+                               } else {
+                                       openStackConnection = resource.getOpenStackConnection();
                                }
                        } catch (final VtnServiceException exception) {
                                exceptionHandler.handle(
@@ -478,7 +497,7 @@ public class RestResource implements VtnServiceResource {
         * 
         * @return the config id
         */
-       public long getConfigID() {
+       public final long getConfigID() {
                LOG.trace("Return from RestResource#getConfigId()");
                LOG.debug("Return value for configID : " + configID);
                return configID;
@@ -490,7 +509,7 @@ public class RestResource implements VtnServiceResource {
         * @param configId
         *            the new config id
         */
-       public void setConfigID(final long configId) {
+       public final void setConfigID(final long configId) {
                LOG.trace("Start RestResource#setConfigId()");
                LOG.debug("Input value for configId : " + configId);
                this.configID = configId;
@@ -505,7 +524,7 @@ public class RestResource implements VtnServiceResource {
         * 
         * @return the session id
         */
-       public long getSessionID() {
+       public final long getSessionID() {
                LOG.trace("Return from RestResource#getSessionId()");
                LOG.debug("Return value for sessionID : " + sessionID);
                return sessionID;
@@ -517,7 +536,7 @@ public class RestResource implements VtnServiceResource {
         * @param sessionId
         *            the new session id
         */
-       public void setSessionID(final long sessionId) {
+       public final void setSessionID(final long sessionId) {
                LOG.trace("Start RestResource#setSessionId()");
                LOG.debug("Input value for sessionId : " + sessionId);
                this.sessionID = sessionId;
@@ -532,7 +551,7 @@ public class RestResource implements VtnServiceResource {
         * 
         * @return the info
         */
-       public JsonObject getInfo() {
+       public final JsonObject getInfo() {
                LOG.trace("Return from RestResource#getInfo()");
                if (resource != null) {
                        info = resource.getInfo();
@@ -563,13 +582,14 @@ public class RestResource implements VtnServiceResource {
                try {
                        resource.getValidator().validate(requestType, resource);
                } catch (final Exception exception) {
-                       resource.createErrorInfo(UncCommonEnum.UncResultCode.UNC_CLIENT_ERROR
+                       resource.createErrorInfo(UncCommonEnum.UncResultCode.UNC_INVALID_ARGUMENT
                                        .getValue());
                        final JsonObject error = resource.getInfo().getAsJsonObject(
                                        VtnServiceJsonConsts.ERROR);
                        error.addProperty(VtnServiceJsonConsts.MSG,
                                        error.get(VtnServiceJsonConsts.MSG).getAsString()
-                                                       + resource.getValidator().getInvalidParameter());
+                                                       + resource.getValidator().getInvalidParameter()
+                                                       + VtnServiceConsts.CLOSE_SMALL_BRACES);
                        exceptionHandler.raise(
                                        Thread.currentThread().getStackTrace()[1].getClassName()
                                                        + VtnServiceConsts.HYPHEN
@@ -599,18 +619,36 @@ public class RestResource implements VtnServiceResource {
                        /*
                         * remove the parameters which contains empty strings
                         */
-                       if(VtnServiceConsts.POST.equals(requestType)){
+                       if (VtnServiceConsts.POST.equals(requestType)
+                                       && !VtnServiceUtil.isOpenStackResurce(resource)) {
                                VtnServiceUtil.removeEmptyParamas(requestBody);
                        }
                        resource.getValidator().validate(requestType, requestBody);
                } catch (final Exception exception) {
-                       resource.createErrorInfo(UncCommonEnum.UncResultCode.UNC_CLIENT_ERROR
-                                       .getValue());
-                       final JsonObject error = resource.getInfo().getAsJsonObject(
-                                       VtnServiceJsonConsts.ERROR);
-                       error.addProperty(VtnServiceJsonConsts.MSG,
-                                       error.get(VtnServiceJsonConsts.MSG).getAsString()
-                                                       + resource.getValidator().getInvalidParameter());
+                       if (resource
+                                       .getValidator()
+                                       .getInvalidParameter()
+                                       .equals(UncCommonEnum.UncResultCode.UNC_INVALID_FORMAT
+                                                       .getMessage())) {
+                               resource.createErrorInfo(UncCommonEnum.UncResultCode.UNC_INVALID_FORMAT
+                                               .getValue());
+                       } else if (resource
+                                       .getValidator()
+                                       .getInvalidParameter()
+                                       .equals(UncCommonEnum.UncResultCode.UNC_METHOD_NOT_ALLOWED
+                                                       .getMessage())) {
+                               resource.createErrorInfo(UncCommonEnum.UncResultCode.UNC_METHOD_NOT_ALLOWED
+                                               .getValue());
+                       } else {
+                               resource.createErrorInfo(UncCommonEnum.UncResultCode.UNC_INVALID_ARGUMENT
+                                               .getValue());
+                               final JsonObject error = resource.getInfo().getAsJsonObject(
+                                               VtnServiceJsonConsts.ERROR);
+                               error.addProperty(VtnServiceJsonConsts.MSG,
+                                               error.get(VtnServiceJsonConsts.MSG).getAsString()
+                                                               + resource.getValidator().getInvalidParameter()
+                                                               + VtnServiceConsts.CLOSE_SMALL_BRACES);
+                       }
                        exceptionHandler.raise(
                                        Thread.currentThread().getStackTrace()[1].getClassName()
                                                        + VtnServiceConsts.HYPHEN
@@ -625,6 +663,11 @@ public class RestResource implements VtnServiceResource {
                }
        }
 
+       /**
+        * 
+        * @param requestBody
+        * @throws VtnServiceException
+        */
        private void validateJsonOp(final JsonObject requestBody)
                        throws VtnServiceException {
                try {
@@ -657,4 +700,13 @@ public class RestResource implements VtnServiceResource {
                }
        }
 
+       /**
+        * Return the resource instance corresponding to resourcePath set by
+        * setPath() interface
+        * 
+        * @return
+        */
+       public AbstractResource getResource() {
+               return resource;
+       }
 }
index 65e3fddc0fd85731a7abd37dca09a10a3908a1ac..e7b2f661e4b230df5e7f77a41021e9a8d21bcd56 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -14,17 +14,16 @@ import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
 /**
- * The Interface UNCField.
- * Annotation interface from URI parameters
+ * The Interface UNCField. Annotation interface from URI parameters
  */
-@Target({ElementType.FIELD})
+@Target({ ElementType.FIELD })
 @Retention(RetentionPolicy.RUNTIME)
 public @interface UNCField {
 
        /**
         * Value.
-        *
+        * 
         * @return the string
         */
-       public String value();
+       String value();
 }
index 8a7895da780a39af046d7068de381021a58737b0..7526803a237a78d2f2c9a350d64e555358412ef0 100644 (file)
@@ -1,11 +1,12 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
+
 package org.opendaylight.vtn.javaapi.annotation;
 
 import java.lang.annotation.ElementType;
@@ -14,10 +15,9 @@ import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
 /**
- * The Interface UNCVtnService.
- * Annotation interface for URI
+ * The Interface UNCVtnService. Annotation interface for URI
  */
-@Target({ElementType.TYPE})
+@Target({ ElementType.TYPE })
 @Retention(RetentionPolicy.RUNTIME)
 public @interface UNCVtnService {
 
@@ -26,5 +26,5 @@ public @interface UNCVtnService {
         *
         * @return the string
         */
-       public String path();
+       String path();
 }
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/annotation/package-info.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/annotation/package-info.java
new file mode 100644 (file)
index 0000000..4e3de56
--- /dev/null
@@ -0,0 +1,14 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * Package contains Annotation classes for resources and resource fields .
+ */
+package org.opendaylight.vtn.javaapi.annotation;
+
index ada51439bb6e012919ee8c61382061ee90411162..38fef110020732d4399fdc9603be33c7d1ac7330 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -52,7 +52,7 @@ public class IpcChannelConnection {
         * 
         * @return the counter
         */
-       public int getCounter() {
+       public final int getCounter() {
                LOG.trace("Return from IpcChannelConnection#getCounter()");
                return counter;
        }
@@ -63,7 +63,7 @@ public class IpcChannelConnection {
         * @param altConnections
         *            the new alt connections
         */
-       public void setAltConnections(final AltConnection altConnections) {
+       public final void setAltConnections(final AltConnection altConnections) {
                LOG.trace("Start IpcChannelConnection#setAltConnections()");
                this.altConnections = altConnections;
                LOG.trace("Complete IpcChannelConnection#setAltConnections()");
@@ -82,7 +82,7 @@ public class IpcChannelConnection {
         * @throws VtnServiceException
         *             the vtn service exception
         */
-       public ClientSession getSession(final String serviceName,
+       public final ClientSession getSession(final String serviceName,
                        final int serviceID,
                        final VtnServiceExceptionHandler exceptionHandler)
                        throws VtnServiceException {
@@ -116,7 +116,7 @@ public class IpcChannelConnection {
         * @param session
         *            the session
         */
-       public void destroySession(final ClientSession session) {
+       public final void destroySession(final ClientSession session) {
                LOG.trace("Start IpcChannelConnection#destroySession()");
                session.destroy();
                // decrease the counter
index 18e6e4888a5213f8316437b4a5667f78b448b394..f111ebf18eb9d8e006df0967862b63c2c06df4e7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -8,6 +8,7 @@
  */
 package org.opendaylight.vtn.javaapi.connection;
 
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -63,7 +64,7 @@ public final class IpcConnPool {
                        throws VtnServiceException {
 
                LOG.trace("Start IpcConnPool#init()");
-               VtnServiceConfiguration configuration = VtnServiceInitManager
+               final VtnServiceConfiguration configuration = VtnServiceInitManager
                                .getConfigurationMap();
                /*
                 * Create the ChaneelAddress instances for each of the IPC server after
@@ -145,7 +146,7 @@ public final class IpcConnPool {
                if (channelAddressesMap != null && !channelAddressesMap.isEmpty()) {
 
                        channelConnectionMap = new HashMap<ChannelAddress, Set<IpcChannelConnection>>();
-                       sessionMap = new HashMap<ClientSession, IpcChannelConnection>();
+                       sessionMap = Collections.synchronizedMap(new HashMap<ClientSession, IpcChannelConnection>());
                        int poolSize = 0;
 
                        // retrieve the key set for Channel Address
@@ -312,6 +313,7 @@ public final class IpcConnPool {
                                // at a time only one thread can destroy the session
                                synchronized (ipcChannelConnection) {
                                        ipcChannelConnection.destroySession(session);
+                                       sessionMap.remove(session);
                                }
                        }
                }
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/connection/package-info.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/connection/package-info.java
new file mode 100644 (file)
index 0000000..ea0c622
--- /dev/null
@@ -0,0 +1,14 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * Package contains Java API Conn Pool implementation classes .
+ */
+package org.opendaylight.vtn.javaapi.connection;
+
index ed8b721cb11e0cba45e200a9365c730fa70aa4ed..2fd5ae3258209d6feb3329b82bbf5e22b1674520 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -13,12 +13,14 @@ package org.opendaylight.vtn.javaapi.constants;
  */
 public final class VtnServiceConsts {
 
-       public static final String JAVAAPI_VERSION = "V1.0";
+       public static final String JAVAAPI_VERSION = "V1.1";
 
        public static final int IPC_RESUL_CODE_INDEX = 7;
        public static final int IPC_COUNT_INDEX = 2;
-       public static final int UPPL_RC_ERR_NO_SUCH_INSTANCE = 16;
-       public static final int UPLL_RC_ERR_NO_SUCH_INSTANCE = 11;
+       public static final int UPPL_RC_ERR_NO_SUCH_INSTANCE = 2015;
+       public static final int UPLL_RC_ERR_NO_SUCH_INSTANCE = 1010;
+       public static final int UPPL_ERROR_INITIAL_INDEX = 1999;
+       public static final int UPLL_ERROR_INITIAL_INDEX = 999;
 
        public static final String PUT = "put";
        public static final String GET = "get";
@@ -27,6 +29,7 @@ public final class VtnServiceConsts {
 
        public static final String COMMON_CONF_FILEPATH = "org/opendaylight/vtn/javaapi/conf.properties";
        public static final String APP_CONF_FILEPATH = "webapp_connection.properties";
+       public static final String MAPMODE_CONF_FILEPATH = "mapmode.properties";
        public static final String UPPL_ERRORS_FILEPATH = "org/opendaylight/vtn/javaapi/ipc/enums/uppl_errors.properties";
        public static final String UPLL_ERRORS_FILEPATH = "org/opendaylight/vtn/javaapi/ipc/enums/upll_errors.properties";
        public static final String SINGLETON_EXCEPTION = "Already instantiated";
@@ -47,7 +50,7 @@ public final class VtnServiceConsts {
        public static final String NETMASK_REGEX = "^(((128|192|224|240|248|252|254)\\.0\\.0\\.0)|(255\\.(0|128|192|224|240|248|252|254)\\.0\\.0)|(255\\.255\\.(0|128|192|224|240|248|252|254)\\.0)|(255\\.255\\.255\\.(0|128|192|224|240|248|252|254)))$";
 
        public static final String ALPHANUM_REGEX = "^[0-9A-Za-z](\\w)*$";
-       public static final String ALARM_REGEX="^(\\d{1,19})$";
+       public static final String ALARM_REGEX = "^(\\d{1,19})$";
        public static final String SLASH = "/";
        public static final String EMPTY_STRING = "";
        public static final String COMMA = ",";
@@ -73,7 +76,7 @@ public final class VtnServiceConsts {
        public static final long INVALID_SESSIONID = 0;
 
        public static final String WHITESPACE = "\\s";
-       public static final String RESOURCE_PATH_INCORRECT = "Resource path is not correct";
+       // public static final String INVALID_FORMAT = "Invalid Format";
        public static final String RESOURCE_METHOD_INCORRECT = "Resource method is not implemented";
 
        public static final String UTF8 = "UTF-8";
@@ -81,15 +84,21 @@ public final class VtnServiceConsts {
        public static final String INDEX_ERROR_MSG = "index parameter not allowed for op : count";
        public static final String VERSION_REGEX = "^[0-9][0-9.]*[0-9]$|^[0-9]$";
 
-
        public static final String WEB_API = "WEB-API";
        public static final String UNC_GUI = "UNC-GUI";
        public static final String ZERO = "0";
        public static final String INCORRECT_METHOD_INVOCATION = "Incorrect method invocation";
-       
+
        public static final int DEFAULT_NUMBER = 0;
        public static final String DEFAULT_IP = "0.0.0.0";
        public static final String DEFAULT_IPV6 = "0000:0000:0000:0000:0000:0000:0000:0000";
        public static final String DEFAULT_MAC = "0000.0000.0000";
-       
+
+       public static final String OPEN_SMALL_BRACES = "(";
+       public static final String CLOSE_SMALL_BRACES = ")";
+
+       public static final String QUESTION_MARK = "?";
+
+       public static final String QUOTE_CHAR = "\"";
+
 }
index 9a6c89b810b7d2af67af541658f7198d358df4bf..9b1efc3ff223648dfac09d5951d26e479d252867 100644 (file)
@@ -1,13 +1,13 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.vtn.javaapi.constants;
 
+package org.opendaylight.vtn.javaapi.constants;
 
 /**
  * VtnServiceIpcConsts.
@@ -27,10 +27,10 @@ public final class VtnServiceIpcConsts {
        public static final String CSROWSTATUS = "cs_row_status";
        public static final String CSATTR = "cs_attr";
        public static final String IPTYPE = "ip_type";
-       public static final String MACDST="mac_dst";
-       public static final String NWMNAME="nwm_name";
-       public static final String MACSRC="mac_src";
-       public static final String DSTIP="dst_ip";
+       public static final String MACDST = "mac_dst";
+       public static final String NWMNAME = "nwm_name";
+       public static final String MACSRC = "mac_src";
+       public static final String DSTIP = "dst_ip";
        public static final String VBRKEY = "vbr_key";
        public static final String VBRFLOWFILTER = "flowfilter_key";
        public static final String VBRIF = "interface";
@@ -38,12 +38,13 @@ public final class VtnServiceIpcConsts {
        public static final String ACTION = "action";
        public static final String REDIRECTNODE = "redirect_node";
        public static final String REDIRECTPORT = "redirect_port";
+       public static final String REDIRECTDIRECTION = "redirect_direction";
        public static final String MODIFYDSTMACADDR = "modify_dstmac";
        public static final String MODIFYSRCMACADDR = "modify_srcmac";
        public static final String DSCP = "dscp";
        public static final String PRIORITY = "priority";
        public static final String VRTDESCRIPTION = "vrt_description";
-       public static final String DHCPRELAYADMINSTATUS ="dhcp_relay_admin_status";
+       public static final String DHCPRELAYADMINSTATUS = "dhcp_relay_admin_status";
        public static final String IPADDR = "ipaddr";
        public static final String MASK = "mask";
        public static final String MACADDR = "macaddr";
@@ -59,7 +60,7 @@ public final class VtnServiceIpcConsts {
        public static final String DIRECTION = "direction";
        public static final String SEQUENCENUM = "sequence_num";
        public static final String VTUNNEL_KEY = "vtunnel_key";
-       public static final String VTEPGRP_NAME ="vtepgrp_name";
+       public static final String VTEPGRP_NAME = "vtepgrp_name";
        public static final String TC_OP_CONFIG_ACQUIRE_FORCE = "TC_OP_CONFIG_ACQUIRE_FORCE";
        public static final String TC_OP_CONFIG_ACQUIRE = "TC_OP_CONFIG_ACQUIRE";
        public static final String TC_OPER_SUCCESS = "TC_OPER_SUCCESS";
@@ -75,22 +76,22 @@ public final class VtnServiceIpcConsts {
        public static final String CURRENT = "current";
        public static final String DELSESS = "delsess";
        public static final String SESS_UNAME = "sess_uname";
-       public static final String SESS_PASSWD= "sess_passwd";
-       public static final String LOGIN_NAME ="login_name";
+       public static final String SESS_PASSWD = "sess_passwd";
+       public static final String LOGIN_NAME = "login_name";
        public static final String SESS_TYPE = "sess_type";
        public static final String LOGIN_TIME = "login_time";
        public static final String USER_TYPE = "user_type";
        public static final String SESS_MODE = "sess_mode";
        public static final String CONFIG_STATUS = "config_status";
        public static final String IP_ADDR = "ip_addr";
-       public static final String MAC_ETH_TYPE="mac_eth_type";
-       public static final String DST_IP="dst_ip";
-       public static final String SRC_IP="src_ip";
-       public static final String DST_IP_PREFIXLEN="dst_ip_prefixlen";
-       public static final String SRC_IP_PREFIXLEN="src_ip_prefixlen";
-       public static final String DST_IPV6= "dst_ipv6";
+       public static final String MAC_ETH_TYPE = "mac_eth_type";
+       public static final String DST_IP = "dst_ip";
+       public static final String SRC_IP = "src_ip";
+       public static final String DST_IP_PREFIXLEN = "dst_ip_prefixlen";
+       public static final String SRC_IP_PREFIXLEN = "src_ip_prefixlen";
+       public static final String DST_IPV6 = "dst_ipv6";
        public static final String DST_IPV6_PREFIXLEN = "dst_ipv6_prefixlen";
-       public static final String SRC_IPV6= "src_ipv6";
+       public static final String SRC_IPV6 = "src_ipv6";
        public static final String SRC_IPV6_PREFIXLEN = "src_ipv6_prefixlen";
        public static final String IP_PROTO = "ip_proto";
        public static final String IP_DSCP = "ip_dscp";
@@ -101,7 +102,7 @@ public final class VtnServiceIpcConsts {
        public static final String ICMP_TYPE = "icmp_type";
        public static final String ICMP_CODE = "icmp_code";
        public static final String ICMPV6_TYPE = "icmpv6_type";
-       public static final String ICMPV6_CODE = "icmpv6_code" ;
+       public static final String ICMPV6_CODE = "icmpv6_code";
        public static final String SESS = "sess";
        public static final String VBRDESCRIPTION = "vbr_description";
        public static final String HOST_ADDR_PREFIXLEN = "host_addr_prefixlen";
@@ -148,13 +149,13 @@ public final class VtnServiceIpcConsts {
        public static final String EXIST = "exist";
        public static final String EXPIRE = "expire";
        public static final String VTEPNAME = "vtep_name";
-       public static final String CONTROLLERID="controller_id";
-       public static final String NMG_NAME="nwmonitor_gr";
-       public static final String STATIONID="station_id";
-       public static final String MAPTYPE="maptype";
-       public static final String MAPSTATUS="mapstatus";
-       public static final String VBRNAME="vbr_name";
-       public static final String SWITCHEID="switch_id";
+       public static final String CONTROLLERID = "controller_id";
+       public static final String NMG_NAME = "nwmonitor_gr";
+       public static final String STATIONID = "station_id";
+       public static final String MAPTYPE = "maptype";
+       public static final String MAPSTATUS = "mapstatus";
+       public static final String VBRNAME = "vbr_name";
+       public static final String SWITCHEID = "switch_id";
        public static final String OFSCOUNT = "ofs_count";
        public static final String MAX_VLANID = "FFFF";
        public static final String VLINK_NAME = "vlink_name";
@@ -174,56 +175,57 @@ public final class VtnServiceIpcConsts {
        public static final String IP_ADDRESS = "ip_address";
        public static final String USER = "user";
        public static final String ENABLE_AUDIT = "enable_audit";
-       public static final String CONTROLLER_NAME1= "controller_name1";
-       public static final String CONTROLLER_NAME2= "controller_name2";
-       public static final String DOMAIN_NAME1= "domain_name1";
-       public static final String DOMAIN_NAME2= "domain_name2";
-       public static final String LOGICAL_PORT_ID1= "logical_port_id1";
-       public static final String LOGICAL_PORT_ID2= "logical_port_id2";
-       public static final String IPV6_ADDRESS ="ipv6_address";
-       public static final String ALARM_STATUS="alarms_status";
-       public static final String MAC_ADDR="mac_addr";
-       public static final String MAC_ADDR_VTNSTATION="mac_addr";
-       public static final String VBRIFNAME="vbrif_name";
-       public static final String CREATED_TIME="created_time";
-       public static final String MAP_TYPE="map_type";
-       public static final String MAP_STATUS="map_status";
-       public static final String VBRIFSTATUS="vbrif_status";
-       public static final String IPV4_COUNT="ipv4_count";
-       public static final String IPV6_COUNT="ipv6_count";
-       public static final String allTxPkt="allTxPkt";
-       public static final String allRxPkt="allRxPkt";
-       public static final String allTxBytes="allTxBytes";
-       public static final String allRxBytes="allRxBytes";
-       public static final String allNWTxPkt="allNWTxPkt";
-       public static final String allNWRxPkt="allNWRxPkt";
-       public static final String allNWTxBytes="allNWTxBytes";
-       public static final String allNWRxBytes="allNWRxBytes";
-       public static final String existingTxPkt="existingTxPkt";
-       public static final String existingRxPkt="existingRxPkt";
-       public static final String existingTxBytes="existingTxBytes";
-       public static final String existingRxBytes="existingRxBytes";
-       public static final String expiredTxPkt="expiredTxPkt";
-       public static final String expiredRxPkt="expiredRxPkt";
-       public static final String expiredTxBytes="expiredTxBytes";
-       public static final String expiredRxBytes="expiredRxBytes";
-       public static final String allDropRxPkt="allDropRxPkt";
-       public static final String allDropRxBytes="allDropRxBytes";
-       public static final String existingDropRxPkt="existingDropRxPkt";
-       public static final String existingDropRxBytes="existingDropRxBytes";
-       public static final String expiredDropRxPkt="expiredDropRxPkt";
-       public static final String expiredDropRxBytes="expiredDropRxBytes";
-       public static final String CONTROLLER1ID="controller1_id";
-       public static final String LOGICALPORT1ID="logical_port1_id";
-       public static final String DOMAIN1ID="domain1_id";
-       public static final String CONTROLLER2ID="controller2_id";
-       public static final String LOGICALPORT2ID="logical_port2_id";
-       public static final String DOMAIN2ID="domain2_id";
+       public static final String CONTROLLER_NAME1 = "controller_name1";
+       public static final String CONTROLLER_NAME2 = "controller_name2";
+       public static final String DOMAIN_NAME1 = "domain_name1";
+       public static final String DOMAIN_NAME2 = "domain_name2";
+       public static final String LOGICAL_PORT_ID1 = "logical_port_id1";
+       public static final String LOGICAL_PORT_ID2 = "logical_port_id2";
+       public static final String IPV6_ADDRESS = "ipv6_address";
+       public static final String ALARM_STATUS = "alarms_status";
+       public static final String MAC_ADDR = "mac_addr";
+       public static final String MAC_ADDR_VTNSTATION = "mac_addr";
+       public static final String VBRIFNAME = "vbrif_name";
+       public static final String CREATED_TIME = "created_time";
+       public static final String MAP_TYPE = "map_type";
+       public static final String MAP_STATUS = "map_status";
+       public static final String VBRIFSTATUS = "vbrif_status";
+       public static final String IPV4_COUNT = "ipv4_count";
+       public static final String IPV6_COUNT = "ipv6_count";
+       public static final String allTxPkt = "allTxPkt";
+       public static final String allRxPkt = "allRxPkt";
+       public static final String allTxBytes = "allTxBytes";
+       public static final String allRxBytes = "allRxBytes";
+       public static final String allNWTxPkt = "allNWTxPkt";
+       public static final String allNWRxPkt = "allNWRxPkt";
+       public static final String allNWTxBytes = "allNWTxBytes";
+       public static final String allNWRxBytes = "allNWRxBytes";
+       public static final String existingTxPkt = "existingTxPkt";
+       public static final String existingRxPkt = "existingRxPkt";
+       public static final String existingTxBytes = "existingTxBytes";
+       public static final String existingRxBytes = "existingRxBytes";
+       public static final String expiredTxPkt = "expiredTxPkt";
+       public static final String expiredRxPkt = "expiredRxPkt";
+       public static final String expiredTxBytes = "expiredTxBytes";
+       public static final String expiredRxBytes = "expiredRxBytes";
+       public static final String allDropRxPkt = "allDropRxPkt";
+       public static final String allDropRxBytes = "allDropRxBytes";
+       public static final String existingDropRxPkt = "existingDropRxPkt";
+       public static final String existingDropRxBytes = "existingDropRxBytes";
+       public static final String expiredDropRxPkt = "expiredDropRxPkt";
+       public static final String expiredDropRxBytes = "expiredDropRxBytes";
+       public static final String CONTROLLER1ID = "controller1_id";
+       public static final String LOGICALPORT1ID = "logical_port1_id";
+       public static final String DOMAIN1ID = "domain1_id";
+       public static final String CONTROLLER2ID = "controller2_id";
+       public static final String LOGICALPORT2ID = "logical_port2_id";
+       public static final String DOMAIN2ID = "domain2_id";
        public static final String SWITCH_ID1 = "switch_id1";
        public static final String SWITCH_ID2 = "switch_id2";
        public static final String PORT_ID1 = "port_id1";
        public static final String PORT_ID2 = "port_id2";
-       public static final String SWITCH_VAL="switch_val";
+       public static final String SWITCH_VAL = "switch_val";
+       public static final String SWITCH_ST_VAL = "switch_st_val";
        public static final String CONTROLLERNAME1 = "controller_name1";
        public static final String CONTROLLERNAME2 = "controller_name2";
        public static final String LOGICALPORTID1 = "logical_port_id1";
@@ -238,11 +240,11 @@ public final class VtnServiceIpcConsts {
        public static final String NWM_STATUS = "nwm_status";
        public static final String TIME_STAMP = "time_stamp";
        public static final String UNCALARMIPCINFO = "unc_alarm_ipc_info";
-       public static final String LINK_VAL="link";
+       public static final String LINK_VAL = "link";
        public static final String PORT_NUMBER = "port_number";
        public static final String HALF = "half";
        public static final String FULL = "full";
-       public static final String PORT_MAC_ADDR="mac_address";
+       public static final String PORT_MAC_ADDR = "mac_address";
        public static final String PORT = "port";
        public static final String DOMAIN_KEY = "domain_key";
        public static final String LOGICAL_PORT = "logical_port";
@@ -250,32 +252,32 @@ public final class VtnServiceIpcConsts {
        public static final String LOGICAL_PORT_KEY = "logical_port_key";
        public static final String LPID = "lpid";
        public static final String NOLPID = "no_lpid";
-       public static final String LPID_VALID ="logical_port_id_valid";
+       public static final String LPID_VALID = "logical_port_id_valid";
        public static final String DESTINATION = "destination";
        public static final String IFKIND = "if_kind";
        public static final String VTEPGRP_KEY = "vtepgrp_key";
-       public static String NWMONITOR_GR="nwmonitor_gr";
+       public static String NWMONITOR_GR = "nwmonitor_gr";
        public static final String VTN_ALARM_STATUS = "alarm_status";
        public static int INVALID_OPEARTION_STATUS = -1;
-       public static final String  USESS_USER_WEB_ADMIN = "UNC_WEB_ADMIN";
-       public static final String  USESS_USER_WEB_OPER = "UNC_WEB_OPER";
-       public static final String  USESS_IPC_TIMESPEC = "usess_ipc_timespec";
-       public static final String  TV_SEC = "tv_sec";
-       public static final String  MAJOR = "major";
-       public static final String  MINOR = "minor";
-       public static final String  REVISION = "revision";
-       public static final String  PATCHLEVEL = "patchlevel";
-       public static final String  ENABLE_PASSWORD = "enable_passwd";
-       
-       public static final String  GET_FLOW_LIST_RESPONSE = "getFlowListResponse";
-       public static final String  GET_FLOW_LIST_ENTRY_RESPONSE = "getFlowListEntryResponse";
-       public static final String  GET_VTN_RESPONSE = "getVtnResponse";
-       public static final String  GET_VTN_FLOW_FILETER_ENTRY_RESPONSE = "getVtnFlowFilterEntryResponse";
-       public static final String  GET_VBYPASS_INTERFACE_RESPONSE ="getVBypassInterfaceResponse";
-       public static final String  GET_VBYPASS_RESPONSE = "getVBypassResponse";
-       public static final String  GET_VBRIDGE_RESPONSE = "getVBridgeResponse";
-       public static final String  GET_SWITCH_RESPONSE = "getSwitchResponse";
-       public static final String  GET_DOMAIN_RESPONSE = "getDomainResponse";
+       public static final String USESS_USER_WEB_ADMIN = "UNC_WEB_ADMIN";
+       public static final String USESS_USER_WEB_OPER = "UNC_WEB_OPER";
+       public static final String USESS_IPC_TIMESPEC = "usess_ipc_timespec";
+       public static final String TV_SEC = "tv_sec";
+       public static final String MAJOR = "major";
+       public static final String MINOR = "minor";
+       public static final String REVISION = "revision";
+       public static final String PATCHLEVEL = "patchlevel";
+       public static final String ENABLE_PASSWORD = "enable_passwd";
+
+       public static final String GET_FLOW_LIST_RESPONSE = "getFlowListResponse";
+       public static final String GET_FLOW_LIST_ENTRY_RESPONSE = "getFlowListEntryResponse";
+       public static final String GET_VTN_RESPONSE = "getVtnResponse";
+       public static final String GET_VTN_FLOW_FILETER_ENTRY_RESPONSE = "getVtnFlowFilterEntryResponse";
+       public static final String GET_VBYPASS_INTERFACE_RESPONSE = "getVBypassInterfaceResponse";
+       public static final String GET_VBYPASS_RESPONSE = "getVBypassResponse";
+       public static final String GET_VBRIDGE_RESPONSE = "getVBridgeResponse";
+       public static final String GET_SWITCH_RESPONSE = "getSwitchResponse";
+       public static final String GET_DOMAIN_RESPONSE = "getDomainResponse";
        public static final String GET_VBRIDGE_FLOW_FILTER_ENTRY_RESPONSE = "getVBridgeFlowFilterEntryResponse";
        public static final String GET_VBRIDGE_VLANMAP_RESPONSE = "getVlanMapResponse";
        public static final String GET_LINK_RESPONSE = "getLinkResponse";
@@ -296,4 +298,89 @@ public final class VtnServiceIpcConsts {
        public static final String GET_VLINKS_RESPONSE = "getVLinkResponse";
        public static final String GET_SWITCH_PORT_INTERFACE_RESPONSE = "getSwitchPortResponse";
        public static final String GET_DOMAIN_LOGICAL_PORT_RESPONSE = "getDomainLogicalPortResponse";
+       public static final String GET_VTERMINAL_RESPONSE = "getVTerminalResponse";
+       public static final String GET_VTN_MAPPING_RESPONSE = "getVtnMappingResponse";
+
+       public static final String VTERMINAL_NAME = "vterminal_name";
+       public static final String VTERM_DESCRIPTION = "vterm_description";
+       public static final String GET_VTERM_INTERFACE_RESPONSE = "getVTerminalInterfaceResponse";
+       public static final String VTERMKEY = "vterm_key";
+       public static final String IFKEY = "if_key";
+       // U12
+       public static final String MAPPINGID = "mapping_id";
+       public static final String SRC_MAC_ADDRESS = "src_mac_address";
+       public static final String CONTROLLER_COUNT = "controller_count";
+       public static final String MATCH_COUNT = "match_count";
+       public static final String ACTION_COUNT = "action_count";
+       public static final String PATH_INFO_COUNT = "path_info_count";
+       public static final String REASON = "reason";
+       public static final String CONTROLER_TYPE = "controller_type";
+       public static final String FLOW_ID = "flow_id";
+       public static final String STATUS = "status";
+       public static final String FLOW_TYPE = "flow_type";
+       public static final String POLICY_INDEX = "policy_index";
+       public static final String MATCH_TYPE = "match_type";
+       public static final String IN_PORT = "in_port";
+       public static final String DL_ADDR = "dl_addr";
+       public static final String V_MASK = "v_mask";
+       public static final String DL_ADDR_MASK = "dl_addr_mask";
+       public static final String DL_TYPE = "dl_type";
+       public static final String VLAN_VID = "vlan_vid";
+       public static final String VLAN_PCP = "vlan_pcp";
+       public static final String IP_TOS = "ip_tos";
+       public static final String IPV4_ADDR = "ipv4_addr";
+       public static final String IPV4_ADDR_MASK = "ipv4_addr_mask";
+       public static final String TP_PORT = "tp_port";
+       public static final String TP_PORT_MASK = "tp_port_mask";
+       public static final String IPV6_ADDR = "ipv6_addr";
+       public static final String IPV6_ADDR_MASK = "ipv6_addr_mask";
+       public static final String INGRESS_SWITCH_ID = "ingress_switch_id";
+       public static final String IN_STATION_ID = "in_station_id";
+       public static final String IN_DOMAIN = "in_domain";
+       public static final String EGRESS_SWITCH_ID = "egress_switch_id";
+       public static final String OUT_PORT = "out_port";
+       public static final String OUT_STATION_ID = "out_station_id";
+       public static final String OUT_DOMAIN = "out_domain";
+       public static final String ACTION_TYPE = "action_type";
+       public static final String OUTPUT_PORT = "output_port";
+       public static final String ENQUEUE_ID = "enqueue_id";
+       public static final String VTN_ID = "vtn_id";
+       public static final String CONTROLLER_NAME = "controller_name";
+       public static final String VNODEID = "vnode_id";
+       public static final String IDLE_TIMEOUT = "idle_timeout";
+       public static final String HARD_TIMEOUT = "hard_timeout";
+       public static final String INGRESS_VNODE = "ingress_vnode";
+       public static final String INGRESS_VINTERFACE = "ingress_vinterface";
+       public static final String INGRESS_PORT_ID = "ingress_port_id";
+       public static final String INGRESS_LOGICAL_PORT_ID = "ingress_logical_port_id";
+       public static final String INGRESS_DOMAIN = "ingress_domain";
+       public static final String EGRESS_VNODE = "egress_vnode";
+       public static final String EGRESS_VINTERFACE = "egress_vinterface";
+       public static final String EGRESS_PORT_ID = "egress_port_id";
+       public static final String EGRESS_LOGICAL_PORT_ID = "egress_logical_port_id";
+       public static final String EGRESS_DOMAIN = "egress_domain";
+       public static final String IN_VNODE = "in_vnode";
+       public static final String IN_VIF = "in_vif";
+       public static final String OUT_VNODE = "out_vnode";
+       public static final String OUT_VIF = "out_vif";
+       public static final String VLINK_FLAG = "vlink_flag";
+       public static final String CONTROLLER_DOMAIN_COUNT = "ctrlr_domain_count";
+
+       public static final String PACKETS = "packets";
+       public static final String DURATION = "duration";
+       public static final String RX_PACKETS = "rx_packets";
+       public static final String TX_PACKETS = "tx_packets";
+       public static final String TX_BYTES = "rx_bytes";
+       public static final String RX_BYTES = "tx_bytes";
+       public static final String RX_DROPPED = "rx_dropped";
+       public static final String TX_DROPPED = "tx_dropped";
+       public static final String RX_ERRORS = "rx_errors";
+       public static final String TX_ERRORS = "tx_errors";
+       public static final String RX_FRAME_ERR = "rx_frame_err";
+       public static final String RX_OVER_ERR = "rx_over_err";
+       public static final String RX_CRC_ERRS = "rx_crc_err";
+       public static final String COLLISIONS = "collisions";
+       public static final String FLOW_COUNT = "flow_count";
+       public static final String PORT_ST_VAL = "port_st_val";
+       public static final String VLANID1 = "vlanid";
 }
index dafa444a7f85c5c36eb9a92203674c1346cea065..28fc88cb8e486056538ef7dc85774fa53ab274dc 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -15,7 +15,7 @@ import java.math.BigInteger;
  */
 public final class VtnServiceJsonConsts {
        public static final String SLASH = "/";
-       public static final String URI = "URI#";
+       public static final String URI = "";
        public static final String ENABLE = "enable";
        public static final String DISABLE = "disable";
 
@@ -28,7 +28,7 @@ public final class VtnServiceJsonConsts {
        public static final String RUNNING = "running";
        public static final String STATE = "state";
        public static final String OP = "op";
-       public static final String NONE = ""; // webui specific, not related to VTN
+       public static final String NONE = "none";
        // API
        public static final String SHOW = "show"; // webui specific, not related to
        // VTN API
@@ -97,6 +97,7 @@ public final class VtnServiceJsonConsts {
        public static final String TRUNKPORTNAME = "trunk_port_name";
        public static final String BOUNDARIES = "boundaries";
        public static final String BOUNDARYID = "boundary_id";
+       public static final String L4PORT = "l4port";
 
        // Logical
        public static final String VTNS = "vtns";
@@ -541,6 +542,9 @@ public final class VtnServiceJsonConsts {
        public static final String FLOWENTRYACTIONS = "flowentryactions";
        public static final String PROFILEENTRY = "profileentry";
 
+       // VTerminal
+       public static final String VTERMINALNAME = "vterminal_name";
+
        // Flood Policing
        public static final String TWORATETHREECOLOR = "tworatethreecolor";
        public static final String METER = "meter";
@@ -621,8 +625,8 @@ public final class VtnServiceJsonConsts {
        public static final String TAGGED = "tagged";
        public static final String TRUE = "true";
        public static final String FALSE = "false";
-       public static final String CODE = "code";
-       public static final String MSG = "msg";
+       public static final String CODE = "err_code";
+       public static final String MSG = "err_msg";
        public static final String ERROR = "error";
        public static final String MPLS = "mpls";
        public static final String VNI = "vni";
@@ -631,6 +635,7 @@ public final class VtnServiceJsonConsts {
        // INTEGER
        public static final int LEN_15 = 15;
        public static final int LEN_19 = 19;
+       public static final int LEN_24 = 24;
        public static final int LEN_31 = 31;
        public static final int LEN_32 = 32;
        public static final int LEN_63 = 63;
@@ -654,9 +659,15 @@ public final class VtnServiceJsonConsts {
        public static final int VAL_4095 = 4095;
        public static final int VAL_65535 = 65535;
        public static final BigInteger BIG_VAL0 = new BigInteger("0");
-       public static final BigInteger BIG_VAL = new BigInteger("4294967295");
-       public static final BigInteger BIG_VAL_18446744073709551615 = new BigInteger("18446744073709551615");
-       public static final BigInteger BIG_VAL_9999999999999999999 = new BigInteger("9999999999999999999");
+       public static final BigInteger BIG_VAL1 = new BigInteger("1");
+       public static final BigInteger BIG_VAL_4294967040 = new BigInteger(
+                       "4294967040");
+       public static final BigInteger BIG_VAL_18446744073709551999 = new BigInteger(
+                       "18446744073709551999");
+       public static final BigInteger BIG_VAL_9999999999999999999 = new BigInteger(
+                       "9999999999999999999");
+       public static final BigInteger BIG_VAL_18446744073709551615 = new BigInteger(
+                       "18446744073709551615");
        public static final long LONG_VAL_0 = 0L;
        public static final long LONG_VAL_1 = 1L;
        public static final long LONG_VAL_4294967295 = 4294967295L;
@@ -688,26 +699,27 @@ public final class VtnServiceJsonConsts {
        public static final String DOMAIN2_ID = "domain2_id";
        public static final String DEFAULT = "default";
        public static final String PORT_ID = "port_id";
-       public static final String LINKSAPERATOR="\\.";
-       public static final String LINKCONCATENATOR=".";
+       public static final String LINKSAPERATOR = "\\.";
+       public static final String LINKCONCATENATOR = ".";
        public static final String UNKNOWN = "unknown";
        public static final String BYPASS = "bypass";
        public static final String PFC = "pfc";
        public static final String LEGACY = "legacy";
        public static final String OVERLAY = "overlay";
-       //public static final String WAITINGAUDIT ="waiting_audit";
+       // public static final String WAITINGAUDIT ="waiting_audit";
        public static final String AUDITING = "auditing";
        public static final String HYPHEN = "-";
        public static final int LEN_256 = 256;
        public static final int LEN_4 = 4;
        public static final int VAL_2 = 2;
        public static final int VAL_3 = 3;
-       public static final int LEN_20=20;
-
+       public static final int VAL_4 = 4;
+       public static final int VAL_6 = 6;
+       public static final int LEN_20 = 20;
 
        public static final String WAITING_AUDIT = "waiting_audit";
-       public static final String MANUFACTURER="manufacturer";
-       public static final String ALARMSSTATUS="alarmsstatus";
+       public static final String MANUFACTURER = "manufacturer";
+       public static final String ALARMSSTATUS = "alarmsstatus";
        public static final String TRUNK_ALLOWED_VLAN = "trunk_allowed_vlan";
        public static final String LOGICAL_PORT_ID = "logical_port_id";
        public static final String CONNECTED_PORT_ID = "port_name";
@@ -715,28 +727,28 @@ public final class VtnServiceJsonConsts {
        public static final String PORT1_NAME = "port1_name";
        public static final String PORT2_NAME = "port2_name";
        public static final String ACTUALVERSION = "actual_version";
-       public static final String LOGICALPORT1ID="logical_port1_id";
-       public static final String DOMAIN1ID="domain1_id";
-       public static final String LOGICALPORT2ID="logical_port2_id";
-       public static final String DOMAIN2ID="domain2_id";
+       public static final String LOGICALPORT1ID = "logical_port1_id";
+       public static final String DOMAIN1ID = "domain1_id";
+       public static final String LOGICALPORT2ID = "logical_port2_id";
+       public static final String DOMAIN2ID = "domain2_id";
        public static final String DOMAINLPORT = "logicalport";
        public static final String DOMAINLPORTS = "logicalports";
        public static final String OPERDOWNCRITERIA = "operstatus_criteria";
-       public static final String NMG_STATUS="nmg_status";
+       public static final String NMG_STATUS = "nmg_status";
        public static final String ROUTER = "router";
        public static final String BRIDGE = "bridge";
 
        public static final String DIRECTION_INTERNAL = "internal";
        public static final String DIRECTION_EXTERNAL = "external";
        public static final String DIRECTION_UNKNOWN = "unknown";
-       //public static final String LOGICALPORT_ID = "logical_port_id";
-       public static final String LOGICALPORT= "logical_port";
-       public static final String LOGICALPORTS= "logical_ports";
-       public static final String MEMBER_PORTS="member_ports";
-       public static final String SUBDOMAIN ="subdomain";
-       public static final String OPERDOWN_CRITERIA ="operdown_criteria";
-       public static final String ANY ="any";
-       public static final String VLANMAPIDSEPERATOR="-";
+       // public static final String LOGICALPORT_ID = "logical_port_id";
+       public static final String LOGICALPORT = "logical_port";
+       public static final String LOGICALPORTS = "logical_ports";
+       public static final String MEMBER_PORTS = "member_ports";
+       public static final String SUBDOMAIN = "subdomain";
+       public static final String OPERDOWN_CRITERIA = "operdown_criteria";
+       public static final String ANY = "any";
+       public static final String VLANMAPIDSEPERATOR = "-";
        public static final String LPID = "lpid";
        public static final String NOLPID = "no_lpid";
        public static final String IPROUTES = "iproutes";
@@ -757,7 +769,7 @@ public final class VtnServiceJsonConsts {
        public static final String RAISE = "raise";
        public static final String TUNNEL_ENDPOINT = "tunnel_endpoint";
        public static final String DEFAULT_DOMAIN_ID = "(DEFAULT)";
-       public static final String SWITCHID_NOT_FOUND= "switchIdNotFound";
+       public static final String SWITCHID_NOT_FOUND = "switchIdNotFound";
        public static final String PORTID_NOT_FOUND = "portIdNotFound";
        public static final String VNP = "vnp";
        public static final String ODC = "odc";
@@ -766,8 +778,157 @@ public final class VtnServiceJsonConsts {
        public static final String TWO = "2";
        public static final String DEL = "del";
        public static final String V = "V";
-       //Constatnts for portmap under overlay
+       // Constatnts for portmap under overlay
        public static final String VTUNNEL_INTERFACE_PORTMAP = "VTunnelInterfacePortMap";
        public static final String VTEP_INTERFACE_PORTMAP = "VTepInterfacePortMap";
        public static final String VBRIDGE_INTERFACE_PORTMAP = "VBridgeInterfacePortMap";
+       public static final String DATAFLOWS = "dataflows";
+       // vterminal
+       public static final String VTERMINAL = "vterminal";
+       public static final String VTERMINALS = "vterminals";
+       public static final String VTERMINAL_NAME = "vterminal_name";
+       public static final String VTERM_DESCRIPTION = "vterm_description";
+       public static final String SRCMAC = "srcmac";
+       public static final String RX_PACKETS = "rx_packets";
+       public static final String TX_PACKETS = "tx_packets";
+       public static final String TX_BYTES = "rx_bytes";
+       public static final String RX_BYTES = "tx_bytes";
+       public static final String RX_DROPPED = "rx_dropped";
+       public static final String TX_DROPPED = "tx_dropped";
+       public static final String RX_ERRORS = "rx_errors";
+       public static final String TX_ERRORS = "tx_errors";
+       public static final String RX_FRAME_ERR = "rx_frame_err";
+       public static final String RX_OVER_ERR = "rx_over_err";
+       public static final String RX_CRC_ERRS = "rx_crc_err";
+       public static final String COLLISIONS = "collisions";
+
+       // dataflow
+
+       public static final String MAPPINGID = "mapping_id";
+       public static final String MAPPING = "mapping";
+       public static final String MAPPINGS = "mappings";
+       // VTN Data Flow
+       public static final String REASON = "reason";
+       public static final String CONTROLER_TYPE = "controller_type";
+       public static final String FLOW_ID = "flow_id";
+       public static final String FLOW_TYPE = "type";
+       public static final String POLICY_INDEX = "policy_index";
+       public static final String MATCH_TYPE = "match_type";
+       public static final String IN_PORT = "inport";
+       public static final String DL_ADDR = "dl_addr";
+       public static final String V_MASK = "v_mask";
+       public static final String DL_ADDR_MASK = "dl_addr_mask";
+       public static final String DL_TYPE = "dl_type";
+       public static final String VLAN_VID = "vlan_vid";
+       public static final String VLAN_PCP = "vlan_pcp";
+       public static final String IP_TOS = "ip_tos";
+       public static final String IP_PROTO = "ipproto";
+       public static final String IPV4_ADDR = "ipv4_addr";
+       public static final String IPV4_ADDR_MASK = "ipv4_addr_mask";
+       public static final String TP_PORT = "tp_port";
+       public static final String TP_PORT_MASK = "tp_port_mask";
+       public static final String IPV6_ADDR = "ipv6_addr";
+       public static final String VTN_ID = "vtn_id";
+       public static final String INGRESS_SWITCH_ID = "ingress_switch_id";
+       public static final String INGRESS_STATION_ID = "ingress_station_id";
+       public static final String EGRESS_SWITCH_ID = "egress_switch_id";
+       public static final String EGRESS_STATION_ID = "egress_station_id";
+       public static final String OUTPORT = "outport";
+       public static final String ENQUEUE_ID = "enqueue_id";
+       public static final String QUEUE_ID = "queue_id";
+       public static final String ENQUEUEPORT = "enqueueport";
+       public static final String MACSRC = "macsrc";
+       public static final String MACDST = "macdst";
+       public static final String ETHERNATETYPE = "ethertype";
+       public static final String VLAN_ID = "vlan_id";
+       public static final String IPSRC = "ipsrc";
+       public static final String IPDST = "ipdst";
+       public static final String IPV6DST = "ipv6src";
+       public static final String IPV6SRC = "ipv6dst";
+       public static final String TPSRC = "tpsrc";
+       public static final String TSDST = "tpdst";
+       public static final String IPTOS = "iptos";
+       public static final String SWITCH_ID = "switch_id";
+       public static final String INPORT = "inport";
+       public static final String TPDST = "tpdst";
+       public static final String PATHINFOS = "pathinfos";
+       public static final String CONTROLLER_DATAFLOWS = "controller_dataflows";
+       public static final String REASON_SUCCESS = "success";
+       public static final String REASON_NOT_SUPP = "operation not supported";
+       public static final String REASON_EXCD_LIM = "exceeds flow limit";
+       public static final String REASON_CTRL_DISC = "controller disconnected";
+       public static final String REASON_EXCD_HOP = "exceeds hop limit ";
+       public static final String REASON_DST_NOT_REACHED = "dst not reached";
+       public static final String REASON_FLOW_NOTFOUND = "flow not found";
+       public static final String REASON_SYS_ERROR = "system error";
+       public static final String RES_SUCCESS = "success";
+       public static final String RES_EXCEEDS_FLOW_LIMIT = "exceeds flow limit";
+       public static final String RES_EXCEEDS_HOP_LIMIT = "exceeds hop limit";
+       public static final String RES_DST_NOT_REACHED = "dst_not_reached";
+       public static final String RES_CTRLR_DISCONNECTED = "controller_disconnected";
+       public static final String RES_OPERATION_NOT_SUPPORTED = "operation not supported";
+       public static final String RES_FLOW_NOT_FOUND = "flow_not_found";
+       public static final String RES_SYSTEM_ERROR = "system_error";
+       public static final String CONTROLLER_DOMAIN_DATAFLOWS = "controller_domain_dataflows";
+       public static final String IDLETIMEOUT = "idletimeout";
+       public static final String HARDTIMEOUT = "hardtimeout";
+       public static final String INGRESS_VNODE_NAME = "ingress_vnode_name";
+       public static final String INGRESS_IF_NAME = "ingress_if_name";
+       public static final String INGRESS_PORT_NAME = "ingress_port_name";
+       public static final String INGRESS_LOGICAL_PORT_ID = "ingress_logical_port_id";
+       public static final String INGRESS_DOMAIN_ID = "ingress_domain_id";
+       public static final String EGRESS_VNODE_NAME = "egress_vnode_name";
+       public static final String EGRESS_IF_NAME = "egress_if_name";
+       public static final String EGRESS_PORT_NAME = "egress_port_name";
+       public static final String EGRESS_LOGICAL_PORT_ID = "egress_logical_port_id";
+       public static final String EGRESS_DOMAIN_ID = "egress_domain_id";
+       public static final String IN_VNODE_NAME = "in_vnode_name";
+       public static final String IN_IF_NAME = "in_if_name";
+       public static final String OUT_VNODE_NAME = "out_vnode_name";
+       public static final String OUT_IF_NAME = "out_if_name";
+       public static final String VLINK_FLAG = "vlink_flag";
+       public static final String COORDINATOR_VERSION = "coordinator_version";
+
+       public static final String VLAN_PRIORITY = "vlan_priority";
+
+       public static final String SRCMACADDR = "srcmacaddr";
+       public static final String SETMACSRCADDR = "setmacsrcaddr";
+       public static final String SETMACDSTADDR = "setmacdstaddr";
+       public static final String SETVLAN_ID = "setvlan_id";
+       public static final String SETVLAN_PRIORITY = "setvlan_priority";
+       public static final String SETIPSRCADDR = "setipsrcaddr";
+       public static final String SETIPDSTADDR = "setipdstaddr";
+       public static final String SETIPTOS = "setiptos";
+       public static final String SETL4SRCPORT_ICMPTYPE = "setl4srcport_icmptype";
+       public static final String SETL4DSTPORT_ICMPTYPE = "setl4dstport_icmptype";
+       public static final String SETIPV6DSTADDR = "setipv6dstaddr";
+       public static final String SETIPV6SRCADDR = "setipv6srcaddr";
+       public static final String OUTPUTPORT = "outputport";
+       public static final String MACDSTADDR_MASK = "macdstaddr_mask";
+       public static final String MACSRCADDR_MASK = "macsrcaddr_mask";
+       public static final String IPSRCADDR_MASK = "ipsrcaddr_mask";
+       public static final String IPDSTADDR_MASK = "ipdstaddr_mask";
+       public static final String IPV6SRCADDR_MASK = "ipv6srcaddr_mask";
+       public static final String IPV6DSTADDR_MASK = "ipv6dstaddr_mask";
+       public static final String L4SRCPORT_ICMPTYPE = "l4srcport_icmptype";
+       public static final String L4DSTPORT_ICMPTYPE = "l4dstport_icmptype";
+       public static final String L4SRCPORT_ICMPTYPE_MASK = "l4srcport_icmptype_mask";
+       public static final String L4DSTPORT_ICMPTYPE_MASK = "l4dstport_icmptype_mask";
+       public static final String STATUS_INIT = "init";
+       public static final String STATUS_ACTIVATING = "activating";
+       public static final String STATUS_ACTIVE = "active";
+       public static final String STATUS_SWITCHING = "switching";
+       public static final String IN_PORT_NAME = "in_port_name";
+       public static final String OUT_PORT_NAME = "out_port_name";
+       public static final String FLOWCOUNT = "flowcount";
+       public static final String RX_FRAMEERR = "rx_frameerr";
+       public static final String RX_CRCERR = "rx_crcerr";
+       public static final String RX_OVERERR = "rx_overerr";
+       public static final String NOT_EXISTS = "not_exists";
+       public static final String EXISTS = "exists";
+       public static final String MAPPINGINFOS = "mappinginfos";
+       public static final String VLAN_ID_65535 = "65535";
+       public static final String EMPTY = "";
+       public static final String STRIPVLAN = "stripvlan";
+
 }
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/constants/package-info.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/constants/package-info.java
new file mode 100644 (file)
index 0000000..2791d1f
--- /dev/null
@@ -0,0 +1,14 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * Package contains Java API Constants.
+ */
+package org.opendaylight.vtn.javaapi.constants;
+
index 7ca01cb1a9dec71d0b6f8adc37a2990a1cc40dba..e822e721644710dfcc74f8bee1a1c3e2f28b37e3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -13,7 +13,6 @@ import java.util.List;
 
 import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
 
-// TODO: Auto-generated Javadoc
 /**
  * The Class VtnServiceException.
  */
@@ -130,7 +129,7 @@ public class VtnServiceException extends Exception {
         * 
         * @return the code
         */
-       public String getCode() {
+       public final String getCode() {
                final StringBuilder builder = new StringBuilder();
 
                builder.append(VtnServiceConsts.OPEN_SQR_BRACKET);
@@ -153,7 +152,7 @@ public class VtnServiceException extends Exception {
         * @see java.lang.Throwable#toString()
         */
        @Override
-       public String toString() {
+       public final String toString() {
                final StringBuilder builder = new StringBuilder();
 
                builder.append(getCode());
index d0ba30e4aa0c4138f62f726323a7b6395687ce16..5f81561ab3dbc9c3de8297578dd7e0001556653b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -33,7 +33,7 @@ public class VtnServiceExceptionHandler {
         * @throws VtnServiceException
         *             the vtn service exception
         */
-       public void raise(final String errorContext, final String errorCode,
+       public final void raise(final String errorContext, final String errorCode,
                        final String errorText, final Exception exception)
                        throws VtnServiceException {
                /*
@@ -72,7 +72,7 @@ public class VtnServiceExceptionHandler {
         * @param exception
         *            the throwable exception
         */
-       public void handle(final String errorContext, final String errorCode,
+       public final void handle(final String errorContext, final String errorCode,
                        final String errorText, final Exception exception) {
                /*
                 * raise the exception for final handling and log the exception after
index eaa019865af25460b274b2e37f01ef159bff4c89..703cfd5be1d3f31c6b9f8e550baf93cee3075db5 100644 (file)
@@ -1,13 +1,13 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.vtn.javaapi.exception;
 
+package org.opendaylight.vtn.javaapi.exception;
 
 /**
  * The Class VtnsInitFailException.
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/exception/package-info.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/exception/package-info.java
new file mode 100644 (file)
index 0000000..a545ab0
--- /dev/null
@@ -0,0 +1,14 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * Package contains Java API Custom Exception handling classes .
+ */
+package org.opendaylight.vtn.javaapi.exception;
+
index e424f1dc99f87fb1a483f9c62f5d661b3e64b320..c518b6264ddf60600e5a03fc125749c771e9ebfe 100644 (file)
@@ -15,6 +15,7 @@ import org.opendaylight.vtn.core.util.Logger;
 import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
 import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
+import org.opendaylight.vtn.javaapi.openstack.constants.VtnServiceOpenStackConsts;
 import org.opendaylight.vtn.javaapi.util.VtnServiceUtil;
 
 /**
@@ -28,6 +29,7 @@ public final class VtnServiceConfiguration {
 
        private static final Properties commonConfigProperties = new Properties();
        private Properties appConfigProperties = null;
+       private Properties mapModeConfigProperties = null;
 
        static {
                try {
@@ -52,6 +54,8 @@ public final class VtnServiceConfiguration {
 
                appConfigProperties = new Properties();
 
+               mapModeConfigProperties = new Properties();
+
                init();
 
                LOG.trace("Complete VtnServiceConfiguration#VtnServiceConfiguration()");
@@ -75,6 +79,18 @@ public final class VtnServiceConfiguration {
                                                                .getResourceAsStream(
                                                                                VtnServiceConsts.APP_CONF_FILEPATH));
                        }
+
+                       if (Thread.currentThread().getContextClassLoader().toString()
+                                       .contains(VtnServiceOpenStackConsts.VTN_WEB_API_ROOT)) {
+                               synchronized (mapModeConfigProperties) {
+                                       mapModeConfigProperties.load(Thread
+                                                       .currentThread()
+                                                       .getContextClassLoader()
+                                                       .getResourceAsStream(
+                                                                       VtnServiceConsts.MAPMODE_CONF_FILEPATH));
+                               }
+                       }                       
+
                } catch (final IOException e) {
                        VtnServiceInitManager
                                        .getExceptionHandler()
@@ -127,4 +143,23 @@ public final class VtnServiceConfiguration {
                LOG.debug(key + VtnServiceConsts.COLON + configValue);
                return configValue;
        }
+
+       /**
+        * Get map-mode property value for vlan-map creation corresponding to
+        * OpenStack's Port operation
+        * 
+        * @param key
+        * @return
+        */
+       public String getMapModeValue() {
+               LOG.trace("Return from VtnServiceConfiguration#getMapModeValue()");
+               // initialize with 0 as default
+               String configValue = VtnServiceConsts.ZERO;
+               if (mapModeConfigProperties != null) {
+                       configValue = mapModeConfigProperties.get(
+                                       VtnServiceOpenStackConsts.VLANMAP_MODE).toString();
+               }
+               LOG.debug("Map Mode " + VtnServiceConsts.COLON + configValue);
+               return configValue;
+       }
 }
index c3d3ca05320af41a6eab6d5c52d2d5a6dfef9fe5..e3d258b77d53cd16e98cc7317603ff6f86efdb43 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -19,6 +19,10 @@ import org.opendaylight.vtn.javaapi.exception.VtnServiceExceptionHandler;
 import org.opendaylight.vtn.javaapi.exception.VtnServiceInitFailException;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncIpcErrorCode;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
+import org.opendaylight.vtn.javaapi.openstack.constants.VtnServiceOpenStackConsts;
+import org.opendaylight.vtn.javaapi.openstack.dbmanager.ConnectionProperties;
+import org.opendaylight.vtn.javaapi.openstack.dbmanager.DataBaseConnectionPool;
+import org.opendaylight.vtn.javaapi.util.VtnIniParser;
 
 /**
  * The Class VtnServiceInitManager. Initializes the JavaAPI
@@ -32,7 +36,8 @@ public final class VtnServiceInitManager {
        private static VtnServiceExceptionHandler exceptionHandler = new VtnServiceExceptionHandler();
 
        private static Map<ClassLoader, VtnServiceConfiguration> configurationMap = new HashMap<ClassLoader, VtnServiceConfiguration>();
-       private static Map<ClassLoader, IpcConnPool> connectionPoolMap = new HashMap<ClassLoader, IpcConnPool>();
+       private static Map<ClassLoader, IpcConnPool> ipcConnectionPoolMap = new HashMap<ClassLoader, IpcConnPool>();
+       private static Map<ClassLoader, DataBaseConnectionPool> dbConnectionPoolMap = new HashMap<ClassLoader, DataBaseConnectionPool>();
 
        /**
         * Instantiates a new vtn service init manager.
@@ -62,13 +67,12 @@ public final class VtnServiceInitManager {
        public static void init() {
                LOG.trace("Start VtnServiceInitManager#init()");
                try {
-                       LOG.debug("Initialization Application Code : "
-                                       + Thread.currentThread().getContextClassLoader());
+                       ClassLoader currentContext = Thread.currentThread()
+                                       .getContextClassLoader();
+                       LOG.debug("Initialization Application Code : " + currentContext);
 
                        // load the configurations
-                       configurationMap.put(
-                                       Thread.currentThread().getContextClassLoader(),
-                                       new VtnServiceConfiguration());
+                       configurationMap.put(currentContext, new VtnServiceConfiguration());
 
                        // initialize the error maps with loaded properties
                        UncIpcErrorCode.initializeErrorsMessages();
@@ -76,8 +80,22 @@ public final class VtnServiceInitManager {
                        // initialize the connection pooling
                        final IpcConnPool ipcConnPool = new IpcConnPool();
                        ipcConnPool.init(exceptionHandler);
-                       connectionPoolMap.put(Thread.currentThread()
-                                       .getContextClassLoader(), ipcConnPool);
+                       ipcConnectionPoolMap.put(currentContext, ipcConnPool);
+
+                       if (currentContext.toString().contains(
+                                       VtnServiceOpenStackConsts.VTN_WEB_API_ROOT)) {
+                               final ConnectionProperties connectionProperties = VtnIniParser
+                                               .getInstance(
+                                                               VtnServiceInitManager
+                                                                               .getConfigurationMap()
+                                                                               .getConfigValue(
+                                                                                               VtnServiceOpenStackConsts.INI_FILE_PATH))
+                                               .loadConnectionProperties();
+                               // initialize the database connection pooling
+                               final DataBaseConnectionPool dbConnPool = new DataBaseConnectionPool(
+                                               connectionProperties, exceptionHandler);
+                               dbConnectionPoolMap.put(currentContext, dbConnPool);
+                       }
 
                        // load the resources
                        PackageScan.getInstance();
@@ -92,6 +110,14 @@ public final class VtnServiceInitManager {
                LOG.trace("Complete VtnServiceInitManager#init()");
        }
 
+       /**
+        * Destroy the JavaAPI
+        */
+       public void destroy() {
+               dbConnectionPoolMap.get(Thread.currentThread().getContextClassLoader())
+                               .closeAllConnections();
+       }
+
        /**
         * Get exception handler
         * 
@@ -109,10 +135,25 @@ public final class VtnServiceInitManager {
                                .getContextClassLoader());
        }
 
+       /**
+        * Get Connection Pool Map for IPC Connections
+        * @return
+        */
        public static IpcConnPool getConnectionPoolMap() {
                LOG.debug("Request Application Code : "
                                + Thread.currentThread().getContextClassLoader());
-               return connectionPoolMap.get(Thread.currentThread()
+               return ipcConnectionPoolMap.get(Thread.currentThread()
+                               .getContextClassLoader());
+       }
+
+       /**
+        * Get Connection Pool Map for Database Connections
+        * @return
+        */
+       public static DataBaseConnectionPool getDbConnectionPoolMap() {
+               LOG.debug("Request Application Code : "
+                               + Thread.currentThread().getContextClassLoader());
+               return dbConnectionPoolMap.get(Thread.currentThread()
                                .getContextClassLoader());
        }
 }
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/init/package-info.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/init/package-info.java
new file mode 100644 (file)
index 0000000..36da855
--- /dev/null
@@ -0,0 +1,14 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * Package contains Java API initialization classes and interfaces .
+ */
+package org.opendaylight.vtn.javaapi.init;
+
index 4831b749d9190e7fcb8aa15439884111188cae6f..7fce96c5d4c75d05b86e08dbcde84b1a4136764a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -34,7 +34,7 @@ public class IpcRequestPacket {
         * 
         * @return the session id
         */
-       public IpcUint32 getSessionId() {
+       public final IpcUint32 getSessionId() {
                return sessionId;
        }
 
@@ -44,7 +44,7 @@ public class IpcRequestPacket {
         * @param sessionId
         *            the new session id
         */
-       public void setSessionId(final IpcUint32 sessionId) {
+       public final void setSessionId(final IpcUint32 sessionId) {
                this.sessionId = sessionId;
        }
 
@@ -53,7 +53,7 @@ public class IpcRequestPacket {
         * 
         * @return the config id
         */
-       public IpcUint32 getConfigId() {
+       public final IpcUint32 getConfigId() {
                return configId;
        }
 
@@ -63,7 +63,7 @@ public class IpcRequestPacket {
         * @param configId
         *            the new config id
         */
-       public void setConfigId(final IpcUint32 configId) {
+       public final void setConfigId(final IpcUint32 configId) {
                this.configId = configId;
        }
 
@@ -72,7 +72,7 @@ public class IpcRequestPacket {
         * 
         * @return the operation
         */
-       public IpcUint32 getOperation() {
+       public final IpcUint32 getOperation() {
                return operation;
        }
 
@@ -82,7 +82,7 @@ public class IpcRequestPacket {
         * @param opretaion
         *            the new operation
         */
-       public void setOperation(final IpcUint32 operation) {
+       public final void setOperation(final IpcUint32 operation) {
                this.operation = operation;
        }
 
@@ -91,7 +91,7 @@ public class IpcRequestPacket {
         * 
         * @return the max rep count
         */
-       public IpcUint32 getMaxRepCount() {
+       public final IpcUint32 getMaxRepCount() {
                return maxRepCount;
        }
 
@@ -101,7 +101,7 @@ public class IpcRequestPacket {
         * @param maxRepCount
         *            the new max rep count
         */
-       public void setMaxRepCount(final IpcUint32 maxRepCount) {
+       public final void setMaxRepCount(final IpcUint32 maxRepCount) {
                this.maxRepCount = maxRepCount;
        }
 
@@ -110,7 +110,7 @@ public class IpcRequestPacket {
         * 
         * @return the option1
         */
-       public IpcUint32 getOption1() {
+       public final IpcUint32 getOption1() {
                return option1;
        }
 
@@ -120,7 +120,7 @@ public class IpcRequestPacket {
         * @param option1
         *            the new option1
         */
-       public void setOption1(final IpcUint32 option1) {
+       public final void setOption1(final IpcUint32 option1) {
                this.option1 = option1;
        }
 
@@ -129,7 +129,7 @@ public class IpcRequestPacket {
         * 
         * @return the option2
         */
-       public IpcUint32 getOption2() {
+       public final IpcUint32 getOption2() {
                return option2;
        }
 
@@ -139,7 +139,7 @@ public class IpcRequestPacket {
         * @param option2
         *            the new option2
         */
-       public void setOption2(final IpcUint32 option2) {
+       public final void setOption2(final IpcUint32 option2) {
                this.option2 = option2;
        }
 
@@ -148,7 +148,7 @@ public class IpcRequestPacket {
         * 
         * @return the data type
         */
-       public IpcUint32 getDataType() {
+       public final IpcUint32 getDataType() {
                return dataType;
        }
 
@@ -158,7 +158,7 @@ public class IpcRequestPacket {
         * @param dataType
         *            the new data type
         */
-       public void setDataType(final IpcUint32 dataType) {
+       public final void setDataType(final IpcUint32 dataType) {
                this.dataType = dataType;
        }
 
@@ -167,7 +167,7 @@ public class IpcRequestPacket {
         * 
         * @return the key type
         */
-       public IpcUint32 getKeyType() {
+       public final IpcUint32 getKeyType() {
                return keyType;
        }
 
@@ -177,7 +177,7 @@ public class IpcRequestPacket {
         * @param keyType
         *            the new key type
         */
-       public void setKeyType(final IpcUint32 keyType) {
+       public final void setKeyType(final IpcUint32 keyType) {
                this.keyType = keyType;
        }
 
@@ -186,7 +186,7 @@ public class IpcRequestPacket {
         * 
         * @return the key struct
         */
-       public IpcStruct getKeyStruct() {
+       public final IpcStruct getKeyStruct() {
                return keyStruct;
        }
 
@@ -196,7 +196,7 @@ public class IpcRequestPacket {
         * @param keyStruct
         *            the new key struct
         */
-       public void setKeyStruct(final IpcStruct keyStruct) {
+       public final void setKeyStruct(final IpcStruct keyStruct) {
                this.keyStruct = keyStruct;
        }
 
@@ -205,7 +205,7 @@ public class IpcRequestPacket {
         * 
         * @return the val struct
         */
-       public IpcStruct getValStruct() {
+       public final IpcStruct getValStruct() {
                return valStruct;
        }
 
@@ -215,7 +215,7 @@ public class IpcRequestPacket {
         * @param valStruct
         *            the new val struct
         */
-       public void setValStruct(final IpcStruct valStruct) {
+       public final void setValStruct(final IpcStruct valStruct) {
                this.valStruct = valStruct;
        }
 
@@ -224,7 +224,7 @@ public class IpcRequestPacket {
         * 
         * @return
         */
-       public IpcDataUnit[] getExtraDataUnits() {
+       public final IpcDataUnit[] getExtraDataUnits() {
                return extraDataUnits;
        }
 
@@ -233,7 +233,7 @@ public class IpcRequestPacket {
         * 
         * @param extraDataUnits
         */
-       public void setExtraDataUnits(final IpcDataUnit[] extraDataUnits) {
+       public final void setExtraDataUnits(final IpcDataUnit[] extraDataUnits) {
                this.extraDataUnits = extraDataUnits;
        }
 }
index 22f3167567ddeab2570d678e0dc0b2aa24d0728f..faccce59cbbdeae582c629fb93b61549098509a6 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -88,7 +88,8 @@ public class IpcRequestProcessor {
         * 
         * @return the request packet
         */
-       public void setServiceInfo(final String serviceName, final int serviceId) {
+       public final void setServiceInfo(final String serviceName,
+                       final int serviceId) {
                this.serviceName = serviceName;
                this.serviceId = serviceId;
        }
@@ -98,7 +99,7 @@ public class IpcRequestProcessor {
         * 
         * @return the request packet
         */
-       public IpcRequestPacket getRequestPacket() {
+       public final IpcRequestPacket getRequestPacket() {
                LOG.trace("Return from IpcRequestProcessor#getRequestPacket()");
                return requestPacket;
        }
@@ -115,10 +116,10 @@ public class IpcRequestProcessor {
         * @throws VtnServiceException
         *             the vtn service exception
         */
-       public void createIpcRequestPacket(
+       public final void createIpcRequestPacket(
                        final IpcRequestPacketEnum requestPacketEnum,
                        final JsonObject requestBody, final List<String> uriParameters)
-                                       throws VtnServiceException {
+                       throws VtnServiceException {
 
                LOG.trace("Start IpcRequestProcessor#createIpcRequestPacket()");
 
@@ -217,7 +218,8 @@ public class IpcRequestProcessor {
                                requestPacket.setOperation(new IpcUint32(
                                                UncOperationEnum.UNC_OP_READ_SIBLING_COUNT.ordinal()));
                        } else if (opType.equalsIgnoreCase(VtnServiceJsonConsts.DETAIL)
-                                       || opType.equalsIgnoreCase(VtnServiceJsonConsts.NORMAL)) {
+                                       || opType.equalsIgnoreCase(VtnServiceJsonConsts.NORMAL)
+                                       || opType.equalsIgnoreCase(VtnServiceJsonConsts.INFO)) {
                                /*
                                 * No need to update option1 value on the basis of "op"
                                 * parameter's value requestPacket.setOption1(new
@@ -235,7 +237,7 @@ public class IpcRequestProcessor {
                                        // operation type is read_sibling_begin, if index is null
                                        requestPacket.setOperation(new IpcUint32(
                                                        UncOperationEnum.UNC_OP_READ_SIBLING_BEGIN
-                                                       .ordinal()));
+                                                                       .ordinal()));
                                }
                        } else {
                                LOG.debug("No need to change the operation type i.e. READ");
@@ -298,7 +300,7 @@ public class IpcRequestProcessor {
                } else {
                        // if not available, then get the default value and set to IPC
                        // request packet
-                       VtnServiceConfiguration configuration = VtnServiceInitManager
+                       final VtnServiceConfiguration configuration = VtnServiceInitManager
                                        .getConfigurationMap();
                        requestPacket.setMaxRepCount(new IpcUint32(configuration
                                        .getConfigValue(VtnServiceConsts.MAX_REP_DEFAULT)));
@@ -315,7 +317,8 @@ public class IpcRequestProcessor {
         * @throws VtnServiceException
         *             the vtn service exception
         */
-       public IpcDataUnit[] getIpcResponsePacket() throws VtnServiceException {
+       public final IpcDataUnit[] getIpcResponsePacket()
+                       throws VtnServiceException {
 
                LOG.trace("Start IpcRequestProcessor#getIpcResponsePacket()");
                IpcDataUnit[] ipcDataUnits = null;
@@ -330,7 +333,7 @@ public class IpcRequestProcessor {
                                // with key and value structures
                                final int size = session.getResponseCount();
                                ipcDataUnits = new IpcDataUnit[size
-                                                              - VtnServiceConsts.IPC_RESUL_CODE_INDEX - 1];
+                                               - VtnServiceConsts.IPC_RESUL_CODE_INDEX - 1];
                                // iterate response one by one after Result Code
                                int index = 0;
                                for (int i = VtnServiceConsts.IPC_RESUL_CODE_INDEX + 1; i < size; i++) {
@@ -342,11 +345,11 @@ public class IpcRequestProcessor {
                } catch (final IpcException e) {
                        exceptionHandler.raise(
                                        Thread.currentThread().getStackTrace()[1].getClassName()
-                                       + VtnServiceConsts.HYPHEN
-                                       + Thread.currentThread().getStackTrace()[1]
-                                                       .getMethodName(),
-                                                       UncJavaAPIErrorCode.IPC_OP_ERROR.getErrorCode(),
-                                                       UncJavaAPIErrorCode.IPC_OP_ERROR.getErrorMessage(), e);
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
+                                       UncJavaAPIErrorCode.IPC_OP_ERROR.getErrorCode(),
+                                       UncJavaAPIErrorCode.IPC_OP_ERROR.getErrorMessage(), e);
                }
                LOG.trace("Complete IpcRequestProcessor#getIpcResponsePacket()");
                return ipcDataUnits;
@@ -407,7 +410,7 @@ public class IpcRequestProcessor {
                errorJson.add(VtnServiceJsonConsts.ERROR, error);
        }
 
-       public JsonObject getErrorJson() {
+       public final JsonObject getErrorJson() {
                return errorJson;
        }
 
@@ -416,7 +419,7 @@ public class IpcRequestProcessor {
         * 
         * @return the exception handler
         */
-       public VtnServiceExceptionHandler getExceptionHandler() {
+       public final VtnServiceExceptionHandler getExceptionHandler() {
                LOG.trace("Return from IpcRequestProcessor#getExceptionHandler()");
                return exceptionHandler;
        }
@@ -436,7 +439,7 @@ public class IpcRequestProcessor {
         */
        private IpcStruct getIpcStructure(final String structName,
                        final JsonObject requestBody, final List<String> uriParameters)
-                                       throws VtnServiceException {
+                       throws VtnServiceException {
 
                LOG.trace("Start IpcRequestProcessor#getIpcStructure()");
                IpcStruct ipcStruct = null;
@@ -454,22 +457,22 @@ public class IpcRequestProcessor {
                                // get the method name to get the IpcStruct object for given key
                                method = sourceClass.getMethod(
                                                VtnServiceConsts.STRUCT_METHOD_PREFIX + structName
-                                               + VtnServiceConsts.STRUCT_METHOD_POSTFIX,
+                                                               + VtnServiceConsts.STRUCT_METHOD_POSTFIX,
                                                JsonObject.class, List.class);
                                // get IpcStruct object
                                ipcStruct = (IpcStruct) method.invoke(stuctGenerator,
                                                requestBody, uriParameters);
                        } catch (final Exception e) {
                                exceptionHandler
-                               .raise(Thread.currentThread().getStackTrace()[1]
-                                               .getClassName()
-                                               + VtnServiceConsts.HYPHEN
-                                               + Thread.currentThread().getStackTrace()[1]
-                                                               .getMethodName(),
+                                               .raise(Thread.currentThread().getStackTrace()[1]
+                                                               .getClassName()
+                                                               + VtnServiceConsts.HYPHEN
+                                                               + Thread.currentThread().getStackTrace()[1]
+                                                                               .getMethodName(),
                                                                UncJavaAPIErrorCode.INTERNAL_ERROR
-                                                               .getErrorCode(),
+                                                                               .getErrorCode(),
                                                                UncJavaAPIErrorCode.INTERNAL_ERROR
-                                                               .getErrorMessage(), e);
+                                                                               .getErrorMessage(), e);
                        }
                }
                LOG.trace("Complete IpcRequestProcessor#getIpcStructure()");
@@ -483,7 +486,7 @@ public class IpcRequestProcessor {
         * @throws VtnServiceException
         *             the vtn service exception
         */
-       public int processIpcRequest() throws VtnServiceException {
+       public final int processIpcRequest() throws VtnServiceException {
 
                LOG.trace("Start IpcRequestProcessor#processIpcRequest()");
                int status = ClientSession.RESP_FATAL;
@@ -546,31 +549,35 @@ public class IpcRequestProcessor {
                                                                .getResponse(VtnServiceConsts.IPC_RESUL_CODE_INDEX));
                                LOG.debug("Result code received: " + resultCode);
                                final int keyType = requestPacket.getKeyType().intValue();
-                               
-                               if(requestPacket.getOperation().intValue() == UncOperationEnum.UNC_OP_READ.ordinal()
-                                                       || requestPacket.getOperation().intValue() == UncOperationEnum.UNC_OP_READ_SIBLING_BEGIN.ordinal()
-                                                       || requestPacket.getOperation().intValue() == UncOperationEnum.UNC_OP_READ_SIBLING.ordinal()
-                                                       || requestPacket.getOperation().intValue() == UncOperationEnum.UNC_OP_READ_SIBLING_COUNT.ordinal()){
-                                         if (keyType >= UncCommonEnum.MIN_LOGICAL_KEYTYPE
-                                                                 && keyType <= UncCommonEnum.MAX_LOGICAL_KEYTYPE
-                                                                 && Integer.parseInt(resultCode) == VtnServiceConsts.UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-                                                       noSuchInstanceFlag = true;
-                                                       LOG.debug("No such instance case for UPLL");
-                                         } else if (keyType >= UncCommonEnum.MIN_PHYSICAL_KEYTYPE
-                                                                 && keyType <= UncCommonEnum.MAX_PHYSICAL_KEYTYPE
-                                                                 && Integer.parseInt(resultCode) == VtnServiceConsts.UPPL_RC_ERR_NO_SUCH_INSTANCE) {
-                                                       noSuchInstanceFlag = true;
-                                                       LOG.debug("No such instance case for UPPL");
-                                         } else {
-                                                       LOG.debug(" Either Key Type does not exists or operation is not success");
-                                         }                             
-                }
-                               
+
+                               if (requestPacket.getOperation().intValue() == UncOperationEnum.UNC_OP_READ
+                                               .ordinal()
+                                               || requestPacket.getOperation().intValue() == UncOperationEnum.UNC_OP_READ_SIBLING_BEGIN
+                                                               .ordinal()
+                                               || requestPacket.getOperation().intValue() == UncOperationEnum.UNC_OP_READ_SIBLING
+                                                               .ordinal()
+                                               || requestPacket.getOperation().intValue() == UncOperationEnum.UNC_OP_READ_SIBLING_COUNT
+                                                               .ordinal()) {
+                                       if (keyType >= UncCommonEnum.MIN_LOGICAL_KEYTYPE
+                                                       && keyType <= UncCommonEnum.MAX_LOGICAL_KEYTYPE
+                                                       && Integer.parseInt(resultCode) == VtnServiceConsts.UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                                               noSuchInstanceFlag = true;
+                                               LOG.debug("No such instance case for UPLL");
+                                       } else if (keyType >= UncCommonEnum.MIN_PHYSICAL_KEYTYPE
+                                                       && keyType <= UncCommonEnum.MAX_PHYSICAL_KEYTYPE
+                                                       && Integer.parseInt(resultCode) == VtnServiceConsts.UPPL_RC_ERR_NO_SUCH_INSTANCE) {
+                                               noSuchInstanceFlag = true;
+                                               LOG.debug("No such instance case for UPPL");
+                                       } else {
+                                               LOG.debug(" Either Key Type does not exists or operation is not success");
+                                       }
+                               }
+
                                // if return code is not success, then create the error Json for
                                // received result code
                                if (null == resultCode
                                                || UncIpcErrorCode.RC_SUCCESS != Integer
-                                               .parseInt(resultCode)) {
+                                                               .parseInt(resultCode)) {
                                        if (noSuchInstanceFlag) {
                                                status = UncResultCode.UNC_SUCCESS.getValue();
                                        } else {
@@ -584,11 +591,11 @@ public class IpcRequestProcessor {
                } catch (final IpcException e) {
                        exceptionHandler.raise(
                                        Thread.currentThread().getStackTrace()[1].getClassName()
-                                       + VtnServiceConsts.HYPHEN
-                                       + Thread.currentThread().getStackTrace()[1]
-                                                       .getMethodName(),
-                                                       UncJavaAPIErrorCode.IPC_OP_ERROR.getErrorCode(),
-                                                       UncJavaAPIErrorCode.IPC_OP_ERROR.getErrorMessage(), e);
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
+                                       UncJavaAPIErrorCode.IPC_OP_ERROR.getErrorCode(),
+                                       UncJavaAPIErrorCode.IPC_OP_ERROR.getErrorMessage(), e);
                }
                LOG.trace("Complete IpcRequestProcessor#processIpcRequest()");
                return status;
index 25c63605a77d46a20a2580f08f61cb073451da1d..91536451125db15941597d383dea1eb6e3b4397b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -46,7 +46,7 @@ public class IpcRollback {
         * 
         * @return the ipc request packet
         */
-       public IpcRequestPacket popIpcPacket() {
+       public final IpcRequestPacket popIpcPacket() {
                IpcRequestPacket requestPacket = null;
                if (!ipcRequestPacketStack.isEmpty()) {
                        requestPacket = ipcRequestPacketStack.pop();
@@ -60,7 +60,7 @@ public class IpcRollback {
         * @param requestPacket
         *            the request packet
         */
-       public void pushIpcPacket(final IpcRequestPacket requestPacket) {
+       public final void pushIpcPacket(final IpcRequestPacket requestPacket) {
                ipcRequestPacketStack.push(requestPacket);
        }
 
@@ -73,7 +73,8 @@ public class IpcRollback {
         * @throws VtnServiceException
         *             the vtn service exception
         */
-       public boolean rollBackIpcRequest(final IpcRequestProcessor requestProcessor)
+       public final boolean rollBackIpcRequest(
+                       final IpcRequestProcessor requestProcessor)
                        throws VtnServiceException {
                boolean rollBackStatus = false;
                final Iterator<IpcRequestPacket> ipcRequestPacketIterator = ipcRequestPacketStack
index b3cb8240efeddad0b7acfdd2c3468515d3ed7caf..b5ebef88454a658ef8bc6f8a24dcf11360fe0420 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -38,7 +38,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the key vtn struct
         */
-       public IpcStruct getKeyVtnStruct(final JsonObject requestBody,
+       public final IpcStruct getKeyVtnStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                /*
                 * ipc_struct KeyVtn { UINT8 vtn_name[32]; };
@@ -75,7 +75,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the val_vtn struct
         */
-       public IpcStruct getValVtnStruct(final JsonObject requestBody,
+       public final IpcStruct getValVtnStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                LOG.trace("Start getValVtnStruct");
                final IpcStruct valVtnStruct = IpcDataUnitWrapper
@@ -122,7 +122,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the key vrt struct
         */
-       public IpcStruct getKeyVrtStruct(final JsonObject requestBody,
+       public final IpcStruct getKeyVrtStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                LOG.trace("Start getKeyVrtStruct");
                final IpcStruct keyVtnVrtStruct = IpcDataUnitWrapper
@@ -167,8 +167,8 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the key dhcp relay if struct
         */
-       public IpcStruct getKeyDhcpRelayIfStruct(final JsonObject requestBody,
-                       final List<String> uriParameters) {
+       public final IpcStruct getKeyDhcpRelayIfStruct(
+                       final JsonObject requestBody, final List<String> uriParameters) {
 
                // Lower level structure
                /*
@@ -266,7 +266,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the key flow list struct
         */
-       public IpcStruct getKeyFlowListStruct(final JsonObject requestBody,
+       public final IpcStruct getKeyFlowListStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                // low level structure
                /*
@@ -307,7 +307,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the val flow list struct
         */
-       public IpcStruct getValFlowListStruct(final JsonObject requestBody,
+       public final IpcStruct getValFlowListStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                LOG.trace("Start ValFlowListStruct");
                final IpcStruct valFlowListStruct = IpcDataUnitWrapper
@@ -377,8 +377,8 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the key flow list entry struct
         */
-       public IpcStruct getKeyFlowListEntryStruct(final JsonObject requestBody,
-                       final List<String> uriParameters) {
+       public final IpcStruct getKeyFlowListEntryStruct(
+                       final JsonObject requestBody, final List<String> uriParameters) {
                // low level structure
                /*
                 * ipc_struct key_flowlist_entry { key_flowlist flowlist_key; UINT16
@@ -427,14 +427,15 @@ public class IpcStructFactory {
         *            the request body
         * @return the val flow list entry struct
         */
-       public IpcStruct getValFlowListEntryStruct(final JsonObject requestBody,
-                       final List<String> uriParameters) {
+       public final IpcStruct getValFlowListEntryStruct(
+                       final JsonObject requestBody, final List<String> uriParameters) {
                LOG.trace("Start getValFlowListEntryStruct");
                final IpcStruct valFlowListEntryStruct = IpcDataUnitWrapper
                                .setIpcStructValue(UncStructEnum.ValFlowListEntry.getValue());
                if (requestBody != null
                                && requestBody.has(VtnServiceJsonConsts.FLOWLISTENTRY)) {
-                       JsonObject flowListEntry = requestBody.getAsJsonObject(VtnServiceJsonConsts.FLOWLISTENTRY);
+                       final JsonObject flowListEntry = requestBody
+                                       .getAsJsonObject(VtnServiceJsonConsts.FLOWLISTENTRY);
                        if (flowListEntry.has(VtnServiceJsonConsts.MACDSTADDR)) {
                                valFlowListEntryStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -443,10 +444,15 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               IpcDataUnitWrapper.setMacAddress(
-                                               valFlowListEntryStruct,
-                                               VtnServiceIpcConsts.MACDST,flowListEntry.get(VtnServiceJsonConsts.MACDSTADDR).getAsString(),
-                                               UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_MAC_DST_FLE.ordinal());
+                               IpcDataUnitWrapper
+                                               .setMacAddress(
+                                                               valFlowListEntryStruct,
+                                                               VtnServiceIpcConsts.MACDST,
+                                                               flowListEntry.get(
+                                                                               VtnServiceJsonConsts.MACDSTADDR)
+                                                                               .getAsString(),
+                                                               UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_MAC_DST_FLE
+                                                                               .ordinal());
                        } else {
                                valFlowListEntryStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -464,11 +470,15 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               IpcDataUnitWrapper.setMacAddress(
-                                               valFlowListEntryStruct,
-                                               VtnServiceIpcConsts.MACSRC,
-                                               flowListEntry.get(VtnServiceJsonConsts.MACSRCADDR).getAsString(),
-                                               UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_MAC_SRC_FLE.ordinal());
+                               IpcDataUnitWrapper
+                                               .setMacAddress(
+                                                               valFlowListEntryStruct,
+                                                               VtnServiceIpcConsts.MACSRC,
+                                                               flowListEntry.get(
+                                                                               VtnServiceJsonConsts.MACSRCADDR)
+                                                                               .getAsString(),
+                                                               UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_MAC_SRC_FLE
+                                                                               .ordinal());
                        } else {
                                valFlowListEntryStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -486,10 +496,16 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               valFlowListEntryStruct.set(
-                                               VtnServiceIpcConsts.MAC_ETH_TYPE,
-                                               IpcDataUnitWrapper.setIpcUint16HexaValue(flowListEntry.get(VtnServiceJsonConsts.MACETHERTYPE).getAsString(),
-                                                               valFlowListEntryStruct, UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_MAC_ETH_TYPE_FLE.ordinal()));
+                               valFlowListEntryStruct
+                                               .set(VtnServiceIpcConsts.MAC_ETH_TYPE,
+                                                               IpcDataUnitWrapper
+                                                                               .setIpcUint16HexaValue(
+                                                                                               flowListEntry
+                                                                                                               .get(VtnServiceJsonConsts.MACETHERTYPE)
+                                                                                                               .getAsString(),
+                                                                                               valFlowListEntryStruct,
+                                                                                               UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_MAC_ETH_TYPE_FLE
+                                                                                                               .ordinal()));
                                LOG.debug("macethertype:"
                                                + flowListEntry.get(VtnServiceJsonConsts.MACETHERTYPE)
                                                                .getAsString());
@@ -510,10 +526,16 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               valFlowListEntryStruct.set(
-                                               VtnServiceIpcConsts.DST_IP,
-                                               IpcDataUnitWrapper.setIpcInet4AddressValue(flowListEntry.get(VtnServiceJsonConsts.IPDSTADDR).getAsString(),
-                                                               valFlowListEntryStruct, UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_DST_IP_FLE.ordinal()));
+                               valFlowListEntryStruct
+                                               .set(VtnServiceIpcConsts.DST_IP,
+                                                               IpcDataUnitWrapper
+                                                                               .setIpcInet4AddressValue(
+                                                                                               flowListEntry
+                                                                                                               .get(VtnServiceJsonConsts.IPDSTADDR)
+                                                                                                               .getAsString(),
+                                                                                               valFlowListEntryStruct,
+                                                                                               UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_DST_IP_FLE
+                                                                                                               .ordinal()));
                        } else {
                                valFlowListEntryStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -531,10 +553,16 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               valFlowListEntryStruct.set(
-                                               VtnServiceIpcConsts.DST_IP_PREFIXLEN,
-                                               IpcDataUnitWrapper.setIpcUint8Value(flowListEntry.get(VtnServiceJsonConsts.IPDSTADDRPREFIX).getAsString(), 
-                                                               valFlowListEntryStruct, UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_DST_IP_PREFIX_FLE.ordinal()));
+                               valFlowListEntryStruct
+                                               .set(VtnServiceIpcConsts.DST_IP_PREFIXLEN,
+                                                               IpcDataUnitWrapper
+                                                                               .setIpcUint8Value(
+                                                                                               flowListEntry
+                                                                                                               .get(VtnServiceJsonConsts.IPDSTADDRPREFIX)
+                                                                                                               .getAsString(),
+                                                                                               valFlowListEntryStruct,
+                                                                                               UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_DST_IP_PREFIX_FLE
+                                                                                                               .ordinal()));
                        } else {
                                valFlowListEntryStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -552,10 +580,16 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               valFlowListEntryStruct.set(
-                                               VtnServiceIpcConsts.SRC_IP,
-                                               IpcDataUnitWrapper.setIpcInet4AddressValue(flowListEntry.get(VtnServiceJsonConsts.IPSRCADDR).getAsString(),
-                                                               valFlowListEntryStruct, UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_SRC_IP_FLE.ordinal()));
+                               valFlowListEntryStruct
+                                               .set(VtnServiceIpcConsts.SRC_IP,
+                                                               IpcDataUnitWrapper
+                                                                               .setIpcInet4AddressValue(
+                                                                                               flowListEntry
+                                                                                                               .get(VtnServiceJsonConsts.IPSRCADDR)
+                                                                                                               .getAsString(),
+                                                                                               valFlowListEntryStruct,
+                                                                                               UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_SRC_IP_FLE
+                                                                                                               .ordinal()));
                        } else {
                                valFlowListEntryStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -573,10 +607,16 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               valFlowListEntryStruct.set(
-                                               VtnServiceIpcConsts.SRC_IP_PREFIXLEN,
-                                               IpcDataUnitWrapper.setIpcUint8Value(flowListEntry.get(VtnServiceJsonConsts.IPSRCADDRPREFIX).getAsString(), 
-                                                               valFlowListEntryStruct, UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_SRC_IP_PREFIX_FLE.ordinal()));
+                               valFlowListEntryStruct
+                                               .set(VtnServiceIpcConsts.SRC_IP_PREFIXLEN,
+                                                               IpcDataUnitWrapper
+                                                                               .setIpcUint8Value(
+                                                                                               flowListEntry
+                                                                                                               .get(VtnServiceJsonConsts.IPSRCADDRPREFIX)
+                                                                                                               .getAsString(),
+                                                                                               valFlowListEntryStruct,
+                                                                                               UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_SRC_IP_PREFIX_FLE
+                                                                                                               .ordinal()));
                        } else {
                                valFlowListEntryStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -595,10 +635,16 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               valFlowListEntryStruct.set(
-                                               VtnServiceIpcConsts.VLAN_PRIORITY,
-                                               IpcDataUnitWrapper.setIpcUint8Value(flowListEntry.get(VtnServiceJsonConsts.MACVLANPRIORITY).getAsString(), 
-                                                               valFlowListEntryStruct, UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_VLAN_PRIORITY_FLE.ordinal()));
+                               valFlowListEntryStruct
+                                               .set(VtnServiceIpcConsts.VLAN_PRIORITY,
+                                                               IpcDataUnitWrapper
+                                                                               .setIpcUint8Value(
+                                                                                               flowListEntry
+                                                                                                               .get(VtnServiceJsonConsts.MACVLANPRIORITY)
+                                                                                                               .getAsString(),
+                                                                                               valFlowListEntryStruct,
+                                                                                               UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_VLAN_PRIORITY_FLE
+                                                                                                               .ordinal()));
                        } else {
                                valFlowListEntryStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -616,10 +662,16 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               valFlowListEntryStruct.set(
-                                               VtnServiceIpcConsts.DST_IPV6,
-                                               IpcDataUnitWrapper.setIpcInet6AddressValue(flowListEntry.get(VtnServiceJsonConsts.IPV6DSTADDR).getAsString(),
-                                                               valFlowListEntryStruct, UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_DST_IP_V6_FLE.ordinal()));
+                               valFlowListEntryStruct
+                                               .set(VtnServiceIpcConsts.DST_IPV6,
+                                                               IpcDataUnitWrapper
+                                                                               .setIpcInet6AddressValue(
+                                                                                               flowListEntry
+                                                                                                               .get(VtnServiceJsonConsts.IPV6DSTADDR)
+                                                                                                               .getAsString(),
+                                                                                               valFlowListEntryStruct,
+                                                                                               UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_DST_IP_V6_FLE
+                                                                                                               .ordinal()));
                        } else {
                                valFlowListEntryStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -637,10 +689,16 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               valFlowListEntryStruct.set(
-                                               VtnServiceIpcConsts.DST_IPV6_PREFIXLEN,
-                                               IpcDataUnitWrapper.setIpcUint8Value(flowListEntry.get(VtnServiceJsonConsts.IPV6DSTADDRPREFIX).getAsString(), 
-                                                               valFlowListEntryStruct, UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_DST_IP_V6_PREFIX_FLE.ordinal()));
+                               valFlowListEntryStruct
+                                               .set(VtnServiceIpcConsts.DST_IPV6_PREFIXLEN,
+                                                               IpcDataUnitWrapper
+                                                                               .setIpcUint8Value(
+                                                                                               flowListEntry
+                                                                                                               .get(VtnServiceJsonConsts.IPV6DSTADDRPREFIX)
+                                                                                                               .getAsString(),
+                                                                                               valFlowListEntryStruct,
+                                                                                               UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_DST_IP_V6_PREFIX_FLE
+                                                                                                               .ordinal()));
                        } else {
                                valFlowListEntryStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -658,10 +716,16 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               valFlowListEntryStruct.set(
-                                               VtnServiceIpcConsts.SRC_IPV6,
-                                               IpcDataUnitWrapper.setIpcInet6AddressValue(flowListEntry.get(VtnServiceJsonConsts.IPV6SRCADDR).getAsString(),
-                                                               valFlowListEntryStruct, UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_SRC_IP_V6_FLE.ordinal()));
+                               valFlowListEntryStruct
+                                               .set(VtnServiceIpcConsts.SRC_IPV6,
+                                                               IpcDataUnitWrapper
+                                                                               .setIpcInet6AddressValue(
+                                                                                               flowListEntry
+                                                                                                               .get(VtnServiceJsonConsts.IPV6SRCADDR)
+                                                                                                               .getAsString(),
+                                                                                               valFlowListEntryStruct,
+                                                                                               UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_SRC_IP_V6_FLE
+                                                                                                               .ordinal()));
                                LOG.debug("ipv6srcaddr:"
                                                + flowListEntry.get(VtnServiceJsonConsts.IPV6SRCADDR)
                                                                .getAsString());
@@ -682,10 +746,16 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               valFlowListEntryStruct.set(
-                                               VtnServiceIpcConsts.SRC_IPV6_PREFIXLEN,
-                                               IpcDataUnitWrapper.setIpcUint8Value(flowListEntry.get(VtnServiceJsonConsts.IPV6SRCADDRPREFIX).getAsString(), 
-                                                               valFlowListEntryStruct, UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_SRC_IP_V6_PREFIX_FLE.ordinal()));
+                               valFlowListEntryStruct
+                                               .set(VtnServiceIpcConsts.SRC_IPV6_PREFIXLEN,
+                                                               IpcDataUnitWrapper
+                                                                               .setIpcUint8Value(
+                                                                                               flowListEntry
+                                                                                                               .get(VtnServiceJsonConsts.IPV6SRCADDRPREFIX)
+                                                                                                               .getAsString(),
+                                                                                               valFlowListEntryStruct,
+                                                                                               UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_SRC_IP_V6_PREFIX_FLE
+                                                                                                               .ordinal()));
                        } else {
                                valFlowListEntryStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -703,10 +773,16 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               valFlowListEntryStruct.set(
-                                               VtnServiceIpcConsts.IP_PROTO,
-                                               IpcDataUnitWrapper.setIpcUint8Value(flowListEntry.get(VtnServiceJsonConsts.IPPROTO).getAsString(), 
-                                                               valFlowListEntryStruct, UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_IP_PROTOCOL_FLE.ordinal()));
+                               valFlowListEntryStruct
+                                               .set(VtnServiceIpcConsts.IP_PROTO,
+                                                               IpcDataUnitWrapper
+                                                                               .setIpcUint8Value(
+                                                                                               flowListEntry
+                                                                                                               .get(VtnServiceJsonConsts.IPPROTO)
+                                                                                                               .getAsString(),
+                                                                                               valFlowListEntryStruct,
+                                                                                               UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_IP_PROTOCOL_FLE
+                                                                                                               .ordinal()));
                        } else {
                                valFlowListEntryStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -727,8 +803,13 @@ public class IpcStructFactory {
                                valFlowListEntryStruct
                                                .set(VtnServiceIpcConsts.IP_DSCP,
                                                                IpcDataUnitWrapper
-                                                                               .setIpcUint8Value(flowListEntry.get(VtnServiceJsonConsts.IPDSCP).getAsString(), 
-                                                                                               valFlowListEntryStruct, UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_IP_DSCP_FLE.ordinal()));
+                                                                               .setIpcUint8Value(
+                                                                                               flowListEntry
+                                                                                                               .get(VtnServiceJsonConsts.IPDSCP)
+                                                                                                               .getAsString(),
+                                                                                               valFlowListEntryStruct,
+                                                                                               UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_IP_DSCP_FLE
+                                                                                                               .ordinal()));
                        } else {
                                valFlowListEntryStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -746,10 +827,16 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               valFlowListEntryStruct.set(
-                                               VtnServiceIpcConsts.L4_DST_PORT,
-                                               IpcDataUnitWrapper.setIpcUint16Value(flowListEntry.get(VtnServiceJsonConsts.L4DSTPORT).getAsString(),
-                                                               valFlowListEntryStruct, UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_L4_DST_PORT_FLE.ordinal()));
+                               valFlowListEntryStruct
+                                               .set(VtnServiceIpcConsts.L4_DST_PORT,
+                                                               IpcDataUnitWrapper
+                                                                               .setIpcUint16Value(
+                                                                                               flowListEntry
+                                                                                                               .get(VtnServiceJsonConsts.L4DSTPORT)
+                                                                                                               .getAsString(),
+                                                                                               valFlowListEntryStruct,
+                                                                                               UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_L4_DST_PORT_FLE
+                                                                                                               .ordinal()));
                        } else {
                                valFlowListEntryStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -767,10 +854,16 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               valFlowListEntryStruct.set(
-                                               VtnServiceIpcConsts.L4_DST_PORT_ENDPT,
-                                               IpcDataUnitWrapper.setIpcUint16Value(flowListEntry.get(VtnServiceJsonConsts.L4DSTENDPORT).getAsString(),
-                                                               valFlowListEntryStruct, UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_L4_DST_PORT_ENDPT_FLE.ordinal()));
+                               valFlowListEntryStruct
+                                               .set(VtnServiceIpcConsts.L4_DST_PORT_ENDPT,
+                                                               IpcDataUnitWrapper
+                                                                               .setIpcUint16Value(
+                                                                                               flowListEntry
+                                                                                                               .get(VtnServiceJsonConsts.L4DSTENDPORT)
+                                                                                                               .getAsString(),
+                                                                                               valFlowListEntryStruct,
+                                                                                               UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_L4_DST_PORT_ENDPT_FLE
+                                                                                                               .ordinal()));
                        } else {
                                valFlowListEntryStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -788,10 +881,16 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               valFlowListEntryStruct.set(
-                                               VtnServiceIpcConsts.L4_SRC_PORT,
-                                               IpcDataUnitWrapper.setIpcUint16Value(flowListEntry.get(VtnServiceJsonConsts.L4SRCPORT).getAsString(),
-                                                               valFlowListEntryStruct, UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_L4_SRC_PORT_FLE.ordinal()));
+                               valFlowListEntryStruct
+                                               .set(VtnServiceIpcConsts.L4_SRC_PORT,
+                                                               IpcDataUnitWrapper
+                                                                               .setIpcUint16Value(
+                                                                                               flowListEntry
+                                                                                                               .get(VtnServiceJsonConsts.L4SRCPORT)
+                                                                                                               .getAsString(),
+                                                                                               valFlowListEntryStruct,
+                                                                                               UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_L4_SRC_PORT_FLE
+                                                                                                               .ordinal()));
                        } else {
                                valFlowListEntryStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -809,10 +908,16 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               valFlowListEntryStruct.set(
-                                               VtnServiceIpcConsts.L4_SRC_PORT_ENDPT,
-                                               IpcDataUnitWrapper.setIpcUint16Value(flowListEntry.get(VtnServiceJsonConsts.L4SRCENDPORT).getAsString(),
-                                                               valFlowListEntryStruct, UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_L4_SRC_PORT_ENDPT_FLE.ordinal()));
+                               valFlowListEntryStruct
+                                               .set(VtnServiceIpcConsts.L4_SRC_PORT_ENDPT,
+                                                               IpcDataUnitWrapper
+                                                                               .setIpcUint16Value(
+                                                                                               flowListEntry
+                                                                                                               .get(VtnServiceJsonConsts.L4SRCENDPORT)
+                                                                                                               .getAsString(),
+                                                                                               valFlowListEntryStruct,
+                                                                                               UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_L4_SRC_PORT_ENDPT_FLE
+                                                                                                               .ordinal()));
                        } else {
                                valFlowListEntryStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -830,10 +935,16 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               valFlowListEntryStruct.set(
-                                               VtnServiceIpcConsts.ICMP_TYPE,
-                                               IpcDataUnitWrapper.setIpcUint8Value(flowListEntry.get(VtnServiceJsonConsts.ICMPTYPENUM).getAsString(), 
-                                                               valFlowListEntryStruct, UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_ICMP_TYPE_FLE.ordinal()));
+                               valFlowListEntryStruct
+                                               .set(VtnServiceIpcConsts.ICMP_TYPE,
+                                                               IpcDataUnitWrapper
+                                                                               .setIpcUint8Value(
+                                                                                               flowListEntry
+                                                                                                               .get(VtnServiceJsonConsts.ICMPTYPENUM)
+                                                                                                               .getAsString(),
+                                                                                               valFlowListEntryStruct,
+                                                                                               UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_ICMP_TYPE_FLE
+                                                                                                               .ordinal()));
                        } else {
                                valFlowListEntryStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -851,10 +962,16 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               valFlowListEntryStruct.set(
-                                               VtnServiceIpcConsts.ICMP_CODE,
-                                               IpcDataUnitWrapper.setIpcUint8Value(flowListEntry.get(VtnServiceJsonConsts.ICMPCODENUM).getAsString(), 
-                                                               valFlowListEntryStruct, UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_ICMP_CODE_FLE.ordinal()));
+                               valFlowListEntryStruct
+                                               .set(VtnServiceIpcConsts.ICMP_CODE,
+                                                               IpcDataUnitWrapper
+                                                                               .setIpcUint8Value(
+                                                                                               flowListEntry
+                                                                                                               .get(VtnServiceJsonConsts.ICMPCODENUM)
+                                                                                                               .getAsString(),
+                                                                                               valFlowListEntryStruct,
+                                                                                               UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_ICMP_CODE_FLE
+                                                                                                               .ordinal()));
                        } else {
                                valFlowListEntryStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -872,10 +989,16 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               valFlowListEntryStruct.set(
-                                               VtnServiceIpcConsts.ICMPV6_TYPE,
-                                               IpcDataUnitWrapper.setIpcUint8Value(flowListEntry.get(VtnServiceJsonConsts.IPV6ICMPTYPENUM).getAsString(), 
-                                                               valFlowListEntryStruct, UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_ICMP_V6_TYPE_FLE.ordinal()));
+                               valFlowListEntryStruct
+                                               .set(VtnServiceIpcConsts.ICMPV6_TYPE,
+                                                               IpcDataUnitWrapper
+                                                                               .setIpcUint8Value(
+                                                                                               flowListEntry
+                                                                                                               .get(VtnServiceJsonConsts.IPV6ICMPTYPENUM)
+                                                                                                               .getAsString(),
+                                                                                               valFlowListEntryStruct,
+                                                                                               UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_ICMP_V6_TYPE_FLE
+                                                                                                               .ordinal()));
                        } else {
                                valFlowListEntryStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -893,10 +1016,16 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               valFlowListEntryStruct.set(
-                                               VtnServiceIpcConsts.ICMPV6_CODE,
-                                               IpcDataUnitWrapper.setIpcUint8Value(flowListEntry.get(VtnServiceJsonConsts.IPV6ICMPCODENUM).getAsString(), 
-                                                               valFlowListEntryStruct, UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_ICMP_V6_CODE_FLE.ordinal()));
+                               valFlowListEntryStruct
+                                               .set(VtnServiceIpcConsts.ICMPV6_CODE,
+                                                               IpcDataUnitWrapper
+                                                                               .setIpcUint8Value(
+                                                                                               flowListEntry
+                                                                                                               .get(VtnServiceJsonConsts.IPV6ICMPCODENUM)
+                                                                                                               .getAsString(),
+                                                                                               valFlowListEntryStruct,
+                                                                                               UncStructIndexEnum.ValFlowlistEntryIndex.UPLL_IDX_ICMP_V6_CODE_FLE
+                                                                                                               .ordinal()));
                        } else {
                                valFlowListEntryStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -923,7 +1052,7 @@ public class IpcStructFactory {
         *            the URI parameters
         * @return the key v tunnel if struct
         */
-       public IpcStruct getKeyVtunnelIfStruct(final JsonObject requestBody,
+       public final IpcStruct getKeyVtunnelIfStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                LOG.trace("Start getKeyVtunnelIfStruct");
                final IpcStruct KeyVTunnelIfStruct = IpcDataUnitWrapper
@@ -969,7 +1098,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the val v tunnel if struct
         */
-       public IpcStruct getValVtunnelIfStruct(final JsonObject requestBody,
+       public final IpcStruct getValVtunnelIfStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                LOG.trace("Start getValVtunnelIfStruct");
                final IpcStruct ValVTunnelIfStruct = IpcDataUnitWrapper
@@ -1016,14 +1145,22 @@ public class IpcStructFactory {
                                        ValVTunnelIfStruct
                                                        .set(VtnServiceJsonConsts.ADMIN_STATUS,
                                                                        IpcDataUnitWrapper
-                                                                                       .setIpcUint8Value(UncStructIndexEnum.ValAdminStatus.UPLL_ADMIN_ENABLE.getValue(),
-                                                                                                       ValVTunnelIfStruct, UncStructIndexEnum.ValVtunnelIfIndex.UPLL_IDX_ADMIN_ST_VTNL_IF.ordinal()));
+                                                                                       .setIpcUint8Value(
+                                                                                                       UncStructIndexEnum.ValAdminStatus.UPLL_ADMIN_ENABLE
+                                                                                                                       .getValue(),
+                                                                                                       ValVTunnelIfStruct,
+                                                                                                       UncStructIndexEnum.ValVtunnelIfIndex.UPLL_IDX_ADMIN_ST_VTNL_IF
+                                                                                                                       .ordinal()));
                                } else {
                                        ValVTunnelIfStruct
                                                        .set(VtnServiceJsonConsts.ADMIN_STATUS,
                                                                        IpcDataUnitWrapper
-                                                                                       .setIpcUint8Value(UncStructIndexEnum.ValAdminStatus.UPLL_ADMIN_DISABLE.getValue(),
-                                                                                                       ValVTunnelIfStruct, UncStructIndexEnum.ValVtunnelIfIndex.UPLL_IDX_ADMIN_ST_VTNL_IF.ordinal()));
+                                                                                       .setIpcUint8Value(
+                                                                                                       UncStructIndexEnum.ValAdminStatus.UPLL_ADMIN_DISABLE
+                                                                                                                       .getValue(),
+                                                                                                       ValVTunnelIfStruct,
+                                                                                                       UncStructIndexEnum.ValVtunnelIfIndex.UPLL_IDX_ADMIN_ST_VTNL_IF
+                                                                                                                       .ordinal()));
                                }
                                LOG.debug("adminstatus:"
                                                + requestBody
@@ -1138,7 +1275,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the key vlink struct
         */
-       public IpcStruct getKeyVlinkStruct(final JsonObject requestBody,
+       public final IpcStruct getKeyVlinkStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                LOG.trace("Start getKeyVlinkStruct");
                final IpcStruct KeyVlinkStruct = IpcDataUnitWrapper
@@ -1183,13 +1320,14 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the val vlink struct
         */
-       public IpcStruct getValVlinkStruct(final JsonObject requestBody,
+       public final IpcStruct getValVlinkStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                LOG.trace("Start getValVlinkStruct");
                final IpcStruct ValVlinkStruct = IpcDataUnitWrapper
                                .setIpcStructValue(UncStructEnum.ValVlink.getValue());
                if (requestBody != null && requestBody.has(VtnServiceJsonConsts.VLINK)) {
-                       JsonObject vLink = requestBody.getAsJsonObject(VtnServiceJsonConsts.VLINK);
+                       final JsonObject vLink = requestBody
+                                       .getAsJsonObject(VtnServiceJsonConsts.VLINK);
                        if (vLink.has(VtnServiceJsonConsts.ADMINSTATUS)) {
                                ValVlinkStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -1203,14 +1341,22 @@ public class IpcStructFactory {
                                        ValVlinkStruct
                                                        .set(VtnServiceJsonConsts.ADMIN_STATUS,
                                                                        IpcDataUnitWrapper
-                                                                                       .setIpcUint8Value(UncStructIndexEnum.ValAdminStatus.UPLL_ADMIN_ENABLE.getValue(),
-                                                                                                       ValVlinkStruct,UncStructIndexEnum.ValVlinkIndex.UPLL_IDX_ADMIN_STATUS_VLNK.ordinal()));
+                                                                                       .setIpcUint8Value(
+                                                                                                       UncStructIndexEnum.ValAdminStatus.UPLL_ADMIN_ENABLE
+                                                                                                                       .getValue(),
+                                                                                                       ValVlinkStruct,
+                                                                                                       UncStructIndexEnum.ValVlinkIndex.UPLL_IDX_ADMIN_STATUS_VLNK
+                                                                                                                       .ordinal()));
                                } else {
                                        ValVlinkStruct
                                                        .set(VtnServiceJsonConsts.ADMIN_STATUS,
                                                                        IpcDataUnitWrapper
-                                                                                       .setIpcUint8Value(UncStructIndexEnum.ValAdminStatus.UPLL_ADMIN_DISABLE.getValue(),
-                                                                                                       ValVlinkStruct,UncStructIndexEnum.ValVlinkIndex.UPLL_IDX_ADMIN_STATUS_VLNK.ordinal()));
+                                                                                       .setIpcUint8Value(
+                                                                                                       UncStructIndexEnum.ValAdminStatus.UPLL_ADMIN_DISABLE
+                                                                                                                       .getValue(),
+                                                                                                       ValVlinkStruct,
+                                                                                                       UncStructIndexEnum.ValVlinkIndex.UPLL_IDX_ADMIN_STATUS_VLNK
+                                                                                                                       .ordinal()));
                                }
                                LOG.debug("adminstatus:"
                                                + vLink.get(VtnServiceJsonConsts.ADMINSTATUS)
@@ -1236,7 +1382,8 @@ public class IpcStructFactory {
                                                .set(VtnServiceJsonConsts.VNODE1NAME,
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8ArrayValue(
-                                                                                               vLink.get(VtnServiceJsonConsts.VNODE1NAME)
+                                                                                               vLink.get(
+                                                                                                               VtnServiceJsonConsts.VNODE1NAME)
                                                                                                                .getAsString(),
                                                                                                ValVlinkStruct,
                                                                                                UncStructIndexEnum.ValVlinkIndex.UPLL_IDX_VNODE1_NAME_VLNK
@@ -1262,7 +1409,8 @@ public class IpcStructFactory {
                                                .set(VtnServiceIpcConsts.VNODE1IFNAME,
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8ArrayValue(
-                                                                                               vLink.get(VtnServiceJsonConsts.IF1NAME)
+                                                                                               vLink.get(
+                                                                                                               VtnServiceJsonConsts.IF1NAME)
                                                                                                                .getAsString(),
                                                                                                ValVlinkStruct,
                                                                                                UncStructIndexEnum.ValVlinkIndex.UPLL_IDX_VNODE1_IF_NAME_VLNK
@@ -1288,7 +1436,8 @@ public class IpcStructFactory {
                                                .set(VtnServiceJsonConsts.VNODE2NAME,
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8ArrayValue(
-                                                                                               vLink.get(VtnServiceJsonConsts.VNODE2NAME)
+                                                                                               vLink.get(
+                                                                                                               VtnServiceJsonConsts.VNODE2NAME)
                                                                                                                .getAsString(),
                                                                                                ValVlinkStruct,
                                                                                                UncStructIndexEnum.ValVlinkIndex.UPLL_IDX_VNODE2_NAME_VLNK
@@ -1314,7 +1463,8 @@ public class IpcStructFactory {
                                                .set(VtnServiceIpcConsts.VNODE2IFNAME,
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8ArrayValue(
-                                                                                               vLink.get(VtnServiceJsonConsts.IF2NAME)
+                                                                                               vLink.get(
+                                                                                                               VtnServiceJsonConsts.IF2NAME)
                                                                                                                .getAsString(),
                                                                                                ValVlinkStruct,
                                                                                                UncStructIndexEnum.ValVlinkIndex.UPLL_IDX_VNODE2_IF_NAME_VLNK
@@ -1328,8 +1478,9 @@ public class IpcStructFactory {
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_INVALID
                                                                                                .ordinal()));
                        }
-                       if (vLink.has(VtnServiceJsonConsts.BOUNDARYMAP)){
-                                       JsonObject boundaryMap = vLink.getAsJsonObject(VtnServiceJsonConsts.BOUNDARYMAP);
+                       if (vLink.has(VtnServiceJsonConsts.BOUNDARYMAP)) {
+                               final JsonObject boundaryMap = vLink
+                                               .getAsJsonObject(VtnServiceJsonConsts.BOUNDARYMAP);
                                if (boundaryMap.has(VtnServiceJsonConsts.BOUNDARYID)) {
                                        ValVlinkStruct
                                                        .set(VtnServiceIpcConsts.VALID,
@@ -1366,9 +1517,16 @@ public class IpcStructFactory {
                                                                        IpcDataUnitWrapper
                                                                                        .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                        .ordinal()));
-                                       ValVlinkStruct.set(VtnServiceJsonConsts.VLANID,
-                                                       IpcDataUnitWrapper.setIpcUint16Value(boundaryMap.get(VtnServiceJsonConsts.VLANID).getAsString(),
-                                                                       ValVlinkStruct, UncStructIndexEnum.ValVlinkIndex.UPLL_IDX_VLAN_ID_VLNK.ordinal()));
+                                       ValVlinkStruct
+                                                       .set(VtnServiceJsonConsts.VLANID,
+                                                                       IpcDataUnitWrapper
+                                                                                       .setIpcUint16Value(
+                                                                                                       boundaryMap
+                                                                                                                       .get(VtnServiceJsonConsts.VLANID)
+                                                                                                                       .getAsString(),
+                                                                                                       ValVlinkStruct,
+                                                                                                       UncStructIndexEnum.ValVlinkIndex.UPLL_IDX_VLAN_ID_VLNK
+                                                                                                                       .ordinal()));
                                } else if (boundaryMap.has(VtnServiceJsonConsts.NO_VLAN_ID)) {
                                        LOG.debug("Valid NO VLAN ID Case");
                                        ValVlinkStruct
@@ -1381,8 +1539,11 @@ public class IpcStructFactory {
                                        ValVlinkStruct
                                                        .set(VtnServiceJsonConsts.VLANID,
                                                                        IpcDataUnitWrapper
-                                                                                       .setIpcUint16HexaValue(VtnServiceIpcConsts.VLAN_ID_DEFAULT_VALUE,
-                                                                                                       ValVlinkStruct, UncStructIndexEnum.ValVlinkIndex.UPLL_IDX_VLAN_ID_VLNK.ordinal()));
+                                                                                       .setIpcUint16HexaValue(
+                                                                                                       VtnServiceIpcConsts.VLAN_ID_DEFAULT_VALUE,
+                                                                                                       ValVlinkStruct,
+                                                                                                       UncStructIndexEnum.ValVlinkIndex.UPLL_IDX_VLAN_ID_VLNK
+                                                                                                                       .ordinal()));
                                } else {
                                        LOG.debug("InValid VLAN ID Case");
                                        ValVlinkStruct
@@ -1444,7 +1605,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the key vtep struct
         */
-       public IpcStruct getKeyVtepStruct(final JsonObject requestBody,
+       public final IpcStruct getKeyVtepStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                LOG.trace("Start getKeyVtepStruct");
                final IpcStruct KeyVtepStruct = IpcDataUnitWrapper
@@ -1485,7 +1646,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the Val VTEP struct
         */
-       public IpcStruct getValVtepStruct(final JsonObject requestBody,
+       public final IpcStruct getValVtepStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                /*
                 * ipc_struct val_vtep { UINT8 valid[23]; UINT8 cs_row_status; UINT8
@@ -1496,7 +1657,8 @@ public class IpcStructFactory {
                final IpcStruct ValVtepStruct = IpcDataUnitWrapper
                                .setIpcStructValue(UncStructEnum.ValVtep.getValue());
                if (requestBody != null && requestBody.has(VtnServiceJsonConsts.VTEP)) {
-                       JsonObject vtep = requestBody.getAsJsonObject(VtnServiceJsonConsts.VTEP);
+                       final JsonObject vtep = requestBody
+                                       .getAsJsonObject(VtnServiceJsonConsts.VTEP);
                        if (vtep.has(VtnServiceJsonConsts.DESCRIPTION)) {
                                ValVtepStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -1509,7 +1671,8 @@ public class IpcStructFactory {
                                                .set(VtnServiceJsonConsts.DESCRIPTION,
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8ArrayValue(
-                                                                                               vtep.get(VtnServiceJsonConsts.DESCRIPTION)
+                                                                                               vtep.get(
+                                                                                                               VtnServiceJsonConsts.DESCRIPTION)
                                                                                                                .getAsString(),
                                                                                                ValVtepStruct,
                                                                                                UncStructIndexEnum.ValVtepVndex.UPLL_IDX_DESC_VTEP
@@ -1535,7 +1698,8 @@ public class IpcStructFactory {
                                                .set(VtnServiceJsonConsts.CONTROLLERID,
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8ArrayValue(
-                                                                                               vtep.get(VtnServiceJsonConsts.CONTROLLERID)
+                                                                                               vtep.get(
+                                                                                                               VtnServiceJsonConsts.CONTROLLERID)
                                                                                                                .getAsString(),
                                                                                                ValVtepStruct,
                                                                                                UncStructIndexEnum.ValVtepVndex.UPLL_IDX_CONTROLLER_ID_VTEP
@@ -1561,7 +1725,8 @@ public class IpcStructFactory {
                                                .set(VtnServiceJsonConsts.DOMAINID,
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8ArrayValue(
-                                                                                               vtep.get(VtnServiceJsonConsts.DOMAINID)
+                                                                                               vtep.get(
+                                                                                                               VtnServiceJsonConsts.DOMAINID)
                                                                                                                .getAsString(),
                                                                                                ValVtepStruct,
                                                                                                UncStructIndexEnum.ValVtepVndex.UPLL_IDX_DOMAIN_ID_VTEP
@@ -1592,7 +1757,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the key vtep if struct
         */
-       public IpcStruct getKeyVtepIfStruct(final JsonObject requestBody,
+       public final IpcStruct getKeyVtepIfStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                LOG.trace("Start getKeyVtepIfStruct");
                final IpcStruct KeyVtepIfStruct = IpcDataUnitWrapper
@@ -1638,7 +1803,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the Val VTEP Interface struct
         */
-       public IpcStruct getValVtepIfStruct(final JsonObject requestBody,
+       public final IpcStruct getValVtepIfStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                LOG.trace("Start getValVtepIfStruct");
                final IpcStruct ValVtepIfStruct = IpcDataUnitWrapper
@@ -1686,14 +1851,22 @@ public class IpcStructFactory {
                                        ValVtepIfStruct
                                                        .set(VtnServiceJsonConsts.ADMIN_STATUS,
                                                                        IpcDataUnitWrapper
-                                                                                       .setIpcUint8Value(UncStructIndexEnum.ValAdminStatus.UPLL_ADMIN_ENABLE.getValue(),
-                                                                                                       ValVtepIfStruct,UncStructIndexEnum.ValVtepIfIndex.UPLL_IDX_ADMIN_ST_VTEPI.ordinal()));
+                                                                                       .setIpcUint8Value(
+                                                                                                       UncStructIndexEnum.ValAdminStatus.UPLL_ADMIN_ENABLE
+                                                                                                                       .getValue(),
+                                                                                                       ValVtepIfStruct,
+                                                                                                       UncStructIndexEnum.ValVtepIfIndex.UPLL_IDX_ADMIN_ST_VTEPI
+                                                                                                                       .ordinal()));
                                } else {
                                        ValVtepIfStruct
                                                        .set(VtnServiceJsonConsts.ADMIN_STATUS,
                                                                        IpcDataUnitWrapper
-                                                                                       .setIpcUint8Value(UncStructIndexEnum.ValAdminStatus.UPLL_ADMIN_DISABLE.getValue(),
-                                                                                                       ValVtepIfStruct,UncStructIndexEnum.ValVtepIfIndex.UPLL_IDX_ADMIN_ST_VTEPI.ordinal()));
+                                                                                       .setIpcUint8Value(
+                                                                                                       UncStructIndexEnum.ValAdminStatus.UPLL_ADMIN_DISABLE
+                                                                                                                       .getValue(),
+                                                                                                       ValVtepIfStruct,
+                                                                                                       UncStructIndexEnum.ValVtepIfIndex.UPLL_IDX_ADMIN_ST_VTEPI
+                                                                                                                       .ordinal()));
                                }
                                LOG.debug("adminstatus:"
                                                + requestBody
@@ -1806,7 +1979,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the key vbr if flow filter entry struct
         */
-       public IpcStruct getKeyVbrIfFlowFilterEntryStruct(
+       public final IpcStruct getKeyVbrIfFlowFilterEntryStruct(
                        final JsonObject requestBody, final List<String> uriParameters) {
                LOG.trace("Start getKeyVbrIfFlowFilterEntryStruct");
                final IpcStruct KeyVbrIfFlowFilterEntryStruct = IpcDataUnitWrapper
@@ -1852,8 +2025,8 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the key vrt if flow filter struct
         */
-       public IpcStruct getKeyVrtIfFlowFilterStruct(final JsonObject requestBody,
-                       final List<String> uriParameters) {
+       public final IpcStruct getKeyVrtIfFlowFilterStruct(
+                       final JsonObject requestBody, final List<String> uriParameters) {
                LOG.trace("Start getKeyVrtIfFlowFilterStruct");
                final IpcStruct KeyVrtIfFlowFilterStruct = IpcDataUnitWrapper
                                .setIpcStructValue(UncStructEnum.KeyVrtIfFlowFilter.getValue());
@@ -1922,7 +2095,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the key vrt if flow filter entry struct
         */
-       public IpcStruct getKeyVrtIfFlowFilterEntryStruct(
+       public final IpcStruct getKeyVrtIfFlowFilterEntryStruct(
                        final JsonObject requestBody, final List<String> uriParameters) {
                LOG.trace("Start getKeyVrtIfFlowFilterEntryStruct");
                final IpcStruct KeyVrtIfFlowFilterEntryStruct = IpcDataUnitWrapper
@@ -1969,8 +2142,8 @@ public class IpcStructFactory {
         * @return the key vbr IfFlow Filter
         */
 
-       public IpcStruct getKeyVbrIfFlowFilterStruct(final JsonObject requestBody,
-                       final List<String> uriParameters) {
+       public final IpcStruct getKeyVbrIfFlowFilterStruct(
+                       final JsonObject requestBody, final List<String> uriParameters) {
                LOG.trace("Start getKeyVbrIfFlowFilterStruct");
                final IpcStruct keyVbrIfFlowFilterStruct = IpcDataUnitWrapper
                                .setIpcStructValue(UncStructEnum.KeyVbrIfFlowFilter.getValue());
@@ -2041,7 +2214,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the key vbr struct
         */
-       public IpcStruct getKeyVbrStruct(final JsonObject requestBody,
+       public final IpcStruct getKeyVbrStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                // Lower level structure
                /*
@@ -2088,7 +2261,7 @@ public class IpcStructFactory {
         *            the request body
         * @return the val vbr struct
         */
-       public IpcStruct getValVbrStruct(final JsonObject requestBody,
+       public final IpcStruct getValVbrStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                /*
                 * ipc_struct val_vbr { UINT8 valid[5]; UINT8 cs_row_status; UINT8
@@ -2100,7 +2273,8 @@ public class IpcStructFactory {
                                .setIpcStructValue(UncStructEnum.ValVbr.getValue());
                if (requestBody != null
                                && requestBody.has(VtnServiceJsonConsts.VBRIDGE)) {
-                       JsonObject vBridge = requestBody.getAsJsonObject(VtnServiceJsonConsts.VBRIDGE);
+                       final JsonObject vBridge = requestBody
+                                       .getAsJsonObject(VtnServiceJsonConsts.VBRIDGE);
                        if (vBridge.has(VtnServiceJsonConsts.CONTROLLERID)) {
                                valVbrStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -2113,7 +2287,8 @@ public class IpcStructFactory {
                                                .set(VtnServiceJsonConsts.CONTROLLERID,
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8ArrayValue(
-                                                                                               vBridge.get(VtnServiceJsonConsts.CONTROLLERID)
+                                                                                               vBridge.get(
+                                                                                                               VtnServiceJsonConsts.CONTROLLERID)
                                                                                                                .getAsString(),
                                                                                                valVbrStruct,
                                                                                                UncStructIndexEnum.ValVbrIndex.UPLL_IDX_CONTROLLER_ID_VBR
@@ -2139,7 +2314,8 @@ public class IpcStructFactory {
                                                .set(VtnServiceJsonConsts.DOMAINID,
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8ArrayValue(
-                                                                                               vBridge.get(VtnServiceJsonConsts.DOMAINID)
+                                                                                               vBridge.get(
+                                                                                                               VtnServiceJsonConsts.DOMAINID)
                                                                                                                .getAsString(),
                                                                                                valVbrStruct,
                                                                                                UncStructIndexEnum.ValVbrIndex.UPLL_IDX_DOMAIN_ID_VBR
@@ -2165,7 +2341,8 @@ public class IpcStructFactory {
                                                .set(VtnServiceJsonConsts.VBRDESCRIPTION,
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8ArrayValue(
-                                                                                               vBridge.get(VtnServiceJsonConsts.DESCRIPTION)
+                                                                                               vBridge.get(
+                                                                                                               VtnServiceJsonConsts.DESCRIPTION)
                                                                                                                .getAsString(),
                                                                                                valVbrStruct,
                                                                                                UncStructIndexEnum.ValVbrIndex.UPLL_IDX_DESC_VBR
@@ -2195,7 +2372,8 @@ public class IpcStructFactory {
                                                                                        .ordinal()));
                } else if (requestBody != null
                                && requestBody.has(VtnServiceJsonConsts.IPADDRESS)) {
-                       JsonObject ipAddress = requestBody.getAsJsonObject(VtnServiceJsonConsts.IPADDRESS);
+                       final JsonObject ipAddress = requestBody
+                                       .getAsJsonObject(VtnServiceJsonConsts.IPADDRESS);
                        valVbrStruct
                                        .set(VtnServiceIpcConsts.VALID,
                                                        UncStructIndexEnum.ValVbrIndex.UPLL_IDX_CONTROLLER_ID_VBR
@@ -2225,10 +2403,16 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               valVbrStruct.set(VtnServiceIpcConsts.HOST_ADDR,
-                                               IpcDataUnitWrapper
-                                                               .setIpcInet4AddressValue(ipAddress.get(VtnServiceJsonConsts.IPADDR).getAsString(),
-                                                                               valVbrStruct, UncStructIndexEnum.ValVbrIndex.UPLL_IDX_HOST_ADDR_VBR.ordinal()));
+                               valVbrStruct
+                                               .set(VtnServiceIpcConsts.HOST_ADDR,
+                                                               IpcDataUnitWrapper
+                                                                               .setIpcInet4AddressValue(
+                                                                                               ipAddress
+                                                                                                               .get(VtnServiceJsonConsts.IPADDR)
+                                                                                                               .getAsString(),
+                                                                                               valVbrStruct,
+                                                                                               UncStructIndexEnum.ValVbrIndex.UPLL_IDX_HOST_ADDR_VBR
+                                                                                                               .ordinal()));
                        } else {
                                valVbrStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -2246,10 +2430,16 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               valVbrStruct.set(VtnServiceIpcConsts.HOST_ADDR_PREFIXLEN,
-                                               IpcDataUnitWrapper
-                                                               .setIpcUint8Value(ipAddress.get(VtnServiceJsonConsts.PREFIX).getAsString(),
-                                                                               valVbrStruct, UncStructIndexEnum.ValVbrIndex.UPLL_IDX_HOST_ADDR_PREFIXLEN_VBR.ordinal()));
+                               valVbrStruct
+                                               .set(VtnServiceIpcConsts.HOST_ADDR_PREFIXLEN,
+                                                               IpcDataUnitWrapper
+                                                                               .setIpcUint8Value(
+                                                                                               ipAddress
+                                                                                                               .get(VtnServiceJsonConsts.PREFIX)
+                                                                                                               .getAsString(),
+                                                                                               valVbrStruct,
+                                                                                               UncStructIndexEnum.ValVbrIndex.UPLL_IDX_HOST_ADDR_PREFIXLEN_VBR
+                                                                                                               .ordinal()));
                        } else {
                                valVbrStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -2312,7 +2502,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the key vlan map struct
         */
-       public IpcStruct getKeyVlanMapStruct(final JsonObject requestBody,
+       public final IpcStruct getKeyVlanMapStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                /*
                 * 
@@ -2355,7 +2545,7 @@ public class IpcStructFactory {
                        }
                } else if (uriParameters != null
                                && uriParameters.size() == UncIndexEnum.THREE.ordinal()) {
-                       String VlanMapId[] = uriParameters.get(2).split(
+                       final String VlanMapId[] = uriParameters.get(2).split(
                                        VtnServiceJsonConsts.VLANMAPIDSEPERATOR, 2);
                        if (VlanMapId.length == UncIndexEnum.TWO.ordinal()) {
                                keyVlanMapStruct
@@ -2386,7 +2576,7 @@ public class IpcStructFactory {
         *            the request body
         * @return the val vlan map struct
         */
-       public IpcStruct getValVlanMapStruct(final JsonObject requestBody,
+       public final IpcStruct getValVlanMapStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                final IpcStruct valVlanMapStruct = new IpcStruct(
                                UncStructEnum.ValVlanMap.getValue());
@@ -2406,12 +2596,18 @@ public class IpcStructFactory {
                                                        IpcDataUnitWrapper
                                                                        .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                        .ordinal()));
-                       valVlanMapStruct.set(
-                                       VtnServiceJsonConsts.VLANID,
-                                       IpcDataUnitWrapper.setIpcUint16Value(requestBody
-                                                       .getAsJsonObject(VtnServiceJsonConsts.VLANMAP)
-                                                       .get(VtnServiceJsonConsts.VLANID).getAsString(),
-                                                       valVlanMapStruct, UncStructIndexEnum.ValVlanMapIndex.UPLL_IDX_VLAN_ID_VM.ordinal()));
+                       valVlanMapStruct
+                                       .set(VtnServiceJsonConsts.VLANID,
+                                                       IpcDataUnitWrapper
+                                                                       .setIpcUint16Value(
+                                                                                       requestBody
+                                                                                                       .getAsJsonObject(
+                                                                                                                       VtnServiceJsonConsts.VLANMAP)
+                                                                                                       .get(VtnServiceJsonConsts.VLANID)
+                                                                                                       .getAsString(),
+                                                                                       valVlanMapStruct,
+                                                                                       UncStructIndexEnum.ValVlanMapIndex.UPLL_IDX_VLAN_ID_VM
+                                                                                                       .ordinal()));
                } else if (requestBody != null
                                && requestBody.has(VtnServiceJsonConsts.VLANMAP)
                                && requestBody.getAsJsonObject(VtnServiceJsonConsts.VLANMAP)
@@ -2426,8 +2622,11 @@ public class IpcStructFactory {
                        valVlanMapStruct
                                        .set(VtnServiceJsonConsts.VLANID,
                                                        IpcDataUnitWrapper
-                                                                       .setIpcUint16HexaValue(VtnServiceIpcConsts.VLAN_ID_DEFAULT_VALUE,
-                                                                                       valVlanMapStruct, UncStructIndexEnum.ValVlanMapIndex.UPLL_IDX_VLAN_ID_VM.ordinal()));
+                                                                       .setIpcUint16HexaValue(
+                                                                                       VtnServiceIpcConsts.VLAN_ID_DEFAULT_VALUE,
+                                                                                       valVlanMapStruct,
+                                                                                       UncStructIndexEnum.ValVlanMapIndex.UPLL_IDX_VLAN_ID_VM
+                                                                                                       .ordinal()));
                } else {
                        valVlanMapStruct
                                        .set(VtnServiceIpcConsts.VALID,
@@ -2451,8 +2650,8 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the key vtn flow filter struct
         */
-       public IpcStruct getKeyVtnFlowFilterStruct(final JsonObject requestBody,
-                       final List<String> uriParameters) {
+       public final IpcStruct getKeyVtnFlowFilterStruct(
+                       final JsonObject requestBody, final List<String> uriParameters) {
                // Lower level structure
                /*
                 * ipc_struct KeyVtnFlowFilter { KeyVtn vtn_key; UINT8 input_direction;
@@ -2528,7 +2727,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the key vtn flow filter entry struct
         */
-       public IpcStruct getKeyVtnFlowFilterEntryStruct(
+       public final IpcStruct getKeyVtnFlowFilterEntryStruct(
                        final JsonObject requestBody, final List<String> uriParameters) {
                // Lower level structure
                /*
@@ -2582,7 +2781,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the key vunknown struct
         */
-       public IpcStruct getKeyVunknownStruct(final JsonObject requestBody,
+       public final IpcStruct getKeyVunknownStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                /*
                 * ipc_struct KeyVunknown { KeyVtn vtn_key; UINT8 vunknown_name[32]; };
@@ -2604,13 +2803,12 @@ public class IpcStructFactory {
                                && requestBody.has(VtnServiceJsonConsts.VBYPASS)
                                && ((JsonObject) requestBody.get(VtnServiceJsonConsts.VBYPASS))
                                                .has(VtnServiceJsonConsts.VBYPASS_NAME)) {
-                       keyVunknownStruct
-                                       .set(VtnServiceIpcConsts.VUNKNOWNNAME,
-                                                       IpcDataUnitWrapper
-                                                                       .setIpcUint8ArrayValue(((JsonObject) requestBody
-                                                                                       .get(VtnServiceJsonConsts.VBYPASS))
-                                                                                       .get(VtnServiceJsonConsts.VBYPASS_NAME)
-                                                                                       .getAsString()));
+                       keyVunknownStruct.set(VtnServiceIpcConsts.VUNKNOWNNAME,
+                                       IpcDataUnitWrapper
+                                                       .setIpcUint8ArrayValue(((JsonObject) requestBody
+                                                                       .get(VtnServiceJsonConsts.VBYPASS)).get(
+                                                                       VtnServiceJsonConsts.VBYPASS_NAME)
+                                                                       .getAsString()));
                } else if (uriParameters != null
                                && uriParameters.size() == UncIndexEnum.TWO.ordinal()) {
                        keyVunknownStruct.set(VtnServiceIpcConsts.VUNKNOWNNAME,
@@ -2634,7 +2832,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the key vunk if struct
         */
-       public IpcStruct getKeyVunkIfStruct(final JsonObject requestBody,
+       public final IpcStruct getKeyVunkIfStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                /*
                 * ipc_struct key_vunk_if { key_vunknown vunk_key; UINT8 if_name[32]; };
@@ -2683,7 +2881,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the key vrt if struct
         */
-       public IpcStruct getKeyVrtIfStruct(final JsonObject requestBody,
+       public final IpcStruct getKeyVrtIfStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                // Lower level structure
                /*
@@ -2730,7 +2928,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the key vtunnel struct
         */
-       public IpcStruct getKeyVtunnelStruct(final JsonObject requestBody,
+       public final IpcStruct getKeyVtunnelStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
 
                // Lower level structure
@@ -2780,8 +2978,8 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the key static ip route struct
         */
-       public IpcStruct getKeyStaticIpRouteStruct(final JsonObject requestBody,
-                       final List<String> uriParameters) {
+       public final IpcStruct getKeyStaticIpRouteStruct(
+                       final JsonObject requestBody, final List<String> uriParameters) {
                // Lower level structure
                /*
                 * ipc_struct key_static_ip_route { key_vrt vrt_key; IPV4 dst_addr;
@@ -2799,7 +2997,7 @@ public class IpcStructFactory {
                keyStaticIpRouteStruct.set(VtnServiceIpcConsts.VRTKEY, keyVtnVrtStruct);
                if (requestBody != null
                                && requestBody.has(VtnServiceJsonConsts.STATIC_IPROUTE)) {
-                       JsonObject staticIpRoute = requestBody
+                       final JsonObject staticIpRoute = requestBody
                                        .getAsJsonObject(VtnServiceJsonConsts.STATIC_IPROUTE);
                        if (staticIpRoute.has(VtnServiceJsonConsts.IPADDR)
                                        && staticIpRoute.has(VtnServiceJsonConsts.PREFIX)
@@ -2818,8 +3016,8 @@ public class IpcStructFactory {
                                                                .setIpcInet4AddressValue(staticIpRoute.get(
                                                                                VtnServiceJsonConsts.NEXTHOPADDR)
                                                                                .getAsString()));
-                               
-                       } else if (staticIpRoute.has(VtnServiceJsonConsts.NEXTHOPADDR)){
+
+                       } else if (staticIpRoute.has(VtnServiceJsonConsts.NEXTHOPADDR)) {
                                keyStaticIpRouteStruct.set(VtnServiceIpcConsts.NEXT_HOP_ADDR,
                                                IpcDataUnitWrapper
                                                                .setIpcInet4AddressValue(staticIpRoute.get(
@@ -2855,7 +3053,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the val vtn flow filter entry struct
         */
-       public IpcStruct getValVtnFlowFilterEntryStruct(
+       public final IpcStruct getValVtnFlowFilterEntryStruct(
                        final JsonObject requestBody, final List<String> uriParameters) {
                // Lower level structure
                /*
@@ -2873,8 +3071,8 @@ public class IpcStructFactory {
                                UncStructEnum.ValVtnFlowFilterEntry.getValue());
                if (requestBody != null
                                && requestBody.has(VtnServiceJsonConsts.FLOWFILTERENTRY)) {
-                       JsonObject flowFilterEntry = requestBody.getAsJsonObject(
-                                       VtnServiceJsonConsts.FLOWFILTERENTRY);
+                       final JsonObject flowFilterEntry = requestBody
+                                       .getAsJsonObject(VtnServiceJsonConsts.FLOWFILTERENTRY);
                        if (flowFilterEntry.has(VtnServiceJsonConsts.FLNAME)) {
                                valVtnFlowFilterEntryStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -2887,7 +3085,8 @@ public class IpcStructFactory {
                                                .set(VtnServiceJsonConsts.FLOWLISTNAME,
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8ArrayValue(
-                                                                                               flowFilterEntry.get(VtnServiceJsonConsts.FLNAME)
+                                                                                               flowFilterEntry
+                                                                                                               .get(VtnServiceJsonConsts.FLNAME)
                                                                                                                .getAsString(),
                                                                                                valVtnFlowFilterEntryStruct,
                                                                                                UncStructIndexEnum.ValVtnFlowfilterEntryIndex.UPLL_IDX_FLOWLIST_NAME_VFFE
@@ -2909,21 +3108,24 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               if (flowFilterEntry.get(VtnServiceJsonConsts.ACTIONTYPE).getAsString()
+                               if (flowFilterEntry.get(VtnServiceJsonConsts.ACTIONTYPE)
+                                               .getAsString()
                                                .equalsIgnoreCase(VtnServiceJsonConsts.PASS)) {
                                        valVtnFlowFilterEntryStruct
                                                        .set(VtnServiceJsonConsts.ACTION,
                                                                        IpcDataUnitWrapper
                                                                                        .setIpcUint8Value(UncStructIndexEnum.FlowfilterAction.UPLL_FLOWFILTER_ACT_PASS
                                                                                                        .ordinal()));
-                               } else if (flowFilterEntry.get(VtnServiceJsonConsts.ACTIONTYPE).getAsString()
+                               } else if (flowFilterEntry.get(VtnServiceJsonConsts.ACTIONTYPE)
+                                               .getAsString()
                                                .equalsIgnoreCase(VtnServiceJsonConsts.DROP)) {
                                        valVtnFlowFilterEntryStruct
                                                        .set(VtnServiceJsonConsts.ACTION,
                                                                        IpcDataUnitWrapper
                                                                                        .setIpcUint8Value(UncStructIndexEnum.FlowfilterAction.UPLL_FLOWFILTER_ACT_DROP
                                                                                                        .ordinal()));
-                               } else if (flowFilterEntry.get(VtnServiceJsonConsts.ACTIONTYPE).getAsString()
+                               } else if (flowFilterEntry.get(VtnServiceJsonConsts.ACTIONTYPE)
+                                               .getAsString()
                                                .equalsIgnoreCase(VtnServiceJsonConsts.REDIRECT)) {
                                        valVtnFlowFilterEntryStruct
                                                        .set(VtnServiceJsonConsts.ACTION,
@@ -2952,7 +3154,8 @@ public class IpcStructFactory {
                                                .set(VtnServiceIpcConsts.NWMNAME,
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8ArrayValue(
-                                                                                               flowFilterEntry.get(VtnServiceJsonConsts.NMGNAME)
+                                                                                               flowFilterEntry
+                                                                                                               .get(VtnServiceJsonConsts.NMGNAME)
                                                                                                                .getAsString(),
                                                                                                valVtnFlowFilterEntryStruct,
                                                                                                UncStructIndexEnum.ValVtnFlowfilterEntryIndex.UPLL_IDX_NWN_NAME_VFFE
@@ -2974,10 +3177,16 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               valVtnFlowFilterEntryStruct.set(
-                                               VtnServiceJsonConsts.DSCP,
-                                               IpcDataUnitWrapper.setIpcUint8Value(flowFilterEntry.get(VtnServiceJsonConsts.DSCP).getAsString(),
-                                                               valVtnFlowFilterEntryStruct,UncStructIndexEnum.ValVtnFlowfilterEntryIndex.UPLL_IDX_DSCP_VFFE.ordinal()));
+                               valVtnFlowFilterEntryStruct
+                                               .set(VtnServiceJsonConsts.DSCP,
+                                                               IpcDataUnitWrapper
+                                                                               .setIpcUint8Value(
+                                                                                               flowFilterEntry
+                                                                                                               .get(VtnServiceJsonConsts.DSCP)
+                                                                                                               .getAsString(),
+                                                                                               valVtnFlowFilterEntryStruct,
+                                                                                               UncStructIndexEnum.ValVtnFlowfilterEntryIndex.UPLL_IDX_DSCP_VFFE
+                                                                                                               .ordinal()));
                        } else {
                                valVtnFlowFilterEntryStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -2995,10 +3204,16 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               valVtnFlowFilterEntryStruct.set(
-                                               VtnServiceJsonConsts.PRIORITY,
-                                               IpcDataUnitWrapper.setIpcUint8Value(flowFilterEntry.get(VtnServiceJsonConsts.PRIORITY).getAsString(),
-                                                               valVtnFlowFilterEntryStruct,UncStructIndexEnum.ValVtnFlowfilterEntryIndex.UPLL_IDX_PRIORITY_VFFE.ordinal()));
+                               valVtnFlowFilterEntryStruct
+                                               .set(VtnServiceJsonConsts.PRIORITY,
+                                                               IpcDataUnitWrapper
+                                                                               .setIpcUint8Value(
+                                                                                               flowFilterEntry
+                                                                                                               .get(VtnServiceJsonConsts.PRIORITY)
+                                                                                                               .getAsString(),
+                                                                                               valVtnFlowFilterEntryStruct,
+                                                                                               UncStructIndexEnum.ValVtnFlowfilterEntryIndex.UPLL_IDX_PRIORITY_VFFE
+                                                                                                               .ordinal()));
                        } else {
                                valVtnFlowFilterEntryStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -3025,7 +3240,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the val vunknown struct
         */
-       public IpcStruct getValVunknownStruct(final JsonObject requestBody,
+       public final IpcStruct getValVunknownStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                // Lower level structure
                /*
@@ -3038,7 +3253,8 @@ public class IpcStructFactory {
                                UncStructEnum.ValVunknown.getValue());
                if (requestBody != null
                                && requestBody.has(VtnServiceJsonConsts.VBYPASS)) {
-                       JsonObject vByPass = requestBody.getAsJsonObject(VtnServiceJsonConsts.VBYPASS);
+                       final JsonObject vByPass = requestBody
+                                       .getAsJsonObject(VtnServiceJsonConsts.VBYPASS);
                        if (vByPass.has(VtnServiceJsonConsts.DESCRIPTION)) {
                                valValVunknownStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -3051,7 +3267,8 @@ public class IpcStructFactory {
                                                .set(VtnServiceJsonConsts.DESCRIPTION,
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8ArrayValue(
-                                                                                               vByPass.get(VtnServiceJsonConsts.DESCRIPTION)
+                                                                                               vByPass.get(
+                                                                                                               VtnServiceJsonConsts.DESCRIPTION)
                                                                                                                .getAsString(),
                                                                                                valValVunknownStruct,
                                                                                                UncStructIndexEnum.ValVunknownIndex.UPLL_IDX_DESC_VUN
@@ -3111,7 +3328,8 @@ public class IpcStructFactory {
                                                .set(VtnServiceJsonConsts.DOMAINID,
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8ArrayValue(
-                                                                                               vByPass.get(VtnServiceJsonConsts.DOMAINID)
+                                                                                               vByPass.get(
+                                                                                                               VtnServiceJsonConsts.DOMAINID)
                                                                                                                .getAsString(),
                                                                                                valValVunknownStruct,
                                                                                                UncStructIndexEnum.ValVunknownIndex.UPLL_IDX_DOMAIN_ID_VUN
@@ -3137,7 +3355,8 @@ public class IpcStructFactory {
                                                .set(VtnServiceJsonConsts.CONTROLLERID,
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8ArrayValue(
-                                                                                               vByPass.get(VtnServiceJsonConsts.CONTROLLERID)
+                                                                                               vByPass.get(
+                                                                                                               VtnServiceJsonConsts.CONTROLLERID)
                                                                                                                .getAsString(),
                                                                                                valValVunknownStruct,
                                                                                                UncStructIndexEnum.ValVunknownIndex.UPLL_IDX_CONTROLLER_ID_VUN
@@ -3168,7 +3387,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the val vunk if struct
         */
-       public IpcStruct getValVunkIfStruct(final JsonObject requestBody,
+       public final IpcStruct getValVunkIfStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                // Lower level structure
                /*
@@ -3183,7 +3402,8 @@ public class IpcStructFactory {
                                .setIpcStructValue(UncStructEnum.ValVunkIf.getValue());
                if (requestBody != null
                                && requestBody.has(VtnServiceJsonConsts.INTERFACE)) {
-                       JsonObject vunkIf = requestBody.getAsJsonObject(VtnServiceJsonConsts.INTERFACE);
+                       final JsonObject vunkIf = requestBody
+                                       .getAsJsonObject(VtnServiceJsonConsts.INTERFACE);
                        if (vunkIf.has(VtnServiceJsonConsts.DESCRIPTION)) {
                                valVunkIfStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -3196,7 +3416,8 @@ public class IpcStructFactory {
                                                .set(VtnServiceJsonConsts.DESCRIPTION,
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8ArrayValue(
-                                                                                               vunkIf.get(VtnServiceJsonConsts.DESCRIPTION)
+                                                                                               vunkIf.get(
+                                                                                                               VtnServiceJsonConsts.DESCRIPTION)
                                                                                                                .getAsString(),
                                                                                                valVunkIfStruct,
                                                                                                UncStructIndexEnum.ValVunkIfIndex.UPLL_IDX_DESC_VUNI
@@ -3223,14 +3444,22 @@ public class IpcStructFactory {
                                        valVunkIfStruct
                                                        .set(VtnServiceJsonConsts.ADMIN_STATUS,
                                                                        IpcDataUnitWrapper
-                                                                                       .setIpcUint8Value(UncStructIndexEnum.ValAdminStatus.UPLL_ADMIN_ENABLE.getValue(),
-                                                                                                       valVunkIfStruct, UncStructIndexEnum.ValVunkIfIndex.UPLL_IDX_ADMIN_ST_VUNI.ordinal()));
+                                                                                       .setIpcUint8Value(
+                                                                                                       UncStructIndexEnum.ValAdminStatus.UPLL_ADMIN_ENABLE
+                                                                                                                       .getValue(),
+                                                                                                       valVunkIfStruct,
+                                                                                                       UncStructIndexEnum.ValVunkIfIndex.UPLL_IDX_ADMIN_ST_VUNI
+                                                                                                                       .ordinal()));
                                } else {
                                        valVunkIfStruct
                                                        .set(VtnServiceJsonConsts.ADMIN_STATUS,
                                                                        IpcDataUnitWrapper
-                                                                                       .setIpcUint8Value(UncStructIndexEnum.ValAdminStatus.UPLL_ADMIN_DISABLE.getValue(),
-                                                                                                       valVunkIfStruct, UncStructIndexEnum.ValVunkIfIndex.UPLL_IDX_ADMIN_ST_VUNI.ordinal()));
+                                                                                       .setIpcUint8Value(
+                                                                                                       UncStructIndexEnum.ValAdminStatus.UPLL_ADMIN_DISABLE
+                                                                                                                       .getValue(),
+                                                                                                       valVunkIfStruct,
+                                                                                                       UncStructIndexEnum.ValVunkIfIndex.UPLL_IDX_ADMIN_ST_VUNI
+                                                                                                                       .ordinal()));
                                }
                                LOG.debug("adminstatus:"
                                                + vunkIf.get(VtnServiceJsonConsts.ADMINSTATUS)
@@ -3261,8 +3490,8 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the struct
         */
-       public IpcStruct getKeyVbrFlowFilterStruct(final JsonObject requestBody,
-                       final List<String> uriParameters) {
+       public final IpcStruct getKeyVbrFlowFilterStruct(
+                       final JsonObject requestBody, final List<String> uriParameters) {
                // Lower level structure
                /*
                 * ipc_struct KeyVbrFlowFilter { keyVbr vbr_key; UINT8 direction; };
@@ -3335,7 +3564,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the struct
         */
-       public IpcStruct getKeyVbrFlowFilterEntryStruct(
+       public final IpcStruct getKeyVbrFlowFilterEntryStruct(
                        final JsonObject requestBody, final List<String> uriParameters) {
                /*
                 * ipc_struct key_vbr_flowfilter_entry { key_vbr_flowfilter
@@ -3385,8 +3614,8 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the valflowfilterEntry struct
         */
-       public IpcStruct getValFlowfilterEntryStruct(final JsonObject requestBody,
-                       final List<String> uriParameters) {
+       public final IpcStruct getValFlowfilterEntryStruct(
+                       final JsonObject requestBody, final List<String> uriParameters) {
                /*
                 * ipc_struct val_flowfilter_entry { UINT8 valid[9]; UINT8
                 * cs_row_status; UINT8 cs_attr[9]; UINT8 flowlist_name[32+1]; UINT8
@@ -3399,8 +3628,8 @@ public class IpcStructFactory {
                                .setIpcStructValue(UncStructEnum.ValFlowfilterEntry.getValue());
                if (requestBody != null
                                && requestBody.has(VtnServiceJsonConsts.FLOWFILTERENTRY)) {
-                       JsonObject flowFilterEntry = requestBody.getAsJsonObject(
-                                       VtnServiceJsonConsts.FLOWFILTERENTRY);
+                       final JsonObject flowFilterEntry = requestBody
+                                       .getAsJsonObject(VtnServiceJsonConsts.FLOWFILTERENTRY);
                        if (flowFilterEntry.has(VtnServiceJsonConsts.FLNAME)) {
                                valFlowfilterEntryStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -3413,7 +3642,8 @@ public class IpcStructFactory {
                                                .set(VtnServiceJsonConsts.FLOWLISTNAME,
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8ArrayValue(
-                                                                                               flowFilterEntry.get(VtnServiceJsonConsts.FLNAME)
+                                                                                               flowFilterEntry
+                                                                                                               .get(VtnServiceJsonConsts.FLNAME)
                                                                                                                .getAsString(),
                                                                                                valFlowfilterEntryStruct,
                                                                                                UncStructIndexEnum.ValFlowfilterEntryIndex.UPLL_IDX_FLOWLIST_NAME_FFE
@@ -3435,14 +3665,16 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               if (flowFilterEntry.get(VtnServiceJsonConsts.ACTIONTYPE).getAsString()
+                               if (flowFilterEntry.get(VtnServiceJsonConsts.ACTIONTYPE)
+                                               .getAsString()
                                                .equalsIgnoreCase(VtnServiceJsonConsts.PASS)) {
                                        valFlowfilterEntryStruct
                                                        .set(VtnServiceIpcConsts.ACTION,
                                                                        IpcDataUnitWrapper
                                                                                        .setIpcUint8Value(UncStructIndexEnum.FlowfilterAction.UPLL_FLOWFILTER_ACT_PASS
                                                                                                        .ordinal()));
-                               } else if (flowFilterEntry.get(VtnServiceJsonConsts.ACTIONTYPE).getAsString()
+                               } else if (flowFilterEntry.get(VtnServiceJsonConsts.ACTIONTYPE)
+                                               .getAsString()
                                                .equalsIgnoreCase(VtnServiceJsonConsts.DROP)) {
                                        valFlowfilterEntryStruct
                                                        .set(VtnServiceIpcConsts.ACTION,
@@ -3469,7 +3701,7 @@ public class IpcStructFactory {
                                                                                                .ordinal()));
                        }
                        if (flowFilterEntry.has(VtnServiceJsonConsts.REDIRECTDST)) {
-                               JsonObject redirectDst = flowFilterEntry
+                               final JsonObject redirectDst = flowFilterEntry
                                                .getAsJsonObject(VtnServiceJsonConsts.REDIRECTDST);
                                if (redirectDst.has(VtnServiceJsonConsts.VNODENAME)) {
                                        valFlowfilterEntryStruct
@@ -3534,10 +3766,15 @@ public class IpcStructFactory {
                                                                                        .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                        .ordinal()));
                                        // valFlowfilterEntryStruct.set(VtnServiceIpcConsts.MODIFYDSTMACADDR,IpcDataUnitWrapper.setIpcUint8ArrayValue(requestBody.getAsJsonObject(VtnServiceJsonConsts.FLOWFILTERENTRY).getAsJsonObject(VtnServiceJsonConsts.REDIRECTDST).get(VtnServiceJsonConsts.MACDSTADDR).getAsString()));
-                                       IpcDataUnitWrapper.setMacAddress(valFlowfilterEntryStruct,
-                                                       VtnServiceIpcConsts.MODIFYDSTMACADDR, redirectDst
-                                                                       .get(VtnServiceJsonConsts.MACDSTADDR).getAsString(),
-                                                                       UncStructIndexEnum.ValFlowfilterEntryIndex.UPLL_IDX_MODIFY_DST_MAC_FFE.ordinal());
+                                       IpcDataUnitWrapper
+                                                       .setMacAddress(
+                                                                       valFlowfilterEntryStruct,
+                                                                       VtnServiceIpcConsts.MODIFYDSTMACADDR,
+                                                                       redirectDst.get(
+                                                                                       VtnServiceJsonConsts.MACDSTADDR)
+                                                                                       .getAsString(),
+                                                                       UncStructIndexEnum.ValFlowfilterEntryIndex.UPLL_IDX_MODIFY_DST_MAC_FFE
+                                                                                       .ordinal());
                                } else {
                                        valFlowfilterEntryStruct
                                                        .set(VtnServiceIpcConsts.VALID,
@@ -3555,10 +3792,15 @@ public class IpcStructFactory {
                                                                        IpcDataUnitWrapper
                                                                                        .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                        .ordinal()));
-                                       IpcDataUnitWrapper.setMacAddress(valFlowfilterEntryStruct,
-                                                       VtnServiceIpcConsts.MODIFYSRCMACADDR, redirectDst
-                                                                       .get(VtnServiceJsonConsts.MACSRCADDR).getAsString(),
-                                                                       UncStructIndexEnum.ValFlowfilterEntryIndex.UPLL_IDX_MODIFY_SRC_MAC_FFE.ordinal());
+                                       IpcDataUnitWrapper
+                                                       .setMacAddress(
+                                                                       valFlowfilterEntryStruct,
+                                                                       VtnServiceIpcConsts.MODIFYSRCMACADDR,
+                                                                       redirectDst.get(
+                                                                                       VtnServiceJsonConsts.MACSRCADDR)
+                                                                                       .getAsString(),
+                                                                       UncStructIndexEnum.ValFlowfilterEntryIndex.UPLL_IDX_MODIFY_SRC_MAC_FFE
+                                                                                       .ordinal());
                                } else {
                                        valFlowfilterEntryStruct
                                                        .set(VtnServiceIpcConsts.VALID,
@@ -3581,7 +3823,8 @@ public class IpcStructFactory {
                                                .set(VtnServiceIpcConsts.NWMNAME,
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8ArrayValue(
-                                                                                               flowFilterEntry.get(VtnServiceJsonConsts.NMGNAME)
+                                                                                               flowFilterEntry
+                                                                                                               .get(VtnServiceJsonConsts.NMGNAME)
                                                                                                                .getAsString(),
                                                                                                valFlowfilterEntryStruct,
                                                                                                UncStructIndexEnum.ValFlowfilterEntryIndex.UPLL_IDX_NWM_NAME_FFE
@@ -3603,10 +3846,16 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               valFlowfilterEntryStruct.set(
-                                               VtnServiceIpcConsts.DSCP,
-                                               IpcDataUnitWrapper.setIpcUint8Value(flowFilterEntry.get(VtnServiceJsonConsts.DSCP).getAsString(),
-                                                               valFlowfilterEntryStruct, UncStructIndexEnum.ValFlowfilterEntryIndex.UPLL_IDX_DSCP_FFE.ordinal()));
+                               valFlowfilterEntryStruct
+                                               .set(VtnServiceIpcConsts.DSCP,
+                                                               IpcDataUnitWrapper
+                                                                               .setIpcUint8Value(
+                                                                                               flowFilterEntry
+                                                                                                               .get(VtnServiceJsonConsts.DSCP)
+                                                                                                               .getAsString(),
+                                                                                               valFlowfilterEntryStruct,
+                                                                                               UncStructIndexEnum.ValFlowfilterEntryIndex.UPLL_IDX_DSCP_FFE
+                                                                                                               .ordinal()));
                        } else {
                                valFlowfilterEntryStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -3624,10 +3873,16 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               valFlowfilterEntryStruct.set(
-                                               VtnServiceIpcConsts.PRIORITY,
-                                               IpcDataUnitWrapper.setIpcUint8Value(flowFilterEntry.get(VtnServiceJsonConsts.PRIORITY).getAsString(),
-                                                               valFlowfilterEntryStruct, UncStructIndexEnum.ValFlowfilterEntryIndex.UPLL_IDX_PRIORITY_FFE.ordinal()));
+                               valFlowfilterEntryStruct
+                                               .set(VtnServiceIpcConsts.PRIORITY,
+                                                               IpcDataUnitWrapper
+                                                                               .setIpcUint8Value(
+                                                                                               flowFilterEntry
+                                                                                                               .get(VtnServiceJsonConsts.PRIORITY)
+                                                                                                               .getAsString(),
+                                                                                               valFlowfilterEntryStruct,
+                                                                                               UncStructIndexEnum.ValFlowfilterEntryIndex.UPLL_IDX_PRIORITY_FFE
+                                                                                                               .ordinal()));
                        } else {
                                valFlowfilterEntryStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -3654,7 +3909,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the struct
         */
-       public IpcStruct getKeyVbrIfStruct(final JsonObject requestBody,
+       public final IpcStruct getKeyVbrIfStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                // Lower level structure
                /*
@@ -3700,7 +3955,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the valPortMapStruct
         */
-       public IpcStruct getValPortMapStruct(final JsonObject requestBody,
+       public final IpcStruct getValPortMapStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                /*
                 * ipc_struct val_port_map { UINT8 valid[5]; UINT8 cs_attr[5]; UINT8
@@ -3712,7 +3967,8 @@ public class IpcStructFactory {
                                .setIpcStructValue(UncStructEnum.ValPortMap.getValue());
                if (requestBody != null
                                && requestBody.has(VtnServiceJsonConsts.PORTMAP)) {
-                       JsonObject portMap = requestBody.getAsJsonObject(VtnServiceJsonConsts.PORTMAP);
+                       final JsonObject portMap = requestBody
+                                       .getAsJsonObject(VtnServiceJsonConsts.PORTMAP);
                        if (portMap.has(VtnServiceJsonConsts.LOGICAL_PORT_ID)) {
                                valPortMapStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -3725,7 +3981,8 @@ public class IpcStructFactory {
                                                .set(VtnServiceJsonConsts.LOGICAL_PORT_ID,
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8ArrayValue(
-                                                                                               portMap.get(VtnServiceJsonConsts.LOGICAL_PORT_ID)
+                                                                                               portMap.get(
+                                                                                                               VtnServiceJsonConsts.LOGICAL_PORT_ID)
                                                                                                                .getAsString(),
                                                                                                valPortMapStruct,
                                                                                                UncStructIndexEnum.ValPortMapIndex.UPLL_IDX_LOGICAL_PORT_ID_PM
@@ -3747,12 +4004,17 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               valPortMapStruct.set(VtnServiceJsonConsts.VLANID,
-                                               IpcDataUnitWrapper
-                                                               .setIpcUint16Value(portMap.get(VtnServiceJsonConsts.VLANID).getAsString(),
-                                                                               valPortMapStruct, UncStructIndexEnum.ValPortMapIndex.UPLL_IDX_VLAN_ID_PM.ordinal()));
-                       } 
-                       else {
+                               valPortMapStruct
+                                               .set(VtnServiceJsonConsts.VLANID,
+                                                               IpcDataUnitWrapper
+                                                                               .setIpcUint16Value(
+                                                                                               portMap.get(
+                                                                                                               VtnServiceJsonConsts.VLANID)
+                                                                                                               .getAsString(),
+                                                                                               valPortMapStruct,
+                                                                                               UncStructIndexEnum.ValPortMapIndex.UPLL_IDX_VLAN_ID_PM
+                                                                                                               .ordinal()));
+                       } else {
                                valPortMapStruct
                                                .set(VtnServiceIpcConsts.VALID,
                                                                UncStructIndexEnum.ValPortMapIndex.UPLL_IDX_VLAN_ID_PM
@@ -3774,15 +4036,24 @@ public class IpcStructFactory {
                                        valPortMapStruct
                                                        .set(VtnServiceJsonConsts.TAGGED,
                                                                        IpcDataUnitWrapper
-                                                                                       .setIpcUint8Value(UncStructIndexEnum.vlan_tagged.UPLL_VLAN_TAGGED.getValue(),
-                                                                                                       valPortMapStruct, UncStructIndexEnum.ValPortMapIndex.UPLL_IDX_TAGGED_PM.ordinal()));
-                               } else if (portMap.get(VtnServiceJsonConsts.TAGGED).getAsString()
-                                               .equalsIgnoreCase(VtnServiceJsonConsts.FALSE)){
+                                                                                       .setIpcUint8Value(
+                                                                                                       UncStructIndexEnum.vlan_tagged.UPLL_VLAN_TAGGED
+                                                                                                                       .getValue(),
+                                                                                                       valPortMapStruct,
+                                                                                                       UncStructIndexEnum.ValPortMapIndex.UPLL_IDX_TAGGED_PM
+                                                                                                                       .ordinal()));
+                               } else if (portMap.get(VtnServiceJsonConsts.TAGGED)
+                                               .getAsString()
+                                               .equalsIgnoreCase(VtnServiceJsonConsts.FALSE)) {
                                        valPortMapStruct
                                                        .set(VtnServiceJsonConsts.TAGGED,
                                                                        IpcDataUnitWrapper
-                                                                                       .setIpcUint8Value(UncStructIndexEnum.vlan_tagged.UPLL_VLAN_UNTAGGED.getValue(),
-                                                                                                       valPortMapStruct, UncStructIndexEnum.ValPortMapIndex.UPLL_IDX_TAGGED_PM.ordinal()));
+                                                                                       .setIpcUint8Value(
+                                                                                                       UncStructIndexEnum.vlan_tagged.UPLL_VLAN_UNTAGGED
+                                                                                                                       .getValue(),
+                                                                                                       valPortMapStruct,
+                                                                                                       UncStructIndexEnum.ValPortMapIndex.UPLL_IDX_TAGGED_PM
+                                                                                                                       .ordinal()));
                                } else {
                                        valPortMapStruct
                                                        .set(VtnServiceIpcConsts.VALID,
@@ -3793,7 +4064,8 @@ public class IpcStructFactory {
                                                                                                        .ordinal()));
                                }
                                LOG.debug("tagged:"
-                                               + portMap.get(VtnServiceJsonConsts.TAGGED).getAsString());
+                                               + portMap.get(VtnServiceJsonConsts.TAGGED)
+                                                               .getAsString());
                        } else {
                                valPortMapStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -3820,7 +4092,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the valVbrIfStruct
         */
-       public IpcStruct getValVbrIfStruct(final JsonObject requestBody,
+       public final IpcStruct getValVbrIfStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                /*
                 * ipc_struct val_vbr_if { UINT8 valid[3]; UINT8 admin_status; UINT8
@@ -3834,7 +4106,8 @@ public class IpcStructFactory {
                                .setIpcStructValue(UncStructEnum.ValVbrIf.getValue());
                if (requestBody != null
                                && requestBody.has(VtnServiceJsonConsts.INTERFACE)) {
-                       JsonObject vbrIf = requestBody.getAsJsonObject(VtnServiceJsonConsts.INTERFACE);
+                       final JsonObject vbrIf = requestBody
+                                       .getAsJsonObject(VtnServiceJsonConsts.INTERFACE);
                        if (vbrIf.has(VtnServiceJsonConsts.ADMINSTATUS)) {
                                valVbrIfStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -3848,14 +4121,22 @@ public class IpcStructFactory {
                                        valVbrIfStruct
                                                        .set(VtnServiceJsonConsts.ADMIN_STATUS,
                                                                        IpcDataUnitWrapper
-                                                                                       .setIpcUint8Value(UncStructIndexEnum.ValAdminStatus.UPLL_ADMIN_ENABLE.getValue(), 
-                                                                                                       valVbrIfStruct, UncStructIndexEnum.ValVbrIfIndex.UPLL_IDX_ADMIN_STATUS_VBRI.ordinal()));
+                                                                                       .setIpcUint8Value(
+                                                                                                       UncStructIndexEnum.ValAdminStatus.UPLL_ADMIN_ENABLE
+                                                                                                                       .getValue(),
+                                                                                                       valVbrIfStruct,
+                                                                                                       UncStructIndexEnum.ValVbrIfIndex.UPLL_IDX_ADMIN_STATUS_VBRI
+                                                                                                                       .ordinal()));
                                } else {
                                        valVbrIfStruct
                                                        .set(VtnServiceJsonConsts.ADMIN_STATUS,
                                                                        IpcDataUnitWrapper
-                                                                                       .setIpcUint8Value(UncStructIndexEnum.ValAdminStatus.UPLL_ADMIN_DISABLE.getValue(), 
-                                                                                                       valVbrIfStruct, UncStructIndexEnum.ValVbrIfIndex.UPLL_IDX_ADMIN_STATUS_VBRI.ordinal()));
+                                                                                       .setIpcUint8Value(
+                                                                                                       UncStructIndexEnum.ValAdminStatus.UPLL_ADMIN_DISABLE
+                                                                                                                       .getValue(),
+                                                                                                       valVbrIfStruct,
+                                                                                                       UncStructIndexEnum.ValVbrIfIndex.UPLL_IDX_ADMIN_STATUS_VBRI
+                                                                                                                       .ordinal()));
                                }
                                LOG.debug("adminstatus"
                                                + vbrIf.get(VtnServiceJsonConsts.ADMINSTATUS)
@@ -3881,7 +4162,8 @@ public class IpcStructFactory {
                                                .set(VtnServiceJsonConsts.DESCRIPTION,
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8ArrayValue(
-                                                                                               vbrIf.get(VtnServiceJsonConsts.DESCRIPTION)
+                                                                                               vbrIf.get(
+                                                                                                               VtnServiceJsonConsts.DESCRIPTION)
                                                                                                                .getAsString(),
                                                                                                valVbrIfStruct,
                                                                                                UncStructIndexEnum.ValVbrIfIndex.UPLL_IDX_DESC_VBRI
@@ -3992,7 +4274,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the val vrt struct
         */
-       public IpcStruct getValVrtStruct(final JsonObject requestBody,
+       public final IpcStruct getValVrtStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                // Lower level structure
                /*
@@ -4005,7 +4287,8 @@ public class IpcStructFactory {
                                .setIpcStructValue(UncStructEnum.ValVrt.getValue());
                if (requestBody != null
                                && requestBody.has(VtnServiceJsonConsts.VROUTER)) {
-                       JsonObject vRouter = requestBody.getAsJsonObject(VtnServiceJsonConsts.VROUTER);
+                       final JsonObject vRouter = requestBody
+                                       .getAsJsonObject(VtnServiceJsonConsts.VROUTER);
                        if (vRouter.has(VtnServiceJsonConsts.CONTROLLERID)) {
                                valVrtStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -4018,7 +4301,8 @@ public class IpcStructFactory {
                                                .set(VtnServiceJsonConsts.CONTROLLERID,
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8ArrayValue(
-                                                                                               vRouter.get(VtnServiceJsonConsts.CONTROLLERID)
+                                                                                               vRouter.get(
+                                                                                                               VtnServiceJsonConsts.CONTROLLERID)
                                                                                                                .getAsString(),
                                                                                                valVrtStruct,
                                                                                                UncStructIndexEnum.ValVrtIndex.UPLL_IDX_CONTROLLER_ID_VRT
@@ -4044,7 +4328,8 @@ public class IpcStructFactory {
                                                .set(VtnServiceJsonConsts.DOMAINID,
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8ArrayValue(
-                                                                                               vRouter.get(VtnServiceJsonConsts.DOMAINID)
+                                                                                               vRouter.get(
+                                                                                                               VtnServiceJsonConsts.DOMAINID)
                                                                                                                .getAsString(),
                                                                                                valVrtStruct,
                                                                                                UncStructIndexEnum.ValVrtIndex.UPLL_IDX_DOMAIN_ID_VRT
@@ -4070,7 +4355,8 @@ public class IpcStructFactory {
                                                .set(VtnServiceIpcConsts.VRTDESCRIPTION,
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8ArrayValue(
-                                                                                               vRouter.get(VtnServiceJsonConsts.DESCRIPTION)
+                                                                                               vRouter.get(
+                                                                                                               VtnServiceJsonConsts.DESCRIPTION)
                                                                                                                .getAsString(),
                                                                                                valVrtStruct,
                                                                                                UncStructIndexEnum.ValVrtIndex.UPLL_IDX_DESC_VRT
@@ -4130,14 +4416,22 @@ public class IpcStructFactory {
                                        valVrtStruct
                                                        .set(VtnServiceIpcConsts.DHCPRELAYADMINSTATUS,
                                                                        IpcDataUnitWrapper
-                                                                                       .setIpcUint8Value(UncStructIndexEnum.ValAdminStatus.UPLL_ADMIN_ENABLE.getValue(),
-                                                                                                       valVrtStruct, UncStructIndexEnum.ValVrtIndex.UPLL_IDX_DHCP_RELAY_ADMIN_STATUS_VRT.ordinal()));
+                                                                                       .setIpcUint8Value(
+                                                                                                       UncStructIndexEnum.ValAdminStatus.UPLL_ADMIN_ENABLE
+                                                                                                                       .getValue(),
+                                                                                                       valVrtStruct,
+                                                                                                       UncStructIndexEnum.ValVrtIndex.UPLL_IDX_DHCP_RELAY_ADMIN_STATUS_VRT
+                                                                                                                       .ordinal()));
                                } else {
                                        valVrtStruct
                                                        .set(VtnServiceIpcConsts.DHCPRELAYADMINSTATUS,
                                                                        IpcDataUnitWrapper
-                                                                                       .setIpcUint8Value(UncStructIndexEnum.ValAdminStatus.UPLL_ADMIN_DISABLE.getValue(),
-                                                                                                       valVrtStruct, UncStructIndexEnum.ValVrtIndex.UPLL_IDX_DHCP_RELAY_ADMIN_STATUS_VRT.ordinal()));
+                                                                                       .setIpcUint8Value(
+                                                                                                       UncStructIndexEnum.ValAdminStatus.UPLL_ADMIN_DISABLE
+                                                                                                                       .getValue(),
+                                                                                                       valVrtStruct,
+                                                                                                       UncStructIndexEnum.ValVrtIndex.UPLL_IDX_DHCP_RELAY_ADMIN_STATUS_VRT
+                                                                                                                       .ordinal()));
                                }
                                LOG.debug("dhcp_relay_status"
                                                + requestBody
@@ -4170,7 +4464,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the val vrt if struct
         */
-       public IpcStruct getValVrtIfStruct(final JsonObject requestBody,
+       public final IpcStruct getValVrtIfStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                // Lower level structure
                /*
@@ -4183,7 +4477,8 @@ public class IpcStructFactory {
                                .setIpcStructValue(UncStructEnum.ValVrtIf.getValue());
                if (requestBody != null
                                && requestBody.has(VtnServiceJsonConsts.INTERFACE)) {
-                       JsonObject vRouterIf = requestBody.getAsJsonObject(VtnServiceJsonConsts.INTERFACE);
+                       final JsonObject vRouterIf = requestBody
+                                       .getAsJsonObject(VtnServiceJsonConsts.INTERFACE);
                        if (vRouterIf.has(VtnServiceJsonConsts.DESCRIPTION)) {
                                valVrtIfStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -4196,7 +4491,8 @@ public class IpcStructFactory {
                                                .set(VtnServiceJsonConsts.DESCRIPTION,
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8ArrayValue(
-                                                                                               vRouterIf.get(VtnServiceJsonConsts.DESCRIPTION)
+                                                                                               vRouterIf
+                                                                                                               .get(VtnServiceJsonConsts.DESCRIPTION)
                                                                                                                .getAsString(),
                                                                                                valVrtIfStruct,
                                                                                                UncStructIndexEnum.ValVrtIfIndex.UPLL_IDX_DESC_VI
@@ -4218,10 +4514,16 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               valVrtIfStruct.set(VtnServiceIpcConsts.IP_ADDR,
-                                               IpcDataUnitWrapper
-                                                               .setIpcInet4AddressValue(vRouterIf.get(VtnServiceJsonConsts.IPADDR).getAsString(),
-                                                                               valVrtIfStruct, UncStructIndexEnum.ValVrtIfIndex.UPLL_IDX_IP_ADDR_VI.ordinal()));
+                               valVrtIfStruct
+                                               .set(VtnServiceIpcConsts.IP_ADDR,
+                                                               IpcDataUnitWrapper
+                                                                               .setIpcInet4AddressValue(
+                                                                                               vRouterIf
+                                                                                                               .get(VtnServiceJsonConsts.IPADDR)
+                                                                                                               .getAsString(),
+                                                                                               valVrtIfStruct,
+                                                                                               UncStructIndexEnum.ValVrtIfIndex.UPLL_IDX_IP_ADDR_VI
+                                                                                                               .ordinal()));
                        } else {
                                valVrtIfStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -4239,10 +4541,16 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               valVrtIfStruct.set(VtnServiceIpcConsts.PREFIXLEN,
-                                               IpcDataUnitWrapper
-                                                               .setIpcUint8Value(vRouterIf.get(VtnServiceJsonConsts.PREFIX).getAsString(),
-                                                                               valVrtIfStruct, UncStructIndexEnum.ValVrtIfIndex.UPLL_IDX_PREFIXLEN_VI.ordinal()));
+                               valVrtIfStruct
+                                               .set(VtnServiceIpcConsts.PREFIXLEN,
+                                                               IpcDataUnitWrapper
+                                                                               .setIpcUint8Value(
+                                                                                               vRouterIf
+                                                                                                               .get(VtnServiceJsonConsts.PREFIX)
+                                                                                                               .getAsString(),
+                                                                                               valVrtIfStruct,
+                                                                                               UncStructIndexEnum.ValVrtIfIndex.UPLL_IDX_PREFIXLEN_VI
+                                                                                                               .ordinal()));
                        } else {
                                valVrtIfStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -4260,13 +4568,13 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                       
-                               IpcDataUnitWrapper
-                                               .setMacAddress(
-                                                               valVrtIfStruct,
-                                                               VtnServiceIpcConsts.MACADDR,
-                                                               vRouterIf.get(VtnServiceJsonConsts.MACADDR).getAsString(),
-                                                               UncStructIndexEnum.ValVrtIfIndex.UPLL_IDX_MAC_ADDR_VI.ordinal());
+
+                               IpcDataUnitWrapper.setMacAddress(valVrtIfStruct,
+                                               VtnServiceIpcConsts.MACADDR,
+                                               vRouterIf.get(VtnServiceJsonConsts.MACADDR)
+                                                               .getAsString(),
+                                               UncStructIndexEnum.ValVrtIfIndex.UPLL_IDX_MAC_ADDR_VI
+                                                               .ordinal());
                        } else {
                                valVrtIfStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -4284,19 +4592,28 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               if (vRouterIf.get(VtnServiceJsonConsts.ADMINSTATUS).getAsString()
+                               if (vRouterIf.get(VtnServiceJsonConsts.ADMINSTATUS)
+                                               .getAsString()
                                                .equalsIgnoreCase(VtnServiceJsonConsts.DISABLE)) {
                                        valVrtIfStruct
                                                        .set(VtnServiceJsonConsts.ADMIN_STATUS,
                                                                        IpcDataUnitWrapper
-                                                                                       .setIpcUint8Value(UncStructIndexEnum.ValAdminStatus.UPLL_ADMIN_DISABLE.getValue(),
-                                                                                                       valVrtIfStruct, UncStructIndexEnum.ValVrtIfIndex.UPLL_IDX_ADMIN_ST_VI.ordinal()));
+                                                                                       .setIpcUint8Value(
+                                                                                                       UncStructIndexEnum.ValAdminStatus.UPLL_ADMIN_DISABLE
+                                                                                                                       .getValue(),
+                                                                                                       valVrtIfStruct,
+                                                                                                       UncStructIndexEnum.ValVrtIfIndex.UPLL_IDX_ADMIN_ST_VI
+                                                                                                                       .ordinal()));
                                } else {
                                        valVrtIfStruct
                                                        .set(VtnServiceJsonConsts.ADMIN_STATUS,
                                                                        IpcDataUnitWrapper
-                                                                                       .setIpcUint8Value(UncStructIndexEnum.ValAdminStatus.UPLL_ADMIN_ENABLE.getValue(),
-                                                                                                       valVrtIfStruct, UncStructIndexEnum.ValVrtIfIndex.UPLL_IDX_ADMIN_ST_VI.ordinal()));
+                                                                                       .setIpcUint8Value(
+                                                                                                       UncStructIndexEnum.ValAdminStatus.UPLL_ADMIN_ENABLE
+                                                                                                                       .getValue(),
+                                                                                                       valVrtIfStruct,
+                                                                                                       UncStructIndexEnum.ValVrtIfIndex.UPLL_IDX_ADMIN_ST_VI
+                                                                                                                       .ordinal()));
                                }
                                LOG.debug("adminstatus:"
                                                + vRouterIf.get(VtnServiceJsonConsts.ADMINSTATUS)
@@ -4327,7 +4644,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the val vtunnel struct
         */
-       public IpcStruct getValVtunnelStruct(final JsonObject requestBody,
+       public final IpcStruct getValVtunnelStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                // Lower level structure
                /*
@@ -4341,7 +4658,8 @@ public class IpcStructFactory {
                                .setIpcStructValue(UncStructEnum.ValVtunnel.getValue());
                if (requestBody != null
                                && requestBody.has(VtnServiceJsonConsts.VTUNNEL)) {
-                       JsonObject vTunnel = requestBody.getAsJsonObject(VtnServiceJsonConsts.VTUNNEL);
+                       final JsonObject vTunnel = requestBody
+                                       .getAsJsonObject(VtnServiceJsonConsts.VTUNNEL);
                        if (vTunnel.has(VtnServiceJsonConsts.DESCRIPTION)) {
                                valVtunnelStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -4354,7 +4672,8 @@ public class IpcStructFactory {
                                                .set(VtnServiceJsonConsts.DESCRIPTION,
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8ArrayValue(
-                                                                                               vTunnel.get(VtnServiceJsonConsts.DESCRIPTION)
+                                                                                               vTunnel.get(
+                                                                                                               VtnServiceJsonConsts.DESCRIPTION)
                                                                                                                .getAsString(),
                                                                                                valVtunnelStruct,
                                                                                                UncStructIndexEnum.ValVtunnelIndex.UPLL_IDX_DESC_VTNL
@@ -4380,7 +4699,8 @@ public class IpcStructFactory {
                                                .set(VtnServiceJsonConsts.CONTROLLERID,
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8ArrayValue(
-                                                                                               vTunnel.get(VtnServiceJsonConsts.CONTROLLERID)
+                                                                                               vTunnel.get(
+                                                                                                               VtnServiceJsonConsts.CONTROLLERID)
                                                                                                                .getAsString(),
                                                                                                valVtunnelStruct,
                                                                                                UncStructIndexEnum.ValVtunnelIndex.UPLL_IDX_CONTROLLER_ID_VTNL
@@ -4406,7 +4726,8 @@ public class IpcStructFactory {
                                                .set(VtnServiceJsonConsts.DOMAINID,
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8ArrayValue(
-                                                                                               vTunnel.get(VtnServiceJsonConsts.DOMAINID)
+                                                                                               vTunnel.get(
+                                                                                                               VtnServiceJsonConsts.DOMAINID)
                                                                                                                .getAsString(),
                                                                                                valVtunnelStruct,
                                                                                                UncStructIndexEnum.ValVtunnelIndex.UPLL_IDX_DOMAIN_ID_VTNL
@@ -4432,7 +4753,8 @@ public class IpcStructFactory {
                                                .set(VtnServiceIpcConsts.VTNNAME,
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8ArrayValue(
-                                                                                               vTunnel.get(VtnServiceJsonConsts.VTNNAME)
+                                                                                               vTunnel.get(
+                                                                                                               VtnServiceJsonConsts.VTNNAME)
                                                                                                                .getAsString(),
                                                                                                valVtunnelStruct,
                                                                                                UncStructIndexEnum.ValVtunnelIndex.UPLL_IDX_VTN_NAME_VTNL
@@ -4458,7 +4780,8 @@ public class IpcStructFactory {
                                                .set(VtnServiceIpcConsts.VTEPGRPNAME,
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8ArrayValue(
-                                                                                               vTunnel.get(VtnServiceJsonConsts.VTEPGROUPNAME)
+                                                                                               vTunnel.get(
+                                                                                                               VtnServiceJsonConsts.VTEPGROUPNAME)
                                                                                                                .getAsString(),
                                                                                                valVtunnelStruct,
                                                                                                UncStructIndexEnum.ValVtunnelIndex.UPLL_IDX_VTEP_GRP_NAME_VTNL
@@ -4482,9 +4805,15 @@ public class IpcStructFactory {
                                                                                                .ordinal()));
 
                                valVtunnelStruct
-                                               .set(VtnServiceIpcConsts.LABEL, IpcDataUnitWrapper
-                                                               .setIpcUint32Value(vTunnel.get(VtnServiceJsonConsts.LABEL).getAsString(),
-                                                                               valVtunnelStruct, UncStructIndexEnum.ValVtunnelIndex.UPLL_IDX_LABEL_VTNL.ordinal()));
+                                               .set(VtnServiceIpcConsts.LABEL,
+                                                               IpcDataUnitWrapper
+                                                                               .setIpcUint32Value(
+                                                                                               vTunnel.get(
+                                                                                                               VtnServiceJsonConsts.LABEL)
+                                                                                                               .getAsString(),
+                                                                                               valVtunnelStruct,
+                                                                                               UncStructIndexEnum.ValVtunnelIndex.UPLL_IDX_LABEL_VTNL
+                                                                                                               .ordinal()));
                        } else {
                                valVtunnelStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -4511,7 +4840,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the key vtn flow filter entry struct
         */
-       public IpcStruct getKeyVtnFlowfilterControllerStruct(
+       public final IpcStruct getKeyVtnFlowfilterControllerStruct(
                        final JsonObject requestBody, final List<String> uriParameters) {
                // Lower level structure
                /*
@@ -4564,7 +4893,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the val vtn flow filter entry struct
         */
-       public IpcStruct getValFlowFilterControllerStruct(
+       public final IpcStruct getValFlowFilterControllerStruct(
                        final JsonObject requestBody, final List<String> uriParameters) {
                // Lower level structure
                /*
@@ -4617,10 +4946,13 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               valFlowFilterContollerStruct.set(
-                                               VtnServiceIpcConsts.SEQUENCENUM, IpcDataUnitWrapper
-                                                               .setIpcUint16Value(uriParameters.get(2),
-                                                               valFlowFilterContollerStruct, UncStructIndexEnum.ValFlowfilterControllerIndex.UPLL_IDX_SEQ_NUM_FFC.ordinal()));
+                               valFlowFilterContollerStruct
+                                               .set(VtnServiceIpcConsts.SEQUENCENUM,
+                                                               IpcDataUnitWrapper.setIpcUint16Value(
+                                                                               uriParameters.get(2),
+                                                                               valFlowFilterContollerStruct,
+                                                                               UncStructIndexEnum.ValFlowfilterControllerIndex.UPLL_IDX_SEQ_NUM_FFC
+                                                                                               .ordinal()));
                        } else {
                                valFlowFilterContollerStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -4648,7 +4980,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the val vtep group struct.
         */
-       public IpcStruct getKeyVtepGrpStruct(final JsonObject requestBody,
+       public final IpcStruct getKeyVtepGrpStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                /*
                 * ipc_struct key_vtep_grp { key_vtn vtn_key; UINT8 vtepgrp_name[32]; };
@@ -4696,8 +5028,8 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the val vtep group struct.
         */
-       public IpcStruct getKeyVtepGrpMemberStruct(final JsonObject requestBody,
-                       final List<String> uriParameters) {
+       public final IpcStruct getKeyVtepGrpMemberStruct(
+                       final JsonObject requestBody, final List<String> uriParameters) {
                /*
                 * ipc_struct key_vtep_grp_member { key_vtep_grp vtepgrp_key; UINT8
                 * vtepmember_name[32]; };
@@ -4736,7 +5068,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the val vtep grp struct
         */
-       public IpcStruct getValVtepGrpStruct(final JsonObject requestBody,
+       public final IpcStruct getValVtepGrpStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                /*
                 * ipc_struct val_vtep_grp { UINT8 valid[2]; UINT8 cs_row_status; UINT8
@@ -4747,7 +5079,7 @@ public class IpcStructFactory {
                                UncStructEnum.ValVtepGrp.getValue());
                if (requestBody != null
                                && requestBody.has(VtnServiceJsonConsts.VTEPGROUP)) {
-                       JsonObject vTepGroup = requestBody
+                       final JsonObject vTepGroup = requestBody
                                        .getAsJsonObject(VtnServiceJsonConsts.VTEPGROUP);
                        if (vTepGroup.has(VtnServiceJsonConsts.CONTROLLERID)) {
                                valVtepGrpStruct
@@ -4818,8 +5150,8 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the val vtep grp struct
         */
-       public IpcStruct getValStaticIpRouteStruct(final JsonObject requestBody,
-                       final List<String> uriParameters) {
+       public final IpcStruct getValStaticIpRouteStruct(
+                       final JsonObject requestBody, final List<String> uriParameters) {
                /*
                 * ipc_struct val_static_ip_route { UINT8 valid[2]; UINT8 cs_row_status;
                 * UINT8 cs_attr[2]; IPV4 next_hop_addr; UINT16 group_metric; };
@@ -4839,12 +5171,18 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               valStaticIpRouteStruct.set(
-                                               VtnServiceIpcConsts.GROUP_METRIC,
-                                               IpcDataUnitWrapper.setIpcUint16Value(requestBody
-                                                               .getAsJsonObject(VtnServiceJsonConsts.STATIC_IPROUTE)
-                                                               .get(VtnServiceJsonConsts.GROUPMETRIC).getAsString(),
-                                                               valStaticIpRouteStruct, UncStructIndexEnum.ValStaticIpRouteIndex.UPLL_IDX_GROUP_METRIC_SIR.ordinal()));
+                               valStaticIpRouteStruct
+                                               .set(VtnServiceIpcConsts.GROUP_METRIC,
+                                                               IpcDataUnitWrapper
+                                                                               .setIpcUint16Value(
+                                                                                               requestBody
+                                                                                                               .getAsJsonObject(
+                                                                                                                               VtnServiceJsonConsts.STATIC_IPROUTE)
+                                                                                                               .get(VtnServiceJsonConsts.GROUPMETRIC)
+                                                                                                               .getAsString(),
+                                                                                               valStaticIpRouteStruct,
+                                                                                               UncStructIndexEnum.ValStaticIpRouteIndex.UPLL_IDX_GROUP_METRIC_SIR
+                                                                                                               .ordinal()));
                        } else {
                                valStaticIpRouteStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -4871,7 +5209,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return key_vtnstation_controller struct
         */
-       public IpcStruct getKeyVtnstationControllerStruct(
+       public final IpcStruct getKeyVtnstationControllerStruct(
                        final JsonObject requestBody, final List<String> uriParameters) {
                /*
                 * ipc_struct key_vtnstation_controller { UINT8 controller_name[32]; };
@@ -4911,7 +5249,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return val_vtnstation_controller_st struct
         */
-       public IpcStruct getValVtnstationControllerStStruct(
+       public final IpcStruct getValVtnstationControllerStStruct(
                        final JsonObject requestBody, final List<String> uriParameters) {
                /*
                 * ipc_struct val_vtnstation_controller_st { UINT8 valid[15]; UINT64
@@ -4957,10 +5295,14 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               IpcDataUnitWrapper.setMacAddress(valVtnstationControllerSt,
-                                               VtnServiceIpcConsts.MAC_ADDR,
-                                               requestBody.get(VtnServiceJsonConsts.MACADDR).getAsString(),
-                                               UncStructIndexEnum.ValVtnstationControllerStIndex.UPLL_IDX_MAC_ADDR_VSCS.ordinal());
+                               IpcDataUnitWrapper
+                                               .setMacAddress(
+                                                               valVtnstationControllerSt,
+                                                               VtnServiceIpcConsts.MAC_ADDR,
+                                                               requestBody.get(VtnServiceJsonConsts.MACADDR)
+                                                                               .getAsString(),
+                                                               UncStructIndexEnum.ValVtnstationControllerStIndex.UPLL_IDX_MAC_ADDR_VSCS
+                                                                               .ordinal());
                        } else {
                                valVtnstationControllerSt
                                                .set(VtnServiceIpcConsts.VALID,
@@ -4979,10 +5321,14 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               valVtnstationControllerSt.set(VtnServiceIpcConsts.IPV4_COUNT,
-                                               IpcDataUnitWrapper
-                                                               .setIpcUint32Value(VtnServiceJsonConsts.ONE,
-                                                                               valVtnstationControllerSt, UncStructIndexEnum.ValVtnstationControllerStIndex.UPLL_IDX_IPV4_COUNT_VSCS.ordinal()));
+                               valVtnstationControllerSt
+                                               .set(VtnServiceIpcConsts.IPV4_COUNT,
+                                                               IpcDataUnitWrapper
+                                                                               .setIpcUint32Value(
+                                                                                               VtnServiceJsonConsts.ONE,
+                                                                                               valVtnstationControllerSt,
+                                                                                               UncStructIndexEnum.ValVtnstationControllerStIndex.UPLL_IDX_IPV4_COUNT_VSCS
+                                                                                                               .ordinal()));
                        } else {
                                valVtnstationControllerSt
                                                .set(VtnServiceIpcConsts.VALID,
@@ -5001,10 +5347,14 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               valVtnstationControllerSt.set(VtnServiceIpcConsts.IPV6_COUNT,
-                                               IpcDataUnitWrapper
-                                                               .setIpcUint32Value(VtnServiceJsonConsts.ONE, 
-                                                                               valVtnstationControllerSt, UncStructIndexEnum.ValVtnstationControllerStIndex.UPLL_IDX_IPV6_COUNT_VSCS.ordinal()));
+                               valVtnstationControllerSt
+                                               .set(VtnServiceIpcConsts.IPV6_COUNT,
+                                                               IpcDataUnitWrapper
+                                                                               .setIpcUint32Value(
+                                                                                               VtnServiceJsonConsts.ONE,
+                                                                                               valVtnstationControllerSt,
+                                                                                               UncStructIndexEnum.ValVtnstationControllerStIndex.UPLL_IDX_IPV6_COUNT_VSCS
+                                                                                                               .ordinal()));
                        } else {
                                valVtnstationControllerSt
                                                .set(VtnServiceIpcConsts.VALID,
@@ -5071,7 +5421,8 @@ public class IpcStructFactory {
                                                                                                .ordinal()));
                        }
                        // for vlan_id parameter
-                       if (requestBody.has(VtnServiceJsonConsts.VLANID) || requestBody.has(VtnServiceJsonConsts.NO_VLAN_ID)) {
+                       if (requestBody.has(VtnServiceJsonConsts.VLANID)
+                                       || requestBody.has(VtnServiceJsonConsts.NO_VLAN_ID)) {
                                valVtnstationControllerSt
                                                .set(VtnServiceIpcConsts.VALID,
                                                                UncStructIndexEnum.ValVtnstationControllerStIndex.UPLL_IDX_VLAN_ID_VSCS
@@ -5080,18 +5431,25 @@ public class IpcStructFactory {
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
                                if (requestBody.has(VtnServiceJsonConsts.VLANID)) {
-                                       valVtnstationControllerSt.set(
-                                                       VtnServiceIpcConsts.VLANID,
-                                                       IpcDataUnitWrapper.setIpcUint16Value(requestBody.get(
-                                                                       VtnServiceJsonConsts.VLANID).getAsString(),
-                                                                       valVtnstationControllerSt, UncStructIndexEnum.ValVtnstationControllerStIndex.UPLL_IDX_VLAN_ID_VSCS.ordinal()));
+                                       valVtnstationControllerSt
+                                                       .set(VtnServiceIpcConsts.VLANID,
+                                                                       IpcDataUnitWrapper
+                                                                                       .setIpcUint16Value(
+                                                                                                       requestBody
+                                                                                                                       .get(VtnServiceJsonConsts.VLANID)
+                                                                                                                       .getAsString(),
+                                                                                                       valVtnstationControllerSt,
+                                                                                                       UncStructIndexEnum.ValVtnstationControllerStIndex.UPLL_IDX_VLAN_ID_VSCS
+                                                                                                                       .ordinal()));
                                } else {
                                        valVtnstationControllerSt
                                                        .set(VtnServiceIpcConsts.VLANID,
                                                                        IpcDataUnitWrapper
-                                                                                       .setIpcUint16HexaValue(VtnServiceIpcConsts.VLAN_ID_DEFAULT_VALUE,
-                                                                                                       valVtnstationControllerSt, 
-                                                                                                       UncStructIndexEnum.ValVtnstationControllerStIndex.UPLL_IDX_VLAN_ID_VSCS.ordinal()));
+                                                                                       .setIpcUint16HexaValue(
+                                                                                                       VtnServiceIpcConsts.VLAN_ID_DEFAULT_VALUE,
+                                                                                                       valVtnstationControllerSt,
+                                                                                                       UncStructIndexEnum.ValVtnstationControllerStIndex.UPLL_IDX_VLAN_ID_VSCS
+                                                                                                                       .ordinal()));
                                }
                        } else {
                                valVtnstationControllerSt
@@ -5250,7 +5608,7 @@ public class IpcStructFactory {
        /**
         * Physical Ipc structures
         */
-       public IpcStruct getKeyCtrDomainStruct(final JsonObject requestBody,
+       public final IpcStruct getKeyCtrDomainStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                // Key structure
                /*
@@ -5296,7 +5654,7 @@ public class IpcStructFactory {
         * @param uriParameters
         * @return
         */
-       public IpcStruct getKeySwitchStruct(final JsonObject requestBody,
+       public final IpcStruct getKeySwitchStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                // Key structure
                /*
@@ -5331,7 +5689,7 @@ public class IpcStructFactory {
         * @param uriParameters
         * @return
         */
-       public IpcStruct getKeyLinkStruct(final JsonObject requestBody,
+       public final IpcStruct getKeyLinkStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                // Key structure
                /*
@@ -5349,24 +5707,9 @@ public class IpcStructFactory {
                                        uriParameters.subList(0, 1));
                        keyLink.set(VtnServiceIpcConsts.CTR_KEY, keyLinkStruct);
                }
-               if (requestBody != null && requestBody.has(VtnServiceJsonConsts.INDEX)) {
-                       String linkName[] = requestBody.get(VtnServiceJsonConsts.INDEX)
-                                       .getAsString().split(VtnServiceJsonConsts.LINKSAPERATOR);
-                       if (linkName.length == UncIndexEnum.FOUR.ordinal()) {
-                               keyLink.set(VtnServiceIpcConsts.SWITCH_ID1,
-                                               IpcDataUnitWrapper.setIpcUint8ArrayValue(linkName[0]));
-                               keyLink.set(VtnServiceIpcConsts.PORT_ID1,
-                                               IpcDataUnitWrapper.setIpcUint8ArrayValue(linkName[1]));
-                               keyLink.set(VtnServiceIpcConsts.SWITCH_ID2,
-                                               IpcDataUnitWrapper.setIpcUint8ArrayValue(linkName[2]));
-                               keyLink.set(VtnServiceIpcConsts.PORT_ID2,
-                                               IpcDataUnitWrapper.setIpcUint8ArrayValue(linkName[3]));
-                       } else {
-                               LOG.error("Value of linkname is incorrect");
-                       }
-               } else if (uriParameters != null
+               if (uriParameters != null
                                && uriParameters.size() == UncIndexEnum.TWO.ordinal()) {
-                       String linkName[] = uriParameters.get(1).split(
+                       final String linkName[] = uriParameters.get(1).split(
                                        VtnServiceJsonConsts.LINKSAPERATOR);
                        if (linkName.length == UncIndexEnum.FOUR.ordinal()) {
                                keyLink.set(VtnServiceIpcConsts.SWITCH_ID1,
@@ -5411,7 +5754,7 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the key Ctr struct
         */
-       public IpcStruct getKeyCtrStruct(final JsonObject requestBody,
+       public final IpcStruct getKeyCtrStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                /*
                 * ipc_struct key_ctr{ UINT8 controller_name[32]; };
@@ -5452,14 +5795,15 @@ public class IpcStructFactory {
         *            the uri parameters
         * @return the Val Ctr struct
         */
-       public IpcStruct getValCtrStruct(final JsonObject requestBody,
+       public final IpcStruct getValCtrStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                LOG.trace("Start getValCtrStruct");
                final IpcStruct valCtrStruct = IpcDataUnitWrapper
                                .setIpcStructValue(UncStructEnum.ValCtr.getValue());
                if (requestBody != null
                                && requestBody.has(VtnServiceJsonConsts.CONTROLLER)) {
-                       JsonObject controller = requestBody.getAsJsonObject(VtnServiceJsonConsts.CONTROLLER);
+                       final JsonObject controller = requestBody
+                                       .getAsJsonObject(VtnServiceJsonConsts.CONTROLLER);
                        if (controller.has(VtnServiceJsonConsts.TYPE)) {
                                valCtrStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -5475,14 +5819,16 @@ public class IpcStructFactory {
                                                                        IpcDataUnitWrapper
                                                                                        .setIpcUint8Value(UncPhysicalStructIndexEnum.UpplTypeIndex.UNC_CT_UNKNOWN
                                                                                                        .ordinal()));
-                               } else if (controller.get(VtnServiceJsonConsts.TYPE).getAsString()
+                               } else if (controller.get(VtnServiceJsonConsts.TYPE)
+                                               .getAsString()
                                                .equalsIgnoreCase(VtnServiceJsonConsts.PFC)) {
                                        valCtrStruct
                                                        .set(VtnServiceJsonConsts.TYPE,
                                                                        IpcDataUnitWrapper
                                                                                        .setIpcUint8Value(UncPhysicalStructIndexEnum.UpplTypeIndex.UNC_CT_PFC
                                                                                                        .ordinal()));
-                               } else if (controller.get(VtnServiceJsonConsts.TYPE).getAsString()
+                               } else if (controller.get(VtnServiceJsonConsts.TYPE)
+                                               .getAsString()
                                                .equalsIgnoreCase(VtnServiceJsonConsts.VNP)) {
                                        valCtrStruct
                                                        .set(VtnServiceJsonConsts.TYPE,
@@ -5498,7 +5844,8 @@ public class IpcStructFactory {
                                                                                                        .ordinal()));
                                }
                                LOG.debug("type:"
-                                               + controller.get(VtnServiceJsonConsts.TYPE).getAsString());
+                                               + controller.get(VtnServiceJsonConsts.TYPE)
+                                                               .getAsString());
                        } else {
                                valCtrStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -5520,7 +5867,8 @@ public class IpcStructFactory {
                                                .set(VtnServiceJsonConsts.VERSION,
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8ArrayValue(
-                                                                                               controller.get(VtnServiceJsonConsts.VERSION)
+                                                                                               controller
+                                                                                                               .get(VtnServiceJsonConsts.VERSION)
                                                                                                                .getAsString(),
                                                                                                valCtrStruct,
                                                                                                UncPhysicalStructIndexEnum.UpplValCtrIndex.kIdxVersion
@@ -5546,7 +5894,8 @@ public class IpcStructFactory {
                                                .set(VtnServiceJsonConsts.DESCRIPTION,
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8ArrayValue(
-                                                                                               controller.get(VtnServiceJsonConsts.DESCRIPTION)
+                                                                                               controller
+                                                                                                               .get(VtnServiceJsonConsts.DESCRIPTION)
                                                                                                                .getAsString(),
                                                                                                valCtrStruct,
                                                                                                UncPhysicalStructIndexEnum.UpplValCtrIndex.kIdxDescription
@@ -5571,8 +5920,13 @@ public class IpcStructFactory {
                                valCtrStruct
                                                .set(VtnServiceIpcConsts.IP_ADDRESS,
                                                                IpcDataUnitWrapper
-                                                                               .setIpcInet4AddressValue(controller.get(VtnServiceJsonConsts.IPADDR).getAsString(),
-                                                                                               valCtrStruct, UncPhysicalStructIndexEnum.UpplValCtrIndex.kIdxIpAddress.ordinal()));
+                                                                               .setIpcInet4AddressValue(
+                                                                                               controller
+                                                                                                               .get(VtnServiceJsonConsts.IPADDR)
+                                                                                                               .getAsString(),
+                                                                                               valCtrStruct,
+                                                                                               UncPhysicalStructIndexEnum.UpplValCtrIndex.kIdxIpAddress
+                                                                                                               .ordinal()));
                        } else {
                                valCtrStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -5594,7 +5948,8 @@ public class IpcStructFactory {
                                                .set(VtnServiceIpcConsts.USER,
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8ArrayValue(
-                                                                                               controller.get(VtnServiceJsonConsts.USERNAME)
+                                                                                               controller
+                                                                                                               .get(VtnServiceJsonConsts.USERNAME)
                                                                                                                .getAsString(),
                                                                                                valCtrStruct,
                                                                                                UncPhysicalStructIndexEnum.UpplValCtrIndex.kIdxUser
@@ -5620,7 +5975,8 @@ public class IpcStructFactory {
                                                .set(VtnServiceJsonConsts.PASSWORD,
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8ArrayValue(
-                                                                                               controller.get(VtnServiceJsonConsts.PASSWORD)
+                                                                                               controller
+                                                                                                               .get(VtnServiceJsonConsts.PASSWORD)
                                                                                                                .getAsString(),
                                                                                                valCtrStruct,
                                                                                                UncPhysicalStructIndexEnum.UpplValCtrIndex.kIdxPassword
@@ -5642,14 +5998,16 @@ public class IpcStructFactory {
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
-                               if (controller.get(VtnServiceJsonConsts.AUDITSTATUS).getAsString()
+                               if (controller.get(VtnServiceJsonConsts.AUDITSTATUS)
+                                               .getAsString()
                                                .equalsIgnoreCase(VtnServiceJsonConsts.DISABLE)) {
                                        valCtrStruct
                                                        .set(VtnServiceIpcConsts.ENABLE_AUDIT,
                                                                        IpcDataUnitWrapper
                                                                                        .setIpcUint8Value(UncPhysicalStructIndexEnum.UpplControllerAuditStatus.UPPL_AUTO_AUDIT_DISABLED
                                                                                                        .ordinal()));
-                               } else if (controller.get(VtnServiceJsonConsts.AUDITSTATUS).getAsString()
+                               } else if (controller.get(VtnServiceJsonConsts.AUDITSTATUS)
+                                               .getAsString()
                                                .equalsIgnoreCase(VtnServiceJsonConsts.ENABLE)) {
                                        valCtrStruct
                                                        .set(VtnServiceIpcConsts.ENABLE_AUDIT,
@@ -5669,6 +6027,7 @@ public class IpcStructFactory {
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_INVALID
                                                                                                .ordinal()));
                        }
+
                } else {
                        LOG.warning("request body and uri parameters are not correct for getValCtrStruct");
                }
@@ -5677,7 +6036,7 @@ public class IpcStructFactory {
                return valCtrStruct;
        }
 
-       public IpcStruct getValCtrDomainStruct(final JsonObject requestBody,
+       public final IpcStruct getValCtrDomainStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                /*
                 * ipc_struct val_ctr_domain { UINT8 type; UINT8 description[128]; UINT8
@@ -5687,7 +6046,8 @@ public class IpcStructFactory {
                final IpcStruct valCtrDomainStruct = IpcDataUnitWrapper
                                .setIpcStructValue(UncStructEnum.ValCtrDomain.getValue());
                if (requestBody != null && requestBody.has(VtnServiceJsonConsts.DOMAIN)) {
-                       JsonObject domain = requestBody.getAsJsonObject(VtnServiceJsonConsts.DOMAIN);
+                       final JsonObject domain = requestBody
+                                       .getAsJsonObject(VtnServiceJsonConsts.DOMAIN);
                        if (domain.has(VtnServiceJsonConsts.TYPE)) {
                                valCtrDomainStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -5734,7 +6094,8 @@ public class IpcStructFactory {
                                                .set(VtnServiceJsonConsts.DESCRIPTION,
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8ArrayValue(
-                                                                                               domain.get(VtnServiceJsonConsts.DESCRIPTION)
+                                                                                               domain.get(
+                                                                                                               VtnServiceJsonConsts.DESCRIPTION)
                                                                                                                .getAsString(),
                                                                                                valCtrDomainStruct,
                                                                                                UncPhysicalStructIndexEnum.UpplValDomainIndex.kIdxDomainDescription
@@ -5756,7 +6117,7 @@ public class IpcStructFactory {
                return valCtrDomainStruct;
        }
 
-       public IpcStruct getKeyBoundaryStruct(final JsonObject requestBody,
+       public final IpcStruct getKeyBoundaryStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                /*
                 * ipc_struct key_boundary { UINT8 boundary_id[32]; };
@@ -5788,7 +6149,7 @@ public class IpcStructFactory {
                return keyBoundaryStruct;
        }
 
-       public IpcStruct getValBoundaryStruct(final JsonObject requestBody,
+       public final IpcStruct getValBoundaryStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                /*
                 * ipc_struct val_boundary { UINT8 description[128]; UINT8
@@ -5802,7 +6163,8 @@ public class IpcStructFactory {
                                .setIpcStructValue(UncStructEnum.ValBoundary.getValue());
                if (requestBody != null
                                && requestBody.has(VtnServiceJsonConsts.BOUNDARY)) {
-                       JsonObject boundary = requestBody.getAsJsonObject(VtnServiceJsonConsts.BOUNDARY);
+                       final JsonObject boundary = requestBody
+                                       .getAsJsonObject(VtnServiceJsonConsts.BOUNDARY);
                        if (boundary.has(VtnServiceJsonConsts.DESCRIPTION)) {
                                valBoundaryStruct
                                                .set(VtnServiceIpcConsts.VALID,
@@ -5815,7 +6177,8 @@ public class IpcStructFactory {
                                                .set(VtnServiceJsonConsts.DESCRIPTION,
                                                                IpcDataUnitWrapper
                                                                                .setIpcUint8ArrayValue(
-                                                                                               boundary.get(VtnServiceJsonConsts.DESCRIPTION)
+                                                                                               boundary.get(
+                                                                                                               VtnServiceJsonConsts.DESCRIPTION)
                                                                                                                .getAsString(),
                                                                                                valBoundaryStruct,
                                                                                                UncPhysicalStructIndexEnum.UpplValBoundaryIndex.kIdxBoundaryDescription
@@ -5830,7 +6193,8 @@ public class IpcStructFactory {
                                                                                                .ordinal()));
                        }
                        if (boundary.has(VtnServiceJsonConsts.LINK)) {
-                               JsonObject link = boundary.getAsJsonObject(VtnServiceJsonConsts.LINK);
+                               final JsonObject link = boundary
+                                               .getAsJsonObject(VtnServiceJsonConsts.LINK);
                                if (link.has(VtnServiceJsonConsts.CONTROLLER1ID)) {
                                        valBoundaryStruct
                                                        .set(VtnServiceIpcConsts.VALID,
@@ -5843,7 +6207,8 @@ public class IpcStructFactory {
                                                        .set(VtnServiceIpcConsts.CONTROLLER_NAME1,
                                                                        IpcDataUnitWrapper
                                                                                        .setIpcUint8ArrayValue(
-                                                                                                       link.get(VtnServiceJsonConsts.CONTROLLER1ID)
+                                                                                                       link.get(
+                                                                                                                       VtnServiceJsonConsts.CONTROLLER1ID)
                                                                                                                        .getAsString(),
                                                                                                        valBoundaryStruct,
                                                                                                        UncPhysicalStructIndexEnum.UpplValBoundaryIndex.kIdxBoundaryControllerName1
@@ -5869,7 +6234,8 @@ public class IpcStructFactory {
                                                        .set(VtnServiceIpcConsts.DOMAIN_NAME1,
                                                                        IpcDataUnitWrapper
                                                                                        .setIpcUint8ArrayValue(
-                                                                                                       link.get(VtnServiceJsonConsts.DOMAIN1_ID)
+                                                                                                       link.get(
+                                                                                                                       VtnServiceJsonConsts.DOMAIN1_ID)
                                                                                                                        .getAsString(),
                                                                                                        valBoundaryStruct,
                                                                                                        UncPhysicalStructIndexEnum.UpplValBoundaryIndex.kIdxBoundaryDomainName1
@@ -5895,7 +6261,8 @@ public class IpcStructFactory {
                                                        .set(VtnServiceIpcConsts.LOGICAL_PORT_ID1,
                                                                        IpcDataUnitWrapper
                                                                                        .setIpcUint8ArrayValue(
-                                                                                                       link.get(VtnServiceJsonConsts.LOGICAL_PORT1_ID)
+                                                                                                       link.get(
+                                                                                                                       VtnServiceJsonConsts.LOGICAL_PORT1_ID)
                                                                                                                        .getAsString(),
                                                                                                        valBoundaryStruct,
                                                                                                        UncPhysicalStructIndexEnum.UpplValBoundaryIndex.kIdxBoundaryLogicalPortId1
@@ -5921,7 +6288,8 @@ public class IpcStructFactory {
                                                        .set(VtnServiceIpcConsts.CONTROLLER_NAME2,
                                                                        IpcDataUnitWrapper
                                                                                        .setIpcUint8ArrayValue(
-                                                                                                       link.get(VtnServiceJsonConsts.CONTROLLER2ID)
+                                                                                                       link.get(
+                                                                                                                       VtnServiceJsonConsts.CONTROLLER2ID)
                                                                                                                        .getAsString(),
                                                                                                        valBoundaryStruct,
                                                                                                        UncPhysicalStructIndexEnum.UpplValBoundaryIndex.kIdxBoundaryControllerName2
@@ -5947,7 +6315,8 @@ public class IpcStructFactory {
                                                        .set(VtnServiceIpcConsts.DOMAIN_NAME2,
                                                                        IpcDataUnitWrapper
                                                                                        .setIpcUint8ArrayValue(
-                                                                                                       link.get(VtnServiceJsonConsts.DOMAIN2_ID)
+                                                                                                       link.get(
+                                                                                                                       VtnServiceJsonConsts.DOMAIN2_ID)
                                                                                                                        .getAsString(),
                                                                                                        valBoundaryStruct,
                                                                                                        UncPhysicalStructIndexEnum.UpplValBoundaryIndex.kIdxBoundaryDomainName2
@@ -5973,7 +6342,8 @@ public class IpcStructFactory {
                                                        .set(VtnServiceIpcConsts.LOGICAL_PORT_ID2,
                                                                        IpcDataUnitWrapper
                                                                                        .setIpcUint8ArrayValue(
-                                                                                                       link.get(VtnServiceJsonConsts.LOGICAL_PORT2_ID)
+                                                                                                       link.get(
+                                                                                                                       VtnServiceJsonConsts.LOGICAL_PORT2_ID)
                                                                                                                        .getAsString(),
                                                                                                        valBoundaryStruct,
                                                                                                        UncPhysicalStructIndexEnum.UpplValBoundaryIndex.kIdxBoundaryLogicalPortId2
@@ -6080,8 +6450,7 @@ public class IpcStructFactory {
                                                        IpcDataUnitWrapper
                                                                        .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_INVALID
                                                                                        .ordinal()));
-               }
-               else {
+               } else {
                        LOG.warning("request body and uri parameters are not correct for getValCtrStruct");
                }
                LOG.info("Value Structure: " + valBoundaryStruct.toString());
@@ -6096,7 +6465,7 @@ public class IpcStructFactory {
         * @param uriParameters
         * @return
         */
-       public IpcStruct getKeyPortStruct(final JsonObject requestBody,
+       public final IpcStruct getKeyPortStruct(final JsonObject requestBody,
                        final List<String> uriParameters) {
                /*
                 * ipc_struct key_port { key_switch sw_key; UINT8 port_id[32]; };
@@ -6125,8 +6494,8 @@ public class IpcStructFactory {
                return keyPortStruct;
        }
 
-       public IpcStruct getValVrtArpEntryStStruct(final JsonObject requestBody,
-                       final List<String> uriParameters) {
+       public final IpcStruct getValVrtArpEntryStStruct(
+                       final JsonObject requestBody, final List<String> uriParameters) {
                /*
                 * ipc_struct val_vrt_arp_entry_st { UINT8 valid[4]; UINT8 macaddr[6];
                 * IPV4 ip_addr; UINT8 type; UINT8 if_name[32]; };
@@ -6180,8 +6549,8 @@ public class IpcStructFactory {
                return ValArpStruct;
        }
 
-       public IpcStruct getKeyLogicalPortStruct(final JsonObject requestBody,
-                       final List<String> uriParameters) {
+       public final IpcStruct getKeyLogicalPortStruct(
+                       final JsonObject requestBody, final List<String> uriParameters) {
                /*
                 * ipc_struct key_logical_port { key_ctr_domain domain_key; UINT8 port
                 * _id[320]; };
@@ -6211,7 +6580,7 @@ public class IpcStructFactory {
                return keyLogicalPortStruct;
        }
 
-       public IpcStruct getKeyLogicalMemberPortStruct(
+       public final IpcStruct getKeyLogicalMemberPortStruct(
                        final JsonObject requestBody, final List<String> uriParameters) {
                /*
                 * ipc_struct key_logical_member_port { key_logical_port
@@ -6254,4 +6623,175 @@ public class IpcStructFactory {
                LOG.trace("Complete getKeyLogicalMemberPortStruct");
                return keyLogicalMemberPortStruct;
        }
+
+       // Added New key Structure and Value Structure for U12 Requirement
+       /**
+        * Gets the Key Vtn Controller struct.
+        * 
+        * @param requestBody
+        *            the request body
+        * @param uriParameters
+        *            the uri parameters
+        * @return the Key Vtn Controller struct
+        */
+       public final IpcStruct getKeyVtnControllerStruct(
+                       final JsonObject requestBody, final List<String> uriParameters) {
+               LOG.trace("Start getKeyVtnControllerStruct");
+
+               final IpcStruct KeyVtnControllerStruct = IpcDataUnitWrapper
+                               .setIpcStructValue(UncStructEnum.KeyVtnController.getValue());
+               IpcStruct keyVtnStruct = null;
+               if (uriParameters != null
+                               && uriParameters.size() >= UncIndexEnum.ONE.ordinal()) {
+                       keyVtnStruct = getKeyVtnStruct(requestBody,
+                                       uriParameters.subList(0, 1));
+               }
+               KeyVtnControllerStruct.set(VtnServiceIpcConsts.VTNKEY, keyVtnStruct);
+               if (uriParameters != null
+                               && uriParameters.size() == UncIndexEnum.TWO.ordinal()) {
+
+                       final String mappingId[] = uriParameters.get(1).split(
+                                       VtnServiceJsonConsts.HYPHEN);
+                       KeyVtnControllerStruct
+                                       .set(VtnServiceJsonConsts.CONTROLLERNAME,
+                                                       IpcDataUnitWrapper
+                                                                       .setIpcUint8ArrayValue(mappingId[VtnServiceJsonConsts.VAL_0]));
+                       KeyVtnControllerStruct
+                                       .set(VtnServiceJsonConsts.DOMAINID,
+                                                       IpcDataUnitWrapper
+                                                                       .setIpcUint8ArrayValue(mappingId[VtnServiceJsonConsts.VAL_1]));
+
+               } else {
+                       LOG.warning("request body and uri parameters are not correct for getKeyVtnControllerStruct");
+               }
+               LOG.info("Key Structure: " + KeyVtnControllerStruct.toString());
+               LOG.trace("Complete getKeyVtnControllerStruct");
+               return KeyVtnControllerStruct;
+       }
+
+       // VTN Data Flow key Structure
+       public final IpcStruct getKeyVtnDataflowStruct(
+                       final JsonObject requestBody, final List<String> uriParameters) {
+               LOG.trace("Start getKeyVtnDataflowStruct");
+               final IpcStruct keyVtnDataFlowStruct = IpcDataUnitWrapper
+                               .setIpcStructValue(UncStructEnum.KeyVtnDataflow.getValue());
+               IpcStruct keyVtnStruct = null;
+               if (uriParameters != null
+                               && uriParameters.size() == UncIndexEnum.ONE.ordinal()) {
+                       keyVtnStruct = getKeyVtnStruct(requestBody, uriParameters);
+               }
+               keyVtnDataFlowStruct.set(VtnServiceIpcConsts.VTNKEY, keyVtnStruct);
+               if (requestBody != null) {
+                       keyVtnDataFlowStruct
+                                       .set(VtnServiceIpcConsts.VNODEID, IpcDataUnitWrapper
+                                                       .setIpcUint8ArrayValue((requestBody
+                                                                       .get(VtnServiceJsonConsts.VNODENAME)
+                                                                       .getAsString())));
+                       if (requestBody.has(VtnServiceJsonConsts.VLANID)) {
+                               LOG.debug("Valid VLAN ID Case");
+                               keyVtnDataFlowStruct.set(
+                                               VtnServiceIpcConsts.VLANID1,
+                                               IpcDataUnitWrapper.setIpcUint16Value(requestBody.get(
+                                                               VtnServiceJsonConsts.VLANID).getAsString()));
+                       } else if (requestBody.has(VtnServiceJsonConsts.NO_VLAN_ID)) {
+                               LOG.debug("Valid NO VLAN ID Case");
+                               keyVtnDataFlowStruct
+                                               .set(VtnServiceIpcConsts.VLANID1,
+                                                               IpcDataUnitWrapper
+                                                                               .setIpcUint16HexaValue(VtnServiceIpcConsts.VLAN_ID_DEFAULT_VALUE));
+                       }
+                       IpcDataUnitWrapper.setMacAddress(keyVtnDataFlowStruct,
+                                       VtnServiceIpcConsts.SRC_MAC_ADDRESS,
+                                       requestBody.get(VtnServiceJsonConsts.SRCMACADDR)
+                                                       .getAsString(), 0);
+               } else {
+                       LOG.warning("request body and uri parameters are not correct for getKeyVtnDataflowStruct");
+               }
+               LOG.info("Key Structure: " + keyVtnDataFlowStruct.toString());
+               LOG.trace("Complete getKeyVtnDataflowStruct");
+               return keyVtnDataFlowStruct;
+       }
+
+       /**
+        * Gets the key DataFlow struct.
+        * 
+        * @param requestBody
+        *            the request body
+        * @param uriParameters
+        *            the uri parameters
+        * @return the key DataFlow struct
+        */
+
+       public final IpcStruct getKeyDataFlowStruct(final JsonObject requestBody,
+                       final List<String> uriParameters) {
+               LOG.trace("Start getKeyDataFlowStruct");
+               final IpcStruct keyDataFlowStruct = IpcDataUnitWrapper
+                               .setIpcStructValue(UncStructEnum.KeyDataFlow.getValue());
+               if (requestBody != null) {
+                       keyDataFlowStruct.set(VtnServiceIpcConsts.CONTROLLERNAME,
+                                       IpcDataUnitWrapper.setIpcUint8ArrayValue((requestBody
+                                                       .get(VtnServiceJsonConsts.CONTROLLERID)
+                                                       .getAsString())));
+                       keyDataFlowStruct
+                                       .set(VtnServiceIpcConsts.SWITCHID, IpcDataUnitWrapper
+                                                       .setIpcUint8ArrayValue((requestBody
+                                                                       .get(VtnServiceJsonConsts.SWITCHID)
+                                                                       .getAsString())));
+                       keyDataFlowStruct
+                                       .set(VtnServiceIpcConsts.PORT_ID, IpcDataUnitWrapper
+                                                       .setIpcUint8ArrayValue((requestBody
+                                                                       .get(VtnServiceJsonConsts.PORTNAME)
+                                                                       .getAsString())));
+
+                       if (requestBody.has(VtnServiceJsonConsts.VLANID)) {
+                               LOG.debug("Valid VLAN ID Case");
+                               keyDataFlowStruct.set(
+                                               VtnServiceJsonConsts.VLANID,
+                                               IpcDataUnitWrapper.setIpcUint16Value(requestBody.get(
+                                                               VtnServiceJsonConsts.VLANID).getAsString()));
+                       } else if (requestBody.has(VtnServiceJsonConsts.NO_VLAN_ID)) {
+                               LOG.debug("Valid NO VLAN ID Case");
+                               keyDataFlowStruct
+                                               .set(VtnServiceJsonConsts.VLANID,
+                                                               IpcDataUnitWrapper
+                                                                               .setIpcUint16HexaValue(VtnServiceIpcConsts.VLAN_ID_DEFAULT_VALUE));
+                       }
+                       IpcDataUnitWrapper.setMacAddress(keyDataFlowStruct,
+                                       VtnServiceIpcConsts.SRC_MAC_ADDRESS,
+                                       requestBody.get(VtnServiceJsonConsts.SRCMACADDR)
+                                                       .getAsString(), 0);
+               } else {
+                       LOG.error("request body and uri parameters are not correct for getKeyDataFlowStruct");
+               }
+               LOG.info("Key Structure: " + keyDataFlowStruct.toString());
+               LOG.trace("Complete getKeyDataFlowStruct");
+               return keyDataFlowStruct;
+       }
+
+       // key_ctr_dataflow
+
+       public final IpcStruct getKeyCtrDataFlowStruct(
+                       final JsonObject requestBody, final List<String> uriParameters) {
+               IpcStruct keyCtrStruct = null;
+
+               if (uriParameters != null
+                               && uriParameters.size() >= UncIndexEnum.ONE.ordinal()) {
+                       // create key structure for Controller
+                       keyCtrStruct = getKeyCtrStruct(requestBody, uriParameters);
+               }
+               LOG.trace("Start getKeyCtrDataFlowStruct");
+               final IpcStruct keyCtrDataFlowStruct = IpcDataUnitWrapper
+                               .setIpcStructValue(UncStructEnum.KeyCtrDataFlow.getValue());
+               if (requestBody != null) {
+                       keyCtrDataFlowStruct.set(VtnServiceIpcConsts.CTR_KEY, keyCtrStruct);
+                       keyCtrDataFlowStruct.set(VtnServiceIpcConsts.FLOW_ID,
+                                       IpcDataUnitWrapper.setIpcUint64Value((requestBody
+                                                       .get(VtnServiceJsonConsts.FLOW_ID).getAsString())));
+               } else {
+                       LOG.warning("request body and uri parameters are not correct for getKeyCtrDataFlowStruct");
+               }
+               LOG.info("Key Structure: " + keyCtrDataFlowStruct.toString());
+               LOG.trace("Complete getKeyCtrDataFlowStruct");
+               return keyCtrDataFlowStruct;
+       }
 }
index bc6f31b8342174687be7075b79d555266252b691..f8f149749412dabb51ae9cd1d0e28390894eb9c7 100644 (file)
@@ -1,15 +1,15 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
+
 package org.opendaylight.vtn.javaapi.ipc.conversion;
 
-import java.net.Inet4Address;
-import java.net.Inet6Address;
+import java.net.InetAddress;
 import java.net.UnknownHostException;
 
 import org.opendaylight.vtn.core.util.Logger;
@@ -33,10 +33,10 @@ public class IpAddressUtil {
        public static byte[] textToNumericFormatV4(final String ipV4Add) {
                LOG.trace("Start textToNumericFormatV4 : " + ipV4Add);
                byte[] responseArray = null;
-               if (ipV4Add.split(VtnServiceConsts.DOT_REGEX).length == ipV4Size) {
+               if (ipV4Add.split(VtnServiceConsts.DOT_REGEX).length == ipV4Size && ipV4Add.trim().equals(ipV4Add)) {
                        try {
-                               responseArray = Inet4Address.getByName(ipV4Add).getAddress();
-                       } catch (UnknownHostException e) {
+                               responseArray = InetAddress.getByName(ipV4Add).getAddress();
+                       } catch (final UnknownHostException e) {
                                responseArray = null;
                                LOG.error("incorrect format ipv4 address " + e.getMessage());
                        }
@@ -57,10 +57,10 @@ public class IpAddressUtil {
        public static byte[] textToNumericFormatV6(final String ipV6Add) {
                LOG.trace("Start textToNumericFormatV6 : " + ipV6Add);
                byte[] responseArray = null;
-               if (ipV6Add.split(VtnServiceConsts.COLON).length == ipV6Size) {
+               if (ipV6Add.split(VtnServiceConsts.COLON).length == ipV6Size && ipV6Add.trim().equals(ipV6Add)) {
                        try {
-                               responseArray = Inet6Address.getByName(ipV6Add).getAddress();
-                       } catch (UnknownHostException e) {
+                               responseArray = InetAddress.getByName(ipV6Add).getAddress();
+                       } catch (final UnknownHostException e) {
                                responseArray = null;
                                LOG.error("incorrect format ipv6 address " + e.getMessage());
                        }
@@ -70,4 +70,4 @@ public class IpAddressUtil {
                LOG.trace("Complete textToNumericFormatV6 : " + responseArray);
                return responseArray;
        }
-}
\ No newline at end of file
+}
index c96edaf88963852fb8996a10488030cfa8f177aa..b3b095631953e649d0d61815db6e0c35e0b7cb6a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -54,7 +54,7 @@ public final class IpcDataUnitWrapper {
                }
                return new IpcUint8(Integer.parseInt(jsonValue));
        }
-       
+
        /**
         * Set json integer value to IpcUint8 type
         * 
@@ -98,7 +98,7 @@ public final class IpcDataUnitWrapper {
        public static IpcUint16 setIpcUint16Value(final String jsonValue) {
                return new IpcUint16(Integer.parseInt(jsonValue));
        }
-       
+
        /**
         * Set json string value to IpcUint16 type
         * 
@@ -148,7 +148,7 @@ public final class IpcDataUnitWrapper {
                }
                return new IpcUint16(jsonValue);
        }
-       
+
        /**
         * Set json string value to IpcUint32 type
         * 
@@ -173,7 +173,7 @@ public final class IpcDataUnitWrapper {
                }
                return new IpcUint32(Long.parseLong(jsonValue));
        }
-       
+
        /**
         * Set int string value to IpcInt32 type
         * 
@@ -218,14 +218,15 @@ public final class IpcDataUnitWrapper {
                }
                return new IpcUint64(jsonValue);
        }
-       
+
        /**
         * Set json ipaddress value to IpcInet4Address type
         * 
         * @param jsonValue
         * @return
         */
-       public static IpcInet4Address setIpcInet4AddressValue(final String jsonValue) {
+       public static IpcInet4Address
+                       setIpcInet4AddressValue(final String jsonValue) {
                return (IpcInet4Address) IpcInetAddress.create(IpAddressUtil
                                .textToNumericFormatV4(jsonValue));
        }
@@ -236,8 +237,8 @@ public final class IpcDataUnitWrapper {
         * @param jsonValue
         * @return
         */
-       public static IpcInet4Address setIpcInet4AddressValue(final String jsonValue,
-                       final IpcStruct struct, final int index) {
+       public static IpcInet4Address setIpcInet4AddressValue(
+                       final String jsonValue, final IpcStruct struct, final int index) {
                if (jsonValue == null || jsonValue.isEmpty()) {
                        setNoValueFlag(struct, index);
                        return (IpcInet4Address) IpcInetAddress.create(IpAddressUtil
@@ -246,14 +247,15 @@ public final class IpcDataUnitWrapper {
                return (IpcInet4Address) IpcInetAddress.create(IpAddressUtil
                                .textToNumericFormatV4(jsonValue));
        }
-       
+
        /**
         * Set json ipaddress value to IpcInet6Address type
         * 
         * @param jsonValue
         * @return
         */
-       public static IpcInet6Address setIpcInet6AddressValue(final String jsonValue) {
+       public static IpcInet6Address
+                       setIpcInet6AddressValue(final String jsonValue) {
                return (IpcInet6Address) IpcInetAddress.create(IpAddressUtil
                                .textToNumericFormatV6(jsonValue));
        }
@@ -264,8 +266,8 @@ public final class IpcDataUnitWrapper {
         * @param jsonValue
         * @return
         */
-       public static IpcInet6Address setIpcInet6AddressValue(final String jsonValue,
-                       final IpcStruct struct, final int index) {
+       public static IpcInet6Address setIpcInet6AddressValue(
+                       final String jsonValue, final IpcStruct struct, final int index) {
                if (jsonValue == null || jsonValue.isEmpty()) {
                        setNoValueFlag(struct, index);
                        return (IpcInet6Address) IpcInetAddress.create(IpAddressUtil
@@ -274,7 +276,7 @@ public final class IpcDataUnitWrapper {
                return (IpcInet6Address) IpcInetAddress.create(IpAddressUtil
                                .textToNumericFormatV6(jsonValue));
        }
-       
+
        /**
         * Create IpcStruct with name as Json string value
         * 
@@ -284,7 +286,7 @@ public final class IpcDataUnitWrapper {
        public static IpcStruct setIpcStructValue(final String jsonValue) {
                return new IpcStruct(jsonValue);
        }
-       
+
        /**
         * Get string value of IpcDataUnit
         * 
@@ -354,8 +356,8 @@ public final class IpcDataUnitWrapper {
         */
        public static String getIpcStructUint16HexaValue(final IpcStruct struct,
                        final String parameterName) {
-               int intValue = ((IpcUint16) struct.get(parameterName)).intValue();
-               String hexString = UnsignedInteger.toHexString(intValue);
+               final int intValue = ((IpcUint16) struct.get(parameterName)).intValue();
+               final String hexString = UnsignedInteger.toHexString(intValue);
                return "0x" + hexString;
        }
 
@@ -432,7 +434,7 @@ public final class IpcDataUnitWrapper {
        }
 
        /**
-        * Get string value of hexadecimal IpcUint64 
+        * Get string value of hexadecimal IpcUint64
         * 
         * @param struct
         * @param parameterName
@@ -440,8 +442,9 @@ public final class IpcDataUnitWrapper {
         */
        public static String getIpcStructUint64HexaValue(final IpcStruct struct,
                        final String parameterName) {
-               long longValue = ((IpcUint64) struct.get(parameterName)).longValue();
-               String hexString = UnsignedInteger.toHexString(longValue);
+               final long longValue = ((IpcUint64) struct.get(parameterName))
+                               .longValue();
+               final String hexString = UnsignedInteger.toHexString(longValue);
                return "0x" + hexString;
        }
 
@@ -453,14 +456,15 @@ public final class IpcDataUnitWrapper {
         * @param parameterName
         * @param jsonValue
         */
-       public static void setMacAddress(final IpcStruct struct,
-                       final String parameterName, final String jsonValue, final int index) {
+       public static void
+                       setMacAddress(final IpcStruct struct, final String parameterName,
+                                       final String jsonValue, final int index) {
                if (jsonValue == null || jsonValue.isEmpty()) {
                        setNoValueFlag(struct, index);
-                       return ;
+                       return;
                }
-               String macAddress = jsonValue.replaceAll(VtnServiceConsts.DOT_REGEX,
-                               VtnServiceConsts.EMPTY_STRING);
+               final String macAddress = jsonValue.replaceAll(
+                               VtnServiceConsts.DOT_REGEX, VtnServiceConsts.EMPTY_STRING);
                if (macAddress.length() != UncIndexEnum.TWELVE.ordinal()) {
                        return;
                } else {
@@ -498,29 +502,28 @@ public final class IpcDataUnitWrapper {
                                                        .ordinal()) {
                                jsonString = jsonString + VtnServiceConsts.DOT;
                        }
-                       int value = (int) struct.getByte(parameterName, structIndex);
+                       final int value = struct.getByte(parameterName, structIndex);
                        if (value < UncIndexEnum.ZERO.ordinal()) {
                                jsonString = jsonString
                                                + Integer.toHexString(
-                                                               (int) struct.getByte(parameterName,
-                                                                               structIndex++)).substring(
-                                                               UncIndexEnum.SIX.ordinal(),
-                                                               UncIndexEnum.EIGHT.ordinal());
+                                                               struct.getByte(parameterName, structIndex++))
+                                                               .substring(UncIndexEnum.SIX.ordinal(),
+                                                                               UncIndexEnum.EIGHT.ordinal());
                        } else if (value >= UncIndexEnum.ZERO.ordinal()
                                        && value < UncIndexEnum.SIXTEEN.ordinal()) {
                                jsonString = jsonString
                                                + VtnServiceConsts.ZERO
-                                               + Integer.toHexString((int) struct.getByte(
-                                                               parameterName, structIndex++));
+                                               + Integer.toHexString(struct.getByte(parameterName,
+                                                               structIndex++));
                        } else {
                                jsonString = jsonString
-                                               + Integer.toHexString((int) struct.getByte(
-                                                               parameterName, structIndex++));
+                                               + Integer.toHexString(struct.getByte(parameterName,
+                                                               structIndex++));
                        }
                }
                return jsonString;
        }
-       
+
        /**
         * Set UNC_VF_VALID_NO_VALUE in case of receiving empty string for parameter
         * 
@@ -535,5 +538,5 @@ public final class IpcDataUnitWrapper {
                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID_NO_VALUE
                                                                .ordinal()));
        }
-       
+
 }
index 63ab1885a724bb465d8a95da753b8a05d179af37..d23deaddacba38a16214fa822f5c6a3f72e5d43b 100644 (file)
@@ -1,24 +1,29 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
+
 package org.opendaylight.vtn.javaapi.ipc.conversion;
 
+import java.util.concurrent.atomic.AtomicInteger;
+
 import com.google.gson.JsonArray;
 import com.google.gson.JsonObject;
 import com.google.gson.JsonPrimitive;
 import org.opendaylight.vtn.core.ipc.IpcDataUnit;
 import org.opendaylight.vtn.core.ipc.IpcStruct;
 import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.core.util.UnsignedInteger;
 import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
 import org.opendaylight.vtn.javaapi.constants.VtnServiceIpcConsts;
 import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
 import org.opendaylight.vtn.javaapi.ipc.enums.PomStatsIndex;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncPhysicalStructIndexEnum;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncStructIndexEnum;
 
 public class IpcLogicalResponseFactory {
@@ -675,7 +680,7 @@ public class IpcLogicalResponseFactory {
                                                                        valVbrMacEntrySt, VtnServiceIpcConsts.TYPE));
                                }
                                /*
-                                * add valid port_name from value structure
+                                * add valid IF_name from value structure
                                 */
                                validBit = valVbrMacEntrySt
                                                .getByte(
@@ -687,7 +692,7 @@ public class IpcLogicalResponseFactory {
                                                && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
                                                                .ordinal()) {
                                        setValueToJsonObject(validBit, macEntries,
-                                                       VtnServiceJsonConsts.PORTNAME,
+                                                       VtnServiceJsonConsts.IFNAME,
                                                        IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
                                                                        valVbrMacEntrySt,
                                                                        VtnServiceIpcConsts.IFNAME));
@@ -972,6 +977,7 @@ public class IpcLogicalResponseFactory {
                                                                                valFlowFilterEntryStruct,
                                                                                VtnServiceIpcConsts.REDIRECTPORT));
                                        }
+
                                        validBit = valFlowFilterEntryStruct
                                                        .getByte(
                                                                        VtnServiceIpcConsts.VALID,
@@ -1604,6 +1610,7 @@ public class IpcLogicalResponseFactory {
                                root.add(rootJsonName, vBypassArray);
                        } else {
                                root.add(rootJsonName, vBypassList);
+
                        }
                }
                LOG.debug("response Json: " + root.toString());
@@ -1710,6 +1717,7 @@ public class IpcLogicalResponseFactory {
                                        LOG.debug("Operation : normal Skip value struture");
                                        index++;
                                }
+
                                if (getType.equals(VtnServiceJsonConsts.SHOW)
                                                && dataType
                                                                .equalsIgnoreCase(VtnServiceJsonConsts.STATE)) {
@@ -1874,8 +1882,10 @@ public class IpcLogicalResponseFactory {
         * @param responseStruct
         * @param pomStatsIndexSet
         */
-       public void getPomStats(final JsonObject targetJson,
-                       final IpcStruct responseStruct, final PomStatsIndex pomStatsIndexSet) {
+       public void
+                       getPomStats(final JsonObject targetJson,
+                                       final IpcStruct responseStruct,
+                                       final PomStatsIndex pomStatsIndexSet) {
                LOG.trace("Start getPomStats");
                byte validBit;
                // pom stats starts
@@ -3371,6 +3381,7 @@ public class IpcLogicalResponseFactory {
                                                                                valFlowFilterEntryStruct,
                                                                                VtnServiceIpcConsts.REDIRECTPORT));
                                        }
+
                                        validBit = valFlowFilterEntryStruct
                                                        .getByte(
                                                                        VtnServiceIpcConsts.VALID,
@@ -5367,7 +5378,8 @@ public class IpcLogicalResponseFactory {
        }
 
        public JsonObject getPortMapResponse(final IpcDataUnit[] responsePacket,
-                       final JsonObject requestBody, final String getType, String ifType) {
+                       final JsonObject requestBody, final String getType,
+                       final String ifType) {
                LOG.trace("Start getPortMapResponse");
                final JsonObject root = new JsonObject();
 
@@ -5384,7 +5396,7 @@ public class IpcLogicalResponseFactory {
                for (int index = 0; index < responsePacket.length; index++) {
 
                        portMap = new JsonObject();
-                       byte validBit=0;
+                       byte validBit = 0;
                        // There is no use of key type
                        LOG.debug("Skip key type: no use");
                        index++;
@@ -5426,7 +5438,7 @@ public class IpcLogicalResponseFactory {
                                                && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
                                                                .ordinal()) {
 
-                                       IpcStruct valPortMapStruct = IpcDataUnitWrapper
+                                       final IpcStruct valPortMapStruct = IpcDataUnitWrapper
                                                        .getInnerIpcStruct(valIfStruct,
                                                                        VtnServiceJsonConsts.PORTMAP);
                                        /*
@@ -5910,6 +5922,7 @@ public class IpcLogicalResponseFactory {
                                                                                valFlowFilterEntryStruct,
                                                                                VtnServiceIpcConsts.REDIRECTPORT));
                                        }
+
                                        validBit = valFlowFilterEntryStruct
                                                        .getByte(
                                                                        VtnServiceIpcConsts.VALID,
@@ -6309,7 +6322,7 @@ public class IpcLogicalResponseFactory {
                                final String nextHopAddr = IpcDataUnitWrapper
                                                .getIpcStructIpv4Value(keyStaticIpRouteStruct,
                                                                VtnServiceIpcConsts.NEXT_HOP_ADDR);
-                               
+
                                // no use of value structure
                                LOG.debug("no use of value structure");
                                index++;
@@ -6532,7 +6545,7 @@ public class IpcLogicalResponseFactory {
                                                                                valVtepStruct,
                                                                                VtnServiceJsonConsts.DOMAINID));
                                        }
-                               
+
                                        /*
                                         * If data type is set as "state", then value structure will
                                         * also contain the state information
@@ -6590,8 +6603,7 @@ public class IpcLogicalResponseFactory {
                                                }
 
                                        }
-                               }
-                                        else {
+                               } else {
                                        LOG.debug("Operation : normal Skip value struture");
                                        index++;
                                        if (dataType.equalsIgnoreCase(VtnServiceJsonConsts.STATE)) {
@@ -6819,7 +6831,7 @@ public class IpcLogicalResponseFactory {
                                                        VtnServiceIpcConsts.MAP_TYPE))) {
                                setValueToJsonObject(validBit, vtnStation,
                                                VtnServiceJsonConsts.MAPTYPE,
-                                               VtnServiceJsonConsts.OFS_MAP);
+                                               VtnServiceJsonConsts.PORTMAP);
                        } else if (UncStructIndexEnum.ValVbrIfMapType.UPLL_IF_VLAN_MAP
                                        .getValue().equals(
                                                        IpcDataUnitWrapper.getIpcStructUint8Value(
@@ -6827,7 +6839,7 @@ public class IpcLogicalResponseFactory {
                                                                        VtnServiceIpcConsts.MAP_TYPE))) {
                                setValueToJsonObject(validBit, vtnStation,
                                                VtnServiceJsonConsts.MAPTYPE,
-                                               VtnServiceJsonConsts.VLAN_MAP);
+                                               VtnServiceJsonConsts.VLANMAP);
                        }
                        LOG.debug("MapType :"
                                        + IpcDataUnitWrapper.getIpcStructUint8Value(
@@ -7544,24 +7556,24 @@ public class IpcLogicalResponseFactory {
                } else {
                        vtnStationsArray = new JsonArray();
                        LOG.debug("Skip Key Type, Key Structure and Count of VTN-Stations");
-                       for (int index = 3; index < responsePacket.length; ) {
+                       for (int index = 3; index < responsePacket.length;) {
 
                                vtnStation = new JsonObject();
                                byte validBit;
-                                                               
+
                                final IpcStruct valVtnstationControllerSt = (IpcStruct) responsePacket[index++];
                                createVtnStationConstJson(vtnStation, valVtnstationControllerSt);
-               
-                               if (opType.equalsIgnoreCase(VtnServiceJsonConsts.DETAIL)) {
-                                        LOG.debug("op : detail");
-                                        final IpcStruct valVtnstationControllerStat = (IpcStruct) responsePacket[index++];
 
-                                        final JsonObject vtnStationStats = new JsonObject();
-                                        addVtnStationStatsData(vtnStationStats,
-                                                        valVtnstationControllerStat);
-                                        vtnStation.add(VtnServiceJsonConsts.STATISTICS,
-                                                        vtnStationStats);
-                                }
+                               if (opType.equalsIgnoreCase(VtnServiceJsonConsts.DETAIL)) {
+                                       LOG.debug("op : detail");
+                                       final IpcStruct valVtnstationControllerStat = (IpcStruct) responsePacket[index++];
+
+                                       final JsonObject vtnStationStats = new JsonObject();
+                                       addVtnStationStatsData(vtnStationStats,
+                                                       valVtnstationControllerStat);
+                                       vtnStation.add(VtnServiceJsonConsts.STATISTICS,
+                                                       vtnStationStats);
+                               }
 
                                // for ipaddrs parameter
                                validBit = valVtnstationControllerSt
@@ -7583,8 +7595,9 @@ public class IpcLogicalResponseFactory {
                                                                                .getIpcDataUnitValue(responsePacket[index++]));
                                                ipaddrsArray.add(ipaddrs);
                                        }
-                                       if(ipaddrsArray.size() > 0){
-                                               vtnStation.add(VtnServiceJsonConsts.IPADDRS, ipaddrsArray);                                             
+                                       if (ipaddrsArray.size() > 0) {
+                                               vtnStation.add(VtnServiceJsonConsts.IPADDRS,
+                                                               ipaddrsArray);
                                        }
                                        LOG.debug("count of ipv4 address : " + ipv4_count);
 
@@ -7599,11 +7612,9 @@ public class IpcLogicalResponseFactory {
                                                .ordinal()
                                                && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
                                                                .ordinal()) {
-                                       final int ipv6_count = Integer
-                                                       .parseInt(IpcDataUnitWrapper
-                                                                       .getIpcStructUint32Value(
-                                                                                       valVtnstationControllerSt,
-                                                                                       VtnServiceIpcConsts.IPV6_COUNT));
+                                       final int ipv6_count = Integer.parseInt(IpcDataUnitWrapper
+                                                       .getIpcStructUint32Value(valVtnstationControllerSt,
+                                                                       VtnServiceIpcConsts.IPV6_COUNT));
                                        final JsonArray ipaddrsArray = new JsonArray();
                                        for (int i = 0; i < ipv6_count; i++) {
                                                final JsonPrimitive ipaddrs = new JsonPrimitive(
@@ -7611,10 +7622,11 @@ public class IpcLogicalResponseFactory {
                                                                                .getIpcDataUnitValue(responsePacket[index++]));
                                                ipaddrsArray.add(ipaddrs);
                                        }
-                                       if(ipaddrsArray.size() > 0){
-                                               vtnStation.add(VtnServiceJsonConsts.IPV6ADDRS, ipaddrsArray);                                           
+                                       if (ipaddrsArray.size() > 0) {
+                                               vtnStation.add(VtnServiceJsonConsts.IPV6ADDRS,
+                                                               ipaddrsArray);
                                        }
-                                       LOG.debug("count of ip64 address : " + ipv6_count);
+                                       LOG.debug("count of ipv6 address : " + ipv6_count);
                                }
 
                                // add current json object to array, if it has been initialized
@@ -7863,4 +7875,1715 @@ public class IpcLogicalResponseFactory {
                LOG.trace("Complete getIpRouteResponse");
                return root;
        }
+
+       // U12 Implementaion
+
+       /**
+        * Used for Vtnmapping Response
+        * 
+        * @param responsePacket
+        * @param requestBody
+        * @param getType
+        * @return JsonObject
+        */
+       public JsonObject getVtnMappingResponse(final IpcDataUnit[] responsePacket,
+                       final JsonObject requestBody, final String getType) {
+
+               LOG.trace("Start getVtnMappingResponse");
+               final JsonObject root = new JsonObject();
+               JsonObject vtnMapping = null;
+               JsonArray vtnMappingArray = null;               
+               JsonArray vtnMappingInfosJsonArray = null;
+
+               LOG.debug("getType: " + getType);
+               String rootJsonName;
+               /*
+                * get type (show or list) will be required to resolve root json name
+                * here it will be mapping for show and mappings for list
+                */
+               if (getType.equals(VtnServiceJsonConsts.SHOW)) {
+                       rootJsonName = VtnServiceJsonConsts.MAPPING;
+               } else {
+                       rootJsonName = VtnServiceJsonConsts.MAPPINGS;
+                       // json array will be required for list type of cases
+                       vtnMappingArray = new JsonArray();
+               }
+               LOG.debug("Json Name :" + rootJsonName);
+
+               String opType = VtnServiceJsonConsts.NORMAL;
+               if (requestBody.has(VtnServiceJsonConsts.OP)) {
+                       opType = requestBody.get(VtnServiceJsonConsts.OP).getAsString();
+               }
+
+               for (int index = 0; index < responsePacket.length; index++) {
+                       vtnMapping = new JsonObject();
+                       LOG.debug("initial index :" + index);
+                       // ignore key-type
+                       index++;
+                       /*
+                        * add mandatory informations from key structure
+                        */
+                       LOG.debug("domainId index :" + index);
+                       final IpcStruct keyVtnControllerStruct = (IpcStruct) responsePacket[index++];
+                       final String controllerId = IpcDataUnitWrapper
+                                       .getIpcStructUint8ArrayValue(keyVtnControllerStruct,
+                                                       VtnServiceIpcConsts.CONTROLLERNAME);
+                       final String domainId = IpcDataUnitWrapper
+                                       .getIpcStructUint8ArrayValue(keyVtnControllerStruct,
+                                                       VtnServiceIpcConsts.DOMAINID);
+
+                       vtnMapping.addProperty(VtnServiceJsonConsts.MAPPINGID, controllerId
+                                       + VtnServiceJsonConsts.HYPHEN + domainId);
+
+                       vtnMapping.addProperty(VtnServiceJsonConsts.CONTROLLERID,
+                                       controllerId);
+                       vtnMapping.addProperty(VtnServiceJsonConsts.DOMAINID, domainId);
+                       // get count of value structure
+                       LOG.debug("count index :" + index);
+                       final int count = Integer.valueOf(IpcDataUnitWrapper
+                                       .getIpcDataUnitValue(responsePacket[index++]));
+
+                       if (opType.equalsIgnoreCase(VtnServiceJsonConsts.DETAIL)
+                                       || getType.equalsIgnoreCase(VtnServiceJsonConsts.SHOW)) {
+                               vtnMappingInfosJsonArray = new JsonArray();
+
+                               for (int valIndex = 0; valIndex < count; valIndex++) {
+                                       final JsonObject vtnMappingInfojsonObject = new JsonObject();
+                                       /*
+                                        * this part is always required in Show, but not required in
+                                        * List + "normal" op type
+                                        */
+
+                                       byte validBit;
+                                       /*
+                                        * add valid informations from value structure
+                                        */
+                                       LOG.debug("valVtnMappingStruct index :" + index);
+                                       final IpcStruct valVtnMappingStruct = (IpcStruct) responsePacket[index++];
+                                       validBit = valVtnMappingStruct
+                                                       .getByte(
+                                                                       VtnServiceIpcConsts.VALID,
+                                                                       UncStructIndexEnum.valVtnMappingControllerStIndex.UPLL_IDX_SWITCH_ID_VMCS
+                                                                                       .ordinal());
+                                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                                       .ordinal()
+                                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                                       .ordinal()) {
+                                               setValueToJsonObject(validBit,
+                                                               vtnMappingInfojsonObject,
+                                                               VtnServiceJsonConsts.SWITCHID,
+                                                               IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
+                                                                               valVtnMappingStruct,
+                                                                               VtnServiceIpcConsts.SWITCHID));
+                                       }
+                                       validBit = valVtnMappingStruct
+                                                       .getByte(
+                                                                       VtnServiceIpcConsts.VALID,
+                                                                       UncStructIndexEnum.valVtnMappingControllerStIndex.UPLL_IDX_PORT_NAME_VMCS
+                                                                                       .ordinal());
+                                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                                       .ordinal()
+                                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                                       .ordinal()) {
+                                               setValueToJsonObject(validBit,
+                                                               vtnMappingInfojsonObject,
+                                                               VtnServiceJsonConsts.PORTNAME,
+                                                               IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
+                                                                               valVtnMappingStruct,
+                                                                               VtnServiceIpcConsts.PORTNAME));
+                                       }
+
+                                       validBit = valVtnMappingStruct
+                                                       .getByte(
+                                                                       VtnServiceIpcConsts.VALID,
+                                                                       UncStructIndexEnum.valVtnMappingControllerStIndex.UPLL_IDX_LOGICAL_PORT_ID_VMCS
+                                                                                       .ordinal());
+                                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                                       .ordinal()
+                                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                                       .ordinal()) {
+                                               setValueToJsonObject(validBit,
+                                                               vtnMappingInfojsonObject,
+                                                               VtnServiceJsonConsts.LOGICAL_PORT_ID,
+                                                               IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
+                                                                               valVtnMappingStruct,
+                                                                               VtnServiceIpcConsts.LOGICAL_PORT_ID));
+                                       }
+
+                                       validBit = valVtnMappingStruct
+                                                       .getByte(
+                                                                       VtnServiceIpcConsts.VALID,
+                                                                       UncStructIndexEnum.valVtnMappingControllerStIndex.UPLL_IDX_VLAN_ID_VMCS
+                                                                                       .ordinal());
+                                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                                       .ordinal()
+                                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                                       .ordinal()) {
+                                               
+                                               
+                                               String vLanIdValue = IpcDataUnitWrapper.getIpcStructUint16Value(
+                                                               valVtnMappingStruct,
+                                                               VtnServiceIpcConsts.VLANID);
+                                               
+                                               if (!vLanIdValue.equalsIgnoreCase(VtnServiceJsonConsts.VLAN_ID_65535)){
+                                                       setValueToJsonObject(validBit,
+                                                                       vtnMappingInfojsonObject,
+                                                                       VtnServiceJsonConsts.VLANID, vLanIdValue);
+                                               }
+                                       }
+                                       validBit = valVtnMappingStruct
+                                                       .getByte(
+                                                                       VtnServiceIpcConsts.VALID,
+                                                                       UncStructIndexEnum.valVtnMappingControllerStIndex.UPLL_IDX_TAGGED_VMCS
+                                                                                       .ordinal());
+
+                                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                                       .ordinal()
+                                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                                       .ordinal()) {
+                                               if (IpcDataUnitWrapper
+                                                               .getIpcStructUint8Value(valVtnMappingStruct,
+                                                                               VtnServiceIpcConsts.TAGGED)
+                                                               .equals(UncStructIndexEnum.vlan_tagged.UPLL_VLAN_TAGGED
+                                                                               .getValue())) {
+                                                       setValueToJsonObject(validBit,
+                                                                       vtnMappingInfojsonObject,
+                                                                       VtnServiceJsonConsts.TAGGED,
+                                                                       VtnServiceJsonConsts.TRUE);
+                                               } else if (IpcDataUnitWrapper
+                                                               .getIpcStructUint8Value(valVtnMappingStruct,
+                                                                               VtnServiceIpcConsts.TAGGED)
+                                                               .equals(UncStructIndexEnum.vlan_tagged.UPLL_VLAN_UNTAGGED
+                                                                               .getValue())) {
+                                                       setValueToJsonObject(validBit,
+                                                                       vtnMappingInfojsonObject,
+                                                                       VtnServiceJsonConsts.TAGGED,
+                                                                       VtnServiceJsonConsts.FALSE);
+                                               }
+                                               LOG.debug("Tagged :"
+                                                               + IpcDataUnitWrapper.getIpcStructUint8Value(
+                                                                               valVtnMappingStruct,
+                                                                               VtnServiceIpcConsts.TAGGED));
+                                       }
+
+                                       validBit = valVtnMappingStruct
+                                                       .getByte(
+                                                                       VtnServiceIpcConsts.VALID,
+                                                                       UncStructIndexEnum.valVtnMappingControllerStIndex.UPLL_IDX_MAP_TYPE_VMCS
+                                                                                       .ordinal());
+                                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                                       .ordinal()
+                                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                                       .ordinal()) {
+                       
+                                       if (UncStructIndexEnum.ValVbrIfMapType.UPLL_IF_OFS_MAP.getValue()
+                                                               .equals(IpcDataUnitWrapper.getIpcStructUint8Value(
+                                                                               valVtnMappingStruct,
+                                                                               VtnServiceIpcConsts.MAP_TYPE))) {
+                                                       setValueToJsonObject(validBit, vtnMappingInfojsonObject,
+                                                                       VtnServiceJsonConsts.MAPTYPE,
+                                                                       VtnServiceJsonConsts.PORTMAP);
+                                               } else if (UncStructIndexEnum.ValVbrIfMapType.UPLL_IF_VLAN_MAP
+                                                               .getValue().equals(
+                                                                               IpcDataUnitWrapper.getIpcStructUint8Value(
+                                                                                               valVtnMappingStruct,
+                                                                                               VtnServiceIpcConsts.MAP_TYPE))) {
+                                                       setValueToJsonObject(validBit, vtnMappingInfojsonObject,
+                                                                       VtnServiceJsonConsts.MAPTYPE,
+                                                                       VtnServiceJsonConsts.VLANMAP);
+                                               }else {
+                                                       LOG.debug("MapType : invalid");
+                                               }
+                                               LOG.debug("MapType :"
+                                                               + IpcDataUnitWrapper.getIpcStructUint8Value(
+                                                                               valVtnMappingStruct,
+                                                                               VtnServiceIpcConsts.MAP_TYPE));
+                                       
+                                       }
+                                       validBit = valVtnMappingStruct
+                                                       .getByte(
+                                                                       VtnServiceIpcConsts.VALID,
+                                                                       UncStructIndexEnum.valVtnMappingControllerStIndex.UPLL_IDX_VBR_NAME_VMCS
+                                                                                       .ordinal());
+                                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                                       .ordinal()
+                                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                                       .ordinal()) {
+                                               setValueToJsonObject(validBit,
+                                                               vtnMappingInfojsonObject,
+                                                               VtnServiceJsonConsts.VBRNAME,
+                                                               IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
+                                                                               valVtnMappingStruct,
+                                                                               VtnServiceIpcConsts.VBRNAME));
+                                       }
+
+                                       validBit = valVtnMappingStruct
+                                                       .getByte(
+                                                                       VtnServiceIpcConsts.VALID,
+                                                                       UncStructIndexEnum.valVtnMappingControllerStIndex.UPLL_IDX_VBR_IF_NAME_VMCS
+                                                                                       .ordinal());
+                                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                                       .ordinal()
+                                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                                       .ordinal()) {
+                                               setValueToJsonObject(validBit,
+                                                               vtnMappingInfojsonObject,
+                                                               VtnServiceJsonConsts.IFNAME,
+                                                               IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
+                                                                               valVtnMappingStruct,
+                                                                               VtnServiceIpcConsts.VBRIFNAME));
+                                       }
+
+                                       vtnMappingInfosJsonArray.add(vtnMappingInfojsonObject);
+                               }
+                               vtnMapping.add(VtnServiceJsonConsts.MAPPINGINFOS,
+                                               vtnMappingInfosJsonArray);      
+                       } else {
+                               vtnMapping.remove(VtnServiceJsonConsts.CONTROLLERID);
+                               vtnMapping.remove(VtnServiceJsonConsts.DOMAINID);
+                               index = index + count;
+                       }
+                       if (null != vtnMappingArray) {
+                               vtnMappingArray.add(vtnMapping);
+                       }
+               }
+               /*
+                * finally add either array or single object to root json object and
+                * return the same.
+                */
+               if (null != vtnMappingArray) {
+                       LOG.debug("List VTN Mapping JSON :" + vtnMappingArray);
+                       root.add(rootJsonName, vtnMappingArray);
+               } else {
+                       LOG.debug("Show VTN Mapping JSON :" + vtnMapping);
+                       root.add(rootJsonName, vtnMapping);
+               }
+               LOG.debug("response Json: " + root.toString());
+               LOG.trace("Complete getVtnMappingResponse");
+
+               return root;
+       }
+
+       /**
+        * Used for Show VTN Data Flow response
+        * 
+        * @param responsePacket
+        * @param requestBody
+        * @param getType
+        * @return JsonObject
+        */
+       public JsonObject getVtnDataFlowResponse(
+                       final IpcDataUnit[] responsePacket, final JsonObject requestBody,
+                       final String getType) {
+               LOG.trace("Start getVtnDataFlowResponse");
+               final JsonObject root = new JsonObject();
+               final JsonArray vtnDataFlowArray = new JsonArray();
+               if (responsePacket.length != 0) {
+                       int index = 2;
+                       final int totalFlowCount = Integer.parseInt(IpcDataUnitWrapper
+                                       .getIpcDataUnitValue(responsePacket[index++]));
+
+                       for (int i = 0; i < totalFlowCount; i++) {
+                               final IpcStruct valVtnDataFlowStruct = (IpcStruct) responsePacket[index++];
+                               LOG.debug("totalFlowCount:" + totalFlowCount);
+                               final JsonObject vtnDataflow = new JsonObject();
+                               byte validBit = 0;
+                               validBit = valVtnDataFlowStruct
+                                               .getByte(
+                                                               VtnServiceIpcConsts.VALID,
+                                                               UncStructIndexEnum.valVtnDataflowIndex.UPLL_IDX_REASON_VVD
+                                                                               .ordinal());
+                               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                               .ordinal()
+                                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                               .ordinal()) {
+                                       {
+                                               final int reason = Integer.parseInt(IpcDataUnitWrapper
+                                                               .getIpcStructUint32Value(valVtnDataFlowStruct,
+                                                                               VtnServiceIpcConsts.REASON));
+                                               // getting type of reason field a
+                                               String reasonForJson = VtnServiceConsts.EMPTY_STRING;
+                                               if (reason == UncStructIndexEnum.UncDataflowReason.UNC_DF_RES_SUCCESS
+                                                               .ordinal()) {
+                                                       reasonForJson = VtnServiceJsonConsts.REASON_SUCCESS;
+                                               } else if (reason == UncStructIndexEnum.UncDataflowReason.UNC_DF_RES_OPERATION_NOT_SUPPORTED
+                                                               .ordinal()) {
+                                                       reasonForJson = VtnServiceJsonConsts.REASON_NOT_SUPP;
+                                               } else if (reason == UncStructIndexEnum.UncDataflowReason.UNC_DF_RES_EXCEEDS_FLOW_LIMIT
+                                                               .ordinal()) {
+                                                       reasonForJson = VtnServiceJsonConsts.REASON_EXCD_LIM;
+                                               } else if (reason == UncStructIndexEnum.UncDataflowReason.UNC_DF_RES_CTRLR_DISCONNECTED
+                                                               .ordinal()) {
+                                                       reasonForJson = VtnServiceJsonConsts.REASON_CTRL_DISC;
+                                               } else if (reason == UncStructIndexEnum.UncDataflowReason.UNC_DF_RES_EXCEEDS_HOP_LIMIT
+                                                               .ordinal()) {
+                                                       reasonForJson = VtnServiceJsonConsts.REASON_EXCD_HOP;
+                                               } else if (reason == UncStructIndexEnum.UncDataflowReason.UNC_DF_RES_DST_NOT_REACHED
+                                                               .ordinal()) {
+                                                       reasonForJson = VtnServiceJsonConsts.REASON_DST_NOT_REACHED;
+                                               } else if (reason == UncStructIndexEnum.UncDataflowReason.UNC_DF_RES_FLOW_NOT_FOUND
+                                                               .ordinal()) {
+                                                       reasonForJson = VtnServiceJsonConsts.REASON_FLOW_NOTFOUND;
+                                               } else if (reason == UncStructIndexEnum.UncDataflowReason.UNC_DF_RES_SYSTEM_ERROR
+                                                               .ordinal()) {
+                                                       reasonForJson = VtnServiceJsonConsts.REASON_SYS_ERROR;
+                                               }
+                                               // assigning reason field in dataflow Json
+                                               setValueToJsonObject(validBit, vtnDataflow,
+                                                               VtnServiceJsonConsts.REASON, reasonForJson);
+                                               LOG.debug("reason:" + reasonForJson);
+                                       }
+                               }
+                               final JsonArray ctrlDomainDataFlowArray = new JsonArray();
+                               validBit = valVtnDataFlowStruct
+                                               .getByte(
+                                                               VtnServiceIpcConsts.VALID,
+                                                               UncStructIndexEnum.valVtnDataflowIndex.UPLL_IDX_CTRLR_DOMAIN_COUNT_VVD
+                                                                               .ordinal());
+                               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                               .ordinal()
+                                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                               .ordinal()) {
+                                       final int controllerDomainCount = Integer
+                                                       .parseInt(IpcDataUnitWrapper
+                                                                       .getIpcStructUint32Value(
+                                                                                       valVtnDataFlowStruct,
+                                                                                       VtnServiceIpcConsts.CONTROLLER_DOMAIN_COUNT));
+                                       LOG.debug("Controller Domain Count:"
+                                                       + controllerDomainCount);
+
+                                       for (int j = 0; j < controllerDomainCount; j++) {
+                                               final AtomicInteger atomicIndex = new AtomicInteger(
+                                                               index);
+                                               ctrlDomainDataFlowArray
+                                                               .add(getControllerDomainDataFlow(
+                                                                               responsePacket, atomicIndex,
+                                                                               requestBody));
+                                               index = atomicIndex.get();
+                                       }
+
+                                       vtnDataflow.add(
+                                                       VtnServiceJsonConsts.CONTROLLER_DOMAIN_DATAFLOWS,
+                                                       ctrlDomainDataFlowArray);
+                                       LOG.debug("VTN Data Flow Json:" + vtnDataflow);
+                               }
+                               vtnDataFlowArray.add(vtnDataflow);
+                               LOG.debug("vtn dataFlowArray Json:" + vtnDataFlowArray);
+                       }
+               }
+               root.add(VtnServiceJsonConsts.DATAFLOWS, vtnDataFlowArray);
+               LOG.debug("root Json :" + root);
+               LOG.trace("Complete getVtnDataFlowResponse");
+               return root;
+
+       }
+
+       /**
+        * get ControllerDomainDataFlow method is Used for VtnDataFlow Response
+        * 
+        * @param responsePacket
+        * @param requestBody
+        * @param getType
+        * @return JsonObject
+        */
+       private JsonObject getControllerDomainDataFlow(
+                       final IpcDataUnit[] responsePacket, final AtomicInteger index,
+                       final JsonObject requestBody) {
+               LOG.trace("getControllerDomainDataFlow started");
+               byte validBit;
+               final JsonObject controllerDomainFlow = new JsonObject();
+               final IpcStruct valVtnDataFlowCmnStruct = (IpcStruct) responsePacket[index
+                               .getAndIncrement()];
+               validBit = valVtnDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncStructIndexEnum.valVtnDataflowCmnIndex.UPLL_IDX_CONTROLLER_ID_VVDC
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, controllerDomainFlow,
+                                       VtnServiceJsonConsts.CONTROLLERID,
+                                       IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
+                                                       valVtnDataFlowCmnStruct,
+                                                       VtnServiceIpcConsts.CONTROLLER_ID));
+               }
+
+               validBit = valVtnDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncStructIndexEnum.valVtnDataflowCmnIndex.UPLL_IDX_CONTROLLER_TYPE_VVDC
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       if (IpcDataUnitWrapper
+                                       .getIpcStructUint8Value(valVtnDataFlowCmnStruct,
+                                                       VtnServiceIpcConsts.CONTROLER_TYPE)
+                                       .equals(UncPhysicalStructIndexEnum.UpplTypeIndex.UNC_CT_UNKNOWN
+                                                       .getValue())) {
+                               setValueToJsonObject(validBit, controllerDomainFlow,
+                                               VtnServiceJsonConsts.CONTROLER_TYPE,
+                                               VtnServiceJsonConsts.BYPASS);
+
+                       } else if (IpcDataUnitWrapper
+                                       .getIpcStructUint8Value(valVtnDataFlowCmnStruct,
+                                                       VtnServiceIpcConsts.CONTROLER_TYPE).equals(
+                                                       UncPhysicalStructIndexEnum.UpplTypeIndex.UNC_CT_PFC
+                                                                       .getValue())) {
+                               setValueToJsonObject(validBit, controllerDomainFlow,
+                                               VtnServiceJsonConsts.CONTROLER_TYPE,
+                                               VtnServiceJsonConsts.PFC);
+
+                       } else if (IpcDataUnitWrapper
+                                       .getIpcStructUint8Value(valVtnDataFlowCmnStruct,
+                                                       VtnServiceIpcConsts.CONTROLER_TYPE).equals(
+                                                       UncPhysicalStructIndexEnum.UpplTypeIndex.UNC_CT_VNP
+                                                                       .getValue())) {
+                               setValueToJsonObject(validBit, controllerDomainFlow,
+                                               VtnServiceJsonConsts.CONTROLER_TYPE,
+                                               VtnServiceJsonConsts.VNP);
+
+                       } else {
+                               LOG.debug("Controller Type invalid");
+                       }
+                       LOG.debug("Controller Type :"
+                                       + IpcDataUnitWrapper.getIpcStructUint8Value(
+                                                       valVtnDataFlowCmnStruct,
+                                                       VtnServiceIpcConsts.CONTROLER_TYPE));
+               }
+
+               validBit = valVtnDataFlowCmnStruct.getByte(VtnServiceIpcConsts.VALID,
+                               UncStructIndexEnum.valVtnDataflowCmnIndex.UPLL_IDX_FLOW_ID_VVDC
+                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, controllerDomainFlow,
+                                       VtnServiceJsonConsts.FLOW_ID,
+                                       IpcDataUnitWrapper.getIpcStructUint64Value(
+                                                       valVtnDataFlowCmnStruct,
+                                                       VtnServiceIpcConsts.FLOW_ID));
+               }
+
+               validBit = valVtnDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncStructIndexEnum.valVtnDataflowCmnIndex.UPLL_IDX_CREATED_TIME_VVDC
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, controllerDomainFlow,
+                                       VtnServiceJsonConsts.CREATEDTIME,
+                                       IpcDataUnitWrapper.getIpcStructUint64Value(
+                                                       valVtnDataFlowCmnStruct,
+                                                       VtnServiceIpcConsts.CREATED_TIME));
+               }
+
+               validBit = valVtnDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncStructIndexEnum.valVtnDataflowCmnIndex.UPLL_IDX_IDLE_TIMEOUT_VVDC
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, controllerDomainFlow,
+                                       VtnServiceJsonConsts.IDLETIMEOUT,
+                                       IpcDataUnitWrapper.getIpcStructUint32Value(
+                                                       valVtnDataFlowCmnStruct,
+                                                       VtnServiceIpcConsts.IDLE_TIMEOUT));
+               }
+
+               validBit = valVtnDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncStructIndexEnum.valVtnDataflowCmnIndex.UPLL_IDX_HARD_TIMEOUT_VVDC
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, controllerDomainFlow,
+                                       VtnServiceJsonConsts.HARDTIMEOUT,
+                                       IpcDataUnitWrapper.getIpcStructUint32Value(
+                                                       valVtnDataFlowCmnStruct,
+                                                       VtnServiceIpcConsts.HARD_TIMEOUT));
+               }
+
+               validBit = valVtnDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncStructIndexEnum.valVtnDataflowCmnIndex.UPLL_IDX_INGRESS_VNODE_VVDC
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, controllerDomainFlow,
+                                       VtnServiceJsonConsts.INGRESS_VNODE_NAME,
+                                       IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
+                                                       valVtnDataFlowCmnStruct,
+                                                       VtnServiceIpcConsts.INGRESS_VNODE));
+               }
+
+               validBit = valVtnDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncStructIndexEnum.valVtnDataflowCmnIndex.UPLL_IDX_INGRESS_VINTERFACE_VVDC
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, controllerDomainFlow,
+                                       VtnServiceJsonConsts.INGRESS_IF_NAME,
+                                       IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
+                                                       valVtnDataFlowCmnStruct,
+                                                       VtnServiceIpcConsts.INGRESS_VINTERFACE));
+               }
+
+               validBit = valVtnDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncStructIndexEnum.valVtnDataflowCmnIndex.UPLL_IDX_INGRESS_SWITCH_ID_VVDC
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, controllerDomainFlow,
+                                       VtnServiceJsonConsts.INGRESS_SWITCH_ID,
+                                       IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
+                                                       valVtnDataFlowCmnStruct,
+                                                       VtnServiceIpcConsts.INGRESS_SWITCH_ID));
+               }
+
+               validBit = valVtnDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncStructIndexEnum.valVtnDataflowCmnIndex.UPLL_IDX_INGRESS_PORT_ID_VVDC
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, controllerDomainFlow,
+                                       VtnServiceJsonConsts.INGRESS_PORT_NAME,
+                                       IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
+                                                       valVtnDataFlowCmnStruct,
+                                                       VtnServiceIpcConsts.INGRESS_PORT_ID));
+               }
+
+               validBit = valVtnDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncStructIndexEnum.valVtnDataflowCmnIndex.UPLL_IDX_INGRESS_LOGICAL_PORT_ID_VVDC
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, controllerDomainFlow,
+                                       VtnServiceJsonConsts.INGRESS_LOGICAL_PORT_ID,
+                                       IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
+                                                       valVtnDataFlowCmnStruct,
+                                                       VtnServiceIpcConsts.INGRESS_LOGICAL_PORT_ID));
+               }
+
+               validBit = valVtnDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncStructIndexEnum.valVtnDataflowCmnIndex.UPLL_IDX_INGRESS_DOMAIN_VVDC
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, controllerDomainFlow,
+                                       VtnServiceJsonConsts.INGRESS_DOMAIN_ID,
+                                       IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
+                                                       valVtnDataFlowCmnStruct,
+                                                       VtnServiceIpcConsts.INGRESS_DOMAIN));
+               }
+
+               validBit = valVtnDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncStructIndexEnum.valVtnDataflowCmnIndex.UPLL_IDX_EGRESS_VNODE_VVDC
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, controllerDomainFlow,
+                                       VtnServiceJsonConsts.EGRESS_VNODE_NAME,
+                                       IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
+                                                       valVtnDataFlowCmnStruct,
+                                                       VtnServiceIpcConsts.EGRESS_VNODE));
+               }
+
+               validBit = valVtnDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncStructIndexEnum.valVtnDataflowCmnIndex.UPLL_IDX_EGRESS_VINTERFACE_VVDC
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, controllerDomainFlow,
+                                       VtnServiceJsonConsts.EGRESS_IF_NAME,
+                                       IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
+                                                       valVtnDataFlowCmnStruct,
+                                                       VtnServiceIpcConsts.EGRESS_VINTERFACE));
+               }
+
+               validBit = valVtnDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncStructIndexEnum.valVtnDataflowCmnIndex.UPLL_IDX_EGRESS_SWITCH_ID_VVDC
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, controllerDomainFlow,
+                                       VtnServiceJsonConsts.EGRESS_SWITCH_ID,
+                                       IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
+                                                       valVtnDataFlowCmnStruct,
+                                                       VtnServiceIpcConsts.EGRESS_SWITCH_ID));
+               }
+
+               validBit = valVtnDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncStructIndexEnum.valVtnDataflowCmnIndex.UPLL_IDX_EGRESS_PORT_ID_VVDC
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, controllerDomainFlow,
+                                       VtnServiceJsonConsts.EGRESS_PORT_NAME,
+                                       IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
+                                                       valVtnDataFlowCmnStruct,
+                                                       VtnServiceIpcConsts.EGRESS_PORT_ID));
+               }
+
+               validBit = valVtnDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncStructIndexEnum.valVtnDataflowCmnIndex.UPLL_IDX_EGRESS_LOGICAL_PORT_ID_VVDC
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, controllerDomainFlow,
+                                       VtnServiceJsonConsts.EGRESS_LOGICAL_PORT_ID,
+                                       IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
+                                                       valVtnDataFlowCmnStruct,
+                                                       VtnServiceIpcConsts.EGRESS_LOGICAL_PORT_ID));
+               }
+
+               validBit = valVtnDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncStructIndexEnum.valVtnDataflowCmnIndex.UPLL_IDX_EGRESS_DOMAIN_VVDC
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, controllerDomainFlow,
+                                       VtnServiceJsonConsts.EGRESS_DOMAIN_ID,
+                                       IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
+                                                       valVtnDataFlowCmnStruct,
+                                                       VtnServiceIpcConsts.EGRESS_DOMAIN));
+               }
+
+               validBit = valVtnDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncStructIndexEnum.valVtnDataflowCmnIndex.UPLL_IDX_MATCH_COUNT_VVDC
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+
+                       controllerDomainFlow.add(
+                                       VtnServiceJsonConsts.MATCH,
+                                       getDataFlowMatchInfo(responsePacket, index, validBit,
+                                                       controllerDomainFlow, valVtnDataFlowCmnStruct));
+
+               }
+               validBit = valVtnDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncStructIndexEnum.valVtnDataflowCmnIndex.UPLL_IDX_ACTION_COUNT_VVDC
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       controllerDomainFlow.add(
+                                       VtnServiceJsonConsts.ACTION,
+                                       getDataFlowActionInfo(responsePacket, index,
+                                                       controllerDomainFlow, valVtnDataFlowCmnStruct));
+                       LOG.debug(" Controller domain data flow Json :"
+                                       + controllerDomainFlow);
+               }
+
+               validBit = valVtnDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncStructIndexEnum.valVtnDataflowCmnIndex.UPLL_IDX_PATH_INFO_COUNT_VVDC
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+
+                       controllerDomainFlow.add(
+                                       VtnServiceJsonConsts.PATHINFOS,
+                                       getDataFlowPathInfo(responsePacket, index,
+                                                       valVtnDataFlowCmnStruct));
+                       LOG.debug(" Controller domain data flow Json :"
+                                       + controllerDomainFlow);
+               }
+               LOG.trace("getControllerDomainDataFlow completed");
+               return controllerDomainFlow;
+       }
+
+       /**
+        * This method is Used to generate Flow path info Json
+        * 
+        * @param responsePacket
+        * @param requestBody
+        * @param getType
+        * @return JsonObject
+        */
+       private JsonArray getDataFlowPathInfo(final IpcDataUnit[] responsePacket,
+                       final AtomicInteger index, final IpcStruct valVtnDataFlowCmnStruct) {
+               LOG.trace("getDataFlowPathInfo stated");
+               final JsonArray pathInfoArray = new JsonArray();
+               final int pathInfoCount = Integer.parseInt(IpcDataUnitWrapper
+                               .getIpcStructUint32Value(valVtnDataFlowCmnStruct,
+                                               VtnServiceIpcConsts.PATH_INFO_COUNT));
+               LOG.debug("path_info_count:" + pathInfoCount);
+               for (int k = 0; k < pathInfoCount; k++) {
+                       final JsonObject pathInfoBoundry = new JsonObject();
+                       byte validBit;
+                       final IpcStruct valVtnDataFlowPathInfo = (IpcStruct) responsePacket[index
+                                       .getAndIncrement()];
+                       validBit = valVtnDataFlowPathInfo
+                                       .getByte(
+                                                       VtnServiceIpcConsts.VALID,
+                                                       UncStructIndexEnum.valVtnDataflowPathInfo.UPLL_IDX_IN_VNODE_VVDPI
+                                                                       .ordinal());
+                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                       .ordinal()
+                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                       .ordinal()) {
+                               setValueToJsonObject(validBit, pathInfoBoundry,
+                                               VtnServiceJsonConsts.IN_VNODE_NAME,
+                                               IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
+                                                               valVtnDataFlowPathInfo,
+                                                               VtnServiceIpcConsts.IN_VNODE));
+
+                       }
+
+                       validBit = valVtnDataFlowPathInfo
+                                       .getByte(
+                                                       VtnServiceIpcConsts.VALID,
+                                                       UncStructIndexEnum.valVtnDataflowPathInfo.UPLL_IDX_IN_VIF_VVDPI
+                                                                       .ordinal());
+                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                       .ordinal()
+                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                       .ordinal()) {
+                               setValueToJsonObject(validBit, pathInfoBoundry,
+                                               VtnServiceJsonConsts.IN_IF_NAME,
+                                               IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
+                                                               valVtnDataFlowPathInfo,
+                                                               VtnServiceIpcConsts.IN_VIF));
+
+                       }
+
+                       validBit = valVtnDataFlowPathInfo
+                                       .getByte(
+                                                       VtnServiceIpcConsts.VALID,
+                                                       UncStructIndexEnum.valVtnDataflowPathInfo.UPLL_IDX_OUT_VNODE_VVDPI
+                                                                       .ordinal());
+                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                       .ordinal()
+                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                       .ordinal()) {
+                               setValueToJsonObject(validBit, pathInfoBoundry,
+                                               VtnServiceJsonConsts.OUT_VNODE_NAME,
+                                               IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
+                                                               valVtnDataFlowPathInfo,
+                                                               VtnServiceIpcConsts.OUT_VNODE));
+
+                       }
+
+                       validBit = valVtnDataFlowPathInfo
+                                       .getByte(
+                                                       VtnServiceIpcConsts.VALID,
+                                                       UncStructIndexEnum.valVtnDataflowPathInfo.UPLL_IDX_OUT_VIF_VVDPI
+                                                                       .ordinal());
+                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                       .ordinal()
+                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                       .ordinal()) {
+                               setValueToJsonObject(validBit, pathInfoBoundry,
+                                               VtnServiceJsonConsts.OUT_IF_NAME,
+                                               IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
+                                                               valVtnDataFlowPathInfo,
+                                                               VtnServiceIpcConsts.OUT_VIF));
+
+                       }
+
+                       validBit = valVtnDataFlowPathInfo
+                                       .getByte(
+                                                       VtnServiceIpcConsts.VALID,
+                                                       UncStructIndexEnum.valVtnDataflowPathInfo.UPLL_IDX_VLINK_FLAG_VVDPI
+                                                                       .ordinal());
+                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                       .ordinal()
+                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                       .ordinal()) {
+
+                               final int linkValue = Integer.parseInt(IpcDataUnitWrapper
+                                               .getIpcStructUint8Value(valVtnDataFlowPathInfo,
+                                                               VtnServiceIpcConsts.VLINK_FLAG));
+                               String link = VtnServiceConsts.EMPTY_STRING;
+                               if (linkValue == UncStructIndexEnum.valVtnDataflowPathInfoVlinkType.UPLL_DATAFLOW_PATH_VLINK_NOT_EXISTS
+                                               .ordinal()) {
+                                       link = VtnServiceJsonConsts.NOT_EXISTS;
+                               } else if (linkValue == UncStructIndexEnum.valVtnDataflowPathInfoVlinkType.UPLL_DATAFLOW_PATH_VLINK_EXISTS
+                                               .ordinal()) {
+                                       link = VtnServiceJsonConsts.EXISTS;
+                               }
+                               setValueToJsonObject(validBit, pathInfoBoundry,
+                                               VtnServiceJsonConsts.VLINK_FLAG, link);
+                       }
+                       validBit = valVtnDataFlowPathInfo
+                                       .getByte(
+                                                       VtnServiceIpcConsts.VALID,
+                                                       UncStructIndexEnum.valVtnDataflowPathInfo.UPLL_IDX_STATUS_VVDPI
+                                                                       .ordinal());
+                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                       .ordinal()
+                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                       .ordinal()) {
+
+                               final int statusValue = Integer.parseInt(IpcDataUnitWrapper
+                                               .getIpcStructUint8Value(valVtnDataFlowPathInfo,
+                                                               VtnServiceIpcConsts.STATUS));
+                               String status = VtnServiceConsts.EMPTY_STRING;
+                               if (statusValue == UncStructIndexEnum.valVtnDataflowPathInfoStatusType.UPLL_DATAFLOW_PATH_STATUS_NORMAL
+                                               .ordinal()) {
+                                       status = VtnServiceJsonConsts.NORMAL;
+                               } else if (statusValue == UncStructIndexEnum.valVtnDataflowPathInfoStatusType.UPLL_DATAFLOW_PATH_STATUS_DROP
+                                               .ordinal()) {
+                                       status = VtnServiceJsonConsts.DROP;
+                               }
+                               setValueToJsonObject(validBit, pathInfoBoundry,
+                                               VtnServiceJsonConsts.STATUS, status);
+
+                       }
+                       pathInfoArray.add(pathInfoBoundry);
+
+               }
+               LOG.debug("pathInfoArray Json:" + pathInfoArray);
+               LOG.trace("getDataFlowPathInfo completed");
+               return pathInfoArray;
+       }
+
+       /**
+        * This method is Used to generate Match Flow info Json
+        * 
+        * @param responsePacket
+        * @param requestBody
+        * @param getType
+        * @return JsonObject
+        */
+       private JsonObject getDataFlowMatchInfo(final IpcDataUnit[] responsePacket,
+                       final AtomicInteger index, final byte validBit,
+                       final JsonObject controlerFlow,
+                       final IpcStruct valDfDataFlowCmnStruct) {
+               LOG.trace("getDataFlowMatchInfo started");
+               final int matchCount = Integer.parseInt(IpcDataUnitWrapper
+                               .getIpcStructUint32Value(valDfDataFlowCmnStruct,
+                                               VtnServiceIpcConsts.MATCH_COUNT));
+               LOG.debug("MATCH_COUNT:" + matchCount);
+               // match JsonObject will hold all below jsonObject as per requiremnts
+               final JsonObject match = new JsonObject();
+
+               JsonArray inportJsonArray = null;
+               JsonArray srcMacJsonArray = null;
+               JsonArray dstMacJsonArray = null;
+               JsonArray srcMaskJsonArray = null;
+               JsonArray dstMaskJsonArray = null;
+               JsonArray macEtherTypeJsonArray = null;
+               JsonArray vlanIdJsonArray = null;
+               JsonArray vlanPriorityJsonArray = null;
+               JsonArray ipTosJsonArray = null;
+               JsonArray ipProtoJsonArray = null;
+               JsonArray ipDstAddrJsonArray = null;
+               JsonArray ipDstAddrMaskJsonArray = null;
+               JsonArray ipSrcAddrJsonArray = null;
+               JsonArray ipSrcAddrMaskJsonArray = null;
+               JsonArray l4DstPortIcmpTypeJsonArray = null;
+               JsonArray l4DstPortIcmpTypeMaskJsonArray = null;
+               JsonArray l4SrcPortIcmpTypeJsonArray = null;
+               JsonArray l4SrcPortIcmpTypeMaskJsonArray = null;
+               JsonArray ipV6DstAddJsonArray = null;
+               JsonArray ipV6DstAddrMaskJsonArray = null;
+               JsonArray ipV6SrcAddrJsonArray = null;
+               JsonArray ipV6SrcAddrMaskJsonArray = null;
+               JsonPrimitive element = null;
+               for (int i = 0; i < matchCount; i++) {
+                       final IpcStruct valDfFlowMatchStruct = (IpcStruct) responsePacket[index
+                                       .getAndIncrement()];
+
+                       final int matchtype = Integer.parseInt(IpcDataUnitWrapper
+                                       .getIpcStructUint32Value(valDfFlowMatchStruct,
+                                                       VtnServiceIpcConsts.MATCH_TYPE));
+                       LOG.debug("MATCH TYPE:" + matchtype);
+                       // match type will help in resolving response in match info
+                       if (matchtype == UncStructIndexEnum.UncDataflowFlowMatchType.UNC_MATCH_IN_PORT
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowMatchInPort = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+                               // set inport
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructUint32Value(valDfFlowMatchInPort,
+                                                               VtnServiceIpcConsts.IN_PORT).toString());
+
+                               if (null == inportJsonArray) {
+                                       inportJsonArray = new JsonArray();
+                               }
+                               inportJsonArray.add(element);
+                               LOG.debug("set validBit for in_port :" + validBit);
+
+                       } else if (matchtype == UncStructIndexEnum.UncDataflowFlowMatchType.UNC_MATCH_DL_DST
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowMatchDlAddr = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(IpcDataUnitWrapper.getMacAddress(
+                                               valDfFlowMatchDlAddr, VtnServiceIpcConsts.DL_ADDR));
+                               if (null == dstMacJsonArray) {
+                                       dstMacJsonArray = new JsonArray();
+                               }
+                               dstMacJsonArray.add(element);
+                               LOG.debug("set validbit for macdst :" + validBit);
+
+                               final String s = IpcDataUnitWrapper.getIpcStructUint8Value(
+                                               valDfFlowMatchDlAddr, VtnServiceIpcConsts.V_MASK);
+
+                               if (Integer.parseInt(s) == UncStructIndexEnum.Valid.UNC_VF_VALID
+                                               .ordinal()) {
+                                       element = new JsonPrimitive(IpcDataUnitWrapper
+                                                       .getMacAddress(valDfFlowMatchDlAddr,
+                                                                       VtnServiceIpcConsts.DL_ADDR_MASK)
+                                                       .toString());
+                                       if (null == dstMaskJsonArray) {
+                                               dstMaskJsonArray = new JsonArray();
+                                       }
+                                       dstMaskJsonArray.add(element);
+                                       LOG.debug("set validbit for macdst :" + validBit);
+                               }
+                       } else if (matchtype == UncStructIndexEnum.UncDataflowFlowMatchType.UNC_MATCH_DL_SRC
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowMatchDlAddr = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(IpcDataUnitWrapper.getMacAddress(
+                                               valDfFlowMatchDlAddr, VtnServiceIpcConsts.DL_ADDR)
+                                               .toString());
+                               if (null == srcMacJsonArray) {
+                                       srcMacJsonArray = new JsonArray();
+                               }
+                               srcMacJsonArray.add(element);
+                               LOG.debug("set validbit for macsrc  :" + validBit);
+
+                               final String s = IpcDataUnitWrapper.getIpcStructUint8Value(
+                                               valDfFlowMatchDlAddr, VtnServiceIpcConsts.V_MASK);
+
+                               if (Integer.parseInt(s) == UncStructIndexEnum.Valid.UNC_VF_VALID
+                                               .ordinal()) {
+                                       element = new JsonPrimitive(IpcDataUnitWrapper
+                                                       .getMacAddress(valDfFlowMatchDlAddr,
+                                                                       VtnServiceIpcConsts.DL_ADDR_MASK)
+                                                       .toString());
+                                       if (null == srcMaskJsonArray) {
+                                               srcMaskJsonArray = new JsonArray();
+                                       }
+                                       srcMaskJsonArray.add(element);
+                                       LOG.debug("set validbit for macdst  :" + validBit);
+                               }
+                       } else if (matchtype == UncStructIndexEnum.UncDataflowFlowMatchType.UNC_MATCH_DL_TYPE
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowMatchDlType = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+                               element= new JsonPrimitive(IpcDataUnitWrapper.getIpcStructUint16HexaValue(
+                                               valDfFlowMatchDlType, VtnServiceIpcConsts.DL_TYPE)
+                                               .toString());
+                               if (null == macEtherTypeJsonArray) {
+                                       macEtherTypeJsonArray = new JsonArray();
+                               }
+                               macEtherTypeJsonArray.add(element);
+                               LOG.debug("set validbit for etherntype :" + validBit);
+
+                       } else if (matchtype == UncStructIndexEnum.UncDataflowFlowMatchType.UNC_MATCH_VLAN_ID
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowMatchVlanVid = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructUint16Value(valDfFlowMatchVlanVid,
+                                                               VtnServiceIpcConsts.VLAN_ID).toString());
+                               if (null == vlanIdJsonArray) {
+                                       vlanIdJsonArray = new JsonArray();
+                               }
+                               if(element.getAsString().equals(VtnServiceJsonConsts.VLAN_ID_65535)){
+                                       element = new JsonPrimitive(VtnServiceJsonConsts.EMPTY);
+                                       vlanIdJsonArray.add(element);
+                               }else{
+                                       vlanIdJsonArray.add(element);
+                               }
+                               
+
+                               LOG.debug("set validbit for vlan_id  :" + validBit);
+
+                       } else if (matchtype == UncStructIndexEnum.UncDataflowFlowMatchType.UNC_MATCH_VLAN_PCP
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowMatchVlanpcp = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructUint8Value(valDfFlowMatchVlanpcp,
+                                                               VtnServiceIpcConsts.VLAN_PCP).toString());
+                               if (null == vlanPriorityJsonArray) {
+                                       vlanPriorityJsonArray = new JsonArray();
+                               }
+                               vlanPriorityJsonArray.add(element);
+                               LOG.debug("set validbit for vlanpriority  :" + validBit);
+
+                       } else if (matchtype == UncStructIndexEnum.UncDataflowFlowMatchType.UNC_MATCH_IP_TOS
+                                       .ordinal()) {
+
+                               final IpcStruct valDfFlowMatchIpTos = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                           final String hexString =
+                        UnsignedInteger.toHexString(Long
+                                .valueOf(IpcDataUnitWrapper
+                                        .getIpcStructUint8Value(
+                                                valDfFlowMatchIpTos,
+                                                VtnServiceIpcConsts.IP_TOS)));
+                element = new JsonPrimitive("0x" + hexString);
+                               if (null == ipTosJsonArray) {
+                                       ipTosJsonArray = new JsonArray();
+                               }
+                               ipTosJsonArray.add(element);
+                               LOG.debug("set validbit for iptos :" + validBit);
+
+                       } else if (matchtype == UncStructIndexEnum.UncDataflowFlowMatchType.UNC_MATCH_IP_PROTO
+                                       .ordinal()) {
+
+                               final IpcStruct valDfFlowMatchIpProto = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructUint8Value(valDfFlowMatchIpProto,
+                                                               VtnServiceIpcConsts.IP_PROTO).toString());
+                               if (null == ipProtoJsonArray) {
+                                       ipProtoJsonArray = new JsonArray();
+                               }
+                               ipProtoJsonArray.add(element);
+                               LOG.debug("set validbit for  ipproto :" + validBit);
+
+                       } else if (matchtype == UncStructIndexEnum.UncDataflowFlowMatchType.UNC_MATCH_IPV4_SRC
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowMatchIpv4Addr = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructIpv4Value(valDfFlowMatchIpv4Addr,
+                                                               VtnServiceIpcConsts.IPV4_ADDR).toString());
+                               if (null == ipSrcAddrJsonArray) {
+                                       ipSrcAddrJsonArray = new JsonArray();
+                               }
+                               ipSrcAddrJsonArray.add(element);
+                               LOG.debug("set validbit for ipsrc :" + validBit);
+
+                               final String s = IpcDataUnitWrapper.getIpcStructUint8Value(
+                                               valDfFlowMatchIpv4Addr, VtnServiceIpcConsts.V_MASK);
+                               if (Integer.parseInt(s) == UncStructIndexEnum.Valid.UNC_VF_VALID
+                                               .ordinal()) {
+                                       element = new JsonPrimitive(IpcDataUnitWrapper
+                                                       .getIpcStructIpv4Value(valDfFlowMatchIpv4Addr,
+                                                                       VtnServiceIpcConsts.IPV4_ADDR_MASK)
+                                                       .toString());
+                                       if (null == ipSrcAddrMaskJsonArray) {
+                                               ipSrcAddrMaskJsonArray = new JsonArray();
+
+                                       }
+                                       ipSrcAddrMaskJsonArray.add(element);
+                                       LOG.debug("set validBit for ipv4_mask:" + validBit);
+                               }
+                       } else if (matchtype == UncStructIndexEnum.UncDataflowFlowMatchType.UNC_MATCH_IPV4_DST
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowMatchIpv4Addr = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructIpv4Value(valDfFlowMatchIpv4Addr,
+                                                               VtnServiceIpcConsts.IPV4_ADDR).toString());
+                               if (null == ipDstAddrJsonArray) {
+                                       ipDstAddrJsonArray = new JsonArray();
+                               }
+                               ipDstAddrJsonArray.add(element);
+                               LOG.debug("set validbit for ipdst  :" + validBit);
+
+                               final String s = IpcDataUnitWrapper.getIpcStructUint8Value(
+                                               valDfFlowMatchIpv4Addr, VtnServiceIpcConsts.V_MASK);
+                               if (Integer.parseInt(s) == UncStructIndexEnum.Valid.UNC_VF_VALID
+                                               .ordinal()) {
+                                       element = new JsonPrimitive(IpcDataUnitWrapper
+                                                       .getIpcStructIpv4Value(valDfFlowMatchIpv4Addr,
+                                                                       VtnServiceIpcConsts.IPV4_ADDR_MASK)
+                                                       .toString());
+                                       if (null == ipDstAddrMaskJsonArray) {
+                                               ipDstAddrMaskJsonArray = new JsonArray();
+                                       }
+                                       ipDstAddrMaskJsonArray.add(element);
+                                       LOG.debug("set validbit for ipv4_mask:" + validBit);
+                               }
+                       } else if (matchtype == UncStructIndexEnum.UncDataflowFlowMatchType.UNC_MATCH_IPV6_SRC
+                                       .ordinal()) {
+
+                               final IpcStruct valdfflowmatchIpv6Addr = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructIpv6Value(valdfflowmatchIpv6Addr,
+                                                               VtnServiceIpcConsts.IPV6_ADDR).toString());
+                               if (null == ipV6SrcAddrJsonArray) {
+                                       ipV6SrcAddrJsonArray = new JsonArray();
+                               }
+                               ipV6SrcAddrJsonArray.add(element);
+                               LOG.debug("set validbit for ipv6src  :" + validBit);
+
+                               final String s = IpcDataUnitWrapper.getIpcStructUint8Value(
+                                               valdfflowmatchIpv6Addr, VtnServiceIpcConsts.V_MASK);
+
+                               if (Integer.parseInt(s) == UncStructIndexEnum.Valid.UNC_VF_VALID
+                                               .ordinal()) {
+                                       element = new JsonPrimitive(IpcDataUnitWrapper
+                                                       .getIpcStructIpv6Value(valdfflowmatchIpv6Addr,
+                                                                       VtnServiceIpcConsts.IPV6_ADDR_MASK)
+                                                       .toString());
+                                       if (null == ipV6SrcAddrMaskJsonArray) {
+                                               ipV6SrcAddrMaskJsonArray = new JsonArray();
+                                       }
+                                       ipV6SrcAddrMaskJsonArray.add(element);
+                                       LOG.debug("set validbit for ipv6_mask:" + validBit);
+                               }
+                       } else if (matchtype == UncStructIndexEnum.UncDataflowFlowMatchType.UNC_MATCH_IPV6_DST
+                                       .ordinal()) {
+
+                               final IpcStruct valdfflowmatchIpv6Addr = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructIpv6Value(valdfflowmatchIpv6Addr,
+                                                               VtnServiceIpcConsts.IPV6_ADDR).toString());
+                               if (null == ipV6DstAddJsonArray) {
+                                       ipV6DstAddJsonArray = new JsonArray();
+                               }
+                               ipV6DstAddJsonArray.add(element);
+                               LOG.debug("set validbit for ipv6dst  :" + validBit);
+
+                               final String s = IpcDataUnitWrapper.getIpcStructUint8Value(
+                                               valdfflowmatchIpv6Addr, VtnServiceIpcConsts.V_MASK);
+
+                               if (Integer.parseInt(s) == UncStructIndexEnum.Valid.UNC_VF_VALID
+                                               .ordinal()) {
+                                       element = new JsonPrimitive(IpcDataUnitWrapper
+                                                       .getIpcStructIpv6Value(valdfflowmatchIpv6Addr,
+                                                                       VtnServiceIpcConsts.IPV6_ADDR_MASK)
+                                                       .toString());
+                                       if (null == ipV6DstAddrMaskJsonArray) {
+                                               ipV6DstAddrMaskJsonArray = new JsonArray();
+                                       }
+                                       ipV6DstAddrMaskJsonArray.add(element);
+                                       LOG.debug("set validbit for ipv6_mask:" + validBit);
+                               }
+                       } else if (matchtype == UncStructIndexEnum.UncDataflowFlowMatchType.UNC_MATCH_TP_SRC
+                                       .ordinal()) {
+
+                               final IpcStruct valDfFlowMatchTpPort = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructUint16Value(valDfFlowMatchTpPort,
+                                                               VtnServiceIpcConsts.TP_PORT).toString());
+                               if (null == l4SrcPortIcmpTypeJsonArray) {
+                                       l4SrcPortIcmpTypeJsonArray = new JsonArray();
+                               }
+                               l4SrcPortIcmpTypeJsonArray.add(element);
+
+                               LOG.debug("set validbit for tpsrc :" + validBit);
+
+                               final String s = IpcDataUnitWrapper.getIpcStructUint8Value(
+                                               valDfFlowMatchTpPort, VtnServiceIpcConsts.V_MASK);
+
+                               if (Integer.parseInt(s) == UncStructIndexEnum.Valid.UNC_VF_VALID
+                                               .ordinal()) {
+
+                                       element = new JsonPrimitive(IpcDataUnitWrapper
+                                                       .getIpcStructUint16Value(valDfFlowMatchTpPort,
+                                                                       VtnServiceIpcConsts.TP_PORT_MASK)
+                                                       .toString());
+                                       if (null == l4SrcPortIcmpTypeMaskJsonArray) {
+                                               l4SrcPortIcmpTypeMaskJsonArray = new JsonArray();
+                                       }
+                                       l4SrcPortIcmpTypeMaskJsonArray.add(element);
+                                       LOG.debug("set validbit for tpsrcmask :" + validBit);
+                               }
+                       } else if (matchtype == UncStructIndexEnum.UncDataflowFlowMatchType.UNC_MATCH_TP_DST
+                                       .ordinal()) {
+
+                               final IpcStruct valDfFlowMatchTpPort = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructUint16Value(valDfFlowMatchTpPort,
+                                                               VtnServiceIpcConsts.TP_PORT).toString());
+                               if (null == l4DstPortIcmpTypeJsonArray) {
+                                       l4DstPortIcmpTypeJsonArray = new JsonArray();
+                               }
+                               l4DstPortIcmpTypeJsonArray.add(element);
+                               LOG.debug("set validbit for tpdst  :" + validBit);
+
+                               final String s = IpcDataUnitWrapper.getIpcStructUint8Value(
+                                               valDfFlowMatchTpPort, VtnServiceIpcConsts.V_MASK);
+
+                               if (Integer.parseInt(s) == UncStructIndexEnum.Valid.UNC_VF_VALID
+                                               .ordinal()) {
+                                       element = new JsonPrimitive(IpcDataUnitWrapper
+                                                       .getIpcStructUint16Value(valDfFlowMatchTpPort,
+                                                                       VtnServiceIpcConsts.TP_PORT_MASK)
+                                                       .toString());
+
+                                       if (null == l4DstPortIcmpTypeMaskJsonArray) {
+                                               l4DstPortIcmpTypeMaskJsonArray = new JsonArray();
+                                       }
+                                       l4DstPortIcmpTypeMaskJsonArray.add(element);
+                               }
+                       } else {
+                               LOG.debug("Type : invalid");
+                       }
+
+               }
+               if (null != inportJsonArray) {
+                       match.add(VtnServiceJsonConsts.INPORT, inportJsonArray);
+               }
+               if (null != dstMacJsonArray) {
+                       match.add(VtnServiceJsonConsts.MACDSTADDR, dstMacJsonArray);
+               }
+               if (dstMaskJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.MACDSTADDR_MASK, dstMaskJsonArray);
+               }
+               if (srcMacJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.MACSRCADDR, srcMacJsonArray);
+               }
+               if (srcMaskJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.MACSRCADDR_MASK, srcMaskJsonArray);
+               }
+               if (macEtherTypeJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.MACETHERTYPE, macEtherTypeJsonArray);
+               }
+               if (vlanIdJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.VLAN_ID, vlanIdJsonArray);
+               }
+               if (vlanPriorityJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.VLAN_PRIORITY, vlanPriorityJsonArray);
+               }
+               if (ipTosJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.IPTOS, ipTosJsonArray);
+               }
+               if (ipProtoJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.IPPROTO, ipProtoJsonArray);
+               }
+               if (ipSrcAddrJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.IPSRCADDR, ipSrcAddrJsonArray);
+               }
+               if (ipSrcAddrMaskJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.IPSRCADDR_MASK,
+                                       ipSrcAddrMaskJsonArray);
+               }
+               if (ipDstAddrJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.IPDSTADDR, ipDstAddrJsonArray);
+               }
+               if (ipDstAddrMaskJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.IPDSTADDR_MASK,
+                                       ipDstAddrMaskJsonArray);
+               }
+               if (ipV6SrcAddrJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.IPV6SRCADDR, ipV6SrcAddrJsonArray);
+               }
+               if (ipV6SrcAddrMaskJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.IPV6SRCADDR_MASK,
+                                       ipV6SrcAddrMaskJsonArray);
+               }
+               if (ipV6DstAddJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.IPV6DSTADDR, ipV6DstAddJsonArray);
+               }
+               if (ipV6DstAddrMaskJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.IPV6DSTADDR_MASK,
+                                       ipV6DstAddrMaskJsonArray);
+               }
+               if (l4SrcPortIcmpTypeJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.L4SRCPORT_ICMPTYPE,
+                                       l4SrcPortIcmpTypeJsonArray);
+               }
+               if (l4SrcPortIcmpTypeMaskJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.L4SRCPORT_ICMPTYPE_MASK,
+                                       l4SrcPortIcmpTypeMaskJsonArray);
+               }
+               if (l4DstPortIcmpTypeJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.L4DSTPORT_ICMPTYPE,
+                                       l4DstPortIcmpTypeJsonArray);
+               }
+               if (l4DstPortIcmpTypeMaskJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.L4DSTPORT_ICMPTYPE_MASK,
+                                       l4DstPortIcmpTypeMaskJsonArray);
+               }
+               LOG.debug("match Json :" + match);
+               LOG.trace("getDataFlowMatchInfo completed");
+               return match;
+       }
+
+       /**
+        * This method is Used to generate Action Flow info Json
+        * 
+        * @param responsePacket
+        * @param requestBody
+        * @param getType
+        * @return JsonObject
+        */
+       private JsonObject getDataFlowActionInfo(
+                       final IpcDataUnit[] responsePacket, final AtomicInteger index,
+                       final JsonObject controlerFlow,
+                       final IpcStruct valVtnDataFlowCmnStruct) {
+               LOG.trace("getDataFlowActionInfo started");
+               final int actionCount = Integer.parseInt(IpcDataUnitWrapper
+                               .getIpcStructUint32Value(valVtnDataFlowCmnStruct,
+                                               VtnServiceIpcConsts.ACTION_COUNT));
+               LOG.debug("acount_count:" + actionCount);
+               final JsonObject action = new JsonObject();
+               JsonArray outputPortJsonArray = null;
+               JsonArray enqueuePortJsonArray = null;
+               JsonArray queueIdJsonArray = null;
+               JsonArray setDstMacAddrJsonArray = null;
+               JsonArray setSrcMAcAddrJsonArray = null;
+               JsonArray setVlanIdJsonArray = null;
+               JsonArray setVlanPriorityJsonArray = null;
+               JsonArray setDstAddrJsonArray = null;
+               JsonArray setSrcIpAddrJsonArray = null;
+               JsonArray setIpTosJsonArray = null;
+               JsonArray setDstL4PortIcmpTypeJsonArray = null;
+               JsonArray setSrcL4PortIcmpTypeJsonArray = null;
+               JsonArray setIpV6DstAddrJsonArray = null;
+               JsonArray setIpv6SrcAddrJsonArray = null;
+               JsonArray setStripVlanJsonArray = null;
+               JsonPrimitive element = null;
+               int actionType;
+               for (int i = 0; i < actionCount; i++) {
+
+                       final IpcStruct valDataFlowAction = (IpcStruct) responsePacket[index
+                                       .getAndIncrement()];
+
+                       actionType = Integer.parseInt(IpcDataUnitWrapper
+                                       .getIpcStructUint32Value(valDataFlowAction,
+                                                       VtnServiceIpcConsts.ACTION_TYPE));
+                       LOG.debug("actiontype :" + actionType);
+                       if (actionType == UncStructIndexEnum.UncDataflowFlowActionType.UNC_ACTION_OUTPUT
+                                       .ordinal()) {
+
+                               final IpcStruct valDfFlowActionOutputPort = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructUint32Value(valDfFlowActionOutputPort,
+                                                               VtnServiceIpcConsts.OUTPUT_PORT).toString());
+                               if (null == outputPortJsonArray) {
+                                       outputPortJsonArray = new JsonArray();
+                               }
+                               outputPortJsonArray.add(element);
+
+                       } else if (actionType == UncStructIndexEnum.UncDataflowFlowActionType.UNC_ACTION_SET_ENQUEUE
+                                       .ordinal()) {
+
+                               final IpcStruct valDfFlowActionEnqueuePort = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructUint32Value(valDfFlowActionEnqueuePort,
+                                                               VtnServiceIpcConsts.OUTPUT_PORT).toString());
+                               if (null == enqueuePortJsonArray) {
+                                       enqueuePortJsonArray = new JsonArray();
+                               }
+                               enqueuePortJsonArray.add(element);
+
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructUint16Value(valDfFlowActionEnqueuePort,
+                                                               VtnServiceIpcConsts.ENQUEUE_ID).toString());
+                               if (null == queueIdJsonArray) {
+                                       queueIdJsonArray = new JsonArray();
+
+                               }
+                               queueIdJsonArray.add(element);
+
+                       } else if (actionType == UncStructIndexEnum.UncDataflowFlowActionType.UNC_ACTION_SET_DL_DST
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowActionSetDlAddr = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+                               element = new JsonPrimitive(IpcDataUnitWrapper.getMacAddress(
+                                               valDfFlowActionSetDlAddr, VtnServiceIpcConsts.DL_ADDR)
+                                               .toString());
+                               if (null == setDstMacAddrJsonArray) {
+                                       setDstMacAddrJsonArray = new JsonArray();
+                               }
+                               setDstMacAddrJsonArray.add(element);
+
+                       } else if (actionType == UncStructIndexEnum.UncDataflowFlowActionType.UNC_ACTION_SET_DL_SRC
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowActionSetDlAddr = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(IpcDataUnitWrapper.getMacAddress(
+                                               valDfFlowActionSetDlAddr, VtnServiceIpcConsts.DL_ADDR)
+                                               .toString());
+                               if (null == setSrcMAcAddrJsonArray) {
+                                       setSrcMAcAddrJsonArray = new JsonArray();
+                               }
+                               setSrcMAcAddrJsonArray.add(element);
+
+                       } else if (actionType == UncStructIndexEnum.UncDataflowFlowActionType.UNC_ACTION_SET_VLAN_ID
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowActionSetVlanId = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructUint16Value(valDfFlowActionSetVlanId,
+                                                               VtnServiceIpcConsts.VLAN_ID).toString());
+                       
+                               if (null == setVlanIdJsonArray) {
+                                       setVlanIdJsonArray = new JsonArray();
+
+                               }
+                               if(element.getAsString().equals(VtnServiceJsonConsts.VLAN_ID_65535)){
+                                       element = new JsonPrimitive(VtnServiceJsonConsts.EMPTY);
+                                       setVlanIdJsonArray.add(element);
+                               }else{
+                                       setVlanIdJsonArray.add(element);
+                               }
+                               
+
+                       } else if (actionType == UncStructIndexEnum.UncDataflowFlowActionType.UNC_ACTION_SET_VLAN_PCP
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowActionSetVlanPcp = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructUint8Value(valDfFlowActionSetVlanPcp,
+                                                               VtnServiceIpcConsts.VLAN_PCP).toString());
+                               if (null == setVlanPriorityJsonArray) {
+                                       setVlanPriorityJsonArray = new JsonArray();
+
+                               }
+                               setVlanPriorityJsonArray.add(element);
+
+                       } else if (actionType == UncStructIndexEnum.UncDataflowFlowActionType.UNC_ACTION_STRIP_VLAN
+                                       .ordinal()) {
+                               element = new JsonPrimitive(VtnServiceJsonConsts.TRUE);
+                               if (null == setStripVlanJsonArray) {
+                                       setStripVlanJsonArray = new JsonArray();
+                               }
+                               setStripVlanJsonArray.add(element);                             
+                               index.getAndIncrement();                        
+                       } else if (actionType == UncStructIndexEnum.UncDataflowFlowActionType.UNC_ACTION_SET_IPV4_DST
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowActionSetIpv4 = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructIpv4Value(valDfFlowActionSetIpv4,
+                                                               VtnServiceIpcConsts.IPV4_ADDR).toString());
+
+                               if (null == setDstAddrJsonArray) {
+                                       setDstAddrJsonArray = new JsonArray();
+
+                               }
+                               setDstAddrJsonArray.add(element);
+
+                       } else if (actionType == UncStructIndexEnum.UncDataflowFlowActionType.UNC_ACTION_SET_IPV4_SRC
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowActionSetIpv4 = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructIpv4Value(valDfFlowActionSetIpv4,
+                                                               VtnServiceIpcConsts.IPV4_ADDR).toString());
+                               if (null == setSrcIpAddrJsonArray) {
+                                       setSrcIpAddrJsonArray = new JsonArray();
+                               }
+                               setSrcIpAddrJsonArray.add(element);
+
+                       } else if (actionType == UncStructIndexEnum.UncDataflowFlowActionType.UNC_ACTION_SET_IP_TOS
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowActionSetIpTos = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                final String hexString =
+                        UnsignedInteger.toHexString(Long
+                                .valueOf(IpcDataUnitWrapper
+                                        .getIpcStructUint8Value(
+                                                valDfFlowActionSetIpTos,
+                                                VtnServiceIpcConsts.IP_TOS)));
+                element = new JsonPrimitive("0x" + hexString);
+                
+                               if (null == setIpTosJsonArray) {
+                                       setIpTosJsonArray = new JsonArray();
+                               }
+                               setIpTosJsonArray.add(element);
+
+                       } else if (actionType == UncStructIndexEnum.UncDataflowFlowActionType.UNC_ACTION_SET_TP_DST
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowActionSetTpPort = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructUint16Value(valDfFlowActionSetTpPort,
+                                                               VtnServiceIpcConsts.TP_PORT).toString());
+                               if (null == setDstL4PortIcmpTypeJsonArray) {
+                                       setDstL4PortIcmpTypeJsonArray = new JsonArray();
+                               }
+                               setDstL4PortIcmpTypeJsonArray.add(element);
+
+                       } else if (actionType == UncStructIndexEnum.UncDataflowFlowActionType.UNC_ACTION_SET_TP_SRC
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowActionSetTpPort = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructUint16Value(valDfFlowActionSetTpPort,
+                                                               VtnServiceIpcConsts.TP_PORT).toString());
+                               if (null == setSrcL4PortIcmpTypeJsonArray) {
+                                       setSrcL4PortIcmpTypeJsonArray = new JsonArray();
+                               }
+                               setSrcL4PortIcmpTypeJsonArray.add(element);
+
+                       } else if (actionType == UncStructIndexEnum.UncDataflowFlowActionType.UNC_ACTION_SET_IPV6_DST
+                                       .ordinal()) {
+
+                               final IpcStruct valDfFlowActionSetIpv6 = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(
+                                               IpcDataUnitWrapper.getIpcStructIpv6Value(
+                                                               valDfFlowActionSetIpv6,
+                                                               VtnServiceIpcConsts.IPV6_ADDR));
+                               if (null == setIpV6DstAddrJsonArray) {
+                                       setIpV6DstAddrJsonArray = new JsonArray();
+                               }
+                               setIpV6DstAddrJsonArray.add(element);
+
+                       } else if (actionType == UncStructIndexEnum.UncDataflowFlowActionType.UNC_ACTION_SET_IPV6_SRC
+                                       .ordinal()) {
+
+                               final IpcStruct valDfFlowActionSetIpv6 = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(
+                                               IpcDataUnitWrapper.getIpcStructIpv6Value(
+                                                               valDfFlowActionSetIpv6,
+                                                               VtnServiceIpcConsts.IPV6_ADDR));
+                               if (null == setIpv6SrcAddrJsonArray) {
+                                       setIpv6SrcAddrJsonArray = new JsonArray();
+                               }
+                               setIpv6SrcAddrJsonArray.add(element);
+
+                       } else {
+                               LOG.debug("Type : invalid");
+                       }
+               }
+               if (outputPortJsonArray != null) {
+                       action.add(VtnServiceJsonConsts.OUTPUTPORT, outputPortJsonArray);
+               }
+               if (enqueuePortJsonArray != null) {
+                       action.add(VtnServiceJsonConsts.ENQUEUEPORT, enqueuePortJsonArray);
+               }
+               if (queueIdJsonArray != null) {
+                       action.add(VtnServiceJsonConsts.QUEUE_ID, queueIdJsonArray);
+               }
+               if (setDstMacAddrJsonArray != null) {
+                       action.add(VtnServiceJsonConsts.SETMACDSTADDR,
+                                       setDstMacAddrJsonArray);
+               }
+               if (setSrcMAcAddrJsonArray != null) {
+                       action.add(VtnServiceJsonConsts.SETMACSRCADDR,
+                                       setSrcMAcAddrJsonArray);
+               }
+               if (setVlanIdJsonArray != null) {
+                       action.add(VtnServiceJsonConsts.SETVLAN_ID, setVlanIdJsonArray);
+               }
+               if (setVlanPriorityJsonArray != null) {
+                       action.add(VtnServiceJsonConsts.SETVLAN_PRIORITY,
+                                       setVlanPriorityJsonArray);
+               }
+               if (setStripVlanJsonArray != null) {
+                       action.add(VtnServiceJsonConsts.STRIPVLAN, setStripVlanJsonArray);
+               }
+               if (setDstAddrJsonArray != null) {
+                       action.add(VtnServiceJsonConsts.SETIPDSTADDR, setDstAddrJsonArray);
+               }
+               if (setSrcIpAddrJsonArray != null) {
+                       action.add(VtnServiceJsonConsts.SETIPSRCADDR, setSrcIpAddrJsonArray);
+               }
+               if (setIpTosJsonArray != null) {
+                       action.add(VtnServiceJsonConsts.SETIPTOS, setIpTosJsonArray);
+               }
+               if (setDstL4PortIcmpTypeJsonArray != null) {
+                       action.add(VtnServiceJsonConsts.SETL4DSTPORT_ICMPTYPE,
+                                       setDstL4PortIcmpTypeJsonArray);
+               }
+               if (setSrcL4PortIcmpTypeJsonArray != null) {
+                       action.add(VtnServiceJsonConsts.SETL4SRCPORT_ICMPTYPE,
+                                       setSrcL4PortIcmpTypeJsonArray);
+               }
+               if (setIpV6DstAddrJsonArray != null) {
+                       action.add(VtnServiceJsonConsts.SETIPV6DSTADDR,
+                                       setIpV6DstAddrJsonArray);
+               }
+               if (setIpv6SrcAddrJsonArray != null) {
+                       action.add(VtnServiceJsonConsts.SETIPV6SRCADDR,
+                                       setIpv6SrcAddrJsonArray);
+               }
+               LOG.debug("action json:" + action);
+               return action;
+       }
+
 }
index 7c10d09de3db276229022aace13d36c41fc2ecdd..62c3a75e809fe28b019894edafac1296bf3cc70f 100644 (file)
@@ -1,18 +1,23 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
+
 package org.opendaylight.vtn.javaapi.ipc.conversion;
 
+import java.util.concurrent.atomic.AtomicInteger;
+
 import com.google.gson.JsonArray;
 import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
 import org.opendaylight.vtn.core.ipc.IpcDataUnit;
 import org.opendaylight.vtn.core.ipc.IpcStruct;
 import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.core.util.UnsignedInteger;
 import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
 import org.opendaylight.vtn.javaapi.constants.VtnServiceIpcConsts;
 import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
@@ -803,6 +808,7 @@ public class IpcPhysicalResponseFactory {
                                                        .getIpcStructIpv4Value(valControllerStruct,
                                                                        VtnServiceIpcConsts.IP_ADDRESS));
                }
+
                validBit = valControllerStruct.getByte(VtnServiceIpcConsts.VALID,
                                UncPhysicalStructIndexEnum.UpplValCtrIndex.kIdxType.ordinal());
                if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
@@ -916,9 +922,8 @@ public class IpcPhysicalResponseFactory {
         * @return
         */
        public JsonObject getSwitchPortResponse(final IpcDataUnit[] responsePacket,
-                       final JsonObject requestBody, final String getType) {
+                       final JsonObject requestBody) {
                LOG.trace("Start getSwitchPortResponse");
-               LOG.debug("getType: " + getType);
                /*
                 * operation type will be required to resolve the response type
                 */
@@ -926,31 +931,32 @@ public class IpcPhysicalResponseFactory {
                if (requestBody.has(VtnServiceJsonConsts.OP)) {
                        opType = requestBody.get(VtnServiceJsonConsts.OP).getAsString();
                }
-               String rootJsonName = null;
+               final String rootJsonName = VtnServiceJsonConsts.PORTS;
                final JsonObject root = new JsonObject();
                JsonObject switchPort = null;
-               JsonArray switchPortArray = null;
-               if (getType.equals(VtnServiceJsonConsts.SHOW)) {
-                       rootJsonName = VtnServiceJsonConsts.PORT;
-               } else {
-                       rootJsonName = VtnServiceJsonConsts.PORTS;
-                       switchPortArray = new JsonArray();
-               }
+               final JsonArray switchPortArray = new JsonArray();
                LOG.debug("Json Name :" + rootJsonName);
                if (opType.equalsIgnoreCase(VtnServiceJsonConsts.COUNT)) {
                        /*
                         * Create Json for Count
                         */
                        switchPort = new JsonObject();
-                       switchPort
-                                       .addProperty(
-                                                       VtnServiceJsonConsts.COUNT,
-                                                       IpcDataUnitWrapper
-                                                                       .getIpcDataUnitValue(responsePacket[VtnServiceConsts.IPC_COUNT_INDEX]));
+                       int count = VtnServiceJsonConsts.VAL_1;
+                       if (!requestBody.has(VtnServiceJsonConsts.PORTNAME)) {
+                               count = Integer
+                                               .parseInt(IpcDataUnitWrapper
+                                                               .getIpcDataUnitValue(responsePacket[VtnServiceConsts.IPC_COUNT_INDEX]));
+                       } else {
+                               if (responsePacket.length == 0) {
+                                       count = responsePacket.length;
+                               }
+                       }
+                       switchPort.addProperty(VtnServiceJsonConsts.COUNT, count);
                        root.add(rootJsonName, switchPort);
                } else {
                        IpcStruct valPortStruct = null;
                        IpcStruct valPortStStruct = null;
+                       IpcStruct valPortStatsStruct = null;
                        // json array will be required for list type of cases
 
                        for (int index = 0; index < responsePacket.length; index++) {
@@ -970,242 +976,267 @@ public class IpcPhysicalResponseFactory {
                                                                keySwitchPortStruct,
                                                                VtnServiceIpcConsts.PORT_ID));
 
-                               if (!opType.equalsIgnoreCase(VtnServiceJsonConsts.NORMAL)
-                                               || getType.equalsIgnoreCase(VtnServiceJsonConsts.SHOW)) {
+                               if (!opType.equalsIgnoreCase(VtnServiceJsonConsts.NORMAL)) {
                                        LOG.debug("Case : not Normal or Show");
                                        /*
                                         * this part is always required in Show, but not required in
                                         * List + "normal" op type
                                         */
                                        LOG.debug("targetdb : State");
-                                       valPortStStruct = (IpcStruct) responsePacket[index++];
+                                       valPortStatsStruct = (IpcStruct) responsePacket[index++];
+                                       if (opType.equalsIgnoreCase(VtnServiceJsonConsts.DETAIL)) {
+                                               // getting inner structure from Port Stats struct by
+                                               // checking valid
+                                               // bit.
+                                               validBit = valPortStatsStruct
+                                                               .getByte(
+                                                                               VtnServiceIpcConsts.VALID,
+                                                                               UncPhysicalStructIndexEnum.upplVaPortStatsIndex.kIdxPortStatSt
+                                                                                               .ordinal());
+                                               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                                               .ordinal()
+                                                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                                               .ordinal()) {
+                                                       valPortStStruct = IpcDataUnitWrapper
+                                                                       .getInnerIpcStruct(valPortStatsStruct,
+                                                                                       VtnServiceIpcConsts.PORT_ST_VAL);
+                                               }
+                                       } else {
+                                               valPortStStruct = valPortStatsStruct;
+                                       }
 
-                                       // using valPortStStruct for other parameters
-                                       validBit = valPortStStruct
-                                                       .getByte(
-                                                                       VtnServiceIpcConsts.VALID,
-                                                                       UncPhysicalStructIndexEnum.UpplValPortStIndex.kIdxPortOperStatus
-                                                                                       .ordinal());
+                                       if (valPortStStruct != null) {
 
-                                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
-                                                       .ordinal()
-                                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
-                                                                       .ordinal()) {
-                                               if (IpcDataUnitWrapper
-                                                               .getIpcStructUint8Value(valPortStStruct,
-                                                                               VtnServiceIpcConsts.OPERSTATUS)
-                                                               .equalsIgnoreCase(
-                                                                               UncPhysicalStructIndexEnum.UpplPortOperStatus.UPPL_PORT_OPER_UP
-                                                                                               .getValue())) {
-                                                       setValueToJsonObject(validBit, switchPort,
-                                                                       VtnServiceJsonConsts.OPERSTATUS,
-                                                                       VtnServiceJsonConsts.UP);
-                                               } else if (IpcDataUnitWrapper
-                                                               .getIpcStructUint8Value(valPortStStruct,
-                                                                               VtnServiceIpcConsts.OPERSTATUS)
-                                                               .equalsIgnoreCase(
-                                                                               UncPhysicalStructIndexEnum.UpplPortOperStatus.UPPL_PORT_OPER_DOWN
-                                                                                               .getValue())) {
-                                                       setValueToJsonObject(validBit, switchPort,
-                                                                       VtnServiceJsonConsts.OPERSTATUS,
-                                                                       VtnServiceJsonConsts.DOWN);
-                                               } else if (IpcDataUnitWrapper
-                                                               .getIpcStructUint8Value(valPortStStruct,
-                                                                               VtnServiceIpcConsts.OPERSTATUS)
-                                                               .equalsIgnoreCase(
-                                                                               UncPhysicalStructIndexEnum.UpplPortOperStatus.UPPL_PORT_OPER_UNKNOWN
-                                                                                               .getValue())) {
-                                                       setValueToJsonObject(validBit, switchPort,
-                                                                       VtnServiceJsonConsts.OPERSTATUS,
-                                                                       VtnServiceJsonConsts.UNKNOWN);
-                                               } else {
-                                                       LOG.debug("Operstatus : invalid");
+                                               // getting inner structure from St struct by checking
+                                               // valid bit.
+                                               validBit = valPortStStruct
+                                                               .getByte(
+                                                                               VtnServiceIpcConsts.VALID,
+                                                                               UncPhysicalStructIndexEnum.UpplValPortStIndex.kIdxPortSt
+                                                                                               .ordinal());
+                                               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                                               .ordinal()
+                                                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                                               .ordinal()) {
+                                                       valPortStruct = IpcDataUnitWrapper
+                                                                       .getInnerIpcStruct(valPortStStruct,
+                                                                                       VtnServiceIpcConsts.PORT);
+                                                       validBit = valPortStruct
+                                                                       .getByte(
+                                                                                       VtnServiceIpcConsts.VALID,
+                                                                                       UncPhysicalStructIndexEnum.UpplValPortIndex.kIdxPortNumber
+                                                                                                       .ordinal());
+                                                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                                                       .ordinal()
+                                                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                                                       .ordinal()) {
+                                                               setValueToJsonObject(
+                                                                               validBit,
+                                                                               switchPort,
+                                                                               VtnServiceJsonConsts.PORT_ID,
+                                                                               IpcDataUnitWrapper
+                                                                                               .getIpcStructUint32Value(
+                                                                                                               valPortStruct,
+                                                                                                               VtnServiceIpcConsts.PORT_NUMBER));
+                                                       }
+
+                                                       validBit = valPortStruct
+                                                                       .getByte(
+                                                                                       VtnServiceIpcConsts.VALID,
+                                                                                       UncPhysicalStructIndexEnum.UpplValPortIndex.kIdxPortDescription
+                                                                                                       .ordinal());
+                                                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                                                       .ordinal()
+                                                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                                                       .ordinal()) {
+                                                               setValueToJsonObject(
+                                                                               validBit,
+                                                                               switchPort,
+                                                                               VtnServiceJsonConsts.DESCRIPTION,
+                                                                               IpcDataUnitWrapper
+                                                                                               .getIpcStructUint8ArrayValue(
+                                                                                                               valPortStruct,
+                                                                                                               VtnServiceIpcConsts.DESCRIPTION));
+                                                       }
+                                                       validBit = valPortStruct
+                                                                       .getByte(
+                                                                                       VtnServiceIpcConsts.VALID,
+                                                                                       UncPhysicalStructIndexEnum.UpplValPortIndex.kIdxPortAdminStatus
+                                                                                                       .ordinal());
+                                                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                                                       .ordinal()
+                                                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                                                       .ordinal()) {
+                                                               if (IpcDataUnitWrapper
+                                                                               .getIpcStructUint8Value(
+                                                                                               valPortStruct,
+                                                                                               VtnServiceJsonConsts.ADMIN_STATUS)
+                                                                               .equalsIgnoreCase(
+                                                                                               UncPhysicalStructIndexEnum.UpplPortAdminStatus.UPPL_PORT_ADMIN_UP
+                                                                                                               .getValue())) {
+                                                                       setValueToJsonObject(validBit, switchPort,
+                                                                                       VtnServiceJsonConsts.ADMINSTATUS,
+                                                                                       VtnServiceJsonConsts.UP);
+                                                               } else if (IpcDataUnitWrapper
+                                                                               .getIpcStructUint8Value(
+                                                                                               valPortStruct,
+                                                                                               VtnServiceJsonConsts.ADMIN_STATUS)
+                                                                               .equalsIgnoreCase(
+                                                                                               UncPhysicalStructIndexEnum.UpplPortAdminStatus.UPPL_PORT_ADMIN_DOWN
+                                                                                                               .getValue())) {
+                                                                       setValueToJsonObject(validBit, switchPort,
+                                                                                       VtnServiceJsonConsts.ADMINSTATUS,
+                                                                                       VtnServiceJsonConsts.DOWN);
+                                                               } else {
+                                                                       LOG.debug("Adminstatus : invalid");
+                                                               }
+                                                               LOG.debug("AdminStatus :"
+                                                                               + IpcDataUnitWrapper
+                                                                                               .getIpcStructUint8Value(
+                                                                                                               valPortStruct,
+                                                                                                               VtnServiceJsonConsts.ADMIN_STATUS));
+                                                       }
+                                                       validBit = valPortStruct
+                                                                       .getByte(
+                                                                                       VtnServiceIpcConsts.VALID,
+                                                                                       UncPhysicalStructIndexEnum.UpplValPortIndex.kIdxPortTrunkAllowedVlan
+                                                                                                       .ordinal());
+                                                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                                                       .ordinal()
+                                                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                                                       .ordinal()) {
+                                                               setValueToJsonObject(
+                                                                               validBit,
+                                                                               switchPort,
+                                                                               VtnServiceJsonConsts.TRUNK_ALLOWED_VLAN,
+                                                                               IpcDataUnitWrapper
+                                                                                               .getIpcStructUint16Value(
+                                                                                                               valPortStruct,
+                                                                                                               VtnServiceIpcConsts.TRUNK_ALLOWED_VLAN));
+                                                       }
                                                }
-                                               LOG.debug("Operstatus :"
-                                                               + IpcDataUnitWrapper.getIpcStructUint8Value(
-                                                                               valPortStStruct,
-                                                                               VtnServiceIpcConsts.OPERSTATUS));
-                                       }
-                                       validBit = valPortStStruct
-                                                       .getByte(
-                                                                       VtnServiceIpcConsts.VALID,
-                                                                       UncPhysicalStructIndexEnum.UpplValPortStIndex.kIdxPortMacAddress
-                                                                                       .ordinal());
-                                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
-                                                       .ordinal()
-                                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
-                                                                       .ordinal()) {
-                                               setValueToJsonObject(validBit, switchPort,
-                                                               VtnServiceJsonConsts.MACADDR,
-                                                               IpcDataUnitWrapper.getMacAddress(
-                                                                               valPortStStruct,
-                                                                               VtnServiceIpcConsts.PORT_MAC_ADDR));
-                                       }
 
-                                       validBit = valPortStStruct
-                                                       .getByte(
-                                                                       VtnServiceIpcConsts.VALID,
-                                                                       UncPhysicalStructIndexEnum.UpplValPortStIndex.kIdxPortSpeed
-                                                                                       .ordinal());
-                                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
-                                                       .ordinal()
-                                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
-                                                                       .ordinal()) {
-                                               setValueToJsonObject(validBit, switchPort,
-                                                               VtnServiceJsonConsts.SPEED,
-                                                               IpcDataUnitWrapper.getIpcStructUint64Value(
-                                                                               valPortStStruct,
-                                                                               VtnServiceIpcConsts.SPEED));
-                                       }
-                                       validBit = valPortStStruct
-                                                       .getByte(
-                                                                       VtnServiceIpcConsts.VALID,
-                                                                       UncPhysicalStructIndexEnum.UpplValPortStIndex.kIdxPortDuplex
-                                                                                       .ordinal());
-                                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
-                                                       .ordinal()
-                                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
-                                                                       .ordinal()) {
-                                               final String duplexVal = IpcDataUnitWrapper
-                                                               .getIpcStructUint8Value(valPortStStruct,
-                                                                               VtnServiceIpcConsts.DUPLEX);
-                                               if (null != duplexVal
-                                                               && !duplexVal.isEmpty()
-                                                               && duplexVal
-                                                                               .equalsIgnoreCase(String
-                                                                                               .valueOf(UncPhysicalStructIndexEnum.UpplPortDuplex.UPPL_PORT_DUPLEX_HALF
-                                                                                                               .getValue()))) {
-                                                       setValueToJsonObject(validBit, switchPort,
-                                                                       VtnServiceJsonConsts.DUPLEX,
-                                                                       VtnServiceIpcConsts.HALF);
-                                               } else if (null != duplexVal
-                                                               && !duplexVal.isEmpty()
-                                                               && duplexVal
-                                                                               .equalsIgnoreCase(String
-                                                                                               .valueOf(UncPhysicalStructIndexEnum.UpplPortDuplex.UPPL_PORT_DUPLEX_FULL
-                                                                                                               .getValue()))) {
+                                               // using valPortStStruct for other parameters
+                                               validBit = valPortStStruct
+                                                               .getByte(
+                                                                               VtnServiceIpcConsts.VALID,
+                                                                               UncPhysicalStructIndexEnum.UpplValPortStIndex.kIdxPortOperStatus
+                                                                                               .ordinal());
+
+                                               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                                               .ordinal()
+                                                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                                               .ordinal()) {
+                                                       if (IpcDataUnitWrapper
+                                                                       .getIpcStructUint8Value(valPortStStruct,
+                                                                                       VtnServiceIpcConsts.OPERSTATUS)
+                                                                       .equalsIgnoreCase(
+                                                                                       UncPhysicalStructIndexEnum.UpplPortOperStatus.UPPL_PORT_OPER_UP
+                                                                                                       .getValue())) {
+                                                               setValueToJsonObject(validBit, switchPort,
+                                                                               VtnServiceJsonConsts.OPERSTATUS,
+                                                                               VtnServiceJsonConsts.UP);
+                                                       } else if (IpcDataUnitWrapper
+                                                                       .getIpcStructUint8Value(valPortStStruct,
+                                                                                       VtnServiceIpcConsts.OPERSTATUS)
+                                                                       .equalsIgnoreCase(
+                                                                                       UncPhysicalStructIndexEnum.UpplPortOperStatus.UPPL_PORT_OPER_DOWN
+                                                                                                       .getValue())) {
+                                                               setValueToJsonObject(validBit, switchPort,
+                                                                               VtnServiceJsonConsts.OPERSTATUS,
+                                                                               VtnServiceJsonConsts.DOWN);
+                                                       } else if (IpcDataUnitWrapper
+                                                                       .getIpcStructUint8Value(valPortStStruct,
+                                                                                       VtnServiceIpcConsts.OPERSTATUS)
+                                                                       .equalsIgnoreCase(
+                                                                                       UncPhysicalStructIndexEnum.UpplPortOperStatus.UPPL_PORT_OPER_UNKNOWN
+                                                                                                       .getValue())) {
+                                                               setValueToJsonObject(validBit, switchPort,
+                                                                               VtnServiceJsonConsts.OPERSTATUS,
+                                                                               VtnServiceJsonConsts.UNKNOWN);
+                                                       } else {
+                                                               LOG.debug("Operstatus : invalid");
+                                                       }
+                                                       LOG.debug("Operstatus :"
+                                                                       + IpcDataUnitWrapper
+                                                                                       .getIpcStructUint8Value(
+                                                                                                       valPortStStruct,
+                                                                                                       VtnServiceIpcConsts.OPERSTATUS));
+                                               }
+                                               validBit = valPortStStruct
+                                                               .getByte(
+                                                                               VtnServiceIpcConsts.VALID,
+                                                                               UncPhysicalStructIndexEnum.UpplValPortStIndex.kIdxPortMacAddress
+                                                                                               .ordinal());
+                                               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                                               .ordinal()
+                                                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                                               .ordinal()) {
                                                        setValueToJsonObject(validBit, switchPort,
-                                                                       VtnServiceJsonConsts.DUPLEX,
-                                                                       VtnServiceIpcConsts.FULL);
-                                               } else {
-                                                       LOG.debug("Duplex : invalid");
+                                                                       VtnServiceJsonConsts.MACADDR,
+                                                                       IpcDataUnitWrapper.getMacAddress(
+                                                                                       valPortStStruct,
+                                                                                       VtnServiceIpcConsts.PORT_MAC_ADDR));
                                                }
-                                               LOG.debug("Duplex :"
-                                                               + IpcDataUnitWrapper.getIpcStructUint8Value(
-                                                                               valPortStStruct,
-                                                                               VtnServiceIpcConsts.DUPLEX));
-                                       }
-                                       validBit = valPortStStruct
-                                                       .getByte(
-                                                                       VtnServiceIpcConsts.VALID,
-                                                                       UncPhysicalStructIndexEnum.UpplValPortStIndex.kIdxPortAlarmsStatus
-                                                                                       .ordinal());
-                                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
-                                                       .ordinal()
-                                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
-                                                                       .ordinal()) {
-                                               setValueToJsonObject(validBit, switchPort,
-                                                               VtnServiceJsonConsts.ALARMSSTATUS,
-                                                               IpcDataUnitWrapper.getIpcStructUint64HexaValue(
-                                                                               valPortStStruct,
-                                                                               VtnServiceIpcConsts.ALARM_STATUS));
-                                       }
-                                       validBit = valPortStStruct
-                                                       .getByte(
-                                                                       VtnServiceIpcConsts.VALID,
-                                                                       UncPhysicalStructIndexEnum.UpplValPortStIndex.kIdxPortDirection
-                                                                                       .ordinal());
 
-                                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
-                                                       .ordinal()
-                                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
-                                                                       .ordinal()) {
-                                               final String direction = IpcDataUnitWrapper
-                                                               .getIpcStructUint8Value(valPortStStruct,
-                                                                               VtnServiceIpcConsts.DIRECTION);
-                                               if (null != direction
-                                                               && !direction.isEmpty()
-                                                               && direction
-                                                                               .equals(String
-                                                                                               .valueOf(UncPhysicalStructIndexEnum.UpplPortDirection.UPPL_PORT_DIR_INTERNEL
-                                                                                                               .getValue()))) {
-                                                       setValueToJsonObject(validBit, switchPort,
-                                                                       VtnServiceJsonConsts.DIRECTION,
-                                                                       VtnServiceJsonConsts.DIRECTION_INTERNAL);
-                                               } else if (null != direction
-                                                               && !direction.isEmpty()
-                                                               && direction
-                                                                               .equals(String
-                                                                                               .valueOf(UncPhysicalStructIndexEnum.UpplPortDirection.UPPL_PORT_DIR_EXTERNAL
-                                                                                                               .getValue()))) {
-                                                       setValueToJsonObject(validBit, switchPort,
-                                                                       VtnServiceJsonConsts.DIRECTION,
-                                                                       VtnServiceJsonConsts.DIRECTION_EXTERNAL);
-                                               } else if (null != direction
-                                                               && !direction.isEmpty()
-                                                               && direction
-                                                                               .equals(String
-                                                                                               .valueOf(UncPhysicalStructIndexEnum.UpplPortDirection.UPPL_PORT_DIR_UNKNOWN
-                                                                                                               .getValue()))) {
+                                               validBit = valPortStStruct
+                                                               .getByte(
+                                                                               VtnServiceIpcConsts.VALID,
+                                                                               UncPhysicalStructIndexEnum.UpplValPortStIndex.kIdxPortSpeed
+                                                                                               .ordinal());
+                                               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                                               .ordinal()
+                                                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                                               .ordinal()) {
                                                        setValueToJsonObject(validBit, switchPort,
-                                                                       VtnServiceJsonConsts.DIRECTION,
-                                                                       VtnServiceJsonConsts.DIRECTION_UNKNOWN);
-                                               } else {
-                                                       LOG.debug("Direction : invalid");
+                                                                       VtnServiceJsonConsts.SPEED,
+                                                                       IpcDataUnitWrapper.getIpcStructUint64Value(
+                                                                                       valPortStStruct,
+                                                                                       VtnServiceIpcConsts.SPEED));
                                                }
-                                               LOG.debug("Direction :"
-                                                               + IpcDataUnitWrapper.getIpcStructUint8Value(
-                                                                               valPortStStruct,
-                                                                               VtnServiceIpcConsts.DIRECTION));
-                                       }
-                                       validBit = valPortStStruct
-                                                       .getByte(
-                                                                       VtnServiceIpcConsts.VALID,
-                                                                       UncPhysicalStructIndexEnum.UpplValPortStIndex.kIdxPortLogicalPortId
-                                                                                       .ordinal());
-                                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
-                                                       .ordinal()
-                                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
-                                                                       .ordinal()) {
-                                               setValueToJsonObject(validBit, switchPort,
-                                                               VtnServiceJsonConsts.LOGICAL_PORT_ID,
-                                                               IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
-                                                                               valPortStStruct,
-                                                                               VtnServiceIpcConsts.LOGICAL_PORT_ID));
-                                       }
-                                       // getting inner structure from St struct by checking valid
-                                       // bit.
-                                       validBit = valPortStStruct
-                                                       .getByte(
-                                                                       VtnServiceIpcConsts.VALID,
-                                                                       UncPhysicalStructIndexEnum.UpplValPortStIndex.kIdxPortSt
-                                                                                       .ordinal());
-                                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
-                                                       .ordinal()
-                                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
-                                                                       .ordinal()) {
-                                               valPortStruct = IpcDataUnitWrapper.getInnerIpcStruct(
-                                                               valPortStStruct, VtnServiceIpcConsts.PORT);
-                                               validBit = valPortStruct
+                                               validBit = valPortStStruct
                                                                .getByte(
                                                                                VtnServiceIpcConsts.VALID,
-                                                                               UncPhysicalStructIndexEnum.UpplValPortIndex.kIdxPortNumber
+                                                                               UncPhysicalStructIndexEnum.UpplValPortStIndex.kIdxPortDuplex
                                                                                                .ordinal());
                                                if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
                                                                .ordinal()
                                                                && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
                                                                                .ordinal()) {
-                                                       setValueToJsonObject(validBit, switchPort,
-                                                                       VtnServiceJsonConsts.PORT_ID,
-                                                                       IpcDataUnitWrapper.getIpcStructUint32Value(
-                                                                                       valPortStruct,
-                                                                                       VtnServiceIpcConsts.PORT_NUMBER));
+                                                       final String duplexVal = IpcDataUnitWrapper
+                                                                       .getIpcStructUint8Value(valPortStStruct,
+                                                                                       VtnServiceIpcConsts.DUPLEX);
+                                                       if (null != duplexVal
+                                                                       && !duplexVal.isEmpty()
+                                                                       && duplexVal
+                                                                                       .equalsIgnoreCase(String
+                                                                                                       .valueOf(UncPhysicalStructIndexEnum.UpplPortDuplex.UPPL_PORT_DUPLEX_HALF
+                                                                                                                       .getValue()))) {
+                                                               setValueToJsonObject(validBit, switchPort,
+                                                                               VtnServiceJsonConsts.DUPLEX,
+                                                                               VtnServiceIpcConsts.HALF);
+                                                       } else if (null != duplexVal
+                                                                       && !duplexVal.isEmpty()
+                                                                       && duplexVal
+                                                                                       .equalsIgnoreCase(String
+                                                                                                       .valueOf(UncPhysicalStructIndexEnum.UpplPortDuplex.UPPL_PORT_DUPLEX_FULL
+                                                                                                                       .getValue()))) {
+                                                               setValueToJsonObject(validBit, switchPort,
+                                                                               VtnServiceJsonConsts.DUPLEX,
+                                                                               VtnServiceIpcConsts.FULL);
+                                                       } else {
+                                                               LOG.debug("Duplex : invalid");
+                                                       }
+                                                       LOG.debug("Duplex :"
+                                                                       + IpcDataUnitWrapper
+                                                                                       .getIpcStructUint8Value(
+                                                                                                       valPortStStruct,
+                                                                                                       VtnServiceIpcConsts.DUPLEX));
                                                }
-
-                                               validBit = valPortStruct
+                                               validBit = valPortStStruct
                                                                .getByte(
                                                                                VtnServiceIpcConsts.VALID,
-                                                                               UncPhysicalStructIndexEnum.UpplValPortIndex.kIdxPortDescription
+                                                                               UncPhysicalStructIndexEnum.UpplValPortStIndex.kIdxPortAlarmsStatus
                                                                                                .ordinal());
                                                if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
                                                                .ordinal()
@@ -1214,52 +1245,65 @@ public class IpcPhysicalResponseFactory {
                                                        setValueToJsonObject(
                                                                        validBit,
                                                                        switchPort,
-                                                                       VtnServiceJsonConsts.DESCRIPTION,
+                                                                       VtnServiceJsonConsts.ALARMSSTATUS,
                                                                        IpcDataUnitWrapper
-                                                                                       .getIpcStructUint8ArrayValue(
-                                                                                                       valPortStruct,
-                                                                                                       VtnServiceIpcConsts.DESCRIPTION));
+                                                                                       .getIpcStructUint64HexaValue(
+                                                                                                       valPortStStruct,
+                                                                                                       VtnServiceIpcConsts.ALARM_STATUS));
                                                }
-                                               validBit = valPortStruct
+                                               validBit = valPortStStruct
                                                                .getByte(
                                                                                VtnServiceIpcConsts.VALID,
-                                                                               UncPhysicalStructIndexEnum.UpplValPortIndex.kIdxPortAdminStatus
+                                                                               UncPhysicalStructIndexEnum.UpplValPortStIndex.kIdxPortDirection
                                                                                                .ordinal());
+
                                                if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
                                                                .ordinal()
                                                                && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
                                                                                .ordinal()) {
-                                                       if (IpcDataUnitWrapper
-                                                                       .getIpcStructUint8Value(valPortStruct,
-                                                                                       VtnServiceJsonConsts.ADMIN_STATUS)
-                                                                       .equalsIgnoreCase(
-                                                                                       UncPhysicalStructIndexEnum.UpplPortAdminStatus.UPPL_PORT_ADMIN_UP
-                                                                                                       .getValue())) {
+                                                       final String direction = IpcDataUnitWrapper
+                                                                       .getIpcStructUint8Value(valPortStStruct,
+                                                                                       VtnServiceIpcConsts.DIRECTION);
+                                                       if (null != direction
+                                                                       && !direction.isEmpty()
+                                                                       && direction
+                                                                                       .equals(String
+                                                                                                       .valueOf(UncPhysicalStructIndexEnum.UpplPortDirection.UPPL_PORT_DIR_INTERNEL
+                                                                                                                       .getValue()))) {
                                                                setValueToJsonObject(validBit, switchPort,
-                                                                               VtnServiceJsonConsts.ADMINSTATUS,
-                                                                               VtnServiceJsonConsts.UP);
-                                                       } else if (IpcDataUnitWrapper
-                                                                       .getIpcStructUint8Value(valPortStruct,
-                                                                                       VtnServiceJsonConsts.ADMIN_STATUS)
-                                                                       .equalsIgnoreCase(
-                                                                                       UncPhysicalStructIndexEnum.UpplPortAdminStatus.UPPL_PORT_ADMIN_DOWN
-                                                                                                       .getValue())) {
+                                                                               VtnServiceJsonConsts.DIRECTION,
+                                                                               VtnServiceJsonConsts.DIRECTION_INTERNAL);
+                                                       } else if (null != direction
+                                                                       && !direction.isEmpty()
+                                                                       && direction
+                                                                                       .equals(String
+                                                                                                       .valueOf(UncPhysicalStructIndexEnum.UpplPortDirection.UPPL_PORT_DIR_EXTERNAL
+                                                                                                                       .getValue()))) {
                                                                setValueToJsonObject(validBit, switchPort,
-                                                                               VtnServiceJsonConsts.ADMINSTATUS,
-                                                                               VtnServiceJsonConsts.DOWN);
+                                                                               VtnServiceJsonConsts.DIRECTION,
+                                                                               VtnServiceJsonConsts.DIRECTION_EXTERNAL);
+                                                       } else if (null != direction
+                                                                       && !direction.isEmpty()
+                                                                       && direction
+                                                                                       .equals(String
+                                                                                                       .valueOf(UncPhysicalStructIndexEnum.UpplPortDirection.UPPL_PORT_DIR_UNKNOWN
+                                                                                                                       .getValue()))) {
+                                                               setValueToJsonObject(validBit, switchPort,
+                                                                               VtnServiceJsonConsts.DIRECTION,
+                                                                               VtnServiceJsonConsts.DIRECTION_UNKNOWN);
                                                        } else {
-                                                               LOG.debug("Adminstatus : invalid");
+                                                               LOG.debug("Direction : invalid");
                                                        }
-                                                       LOG.debug("AdminStatus :"
+                                                       LOG.debug("Direction :"
                                                                        + IpcDataUnitWrapper
                                                                                        .getIpcStructUint8Value(
-                                                                                                       valPortStruct,
-                                                                                                       VtnServiceJsonConsts.ADMIN_STATUS));
+                                                                                                       valPortStStruct,
+                                                                                                       VtnServiceIpcConsts.DIRECTION));
                                                }
-                                               validBit = valPortStruct
+                                               validBit = valPortStStruct
                                                                .getByte(
                                                                                VtnServiceIpcConsts.VALID,
-                                                                               UncPhysicalStructIndexEnum.UpplValPortIndex.kIdxPortTrunkAllowedVlan
+                                                                               UncPhysicalStructIndexEnum.UpplValPortStIndex.kIdxPortLogicalPortId
                                                                                                .ordinal());
                                                if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
                                                                .ordinal()
@@ -1268,29 +1312,30 @@ public class IpcPhysicalResponseFactory {
                                                        setValueToJsonObject(
                                                                        validBit,
                                                                        switchPort,
-                                                                       VtnServiceJsonConsts.TRUNK_ALLOWED_VLAN,
+                                                                       VtnServiceJsonConsts.LOGICAL_PORT_ID,
                                                                        IpcDataUnitWrapper
-                                                                                       .getIpcStructUint16Value(
-                                                                                                       valPortStruct,
-                                                                                                       VtnServiceIpcConsts.TRUNK_ALLOWED_VLAN));
+                                                                                       .getIpcStructUint8ArrayValue(
+                                                                                                       valPortStStruct,
+                                                                                                       VtnServiceIpcConsts.LOGICAL_PORT_ID));
+                                               }
+
+                                               if (opType
+                                                               .equalsIgnoreCase(VtnServiceJsonConsts.DETAIL)) {
+                                                       LOG.debug("op : detail");
+                                                       final JsonObject vtnStationStats = createPortStatisticsJson(valPortStatsStruct);
+                                                       switchPort.add(VtnServiceJsonConsts.STATISTICS,
+                                                                       vtnStationStats);
                                                }
                                        }
                                } else {
                                        index++;
                                }
-                               if (null != switchPortArray) {
-                                       switchPortArray.add(switchPort);
-                               }
+                               switchPortArray.add(switchPort);
                        }
                        /*
-                        * finally add either array or single object to root json object and
-                        * return the same.
+                        * finally add array to root json object and return the same.
                         */
-                       if (null != switchPortArray) {
-                               root.add(rootJsonName, switchPortArray);
-                       } else {
-                               root.add(rootJsonName, switchPort);
-                       }
+                       root.add(rootJsonName, switchPortArray);
                }
                LOG.debug("Response Json: " + root.toString());
                LOG.trace("Complete getSwitchPortResponse");
@@ -1298,50 +1343,234 @@ public class IpcPhysicalResponseFactory {
        }
 
        /**
-        * Gets the Switch port member response.
+        * Create Json Port Statistics information
         * 
-        * @param responsePacket
-        *            the response packet
-        * @param switchPort
-        *            the switchPort Json Object
-        * @param getType
-        *            the operation type
-        * @return the domain logical port member response
+        * @param createPortStatisticsJson
+        * @return
         */
-       public JsonObject getSwitchPortMemberResponse(
-                       final IpcDataUnit[] responsePacket, final JsonObject switchPort,
-                       final String getType) {
-               LOG.trace("Start getSwitchPortMemberResponse");
-               final JsonObject switchPortNeighbour = new JsonObject();
-               int index = 0;
+       private JsonObject createPortStatisticsJson(final IpcStruct valPortStats) {
+               LOG.trace("Start createPortStatisticsJson");
                byte validBit;
-               if (responsePacket != null && responsePacket.length > 0) {
-                       IpcStruct valPortStNeighbourStruct = null;
-                       LOG.debug("getType: " + getType);
-                       // skipping key type
-                       LOG.debug("Skip key type: no use");
-                       index++;
-                       // skipping key structure
-                       LOG.debug("Skip key structure: no use");
-                       index++;
-                       valPortStNeighbourStruct = (IpcStruct) responsePacket[index++];
-                       validBit = valPortStNeighbourStruct
-                                       .getByte(
-                                                       VtnServiceIpcConsts.VALID,
-                                                       UncPhysicalStructIndexEnum.UpplValPortNeighborIndex.kIdxPortConnectedSwitchId
-                                                                       .ordinal());
-                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
-                                       .ordinal()
-                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
-                                                       .ordinal()) {
-                               setValueToJsonObject(validBit, switchPortNeighbour,
-                                               VtnServiceJsonConsts.CONNECTED_SWITCH_ID,
-                                               IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
-                                                               valPortStNeighbourStruct,
-                                                               VtnServiceIpcConsts.CONNECTED_SWITCH_ID));
-                       }
-                       validBit = valPortStNeighbourStruct
-                                       .getByte(
+               final JsonObject switchPortStats = new JsonObject();
+
+               validBit = valPortStats
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncPhysicalStructIndexEnum.upplVaPortStatsIndex.kIdxPortStatRxPackets
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, switchPortStats,
+                                       VtnServiceJsonConsts.RX_PACKETS,
+                                       IpcDataUnitWrapper.getIpcStructUint64Value(valPortStats,
+                                                       VtnServiceIpcConsts.RX_PACKETS));
+               }
+               validBit = valPortStats
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncPhysicalStructIndexEnum.upplVaPortStatsIndex.kIdxPortStatRxBytes
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, switchPortStats,
+                                       VtnServiceJsonConsts.RX_BYTES,
+                                       IpcDataUnitWrapper.getIpcStructUint64Value(valPortStats,
+                                                       VtnServiceIpcConsts.RX_BYTES));
+               }
+               validBit = valPortStats
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncPhysicalStructIndexEnum.upplVaPortStatsIndex.kIdxPortStatRxDropped
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, switchPortStats,
+                                       VtnServiceJsonConsts.RX_DROPPED,
+                                       IpcDataUnitWrapper.getIpcStructUint64Value(valPortStats,
+                                                       VtnServiceIpcConsts.RX_DROPPED));
+               }
+               validBit = valPortStats
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncPhysicalStructIndexEnum.upplVaPortStatsIndex.kIdxPortStatRxErrors
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, switchPortStats,
+                                       VtnServiceJsonConsts.RX_ERRORS,
+                                       IpcDataUnitWrapper.getIpcStructUint64Value(valPortStats,
+                                                       VtnServiceIpcConsts.RX_ERRORS));
+               }
+               validBit = valPortStats
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncPhysicalStructIndexEnum.upplVaPortStatsIndex.kIdxPortStatRxFrameErr
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, switchPortStats,
+                                       VtnServiceJsonConsts.RX_FRAMEERR,
+                                       IpcDataUnitWrapper.getIpcStructUint64Value(valPortStats,
+                                                       VtnServiceIpcConsts.RX_FRAME_ERR));
+               }
+               validBit = valPortStats
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncPhysicalStructIndexEnum.upplVaPortStatsIndex.kIdxPortStatRxCrcErr
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, switchPortStats,
+                                       VtnServiceJsonConsts.RX_CRCERR,
+                                       IpcDataUnitWrapper.getIpcStructUint64Value(valPortStats,
+                                                       VtnServiceIpcConsts.RX_CRC_ERRS));
+               }
+               validBit = valPortStats
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncPhysicalStructIndexEnum.upplVaPortStatsIndex.kIdxPortStatRxOverErr
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, switchPortStats,
+                                       VtnServiceJsonConsts.RX_OVERERR,
+                                       IpcDataUnitWrapper.getIpcStructUint64Value(valPortStats,
+                                                       VtnServiceIpcConsts.RX_OVER_ERR));
+               }
+               validBit = valPortStats
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncPhysicalStructIndexEnum.upplVaPortStatsIndex.kIdxPortStatTxPackets
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, switchPortStats,
+                                       VtnServiceJsonConsts.TX_PACKETS,
+                                       IpcDataUnitWrapper.getIpcStructUint64Value(valPortStats,
+                                                       VtnServiceIpcConsts.TX_PACKETS));
+               }
+               validBit = valPortStats
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncPhysicalStructIndexEnum.upplVaPortStatsIndex.kIdxPortStatTxBytes
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, switchPortStats,
+                                       VtnServiceJsonConsts.TX_BYTES,
+                                       IpcDataUnitWrapper.getIpcStructUint64Value(valPortStats,
+                                                       VtnServiceIpcConsts.TX_BYTES));
+               }
+               validBit = valPortStats
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncPhysicalStructIndexEnum.upplVaPortStatsIndex.kIdxPortStatTxDropped
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, switchPortStats,
+                                       VtnServiceJsonConsts.TX_DROPPED,
+                                       IpcDataUnitWrapper.getIpcStructUint64Value(valPortStats,
+                                                       VtnServiceIpcConsts.TX_DROPPED));
+               }
+               validBit = valPortStats
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncPhysicalStructIndexEnum.upplVaPortStatsIndex.kIdxPortStatTxErrors
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, switchPortStats,
+                                       VtnServiceJsonConsts.TX_ERRORS,
+                                       IpcDataUnitWrapper.getIpcStructUint64Value(valPortStats,
+                                                       VtnServiceIpcConsts.TX_ERRORS));
+               }
+               validBit = valPortStats
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncPhysicalStructIndexEnum.upplVaPortStatsIndex.kIdxPortStatCollisions
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, switchPortStats,
+                                       VtnServiceJsonConsts.COLLISIONS,
+                                       IpcDataUnitWrapper.getIpcStructUint64Value(valPortStats,
+                                                       VtnServiceIpcConsts.COLLISIONS));
+               }
+               LOG.debug("Statistics Json: " + switchPortStats.toString());
+               LOG.trace("Complete createPortStatisticsJson");
+               return switchPortStats;
+       }
+
+       /**
+        * Gets the Switch port member response.
+        * 
+        * @param responsePacket
+        *            the response packet
+        * @param switchPort
+        *            the switchPort Json Object
+        * @param getType
+        *            the operation type
+        * @return the domain logical port member response
+        */
+       public JsonObject getSwitchPortMemberResponse(
+                       final IpcDataUnit[] responsePacket, final JsonObject switchPort,
+                       final String getType) {
+               LOG.trace("Start getSwitchPortMemberResponse");
+               final JsonObject switchPortNeighbour = new JsonObject();
+               int index = 0;
+               byte validBit;
+               if (responsePacket != null && responsePacket.length > 0) {
+                       IpcStruct valPortStNeighbourStruct = null;
+                       LOG.debug("getType: " + getType);
+                       // skipping key type
+                       LOG.debug("Skip key type: no use");
+                       index++;
+                       // skipping key structure
+                       LOG.debug("Skip key structure: no use");
+                       index++;
+                       valPortStNeighbourStruct = (IpcStruct) responsePacket[index++];
+                       validBit = valPortStNeighbourStruct
+                                       .getByte(
+                                                       VtnServiceIpcConsts.VALID,
+                                                       UncPhysicalStructIndexEnum.UpplValPortNeighborIndex.kIdxPortConnectedSwitchId
+                                                                       .ordinal());
+                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                       .ordinal()
+                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                       .ordinal()) {
+                               setValueToJsonObject(validBit, switchPortNeighbour,
+                                               VtnServiceJsonConsts.CONNECTED_SWITCH_ID,
+                                               IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
+                                                               valPortStNeighbourStruct,
+                                                               VtnServiceIpcConsts.CONNECTED_SWITCH_ID));
+                       }
+                       validBit = valPortStNeighbourStruct
+                                       .getByte(
                                                        VtnServiceIpcConsts.VALID,
                                                        UncPhysicalStructIndexEnum.UpplValPortNeighborIndex.kIdxPortConnectedPortId
                                                                        .ordinal());
@@ -1379,11 +1608,10 @@ public class IpcPhysicalResponseFactory {
         * @return the link response
         */
        public JsonObject getLinkResponse(final IpcDataUnit[] responsePacket,
-                       final JsonObject requestBody, final String getType) {
+                       final JsonObject requestBody) {
                LOG.trace("Start getLinkResponse");
                final JsonObject root = new JsonObject();
-               JsonArray linksArray = null;
-               LOG.debug("getType: " + getType);
+               final JsonArray linksArray = new JsonArray();
                /*
                 * operation type will be required to resolve the response type
                 */
@@ -1391,18 +1619,7 @@ public class IpcPhysicalResponseFactory {
                if (requestBody.has(VtnServiceJsonConsts.OP)) {
                        opType = requestBody.get(VtnServiceJsonConsts.OP).getAsString();
                }
-               String rootJsonName;
-               /*
-                * get type (show or list) will be required to resolve root json name
-                * here it will be link for show and links for list
-                */
-               if (getType.equals(VtnServiceJsonConsts.SHOW)) {
-                       rootJsonName = VtnServiceJsonConsts.LINK;
-               } else {
-                       rootJsonName = VtnServiceJsonConsts.LINKS;
-                       // json array will be required for list type of cases
-                       linksArray = new JsonArray();
-               }
+               final String rootJsonName = VtnServiceJsonConsts.LINKS;
                LOG.debug("Json Name :" + rootJsonName);
                JsonObject links = null;
                if (opType.equalsIgnoreCase(VtnServiceJsonConsts.COUNT)) {
@@ -1410,11 +1627,19 @@ public class IpcPhysicalResponseFactory {
                         * Create Json for Count
                         */
                        links = new JsonObject();
-                       links.addProperty(
-                                       VtnServiceJsonConsts.COUNT,
-                                       IpcDataUnitWrapper
-                                                       .getIpcDataUnitValue(responsePacket[VtnServiceConsts.IPC_COUNT_INDEX]));
+                       int count = VtnServiceJsonConsts.VAL_1;
+                       if (!requestBody.has(VtnServiceJsonConsts.LINKNAME)) {
+                               count = Integer
+                                               .parseInt(IpcDataUnitWrapper
+                                                               .getIpcDataUnitValue(responsePacket[VtnServiceConsts.IPC_COUNT_INDEX]));
+                       } else {
+                               if (responsePacket.length == 0) {
+                                       count = responsePacket.length;
+                               }
+                       }
+                       links.addProperty(VtnServiceJsonConsts.COUNT, count);
                        root.add(rootJsonName, links);
+
                } else {
                        for (int index = 0; index < responsePacket.length; index++) {
                                links = new JsonObject();
@@ -1426,7 +1651,7 @@ public class IpcPhysicalResponseFactory {
                                 * add mandatory informations from key structure
                                 */
                                final IpcStruct keyLinkStruct = (IpcStruct) responsePacket[index++];
-                               String linkname = "";
+                               String linkname;
                                final String switch1_id = IpcDataUnitWrapper
                                                .getIpcStructUint8ArrayValue(keyLinkStruct,
                                                                VtnServiceIpcConsts.SWITCH_ID1);
@@ -1448,8 +1673,7 @@ public class IpcPhysicalResponseFactory {
                                 * this part is always required in Show, but not required in
                                 * List + "normal" op type
                                 */
-                               if (getType.equals(VtnServiceJsonConsts.SHOW)
-                                               || opType.equalsIgnoreCase(VtnServiceJsonConsts.DETAIL)) {
+                               if (opType.equalsIgnoreCase(VtnServiceJsonConsts.DETAIL)) {
                                        LOG.debug("Case : Show or detail");
                                        links.addProperty(VtnServiceJsonConsts.SWITCH1ID,
                                                        switch1_id);
@@ -1545,21 +1769,13 @@ public class IpcPhysicalResponseFactory {
                                        LOG.debug("Operation : normal Skip value struture");
                                        index++;
                                }
-                               // add current json object to array, if it has been initialized
-                               // earlier
-                               if (null != linksArray) {
-                                       linksArray.add(links);
-                               }
+                               // add current json object to array
+                               linksArray.add(links);
                        }
                        /*
-                        * finally add either array or single object to root json object and
-                        * return the same.
+                        * finally add array to root json object and return the same.
                         */
-                       if (null != linksArray) {
-                               root.add(rootJsonName, linksArray);
-                       } else {
-                               root.add(rootJsonName, links);
-                       }
+                       root.add(rootJsonName, linksArray);
                }
                LOG.debug("Response Json: " + root.toString());
                LOG.trace("Complete getLinkResponse");
@@ -1642,6 +1858,7 @@ public class IpcPhysicalResponseFactory {
                                                        .getIpcDataUnitValue(responsePacket[VtnServiceConsts.IPC_COUNT_INDEX]));
                        root.add(rootJsonName, switches);
                } else {
+                       JsonObject statisticsJson = null;
                        for (int index = 0; index < responsePacket.length; index++) {
 
                                switches = new JsonObject();
@@ -1662,129 +1879,283 @@ public class IpcPhysicalResponseFactory {
                                 */
                                if (getType.equals(VtnServiceJsonConsts.SHOW)
                                                || opType.equalsIgnoreCase(VtnServiceJsonConsts.DETAIL)) {
+
                                        LOG.debug("Case : Show or detail");
-                                       /*
-                                        * add valid informations from value structure
-                                        */
-                                       final IpcStruct valSwitchStStruct = (IpcStruct) responsePacket[index++];
-                                       validBit = valSwitchStStruct
-                                                       .getByte(
-                                                                       VtnServiceIpcConsts.VALID,
-                                                                       UncPhysicalStructIndexEnum.UpplValSwitchStIndex.kIdxSwitch
-                                                                                       .ordinal());
-                                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
-                                                       .ordinal()
-                                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
-                                                                       .ordinal()) {
-                                               // IpcStruct valSwitchStruct=
-                                               // (IpcStruct)valSwitchStStruct.get(VtnServiceIpcConsts.SWITCH_VAL);
-                                               final IpcStruct valSwitchStruct = IpcDataUnitWrapper
-                                                               .getInnerIpcStruct(valSwitchStStruct,
-                                                                               VtnServiceIpcConsts.SWITCH_VAL);
-                                               validBit = valSwitchStruct
+
+                                       IpcStruct valSwitchStStruct = (IpcStruct) responsePacket[index++];
+
+                                       if (getType.equals(VtnServiceJsonConsts.SHOW)
+                                                       && opType
+                                                                       .equalsIgnoreCase(VtnServiceJsonConsts.DETAIL)) {
+                                               LOG.debug("Case : Show with detail");
+                                               final IpcStruct valSwitchStDetailStruct = valSwitchStStruct;
+                                               statisticsJson = new JsonObject();
+                                               validBit = valSwitchStDetailStruct
                                                                .getByte(
                                                                                VtnServiceIpcConsts.VALID,
-                                                                               UncPhysicalStructIndexEnum.UpplValSwitchIndex.kIdxSwitchDescription
+                                                                               UncPhysicalStructIndexEnum.UpplValSwitchStDetailIndex.kIdxSwitchSt
                                                                                                .ordinal());
+
                                                if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
                                                                .ordinal()
                                                                && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
                                                                                .ordinal()) {
-                                                       setValueToJsonObject(
-                                                                       validBit,
-                                                                       switches,
-                                                                       VtnServiceJsonConsts.DESCRIPTION,
-                                                                       IpcDataUnitWrapper
-                                                                                       .getIpcStructUint8ArrayValue(
-                                                                                                       valSwitchStruct,
-                                                                                                       VtnServiceIpcConsts.DESCRIPTION));
+                                                       valSwitchStStruct = valSwitchStDetailStruct
+                                                                       .getInner(VtnServiceIpcConsts.SWITCH_ST_VAL);
+                                               } else {
+                                                       valSwitchStStruct = null;
                                                }
-                                               validBit = valSwitchStruct
+
+                                               validBit = valSwitchStDetailStruct
                                                                .getByte(
                                                                                VtnServiceIpcConsts.VALID,
-                                                                               UncPhysicalStructIndexEnum.UpplValSwitchIndex.kIdxSwitchModel
+                                                                               UncPhysicalStructIndexEnum.UpplValSwitchStDetailIndex.kIdxSwitchStatFlowCount
                                                                                                .ordinal());
+
                                                if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
                                                                .ordinal()
                                                                && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
                                                                                .ordinal()) {
-                                                       setValueToJsonObject(validBit, switches,
-                                                                       VtnServiceJsonConsts.MODEL,
-                                                                       IpcDataUnitWrapper
-                                                                                       .getIpcStructUint8ArrayValue(
-                                                                                                       valSwitchStruct,
-                                                                                                       VtnServiceJsonConsts.MODEL));
+
+                                                       setValueToJsonObject(validBit, statisticsJson,
+                                                                       VtnServiceJsonConsts.FLOWCOUNT,
+                                                                       IpcDataUnitWrapper.getIpcStructUint32Value(
+                                                                                       valSwitchStDetailStruct,
+                                                                                       VtnServiceIpcConsts.FLOW_COUNT));
+                                               }
+                                       }
+
+                                       if (valSwitchStStruct != null) {
+                                               /*
+                                                * add valid informations from value structure
+                                                */
+                                               validBit = valSwitchStStruct
+                                                               .getByte(
+                                                                               VtnServiceIpcConsts.VALID,
+                                                                               UncPhysicalStructIndexEnum.UpplValSwitchStIndex.kIdxSwitch
+                                                                                               .ordinal());
+                                               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                                               .ordinal()
+                                                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                                               .ordinal()) {
+                                                       final IpcStruct valSwitchStruct = IpcDataUnitWrapper
+                                                                       .getInnerIpcStruct(valSwitchStStruct,
+                                                                                       VtnServiceIpcConsts.SWITCH_VAL);
+                                                       validBit = valSwitchStruct
+                                                                       .getByte(
+                                                                                       VtnServiceIpcConsts.VALID,
+                                                                                       UncPhysicalStructIndexEnum.UpplValSwitchIndex.kIdxSwitchDescription
+                                                                                                       .ordinal());
+                                                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                                                       .ordinal()
+                                                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                                                       .ordinal()) {
+                                                               setValueToJsonObject(
+                                                                               validBit,
+                                                                               switches,
+                                                                               VtnServiceJsonConsts.DESCRIPTION,
+                                                                               IpcDataUnitWrapper
+                                                                                               .getIpcStructUint8ArrayValue(
+                                                                                                               valSwitchStruct,
+                                                                                                               VtnServiceIpcConsts.DESCRIPTION));
+                                                       }
+                                                       validBit = valSwitchStruct
+                                                                       .getByte(
+                                                                                       VtnServiceIpcConsts.VALID,
+                                                                                       UncPhysicalStructIndexEnum.UpplValSwitchIndex.kIdxSwitchModel
+                                                                                                       .ordinal());
+                                                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                                                       .ordinal()
+                                                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                                                       .ordinal()) {
+                                                               setValueToJsonObject(
+                                                                               validBit,
+                                                                               switches,
+                                                                               VtnServiceJsonConsts.MODEL,
+                                                                               IpcDataUnitWrapper
+                                                                                               .getIpcStructUint8ArrayValue(
+                                                                                                               valSwitchStruct,
+                                                                                                               VtnServiceJsonConsts.MODEL));
+                                                       }
+                                                       validBit = valSwitchStruct
+                                                                       .getByte(
+                                                                                       VtnServiceIpcConsts.VALID,
+                                                                                       UncPhysicalStructIndexEnum.UpplValSwitchIndex.kIdxSwitchAdminStatus
+                                                                                                       .ordinal());
+                                                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                                                       .ordinal()
+                                                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                                                       .ordinal()) {
+                                                               if (IpcDataUnitWrapper
+                                                                               .getIpcStructUint8Value(
+                                                                                               valSwitchStruct,
+                                                                                               VtnServiceJsonConsts.ADMIN_STATUS)
+                                                                               .equalsIgnoreCase(
+                                                                                               UncPhysicalStructIndexEnum.UpplSwitchAdminStatus.UPPL_SWITCH_ADMIN_DOWN
+                                                                                                               .getValue())) {
+                                                                       setValueToJsonObject(validBit, switches,
+                                                                                       VtnServiceJsonConsts.ADMINSTATUS,
+                                                                                       VtnServiceJsonConsts.DOWN);
+                                                               } else if (IpcDataUnitWrapper
+                                                                               .getIpcStructUint8Value(
+                                                                                               valSwitchStruct,
+                                                                                               VtnServiceJsonConsts.ADMIN_STATUS)
+                                                                               .equalsIgnoreCase(
+                                                                                               UncPhysicalStructIndexEnum.UpplSwitchAdminStatus.UPPL_SWITCH_ADMIN_UP
+                                                                                                               .getValue())) {
+                                                                       setValueToJsonObject(validBit, switches,
+                                                                                       VtnServiceJsonConsts.ADMINSTATUS,
+                                                                                       VtnServiceJsonConsts.UP);
+                                                               } else {
+                                                                       LOG.debug("Adminstatus : invalid");
+                                                               }
+                                                               LOG.debug("Adminstatus :"
+                                                                               + IpcDataUnitWrapper
+                                                                                               .getIpcStructUint8Value(
+                                                                                                               valSwitchStruct,
+                                                                                                               VtnServiceJsonConsts.ADMIN_STATUS));
+                                                       }
+                                                       validBit = valSwitchStruct
+                                                                       .getByte(
+                                                                                       VtnServiceIpcConsts.VALID,
+                                                                                       UncPhysicalStructIndexEnum.UpplValSwitchIndex.kIdxSwitchIPAddress
+                                                                                                       .ordinal());
+                                                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                                                       .ordinal()
+                                                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                                                       .ordinal()) {
+                                                               setValueToJsonObject(
+                                                                               validBit,
+                                                                               switches,
+                                                                               VtnServiceJsonConsts.IPADDR,
+                                                                               IpcDataUnitWrapper
+                                                                                               .getIpcStructIpv4Value(
+                                                                                                               valSwitchStruct,
+                                                                                                               VtnServiceIpcConsts.IP_ADDRESS));
+                                                       }
+                                                       validBit = valSwitchStruct
+                                                                       .getByte(
+                                                                                       VtnServiceIpcConsts.VALID,
+                                                                                       UncPhysicalStructIndexEnum.UpplValSwitchIndex.kIdxSwitchIPV6Address
+                                                                                                       .ordinal());
+                                                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                                                       .ordinal()
+                                                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                                                       .ordinal()) {
+                                                               setValueToJsonObject(
+                                                                               validBit,
+                                                                               switches,
+                                                                               VtnServiceJsonConsts.IPV6ADDR,
+                                                                               IpcDataUnitWrapper
+                                                                                               .getIpcStructIpv6Value(
+                                                                                                               valSwitchStruct,
+                                                                                                               VtnServiceIpcConsts.IPV6_ADDRESS));
+                                                       }
+                                                       validBit = valSwitchStruct
+                                                                       .getByte(
+                                                                                       VtnServiceIpcConsts.VALID,
+                                                                                       UncPhysicalStructIndexEnum.UpplValSwitchIndex.kIdxSwitchDomainName
+                                                                                                       .ordinal());
+                                                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                                                       .ordinal()
+                                                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                                                       .ordinal()) {
+                                                               setValueToJsonObject(
+                                                                               validBit,
+                                                                               switches,
+                                                                               VtnServiceJsonConsts.DOMAINID,
+                                                                               IpcDataUnitWrapper
+                                                                                               .getIpcStructUint8ArrayValue(
+                                                                                                               valSwitchStruct,
+                                                                                                               VtnServiceIpcConsts.DOMAIN_NAME));
+                                                       }
                                                }
-                                               validBit = valSwitchStruct
+                                               // from switch st structure
+                                               validBit = valSwitchStStruct
                                                                .getByte(
                                                                                VtnServiceIpcConsts.VALID,
-                                                                               UncPhysicalStructIndexEnum.UpplValSwitchIndex.kIdxSwitchAdminStatus
+                                                                               UncPhysicalStructIndexEnum.UpplValSwitchStIndex.kIdxSwitchOperStatus
                                                                                                .ordinal());
                                                if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
                                                                .ordinal()
                                                                && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
                                                                                .ordinal()) {
                                                        if (IpcDataUnitWrapper
-                                                                       .getIpcStructUint8Value(valSwitchStruct,
-                                                                                       VtnServiceJsonConsts.ADMIN_STATUS)
+                                                                       .getIpcStructUint8Value(valSwitchStStruct,
+                                                                                       VtnServiceIpcConsts.OPERSTATUS)
+                                                                       .equalsIgnoreCase(
+                                                                                       UncPhysicalStructIndexEnum.UpplSwitchOperStatus.UPPL_SWITCH_OPER_UP
+                                                                                                       .getValue())) {
+                                                               setValueToJsonObject(validBit, switches,
+                                                                               VtnServiceJsonConsts.OPERSTATUS,
+                                                                               VtnServiceJsonConsts.UP);
+                                                       } else if (IpcDataUnitWrapper
+                                                                       .getIpcStructUint8Value(valSwitchStStruct,
+                                                                                       VtnServiceIpcConsts.OPERSTATUS)
                                                                        .equalsIgnoreCase(
-                                                                                       UncPhysicalStructIndexEnum.UpplSwitchAdminStatus.UPPL_SWITCH_ADMIN_DOWN
+                                                                                       UncPhysicalStructIndexEnum.UpplSwitchOperStatus.UPPL_SWITCH_OPER_DOWN
                                                                                                        .getValue())) {
                                                                setValueToJsonObject(validBit, switches,
-                                                                               VtnServiceJsonConsts.ADMINSTATUS,
+                                                                               VtnServiceJsonConsts.OPERSTATUS,
                                                                                VtnServiceJsonConsts.DOWN);
                                                        } else if (IpcDataUnitWrapper
-                                                                       .getIpcStructUint8Value(valSwitchStruct,
-                                                                                       VtnServiceJsonConsts.ADMIN_STATUS)
+                                                                       .getIpcStructUint8Value(valSwitchStStruct,
+                                                                                       VtnServiceIpcConsts.OPERSTATUS)
                                                                        .equalsIgnoreCase(
-                                                                                       UncPhysicalStructIndexEnum.UpplSwitchAdminStatus.UPPL_SWITCH_ADMIN_UP
+                                                                                       UncPhysicalStructIndexEnum.UpplSwitchOperStatus.UPPL_SWITCH_OPER_UNKNOWN
                                                                                                        .getValue())) {
                                                                setValueToJsonObject(validBit, switches,
-                                                                               VtnServiceJsonConsts.ADMINSTATUS,
-                                                                               VtnServiceJsonConsts.UP);
+                                                                               VtnServiceJsonConsts.OPERSTATUS,
+                                                                               VtnServiceJsonConsts.UNKNOWN);
                                                        } else {
-                                                               LOG.debug("Adminstatus : invalid");
+                                                               LOG.debug("Operstatus : invalid");
                                                        }
-                                                       LOG.debug("Adminstatus :"
+                                                       LOG.debug("Operstatus :"
                                                                        + IpcDataUnitWrapper
                                                                                        .getIpcStructUint8Value(
-                                                                                                       valSwitchStruct,
-                                                                                                       VtnServiceJsonConsts.ADMIN_STATUS));
+                                                                                                       valSwitchStStruct,
+                                                                                                       VtnServiceIpcConsts.OPERSTATUS));
                                                }
-                                               validBit = valSwitchStruct
+                                               validBit = valSwitchStStruct
                                                                .getByte(
                                                                                VtnServiceIpcConsts.VALID,
-                                                                               UncPhysicalStructIndexEnum.UpplValSwitchIndex.kIdxSwitchIPAddress
+                                                                               UncPhysicalStructIndexEnum.UpplValSwitchStIndex.kIdxSwitchManufacturer
                                                                                                .ordinal());
                                                if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
                                                                .ordinal()
                                                                && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
                                                                                .ordinal()) {
-                                                       setValueToJsonObject(validBit, switches,
-                                                                       VtnServiceJsonConsts.IPADDR,
-                                                                       IpcDataUnitWrapper.getIpcStructIpv4Value(
-                                                                                       valSwitchStruct,
-                                                                                       VtnServiceIpcConsts.IP_ADDRESS));
+                                                       setValueToJsonObject(
+                                                                       validBit,
+                                                                       switches,
+                                                                       VtnServiceJsonConsts.MANUFACTURER,
+                                                                       IpcDataUnitWrapper
+                                                                                       .getIpcStructUint8ArrayValue(
+                                                                                                       valSwitchStStruct,
+                                                                                                       VtnServiceJsonConsts.MANUFACTURER));
                                                }
-                                               validBit = valSwitchStruct
+                                               validBit = valSwitchStStruct
                                                                .getByte(
                                                                                VtnServiceIpcConsts.VALID,
-                                                                               UncPhysicalStructIndexEnum.UpplValSwitchIndex.kIdxSwitchIPV6Address
+                                                                               UncPhysicalStructIndexEnum.UpplValSwitchStIndex.kIdxSwitchHardware
                                                                                                .ordinal());
                                                if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
                                                                .ordinal()
                                                                && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
                                                                                .ordinal()) {
-                                                       setValueToJsonObject(validBit, switches,
-                                                                       VtnServiceJsonConsts.IPV6ADDR,
-                                                                       IpcDataUnitWrapper.getIpcStructIpv6Value(
-                                                                                       valSwitchStruct,
-                                                                                       VtnServiceIpcConsts.IPV6_ADDRESS));
+                                                       setValueToJsonObject(
+                                                                       validBit,
+                                                                       switches,
+                                                                       VtnServiceJsonConsts.HARDWARE,
+                                                                       IpcDataUnitWrapper
+                                                                                       .getIpcStructUint8ArrayValue(
+                                                                                                       valSwitchStStruct,
+                                                                                                       VtnServiceJsonConsts.HARDWARE));
                                                }
-                                               validBit = valSwitchStruct
+                                               validBit = valSwitchStStruct
                                                                .getByte(
                                                                                VtnServiceIpcConsts.VALID,
-                                                                               UncPhysicalStructIndexEnum.UpplValSwitchIndex.kIdxSwitchDomainName
+                                                                               UncPhysicalStructIndexEnum.UpplValSwitchStIndex.kIdxSwitchSoftware
                                                                                                .ordinal());
                                                if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
                                                                .ordinal()
@@ -1793,118 +2164,31 @@ public class IpcPhysicalResponseFactory {
                                                        setValueToJsonObject(
                                                                        validBit,
                                                                        switches,
-                                                                       VtnServiceJsonConsts.DOMAINID,
+                                                                       VtnServiceJsonConsts.SOFTWARE,
                                                                        IpcDataUnitWrapper
                                                                                        .getIpcStructUint8ArrayValue(
-                                                                                                       valSwitchStruct,
-                                                                                                       VtnServiceIpcConsts.DOMAIN_NAME));
+                                                                                                       valSwitchStStruct,
+                                                                                                       VtnServiceJsonConsts.SOFTWARE));
+                                               }
+                                               validBit = valSwitchStStruct
+                                                               .getByte(
+                                                                               VtnServiceIpcConsts.VALID,
+                                                                               UncPhysicalStructIndexEnum.UpplValSwitchStIndex.kIdxSwitchAlarmStatus
+                                                                                               .ordinal());
+                                               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                                               .ordinal()
+                                                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                                               .ordinal()) {
+                                                       setValueToJsonObject(
+                                                                       validBit,
+                                                                       switches,
+                                                                       VtnServiceJsonConsts.ALARMSSTATUS,
+                                                                       IpcDataUnitWrapper
+                                                                                       .getIpcStructUint64HexaValue(
+                                                                                                       valSwitchStStruct,
+                                                                                                       VtnServiceIpcConsts.ALARM_STATUS));
                                                }
                                        }
-                                       // from switch st structure
-                                       validBit = valSwitchStStruct
-                                                       .getByte(
-                                                                       VtnServiceIpcConsts.VALID,
-                                                                       UncPhysicalStructIndexEnum.UpplValSwitchStIndex.kIdxSwitchOperStatus
-                                                                                       .ordinal());
-                                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
-                                                       .ordinal()
-                                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
-                                                                       .ordinal()) {
-                                               if (IpcDataUnitWrapper
-                                                               .getIpcStructUint8Value(valSwitchStStruct,
-                                                                               VtnServiceIpcConsts.OPERSTATUS)
-                                                               .equalsIgnoreCase(
-                                                                               UncPhysicalStructIndexEnum.UpplSwitchOperStatus.UPPL_SWITCH_OPER_UP
-                                                                                               .getValue())) {
-                                                       setValueToJsonObject(validBit, switches,
-                                                                       VtnServiceJsonConsts.OPERSTATUS,
-                                                                       VtnServiceJsonConsts.UP);
-                                               } else if (IpcDataUnitWrapper
-                                                               .getIpcStructUint8Value(valSwitchStStruct,
-                                                                               VtnServiceIpcConsts.OPERSTATUS)
-                                                               .equalsIgnoreCase(
-                                                                               UncPhysicalStructIndexEnum.UpplSwitchOperStatus.UPPL_SWITCH_OPER_DOWN
-                                                                                               .getValue())) {
-                                                       setValueToJsonObject(validBit, switches,
-                                                                       VtnServiceJsonConsts.OPERSTATUS,
-                                                                       VtnServiceJsonConsts.DOWN);
-                                               } else if (IpcDataUnitWrapper
-                                                               .getIpcStructUint8Value(valSwitchStStruct,
-                                                                               VtnServiceIpcConsts.OPERSTATUS)
-                                                               .equalsIgnoreCase(
-                                                                               UncPhysicalStructIndexEnum.UpplSwitchOperStatus.UPPL_SWITCH_OPER_UNKNOWN
-                                                                                               .getValue())) {
-                                                       setValueToJsonObject(validBit, switches,
-                                                                       VtnServiceJsonConsts.OPERSTATUS,
-                                                                       VtnServiceJsonConsts.UNKNOWN);
-                                               } else {
-                                                       LOG.debug("Operstatus : invalid");
-                                               }
-                                               LOG.debug("Operstatus :"
-                                                               + IpcDataUnitWrapper.getIpcStructUint8Value(
-                                                                               valSwitchStStruct,
-                                                                               VtnServiceIpcConsts.OPERSTATUS));
-                                       }
-                                       validBit = valSwitchStStruct
-                                                       .getByte(
-                                                                       VtnServiceIpcConsts.VALID,
-                                                                       UncPhysicalStructIndexEnum.UpplValSwitchStIndex.kIdxSwitchManufacturer
-                                                                                       .ordinal());
-                                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
-                                                       .ordinal()
-                                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
-                                                                       .ordinal()) {
-                                               setValueToJsonObject(validBit, switches,
-                                                               VtnServiceJsonConsts.MANUFACTURER,
-                                                               IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
-                                                                               valSwitchStStruct,
-                                                                               VtnServiceJsonConsts.MANUFACTURER));
-                                       }
-                                       validBit = valSwitchStStruct
-                                                       .getByte(
-                                                                       VtnServiceIpcConsts.VALID,
-                                                                       UncPhysicalStructIndexEnum.UpplValSwitchStIndex.kIdxSwitchHardware
-                                                                                       .ordinal());
-                                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
-                                                       .ordinal()
-                                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
-                                                                       .ordinal()) {
-                                               setValueToJsonObject(validBit, switches,
-                                                               VtnServiceJsonConsts.HARDWARE,
-                                                               IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
-                                                                               valSwitchStStruct,
-                                                                               VtnServiceJsonConsts.HARDWARE));
-                                       }
-                                       validBit = valSwitchStStruct
-                                                       .getByte(
-                                                                       VtnServiceIpcConsts.VALID,
-                                                                       UncPhysicalStructIndexEnum.UpplValSwitchStIndex.kIdxSwitchSoftware
-                                                                                       .ordinal());
-                                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
-                                                       .ordinal()
-                                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
-                                                                       .ordinal()) {
-                                               setValueToJsonObject(validBit, switches,
-                                                               VtnServiceJsonConsts.SOFTWARE,
-                                                               IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
-                                                                               valSwitchStStruct,
-                                                                               VtnServiceJsonConsts.SOFTWARE));
-                                       }
-                                       validBit = valSwitchStStruct
-                                                       .getByte(
-                                                                       VtnServiceIpcConsts.VALID,
-                                                                       UncPhysicalStructIndexEnum.UpplValSwitchStIndex.kIdxSwitchAlarmStatus
-                                                                                       .ordinal());
-                                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
-                                                       .ordinal()
-                                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
-                                                                       .ordinal()) {
-                                               setValueToJsonObject(validBit, switches,
-                                                               VtnServiceJsonConsts.ALARMSSTATUS,
-                                                               IpcDataUnitWrapper.getIpcStructUint64HexaValue(
-                                                                               valSwitchStStruct,
-                                                                               VtnServiceIpcConsts.ALARM_STATUS));
-                                       }
                                } else {
                                        LOG.debug("Operation : normal Skip value struture");
                                        index++;
@@ -1922,6 +2206,11 @@ public class IpcPhysicalResponseFactory {
                        if (null != switchesArray) {
                                root.add(rootJsonName, switchesArray);
                        } else {
+                               if (statisticsJson != null
+                                               && opType.equalsIgnoreCase(VtnServiceJsonConsts.DETAIL)) {
+                                       switches.add(VtnServiceJsonConsts.STATISTICS,
+                                                       statisticsJson);
+                               }
                                root.add(rootJsonName, switches);
                        }
                }
@@ -1942,8 +2231,7 @@ public class IpcPhysicalResponseFactory {
         * @return the domain logical port response
         */
        public JsonObject getDomainLogicalPortResponse(
-                       final IpcDataUnit[] responsePacket, final JsonObject requestBody,
-                       final String getType) {
+                       final IpcDataUnit[] responsePacket, final JsonObject requestBody) {
                LOG.trace("Start getDomainLogicalPortResponse");
                /*
                 * operation type will be required to resolve the response type
@@ -1952,17 +2240,9 @@ public class IpcPhysicalResponseFactory {
                if (requestBody.has(VtnServiceJsonConsts.OP)) {
                        opType = requestBody.get(VtnServiceJsonConsts.OP).getAsString();
                }
-               String rootJsonName;
-               JsonArray logicalPortsArray = null;
+               final String rootJsonName = VtnServiceJsonConsts.LOGICALPORTS;
+               final JsonArray logicalPortsArray = new JsonArray();
                final JsonObject root = new JsonObject();
-               LOG.debug("getType: " + getType);
-               if (getType.equals(VtnServiceJsonConsts.SHOW)) {
-                       rootJsonName = VtnServiceJsonConsts.LOGICALPORT;
-               } else {
-                       rootJsonName = VtnServiceJsonConsts.LOGICALPORTS;
-                       // json array will be required for list type of cases
-                       logicalPortsArray = new JsonArray();
-               }
                LOG.debug("Json Name :" + rootJsonName);
                String dataType = VtnServiceJsonConsts.STATE;
                if (requestBody.has(VtnServiceJsonConsts.TARGETDB)
@@ -1973,12 +2253,19 @@ public class IpcPhysicalResponseFactory {
                JsonObject logicalPort = null;
                if (opType.equalsIgnoreCase(VtnServiceJsonConsts.COUNT)) {
                        logicalPort = new JsonObject();
-                       logicalPort
-                                       .addProperty(
-                                                       VtnServiceJsonConsts.COUNT,
-                                                       IpcDataUnitWrapper
-                                                                       .getIpcDataUnitValue(responsePacket[VtnServiceConsts.IPC_COUNT_INDEX]));
+                       int count = VtnServiceJsonConsts.VAL_1;
+                       if (!requestBody.has(VtnServiceJsonConsts.LOGICAL_PORT_ID)) {
+                               count = Integer
+                                               .parseInt(IpcDataUnitWrapper
+                                                               .getIpcDataUnitValue(responsePacket[VtnServiceConsts.IPC_COUNT_INDEX]));
+                       } else {
+                               if (responsePacket.length == 0) {
+                                       count = responsePacket.length;
+                               }
+                       }
+                       logicalPort.addProperty(VtnServiceJsonConsts.COUNT, count);
                        root.add(rootJsonName, logicalPort);
+
                } else {
                        IpcStruct valLogicalPortStruct = null;
                        IpcStruct valLogicalPortStStruct = null;
@@ -1998,9 +2285,7 @@ public class IpcPhysicalResponseFactory {
                                                        IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
                                                                        keyLogicalPortStruct,
                                                                        VtnServiceIpcConsts.PORT_ID));
-                                       if (getType.equals(VtnServiceJsonConsts.SHOW)
-                                                       || opType
-                                                                       .equalsIgnoreCase(VtnServiceJsonConsts.DETAIL)) {
+                                       if (opType.equalsIgnoreCase(VtnServiceJsonConsts.DETAIL)) {
                                                LOG.debug("Case : Show or detail");
                                                valLogicalPortStStruct = (IpcStruct) responsePacket[index++];
                                                validBit = valLogicalPortStStruct
@@ -2230,21 +2515,14 @@ public class IpcPhysicalResponseFactory {
                                                index++;
                                        }
                                }
-                               // add current json object to array, if it has been initialized
-                               // earlier
-                               if (null != logicalPortsArray) {
-                                       logicalPortsArray.add(logicalPort);
-                               }
+                               // add current json object to array
+                               logicalPortsArray.add(logicalPort);
                        }
                        /*
                         * finally add either array or single object to root json object and
                         * return the same.
                         */
-                       if (null != logicalPortsArray) {
-                               root.add(rootJsonName, logicalPortsArray);
-                       } else {
-                               root.add(rootJsonName, logicalPort);
-                       }
+                       root.add(rootJsonName, logicalPortsArray);
                }
                LOG.debug("Response Json: " + root.toString());
                LOG.trace("Complete getDomainLogicalPortResponse");
@@ -2288,4 +2566,1425 @@ public class IpcPhysicalResponseFactory {
                LOG.trace("Complete getDomainLogicalPortMemberResponse");
                return membersArray;
        }
+
+       /**
+        * Used for Show Data Flow response
+        * 
+        * @param responsePacket
+        * @param requestBody
+        * @param getType
+        * @return JsonObject
+        */
+
+       public JsonObject getDataFlowResponse(final IpcDataUnit[] responsePacket,
+                       final JsonObject requestBody, final String getType) {
+               LOG.trace("Start getDataFlowPhysicalResponse");
+               final JsonObject root = new JsonObject();
+               final JsonArray dataFlowArray = new JsonArray();
+               if (responsePacket.length != 0) {
+                       LOG.debug("get Type:" + getType);
+                       // key type and key structure are not used
+                       int index = 2;
+                       // nElements(nElems) parameter for Total number of data flow
+                       // information
+                       // contained in this responsePacket
+                       final int nElements = Integer.parseInt(IpcDataUnitWrapper
+                                       .getIpcDataUnitValue(responsePacket[index++]));
+                       LOG.debug("nElements:" + nElements);
+                       for (int i = 0; i < nElements; i++) {
+                               // getting value of dataflowStruct form response packet
+                               final IpcStruct valDfDataFlowStruct = (IpcStruct) responsePacket[index++];
+                               // dataflow JsonObject is outermost Json
+                               final JsonObject dataflow = new JsonObject();
+                               byte validBit = 0;
+
+                               validBit = valDfDataFlowStruct
+                                               .getByte(
+                                                               VtnServiceIpcConsts.VALID,
+                                                               UncPhysicalStructIndexEnum.UncValDfDataflowIndex.kidxDfDataFlowReason
+                                                                               .ordinal());
+                               validBit = 1;
+                               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                               .ordinal()
+                                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                               .ordinal()) {
+                                       final int reason = Integer.parseInt(IpcDataUnitWrapper
+                                                       .getIpcStructUint32Value(valDfDataFlowStruct,
+                                                                       VtnServiceIpcConsts.REASON));
+                                       // getting type of reason field a
+                                       String reasonForJson = VtnServiceConsts.EMPTY_STRING;
+                                       if (reason == UncStructIndexEnum.UncDataflowReason.UNC_DF_RES_SUCCESS
+                                                       .ordinal()) {
+                                               reasonForJson = VtnServiceJsonConsts.REASON_SUCCESS;
+                                       } else if (reason == UncStructIndexEnum.UncDataflowReason.UNC_DF_RES_OPERATION_NOT_SUPPORTED
+                                                       .ordinal()) {
+                                               reasonForJson = VtnServiceJsonConsts.REASON_NOT_SUPP;
+                                       } else if (reason == UncStructIndexEnum.UncDataflowReason.UNC_DF_RES_EXCEEDS_FLOW_LIMIT
+                                                       .ordinal()) {
+                                               reasonForJson = VtnServiceJsonConsts.REASON_EXCD_LIM;
+                                       } else if (reason == UncStructIndexEnum.UncDataflowReason.UNC_DF_RES_CTRLR_DISCONNECTED
+                                                       .ordinal()) {
+                                               reasonForJson = VtnServiceJsonConsts.REASON_CTRL_DISC;
+                                       } else if (reason == UncStructIndexEnum.UncDataflowReason.UNC_DF_RES_EXCEEDS_HOP_LIMIT
+                                                       .ordinal()) {
+                                               reasonForJson = VtnServiceJsonConsts.REASON_EXCD_HOP;
+                                       } else if (reason == UncStructIndexEnum.UncDataflowReason.UNC_DF_RES_DST_NOT_REACHED
+                                                       .ordinal()) {
+                                               reasonForJson = VtnServiceJsonConsts.REASON_DST_NOT_REACHED;
+                                       } else if (reason == UncStructIndexEnum.UncDataflowReason.UNC_DF_RES_FLOW_NOT_FOUND
+                                                       .ordinal()) {
+                                               reasonForJson = VtnServiceJsonConsts.REASON_FLOW_NOTFOUND;
+                                       } else if (reason == UncStructIndexEnum.UncDataflowReason.UNC_DF_RES_SYSTEM_ERROR
+                                                       .ordinal()) {
+                                               reasonForJson = VtnServiceJsonConsts.REASON_SYS_ERROR;
+                                       }
+                                       // assigning reason field in dataflow Json
+                                       setValueToJsonObject(validBit, dataflow,
+                                                       VtnServiceJsonConsts.REASON, reasonForJson);
+                                       LOG.debug("reason:" + reasonForJson);
+                               }
+                               LOG.debug("validBit for reason:" + validBit);
+
+                               final JsonArray controlFlowArray = new JsonArray();
+                               validBit = valDfDataFlowStruct
+                                               .getByte(
+                                                               VtnServiceIpcConsts.VALID,
+                                                               UncPhysicalStructIndexEnum.UncValDfDataflowIndex.kidxDfDataFlowControllerCount
+                                                                               .ordinal());
+                               validBit = 1;
+                               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                               .ordinal()
+                                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                               .ordinal()) {
+                                       // control count for getting number of controller element in
+                                       // controllerdataflowJson
+                                       final int controllerCount = Integer
+                                                       .parseInt(IpcDataUnitWrapper
+                                                                       .getIpcStructUint32Value(
+                                                                                       valDfDataFlowStruct,
+                                                                                       VtnServiceIpcConsts.CONTROLLER_COUNT));
+                                       LOG.debug("Controller Count:" + controllerCount);
+                                       for (int j = 0; j < controllerCount; j++) {
+                                               final AtomicInteger a = new AtomicInteger(index);
+                                               controlFlowArray.add(getControllerDataFlow(
+                                                               responsePacket, a, requestBody));
+                                               index = a.get();
+                                       }
+                                       // adding controller flow json array to dataflow Json
+                                       dataflow.add(VtnServiceJsonConsts.CONTROLLER_DATAFLOWS,
+                                                       controlFlowArray);
+                                       LOG.debug("dataflow Json:" + dataflow);
+                               }
+                               // adding dataflow json to dataflowJson array
+                               dataFlowArray.add(dataflow);
+                               LOG.debug("dataFlowArray Json:" + dataFlowArray);
+                       }
+               }
+               root.add(VtnServiceJsonConsts.DATAFLOWS, dataFlowArray);
+               LOG.debug("root Json :" + root);
+               LOG.trace("Complete getDataFlowPhysicalResponse");
+               return root;
+       }
+
+       /**
+        * Used for Show Controller Data Flow response
+        * 
+        * @param responsePacket
+        * @param requestBody
+        * @param getType
+        * @return JsonObject
+        */
+       public JsonObject getControllerDataFlowResponse(
+                       final IpcDataUnit[] responsePacket, final JsonObject requestBody,
+                       final String getType) {
+               LOG.trace("Start ControllergetDataFlowPhysicalResponse");
+               final JsonObject root = new JsonObject();
+               final JsonArray dataFlowArray = new JsonArray();
+               if (responsePacket.length != 0) {
+                       // key type and key structure is not used
+                       int index = 2;
+
+                       final AtomicInteger a = new AtomicInteger(index);
+                       dataFlowArray.add(getControllerDataFlow(responsePacket, a,
+                                       requestBody));
+                       index = a.get();
+               }
+               root.add(VtnServiceJsonConsts.DATAFLOWS, dataFlowArray);
+               LOG.debug("root Json :" + root);
+               LOG.trace("Complete getControllerDataFlowPhysicalResponse");
+               return root;
+       }
+
+       private JsonObject getControllerDataFlow(
+                       final IpcDataUnit[] responsePacket, final AtomicInteger index,
+                       final JsonObject requestBody) {
+               LOG.trace("getControllerDataFlow started");
+               byte validBit;
+               final JsonObject controlerFlow = new JsonObject();
+               JsonObject statisticJson = null;
+               // used as an indicator for detail information i.e if statistic is set
+               // in detail optype
+               boolean isStatisticJson = false;
+               /*
+                * operation type will be required to resolve the response type
+                */
+               String opType = VtnServiceJsonConsts.NORMAL;
+               if (requestBody.has(VtnServiceJsonConsts.OP)) {
+                       opType = requestBody.get(VtnServiceJsonConsts.OP).getAsString();
+               }
+               // if optype is detail then adding statistic information to the
+               // jsonObject
+               if (opType.equals(VtnServiceIpcConsts.DETAIL)) {
+                       final IpcStruct valDfDataFlowSt = (IpcStruct) responsePacket[index
+                                       .getAndIncrement()];
+                       statisticJson = new JsonObject();
+                       /*
+                        * isStatisticJson is and indicator used for adding
+                        * StatisticsJsonObject at last as per given response
+                        */
+                       isStatisticJson = true;
+                       validBit = valDfDataFlowSt
+                                       .getByte(
+                                                       VtnServiceIpcConsts.VALID,
+                                                       UncPhysicalStructIndexEnum.UncValDfDataflowStIndex.kidxDfDataFlowStPackets
+                                                                       .ordinal());
+                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                       .ordinal()
+                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                       .ordinal()) {
+                               setValueToJsonObject(validBit, statisticJson,
+                                               VtnServiceJsonConsts.PACKETS,
+                                               IpcDataUnitWrapper.getIpcStructInt64Value(
+                                                               valDfDataFlowSt, VtnServiceIpcConsts.PACKETS));
+                       }
+                       validBit = valDfDataFlowSt
+                                       .getByte(
+                                                       VtnServiceIpcConsts.VALID,
+                                                       UncPhysicalStructIndexEnum.UncValDfDataflowStIndex.kidxDfDataFlowStOctets
+                                                                       .ordinal());
+                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                       .ordinal()
+                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                       .ordinal()) {
+                               setValueToJsonObject(validBit, statisticJson,
+                                               VtnServiceJsonConsts.OCTETS,
+                                               IpcDataUnitWrapper.getIpcStructInt64Value(
+                                                               valDfDataFlowSt, VtnServiceIpcConsts.OCTETS));
+                       }
+
+                       validBit = valDfDataFlowSt
+                                       .getByte(
+                                                       VtnServiceIpcConsts.VALID,
+                                                       UncPhysicalStructIndexEnum.UncValDfDataflowStIndex.kidxDfDataFlowStDuration
+                                                                       .ordinal());
+                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                       .ordinal()
+                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                       .ordinal()) {
+                               setValueToJsonObject(validBit, statisticJson,
+                                               VtnServiceJsonConsts.DURATION,
+                                               IpcDataUnitWrapper.getIpcStructUint32Value(
+                                                               valDfDataFlowSt, VtnServiceIpcConsts.DURATION));
+                       }
+               }
+
+               final IpcStruct valDfDataFlowCmnStruct = (IpcStruct) responsePacket[index
+                               .getAndIncrement()];
+               validBit = valDfDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncPhysicalStructIndexEnum.UncValDfDataflowCmnIndex.kidxDfDataFlowControllerName
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, controlerFlow,
+                                       VtnServiceJsonConsts.CONTROLLERID,
+                                       IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
+                                                       valDfDataFlowCmnStruct,
+                                                       VtnServiceIpcConsts.CONTROLLER_NAME));
+               }
+               LOG.debug("set valid Bit for Controller name:" + validBit);
+
+               validBit = valDfDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncPhysicalStructIndexEnum.UncValDfDataflowCmnIndex.kidxDfDataFlowControllerType
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       /*
+                        * controllertype is used to get values in ordinal form of
+                        * controller bypass,vnp and pfc as 0,1,2 respectively
+                        */
+                       final int controllerType = Integer.parseInt(IpcDataUnitWrapper
+                                       .getIpcStructUint8Value(valDfDataFlowCmnStruct,
+                                                       VtnServiceIpcConsts.CONTROLER_TYPE));
+
+                       if (controllerType == UncPhysicalStructIndexEnum.UpplTypeIndex.UNC_CT_UNKNOWN
+                                       .ordinal()) {
+                               setValueToJsonObject(validBit, controlerFlow,
+                                               VtnServiceJsonConsts.CONTROLER_TYPE,
+                                               VtnServiceJsonConsts.BYPASS);
+                       } else if (controllerType == UncPhysicalStructIndexEnum.UpplTypeIndex.UNC_CT_VNP
+                                       .ordinal()) {
+                               setValueToJsonObject(validBit, controlerFlow,
+                                               VtnServiceJsonConsts.CONTROLER_TYPE,
+                                               VtnServiceJsonConsts.VNP);
+                       } else if (controllerType == UncPhysicalStructIndexEnum.UpplTypeIndex.UNC_CT_PFC
+                                       .ordinal()) {
+                               setValueToJsonObject(validBit, controlerFlow,
+                                               VtnServiceJsonConsts.CONTROLER_TYPE,
+                                               VtnServiceJsonConsts.PFC);
+                       }
+               }
+               LOG.debug("set valid Bit for Controller type :" + validBit);
+
+               validBit = valDfDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncPhysicalStructIndexEnum.UncValDfDataflowCmnIndex.kidxDfDataFlowFlowId
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, controlerFlow,
+                                       VtnServiceJsonConsts.FLOW_ID,
+                                       IpcDataUnitWrapper
+                                                       .getIpcStructUint64Value(valDfDataFlowCmnStruct,
+                                                                       VtnServiceIpcConsts.FLOW_ID));
+               }
+               LOG.debug("set valid Bit for Flow id :" + validBit);
+
+               validBit = valDfDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncPhysicalStructIndexEnum.UncValDfDataflowCmnIndex.kidxDfDataFlowStatus
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       final int status = Integer.parseInt(IpcDataUnitWrapper
+                                       .getIpcStructUint32Value(valDfDataFlowCmnStruct,
+                                                       VtnServiceIpcConsts.STATUS));
+                       // getting type of reason field and assigning reason value to
+                       // reasonForjson string
+                       String statusForJson = VtnServiceConsts.EMPTY_STRING;
+                       if (status == UncPhysicalStructIndexEnum.UncDataflowStatus.UNC_DF_STAT_INIT
+                                       .ordinal()) {
+                               statusForJson = VtnServiceJsonConsts.STATUS_INIT;
+                       } else if (status == UncPhysicalStructIndexEnum.UncDataflowStatus.UNC_DF_STAT_ACTIVATING
+                                       .ordinal()) {
+                               statusForJson = VtnServiceJsonConsts.STATUS_ACTIVATING;
+                       } else if (status == UncPhysicalStructIndexEnum.UncDataflowStatus.UNC_DF_STAT_ACTIVE
+                                       .ordinal()) {
+                               statusForJson = VtnServiceJsonConsts.STATUS_ACTIVE;
+                       } else if (status == UncPhysicalStructIndexEnum.UncDataflowStatus.UNC_DF_STAT_SWITCHING
+                                       .ordinal()) {
+                               statusForJson = VtnServiceJsonConsts.STATUS_SWITCHING;
+                       }
+
+                       // assigning reason field in dataflow Json
+                       setValueToJsonObject(validBit, controlerFlow,
+                                       VtnServiceJsonConsts.STATUS, statusForJson);
+                       LOG.debug("set Json reason and  validBit:" + validBit);
+               }
+               LOG.debug("set valid Bit for status :" + validBit);
+
+               validBit = valDfDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncPhysicalStructIndexEnum.UncValDfDataflowCmnIndex.kidxDfDataFlowFlowType
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       if (IpcDataUnitWrapper.getIpcStructUint32Value(
+                                       valDfDataFlowCmnStruct, VtnServiceIpcConsts.FLOW_TYPE)
+                                       .equals(VtnServiceConsts.ZERO)) {
+                               setValueToJsonObject(validBit, controlerFlow,
+                                               VtnServiceJsonConsts.TYPE, VtnServiceJsonConsts.VTN);
+                       }
+               }
+               LOG.debug("set valid Bit for flow type :" + validBit);
+
+               validBit = valDfDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncPhysicalStructIndexEnum.UncValDfDataflowCmnIndex.kidxDfDataFlowPolicyIndex
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, controlerFlow,
+                                       VtnServiceJsonConsts.POLICY_INDEX,
+                                       IpcDataUnitWrapper.getIpcStructUint32Value(
+                                                       valDfDataFlowCmnStruct,
+                                                       VtnServiceIpcConsts.POLICY_INDEX));
+               }
+               LOG.debug("set validBit for policy index :" + validBit);
+
+               validBit = valDfDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncPhysicalStructIndexEnum.UncValDfDataflowCmnIndex.kidxDfDataFlowVtnId
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, controlerFlow,
+                                       VtnServiceJsonConsts.VTN_ID,
+                                       IpcDataUnitWrapper.getIpcStructUint32Value(
+                                                       valDfDataFlowCmnStruct, VtnServiceIpcConsts.VTN_ID));
+               }
+               LOG.debug("set validBit for  vtn id   :" + validBit);
+
+               validBit = valDfDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncPhysicalStructIndexEnum.UncValDfDataflowCmnIndex.kidxDfDataFlowIngressSwitchId
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, controlerFlow,
+                                       VtnServiceJsonConsts.INGRESS_SWITCH_ID,
+                                       IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
+                                                       valDfDataFlowCmnStruct,
+                                                       VtnServiceIpcConsts.INGRESS_SWITCH_ID));
+               }
+               LOG.debug("set validBit for ingress switch id:" + validBit);
+
+               validBit = valDfDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncPhysicalStructIndexEnum.UncValDfDataflowCmnIndex.kidxDfDataFlowInPort
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, controlerFlow,
+                                       VtnServiceJsonConsts.INGRESS_PORT_NAME,
+                                       IpcDataUnitWrapper
+                                                       .getIpcStructUint8ArrayValue(
+                                                                       valDfDataFlowCmnStruct,
+                                                                       VtnServiceIpcConsts.IN_PORT));
+               }
+               LOG.debug("set validBit for in_port_name  :" + validBit);
+
+               validBit = valDfDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncPhysicalStructIndexEnum.UncValDfDataflowCmnIndex.kidxDfDataFlowInStationId
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, controlerFlow,
+                                       VtnServiceJsonConsts.INGRESS_STATION_ID,
+                                       IpcDataUnitWrapper.getIpcStructUint64Value(
+                                                       valDfDataFlowCmnStruct,
+                                                       VtnServiceIpcConsts.IN_STATION_ID));
+               }
+               LOG.debug("set validBit for in_station_id :" + validBit);
+
+               validBit = valDfDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncPhysicalStructIndexEnum.UncValDfDataflowCmnIndex.kidxDfDataFlowInDomain
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, controlerFlow,
+                                       VtnServiceJsonConsts.INGRESS_DOMAIN_ID,
+                                       IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
+                                                       valDfDataFlowCmnStruct,
+                                                       VtnServiceIpcConsts.IN_DOMAIN));
+               }
+               LOG.trace("set validBit for in_domain_id :" + validBit);
+
+               validBit = valDfDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncPhysicalStructIndexEnum.UncValDfDataflowCmnIndex.kidxDfDataFlowEgressSwitchId
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, controlerFlow,
+                                       VtnServiceJsonConsts.EGRESS_SWITCH_ID,
+                                       IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
+                                                       valDfDataFlowCmnStruct,
+                                                       VtnServiceIpcConsts.EGRESS_SWITCH_ID));
+               }
+               LOG.debug("set validBit for egress_switch_id :" + validBit);
+
+               validBit = valDfDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncPhysicalStructIndexEnum.UncValDfDataflowCmnIndex.kidxDfDataFlowOutPort
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, controlerFlow,
+                                       VtnServiceJsonConsts.EGRESS_PORT_NAME,
+                                       IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
+                                                       valDfDataFlowCmnStruct,
+                                                       VtnServiceIpcConsts.OUT_PORT));
+               }
+               LOG.debug("set validBit for out_port_name:" + validBit);
+
+               validBit = valDfDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncPhysicalStructIndexEnum.UncValDfDataflowCmnIndex.kidxDfDataFlowOutStationId
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, controlerFlow,
+                                       VtnServiceJsonConsts.EGRESS_STATION_ID,
+                                       IpcDataUnitWrapper.getIpcStructUint64Value(
+                                                       valDfDataFlowCmnStruct,
+                                                       VtnServiceIpcConsts.OUT_STATION_ID));
+               }
+               LOG.debug("set validBit for out_station_id :" + validBit);
+
+               validBit = valDfDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncPhysicalStructIndexEnum.UncValDfDataflowCmnIndex.kidxDfDataFlowOutDomain
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       setValueToJsonObject(validBit, controlerFlow,
+                                       VtnServiceJsonConsts.EGRESS_DOMAIN_ID,
+                                       IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
+                                                       valDfDataFlowCmnStruct,
+                                                       VtnServiceIpcConsts.OUT_DOMAIN));
+               }
+               LOG.debug("set validBit for in_domain_id :" + validBit);
+
+               validBit = valDfDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncPhysicalStructIndexEnum.UncValDfDataflowCmnIndex.kidxDfDataFlowMatchCount
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       controlerFlow.add(
+                                       VtnServiceJsonConsts.MATCH,
+                                       getDataFlowMatchInfo(responsePacket, index, validBit,
+                                                       controlerFlow, valDfDataFlowCmnStruct));
+                       LOG.debug("controller flow Json:" + controlerFlow);
+               }
+
+               validBit = valDfDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncPhysicalStructIndexEnum.UncValDfDataflowCmnIndex.kidxDfDataFlowActionCount
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+                       controlerFlow.add(
+                                       VtnServiceJsonConsts.ACTION,
+                                       getDataFlowActionInfo(responsePacket, index, controlerFlow,
+                                                       valDfDataFlowCmnStruct));
+                       LOG.debug("controller flow Json:" + controlerFlow);
+               }
+
+               validBit = valDfDataFlowCmnStruct
+                               .getByte(
+                                               VtnServiceIpcConsts.VALID,
+                                               UncPhysicalStructIndexEnum.UncValDfDataflowCmnIndex.kidxDfDataFlowPathInfoCount
+                                                               .ordinal());
+               if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                               .ordinal()
+                               && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                               .ordinal()) {
+
+                       controlerFlow.add(
+                                       VtnServiceJsonConsts.PATHINFOS,
+                                       getDataFlowPathInfo(responsePacket, index,
+                                                       valDfDataFlowCmnStruct));
+                       LOG.debug("controller flow Json:" + controlerFlow);
+
+               }
+
+               if (isStatisticJson == true) {
+                       controlerFlow.add(VtnServiceJsonConsts.STATISTICS, statisticJson);
+               }
+
+               LOG.trace("getControllerDataFlow completed");
+               return controlerFlow;
+       }
+
+       private JsonArray getDataFlowPathInfo(final IpcDataUnit[] responsePacket,
+                       final AtomicInteger index, final IpcStruct valDfDataFlowCmnStruct) {
+               LOG.trace("getDataFlowPathInfo stated");
+               final JsonArray pathinfoArray = new JsonArray();
+               // used to get pathinfo count from val_df_dataflow_cmn struct
+               final int pathInfoCount = Integer.parseInt(IpcDataUnitWrapper
+                               .getIpcStructUint32Value(valDfDataFlowCmnStruct,
+                                               VtnServiceIpcConsts.PATH_INFO_COUNT));
+               LOG.debug("path_info_count:" + pathInfoCount);
+               for (int k = 0; k < pathInfoCount; k++) {
+                       final JsonObject pathinfo = new JsonObject();
+                       byte validBit;
+                       final IpcStruct valDfDataFlowPathInfo = (IpcStruct) responsePacket[index
+                                       .getAndIncrement()];
+
+                       validBit = valDfDataFlowPathInfo
+                                       .getByte(
+                                                       VtnServiceIpcConsts.VALID,
+                                                       UncPhysicalStructIndexEnum.UncValDfDataflowPathInfoIndex.kidxDfDataFlowPathInfoSwitchId
+                                                                       .ordinal());
+                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                       .ordinal()
+                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                       .ordinal()) {
+                               setValueToJsonObject(validBit, pathinfo,
+                                               VtnServiceJsonConsts.SWITCHEID,
+                                               IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
+                                                               valDfDataFlowPathInfo,
+                                                               VtnServiceIpcConsts.SWITCHEID));
+                               LOG.trace("set switchid and  validBit:" + validBit);
+                       }
+
+                       validBit = valDfDataFlowPathInfo
+                                       .getByte(
+                                                       VtnServiceIpcConsts.VALID,
+                                                       UncPhysicalStructIndexEnum.UncValDfDataflowPathInfoIndex.kidxDfDataFlowPathInfoInPort
+                                                                       .ordinal());
+                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                       .ordinal()
+                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                       .ordinal()) {
+                               setValueToJsonObject(validBit, pathinfo,
+                                               VtnServiceJsonConsts.IN_PORT_NAME,
+                                               IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
+                                                               valDfDataFlowPathInfo,
+                                                               VtnServiceIpcConsts.IN_PORT));
+                               LOG.trace("set in_port and  validBit:" + validBit);
+                       }
+
+                       validBit = valDfDataFlowPathInfo
+                                       .getByte(
+                                                       VtnServiceIpcConsts.VALID,
+                                                       UncPhysicalStructIndexEnum.UncValDfDataflowPathInfoIndex.kidxDfDataFlowPathInfoOutPort
+                                                                       .ordinal());
+                       if (validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_INVALID
+                                       .ordinal()
+                                       && validBit != (byte) UncStructIndexEnum.Valid.UNC_VF_NOT_SUPPORTED
+                                                       .ordinal()) {
+                               setValueToJsonObject(validBit, pathinfo,
+                                               VtnServiceJsonConsts.OUT_PORT_NAME,
+                                               IpcDataUnitWrapper.getIpcStructUint8ArrayValue(
+                                                               valDfDataFlowPathInfo,
+                                                               VtnServiceIpcConsts.OUT_PORT));
+                               LOG.debug("set validBit for out_port :" + validBit);
+                       }
+                       pathinfoArray.add(pathinfo);
+               }
+               LOG.debug("pathinfoArray Json:" + pathinfoArray);
+               LOG.trace("getDataFlowPathInfo completed");
+               return pathinfoArray;
+       }
+
+       private JsonObject getDataFlowActionInfo(
+                       final IpcDataUnit[] responsePacket, final AtomicInteger index,
+                       final JsonObject controlerFlow,
+                       final IpcStruct valDfDataFlowCmnStruct) {
+               final int actionCount = Integer.parseInt(IpcDataUnitWrapper
+                               .getIpcStructUint32Value(valDfDataFlowCmnStruct,
+                                               VtnServiceIpcConsts.ACTION_COUNT));
+               LOG.debug("ACTION_COUNT:" + actionCount);
+
+               // jsonObject action will holf all below json instance
+               final JsonObject action = new JsonObject();
+               // jsonObject objects are created only when required information from
+               // response packet
+               // here we have just used refernces
+               JsonArray outputPortJsonArray = null;
+               JsonArray enqueuePortJsonArray = null;
+               JsonArray queueIdJsonArray = null;
+               JsonArray setMacDstAddrJsonArray = null;
+               JsonArray setMacSrcAddrJsonArray = null;
+               JsonArray setVlanIdJsonArray = null;
+               JsonArray setVlanPriorityJsonArray = null;
+               JsonArray setIpDstAddrJsonArray = null;
+               JsonArray setIpSrcAddrJsonArray = null;
+               JsonArray setIpTosJsonArray = null;
+               JsonArray setL4DstPortIcmpTypeJsonArray = null;
+               JsonArray setL4SrcPortIcmpTypeJsonArray = null;
+               JsonArray setIpV6DstAddrJsonArray = null;
+               JsonArray setIpv6SrcAddrJsonArray = null;
+               JsonArray setStripVlanJsonArray = null;
+               JsonPrimitive element = null;
+               for (int i = 0; i < actionCount; i++) {
+                       final IpcStruct valDfFlowAction = (IpcStruct) responsePacket[index
+                                       .getAndIncrement()];
+
+                       LOG.trace("getDataFlowActionInfo started");
+                       int actionType;
+                       // actiontype will help in resolving action as per response
+                       actionType = Integer.parseInt(IpcDataUnitWrapper
+                                       .getIpcStructUint32Value(valDfFlowAction,
+                                                       VtnServiceIpcConsts.ACTION_TYPE));
+                       LOG.debug("actiontype :" + actionType);
+                       if (actionType == UncStructIndexEnum.UncDataflowFlowActionType.UNC_ACTION_OUTPUT
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowActionOutputPort = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructUint32Value(valDfFlowActionOutputPort,
+                                                               VtnServiceIpcConsts.OUTPUT_PORT).toString());
+                               if (null == outputPortJsonArray) {
+                                       outputPortJsonArray = new JsonArray();
+                               }
+                               outputPortJsonArray.add(element);
+                               LOG.debug("set  out_port  ");
+
+                       } else if (actionType == UncStructIndexEnum.UncDataflowFlowActionType.UNC_ACTION_SET_ENQUEUE
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowActionEnqueuePort = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructUint32Value(valDfFlowActionEnqueuePort,
+                                                               VtnServiceIpcConsts.OUTPUT_PORT).toString());
+                               if (null == enqueuePortJsonArray) {
+                                       enqueuePortJsonArray = new JsonArray();
+                               }
+                               enqueuePortJsonArray.add(element);
+                               LOG.debug("set  enqueueport  ");
+
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructUint16Value(valDfFlowActionEnqueuePort,
+                                                               VtnServiceIpcConsts.ENQUEUE_ID).toString());
+                               if (null == queueIdJsonArray) {
+                                       queueIdJsonArray = new JsonArray();
+                               }
+                               queueIdJsonArray.add(element);
+                               LOG.debug("set  enqueueid  ");
+
+                       } else if (actionType == UncStructIndexEnum.UncDataflowFlowActionType.UNC_ACTION_SET_DL_DST
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowActionSetDlAddr = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+                               element = new JsonPrimitive(IpcDataUnitWrapper.getMacAddress(
+                                               valDfFlowActionSetDlAddr, VtnServiceIpcConsts.DL_ADDR)
+                                               .toString());
+
+                               if (null == setMacDstAddrJsonArray) {
+                                       setMacDstAddrJsonArray = new JsonArray();
+                               }
+                               setMacDstAddrJsonArray.add(element);
+                               LOG.debug("set macdst  ");
+
+                       } else if (actionType == UncStructIndexEnum.UncDataflowFlowActionType.UNC_ACTION_SET_DL_SRC
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowActionSetDlAddr = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+                               element = new JsonPrimitive(IpcDataUnitWrapper.getMacAddress(
+                                               valDfFlowActionSetDlAddr, VtnServiceIpcConsts.DL_ADDR)
+                                               .toString());
+                               if (null == setMacSrcAddrJsonArray) {
+                                       setMacSrcAddrJsonArray = new JsonArray();
+                               }
+                               setMacSrcAddrJsonArray.add(element);
+                               LOG.debug("set macsrc  ");
+
+                       } else if (actionType == UncStructIndexEnum.UncDataflowFlowActionType.UNC_ACTION_SET_VLAN_ID
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowActionSetVlanId = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructUint16Value(valDfFlowActionSetVlanId,
+                                                               VtnServiceIpcConsts.VLAN_ID).toString());
+                               if (null == setVlanIdJsonArray) {
+                                       setVlanIdJsonArray = new JsonArray();
+                               }
+                               if(element.getAsString().equals(VtnServiceJsonConsts.VLAN_ID_65535)){
+                                       element = new JsonPrimitive(VtnServiceJsonConsts.EMPTY);
+                                       setVlanIdJsonArray.add(element);
+                               }else{
+                                       setVlanIdJsonArray.add(element);
+                               }
+                               
+                               LOG.debug("set vlan_id ");
+
+                       } else if (actionType == UncStructIndexEnum.UncDataflowFlowActionType.UNC_ACTION_SET_VLAN_PCP
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowActionSetVlanPcp = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructUint8Value(valDfFlowActionSetVlanPcp,
+                                                               VtnServiceIpcConsts.VLAN_PCP).toString());
+                               if (null == setVlanPriorityJsonArray) {
+                                       setVlanPriorityJsonArray = new JsonArray();
+                               }
+                               setVlanPriorityJsonArray.add(element);
+                               LOG.debug("set  vlanpriority   :");
+
+                       } else if (actionType == UncStructIndexEnum.UncDataflowFlowActionType.UNC_ACTION_STRIP_VLAN
+                                       .ordinal()) {
+                               element = new JsonPrimitive(VtnServiceJsonConsts.TRUE);
+                               if (null == setStripVlanJsonArray) {
+                                       setStripVlanJsonArray = new JsonArray();
+                               }
+                               setStripVlanJsonArray.add(element);                     
+                               index.getAndIncrement();
+
+                       } else if (actionType == UncStructIndexEnum.UncDataflowFlowActionType.UNC_ACTION_SET_IPV4_SRC
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowActionSetIpv4 = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructIpv4Value(valDfFlowActionSetIpv4,
+                                                               VtnServiceIpcConsts.IPV4_ADDR).toString());
+                               if (null == setIpSrcAddrJsonArray) {
+                                       setIpSrcAddrJsonArray = new JsonArray();
+                               }
+                               setIpSrcAddrJsonArray.add(element);
+                               LOG.debug("set ipsrc :");
+
+                       } else if (actionType == UncStructIndexEnum.UncDataflowFlowActionType.UNC_ACTION_SET_IPV4_DST
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowActionSetIpv4 = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructIpv4Value(valDfFlowActionSetIpv4,
+                                                               VtnServiceIpcConsts.IPV4_ADDR).toString());
+                               if (null == setIpDstAddrJsonArray) {
+                                       setIpDstAddrJsonArray = new JsonArray();
+                               }
+                               setIpDstAddrJsonArray.add(element);
+                               LOG.debug("set ipdst ");
+
+                       } else if (actionType == UncStructIndexEnum.UncDataflowFlowActionType.UNC_ACTION_SET_IP_TOS
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowActionSetIpTos = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+                           final String hexString =
+                        UnsignedInteger.toHexString(Long
+                                .valueOf(IpcDataUnitWrapper
+                                        .getIpcStructUint8Value(
+                                                valDfFlowActionSetIpTos,
+                                                VtnServiceIpcConsts.IP_TOS)));
+                element = new JsonPrimitive("0x" + hexString);
+                               if (null == setIpTosJsonArray) {
+                                       setIpTosJsonArray = new JsonArray();
+                               }
+                               setIpTosJsonArray.add(element);
+                               LOG.debug("set r iptos ");
+
+                       } else if (actionType == UncStructIndexEnum.UncDataflowFlowActionType.UNC_ACTION_SET_TP_SRC
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowActionSetTpPort = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructUint16Value(valDfFlowActionSetTpPort,
+                                                               VtnServiceIpcConsts.TP_PORT).toString());
+                               if (null == setL4SrcPortIcmpTypeJsonArray) {
+                                       setL4SrcPortIcmpTypeJsonArray = new JsonArray();
+                               }
+                               setL4SrcPortIcmpTypeJsonArray.add(element);
+                               LOG.debug("set  tpsrc ");
+
+                       } else if (actionType == UncStructIndexEnum.UncDataflowFlowActionType.UNC_ACTION_SET_TP_DST
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowActionSetTpPort = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructUint16Value(valDfFlowActionSetTpPort,
+                                                               VtnServiceIpcConsts.TP_PORT).toString());
+                               if (null == setL4DstPortIcmpTypeJsonArray) {
+                                       setL4DstPortIcmpTypeJsonArray = new JsonArray();
+                               }
+                               setL4DstPortIcmpTypeJsonArray.add(element);
+                               LOG.debug("set    tpdst  ");
+
+                       } else if (actionType == UncStructIndexEnum.UncDataflowFlowActionType.UNC_ACTION_SET_IPV6_SRC
+                                       .ordinal()) {
+
+                               final IpcStruct valDfFlowActionSetIpv6 = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(
+                                               IpcDataUnitWrapper.getIpcStructIpv6Value(
+                                                               valDfFlowActionSetIpv6,
+                                                               VtnServiceIpcConsts.IPV6_ADDR));
+                               if (null == setIpv6SrcAddrJsonArray) {
+                                       setIpv6SrcAddrJsonArray = new JsonArray();
+                               }
+                               setIpv6SrcAddrJsonArray.add(element);
+                               LOG.debug("set   ipv6src  ");
+
+                       } else if (actionType == UncStructIndexEnum.UncDataflowFlowActionType.UNC_ACTION_SET_IPV6_DST
+                                       .ordinal()) {
+
+                               final IpcStruct valDfFlowActionSetIpv6 = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(
+                                               IpcDataUnitWrapper.getIpcStructIpv6Value(
+                                                               valDfFlowActionSetIpv6,
+                                                               VtnServiceIpcConsts.IPV6_ADDR));
+                               if (null == setIpV6DstAddrJsonArray) {
+                                       setIpV6DstAddrJsonArray = new JsonArray();
+                               }
+                               setIpV6DstAddrJsonArray.add(element);
+                               LOG.debug("set validBit for ipv6dst");
+                       }
+                       if (outputPortJsonArray != null) {
+                               action.add(VtnServiceJsonConsts.OUTPUTPORT, outputPortJsonArray);
+                       }
+                       if (enqueuePortJsonArray != null) {
+                               action.add(VtnServiceJsonConsts.ENQUEUEPORT,
+                                               enqueuePortJsonArray);
+                       }
+                       if (queueIdJsonArray != null) {
+                               action.add(VtnServiceJsonConsts.QUEUE_ID, queueIdJsonArray);
+                       }
+                       if (setMacDstAddrJsonArray != null) {
+                               action.add(VtnServiceJsonConsts.SETMACDSTADDR,
+                                               setMacDstAddrJsonArray);
+                       }
+                       if (setMacSrcAddrJsonArray != null) {
+                               action.add(VtnServiceJsonConsts.SETMACSRCADDR,
+                                               setMacSrcAddrJsonArray);
+                       }
+                       if (setVlanIdJsonArray != null) {
+                               action.add(VtnServiceJsonConsts.SETVLAN_ID, setVlanIdJsonArray);
+                       }
+                       if (setVlanPriorityJsonArray != null) {
+                               action.add(VtnServiceJsonConsts.SETVLAN_PRIORITY,
+                                               setVlanPriorityJsonArray);
+                       }
+                       if (setStripVlanJsonArray != null) {
+                               action.add(VtnServiceJsonConsts.STRIPVLAN, 
+                                       setStripVlanJsonArray);
+                       }
+                       if (setIpSrcAddrJsonArray != null) {
+                               action.add(VtnServiceJsonConsts.SETIPSRCADDR,
+                                               setIpSrcAddrJsonArray);
+                       }
+                       if (setIpDstAddrJsonArray != null) {
+                               action.add(VtnServiceJsonConsts.SETIPDSTADDR,
+                                               setIpDstAddrJsonArray);
+                       }
+                       if (setIpTosJsonArray != null) {
+                               action.add(VtnServiceJsonConsts.SETIPTOS, setIpTosJsonArray);
+                       }
+                       if (setL4SrcPortIcmpTypeJsonArray != null) {
+                               action.add(VtnServiceJsonConsts.SETL4SRCPORT_ICMPTYPE,
+                                               setL4SrcPortIcmpTypeJsonArray);
+                       }
+                       if (setL4DstPortIcmpTypeJsonArray != null) {
+                               action.add(VtnServiceJsonConsts.SETL4DSTPORT_ICMPTYPE,
+                                               setL4DstPortIcmpTypeJsonArray);
+                       }
+                       if (setIpv6SrcAddrJsonArray != null) {
+                               action.add(VtnServiceJsonConsts.SETIPV6SRCADDR,
+                                               setIpv6SrcAddrJsonArray);
+                       }
+                       if (setIpV6DstAddrJsonArray != null) {
+                               action.add(VtnServiceJsonConsts.SETIPV6DSTADDR,
+                                               setIpV6DstAddrJsonArray);
+                       }
+               }
+               LOG.debug("action json:" + action);
+               LOG.trace("getDataFlowActionInfo completed");
+               return action;
+
+       }
+
+       private JsonObject getDataFlowMatchInfo(final IpcDataUnit[] responsePacket,
+                       final AtomicInteger index, final byte validBit,
+                       final JsonObject controlerFlow,
+                       final IpcStruct valDfDataFlowCmnStruct) {
+               LOG.trace("getDataFlowMatchInfo started");
+               final int matchCount = Integer.parseInt(IpcDataUnitWrapper
+                               .getIpcStructUint32Value(valDfDataFlowCmnStruct,
+                                               VtnServiceIpcConsts.MATCH_COUNT));
+               LOG.debug("MATCH_COUNT:" + matchCount);
+               // match JsonObject will hold all below jsonObject as per requiremnts
+               final JsonObject match = new JsonObject();
+
+               JsonArray inportJsonArray = null;
+               JsonArray srcMacJsonArray = null;
+               JsonArray dstMacJsonArray = null;
+               JsonArray srcMaskJsonArray = null;
+               JsonArray dstMaskJsonArray = null;
+               JsonArray macEtherTypeJsonArray = null;
+               JsonArray vlanIdJsonArray = null;
+               JsonArray vlanPriorityJsonArray = null;
+               JsonArray ipTosJsonArray = null;
+               JsonArray ipProtoJsonArray = null;
+               JsonArray ipDstAddrJsonArray = null;
+               JsonArray ipDstAddrMaskJsonArray = null;
+               JsonArray ipSrcAddrJsonArray = null;
+               JsonArray ipSrcAddrMaskJsonArray = null;
+               JsonArray l4DstPortIcmpTypeJsonArray = null;
+               JsonArray l4DstPortIcmpTypeMaskJsonArray = null;
+               JsonArray l4SrcPortIcmpTypeJsonArray = null;
+               JsonArray l4SrcPortIcmpTypeMaskJsonArray = null;
+               JsonArray ipV6DstAddJsonArray = null;
+               JsonArray ipV6DstAddrMaskJsonArray = null;
+               JsonArray ipV6SrcAddrJsonArray = null;
+               JsonArray ipV6SrcAddrMaskJsonArray = null;
+               JsonPrimitive element = null;
+               for (int i = 0; i < matchCount; i++) {
+                       final IpcStruct valDfFlowMatchStruct = (IpcStruct) responsePacket[index
+                                       .getAndIncrement()];
+
+                       final int matchtype = Integer.parseInt(IpcDataUnitWrapper
+                                       .getIpcStructUint32Value(valDfFlowMatchStruct,
+                                                       VtnServiceIpcConsts.MATCH_TYPE));
+                       LOG.debug("MATCH TYPE:" + matchtype);
+                       // match type will help in resolving response in match info
+                       if (matchtype == UncStructIndexEnum.UncDataflowFlowMatchType.UNC_MATCH_IN_PORT
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowMatchInPort = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+                               // set inport
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructUint32Value(valDfFlowMatchInPort,
+                                                               VtnServiceIpcConsts.IN_PORT).toString());
+
+                               if (null == inportJsonArray) {
+                                       inportJsonArray = new JsonArray();
+                               }
+                               inportJsonArray.add(element);
+                               LOG.debug("set validBit for in_port :" + validBit);
+
+                       } else if (matchtype == UncStructIndexEnum.UncDataflowFlowMatchType.UNC_MATCH_DL_DST
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowMatchDlAddr = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(IpcDataUnitWrapper.getMacAddress(
+                                               valDfFlowMatchDlAddr, VtnServiceIpcConsts.DL_ADDR));
+                               if (null == dstMacJsonArray) {
+                                       dstMacJsonArray = new JsonArray();
+                               }
+                               dstMacJsonArray.add(element);
+                               LOG.debug("set validbit for macdst :" + validBit);
+
+                               final String s = IpcDataUnitWrapper.getIpcStructUint8Value(
+                                               valDfFlowMatchDlAddr, VtnServiceIpcConsts.V_MASK);
+
+                               if (Integer.parseInt(s) == UncStructIndexEnum.Valid.UNC_VF_VALID
+                                               .ordinal()) {
+                                       element = new JsonPrimitive(IpcDataUnitWrapper
+                                                       .getMacAddress(valDfFlowMatchDlAddr,
+                                                                       VtnServiceIpcConsts.DL_ADDR_MASK)
+                                                       .toString());
+                                       if (null == dstMaskJsonArray) {
+                                               dstMaskJsonArray = new JsonArray();
+                                       }
+                                       dstMaskJsonArray.add(element);
+                                       LOG.debug("set validbit for macdst :" + validBit);
+                               }
+                       } else if (matchtype == UncStructIndexEnum.UncDataflowFlowMatchType.UNC_MATCH_DL_SRC
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowMatchDlAddr = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(IpcDataUnitWrapper.getMacAddress(
+                                               valDfFlowMatchDlAddr, VtnServiceIpcConsts.DL_ADDR)
+                                               .toString());
+                               if (null == srcMacJsonArray) {
+                                       srcMacJsonArray = new JsonArray();
+                               }
+                               srcMacJsonArray.add(element);
+                               LOG.debug("set validbit for macsrc  :" + validBit);
+
+                               final String s = IpcDataUnitWrapper.getIpcStructUint8Value(
+                                               valDfFlowMatchDlAddr, VtnServiceIpcConsts.V_MASK);
+
+                               if (Integer.parseInt(s) == UncStructIndexEnum.Valid.UNC_VF_VALID
+                                               .ordinal()) {
+                                       element = new JsonPrimitive(IpcDataUnitWrapper
+                                                       .getMacAddress(valDfFlowMatchDlAddr,
+                                                                       VtnServiceIpcConsts.DL_ADDR_MASK)
+                                                       .toString());
+                                       if (null == srcMaskJsonArray) {
+                                               srcMaskJsonArray = new JsonArray();
+                                       }
+                                       srcMaskJsonArray.add(element);
+                                       LOG.debug("set validbit for macdst  :" + validBit);
+                               }
+                       } else if (matchtype == UncStructIndexEnum.UncDataflowFlowMatchType.UNC_MATCH_DL_TYPE
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowMatchDlType = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+                               element=new JsonPrimitive(IpcDataUnitWrapper.getIpcStructUint16HexaValue(
+                                               valDfFlowMatchDlType, VtnServiceIpcConsts.DL_TYPE)
+                                               .toString());
+                               if (null == macEtherTypeJsonArray) {
+                                       macEtherTypeJsonArray = new JsonArray();
+                               }
+                               macEtherTypeJsonArray.add(element);
+                               LOG.debug("set validbit for etherntype :" + validBit);
+
+                       } else if (matchtype == UncStructIndexEnum.UncDataflowFlowMatchType.UNC_MATCH_VLAN_ID
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowMatchVlanVid = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructUint16Value(valDfFlowMatchVlanVid,
+                                                               VtnServiceIpcConsts.VLAN_ID).toString());
+                               if (null == vlanIdJsonArray) {
+                                       vlanIdJsonArray = new JsonArray();
+                               }
+                               if(element.getAsString().equals(VtnServiceJsonConsts.VLAN_ID_65535)){
+                                       element = new JsonPrimitive(VtnServiceJsonConsts.EMPTY);
+                                       vlanIdJsonArray.add(element);
+                               }else{
+                                       vlanIdJsonArray.add(element);
+                               }
+                               
+
+                               LOG.debug("set validbit for vlan_id  :" + validBit);
+
+                       } else if (matchtype == UncStructIndexEnum.UncDataflowFlowMatchType.UNC_MATCH_VLAN_PCP
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowMatchVlanpcp = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructUint8Value(valDfFlowMatchVlanpcp,
+                                                               VtnServiceIpcConsts.VLAN_PCP).toString());
+                               if (null == vlanPriorityJsonArray) {
+                                       vlanPriorityJsonArray = new JsonArray();
+                               }
+                               vlanPriorityJsonArray.add(element);
+                               LOG.debug("set validbit for vlanpriority  :" + validBit);
+
+                       } else if (matchtype == UncStructIndexEnum.UncDataflowFlowMatchType.UNC_MATCH_IP_TOS
+                                       .ordinal()) {
+
+                               final IpcStruct valDfFlowMatchIpTos = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                           final String hexString =
+                        UnsignedInteger.toHexString(Long
+                                .valueOf(IpcDataUnitWrapper
+                                        .getIpcStructUint8Value(
+                                                valDfFlowMatchIpTos,
+                                                VtnServiceIpcConsts.IP_TOS)));
+                element = new JsonPrimitive("0x" + hexString);
+                               if (null == ipTosJsonArray) {
+                                       ipTosJsonArray = new JsonArray();
+                               }
+                               ipTosJsonArray.add(element);
+                               LOG.debug("set validbit for iptos :" + validBit);
+
+                       } else if (matchtype == UncStructIndexEnum.UncDataflowFlowMatchType.UNC_MATCH_IP_PROTO
+                                       .ordinal()) {
+
+                               final IpcStruct valDfFlowMatchIpProto = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructUint8Value(valDfFlowMatchIpProto,
+                                                               VtnServiceIpcConsts.IP_PROTO).toString());
+                               if (null == ipProtoJsonArray) {
+                                       ipProtoJsonArray = new JsonArray();
+                               }
+                               ipProtoJsonArray.add(element);
+                               LOG.debug("set validbit for  ipproto :" + validBit);
+
+                       } else if (matchtype == UncStructIndexEnum.UncDataflowFlowMatchType.UNC_MATCH_IPV4_SRC
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowMatchIpv4Addr = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructIpv4Value(valDfFlowMatchIpv4Addr,
+                                                               VtnServiceIpcConsts.IPV4_ADDR).toString());
+                               if (null == ipSrcAddrJsonArray) {
+                                       ipSrcAddrJsonArray = new JsonArray();
+                               }
+                               ipSrcAddrJsonArray.add(element);
+                               LOG.debug("set validbit for ipsrc :" + validBit);
+
+                               final String s = IpcDataUnitWrapper.getIpcStructUint8Value(
+                                               valDfFlowMatchIpv4Addr, VtnServiceIpcConsts.V_MASK);
+                               if (Integer.parseInt(s) == UncStructIndexEnum.Valid.UNC_VF_VALID
+                                               .ordinal()) {
+                                       element = new JsonPrimitive(IpcDataUnitWrapper
+                                                       .getIpcStructIpv4Value(valDfFlowMatchIpv4Addr,
+                                                                       VtnServiceIpcConsts.IPV4_ADDR_MASK)
+                                                       .toString());
+                                       if (null == ipSrcAddrMaskJsonArray) {
+                                               ipSrcAddrMaskJsonArray = new JsonArray();
+
+                                       }
+                                       ipSrcAddrMaskJsonArray.add(element);
+                                       LOG.debug("set validBit for ipv4_mask:" + validBit);
+                               }
+                       } else if (matchtype == UncStructIndexEnum.UncDataflowFlowMatchType.UNC_MATCH_IPV4_DST
+                                       .ordinal()) {
+                               final IpcStruct valDfFlowMatchIpv4Addr = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructIpv4Value(valDfFlowMatchIpv4Addr,
+                                                               VtnServiceIpcConsts.IPV4_ADDR).toString());
+                               if (null == ipDstAddrJsonArray) {
+                                       ipDstAddrJsonArray = new JsonArray();
+                               }
+                               ipDstAddrJsonArray.add(element);
+                               LOG.debug("set validbit for ipdst  :" + validBit);
+
+                               final String s = IpcDataUnitWrapper.getIpcStructUint8Value(
+                                               valDfFlowMatchIpv4Addr, VtnServiceIpcConsts.V_MASK);
+                               if (Integer.parseInt(s) == UncStructIndexEnum.Valid.UNC_VF_VALID
+                                               .ordinal()) {
+                                       element = new JsonPrimitive(IpcDataUnitWrapper
+                                                       .getIpcStructIpv4Value(valDfFlowMatchIpv4Addr,
+                                                                       VtnServiceIpcConsts.IPV4_ADDR_MASK)
+                                                       .toString());
+                                       if (null == ipDstAddrMaskJsonArray) {
+                                               ipDstAddrMaskJsonArray = new JsonArray();
+                                       }
+                                       ipDstAddrMaskJsonArray.add(element);
+                                       LOG.debug("set validbit for ipv4_mask:" + validBit);
+                               }
+                       } else if (matchtype == UncStructIndexEnum.UncDataflowFlowMatchType.UNC_MATCH_IPV6_SRC
+                                       .ordinal()) {
+
+                               final IpcStruct valdfflowmatchIpv6Addr = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructIpv6Value(valdfflowmatchIpv6Addr,
+                                                               VtnServiceIpcConsts.IPV6_ADDR).toString());
+                               if (null == ipV6SrcAddrJsonArray) {
+                                       ipV6SrcAddrJsonArray = new JsonArray();
+                               }
+                               ipV6SrcAddrJsonArray.add(element);
+                               LOG.debug("set validbit for ipv6src  :" + validBit);
+
+                               final String s = IpcDataUnitWrapper.getIpcStructUint8Value(
+                                               valdfflowmatchIpv6Addr, VtnServiceIpcConsts.V_MASK);
+
+                               if (Integer.parseInt(s) == UncStructIndexEnum.Valid.UNC_VF_VALID
+                                               .ordinal()) {
+                                       element = new JsonPrimitive(IpcDataUnitWrapper
+                                                       .getIpcStructIpv6Value(valdfflowmatchIpv6Addr,
+                                                                       VtnServiceIpcConsts.IPV6_ADDR_MASK)
+                                                       .toString());
+                                       if (null == ipV6SrcAddrMaskJsonArray) {
+                                               ipV6SrcAddrMaskJsonArray = new JsonArray();
+                                       }
+                                       ipV6SrcAddrMaskJsonArray.add(element);
+                                       LOG.debug("set validbit for ipv6_mask:" + validBit);
+                               }
+                       } else if (matchtype == UncStructIndexEnum.UncDataflowFlowMatchType.UNC_MATCH_IPV6_DST
+                                       .ordinal()) {
+
+                               final IpcStruct valdfflowmatchIpv6Addr = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructIpv6Value(valdfflowmatchIpv6Addr,
+                                                               VtnServiceIpcConsts.IPV6_ADDR).toString());
+                               if (null == ipV6DstAddJsonArray) {
+                                       ipV6DstAddJsonArray = new JsonArray();
+                               }
+                               ipV6DstAddJsonArray.add(element);
+                               LOG.debug("set validbit for ipv6dst  :" + validBit);
+
+                               final String s = IpcDataUnitWrapper.getIpcStructUint8Value(
+                                               valdfflowmatchIpv6Addr, VtnServiceIpcConsts.V_MASK);
+
+                               if (Integer.parseInt(s) == UncStructIndexEnum.Valid.UNC_VF_VALID
+                                               .ordinal()) {
+                                       element = new JsonPrimitive(IpcDataUnitWrapper
+                                                       .getIpcStructIpv6Value(valdfflowmatchIpv6Addr,
+                                                                       VtnServiceIpcConsts.IPV6_ADDR_MASK)
+                                                       .toString());
+                                       if (null == ipV6DstAddrMaskJsonArray) {
+                                               ipV6DstAddrMaskJsonArray = new JsonArray();
+                                       }
+                                       ipV6DstAddrMaskJsonArray.add(element);
+                                       LOG.debug("set validbit for ipv6_mask:" + validBit);
+                               }
+                       } else if (matchtype == UncStructIndexEnum.UncDataflowFlowMatchType.UNC_MATCH_TP_SRC
+                                       .ordinal()) {
+
+                               final IpcStruct valDfFlowMatchTpPort = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructUint16Value(valDfFlowMatchTpPort,
+                                                               VtnServiceIpcConsts.TP_PORT).toString());
+                               if (null == l4SrcPortIcmpTypeJsonArray) {
+                                       l4SrcPortIcmpTypeJsonArray = new JsonArray();
+                               }
+                               l4SrcPortIcmpTypeJsonArray.add(element);
+
+                               LOG.debug("set validbit for tpsrc :" + validBit);
+
+                               final String s = IpcDataUnitWrapper.getIpcStructUint8Value(
+                                               valDfFlowMatchTpPort, VtnServiceIpcConsts.V_MASK);
+
+                               if (Integer.parseInt(s) == UncStructIndexEnum.Valid.UNC_VF_VALID
+                                               .ordinal()) {
+
+                                       element = new JsonPrimitive(IpcDataUnitWrapper
+                                                       .getIpcStructUint16Value(valDfFlowMatchTpPort,
+                                                                       VtnServiceIpcConsts.TP_PORT_MASK)
+                                                       .toString());
+                                       if (null == l4SrcPortIcmpTypeMaskJsonArray) {
+                                               l4SrcPortIcmpTypeMaskJsonArray = new JsonArray();
+                                       }
+                                       l4SrcPortIcmpTypeMaskJsonArray.add(element);
+                                       LOG.debug("set validbit for tpsrcmask :" + validBit);
+                               }
+                       } else if (matchtype == UncStructIndexEnum.UncDataflowFlowMatchType.UNC_MATCH_TP_DST
+                                       .ordinal()) {
+
+                               final IpcStruct valDfFlowMatchTpPort = (IpcStruct) responsePacket[index
+                                               .getAndIncrement()];
+
+                               element = new JsonPrimitive(IpcDataUnitWrapper
+                                               .getIpcStructUint16Value(valDfFlowMatchTpPort,
+                                                               VtnServiceIpcConsts.TP_PORT).toString());
+                               if (null == l4DstPortIcmpTypeJsonArray) {
+                                       l4DstPortIcmpTypeJsonArray = new JsonArray();
+                               }
+                               l4DstPortIcmpTypeJsonArray.add(element);
+                               LOG.debug("set validbit for tpdst  :" + validBit);
+
+                               final String s = IpcDataUnitWrapper.getIpcStructUint8Value(
+                                               valDfFlowMatchTpPort, VtnServiceIpcConsts.V_MASK);
+
+                               if (Integer.parseInt(s) == UncStructIndexEnum.Valid.UNC_VF_VALID
+                                               .ordinal()) {
+                                       element = new JsonPrimitive(IpcDataUnitWrapper
+                                                       .getIpcStructUint16Value(valDfFlowMatchTpPort,
+                                                                       VtnServiceIpcConsts.TP_PORT_MASK)
+                                                       .toString());
+
+                                       if (null == l4DstPortIcmpTypeMaskJsonArray) {
+                                               l4DstPortIcmpTypeMaskJsonArray = new JsonArray();
+                                       }
+                                       l4DstPortIcmpTypeMaskJsonArray.add(element);
+                               }
+                       } else {
+                               LOG.debug("Type : invalid");
+                       }
+
+               }
+               if (null != inportJsonArray) {
+                       match.add(VtnServiceJsonConsts.INPORT, inportJsonArray);
+               }
+               if (null != dstMacJsonArray) {
+                       match.add(VtnServiceJsonConsts.MACDSTADDR, dstMacJsonArray);
+               }
+               if (dstMaskJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.MACDSTADDR_MASK, dstMaskJsonArray);
+               }
+               if (srcMacJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.MACSRCADDR, srcMacJsonArray);
+               }
+               if (srcMaskJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.MACSRCADDR_MASK, srcMaskJsonArray);
+               }
+               if (macEtherTypeJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.MACETHERTYPE, macEtherTypeJsonArray);
+               }
+               if (vlanIdJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.VLAN_ID, vlanIdJsonArray);
+               }
+               if (vlanPriorityJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.VLAN_PRIORITY, vlanPriorityJsonArray);
+               }
+               if (ipTosJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.IPTOS, ipTosJsonArray);
+               }
+               if (ipProtoJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.IPPROTO, ipProtoJsonArray);
+               }
+               if (ipSrcAddrJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.IPSRCADDR, ipSrcAddrJsonArray);
+               }
+               if (ipSrcAddrMaskJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.IPSRCADDR_MASK,
+                                       ipSrcAddrMaskJsonArray);
+               }
+               if (ipDstAddrJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.IPDSTADDR, ipDstAddrJsonArray);
+               }
+               if (ipDstAddrMaskJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.IPDSTADDR_MASK,
+                                       ipDstAddrMaskJsonArray);
+               }
+               if (ipV6SrcAddrJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.IPV6SRCADDR, ipV6SrcAddrJsonArray);
+               }
+               if (ipV6SrcAddrMaskJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.IPV6SRCADDR_MASK,
+                                       ipV6SrcAddrMaskJsonArray);
+               }
+               if (ipV6DstAddJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.IPV6DSTADDR, ipV6DstAddJsonArray);
+               }
+               if (ipV6DstAddrMaskJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.IPV6DSTADDR_MASK,
+                                       ipV6DstAddrMaskJsonArray);
+               }
+               if (l4SrcPortIcmpTypeJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.L4SRCPORT_ICMPTYPE,
+                                       l4SrcPortIcmpTypeJsonArray);
+               }
+               if (l4SrcPortIcmpTypeMaskJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.L4SRCPORT_ICMPTYPE_MASK,
+                                       l4SrcPortIcmpTypeMaskJsonArray);
+               }
+               if (l4DstPortIcmpTypeJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.L4DSTPORT_ICMPTYPE,
+                                       l4DstPortIcmpTypeJsonArray);
+               }
+               if (l4DstPortIcmpTypeMaskJsonArray != null) {
+                       match.add(VtnServiceJsonConsts.L4DSTPORT_ICMPTYPE_MASK,
+                                       l4DstPortIcmpTypeMaskJsonArray);
+               }
+               LOG.debug("match Json :" + match);
+               LOG.trace("getDataFlowMatchInfo completed");
+               return match;
+       }
+
 }
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/conversion/package-info.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/conversion/package-info.java
new file mode 100644 (file)
index 0000000..4ed3cab
--- /dev/null
@@ -0,0 +1,15 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * Package contains Java API IPC response generator classes 
+ * for generating response .
+ */
+package org.opendaylight.vtn.javaapi.ipc.conversion;
+
index 90f0a30516bec554bca89a2ce4e8e7962be270cf..4684bfb82b7de2915183dd0c80248cdb03ea6db4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
  */
 package org.opendaylight.vtn.javaapi.ipc.enums;
 
-
-// TODO: Auto-generated Javadoc
 /**
  * The Enum IpcRequestPacketEnum.
  */
 public enum IpcRequestPacketEnum {
 
-       KT_VTN_CREATE(UncOperationEnum.UNC_OP_CREATE.ordinal(),
+       KT_VTN_CREATE(
+                       UncOperationEnum.UNC_OP_CREATE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_VTN.getValue(),
                        UncStructEnum.KeyVtn.name(),
                        UncStructEnum.ValVtn.name()),
-                       
-       KT_FLOWLIST_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
+
+       KT_FLOWLIST_DELETE(
+                       UncOperationEnum.UNC_OP_DELETE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                       UncOption2Enum.UNC_OPT2_NONE.ordinal(), 
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_FLOWLIST.getValue(),
                        UncStructEnum.KeyFlowList.name(),
                        UncStructEnum.NONE.name()),
-       KT_FLOWLIST_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
+       KT_FLOWLIST_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_STATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_FLOWLIST.getValue(),
                        UncStructEnum.KeyFlowList.name(),
                        UncStructEnum.ValFlowList.name()),
-                       
-       KT_DHCPRELAY_IF_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
+
+       KT_DHCPRELAY_IF_DELETE(
+                       UncOperationEnum.UNC_OP_DELETE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_DHCPRELAY_IF.getValue(),
                        UncStructEnum.KeyDhcpRelayIf.name(),
                        UncStructEnum.NONE.name()),
-       KT_DHCPRELAY_IF_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
+       KT_DHCPRELAY_IF_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_STATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_DHCPRELAY_IF.getValue(),
                        UncStructEnum.KeyDhcpRelayIf.name(),
                        UncStructEnum.NONE.name()),
-       KT_DHCPRELAY_IF_CREATE(UncOperationEnum.UNC_OP_CREATE.ordinal(),
+       KT_DHCPRELAY_IF_CREATE(
+                       UncOperationEnum.UNC_OP_CREATE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_DHCPRELAY_IF.getValue(),
                        UncStructEnum.KeyDhcpRelayIf.name(),
                        UncStructEnum.NONE.name()),
-                       
-       KT_DHCPRELAY_SERVER_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
+
+       KT_DHCPRELAY_SERVER_DELETE(
+                       UncOperationEnum.UNC_OP_DELETE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_DHCPRELAY_SERVER.getValue(),
                        UncStructEnum.KeyDhcpRelayServer.name(),
                        UncStructEnum.NONE.name()),
-       KT_DHCPRELAY_SERVER_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
+       KT_DHCPRELAY_SERVER_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-            UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_STATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_DHCPRELAY_SERVER.getValue(),
                        UncStructEnum.KeyDhcpRelayServer.name(),
                        UncStructEnum.NONE.name()),
-       KT_DHCPRELAY_SERVER_CREATE(UncOperationEnum.UNC_OP_CREATE.ordinal(),
+       KT_DHCPRELAY_SERVER_CREATE(
+                       UncOperationEnum.UNC_OP_CREATE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_DHCPRELAY_SERVER.getValue(),
                        UncStructEnum.KeyDhcpRelayServer.name(),
                        UncStructEnum.NONE.name()),
-       KT_VTN_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
+       KT_VTN_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_STATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_VTN.getValue(),
                        UncStructEnum.KeyVtn.name(),
                        UncStructEnum.NONE.name()),
-    KT_VTN_UPDATE(UncOperationEnum.UNC_OP_UPDATE.ordinal(),
+       KT_VTN_UPDATE(
+                       UncOperationEnum.UNC_OP_UPDATE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_VTN.getValue(),
                        UncStructEnum.KeyVtn.name(),
                        UncStructEnum.ValVtn.name()),
-    KT_VTN_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
+       KT_VTN_DELETE(
+                       UncOperationEnum.UNC_OP_DELETE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_VTN.getValue(),
                        UncStructEnum.KeyVtn.name(),
                        UncStructEnum.NONE.name()),
-       KT_VUNKNOWN_UPDATE(UncOperationEnum.UNC_OP_UPDATE.ordinal(),
+       KT_VUNKNOWN_UPDATE(
+                       UncOperationEnum.UNC_OP_UPDATE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_VUNKNOWN.getValue(),
                        UncStructEnum.KeyVunknown.name(),
                        UncStructEnum.ValVunknown.name()),
-       KT_VUNKNOWN_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
+       KT_VUNKNOWN_DELETE(
+                       UncOperationEnum.UNC_OP_DELETE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_VUNKNOWN.getValue(),
                        UncStructEnum.KeyVunknown.name(),
                        UncStructEnum.NONE.name()),
-       KT_FLOWLIST_CREATE(UncOperationEnum.UNC_OP_CREATE.ordinal(),
+       KT_FLOWLIST_CREATE(
+                       UncOperationEnum.UNC_OP_CREATE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_FLOWLIST.getValue(),
                        UncStructEnum.KeyFlowList.name(),
                        UncStructEnum.ValFlowList.name()),
-       KT_FLOWLIST_ENTRY_CREATE(UncOperationEnum.UNC_OP_CREATE.ordinal(),
+       KT_FLOWLIST_ENTRY_CREATE(
+                       UncOperationEnum.UNC_OP_CREATE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_FLOWLIST_ENTRY.getValue(),
                        UncStructEnum.KeyFlowListEntry.name(),
                        UncStructEnum.ValFlowListEntry.name()),
-       KT_FLOWLIST_ENTRY_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
+       KT_FLOWLIST_ENTRY_DELETE(
+                       UncOperationEnum.UNC_OP_DELETE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_FLOWLIST_ENTRY.getValue(),
                        UncStructEnum.KeyFlowListEntry.name(),
                        UncStructEnum.NONE.name()),
-       KT_FLOWLIST_ENTRY_UPDATE(UncOperationEnum.UNC_OP_UPDATE.ordinal(),
+       KT_FLOWLIST_ENTRY_UPDATE(
+                       UncOperationEnum.UNC_OP_UPDATE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_FLOWLIST_ENTRY.getValue(),
                        UncStructEnum.KeyFlowListEntry.name(),
                        UncStructEnum.ValFlowListEntry.name()),
-       KT_FLOWLIST_ENTRY_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
+       KT_FLOWLIST_ENTRY_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_STATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_FLOWLIST_ENTRY.getValue(),
                        UncStructEnum.KeyFlowListEntry.name(),
                        UncStructEnum.NONE.name()),
-       KT_VTNSTATION_CONTROLLER_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
+       KT_VTNSTATION_CONTROLLER_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_STATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_VTNSTATION_CONTROLLER.getValue(),
                        UncStructEnum.KeyVtnstationController.name(),
-                       UncStructEnum.ValVtnstationControllerSt.name()),                        
-       KT_VTUNNEL_CREATE(UncOperationEnum.UNC_OP_CREATE.ordinal(),
+                       UncStructEnum.ValVtnstationControllerSt.name()),
+       KT_VTUNNEL_CREATE(
+                       UncOperationEnum.UNC_OP_CREATE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_VTUNNEL.getValue(),
                        UncStructEnum.KeyVtunnel.name(),
                        UncStructEnum.ValVtunnel.name()),
-   KT_VTUNNEL_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
+       KT_VTUNNEL_DELETE(
+                       UncOperationEnum.UNC_OP_DELETE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_VTUNNEL.getValue(),
                        UncStructEnum.KeyVtunnel.name(),
                        UncStructEnum.NONE.name()),
-   KT_VTUNNEL_UPDATE(UncOperationEnum.UNC_OP_UPDATE.ordinal(),
+       KT_VTUNNEL_UPDATE(
+                       UncOperationEnum.UNC_OP_UPDATE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_VTUNNEL.getValue(),
                        UncStructEnum.KeyVtunnel.name(),
                        UncStructEnum.ValVtunnel.name()),
-   KT_VTUNNEL_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
+       KT_VTUNNEL_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                       UncDataType.UNC_DT_STATE.ordinal(), 
+                       UncDataType.UNC_DT_STATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_VTUNNEL.getValue(),
                        UncStructEnum.KeyVtunnel.name(),
-                       UncStructEnum.ValVtunnel.name()),       
-  KT_VTUNNEL_GET_COUNT(UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncStructEnum.ValVtunnel.name()),
+       KT_VTUNNEL_GET_COUNT(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                       UncOption2Enum.UNC_OPT2_NONE.ordinal(), 
-                       UncDataType.UNC_DT_STATE.ordinal(), 
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_VTUNNEL.getValue(),
-                       UncStructEnum.KeyVtunnel.name(), 
+                       UncStructEnum.KeyVtunnel.name(),
                        UncStructEnum.NONE.name()),
-       KT_VLINK_CREATE(UncOperationEnum.UNC_OP_CREATE.ordinal(),
+       KT_VLINK_CREATE(
+                       UncOperationEnum.UNC_OP_CREATE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_VLINK.getValue(),
                        UncStructEnum.KeyVlink.name(),
                        UncStructEnum.ValVlink.name()),
-       KT_VLINK_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
+       KT_VLINK_DELETE(
+                       UncOperationEnum.UNC_OP_DELETE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_VLINK.getValue(),
                        UncStructEnum.KeyVlink.name(),
                        UncStructEnum.NONE.name()),
-       KT_VLINK_UPDATE(UncOperationEnum.UNC_OP_UPDATE.ordinal(),
+       KT_VLINK_UPDATE(
+                       UncOperationEnum.UNC_OP_UPDATE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_VLINK.getValue(),
                        UncStructEnum.KeyVlink.name(),
                        UncStructEnum.ValVlink.name()),
-       KT_VLINK_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
+       KT_VLINK_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_STATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_VLINK.getValue(),
                        UncStructEnum.KeyVlink.name(),
-                       UncStructEnum.NONE.name()),     
-       KT_VLINK_GET2(UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncStructEnum.NONE.name()),
+       KT_VLINK_GET2(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_STATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_VLINK.getValue(),
                        UncStructEnum.KeyVlink.name(),
-                       UncStructEnum.ValVlink.name()), 
-       KT_VBRIDGE_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
+                       UncStructEnum.ValVlink.name()),
+       KT_VBRIDGE_DELETE(
+                       UncOperationEnum.UNC_OP_DELETE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                       UncKeyTypeEnum.UNC_KT_VBRIDGE.getValue(), 
-                       UncStructEnum.KeyVbr.name(), 
+                       UncKeyTypeEnum.UNC_KT_VBRIDGE.getValue(),
+                       UncStructEnum.KeyVbr.name(),
                        UncStructEnum.NONE.name()),
-       KT_VBRIDGE_UPDATE(UncOperationEnum.UNC_OP_UPDATE.ordinal(),
+       KT_VBRIDGE_UPDATE(
+                       UncOperationEnum.UNC_OP_UPDATE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                       UncKeyTypeEnum.UNC_KT_VBRIDGE.getValue(), 
+                       UncKeyTypeEnum.UNC_KT_VBRIDGE.getValue(),
                        UncStructEnum.KeyVbr.name(),
                        UncStructEnum.ValVbr.name()),
-       KT_VBRIDGE_CREATE(UncOperationEnum.UNC_OP_CREATE.ordinal(),
+       KT_VBRIDGE_CREATE(
+                       UncOperationEnum.UNC_OP_CREATE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                       UncKeyTypeEnum.UNC_KT_VBRIDGE.getValue(), 
-                       UncStructEnum.KeyVbr.name(), 
+                       UncKeyTypeEnum.UNC_KT_VBRIDGE.getValue(),
+                       UncStructEnum.KeyVbr.name(),
                        UncStructEnum.ValVbr.name()),
-       KT_VBRIDGE_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
+       KT_VBRIDGE_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_STATE.ordinal(),
-                       UncKeyTypeEnum.UNC_KT_VBRIDGE.getValue(), 
-                       UncStructEnum.KeyVbr.name(), 
+                       UncKeyTypeEnum.UNC_KT_VBRIDGE.getValue(),
+                       UncStructEnum.KeyVbr.name(),
                        UncStructEnum.NONE.name()),
-       KT_VBRIDGE_MAC_ENTRY_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
+       KT_VBRIDGE_MAC_ENTRY_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_MAC_ENTRY.ordinal(),
                        UncDataType.UNC_DT_STATE.ordinal(),
-                       UncKeyTypeEnum.UNC_KT_VBRIDGE.getValue(), 
-                       UncStructEnum.KeyVbr.name(), 
+                       UncKeyTypeEnum.UNC_KT_VBRIDGE.getValue(),
+                       UncStructEnum.KeyVbr.name(),
                        UncStructEnum.NONE.name()),
-       KT_VBR_VLANMAP_CREATE(UncOperationEnum.UNC_OP_CREATE.ordinal(),
+       KT_VBR_VLANMAP_CREATE(
+                       UncOperationEnum.UNC_OP_CREATE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                       UncKeyTypeEnum.UNC_KT_VBR_VLANMAP.getValue(), 
-                       UncStructEnum.KeyVlanMap.name(), 
+                       UncKeyTypeEnum.UNC_KT_VBR_VLANMAP.getValue(),
+                       UncStructEnum.KeyVlanMap.name(),
                        UncStructEnum.ValVlanMap.name()),
-       KT_VBR_VLANMAP_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
+       KT_VBR_VLANMAP_DELETE(
+                       UncOperationEnum.UNC_OP_DELETE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                       UncKeyTypeEnum.UNC_KT_VBR_VLANMAP.getValue(), 
-                       UncStructEnum.KeyVlanMap.name(), 
+                       UncKeyTypeEnum.UNC_KT_VBR_VLANMAP.getValue(),
+                       UncStructEnum.KeyVlanMap.name(),
                        UncStructEnum.NONE.name()),
-       KT_VBR_VLANMAP_UPDATE(UncOperationEnum.UNC_OP_UPDATE.ordinal(),
+       KT_VBR_VLANMAP_UPDATE(
+                       UncOperationEnum.UNC_OP_UPDATE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                       UncKeyTypeEnum.UNC_KT_VBR_VLANMAP.getValue(), 
-                       UncStructEnum.KeyVlanMap.name(), 
-               UncStructEnum.ValVlanMap.name()),
-    KT_VBR_VLANMAP_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VBR_VLANMAP.getValue(),
+                       UncStructEnum.KeyVlanMap.name(),
+                       UncStructEnum.ValVlanMap.name()),
+       KT_VBR_VLANMAP_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_STATE.ordinal(),
-                       UncKeyTypeEnum.UNC_KT_VBR_VLANMAP.getValue(), 
-                       UncStructEnum.KeyVlanMap.name(), 
+                       UncKeyTypeEnum.UNC_KT_VBR_VLANMAP.getValue(),
+                       UncStructEnum.KeyVlanMap.name(),
                        UncStructEnum.NONE.name()),
-       KT_VROUTER_CREATE(UncOperationEnum.UNC_OP_CREATE.ordinal(),
+       KT_VROUTER_CREATE(
+                       UncOperationEnum.UNC_OP_CREATE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_VROUTER.getValue(),
                        UncStructEnum.KeyVrt.name(),
                        UncStructEnum.ValVrt.name()),
-       KT_VROUTER_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
+       KT_VROUTER_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_STATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_VROUTER.getValue(),
                        UncStructEnum.KeyVrt.name(),
                        UncStructEnum.NONE.name()),
-       KT_VROUTER_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
+       KT_VROUTER_DELETE(
+                       UncOperationEnum.UNC_OP_DELETE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_VROUTER.getValue(),
                        UncStructEnum.KeyVrt.name(),
                        UncStructEnum.NONE.name()),
-       KT_VROUTER_UPDATE(UncOperationEnum.UNC_OP_UPDATE.ordinal(),
+       KT_VROUTER_UPDATE(
+                       UncOperationEnum.UNC_OP_UPDATE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_VROUTER.getValue(),
                        UncStructEnum.KeyVrt.name(),
                        UncStructEnum.ValVrt.name()),
-       KT_VRT_IF_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
+       KT_VRT_IF_DELETE(
+                       UncOperationEnum.UNC_OP_DELETE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_VRT_IF.getValue(),
                        UncStructEnum.KeyVrtIf.name(),
                        UncStructEnum.NONE.name()),
-       KT_VRT_IF_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
+       KT_VRT_IF_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_STATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_VRT_IF.getValue(),
                        UncStructEnum.KeyVrtIf.name(),
                        UncStructEnum.NONE.name()),
-   KT_VRT_IF_GET2(UncOperationEnum.UNC_OP_READ.ordinal(),
+       KT_VRT_IF_GET2(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NEIGHBOR.ordinal(),
                        UncDataType.UNC_DT_STATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_VRT_IF.getValue(),
                        UncStructEnum.KeyVrtIf.name(),
                        UncStructEnum.NONE.name()),
-       KT_VRT_IF_UPDATE(UncOperationEnum.UNC_OP_UPDATE.ordinal(),
+       KT_VRT_IF_UPDATE(
+                       UncOperationEnum.UNC_OP_UPDATE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_VRT_IF.getValue(),
                        UncStructEnum.KeyVrtIf.name(),
                        UncStructEnum.ValVrtIf.name()),
-       KT_VRT_IF_CREATE(UncOperationEnum.UNC_OP_CREATE.ordinal(),
+       KT_VRT_IF_CREATE(
+                       UncOperationEnum.UNC_OP_CREATE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_VRT_IF.getValue(),
                        UncStructEnum.KeyVrtIf.name(),
-                       UncStructEnum.ValVrtIf.name()),         
-       KT_VTUNNEL_IF_CREATE(UncOperationEnum.UNC_OP_CREATE.ordinal(),
-                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),                         
-                                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                                       UncKeyTypeEnum.UNC_KT_VTUNNEL_IF.getValue(),
-                                       UncStructEnum.KeyVtunnelIf.name(),
-                                       UncStructEnum.ValVtunnelIf.name()),
-       KT_VTUNNEL_IF_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
-                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                                       UncKeyTypeEnum.UNC_KT_VTUNNEL_IF.getValue(),
-                                       UncStructEnum.KeyVtunnelIf.name(),
-                                       UncStructEnum.NONE.name()),
-       KT_VTUNNEL_IF_UPDATE(UncOperationEnum.UNC_OP_UPDATE.ordinal(),
-                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                                       UncKeyTypeEnum.UNC_KT_VTUNNEL_IF.getValue(),
-                                       UncStructEnum.KeyVtunnelIf.name(),
-                                       UncStructEnum.ValVtunnelIf.name()),
-       KT_VTUNNEL_IF_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
-                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                       UncDataType.UNC_DT_STATE.ordinal(),
-                                       UncKeyTypeEnum.UNC_KT_VTUNNEL_IF.getValue(),
-                                       UncStructEnum.KeyVtunnelIf.name(),
-                                       UncStructEnum.NONE.name()),
-       KT_VTUNNEL_IF_GET2(UncOperationEnum.UNC_OP_READ.ordinal(),
-                                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                       UncOption2Enum.UNC_OPT2_NEIGHBOR.ordinal(),
-                                                       UncDataType.UNC_DT_STATE.ordinal(),
-                                                       UncKeyTypeEnum.UNC_KT_VTUNNEL_IF.getValue(),
-                                                       UncStructEnum.KeyVtunnelIf.name(),
-                                                       UncStructEnum.NONE.name()),
-       KT_VTEP_IF_CREATE(UncOperationEnum.UNC_OP_CREATE.ordinal(),
-                                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),         
-                                                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                                                       UncKeyTypeEnum.UNC_KT_VTEP_IF.getValue(),
-                                                       UncStructEnum.KeyVtepIf.name(),
-                                                       UncStructEnum.ValVtepIf.name()),
-       KT_VTEP_IF_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
-                                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                                                       UncKeyTypeEnum.UNC_KT_VTEP_IF.getValue(),
-                                                       UncStructEnum.KeyVtepIf.name(),
-                                                       UncStructEnum.NONE.name()),
-       KT_VTEP_IF_UPDATE(UncOperationEnum.UNC_OP_UPDATE.ordinal(),
-                                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                                                       UncKeyTypeEnum.UNC_KT_VTEP_IF.getValue(),
-                                                       UncStructEnum.KeyVtepIf.name(),
-                                                       UncStructEnum.ValVtepIf.name()),
-       KT_VTEP_IF_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
-                                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                                       UncDataType.UNC_DT_STATE.ordinal(),
-                                                       UncKeyTypeEnum.UNC_KT_VTEP_IF.getValue(),
-                                                       UncStructEnum.KeyVtepIf.name(),
-                                                       UncStructEnum.NONE.name()),
-       
-       KT_VTEP_IF_GET2(UncOperationEnum.UNC_OP_READ.ordinal(),
-                                               UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                               UncOption2Enum.UNC_OPT2_NEIGHBOR.ordinal(),
-                                               UncDataType.UNC_DT_STATE.ordinal(),
-                                               UncKeyTypeEnum.UNC_KT_VTEP_IF.getValue(), 
-                                               UncStructEnum.KeyVtepIf.name(),
-                                               UncStructEnum.NONE.name()),     
-                                                                                       
-       KT_VTEP_CREATE(UncOperationEnum.UNC_OP_CREATE.ordinal(),
-                                                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),         
-                                                                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                                                                       UncKeyTypeEnum.UNC_KT_VTEP.getValue(),
-                                                                       UncStructEnum.KeyVtep.name(),
-                                                                       UncStructEnum.ValVtep.name()),
-       KT_VTEP_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
-                                                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                                                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                                                                       UncKeyTypeEnum.UNC_KT_VTEP.getValue(),
-                                                                       UncStructEnum.KeyVtep.name(),
-                                                                       UncStructEnum.NONE.name()),
-       KT_VTEP_UPDATE(UncOperationEnum.UNC_OP_UPDATE.ordinal(),
-                                                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                                                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                                                                       UncKeyTypeEnum.UNC_KT_VTEP.getValue(),
-                                                                       UncStructEnum.KeyVtep.name(),
-                                                                       UncStructEnum.ValVtep.name()),
-       KT_VTEP_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
-                                                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                                                       UncDataType.UNC_DT_STATE.ordinal(),
-                                                                       UncKeyTypeEnum.UNC_KT_VTEP.getValue(),
-                                                                       UncStructEnum.KeyVtep.name(),
-                                                                       UncStructEnum.NONE.name()),
-KT_VTEP_GET_COUNT(UncOperationEnum.UNC_OP_READ.ordinal(),
-                                                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                                                       UncDataType.UNC_DT_STATE.ordinal(),
-                                                                       UncKeyTypeEnum.UNC_KT_VTEP.getValue(),
-                                                                       UncStructEnum.KeyVtep.name(),
-                                                                       UncStructEnum.ValVtep.name()), 
-       KT_VTN_FLOWFILTER_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
-                                                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                                                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                                                                       UncKeyTypeEnum.UNC_KT_VTN_FLOWFILTER.getValue(),
-                                                                       UncStructEnum.KeyVtnFlowFilter.name(),
-                                                                       UncStructEnum.NONE.name()),
-       KT_VTN_FLOWFILTER_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
-                                                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                                                       UncDataType.UNC_DT_STATE.ordinal(),
-                                                                       UncKeyTypeEnum.UNC_KT_VTN_FLOWFILTER.getValue(),
-                                                                       UncStructEnum.KeyVtnFlowFilter.name(),
-                                                                       UncStructEnum.NONE.name()),
-       KT_VTN_FLOWFILTER_CREATE(UncOperationEnum.UNC_OP_CREATE.ordinal(),
-                                                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                                                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                                                                       UncKeyTypeEnum.UNC_KT_VTN_FLOWFILTER.getValue(),
-                                                                       UncStructEnum.KeyVtnFlowFilter.name(),
-                                                                       UncStructEnum.NONE.name()),
-       KT_VTN_FLOWFILTER_ENTRY_UPDATE(UncOperationEnum.UNC_OP_UPDATE.ordinal(),
-                                                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                                                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                                                                       UncKeyTypeEnum.UNC_KT_VTN_FLOWFILTER_ENTRY.getValue(),
-                                                                       UncStructEnum.KeyVtnFlowFilterEntry.name(),
-                                                                       UncStructEnum.ValVtnFlowFilterEntry.name()),
-       KT_VTN_FLOWFILTER_ENTRY_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
-                                                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                                                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                                                                       UncKeyTypeEnum.UNC_KT_VTN_FLOWFILTER_ENTRY.getValue(),
-                                                                       UncStructEnum.KeyVtnFlowFilterEntry.name(),
-                                                                       UncStructEnum.NONE.name()),
-       KT_VTN_FLOWFILTER_ENTRY_CREATE(UncOperationEnum.UNC_OP_CREATE.ordinal(),
-                                                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                                                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                                                                       UncKeyTypeEnum.UNC_KT_VTN_FLOWFILTER_ENTRY.getValue(),
-                                                                       UncStructEnum.KeyVtnFlowFilterEntry.name(),
-                                                                       UncStructEnum.ValVtnFlowFilterEntry.name()),
-       KT_VTN_FLOWFILTER_ENTRY_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
-                                                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                                                       UncDataType.UNC_DT_STATE.ordinal(),
-                                                                       UncKeyTypeEnum.UNC_KT_VTN_FLOWFILTER_ENTRY.getValue(),
-                                                                       UncStructEnum.KeyVtnFlowFilterEntry.name(),
-                                                                       UncStructEnum.NONE.name()),
-    KT_VTN_FLOWFILTER_ENTRY_GET_STATE(UncOperationEnum.UNC_OP_READ.ordinal(),
-                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                               UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                               UncDataType.UNC_DT_STATE.ordinal(),
-                               UncKeyTypeEnum.UNC_KT_VTN_FLOWFILTER_CONTROLLER.getValue(),
-                               UncStructEnum.KeyVtnFlowfilterController.name(),
-                               UncStructEnum.ValFlowFilterController.name()),                                                                                                          
-       KT_VUNKNOWN_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
-                                                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                                                       UncDataType.UNC_DT_STATE.ordinal(),
-                                                                       UncKeyTypeEnum.UNC_KT_VUNKNOWN.getValue(),
-                                                                       UncStructEnum.KeyVunknown.name(),
-                                                                       UncStructEnum.NONE.name()),
-       KT_VUNKNOWN_CREATE(UncOperationEnum.UNC_OP_CREATE.ordinal(),
-                                                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                                                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                                                                       UncKeyTypeEnum.UNC_KT_VUNKNOWN.getValue(),
-                                                                       UncStructEnum.KeyVunknown.name(),
-                                                                       UncStructEnum.ValVunknown.name()),
-       KT_VUNK_IF_UPDATE(UncOperationEnum.UNC_OP_UPDATE.ordinal(),
-                                                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                                                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                                                                       UncKeyTypeEnum.UNC_KT_VUNK_IF.getValue(),
-                                                                       UncStructEnum.KeyVunkIf.name(),
-                                                                       UncStructEnum.ValVunkIf.name()),
-       KT_VUNK_IF_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
-                                                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                                                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                                                                       UncKeyTypeEnum.UNC_KT_VUNK_IF.getValue(),
-                                                                       UncStructEnum.KeyVunkIf.name(),
-                                                                       UncStructEnum.NONE.name()),
-       KT_VUNK_IF_CREATE(UncOperationEnum.UNC_OP_CREATE.ordinal(),
-                                                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                                                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                                                                       UncKeyTypeEnum.UNC_KT_VUNK_IF.getValue(),
-                                                                       UncStructEnum.KeyVunkIf.name(),
-                                                                       UncStructEnum.ValVunkIf.name()),
-       KT_VUNK_IF_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
-                                                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                                                       UncDataType.UNC_DT_STATE.ordinal(),
-                                                                       UncKeyTypeEnum.UNC_KT_VUNK_IF.getValue(),
-                                                                       UncStructEnum.KeyVunkIf.name(),
-                                                                       UncStructEnum.NONE.name()),     
-       KT_VUNK_IF_GET2(UncOperationEnum.UNC_OP_READ.ordinal(),
-                                                               UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                                       UncOption2Enum.UNC_OPT2_NEIGHBOR.ordinal(),
-                                                                       UncDataType.UNC_DT_STATE.ordinal(),
-                                                                       UncKeyTypeEnum.UNC_KT_VUNK_IF.getValue(),
-                                                                       UncStructEnum.KeyVunkIf.name(),
-                                                                       UncStructEnum.NONE.name()),
-                                                                       
-       KT_VROUTER_ARP_ENTRY(UncOperationEnum.UNC_OP_READ.ordinal(),
-                                                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                                       UncOption2Enum.UNC_OPT2_ARP_ENTRY.ordinal(),
-                                                                       UncDataType.UNC_DT_STATE.ordinal(),
-                                                                       UncKeyTypeEnum.UNC_KT_VROUTER.getValue(),
-                                                                       UncStructEnum.KeyVrt.name(),
-                                                                       UncStructEnum.ValVrtArpEntrySt.name()),
-       
+                       UncStructEnum.ValVrtIf.name()),
+       KT_VTUNNEL_IF_CREATE(
+                       UncOperationEnum.UNC_OP_CREATE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VTUNNEL_IF.getValue(),
+                       UncStructEnum.KeyVtunnelIf.name(),
+                       UncStructEnum.ValVtunnelIf.name()),
+       KT_VTUNNEL_IF_DELETE(
+                       UncOperationEnum.UNC_OP_DELETE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VTUNNEL_IF.getValue(),
+                       UncStructEnum.KeyVtunnelIf.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VTUNNEL_IF_UPDATE(
+                       UncOperationEnum.UNC_OP_UPDATE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VTUNNEL_IF.getValue(),
+                       UncStructEnum.KeyVtunnelIf.name(),
+                       UncStructEnum.ValVtunnelIf.name()),
+       KT_VTUNNEL_IF_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VTUNNEL_IF.getValue(),
+                       UncStructEnum.KeyVtunnelIf.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VTUNNEL_IF_GET2(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NEIGHBOR.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VTUNNEL_IF.getValue(),
+                       UncStructEnum.KeyVtunnelIf.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VTEP_IF_CREATE(
+                       UncOperationEnum.UNC_OP_CREATE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VTEP_IF.getValue(),
+                       UncStructEnum.KeyVtepIf.name(),
+                       UncStructEnum.ValVtepIf.name()),
+       KT_VTEP_IF_DELETE(
+                       UncOperationEnum.UNC_OP_DELETE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VTEP_IF.getValue(),
+                       UncStructEnum.KeyVtepIf.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VTEP_IF_UPDATE(
+                       UncOperationEnum.UNC_OP_UPDATE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VTEP_IF.getValue(),
+                       UncStructEnum.KeyVtepIf.name(),
+                       UncStructEnum.ValVtepIf.name()),
+       KT_VTEP_IF_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VTEP_IF.getValue(),
+                       UncStructEnum.KeyVtepIf.name(),
+                       UncStructEnum.NONE.name()),
 
-       KT_VBRIDGE_SHOW(UncOperationEnum.UNC_OP_READ.ordinal(),
-                                                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                                                       UncDataType.UNC_DT_STATE.ordinal(),
-                                                                       UncKeyTypeEnum.UNC_KT_VBRIDGE.getValue(),
-                                                                       UncStructEnum.KeyVbr.name(),
-                                                                       UncStructEnum.NONE.name()),
-    
-       KT_VBRIF_FLOWFILTER_CREATE(UncOperationEnum.UNC_OP_CREATE.ordinal(),
-                                                                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                                                                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                                                                                       UncKeyTypeEnum.UNC_KT_VBRIF_FLOWFILTER.getValue(),
-                                                                                       UncStructEnum.KeyVbrIfFlowFilter.name(),
-                                                                                       UncStructEnum.NONE.name()),
-               
-               
-               KT_VBRIF_FLOWFILTER_ENTRY_CREATE(UncOperationEnum.UNC_OP_CREATE.ordinal(),
-                                                                                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                                                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),         
-                                                                                                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                                                                                                       UncKeyTypeEnum.UNC_KT_VBRIF_FLOWFILTER_ENTRY.getValue(),
-                                                                                                       UncStructEnum.KeyVbrIfFlowFilterEntry.name(),
-                                                                                                       UncStructEnum.ValFlowfilterEntry.name()),
-               
-               
-               KT_VBRIF_FLOWFILTER_ENTRY_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
-                                                                                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                                                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                                                                                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                                                                                                       UncKeyTypeEnum.UNC_KT_VBRIF_FLOWFILTER_ENTRY.getValue(),
-                                                                                                       UncStructEnum.KeyVbrIfFlowFilterEntry.name(),
-                                                                                                       UncStructEnum.NONE.name()),
-               
-       
-               KT_VBRIF_FLOWFILTER_ENTRY_UPDATE(UncOperationEnum.UNC_OP_UPDATE.ordinal(),
-                                                                                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                                                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                                                                                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                                                                                                       UncKeyTypeEnum.UNC_KT_VBRIF_FLOWFILTER_ENTRY.getValue(),
-                                                                                                       UncStructEnum.KeyVbrIfFlowFilterEntry.name(),
-                                                                                                       UncStructEnum.ValFlowfilterEntry.name()),
-       
+       KT_VTEP_IF_GET2(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NEIGHBOR.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VTEP_IF.getValue(),
+                       UncStructEnum.KeyVtepIf.name(),
+                       UncStructEnum.NONE.name()),
 
-       KT_VBRIF_FLOWFILTER_ENTRY_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
-                                                                                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                                                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                                                                                       UncDataType.UNC_DT_STATE.ordinal(),
-                                                                                                       UncKeyTypeEnum.UNC_KT_VBRIF_FLOWFILTER_ENTRY.getValue(),
-                                                                                                       UncStructEnum.KeyVbrIfFlowFilterEntry.name(),
-                                                                                                       UncStructEnum.NONE.name()),
-                                                                                                       
-       KT_VRTIF_FLOWFILTER_ENTRY_CREATE(UncOperationEnum.UNC_OP_CREATE.ordinal(),
-                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),         
+       KT_VTEP_CREATE(
+                       UncOperationEnum.UNC_OP_CREATE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VTEP.getValue(),
+                       UncStructEnum.KeyVtep.name(),
+                       UncStructEnum.ValVtep.name()),
+       KT_VTEP_DELETE(
+                       UncOperationEnum.UNC_OP_DELETE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VTEP.getValue(),
+                       UncStructEnum.KeyVtep.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VTEP_UPDATE(
+                       UncOperationEnum.UNC_OP_UPDATE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VTEP.getValue(),
+                       UncStructEnum.KeyVtep.name(),
+                       UncStructEnum.ValVtep.name()),
+       KT_VTEP_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VTEP.getValue(),
+                       UncStructEnum.KeyVtep.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VTEP_GET_COUNT(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VTEP.getValue(),
+                       UncStructEnum.KeyVtep.name(),
+                       UncStructEnum.ValVtep.name()),
+       KT_VTN_FLOWFILTER_DELETE(
+                       UncOperationEnum.UNC_OP_DELETE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VTN_FLOWFILTER.getValue(),
+                       UncStructEnum.KeyVtnFlowFilter.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VTN_FLOWFILTER_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VTN_FLOWFILTER.getValue(),
+                       UncStructEnum.KeyVtnFlowFilter.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VTN_FLOWFILTER_CREATE(
+                       UncOperationEnum.UNC_OP_CREATE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VTN_FLOWFILTER.getValue(),
+                       UncStructEnum.KeyVtnFlowFilter.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VTN_FLOWFILTER_ENTRY_UPDATE(
+                       UncOperationEnum.UNC_OP_UPDATE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VTN_FLOWFILTER_ENTRY.getValue(),
+                       UncStructEnum.KeyVtnFlowFilterEntry.name(),
+                       UncStructEnum.ValVtnFlowFilterEntry.name()),
+       KT_VTN_FLOWFILTER_ENTRY_DELETE(
+                       UncOperationEnum.UNC_OP_DELETE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VTN_FLOWFILTER_ENTRY.getValue(),
+                       UncStructEnum.KeyVtnFlowFilterEntry.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VTN_FLOWFILTER_ENTRY_CREATE(
+                       UncOperationEnum.UNC_OP_CREATE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VTN_FLOWFILTER_ENTRY.getValue(),
+                       UncStructEnum.KeyVtnFlowFilterEntry.name(),
+                       UncStructEnum.ValVtnFlowFilterEntry.name()),
+       KT_VTN_FLOWFILTER_ENTRY_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VTN_FLOWFILTER_ENTRY.getValue(),
+                       UncStructEnum.KeyVtnFlowFilterEntry.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VTN_FLOWFILTER_ENTRY_GET_STATE(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VTN_FLOWFILTER_CONTROLLER.getValue(),
+                       UncStructEnum.KeyVtnFlowfilterController.name(),
+                       UncStructEnum.ValFlowFilterController.name()),
+       KT_VUNKNOWN_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VUNKNOWN.getValue(),
+                       UncStructEnum.KeyVunknown.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VUNKNOWN_CREATE(
+                       UncOperationEnum.UNC_OP_CREATE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VUNKNOWN.getValue(),
+                       UncStructEnum.KeyVunknown.name(),
+                       UncStructEnum.ValVunknown.name()),
+       KT_VUNK_IF_UPDATE(
+                       UncOperationEnum.UNC_OP_UPDATE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VUNK_IF.getValue(),
+                       UncStructEnum.KeyVunkIf.name(),
+                       UncStructEnum.ValVunkIf.name()),
+       KT_VUNK_IF_DELETE(
+                       UncOperationEnum.UNC_OP_DELETE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VUNK_IF.getValue(),
+                       UncStructEnum.KeyVunkIf.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VUNK_IF_CREATE(
+                       UncOperationEnum.UNC_OP_CREATE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VUNK_IF.getValue(),
+                       UncStructEnum.KeyVunkIf.name(),
+                       UncStructEnum.ValVunkIf.name()),
+       KT_VUNK_IF_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VUNK_IF.getValue(),
+                       UncStructEnum.KeyVunkIf.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VUNK_IF_GET2(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NEIGHBOR.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VUNK_IF.getValue(),
+                       UncStructEnum.KeyVunkIf.name(),
+                       UncStructEnum.NONE.name()),
+
+       KT_VROUTER_ARP_ENTRY(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_ARP_ENTRY.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VROUTER.getValue(),
+                       UncStructEnum.KeyVrt.name(),
+                       UncStructEnum.ValVrtArpEntrySt.name()),
+
+       KT_VBRIDGE_SHOW(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VBRIDGE.getValue(),
+                       UncStructEnum.KeyVbr.name(),
+                       UncStructEnum.NONE.name()),
+
+       KT_VBRIF_FLOWFILTER_CREATE(
+                       UncOperationEnum.UNC_OP_CREATE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VBRIF_FLOWFILTER.getValue(),
+                       UncStructEnum.KeyVbrIfFlowFilter.name(),
+                       UncStructEnum.NONE.name()),
+
+       KT_VBRIF_FLOWFILTER_ENTRY_CREATE(
+                       UncOperationEnum.UNC_OP_CREATE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VBRIF_FLOWFILTER_ENTRY.getValue(),
+                       UncStructEnum.KeyVbrIfFlowFilterEntry.name(),
+                       UncStructEnum.ValFlowfilterEntry.name()),
+
+       KT_VBRIF_FLOWFILTER_ENTRY_DELETE(
+                       UncOperationEnum.UNC_OP_DELETE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VBRIF_FLOWFILTER_ENTRY.getValue(),
+                       UncStructEnum.KeyVbrIfFlowFilterEntry.name(),
+                       UncStructEnum.NONE.name()),
+
+       KT_VBRIF_FLOWFILTER_ENTRY_UPDATE(
+                       UncOperationEnum.UNC_OP_UPDATE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VBRIF_FLOWFILTER_ENTRY.getValue(),
+                       UncStructEnum.KeyVbrIfFlowFilterEntry.name(),
+                       UncStructEnum.ValFlowfilterEntry.name()),
+
+       KT_VBRIF_FLOWFILTER_ENTRY_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VBRIF_FLOWFILTER_ENTRY.getValue(),
+                       UncStructEnum.KeyVbrIfFlowFilterEntry.name(),
+                       UncStructEnum.NONE.name()),
+
+       KT_VRTIF_FLOWFILTER_ENTRY_CREATE(
+                       UncOperationEnum.UNC_OP_CREATE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_VRTIF_FLOWFILTER_ENTRY.getValue(),
                        UncStructEnum.KeyVrtIfFlowFilterEntry.name(),
                        UncStructEnum.ValFlowfilterEntry.name()),
 
-
-KT_VRTIF_FLOWFILTER_ENTRY_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
+       KT_VRTIF_FLOWFILTER_ENTRY_DELETE(
+                       UncOperationEnum.UNC_OP_DELETE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
@@ -646,8 +724,8 @@ KT_VRTIF_FLOWFILTER_ENTRY_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
                        UncStructEnum.KeyVrtIfFlowFilterEntry.name(),
                        UncStructEnum.NONE.name()),
 
-
-                       KT_VRTIF_FLOWFILTER_ENTRY_UPDATE(UncOperationEnum.UNC_OP_UPDATE.ordinal(),
+       KT_VRTIF_FLOWFILTER_ENTRY_UPDATE(
+                       UncOperationEnum.UNC_OP_UPDATE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
@@ -655,388 +733,471 @@ KT_VRTIF_FLOWFILTER_ENTRY_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
                        UncStructEnum.KeyVrtIfFlowFilterEntry.name(),
                        UncStructEnum.ValFlowfilterEntry.name()),
 
-
-                       KT_VRTIF_FLOWFILTER_ENTRY_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
+       KT_VRTIF_FLOWFILTER_ENTRY_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_STATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_VRTIF_FLOWFILTER_ENTRY.getValue(),
                        UncStructEnum.KeyVrtIfFlowFilterEntry.name(),
                        UncStructEnum.NONE.name()),
-                       
-                       KT_VRTIF_FLOWFILTER_CREATE(UncOperationEnum.UNC_OP_CREATE.ordinal(),
-                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),         
-                                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                                       UncKeyTypeEnum.UNC_KT_VRTIF_FLOWFILTER.getValue(),
-                                       UncStructEnum.KeyVrtIfFlowFilter.name(),
-                                       UncStructEnum.NONE.name()),
 
+       KT_VRTIF_FLOWFILTER_CREATE(
+                       UncOperationEnum.UNC_OP_CREATE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VRTIF_FLOWFILTER.getValue(),
+                       UncStructEnum.KeyVrtIfFlowFilter.name(),
+                       UncStructEnum.NONE.name()),
 
-                                       KT_VRTIF_FLOWFILTER_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
-                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                                       UncKeyTypeEnum.UNC_KT_VRTIF_FLOWFILTER.getValue(),
-                                       UncStructEnum.KeyVrtIfFlowFilter.name(),
-                                       UncStructEnum.NONE.name()),
+       KT_VRTIF_FLOWFILTER_DELETE(
+                       UncOperationEnum.UNC_OP_DELETE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VRTIF_FLOWFILTER.getValue(),
+                       UncStructEnum.KeyVrtIfFlowFilter.name(),
+                       UncStructEnum.NONE.name()),
 
+       KT_VRTIF_FLOWFILTER_UPDATE(
+                       UncOperationEnum.UNC_OP_UPDATE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VRTIF_FLOWFILTER.getValue(),
+                       UncStructEnum.KeyVrtIfFlowFilter.name(),
+                       UncStructEnum.NONE.name()),
 
-                                       KT_VRTIF_FLOWFILTER_UPDATE(UncOperationEnum.UNC_OP_UPDATE.ordinal(),
-                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                                       UncKeyTypeEnum.UNC_KT_VRTIF_FLOWFILTER.getValue(),
-                                       UncStructEnum.KeyVrtIfFlowFilter.name(),
-                                       UncStructEnum.NONE.name()),
+       KT_VRTIF_FLOWFILTER_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VRTIF_FLOWFILTER.getValue(),
+                       UncStructEnum.KeyVrtIfFlowFilter.name(),
+                       UncStructEnum.NONE.name()),
 
+       KT_VRT_IPROUTE_DELETE(
+                       UncOperationEnum.UNC_OP_DELETE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VRT_IPROUTE.getValue(),
+                       UncStructEnum.KeyStaticIpRoute.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VRT_IPROUTE_UPDATE(
+                       UncOperationEnum.UNC_OP_UPDATE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VRT_IPROUTE.getValue(),
+                       UncStructEnum.KeyStaticIpRoute.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VRT_IPROUTE_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VRT_IPROUTE.getValue(),
+                       UncStructEnum.KeyStaticIpRoute.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VRT_IPROUTE_GET_SHOW(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VRT_IPROUTE.getValue(),
+                       UncStructEnum.KeyStaticIpRoute.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VRT_IPROUTE_CREATE(
+                       UncOperationEnum.UNC_OP_CREATE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VRT_IPROUTE.getValue(),
+                       UncStructEnum.KeyStaticIpRoute.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VBR_FLOWFILTER_CREATE(
+                       UncOperationEnum.UNC_OP_CREATE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VBR_FLOWFILTER.getValue(),
+                       UncStructEnum.KeyVbrFlowFilter.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VBR_FLOWFILTER_DELETE(
+                       UncOperationEnum.UNC_OP_DELETE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VBR_FLOWFILTER.getValue(),
+                       UncStructEnum.KeyVbrFlowFilter.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VBR_FLOWFILTER_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VBR_FLOWFILTER.getValue(),
+                       UncStructEnum.KeyVbrFlowFilter.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VBR_FLOWFILTER_ENTRY_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VBR_FLOWFILTER_ENTRY.getValue(),
+                       UncStructEnum.KeyVbrFlowFilterEntry.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VBR_FLOWFILTER_ENTRY_DELETE(
+                       UncOperationEnum.UNC_OP_DELETE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VBR_FLOWFILTER_ENTRY.getValue(),
+                       UncStructEnum.KeyVbrFlowFilterEntry.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VBR_FLOWFILTER_ENTRY_UPDATE(
+                       UncOperationEnum.UNC_OP_UPDATE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VBR_FLOWFILTER_ENTRY.getValue(),
+                       UncStructEnum.KeyVbrFlowFilterEntry.name(),
+                       UncStructEnum.ValFlowfilterEntry.name()),
+       KT_VBR_FLOWFILTER_ENTRY_CREATE(
+                       UncOperationEnum.UNC_OP_CREATE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VBR_FLOWFILTER_ENTRY.getValue(),
+                       UncStructEnum.KeyVbrFlowFilterEntry.name(),
+                       UncStructEnum.ValFlowfilterEntry.name()),
+       KT_VBR_IF_CREATE(
+                       UncOperationEnum.UNC_OP_CREATE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VBR_IF.getValue(),
+                       UncStructEnum.KeyVbrIf.name(),
+                       UncStructEnum.ValVbrIf.name()),
+       KT_VBR_IF_DELETE(
+                       UncOperationEnum.UNC_OP_DELETE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VBR_IF.getValue(),
+                       UncStructEnum.KeyVbrIf.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VBR_IF_UPDATE(
+                       UncOperationEnum.UNC_OP_UPDATE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VBR_IF.getValue(),
+                       UncStructEnum.KeyVbrIf.name(),
+                       UncStructEnum.ValVbrIf.name()),
+       KT_VBR_IF_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VBR_IF.getValue(),
+                       UncStructEnum.KeyVbrIf.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VBR_IF_GET2(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NEIGHBOR.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VBR_IF.getValue(),
+                       UncStructEnum.KeyVbrIf.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VBRIF_FLOWFILTER_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VBRIF_FLOWFILTER.getValue(),
+                       UncStructEnum.KeyVbrIfFlowFilter.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VBRIF_FLOWFILTER_DELETE(
+                       UncOperationEnum.UNC_OP_DELETE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VBRIF_FLOWFILTER.getValue(),
+                       UncStructEnum.KeyVbrIfFlowFilter.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VTEP_GRP_DELETE(
+                       UncOperationEnum.UNC_OP_DELETE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VTEP_GRP.getValue(),
+                       UncStructEnum.KeyVtepGrp.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VTEP_GRP_MEMBER_DELETE(
+                       UncOperationEnum.UNC_OP_DELETE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VTEP_GRP_MEMBER.getValue(),
+                       UncStructEnum.KeyVtepGrpMember.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VTEP_GRP_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VTEP_GRP.getValue(),
+                       UncStructEnum.KeyVtepGrp.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VTEP_GRP_MEMBER_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VTEP_GRP_MEMBER.getValue(),
+                       UncStructEnum.KeyVtepGrpMember.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VTEP_GRP_CREATE(
+                       UncOperationEnum.UNC_OP_CREATE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VTEP_GRP.getValue(),
+                       UncStructEnum.KeyVtepGrp.name(),
+                       UncStructEnum.ValVtepGrp.name()),
+       KT_VTEP_GRP_MEMBER_CREATE(
+                       UncOperationEnum.UNC_OP_CREATE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VTEP_GRP_MEMBER.getValue(),
+                       UncStructEnum.KeyVtepGrpMember.name(),
+                       UncStructEnum.NONE.name()),
 
-                                       KT_VRTIF_FLOWFILTER_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
-                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                       UncDataType.UNC_DT_STATE.ordinal(),
-                                       UncKeyTypeEnum.UNC_KT_VRTIF_FLOWFILTER.getValue(),
-                                       UncStructEnum.KeyVrtIfFlowFilter.name(),
-                                       UncStructEnum.NONE.name()),                                                                                                                             
-                                                                                                                                       
-               KT_VRT_IPROUTE_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
-                               UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                               UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                               UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                               UncKeyTypeEnum.UNC_KT_VRT_IPROUTE.getValue(),
-                               UncStructEnum.KeyStaticIpRoute.name(),
-                               UncStructEnum.NONE.name()),
-               KT_VRT_IPROUTE_UPDATE(UncOperationEnum.UNC_OP_UPDATE.ordinal(),
-                               UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                               UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                               UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                               UncKeyTypeEnum.UNC_KT_VRT_IPROUTE.getValue(),
-                               UncStructEnum.KeyStaticIpRoute.name(),
-                               UncStructEnum.NONE.name()),
-               KT_VRT_IPROUTE_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
-                               UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                               UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                               UncDataType.UNC_DT_STATE.ordinal(),
-                               UncKeyTypeEnum.UNC_KT_VRT_IPROUTE.getValue(),
-                               UncStructEnum.KeyStaticIpRoute.name(),
-                               UncStructEnum.NONE.name()),
-               KT_VRT_IPROUTE_GET_SHOW(UncOperationEnum.UNC_OP_READ.ordinal(),
-                               UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                               UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                               UncDataType.UNC_DT_STATE.ordinal(),
-                               UncKeyTypeEnum.UNC_KT_VRT_IPROUTE.getValue(),
-                               UncStructEnum.KeyStaticIpRoute.name(),
-                               UncStructEnum.NONE.name()),
-               KT_VRT_IPROUTE_CREATE(UncOperationEnum.UNC_OP_CREATE.ordinal(),
-                               UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                               UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                               UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                               UncKeyTypeEnum.UNC_KT_VRT_IPROUTE.getValue(),
-                               UncStructEnum.KeyStaticIpRoute.name(),
-                               UncStructEnum.NONE.name()),
-               KT_VBR_FLOWFILTER_CREATE(UncOperationEnum.UNC_OP_CREATE.ordinal(),
-                               UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                               UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                               UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                               UncKeyTypeEnum.UNC_KT_VBR_FLOWFILTER.getValue(),
-                               UncStructEnum.KeyVbrFlowFilter.name(),
-                               UncStructEnum.NONE.name()),
-               KT_VBR_FLOWFILTER_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
-                               UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                               UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                               UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                               UncKeyTypeEnum.UNC_KT_VBR_FLOWFILTER.getValue(),
-                               UncStructEnum.KeyVbrFlowFilter.name(),
-                               UncStructEnum.NONE.name()),
-               KT_VBR_FLOWFILTER_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
-                               UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                               UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                               UncDataType.UNC_DT_STATE.ordinal(),
-                               UncKeyTypeEnum.UNC_KT_VBR_FLOWFILTER.getValue(),
-                               UncStructEnum.KeyVbrFlowFilter.name(),
-                               UncStructEnum.NONE.name()),
-               KT_VBR_FLOWFILTER_ENTRY_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
-                               UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                               UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                               UncDataType.UNC_DT_STATE.ordinal(),
-                               UncKeyTypeEnum.UNC_KT_VBR_FLOWFILTER_ENTRY.getValue(),
-                               UncStructEnum.KeyVbrFlowFilterEntry.name(),
-                               UncStructEnum.NONE.name()),
-               KT_VBR_FLOWFILTER_ENTRY_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
-                               UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                               UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                               UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                               UncKeyTypeEnum.UNC_KT_VBR_FLOWFILTER_ENTRY.getValue(),
-                               UncStructEnum.KeyVbrFlowFilterEntry.name(),
-                               UncStructEnum.NONE.name()),
-               KT_VBR_FLOWFILTER_ENTRY_UPDATE(UncOperationEnum.UNC_OP_UPDATE.ordinal(),
-                               UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                               UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                               UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                               UncKeyTypeEnum.UNC_KT_VBR_FLOWFILTER_ENTRY.getValue(),
-                               UncStructEnum.KeyVbrFlowFilterEntry.name(),
-                               UncStructEnum.ValFlowfilterEntry.name()),
-               KT_VBR_FLOWFILTER_ENTRY_CREATE(UncOperationEnum.UNC_OP_CREATE.ordinal(),
-                               UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                               UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                               UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                               UncKeyTypeEnum.UNC_KT_VBR_FLOWFILTER_ENTRY.getValue(),
-                               UncStructEnum.KeyVbrFlowFilterEntry.name(),
-                               UncStructEnum.ValFlowfilterEntry.name()),
-               KT_VBR_IF_CREATE(UncOperationEnum.UNC_OP_CREATE.ordinal(),
-                               UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                               UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                               UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                               UncKeyTypeEnum.UNC_KT_VBR_IF.getValue(),
-                               UncStructEnum.KeyVbrIf.name(),
-                               UncStructEnum.ValVbrIf.name()),
-               KT_VBR_IF_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
-                               UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                               UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                               UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                               UncKeyTypeEnum.UNC_KT_VBR_IF.getValue(),
-                               UncStructEnum.KeyVbrIf.name(),
-                               UncStructEnum.NONE.name()),
-               KT_VBR_IF_UPDATE(UncOperationEnum.UNC_OP_UPDATE.ordinal(),
-                               UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                               UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                               UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                               UncKeyTypeEnum.UNC_KT_VBR_IF.getValue(),
-                               UncStructEnum.KeyVbrIf.name(),
-                               UncStructEnum.ValVbrIf.name()),
-               KT_VBR_IF_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
-                               UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                               UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                               UncDataType.UNC_DT_STATE.ordinal(),
-                               UncKeyTypeEnum.UNC_KT_VBR_IF.getValue(),
-                               UncStructEnum.KeyVbrIf.name(),
-                               UncStructEnum.NONE.name()),
-               KT_VBR_IF_GET2(UncOperationEnum.UNC_OP_READ.ordinal(),
-                                               UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                               UncOption2Enum.UNC_OPT2_NEIGHBOR.ordinal(),
-                                               UncDataType.UNC_DT_STATE.ordinal(),
-                                               UncKeyTypeEnum.UNC_KT_VBR_IF.getValue(),
-                                               UncStructEnum.KeyVbrIf.name(),
-                                               UncStructEnum.NONE.name()),
-               KT_VBRIF_FLOWFILTER_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
-                               UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                               UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                               UncDataType.UNC_DT_STATE.ordinal(),
-                               UncKeyTypeEnum.UNC_KT_VBRIF_FLOWFILTER.getValue(),
-                               UncStructEnum.KeyVbrIfFlowFilter.name(),
-                               UncStructEnum.NONE.name()),
-               KT_VBRIF_FLOWFILTER_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
-                               UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                               UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                               UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                               UncKeyTypeEnum.UNC_KT_VBRIF_FLOWFILTER.getValue(),
-                               UncStructEnum.KeyVbrIfFlowFilter.name(),
-                               UncStructEnum.NONE.name()),
-               KT_VTEP_GRP_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
-                               UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                               UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                               UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                               UncKeyTypeEnum.UNC_KT_VTEP_GRP.getValue(),
-                               UncStructEnum.KeyVtepGrp.name(),
-                               UncStructEnum.NONE.name()),
-               KT_VTEP_GRP_MEMBER_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
-                               UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                               UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                               UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                               UncKeyTypeEnum.UNC_KT_VTEP_GRP_MEMBER.getValue(),
-                               UncStructEnum.KeyVtepGrpMember.name(),
-                               UncStructEnum.NONE.name()),             
-               KT_VTEP_GRP_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
-                               UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                               UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                               UncDataType.UNC_DT_STATE.ordinal(),
-                               UncKeyTypeEnum.UNC_KT_VTEP_GRP.getValue(),
-                               UncStructEnum.KeyVtepGrp.name(),
-                               UncStructEnum.NONE.name()),
-               KT_VTEP_GRP_MEMBER_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
-                               UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                               UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                               UncDataType.UNC_DT_STATE.ordinal(),
-                               UncKeyTypeEnum.UNC_KT_VTEP_GRP_MEMBER.getValue(),
-                               UncStructEnum.KeyVtepGrpMember.name(),
-                               UncStructEnum.NONE.name()),
-               KT_VTEP_GRP_CREATE(UncOperationEnum.UNC_OP_CREATE.ordinal(),
-                               UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                               UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                               UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                               UncKeyTypeEnum.UNC_KT_VTEP_GRP.getValue(),
-                               UncStructEnum.KeyVtepGrp.name(),
-                               UncStructEnum.ValVtepGrp.name()),
-               KT_VTEP_GRP_MEMBER_CREATE(UncOperationEnum.UNC_OP_CREATE.ordinal(),
-                               UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                               UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                               UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                               UncKeyTypeEnum.UNC_KT_VTEP_GRP_MEMBER.getValue(),
-                               UncStructEnum.KeyVtepGrpMember.name(),
-                               UncStructEnum.NONE.name()),
-                               
        // Physical starts
-               KT_CTR_DOMAIN_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
-                               UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                               UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                               UncDataType.UNC_DT_STATE.ordinal(),
-                               UncKeyTypeEnum.UNC_KT_DOMAIN.getValue(),
-                               UncStructEnum.KeyCtrDomain.name(),
-                               UncStructEnum.NONE.name()),
-               KT_SWITCH_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
-                                               UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                               UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                               UncDataType.UNC_DT_STATE.ordinal(),
-                                               UncKeyTypeEnum.UNC_KT_SWITCH.getValue(),
-                                               UncStructEnum.KeySwitch.name(),
-                                               UncStructEnum.NONE.name()),
-       KT_CTR_DOMAIN_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
+       KT_CTR_DOMAIN_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_DOMAIN.getValue(),
+                       UncStructEnum.KeyCtrDomain.name(),
+                       UncStructEnum.NONE.name()),
+       KT_SWITCH_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_SWITCH.getValue(),
+                       UncStructEnum.KeySwitch.name(),
+                       UncStructEnum.NONE.name()),
+       KT_CTR_DOMAIN_DELETE(
+                       UncOperationEnum.UNC_OP_DELETE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_DOMAIN.getValue(),
                        UncStructEnum.KeyCtrDomain.name(),
                        UncStructEnum.NONE.name()),
-       KT_CTR_DOMAIN_UPDATE(UncOperationEnum.UNC_OP_UPDATE.ordinal(),
+       KT_CTR_DOMAIN_UPDATE(
+                       UncOperationEnum.UNC_OP_UPDATE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_DOMAIN.getValue(),
                        UncStructEnum.KeyCtrDomain.name(),
                        UncStructEnum.ValCtrDomain.name()),
-       KT_CTR_DOMAIN_CREATE(UncOperationEnum.UNC_OP_CREATE.ordinal(),
+       KT_CTR_DOMAIN_CREATE(
+                       UncOperationEnum.UNC_OP_CREATE.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_CANDIDATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_DOMAIN.getValue(),
                        UncStructEnum.KeyCtrDomain.name(),
                        UncStructEnum.ValCtrDomain.name()),
-       KT_CONTROLLER_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
-                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                                       UncKeyTypeEnum.UNC_KT_CONTROLLER.getValue(),
-                                       UncStructEnum.KeyCtr.name(), 
-                                       UncStructEnum.NONE.name()),
-                       KT_CONTROLLER_UPDATE(UncOperationEnum.UNC_OP_UPDATE.ordinal(),
-                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                                       UncKeyTypeEnum.UNC_KT_CONTROLLER.getValue(),
-                                       UncStructEnum.KeyCtr.name(),
-                                       UncStructEnum.ValCtr.name()),
-                       KT_CONTROLLER_CREATE(UncOperationEnum.UNC_OP_CREATE.ordinal(),
-                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                       UncDataType.UNC_DT_CANDIDATE.ordinal(), 
-                                       UncKeyTypeEnum.UNC_KT_CONTROLLER.getValue(),
-                                       UncStructEnum.KeyCtr.name(),
-                                       UncStructEnum.ValCtr.name()),
-                       KT_CONTROLLER_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
-                                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                                       UncDataType.UNC_DT_STATE.ordinal(), 
-                                                       UncKeyTypeEnum.UNC_KT_CONTROLLER.getValue(),
-                                                       UncStructEnum.KeyCtr.name(),
-                                                       UncStructEnum.NONE.name()),
-                       KT_BOUNDARY_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
-                                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                                                       UncKeyTypeEnum.UNC_KT_BOUNDARY.getValue(),
-                                                       UncStructEnum.KeyBoundary.name(),
-                                                       UncStructEnum.NONE.name()),
-                       KT_BOUNDARY_UPDATE(UncOperationEnum.UNC_OP_UPDATE.ordinal(),
-                                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                                                       UncKeyTypeEnum.UNC_KT_BOUNDARY.getValue(),
-                                                       UncStructEnum.KeyBoundary.name(),
-                                                       UncStructEnum.ValBoundary.name()),
-                       KT_BOUNDARY_CREATE(UncOperationEnum.UNC_OP_CREATE.ordinal(),
-                                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
-                                                       UncKeyTypeEnum.UNC_KT_BOUNDARY.getValue(),
-                                                       UncStructEnum.KeyBoundary.name(),
-                                                       UncStructEnum.ValBoundary.name()),
-                                                       KT_BOUNDARY_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
-                                                               UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                               UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                                               UncDataType.UNC_DT_STATE.ordinal(),
-                                                               UncKeyTypeEnum.UNC_KT_BOUNDARY.getValue(),
-                                                               UncStructEnum.KeyBoundary.name(),
-                                                               UncStructEnum.ValBoundary.name()),
-                                                               KT_PORT_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
-                                                                               UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                                               UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                                                               UncDataType.UNC_DT_STATE.ordinal(),
-                                                                               UncKeyTypeEnum.UNC_KT_PORT.getValue(),
-                                                                               UncStructEnum.KeyPort.name(),
-                                                                               UncStructEnum.NONE.name()),
-                                                               KT_PORT_GET_MEMBER(UncOperationEnum.UNC_OP_READ.ordinal(),
-                                                                               UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                                               UncOption2Enum.UNC_OPT2_NEIGHBOR.ordinal(),
-                                                                               UncDataType.UNC_DT_STATE.ordinal(),
-                                                                               UncKeyTypeEnum.UNC_KT_PORT.getValue(),
-                                                                               UncStructEnum.KeyPort.name(),
-                                                                               UncStructEnum.NONE.name()),
-                       KT_LINK_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
-                                               UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                               UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                               UncDataType.UNC_DT_STATE.ordinal(),
-                                               UncKeyTypeEnum.UNC_KT_LINK.getValue(),
-                                               UncStructEnum.KeyLink.name(),
-                                               UncStructEnum.NONE.name()),
-       KT_VBRIDGE_L2Domain(UncOperationEnum.UNC_OP_READ.ordinal(),
+       KT_CONTROLLER_DELETE(
+                       UncOperationEnum.UNC_OP_DELETE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_CONTROLLER.getValue(),
+                       UncStructEnum.KeyCtr.name(),
+                       UncStructEnum.NONE.name()),
+       KT_CONTROLLER_UPDATE(
+                       UncOperationEnum.UNC_OP_UPDATE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_CONTROLLER.getValue(),
+                       UncStructEnum.KeyCtr.name(),
+                       UncStructEnum.ValCtr.name()),
+       KT_CONTROLLER_CREATE(
+                       UncOperationEnum.UNC_OP_CREATE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_CONTROLLER.getValue(),
+                       UncStructEnum.KeyCtr.name(),
+                       UncStructEnum.ValCtr.name()),
+       KT_CONTROLLER_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_CONTROLLER.getValue(),
+                       UncStructEnum.KeyCtr.name(),
+                       UncStructEnum.NONE.name()),
+       KT_BOUNDARY_DELETE(
+                       UncOperationEnum.UNC_OP_DELETE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_BOUNDARY.getValue(),
+                       UncStructEnum.KeyBoundary.name(),
+                       UncStructEnum.NONE.name()),
+       KT_BOUNDARY_UPDATE(
+                       UncOperationEnum.UNC_OP_UPDATE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_BOUNDARY.getValue(),
+                       UncStructEnum.KeyBoundary.name(),
+                       UncStructEnum.ValBoundary.name()),
+       KT_BOUNDARY_CREATE(
+                       UncOperationEnum.UNC_OP_CREATE.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_CANDIDATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_BOUNDARY.getValue(),
+                       UncStructEnum.KeyBoundary.name(),
+                       UncStructEnum.ValBoundary.name()),
+       KT_BOUNDARY_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_BOUNDARY.getValue(),
+                       UncStructEnum.KeyBoundary.name(),
+                       UncStructEnum.ValBoundary.name()),
+       KT_PORT_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_PORT.getValue(),
+                       UncStructEnum.KeyPort.name(),
+                       UncStructEnum.NONE.name()),
+       KT_PORT_GET_MEMBER(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NEIGHBOR.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_PORT.getValue(),
+                       UncStructEnum.KeyPort.name(),
+                       UncStructEnum.NONE.name()),
+       KT_LINK_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_LINK.getValue(),
+                       UncStructEnum.KeyLink.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VBRIDGE_L2Domain(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_L2DOMAIN.ordinal(),
                        UncDataType.UNC_DT_STATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_VBRIDGE.getValue(),
                        UncStructEnum.KeyVbr.name(),
                        UncStructEnum.NONE.name()),
-       KT_LOGICAL_PORT_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
+       KT_LOGICAL_PORT_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_STATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_LOGICAL_PORT.getValue(),
                        UncStructEnum.KeyLogicalPort.name(),
                        UncStructEnum.NONE.name()),
-       KT_LOGICAL_PORT_MEMBER_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
+       KT_LOGICAL_PORT_MEMBER_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
                        UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
                        UncOption2Enum.UNC_OPT2_NONE.ordinal(),
                        UncDataType.UNC_DT_STATE.ordinal(),
                        UncKeyTypeEnum.UNC_KT_LOGICAL_MEMBER_PORT.getValue(),
                        UncStructEnum.KeyLogicalMemberPort.name(),
                        UncStructEnum.NONE.name()),
-       KT_VROUTER_IPROUTE_GET(UncOperationEnum.UNC_OP_READ.ordinal(),
-                                       UncOption1Enum.UNC_OPT1_DETAIL.ordinal(),
-                                       UncOption2Enum.UNC_OPT2_IP_ROUTE.ordinal(),
-                                       UncDataType.UNC_DT_STATE.ordinal(),
-                                       UncKeyTypeEnum.UNC_KT_VROUTER.getValue(),
-                                       UncStructEnum.KeyVrt.name(),
-                                       UncStructEnum.NONE.name()),
-       KT_VROUTER_ARP_ENTRY_COUNT(UncOperationEnum.UNC_OP_READ.ordinal(),
-                                                       UncOption1Enum.UNC_OPT1_COUNT.ordinal(),
-                                                       UncOption2Enum.UNC_OPT2_ARP_ENTRY.ordinal(),
-                                                       UncDataType.UNC_DT_STATE.ordinal(),
-                                                       UncKeyTypeEnum.UNC_KT_VROUTER.getValue(),
-                                                       UncStructEnum.KeyVrt.name(),
-                                                       UncStructEnum.NONE.name()),
-       KT_BOUNDARY_GET_COUNT(UncOperationEnum.UNC_OP_READ.ordinal(),
-                                                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
-                                                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                                                       UncDataType.UNC_DT_STATE.ordinal(),
-                                                                       UncKeyTypeEnum.UNC_KT_BOUNDARY.getValue(),
-                                                                       UncStructEnum.KeyBoundary.name(),
-                                                                       UncStructEnum.NONE.name()),
-       KT_VTNSTATION_CONTROLLER_GET_COUNT(UncOperationEnum.UNC_OP_READ_SIBLING_COUNT.ordinal(),
-                                                                                       UncOption1Enum.UNC_OPT1_COUNT.ordinal(),
-                                                                                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
-                                                                                       UncDataType.UNC_DT_STATE.ordinal(),
-                                                                                       UncKeyTypeEnum.UNC_KT_VTNSTATION_CONTROLLER.getValue(),
-                                                                                       UncStructEnum.KeyVtnstationController.name(),
-                                                                                       UncStructEnum.ValVtnstationControllerSt.name());        
+       KT_VROUTER_IPROUTE_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_DETAIL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_IP_ROUTE.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VROUTER.getValue(),
+                       UncStructEnum.KeyVrt.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VROUTER_ARP_ENTRY_COUNT(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_COUNT.ordinal(),
+                       UncOption2Enum.UNC_OPT2_ARP_ENTRY.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VROUTER.getValue(),
+                       UncStructEnum.KeyVrt.name(),
+                       UncStructEnum.NONE.name()),
+       KT_BOUNDARY_GET_COUNT(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_BOUNDARY.getValue(),
+                       UncStructEnum.KeyBoundary.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VTNSTATION_CONTROLLER_GET_COUNT(
+                       UncOperationEnum.UNC_OP_READ_SIBLING_COUNT.ordinal(),
+                       UncOption1Enum.UNC_OPT1_COUNT.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VTNSTATION_CONTROLLER.getValue(),
+                       UncStructEnum.KeyVtnstationController.name(),
+                       UncStructEnum.ValVtnstationControllerSt.name()),
+
+       // Added for U12 Requirement
+       KT_DATAFLOW_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_DATAFLOW.getValue(),
+                       UncStructEnum.KeyDataFlow.name(),
+                       UncStructEnum.NONE.name()),
+       KT_CTR_DATAFLOW_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_CTR_DATAFLOW.getValue(),
+                       UncStructEnum.KeyCtrDataFlow.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VTN_MAPPING_CONTROLLER_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VTN_MAPPING_CONTROLLER.getValue(),
+                       UncStructEnum.KeyVtnController.name(),
+                       UncStructEnum.NONE.name()),
+       KT_VTN_DATAFLOW_GET(
+                       UncOperationEnum.UNC_OP_READ.ordinal(),
+                       UncOption1Enum.UNC_OPT1_NORMAL.ordinal(),
+                       UncOption2Enum.UNC_OPT2_NONE.ordinal(),
+                       UncDataType.UNC_DT_STATE.ordinal(),
+                       UncKeyTypeEnum.UNC_KT_VTN_DATAFLOW.getValue(),
+                       UncStructEnum.KeyVtnDataflow.name(),
+                       UncStructEnum.NONE.name());
 
        private int operation;
        private int option1;
@@ -1048,14 +1209,21 @@ KT_VRTIF_FLOWFILTER_ENTRY_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
 
        /**
         * Instantiates a new ipc request packet enum.
-        *
-        * @param operation the operation
-        * @param option1 the option1
-        * @param option2 the option2
-        * @param dataType the data type
-        * @param keyType the key type
-        * @param keyStruct the key struct
-        * @param valStruct the val struct
+        * 
+        * @param operation
+        *            the operation
+        * @param option1
+        *            the option1
+        * @param option2
+        *            the option2
+        * @param dataType
+        *            the data type
+        * @param keyType
+        *            the key type
+        * @param keyStruct
+        *            the key struct
+        * @param valStruct
+        *            the val struct
         */
        private IpcRequestPacketEnum(final int operation, final int option1,
                        final int option2, final int dataType, final int keyType,
@@ -1071,7 +1239,7 @@ KT_VRTIF_FLOWFILTER_ENTRY_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
 
        /**
         * Gets the operation.
-        *
+        * 
         * @return the operation
         */
        public int getOperation() {
@@ -1080,7 +1248,7 @@ KT_VRTIF_FLOWFILTER_ENTRY_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
 
        /**
         * Gets the option1.
-        *
+        * 
         * @return the option1
         */
        public int getOption1() {
@@ -1089,7 +1257,7 @@ KT_VRTIF_FLOWFILTER_ENTRY_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
 
        /**
         * Gets the option2.
-        *
+        * 
         * @return the option2
         */
        public int getOption2() {
@@ -1098,7 +1266,7 @@ KT_VRTIF_FLOWFILTER_ENTRY_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
 
        /**
         * Gets the data type.
-        *
+        * 
         * @return the data type
         */
        public int getDataType() {
@@ -1107,7 +1275,7 @@ KT_VRTIF_FLOWFILTER_ENTRY_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
 
        /**
         * Gets the key type.
-        *
+        * 
         * @return the key type
         */
        public int getKeyType() {
@@ -1116,7 +1284,7 @@ KT_VRTIF_FLOWFILTER_ENTRY_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
 
        /**
         * Gets the key struct.
-        *
+        * 
         * @return the key struct
         */
        public String getKeyStruct() {
@@ -1125,7 +1293,7 @@ KT_VRTIF_FLOWFILTER_ENTRY_DELETE(UncOperationEnum.UNC_OP_DELETE.ordinal(),
 
        /**
         * Gets the val struct.
-        *
+        * 
         * @return the val struct
         */
        public String getValStruct() {
index d5c96b2a14e5981da0c411d93a5046e01e1f830d..5e473647fd34e8683255a5f362d03b8404fb5e1d 100644 (file)
@@ -1,45 +1,46 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
+
 package org.opendaylight.vtn.javaapi.ipc.enums;
 
 public class PomStatsIndex {
        private Integer software;
 
-       public Integer getSoftware() {
+       public final Integer getSoftware() {
                return software;
        }
 
-       public void setSoftware(final Integer software) {
+       public final void setSoftware(final Integer software) {
                this.software = software;
        }
 
-       public Integer getExistingFlow() {
+       public final Integer getExistingFlow() {
                return existingFlow;
        }
 
-       public void setExistingFlow(final Integer existingFlow) {
+       public final void setExistingFlow(final Integer existingFlow) {
                this.existingFlow = existingFlow;
        }
 
-       public Integer getExpiredFlow() {
+       public final Integer getExpiredFlow() {
                return expiredFlow;
        }
 
-       public void setExpiredFlow(final Integer expiredFlow) {
+       public final void setExpiredFlow(final Integer expiredFlow) {
                this.expiredFlow = expiredFlow;
        }
 
-       public Integer getTotal() {
+       public final Integer getTotal() {
                return total;
        }
 
-       public void setTotal(final Integer total) {
+       public final void setTotal(final Integer total) {
                this.total = total;
        }
 
index af66ee31ec817346e463eb2e5ef9f93cf2b3c899..ec1a02a59f9727f1ae5c9080d99521cff7a861ad 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -19,7 +19,7 @@ public class UncCommonEnum {
        public static final int MAX_PHYSICAL_KEYTYPE = 0x3ff;
 
        /* Enumeration for Configuration Status. */
-       public enum ConfigStatus{
+       public enum ConfigStatus {
                UNC_CS_UNKNOWN,
                UNC_CS_APPLIED,
                UNC_CS_PARTIALLY_APPLIED,
@@ -28,21 +28,9 @@ public class UncCommonEnum {
                UNC_CS_NOT_SUPPORTED
        }
 
-       /* Enumeration for Valid flag. */
-//     public enum ValidFlag{
-//             UNC_VF_INVALID,
-//             UNC_VF_VALID,
-//             UNC_VF_VALID_NO_VALUE,
-//             UNC_VF_NOT_SUPPORTED,
-//             UNC_VF_VALUE_NOT_MODIFIED
-//     }
-
        /* Controller type enum. */
-       public enum ControllerType{
-               UNC_CT_UNKNOWN,
-               UNC_CT_OPENFLOW,
-               UNC_CT_OVERLAY,
-               UNC_CT_LEGACY
+       public enum ControllerType {
+               UNC_CT_UNKNOWN, UNC_CT_OPENFLOW, UNC_CT_OVERLAY, UNC_CT_LEGACY
        }
 
        /* Operation Status */
@@ -65,14 +53,23 @@ public class UncCommonEnum {
        /* JavaAPI return code */
        public enum UncResultCode {
 
-               UNC_SUCCESS(200,"Success"),
-               UNC_CLIENT_ERROR(400,"Validation error for: "),
-               UNC_SERVER_ERROR(500, "IPC server error");
+               UNC_SUCCESS(200, "Success"),
+               UNC_CLIENT_ERROR(400, "Invalid Argument("),
+               UNC_INVALID_FORMAT(40001, "Invalid Format"),
+               UNC_INVALID_ARGUMENT(40002, "Invalid Argument("),
+               UNC_NOT_FOUND(40400, "Not Found"),
+               UNC_METHOD_NOT_ALLOWED(40500, "Method Not Allowed"),
+               UNC_CONFLICT_FOUND(40901, "Duplicate Entity Exists"),
+               UNC_TOO_MANY_ENTITIES_FOUND(40902, "Too Many Entities Exis"),
+               UNC_SERVER_ERROR(500, "Internal Server Error"),
+               UNC_INTERNAL_SERVER_ERROR(50000, "Internal Server Error"),
+               UNC_SERVICE_UNAVILABLE(50301, "Server Busy"),
+               UNC_CTRL_NOT_FOUND(50051, "Controller Does Not Exist");
 
                private final int value;
                private final String message;
 
-               private UncResultCode(final int value, final String message){
+               private UncResultCode(final int value, final String message) {
                        this.value = value;
                        this.message = message;
                }
@@ -80,7 +77,7 @@ public class UncCommonEnum {
                public int getValue() {
                        return value;
                }
-               
+
                public String getMessage() {
                        return message;
                }
index e5d52a51be0ae12a14e76b3016a68d9f877d595c..830dde82b9bcfefb88e97dfcc8352520302f57ca 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -13,12 +13,11 @@ package org.opendaylight.vtn.javaapi.ipc.enums;
  */
 public enum UncDataType {
 
-       UNC_DT_INVALID,
-       UNC_DT_STATE,           /* Entity database (State and Statistics) */
-       UNC_DT_CANDIDATE,       /* Candidate configuration */
-       UNC_DT_RUNNING,         /* Running configuration */
-       UNC_DT_STARTUP,         /* Startup configuration */
-       UNC_DT_IMPORT,          /* Import configuration */
+       UNC_DT_INVALID, UNC_DT_STATE, /* Entity database (State and Statistics) */
+       UNC_DT_CANDIDATE, /* Candidate configuration */
+       UNC_DT_RUNNING, /* Running configuration */
+       UNC_DT_STARTUP, /* Startup configuration */
+       UNC_DT_IMPORT, /* Import configuration */
        UNC_DT_AUDIT
 
 }
index 640899faed7fba0d05cc0eac28af7aae28831070..0ad136f2738fa33b5d279de3c7b05a3228e2ef2c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -14,29 +14,37 @@ public class UncErrorBean {
        private String errorCode;
        private String javaAPIErrorMessage;
        private String southboundErrorMessage;
-       
-       public String getErrorCodeKey() {
+
+       public final String getErrorCodeKey() {
                return errorCodeKey;
        }
-       public void setErrorCodeKey(String errorCodeKey) {
+
+       public final void setErrorCodeKey(final String errorCodeKey) {
                this.errorCodeKey = errorCodeKey;
        }
-       public String getErrorCode() {
+
+       public final String getErrorCode() {
                return errorCode;
        }
-       public void setErrorCode(String errorCode) {
+
+       public final void setErrorCode(final String errorCode) {
                this.errorCode = errorCode;
        }
-       public String getJavaAPIErrorMessage() {
+
+       public final String getJavaAPIErrorMessage() {
                return javaAPIErrorMessage;
        }
-       public void setJavaAPIErrorMessage(String javaAPIErrorMessage) {
+
+       public final void setJavaAPIErrorMessage(final String javaAPIErrorMessage) {
                this.javaAPIErrorMessage = javaAPIErrorMessage;
        }
-       public String getSouthboundErrorMessage() {
+
+       public final String getSouthboundErrorMessage() {
                return southboundErrorMessage;
        }
-       public void setSouthboundErrorMessage(String southboundErrorMessage) {
+
+       public final void setSouthboundErrorMessage(
+                       final String southboundErrorMessage) {
                this.southboundErrorMessage = southboundErrorMessage;
        }
 }
index cf4e4b075200263e8aaea28cc148de0e67909895..449911283bcdd2bd85f7f6791d1dc969e2fd65b3 100644 (file)
@@ -30,17 +30,17 @@ public class UncIpcErrorCode {
 
        private static final Map<Integer, UncErrorBean> LOGICAL_CODES = new HashMap<Integer, UncErrorBean>();
 
-       private static final Map<Integer, UncTCEnums.OperationStatus> TC_CODES = new HashMap<Integer,UncTCEnums.OperationStatus>();
+       private static final Map<Integer, UncTCEnums.OperationStatus> TC_CODES = new HashMap<Integer, UncTCEnums.OperationStatus>();
 
        private static final Map<Integer, UncSessionEnums.UsessIpcErrE> SESSION_CODES = new HashMap<Integer, UncSessionEnums.UsessIpcErrE>();
 
        private static final Map<Integer, UncSYSMGEnums.NodeIpcErrorT> NODE_CODES = new HashMap<Integer, UncSYSMGEnums.NodeIpcErrorT>();
 
        private static final Map<Integer, String> SYSMG_CODES = new HashMap<Integer, String>();
-       
+
        /**
-        * Read the properties of logical and physical errors
-        * Create objects for UncErrorBean and set them in Map.
+        * Read the properties of logical and physical errors Create objects for
+        * UncErrorBean and set them in Map
         *
         * @throws VtnServiceException   Failed to load error definition.
         */
@@ -69,84 +69,95 @@ public class UncIpcErrorCode {
                }
 
                /*
-                * load the TC errors and put the error enums objects in the map 
+                * load the TC errors and put the error enums objects in the map
                 */
-               for(UncTCEnums.OperationStatus operationStatus : UncTCEnums.OperationStatus.values()){
+               for (final UncTCEnums.OperationStatus operationStatus : UncTCEnums.OperationStatus
+                               .values()) {
                        TC_CODES.put(operationStatus.getCode(), operationStatus);
                }
-               
+
                /*
-                * load the Session errors and put the error enums objects in the map 
+                * load the Session errors and put the error enums objects in the map
                 */
                int index = 0;
-               for(UncSessionEnums.UsessIpcErrE operationStatus : UncSessionEnums.UsessIpcErrE.values()){
+               for (final UncSessionEnums.UsessIpcErrE operationStatus : UncSessionEnums.UsessIpcErrE
+                               .values()) {
                        SESSION_CODES.put(index++, operationStatus);
                }
-               
+
                /*
-                * load the Node errors and put the error enums objects in the map 
+                * load the Node errors and put the error enums objects in the map
                 */
                index = 0;
-               for(UncSYSMGEnums.NodeIpcErrorT operationStatus : UncSYSMGEnums.NodeIpcErrorT.values()){
+               for (final UncSYSMGEnums.NodeIpcErrorT operationStatus : UncSYSMGEnums.NodeIpcErrorT
+                               .values()) {
                        NODE_CODES.put(index++, operationStatus);
                }
-               
+
                /*
-                * load the Node errors and put the error enums objects in the map 
+                * load the Node errors and put the error enums objects in the map
                 */
                index = 0;
-               for(UncSYSMGEnums.MgmtIpcErrorT operationStatus : UncSYSMGEnums.MgmtIpcErrorT.values()){
+               for (final UncSYSMGEnums.MgmtIpcErrorT operationStatus : UncSYSMGEnums.MgmtIpcErrorT
+                               .values()) {
                        SYSMG_CODES.put(index++, operationStatus.getMessage());
                }
        }
-       
+
        /**
         * Get error code enum for the received result code from UPPL
+        *
         * @param errorKey
         * @return
         */
-       public static UncErrorBean getPhysicalError(final int errorKey){
+       public static UncErrorBean getPhysicalError(final int errorKey) {
                return PHYSICAL_CODES.get(errorKey);
        }
 
        /**
         * Get error code enum for the received result code from UPLL
+        *
         * @param errorKey
         * @return
         */
-       public static UncErrorBean getLogicalError(final int errorKey){
+       public static UncErrorBean getLogicalError(final int errorKey) {
                return LOGICAL_CODES.get(errorKey);
        }
-       
+
        /**
         * Get error message for the received result code from TC
+        *
         * @param errorKey
         * @return
         */
        public static UncTCEnums.OperationStatus getTcCodes(final int errorKey) {
                return TC_CODES.get(errorKey);
        }
-       
+
        /**
         * Get error message for the received result code from Session
+        * 
         * @param errorKey
         * @return
         */
-       public static UncSessionEnums.UsessIpcErrE getSessionCodes(final int errorKey) {
+       public static UncSessionEnums.UsessIpcErrE getSessionCodes(
+                       final int errorKey) {
                return SESSION_CODES.get(errorKey);
        }
-       
+
        /**
         * Get error message for the received result code from Node Manager
+        * 
         * @param errorKey
         * @return
         */
        public static UncSYSMGEnums.NodeIpcErrorT getNodeCodes(final int errorKey) {
                return NODE_CODES.get(errorKey);
        }
-       
+
        /**
         * Get error message for the received result code from System Manager
+        * 
         * @param errorKey
         * @return
         */
index aa8e6d0dba85f3e15c5e0696e56da14a3fd9f4ef..75b5c77acfc937b649e1422f8fa89e84c7983906 100644 (file)
@@ -6,39 +6,43 @@
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
+
 package org.opendaylight.vtn.javaapi.ipc.enums;
 
 public enum UncJavaAPIErrorCode {
 
        INIT_ERROR("ER001", "JavaAPI Initialization Failed"),
-       CONN_INIT_ERROR("ER002","Connection Initialization Failure"),
-       IPC_CONN_ERROR("ER003","IPC Connection Openning Failure"),
-       IPC_SESS_ERROR("ER004","IPC Session Creation Failure"),
-       SESS_ERROR("ER005","Session Creation Failure"),
-       ROLLBACK_ERROR("ER006","Rollbacking Operation Failure"),
-       IPC_OP_ERROR("ER007","IPC Operation Failure"),
-       IPC_SERVER_ERROR("ER008","IPC Server Error"),
-       INTERNAL_ERROR("ER009","VtnService Internal Failure"),
+       CONN_INIT_ERROR("ER002", "Connection Initialization Failure"),
+       IPC_CONN_ERROR("ER003", "IPC Connection Openning Failure"),
+       IPC_SESS_ERROR("ER004", "IPC Session Creation Failure"),
+       SESS_ERROR("ER005", "Session Creation Failure"),
+       ROLLBACK_ERROR("ER006", "Rollbacking Operation Failure"),
+       IPC_OP_ERROR("ER007", "IPC Operation Failure"),
+       IPC_SERVER_ERROR("ER008", "IPC Server Error"),
+       INTERNAL_ERROR("ER009", "VtnService Internal Failure"),
 
        RESOURCE_PATH_ERROR("ER010", "Set Resource Path Failure"),
-       POST_ERROR("ER011","Post Operation Failure"),
-       PUT_ERROR("ER012","Put Operation Failure"),
-       GET_ERROR("ER013","Get Operation Failure"),
-       DELETE_ERROR("ER014","Delete Operation Failure"),
+       POST_ERROR("ER011", "Post Operation Failure"),
+       PUT_ERROR("ER012", "Put Operation Failure"),
+       GET_ERROR("ER013", "Get Operation Failure"),
+       DELETE_ERROR("ER014", "Delete Operation Failure"),
        RESOURCE_NOT_FOUND_ERROR("ER015", "Resource Not Found Error"),
-       VALIDATION_ERROR("ER016","Validation Failure"),
-       
-       RESOURCE_SCAN_ERROR("ER017","Resource Package Scanning Failure"),
-       RESOURCE_LOAD_ERROR("ER018","Resource Loading Failure"),
-       
-       COMMON_CONFIG_ERROR("ER019","Resource Loading Failure"),
-       APP_CONFIG_ERROR("ER020","Resource Loading Failure"),
-       POOL_SIZE_ERROR("ER021","Connection Pool Size Invalid");
-       
+       VALIDATION_ERROR("ER016", "Validation Failure"),
+
+       RESOURCE_SCAN_ERROR("ER017", "Resource Package Scanning Failure"),
+       RESOURCE_LOAD_ERROR("ER018", "Resource Loading Failure"),
+
+       COMMON_CONFIG_ERROR("ER019", "Resource Loading Failure"),
+       APP_CONFIG_ERROR("ER020", "Resource Loading Failure"),
+       POOL_SIZE_ERROR("ER021", "Connection Pool Size Invalid"),
+
+       DB_CONN_INIT_ERROR("ER022", "Database Connection Initialization Failure");
+
        private String errorCode;
        private String errorMessage;
 
-       private UncJavaAPIErrorCode(final String errorCode,final String errorMessage) {
+       private UncJavaAPIErrorCode(final String errorCode,
+                       final String errorMessage) {
                this.errorCode = errorCode;
                this.errorMessage = errorMessage;
        }
index 12707b31eaefc67bf8d682fc3c3711c59b09aca4..bae6515f5625d8501d47bc45b7a9449581760850 100644 (file)
@@ -1,11 +1,12 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
+
 package org.opendaylight.vtn.javaapi.ipc.enums;
 
 /**
@@ -63,24 +64,28 @@ public enum UncKeyTypeEnum {
        UNC_KT_VTN_FLOWFILTER_CONTROLLER(0x02e),
        UNC_KT_VTN_PATHMAP_ENTRY(0x02f),
        UNC_KT_VTN_PATHMAP_CONTROLLER(0x030),
+       UNC_KT_VTN_DATAFLOW(0x031),
        /* UPPL: 0x200~0x3ff */
        UNC_KT_CONTROLLER(0x200),
        UNC_KT_SWITCH(0x201),
        UNC_KT_PORT(0x202),
-    UNC_KT_LINK(0x203),
-    UNC_KT_DOMAIN(0x204),
-    UNC_KT_LOGICAL_PORT(0x205),
-    UNC_KT_LOGICAL_MEMBER_PORT(0x206),
-    UNC_KT_BOUNDARY(0x207);
-       
+       UNC_KT_LINK(0x203),
+       UNC_KT_DOMAIN(0x204),
+       UNC_KT_LOGICAL_PORT(0x205),
+       UNC_KT_LOGICAL_MEMBER_PORT(0x206),
+       UNC_KT_BOUNDARY(0x207),
+       UNC_KT_DATAFLOW(0x208),
+       UNC_KT_CTR_DATAFLOW(0x209);
+
        private final int value;
 
        /**
         * Instantiates a new unc key type enum.
         *
-        * @param value the value
+        * @param value
+        *            the value
         */
-       private UncKeyTypeEnum(final int value){
+       private UncKeyTypeEnum(final int value) {
                this.value = value;
        }
 
@@ -89,7 +94,7 @@ public enum UncKeyTypeEnum {
         *
         * @return the value
         */
-       public int getValue(){
+       public int getValue() {
                return value;
        }
 }
index dbca681e0e42efa21807228a995d2f01c2a8c4fd..7aa99c814e4046ccf651d708b0cb4e5c2e7ff01f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -13,7 +13,7 @@ package org.opendaylight.vtn.javaapi.ipc.enums;
  */
 public enum UncOption1Enum {
 
-       UNC_OPT1_NORMAL,        /* normal */
-       UNC_OPT1_DETAIL,        /* detail */
-       UNC_OPT1_COUNT          /* count */
+       UNC_OPT1_NORMAL, /* normal */
+       UNC_OPT1_DETAIL, /* detail */
+       UNC_OPT1_COUNT /* count */
 }
index e73ff7c9eafc44386a4e94727b87e23071bdbeca..8b8c444294e9854b3bdfc757d99ef3f86d54fc8e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -13,20 +13,21 @@ package org.opendaylight.vtn.javaapi.ipc.enums;
  */
 public enum UncOption2Enum {
 
-       UNC_OPT2_NONE,          /* none */
-       UNC_OPT2_L2DOMAIN,              /* l2-domain */
-       UNC_OPT2_MAC_ENTRY,             /* mac-entry */
-       UNC_OPT2_MAC_ENTRY_DYNAMIC,     /* mac-entry-dynamic */
-       UNC_OPT2_MAC_ENTRY_STATIC,      /* mac-entry-static */
-       UNC_OPT2_NEIGHBOR,              /* neighbor */
-       UNC_OPT2_ARP_ENTRY,             /* arp-entry */
-       UNC_OPT2_ARP_ENTRY_DYNAMIC,     /* arp-entry-dynamic */
-       UNC_OPT2_ARP_ENTRY_STATIC,      /* arp-entry-static */
-       UNC_OPT2_DHCP_RELAY,            /* dhcp-relay */
-       UNC_OPT2_IP_ROUTE,              /* ip-route */
-       UNC_OPT2_PING,                  /* ping */
-       UNC_OPT2_CLEAR_ARPAGENT,        /* clear arpagent */
-       UNC_OPT2_MATCH_SWITCH1,         /* match-switch1 */
-       UNC_OPT2_MATCH_SWITCH2,         /* match-switch2 */
-       UNC_OPT2_MATCH_BOTH_SWITCH      /* match-both-switch */
+       UNC_OPT2_NONE, /* none */
+       UNC_OPT2_L2DOMAIN, /* l2-domain */
+       UNC_OPT2_MAC_ENTRY, /* mac-entry */
+       UNC_OPT2_MAC_ENTRY_DYNAMIC, /* mac-entry-dynamic */
+       UNC_OPT2_MAC_ENTRY_STATIC, /* mac-entry-static */
+       UNC_OPT2_NEIGHBOR, /* neighbor */
+       UNC_OPT2_ARP_ENTRY, /* arp-entry */
+       UNC_OPT2_ARP_ENTRY_DYNAMIC, /* arp-entry-dynamic */
+       UNC_OPT2_ARP_ENTRY_STATIC, /* arp-entry-static */
+       UNC_OPT2_DHCP_RELAY, /* dhcp-relay */
+       UNC_OPT2_IP_ROUTE, /* ip-route */
+       UNC_OPT2_PING, /* ping */
+       UNC_OPT2_CLEAR_ARPAGENT, /* clear arpagent */
+       UNC_OPT2_MATCH_SWITCH1, /* match-switch1 */
+       UNC_OPT2_MATCH_SWITCH2, /* match-switch2 */
+       UNC_OPT2_MATCH_BOTH_SWITCH, /* match-both-switch */
+       UNC_OPT2_SIBLING_ALL /* return all sibling details */
 }
index 5a549acac6e5f3ff34d622e59eaa00b3cfa617bb..484d1310c470782df958b44e9fc0bc604f708d6f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -31,11 +31,21 @@ public class UncPhysicalStructIndexEnum {
        };
 
        public enum UpplValSwitchStIndex {
-               kIdxSwitch, kIdxSwitchOperStatus, kIdxSwitchManufacturer, kIdxSwitchHardware, kIdxSwitchSoftware, kIdxSwitchAlarmStatus
+               kIdxSwitch,
+               kIdxSwitchOperStatus,
+               kIdxSwitchManufacturer,
+               kIdxSwitchHardware,
+               kIdxSwitchSoftware,
+               kIdxSwitchAlarmStatus
        };
 
        public enum UpplValSwitchIndex {
-               kIdxSwitchDescription, kIdxSwitchModel, kIdxSwitchIPAddress, kIdxSwitchIPV6Address, kIdxSwitchAdminStatus, kIdxSwitchDomainName
+               kIdxSwitchDescription,
+               kIdxSwitchModel,
+               kIdxSwitchIPAddress,
+               kIdxSwitchIPV6Address,
+               kIdxSwitchAdminStatus,
+               kIdxSwitchDomainName
        };
 
        public enum UpplSwitchAdminStatus {
@@ -51,10 +61,9 @@ public class UncPhysicalStructIndexEnum {
                }
        };
 
-       public enum UpplPortAdminStatus{
-               UPPL_PORT_ADMIN_UP("0"),
-               UPPL_PORT_ADMIN_DOWN("1");
-               
+       public enum UpplPortAdminStatus {
+               UPPL_PORT_ADMIN_UP("0"), UPPL_PORT_ADMIN_DOWN("1");
+
                private final String value;
 
                private UpplPortAdminStatus(final String value) {
@@ -65,9 +74,9 @@ public class UncPhysicalStructIndexEnum {
                        return value;
                }
        }
-       
-       public enum UpplPortOperStatus{
-               
+
+       public enum UpplPortOperStatus {
+
                UPPL_PORT_OPER_DOWN("0"),
                UPPL_PORT_OPER_UP("1"),
                UPPL_PORT_OPER_UNKNOWN("2");
@@ -81,17 +90,44 @@ public class UncPhysicalStructIndexEnum {
                        return value;
                }
        }
+
        public enum UpplValPortStIndex {
-               kIdxPortSt, kIdxPortOperStatus, kIdxPortMacAddress, kIdxPortDirection, kIdxPortDuplex, kIdxPortSpeed, kIdxPortAlarmsStatus, kIdxPortLogicalPortId;
+               kIdxPortSt,
+               kIdxPortOperStatus,
+               kIdxPortMacAddress,
+               kIdxPortDirection,
+               kIdxPortDuplex,
+               kIdxPortSpeed,
+               kIdxPortAlarmsStatus,
+               kIdxPortLogicalPortId;
        }
 
+       public enum UpplValPortStatsIndex {
+               kIdxPortStatSt,
+               kIdxPortStatRxPackets,
+               kIdxPortStatTxPackets,
+               kIdxPortStatRxBytes,
+               kIdxPortStatTxBytes,
+               kIdxPortStatRxDropped,
+               kIdxPortStatTxDropped,
+               kIdxPortStatRxErrors,
+               kIdxPortStatTxErrors,
+               kIdxPortStatRxFrameErr,
+               kIdxPortStatRxOverErr,
+               kIdxPortStatRxCrcErr,
+               kIdxPortStatCollisions
+       };
+
        public enum UpplValPortNeighborIndex {
                kIdxPort, kIdxPortConnectedSwitchId, kIdxPortConnectedPortId;
 
        }
 
        public enum UpplValPortIndex {
-               kIdxPortNumber, kIdxPortDescription, kIdxPortAdminStatus, kIdxPortTrunkAllowedVlan;
+               kIdxPortNumber,
+               kIdxPortDescription,
+               kIdxPortAdminStatus,
+               kIdxPortTrunkAllowedVlan;
        };
 
        public enum UpplPortDuplex {
@@ -109,8 +145,9 @@ public class UncPhysicalStructIndexEnum {
        }
 
        public enum UpplPortDirection {
-               UPPL_PORT_DIR_INTERNEL(0), UPPL_PORT_DIR_EXTERNAL(1), UPPL_PORT_DIR_UNKNOWN(
-                               2);
+               UPPL_PORT_DIR_INTERNEL(0),
+               UPPL_PORT_DIR_EXTERNAL(1),
+               UPPL_PORT_DIR_UNKNOWN(2);
 
                private final int value;
 
@@ -124,8 +161,9 @@ public class UncPhysicalStructIndexEnum {
        }
 
        public enum UpplSwitchPortAlarmsStatus {
-               UPPL_ALARMS_DEFAULT_FLOW(0), UPPL_ALARMS_PORT_DIRECTION(1), UPPL_ALARMS_PORT_CONGES(
-                               2);
+               UPPL_ALARMS_DEFAULT_FLOW(0),
+               UPPL_ALARMS_PORT_DIRECTION(1),
+               UPPL_ALARMS_PORT_CONGES(2);
 
                private final int value;
 
@@ -139,8 +177,9 @@ public class UncPhysicalStructIndexEnum {
        }
 
        public enum UpplSwitchOperStatus {
-               UPPL_SWITCH_OPER_DOWN("0"), UPPL_SWITCH_OPER_UP("1"), UPPL_SWITCH_OPER_UNKNOWN(
-                               "2");
+               UPPL_SWITCH_OPER_DOWN("0"),
+               UPPL_SWITCH_OPER_UP("1"),
+               UPPL_SWITCH_OPER_UNKNOWN("2");
 
                private final String value;
 
@@ -154,7 +193,14 @@ public class UncPhysicalStructIndexEnum {
        };
 
        public enum UpplValCtrIndex {
-               kIdxType, kIdxVersion, kIdxDescription, kIdxIpAddress, kIdxUser, kIdxPassword, kIdxEnableAudit
+               kIdxType,
+               kIdxVersion,
+               kIdxDescription,
+               kIdxIpAddress,
+               kIdxUser,
+               kIdxPassword,
+               kIdxEnableAudit,
+               kIdxPort
        };
 
        // Not mapped with updated header file- Poorvi
@@ -173,22 +219,25 @@ public class UncPhysicalStructIndexEnum {
                }
        };
 
-
-
-
        public enum UpplValBoundaryIndex {
-               kIdxBoundaryDescription, kIdxBoundaryControllerName1, kIdxBoundaryDomainName1, kIdxBoundaryLogicalPortId1, kIdxBoundaryControllerName2, kIdxBoundaryDomainName2, kIdxBoundaryLogicalPortId2
+               kIdxBoundaryDescription,
+               kIdxBoundaryControllerName1,
+               kIdxBoundaryDomainName1,
+               kIdxBoundaryLogicalPortId1,
+               kIdxBoundaryControllerName2,
+               kIdxBoundaryDomainName2,
+               kIdxBoundaryLogicalPortId2
        }
 
        public enum UpplValBoundaryStIndex {
                kIdxBoundaryStBoundary, kIdxBoundaryStOperStatus
 
        };
-       
+
        public enum UpplBoundaryOperStatus {
                UPPL_BOUNDARY_OPER_DOWN("0"),
-                                 UPPL_BOUNDARY_OPER_UP("1"), 
-                                 UPPL_BOUNDARY_OPER_UNKNOWN("2");
+               UPPL_BOUNDARY_OPER_UP("1"),
+               UPPL_BOUNDARY_OPER_UNKNOWN("2");
 
                private final String value;
 
@@ -202,8 +251,9 @@ public class UncPhysicalStructIndexEnum {
        };
 
        public enum UpplDomainOperStatus {
-               UPPL_SWITCH_OPER_DOWN("0"), UPPL_SWITCH_OPER_UP("1"), UPPL_SWITCH_OPER_UNKNOWN(
-                               "2");
+               UPPL_SWITCH_OPER_DOWN("0"),
+               UPPL_SWITCH_OPER_UP("1"),
+               UPPL_SWITCH_OPER_UNKNOWN("2");
 
                private final String value;
 
@@ -230,7 +280,7 @@ public class UncPhysicalStructIndexEnum {
                }
        };
 
-       //Controller Response
+       // Controller Response
        public enum UpplValCtrStIndex {
                kIdxController, kIdxActualVersion, kIdxOperStatus
        };
@@ -239,37 +289,31 @@ public class UncPhysicalStructIndexEnum {
                kIdxLinkDescription
        };
 
-       public enum UpplValLinkStIndex{
-               kIdxLinkStLink,
-               kIdxLinkStOperStatus,
+       public enum UpplValLinkStIndex {
+               kIdxLinkStLink, kIdxLinkStOperStatus,
        };
 
-       /*public enum upplvallogicalportindex{
-               kIdxLogicalPortDescription ,
-               kIdxLogicalPortType,
-               kIdxLogicalPortSwitchId,
-               kIdxLogicalPortPhysicalPortId,
-               kIdxLogicalPortOperDownCriteria
-       };*/
-
+       /*
+        * public enum upplvallogicalportindex{ kIdxLogicalPortDescription ,
+        * kIdxLogicalPortType, kIdxLogicalPortSwitchId,
+        * kIdxLogicalPortPhysicalPortId, kIdxLogicalPortOperDownCriteria };
+        */
 
-       public enum UpplValLogicalPortStIndex{
-               kIdxLogicalPortSt,
-               kIdxLogicalPortStOperStatus
+       public enum UpplValLogicalPortStIndex {
+               kIdxLogicalPortSt, kIdxLogicalPortStOperStatus
        };
-       public enum UpplValLogicalPortIndex{
+
+       public enum UpplValLogicalPortIndex {
                kIdxLogicalPortDescription,
                kIdxLogicalPortType,
                kIdxLogicalPortSwitchId,
                kIdxLogicalPortPhysicalPortId,
                kIdxLogicalPortOperDownCriteria
        };
+
        public enum UpplLogicalPortType {
-               UPPL_LP_SWITCH("1"),
-               UPPL_LP_PHYSICAL_PORT("2"),
-               UPPL_LP_TRUNK_PORT("11"),
-               UPPL_LP_SUBDOMAIN("12"),
-               UPPL_LP_TUNNEL_ENDPOINT("13");
+               UPPL_LP_SWITCH("1"), UPPL_LP_PHYSICAL_PORT("2"), UPPL_LP_TRUNK_PORT(
+                               "11"), UPPL_LP_SUBDOMAIN("12"), UPPL_LP_TUNNEL_ENDPOINT("13");
                private final String value;
 
                private UpplLogicalPortType(final String value) {
@@ -280,30 +324,104 @@ public class UncPhysicalStructIndexEnum {
                        return value;
                }
        };
-       public enum UpplLogicalPortOperDownCriteria{
-                 UPPL_OPER_DOWN_CRITERIA_ANY("0"),
-                 UPPL_OPER_DOWN_CRITERIA_ALL("1");
-                 private final String value;
-                 private UpplLogicalPortOperDownCriteria(final String value) {
-                               this.value = value;
-                       }
-
-                       public String getValue() {
-                               return value;
-                       }
-               };
-               public enum UpplLogicalPortOperStatus{
-                         UPPL_LOGICAL_PORT_OPER_DOWN("0"),
-                         UPPL_LOGICAL_PORT_OPER_UP("1"),
-                         UPPL_LOGICAL_PORT_OPER_UNKNOWN("2");
-                         private final String value;
-                         private UpplLogicalPortOperStatus(final String value) {
-                                       this.value = value;
-                               }
-
-                               public String getValue() {
-                                       return value;
-                               }
-                       };
+
+       public enum UpplLogicalPortOperDownCriteria {
+               UPPL_OPER_DOWN_CRITERIA_ANY("0"), UPPL_OPER_DOWN_CRITERIA_ALL("1");
+               private final String value;
+
+               private UpplLogicalPortOperDownCriteria(final String value) {
+                       this.value = value;
+               }
+
+               public String getValue() {
+                       return value;
+               }
+       };
+
+       public enum UpplLogicalPortOperStatus {
+               UPPL_LOGICAL_PORT_OPER_DOWN("0"),
+               UPPL_LOGICAL_PORT_OPER_UP("1"),
+               UPPL_LOGICAL_PORT_OPER_UNKNOWN("2");
+               private final String value;
+
+               private UpplLogicalPortOperStatus(final String value) {
+                       this.value = value;
+               }
+
+               public String getValue() {
+                       return value;
+               }
+       };
+
+       // All DATAFLOW Enums
+       public enum UncValDfDataflowIndex {
+               kidxDfDataFlowReason, kidxDfDataFlowControllerCount;
+       };
+
+       public enum UncValDfDataflowCmnIndex {
+               kidxDfDataFlowControllerName,
+               kidxDfDataFlowControllerType,
+               kidxDfDataFlowFlowId,
+               kidxDfDataFlowStatus,
+               kidxDfDataFlowFlowType,
+               kidxDfDataFlowPolicyIndex,
+               kidxDfDataFlowVtnId,
+               kidxDfDataFlowIngressSwitchId,
+               kidxDfDataFlowInPort,
+               kidxDfDataFlowInStationId,
+               kidxDfDataFlowInDomain,
+               kidxDfDataFlowEgressSwitchId,
+               kidxDfDataFlowOutPort,
+               kidxDfDataFlowOutStationId,
+               kidxDfDataFlowOutDomain,
+               kidxDfDataFlowPathInfoCount,
+               kidxDfDataFlowMatchCount,
+               kidxDfDataFlowActionCount
+       };
+
+       public enum UncDataflowStatus {
+               UNC_DF_STAT_INIT,
+               UNC_DF_STAT_ACTIVATING,
+               UNC_DF_STAT_ACTIVE,
+               UNC_DF_STAT_SWITCHING
+       };
+
+       public enum UncDataflowFlowType {
+               UNC_DF_TYPE_VTN
+       };
+
+       public enum UncValDfDataflowPathInfoIndex {
+               kidxDfDataFlowPathInfoSwitchId,
+               kidxDfDataFlowPathInfoInPort,
+               kidxDfDataFlowPathInfoOutPort;
+       }
+
+       public enum UncValDfDataflowStIndex {
+               kidxDfDataFlowStPackets,
+               kidxDfDataFlowStOctets,
+               kidxDfDataFlowStDuration;
+
+       };
+
+       public enum upplVaPortStatsIndex {
+               kIdxPortStatSt,
+               kIdxPortStatRxPackets,
+               kIdxPortStatTxPackets,
+               kIdxPortStatRxBytes,
+               kIdxPortStatTxBytes,
+               kIdxPortStatRxDropped,
+               kIdxPortStatTxDropped,
+               kIdxPortStatRxErrors,
+               kIdxPortStatTxErrors,
+               kIdxPortStatRxFrameErr,
+               kIdxPortStatRxOverErr,
+               kIdxPortStatRxCrcErr,
+               kIdxPortStatCollisions
+
+       };
+
+       public enum UpplValSwitchStDetailIndex {
+               kIdxSwitchSt, kIdxSwitchStatFlowCount
+       };
 
 }
index 20af548fb464d888be23a1c27ed952507e58ad1f..995b904fe7f44f956c157f8fc5b913e44567d196 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -8,7 +8,6 @@
  */
 package org.opendaylight.vtn.javaapi.ipc.enums;
 
-// TODO: Auto-generated Javadoc
 /**
  * The Class UncSYSMGEnums.
  */
@@ -25,65 +24,62 @@ public class UncSYSMGEnums {
        /**
         * The Enum NodeMgrServiceID.
         */
-       public enum NodeMgrServiceID{
-         kNomgSoftVersionGet ,
-         kAlarmStatusListGet,
-         kAlarmClear,
-         kResourceStatusGet,
-         kNomgIpcNipcs,       //  Number of IPC Service IDs
+       public enum NodeMgrServiceID {
+               kNomgSoftVersionGet,
+               kAlarmStatusListGet,
+               kAlarmClear,
+               kResourceStatusGet,
+               kNomgIpcNipcs;
        }
-       // Management IPC Service ID 
+
+       // Management IPC Service ID
        /**
         * The Enum MgmtServiceID.
         */
-       public enum MgmtServiceID{
-                kMgmtSyslogSeveritySet ,
-                kMgmtSyslogSeverityUnset,
-                kMgmtSyslogSeverityGetSettings,
-                kMgmtTracelogSeveritySet,
-                kMgmtTracelogSeverityUnset,
-                kMgmtTracelogSeverityGetSettings,
-                kMgmtTrapEnableSet,
-                kMgmtTrapEnableUnset,
-                kMgmtTrapEnableGetSettings,
-                kMgmtTrapDestinationSet,
-                kMgmtTrapDestinationUnset,
-                kMgmtTrapDestinationGetSettings,
-                kMgmtTrapSourceSet,
-                kMgmtTrapSourceUnset,
-                kMgmtTrapSourceGetSettings,
-                kMgmtPromptSet,
-                kMgmtPromptUnset,
-                kMgmtPromptGetSettings,
-                kMgmtServiceCount;  // Number of IPC Service IDs
-          
-         
-         
-       } 
+       public enum MgmtServiceID {
+               kMgmtSyslogSeveritySet,
+               kMgmtSyslogSeverityUnset,
+               kMgmtSyslogSeverityGetSettings,
+               kMgmtTracelogSeveritySet,
+               kMgmtTracelogSeverityUnset,
+               kMgmtTracelogSeverityGetSettings,
+               kMgmtTrapEnableSet,
+               kMgmtTrapEnableUnset,
+               kMgmtTrapEnableGetSettings,
+               kMgmtTrapDestinationSet,
+               kMgmtTrapDestinationUnset,
+               kMgmtTrapDestinationGetSettings,
+               kMgmtTrapSourceSet,
+               kMgmtTrapSourceUnset,
+               kMgmtTrapSourceGetSettings,
+               kMgmtPromptSet,
+               kMgmtPromptUnset,
+               kMgmtPromptGetSettings,
+               kMgmtServiceCount; 
+       }
 
        // Nomg Return code
        /**
         * The Enum NodeMgrReturnCode.
         */
-       public enum NodeIpcErrorT{
-               NOMG_E_OK(200, "Success"),        
-               NOMG_E_NG(500, "Error"),
-               NOMG_E_NOENT(400, "No Entry"),
-               NOMG_E_INVAL(500, "Invalid"),
-               NOMG_E_INITING(500, "Initiating"),
-               NOMG_E_ABRT(500, "Abort");
-         
-               private String message;
-               private int code;
-               
+       public enum NodeIpcErrorT {
+               NOMG_E_OK(200, "Success"), 
+               NOMG_E_NG(50000, "Error"), 
+               NOMG_E_NOENT(50000, "No Entry"), 
+               NOMG_E_INVAL(50000, "Invalid"), 
+               NOMG_E_INITING(50301, "Server Busy"), 
+               NOMG_E_ABRT(50000, "Abort");
+
+               private final String message;
+               private final int code;
+
                /**
                 * Instantiates a new node mgr return code.
                 * 
                 * @param message
                 *            the message
                 */
-               private NodeIpcErrorT(int code, String message) {
+               private NodeIpcErrorT(final int code, final String message) {
                        this.code = code;
                        this.message = message;
                }
@@ -92,11 +88,11 @@ public class UncSYSMGEnums {
                 * Gets the code.
                 * 
                 * @return the code
-                */             
+                */
                public int getCode() {
                        return code;
                }
-               
+
                /**
                 * Gets the message.
                 * 
@@ -105,78 +101,80 @@ public class UncSYSMGEnums {
                public String getMessage() {
                        return message;
                }
-       } 
+       }
 
        // Management Return code
        /**
         * The Enum MgmtReturnCode.
         */
-       public enum MgmtIpcErrorT{
-         MGMT_E_OK("Success"),
-         MGMT_E_NG("Error"),
-         MGMT_E_NO_ENTRY("No entry"),
-         MGMT_E_DB_ACCESS_FAILED("Database access failed"), 
-         MGMT_E_INVALID_APLNAME("Invalid name"),
-         MGMT_E_INVALID_LEVEL("Invalid level"),
-         MGMT_E_INVALID_DESTINATION("Invalid destination"),
-         MGMT_E_INVALID_COMMUNITY("Invalid community"),
-         MGMT_E_INVALID_IPADDR("Invalid IP address"),
-         MGMT_E_INVALID_PROMPT("Invalid promt");
-         
-         private String message;
+       public enum MgmtIpcErrorT {
+               MGMT_E_OK("Success"),
+               MGMT_E_NG("Error"),
+               MGMT_E_NO_ENTRY("No entry"),
+               MGMT_E_DB_ACCESS_FAILED("Database access failed"),
+               MGMT_E_INVALID_APLNAME("Invalid name"),
+               MGMT_E_INVALID_LEVEL("Invalid level"),
+               MGMT_E_INVALID_DESTINATION("Invalid destination"),
+               MGMT_E_INVALID_COMMUNITY("Invalid community"),
+               MGMT_E_INVALID_IPADDR("Invalid IP address"),
+               MGMT_E_INVALID_PROMPT("Invalid promt");
+
+               private final String message;
 
                /**
                 * Instantiates a new mgmt return code.
-                *
-                * @param message the message
+                * 
+                * @param message
+                *            the message
                 */
-               private MgmtIpcErrorT(String message) {
+               private MgmtIpcErrorT(final String message) {
                        this.message = message;
                }
-               
+
                /**
                 * Gets the message.
-                *
+                * 
                 * @return the message
                 */
                public String getMessage() {
                        return message;
                }
        }
-       
+
        // Management Return code
-               /**
+       /**
         * The Enum AlarmLevelT.
         */
-       public enum AlarmLevelT{
-                       ALM_EMERG("0"),
-                       ALM_ALERT("1"),
-                       ALM_CRITICAL("2"),
-                       ALM_ERROR("3"),
-                       ALM_WARNING("4"),
-                       ALM_NOTICE("5"),
-                       ALM_INFO("6"),
-                       ALM_DEBUG("7");
-                       
-                       private String value;
-
-                       /**
-                        * Instantiates a new alarm level t.
-                        *
-                        * @param value the value
-                        */
-                       private AlarmLevelT(final String value) {
-                               this.value = value;
-                       }
-
-                       /**
-                        * Gets the value.
-                        *
-                        * @return the value
-                        */
-                       public String getValue() {
-                               return value;
-                       }
+       public enum AlarmLevelT {
+               ALM_EMERG("0"),
+               ALM_ALERT("1"),
+               ALM_CRITICAL("2"),
+               ALM_ERROR("3"),
+               ALM_WARNING("4"),
+               ALM_NOTICE("5"),
+               ALM_INFO("6"),
+               ALM_DEBUG("7");
 
+               private final String value;
+
+               /**
+                * Instantiates a new alarm level t.
+                * 
+                * @param value
+                *            the value
+                */
+               private AlarmLevelT(final String value) {
+                       this.value = value;
                }
+
+               /**
+                * Gets the value.
+                * 
+                * @return the value
+                */
+               public String getValue() {
+                       return value;
+               }
+
+       }
 }
index e99e17860cf1da8442412e43a8a3da20ef14da70..1312680f497c9694edea4d0633ec0b67f184d88c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -20,7 +20,7 @@ public class UncSessionEnums {
        public enum ServiceID {
                kUsessSessAdd, // add user authentication and session.
                kUsessSessDel, // delete the session.
-               kUsessSessTypeDel,// delete session of specified session type.
+               kUsessSessTypeDel, // delete session of specified session type.
                kUsessEnable, // authenticate enable.
                kUsessDisable, // to cancel the state of the enable.
                kUsessSessCount, // gets number of sessions.
@@ -32,37 +32,37 @@ public class UncSessionEnums {
        }
 
        // Type of user session.
-       public enum UsessTypeE{
-               USESS_TYPE_UNKNOWN("0"),     // Unknown session type.
-               USESS_TYPE_CLI("1"),             // CLI session type.
-               USESS_TYPE_CLI_DAEMON("2"),      // Resident CLI session type.
-               USESS_TYPE_WEB_API("3"),         // WEB API session type.
+       public enum UsessTypeE {
+               USESS_TYPE_UNKNOWN("0"), // Unknown session type.
+               USESS_TYPE_CLI("1"), // CLI session type.
+               USESS_TYPE_CLI_DAEMON("2"), // Resident CLI session type.
+               USESS_TYPE_WEB_API("3"), // WEB API session type.
                USESS_TYPE_WEB_UI("4");
 
                private final String value;
 
-               private UsessTypeE(final String value){
+               private UsessTypeE(final String value) {
                        this.value = value;
                }
 
-               public String getValue(){
+               public String getValue() {
                        return value;
                }
        }
 
        // Type of user.
        public enum UserTypeE {
-               USER_TYPE_UNKNOWN("0"),         // Unknown user.
-               USER_TYPE_OPER("1"),             // operator user.
-               USER_TYPE_ADMIN("2");                   // administrator user.
+               USER_TYPE_UNKNOWN("0"), // Unknown user.
+               USER_TYPE_OPER("1"), // operator user.
+               USER_TYPE_ADMIN("2"); // administrator user.
 
                private final String value;
 
-               private UserTypeE(final String value){
+               private UserTypeE(final String value) {
                        this.value = value;
                }
 
-               public String getValue(){
+               public String getValue() {
                        return value;
                }
        }
@@ -104,20 +104,20 @@ public class UncSessionEnums {
        // error code.
        public enum UsessIpcErrE {
                USESS_E_OK(200, "Success"), // success.
-               USESS_E_NG(500, "Internal error"), // error.
-               USESS_E_INVALID_SESSID(400, "Invalid current session ID"), // Invalid current session ID.
-               USESS_E_NO_SUCH_SESSID(404, "Invalid target session ID"), // Invalid target session ID.
-               USESS_E_INVALID_PRIVILEGE(403, "Invalid privileges"), // Invalid privileges
-               USESS_E_INVALID_MODE(400, "Invalid mode"), // Invalid mode.
-               USESS_E_INVALID_SESSTYPE(400, "Invalid session type"), // Invalid session type.
-               USESS_E_INVALID_USER(400, "Invalid user name"), // Invalid user name.
-               USESS_E_INVALID_PASSWD(400, "Invalid password"), // Invalid password.
-               USESS_E_SESS_OVER(500, "Over the number of user sessions"); // Over the number of user sessions
-               
-               private String message;
-               private int code;
-
-               private UsessIpcErrE(int code, String message) {
+               USESS_E_NG(50000, "Internal error"), // error.
+               USESS_E_INVALID_SESSID(50000, "Invalid current session ID"), 
+               USESS_E_NO_SUCH_SESSID(50000, "Invalid target session ID"),
+               USESS_E_INVALID_PRIVILEGE(50000, "Invalid privileges"),
+               USESS_E_INVALID_MODE(50000, "Invalid mode"),
+               USESS_E_INVALID_SESSTYPE(50000, "Invalid session type"),
+               USESS_E_INVALID_USER(50000, "Invalid user name"),
+               USESS_E_INVALID_PASSWD(50000, "Invalid password"),
+               USESS_E_SESS_OVER(50000, "Over the number of user sessions");
+
+               private final String message;
+               private final int code;
+
+               private UsessIpcErrE(final int code, final String message) {
                        this.code = code;
                        this.message = message;
                }
@@ -125,7 +125,7 @@ public class UncSessionEnums {
                public String getMessage() {
                        return message;
                }
-               
+
                public int getCode() {
                        return code;
                }
index 336af18be63f69fccd0fbdf2683b38d9bba7ff80..996ccd28dcb23c668c9eb106fa51848c31fbbc94 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -27,7 +27,7 @@ public enum UncStructEnum {
        KeyDhcpRelayIf("key_dhcp_relay_if"),
        KeyDhcpRelayServer("key_dhcp_relay_server"),
        KeyVunknown("key_vunknown"),
-       //vUnknown(""),
+       // vUnknown(""),
        KeyFlowListEntry("key_flowlist_entry"),
        ValFlowListEntry("val_flowlist_entry"),
        KeyVtnstationController("key_vtnstation_controller"),
@@ -63,7 +63,7 @@ public enum UncStructEnum {
        KeyVrtIfFlowFilterEntry("key_vrt_if_flowfilter_entry"),
        ValVrtArpEntrySt("val_vrt_arp_entry_st"),
        KeyVbrIfFlowFilter("key_vbr_if_flowfilter"),
-       //ValVbrL2DomainSt(""),
+       // ValVbrL2DomainSt(""),
        KeyStaticIpRoute("key_static_ip_route"),
        ValStaticIpRoute("val_static_ip_route"),
        KeyVbrFlowFilter("key_vbr_flowfilter"),
@@ -92,18 +92,33 @@ public enum UncStructEnum {
        KeyBoundary("key_boundary"),
        ValBoundary("val_boundary"),
 
-       //usess_ipc_req_sess_id(""),
+       // usess_ipc_req_sess_id(""),
        usessIpcReqUserPasswd("usess_ipc_req_user_passwd"),
        KeyPort("key_port"),
-       KeyLink("key_link"), 
-       ValPort("val_port"), 
+       KeyLink("key_link"),
+       ValPort("val_port"),
        ValPortSt("val_port_st"),
        ValPortStNeighbour("val_port_st_neighbor"),
        KeyLogicalPort("key_logical_port"),
        KeyLogicalMemberPort("key_logical_member_port"),
-       UsessIpcReqSessEnable("usess_ipc_req_sess_enable");
-
+       UsessIpcReqSessEnable("usess_ipc_req_sess_enable"),
 
+       // Vtn Data Flow
+       KeyVtnDataflow("key_vtn_dataflow"),
+       ValVtnDataflow("val_vtn_dataflow"),
+       // VTerminal
+       KeyVterm("key_vterm"),
+       ValVterm("val_vterm"),
+       KeyVtermIf("key_vterm_if"),
+       ValVtermIf("val_vterm_if"),
+       ValVtermIfSt("val_vterm_if_st"),
+       KeyVtermIfFlowFilter("key_vterm_if_flowfilter"),
+       KeyVtermIfFlowFilterEntry("key_vterm_if_flowfilter_entry"),
+       KeyDataFlow("key_dataflow"),
+       KeyCtrDataFlow("key_ctr_dataflow"),
+       // VTN Mapping
+       KeyVtnController("key_vtn_controller"),
+       ValVtnMappingControllerSt("val_vtn_mapping_controller_st");
        private String value;
 
        private UncStructEnum(final String value) {
index 3cf12e5aa098e9a58f4ff131a02b371c46645750..4bb57bba7f3acfeab9911ff4be77f75dc0a00af4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -10,17 +10,19 @@ package org.opendaylight.vtn.javaapi.ipc.enums;
 
 public class UncStructIndexEnum {
        // valid
-       public enum Valid{
+       public enum Valid {
                UNC_VF_INVALID,
                UNC_VF_VALID,
                UNC_VF_VALID_NO_VALUE,
                UNC_VF_NOT_SUPPORTED,
                UNC_VF_VALUE_NOT_MODIFIED
        };
+
        // vtn
-       public enum ValVtnIndex{
+       public enum ValVtnIndex {
                UPLL_IDX_DESC_VTN
        };
+
        // vtn response
        public enum ValVtnStIndex {
                UPLL_IDX_OPER_STATUS_VS,
@@ -32,12 +34,12 @@ public class UncStructIndexEnum {
        public enum ValVtunnelIfIndex {
                UPLL_IDX_DESC_VTNL_IF,
                UPLL_IDX_ADMIN_ST_VTNL_IF,
-                 UPLL_IDX_PORT_MAP_VTNL_IF
+               UPLL_IDX_PORT_MAP_VTNL_IF
 
        };
 
        public enum ValVlinkIndex {
-               UPLL_IDX_ADMIN_STATUS_VLNK ,
+               UPLL_IDX_ADMIN_STATUS_VLNK,
                UPLL_IDX_VNODE1_NAME_VLNK,
                UPLL_IDX_VNODE1_IF_NAME_VLNK,
                UPLL_IDX_VNODE2_NAME_VLNK,
@@ -56,34 +58,32 @@ public class UncStructIndexEnum {
 
        public enum ValVtepIfIndex {
 
-               UPLL_IDX_DESC_VTEPI ,
-               UPLL_IDX_ADMIN_ST_VTEPI,
-               UPLL_IDX_PORT_MAP_VTEPI
+               UPLL_IDX_DESC_VTEPI, UPLL_IDX_ADMIN_ST_VTEPI, UPLL_IDX_PORT_MAP_VTEPI
 
        };
 
-       public enum ValVtepGroupMemberIndex{
-               UPLL_IDX_VTEPGRP_KEY,
-               UPLL_IDX_VTEPMEMBER_NAME
+       public enum ValVtepGroupMemberIndex {
+               UPLL_IDX_VTEPGRP_KEY, UPLL_IDX_VTEPMEMBER_NAME
        };
+
        public enum FlowlistIpType {
-               UPLL_FLOWLIST_TYPE_IP("0"),
-               UPLL_FLOWLIST_TYPE_IPV6("1");
+               UPLL_FLOWLIST_TYPE_IP("0"), UPLL_FLOWLIST_TYPE_IPV6("1");
                private final String value;
 
-
-               private FlowlistIpType(final String value){
+               private FlowlistIpType(final String value) {
                        this.value = value;
                }
 
-               public String getValue(){
+               public String getValue() {
                        return value;
                }
 
        };
-       public  enum ValFlowlistIndex {
+
+       public enum ValFlowlistIndex {
                UPLL_IDX_IP_TYPE_FL
        };
+
        public enum ValFlowlistEntryIndex {
                UPLL_IDX_MAC_DST_FLE,
                UPLL_IDX_MAC_SRC_FLE,
@@ -108,6 +108,7 @@ public class UncStructIndexEnum {
                UPLL_IDX_ICMP_V6_TYPE_FLE,
                UPLL_IDX_ICMP_V6_CODE_FLE
        };
+
        public enum ValVtnFlowfilterEntryIndex {
                UPLL_IDX_FLOWLIST_NAME_VFFE,
                UPLL_IDX_ACTION_VFFE,
@@ -115,8 +116,8 @@ public class UncStructIndexEnum {
                UPLL_IDX_DSCP_VFFE,
                UPLL_IDX_PRIORITY_VFFE
        };
-       
-       //ValVbr for VBridge APIs
+
+       // ValVbr for VBridge APIs
        public enum ValVbrIndex {
                UPLL_IDX_CONTROLLER_ID_VBR,
                UPLL_IDX_DOMAIN_ID_VBR,
@@ -125,26 +126,22 @@ public class UncStructIndexEnum {
                UPLL_IDX_HOST_ADDR_PREFIXLEN_VBR
        };
 
-       //ValVbrSt for response of VBridge APIs
-       public enum ValVbrStIndex{
+       // ValVbrSt for response of VBridge APIs
+       public enum ValVbrStIndex {
                UPLL_IDX_OPER_STATUS_VBRS,
        };
 
-       //ValVbrIf for VBridgeInterface APIs
+       // ValVbrIf for VBridgeInterface APIs
        public enum ValVbrIfIndex {
-               UPLL_IDX_ADMIN_STATUS_VBRI,
-               UPLL_IDX_DESC_VBRI,
-               UPLL_IDX_PM_VBRI
+               UPLL_IDX_ADMIN_STATUS_VBRI, UPLL_IDX_DESC_VBRI, UPLL_IDX_PM_VBRI
        };
 
-       //ValPortMap for VBridgeInterface APIs
+       // ValPortMap for VBridgeInterface APIs
        public enum ValPortMapIndex {
-                         UPLL_IDX_LOGICAL_PORT_ID_PM,
-                         UPLL_IDX_VLAN_ID_PM,
-                         UPLL_IDX_TAGGED_PM
+               UPLL_IDX_LOGICAL_PORT_ID_PM, UPLL_IDX_VLAN_ID_PM, UPLL_IDX_TAGGED_PM
        };
 
-       //ValFlowfilterEntry
+       // ValFlowfilterEntry
        public enum ValFlowfilterEntryIndex {
                UPLL_IDX_FLOWLIST_NAME_FFE,
                UPLL_IDX_ACTION_FFE,
@@ -157,47 +154,44 @@ public class UncStructIndexEnum {
                UPLL_IDX_PRIORITY_FFE
        };
 
-       //FFType_Direction
+       // FFType_Direction
 
        public enum FlowfilterDirection {
-               UPLL_FLOWFILTER_DIR_IN("0"),
-               UPLL_FLOWFILTER_DIR_OUT("1");
+               UPLL_FLOWFILTER_DIR_IN("0"), UPLL_FLOWFILTER_DIR_OUT("1");
                private final String value;
 
-
-               private FlowfilterDirection(final String value){
+               private FlowfilterDirection(final String value) {
                        this.value = value;
                }
 
-               public String getValue(){
+               public String getValue() {
                        return value;
                }
        };
 
-       //Action
+       // Action
        public enum FlowfilterAction {
                UPLL_FLOWFILTER_ACT_PASS("0"),
                UPLL_FLOWFILTER_ACT_DROP("1"),
                UPLL_FLOWFILTER_ACT_REDIRECT("2");
                private final String value;
 
-
-               private FlowfilterAction(final String value){
+               private FlowfilterAction(final String value) {
                        this.value = value;
                }
 
-               public String getValue(){
+               public String getValue() {
                        return value;
                }
        };
 
-
        public enum ValVrtIndex {
                UPLL_IDX_CONTROLLER_ID_VRT,
                UPLL_IDX_DOMAIN_ID_VRT,
                UPLL_IDX_DESC_VRT,
                UPLL_IDX_DHCP_RELAY_ADMIN_STATUS_VRT
        };
+
        // ValVrtIf
        public enum ValVrtIfIndex {
                UPLL_IDX_DESC_VI,
@@ -206,6 +200,7 @@ public class UncStructIndexEnum {
                UPLL_IDX_MAC_ADDR_VI,
                UPLL_IDX_ADMIN_ST_VI,
        };
+
        // ValVtunnel
        public enum ValVtunnelIndex {
                UPLL_IDX_DESC_VTNL,
@@ -217,28 +212,26 @@ public class UncStructIndexEnum {
 
        };
 
-       public enum  ValLabelType {
-               UPLL_LBL_TYP_MPLS,
-               UPLL_LBL_TYPE_VNI,
-               UPLL_LBL_TYPE_VSID
+       public enum ValLabelType {
+               UPLL_LBL_TYP_MPLS, UPLL_LBL_TYPE_VNI, UPLL_LBL_TYPE_VSID
        };
+
        // VUnkown
        public enum ValVunknownIndex {
-               UPLL_IDX_DESC_VUN ,
+               UPLL_IDX_DESC_VUN,
                UPLL_IDX_TYPE_VUN,
                UPLL_IDX_CONTROLLER_ID_VUN,
                UPLL_IDX_DOMAIN_ID_VUN
        };
+
        // VUnknown Interface
        public enum ValVunkIfIndex {
-               UPLL_IDX_DESC_VUNI,
-               UPLL_IDX_ADMIN_ST_VUNI
+               UPLL_IDX_DESC_VUNI, UPLL_IDX_ADMIN_ST_VUNI
        };
 
        // flow filter Entry controller
        public enum ValFlowfilterControllerIndex {
-               UPLL_IDX_DIRECTION_FFC,
-               UPLL_IDX_SEQ_NUM_FFC
+               UPLL_IDX_DIRECTION_FFC, UPLL_IDX_SEQ_NUM_FFC
        };
 
        /*
@@ -252,93 +245,84 @@ public class UncStructIndexEnum {
        };
 
        public enum ValAdminStatus {
-               UPLL_ADMIN_ENABLE("1"),
-               UPLL_ADMIN_DISABLE("2");
+               UPLL_ADMIN_ENABLE("1"), UPLL_ADMIN_DISABLE("2");
                private final String value;
 
-
-               private ValAdminStatus(final String value){
+               private ValAdminStatus(final String value) {
                        this.value = value;
                }
 
                /**
-                *
+                * 
                 * @return the value
                 */
-               public String getValue(){
+               public String getValue() {
                        return value;
                }
        };
 
        public enum ValVbrPortType {
-               UPLL_PORT,
-               UPLL_TRUNK
+               UPLL_PORT, UPLL_TRUNK
        };
 
-/*     public enum TagStatus{
-               UPPL_UNTAG,
-               UPPL_TAG
+       /*
+        * public enum TagStatus{ UPPL_UNTAG, UPPL_TAG
+        * 
+        * };
+        */
+
+       /*
+        * public enum TagStatus { UPPL_UNTAG("0"), UPPL_TAG("1");
+        * 
+        * private final String value;
+        * 
+        * private TagStatus(final String value) { this.value = value; }
+        *//**
+        * 
+        * @return the value
+        */
+       /*
+        * public String getValue(){ return value; } };
+        */
 
-       };*/
-       
-/*     public enum TagStatus {
-               UPPL_UNTAG("0"),
-               UPPL_TAG("1");
+       public enum vlan_tagged {
+               UPLL_VLAN_UNTAGGED("0"), UPLL_VLAN_TAGGED("1");
 
                private final String value;
 
-               private TagStatus(final String value) {
+               private vlan_tagged(final String value) {
                        this.value = value;
                }
 
-               *//**
-                *
-                * @return the value
-                *//*
-               public String getValue(){
+               public String getValue() {
                        return value;
                }
-       };*/
-       
-       public enum vlan_tagged {
-                  UPLL_VLAN_UNTAGGED("0"),
-                  UPLL_VLAN_TAGGED("1");
-                  
-                  private final String value;
-
-                       private vlan_tagged(final String value) {
-                               this.value = value;
-                       }
-                       public String getValue(){
-                               return value;
-                       }
-                  
-               };
+
+       };
 
        public enum ValStaticIpRouteIndex {
                UPLL_IDX_GROUP_METRIC_SIR
        };
 
-       //ValVlanMap
+       // ValVlanMap
        public enum ValVlanMapIndex {
                UPLL_IDX_VLAN_ID_VM
        };
 
-
-       //ValVbrvalVbrMacEntrySt
+       // ValVbrvalVbrMacEntrySt
        public enum valVbrMacEntryStIndex {
                UPLL_IDX_MAC_ADDR_VMES,
                UPLL_IDX_TYPE_VMES,
                UPLL_IDX_IF_NAME_VMES,
                UPLL_IDX_IF_KIND_VMES
        };
+
        public enum ValVrtStIndex {
                UPLL_IDX_OPER_STATUS_VRTS
        };
 
        public enum ValMacEntry {
-               UPLL_MAC_ENTRY_STATIC("0"),
-               UPLL_MAC_ENTRY_DYNAMIC("1");
+               UPLL_MAC_ENTRY_STATIC("0"), UPLL_MAC_ENTRY_DYNAMIC("1");
 
                private final String value;
 
@@ -347,75 +331,72 @@ public class UncStructIndexEnum {
                }
 
                /**
-                *
+                * 
                 * @return the value
                 */
-               public String getValue(){
+               public String getValue() {
                        return value;
                }
        };
 
        public enum ValVtnFlowfilterControllerStIndex {
-               UPLL_IDX_DIRECTION_VFFCS ,     
-               UPLL_IDX_SEQ_NUM_VFFCS,           
-               UPLL_IDX_FLOW_LIST_VFFCS,         
-               UPLL_IDX_IP_TYPE_VFFCS,           
-               UPLL_IDX_ACTION_VFFCS,            
-               UPLL_IDX_DSCP_VFFCS,              
+               UPLL_IDX_DIRECTION_VFFCS,
+               UPLL_IDX_SEQ_NUM_VFFCS,
+               UPLL_IDX_FLOW_LIST_VFFCS,
+               UPLL_IDX_IP_TYPE_VFFCS,
+               UPLL_IDX_ACTION_VFFCS,
+               UPLL_IDX_DSCP_VFFCS,
                UPLL_IDX_PRIORITY_VFFCS,
-               UPLL_IDX_NWM_STATUS_VFFCS,          
-               UPLL_IDX_SOFTWARE_VFFCS,          
-               UPLL_IDX_EXIST_VFFCS,             
-               UPLL_IDX_EXPIRE_VFFCS,            
-               UPLL_IDX_TOTAL_VFFCS              
+               UPLL_IDX_NWM_STATUS_VFFCS,
+               UPLL_IDX_SOFTWARE_VFFCS,
+               UPLL_IDX_EXIST_VFFCS,
+               UPLL_IDX_EXPIRE_VFFCS,
+               UPLL_IDX_TOTAL_VFFCS
 
        };
 
-       //val_vbr_l2_domain_st
+       // val_vbr_l2_domain_st
        public enum valVbrL2DomainStIndex {
-               UPLL_IDX_L2_DOMAIN_ID_VL2DS,
-               UPLL_IDX_OFS_COUNT_VL2DS
+               UPLL_IDX_L2_DOMAIN_ID_VL2DS, UPLL_IDX_OFS_COUNT_VL2DS
        };
 
-       //val_vbr_l2_domain_member_st
+       // val_vbr_l2_domain_member_st
        public enum valVbrL2DomainMemberStIndex {
-               UPLL_IDX_SWITCH_ID_VL2DMS,
-               UPLL_IDX_VLAN_ID_VL2DMS
+               UPLL_IDX_SWITCH_ID_VL2DMS, UPLL_IDX_VLAN_ID_VL2DMS
 
        };
+
        public enum ValDhcpRelayIfStIndex {
-               UPLL_IDX_IF_NAME_DRIS,
-               UPLL_IDX_DHCP_RELAY_STATUS_DRIS
+               UPLL_IDX_IF_NAME_DRIS, UPLL_IDX_DHCP_RELAY_STATUS_DRIS
        };
 
        public enum ValPomStatsIndex {
-               UPLL_IDX_STATS_PACKETS,
-               UPLL_IDX_STATS_BYTES
+               UPLL_IDX_STATS_PACKETS, UPLL_IDX_STATS_BYTES
        };
 
        public enum ValFlowlistEntryStIndex {
-               UPLL_IDX_SEQ_NUM_FLES ,
+               UPLL_IDX_SEQ_NUM_FLES,
                UPLL_IDX_SOFTWARE_FLES,
                UPLL_IDX_EXIST_FLES,
                UPLL_IDX_EXPIRE_FLES,
                UPLL_IDX_TOTAL_FLES
        };
 
-       //val_flowfilter_entry_st
+       // val_flowfilter_entry_st
        public enum ValFlowfilterEntryStIndex {
                UPLL_IDX_SEQ_NUM_FFES,
-               UPLL_IDX_NWM_STATUS_FFES,          
-               UPLL_IDX_SOFTWARE_FFES,         
-               UPLL_IDX_EXIST_FFES,            
-               UPLL_IDX_EXPIRE_FFES,           
-               UPLL_IDX_TOTAL_FFES             
+               UPLL_IDX_NWM_STATUS_FFES,
+               UPLL_IDX_SOFTWARE_FFES,
+               UPLL_IDX_EXIST_FFES,
+               UPLL_IDX_EXPIRE_FFES,
+               UPLL_IDX_TOTAL_FFES
 
        };
 
-
-       public enum ValVtunnelStIndex  {
+       public enum ValVtunnelStIndex {
                UPLL_IDX_OPER_STATUS_VTNLS
        };
+
        public enum ValVlinkStIndex {
                UPLL_IDX_OPER_STATUS_VLNKS
        };
@@ -423,47 +404,47 @@ public class UncStructIndexEnum {
        public enum ValVrtIfStIndex {
                UPLL_IDX_OPER_STATUS_VRTIS
        };
+
        public enum ValVtnNeighborIndex {
                UPLL_IDX_CONN_VNODE_NAME_VN,
                UPLL_IDX_CONN_VNODE_IF_NAME_VN,
                UPLL_IDX_CONN_VLINK_NAME_VN
        };
+
        public enum ValVtepIfStIndex {
                UPLL_IDX_IF_OPER_STATUS_VTEPIS
        };
+
        public enum PfcStatus {
-               PFC_TRUE("1"),
-               PFC_FALSE("0");
+               PFC_TRUE("1"), PFC_FALSE("0");
                private final String value;
 
-
-               private PfcStatus(final String value){
+               private PfcStatus(final String value) {
                        this.value = value;
                }
 
-               public String getValue(){
+               public String getValue() {
                        return value;
                }
        };
 
-       public  enum ValOperStatus {
-               UPLL_OPER_STATUS_UP ("1"),
+       public enum ValOperStatus {
+               UPLL_OPER_STATUS_UP("1"),
                UPLL_OPER_STATUS_DOWN("2"),
                UPLL_OPER_STATUS_UNKNOWN("3");
                private final String value;
 
-
-               private ValOperStatus(final String value){
+               private ValOperStatus(final String value) {
                        this.value = value;
                }
 
-               public String getValue(){
+               public String getValue() {
                        return value;
                }
        };
 
        public enum val_vrt_ip_route_st_index {
-               UPLL_IDX_DESTINATION_VIRS ,
+               UPLL_IDX_DESTINATION_VIRS,
                UPLL_IDX_GATEWAY_VIRS,
                UPLL_IDX_PREFIXLEN_VIRS,
                UPLL_IDX_FLAGS_VIRS,
@@ -474,10 +455,8 @@ public class UncStructIndexEnum {
                UPLL_IDX_GR_METRIC_VIRS
        };
 
-
-
        public enum val_vrt_arp_entry_st_index {
-               UPLL_IDX_MAC_ADDR_VAES ,
+               UPLL_IDX_MAC_ADDR_VAES,
                UPLL_IDX_IP_ADDR_VAES,
                UPLL_IDX_TYPE_VAES,
                UPLL_IDX_IF_NAME_VAES
@@ -498,8 +477,8 @@ public class UncStructIndexEnum {
                UPLL_IDX_GROUP_METRIC_SIR
        };
 
-       public  enum ValVtnstationControllerStIndex {
-               UPLL_IDX_STATION_ID_VSCS ,
+       public enum ValVtnstationControllerStIndex {
+               UPLL_IDX_STATION_ID_VSCS,
                UPLL_IDX_CREATED_TIME_VSCS,
                UPLL_IDX_MAC_ADDR_VSCS,
                UPLL_IDX_IPV4_COUNT_VSCS,
@@ -516,40 +495,40 @@ public class UncStructIndexEnum {
                UPLL_IDX_VBR_IF_STATUS_VSCS
        };
 
-       public  enum val_vbr_port_type {
-               UPLL_PORT ,
-               UPLL_TRUNK
+       public enum val_vbr_port_type {
+               UPLL_PORT, UPLL_TRUNK
        };
+
        public enum ValVbrIfMapType {
-               UPLL_IF_OFS_MAP("0"),
-               UPLL_IF_VLAN_MAP("1");
-               
-               private String value;
-               
-               private ValVbrIfMapType(String value) {
+               UPLL_IF_OFS_MAP("0"), UPLL_IF_VLAN_MAP("1");
+
+               private final String value;
+
+               private ValVbrIfMapType(final String value) {
                        this.value = value;
                }
-               
+
                public String getValue() {
                        return value;
                }
        };
+
        public enum ValVtnMapStatus {
-               UPLL_VTN_MAP_VALID("0"),
-               UPLL_VTN_MAP_INVALID("1");
-               
-               private String value;
-               
-               private ValVtnMapStatus(String value) {
+               UPLL_VTN_MAP_VALID("0"), UPLL_VTN_MAP_INVALID("1");
+
+               private final String value;
+
+               private ValVtnMapStatus(final String value) {
                        this.value = value;
                }
-               
+
                public String getValue() {
                        return value;
                }
        };
-       public  enum ValVtnStationControllerStatIndex {
-               UPLL_IDX_ALL_TX_PKT_VSCS ,
+
+       public enum ValVtnStationControllerStatIndex {
+               UPLL_IDX_ALL_TX_PKT_VSCS,
                UPLL_IDX_ALL_RX_PKT_VSCS,
                UPLL_IDX_ALL_TX_BYTS_VSCS,
                UPLL_IDX_ALL_RX_BYTS_VSCS,
@@ -573,10 +552,8 @@ public class UncStructIndexEnum {
                UPLL_IDX_EXPD_DRP_RX_BYTS_VSCS
        };
 
-
        public enum val_vtunnel_if_index {
-               UPLL_IDX_DESC_VTNL_IF ,
-               UPLL_IDX_ADMIN_ST_VTNL_IF
+               UPLL_IDX_DESC_VTNL_IF, UPLL_IDX_ADMIN_ST_VTNL_IF
        };
 
        public enum val_vtunnel_if_st_index {
@@ -584,119 +561,241 @@ public class UncStructIndexEnum {
        };
 
        public enum ValDhcpRelayIfStatus {
-               UPLL_DR_IF_INACTIVE("0"),
-               UPLL_DR_IF_ACTIVE("1"),
-               UPLL_DR_IF_STARTING("2"),
-               UPLL_DR_IF_WAITING("3"),
-               UPLL_DR_IF_ERROR("4");
+               UPLL_DR_IF_INACTIVE("0"), UPLL_DR_IF_ACTIVE("1"), UPLL_DR_IF_STARTING(
+                               "2"), UPLL_DR_IF_WAITING("3"), UPLL_DR_IF_ERROR("4");
                private final String value;
 
-
-               private ValDhcpRelayIfStatus(final String value){
+               private ValDhcpRelayIfStatus(final String value) {
                        this.value = value;
                }
 
-               public String getValue(){
+               public String getValue() {
                        return value;
                }
        };
-       
-       public enum  ValVunknowntype {
-                 VUNKNOWN_TYPE_BRIDGE("0") ,
-                                 VUNKNOWN_TYPE_ROUTER("1");
-                 private final String value;
 
+       public enum ValVunknowntype {
+               VUNKNOWN_TYPE_BRIDGE("0"), VUNKNOWN_TYPE_ROUTER("1");
+               private final String value;
+
+               private ValVunknowntype(final String value) {
+                       this.value = value;
+               }
 
-                       private ValVunknowntype(final String value){
-                               this.value = value;
-                       }
+               public String getValue() {
+                       return value;
+               }
+       };
 
-                       public String getValue(){
-                               return value;
-                       }
-                               }; 
-                               
        public enum val_vtep_grp_index {
-               UPLL_IDX_CONTROLLER_ID_VTEPG,
-               UPLL_IDX_DESCRIPTION_VTEPG
+               UPLL_IDX_CONTROLLER_ID_VTEPG, UPLL_IDX_DESCRIPTION_VTEPG
        };
+
        public enum ValVrtIpRouteStIndex {
-                UPLL_IDX_DESTINATION_VIRS,
-                UPLL_IDX_GATEWAY_VIRS,
-                UPLL_IDX_PREFIXLEN_VIRS,
-                UPLL_IDX_FLAGS_VIRS,
-                UPLL_IDX_METRIC_VIRS,
-                UPLL_IDX_USE_VIRS,
-                UPLL_IDX_IF_NAME_VIRS,
-                UPLL_IDX_NW_MONITOR_GR_VIRS,
-                UPLL_IDX_GR_METRIC_VIRS
-               };
-               
-               public enum ValMacEntryIfKind {
-                       UPLL_MAC_ENTRY_BLANK("0"),
-                       UPLL_MAC_ENTRY_TRUNK("1");
-
-                       private final String value;
-
-                       private ValMacEntryIfKind(final String value) {
-                               this.value = value;
-                       }
-
-                       /**
-                        *
-                        * @return the value
-                        */
-                       public String getValue(){
-                               return value;
-                       }
-               };
-               public enum ValAlarmStatus {
-                         UPLL_ALARM_CLEAR("0"),
-                         UPLL_ALARM_RAISE("1");
-
-                               private final String value;
-
-                               private ValAlarmStatus(final String value) {
-                                       this.value = value;
-                               }
-
-                               /**
-                                *
-                                * @return the value
-                                */
-                               public String getValue(){
-                                       return value;
-                               }
-                       };
-                       
-                       
-                       public  enum UpplControllerOperStatus {
-                                UPPL_CONTROLLER_OPER_DOWN("0"),
-                                UPPL_CONTROLLER_OPER_UP("1"),
-                                UPPL_CONTROLLER_OPER_WAITING_AUDIT("2"),
-                                UPPL_CONTROLLER_OPER_AUDITING("3");
-                               private final String value;
-
-
-                               private UpplControllerOperStatus(final String value){
-                                       this.value = value;
-                               }
-
-                               public String getValue(){
-                                       return value;
-                               }
-                       };
-                       public  enum DirtyStatus {
-                               FALSE("0"),
-                               TRUE("1");
-                               private final String value;
-
-                               private DirtyStatus(final String value){
-                                       this.value = value;
-                               }
-
-                               public String getValue(){
-                                       return value;
-                               }
-                       };
-}
\ No newline at end of file
+               UPLL_IDX_DESTINATION_VIRS,
+               UPLL_IDX_GATEWAY_VIRS,
+               UPLL_IDX_PREFIXLEN_VIRS,
+               UPLL_IDX_FLAGS_VIRS,
+               UPLL_IDX_METRIC_VIRS,
+               UPLL_IDX_USE_VIRS,
+               UPLL_IDX_IF_NAME_VIRS,
+               UPLL_IDX_NW_MONITOR_GR_VIRS,
+               UPLL_IDX_GR_METRIC_VIRS
+       };
+
+       public enum ValMacEntryIfKind {
+               UPLL_MAC_ENTRY_BLANK("0"), UPLL_MAC_ENTRY_TRUNK("1");
+
+               private final String value;
+
+               private ValMacEntryIfKind(final String value) {
+                       this.value = value;
+               }
+
+               /**
+                * 
+                * @return the value
+                */
+               public String getValue() {
+                       return value;
+               }
+       };
+
+       public enum ValAlarmStatus {
+               UPLL_ALARM_CLEAR("0"), UPLL_ALARM_RAISE("1");
+
+               private final String value;
+
+               private ValAlarmStatus(final String value) {
+                       this.value = value;
+               }
+
+               /**
+                * 
+                * @return the value
+                */
+               public String getValue() {
+                       return value;
+               }
+       };
+
+       public enum UpplControllerOperStatus {
+               UPPL_CONTROLLER_OPER_DOWN("0"),
+               UPPL_CONTROLLER_OPER_UP("1"),
+               UPPL_CONTROLLER_OPER_WAITING_AUDIT("2"),
+               UPPL_CONTROLLER_OPER_AUDITING("3");
+               private final String value;
+
+               private UpplControllerOperStatus(final String value) {
+                       this.value = value;
+               }
+
+               public String getValue() {
+                       return value;
+               }
+       };
+
+       public enum DirtyStatus {
+               FALSE("0"), TRUE("1");
+               private final String value;
+
+               private DirtyStatus(final String value) {
+                       this.value = value;
+               }
+
+               public String getValue() {
+                       return value;
+               }
+       };
+
+       // U12 ENUM constant
+       public enum valVtnMappingControllerStIndex {
+               UPLL_IDX_SWITCH_ID_VMCS,
+               UPLL_IDX_PORT_NAME_VMCS,
+               UPLL_IDX_LOGICAL_PORT_ID_VMCS,
+               UPLL_IDX_VLAN_ID_VMCS,
+               UPLL_IDX_TAGGED_VMCS,
+               UPLL_IDX_MAP_TYPE_VMCS,
+               UPLL_IDX_VBR_NAME_VMCS,
+               UPLL_IDX_VBR_IF_NAME_VMCS
+       };
+
+       public enum valVtermIndex {
+               UPLL_IDX_CONTROLLER_ID_VTERM,
+               UPLL_IDX_DOMAIN_ID_VTERM,
+               UPLL_IDX_DESC_VTERM
+
+       };
+
+       public enum valVtermStIndex {
+               UPLL_IDX_OPER_STATUS_VTERMS
+
+       };
+
+       public enum valVtermIfIndex {
+               UPLL_IDX_ADMIN_STATUS_VTERMI, UPLL_IDX_DESC_VTERMI, UPLL_IDX_PM_VTERMI
+       };
+
+       public enum valVtermIfStIndex {
+               UPLL_IDX_OPER_STATUS_VTERMIS
+
+       };
+
+       public enum valVtnDataflowIndex {
+               UPLL_IDX_REASON_VVD, UPLL_IDX_CTRLR_DOMAIN_COUNT_VVD
+       };
+
+       public enum valVtnDataflowCmnIndex {
+               UPLL_IDX_CONTROLLER_ID_VVDC,
+               UPLL_IDX_CONTROLLER_TYPE_VVDC,
+               UPLL_IDX_FLOW_ID_VVDC,
+               UPLL_IDX_CREATED_TIME_VVDC,
+               UPLL_IDX_IDLE_TIMEOUT_VVDC,
+               UPLL_IDX_HARD_TIMEOUT_VVDC,
+               UPLL_IDX_INGRESS_VNODE_VVDC,
+               UPLL_IDX_INGRESS_VINTERFACE_VVDC,
+               UPLL_IDX_INGRESS_SWITCH_ID_VVDC,
+               UPLL_IDX_INGRESS_PORT_ID_VVDC,
+               UPLL_IDX_INGRESS_LOGICAL_PORT_ID_VVDC,
+               UPLL_IDX_INGRESS_DOMAIN_VVDC,
+               UPLL_IDX_EGRESS_VNODE_VVDC,
+               UPLL_IDX_EGRESS_VINTERFACE_VVDC,
+               UPLL_IDX_EGRESS_SWITCH_ID_VVDC,
+               UPLL_IDX_EGRESS_PORT_ID_VVDC,
+               UPLL_IDX_EGRESS_LOGICAL_PORT_ID_VVDC,
+               UPLL_IDX_EGRESS_DOMAIN_VVDC,
+               UPLL_IDX_MATCH_COUNT_VVDC,
+               UPLL_IDX_ACTION_COUNT_VVDC,
+               UPLL_IDX_PATH_INFO_COUNT_VVDC
+       };
+
+       public enum valVtnDataflowPathInfo {
+               UPLL_IDX_IN_VNODE_VVDPI,
+               UPLL_IDX_IN_VIF_VVDPI,
+               UPLL_IDX_OUT_VNODE_VVDPI,
+               UPLL_IDX_OUT_VIF_VVDPI,
+               UPLL_IDX_VLINK_FLAG_VVDPI,
+               UPLL_IDX_STATUS_VVDPI
+
+       };
+
+       public enum valVtnDataflowPathInfoVlinkType {
+               UPLL_DATAFLOW_PATH_VLINK_NOT_EXISTS, UPLL_DATAFLOW_PATH_VLINK_EXISTS
+       };
+
+       public enum valVtnDataflowPathInfoStatusType {
+               UPLL_DATAFLOW_PATH_STATUS_NORMAL, UPLL_DATAFLOW_PATH_STATUS_DROP
+       };
+
+       public enum ValDataFlowMatchVmaskvalue {
+               UNC_MATCH_MASK_INVALID, UNC_MATCH_MASK_VALID;
+
+       };
+
+       public enum UncDataflowFlowMatchType {
+               UNC_MATCH_IN_PORT,
+               UNC_MATCH_DL_SRC,
+               UNC_MATCH_DL_DST,
+               UNC_MATCH_DL_TYPE,
+               UNC_MATCH_VLAN_ID,
+               UNC_MATCH_VLAN_PCP,
+               UNC_MATCH_IP_TOS,
+               UNC_MATCH_IP_PROTO,
+               UNC_MATCH_IPV4_SRC,
+               UNC_MATCH_IPV4_DST,
+               UNC_MATCH_IPV6_SRC,
+               UNC_MATCH_IPV6_DST,
+               UNC_MATCH_TP_SRC,
+               UNC_MATCH_TP_DST;
+       }
+
+       public enum UncDataflowFlowActionType {
+               UNC_ACTION_OUTPUT,
+               UNC_ACTION_SET_ENQUEUE,
+               UNC_ACTION_SET_DL_SRC,
+               UNC_ACTION_SET_DL_DST,
+               UNC_ACTION_SET_VLAN_ID,
+               UNC_ACTION_SET_VLAN_PCP,
+               UNC_ACTION_STRIP_VLAN,
+               UNC_ACTION_SET_IPV4_SRC,
+               UNC_ACTION_SET_IPV4_DST,
+               UNC_ACTION_SET_IP_TOS,
+               UNC_ACTION_SET_TP_SRC,
+               UNC_ACTION_SET_TP_DST,
+               UNC_ACTION_SET_IPV6_SRC,
+               UNC_ACTION_SET_IPV6_DST;
+
+       };
+
+       public enum UncDataflowReason {
+               UNC_DF_RES_SUCCESS,
+               UNC_DF_RES_OPERATION_NOT_SUPPORTED,
+               UNC_DF_RES_EXCEEDS_FLOW_LIMIT,
+               UNC_DF_RES_CTRLR_DISCONNECTED,
+               UNC_DF_RES_EXCEEDS_HOP_LIMIT,
+               UNC_DF_RES_DST_NOT_REACHED,
+               UNC_DF_RES_FLOW_NOT_FOUND,
+               UNC_DF_RES_SYSTEM_ERROR
+       };
+
+}
index f3b9277932ed983d7c31d0a13b74a1f5bf0b6cc3..bc5a32c1d76705d849883e6808685433e8b1a6de 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -15,30 +15,30 @@ public class UncTCEnums {
 
        public enum ServiceID {
 
-               TC_CONFIG_SERVICES, 
-               TC_CANDIDATE_SERVICES, 
-               TC_STARTUP_DB_SERVICES, 
-               TC_READ_ACCESS_SERVICES, 
-               TC_AUTO_SAVE_SERVICES, 
+               TC_CONFIG_SERVICES,
+               TC_CANDIDATE_SERVICES,
+               TC_STARTUP_DB_SERVICES,
+               TC_READ_ACCESS_SERVICES,
+               TC_AUTO_SAVE_SERVICES,
                TC_AUDIT_SERVICES;
 
        }
 
        public enum ServiceType {
-               TC_OP_CONFIG_ACQUIRE, 
-               TC_OP_CONFIG_RELEASE, 
-               TC_OP_CONFIG_ACQUIRE_FORCE, 
-               TC_OP_CANDIDATE_COMMIT, 
-               TC_OP_CANDIDATE_ABORT, 
-               TC_OP_RUNNING_SAVE, 
-               TC_OP_CLEAR_STARTUP, 
-               TC_OP_READ_ACQUIRE, 
-               TC_OP_READ_RELEASE, 
-               TC_OP_AUTOSAVE_GET, 
-               TC_OP_AUTOSAVE_ENABLE, 
-               TC_OP_AUTOSAVE_DISABLE, 
-               TC_OP_USER_AUDIT, 
-               TC_OP_DRIVER_AUDIT, 
+               TC_OP_CONFIG_ACQUIRE,
+               TC_OP_CONFIG_RELEASE,
+               TC_OP_CONFIG_ACQUIRE_FORCE,
+               TC_OP_CANDIDATE_COMMIT,
+               TC_OP_CANDIDATE_ABORT,
+               TC_OP_RUNNING_SAVE,
+               TC_OP_CLEAR_STARTUP,
+               TC_OP_READ_ACQUIRE,
+               TC_OP_READ_RELEASE,
+               TC_OP_AUTOSAVE_GET,
+               TC_OP_AUTOSAVE_ENABLE,
+               TC_OP_AUTOSAVE_DISABLE,
+               TC_OP_USER_AUDIT,
+               TC_OP_DRIVER_AUDIT,
                TC_OP_INVALID
        }
 
@@ -46,35 +46,35 @@ public class UncTCEnums {
 
                /* System Fail over */
 
-               TC_OPER_FAILURE(-11, 500, "Operation failure"),
+               TC_OPER_FAILURE(-11, 50000, "Operation failure"),
 
                /* Invalid Input Values Passed */
 
-               TC_OPER_INVALID_INPUT(-10, 500, "Invalid Input Values Passed"),
+               TC_OPER_INVALID_INPUT(-10, 50000, "Invalid Input Values Passed"),
 
                TC_OPER_SUCCESS(0, 200, "Success"),
 
-               TC_CONFIG_NOT_PRESENT(1, 404, "Configuration not present"),
+               TC_CONFIG_NOT_PRESENT(100, 50000, "Configuration not present"),
 
-               TC_CONFIG_PRESENT(2, 503, "Service unavailable"),
+               TC_CONFIG_PRESENT(101, 50301, "Server Busy"),
 
-               TC_INVALID_CONFIG_ID(3, 400, "Invalid config id"),
+               TC_INVALID_CONFIG_ID(102, 50000, "Invalid config id"),
 
-               TC_INVALID_OPERATION_TYPE(4, 500, "Invalid operation type"),
+               TC_INVALID_OPERATION_TYPE(103, 50000, "Invalid operation type"),
 
-               TC_INVALID_SESSION_ID(5, 400, "Invalid session id"),
+               TC_INVALID_SESSION_ID(104, 50000, "Invalid session id"),
 
-               TC_INVALID_STATE(6, 503, "Invalid state"),
+               TC_INVALID_STATE(105, 50000, "Invalid state"),
 
-               TC_OPER_ABORT(7, 500, "Operation abort"),
+               TC_OPER_ABORT(106, 50000, "Operation abort"),
 
-               TC_SESSION_ALREADY_ACTIVE(8, 503, "Service unavailable"),
+               TC_SESSION_ALREADY_ACTIVE(107, 50301, "Server Busy"),
 
-               TC_SESSION_NOT_ACTIVE(9, 404, "Session not active"),
+               TC_SESSION_NOT_ACTIVE(108, 50000, "Session not active"),
 
-               TC_SYSTEM_BUSY(10, 503, "System busy"),
+               TC_SYSTEM_BUSY(109, 50301, "Server Busy"),
 
-               TC_SYSTEM_FAILURE(11, 500, "System failure");
+               TC_SYSTEM_FAILURE(110, 50000, "System failure");
 
                private final String message;
                private final int code;
@@ -101,28 +101,25 @@ public class UncTCEnums {
        }
 
        public enum RequestIndex {
-               TC_REQ_OP_TYPE_INDEX, 
-               TC_REQ_SESSION_ID_INDEX, 
-               TC_REQ_ARG_INDEX
+               TC_REQ_OP_TYPE_INDEX, TC_REQ_SESSION_ID_INDEX, TC_REQ_ARG_INDEX
        }
 
        public enum ResponseIndex {
-               TC_RES_OP_TYPE_INDEX, 
-               TC_RES_SESSION_ID_INDEX, 
-               TC_RES_OP_STATUS_INDEX, 
+               TC_RES_OP_TYPE_INDEX,
+               TC_RES_SESSION_ID_INDEX,
+               TC_RES_OP_STATUS_INDEX,
                TC_RES_VALUE_INDEX;
        }
 
        public enum CandidateOperRespIndex {
-               TC_CAND_RES_OP_TYPE_INDEX, 
-               TC_CAND_RES_SESSION_ID_INDEX, 
-               TC_CAND_RES_CONFIG_ID_INDEX, 
+               TC_CAND_RES_OP_TYPE_INDEX,
+               TC_CAND_RES_SESSION_ID_INDEX,
+               TC_CAND_RES_CONFIG_ID_INDEX,
                TC_CAND_RES_OP_STATUS_INDEX;
        }
 
        public enum AutoSave {
-               TC_AUTOSAVE_DISABLED("0"), 
-               TC_AUTOSAVE_ENABLED("1");
+               TC_AUTOSAVE_DISABLED("0"), TC_AUTOSAVE_ENABLED("1");
 
                private final String value;
 
index f3b8b42fd5165c7c99f9189a217cc729e7cc36bc..2bafef39c6d8356b270309428063458f27934612 100644 (file)
@@ -1,34 +1,40 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.vtn.javaapi.ipc.enums;
 
+package org.opendaylight.vtn.javaapi.ipc.enums;
 
 public class UncUPLLEnums {
 
-       public static final String UPLL_IPC_CHANNEL_NAME = "lgcnwd";  /* UPLL IPC Channel Name */
-       public static final String UPLL_IPC_SERVICE_NAME = "upll";    /* UPLL IPC Service Name */
+       public static final String UPLL_IPC_CHANNEL_NAME = "lgcnwd"; /*
+                                                                                                                        * UPLL IPC
+                                                                                                                        * Channel Name
+                                                                                                                        */
+       public static final String UPLL_IPC_SERVICE_NAME = "upll"; /*
+                                                                                                                        * UPLL IPC
+                                                                                                                        * Service Name
+                                                                                                                        */
 
        /* UPLL IPC Service Ids */
-       public enum ServiceID{
-         UPLL_EDIT_SVC_ID,               /* Key Tree edit services */
-         UPLL_READ_SVC_ID,               /* Key Tree read services */
-         UPLL_CONTROL_SVC_ID,            /* Key Tree control services */
-         UPLL_GLOBAL_CONFIG_SVC_ID;      /* UPLL GlobalConfig services */
+       public enum ServiceID {
+               UPLL_EDIT_SVC_ID, /* Key Tree edit services */
+               UPLL_READ_SVC_ID, /* Key Tree read services */
+               UPLL_CONTROL_SVC_ID, /* Key Tree control services */
+               UPLL_GLOBAL_CONFIG_SVC_ID; /* UPLL GlobalConfig services */
        }
 
        /* UPLL IPC Operations supported under GlobalConfig Service ID */
-       public enum UpllGlobalConfigOpT{
-         UPLL_IS_CANDIDATE_DIRTY_OP(101),
-         UPLL_IMPORT_CTRLR_CONFIG_OP(102),
-         UPLL_MERGE_IMPORT_CONFIG_OP(103),
-         UPLL_CLEAR_IMPORT_CONFIG_OP(104),
-         UPLL_IS_KEY_TYPE_IN_USE_OP(105);
+       public enum UpllGlobalConfigOpT {
+               UPLL_IS_CANDIDATE_DIRTY_OP(101),
+               UPLL_IMPORT_CTRLR_CONFIG_OP(102),
+               UPLL_MERGE_IMPORT_CONFIG_OP(103),
+               UPLL_CLEAR_IMPORT_CONFIG_OP(104),
+               UPLL_IS_KEY_TYPE_IN_USE_OP(105);
 
                private final int value;
 
@@ -42,8 +48,7 @@ public class UncUPLLEnums {
        }
 
        /* Event Types generated by UPLL */
-       public enum EventType{
-         UPLL_EV_CONFIG_NOTIFICATION,
-         UPLL_EV_OPER_NOTIFICATION;
+       public enum EventType {
+               UPLL_EV_CONFIG_NOTIFICATION, UPLL_EV_OPER_NOTIFICATION;
        }
 }
index 3ac8e86b20d3f850063937a4a247eb28f24aab53..08eb0a89e9a5767b61da7eea6921aeafd2cb4323 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -13,53 +13,44 @@ public class UncUPPLEnums {
        public static final String UPPL_IPC_CHN_NAME = "phynwd";
        public static final String UPPL_IPC_SVC_NAME = "uppl";
 
-       public enum SystemState{
-         SYSTEM_ST_SIMPLEX,
-         SYSTEM_ST_ACTIVE,
-         SYSTEM_ST_STANDBY;
+       public enum SystemState {
+               SYSTEM_ST_SIMPLEX, SYSTEM_ST_ACTIVE, SYSTEM_ST_STANDBY;
        }
 
-       public enum ControllerOpStatus{
-         CONTROLLER_OPER_DOWN,
-         CONTROLLER_OPER_UP,
-         CONTROLLER_OPER_AUDIT_WAITING,
-         CONTROLLER_OPER_AUDIT_FAILED,
+       public enum ControllerOpStatus {
+               CONTROLLER_OPER_DOWN,
+               CONTROLLER_OPER_UP,
+               CONTROLLER_OPER_AUDIT_WAITING,
+               CONTROLLER_OPER_AUDIT_FAILED,
        }
 
-       public enum AuditStatus{
-         AUDIT_DISABLED,
-         AUDIT_ENABLED;
+       public enum AuditStatus {
+               AUDIT_DISABLED, AUDIT_ENABLED;
        }
 
-       public enum ServiceID{
-         UPPL_SVC_CONFIGREQ,
-         UPPL_SVC_READREQ,
-         UPPL_SVC_GLOBAL_CONFIG;
+       public enum ServiceID {
+               UPPL_SVC_CONFIGREQ, UPPL_SVC_READREQ, UPPL_SVC_GLOBAL_CONFIG;
        }
 
-       public enum RowStatus{
-         CREATED,
-         UPDATED,
-         DELETED,
-         ROW_VALID,
-         ROW_INVALID,
-         APPLIED,
-         NOTAPPLIED,
-         PARTIALLY_APPLIED;
+       public enum RowStatus {
+               CREATED,
+               UPDATED,
+               DELETED,
+               ROW_VALID,
+               ROW_INVALID,
+               APPLIED,
+               NOTAPPLIED,
+               PARTIALLY_APPLIED;
        }
 
-       public enum Valid{
-         INVALID,
-         VALID,
-         VALID_WITH_NO_VALUE,
-         NOT_SUPPORTED,
-         NOT_SET
+       public enum Valid {
+               INVALID, VALID, VALID_WITH_NO_VALUE, NOT_SUPPORTED, NOT_SET
        }
 
-       public enum UncAddlOperationT{
-         UNC_OP_IS_CANDIDATE_DIRTY,
-         UNC_OP_IMPORT_CONTROLLER_CONFIG,
-         UNC_OP_MERGE_CONTROLLER_CONFIG,
-         UNC_OP_CLEAR_IMPORT_CONFIG;
+       public enum UncAddlOperationT {
+               UNC_OP_IS_CANDIDATE_DIRTY,
+               UNC_OP_IMPORT_CONTROLLER_CONFIG,
+               UNC_OP_MERGE_CONTROLLER_CONFIG,
+               UNC_OP_CLEAR_IMPORT_CONFIG;
        }
 }
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/enums/package-info.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/enums/package-info.java
new file mode 100644 (file)
index 0000000..02641aa
--- /dev/null
@@ -0,0 +1,14 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * Package contains Java API Enums .
+ */
+package org.opendaylight.vtn.javaapi.ipc.enums;
+
index b7ab0653d4d5fcb257f73cb3e7ac396b958ef79d..7465493b3735de246e0227fc4aae9259a02994b2 100644 (file)
@@ -24,122 +24,122 @@ java.0=Success
 south.0=Request successfully processed
 
 key.1=UPLL_RC_ERR_GENERIC
-code.1=500
+code.1=50000
 java.1=Internal Server Error
 south.1=Generic error
 
 key.2=UPLL_RC_ERR_BAD_REQUEST
-code.2=400
+code.2=40001
 java.2=The specified parameter(s) is(are) invalid
 south.2=The request message format is bad
 
 key.3=UPLL_RC_ERR_BAD_CONFIG_OR_SESSION_ID
-code.3=400
+code.3=50000
 java.3=The specified parameter(s) is(are) invalid
 south.3=The given session does not have the config lock
 
 key.4=UPLL_RC_ERR_NO_SUCH_OPERATION
-code.4=500
+code.4=50000
 java.4=Internal Server Error
 south.4=Not a valid operation
 
 key.5=UPLL_RC_ERR_INVALID_OPTION1
-code.5=500
+code.5=50000
 java.5=Internal Server Error
 south.5=Not a valid option1
 
 key.6=UPLL_RC_ERR_INVALID_OPTION2
-code.6=500
+code.6=50000
 java.6=Internal Server Error
 south.6=Not a valid option2
 
 key.7=UPLL_RC_ERR_CFG_SYNTAX
-code.7=400
+code.7=40001
 java.7=The specified parameter(s) is(are) invalid
 south.7=Syntax check failed
 
 key.8=UPLL_RC_ERR_CFG_SEMANTIC
-code.8=400
+code.8=40001
 java.8=The specified parameter(s) is(are) invalid
 south.8=Semantic check failed
 
 key.9=UPLL_RC_ERR_RESOURCE_DISCONNECTED
-code.9=500
+code.9=50000
 java.9=Internal Server Error
 south.9=Resource (DBMS, Physical, Driver) is disconnected
 
 key.10=UPLL_RC_ERR_DB_ACCESS
-code.10=500
+code.10=50000
 java.10=Internal Server Error
 south.10=DBMS access (read / write / transaction) failure
 
 key.11=UPLL_RC_ERR_NO_SUCH_INSTANCE
-code.11=404
+code.11=40400
 java.11=The specified resource is not found
 south.11=Instance specified by key does not exist
 
 key.12=UPLL_RC_ERR_NO_SUCH_NAME
-code.12=500
+code.12=50000
 java.12=Internal Server Error
 south.12=The specified keytype is unknown
 
 key.13=UPLL_RC_ERR_NO_SUCH_DATATYPE
-code.13=500
+code.13=50000
 java.13=Internal Server Error
 south.13=The specified datatype is unknown
 
 key.14=UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR
-code.14=500
+code.14=50000
 java.14=Internal Server Error
 south.14=The operation not supported by controller
 
 key.15=UPLL_RC_ERR_NOT_SUPPORTED_BY_STANDBY
-code.15=503
+code.15=50301
 java.15=Service is unavailable
 south.15=The operation not supported by standby UPLL
 
 key.16=UPLL_RC_ERR_PARENT_DOES_NOT_EXIST
-code.16=404
+code.16=40400
 java.16=The specified resource is not found
 south.16=For creating the given keytype instance, its parent does not exist
 
 key.17=UPLL_RC_ERR_INSTANCE_EXISTS
-code.17=409
+code.17=40901
 java.17=The specified resource already exists
 south.17=The given keytype instance cannot be created because it already exists
 
 key.18=UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT
-code.18=405
+code.18=50000
 java.18=Method is not allowed for the specified URI
 south.18=Not allowed for this datatype
 
 key.19=UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT
-code.19=405
+code.19=50000
 java.19=Method is not allowed for the specified URI
 south.19=Not allowed for this KT
 
 key.20=UPLL_RC_ERR_NOT_ALLOWED_AT_THIS_TIME
-code.20=405
+code.20=50000
 java.20=Method is not allowed for the specified URI
 south.20=Not allowed for at this time
 
 key.21=UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT
-code.21=500
+code.21=40902
 java.21=Internal Server Error
 south.21=The given operation exceeds the resource limit
 
 key.22=UPLL_RC_ERR_MERGE_CONFLICT
-code.22=500
+code.22=50000
 java.22=Internal Server Error
 south.22=Merge failed as there is a merge conflict
 
 key.23=UPLL_RC_ERR_CANDIDATE_IS_DIRTY
-code.23=500
+code.23=50000
 java.23=Internal Server Error
 south.23=The operation could not be performed because there are uncommited \
          changes in the candidate configuration
 
 key.24=UPLL_RC_ERR_SHUTTING_DOWN
-code.24=503
+code.24=50301
 java.24=Service is unavailable
 south.24=UPLL daemon is shutting down and cannot process the request
index d878f2d941ecd6a70f9741e4d8f5fb431674f7a0..62eaebf7b4c632df5a0de1275f3ef666a4eb33f8 100644 (file)
@@ -23,332 +23,337 @@ code.0=200
 java.0=Success
 south.0=Request successfully processed
 
-key.1=UPPL_RC_FAILURE
-code.1=500
-java.1=Internal Server Error
-south.1=Resource allocation failure
+key.1=UPPL_RC_ERR_BAD_REQUEST
+code.1=40001
+java.1=The specified parameter(s) is(are) invalid
+south.1=The request message format is bad
 
-key.2=UPPL_RC_ERR_BAD_REQUEST
-code.2=400
-java.2=The specified parameter(s) is(are) invalid
-south.2=The request message format is bad
+key.2=UPPL_RC_FAILURE
+code.2=50000
+java.2=Internal Server Error
+south.2=Resource allocation failure
 
 key.3=UPPL_RC_ERR_INVALID_CONFIGID
-code.3=400
+code.3=50000
 java.3=The specified parameter(s) is(are) invalid
 south.3=Not a valid config id
 
 key.4=UPPL_RC_ERR_INVALID_SESSIONID
-code.4=400
+code.4=50000
 java.4=The specified parameter(s) is(are) invalid
 south.4=Not a valid session id
 
 key.5=UPPL_RC_ERR_VERSION_NOT_SUPPORTED
-code.5=400
+code.5=50000
 java.5=The specified parameter(s) is(are) invalid
 south.5=The specified version is not supported
 
 key.6=UPPL_RC_ERR_KEYTYPE_NOT_SUPPORTED
-code.6=400
+code.6=50000
 java.6=The specified parameter(s) is(are) invalid
 south.6=The specified keytype is not supported
 
 key.7=UPPL_RC_ERR_DATATYPE_NOT_SUPPORTED
-code.7=500
+code.7=50000
 java.7=Internal Server Error
 south.7=The specified datatype is not supported
 
 key.8=UPPL_RC_ERR_ATTRIBUTE_NOT_SUPPORTED
-code.8=500
+code.8=50000
 java.8=Internal Server Error
 south.8=The specified attribute is not supported
 
 key.9=UPPL_RC_ERR_OPERATION_NOT_SUPPORTED
-code.9=500
+code.9=50000
 java.9=Internal Server Error
 south.9=The specified operation is not supported
 
 key.10=UPPL_RC_ERR_OPERATION_NOT_ALLOWED
-code.10=500
+code.10=50000
 java.10=Internal Server Error
 south.10=The specified operation is not allowed
 
 key.11=UPPL_RC_ERR_INVALID_OPTION1
-code.11=500
+code.11=50000
 java.11=Internal Server Error
 south.11=Not a valid option1
 
 key.12=UPPL_RC_ERR_INVALID_OPTION2
-code.12=500
+code.12=50000
 java.12=Internal Server Error
 south.12=Not a valid option2
 
 key.13=UPPL_RC_ERR_CFG_SYNTAX
-code.13=400
+code.13=40001
 java.13=The specified parameter(s) is(are) invalid
 south.13=Syntax check failed
 
 key.14=UPPL_RC_ERR_CFG_SEMANTIC
-code.14=400
+code.14=40001
 java.14=The specified parameter(s) is(are) invalid
 south.14=Semantic check failed
 
 key.15=UPPL_RC_ERR_PARENT_DOES_NOT_EXIST
-code.15=400
+code.15=40400
 java.15=The specified parameter(s) is(are) invalid
 south.15=For creating the given keytype instance, its parent does not exist
 
 key.16=UPPL_RC_ERR_NO_SUCH_INSTANCE
-code.16=404
+code.16=40400
 java.16=The specified resource is not found
 south.16=Instance specified by key does not exist
 
 key.17=UPPL_RC_ERR_INSTANCE_EXISTS
-code.17=409
+code.17=40901
 java.17=The specified resource already exists
 south.17=The given keytype instance cannot be created because it already exists
 
 key.18=UPPL_RC_ERR_EXCEEDS_RESOURCE_LIMIT
-code.18=500
+code.18=40902
 java.18=Internal Server Error
 south.18=The given operation exceeds the resource limit
 
 key.19=UPPL_RC_ERR_DB_ACCESS
-code.19=500
+code.19=50000
 java.19=Internal Server Error
 south.19=DB Access Error
 
 key.20=UPPL_RC_ERR_NOT_SUPPORTED_BY_STANDBY
-code.20=503
+code.20=50301
 java.20=Service is unavailable
 south.20=The operation not supported by standby UPPL
 
 key.21=UPPL_RC_ERR_RESOURCE_DISCONNECTED
-code.21=500
+code.21=50000
 java.21=Internal Server Error
 south.21=Resource disconnected
 
 key.22=UPPL_RC_ERR_INVALID_STATE
-code.22=503
+code.22=50301
 java.22=Service is unavailable
 south.22=Invalid state
 
 key.23=UPPL_RC_ERR_MERGE_CONFLICT
-code.23=500
+code.23=50000
 java.23=Internal Server Error
 south.23=Merge failed as there is a merge conflict
 
 key.24=UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION
-code.24=500
+code.24=50000
 java.24=Internal Server Error
 south.24=Resource allocation failure
 
 key.25=UPPL_RC_ERR_DRIVER_COMMUNICATION_FAILURE
-code.25=500
+code.25=50000
 java.25=Internal Server Error
 south.25=Driver Communication failure
 
 key.26=UPPL_RC_ERR_LOGICAL_COMMUNICATION_FAILURE
-code.26=500
+code.26=50000
 java.26=Internal Server Error
 south.26=Logical Communication failure
 
 key.27=UPPL_RC_ERR_SHUTTING_DOWN
-code.27=503
+code.27=50301
 java.27=Service is unavailable
 south.27=UPPL daemon is shutting down and cannot process the request
 
 key.28=UPPL_RC_ERR_IPC_WRITE_ERROR
-code.28=500
+code.28=50000
 java.28=Internal Server Error
 south.28=IPC write error
 
 key.29=UPPL_RC_ERR_DB_UPDATE
-code.29=500
+code.29=50000
 java.29=Internal Server Error
 south.29=Database update error
 
 key.30=UPPL_RC_ERR_DB_GET
-code.30=500
+code.30=50000
 java.30=Internal Server Error
 south.30=Database get error
 
 key.31=UPPL_RC_ERR_DB_DELETE
-code.31=500
+code.31=50000
 java.31=Internal Server Error
 south.31=Database delete error
 
 key.32=UPPL_RC_ERR_DB_CREATE
-code.32=500
+code.32=50000
 java.32=Internal Server Error
 south.32=Database create error
 
 key.33=UPPL_RC_ERR_CANDIDATE_IS_DIRTY
-code.33=500
+code.33=50000
 java.33=Internal Server Error
 south.33=Candidate is dirty
 
 key.34=UPPL_RC_ERR_ATTRIBUTE_NOT_FOUND
-code.34=500
+code.34=50000
 java.34=Internal Server Error
 south.34=The specified attribute is not found
 
 key.35=UPPL_RC_ERR_NOTIFICATION_NOT_SUPPORTED
-code.35=500
+code.35=50000
 java.35=Internal Server Error
 south.35=Notification not supported
 
 key.36=UPPL_RC_ERR_NOTIFICATION_HANDLING_FAILED
-code.36=500
+code.36=50000
 java.36=Internal Server Error
 south.36=Notification handling failed
 
 key.37=UPPL_RC_ERR_ALARM_API
-code.37=500
+code.37=50000
 java.37=Internal Server Error
 south.37=Alarm API Error
 
 key.38=UPPL_RC_ERR_CONF_FILE_READ
-code.38=500
+code.38=50000
 java.38=Internal Server Error
 south.38=Conf file read
 
 key.39=UPPL_RC_ERR_CAP_FILE_READ
-code.39=500
+code.39=50000
 java.39=Internal Server Error
 south.39=Cap file read
 
 key.40=UPPL_RC_ERR_DB_OPER_STATUS
-code.40=500
+code.40=50000
 java.40=Internal Server Error
 south.40=Database operation status error
 
-key.41=UPPL_RC_ERR_AUDIT_NOT_IN_PROGRESS
-code.41=500
+key.41=UNC_UPPL_RC_ERR_CTRLR_DISCONNECTED
+code.41=50000
 java.41=Internal Server Error
-south.41=Audit not in progress
+south.41=Database operation status error
 
-key.42=UPPL_RC_ERR_FATAL_COPY_CONFIG
-code.42=500
+key.42=UPPL_RC_ERR_AUDIT_NOT_IN_PROGRESS
+code.42=50000
 java.42=Internal Server Error
-south.42=Fatal copy config
+south.42=Audit not in progress
 
-key.43=UPPL_RC_ERR_FATAL_COPYDB_CANDID_RUNNING
-code.43=500
+key.43=UPPL_RC_ERR_FATAL_COPY_CONFIG
+code.43=50000
 java.43=Internal Server Error
-south.43=Fatal copy database candidate-running
+south.43=Fatal copy config
 
-key.44=UPPL_RC_ERR_COPY_CANDID_TO_RUNNING
-code.44=500
+key.44=UPPL_RC_ERR_FATAL_COPYDB_CANDID_RUNNING
+code.44=50000
 java.44=Internal Server Error
-south.44=Fatal copy database candidate to running
+south.44=Fatal copy database candidate-running
 
-key.45=UPPL_RC_ERR_COPY_RUNNING_TO_CANDID
-code.45=500
+key.45=UPPL_RC_ERR_COPY_CANDID_TO_RUNNING
+code.45=50000
 java.45=Internal Server Error
-south.45=Fatal copy database running to candidate
+south.45=Fatal copy database candidate to running
 
-key.46=UPPL_RC_ERR_INVALID_CANDID_CONFIG
-code.46=500
+key.46=UPPL_RC_ERR_COPY_RUNNING_TO_CANDID
+code.46=50000
 java.46=Internal Server Error
-south.46=Invalid candidate config
+south.46=Fatal copy database running to candidate
 
-key.47=UPPL_RC_ERR_WRITE_ENTITY_DB
-code.47=500
+key.47=UPPL_RC_ERR_INVALID_CANDID_CONFIG
+code.47=50000
 java.47=Internal Server Error
-south.47=Write entity database error
+south.47=Invalid candidate config
 
-key.48=UPPL_RC_ERR_COPY_RUNNING_TO_START
-code.48=500
+key.48=UPPL_RC_ERR_WRITE_ENTITY_DB
+code.48=50000
 java.48=Internal Server Error
-south.48=Fatal copy database running to start
+south.48=Write entity database error
 
-key.49=UPPL_RC_ERR_COPY_STARTUP_TO_CANDID
-code.49=500
+key.49=UPPL_RC_ERR_COPY_RUNNING_TO_START
+code.49=50000
 java.49=Internal Server Error
-south.49=Fatal copy database startup to candidate
+south.49=Fatal copy database running to start
 
-key.50=UPPL_RC_ERR_CLEAR_DB
-code.50=500
+key.50=UPPL_RC_ERR_COPY_STARTUP_TO_CANDID
+code.50=50000
 java.50=Internal Server Error
-south.50=Clear database
+south.50=Fatal copy database startup to candidate
 
-key.51=UPPL_RC_ERR_IMPORT_START_INVALID_DRIVER_RESPONSE
-code.51=500
+key.51=UPPL_RC_ERR_CLEAR_DB
+code.51=50000
 java.51=Internal Server Error
-south.51=Invalid driver response
+south.51=Clear database
 
-key.52=UPPL_RC_ERR_IMPORT_FAILURE
-code.52=500
+key.52=UPPL_RC_ERR_IMPORT_START_INVALID_DRIVER_RESPONSE
+code.52=50000
 java.52=Internal Server Error
-south.52=Import failure
+south.52=Invalid driver response
 
-key.53=UPPL_RC_ERR_IMPORT_MERGE_FAILURE
-code.53=500
+key.53=UPPL_RC_ERR_IMPORT_FAILURE
+code.53=50000
 java.53=Internal Server Error
-south.53=Merge failure
+south.53=Import failure
 
-key.54=UPPL_RC_ERR_COMMIT_OPERATION_NOT_ALLOWED
-code.54=500
+key.54=UPPL_RC_ERR_IMPORT_MERGE_FAILURE
+code.54=50000
 java.54=Internal Server Error
-south.54=Commit operation not allowed
+south.54=Merge failure
 
-key.55=UPPL_RC_ERR_COMMIT_UPDATE_DRIVER_FAILURE
-code.55=500
+key.55=UPPL_RC_ERR_COMMIT_OPERATION_NOT_ALLOWED
+code.55=50000
 java.55=Internal Server Error
-south.55=Commit update driver failure
+south.55=Commit operation not allowed
 
-key.56=UPPL_RC_ERR_TRANSACTION_START
-code.56=500
+key.56=UPPL_RC_ERR_COMMIT_UPDATE_DRIVER_FAILURE
+code.56=50000
 java.56=Internal Server Error
-south.56=Transaction start error
+south.56=Commit update driver failure
 
-key.57=UPPL_RC_ERR_INVALID_TRANSACT_START_REQ
-code.57=500
+key.57=UPPL_RC_ERR_TRANSACTION_START
+code.57=50000
 java.57=Internal Server Error
-south.57=Invalid transaction start request
+south.57=Transaction start error
 
-key.58=UPPL_RC_ERR_TRANSACTION_START_INVALID_DRIVER_RESPONSE
-code.58=500
+key.58=UPPL_RC_ERR_INVALID_TRANSACT_START_REQ
+code.58=50000
 java.58=Internal Server Error
-south.58=Invalid transaction start invalid driver response
+south.58=Invalid transaction start request
 
-key.59=UPPL_RC_ERR_VOTE_DB_INVALID
-code.59=500
+key.59=UPPL_RC_ERR_TRANSACTION_START_INVALID_DRIVER_RESPONSE
+code.59=50000
 java.59=Internal Server Error
-south.59=Vote database invalid
+south.59=Invalid transaction start invalid driver response
 
-key.60=UPPL_RC_ERR_VOTE_INVALID_REQ
-code.60=500
+key.60=UPPL_RC_ERR_VOTE_DB_INVALID
+code.60=50000
 java.60=Internal Server Error
-south.60=Vote invalid request
+south.60=Vote database invalid
 
-key.61=UPPL_RC_ERR_AUDIT_FAILURE
-code.61=500
+key.61=UPPL_RC_ERR_VOTE_INVALID_REQ
+code.61=50000
 java.61=Internal Server Error
-south.61=Audit failure
+south.61=Vote invalid request
 
-key.62=UPPL_RC_ERR_IMPORT_IN
-code.62=500
+key.62=UPPL_RC_ERR_AUDIT_FAILURE
+code.62=50000
 java.62=Internal Server Error
-south.62=Import error
+south.62=Audit failure
 
-key.63=UPPL_RC_ERR_ABORT_AUDIT
-code.63=500
+key.63=UPPL_RC_ERR_IMPORT_IN
+code.63=50000
 java.63=Internal Server Error
-south.63=Abort audit
+south.63=Import error
 
-key.64=UPPL_RC_ERR_ABORT_TRANSACTION
-code.64=500
+key.64=UPPL_RC_ERR_ABORT_AUDIT
+code.64=50000
 java.64=Internal Server Error
-south.64=Abort transaction
+south.64=Abort audit
 
-key.65=UPPL_RC_ERR_MANDATORY_ATTRIB_NULL_VALUE
-code.65=500
+key.65=UPPL_RC_ERR_ABORT_TRANSACTION
+code.65=50000
 java.65=Internal Server Error
-south.65=Mandatory attribute null value
+south.65=Abort transaction
 
-key.66=UPPL_RC_ERR_MANDATORY_ATTRIB_INVALID
-code.66=500
+key.66=UPPL_RC_ERR_MANDATORY_ATTRIB_NULL_VALUE
+code.66=50000
 java.66=Internal Server Error
-south.66=Mandatory attribute invalid
+south.66=Mandatory attribute null value
+
+key.67=UPPL_RC_ERR_MANDATORY_ATTRIB_INVALID
+code.67=50000
+java.67=Internal Server Error
+south.67=Mandatory attribute invalid
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/package-info.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/ipc/package-info.java
new file mode 100644 (file)
index 0000000..0310d0b
--- /dev/null
@@ -0,0 +1,15 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * Package contains Java API IPC Client classes that 
+ * communicate with IPC server.
+ */
+package org.opendaylight.vtn.javaapi.ipc;
+
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/beans/FreeCounterBean.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/beans/FreeCounterBean.java
new file mode 100644 (file)
index 0000000..f473674
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.openstack.beans;
+
+/**
+ * Bean class for os_free_counter_tbl
+ */
+public class FreeCounterBean {
+
+       private String resourceId;
+       private String vtnName;
+       private int resourceCounter;
+
+       public String getResourceId() {
+               return resourceId;
+       }
+
+       public void setResourceId(String resourceId) {
+               this.resourceId = resourceId;
+       }
+
+       public String getVtnName() {
+               return vtnName;
+       }
+
+       public void setVtnName(String vtnName) {
+               this.vtnName = vtnName;
+       }
+
+       public int getResourceCounter() {
+               return resourceCounter;
+       }
+
+       public void setResourceCounter(int resourceCounter) {
+               this.resourceCounter = resourceCounter;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/beans/StaticRouteBean.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/beans/StaticRouteBean.java
new file mode 100644 (file)
index 0000000..a9f3d9b
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.openstack.beans;
+
+/**
+ * Bean class for os_vrt_route_tbl
+ */
+public class StaticRouteBean {
+
+       private String vtnName;
+       private String vrtName;
+       private String routeName;
+
+       public String getVtnName() {
+               return vtnName;
+       }
+
+       public void setVtnName(String vtnName) {
+               this.vtnName = vtnName;
+       }
+
+       public String getVrtName() {
+               return vrtName;
+       }
+
+       public void setVrtName(String vrtName) {
+               this.vrtName = vrtName;
+       }
+
+       public String getRouteName() {
+               return routeName;
+       }
+
+       public void setRouteName(String routeName) {
+               this.routeName = routeName;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/beans/VBridgeBean.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/beans/VBridgeBean.java
new file mode 100644 (file)
index 0000000..1a8709f
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.openstack.beans;
+
+/**
+ * Bean class for os_vbr_tbl
+ */
+public class VBridgeBean {
+
+       private int vbrId;
+       private String vtnName;
+       private String vbrName;
+
+       public int getVbrId() {
+               return vbrId;
+       }
+
+       public void setVbrId(int vbrId) {
+               this.vbrId = vbrId;
+       }
+
+       public String getVtnName() {
+               return vtnName;
+       }
+
+       public void setVtnName(String vtnName) {
+               this.vtnName = vtnName;
+       }
+
+       public String getVbrName() {
+               return vbrName;
+       }
+
+       public void setVbrName(String vbrName) {
+               this.vbrName = vbrName;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/beans/VBridgeInterfaceBean.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/beans/VBridgeInterfaceBean.java
new file mode 100644 (file)
index 0000000..b55496e
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.openstack.beans;
+
+/**
+ * Bean class for os_vbr_if_tbl
+ */
+public class VBridgeInterfaceBean {
+
+       private int vbrIfId;
+       private String vtnName;
+       private String vbrName;
+       private String vbrIfName;
+       private String mapType;
+       private String logicalPortId;
+
+       public int getVbrIfId() {
+               return vbrIfId;
+       }
+
+       public void setVbrIfId(int vbrIfId) {
+               this.vbrIfId = vbrIfId;
+       }
+
+       public String getVtnName() {
+               return vtnName;
+       }
+
+       public void setVtnName(String vtnName) {
+               this.vtnName = vtnName;
+       }
+
+       public String getVbrName() {
+               return vbrName;
+       }
+
+       public void setVbrName(String vbrName) {
+               this.vbrName = vbrName;
+       }
+
+       public String getVbrIfName() {
+               return vbrIfName;
+       }
+
+       public void setVbrIfName(String vbrIfName) {
+               this.vbrIfName = vbrIfName;
+       }
+
+       public String getMapType() {
+               return mapType;
+       }
+
+       public void setMapType(String mapType) {
+               this.mapType = mapType;
+       }
+
+       public void setLogicalPortId(String logicalPortId) {
+               this.logicalPortId = logicalPortId;
+       }
+
+       public String getLogicalPortId() {
+               return logicalPortId;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/beans/VRouterBean.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/beans/VRouterBean.java
new file mode 100644 (file)
index 0000000..a550758
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.openstack.beans;
+
+/**
+ * Bean class for os_vrt_tbl
+ */
+public class VRouterBean {
+
+       private String vtnName;
+       private String vrtName;
+
+       public String getVtnName() {
+               return vtnName;
+       }
+
+       public void setVtnName(String vtnName) {
+               this.vtnName = vtnName;
+       }
+
+       public String getVrtName() {
+               return vrtName;
+       }
+
+       public void setVrtName(String vrtName) {
+               this.vrtName = vrtName;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/beans/VRouterInterfaceBean.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/beans/VRouterInterfaceBean.java
new file mode 100644 (file)
index 0000000..8a12c67
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.openstack.beans;
+
+/**
+ * Bean class for os_vrt_if_tbl
+ */
+public class VRouterInterfaceBean {
+
+       private int vrtIfId;
+       private String vtnName;
+       private String vrtName;
+       private String vrtIfName;
+       private String vbrName;
+
+       public int getVrtIfId() {
+               return vrtIfId;
+       }
+
+       public void setVrtIfId(int vrtIfId) {
+               this.vrtIfId = vrtIfId;
+       }
+
+       public String getVtnName() {
+               return vtnName;
+       }
+
+       public void setVtnName(String vtnName) {
+               this.vtnName = vtnName;
+       }
+
+       public String getVrtName() {
+               return vrtName;
+       }
+
+       public void setVrtName(String vrtName) {
+               this.vrtName = vrtName;
+       }
+
+       public String getVrtIfName() {
+               return vrtIfName;
+       }
+
+       public void setVrtIfName(String vrtIfName) {
+               this.vrtIfName = vrtIfName;
+       }
+
+       public String getVbrName() {
+               return vbrName;
+       }
+
+       public void setVbrName(String vbrName) {
+               this.vbrName = vbrName;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/beans/VtnBean.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/beans/VtnBean.java
new file mode 100644 (file)
index 0000000..54055a7
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.openstack.beans;
+
+/**
+ * Bean class for os_vtn_tbl
+ */
+public class VtnBean {
+
+       private int vtnId;
+       private String vtnName;
+
+       public int getVtnId() {
+               return vtnId;
+       }
+
+       public void setVtnId(int vtnId) {
+               this.vtnId = vtnId;
+       }
+
+       public String getVtnName() {
+               return vtnName;
+       }
+
+       public void setVtnName(String vtnName) {
+               this.vtnName = vtnName;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/beans/package-info.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/beans/package-info.java
new file mode 100644 (file)
index 0000000..3141a77
--- /dev/null
@@ -0,0 +1,13 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * Package contains Bean classes for OpenStack resources
+ */
+package org.opendaylight.vtn.javaapi.openstack.beans;
\ No newline at end of file
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/constants/VtnServiceOpenStackConsts.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/constants/VtnServiceOpenStackConsts.java
new file mode 100644 (file)
index 0000000..d740290
--- /dev/null
@@ -0,0 +1,120 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.openstack.constants;
+
+/**
+ * VTN Service OpenStack related constants
+ */
+public class VtnServiceOpenStackConsts {
+
+       /* Common constants */
+       public static final String VTN_WEB_API_ROOT = "vtn-webapi";
+       public static final String OS_RESOURCE_PKG = "org.opendaylight.vtn.javaapi.resources.openstack.";
+       public static final String NOT_FOUND_SQL_STATE = "23503";
+       public static final String CONFLICT_SQL_STATE = "23505";
+       public static final String OS_MAC_ADD_REGEX = "^([0-9a-fA-F]{2}(\\:[0-9a-fA-F]{2}){5})$";
+       public static final String OS_DATAPATH_ID_REGEX = "0[xX][0-9a-fA-F]{1,16}";
+       public static final String INVALID_DATA_PATH_ID = "0XFFFFFFFFFFFFFFFF";
+       public static final String VLANMAP_MODE = "vlanmap_mode";
+       public static final String NULL = "null";
+       public static final char X_PASS = 'p';
+       public static final char X_DROP = 'd';
+
+       /* Resource Path OpenStack URI constants */
+       public static final String TENANT_PATH = "/tenants/{tenant_id}";
+       public static final String TENANTS_PATH = "/tenants";
+       public static final String NETWORK_PATH = "/tenants/{tenant_id}/networks/{net_id}";
+       public static final String NETWORKS_PATH = "/tenants/{tenant_id}/networks";
+       public static final String PORT_PATH = "/tenants/{tenant_id}/networks/{net_id}/ports/{port_id}";
+       public static final String PORTS_PATH = "/tenants/{tenant_id}/networks/{net_id}/ports";
+       public static final String ROUTER_PATH = "/tenants/{tenant_id}/routers/{router_id}";
+       public static final String ROUTERS_PATH = "/tenants/{tenant_id}/routers";
+       public static final String ROUTER_INTERFACE_PATH = "/tenants/{tenant_id}/routers/{router_id}/interfaces/{if_id}";
+       public static final String ROUTER_INTERFACES_PATH = "/tenants/{tenant_id}/routers/{router_id}/interfaces";
+       public static final String ROUTE_PATH = "/tenants/{tenant_id}/routers/{router_id}/routes/{route_id}";
+       public static final String ROUTES_PATH = "/tenants/{tenant_id}/routers/{router_id}/routes";
+       public static final String FILTER_PATH = "/filters/{filter_id}";
+       public static final String FILTERS_PATH = "/filters";
+       public static final String DEST_CTRL_PATH = "/destination_controller";
+
+       /* Resource Path UNC URI constants */
+       public static final String URI_CONCATENATOR = "/";
+       public static final String VTN_PATH = "/vtns";
+       public static final String VBRIDGE_PATH = "/vbridges";
+       public static final String VLANMAP_PATH = "/vlanmaps";
+       public static final String PORTMAP_PATH = "/portmap";
+       public static final String VROUTER_PATH = "/vrouters";
+       public static final String INTERFACE_PATH = "/interfaces";
+       public static final String VLINK_PATH = "/vlinks";
+       public static final String STATIC_ROUTE_PATH = "/static_iproutes";
+       public static final String CTRL_PATH = "/controllers";
+       public static final String SWITCH_PATH = "/switches";
+       public static final String PHY_PORTS_PATH = "/ports";
+
+       /* URI Parameter constants */
+       public static final String TENANT_ID = "tenant_id";
+       public static final String NET_ID = "net_id";
+       public static final String PORT_ID = "port_id";
+       public static final String ROUTER_ID = "router_id";
+       public static final String IF_ID = "if_id";
+       public static final String ROUTE_ID = "route_id";
+       public static final String FILTER_ID = "filter_id";
+
+       /* Request Parameter constants */
+       public static final String ID = "id";
+       public static final String DESCRIPTION = "description";
+       public static final String DATAPATH_ID = "datapath_id";
+       public static final String PORT = "port";
+       public static final String VID = "vid";
+       public static final String FILTERS = "filters";
+       public static final String ROUTER_NET_ID = "net_id";
+       public static final String IP_ADDRESS = "ip_address";
+       public static final String DESTNATION = "destination";
+       public static final String NEXTHOP = "nexthop";
+       public static final String ROUTES = "routes";
+       public static final String MAC_ADDRESS = "mac_address";
+
+       /* OpenStack name's prefix constants */
+       public static final String VTN_PREFIX = "os_vtn_";
+       public static final String VBR_PREFIX = "os_vbr_";
+       public static final String VRT_PREFIX = "os_vrt";
+       public static final String IF_PREFIX = "os_if_";
+       public static final String VLK_PREFIX = "os_vlk_";
+       public static final String FL_PREFIX = "os_f";
+
+       /* Database properties key name constants */
+       public static final String INI_FILE_PATH = "ini_filepath";
+       public static final String UNC_DB_DSN = "UNC_DB_DSN";
+       public static final String DB_DRIVER = "org.postgresql.Driver";
+       public static final String DB_URL_PREFIX = "jdbc:postgresql://";
+       public static final String DB_IP = "Servername";
+       public static final String DB_PORT = "Port";
+       public static final String DB_NAME = "Database";
+       public static final String DB_USER = "UserName";
+       public static final String DB_PASSWORD = "Password";
+       public static final String DB_INIT_CONN_SIZE = "db_initial_con_size";
+       public static final String DB_MAX_CONN_SIZE = "db_max_conn_size";
+       public static final String DB_WAIT_CONDITION = "db_wait_status";
+
+       /* Resource ID key constants */
+       public static final String DEFAULT_VTN = "default_vtn";
+       public static final String TENANT_RES_ID = "vtn";
+       public static final String NETWORK_RES_ID = "vbr";
+       public static final String PORT_RES_ID = "port";
+       public static final String ROUTER_RES_ID = "vrt";
+       //public static final String INTERFACE_RES_ID = "if";
+       public static final String DEFAULT_ROUTE = "default_route";
+       public static final int MAX_ROUTER_IF_LIMIT = 393216;
+       public static final String DEFAULT_IP = "0.0.0.0";
+       public static final String DEFAULT_CIDR_IP = "0.0.0.0/0";
+       public static final String DEFAULT_MAC = "00:00:00:00:00:00";
+       public static final int MAX_MSG_LEN = 1024;
+       public static final String RT_IF_FLAG = "R";
+       public static final String NW_IF_FLAG = "N";
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/constants/package-info.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/constants/package-info.java
new file mode 100644 (file)
index 0000000..7194a0c
--- /dev/null
@@ -0,0 +1,13 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * Package contains constant classes for OpenStack resources
+ */
+package org.opendaylight.vtn.javaapi.openstack.constants;
\ No newline at end of file
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/convertor/MapResourceGenerator.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/convertor/MapResourceGenerator.java
new file mode 100644 (file)
index 0000000..8278330
--- /dev/null
@@ -0,0 +1,156 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.openstack.convertor;
+
+import com.google.gson.JsonObject;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
+import org.opendaylight.vtn.javaapi.openstack.constants.VtnServiceOpenStackConsts;
+
+/**
+ * Provides Request-Response Conversion methods for Vlan-map and Port-map
+ * requests
+ */
+public class MapResourceGenerator {
+
+       /**
+        * Generated Create vlan-map request body from OpenStack request body
+        * 
+        * @param openStackResourceBody
+        *            - OpenStack request body for tenant
+        * @return - vlan-map request body
+        */
+       public static JsonObject getCreateVlanMapRequestBody(
+                       JsonObject openStackResourceBody) {
+               final JsonObject root = new JsonObject();
+               final JsonObject vlanmap = new JsonObject();
+
+               String datapathId = openStackResourceBody.get(
+                               VtnServiceOpenStackConsts.DATAPATH_ID).getAsString();
+
+               if (!datapathId.isEmpty()) {
+                       datapathId = datapathId.substring(2, datapathId.length());
+                       final StringBuilder sb = new StringBuilder();
+                       for (int toPrepend = 16 - datapathId.length(); toPrepend > 0; toPrepend--) {
+                               sb.append('0');
+                       }
+                       datapathId = sb.append(datapathId).toString();
+                       final String logicalPortIdPartFirst = datapathId.substring(0, 4);
+                       final String logicalPortIdPartSecond = datapathId.substring(4, 8);
+                       final String logicalPortIdPartThird = datapathId.substring(8, 12);
+                       final String logicalPortIdPartFour = datapathId.substring(12, 16);
+
+                       vlanmap.addProperty(VtnServiceJsonConsts.LOGICAL_PORT_ID, "SW"
+                                       + VtnServiceConsts.HYPHEN + logicalPortIdPartFirst
+                                       + VtnServiceConsts.HYPHEN + logicalPortIdPartSecond
+                                       + VtnServiceConsts.HYPHEN + logicalPortIdPartThird
+                                       + VtnServiceConsts.HYPHEN + logicalPortIdPartFour);
+               }
+
+               final int vlanId = openStackResourceBody.get(
+                               VtnServiceOpenStackConsts.VID).getAsInt();
+               if (vlanId >= VtnServiceJsonConsts.VAL_1
+                               && vlanId <= VtnServiceJsonConsts.VAL_4095) {
+                       vlanmap.addProperty(VtnServiceJsonConsts.VLANID, vlanId);
+               } else {
+                       vlanmap.addProperty(VtnServiceJsonConsts.NO_VLAN_ID,
+                                       VtnServiceJsonConsts.TRUE);
+               }
+
+               root.add(VtnServiceJsonConsts.VLANMAP, vlanmap);
+               return root;
+       }
+
+       /**
+        * Generated Create port-map request body from OpenStack request body
+        * 
+        * @param openStackResourceBody
+        *            - OpenStack request body for tenant
+        * @return - port-map request body
+        */
+       public static JsonObject getCreatePortMapRequestBody(
+                       JsonObject openStackResourceBody) {
+               final JsonObject root = new JsonObject();
+               final JsonObject portmap = new JsonObject();
+
+               String datapathId = openStackResourceBody.get(
+                               VtnServiceOpenStackConsts.DATAPATH_ID).getAsString();
+
+               datapathId = datapathId.substring(2, datapathId.length());
+               final StringBuilder sb = new StringBuilder();
+               for (int toPrepend = 16 - datapathId.length(); toPrepend > 0; toPrepend--) {
+                       sb.append('0');
+               }
+               datapathId = sb.append(datapathId).toString();
+               final String logicalPortIdPartFirst = datapathId.substring(0, 4);
+               final String logicalPortIdPartSecond = datapathId.substring(4, 8);
+               final String logicalPortIdPartThird = datapathId.substring(8, 12);
+               final String logicalPortIdPartFour = datapathId.substring(12, 16);
+
+               portmap.addProperty(
+                               VtnServiceJsonConsts.LOGICAL_PORT_ID,
+                               "PP"
+                                               + VtnServiceConsts.HYPHEN
+                                               + logicalPortIdPartFirst
+                                               + VtnServiceConsts.HYPHEN
+                                               + logicalPortIdPartSecond
+                                               + VtnServiceConsts.HYPHEN
+                                               + logicalPortIdPartThird
+                                               + VtnServiceConsts.HYPHEN
+                                               + logicalPortIdPartFour
+                                               + VtnServiceConsts.HYPHEN
+                                               + openStackResourceBody.get(
+                                                               VtnServiceJsonConsts.PORTNAME).getAsString());
+
+               final int vlanId = openStackResourceBody.get(
+                               VtnServiceOpenStackConsts.VID).getAsInt();
+               if (vlanId >= VtnServiceJsonConsts.VAL_1
+                               && vlanId <= VtnServiceJsonConsts.VAL_4095) {
+                       portmap.addProperty(VtnServiceJsonConsts.VLANID, vlanId);
+                       portmap.addProperty(VtnServiceJsonConsts.TAGGED,
+                                       VtnServiceJsonConsts.FALSE);
+               }
+
+               root.add(VtnServiceJsonConsts.PORTMAP, portmap);
+               return root;
+       }
+
+       /**
+        * Generated Get vlan-map request body
+        * 
+        * @return - vlan-map request body
+        */
+       public static JsonObject getVLanMapCountRequestBody() {
+               final JsonObject request = new JsonObject();
+               request.addProperty(VtnServiceJsonConsts.TARGETDB,
+                               VtnServiceJsonConsts.RUNNING);
+               request.addProperty(VtnServiceJsonConsts.OP, VtnServiceJsonConsts.COUNT);
+               return request;
+       }
+
+       /**
+        * Generated Get port request body from OpenStack request body
+        * 
+        * @param openStackResourceBody
+        *            - OpenStack request body for tenant
+        * @return - port request body
+        */
+       public static JsonObject getPortNameRequestBody(
+                       JsonObject openStackResourceBody) {
+               final JsonObject request = new JsonObject();
+               request.addProperty(VtnServiceJsonConsts.TARGETDB,
+                               VtnServiceJsonConsts.STATE);
+               request.addProperty(VtnServiceJsonConsts.OP,
+                               VtnServiceJsonConsts.DETAIL);
+               request.addProperty(VtnServiceJsonConsts.PORT_ID, openStackResourceBody
+                               .get(VtnServiceOpenStackConsts.PORT).getAsString());
+               return request;
+       }
+
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/convertor/StaticRouteResourceGenerator.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/convertor/StaticRouteResourceGenerator.java
new file mode 100644 (file)
index 0000000..a7ab961
--- /dev/null
@@ -0,0 +1,102 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.openstack.convertor;
+
+import org.apache.commons.net.util.SubnetUtils;
+
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
+import org.opendaylight.vtn.javaapi.openstack.constants.VtnServiceOpenStackConsts;
+
+/**
+ * Provides Request-Response Conversion methods for Route requests
+ * Requests
+ */
+public class StaticRouteResourceGenerator {
+
+       /**
+        * Generated Create static-ip-route request body from OpenStack request body
+        * 
+        * @param openStackResourceBody
+        *            - OpenStack request body for tenant
+        * @return - static-ip-route request body
+        */
+       public static JsonObject getCreateStaticRouteRequestBody(
+                       JsonObject openStackResourceBody) {
+               final JsonObject root = new JsonObject();
+               final JsonObject staticRoute = new JsonObject();
+
+               final String[] destination = openStackResourceBody
+                               .get(VtnServiceOpenStackConsts.DESTNATION).getAsString()
+                               .split(VtnServiceConsts.SLASH);
+
+               staticRoute.addProperty(VtnServiceJsonConsts.IPADDR, destination[0]);
+
+               staticRoute.addProperty(VtnServiceJsonConsts.PREFIX, destination[1]);
+
+               staticRoute.addProperty(VtnServiceJsonConsts.NEXTHOPADDR,
+                               openStackResourceBody.get(VtnServiceOpenStackConsts.NEXTHOP)
+                                               .getAsString());
+
+               root.add(VtnServiceJsonConsts.STATIC_IPROUTE, staticRoute);
+               return root;
+       }
+
+       /**
+        * Generated List static-ip-route request body
+        * 
+        * @return - static-ip-route request body
+        */
+       public static JsonObject getListRequestBody() {
+               final JsonObject request = new JsonObject();
+               request.addProperty(VtnServiceJsonConsts.TARGETDB,
+                               VtnServiceJsonConsts.STATE);
+               return request;
+       }
+
+       /**
+        * Convert response for static-ip-route from UNC format to OpenStack format
+        * 
+        * @param responseBody
+        *            - UNC formatted response body
+        * @return - OpenStack formatted response body
+        */
+       public static JsonObject convertListResponseBody(JsonObject responseBody) {
+               final JsonObject openStackResponse = new JsonObject();
+               final JsonArray routes = new JsonArray();
+               final JsonArray staticRoutes = responseBody.get(
+                               VtnServiceJsonConsts.STATIC_IPROUTES).getAsJsonArray();
+               for (final JsonElement staticRoute : staticRoutes) {
+
+                       final String[] staticIpRouteId = staticRoute.getAsJsonObject()
+                                       .get(VtnServiceJsonConsts.STATICIPROUTEID).getAsString()
+                                       .split(VtnServiceConsts.HYPHEN);
+
+                       final String destination = staticIpRouteId[0]
+                                       + VtnServiceConsts.SLASH + staticIpRouteId[2];
+                       final String nexthop = staticIpRouteId[1];
+
+                       final SubnetUtils subnetUtils = new SubnetUtils(destination);
+                       final String routeId = staticIpRouteId[0] + VtnServiceConsts.HYPHEN
+                                       + staticIpRouteId[1] + VtnServiceConsts.HYPHEN
+                                       + subnetUtils.getInfo().getNetmask();
+
+                       final JsonObject route = new JsonObject();
+                       route.addProperty(VtnServiceOpenStackConsts.ID, routeId);
+                       route.addProperty(VtnServiceOpenStackConsts.DESTNATION, destination);
+                       route.addProperty(VtnServiceOpenStackConsts.NEXTHOP, nexthop);
+                       routes.add(route);
+               }
+               openStackResponse.add(VtnServiceOpenStackConsts.ROUTES, routes);
+               return openStackResponse;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/convertor/VbrResourcesGenerator.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/convertor/VbrResourcesGenerator.java
new file mode 100644 (file)
index 0000000..62242e4
--- /dev/null
@@ -0,0 +1,111 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.openstack.convertor;
+
+import com.google.gson.JsonObject;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
+import org.opendaylight.vtn.javaapi.openstack.constants.VtnServiceOpenStackConsts;
+
+/**
+ * Provides Request-Response Conversion methods for Network and Port Requests
+ */
+public class VbrResourcesGenerator {
+
+       /**
+        * Generated Create vBridge request body from OpenStack request body
+        * 
+        * @param openStackResourceBody
+        *            - OpenStack request body for tenant
+        * @return - vBridge request body
+        */
+       public static JsonObject getCreateVbrRequestBody(
+                       JsonObject openStackResourceBody) {
+               final JsonObject root = new JsonObject();
+               final JsonObject vbr = new JsonObject();
+
+               vbr.addProperty(VtnServiceJsonConsts.VBRNAME, openStackResourceBody
+                               .get(VtnServiceOpenStackConsts.ID).getAsString());
+
+               if (openStackResourceBody.has(VtnServiceOpenStackConsts.DESCRIPTION)
+                               && !openStackResourceBody.get(
+                                               VtnServiceOpenStackConsts.DESCRIPTION).isJsonNull()) {
+                       vbr.addProperty(
+                                       VtnServiceJsonConsts.DESCRIPTION,
+                                       openStackResourceBody.get(
+                                                       VtnServiceOpenStackConsts.DESCRIPTION)
+                                                       .getAsString());
+
+               }
+
+               vbr.addProperty(VtnServiceJsonConsts.CONTROLLERID,
+                               openStackResourceBody.get(VtnServiceJsonConsts.CONTROLLERID)
+                                               .getAsString());
+
+               vbr.addProperty(VtnServiceJsonConsts.DOMAINID,
+                               VtnServiceJsonConsts.DEFAULT_DOMAIN_ID);
+
+               root.add(VtnServiceJsonConsts.VBRIDGE, vbr);
+               return root;
+       }
+
+       /**
+        * Generated Update vBridge request body from OpenStack request body
+        * 
+        * @param openStackResourceBody
+        *            - OpenStack request body for tenant
+        * @return - vBridge request body
+        */
+       public static JsonObject getUpdateVbrRequestBody(
+                       JsonObject openStackResourceBody) {
+               final JsonObject root = new JsonObject();
+               final JsonObject vbr = new JsonObject();
+
+               if (!openStackResourceBody.has(VtnServiceOpenStackConsts.DESCRIPTION)
+                               || openStackResourceBody.get(
+                                               VtnServiceOpenStackConsts.DESCRIPTION).isJsonNull()
+                               || openStackResourceBody
+                                               .get(VtnServiceOpenStackConsts.DESCRIPTION)
+                                               .getAsString().isEmpty()) {
+                       vbr.addProperty(VtnServiceJsonConsts.DESCRIPTION,
+                                       VtnServiceConsts.EMPTY_STRING);
+               } else {
+                       vbr.addProperty(
+                                       VtnServiceJsonConsts.DESCRIPTION,
+                                       openStackResourceBody.get(
+                                                       VtnServiceOpenStackConsts.DESCRIPTION)
+                                                       .getAsString());
+
+               }
+
+               root.add(VtnServiceJsonConsts.VBRIDGE, vbr);
+               return root;
+       }
+
+       /**
+        * Generated Create vBridge interface request body from OpenStack request
+        * body
+        * 
+        * @param openStackResourceBody
+        *            - OpenStack request body for tenant
+        * @return - vBridge interface request body
+        */
+       public static JsonObject getCreateVbrIfRequestBody(
+                       JsonObject openStackResourceBody) {
+               final JsonObject root = new JsonObject();
+               final JsonObject interfaceJson = new JsonObject();
+
+               interfaceJson.addProperty(VtnServiceJsonConsts.IFNAME,
+                               openStackResourceBody.get(VtnServiceOpenStackConsts.ID)
+                                               .getAsString());
+
+               root.add(VtnServiceJsonConsts.INTERFACE, interfaceJson);
+               return root;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/convertor/VrtResourcesGenerator.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/convertor/VrtResourcesGenerator.java
new file mode 100644 (file)
index 0000000..b4f9553
--- /dev/null
@@ -0,0 +1,187 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.openstack.convertor;
+
+import com.google.gson.JsonObject;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
+import org.opendaylight.vtn.javaapi.openstack.constants.VtnServiceOpenStackConsts;
+
+/**
+ * Provides Request-Response Conversion methods for Router and Router Interface
+ * Requests
+ */
+public class VrtResourcesGenerator {
+
+       /**
+        * Generated Create vRouter request body from OpenStack request body
+        * 
+        * @param openStackResourceBody
+        *            - OpenStack request body for tenant
+        * @return - vRouter request body
+        */
+       public static JsonObject getCreateVrtRequestBody(
+                       JsonObject openStackResourceBody) {
+               final JsonObject root = new JsonObject();
+               final JsonObject vrt = new JsonObject();
+
+               vrt.addProperty(VtnServiceJsonConsts.VRTNAME, openStackResourceBody
+                               .get(VtnServiceOpenStackConsts.ID).getAsString());
+
+               if (openStackResourceBody.has(VtnServiceOpenStackConsts.DESCRIPTION)
+                               && !openStackResourceBody.get(
+                                               VtnServiceOpenStackConsts.DESCRIPTION).isJsonNull()) {
+                       vrt.addProperty(
+                                       VtnServiceJsonConsts.DESCRIPTION,
+                                       openStackResourceBody.get(
+                                                       VtnServiceOpenStackConsts.DESCRIPTION)
+                                                       .getAsString());
+
+               }
+
+               vrt.addProperty(VtnServiceJsonConsts.CONTROLLERID,
+                               openStackResourceBody.get(VtnServiceJsonConsts.CONTROLLERID)
+                                               .getAsString());
+
+               vrt.addProperty(VtnServiceJsonConsts.DOMAINID,
+                               VtnServiceJsonConsts.DEFAULT_DOMAIN_ID);
+
+               root.add(VtnServiceJsonConsts.VROUTER, vrt);
+               return root;
+       }
+
+       /**
+        * Generated Update vRouter request body from OpenStack request body
+        * 
+        * @param openStackResourceBody
+        *            - OpenStack request body for tenant
+        * @return - vRouter request body
+        */
+       public static JsonObject getUpdateVrtRequestBody(
+                       JsonObject openStackResourceBody) {
+               final JsonObject root = new JsonObject();
+               final JsonObject vrt = new JsonObject();
+
+               if (!openStackResourceBody.has(VtnServiceOpenStackConsts.DESCRIPTION)
+                               || openStackResourceBody.get(
+                                               VtnServiceOpenStackConsts.DESCRIPTION).isJsonNull()
+                               || openStackResourceBody
+                                               .get(VtnServiceOpenStackConsts.DESCRIPTION)
+                                               .getAsString().isEmpty()) {
+                       vrt.addProperty(VtnServiceJsonConsts.DESCRIPTION,
+                                       VtnServiceConsts.EMPTY_STRING);
+               } else {
+                       vrt.addProperty(
+                                       VtnServiceJsonConsts.DESCRIPTION,
+                                       openStackResourceBody.get(
+                                                       VtnServiceOpenStackConsts.DESCRIPTION)
+                                                       .getAsString());
+
+               }
+
+               root.add(VtnServiceJsonConsts.VROUTER, vrt);
+               return root;
+       }
+
+       /**
+        * Generated Create vRouter interface request body from OpenStack request
+        * body
+        * 
+        * @param openStackResourceBody
+        *            - OpenStack request body for tenant
+        * @return - vRouter interface request body
+        */
+       public static JsonObject getCreateVrtIfRequestBody(
+                       JsonObject openStackResourceBody) {
+               final JsonObject root = new JsonObject();
+               final JsonObject interfaceJson = new JsonObject();
+
+               interfaceJson.addProperty(VtnServiceJsonConsts.IFNAME,
+                               openStackResourceBody.get(VtnServiceOpenStackConsts.ID)
+                                               .getAsString());
+               setIpAndMacAddress(openStackResourceBody, interfaceJson);
+               root.add(VtnServiceJsonConsts.INTERFACE, interfaceJson);
+               return root;
+       }
+
+       /**
+        * Generated Update vRouter interface request body from OpenStack request
+        * body
+        * 
+        * @param openStackResourceBody
+        *            - OpenStack request body for tenant
+        * @return - vRouter interface request body
+        */
+       public static JsonObject getUpdateVrtIfRequestBody(
+                       JsonObject openStackResourceBody) {
+               final JsonObject root = new JsonObject();
+               final JsonObject interfaceJson = new JsonObject();
+               setIpAndMacAddress(openStackResourceBody, interfaceJson);
+               
+               // special case handling for IP address
+               if (openStackResourceBody.has(VtnServiceOpenStackConsts.IP_ADDRESS)
+                               && VtnServiceOpenStackConsts.DEFAULT_CIDR_IP
+                                               .equals(openStackResourceBody.get(
+                                                               VtnServiceOpenStackConsts.IP_ADDRESS)
+                                                               .getAsString())) {
+                       interfaceJson.addProperty(VtnServiceJsonConsts.IPADDR,
+                                       VtnServiceConsts.EMPTY_STRING);
+                       interfaceJson.addProperty(VtnServiceJsonConsts.PREFIX,
+                                       VtnServiceConsts.EMPTY_STRING);
+               }
+
+               // special case handling for MAC address
+               if (openStackResourceBody.has(VtnServiceOpenStackConsts.MAC_ADDRESS)
+                               && VtnServiceOpenStackConsts.DEFAULT_MAC
+                                               .equals(openStackResourceBody.get(
+                                                               VtnServiceOpenStackConsts.MAC_ADDRESS)
+                                                               .getAsString())) {
+                       interfaceJson.addProperty(VtnServiceJsonConsts.MACADDR,
+                                       VtnServiceConsts.EMPTY_STRING);
+               }
+               
+               root.add(VtnServiceJsonConsts.INTERFACE, interfaceJson);
+               return root;
+       }
+
+       /**
+        * Set IP address and MAC address in interface JSON request body after
+        * conversion
+        * 
+        * @param openStackResourceBody
+        * @param interfaceJson
+        */
+       private static void setIpAndMacAddress(JsonObject openStackResourceBody,
+                       JsonObject interfaceJson) {
+               if (openStackResourceBody.has(VtnServiceOpenStackConsts.IP_ADDRESS)) {
+                       final String[] ipAddress = openStackResourceBody
+                                       .get(VtnServiceOpenStackConsts.IP_ADDRESS).getAsString()
+                                       .split(VtnServiceConsts.SLASH);
+                       interfaceJson
+                                       .addProperty(VtnServiceJsonConsts.IPADDR, ipAddress[0]);
+                       interfaceJson
+                                       .addProperty(VtnServiceJsonConsts.PREFIX, ipAddress[1]);
+               }
+
+               if (openStackResourceBody.has(VtnServiceOpenStackConsts.MAC_ADDRESS)) {
+                       String macAddress = openStackResourceBody.get(
+                                       VtnServiceOpenStackConsts.MAC_ADDRESS).getAsString();
+                       macAddress = macAddress.replaceAll(VtnServiceConsts.COLON,
+                                       VtnServiceConsts.EMPTY_STRING);
+
+                       final String macFirstPart = macAddress.substring(0, 4);
+                       final String macSeconfPart = macAddress.substring(4, 8);
+                       final String macThirdPart = macAddress.substring(8, 12);
+
+                       interfaceJson.addProperty(VtnServiceJsonConsts.MACADDR,
+                                       macFirstPart + VtnServiceConsts.DOT + macSeconfPart
+                                                       + VtnServiceConsts.DOT + macThirdPart);
+               }
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/convertor/VtnResourcesGenerator.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/convertor/VtnResourcesGenerator.java
new file mode 100644 (file)
index 0000000..d5d1452
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.openstack.convertor;
+
+import com.google.gson.JsonObject;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
+import org.opendaylight.vtn.javaapi.openstack.constants.VtnServiceOpenStackConsts;
+
+/**
+ * Provides Request-Response Conversion methods for Tenant Requests
+ */
+public class VtnResourcesGenerator {
+
+       /**
+        * Generated Create VTN request body from OpenStack request body
+        * 
+        * @param openStackResourceBody
+        *            - OpenStack request body for tenant
+        * @return - VTN request body
+        */
+       public static JsonObject getCreateVtnRequestBody(
+                       JsonObject openStackResourceBody) {
+               final JsonObject root = new JsonObject();
+               final JsonObject vtn = new JsonObject();
+
+               vtn.addProperty(VtnServiceJsonConsts.VTNNAME, openStackResourceBody
+                               .get(VtnServiceOpenStackConsts.ID).getAsString());
+
+               if (openStackResourceBody.has(VtnServiceOpenStackConsts.DESCRIPTION)
+                               && !openStackResourceBody.get(
+                                               VtnServiceOpenStackConsts.DESCRIPTION).isJsonNull()) {
+                       vtn.addProperty(
+                                       VtnServiceJsonConsts.DESCRIPTION,
+                                       openStackResourceBody.get(
+                                                       VtnServiceOpenStackConsts.DESCRIPTION)
+                                                       .getAsString());
+
+               }
+
+               root.add(VtnServiceJsonConsts.VTN, vtn);
+               return root;
+       }
+
+       /**
+        * Generated Update VTN request body from OpenStack request body
+        * 
+        * @param openStackResourceBody
+        *            - OpenStack request body for tenant
+        * @return - VTN request body
+        */
+       public static JsonObject getUpdateVtnRequestBody(
+                       JsonObject openStackResourceBody) {
+               final JsonObject root = new JsonObject();
+               final JsonObject vtn = new JsonObject();
+
+               if (!openStackResourceBody.has(VtnServiceOpenStackConsts.DESCRIPTION)
+                               || openStackResourceBody.get(
+                                               VtnServiceOpenStackConsts.DESCRIPTION).isJsonNull()
+                               || openStackResourceBody
+                                               .get(VtnServiceOpenStackConsts.DESCRIPTION)
+                                               .getAsString().isEmpty()) {
+                       vtn.addProperty(VtnServiceJsonConsts.DESCRIPTION,
+                                       VtnServiceConsts.EMPTY_STRING);
+               } else {
+                       vtn.addProperty(
+                                       VtnServiceJsonConsts.DESCRIPTION,
+                                       openStackResourceBody.get(
+                                                       VtnServiceOpenStackConsts.DESCRIPTION)
+                                                       .getAsString());
+
+               }
+
+               root.add(VtnServiceJsonConsts.VTN, vtn);
+               return root;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/convertor/package-info.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/convertor/package-info.java
new file mode 100644 (file)
index 0000000..fabb0ba
--- /dev/null
@@ -0,0 +1,13 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * Package contains Convertsion classes for OpenStack resources
+ */
+package org.opendaylight.vtn.javaapi.openstack.convertor;
\ No newline at end of file
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dao/DestinationControllerDao.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dao/DestinationControllerDao.java
new file mode 100644 (file)
index 0000000..dd1b75e
--- /dev/null
@@ -0,0 +1,118 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.openstack.dao;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.openstack.dbmanager.VtnOpenStackSQLFactory;
+
+/**
+ * Data Access Object Class for os_controller_tbl table
+ */
+public class DestinationControllerDao {
+
+       private static final Logger LOG = Logger
+                       .getLogger(DestinationControllerDao.class.getName());
+
+       /**
+        * Insert controller_id into database table os_controller_tbl
+        * 
+        * @param connection
+        *            - DB Connection
+        * @param controllerId
+        *            - controller_id to be set
+        * @return - insertion status
+        * @throws SQLException
+        */
+       public int setDestinationController(Connection connection,
+                       String controllerId) throws SQLException {
+               LOG.trace("Start ResourceIdManager#setDestinationController()");
+               LOG.debug("Controller id : " + controllerId);
+               int status;
+               final String sql = VtnOpenStackSQLFactory.INS_DEST_CTRL_SQL;
+               PreparedStatement statement = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       statement.setString(1, controllerId);
+                       status = statement.executeUpdate();
+               } finally {
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               LOG.debug("Insertion status : " + status);
+               LOG.trace("Complete ResourceIdManager#setDestinationController()");
+               return status;
+       }
+
+       /**
+        * Delete controller_id from database table os_controller_tbl
+        * 
+        * @param connection
+        *            - DB Connection
+        * @return - deletion status
+        * @throws SQLException
+        */
+       public int deleteDestinationController(Connection connection)
+                       throws SQLException {
+               LOG.trace("Start ResourceIdManager#deleteDestinationController()");
+               int status;
+               final String sql = VtnOpenStackSQLFactory.DEL_DEST_CTRL_SQL;
+               PreparedStatement statement = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       status = statement.executeUpdate();
+               } finally {
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               LOG.debug("Deletion status : " + status);
+               LOG.trace("Complete ResourceIdManager#deleteDestinationController()");
+               return status;
+       }
+
+       /**
+        * Retrieve controller_id from database table os_controller_tbl
+        * 
+        * @param connection
+        *            - DB Connection
+        * @return - controller_id
+        * @throws SQLException
+        */
+       public String getDestinationController(Connection connection)
+                       throws SQLException {
+               LOG.trace("Start ResourceIdManager#deleteDestinationController()");
+               String controllerId = null;
+               final String sql = VtnOpenStackSQLFactory.SEL_DEST_CTRL_SQL;
+               PreparedStatement statement = null;
+               ResultSet resultSet = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       resultSet = statement.executeQuery();
+                       if (resultSet.next()) {
+                               controllerId = resultSet.getString(1);
+                               LOG.debug("Extracted controller id : " + controllerId);
+                       }
+               } finally {
+                       if (resultSet != null) {
+                               resultSet.close();
+                       }
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               LOG.trace("Complete ResourceIdManager#deleteDestinationController()");
+               return controllerId;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dao/FreeCounterDao.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dao/FreeCounterDao.java
new file mode 100644 (file)
index 0000000..1f7fa77
--- /dev/null
@@ -0,0 +1,188 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.openstack.dao;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.openstack.beans.FreeCounterBean;
+import org.opendaylight.vtn.javaapi.openstack.constants.VtnServiceOpenStackConsts;
+import org.opendaylight.vtn.javaapi.openstack.dbmanager.VtnOpenStackSQLFactory;
+
+/**
+ * Data Access Object Class for os_free_counter_tbl table
+ */
+public class FreeCounterDao {
+
+       /* Logger instance */
+       private static final Logger LOG = Logger.getLogger(FreeCounterDao.class
+                       .getName());
+
+       /**
+        * Retrieve the resource counter for specific VTN, if available in database.
+        * Return -1 if not found
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @param freeCounterBean
+        *            - Bean corresponding to os_free_counter_tbl
+        * @return - available resource counter
+        * @throws SQLException
+        */
+       public int
+                       getCounter(Connection connection, FreeCounterBean freeCounterBean)
+                                       throws SQLException {
+               final String sql = VtnOpenStackSQLFactory.SEL_FC_SQL;
+               int resourceCounter = -1;
+               PreparedStatement statement = null;
+               ResultSet resultSet = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       statement.setString(1, freeCounterBean.getResourceId());
+                       statement.setString(2, freeCounterBean.getVtnName());
+                       resultSet = statement.executeQuery();
+                       if (resultSet.next()) {
+                               resourceCounter = resultSet.getInt(1);
+                               LOG.debug("Resource counter is available in os_free_counter_tbl : "
+                                               + resourceCounter);
+                       }
+               } finally {
+                       if (resultSet != null) {
+                               resultSet.close();
+                       }
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               return resourceCounter;
+       }
+
+       /**
+        * Delete resource counter for specific VTN from database
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @param freeCounterBean
+        *            - Bean corresponding to os_free_counter_tbl
+        * @return - deletion status
+        * @throws SQLException
+        */
+       public int deleteCounter(Connection connection,
+                       FreeCounterBean freeCounterBean) throws SQLException {
+               final String sql = VtnOpenStackSQLFactory.DEL_FC_SQL;
+               int status;
+               PreparedStatement statement = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       statement.setString(1, freeCounterBean.getResourceId());
+                       statement.setString(2, freeCounterBean.getVtnName());
+                       statement.setInt(3, freeCounterBean.getResourceCounter());
+                       status = statement.executeUpdate();
+                       LOG.debug("Deletion Status of resource id from os_free_counter_tbl : "
+                                       + status);
+               } finally {
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               return status;
+       }
+
+       /**
+        * Insert the resource counter for specific VTN into database
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @param freeCounterBean
+        *            - Bean corresponding to os_free_counter_tbl
+        * @return - insertion status
+        * @throws SQLException
+        */
+       public int insertCounter(Connection connection,
+                       FreeCounterBean freeCounterBean) throws SQLException {
+               final String sql = VtnOpenStackSQLFactory.INS_FC_SQL;
+               int status;
+               PreparedStatement statement = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       statement.setInt(1, freeCounterBean.getResourceCounter());
+                       statement.setString(2, freeCounterBean.getVtnName());
+                       statement.setString(3, freeCounterBean.getResourceId());
+                       status = statement.executeUpdate();
+                       LOG.debug("Deletion Status of resource id from os_free_counter_tbl : "
+                                       + status);
+               } finally {
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               return status;
+       }
+
+       /**
+        * Delete all resource counters for specific VTN from database
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @param freeCounterBean
+        *            - Bean corresponding to os_free_counter_tbl
+        * @return - deletion status
+        * @throws SQLException
+        */
+       public int deleteVtnChilds(Connection connection,
+                       FreeCounterBean freeCounterBean) throws SQLException {
+               final String sql = VtnOpenStackSQLFactory.DEL_VTN_CHILD_SQL;
+               int status;
+               PreparedStatement statement = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       statement.setString(1, freeCounterBean.getVtnName());
+                       statement.setString(2, VtnServiceOpenStackConsts.TENANT_RES_ID);
+                       status = statement.executeUpdate();
+                       LOG.debug("Deletion Status of resource counters from os_free_counter_tbl : "
+                                       + status);
+               } finally {
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               return status;
+       }
+       /**
+        * Delete all resource counters for specific VTN from database
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @param freeCounterBean
+        *            - Bean corresponding to os_free_counter_tbl
+        * @return - deletion status
+        * @throws SQLException
+        */
+       public int deleteNodeChilds(Connection connection,
+                       FreeCounterBean freeCounterBean) throws SQLException {
+               final String sql = VtnOpenStackSQLFactory.DEL_NODE_CHILD_SQL;
+               int status;
+               PreparedStatement statement = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       statement.setString(1, freeCounterBean.getVtnName());
+                       status = statement.executeUpdate();
+                       LOG.debug("Deletion Status of resource counters from os_free_counter_tbl : "
+                                       + status);
+               } finally {
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               return status;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dao/StaticRouteDao.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dao/StaticRouteDao.java
new file mode 100644 (file)
index 0000000..9179f8b
--- /dev/null
@@ -0,0 +1,158 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.openstack.dao;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.openstack.beans.StaticRouteBean;
+import org.opendaylight.vtn.javaapi.openstack.dbmanager.VtnOpenStackSQLFactory;
+
+/**
+ * Data Access Object Class for os_vrt_route_tbl table
+ */
+public class StaticRouteDao {
+
+       private static final Logger LOG = Logger.getLogger(StaticRouteDao.class
+                       .getName());
+
+       /**
+        * Insert Static-Route information into database
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @param staticRouteBean
+        *            - Bean corresponding to os_vrt_route_tbl
+        * @return - insertion status
+        * @throws SQLException
+        */
+       public int insert(Connection connection, StaticRouteBean staticRouteBean)
+                       throws SQLException {
+               int status;
+               final String sql = VtnOpenStackSQLFactory.INS_ROUTE_SQL;
+               PreparedStatement statement = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       statement.setString(1, staticRouteBean.getVtnName());
+                       statement.setString(2, staticRouteBean.getVrtName());
+                       statement.setString(3, staticRouteBean.getRouteName());
+                       status = statement.executeUpdate();
+               } finally {
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               LOG.debug("Insertion status : " + status);
+               return status;
+       }
+
+       /**
+        * Delete Static-Route information from database
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @param staticRouteBean
+        *            - Bean corresponding to os_vrt_route_tbl
+        * @return - deletion status
+        * @throws SQLException
+        */
+       public int delete(Connection connection, StaticRouteBean staticRouteBean)
+                       throws SQLException {
+               int status;
+               final String sql = VtnOpenStackSQLFactory.DEL_ROUTE_SQL;
+               PreparedStatement statement = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       statement.setString(1, staticRouteBean.getVtnName());
+                       statement.setString(2, staticRouteBean.getVrtName());
+                       statement.setString(3, staticRouteBean.getRouteName());
+                       status = statement.executeUpdate();
+               } finally {
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               LOG.debug("Insertion status : " + status);
+               return status;
+       }
+
+       /**
+        * Retrieve Static-Route list from database
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @param staticRouteBean
+        *            - Bean corresponding to os_vrt_route_tbl
+        * @return - list of static-routes
+        * @throws SQLException
+        */
+       public List<String> getList(Connection connection,
+                       StaticRouteBean staticRouteBean) throws SQLException {
+               final List<String> routeList = new ArrayList<String>();
+               final String sql = VtnOpenStackSQLFactory.SEL_ROUTE_SQL;
+               PreparedStatement statement = null;
+               ResultSet resultSet = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       resultSet = statement.executeQuery();
+                       if (resultSet.next()) {
+                               routeList.add(resultSet.getString(1));
+                       }
+               } finally {
+                       if (resultSet != null) {
+                               resultSet.close();
+                       }
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               return routeList;
+       }
+
+       /**
+        * Check the existence of Static Router
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @param staticRouteBean
+        *            - Bean corresponding to os_vrt_route_tbl
+        * @return - true, if resource found
+        * @throws SQLException
+        */
+       public boolean isStaticRouteFound(Connection connection,
+                       StaticRouteBean staticRouteBean) throws SQLException {
+               boolean isFound = false;
+               final String sql = VtnOpenStackSQLFactory.CHK_ROUTE_SQL;
+               PreparedStatement statement = null;
+               ResultSet resultSet = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       statement.setString(1, staticRouteBean.getVtnName());
+                       statement.setString(2, staticRouteBean.getVrtName());
+                       statement.setString(3, staticRouteBean.getRouteName());
+                       resultSet = statement.executeQuery();
+                       if (resultSet.next() && resultSet.getInt(1) > 0) {
+                               isFound = true;
+                       }
+               } finally {
+                       if (resultSet != null) {
+                               resultSet.close();
+                       }
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               return isFound;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dao/VBridgeDao.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dao/VBridgeDao.java
new file mode 100644 (file)
index 0000000..9acb0e7
--- /dev/null
@@ -0,0 +1,155 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.openstack.dao;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.openstack.beans.VBridgeBean;
+import org.opendaylight.vtn.javaapi.openstack.dbmanager.VtnOpenStackSQLFactory;
+
+/**
+ * Data Access Object Class for os_vbr_tbl table
+ */
+public class VBridgeDao {
+
+       private static final Logger LOG = Logger.getLogger(VBridgeDao.class
+                       .getName());
+
+       /**
+        * Get resource counter for Network
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @return - next incremented counter
+        * @throws SQLException
+        */
+       public int getNextId(Connection connection, String vtnName)
+                       throws SQLException {
+               final String sql = VtnOpenStackSQLFactory.SEL_VBR_ID_SQL;
+               int vbrResourceId = -1;
+               PreparedStatement statement = null;
+               ResultSet resultSet = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       statement.setString(1, vtnName);
+                       resultSet = statement.executeQuery();
+                       if (resultSet.next()) {
+                               vbrResourceId = resultSet.getInt(1) + 1;
+                               LOG.debug("Auto generated resource counter : " + vbrResourceId);
+                       }
+               } finally {
+                       if (resultSet != null) {
+                               resultSet.close();
+                       }
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               return vbrResourceId;
+       }
+
+       /**
+        * Insert Network information into database
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @param vBridgeBean
+        *            - Bean corresponding to os_vbr_tbl
+        * @return - insertion status
+        * @throws SQLException
+        */
+       public int insert(Connection connection, VBridgeBean vBridgeBean)
+                       throws SQLException {
+               int status;
+               final String sql = VtnOpenStackSQLFactory.INS_VBR_SQL;
+               PreparedStatement statement = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       statement.setInt(1, vBridgeBean.getVbrId());
+                       statement.setString(2, vBridgeBean.getVtnName());
+                       statement.setString(3, vBridgeBean.getVbrName());
+                       status = statement.executeUpdate();
+               } finally {
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               LOG.debug("Insertion status : " + status);
+               return status;
+       }
+
+       /**
+        * Delete Network information from database
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @param vBridgeBean
+        *            - Bean corresponding to os_vbr_tbl
+        * @return - deletion status
+        * @throws SQLException
+        */
+       public int delete(Connection connection, VBridgeBean vBridgeBean)
+                       throws SQLException {
+               int status;
+               final String sql = VtnOpenStackSQLFactory.DEL_VBR_SQL;
+               PreparedStatement statement = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       statement.setInt(1, vBridgeBean.getVbrId());
+                       statement.setString(2, vBridgeBean.getVtnName());
+                       statement.setString(3, vBridgeBean.getVbrName());
+                       status = statement.executeUpdate();
+               } finally {
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               LOG.debug("Deletion status : " + status);
+               return status;
+       }
+
+       /**
+        * Check the existence of Network
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @param vBridgeBean
+        *            - Bean corresponding to os_vbr_tbl
+        * @return - true, if resource found
+        * @throws SQLException
+        */
+       public boolean isVbrFound(Connection connection, VBridgeBean vBridgeBean)
+                       throws SQLException {
+               boolean isFound = false;
+               final String sql = VtnOpenStackSQLFactory.CHK_VBR_SQL;
+               PreparedStatement statement = null;
+               ResultSet resultSet = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       statement.setString(1, vBridgeBean.getVtnName());
+                       statement.setString(2, vBridgeBean.getVbrName());
+                       resultSet = statement.executeQuery();
+                       if (resultSet.next() && resultSet.getInt(1) > 0) {
+                               isFound = true;
+                       }
+               } finally {
+                       if (resultSet != null) {
+                               resultSet.close();
+                       }
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               return isFound;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dao/VBridgeInterfaceDao.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dao/VBridgeInterfaceDao.java
new file mode 100644 (file)
index 0000000..a6a66f0
--- /dev/null
@@ -0,0 +1,306 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.openstack.dao;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.openstack.beans.VBridgeInterfaceBean;
+import org.opendaylight.vtn.javaapi.openstack.dbmanager.VtnOpenStackSQLFactory;
+
+/**
+ * Data Access Object Class for os_vbr_if_tbl table
+ */
+public class VBridgeInterfaceDao {
+
+       private static final Logger LOG = Logger
+                       .getLogger(VBridgeInterfaceDao.class.getName());
+
+       /**
+        * Get resource counter for Port
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @return - next incremented counter
+        * @throws SQLException
+        */
+       public int getNextId(Connection connection, String vtnName)
+                       throws SQLException {
+               final String sql = VtnOpenStackSQLFactory.SEL_VBR_IF_ID_SQL;
+               int vbrIfResourceId = -1;
+               PreparedStatement statement = null;
+               ResultSet resultSet = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       statement.setString(1, vtnName);
+                       resultSet = statement.executeQuery();
+                       if (resultSet.next()) {
+                               vbrIfResourceId = resultSet.getInt(1) + 1;
+                               LOG.debug("Auto generated resource counter : "
+                                               + vbrIfResourceId);
+                       }
+               } finally {
+                       if (resultSet != null) {
+                               resultSet.close();
+                       }
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               return vbrIfResourceId;
+       }
+
+       /**
+        * Insert Port information into database
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @param vInterfaceBean
+        *            - Bean corresponding to os_vbr_if_tbl
+        * @return - insertion status
+        * @throws SQLException
+        */
+       public int
+                       insert(Connection connection, VBridgeInterfaceBean vInterfaceBean)
+                                       throws SQLException {
+               int status;
+               final String sql = VtnOpenStackSQLFactory.INS_VBR_IF_SQL;
+               PreparedStatement statement = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       statement.setInt(1, vInterfaceBean.getVbrIfId());
+                       statement.setString(2, vInterfaceBean.getVtnName());
+                       statement.setString(3, vInterfaceBean.getVbrName());
+                       statement.setString(4, vInterfaceBean.getVbrIfName());
+                       statement.setString(5, vInterfaceBean.getMapType());
+                       statement.setString(6, vInterfaceBean.getLogicalPortId());
+                       status = statement.executeUpdate();
+               } finally {
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               LOG.debug("Insertion status : " + status);
+               return status;
+       }
+
+       /**
+        * Insert Port information into database
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @param vInterfaceBean
+        *            - Bean corresponding to os_vbr_if_tbl
+        * @return - deletion status
+        * @throws SQLException
+        */
+       public int
+                       delete(Connection connection, VBridgeInterfaceBean vInterfaceBean)
+                                       throws SQLException {
+               int status;
+               final String sql = VtnOpenStackSQLFactory.DEL_VBR_IF_SQL;
+               PreparedStatement statement = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       statement.setInt(1, vInterfaceBean.getVbrIfId());
+                       statement.setString(2, vInterfaceBean.getVtnName());
+                       statement.setString(3, vInterfaceBean.getVbrName());
+                       statement.setString(4, vInterfaceBean.getVbrIfName());
+                       status = statement.executeUpdate();
+               } finally {
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               LOG.debug("Deletion status : " + status);
+               return status;
+       }
+
+       /**
+        * Retrieve map_type information into database
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @param vInterfaceBean
+        *            - Bean corresponding to os_vbr_if_tbl
+        * @return - map_type
+        * @throws SQLException
+        */
+       public String getMapType(Connection connection,
+                       VBridgeInterfaceBean vInterfaceBean) throws SQLException {
+               final String sql = VtnOpenStackSQLFactory.SEL_VBR_IF_MAP_SQL;
+               String mapType = null;
+               PreparedStatement statement = null;
+               ResultSet resultSet = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       statement.setString(1, vInterfaceBean.getVtnName());
+                       statement.setString(2, vInterfaceBean.getVbrName());
+                       statement.setString(3, vInterfaceBean.getVbrIfName());
+                       resultSet = statement.executeQuery();
+                       if (resultSet.next()) {
+                               mapType = resultSet.getString(1);
+                               LOG.debug("Auto generated resource counter : " + mapType);
+                       }
+               } finally {
+                       if (resultSet != null) {
+                               resultSet.close();
+                       }
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               return mapType;
+       }
+
+       /**
+        * Retrieve logical_port_id information into database
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @param vInterfaceBean
+        *            - Bean corresponding to os_vbr_if_tbl
+        * @return - logical_port_id
+        * @throws SQLException
+        */
+       public String getLogicalPortId(Connection connection,
+                       VBridgeInterfaceBean vInterfaceBean) throws SQLException {
+               final String sql = VtnOpenStackSQLFactory.SEL_VBR_IF_LP_SQL;
+               String logicalPortId = null;
+               PreparedStatement statement = null;
+               ResultSet resultSet = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       statement.setString(1, vInterfaceBean.getVtnName());
+                       statement.setString(2, vInterfaceBean.getVbrName());
+                       statement.setString(3, vInterfaceBean.getVbrIfName());
+                       resultSet = statement.executeQuery();
+                       if (resultSet.next()) {
+                               logicalPortId = resultSet.getString(1);
+                               LOG.debug("Logical Port Id : " + logicalPortId);
+                       }
+               } finally {
+                       if (resultSet != null) {
+                               resultSet.close();
+                       }
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               return logicalPortId;
+       }
+
+       /**
+        * Check the existence of Port
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @param vInterfaceBean
+        *            - Bean corresponding to os_vbr_if_tbl
+        * @return - true, if resource found
+        * @throws SQLException
+        */
+       public boolean isVbrIfFound(Connection connection,
+                       VBridgeInterfaceBean vInterfaceBean) throws SQLException {
+               boolean isFound = false;
+               final String sql = VtnOpenStackSQLFactory.CHK_VBR_IF_SQL;
+               PreparedStatement statement = null;
+               ResultSet resultSet = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       statement.setString(1, vInterfaceBean.getVtnName());
+                       statement.setString(2, vInterfaceBean.getVbrName());
+                       statement.setString(3, vInterfaceBean.getVbrIfName());
+                       resultSet = statement.executeQuery();
+                       if (resultSet.next() && resultSet.getInt(1) > 0) {
+                               isFound = true;
+                       }
+               } finally {
+                       if (resultSet != null) {
+                               resultSet.close();
+                       }
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               return isFound;
+       }
+
+       /**
+        * Update map_type and logical_port_id into database
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @param vInterfaceBean
+        *            - Bean corresponding to os_vbr_if_tbl
+        * @return - update status
+        * @throws SQLException
+        */
+       public int updateVlanMapInfo(Connection connection,
+                       VBridgeInterfaceBean vInterfaceBean) throws SQLException {
+               int status;
+               final String sql = VtnOpenStackSQLFactory.UP_VBR_IF_SQL;
+               PreparedStatement statement = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       statement.setString(1, vInterfaceBean.getMapType());
+                       statement.setString(2, vInterfaceBean.getLogicalPortId());
+                       statement.setString(3, vInterfaceBean.getVtnName());
+                       statement.setString(4, vInterfaceBean.getVbrName());
+                       statement.setString(5, vInterfaceBean.getVbrIfName());
+                       status = statement.executeUpdate();
+               } finally {
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               LOG.debug("Update status : " + status);
+               return status;
+       }
+       
+       /**
+        * Retrieve if_id from database for specific vbr_name and vtn_name
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @param vInterfaceBean
+        *            - Bean corresponding to os_vbr_if_tbl
+        * @return - list of if_id
+        * @throws SQLException
+        */
+       public List<Integer> getVbrIfIds(Connection connection,
+                       VBridgeInterfaceBean vInterfaceBean) throws SQLException {
+               List<Integer> list = new ArrayList<Integer>();
+               final String sql = VtnOpenStackSQLFactory.SEL_VBR_IF_IDS_SQL;
+               PreparedStatement statement = null;
+               ResultSet resultSet = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       statement.setString(1, vInterfaceBean.getVtnName());
+                       statement.setString(2, vInterfaceBean.getVbrName());
+                       resultSet = statement.executeQuery();
+                       while (resultSet.next()) {
+                               list.add(resultSet.getInt(1));
+                       }
+               } finally {
+                       if (resultSet != null) {
+                               resultSet.close();
+                       }
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               return list;
+       }       
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dao/VRouterDao.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dao/VRouterDao.java
new file mode 100644 (file)
index 0000000..940f0cc
--- /dev/null
@@ -0,0 +1,120 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.openstack.dao;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.openstack.beans.VRouterBean;
+import org.opendaylight.vtn.javaapi.openstack.dbmanager.VtnOpenStackSQLFactory;
+
+/**
+ * Data Access Object Class for os_vrt_tbl table
+ */
+public class VRouterDao {
+
+       private static final Logger LOG = Logger.getLogger(VRouterDao.class
+                       .getName());
+
+       /**
+        * Insert Router information into database
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @param vRouterBean
+        *            - Bean corresponding to os_vrt_tbl
+        * @return - insertion status
+        * @throws SQLException
+        */
+       public int insert(Connection connection, VRouterBean vRouterBean)
+                       throws SQLException {
+               int status;
+               final String sql = VtnOpenStackSQLFactory.INS_VRT_SQL;
+               PreparedStatement statement = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       statement.setString(1, vRouterBean.getVtnName());
+                       statement.setString(2, vRouterBean.getVrtName());
+                       status = statement.executeUpdate();
+               } finally {
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               LOG.debug("Insertion status : " + status);
+               return status;
+       }
+
+       /**
+        * Delete Router information into database
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @param vRouterBean
+        *            - Bean corresponding to os_vrt_tbl
+        * @return - deletion status
+        * @throws SQLException
+        */
+       public int delete(Connection connection, VRouterBean vRouterBean)
+                       throws SQLException {
+               int status;
+               final String sql = VtnOpenStackSQLFactory.DEL_VRT_SQL;
+               PreparedStatement statement = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       statement.setString(1, vRouterBean.getVtnName());
+                       statement.setString(2, vRouterBean.getVrtName());
+                       status = statement.executeUpdate();
+               } finally {
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               LOG.debug("Deletion status : " + status);
+               return status;
+       }
+
+       /**
+        * Check the existence of Router
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @param vRouterBean
+        *            - Bean corresponding to os_vrt_tbl
+        * @return - true, if resource found
+        * @throws SQLException
+        */
+       public boolean isVrtFound(Connection connection, VRouterBean vRouterBean)
+                       throws SQLException {
+               boolean isFound = false;
+               final String sql = VtnOpenStackSQLFactory.CHK_VRT_SQL;
+               PreparedStatement statement = null;
+               ResultSet resultSet = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       statement.setString(1, vRouterBean.getVtnName());
+                       statement.setString(2, vRouterBean.getVrtName());
+                       resultSet = statement.executeQuery();
+                       if (resultSet.next() && resultSet.getInt(1) > 0) {
+                               isFound = true;
+                       }
+               } finally {
+                       if (resultSet != null) {
+                               resultSet.close();
+                       }
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               return isFound;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dao/VRouterInterfaceDao.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dao/VRouterInterfaceDao.java
new file mode 100644 (file)
index 0000000..671277c
--- /dev/null
@@ -0,0 +1,226 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.openstack.dao;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.openstack.beans.VRouterInterfaceBean;
+import org.opendaylight.vtn.javaapi.openstack.dbmanager.VtnOpenStackSQLFactory;
+
+/**
+ * Data Access Object Class for os_vrt_if_tbl table
+ */
+public class VRouterInterfaceDao {
+
+       /* Logger instance */
+       private static final Logger LOG = Logger
+                       .getLogger(VRouterInterfaceDao.class.getName());
+
+       /**
+        * Get resource counter for Router interface
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @return - next incremented counter
+        * @throws SQLException
+        */
+       public int getNextId(Connection connection, String vtnName)
+                       throws SQLException {
+               final String sql = VtnOpenStackSQLFactory.SEL_VRT_IF_ID_SQL;
+               int vrtIfResourceId = -1;
+               PreparedStatement statement = null;
+               ResultSet resultSet = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       statement.setString(1, vtnName);
+                       resultSet = statement.executeQuery();
+                       if (resultSet.next()) {
+                               vrtIfResourceId = resultSet.getInt(1) + 1;
+                               LOG.debug("Auto generated resource counter : "
+                                               + vrtIfResourceId);
+                       }
+               } finally {
+                       if (resultSet != null) {
+                               resultSet.close();
+                       }
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               return vrtIfResourceId;
+       }
+
+       /**
+        * Insert Router interface information into database
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @param vInterfaceBean
+        *            - Bean corresponding to os_vrt_if_tbl
+        * @return - insertion status
+        * @throws SQLException
+        */
+       public int
+                       insert(Connection connection, VRouterInterfaceBean vInterfaceBean)
+                                       throws SQLException {
+               int status;
+               final String sql = VtnOpenStackSQLFactory.INS_VRT_IF_SQL;
+               PreparedStatement statement = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       statement.setInt(1, vInterfaceBean.getVrtIfId());
+                       statement.setString(2, vInterfaceBean.getVtnName());
+                       statement.setString(3, vInterfaceBean.getVrtName());
+                       statement.setString(4, vInterfaceBean.getVrtIfName());
+                       statement.setString(5, vInterfaceBean.getVbrName());
+                       status = statement.executeUpdate();
+               } finally {
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               LOG.debug("Insertion status : " + status);
+               return status;
+       }
+
+       /**
+        * Retrieve vbr_name from database
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @param vInterfaceBean
+        *            - Bean corresponding to os_vrt_if_tbl
+        * @return - retrieved vbr_name
+        * @throws SQLException
+        */
+       public String getVbridgeName(Connection connection,
+                       VRouterInterfaceBean vInterfaceBean) throws SQLException {
+               final String sql = VtnOpenStackSQLFactory.SEL_VRT_IF_VBR_SQL;
+               String vbrName = null;
+               PreparedStatement statement = null;
+               ResultSet resultSet = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       statement.setString(1, vInterfaceBean.getVtnName());
+                       statement.setInt(2, vInterfaceBean.getVrtIfId());
+                       resultSet = statement.executeQuery();
+                       if (resultSet.next()) {
+                               vbrName = resultSet.getString(1);
+                               LOG.debug("Retrieved vbr_name : " + vbrName);
+                       }
+               } finally {
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               return vbrName;
+       }
+
+       /**
+        * Delete Router interface information from database
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @param vInterfaceBean
+        *            - Bean corresponding to os_vrt_if_tbl
+        * @return - deletion status
+        * @throws SQLException
+        */
+       public int
+                       delete(Connection connection, VRouterInterfaceBean vInterfaceBean)
+                                       throws SQLException {
+               int status;
+               final String sql = VtnOpenStackSQLFactory.DEL_VRT_IF_SQL;
+               PreparedStatement statement = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       statement.setString(1, vInterfaceBean.getVtnName());
+                       statement.setString(2, vInterfaceBean.getVrtName());
+                       statement.setInt(3, vInterfaceBean.getVrtIfId());
+                       status = statement.executeUpdate();
+               } finally {
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               LOG.debug("Deletion status : " + status);
+               return status;
+       }
+
+       /**
+        * Check the existence of Router interface
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @param vInterfaceBean
+        *            - Bean corresponding to os_vrt_if_tbl
+        * @return - true, if resource found
+        * @throws SQLException
+        */
+       public boolean isVrtIfFound(Connection connection,
+                       VRouterInterfaceBean vInterfaceBean) throws SQLException {
+               boolean isFound = false;
+               final String sql = VtnOpenStackSQLFactory.CHK_VRT_IF_SQL;
+               PreparedStatement statement = null;
+               ResultSet resultSet = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       statement.setString(1, vInterfaceBean.getVtnName());
+                       statement.setString(2, vInterfaceBean.getVrtName());
+                       statement.setString(3, vInterfaceBean.getVrtIfName());
+                       resultSet = statement.executeQuery();
+                       if (resultSet.next() && resultSet.getInt(1) > 0) {
+                               isFound = true;
+                       }
+               } finally {
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               return isFound;
+       }
+       
+       /**
+        * Retrieve list of counters from database
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @param vInterfaceBean
+        *            - Bean corresponding to os_vrt_if_tbl
+        * @return - retrieved vbr_name
+        * @throws SQLException
+        */
+       public List<Integer> getVrtIfIds(Connection connection,
+                       VRouterInterfaceBean vInterfaceBean) throws SQLException {
+               final String sql = VtnOpenStackSQLFactory.SEL_VRT_IF_IDS_SQL;
+               List<Integer> ids = new ArrayList<Integer>();
+               PreparedStatement statement = null;
+               ResultSet resultSet = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       statement.setString(1, vInterfaceBean.getVtnName());
+                       statement.setString(2, vInterfaceBean.getVrtName());
+                       resultSet = statement.executeQuery();
+                       while (resultSet.next()) {
+                               ids.add(resultSet.getInt(1));
+                       }
+               } finally {
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               return ids;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dao/VtnDao.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dao/VtnDao.java
new file mode 100644 (file)
index 0000000..48744ab
--- /dev/null
@@ -0,0 +1,149 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.openstack.dao;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.openstack.beans.VtnBean;
+import org.opendaylight.vtn.javaapi.openstack.dbmanager.VtnOpenStackSQLFactory;
+
+/**
+ * Data Access Object Class for os_vtn_tbl table
+ */
+public class VtnDao {
+
+       private static final Logger LOG = Logger.getLogger(VtnDao.class.getName());
+
+       /**
+        * Get resource counter for Tenant
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @return - next incremented counter
+        * @throws SQLException
+        */
+       public int getNextId(Connection connection) throws SQLException {
+               final String sql = VtnOpenStackSQLFactory.SEL_VTN_ID_SQL;
+               int vtnResourceId = -1;
+               PreparedStatement statement = null;
+               ResultSet resultSet = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       resultSet = statement.executeQuery();
+                       if (resultSet.next()) {
+                               vtnResourceId = resultSet.getInt(1) + 1;
+                               LOG.debug("Auto generated resource counter : " + vtnResourceId);
+                       }
+               } finally {
+                       if (resultSet != null) {
+                               resultSet.close();
+                       }
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               return vtnResourceId;
+       }
+
+       /**
+        * Insert Tenant information into database
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @param vtnBean
+        *            - Bean corresponding to os_vtn_tbl
+        * @return - insertion status
+        * @throws SQLException
+        */
+       public int insert(Connection connection, VtnBean vtnBean)
+                       throws SQLException {
+               int status;
+               final String sql = VtnOpenStackSQLFactory.INS_VTN_SQL;
+               PreparedStatement statement = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       statement.setInt(1, vtnBean.getVtnId());
+                       statement.setString(2, vtnBean.getVtnName());
+                       status = statement.executeUpdate();
+               } finally {
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               LOG.debug("Insertion status : " + status);
+               return status;
+       }
+
+       /**
+        * Delete Tenant information into database
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @param vtnBean
+        *            - Bean corresponding to os_vtn_tbl
+        * @return - deletion status
+        * @throws SQLException
+        */
+       public int delete(Connection connection, VtnBean vtnBean)
+                       throws SQLException {
+               int status;
+               final String sql = VtnOpenStackSQLFactory.DEL_VTN_SQL;
+               PreparedStatement statement = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       statement.setInt(1, vtnBean.getVtnId());
+                       statement.setString(2, vtnBean.getVtnName());
+                       status = statement.executeUpdate();
+               } finally {
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               LOG.debug("Deletion status : " + status);
+               return status;
+       }
+
+       /**
+        * Check the existence of Tenant
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @param vtnBean
+        *            - Bean corresponding to os_vtn_tbl
+        * @return - true, if resource found
+        * @throws SQLException
+        */
+       public boolean isVtnFound(Connection connection, VtnBean vtnBean)
+                       throws SQLException {
+               boolean isFound = false;
+               final String sql = VtnOpenStackSQLFactory.CHK_VTN_SQL;
+               PreparedStatement statement = null;
+               ResultSet resultSet = null;
+               try {
+                       statement = connection.prepareStatement(sql);
+                       statement.setString(1, vtnBean.getVtnName());
+                       resultSet = statement.executeQuery();
+                       if (resultSet.next() && resultSet.getInt(1) > 0) {
+                               isFound = true;
+                       }
+               } finally {
+                       if (resultSet != null) {
+                               resultSet.close();
+                       }
+                       if (statement != null) {
+                               statement.close();
+                       }
+               }
+               return isFound;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dao/package-info.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dao/package-info.java
new file mode 100644 (file)
index 0000000..a0c908e
--- /dev/null
@@ -0,0 +1,13 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * Package contains DAO classes for OpenStack resources
+ */
+package org.opendaylight.vtn.javaapi.openstack.dao;
\ No newline at end of file
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dbmanager/ConnectionProperties.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dbmanager/ConnectionProperties.java
new file mode 100644 (file)
index 0000000..e386a66
--- /dev/null
@@ -0,0 +1,148 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.openstack.dbmanager;
+
+/**
+ * Bean Class for DB Connection Properties
+ */
+public class ConnectionProperties {
+
+       private String dbDriver, dbURL, dbUsername, dbPassword;
+
+       private int maxPossibleConnections;
+       private int initialConnections;
+
+       private boolean waitforUsedConnections;
+
+       /**
+        * Getter for dbDriver
+        * 
+        * @return
+        */
+       public String getDbDriver() {
+               return dbDriver;
+       }
+
+       /**
+        * Setter for dbDriver
+        * 
+        * @return
+        */
+       public void setDbDriver(String dbDriver) {
+               this.dbDriver = dbDriver;
+       }
+
+       /**
+        * Getter for dbURL
+        * 
+        * @return
+        */
+       public String getDbURL() {
+               return dbURL;
+       }
+
+       /**
+        * Setter for dbURL
+        * 
+        * @return
+        */
+       public void setDbURL(String dbURL) {
+               this.dbURL = dbURL;
+       }
+
+       /**
+        * Getter for dbUsername
+        * 
+        * @return
+        */
+       public String getDbUsername() {
+               return dbUsername;
+       }
+
+       /**
+        * Setter for dbUsername
+        * 
+        * @return
+        */
+       public void setDbUsername(String dbUsername) {
+               this.dbUsername = dbUsername;
+       }
+
+       /**
+        * Getter for dbPassword
+        * 
+        * @return
+        */
+       public String getDbPassword() {
+               return dbPassword;
+       }
+
+       /**
+        * Setter for dbPassword
+        * 
+        * @return
+        */
+       public void setDbPassword(String dbPassword) {
+               this.dbPassword = dbPassword;
+       }
+
+       /**
+        * Getter for maxPossibleConnections
+        * 
+        * @return
+        */
+       public int getMaxPossibleConnections() {
+               return maxPossibleConnections;
+       }
+
+       /**
+        * Setter for maxPossibleConnections
+        * 
+        * @return
+        */
+       public void setMaxPossibleConnections(int maxPossibleConnections) {
+               this.maxPossibleConnections = maxPossibleConnections;
+       }
+
+       /**
+        * Getter for initialConnections
+        * 
+        * @return
+        */
+       public int getInitialConnections() {
+               return initialConnections;
+       }
+
+       /**
+        * Setter for initialConnections
+        * 
+        * @return
+        */
+       public void setInitialConnections(int initialConnections) {
+               this.initialConnections = initialConnections;
+       }
+
+       /**
+        * Getter for waitforUsedConnections
+        * 
+        * @return
+        */
+       public boolean isWaitforUsedConnections() {
+               return waitforUsedConnections;
+       }
+
+       /**
+        * Setter for waitforUsedConnections
+        * 
+        * @return
+        */
+       public void setWaitforUsedConnections(boolean waitforUsedConnections) {
+               this.waitforUsedConnections = waitforUsedConnections;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dbmanager/DataBaseConnectionPool.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dbmanager/DataBaseConnectionPool.java
new file mode 100644 (file)
index 0000000..176ea10
--- /dev/null
@@ -0,0 +1,290 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.openstack.dbmanager;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.SQLException;
+import java.util.Vector;
+
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
+import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
+import org.opendaylight.vtn.javaapi.exception.VtnServiceExceptionHandler;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
+
+/**
+ * DataBase Connection Pool Class. Implements the connection pooling mechanism
+ * for OpenStack operations
+ */
+public class DataBaseConnectionPool implements Runnable {
+
+       private static final Logger LOG = Logger
+                       .getLogger(DataBaseConnectionPool.class.getName());
+
+       private final ConnectionProperties connectionProperties;
+
+       private boolean pendingConnection = false;
+
+       private Vector<Connection> availableConnections, usedConnections;
+
+       /**
+        * Constructor of Database Connection Pooling. Initialize the connection
+        * pool with initial connection pool size
+        * 
+        * @param connectionProperties
+        * @param exceptionHandler
+        * @throws VtnServiceException
+        */
+       public DataBaseConnectionPool(ConnectionProperties connectionProperties,
+                       final VtnServiceExceptionHandler exceptionHandler)
+                       throws VtnServiceException {
+
+               LOG.trace("Start DataBaseConnectionPool()");
+
+               this.connectionProperties = connectionProperties;
+
+               if (this.connectionProperties.getInitialConnections() > this.connectionProperties
+                               .getMaxPossibleConnections()) {
+                       this.connectionProperties
+                                       .setInitialConnections(this.connectionProperties
+                                                       .getMaxPossibleConnections());
+               }
+
+               this.availableConnections = new Vector<Connection>(
+                               connectionProperties.getInitialConnections());
+               this.usedConnections = new Vector<Connection>();
+
+               try {
+                       // create connection with initial connection pool size
+                       for (int i = 0; i < this.connectionProperties
+                                       .getInitialConnections(); i++) {
+                               this.availableConnections.addElement(createConnection());
+                       }
+               } catch (final SQLException e) {
+                       LOG.error("Connection Pooling Initialization Error.");
+                       exceptionHandler
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
+                                                       UncJavaAPIErrorCode.DB_CONN_INIT_ERROR
+                                                                       .getErrorCode(),
+                                                       UncJavaAPIErrorCode.DB_CONN_INIT_ERROR
+                                                                       .getErrorMessage(), e);
+               }
+
+               LOG.debug("Connection Pool Initialized with "
+                               + this.connectionProperties.getInitialConnections());
+
+               LOG.trace("Complete DataBaseConnectionPool()");
+       }
+
+       /**
+        * Returns the instance of connection for connection pool. If connection is
+        * not available in connection pool then create new connection till max
+        * connection pool size
+        * 
+        * @return - Connection instance
+        * @throws SQLException
+        */
+       public synchronized Connection getConnection() throws SQLException {
+
+               LOG.trace("Start DataBaseConnectionPool#getConnection()");
+
+               if (!availableConnections.isEmpty()) {
+                       /*
+                        * if connection is available in prepared connection pool, the
+                        * return from connection pool. Update the available connection and
+                        * used connection list as per result of operation
+                        */
+                       LOG.debug("Connection can be provided by initialized connection pool.");
+                       final Connection connection = availableConnections.lastElement();
+                       availableConnections
+                                       .removeElementAt(availableConnections.size() - 1);
+
+                       if (connection.isClosed()) {
+                               LOG.warning("Connection had been closed. Create new connection and return");
+                               notifyAll();
+                               return getConnection();
+                       } else {
+                               LOG.debug("Use connection : " + connection);
+                               usedConnections.addElement(connection);
+                               LOG.trace("Complete DataBaseConnectionPool#getConnection()");
+                               return connection;
+                       }
+               } else {
+                       LOG.debug("Connection cannot be provided by initialized connection pool.");
+                       /*
+                        * If connection is not available then create new connection after
+                        * checking max connection pool size
+                        */
+                       if ((countConnections() < connectionProperties
+                                       .getMaxPossibleConnections()) && !pendingConnection) {
+                               LOG.debug("Initial connections are in use, create new back ground connection.");
+                               createBackGroundConnection();
+                       } else if (!connectionProperties.isWaitforUsedConnections()) {
+                               /*
+                                * if waiting is allowed in system, the throw error in case of
+                                * connection pool size is already reached to its maximum value
+                                */
+                               LOG.error("Waiting is not required, throw error.");
+                               throw new SQLException("Connection limit reached");
+                       }
+                       try {
+                               // wait for connections to be free, if wait is allowed
+                               LOG.debug("Wait is possible, so wait till other connections is freed.");
+                               wait();
+                       } catch (final InterruptedException ie) {
+                               LOG.debug("Wait is interuppted by some other thread.");
+                       }
+                       return getConnection();
+               }
+       }
+
+       /**
+        * Create new connection as new thread
+        */
+       private void createBackGroundConnection() {
+
+               LOG.trace("Start DataBaseConnectionPool#createBackGroundConnection()");
+
+               LOG.debug("Back ground connection required, means some connection is in pending state.");
+               pendingConnection = true;
+               try {
+                       LOG.debug("Create connection and return.");
+                       final Thread connectThread = new Thread(this);
+                       connectThread.start();
+               } catch (final OutOfMemoryError oome) {
+                       LOG.fatal("Out of memory space error : " + oome);
+               }
+
+               LOG.trace("Complete DataBaseConnectionPool#createBackGroundConnection()");
+       }
+
+       /**
+        * Start thread to create connection, add newly created connection to
+        * available connection list
+        */
+       @Override
+       public void run() {
+
+               LOG.trace("Start DataBaseConnectionPool#run()");
+
+               try {
+                       final Connection connection = createConnection();
+                       synchronized (this) {
+                               availableConnections.addElement(connection);
+                               pendingConnection = false;
+                               notifyAll();
+                       }
+               } catch (final Exception e) {
+                       LOG.error("Error ocurred while creating new connection.");
+               }
+
+               LOG.trace("Complete DataBaseConnectionPool#run()");
+       }
+
+       /**
+        * Create connection by using JDBC APIs
+        * 
+        * @return
+        * @throws SQLException
+        */
+       private Connection createConnection() throws SQLException {
+
+               LOG.trace("Start DataBaseConnectionPool#createConnection()");
+
+               try {
+                       Class.forName(connectionProperties.getDbDriver());
+                       final Connection connection = DriverManager.getConnection(
+                                       connectionProperties.getDbURL(),
+                                       connectionProperties.getDbUsername(),
+                                       connectionProperties.getDbPassword());
+                       connection.setAutoCommit(false);
+                       LOG.trace("Complete DataBaseConnectionPool#createConnection()");
+                       return connection;
+               } catch (final ClassNotFoundException cnfe) {
+                       LOG.error("Can't find class for driver : "
+                                       + connectionProperties.getDbDriver());
+                       throw new SQLException("Can't find class for driver: "
+                                       + connectionProperties.getDbDriver());
+               }
+       }
+
+       /**
+        * Free specify connection to make it available for new requests
+        * 
+        * @param connection
+        */
+       public synchronized void freeConnection(Connection connection) {
+
+               LOG.trace("Start DataBaseConnectionPool#freeConnection()");
+
+               usedConnections.removeElement(connection);
+               availableConnections.addElement(connection);
+               notifyAll();
+
+               LOG.trace("Complete DataBaseConnectionPool#freeConnection()");
+       }
+
+       /**
+        * Get the count of connection available to be used
+        * 
+        * @return
+        */
+       public synchronized int countConnections() {
+
+               LOG.trace("Return from DataBaseConnectionPool#countConnections()");
+
+               return availableConnections.size() + usedConnections.size();
+       }
+
+       /**
+        * Close all connections and re-initialize available and used connection
+        * lists with no connections
+        */
+       public synchronized void closeAllConnections() {
+
+               LOG.trace("Start DataBaseConnectionPool#closeAllConnections()");
+
+               closeConnections(availableConnections);
+               availableConnections = new Vector<Connection>();
+               closeConnections(usedConnections);
+               usedConnections = new Vector<Connection>();
+
+               LOG.trace("Complete DataBaseConnectionPool#closeAllConnections()");
+       }
+
+       /**
+        * Close all JDBC connection specified by vector
+        * 
+        * @param connections
+        */
+       private void closeConnections(Vector<Connection> connections) {
+
+               LOG.trace("Start DataBaseConnectionPool#closeConnections()");
+
+               try {
+                       for (int i = 0; i < connections.size(); i++) {
+
+                               final Connection connection = connections.elementAt(i);
+                               if (!connection.isClosed()) {
+                                       LOG.debug("Close connections, if it is not closed.");
+                                       connection.close();
+                               }
+                       }
+               } catch (final SQLException sqle) {
+                       LOG.error("Error occurred while closing the connection : " + sqle);
+               }
+
+               LOG.trace("Complete DataBaseConnectionPool#closeConnections()");
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dbmanager/ResourceIdManager.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dbmanager/ResourceIdManager.java
new file mode 100644 (file)
index 0000000..e95d17b
--- /dev/null
@@ -0,0 +1,233 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.openstack.dbmanager;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.util.List;
+
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.openstack.beans.FreeCounterBean;
+import org.opendaylight.vtn.javaapi.openstack.beans.StaticRouteBean;
+import org.opendaylight.vtn.javaapi.openstack.beans.VBridgeBean;
+import org.opendaylight.vtn.javaapi.openstack.beans.VBridgeInterfaceBean;
+import org.opendaylight.vtn.javaapi.openstack.beans.VRouterBean;
+import org.opendaylight.vtn.javaapi.openstack.beans.VRouterInterfaceBean;
+import org.opendaylight.vtn.javaapi.openstack.beans.VtnBean;
+import org.opendaylight.vtn.javaapi.openstack.constants.VtnServiceOpenStackConsts;
+import org.opendaylight.vtn.javaapi.openstack.dao.FreeCounterDao;
+import org.opendaylight.vtn.javaapi.openstack.dao.StaticRouteDao;
+import org.opendaylight.vtn.javaapi.openstack.dao.VBridgeDao;
+import org.opendaylight.vtn.javaapi.openstack.dao.VBridgeInterfaceDao;
+import org.opendaylight.vtn.javaapi.openstack.dao.VRouterDao;
+import org.opendaylight.vtn.javaapi.openstack.dao.VRouterInterfaceDao;
+import org.opendaylight.vtn.javaapi.openstack.dao.VtnDao;
+
+/**
+ * ResourceId Manager class that contains interface for management of
+ * auto-generated resource ids in the system
+ */
+public class ResourceIdManager {
+
+       private static final Logger LOG = Logger.getLogger(ResourceIdManager.class
+                       .getName());
+
+       /**
+        * Generated resource id for specified resource First check the available
+        * counter, otherwise increment counter and return
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @param freeCounterBean
+        *            - Bean corresponding to os_free_counter_tbl
+        * @return - generated resource-id, -1 is error occurred
+        * @throws SQLException
+        */
+       public int getResourceId(Connection connection,
+                       FreeCounterBean freeCounterBean) throws SQLException {
+               LOG.trace("Start ResourceIdManager#getResourceId()");
+               int resourceCounter = -1;
+               /*
+                * Check if any resource counter is available that can be used
+                */
+               final FreeCounterDao freeCounterDao = new FreeCounterDao();
+               resourceCounter = freeCounterDao
+                               .getCounter(connection, freeCounterBean);
+
+               freeCounterBean.setResourceCounter(resourceCounter);
+
+               /*
+                * resource counter is available in free resource counter pool then use
+                * the same after deleting that from free resource counter pool. On the
+                * other hand increment counter and return.
+                */
+               if (resourceCounter != -1) {
+                       if (freeCounterDao.deleteCounter(connection, freeCounterBean) != 1) {
+                               LOG.error("Error in deletion of resource counter from os_free_counter_tbl.");
+                               resourceCounter = -1;
+                       }
+               } else {
+                       LOG.info("Resource counter is not available in os_free_counter_tbl.");
+
+                       LOG.debug("Resource counter required to be generated for  : "
+                                       + freeCounterBean.getResourceId() + " and vtn_name : "
+                                       + freeCounterBean.getVtnName());
+
+                       if (freeCounterBean.getResourceId().equalsIgnoreCase(
+                                       VtnServiceOpenStackConsts.TENANT_RES_ID)) {
+                               LOG.debug("Resource generation for VTN.");
+                               final VtnDao vtnDao = new VtnDao();
+                               resourceCounter = vtnDao.getNextId(connection);
+                       } else if (freeCounterBean.getResourceId().equalsIgnoreCase(
+                                       VtnServiceOpenStackConsts.NETWORK_RES_ID)) {
+                               LOG.debug("Resource generation for vBridge.");
+                               final VBridgeDao vBridgeDao = new VBridgeDao();
+                               resourceCounter = vBridgeDao.getNextId(connection,
+                                               freeCounterBean.getVtnName());
+                       } else if (freeCounterBean.getResourceId().equalsIgnoreCase(
+                                       VtnServiceOpenStackConsts.PORT_RES_ID)) {
+                               LOG.debug("Resource generation for port/router interface.");
+                               final VBridgeInterfaceDao vbrInterfaceDao = new VBridgeInterfaceDao();
+                               int portResourceCounter = vbrInterfaceDao.getNextId(connection,
+                                               freeCounterBean.getVtnName());
+                               final VRouterInterfaceDao vrtInterfaceDao = new VRouterInterfaceDao();
+                               int interfaceResourceCounter = vrtInterfaceDao.getNextId(
+                                               connection, freeCounterBean.getVtnName());
+                               resourceCounter = portResourceCounter
+                                               + interfaceResourceCounter - 1;
+                       }
+               }
+               LOG.info("Resource counter that will be used : " + resourceCounter);
+               LOG.trace("Complete ResourceIdManager#getResourceId()");
+               return resourceCounter;
+       }
+
+       /**
+        * Delete resource information from corresponding database table and update
+        * free resource counter pool, if resource was auto-generated
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @param freeCounterBean
+        *            - Bean corresponding to os_free_counter_tbl
+        * @param resourceBean
+        *            - Bean corresponding to resource specific table
+        * @return - true is operation executed successfully
+        * @throws SQLException
+        */
+       public boolean deleteResourceId(Connection connection,
+                       FreeCounterBean freeCounterBean, Object resourceBean)
+                       throws SQLException {
+               LOG.trace("Start ResourceIdManager#deleteResourceId()");
+
+               List<Integer> ifIds = null;
+               boolean result = false;
+               int deletionStatus = -1;
+
+               if (resourceBean instanceof VtnBean) {
+                       final VtnDao vtnDao = new VtnDao();
+                       deletionStatus = vtnDao.delete(connection, (VtnBean) resourceBean);
+               } else if (resourceBean instanceof VBridgeBean) {
+                       final VBridgeInterfaceDao vrtInterfaceDao = new VBridgeInterfaceDao();
+                       VBridgeInterfaceBean vInterfaceBean = new VBridgeInterfaceBean();
+                       vInterfaceBean.setVbrName(((VBridgeBean) resourceBean)
+                                       .getVbrName());
+                       ifIds = vrtInterfaceDao.getVbrIfIds(connection, vInterfaceBean);
+                       final VBridgeDao vBridgeDao = new VBridgeDao();
+                       deletionStatus = vBridgeDao.delete(connection,
+                                       (VBridgeBean) resourceBean);
+               } else if (resourceBean instanceof VRouterBean) {
+                       final VRouterInterfaceDao vrtInterfaceDao = new VRouterInterfaceDao();
+                       VRouterInterfaceBean vInterfaceBean = new VRouterInterfaceBean();
+                       vInterfaceBean.setVtnName(freeCounterBean.getVtnName());
+                       vInterfaceBean
+                                       .setVrtName(((VRouterBean) resourceBean).getVrtName());
+                       ifIds = vrtInterfaceDao.getVrtIfIds(connection, vInterfaceBean);
+                       final VRouterDao vRouterDao = new VRouterDao();
+                       deletionStatus = vRouterDao.delete(connection,
+                                       (VRouterBean) resourceBean);
+               } else if (resourceBean instanceof VRouterInterfaceBean) {
+                       final VRouterInterfaceDao vInterfaceDao = new VRouterInterfaceDao();
+                       deletionStatus = vInterfaceDao.delete(connection,
+                                       (VRouterInterfaceBean) resourceBean);
+               } else if (resourceBean instanceof VBridgeInterfaceBean) {
+                       final VBridgeInterfaceDao vInterfaceDao = new VBridgeInterfaceDao();
+                       deletionStatus = vInterfaceDao.delete(connection,
+                                       (VBridgeInterfaceBean) resourceBean);
+               } else if (resourceBean instanceof StaticRouteBean) {
+                       final StaticRouteDao staticRouteDao = new StaticRouteDao();
+                       deletionStatus = staticRouteDao.delete(connection,
+                                       (StaticRouteBean) resourceBean);
+               }
+
+               if (deletionStatus == 1) {
+                       result = manageCounter(connection, freeCounterBean, resourceBean,
+                                       ifIds);
+               }
+
+               LOG.debug("Status of operation : " + result);
+               LOG.trace("Complete ResourceIdManager#deleteResourceId()");
+               return result;
+       }
+
+       /**
+        * Manages the counters for all kind of resources available for OpenStack
+        * operations
+        * 
+        * @param connection
+        * @param freeCounterBean
+        * @param resourceBean
+        * @param ifIds2
+        * @return
+        * @throws SQLException
+        */
+       private boolean manageCounter(Connection connection,
+                       FreeCounterBean freeCounterBean, Object resourceBean,
+                       List<Integer> ifIds) throws SQLException {
+               boolean result = false;
+               final FreeCounterDao freeCounterDao = new FreeCounterDao();
+
+               /*
+                * delete child counters in case of parent entity is deleted
+                */
+               if (freeCounterBean.getResourceId().equalsIgnoreCase(
+                               VtnServiceOpenStackConsts.TENANT_RES_ID)) {
+                       FreeCounterBean localBean = new FreeCounterBean();
+                       localBean.setVtnName(((VtnBean) resourceBean).getVtnName());
+                       freeCounterDao.deleteVtnChilds(connection, localBean);
+               } else if (freeCounterBean.getResourceId().equalsIgnoreCase(
+                               VtnServiceOpenStackConsts.NETWORK_RES_ID)
+                               || freeCounterBean.getResourceId().equalsIgnoreCase(
+                                               VtnServiceOpenStackConsts.ROUTER_RES_ID)) {
+                       if (ifIds.size() > 0) {
+                               // insert unused counter into os_free_resource_counter table
+                               FreeCounterBean localBean = new FreeCounterBean();
+                               localBean.setResourceId(VtnServiceOpenStackConsts.PORT);
+                               localBean.setVtnName(freeCounterBean.getVtnName());
+                               for (int i = 0; i < ifIds.size(); i++) {
+                                       localBean.setResourceCounter(ifIds.get(i));
+                                       freeCounterDao.insertCounter(connection, localBean);
+                               }
+                       }
+               }
+
+               /*
+                * if resource counter is 0, then no need to insert resource counter in
+                * pool
+                */
+               if (freeCounterBean.getResourceCounter() == 0) {
+                       LOG.debug("Resource counter is not auto-generated, insertion not required in os_res_counter table.");
+                       result = true;
+               } else {
+                       LOG.debug("Resource is auto-generated, insertion required in os_res_counter table.");
+                       result = freeCounterDao.insertCounter(connection, freeCounterBean) == 1;
+               }
+               return result;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dbmanager/VtnOpenStackSQLFactory.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dbmanager/VtnOpenStackSQLFactory.java
new file mode 100644 (file)
index 0000000..81861d6
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.openstack.dbmanager;
+
+/**
+ * SQL Factory class for all OpenStack related operations
+ */
+public class VtnOpenStackSQLFactory {
+
+       /* CRUD SQLs for os_free_counter_tbl */
+       public static final String SEL_FC_SQL = "select os_res_counter from os_free_counter_tbl where os_res_id = ? and os_vtn_name = ? order by os_res_counter limit 1";
+       public static final String DEL_FC_SQL = "delete from os_free_counter_tbl where os_res_id = ? and os_vtn_name = ? and os_res_counter = ?";
+       public static final String INS_FC_SQL = "insert into os_free_counter_tbl(os_res_counter,os_vtn_name,os_res_id) values(?,?,?)";
+       public static final String DEL_VTN_CHILD_SQL = "delete from os_free_counter_tbl where os_vtn_name = ? and os_res_id != ?";
+       public static final String DEL_NODE_CHILD_SQL = "delete from os_free_counter_tbl where os_vtn_name = ?";
+
+       /* CRUD SQLs for os_vtn_tbl */
+       public static final String CHK_VTN_SQL = "select count(*) from os_vtn_tbl where os_vtn_name = ?";
+       public static final String SEL_VTN_ID_SQL = "select count(*) from os_vtn_tbl where os_vtn_id != 0";
+       public static final String INS_VTN_SQL = "insert into os_vtn_tbl values(?, ?)";
+       public static final String DEL_VTN_SQL = "delete from os_vtn_tbl where os_vtn_id = ? and os_vtn_name = ?";
+       
+       /* CRUD SQLs for os_vbr_tbl */
+       public static final String CHK_VBR_SQL = "select count(*) from os_vbr_tbl where os_vtn_name = ? and os_vbr_name = ?";
+       public static final String SEL_VBR_ID_SQL = "select count(*) from os_vbr_tbl where os_vtn_name = ? and os_vbr_id != 0";
+       public static final String INS_VBR_SQL = "insert into os_vbr_tbl(os_vbr_id, os_vtn_name, os_vbr_name) values(?, ?, ?)";
+       public static final String DEL_VBR_SQL = "delete from os_vbr_tbl where os_vbr_id = ? and os_vtn_name = ? and os_vbr_name = ?";
+
+       /* CRUD SQLs for os_vbr_if_tbl */
+       public static final String CHK_VBR_IF_SQL = "select count(*) from os_vbr_if_tbl where os_vtn_name = ? and os_vbr_name = ? and os_vbr_if_name=?";
+       public static final String SEL_VBR_IF_ID_SQL = "select count(*) from os_vbr_if_tbl where os_vtn_name = ? and os_vbr_if_id != 0";
+       public static final String SEL_VBR_IF_MAP_SQL = "select os_map_type from os_vbr_if_tbl where os_vtn_name = ? and os_vbr_name = ? and os_vbr_if_name=?";
+       public static final String SEL_VBR_IF_LP_SQL = "select os_logical_port_id from os_vbr_if_tbl where os_vtn_name = ? and os_vbr_name = ? and os_vbr_if_name=?";
+       public static final String INS_VBR_IF_SQL = "insert into os_vbr_if_tbl(os_vbr_if_id, os_vtn_name, os_vbr_name, os_vbr_if_name, os_map_type, os_logical_port_id) values(?, ?, ?, ?, ?, ?)";
+       public static final String UP_VBR_IF_SQL = "update os_vbr_if_tbl set os_map_type = ?, os_logical_port_id = ? where os_vtn_name = ? and os_vbr_name = ? and os_vbr_if_name= ?";
+       public static final String DEL_VBR_IF_SQL = "delete from os_vbr_if_tbl where os_vbr_if_id = ? and os_vtn_name = ? and os_vbr_name = ? and os_vbr_if_name=?";
+       public static final String SEL_VBR_IF_IDS_SQL = "select os_vbr_if_id from os_vbr_if_tbl where os_vtn_name = ? and os_vbr_name = ? and os_vbr_if_id != 0";
+
+       /* CRUD SQLs for os_vbr_if_filter_tbl */
+       public static final String INS_VBR_IF_FL_SQL = "insert into os_vbr_if_filter_tbl(os_vtn_name, os_vbr_name, os_vbr_if_name, os_vbr_if_filter_name) values(?, ?, ?, ?)";
+       public static final String SEL_VBR_IF_FL_SQL = "select os_vbr_if_filter_name from os_vbr_if_filter_tbl where os_vtn_name = ? and os_vbr_name = ? and os_vbr_if_name=?";
+       public static final String DEL_VBR_IF_FL_SQL = "delete from os_vbr_if_filter_tbl where os_vtn_name = ? and os_vbr_name = ? and os_vbr_if_name=?";
+
+       /* CRUD SQLs for os_vrt_tbl */
+       public static final String CHK_VRT_SQL = "select count(*) from os_vrt_tbl where os_vtn_name = ? and os_vrt_name = ?";
+       public static final String INS_VRT_SQL = "insert into os_vrt_tbl(os_vtn_name, os_vrt_name) values(?, ?)";
+       public static final String DEL_VRT_SQL = "delete from os_vrt_tbl where os_vtn_name = ? and os_vrt_name = ?";
+
+       /* CRUD SQLs for os_controller_tbl */
+       public static final String SEL_DEST_CTRL_SQL = "select os_controller_id from os_controller_tbl";
+       public static final String INS_DEST_CTRL_SQL = "insert into os_controller_tbl(os_controller_id) values(?)";
+       public static final String DEL_DEST_CTRL_SQL = "delete from os_controller_tbl";
+
+       /* CRUD SQLs for os_vrt_route_tbl */
+       public static final String CHK_ROUTE_SQL = "select count(*) from os_vrt_route_tbl where os_vtn_name = ? and os_vrt_name = ? and os_vrt_route_name = ?";
+       public static final String SEL_ROUTE_SQL = "select os_vrt_route_name from os_vrt_route_tbl where os_vtn_name = ? and os_vrt_name = ?";
+       public static final String INS_ROUTE_SQL = "insert into os_vrt_route_tbl(os_vtn_name, os_vrt_name, os_vrt_route_name) values(?, ?, ?)";
+       public static final String DEL_ROUTE_SQL = "delete from os_vrt_route_tbl where os_vtn_name = ? and os_vrt_name = ? and os_vrt_route_name = ?";
+
+       /* CRUD SQLs for os_vrt_if_tbl */
+       public static final String CHK_VRT_IF_SQL = "select count(*) from os_vrt_if_tbl where os_vtn_name = ? and os_vrt_name = ? and os_vrt_if_name=?";
+       public static final String SEL_VRT_IF_ID_SQL = "select count(*) from os_vrt_if_tbl where os_vtn_name = ? and os_vrt_if_id != 0";
+       public static final String SEL_VRT_IF_IDS_SQL = "select os_vrt_if_id from os_vrt_if_tbl where os_vtn_name = ? and os_vrt_name = ? and os_vrt_if_id != 0";
+       public static final String SEL_VRT_IF_VBR_SQL = "select os_vbr_name from os_vrt_if_tbl where os_vtn_name = ? and os_vrt_if_id = ?";
+       public static final String INS_VRT_IF_SQL = "insert into os_vrt_if_tbl(os_vrt_if_id, os_vtn_name, os_vrt_name, os_vrt_if_name, os_vbr_name) values(?, ?, ?, ?, ?)";
+       public static final String DEL_VRT_IF_SQL = "delete from os_vrt_if_tbl where os_vtn_name = ? and os_vrt_name = ? and os_vrt_if_id = ?";
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dbmanager/package-info.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/dbmanager/package-info.java
new file mode 100644 (file)
index 0000000..d9c5f96
--- /dev/null
@@ -0,0 +1,13 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * Package contains DB Utility classes for OpenStack resources
+ */
+package org.opendaylight.vtn.javaapi.openstack.dbmanager;
\ No newline at end of file
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/validation/DestinationControllerResourceValidator.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/validation/DestinationControllerResourceValidator.java
new file mode 100644 (file)
index 0000000..4e019ed
--- /dev/null
@@ -0,0 +1,124 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.openstack.validation;
+
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
+import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
+import org.opendaylight.vtn.javaapi.openstack.constants.VtnServiceOpenStackConsts;
+import org.opendaylight.vtn.javaapi.resources.AbstractResource;
+import org.opendaylight.vtn.javaapi.validation.CommonValidator;
+import org.opendaylight.vtn.javaapi.validation.VtnServiceValidator;
+
+/**
+ * Destination Controller Validation Resource class. Contains methods to
+ * validate URI, parameters of PUT request body
+ * 
+ */
+public class DestinationControllerResourceValidator extends VtnServiceValidator {
+
+       /* Logger instance */
+       private static final Logger LOG = Logger
+                       .getLogger(DestinationControllerResourceValidator.class.getName());
+
+       /* instance for common validation operation */
+       private final CommonValidator validator = new CommonValidator();
+
+       /**
+        * Constructor that provide reference of actual Resource class to instance
+        * variable resource
+        * 
+        * @param resource
+        *            - Resource class reference
+        */
+       public DestinationControllerResourceValidator(
+                       final AbstractResource resource) {
+               LOG.debug("No use of resource instance : " + resource);
+       }
+
+       /**
+        * Calls the respective validation method according to type of method
+        * 
+        * @see org.opendaylight.vtn.javaapi.validation.VtnServiceValidator#validate
+        *      (java.lang.String, com.google.gson.JsonObject)
+        */
+       @Override
+       public void validate(String method, JsonObject requestBody)
+                       throws VtnServiceException {
+               LOG.info("Start DestinationControllerResourceValidator#validate()");
+               boolean isValid = true;
+               try {
+                       if (requestBody != null && VtnServiceConsts.PUT.equals(method)) {
+                               isValid = validatePut(requestBody);
+                       } else if (requestBody != null
+                                       && VtnServiceConsts.GET.equals(method)) {
+                               isValid = true;
+                       } else {
+                               setInvalidParameter(UncCommonEnum.UncResultCode.UNC_METHOD_NOT_ALLOWED
+                                               .getMessage());
+                               isValid = false;
+                       }
+               } catch (final NumberFormatException e) {
+                       LOG.error("Invalid value : " + e.getMessage());
+                       isValid = false;
+               } catch (final ClassCastException e) {
+                       LOG.error("Invalid type : " + e.getMessage());
+                       isValid = false;
+               }
+
+               /*
+                * throw exception in case of validation fail
+                */
+               if (!isValid) {
+                       LOG.error("Validation failure");
+                       throw new VtnServiceException(Thread.currentThread()
+                                       .getStackTrace()[1].getMethodName(),
+                                       UncJavaAPIErrorCode.VALIDATION_ERROR.getErrorCode(),
+                                       UncJavaAPIErrorCode.VALIDATION_ERROR.getErrorMessage());
+               }
+               LOG.info("Complete DestinationControllerResourceValidator#validate()");
+       }
+
+       /**
+        * Validates the parameters of PUT request body
+        * 
+        * @param requestBody
+        *            - JSON request body corresponding to PUT operation
+        * @return - validation status as true or false
+        */
+       private boolean validatePut(JsonObject requestBody) {
+               LOG.trace("Start DestinationControllerResourceValidator#validatePut()");
+               boolean isValid = true;
+               // validation of id
+               if (requestBody.has(VtnServiceOpenStackConsts.ID)) {
+                       final JsonElement id = requestBody
+                                       .get(VtnServiceOpenStackConsts.ID);
+                       if (id.isJsonNull()
+                                       || id.getAsString().isEmpty()
+                                       || !validator.isValidMaxLengthAlphaNum(id.getAsString(),
+                                                       VtnServiceJsonConsts.LEN_31)) {
+                               isValid = false;
+                               setInvalidParameter(VtnServiceOpenStackConsts.ID
+                                               + VtnServiceConsts.COLON
+                                               + (id.isJsonNull() ? id : id.getAsString()));
+                       }
+               } else {
+                       isValid = false;
+                       setInvalidParameter(UncCommonEnum.UncResultCode.UNC_INVALID_FORMAT
+                                       .getMessage());
+               }
+               LOG.trace("Complete DestinationControllerResourceValidator#validatePut()");
+               return isValid;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/validation/NetworkResourceValidator.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/validation/NetworkResourceValidator.java
new file mode 100644 (file)
index 0000000..1b17202
--- /dev/null
@@ -0,0 +1,147 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.openstack.validation;
+
+import com.google.gson.JsonObject;
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
+import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
+import org.opendaylight.vtn.javaapi.openstack.constants.VtnServiceOpenStackConsts;
+import org.opendaylight.vtn.javaapi.resources.AbstractResource;
+import org.opendaylight.vtn.javaapi.resources.openstack.NetworkResource;
+import org.opendaylight.vtn.javaapi.resources.openstack.NetworksResource;
+import org.opendaylight.vtn.javaapi.validation.CommonValidator;
+import org.opendaylight.vtn.javaapi.validation.VtnServiceValidator;
+
+/**
+ * Network Validation Resource class. Contains methods to validate URI,
+ * parameters of POST and PUT request body
+ * 
+ */
+public class NetworkResourceValidator extends VtnServiceValidator {
+
+       /* Logger instance */
+       private static final Logger LOG = Logger
+                       .getLogger(NetworkResourceValidator.class.getName());
+
+       /* AbstractResource reference pointing to actual Resource class */
+       private final AbstractResource resource;
+
+       /* instance for common validation operation */
+       private final CommonValidator validator = new CommonValidator();
+
+       /**
+        * Constructor that provide reference of actual Resource class to instance
+        * variable resource
+        * 
+        * @param resource
+        *            - Resource class reference
+        */
+       public NetworkResourceValidator(final AbstractResource resource) {
+               this.resource = resource;
+       }
+
+       /**
+        * Calls the respective validation method according to type of method
+        * 
+        * @see org.opendaylight.vtn.javaapi.validation.VtnServiceValidator#validate
+        *      (java.lang.String, com.google.gson.JsonObject)
+        */
+       @Override
+       public void validate(String method, JsonObject requestBody)
+                       throws VtnServiceException {
+               LOG.info("Start NetworkResourceValidator#validate()");
+               boolean isValid = false;
+               try {
+                       isValid = validateUri();
+                       if (isValid && requestBody != null
+                                       && VtnServiceConsts.POST.equalsIgnoreCase(method)) {
+                               isValid = validatePost(validator, requestBody);
+                       } else if (isValid && requestBody != null
+                                       && VtnServiceConsts.PUT.equals(method)) {
+                               isValid = validatePut(validator, requestBody);
+                       } else if (isValid) {
+                               setInvalidParameter(UncCommonEnum.UncResultCode.UNC_METHOD_NOT_ALLOWED
+                                               .getMessage());
+                               isValid = false;
+                       }
+               } catch (final NumberFormatException e) {
+                       LOG.error("Invalid value : " + e.getMessage());
+                       isValid = false;
+               } catch (final ClassCastException e) {
+                       LOG.error("Invalid type : " + e.getMessage());
+                       isValid = false;
+               }
+
+               /*
+                * throw exception in case of validation fail
+                */
+               if (!isValid) {
+                       LOG.error("Validation failure");
+                       throw new VtnServiceException(Thread.currentThread()
+                                       .getStackTrace()[1].getMethodName(),
+                                       UncJavaAPIErrorCode.VALIDATION_ERROR.getErrorCode(),
+                                       UncJavaAPIErrorCode.VALIDATION_ERROR.getErrorMessage());
+               }
+               LOG.info("Complete NetworkResourceValidator#validate()");
+       }
+
+       /**
+        * Validate resource specific URI parameters
+        * 
+        * @see org.opendaylight.vtn.javaapi.validation.VtnServiceValidator#validateUri
+        *      ()
+        */
+       @Override
+       public boolean validateUri() throws VtnServiceException {
+               LOG.trace("Start NetworkResourceValidator#validateUri()");
+               boolean isValid = true;
+               if (resource instanceof NetworkResource) {
+                       // validation of tenant_id
+                       final String tenantId = ((NetworkResource) resource).getTenantId();
+                       if (tenantId == null
+                                       || tenantId.isEmpty()
+                                       || !validator.isValidMaxLengthAlphaNum(tenantId,
+                                                       VtnServiceJsonConsts.LEN_31)) {
+                               isValid = false;
+                               setInvalidParameter(VtnServiceOpenStackConsts.TENANT_ID
+                                               + VtnServiceConsts.COLON + tenantId);
+                       }
+
+                       // validation of net_id
+                       if (isValid) {
+                               final String netId = ((NetworkResource) resource).getNetId();
+                               if (netId == null
+                                               || netId.isEmpty()
+                                               || !validator.isValidMaxLengthAlphaNum(netId,
+                                                               VtnServiceJsonConsts.LEN_31)) {
+                                       isValid = false;
+                                       setInvalidParameter(VtnServiceOpenStackConsts.NET_ID
+                                                       + VtnServiceConsts.COLON + netId);
+                               }
+                       }
+               } else if (resource instanceof NetworksResource) {
+                       // validation of tenant_id
+                       final String tenantId = ((NetworksResource) resource).getTenantId();
+                       if (tenantId == null
+                                       || tenantId.isEmpty()
+                                       || !validator.isValidMaxLengthAlphaNum(tenantId,
+                                                       VtnServiceJsonConsts.LEN_31)) {
+                               isValid = false;
+                               setInvalidParameter(VtnServiceOpenStackConsts.TENANT_ID
+                                               + VtnServiceConsts.COLON + tenantId);
+                       }
+               }
+               LOG.trace("Complete NetworkResourceValidator#validateUri()");
+               return isValid;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/validation/PortResourceValidator.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/validation/PortResourceValidator.java
new file mode 100644 (file)
index 0000000..23c6838
--- /dev/null
@@ -0,0 +1,327 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.openstack.validation;
+
+import java.math.BigInteger;
+
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
+import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
+import org.opendaylight.vtn.javaapi.openstack.constants.VtnServiceOpenStackConsts;
+import org.opendaylight.vtn.javaapi.resources.AbstractResource;
+import org.opendaylight.vtn.javaapi.resources.openstack.PortResource;
+import org.opendaylight.vtn.javaapi.resources.openstack.PortsResource;
+import org.opendaylight.vtn.javaapi.validation.CommonValidator;
+import org.opendaylight.vtn.javaapi.validation.VtnServiceValidator;
+
+/**
+ * Port Validation Resource class. Contains methods to validate URI, parameters
+ * of POST request body
+ * 
+ */
+public class PortResourceValidator extends VtnServiceValidator {
+
+       /* Logger instance */
+       private static final Logger LOG = Logger
+                       .getLogger(PortResourceValidator.class.getName());
+
+       /* AbstractResource reference pointing to actual Resource class */
+       private final AbstractResource resource;
+
+       /* instance for common validation operation */
+       private final CommonValidator validator = new CommonValidator();
+
+       /**
+        * Constructor that provide reference of actual Resource class to instance
+        * variable resource
+        * 
+        * @param resource
+        *            - Resource class reference
+        */
+       public PortResourceValidator(final AbstractResource resource) {
+               this.resource = resource;
+       }
+
+       /*
+        * Calls the respective validation method according to type of method
+        * 
+        * @see
+        * org.opendaylight.vtn.javaapi.validation.VtnServiceValidator#validate
+        * (java.lang.String, com.google.gson.JsonObject)
+        */
+       @Override
+       public void validate(String method, JsonObject requestBody)
+                       throws VtnServiceException {
+               LOG.trace("Start PortResourceValidator#validate()");
+               boolean isValid = false;
+               try {
+                       isValid = validateUri();
+                       if (isValid && requestBody != null
+                                       && VtnServiceConsts.POST.equalsIgnoreCase(method)) {
+                               isValid = validatePost(requestBody);
+                       } else if (isValid) {
+                               setInvalidParameter(UncCommonEnum.UncResultCode.UNC_METHOD_NOT_ALLOWED
+                                               .getMessage());
+                               isValid = false;
+                       }
+               } catch (final NumberFormatException e) {
+                       LOG.error("Invalid value : " + e.getMessage());
+                       isValid = false;
+               } catch (final ClassCastException e) {
+                       LOG.error("Invalid type : " + e.getMessage());
+                       isValid = false;
+               }
+
+               /*
+                * throw exception in case of validation fail
+                */
+               if (!isValid) {
+                       LOG.error("Validation failure");
+                       throw new VtnServiceException(Thread.currentThread()
+                                       .getStackTrace()[1].getMethodName(),
+                                       UncJavaAPIErrorCode.VALIDATION_ERROR.getErrorCode(),
+                                       UncJavaAPIErrorCode.VALIDATION_ERROR.getErrorMessage());
+               }
+               LOG.trace("Complete PortResourceValidator#validate()");
+       }
+
+       /**
+        * Validate resource specific URI parameters
+        * 
+        * @see org.opendaylight.vtn.javaapi.validation.VtnServiceValidator#validateUri
+        *      ()
+        */
+       @Override
+       public boolean validateUri() throws VtnServiceException {
+               LOG.trace("Start PortResourceValidator#validateUri()");
+               boolean isValid = true;
+               if (resource instanceof PortResource) {
+                       // validation of tenant_id
+                       final String tenantId = ((PortResource) resource).getTenantId();
+                       if (tenantId == null
+                                       || tenantId.isEmpty()
+                                       || !validator.isValidMaxLengthAlphaNum(tenantId,
+                                                       VtnServiceJsonConsts.LEN_31)) {
+                               isValid = false;
+                               setInvalidParameter(VtnServiceOpenStackConsts.TENANT_ID
+                                               + VtnServiceConsts.COLON + tenantId);
+                       }
+
+                       // validation of net_id
+                       if (isValid) {
+                               final String netId = ((PortResource) resource).getNetId();
+                               if (netId == null
+                                               || netId.isEmpty()
+                                               || !validator.isValidMaxLengthAlphaNum(netId,
+                                                               VtnServiceJsonConsts.LEN_31)) {
+                                       isValid = false;
+                                       setInvalidParameter(VtnServiceOpenStackConsts.NET_ID
+                                                       + VtnServiceConsts.COLON + netId);
+                               }
+                       }
+
+                       // validation of port_id
+                       if (isValid) {
+                               final String portId = ((PortResource) resource).getPortId();
+                               if (portId == null
+                                               || portId.isEmpty()
+                                               || !validator.isValidMaxLengthAlphaNum(portId,
+                                                               VtnServiceJsonConsts.LEN_24)) {
+                                       isValid = false;
+                                       setInvalidParameter(VtnServiceOpenStackConsts.PORT_ID
+                                                       + VtnServiceConsts.COLON + portId);
+                               }
+                       }
+               } else if (resource instanceof PortsResource) {
+                       // validation of tenant_id
+                       final String tenantId = ((PortsResource) resource).getTenantId();
+                       if (tenantId == null
+                                       || tenantId.isEmpty()
+                                       || !validator.isValidMaxLengthAlphaNum(tenantId,
+                                                       VtnServiceJsonConsts.LEN_31)) {
+                               isValid = false;
+                               setInvalidParameter(VtnServiceOpenStackConsts.TENANT_ID
+                                               + VtnServiceConsts.COLON + tenantId);
+                       }
+
+                       // validation of net_id
+                       if (isValid) {
+                               final String netId = ((PortsResource) resource).getNetId();
+                               if (netId == null
+                                               || netId.isEmpty()
+                                               || !validator.isValidMaxLengthAlphaNum(netId,
+                                                               VtnServiceJsonConsts.LEN_31)) {
+                                       isValid = false;
+                                       setInvalidParameter(VtnServiceOpenStackConsts.NET_ID
+                                                       + VtnServiceConsts.COLON + netId);
+                               }
+                       }
+               }
+               LOG.trace("Complete PortResourceValidator#validateUri()");
+               return isValid;
+       }
+
+       /**
+        * Validates the parameters of POST request body
+        * 
+        * @param requestBody
+        *            - JSON request body corresponding to POST operation
+        * @return
+        */
+       public boolean validatePost(final JsonObject requestBody) {
+               LOG.trace("Start PortResourceValidator#validatePost()");
+               boolean isValid = true;
+               // validation of mandatory parameters
+               if (requestBody == null
+                               || !requestBody.has(VtnServiceOpenStackConsts.PORT)
+                               || !requestBody.has(VtnServiceOpenStackConsts.DATAPATH_ID)
+                               || !requestBody.has(VtnServiceOpenStackConsts.VID)) {
+                       isValid = false;
+                       setInvalidParameter(UncCommonEnum.UncResultCode.UNC_INVALID_FORMAT
+                                       .getMessage());
+               } else {
+                       // validation of id
+                       if (requestBody.has(VtnServiceOpenStackConsts.ID)) {
+                               final JsonElement id = requestBody
+                                               .get(VtnServiceOpenStackConsts.ID);
+                               if (id.isJsonNull()
+                                               || id.getAsString().isEmpty()
+                                               || !validator.isValidMaxLengthAlphaNum(
+                                                               id.getAsString(), VtnServiceJsonConsts.LEN_24)) {
+                                       isValid = false;
+                                       setInvalidParameter(VtnServiceOpenStackConsts.ID
+                                                       + VtnServiceConsts.COLON
+                                                       + (id.isJsonNull() ? id : id.getAsString()));
+                               }
+                       }
+
+                       // validation of datapath_id
+                       if (isValid) {
+                               final JsonElement datapathId = requestBody
+                                               .get(VtnServiceOpenStackConsts.DATAPATH_ID);
+                               setInvalidParameter(VtnServiceOpenStackConsts.DATAPATH_ID);
+                               if (datapathId.isJsonNull()
+                                               || !isValidDataPathId(datapathId.getAsString())) {
+                                       isValid = false;
+                                       setInvalidParameter(VtnServiceOpenStackConsts.DATAPATH_ID
+                                                       + VtnServiceConsts.COLON
+                                                       + (datapathId.isJsonNull() ? datapathId
+                                                                       : datapathId.getAsString()));
+                               }
+                       }
+
+                       // validation of port
+                       if (isValid) {
+                               final JsonElement port = requestBody
+                                               .get(VtnServiceOpenStackConsts.PORT);
+                               if (!port.isJsonNull()
+                                               && !port.getAsString().equalsIgnoreCase(
+                                                               VtnServiceOpenStackConsts.NULL)) {
+                                       if (port.getAsString().isEmpty()) {
+                                               isValid = false;
+                                       } else {
+                                               try {
+                                                       isValid = validator.isValidBigIntegerRangeString(
+                                                                       new BigInteger(port.getAsString()),
+                                                                       VtnServiceJsonConsts.BIG_VAL0,
+                                                                       VtnServiceJsonConsts.BIG_VAL_4294967040);
+                                               } catch (Exception e) {
+                                                       isValid = false;
+                                               }
+                                       }
+
+                                       // set message as per above checks
+                                       if (!isValid) {
+                                               setInvalidParameter(VtnServiceOpenStackConsts.PORT
+                                                               + VtnServiceConsts.COLON
+                                                               + (port.isJsonNull() ? port : port
+                                                                               .getAsString()));
+                                       }
+                               }
+                       }
+
+                       // validation of vid
+                       if (isValid) {
+                               final JsonElement vid = requestBody
+                                               .get(VtnServiceOpenStackConsts.VID);
+                               setInvalidParameter(VtnServiceOpenStackConsts.VID);
+                               if (vid.isJsonNull() || vid.getAsString().isEmpty()) {
+                                       isValid = false;
+                               } else {
+                                       try {
+                                               isValid = validator.isValidRange(vid.getAsString(),
+                                                               VtnServiceJsonConsts.VAL_1,
+                                                               VtnServiceJsonConsts.VAL_4095);
+                                               if (Integer.parseInt(vid.getAsString()) == VtnServiceJsonConsts.VAL_65535) {
+                                                       isValid = true;
+                                               }
+                                       } catch (Exception e) {
+                                               isValid = false;
+                                       }
+                               }
+
+                               // set message as per above checks
+                               if (!isValid) {
+                                       setInvalidParameter(VtnServiceOpenStackConsts.VID
+                                                       + VtnServiceConsts.COLON
+                                                       + (vid.isJsonNull() ? vid : vid.getAsString()));
+                               }
+                       }
+               }
+
+               // validation of port and datapath_id combination
+               if (isValid) {
+                       final JsonElement port = requestBody
+                                       .get(VtnServiceOpenStackConsts.PORT);
+                       final JsonElement datapathid = requestBody
+                                       .get(VtnServiceOpenStackConsts.DATAPATH_ID);
+                       if (datapathid.getAsString().isEmpty()
+                                       && (!port.isJsonNull() && !port.getAsString()
+                                                       .equalsIgnoreCase(VtnServiceOpenStackConsts.NULL))) {
+                               isValid = false;
+                               setInvalidParameter("port specified, but datapath_id not specified");
+                       }
+               }
+
+               LOG.trace("Complete PortResourceValidator#validatePost()");
+               return isValid;
+       }
+
+       /**
+        * Check the validity of datapath_id parameter
+        * 
+        * @param datapathId
+        *            - string representing datapath_id
+        * @return - result as true or false
+        */
+       private boolean isValidDataPathId(String datapathId) {
+               boolean isValid = true;
+               if (!datapathId.equalsIgnoreCase(VtnServiceConsts.EMPTY_STRING)) {
+                       try {
+                               isValid = (datapathId.substring(0, 2).equalsIgnoreCase("0X")) ? datapathId
+                                               .matches(VtnServiceOpenStackConsts.OS_DATAPATH_ID_REGEX)
+                                               : validator.isValidBigIntegerRangeString(new BigInteger(
+                                                               datapathId), VtnServiceJsonConsts.BIG_VAL0,
+                                                               VtnServiceJsonConsts.BIG_VAL_18446744073709551999);
+                       } catch (Exception e) {
+                               isValid = false;
+                       }
+                       if (isValid) {
+                               isValid = !datapathId
+                                               .equalsIgnoreCase(VtnServiceOpenStackConsts.INVALID_DATA_PATH_ID);
+                       }
+               }
+               return isValid;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/validation/RouteResourceValidator.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/validation/RouteResourceValidator.java
new file mode 100644 (file)
index 0000000..c9aa6ca
--- /dev/null
@@ -0,0 +1,294 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.openstack.validation;
+
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
+import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
+import org.opendaylight.vtn.javaapi.ipc.conversion.IpAddressUtil;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
+import org.opendaylight.vtn.javaapi.openstack.constants.VtnServiceOpenStackConsts;
+import org.opendaylight.vtn.javaapi.resources.AbstractResource;
+import org.opendaylight.vtn.javaapi.resources.openstack.RouteResource;
+import org.opendaylight.vtn.javaapi.resources.openstack.RoutesResource;
+import org.opendaylight.vtn.javaapi.validation.CommonValidator;
+import org.opendaylight.vtn.javaapi.validation.VtnServiceValidator;
+
+/**
+ * Route Validation Resource class. Contains methods to validate URI, parameters
+ * of POST request body
+ * 
+ */
+public class RouteResourceValidator extends VtnServiceValidator {
+
+       /* Logger instance */
+       private static final Logger LOG = Logger
+                       .getLogger(RouteResourceValidator.class.getName());
+
+       /* AbstractResource reference pointing to actual Resource class */
+       private final AbstractResource resource;
+
+       /* instance for common validation operation */
+       private final CommonValidator validator = new CommonValidator();
+
+       /**
+        * Constructor that provide reference of actual Resource class to instance
+        * variable resource
+        * 
+        * @param resource
+        *            - Resource class reference
+        */
+       public RouteResourceValidator(final AbstractResource resource) {
+               this.resource = resource;
+       }
+
+       /**
+        * Calls the respective validation method according to type of method
+        * 
+        * @see org.opendaylight.vtn.javaapi.validation.VtnServiceValidator#validate
+        *      (java.lang.String, com.google.gson.JsonObject)
+        */
+       @Override
+       public void validate(String method, JsonObject requestBody)
+                       throws VtnServiceException {
+               LOG.info("Start RouteResourceValidator#validate()");
+               boolean isValid = false;
+               try {
+                       isValid = validateUri();
+                       if (isValid && requestBody != null
+                                       && VtnServiceConsts.POST.equalsIgnoreCase(method)) {
+                               isValid = validatePost(requestBody);
+                       } else if (isValid && requestBody != null
+                                       && VtnServiceConsts.GET.equalsIgnoreCase(method)) {
+                               isValid = true;
+                       } else if (isValid) {
+                               setInvalidParameter(UncCommonEnum.UncResultCode.UNC_METHOD_NOT_ALLOWED
+                                               .getMessage());
+                               isValid = false;
+                       }
+               } catch (final NumberFormatException e) {
+                       LOG.error("Invalid value : " + e.getMessage());
+                       isValid = false;
+               } catch (final ClassCastException e) {
+                       LOG.error("Invalid type : " + e.getMessage());
+                       isValid = false;
+               }
+
+               /*
+                * throw exception in case of validation fail
+                */
+               if (!isValid) {
+                       LOG.error("Validation failure");
+                       throw new VtnServiceException(Thread.currentThread()
+                                       .getStackTrace()[1].getMethodName(),
+                                       UncJavaAPIErrorCode.VALIDATION_ERROR.getErrorCode(),
+                                       UncJavaAPIErrorCode.VALIDATION_ERROR.getErrorMessage());
+               }
+               LOG.info("Complete RouteResourceValidator#validate()");
+       }
+
+       /**
+        * Validate resource specific URI parameters
+        * 
+        * @see org.opendaylight.vtn.javaapi.validation.VtnServiceValidator#validateUri
+        *      ()
+        */
+       @Override
+       public boolean validateUri() throws VtnServiceException {
+               LOG.info("Start RouteResourceValidator#validateUri()");
+               boolean isValid = true;
+               if (resource instanceof RouteResource) {
+                       // validation of tenant_id
+                       final String tenantId = ((RouteResource) resource).getTenantId();
+                       if (tenantId == null
+                                       || tenantId.isEmpty()
+                                       || !validator.isValidMaxLengthAlphaNum(tenantId,
+                                                       VtnServiceJsonConsts.LEN_31)) {
+                               isValid = false;
+                               setInvalidParameter(VtnServiceOpenStackConsts.TENANT_ID
+                                               + VtnServiceConsts.COLON + tenantId);
+                       }
+
+                       // validation of router_id
+                       if (isValid) {
+                               final String routerId = ((RouteResource) resource)
+                                               .getRouterId();
+                               if (routerId == null
+                                               || routerId.isEmpty()
+                                               || !validator.isValidMaxLengthAlphaNum(routerId,
+                                                               VtnServiceJsonConsts.LEN_31)) {
+                                       isValid = false;
+                                       setInvalidParameter(VtnServiceOpenStackConsts.ROUTER_ID
+                                                       + VtnServiceConsts.COLON + routerId);
+                               }
+                       }
+
+                       // validation of route_id
+                       if (isValid) {
+                               final String routeId = ((RouteResource) resource).getRouteId();
+                               setInvalidParameter(VtnServiceOpenStackConsts.ID);
+                               if (routeId == null || routeId.isEmpty()
+                                               || !isValidRouteId(routeId)) {
+                                       isValid = false;
+                                       setInvalidParameter(VtnServiceOpenStackConsts.ROUTE_ID
+                                                       + VtnServiceConsts.COLON + routeId);
+                               }
+                       }
+               } else if (resource instanceof RoutesResource) {
+                       // validation of tenant_id
+                       final String tenantId = ((RoutesResource) resource).getTenantId();
+                       if (tenantId == null
+                                       || tenantId.isEmpty()
+                                       || !validator.isValidMaxLengthAlphaNum(tenantId,
+                                                       VtnServiceJsonConsts.LEN_31)) {
+                               isValid = false;
+                               setInvalidParameter(VtnServiceOpenStackConsts.TENANT_ID
+                                               + VtnServiceConsts.COLON + tenantId);
+                       }
+
+                       // validation of router_id
+                       if (isValid) {
+                               final String routerId = ((RoutesResource) resource)
+                                               .getRouterId();
+                               if (routerId == null
+                                               || routerId.isEmpty()
+                                               || !validator.isValidMaxLengthAlphaNum(routerId,
+                                                               VtnServiceJsonConsts.LEN_31)) {
+                                       isValid = false;
+                                       setInvalidParameter(VtnServiceOpenStackConsts.ROUTER_ID
+                                                       + VtnServiceConsts.COLON + routerId);
+                               }
+                       }
+               }
+               LOG.info("Complete RouteResourceValidator#validateUri()");
+               return isValid;
+       }
+
+       /**
+        * Validates the parameters of POST request body
+        * 
+        * @param requestBody
+        *            - JSON request body corresponding to POST operation
+        * @return - validation status as true or false
+        */
+       private boolean validatePost(JsonObject requestBody) {
+               LOG.trace("Start RouteResourceValidator#validatePost()");
+               boolean isValid = true;
+
+               // validation of mandatory parameters
+               if (requestBody == null
+                               || !requestBody.has(VtnServiceOpenStackConsts.DESTNATION)
+                               || !requestBody.has(VtnServiceOpenStackConsts.NEXTHOP)) {
+                       isValid = false;
+                       setInvalidParameter(UncCommonEnum.UncResultCode.UNC_INVALID_FORMAT
+                                       .getMessage());
+               } else {
+                       final JsonElement destination = requestBody
+                                       .get(VtnServiceOpenStackConsts.DESTNATION);
+
+                       // validation of destination
+                       if (destination.isJsonNull() || destination.getAsString().isEmpty()
+                                       || !isValidDestination(destination.getAsString())) {
+                               isValid = false;
+                               setInvalidParameter(VtnServiceOpenStackConsts.DESTNATION
+                                               + VtnServiceConsts.COLON
+                                               + (destination.isJsonNull() ? destination : destination
+                                                               .getAsString()));
+                       }
+
+                       final JsonElement nexthop = requestBody
+                                       .get(VtnServiceOpenStackConsts.NEXTHOP);
+
+                       // validation of nexthop
+                       if (isValid) {
+                               if (nexthop.isJsonNull()
+                                               || nexthop.getAsString().isEmpty()
+                                               || IpAddressUtil.textToNumericFormatV4(nexthop
+                                                               .getAsString()) == null) {
+                                       isValid = false;
+                                       setInvalidParameter(VtnServiceOpenStackConsts.NEXTHOP
+                                                       + VtnServiceConsts.COLON
+                                                       + (nexthop.isJsonNull() ? nexthop : nexthop
+                                                                       .getAsString()));
+                               }
+                       }
+                       
+                       /*
+                        * Check special case for IP address in POST operation
+                        */
+                       if (isValid) {
+                               final String nexthopIp = requestBody.get(
+                                               VtnServiceOpenStackConsts.NEXTHOP).getAsString();
+                               if (VtnServiceOpenStackConsts.DEFAULT_IP.equals(nexthopIp)) {
+                                       isValid = false;
+                                       setInvalidParameter(VtnServiceOpenStackConsts.NEXTHOP
+                                                       + VtnServiceConsts.COLON + nexthopIp);
+                               }
+                       }
+                       
+                       if (isValid) {
+                               final String destinationIp = requestBody.get(
+                                               VtnServiceOpenStackConsts.DESTNATION).getAsString();
+                               if (VtnServiceOpenStackConsts.DEFAULT_IP.equals(destinationIp
+                                               .split(VtnServiceConsts.SLASH)[0])) {
+                                       isValid = false;
+                                       setInvalidParameter(VtnServiceOpenStackConsts.DESTNATION
+                                                       + VtnServiceConsts.COLON + destinationIp);
+                               }
+                       }
+               }
+               LOG.trace("Complete RouteResourceValidator#validatePost()");
+               return isValid;
+       }
+
+       /**
+        * Check the validity of destination IP address
+        * 
+        * @param cidrDestination
+        *            - CIDR formatted IP address
+        * @return - status as true or false
+        */
+       private boolean isValidDestination(String cidrDestination) {
+               boolean isValid = false;
+               setInvalidParameter(VtnServiceOpenStackConsts.DESTNATION);
+               final String[] destination = cidrDestination
+                               .split(VtnServiceConsts.SLASH);
+               if (destination != null && destination.length == 2) {
+                       try {
+                               isValid = IpAddressUtil.textToNumericFormatV4(destination[0]) != null
+                                               && validator.isValidRange(destination[1], 0, 32);
+                       } catch (Exception e) {
+                               isValid = false;
+                       }
+               }
+               return isValid;
+       }
+
+       /**
+        * Check the validity of OpenStack format route_id
+        * 
+        * @param routeId
+        *            - OpenStack formatted route_id
+        * @return - result as true or false
+        */
+       private boolean isValidRouteId(String routeId) {
+               boolean isValid = false;
+               final String[] routeIdparts = routeId.split(VtnServiceConsts.HYPHEN);
+               if (routeIdparts != null && routeIdparts.length == 3) {
+                       isValid = IpAddressUtil.textToNumericFormatV4(routeIdparts[0]) != null
+                                       && IpAddressUtil.textToNumericFormatV4(routeIdparts[1]) != null
+                                       && IpAddressUtil.textToNumericFormatV4(routeIdparts[2]) != null;
+               }
+               return isValid;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/validation/RouterInterfaceResourceValidator.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/validation/RouterInterfaceResourceValidator.java
new file mode 100644 (file)
index 0000000..a58f128
--- /dev/null
@@ -0,0 +1,335 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.openstack.validation;
+
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
+import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
+import org.opendaylight.vtn.javaapi.ipc.conversion.IpAddressUtil;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
+import org.opendaylight.vtn.javaapi.openstack.constants.VtnServiceOpenStackConsts;
+import org.opendaylight.vtn.javaapi.resources.AbstractResource;
+import org.opendaylight.vtn.javaapi.resources.openstack.RouterInterfaceResource;
+import org.opendaylight.vtn.javaapi.resources.openstack.RouterInterfacesResource;
+import org.opendaylight.vtn.javaapi.validation.CommonValidator;
+import org.opendaylight.vtn.javaapi.validation.VtnServiceValidator;
+
+/**
+ * Router Interface Validation Resource class. Contains methods to validate URI,
+ * parameters of POST and PUT request body
+ * 
+ */
+public class RouterInterfaceResourceValidator extends VtnServiceValidator {
+
+       /* Logger instance */
+       private static final Logger LOG = Logger
+                       .getLogger(RouterInterfaceResourceValidator.class.getName());
+
+       /* AbstractResource reference pointing to actual Resource class */
+       private final AbstractResource resource;
+
+       /* instance for common validation operation */
+       private final CommonValidator validator = new CommonValidator();
+
+       /**
+        * Constructor that provide reference of actual Resource class to instance
+        * variable resource
+        * 
+        * @param resource
+        *            - Resource class reference
+        */
+       public RouterInterfaceResourceValidator(final AbstractResource resource) {
+               this.resource = resource;
+       }
+
+       /**
+        * Calls the respective validation method according to type of method
+        * 
+        * @see org.opendaylight.vtn.javaapi.validation.VtnServiceValidator#validate
+        *      (java.lang.String, com.google.gson.JsonObject)
+        */
+       @Override
+       public void validate(String method, JsonObject requestBody)
+                       throws VtnServiceException {
+               LOG.trace("Start RouterInterfaceResourceValidator#validate()");
+
+               boolean isValid = false;
+               try {
+                       isValid = validateUri();
+                       if (isValid && requestBody != null
+                                       && VtnServiceConsts.POST.equalsIgnoreCase(method)) {
+                               isValid = validatePost(requestBody);
+                       } else if (isValid && requestBody != null
+                                       && VtnServiceConsts.PUT.equals(method)) {
+                               isValid = validatePut(requestBody);
+                       } else if (isValid) {
+                               setInvalidParameter(UncCommonEnum.UncResultCode.UNC_METHOD_NOT_ALLOWED
+                                               .getMessage());
+                               isValid = false;
+                       }
+               } catch (final NumberFormatException e) {
+                       LOG.error("Invalid value : " + e.getMessage());
+                       isValid = false;
+               } catch (final ClassCastException e) {
+                       LOG.error("Invalid type : " + e.getMessage());
+                       isValid = false;
+               }
+
+               /*
+                * throw exception in case of validation fail
+                */
+               if (!isValid) {
+                       LOG.error("Validation failure");
+                       throw new VtnServiceException(Thread.currentThread()
+                                       .getStackTrace()[1].getMethodName(),
+                                       UncJavaAPIErrorCode.VALIDATION_ERROR.getErrorCode(),
+                                       UncJavaAPIErrorCode.VALIDATION_ERROR.getErrorMessage());
+               }
+
+               LOG.trace("Complete RouterInterfaceResourceValidator#validate()");
+       }
+
+       /**
+        * Validates the parameters of PUT request body
+        * 
+        * @param requestBody
+        *            - JSON request body corresponding to PUT operation
+        * @return - validation status as true or false
+        */
+       private boolean validatePut(JsonObject requestBody) {
+               boolean isValid = true;
+               // validation of ip_address
+               if (requestBody.has(VtnServiceOpenStackConsts.IP_ADDRESS)) {
+                       final JsonElement ipAddress = requestBody
+                                       .get(VtnServiceOpenStackConsts.IP_ADDRESS);
+
+                       if (ipAddress.isJsonNull() || ipAddress.getAsString().isEmpty()
+                                       || !isValidIP(ipAddress.getAsString())) {
+                               isValid = false;
+                               setInvalidParameter(VtnServiceOpenStackConsts.IP_ADDRESS
+                                               + VtnServiceConsts.COLON
+                                               + (ipAddress.isJsonNull() ? ipAddress : ipAddress
+                                                               .getAsString()));
+                       }
+               }
+
+               // validation of mac_address
+               if (isValid && requestBody.has(VtnServiceOpenStackConsts.MAC_ADDRESS)) {
+                       final JsonElement macAddress = requestBody
+                                       .get(VtnServiceOpenStackConsts.MAC_ADDRESS);
+
+                       if (macAddress.isJsonNull() || macAddress.getAsString().isEmpty()
+                                       || !isValidMac(macAddress.getAsString())) {
+                               isValid = false;
+                               setInvalidParameter(VtnServiceOpenStackConsts.MAC_ADDRESS
+                                               + VtnServiceConsts.COLON
+                                               + (macAddress.isJsonNull() ? macAddress : macAddress
+                                                               .getAsString()));
+                       }
+               }
+               return isValid;
+       }
+
+       /**
+        * Validates the parameters of POST request body
+        * 
+        * @param requestBody
+        *            - JSON request body corresponding to POST operation
+        * @return - validation status as true or false
+        */
+       private boolean validatePost(JsonObject requestBody) {
+
+               boolean isValid = true;
+
+               // validation of mandatory parameter
+               if (requestBody == null
+                               || !requestBody.has(VtnServiceOpenStackConsts.NET_ID)) {
+                       isValid = false;
+                       setInvalidParameter(UncCommonEnum.UncResultCode.UNC_INVALID_FORMAT
+                                       .getMessage());
+               } else {
+                       final JsonElement netId = requestBody
+                                       .get(VtnServiceOpenStackConsts.NET_ID);
+
+                       // validation of net_id
+                       if (netId.isJsonNull()
+                                       || netId.getAsString().isEmpty()
+                                       || !validator.isValidMaxLengthAlphaNum(netId.getAsString(),
+                                                       VtnServiceJsonConsts.LEN_31)) {
+                               isValid = false;
+                               setInvalidParameter(VtnServiceOpenStackConsts.NET_ID
+                                               + VtnServiceConsts.COLON
+                                               + (netId.isJsonNull() ? netId : netId.getAsString()));
+                       }
+                       
+                       if (isValid) {
+                               isValid = validatePut(requestBody);
+                       }
+                       /*
+                        * Check special case for IP address in POST operation
+                        */
+                       if (isValid
+                                       && requestBody.has(VtnServiceOpenStackConsts.IP_ADDRESS)) {
+                               final String ipAddress = requestBody.get(
+                                               VtnServiceOpenStackConsts.IP_ADDRESS).getAsString();
+                               if (VtnServiceOpenStackConsts.DEFAULT_IP.equals(ipAddress
+                                               .split(VtnServiceConsts.SLASH)[0])) {
+                                       isValid = false;
+                                       setInvalidParameter(VtnServiceOpenStackConsts.IP_ADDRESS
+                                                       + VtnServiceConsts.COLON + ipAddress);
+                               }
+                       }
+                       
+                       /*
+                        * Check special case for MAC address in POST operation
+                        */
+                       if (isValid
+                                       && requestBody.has(VtnServiceOpenStackConsts.MAC_ADDRESS)) {
+                               final String macAddress = requestBody.get(
+                                               VtnServiceOpenStackConsts.MAC_ADDRESS).getAsString();
+                               if (VtnServiceOpenStackConsts.DEFAULT_MAC.equals(macAddress)) {
+                                       isValid = false;
+                                       setInvalidParameter(VtnServiceOpenStackConsts.MAC_ADDRESS
+                                                       + VtnServiceConsts.COLON + macAddress);
+                               }
+                       }
+               }
+               return isValid;
+       }
+
+       /**
+        * Validate resource specific URI parameters
+        * 
+        * @see org.opendaylight.vtn.javaapi.validation.VtnServiceValidator#validateUri
+        *      ()
+        */
+       @Override
+       public boolean validateUri() throws VtnServiceException {
+               LOG.info("Start RouterInterfaceResourceValidator#validateUri()");
+               boolean isValid = true;
+               if (resource instanceof RouterInterfaceResource) {
+                       // validation of tenant_id
+                       final String tenantId = ((RouterInterfaceResource) resource)
+                                       .getTenantId();
+                       if (tenantId == null
+                                       || tenantId.isEmpty()
+                                       || !validator.isValidMaxLengthAlphaNum(tenantId,
+                                                       VtnServiceJsonConsts.LEN_31)) {
+                               isValid = false;
+                               setInvalidParameter(VtnServiceOpenStackConsts.TENANT_ID
+                                               + VtnServiceConsts.COLON + tenantId);
+                       }
+
+                       // validation of router_id
+                       if (isValid) {
+                               final String routerId = ((RouterInterfaceResource) resource)
+                                               .getRouterId();
+                               if (routerId == null
+                                               || routerId.isEmpty()
+                                               || !validator.isValidMaxLengthAlphaNum(routerId,
+                                                               VtnServiceJsonConsts.LEN_31)) {
+                                       isValid = false;
+                                       setInvalidParameter(VtnServiceOpenStackConsts.ROUTER_ID
+                                                       + VtnServiceConsts.COLON + routerId);
+                               }
+                       }
+
+                       // validation of if_id
+                       if (isValid) {
+                               final String ifId = ((RouterInterfaceResource) resource)
+                                               .getInterfaceId();
+                               if (ifId == null || ifId.isEmpty()) {
+                                       isValid = false;
+                               } else {
+                                       try {
+                                               isValid = validator.isValidRange(ifId, 1, 393216);
+                                       } catch (Exception e) {
+                                               isValid = false;
+                                       }
+                               }
+                               // set message as per above checks
+                               if (!isValid) {
+                                       setInvalidParameter(VtnServiceOpenStackConsts.IF_ID
+                                                       + VtnServiceConsts.COLON + ifId);
+                               }
+                       }
+               } else if (resource instanceof RouterInterfacesResource) {
+                       // validation of tenant_id
+                       final String tenantId = ((RouterInterfacesResource) resource)
+                                       .getTenantId();
+                       if (tenantId == null
+                                       || tenantId.isEmpty()
+                                       || !validator.isValidMaxLengthAlphaNum(tenantId,
+                                                       VtnServiceJsonConsts.LEN_31)) {
+                               isValid = false;
+                               setInvalidParameter(VtnServiceOpenStackConsts.TENANT_ID
+                                               + VtnServiceConsts.COLON + tenantId);
+                       }
+
+                       // validation of router_id
+                       if (isValid) {
+                               final String routerId = ((RouterInterfacesResource) resource)
+                                               .getRouterId();
+                               if (routerId == null
+                                               || routerId.isEmpty()
+                                               || !validator.isValidMaxLengthAlphaNum(routerId,
+                                                               VtnServiceJsonConsts.LEN_31)) {
+                                       isValid = false;
+                                       setInvalidParameter(VtnServiceOpenStackConsts.ROUTER_ID
+                                                       + VtnServiceConsts.COLON + routerId);
+                               }
+                       }
+               }
+               LOG.info("Complete RouterInterfaceResourceValidator#validateUri()");
+               return isValid;
+       }
+
+       /**
+        * Check the validity of IP address in CIDR notation
+        * 
+        * @param cidrDestination
+        *            - CIDR format IP address string
+        * @return - result as true or false
+        */
+       private boolean isValidIP(String cidrDestination) {
+               boolean isValid = false;
+               if (VtnServiceOpenStackConsts.DEFAULT_CIDR_IP.equals(cidrDestination)) {
+                       isValid = true;
+               } else {
+                       setInvalidParameter(VtnServiceOpenStackConsts.IP_ADDRESS);
+                       final String[] destination = cidrDestination
+                                       .split(VtnServiceConsts.SLASH);
+                       if (destination != null && destination.length == 2) {
+                               try {
+                                       isValid = IpAddressUtil
+                                                       .textToNumericFormatV4(destination[0]) != null
+                                                       && validator.isValidRange(destination[1], 1, 30);
+                               } catch (Exception e) {
+                                       isValid = false;
+                               }
+                       }
+               }
+               return isValid;
+       }
+
+       /**
+        * Check the validity of OpenStack format MAC address
+        * 
+        * @param macAddress
+        *            - OpenStack format MAC address
+        * @return - result as true or false
+        */
+       private boolean isValidMac(String macAddress) {
+               return macAddress.matches(VtnServiceOpenStackConsts.OS_MAC_ADD_REGEX);
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/validation/RouterResourceValidator.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/validation/RouterResourceValidator.java
new file mode 100644 (file)
index 0000000..6101e4c
--- /dev/null
@@ -0,0 +1,149 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.openstack.validation;
+
+import com.google.gson.JsonObject;
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
+import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
+import org.opendaylight.vtn.javaapi.openstack.constants.VtnServiceOpenStackConsts;
+import org.opendaylight.vtn.javaapi.resources.AbstractResource;
+import org.opendaylight.vtn.javaapi.resources.openstack.RouterResource;
+import org.opendaylight.vtn.javaapi.resources.openstack.RoutersResource;
+import org.opendaylight.vtn.javaapi.validation.CommonValidator;
+import org.opendaylight.vtn.javaapi.validation.VtnServiceValidator;
+
+/**
+ * Router Validation Resource class. Contains methods to validate URI,
+ * parameters of POST and PUT request body
+ * 
+ */
+public class RouterResourceValidator extends VtnServiceValidator {
+
+       /* Logger instance */
+       private static final Logger LOG = Logger
+                       .getLogger(RouterResourceValidator.class.getName());
+
+       /* AbstractResource reference pointing to actual Resource class */
+       private final AbstractResource resource;
+
+       /* instance for common validation operation */
+       private final CommonValidator validator = new CommonValidator();
+
+       /**
+        * Constructor that provide reference of actual Resource class to instance
+        * variable resource
+        * 
+        * @param resource
+        *            - Resource class reference
+        */
+       public RouterResourceValidator(final AbstractResource resource) {
+               this.resource = resource;
+       }
+
+       /**
+        * Calls the respective validation method according to type of method
+        * 
+        * @see org.opendaylight.vtn.javaapi.validation.VtnServiceValidator#validate
+        *      (java.lang.String, com.google.gson.JsonObject)
+        */
+       @Override
+       public void validate(String method, JsonObject requestBody)
+                       throws VtnServiceException {
+               LOG.info("Start RouterResourceValidator#validate()");
+               boolean isValid = false;
+               try {
+                       isValid = validateUri();
+                       if (isValid && requestBody != null
+                                       && VtnServiceConsts.POST.equalsIgnoreCase(method)) {
+                               isValid = validatePost(validator, requestBody);
+//                     } else if (isValid && requestBody != null
+//                                     && VtnServiceConsts.PUT.equals(method)) {
+//                             isValid = validatePut(validator, requestBody);
+                       } else if (isValid) {
+                               setInvalidParameter(UncCommonEnum.UncResultCode.UNC_METHOD_NOT_ALLOWED
+                                               .getMessage());
+                               isValid = false;
+                       }
+               } catch (final NumberFormatException e) {
+                       LOG.error("Invalid value : " + e.getMessage());
+                       isValid = false;
+               } catch (final ClassCastException e) {
+                       LOG.error("Invalid type : " + e.getMessage());
+                       isValid = false;
+               }
+
+               /*
+                * throw exception in case of validation fail
+                */
+               if (!isValid) {
+                       LOG.error("Validation failure");
+                       throw new VtnServiceException(Thread.currentThread()
+                                       .getStackTrace()[1].getMethodName(),
+                                       UncJavaAPIErrorCode.VALIDATION_ERROR.getErrorCode(),
+                                       UncJavaAPIErrorCode.VALIDATION_ERROR.getErrorMessage());
+               }
+               LOG.info("Complete RouterResourceValidator#validate()");
+       }
+
+       /**
+        * Validate resource specific URI parameters
+        * 
+        * @see org.opendaylight.vtn.javaapi.validation.VtnServiceValidator#validateUri
+        *      ()
+        */
+       @Override
+       public boolean validateUri() throws VtnServiceException {
+               LOG.trace("Start RouterResourceValidator#validateUri()");
+               boolean isValid = true;
+               if (resource instanceof RouterResource) {
+                       // validation of tenant_id
+                       final String tenantId = ((RouterResource) resource).getTenantId();
+                       if (tenantId == null
+                                       || tenantId.isEmpty()
+                                       || !validator.isValidMaxLengthAlphaNum(tenantId,
+                                                       VtnServiceJsonConsts.LEN_31)) {
+                               isValid = false;
+                               setInvalidParameter(VtnServiceOpenStackConsts.TENANT_ID
+                                               + VtnServiceConsts.COLON + tenantId);
+                       }
+
+                       // validation of router_id
+                       if (isValid) {
+                               final String routerId = ((RouterResource) resource)
+                                               .getRouterId();
+                               if (routerId == null
+                                               || routerId.isEmpty()
+                                               || !validator.isValidMaxLengthAlphaNum(routerId,
+                                                               VtnServiceJsonConsts.LEN_31)) {
+                                       isValid = false;
+                                       setInvalidParameter(VtnServiceOpenStackConsts.ROUTER_ID
+                                                       + VtnServiceConsts.COLON + routerId);
+                               }
+                       }
+               } else if (resource instanceof RoutersResource) {
+                       // validation of tenant_id
+                       final String tenantId = ((RoutersResource) resource).getTenantId();
+                       if (tenantId == null
+                                       || tenantId.isEmpty()
+                                       || !validator.isValidMaxLengthAlphaNum(tenantId,
+                                                       VtnServiceJsonConsts.LEN_31)) {
+                               isValid = false;
+                               setInvalidParameter(VtnServiceOpenStackConsts.TENANT_ID
+                                               + VtnServiceConsts.COLON + tenantId);
+                       }
+               }
+               LOG.trace("Complete RouterResourceValidator#validateUri()");
+               return isValid;
+       }
+
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/validation/TenantResourceValidator.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/validation/TenantResourceValidator.java
new file mode 100644 (file)
index 0000000..bc00c73
--- /dev/null
@@ -0,0 +1,122 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.openstack.validation;
+
+import com.google.gson.JsonObject;
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
+import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
+import org.opendaylight.vtn.javaapi.openstack.constants.VtnServiceOpenStackConsts;
+import org.opendaylight.vtn.javaapi.resources.AbstractResource;
+import org.opendaylight.vtn.javaapi.resources.openstack.TenantResource;
+import org.opendaylight.vtn.javaapi.validation.CommonValidator;
+import org.opendaylight.vtn.javaapi.validation.VtnServiceValidator;
+
+/**
+ * Tenant Validation Resource class. Contains methods to validate URI,
+ * parameters of POST and PUT request body
+ * 
+ */
+public class TenantResourceValidator extends VtnServiceValidator {
+
+       /* Logger instance */
+       private static final Logger LOG = Logger
+                       .getLogger(TenantResourceValidator.class.getName());
+
+       /* AbstractResource reference pointing to actual Resource class */
+       private final AbstractResource resource;
+
+       /* instance for common validation operation */
+       private final CommonValidator validator = new CommonValidator();
+
+       /**
+        * Constructor that provide reference of actual Resource class to instance
+        * variable resource
+        * 
+        * @param resource
+        *            - Resource class reference
+        */
+       public TenantResourceValidator(final AbstractResource resource) {
+               this.resource = resource;
+       }
+
+       /**
+        * Calls the respective validation method according to type of method
+        * 
+        * @see org.opendaylight.vtn.javaapi.validation.VtnServiceValidator#validate
+        *      (java.lang.String, com.google.gson.JsonObject)
+        */
+       @Override
+       public void validate(String method, JsonObject requestBody)
+                       throws VtnServiceException {
+               LOG.info("Start TenantResourceValidator#validate()");
+               boolean isValid = false;
+               try {
+                       isValid = validateUri();
+                       if (isValid && requestBody != null
+                                       && VtnServiceConsts.POST.equalsIgnoreCase(method)) {
+                               isValid = validatePost(validator, requestBody);
+                       } else if (isValid && requestBody != null
+                                       && VtnServiceConsts.PUT.equals(method)) {
+                               isValid = validatePut(validator, requestBody);
+                       } else if (isValid) {
+                               setInvalidParameter(UncCommonEnum.UncResultCode.UNC_METHOD_NOT_ALLOWED
+                                               .getMessage());
+                               isValid = false;
+                       }
+               } catch (final NumberFormatException e) {
+                       LOG.error("Invalid value : " + e.getMessage());
+                       isValid = false;
+               } catch (final ClassCastException e) {
+                       LOG.error("Invalid type : " + e.getMessage());
+                       isValid = false;
+               }
+
+               /*
+                * throw exception in case of validation fail
+                */
+               if (!isValid) {
+                       LOG.error("Validation failure");
+                       throw new VtnServiceException(Thread.currentThread()
+                                       .getStackTrace()[1].getMethodName(),
+                                       UncJavaAPIErrorCode.VALIDATION_ERROR.getErrorCode(),
+                                       UncJavaAPIErrorCode.VALIDATION_ERROR.getErrorMessage());
+               }
+               LOG.info("Complete TenantResourceValidator#validate()");
+       }
+
+       /**
+        * Validate resource specific URI parameters
+        * 
+        * @see org.opendaylight.vtn.javaapi.validation.VtnServiceValidator#validateUri
+        *      ()
+        */
+       @Override
+       public boolean validateUri() throws VtnServiceException {
+               LOG.info("Start TenantResourceValidator#validateUri()");
+               boolean isValid = true;
+               if (resource instanceof TenantResource) {
+                       // validation of tenant_id
+                       final String tenantId = ((TenantResource) resource).getTenantId();
+                       if (tenantId == null
+                                       || tenantId.isEmpty()
+                                       || !validator.isValidMaxLengthAlphaNum(tenantId,
+                                                       VtnServiceJsonConsts.LEN_31)) {
+                               isValid = false;
+                               setInvalidParameter(VtnServiceOpenStackConsts.TENANT_ID
+                                               + VtnServiceConsts.COLON + tenantId);
+                       }
+               }
+               LOG.info("Complete TenantResourceValidator#validateUri()");
+               return isValid;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/validation/package-info.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/openstack/validation/package-info.java
new file mode 100644 (file)
index 0000000..3917ec7
--- /dev/null
@@ -0,0 +1,13 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * Package contains Validation classes for OpenStack resources
+ */
+package org.opendaylight.vtn.javaapi.openstack.validation;
\ No newline at end of file
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/package-info.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/package-info.java
new file mode 100644 (file)
index 0000000..2b1aaf0
--- /dev/null
@@ -0,0 +1,15 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * Package contains Java API interfacing classes 
+ * and interfaces for platform layer APIs
+ */
+package org.opendaylight.vtn.javaapi;
+
index 06c9254e1d1ca4f1f7d03740bd947f0dee5c63b2..ed85d1ec535bb40756f8c31c5b714f3348c69036 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -118,9 +118,8 @@ public final class AnnotationReflect {
                        return returnKey;
                }
                // iterate for each value of KeySet in scanned resource classes
-               //for (final String key : PackageScan.getCachedResources().keySet()) {
                PackageScan pscan = PackageScan.getInstance();
-               for (final String key: pscan.getAllPaths()) {
+               for (final String key : pscan.getAllPaths()) {
                        if (returnKey != null) {
                                break;
                        }
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/reflect/package-info.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/reflect/package-info.java
new file mode 100644 (file)
index 0000000..0e96c1c
--- /dev/null
@@ -0,0 +1,14 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * package contains Java API Resource resolver class(s).
+ */
+package org.opendaylight.vtn.javaapi.reflect;
+
index 8c4d7ff35c4c6620d340131a4c4848d01a0ebdad..cb56b4a044314de3fe1bb46848c10eb2867956d9 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -57,7 +57,8 @@ public class AbortCandidateConfigResource extends AbstractResource {
         *             the vtn service exception
         */
        @Override
-       public int put(final JsonObject requestBody) throws VtnServiceException {
+       public final int put(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts AbortCandidateConfigResource#put()");
                ClientSession session = null;
                int status = ClientSession.RESP_FATAL;
@@ -89,7 +90,7 @@ public class AbortCandidateConfigResource extends AbstractResource {
                                        .setIpcUint32Value(getConfigID()));
                        LOG.info("Request packet created successfully");
                        status = session.invoke();
-                       LOG.info("Request packet processed with status:"+status);
+                       LOG.info("Request packet processed with status:" + status);
                        final String operationType = IpcDataUnitWrapper
                                        .getIpcDataUnitValue(session
                                                        .getResponse(VtnServiceJsonConsts.VAL_0));
index 3e440f16ab57049ac5dd298b6acc0c325d8e6232..7d91a830dc3166a6bdf481423c085bf73da36eb7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -9,6 +9,7 @@
 package org.opendaylight.vtn.javaapi.resources;
 
 import java.lang.reflect.Method;
+import java.sql.Connection;
 import java.util.List;
 
 import com.google.gson.JsonArray;
@@ -17,7 +18,6 @@ import org.opendaylight.vtn.core.ipc.ClientSession;
 import org.opendaylight.vtn.core.ipc.IpcDataUnit;
 import org.opendaylight.vtn.core.util.Logger;
 import org.opendaylight.vtn.javaapi.VtnServiceResource;
-import org.opendaylight.vtn.javaapi.annotation.UNCVtnService;
 import org.opendaylight.vtn.javaapi.connection.IpcConnPool;
 import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
 import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
@@ -26,14 +26,12 @@ import org.opendaylight.vtn.javaapi.exception.VtnServiceExceptionHandler;
 import org.opendaylight.vtn.javaapi.init.VtnServiceConfiguration;
 import org.opendaylight.vtn.javaapi.init.VtnServiceInitManager;
 import org.opendaylight.vtn.javaapi.ipc.IpcRequestProcessor;
-import org.opendaylight.vtn.javaapi.ipc.conversion.IpcDataUnitWrapper;
 import org.opendaylight.vtn.javaapi.ipc.conversion.IpcLogicalResponseFactory;
 import org.opendaylight.vtn.javaapi.ipc.conversion.IpcPhysicalResponseFactory;
 import org.opendaylight.vtn.javaapi.ipc.enums.IpcRequestPacketEnum;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum.UncResultCode;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
-import org.opendaylight.vtn.javaapi.ipc.enums.UncOption2Enum;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncSYSMGEnums;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncSessionEnums;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncTCEnums;
@@ -55,6 +53,9 @@ public abstract class AbstractResource implements VtnServiceResource {
        private long sessionID = VtnServiceConsts.INVALID_SESSIONID;
        private IpcConnPool connPool;
 
+       /* OpenStack DB Connection instance */
+       Connection openStackConnection;
+
        public AbstractResource() {
        }
 
@@ -72,8 +73,7 @@ public abstract class AbstractResource implements VtnServiceResource {
        @Override
        public int delete() throws VtnServiceException {
                LOG.trace("Return from AbstractResource#delete");
-               createErrorInfo(UncResultCode.UNC_CLIENT_ERROR.getValue(),
-                               VtnServiceConsts.RESOURCE_METHOD_INCORRECT);
+               createErrorInfo(UncResultCode.UNC_METHOD_NOT_ALLOWED.getValue());
                return UncResultCode.UNC_CLIENT_ERROR.getValue();
        }
 
@@ -83,8 +83,7 @@ public abstract class AbstractResource implements VtnServiceResource {
        @Override
        public int delete(final JsonObject queryString) throws VtnServiceException {
                LOG.trace("Return from AbstractResource#delete");
-               createErrorInfo(UncResultCode.UNC_CLIENT_ERROR.getValue(),
-                               VtnServiceConsts.RESOURCE_METHOD_INCORRECT);
+               createErrorInfo(UncResultCode.UNC_METHOD_NOT_ALLOWED.getValue());
                return UncResultCode.UNC_CLIENT_ERROR.getValue();
        }
 
@@ -94,8 +93,7 @@ public abstract class AbstractResource implements VtnServiceResource {
        @Override
        public int get() throws VtnServiceException {
                LOG.trace("Return from AbstractResource#get");
-               createErrorInfo(UncResultCode.UNC_CLIENT_ERROR.getValue(),
-                               VtnServiceConsts.RESOURCE_METHOD_INCORRECT);
+               createErrorInfo(UncResultCode.UNC_METHOD_NOT_ALLOWED.getValue());
                return UncResultCode.UNC_CLIENT_ERROR.getValue();
        }
 
@@ -105,8 +103,7 @@ public abstract class AbstractResource implements VtnServiceResource {
        @Override
        public int get(final JsonObject queryString) throws VtnServiceException {
                LOG.trace("Return from AbstractResource#get");
-               createErrorInfo(UncResultCode.UNC_CLIENT_ERROR.getValue(),
-                               VtnServiceConsts.RESOURCE_METHOD_INCORRECT);
+               createErrorInfo(UncResultCode.UNC_METHOD_NOT_ALLOWED.getValue());
                return UncResultCode.UNC_CLIENT_ERROR.getValue();
        }
 
@@ -136,8 +133,7 @@ public abstract class AbstractResource implements VtnServiceResource {
        @Override
        public int post(final JsonObject requestBody) throws VtnServiceException {
                LOG.trace("Return from AbstractResource#post");
-               createErrorInfo(UncResultCode.UNC_CLIENT_ERROR.getValue(),
-                               VtnServiceConsts.RESOURCE_METHOD_INCORRECT);
+               createErrorInfo(UncResultCode.UNC_METHOD_NOT_ALLOWED.getValue());
                return UncResultCode.UNC_CLIENT_ERROR.getValue();
        }
 
@@ -147,8 +143,7 @@ public abstract class AbstractResource implements VtnServiceResource {
        @Override
        public int put(final JsonObject requestBody) throws VtnServiceException {
                LOG.trace("Return from AbstractResource#put");
-               createErrorInfo(UncResultCode.UNC_CLIENT_ERROR.getValue(),
-                               VtnServiceConsts.RESOURCE_METHOD_INCORRECT);
+               createErrorInfo(UncResultCode.UNC_METHOD_NOT_ALLOWED.getValue());
                return UncResultCode.UNC_CLIENT_ERROR.getValue();
        }
 
@@ -259,6 +254,33 @@ public abstract class AbstractResource implements VtnServiceResource {
                                .getValue()) {
                        error.addProperty(VtnServiceJsonConsts.MSG,
                                        UncCommonEnum.UncResultCode.UNC_CLIENT_ERROR.getMessage());
+               } else if (code == UncCommonEnum.UncResultCode.UNC_INVALID_ARGUMENT
+                               .getValue()) {
+                       error.addProperty(VtnServiceJsonConsts.MSG,
+                                       UncCommonEnum.UncResultCode.UNC_INVALID_ARGUMENT
+                                                       .getMessage());
+               } else if (code == UncCommonEnum.UncResultCode.UNC_INVALID_FORMAT
+                               .getValue()) {
+                       error.addProperty(VtnServiceJsonConsts.MSG,
+                                       UncCommonEnum.UncResultCode.UNC_INVALID_FORMAT.getMessage());
+               } else if (code == UncCommonEnum.UncResultCode.UNC_INTERNAL_SERVER_ERROR
+                               .getValue()) {
+                       error.addProperty(VtnServiceJsonConsts.MSG,
+                                       UncCommonEnum.UncResultCode.UNC_INTERNAL_SERVER_ERROR
+                                                       .getMessage());
+               } else if (code == UncCommonEnum.UncResultCode.UNC_CTRL_NOT_FOUND
+                               .getValue()) {
+                       error.addProperty(VtnServiceJsonConsts.MSG,
+                                       UncCommonEnum.UncResultCode.UNC_CTRL_NOT_FOUND.getMessage());
+               } else if (code == UncCommonEnum.UncResultCode.UNC_CONFLICT_FOUND
+                               .getValue()) {
+                       error.addProperty(VtnServiceJsonConsts.MSG,
+                                       UncCommonEnum.UncResultCode.UNC_CONFLICT_FOUND.getMessage());
+               } else if (code == UncCommonEnum.UncResultCode.UNC_METHOD_NOT_ALLOWED
+                               .getValue()) {
+                       error.addProperty(VtnServiceJsonConsts.MSG,
+                                       UncCommonEnum.UncResultCode.UNC_METHOD_NOT_ALLOWED
+                                                       .getMessage());
                } else {
                        error.addProperty(VtnServiceJsonConsts.MSG, "Invalid error code");
                }
@@ -273,7 +295,7 @@ public abstract class AbstractResource implements VtnServiceResource {
         * 
         * @param errorMessage
         */
-       public void createErrorInfo(int errorCode, String errorMessage) {
+       public void createErrorInfo(final int errorCode, final String errorMessage) {
                LOG.trace("Complete AbstractResource#createErrorInfo");
                final JsonObject errorJsonObject = new JsonObject();
                final JsonObject error = new JsonObject();
@@ -289,7 +311,8 @@ public abstract class AbstractResource implements VtnServiceResource {
         * 
         * @param errorMessage
         */
-       public void createSessionErrorInfo(UncSessionEnums.UsessIpcErrE errorEnum) {
+       public void createSessionErrorInfo(
+                       final UncSessionEnums.UsessIpcErrE errorEnum) {
                LOG.trace("Complete AbstractResource#createSessionErrorInfo");
                final JsonObject errorJsonObject = new JsonObject();
                final JsonObject error = new JsonObject();
@@ -305,7 +328,7 @@ public abstract class AbstractResource implements VtnServiceResource {
         * 
         * @param errorMessage
         */
-       public void createTcErrorInfo(UncTCEnums.OperationStatus errorEnum) {
+       public void createTcErrorInfo(final UncTCEnums.OperationStatus errorEnum) {
                LOG.trace("Complete AbstractResource#createTcErrorInfo");
                final JsonObject errorJsonObject = new JsonObject();
                final JsonObject error = new JsonObject();
@@ -321,7 +344,8 @@ public abstract class AbstractResource implements VtnServiceResource {
         * 
         * @param errorMessage
         */
-       public void createNoMgErrorInfo(UncSYSMGEnums.NodeIpcErrorT errorEnum) {
+       public void
+                       createNoMgErrorInfo(final UncSYSMGEnums.NodeIpcErrorT errorEnum) {
                LOG.trace("Complete AbstractResource#createNoMgErrorInfo");
                final JsonObject errorJsonObject = new JsonObject();
                final JsonObject error = new JsonObject();
@@ -369,20 +393,21 @@ public abstract class AbstractResource implements VtnServiceResource {
         * @throws VtnServiceException
         */
        public JsonObject getResponseJsonArrayPhysical(
-                       final JsonObject requestBody, IpcRequestProcessor requestProcessor,
-                       Object responseGenerator, JsonArray responseArray,
-                       String JsonArrayName, String IndexName,
-                       IpcRequestPacketEnum requestPackeEnumName,
-                       List<String> uriParameters, String methodName)
+                       final JsonObject requestBody,
+                       final IpcRequestProcessor requestProcessor,
+                       final Object responseGenerator, final JsonArray responseArray,
+                       final String JsonArrayName, final String IndexName,
+                       final IpcRequestPacketEnum requestPackeEnumName,
+                       final List<String> uriParameters, final String methodName)
                        throws VtnServiceException {
                // session reset
                requestProcessor.setServiceInfo(UncUPPLEnums.UPPL_IPC_SVC_NAME,
                                UncUPPLEnums.ServiceID.UPPL_SVC_READREQ.ordinal());
                int status = ClientSession.RESP_FATAL;
                int memberIndex = 0;
-               VtnServiceConfiguration configuration = VtnServiceInitManager
+               final VtnServiceConfiguration configuration = VtnServiceInitManager
                                .getConfigurationMap();
-               int max_rep_count = Integer.parseInt(configuration
+               final int max_rep_count = Integer.parseInt(configuration
                                .getConfigValue(VtnServiceConsts.MAX_REP_DEFAULT));
                memberIndex = responseArray.size();
                if (memberIndex != 0) {
@@ -406,13 +431,6 @@ public abstract class AbstractResource implements VtnServiceResource {
 
                                requestProcessor.createIpcRequestPacket(requestPackeEnumName,
                                                requestBody, uriParameters);
-                               // for testing only
-                               requestProcessor
-                                               .getRequestPacket()
-                                               .setOption2(
-                                                               IpcDataUnitWrapper
-                                                                               .setIpcUint32Value(UncOption2Enum.UNC_OPT2_NEIGHBOR
-                                                                                               .ordinal()));
 
                                status = requestProcessor.processIpcRequest();
                                if (status == ClientSession.RESP_FATAL) {
@@ -462,7 +480,7 @@ public abstract class AbstractResource implements VtnServiceResource {
                                memberIndex = memberArray.size();
                        }
                }
-               JsonObject root = new JsonObject();
+               final JsonObject root = new JsonObject();
                root.add(JsonArrayName, responseArray);
                return root;
        }
@@ -484,19 +502,20 @@ public abstract class AbstractResource implements VtnServiceResource {
         * @throws VtnServiceException
         */
        public JsonObject getResponseJsonArrayLogical(final JsonObject requestBody,
-                       IpcRequestProcessor requestProcessor, Object responseGenerator,
-                       JsonArray responseArray, String JsonArrayName, String IndexName,
-                       IpcRequestPacketEnum requestPackeEnumName,
-                       List<String> uriParameters, String methodName)
+                       final IpcRequestProcessor requestProcessor,
+                       final Object responseGenerator, final JsonArray responseArray,
+                       final String JsonArrayName, final String IndexName,
+                       final IpcRequestPacketEnum requestPackeEnumName,
+                       final List<String> uriParameters, final String methodName)
                        throws VtnServiceException {
                // session reset
                requestProcessor.setServiceInfo(UncUPLLEnums.UPLL_IPC_SERVICE_NAME,
                                UncUPLLEnums.ServiceID.UPLL_READ_SVC_ID.ordinal());
                int status = ClientSession.RESP_FATAL;
                int memberIndex = 0;
-               VtnServiceConfiguration configuration = VtnServiceInitManager
+               final VtnServiceConfiguration configuration = VtnServiceInitManager
                                .getConfigurationMap();
-               int max_rep_count = Integer.parseInt(configuration
+               final int max_rep_count = Integer.parseInt(configuration
                                .getConfigValue(VtnServiceConsts.MAX_REP_DEFAULT));
                memberIndex = responseArray.size();
                if (memberIndex != 0) {
@@ -520,13 +539,6 @@ public abstract class AbstractResource implements VtnServiceResource {
 
                                requestProcessor.createIpcRequestPacket(requestPackeEnumName,
                                                requestBody, uriParameters);
-                               // for testing only
-                               requestProcessor
-                                               .getRequestPacket()
-                                               .setOption2(
-                                                               IpcDataUnitWrapper
-                                                                               .setIpcUint32Value(UncOption2Enum.UNC_OPT2_NEIGHBOR
-                                                                                               .ordinal()));
 
                                status = requestProcessor.processIpcRequest();
                                if (status == ClientSession.RESP_FATAL) {
@@ -576,8 +588,71 @@ public abstract class AbstractResource implements VtnServiceResource {
                                memberIndex = memberArray.size();
                        }
                }
-               JsonObject root = new JsonObject();
+               final JsonObject root = new JsonObject();
                root.add(JsonArrayName, responseArray);
                return root;
        }
+
+       /**
+        * 
+        * @param errorMassage
+        * @param resourceName
+        * @param resourceValue
+        * @return
+        */
+       public String getCutomErrorMessage(String errorMassage,
+                       String resourceName, String resourceValue) {
+               LOG.trace("Start AbstractResource#getConflictMessage()");
+               StringBuilder errorMessage = new StringBuilder();
+               errorMessage.append(errorMassage);
+               errorMessage.append(VtnServiceConsts.OPEN_SMALL_BRACES);
+               errorMessage.append(resourceName);
+               errorMessage.append(VtnServiceConsts.COLON);
+               errorMessage.append(resourceValue);
+               errorMessage.append(VtnServiceConsts.CLOSE_SMALL_BRACES);
+
+               LOG.trace("Complete AbstractResource#getConflictMessage()");
+               return errorMessage.toString();
+       }
+
+       /**
+        * Getter for openStackConnection
+        * 
+        * @return
+        */
+       public Connection getOpenStackConnection() {
+               return openStackConnection;
+       }
+
+       /**
+        * Setter for openStackConnection
+        * 
+        * @param openStackConnection
+        */
+       public void setOpenStackConnection(Connection openStackConnection) {
+               this.openStackConnection = openStackConnection;
+       }
+
+       /**
+        * Check for 400, 404, 409 and 503 errors returns from platform layer
+        * components
+        * 
+        * @param info
+        */
+       protected void checkForSpecificErrors(JsonObject info) {
+               if (info != null && !info.isJsonNull()
+                               && info.has(VtnServiceJsonConsts.ERROR)) {
+                       int errorCode = info.get(VtnServiceJsonConsts.ERROR)
+                                       .getAsJsonObject().get(VtnServiceJsonConsts.CODE)
+                                       .getAsInt();
+                       if (errorCode == UncResultCode.UNC_INVALID_FORMAT.getValue()
+                                       || errorCode == UncResultCode.UNC_NOT_FOUND.getValue()
+                                       || errorCode == UncResultCode.UNC_CONFLICT_FOUND.getValue()
+                                       || errorCode == UncResultCode.UNC_TOO_MANY_ENTITIES_FOUND
+                                                       .getValue()
+                                       || errorCode == UncResultCode.UNC_SERVICE_UNAVILABLE
+                                                       .getValue())
+                               createErrorInfo(errorCode);
+               }
+       }
 }
index 4df3a1de50065132bd83fcfe0263bdb29cb35042..b991a6e0deec8b631f49ead1bb5ba6a8dfaee4e2 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -57,7 +57,8 @@ public class AcquireConfigModeResource extends AbstractResource {
         *             the vtn service exception
         */
        @Override
-       public int post(final JsonObject requestBody) throws VtnServiceException {
+       public final int post(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts AcquireConfigModeResource#post()");
                ClientSession session = null;
                int status = ClientSession.RESP_FATAL;
@@ -85,7 +86,7 @@ public class AcquireConfigModeResource extends AbstractResource {
                                        .setIpcUint32Value(getSessionID()));
                        LOG.info("Request packet created successfully");
                        status = session.invoke();
-                       LOG.info("Request packet processed with status:"+status);
+                       LOG.info("Request packet processed with status:" + status);
                        final String operationType = IpcDataUnitWrapper
                                        .getIpcDataUnitValue(session
                                                        .getResponse(VtnServiceJsonConsts.VAL_0));
@@ -95,14 +96,10 @@ public class AcquireConfigModeResource extends AbstractResource {
                        final int operationStatus = Integer.parseInt(IpcDataUnitWrapper
                                        .getIpcDataUnitValue(session
                                                        .getResponse(VtnServiceJsonConsts.VAL_2)));
-                       final String configId = IpcDataUnitWrapper
-                                       .getIpcDataUnitValue(session
-                                                       .getResponse(VtnServiceJsonConsts.VAL_3));
                        LOG.info("Response  received successfully");
                        LOG.info("OperationType " + operationType);
                        LOG.info("SessionId " + sessionId);
                        LOG.info("OperationStatus " + operationStatus);
-                       LOG.info("ConfigId " + configId);
                        if (operationStatus != UncTCEnums.OperationStatus.TC_OPER_SUCCESS
                                        .getCode()) {
                                createTcErrorInfo(UncIpcErrorCode.getTcCodes(operationStatus));
@@ -110,6 +107,10 @@ public class AcquireConfigModeResource extends AbstractResource {
                                status = UncCommonEnum.UncResultCode.UNC_SERVER_ERROR
                                                .getValue();
                        } else {
+                               final String configId = IpcDataUnitWrapper
+                                               .getIpcDataUnitValue(session
+                                                               .getResponse(VtnServiceJsonConsts.VAL_3));
+                               LOG.info("ConfigId " + configId);
                                final JsonObject response = new JsonObject();
                                final JsonObject config = new JsonObject();
                                config.addProperty(VtnServiceJsonConsts.CONFIGID, configId);
index f970ce763993ce7d1101e96f4f13ae3de7e37469..9a14a8c9cbb5fa46294fbc83135d6766aa45c3b7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -39,7 +39,7 @@ public class ApiVersionResource extends AbstractResource {
         * Implementation of get method of JavaAPI version
         */
        @Override
-       public int get() {
+       public final int get() {
                LOG.trace("Start ApiVersionResource#get()");
                int status = UncResultCode.UNC_SERVER_ERROR.getValue();
                final JsonObject root = new JsonObject();
index 6647d800d88bdf09ec85de17ff3f3aff412178bc..dff350852e39a733d0ee8fac170f87fd27ddf122 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -58,7 +58,8 @@ public class AutoSaveResource extends AbstractResource {
         *             the vtn service exception
         */
        @Override
-       public int put(final JsonObject requestBody) throws VtnServiceException {
+       public final int put(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts AutoSaveResource#put()");
                ClientSession session = null;
                int status = ClientSession.RESP_FATAL;
@@ -98,7 +99,7 @@ public class AutoSaveResource extends AbstractResource {
                                        .setIpcUint32Value(getSessionID()));
                        LOG.info("Request packet created successfully");
                        status = session.invoke();
-                       LOG.info("Request packet processed with status:"+status);
+                       LOG.info("Request packet processed with status:" + status);
                        final String operationType = IpcDataUnitWrapper
                                        .getIpcDataUnitValue(session
                                                        .getResponse(VtnServiceJsonConsts.VAL_0));
@@ -169,7 +170,7 @@ public class AutoSaveResource extends AbstractResource {
         *             the vtn service exception
         */
        @Override
-       public int get() throws VtnServiceException {
+       public final int get() throws VtnServiceException {
                LOG.trace("Starts AutoSaveResource#get()");
                ClientSession session = null;
                int status = ClientSession.RESP_FATAL;
@@ -187,7 +188,7 @@ public class AutoSaveResource extends AbstractResource {
                                        .setIpcUint32Value(getSessionID()));
                        LOG.info("Request packet created successfully");
                        status = session.invoke();
-                       LOG.info("Request packet processed with status:"+status);
+                       LOG.info("Request packet processed with status:" + status);
                        final String operationType = IpcDataUnitWrapper
                                        .getIpcDataUnitValue(session
                                                        .getResponse(VtnServiceJsonConsts.VAL_0));
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/ClearStartupConfigurationResource.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/ClearStartupConfigurationResource.java
new file mode 100644 (file)
index 0000000..be4e1f6
--- /dev/null
@@ -0,0 +1,148 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.vtn.javaapi.resources;
+
+import com.google.gson.JsonObject;
+import org.opendaylight.vtn.core.ipc.ClientSession;
+import org.opendaylight.vtn.core.ipc.IpcException;
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.annotation.UNCVtnService;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
+import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
+import org.opendaylight.vtn.javaapi.ipc.conversion.IpcDataUnitWrapper;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum.UncResultCode;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncIpcErrorCode;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncTCEnums;
+import org.opendaylight.vtn.javaapi.validation.ClearStartupConfigurationResourceValidator;
+
+/**
+ * The Class ClearStartupConfigurationResource implements the put method of
+ * Clear Startup Configuration API.
+ * 
+ */
+
+@UNCVtnService(path = "/configuration/startup")
+public class ClearStartupConfigurationResource extends AbstractResource {
+       private static final Logger LOG = Logger
+                       .getLogger(ClearStartupConfigurationResource.class.getName());
+
+       /**
+        * Instantiates a new Clear Startup Configuration resource.
+        */
+       public ClearStartupConfigurationResource() {
+               super();
+               LOG.trace("Start ClearStartupConfigurationResource#ClearStartupConfigurationResource()");
+               setValidator(new ClearStartupConfigurationResourceValidator(this));
+               LOG.trace("Complete ClearStartupConfigurationResource#ClearStartupConfigurationResource()");
+       }
+
+       /**
+        * Implementation of Put method of Clear Startup Configuration API
+        * 
+        * @param requestBody
+        *            the request Json Object
+        * 
+        * @return Error code
+        * @throws VtnServiceException
+        *             the vtn service exception
+        */
+       @Override
+       public final int put(final JsonObject requestBody)
+                       throws VtnServiceException {
+               LOG.trace("Starts ClearStartupConfigurationResource#put()");
+               ClientSession session = null;
+               int status = ClientSession.RESP_FATAL;
+               try {
+                       LOG.debug("Start Ipc framework call");
+                       session = getConnPool().getSession(UncTCEnums.UNC_CHANNEL_NAME,
+                                       UncTCEnums.TC_SERVICE_NAME,
+                                       UncTCEnums.ServiceID.TC_STARTUP_DB_SERVICES.ordinal(),
+                                       getExceptionHandler());
+                       LOG.info("Session created successfully");
+                       if (requestBody != null
+                                       && requestBody.has(VtnServiceJsonConsts.STARTUP)
+                                       && requestBody
+                                                       .getAsJsonObject(VtnServiceJsonConsts.STARTUP)
+                                                       .getAsJsonPrimitive(VtnServiceJsonConsts.OPERATION)
+                                                       .getAsString()
+                                                       .equalsIgnoreCase(VtnServiceJsonConsts.CLEAR)) {
+                               session.addOutput(IpcDataUnitWrapper
+                                               .setIpcUint32Value(UncTCEnums.ServiceType.TC_OP_CLEAR_STARTUP
+                                                               .ordinal()));
+                       } else {
+                               LOG.warning("Request body is not correct");
+                       }
+                       session.addOutput(IpcDataUnitWrapper
+                                       .setIpcUint32Value(getSessionID()));
+                       LOG.info("Request packet created successfully");
+                       status = session.invoke();
+                       LOG.info("Request packet processed with status:" + status);
+                       final String operationType = IpcDataUnitWrapper
+                                       .getIpcDataUnitValue(session
+                                                       .getResponse(VtnServiceJsonConsts.VAL_0));
+                       final String sessionId = IpcDataUnitWrapper.getIpcDataUnitValue(
+                                       session.getResponse(VtnServiceJsonConsts.VAL_1)).toString();
+                       final int operationStatus = Integer.parseInt(IpcDataUnitWrapper
+                                       .getIpcDataUnitValue(session
+                                                       .getResponse(VtnServiceJsonConsts.VAL_2)));
+                       LOG.info("Response retreived successfully");
+                       LOG.info("Operation type= " + operationType);
+                       LOG.info("SessionId= " + sessionId);
+                       LOG.info("OperationStatus= " + operationStatus);
+                       if (operationStatus != UncTCEnums.OperationStatus.TC_OPER_SUCCESS
+                                       .getCode()) {
+                               createTcErrorInfo(UncIpcErrorCode.getTcCodes(operationStatus));
+                               LOG.info("Request not processed successfully");
+                               status = UncCommonEnum.UncResultCode.UNC_SERVER_ERROR
+                                               .getValue();
+                       } else {
+                               LOG.info("Request processed successfully");
+                               status = UncCommonEnum.UncResultCode.UNC_SUCCESS.getValue();
+                       }
+                       LOG.debug("Complete Ipc framework call");
+               } catch (final VtnServiceException e) {
+                       LOG.info("Error occured while performing getSession operation");
+                       getExceptionHandler()
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR
+                                                                       .getErrorMessage(), e);
+                       throw e;
+               } catch (final IpcException e) {
+                       LOG.info("Error occured while performing addOutput operation");
+                       getExceptionHandler()
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR
+                                                                       .getErrorMessage(), e);
+               } finally {
+                       if (status == ClientSession.RESP_FATAL) {
+                               createErrorInfo(UncCommonEnum.UncResultCode.UNC_SERVER_ERROR
+                                               .getValue());
+                               status = UncResultCode.UNC_SERVER_ERROR.getValue();
+                       }
+                       // destroy session by common handler
+                       getConnPool().destroySession(session);
+               }
+               LOG.trace("Completed ClearStartupConfigurationResource#put()");
+               return status;
+       }
+}
index c7645a5c8cd7c5d42276ffd4fb2510dd440197fa..bbfd00c5daef954016e6742e66afaf0e8bad6012 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -9,6 +9,9 @@
 
 package org.opendaylight.vtn.javaapi.resources;
 
+import java.sql.Connection;
+import java.sql.SQLException;
+
 import com.google.gson.JsonObject;
 import org.opendaylight.vtn.core.ipc.ClientSession;
 import org.opendaylight.vtn.core.ipc.IpcException;
@@ -19,6 +22,7 @@ import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
 import org.opendaylight.vtn.javaapi.constants.VtnServiceIpcConsts;
 import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
 import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
+import org.opendaylight.vtn.javaapi.init.VtnServiceInitManager;
 import org.opendaylight.vtn.javaapi.ipc.conversion.IpcDataUnitWrapper;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum.UncResultCode;
@@ -59,10 +63,12 @@ public class ConfigResource extends AbstractResource {
         *             the vtn service exception
         */
        @Override
-       public int put(final JsonObject requestBody) throws VtnServiceException {
+       public final int put(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts ConfigResource#put()");
                ClientSession session = null;
                int status = ClientSession.RESP_FATAL;
+               int operationStatus = -99999;
                try {
                        LOG.debug("Start Ipc framework call");
                        if (requestBody != null) {
@@ -116,7 +122,7 @@ public class ConfigResource extends AbstractResource {
                                LOG.warning("Request body is not correct");
                        }
                        status = session.invoke();
-                       LOG.info("Request packet processed with status:"+status);
+                       LOG.info("Request packet processed with status:" + status);
                        final int operationType = Integer.parseInt(IpcDataUnitWrapper
                                        .getIpcDataUnitValue(session
                                                        .getResponse(VtnServiceJsonConsts.VAL_0)));
@@ -124,7 +130,7 @@ public class ConfigResource extends AbstractResource {
                                        .getIpcDataUnitValue(session
                                                        .getResponse(VtnServiceJsonConsts.VAL_1));
                        String configId = null;
-                       int operationStatus = VtnServiceIpcConsts.INVALID_OPEARTION_STATUS;
+                       operationStatus = VtnServiceIpcConsts.INVALID_OPEARTION_STATUS;
                        if (operationType == UncTCEnums.ServiceType.TC_OP_CANDIDATE_COMMIT
                                        .ordinal()) {
                                configId = IpcDataUnitWrapper.getIpcDataUnitValue(session
@@ -155,7 +161,7 @@ public class ConfigResource extends AbstractResource {
                        }
                        LOG.debug("Complete Ipc framework call");
                } catch (final VtnServiceException e) {
-                       LOG.info("Error occured while performing getSession operation");
+                       LOG.error("Error occured while performing getSession operation");
                        getExceptionHandler()
                                        .raise(Thread.currentThread().getStackTrace()[1]
                                                        .getClassName()
@@ -167,7 +173,7 @@ public class ConfigResource extends AbstractResource {
                                                                        .getErrorMessage(), e);
                        throw e;
                } catch (final IpcException e) {
-                       LOG.info("Error occured while performing addOutput operation");
+                       LOG.error("Error occured while performing addOutput operation");
                        getExceptionHandler()
                                        .raise(Thread.currentThread().getStackTrace()[1]
                                                        .getClassName()
@@ -185,8 +191,50 @@ public class ConfigResource extends AbstractResource {
                        }
                        // destroy session by common handler
                        getConnPool().destroySession(session);
+                       performOpenStackDBOperation(operationStatus);
                }
                LOG.trace("Completed ConfigResource#put()");
                return status;
        }
+
+       /**
+        * Perform DB commit or rollback, as per status if UNC commit operation
+        * 
+        * @param operationStatus
+        * @throws VtnServiceException
+        * 
+        */
+       private void performOpenStackDBOperation(int operationStatus)
+                       throws VtnServiceException {
+               Connection connection = getOpenStackConnection();
+               // perform only when connection is not null
+               if (connection != null) {
+                       try {
+                               if (operationStatus == UncTCEnums.OperationStatus.TC_OPER_SUCCESS
+                                               .getCode()) {
+                                       LOG.debug("Commit operation");
+                                       connection.commit();
+                               } else {
+                                       LOG.debug("Rollback operation");
+                                       connection.rollback();
+                               }
+                       } catch (SQLException e) {
+                               LOG.error("Error occured performing database commit/rollback operation");
+                               getExceptionHandler()
+                                               .raise(Thread.currentThread().getStackTrace()[1]
+                                                               .getClassName()
+                                                               + VtnServiceConsts.HYPHEN
+                                                               + Thread.currentThread().getStackTrace()[1]
+                                                                               .getMethodName(),
+                                                               UncJavaAPIErrorCode.INTERNAL_ERROR
+                                                                               .getErrorCode(),
+                                                               UncJavaAPIErrorCode.INTERNAL_ERROR
+                                                                               .getErrorMessage(), e);
+                       } finally {
+                               LOG.info("Free connection...");
+                               VtnServiceInitManager.getDbConnectionPoolMap().freeConnection(
+                                               connection);
+                       }
+               }
+       }
 }
index 34411d2d1d8cbc679260a51fa310b7530f6fb775..95aef412d147926f6bb5e07992d2574e93d42747 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -58,7 +58,7 @@ public class DifferenceConfigResource extends AbstractResource {
         *             the vtn service exception
         */
        @Override
-       public int get() throws VtnServiceException {
+       public final int get() throws VtnServiceException {
                LOG.trace("Starts DifferenceConfigResource#get()");
                ClientSession session = null;
                int status = ClientSession.RESP_FATAL;
@@ -181,10 +181,10 @@ public class DifferenceConfigResource extends AbstractResource {
         * @param dirtyStatus
         *            the dirty status
         */
-       private void createResponse(String dirtyStatus) {
+       private void createResponse(final String dirtyStatus) {
                LOG.trace("Starts DifferenceConfigResource#createResponse()");
-               JsonObject response = new JsonObject();
-               JsonObject dirtyJson = new JsonObject();
+               final JsonObject response = new JsonObject();
+               final JsonObject dirtyJson = new JsonObject();
                if (UncStructIndexEnum.DirtyStatus.TRUE.getValue().equals(dirtyStatus)) {
                        dirtyJson.addProperty(VtnServiceJsonConsts.DIFF_STATUS,
                                        VtnServiceJsonConsts.TRUE);
index 3c11d38486beae3ed8c3c01a9438bb1cc2dd618b..a2cd6cc6649b6a3aaa68353414a7f3b6d548b3e0 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -56,7 +56,8 @@ public class ReadLockResource extends AbstractResource {
         *             the vtn service exception
         */
        @Override
-       public int put(final JsonObject requestBody) throws VtnServiceException {
+       public final int put(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts ReadLockResource#put()");
                ClientSession session = null;
                int status = ClientSession.RESP_FATAL;
@@ -89,7 +90,7 @@ public class ReadLockResource extends AbstractResource {
                        }
                        LOG.info("Request packet created successfully");
                        status = session.invoke();
-                       LOG.info("Request packet processed with status:"+status);
+                       LOG.info("Request packet processed with status:" + status);
                        final String operationType = IpcDataUnitWrapper
                                        .getIpcDataUnitValue(session
                                                        .getResponse(VtnServiceJsonConsts.VAL_0));
@@ -162,7 +163,7 @@ public class ReadLockResource extends AbstractResource {
         *             the vtn service exception
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("Starts ReadLockResource#delete()");
                int status = ClientSession.RESP_FATAL;
                ClientSession session = null;
@@ -180,7 +181,7 @@ public class ReadLockResource extends AbstractResource {
                                        .setIpcUint32Value(getSessionID()));
                        LOG.info("Request packet created successfully");
                        status = session.invoke();
-                       LOG.info("Request packet processed with status:"+status);
+                       LOG.info("Request packet processed with status:" + status);
                        final String operationType = IpcDataUnitWrapper
                                        .getIpcDataUnitValue(session.getResponse(0));
                        final String sessionId = IpcDataUnitWrapper
index 229d65349feb147c348049013a41cfb02aed0ef7..c37c001e4e2be15dedc162a6c3757fd640609691 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -41,7 +41,7 @@ public class ReleaseConfigModeResource extends AbstractResource {
         * 
         * @return the config id
         */
-       public String getConfigId() {
+       public final String getConfigId() {
                return configId;
        }
 
@@ -71,7 +71,7 @@ public class ReleaseConfigModeResource extends AbstractResource {
         *             the vtn service exception
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("Starts ReleaseConfigModeResource#delete()");
                ClientSession session = null;
                int status = ClientSession.RESP_FATAL;
@@ -90,7 +90,7 @@ public class ReleaseConfigModeResource extends AbstractResource {
                                        .setIpcUint32Value(getConfigId()));
                        LOG.info("Request packet created successfully");
                        status = session.invoke();
-                       LOG.info("Request packet processed with status:"+status);
+                       LOG.info("Request packet processed with status:" + status);
                        final String operationType = IpcDataUnitWrapper
                                        .getIpcDataUnitValue(session
                                                        .getResponse(VtnServiceJsonConsts.VAL_0));
index 1446e15e17ba28fb896ad6e29ea290180228abe7..e77a8ecff32266e305163e5c7b0c14133dfc9520 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -58,7 +58,7 @@ public class SessionResource extends AbstractResource {
         * 
         * @return the session id
         */
-       public String getSessionId() {
+       public final String getSessionId() {
                return sessionId;
        }
 
@@ -70,7 +70,7 @@ public class SessionResource extends AbstractResource {
         *             the vtn service exception
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("Starts SessionResource#delete()");
                ClientSession session = null;
                int status = ClientSession.RESP_FATAL;
@@ -107,7 +107,7 @@ public class SessionResource extends AbstractResource {
                        session.addOutput(usessIpcReqSessDel);
                        LOG.info("Request packet created successfully");
                        status = session.invoke();
-                       LOG.info("Request packet processed with status:"+status);
+                       LOG.info("Request packet processed with status:" + status);
                        if (status != UncSessionEnums.UsessIpcErrE.USESS_E_OK.ordinal()) {
                                LOG.info("Error occurred while performing operation");
                                createSessionErrorInfo(UncIpcErrorCode.getSessionCodes(status));
@@ -161,7 +161,7 @@ public class SessionResource extends AbstractResource {
         *             the vtn service exception
         */
        @Override
-       public int get() throws VtnServiceException {
+       public final int get() throws VtnServiceException {
                LOG.trace("Starts SessionResource#get()");
                ClientSession session = null;
                int status = ClientSession.RESP_FATAL;
@@ -199,7 +199,7 @@ public class SessionResource extends AbstractResource {
                        session.addOutput(usessIpcReqSessDetail);
                        LOG.info("Request packet created successfully");
                        status = session.invoke();
-                       LOG.info("Request packet processed with status:"+status);
+                       LOG.info("Request packet processed with status:" + status);
                        if (status != UncSessionEnums.UsessIpcErrE.USESS_E_OK.ordinal()) {
                                LOG.info("Error occurred while performing operation");
                                createSessionErrorInfo(UncIpcErrorCode.getSessionCodes(status));
@@ -291,7 +291,7 @@ public class SessionResource extends AbstractResource {
                                .equals(UncSessionEnums.UsessTypeE.USESS_TYPE_WEB_UI.getValue())) {
                        sessJson.addProperty(VtnServiceJsonConsts.TYPE,
                                        VtnServiceJsonConsts.WEBUI);
-               } else{
+               } else {
                        LOG.debug("Incorrect value for type");
                }
                LOG.debug("type:"
@@ -307,7 +307,7 @@ public class SessionResource extends AbstractResource {
                } else if (VtnServiceIpcConsts.USESS_USER_WEB_OPER.equals(userName)) {
                        sessJson.addProperty(VtnServiceJsonConsts.USERNAME,
                                        VtnServiceJsonConsts.OPER);
-               } else{
+               } else {
                        LOG.debug("Incorrect value for user_name");
                }
                // add user type to response json
@@ -323,7 +323,7 @@ public class SessionResource extends AbstractResource {
                                .equals(UncSessionEnums.UserTypeE.USER_TYPE_OPER.getValue())) {
                        sessJson.addProperty(VtnServiceJsonConsts.USERTYPE,
                                        VtnServiceJsonConsts.OPER);
-               } else{
+               } else {
                        LOG.debug("Incorrect value for user_type");
                }
                LOG.debug("usertype:"
@@ -393,7 +393,7 @@ public class SessionResource extends AbstractResource {
                                                .getValue())) {
                        sessJson.addProperty(VtnServiceJsonConsts.MODE,
                                        VtnServiceJsonConsts.UNKNOWN);
-               } else{
+               } else {
                        LOG.debug("Incorrect value for mode");
                }
                LOG.debug("mode: "
@@ -416,7 +416,7 @@ public class SessionResource extends AbstractResource {
                                                .getValue())) {
                        sessJson.addProperty(VtnServiceJsonConsts.CONFIGSTATUS,
                                        VtnServiceJsonConsts.ENABLE);
-               } else{
+               } else {
                        LOG.debug("Incorrect value for config_status");
                }
                LOG.debug("configstatus: "
index 91379c4e14c9bf5b21eb97bdbdf827552bd2cdd9..b1b5be5b7db482363c139371dff52c9518c35578 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -61,7 +61,8 @@ public class SessionsResource extends AbstractResource {
         *             the vtn service exception
         */
        @Override
-       public int post(final JsonObject requestBody) throws VtnServiceException {
+       public final int post(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts SessionsResource#post()");
                ClientSession session = null;
                ClientSession sessionEnable = null;
@@ -134,27 +135,27 @@ public class SessionsResource extends AbstractResource {
                                        usessIpcReqSessAdd
                                                        .set(VtnServiceIpcConsts.LOGIN_NAME,
                                                                        IpcDataUnitWrapper
-                                                                                       .setIpcUint8ArrayValue(VtnServiceJsonConsts.NONE));
+                                                                                       .setIpcUint8ArrayValue(VtnServiceConsts.EMPTY_STRING));
                                }
                                // add type to usess_ipc_req_sess_add structure
                                if (sessionJson.has(VtnServiceJsonConsts.TYPE)
                                                && sessionJson.getAsJsonPrimitive(
                                                                VtnServiceJsonConsts.TYPE).getAsString() != null
-                                                               && sessionJson
+                                               && sessionJson
                                                                .getAsJsonPrimitive(VtnServiceJsonConsts.TYPE)
                                                                .getAsString().trim()
                                                                .equalsIgnoreCase(VtnServiceJsonConsts.WEBAPI)) {
                                        usessIpcReqSessAdd
-                                       .set(VtnServiceIpcConsts.SESS_TYPE,
-                                                       IpcDataUnitWrapper
-                                                       .setIpcInt32Value(UncSessionEnums.UsessTypeE.USESS_TYPE_WEB_API
-                                                                       .ordinal()));
+                                                       .set(VtnServiceIpcConsts.SESS_TYPE,
+                                                                       IpcDataUnitWrapper
+                                                                                       .setIpcInt32Value(UncSessionEnums.UsessTypeE.USESS_TYPE_WEB_API
+                                                                                                       .ordinal()));
                                } else {
                                        usessIpcReqSessAdd
-                                       .set(VtnServiceIpcConsts.SESS_TYPE,
-                                                       IpcDataUnitWrapper
-                                                       .setIpcInt32Value(UncSessionEnums.UsessTypeE.USESS_TYPE_WEB_UI
-                                                                       .ordinal()));
+                                                       .set(VtnServiceIpcConsts.SESS_TYPE,
+                                                                       IpcDataUnitWrapper
+                                                                                       .setIpcInt32Value(UncSessionEnums.UsessTypeE.USESS_TYPE_WEB_UI
+                                                                                                       .ordinal()));
                                }
                                LOG.debug("sess_type: "
                                                + IpcDataUnitWrapper.getIpcStructUint32Value(
@@ -183,7 +184,7 @@ public class SessionsResource extends AbstractResource {
                                        usessIpcReqSessAdd
                                                        .set(VtnServiceJsonConsts.INFO,
                                                                        IpcDataUnitWrapper
-                                                                                       .setIpcUint8ArrayValue(VtnServiceJsonConsts.NONE));
+                                                                                       .setIpcUint8ArrayValue(VtnServiceConsts.EMPTY_STRING));
                                }
                                session.addOutput(usessIpcReqSessAdd);
                                LOG.info("Request packet created successfully");
@@ -191,7 +192,8 @@ public class SessionsResource extends AbstractResource {
                                LOG.info("Request packet processed with status:" + status);
                                if (status != UncSessionEnums.UsessIpcErrE.USESS_E_OK.ordinal()) {
                                        LOG.info("Error occurred while performing operation");
-                                       createSessionErrorInfo(UncIpcErrorCode.getSessionCodes(status));
+                                       createSessionErrorInfo(UncIpcErrorCode
+                                                       .getSessionCodes(status));
                                        status = UncResultCode.UNC_SERVER_ERROR.getValue();
                                } else {
                                        LOG.info("Opeartion successfully performed");
@@ -199,28 +201,26 @@ public class SessionsResource extends AbstractResource {
                                        final IpcStruct responseStruct = (IpcStruct) session
                                                        .getResponse(0);
                                        final JsonObject sessionInfo = new JsonObject();
-                                       final String sessionId = IpcDataUnitWrapper.getIpcStructUint32Value(
-                                                       responseStruct, VtnServiceIpcConsts.ID)
-                                                       .toString();
-                                       sessionInfo.addProperty(
-                                                       VtnServiceJsonConsts.SESSIONID, sessionId);
+                                       final String sessionId = IpcDataUnitWrapper
+                                                       .getIpcStructUint32Value(responseStruct,
+                                                                       VtnServiceIpcConsts.ID).toString();
+                                       sessionInfo.addProperty(VtnServiceJsonConsts.SESSIONID,
+                                                       sessionId);
                                        response.add(VtnServiceJsonConsts.SESSION, sessionInfo);
                                        setInfo(response);
 
                                        if (sessionJson.has(VtnServiceJsonConsts.USERNAME)
                                                        && sessionJson
-                                                       .getAsJsonPrimitive(
-                                                                       VtnServiceJsonConsts.USERNAME)
+                                                                       .getAsJsonPrimitive(
+                                                                                       VtnServiceJsonConsts.USERNAME)
                                                                        .getAsString()
                                                                        .equalsIgnoreCase(
                                                                                        VtnServiceJsonConsts.ADMIN)) {
-                                               sessionEnable = getConnPool()
-                                                               .getSession(
-                                                                               UncSessionEnums.UNCD_IPC_CHANNEL,
-                                                                               UncSessionEnums.UNCD_IPC_SERVICE,
-                                                                               UncSessionEnums.ServiceID.kUsessEnable
-                                                                               .ordinal(),
-                                                                               getExceptionHandler());
+                                               sessionEnable = getConnPool().getSession(
+                                                               UncSessionEnums.UNCD_IPC_CHANNEL,
+                                                               UncSessionEnums.UNCD_IPC_SERVICE,
+                                                               UncSessionEnums.ServiceID.kUsessEnable
+                                                                               .ordinal(), getExceptionHandler());
                                                LOG.info("Session created successfully");
                                                // create request packet for IPC call based on API key
                                                // and JsonObject
@@ -231,17 +231,17 @@ public class SessionsResource extends AbstractResource {
                                                final IpcStruct usessIpcReqSessIdCurrent = new IpcStruct(
                                                                UncStructEnum.UsessIpcSessId.getValue());
                                                usessIpcReqSessIdCurrent
-                                               .set(VtnServiceIpcConsts.ID, IpcDataUnitWrapper
-                                                               .setIpcUint32Value(sessionId));
+                                                               .set(VtnServiceIpcConsts.ID, IpcDataUnitWrapper
+                                                                               .setIpcUint32Value(sessionId));
                                                usessIpcReqSessEnable.set(VtnServiceIpcConsts.CURRENT,
                                                                usessIpcReqSessIdCurrent);
                                                usessIpcReqSessEnable
-                                               .set(VtnServiceIpcConsts.ENABLE_PASSWORD,
-                                                               IpcDataUnitWrapper
-                                                               .setIpcUint8ArrayValue(sessionJson
-                                                                               .getAsJsonPrimitive(
-                                                                                               VtnServiceJsonConsts.PASSWORD)
-                                                                                               .getAsString()));
+                                                               .set(VtnServiceIpcConsts.ENABLE_PASSWORD,
+                                                                               IpcDataUnitWrapper
+                                                                                               .setIpcUint8ArrayValue(sessionJson
+                                                                                                               .getAsJsonPrimitive(
+                                                                                                                               VtnServiceJsonConsts.PASSWORD)
+                                                                                                               .getAsString()));
                                                sessionEnable.addOutput(usessIpcReqSessEnable);
                                                LOG.info("Request packet created successfully");
                                                status = sessionEnable.invoke();
@@ -293,7 +293,7 @@ public class SessionsResource extends AbstractResource {
                        }
                        // destroy session by common handler
                        getConnPool().destroySession(session);
-                       if(sessionEnable != null){
+                       if (sessionEnable != null) {
                                getConnPool().destroySession(sessionEnable);
                        }
                }
@@ -312,7 +312,8 @@ public class SessionsResource extends AbstractResource {
         *             the vtn service exception
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("starts SessionsResource#get()");
                ClientSession session = null;
                int status = ClientSession.RESP_FATAL;
@@ -553,21 +554,26 @@ public class SessionsResource extends AbstractResource {
                                // add mode to response json
                                if (IpcDataUnitWrapper
                                                .getIpcStructUint32Value(responseStruct,
-                                                               VtnServiceIpcConsts.SESS_MODE).toString()
-                                               .equals(UncSessionEnums.UsessModeE.USESS_MODE_OPER.getValue())) {
+                                                               VtnServiceIpcConsts.SESS_MODE)
+                                               .toString()
+                                               .equals(UncSessionEnums.UsessModeE.USESS_MODE_OPER
+                                                               .getValue())) {
                                        sessJson.addProperty(VtnServiceJsonConsts.MODE,
                                                        VtnServiceJsonConsts.OPER);
                                } else if (IpcDataUnitWrapper
                                                .getIpcStructUint32Value(responseStruct,
                                                                VtnServiceIpcConsts.SESS_MODE)
                                                .toString()
-                                               .equals(UncSessionEnums.UsessModeE.USESS_MODE_ENABLE.getValue())) {
+                                               .equals(UncSessionEnums.UsessModeE.USESS_MODE_ENABLE
+                                                               .getValue())) {
                                        sessJson.addProperty(VtnServiceJsonConsts.MODE,
                                                        VtnServiceJsonConsts.ENABLE);
                                } else if (IpcDataUnitWrapper
                                                .getIpcStructUint32Value(responseStruct,
-                                                               VtnServiceIpcConsts.SESS_MODE).toString()
-                                               .equals(UncSessionEnums.UsessModeE.USESS_MODE_DEL.getValue())) {
+                                                               VtnServiceIpcConsts.SESS_MODE)
+                                               .toString()
+                                               .equals(UncSessionEnums.UsessModeE.USESS_MODE_DEL
+                                                               .getValue())) {
                                        sessJson.addProperty(VtnServiceJsonConsts.MODE,
                                                        VtnServiceJsonConsts.DEL);
                                } else if (IpcDataUnitWrapper
@@ -582,8 +588,8 @@ public class SessionsResource extends AbstractResource {
                                        LOG.debug("Incorrect value for mode");
                                }
                                LOG.debug("mode: "
-                                               + IpcDataUnitWrapper.getIpcStructUint32Value(responseStruct,
-                                                               VtnServiceIpcConsts.SESS_MODE));
+                                               + IpcDataUnitWrapper.getIpcStructUint32Value(
+                                                               responseStruct, VtnServiceIpcConsts.SESS_MODE));
                                // add configstatus to response json
                                if (IpcDataUnitWrapper
                                                .getIpcStructUint32Value(responseStruct,
@@ -605,7 +611,8 @@ public class SessionsResource extends AbstractResource {
                                        LOG.debug("Incorrect value for config_status");
                                }
                                LOG.debug("configstatus: "
-                                               + IpcDataUnitWrapper.getIpcStructUint32Value(responseStruct,
+                                               + IpcDataUnitWrapper.getIpcStructUint32Value(
+                                                               responseStruct,
                                                                VtnServiceIpcConsts.CONFIG_STATUS));
                        }
                        sessArray.add(sessJson);
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/UTResource.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/UTResource.java
deleted file mode 100644 (file)
index 123f5ba..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (c) 2012-2013 NEC Corporation
- * All rights reserved.
- * 
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this
- * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.vtn.javaapi.resources;
-
-import org.opendaylight.vtn.javaapi.annotation.UNCField;
-import org.opendaylight.vtn.javaapi.annotation.UNCVtnService;
-
-@UNCVtnService(path = "/test/{test_name}")
-public class UTResource extends AbstractResource {
-
-       @UNCField("test_name")
-       private String testName;
-
-       private UTResource() {
-       }
-
-}
index fb6856c9d9971972a31cf7a307dc85f1e45e9758..1277f6f5025da85489019fcab85a8b9ff51b3f53 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -35,7 +35,7 @@ import org.opendaylight.vtn.javaapi.validation.UserResourceValidator;
 @UNCVtnService(path = "/users/{username}/password")
 public class UserResource extends AbstractResource {
 
-       private static final Logger LOG = Logger.getLogger(ConfigResource.class
+       private static final Logger LOG = Logger.getLogger(UserResource.class
                        .getName());
 
        @UNCField("username")
@@ -46,7 +46,7 @@ public class UserResource extends AbstractResource {
         * 
         * @return the user name
         */
-       public String getUserName() {
+       public final String getUserName() {
                return userName;
        }
 
@@ -71,7 +71,8 @@ public class UserResource extends AbstractResource {
         *             the vtn service exception
         */
        @Override
-       public int put(final JsonObject requestBody) throws VtnServiceException {
+       public final int put(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts UserResource#put()");
                ClientSession session = null;
                int status = ClientSession.RESP_FATAL;
@@ -98,8 +99,10 @@ public class UserResource extends AbstractResource {
 
                        // set user name
                        LOG.info("set user name for : " + getUserName());
-                       usessIpcReqUserPasswd.set(VtnServiceIpcConsts.SESS_UNAME,
-                                       IpcDataUnitWrapper.setIpcUint8ArrayValue(getUNCUserName(getUserName())));
+                       usessIpcReqUserPasswd
+                                       .set(VtnServiceIpcConsts.SESS_UNAME,
+                                                       IpcDataUnitWrapper
+                                                                       .setIpcUint8ArrayValue(getUNCUserName(getUserName())));
 
                        // set password
                        LOG.info("set password");
@@ -112,7 +115,7 @@ public class UserResource extends AbstractResource {
                        session.addOutput(usessIpcReqUserPasswd);
                        LOG.info("Request packet created successfully");
                        status = session.invoke();
-                       LOG.info("Request packet processed with status:"+status);
+                       LOG.info("Request packet processed with status:" + status);
                        if (status != UncSessionEnums.UsessIpcErrE.USESS_E_OK.ordinal()) {
                                LOG.info("Error occurred while performing operation");
                                createSessionErrorInfo(UncIpcErrorCode.getSessionCodes(status));
@@ -158,18 +161,19 @@ public class UserResource extends AbstractResource {
                LOG.trace("Completed UserResource#put()");
                return status;
        }
-       
+
        /**
         * Convert the higher level user name to USESS user name
+        * 
         * @param userName
         * @return
         */
-       private String getUNCUserName(String userName) {
+       private String getUNCUserName(final String userName) {
                LOG.debug("User name : " + userName);
                String uncUserName = null;
                if (userName.equalsIgnoreCase(VtnServiceJsonConsts.ADMIN)) {
                        uncUserName = VtnServiceIpcConsts.USESS_USER_WEB_ADMIN;
-               } else if (userName.equalsIgnoreCase(VtnServiceJsonConsts.OPER)){
+               } else if (userName.equalsIgnoreCase(VtnServiceJsonConsts.OPER)) {
                        uncUserName = VtnServiceIpcConsts.USESS_USER_WEB_OPER;
                }
                LOG.debug("UNC user name : " + uncUserName);
index 44e75f5b1f8ceabe50e6fe003ea121a31a7237b7..54700e83ea4125146b8a8dc5d89cce36fb366c71 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -48,6 +48,7 @@ public class ArpEntryResource extends AbstractResource {
        /** The Constant LOG. */
        private static final Logger LOG = Logger.getLogger(ArpEntryResource.class
                        .getName());
+
        /**
         * Instantiates a new ARP entry resource.
         */
@@ -57,18 +58,21 @@ public class ArpEntryResource extends AbstractResource {
                setValidator(new ArpEntryResourceValidator(this));
                LOG.trace("Complete ArpEntryResource#ArpEntryResource()");
        }
+
        /**
         * @return the vtnName
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
+
        /**
         * @return the vrtName
         */
-       public String getVrtName() {
+       public final String getVrtName() {
                return vrtName;
        }
+
        /**
         * Implementation of get method of ArpEntry API
         * 
@@ -79,7 +83,8 @@ public class ArpEntryResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start ArpEntryResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -131,7 +136,7 @@ public class ArpEntryResource extends AbstractResource {
                                                                                                .ordinal()));
                        }
                        LOG.debug("Request packet created successfully");
-                       status =requestProcessor.processIpcRequest();
+                       status = requestProcessor.processIpcRequest();
                        LOG.debug("Request packet processed with status" + status);
                        final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
                        setInfo(responseGenerator.getARPEntryResponse(
@@ -165,6 +170,7 @@ public class ArpEntryResource extends AbstractResource {
                LOG.trace("Completed ArpEntryResource#get()");
                return status;
        }
+
        /**
         * Add URI parameters to list
         * 
similarity index 57%
rename from coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/physical/VersionResource.java
rename to coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/CoordinatorVersionResource.java
index 91a5d4ccd871f62963a09aaa5be9afee2efa9b94..e1b796f87687d3539253189f97a14ffef7579c5d 100644 (file)
@@ -1,12 +1,13 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2013-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.vtn.javaapi.resources.physical;
+
+package org.opendaylight.vtn.javaapi.resources.logical;
 
 import com.google.gson.JsonArray;
 import com.google.gson.JsonObject;
@@ -26,30 +27,31 @@ import org.opendaylight.vtn.javaapi.ipc.enums.UncIpcErrorCode;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncSYSMGEnums;
 import org.opendaylight.vtn.javaapi.resources.AbstractResource;
-import org.opendaylight.vtn.javaapi.validation.physical.VersionResourceValidator;
+import org.opendaylight.vtn.javaapi.validation.logical.CoordinatorVersionResourceValidator;
 
 /**
- * The Class VersionResource get method.
+ * The Class CoordinatorVersionResource implements get method.
+ * 
  */
-@UNCVtnService(path = "/unc/version")
-public class VersionResource extends AbstractResource {
+@UNCVtnService(path = "/coordinator_version")
+public class CoordinatorVersionResource extends AbstractResource {
 
        /** The Constant LOG. */
-       private static final Logger LOG = Logger.getLogger(VersionResource.class
-                       .getName());
+       private static final Logger LOG = Logger
+                       .getLogger(CoordinatorVersionResource.class.getName());
 
        /**
-        * Instantiates a new Version resource.
+        * Instantiates a new ARP entry resource.
         */
-       public VersionResource() {
+       public CoordinatorVersionResource() {
                super();
-               LOG.trace("Start VersionResource#VersionResource()");
-               setValidator(new VersionResourceValidator(this));
-               LOG.trace("Complete VersionResource#VersionResource()");
+               LOG.trace("Start CoordinatorVersionResource#CoordinatorVersionResource()");
+               setValidator(new CoordinatorVersionResourceValidator(this));
+               LOG.trace("Complete CoordinatorVersionResource#CoordinatorVersionResource()");
        }
 
        /**
-        * Implementation of Get method of Version API
+        * Implementation of Get method of Coordinator Version API
         * 
         * @param requestBody
         *            the request Json object
@@ -58,8 +60,8 @@ public class VersionResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get() throws VtnServiceException {
-               LOG.trace("StartVersionResource#get()");
+       public final int get() throws VtnServiceException {
+               LOG.trace("Start CoordinatorVersionResource#get()");
                ClientSession session = null;
                int status = ClientSession.RESP_FATAL;
                try {
@@ -71,14 +73,14 @@ public class VersionResource extends AbstractResource {
                                                        .ordinal(), getExceptionHandler());
                        LOG.info("Session created successfully");
                        status = session.invoke();
-                       LOG.info("Request packet processed with status:"+status);
+                       LOG.info("Request packet processed with status:" + status);
                        if (status != UncSYSMGEnums.NodeIpcErrorT.NOMG_E_OK.ordinal()) {
                                LOG.info("error occurred while performing operation");
                                createNoMgErrorInfo(UncIpcErrorCode.getNodeCodes(status));
                                status = UncResultCode.UNC_SERVER_ERROR.getValue();
                        } else {
                                LOG.info("Operation successfully performed");
-                               final JsonObject response = createGetResponse(session);
+                               final JsonObject response = createCoordinatorVersionResponse(session);
                                setInfo(response);
                                status = UncResultCode.UNC_SUCCESS.getValue();
                        }
@@ -114,42 +116,51 @@ public class VersionResource extends AbstractResource {
                        // destroy session by common handler
                        getConnPool().destroySession(session);
                }
-               LOG.trace("Completed VersionResource#get()");
+               LOG.trace("Completed CoordinatorVersionResource#get()");
                return status;
        }
 
        /**
-        * Creating Response for get Version API
+        * Creating Response for get Coordinator Version API
         * 
         * @param ClientSession
         *            Object
         * @return Response Json Object
         */
-       private JsonObject createGetResponse(final ClientSession session) throws IpcException {
-               LOG.trace("Starts VersionResource#createGetResponse()");
+       private JsonObject createCoordinatorVersionResponse(
+                       final ClientSession session) throws IpcException {
+               LOG.trace("Starts CoordinatorVersionResource#createCoordinatorVersionResponse()");
                final int count = session.getResponseCount();
                final JsonObject response = new JsonObject();
-               final JsonObject versionJson = new JsonObject();
-               final IpcStruct versionStruct = (IpcStruct) session
+               final JsonObject coordinatorVersionJson = new JsonObject();
+               final IpcStruct coordinatorVersionStruct = (IpcStruct) session
                                .getResponse(VtnServiceJsonConsts.VAL_0);
-               String major = IpcDataUnitWrapper.getIpcStructUint16Value(versionStruct,
-                               VtnServiceIpcConsts.MAJOR);
-               LOG.debug("major: "+ IpcDataUnitWrapper.getIpcStructUint16Value(versionStruct,
-                               VtnServiceIpcConsts.MAJOR));
-               String minor = IpcDataUnitWrapper.getIpcStructUint16Value(versionStruct,
-                               VtnServiceIpcConsts.MINOR);
-               LOG.debug("minor: "+ IpcDataUnitWrapper.getIpcStructUint16Value(versionStruct,
-                               VtnServiceIpcConsts.MINOR));
-               String revision = IpcDataUnitWrapper.getIpcStructUint16Value(versionStruct,
-                               VtnServiceIpcConsts.REVISION);
-               LOG.debug("revision: "+ IpcDataUnitWrapper.getIpcStructUint16Value(versionStruct,
-                               VtnServiceIpcConsts.REVISION));
-               String patchLevel = IpcDataUnitWrapper.getIpcStructUint16Value(versionStruct,
-                               VtnServiceIpcConsts.PATCHLEVEL);
-               LOG.debug("patchLevel: "+ IpcDataUnitWrapper.getIpcStructUint16Value(versionStruct,
-                               VtnServiceIpcConsts.PATCHLEVEL));
-               String version = VtnServiceJsonConsts.V + major + VtnServiceConsts.DOT + minor + VtnServiceConsts.DOT + revision + VtnServiceConsts.DOT + patchLevel;
-               versionJson.addProperty(VtnServiceJsonConsts.VERSIONNO, version);
+               final String major = IpcDataUnitWrapper.getIpcStructUint16Value(
+                               coordinatorVersionStruct, VtnServiceIpcConsts.MAJOR);
+               LOG.debug("major: "
+                               + IpcDataUnitWrapper.getIpcStructUint16Value(
+                                               coordinatorVersionStruct, VtnServiceIpcConsts.MAJOR));
+               final String minor = IpcDataUnitWrapper.getIpcStructUint16Value(
+                               coordinatorVersionStruct, VtnServiceIpcConsts.MINOR);
+               LOG.debug("minor: "
+                               + IpcDataUnitWrapper.getIpcStructUint16Value(
+                                               coordinatorVersionStruct, VtnServiceIpcConsts.MINOR));
+               final String revision = IpcDataUnitWrapper.getIpcStructUint16Value(
+                               coordinatorVersionStruct, VtnServiceIpcConsts.REVISION);
+               LOG.debug("revision: "
+                               + IpcDataUnitWrapper.getIpcStructUint16Value(
+                                               coordinatorVersionStruct, VtnServiceIpcConsts.REVISION));
+               final String patchLevel = IpcDataUnitWrapper.getIpcStructUint16Value(
+                               coordinatorVersionStruct, VtnServiceIpcConsts.PATCHLEVEL);
+               LOG.debug("patchLevel: "
+                               + IpcDataUnitWrapper.getIpcStructUint16Value(
+                                               coordinatorVersionStruct,
+                                               VtnServiceIpcConsts.PATCHLEVEL));
+               final String version = VtnServiceJsonConsts.V + major
+                               + VtnServiceConsts.DOT + minor + VtnServiceConsts.DOT
+                               + revision + VtnServiceConsts.DOT + patchLevel;
+               coordinatorVersionJson.addProperty(VtnServiceJsonConsts.VERSION,
+                               version);
                final JsonArray patchJsonArray = new JsonArray();
                JsonObject patchJson = null;
                for (int i = VtnServiceJsonConsts.VAL_1; i < count; i++) {
@@ -159,9 +170,11 @@ public class VersionResource extends AbstractResource {
                                                        .getResponse(i)));
                        patchJsonArray.add(patchJson);
                }
-               versionJson.add(VtnServiceJsonConsts.PATCHES, patchJsonArray);
-               response.add(VtnServiceJsonConsts.VERSION, versionJson);
-               LOG.trace("Complted VersionResource#createGetResponse()");
+               coordinatorVersionJson
+                               .add(VtnServiceJsonConsts.PATCHES, patchJsonArray);
+               response.add(VtnServiceJsonConsts.COORDINATOR_VERSION,
+                               coordinatorVersionJson);
+               LOG.trace("Completed CoordinatorVersionResource#createCoordinatorVersionResponse()");
                return response;
        }
 }
index 6edc1fcc029b3ce1b8a32738d4bc2f14521a30de..ed82cff6e9c48c3ebb4f41fc78621de4456c7c20 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -33,7 +33,8 @@ import org.opendaylight.vtn.javaapi.validation.logical.InterfaceResourceValidato
 /**
  * The Class DhcpRelayInterfaceResource implements delete and get methods.
  */
-@UNCVtnService(path = "/vtns/{vtn_name}/vrouters/{vrt_name}/dhcprelay/interfaces/{if_name}")
+@UNCVtnService(
+               path = "/vtns/{vtn_name}/vrouters/{vrt_name}/dhcprelay/interfaces/{if_name}")
 public class DhcpRelayInterfaceResource extends AbstractResource {
        /** The vtn name. */
        @UNCField("vtn_name")
@@ -44,26 +45,31 @@ public class DhcpRelayInterfaceResource extends AbstractResource {
        /** The if name. */
        @UNCField("if_name")
        private String ifName;
+
        /**
         * @return the vtn name
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
+
        /**
         * @return the vrt name
         */
-       public String getVrtName() {
+       public final String getVrtName() {
                return vrtName;
        }
+
        /**
         * @return the if name
         */
-       public String getIfName() {
+       public final String getIfName() {
                return ifName;
        }
+
        private static final Logger LOG = Logger
                        .getLogger(DhcpRelayInterfaceResource.class.getName());
+
        /**
         * Instantiates a new dhcp relay interface resource.
         */
@@ -73,6 +79,7 @@ public class DhcpRelayInterfaceResource extends AbstractResource {
                setValidator(new InterfaceResourceValidator(this));
                LOG.trace("Complete DhcpRelayInterfaceResource#DhcpRelayInterfaceResource()");
        }
+
        /**
         * Implementation of delete method of Dhcp Relay Interface
         * 
@@ -80,7 +87,7 @@ public class DhcpRelayInterfaceResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("Start DhcpRelayInterfaceResource#delete()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -128,6 +135,7 @@ public class DhcpRelayInterfaceResource extends AbstractResource {
                LOG.trace("Complete DhcpRelayInterfaceResource#delete()");
                return status;
        }
+
        /**
         * Implementation of get method of Dhcp Relay Interface
         * 
@@ -138,7 +146,8 @@ public class DhcpRelayInterfaceResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start DhcpRelayInterfaceResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -159,7 +168,7 @@ public class DhcpRelayInterfaceResource extends AbstractResource {
                        LOG.debug("Request Packet created successfully");
                        status = requestProcessor.processIpcRequest();
                        LOG.debug("Request packet processed with status" + status);
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
                        setInfo(responseGenerator.getDhcpRelayInterfaceResponse(
                                        requestProcessor.getIpcResponsePacket(), requestBody,
                                        VtnServiceJsonConsts.SHOW));
@@ -191,12 +200,13 @@ public class DhcpRelayInterfaceResource extends AbstractResource {
                LOG.trace("Completed DhcpRelayInterfaceResource#get()");
                return status;
        }
+
        /**
         * Add URI parameters to list
         * 
         * @return
         */
-       private List<String> getUriParameters() {       
+       private List<String> getUriParameters() {
                LOG.trace("Start DhcpRelayInterfaceResource#getUriParameters()");
                final List<String> uriParameters = new ArrayList<String>();
                uriParameters.add(vtnName);
index 7097bf13b5f769e1f1674d3710337e8a1a4d4d3e..a203e8e300f437456c07824346cad4af4b0f651c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -35,7 +35,8 @@ import org.opendaylight.vtn.javaapi.validation.logical.InterfaceResourceValidato
 /**
  * The Class DhcpRelayInterfacesResource implements post and get methods.
  */
-@UNCVtnService(path = "/vtns/{vtn_name}/vrouters/{vrt_name}/dhcprelay/interfaces")
+@UNCVtnService(
+               path = "/vtns/{vtn_name}/vrouters/{vrt_name}/dhcprelay/interfaces")
 public class DhcpRelayInterfacesResource extends AbstractResource {
        /** The vtn name. */
        @UNCField("vtn_name")
@@ -47,14 +48,14 @@ public class DhcpRelayInterfacesResource extends AbstractResource {
        /**
         * @return the vtn name
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
 
        /**
         * @return the vrt name
         */
-       public String getVrtName() {
+       public final String getVrtName() {
                return vrtName;
        }
 
@@ -81,7 +82,8 @@ public class DhcpRelayInterfacesResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int post(final JsonObject requestBody) throws VtnServiceException {
+       public final int post(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start DhcpRelayInterfacesResource#post()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -142,7 +144,8 @@ public class DhcpRelayInterfacesResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start DhcpRelayInterfacesResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -162,7 +165,7 @@ public class DhcpRelayInterfacesResource extends AbstractResource {
                                        uriParameterList);
                        status = requestProcessor.processIpcRequest();
                        LOG.debug("Request packet processed with status" + status);
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
                        /*
                         * setInfo(responseGenerator.getDhcpRelayInterfaceResponse(
                         * requestProcessor.getIpcResponsePacket(), requestBody,
@@ -173,7 +176,7 @@ public class DhcpRelayInterfacesResource extends AbstractResource {
                                                        requestProcessor.getIpcResponsePacket(),
                                                        requestBody, VtnServiceJsonConsts.LIST);
                        if (responseJson.get(VtnServiceJsonConsts.INTERFACES).isJsonArray()) {
-                               JsonArray responseArray = responseJson.get(
+                               final JsonArray responseArray = responseJson.get(
                                                VtnServiceJsonConsts.INTERFACES).getAsJsonArray();
                                responseJson = getResponseJsonArrayLogical(requestBody,
                                                requestProcessor, responseGenerator, responseArray,
index 0fcca080c1effd5a2d15a4b9afff18635c2efca4..b1d757f4efbe245e5d771fd9673a9fac6552ade3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -43,6 +43,7 @@ public class DhcpRelayResource extends AbstractResource {
        private String vrtName;
        private static final Logger LOG = Logger.getLogger(DhcpRelayResource.class
                        .getName());
+
        /**
         * Instantiates a new dhcp relay resource.
         */
@@ -52,18 +53,21 @@ public class DhcpRelayResource extends AbstractResource {
                setValidator(new DhcpRelayResourceValidator(this));
                LOG.trace("Complete DhcpRelayResource#DhcpRelayResource()");
        }
+
        /**
         * @return the vtnName
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
+
        /**
         * @return the vrtName
         */
-       public String getVrtName() {
+       public final String getVrtName() {
                return vrtName;
        }
+
        /**
         * Implementation of get method of DhcpRelay
         * 
@@ -74,7 +78,8 @@ public class DhcpRelayResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start DhcpRelayResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -95,7 +100,7 @@ public class DhcpRelayResource extends AbstractResource {
                        LOG.debug("Request Packet created successfully");
                        status = requestProcessor.processIpcRequest();
                        LOG.debug("Request packet processed with status" + status);
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
                        setInfo(responseGenerator.getDhcpRelayResponse(
                                        requestProcessor.getIpcResponsePacket(), requestBody,
                                        VtnServiceJsonConsts.SHOW));
@@ -112,9 +117,7 @@ public class DhcpRelayResource extends AbstractResource {
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR
                                                                        .getErrorMessage(), e);
                        throw e;
-               }
-
-               finally {
+               } finally {
                        if (status == ClientSession.RESP_FATAL) {
                                if (null != requestProcessor.getErrorJson()) {
                                        setInfo(requestProcessor.getErrorJson());
@@ -129,6 +132,7 @@ public class DhcpRelayResource extends AbstractResource {
                LOG.trace("Complete DhcpRelayResource#get()");
                return status;
        }
+
        /**
         * Implementation of put method of DhcpRelay
         * 
@@ -139,7 +143,8 @@ public class DhcpRelayResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int put(final JsonObject requestBody) throws VtnServiceException {
+       public final int put(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start DhcpRelayResource#put()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -187,12 +192,13 @@ public class DhcpRelayResource extends AbstractResource {
                LOG.trace("Completed  DhcpRelayResource#put()");
                return status;
        }
+
        /**
         * Add URI parameters to list
         * 
         * @return
         */
-       private List<String> getUriParameters() {               
+       private List<String> getUriParameters() {
                LOG.trace("Start DhcpRelayResource#getUriParameters()");
                final List<String> uriParameters = new ArrayList<String>();
                uriParameters.add(vtnName);
index 8073f3a5a144acc8edc86be84e3c9cbb2e822538..1638ecf81104e46e566f4357457d5dfc4f5902c9 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -33,7 +33,8 @@ import org.opendaylight.vtn.javaapi.validation.logical.DhcpRelayServerResourceVa
 /**
  * The Class DhcpRelayServerResource implements delete and get methods.
  */
-@UNCVtnService(path = "/vtns/{vtn_name}/vrouters/{vrt_name}/dhcprelay/servers/{ipaddr}")
+@UNCVtnService(
+               path = "/vtns/{vtn_name}/vrouters/{vrt_name}/dhcprelay/servers/{ipaddr}")
 public class DhcpRelayServerResource extends AbstractResource {
        /** The vtn name. */
        @UNCField("vtn_name")
@@ -46,6 +47,7 @@ public class DhcpRelayServerResource extends AbstractResource {
        private String ipaddr;
        private static final Logger LOG = Logger
                        .getLogger(DhcpRelayServerResource.class.getName());
+
        /**
         * Instantiates a new dhcp relay server resource.
         */
@@ -55,24 +57,28 @@ public class DhcpRelayServerResource extends AbstractResource {
                setValidator(new DhcpRelayServerResourceValidator(this));
                LOG.trace("Complete DhcpRelayServerResource#DhcpRelayServerResource()");
        }
+
        /**
         * @return the vtnName
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
+
        /**
         * @return the vrtName
         */
-       public String getVrtName() {
+       public final String getVrtName() {
                return vrtName;
        }
+
        /**
         * @return the ipAddr
         */
-       public String getIpaddr() {
+       public final String getIpaddr() {
                return ipaddr;
        }
+
        /**
         * Implementation of delete method of Dhcp Relay Server
         * 
@@ -80,7 +86,7 @@ public class DhcpRelayServerResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("Start DhcpRelayServerResource#delete()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -128,6 +134,7 @@ public class DhcpRelayServerResource extends AbstractResource {
                LOG.trace("Complete DhcpRelayServerResource#delete()");
                return status;
        }
+
        /**
         * Implementation of get method of Dhcp Relay Server
         * 
@@ -138,7 +145,8 @@ public class DhcpRelayServerResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start DhcpRelayServerResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -160,7 +168,7 @@ public class DhcpRelayServerResource extends AbstractResource {
                        status = requestProcessor.processIpcRequest();
                        LOG.debug("Request packet processed with status" + status);
                        LOG.debug("Complete Ipc framework call");
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
                        setInfo(responseGenerator.getDHCPRelayServerResponse(
                                        requestProcessor.getIpcResponsePacket(), requestBody,
                                        VtnServiceJsonConsts.SHOW));
@@ -191,12 +199,13 @@ public class DhcpRelayServerResource extends AbstractResource {
                LOG.trace("Complete DhcpRelayServerResource#get()");
                return status;
        }
+
        /**
         * Add URI parameters to list
         * 
         * @return
         */
-       private List<String> getUriParameters() {               
+       private List<String> getUriParameters() {
                LOG.trace("Start DhcpRelayServerResource#getUriParameters()");
                final List<String> uriParameters = new ArrayList<String>();
                uriParameters.add(vtnName);
index 8aa8911f76b6ed966f389927a81a4874138062b5..caea7a1c02239610a66e54869958e5e03d075b81 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -48,7 +48,7 @@ public class DhcpRelayServersResource extends AbstractResource {
         * 
         * @return the vtn name
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
 
@@ -56,7 +56,7 @@ public class DhcpRelayServersResource extends AbstractResource {
         * 
         * @return the vrt name
         */
-       public String getVrtName() {
+       public final String getVrtName() {
                return vrtName;
        }
 
@@ -83,7 +83,8 @@ public class DhcpRelayServersResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int post(final JsonObject requestBody) throws VtnServiceException {
+       public final int post(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start DhcpRelayServersResource#post()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -143,7 +144,8 @@ public class DhcpRelayServersResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start DhcpRelayServersResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -165,7 +167,7 @@ public class DhcpRelayServersResource extends AbstractResource {
                        LOG.debug("Request packet created successfully");
                        status = requestProcessor.processIpcRequest();
                        LOG.debug("Request packet processed with status" + status);
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
                        /*
                         * setInfo(responseGenerator.getDHCPRelayServerResponse(
                         * requestProcessor.getIpcResponsePacket(), requestBody,
@@ -176,7 +178,7 @@ public class DhcpRelayServersResource extends AbstractResource {
                                                        requestProcessor.getIpcResponsePacket(),
                                                        requestBody, VtnServiceJsonConsts.LIST);
                        if (responseJson.get(VtnServiceJsonConsts.SERVERS).isJsonArray()) {
-                               JsonArray responseArray = responseJson.get(
+                               final JsonArray responseArray = responseJson.get(
                                                VtnServiceJsonConsts.SERVERS).getAsJsonArray();
                                responseJson = getResponseJsonArrayLogical(requestBody,
                                                requestProcessor, responseGenerator, responseArray,
index c8727b5edc7585075323fe70fc7c626dadb0583f..d04aa1aa6239a31757cee476aa13e42c5fe207dc 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -39,7 +39,8 @@ import org.opendaylight.vtn.javaapi.validation.logical.FlowFilterEntriesResource
  */
 /* This class handles post and get methods */
 
-@UNCVtnService(path = "/vtns/{vtn_name}/flowfilters/{ff_type}/flowfilterentries")
+@UNCVtnService(
+               path = "/vtns/{vtn_name}/flowfilters/{ff_type}/flowfilterentries")
 public class FlowFilterEntriesResource extends AbstractResource {
        /** The vtn name. */
        @UNCField("vtn_name")
@@ -49,6 +50,7 @@ public class FlowFilterEntriesResource extends AbstractResource {
        private String ffType;
        private static final Logger LOG = Logger
                        .getLogger(FlowFilterEntriesResource.class.getName());
+
        /**
         * Instantiates a new flow filter entries resource.
         */
@@ -58,18 +60,21 @@ public class FlowFilterEntriesResource extends AbstractResource {
                setValidator(new FlowFilterEntriesResourceValidator(this));
                LOG.trace("Start FlowFilterEntriesResource#FlowFilterEntriesResource()");
        }
+
        /**
         * @return the vtnName
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
+
        /**
         * @return the ffType
         */
-       public String getFfType() {
+       public final String getFfType() {
                return ffType;
        }
+
        /**
         * Implementation of post method of FlowFilterEntries
         * 
@@ -80,7 +85,8 @@ public class FlowFilterEntriesResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int post(final JsonObject requestBody) throws VtnServiceException {
+       public final int post(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts FlowFilterEntriesResource#post()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -128,6 +134,7 @@ public class FlowFilterEntriesResource extends AbstractResource {
                LOG.trace("Completed FlowFilterEntriesResource#post()");
                return status;
        }
+
        /**
         * Implementation of get method of FlowFilterEntries
         * 
@@ -138,7 +145,8 @@ public class FlowFilterEntriesResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts FlowFilterEntriesResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -161,37 +169,43 @@ public class FlowFilterEntriesResource extends AbstractResource {
                        LOG.debug("Request packet created successfully");
                        status = requestProcessor.processIpcRequest();
                        LOG.debug("Request packet processed with status" + status);
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
-                       /*setInfo(responseGenerator.getVtnFlowFilterEntryResponse(
-                                       requestProcessor.getIpcResponsePacket(), requestBody,
-                                       VtnServiceJsonConsts.LIST));*/
-                       JsonObject responseJson = responseGenerator.getVtnFlowFilterEntryResponse(
-                                       requestProcessor.getIpcResponsePacket(), requestBody,
-                                       VtnServiceJsonConsts.LIST);
-                       if (responseJson.get(VtnServiceJsonConsts.FLOWFILTERENTRIES).isJsonArray()) {
-                               JsonArray responseArray = responseJson.get(
-                                               VtnServiceJsonConsts.FLOWFILTERENTRIES).getAsJsonArray();
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       /*
+                        * setInfo(responseGenerator.getVtnFlowFilterEntryResponse(
+                        * requestProcessor.getIpcResponsePacket(), requestBody,
+                        * VtnServiceJsonConsts.LIST));
+                        */
+                       JsonObject responseJson = responseGenerator
+                                       .getVtnFlowFilterEntryResponse(
+                                                       requestProcessor.getIpcResponsePacket(),
+                                                       requestBody, VtnServiceJsonConsts.LIST);
+                       if (responseJson.get(VtnServiceJsonConsts.FLOWFILTERENTRIES)
+                                       .isJsonArray()) {
+                               final JsonArray responseArray = responseJson.get(
+                                               VtnServiceJsonConsts.FLOWFILTERENTRIES)
+                                               .getAsJsonArray();
 
                                responseJson = getResponseJsonArrayLogical(requestBody,
-                                               requestProcessor, responseGenerator,
-                                               responseArray, VtnServiceJsonConsts.FLOWFILTERENTRIES,
+                                               requestProcessor, responseGenerator, responseArray,
+                                               VtnServiceJsonConsts.FLOWFILTERENTRIES,
                                                VtnServiceJsonConsts.SEQNUM,
                                                IpcRequestPacketEnum.KT_VTN_FLOWFILTER_ENTRY_GET,
-                                               uriParameterList,VtnServiceIpcConsts.GET_VTN_FLOW_FILETER_ENTRY_RESPONSE);
+                                               uriParameterList,
+                                               VtnServiceIpcConsts.GET_VTN_FLOW_FILETER_ENTRY_RESPONSE);
                        }
                        setInfo(responseJson);
                        LOG.debug("Response object created successfully");
                        LOG.debug("Complete Ipc framework call");
                } catch (final VtnServiceException e) {
                        getExceptionHandler()
-                       .raise(Thread.currentThread().getStackTrace()[1]
-                                       .getClassName()
-                                       + VtnServiceConsts.HYPHEN
-                                       + Thread.currentThread().getStackTrace()[1]
-                                                       .getMethodName(),
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR
-                                                       .getErrorMessage(), e);
+                                                                       .getErrorMessage(), e);
                        throw e;
                } finally {
                        if (status == ClientSession.RESP_FATAL) {
@@ -208,12 +222,13 @@ public class FlowFilterEntriesResource extends AbstractResource {
                LOG.trace("Completed FlowFilterEntriesResource#get()");
                return status;
        }
+
        /**
         * Add URI parameters to list
         * 
         * @return parameter list
         */
-       private List<String> getUriParameters(JsonObject requestBody) {
+       private List<String> getUriParameters(final JsonObject requestBody) {
                final List<String> uriParameters = new ArrayList<String>();
                LOG.trace("Start FlowFilterEntriesResource#getUriParameters()");
                uriParameters.add(vtnName);
index 8bab0426b4a4caa765a74724328e00a9415e2f03..bf21254cf62f7629c9a0e12c6a6ab7b6016d3fb5 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -13,6 +13,7 @@ import java.util.List;
 
 import com.google.gson.JsonObject;
 import org.opendaylight.vtn.core.ipc.ClientSession;
+import org.opendaylight.vtn.core.ipc.IpcUint32;
 import org.opendaylight.vtn.core.util.Logger;
 import org.opendaylight.vtn.javaapi.annotation.UNCField;
 import org.opendaylight.vtn.javaapi.annotation.UNCVtnService;
@@ -25,6 +26,7 @@ import org.opendaylight.vtn.javaapi.ipc.conversion.IpcLogicalResponseFactory;
 import org.opendaylight.vtn.javaapi.ipc.enums.IpcRequestPacketEnum;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum.UncResultCode;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncDataType;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncOperationEnum;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncOption1Enum;
@@ -36,7 +38,8 @@ import org.opendaylight.vtn.javaapi.validation.logical.FlowFilterEntryResourceVa
  * The Class FlowFilterEntryResource implements delete, get and put methods
  */
 
-@UNCVtnService(path = "/vtns/{vtn_name}/flowfilters/{ff_type}/flowfilterentries/{seqnum}")
+@UNCVtnService(
+               path = "/vtns/{vtn_name}/flowfilters/{ff_type}/flowfilterentries/{seqnum}")
 public class FlowFilterEntryResource extends AbstractResource {
        /** The vtn name. */
        @UNCField("vtn_name")
@@ -47,26 +50,31 @@ public class FlowFilterEntryResource extends AbstractResource {
        /** The seqnum. */
        @UNCField("seqnum")
        private String seqnum;
+
        /**
         * @return the vtnName
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
+
        /**
         * @return the ffType
         */
-       public String getFfType() {
+       public final String getFfType() {
                return ffType;
        }
+
        /**
         * @return the seqnum
         */
-       public String getSeqnum() {
+       public final String getSeqnum() {
                return seqnum;
        }
+
        private static final Logger LOG = Logger
                        .getLogger(FlowFilterEntryResource.class.getName());
+
        /**
         * Instantiates a new flow filter entry resource.
         */
@@ -76,6 +84,7 @@ public class FlowFilterEntryResource extends AbstractResource {
                setValidator(new FlowFilterEntryResourceValidator(this));
                LOG.trace("Start FlowFilterEntryResource#FlowFilterEntryResource()");
        }
+
        /**
         * Implementation of put method of FlowFilterEntry
         * 
@@ -86,7 +95,8 @@ public class FlowFilterEntryResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int put(final JsonObject requestBody) throws VtnServiceException {
+       public final int put(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts FlowFilterEntryResource#put()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -134,6 +144,7 @@ public class FlowFilterEntryResource extends AbstractResource {
                LOG.trace("Completed FlowFilterEntryResource#put()");
                return status;
        }
+
        /**
         * Implementation of delete method of FlowFilterEntry
         * 
@@ -141,7 +152,7 @@ public class FlowFilterEntryResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("Starts FlowFilterEntryResource#delete()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -189,6 +200,7 @@ public class FlowFilterEntryResource extends AbstractResource {
                LOG.trace("Complete FlowFilterEntryResource#delete()");
                return status;
        }
+
        /**
         * Implementation of get method of FlowFilterEntry
         * 
@@ -199,7 +211,8 @@ public class FlowFilterEntryResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts FlowFilterEntryResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -222,10 +235,29 @@ public class FlowFilterEntryResource extends AbstractResource {
                                requestProcessor.createIpcRequestPacket(
                                                IpcRequestPacketEnum.KT_VTN_FLOWFILTER_ENTRY_GET,
                                                requestBody, getUriParameters());
+                               requestProcessor.getRequestPacket().setDataType(
+                                               new IpcUint32(UncDataType.UNC_DT_RUNNING.ordinal()));
+                               requestBody.addProperty(VtnServiceJsonConsts.TARGETDB,
+                                               VtnServiceJsonConsts.RUNNING);
                        } else {
-                               requestProcessor.createIpcRequestPacket(
-                                               IpcRequestPacketEnum.KT_VTN_FLOWFILTER_ENTRY_GET_STATE,
-                                               requestBody, getUriParameters());
+                               if (requestBody != null
+                                               && requestBody.has(VtnServiceJsonConsts.OP)
+                                               && requestBody.get(VtnServiceJsonConsts.OP)
+                                                               .getAsString()
+                                                               .equalsIgnoreCase(VtnServiceJsonConsts.DETAIL)) {
+                                       requestProcessor
+                                                       .createIpcRequestPacket(
+                                                                       IpcRequestPacketEnum.KT_VTN_FLOWFILTER_ENTRY_GET_STATE,
+                                                                       requestBody, getUriParameters());
+                               } else {
+                                       requestProcessor.createIpcRequestPacket(
+                                                       IpcRequestPacketEnum.KT_VTN_FLOWFILTER_ENTRY_GET,
+                                                       requestBody, getUriParameters());
+                                       requestProcessor.getRequestPacket().setDataType(
+                                                       new IpcUint32(UncDataType.UNC_DT_RUNNING.ordinal()));
+                                       requestBody.addProperty(VtnServiceJsonConsts.TARGETDB,
+                                               VtnServiceJsonConsts.RUNNING);
+                               }
                        }
                        requestProcessor.getRequestPacket().setOperation(
                                        IpcDataUnitWrapper
@@ -236,16 +268,22 @@ public class FlowFilterEntryResource extends AbstractResource {
                                        || (requestBody.has(VtnServiceJsonConsts.TARGETDB) && requestBody
                                                        .get(VtnServiceJsonConsts.TARGETDB).getAsString()
                                                        .equalsIgnoreCase(VtnServiceJsonConsts.STATE))) {
-                               requestProcessor
-                                               .getRequestPacket()
-                                               .setOption1(
-                                                               IpcDataUnitWrapper
-                                                                               .setIpcUint32Value((UncOption1Enum.UNC_OPT1_DETAIL
-                                                                                               .ordinal())));
+                               if(requestBody != null
+                                               && requestBody.has(VtnServiceJsonConsts.OP)
+                                               && requestBody.get(VtnServiceJsonConsts.OP)
+                                                               .getAsString()
+                                                               .equalsIgnoreCase(VtnServiceJsonConsts.DETAIL)){
+                                       requestProcessor
+                                       .getRequestPacket()
+                                       .setOption1(
+                                                       IpcDataUnitWrapper
+                                                                       .setIpcUint32Value((UncOption1Enum.UNC_OPT1_DETAIL
+                                                                                       .ordinal())));
+                               }
                        }
-                       status= requestProcessor.processIpcRequest();
+                       status = requestProcessor.processIpcRequest();
                        LOG.debug("Request packet processed with status" + status);
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
                        setInfo(responseGenerator.getVtnFlowFilterEntryResponse(
                                        requestProcessor.getIpcResponsePacket(), requestBody,
                                        VtnServiceJsonConsts.SHOW));
@@ -278,12 +316,13 @@ public class FlowFilterEntryResource extends AbstractResource {
                LOG.trace("Complete FlowFilterEntryResource#get()");
                return status;
        }
+
        /**
         * Add URI parameters to list
         * 
         * @return parameter list
         */
-       private List<String> getUriParameters() {               
+       private List<String> getUriParameters() {
                LOG.trace("Start FlowFilterEntryResource#getUriParameters()");
                final List<String> uriParameters = new ArrayList<String>();
                uriParameters.add(vtnName);
index 8f4e219b8910b2712a4044284be0c3f46b6058f4..9ebd127ce5eb5844ccd4609ed212015a466f0cd7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -41,27 +41,32 @@ public class FlowFilterResource extends AbstractResource {
        /** The Vtn name. */
        @UNCField("vtn_name")
        private String vtnName;
+
        /**
         * Gets the vtn name.
         * 
         * @return the vtn name
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
+
        /** The FlowFilter type. */
        @UNCField("ff_type")
        private String ffType;
+
        /**
         * Gets the ff type.
         * 
         * @return the ff type
         */
-       public String getFfType() {
+       public final String getFfType() {
                return ffType;
        }
+
        private static final Logger LOG = Logger.getLogger(FlowFilterResource.class
                        .getName());
+
        /**
         * Instantiates a new flow filter resource.
         */
@@ -71,6 +76,7 @@ public class FlowFilterResource extends AbstractResource {
                setValidator(new FlowFilterResourceValidator(this));
                LOG.trace("Complete FlowFilterResource#FlowFilterResource()");
        }
+
        /**
         * Implementation of Delete method of Flow Filter API
         * 
@@ -78,7 +84,7 @@ public class FlowFilterResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("Starts FlowFilterResource#delete()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -137,7 +143,8 @@ public class FlowFilterResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts FlowFilterResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -155,7 +162,7 @@ public class FlowFilterResource extends AbstractResource {
                                        IpcRequestPacketEnum.KT_VTN_FLOWFILTER_GET, requestBody,
                                        getUriParameters());
                        LOG.debug("Request packet created successfully");
-                       status=requestProcessor.processIpcRequest();
+                       status = requestProcessor.processIpcRequest();
                        LOG.debug("Request packet processed with status" + status);
                        final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
                        setInfo(responseGenerator.getFlowFilterResponse(
@@ -189,6 +196,7 @@ public class FlowFilterResource extends AbstractResource {
                LOG.trace("Completed FlowFilterResource#get()");
                return status;
        }
+
        /**
         * Add URI parameters to list
         * 
index 87663eec5325208c0351fea50ac5c9202a0624d6..3e255c08e12c794f58b8e1a6ce0bede5d72c5d76 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -41,6 +41,7 @@ public class FlowFiltersResource extends AbstractResource {
        private String vtnName;
        private static final Logger LOG = Logger
                        .getLogger(FlowFiltersResource.class.getName());
+
        /**
         * Instantiates a new flow filters resource.
         */
@@ -50,14 +51,16 @@ public class FlowFiltersResource extends AbstractResource {
                setValidator(new FlowFilterResourceValidator(this));
                LOG.trace("Completed FlowFiltersResource#FlowFiltersResource()");
        }
+
        /**
         * Gets the vtn name.
         * 
         * @return the vtn name
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
+
        /**
         * Implementation of Post method of Flow Fliter API
         * 
@@ -68,7 +71,8 @@ public class FlowFiltersResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int post(final JsonObject requestBody) throws VtnServiceException {
+       public final int post(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts FlowFiltersResource#post()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -124,6 +128,7 @@ public class FlowFiltersResource extends AbstractResource {
                LOG.trace("Completed FlowFiltersResource#post()");
                return status;
        }
+
        /**
         * Add URI parameters to list
         * 
index fa1bd435b080caae2370e6a574ab191d207f6b3f..cd50112c93a06452bd43cb83ec236b14d6213931 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -40,15 +40,18 @@ public class FlowListEntriesResource extends AbstractResource {
        /** the FlowList Name. */
        @UNCField("fl_name")
        private String flName;
+
        /**
         * @return the fl name
         */
-       public String getFlName() {
+       public final String getFlName() {
                return flName;
        }
+
        /** The Constant LOG. */
        private static final Logger LOG = Logger
                        .getLogger(FlowListEntriesResource.class.getName());
+
        /**
         * Instantiates a new flow list entrys resource.
         */
@@ -58,6 +61,7 @@ public class FlowListEntriesResource extends AbstractResource {
                setValidator(new FlowListEntryResourceValidator(this));
                LOG.trace("Start FlowListEntriesResource#FlowListEntriesResource()");
        }
+
        /**
         * Implementation of post method of FlowListEntries
         * 
@@ -68,7 +72,8 @@ public class FlowListEntriesResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int post(final JsonObject requestBody) throws VtnServiceException {
+       public final int post(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts FlowListEntriesResource#post()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -92,14 +97,14 @@ public class FlowListEntriesResource extends AbstractResource {
                        LOG.debug("Complete Ipc framework call");
                } catch (final VtnServiceException e) {
                        getExceptionHandler()
-                       .raise(Thread.currentThread().getStackTrace()[1]
-                                       .getClassName()
-                                       + VtnServiceConsts.HYPHEN
-                                       + Thread.currentThread().getStackTrace()[1]
-                                                       .getMethodName(),
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR
-                                                       .getErrorMessage(), e);
+                                                                       .getErrorMessage(), e);
                        throw e;
                } finally {
                        if (status == ClientSession.RESP_FATAL) {
@@ -117,6 +122,7 @@ public class FlowListEntriesResource extends AbstractResource {
                LOG.trace("Completed FlowListEntriesResource#post()");
                return status;
        }
+
        /**
         * Implementation of get method of FlowListEntries
         * 
@@ -127,7 +133,8 @@ public class FlowListEntriesResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts FlowListEntriesResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -150,37 +157,42 @@ public class FlowListEntriesResource extends AbstractResource {
                        LOG.debug("Request packet created successfully");
                        status = requestProcessor.processIpcRequest();
                        LOG.debug("Request packet processed with status" + status);
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
-                       /*      setInfo(responseGenerator.getFlowListEntryResponse(
-                                       requestProcessor.getIpcResponsePacket(), requestBody,
-                                       VtnServiceJsonConsts.LIST));*/
-                       JsonObject responseJson = responseGenerator.getFlowListEntryResponse(
-                                       requestProcessor.getIpcResponsePacket(), requestBody,
-                                       VtnServiceJsonConsts.LIST);
-                       if (responseJson.get(VtnServiceJsonConsts.FLOWLISTENTRIES).isJsonArray()) {
-                               JsonArray responseArray = responseJson.get(
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       /*
+                        * setInfo(responseGenerator.getFlowListEntryResponse(
+                        * requestProcessor.getIpcResponsePacket(), requestBody,
+                        * VtnServiceJsonConsts.LIST));
+                        */
+                       JsonObject responseJson = responseGenerator
+                                       .getFlowListEntryResponse(
+                                                       requestProcessor.getIpcResponsePacket(),
+                                                       requestBody, VtnServiceJsonConsts.LIST);
+                       if (responseJson.get(VtnServiceJsonConsts.FLOWLISTENTRIES)
+                                       .isJsonArray()) {
+                               final JsonArray responseArray = responseJson.get(
                                                VtnServiceJsonConsts.FLOWLISTENTRIES).getAsJsonArray();
 
                                responseJson = getResponseJsonArrayLogical(requestBody,
-                                               requestProcessor, responseGenerator,
-                                               responseArray, VtnServiceJsonConsts.FLOWLISTENTRIES,
+                                               requestProcessor, responseGenerator, responseArray,
+                                               VtnServiceJsonConsts.FLOWLISTENTRIES,
                                                VtnServiceJsonConsts.SEQNUM,
                                                IpcRequestPacketEnum.KT_FLOWLIST_ENTRY_GET,
-                                               uriParameterList,VtnServiceIpcConsts.GET_FLOW_LIST_ENTRY_RESPONSE);
+                                               uriParameterList,
+                                               VtnServiceIpcConsts.GET_FLOW_LIST_ENTRY_RESPONSE);
                        }
                        setInfo(responseJson);
                        LOG.debug("Response object created successfully");
                        LOG.debug("Complete Ipc framework call");
                } catch (final VtnServiceException e) {
                        getExceptionHandler()
-                       .raise(Thread.currentThread().getStackTrace()[1]
-                                       .getClassName()
-                                       + VtnServiceConsts.HYPHEN
-                                       + Thread.currentThread().getStackTrace()[1]
-                                                       .getMethodName(),
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR
-                                                       .getErrorMessage(), e);
+                                                                       .getErrorMessage(), e);
                        throw e;
                } finally {
                        if (status == ClientSession.RESP_FATAL) {
@@ -199,18 +211,20 @@ public class FlowListEntriesResource extends AbstractResource {
                LOG.trace("Completed FlowListEntriesResource#get()");
                return status;
        }
+
        /**
         * Add URI parameters to list
         * 
         * @return
         */
-       private List<String> getUriParameters(JsonObject requestBody) {
+       private List<String> getUriParameters(final JsonObject requestBody) {
                LOG.trace("Start FlowListEntriesResource#getUriParameters()");
                final List<String> uriParameters = new ArrayList<String>();
                uriParameters.add(flName);
                if (requestBody != null && requestBody.has(VtnServiceJsonConsts.INDEX)) {
 
-                       uriParameters.add(requestBody.get(VtnServiceJsonConsts.INDEX).getAsString());
+                       uriParameters.add(requestBody.get(VtnServiceJsonConsts.INDEX)
+                                       .getAsString());
                }
                LOG.trace("Completed FlowListEntriesResource#getUriParameters()");
                return uriParameters;
index d1d5af78a9ad3579ef9e1e96e179ba751e268914..4ee8efa8ba805b1d0f95b420a3d83f0cea5d284e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -38,24 +38,29 @@ public class FlowListEntryResource extends AbstractResource {
        /** The FlowList name. */
        @UNCField("fl_name")
        private String flName;
+
        /**
         * @return the fl name
         */
-       public String getFlName() {
+       public final String getFlName() {
                return flName;
        }
+
        /** The seqnum. */
        @UNCField("seqnum")
        private String seqnum;
+
        /**
         * 
         * @return the seqnum
         */
-       public String getSeqnum() {
+       public final String getSeqnum() {
                return seqnum;
        }
+
        private static final Logger LOG = Logger
                        .getLogger(FlowListEntryResource.class.getName());
+
        /**
         * Instantiates a new flow list entry resource.
         */
@@ -65,6 +70,7 @@ public class FlowListEntryResource extends AbstractResource {
                setValidator(new FlowListEntryResourceValidator(this));
                LOG.trace("Complete FlowListEntryResource#FlowListEntryResource()");
        }
+
        /**
         * Implementation of delete method of FlowListEntry
         * 
@@ -72,7 +78,7 @@ public class FlowListEntryResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("Starts FlowListEntryResource#delete()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -94,7 +100,7 @@ public class FlowListEntryResource extends AbstractResource {
                        status = requestProcessor.processIpcRequest();
                        LOG.debug("Request packet processed with status" + status);
                        LOG.debug("Complete Ipc framework call");
-                       
+
                } catch (final VtnServiceException e) {
                        getExceptionHandler()
                                        .raise(Thread.currentThread().getStackTrace()[1]
@@ -121,6 +127,7 @@ public class FlowListEntryResource extends AbstractResource {
                LOG.trace("Completed FlowListEntryResource#delete()");
                return status;
        }
+
        /**
         * Implementation of get method of FlowListEntry
         * 
@@ -131,7 +138,8 @@ public class FlowListEntryResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts FlowListEntryResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -152,7 +160,7 @@ public class FlowListEntryResource extends AbstractResource {
                        LOG.debug("Request Packet created successfully");
                        status = requestProcessor.processIpcRequest();
                        LOG.debug("Request packet processed with status" + status);
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
                        setInfo(responseGenerator.getFlowListEntryResponse(
                                        requestProcessor.getIpcResponsePacket(), requestBody,
                                        VtnServiceJsonConsts.SHOW));
@@ -184,6 +192,7 @@ public class FlowListEntryResource extends AbstractResource {
                LOG.trace("Completed FlowListEntryResource#get()");
                return status;
        }
+
        /**
         * Implementation of put method of FlowListEntry
         * 
@@ -194,7 +203,8 @@ public class FlowListEntryResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int put(final JsonObject requestBody) throws VtnServiceException {
+       public final int put(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts FlowListEntryResource#put()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -242,6 +252,7 @@ public class FlowListEntryResource extends AbstractResource {
                LOG.trace("Completed FlowListEntryResource#put()");
                return status;
        }
+
        /**
         * Add URI parameters to list
         * 
index 00e00423c36d7729313d24c2962b2f0e57f41efb..ad0b569e8b767ca1091f5774f06ad305fc90d909 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -37,16 +37,19 @@ public class FlowListResource extends AbstractResource {
        /** The FlowList Name. */
        @UNCField("fl_name")
        private String flName;
+
        /**
         * Gets the fl name.
         * 
         * @return the fl name
         */
-       public String getFlName() {
+       public final String getFlName() {
                return flName;
        }
+
        private static final Logger LOG = Logger.getLogger(FlowListResource.class
                        .getName());
+
        /**
         * Instantiates a new flow list resource.
         */
@@ -56,6 +59,7 @@ public class FlowListResource extends AbstractResource {
                setValidator(new FlowListResourceValidator(this));
                LOG.trace("Completed FlowListResource#FlowListResource()");
        }
+
        /**
         * Implementation of delete method of FlowList
         * 
@@ -63,7 +67,7 @@ public class FlowListResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("Starts FlowListRsesource#delete()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -111,6 +115,7 @@ public class FlowListResource extends AbstractResource {
                LOG.trace("Completed FlowListRsesource#delete()");
                return status;
        }
+
        /**
         * Implementation of get method of Flow List
         * 
@@ -121,7 +126,8 @@ public class FlowListResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts FlowListRsesource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -142,7 +148,7 @@ public class FlowListResource extends AbstractResource {
                        LOG.debug("Request packet created successfully");
                        status = requestProcessor.processIpcRequest();
                        LOG.debug("Request packet processed with status" + status);
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
                        setInfo(responseGenerator.getFlowListResponse(
                                        requestProcessor.getIpcResponsePacket(), requestBody,
                                        VtnServiceJsonConsts.SHOW));
@@ -174,6 +180,7 @@ public class FlowListResource extends AbstractResource {
                LOG.trace("Completed FlowListRsesource#get()");
                return status;
        }
+
        /**
         * Add URI parameters to list
         * 
index 256b1d9ea1ad66458491a071c23d92b9dc59ae1f..c3bafe97cce24898b7aaff56481cd40134a929aa 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -38,6 +38,7 @@ public class FlowListsResource extends AbstractResource {
 
        private static final Logger LOG = Logger.getLogger(FlowListsResource.class
                        .getName());
+
        /**
         * Instantiates a new flow lists resource.
         */
@@ -47,6 +48,7 @@ public class FlowListsResource extends AbstractResource {
                setValidator(new FlowListResourceValidator(this));
                LOG.trace("Completed FlowListsResource#FlowListsResource()");
        }
+
        /**
         * Implementation of post method of Flow Lists
         * 
@@ -57,7 +59,8 @@ public class FlowListsResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int post(final JsonObject requestBody) throws VtnServiceException {
+       public final int post(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts FlowListsRsesource#post()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -82,14 +85,14 @@ public class FlowListsResource extends AbstractResource {
 
                } catch (final VtnServiceException e) {
                        getExceptionHandler()
-                       .raise(Thread.currentThread().getStackTrace()[1]
-                                       .getClassName()
-                                       + VtnServiceConsts.HYPHEN
-                                       + Thread.currentThread().getStackTrace()[1]
-                                                       .getMethodName(),
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR
-                                                       .getErrorMessage(), e);
+                                                                       .getErrorMessage(), e);
                        throw e;
                } finally {
                        if (status == ClientSession.RESP_FATAL) {
@@ -106,6 +109,7 @@ public class FlowListsResource extends AbstractResource {
                LOG.trace("Completed FlowListsRsesource#post()");
                return status;
        }
+
        /**
         * Implementation of get method of Flow Lists
         * 
@@ -116,7 +120,8 @@ public class FlowListsResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts FlowListsRsesource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -139,7 +144,7 @@ public class FlowListsResource extends AbstractResource {
                        LOG.debug("Request packet created successfully");
                        status = requestProcessor.processIpcRequest();
                        LOG.debug("Request packet processed with status" + status);
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
                        /*
                         * setInfo(responseGenerator.getFlowListResponse(
                         * requestProcessor.getIpcResponsePacket(), requestBody,
@@ -149,16 +154,15 @@ public class FlowListsResource extends AbstractResource {
                                        requestProcessor.getIpcResponsePacket(), requestBody,
                                        VtnServiceJsonConsts.LIST);
                        if (responseJson.get(VtnServiceJsonConsts.FLOWLISTS).isJsonArray()) {
-                               JsonArray responseArray = responseJson.get(
+                               final JsonArray responseArray = responseJson.get(
                                                VtnServiceJsonConsts.FLOWLISTS).getAsJsonArray();
 
-
                                responseJson = getResponseJsonArrayLogical(requestBody,
-                                               requestProcessor, responseGenerator,
-                                               responseArray, VtnServiceJsonConsts.FLOWLISTS,
+                                               requestProcessor, responseGenerator, responseArray,
+                                               VtnServiceJsonConsts.FLOWLISTS,
                                                VtnServiceJsonConsts.FLNAME,
-                                               IpcRequestPacketEnum.KT_FLOWLIST_GET,
-                                               uriParameterList,VtnServiceIpcConsts.GET_FLOW_LIST_RESPONSE);
+                                               IpcRequestPacketEnum.KT_FLOWLIST_GET, uriParameterList,
+                                               VtnServiceIpcConsts.GET_FLOW_LIST_RESPONSE);
 
                        }
                        setInfo(responseJson);
@@ -167,14 +171,14 @@ public class FlowListsResource extends AbstractResource {
                        LOG.debug("Complete Ipc framework call");
                } catch (final VtnServiceException e) {
                        getExceptionHandler()
-                       .raise(Thread.currentThread().getStackTrace()[1]
-                                       .getClassName()
-                                       + VtnServiceConsts.HYPHEN
-                                       + Thread.currentThread().getStackTrace()[1]
-                                                       .getMethodName(),
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR
-                                                       .getErrorMessage(), e);
+                                                                       .getErrorMessage(), e);
                        throw e;
                } finally {
                        if (status == ClientSession.RESP_FATAL) {
@@ -191,12 +195,13 @@ public class FlowListsResource extends AbstractResource {
                LOG.trace("Complete FlowListsRsesource#get()");
                return status;
        }
+
        /**
         * Add URI parameters to list
         * 
         * @return
         */
-       private List<String> getUriParameters(JsonObject requestBody) {
+       private List<String> getUriParameters(final JsonObject requestBody) {
                LOG.trace("Start FlowListsRsesource#getUriParameters()");
                final List<String> uriParameters = new ArrayList<String>();
                if (requestBody != null && requestBody.has(VtnServiceJsonConsts.INDEX)) {
index 40d8ac52d36bc29bb856bb372b8ca753db0c0dcb..9a67f4b1b7172b27f217041fb7270cd5009e6a2f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -47,22 +47,25 @@ public class HostAddressResource extends AbstractResource {
        private String vbrName;
        private static final Logger LOG = Logger
                        .getLogger(HostAddressResource.class.getName());
+
        /**
         * Gets the vtn name.
         * 
         * @return the vtn name
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
+
        /**
         * Gets the vbr name.
         * 
         * @return the vbr name
         */
-       public String getVbrName() {
+       public final String getVbrName() {
                return vbrName;
        }
+
        /**
         * Instantiates a new host address resource.
         */
@@ -72,6 +75,7 @@ public class HostAddressResource extends AbstractResource {
                setValidator(new HostAddressResourceValidator(this));
                LOG.trace("Complete HostAddressResource#HostAddressResource()");
        }
+
        /**
         * Implementation of Delete method of Host Address API
         * 
@@ -79,7 +83,7 @@ public class HostAddressResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("Start HostAddressResource#delete()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -128,6 +132,7 @@ public class HostAddressResource extends AbstractResource {
                LOG.trace("Complete HostAddressResource#delete()");
                return status;
        }
+
        /**
         * Implementation of Put method of Host Address API
         * 
@@ -138,7 +143,8 @@ public class HostAddressResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int put(final JsonObject requestBody) throws VtnServiceException {
+       public final int put(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start HostAddressResource#put()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -186,6 +192,7 @@ public class HostAddressResource extends AbstractResource {
                LOG.trace("Complete HostAddressResource#put()");
                return status;
        }
+
        /**
         * Implementation of get method of Host Address API
         * 
@@ -196,7 +203,8 @@ public class HostAddressResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject queryString) throws VtnServiceException {
+       public final int get(final JsonObject queryString)
+                       throws VtnServiceException {
                LOG.trace("Start HostAddressResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -250,6 +258,7 @@ public class HostAddressResource extends AbstractResource {
                LOG.trace("Complete HostAddressResource#get()");
                return status;
        }
+
        /**
         * Add URI parameters to list
         * 
index 4190d9dbb81d994ae62af4d5c7bcf66572212738..7279c4b7d02771f431d5aaba62875778f2eab2ed 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -51,7 +51,7 @@ public class IpRouteResource extends AbstractResource {
         * 
         * @return the vtn name
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
 
@@ -60,7 +60,7 @@ public class IpRouteResource extends AbstractResource {
         * 
         * @return the vrt name
         */
-       public String getVrtName() {
+       public final String getVrtName() {
                return vrtName;
        }
 
@@ -85,7 +85,8 @@ public class IpRouteResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start IpRouteResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -155,6 +156,6 @@ public class IpRouteResource extends AbstractResource {
                uriParameters.add(vtnName);
                uriParameters.add(vrtName);
                LOG.trace("Completed IpRouteResource#getUriParameters()");
-           return uriParameters;
+               return uriParameters;
        }
 }
index efe2019b587fa0e4b2dbd61f167f6c9115d02652..59c547ce13feab4cfcf2af1eabd3b1fc81c7c061 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -65,14 +65,14 @@ public class L2DomainResource extends AbstractResource {
        /**
         * @return the vtnName
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
 
        /**
         * @return the vbrName
         */
-       public String getVbrName() {
+       public final String getVbrName() {
                return vbrName;
        }
 
@@ -86,7 +86,8 @@ public class L2DomainResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start L2DomainResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
index a0387a35edc0b1a9de48e3ff454775977cdd94a5..216ceba88fd8e1f877ef4413839e7c35cce8d327 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -58,7 +58,7 @@ public class MacEntryResource extends AbstractResource {
         * 
         * @return the vtn name
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
 
@@ -67,7 +67,7 @@ public class MacEntryResource extends AbstractResource {
         * 
         * @return the vbr name
         */
-       public String getVbrName() {
+       public final String getVbrName() {
                return vbrName;
        }
 
@@ -91,7 +91,8 @@ public class MacEntryResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start MacEntryResourc#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
index 24b4dd368c865c28f1da687189f56bd12aebf3ec..ed8b61a78890c57d9de2bd0be8d7b3537e8878d4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -34,7 +34,8 @@ import org.opendaylight.vtn.javaapi.validation.logical.StaticIpRouteResourceVali
  * The Class StaticIpRouteResource implements delete, get and put methods.
  */
 /* This class handles delete, get and put methods */
-@UNCVtnService(path = "/vtns/{vtn_name}/vrouters/{vrt_name}/static_iproutes/{static_iproute_id}")
+@UNCVtnService(
+               path = "/vtns/{vtn_name}/vrouters/{vrt_name}/static_iproutes/{static_iproute_id}")
 public class StaticIpRouteResource extends AbstractResource {
 
        /** The vtn name. */
@@ -53,7 +54,7 @@ public class StaticIpRouteResource extends AbstractResource {
         * 
         * @return the vtn name
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
 
@@ -61,7 +62,7 @@ public class StaticIpRouteResource extends AbstractResource {
         * 
         * @return the vrt name
         */
-       public String getVrtName() {
+       public final String getVrtName() {
                return vrtName;
        }
 
@@ -69,7 +70,7 @@ public class StaticIpRouteResource extends AbstractResource {
         * 
         * @return the static ip route id
         */
-       public String getStaticIpRouteId() {
+       public final String getStaticIpRouteId() {
                return staticIpRouteId;
        }
 
@@ -93,7 +94,7 @@ public class StaticIpRouteResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("Start StaticIpRouteResource#delete()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -152,7 +153,8 @@ public class StaticIpRouteResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start StaticIpRouteResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -173,7 +175,7 @@ public class StaticIpRouteResource extends AbstractResource {
                        LOG.debug("Request Packet created successfully");
                        status = requestProcessor.processIpcRequest();
                        LOG.debug("Request packet processed with status" + status);
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
                        setInfo(responseGenerator.getStaticIpRouteResponse(
                                        requestProcessor.getIpcResponsePacket(), requestBody,
                                        VtnServiceJsonConsts.SHOW));
@@ -206,65 +208,65 @@ public class StaticIpRouteResource extends AbstractResource {
                return status;
        }
 
-//     /**
-//      * Implementation of put method of Static Ip Routes
-//      * 
-//      * @param requestBody
-//      *            the request Json object
-//      * 
-//      * @return Error code
-//      * @throws VtnServiceException
-//      */
-//     @Override
-//     public int put(final JsonObject requestBody) throws VtnServiceException {
-//             LOG.trace("Start StaticIpRouteResource#put()");
-//             ClientSession session = null;
-//             IpcRequestProcessor requestProcessor = null;
-//             int status = ClientSession.RESP_FATAL;
-//             try {
-//                     LOG.debug("Start Ipc framework call");
-//                     session = getConnPool().getSession(
-//                                     UncUPLLEnums.UPLL_IPC_CHANNEL_NAME,
-//                                     UncUPLLEnums.UPLL_IPC_SERVICE_NAME,
-//                                     UncUPLLEnums.ServiceID.UPLL_EDIT_SVC_ID.ordinal(),
-//                                     getExceptionHandler());
-//                     LOG.debug("Session created successfully");
-//                     requestProcessor = new IpcRequestProcessor(session, getSessionID(),
-//                                     getConfigID(), getExceptionHandler());
-//                     requestProcessor.createIpcRequestPacket(
-//                                     IpcRequestPacketEnum.KT_VRT_IPROUTE_UPDATE, requestBody,
-//                                     getUriParameters());
-//                     LOG.debug("Request Packet created successfully");
-//                     status = requestProcessor.processIpcRequest();
-//                     LOG.debug("Request packet processed with status" + status);
-//                     LOG.debug("Complete Ipc framework call");
-//             } catch (final VtnServiceException e) {
-//                     getExceptionHandler()
-//                                     .raise(Thread.currentThread().getStackTrace()[1]
-//                                                     .getClassName()
-//                                                     + VtnServiceConsts.HYPHEN
-//                                                     + Thread.currentThread().getStackTrace()[1]
-//                                                                     .getMethodName(),
-//                                                     UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
-//                                                     UncJavaAPIErrorCode.IPC_SERVER_ERROR
-//                                                                     .getErrorMessage(), e);
-//                     throw e;
-//             } finally {
-//                     if (status == ClientSession.RESP_FATAL) {
-//                             if (null != requestProcessor.getErrorJson()) {
-//                                     setInfo(requestProcessor.getErrorJson());
-//                             } else {
-//                                     createErrorInfo(UncCommonEnum.UncResultCode.UNC_SERVER_ERROR
-//                                                     .getValue());
-//                             }
-//                             status = UncResultCode.UNC_SERVER_ERROR.getValue();
-//                     }
-//                     getConnPool().destroySession(session);
-//             }
-//
-//             LOG.trace("Complete StaticIpRouteResource#put()");
-//             return status;
-//     }
+       // /**
+       // * Implementation of put method of Static Ip Routes
+       // *
+       // * @param requestBody
+       // * the request Json object
+       // *
+       // * @return Error code
+       // * @throws VtnServiceException
+       // */
+       // @Override
+       // public int put(final JsonObject requestBody) throws VtnServiceException {
+       // LOG.trace("Start StaticIpRouteResource#put()");
+       // ClientSession session = null;
+       // IpcRequestProcessor requestProcessor = null;
+       // int status = ClientSession.RESP_FATAL;
+       // try {
+       // LOG.debug("Start Ipc framework call");
+       // session = getConnPool().getSession(
+       // UncUPLLEnums.UPLL_IPC_CHANNEL_NAME,
+       // UncUPLLEnums.UPLL_IPC_SERVICE_NAME,
+       // UncUPLLEnums.ServiceID.UPLL_EDIT_SVC_ID.ordinal(),
+       // getExceptionHandler());
+       // LOG.debug("Session created successfully");
+       // requestProcessor = new IpcRequestProcessor(session, getSessionID(),
+       // getConfigID(), getExceptionHandler());
+       // requestProcessor.createIpcRequestPacket(
+       // IpcRequestPacketEnum.KT_VRT_IPROUTE_UPDATE, requestBody,
+       // getUriParameters());
+       // LOG.debug("Request Packet created successfully");
+       // status = requestProcessor.processIpcRequest();
+       // LOG.debug("Request packet processed with status" + status);
+       // LOG.debug("Complete Ipc framework call");
+       // } catch (final VtnServiceException e) {
+       // getExceptionHandler()
+       // .raise(Thread.currentThread().getStackTrace()[1]
+       // .getClassName()
+       // + VtnServiceConsts.HYPHEN
+       // + Thread.currentThread().getStackTrace()[1]
+       // .getMethodName(),
+       // UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
+       // UncJavaAPIErrorCode.IPC_SERVER_ERROR
+       // .getErrorMessage(), e);
+       // throw e;
+       // } finally {
+       // if (status == ClientSession.RESP_FATAL) {
+       // if (null != requestProcessor.getErrorJson()) {
+       // setInfo(requestProcessor.getErrorJson());
+       // } else {
+       // createErrorInfo(UncCommonEnum.UncResultCode.UNC_SERVER_ERROR
+       // .getValue());
+       // }
+       // status = UncResultCode.UNC_SERVER_ERROR.getValue();
+       // }
+       // getConnPool().destroySession(session);
+       // }
+       //
+       // LOG.trace("Complete StaticIpRouteResource#put()");
+       // return status;
+       // }
 
        /**
         * Add URI parameters to list
index 1292a1085c9cbde989d7698a6756f2fc0970bf7d..4a1cd420a7b84a659a06cbe240a67e5ea7ab9cfc 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -50,14 +50,14 @@ public class StaticIpRoutesResource extends AbstractResource {
         * 
         * @return the vtn name
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
 
        /**
         * @return the vrt name
         */
-       public String getVrtName() {
+       public final String getVrtName() {
                return vrtName;
        }
 
@@ -84,7 +84,8 @@ public class StaticIpRoutesResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int post(final JsonObject requestBody) throws VtnServiceException {
+       public final int post(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start StaticIpRoutesResource#post()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -99,15 +100,15 @@ public class StaticIpRoutesResource extends AbstractResource {
                        LOG.debug("Session created successfully");
                        requestProcessor = new IpcRequestProcessor(session, getSessionID(),
                                        getConfigID(), getExceptionHandler());
-                       /*if (requestBody != null
-                                       && requestBody.has(VtnServiceJsonConsts.STATIC_IPROUTE)
-                                       && !((JsonObject) requestBody
-                                                       .get(VtnServiceJsonConsts.STATIC_IPROUTE))
-                                                       .has(VtnServiceJsonConsts.NMG_NAME)) {
-                               ((JsonObject) requestBody
-                                               .get(VtnServiceJsonConsts.STATIC_IPROUTE)).addProperty(
-                                               VtnServiceJsonConsts.NMG_NAME, "");
-                       }*/
+                       /*
+                        * if (requestBody != null &&
+                        * requestBody.has(VtnServiceJsonConsts.STATIC_IPROUTE) &&
+                        * !((JsonObject) requestBody
+                        * .get(VtnServiceJsonConsts.STATIC_IPROUTE))
+                        * .has(VtnServiceJsonConsts.NMG_NAME)) { ((JsonObject) requestBody
+                        * .get(VtnServiceJsonConsts.STATIC_IPROUTE)).addProperty(
+                        * VtnServiceJsonConsts.NMG_NAME, ""); }
+                        */
                        final List<String> uriParameterList = getUriParameters(requestBody);
                        requestProcessor.createIpcRequestPacket(
                                        IpcRequestPacketEnum.KT_VRT_IPROUTE_CREATE, requestBody,
@@ -119,7 +120,7 @@ public class StaticIpRoutesResource extends AbstractResource {
                        String ipAddr = null;
                        String nextHopAddr = null;
                        String prefix = null;
-                       //String nmgName = null;
+                       // String nmgName = null;
                        String staticIpRouteId = null;
                        if (requestBody != null
                                        && requestBody.has(VtnServiceJsonConsts.STATIC_IPROUTE)
@@ -141,14 +142,16 @@ public class StaticIpRoutesResource extends AbstractResource {
                                prefix = ((JsonObject) requestBody
                                                .get(VtnServiceJsonConsts.STATIC_IPROUTE)).get(
                                                VtnServiceJsonConsts.PREFIX).getAsString();
-                       /*      nmgName = ((JsonObject) requestBody
-                                               .get(VtnServiceJsonConsts.STATIC_IPROUTE)).get(
-                                               VtnServiceJsonConsts.NMG_NAME).getAsString();*/
+                               /*
+                                * nmgName = ((JsonObject) requestBody
+                                * .get(VtnServiceJsonConsts.STATIC_IPROUTE)).get(
+                                * VtnServiceJsonConsts.NMG_NAME).getAsString();
+                                */
                                staticIpRouteId = ipAddr + VtnServiceJsonConsts.HYPHEN
                                                + nextHopAddr + VtnServiceJsonConsts.HYPHEN + prefix;
                        }
-                       JsonObject root = new JsonObject();
-                       JsonObject staticIpRoute = new JsonObject();
+                       final JsonObject root = new JsonObject();
+                       final JsonObject staticIpRoute = new JsonObject();
                        staticIpRoute.addProperty(VtnServiceJsonConsts.STATICIPROUTEID,
                                        staticIpRouteId);
                        root.add(VtnServiceJsonConsts.STATIC_IPROUTE, staticIpRoute);
@@ -192,7 +195,8 @@ public class StaticIpRoutesResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
 
                LOG.trace("Start StaticIpRoutesResource#get()");
                ClientSession session = null;
@@ -215,7 +219,7 @@ public class StaticIpRoutesResource extends AbstractResource {
                        LOG.debug("Request Packet created successfully");
                        status = requestProcessor.processIpcRequest();
                        LOG.debug("Request packet processed with status" + status);
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
                        /*
                         * setInfo(responseGenerator.getStaticIpRouteResponse(
                         * requestProcessor.getIpcResponsePacket(), requestBody,
@@ -227,7 +231,7 @@ public class StaticIpRoutesResource extends AbstractResource {
                                                        requestBody, VtnServiceJsonConsts.LIST);
                        if (responseJson.get(VtnServiceJsonConsts.STATIC_IPROUTES)
                                        .isJsonArray()) {
-                               JsonArray responseArray = responseJson.get(
+                               final JsonArray responseArray = responseJson.get(
                                                VtnServiceJsonConsts.STATIC_IPROUTES).getAsJsonArray();
                                responseJson = getResponseJsonArrayLogical(requestBody,
                                                requestProcessor, responseGenerator, responseArray,
index 0aeac4b2c51991c438c75939e624dbd60f49ab76..4c98236d524fa57b4e1918d0b4861abf037ffbdc 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -37,7 +37,8 @@ import org.opendaylight.vtn.javaapi.validation.logical.VBridgeFlowFilterEntriesR
  * 
  */
 
-@UNCVtnService(path = "/vtns/{vtn_name}/vbridges/{vbr_name}/flowfilters/{ff_type}/flowfilterentries")
+@UNCVtnService(
+               path = "/vtns/{vtn_name}/vbridges/{vbr_name}/flowfilters/{ff_type}/flowfilterentries")
 public class VBridgeFlowFilterEntriesResource extends AbstractResource {
        /** The vtn name. */
        @UNCField("vtn_name")
@@ -66,21 +67,21 @@ public class VBridgeFlowFilterEntriesResource extends AbstractResource {
        /**
         * @return the vtnName
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
 
        /**
         * @return the vbrName
         */
-       public String getVbrName() {
+       public final String getVbrName() {
                return vbrName;
        }
 
        /**
         * @return the ffType
         */
-       public String getFfType() {
+       public final String getFfType() {
                return ffType;
        }
 
@@ -94,7 +95,8 @@ public class VBridgeFlowFilterEntriesResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int post(final JsonObject requestBody) throws VtnServiceException {
+       public final int post(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VBridgeFlowFilterEntriesResource#post()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -154,7 +156,8 @@ public class VBridgeFlowFilterEntriesResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VBridgeFlowFilterEntriesResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -182,20 +185,27 @@ public class VBridgeFlowFilterEntriesResource extends AbstractResource {
                         * requestProcessor.getIpcResponsePacket(), requestBody,
                         * VtnServiceJsonConsts.LIST));
                         */
-            JsonObject responseJson = responseGenerator.getVBridgeFlowFilterEntryResponse(
-                    requestProcessor.getIpcResponsePacket(), requestBody,
-                    VtnServiceJsonConsts.LIST);
-            if (responseJson.get(VtnServiceJsonConsts.FLOWFILTERENTRIES).isJsonArray()) {
-              JsonArray responseArray = responseJson.get(
-                          VtnServiceJsonConsts.FLOWFILTERENTRIES).getAsJsonArray();
-              responseJson = getResponseJsonArrayLogical(requestBody,
-                          requestProcessor, responseGenerator,
-                          responseArray, VtnServiceJsonConsts.FLOWFILTERENTRIES,
-                          VtnServiceJsonConsts.SEQNUM,
-                          IpcRequestPacketEnum.KT_VBR_FLOWFILTER_ENTRY_GET,
-                          uriParameterList,VtnServiceIpcConsts.GET_VBRIDGE_FLOW_FILTER_ENTRY_RESPONSE);
-            }
-            setInfo(responseJson);
+                       JsonObject responseJson = responseGenerator
+                                       .getVBridgeFlowFilterEntryResponse(
+                                                       requestProcessor.getIpcResponsePacket(),
+                                                       requestBody, VtnServiceJsonConsts.LIST);
+                       if (responseJson.get(VtnServiceJsonConsts.FLOWFILTERENTRIES)
+                                       .isJsonArray()) {
+                               final JsonArray responseArray = responseJson.get(
+                                               VtnServiceJsonConsts.FLOWFILTERENTRIES)
+                                               .getAsJsonArray();
+                               responseJson = getResponseJsonArrayLogical(
+                                               requestBody,
+                                               requestProcessor,
+                                               responseGenerator,
+                                               responseArray,
+                                               VtnServiceJsonConsts.FLOWFILTERENTRIES,
+                                               VtnServiceJsonConsts.SEQNUM,
+                                               IpcRequestPacketEnum.KT_VBR_FLOWFILTER_ENTRY_GET,
+                                               uriParameterList,
+                                               VtnServiceIpcConsts.GET_VBRIDGE_FLOW_FILTER_ENTRY_RESPONSE);
+                       }
+                       setInfo(responseJson);
                        LOG.debug("Response object created successfully");
                        LOG.debug("Complete Ipc framework call");
                } catch (final VtnServiceException e) {
index f17dbc9712b789a6a47d2b1dbe55ad7bc3163462..652775bd44968a6e4b191c6e3846b164ac5546af 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -39,7 +39,8 @@ import org.opendaylight.vtn.javaapi.validation.logical.VBridgeFlowFilterEntryRes
  * 
  */
 
-@UNCVtnService(path = "/vtns/{vtn_name}/vbridges/{vbr_name}/flowfilters/{ff_type}/flowfilterentries/{seqnum}")
+@UNCVtnService(
+               path = "/vtns/{vtn_name}/vbridges/{vbr_name}/flowfilters/{ff_type}/flowfilterentries/{seqnum}")
 public class VBridgeFlowFilterEntryResource extends AbstractResource {
        /** The vtn name. */
        @UNCField("vtn_name")
@@ -71,28 +72,28 @@ public class VBridgeFlowFilterEntryResource extends AbstractResource {
        /**
         * @return the vtnName
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
 
        /**
         * @return the vbrName
         */
-       public String getVbrName() {
+       public final String getVbrName() {
                return vbrName;
        }
 
        /**
         * @return the ffType
         */
-       public String getFfType() {
+       public final String getFfType() {
                return ffType;
        }
 
        /**
         * @return the seqNum
         */
-       public String getSeqnum() {
+       public final String getSeqnum() {
                return seqnum;
        }
 
@@ -103,7 +104,7 @@ public class VBridgeFlowFilterEntryResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("Start VBridgeFlowFilterEntryResource#delete()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -122,7 +123,7 @@ public class VBridgeFlowFilterEntryResource extends AbstractResource {
                                        IpcRequestPacketEnum.KT_VBR_FLOWFILTER_ENTRY_DELETE,
                                        getNullJsonObject(), getUriParameters());
                        LOG.debug("Request packet created successfully");
-                       status= requestProcessor.processIpcRequest();
+                       status = requestProcessor.processIpcRequest();
                        LOG.debug("Request packet processed with status" + status);
                        LOG.debug("Complete Ipc framework call");
                } catch (final VtnServiceException e) {
@@ -162,7 +163,8 @@ public class VBridgeFlowFilterEntryResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int put(final JsonObject requestBody) throws VtnServiceException {
+       public final int put(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VBridgeFlowFilterEntryResource#put()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -221,7 +223,8 @@ public class VBridgeFlowFilterEntryResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VBridgeFlowFilterEntryResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
index f5414a4ae7796989582ad45f43079be366b39b42..f9d6eda65f5c367162e2270454265baf51defa1e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -34,7 +34,8 @@ import org.opendaylight.vtn.javaapi.validation.logical.FlowFilterResourceValidat
  * The Class VBridgeFlowFilterResource implements delete and get methods.
  * 
  */
-@UNCVtnService(path = "/vtns/{vtn_name}/vbridges/{vbr_name}/flowfilters/{ff_type}")
+@UNCVtnService(
+               path = "/vtns/{vtn_name}/vbridges/{vbr_name}/flowfilters/{ff_type}")
 public class VBridgeFlowFilterResource extends AbstractResource {
        /** The vtn name. */
        @UNCField("vtn_name")
@@ -65,21 +66,21 @@ public class VBridgeFlowFilterResource extends AbstractResource {
        /**
         * @return the vtnName
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
 
        /**
         * @return the vbrName
         */
-       public String getVbrName() {
+       public final String getVbrName() {
                return vbrName;
        }
 
        /**
         * @return the ffType
         */
-       public String getFfType() {
+       public final String getFfType() {
                return ffType;
        }
 
@@ -91,7 +92,7 @@ public class VBridgeFlowFilterResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("Start VBridgeFlowFilterResource#delete()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -110,10 +111,10 @@ public class VBridgeFlowFilterResource extends AbstractResource {
                                        IpcRequestPacketEnum.KT_VBR_FLOWFILTER_DELETE,
                                        getNullJsonObject(), getUriParameters());
                        LOG.debug("Request packet created successfully");
-                       status= requestProcessor.processIpcRequest();
+                       status = requestProcessor.processIpcRequest();
                        LOG.debug("Request packet processed with status" + status);
                        LOG.debug("Complete Ipc framework call");
-               }catch (final VtnServiceException e) {
+               } catch (final VtnServiceException e) {
                        getExceptionHandler()
                                        .raise(Thread.currentThread().getStackTrace()[1]
                                                        .getClassName()
@@ -150,7 +151,8 @@ public class VBridgeFlowFilterResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VBridgeFlowFilterResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
index 4944aceca5f3cb6092dd97102c28a43229a197d2..d9c82c3c443f51eeeaacecf33324fa4b845f4866 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -54,19 +54,21 @@ public class VBridgeFlowFiltersResource extends AbstractResource {
                setValidator(new FlowFilterResourceValidator(this));
                LOG.trace("Complete VBridgeFlowFiltersResource#VBridgeFlowFiltersResources()");
        }
+
        /**
         * @return the vtnName
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
 
        /**
         * @return the vbrName
         */
-       public String getVbrName() {
+       public final String getVbrName() {
                return vbrName;
        }
+
        /**
         * Implementation of Post method of VBridgeFlowFilter API
         * 
@@ -77,7 +79,8 @@ public class VBridgeFlowFiltersResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int post(final JsonObject requestBody) throws VtnServiceException {
+       public final int post(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VBridgeFlowFiltersResource#post()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -132,7 +135,7 @@ public class VBridgeFlowFiltersResource extends AbstractResource {
         * 
         * @return parameter list
         */
-       private List<String> getUriParameters() {               
+       private List<String> getUriParameters() {
                LOG.trace("Start VBridgeFlowFiltersResource#getUriParameters()");
                final List<String> uriParameters = new ArrayList<String>();
                uriParameters.add(vtnName);
index 78c70e99317dd1c18dcd297333f1a719d541fc6b..5619533e392d50151351966901d436c714a2ef66 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -37,7 +37,8 @@ import org.opendaylight.vtn.javaapi.validation.logical.VBridgeFlowFilterEntriesR
  * 
  */
 
-@UNCVtnService(path = "/vtns/{vtn_name}/vbridges/{vbr_name}/interfaces/{if_name}/flowfilters/{ff_type}/flowfilterentries")
+@UNCVtnService(
+               path = "/vtns/{vtn_name}/vbridges/{vbr_name}/interfaces/{if_name}/flowfilters/{ff_type}/flowfilterentries")
 public class VBridgeInterfaceFlowFilterEntriesResource extends AbstractResource {
        /** The VTN name. */
        @UNCField("vtn_name")
@@ -70,28 +71,28 @@ public class VBridgeInterfaceFlowFilterEntriesResource extends AbstractResource
        /**
         * @return the vtnName
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
 
        /**
         * @return the vbrName
         */
-       public String getVbrName() {
+       public final String getVbrName() {
                return vbrName;
        }
 
        /**
         * @return the ifName
         */
-       public String getIfName() {
+       public final String getIfName() {
                return ifName;
        }
 
        /**
         * @return the ffType
         */
-       public String getFfType() {
+       public final String getFfType() {
                return ffType;
        }
 
@@ -105,7 +106,8 @@ public class VBridgeInterfaceFlowFilterEntriesResource extends AbstractResource
         * @throws VtnServiceException
         */
        @Override
-       public int post(final JsonObject requestBody) throws VtnServiceException {
+       public final int post(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VBridgeInterfaceFlowFilterEntriesResource#post()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -165,7 +167,8 @@ public class VBridgeInterfaceFlowFilterEntriesResource extends AbstractResource
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VBridgeInterfaceFlowFilterEntries#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -201,10 +204,14 @@ public class VBridgeInterfaceFlowFilterEntriesResource extends AbstractResource
                                                        requestBody, VtnServiceJsonConsts.LIST);
                        if (responseJson.get(VtnServiceJsonConsts.FLOWFILTERENTRIES)
                                        .isJsonArray()) {
-                               JsonArray responseArray = responseJson.get(
-                                               VtnServiceJsonConsts.FLOWFILTERENTRIES).getAsJsonArray();
-                               responseJson = getResponseJsonArrayLogical(requestBody,
-                                               requestProcessor, responseGenerator, responseArray,
+                               final JsonArray responseArray = responseJson.get(
+                                               VtnServiceJsonConsts.FLOWFILTERENTRIES)
+                                               .getAsJsonArray();
+                               responseJson = getResponseJsonArrayLogical(
+                                               requestBody,
+                                               requestProcessor,
+                                               responseGenerator,
+                                               responseArray,
                                                VtnServiceJsonConsts.FLOWFILTERENTRIES,
                                                VtnServiceJsonConsts.SEQNUM,
                                                IpcRequestPacketEnum.KT_VBRIF_FLOWFILTER_ENTRY_GET,
index 2c7fb64fb059883252e31381a12f7bb9a95892ab..b0f80618631062898c0ebfeeac2fbb33fba5888c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -37,7 +37,8 @@ import org.opendaylight.vtn.javaapi.validation.logical.VBridgeFlowFilterEntryRes
  * get methods.
  * 
  */
-@UNCVtnService(path = "/vtns/{vtn_name}/vbridges/{vbr_name}/interfaces/{if_name}/flowfilters/{ff_type}/flowfilterentries/{seqnum}")
+@UNCVtnService(
+               path = "/vtns/{vtn_name}/vbridges/{vbr_name}/interfaces/{if_name}/flowfilters/{ff_type}/flowfilterentries/{seqnum}")
 public class VBridgeInterfaceFlowFilterEntryResource extends AbstractResource {
 
        /** The VTN name. */
@@ -58,8 +59,7 @@ public class VBridgeInterfaceFlowFilterEntryResource extends AbstractResource {
 
        /** The Constant LOG. */
        private static final Logger LOG = Logger
-                       .getLogger(VBridgeInterfaceFlowFilterEntryResource.class
-                                       .getName());
+                       .getLogger(VBridgeInterfaceFlowFilterEntryResource.class.getName());
 
        /**
         * Instantiates a new v bridge interface flow filter entry resource.
@@ -74,35 +74,35 @@ public class VBridgeInterfaceFlowFilterEntryResource extends AbstractResource {
        /**
         * @return the vtnName
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
 
        /**
         * @return the vbrName
         */
-       public String getVbrName() {
+       public final String getVbrName() {
                return vbrName;
        }
 
        /**
         * @return the ifName
         */
-       public String getIfName() {
+       public final String getIfName() {
                return ifName;
        }
 
        /**
         * @return the ffType
         */
-       public String getFfType() {
+       public final String getFfType() {
                return ffType;
        }
 
        /**
         * @return the seqnum
         */
-       public String getSeqnum() {
+       public final String getSeqnum() {
                return seqnum;
        }
 
@@ -116,7 +116,8 @@ public class VBridgeInterfaceFlowFilterEntryResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int put(final JsonObject requestBody) throws VtnServiceException {
+       public final int put(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VBridgeInterfaceFlowFilterEntryResource#put()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -173,7 +174,7 @@ public class VBridgeInterfaceFlowFilterEntryResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("Start VBridgeInterfaceFlowFilterEntryResource#delete()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -232,7 +233,8 @@ public class VBridgeInterfaceFlowFilterEntryResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VBridgeInterfaceFlowFilterEntryResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
index f3a3a72876048864e37dab7689c6dd46c2706550..86c19cf9846baf777be81164acd36620cf805120 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -36,7 +36,8 @@ import org.opendaylight.vtn.javaapi.validation.logical.FlowFilterResourceValidat
  * 
  */
 
-@UNCVtnService(path = "/vtns/{vtn_name}/vbridges/{vbr_name}/interfaces/{if_name}/flowfilters/{ff_type}")
+@UNCVtnService(
+               path = "/vtns/{vtn_name}/vbridges/{vbr_name}/interfaces/{if_name}/flowfilters/{ff_type}")
 public class VBridgeInterfaceFlowFilterResource extends AbstractResource {
        /** The vtn name. */
        @UNCField("vtn_name")
@@ -68,28 +69,28 @@ public class VBridgeInterfaceFlowFilterResource extends AbstractResource {
        /**
         * @return the vtnName
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
 
        /**
         * @return the vbrName
         */
-       public String getVbrName() {
+       public final String getVbrName() {
                return vbrName;
        }
 
        /**
         * @return the ifName
         */
-       public String getIfName() {
+       public final String getIfName() {
                return ifName;
        }
 
        /**
         * @return the ffType
         */
-       public String getFfType() {
+       public final String getFfType() {
                return ffType;
        }
 
@@ -101,7 +102,7 @@ public class VBridgeInterfaceFlowFilterResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("Start VBridgeInterfaceFlowFilterResource#delete()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -160,7 +161,8 @@ public class VBridgeInterfaceFlowFilterResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VBridgeInterfaceFlowFilterResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -181,7 +183,7 @@ public class VBridgeInterfaceFlowFilterResource extends AbstractResource {
                        LOG.debug("Request packet created successfully");
                        status = requestProcessor.processIpcRequest();
                        LOG.debug("Request packet processed with status" + status);
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
                        setInfo(responseGenerator.getVBridgeInterfaceFlowFilterResource(
                                        requestProcessor.getIpcResponsePacket(), requestBody,
                                        VtnServiceJsonConsts.SHOW));
@@ -219,7 +221,7 @@ public class VBridgeInterfaceFlowFilterResource extends AbstractResource {
         * 
         * @return
         */
-       private List<String> getUriParameters() {               
+       private List<String> getUriParameters() {
                LOG.trace("Start VBridgeInterfaceFlowFilterResource#getUriParameters()");
                final List<String> uriParameters = new ArrayList<String>();
                uriParameters.add(vtnName);
index b927e8506d15a5693c7fed442a582b62cbd4718f..32fadaa9371e6f537b5e75a69f7bd96dfd1f23db 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -31,7 +31,8 @@ import org.opendaylight.vtn.javaapi.validation.logical.FlowFilterResourceValidat
  * The Class VBridgeInterfaceFlowFiltersResource implements post method.
  */
 
-@UNCVtnService(path = "/vtns/{vtn_name}/vbridges/{vbr_name}/interfaces/{if_name}/flowfilters")
+@UNCVtnService(
+               path = "/vtns/{vtn_name}/vbridges/{vbr_name}/interfaces/{if_name}/flowfilters")
 public class VBridgeInterfaceFlowFiltersResource extends AbstractResource {
        /** The VTN name. */
        @UNCField("vtn_name")
@@ -45,8 +46,7 @@ public class VBridgeInterfaceFlowFiltersResource extends AbstractResource {
 
        /** The Constant LOG. */
        private static final Logger LOG = Logger
-                       .getLogger(VBridgeInterfaceFlowFiltersResource.class
-                                       .getName());
+                       .getLogger(VBridgeInterfaceFlowFiltersResource.class.getName());
 
        /**
         * Instantiates a new v bridge interface flow filters resource.
@@ -63,7 +63,7 @@ public class VBridgeInterfaceFlowFiltersResource extends AbstractResource {
         * 
         * @return the VTN name
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
 
@@ -72,7 +72,7 @@ public class VBridgeInterfaceFlowFiltersResource extends AbstractResource {
         * 
         * @return the VBR name
         */
-       public String getVbrName() {
+       public final String getVbrName() {
                return vbrName;
        }
 
@@ -81,7 +81,7 @@ public class VBridgeInterfaceFlowFiltersResource extends AbstractResource {
         * 
         * @return the if name
         */
-       public String getIfName() {
+       public final String getIfName() {
                return ifName;
        }
 
@@ -95,7 +95,8 @@ public class VBridgeInterfaceFlowFiltersResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int post(final JsonObject requestBody) throws VtnServiceException {
+       public final int post(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VBridgeInterfaceFlowFiltersResource#post()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -149,7 +150,7 @@ public class VBridgeInterfaceFlowFiltersResource extends AbstractResource {
         * 
         * @return
         */
-       private List<String> getUriParameters() {               
+       private List<String> getUriParameters() {
                LOG.trace("Start VBridgeInterfaceFlowFiltersResource#getUriParameters()");
                final List<String> uriParameters = new ArrayList<String>();
                uriParameters.add(vtnName);
similarity index 90%
rename from coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/PortMapResource.java
rename to coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VBridgeInterfacePortMapResource.java
index 4cc2c4e8e4975e37c0470c3124f4dc2eb64f9cf7..e4fd608c4f705ff0c01b650f88c9d58553719aa4 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2013-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -35,8 +35,9 @@ import org.opendaylight.vtn.javaapi.validation.logical.PortMapResourceValidator;
  * 
  */
 
-@UNCVtnService(path = "/vtns/{vtn_name}/vbridges/{vbr_name}/interfaces/{if_name}/portmap")
-public class PortMapResource extends AbstractResource {
+@UNCVtnService(
+               path = "/vtns/{vtn_name}/vbridges/{vbr_name}/interfaces/{if_name}/portmap")
+public class VBridgeInterfacePortMapResource extends AbstractResource {
        /** The vtn name. */
        @UNCField("vtn_name")
        private String vtnName;
@@ -48,15 +49,15 @@ public class PortMapResource extends AbstractResource {
        private String ifName;
 
        /** The Constant LOG. */
-       private static final Logger LOG = Logger.getLogger(PortMapResource.class
-                       .getName());
+       private static final Logger LOG = Logger
+                       .getLogger(VBridgeInterfacePortMapResource.class.getName());
 
        /**
         * Gets the vtn name.
         * 
         * @return the vtn name
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
 
@@ -65,7 +66,7 @@ public class PortMapResource extends AbstractResource {
         * 
         * @return the vbr name
         */
-       public String getVbrName() {
+       public final String getVbrName() {
                return vbrName;
        }
 
@@ -74,14 +75,14 @@ public class PortMapResource extends AbstractResource {
         * 
         * @return the if name
         */
-       public String getIfName() {
+       public final String getIfName() {
                return ifName;
        }
 
        /**
         * Instantiates a new port map resource.
         */
-       public PortMapResource() {
+       public VBridgeInterfacePortMapResource() {
                super();
                LOG.trace("Start PortMapResource#PortMapResource()");
                setValidator(new PortMapResourceValidator(this));
@@ -95,7 +96,7 @@ public class PortMapResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("Start PortMapResource#delete()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -115,7 +116,7 @@ public class PortMapResource extends AbstractResource {
                                        getUriParameters());
                        LOG.debug("Request packet created successfully");
                        status = requestProcessor.processIpcRequest();
-                       LOG.debug("Request packet processed with status" + status);     
+                       LOG.debug("Request packet processed with status" + status);
                        LOG.debug("Complete Ipc framework call");
                } catch (final VtnServiceException e) {
                        getExceptionHandler()
@@ -154,7 +155,8 @@ public class PortMapResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start PortMapResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -175,10 +177,11 @@ public class PortMapResource extends AbstractResource {
                        LOG.debug("Request Packet created successfully");
                        status = requestProcessor.processIpcRequest();
                        LOG.debug("Request packet processed with status" + status);
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
                        setInfo(responseGenerator.getPortMapResponse(
                                        requestProcessor.getIpcResponsePacket(), requestBody,
-                                       VtnServiceJsonConsts.SHOW,VtnServiceJsonConsts.VBRIDGE_INTERFACE_PORTMAP));
+                                       VtnServiceJsonConsts.SHOW,
+                                       VtnServiceJsonConsts.VBRIDGE_INTERFACE_PORTMAP));
                        LOG.debug("Response object created successfully");
                        LOG.debug("Complete Ipc framework call");
                } catch (final VtnServiceException e) {
@@ -218,7 +221,8 @@ public class PortMapResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int put(final JsonObject requestBody) throws VtnServiceException {
+       public final int put(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start PortMapResource#put()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
index a4a1f87401b5e700f35b2d1696a7308e775375d0..1396779ca8c433cf7d9af6203693f20e31a911fe 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -37,7 +37,8 @@ import org.opendaylight.vtn.javaapi.validation.logical.InterfaceResourceValidato
  * The Class VBridgeInterfaceResource.
  */
 /* This class handles delete, put and get methods */
-@UNCVtnService(path = "/vtns/{vtn_name}/vbridges/{vbr_name}/interfaces/{if_name}")
+@UNCVtnService(
+               path = "/vtns/{vtn_name}/vbridges/{vbr_name}/interfaces/{if_name}")
 public class VBridgeInterfaceResource extends AbstractResource {
        /** The vtn name. */
        @UNCField("vtn_name")
@@ -54,7 +55,7 @@ public class VBridgeInterfaceResource extends AbstractResource {
         * 
         * @return the vtn name
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
 
@@ -63,7 +64,7 @@ public class VBridgeInterfaceResource extends AbstractResource {
         * 
         * @return the vbr name
         */
-       public String getVbrName() {
+       public final String getVbrName() {
                return vbrName;
        }
 
@@ -72,7 +73,7 @@ public class VBridgeInterfaceResource extends AbstractResource {
         * 
         * @return the if name
         */
-       public String getIfName() {
+       public final String getIfName() {
                return ifName;
        }
 
@@ -97,7 +98,7 @@ public class VBridgeInterfaceResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("Start VBridgeInterfaceResource#delete()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -156,7 +157,8 @@ public class VBridgeInterfaceResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VBridgeInterfaceResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -176,7 +178,8 @@ public class VBridgeInterfaceResource extends AbstractResource {
                                        getUriParameters());
                        LOG.debug("Request Packet created successfully for 1st call");
                        status = requestProcessor.processIpcRequest();
-                       LOG.debug("Request packet processed for 1st call with status" + status);
+                       LOG.debug("Request packet processed for 1st call with status"
+                                       + status);
                        if (status == ClientSession.RESP_FATAL) {
                                throw new VtnServiceException(
                                                Thread.currentThread().getStackTrace()[1]
@@ -189,7 +192,7 @@ public class VBridgeInterfaceResource extends AbstractResource {
                        }
                        JsonObject neighbor = null;
                        JsonObject vbrInterfaceJson = null;
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
                        String dataType = VtnServiceJsonConsts.STATE;
                        if (requestBody.has(VtnServiceJsonConsts.TARGETDB)) {
                                dataType = requestBody.get(VtnServiceJsonConsts.TARGETDB)
@@ -199,7 +202,8 @@ public class VBridgeInterfaceResource extends AbstractResource {
                                        requestProcessor.getIpcResponsePacket(), requestBody,
                                        VtnServiceJsonConsts.SHOW);
                        LOG.debug("Response object created successfully for 1st request");
-                       if ((VtnServiceJsonConsts.STATE).equalsIgnoreCase(dataType) && !(vbrInterfaceJson.get(VtnServiceJsonConsts.INTERFACE) instanceof JsonNull)) {
+                       if ((VtnServiceJsonConsts.STATE).equalsIgnoreCase(dataType)
+                                       && !(vbrInterfaceJson.get(VtnServiceJsonConsts.INTERFACE) instanceof JsonNull)) {
                                requestProcessor.setServiceInfo(
                                                UncUPLLEnums.UPLL_IPC_SERVICE_NAME,
                                                UncUPLLEnums.ServiceID.UPLL_READ_SVC_ID.ordinal());
@@ -214,7 +218,8 @@ public class VBridgeInterfaceResource extends AbstractResource {
                                                                                                .ordinal())));
                                LOG.debug("Request packet created successfully for 2nd call");
                                status = requestProcessor.processIpcRequest();
-                               LOG.debug("Request packet processed for 2nd call with status" + status);
+                               LOG.debug("Request packet processed for 2nd call with status"
+                                               + status);
                                neighbor = responseGenerator.getNeighborResponse(
                                                requestProcessor.getIpcResponsePacket(), requestBody,
                                                VtnServiceJsonConsts.SHOW);
@@ -263,7 +268,8 @@ public class VBridgeInterfaceResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int put(final JsonObject requestBody) throws VtnServiceException {
+       public final int put(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VBridgeInterfaceResource#put()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -317,7 +323,7 @@ public class VBridgeInterfaceResource extends AbstractResource {
         * 
         * @return parameter list
         */
-       private List<String> getUriParameters() {               
+       private List<String> getUriParameters() {
                LOG.trace("Start VBridgeInterfaceResource#getUriParameters()");
                final List<String> uriParameters = new ArrayList<String>();
                uriParameters.add(vtnName);
index 9007040103b9044f5b0e9294022b33488cc927d7..c8fbc4f9649c12da43a7f6475184a31961ff35a4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -59,7 +59,7 @@ public class VBridgeInterfacesResource extends AbstractResource {
         * 
         * @return the vtn name
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
 
@@ -68,7 +68,7 @@ public class VBridgeInterfacesResource extends AbstractResource {
         * 
         * @return the vbr name
         */
-       public String getVbrName() {
+       public final String getVbrName() {
                return vbrName;
        }
 
@@ -96,7 +96,8 @@ public class VBridgeInterfacesResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int post(final JsonObject requestBody) throws VtnServiceException {
+       public final int post(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VBridgeInterfacesResource#post()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -156,7 +157,8 @@ public class VBridgeInterfacesResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VBridgeInterfacesResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -177,7 +179,8 @@ public class VBridgeInterfacesResource extends AbstractResource {
                                        uriParameterList);
                        LOG.debug("Request Packet created successfully for 1st call");
                        status = requestProcessor.processIpcRequest();
-                       LOG.debug("Request packet processed for 1st call with status" + status);
+                       LOG.debug("Request packet processed for 1st call with status"
+                                       + status);
                        if (status == ClientSession.RESP_FATAL) {
                                throw new VtnServiceException(
                                                Thread.currentThread().getStackTrace()[1]
@@ -191,7 +194,7 @@ public class VBridgeInterfacesResource extends AbstractResource {
                        IpcDataUnit[] responsePacket = null;
                        JsonObject neighbor = null;
                        JsonObject vbrInterfaceJson = null;
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
                        String dataType = VtnServiceJsonConsts.STATE;
                        if (requestBody.has(VtnServiceJsonConsts.TARGETDB)) {
                                dataType = requestBody.get(VtnServiceJsonConsts.TARGETDB)
@@ -202,25 +205,25 @@ public class VBridgeInterfacesResource extends AbstractResource {
                                opType = requestBody.get(VtnServiceJsonConsts.OP).getAsString();
                        }
                        JsonObject interfaceJson = null;
-                       JsonArray interfaceArray = new JsonArray();
+                       final JsonArray interfaceArray = new JsonArray();
                        responsePacket = requestProcessor.getIpcResponsePacket();
                        vbrInterfaceJson = responseGenerator.getVBridgeInterfaceResponse(
                                        responsePacket, requestBody, VtnServiceJsonConsts.LIST);
-                       if (vbrInterfaceJson.get(VtnServiceJsonConsts.INTERFACES).isJsonArray()) {
-                               JsonArray responseArray = vbrInterfaceJson.get(
-                                               VtnServiceJsonConsts.INTERFACES)
-                                               .getAsJsonArray();
+                       if (vbrInterfaceJson.get(VtnServiceJsonConsts.INTERFACES)
+                                       .isJsonArray()) {
+                               final JsonArray responseArray = vbrInterfaceJson.get(
+                                               VtnServiceJsonConsts.INTERFACES).getAsJsonArray();
                                vbrInterfaceJson = getResponseJsonArrayLogical(requestBody,
-                        requestProcessor, responseGenerator,
-                        responseArray, VtnServiceJsonConsts.INTERFACES,
-                        VtnServiceJsonConsts.IFNAME,
-                        IpcRequestPacketEnum.KT_VBR_IF_GET,
-                        uriParameterList,VtnServiceIpcConsts.GET_VBRIDGE_INTERFACE_RESPONSE);
+                                               requestProcessor, responseGenerator, responseArray,
+                                               VtnServiceJsonConsts.INTERFACES,
+                                               VtnServiceJsonConsts.IFNAME,
+                                               IpcRequestPacketEnum.KT_VBR_IF_GET, uriParameterList,
+                                               VtnServiceIpcConsts.GET_VBRIDGE_INTERFACE_RESPONSE);
                        }
                        LOG.debug("Response object created successfully for 1st request");
                        if ((VtnServiceJsonConsts.STATE).equalsIgnoreCase(dataType)
                                        && opType.equalsIgnoreCase(VtnServiceJsonConsts.DETAIL)) {
-                               Iterator<JsonElement> interfaceIterator = vbrInterfaceJson
+                               final Iterator<JsonElement> interfaceIterator = vbrInterfaceJson
                                                .get(VtnServiceJsonConsts.INTERFACES).getAsJsonArray()
                                                .iterator();
                                requestProcessor.setServiceInfo(
@@ -228,7 +231,7 @@ public class VBridgeInterfacesResource extends AbstractResource {
                                                UncUPLLEnums.ServiceID.UPLL_READ_SVC_ID.ordinal());
                                while (interfaceIterator.hasNext()) {
                                        interfaceJson = interfaceIterator.next().getAsJsonObject();
-                                       String ifName = interfaceJson.get(
+                                       final String ifName = interfaceJson.get(
                                                        VtnServiceJsonConsts.IFNAME).getAsString();
                                        requestBody.addProperty(VtnServiceJsonConsts.INDEX, ifName);
                                        requestProcessor.createIpcRequestPacket(
@@ -248,7 +251,8 @@ public class VBridgeInterfacesResource extends AbstractResource {
                                                                                                        .ordinal()));
                                        LOG.debug("Request packet created successfully for 2nd call");
                                        status = requestProcessor.processIpcRequest();
-                                       LOG.debug("Request packet processed for 2nd call with status" + status);
+                                       LOG.debug("Request packet processed for 2nd call with status"
+                                                       + status);
                                        responsePacket = requestProcessor.getIpcResponsePacket();
                                        neighbor = responseGenerator.getNeighborResponse(
                                                        responsePacket, requestBody,
@@ -295,7 +299,7 @@ public class VBridgeInterfacesResource extends AbstractResource {
         * 
         * @return parameter list
         */
-       private List<String> getUriParameters(final JsonObject requestBody) {           
+       private List<String> getUriParameters(final JsonObject requestBody) {
                LOG.trace("Start VBridgeInterfacesResource#getUriParameters()");
                final List<String> uriParameters = new ArrayList<String>();
                uriParameters.add(vtnName);
index 582bca6f2af10c02fe3336d808d8decefc11b35a..d66e9920da2938c8ec9c3a6d88ebdbf6f4bab912 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -63,7 +63,7 @@ public class VBridgeResource extends AbstractResource {
         * 
         * @return the vtn name
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
 
@@ -72,7 +72,7 @@ public class VBridgeResource extends AbstractResource {
         * 
         * @return the vbr name
         */
-       public String getVbrName() {
+       public final String getVbrName() {
                return vbrName;
        }
 
@@ -83,7 +83,7 @@ public class VBridgeResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("Start VBridgeResource#delete()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -142,7 +142,8 @@ public class VBridgeResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int put(final JsonObject requestBody) throws VtnServiceException {
+       public final int put(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VBridgeResource#put()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -201,7 +202,8 @@ public class VBridgeResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VBridgeResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -222,7 +224,7 @@ public class VBridgeResource extends AbstractResource {
                        LOG.debug("Request Packet created successfully");
                        status = requestProcessor.processIpcRequest();
                        LOG.debug("Request packet processed with status" + status);
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
                        setInfo(responseGenerator.getVBridgeResponse(
                                        requestProcessor.getIpcResponsePacket(), requestBody,
                                        VtnServiceJsonConsts.SHOW));
index 5ebaf55dc4e3af17f9341c0a9d89965dad966f08..64123cc93f2d4b277b4a675d8743e26c278a7551 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -62,7 +62,7 @@ public class VBridgesResource extends AbstractResource {
         * 
         * @return the vtn name
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
 
@@ -76,7 +76,8 @@ public class VBridgesResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int post(final JsonObject requestBody) throws VtnServiceException {
+       public final int post(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VBridgesResource#post()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -100,14 +101,14 @@ public class VBridgesResource extends AbstractResource {
                        LOG.debug("Complete Ipc framework call");
                } catch (final VtnServiceException e) {
                        getExceptionHandler()
-                       .raise(Thread.currentThread().getStackTrace()[1]
-                                       .getClassName()
-                                       + VtnServiceConsts.HYPHEN
-                                       + Thread.currentThread().getStackTrace()[1]
-                                                       .getMethodName(),
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR
-                                                       .getErrorMessage(), e);
+                                                                       .getErrorMessage(), e);
                        throw e;
                } finally {
                        if (status == ClientSession.RESP_FATAL) {
@@ -135,7 +136,8 @@ public class VBridgesResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VBridgesResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -158,7 +160,7 @@ public class VBridgesResource extends AbstractResource {
                        LOG.debug("Request Packet created successfully");
                        status = requestProcessor.processIpcRequest();
                        LOG.debug("Request packet processed with status" + status);
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
                        /*
                         * setInfo(responseGenerator.getVBridgeResponse(
                         * requestProcessor.getIpcResponsePacket(), requestBody,
@@ -168,29 +170,29 @@ public class VBridgesResource extends AbstractResource {
                                        requestProcessor.getIpcResponsePacket(), requestBody,
                                        VtnServiceJsonConsts.LIST);
                        if (responseJson.get(VtnServiceJsonConsts.VBRIDGES).isJsonArray()) {
-                               JsonArray responseArray = responseJson.get(
+                               final JsonArray responseArray = responseJson.get(
                                                VtnServiceJsonConsts.VBRIDGES).getAsJsonArray();
 
                                responseJson = getResponseJsonArrayLogical(requestBody,
-                                               requestProcessor, responseGenerator,
-                                               responseArray, VtnServiceJsonConsts.VBRIDGES,
+                                               requestProcessor, responseGenerator, responseArray,
+                                               VtnServiceJsonConsts.VBRIDGES,
                                                VtnServiceJsonConsts.VBRIDGENAME,
-                                               IpcRequestPacketEnum.KT_VBRIDGE_GET,
-                                               uriParameterList,VtnServiceIpcConsts.GET_VBRIDGE_RESPONSE);
+                                               IpcRequestPacketEnum.KT_VBRIDGE_GET, uriParameterList,
+                                               VtnServiceIpcConsts.GET_VBRIDGE_RESPONSE);
                        }
                        setInfo(responseJson);
                        LOG.debug("Response object created successfully");
                        LOG.debug("Complete Ipc framework call");
                } catch (final VtnServiceException e) {
                        getExceptionHandler()
-                       .raise(Thread.currentThread().getStackTrace()[1]
-                                       .getClassName()
-                                       + VtnServiceConsts.HYPHEN
-                                       + Thread.currentThread().getStackTrace()[1]
-                                                       .getMethodName(),
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR
-                                                       .getErrorMessage(), e);
+                                                                       .getErrorMessage(), e);
                        throw e;
                } finally {
                        if (status == ClientSession.RESP_FATAL) {
@@ -213,7 +215,7 @@ public class VBridgesResource extends AbstractResource {
         * 
         * @return parameter list
         */
-       private List<String> getUriParameters(JsonObject requestBody) {
+       private List<String> getUriParameters(final JsonObject requestBody) {
                LOG.trace("Start VBridgesResource#getUriParameters()");
                final List<String> uriParameters = new ArrayList<String>();
                uriParameters.add(vtnName);
index 57cd9e12d073346b632462acdcd2645f8e540e6b..563e4d4741b586c1ab8a47851d60c08c9a6716e5 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -36,7 +36,8 @@ import org.opendaylight.vtn.javaapi.validation.logical.InterfaceResourceValidato
  * The Class VBypassInterfaceResource.
  */
 /* This class handles put, delete and get methods */
-@UNCVtnService(path = "/vtns/{vtn_name}/vbypasses/{vbypass_name}/interfaces/{if_name}")
+@UNCVtnService(
+               path = "/vtns/{vtn_name}/vbypasses/{vbypass_name}/interfaces/{if_name}")
 public class VBypassInterfaceResource extends AbstractResource {
        /** The vtn name. */
        @UNCField("vtn_name")
@@ -47,32 +48,37 @@ public class VBypassInterfaceResource extends AbstractResource {
        /** The interface name. */
        @UNCField("if_name")
        private String ifName;
+
        /**
         * Gets the vtn name.
         * 
         * @return the vtn name
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
+
        /**
         * Gets the vbypass name.
         * 
         * @return the vbypass name
         */
-       public String getVbypassName() {
+       public final String getVbypassName() {
                return vbypassName;
        }
+
        /**
         * Gets the if name.
         * 
         * @return the if name
         */
-       public String getIfName() {
+       public final String getIfName() {
                return ifName;
        }
+
        private static final Logger LOG = Logger
                        .getLogger(VBypassInterfaceResource.class.getName());
+
        /**
         * Instantiates a new VBypass interface resource.
         */
@@ -82,6 +88,7 @@ public class VBypassInterfaceResource extends AbstractResource {
                setValidator(new InterfaceResourceValidator(this));
                LOG.trace("Completed VBypassInterfaceResource#VBypassInterfacesResource()");
        }
+
        /**
         * Implementation of Put method of VBypass Interface API
         * 
@@ -92,7 +99,8 @@ public class VBypassInterfaceResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int put(final JsonObject requestBody) throws VtnServiceException {
+       public final int put(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts VBypassInterfaceResource#put()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -115,14 +123,14 @@ public class VBypassInterfaceResource extends AbstractResource {
                        LOG.debug("Complete Ipc framework call");
                } catch (final VtnServiceException e) {
                        getExceptionHandler()
-                       .raise(Thread.currentThread().getStackTrace()[1]
-                                       .getClassName()
-                                       + VtnServiceConsts.HYPHEN
-                                       + Thread.currentThread().getStackTrace()[1]
-                                                       .getMethodName(),
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR
-                                                       .getErrorMessage(), e);
+                                                                       .getErrorMessage(), e);
                        throw e;
                } finally {
                        if (status == ClientSession.RESP_FATAL) {
@@ -139,6 +147,7 @@ public class VBypassInterfaceResource extends AbstractResource {
                LOG.trace("Completed VBypassInterfaceResource#put()");
                return status;
        }
+
        /**
         * Implementation of Delete method of VBypass Interface API
         * 
@@ -146,7 +155,7 @@ public class VBypassInterfaceResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("starts VBypassInterfaceResource#delete()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -169,14 +178,14 @@ public class VBypassInterfaceResource extends AbstractResource {
                        LOG.debug("Complete Ipc framework call");
                } catch (final VtnServiceException e) {
                        getExceptionHandler()
-                       .raise(Thread.currentThread().getStackTrace()[1]
-                                       .getClassName()
-                                       + VtnServiceConsts.HYPHEN
-                                       + Thread.currentThread().getStackTrace()[1]
-                                                       .getMethodName(),
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR
-                                                       .getErrorMessage(), e);
+                                                                       .getErrorMessage(), e);
                        throw e;
                } finally {
                        if (status == ClientSession.RESP_FATAL) {
@@ -193,6 +202,7 @@ public class VBypassInterfaceResource extends AbstractResource {
                LOG.trace("Completed VBypassInterfaceResource#delete()");
                return status;
        }
+
        /**
         * Implementation of get method of VBypass Interface API
         * 
@@ -203,7 +213,8 @@ public class VBypassInterfaceResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts VBypassInterfaceResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -223,7 +234,8 @@ public class VBypassInterfaceResource extends AbstractResource {
                                        getUriParameters());
                        LOG.debug("Request packet created successfully for 1st request");
                        status = requestProcessor.processIpcRequest();
-                       LOG.debug("Request packet processed for 1st call with status" + status);
+                       LOG.debug("Request packet processed for 1st call with status"
+                                       + status);
                        if (status == ClientSession.RESP_FATAL) {
                                throw new VtnServiceException(
                                                Thread.currentThread().getStackTrace()[1]
@@ -231,21 +243,24 @@ public class VBypassInterfaceResource extends AbstractResource {
                                                                + VtnServiceConsts.HYPHEN
                                                                + Thread.currentThread().getStackTrace()[1]
                                                                                .getMethodName(),
-                                                                               UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
-                                                                               UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorMessage());
+                                               UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
+                                               UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorMessage());
                        }
                        JsonObject neighbor = null;
                        JsonObject vbypassInterfaceJson = null;
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
                        String dataType = null;
                        if (requestBody.has(VtnServiceJsonConsts.TARGETDB)) {
                                dataType = requestBody.get(VtnServiceJsonConsts.TARGETDB)
                                                .getAsString();
                        }
-                       vbypassInterfaceJson = responseGenerator.getVBypassInterfaceResponse(
-                                       requestProcessor.getIpcResponsePacket(), requestBody,
-                                       VtnServiceJsonConsts.SHOW);
-                       if (VtnServiceJsonConsts.STATE.equalsIgnoreCase(dataType) && !(vbypassInterfaceJson.get(VtnServiceJsonConsts.INTERFACE) instanceof JsonNull)) {
+                       vbypassInterfaceJson = responseGenerator
+                                       .getVBypassInterfaceResponse(
+                                                       requestProcessor.getIpcResponsePacket(),
+                                                       requestBody, VtnServiceJsonConsts.SHOW);
+                       if (VtnServiceJsonConsts.STATE.equalsIgnoreCase(dataType)
+                                       && !(vbypassInterfaceJson
+                                                       .get(VtnServiceJsonConsts.INTERFACE) instanceof JsonNull)) {
                                requestProcessor.setServiceInfo(
                                                UncUPLLEnums.UPLL_IPC_SERVICE_NAME,
                                                UncUPLLEnums.ServiceID.UPLL_READ_SVC_ID.ordinal());
@@ -253,34 +268,35 @@ public class VBypassInterfaceResource extends AbstractResource {
                                                IpcRequestPacketEnum.KT_VUNK_IF_GET, requestBody,
                                                getUriParameters());
                                requestProcessor
-                               .getRequestPacket()
-                               .setOption2(
-                                               IpcDataUnitWrapper
-                                               .setIpcUint32Value(UncOption2Enum.UNC_OPT2_NEIGHBOR
-                                                               .ordinal()));
+                                               .getRequestPacket()
+                                               .setOption2(
+                                                               IpcDataUnitWrapper
+                                                                               .setIpcUint32Value(UncOption2Enum.UNC_OPT2_NEIGHBOR
+                                                                                               .ordinal()));
                                LOG.debug("Request packet created successfully for 2nd request");
                                status = requestProcessor.processIpcRequest();
-                               LOG.debug("Request packet for 2nd request processed with status" + status);
+                               LOG.debug("Request packet for 2nd request processed with status"
+                                               + status);
                                neighbor = responseGenerator.getNeighborResponse(
                                                requestProcessor.getIpcResponsePacket(), requestBody,
                                                VtnServiceJsonConsts.SHOW);
                                vbypassInterfaceJson.get(VtnServiceJsonConsts.INTERFACE)
-                               .getAsJsonObject()
-                               .add(VtnServiceJsonConsts.NEIGHBOR, neighbor);
+                                               .getAsJsonObject()
+                                               .add(VtnServiceJsonConsts.NEIGHBOR, neighbor);
                        }
                        setInfo(vbypassInterfaceJson);
                        LOG.debug("Response object created successfully");
                        LOG.debug("Complete Ipc framework call");
                } catch (final VtnServiceException e) {
                        getExceptionHandler()
-                       .raise(Thread.currentThread().getStackTrace()[1]
-                                       .getClassName()
-                                       + VtnServiceConsts.HYPHEN
-                                       + Thread.currentThread().getStackTrace()[1]
-                                                       .getMethodName(),
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR
-                                                       .getErrorMessage(), e);
+                                                                       .getErrorMessage(), e);
                        throw e;
                } finally {
                        if (status == ClientSession.RESP_FATAL) {
@@ -297,6 +313,7 @@ public class VBypassInterfaceResource extends AbstractResource {
                LOG.trace("Completed VBypassInterfaceResource#get()");
                return status;
        }
+
        /**
         * Add URI parameters to list
         * 
@@ -304,7 +321,7 @@ public class VBypassInterfaceResource extends AbstractResource {
         */
        private List<String> getUriParameters() {
                LOG.trace("Start VBypassInterfaceResource#getUriParameters()");
-               List<String> uriParameters = new ArrayList<String>();
+               final List<String> uriParameters = new ArrayList<String>();
                uriParameters.add(vtnName);
                uriParameters.add(vbypassName);
                uriParameters.add(ifName);
index f9b081fbe7b59913efa46a85a40d527ff5fc3108..e810d966e6b849e25b20b0babc344a7462ae36a3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -48,24 +48,28 @@ public class VBypassInterfacesResource extends AbstractResource {
        /** The vbypass name. */
        @UNCField("vbypass_name")
        private String vbypassName;
+
        /**
         * Gets the vtn name.
         * 
         * @return the vtn name
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
+
        /**
         * Gets the vbypass name.
         * 
         * @return the vbypass name
         */
-       public String getVbypassName() {
+       public final String getVbypassName() {
                return vbypassName;
        }
+
        private static final Logger LOG = Logger
                        .getLogger(VBypassInterfacesResource.class.getName());
+
        /**
         * Instantiates a new vBypass interfaces resource.
         */
@@ -75,6 +79,7 @@ public class VBypassInterfacesResource extends AbstractResource {
                setValidator(new InterfaceResourceValidator(this));
                LOG.trace("Completed VBypassInterfacesResource#VBypassInterfacesResource()");
        }
+
        /**
         * Implementation of Post method of VBypass Interface API
         * 
@@ -85,7 +90,8 @@ public class VBypassInterfacesResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int post(final JsonObject requestBody) throws VtnServiceException {
+       public final int post(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VBypassInterfacesResource#post()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -108,14 +114,14 @@ public class VBypassInterfacesResource extends AbstractResource {
                        LOG.debug("Complete Ipc framework call");
                } catch (final VtnServiceException e) {
                        getExceptionHandler()
-                       .raise(Thread.currentThread().getStackTrace()[1]
-                                       .getClassName()
-                                       + VtnServiceConsts.HYPHEN
-                                       + Thread.currentThread().getStackTrace()[1]
-                                                       .getMethodName(),
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR
-                                                       .getErrorMessage(), e);
+                                                                       .getErrorMessage(), e);
                        throw e;
                } finally {
                        if (status == ClientSession.RESP_FATAL) {
@@ -132,6 +138,7 @@ public class VBypassInterfacesResource extends AbstractResource {
                LOG.trace("Completed VBypassInterfacesResource#post()");
                return status;
        }
+
        /**
         * Implementation of Get method of VBypass Interface API
         * 
@@ -142,7 +149,8 @@ public class VBypassInterfacesResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts VBypassInterfaceResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -164,7 +172,8 @@ public class VBypassInterfacesResource extends AbstractResource {
                                        uriParameterList);
                        LOG.debug("Request packet created successfully for 1st request");
                        status = requestProcessor.processIpcRequest();
-                       LOG.debug("Request packet for 1st request processed with status" + status);
+                       LOG.debug("Request packet for 1st request processed with status"
+                                       + status);
                        if (status == ClientSession.RESP_FATAL) {
                                throw new VtnServiceException(
                                                Thread.currentThread().getStackTrace()[1]
@@ -172,12 +181,12 @@ public class VBypassInterfacesResource extends AbstractResource {
                                                                + VtnServiceConsts.HYPHEN
                                                                + Thread.currentThread().getStackTrace()[1]
                                                                                .getMethodName(),
-                                                                               UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
-                                                                               UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorMessage());
+                                               UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
+                                               UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorMessage());
                        }
                        JsonObject neighbor = null;
                        JsonObject vbypassInterfacesJson = null;
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
                        String dataType = null;
                        if (requestBody.has(VtnServiceJsonConsts.TARGETDB)) {
                                dataType = requestBody.get(VtnServiceJsonConsts.TARGETDB)
@@ -188,27 +197,32 @@ public class VBypassInterfacesResource extends AbstractResource {
                                opType = requestBody.get(VtnServiceJsonConsts.OP).getAsString();
                        }
                        JsonObject interfacesJson = null;
-                       JsonArray interfaceArray = new JsonArray();
-                       /*vbypassInterfacesJson = responseGenerator.getVBypassInterfaceResponse(
-                                       requestProcessor.getIpcResponsePacket(), requestBody,
-                                       VtnServiceJsonConsts.LIST);*/
-                       vbypassInterfacesJson = responseGenerator.getVBypassInterfaceResponse(
-                                       requestProcessor.getIpcResponsePacket(), requestBody,
-                                       VtnServiceJsonConsts.LIST);
-                       if (vbypassInterfacesJson.get(VtnServiceJsonConsts.INTERFACES).isJsonArray()) {
-                               JsonArray responseArray = vbypassInterfacesJson.get(
+                       final JsonArray interfaceArray = new JsonArray();
+                       /*
+                        * vbypassInterfacesJson =
+                        * responseGenerator.getVBypassInterfaceResponse(
+                        * requestProcessor.getIpcResponsePacket(), requestBody,
+                        * VtnServiceJsonConsts.LIST);
+                        */
+                       vbypassInterfacesJson = responseGenerator
+                                       .getVBypassInterfaceResponse(
+                                                       requestProcessor.getIpcResponsePacket(),
+                                                       requestBody, VtnServiceJsonConsts.LIST);
+                       if (vbypassInterfacesJson.get(VtnServiceJsonConsts.INTERFACES)
+                                       .isJsonArray()) {
+                               final JsonArray responseArray = vbypassInterfacesJson.get(
                                                VtnServiceJsonConsts.INTERFACES).getAsJsonArray();
 
-                               vbypassInterfacesJson = getResponseJsonArrayLogical(requestBody,
-                                               requestProcessor, responseGenerator,
+                               vbypassInterfacesJson = getResponseJsonArrayLogical(
+                                               requestBody, requestProcessor, responseGenerator,
                                                responseArray, VtnServiceJsonConsts.INTERFACES,
                                                VtnServiceJsonConsts.IFNAME,
-                                               IpcRequestPacketEnum.KT_VUNK_IF_GET,
-                                               uriParameterList,VtnServiceIpcConsts.GET_VBYPASS_INTERFACE_RESPONSE);
+                                               IpcRequestPacketEnum.KT_VUNK_IF_GET, uriParameterList,
+                                               VtnServiceIpcConsts.GET_VBYPASS_INTERFACE_RESPONSE);
                        }
                        if (VtnServiceJsonConsts.STATE.equalsIgnoreCase(dataType)
                                        && opType.equalsIgnoreCase(VtnServiceJsonConsts.DETAIL)) {
-                               Iterator<JsonElement> interfaceIterator = vbypassInterfacesJson
+                               final Iterator<JsonElement> interfaceIterator = vbypassInterfacesJson
                                                .get(VtnServiceJsonConsts.INTERFACES).getAsJsonArray()
                                                .iterator();
                                requestProcessor.setServiceInfo(
@@ -216,27 +230,28 @@ public class VBypassInterfacesResource extends AbstractResource {
                                                UncUPLLEnums.ServiceID.UPLL_READ_SVC_ID.ordinal());
                                while (interfaceIterator.hasNext()) {
                                        interfacesJson = interfaceIterator.next().getAsJsonObject();
-                                       String ifName = interfacesJson.get(
+                                       final String ifName = interfacesJson.get(
                                                        VtnServiceJsonConsts.IFNAME).getAsString();
                                        requestBody.addProperty(VtnServiceJsonConsts.INDEX, ifName);
                                        requestProcessor.createIpcRequestPacket(
                                                        IpcRequestPacketEnum.KT_VUNK_IF_GET, requestBody,
                                                        getUriParameters(requestBody));
                                        requestProcessor
-                                       .getRequestPacket()
-                                       .setOption2(
-                                                       IpcDataUnitWrapper
-                                                       .setIpcUint32Value(UncOption2Enum.UNC_OPT2_NEIGHBOR
-                                                                       .ordinal()));
+                                                       .getRequestPacket()
+                                                       .setOption2(
+                                                                       IpcDataUnitWrapper
+                                                                                       .setIpcUint32Value(UncOption2Enum.UNC_OPT2_NEIGHBOR
+                                                                                                       .ordinal()));
                                        requestProcessor
-                                       .getRequestPacket()
-                                       .setOperation(
-                                                       IpcDataUnitWrapper
-                                                       .setIpcUint32Value(UncOperationEnum.UNC_OP_READ
-                                                                       .ordinal()));
+                                                       .getRequestPacket()
+                                                       .setOperation(
+                                                                       IpcDataUnitWrapper
+                                                                                       .setIpcUint32Value(UncOperationEnum.UNC_OP_READ
+                                                                                                       .ordinal()));
                                        LOG.debug("Request packet created successfully for 2nd request");
                                        status = requestProcessor.processIpcRequest();
-                                       LOG.debug("Request packet for 2nd request processed with status" + status);
+                                       LOG.debug("Request packet for 2nd request processed with status"
+                                                       + status);
                                        neighbor = responseGenerator.getNeighborResponse(
                                                        requestProcessor.getIpcResponsePacket(),
                                                        requestBody, VtnServiceJsonConsts.SHOW);
@@ -252,14 +267,14 @@ public class VBypassInterfacesResource extends AbstractResource {
                        LOG.debug("Complete Ipc framework call");
                } catch (final VtnServiceException e) {
                        getExceptionHandler()
-                       .raise(Thread.currentThread().getStackTrace()[1]
-                                       .getClassName()
-                                       + VtnServiceConsts.HYPHEN
-                                       + Thread.currentThread().getStackTrace()[1]
-                                                       .getMethodName(),
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR
-                                                       .getErrorMessage(), e);
+                                                                       .getErrorMessage(), e);
                        throw e;
                } finally {
                        if (status == ClientSession.RESP_FATAL) {
@@ -276,14 +291,15 @@ public class VBypassInterfacesResource extends AbstractResource {
                LOG.trace("Completed VBypassInterfacesResource#get()");
                return status;
        }
+
        /**
         * Add URI parameters to list
         * 
         * @return parameter list
         */
-       private List<String> getUriParameters(JsonObject requestBody) {
+       private List<String> getUriParameters(final JsonObject requestBody) {
                LOG.trace("Start VBypassInterfacesResource#getUriParameters()");
-               List<String> uriParameters = new ArrayList<String>();
+               final List<String> uriParameters = new ArrayList<String>();
                uriParameters.add(vtnName);
                uriParameters.add(vbypassName);
                if (requestBody != null && requestBody.has(VtnServiceJsonConsts.INDEX)) {
index 46b3c7f662654bccb518f6490dc665f8f9db8b95..ff6012f69f694e3c501645c35f72c090617e7b13 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -37,12 +37,14 @@ public class VBypassResource extends AbstractResource {
        /** The vtn name. */
        @UNCField("vtn_name")
        private String vtnName;
+
        /**
         * @return the vtn name
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
+
        /** The vbypass name. */
        @UNCField("vbypass_name")
        private String vbypassName;
@@ -50,11 +52,13 @@ public class VBypassResource extends AbstractResource {
        /**
         * @return the VBypass name
         */
-       public String getVbypassName() {
+       public final String getVbypassName() {
                return vbypassName;
        }
+
        private static final Logger LOG = Logger.getLogger(VBypassResource.class
                        .getName());
+
        /**
         * Instantiates a new VBypass resource.
         */
@@ -64,6 +68,7 @@ public class VBypassResource extends AbstractResource {
                setValidator(new VBypassResourceValidator(this));
                LOG.trace("Completed VBypassResource#VBypassResource()");
        }
+
        /**
         * Implementation of put method of VBypass
         * 
@@ -74,7 +79,8 @@ public class VBypassResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int put(final JsonObject requestBody) throws VtnServiceException {
+       public final int put(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts VBypassResource#put()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -122,6 +128,7 @@ public class VBypassResource extends AbstractResource {
                LOG.trace("Completed VBypassResource#put()");
                return status;
        }
+
        /**
         * Implementation of delete method of VBypass
         * 
@@ -129,7 +136,7 @@ public class VBypassResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("Starts VBypassResource#delete()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -177,6 +184,7 @@ public class VBypassResource extends AbstractResource {
                LOG.trace("Completed VBypassResource#delete()");
                return status;
        }
+
        /**
         * Implementation of get method of VBypass
         * 
@@ -187,7 +195,8 @@ public class VBypassResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts VBypassResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -208,7 +217,7 @@ public class VBypassResource extends AbstractResource {
                        LOG.debug("Request Packet created successfully");
                        status = requestProcessor.processIpcRequest();
                        LOG.debug("Request packet processed with status" + status);
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
                        setInfo(responseGenerator.getVBypassResponse(
                                        requestProcessor.getIpcResponsePacket(), requestBody,
                                        VtnServiceJsonConsts.SHOW));
@@ -240,6 +249,7 @@ public class VBypassResource extends AbstractResource {
                LOG.trace("Completed VBypassResource#get()");
                return status;
        }
+
        /**
         * Add URI parameters to list
         * 
@@ -247,7 +257,7 @@ public class VBypassResource extends AbstractResource {
         */
        private List<String> getUriParameters() {
                LOG.trace("Start VBypassResource#getUriParameters()");
-               List<String> uriParameters = new ArrayList<String>();
+               final List<String> uriParameters = new ArrayList<String>();
                uriParameters.add(vtnName);
                uriParameters.add(vbypassName);
                LOG.trace("Completed VBypassResource#getUriParameters()");
index f259cfba09e8ddcbfdd5da076759372feb127a7f..d5dd5e62f32bd2a7fcdef6260d4679da59bf64b4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -39,16 +39,19 @@ public class VBypassesResource extends AbstractResource {
        /** The vtn name. */
        @UNCField("vtn_name")
        private String vtnName;
+
        /**
         * @return the vtn name
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
+
        private static final Logger LOG = Logger.getLogger(VBypassesResource.class
                        .getName());
+
        /**
-        * Instantiates a new  VBypasse resource.
+        * Instantiates a new VBypasse resource.
         */
        public VBypassesResource() {
                super();
@@ -56,6 +59,7 @@ public class VBypassesResource extends AbstractResource {
                setValidator(new VBypassResourceValidator(this));
                LOG.trace("Completed VBypassesResource#VBypassesResource()");
        }
+
        /**
         * Implementation of post method of VBypass
         * 
@@ -66,7 +70,8 @@ public class VBypassesResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int post(final JsonObject requestBody) throws VtnServiceException {
+       public final int post(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts VBypassesResource#post()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -90,14 +95,14 @@ public class VBypassesResource extends AbstractResource {
                        LOG.debug("Complete Ipc framework call");
                } catch (final VtnServiceException e) {
                        getExceptionHandler()
-                       .raise(Thread.currentThread().getStackTrace()[1]
-                                       .getClassName()
-                                       + VtnServiceConsts.HYPHEN
-                                       + Thread.currentThread().getStackTrace()[1]
-                                                       .getMethodName(),
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR
-                                                       .getErrorMessage(), e);
+                                                                       .getErrorMessage(), e);
                        throw e;
                } finally {
                        if (status == ClientSession.RESP_FATAL) {
@@ -115,6 +120,7 @@ public class VBypassesResource extends AbstractResource {
 
                return status;
        }
+
        /**
         * Implementation of get method of VBypass
         * 
@@ -125,7 +131,8 @@ public class VBypassesResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("starts VBypassesResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -148,37 +155,39 @@ public class VBypassesResource extends AbstractResource {
                        LOG.debug("Request packet created successfully");
                        status = requestProcessor.processIpcRequest();
                        LOG.debug("Request packet processed with status" + status);
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
-                       /*setInfo(responseGenerator.getVBypassResponse(
-                                       requestProcessor.getIpcResponsePacket(), requestBody,
-                                       VtnServiceJsonConsts.LIST));*/
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       /*
+                        * setInfo(responseGenerator.getVBypassResponse(
+                        * requestProcessor.getIpcResponsePacket(), requestBody,
+                        * VtnServiceJsonConsts.LIST));
+                        */
                        JsonObject responseJson = responseGenerator.getVBypassResponse(
                                        requestProcessor.getIpcResponsePacket(), requestBody,
                                        VtnServiceJsonConsts.LIST);
                        if (responseJson.get(VtnServiceJsonConsts.VBYPASSES).isJsonArray()) {
-                               JsonArray responseArray = responseJson.get(
+                               final JsonArray responseArray = responseJson.get(
                                                VtnServiceJsonConsts.VBYPASSES).getAsJsonArray();
 
                                responseJson = getResponseJsonArrayLogical(requestBody,
-                                               requestProcessor, responseGenerator,
-                                               responseArray, VtnServiceJsonConsts.VBYPASSES,
+                                               requestProcessor, responseGenerator, responseArray,
+                                               VtnServiceJsonConsts.VBYPASSES,
                                                VtnServiceJsonConsts.VBYPASS_NAME,
-                                               IpcRequestPacketEnum.KT_VUNKNOWN_GET,
-                                               uriParameterList,VtnServiceIpcConsts.GET_VBYPASS_RESPONSE);
+                                               IpcRequestPacketEnum.KT_VUNKNOWN_GET, uriParameterList,
+                                               VtnServiceIpcConsts.GET_VBYPASS_RESPONSE);
                        }
                        setInfo(responseJson);
                        LOG.debug("Response object created successfully");
                        LOG.debug("Complete Ipc framework call");
                } catch (final VtnServiceException e) {
                        getExceptionHandler()
-                       .raise(Thread.currentThread().getStackTrace()[1]
-                                       .getClassName()
-                                       + VtnServiceConsts.HYPHEN
-                                       + Thread.currentThread().getStackTrace()[1]
-                                                       .getMethodName(),
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR
-                                                       .getErrorMessage(), e);
+                                                                       .getErrorMessage(), e);
                        throw e;
                } finally {
                        if (status == ClientSession.RESP_FATAL) {
@@ -195,14 +204,15 @@ public class VBypassesResource extends AbstractResource {
                LOG.trace("Completed VBypassesResource#get()");
                return status;
        }
+
        /**
         * Add URI parameters to list
         * 
         * @return parameter list
         */
-       private List<String> getUriParameters(JsonObject requestBody) {
+       private List<String> getUriParameters(final JsonObject requestBody) {
                LOG.trace("Start VBypassesResource#getUriParameters()");
-               List<String> uriParameters = new ArrayList<String>();
+               final List<String> uriParameters = new ArrayList<String>();
                uriParameters.add(vtnName);
                if (requestBody != null && requestBody.has(VtnServiceJsonConsts.INDEX)) {
 
index 65e9cecadb87b302d01d15674bd077955378fcc6..9ff08140f9228b6ce15919544461531b5887b201 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -51,7 +51,7 @@ public class VLinkResource extends AbstractResource {
         * 
         * @return the vtn name
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
 
@@ -60,7 +60,7 @@ public class VLinkResource extends AbstractResource {
         * 
         * @return the vlk name
         */
-       public String getVlkName() {
+       public final String getVlkName() {
                return vlkName;
        }
 
@@ -89,7 +89,8 @@ public class VLinkResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int put(final JsonObject requestBody) throws VtnServiceException {
+       public final int put(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VLinkResource#put()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -145,7 +146,7 @@ public class VLinkResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("Start VLinkResource#delete()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -204,7 +205,8 @@ public class VLinkResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VLinkResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -222,14 +224,14 @@ public class VLinkResource extends AbstractResource {
                        requestProcessor.createIpcRequestPacket(
                                        IpcRequestPacketEnum.KT_VLINK_GET, requestBody,
                                        getUriParameters());
-                       IpcStruct valStruct = new IpcStruct(
+                       final IpcStruct valStruct = new IpcStruct(
                                        UncStructEnum.ValVlink.getValue());
                        requestProcessor.getRequestPacket().setValStruct(valStruct);
                        if (requestBody.get(VtnServiceJsonConsts.TARGETDB).getAsString()
                                        .equalsIgnoreCase(VtnServiceJsonConsts.STATE)) {
                                LOG.debug("Add ValVlinkSt in Request Packet");
-                               IpcDataUnit[] extraDataUnits = new IpcDataUnit[1];
-                               IpcStruct valStructSt = new IpcStruct(
+                               final IpcDataUnit[] extraDataUnits = new IpcDataUnit[1];
+                               final IpcStruct valStructSt = new IpcStruct(
                                                UncStructEnum.ValVlinkSt.getValue());
                                extraDataUnits[0] = valStructSt;
                                requestProcessor.getRequestPacket().setExtraDataUnits(
@@ -238,7 +240,7 @@ public class VLinkResource extends AbstractResource {
                        LOG.debug("Request packet created successfully");
                        status = requestProcessor.processIpcRequest();
                        LOG.debug("Request packet processed with status" + status);
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
                        setInfo(responseGenerator.getVLinkResponse(
                                        requestProcessor.getIpcResponsePacket(), requestBody,
                                        VtnServiceJsonConsts.SHOW));
@@ -276,7 +278,7 @@ public class VLinkResource extends AbstractResource {
         * 
         * @return parameter list
         */
-       private List<String> getUriParameters() {               
+       private List<String> getUriParameters() {
                LOG.trace("Start VLinkResource#getUriParameters()");
                final List<String> uriParameters = new ArrayList<String>();
                uriParameters.add(vtnName);
index 3a31cccc9b3ae22b2e9e1c2c066ad1e4dd1167a9..46074d0633a65c2a0bf429cc8ae2c8b18a8110c3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -55,7 +55,7 @@ public class VLinksResource extends AbstractResource {
         * 
         * @return the VTN name
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
 
@@ -81,7 +81,8 @@ public class VLinksResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int post(final JsonObject requestBody) throws VtnServiceException {
+       public final int post(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VLinksResource#post()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -140,7 +141,8 @@ public class VLinksResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VLinksResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -163,7 +165,7 @@ public class VLinksResource extends AbstractResource {
                        status = requestProcessor.processIpcRequest();
                        final List<String> uriParameterList = getUriParameters(requestBody);
                        LOG.debug("Request packet processed with status" + status);
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
                        /*
                         * setInfo(responseGenerator.getVLinkResponse(
                         * requestProcessor.getIpcResponsePacket(), requestBody,
@@ -173,14 +175,14 @@ public class VLinksResource extends AbstractResource {
                                        requestProcessor.getIpcResponsePacket(), requestBody,
                                        VtnServiceJsonConsts.LIST);
                        if (responseJson.get(VtnServiceJsonConsts.VLINKS).isJsonArray()) {
-                               JsonArray responseArray = responseJson.get(
+                               final JsonArray responseArray = responseJson.get(
                                                VtnServiceJsonConsts.VLINKS).getAsJsonArray();
                                responseJson = getResponseJsonArrayLink(requestBody,
-                        requestProcessor, responseGenerator,
-                        responseArray, VtnServiceJsonConsts.VLINKS,
-                        VtnServiceJsonConsts.VLKNAME,
-                        IpcRequestPacketEnum.KT_VLINK_GET,
-                        uriParameterList,VtnServiceIpcConsts.GET_VLINKS_RESPONSE);
+                                               requestProcessor, responseGenerator, responseArray,
+                                               VtnServiceJsonConsts.VLINKS,
+                                               VtnServiceJsonConsts.VLKNAME,
+                                               IpcRequestPacketEnum.KT_VLINK_GET, uriParameterList,
+                                               VtnServiceIpcConsts.GET_VLINKS_RESPONSE);
                        }
                        setInfo(responseJson);
                        LOG.debug("Response object created successfully");
@@ -213,8 +215,8 @@ public class VLinksResource extends AbstractResource {
        }
 
        private void getModifiedRequestPacket(final JsonObject requestBody,
-                       IpcRequestProcessor requestProcessor) {
-               IpcStruct valStruct = new IpcStruct(
+                       final IpcRequestProcessor requestProcessor) {
+               final IpcStruct valStruct = new IpcStruct(
                                UncStructEnum.ValVlink.getValue());
                requestProcessor.getRequestPacket().setValStruct(valStruct);
                if (requestBody.has(VtnServiceJsonConsts.VNODE1NAME)
@@ -230,10 +232,9 @@ public class VLinksResource extends AbstractResource {
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
                                valStruct.set(VtnServiceJsonConsts.VNODE1NAME,
-                                               IpcDataUnitWrapper
-                                                               .setIpcUint8ArrayValue(requestBody.get(
-                                                                               VtnServiceJsonConsts.VNODE1NAME)
-                                                                               .getAsString()));
+                                               IpcDataUnitWrapper.setIpcUint8ArrayValue(requestBody
+                                                               .get(VtnServiceJsonConsts.VNODE1NAME)
+                                                               .getAsString()));
                        }
                        if (requestBody.has(VtnServiceJsonConsts.VNODE2NAME)) {
                                valStruct
@@ -244,10 +245,9 @@ public class VLinksResource extends AbstractResource {
                                                                                .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
                                                                                                .ordinal()));
                                valStruct.set(VtnServiceJsonConsts.VNODE2NAME,
-                                               IpcDataUnitWrapper
-                                                               .setIpcUint8ArrayValue(requestBody.get(
-                                                                               VtnServiceJsonConsts.VNODE2NAME)
-                                                                               .getAsString()));
+                                               IpcDataUnitWrapper.setIpcUint8ArrayValue(requestBody
+                                                               .get(VtnServiceJsonConsts.VNODE2NAME)
+                                                               .getAsString()));
                        }
                }
                if (requestBody.get(VtnServiceJsonConsts.TARGETDB).getAsString()
@@ -255,8 +255,8 @@ public class VLinksResource extends AbstractResource {
                                && !requestBody.get(VtnServiceJsonConsts.OP).getAsString()
                                                .equalsIgnoreCase(VtnServiceJsonConsts.COUNT)) {
                        LOG.debug("Add ValVlinkSt to Request Packet");
-                       IpcDataUnit[] extraDataUnits = new IpcDataUnit[1];
-                       IpcStruct valStructSt = new IpcStruct(
+                       final IpcDataUnit[] extraDataUnits = new IpcDataUnit[1];
+                       final IpcStruct valStructSt = new IpcStruct(
                                        UncStructEnum.ValVlinkSt.getValue());
                        extraDataUnits[0] = valStructSt;
                        requestProcessor.getRequestPacket().setExtraDataUnits(
@@ -282,23 +282,23 @@ public class VLinksResource extends AbstractResource {
                LOG.trace("Completed VLinksResource#getUriParameters()");
                return uriParameters;
        }
-       
-       public JsonObject getResponseJsonArrayLink(final JsonObject requestBody,
-                       IpcRequestProcessor requestProcessor,
-                       Object responseGenerator, JsonArray responseArray,
-                       String JsonArrayName, String IndexName,
-                       IpcRequestPacketEnum requestPackeEnumName,
-                       List<String> uriParameters, String methodName)
-                                       throws VtnServiceException {
-               //session reset
-               requestProcessor.setServiceInfo(
-                               UncUPLLEnums.UPLL_IPC_SERVICE_NAME,
+
+       private final JsonObject getResponseJsonArrayLink(
+                       final JsonObject requestBody,
+                       final IpcRequestProcessor requestProcessor,
+                       final Object responseGenerator, final JsonArray responseArray,
+                       final String JsonArrayName, final String IndexName,
+                       final IpcRequestPacketEnum requestPackeEnumName,
+                       final List<String> uriParameters, final String methodName)
+                       throws VtnServiceException {
+               // session reset
+               requestProcessor.setServiceInfo(UncUPLLEnums.UPLL_IPC_SERVICE_NAME,
                                UncUPLLEnums.ServiceID.UPLL_READ_SVC_ID.ordinal());
                int status = ClientSession.RESP_FATAL;
                int memberIndex = 0;
-               VtnServiceConfiguration configuration = VtnServiceInitManager
+               final VtnServiceConfiguration configuration = VtnServiceInitManager
                                .getConfigurationMap();
-               int max_rep_count = Integer.parseInt(configuration
+               final int max_rep_count = Integer.parseInt(configuration
                                .getConfigValue(VtnServiceConsts.MAX_REP_DEFAULT));
                memberIndex = responseArray.size();
                if (memberIndex != 0) {
@@ -331,19 +331,19 @@ public class VLinksResource extends AbstractResource {
                                                                        + VtnServiceConsts.HYPHEN
                                                                        + Thread.currentThread().getStackTrace()[1]
                                                                                        .getMethodName(),
-                                                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
-                                                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorMessage());
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR
+                                                                       .getErrorMessage());
                                }
                                try {
                                        Method method;
 
-
                                        final Class<IpcLogicalResponseFactory> sourceClass = IpcLogicalResponseFactory.class;
                                        // get the method name to get the IpcLogicalResponseFactory
                                        // object for given key
                                        method = sourceClass.getMethod(methodName,
                                                        new Class<?>[] { IpcDataUnit[].class,
-                                                       JsonObject.class, String.class });
+                                                                       JsonObject.class, String.class });
                                        // get IpcLogicalResponseFactory object
                                        memberArray = ((JsonObject) method.invoke(
                                                        responseGenerator,
@@ -357,8 +357,9 @@ public class VLinksResource extends AbstractResource {
                                                                        + VtnServiceConsts.HYPHEN
                                                                        + Thread.currentThread().getStackTrace()[1]
                                                                                        .getMethodName(),
-                                                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
-                                                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorMessage());
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR
+                                                                       .getErrorMessage());
                                }
                                if (null != memberArray && !memberArray.isJsonNull()
                                                && memberArray.size() > 0) {
@@ -369,7 +370,7 @@ public class VLinksResource extends AbstractResource {
                                memberIndex = memberArray.size();
                        }
                }
-               JsonObject root = new JsonObject();
+               final JsonObject root = new JsonObject();
                root.add(JsonArrayName, responseArray);
                return root;
        }
index 56a3341dfed00737d7410f57f6278bfdb055aa89..e8c5d0b9c9ce9da81b0fcd2e40f565a00f9fcd6a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -38,7 +38,8 @@ import org.opendaylight.vtn.javaapi.validation.logical.VBridgeFlowFilterEntriesR
  * 
  */
 /* This class handles post and get methods */
-@UNCVtnService(path = "/vtns/{vtn_name}/vrouters/{vrt_name}/interfaces/{if_name}/flowfilters/{ff_type}/flowfilterentries")
+@UNCVtnService(
+               path = "/vtns/{vtn_name}/vrouters/{vrt_name}/interfaces/{if_name}/flowfilters/{ff_type}/flowfilterentries")
 public class VRouterInterfaceFlowFilterEntriesResource extends AbstractResource {
 
        /** The VTN name. */
@@ -72,28 +73,28 @@ public class VRouterInterfaceFlowFilterEntriesResource extends AbstractResource
        /**
         * @return the vtnName
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
 
        /**
         * @return the vrtName
         */
-       public String getVrtName() {
+       public final String getVrtName() {
                return vrtName;
        }
 
        /**
         * @return the ifName
         */
-       public String getIfName() {
+       public final String getIfName() {
                return ifName;
        }
 
        /**
         * @return the ffType
         */
-       public String getFfType() {
+       public final String getFfType() {
                return ffType;
        }
 
@@ -107,7 +108,8 @@ public class VRouterInterfaceFlowFilterEntriesResource extends AbstractResource
         * @throws VtnServiceException
         */
        @Override
-       public int post(final JsonObject requestBody) throws VtnServiceException {
+       public final int post(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VRouterInterfaceFlowFilterEntriesResource#post()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -167,7 +169,8 @@ public class VRouterInterfaceFlowFilterEntriesResource extends AbstractResource
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VRouterInterfaceFlowFilterEntriesResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -202,10 +205,14 @@ public class VRouterInterfaceFlowFilterEntriesResource extends AbstractResource
                                                        requestBody, VtnServiceJsonConsts.LIST);
                        if (responseJson.get(VtnServiceJsonConsts.FLOWFILTERENTRIES)
                                        .isJsonArray()) {
-                               JsonArray responseArray = responseJson.get(
-                                               VtnServiceJsonConsts.FLOWFILTERENTRIES).getAsJsonArray();
-                               responseJson = getResponseJsonArrayLogical(requestBody,
-                                               requestProcessor, responseGenerator, responseArray,
+                               final JsonArray responseArray = responseJson.get(
+                                               VtnServiceJsonConsts.FLOWFILTERENTRIES)
+                                               .getAsJsonArray();
+                               responseJson = getResponseJsonArrayLogical(
+                                               requestBody,
+                                               requestProcessor,
+                                               responseGenerator,
+                                               responseArray,
                                                VtnServiceJsonConsts.FLOWFILTERENTRIES,
                                                VtnServiceJsonConsts.SEQNUM,
                                                IpcRequestPacketEnum.KT_VRTIF_FLOWFILTER_ENTRY_GET,
index 593f1dd8e5976988bc2878bc970cecacce3a6f3d..04597505cba91ce56bf285fffa69d1077fe9b067 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -38,7 +38,8 @@ import org.opendaylight.vtn.javaapi.validation.logical.VBridgeFlowFilterEntryRes
  * 
  */
 
-@UNCVtnService(path = "/vtns/{vtn_name}/vrouters/{vrt_name}/interfaces/{if_name}/flowfilters/{ff_type}/flowfilterentries/{seqnum}")
+@UNCVtnService(
+               path = "/vtns/{vtn_name}/vrouters/{vrt_name}/interfaces/{if_name}/flowfilters/{ff_type}/flowfilterentries/{seqnum}")
 public class VRouterInterfaceFlowFilterEntryResource extends AbstractResource {
 
        /** The VTN name. */
@@ -59,8 +60,7 @@ public class VRouterInterfaceFlowFilterEntryResource extends AbstractResource {
 
        /** The Constant LOG. */
        private static final Logger LOG = Logger
-                       .getLogger(VRouterInterfaceFlowFilterEntryResource.class
-                                       .getName());
+                       .getLogger(VRouterInterfaceFlowFilterEntryResource.class.getName());
 
        /**
         * Instantiates a new v router interface flow filter entry resource.
@@ -77,7 +77,7 @@ public class VRouterInterfaceFlowFilterEntryResource extends AbstractResource {
         * 
         * @return the VTN name
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
 
@@ -86,7 +86,7 @@ public class VRouterInterfaceFlowFilterEntryResource extends AbstractResource {
         * 
         * @return the VRT name
         */
-       public String getVrtName() {
+       public final String getVrtName() {
                return vrtName;
        }
 
@@ -95,7 +95,7 @@ public class VRouterInterfaceFlowFilterEntryResource extends AbstractResource {
         * 
         * @return the if name
         */
-       public String getIfName() {
+       public final String getIfName() {
                return ifName;
        }
 
@@ -104,7 +104,7 @@ public class VRouterInterfaceFlowFilterEntryResource extends AbstractResource {
         * 
         * @return the FF type
         */
-       public String getFfType() {
+       public final String getFfType() {
                return ffType;
        }
 
@@ -113,7 +113,7 @@ public class VRouterInterfaceFlowFilterEntryResource extends AbstractResource {
         * 
         * @return the Sequence Number
         */
-       public String getSeqnum() {
+       public final String getSeqnum() {
                return seqnum;
        }
 
@@ -127,7 +127,8 @@ public class VRouterInterfaceFlowFilterEntryResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int put(final JsonObject requestBody) throws VtnServiceException {
+       public final int put(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VRouterInterfaceFlowFilterEntryResource#put()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -184,7 +185,7 @@ public class VRouterInterfaceFlowFilterEntryResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("Start VRouterInterfaceFlowFilterEntryResource#delete()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -243,7 +244,8 @@ public class VRouterInterfaceFlowFilterEntryResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VRouterInterfaceFlowFilterEntryResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
index 174e7245af7bad0fd00ed83b33c0de11d038a510..7e7ef01f13e668bf866de499f8b0f35b9f4840e9 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -35,7 +35,8 @@ import org.opendaylight.vtn.javaapi.validation.logical.FlowFilterResourceValidat
  * 
  */
 
-@UNCVtnService(path = "/vtns/{vtn_name}/vrouters/{vrt_name}/interfaces/{if_name}/flowfilters/{ff_type}")
+@UNCVtnService(
+               path = "/vtns/{vtn_name}/vrouters/{vrt_name}/interfaces/{if_name}/flowfilters/{ff_type}")
 public class VRouterInterfaceFlowFilterResource extends AbstractResource {
 
        /** The VTN name. */
@@ -68,28 +69,28 @@ public class VRouterInterfaceFlowFilterResource extends AbstractResource {
        /**
         * @return the vtnName
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
 
        /**
         * @return the vrtName
         */
-       public String getVrtName() {
+       public final String getVrtName() {
                return vrtName;
        }
 
        /**
         * @return the ifName
         */
-       public String getIfName() {
+       public final String getIfName() {
                return ifName;
        }
 
        /**
         * @return the ffType
         */
-       public String getFfType() {
+       public final String getFfType() {
                return ffType;
        }
 
@@ -101,7 +102,7 @@ public class VRouterInterfaceFlowFilterResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("Start VRouterInterfaceFlowFilterResource#delete()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -160,7 +161,8 @@ public class VRouterInterfaceFlowFilterResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VRouterInterfaceFlowFilterResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -181,7 +183,7 @@ public class VRouterInterfaceFlowFilterResource extends AbstractResource {
                        LOG.debug("Request packet created successfully");
                        status = requestProcessor.processIpcRequest();
                        LOG.debug("Request packet processed with status" + status);
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
                        setInfo(responseGenerator.getVRouterInterfaceFlowFilterResponse(
                                        requestProcessor.getIpcResponsePacket(), requestBody,
                                        VtnServiceJsonConsts.SHOW));
index 35ecac5b2020cc863efb6c7845d8d9b34f4daad5..01e7d3c68efc6c05abc03c84d32591d7a4d9b772 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -33,7 +33,8 @@ import org.opendaylight.vtn.javaapi.validation.logical.FlowFilterResourceValidat
  * 
  */
 
-@UNCVtnService(path = "/vtns/{vtn_name}/vrouters/{vrt_name}/interfaces/{if_name}/flowfilters")
+@UNCVtnService(
+               path = "/vtns/{vtn_name}/vrouters/{vrt_name}/interfaces/{if_name}/flowfilters")
 public class VRouterInterfaceFlowFiltersResource extends AbstractResource {
 
        /** The VTN name. */
@@ -48,8 +49,7 @@ public class VRouterInterfaceFlowFiltersResource extends AbstractResource {
 
        /** The Constant LOG. */
        private static final Logger LOG = Logger
-                       .getLogger(VRouterInterfaceFlowFiltersResource.class
-                                       .getName());
+                       .getLogger(VRouterInterfaceFlowFiltersResource.class.getName());
 
        /**
         * Instantiates a new v router interface flow filters resource.
@@ -64,21 +64,21 @@ public class VRouterInterfaceFlowFiltersResource extends AbstractResource {
        /**
         * @return the vtnName
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
 
        /**
         * @return the vrtName
         */
-       public String getVrtName() {
+       public final String getVrtName() {
                return vrtName;
        }
 
        /**
         * @return the ifName
         */
-       public String getIfName() {
+       public final String getIfName() {
                return ifName;
        }
 
@@ -92,7 +92,8 @@ public class VRouterInterfaceFlowFiltersResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int post(final JsonObject requestBody) throws VtnServiceException {
+       public final int post(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VRouterInterfaceFlowFiltersResource#post()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
index fe2b93a1d808a42fa9dece64c6b8aae51331b9f2..be02ef5ab4c33944e661698fcf2f3acc33d574a1 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -36,7 +36,8 @@ import org.opendaylight.vtn.javaapi.validation.logical.VRouterInterfaceResourceV
 /**
  * The Class VRouterInterfaceResource implements put, delete and get methods.
  */
-@UNCVtnService(path = "/vtns/{vtn_name}/vrouters/{vrt_name}/interfaces/{if_name}")
+@UNCVtnService(
+               path = "/vtns/{vtn_name}/vrouters/{vrt_name}/interfaces/{if_name}")
 public class VRouterInterfaceResource extends AbstractResource {
 
        /** The vtn name. */
@@ -54,21 +55,21 @@ public class VRouterInterfaceResource extends AbstractResource {
        /**
         * @return the vtnName
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
 
        /**
         * @return the vrtName
         */
-       public String getVrtName() {
+       public final String getVrtName() {
                return vrtName;
        }
 
        /**
         * @return the ifName
         */
-       public String getIfName() {
+       public final String getIfName() {
                return ifName;
        }
 
@@ -92,7 +93,7 @@ public class VRouterInterfaceResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("Start VRouterInterfaceResource#delete()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -152,7 +153,8 @@ public class VRouterInterfaceResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VRouterInterfaceResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -172,7 +174,8 @@ public class VRouterInterfaceResource extends AbstractResource {
                                        getUriParameters());
                        LOG.debug("Request Packet created successfully for 1st call");
                        status = requestProcessor.processIpcRequest();
-                       LOG.debug("Request packet processed for 1st call with status" + status);
+                       LOG.debug("Request packet processed for 1st call with status"
+                                       + status);
                        if (status == ClientSession.RESP_FATAL) {
                                throw new VtnServiceException(
                                                Thread.currentThread().getStackTrace()[1]
@@ -195,7 +198,8 @@ public class VRouterInterfaceResource extends AbstractResource {
                                        requestProcessor.getIpcResponsePacket(), requestBody,
                                        VtnServiceJsonConsts.SHOW);
                        LOG.debug("Response object created successfully for 1st request");
-                       if ((VtnServiceJsonConsts.STATE).equalsIgnoreCase(dataType) && !(vrtInterfaceJson.get(VtnServiceJsonConsts.INTERFACE) instanceof JsonNull)) {
+                       if ((VtnServiceJsonConsts.STATE).equalsIgnoreCase(dataType)
+                                       && !(vrtInterfaceJson.get(VtnServiceJsonConsts.INTERFACE) instanceof JsonNull)) {
                                requestProcessor.setServiceInfo(
                                                UncUPLLEnums.UPLL_IPC_SERVICE_NAME,
                                                UncUPLLEnums.ServiceID.UPLL_READ_SVC_ID.ordinal());
@@ -210,7 +214,8 @@ public class VRouterInterfaceResource extends AbstractResource {
                                                                                                .ordinal())));
                                LOG.debug("Request packet created successfully for 2nd call");
                                status = requestProcessor.processIpcRequest();
-                               LOG.debug("Request packet processed for 2nd call with status" + status);
+                               LOG.debug("Request packet processed for 2nd call with status"
+                                               + status);
                                neighbor = responseGenerator.getNeighborResponse(
                                                requestProcessor.getIpcResponsePacket(), requestBody,
                                                VtnServiceJsonConsts.SHOW);
@@ -258,7 +263,8 @@ public class VRouterInterfaceResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int put(final JsonObject requestBody) throws VtnServiceException {
+       public final int put(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VRouterInterfaceResource#put()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
index bbb322332f9cf28bc043279f8dfcb17ba01f1cb0..03f88c9fc52578bc48954eaceced4c1250b206a7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -54,14 +54,14 @@ public class VRouterInterfacesResource extends AbstractResource {
        /**
         * @return the vtnName
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
 
        /**
         * @return the vrtName
         */
-       public String getVrtName() {
+       public final String getVrtName() {
                return vrtName;
        }
 
@@ -88,7 +88,8 @@ public class VRouterInterfacesResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VRouterInterfacesResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -109,7 +110,8 @@ public class VRouterInterfacesResource extends AbstractResource {
                                        uriParameterList);
                        LOG.debug("Request Packet created successfully for 1st call");
                        status = requestProcessor.processIpcRequest();
-                       LOG.debug("Request packet processed for 1st call with status" + status);
+                       LOG.debug("Request packet processed for 1st call with status"
+                                       + status);
                        if (status == ClientSession.RESP_FATAL) {
                                throw new VtnServiceException(
                                                Thread.currentThread().getStackTrace()[1]
@@ -137,18 +139,18 @@ public class VRouterInterfacesResource extends AbstractResource {
                        vrtInterfacesJson = responseGenerator.getVRouterInterfaceResponse(
                                        requestProcessor.getIpcResponsePacket(), requestBody,
                                        VtnServiceJsonConsts.LIST);
-                       if (vrtInterfacesJson.get(VtnServiceJsonConsts.INTERFACES).isJsonArray()) {
-                               JsonArray responseArray = vrtInterfacesJson.get(
-                                               VtnServiceJsonConsts.INTERFACES)
-                                               .getAsJsonArray();
+                       if (vrtInterfacesJson.get(VtnServiceJsonConsts.INTERFACES)
+                                       .isJsonArray()) {
+                               final JsonArray responseArray = vrtInterfacesJson.get(
+                                               VtnServiceJsonConsts.INTERFACES).getAsJsonArray();
                                vrtInterfacesJson = getResponseJsonArrayLogical(requestBody,
-                        requestProcessor, responseGenerator,
-                        responseArray, VtnServiceJsonConsts.INTERFACES,
-                        VtnServiceJsonConsts.IFNAME,
-                        IpcRequestPacketEnum.KT_VRT_IF_GET,
-                        uriParameterList,VtnServiceIpcConsts.GET_VROUTER_INTERFACE_RESPONSE);
+                                               requestProcessor, responseGenerator, responseArray,
+                                               VtnServiceJsonConsts.INTERFACES,
+                                               VtnServiceJsonConsts.IFNAME,
+                                               IpcRequestPacketEnum.KT_VRT_IF_GET, uriParameterList,
+                                               VtnServiceIpcConsts.GET_VROUTER_INTERFACE_RESPONSE);
                        }
-                        LOG.debug("Response object created successfully for 1st request");
+                       LOG.debug("Response object created successfully for 1st request");
                        if ((VtnServiceJsonConsts.STATE).equalsIgnoreCase(dataType)
                                        && opType.equalsIgnoreCase(VtnServiceJsonConsts.DETAIL)) {
                                final Iterator<JsonElement> interfaceIterator = vrtInterfacesJson
@@ -179,7 +181,8 @@ public class VRouterInterfacesResource extends AbstractResource {
                                                                                                        .ordinal()));
                                        LOG.debug("Request packet created successfully for 2nd call");
                                        status = requestProcessor.processIpcRequest();
-                                       LOG.debug("Request packet processed for 2nd call with status" + status);
+                                       LOG.debug("Request packet processed for 2nd call with status"
+                                                       + status);
                                        neighbor = responseGenerator.getNeighborResponse(
                                                        requestProcessor.getIpcResponsePacket(),
                                                        requestBody, VtnServiceJsonConsts.SHOW);
@@ -231,7 +234,8 @@ public class VRouterInterfacesResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int post(final JsonObject requestBody) throws VtnServiceException {
+       public final int post(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VRouterInterfacesResource#post()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
index e82150ef34643399420433274cb1be27808290f1..a11377dd3ebcb7fffb69055e2dc39239e428e0bb 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -41,21 +41,24 @@ public class VRouterResource extends AbstractResource {
        /** The vrt name. */
        @UNCField("vrt_name")
        private String vrtName;
+
        /**
         * @return the vtnName
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
+
        /**
         * @return the vrtName
         */
-       public String getVrtName() {
+       public final String getVrtName() {
                return vrtName;
        }
 
        private static final Logger LOG = Logger.getLogger(VRouterResource.class
                        .getName());
+
        /**
         * Instantiates a new VRouter resource.
         */
@@ -65,6 +68,7 @@ public class VRouterResource extends AbstractResource {
                setValidator(new VRouterResourceValidator(this));
                LOG.trace("Complete VRouterResource#VRouterResource()");
        }
+
        /**
         * Implementation of delete method of VRouter
         * 
@@ -72,7 +76,7 @@ public class VRouterResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("Start VRouterResource#delete()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -120,6 +124,7 @@ public class VRouterResource extends AbstractResource {
                LOG.trace("Complete VRouterResource#delete()");
                return status;
        }
+
        /**
         * Implementation of get method of VRouter
         * 
@@ -130,7 +135,8 @@ public class VRouterResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VRouterResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -151,7 +157,7 @@ public class VRouterResource extends AbstractResource {
                        LOG.debug("Request Packet created successfully");
                        status = requestProcessor.processIpcRequest();
                        LOG.debug("Request packet processed with status" + status);
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
                        setInfo(responseGenerator.getVRouterResponse(
                                        requestProcessor.getIpcResponsePacket(), requestBody,
                                        VtnServiceJsonConsts.SHOW));
@@ -183,6 +189,7 @@ public class VRouterResource extends AbstractResource {
                LOG.trace("Complete VRoutersResource#get()");
                return status;
        }
+
        /**
         * Implementation of Put method of VRouter
         * 
@@ -193,7 +200,8 @@ public class VRouterResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int put(final JsonObject requestBody) throws VtnServiceException {
+       public final int put(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VRouterResource#put()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -241,6 +249,7 @@ public class VRouterResource extends AbstractResource {
                LOG.trace("Complete VRouterResource#put()");
                return status;
        }
+
        /**
         * Add URI parameters to list
         * 
index 913167852561cba7250d14daad63e0f6f060fbb2..616b4c43289f95e46a085957dcdbac265b89d2f2 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -56,7 +56,7 @@ public class VRoutersResource extends AbstractResource {
        /**
         * @return the vtnName
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
 
@@ -70,7 +70,8 @@ public class VRoutersResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int post(final JsonObject requestBody) throws VtnServiceException {
+       public final int post(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VRoutersResource#post()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -130,7 +131,8 @@ public class VRoutersResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VRoutersResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -152,7 +154,7 @@ public class VRoutersResource extends AbstractResource {
                        LOG.debug("Request Packet created successfully");
                        status = requestProcessor.processIpcRequest();
                        LOG.debug("Request packet processed with status" + status);
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
                        /*
                         * setInfo(responseGenerator.getVRouterResponse(
                         * requestProcessor.getIpcResponsePacket(), requestBody,
@@ -162,7 +164,7 @@ public class VRoutersResource extends AbstractResource {
                                        requestProcessor.getIpcResponsePacket(), requestBody,
                                        VtnServiceJsonConsts.LIST);
                        if (responseJson.get(VtnServiceJsonConsts.VROUTERS).isJsonArray()) {
-                               JsonArray responseArray = responseJson.get(
+                               final JsonArray responseArray = responseJson.get(
                                                VtnServiceJsonConsts.VROUTERS).getAsJsonArray();
                                responseJson = getResponseJsonArrayLogical(requestBody,
                                                requestProcessor, responseGenerator, responseArray,
index 2d605823cb719a573c9612abc225fdbae0f69d35..b8dc111ba863711f5911eb72b72c60c510d06d18 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -50,24 +50,28 @@ public class VTepGroupResource extends AbstractResource {
        private String vtepgroupName;
        private static final Logger LOG = Logger.getLogger(VTepGroupResource.class
                        .getSimpleName());
+
        public VTepGroupResource() {
                super();
                LOG.trace("Start VTepGroupResource#VTepGroupResource()");
                setValidator(new VTepGroupResourceValidator(this));
                LOG.trace("Complete VTepGroupResource#VTepGroupResource()");
        }
+
        /**
         * @return the vtnName
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
+
        /**
         * @return the vtepgroupName
         */
-       public String getVtepgroupName() {
+       public final String getVtepgroupName() {
                return vtepgroupName;
        }
+
        /**
         * Implementation of Put method of VTepGroup API
         * 
@@ -78,7 +82,8 @@ public class VTepGroupResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int put(final JsonObject requestBody) throws VtnServiceException {
+       public final int put(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts VTepGroupResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -86,11 +91,12 @@ public class VTepGroupResource extends AbstractResource {
                int status = ClientSession.RESP_FATAL;
                final JsonObject getRequestBody = new JsonObject();
                // pending query for the same will update once query will be resolved
-               getRequestBody.addProperty(VtnServiceJsonConsts.TARGETDB, VtnServiceJsonConsts.STATE);
+               getRequestBody.addProperty(VtnServiceJsonConsts.TARGETDB,
+                               VtnServiceJsonConsts.STATE);
                status = get(getRequestBody);
                LOG.debug("Request packet processed with status" + status);
                if (status == VtnServiceConsts.RESPONSE_SUCCESS) {
-                       JsonObject root = getInfo();
+                       final JsonObject root = getInfo();
                        try {
                                LOG.debug("Start Ipc framework call");
                                // Deleting all the member data.
@@ -121,8 +127,9 @@ public class VTepGroupResource extends AbstractResource {
                                                        for (final JsonElement jsonElement : vTepGroupMemberArray) {
                                                                status = ClientSession.RESP_FATAL;
                                                                requestProcessor.setServiceInfo(
-                                                                       UncUPLLEnums.UPLL_IPC_SERVICE_NAME,
-                                                                       UncUPLLEnums.ServiceID.UPLL_EDIT_SVC_ID.ordinal());
+                                                                               UncUPLLEnums.UPLL_IPC_SERVICE_NAME,
+                                                                               UncUPLLEnums.ServiceID.UPLL_EDIT_SVC_ID
+                                                                                               .ordinal());
                                                                requestProcessor
                                                                                .createIpcRequestPacket(
                                                                                                IpcRequestPacketEnum.KT_VTEP_GRP_MEMBER_DELETE,
@@ -132,7 +139,8 @@ public class VTepGroupResource extends AbstractResource {
                                                                ipcRollback.pushIpcPacket(requestProcessor
                                                                                .getRequestPacket());
                                                                status = requestProcessor.processIpcRequest();
-                                                               LOG.debug("Request packet processed with status" + status);
+                                                               LOG.debug("Request packet processed with status"
+                                                                               + status);
                                                                if (status == ClientSession.RESP_FATAL) {
                                                                        ipcRollback
                                                                                        .rollBackIpcRequest(requestProcessor);
@@ -144,7 +152,7 @@ public class VTepGroupResource extends AbstractResource {
                                }
                                LOG.debug("Deletion of member data finished successfully..");
                                // creating Data members along with VtepGroup
-                               //status = ClientSession.RESP_FATAL;
+                               // status = ClientSession.RESP_FATAL;
                                if (null != requestBody
                                                && requestBody.has(VtnServiceJsonConsts.VTEPGROUP)) {
                                        vTepGroup = requestBody
@@ -159,12 +167,13 @@ public class VTepGroupResource extends AbstractResource {
                                        final JsonArray vTepGroupMemberArray = vTepGroup.get(
                                                        VtnServiceJsonConsts.VTEPGROUPMEMBERNAME)
                                                        .getAsJsonArray();
-                                       if (vTepGroupMemberArray.size() > 0) {                                          
+                                       if (vTepGroupMemberArray.size() > 0) {
                                                for (final JsonElement jsonElement : vTepGroupMemberArray) {
                                                        status = ClientSession.RESP_FATAL;
                                                        requestProcessor.setServiceInfo(
-                                                               UncUPLLEnums.UPLL_IPC_SERVICE_NAME,
-                                                               UncUPLLEnums.ServiceID.UPLL_EDIT_SVC_ID.ordinal());
+                                                                       UncUPLLEnums.UPLL_IPC_SERVICE_NAME,
+                                                                       UncUPLLEnums.ServiceID.UPLL_EDIT_SVC_ID
+                                                                                       .ordinal());
                                                        requestProcessor
                                                                        .createIpcRequestPacket(
                                                                                        IpcRequestPacketEnum.KT_VTEP_GRP_MEMBER_CREATE,
@@ -174,7 +183,8 @@ public class VTepGroupResource extends AbstractResource {
                                                                        .getRequestPacket());
                                                        LOG.debug("Request packet created successfully");
                                                        status = requestProcessor.processIpcRequest();
-                                                       LOG.debug("Request packet processed with status" + status);
+                                                       LOG.debug("Request packet processed with status"
+                                                                       + status);
                                                        if (status == ClientSession.RESP_FATAL) {
                                                                ipcRollback
                                                                                .rollBackIpcRequest(requestProcessor);
@@ -215,6 +225,7 @@ public class VTepGroupResource extends AbstractResource {
                setInfo(null);
                return status;
        }
+
        /**
         * Implementation of Delete method of VTep Group Resource API
         * 
@@ -222,7 +233,7 @@ public class VTepGroupResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("starts VTepGroupResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -271,6 +282,7 @@ public class VTepGroupResource extends AbstractResource {
                LOG.trace("Completed VTepGroupResource#delete()");
                return status;
        }
+
        /**
         * Implementation of get method of Vtep group Interface API
         * 
@@ -281,7 +293,8 @@ public class VTepGroupResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("starts VTepGroupResource#get()");
                ClientSession session = null;
                final JsonObject root = new JsonObject();
@@ -302,7 +315,8 @@ public class VTepGroupResource extends AbstractResource {
                                        getUriParameters(requestBody));
                        LOG.debug("Request packet created successfully");
                        status = requestProcessor.processIpcRequest();
-                       LOG.debug("Request packet processed for 1st call with status" + status);
+                       LOG.debug("Request packet processed for 1st call with status"
+                                       + status);
                        if (status == ClientSession.RESP_FATAL) {
                                throw new VtnServiceException(
                                                Thread.currentThread().getStackTrace()[1]
@@ -313,11 +327,11 @@ public class VTepGroupResource extends AbstractResource {
                                                UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
                                                UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorMessage());
                        }
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
                        JsonObject vtepGroup = responseGenerator.getVTepGroupResponse(
                                        requestProcessor.getIpcResponsePacket(), requestBody,
                                        VtnServiceJsonConsts.SHOW);
-                       if(!(vtepGroup.get(VtnServiceJsonConsts.VTEPGROUP) instanceof JsonNull)){
+                       if (!(vtepGroup.get(VtnServiceJsonConsts.VTEPGROUP) instanceof JsonNull)) {
                                requestProcessor.setServiceInfo(
                                                UncUPLLEnums.UPLL_IPC_SERVICE_NAME,
                                                UncUPLLEnums.ServiceID.UPLL_READ_SVC_ID.ordinal());
@@ -351,9 +365,9 @@ public class VTepGroupResource extends AbstractResource {
                                                                requestProcessor.getIpcResponsePacket(),
                                                                vtepGroup
                                                                                .getAsJsonObject(VtnServiceJsonConsts.VTEPGROUP));
-                               JsonArray memberJsonArray = vtepGroup
+                               final JsonArray memberJsonArray = vtepGroup
                                                .getAsJsonArray(VtnServiceJsonConsts.MEMBERVTEPS);
-                               VtnServiceConfiguration configuration = VtnServiceInitManager
+                               final VtnServiceConfiguration configuration = VtnServiceInitManager
                                                .getConfigurationMap();
                                final int max_rep_count = Integer.parseInt(configuration
                                                .getConfigValue(VtnServiceConsts.MAX_REP_DEFAULT));
@@ -361,7 +375,7 @@ public class VTepGroupResource extends AbstractResource {
                                if (memberJsonArray.size() >= max_rep_count) {
                                        while (memberIndex >= max_rep_count) {
                                                memberIndex = memberJsonArray.size();
-                                               JsonObject memberJson = (JsonObject) vtepGroup
+                                               final JsonObject memberJson = (JsonObject) vtepGroup
                                                                .getAsJsonArray(
                                                                                VtnServiceJsonConsts.MEMBERVTEPS).get(
                                                                                memberIndex - 1);
@@ -394,7 +408,7 @@ public class VTepGroupResource extends AbstractResource {
                        } else {
                                setInfo(vtepGroup);
                        }
-                       
+
                        LOG.debug("Response object created successfully");
                        LOG.debug("Complete Ipc framework call");
                } catch (final VtnServiceException e) {
index 6fc84ab064c5d6c4f27916af1319cb0b159533f4..fc9a8b23d97741dfb1eec226924ea5e5461c0386 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -49,18 +49,21 @@ public class VTepGroupsResource extends AbstractResource {
        private String vtnName;
        private static final Logger LOG = Logger.getLogger(VTepGroupsResource.class
                        .getSimpleName());
+
        public VTepGroupsResource() {
                super();
                LOG.trace("Start VTepGroupsResource#VTunnelsResource()");
                setValidator(new VTepGroupResourceValidator(this));
                LOG.trace("Complete VTepGroupsResource#VTunnelsResource()");
        }
+
        /**
         * @return the vtnName
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
+
        /**
         * Implementation of Post method of VTepGroup API
         * 
@@ -71,7 +74,8 @@ public class VTepGroupsResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int post(final JsonObject requestBody) throws VtnServiceException {
+       public final int post(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("starts VTepGroupResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -116,10 +120,10 @@ public class VTepGroupsResource extends AbstractResource {
                                                .get(VtnServiceJsonConsts.VTEPGROUPMEMBERNAME)
                                                .getAsJsonArray();
                                if (vTepGroupMemberArray.size() > 0) {
-                               requestProcessor.setServiceInfo(
-                                               UncUPLLEnums.UPLL_IPC_SERVICE_NAME,
-                                               UncUPLLEnums.ServiceID.UPLL_EDIT_SVC_ID.ordinal());
-                                               
+                                       requestProcessor.setServiceInfo(
+                                                       UncUPLLEnums.UPLL_IPC_SERVICE_NAME,
+                                                       UncUPLLEnums.ServiceID.UPLL_EDIT_SVC_ID.ordinal());
+
                                        for (final JsonElement jsonElement : vTepGroupMemberArray) {
                                                requestBody.add(
                                                                VtnServiceJsonConsts.INDEX,
@@ -168,6 +172,7 @@ public class VTepGroupsResource extends AbstractResource {
                LOG.trace("Completed VTepGroupsResource#create()");
                return status;
        }
+
        /**
         * Implementation of Get method of VTepGroup API
         * 
@@ -178,7 +183,8 @@ public class VTepGroupsResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VTepGroupResource#get()");
                ClientSession session = null;
                JsonObject root = new JsonObject();
@@ -206,7 +212,8 @@ public class VTepGroupsResource extends AbstractResource {
                                opType = requestBody.get(VtnServiceJsonConsts.OP).getAsString();
                        }
                        status = requestProcessor.processIpcRequest();
-                       LOG.debug("Request packet processed for 1st call with status" + status);
+                       LOG.debug("Request packet processed for 1st call with status"
+                                       + status);
                        if (status == ClientSession.RESP_FATAL) {
                                throw new VtnServiceException(
                                                Thread.currentThread().getStackTrace()[1]
@@ -217,28 +224,30 @@ public class VTepGroupsResource extends AbstractResource {
                                                UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
                                                UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorMessage());
                        }
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
-                       JsonObject VtepGrp = responseGenerator.getVTepGroupResponse(
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       final JsonObject VtepGrp = responseGenerator.getVTepGroupResponse(
                                        requestProcessor.getIpcResponsePacket(), requestBody,
                                        VtnServiceJsonConsts.LIST);
-                                       
-                       requestProcessor.setServiceInfo(
-                                               UncUPLLEnums.UPLL_IPC_SERVICE_NAME,
-                                               UncUPLLEnums.ServiceID.UPLL_READ_SVC_ID.ordinal());
-                                               
+
+                       requestProcessor.setServiceInfo(UncUPLLEnums.UPLL_IPC_SERVICE_NAME,
+                                       UncUPLLEnums.ServiceID.UPLL_READ_SVC_ID.ordinal());
+
                        JsonArray vTepGroupArr = null;
 
                        if (VtnServiceJsonConsts.DETAIL.equalsIgnoreCase(opType)) {
-                               Iterator<JsonElement> vtepGrpItr = VtepGrp.getAsJsonArray(
-                                               VtnServiceJsonConsts.VTEPGROUPS).iterator();
+                               final Iterator<JsonElement> vtepGrpItr = VtepGrp
+                                               .getAsJsonArray(VtnServiceJsonConsts.VTEPGROUPS)
+                                               .iterator();
                                vTepGroupArr = new JsonArray();
-                               VtnServiceConfiguration configuration = VtnServiceInitManager
+                               final VtnServiceConfiguration configuration = VtnServiceInitManager
                                                .getConfigurationMap();
                                final int max_rep_count = Integer.parseInt(configuration
                                                .getConfigValue(VtnServiceConsts.MAX_REP_DEFAULT));
                                while (vtepGrpItr.hasNext()) {
                                        JsonObject vTepGroup = (JsonObject) vtepGrpItr.next();
-                                       requestBody.addProperty(VtnServiceJsonConsts.INDEX,vTepGroup.get(VtnServiceJsonConsts.VTEPGROUPNAME).getAsString());
+                                       requestBody.addProperty(VtnServiceJsonConsts.INDEX,
+                                                       vTepGroup.get(VtnServiceJsonConsts.VTEPGROUPNAME)
+                                                                       .getAsString());
                                        requestProcessor.createIpcRequestPacket(
                                                        IpcRequestPacketEnum.KT_VTEP_GRP_MEMBER_GET,
                                                        requestBody, getUriParameters(requestBody));
@@ -250,16 +259,17 @@ public class VTepGroupsResource extends AbstractResource {
                                                                                        .setIpcUint32Value(UncOperationEnum.UNC_OP_READ_SIBLING_BEGIN
                                                                                                        .ordinal()));
                                        status = requestProcessor.processIpcRequest();
-                                       LOG.debug("Request packet processed for 2nd call with status" + status);
+                                       LOG.debug("Request packet processed for 2nd call with status"
+                                                       + status);
                                        vTepGroup = responseGenerator.getVtepGroupMembers(
                                                        requestProcessor.getIpcResponsePacket(), vTepGroup);
-                                       JsonArray memberJsonArray = vTepGroup
+                                       final JsonArray memberJsonArray = vTepGroup
                                                        .getAsJsonArray(VtnServiceJsonConsts.MEMBERVTEPS);
                                        if (memberJsonArray.size() >= max_rep_count) {
                                                int memberIndex = memberJsonArray.size();
                                                while (memberIndex >= max_rep_count) {
                                                        memberIndex = memberJsonArray.size();
-                                                       JsonObject memberJson = (JsonObject) vTepGroup
+                                                       final JsonObject memberJson = (JsonObject) vTepGroup
                                                                        .getAsJsonArray(
                                                                                        VtnServiceJsonConsts.MEMBERVTEPS)
                                                                        .get(memberIndex - 1);
@@ -330,6 +340,7 @@ public class VTepGroupsResource extends AbstractResource {
                LOG.trace("Completed VTepGroupsResource#get()");
                return status;
        }
+
        /**
         * Add URI parameters to list
         * 
index afe80ba78db18ed9ad37514c3cf15482399f9f96..452a7c65bbf9a03135a916bbcc7e297443d787f7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -31,11 +31,13 @@ import org.opendaylight.vtn.javaapi.resources.AbstractResource;
 import org.opendaylight.vtn.javaapi.validation.logical.PortMapResourceValidator;
 
 /**
- * The Class VTepInterfacePortMapResource implements delete, put and get methods.
- *
+ * The Class VTepInterfacePortMapResource implements delete, put and get
+ * methods.
+ * 
  */
 
-@UNCVtnService(path = "/vtns/{vtn_name}/vteps/{vtep_name}/interfaces/{if_name}/portmap")
+@UNCVtnService(
+               path = "/vtns/{vtn_name}/vteps/{vtep_name}/interfaces/{if_name}/portmap")
 public class VTepInterfacePortMapResource extends AbstractResource {
        /** The vtn name. */
        @UNCField("vtn_name")
@@ -48,31 +50,36 @@ public class VTepInterfacePortMapResource extends AbstractResource {
        private String ifName;
 
        /** The Constant LOG. */
-       private static final Logger LOG = Logger.getLogger(VTepInterfacePortMapResource.class.getSimpleName());
+       private static final Logger LOG = Logger
+                       .getLogger(VTepInterfacePortMapResource.class.getSimpleName());
+
        /**
         * Gets the vtn name.
-        *
+        * 
         * @return the vtn name
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
+
        /**
         * Gets the vbr name.
-        *
+        * 
         * @return the vbr name
         */
-       public String getVtepName() {
+       public final String getVtepName() {
                return vtepName;
        }
+
        /**
         * Gets the if name.
-        *
+        * 
         * @return the if name
         */
-       public String getIfName() {
+       public final String getIfName() {
                return ifName;
        }
+
        /**
         * Instantiates a new port map resource.
         */
@@ -90,32 +97,43 @@ public class VTepInterfacePortMapResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("Start VTepInterfacePortMapResource#delete()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
                int status = ClientSession.RESP_FATAL;
                try {
-                       session = getConnPool().getSession(UncUPLLEnums.UPLL_IPC_CHANNEL_NAME,UncUPLLEnums.UPLL_IPC_SERVICE_NAME,UncUPLLEnums.ServiceID.UPLL_EDIT_SVC_ID.ordinal(),getExceptionHandler());
+                       session = getConnPool().getSession(
+                                       UncUPLLEnums.UPLL_IPC_CHANNEL_NAME,
+                                       UncUPLLEnums.UPLL_IPC_SERVICE_NAME,
+                                       UncUPLLEnums.ServiceID.UPLL_EDIT_SVC_ID.ordinal(),
+                                       getExceptionHandler());
                        LOG.debug("Session created successfully");
-                       requestProcessor = new IpcRequestProcessor(session, getSessionID(), getConfigID(),getExceptionHandler());
-                       requestProcessor.createIpcRequestPacket(IpcRequestPacketEnum.KT_VTEP_IF_UPDATE,getNullJsonObject(),getUriParameters());
+                       requestProcessor = new IpcRequestProcessor(session, getSessionID(),
+                                       getConfigID(), getExceptionHandler());
+                       requestProcessor.createIpcRequestPacket(
+                                       IpcRequestPacketEnum.KT_VTEP_IF_UPDATE,
+                                       getNullJsonObject(), getUriParameters());
                        LOG.debug("Request packet created successfully");
-                       status= requestProcessor.processIpcRequest();
+                       status = requestProcessor.processIpcRequest();
                } catch (final VtnServiceException e) {
-                       getExceptionHandler().raise(
-                                       Thread.currentThread().getStackTrace()[1].getClassName()
-                                       + VtnServiceConsts.HYPHEN
-                                       + Thread.currentThread().getStackTrace()[1].getMethodName(),
-                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
-                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorMessage(), e);
+                       getExceptionHandler()
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR
+                                                                       .getErrorMessage(), e);
                        throw e;
                } finally {
                        if (status == ClientSession.RESP_FATAL) {
-                               if(null != requestProcessor.getErrorJson()){
+                               if (null != requestProcessor.getErrorJson()) {
                                        setInfo(requestProcessor.getErrorJson());
                                } else {
-                                       createErrorInfo(UncCommonEnum.UncResultCode.UNC_SERVER_ERROR.getValue());
+                                       createErrorInfo(UncCommonEnum.UncResultCode.UNC_SERVER_ERROR
+                                                       .getValue());
                                }
                                status = UncResultCode.UNC_SERVER_ERROR.getValue();
                        }
@@ -124,45 +142,62 @@ public class VTepInterfacePortMapResource extends AbstractResource {
                LOG.trace("Complete VTepInterfacePortMapResource#delete()");
                return status;
        }
+
        /**
         * Implementation of get method of VTep Interface PortMap API
         * 
-        * @param requestBody the request Json object
+        * @param requestBody
+        *            the request Json object
         * 
         * @return Error code
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VTepInterfacePortMapResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
                int status = ClientSession.RESP_FATAL;
                try {
-                       session = getConnPool().getSession(UncUPLLEnums.UPLL_IPC_CHANNEL_NAME,UncUPLLEnums.UPLL_IPC_SERVICE_NAME,UncUPLLEnums.ServiceID.UPLL_READ_SVC_ID.ordinal(),getExceptionHandler());
+                       session = getConnPool().getSession(
+                                       UncUPLLEnums.UPLL_IPC_CHANNEL_NAME,
+                                       UncUPLLEnums.UPLL_IPC_SERVICE_NAME,
+                                       UncUPLLEnums.ServiceID.UPLL_READ_SVC_ID.ordinal(),
+                                       getExceptionHandler());
                        LOG.debug("Session created successfully");
-                       requestProcessor = new IpcRequestProcessor(session, getSessionID(), getConfigID(),getExceptionHandler());
-                       requestProcessor.createIpcRequestPacket(IpcRequestPacketEnum.KT_VTEP_IF_GET, requestBody,getUriParameters());
+                       requestProcessor = new IpcRequestProcessor(session, getSessionID(),
+                                       getConfigID(), getExceptionHandler());
+                       requestProcessor.createIpcRequestPacket(
+                                       IpcRequestPacketEnum.KT_VTEP_IF_GET, requestBody,
+                                       getUriParameters());
                        LOG.debug("Request Packet created successfully");
-                       status= requestProcessor.processIpcRequest();
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
-                       setInfo(responseGenerator.getPortMapResponse(requestProcessor.getIpcResponsePacket(),requestBody,VtnServiceJsonConsts.SHOW,VtnServiceJsonConsts.VTEP_INTERFACE_PORTMAP));
+                       status = requestProcessor.processIpcRequest();
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       setInfo(responseGenerator.getPortMapResponse(
+                                       requestProcessor.getIpcResponsePacket(), requestBody,
+                                       VtnServiceJsonConsts.SHOW,
+                                       VtnServiceJsonConsts.VTEP_INTERFACE_PORTMAP));
                        LOG.debug("response object created successfully");
                        LOG.debug("Ipc framework call complete");
                } catch (final VtnServiceException e) {
-                       getExceptionHandler().raise(
-                                       Thread.currentThread().getStackTrace()[1].getClassName()
-                                       + VtnServiceConsts.HYPHEN
-                                       + Thread.currentThread().getStackTrace()[1].getMethodName(),
-                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
-                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorMessage(), e);
+                       getExceptionHandler()
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR
+                                                                       .getErrorMessage(), e);
                        throw e;
                } finally {
                        if (status == ClientSession.RESP_FATAL) {
-                               if(null != requestProcessor.getErrorJson()){
+                               if (null != requestProcessor.getErrorJson()) {
                                        setInfo(requestProcessor.getErrorJson());
                                } else {
-                                       createErrorInfo(UncCommonEnum.UncResultCode.UNC_SERVER_ERROR.getValue());
+                                       createErrorInfo(UncCommonEnum.UncResultCode.UNC_SERVER_ERROR
+                                                       .getValue());
                                }
                                status = UncResultCode.UNC_SERVER_ERROR.getValue();
                        }
@@ -175,38 +210,51 @@ public class VTepInterfacePortMapResource extends AbstractResource {
        /**
         * Implementation of Put method of PortMap API
         * 
-        * @param requestBody the request Json object
+        * @param requestBody
+        *            the request Json object
         * 
         * @return Error code
         * @throws VtnServiceException
         */
        @Override
-       public int put(final JsonObject requestBody) throws VtnServiceException {
+       public final int put(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VTepInterfacePortMapResource#put()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
                int status = ClientSession.RESP_FATAL;
                try {
-                       session = getConnPool().getSession(UncUPLLEnums.UPLL_IPC_CHANNEL_NAME,UncUPLLEnums.UPLL_IPC_SERVICE_NAME,UncUPLLEnums.ServiceID.UPLL_EDIT_SVC_ID.ordinal(),getExceptionHandler());
+                       session = getConnPool().getSession(
+                                       UncUPLLEnums.UPLL_IPC_CHANNEL_NAME,
+                                       UncUPLLEnums.UPLL_IPC_SERVICE_NAME,
+                                       UncUPLLEnums.ServiceID.UPLL_EDIT_SVC_ID.ordinal(),
+                                       getExceptionHandler());
                        LOG.debug("Session created successfully");
-                       requestProcessor = new IpcRequestProcessor(session, getSessionID(), getConfigID(),getExceptionHandler());
-                       requestProcessor.createIpcRequestPacket(IpcRequestPacketEnum.KT_VTEP_IF_UPDATE, requestBody,getUriParameters());
+                       requestProcessor = new IpcRequestProcessor(session, getSessionID(),
+                                       getConfigID(), getExceptionHandler());
+                       requestProcessor.createIpcRequestPacket(
+                                       IpcRequestPacketEnum.KT_VTEP_IF_UPDATE, requestBody,
+                                       getUriParameters());
                        LOG.debug("Request Packet created successfully");
                        status = requestProcessor.processIpcRequest();
-               }catch (final VtnServiceException e) {
-                       getExceptionHandler().raise(
-                                       Thread.currentThread().getStackTrace()[1].getClassName()
-                                       + VtnServiceConsts.HYPHEN
-                                       + Thread.currentThread().getStackTrace()[1].getMethodName(),
-                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
-                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorMessage(), e);
+               } catch (final VtnServiceException e) {
+                       getExceptionHandler()
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR
+                                                                       .getErrorMessage(), e);
                        throw e;
                } finally {
                        if (status == ClientSession.RESP_FATAL) {
-                               if(null != requestProcessor.getErrorJson()){
+                               if (null != requestProcessor.getErrorJson()) {
                                        setInfo(requestProcessor.getErrorJson());
                                } else {
-                                       createErrorInfo(UncCommonEnum.UncResultCode.UNC_SERVER_ERROR.getValue());
+                                       createErrorInfo(UncCommonEnum.UncResultCode.UNC_SERVER_ERROR
+                                                       .getValue());
                                }
                                status = UncResultCode.UNC_SERVER_ERROR.getValue();
                        }
@@ -215,8 +263,10 @@ public class VTepInterfacePortMapResource extends AbstractResource {
                LOG.trace("Complete VTepInterfacePortMapResource#put()");
                return status;
        }
+
        /**
         * Add URI parameters to list
+        * 
         * @return
         */
        private List<String> getUriParameters() {
index d7ece95290be382e1945dd593ea4048a19c4de20..ca6c01bdf93fc6606bf0bffd764574d22bbddcaa 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -47,30 +47,34 @@ public class VTepInterfaceResource extends AbstractResource {
        /** The if name. */
        @UNCField("if_name")
        private String ifName;
+
        /**
         * Gets the vtn name.
         * 
         * @return the vtn name
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
+
        /**
         * Gets the v tep name.
         * 
         * @return the v tep name
         */
-       public String getvTepName() {
+       public final String getvTepName() {
                return vTepName;
        }
+
        /**
         * Gets the if name.
         * 
         * @return the if name
         */
-       public String getIfName() {
+       public final String getIfName() {
                return ifName;
        }
+
        /** The Constant LOG. */
        private static final Logger LOG = Logger
                        .getLogger(VTepInterfaceResource.class.getName());
@@ -84,6 +88,7 @@ public class VTepInterfaceResource extends AbstractResource {
                setValidator(new InterfaceResourceValidator(this));
                LOG.trace("Completed VTepInterfaceResource#VTepInterfaceResource()");
        }
+
        /**
         * Implementation of Put method of VtepInterface API
         * 
@@ -94,7 +99,8 @@ public class VTepInterfaceResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int put(final JsonObject requestBody) throws VtnServiceException {
+       public final int put(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VTepInterfaceResource#put()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -142,6 +148,7 @@ public class VTepInterfaceResource extends AbstractResource {
                LOG.trace("Completed VTepInterfaceResource#put()");
                return status;
        }
+
        /**
         * Implementation of Delete method of VtepInterface API
         * 
@@ -150,7 +157,7 @@ public class VTepInterfaceResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("Start VTepInterfaceResource#delete()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -198,6 +205,7 @@ public class VTepInterfaceResource extends AbstractResource {
                LOG.trace("Complete VTepInterfaceResource#delete()");
                return status;
        }
+
        /**
         * Implementation of Get method of VtepInterface API
         * 
@@ -208,7 +216,8 @@ public class VTepInterfaceResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VTepInterfaceResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -235,7 +244,8 @@ public class VTepInterfaceResource extends AbstractResource {
                                        getUriParameters());
                        LOG.debug("Request packet created successfully for 1st call");
                        status = requestProcessor.processIpcRequest();
-                       LOG.debug("Request packet processed for 1st call with status" + status);
+                       LOG.debug("Request packet processed for 1st call with status"
+                                       + status);
                        if (status == ClientSession.RESP_FATAL) {
                                throw new VtnServiceException(
                                                Thread.currentThread().getStackTrace()[1]
@@ -246,13 +256,14 @@ public class VTepInterfaceResource extends AbstractResource {
                                                UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
                                                UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorMessage());
                        }
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
                        vtepInterfaceJson = responseGenerator.getVTepInterfaceResponse(
                                        requestProcessor.getIpcResponsePacket(), requestBody,
                                        VtnServiceJsonConsts.SHOW);
                        LOG.debug("Complete Ipc framework call one");
                        // Condition check for second call
-                       if ((VtnServiceJsonConsts.STATE).equalsIgnoreCase(dataType) && !(vtepInterfaceJson.get(VtnServiceJsonConsts.INTERFACE) instanceof JsonNull)) {
+                       if ((VtnServiceJsonConsts.STATE).equalsIgnoreCase(dataType)
+                                       && !(vtepInterfaceJson.get(VtnServiceJsonConsts.INTERFACE) instanceof JsonNull)) {
                                requestProcessor.setServiceInfo(
                                                UncUPLLEnums.UPLL_IPC_SERVICE_NAME,
                                                UncUPLLEnums.ServiceID.UPLL_READ_SVC_ID.ordinal());
@@ -267,7 +278,8 @@ public class VTepInterfaceResource extends AbstractResource {
                                                                                .setIpcUint32Value((UncOption2Enum.UNC_OPT2_NEIGHBOR
                                                                                                .ordinal())));
                                status = requestProcessor.processIpcRequest();
-                               LOG.debug("Request packet processed for 2nd call with status" + status);
+                               LOG.debug("Request packet processed for 2nd call with status"
+                                               + status);
                                neighbor = responseGenerator.getNeighborResponse(
                                                requestProcessor.getIpcResponsePacket(), requestBody,
                                                VtnServiceJsonConsts.SHOW);
@@ -305,6 +317,7 @@ public class VTepInterfaceResource extends AbstractResource {
                LOG.trace("Completed VTepInterfaceResource#get()");
                return status;
        }
+
        /**
         * Add URI parameters to list
         * 
index f20b00aa89818c070dc8024aecd54e44ecda0f23..54282c5cc0a5072a25ccbaff890f2c83d7533d7b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -48,25 +48,29 @@ public class VTepInterfacesResource extends AbstractResource {
        /** The VTEP name. */
        @UNCField("vtep_name")
        private String vTepName;
+
        /**
         * Gets the vtn name.
         * 
         * @return the vtn name
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
+
        /**
         * Gets the v tep name.
         * 
         * @return the v tep name
         */
-       public String getvTepName() {
+       public final String getvTepName() {
                return vTepName;
        }
+
        /** The Constant LOG. */
        private static final Logger LOG = Logger
                        .getLogger(VTepInterfacesResource.class.getName());
+
        /**
         * Instantiates a new v tep interfaces resource.
         */
@@ -76,6 +80,7 @@ public class VTepInterfacesResource extends AbstractResource {
                setValidator(new InterfaceResourceValidator(this));
                LOG.trace("Completed VTepInterfacesResource#VTepInterfacesResource()");
        }
+
        /**
         * Implementation of Post method of VtepInterface API
         * 
@@ -86,7 +91,8 @@ public class VTepInterfacesResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int post(final JsonObject requestBody) throws VtnServiceException {
+       public final int post(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VTepInterfacesResource#post()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -133,6 +139,7 @@ public class VTepInterfacesResource extends AbstractResource {
                LOG.trace("Completed VTepInterfacesResource#post()");
                return status;
        }
+
        /**
         * Implementation of Get method of VtepInterface API
         * 
@@ -143,7 +150,8 @@ public class VTepInterfacesResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VTepInterfacesResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -176,7 +184,8 @@ public class VTepInterfacesResource extends AbstractResource {
                                        getUriParameters(requestBody));
                        LOG.debug("Request packet created successfully for 1st call");
                        status = requestProcessor.processIpcRequest();
-                       LOG.debug("Request packet processed for 1st call with status" + status);
+                       LOG.debug("Request packet processed for 1st call with status"
+                                       + status);
                        LOG.debug("Complete Ipc framework call one");
                        if (status == ClientSession.RESP_FATAL) {
                                throw new VtnServiceException(
@@ -194,16 +203,16 @@ public class VTepInterfacesResource extends AbstractResource {
                                        requestProcessor.getIpcResponsePacket(), requestBody,
                                        VtnServiceJsonConsts.LIST);
                        final List<String> uriParameterList = getUriParameters(requestBody);
-                       if (vTepInterfaceJson.get(VtnServiceJsonConsts.INTERFACES).isJsonArray()) {
-                               JsonArray responseArray = vTepInterfaceJson.get(
-                                               VtnServiceJsonConsts.INTERFACES)
-                                               .getAsJsonArray();
+                       if (vTepInterfaceJson.get(VtnServiceJsonConsts.INTERFACES)
+                                       .isJsonArray()) {
+                               final JsonArray responseArray = vTepInterfaceJson.get(
+                                               VtnServiceJsonConsts.INTERFACES).getAsJsonArray();
                                vTepInterfaceJson = getResponseJsonArrayLogical(requestBody,
-                        requestProcessor, responseGenerator,
-                        responseArray, VtnServiceJsonConsts.INTERFACES,
-                        VtnServiceJsonConsts.IFNAME,
-                        IpcRequestPacketEnum.KT_VTEP_IF_GET,
-                        uriParameterList,VtnServiceIpcConsts.GET_VTEP_INTERFACE_RESPONSE);
+                                               requestProcessor, responseGenerator, responseArray,
+                                               VtnServiceJsonConsts.INTERFACES,
+                                               VtnServiceJsonConsts.IFNAME,
+                                               IpcRequestPacketEnum.KT_VTEP_IF_GET, uriParameterList,
+                                               VtnServiceIpcConsts.GET_VTEP_INTERFACE_RESPONSE);
                        }
                        LOG.trace("Response Packet created successfully for 1st request");
                        if ((VtnServiceJsonConsts.STATE).equalsIgnoreCase(dataType)
@@ -236,7 +245,8 @@ public class VTepInterfacesResource extends AbstractResource {
                                                                                                        .ordinal()));
                                        LOG.debug("Request packet created successfully for 2nd call");
                                        status = requestProcessor.processIpcRequest();
-                                       LOG.debug("Request packet processed for 2nd call with status" + status);
+                                       LOG.debug("Request packet processed for 2nd call with status"
+                                                       + status);
                                        neighbor = responseGenerator.getNeighborResponse(
                                                        requestProcessor.getIpcResponsePacket(),
                                                        requestBody, VtnServiceJsonConsts.SHOW);
@@ -275,6 +285,7 @@ public class VTepInterfacesResource extends AbstractResource {
                LOG.trace("Completed VTepInterfacesResource#get()");
                return status;
        }
+
        /**
         * Add URI parameters to list
         * 
index b9a7ac1be1eb9cfb9457b264751ed800a82bb21c..0f26906765f6c2b7f8b6bb8b93f411afaea5a1d6 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -48,6 +48,7 @@ public class VTepResource extends AbstractResource {
        /** The Constant LOG. */
        private static final Logger LOG = Logger.getLogger(VTepResource.class
                        .getName());
+
        /**
         * Instantiates a new v tep resource.
         */
@@ -57,18 +58,21 @@ public class VTepResource extends AbstractResource {
                setValidator(new VTepResourceValidator(this));
                LOG.trace("Completed VTepResource#VTepResource()");
        }
+
        /**
         * @return the vtnName
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
+
        /**
         * @return the vTepName
         */
-       public String getvTepName() {
+       public final String getvTepName() {
                return vTepName;
        }
+
        /**
         * Implementation of Put method of Vtep API
         * 
@@ -79,7 +83,8 @@ public class VTepResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int put(final JsonObject requestBody) throws VtnServiceException {
+       public final int put(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VTepResource#put()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -127,6 +132,7 @@ public class VTepResource extends AbstractResource {
                LOG.trace("Completed VTepResource#put()");
                return status;
        }
+
        /**
         * Implementation of Delete method of Vtep API
         * 
@@ -134,7 +140,7 @@ public class VTepResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("Start VTepResource#delete()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -181,6 +187,7 @@ public class VTepResource extends AbstractResource {
                LOG.trace("Completed VTepResource#delete()");
                return status;
        }
+
        /**
         * Implementation of Get method of Vtep API
         * 
@@ -191,7 +198,8 @@ public class VTepResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VTepResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -210,18 +218,18 @@ public class VTepResource extends AbstractResource {
                                        IpcRequestPacketEnum.KT_VTEP_GET, requestBody,
                                        getUriParameters());
                        LOG.debug("Request packet created successfully");
-                       
+
                        if (requestBody != null
                                        && ((requestBody.has(VtnServiceJsonConsts.TARGETDB) && requestBody
                                                        .get(VtnServiceJsonConsts.TARGETDB).getAsString()
                                                        .equalsIgnoreCase(VtnServiceJsonConsts.STATE)))) {
-                               
-                               IpcStruct valStruct = new IpcStruct(
+
+                               final IpcStruct valStruct = new IpcStruct(
                                                UncStructEnum.ValVtep.getValue());
                                requestProcessor.getRequestPacket().setValStruct(valStruct);
                                LOG.debug("Add ValVTepSt in Request Packet");
-                               IpcDataUnit[] extraDataUnits = new IpcDataUnit[1];
-                               IpcStruct valStructSt = new IpcStruct(
+                               final IpcDataUnit[] extraDataUnits = new IpcDataUnit[1];
+                               final IpcStruct valStructSt = new IpcStruct(
                                                UncStructEnum.ValVtepSt.getValue());
                                extraDataUnits[0] = valStructSt;
                                requestProcessor.getRequestPacket().setExtraDataUnits(
@@ -229,7 +237,7 @@ public class VTepResource extends AbstractResource {
                        }
                        status = requestProcessor.processIpcRequest();
                        LOG.debug("Request packet processed with status" + status);
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
                        setInfo(responseGenerator.getVtepResponse(
                                        requestProcessor.getIpcResponsePacket(), requestBody,
                                        VtnServiceJsonConsts.SHOW));
@@ -261,6 +269,7 @@ public class VTepResource extends AbstractResource {
                LOG.trace("Completed VTepResource#get()");
                return status;
        }
+
        /**
         * Add URI parameters to list
         * 
index 772a29c82c445a25f4b64bc3bc4af97b8dd243c2..05e164a194c92765d883bf3ff4da6eba019949a3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -60,7 +60,7 @@ public class VTepsResource extends AbstractResource {
        /**
         * @return the vtnName
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
 
@@ -74,7 +74,8 @@ public class VTepsResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int post(final JsonObject requestBody) throws VtnServiceException {
+       public final int post(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VTepsResource#post()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -133,7 +134,8 @@ public class VTepsResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VTepsResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -159,12 +161,12 @@ public class VTepsResource extends AbstractResource {
                                                        .get(VtnServiceJsonConsts.OP).getAsString()
                                                        .equalsIgnoreCase(VtnServiceJsonConsts.COUNT)))) {
 
-                               IpcStruct valStruct = new IpcStruct(
+                               final IpcStruct valStruct = new IpcStruct(
                                                UncStructEnum.ValVtep.getValue());
                                requestProcessor.getRequestPacket().setValStruct(valStruct);
                                LOG.debug("Add ValVTepSt in Request Packet");
-                               IpcDataUnit[] extraDataUnits = new IpcDataUnit[1];
-                               IpcStruct valStructSt = new IpcStruct(
+                               final IpcDataUnit[] extraDataUnits = new IpcDataUnit[1];
+                               final IpcStruct valStructSt = new IpcStruct(
                                                UncStructEnum.ValVtepSt.getValue());
                                extraDataUnits[0] = valStructSt;
                                requestProcessor.getRequestPacket().setExtraDataUnits(
@@ -173,26 +175,23 @@ public class VTepsResource extends AbstractResource {
                        LOG.debug("Request packet created successfully");
                        status = requestProcessor.processIpcRequest();
                        LOG.debug("Request packet processed with status" + status);
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
                        /*
                         * setInfo(responseGenerator.getVtepResponse(
                         * requestProcessor.getIpcResponsePacket(), requestBody,
                         * VtnServiceJsonConsts.LIST));
                         */
-                       JsonObject responseJson = responseGenerator
-                                       .getVtepResponse(
-                                                       requestProcessor.getIpcResponsePacket(),
-                                                       requestBody, VtnServiceJsonConsts.LIST);
-                       if (responseJson.get(VtnServiceJsonConsts.VTEPS)
-                                       .isJsonArray()) {
-                               JsonArray responseArray = responseJson.get(
+                       JsonObject responseJson = responseGenerator.getVtepResponse(
+                                       requestProcessor.getIpcResponsePacket(), requestBody,
+                                       VtnServiceJsonConsts.LIST);
+                       if (responseJson.get(VtnServiceJsonConsts.VTEPS).isJsonArray()) {
+                               final JsonArray responseArray = responseJson.get(
                                                VtnServiceJsonConsts.VTEPS).getAsJsonArray();
                                responseJson = getResponseJsonArrayLogical(requestBody,
                                                requestProcessor, responseGenerator, responseArray,
                                                VtnServiceJsonConsts.VTEPS,
                                                VtnServiceJsonConsts.VTEPNAME,
-                                               IpcRequestPacketEnum.KT_VTEP_GET,
-                                               uriParameterList,
+                                               IpcRequestPacketEnum.KT_VTEP_GET, uriParameterList,
                                                VtnServiceIpcConsts.GET_VTEP_RESPONSE);
                        }
                        setInfo(responseJson);
@@ -230,7 +229,7 @@ public class VTepsResource extends AbstractResource {
         * 
         * @return parameter list
         */
-       private List<String> getUriParameters(JsonObject requestBody) {
+       private List<String> getUriParameters(final JsonObject requestBody) {
                LOG.trace("Start VTepsResource#getUriParameters()");
                final List<String> uriParameters = new ArrayList<String>();
                uriParameters.add(vtnName);
index 959a93314c6d6cfd139163ff4ed17433b1b53ea2..120299a2fe8abe4d6e460d386c52184806ab6c31 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -31,11 +31,13 @@ import org.opendaylight.vtn.javaapi.resources.AbstractResource;
 import org.opendaylight.vtn.javaapi.validation.logical.PortMapResourceValidator;
 
 /**
- * The Class VTunnelInterfacePortMapResource implements delete, put and get methods.
- *
+ * The Class VTunnelInterfacePortMapResource implements delete, put and get
+ * methods.
+ * 
  */
 
-@UNCVtnService(path = "/vtns/{vtn_name}/vtunnels/{vtunnel_name}/interfaces/{if_name}/portmap")
+@UNCVtnService(
+               path = "/vtns/{vtn_name}/vtunnels/{vtunnel_name}/interfaces/{if_name}/portmap")
 public class VTunnelInterfacePortMapResource extends AbstractResource {
        /** The vtn name. */
        @UNCField("vtn_name")
@@ -48,31 +50,36 @@ public class VTunnelInterfacePortMapResource extends AbstractResource {
        private String ifName;
 
        /** The Constant LOG. */
-       private static final Logger LOG = Logger.getLogger(VTunnelInterfacePortMapResource.class.getSimpleName());
+       private static final Logger LOG = Logger
+                       .getLogger(VTunnelInterfacePortMapResource.class.getSimpleName());
+
        /**
         * Gets the vtn name.
-        *
+        * 
         * @return the vtn name
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
+
        /**
         * Gets the vbr name.
-        *
+        * 
         * @return the vbr name
         */
-       public String getVtunnelName() {
+       public final String getVtunnelName() {
                return vtunnelName;
        }
+
        /**
         * Gets the if name.
-        *
+        * 
         * @return the if name
         */
-       public String getIfName() {
+       public final String getIfName() {
                return ifName;
        }
+
        /**
         * Instantiates a new port map resource.
         */
@@ -90,32 +97,43 @@ public class VTunnelInterfacePortMapResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("Start VTunnelInterfacePortMapResource#delete()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
                int status = ClientSession.RESP_FATAL;
                try {
-                       session = getConnPool().getSession(UncUPLLEnums.UPLL_IPC_CHANNEL_NAME,UncUPLLEnums.UPLL_IPC_SERVICE_NAME,UncUPLLEnums.ServiceID.UPLL_EDIT_SVC_ID.ordinal(),getExceptionHandler());
+                       session = getConnPool().getSession(
+                                       UncUPLLEnums.UPLL_IPC_CHANNEL_NAME,
+                                       UncUPLLEnums.UPLL_IPC_SERVICE_NAME,
+                                       UncUPLLEnums.ServiceID.UPLL_EDIT_SVC_ID.ordinal(),
+                                       getExceptionHandler());
                        LOG.debug("Session created successfully");
-                       requestProcessor = new IpcRequestProcessor(session, getSessionID(), getConfigID(),getExceptionHandler());
-                       requestProcessor.createIpcRequestPacket(IpcRequestPacketEnum.KT_VTUNNEL_IF_UPDATE,getNullJsonObject(),getUriParameters());
+                       requestProcessor = new IpcRequestProcessor(session, getSessionID(),
+                                       getConfigID(), getExceptionHandler());
+                       requestProcessor.createIpcRequestPacket(
+                                       IpcRequestPacketEnum.KT_VTUNNEL_IF_UPDATE,
+                                       getNullJsonObject(), getUriParameters());
                        LOG.debug("Request packet created successfully");
-                       status= requestProcessor.processIpcRequest();
+                       status = requestProcessor.processIpcRequest();
                } catch (final VtnServiceException e) {
-                       getExceptionHandler().raise(
-                                       Thread.currentThread().getStackTrace()[1].getClassName()
-                                       + VtnServiceConsts.HYPHEN
-                                       + Thread.currentThread().getStackTrace()[1].getMethodName(),
-                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
-                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorMessage(), e);
+                       getExceptionHandler()
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR
+                                                                       .getErrorMessage(), e);
                        throw e;
                } finally {
                        if (status == ClientSession.RESP_FATAL) {
-                               if(null != requestProcessor.getErrorJson()){
+                               if (null != requestProcessor.getErrorJson()) {
                                        setInfo(requestProcessor.getErrorJson());
                                } else {
-                                       createErrorInfo(UncCommonEnum.UncResultCode.UNC_SERVER_ERROR.getValue());
+                                       createErrorInfo(UncCommonEnum.UncResultCode.UNC_SERVER_ERROR
+                                                       .getValue());
                                }
                                status = UncResultCode.UNC_SERVER_ERROR.getValue();
                        }
@@ -124,45 +142,62 @@ public class VTunnelInterfacePortMapResource extends AbstractResource {
                LOG.trace("Complete VTunnelInterfacePortMapResource#delete()");
                return status;
        }
+
        /**
         * Implementation of get method of VTep Interface PortMap API
         * 
-        * @param requestBody the request Json object
+        * @param requestBody
+        *            the request Json object
         * 
         * @return Error code
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VTunnelInterfacePortMapResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
                int status = ClientSession.RESP_FATAL;
                try {
-                       session = getConnPool().getSession(UncUPLLEnums.UPLL_IPC_CHANNEL_NAME,UncUPLLEnums.UPLL_IPC_SERVICE_NAME,UncUPLLEnums.ServiceID.UPLL_READ_SVC_ID.ordinal(),getExceptionHandler());
+                       session = getConnPool().getSession(
+                                       UncUPLLEnums.UPLL_IPC_CHANNEL_NAME,
+                                       UncUPLLEnums.UPLL_IPC_SERVICE_NAME,
+                                       UncUPLLEnums.ServiceID.UPLL_READ_SVC_ID.ordinal(),
+                                       getExceptionHandler());
                        LOG.debug("Session created successfully");
-                       requestProcessor = new IpcRequestProcessor(session, getSessionID(), getConfigID(),getExceptionHandler());
-                       requestProcessor.createIpcRequestPacket(IpcRequestPacketEnum.KT_VTUNNEL_IF_GET, requestBody,getUriParameters());
+                       requestProcessor = new IpcRequestProcessor(session, getSessionID(),
+                                       getConfigID(), getExceptionHandler());
+                       requestProcessor.createIpcRequestPacket(
+                                       IpcRequestPacketEnum.KT_VTUNNEL_IF_GET, requestBody,
+                                       getUriParameters());
                        LOG.debug("Request Packet created successfully");
-                       status= requestProcessor.processIpcRequest();
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
-                       setInfo(responseGenerator.getPortMapResponse(requestProcessor.getIpcResponsePacket(),requestBody,VtnServiceJsonConsts.SHOW,VtnServiceJsonConsts.VTUNNEL_INTERFACE_PORTMAP));
+                       status = requestProcessor.processIpcRequest();
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       setInfo(responseGenerator.getPortMapResponse(
+                                       requestProcessor.getIpcResponsePacket(), requestBody,
+                                       VtnServiceJsonConsts.SHOW,
+                                       VtnServiceJsonConsts.VTUNNEL_INTERFACE_PORTMAP));
                        LOG.debug("response object created successfully");
                        LOG.debug("Ipc framework call complete");
                } catch (final VtnServiceException e) {
-                       getExceptionHandler().raise(
-                                       Thread.currentThread().getStackTrace()[1].getClassName()
-                                       + VtnServiceConsts.HYPHEN
-                                       + Thread.currentThread().getStackTrace()[1].getMethodName(),
-                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
-                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorMessage(), e);
+                       getExceptionHandler()
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR
+                                                                       .getErrorMessage(), e);
                        throw e;
                } finally {
                        if (status == ClientSession.RESP_FATAL) {
-                               if(null != requestProcessor.getErrorJson()){
+                               if (null != requestProcessor.getErrorJson()) {
                                        setInfo(requestProcessor.getErrorJson());
                                } else {
-                                       createErrorInfo(UncCommonEnum.UncResultCode.UNC_SERVER_ERROR.getValue());
+                                       createErrorInfo(UncCommonEnum.UncResultCode.UNC_SERVER_ERROR
+                                                       .getValue());
                                }
                                status = UncResultCode.UNC_SERVER_ERROR.getValue();
                        }
@@ -175,38 +210,51 @@ public class VTunnelInterfacePortMapResource extends AbstractResource {
        /**
         * Implementation of Put method of PortMap API
         * 
-        * @param requestBody the request Json object
+        * @param requestBody
+        *            the request Json object
         * 
         * @return Error code
         * @throws VtnServiceException
         */
        @Override
-       public int put(final JsonObject requestBody) throws VtnServiceException {
+       public final int put(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VTunnelInterfacePortMapResource#put()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
                int status = ClientSession.RESP_FATAL;
                try {
-                       session = getConnPool().getSession(UncUPLLEnums.UPLL_IPC_CHANNEL_NAME,UncUPLLEnums.UPLL_IPC_SERVICE_NAME,UncUPLLEnums.ServiceID.UPLL_EDIT_SVC_ID.ordinal(),getExceptionHandler());
+                       session = getConnPool().getSession(
+                                       UncUPLLEnums.UPLL_IPC_CHANNEL_NAME,
+                                       UncUPLLEnums.UPLL_IPC_SERVICE_NAME,
+                                       UncUPLLEnums.ServiceID.UPLL_EDIT_SVC_ID.ordinal(),
+                                       getExceptionHandler());
                        LOG.debug("Session created successfully");
-                       requestProcessor = new IpcRequestProcessor(session, getSessionID(), getConfigID(),getExceptionHandler());
-                       requestProcessor.createIpcRequestPacket(IpcRequestPacketEnum.KT_VTUNNEL_IF_UPDATE, requestBody,getUriParameters());
+                       requestProcessor = new IpcRequestProcessor(session, getSessionID(),
+                                       getConfigID(), getExceptionHandler());
+                       requestProcessor.createIpcRequestPacket(
+                                       IpcRequestPacketEnum.KT_VTUNNEL_IF_UPDATE, requestBody,
+                                       getUriParameters());
                        LOG.debug("Request Packet created successfully");
                        status = requestProcessor.processIpcRequest();
-               }catch (final VtnServiceException e) {
-                       getExceptionHandler().raise(
-                                       Thread.currentThread().getStackTrace()[1].getClassName()
-                                       + VtnServiceConsts.HYPHEN
-                                       + Thread.currentThread().getStackTrace()[1].getMethodName(),
-                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
-                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorMessage(), e);
+               } catch (final VtnServiceException e) {
+                       getExceptionHandler()
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR
+                                                                       .getErrorMessage(), e);
                        throw e;
                } finally {
                        if (status == ClientSession.RESP_FATAL) {
-                               if(null != requestProcessor.getErrorJson()){
+                               if (null != requestProcessor.getErrorJson()) {
                                        setInfo(requestProcessor.getErrorJson());
                                } else {
-                                       createErrorInfo(UncCommonEnum.UncResultCode.UNC_SERVER_ERROR.getValue());
+                                       createErrorInfo(UncCommonEnum.UncResultCode.UNC_SERVER_ERROR
+                                                       .getValue());
                                }
                                status = UncResultCode.UNC_SERVER_ERROR.getValue();
                        }
@@ -215,8 +263,10 @@ public class VTunnelInterfacePortMapResource extends AbstractResource {
                LOG.trace("Complete VTunnelInterfacePortMapResource#put()");
                return status;
        }
+
        /**
         * Add URI parameters to list
+        * 
         * @return
         */
        private List<String> getUriParameters() {
index 43e364783a941603645eba796f136643fa6d1ce6..0684e6bf0f4afe2e6c95f4d66dfbb1a7a4d02e63 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -39,7 +39,8 @@ import org.opendaylight.vtn.javaapi.validation.logical.InterfaceResourceValidato
  * @version 1.0
  */
 /* This class handles put, delete and get methods */
-@UNCVtnService(path = "/vtns/{vtn_name}/vtunnels/{vtunnel_name}/interfaces/{if_name}")
+@UNCVtnService(
+               path = "/vtns/{vtn_name}/vtunnels/{vtunnel_name}/interfaces/{if_name}")
 public class VTunnelInterfaceResource extends AbstractResource {
        /** The VTN name. */
        @UNCField("vtn_name")
@@ -50,32 +51,37 @@ public class VTunnelInterfaceResource extends AbstractResource {
        /** The if name. */
        @UNCField("if_name")
        private String ifName;
+
        /**
         * Gets the vtn name.
         * 
         * @return the vtn name
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
+
        /**
         * Gets the v tunnel name.
         * 
         * @return the v tunnel name
         */
-       public String getvTunnelName() {
+       public final String getvTunnelName() {
                return vTunnelName;
        }
+
        /**
         * Gets the if name.
         * 
         * @return the if name
         */
-       public String getIfName() {
+       public final String getIfName() {
                return ifName;
        }
+
        private static final Logger LOG = Logger
                        .getLogger(VTunnelInterfaceResource.class.getName());
+
        /**
         * Instantiates a new Interface Resource Validator resource.
         */
@@ -85,6 +91,7 @@ public class VTunnelInterfaceResource extends AbstractResource {
                setValidator(new InterfaceResourceValidator(this));
                LOG.trace("Completed VTunnelInterfaceResource#VTunnelInterfaceResource()");
        }
+
        /**
         * Implementation of Put method of VTunnel Interface API
         * 
@@ -95,7 +102,8 @@ public class VTunnelInterfaceResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int put(final JsonObject requestBody) throws VtnServiceException {
+       public final int put(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VTunnelInterfaceResource#put()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -144,6 +152,7 @@ public class VTunnelInterfaceResource extends AbstractResource {
                LOG.trace("Completed VTunnelInterfaceResource#put()");
                return status;
        }
+
        /**
         * Implementation of Delete method of VTunnel Interface Resource API
         * 
@@ -151,7 +160,7 @@ public class VTunnelInterfaceResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("Start VTunnelInterfaceResource#delete()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -200,6 +209,7 @@ public class VTunnelInterfaceResource extends AbstractResource {
                LOG.trace("Completed VTunnelInterfaceResource#delete()");
                return status;
        }
+
        /**
         * Implementation of get method of VTunnel Interface API
         * 
@@ -210,7 +220,8 @@ public class VTunnelInterfaceResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("starts VTunnelInterfaceResource#get()");
 
                ClientSession session = null;
@@ -231,7 +242,8 @@ public class VTunnelInterfaceResource extends AbstractResource {
                                        getUriParameters());
                        LOG.debug("Request Packet created successfully for 1st call");
                        status = requestProcessor.processIpcRequest();
-                       LOG.debug("Request packet for 1st call processed with status" + status);
+                       LOG.debug("Request packet for 1st call processed with status"
+                                       + status);
                        if (status == ClientSession.RESP_FATAL) {
                                throw new VtnServiceException(
                                                Thread.currentThread().getStackTrace()[1]
@@ -255,7 +267,9 @@ public class VTunnelInterfaceResource extends AbstractResource {
                                                        requestProcessor.getIpcResponsePacket(),
                                                        requestBody, VtnServiceJsonConsts.SHOW);
                        LOG.trace("Response Packet created successfully for 1st request");
-                       if ((VtnServiceJsonConsts.STATE).equalsIgnoreCase(dataType) && !(vtunnelInterfaceJson.get(VtnServiceJsonConsts.INTERFACE) instanceof JsonNull)) {
+                       if ((VtnServiceJsonConsts.STATE).equalsIgnoreCase(dataType)
+                                       && !(vtunnelInterfaceJson
+                                                       .get(VtnServiceJsonConsts.INTERFACE) instanceof JsonNull)) {
                                requestProcessor.setServiceInfo(
                                                UncUPLLEnums.UPLL_IPC_SERVICE_NAME,
                                                UncUPLLEnums.ServiceID.UPLL_READ_SVC_ID.ordinal());
@@ -309,6 +323,7 @@ public class VTunnelInterfaceResource extends AbstractResource {
                LOG.trace("Completed VTunnelInterfaceResource#get()");
                return status;
        }
+
        /**
         * Add URI parameters to list
         * 
index 26ca049cbe7591847fc08e2b8187c601a232436e..7935265409fc9b777df2eac06b11800da1f8f6de 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -54,19 +54,22 @@ public class VTunnelInterfacesResource extends AbstractResource {
         * 
         * @return the vtn name
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
+
        /**
         * Gets the v tunnel name.
         * 
         * @return the v tunnel name
         */
-       public String getvTunnelName() {
+       public final String getvTunnelName() {
                return vTunnelName;
        }
+
        private static final Logger LOG = Logger
                        .getLogger(VTunnelInterfacesResource.class.getName());
+
        /**
         * Instantiates a new Interface Resource Validator resource.
         */
@@ -76,6 +79,7 @@ public class VTunnelInterfacesResource extends AbstractResource {
                setValidator(new InterfaceResourceValidator(this));
                LOG.trace("Completed VTunnelInterfacesResource#VTunnelInterfaceResource()");
        }
+
        /**
         * Implementation of Post method of VTunnel Interface API
         * 
@@ -86,7 +90,8 @@ public class VTunnelInterfacesResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int post(final JsonObject requestBody) throws VtnServiceException {
+       public final int post(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VTunnelInterfacesResource#post()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -135,6 +140,7 @@ public class VTunnelInterfacesResource extends AbstractResource {
                LOG.trace("Complete VTunnelInterfacesResource#post()");
                return status;
        }
+
        /**
         * Implementation of Get method of VTunnel Interface API
         * 
@@ -145,7 +151,8 @@ public class VTunnelInterfacesResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VTunnelInterfacesResource#get()");
 
                ClientSession session = null;
@@ -195,16 +202,17 @@ public class VTunnelInterfacesResource extends AbstractResource {
                                        .getVTunnelInterfaceResourceResponse(
                                                        requestProcessor.getIpcResponsePacket(),
                                                        requestBody, VtnServiceJsonConsts.LIST);
-                       if (vtunnelInterfacesJson.get(VtnServiceJsonConsts.INTERFACES).isJsonArray()) {
-                               JsonArray responseArray = vtunnelInterfacesJson.get(
-                                               VtnServiceJsonConsts.INTERFACES)
-                                               .getAsJsonArray();
-                               vtunnelInterfacesJson = getResponseJsonArrayLogical(requestBody,
-                        requestProcessor, responseGenerator,
-                        responseArray, VtnServiceJsonConsts.INTERFACES,
-                        VtnServiceJsonConsts.IFNAME,
-                        IpcRequestPacketEnum.KT_VTUNNEL_IF_GET,
-                        uriParameterList,VtnServiceIpcConsts.GET_VTUNNEL_INTERFACE_RESPONSE);
+                       if (vtunnelInterfacesJson.get(VtnServiceJsonConsts.INTERFACES)
+                                       .isJsonArray()) {
+                               final JsonArray responseArray = vtunnelInterfacesJson.get(
+                                               VtnServiceJsonConsts.INTERFACES).getAsJsonArray();
+                               vtunnelInterfacesJson = getResponseJsonArrayLogical(
+                                               requestBody, requestProcessor, responseGenerator,
+                                               responseArray, VtnServiceJsonConsts.INTERFACES,
+                                               VtnServiceJsonConsts.IFNAME,
+                                               IpcRequestPacketEnum.KT_VTUNNEL_IF_GET,
+                                               uriParameterList,
+                                               VtnServiceIpcConsts.GET_VTUNNEL_INTERFACE_RESPONSE);
                        }
                        LOG.trace("Response Packet created successfully for 1st request");
                        if ((VtnServiceJsonConsts.STATE).equalsIgnoreCase(dataType)
@@ -277,6 +285,7 @@ public class VTunnelInterfacesResource extends AbstractResource {
                LOG.trace("Completed VTunnelInterfaceResource#get()");
                return status;
        }
+
        /**
         * Add URI parameters to list
         * 
index 89b5e50a185db6e4cbeb32259bf16abd96d5bdbc..0aae50291c21252683ef95d2c28e699677dbefd5 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -44,20 +44,24 @@ public class VTunnelResource extends AbstractResource {
        /** The v tunnel name. */
        @UNCField("vtunnel_name")
        private String vTunnelName;
+
        /**
         * @return the vtnName
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
+
        /**
         * @return the vTunnelName
         */
-       public String getvTunnelName() {
+       public final String getvTunnelName() {
                return vTunnelName;
        }
+
        private static final Logger LOG = Logger.getLogger(VTunnelResource.class
                        .getName());
+
        /**
         * Instantiates a new v tunnel resource.
         */
@@ -67,6 +71,7 @@ public class VTunnelResource extends AbstractResource {
                setValidator(new VTunnelResourceValidator(this));
                LOG.trace("Complete VTunnelResource#VTunnelResource()");
        }
+
        /**
         * Implementation of put method of VTunnels
         * 
@@ -77,7 +82,8 @@ public class VTunnelResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int put(final JsonObject requestBody) throws VtnServiceException {
+       public final int put(final JsonObject requestBody)
+                       throws VtnServiceException {
 
                LOG.trace("Start VTunnelResource#put()");
                ClientSession session = null;
@@ -126,6 +132,7 @@ public class VTunnelResource extends AbstractResource {
                LOG.trace("Complete VTunnelResource#put()");
                return status;
        }
+
        /**
         * Implementation of delete method of VTunnels
         * 
@@ -133,7 +140,7 @@ public class VTunnelResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("Start VTunnelResource#delete()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -182,6 +189,7 @@ public class VTunnelResource extends AbstractResource {
                LOG.trace("Complete VTunnelResource#delete()");
                return status;
        }
+
        /**
         * Implementation of get method of VTunnels
         * 
@@ -214,12 +222,12 @@ public class VTunnelResource extends AbstractResource {
                                        && requestBody.get(VtnServiceJsonConsts.TARGETDB)
                                                        .getAsString()
                                                        .equalsIgnoreCase(VtnServiceJsonConsts.STATE)) {
-                               IpcStruct valStruct = new IpcStruct(
+                               final IpcStruct valStruct = new IpcStruct(
                                                UncStructEnum.ValVtunnel.getValue());
                                requestProcessor.getRequestPacket().setValStruct(valStruct);
                                LOG.debug("Add ValVtunnelSt in Request Packet");
-                               IpcDataUnit[] extraDataUnits = new IpcDataUnit[1];
-                               IpcStruct valStructSt = new IpcStruct(
+                               final IpcDataUnit[] extraDataUnits = new IpcDataUnit[1];
+                               final IpcStruct valStructSt = new IpcStruct(
                                                UncStructEnum.ValVtunnelSt.getValue());
                                extraDataUnits[0] = valStructSt;
                                requestProcessor.getRequestPacket().setExtraDataUnits(
@@ -229,7 +237,7 @@ public class VTunnelResource extends AbstractResource {
                        status = requestProcessor.processIpcRequest();
                        LOG.debug("Request packet processed with status" + status);
                        LOG.debug("Complete Ipc framework call");
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
                        setInfo(responseGenerator.getVTunnelResponse(
                                        requestProcessor.getIpcResponsePacket(), requestBody,
                                        VtnServiceJsonConsts.SHOW));
@@ -260,6 +268,7 @@ public class VTunnelResource extends AbstractResource {
                LOG.trace("Complete VTunnelResource#get()");
                return status;
        }
+
        /**
         * Add URI parameters to list
         * 
@@ -267,7 +276,7 @@ public class VTunnelResource extends AbstractResource {
         */
        private List<String> getUriParameters() {
                LOG.trace("Start VTunnelResource#getUriParameters()");
-               List<String> uriParameters = new ArrayList<String>();
+               final List<String> uriParameters = new ArrayList<String>();
                uriParameters.add(vtnName);
                uriParameters.add(vTunnelName);
                LOG.trace("Completed VTunnelResource#getUriParameters()");
index 876cf7307ec0d2d51cb586d83872870f0b3e1d60..bb35fd1b7ed3a4d96e72bd553b9d50cc94d2683e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -45,7 +45,7 @@ public class VTunnelsResource extends AbstractResource {
         * 
         * @return the vtn name
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
 
@@ -72,7 +72,8 @@ public class VTunnelsResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int post(final JsonObject requestBody) throws VtnServiceException {
+       public final int post(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VTunnelsResource#post()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -132,7 +133,8 @@ public class VTunnelsResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VTunnelsResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -166,26 +168,23 @@ public class VTunnelsResource extends AbstractResource {
                        LOG.debug("Request Packet created successfully");
                        status = requestProcessor.processIpcRequest();
                        LOG.debug("Request packet processed with status" + status);
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
                        /*
                         * setInfo(responseGenerator.getVTunnelResponse(
                         * requestProcessor.getIpcResponsePacket(), requestBody,
                         * VtnServiceJsonConsts.LIST));
                         */
-                       JsonObject responseJson = responseGenerator
-                                       .getVTunnelResponse(
-                                                       requestProcessor.getIpcResponsePacket(),
-                                                       requestBody, VtnServiceJsonConsts.LIST);
-                       if (responseJson.get(VtnServiceJsonConsts.VTUNNELS)
-                                       .isJsonArray()) {
-                               JsonArray responseArray = responseJson.get(
+                       JsonObject responseJson = responseGenerator.getVTunnelResponse(
+                                       requestProcessor.getIpcResponsePacket(), requestBody,
+                                       VtnServiceJsonConsts.LIST);
+                       if (responseJson.get(VtnServiceJsonConsts.VTUNNELS).isJsonArray()) {
+                               final JsonArray responseArray = responseJson.get(
                                                VtnServiceJsonConsts.VTUNNELS).getAsJsonArray();
                                responseJson = getResponseJsonArrayLogical(requestBody,
                                                requestProcessor, responseGenerator, responseArray,
                                                VtnServiceJsonConsts.VTUNNELS,
                                                VtnServiceJsonConsts.VTUNNELNAME,
-                                               IpcRequestPacketEnum.KT_VTUNNEL_GET,
-                                               uriParameterList,
+                                               IpcRequestPacketEnum.KT_VTUNNEL_GET, uriParameterList,
                                                VtnServiceIpcConsts.GET_VTUNNEL_RESPONSE);
                        }
                        setInfo(responseJson);
@@ -225,9 +224,9 @@ public class VTunnelsResource extends AbstractResource {
         *            the request body
         * @return the uri parameters
         */
-       private List<String> getUriParameters(JsonObject requestBody) {
+       private List<String> getUriParameters(final JsonObject requestBody) {
                LOG.trace("Start VTunnelsResource#getUriParameters()");
-               List<String> uriParameters = new ArrayList<String>();
+               final List<String> uriParameters = new ArrayList<String>();
                uriParameters.add(vtnName);
                if (requestBody != null && requestBody.has(VtnServiceJsonConsts.INDEX)) {
                        uriParameters.add(requestBody.get(VtnServiceJsonConsts.INDEX)
index 84c0cd12e7809e4b6b17ea9f7ca616a036de8eca..f0f85a3da1cb3806ec2dd646bc78da2c52e86a55 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -36,7 +36,8 @@ import org.opendaylight.vtn.javaapi.validation.logical.VLanMapResourceValidator;
  * @version 1.0
  */
 /* This class handles delete, put and get methods */
-@UNCVtnService(path = "/vtns/{vtn_name}/vbridges/{vbr_name}/vlanmaps/{vlanmap_id}")
+@UNCVtnService(
+               path = "/vtns/{vtn_name}/vbridges/{vbr_name}/vlanmaps/{vlanmap_id}")
 public class VlanMapResource extends AbstractResource {
        /** The vtn name. */
        @UNCField("vtn_name")
@@ -56,7 +57,7 @@ public class VlanMapResource extends AbstractResource {
         * 
         * @return the vtn name
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
 
@@ -65,7 +66,7 @@ public class VlanMapResource extends AbstractResource {
         * 
         * @return the vbr name
         */
-       public String getVbrName() {
+       public final String getVbrName() {
                return vbrName;
        }
 
@@ -74,7 +75,7 @@ public class VlanMapResource extends AbstractResource {
         * 
         * @return the vlan map id
         */
-       public String getVlanMapId() {
+       public final String getVlanMapId() {
                return vlanMapId;
        }
 
@@ -95,7 +96,7 @@ public class VlanMapResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("Start VlanMapResource#delete()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -154,7 +155,8 @@ public class VlanMapResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int put(final JsonObject requestBody) throws VtnServiceException {
+       public final int put(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VlanMapResource#put()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -213,7 +215,8 @@ public class VlanMapResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VlanMapResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -234,7 +237,7 @@ public class VlanMapResource extends AbstractResource {
                        LOG.debug("Request Packet created successfully");
                        status = requestProcessor.processIpcRequest();
                        LOG.debug("Request packet processed with status" + status);
-                       IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
                        setInfo(responseGenerator.getVlanMapResponse(
                                        requestProcessor.getIpcResponsePacket(), requestBody,
                                        VtnServiceJsonConsts.SHOW));
index e3cc0d8bcd73b9d13038172f597d9e7c6968ae5c..683a5a1411715385322bbd73147b34f15eae46bd 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -55,7 +55,7 @@ public class VlanMapsResource extends AbstractResource {
         * 
         * @return the vtn name
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
 
@@ -64,7 +64,7 @@ public class VlanMapsResource extends AbstractResource {
         * 
         * @return the vbr name
         */
-       public String getVbrName() {
+       public final String getVbrName() {
                return vbrName;
        }
 
@@ -88,7 +88,8 @@ public class VlanMapsResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int post(final JsonObject requestBody) throws VtnServiceException {
+       public final int post(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VlanMapsResource#post()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -171,7 +172,8 @@ public class VlanMapsResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VlanMapsResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -203,14 +205,15 @@ public class VlanMapsResource extends AbstractResource {
                                        requestProcessor.getIpcResponsePacket(), requestBody,
                                        VtnServiceJsonConsts.LIST);
                        if (responseJson.get(VtnServiceJsonConsts.VLANMAPS).isJsonArray()) {
-                               JsonArray responseArray = responseJson.get(
+                               final JsonArray responseArray = responseJson.get(
                                                VtnServiceJsonConsts.VLANMAPS).getAsJsonArray();
                                responseJson = getResponseJsonArrayLogical(requestBody,
-                        requestProcessor, responseGenerator,
-                        responseArray, VtnServiceJsonConsts.VLANMAPS,
-                        VtnServiceJsonConsts.VLANMAPID,
-                        IpcRequestPacketEnum.KT_VBR_VLANMAP_GET,
-                        uriParameterList,VtnServiceIpcConsts.GET_VBRIDGE_VLANMAP_RESPONSE);
+                                               requestProcessor, responseGenerator, responseArray,
+                                               VtnServiceJsonConsts.VLANMAPS,
+                                               VtnServiceJsonConsts.VLANMAPID,
+                                               IpcRequestPacketEnum.KT_VBR_VLANMAP_GET,
+                                               uriParameterList,
+                                               VtnServiceIpcConsts.GET_VBRIDGE_VLANMAP_RESPONSE);
                        }
                        setInfo(responseJson);
                        LOG.debug("Response object created successfully");
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VtnDataFlowResource.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VtnDataFlowResource.java
new file mode 100644 (file)
index 0000000..0c0a6df
--- /dev/null
@@ -0,0 +1,143 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.vtn.javaapi.resources.logical;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.google.gson.JsonObject;
+import org.opendaylight.vtn.core.ipc.ClientSession;
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.annotation.UNCField;
+import org.opendaylight.vtn.javaapi.annotation.UNCVtnService;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
+import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
+import org.opendaylight.vtn.javaapi.ipc.IpcRequestProcessor;
+import org.opendaylight.vtn.javaapi.ipc.conversion.IpcLogicalResponseFactory;
+import org.opendaylight.vtn.javaapi.ipc.enums.IpcRequestPacketEnum;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum.UncResultCode;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncUPLLEnums;
+import org.opendaylight.vtn.javaapi.resources.AbstractResource;
+import org.opendaylight.vtn.javaapi.validation.logical.VtnDataFlowResourceValidator;
+
+/**
+ * The Class VtnDataFlowResource implements get methods.
+ */
+@UNCVtnService(path = "/vtns/{vtn_name}/dataflows")
+public class VtnDataFlowResource extends AbstractResource {
+
+       /**
+        * Instantiates a new VTN Data Flow resource.
+        */
+       public VtnDataFlowResource() {
+               super();
+               LOG.trace("Start VtnDataFlowResource#VtnDataFlowResource()");
+               setValidator(new VtnDataFlowResourceValidator(this));
+               LOG.trace("Completed VtnDataFlowResource#VtnDataFlowResource()");
+       }
+
+       /** The LOG. */
+       private static final Logger LOG = Logger
+                       .getLogger(VtnDataFlowResource.class.getName());
+
+       /** The vtn name. */
+       @UNCField("vtn_name")
+       private String vtnName;
+
+       /**
+        * Gets the vtn name.
+        * 
+        * @return the vtn name
+        */
+       public final String getVtnName() {
+               return vtnName;
+       }
+
+       /**
+        * Implementation of get method of VTN Data Flow API
+        * 
+        * @param requestBody
+        *            the request Json object
+        * 
+        * @return Error code
+        * @throws VtnServiceException
+        */
+       @Override
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
+               LOG.trace("Start VtnDataFlowResource#get()");
+               ClientSession session = null;
+               IpcRequestProcessor requestProcessor = null;
+               int status = ClientSession.RESP_FATAL;
+               try {
+                       LOG.debug("Start Ipc framework call");
+                       session = getConnPool().getSession(
+                                       UncUPLLEnums.UPLL_IPC_CHANNEL_NAME,
+                                       UncUPLLEnums.UPLL_IPC_SERVICE_NAME,
+                                       UncUPLLEnums.ServiceID.UPLL_READ_SVC_ID.ordinal(),
+                                       getExceptionHandler());
+                       LOG.debug("Session created successfully");
+                       requestProcessor = new IpcRequestProcessor(session, getSessionID(),
+                                       getConfigID(), getExceptionHandler());
+                       requestProcessor.createIpcRequestPacket(
+                                       IpcRequestPacketEnum.KT_VTN_DATAFLOW_GET, requestBody,
+                                       getUriParameters());
+                       LOG.debug("Request packet created successfully");
+                       status = requestProcessor.processIpcRequest();
+                       LOG.debug("Request packet processed with status" + status);
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       setInfo(responseGenerator.getVtnDataFlowResponse(
+                                       requestProcessor.getIpcResponsePacket(), requestBody,
+                                       VtnServiceJsonConsts.SHOW));
+                       LOG.debug("Response object created successfully");
+                       LOG.debug("Complete Ipc framework call");
+               } catch (final VtnServiceException e) {
+                       getExceptionHandler()
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR
+                                                                       .getErrorMessage(), e);
+                       throw e;
+               } finally {
+                       if (status == ClientSession.RESP_FATAL) {
+                               if (null != requestProcessor.getErrorJson()) {
+                                       setInfo(requestProcessor.getErrorJson());
+                               } else {
+                                       createErrorInfo(UncCommonEnum.UncResultCode.UNC_SERVER_ERROR
+                                                       .getValue());
+                               }
+                               status = UncResultCode.UNC_SERVER_ERROR.getValue();
+                       }
+                       getConnPool().destroySession(session);
+               }
+               LOG.trace("Completed VtnDataFlowResource#get()");
+               return status;
+       }
+
+       /**
+        * Add URI parameters to list
+        * 
+        * @return
+        */
+       private List<String> getUriParameters() {
+               LOG.trace("Start VtnDataFlowResource#getUriParameters()");
+               final List<String> uriParameters = new ArrayList<String>();
+               uriParameters.add(vtnName);
+               LOG.trace("Completed VtnDataFlowResource#getUriParameters()");
+               return uriParameters;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VtnMappingResource.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VtnMappingResource.java
new file mode 100644 (file)
index 0000000..6039dc5
--- /dev/null
@@ -0,0 +1,153 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.vtn.javaapi.resources.logical;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.google.gson.JsonObject;
+import org.opendaylight.vtn.core.ipc.ClientSession;
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.annotation.UNCField;
+import org.opendaylight.vtn.javaapi.annotation.UNCVtnService;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
+import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
+import org.opendaylight.vtn.javaapi.ipc.IpcRequestProcessor;
+import org.opendaylight.vtn.javaapi.ipc.conversion.IpcLogicalResponseFactory;
+import org.opendaylight.vtn.javaapi.ipc.enums.IpcRequestPacketEnum;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum.UncResultCode;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncUPLLEnums;
+import org.opendaylight.vtn.javaapi.resources.AbstractResource;
+import org.opendaylight.vtn.javaapi.validation.logical.VtnMappingResourceValidator;
+
+/**
+ * The Class VtnMappingResource implements get methods.
+ */
+@UNCVtnService(path = "/vtns/{vtn_name}/mappings/{mapping_id}")
+public class VtnMappingResource extends AbstractResource {
+
+       /** The Constant LOG. */
+       private static final Logger LOG = Logger.getLogger(VtnMappingResource.class
+                       .getName());
+
+       /** The vtn name. */
+       @UNCField("vtn_name")
+       private String vtnName;
+
+       /** The mapping id. */
+       @UNCField("mapping_id")
+       private String mappingId;
+
+       /**
+        * @return the vtnName
+        */
+       public final String getVtnName() {
+               return vtnName;
+       }
+
+       /**
+        * @return the mappingId
+        */
+       public final String getMappingId() {
+               return mappingId;
+       }
+
+       /**
+        * Instantiates a new VTN Mapping resource.
+        */
+       public VtnMappingResource() {
+               LOG.trace("Start VtnMappingResource#VtnMappingResource()");
+               setValidator(new VtnMappingResourceValidator(this));
+               LOG.trace("Completed VtnMappingResource#VtnMappingResource()");
+       }
+
+       /**
+        * Implementation of get method of vtn mapping API
+        * 
+        * @param requestBody
+        *            the request Json object
+        * 
+        * @return Error code
+        * @throws VtnServiceException
+        */
+       @Override
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
+               LOG.trace("Start VtnMappingResource#get()");
+               ClientSession session = null;
+               IpcRequestProcessor requestProcessor = null;
+               int status = ClientSession.RESP_FATAL;
+               try {
+                       LOG.debug("Start Ipc framework call");
+                       session = getConnPool().getSession(
+                                       UncUPLLEnums.UPLL_IPC_CHANNEL_NAME,
+                                       UncUPLLEnums.UPLL_IPC_SERVICE_NAME,
+                                       UncUPLLEnums.ServiceID.UPLL_READ_SVC_ID.ordinal(),
+                                       getExceptionHandler());
+                       LOG.debug("Session created successfully");
+                       requestProcessor = new IpcRequestProcessor(session, getSessionID(),
+                                       getConfigID(), getExceptionHandler());
+                       requestProcessor.createIpcRequestPacket(
+                                       IpcRequestPacketEnum.KT_VTN_MAPPING_CONTROLLER_GET,
+                                       requestBody, getUriParameters());
+                       LOG.debug("Request packet created successfully");
+                       status = requestProcessor.processIpcRequest();
+                       LOG.debug("Request packet processed with status" + status);
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       setInfo(responseGenerator.getVtnMappingResponse(
+                                       requestProcessor.getIpcResponsePacket(), requestBody,
+                                       VtnServiceJsonConsts.SHOW));
+                       LOG.debug("Response object created successfully");
+                       LOG.debug("Complete Ipc framework call");
+               } catch (final VtnServiceException e) {
+                       getExceptionHandler()
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR
+                                                                       .getErrorMessage(), e);
+                       throw e;
+               } finally {
+                       if (status == ClientSession.RESP_FATAL) {
+                               if (null != requestProcessor.getErrorJson()) {
+                                       setInfo(requestProcessor.getErrorJson());
+                               } else {
+                                       createErrorInfo(UncCommonEnum.UncResultCode.UNC_SERVER_ERROR
+                                                       .getValue());
+                               }
+                               status = UncResultCode.UNC_SERVER_ERROR.getValue();
+                       }
+                       getConnPool().destroySession(session);
+               }
+               LOG.trace("Completed VtnMappingResource#get()");
+               return status;
+       }
+
+       /**
+        * Add URI parameters to list
+        * 
+        * @return
+        */
+       private List<String> getUriParameters() {
+               LOG.trace("Start VtnMappingResource#getUriParameters()");
+               final List<String> uriParameters = new ArrayList<String>();
+               uriParameters.add(vtnName);
+               uriParameters.add(mappingId);
+               LOG.trace("Completed VtnMappingResource#getUriParameters()");
+               return uriParameters;
+       }
+
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VtnMappingsResource.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/VtnMappingsResource.java
new file mode 100644 (file)
index 0000000..6a35a9f
--- /dev/null
@@ -0,0 +1,161 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.vtn.javaapi.resources.logical;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.google.gson.JsonArray;
+import com.google.gson.JsonObject;
+import org.opendaylight.vtn.core.ipc.ClientSession;
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.annotation.UNCField;
+import org.opendaylight.vtn.javaapi.annotation.UNCVtnService;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceIpcConsts;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
+import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
+import org.opendaylight.vtn.javaapi.ipc.IpcRequestProcessor;
+import org.opendaylight.vtn.javaapi.ipc.conversion.IpcLogicalResponseFactory;
+import org.opendaylight.vtn.javaapi.ipc.enums.IpcRequestPacketEnum;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum.UncResultCode;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncUPLLEnums;
+import org.opendaylight.vtn.javaapi.resources.AbstractResource;
+import org.opendaylight.vtn.javaapi.validation.logical.VtnMappingResourceValidator;
+
+/**
+ * The Class VtnMappingsResource implements get methods.
+ */
+@UNCVtnService(path = "/vtns/{vtn_name}/mappings")
+public class VtnMappingsResource extends AbstractResource {
+
+       /** The Constant LOG. */
+       private static final Logger LOG = Logger
+                       .getLogger(VtnMappingsResource.class.getName());
+
+       /** The vtn name. */
+       @UNCField("vtn_name")
+       private String vtnName;
+
+       /**
+        * @return the vtnName
+        */
+       public final String getVtnName() {
+               return vtnName;
+       }
+
+       /**
+        * Instantiates a new VTN Mapping resource.
+        */
+       public VtnMappingsResource() {
+               LOG.trace("Start VtnMappingsResource#VtnMappingsResource()");
+               setValidator(new VtnMappingResourceValidator(this));
+               LOG.trace("Completed VtnMappingsResource#VtnMappingsResource()");
+       }
+
+       /**
+        * Implementation of Get method of vtn mapping API
+        * 
+        * @param requestBody
+        *            the request Json object
+        * 
+        * @return Error code
+        * @throws VtnServiceException
+        */
+       @Override
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
+               LOG.trace("Start VtnMappingsResource#get()");
+               ClientSession session = null;
+               IpcRequestProcessor requestProcessor = null;
+               int status = ClientSession.RESP_FATAL;
+               try {
+                       LOG.debug("Start Ipc framework call");
+                       session = getConnPool().getSession(
+                                       UncUPLLEnums.UPLL_IPC_CHANNEL_NAME,
+                                       UncUPLLEnums.UPLL_IPC_SERVICE_NAME,
+                                       UncUPLLEnums.ServiceID.UPLL_READ_SVC_ID.ordinal(),
+                                       getExceptionHandler());
+                       LOG.debug("Session created successfully");
+                       requestProcessor = new IpcRequestProcessor(session, getSessionID(),
+                                       getConfigID(), getExceptionHandler());
+                       // Uriparamter list
+                       final List<String> uriParameterList = getUriParameters(requestBody);
+                       requestProcessor.createIpcRequestPacket(
+                                       IpcRequestPacketEnum.KT_VTN_MAPPING_CONTROLLER_GET,
+                                       requestBody, uriParameterList);
+                       LOG.debug("Request packet created successfully");
+                       status = requestProcessor.processIpcRequest();
+                       LOG.debug("Request packet processed with status" + status);
+                       final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
+                       JsonObject responseJson = responseGenerator.getVtnMappingResponse(
+                                       requestProcessor.getIpcResponsePacket(), requestBody,
+                                       VtnServiceJsonConsts.LIST);
+
+                       if (responseJson.get(VtnServiceJsonConsts.MAPPINGS).isJsonArray()) {
+                               final JsonArray responseArray = responseJson.get(
+                                               VtnServiceJsonConsts.MAPPINGS).getAsJsonArray();
+                               responseJson = getResponseJsonArrayLogical(requestBody,
+                                               requestProcessor, responseGenerator, responseArray,
+                                               VtnServiceJsonConsts.MAPPINGS,
+                                               VtnServiceJsonConsts.MAPPINGID,
+                                               IpcRequestPacketEnum.KT_VTN_MAPPING_CONTROLLER_GET,
+                                               uriParameterList,
+                                               VtnServiceIpcConsts.GET_VTN_MAPPING_RESPONSE);
+                       }
+                       setInfo(responseJson);
+                       LOG.debug("Response object created successfully");
+                       LOG.debug("Complete Ipc framework call");
+               } catch (final VtnServiceException e) {
+                       getExceptionHandler()
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR
+                                                                       .getErrorMessage(), e);
+                       throw e;
+               } finally {
+                       if (status == ClientSession.RESP_FATAL) {
+                               if (null != requestProcessor.getErrorJson()) {
+                                       setInfo(requestProcessor.getErrorJson());
+                               } else {
+                                       createErrorInfo(UncCommonEnum.UncResultCode.UNC_SERVER_ERROR
+                                                       .getValue());
+                               }
+                               status = UncResultCode.UNC_SERVER_ERROR.getValue();
+                       }
+                       getConnPool().destroySession(session);
+               }
+               LOG.trace("Completed VtnMappingsResource#get()");
+               return status;
+       }
+
+       /**
+        * Add URI parameters to list
+        * 
+        * @return
+        */
+       private List<String> getUriParameters(final JsonObject requestBody) {
+               LOG.trace("Start VtnMappingsResource#getUriParameters()");
+               final List<String> uriParameters = new ArrayList<String>();
+               uriParameters.add(vtnName);
+               if (requestBody != null && requestBody.has(VtnServiceJsonConsts.INDEX)) {
+                       uriParameters.add(requestBody.get(VtnServiceJsonConsts.INDEX)
+                                       .getAsString());
+               }
+               LOG.trace("Completed VtnMappingsResource#getUriParameters()");
+               return uriParameters;
+       }
+}
index e1db38b892a5245bf395d43c9205b74839bb64c4..bf7ec976a6d42538281807f0fb4b88905bc6fc67 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -40,6 +40,7 @@ public class VtnResource extends AbstractResource {
        /** The Constant LOG. */
        private static final Logger LOG = Logger.getLogger(VtnResource.class
                        .getName());
+
        /**
         * Instantiates a new vtn resource.
         */
@@ -49,12 +50,14 @@ public class VtnResource extends AbstractResource {
                setValidator(new VtnResourceValidator(this));
                LOG.trace("Completed VtnResource#VtnResource()");
        }
+
        /**
         * @return the vtnName
         */
-       public String getVtnName() {
+       public final String getVtnName() {
                return vtnName;
        }
+
        /**
         * Implementation of Put method of vtn API
         * 
@@ -65,7 +68,8 @@ public class VtnResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int put(final JsonObject requestBody) throws VtnServiceException {
+       public final int put(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts VtnResource#put()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -113,6 +117,7 @@ public class VtnResource extends AbstractResource {
                LOG.trace("Completed VtnResource#put()");
                return status;
        }
+
        /**
         * Implementation of Delete method of vtn API
         * 
@@ -120,7 +125,7 @@ public class VtnResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("Starts VtnResource#delete()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -168,6 +173,7 @@ public class VtnResource extends AbstractResource {
                LOG.trace("Completed VtnResource#delete()");
                return status;
        }
+
        /**
         * Implementation of get method of vtn API
         * 
@@ -178,7 +184,8 @@ public class VtnResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VtnResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -231,6 +238,7 @@ public class VtnResource extends AbstractResource {
                LOG.trace("Completed VtnResource#get()");
                return status;
        }
+
        /**
         * Add URI parameters to list
         * 
index d1a8a5d086ae122a80780565de3aa9b5cfda94e0..b2c3fafacfec32b414142bf97a7fbe0e4b1e67c7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -36,6 +36,7 @@ import org.opendaylight.vtn.javaapi.validation.logical.VtnStationsResourceValida
 public class VtnStationsResource extends AbstractResource {
        private static final Logger LOG = Logger
                        .getLogger(VtnStationsResource.class.getName());
+
        /**
         * Instantiates a new vtn stations resource.
         */
@@ -44,6 +45,7 @@ public class VtnStationsResource extends AbstractResource {
                setValidator(new VtnStationsResourceValidator(this));
                LOG.trace("Completed VtnStationsResource#VtnStationsResource()");
        }
+
        /**
         * Implementation of get method of VtnStations
         * 
@@ -54,7 +56,8 @@ public class VtnStationsResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start VtnStationsResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
index 6492cd820b3b5e975d65bdfe390299599460e076..46c0e7b400460bb4cf5466e56066ec0e43f4c867 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -38,6 +38,7 @@ public class VtnsResource extends AbstractResource {
        /** The Constant LOG. */
        private static final Logger LOG = Logger.getLogger(VtnsResource.class
                        .getName());
+
        /**
         * Instantiates a new vtns resource.
         */
@@ -46,6 +47,7 @@ public class VtnsResource extends AbstractResource {
                setValidator(new VtnResourceValidator(this));
                LOG.trace("Completed VtnsResource#VtnsResource()");
        }
+
        /**
         * Implementation of Post method of vtn API
         * 
@@ -80,14 +82,14 @@ public class VtnsResource extends AbstractResource {
                        LOG.debug("Complete Ipc framework call");
                } catch (final VtnServiceException e) {
                        getExceptionHandler()
-                       .raise(Thread.currentThread().getStackTrace()[1]
-                                       .getClassName()
-                                       + VtnServiceConsts.HYPHEN
-                                       + Thread.currentThread().getStackTrace()[1]
-                                                       .getMethodName(),
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR
-                                                       .getErrorMessage(), e);
+                                                                       .getErrorMessage(), e);
                        throw e;
                } finally {
                        if (status == ClientSession.RESP_FATAL) {
@@ -104,6 +106,7 @@ public class VtnsResource extends AbstractResource {
                LOG.trace("Completed VtnsResource#put()");
                return status;
        }
+
        /**
         * Implementation of Get method of vtn API
         * 
@@ -138,36 +141,38 @@ public class VtnsResource extends AbstractResource {
                        status = requestProcessor.processIpcRequest();
                        LOG.debug("Request packet processed with status" + status);
                        final IpcLogicalResponseFactory responseGenerator = new IpcLogicalResponseFactory();
-                       /*setInfo(responseGenerator.getVtnResponse(
-                                       requestProcessor.getIpcResponsePacket(), requestBody,
-                                       VtnServiceJsonConsts.LIST));*/
+                       /*
+                        * setInfo(responseGenerator.getVtnResponse(
+                        * requestProcessor.getIpcResponsePacket(), requestBody,
+                        * VtnServiceJsonConsts.LIST));
+                        */
                        JsonObject responseJson = responseGenerator.getVtnResponse(
                                        requestProcessor.getIpcResponsePacket(), requestBody,
                                        VtnServiceJsonConsts.LIST);
                        if (responseJson.get(VtnServiceJsonConsts.VTNS).isJsonArray()) {
-                               JsonArray responseArray = responseJson.get(
+                               final JsonArray responseArray = responseJson.get(
                                                VtnServiceJsonConsts.VTNS).getAsJsonArray();
 
                                responseJson = getResponseJsonArrayLogical(requestBody,
-                                               requestProcessor,responseGenerator,
-                                               responseArray, VtnServiceJsonConsts.VTNS,
+                                               requestProcessor, responseGenerator, responseArray,
+                                               VtnServiceJsonConsts.VTNS,
                                                VtnServiceJsonConsts.VTNNAME,
-                                               IpcRequestPacketEnum.KT_VTN_GET,
-                                               uriParameterList,VtnServiceIpcConsts.GET_VTN_RESPONSE);
+                                               IpcRequestPacketEnum.KT_VTN_GET, uriParameterList,
+                                               VtnServiceIpcConsts.GET_VTN_RESPONSE);
                        }
                        setInfo(responseJson);
                        LOG.debug("Response object created successfully");
                        LOG.debug("Complete Ipc framework call");
                } catch (final VtnServiceException e) {
                        getExceptionHandler()
-                       .raise(Thread.currentThread().getStackTrace()[1]
-                                       .getClassName()
-                                       + VtnServiceConsts.HYPHEN
-                                       + Thread.currentThread().getStackTrace()[1]
-                                                       .getMethodName(),
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR
-                                                       .getErrorMessage(), e);
+                                                                       .getErrorMessage(), e);
                        throw e;
                } finally {
                        if (status == ClientSession.RESP_FATAL) {
@@ -184,6 +189,7 @@ public class VtnsResource extends AbstractResource {
                LOG.trace("Completed VtnsResource#get()");
                return status;
        }
+
        /**
         * Add URI parameters to list
         * 
@@ -199,4 +205,4 @@ public class VtnsResource extends AbstractResource {
                LOG.trace("Completed VtnsResource#getUriParameters()");
                return uriParameters;
        }
-}
\ No newline at end of file
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/package-info.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/logical/package-info.java
new file mode 100644 (file)
index 0000000..fedbebe
--- /dev/null
@@ -0,0 +1,14 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * Package contains Java API Resource classes for logical APIs .
+ */
+package org.opendaylight.vtn.javaapi.resources.logical;
+
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/DestinationControllerResource.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/DestinationControllerResource.java
new file mode 100644 (file)
index 0000000..4800b02
--- /dev/null
@@ -0,0 +1,304 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.resources.openstack;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+
+import com.google.gson.JsonObject;
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.RestResource;
+import org.opendaylight.vtn.javaapi.annotation.UNCVtnService;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
+import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
+import org.opendaylight.vtn.javaapi.init.VtnServiceInitManager;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum.UncResultCode;
+import org.opendaylight.vtn.javaapi.openstack.constants.VtnServiceOpenStackConsts;
+import org.opendaylight.vtn.javaapi.openstack.dao.DestinationControllerDao;
+import org.opendaylight.vtn.javaapi.openstack.validation.DestinationControllerResourceValidator;
+import org.opendaylight.vtn.javaapi.resources.AbstractResource;
+
+/**
+ * Resource class for handling PUT, DELETE and GET requests for Destination
+ * Controller
+ */
+@UNCVtnService(path = VtnServiceOpenStackConsts.DEST_CTRL_PATH)
+public class DestinationControllerResource extends AbstractResource {
+
+       /* Logger instance */
+       private static final Logger LOG = Logger
+                       .getLogger(DestinationControllerResource.class.getName());
+
+       /**
+        * Constructor that initialize the validation instance for current resource
+        * instance
+        */
+       public DestinationControllerResource() {
+               setValidator(new DestinationControllerResourceValidator(this));
+       }
+
+       /**
+        * Handler method for PUT operation of DestinationController
+        * 
+        * @see org.opendaylight.vtn.javaapi.resources.AbstractResource#put(com.
+        *      google.gson.JsonObject)
+        */
+       @Override
+       public int put(JsonObject requestBody) throws VtnServiceException {
+               LOG.trace("Start TenantResource#put()");
+
+               int errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+
+               boolean isCommitRequired = false;
+               Connection connection = null;
+
+               final String controllerId = requestBody.get(
+                               VtnServiceOpenStackConsts.ID).getAsString();
+
+               try {
+                       LOG.debug("Set operation for controller_id : " + controllerId);
+
+                       connection = VtnServiceInitManager.getDbConnectionPoolMap()
+                                       .getConnection();
+
+                       final RestResource restResource = new RestResource();
+
+                       /*
+                        * execute Get Controller request
+                        */
+                       StringBuilder sb = new StringBuilder();
+                       sb.append(VtnServiceOpenStackConsts.CTRL_PATH);
+                       sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+                       sb.append(controllerId);
+
+                       restResource.setPath(sb.toString());
+                       restResource.setSessionID(getSessionID());
+                       restResource.setConfigID(getConfigID());
+                       errorCode = restResource.get(new JsonObject());
+
+                       if (errorCode == UncResultCode.UNC_SUCCESS.getValue()) {
+                               if (restResource.getInfo().get(VtnServiceJsonConsts.CONTROLLER)
+                                               .isJsonNull()
+                                               || restResource.getInfo().getAsJsonObject()
+                                                               .get(VtnServiceJsonConsts.CONTROLLER)
+                                                               .getAsJsonObject()
+                                                               .get(VtnServiceJsonConsts.CONTROLLERID)
+                                                               .getAsString().isEmpty()) {
+
+                                       LOG.error("Controller does not exist at UNC.");
+
+                                       createErrorInfo(
+                                                       UncResultCode.UNC_CTRL_NOT_FOUND.getValue(),
+                                                       getCutomErrorMessage(
+                                                                       UncResultCode.UNC_CTRL_NOT_FOUND
+                                                                                       .getMessage(),
+                                                                       VtnServiceJsonConsts.CONTROLLERID,
+                                                                       controllerId));
+                               } else {
+                                       LOG.info("Controller exists at UNC.");
+
+                                       final DestinationControllerDao destControllerDao = new DestinationControllerDao();
+                                       final int status = destControllerDao
+                                                       .setDestinationController(connection, controllerId);
+
+                                       if (status == 1) {
+                                               isCommitRequired = true;
+                                               errorCode = UncResultCode.UNC_SUCCESS.getValue();
+                                               LOG.info("Database insertion is successful for Controller id.");
+                                       } else {
+                                               LOG.error("Database insertion is failed for Controller id.");
+                                       }
+                               }
+                       }
+
+                       /*
+                        * If all processing are OK, commit all the database transaction
+                        * made for current connection. Otherwise do the roll-back
+                        */
+                       if (isCommitRequired) {
+                               // connection.commit();
+                               setOpenStackConnection(connection);
+                               LOG.info("commit successful");
+                       } else {
+                               connection.rollback();
+                               LOG.info("roll-back successful");
+                       }
+
+                       /*
+                        * set response, if it is not set during processing for set
+                        * destination controller
+                        */
+                       if (errorCode != UncResultCode.UNC_SUCCESS.getValue()) {
+                               if (getInfo() == null) {
+                                       createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR
+                                                       .getValue());
+                               }
+                       }
+
+               } catch (final SQLException exception) {
+                       LOG.error("Internal server error ocuurred.");
+                       if (exception.getSQLState().equalsIgnoreCase(
+                                       VtnServiceOpenStackConsts.CONFLICT_SQL_STATE)) {
+                               LOG.error("Conflict found during setting controller id");
+                               createErrorInfo(
+                                               UncResultCode.UNC_CONFLICT_FOUND.getValue(),
+                                               getCutomErrorMessage(
+                                                               UncResultCode.UNC_CONFLICT_FOUND.getMessage(),
+                                                               VtnServiceJsonConsts.CONTROLLERID, controllerId));
+                       } else {
+                               createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR
+                                               .getValue());
+                       }
+               } finally {
+                       if (connection != null && !isCommitRequired) {
+                               try {
+                                       connection.rollback();
+                               } catch (final SQLException e) {
+                                       LOG.error("Rollback error : " + e);
+                               }
+                               LOG.info("Free connection...");
+                               VtnServiceInitManager.getDbConnectionPoolMap().freeConnection(
+                                               connection);
+                       }
+               }
+               LOG.trace("Complete TenantResource#put()");
+               return errorCode;
+       }
+
+       /**
+        * Handler method for DELETE operation of DestinationController
+        * 
+        * @see org.opendaylight.vtn.javaapi.resources.AbstractResource#delete()
+        */
+       @Override
+       public int delete() throws VtnServiceException {
+               LOG.trace("Start TenantResource#delete()");
+               int errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+
+               boolean isCommitRequired = false;
+
+               Connection connection = null;
+
+               try {
+                       connection = VtnServiceInitManager.getDbConnectionPoolMap()
+                                       .getConnection();
+
+                       LOG.info("Controller exists at UNC.");
+
+                       final DestinationControllerDao destControllerDao = new DestinationControllerDao();
+                       final int status = destControllerDao
+                                       .deleteDestinationController(connection);
+
+                       if (status == 1) {
+                               isCommitRequired = true;
+                               errorCode = UncResultCode.UNC_SUCCESS.getValue();
+                               LOG.info("Database deletion is successful for Controller id.");
+                       } else {
+                               LOG.error("Database deletion is failed for Controller id.");
+                               createErrorInfo(
+                                               UncResultCode.UNC_CTRL_NOT_FOUND.getValue(),
+                                               getCutomErrorMessage(
+                                                               UncResultCode.UNC_CTRL_NOT_FOUND.getMessage(),
+                                                               VtnServiceJsonConsts.CONTROLLERID,
+                                                               VtnServiceConsts.EMPTY_STRING));
+                       }
+
+                       /*
+                        * If all processing are OK, commit all the database transaction
+                        * made for current connection. Otherwise do the roll-back
+                        */
+                       if (isCommitRequired) {
+                               // connection.commit();
+                               setOpenStackConnection(connection);
+                               LOG.info("commit successful");
+                       } else {
+                               connection.rollback();
+                               LOG.info("roll-back successful");
+                       }
+
+                       /*
+                        * set response, if it is not set during processing for set
+                        * destination controller
+                        */
+                       if (errorCode != UncResultCode.UNC_SUCCESS.getValue()) {
+                               if (getInfo() == null) {
+                                       createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR
+                                                       .getValue());
+                               }
+                       }
+               } catch (final SQLException exception) {
+                       LOG.error("Internal server error ocuurred.");
+                       createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR.getValue());
+               } finally {
+                       if (connection != null && !isCommitRequired) {
+                               try {
+                                       connection.rollback();
+                               } catch (final SQLException e) {
+                                       LOG.error("Rollback error : " + e);
+                               }
+                               LOG.info("Free connection...");
+                               VtnServiceInitManager.getDbConnectionPoolMap().freeConnection(
+                                               connection);
+                       }
+               }
+               LOG.trace("Complete TenantResource#delete()");
+               return errorCode;
+       }
+
+       /**
+        * Handler method for GET operation of DestinationController
+        * 
+        * @see org.opendaylight.vtn.javaapi.resources.AbstractResource#get()
+        */
+       @Override
+       public int get() throws VtnServiceException {
+               LOG.trace("Start TenantResource#get()");
+
+               int errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+
+               Connection connection = null;
+
+               try {
+                       connection = VtnServiceInitManager.getDbConnectionPoolMap()
+                                       .getConnection();
+
+                       final DestinationControllerDao destControllerDao = new DestinationControllerDao();
+                       final String controllerId = destControllerDao
+                                       .getDestinationController(connection);
+
+                       final JsonObject root = new JsonObject();
+                       if (controllerId != null && !controllerId.isEmpty()) {
+                               errorCode = UncResultCode.UNC_SUCCESS.getValue();
+                               LOG.info("Database retrieval is successful for Controller id.");
+                               root.addProperty(VtnServiceOpenStackConsts.ID, controllerId);
+                               setInfo(root);
+                       } else {
+                               LOG.info("Controller id not available.");
+                               createErrorInfo(
+                                               UncResultCode.UNC_CTRL_NOT_FOUND.getValue(),
+                                               getCutomErrorMessage(
+                                                               UncResultCode.UNC_CTRL_NOT_FOUND.getMessage(),
+                                                               VtnServiceJsonConsts.CONTROLLERID,
+                                                               VtnServiceConsts.EMPTY_STRING));
+                       }
+               } catch (final SQLException exception) {
+                       LOG.error("Internal server error ocuurred.");
+                       createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR.getValue());
+               } finally {
+                       if (connection != null) {
+                               LOG.info("Free connection...");
+                               VtnServiceInitManager.getDbConnectionPoolMap().freeConnection(
+                                               connection);
+                       }
+               }
+               LOG.trace("Complete TenantResource#get()");
+               return errorCode;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/NetworkResource.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/NetworkResource.java
new file mode 100644 (file)
index 0000000..3ef0775
--- /dev/null
@@ -0,0 +1,347 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.resources.openstack;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+
+import com.google.gson.JsonObject;
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.RestResource;
+import org.opendaylight.vtn.javaapi.annotation.UNCField;
+import org.opendaylight.vtn.javaapi.annotation.UNCVtnService;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
+import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
+import org.opendaylight.vtn.javaapi.init.VtnServiceInitManager;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum.UncResultCode;
+import org.opendaylight.vtn.javaapi.openstack.beans.FreeCounterBean;
+import org.opendaylight.vtn.javaapi.openstack.beans.VBridgeBean;
+import org.opendaylight.vtn.javaapi.openstack.beans.VtnBean;
+import org.opendaylight.vtn.javaapi.openstack.constants.VtnServiceOpenStackConsts;
+import org.opendaylight.vtn.javaapi.openstack.convertor.VbrResourcesGenerator;
+import org.opendaylight.vtn.javaapi.openstack.dao.VBridgeDao;
+import org.opendaylight.vtn.javaapi.openstack.dao.VtnDao;
+import org.opendaylight.vtn.javaapi.openstack.dbmanager.ResourceIdManager;
+import org.opendaylight.vtn.javaapi.openstack.validation.NetworkResourceValidator;
+import org.opendaylight.vtn.javaapi.resources.AbstractResource;
+
+/**
+ * Resource class for handling PUT and DELETE requests for Network
+ */
+@UNCVtnService(path = VtnServiceOpenStackConsts.NETWORK_PATH)
+public class NetworkResource extends AbstractResource {
+
+       /* Logger instance */
+       private static final Logger LOG = Logger.getLogger(NetworkResource.class
+                       .getName());
+
+       @UNCField(VtnServiceOpenStackConsts.TENANT_ID)
+       private String tenantId;
+
+       @UNCField(VtnServiceOpenStackConsts.NET_ID)
+       private String netId;
+
+       /**
+        * Constructor that initialize the validation instance for current resource
+        * instance
+        */
+       public NetworkResource() {
+               setValidator(new NetworkResourceValidator(this));
+       }
+
+       /**
+        * Getter of tenantId
+        * 
+        * @return
+        */
+       public String getTenantId() {
+               return tenantId;
+       }
+
+       /**
+        * Getter of netId
+        * 
+        * @return
+        */
+       public String getNetId() {
+               return netId;
+       }
+
+       /**
+        * Handler method for PUT operation of Network
+        * 
+        * @see org.opendaylight.vtn.javaapi.resources.AbstractResource#put(com.
+        *      google.gson.JsonObject)
+        */
+       @Override
+       public int put(JsonObject requestBody) throws VtnServiceException {
+               LOG.trace("Start NetworkResource#put()");
+
+               int errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+
+               Connection connection = null;
+
+               try {
+                       connection = VtnServiceInitManager.getDbConnectionPoolMap()
+                                       .getConnection();
+
+                       /*
+                        * Check for instances that they exists or not, if not then return
+                        * 404 error
+                        */
+                       if (checkForNotFoundResources(connection)) {
+
+                               final RestResource restResource = new RestResource();
+
+                               errorCode = updateVBridge(requestBody, restResource);
+
+                               if (errorCode == UncCommonEnum.UncResultCode.UNC_SUCCESS
+                                               .getValue()) {
+                                       LOG.error("vBridge Update at UNC is successful.");
+                               } else {
+                                       LOG.info("vBridge Update at UNC is failed.");
+                               }
+                               checkForSpecificErrors(restResource.getInfo());
+                       } else {
+                               LOG.error("Resource not found error.");
+                       }
+                       /*
+                        * set response, if it is not set during above processing
+                        */
+                       if (errorCode != UncResultCode.UNC_SUCCESS.getValue()) {
+                               if (getInfo() == null) {
+                                       createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR
+                                                       .getValue());
+                               }
+                       }
+               } catch (final SQLException exception) {
+                       LOG.error("Internal server error : " + exception);
+                       errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+                       createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR.getValue());
+               } finally {
+                       if (connection != null) {
+                               LOG.info("Free connection...");
+                               VtnServiceInitManager.getDbConnectionPoolMap().freeConnection(
+                                               connection);
+                       }
+               }
+               LOG.trace("Complete NetworkResource#put()");
+               return errorCode;
+       }
+
+       /**
+        * Handler method for DELETE operation of Network
+        * 
+        * @see org.opendaylight.vtn.javaapi.resources.AbstractResource#delete()
+        */
+       @Override
+       public int delete() throws VtnServiceException {
+               LOG.trace("Start NetworkResource#delete()");
+
+               int errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+
+               boolean isCommitRequired = false;
+               Connection connection = null;
+
+               try {
+                       connection = VtnServiceInitManager.getDbConnectionPoolMap()
+                                       .getConnection();
+
+                       /*
+                        * Check for instances that they exists or not, if not then return
+                        * 404 error
+                        */
+                       if (checkForNotFoundResources(connection)) {
+
+                               final VBridgeBean vBridgeBean = new VBridgeBean();
+
+                               final String counter = getNetId().replace(
+                                               VtnServiceOpenStackConsts.VBR_PREFIX,
+                                               VtnServiceConsts.EMPTY_STRING);
+                               try {
+                                       vBridgeBean.setVbrId(Integer.parseInt(counter));
+                               } catch (final NumberFormatException e) {
+                                       LOG.debug("Resource Id was not auto-generated during Create operation : "
+                                                       + counter);
+                                       vBridgeBean.setVbrId(0);
+                               }
+                               final ResourceIdManager resourceIdManager = new ResourceIdManager();
+
+                               vBridgeBean.setVtnName(getTenantId());
+                               vBridgeBean.setVbrName(getNetId());
+
+                               final FreeCounterBean freeCounterBean = new FreeCounterBean();
+                               freeCounterBean
+                                               .setResourceId(VtnServiceOpenStackConsts.NETWORK_RES_ID);
+                               freeCounterBean.setVtnName(getTenantId());
+                               freeCounterBean.setResourceCounter(vBridgeBean.getVbrId());
+
+                               if (resourceIdManager.deleteResourceId(connection,
+                                               freeCounterBean, vBridgeBean)) {
+                                       LOG.info("Deletion operation from database is successfull.");
+
+                                       final RestResource restResource = new RestResource();
+
+                                       errorCode = deleteVBridge(restResource);
+
+                                       if (errorCode == UncCommonEnum.UncResultCode.UNC_SUCCESS
+                                                       .getValue()) {
+                                               LOG.error("vBridge Deletion successful at UNC.");
+                                               isCommitRequired = true;
+                                       } else {
+                                               LOG.error("vBridge Deletion failed at UNC.");
+                                       }
+                                       checkForSpecificErrors(restResource.getInfo());
+                               } else {
+                                       LOG.info("Deletion operation from database is falied.");
+                               }
+                       } else {
+                               LOG.error("Resource not found error.");
+                       }
+
+                       /*
+                        * If all processing are OK, the commit all the database transaction
+                        * made for current connection. Otherwise do the roll-back
+                        */
+                       if (isCommitRequired) {
+                               // connection.commit();
+                               setOpenStackConnection(connection);
+                               LOG.info("Resource insertion successful in database.");
+                       } else {
+                               connection.rollback();
+                               LOG.info("Resource insertion is roll-backed.");
+                       }
+
+                       /*
+                        * set response, if it is not set during above processing
+                        */
+                       if (errorCode != UncResultCode.UNC_SUCCESS.getValue()) {
+                               if (getInfo() == null) {
+                                       createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR
+                                                       .getValue());
+                               }
+                       }
+               } catch (final SQLException exception) {
+                       LOG.error("Internal server error ocuurred.");
+                       errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+                       createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR.getValue());
+               } finally {
+                       if (connection != null && !isCommitRequired) {
+                               try {
+                                       connection.rollback();
+                               } catch (final SQLException e) {
+                                       LOG.error("Rollback error : " + e);
+                               }
+                               LOG.info("Free connection...");
+                               VtnServiceInitManager.getDbConnectionPoolMap().freeConnection(
+                                               connection);
+                       }
+               }
+               LOG.trace("Complete NetworkResource#delete()");
+               return errorCode;
+       }
+
+       /**
+        * Delete VBridge at UNC
+        * 
+        * @param restResource
+        *            - RestResource instance
+        * @return - erorrCode, 200 for Success
+        */
+       private int deleteVBridge(final RestResource restResource) {
+               /*
+                * execute delete vBridge request
+                */
+               StringBuilder sb = new StringBuilder();
+               sb.append(VtnServiceOpenStackConsts.VTN_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getTenantId());
+               sb.append(VtnServiceOpenStackConsts.VBRIDGE_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getNetId());
+
+               restResource.setPath(sb.toString());
+               restResource.setSessionID(getSessionID());
+               restResource.setConfigID(getConfigID());
+               return restResource.delete();
+       }
+
+       /**
+        * Update VBridge at UNC
+        * 
+        * @param requestBody
+        *            - OpenStack request body
+        * @param restResource
+        *            - RestResource instance
+        * @return - erorrCode, 200 for Success
+        */
+       private int updateVBridge(JsonObject requestBody,
+                       final RestResource restResource) {
+               /*
+                * Create request body for vBridge update
+                */
+               final JsonObject vbrRequestBody = VbrResourcesGenerator
+                               .getUpdateVbrRequestBody(requestBody);
+
+               /*
+                * execute update vBridge request
+                */
+               StringBuilder sb = new StringBuilder();
+               sb.append(VtnServiceOpenStackConsts.VTN_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getTenantId());
+               sb.append(VtnServiceOpenStackConsts.VBRIDGE_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getNetId());
+
+               restResource.setPath(sb.toString());
+               restResource.setSessionID(getSessionID());
+               restResource.setConfigID(getConfigID());
+
+               return restResource.put(vbrRequestBody);
+       }
+
+       /**
+        * Checks that specified instances in URI exists in system or not. If they
+        * are not exists then prepare error JSON for 404 Not Found
+        * 
+        * @param connection
+        *            - Database Connection instance
+        * @return - true, only if all instances exist
+        * @throws SQLException
+        */
+       private boolean checkForNotFoundResources(Connection connection)
+                       throws SQLException {
+               boolean notFoundStatus = false;
+               VtnBean vtnBean = new VtnBean();
+               vtnBean.setVtnName(getTenantId());
+               if (new VtnDao().isVtnFound(connection, vtnBean)) {
+                       VBridgeBean vBridgeBean = new VBridgeBean();
+                       vBridgeBean.setVtnName(getTenantId());
+                       vBridgeBean.setVbrName(getNetId());
+                       if (new VBridgeDao().isVbrFound(connection, vBridgeBean)) {
+                               notFoundStatus = true;
+                       } else {
+                               createErrorInfo(
+                                               UncResultCode.UNC_NOT_FOUND.getValue(),
+                                               getCutomErrorMessage(
+                                                               UncResultCode.UNC_NOT_FOUND.getMessage(),
+                                                               VtnServiceOpenStackConsts.NET_ID, getNetId()));
+                       }
+               } else {
+                       createErrorInfo(
+                                       UncResultCode.UNC_NOT_FOUND.getValue(),
+                                       getCutomErrorMessage(
+                                                       UncResultCode.UNC_NOT_FOUND.getMessage(),
+                                                       VtnServiceOpenStackConsts.TENANT_ID, getTenantId()));
+               }
+               return notFoundStatus;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/NetworksResource.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/NetworksResource.java
new file mode 100644 (file)
index 0000000..bd0e9b8
--- /dev/null
@@ -0,0 +1,324 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.resources.openstack;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+
+import com.google.gson.JsonObject;
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.RestResource;
+import org.opendaylight.vtn.javaapi.annotation.UNCField;
+import org.opendaylight.vtn.javaapi.annotation.UNCVtnService;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
+import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
+import org.opendaylight.vtn.javaapi.init.VtnServiceInitManager;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum.UncResultCode;
+import org.opendaylight.vtn.javaapi.openstack.beans.FreeCounterBean;
+import org.opendaylight.vtn.javaapi.openstack.beans.VBridgeBean;
+import org.opendaylight.vtn.javaapi.openstack.beans.VtnBean;
+import org.opendaylight.vtn.javaapi.openstack.constants.VtnServiceOpenStackConsts;
+import org.opendaylight.vtn.javaapi.openstack.convertor.VbrResourcesGenerator;
+import org.opendaylight.vtn.javaapi.openstack.dao.DestinationControllerDao;
+import org.opendaylight.vtn.javaapi.openstack.dao.VBridgeDao;
+import org.opendaylight.vtn.javaapi.openstack.dao.VtnDao;
+import org.opendaylight.vtn.javaapi.openstack.dbmanager.ResourceIdManager;
+import org.opendaylight.vtn.javaapi.openstack.validation.NetworkResourceValidator;
+import org.opendaylight.vtn.javaapi.resources.AbstractResource;
+
+/**
+ * Resource class for handling POST requests for Network
+ */
+@UNCVtnService(path = VtnServiceOpenStackConsts.NETWORKS_PATH)
+public class NetworksResource extends AbstractResource {
+
+       /* Logger instance */
+       private static final Logger LOG = Logger.getLogger(NetworksResource.class
+                       .getName());
+
+       @UNCField(VtnServiceOpenStackConsts.TENANT_ID)
+       private String tenantId;
+
+       /**
+        * Constructor that initialize the validation instance for current resource
+        * instance
+        */
+       public NetworksResource() {
+               setValidator(new NetworkResourceValidator(this));
+       }
+
+       /**
+        * Getter of tenantId
+        * 
+        * @return
+        */
+       public String getTenantId() {
+               return tenantId;
+       }
+
+       /**
+        * Handler method for POST operation of Network
+        * 
+        * @see org.opendaylight.vtn.javaapi.resources.AbstractResource#post(com
+        *      .google.gson.JsonObject)
+        */
+       @Override
+       public int post(JsonObject requestBody) throws VtnServiceException {
+               LOG.trace("Start NetworksResource#post()");
+
+               int errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+
+               boolean isCommitRequired = false;
+               String generatedVbrName = null;
+               Connection connection = null;
+
+               try {
+                       connection = VtnServiceInitManager.getDbConnectionPoolMap()
+                                       .getConnection();
+
+                       /*
+                        * Check for instances that they exists or not, if not then return
+                        * 404 error
+                        */
+                       if (checkForNotFoundResources(connection)) {
+                               final ResourceIdManager resourceIdManager = new ResourceIdManager();
+                               int counter = -1;
+                               /*
+                                * auto-generation process, based on the availability of "id"
+                                * parameter in request body
+                                */
+                               if (!requestBody.has(VtnServiceOpenStackConsts.ID)) {
+                                       LOG.info("Resource id auto-generation is required.");
+
+                                       final FreeCounterBean freeCounterBean = new FreeCounterBean();
+                                       freeCounterBean
+                                                       .setResourceId(VtnServiceOpenStackConsts.NETWORK_RES_ID);
+                                       freeCounterBean.setVtnName(getTenantId());
+
+                                       counter = resourceIdManager.getResourceId(connection,
+                                                       freeCounterBean);
+                                       if (counter != -1) {
+                                               LOG.debug("Resource id auto-generation is successfull : "
+                                                               + counter);
+                                               // if id is generated successfully
+                                               generatedVbrName = VtnServiceOpenStackConsts.VBR_PREFIX
+                                                               + counter;
+                                               requestBody.addProperty(VtnServiceOpenStackConsts.ID,
+                                                               generatedVbrName);
+                                       } else {
+                                               LOG.error("Resource id auto-generation is failed.");
+                                       }
+                               } else {
+                                       LOG.info("Resource id auto-generation is not required.");
+                                       counter = 0;
+                                       generatedVbrName = requestBody.get(
+                                                       VtnServiceOpenStackConsts.ID).getAsString();
+                               }
+
+                               LOG.debug("Counter : " + counter);
+                               LOG.debug("vbr_name : " + generatedVbrName);
+
+                               if (counter >= 0 && setControllerId(connection, requestBody)) {
+                                       /*
+                                        * resource insertion in database, if is is successful then
+                                        * continue to execute operations at UNC. Otherwise return
+                                        * HTTP 409
+                                        */
+                                       final VBridgeBean vBridgeBean = new VBridgeBean();
+                                       vBridgeBean.setVbrId(counter);
+                                       vBridgeBean.setVtnName(getTenantId());
+                                       vBridgeBean.setVbrName(generatedVbrName);
+
+                                       final VBridgeDao vBridgeDao = new VBridgeDao();
+                                       final int status = vBridgeDao.insert(connection,
+                                                       vBridgeBean);
+
+                                       if (status == 1) {
+                                               LOG.info("Resource insertion successful at database operation.");
+
+                                               final RestResource restResource = new RestResource();
+
+                                               errorCode = createVBridge(requestBody, restResource);
+
+                                               if (errorCode == UncCommonEnum.UncResultCode.UNC_SUCCESS
+                                                               .getValue()) {
+                                                       LOG.info("vBridge creation is successful at UNC.");
+                                                       isCommitRequired = true;
+                                                       if (counter != 0) {
+                                                               final JsonObject response = new JsonObject();
+                                                               response.addProperty(VtnServiceOpenStackConsts.ID,
+                                                                               generatedVbrName);
+                                                               setInfo(response);
+                                                       }
+                                               } else {
+                                                       LOG.error("vBridge creation is failed at UNC.");
+                                               }
+                                               checkForSpecificErrors(restResource.getInfo());
+                                       } else {
+                                               LOG.error("Resource insertion failed at database operation.");
+                                       }
+                               } else {
+                                       LOG.error("Error occurred while generation of id or setting controller_id");
+                               }
+                       } else {
+                               LOG.error("Resource not found error.");
+                       }
+
+                       /*
+                        * If all processing are OK, the commit all the database transaction
+                        * made for current connection. Otherwise do the roll-back
+                        */
+                       if (isCommitRequired) {
+                               // connection.commit();
+                               setOpenStackConnection(connection);
+                               LOG.info("Resource insertion successful in database.");
+                       } else {
+                               connection.rollback();
+                               LOG.info("Resource insertion is roll-backed.");
+                       }
+
+                       /*
+                        * set response, if it is not set during processing for create
+                        * tenant
+                        */
+                       if (errorCode != UncResultCode.UNC_SUCCESS.getValue()) {
+                               if (getInfo() == null) {
+                                       createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR
+                                                       .getValue());
+                               }
+                       }
+               } catch (final SQLException exception) {
+                       LOG.error("Internal server error : " + exception);
+                       errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+                       if (exception.getSQLState().equalsIgnoreCase(
+                                       VtnServiceOpenStackConsts.CONFLICT_SQL_STATE)) {
+                               LOG.error("Conflict found during creation of resource");
+                               createErrorInfo(
+                                               UncResultCode.UNC_CONFLICT_FOUND.getValue(),
+                                               getCutomErrorMessage(
+                                                               UncResultCode.UNC_CONFLICT_FOUND.getMessage(),
+                                                               VtnServiceOpenStackConsts.NET_ID,
+                                                               generatedVbrName));
+                       } else {
+                               createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR
+                                               .getValue());
+                       }
+               } finally {
+                       if (connection != null && !isCommitRequired) {
+                               try {
+                                       connection.rollback();
+                                       LOG.info("roll-back successful.");
+                               } catch (final SQLException e) {
+                                       LOG.error("Rollback error : " + e);
+                               }
+                               LOG.info("Free connection...");
+                               VtnServiceInitManager.getDbConnectionPoolMap().freeConnection(
+                                               connection);
+                       }
+               }
+               LOG.trace("Complete NetworksResource#post()");
+               return errorCode;
+       }
+
+       /**
+        * Create VBridge at UNC
+        * 
+        * @param requestBody
+        *            - OpenStack request body
+        * @param restResource
+        *            - RestResource instance
+        * @return - erorrCode, 200 for Success
+        */
+       private int createVBridge(JsonObject requestBody,
+                       final RestResource restResource) {
+               /*
+                * Create request body for vBridge creation
+                */
+               final JsonObject vbrRequestBody = VbrResourcesGenerator
+                               .getCreateVbrRequestBody(requestBody);
+               /*
+                * execute create vBridge request
+                */
+               StringBuilder sb = new StringBuilder();
+               sb.append(VtnServiceOpenStackConsts.VTN_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getTenantId());
+               sb.append(VtnServiceOpenStackConsts.VBRIDGE_PATH);
+
+               restResource.setPath(sb.toString());
+               restResource.setSessionID(getSessionID());
+               restResource.setConfigID(getConfigID());
+
+               return restResource.post(vbrRequestBody);
+       }
+
+       /**
+        * Retrieve controller_id from database and add the parameter in request
+        * body
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @param requestBody
+        *            - JSON request body
+        * @return - true, if controller_id is set
+        * @throws SQLException
+        */
+       private boolean setControllerId(Connection connection,
+                       JsonObject requestBody) throws SQLException {
+               boolean controllerAvailable = true;
+               final DestinationControllerDao destControllerDao = new DestinationControllerDao();
+               final String controllerId = destControllerDao
+                               .getDestinationController(connection);
+
+               if (controllerId != null && !controllerId.isEmpty()) {
+                       LOG.info("Database retrieval is successful for Controller id : "
+                                       + controllerId);
+                       requestBody.addProperty(VtnServiceJsonConsts.CONTROLLERID,
+                                       controllerId);
+               } else {
+                       LOG.error("Database retrieval is failed for Controller id.");
+                       controllerAvailable = false;
+                       createErrorInfo(
+                                       UncResultCode.UNC_CTRL_NOT_FOUND.getValue(),
+                                       getCutomErrorMessage(
+                                                       UncResultCode.UNC_CTRL_NOT_FOUND.getMessage(),
+                                                       VtnServiceJsonConsts.CONTROLLERID,
+                                                       VtnServiceConsts.EMPTY_STRING));
+               }
+               return controllerAvailable;
+       }
+
+       /**
+        * Checks that specified instances in URI exists in system or not. If they
+        * are not exists then prepare error JSON for 404 Not Found
+        * 
+        * @param connection
+        *            - Database Connection instance
+        * @return - true, only if all instances exist
+        * @throws SQLException
+        */
+       private boolean checkForNotFoundResources(Connection connection)
+                       throws SQLException {
+               boolean notFoundStatus = false;
+               VtnBean vtnBean = new VtnBean();
+               vtnBean.setVtnName(getTenantId());
+               if (new VtnDao().isVtnFound(connection, vtnBean)) {
+                       notFoundStatus = true;
+               } else {
+                       createErrorInfo(
+                                       UncResultCode.UNC_NOT_FOUND.getValue(),
+                                       getCutomErrorMessage(
+                                                       UncResultCode.UNC_NOT_FOUND.getMessage(),
+                                                       VtnServiceOpenStackConsts.TENANT_ID, getTenantId()));
+               }
+               return notFoundStatus;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/PortResource.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/PortResource.java
new file mode 100644 (file)
index 0000000..bdf469e
--- /dev/null
@@ -0,0 +1,491 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.resources.openstack;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.RestResource;
+import org.opendaylight.vtn.javaapi.annotation.UNCField;
+import org.opendaylight.vtn.javaapi.annotation.UNCVtnService;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
+import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
+import org.opendaylight.vtn.javaapi.init.VtnServiceInitManager;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum.UncResultCode;
+import org.opendaylight.vtn.javaapi.openstack.beans.FreeCounterBean;
+import org.opendaylight.vtn.javaapi.openstack.beans.VBridgeBean;
+import org.opendaylight.vtn.javaapi.openstack.beans.VBridgeInterfaceBean;
+import org.opendaylight.vtn.javaapi.openstack.beans.VtnBean;
+import org.opendaylight.vtn.javaapi.openstack.constants.VtnServiceOpenStackConsts;
+import org.opendaylight.vtn.javaapi.openstack.dao.VBridgeDao;
+import org.opendaylight.vtn.javaapi.openstack.dao.VBridgeInterfaceDao;
+import org.opendaylight.vtn.javaapi.openstack.dao.VtnDao;
+import org.opendaylight.vtn.javaapi.openstack.dbmanager.ResourceIdManager;
+import org.opendaylight.vtn.javaapi.openstack.validation.PortResourceValidator;
+import org.opendaylight.vtn.javaapi.resources.AbstractResource;
+
+/**
+ * Resource class for handling DELETE requests for Port
+ */
+@UNCVtnService(path = VtnServiceOpenStackConsts.PORT_PATH)
+public class PortResource extends AbstractResource {
+
+       /* Logger instance */
+       private static final Logger LOG = Logger.getLogger(PortResource.class
+                       .getName());
+
+       @UNCField(VtnServiceOpenStackConsts.TENANT_ID)
+       private String tenantId;
+
+       @UNCField(VtnServiceOpenStackConsts.NET_ID)
+       private String netId;
+
+       @UNCField(VtnServiceOpenStackConsts.PORT_ID)
+       private String portId;
+
+       /**
+        * Getter of tenantId
+        * 
+        * @return
+        */
+       public String getTenantId() {
+               return tenantId;
+       }
+
+       /**
+        * Getter of netId
+        * 
+        * @return
+        */
+       public String getNetId() {
+               return netId;
+       }
+
+       /**
+        * Getter of portId
+        * 
+        * @return
+        */
+       public String getPortId() {
+               return portId;
+       }
+
+       /**
+        * Constructor that initialize the validation instance for current resource
+        * instance
+        */
+       public PortResource() {
+               setValidator(new PortResourceValidator(this));
+       }
+
+       /**
+        * Handler method for DELETE operation of Port
+        * 
+        * @see org.opendaylight.vtn.javaapi.resources.AbstractResource#delete()
+        */
+       @Override
+       public int delete() throws VtnServiceException {
+               LOG.trace("Start PortResource#delete()");
+
+               int errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+
+               boolean isCommitRequired = false;
+               Connection connection = null;
+
+               try {
+                       connection = VtnServiceInitManager.getDbConnectionPoolMap()
+                                       .getConnection();
+
+                       /*
+                        * Check for instances that they exists or not, if not then return
+                        * 404 error
+                        */
+                       if (checkForNotFoundResources(connection)) {
+                               final VBridgeInterfaceBean vInterfaceBean = new VBridgeInterfaceBean();
+                               vInterfaceBean.setVtnName(getTenantId());
+                               vInterfaceBean.setVbrName(getNetId());
+                               vInterfaceBean.setVbrIfName(VtnServiceOpenStackConsts.IF_PREFIX
+                                               + getPortId());
+
+                               final String counter = getPortId().replace(
+                                               VtnServiceOpenStackConsts.IF_PREFIX,
+                                               VtnServiceConsts.EMPTY_STRING);
+                               try {
+                                       vInterfaceBean.setVbrIfId(Integer.parseInt(counter));
+                               } catch (final NumberFormatException e) {
+                                       LOG.debug("Resource Id was not auto-generated during Create operation : "
+                                                       + counter);
+                                       vInterfaceBean.setVbrIfId(0);
+                               }
+
+                               final VBridgeInterfaceDao vBridgeInterfaceDao = new VBridgeInterfaceDao();
+                               
+                               /*
+                                * retrieve map_type if vlan-map required to
+                                * be delete
+                                */
+                               final String mapType = vBridgeInterfaceDao.getMapType(
+                                               connection, vInterfaceBean);
+
+                               /*
+                                * retrieve logical_port_id if vlan-map required to
+                                * be delete
+                                */
+                                String logicalPortId = vBridgeInterfaceDao
+                                               .getLogicalPortId(connection,
+                                                               vInterfaceBean);
+                               
+                               final ResourceIdManager resourceIdManager = new ResourceIdManager();
+
+                               final FreeCounterBean freeCounterBean = new FreeCounterBean();
+                               freeCounterBean
+                                               .setResourceId(VtnServiceOpenStackConsts.PORT_RES_ID);
+                               freeCounterBean.setVtnName(getTenantId());
+                               freeCounterBean.setResourceCounter(vInterfaceBean.getVbrIfId());
+
+                               if (resourceIdManager.deleteResourceId(connection,
+                                               freeCounterBean, vInterfaceBean)) {
+                                       /*
+                                        * delete vlan-map or vbridge-interface on the basis of
+                                        * entry from database for map_type
+                                        */
+                                       if (mapType != null) {
+                                               final RestResource restResource = new RestResource();
+                                               if (mapType
+                                                               .equalsIgnoreCase(VtnServiceJsonConsts.VLANMAP)) {
+                                                       LOG.info("vlan-map operation were performed during create Port. vlan-map deletion is required.");
+                                                       int mapModeValue;
+                                                       // read property for map-mode
+                                                       mapModeValue = Integer
+                                                                       .parseInt(VtnServiceInitManager
+                                                                                       .getConfigurationMap()
+                                                                                       .getMapModeValue());
+                                                       /*
+                                                        * map-mode value : 0 - delete vlan-map map-mode
+                                                        * value : 1 - delete all vlan-map map-mode value :
+                                                        * 2 - do nothing
+                                                        */
+                                                       if (mapModeValue == 0) {
+                                                               errorCode = deleteVlanMapModeZero(logicalPortId,
+                                                                               restResource);
+                                                       } else if (mapModeValue == 1) {
+                                                               // retrieve list of all vlan-maps
+                                                               JsonArray vlanmaps = getVlanMapList(
+                                                                               restResource).get(
+                                                                               VtnServiceJsonConsts.VLANMAPS)
+                                                                               .getAsJsonArray();
+                                                               if (vlanmaps != null && vlanmaps.size() != 0) {
+                                                                       boolean counterDeletion = deleteIfCounters(
+                                                                                       connection, vInterfaceBean,
+                                                                                       vBridgeInterfaceDao,
+                                                                                       resourceIdManager, freeCounterBean);
+                                                                       if (counterDeletion) {
+                                                                               // delete all vlan-map one by one
+                                                                               for (JsonElement vlanmap : vlanmaps) {
+                                                                                       logicalPortId = vlanmap
+                                                                                                       .getAsJsonObject()
+                                                                                                       .get(VtnServiceJsonConsts.VLANMAPID)
+                                                                                                       .getAsString();
+                                                                                       errorCode = deleteVlanMap(
+                                                                                                       restResource, logicalPortId);
+                                                                                       if (errorCode != UncResultCode.UNC_SUCCESS
+                                                                                                       .getValue()) {
+                                                                                               /*
+                                                                                                * break if error occurred while
+                                                                                                * deletion of vlan-map
+                                                                                                */
+                                                                                               break;
+                                                                                       }
+                                                                               }
+                                                                       }
+                                                               } else {
+                                                                       LOG.info("No vlan-map is configured");
+                                                               }
+                                                       } else if (mapModeValue == 2) {
+                                                               LOG.debug("map-mode value : 2");
+                                                               errorCode = UncResultCode.UNC_SUCCESS
+                                                                               .getValue();
+                                                       } else {
+                                                               throw new IllegalArgumentException(
+                                                                               "incorrect map-mode value.");
+                                                       }
+                                               } else if (mapType
+                                                               .equalsIgnoreCase(VtnServiceJsonConsts.PORTMAP)) {
+                                                       LOG.info("port-map operation were performed during create Port. vBridge interface deletion is required.");
+                                                       errorCode = deleteVBridgeInterface(restResource);
+                                               } else {
+                                                       LOG.error("Invalid Map type is resolved");
+                                               }
+                                               if (errorCode == UncCommonEnum.UncResultCode.UNC_SUCCESS
+                                                               .getValue()) {
+                                                       LOG.error("port-map/vlan-map Deletion successful at UNC.");
+                                                       isCommitRequired = true;
+                                               } else {
+                                                       errorCode = UncResultCode.UNC_SERVER_ERROR
+                                                                       .getValue();
+                                                       LOG.error("port-map/vlan-map Deletion failed at UNC.");
+                                               }
+                                               checkForSpecificErrors(restResource.getInfo());
+                                       } else {
+                                               LOG.error("Map type is not resolved");
+                                       }
+                               } else {
+                                       LOG.error("Deletion operation from database is falied.");
+                               }
+                       } else {
+                               LOG.error("Resource not found error.");
+                       }
+
+                       /*
+                        * If all processing are OK, the commit all the database transaction
+                        * made for current connection. Otherwise do the roll-back
+                        */
+                       if (isCommitRequired) {
+                               // connection.commit();
+                               setOpenStackConnection(connection);
+                               LOG.info("Resource deletion successful in database.");
+                       } else {
+                               connection.rollback();
+                               LOG.info("Resource deletion is roll-backed.");
+                       }
+
+                       /*
+                        * set response, if it is not set during above processing
+                        */
+                       if (errorCode != UncResultCode.UNC_SUCCESS.getValue()) {
+                               if (getInfo() == null) {
+                                       createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR
+                                                       .getValue());
+                               }
+                       }
+               } catch (final SQLException exception) {
+                       LOG.error("Internal server error ocuurred.");
+                       errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+                       createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR.getValue());
+               } finally {
+                       if (connection != null && !isCommitRequired) {
+                               try {
+                                       connection.rollback();
+                               } catch (final SQLException e) {
+                                       LOG.error("Rollback error : " + e);
+                               }
+                               LOG.info("Free connection...");
+                               VtnServiceInitManager.getDbConnectionPoolMap().freeConnection(
+                                               connection);
+                       }
+               }
+               LOG.trace("Complete PortResource#delete()");
+               return errorCode;
+       }
+
+       /**
+        * Delete all counters for specific vtn_name and vbr_name
+        * 
+        * @param connection
+        * @param vInterfaceBean
+        * @param vBridgeInterfaceDao
+        * @param resourceIdManager
+        * @param freeCounterBean
+        * @return
+        * @throws SQLException
+        */
+       private boolean deleteIfCounters(Connection connection,
+                       final VBridgeInterfaceBean vInterfaceBean,
+                       final VBridgeInterfaceDao vBridgeInterfaceDao,
+                       final ResourceIdManager resourceIdManager,
+                       final FreeCounterBean freeCounterBean) throws SQLException {
+               boolean counterDeletion = true;
+               for (Integer ifId : vBridgeInterfaceDao.getVbrIfIds(connection,
+                               vInterfaceBean)) {
+                       freeCounterBean.setResourceCounter(ifId);
+                       vInterfaceBean.setVbrIfId(ifId);
+                       vInterfaceBean.setVbrIfName(VtnServiceOpenStackConsts.IF_PREFIX
+                                       + ifId);
+                       if (resourceIdManager.deleteResourceId(connection, freeCounterBean,
+                                       vInterfaceBean)) {
+                               LOG.debug("counter is deleted for : " + ifId);
+                       } else {
+                               LOG.info("counter deletion is failed for : " + ifId);
+                               counterDeletion = false;
+                       }
+               }
+               return counterDeletion;
+       }
+
+       /**
+        * Perform delete vlan-map operations in case of map-mode is 0
+        * 
+        * @param errorCode
+        * @param logicalPortId
+        * @param restResource
+        * @return
+        */
+       private int deleteVlanMapModeZero(String logicalPortId,
+                       final RestResource restResource) {
+               int errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();;
+               if (logicalPortId != null
+                               && !logicalPortId.equalsIgnoreCase(VtnServiceJsonConsts.NONE)) {
+                       if (!logicalPortId.equalsIgnoreCase(VtnServiceJsonConsts.NOLPID)) {
+                               /*
+                                * if logical_port_id not provided at the time of creation of
+                                * vlan-map
+                                */
+                               logicalPortId = VtnServiceJsonConsts.LPID
+                                               + VtnServiceConsts.HYPHEN + logicalPortId;
+                       }
+                       errorCode = deleteVlanMap(restResource, logicalPortId);
+               }
+               return errorCode;
+       }
+
+       /**
+        * Delete Port-Map at UNC
+        * 
+        * @param restResource
+        *            - RestResource instance
+        * @return - erorrCode, 200 for Success
+        */
+       private int deleteVBridgeInterface(RestResource restResource) {
+               int errorCode;
+               /*
+                * execute delete port-map request
+                */
+               StringBuilder sb = new StringBuilder();
+               sb.append(VtnServiceOpenStackConsts.VTN_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getTenantId());
+               sb.append(VtnServiceOpenStackConsts.VBRIDGE_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getNetId());
+               sb.append(VtnServiceOpenStackConsts.INTERFACE_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(VtnServiceOpenStackConsts.IF_PREFIX);
+               sb.append(getPortId());
+
+               restResource.setPath(sb.toString());
+               restResource.setSessionID(getSessionID());
+               restResource.setConfigID(getConfigID());
+               errorCode = restResource.delete();
+               return errorCode;
+       }
+
+       /**
+        * Create Vlan-Map at UNC
+        * 
+        * @param restResource
+        *            - RestResource instance
+        * @return - erorrCode, 200 for Success
+        */
+       private int deleteVlanMap(RestResource restResource, String logicalPortId) {
+               /*
+                * execute delete vlan-map request
+                */
+               StringBuilder sb = new StringBuilder();
+               sb.append(VtnServiceOpenStackConsts.VTN_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getTenantId());
+               sb.append(VtnServiceOpenStackConsts.VBRIDGE_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getNetId());
+               sb.append(VtnServiceOpenStackConsts.VLANMAP_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(logicalPortId);
+
+               restResource.setPath(sb.toString());
+               restResource.setSessionID(getSessionID());
+               restResource.setConfigID(getConfigID());
+               return restResource.delete();
+       }
+
+       /**
+        * Checks that specified instances in URI exists in system or not. If they
+        * are not exists then prepare error JSON for 404 Not Found
+        * 
+        * @param connection
+        *            - Database Connection instance
+        * @return - true, only if all instances exist
+        * @throws SQLException
+        */
+       private boolean checkForNotFoundResources(Connection connection)
+                       throws SQLException {
+               boolean notFoundStatus = false;
+               VtnBean vtnBean = new VtnBean();
+               vtnBean.setVtnName(getTenantId());
+               if (new VtnDao().isVtnFound(connection, vtnBean)) {
+                       VBridgeBean vBridgeBean = new VBridgeBean();
+                       vBridgeBean.setVtnName(getTenantId());
+                       vBridgeBean.setVbrName(getNetId());
+                       if (new VBridgeDao().isVbrFound(connection, vBridgeBean)) {
+                               VBridgeInterfaceBean vInterfaceBean = new VBridgeInterfaceBean();
+                               vInterfaceBean.setVtnName(getTenantId());
+                               vInterfaceBean.setVbrName(getNetId());
+                               vInterfaceBean.setVbrIfName(VtnServiceOpenStackConsts.IF_PREFIX
+                                               + getPortId());
+                               if (new VBridgeInterfaceDao().isVbrIfFound(connection,
+                                               vInterfaceBean)) {
+                                       notFoundStatus = true;
+                               } else {
+                                       createErrorInfo(
+                                                       UncResultCode.UNC_NOT_FOUND.getValue(),
+                                                       getCutomErrorMessage(
+                                                                       UncResultCode.UNC_NOT_FOUND.getMessage(),
+                                                                       VtnServiceOpenStackConsts.PORT_ID,
+                                                                       getPortId()));
+                               }
+                       } else {
+                               createErrorInfo(
+                                               UncResultCode.UNC_NOT_FOUND.getValue(),
+                                               getCutomErrorMessage(
+                                                               UncResultCode.UNC_NOT_FOUND.getMessage(),
+                                                               VtnServiceOpenStackConsts.NET_ID, getNetId()));
+                       }
+               } else {
+                       createErrorInfo(
+                                       UncResultCode.UNC_NOT_FOUND.getValue(),
+                                       getCutomErrorMessage(
+                                                       UncResultCode.UNC_NOT_FOUND.getMessage(),
+                                                       VtnServiceOpenStackConsts.TENANT_ID, getTenantId()));
+               }
+               return notFoundStatus;
+       }
+
+       /**
+        * Retrieve list of vlan-map UNC
+        * 
+        * @param requestBody
+        *            - OpenStack request body
+        * @param restResource
+        *            - RestResource instance
+        * @return - erorrCode, 200 for Success
+        */
+       private JsonObject getVlanMapList(RestResource restResource) {
+               StringBuilder sb = new StringBuilder();
+               sb.append(VtnServiceOpenStackConsts.VTN_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getTenantId());
+               sb.append(VtnServiceOpenStackConsts.VBRIDGE_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getNetId());
+               sb.append(VtnServiceOpenStackConsts.VLANMAP_PATH);
+
+               restResource.setPath(sb.toString());
+               restResource.setSessionID(getSessionID());
+               restResource.setConfigID(getConfigID());
+
+               restResource.get(new JsonObject());
+
+               return restResource.getInfo();
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/PortsResource.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/PortsResource.java
new file mode 100644 (file)
index 0000000..5bac7af
--- /dev/null
@@ -0,0 +1,660 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.resources.openstack;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.RestResource;
+import org.opendaylight.vtn.javaapi.annotation.UNCField;
+import org.opendaylight.vtn.javaapi.annotation.UNCVtnService;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
+import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
+import org.opendaylight.vtn.javaapi.init.VtnServiceInitManager;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum.UncResultCode;
+import org.opendaylight.vtn.javaapi.openstack.beans.FreeCounterBean;
+import org.opendaylight.vtn.javaapi.openstack.beans.VBridgeBean;
+import org.opendaylight.vtn.javaapi.openstack.beans.VBridgeInterfaceBean;
+import org.opendaylight.vtn.javaapi.openstack.beans.VtnBean;
+import org.opendaylight.vtn.javaapi.openstack.constants.VtnServiceOpenStackConsts;
+import org.opendaylight.vtn.javaapi.openstack.convertor.MapResourceGenerator;
+import org.opendaylight.vtn.javaapi.openstack.convertor.VbrResourcesGenerator;
+import org.opendaylight.vtn.javaapi.openstack.dao.DestinationControllerDao;
+import org.opendaylight.vtn.javaapi.openstack.dao.VBridgeDao;
+import org.opendaylight.vtn.javaapi.openstack.dao.VBridgeInterfaceDao;
+import org.opendaylight.vtn.javaapi.openstack.dao.VtnDao;
+import org.opendaylight.vtn.javaapi.openstack.dbmanager.ResourceIdManager;
+import org.opendaylight.vtn.javaapi.openstack.validation.PortResourceValidator;
+import org.opendaylight.vtn.javaapi.resources.AbstractResource;
+
+/**
+ * Resource class for handling POST requests for Port
+ */
+@UNCVtnService(path = VtnServiceOpenStackConsts.PORTS_PATH)
+public class PortsResource extends AbstractResource {
+
+       /* Logger instance */
+       private static final Logger LOG = Logger.getLogger(PortsResource.class
+                       .getName());
+
+       private String controllerId = null;
+       private String logicalPortId = null;
+
+       @UNCField(VtnServiceOpenStackConsts.TENANT_ID)
+       private String tenantId;
+
+       @UNCField(VtnServiceOpenStackConsts.NET_ID)
+       private String netId;
+
+       /**
+        * Constructor that initialize the validation instance for current resource
+        * instance
+        */
+       public PortsResource() {
+               setValidator(new PortResourceValidator(this));
+       }
+
+       /**
+        * Getter of tenantId
+        * 
+        * @return
+        */
+       public String getTenantId() {
+               return tenantId;
+       }
+
+       /**
+        * Getter of netId
+        * 
+        * @return
+        */
+       public String getNetId() {
+               return netId;
+       }
+
+       /**
+        * Handler method for POST operation of Port
+        * 
+        * @see org.opendaylight.vtn.javaapi.resources.AbstractResource#post(com
+        *      .google.gson.JsonObject)
+        */
+       @Override
+       public int post(JsonObject requestBody) throws VtnServiceException {
+               LOG.trace("Start NetworksResource#post()");
+
+               int errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+
+               boolean isCommitRequired = false;
+               String generatedVbrIfName = null;
+
+               int counter = -1;
+               Connection connection = null;
+
+               try {
+                       connection = VtnServiceInitManager.getDbConnectionPoolMap()
+                                       .getConnection();
+
+                       /*
+                        * Check for instances that they exists or not, if not then return
+                        * 404 error
+                        */
+                       if (checkForNotFoundResources(connection)) {
+                               final ResourceIdManager resourceIdManager = new ResourceIdManager();
+                               /*
+                                * generate "id" is it is not present in request body
+                                */
+                               if (!requestBody.has(VtnServiceOpenStackConsts.ID)) {
+                                       LOG.info("Resource id auto-generation is required.");
+
+                                       final FreeCounterBean freeCounterBean = new FreeCounterBean();
+                                       freeCounterBean
+                                                       .setResourceId(VtnServiceOpenStackConsts.PORT_RES_ID);
+                                       freeCounterBean.setVtnName(getTenantId());
+
+                                       counter = resourceIdManager.getResourceId(connection,
+                                                       freeCounterBean);
+                                       if (counter != -1) {
+                                               LOG.debug("Resource id auto-generation is successfull : "
+                                                               + counter);
+                                               // if id is generated successfully
+                                               generatedVbrIfName = VtnServiceOpenStackConsts.IF_PREFIX
+                                                               + counter;
+                                               requestBody.addProperty(VtnServiceOpenStackConsts.ID,
+                                                               generatedVbrIfName);
+                                       }
+                               } else {
+                                       generatedVbrIfName = VtnServiceOpenStackConsts.IF_PREFIX
+                                                       + requestBody.get(VtnServiceOpenStackConsts.ID)
+                                                                       .getAsString();
+                                       requestBody.addProperty(VtnServiceOpenStackConsts.ID,
+                                                       generatedVbrIfName);
+                                       counter = 0;
+                               }
+
+                               LOG.debug("Counter : " + counter);
+                               LOG.debug("if_name : " + generatedVbrIfName);
+
+                               if (counter >= 0) {
+                                       /*
+                                        * resource insertion in database, if is is successful then
+                                        * continue to execute operations at UNC. Otherwise return
+                                        * HTTP 409
+                                        */
+                                       final VBridgeInterfaceBean vInterfaceBean = new VBridgeInterfaceBean();
+
+                                       vInterfaceBean.setVbrIfId(counter);
+                                       vInterfaceBean.setVtnName(getTenantId());
+                                       vInterfaceBean.setVbrName(getNetId());
+                                       vInterfaceBean.setVbrIfName(generatedVbrIfName);
+                                       /*
+                                        * initialize with default port-map setting. It should be
+                                        * updated when vlan-map operation is performed
+                                        */
+                                       vInterfaceBean.setMapType(VtnServiceJsonConsts.PORTMAP);
+                                       vInterfaceBean.setLogicalPortId(VtnServiceJsonConsts.NONE);
+
+                                       final VBridgeInterfaceDao vInterfaceDao = new VBridgeInterfaceDao();
+                                       int status = vInterfaceDao.insert(connection,
+                                                       vInterfaceBean);
+
+                                       if (status == 1) {
+                                               LOG.info("Resource insertion successful at database operation.");
+
+                                               final RestResource restResource = new RestResource();
+
+                                               final JsonElement port = requestBody
+                                                               .get(VtnServiceOpenStackConsts.PORT);
+
+                                               if (port.isJsonNull()
+                                                               || port.getAsString().equalsIgnoreCase(
+                                                                               VtnServiceOpenStackConsts.NULL)) {
+                                                       /*
+                                                        * if port is specified as NULL then vlan-map
+                                                        * operations are required to be performed
+                                                        */
+                                                       errorCode = performVlanMapOperations(requestBody,
+                                                                       restResource);
+
+                                                       if (errorCode == UncCommonEnum.UncResultCode.UNC_SUCCESS
+                                                                       .getValue()) {
+                                                               LOG.info("vlan-map Creation at UNC is successful.");
+
+                                                               vInterfaceBean
+                                                                               .setMapType(VtnServiceJsonConsts.VLANMAP);
+                                                               vInterfaceBean.setLogicalPortId(logicalPortId);
+
+                                                               /**
+                                                                * if operation is performed for vlan-map then
+                                                                * update map_type and logical_port_id in
+                                                                * database
+                                                                */
+                                                               if (vInterfaceDao.updateVlanMapInfo(connection,
+                                                                               vInterfaceBean) == 1) {
+                                                                       isCommitRequired = true;
+                                                                       if (counter != 0) {
+                                                                               final JsonObject response = new JsonObject();
+                                                                               response.addProperty(
+                                                                                               VtnServiceOpenStackConsts.ID,
+                                                                                               String.valueOf(counter));
+                                                                               setInfo(response);
+                                                                       }
+                                                                       LOG.info("map_type and logical_port_id successfully updated in database.");
+                                                               } else {
+                                                                       errorCode = UncResultCode.UNC_SERVER_ERROR
+                                                                                       .getValue();
+                                                                       LOG.error("map_type and logical_port_id update failed in database.");
+                                                               }
+                                                       } else {
+                                                               LOG.error("vlan-map Creation at UNC is failed.");
+                                                       }
+                                               } else {
+                                                       /*
+                                                        * if port is not specified as NULL then port-map
+                                                        * operations are required to be performed
+                                                        */
+                                                       if (setControllerId(connection, requestBody) == Boolean.TRUE) {
+                                                               errorCode = performPortMapOperations(
+                                                                               requestBody, restResource);
+
+                                                               if (errorCode == UncCommonEnum.UncResultCode.UNC_SUCCESS
+                                                                               .getValue()) {
+                                                                       isCommitRequired = true;
+                                                                       if (counter != 0) {
+                                                                               final JsonObject response = new JsonObject();
+                                                                               response.addProperty(
+                                                                                               VtnServiceOpenStackConsts.ID,
+                                                                                               String.valueOf(counter));
+                                                                               setInfo(response);
+                                                                       }
+                                                                       LOG.info("port-map Creation at UNC is successful.");
+                                                               } else {
+                                                                       errorCode = UncResultCode.UNC_SERVER_ERROR
+                                                                                       .getValue();
+                                                                       LOG.error("port-map Creation at UNC is failed.");
+                                                               }
+                                                       } else {
+                                                               LOG.error("Error ocurred while setting controller_id");
+                                                       }
+                                               }
+                                               checkForSpecificErrors(restResource.getInfo());
+                                       } else {
+                                               LOG.error("Resource insertion failed at database operation.");
+                                       }
+                               } else {
+                                       LOG.error("Error occurred while generation of id.");
+                               }
+                       } else {
+                               LOG.error("Resource not found error.");
+                       }
+
+                       /*
+                        * If all processing are OK, the commit all the database transaction
+                        * made for current connection. Otherwise do the roll-back
+                        */
+                       if (isCommitRequired) {
+                               // connection.commit();
+                               setOpenStackConnection(connection);
+                               LOG.info("Resource deletion successful in database.");
+                       } else {
+                               connection.rollback();
+                               LOG.info("Resource deletion is roll-backed.");
+                       }
+
+                       /*
+                        * set response, if it is not set during processing for create
+                        * tenant
+                        */
+                       if (errorCode != UncResultCode.UNC_SUCCESS.getValue()) {
+                               if (getInfo() == null) {
+                                       createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR
+                                                       .getValue());
+                               }
+                       }
+               } catch (final SQLException exception) {
+                       LOG.error("Internal server error : " + exception);
+                       errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+                       if (exception.getSQLState().equalsIgnoreCase(
+                                       VtnServiceOpenStackConsts.CONFLICT_SQL_STATE)) {
+                               LOG.error("Conflict found during creation of resource");
+                               if (counter != 0) {
+                                       generatedVbrIfName = String.valueOf(counter);
+                               }
+                               createErrorInfo(
+                                               UncResultCode.UNC_CONFLICT_FOUND.getValue(),
+                                               getCutomErrorMessage(
+                                                               UncResultCode.UNC_CONFLICT_FOUND.getMessage(),
+                                                               VtnServiceOpenStackConsts.IF_ID,
+                                                               generatedVbrIfName));
+                       } else {
+                               createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR
+                                               .getValue());
+                       }
+               } finally {
+                       if (connection != null && !isCommitRequired) {
+                               try {
+                                       connection.rollback();
+                                       LOG.info("roll-back successful.");
+                               } catch (final SQLException e) {
+                                       LOG.error("Rollback error : " + e);
+                               }
+                               LOG.info("Free connection...");
+                               VtnServiceInitManager.getDbConnectionPoolMap().freeConnection(
+                                               connection);
+                       }
+               }
+               LOG.trace("Complete NetworksResource#post()");
+               return errorCode;
+       }
+
+       /**
+        * Checks that specified instances in URI exists in system or not. If they
+        * are not exists then prepare error JSON for 404 Not Found
+        * 
+        * @param connection
+        *            - Database Connection instance
+        * @return - true, only if all instances exist
+        * @throws SQLException
+        */
+       private boolean checkForNotFoundResources(Connection connection)
+                       throws SQLException {
+               boolean notFoundStatus = false;
+               VtnBean vtnBean = new VtnBean();
+               vtnBean.setVtnName(getTenantId());
+               if (new VtnDao().isVtnFound(connection, vtnBean)) {
+                       VBridgeBean vBridgeBean = new VBridgeBean();
+                       vBridgeBean.setVtnName(getTenantId());
+                       vBridgeBean.setVbrName(getNetId());
+                       if (new VBridgeDao().isVbrFound(connection, vBridgeBean)) {
+                               notFoundStatus = true;
+                       } else {
+                               createErrorInfo(
+                                               UncResultCode.UNC_NOT_FOUND.getValue(),
+                                               getCutomErrorMessage(
+                                                               UncResultCode.UNC_NOT_FOUND.getMessage(),
+                                                               VtnServiceOpenStackConsts.NET_ID, getNetId()));
+                       }
+               } else {
+                       createErrorInfo(
+                                       UncResultCode.UNC_NOT_FOUND.getValue(),
+                                       getCutomErrorMessage(
+                                                       UncResultCode.UNC_NOT_FOUND.getMessage(),
+                                                       VtnServiceOpenStackConsts.TENANT_ID, getTenantId()));
+               }
+               return notFoundStatus;
+       }
+
+       /**
+        * Perform port-map creation related operation at UNC
+        * 
+        * @param requestBody
+        *            - OpenStack request body
+        * @param restResource
+        *            - RestResource instance
+        * @return - erorrCode, 200 for Success
+        */
+       private int performPortMapOperations(JsonObject requestBody,
+                       RestResource restResource) {
+               int errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+
+               /*
+                * Create request body for vBridge interface creation
+                */
+               final JsonObject vbrIfRequestBody = VbrResourcesGenerator
+                               .getCreateVbrIfRequestBody(requestBody);
+
+               StringBuilder sb = new StringBuilder();
+               sb.append(VtnServiceOpenStackConsts.VTN_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getTenantId());
+               sb.append(VtnServiceOpenStackConsts.VBRIDGE_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getNetId());
+               sb.append(VtnServiceOpenStackConsts.INTERFACE_PATH);
+
+               restResource.setPath(sb.toString());
+               restResource.setSessionID(getSessionID());
+               restResource.setConfigID(getConfigID());
+
+               errorCode = restResource.post(vbrIfRequestBody);
+
+               if (errorCode == UncResultCode.UNC_SUCCESS.getValue()) {
+                       final String portName = getPortName(requestBody, restResource);
+                       if (portName != null) {
+                               requestBody
+                                               .addProperty(VtnServiceJsonConsts.PORTNAME, portName);
+                               errorCode = createPortMap(requestBody, restResource);
+                       } else {
+                               errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+                               LOG.error("Port Name not found.");
+                       }
+               }
+
+               return errorCode;
+       }
+
+       /**
+        * Retrieve port_name from UNC for given port_id
+        * 
+        * @param requestBody
+        *            - OpenStack request body
+        * @param restResource
+        *            - RestResource instance
+        * @return - erorrCode, 200 for Success
+        */
+       private String
+                       getPortName(JsonObject requestBody, RestResource restResource) {
+               String portName = null;
+               final JsonObject portNameRequestBody = MapResourceGenerator
+                               .getPortNameRequestBody(requestBody);
+
+               StringBuilder sb = new StringBuilder();
+               sb.append(VtnServiceOpenStackConsts.CTRL_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(this.controllerId);
+               sb.append(VtnServiceOpenStackConsts.SWITCH_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getSwitchId(requestBody.get(
+                               VtnServiceOpenStackConsts.DATAPATH_ID).getAsString()));
+               sb.append(VtnServiceOpenStackConsts.PHY_PORTS_PATH);
+
+               restResource.setPath(sb.toString());
+               restResource.setSessionID(getSessionID());
+               restResource.setConfigID(getConfigID());
+
+               if (restResource.get(portNameRequestBody) == UncResultCode.UNC_SUCCESS
+                               .getValue()) {
+                       JsonArray ports = restResource.getInfo()
+                                       .get(VtnServiceJsonConsts.PORTS).getAsJsonArray();
+                       if (ports != null && ports.size() > 0) {
+                               portName = ports.get(0).getAsJsonObject()
+                                               .get(VtnServiceJsonConsts.PORTNAME).getAsString();
+                       }
+               }
+
+               return portName;
+       }
+
+       /**
+        * Retrieve controller_id from database and set to request body
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @param requestBody
+        *            - OpenStack JSON request body
+        * @return - true, only if controller_id is set
+        * @throws SQLException
+        */
+       private boolean setControllerId(Connection connection,
+                       JsonObject requestBody) throws SQLException {
+               boolean status = true;
+               final DestinationControllerDao destControllerDao = new DestinationControllerDao();
+               final String controllerId = destControllerDao
+                               .getDestinationController(connection);
+
+               if (controllerId != null && !controllerId.isEmpty()) {
+                       LOG.info("Database retrieval is successful for Controller id : "
+                                       + controllerId);
+                       requestBody.addProperty(VtnServiceJsonConsts.CONTROLLERID,
+                                       controllerId);
+                       this.controllerId = controllerId;
+               } else {
+                       LOG.error("Database retrieval is failed for Controller id.");
+                       createErrorInfo(
+                                       UncResultCode.UNC_CTRL_NOT_FOUND.getValue(),
+                                       getCutomErrorMessage(
+                                                       UncResultCode.UNC_CTRL_NOT_FOUND.getMessage(),
+                                                       VtnServiceJsonConsts.CONTROLLERID,
+                                                       VtnServiceConsts.EMPTY_STRING));
+                       status = false;
+               }
+               return status;
+       }
+
+       /**
+        * Resolve switch_id from datapath_id
+        * 
+        * @param datapathId
+        *            - OpenStack formatted datapath_id
+        * @return - switch_id
+        */
+       private String getSwitchId(String datapathId) {
+               datapathId = datapathId.substring(2, datapathId.length());
+               final StringBuilder sb = new StringBuilder();
+               for (int toPrepend = 16 - datapathId.length(); toPrepend > 0; toPrepend--) {
+                       sb.append('0');
+               }
+               datapathId = sb.append(datapathId).toString();
+               final String logicalPortIdPartFirst = datapathId.substring(0, 4);
+               final String logicalPortIdPartSecond = datapathId.substring(4, 8);
+               final String logicalPortIdPartThird = datapathId.substring(8, 12);
+               final String logicalPortIdPartFour = datapathId.substring(12, 16);
+
+               return logicalPortIdPartFirst + VtnServiceConsts.HYPHEN
+                               + logicalPortIdPartSecond + VtnServiceConsts.HYPHEN
+                               + logicalPortIdPartThird + VtnServiceConsts.HYPHEN
+                               + logicalPortIdPartFour;
+       }
+
+       /**
+        * Perform Vlan-Map related operations at UNC
+        * 
+        * @param requestBody
+        *            - OpenStack request body
+        * @param restResource
+        *            - RestResource instance
+        * @return - erorrCode, 200 for Success
+        */
+       private int performVlanMapOperations(JsonObject requestBody,
+                       RestResource restResource) {
+               int errorCode = UncResultCode.UNC_INTERNAL_SERVER_ERROR.getValue();
+               int mapModeValue;
+               // read property for map-mode
+               mapModeValue = Integer.parseInt(VtnServiceInitManager
+                               .getConfigurationMap().getMapModeValue());
+
+               if (mapModeValue == 0) {
+                       // if map-mode is specified as 0, then return conflict error if
+                       // count from UNC is greater than 0. If count is 0 then create
+                       // vlan-map
+                       if (getVlanMapCount(restResource) > 0) {
+                               createErrorInfo(UncResultCode.UNC_CONFLICT_FOUND.getValue());
+                       } else {
+                               errorCode = createVlanMap(requestBody, restResource);
+                       }
+               } else if (mapModeValue == 1 || mapModeValue == 2) {
+                       // if map-mode value is 1 or 2 then create vlan-map without
+                       // checking count
+                       errorCode = createVlanMap(requestBody, restResource);
+               } else {
+                       throw new IllegalArgumentException("incorrect map-mode value.");
+               }
+               return errorCode;
+       }
+
+       /**
+        * Retrieve vlan-map count from UNC
+        * 
+        * @param restResource
+        *            - RestResource instance
+        * @return - erorrCode, 200 for Success
+        */
+       private int getVlanMapCount(RestResource restResource) {
+               int count = -1;
+               JsonObject vlanmapRequestBody;
+               /*
+                * Create request body for vlan-map count
+                */
+               vlanmapRequestBody = MapResourceGenerator.getVLanMapCountRequestBody();
+
+               StringBuilder sb = new StringBuilder();
+               sb.append(VtnServiceOpenStackConsts.VTN_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getTenantId());
+               sb.append(VtnServiceOpenStackConsts.VBRIDGE_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getNetId());
+               sb.append(VtnServiceOpenStackConsts.VLANMAP_PATH);
+
+               restResource.setPath(sb.toString());
+               restResource.setSessionID(getSessionID());
+               restResource.setConfigID(getConfigID());
+
+               if (restResource.get(vlanmapRequestBody) == UncResultCode.UNC_SUCCESS
+                               .getValue()) {
+                       count = restResource.getInfo().get(VtnServiceJsonConsts.VLANMAPS)
+                                       .getAsJsonObject().get(VtnServiceJsonConsts.COUNT)
+                                       .getAsInt();
+               }
+               return count;
+       }
+
+       /**
+        * Create Vlan-Map at UNC
+        * 
+        * @param requestBody
+        *            - OpenStack request body
+        * @param restResource
+        *            - RestResource instance
+        * @return - erorrCode, 200 for Success
+        */
+       private int
+                       createVlanMap(JsonObject requestBody, RestResource restResource) {
+               /*
+                * Create request body for vlan-map creation
+                */
+               final JsonObject vlanmapRequestBody = MapResourceGenerator
+                               .getCreateVlanMapRequestBody(requestBody);
+
+               if (vlanmapRequestBody.get(VtnServiceJsonConsts.VLANMAP)
+                               .getAsJsonObject().has(VtnServiceJsonConsts.LOGICAL_PORT_ID)) {
+                       logicalPortId = vlanmapRequestBody
+                                       .get(VtnServiceJsonConsts.VLANMAP).getAsJsonObject()
+                                       .get(VtnServiceJsonConsts.LOGICAL_PORT_ID).getAsString();
+               } else {
+                       logicalPortId = VtnServiceJsonConsts.NOLPID;
+               }
+
+               StringBuilder sb = new StringBuilder();
+               sb.append(VtnServiceOpenStackConsts.VTN_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getTenantId());
+               sb.append(VtnServiceOpenStackConsts.VBRIDGE_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getNetId());
+               sb.append(VtnServiceOpenStackConsts.VLANMAP_PATH);
+
+               restResource.setPath(sb.toString());
+               restResource.setSessionID(getSessionID());
+               restResource.setConfigID(getConfigID());
+
+               return restResource.post(vlanmapRequestBody);
+       }
+
+       /**
+        * Create Port-Map at UNC
+        * 
+        * @param requestBody
+        *            - OpenStack request body
+        * @param restResource
+        *            - RestResource instance
+        * @return - erorrCode, 200 for Success
+        */
+       private int
+                       createPortMap(JsonObject requestBody, RestResource restResource) {
+               /*
+                * Create request body for port-map creation
+                */
+               final JsonObject vlanmapRequestBody = MapResourceGenerator
+                               .getCreatePortMapRequestBody(requestBody);
+
+               StringBuilder sb = new StringBuilder();
+               sb.append(VtnServiceOpenStackConsts.VTN_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getTenantId());
+               sb.append(VtnServiceOpenStackConsts.VBRIDGE_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getNetId());
+               sb.append(VtnServiceOpenStackConsts.INTERFACE_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(requestBody.get(VtnServiceOpenStackConsts.ID).getAsString());
+               sb.append(VtnServiceOpenStackConsts.PORTMAP_PATH);
+
+               restResource.setPath(sb.toString());
+               restResource.setSessionID(getSessionID());
+               restResource.setConfigID(getConfigID());
+
+               return restResource.put(vlanmapRequestBody);
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/RouteResource.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/RouteResource.java
new file mode 100644 (file)
index 0000000..422da5a
--- /dev/null
@@ -0,0 +1,295 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.resources.openstack;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+
+import org.apache.commons.net.util.SubnetUtils;
+
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.RestResource;
+import org.opendaylight.vtn.javaapi.annotation.UNCField;
+import org.opendaylight.vtn.javaapi.annotation.UNCVtnService;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
+import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
+import org.opendaylight.vtn.javaapi.init.VtnServiceInitManager;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum.UncResultCode;
+import org.opendaylight.vtn.javaapi.openstack.beans.FreeCounterBean;
+import org.opendaylight.vtn.javaapi.openstack.beans.StaticRouteBean;
+import org.opendaylight.vtn.javaapi.openstack.beans.VRouterBean;
+import org.opendaylight.vtn.javaapi.openstack.beans.VtnBean;
+import org.opendaylight.vtn.javaapi.openstack.constants.VtnServiceOpenStackConsts;
+import org.opendaylight.vtn.javaapi.openstack.dao.StaticRouteDao;
+import org.opendaylight.vtn.javaapi.openstack.dao.VRouterDao;
+import org.opendaylight.vtn.javaapi.openstack.dao.VtnDao;
+import org.opendaylight.vtn.javaapi.openstack.dbmanager.ResourceIdManager;
+import org.opendaylight.vtn.javaapi.openstack.validation.RouteResourceValidator;
+import org.opendaylight.vtn.javaapi.resources.AbstractResource;
+
+/**
+ * Resource class for handling DELETE requests for Static Routes
+ */
+@UNCVtnService(path = VtnServiceOpenStackConsts.ROUTE_PATH)
+public class RouteResource extends AbstractResource {
+
+       /* Logger instance */
+       private static final Logger LOG = Logger.getLogger(RouteResource.class
+                       .getName());
+
+       @UNCField(VtnServiceOpenStackConsts.TENANT_ID)
+       private String tenantId;
+
+       @UNCField(VtnServiceOpenStackConsts.ROUTER_ID)
+       private String routerId;
+
+       @UNCField(VtnServiceOpenStackConsts.ROUTE_ID)
+       private String routeId;
+
+       /**
+        * Constructor that initialize the validation instance for current resource
+        * instance
+        */
+       public RouteResource() {
+               setValidator(new RouteResourceValidator(this));
+       }
+
+       /**
+        * Getter for tenantId
+        * 
+        * @return
+        */
+       public String getTenantId() {
+               return tenantId;
+       }
+
+       /**
+        * Getter for routerId
+        * 
+        * @return
+        */
+       public String getRouterId() {
+               return routerId;
+       }
+
+       /**
+        * Getter for routeId
+        * 
+        * @return
+        */
+       public String getRouteId() {
+               return routeId;
+       }
+
+       /**
+        * Handler method for DELETE operation of Route
+        * 
+        * @see org.opendaylight.vtn.javaapi.resources.AbstractResource#delete()
+        */
+       @Override
+       public int delete() throws VtnServiceException {
+               LOG.trace("Start RoutesResource#delete()");
+
+               int errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+
+               boolean isCommitRequired = false;
+               Connection connection = null;
+
+               try {
+                       connection = VtnServiceInitManager.getDbConnectionPoolMap()
+                                       .getConnection();
+
+                       /*
+                        * Check for instances that they exists or not, if not then return
+                        * 404 error
+                        */
+                       if (checkForNotFoundResources(connection)) {
+
+                               final StaticRouteBean staticRouteBean = new StaticRouteBean();
+                               staticRouteBean.setVtnName(getTenantId());
+                               staticRouteBean.setVrtName(getRouterId());
+                               staticRouteBean.setRouteName(getRouteId());
+
+                               final FreeCounterBean freeCounterBean = new FreeCounterBean();
+                               freeCounterBean
+                                               .setResourceId(VtnServiceOpenStackConsts.DEFAULT_ROUTE);
+                               freeCounterBean.setVtnName(getTenantId());
+                               freeCounterBean.setResourceCounter(0);
+
+                               final ResourceIdManager resourceIdManager = new ResourceIdManager();
+
+                               if (resourceIdManager.deleteResourceId(connection,
+                                               freeCounterBean, staticRouteBean)) {
+                                       LOG.info("Deletion operation from database is successfull.");
+
+                                       final RestResource restResource = new RestResource();
+
+                                       errorCode = deleteStaticRoute(restResource);
+
+                                       if (errorCode == UncCommonEnum.UncResultCode.UNC_SUCCESS
+                                                       .getValue()) {
+                                               LOG.error("static-route Deletion successful at UNC.");
+                                               isCommitRequired = true;
+                                       } else {
+                                               LOG.error("static-route Deletion failed at UNC.");
+                                       }
+                                       checkForSpecificErrors(restResource.getInfo());
+                               } else {
+                                       LOG.info("Deletion operation from database is falied.");
+                                       connection.rollback();
+                               }
+                       } else {
+                               LOG.error("Resource not found error.");
+                       }
+
+                       /*
+                        * If all processing are OK, the commit all the database transaction
+                        * made for current connection. Otherwise do the roll-back
+                        */
+                       if (isCommitRequired) {
+                               // connection.commit();
+                               setOpenStackConnection(connection);
+                               LOG.info("Resource deletion successful in database.");
+                       } else {
+                               connection.rollback();
+                               LOG.info("Resource deletion is roll-backed.");
+                       }
+
+                       /*
+                        * set response, if it is not set during processing for create
+                        * tenant
+                        */
+                       if (errorCode != UncResultCode.UNC_SUCCESS.getValue()) {
+                               if (getInfo() == null) {
+                                       createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR
+                                                       .getValue());
+                               }
+                       }
+               } catch (final SQLException exception) {
+                       LOG.error("Internal server error : " + exception);
+                       errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+                       createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR.getValue());
+               } finally {
+                       if (connection != null && !isCommitRequired) {
+                               try {
+                                       connection.rollback();
+                                       LOG.info("roll-back successful.");
+                               } catch (final SQLException e) {
+                                       LOG.error("Rollback error : " + e);
+                               }
+                               LOG.info("Free connection...");
+                               VtnServiceInitManager.getDbConnectionPoolMap().freeConnection(
+                                               connection);
+                       }
+               }
+               LOG.trace("Complete RoutesResource#delete()");
+               return errorCode;
+       }
+
+       /**
+        * Delete Static-Route at UNC
+        * 
+        * @param restResource
+        *            - RestResource instance
+        * @return - erorrCode, 200 for Success
+        */
+       private int deleteStaticRoute(final RestResource restResource) {
+               /*
+                * execute delete static-route request
+                */
+               StringBuilder sb = new StringBuilder();
+               sb.append(VtnServiceOpenStackConsts.VTN_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getTenantId());
+               sb.append(VtnServiceOpenStackConsts.VROUTER_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getRouterId());
+               sb.append(VtnServiceOpenStackConsts.STATIC_ROUTE_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(convertRouteId(getRouteId()));
+
+               restResource.setPath(sb.toString());
+               restResource.setSessionID(getSessionID());
+               restResource.setConfigID(getConfigID());
+
+               return restResource.delete();
+       }
+
+       /**
+        * Convert UNC formatted route_id from OpenStack formatted route_id
+        * 
+        * @param requestBody
+        *            - OpenStack request body
+        * @return - generated route_id
+        */
+       private String convertRouteId(String osRouteId) {
+               final String[] routeId = osRouteId.split(VtnServiceConsts.HYPHEN);
+               final SubnetUtils subnetUtils = new SubnetUtils(routeId[0], routeId[2]);
+               final String staticIpRouteId = routeId[0]
+                               + VtnServiceConsts.HYPHEN
+                               + routeId[1]
+                               + VtnServiceConsts.HYPHEN
+                               + subnetUtils.getInfo().getCidrSignature()
+                                               .split(VtnServiceConsts.SLASH)[1];
+               return staticIpRouteId;
+       }
+
+       /**
+        * Checks that specified instances in URI exists in system or not. If they
+        * are not exists then prepare error JSON for 404 Not Found
+        * 
+        * @param connection
+        *            - Database Connection instance
+        * @return - true, only if all instances exist
+        * @throws SQLException
+        */
+       private boolean checkForNotFoundResources(Connection connection)
+                       throws SQLException {
+               boolean notFoundStatus = false;
+               VtnBean vtnBean = new VtnBean();
+               vtnBean.setVtnName(getTenantId());
+               if (new VtnDao().isVtnFound(connection, vtnBean)) {
+                       VRouterBean vRouterBean = new VRouterBean();
+                       vRouterBean.setVtnName(getTenantId());
+                       vRouterBean.setVrtName(getRouterId());
+                       if (new VRouterDao().isVrtFound(connection, vRouterBean)) {
+                               StaticRouteBean staticRouteBean = new StaticRouteBean();
+                               staticRouteBean.setVtnName(getTenantId());
+                               staticRouteBean.setVrtName(getRouterId());
+                               staticRouteBean.setRouteName(getRouteId());
+                               if (new StaticRouteDao().isStaticRouteFound(connection,
+                                               staticRouteBean)) {
+                                       notFoundStatus = true;
+                               } else {
+                                       createErrorInfo(
+                                                       UncResultCode.UNC_NOT_FOUND.getValue(),
+                                                       getCutomErrorMessage(
+                                                                       UncResultCode.UNC_NOT_FOUND.getMessage(),
+                                                                       VtnServiceOpenStackConsts.ROUTE_ID,
+                                                                       getRouteId()));
+                               }
+                       } else {
+                               createErrorInfo(
+                                               UncResultCode.UNC_NOT_FOUND.getValue(),
+                                               getCutomErrorMessage(
+                                                               UncResultCode.UNC_NOT_FOUND.getMessage(),
+                                                               VtnServiceOpenStackConsts.ROUTER_ID,
+                                                               getRouterId()));
+                       }
+               } else {
+                       createErrorInfo(
+                                       UncResultCode.UNC_NOT_FOUND.getValue(),
+                                       getCutomErrorMessage(
+                                                       UncResultCode.UNC_NOT_FOUND.getMessage(),
+                                                       VtnServiceOpenStackConsts.TENANT_ID, getTenantId()));
+               }
+               return notFoundStatus;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/RouterInterfaceResource.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/RouterInterfaceResource.java
new file mode 100644 (file)
index 0000000..227f0ab
--- /dev/null
@@ -0,0 +1,469 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.resources.openstack;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+
+import com.google.gson.JsonObject;
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.RestResource;
+import org.opendaylight.vtn.javaapi.annotation.UNCField;
+import org.opendaylight.vtn.javaapi.annotation.UNCVtnService;
+import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
+import org.opendaylight.vtn.javaapi.init.VtnServiceInitManager;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum.UncResultCode;
+import org.opendaylight.vtn.javaapi.openstack.beans.FreeCounterBean;
+import org.opendaylight.vtn.javaapi.openstack.beans.VRouterBean;
+import org.opendaylight.vtn.javaapi.openstack.beans.VRouterInterfaceBean;
+import org.opendaylight.vtn.javaapi.openstack.beans.VtnBean;
+import org.opendaylight.vtn.javaapi.openstack.constants.VtnServiceOpenStackConsts;
+import org.opendaylight.vtn.javaapi.openstack.convertor.VrtResourcesGenerator;
+import org.opendaylight.vtn.javaapi.openstack.dao.VRouterDao;
+import org.opendaylight.vtn.javaapi.openstack.dao.VRouterInterfaceDao;
+import org.opendaylight.vtn.javaapi.openstack.dao.VtnDao;
+import org.opendaylight.vtn.javaapi.openstack.dbmanager.ResourceIdManager;
+import org.opendaylight.vtn.javaapi.openstack.validation.RouterInterfaceResourceValidator;
+import org.opendaylight.vtn.javaapi.resources.AbstractResource;
+
+/**
+ * Resource class for handling PUT and DELETE requests for Router Interface
+ */
+@UNCVtnService(path = VtnServiceOpenStackConsts.ROUTER_INTERFACE_PATH)
+public class RouterInterfaceResource extends AbstractResource {
+
+       /* Logger instance */
+       private static final Logger LOG = Logger
+                       .getLogger(RouterInterfaceResource.class.getName());
+
+       @UNCField(VtnServiceOpenStackConsts.TENANT_ID)
+       private String tenantId;
+
+       @UNCField(VtnServiceOpenStackConsts.ROUTER_ID)
+       private String routerId;
+
+       @UNCField(VtnServiceOpenStackConsts.IF_ID)
+       private String interfaceId;
+
+       /**
+        * Constructor that initialize the validation instance for current resource
+        * instance
+        */
+       public RouterInterfaceResource() {
+               setValidator(new RouterInterfaceResourceValidator(this));
+       }
+
+       /**
+        * Getter of tenantId
+        * 
+        * @return
+        */
+       public String getTenantId() {
+               return tenantId;
+       }
+
+       /**
+        * Getter of routerId
+        * 
+        * @return
+        */
+       public String getRouterId() {
+               return routerId;
+       }
+
+       /**
+        * Getter of interfaceId
+        * 
+        * @return
+        */
+       public String getInterfaceId() {
+               return interfaceId;
+       }
+
+       /**
+        * Handler method for PUT operation of Router Interface
+        * 
+        * @see org.opendaylight.vtn.javaapi.resources.AbstractResource#put(com.
+        *      google.gson.JsonObject)
+        */
+       @Override
+       public int put(JsonObject requestBody) throws VtnServiceException {
+               LOG.trace("Start RouterInterfaceResource#put()");
+
+               int errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+
+               Connection connection = null;
+
+               try {
+                       connection = VtnServiceInitManager.getDbConnectionPoolMap()
+                                       .getConnection();
+
+                       /*
+                        * Check for instances that they exists or not, if not then return
+                        * 404 error
+                        */
+                       if (checkForNotFoundResources(connection)) {
+
+                               final RestResource restResource = new RestResource();
+
+                               errorCode = updateVRouterInterface(requestBody, restResource);
+
+                               if (errorCode == UncCommonEnum.UncResultCode.UNC_SUCCESS
+                                               .getValue()) {
+                                       LOG.error("vBridge Update at UNC is successful.");
+                               } else {
+                                       LOG.info("vBridge Update at UNC is failed.");
+                               }
+                               checkForSpecificErrors(restResource.getInfo());
+                       } else {
+                               LOG.error("Resource not found error.");
+                       }
+                       /*
+                        * set response, if it is not set during above processing
+                        */
+                       if (errorCode != UncResultCode.UNC_SUCCESS.getValue()) {
+                               if (getInfo() == null) {
+                                       createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR
+                                                       .getValue());
+                               }
+                       }
+               } catch (final SQLException exception) {
+                       LOG.error("Internal server error : " + exception);
+                       errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+                       createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR.getValue());
+               } finally {
+                       if (connection != null) {
+                               LOG.info("Free connection...");
+                               VtnServiceInitManager.getDbConnectionPoolMap().freeConnection(
+                                               connection);
+                       }
+               }
+
+               LOG.trace("Complete RouterInterfaceResource#put()");
+               return errorCode;
+       }
+
+       /**
+        * Handler method for DELETE operation of Router Interface
+        * 
+        * @see org.opendaylight.vtn.javaapi.resources.AbstractResource#delete()
+        */
+       @Override
+       public int delete() throws VtnServiceException {
+               LOG.trace("Start RouterInterfaceResource#delete()");
+
+               int errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+
+               boolean isCommitRequired = false;
+               Connection connection = null;
+
+               try {
+                       connection = VtnServiceInitManager.getDbConnectionPoolMap()
+                                       .getConnection();
+
+                       /*
+                        * Check for instances that they exists or not, if not then return
+                        * 404 error
+                        */
+                       if (checkForNotFoundResources(connection)) {
+
+                               final VRouterInterfaceBean vInterfaceBean = new VRouterInterfaceBean();
+                               vInterfaceBean.setVrtIfId(Integer.parseInt(getInterfaceId()));
+                               vInterfaceBean.setVtnName(getTenantId());
+                               vInterfaceBean.setVrtName(getRouterId());
+                               vInterfaceBean.setVrtIfName(VtnServiceOpenStackConsts.IF_PREFIX
+                                               + getInterfaceId());
+
+                               final FreeCounterBean freeCounterBean = new FreeCounterBean();
+                               freeCounterBean
+                                               .setResourceId(VtnServiceOpenStackConsts.PORT_RES_ID);
+                               freeCounterBean.setVtnName(getTenantId());
+                               freeCounterBean.setResourceCounter(vInterfaceBean.getVrtIfId());
+
+                               final VRouterInterfaceDao vInterfaceDao = new VRouterInterfaceDao();
+                               final String vbrName = vInterfaceDao.getVbridgeName(connection,
+                                               vInterfaceBean);
+
+                               final ResourceIdManager resourceIdManager = new ResourceIdManager();
+
+                               if (resourceIdManager.deleteResourceId(connection,
+                                               freeCounterBean, vInterfaceBean)) {
+                                       LOG.info("Deletion operation from database is successfull.");
+
+                                       final RestResource restResource = new RestResource();
+
+                                       errorCode = deleteVLink(restResource);
+
+                                       if (errorCode == UncCommonEnum.UncResultCode.UNC_SUCCESS
+                                                       .getValue()) {
+                                               errorCode = deleteVRouterInterface(restResource);
+
+                                               if (errorCode == UncCommonEnum.UncResultCode.UNC_SUCCESS
+                                                               .getValue()) {
+
+                                                       if (vbrName != null) {
+                                                               errorCode = deleteVBridgeInterface(
+                                                                               restResource, vbrName);
+
+                                                               if (errorCode == UncCommonEnum.UncResultCode.UNC_SUCCESS
+                                                                               .getValue()) {
+                                                                       LOG.info("vBridge/vRouter interface and vLink Deletion successful at UNC.");
+                                                                       isCommitRequired = true;
+                                                               } else {
+                                                                       errorCode = UncResultCode.UNC_SERVER_ERROR
+                                                                                       .getValue();
+                                                                       LOG.error("vBridge interface Deletion failed at UNC.");
+                                                               }
+                                                       } else {
+                                                               errorCode = UncResultCode.UNC_SERVER_ERROR
+                                                                               .getValue();
+                                                               LOG.error("vbr_name not found.");
+                                                       }
+                                               } else {
+                                                       errorCode = UncResultCode.UNC_SERVER_ERROR
+                                                                       .getValue();
+                                                       LOG.error("vRouter interface Deletion failed at UNC.");
+                                               }
+                                       } else {
+                                               errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+                                               LOG.error("vlink Deletion failed at UNC.");
+                                       }
+                                       checkForSpecificErrors(restResource.getInfo());
+                               } else {
+                                       LOG.info("Deletion operation from database is falied.");
+                               }
+                       } else {
+                               LOG.error("Resource not found error.");
+                       }
+
+                       /*
+                        * If all processing are OK, the commit all the database transaction
+                        * made for current connection. Otherwise do the roll-back
+                        */
+                       if (isCommitRequired) {
+                               // connection.commit();
+                               setOpenStackConnection(connection);
+                               LOG.info("Resource deletion successful in database.");
+                       } else {
+                               connection.rollback();
+                               LOG.info("Resource deletion is roll-backed.");
+                       }
+
+                       /*
+                        * set response, if it is not set during above processing
+                        */
+                       if (errorCode != UncResultCode.UNC_SUCCESS.getValue()) {
+                               if (getInfo() == null) {
+                                       createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR
+                                                       .getValue());
+                               }
+                       }
+               } catch (final SQLException exception) {
+                       LOG.error("Internal server error ocuurred.");
+                       errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+                       createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR.getValue());
+               } finally {
+                       if (connection != null && !isCommitRequired) {
+                               try {
+                                       connection.rollback();
+                               } catch (final SQLException e) {
+                                       LOG.error("Rollback error : " + e);
+                               }
+                               LOG.info("Free connection...");
+                               VtnServiceInitManager.getDbConnectionPoolMap().freeConnection(
+                                               connection);
+                       }
+               }
+               LOG.trace("Complete RouterInterfaceResource#delete()");
+               return errorCode;
+       }
+
+       /**
+        * Update vRouter interface at UNC
+        * 
+        * @param requestBody
+        *            - OpenStack request body
+        * @param restResource
+        *            - RestResource instance
+        * @return - erorrCode, 200 for Success
+        */
+       private int updateVRouterInterface(JsonObject requestBody,
+                       final RestResource restResource) {
+               /*
+                * Create request body for vRouter interface update
+                */
+               final JsonObject vrtIfRequestBody = VrtResourcesGenerator
+                               .getUpdateVrtIfRequestBody(requestBody);
+
+               /*
+                * execute update vRouter interface request
+                */
+               StringBuilder sb = new StringBuilder();
+               sb.append(VtnServiceOpenStackConsts.VTN_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getTenantId());
+               sb.append(VtnServiceOpenStackConsts.VROUTER_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getRouterId());
+               sb.append(VtnServiceOpenStackConsts.INTERFACE_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(VtnServiceOpenStackConsts.IF_PREFIX);
+               sb.append(getInterfaceId());
+
+               restResource.setPath(sb.toString());
+               restResource.setSessionID(getSessionID());
+               restResource.setConfigID(getConfigID());
+
+               return restResource.put(vrtIfRequestBody);
+       }
+
+       /**
+        * Delete vBridge interface at UNC
+        * 
+        * @param restResource
+        *            - RestResource instance
+        * @return - erorrCode, 200 for Success
+        */
+       private int
+                       deleteVBridgeInterface(RestResource restResource, String vbrName) {
+               int errorCode;
+               /*
+                * execute delete vBridge interface request
+                */
+               StringBuilder sb = new StringBuilder();
+               sb.append(VtnServiceOpenStackConsts.VTN_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getTenantId());
+               sb.append(VtnServiceOpenStackConsts.VBRIDGE_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(vbrName);
+               sb.append(VtnServiceOpenStackConsts.INTERFACE_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(VtnServiceOpenStackConsts.IF_PREFIX);
+               sb.append(getInterfaceId());
+
+               restResource.setPath(sb.toString());
+               restResource.setSessionID(getSessionID());
+               restResource.setConfigID(getConfigID());
+
+               errorCode = restResource.delete();
+               return errorCode;
+       }
+
+       /**
+        * Delete vRouter interface at UNC
+        * 
+        * @param restResource
+        *            - RestResource instance
+        * @return - erorrCode, 200 for Success
+        */
+       private int deleteVRouterInterface(RestResource restResource) {
+               /*
+                * execute delete vRouter interface request
+                */
+               StringBuilder sb = new StringBuilder();
+               sb.append(VtnServiceOpenStackConsts.VTN_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getTenantId());
+               sb.append(VtnServiceOpenStackConsts.VROUTER_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getRouterId());
+               sb.append(VtnServiceOpenStackConsts.INTERFACE_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(VtnServiceOpenStackConsts.IF_PREFIX);
+               sb.append(getInterfaceId());
+
+               restResource.setPath(sb.toString());
+               restResource.setSessionID(getSessionID());
+               restResource.setConfigID(getConfigID());
+
+               return restResource.delete();
+       }
+
+       /**
+        * Delete vLink at UNC
+        * 
+        * @param restResource
+        *            - RestResource instance
+        * @return - erorrCode, 200 for Success
+        */
+       private int deleteVLink(RestResource restResource) {
+               /*
+                * execute delete vLink request
+                */
+               StringBuilder sb = new StringBuilder();
+               sb.append(VtnServiceOpenStackConsts.VTN_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getTenantId());
+               sb.append(VtnServiceOpenStackConsts.VLINK_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(VtnServiceOpenStackConsts.VLK_PREFIX);
+               sb.append(getInterfaceId());
+
+               restResource.setPath(sb.toString());
+               restResource.setSessionID(getSessionID());
+               restResource.setConfigID(getConfigID());
+
+               return restResource.delete();
+       }
+
+       /**
+        * Checks that specified instances in URI exists in system or not. If they
+        * are not exists then prepare error JSON for 404 Not Found
+        * 
+        * @param connection
+        *            - Database Connection instance
+        * @return - true, only if all instances exist
+        * @throws SQLException
+        */
+       private boolean checkForNotFoundResources(Connection connection)
+                       throws SQLException {
+               boolean notFoundStatus = false;
+               VtnBean vtnBean = new VtnBean();
+               vtnBean.setVtnName(getTenantId());
+               if (new VtnDao().isVtnFound(connection, vtnBean)) {
+                       VRouterBean vRouterBean = new VRouterBean();
+                       vRouterBean.setVtnName(getTenantId());
+                       vRouterBean.setVrtName(getRouterId());
+                       if (new VRouterDao().isVrtFound(connection, vRouterBean)) {
+                               VRouterInterfaceBean vInterfaceBean = new VRouterInterfaceBean();
+                               vInterfaceBean.setVtnName(getTenantId());
+                               vInterfaceBean.setVrtName(getRouterId());
+                               vInterfaceBean.setVrtIfName(VtnServiceOpenStackConsts.IF_PREFIX
+                                               + getInterfaceId());
+                               if (new VRouterInterfaceDao().isVrtIfFound(connection,
+                                               vInterfaceBean)) {
+                                       notFoundStatus = true;
+                               } else {
+                                       createErrorInfo(
+                                                       UncResultCode.UNC_NOT_FOUND.getValue(),
+                                                       getCutomErrorMessage(
+                                                                       UncResultCode.UNC_NOT_FOUND.getMessage(),
+                                                                       VtnServiceOpenStackConsts.IF_ID,
+                                                                       getInterfaceId()));
+                               }
+                       } else {
+                               createErrorInfo(
+                                               UncResultCode.UNC_NOT_FOUND.getValue(),
+                                               getCutomErrorMessage(
+                                                               UncResultCode.UNC_NOT_FOUND.getMessage(),
+                                                               VtnServiceOpenStackConsts.ROUTER_ID,
+                                                               getRouterId()));
+                       }
+               } else {
+                       createErrorInfo(
+                                       UncResultCode.UNC_NOT_FOUND.getValue(),
+                                       getCutomErrorMessage(
+                                                       UncResultCode.UNC_NOT_FOUND.getMessage(),
+                                                       VtnServiceOpenStackConsts.TENANT_ID, getTenantId()));
+               }
+               return notFoundStatus;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/RouterInterfacesResource.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/RouterInterfacesResource.java
new file mode 100644 (file)
index 0000000..b88d7f3
--- /dev/null
@@ -0,0 +1,444 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.resources.openstack;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+
+import com.google.gson.JsonObject;
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.RestResource;
+import org.opendaylight.vtn.javaapi.annotation.UNCField;
+import org.opendaylight.vtn.javaapi.annotation.UNCVtnService;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
+import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
+import org.opendaylight.vtn.javaapi.init.VtnServiceInitManager;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum.UncResultCode;
+import org.opendaylight.vtn.javaapi.openstack.beans.FreeCounterBean;
+import org.opendaylight.vtn.javaapi.openstack.beans.VBridgeBean;
+import org.opendaylight.vtn.javaapi.openstack.beans.VRouterBean;
+import org.opendaylight.vtn.javaapi.openstack.beans.VRouterInterfaceBean;
+import org.opendaylight.vtn.javaapi.openstack.beans.VtnBean;
+import org.opendaylight.vtn.javaapi.openstack.constants.VtnServiceOpenStackConsts;
+import org.opendaylight.vtn.javaapi.openstack.convertor.VbrResourcesGenerator;
+import org.opendaylight.vtn.javaapi.openstack.convertor.VrtResourcesGenerator;
+import org.opendaylight.vtn.javaapi.openstack.dao.VBridgeDao;
+import org.opendaylight.vtn.javaapi.openstack.dao.VRouterDao;
+import org.opendaylight.vtn.javaapi.openstack.dao.VRouterInterfaceDao;
+import org.opendaylight.vtn.javaapi.openstack.dao.VtnDao;
+import org.opendaylight.vtn.javaapi.openstack.dbmanager.ResourceIdManager;
+import org.opendaylight.vtn.javaapi.openstack.validation.RouterInterfaceResourceValidator;
+import org.opendaylight.vtn.javaapi.resources.AbstractResource;
+
+/**
+ * Resource class for handling POST requests for Router Interface
+ */
+@UNCVtnService(path = VtnServiceOpenStackConsts.ROUTER_INTERFACES_PATH)
+public class RouterInterfacesResource extends AbstractResource {
+
+       /* Logger instance */
+       private static final Logger LOG = Logger
+                       .getLogger(RouterInterfacesResource.class.getName());
+
+       @UNCField(VtnServiceOpenStackConsts.TENANT_ID)
+       private String tenantId;
+
+       @UNCField(VtnServiceOpenStackConsts.ROUTER_ID)
+       private String routerId;
+
+       /**
+        * Constructor that initialize the validation instance for current resource
+        * instance
+        */
+       public RouterInterfacesResource() {
+               setValidator(new RouterInterfaceResourceValidator(this));
+       }
+
+       /**
+        * Getter of tenantId
+        * 
+        * @return
+        */
+       public String getTenantId() {
+               return tenantId;
+       }
+
+       /**
+        * Getter of routerId
+        * 
+        * @return
+        */
+       public String getRouterId() {
+               return routerId;
+       }
+
+       /**
+        * Handler method for POST operation of Router Interface
+        * 
+        * @see org.opendaylight.vtn.javaapi.resources.AbstractResource#post(com
+        *      .google.gson.JsonObject)
+        */
+       @Override
+       public int post(JsonObject requestBody) throws VtnServiceException {
+               LOG.trace("Start RouterInterfacesResource#post()");
+
+               int errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+
+               boolean isCommitRequired = false;
+               String generatedIfName = null;
+               Connection connection = null;
+               int counter = -1;
+
+               try {
+                       connection = VtnServiceInitManager.getDbConnectionPoolMap()
+                                       .getConnection();
+                       /*
+                        * Check for instances that they exists or not, if not then return
+                        * 404 error
+                        */
+                       if (checkForNotFoundResources(connection, requestBody)) {
+                               final ResourceIdManager resourceIdManager = new ResourceIdManager();
+
+                               /*
+                                * generate "id" for vBridge interface, vRouter interface and
+                                * vLink
+                                */
+                               LOG.info("Resource id auto-generation is required.");
+
+                               final FreeCounterBean freeCounterBean = new FreeCounterBean();
+                               freeCounterBean
+                                               .setResourceId(VtnServiceOpenStackConsts.PORT_RES_ID);
+                               freeCounterBean.setVtnName(getTenantId());
+
+                               counter = resourceIdManager.getResourceId(connection,
+                                               freeCounterBean);
+
+                               if (counter != -1) {
+                                       LOG.debug("Resource id auto-generation is successfull : "
+                                                       + counter);
+                                       
+                                       if (counter > VtnServiceOpenStackConsts.MAX_ROUTER_IF_LIMIT) {
+                                               LOG.warning("Router interface creation reached at maximum limit");
+                                               createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR
+                                                               .getValue());
+                                               return errorCode;
+                                       }
+                                       
+                                       // if id is generated successfully
+                                       generatedIfName = VtnServiceOpenStackConsts.IF_PREFIX
+                                                       + counter;
+
+                                       requestBody.addProperty(VtnServiceOpenStackConsts.ID,
+                                                       generatedIfName);
+
+                                       requestBody.addProperty(VtnServiceJsonConsts.VLKNAME,
+                                                       VtnServiceOpenStackConsts.VLK_PREFIX + counter);
+                               } else {
+                                       LOG.error("Resource id auto-generation is failed.");
+                               }
+
+                               if (counter >= 1) {
+                                       /*
+                                        * resource insertion in database, if is is successful then
+                                        * continue to execute operations at UNC. Otherwise return
+                                        * HTTP 409
+                                        */
+                                       final VRouterInterfaceBean vInterfaceBean = new VRouterInterfaceBean();
+                                       vInterfaceBean.setVrtIfId(counter);
+                                       vInterfaceBean.setVtnName(getTenantId());
+                                       vInterfaceBean.setVrtName(getRouterId());
+                                       vInterfaceBean.setVrtIfName(generatedIfName);
+                                       vInterfaceBean.setVbrName(requestBody.get(
+                                                       VtnServiceOpenStackConsts.NET_ID).getAsString());
+                                       
+                                       final VRouterInterfaceDao vInterfaceDao = new VRouterInterfaceDao();
+                                       final int status = vInterfaceDao.insert(connection,
+                                                       vInterfaceBean);
+
+                                       if (status == 1) {
+                                               LOG.info("Resource insertion successful at database operation.");
+
+                                               final RestResource restResource = new RestResource();
+
+                                               errorCode = createVBridgeInterface(requestBody,
+                                                               restResource);
+
+                                               if (errorCode == UncResultCode.UNC_SUCCESS.getValue()) {
+                                                       errorCode = createVRouterInterface(requestBody,
+                                                                       restResource);
+
+                                                       if (errorCode == UncResultCode.UNC_SUCCESS
+                                                                       .getValue()) {
+                                                               errorCode = createVLink(requestBody,
+                                                                               restResource);
+
+                                                               if (errorCode == UncCommonEnum.UncResultCode.UNC_SUCCESS
+                                                                               .getValue()) {
+                                                                       LOG.info("vlink creation is successful at UNC.");
+                                                                       isCommitRequired = true;
+                                                                       final JsonObject response = new JsonObject();
+                                                                       response.addProperty(
+                                                                                       VtnServiceOpenStackConsts.ID,
+                                                                                       String.valueOf(counter));
+                                                                       setInfo(response);
+                                                               } else {
+                                                                       errorCode = UncResultCode.UNC_SERVER_ERROR
+                                                                                       .getValue();
+                                                                       LOG.error("vlink creation is failed at UNC.");
+                                                               }
+                                                       } else {
+                                                               errorCode = UncResultCode.UNC_SERVER_ERROR
+                                                                               .getValue();
+                                                               LOG.error("vRouter interface creation is failed at UNC.");
+                                                       }
+                                               } else {
+                                                       errorCode = UncResultCode.UNC_SERVER_ERROR
+                                                                       .getValue();
+                                                       LOG.error("vBridge interface creation is failed at UNC.");
+                                               }
+                                               checkForSpecificErrors(restResource.getInfo());
+                                       } else {
+                                               LOG.error("Resource insertion failed at database operation.");
+                                       }
+                               } else {
+                                       LOG.error("Error occurred while generation of id or setting controller_id");
+                               }
+                       } else {
+                               LOG.error("Resource not found error.");
+                       }
+
+                       /*
+                        * If all processing are OK, the commit all the database transaction
+                        * made for current connection. Otherwise do the roll-back
+                        */
+                       if (isCommitRequired) {
+                               // connection.commit();
+                               setOpenStackConnection(connection);
+                               LOG.info("Resource insertion successful in database.");
+                       } else {
+                               connection.rollback();
+                               LOG.info("Resource insertion is roll-backed.");
+                       }
+
+                       /*
+                        * set response, if it is not set during processing for create
+                        * tenant
+                        */
+                       if (errorCode != UncResultCode.UNC_SUCCESS.getValue()) {
+                               if (getInfo() == null) {
+                                       createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR
+                                                       .getValue());
+                               }
+                       }
+               } catch (final SQLException exception) {
+                       LOG.error("Internal server error : " + exception);
+                       errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+                       if (exception.getSQLState().equalsIgnoreCase(
+                                       VtnServiceOpenStackConsts.CONFLICT_SQL_STATE)) {
+                               LOG.error("Conflict found during creation of resource");
+                               createErrorInfo(
+                                               UncResultCode.UNC_CONFLICT_FOUND.getValue(),
+                                               getCutomErrorMessage(
+                                                               UncResultCode.UNC_CONFLICT_FOUND.getMessage(),
+                                                               VtnServiceOpenStackConsts.IF_ID,
+                                                               String.valueOf(counter)));
+                       } else {
+                               createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR
+                                               .getValue());
+                       }
+               } finally {
+                       if (connection != null && !isCommitRequired) {
+                               try {
+                                       connection.rollback();
+                                       LOG.info("roll-back successful.");
+                               } catch (final SQLException e) {
+                                       LOG.error("Rollback error : " + e);
+                               }
+                               LOG.info("Free connection...");
+                               VtnServiceInitManager.getDbConnectionPoolMap().freeConnection(
+                                               connection);
+                       }
+               }
+               LOG.trace("Complete RouterInterfacesResource#post()");
+               return errorCode;
+       }
+
+       /**
+        * Create vRouter interface at UNC
+        * 
+        * @param requestBody
+        *            - OpenStack request body
+        * @param restResource
+        *            - RestResource instance
+        * @return - erorrCode, 200 for Success
+        */
+       private int createVRouterInterface(JsonObject requestBody,
+                       RestResource restResource) {
+               /*
+                * Create request body for vRouter interface creation
+                */
+               final JsonObject vrtIfRequestBody = VrtResourcesGenerator
+                               .getCreateVrtIfRequestBody(requestBody);
+
+               /*
+                * execute create vRouter interface request
+                */
+               StringBuilder sb = new StringBuilder();
+               sb.append(VtnServiceOpenStackConsts.VTN_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getTenantId());
+               sb.append(VtnServiceOpenStackConsts.VROUTER_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getRouterId());
+               sb.append(VtnServiceOpenStackConsts.INTERFACE_PATH);
+
+               restResource.setPath(sb.toString());
+               restResource.setSessionID(getSessionID());
+               restResource.setConfigID(getConfigID());
+
+               return restResource.post(vrtIfRequestBody);
+       }
+
+       /**
+        * Create vBridge interface at UNC
+        * 
+        * @param requestBody
+        *            - OpenStack request body
+        * @param restResource
+        *            - RestResource instance
+        * @return - erorrCode, 200 for Success
+        */
+       private int createVBridgeInterface(JsonObject requestBody,
+                       RestResource restResource) {
+               /*
+                * Create request body for vBridge interface creation
+                */
+               final JsonObject vbrIfRequestBody = VbrResourcesGenerator
+                               .getCreateVbrIfRequestBody(requestBody);
+
+               /*
+                * execute create vBridge interface request
+                */
+               StringBuilder sb = new StringBuilder();
+               sb.append(VtnServiceOpenStackConsts.VTN_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getTenantId());
+               sb.append(VtnServiceOpenStackConsts.VBRIDGE_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(requestBody.get(VtnServiceOpenStackConsts.NET_ID)
+                               .getAsString());
+               sb.append(VtnServiceOpenStackConsts.INTERFACE_PATH);
+
+               restResource.setPath(sb.toString());
+               restResource.setSessionID(getSessionID());
+               restResource.setConfigID(getConfigID());
+
+               return restResource.post(vbrIfRequestBody);
+       }
+
+       /**
+        * Create vLink at UNC
+        * 
+        * @param requestBody
+        *            - OpenStack request body
+        * @param restResource
+        *            - RestResource instance
+        * @return - erorrCode, 200 for Success
+        */
+       private int createVLink(JsonObject requestBody, RestResource restResource) {
+               /*
+                * Create request body for vlink creation
+                */
+               final JsonObject vlinkRequestBody = new JsonObject();
+               final JsonObject vlink = new JsonObject();
+
+               vlink.addProperty(VtnServiceJsonConsts.VLKNAME,
+                               requestBody.get(VtnServiceJsonConsts.VLKNAME).getAsString());
+
+               vlink.addProperty(VtnServiceJsonConsts.VNODE1NAME,
+                               requestBody.get(VtnServiceOpenStackConsts.NET_ID).getAsString());
+               vlink.addProperty(VtnServiceJsonConsts.IF1NAME,
+                               requestBody.get(VtnServiceOpenStackConsts.ID).getAsString());
+
+               vlink.addProperty(VtnServiceJsonConsts.VNODE2NAME, getRouterId());
+               vlink.addProperty(VtnServiceJsonConsts.IF2NAME,
+                               requestBody.get(VtnServiceOpenStackConsts.ID).getAsString());
+
+               vlinkRequestBody.add(VtnServiceJsonConsts.VLINK, vlink);
+
+               /*
+                * execute create vBridge interface request
+                */
+               StringBuilder sb = new StringBuilder();
+               sb.append(VtnServiceOpenStackConsts.VTN_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getTenantId());
+               sb.append(VtnServiceOpenStackConsts.VLINK_PATH);
+
+               restResource.setPath(sb.toString());
+               restResource.setSessionID(getSessionID());
+               restResource.setConfigID(getConfigID());
+
+               return restResource.post(vlinkRequestBody);
+       }
+
+       /**
+        * Checks that specified instances in URI exists in system or not. If they
+        * are not exists then prepare error JSON for 404 Not Found
+        * 
+        * @param connection
+        *            - Database Connection instance
+        * @return - true, only if all instances exist
+        * @throws SQLException
+        */
+       private boolean checkForNotFoundResources(Connection connection,
+                       JsonObject requestBody) throws SQLException {
+               boolean notFoundStatus = false;
+               VtnBean vtnBean = new VtnBean();
+               vtnBean.setVtnName(getTenantId());
+               if (new VtnDao().isVtnFound(connection, vtnBean)) {
+                       VRouterBean vRouterBean = new VRouterBean();
+                       vRouterBean.setVtnName(getTenantId());
+                       vRouterBean.setVrtName(getRouterId());
+                       if (new VRouterDao().isVrtFound(connection, vRouterBean)) {
+                               VBridgeBean vBridgeBean = new VBridgeBean();
+                               vBridgeBean.setVtnName(getTenantId());
+                               vBridgeBean.setVbrName(requestBody.get(
+                                               VtnServiceOpenStackConsts.NET_ID).getAsString());
+                               if (new VBridgeDao().isVbrFound(connection, vBridgeBean)) {
+                                       notFoundStatus = true;
+                               } else {
+                                       createErrorInfo(
+                                                       UncResultCode.UNC_NOT_FOUND.getValue(),
+                                                       getCutomErrorMessage(
+                                                                       UncResultCode.UNC_NOT_FOUND.getMessage(),
+                                                                       VtnServiceOpenStackConsts.NET_ID,
+                                                                       requestBody.get(
+                                                                                       VtnServiceOpenStackConsts.NET_ID)
+                                                                                       .getAsString()));
+                               }
+                       } else {
+                               createErrorInfo(
+                                               UncResultCode.UNC_NOT_FOUND.getValue(),
+                                               getCutomErrorMessage(
+                                                               UncResultCode.UNC_NOT_FOUND.getMessage(),
+                                                               VtnServiceOpenStackConsts.ROUTER_ID,
+                                                               getRouterId()));
+                       }
+               } else {
+                       createErrorInfo(
+                                       UncResultCode.UNC_NOT_FOUND.getValue(),
+                                       getCutomErrorMessage(
+                                                       UncResultCode.UNC_NOT_FOUND.getMessage(),
+                                                       VtnServiceOpenStackConsts.TENANT_ID, getTenantId()));
+               }
+               return notFoundStatus;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/RouterResource.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/RouterResource.java
new file mode 100644 (file)
index 0000000..a34695d
--- /dev/null
@@ -0,0 +1,335 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.resources.openstack;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.RestResource;
+import org.opendaylight.vtn.javaapi.annotation.UNCField;
+import org.opendaylight.vtn.javaapi.annotation.UNCVtnService;
+import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
+import org.opendaylight.vtn.javaapi.init.VtnServiceInitManager;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum.UncResultCode;
+import org.opendaylight.vtn.javaapi.openstack.beans.FreeCounterBean;
+import org.opendaylight.vtn.javaapi.openstack.beans.VRouterBean;
+import org.opendaylight.vtn.javaapi.openstack.beans.VtnBean;
+import org.opendaylight.vtn.javaapi.openstack.constants.VtnServiceOpenStackConsts;
+import org.opendaylight.vtn.javaapi.openstack.dao.VRouterDao;
+import org.opendaylight.vtn.javaapi.openstack.dao.VtnDao;
+import org.opendaylight.vtn.javaapi.openstack.dbmanager.ResourceIdManager;
+import org.opendaylight.vtn.javaapi.openstack.validation.RouterResourceValidator;
+import org.opendaylight.vtn.javaapi.resources.AbstractResource;
+
+/**
+ * Resource class for handling PUT and DELETE requests for Router
+ */
+@UNCVtnService(path = VtnServiceOpenStackConsts.ROUTER_PATH)
+public class RouterResource extends AbstractResource {
+
+       /* Logger instance */
+       private static final Logger LOG = Logger.getLogger(RouterResource.class
+                       .getName());
+
+       @UNCField(VtnServiceOpenStackConsts.TENANT_ID)
+       private String tenantId;
+
+       @UNCField(VtnServiceOpenStackConsts.ROUTER_ID)
+       private String routerId;
+
+       /**
+        * Constructor that initialize the validation instance for current resource
+        * instance
+        */
+       public RouterResource() {
+               setValidator(new RouterResourceValidator(this));
+       }
+
+       /**
+        * Getter for tenantId
+        * 
+        * @return
+        */
+       public String getTenantId() {
+               return tenantId;
+       }
+
+       /**
+        * Getter for routerId
+        * 
+        * @return
+        */
+       public String getRouterId() {
+               return routerId;
+       }
+
+//     /**
+//      * Handler method for PUT operation of Router
+//      * 
+//      * @see org.opendaylight.vtn.javaapi.resources.AbstractResource#put(com.
+//      *      google.gson.JsonObject)
+//      */
+//     @Override
+//     public int put(JsonObject requestBody) throws VtnServiceException {
+//             LOG.trace("Start RouterResource#put()");
+//
+//             int errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+//
+//             Connection connection = null;
+//
+//             try {
+//                     connection = VtnServiceInitManager.getDbConnectionPoolMap()
+//                                     .getConnection();
+//
+//                     /*
+//                      * Check for instances that they exists or not, if not then return
+//                      * 404 error
+//                      */
+//                     if (checkForNotFoundResources(connection)) {
+//
+//                             final RestResource restResource = new RestResource();
+//
+//                             errorCode = updateVRouter(requestBody, restResource);
+//
+//                             if (errorCode == UncCommonEnum.UncResultCode.UNC_SUCCESS
+//                                             .getValue()) {
+//                                     LOG.error("vRouter Update at UNC is successful.");
+//                             } else {
+//                                     LOG.info("vRouter Update at UNC is failed.");
+//                             }
+//                             checkForSpecificErrors(restResource.getInfo());
+//                     } else {
+//                             LOG.error("Resource not found error.");
+//                     }
+//                     /*
+//                      * set response, if it is not set during above processing
+//                      */
+//                     if (errorCode != UncResultCode.UNC_SUCCESS.getValue()) {
+//                             if (getInfo() == null) {
+//                                     createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR
+//                                                     .getValue());
+//                             }
+//                     }
+//             } catch (final SQLException exception) {
+//                     LOG.error("Internal server error : " + exception);
+//                     errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+//                     createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR.getValue());
+//             } finally {
+//                     if (connection != null) {
+//                             LOG.info("Free connection...");
+//                             VtnServiceInitManager.getDbConnectionPoolMap().freeConnection(
+//                                             connection);
+//                     }
+//             }
+//             LOG.trace("Complete RouterResource#put()");
+//             return errorCode;
+//     }
+
+       /**
+        * Handler method for DELETE operation of Router
+        * 
+        * @see org.opendaylight.vtn.javaapi.resources.AbstractResource#delete(com
+        *      .google.gson.JsonObject)
+        */
+       @Override
+       public int delete() throws VtnServiceException {
+               LOG.trace("Start RouterResource#delete()");
+
+               int errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+
+               boolean isCommitRequired = false;
+               Connection connection = null;
+
+               try {
+                       connection = VtnServiceInitManager.getDbConnectionPoolMap()
+                                       .getConnection();
+
+                       /*
+                        * Check for instances that they exists or not, if not then return
+                        * 404 error
+                        */
+                       if (checkForNotFoundResources(connection)) {
+                               final VRouterBean vRouterBean = new VRouterBean();
+                               vRouterBean.setVtnName(getTenantId());
+                               vRouterBean.setVrtName(getRouterId());
+
+                               final FreeCounterBean freeCounterBean = new FreeCounterBean();
+                               freeCounterBean
+                                               .setResourceId(VtnServiceOpenStackConsts.ROUTER_RES_ID);
+                               freeCounterBean.setVtnName(getTenantId());
+                               freeCounterBean.setResourceCounter(0);
+
+                               final ResourceIdManager resourceIdManager = new ResourceIdManager();
+
+                               if (resourceIdManager.deleteResourceId(connection,
+                                               freeCounterBean, vRouterBean)) {
+                                       LOG.info("Deletion operation from database is successfull.");
+
+                                       final RestResource restResource = new RestResource();
+
+                                       errorCode = deleteVRouter(restResource);
+
+                                       if (errorCode == UncCommonEnum.UncResultCode.UNC_SUCCESS
+                                                       .getValue()) {
+                                               LOG.error("vRouter Deletion successful at UNC.");
+                                               isCommitRequired = true;
+                                       } else {
+                                               LOG.error("vRouter Deletion failed at UNC.");
+                                       }
+                                       checkForSpecificErrors(restResource.getInfo());
+                               } else {
+                                       LOG.info("Deletion operation from database is falied.");
+                                       connection.rollback();
+                               }
+                       } else {
+                               LOG.error("Resource not found error.");
+                       }
+
+                       /*
+                        * If all processing are OK, the commit all the database transaction
+                        * made for current connection. Otherwise do the roll-back
+                        */
+                       if (isCommitRequired) {
+                               // connection.commit();
+                               setOpenStackConnection(connection);
+                               LOG.info("Resource insertion successful in database.");
+                       } else {
+                               connection.rollback();
+                               LOG.info("Resource insertion is roll-backed.");
+                       }
+
+                       /*
+                        * set response, if it is not set during above processing
+                        */
+                       if (errorCode != UncResultCode.UNC_SUCCESS.getValue()) {
+                               if (getInfo() == null) {
+                                       createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR
+                                                       .getValue());
+                               }
+                       }
+               } catch (final SQLException exception) {
+                       LOG.error("Internal server error ocuurred.");
+                       errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+                       createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR.getValue());
+               } finally {
+                       if (connection != null && !isCommitRequired) {
+                               try {
+                                       connection.rollback();
+                               } catch (final SQLException e) {
+                                       LOG.error("Rollback error : " + e);
+                               }
+                               LOG.info("Free connection...");
+                               VtnServiceInitManager.getDbConnectionPoolMap().freeConnection(
+                                               connection);
+                       }
+               }
+               LOG.trace("Complete RouterResource#delete()");
+               return errorCode;
+       }
+
+//     /**
+//      * Update vRouter at UNC
+//      * 
+//      * @param requestBody
+//      *            - OpenStack request body
+//      * @param restResource
+//      *            - RestResource instance
+//      * @return - erorrCode, 200 for Success
+//      */
+//     private int updateVRouter(JsonObject requestBody,
+//                     final RestResource restResource) {
+//             /*
+//              * Create request body for vRouter update
+//              */
+//             final JsonObject vrtRequestBody = VrtResourcesGenerator
+//                             .getUpdateVrtRequestBody(requestBody);
+//
+//             /*
+//              * execute update vBridge request
+//              */
+//             StringBuilder sb = new StringBuilder();
+//             sb.append(VtnServiceOpenStackConsts.VTN_PATH);
+//             sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+//             sb.append(getTenantId());
+//             sb.append(VtnServiceOpenStackConsts.VROUTER_PATH);
+//             sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+//             sb.append(getRouterId());
+//
+//             restResource.setPath(sb.toString());
+//             restResource.setSessionID(getSessionID());
+//             restResource.setConfigID(getConfigID());
+//
+//             return restResource.put(vrtRequestBody);
+//     }
+
+       /**
+        * Delete vRouter at UNC
+        * 
+        * @param restResource
+        *            - RestResource instance
+        * @return - erorrCode, 200 for Success
+        */
+       private int deleteVRouter(final RestResource restResource) {
+               /*
+                * execute delete vRouter request
+                */
+               StringBuilder sb = new StringBuilder();
+               sb.append(VtnServiceOpenStackConsts.VTN_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getTenantId());
+               sb.append(VtnServiceOpenStackConsts.VROUTER_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getRouterId());
+
+               restResource.setPath(sb.toString());
+               restResource.setSessionID(getSessionID());
+               restResource.setConfigID(getConfigID());
+               return restResource.delete();
+       }
+
+       /**
+        * Checks that specified instances in URI exists in system or not. If they
+        * are not exists then prepare error JSON for 404 Not Found
+        * 
+        * @param connection
+        *            - Database Connection instance
+        * @return - true, only if all instances exist
+        * @throws SQLException
+        */
+       private boolean checkForNotFoundResources(Connection connection)
+                       throws SQLException {
+               boolean notFoundStatus = false;
+               VtnBean vtnBean = new VtnBean();
+               vtnBean.setVtnName(getTenantId());
+               if (new VtnDao().isVtnFound(connection, vtnBean)) {
+                       VRouterBean vRouterBean = new VRouterBean();
+                       vRouterBean.setVtnName(getTenantId());
+                       vRouterBean.setVrtName(getRouterId());
+                       if (new VRouterDao().isVrtFound(connection, vRouterBean)) {
+                               notFoundStatus = true;
+                       } else {
+                               createErrorInfo(
+                                               UncResultCode.UNC_NOT_FOUND.getValue(),
+                                               getCutomErrorMessage(
+                                                               UncResultCode.UNC_NOT_FOUND.getMessage(),
+                                                               VtnServiceOpenStackConsts.ROUTER_ID,
+                                                               getRouterId()));
+                       }
+               } else {
+                       createErrorInfo(
+                                       UncResultCode.UNC_NOT_FOUND.getValue(),
+                                       getCutomErrorMessage(
+                                                       UncResultCode.UNC_NOT_FOUND.getMessage(),
+                                                       VtnServiceOpenStackConsts.TENANT_ID, getTenantId()));
+               }
+               return notFoundStatus;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/RoutersResource.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/RoutersResource.java
new file mode 100644 (file)
index 0000000..d961dec
--- /dev/null
@@ -0,0 +1,307 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.resources.openstack;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+
+import com.google.gson.JsonObject;
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.RestResource;
+import org.opendaylight.vtn.javaapi.annotation.UNCField;
+import org.opendaylight.vtn.javaapi.annotation.UNCVtnService;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
+import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
+import org.opendaylight.vtn.javaapi.init.VtnServiceInitManager;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum.UncResultCode;
+import org.opendaylight.vtn.javaapi.openstack.beans.VRouterBean;
+import org.opendaylight.vtn.javaapi.openstack.beans.VtnBean;
+import org.opendaylight.vtn.javaapi.openstack.constants.VtnServiceOpenStackConsts;
+import org.opendaylight.vtn.javaapi.openstack.convertor.VrtResourcesGenerator;
+import org.opendaylight.vtn.javaapi.openstack.dao.DestinationControllerDao;
+import org.opendaylight.vtn.javaapi.openstack.dao.VRouterDao;
+import org.opendaylight.vtn.javaapi.openstack.dao.VtnDao;
+import org.opendaylight.vtn.javaapi.openstack.validation.RouterResourceValidator;
+import org.opendaylight.vtn.javaapi.resources.AbstractResource;
+
+/**
+ * Resource class for handling PUT and DELETE requests for Static Routes
+ */
+@UNCVtnService(path = VtnServiceOpenStackConsts.ROUTERS_PATH)
+public class RoutersResource extends AbstractResource {
+
+       /* Logger instance */
+       private static final Logger LOG = Logger.getLogger(RoutersResource.class
+                       .getName());
+
+       @UNCField(VtnServiceOpenStackConsts.TENANT_ID)
+       private String tenantId;
+
+       /**
+        * Constructor that initialize the validation instance for current resource
+        * instance
+        */
+       public RoutersResource() {
+               setValidator(new RouterResourceValidator(this));
+       }
+
+       /**
+        * Getter for tenantId
+        * 
+        * @return
+        */
+       public String getTenantId() {
+               return tenantId;
+       }
+
+       /**
+        * Handler method for POST operation of Router
+        * 
+        * @see org.opendaylight.vtn.javaapi.resources.AbstractResource#post(com
+        *      .google.gson.JsonObject)
+        */
+       @Override
+       public int post(JsonObject requestBody) throws VtnServiceException {
+
+               LOG.trace("Start RoutersResource#post()");
+
+               int errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+
+               boolean isCommitRequired = false;
+               String generatedVrtName = null;
+               Connection connection = null;
+
+               try {
+                       connection = VtnServiceInitManager.getDbConnectionPoolMap()
+                                       .getConnection();
+
+                       /*
+                        * Check for instances that they exists or not, if not then return
+                        * 404 error
+                        */
+                       if (checkForNotFoundResources(connection)) {
+
+                               /*
+                                * generate "id" is it is not present in request body
+                                */
+                               if (!requestBody.has(VtnServiceOpenStackConsts.ID)) {
+                                       LOG.info("Resource id auto-generation is required.");
+                                       generatedVrtName = VtnServiceOpenStackConsts.VRT_PREFIX;
+                                       requestBody.addProperty(VtnServiceOpenStackConsts.ID,
+                                                       generatedVrtName);
+                               } else {
+                                       LOG.info("Resource id auto-generation is not required.");
+                                       generatedVrtName = requestBody.get(
+                                                       VtnServiceOpenStackConsts.ID).getAsString();
+                               }
+
+                               LOG.debug("vrt_name : " + generatedVrtName);
+
+                               if (setControllerId(connection, requestBody)) {
+                                       /*
+                                        * resource insertion in database, if is is successful then
+                                        * continue to execute operations at UNC. Otherwise return
+                                        * HTTP 409
+                                        */
+                                       final VRouterBean vRouterBean = new VRouterBean();
+                                       vRouterBean.setVrtName(generatedVrtName);
+                                       vRouterBean.setVtnName(getTenantId());
+
+                                       final VRouterDao vRouterDao = new VRouterDao();
+                                       final int status = vRouterDao.insert(connection,
+                                                       vRouterBean);
+
+                                       if (status == 1) {
+                                               LOG.info("Resource insertion successful at database operation.");
+
+                                               final RestResource restResource = new RestResource();
+
+                                               errorCode = createVRouter(requestBody, restResource);
+
+                                               if (errorCode == UncCommonEnum.UncResultCode.UNC_SUCCESS
+                                                               .getValue()) {
+                                                       LOG.info("vRouter creation is successful at UNC.");
+                                                       isCommitRequired = true;
+                                                       if (generatedVrtName.equals(VtnServiceOpenStackConsts.VRT_PREFIX)) {
+                                                               final JsonObject response = new JsonObject();
+                                                               response.addProperty(VtnServiceOpenStackConsts.ID,
+                                                                               generatedVrtName);
+                                                               setInfo(response);                                                              
+                                                       }
+                                               } else {
+                                                       LOG.error("vRouter creation is failed at UNC.");
+                                               }
+                                               checkForSpecificErrors(restResource.getInfo());
+                                       } else {
+                                               LOG.error("Resource insertion failed at database operation.");
+                                       }
+                               } else {
+                                       LOG.error("Errot occurred while setting controller_id");
+                               }
+                       } else {
+                               LOG.error("Resource not found error.");
+                       }
+
+                       /*
+                        * If all processing are OK, the commit all the database transaction
+                        * made for current connection. Otherwise do the roll-back
+                        */
+                       if (isCommitRequired) {
+                               // connection.commit();
+                               setOpenStackConnection(connection);
+                               LOG.info("Resource insertion successful in database.");
+                       } else {
+                               connection.rollback();
+                               LOG.info("Resource insertion is roll-backed.");
+                       }
+
+                       /*
+                        * set response, if it is not set during processing for create
+                        * tenant
+                        */
+                       if (errorCode != UncResultCode.UNC_SUCCESS.getValue()) {
+                               if (getInfo() == null) {
+                                       createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR
+                                                       .getValue());
+                               }
+                       }
+               } catch (final SQLException exception) {
+                       LOG.error("Internal server error : " + exception);
+                       errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+                       if (exception.getSQLState().equalsIgnoreCase(
+                                       VtnServiceOpenStackConsts.CONFLICT_SQL_STATE)) {
+                               LOG.error("Conflict found during creation of resource");
+                               if (exception.getMessage().contains("pk_os_vrt")) {
+                                       createErrorInfo(
+                                                       UncResultCode.UNC_CONFLICT_FOUND.getValue(),
+                                                       getCutomErrorMessage(
+                                                                       UncResultCode.UNC_CONFLICT_FOUND
+                                                                                       .getMessage(),
+                                                                       VtnServiceOpenStackConsts.ROUTER_ID,
+                                                                       generatedVrtName));
+                               } else {
+                                       createErrorInfo(UncResultCode.UNC_CONFLICT_FOUND.getValue());
+                               }
+
+                       } else {
+                               createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR
+                                               .getValue());
+                       }
+               } finally {
+                       if (connection != null && !isCommitRequired) {
+                               try {
+                                       connection.rollback();
+                                       LOG.info("roll-back successful.");
+                               } catch (final SQLException e) {
+                                       LOG.error("Rollback error : " + e);
+                               }
+                               LOG.info("Free connection...");
+                               VtnServiceInitManager.getDbConnectionPoolMap().freeConnection(
+                                               connection);
+                       }
+               }
+               LOG.trace("Complete RoutersResource#post()");
+               return errorCode;
+       }
+
+       /**
+        * Create vRouter at UNC
+        * 
+        * @param restResource
+        *            - RestResource instance
+        * @return - erorrCode, 200 for Success
+        */
+       private int createVRouter(JsonObject requestBody,
+                       final RestResource restResource) {
+               /*
+                * Create request body for vRouter creation
+                */
+               final JsonObject vrtRequestBody = VrtResourcesGenerator
+                               .getCreateVrtRequestBody(requestBody);
+
+               /*
+                * execute create vRouter request
+                */
+               StringBuilder sb = new StringBuilder();
+               sb.append(VtnServiceOpenStackConsts.VTN_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getTenantId());
+               sb.append(VtnServiceOpenStackConsts.VROUTER_PATH);
+
+               restResource.setPath(sb.toString());
+               restResource.setSessionID(getSessionID());
+               restResource.setConfigID(getConfigID());
+
+               return restResource.post(vrtRequestBody);
+       }
+
+       /**
+        * Retrieve controller_id from database and add the parameter in request
+        * body
+        * 
+        * @param connection
+        *            - DB Connection instance
+        * @param requestBody
+        *            - JSON request body
+        * @return - true, if controller_id is set
+        * @throws SQLException
+        */
+       private boolean setControllerId(Connection connection,
+                       JsonObject requestBody) throws SQLException {
+               boolean controllerAvailable = true;
+               final DestinationControllerDao destControllerDao = new DestinationControllerDao();
+               final String controllerId = destControllerDao
+                               .getDestinationController(connection);
+
+               if (controllerId != null && !controllerId.isEmpty()) {
+                       LOG.info("Database retrieval is successful for Controller id : "
+                                       + controllerId);
+                       requestBody.addProperty(VtnServiceJsonConsts.CONTROLLERID,
+                                       controllerId);
+               } else {
+                       LOG.error("Database retrieval is failed for Controller id.");
+                       controllerAvailable = false;
+                       createErrorInfo(
+                                       UncResultCode.UNC_CTRL_NOT_FOUND.getValue(),
+                                       getCutomErrorMessage(
+                                                       UncResultCode.UNC_CTRL_NOT_FOUND.getMessage(),
+                                                       VtnServiceJsonConsts.CONTROLLERID,
+                                                       VtnServiceConsts.EMPTY_STRING));
+               }
+               return controllerAvailable;
+       }
+
+       /**
+        * Checks that specified instances in URI exists in system or not. If they
+        * are not exists then prepare error JSON for 404 Not Found
+        * 
+        * @param connection
+        *            - Database Connection instance
+        * @return - true, only if all instances exist
+        * @throws SQLException
+        */
+       private boolean checkForNotFoundResources(Connection connection)
+                       throws SQLException {
+               boolean notFoundStatus = false;
+               VtnBean vtnBean = new VtnBean();
+               vtnBean.setVtnName(getTenantId());
+               if (new VtnDao().isVtnFound(connection, vtnBean)) {
+                       notFoundStatus = true;
+               } else {
+                       createErrorInfo(
+                                       UncResultCode.UNC_NOT_FOUND.getValue(),
+                                       getCutomErrorMessage(
+                                                       UncResultCode.UNC_NOT_FOUND.getMessage(),
+                                                       VtnServiceOpenStackConsts.TENANT_ID, getTenantId()));
+               }
+               return notFoundStatus;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/RoutesResource.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/RoutesResource.java
new file mode 100644 (file)
index 0000000..69ea859
--- /dev/null
@@ -0,0 +1,402 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.resources.openstack;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+
+import org.apache.commons.net.util.SubnetUtils;
+
+import com.google.gson.JsonObject;
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.RestResource;
+import org.opendaylight.vtn.javaapi.annotation.UNCField;
+import org.opendaylight.vtn.javaapi.annotation.UNCVtnService;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
+import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
+import org.opendaylight.vtn.javaapi.init.VtnServiceInitManager;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum.UncResultCode;
+import org.opendaylight.vtn.javaapi.openstack.beans.StaticRouteBean;
+import org.opendaylight.vtn.javaapi.openstack.beans.VRouterBean;
+import org.opendaylight.vtn.javaapi.openstack.beans.VtnBean;
+import org.opendaylight.vtn.javaapi.openstack.constants.VtnServiceOpenStackConsts;
+import org.opendaylight.vtn.javaapi.openstack.convertor.StaticRouteResourceGenerator;
+import org.opendaylight.vtn.javaapi.openstack.dao.StaticRouteDao;
+import org.opendaylight.vtn.javaapi.openstack.dao.VRouterDao;
+import org.opendaylight.vtn.javaapi.openstack.dao.VtnDao;
+import org.opendaylight.vtn.javaapi.openstack.validation.RouteResourceValidator;
+import org.opendaylight.vtn.javaapi.resources.AbstractResource;
+
+/**
+ * Resource class for handling POST and GET requests for Static Routes
+ */
+@UNCVtnService(path = VtnServiceOpenStackConsts.ROUTES_PATH)
+public class RoutesResource extends AbstractResource {
+
+       /* Logger instance */
+       private static final Logger LOG = Logger.getLogger(RoutesResource.class
+                       .getName());
+
+       @UNCField(VtnServiceOpenStackConsts.TENANT_ID)
+       private String tenantId;
+
+       @UNCField(VtnServiceOpenStackConsts.ROUTER_ID)
+       private String routerId;
+
+       /**
+        * Constructor that initialize the validation instance for current resource
+        * instance
+        */
+       public RoutesResource() {
+               setValidator(new RouteResourceValidator(this));
+       }
+
+       /**
+        * Getter for tenantId
+        * 
+        * @return
+        */
+       public String getTenantId() {
+               return tenantId;
+       }
+
+       /**
+        * Getter for routerId
+        * 
+        * @return
+        */
+       public String getRouterId() {
+               return routerId;
+       }
+
+       /**
+        * Handler method for POST operation of Route
+        * 
+        * @see org.opendaylight.vtn.javaapi.resources.AbstractResource#post(com
+        *      .google.gson.JsonObject)
+        */
+       @Override
+       public int post(JsonObject requestBody) throws VtnServiceException {
+               LOG.trace("Start RoutesResource#post()");
+
+               int errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+
+               boolean isCommitRequired = false;
+               String generatedRouteId = null;
+               Connection connection = null;
+
+               try {
+                       connection = VtnServiceInitManager.getDbConnectionPoolMap()
+                                       .getConnection();
+
+                       /*
+                        * Check for instances that they exists or not, if not then return
+                        * 404 error
+                        */
+                       if (checkForNotFoundResources(connection)) {
+
+                               generatedRouteId = convertRouteId(requestBody);
+
+                               StaticRouteBean staticRouteBean = new StaticRouteBean();
+                               staticRouteBean.setVtnName(getTenantId());
+                               staticRouteBean.setVrtName(getRouterId());
+                               staticRouteBean.setRouteName(generatedRouteId);
+
+                               StaticRouteDao stRouteDao = new StaticRouteDao();
+                               final int status = stRouteDao.insert(connection,
+                                               staticRouteBean);
+                               if (status == 1) {
+                                       LOG.info("Resource insertion successful at database operation.");
+
+                                       final RestResource restResource = new RestResource();
+
+                                       errorCode = createStaticRoute(requestBody, restResource);
+
+                                       if (errorCode == UncCommonEnum.UncResultCode.UNC_SUCCESS
+                                                       .getValue()) {
+                                               LOG.info("static-route is successful at UNC.");
+                                               isCommitRequired = true;
+                                               final JsonObject response = new JsonObject();
+                                               response.addProperty(VtnServiceOpenStackConsts.ID,
+                                                               generatedRouteId);
+                                               setInfo(response);
+                                       } else {
+                                               LOG.error("static-route creation is failed at UNC.");
+                                       }
+                                       checkForSpecificErrors(restResource.getInfo());
+                               } else {
+                                       LOG.error("Resource insertion failed at database operation.");
+                               }
+                       } else {
+                               LOG.error("Resource not found error.");
+                       }
+
+                       /*
+                        * If all processing are OK, the commit all the database transaction
+                        * made for current connection. Otherwise do the roll-back
+                        */
+                       if (isCommitRequired) {
+                               // connection.commit();
+                               setOpenStackConnection(connection);
+                               LOG.info("Resource insertion successful in database.");
+                       } else {
+                               connection.rollback();
+                               LOG.info("Resource insertion is roll-backed.");
+                       }
+
+                       /*
+                        * set response, if it is not set during processing for create
+                        * tenant
+                        */
+                       if (errorCode != UncResultCode.UNC_SUCCESS.getValue()) {
+                               if (getInfo() == null) {
+                                       createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR
+                                                       .getValue());
+                               }
+                       }
+               } catch (final SQLException exception) {
+                       LOG.error("Internal server error : " + exception);
+                       errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+                       if (exception.getSQLState().equalsIgnoreCase(
+                                       VtnServiceOpenStackConsts.CONFLICT_SQL_STATE)) {
+                               LOG.error("Conflict found during creation of resource");
+                               createErrorInfo(
+                                               UncResultCode.UNC_CONFLICT_FOUND.getValue(),
+                                               getCutomErrorMessage(
+                                                               UncResultCode.UNC_CONFLICT_FOUND.getMessage(),
+                                                               VtnServiceOpenStackConsts.ROUTE_ID,
+                                                               generatedRouteId));
+                       } else {
+                               createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR
+                                               .getValue());
+                       }
+               } finally {
+                       if (connection != null && !isCommitRequired) {
+                               try {
+                                       connection.rollback();
+                                       LOG.info("roll-back successful.");
+                               } catch (final SQLException e) {
+                                       LOG.error("Rollback error : " + e);
+                               }
+                               LOG.info("Free connection...");
+                               VtnServiceInitManager.getDbConnectionPoolMap().freeConnection(
+                                               connection);
+                       }
+               }
+               LOG.trace("Complete RoutesResource#post()");
+               return errorCode;
+       }
+
+       /**
+        * Handler method for GET operation of Route
+        * 
+        * @see org.opendaylight.vtn.javaapi.resources.AbstractResource#get(com.
+        *      google.gson.JsonObject)
+        */
+       @Override
+       public int get(JsonObject queryString) throws VtnServiceException {
+               LOG.trace("Start RoutesResource#get()");
+               int errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+
+               String generatedRouteId = null;
+               Connection connection = null;
+
+               try {
+                       connection = VtnServiceInitManager.getDbConnectionPoolMap()
+                                       .getConnection();
+
+                       /*
+                        * Check for instances that they exists or not, if not then return
+                        * 404 error
+                        */
+                       if (checkForNotFoundResources(connection)) {
+                               final RestResource restResource = new RestResource();
+
+                               errorCode = getStaticRoutes(restResource);
+
+                               if (errorCode == UncCommonEnum.UncResultCode.UNC_SUCCESS
+                                               .getValue()) {
+                                       LOG.info("static-route retrieval is successful at UNC.");
+                                       final JsonObject response = StaticRouteResourceGenerator
+                                                       .convertListResponseBody(restResource.getInfo());
+                                       setInfo(response);
+                               } else {
+                                       LOG.error("static-route retrieval is failed at UNC.");
+                               }
+                               checkForSpecificErrors(restResource.getInfo());
+                       } else {
+                               LOG.error("Resource not found error.");
+                       }
+
+                       /*
+                        * set response, if it is not set during processing for create
+                        * tenant
+                        */
+                       if (errorCode != UncResultCode.UNC_SUCCESS.getValue()) {
+                               if (getInfo() == null) {
+                                       createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR
+                                                       .getValue());
+                               }
+                       }
+               } catch (final SQLException exception) {
+                       LOG.error("Internal server error : " + exception);
+                       errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+                       if (exception.getSQLState().equalsIgnoreCase(
+                                       VtnServiceOpenStackConsts.CONFLICT_SQL_STATE)) {
+                               LOG.error("Conflict found during creation of resource");
+                               createErrorInfo(
+                                               UncResultCode.UNC_CONFLICT_FOUND.getValue(),
+                                               getCutomErrorMessage(
+                                                               UncResultCode.UNC_CONFLICT_FOUND.getMessage(),
+                                                               VtnServiceOpenStackConsts.ROUTE_ID,
+                                                               generatedRouteId));
+                       } else {
+                               createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR
+                                               .getValue());
+                       }
+               } finally {
+                       if (connection != null) {
+                               LOG.info("Free connection...");
+                               VtnServiceInitManager.getDbConnectionPoolMap().freeConnection(
+                                               connection);
+                       }
+               }
+               LOG.trace("Complete RoutesResource#get()");
+               return errorCode;
+       }
+
+       /**
+        * Get Static-Route from UNC
+        * 
+        * @param restResource
+        *            - RestResource instance
+        * @return - erorrCode, 200 for Success
+        */
+       private int getStaticRoutes(final RestResource restResource) {
+               /*
+                * Create request body for static-route list
+                */
+               final JsonObject staticRouteRequestBody = StaticRouteResourceGenerator
+                               .getListRequestBody();
+
+               /*
+                * execute list static-route request
+                */
+               StringBuilder sb = new StringBuilder();
+               sb.append(VtnServiceOpenStackConsts.VTN_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getTenantId());
+               sb.append(VtnServiceOpenStackConsts.VROUTER_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getRouterId());
+               sb.append(VtnServiceOpenStackConsts.STATIC_ROUTE_PATH);
+
+               restResource.setPath(sb.toString());
+               restResource.setSessionID(getSessionID());
+               restResource.setConfigID(getConfigID());
+
+               return restResource.get(staticRouteRequestBody);
+       }
+
+       /**
+        * Create Static-Route at UNC
+        * 
+        * @param requestBody
+        *            - OpenStack request body
+        * @param restResource
+        *            - RestResource instance
+        * @return - erorrCode, 200 for Success
+        */
+       private int createStaticRoute(JsonObject requestBody,
+                       final RestResource restResource) {
+               /*
+                * Create request body for static-route creation
+                */
+               final JsonObject staticRouteRequestBody = StaticRouteResourceGenerator
+                               .getCreateStaticRouteRequestBody(requestBody);
+
+               /*
+                * execute create static-route request
+                */
+               StringBuilder sb = new StringBuilder();
+               sb.append(VtnServiceOpenStackConsts.VTN_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getTenantId());
+               sb.append(VtnServiceOpenStackConsts.VROUTER_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getRouterId());
+               sb.append(VtnServiceOpenStackConsts.STATIC_ROUTE_PATH);
+
+               restResource.setPath(sb.toString());
+               restResource.setSessionID(getSessionID());
+               restResource.setConfigID(getConfigID());
+
+               return restResource.post(staticRouteRequestBody);
+       }
+
+       /**
+        * Generate UNC formatted route_id
+        * 
+        * @param requestBody
+        *            - OpenStack request body
+        * @return - generated route_id
+        */
+       private String convertRouteId(JsonObject requestBody) {
+               final SubnetUtils subnetUtils = new SubnetUtils(requestBody.get(
+                               VtnServiceOpenStackConsts.DESTNATION).getAsString());
+               final String routeId = requestBody
+                               .get(VtnServiceOpenStackConsts.DESTNATION).getAsString()
+                               .split(VtnServiceConsts.SLASH)[0]
+                               + VtnServiceConsts.HYPHEN
+                               + requestBody.get(VtnServiceOpenStackConsts.NEXTHOP)
+                                               .getAsString()
+                               + VtnServiceConsts.HYPHEN
+                               + subnetUtils.getInfo().getNetmask();
+               return routeId;
+       }
+
+       /**
+        * Checks that specified instances in URI exists in system or not. If they
+        * are not exists then prepare error JSON for 404 Not Found
+        * 
+        * @param connection
+        *            - Database Connection instance
+        * @return - true, only if all instances exist
+        * @throws SQLException
+        */
+       private boolean checkForNotFoundResources(Connection connection)
+                       throws SQLException {
+               boolean notFoundStatus = false;
+               VtnBean vtnBean = new VtnBean();
+               vtnBean.setVtnName(getTenantId());
+               if (new VtnDao().isVtnFound(connection, vtnBean)) {
+                       VRouterBean vRouterBean = new VRouterBean();
+                       vRouterBean.setVtnName(getTenantId());
+                       vRouterBean.setVrtName(getRouterId());
+                       if (new VRouterDao().isVrtFound(connection, vRouterBean)) {
+                               notFoundStatus = true;
+                       } else {
+                               createErrorInfo(
+                                               UncResultCode.UNC_NOT_FOUND.getValue(),
+                                               getCutomErrorMessage(
+                                                               UncResultCode.UNC_NOT_FOUND.getMessage(),
+                                                               VtnServiceOpenStackConsts.ROUTER_ID,
+                                                               getRouterId()));
+                       }
+               } else {
+                       createErrorInfo(
+                                       UncResultCode.UNC_NOT_FOUND.getValue(),
+                                       getCutomErrorMessage(
+                                                       UncResultCode.UNC_NOT_FOUND.getMessage(),
+                                                       VtnServiceOpenStackConsts.TENANT_ID, getTenantId()));
+               }
+               return notFoundStatus;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/TenantResource.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/TenantResource.java
new file mode 100644 (file)
index 0000000..1cb6785
--- /dev/null
@@ -0,0 +1,305 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.resources.openstack;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+
+import com.google.gson.JsonObject;
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.RestResource;
+import org.opendaylight.vtn.javaapi.annotation.UNCField;
+import org.opendaylight.vtn.javaapi.annotation.UNCVtnService;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
+import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
+import org.opendaylight.vtn.javaapi.init.VtnServiceInitManager;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum.UncResultCode;
+import org.opendaylight.vtn.javaapi.openstack.beans.FreeCounterBean;
+import org.opendaylight.vtn.javaapi.openstack.beans.VtnBean;
+import org.opendaylight.vtn.javaapi.openstack.constants.VtnServiceOpenStackConsts;
+import org.opendaylight.vtn.javaapi.openstack.convertor.VtnResourcesGenerator;
+import org.opendaylight.vtn.javaapi.openstack.dao.VtnDao;
+import org.opendaylight.vtn.javaapi.openstack.dbmanager.ResourceIdManager;
+import org.opendaylight.vtn.javaapi.openstack.validation.TenantResourceValidator;
+import org.opendaylight.vtn.javaapi.resources.AbstractResource;
+
+/**
+ * Resource class for handling PUT and DELETE requests for Tenants
+ */
+@UNCVtnService(path = VtnServiceOpenStackConsts.TENANT_PATH)
+public class TenantResource extends AbstractResource {
+
+       /* Logger instance */
+       private static final Logger LOG = Logger.getLogger(TenantResource.class
+                       .getName());
+
+       @UNCField(VtnServiceOpenStackConsts.TENANT_ID)
+       private String tenantId;
+
+       /**
+        * Constructor that initialize the validation instance for current resource
+        * instance
+        */
+       public TenantResource() {
+               setValidator(new TenantResourceValidator(this));
+       }
+
+       public String getTenantId() {
+               return tenantId;
+       }
+
+       /**
+        * Handler method for PUT operation of Tenant
+        * 
+        * @see org.opendaylight.vtn.javaapi.resources.AbstractResource#put(com.
+        *      google.gson.JsonObject)
+        */
+       @Override
+       public int put(JsonObject requestBody) throws VtnServiceException {
+               LOG.trace("Start TenantsResource#put()");
+
+               int errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+
+               Connection connection = null;
+
+               try {
+                       connection = VtnServiceInitManager.getDbConnectionPoolMap()
+                                       .getConnection();
+
+                       /*
+                        * Check for instances that they exists or not, if not then return
+                        * 404 error
+                        */
+                       if (checkForNotFoundResources(connection)) {
+
+                               final RestResource restResource = new RestResource();
+
+                               errorCode = updateVtn(requestBody, restResource);
+
+                               if (errorCode == UncCommonEnum.UncResultCode.UNC_SUCCESS
+                                               .getValue()) {
+                                       LOG.error("VTN Update at UNC is successful.");
+                               } else {
+                                       LOG.info("VTN Update at UNC is failed.");
+                               }
+                               checkForSpecificErrors(restResource.getInfo());
+                       } else {
+                               LOG.error("Resource not found error.");
+                       }
+                       /*
+                        * set response, if it is not set during above processing
+                        */
+                       if (errorCode != UncResultCode.UNC_SUCCESS.getValue()) {
+                               if (getInfo() == null) {
+                                       createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR
+                                                       .getValue());
+                               }
+                       }
+
+               } catch (final SQLException exception) {
+                       LOG.error("Internal server error : " + exception);
+                       errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+                       createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR.getValue());
+               } finally {
+                       if (connection != null) {
+                               LOG.info("Free connection...");
+                               VtnServiceInitManager.getDbConnectionPoolMap().freeConnection(
+                                               connection);
+                       }
+               }
+               LOG.trace("Complete TenantsResource#put()");
+               return errorCode;
+       }
+
+       /**
+        * Handler method for DELETE operation of Tenant
+        * 
+        * @see org.opendaylight.vtn.javaapi.resources.AbstractResource#delete()
+        */
+       @Override
+       public int delete() throws VtnServiceException {
+               LOG.trace("Start TenantResource#delete()");
+
+               int errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+
+               boolean isCommitRequired = false;
+               Connection connection = null;
+
+               try {
+                       connection = VtnServiceInitManager.getDbConnectionPoolMap()
+                                       .getConnection();
+
+                       /*
+                        * Check for instances that they exists or not, if not then return
+                        * 404 error
+                        */
+                       if (checkForNotFoundResources(connection)) {
+
+                               final VtnBean vtnBean = new VtnBean();
+                               vtnBean.setVtnName(getTenantId());
+
+                               final String counter = getTenantId().replace(
+                                               VtnServiceOpenStackConsts.VTN_PREFIX,
+                                               VtnServiceConsts.EMPTY_STRING);
+                               try {
+                                       vtnBean.setVtnId(Integer.parseInt(counter));
+                               } catch (final NumberFormatException e) {
+                                       LOG.debug("Resource Id was not auto-generated during Create operation : "
+                                                       + counter);
+                                       vtnBean.setVtnId(0);
+                               }
+
+                               final FreeCounterBean freeCounterBean = new FreeCounterBean();
+                               freeCounterBean
+                                               .setResourceId(VtnServiceOpenStackConsts.TENANT_RES_ID);
+                               freeCounterBean
+                                               .setVtnName(VtnServiceOpenStackConsts.DEFAULT_VTN);
+                               freeCounterBean.setResourceCounter(vtnBean.getVtnId());
+
+                               final ResourceIdManager resourceIdManager = new ResourceIdManager();
+
+                               if (resourceIdManager.deleteResourceId(connection,
+                                               freeCounterBean, vtnBean)) {
+                                       LOG.info("Deletion operation from database is successfull.");
+
+                                       final RestResource restResource = new RestResource();
+
+                                       errorCode = deleteVtn(restResource);
+
+                                       if (errorCode == UncCommonEnum.UncResultCode.UNC_SUCCESS
+                                                       .getValue()) {
+                                               LOG.error("VTN Deletion successful at UNC.");
+                                               isCommitRequired = true;
+                                       } else {
+                                               LOG.error("VTN Deletion failed at UNC.");
+                                       }
+                                       checkForSpecificErrors(restResource.getInfo());
+                               } else {
+                                       LOG.info("Deletion operation from database is falied.");
+                                       connection.rollback();
+                               }
+                       } else {
+                               LOG.error("Resource not found error.");
+                       }
+
+                       /*
+                        * If all processing are OK, commit all the database transaction
+                        * made for current connection. Otherwise do the roll-back
+                        */
+                       if (isCommitRequired) {
+                               // connection.commit();
+                               setOpenStackConnection(connection);
+                               LOG.info("commit successful");
+                       } else {
+                               connection.rollback();
+                               LOG.info("roll-back successful");
+                       }
+
+                       /*
+                        * set response, if it is not set during above processing
+                        */
+                       if (errorCode != UncResultCode.UNC_SUCCESS.getValue()) {
+                               if (getInfo() == null) {
+                                       createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR
+                                                       .getValue());
+                               }
+                       }
+               } catch (final SQLException exception) {
+                       LOG.error("Internal server error : " + exception);
+                       errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+                       createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR.getValue());
+               } finally {
+                       if (connection != null && !isCommitRequired) {
+                               try {
+                                       connection.rollback();
+                                       LOG.info("roll-back successful.");
+                               } catch (final SQLException e) {
+                                       LOG.error("Rollback error : " + e);
+                               }
+                               LOG.info("Free connection...");
+                               VtnServiceInitManager.getDbConnectionPoolMap().freeConnection(
+                                               connection);
+                       }
+               }
+               LOG.trace("Complete TenantResource#delete()");
+               return errorCode;
+       }
+
+       /**
+        * 
+        * @param requestBody
+        * @param restResource
+        * @return
+        */
+       private int updateVtn(JsonObject requestBody,
+                       final RestResource restResource) {
+               /*
+                * Create request body for VTN update
+                */
+               final JsonObject vtnRequestBody = VtnResourcesGenerator
+                               .getUpdateVtnRequestBody(requestBody);
+
+               /*
+                * execute update VTN request
+                */
+               StringBuilder sb = new StringBuilder();
+               sb.append(VtnServiceOpenStackConsts.VTN_PATH);
+               sb.append(VtnServiceOpenStackConsts.URI_CONCATENATOR);
+               sb.append(getTenantId());
+
+               restResource.setPath(sb.toString());
+               restResource.setSessionID(getSessionID());
+               restResource.setConfigID(getConfigID());
+
+               return restResource.put(vtnRequestBody);
+       }
+
+       /**
+        * 
+        * @param restResource
+        * @return
+        */
+       private int deleteVtn(final RestResource restResource) {
+               /*
+                * execute delete VTN request
+                */
+               restResource.setPath(VtnServiceOpenStackConsts.VTN_PATH
+                               + VtnServiceOpenStackConsts.URI_CONCATENATOR + getTenantId());
+               restResource.setSessionID(getSessionID());
+               restResource.setConfigID(getConfigID());
+               return restResource.delete();
+       }
+
+       /**
+        * Checks that specified instances in URI exists in system or not. If they
+        * are not exists then prepare error JSON for 404 Not Found
+        * 
+        * @param connection
+        *            - Database Connection instance
+        * @return - true, only if all instances exist
+        * @throws SQLException
+        */
+       private boolean checkForNotFoundResources(Connection connection)
+                       throws SQLException {
+               boolean notFoundStatus = false;
+               VtnBean vtnBean = new VtnBean();
+               vtnBean.setVtnName(getTenantId());
+               if (new VtnDao().isVtnFound(connection, vtnBean)) {
+                       notFoundStatus = true;
+               } else {
+                       createErrorInfo(
+                                       UncResultCode.UNC_NOT_FOUND.getValue(),
+                                       getCutomErrorMessage(
+                                                       UncResultCode.UNC_NOT_FOUND.getMessage(),
+                                                       VtnServiceOpenStackConsts.TENANT_ID, getTenantId()));
+               }
+               return notFoundStatus;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/TenantsResource.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/TenantsResource.java
new file mode 100644 (file)
index 0000000..fdebb0b
--- /dev/null
@@ -0,0 +1,227 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.resources.openstack;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+
+import com.google.gson.JsonObject;
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.RestResource;
+import org.opendaylight.vtn.javaapi.annotation.UNCVtnService;
+import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
+import org.opendaylight.vtn.javaapi.init.VtnServiceInitManager;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum.UncResultCode;
+import org.opendaylight.vtn.javaapi.openstack.beans.FreeCounterBean;
+import org.opendaylight.vtn.javaapi.openstack.beans.VtnBean;
+import org.opendaylight.vtn.javaapi.openstack.constants.VtnServiceOpenStackConsts;
+import org.opendaylight.vtn.javaapi.openstack.convertor.VtnResourcesGenerator;
+import org.opendaylight.vtn.javaapi.openstack.dao.VtnDao;
+import org.opendaylight.vtn.javaapi.openstack.dbmanager.ResourceIdManager;
+import org.opendaylight.vtn.javaapi.openstack.validation.TenantResourceValidator;
+import org.opendaylight.vtn.javaapi.resources.AbstractResource;
+
+/**
+ * Resource class for handling POST requests for Tenants
+ */
+@UNCVtnService(path = VtnServiceOpenStackConsts.TENANTS_PATH)
+public class TenantsResource extends AbstractResource {
+
+       /* Logger instance */
+       private static final Logger LOG = Logger.getLogger(TenantsResource.class
+                       .getName());
+
+       /**
+        * Constructor that initialize the validation instance for current resource
+        * instance
+        */
+       public TenantsResource() {
+               setValidator(new TenantResourceValidator(this));
+       }
+
+       /**
+        * Handler method for POST operation of Tenant
+        * 
+        * @see org.opendaylight.vtn.javaapi.resources.AbstractResource#post(com
+        *      .google.gson.JsonObject)
+        */
+       @Override
+       public int post(JsonObject requestBody) throws VtnServiceException {
+               LOG.trace("Start TenantsResource#post()");
+
+               int errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+
+               boolean isCommitRequired = false;
+               String generatedVtnName = null;
+               Connection connection = null;
+
+               try {
+                       connection = VtnServiceInitManager.getDbConnectionPoolMap()
+                                       .getConnection();
+
+                       final ResourceIdManager resourceIdManager = new ResourceIdManager();
+                       int counter = -1;
+                       /*
+                        * auto-generation process, based on the availability of "id"
+                        * parameter in request body
+                        */
+                       if (!requestBody.has(VtnServiceOpenStackConsts.ID)) {
+                               LOG.info("Resource id auto-generation is required.");
+
+                               final FreeCounterBean freeCounterBean = new FreeCounterBean();
+                               freeCounterBean
+                                               .setResourceId(VtnServiceOpenStackConsts.TENANT_RES_ID);
+                               freeCounterBean
+                                               .setVtnName(VtnServiceOpenStackConsts.DEFAULT_VTN);
+
+                               counter = resourceIdManager.getResourceId(connection,
+                                               freeCounterBean);
+
+                               if (counter != -1) {
+                                       LOG.info("Resource id auto-generation is successful.");
+                                       generatedVtnName = VtnServiceOpenStackConsts.VTN_PREFIX
+                                                       + counter;
+                                       requestBody.addProperty(VtnServiceOpenStackConsts.ID,
+                                                       generatedVtnName);
+                               } else {
+                                       LOG.error("Resource id auto-generation is failed.");
+                               }
+                       } else {
+                               LOG.info("Resource id auto-generation is not required.");
+                               counter = 0;
+                               generatedVtnName = requestBody
+                                               .get(VtnServiceOpenStackConsts.ID).getAsString();
+                       }
+
+                       LOG.debug("Counter : " + counter);
+                       LOG.debug("vtn_name : " + generatedVtnName);
+
+                       if (counter >= 0) {
+                               /*
+                                * resource insertion in database, if is is successful then
+                                * continue to execute operations at UNC. Otherwise return HTTP
+                                * 409
+                                */
+
+                               final VtnBean vtnBean = new VtnBean();
+                               vtnBean.setVtnId(counter);
+                               vtnBean.setVtnName(generatedVtnName);
+
+                               final VtnDao vtnDao = new VtnDao();
+                               final int status = vtnDao.insert(connection, vtnBean);
+                               if (status == 1) {
+                                       LOG.info("Resource insertion successful at database operation.");
+
+                                       final RestResource restResource = new RestResource();
+
+                                       errorCode = createVtn(requestBody, restResource);
+
+                                       if (errorCode == UncCommonEnum.UncResultCode.UNC_SUCCESS
+                                                       .getValue()) {
+                                               LOG.info("VTN creation is successful at UNC.");
+                                               isCommitRequired = true;
+                                               if (counter != 0) {
+                                                       final JsonObject response = new JsonObject();
+                                                       response.addProperty(VtnServiceOpenStackConsts.ID,
+                                                                       generatedVtnName);
+                                                       setInfo(response);
+                                               }
+                                       } else {
+                                               LOG.error("VTN creation is failed at UNC.");
+                                       }
+                                       checkForSpecificErrors(restResource.getInfo());
+                               } else {
+                                       LOG.error("Resource insertion failed at database operation.");
+                               }
+                       }
+
+                       /*
+                        * If all processing are OK, commit all the database transaction
+                        * made for current connection. Otherwise do the roll-back
+                        */
+                       if (isCommitRequired) {
+                               // connection.commit();
+                               setOpenStackConnection(connection);
+                               LOG.info("commit successful");
+                       } else {
+                               connection.rollback();
+                               LOG.info("roll-back successful");
+                       }
+
+                       /*
+                        * set response, if it is not set during processing for create
+                        * tenant
+                        */
+                       if (errorCode != UncResultCode.UNC_SUCCESS.getValue()) {
+                               if (getInfo() == null) {
+                                       createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR
+                                                       .getValue());
+                               }
+                       }
+
+               } catch (final SQLException exception) {
+                       LOG.error("Internal server error : " + exception);
+                       errorCode = UncResultCode.UNC_SERVER_ERROR.getValue();
+                       if (exception.getSQLState().equalsIgnoreCase(
+                                       VtnServiceOpenStackConsts.CONFLICT_SQL_STATE)) {
+                               LOG.error("Conflict found during creation of resource");
+                               createErrorInfo(
+                                               UncResultCode.UNC_CONFLICT_FOUND.getValue(),
+                                               getCutomErrorMessage(
+                                                               UncResultCode.UNC_CONFLICT_FOUND.getMessage(),
+                                                               VtnServiceOpenStackConsts.TENANT_ID,
+                                                               generatedVtnName));
+                       } else {
+                               createErrorInfo(UncResultCode.UNC_INTERNAL_SERVER_ERROR
+                                               .getValue());
+                       }
+               } finally {
+                       if (connection != null && !isCommitRequired) {
+                               try {
+                                       connection.rollback();
+                                       LOG.info("roll-back successful.");
+                               } catch (final SQLException e) {
+                                       LOG.error("Rollback error : " + e);
+                               }
+                               LOG.info("Free connection...");
+                               VtnServiceInitManager.getDbConnectionPoolMap().freeConnection(
+                                               connection);
+                       }
+               }
+               LOG.trace("Complete TenantsResource#post()");
+               return errorCode;
+       }
+
+       /**
+        * 
+        * @param requestBody
+        * @param restResource
+        * @return
+        */
+       private int createVtn(JsonObject requestBody,
+                       final RestResource restResource) {
+               int errorCode;
+               /*
+                * Create request body for VTN creation
+                */
+               final JsonObject vtnRequestBody = VtnResourcesGenerator
+                               .getCreateVtnRequestBody(requestBody);
+
+               /*
+                * execute create VTN request
+                */
+               restResource.setPath(VtnServiceOpenStackConsts.VTN_PATH);
+               restResource.setSessionID(getSessionID());
+               restResource.setConfigID(getConfigID());
+
+               errorCode = restResource.post(vtnRequestBody);
+               return errorCode;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/package-info.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/openstack/package-info.java
new file mode 100644 (file)
index 0000000..ad1304f
--- /dev/null
@@ -0,0 +1,13 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * Package contains Resource classes for OpenStack resources
+ */
+package org.opendaylight.vtn.javaapi.resources.openstack;
\ No newline at end of file
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/package-info.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/package-info.java
new file mode 100644 (file)
index 0000000..3004e13
--- /dev/null
@@ -0,0 +1,15 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * Package contains Java API Resource interfaces  
+ * and classes for TC and Session APIs 
+ */
+package org.opendaylight.vtn.javaapi.resources;
+
index b35590678fc42c7ab6c7e0f3383d919fa4275c34..58dbc22944be55b79d3366f33c2d32e69e8515f4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -57,12 +57,13 @@ public class AlarmResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int put(final JsonObject requestBody) throws VtnServiceException {
+       public final int put(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Start Alarm#put()");
                ClientSession session = null;
                int status = ClientSession.RESP_FATAL;
                try {
-            LOG.debug("Start Ipc framework call");
+                       LOG.debug("Start Ipc framework call");
                        session = getConnPool().getSession(
                                        UncSYSMGEnums.SYSMG_IPC_CHANNEL_NAME,
                                        UncSYSMGEnums.NOMG_IPC_SERVICE_NAME,
@@ -74,7 +75,7 @@ public class AlarmResource extends AbstractResource {
                                        .getAsString().trim()));
                        LOG.info("Request packet created successfully");
                        status = session.invoke();
-                       LOG.info("Request packet processed with status:" +status);
+                       LOG.info("Request packet processed with status:" + status);
                        if (status != UncSYSMGEnums.NodeIpcErrorT.NOMG_E_OK.ordinal()) {
                                LOG.info("Error occurred while performing operation");
                                createNoMgErrorInfo(UncIpcErrorCode.getNodeCodes(status));
@@ -83,7 +84,7 @@ public class AlarmResource extends AbstractResource {
                                LOG.info("Opeartion successfully performed");
                                status = UncResultCode.UNC_SUCCESS.getValue();
                        }
-            LOG.debug("Complete Ipc framework call");
+                       LOG.debug("Complete Ipc framework call");
                } catch (final IpcException e) {
                        getExceptionHandler()
                                        .raise(Thread.currentThread().getStackTrace()[1]
@@ -117,7 +118,7 @@ public class AlarmResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get() throws VtnServiceException {
+       public final int get() throws VtnServiceException {
                LOG.trace("Start AlarmResourcee#get()");
                ClientSession session = null;
                int status = ClientSession.RESP_FATAL;
@@ -129,7 +130,7 @@ public class AlarmResource extends AbstractResource {
                                        UncSYSMGEnums.NodeMgrServiceID.kAlarmStatusListGet
                                                        .ordinal(), getExceptionHandler());
                        status = session.invoke();
-                       LOG.info("Request packet processed with status:"+status);
+                       LOG.info("Request packet processed with status:" + status);
                        if (status != UncSYSMGEnums.NodeIpcErrorT.NOMG_E_OK.ordinal()) {
                                LOG.info("Error occurred while performing operation");
                                createNoMgErrorInfo(UncIpcErrorCode.getNodeCodes(status));
@@ -192,44 +193,96 @@ public class AlarmResource extends AbstractResource {
                LOG.trace("Start AlarmResource#createGetResponse()");
                final int count = session.getResponseCount();
                final JsonArray alarmJsonArray = new JsonArray();
-               //LOG.info("response:"+ ipcResponseStruct.toString());
+               // LOG.info("response:"+ ipcResponseStruct.toString());
                // convert IPC Structure into Json
                final JsonObject response = new JsonObject();
                for (int i = VtnServiceJsonConsts.VAL_1; i < count; i++) {
-               final JsonObject sessionDetails = new JsonObject();
-               final IpcStruct ipcResponseStruct = (IpcStruct) session.getResponse(i++);
-               // add AlarmNo to response json
-               sessionDetails.addProperty(VtnServiceJsonConsts.ALARMNO, IpcDataUnitWrapper.getIpcStructUint64Value(ipcResponseStruct, VtnServiceJsonConsts.ALARMNO).toString());
-               // add TimeStamp to response json
-               sessionDetails.addProperty(VtnServiceJsonConsts.TIMESTAMP, IpcDataUnitWrapper.getIpcStructInt64Value(ipcResponseStruct, VtnServiceIpcConsts.TIME_STAMP).toString());                    
-               // add type to response json
-               if(IpcDataUnitWrapper.getIpcStructUint8Value(ipcResponseStruct,VtnServiceJsonConsts.SEVERITY).toString().equals(UncSYSMGEnums.AlarmLevelT.ALM_EMERG.getValue())){
-                       sessionDetails.addProperty(     VtnServiceJsonConsts.SEVERITY,VtnServiceJsonConsts.EMERGENCY);
-               } else if(IpcDataUnitWrapper.getIpcStructUint8Value(ipcResponseStruct,  VtnServiceJsonConsts.SEVERITY).toString().equals(UncSYSMGEnums.AlarmLevelT.ALM_ALERT.getValue())){
-                       sessionDetails.addProperty(VtnServiceJsonConsts.SEVERITY,VtnServiceJsonConsts.ALERT);
-               }else if(IpcDataUnitWrapper.getIpcStructUint8Value(ipcResponseStruct,   VtnServiceJsonConsts.SEVERITY).toString().equals(UncSYSMGEnums.AlarmLevelT.ALM_CRITICAL.getValue())){
-                       sessionDetails.addProperty(VtnServiceJsonConsts.SEVERITY,VtnServiceJsonConsts.CRITICAL);
-               }else if(IpcDataUnitWrapper.getIpcStructUint8Value(ipcResponseStruct,   VtnServiceJsonConsts.SEVERITY).toString().equals(UncSYSMGEnums.AlarmLevelT.ALM_ERROR.getValue())){
-                       sessionDetails.addProperty(VtnServiceJsonConsts.SEVERITY,VtnServiceJsonConsts.ERROR);
-               }else if(IpcDataUnitWrapper.getIpcStructUint8Value(ipcResponseStruct,   VtnServiceJsonConsts.SEVERITY).toString().equals(UncSYSMGEnums.AlarmLevelT.ALM_WARNING.getValue())){
-                       sessionDetails.addProperty(VtnServiceJsonConsts.SEVERITY,VtnServiceJsonConsts.WARNING);
-               }else if(IpcDataUnitWrapper.getIpcStructUint8Value(ipcResponseStruct,   VtnServiceJsonConsts.SEVERITY).toString().equals(UncSYSMGEnums.AlarmLevelT.ALM_NOTICE.getValue())){
-                       sessionDetails.addProperty(VtnServiceJsonConsts.SEVERITY,VtnServiceJsonConsts.NOTICE);
-               }else if(IpcDataUnitWrapper.getIpcStructUint8Value(ipcResponseStruct,   VtnServiceJsonConsts.SEVERITY).toString().equals(UncSYSMGEnums.AlarmLevelT.ALM_INFO.getValue())){
-                       sessionDetails.addProperty(VtnServiceJsonConsts.SEVERITY,VtnServiceJsonConsts.INFORMATION);
-               }else if(IpcDataUnitWrapper.getIpcStructUint8Value(ipcResponseStruct,   VtnServiceJsonConsts.SEVERITY).toString().equals(UncSYSMGEnums.AlarmLevelT.ALM_DEBUG.getValue())){
-                       sessionDetails.addProperty(VtnServiceJsonConsts.SEVERITY,VtnServiceJsonConsts.DEBUG);
-               }
-               // add user name to response json
-               if(IpcDataUnitWrapper.getIpcStructUint8Value(ipcResponseStruct,VtnServiceJsonConsts.TYPE).toString().equals(VtnServiceJsonConsts.ONE)){
-                       sessionDetails.addProperty(     VtnServiceJsonConsts.TYPE,VtnServiceJsonConsts.OCCURRED);
-               } else if(IpcDataUnitWrapper.getIpcStructUint8Value(ipcResponseStruct,  VtnServiceJsonConsts.TYPE).toString().equals(VtnServiceJsonConsts.TWO)){
-                       sessionDetails.addProperty(VtnServiceJsonConsts.TYPE,VtnServiceJsonConsts.RECOVERED);
-               }
-               sessionDetails.addProperty(VtnServiceJsonConsts.VTNNAME, ((IpcString)session.getResponse(i++)).toString());
-               sessionDetails.addProperty(VtnServiceJsonConsts.SUMMARY, ((IpcString)session.getResponse(i++)).toString());
-               sessionDetails.addProperty(VtnServiceJsonConsts.MESSAGE, ((IpcString)session.getResponse(i++)).toString());
-               alarmJsonArray.add(sessionDetails);
+                       final JsonObject sessionDetails = new JsonObject();
+                       final IpcStruct ipcResponseStruct = (IpcStruct) session
+                                       .getResponse(i++);
+                       // add AlarmNo to response json
+                       sessionDetails.addProperty(
+                                       VtnServiceJsonConsts.ALARMNO,
+                                       IpcDataUnitWrapper.getIpcStructUint64Value(
+                                                       ipcResponseStruct, VtnServiceJsonConsts.ALARMNO)
+                                                       .toString());
+                       // add TimeStamp to response json
+                       sessionDetails.addProperty(
+                                       VtnServiceJsonConsts.TIMESTAMP,
+                                       IpcDataUnitWrapper.getIpcStructInt64Value(
+                                                       ipcResponseStruct, VtnServiceIpcConsts.TIME_STAMP)
+                                                       .toString());
+                       // add type to response json
+                       if (IpcDataUnitWrapper
+                                       .getIpcStructUint8Value(ipcResponseStruct,
+                                                       VtnServiceJsonConsts.SEVERITY).toString()
+                                       .equals(UncSYSMGEnums.AlarmLevelT.ALM_EMERG.getValue())) {
+                               sessionDetails.addProperty(VtnServiceJsonConsts.SEVERITY,
+                                               VtnServiceJsonConsts.EMERGENCY);
+                       } else if (IpcDataUnitWrapper
+                                       .getIpcStructUint8Value(ipcResponseStruct,
+                                                       VtnServiceJsonConsts.SEVERITY).toString()
+                                       .equals(UncSYSMGEnums.AlarmLevelT.ALM_ALERT.getValue())) {
+                               sessionDetails.addProperty(VtnServiceJsonConsts.SEVERITY,
+                                               VtnServiceJsonConsts.ALERT);
+                       } else if (IpcDataUnitWrapper
+                                       .getIpcStructUint8Value(ipcResponseStruct,
+                                                       VtnServiceJsonConsts.SEVERITY).toString()
+                                       .equals(UncSYSMGEnums.AlarmLevelT.ALM_CRITICAL.getValue())) {
+                               sessionDetails.addProperty(VtnServiceJsonConsts.SEVERITY,
+                                               VtnServiceJsonConsts.CRITICAL);
+                       } else if (IpcDataUnitWrapper
+                                       .getIpcStructUint8Value(ipcResponseStruct,
+                                                       VtnServiceJsonConsts.SEVERITY).toString()
+                                       .equals(UncSYSMGEnums.AlarmLevelT.ALM_ERROR.getValue())) {
+                               sessionDetails.addProperty(VtnServiceJsonConsts.SEVERITY,
+                                               VtnServiceJsonConsts.ERROR);
+                       } else if (IpcDataUnitWrapper
+                                       .getIpcStructUint8Value(ipcResponseStruct,
+                                                       VtnServiceJsonConsts.SEVERITY).toString()
+                                       .equals(UncSYSMGEnums.AlarmLevelT.ALM_WARNING.getValue())) {
+                               sessionDetails.addProperty(VtnServiceJsonConsts.SEVERITY,
+                                               VtnServiceJsonConsts.WARNING);
+                       } else if (IpcDataUnitWrapper
+                                       .getIpcStructUint8Value(ipcResponseStruct,
+                                                       VtnServiceJsonConsts.SEVERITY).toString()
+                                       .equals(UncSYSMGEnums.AlarmLevelT.ALM_NOTICE.getValue())) {
+                               sessionDetails.addProperty(VtnServiceJsonConsts.SEVERITY,
+                                               VtnServiceJsonConsts.NOTICE);
+                       } else if (IpcDataUnitWrapper
+                                       .getIpcStructUint8Value(ipcResponseStruct,
+                                                       VtnServiceJsonConsts.SEVERITY).toString()
+                                       .equals(UncSYSMGEnums.AlarmLevelT.ALM_INFO.getValue())) {
+                               sessionDetails.addProperty(VtnServiceJsonConsts.SEVERITY,
+                                               VtnServiceJsonConsts.INFORMATION);
+                       } else if (IpcDataUnitWrapper
+                                       .getIpcStructUint8Value(ipcResponseStruct,
+                                                       VtnServiceJsonConsts.SEVERITY).toString()
+                                       .equals(UncSYSMGEnums.AlarmLevelT.ALM_DEBUG.getValue())) {
+                               sessionDetails.addProperty(VtnServiceJsonConsts.SEVERITY,
+                                               VtnServiceJsonConsts.DEBUG);
+                       }
+                       // add user name to response json
+                       if (IpcDataUnitWrapper
+                                       .getIpcStructUint8Value(ipcResponseStruct,
+                                                       VtnServiceJsonConsts.TYPE).toString()
+                                       .equals(VtnServiceJsonConsts.ONE)) {
+                               sessionDetails.addProperty(VtnServiceJsonConsts.TYPE,
+                                               VtnServiceJsonConsts.OCCURRED);
+                       } else if (IpcDataUnitWrapper
+                                       .getIpcStructUint8Value(ipcResponseStruct,
+                                                       VtnServiceJsonConsts.TYPE).toString()
+                                       .equals(VtnServiceJsonConsts.TWO)) {
+                               sessionDetails.addProperty(VtnServiceJsonConsts.TYPE,
+                                               VtnServiceJsonConsts.RECOVERED);
+                       }
+                       sessionDetails.addProperty(VtnServiceJsonConsts.VTNNAME,
+                                       ((IpcString) session.getResponse(i++)).toString());
+                       sessionDetails.addProperty(VtnServiceJsonConsts.SUMMARY,
+                                       ((IpcString) session.getResponse(i++)).toString());
+                       sessionDetails.addProperty(VtnServiceJsonConsts.MESSAGE,
+                                       ((IpcString) session.getResponse(i++)).toString());
+                       alarmJsonArray.add(sessionDetails);
                }
                response.add(VtnServiceJsonConsts.ALARMS, alarmJsonArray);
                LOG.trace("Completed AlarmResource#createGetResponse()");
index 16c2a4aa9c3f483d4080803da9002d02c91e6ae6..4499bfaf7794c8e61dc5aa0f0c69e5f9965b500e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -58,7 +58,8 @@ public class BoundariesResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int post(final JsonObject requestBody) throws VtnServiceException {
+       public final int post(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts BoundariesResource#post()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -116,7 +117,8 @@ public class BoundariesResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts BoundariesResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -155,23 +157,20 @@ public class BoundariesResource extends AbstractResource {
                         * requestProcessor.getIpcResponsePacket(), requestBody,
                         * VtnServiceJsonConsts.LIST));
                         */
-                               JsonObject responseJson = responseGenerator
-                                               .getBoundaryResponse(
-                                                               requestProcessor.getIpcResponsePacket(),
-                                                               requestBody, VtnServiceJsonConsts.LIST);
-                               if (responseJson.get(VtnServiceJsonConsts.BOUNDARIES)
-                                               .isJsonArray()) {
-                                       JsonArray responseArray = responseJson.get(
-                                                       VtnServiceJsonConsts.BOUNDARIES).getAsJsonArray();
-                                       responseJson = getResponseJsonArrayPhysical(requestBody,
-                                                       requestProcessor, responseGenerator, responseArray,
-                                                       VtnServiceJsonConsts.BOUNDARIES,
-                                                       VtnServiceJsonConsts.BOUNDARYID,
-                                                       IpcRequestPacketEnum.KT_BOUNDARY_GET,
-                                                       uriParameterList,
-                                                       VtnServiceIpcConsts.GET_BOUNDARY_RESPONSE);
-                               }
-                               setInfo(responseJson);
+                       JsonObject responseJson = responseGenerator.getBoundaryResponse(
+                                       requestProcessor.getIpcResponsePacket(), requestBody,
+                                       VtnServiceJsonConsts.LIST);
+                       if (responseJson.get(VtnServiceJsonConsts.BOUNDARIES).isJsonArray()) {
+                               final JsonArray responseArray = responseJson.get(
+                                               VtnServiceJsonConsts.BOUNDARIES).getAsJsonArray();
+                               responseJson = getResponseJsonArrayPhysical(requestBody,
+                                               requestProcessor, responseGenerator, responseArray,
+                                               VtnServiceJsonConsts.BOUNDARIES,
+                                               VtnServiceJsonConsts.BOUNDARYID,
+                                               IpcRequestPacketEnum.KT_BOUNDARY_GET, uriParameterList,
+                                               VtnServiceIpcConsts.GET_BOUNDARY_RESPONSE);
+                       }
+                       setInfo(responseJson);
                        LOG.debug("Response object created successfully");
                        LOG.debug("Complete Ipc framework call");
                } catch (final VtnServiceException e) {
index bc56785ab96dbd18a1fecfd73f19a933620ec357..315f8ce197e1de0b19d4aca80c57928abc804e27 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -45,7 +45,7 @@ public class BoundaryResource extends AbstractResource {
         * 
         * @return the boundary id
         */
-       public String getboundaryId() {
+       public final String getboundaryId() {
                return boundaryId;
        }
 
@@ -69,7 +69,8 @@ public class BoundaryResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int put(final JsonObject requestBody) throws VtnServiceException {
+       public final int put(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts BoundaryResource#put()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -88,7 +89,7 @@ public class BoundaryResource extends AbstractResource {
                                        getUriParameters());
                        LOG.debug("Request packet created successfully");
                        status = requestProcessor.processIpcRequest();
-                       LOG.debug("Request packet processed with status:"+status);
+                       LOG.debug("Request packet processed with status:" + status);
                        LOG.debug("Complete Ipc framework call");
                } catch (final VtnServiceException e) {
                        getExceptionHandler()
@@ -124,7 +125,7 @@ public class BoundaryResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("Starts BoundaryResource#delete()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -143,7 +144,7 @@ public class BoundaryResource extends AbstractResource {
                                        getNullJsonObject(), getUriParameters());
                        LOG.debug("Request packet created successfully");
                        status = requestProcessor.processIpcRequest();
-                       LOG.debug("Request packet processed with status:"+status);
+                       LOG.debug("Request packet processed with status:" + status);
                        LOG.debug("Complete Ipc framework call");
                } catch (final VtnServiceException e) {
                        getExceptionHandler()
@@ -182,7 +183,8 @@ public class BoundaryResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts BoundaryResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -201,7 +203,7 @@ public class BoundaryResource extends AbstractResource {
                                        getUriParameters());
                        LOG.debug("Request packet created successfully");
                        status = requestProcessor.processIpcRequest();
-                       LOG.debug("Request packet processed with status:"+status);
+                       LOG.debug("Request packet processed with status:" + status);
                        final IpcPhysicalResponseFactory responseGenerator = new IpcPhysicalResponseFactory();
                        setInfo(responseGenerator.getBoundaryResponse(
                                        requestProcessor.getIpcResponsePacket(), requestBody,
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/physical/ControllerDataFlowResource.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/physical/ControllerDataFlowResource.java
new file mode 100644 (file)
index 0000000..b9d1005
--- /dev/null
@@ -0,0 +1,166 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.vtn.javaapi.resources.physical;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.google.gson.JsonObject;
+import org.opendaylight.vtn.core.ipc.ClientSession;
+import org.opendaylight.vtn.core.ipc.IpcUint32;
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.annotation.UNCField;
+import org.opendaylight.vtn.javaapi.annotation.UNCVtnService;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
+import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
+import org.opendaylight.vtn.javaapi.ipc.IpcRequestProcessor;
+import org.opendaylight.vtn.javaapi.ipc.conversion.IpcPhysicalResponseFactory;
+import org.opendaylight.vtn.javaapi.ipc.enums.IpcRequestPacketEnum;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum.UncResultCode;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncOperationEnum;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncOption1Enum;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncUPPLEnums;
+import org.opendaylight.vtn.javaapi.resources.AbstractResource;
+import org.opendaylight.vtn.javaapi.resources.logical.FlowFiltersResource;
+import org.opendaylight.vtn.javaapi.validation.physical.ControllerDataFlowResourceValidator;
+
+/**
+ * The Class ControllerDataFlowResource implements get methods.
+ * 
+ */
+
+@UNCVtnService(path = "/controllers/{controller_id}/dataflows")
+public class ControllerDataFlowResource extends AbstractResource {
+
+       /** The controller_id. */
+       @UNCField("controller_id")
+       private String controllerId;
+       /**
+        * logger to debug.
+        */
+       private static final Logger LOG = Logger
+                       .getLogger(FlowFiltersResource.class.getName());
+
+       /**
+        * Instantiates a new Controller Data Flow resource.
+        */
+       public ControllerDataFlowResource() {
+               super();
+               LOG.trace("Start "
+                               + "ControllerDataFlowResource#ControllerDataFlowResource()");
+               setValidator(new ControllerDataFlowResourceValidator(this));
+               LOG.trace("Completed "
+                               + "ControllerDataFlowResource#ControllerDataFlowResource()");
+       }
+
+       /**
+        * Gets the Controller Id.
+        * 
+        * @return the controller_id
+        */
+       public final String getControllerId() {
+               return controllerId;
+       }
+
+       /**
+        * Implementation of Get method of ControllerDataFlowResource API.
+        * 
+        * @param requestBody
+        *            the request JSON object
+        * 
+        * @return Error code
+        * @throws VtnServiceException
+        *             , in case vtn excpetion occurs
+        */
+       @Override
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
+               LOG.trace("Start ControllerDataFlowResource#get()");
+               ClientSession session = null;
+               IpcRequestProcessor requestProcessor = null;
+               int status = ClientSession.RESP_FATAL;
+               try {
+                       LOG.debug("Start Ipc framework call");
+                       session = getConnPool().getSession(UncUPPLEnums.UPPL_IPC_CHN_NAME,
+                                       UncUPPLEnums.UPPL_IPC_SVC_NAME,
+                                       UncUPPLEnums.ServiceID.UPPL_SVC_READREQ.ordinal(),
+                                       getExceptionHandler());
+                       LOG.debug("Session created successfully");
+                       requestProcessor = new IpcRequestProcessor(session, getSessionID(),
+                                       getConfigID(), getExceptionHandler());
+                       requestProcessor.createIpcRequestPacket(
+                                       IpcRequestPacketEnum.KT_CTR_DATAFLOW_GET, requestBody,
+                                       getUriParameters(requestBody));
+                       requestProcessor.getRequestPacket().setOperation(
+                                       new IpcUint32(UncOperationEnum.UNC_OP_READ.ordinal()));
+
+                       LOG.debug("Request packet created successfully");
+                       if (requestBody.has(VtnServiceJsonConsts.OP)
+                                       && requestBody.get(VtnServiceJsonConsts.OP).getAsString()
+                                                       .equals(VtnServiceJsonConsts.DETAIL)) {
+                               requestProcessor.getRequestPacket()
+                                               .setOption1(
+                                                               new IpcUint32(UncOption1Enum.UNC_OPT1_DETAIL
+                                                                               .ordinal()));
+                       }
+                       status = requestProcessor.processIpcRequest();
+                       LOG.debug("Request packet processed with status" + status);
+                       final IpcPhysicalResponseFactory responseGenerator = new IpcPhysicalResponseFactory();
+                       setInfo(responseGenerator.getControllerDataFlowResponse(
+                                       requestProcessor.getIpcResponsePacket(), requestBody,
+                                       VtnServiceJsonConsts.DETAIL));
+                       LOG.debug("Response object created successfully");
+                       LOG.debug("Complete Ipc framework call");
+               } catch (final VtnServiceException e) {
+                       getExceptionHandler()
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR
+                                                                       .getErrorMessage(), e);
+                       throw e;
+               } finally {
+                       if (status == ClientSession.RESP_FATAL) {
+                               if (null != requestProcessor.getErrorJson()) {
+                                       setInfo(requestProcessor.getErrorJson());
+                               } else {
+                                       createErrorInfo(UncCommonEnum.UncResultCode.UNC_SERVER_ERROR
+                                                       .getValue());
+                               }
+                               status = UncResultCode.UNC_SERVER_ERROR.getValue();
+                       }
+                       getConnPool().destroySession(session);
+               }
+               LOG.trace("Completed ControllerDataFlowResource#get()");
+               return status;
+       }
+
+       /**
+        * Add URI parameters to list.
+        * 
+        * @param requestBody
+        *            , for request purpose .
+        * @return List , containing all URI paramters
+        */
+
+       private List<String> getUriParameters(final JsonObject requestBody) {
+               LOG.trace("Start ControllerDataFlowResource#getUriParameters()");
+               final List<String> uriParameters = new ArrayList<String>();
+               uriParameters.add(controllerId);
+               LOG.trace("Completed ControllerDataFlowResource#getUriParameters()");
+               return uriParameters;
+       }
+}
index 0b7546fddce6ad6314c25c9682d90f22183660fa..72b8c5afa11505cef80e0acd02291feebe9dd67a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -51,7 +51,7 @@ public class ControllerResource extends AbstractResource {
        /**
         * @return the controllerId
         */
-       public String getControllerId() {
+       public final String getControllerId() {
                return controllerId;
        }
 
@@ -65,7 +65,8 @@ public class ControllerResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int put(final JsonObject requestBody) throws VtnServiceException {
+       public final int put(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts ControllerResource#put()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -84,18 +85,18 @@ public class ControllerResource extends AbstractResource {
                                        getUriParameters());
                        LOG.debug("Request packet created successfully");
                        status = requestProcessor.processIpcRequest();
-                       LOG.debug("Request packet processed with status:"+status);
+                       LOG.debug("Request packet processed with status:" + status);
                        LOG.debug("Complete Ipc framework call");
                } catch (final VtnServiceException e) {
                        getExceptionHandler()
-                       .raise(Thread.currentThread().getStackTrace()[1]
-                                       .getClassName()
-                                       + VtnServiceConsts.HYPHEN
-                                       + Thread.currentThread().getStackTrace()[1]
-                                                       .getMethodName(),
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR
-                                                       .getErrorMessage(), e);
+                                                                       .getErrorMessage(), e);
                        throw e;
                } finally {
                        if (status == ClientSession.RESP_FATAL) {
@@ -120,7 +121,7 @@ public class ControllerResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("Starts ControllerResource#delete()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -139,18 +140,18 @@ public class ControllerResource extends AbstractResource {
                                        getNullJsonObject(), getUriParameters());
                        LOG.debug("Request packet created successfully");
                        status = requestProcessor.processIpcRequest();
-                       LOG.debug("Request packet processed with status:"+status);
+                       LOG.debug("Request packet processed with status:" + status);
                        LOG.debug("Complete Ipc framework call");
                } catch (final VtnServiceException e) {
                        getExceptionHandler()
-                       .raise(Thread.currentThread().getStackTrace()[1]
-                                       .getClassName()
-                                       + VtnServiceConsts.HYPHEN
-                                       + Thread.currentThread().getStackTrace()[1]
-                                                       .getMethodName(),
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR
-                                                       .getErrorMessage(), e);
+                                                                       .getErrorMessage(), e);
                        throw e;
                } finally {
                        if (status == ClientSession.RESP_FATAL) {
@@ -178,7 +179,8 @@ public class ControllerResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts ControllerResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -197,7 +199,7 @@ public class ControllerResource extends AbstractResource {
                                        getUriParameters());
                        LOG.debug("Request packet created successfully");
                        status = requestProcessor.processIpcRequest();
-                       LOG.debug("Request packet processed with status:"+status);
+                       LOG.debug("Request packet processed with status:" + status);
                        final IpcPhysicalResponseFactory responseGenerator = new IpcPhysicalResponseFactory();
                        setInfo(responseGenerator.getControllerResponse(
                                        requestProcessor.getIpcResponsePacket(), requestBody,
@@ -206,14 +208,14 @@ public class ControllerResource extends AbstractResource {
                        LOG.debug("Complete Ipc framework call");
                } catch (final VtnServiceException e) {
                        getExceptionHandler()
-                       .raise(Thread.currentThread().getStackTrace()[1]
-                                       .getClassName()
-                                       + VtnServiceConsts.HYPHEN
-                                       + Thread.currentThread().getStackTrace()[1]
-                                                       .getMethodName(),
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR
-                                                       .getErrorMessage(), e);
+                                                                       .getErrorMessage(), e);
                        throw e;
                } finally {
                        if (status == ClientSession.RESP_FATAL) {
index 181450c2da448e27dca40edec0e1a431e49fd19b..b753fed4cb05826ceddfd1ceb72ab7396f67c55d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -56,7 +56,8 @@ public class ControllersResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int post(final JsonObject requestBody) throws VtnServiceException {
+       public final int post(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts ControllersResource#post()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -114,7 +115,8 @@ public class ControllersResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts ControllersResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -144,14 +146,16 @@ public class ControllersResource extends AbstractResource {
                        JsonObject responseJson = responseGenerator.getControllerResponse(
                                        requestProcessor.getIpcResponsePacket(), requestBody,
                                        VtnServiceJsonConsts.LIST);
-                       if (responseJson.get(VtnServiceJsonConsts.CONTROLLERS).isJsonArray()) {
-                               JsonArray responseArray = responseJson.get(
+                       if (responseJson.get(VtnServiceJsonConsts.CONTROLLERS)
+                                       .isJsonArray()) {
+                               final JsonArray responseArray = responseJson.get(
                                                VtnServiceJsonConsts.CONTROLLERS).getAsJsonArray();
                                responseJson = getResponseJsonArrayPhysical(requestBody,
                                                requestProcessor, responseGenerator, responseArray,
                                                VtnServiceJsonConsts.CONTROLLERS,
                                                VtnServiceJsonConsts.CONTROLLERID,
-                                               IpcRequestPacketEnum.KT_CONTROLLER_GET, uriParameterList,
+                                               IpcRequestPacketEnum.KT_CONTROLLER_GET,
+                                               uriParameterList,
                                                VtnServiceIpcConsts.GET_CONTROLLER_RESPONSE);
                        }
                        setInfo(responseJson);
similarity index 62%
rename from coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/physical/LinkResource.java
rename to coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/physical/DataFlowResource.java
index 09b1875b9d90898230d523c7af3bfcc90e5a192b..3a3afecef6c829e580d1c28ed17f25eb6f201f36 100644 (file)
@@ -1,20 +1,18 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2013-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.vtn.javaapi.resources.physical;
 
-import java.util.ArrayList;
-import java.util.List;
+package org.opendaylight.vtn.javaapi.resources.physical;
 
 import com.google.gson.JsonObject;
 import org.opendaylight.vtn.core.ipc.ClientSession;
+import org.opendaylight.vtn.core.ipc.IpcUint32;
 import org.opendaylight.vtn.core.util.Logger;
-import org.opendaylight.vtn.javaapi.annotation.UNCField;
 import org.opendaylight.vtn.javaapi.annotation.UNCVtnService;
 import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
 import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
@@ -25,59 +23,45 @@ import org.opendaylight.vtn.javaapi.ipc.enums.IpcRequestPacketEnum;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum.UncResultCode;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncOperationEnum;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncUPPLEnums;
 import org.opendaylight.vtn.javaapi.resources.AbstractResource;
-import org.opendaylight.vtn.javaapi.validation.physical.LinkResourceValidator;
+import org.opendaylight.vtn.javaapi.validation.physical.DataFlowResourceValidator;
 
 /**
- * The Class LinkResource implements get method.
+ * The Class DataFlowResource implements get methods.
+ * 
  */
-@UNCVtnService(path = "/controllers/{controller_id}/links/{link_name}")
-public class LinkResource extends AbstractResource {
-       private static final Logger LOG = Logger.getLogger(LinkResource.class
+@UNCVtnService(path = "/dataflows")
+public class DataFlowResource extends AbstractResource {
+       /** The LOG. */
+       private static final Logger LOG = Logger.getLogger(DataFlowResource.class
                        .getName());
-       /** The controller Id. */
-       @UNCField("controller_id")
-       private String controllerId;
-       /** The Switch Id */
-       @UNCField("link_name")
-       private String linkName;
-
-       /**
-        * Instantiates a new Link Resource.
-        */
-       public LinkResource() {
-               LOG.trace("Start LinkResource#LinkResource()");
-               setValidator(new LinkResourceValidator(this));
-               LOG.trace("Completed LinkResource#LinkResource()");
-       }
 
        /**
-        * @return the controllerId
+        * Instantiates a new Data Flow resource.
         */
-       public String getControllerId() {
-               return controllerId;
+       public DataFlowResource() {
+               super();
+               LOG.trace("Start DataFlowResource#DataFlowResource()");
+               setValidator(new DataFlowResourceValidator(this));
+               LOG.trace("Completed DataFlowResource#DataFlowResource()");
        }
 
        /**
-        * @return the Link Name
-        */
-       public String getLinkName() {
-               return linkName;
-       }
-
-       /**
-        * Implementation of get method of Link API
+        * Implementation of Get method of DataFlowResource API.
         * 
         * @param requestBody
-        *            the request Json object
+        *            the request JSON object
         * 
         * @return Error code
         * @throws VtnServiceException
+        *             ,in case of wrong request paramter.
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
-               LOG.trace("Starts LinkResource#get()");
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
+               LOG.trace("Start DataFlowResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
                int status = ClientSession.RESP_FATAL;
@@ -91,13 +75,17 @@ public class LinkResource extends AbstractResource {
                        requestProcessor = new IpcRequestProcessor(session, getSessionID(),
                                        getConfigID(), getExceptionHandler());
                        requestProcessor.createIpcRequestPacket(
-                                       IpcRequestPacketEnum.KT_LINK_GET, requestBody,
-                                       getUriParameters());
+                                       IpcRequestPacketEnum.KT_DATAFLOW_GET, requestBody,
+                                       getNullListObject());
+
+                       requestProcessor.getRequestPacket().setOperation(
+                                       new IpcUint32(UncOperationEnum.UNC_OP_READ.ordinal()));
+
                        LOG.debug("Request packet created successfully");
                        status = requestProcessor.processIpcRequest();
-                       LOG.debug("Request packet processed with status:"+status);
+                       LOG.debug("Request packet processed with status" + status);
                        final IpcPhysicalResponseFactory responseGenerator = new IpcPhysicalResponseFactory();
-                       setInfo(responseGenerator.getLinkResponse(
+                       setInfo(responseGenerator.getDataFlowResponse(
                                        requestProcessor.getIpcResponsePacket(), requestBody,
                                        VtnServiceJsonConsts.SHOW));
                        LOG.debug("Response object created successfully");
@@ -125,21 +113,7 @@ public class LinkResource extends AbstractResource {
                        }
                        getConnPool().destroySession(session);
                }
-               LOG.trace("Completed LinkResource#get()");
+               LOG.trace("Completed DataFlowResource#get()");
                return status;
        }
-
-       /**
-        * Add URI parameters to list
-        * 
-        * @return parameter list
-        */
-       private List<String> getUriParameters() {
-               LOG.trace("Starts LinkResource#getUriParameters()");
-               final List<String> uriParameters = new ArrayList<String>();
-               uriParameters.add(controllerId);
-               uriParameters.add(linkName);
-               LOG.trace("Completed LinkResource#getUriParameters()");
-               return uriParameters;
-       }
 }
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/physical/DomainLogicalPortResource.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/physical/DomainLogicalPortResource.java
deleted file mode 100644 (file)
index b7171b9..0000000
+++ /dev/null
@@ -1,333 +0,0 @@
-/*
- * Copyright (c) 2012-2013 NEC Corporation
- * All rights reserved.
- * 
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this
- * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.vtn.javaapi.resources.physical;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import com.google.gson.JsonArray;
-import com.google.gson.JsonNull;
-import com.google.gson.JsonObject;
-import org.opendaylight.vtn.core.ipc.ClientSession;
-import org.opendaylight.vtn.core.ipc.IpcDataUnit;
-import org.opendaylight.vtn.core.util.Logger;
-import org.opendaylight.vtn.javaapi.annotation.UNCField;
-import org.opendaylight.vtn.javaapi.annotation.UNCVtnService;
-import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
-import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
-import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
-import org.opendaylight.vtn.javaapi.init.VtnServiceConfiguration;
-import org.opendaylight.vtn.javaapi.init.VtnServiceInitManager;
-import org.opendaylight.vtn.javaapi.ipc.IpcRequestProcessor;
-import org.opendaylight.vtn.javaapi.ipc.conversion.IpcDataUnitWrapper;
-import org.opendaylight.vtn.javaapi.ipc.conversion.IpcPhysicalResponseFactory;
-import org.opendaylight.vtn.javaapi.ipc.enums.IpcRequestPacketEnum;
-import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum;
-import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum.UncResultCode;
-import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
-import org.opendaylight.vtn.javaapi.ipc.enums.UncOperationEnum;
-import org.opendaylight.vtn.javaapi.ipc.enums.UncUPPLEnums;
-import org.opendaylight.vtn.javaapi.resources.AbstractResource;
-import org.opendaylight.vtn.javaapi.validation.physical.DomainLogicalPortResourceValidator;
-
-/**
- * The Class DomainLogicalPortResource implements get method.
- */
-@UNCVtnService(path = "/controllers/{controller_id}/domains/{domain_id}/logical_ports/{logical_port_id}")
-public class DomainLogicalPortResource extends AbstractResource {
-       /**
-        * @return the controllerId
-        */
-       @UNCField("controller_id")
-       private String controllerId;
-       /**
-        * Getter for domainId
-        * 
-        * @return
-        */
-       @UNCField("domain_id")
-       private String domainId;
-       /**
-        * Getter for logicalPortId
-        * 
-        * @return
-        */
-       @UNCField("logical_port_id")
-       private String logicalPortId;
-       private static final Logger LOG = Logger
-                       .getLogger(DomainLogicalPortResource.class.getName());
-
-       /**
-        * Instantiates a new DomainLogicalPortResource resource.
-        */
-       public DomainLogicalPortResource() {
-               super();
-               LOG.trace("Start DomainLogicalPortResourceValidator()");
-               setValidator(new DomainLogicalPortResourceValidator(this));
-               LOG.trace("Complete DomainLogicalPortResourceValidator()");
-       }
-
-       /**
-        * Implementation of get method of DomainLogicalPort API
-        * 
-        * @param requestBody
-        *            the request Json object
-        * 
-        * @return Error code
-        * @throws VtnServiceException
-        */
-       @Override
-       public int get(JsonObject queryString) throws VtnServiceException {
-               LOG.trace("Start DomainLogicalPortResource#get()");
-               ClientSession session = null;
-               JsonObject memberLastIndex = null;
-               IpcRequestProcessor requestProcessor = null;
-               IpcDataUnit[] resp = null;
-               int status = ClientSession.RESP_FATAL;
-               try {
-                       LOG.debug("Start Ipc framework call");
-                       // Get session from connection pool of UPLL server connections
-                       session = getConnPool().getSession(UncUPPLEnums.UPPL_IPC_CHN_NAME,
-                                       UncUPPLEnums.UPPL_IPC_SVC_NAME,
-                                       UncUPPLEnums.ServiceID.UPPL_SVC_READREQ.ordinal(),
-                                       getExceptionHandler());
-                       LOG.debug("Session created successfully");
-                       final IpcPhysicalResponseFactory responseGenerator = new IpcPhysicalResponseFactory();
-                       String dataType = VtnServiceJsonConsts.STATE;
-                       if (queryString.has(VtnServiceJsonConsts.TARGETDB)) {
-                               dataType = queryString.get(VtnServiceJsonConsts.TARGETDB)
-                                               .getAsString();
-                       }
-                       requestProcessor = new IpcRequestProcessor(session, getSessionID(),
-                                       getConfigID(), getExceptionHandler());
-                       requestProcessor.createIpcRequestPacket(
-                                       IpcRequestPacketEnum.KT_LOGICAL_PORT_GET, queryString,
-                                       getUriParameters());
-                       LOG.debug("Request packet for 1st call created successfully");
-                       status = requestProcessor.processIpcRequest();
-                       LOG.debug("Request packet for 1st call processed with status:"+status);
-                       if (status == ClientSession.RESP_FATAL) {
-                               throw new VtnServiceException(
-                                               Thread.currentThread().getStackTrace()[1]
-                                                               .getClassName()
-                                                               + VtnServiceConsts.HYPHEN
-                                                               + Thread.currentThread().getStackTrace()[1]
-                                                                               .getMethodName(),
-                                               UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
-                                               UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorMessage());
-                       }
-                       JsonObject root = responseGenerator.getDomainLogicalPortResponse(
-                                       requestProcessor.getIpcResponsePacket(), queryString,
-                                       VtnServiceJsonConsts.SHOW);
-                       JsonArray memberArray = null;
-                       JsonArray memberArrayNew = null;
-                       if (VtnServiceJsonConsts.STATE.equalsIgnoreCase(dataType) && !(root.get(VtnServiceJsonConsts.LOGICALPORT) instanceof JsonNull)) {
-                               requestProcessor.setServiceInfo(UncUPPLEnums.UPPL_IPC_SVC_NAME,
-                                               UncUPPLEnums.ServiceID.UPPL_SVC_READREQ.ordinal());
-                               requestProcessor.createIpcRequestPacket(
-                                               IpcRequestPacketEnum.KT_LOGICAL_PORT_MEMBER_GET,
-                                               queryString, getUriParametersMember(root));
-                               requestProcessor
-                                               .getRequestPacket()
-                                               .setOperation(
-                                                               IpcDataUnitWrapper
-                                                                               .setIpcUint32Value(UncOperationEnum.UNC_OP_READ_SIBLING_BEGIN
-                                                                                               .ordinal()));
-                               LOG.debug("Request packet  2nd call created successfully");
-                               status = requestProcessor.processIpcRequest();
-                               LOG.debug("Request packet 2nd call processed with status:"+status);
-                               if (status == ClientSession.RESP_FATAL) {
-                                       throw new VtnServiceException(
-                                                       Thread.currentThread().getStackTrace()[1]
-                                                                       .getClassName()
-                                                                       + VtnServiceConsts.HYPHEN
-                                                                       + Thread.currentThread().getStackTrace()[1]
-                                                                                       .getMethodName(),
-                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
-                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR
-                                                                       .getErrorMessage());
-                               }
-                               memberArray = responseGenerator
-                                               .getDomainLogicalPortMemberResponse(requestProcessor
-                                                               .getIpcResponsePacket());
-                               int memberIndex = 0;
-                               VtnServiceConfiguration configuration = VtnServiceInitManager
-                                               .getConfigurationMap();
-                               int max_rep_count = Integer.parseInt(configuration
-                                               .getConfigValue(VtnServiceConsts.MAX_REP_DEFAULT));
-                               memberIndex = memberArray.size();
-                               if (memberArray.size() >= max_rep_count) {
-                                       while (memberIndex >= max_rep_count) {
-                                               memberIndex = memberArray.size();
-                                               memberLastIndex = (JsonObject) memberArray
-                                                               .get(memberIndex - 1);
-                                               requestProcessor
-                                                               .createIpcRequestPacket(
-                                                                               IpcRequestPacketEnum.KT_LOGICAL_PORT_MEMBER_GET,
-                                                                               queryString,
-                                                                               getUriParametersMemberGreaterThanDefault(
-                                                                                               root, memberLastIndex));
-                                               requestProcessor
-                                                               .getRequestPacket()
-                                                               .setOperation(
-                                                                               IpcDataUnitWrapper
-                                                                                               .setIpcUint32Value(UncOperationEnum.UNC_OP_READ_SIBLING
-                                                                                                               .ordinal()));
-                                               status = requestProcessor.processIpcRequest();
-                                               if (status == ClientSession.RESP_FATAL) {
-                                                       throw new VtnServiceException(
-                                                                       Thread.currentThread().getStackTrace()[1]
-                                                                                       .getClassName()
-                                                                                       + VtnServiceConsts.HYPHEN
-                                                                                       + Thread.currentThread()
-                                                                                                       .getStackTrace()[1]
-                                                                                                       .getMethodName(),
-                                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR
-                                                                                       .getErrorCode(),
-                                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR
-                                                                                       .getErrorMessage());
-                                               }
-                                               resp = requestProcessor.getIpcResponsePacket();
-                                               memberArrayNew = responseGenerator
-                                                               .getDomainLogicalPortMemberResponse(resp);
-                                               if (null != memberArrayNew
-                                                               && !memberArrayNew.isJsonNull()) {
-                                                       memberArray.getAsJsonArray().addAll(memberArrayNew);
-                                               } else {
-                                                       break;
-                                               }
-                                               memberIndex++;
-                                       }
-                               }
-                               if (null != memberArray) {
-                                       root.get(VtnServiceJsonConsts.LOGICALPORT)
-                                                       .getAsJsonObject()
-                                                       .add(VtnServiceJsonConsts.MEMBER_PORTS, memberArray);
-                               }
-                       }
-                       setInfo(root);
-                       LOG.debug("Response object created successfully");
-                       LOG.debug("Complete Ipc framework call");
-               } catch (final VtnServiceException e) {
-                       getExceptionHandler()
-                                       .raise(Thread.currentThread().getStackTrace()[1]
-                                                       .getClassName()
-                                                       + VtnServiceConsts.HYPHEN
-                                                       + Thread.currentThread().getStackTrace()[1]
-                                                                       .getMethodName(),
-                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
-                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR
-                                                                       .getErrorMessage(), e);
-                       throw e;
-               } finally {
-                       /*
-                        * Handle the case, where error info required to be set for failures
-                        * If error cause can be found from UPLL layer then, set the error
-                        * according to error code Otherwise set the error as IPC server
-                        * error
-                        */
-                       if (status == ClientSession.RESP_FATAL) {
-                               if (null != requestProcessor.getErrorJson()) {
-                                       setInfo(requestProcessor.getErrorJson());
-                               } else {
-                                       createErrorInfo(UncCommonEnum.UncResultCode.UNC_SERVER_ERROR
-                                                       .getValue());
-                               }
-                               status = UncResultCode.UNC_SERVER_ERROR.getValue();
-                       }
-                       // destroy the session in all cases
-                       getConnPool().destroySession(session);
-               }
-               LOG.trace("Completed DomainLogicalPortResource#get()");
-               return status;
-       }
-
-       /**
-        * Getter for controller id
-        * 
-        * @return
-        */
-       public String getControllerId() {
-               return controllerId;
-       }
-
-       /**
-        * Getter for domain id
-        * 
-        * @return
-        */
-       public String getDomainId() {
-               return domainId;
-       }
-
-       /**
-        * Getter for port id
-        * 
-        * @return
-        */
-       public String getLogicalPortId() {
-               return logicalPortId;
-       }
-
-       /**
-        * Add URI parameters to list
-        * 
-        * @return parameter list
-        */
-       private List<String> getUriParameters() {
-               LOG.trace("Starts DomainLogicalPortResource#getUriParameters()");
-               final List<String> uriParameters = new ArrayList<String>();
-               uriParameters.add(controllerId);
-               uriParameters.add(domainId);
-               uriParameters.add(logicalPortId);
-               LOG.trace("Completed DomainLogicalPortResource#getUriParameters()");
-               return uriParameters;
-       }
-
-       /**
-        * Add URI Member parameters to list
-        * 
-        * @return parameter list
-        */
-       private List<String> getUriParametersMember(JsonObject root) {
-               LOG.trace("Starts DomainLogicalPortResource#getUriParametersMember()");
-               final List<String> uriParameters = new ArrayList<String>();
-               uriParameters.add(controllerId);
-               uriParameters.add(domainId);
-               uriParameters.add(logicalPortId);
-               // uriParameters.add(((JsonObject)root.get(VtnServiceJsonConsts.LOGICALPORT)).get(VtnServiceJsonConsts.SWITCHID).getAsString());
-               // uriParameters.add(((JsonObject)root.get(VtnServiceJsonConsts.LOGICALPORT)).get(VtnServiceJsonConsts.PORTNAME).getAsString());
-               LOG.trace("Completed DomainLogicalPortResource#getUriParametersMember()");
-               return uriParameters;
-       }
-
-       private List<String> getUriParametersMemberGreaterThanDefault(
-                       JsonObject logicalPortsJson, final JsonObject memberLastIndex) {
-               LOG.trace("Starts DomainLogicalPortResource#getUriParametersMemberGreaterThanDefault()");
-               final List<String> uriParameters = new ArrayList<String>();
-               uriParameters.add(controllerId);
-               uriParameters.add(domainId);
-               uriParameters.add(logicalPortsJson.get(
-                               VtnServiceJsonConsts.LOGICAL_PORT_ID).getAsString());
-               if (memberLastIndex.has(VtnServiceJsonConsts.SWITCHID)) {
-                       uriParameters.add(memberLastIndex
-                                       .get(VtnServiceJsonConsts.SWITCHID).getAsString());
-               } else {
-                       uriParameters.add(VtnServiceJsonConsts.SWITCHID_NOT_FOUND);
-               }
-               if (memberLastIndex.has(VtnServiceJsonConsts.PORTNAME)) {
-                       uriParameters.add(memberLastIndex
-                                       .get(VtnServiceJsonConsts.PORTNAME).getAsString());
-               } else {
-                       uriParameters.add(VtnServiceJsonConsts.PORTID_NOT_FOUND);
-               }
-               LOG.trace("Completed DomainLogicalPortResource#getUriParametersMemberGreaterThanDefault()");
-               return uriParameters;
-       }
-}
index e8e40db69ec3ffbf20ee969c5c842dc33e0ce773..3ace72c0c5d738f9b87254e7de4be6935068f738 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -40,7 +40,8 @@ import org.opendaylight.vtn.javaapi.validation.physical.DomainLogicalPortResourc
 /**
  * The Class DomainLogicalPortsResource implements get method.
  */
-@UNCVtnService(path = "/controllers/{controller_id}/domains/{domain_id}/logical_ports")
+@UNCVtnService(
+               path = "/controllers/{controller_id}/domains/{domain_id}/logical_ports")
 public class DomainLogicalPortsResource extends AbstractResource {
        /**
         * @return the controllerId
@@ -66,11 +67,11 @@ public class DomainLogicalPortsResource extends AbstractResource {
 
        }
 
-       public String getcontrollerId() {
+       public final String getcontrollerId() {
                return controllerId;
        }
 
-       public String getdomainId() {
+       public final String getdomainId() {
                return domainId;
        }
 
@@ -84,7 +85,8 @@ public class DomainLogicalPortsResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(JsonObject queryString) throws VtnServiceException {
+       public final int get(final JsonObject queryString)
+                       throws VtnServiceException {
                LOG.trace("Starts DomainLogicalPortsResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -111,51 +113,187 @@ public class DomainLogicalPortsResource extends AbstractResource {
                                        IpcRequestPacketEnum.KT_LOGICAL_PORT_GET, queryString,
                                        getUriParameters(queryString));
                        LOG.debug("Request packet for 1st created successfully");
-                       status = requestProcessor.processIpcRequest();
-                       LOG.debug("Request packet 1st call processed with status:"+status);
-                       if (status == ClientSession.RESP_FATAL) {
-                               throw new VtnServiceException(
-                                               Thread.currentThread().getStackTrace()[1]
-                                                               .getClassName()
-                                                               + VtnServiceConsts.HYPHEN
-                                                               + Thread.currentThread().getStackTrace()[1]
-                                                                               .getMethodName(),
-                                               UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
-                                               UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorMessage());
-                       }
-                       resp = requestProcessor.getIpcResponsePacket();
-                       JsonObject root = responseGenerator.getDomainLogicalPortResponse(
-                                       resp, queryString, VtnServiceJsonConsts.LIST);
-                       String opType = VtnServiceJsonConsts.NORMAL;
-                       if (queryString.has(VtnServiceJsonConsts.OP)) {
-                               opType = queryString.get(VtnServiceJsonConsts.OP).getAsString();
-                       }
-                       JsonArray logicalPortsArray = new JsonArray();
-                       JsonArray memberArray = null;
-                       JsonArray memberArrayNew = null;
-                       if (VtnServiceJsonConsts.STATE.equalsIgnoreCase(dataType)
-                                       && VtnServiceJsonConsts.DETAIL.equalsIgnoreCase(opType)) {
-                               final Iterator<JsonElement> logicalPortIterator = root
-                                               .get(VtnServiceJsonConsts.LOGICALPORTS)
-                                               .getAsJsonArray().iterator();
-                               requestProcessor.setServiceInfo(UncUPPLEnums.UPPL_IPC_SVC_NAME,
-                                               UncUPPLEnums.ServiceID.UPPL_SVC_READREQ.ordinal());
-                               while (logicalPortIterator.hasNext()) {
-                                       JsonObject logicalPortsJson = (JsonObject) logicalPortIterator
-                                                       .next();
+
+                       if (!queryString.has(VtnServiceJsonConsts.LOGICAL_PORT_ID)) {
+                               status = requestProcessor.processIpcRequest();
+                               LOG.debug("Request packet 1st call processed with status:"
+                                               + status);
+                               if (status == ClientSession.RESP_FATAL) {
+                                       throw new VtnServiceException(
+                                                       Thread.currentThread().getStackTrace()[1]
+                                                                       .getClassName()
+                                                                       + VtnServiceConsts.HYPHEN
+                                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                                       .getMethodName(),
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR
+                                                                       .getErrorMessage());
+                               }
+                               resp = requestProcessor.getIpcResponsePacket();
+                               final JsonObject root = responseGenerator
+                                               .getDomainLogicalPortResponse(resp, queryString);
+                               String opType = VtnServiceJsonConsts.NORMAL;
+                               if (queryString.has(VtnServiceJsonConsts.OP)) {
+                                       opType = queryString.get(VtnServiceJsonConsts.OP)
+                                                       .getAsString();
+                               }
+                               final JsonArray logicalPortsArray = new JsonArray();
+                               JsonArray memberArray = null;
+                               JsonArray memberArrayNew = null;
+                               if (VtnServiceJsonConsts.STATE.equalsIgnoreCase(dataType)
+                                               && VtnServiceJsonConsts.DETAIL.equalsIgnoreCase(opType)) {
+                                       final Iterator<JsonElement> logicalPortIterator = root
+                                                       .get(VtnServiceJsonConsts.LOGICALPORTS)
+                                                       .getAsJsonArray().iterator();
+                                       requestProcessor.setServiceInfo(
+                                                       UncUPPLEnums.UPPL_IPC_SVC_NAME,
+                                                       UncUPPLEnums.ServiceID.UPPL_SVC_READREQ.ordinal());
+                                       while (logicalPortIterator.hasNext()) {
+                                               final JsonObject logicalPortsJson = (JsonObject) logicalPortIterator
+                                                               .next();
+                                               requestProcessor
+                                                               .createIpcRequestPacket(
+                                                                               IpcRequestPacketEnum.KT_LOGICAL_PORT_MEMBER_GET,
+                                                                               queryString,
+                                                                               getUriParametersMember(logicalPortsJson));
+                                               requestProcessor
+                                                               .getRequestPacket()
+                                                               .setOperation(
+                                                                               IpcDataUnitWrapper
+                                                                                               .setIpcUint32Value(UncOperationEnum.UNC_OP_READ_SIBLING_BEGIN
+                                                                                                               .ordinal()));
+                                               LOG.debug("Request packet for 2nd call created successfully");
+                                               status = requestProcessor.processIpcRequest();
+                                               LOG.debug("Request packet 2nd call processed with status:"
+                                                               + status);
+                                               if (status == ClientSession.RESP_FATAL) {
+                                                       throw new VtnServiceException(
+                                                                       Thread.currentThread().getStackTrace()[1]
+                                                                                       .getClassName()
+                                                                                       + VtnServiceConsts.HYPHEN
+                                                                                       + Thread.currentThread()
+                                                                                                       .getStackTrace()[1]
+                                                                                                       .getMethodName(),
+                                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR
+                                                                                       .getErrorCode(),
+                                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR
+                                                                                       .getErrorMessage());
+                                               }
+                                               resp = requestProcessor.getIpcResponsePacket();
+                                               memberArray = responseGenerator
+                                                               .getDomainLogicalPortMemberResponse(resp);
+                                               int memberIndex = 0;
+                                               final VtnServiceConfiguration configuration = VtnServiceInitManager
+                                                               .getConfigurationMap();
+                                               final int max_rep_count = Integer
+                                                               .parseInt(configuration
+                                                                               .getConfigValue(VtnServiceConsts.MAX_REP_DEFAULT));
+                                               memberIndex = memberArray.size();
+                                               if (memberArray.size() >= max_rep_count) {
+                                                       while (memberIndex >= max_rep_count) {
+                                                               memberIndex = memberArray.size();
+                                                               memberLastIndex = (JsonObject) memberArray
+                                                                               .get(memberIndex - 1);
+                                                               requestProcessor
+                                                                               .createIpcRequestPacket(
+                                                                                               IpcRequestPacketEnum.KT_LOGICAL_PORT_MEMBER_GET,
+                                                                                               queryString,
+                                                                                               getUriParametersMemberGreaterThanDefault(
+                                                                                                               logicalPortsJson,
+                                                                                                               memberLastIndex));
+                                                               requestProcessor
+                                                                               .getRequestPacket()
+                                                                               .setOperation(
+                                                                                               IpcDataUnitWrapper
+                                                                                                               .setIpcUint32Value(UncOperationEnum.UNC_OP_READ_SIBLING
+                                                                                                                               .ordinal()));
+                                                               status = requestProcessor.processIpcRequest();
+                                                               if (status == ClientSession.RESP_FATAL) {
+                                                                       throw new VtnServiceException(
+                                                                                       Thread.currentThread()
+                                                                                                       .getStackTrace()[1]
+                                                                                                       .getClassName()
+                                                                                                       + VtnServiceConsts.HYPHEN
+                                                                                                       + Thread.currentThread()
+                                                                                                                       .getStackTrace()[1]
+                                                                                                                       .getMethodName(),
+                                                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR
+                                                                                                       .getErrorCode(),
+                                                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR
+                                                                                                       .getErrorMessage());
+                                                               }
+                                                               resp = requestProcessor.getIpcResponsePacket();
+                                                               memberArrayNew = responseGenerator
+                                                                               .getDomainLogicalPortMemberResponse(resp);
+                                                               if (null != memberArrayNew
+                                                                               && !memberArrayNew.isJsonNull()) {
+                                                                       memberArray.getAsJsonArray().addAll(
+                                                                                       memberArrayNew);
+                                                               } else {
+                                                                       break;
+                                                               }
+                                                               memberIndex++;
+                                                       }
+                                               }
+                                               logicalPortsJson.add(VtnServiceJsonConsts.MEMBERPORTS,
+                                                               memberArray);
+                                               logicalPortsArray.add(logicalPortsJson);
+                                       }
+                                       root.add(VtnServiceJsonConsts.LOGICALPORTS,
+                                                       logicalPortsArray);
+                               }
+                               setInfo(root);
+                       } else {
+                               requestProcessor.getRequestPacket().setOperation(
+                                               IpcDataUnitWrapper
+                                                               .setIpcUint32Value(UncOperationEnum.UNC_OP_READ
+                                                                               .ordinal()));
+                               status = requestProcessor.processIpcRequest();
+                               LOG.debug("Request packet for 1st call processed with status:"
+                                               + status);
+                               if (status == ClientSession.RESP_FATAL) {
+                                       throw new VtnServiceException(
+                                                       Thread.currentThread().getStackTrace()[1]
+                                                                       .getClassName()
+                                                                       + VtnServiceConsts.HYPHEN
+                                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                                       .getMethodName(),
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR
+                                                                       .getErrorMessage());
+                               }
+                               final JsonObject root = responseGenerator
+                                               .getDomainLogicalPortResponse(
+                                                               requestProcessor.getIpcResponsePacket(),
+                                                               queryString);
+                               JsonArray memberArray = null;
+                               JsonArray memberArrayNew = null;
+                               String opType = VtnServiceJsonConsts.NORMAL;
+                               if (queryString.has(VtnServiceJsonConsts.OP)) {
+                                       opType = queryString.get(VtnServiceJsonConsts.OP)
+                                                       .getAsString();
+                               }
+                               if (VtnServiceJsonConsts.STATE.equalsIgnoreCase(dataType)
+                                               && opType.equalsIgnoreCase(VtnServiceJsonConsts.DETAIL)
+                                               && (root.get(VtnServiceJsonConsts.LOGICALPORTS)
+                                                               .getAsJsonArray().size() != 0)) {
+                                       requestProcessor.setServiceInfo(
+                                                       UncUPPLEnums.UPPL_IPC_SVC_NAME,
+                                                       UncUPPLEnums.ServiceID.UPPL_SVC_READREQ.ordinal());
                                        requestProcessor.createIpcRequestPacket(
                                                        IpcRequestPacketEnum.KT_LOGICAL_PORT_MEMBER_GET,
                                                        queryString,
-                                                       getUriParametersMember(logicalPortsJson));
+                                                       getUriParametersMemberShow(queryString));
                                        requestProcessor
                                                        .getRequestPacket()
                                                        .setOperation(
                                                                        IpcDataUnitWrapper
                                                                                        .setIpcUint32Value(UncOperationEnum.UNC_OP_READ_SIBLING_BEGIN
                                                                                                        .ordinal()));
-                                       LOG.debug("Request packet for 2nd call created successfully");
+                                       LOG.debug("Request packet  2nd call created successfully");
                                        status = requestProcessor.processIpcRequest();
-                                       LOG.debug("Request packet 2nd call processed with status:"+status);
+                                       LOG.debug("Request packet 2nd call processed with status:"
+                                                       + status);
                                        if (status == ClientSession.RESP_FATAL) {
                                                throw new VtnServiceException(
                                                                Thread.currentThread().getStackTrace()[1]
@@ -169,13 +307,13 @@ public class DomainLogicalPortsResource extends AbstractResource {
                                                                UncJavaAPIErrorCode.IPC_SERVER_ERROR
                                                                                .getErrorMessage());
                                        }
-                                       resp = requestProcessor.getIpcResponsePacket();
                                        memberArray = responseGenerator
-                                                       .getDomainLogicalPortMemberResponse(resp);
+                                                       .getDomainLogicalPortMemberResponse(requestProcessor
+                                                                       .getIpcResponsePacket());
                                        int memberIndex = 0;
-                                       VtnServiceConfiguration configuration = VtnServiceInitManager
+                                       final VtnServiceConfiguration configuration = VtnServiceInitManager
                                                        .getConfigurationMap();
-                                       int max_rep_count = Integer.parseInt(configuration
+                                       final int max_rep_count = Integer.parseInt(configuration
                                                        .getConfigValue(VtnServiceConsts.MAX_REP_DEFAULT));
                                        memberIndex = memberArray.size();
                                        if (memberArray.size() >= max_rep_count) {
@@ -188,8 +326,7 @@ public class DomainLogicalPortsResource extends AbstractResource {
                                                                                        IpcRequestPacketEnum.KT_LOGICAL_PORT_MEMBER_GET,
                                                                                        queryString,
                                                                                        getUriParametersMemberGreaterThanDefault(
-                                                                                                       logicalPortsJson,
-                                                                                                       memberLastIndex));
+                                                                                                       root, memberLastIndex));
                                                        requestProcessor
                                                                        .getRequestPacket()
                                                                        .setOperation(
@@ -223,13 +360,21 @@ public class DomainLogicalPortsResource extends AbstractResource {
                                                        memberIndex++;
                                                }
                                        }
-                                       logicalPortsJson.add(VtnServiceJsonConsts.MEMBERPORTS,
-                                                       memberArray);
-                                       logicalPortsArray.add(logicalPortsJson);
+                                       if (null != memberArray) {
+                                               final JsonArray resultJsonArray = new JsonArray();
+                                               final JsonObject logicalPortJson = (JsonObject) root
+                                                               .get(VtnServiceJsonConsts.LOGICALPORTS)
+                                                               .getAsJsonArray()
+                                                               .get(VtnServiceJsonConsts.VAL_0);
+                                               logicalPortJson.add(VtnServiceJsonConsts.MEMBER_PORTS,
+                                                               memberArray);
+                                               resultJsonArray.add(logicalPortJson);
+                                               root.add(VtnServiceJsonConsts.LOGICALPORTS,
+                                                               resultJsonArray);
+                                       }
                                }
-                               root.add(VtnServiceJsonConsts.LOGICALPORTS, logicalPortsArray);
+                               setInfo(root);
                        }
-                       setInfo(root);
                        LOG.debug("Response object created successfully");
                        LOG.debug("Complete Ipc framework call");
                } catch (final VtnServiceException e) {
@@ -271,7 +416,7 @@ public class DomainLogicalPortsResource extends AbstractResource {
         * 
         * @return
         */
-       public String getControllerId() {
+       public final String getControllerId() {
                return controllerId;
        }
 
@@ -280,7 +425,7 @@ public class DomainLogicalPortsResource extends AbstractResource {
         * 
         * @return
         */
-       public String getDomainId() {
+       public final String getDomainId() {
                return domainId;
        }
 
@@ -289,12 +434,17 @@ public class DomainLogicalPortsResource extends AbstractResource {
         * 
         * @return parameter list
         */
-       private List<String> getUriParameters(JsonObject requestBody) {
+       private List<String> getUriParameters(final JsonObject requestBody) {
                LOG.trace("Starts LogicalPortsResource#getUriParameters()");
                final List<String> uriParameters = new ArrayList<String>();
                uriParameters.add(controllerId);
                uriParameters.add(domainId);
-               if (requestBody != null && requestBody.has(VtnServiceJsonConsts.INDEX)) {
+               if (requestBody != null
+                               && requestBody.has(VtnServiceJsonConsts.LOGICAL_PORT_ID)) {
+                       uriParameters.add(requestBody.get(
+                                       VtnServiceJsonConsts.LOGICAL_PORT_ID).getAsString());
+               } else if (requestBody != null
+                               && requestBody.has(VtnServiceJsonConsts.INDEX)) {
                        uriParameters.add(requestBody.get(VtnServiceJsonConsts.INDEX)
                                        .getAsString());
                }
@@ -307,21 +457,42 @@ public class DomainLogicalPortsResource extends AbstractResource {
         * 
         * @return parameter list
         */
-       private List<String> getUriParametersMember(JsonObject logicalPortsJson) {
+       private List<String> getUriParametersMember(
+                       final JsonObject logicalPortsJson) {
                LOG.trace("Starts LogicalPortsResource#getUriParametersMember()");
                final List<String> uriParameters = new ArrayList<String>();
                uriParameters.add(controllerId);
                uriParameters.add(domainId);
                uriParameters.add(logicalPortsJson.get(
                                VtnServiceJsonConsts.LOGICAL_PORT_ID).getAsString());
-               // uriParameters.add((logicalPortsJson.get(VtnServiceJsonConsts.SWITCHID).getAsString()));
-               // uriParameters.add((logicalPortsJson.get(VtnServiceJsonConsts.PORTNAME).getAsString()));
+
                LOG.trace("Completed LogicalPortsResource#getUriParametersMember()");
                return uriParameters;
        }
 
-       private List<String> getUriParametersMemberGreaterThanDefault(
-                       JsonObject logicalPortsJson, final JsonObject memberLastIndex) {
+       /**
+        * Add URI Member parameters to Show
+        * 
+        * @return parameter list
+        */
+       private List<String> getUriParametersMemberShow(
+                       final JsonObject logicalPortsJson) {
+               LOG.trace("Starts DomainLogicalPortResource#getUriParametersMember()");
+               final List<String> uriParameters = new ArrayList<String>();
+               uriParameters.add(controllerId);
+               uriParameters.add(domainId);
+               if (logicalPortsJson.has(VtnServiceJsonConsts.LOGICAL_PORT_ID)) {
+                       uriParameters.add(logicalPortsJson.get(
+                                       VtnServiceJsonConsts.LOGICAL_PORT_ID).getAsString());
+               }
+               LOG.trace("Completed DomainLogicalPortResource#getUriParametersMember()");
+               return uriParameters;
+       }
+
+       private List<String>
+                       getUriParametersMemberGreaterThanDefault(
+                                       final JsonObject logicalPortsJson,
+                                       final JsonObject memberLastIndex) {
                LOG.trace("Starts LogicalPortsResource#getUriParametersMemberGreaterThanDefault()");
                final List<String> uriParameters = new ArrayList<String>();
                uriParameters.add(controllerId);
index f6583c859d2ee212d91760eade2307dfbd96765a..d62ebef013888eee6b480d38e8fd86f80adce9b9 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -43,7 +43,7 @@ public class DomainResource extends AbstractResource {
         * 
         * @return the controller id
         */
-       public String getcontrollerId() {
+       public final String getcontrollerId() {
                return controllerId;
        }
 
@@ -56,11 +56,13 @@ public class DomainResource extends AbstractResource {
         * 
         * @return the domain id
         */
-       public String getdomainId() {
+       public final String getdomainId() {
                return domainId;
        }
+
        private static final Logger LOG = Logger.getLogger(DomainResource.class
                        .getName());
+
        /**
         * Instantiates a new Domain resource.
         */
@@ -81,7 +83,8 @@ public class DomainResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts DomainResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -100,7 +103,7 @@ public class DomainResource extends AbstractResource {
                                        getUriParameters());
                        LOG.debug("Request packet created successfully");
                        status = requestProcessor.processIpcRequest();
-                       LOG.debug("Request packet processed with status:"+status);
+                       LOG.debug("Request packet processed with status:" + status);
                        final IpcPhysicalResponseFactory responseGenerator = new IpcPhysicalResponseFactory();
                        setInfo(responseGenerator.getDomainResponse(
                                        requestProcessor.getIpcResponsePacket(), requestBody,
@@ -109,14 +112,14 @@ public class DomainResource extends AbstractResource {
                        LOG.debug("Complete Ipc framework call");
                } catch (final VtnServiceException e) {
                        getExceptionHandler()
-                       .raise(Thread.currentThread().getStackTrace()[1]
-                                       .getClassName()
-                                       + VtnServiceConsts.HYPHEN
-                                       + Thread.currentThread().getStackTrace()[1]
-                                                       .getMethodName(),
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR
-                                                       .getErrorMessage(), e);
+                                                                       .getErrorMessage(), e);
                        throw e;
                } finally {
                        if (status == ClientSession.RESP_FATAL) {
@@ -143,7 +146,7 @@ public class DomainResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int delete() throws VtnServiceException {
+       public final int delete() throws VtnServiceException {
                LOG.trace("Starts DomainResource#delete()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -162,18 +165,18 @@ public class DomainResource extends AbstractResource {
                                        getNullJsonObject(), getUriParameters());
                        LOG.debug("Request packet created successfully");
                        status = requestProcessor.processIpcRequest();
-                       LOG.debug("Request packet processed with status:"+status);
+                       LOG.debug("Request packet processed with status:" + status);
                        LOG.debug("Complete Ipc framework call");
                } catch (final VtnServiceException e) {
                        getExceptionHandler()
-                       .raise(Thread.currentThread().getStackTrace()[1]
-                                       .getClassName()
-                                       + VtnServiceConsts.HYPHEN
-                                       + Thread.currentThread().getStackTrace()[1]
-                                                       .getMethodName(),
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR
-                                                       .getErrorMessage(), e);
+                                                                       .getErrorMessage(), e);
                        throw e;
                } finally {
                        if (status == ClientSession.RESP_FATAL) {
@@ -201,7 +204,8 @@ public class DomainResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int put(final JsonObject requestBody) throws VtnServiceException {
+       public final int put(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts DomainResource#put()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -220,18 +224,18 @@ public class DomainResource extends AbstractResource {
                                        getUriParameters());
                        LOG.debug("Request packet created successfully");
                        status = requestProcessor.processIpcRequest();
-                       LOG.debug("Request packet processed with status:"+status);
+                       LOG.debug("Request packet processed with status:" + status);
                        LOG.debug("Complete Ipc framework call");
                } catch (final VtnServiceException e) {
                        getExceptionHandler()
-                       .raise(Thread.currentThread().getStackTrace()[1]
-                                       .getClassName()
-                                       + VtnServiceConsts.HYPHEN
-                                       + Thread.currentThread().getStackTrace()[1]
-                                                       .getMethodName(),
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR
-                                                       .getErrorMessage(), e);
+                                                                       .getErrorMessage(), e);
                        throw e;
                } finally {
                        if (status == ClientSession.RESP_FATAL) {
index 4533dd1c8e59fb8d8171f22249c48bfc686463d5..bfbea848fefcdb04aa625f2487feb4f9139f7515 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -44,7 +44,7 @@ public class DomainsResource extends AbstractResource {
         * 
         * @return the controller id
         */
-       public String getControllerId() {
+       public final String getControllerId() {
                return controllerId;
        }
 
@@ -71,7 +71,8 @@ public class DomainsResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts DomainsResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -92,38 +93,41 @@ public class DomainsResource extends AbstractResource {
                                        uriParameterList);
                        LOG.debug("Request packet created successfully");
                        status = requestProcessor.processIpcRequest();
-                       LOG.debug("Request packet processed with status:"+status);
+                       LOG.debug("Request packet processed with status:" + status);
                        final IpcPhysicalResponseFactory responseGenerator = new IpcPhysicalResponseFactory();
-                       /*setInfo(responseGenerator.getDomainResponse(
-                                       requestProcessor.getIpcResponsePacket(), requestBody,
-                                       VtnServiceJsonConsts.LIST));*/
+                       /*
+                        * setInfo(responseGenerator.getDomainResponse(
+                        * requestProcessor.getIpcResponsePacket(), requestBody,
+                        * VtnServiceJsonConsts.LIST));
+                        */
                        JsonObject responseJson = responseGenerator.getDomainResponse(
                                        requestProcessor.getIpcResponsePacket(), requestBody,
                                        VtnServiceJsonConsts.LIST);
                        if (responseJson.get(VtnServiceJsonConsts.DOMAINS).isJsonArray()) {
-                               JsonArray responseArray = responseJson.get(
+                               final JsonArray responseArray = responseJson.get(
                                                VtnServiceJsonConsts.DOMAINS).getAsJsonArray();
 
                                responseJson = getResponseJsonArrayPhysical(requestBody,
-                                               requestProcessor, responseGenerator,
-                                               responseArray, VtnServiceJsonConsts.DOMAINS,
+                                               requestProcessor, responseGenerator, responseArray,
+                                               VtnServiceJsonConsts.DOMAINS,
                                                VtnServiceJsonConsts.DOMAINID,
                                                IpcRequestPacketEnum.KT_CTR_DOMAIN_GET,
-                                               uriParameterList,VtnServiceIpcConsts.GET_DOMAIN_RESPONSE);
+                                               uriParameterList,
+                                               VtnServiceIpcConsts.GET_DOMAIN_RESPONSE);
                        }
                        setInfo(responseJson);
                        LOG.debug("Response object created successfully");
                        LOG.debug("Complete Ipc framework call");
                } catch (final VtnServiceException e) {
                        getExceptionHandler()
-                       .raise(Thread.currentThread().getStackTrace()[1]
-                                       .getClassName()
-                                       + VtnServiceConsts.HYPHEN
-                                       + Thread.currentThread().getStackTrace()[1]
-                                                       .getMethodName(),
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR
-                                                       .getErrorMessage(), e);
+                                                                       .getErrorMessage(), e);
                        throw e;
                } finally {
                        if (status == ClientSession.RESP_FATAL) {
@@ -151,7 +155,8 @@ public class DomainsResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int post(final JsonObject requestBody) throws VtnServiceException {
+       public final int post(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts DomainsResource#post()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -170,18 +175,18 @@ public class DomainsResource extends AbstractResource {
                                        getUriParameters(requestBody));
                        LOG.debug("Request packet created successfully");
                        status = requestProcessor.processIpcRequest();
-                       LOG.debug("Request packet processed with status:"+status);
+                       LOG.debug("Request packet processed with status:" + status);
                        LOG.debug("Complete Ipc framework call");
                } catch (final VtnServiceException e) {
                        getExceptionHandler()
-                       .raise(Thread.currentThread().getStackTrace()[1]
-                                       .getClassName()
-                                       + VtnServiceConsts.HYPHEN
-                                       + Thread.currentThread().getStackTrace()[1]
-                                                       .getMethodName(),
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR
-                                                       .getErrorMessage(), e);
+                                                                       .getErrorMessage(), e);
                        throw e;
                } finally {
                        if (status == ClientSession.RESP_FATAL) {
index 1a66d5888f6a3c8709d616b4a9b0daf364ed004d..55f614395a205bee6f17585b2075156a2e67355e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -28,6 +28,7 @@ import org.opendaylight.vtn.javaapi.ipc.enums.IpcRequestPacketEnum;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum.UncResultCode;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncOperationEnum;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncOption2Enum;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncUPPLEnums;
 import org.opendaylight.vtn.javaapi.resources.AbstractResource;
@@ -38,6 +39,9 @@ import org.opendaylight.vtn.javaapi.validation.physical.LinkResourceValidator;
  */
 @UNCVtnService(path = "/controllers/{controller_id}/links")
 public class LinksResource extends AbstractResource {
+       /**
+        * Logger for debugging purpose .
+        */
        private static final Logger LOG = Logger.getLogger(LinksResource.class
                        .getName());
        /** The controller Id. */
@@ -56,21 +60,23 @@ public class LinksResource extends AbstractResource {
        /**
         * @return the controllerId
         */
-       public String getControllerId() {
+       public final String getControllerId() {
                return controllerId;
        }
 
        /**
-        * Implementation of get method of Link API
+        * Implementation of get method of Link API.
         * 
         * @param requestBody
         *            the request Json object
         * 
         * @return Error code
         * @throws VtnServiceException
+        *             , in case of error .
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts LinksResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -88,25 +94,36 @@ public class LinksResource extends AbstractResource {
                        requestProcessor.createIpcRequestPacket(
                                        IpcRequestPacketEnum.KT_LINK_GET, requestBody,
                                        uriParameterList);
-                       getModifiedRequestPacket(requestBody, requestProcessor);
-                       LOG.debug("Request packet created successfully");
-                       status = requestProcessor.processIpcRequest();
-                       LOG.debug("Request packet processed with status:" + status);
-                       final IpcPhysicalResponseFactory responseGenerator = new IpcPhysicalResponseFactory();
-                       JsonObject responseJson = responseGenerator.getLinkResponse(
-                                       requestProcessor.getIpcResponsePacket(), requestBody,
-                                       VtnServiceJsonConsts.LIST);
-                       if (responseJson.get(VtnServiceJsonConsts.LINKS).isJsonArray()) {
-                               JsonArray responseArray = responseJson.get(
-                                               VtnServiceJsonConsts.LINKS).getAsJsonArray();
-                               responseJson = getResponseJsonArrayPhysical(requestBody,
-                                               requestProcessor, responseGenerator, responseArray,
-                                               VtnServiceJsonConsts.LINKS,
-                                               VtnServiceJsonConsts.LINKNAME,
-                                               IpcRequestPacketEnum.KT_LINK_GET, uriParameterList,
-                                               VtnServiceIpcConsts.GET_LINK_RESPONSE);
+                       if (!requestBody.has(VtnServiceJsonConsts.LINKNAME)) {
+                               getModifiedRequestPacket(requestBody, requestProcessor);
+                               LOG.debug("Request packet created successfully");
+                               status = requestProcessor.processIpcRequest();
+                               LOG.debug("Request packet processed with status:" + status);
+                               final IpcPhysicalResponseFactory responseGenerator = new IpcPhysicalResponseFactory();
+                               JsonObject responseJson = responseGenerator.getLinkResponse(
+                                               requestProcessor.getIpcResponsePacket(), requestBody);
+                               if (responseJson.get(VtnServiceJsonConsts.LINKS).isJsonArray()) {
+                                       final JsonArray responseArray = responseJson.get(
+                                                       VtnServiceJsonConsts.LINKS).getAsJsonArray();
+                                       responseJson = getResponseJsonArrayPhysical(requestBody,
+                                                       requestProcessor, responseGenerator, responseArray,
+                                                       VtnServiceJsonConsts.LINKS,
+                                                       VtnServiceJsonConsts.LINKNAME,
+                                                       IpcRequestPacketEnum.KT_LINK_GET, uriParameterList,
+                                                       VtnServiceIpcConsts.GET_LINK_RESPONSE);
+                               }
+                               setInfo(responseJson);
+                       } else {
+                               requestProcessor.getRequestPacket().setOperation(
+                                               IpcDataUnitWrapper
+                                                               .setIpcUint32Value(UncOperationEnum.UNC_OP_READ
+                                                                               .ordinal()));
+                               status = requestProcessor.processIpcRequest();
+                               LOG.debug("Request packet processed with status:" + status);
+                               final IpcPhysicalResponseFactory responseGenerator = new IpcPhysicalResponseFactory();
+                               setInfo(responseGenerator.getLinkResponse(
+                                               requestProcessor.getIpcResponsePacket(), requestBody));
                        }
-                       setInfo(responseJson);
                        LOG.debug("Response object created successfully");
                        LOG.debug("Complete Ipc framework call");
                } catch (final VtnServiceException e) {
@@ -136,43 +153,57 @@ public class LinksResource extends AbstractResource {
                return status;
        }
 
+       /**
+        * @param requestBody
+        *            , for handling request.
+        * @param requestProcessor
+        *            , for processing the request .
+        */
        private void getModifiedRequestPacket(final JsonObject requestBody,
-                       IpcRequestProcessor requestProcessor) {
-                       if ((requestBody.has(VtnServiceJsonConsts.SWITCH1ID)
-                                       && requestBody.has(VtnServiceJsonConsts.SWITCH2ID)) || requestBody.has(VtnServiceJsonConsts.INDEX)) {
-                               requestProcessor
-                                               .getRequestPacket()
-                                               .setOption2(
-                                                               IpcDataUnitWrapper
-                                                                               .setIpcUint32Value(UncOption2Enum.UNC_OPT2_MATCH_BOTH_SWITCH
-                                                                                               .ordinal()));
-                       } else if (requestBody.has(VtnServiceJsonConsts.SWITCH1ID)) {
-                               requestProcessor
-                                               .getRequestPacket()
-                                               .setOption2(
-                                                               IpcDataUnitWrapper
-                                                                               .setIpcUint32Value(UncOption2Enum.UNC_OPT2_MATCH_SWITCH1
-                                                                                               .ordinal()));
-                       } else if (requestBody.has(VtnServiceJsonConsts.SWITCH2ID)) {
-                               requestProcessor
-                                               .getRequestPacket()
-                                               .setOption2(
-                                                               IpcDataUnitWrapper
-                                                                               .setIpcUint32Value(UncOption2Enum.UNC_OPT2_MATCH_SWITCH2
-                                                                                               .ordinal()));
-                       }
+                       final IpcRequestProcessor requestProcessor) {
+               if ((requestBody.has(VtnServiceJsonConsts.SWITCH1ID) && requestBody
+                               .has(VtnServiceJsonConsts.SWITCH2ID))
+                               || requestBody.has(VtnServiceJsonConsts.INDEX)) {
+                       requestProcessor
+                                       .getRequestPacket()
+                                       .setOption2(
+                                                       IpcDataUnitWrapper
+                                                                       .setIpcUint32Value(UncOption2Enum.UNC_OPT2_MATCH_BOTH_SWITCH
+                                                                                       .ordinal()));
+               } else if (requestBody.has(VtnServiceJsonConsts.SWITCH1ID)) {
+                       requestProcessor
+                                       .getRequestPacket()
+                                       .setOption2(
+                                                       IpcDataUnitWrapper
+                                                                       .setIpcUint32Value(UncOption2Enum.UNC_OPT2_MATCH_SWITCH1
+                                                                                       .ordinal()));
+               } else if (requestBody.has(VtnServiceJsonConsts.SWITCH2ID)) {
+                       requestProcessor
+                                       .getRequestPacket()
+                                       .setOption2(
+                                                       IpcDataUnitWrapper
+                                                                       .setIpcUint32Value(UncOption2Enum.UNC_OPT2_MATCH_SWITCH2
+                                                                                       .ordinal()));
+               }
        }
 
        /**
-        * Add URI parameters to list
+        * Add URI parameters to list.
         * 
-        * @return parameter list
+        * @param requestBody
+        *            , to handle the request .
+        * @return List , containing all URI paramters .
         */
        private List<String> getUriParameters(final JsonObject requestBody) {
                LOG.trace("Starts LinksResource#getUriParameters()");
                final List<String> uriParameters = new ArrayList<String>();
                uriParameters.add(controllerId);
-               if (requestBody != null && requestBody.has(VtnServiceJsonConsts.INDEX)) {
+               if (requestBody != null
+                               && requestBody.has(VtnServiceJsonConsts.LINKNAME)) {
+                       uriParameters.add(requestBody.get(VtnServiceJsonConsts.LINKNAME)
+                                       .getAsString());
+               } else if (requestBody != null
+                               && requestBody.has(VtnServiceJsonConsts.INDEX)) {
                        uriParameters.add(requestBody.get(VtnServiceJsonConsts.INDEX)
                                        .getAsString());
                }
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/physical/SwitchPortResource.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/physical/SwitchPortResource.java
deleted file mode 100644 (file)
index dd0fc3b..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- * Copyright (c) 2012-2013 NEC Corporation
- * All rights reserved.
- * 
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this
- * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.vtn.javaapi.resources.physical;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import com.google.gson.JsonNull;
-import com.google.gson.JsonObject;
-import org.opendaylight.vtn.core.ipc.ClientSession;
-import org.opendaylight.vtn.core.util.Logger;
-import org.opendaylight.vtn.javaapi.annotation.UNCField;
-import org.opendaylight.vtn.javaapi.annotation.UNCVtnService;
-import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
-import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
-import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
-import org.opendaylight.vtn.javaapi.ipc.IpcRequestProcessor;
-import org.opendaylight.vtn.javaapi.ipc.conversion.IpcPhysicalResponseFactory;
-import org.opendaylight.vtn.javaapi.ipc.enums.IpcRequestPacketEnum;
-import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum;
-import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum.UncResultCode;
-import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
-import org.opendaylight.vtn.javaapi.ipc.enums.UncUPPLEnums;
-import org.opendaylight.vtn.javaapi.resources.AbstractResource;
-import org.opendaylight.vtn.javaapi.validation.physical.SwitchPortResourceValidator;
-
-@UNCVtnService(path = "/controllers/{controller_id}/switches/{switch_id}/ports/{port_name}")
-public class SwitchPortResource extends AbstractResource {
-       private static final Logger LOG = Logger.getLogger(SwitchPortResource.class
-                       .getName());
-
-       /** The controller Id. */
-       @UNCField("controller_id")
-       private String controllerId;
-       /** The Switch Id */
-       @UNCField("switch_id")
-       private String switchId;
-       /** The Switch Id */
-       @UNCField("port_name")
-       private String portName;
-
-       /**
-        * Instantiates a new Port Resource.
-        */
-       public SwitchPortResource() {
-               LOG.trace("Start SwitchPortResource#SwitchPortResource()");
-               setValidator(new SwitchPortResourceValidator(this));
-               LOG.trace("Completed SwitchPortResource#SwitchPortResource()");
-       }
-
-       /**
-        * Get method for getting switch port details.
-        */
-       @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
-               LOG.trace("Starts SwitchPortResource#get()");
-               ClientSession session = null;
-               IpcRequestProcessor requestProcessor = null;
-               int status = ClientSession.RESP_FATAL;
-               try {
-                       LOG.debug("Start Ipc framework call");
-                       session = getConnPool().getSession(UncUPPLEnums.UPPL_IPC_CHN_NAME,
-                                       UncUPPLEnums.UPPL_IPC_SVC_NAME,
-                                       UncUPPLEnums.ServiceID.UPPL_SVC_READREQ.ordinal(),
-                                       getExceptionHandler());
-                       LOG.debug("Session created successfully");
-                       requestProcessor = new IpcRequestProcessor(session, getSessionID(),
-                                       getConfigID(), getExceptionHandler());
-                       requestProcessor.createIpcRequestPacket(
-                                       IpcRequestPacketEnum.KT_PORT_GET, requestBody,
-                                       getUriParameters());
-                       LOG.debug("Request Packet for 1st call created successfully");
-                       status = requestProcessor.processIpcRequest();
-                       LOG.debug("Request packet 1st call processed with status:"+status);
-                       if (status == ClientSession.RESP_FATAL) {
-                               throw new VtnServiceException(
-                                               Thread.currentThread().getStackTrace()[1]
-                                                               .getClassName()
-                                                               + VtnServiceConsts.HYPHEN
-                                                               + Thread.currentThread().getStackTrace()[1]
-                                                                               .getMethodName(),
-                                               UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
-                                               UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorMessage());
-                       }
-                       JsonObject root = null;
-                       final IpcPhysicalResponseFactory responseGenerator = new IpcPhysicalResponseFactory();
-                       root = responseGenerator.getSwitchPortResponse(
-                                       requestProcessor.getIpcResponsePacket(), requestBody,
-                                       VtnServiceJsonConsts.SHOW);
-                       if(!(root.get(VtnServiceJsonConsts.PORT) instanceof JsonNull)){
-                               requestProcessor.setServiceInfo(UncUPPLEnums.UPPL_IPC_SVC_NAME,
-                                               UncUPPLEnums.ServiceID.UPPL_SVC_READREQ.ordinal());
-                               requestProcessor.createIpcRequestPacket(
-                                               IpcRequestPacketEnum.KT_PORT_GET_MEMBER, requestBody,
-                                               getUriParameters());
-                               LOG.debug("Request Packet 2nd call created successfully");
-                               status = requestProcessor.processIpcRequest();
-                               LOG.debug("Request packet 2nd call processed with status:"+status);
-                               if (status == ClientSession.RESP_FATAL) {
-                                       throw new VtnServiceException(
-                                                       Thread.currentThread().getStackTrace()[1]
-                                                                       .getClassName()
-                                                                       + VtnServiceConsts.HYPHEN
-                                                                       + Thread.currentThread().getStackTrace()[1]
-                                                                                       .getMethodName(),
-                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
-                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorMessage());
-                               }
-                               root = responseGenerator.getSwitchPortMemberResponse(
-                                               requestProcessor.getIpcResponsePacket(), root,
-                                               VtnServiceJsonConsts.SHOW);
-                       }
-                       setInfo(root);
-                       LOG.debug("Response object created successfully");
-                       LOG.debug("Complete Ipc framework call");
-               }
-               catch (final VtnServiceException e) {
-                       getExceptionHandler()
-                                       .raise(Thread.currentThread().getStackTrace()[1]
-                                                       .getClassName()
-                                                       + VtnServiceConsts.HYPHEN
-                                                       + Thread.currentThread().getStackTrace()[1]
-                                                                       .getMethodName(),
-                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
-                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR
-                                                                       .getErrorMessage(), e);
-                       throw e;
-               } finally {
-                       if (status == ClientSession.RESP_FATAL) {
-                               if (null != requestProcessor
-                                               && null != requestProcessor.getErrorJson()) {
-                                       setInfo(requestProcessor.getErrorJson());
-                               } else {
-                                       createErrorInfo(UncCommonEnum.UncResultCode.UNC_SERVER_ERROR
-                                                       .getValue());
-                               }
-                               status = UncResultCode.UNC_SERVER_ERROR.getValue();
-                       }
-                       getConnPool().destroySession(session);
-               }
-               LOG.trace("Complete SwitchPortResource#get()");
-               return status;
-       }
-
-       /**
-        * This method will add all the uri parameters to the parameter list
-        * 
-        * @return uriparameters
-        */
-       private List<String> getUriParameters() {
-               LOG.trace("Starts SwitchPortResource#getUriParameters()");
-               final List<String> uriParameters = new ArrayList<String>();
-               uriParameters.add(controllerId);
-               uriParameters.add(switchId);
-               uriParameters.add(portName);
-               LOG.trace("Complete SwitchPortResource#getUriParameters()");
-               return uriParameters;
-       }
-
-       /**
-        * @return the controllerId
-        */
-       public String getControllerId() {
-               return controllerId;
-       }
-
-       /**
-        * @return the Switch Id
-        */
-       public String getSwitchId() {
-               return switchId;
-       }
-
-       /**
-        * @return the Port Name
-        */
-       public String getPortName() {
-               return portName;
-       }
-}
index 4736ba02d5d384a578e18234882e591a438ce805..daf7e615f6faaa50914c53d996a234f16ddc1b5f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -14,6 +14,7 @@ import java.util.List;
 import com.google.gson.JsonArray;
 import com.google.gson.JsonObject;
 import org.opendaylight.vtn.core.ipc.ClientSession;
+import org.opendaylight.vtn.core.ipc.IpcStruct;
 import org.opendaylight.vtn.core.util.Logger;
 import org.opendaylight.vtn.javaapi.annotation.UNCField;
 import org.opendaylight.vtn.javaapi.annotation.UNCVtnService;
@@ -29,20 +30,29 @@ import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum.UncResultCode;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncOperationEnum;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncOption1Enum;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncPhysicalStructIndexEnum;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncStructEnum;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncStructIndexEnum;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncUPPLEnums;
 import org.opendaylight.vtn.javaapi.resources.AbstractResource;
 import org.opendaylight.vtn.javaapi.validation.physical.SwitchPortResourceValidator;
 
+/**
+ *
+ */
 @UNCVtnService(path = "/controllers/{controller_id}/switches/{switch_id}/ports")
 public class SwitchPortsResource extends AbstractResource {
-
+       /**
+ *
+ */
        private static final Logger LOG = Logger
                        .getLogger(SwitchPortsResource.class.getName());
 
        /** The controller Id. */
        @UNCField("controller_id")
        private String controllerId;
-       /** The Switch Id */
+       /** The Switch Id. */
        @UNCField("switch_id")
        private String switchId;
 
@@ -57,13 +67,21 @@ public class SwitchPortsResource extends AbstractResource {
 
        /**
         * Get Switch Port list information by calling get API of SwitchPorts
-        * resources
+        * resources.
+        * 
+        * @param requestBody
+        *            , handles request Json.
+        * @throws VtnServiceException
+        *             , In case any Exception is thrown.
+        * @return result code ,as an integer for status of opetration
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts SwitchPortsResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
+               JsonObject root = null;
                int status = ClientSession.RESP_FATAL;
                try {
                        LOG.debug("Start Ipc framework call");
@@ -77,52 +95,126 @@ public class SwitchPortsResource extends AbstractResource {
                        requestProcessor.createIpcRequestPacket(
                                        IpcRequestPacketEnum.KT_PORT_GET, requestBody,
                                        getUriParameters(requestBody));
-                       String opType = VtnServiceJsonConsts.NORMAL;
-                       if (requestBody.has(VtnServiceJsonConsts.OP)) {
-                               opType = requestBody.get(VtnServiceJsonConsts.OP).getAsString();
-                       }
+
                        LOG.debug("Request Packet 1st call created successfully");
-                       status = requestProcessor.processIpcRequest();
-                       LOG.debug("Request packet 1st call processed with status:"+status);
-                       if (status == ClientSession.RESP_FATAL) {
-                               throw new VtnServiceException(
-                                               Thread.currentThread().getStackTrace()[1]
-                                                               .getClassName()
-                                                               + VtnServiceConsts.HYPHEN
-                                                               + Thread.currentThread().getStackTrace()[1]
-                                                                               .getMethodName(),
-                                               UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
-                                               UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorMessage());
-                       }
-                       /*
-                        * get type (show or list) will be required to resolve root json
-                        * name here it will be Ports for list
-                        */
-                       JsonObject root = null;
+
                        final IpcPhysicalResponseFactory responseGenerator = new IpcPhysicalResponseFactory();
-                       final List<String> uriParameterList = getUriParameters(requestBody);
-                       if (opType.equalsIgnoreCase(VtnServiceJsonConsts.COUNT)
-                                       || opType.equalsIgnoreCase(VtnServiceJsonConsts.NORMAL)) {
+                       JsonArray switchPortArray = null;
+            if (requestBody.has(VtnServiceJsonConsts.OP)
+                    && requestBody.get(VtnServiceJsonConsts.OP).getAsString()
+                            .equalsIgnoreCase(VtnServiceJsonConsts.DETAIL)) {
+                requestProcessor
+                        .getRequestPacket()
+                        .setOption1(
+                                IpcDataUnitWrapper
+                                        .setIpcUint32Value(UncOption1Enum.UNC_OPT1_DETAIL
+                                                .ordinal()));
+            }
+                       if (!requestBody.has(VtnServiceJsonConsts.PORTNAME)) {
+
+                               if (requestBody.has(VtnServiceJsonConsts.PORT_ID)) {
+                                       final IpcStruct valPortStruct = new IpcStruct(
+                                                       UncStructEnum.ValPort.getValue());
+                                       valPortStruct
+                                                       .set(VtnServiceIpcConsts.VALID,
+                                                                       UncPhysicalStructIndexEnum.UpplValPortIndex.kIdxPortNumber
+                                                                                       .ordinal(),
+                                                                       IpcDataUnitWrapper
+                                                                                       .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
+                                                                                                       .ordinal()));
+
+                                       valPortStruct.set(VtnServiceIpcConsts.PORT_NUMBER,
+                                                       IpcDataUnitWrapper.setIpcUint32Value(requestBody
+                                                                       .get(VtnServiceJsonConsts.PORT_ID)
+                                                                       .getAsInt()));
+
+                                       final IpcStruct valPortStStruct = new IpcStruct(
+                                                       UncStructEnum.ValPortSt.getValue());
+                                       valPortStStruct
+                                                       .set(VtnServiceIpcConsts.VALID,
+                                                                       UncPhysicalStructIndexEnum.UpplValPortStIndex.kIdxPortSt
+                                                                                       .ordinal(),
+                                                                       IpcDataUnitWrapper
+                                                                                       .setIpcUint8Value(UncStructIndexEnum.Valid.UNC_VF_VALID
+                                                                                                       .ordinal()));
+
+                                       valPortStStruct.set(VtnServiceJsonConsts.PORT,
+                                                       valPortStruct);
+
+                                       requestProcessor.getRequestPacket().setValStruct(
+                                                       valPortStStruct);
+                               }
+                               status = requestProcessor.processIpcRequest();
+                               LOG.debug("Request packet 1st call processed with status:"
+                                               + status);
+                               if (status == ClientSession.RESP_FATAL) {
+                                       throw new VtnServiceException(
+                                                       Thread.currentThread().getStackTrace()[1]
+                                                                       .getClassName()
+                                                                       + VtnServiceConsts.HYPHEN
+                                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                                       .getMethodName(),
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR
+                                                                       .getErrorMessage());
+                               }
+
                                root = responseGenerator.getSwitchPortResponse(
-                                               requestProcessor.getIpcResponsePacket(), requestBody,
-                                               VtnServiceJsonConsts.LIST);
+                                               requestProcessor.getIpcResponsePacket(), requestBody);
+
+                               if (root.get(VtnServiceJsonConsts.PORTS).isJsonArray()) {
+                                       switchPortArray = root
+                                                       .getAsJsonArray(VtnServiceJsonConsts.PORTS);
+
+                                       root = getResponseJsonArrayPhysical(
+                                                       requestBody,
+                                                       requestProcessor,
+                                                       responseGenerator,
+                                                       switchPortArray,
+                                                       VtnServiceJsonConsts.PORTS,
+                                                       VtnServiceJsonConsts.PORTNAME,
+                                                       IpcRequestPacketEnum.KT_PORT_GET,
+                                                       getUriParameters(requestBody),
+                                                       VtnServiceIpcConsts.GET_SWITCH_PORT_INTERFACE_RESPONSE);
+                               }
+
                        } else {
+                               requestProcessor.getRequestPacket().setOperation(
+                                               IpcDataUnitWrapper
+                                                               .setIpcUint32Value(UncOperationEnum.UNC_OP_READ
+                                                                               .ordinal()));
+                               status = requestProcessor.processIpcRequest();
+                               LOG.debug("Request packet 1st call processed with status:"
+                                               + status);
+                               if (status == ClientSession.RESP_FATAL) {
+                                       throw new VtnServiceException(
+                                                       Thread.currentThread().getStackTrace()[1]
+                                                                       .getClassName()
+                                                                       + VtnServiceConsts.HYPHEN
+                                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                                       .getMethodName(),
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
+                                                       UncJavaAPIErrorCode.IPC_SERVER_ERROR
+                                                                       .getErrorMessage());
+                               }
+
                                root = responseGenerator.getSwitchPortResponse(
-                                               requestProcessor.getIpcResponsePacket(), requestBody,
-                                               VtnServiceJsonConsts.LIST);
-                               JsonArray switchPortArray = root
-                                               .getAsJsonArray(VtnServiceJsonConsts.PORTS);
-                               JsonArray switchPortArrayRes = new JsonArray();
-                               root = getResponseJsonArrayPhysical(requestBody,
-                        requestProcessor, responseGenerator,
-                        switchPortArray, VtnServiceJsonConsts.PORTS,
-                        VtnServiceJsonConsts.PORTNAME,
-                        IpcRequestPacketEnum.KT_PORT_GET,
-                        uriParameterList,VtnServiceIpcConsts.GET_SWITCH_PORT_INTERFACE_RESPONSE);
+                                               requestProcessor.getIpcResponsePacket(), requestBody);
+                       }
+
+                       String opType = VtnServiceJsonConsts.NORMAL;
+                       if (requestBody.has(VtnServiceJsonConsts.OP)) {
+                               opType = requestBody.get(VtnServiceJsonConsts.OP).getAsString();
+                       }
+
+                       if (opType.equalsIgnoreCase(VtnServiceJsonConsts.DETAIL)
+                                       || opType.equalsIgnoreCase(VtnServiceJsonConsts.INFO)) {
                                requestProcessor.setServiceInfo(UncUPPLEnums.UPPL_IPC_SVC_NAME,
                                                UncUPPLEnums.ServiceID.UPPL_SVC_READREQ.ordinal());
+                               switchPortArray = root
+                                               .getAsJsonArray(VtnServiceJsonConsts.PORTS);
                                for (int index = 0; index < switchPortArray.size(); index++) {
-                                       JsonObject switchPort = (JsonObject) switchPortArray
+                                       final JsonObject switchPort = (JsonObject) switchPortArray
                                                        .get(index);
                                        requestBody.addProperty(VtnServiceJsonConsts.INDEX,
                                                        switchPort.get(VtnServiceJsonConsts.PORTNAME)
@@ -138,7 +230,8 @@ public class SwitchPortsResource extends AbstractResource {
                                                                                                        .ordinal()));
                                        LOG.debug("Request Packet for 2nd created successfully");
                                        status = requestProcessor.processIpcRequest();
-                                       LOG.debug("Request packet 2nd call processed with status:"+status);
+                                       LOG.debug("Request packet 2nd call processed with status:"
+                                                       + status);
                                        if (status == ClientSession.RESP_FATAL) {
                                                throw new VtnServiceException(
                                                                Thread.currentThread().getStackTrace()[1]
@@ -152,12 +245,10 @@ public class SwitchPortsResource extends AbstractResource {
                                                                UncJavaAPIErrorCode.IPC_SERVER_ERROR
                                                                                .getErrorMessage());
                                        }
-                                       switchPortArrayRes.add(responseGenerator
-                                                       .getSwitchPortMemberResponse(
-                                                                       requestProcessor.getIpcResponsePacket(),
-                                                                       switchPort, VtnServiceJsonConsts.LIST));
+                                       responseGenerator.getSwitchPortMemberResponse(
+                                                       requestProcessor.getIpcResponsePacket(),
+                                                       switchPort, VtnServiceJsonConsts.LIST);
                                }
-                               root.add(VtnServiceJsonConsts.PORTS, switchPortArrayRes);
                        }
                        setInfo(root);
                        LOG.debug("Response object created successfully");
@@ -191,15 +282,23 @@ public class SwitchPortsResource extends AbstractResource {
        }
 
        /**
-        * Add URI parameters to list
-        * @return
+        * Add URI parameters to list.
+        * 
+        * @param requestBody
+        *            , handles request Json
+        * @return List , as list of strings consisting all URI paramters.
         */
-       private List<String> getUriParameters(JsonObject requestBody) {
+       private List<String> getUriParameters(final JsonObject requestBody) {
                LOG.trace("Starts SwitchPortsResource#getUriParameters()");
                final List<String> uriParameters = new ArrayList<String>();
                uriParameters.add(controllerId);
                uriParameters.add(switchId);
-               if (requestBody != null && requestBody.has(VtnServiceJsonConsts.INDEX)) {
+               if (requestBody != null
+                               && requestBody.has(VtnServiceJsonConsts.PORTNAME)) {
+                       uriParameters.add(requestBody.get(VtnServiceJsonConsts.PORTNAME)
+                                       .getAsString());
+               } else if (requestBody != null
+                               && requestBody.has(VtnServiceJsonConsts.INDEX)) {
                        uriParameters.add(requestBody.get(VtnServiceJsonConsts.INDEX)
                                        .getAsString());
                }
@@ -210,14 +309,14 @@ public class SwitchPortsResource extends AbstractResource {
        /**
         * @return the controllerId
         */
-       public String getControllerId() {
+       public final String getControllerId() {
                return controllerId;
        }
 
        /**
         * @return the controllerId
         */
-       public String getSwitchId() {
+       public final String getSwitchId() {
                return switchId;
        }
 
index fce525d3fa932324c22341dbe55e4096235433cc..2d9bc260d3e7c11846359040ccdcc37851764e68 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -13,6 +13,7 @@ import java.util.List;
 
 import com.google.gson.JsonObject;
 import org.opendaylight.vtn.core.ipc.ClientSession;
+import org.opendaylight.vtn.core.ipc.IpcUint32;
 import org.opendaylight.vtn.core.util.Logger;
 import org.opendaylight.vtn.javaapi.annotation.UNCField;
 import org.opendaylight.vtn.javaapi.annotation.UNCVtnService;
@@ -25,6 +26,8 @@ import org.opendaylight.vtn.javaapi.ipc.enums.IpcRequestPacketEnum;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncCommonEnum.UncResultCode;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncOperationEnum;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncOption1Enum;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncUPPLEnums;
 import org.opendaylight.vtn.javaapi.resources.AbstractResource;
 import org.opendaylight.vtn.javaapi.resources.logical.VtnsResource;
@@ -61,7 +64,7 @@ public class SwitchResource extends AbstractResource {
         * 
         * @return the controller Id
         */
-       public String getControllerId() {
+       public final String getControllerId() {
                return controllerId;
        }
 
@@ -70,7 +73,7 @@ public class SwitchResource extends AbstractResource {
         * 
         * @return the Switch Id
         */
-       public String getSwitchId() {
+       public final String getSwitchId() {
                return switchId;
        }
 
@@ -83,7 +86,8 @@ public class SwitchResource extends AbstractResource {
         * @throws VtnServiceException
         */
        @Override
-       public int get(final JsonObject requestBody) throws VtnServiceException {
+       public final int get(final JsonObject requestBody)
+                       throws VtnServiceException {
                LOG.trace("Starts SwitchResource#get()");
                ClientSession session = null;
                IpcRequestProcessor requestProcessor = null;
@@ -100,9 +104,21 @@ public class SwitchResource extends AbstractResource {
                        requestProcessor.createIpcRequestPacket(
                                        IpcRequestPacketEnum.KT_SWITCH_GET, requestBody,
                                        getUriParameters());
+                       
+                       requestProcessor.getRequestPacket().setOperation(
+                                       new IpcUint32(UncOperationEnum.UNC_OP_READ.ordinal()));
+                       
+                       if (requestBody.has(VtnServiceJsonConsts.OP)
+                                       && requestBody.get(VtnServiceJsonConsts.OP).getAsString()
+                                                       .equalsIgnoreCase(VtnServiceJsonConsts.DETAIL)) {
+                               requestProcessor.getRequestPacket()
+                                               .setOption1(
+                                                               new IpcUint32(UncOption1Enum.UNC_OPT1_DETAIL
+                                                                               .ordinal()));
+                       }
                        LOG.debug("Request packet created successfully");
                        status = requestProcessor.processIpcRequest();
-                       LOG.debug("Request packet processed with status:"+status);
+                       LOG.debug("Request packet processed with status:" + status);
                        final IpcPhysicalResponseFactory responseGenerator = new IpcPhysicalResponseFactory();
                        setInfo(responseGenerator.getSwitchResponse(
                                        requestProcessor.getIpcResponsePacket(), requestBody,
index 72e5a73a00ca2d2beb4338593ed0824095000a5d..ff0755acc313f7d36f65f3960702f96334481994 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -96,38 +96,35 @@ public class SwitchesResource extends AbstractResource {
                                        uriParameterList);
                        LOG.debug("Request packet created successfully");
                        status = requestProcessor.processIpcRequest();
-                       LOG.debug("Request packet processed with status:"+status);
+                       LOG.debug("Request packet processed with status:" + status);
                        final IpcPhysicalResponseFactory responseGenerator = new IpcPhysicalResponseFactory();
-                       /*setInfo(responseGenerator.getSwitchResponse(
-                                       requestProcessor.getIpcResponsePacket(), requestBody,
-                                       VtnServiceJsonConsts.LIST));*/
                        JsonObject responseJson = responseGenerator.getSwitchResponse(
                                        requestProcessor.getIpcResponsePacket(), requestBody,
                                        VtnServiceJsonConsts.LIST);
                        if (responseJson.get(VtnServiceJsonConsts.SWITCHES).isJsonArray()) {
-                               JsonArray responseArray = responseJson.get(
+                               final JsonArray responseArray = responseJson.get(
                                                VtnServiceJsonConsts.SWITCHES).getAsJsonArray();
 
                                responseJson = getResponseJsonArrayPhysical(requestBody,
-                                               requestProcessor, responseGenerator,
-                                               responseArray, VtnServiceJsonConsts.SWITCHES,
+                                               requestProcessor, responseGenerator, responseArray,
+                                               VtnServiceJsonConsts.SWITCHES,
                                                VtnServiceJsonConsts.SWITCHID,
-                                               IpcRequestPacketEnum.KT_SWITCH_GET,
-                                               uriParameterList,VtnServiceIpcConsts.GET_SWITCH_RESPONSE);
+                                               IpcRequestPacketEnum.KT_SWITCH_GET, uriParameterList,
+                                               VtnServiceIpcConsts.GET_SWITCH_RESPONSE);
                        }
                        setInfo(responseJson);
                        LOG.debug("Response object created successfully");
                        LOG.debug("Complete Ipc framework call");
                } catch (final VtnServiceException e) {
                        getExceptionHandler()
-                       .raise(Thread.currentThread().getStackTrace()[1]
-                                       .getClassName()
-                                       + VtnServiceConsts.HYPHEN
-                                       + Thread.currentThread().getStackTrace()[1]
-                                                       .getMethodName(),
+                                       .raise(Thread.currentThread().getStackTrace()[1]
+                                                       .getClassName()
+                                                       + VtnServiceConsts.HYPHEN
+                                                       + Thread.currentThread().getStackTrace()[1]
+                                                                       .getMethodName(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR.getErrorCode(),
                                                        UncJavaAPIErrorCode.IPC_SERVER_ERROR
-                                                       .getErrorMessage(), e);
+                                                                       .getErrorMessage(), e);
                        throw e;
                } finally {
                        if (status == ClientSession.RESP_FATAL) {
@@ -148,6 +145,8 @@ public class SwitchesResource extends AbstractResource {
        /**
         * Add URI parameters to list
         * 
+        * @param requestBody
+        *            ,for handling the request.
         * @return
         */
        private List<String> getUriParameters(final JsonObject requestBody) {
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/physical/package-info.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/resources/physical/package-info.java
new file mode 100644 (file)
index 0000000..716caca
--- /dev/null
@@ -0,0 +1,14 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * Package contains Java API Resource classes for physical APIs.
+ */
+package org.opendaylight.vtn.javaapi.resources.physical;
+
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/util/VtnIniParser.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/util/VtnIniParser.java
new file mode 100644 (file)
index 0000000..c259ff7
--- /dev/null
@@ -0,0 +1,168 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vtn.javaapi.util;
+
+import java.io.BufferedReader;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
+import org.opendaylight.vtn.javaapi.init.VtnServiceInitManager;
+import org.opendaylight.vtn.javaapi.openstack.constants.VtnServiceOpenStackConsts;
+import org.opendaylight.vtn.javaapi.openstack.dbmanager.ConnectionProperties;
+
+public class VtnIniParser {
+
+       /* Logger instance */
+       private static final Logger LOG = Logger.getLogger(VtnIniParser.class
+                       .getName());
+
+       private static VtnIniParser parser = null;
+       private Pattern iniSectionPattern = Pattern
+                       .compile("\\s*\\[([^]]*)\\]\\s*");
+       private Pattern iniKeys = Pattern.compile("\\s*([^=]*)=(.*)");
+       private Map<String, Map<String, String>> iniEntriesMap = new HashMap<String, Map<String, String>>();
+
+       /**
+        * Constructor that initialize with loading of ini file
+        * 
+        * @param path
+        * @throws IOException
+        */
+       public VtnIniParser(String path) throws IOException {
+               load(path);
+       }
+
+       /**
+        * Get instance of parser
+        * 
+        * @param path
+        * @return
+        */
+       public static VtnIniParser getInstance(String path) {
+               try {
+                       if (parser == null) {
+                               parser = new VtnIniParser(path);
+                       }
+               } catch (IOException exception) {
+                       LOG.error("ERROR Occurecd in the UNCINIParser#getInstance:- "
+                                       + exception.toString());
+               }
+               return parser;
+       }
+
+       /**
+        * Load parser for ini with specified file path
+        * 
+        * @param path
+        *            - ini file path
+        * @throws IOException
+        */
+       public void load(String path) throws IOException {
+               BufferedReader br = null;
+               try {
+                       br = new BufferedReader(new FileReader(path));
+                       String row;
+                       String iniSectionStr = null;
+                       while ((row = br.readLine()) != null) {
+                               Matcher m = iniSectionPattern.matcher(row);
+                               if (m.matches()) {
+                                       iniSectionStr = m.group(1).trim();
+                               } else if (iniSectionStr != null) {
+                                       m = iniKeys.matcher(row);
+                                       if (m.matches()) {
+                                               String key = m.group(1).trim();
+                                               String value = m.group(2).trim();
+                                               Map<String, String> kv = iniEntriesMap
+                                                               .get(iniSectionStr);
+                                               if (kv == null) {
+                                                       iniEntriesMap.put(iniSectionStr,
+                                                                       kv = new HashMap<String, String>());
+                                               }
+                                               kv.put(key, value);
+                                       }
+                               }
+                       }
+               } catch (Exception e) {
+                       LOG.error("ERROR Occurecd in the UNCINIParser#load:- "
+                                       + e.toString());
+               } finally {
+                       if (br != null) {
+                               br.close();
+                       }
+               }
+       }
+
+       /**
+        * Get string values for specified key
+        * 
+        * @param section
+        * @param key
+        * @return - string value corresponding to key
+        */
+       public String getString(String section, String key) {
+               Map<String, String> kv = iniEntriesMap.get(section);
+               return kv.get(key);
+       }
+
+       /**
+        * Load Connection properties with INI file entries
+        * 
+        * @return
+        */
+       public ConnectionProperties loadConnectionProperties() {
+               final ConnectionProperties connectionProperties = new ConnectionProperties();
+
+               Map<String, String> kv = iniEntriesMap
+                               .get(VtnServiceOpenStackConsts.UNC_DB_DSN);
+
+               /**
+                * set database connection properties
+                */
+               connectionProperties.setDbDriver(VtnServiceOpenStackConsts.DB_DRIVER);
+
+               connectionProperties.setDbURL(VtnServiceOpenStackConsts.DB_URL_PREFIX
+                               + kv.get(VtnServiceOpenStackConsts.DB_IP)
+                               + VtnServiceConsts.COLON
+                               + kv.get(VtnServiceOpenStackConsts.DB_PORT)
+                               + VtnServiceConsts.SLASH
+                               + kv.get(VtnServiceOpenStackConsts.DB_NAME));
+
+               connectionProperties.setDbPassword(kv
+                               .get(VtnServiceOpenStackConsts.DB_PASSWORD));
+
+               connectionProperties.setDbUsername(kv
+                               .get(VtnServiceOpenStackConsts.DB_USER));
+
+               /**
+                * set connection pool properties
+                */
+               connectionProperties.setInitialConnections(Integer
+                               .parseInt(VtnServiceInitManager.getConfigurationMap()
+                                               .getConfigValue(
+                                                               VtnServiceOpenStackConsts.DB_INIT_CONN_SIZE)));
+
+               connectionProperties.setMaxPossibleConnections(Integer
+                               .parseInt(VtnServiceInitManager.getConfigurationMap()
+                                               .getConfigValue(
+                                                               VtnServiceOpenStackConsts.DB_MAX_CONN_SIZE)));
+
+               connectionProperties.setWaitforUsedConnections(Boolean
+                               .parseBoolean(VtnServiceInitManager.getConfigurationMap()
+                                               .getConfigValue(
+                                                               VtnServiceOpenStackConsts.DB_WAIT_CONDITION)));
+               return connectionProperties;
+       }
+
+}
index ac66d366a765091fa1e6bb49b7bcf697cacaafa0..1a766bc5e32eb06ea0bf1e248cbc1622b249286f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -16,9 +16,16 @@ import com.google.gson.JsonElement;
 import com.google.gson.JsonNull;
 import com.google.gson.JsonObject;
 import com.google.gson.JsonPrimitive;
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
+import org.opendaylight.vtn.javaapi.openstack.constants.VtnServiceOpenStackConsts;
+import org.opendaylight.vtn.javaapi.resources.AbstractResource;
 
 public class VtnServiceUtil {
 
+       private static final Logger LOG = Logger.getLogger(VtnServiceUtil.class
+                       .getName());
+
        /**
         * Check the validity of Json Object
         * 
@@ -44,11 +51,11 @@ public class VtnServiceUtil {
         */
        public static JsonObject trimParamValues(final JsonObject jsonObject) {
                // extract all the entries in Json Object
-               Set<Entry<String, JsonElement>> jsonSet = jsonObject.entrySet();
+               final Set<Entry<String, JsonElement>> jsonSet = jsonObject.entrySet();
                /*
                 * iterate the loop for each entry
                 */
-               for (Entry<String, JsonElement> entry : jsonSet) {
+               for (final Entry<String, JsonElement> entry : jsonSet) {
                        /*
                         * if entry is type of Json Object
                         */
@@ -56,24 +63,18 @@ public class VtnServiceUtil {
                                        && entry.getValue().isJsonObject()) {
                                VtnServiceUtil.trimParamValues((JsonObject) entry.getValue());
                                continue;
-                       }
-                       /*
-                        * if entry is type of Json array
-                        */
-                       else if (!(entry.getValue() instanceof JsonNull)
+                       } else if (!(entry.getValue() instanceof JsonNull)
                                        && entry.getValue().isJsonArray()) {
-                               JsonArray array = (JsonArray) entry.getValue();
+                               final JsonArray array = (JsonArray) entry.getValue();
                                for (int index = 0; index < array.size(); index++) {
-                                       VtnServiceUtil.trimParamValues(array.get(index)
-                                                       .getAsJsonObject());
-                                       continue;
+                                       if (array.get(index).isJsonObject()) {
+                                               VtnServiceUtil.trimParamValues(array.get(index)
+                                                               .getAsJsonObject());
+                                               continue;
+                                       }
                                }
                                continue;
-                       }
-                       /*
-                        * if entry is primitive type value
-                        */
-                       else if (!(entry.getValue() instanceof JsonNull)
+                       } else if (!(entry.getValue() instanceof JsonNull)
                                        && !entry.getValue().getAsString()
                                                        .equals(entry.getValue().getAsString().trim())) {
                                entry.setValue(new JsonPrimitive(entry.getValue().getAsString()
@@ -82,7 +83,7 @@ public class VtnServiceUtil {
                }
                return jsonObject;
        }
-       
+
        /**
         * Remove the parameters of given Json which contain empty string
         * 
@@ -90,43 +91,55 @@ public class VtnServiceUtil {
         *            object that require to be update
         * @return Updated Json Object
         */
-       public static JsonObject removeEmptyParamas(final JsonObject jsonObject){
+       public static JsonObject removeEmptyParamas(final JsonObject jsonObject) {
                // extract all the entries in Json Object
-               Set<Entry<String, JsonElement>> jsonSet = jsonObject.entrySet();
+               final Set<Entry<String, JsonElement>> jsonSet = jsonObject.entrySet();
                /*
                 * iterate the loop for each entry
                 */
-               for (Entry<String, JsonElement> entry : jsonSet) {
+               for (final Entry<String, JsonElement> entry : jsonSet) {
                        /*
                         * if entry is type of Json Object
                         */
                        if (!(entry.getValue() instanceof JsonNull)
                                        && entry.getValue().isJsonObject()) {
-                               VtnServiceUtil.removeEmptyParamas((JsonObject) entry.getValue());
+                               VtnServiceUtil
+                                               .removeEmptyParamas((JsonObject) entry.getValue());
                                continue;
-                       }
-                       /*
-                        * if entry is type of Json array
-                        */
-                       else if (!(entry.getValue() instanceof JsonNull)
+                       } else if (!(entry.getValue() instanceof JsonNull)
                                        && entry.getValue().isJsonArray()) {
-                               JsonArray array = (JsonArray) entry.getValue();
+                               final JsonArray array = (JsonArray) entry.getValue();
                                for (int index = 0; index < array.size(); index++) {
                                        VtnServiceUtil.removeEmptyParamas(array.get(index)
                                                        .getAsJsonObject());
                                        continue;
                                }
                                continue;
-                       }
-                       /*
-                        * if entry is primitive type value
-                        */
-                       else if (!(entry.getValue() instanceof JsonNull)
+                       } else if (!(entry.getValue() instanceof JsonNull)
                                        && entry.getValue().getAsString()
-                                                       .equals("")) {
+                                                       .equals(VtnServiceConsts.EMPTY_STRING)) {
                                jsonObject.remove(entry.getKey());
                        }
                }
                return jsonObject;
        }
+
+       /**
+        * 
+        * @param resource
+        * @return
+        */
+       public static boolean isOpenStackResurce(AbstractResource resource) {
+               LOG.trace("Start VtnServiceUtil#isOpenStackResurce()");
+               boolean status = false;
+               if (resource == null) {
+                       LOG.debug("Decision cannot be taken that request came for UNC core APIs or UNC OpenStack APIs");
+               } else if (resource.getClass().getCanonicalName()
+                               .startsWith(VtnServiceOpenStackConsts.OS_RESOURCE_PKG)) {
+                       LOG.debug("Request came for UNC OpenStack APIs");
+                       status = true;
+               }
+               LOG.trace("Complete VtnServiceUtil#isOpenStackResurce()");
+               return status;
+       }
 }
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/util/package-info.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/util/package-info.java
new file mode 100644 (file)
index 0000000..d42bfcf
--- /dev/null
@@ -0,0 +1,14 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * Package contains Java Api utility classes.
+ */
+package org.opendaylight.vtn.javaapi.util;
+
index 5f104d1c485b26021f75724076b629300dd7b9cc..7657314b4b8ccf32d6d8bf7c233a8c1adc2ec651 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -23,10 +23,7 @@ import org.opendaylight.vtn.javaapi.resources.AbstractResource;
 public class AbortCandidateConfigResourceValidator extends VtnServiceValidator {
 
        private static final Logger LOG = Logger
-                       .getLogger(AbortCandidateConfigResourceValidator.class
-                                       .getName());
-
-       final CommonValidator validator = new CommonValidator();
+                       .getLogger(AbortCandidateConfigResourceValidator.class.getName());
 
        /** The instance of AbstractResource. */
        private final AbstractResource resource;
@@ -46,15 +43,16 @@ public class AbortCandidateConfigResourceValidator extends VtnServiceValidator {
         * Validate request Json for put method of Abort Candidate Configuration API
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start AbortCandidateConfigResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of AbortCandidateConfigResourceValidator");
                boolean isValid = false;
                if (requestBody != null && VtnServiceConsts.PUT.equals(method)) {
                        isValid = validatePut(requestBody);
-               }else {
+               } else {
                        setInvalidParameter(VtnServiceConsts.INCORRECT_METHOD_INVOCATION);
                        isValid = false;
                }
@@ -99,4 +97,4 @@ public class AbortCandidateConfigResourceValidator extends VtnServiceValidator {
                LOG.trace("Complete AbortCandidateConfigResourceValidator#validatePut()");
                return isValid;
        }
-}
\ No newline at end of file
+}
index 586b5dbc76c8cf046d7ecc5d1dc9501d185d0fea..4335aa748966662ed056b99d623a0c8ca5cec686 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -39,8 +39,9 @@ public class ApiVersionResourceValidator extends VtnServiceValidator {
         * Validate request for Show API Version
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.info("No validation required for Get Api Version");
        }
 }
index 15dfc7bb88e804fd6eca080bd7ca4a433e5aad51..525e7164dee2e0607cdfd483a46ca8c4038c21ea 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -29,9 +29,6 @@ public class AutoSaveResourceValidator extends VtnServiceValidator {
        /** The the instance of AbstractResource. */
        private final AbstractResource resource;
 
-       /** The validator. */
-       final CommonValidator validator = new CommonValidator();
-
        /**
         * Instantiates a new auto save resource validator.
         * 
@@ -48,15 +45,16 @@ public class AutoSaveResourceValidator extends VtnServiceValidator {
         * Auto-save Status API
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("AutoSaveResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of AutoSaveResourceValidator");
                boolean isValid = false;
                if (requestBody != null && VtnServiceConsts.PUT.equals(method)) {
                        isValid = validatePut(requestBody);
-               }else {
+               } else {
                        setInvalidParameter(VtnServiceConsts.INCORRECT_METHOD_INVOCATION);
                        isValid = false;
                }
@@ -104,4 +102,4 @@ public class AutoSaveResourceValidator extends VtnServiceValidator {
                LOG.trace("Complete AutoSaveResourceValidator#validatePut()");
                return isValid;
        }
-}
\ No newline at end of file
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/ClearStartupConfigurationResourceValidator.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/ClearStartupConfigurationResourceValidator.java
new file mode 100644 (file)
index 0000000..e4bc06a
--- /dev/null
@@ -0,0 +1,115 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.vtn.javaapi.validation;
+
+import com.google.gson.JsonObject;
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
+import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
+import org.opendaylight.vtn.javaapi.resources.AbstractResource;
+
+/**
+ * The Class ClearStartupConfigurationResourceValidator validates request Json
+ * object for Clear Startup Configuration API.
+ */
+public class ClearStartupConfigurationResourceValidator extends
+               VtnServiceValidator {
+
+       private static final Logger LOG = Logger
+                       .getLogger(ClearStartupConfigurationResourceValidator.class
+                                       .getName());
+
+       private final CommonValidator validator = new CommonValidator();
+
+       /** The instance of AbstractResource. */
+       private final AbstractResource resource;
+
+       /**
+        * Instantiates a new ClearStartup Configuration Resource validator.
+        * 
+        * @param resource
+        *            the instance of AbstractResource
+        */
+       public ClearStartupConfigurationResourceValidator(
+                       final AbstractResource resource) {
+               this.resource = resource;
+               LOG.info(this.resource.toString());
+       }
+
+       /**
+        * Validate request Json for put method of Clear Startup Configuration API.
+        */
+       @Override
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
+               LOG.trace("Start ClearStartupConfigurationResourceValidator#validate()");
+               LOG.info("Validating request for " + method
+                               + " of ClearStartupConfigurationResourceValidator");
+               boolean isValid = false;
+               try {
+                       if (requestBody != null && VtnServiceConsts.PUT.equals(method)) {
+                               isValid = validatePut(requestBody);
+                       } else {
+                               setInvalidParameter(VtnServiceConsts.INCORRECT_METHOD_INVOCATION);
+                               isValid = false;
+                       }
+               } catch (final NumberFormatException e) {
+                       LOG.error("Inside catch:NumberFormatException");
+                       if (method.equals(VtnServiceConsts.GET)) {
+                               setInvalidParameter(validator.getInvalidParameter());
+                       }
+                       isValid = false;
+               }
+               if (!isValid) {
+                       LOG.error("Validation failed");
+                       throw new VtnServiceException(Thread.currentThread()
+                                       .getStackTrace()[1].getMethodName(),
+                                       UncJavaAPIErrorCode.VALIDATION_ERROR.getErrorCode(),
+                                       UncJavaAPIErrorCode.VALIDATION_ERROR.getErrorMessage());
+               }
+               LOG.info("Validation successful");
+               LOG.trace("Complete ClearStartupConfigurationResourceValidator#validate()");
+       }
+
+       /**
+        * Validate put request json for Clear Startup Configuration API.
+        * 
+        * @param requestBody
+        *            the request Json object
+        * @return true, if successful
+        */
+       private boolean validatePut(final JsonObject requestBody) {
+               LOG.trace("Start ClearStartupConfigurationResourceValidator#validatePut()");
+               boolean isValid = false;
+               setInvalidParameter(VtnServiceJsonConsts.STARTUP);
+               if (requestBody.has(VtnServiceJsonConsts.STARTUP)
+                               && requestBody.get(VtnServiceJsonConsts.STARTUP).isJsonObject()) {
+                       final JsonObject startup = requestBody
+                                       .getAsJsonObject(VtnServiceJsonConsts.STARTUP);
+                       setInvalidParameter(VtnServiceJsonConsts.OPERATION);
+                       if (startup.has(VtnServiceJsonConsts.OPERATION)
+                                       && startup.getAsJsonPrimitive(
+                                                       VtnServiceJsonConsts.OPERATION).getAsString() != null
+                                       && !startup
+                                                       .getAsJsonPrimitive(VtnServiceJsonConsts.OPERATION)
+                                                       .getAsString().trim().isEmpty()) {
+                               isValid = startup
+                                               .getAsJsonPrimitive(VtnServiceJsonConsts.OPERATION)
+                                               .getAsString().trim()
+                                               .equalsIgnoreCase(VtnServiceJsonConsts.CLEAR);
+                       }
+               }
+               LOG.trace("Complete ClearStartupConfigurationResourceValidator#validatePut()");
+               return isValid;
+       }
+}
index 4c819e26fecf52bcf3a5a74629f6ba4a8a057c8d..bf72620877f714a620adfd8f30f945c724a171c5 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -28,11 +28,11 @@ public class CommonValidator {
 
        private String invalidParameter = null;
 
-       public String getInvalidParameter() {
+       public final String getInvalidParameter() {
                return invalidParameter;
        }
 
-       public void setInvalidParameter(final String invalidParameter) {
+       public final void setInvalidParameter(final String invalidParameter) {
                this.invalidParameter = invalidParameter;
        }
 
@@ -43,7 +43,8 @@ public class CommonValidator {
         *            the request Json object
         * @return true, if is valid get
         */
-       public boolean isValidGet(final JsonObject requestBody, final boolean opFlag) {
+       public final boolean isValidGet(final JsonObject requestBody,
+                       final boolean opFlag) {
                LOG.trace("Start CommonValidator#isValidGet");
                boolean isValid = true;
 
@@ -82,7 +83,7 @@ public class CommonValidator {
                                if (requestBody.has(VtnServiceJsonConsts.INDEX)
                                                && requestBody.getAsJsonPrimitive(
                                                                VtnServiceJsonConsts.INDEX).getAsString() != null
-                                                               && !requestBody
+                                               && !requestBody
                                                                .getAsJsonPrimitive(VtnServiceJsonConsts.INDEX)
                                                                .getAsString().isEmpty()) {
                                        isValid = isValidMaxLengthAlphaNum(requestBody
@@ -107,7 +108,7 @@ public class CommonValidator {
         *            the request Json object
         * @return true, if is valid get for int index
         */
-       public boolean isValidGetForIntIndex(final JsonObject requestBody,
+       public final boolean isValidGetForIntIndex(final JsonObject requestBody,
                        final boolean opFlag) {
                LOG.trace("Start CommonValidator#isValidGetForIntIndex");
                boolean isValid = true;
@@ -150,8 +151,8 @@ public class CommonValidator {
                                                requestBody
                                                                .getAsJsonPrimitive(VtnServiceJsonConsts.INDEX)
                                                                .getAsString().trim(),
-                                                               VtnServiceJsonConsts.VAL_1,
-                                                               VtnServiceJsonConsts.VAL_65535);
+                                               VtnServiceJsonConsts.VAL_1,
+                                               VtnServiceJsonConsts.VAL_65535);
 
                        }
                        // validation for key: max_repitition
@@ -172,16 +173,16 @@ public class CommonValidator {
         *            the value of targetdb in the request Json object
         * @return true, if is valid request db
         */
-       public boolean isValidRequestDB(final JsonObject requestBody) {
+       public final boolean isValidRequestDB(final JsonObject requestBody) {
                LOG.trace("Start CommonValidator#isValidRequestDB");
                boolean isValid = true;
                if (requestBody.has(VtnServiceJsonConsts.TARGETDB)
                                && requestBody
-                               .getAsJsonPrimitive(VtnServiceJsonConsts.TARGETDB)
-                               .getAsString() != null
+                                               .getAsJsonPrimitive(VtnServiceJsonConsts.TARGETDB)
+                                               .getAsString() != null
                                && !requestBody
-                               .getAsJsonPrimitive(VtnServiceJsonConsts.TARGETDB)
-                               .getAsString().trim().isEmpty()) {
+                                               .getAsJsonPrimitive(VtnServiceJsonConsts.TARGETDB)
+                                               .getAsString().trim().isEmpty()) {
                        final String targetdb = requestBody
                                        .getAsJsonPrimitive(VtnServiceJsonConsts.TARGETDB)
                                        .getAsString().trim();
@@ -205,14 +206,73 @@ public class CommonValidator {
         *            the value of operation in the request Json object
         * @return true, if is valid operation
         */
-       public boolean isValidOperation(final JsonObject requestBody) {
+       public final boolean isValidOperation(final JsonObject requestBody) {
                LOG.trace("Start CommonValidator#isValidOperation");
                boolean isValid = true;
                if (requestBody.has(VtnServiceJsonConsts.OP)
                                && requestBody.getAsJsonPrimitive(VtnServiceJsonConsts.OP)
-                               .getAsString() != null
+                                               .getAsString() != null
                                && !requestBody.getAsJsonPrimitive(VtnServiceJsonConsts.OP)
-                               .getAsString().trim().isEmpty()) {
+                                               .getAsString().trim().isEmpty()) {
+                       final String operation = requestBody
+                                       .getAsJsonPrimitive(VtnServiceJsonConsts.OP).getAsString()
+                                       .trim();
+                       isValid = operation.equalsIgnoreCase(VtnServiceJsonConsts.DETAIL)
+                                       || operation.equalsIgnoreCase(VtnServiceJsonConsts.COUNT);
+               } else {
+                       requestBody.remove(VtnServiceJsonConsts.OP);
+                       requestBody.addProperty(VtnServiceJsonConsts.OP,
+                                       VtnServiceJsonConsts.NORMAL);
+               }
+               LOG.trace("Complete CommonValidator#isValidOperation");
+               return isValid;
+       }
+
+       /**
+        * Checks if is operation is count or detail.
+        * 
+        * @param operation
+        *            the value of operation in the request Json object
+        * @return true, if is valid operation
+        */
+       public final boolean isValidOperationInfo(final JsonObject requestBody) {
+               LOG.trace("Start CommonValidator#isValidOperation");
+               boolean isValid = true;
+               if (requestBody.has(VtnServiceJsonConsts.OP)
+                               && requestBody.getAsJsonPrimitive(VtnServiceJsonConsts.OP)
+                                               .getAsString() != null
+                               && !requestBody.getAsJsonPrimitive(VtnServiceJsonConsts.OP)
+                                               .getAsString().trim().isEmpty()) {
+                       final String operation = requestBody
+                                       .getAsJsonPrimitive(VtnServiceJsonConsts.OP).getAsString()
+                                       .trim();
+                       isValid = operation.equalsIgnoreCase(VtnServiceJsonConsts.DETAIL)
+                                       || operation.equalsIgnoreCase(VtnServiceJsonConsts.COUNT)
+                                       || operation.equalsIgnoreCase(VtnServiceJsonConsts.INFO);
+               } else {
+                       requestBody.remove(VtnServiceJsonConsts.OP);
+                       requestBody.addProperty(VtnServiceJsonConsts.OP,
+                                       VtnServiceJsonConsts.NORMAL);
+               }
+               LOG.trace("Complete CommonValidator#isValidOperation");
+               return isValid;
+       }
+
+       /**
+        * Checks if is operation is count or detail.
+        * 
+        * @param operation
+        *            the value of operation in the request Json object
+        * @return true, if is valid operation
+        */
+       public final boolean isValidOperationShow(final JsonObject requestBody) {
+               LOG.trace("Start CommonValidator#isValidOperation");
+               boolean isValid = true;
+               if (requestBody.has(VtnServiceJsonConsts.OP)
+                               && requestBody.getAsJsonPrimitive(VtnServiceJsonConsts.OP)
+                                               .getAsString() != null
+                               && !requestBody.getAsJsonPrimitive(VtnServiceJsonConsts.OP)
+                                               .getAsString().trim().isEmpty()) {
                        final String operation = requestBody
                                        .getAsJsonPrimitive(VtnServiceJsonConsts.OP).getAsString()
                                        .trim();
@@ -239,9 +299,9 @@ public class CommonValidator {
                boolean isValid = true;
                if (requestBody.has(VtnServiceJsonConsts.OP)
                                && requestBody.getAsJsonPrimitive(VtnServiceJsonConsts.OP)
-                               .getAsString() != null
+                                               .getAsString() != null
                                && !requestBody.getAsJsonPrimitive(VtnServiceJsonConsts.OP)
-                               .getAsString().trim().isEmpty()) {
+                                               .getAsString().trim().isEmpty()) {
                        isValid = requestBody.getAsJsonPrimitive(VtnServiceJsonConsts.OP)
                                        .getAsString().trim()
                                        .equalsIgnoreCase(VtnServiceJsonConsts.COUNT);
@@ -254,6 +314,34 @@ public class CommonValidator {
                return isValid;
        }
 
+       /**
+        * Checks if is operation is detail.
+        * 
+        * @param operation
+        *            the value of operation in the request Json object
+        * @return true, if is valid operation
+        */
+       public final boolean
+                       isValidOperationForDetail(final JsonObject requestBody) {
+               LOG.trace("Start CommonValidator#isValidOperationForDetail");
+               boolean isValid = true;
+               if (requestBody.has(VtnServiceJsonConsts.OP)
+                               && requestBody.getAsJsonPrimitive(VtnServiceJsonConsts.OP)
+                                               .getAsString() != null
+                               && !requestBody.getAsJsonPrimitive(VtnServiceJsonConsts.OP)
+                                               .getAsString().trim().isEmpty()) {
+                       isValid = requestBody.getAsJsonPrimitive(VtnServiceJsonConsts.OP)
+                                       .getAsString().trim()
+                                       .equalsIgnoreCase(VtnServiceJsonConsts.DETAIL);
+               } else {
+                       requestBody.remove(VtnServiceJsonConsts.OP);
+                       requestBody.addProperty(VtnServiceJsonConsts.OP,
+                                       VtnServiceJsonConsts.NORMAL);
+               }
+               LOG.trace("Complete CommonValidator#isValidOperationForDetail");
+               return isValid;
+       }
+
        /**
         * Checks if is valid max repetition count.
         * 
@@ -261,21 +349,21 @@ public class CommonValidator {
         *            the value of max repetition count in the request Json object
         * @return true, if is valid operation
         */
-       public boolean isValidMaxRepetition(final JsonObject requestBody) {
+       public final boolean isValidMaxRepetition(final JsonObject requestBody) {
                LOG.trace("Start CommonValidator#isValidMaxRepetition");
                boolean isValid = true;
                if (requestBody.has(VtnServiceJsonConsts.MAX)
                                && requestBody.getAsJsonPrimitive(VtnServiceJsonConsts.MAX)
-                               .getAsString() != null
+                                               .getAsString() != null
                                && !requestBody.getAsJsonPrimitive(VtnServiceJsonConsts.MAX)
-                               .getAsString().trim().isEmpty()) {
+                                               .getAsString().trim().isEmpty()) {
                        final String max = requestBody
                                        .getAsJsonPrimitive(VtnServiceJsonConsts.MAX).getAsString()
                                        .trim();
                        isValid = isValidRange(max, VtnServiceJsonConsts.LONG_VAL_1,
                                        VtnServiceJsonConsts.LONG_VAL_4294967295);
                } else {
-                       VtnServiceConfiguration configuration = VtnServiceInitManager
+                       final VtnServiceConfiguration configuration = VtnServiceInitManager
                                        .getConfigurationMap();
                        requestBody.remove(VtnServiceJsonConsts.MAX);
                        requestBody.addProperty(VtnServiceJsonConsts.MAX, configuration
@@ -296,10 +384,11 @@ public class CommonValidator {
         *            the maximum value possible
         * @return true, if is valid range
         */
-       public boolean isValidRange(final String input, final int min, final int max) {
+       public final boolean isValidRange(final String input, final int min,
+                       final int max) {
                LOG.trace("Inside CommonValidator#isValidRange (int)");
                if (!(input.equals(VtnServiceConsts.EMPTY_STRING))) {
-                       int inputResult = Integer.parseInt(input);
+                       final int inputResult = Integer.parseInt(input);
                        return inputResult >= min && inputResult <= max;
                } else {
                        return true;
@@ -314,7 +403,7 @@ public class CommonValidator {
         * 
         * @return true, if is valid alarm range
         */
-       public boolean isValidAlarmRange(final BigInteger input,
+       public final boolean isValidBigIntegerRangeString(final BigInteger input,
                        final BigInteger min, final BigInteger max) {
                LOG.trace("Inside CommonValidator#isValidRange (BigInteger)");
                if (input.compareTo(min) == -1 || input.compareTo(max) == 1) {
@@ -338,10 +427,11 @@ public class CommonValidator {
         * @return true,if it is valid range
         */
 
-       public boolean isValidRange(final String input, final Long min, final Long max) {
+       public final boolean isValidRange(final String input, final Long min,
+                       final Long max) {
                LOG.trace("Inside CommonValidator#isValidRange (Long)");
                if (!(input.equals(VtnServiceConsts.EMPTY_STRING))) {
-                       long inputResult = Long.parseLong(input);
+                       final long inputResult = Long.parseLong(input);
                        return inputResult >= min && inputResult <= max;
                } else {
                        return true;
@@ -356,9 +446,9 @@ public class CommonValidator {
         * 
         * @return true, if is valid mac address
         */
-       public boolean isValidMacAddress(final String input) {
+       public final boolean isValidMacAddress(final String input) {
                LOG.trace("Inside CommonValidator#isValidMacAddress");
-               if(VtnServiceConsts.EMPTY_STRING.equals(input)){
+               if (VtnServiceConsts.EMPTY_STRING.equals(input)) {
                        return true;
                }
                return input.matches(VtnServiceConsts.MAC_ADD_REGEX);
@@ -371,7 +461,7 @@ public class CommonValidator {
         *            the value to be validated
         * @return true, if is valid ether type
         */
-       public boolean isValidEtherType(final String input) {
+       public final boolean isValidEtherType(final String input) {
                LOG.trace("Inside CommonValidator#isValidEtherType");
                if (VtnServiceConsts.EMPTY_STRING.equals(input)) {
                        return true;
@@ -390,7 +480,7 @@ public class CommonValidator {
         *            the value to be validated
         * @return true, if is valid IP v4 address
         */
-       public boolean isValidIpV4(final String input) {
+       public final boolean isValidIpV4(final String input) {
                LOG.trace("Inside CommonValidator#isValidIpV4");
                if (VtnServiceConsts.EMPTY_STRING.equals(input)) {
                        return true;
@@ -408,7 +498,7 @@ public class CommonValidator {
         *            the value to be validated
         * @return true, if is valid IP v6 address
         */
-       public boolean isValidIpV6(final String input) {
+       public final boolean isValidIpV6(final String input) {
                LOG.trace("Inside CommonValidator#isValidIpV6");
                if (VtnServiceConsts.EMPTY_STRING.equals(input)) {
                        return true;
@@ -428,7 +518,7 @@ public class CommonValidator {
         *            the maximum length
         * @return true, if is valid max length
         */
-       public boolean isValidMaxLength(final String input, final int length) {
+       public final boolean isValidMaxLength(final String input, final int length) {
                LOG.trace("Inside CommonValidator#isValidMaxLength");
                return input.length() <= length;
        }
@@ -442,7 +532,8 @@ public class CommonValidator {
         * 
         * @return true, if is valid alpha numeric value
         */
-       public boolean isValidMaxLengthAlphaNum(final String input, final int length) {
+       public final boolean isValidMaxLengthAlphaNum(final String input,
+                       final int length) {
                LOG.trace("Inside CommonValidator#isValidMaxLengthAlphaNum");
                if (VtnServiceConsts.EMPTY_STRING.equals(input)) {
                        return true;
@@ -458,7 +549,7 @@ public class CommonValidator {
         *            the value to be validated
         * @return true, if is valid type
         */
-       public boolean isValidType(final String input) {
+       public final boolean isValidType(final String input) {
                LOG.trace("Start CommonValidator#isValidType");
                if (VtnServiceConsts.EMPTY_STRING.equals(input)) {
                        return true;
@@ -476,10 +567,11 @@ public class CommonValidator {
 
        /**
         * Check validation for Audit Status Parameter
+        * 
         * @param input
         * @return
         */
-       public boolean isValidAuditStatus(final String input) {
+       public final boolean isValidAuditStatus(final String input) {
                LOG.trace("Inside CommonValidator#isValidAuditStatus");
                if (VtnServiceConsts.EMPTY_STRING.equals(input)) {
                        return true;
@@ -498,7 +590,8 @@ public class CommonValidator {
         *            the maximum length possible
         * @return true, if is valid physical Id
         */
-       public boolean isValidPhysicalId(final String linkName, final int length) {
+       public final boolean isValidPhysicalId(final String linkName,
+                       final int length) {
                LOG.trace("Inside CommonValidator#isValidPhysicalId");
                if (VtnServiceConsts.EMPTY_STRING.equals(linkName)) {
                        return true;
@@ -517,7 +610,7 @@ public class CommonValidator {
         *            the maximum length possible
         * @return true, if is valid value
         */
-       public boolean isValidVersion(final String input, final int length) {
+       public final boolean isValidVersion(final String input, final int length) {
                LOG.trace("Inside CommonValidator#isValidVersion");
                if (VtnServiceConsts.EMPTY_STRING.equals(input)) {
                        return true;
@@ -537,7 +630,7 @@ public class CommonValidator {
         *            the maximum length possible
         * @return true, if is valid value
         */
-       public boolean isValidDomainId(final String input, final int length) {
+       public final boolean isValidDomainId(final String input, final int length) {
                LOG.trace("Inside CommonValidator#isValidDomainId");
                if (VtnServiceConsts.EMPTY_STRING.equals(input)) {
                        return true;
@@ -554,26 +647,27 @@ public class CommonValidator {
         *            the request Json object
         * @return true, if successful
         */
-       public boolean isValidFlowFilterEntry(final JsonObject requestBody) {
+       public final boolean isValidFlowFilterEntry(final JsonObject requestBody) {
                LOG.trace("Start CommonValidator#isValidFlowFilterEntry()");
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.FLOWFILTERENTRY);
                if (requestBody.has(VtnServiceJsonConsts.FLOWFILTERENTRY)
                                && requestBody.get(VtnServiceJsonConsts.FLOWFILTERENTRY)
-                               .isJsonObject()) {
+                                               .isJsonObject()) {
                        isValid = true;
                        final JsonObject ffEntry = requestBody
                                        .getAsJsonObject(VtnServiceJsonConsts.FLOWFILTERENTRY);
                        // validation for key: fl_name
                        setInvalidParameter(VtnServiceJsonConsts.FLNAME);
                        if (ffEntry.has(VtnServiceJsonConsts.FLNAME)
-                                       && ffEntry.getAsJsonPrimitive(
-                                                       VtnServiceJsonConsts.FLNAME).getAsString() != null
-                                                       && !ffEntry.get(VtnServiceJsonConsts.FLNAME)
-                                                       .getAsString().trim().isEmpty()) {
-                               isValid = isValidMaxLengthAlphaNum(ffEntry
-                                               .getAsJsonPrimitive(VtnServiceJsonConsts.FLNAME)
-                                               .getAsString().trim(), VtnServiceJsonConsts.LEN_32);
+                                       && ffEntry.getAsJsonPrimitive(VtnServiceJsonConsts.FLNAME)
+                                                       .getAsString() != null
+                                       && !ffEntry.get(VtnServiceJsonConsts.FLNAME).getAsString()
+                                                       .trim().isEmpty()) {
+                               isValid = isValidMaxLengthAlphaNum(
+                                               ffEntry.getAsJsonPrimitive(VtnServiceJsonConsts.FLNAME)
+                                                               .getAsString().trim(),
+                                               VtnServiceJsonConsts.LEN_32);
                        }
                        // validation for key: action_type
                        if (isValid) {
@@ -587,9 +681,9 @@ public class CommonValidator {
                                        isValid = actionType
                                                        .equalsIgnoreCase(VtnServiceJsonConsts.PASS)
                                                        || actionType
-                                                       .equalsIgnoreCase(VtnServiceJsonConsts.DROP)
+                                                                       .equalsIgnoreCase(VtnServiceJsonConsts.DROP)
                                                        || actionType
-                                                       .equalsIgnoreCase(VtnServiceJsonConsts.REDIRECT);
+                                                                       .equalsIgnoreCase(VtnServiceJsonConsts.REDIRECT);
                                }
                        }
                        // validation for key: nmg_name
@@ -598,7 +692,7 @@ public class CommonValidator {
                                if (ffEntry.has(VtnServiceJsonConsts.NMGNAME)
                                                && ffEntry.getAsJsonPrimitive(
                                                                VtnServiceJsonConsts.NMGNAME).getAsString() != null
-                                                               && !ffEntry.get(VtnServiceJsonConsts.NMGNAME)
+                                               && !ffEntry.get(VtnServiceJsonConsts.NMGNAME)
                                                                .getAsString().trim().isEmpty()) {
                                        isValid = isValidMaxLengthAlphaNum(ffEntry
                                                        .getAsJsonPrimitive(VtnServiceJsonConsts.NMGNAME)
@@ -612,12 +706,11 @@ public class CommonValidator {
                                                && ffEntry.getAsJsonPrimitive(
                                                                VtnServiceJsonConsts.PRIORITY).getAsString() != null) {
                                        isValid = isValidRange(
-                                                       ffEntry
-                                                                       .getAsJsonPrimitive(
-                                                                                       VtnServiceJsonConsts.PRIORITY)
-                                                                                       .getAsString().trim(),
-                                                                                       VtnServiceJsonConsts.VAL_0,
-                                                                                       VtnServiceJsonConsts.VAL_7);
+                                                       ffEntry.getAsJsonPrimitive(
+                                                                       VtnServiceJsonConsts.PRIORITY)
+                                                                       .getAsString().trim(),
+                                                       VtnServiceJsonConsts.VAL_0,
+                                                       VtnServiceJsonConsts.VAL_7);
                                }
                        }
                        // validation for key: dscp
@@ -625,15 +718,13 @@ public class CommonValidator {
                                setInvalidParameter(VtnServiceJsonConsts.DSCP);
                                if (ffEntry.has(VtnServiceJsonConsts.DSCP)
                                                && ffEntry
-                                               .getAsJsonPrimitive(VtnServiceJsonConsts.DSCP)
-                                               .getAsString() != null) {
+                                                               .getAsJsonPrimitive(VtnServiceJsonConsts.DSCP)
+                                                               .getAsString() != null) {
                                        isValid = isValidRange(
-                                                       ffEntry
-                                                                       .getAsJsonPrimitive(
-                                                                                       VtnServiceJsonConsts.DSCP)
-                                                                                       .getAsString().trim(),
-                                                                                       VtnServiceJsonConsts.VAL_0,
-                                                                                       VtnServiceJsonConsts.VAL_63);
+                                                       ffEntry.getAsJsonPrimitive(
+                                                                       VtnServiceJsonConsts.DSCP).getAsString()
+                                                                       .trim(), VtnServiceJsonConsts.VAL_0,
+                                                       VtnServiceJsonConsts.VAL_63);
                                }
                        }
                }
@@ -641,15 +732,17 @@ public class CommonValidator {
                return isValid;
        }
 
-
-       /** Validate redirectdst Json Object in request Json object for FlowFilterEntry APIs
+       /**
+        * Validate redirectdst Json Object in request Json object for
+        * FlowFilterEntry APIs
         * 
         * @param ffEntry
         *            the request Json object to be validated
         * @return true, if successful
         */
-       public boolean isValidRedirectDst(boolean isValid, final JsonObject ffEntry) {
-               LOG.trace("Start CommonValidator#isValidRedirectDst()"); 
+       public final boolean isValidRedirectDst(boolean isValid,
+                       final JsonObject ffEntry) {
+               LOG.trace("Start CommonValidator#isValidRedirectDst()");
                setInvalidParameter(VtnServiceJsonConsts.REDIRECTDST);
                if (ffEntry.has(VtnServiceJsonConsts.REDIRECTDST)) {
                        final JsonObject dest = ffEntry
@@ -659,46 +752,42 @@ public class CommonValidator {
                                setInvalidParameter(VtnServiceJsonConsts.VNODENAME);
                                if (dest.has(VtnServiceJsonConsts.VNODENAME)
                                                && dest.getAsJsonPrimitive(
-                                                               VtnServiceJsonConsts.VNODENAME)
-                                                               .getAsString() != null) {
+                                                               VtnServiceJsonConsts.VNODENAME).getAsString() != null) {
                                        isValid = isValidMaxLengthAlphaNum(
                                                        dest.getAsJsonPrimitive(
                                                                        VtnServiceJsonConsts.VNODENAME)
                                                                        .getAsString().trim(),
-                                                                       VtnServiceJsonConsts.LEN_31)
-                                                                       || dest.getAsJsonPrimitive(
-                                                                                       VtnServiceJsonConsts.VNODENAME)
-                                                                                       .getAsString().trim().isEmpty();
+                                                       VtnServiceJsonConsts.LEN_31)
+                                                       || dest.getAsJsonPrimitive(
+                                                                       VtnServiceJsonConsts.VNODENAME)
+                                                                       .getAsString().trim().isEmpty();
                                }
                        }
                        // validation for key: if_name (optional)
                        if (isValid) {
                                setInvalidParameter(VtnServiceJsonConsts.IFNAME);
                                if (dest.has(VtnServiceJsonConsts.IFNAME)
-                                               && dest.getAsJsonPrimitive(
-                                                               VtnServiceJsonConsts.IFNAME)
+                                               && dest.getAsJsonPrimitive(VtnServiceJsonConsts.IFNAME)
                                                                .getAsString() != null) {
                                        isValid = isValidMaxLengthAlphaNum(
-                                                       dest.getAsJsonPrimitive(
-                                                                       VtnServiceJsonConsts.IFNAME)
+                                                       dest.getAsJsonPrimitive(VtnServiceJsonConsts.IFNAME)
                                                                        .getAsString().trim(),
-                                                                       VtnServiceJsonConsts.LEN_31)
-                                                                       || dest.getAsJsonPrimitive(
-                                                                                       VtnServiceJsonConsts.IFNAME)
-                                                                                       .getAsString().trim().isEmpty();
+                                                       VtnServiceJsonConsts.LEN_31)
+                                                       || dest.getAsJsonPrimitive(
+                                                                       VtnServiceJsonConsts.IFNAME).getAsString()
+                                                                       .trim().isEmpty();
                                }
                        }
+
                        // validation for key: macdstaddr (optional)
                        if (isValid) {
                                setInvalidParameter(VtnServiceJsonConsts.MACDSTADDR);
                                if (dest.has(VtnServiceJsonConsts.MACDSTADDR)
                                                && dest.getAsJsonPrimitive(
-                                                               VtnServiceJsonConsts.MACDSTADDR)
-                                                               .getAsString() != null) {
+                                                               VtnServiceJsonConsts.MACDSTADDR).getAsString() != null) {
                                        isValid = isValidMacAddress(dest
-                                                       .getAsJsonPrimitive(
-                                                                       VtnServiceJsonConsts.MACDSTADDR)
-                                                                       .getAsString().trim());
+                                                       .getAsJsonPrimitive(VtnServiceJsonConsts.MACDSTADDR)
+                                                       .getAsString().trim());
                                }
                        }
                        // validation for key: macsrcaddr (optional)
@@ -707,16 +796,74 @@ public class CommonValidator {
                                if (isValid
                                                && dest.has(VtnServiceJsonConsts.MACSRCADDR)
                                                && dest.getAsJsonPrimitive(
-                                                               VtnServiceJsonConsts.MACSRCADDR)
-                                                               .getAsString() != null) {
+                                                               VtnServiceJsonConsts.MACSRCADDR).getAsString() != null) {
                                        isValid = isValidMacAddress(dest
-                                                       .getAsJsonPrimitive(
-                                                                       VtnServiceJsonConsts.MACSRCADDR)
-                                                                       .getAsString().trim());
+                                                       .getAsJsonPrimitive(VtnServiceJsonConsts.MACSRCADDR)
+                                                       .getAsString().trim());
                                }
                        }
                }
                LOG.trace("Complete CommonValidator#isValidRedirectDst()");
                return isValid;
        }
+
+       //
+
+       /**
+        * Checks if is valid tagetdb db.
+        * 
+        * @param targetdb
+        *            the value of targetdb in the request Json object
+        * @return true, if is valid request db
+        */
+       public final boolean isValidRequestDBState(final JsonObject requestBody) {
+               LOG.trace("Start CommonValidator#isValidRequestDBState");
+               boolean isValid = true;
+               if (requestBody.has(VtnServiceJsonConsts.TARGETDB)
+                               && requestBody
+                                               .getAsJsonPrimitive(VtnServiceJsonConsts.TARGETDB)
+                                               .getAsString() != null
+                               && !requestBody
+                                               .getAsJsonPrimitive(VtnServiceJsonConsts.TARGETDB)
+                                               .getAsString().trim().isEmpty()) {
+                       final String targetdb = requestBody
+                                       .getAsJsonPrimitive(VtnServiceJsonConsts.TARGETDB)
+                                       .getAsString().trim();
+                       isValid = targetdb.equalsIgnoreCase(VtnServiceJsonConsts.STATE);
+               } else {
+                       requestBody.remove(VtnServiceJsonConsts.TARGETDB);
+                       requestBody.addProperty(VtnServiceJsonConsts.TARGETDB,
+                                       VtnServiceJsonConsts.STATE);
+               }
+               LOG.trace("Complete CommonValidator#isValidRequestDBState");
+               return isValid;
+       }
+
+       /**
+        * Checks if is valid mapping Id.
+        * 
+        * @param targetdb
+        *            the value of mapping id in the request Json object
+        * @return true, if is valid request mapping id
+        */
+       public final boolean isValidMappingId(final String[] mappingId) {
+               LOG.trace("Start CommonValidator#isValidMappingId");
+               boolean isValid = false;
+
+               if (mappingId.length == VtnServiceJsonConsts.VAL_2
+                               && null != mappingId[VtnServiceJsonConsts.VAL_0]
+                               && !mappingId[VtnServiceJsonConsts.VAL_0].trim().isEmpty()
+                               && null != mappingId[VtnServiceJsonConsts.VAL_1]
+                               && !mappingId[VtnServiceJsonConsts.VAL_1].trim().isEmpty()
+                               && isValidMaxLengthAlphaNum(
+                                               mappingId[VtnServiceJsonConsts.VAL_0],
+                                               VtnServiceJsonConsts.LEN_31)
+                               && isValidDomainId(mappingId[VtnServiceJsonConsts.VAL_1],
+                                               VtnServiceJsonConsts.LEN_31)) {
+                       isValid = true;
+               }
+               LOG.trace("Complete CommonValidator#isValidMappingId");
+               return isValid;
+       }
+
 }
index f617b5d92c74d5dcf532ddf1f224969feee2bb0c..c1bed4a4e008a3cae3cd55ef153840f1de35f192 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -33,7 +33,7 @@ public class ConfigModeResourceValidator extends VtnServiceValidator {
        private final AbstractResource resource;
 
        /** The validator. */
-       final CommonValidator validator = new CommonValidator();
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new configuration mode resource validator.
@@ -51,7 +51,7 @@ public class ConfigModeResourceValidator extends VtnServiceValidator {
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start ConfigModeResourceValidator#validateUri()");
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.URI
@@ -76,8 +76,9 @@ public class ConfigModeResourceValidator extends VtnServiceValidator {
         * Validate request json for Acquire Configuration Mode API
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start ConfigModeResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of ConfigModeResourceValidator");
@@ -122,4 +123,4 @@ public class ConfigModeResourceValidator extends VtnServiceValidator {
                LOG.trace("Complete ConfigModeResourceValidator#validatePost()");
                return isValid;
        }
-}
\ No newline at end of file
+}
index bcb334d2a76ea5a298490238f3b9f023a0918419..49e586267851ce958ff4feb920b4fae41de29b59 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -25,8 +25,6 @@ public class ConfigResourceValidator extends VtnServiceValidator {
        private static final Logger LOG = Logger
                        .getLogger(ConfigResourceValidator.class.getName());
 
-       final CommonValidator validator = new CommonValidator();
-
        /**
         * Instantiates a new config resource validator.
         * 
@@ -41,15 +39,16 @@ public class ConfigResourceValidator extends VtnServiceValidator {
         * Configuration API.
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start ConfigResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of ConfigResourceValidator");
                boolean isValid = false;
                if (requestBody != null && VtnServiceConsts.PUT.equals(method)) {
                        isValid = validatePut(requestBody);
-               }else {
+               } else {
                        setInvalidParameter(VtnServiceConsts.INCORRECT_METHOD_INVOCATION);
                        isValid = false;
                }
@@ -98,4 +97,4 @@ public class ConfigResourceValidator extends VtnServiceValidator {
                LOG.trace("Complete ConfigResourceValidator#validatePut()");
                return isValid;
        }
-}
\ No newline at end of file
+}
index c26c722c70d998b7f502ed8a063c3bd8be2f7959..a25d148cd6c02dfcefb2db88be00264f79502e9c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -14,9 +14,10 @@ import org.opendaylight.vtn.core.util.Logger;
 import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
 import org.opendaylight.vtn.javaapi.resources.AbstractResource;
 
-public class DifferenceConfigResourceValidator extends VtnServiceValidator{
+public class DifferenceConfigResourceValidator extends VtnServiceValidator {
 
-       private static final Logger LOG = Logger.getLogger(DifferenceConfigResourceValidator.class.getName());
+       private static final Logger LOG = Logger
+                       .getLogger(DifferenceConfigResourceValidator.class.getName());
 
        public DifferenceConfigResourceValidator(final AbstractResource resource) {
 
@@ -26,8 +27,9 @@ public class DifferenceConfigResourceValidator extends VtnServiceValidator{
         * Validate request Json for UNC Difference Config API.
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.info("Validation not required for Diffrence Config API");
        }
 }
index 54fbf41c9efddab4654955d3b77cd281ae1d5765..b010e8286ceecffa30870b0f07a3d8a281f5f94f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -27,7 +27,7 @@ public class ReadLockResourceValidator extends VtnServiceValidator {
                        .getLogger(ReadLockResourceValidator.class.getName());
 
        /** The validator. */
-       final CommonValidator validator = new CommonValidator();
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new read lock resource validator.
@@ -43,8 +43,9 @@ public class ReadLockResourceValidator extends VtnServiceValidator {
         * Validate request json for Read Lock API
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("ReadLockResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of ReadLockResourceValidator");
@@ -52,7 +53,7 @@ public class ReadLockResourceValidator extends VtnServiceValidator {
                try {
                        if (requestBody != null && VtnServiceConsts.PUT.equals(method)) {
                                isValid = validatePut(requestBody);
-                       }else {
+                       } else {
                                setInvalidParameter(VtnServiceConsts.INCORRECT_METHOD_INVOCATION);
                                isValid = false;
                        }
@@ -105,4 +106,4 @@ public class ReadLockResourceValidator extends VtnServiceValidator {
                LOG.trace("Complete ReadLockResourceValidator#validatePut()");
                return isValid;
        }
-}
\ No newline at end of file
+}
index f931e4b2dadfa47644408617e4372a4677ece94b..eefdd77eb823b27958c9664697fc6c4c5020d4af 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -30,7 +30,7 @@ public class SessionResourceValidator extends VtnServiceValidator {
 
        /** The instance of AbstractResource. */
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new session resource validator.
@@ -48,7 +48,7 @@ public class SessionResourceValidator extends VtnServiceValidator {
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start SessionResourceValidator#validateUri()");
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.URI
@@ -57,10 +57,10 @@ public class SessionResourceValidator extends VtnServiceValidator {
                                && ((SessionResource) resource).getSessionId() != null
                                && !((SessionResource) resource).getSessionId().trim()
                                                .isEmpty()) {
-                       /*if (Long.parseLong(((SessionResource) resource).getSessionId()
-                                       .trim()) >= 0) {
-                               isValid = true;
-                       }*/
+                       /*
+                        * if (Long.parseLong(((SessionResource) resource).getSessionId()
+                        * .trim()) >= 0) { isValid = true; }
+                        */
                        isValid = validator.isValidRange(((SessionResource) resource)
                                        .getSessionId().trim(), VtnServiceJsonConsts.LONG_VAL_1,
                                        VtnServiceJsonConsts.LONG_VAL_4294967295);
@@ -77,8 +77,9 @@ public class SessionResourceValidator extends VtnServiceValidator {
         * Validate request json for Create Session API and List Sessions API.
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start SessionResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of SessionResourceValidator");
@@ -212,9 +213,11 @@ public class SessionResourceValidator extends VtnServiceValidator {
                                                                        .trim()
                                                                        .equalsIgnoreCase(VtnServiceJsonConsts.OPER);
                                } else {
-                                       requestBody.getAsJsonObject(VtnServiceJsonConsts.SESSION).remove(VtnServiceJsonConsts.USERNAME);
-                                       requestBody.getAsJsonObject(VtnServiceJsonConsts.SESSION).addProperty(VtnServiceJsonConsts.USERNAME,
-                                                       VtnServiceJsonConsts.OPER);
+                                       requestBody.getAsJsonObject(VtnServiceJsonConsts.SESSION)
+                                                       .remove(VtnServiceJsonConsts.USERNAME);
+                                       requestBody.getAsJsonObject(VtnServiceJsonConsts.SESSION)
+                                                       .addProperty(VtnServiceJsonConsts.USERNAME,
+                                                                       VtnServiceJsonConsts.OPER);
                                }
                        }
                        // validation for key: type
@@ -239,9 +242,11 @@ public class SessionResourceValidator extends VtnServiceValidator {
                                                                        .equalsIgnoreCase(
                                                                                        VtnServiceJsonConsts.WEBUI);
                                } else {
-                                       requestBody.getAsJsonObject(VtnServiceJsonConsts.SESSION).remove(VtnServiceJsonConsts.TYPE);
-                                       requestBody.getAsJsonObject(VtnServiceJsonConsts.SESSION).addProperty(VtnServiceJsonConsts.TYPE,
-                                                       VtnServiceJsonConsts.WEBUI);
+                                       requestBody.getAsJsonObject(VtnServiceJsonConsts.SESSION)
+                                                       .remove(VtnServiceJsonConsts.TYPE);
+                                       requestBody.getAsJsonObject(VtnServiceJsonConsts.SESSION)
+                                                       .addProperty(VtnServiceJsonConsts.TYPE,
+                                                                       VtnServiceJsonConsts.WEBUI);
                                }
                        }
                        // validation for key: info
@@ -263,4 +268,4 @@ public class SessionResourceValidator extends VtnServiceValidator {
                LOG.trace("Complete SessionResourceValidator#validatePost()");
                return isValid;
        }
-}
\ No newline at end of file
+}
index c7554ee8d138dfa77ccdf527f42927f6d01e68b9..01b6d2f396b99fdd1cfacbd7c88eac408345a6f4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -30,7 +30,7 @@ public class UserResourceValidator extends VtnServiceValidator {
        private final AbstractResource resource;
 
        /** The validator. */
-       final CommonValidator validator = new CommonValidator();
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new user resource validator.
@@ -48,7 +48,7 @@ public class UserResourceValidator extends VtnServiceValidator {
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start UserResourceValidator#validateUri()");
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.URI
@@ -69,8 +69,9 @@ public class UserResourceValidator extends VtnServiceValidator {
         * Validate request json for Set Password API
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start UserResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of UserResourceValidator");
@@ -113,9 +114,9 @@ public class UserResourceValidator extends VtnServiceValidator {
                                                .getAsJsonObject()
                                                .getAsJsonPrimitive(VtnServiceJsonConsts.PASSWORD)
                                                .getAsString() != null) {
-                       String password = requestBody.get(VtnServiceJsonConsts.PASSWORD)
-                                       .getAsJsonObject().get(VtnServiceJsonConsts.PASSWORD)
-                                       .getAsString();
+                       final String password = requestBody
+                                       .get(VtnServiceJsonConsts.PASSWORD).getAsJsonObject()
+                                       .get(VtnServiceJsonConsts.PASSWORD).getAsString();
                        requestBody.remove(VtnServiceJsonConsts.PASSWORD);
                        requestBody.addProperty(VtnServiceJsonConsts.PASSWORD, password);
                }
@@ -135,4 +136,4 @@ public class UserResourceValidator extends VtnServiceValidator {
                LOG.trace("Complete UserResourceValidator#validatePut()");
                return isValid;
        }
-}
\ No newline at end of file
+}
index 5e175ad3ec53049ca7be9bd1f72ee577dd5ce145..2c662a81e7c4c07622c0c8834253e8fb417c9dae 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -8,12 +8,14 @@
  */
 package org.opendaylight.vtn.javaapi.validation;
 
+import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
 import org.opendaylight.vtn.core.util.Logger;
 import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
 import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
 import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
+import org.opendaylight.vtn.javaapi.openstack.constants.VtnServiceOpenStackConsts;
 import org.opendaylight.vtn.javaapi.resources.AbstractResource;
 
 /**
@@ -33,7 +35,7 @@ public abstract class VtnServiceValidator {
         * @param listOpFlag
         *            the new list op flag
         */
-       protected void setListOpFlag(final boolean listOpFlag) {
+       protected final void setListOpFlag(final boolean listOpFlag) {
                this.listOpFlag = listOpFlag;
        }
 
@@ -42,7 +44,7 @@ public abstract class VtnServiceValidator {
         * 
         * @return true, if is list op flag
         */
-       public boolean isListOpFlag() {
+       public final boolean isListOpFlag() {
                return listOpFlag;
        }
 
@@ -52,7 +54,7 @@ public abstract class VtnServiceValidator {
         * @param requestBody
         *            the request body
         */
-       public void updateOpParameterForList(final JsonObject requestBody) {
+       public final void updateOpParameterForList(final JsonObject requestBody) {
                if (listOpFlag && !requestBody.has(VtnServiceJsonConsts.OP)) {
                        requestBody.addProperty(VtnServiceJsonConsts.OP,
                                        VtnServiceJsonConsts.NORMAL);
@@ -64,7 +66,16 @@ public abstract class VtnServiceValidator {
         * 
         * @return the invalid parameter
         */
-       public String getInvalidParameter() {
+       public final String getInvalidParameter() {
+               int colonIndex = invalidParameter.indexOf(VtnServiceConsts.COLON);
+               if (colonIndex > -1
+                               && invalidParameter.substring(colonIndex + 1).length() > VtnServiceOpenStackConsts.MAX_MSG_LEN) {
+                       LOG.debug("message length is more than 1024, required to truncate");
+                       String firstPart = invalidParameter.substring(0, colonIndex + 1);
+                       String secondPart = invalidParameter.substring(colonIndex + 1)
+                                       .substring(0, VtnServiceOpenStackConsts.MAX_MSG_LEN);
+                       invalidParameter = firstPart + secondPart;
+               }
                return invalidParameter;
        }
 
@@ -74,7 +85,7 @@ public abstract class VtnServiceValidator {
         * @param invalidParameter
         *            the new invalid parameter
         */
-       public void setInvalidParameter(final String invalidParameter) {
+       public final void setInvalidParameter(final String invalidParameter) {
                this.invalidParameter = invalidParameter;
        }
 
@@ -125,7 +136,7 @@ public abstract class VtnServiceValidator {
        }
 
        /**
-        * Default implementation of Validate uri method.
+        * Default implementation of Validate URI method.
         * 
         * @return true, if successful
         * @throws VtnServiceException
@@ -135,4 +146,87 @@ public abstract class VtnServiceValidator {
                LOG.trace("Return from VtnServiceValidator#validate");
                return true;
        }
+
+       /**
+        * Validates the parameters of POST request body
+        * 
+        * @param validator
+        *            - instance for CommonValidator
+        * @param requestBody
+        *            - JSON object contains "id" and "description" parameters
+        * @return - validation status as true or false
+        */
+       public boolean validatePost(final CommonValidator validator,
+                       final JsonObject requestBody) {
+               LOG.trace("Start VtnServiceValidator#validatePost()");
+               boolean isValid = true;
+               // validation of id
+               if (requestBody != null
+                               && requestBody.has(VtnServiceOpenStackConsts.ID)) {
+                       final JsonElement id = requestBody
+                                       .get(VtnServiceOpenStackConsts.ID);
+                       if (id.isJsonNull()
+                                       || id.getAsString().isEmpty()
+                                       || !validator.isValidMaxLengthAlphaNum(id.getAsString(),
+                                                       VtnServiceJsonConsts.LEN_31)) {
+                               isValid = false;
+                               setInvalidParameter(VtnServiceOpenStackConsts.ID
+                                               + VtnServiceConsts.COLON
+                                               + (id.isJsonNull() ? id : id.getAsString()));
+                       }
+               }
+
+               if (isValid) {
+                       isValid = validatePut(validator, requestBody);
+               }
+
+               LOG.trace("Complete VtnServiceValidator#validatePost()");
+               return isValid;
+       }
+
+       /**
+        * Validates the parameters of PUT request body
+        * 
+        * @param validator
+        *            - instance for CommonValidator
+        * @param requestBody
+        *            - JSON object "description" parameter
+        * @return - validation status as true or false
+        */
+       public boolean validatePut(final CommonValidator validator,
+                       final JsonObject requestBody) {
+               LOG.trace("Start VtnServiceValidator#validatePut()");
+               boolean isValid = true;
+               // validation of description
+               if (requestBody != null
+                               && requestBody.has(VtnServiceOpenStackConsts.DESCRIPTION)) {
+                       final JsonElement description = requestBody
+                                       .get(VtnServiceOpenStackConsts.DESCRIPTION);
+                       if (!description.isJsonNull()) {
+                               if (hasInvaidDescChars(description.getAsString())
+                                               || !validator.isValidMaxLength(
+                                                               description.getAsString(),
+                                                               VtnServiceJsonConsts.LEN_127)) {
+                                       isValid = false;
+                                       setInvalidParameter(VtnServiceOpenStackConsts.DESCRIPTION
+                                                       + VtnServiceConsts.COLON
+                                                       + description.getAsString());
+                               }
+                       }
+               }
+               LOG.trace("Complete VtnServiceValidator#validatePut()");
+               return isValid;
+       }
+
+       /**
+        * Check if description string contains invalid characters or not
+        * 
+        * @param description
+        *            - string that required to validate
+        * @return - result as true or false
+        */
+       private boolean hasInvaidDescChars(String description) {
+               return ((description.contains(VtnServiceConsts.QUESTION_MARK)) || (description
+                               .contains(VtnServiceConsts.QUOTE_CHAR)));
+       }
 }
index 73e43b4da9edc18ec01a50e53065890be324725b..e3b1e7e5b5cc1595c7986aad8f4527c2d3031dac 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -29,7 +29,7 @@ public class ArpEntryResourceValidator extends VtnServiceValidator {
                        .getLogger(ArpEntryResourceValidator.class.getName());
 
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new arp entry resource validator.
@@ -47,7 +47,7 @@ public class ArpEntryResourceValidator extends VtnServiceValidator {
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start ArpEntryResourceValidator#validateUri()");
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.URI
@@ -81,8 +81,9 @@ public class ArpEntryResourceValidator extends VtnServiceValidator {
         * Validate request Json object for get method of ArpEntry API
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start ArpEntryResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of ArpEntryResourceValidator");
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/CoordinatorVersionResourceValidator.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/CoordinatorVersionResourceValidator.java
new file mode 100644 (file)
index 0000000..c6238a2
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.vtn.javaapi.validation.logical;
+
+import com.google.gson.JsonObject;
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
+import org.opendaylight.vtn.javaapi.resources.AbstractResource;
+import org.opendaylight.vtn.javaapi.validation.VtnServiceValidator;
+import org.opendaylight.vtn.javaapi.validation.physical.VersionResourceValidator;
+
+/**
+ * The Class CoordinatorVersionResourceValidator validates request Json object
+ * for Show Coordinator Version API.
+ */
+public class CoordinatorVersionResourceValidator extends VtnServiceValidator {
+       /**
+        * Logger for debugging purpose.
+        */
+       private static final Logger LOG = Logger
+                       .getLogger(VersionResourceValidator.class.getName());
+
+       /**
+        * validator object for common validations.
+        * 
+        * @param resource
+        *            ,Abtsract class object
+        */
+       public CoordinatorVersionResourceValidator(final AbstractResource resource) {
+
+       }
+
+       /**
+        * Validate request Json for Show Coordinator Version PI.
+        * 
+        * @param requestBody
+        *            , for request.
+        * @param method
+        *            , for method.
+        * @throws VtnServiceException
+        *             , in case of failure
+        */
+       @Override
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
+               LOG.info("No validation required for Show Coordinator Version");
+       }
+}
index 95696d83776191ee38d11e00f93314275ebd2776..de59c7e560b51f381cbe5a670e04dc557e5521bc 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -29,7 +29,7 @@ public class DhcpRelayResourceValidator extends VtnServiceValidator {
                        .getLogger(DhcpRelayResourceValidator.class.getName());
 
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new DHCP relay resource validator.
@@ -47,7 +47,7 @@ public class DhcpRelayResourceValidator extends VtnServiceValidator {
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start DhcpRelayResourceValidator#validateUri()");
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.URI
@@ -82,8 +82,9 @@ public class DhcpRelayResourceValidator extends VtnServiceValidator {
         * Validate request Json object for get, put method of DhcpRelay API
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start DhcpRelayResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of DhcpRelayResourceValidator");
index f282e12f5c321448e90e5a78cf56deba45722e0c..a779a7d7924d3cb8c4bf4ad67f56e05d0a6369b4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -31,7 +31,7 @@ public class DhcpRelayServerResourceValidator extends VtnServiceValidator {
                        .getLogger(DhcpRelayServerResourceValidator.class.getName());
 
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new DHCP relay server resource validator.
@@ -49,7 +49,7 @@ public class DhcpRelayServerResourceValidator extends VtnServiceValidator {
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start DhcpRelayServerResourceValidator#validateUri()");
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.URI
@@ -119,8 +119,9 @@ public class DhcpRelayServerResourceValidator extends VtnServiceValidator {
         * DhcpRelayServer API
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start DhcpRelayServerResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of DhcpRelayServerResourceValidator");
index e1807872c79fc81012592837edb522e53e0d3d27..8f5a83d8bb79adcdcdea1b09311705540e245f71 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -28,7 +28,7 @@ public class FlowFilterEntriesResourceValidator extends VtnServiceValidator {
        private static final Logger LOG = Logger
                        .getLogger(FlowFilterEntriesResourceValidator.class.getName());
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new flow filter entries resource validator.
@@ -46,7 +46,7 @@ public class FlowFilterEntriesResourceValidator extends VtnServiceValidator {
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start FlowFilterEntriesResourceValidator#validateUri()");
                boolean isValid = false;
                // For FlowFilterEntriesResource instance
@@ -87,8 +87,9 @@ public class FlowFilterEntriesResourceValidator extends VtnServiceValidator {
         * API.
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start FlowFilterEntriesResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of FlowFilterEntriesResourceValidator");
@@ -159,9 +160,10 @@ public class FlowFilterEntriesResourceValidator extends VtnServiceValidator {
                                                        .getAsString() != null
                                        && !ffEntry.getAsJsonPrimitive(VtnServiceJsonConsts.SEQNUM)
                                                        .getAsString().trim().isEmpty()) {
-                               isValid = validator.isValidRange(ffEntry
-                                               .getAsJsonPrimitive(VtnServiceJsonConsts.SEQNUM)
-                                               .getAsString().trim(), VtnServiceJsonConsts.VAL_1,
+                               isValid = validator.isValidRange(
+                                               ffEntry.getAsJsonPrimitive(VtnServiceJsonConsts.SEQNUM)
+                                                               .getAsString().trim(),
+                                               VtnServiceJsonConsts.VAL_1,
                                                VtnServiceJsonConsts.VAL_65535);
                        } else {
                                isValid = false;
index 9be0ee336fc313a7bb314e94ab30636a25d6dfba..89252c6f8fb45cb3a7e7d327941280faef88e532 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -28,7 +28,7 @@ public class FlowFilterEntryResourceValidator extends VtnServiceValidator {
        private static final Logger LOG = Logger
                        .getLogger(FlowFilterEntryResourceValidator.class.getName());
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new flow filter entry resource validator.
@@ -46,7 +46,7 @@ public class FlowFilterEntryResourceValidator extends VtnServiceValidator {
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start FlowFilterEntryResourceValidator#validateUri()");
                boolean isValid = false;
                // For FlowFilterEntriesResource instance
@@ -80,9 +80,9 @@ public class FlowFilterEntryResourceValidator extends VtnServiceValidator {
                                if (((FlowFilterEntryResource) resource).getSeqnum() != null
                                                && !((FlowFilterEntryResource) resource).getSeqnum()
                                                                .trim().isEmpty()) {
-                                       isValid = validator.isValidRange(((FlowFilterEntryResource) resource)
-                                                                       .getSeqnum().trim(),
-                                                       VtnServiceJsonConsts.VAL_1,
+                                       isValid = validator.isValidRange(
+                                                       ((FlowFilterEntryResource) resource).getSeqnum()
+                                                                       .trim(), VtnServiceJsonConsts.VAL_1,
                                                        VtnServiceJsonConsts.VAL_65535);
                                } else {
                                        isValid = false;
@@ -98,8 +98,9 @@ public class FlowFilterEntryResourceValidator extends VtnServiceValidator {
         * Validate request Json object for get, put method of FlowFilterEntry API
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start FlowFilterEntryResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of FlowFilterEntryResourceValidator");
@@ -153,16 +154,16 @@ public class FlowFilterEntryResourceValidator extends VtnServiceValidator {
        private boolean validateGet(final JsonObject requestBody) {
                LOG.trace("Start FlowFilterEntryResourceValidator#validateGet()");
                boolean isValid = false;
-               
+
                // validation for key: targetdb
                setInvalidParameter(VtnServiceJsonConsts.TARGETDB);
                isValid = validator.isValidRequestDB(requestBody);
 
-               if (isValid
+               if (isValid && requestBody.has(VtnServiceJsonConsts.OP)
                                && requestBody
-                                               .getAsJsonPrimitive(VtnServiceJsonConsts.TARGETDB)
+                                               .getAsJsonPrimitive(VtnServiceJsonConsts.OP)
                                                .getAsString().trim()
-                                               .equalsIgnoreCase(VtnServiceJsonConsts.STATE)) {
+                                               .equalsIgnoreCase(VtnServiceJsonConsts.DETAIL)) {
                        // validation for key: controller_id(mandatory)
                        setInvalidParameter(VtnServiceJsonConsts.CONTROLLERID);
                        if (requestBody.has(VtnServiceJsonConsts.CONTROLLERID)
@@ -174,7 +175,7 @@ public class FlowFilterEntryResourceValidator extends VtnServiceValidator {
                        } else {
                                isValid = false;
                        }
-                       
+
                        if (isValid) {
                                // validation for key: domain_id(mandatory)
                                setInvalidParameter(VtnServiceJsonConsts.DOMAINID);
@@ -187,9 +188,9 @@ public class FlowFilterEntryResourceValidator extends VtnServiceValidator {
                                } else {
                                        isValid = false;
                                }
-                       }                       
+                       }
                }
-                                               
+
                // validation for key: op
                if (isValid) {
                        setInvalidParameter(VtnServiceJsonConsts.OP);
index 3f4bf791e23cd7d2eac566982688019c621fb904..19c2592484bcf869c28fb6c5a34839b582be8d15 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -35,7 +35,7 @@ public class FlowFilterResourceValidator extends VtnServiceValidator {
        private static final Logger LOG = Logger
                        .getLogger(FlowFilterResourceValidator.class.getName());
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new flow filter resource validator.
@@ -54,7 +54,7 @@ public class FlowFilterResourceValidator extends VtnServiceValidator {
         * 
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start FlowFilterResourceValidator#validateUri()");
                boolean isValid = false;
                // For FlowFilterResource instance
@@ -84,22 +84,20 @@ public class FlowFilterResourceValidator extends VtnServiceValidator {
                                }
                        }
                        setListOpFlag(false);
-               }
-               // For FlowFiltersResource instance
-               else if (resource instanceof FlowFiltersResource
+               } else if (resource instanceof FlowFiltersResource
                                && ((FlowFiltersResource) resource).getVtnName() != null
                                && !((FlowFiltersResource) resource).getVtnName().trim()
                                                .isEmpty()) {
+                       // For FlowFiltersResource instance
                        isValid = validator.isValidMaxLengthAlphaNum(
                                        ((FlowFiltersResource) resource).getVtnName().trim(),
                                        VtnServiceJsonConsts.LEN_31);
                        setListOpFlag(true);
-               }
-               // For VBridgeFlowFiltersResource instance
-               else if (resource instanceof VBridgeFlowFiltersResource
+               } else if (resource instanceof VBridgeFlowFiltersResource
                                && ((VBridgeFlowFiltersResource) resource).getVtnName() != null
                                && !((VBridgeFlowFiltersResource) resource).getVtnName().trim()
                                                .isEmpty()) {
+                       // For VBridgeFlowFiltersResource instance
                        isValid = validator
                                        .isValidMaxLengthAlphaNum(
                                                        ((VBridgeFlowFiltersResource) resource)
@@ -120,12 +118,11 @@ public class FlowFilterResourceValidator extends VtnServiceValidator {
                                }
                        }
                        setListOpFlag(true);
-               }
-               // For VBridgeFlowFilterResource instance
-               else if (resource instanceof VBridgeFlowFilterResource
+               } else if (resource instanceof VBridgeFlowFilterResource
                                && ((VBridgeFlowFilterResource) resource).getVtnName() != null
                                && !((VBridgeFlowFilterResource) resource).getVtnName().trim()
                                                .isEmpty()) {
+                       // For VBridgeFlowFilterResource instance
                        isValid = validator.isValidMaxLengthAlphaNum(
                                        ((VBridgeFlowFilterResource) resource).getVtnName().trim(),
                                        VtnServiceJsonConsts.LEN_31);
@@ -159,13 +156,12 @@ public class FlowFilterResourceValidator extends VtnServiceValidator {
                                }
                        }
                        setListOpFlag(false);
-               }
-               // For VBridgeInterfaceFlowFiltersResource instance
-               else if (resource instanceof VBridgeInterfaceFlowFiltersResource
+               } else if (resource instanceof VBridgeInterfaceFlowFiltersResource
                                && ((VBridgeInterfaceFlowFiltersResource) resource)
                                                .getVtnName() != null
                                && !((VBridgeInterfaceFlowFiltersResource) resource)
                                                .getVtnName().trim().isEmpty()) {
+                       // For VBridgeInterfaceFlowFiltersResource instance
                        isValid = validator.isValidMaxLengthAlphaNum(
                                        ((VBridgeInterfaceFlowFiltersResource) resource)
                                                        .getVtnName().trim(), VtnServiceJsonConsts.LEN_31);
@@ -200,12 +196,11 @@ public class FlowFilterResourceValidator extends VtnServiceValidator {
                                }
                        }
                        setListOpFlag(true);
-               }
-               // For VBridgeInterfaceFlowFilterResource instance
-               else if (resource instanceof VBridgeInterfaceFlowFilterResource
+               } else if (resource instanceof VBridgeInterfaceFlowFilterResource
                                && ((VBridgeInterfaceFlowFilterResource) resource).getVtnName() != null
                                && !((VBridgeInterfaceFlowFilterResource) resource)
                                                .getVtnName().isEmpty()) {
+                       // For VBridgeInterfaceFlowFilterResource instance
                        isValid = validator.isValidMaxLengthAlphaNum(
                                        ((VBridgeInterfaceFlowFilterResource) resource)
                                                        .getVtnName(), VtnServiceJsonConsts.LEN_31);
@@ -255,13 +250,12 @@ public class FlowFilterResourceValidator extends VtnServiceValidator {
                                }
                        }
                        setListOpFlag(false);
-               }
-               // For VRouterInterfaceFlowFiltersResource instance
-               else if (resource instanceof VRouterInterfaceFlowFiltersResource
+               } else if (resource instanceof VRouterInterfaceFlowFiltersResource
                                && ((VRouterInterfaceFlowFiltersResource) resource)
                                                .getVtnName() != null
                                && !((VRouterInterfaceFlowFiltersResource) resource)
                                                .getVtnName().trim().isEmpty()) {
+                       // For VRouterInterfaceFlowFiltersResource instance
                        isValid = validator.isValidMaxLengthAlphaNum(
                                        ((VRouterInterfaceFlowFiltersResource) resource)
                                                        .getVtnName().trim(), VtnServiceJsonConsts.LEN_31);
@@ -296,12 +290,11 @@ public class FlowFilterResourceValidator extends VtnServiceValidator {
                                }
                        }
                        setListOpFlag(true);
-               }
-               // For VRouterInterfaceFlowFilterResource instance
-               else if (resource instanceof VRouterInterfaceFlowFilterResource
+               } else if (resource instanceof VRouterInterfaceFlowFilterResource
                                && ((VRouterInterfaceFlowFilterResource) resource).getVtnName() != null
                                && !((VRouterInterfaceFlowFilterResource) resource)
                                                .getVtnName().trim().isEmpty()) {
+                       // For VRouterInterfaceFlowFilterResource instance
                        isValid = validator.isValidMaxLengthAlphaNum(
                                        ((VRouterInterfaceFlowFilterResource) resource)
                                                        .getVtnName().trim(), VtnServiceJsonConsts.LEN_31);
@@ -352,6 +345,7 @@ public class FlowFilterResourceValidator extends VtnServiceValidator {
                        }
                        setListOpFlag(false);
                }
+
                LOG.trace("Complete FlowFilterResourceValidator#validateUri()");
                return isValid;
        }
@@ -360,8 +354,9 @@ public class FlowFilterResourceValidator extends VtnServiceValidator {
         * Validate request json for get and post method of FlowFilter API
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start FlowFilterResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of FlowFilterResourceValidator");
index 00fa7b9273ce91e5d3e5f14fcc4e5495e551bda3..825007a69223b69ebdd8f67b99c256fa51cae880 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -29,7 +29,7 @@ public class FlowListEntryResourceValidator extends VtnServiceValidator {
        private static final Logger LOG = Logger
                        .getLogger(FlowListEntryResourceValidator.class.getName());
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new flow list entry resource validator.
@@ -47,7 +47,7 @@ public class FlowListEntryResourceValidator extends VtnServiceValidator {
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start FlowListEntryResourceValidator#validateUri()");
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.URI
@@ -65,9 +65,9 @@ public class FlowListEntryResourceValidator extends VtnServiceValidator {
                                if (((FlowListEntryResource) resource).getSeqnum() != null
                                                && !((FlowListEntryResource) resource).getSeqnum()
                                                                .trim().isEmpty()) {
-                                       isValid = validator.isValidRange(((FlowListEntryResource) resource)
-                                                                       .getSeqnum().trim(),
-                                                       VtnServiceJsonConsts.VAL_1,
+                                       isValid = validator.isValidRange(
+                                                       ((FlowListEntryResource) resource).getSeqnum()
+                                                                       .trim(), VtnServiceJsonConsts.VAL_1,
                                                        VtnServiceJsonConsts.VAL_65535);
                                } else {
                                        isValid = false;
@@ -92,8 +92,9 @@ public class FlowListEntryResourceValidator extends VtnServiceValidator {
         * FlowListEntry API
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start FlowListEntryResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of FlowListEntryResourceValidator");
@@ -334,12 +335,9 @@ public class FlowListEntryResourceValidator extends VtnServiceValidator {
                                if (flowListEntry.has(VtnServiceJsonConsts.IPPROTO)
                                                && flowListEntry.getAsJsonPrimitive(
                                                                VtnServiceJsonConsts.IPPROTO).getAsString() != null) {
-                                       isValid = validator.isValidRange(
-                                                       flowListEntry
-                                                                       .getAsJsonPrimitive(
-                                                                                       VtnServiceJsonConsts.IPPROTO)
-                                                                       .getAsString().trim(),
-                                                       VtnServiceJsonConsts.VAL_1,
+                                       isValid = validator.isValidRange(flowListEntry
+                                                       .getAsJsonPrimitive(VtnServiceJsonConsts.IPPROTO)
+                                                       .getAsString().trim(), VtnServiceJsonConsts.VAL_1,
                                                        VtnServiceJsonConsts.VAL_255);
                                }
                        }
@@ -349,12 +347,9 @@ public class FlowListEntryResourceValidator extends VtnServiceValidator {
                                if (flowListEntry.has(VtnServiceJsonConsts.IPDSCP)
                                                && flowListEntry.getAsJsonPrimitive(
                                                                VtnServiceJsonConsts.IPDSCP).getAsString() != null) {
-                                       isValid = validator.isValidRange(
-                                                       flowListEntry
-                                                                       .getAsJsonPrimitive(
-                                                                                       VtnServiceJsonConsts.IPDSCP)
-                                                                       .getAsString().trim(),
-                                                       VtnServiceJsonConsts.VAL_0,
+                                       isValid = validator.isValidRange(flowListEntry
+                                                       .getAsJsonPrimitive(VtnServiceJsonConsts.IPDSCP)
+                                                       .getAsString().trim(), VtnServiceJsonConsts.VAL_0,
                                                        VtnServiceJsonConsts.VAL_63);
                                }
                        }
@@ -364,12 +359,9 @@ public class FlowListEntryResourceValidator extends VtnServiceValidator {
                                if (flowListEntry.has(VtnServiceJsonConsts.L4DSTPORT)
                                                && flowListEntry.getAsJsonPrimitive(
                                                                VtnServiceJsonConsts.L4DSTPORT).getAsString() != null) {
-                                       isValid = validator.isValidRange(
-                                                       flowListEntry
-                                                                       .getAsJsonPrimitive(
-                                                                                       VtnServiceJsonConsts.L4DSTPORT)
-                                                                       .getAsString().trim(),
-                                                       VtnServiceJsonConsts.VAL_0,
+                                       isValid = validator.isValidRange(flowListEntry
+                                                       .getAsJsonPrimitive(VtnServiceJsonConsts.L4DSTPORT)
+                                                       .getAsString().trim(), VtnServiceJsonConsts.VAL_0,
                                                        VtnServiceJsonConsts.VAL_65535);
                                }
                        }
@@ -395,14 +387,11 @@ public class FlowListEntryResourceValidator extends VtnServiceValidator {
                                if (flowListEntry.has(VtnServiceJsonConsts.L4SRCPORT)
                                                && flowListEntry.getAsJsonPrimitive(
                                                                VtnServiceJsonConsts.L4SRCPORT).getAsString() != null) {
-                                       isValid = validator.isValidRange(
-                                                       flowListEntry
-                                                                       .getAsJsonPrimitive(
-                                                                                       VtnServiceJsonConsts.L4SRCPORT)
-                                                                       .getAsString().trim(),
-                                                       VtnServiceJsonConsts.VAL_0,
+                                       isValid = validator.isValidRange(flowListEntry
+                                                       .getAsJsonPrimitive(VtnServiceJsonConsts.L4SRCPORT)
+                                                       .getAsString().trim(), VtnServiceJsonConsts.VAL_0,
 
-                                                       VtnServiceJsonConsts.VAL_65535);
+                                       VtnServiceJsonConsts.VAL_65535);
                                }
                        }
                        // validation for key: l4srcendport
index 5e31b5e8ee9fe5e72de915d8260aa66446d1d8b4..a8a6f339a4bca7c7d3539f5ca9617c135192cb9c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -29,7 +29,7 @@ public class FlowListResourceValidator extends VtnServiceValidator {
        private static final Logger LOG = Logger
                        .getLogger(FlowListResourceValidator.class.getName());
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new flow list resource validator.
@@ -47,7 +47,7 @@ public class FlowListResourceValidator extends VtnServiceValidator {
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start FlowListResourceValidator#validateUri()");
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.URI
@@ -71,8 +71,9 @@ public class FlowListResourceValidator extends VtnServiceValidator {
         * Validate request Json object for get and post method of FlowList API.
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start FlowListResourceValidator#validate()");
 
                LOG.info("Validating request for " + method
index f0f56c9c27c9a0d8dc3ccd04b8adce27aa231dec..1d73ba59c789f14426059ec62989266ea22f2d82 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -29,7 +29,7 @@ public class HostAddressResourceValidator extends VtnServiceValidator {
                        .getLogger(HostAddressResourceValidator.class.getName());
 
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new host address resource validator.
@@ -47,7 +47,7 @@ public class HostAddressResourceValidator extends VtnServiceValidator {
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start HostAddressResourceValidator#validateUri()");
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.URI
@@ -83,8 +83,9 @@ public class HostAddressResourceValidator extends VtnServiceValidator {
         * API.
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start HostAddressResourceValidator#validate()");
                boolean isValid = false;
                try {
@@ -160,11 +161,9 @@ public class HostAddressResourceValidator extends VtnServiceValidator {
                                                && ipaddr.getAsJsonPrimitive(
                                                                VtnServiceJsonConsts.PREFIX).getAsString() != null) {
                                        isValid = validator.isValidRange(
-                                                       ipaddr
-                                                                       .getAsJsonPrimitive(
-                                                                                       VtnServiceJsonConsts.PREFIX)
-                                                                       .getAsString().trim(),
-                                                       VtnServiceJsonConsts.VAL_1,
+                                                       ipaddr.getAsJsonPrimitive(
+                                                                       VtnServiceJsonConsts.PREFIX).getAsString()
+                                                                       .trim(), VtnServiceJsonConsts.VAL_1,
                                                        VtnServiceJsonConsts.VAL_30);
                                } else {
                                        isValid = false;
@@ -174,4 +173,4 @@ public class HostAddressResourceValidator extends VtnServiceValidator {
                LOG.trace("Complete HostAddressResourceValidator#validatePut()");
                return isValid;
        }
-}
\ No newline at end of file
+}
index 9ba5d311536860f09c9c2ebc4ca2c2ae66de09a5..f66ed51875fdd889a75417b091f25d8da9f71e30 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -37,7 +37,7 @@ public class InterfaceResourceValidator extends VtnServiceValidator {
        private static final Logger LOG = Logger
                        .getLogger(InterfaceResourceValidator.class.getName());
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new interface resource validator.
@@ -61,7 +61,7 @@ public class InterfaceResourceValidator extends VtnServiceValidator {
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start InterfaceResourceValidator#validateUri()");
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.URI
@@ -69,7 +69,7 @@ public class InterfaceResourceValidator extends VtnServiceValidator {
                if (resource instanceof VBypassInterfaceResource
                                && ((VBypassInterfaceResource) resource).getVtnName() != null
                                && !((VBypassInterfaceResource) resource).getVtnName().trim()
-                               .isEmpty()) {
+                                               .isEmpty()) {
                        isValid = validator.isValidMaxLengthAlphaNum(
                                        ((VBypassInterfaceResource) resource).getVtnName().trim(),
                                        VtnServiceJsonConsts.LEN_31);
@@ -77,11 +77,12 @@ public class InterfaceResourceValidator extends VtnServiceValidator {
                                setInvalidParameter(VtnServiceJsonConsts.URI
                                                + VtnServiceJsonConsts.VBYPASS_NAME);
                                if (((VBypassInterfaceResource) resource).getVbypassName() != null
-                                               && !((VBypassInterfaceResource) resource).getVbypassName()
-                                               .trim().isEmpty()) {
+                                               && !((VBypassInterfaceResource) resource)
+                                                               .getVbypassName().trim().isEmpty()) {
                                        isValid = validator.isValidMaxLengthAlphaNum(
-                                                       ((VBypassInterfaceResource) resource).getVbypassName()
-                                                       .trim(), VtnServiceJsonConsts.LEN_31);
+                                                       ((VBypassInterfaceResource) resource)
+                                                                       .getVbypassName().trim(),
+                                                       VtnServiceJsonConsts.LEN_31);
                                } else {
                                        isValid = false;
                                }
@@ -91,10 +92,10 @@ public class InterfaceResourceValidator extends VtnServiceValidator {
                                                + VtnServiceJsonConsts.IFNAME);
                                if (((VBypassInterfaceResource) resource).getIfName() != null
                                                && !((VBypassInterfaceResource) resource).getIfName()
-                                               .trim().isEmpty()) {
+                                                               .trim().isEmpty()) {
                                        isValid = validator.isValidMaxLengthAlphaNum(
                                                        ((VBypassInterfaceResource) resource).getIfName()
-                                                       .trim(), VtnServiceJsonConsts.LEN_31);
+                                                                       .trim(), VtnServiceJsonConsts.LEN_31);
                                } else {
                                        isValid = false;
                                }
@@ -103,21 +104,19 @@ public class InterfaceResourceValidator extends VtnServiceValidator {
                } else if (resource instanceof VBypassInterfacesResource
                                && ((VBypassInterfacesResource) resource).getVtnName() != null
                                && !((VBypassInterfacesResource) resource).getVtnName().trim()
-                               .isEmpty()) {
-                       isValid = validator
-                                       .isValidMaxLengthAlphaNum(
-                                                       ((VBypassInterfacesResource) resource)
-                                                       .getVtnName().trim(),
-                                                       VtnServiceJsonConsts.LEN_31);
+                                               .isEmpty()) {
+                       isValid = validator.isValidMaxLengthAlphaNum(
+                                       ((VBypassInterfacesResource) resource).getVtnName().trim(),
+                                       VtnServiceJsonConsts.LEN_31);
                        if (isValid) {
                                setInvalidParameter(VtnServiceJsonConsts.URI
                                                + VtnServiceJsonConsts.VBYPASS_NAME);
                                if (((VBypassInterfacesResource) resource).getVbypassName() != null
                                                && !((VBypassInterfacesResource) resource)
-                                               .getVbypassName().trim().isEmpty()) {
+                                                               .getVbypassName().trim().isEmpty()) {
                                        isValid = validator.isValidMaxLengthAlphaNum(
                                                        ((VBypassInterfacesResource) resource)
-                                                       .getVbypassName().trim(),
+                                                                       .getVbypassName().trim(),
                                                        VtnServiceJsonConsts.LEN_31);
                                } else {
                                        isValid = false;
@@ -127,7 +126,7 @@ public class InterfaceResourceValidator extends VtnServiceValidator {
                } else if (resource instanceof VTunnelInterfaceResource
                                && ((VTunnelInterfaceResource) resource).getVtnName() != null
                                && !((VTunnelInterfaceResource) resource).getVtnName().trim()
-                               .trim().isEmpty()) {
+                                               .trim().isEmpty()) {
                        isValid = validator.isValidMaxLengthAlphaNum(
                                        ((VTunnelInterfaceResource) resource).getVtnName().trim(),
                                        VtnServiceJsonConsts.LEN_31);
@@ -136,10 +135,10 @@ public class InterfaceResourceValidator extends VtnServiceValidator {
                                                + VtnServiceJsonConsts.VTUNNELNAME);
                                if (((VTunnelInterfaceResource) resource).getvTunnelName() != null
                                                && !((VTunnelInterfaceResource) resource)
-                                               .getvTunnelName().trim().isEmpty()) {
+                                                               .getvTunnelName().trim().isEmpty()) {
                                        isValid = validator.isValidMaxLengthAlphaNum(
                                                        ((VTunnelInterfaceResource) resource)
-                                                       .getvTunnelName().trim(),
+                                                                       .getvTunnelName().trim(),
                                                        VtnServiceJsonConsts.LEN_31);
                                } else {
                                        isValid = false;
@@ -150,10 +149,10 @@ public class InterfaceResourceValidator extends VtnServiceValidator {
                                                + VtnServiceJsonConsts.IFNAME);
                                if (((VTunnelInterfaceResource) resource).getIfName() != null
                                                && !((VTunnelInterfaceResource) resource).getIfName()
-                                               .trim().isEmpty()) {
+                                                               .trim().isEmpty()) {
                                        isValid = validator.isValidMaxLengthAlphaNum(
                                                        ((VTunnelInterfaceResource) resource).getIfName()
-                                                       .trim(), VtnServiceJsonConsts.LEN_31);
+                                                                       .trim(), VtnServiceJsonConsts.LEN_31);
                                } else {
                                        isValid = false;
                                }
@@ -162,7 +161,7 @@ public class InterfaceResourceValidator extends VtnServiceValidator {
                } else if (resource instanceof VTunnelInterfacesResource
                                && ((VTunnelInterfacesResource) resource).getVtnName() != null
                                && !((VTunnelInterfacesResource) resource).getVtnName().trim()
-                               .isEmpty()) {
+                                               .isEmpty()) {
                        isValid = validator.isValidMaxLengthAlphaNum(
                                        ((VTunnelInterfacesResource) resource).getVtnName().trim(),
                                        VtnServiceJsonConsts.LEN_31);
@@ -171,10 +170,10 @@ public class InterfaceResourceValidator extends VtnServiceValidator {
                                                + VtnServiceJsonConsts.VTUNNELNAME);
                                if (((VTunnelInterfacesResource) resource).getvTunnelName() != null
                                                && !((VTunnelInterfacesResource) resource)
-                                               .getvTunnelName().trim().isEmpty()) {
+                                                               .getvTunnelName().trim().isEmpty()) {
                                        isValid = validator.isValidMaxLengthAlphaNum(
                                                        ((VTunnelInterfacesResource) resource)
-                                                       .getvTunnelName().trim(),
+                                                                       .getvTunnelName().trim(),
                                                        VtnServiceJsonConsts.LEN_31);
                                } else {
                                        isValid = false;
@@ -184,7 +183,7 @@ public class InterfaceResourceValidator extends VtnServiceValidator {
                } else if (resource instanceof VBridgeInterfaceResource
                                && ((VBridgeInterfaceResource) resource).getVtnName() != null
                                && !((VBridgeInterfaceResource) resource).getVtnName().trim()
-                               .isEmpty()) {
+                                               .isEmpty()) {
                        isValid = validator.isValidMaxLengthAlphaNum(
                                        ((VBridgeInterfaceResource) resource).getVtnName().trim(),
                                        VtnServiceJsonConsts.LEN_31);
@@ -193,10 +192,10 @@ public class InterfaceResourceValidator extends VtnServiceValidator {
                                                + VtnServiceJsonConsts.VBRNAME);
                                if (((VBridgeInterfaceResource) resource).getVbrName() != null
                                                && !((VBridgeInterfaceResource) resource).getVbrName()
-                                               .trim().isEmpty()) {
+                                                               .trim().isEmpty()) {
                                        isValid = validator.isValidMaxLengthAlphaNum(
                                                        ((VBridgeInterfaceResource) resource).getVbrName()
-                                                       .trim(), VtnServiceJsonConsts.LEN_31);
+                                                                       .trim(), VtnServiceJsonConsts.LEN_31);
                                } else {
                                        isValid = false;
                                }
@@ -206,10 +205,10 @@ public class InterfaceResourceValidator extends VtnServiceValidator {
                                                + VtnServiceJsonConsts.IFNAME);
                                if (((VBridgeInterfaceResource) resource).getIfName() != null
                                                && !((VBridgeInterfaceResource) resource).getIfName()
-                                               .trim().isEmpty()) {
+                                                               .trim().isEmpty()) {
                                        isValid = validator.isValidMaxLengthAlphaNum(
                                                        ((VBridgeInterfaceResource) resource).getIfName()
-                                                       .trim(), VtnServiceJsonConsts.LEN_31);
+                                                                       .trim(), VtnServiceJsonConsts.LEN_31);
                                } else {
                                        isValid = false;
                                }
@@ -218,7 +217,7 @@ public class InterfaceResourceValidator extends VtnServiceValidator {
                } else if (resource instanceof VBridgeInterfacesResource
                                && ((VBridgeInterfacesResource) resource).getVtnName() != null
                                && !((VBridgeInterfacesResource) resource).getVtnName().trim()
-                               .isEmpty()) {
+                                               .isEmpty()) {
                        isValid = validator.isValidMaxLengthAlphaNum(
                                        ((VBridgeInterfacesResource) resource).getVtnName().trim(),
                                        VtnServiceJsonConsts.LEN_31);
@@ -227,10 +226,10 @@ public class InterfaceResourceValidator extends VtnServiceValidator {
                                                + VtnServiceJsonConsts.VBRNAME);
                                if (((VBridgeInterfacesResource) resource).getVbrName() != null
                                                && !((VBridgeInterfacesResource) resource).getVbrName()
-                                               .trim().isEmpty()) {
+                                                               .trim().isEmpty()) {
                                        isValid = validator.isValidMaxLengthAlphaNum(
                                                        ((VBridgeInterfacesResource) resource).getVbrName()
-                                                       .trim(), VtnServiceJsonConsts.LEN_31);
+                                                                       .trim(), VtnServiceJsonConsts.LEN_31);
                                } else {
                                        isValid = false;
                                }
@@ -239,21 +238,21 @@ public class InterfaceResourceValidator extends VtnServiceValidator {
                } else if (resource instanceof DhcpRelayInterfaceResource
                                && ((DhcpRelayInterfaceResource) resource).getVtnName() != null
                                && !((DhcpRelayInterfaceResource) resource).getVtnName().trim()
-                               .isEmpty()) {
+                                               .isEmpty()) {
                        isValid = validator
                                        .isValidMaxLengthAlphaNum(
                                                        ((DhcpRelayInterfaceResource) resource)
-                                                       .getVtnName().trim(),
+                                                                       .getVtnName().trim(),
                                                        VtnServiceJsonConsts.LEN_31);
                        if (isValid) {
                                setInvalidParameter(VtnServiceJsonConsts.URI
                                                + VtnServiceJsonConsts.VRTNAME);
                                if (((DhcpRelayInterfaceResource) resource).getVrtName() != null
                                                && !((DhcpRelayInterfaceResource) resource)
-                                               .getVrtName().trim().isEmpty()) {
+                                                               .getVrtName().trim().isEmpty()) {
                                        isValid = validator.isValidMaxLengthAlphaNum(
                                                        ((DhcpRelayInterfaceResource) resource)
-                                                       .getVrtName().trim(),
+                                                                       .getVrtName().trim(),
                                                        VtnServiceJsonConsts.LEN_31);
                                } else {
                                        isValid = false;
@@ -264,10 +263,10 @@ public class InterfaceResourceValidator extends VtnServiceValidator {
                                                + VtnServiceJsonConsts.IFNAME);
                                if (((DhcpRelayInterfaceResource) resource).getIfName() != null
                                                && !((DhcpRelayInterfaceResource) resource).getIfName()
-                                               .trim().isEmpty()) {
+                                                               .trim().isEmpty()) {
                                        isValid = validator.isValidMaxLengthAlphaNum(
                                                        ((DhcpRelayInterfaceResource) resource).getIfName()
-                                                       .trim(), VtnServiceJsonConsts.LEN_31);
+                                                                       .trim(), VtnServiceJsonConsts.LEN_31);
                                } else {
                                        isValid = false;
                                }
@@ -276,19 +275,19 @@ public class InterfaceResourceValidator extends VtnServiceValidator {
                } else if (resource instanceof DhcpRelayInterfacesResource
                                && ((DhcpRelayInterfacesResource) resource).getVtnName() != null
                                && !((DhcpRelayInterfacesResource) resource).getVtnName()
-                               .trim().isEmpty()) {
+                                               .trim().isEmpty()) {
                        isValid = validator.isValidMaxLengthAlphaNum(
                                        ((DhcpRelayInterfacesResource) resource).getVtnName()
-                                       .trim(), VtnServiceJsonConsts.LEN_31);
+                                                       .trim(), VtnServiceJsonConsts.LEN_31);
                        if (isValid) {
                                setInvalidParameter(VtnServiceJsonConsts.URI
                                                + VtnServiceJsonConsts.VRTNAME);
                                if (((DhcpRelayInterfacesResource) resource).getVrtName() != null
                                                && !((DhcpRelayInterfacesResource) resource)
-                                               .getVrtName().trim().isEmpty()) {
+                                                               .getVrtName().trim().isEmpty()) {
                                        isValid = validator.isValidMaxLengthAlphaNum(
                                                        ((DhcpRelayInterfacesResource) resource)
-                                                       .getVrtName().trim(),
+                                                                       .getVrtName().trim(),
                                                        VtnServiceJsonConsts.LEN_31);
                                } else {
                                        isValid = false;
@@ -298,7 +297,7 @@ public class InterfaceResourceValidator extends VtnServiceValidator {
                } else if (resource instanceof VTepInterfaceResource
                                && ((VTepInterfaceResource) resource).getVtnName() != null
                                && !((VTepInterfaceResource) resource).getVtnName().trim()
-                               .isEmpty()) {
+                                               .isEmpty()) {
                        isValid = validator.isValidMaxLengthAlphaNum(
                                        ((VTepInterfaceResource) resource).getVtnName().trim(),
                                        VtnServiceJsonConsts.LEN_31);
@@ -307,10 +306,10 @@ public class InterfaceResourceValidator extends VtnServiceValidator {
                                                + VtnServiceJsonConsts.VTEPNAME);
                                if (((VTepInterfaceResource) resource).getvTepName() != null
                                                && !((VTepInterfaceResource) resource).getvTepName()
-                                               .trim().isEmpty()) {
+                                                               .trim().isEmpty()) {
                                        isValid = validator.isValidMaxLengthAlphaNum(
                                                        ((VTepInterfaceResource) resource).getvTepName()
-                                                       .trim(), VtnServiceJsonConsts.LEN_31);
+                                                                       .trim(), VtnServiceJsonConsts.LEN_31);
                                } else {
                                        isValid = false;
                                }
@@ -320,10 +319,10 @@ public class InterfaceResourceValidator extends VtnServiceValidator {
                                                + VtnServiceJsonConsts.IFNAME);
                                if (((VTepInterfaceResource) resource).getIfName() != null
                                                && !((VTepInterfaceResource) resource).getIfName()
-                                               .trim().isEmpty()) {
+                                                               .trim().isEmpty()) {
                                        isValid = validator.isValidMaxLengthAlphaNum(
                                                        ((VTepInterfaceResource) resource).getIfName()
-                                                       .trim(), VtnServiceJsonConsts.LEN_31);
+                                                                       .trim(), VtnServiceJsonConsts.LEN_31);
                                } else {
                                        isValid = false;
                                }
@@ -332,7 +331,7 @@ public class InterfaceResourceValidator extends VtnServiceValidator {
                } else if (resource instanceof VTepInterfacesResource
                                && ((VTepInterfacesResource) resource).getVtnName() != null
                                && !((VTepInterfacesResource) resource).getVtnName().trim()
-                               .isEmpty()) {
+                                               .isEmpty()) {
                        isValid = validator.isValidMaxLengthAlphaNum(
                                        ((VTepInterfacesResource) resource).getVtnName().trim(),
                                        VtnServiceJsonConsts.LEN_31);
@@ -341,10 +340,10 @@ public class InterfaceResourceValidator extends VtnServiceValidator {
                                                + VtnServiceJsonConsts.VTEPNAME);
                                if (((VTepInterfacesResource) resource).getvTepName() != null
                                                && !((VTepInterfacesResource) resource).getvTepName()
-                                               .trim().isEmpty()) {
+                                                               .trim().isEmpty()) {
                                        isValid = validator.isValidMaxLengthAlphaNum(
                                                        ((VTepInterfacesResource) resource).getvTepName()
-                                                       .trim(), VtnServiceJsonConsts.LEN_31);
+                                                                       .trim(), VtnServiceJsonConsts.LEN_31);
                                } else {
                                        isValid = false;
                                }
@@ -359,8 +358,9 @@ public class InterfaceResourceValidator extends VtnServiceValidator {
         * validate request Json for get, put and post method of Interface API
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start InterfaceResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of InterfaceResourceValidator");
@@ -429,9 +429,9 @@ public class InterfaceResourceValidator extends VtnServiceValidator {
                setInvalidParameter(VtnServiceJsonConsts.OP);
                if (requestBody.has(VtnServiceJsonConsts.OP)
                                && requestBody.getAsJsonPrimitive(VtnServiceJsonConsts.OP)
-                               .getAsString() != null
+                                               .getAsString() != null
                                && !requestBody.getAsJsonPrimitive(VtnServiceJsonConsts.OP)
-                               .getAsString().trim().isEmpty()) {
+                                               .getAsString().trim().isEmpty()) {
                        isValid = requestBody.getAsJsonPrimitive(VtnServiceJsonConsts.OP)
                                        .getAsString().trim()
                                        .equalsIgnoreCase(VtnServiceJsonConsts.COUNT);
@@ -455,7 +455,7 @@ public class InterfaceResourceValidator extends VtnServiceValidator {
                setInvalidParameter(VtnServiceJsonConsts.INTERFACE);
                if (requestBody.has(VtnServiceJsonConsts.INTERFACE)
                                && requestBody.get(VtnServiceJsonConsts.INTERFACE)
-                               .isJsonObject()) {
+                                               .isJsonObject()) {
                        final JsonObject commonInterface = requestBody
                                        .getAsJsonObject(VtnServiceJsonConsts.INTERFACE);
                        // validation for key: if_name(mandatory)
@@ -463,7 +463,7 @@ public class InterfaceResourceValidator extends VtnServiceValidator {
                        if (commonInterface.has(VtnServiceJsonConsts.IFNAME)
                                        && commonInterface.getAsJsonPrimitive(
                                                        VtnServiceJsonConsts.IFNAME).getAsString() != null
-                                                       && !commonInterface
+                                       && !commonInterface
                                                        .getAsJsonPrimitive(VtnServiceJsonConsts.IFNAME)
                                                        .getAsString().trim().isEmpty()) {
                                isValid = validator.isValidMaxLengthAlphaNum(commonInterface
@@ -493,7 +493,7 @@ public class InterfaceResourceValidator extends VtnServiceValidator {
                setInvalidParameter(VtnServiceJsonConsts.INTERFACE);
                if (requestBody.has(VtnServiceJsonConsts.INTERFACE)
                                && requestBody.get(VtnServiceJsonConsts.INTERFACE)
-                               .isJsonObject()) {
+                                               .isJsonObject()) {
                        isValid = true;
                        final JsonObject commonInterface = requestBody
                                        .getAsJsonObject(VtnServiceJsonConsts.INTERFACE);
@@ -502,10 +502,10 @@ public class InterfaceResourceValidator extends VtnServiceValidator {
                        if (commonInterface.has(VtnServiceJsonConsts.DESCRIPTION)
                                        && commonInterface.getAsJsonPrimitive(
                                                        VtnServiceJsonConsts.DESCRIPTION).getAsString() != null
-                                                       && !commonInterface
+                                       && !commonInterface
                                                        .getAsJsonPrimitive(
                                                                        VtnServiceJsonConsts.DESCRIPTION)
-                                                                       .getAsString().trim().isEmpty()) {
+                                                       .getAsString().trim().isEmpty()) {
                                isValid = validator.isValidMaxLength(commonInterface
                                                .getAsJsonPrimitive(VtnServiceJsonConsts.DESCRIPTION)
                                                .getAsString().trim(), VtnServiceJsonConsts.LEN_127);
@@ -519,11 +519,11 @@ public class InterfaceResourceValidator extends VtnServiceValidator {
                                        final String adminStatus = commonInterface
                                                        .getAsJsonPrimitive(
                                                                        VtnServiceJsonConsts.ADMINSTATUS)
-                                                                       .getAsString().trim();
+                                                       .getAsString().trim();
                                        isValid = adminStatus
                                                        .equalsIgnoreCase(VtnServiceJsonConsts.ENABLE)
                                                        || adminStatus
-                                                       .equalsIgnoreCase(VtnServiceJsonConsts.DISABLE);
+                                                                       .equalsIgnoreCase(VtnServiceJsonConsts.DISABLE);
                                }
                        }
                }
index 7aff97af5d8b83a426d1d595ca53f5d33f7d365f..3aa2ba036b90c90874b466e598cc1c170deaf834 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -30,7 +30,7 @@ public class IpRouteResourceValidator extends VtnServiceValidator {
                        .getLogger(IpRouteResourceValidator.class.getName());
 
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new Ip Route resource validator.
@@ -48,7 +48,7 @@ public class IpRouteResourceValidator extends VtnServiceValidator {
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start IpRouteResourceValidator#validateUri()");
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.URI
@@ -82,8 +82,9 @@ public class IpRouteResourceValidator extends VtnServiceValidator {
         * Validate request Json object for get method of IpRoute API.
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start IpRouteResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of IpRouteResourceValidator");
index 5c94870553542f179560354e484578f8af336b55..655e9fdca75f98d19a61dbd1d54a881c62ca523f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -29,7 +29,7 @@ public class L2DomainResourceValidator extends VtnServiceValidator {
                        .getLogger(L2DomainResourceValidator.class.getName());
 
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new l2 domain resource validator.
@@ -47,7 +47,7 @@ public class L2DomainResourceValidator extends VtnServiceValidator {
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start L2DomainResourceValidator#validateUri()");
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.URI
@@ -81,8 +81,9 @@ public class L2DomainResourceValidator extends VtnServiceValidator {
         * Validate request Json object for get method of L2DomainResource
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start L2DomainResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of L2DomainResourceValidator");
@@ -129,4 +130,4 @@ public class L2DomainResourceValidator extends VtnServiceValidator {
                LOG.trace("Complete L2DomainResourceValidator#validateGet()");
                return isValid;
        }
-}
\ No newline at end of file
+}
index 12b08083364ab9a5f3064f734066e89b3c012e2f..0378bf8f50ff0bde99608bc6cc264893636bd790 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -29,7 +29,7 @@ public class MacEntryResourceValidator extends VtnServiceValidator {
                        .getLogger(MacEntryResourceValidator.class.getName());
 
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new mac entry resource validator.
@@ -47,7 +47,7 @@ public class MacEntryResourceValidator extends VtnServiceValidator {
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start MacEntryResourceValidator#validateUri()");
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.URI
@@ -81,8 +81,9 @@ public class MacEntryResourceValidator extends VtnServiceValidator {
         * Validate request Json object for get method of MacEntry API.
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start MacEntryResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of MacEntryResourceValidator");
index fbc81bdc8d37693e9dbdb96e07a37c990820a2b5..074ead122345d3fb7742f160039f8e5c8136a68a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -15,7 +15,7 @@ import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
 import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
 import org.opendaylight.vtn.javaapi.resources.AbstractResource;
-import org.opendaylight.vtn.javaapi.resources.logical.PortMapResource;
+import org.opendaylight.vtn.javaapi.resources.logical.VBridgeInterfacePortMapResource;
 import org.opendaylight.vtn.javaapi.resources.logical.VTepInterfacePortMapResource;
 import org.opendaylight.vtn.javaapi.resources.logical.VTunnelInterfacePortMapResource;
 import org.opendaylight.vtn.javaapi.validation.CommonValidator;
@@ -31,7 +31,7 @@ public class PortMapResourceValidator extends VtnServiceValidator {
                        .getLogger(PortMapResourceValidator.class.getName());
 
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new port map resource validator.
@@ -49,25 +49,27 @@ public class PortMapResourceValidator extends VtnServiceValidator {
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start PortMapResourceValidator#validateUri()");
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.URI
                                + VtnServiceJsonConsts.VTNNAME);
-               if (resource instanceof PortMapResource
-                               && ((PortMapResource) resource).getVtnName() != null
-                               && !((PortMapResource) resource).getVtnName().trim().isEmpty()) {
+               if (resource instanceof VBridgeInterfacePortMapResource
+                               && ((VBridgeInterfacePortMapResource) resource).getVtnName() != null
+                               && !((VBridgeInterfacePortMapResource) resource).getVtnName()
+                                               .trim().isEmpty()) {
                        isValid = validator.isValidMaxLengthAlphaNum(
-                                       ((PortMapResource) resource).getVtnName().trim(),
-                                       VtnServiceJsonConsts.LEN_31);
+                                       ((VBridgeInterfacePortMapResource) resource).getVtnName()
+                                                       .trim(), VtnServiceJsonConsts.LEN_31);
                        if (isValid) {
                                setInvalidParameter(VtnServiceJsonConsts.URI
                                                + VtnServiceJsonConsts.VBRNAME);
-                               if (((PortMapResource) resource).getVbrName() != null
-                                               && !((PortMapResource) resource).getVbrName().trim()
-                                                               .isEmpty()) {
+                               if (((VBridgeInterfacePortMapResource) resource).getVbrName() != null
+                                               && !((VBridgeInterfacePortMapResource) resource)
+                                                               .getVbrName().trim().isEmpty()) {
                                        isValid = validator.isValidMaxLengthAlphaNum(
-                                                       ((PortMapResource) resource).getVbrName().trim(),
+                                                       ((VBridgeInterfacePortMapResource) resource)
+                                                                       .getVbrName().trim(),
                                                        VtnServiceJsonConsts.LEN_31);
                                } else {
                                        isValid = false;
@@ -76,70 +78,85 @@ public class PortMapResourceValidator extends VtnServiceValidator {
                        if (isValid) {
                                setInvalidParameter(VtnServiceJsonConsts.URI
                                                + VtnServiceJsonConsts.IFNAME);
-                               if (((PortMapResource) resource).getIfName() != null
-                                               && !((PortMapResource) resource).getIfName().trim()
-                                                               .isEmpty()) {
+                               if (((VBridgeInterfacePortMapResource) resource).getIfName() != null
+                                               && !((VBridgeInterfacePortMapResource) resource)
+                                                               .getIfName().trim().isEmpty()) {
                                        isValid = validator.isValidMaxLengthAlphaNum(
-                                                       ((PortMapResource) resource).getIfName().trim(),
+                                                       ((VBridgeInterfacePortMapResource) resource)
+                                                                       .getIfName().trim(),
                                                        VtnServiceJsonConsts.LEN_31);
                                } else {
                                        isValid = false;
                                }
                        }
                        setListOpFlag(false);
-               }
-               else if (resource instanceof VTunnelInterfacePortMapResource
+               } else if (resource instanceof VTunnelInterfacePortMapResource
                                && ((VTunnelInterfacePortMapResource) resource).getVtnName() != null
-                               && !((VTunnelInterfacePortMapResource) resource).getVtnName().trim().isEmpty()) {
+                               && !((VTunnelInterfacePortMapResource) resource).getVtnName()
+                                               .trim().isEmpty()) {
                        isValid = validator.isValidMaxLengthAlphaNum(
-                                       ((VTunnelInterfacePortMapResource) resource).getVtnName().trim(),
-                                       VtnServiceJsonConsts.LEN_31);
-                       if (isValid){
-                               setInvalidParameter(VtnServiceJsonConsts.URI + VtnServiceJsonConsts.VTUNNELNAME);
-                               if(((VTunnelInterfacePortMapResource) resource).getVtunnelName() != null
-                                               && !((VTunnelInterfacePortMapResource) resource).getVtunnelName().trim().isEmpty()) {
+                                       ((VTunnelInterfacePortMapResource) resource).getVtnName()
+                                                       .trim(), VtnServiceJsonConsts.LEN_31);
+                       if (isValid) {
+                               setInvalidParameter(VtnServiceJsonConsts.URI
+                                               + VtnServiceJsonConsts.VTUNNELNAME);
+                               if (((VTunnelInterfacePortMapResource) resource)
+                                               .getVtunnelName() != null
+                                               && !((VTunnelInterfacePortMapResource) resource)
+                                                               .getVtunnelName().trim().isEmpty()) {
                                        isValid = validator.isValidMaxLengthAlphaNum(
-                                                       ((VTunnelInterfacePortMapResource) resource).getVtunnelName().trim(),
+                                                       ((VTunnelInterfacePortMapResource) resource)
+                                                                       .getVtunnelName().trim(),
                                                        VtnServiceJsonConsts.LEN_31);
                                } else {
                                        isValid = false;
                                }
                        }
-                       if (isValid){
-                               setInvalidParameter(VtnServiceJsonConsts.URI + VtnServiceJsonConsts.IFNAME);
-                               if(((VTunnelInterfacePortMapResource) resource).getIfName() != null
-                                               && !((VTunnelInterfacePortMapResource) resource).getIfName().trim().isEmpty()) {
+                       if (isValid) {
+                               setInvalidParameter(VtnServiceJsonConsts.URI
+                                               + VtnServiceJsonConsts.IFNAME);
+                               if (((VTunnelInterfacePortMapResource) resource).getIfName() != null
+                                               && !((VTunnelInterfacePortMapResource) resource)
+                                                               .getIfName().trim().isEmpty()) {
                                        isValid = validator.isValidMaxLengthAlphaNum(
-                                                       ((VTunnelInterfacePortMapResource) resource).getIfName().trim(),
+                                                       ((VTunnelInterfacePortMapResource) resource)
+                                                                       .getIfName().trim(),
                                                        VtnServiceJsonConsts.LEN_31);
                                } else {
                                        isValid = false;
                                }
                        }
                        setListOpFlag(false);
-               }else if (resource instanceof VTepInterfacePortMapResource
+               } else if (resource instanceof VTepInterfacePortMapResource
                                && ((VTepInterfacePortMapResource) resource).getVtnName() != null
-                               && !((VTepInterfacePortMapResource) resource).getVtnName().trim().isEmpty()) {
+                               && !((VTepInterfacePortMapResource) resource).getVtnName()
+                                               .trim().isEmpty()) {
                        isValid = validator.isValidMaxLengthAlphaNum(
-                                       ((VTepInterfacePortMapResource) resource).getVtnName().trim(),
-                                       VtnServiceJsonConsts.LEN_31);
-                       if (isValid){
-                               setInvalidParameter(VtnServiceJsonConsts.URI + VtnServiceJsonConsts.VTEPNAME);
-                               if(((VTepInterfacePortMapResource) resource).getVtepName() != null
-                                               && !((VTepInterfacePortMapResource) resource).getVtepName().trim().isEmpty()) {
+                                       ((VTepInterfacePortMapResource) resource).getVtnName()
+                                                       .trim(), VtnServiceJsonConsts.LEN_31);
+                       if (isValid) {
+                               setInvalidParameter(VtnServiceJsonConsts.URI
+                                               + VtnServiceJsonConsts.VTEPNAME);
+                               if (((VTepInterfacePortMapResource) resource).getVtepName() != null
+                                               && !((VTepInterfacePortMapResource) resource)
+                                                               .getVtepName().trim().isEmpty()) {
                                        isValid = validator.isValidMaxLengthAlphaNum(
-                                                       ((VTepInterfacePortMapResource) resource).getVtepName().trim(),
+                                                       ((VTepInterfacePortMapResource) resource)
+                                                                       .getVtepName().trim(),
                                                        VtnServiceJsonConsts.LEN_31);
                                } else {
                                        isValid = false;
                                }
                        }
-                       if (isValid){
-                               setInvalidParameter(VtnServiceJsonConsts.URI + VtnServiceJsonConsts.IFNAME);
-                               if(((VTepInterfacePortMapResource) resource).getIfName() != null
-                                               && !((VTepInterfacePortMapResource) resource).getIfName().trim().isEmpty()) {
+                       if (isValid) {
+                               setInvalidParameter(VtnServiceJsonConsts.URI
+                                               + VtnServiceJsonConsts.IFNAME);
+                               if (((VTepInterfacePortMapResource) resource).getIfName() != null
+                                               && !((VTepInterfacePortMapResource) resource)
+                                                               .getIfName().trim().isEmpty()) {
                                        isValid = validator.isValidMaxLengthAlphaNum(
-                                                       ((VTepInterfacePortMapResource) resource).getIfName().trim(),
+                                                       ((VTepInterfacePortMapResource) resource)
+                                                                       .getIfName().trim(),
                                                        VtnServiceJsonConsts.LEN_31);
                                } else {
                                        isValid = false;
@@ -155,8 +172,9 @@ public class PortMapResourceValidator extends VtnServiceValidator {
         * Validate request Json object for get, put method of PortMap API.
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start PortMapResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of PortMapResourceValidator");
index 0de82734a99a06e44706c06fe5e8767495ab757c..d441f80b65056b6c4c351cc834acc5d4a4c085bb 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -47,7 +47,7 @@ public class StaticIpRouteResourceValidator extends VtnServiceValidator {
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start StaticIpRouteResourceValidator#validateUri()");
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.URI
@@ -138,8 +138,9 @@ public class StaticIpRouteResourceValidator extends VtnServiceValidator {
         * StaticIpRoute API.
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start StaticIpRouteResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of StaticIpRouteResourceValidator");
@@ -150,9 +151,9 @@ public class StaticIpRouteResourceValidator extends VtnServiceValidator {
                                        && VtnServiceConsts.GET.equals(method)) {
                                isValid = validateGet(requestBody, isListOpFlag());
                                updateOpParameterForList(requestBody);
-//                     } else if (isValid && requestBody != null
-//                                     && VtnServiceConsts.PUT.equals(method)) {
-//                             isValid = validatePut(requestBody);
+                               // } else if (isValid && requestBody != null
+                               // && VtnServiceConsts.PUT.equals(method)) {
+                               // isValid = validatePut(requestBody);
                        } else if (isValid && requestBody != null
                                        && VtnServiceConsts.POST.equals(method)) {
                                isValid = validatePost(requestBody);
@@ -272,32 +273,29 @@ public class StaticIpRouteResourceValidator extends VtnServiceValidator {
                                if (staticIp.has(VtnServiceJsonConsts.PREFIX)
                                                && staticIp.getAsJsonPrimitive(
                                                                VtnServiceJsonConsts.PREFIX).getAsString() != null) {
-                                       isValid = validator.isValidRange(
-                                                       staticIp
-                                                                       .getAsJsonPrimitive(
-                                                                                       VtnServiceJsonConsts.PREFIX)
-                                                                       .getAsString().trim(),
-                                                       VtnServiceJsonConsts.VAL_0,
+                                       isValid = validator.isValidRange(staticIp
+                                                       .getAsJsonPrimitive(VtnServiceJsonConsts.PREFIX)
+                                                       .getAsString().trim(), VtnServiceJsonConsts.VAL_0,
                                                        VtnServiceJsonConsts.VAL_32);
                                } else {
                                        isValid = false;
                                }
                        }
                        // validation for key: nmg_name(mandatory)
-//                     if (isValid) {
-//                             setInvalidParameter(VtnServiceJsonConsts.NMGNAME);
-//                             if (staticIp.has(VtnServiceJsonConsts.NMGNAME)
-//                                             && staticIp.getAsJsonPrimitive(
-//                                                             VtnServiceJsonConsts.NMGNAME).getAsString() != null
-//                                             && !staticIp
-//                                                             .getAsJsonPrimitive(
-//                                                                             VtnServiceJsonConsts.NMGNAME)
-//                                                             .getAsString().trim().isEmpty()) {
-//                                     isValid = validator.isValidMaxLengthAlphaNum(staticIp
-//                                                     .getAsJsonPrimitive(VtnServiceJsonConsts.NMGNAME)
-//                                                     .getAsString().trim(), VtnServiceJsonConsts.LEN_31);
-//                             }
-//                     }
+                       // if (isValid) {
+                       // setInvalidParameter(VtnServiceJsonConsts.NMGNAME);
+                       // if (staticIp.has(VtnServiceJsonConsts.NMGNAME)
+                       // && staticIp.getAsJsonPrimitive(
+                       // VtnServiceJsonConsts.NMGNAME).getAsString() != null
+                       // && !staticIp
+                       // .getAsJsonPrimitive(
+                       // VtnServiceJsonConsts.NMGNAME)
+                       // .getAsString().trim().isEmpty()) {
+                       // isValid = validator.isValidMaxLengthAlphaNum(staticIp
+                       // .getAsJsonPrimitive(VtnServiceJsonConsts.NMGNAME)
+                       // .getAsString().trim(), VtnServiceJsonConsts.LEN_31);
+                       // }
+                       // }
                        if (isValid) {
                                isValid = validatePut(requestBody);
                        }
index 7bc031b6a440acec09f58b32d0c4fd2bdc9ac5a8..42e9f5e8a47feee36226c0fc5ad2a43477942f16 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -32,7 +32,7 @@ public class VBridgeFlowFilterEntriesResourceValidator extends
                        .getLogger(VBridgeFlowFilterEntriesResourceValidator.class
                                        .getName());
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new v bridge flow filter entries resource validator.
@@ -53,7 +53,7 @@ public class VBridgeFlowFilterEntriesResourceValidator extends
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start VBridgeFlowFilterEntriesResourceValidator#validateUri()");
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.URI
@@ -65,16 +65,16 @@ public class VBridgeFlowFilterEntriesResourceValidator extends
                                                .trim().isEmpty()) {
                        isValid = validator.isValidMaxLengthAlphaNum(
                                        ((VBridgeFlowFilterEntriesResource) resource).getVtnName()
-                                       .trim(), VtnServiceJsonConsts.LEN_31);
+                                                       .trim(), VtnServiceJsonConsts.LEN_31);
                        if (isValid) {
                                setInvalidParameter(VtnServiceJsonConsts.URI
                                                + VtnServiceJsonConsts.VBRNAME);
                                if (((VBridgeFlowFilterEntriesResource) resource).getVbrName() != null
                                                && !((VBridgeFlowFilterEntriesResource) resource)
-                                               .getVbrName().trim().isEmpty()) {
+                                                               .getVbrName().trim().isEmpty()) {
                                        isValid = validator.isValidMaxLengthAlphaNum(
                                                        ((VBridgeFlowFilterEntriesResource) resource)
-                                                       .getVbrName().trim(),
+                                                                       .getVbrName().trim(),
                                                        VtnServiceJsonConsts.LEN_31);
                                } else {
                                        isValid = false;
@@ -85,11 +85,11 @@ public class VBridgeFlowFilterEntriesResourceValidator extends
                                                + VtnServiceJsonConsts.FFTYPE);
                                if (((VBridgeFlowFilterEntriesResource) resource).getFfType() != null
                                                && !((VBridgeFlowFilterEntriesResource) resource)
-                                               .getFfType().trim().isEmpty()) {
+                                                               .getFfType().trim().isEmpty()) {
                                        isValid = VtnServiceJsonConsts.IN
                                                        .equalsIgnoreCase(((VBridgeFlowFilterEntriesResource) resource)
                                                                        .getFfType().trim())
-                                                                       || VtnServiceJsonConsts.OUT
+                                                       || VtnServiceJsonConsts.OUT
                                                                        .equalsIgnoreCase(((VBridgeFlowFilterEntriesResource) resource)
                                                                                        .getFfType().trim());
                                } else {
@@ -97,28 +97,26 @@ public class VBridgeFlowFilterEntriesResourceValidator extends
                                }
                        }
                        setListOpFlag(true);
-               }
-
-               // For VBridgeInterfaceFlowFilterEntriesResource instance
-               else if (resource instanceof VBridgeInterfaceFlowFilterEntriesResource
+               } else if (resource instanceof VBridgeInterfaceFlowFilterEntriesResource
                                && ((VBridgeInterfaceFlowFilterEntriesResource) resource)
-                               .getVtnName() != null
+                                               .getVtnName() != null
                                && !((VBridgeInterfaceFlowFilterEntriesResource) resource)
-                               .getVtnName().trim().isEmpty()) {
+                                               .getVtnName().trim().isEmpty()) {
+                       // For VBridgeInterfaceFlowFilterEntriesResource instance
                        isValid = validator.isValidMaxLengthAlphaNum(
                                        ((VBridgeInterfaceFlowFilterEntriesResource) resource)
-                                       .getVtnName().trim(), VtnServiceJsonConsts.LEN_31);
+                                                       .getVtnName().trim(), VtnServiceJsonConsts.LEN_31);
                        if (isValid) {
                                setInvalidParameter(VtnServiceJsonConsts.URI
                                                + VtnServiceJsonConsts.VBRNAME);
                                if (((VBridgeInterfaceFlowFilterEntriesResource) resource)
                                                .getVbrName() != null
                                                && !((VBridgeInterfaceFlowFilterEntriesResource) resource)
-                                               .getVbrName().trim().isEmpty()) {
+                                                               .getVbrName().trim().isEmpty()) {
                                        isValid = validator
                                                        .isValidMaxLengthAlphaNum(
                                                                        ((VBridgeInterfaceFlowFilterEntriesResource) resource)
-                                                                       .getVbrName().trim(),
+                                                                                       .getVbrName().trim(),
                                                                        VtnServiceJsonConsts.LEN_31);
                                } else {
                                        isValid = false;
@@ -130,11 +128,11 @@ public class VBridgeFlowFilterEntriesResourceValidator extends
                                if (((VBridgeInterfaceFlowFilterEntriesResource) resource)
                                                .getIfName() != null
                                                && !((VBridgeInterfaceFlowFilterEntriesResource) resource)
-                                               .getIfName().trim().isEmpty()) {
+                                                               .getIfName().trim().isEmpty()) {
                                        isValid = validator
                                                        .isValidMaxLengthAlphaNum(
                                                                        ((VBridgeInterfaceFlowFilterEntriesResource) resource)
-                                                                       .getIfName().trim(),
+                                                                                       .getIfName().trim(),
                                                                        VtnServiceJsonConsts.LEN_31);
                                } else {
                                        isValid = false;
@@ -146,11 +144,11 @@ public class VBridgeFlowFilterEntriesResourceValidator extends
                                if (((VBridgeInterfaceFlowFilterEntriesResource) resource)
                                                .getFfType() != null
                                                && !((VBridgeInterfaceFlowFilterEntriesResource) resource)
-                                               .getFfType().trim().isEmpty()) {
+                                                               .getFfType().trim().isEmpty()) {
                                        isValid = VtnServiceJsonConsts.IN
                                                        .equalsIgnoreCase(((VBridgeInterfaceFlowFilterEntriesResource) resource)
                                                                        .getFfType().trim())
-                                                                       || VtnServiceJsonConsts.OUT
+                                                       || VtnServiceJsonConsts.OUT
                                                                        .equalsIgnoreCase(((VBridgeInterfaceFlowFilterEntriesResource) resource)
                                                                                        .getFfType().trim());
                                } else {
@@ -158,28 +156,26 @@ public class VBridgeFlowFilterEntriesResourceValidator extends
                                }
                        }
                        setListOpFlag(true);
-               }
-
-               // For VRouterInterfaceFlowFilterEntriesResource instance
-               else if (resource instanceof VRouterInterfaceFlowFilterEntriesResource
+               } else if (resource instanceof VRouterInterfaceFlowFilterEntriesResource
                                && ((VRouterInterfaceFlowFilterEntriesResource) resource)
-                               .getVtnName() != null
+                                               .getVtnName() != null
                                && !((VRouterInterfaceFlowFilterEntriesResource) resource)
-                               .getVtnName().trim().isEmpty()) {
+                                               .getVtnName().trim().isEmpty()) {
+                       // For VRouterInterfaceFlowFilterEntriesResource instance
                        isValid = validator.isValidMaxLengthAlphaNum(
                                        ((VRouterInterfaceFlowFilterEntriesResource) resource)
-                                       .getVtnName().trim(), VtnServiceJsonConsts.LEN_31);
+                                                       .getVtnName().trim(), VtnServiceJsonConsts.LEN_31);
                        if (isValid) {
                                setInvalidParameter(VtnServiceJsonConsts.URI
                                                + VtnServiceJsonConsts.VRTNAME);
                                if (((VRouterInterfaceFlowFilterEntriesResource) resource)
                                                .getVrtName() != null
                                                && !((VRouterInterfaceFlowFilterEntriesResource) resource)
-                                               .getVrtName().trim().isEmpty()) {
+                                                               .getVrtName().trim().isEmpty()) {
                                        isValid = validator
                                                        .isValidMaxLengthAlphaNum(
                                                                        ((VRouterInterfaceFlowFilterEntriesResource) resource)
-                                                                       .getVrtName().trim(),
+                                                                                       .getVrtName().trim(),
                                                                        VtnServiceJsonConsts.LEN_31);
                                } else {
                                        isValid = false;
@@ -191,11 +187,11 @@ public class VBridgeFlowFilterEntriesResourceValidator extends
                                if (((VRouterInterfaceFlowFilterEntriesResource) resource)
                                                .getIfName() != null
                                                && !((VRouterInterfaceFlowFilterEntriesResource) resource)
-                                               .getIfName().trim().isEmpty()) {
+                                                               .getIfName().trim().isEmpty()) {
                                        isValid = validator
                                                        .isValidMaxLengthAlphaNum(
                                                                        ((VRouterInterfaceFlowFilterEntriesResource) resource)
-                                                                       .getIfName().trim(),
+                                                                                       .getIfName().trim(),
                                                                        VtnServiceJsonConsts.LEN_31);
                                } else {
                                        isValid = false;
@@ -207,11 +203,11 @@ public class VBridgeFlowFilterEntriesResourceValidator extends
                                if (((VRouterInterfaceFlowFilterEntriesResource) resource)
                                                .getFfType() != null
                                                && !((VRouterInterfaceFlowFilterEntriesResource) resource)
-                                               .getFfType().trim().isEmpty()) {
+                                                               .getFfType().trim().isEmpty()) {
                                        isValid = VtnServiceJsonConsts.IN
                                                        .equalsIgnoreCase(((VRouterInterfaceFlowFilterEntriesResource) resource)
                                                                        .getFfType().trim())
-                                                                       || VtnServiceJsonConsts.OUT
+                                                       || VtnServiceJsonConsts.OUT
                                                                        .equalsIgnoreCase(((VRouterInterfaceFlowFilterEntriesResource) resource)
                                                                                        .getFfType().trim());
                                } else {
@@ -220,6 +216,7 @@ public class VBridgeFlowFilterEntriesResourceValidator extends
                        }
                        setListOpFlag(true);
                }
+
                LOG.trace("Complete VBridgeFlowFilterEntriesResourceValidator#validateUri()");
                return isValid;
        }
@@ -230,8 +227,9 @@ public class VBridgeFlowFilterEntriesResourceValidator extends
         * VrouterInterfaceFlowFilterEntry API.
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start VBridgeFlowFilterEntriesResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of VBridgeFlowFilterEntriesResourceValidator");
@@ -293,17 +291,18 @@ public class VBridgeFlowFilterEntriesResourceValidator extends
                setInvalidParameter(VtnServiceJsonConsts.FLOWFILTERENTRY);
                if (requestBody.has(VtnServiceJsonConsts.FLOWFILTERENTRY)
                                && requestBody.get(VtnServiceJsonConsts.FLOWFILTERENTRY)
-                               .isJsonObject()) {
+                                               .isJsonObject()) {
                        final JsonObject ffEntry = requestBody
                                        .getAsJsonObject(VtnServiceJsonConsts.FLOWFILTERENTRY);
                        // validation for key: seqnum(mandatory)
                        setInvalidParameter(VtnServiceJsonConsts.SEQNUM);
                        if (ffEntry.has(VtnServiceJsonConsts.SEQNUM)
                                        && ffEntry.getAsJsonPrimitive(VtnServiceJsonConsts.SEQNUM)
-                                       .getAsString() != null) {
-                               isValid = validator.isValidRange(ffEntry
-                                               .getAsJsonPrimitive(VtnServiceJsonConsts.SEQNUM)
-                                               .getAsString().trim(), VtnServiceJsonConsts.VAL_1,
+                                                       .getAsString() != null) {
+                               isValid = validator.isValidRange(
+                                               ffEntry.getAsJsonPrimitive(VtnServiceJsonConsts.SEQNUM)
+                                                               .getAsString().trim(),
+                                               VtnServiceJsonConsts.VAL_1,
                                                VtnServiceJsonConsts.VAL_65535);
                        }
                        if (isValid) {
index 8a30ab979fc74dca6eac075910b7fb65d0a5ba28..8de861dfd5080e8453c812a3faaa62b8e7023143 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -27,12 +27,11 @@ import org.opendaylight.vtn.javaapi.validation.VtnServiceValidator;
  * VrouterInterfaceFlowFilterEntry API.
  */
 public class VBridgeFlowFilterEntryResourceValidator extends
-VtnServiceValidator {
+               VtnServiceValidator {
        private static final Logger LOG = Logger
-                       .getLogger(VBridgeFlowFilterEntryResourceValidator.class
-                                       .getName());
+                       .getLogger(VBridgeFlowFilterEntryResourceValidator.class.getName());
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new vbridge flow filter entry resource validator.
@@ -53,7 +52,7 @@ VtnServiceValidator {
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start VBridgeFlowFilterEntryResourceValidator#validateUri()");
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.URI
@@ -62,19 +61,19 @@ VtnServiceValidator {
                if (resource instanceof VBridgeFlowFilterEntryResource
                                && ((VBridgeFlowFilterEntryResource) resource).getVtnName() != null
                                && !((VBridgeFlowFilterEntryResource) resource).getVtnName()
-                               .trim().isEmpty()) {
+                                               .trim().isEmpty()) {
                        isValid = validator.isValidMaxLengthAlphaNum(
                                        ((VBridgeFlowFilterEntryResource) resource).getVtnName()
-                                       .trim(), VtnServiceJsonConsts.LEN_31);
+                                                       .trim(), VtnServiceJsonConsts.LEN_31);
                        if (isValid) {
                                setInvalidParameter(VtnServiceJsonConsts.URI
                                                + VtnServiceJsonConsts.VBRNAME);
                                if (((VBridgeFlowFilterEntryResource) resource).getVbrName() != null
                                                && !((VBridgeFlowFilterEntryResource) resource)
-                                               .getVbrName().trim().isEmpty()) {
+                                                               .getVbrName().trim().isEmpty()) {
                                        isValid = validator.isValidMaxLengthAlphaNum(
                                                        ((VBridgeFlowFilterEntryResource) resource)
-                                                       .getVbrName().trim(),
+                                                                       .getVbrName().trim(),
                                                        VtnServiceJsonConsts.LEN_31);
                                } else {
                                        isValid = false;
@@ -85,13 +84,13 @@ VtnServiceValidator {
                                                + VtnServiceJsonConsts.FFTYPE);
                                if (((VBridgeFlowFilterEntryResource) resource).getFfType() != null
                                                && !((VBridgeFlowFilterEntryResource) resource)
-                                               .getFfType().trim().isEmpty()) {
+                                                               .getFfType().trim().isEmpty()) {
                                        isValid = ((VBridgeFlowFilterEntryResource) resource)
                                                        .getFfType().trim()
                                                        .equalsIgnoreCase(VtnServiceJsonConsts.IN)
                                                        || ((VBridgeFlowFilterEntryResource) resource)
-                                                       .getFfType().trim()
-                                                       .equalsIgnoreCase(VtnServiceJsonConsts.OUT);
+                                                                       .getFfType().trim()
+                                                                       .equalsIgnoreCase(VtnServiceJsonConsts.OUT);
                                } else {
                                        isValid = false;
                                }
@@ -101,40 +100,37 @@ VtnServiceValidator {
                                                + VtnServiceJsonConsts.SEQNUM);
                                if (((VBridgeFlowFilterEntryResource) resource).getSeqnum() != null
                                                && !((VBridgeFlowFilterEntryResource) resource)
-                                               .getSeqnum().trim().isEmpty()) {
-                                       isValid = validator
-                                                       .isValidRange(
-                                                                       ((VBridgeFlowFilterEntryResource) resource)
-                                                                                       .getSeqnum().trim(),
-                                                                                       VtnServiceJsonConsts.VAL_1,
-                                                                                       VtnServiceJsonConsts.VAL_65535);
+                                                               .getSeqnum().trim().isEmpty()) {
+                                       isValid = validator.isValidRange(
+                                                       ((VBridgeFlowFilterEntryResource) resource)
+                                                                       .getSeqnum().trim(),
+                                                       VtnServiceJsonConsts.VAL_1,
+                                                       VtnServiceJsonConsts.VAL_65535);
                                } else {
                                        isValid = false;
                                }
                        }
                        setListOpFlag(false);
-               }
-
-               // For VBridgeInterfaceFlowFilterEntryResource instance
-               else if (resource instanceof VBridgeInterfaceFlowFilterEntryResource
+               } else if (resource instanceof VBridgeInterfaceFlowFilterEntryResource
                                && ((VBridgeInterfaceFlowFilterEntryResource) resource)
-                               .getVtnName() != null
+                                               .getVtnName() != null
                                && !((VBridgeInterfaceFlowFilterEntryResource) resource)
-                               .getVtnName().trim().isEmpty()) {
+                                               .getVtnName().trim().isEmpty()) {
+                       // For VBridgeInterfaceFlowFilterEntryResource instance
                        isValid = validator.isValidMaxLengthAlphaNum(
                                        ((VBridgeInterfaceFlowFilterEntryResource) resource)
-                                       .getVtnName().trim(), VtnServiceJsonConsts.LEN_31);
+                                                       .getVtnName().trim(), VtnServiceJsonConsts.LEN_31);
                        if (isValid) {
                                setInvalidParameter(VtnServiceJsonConsts.URI
                                                + VtnServiceJsonConsts.VBRNAME);
                                if (((VBridgeInterfaceFlowFilterEntryResource) resource)
                                                .getVbrName() != null
                                                && !((VBridgeInterfaceFlowFilterEntryResource) resource)
-                                               .getVbrName().trim().isEmpty()) {
+                                                               .getVbrName().trim().isEmpty()) {
                                        isValid = validator
                                                        .isValidMaxLengthAlphaNum(
                                                                        ((VBridgeInterfaceFlowFilterEntryResource) resource)
-                                                                       .getVbrName().trim(),
+                                                                                       .getVbrName().trim(),
                                                                        VtnServiceJsonConsts.LEN_31);
                                } else {
                                        isValid = false;
@@ -146,11 +142,11 @@ VtnServiceValidator {
                                if (((VBridgeInterfaceFlowFilterEntryResource) resource)
                                                .getIfName() != null
                                                && !((VBridgeInterfaceFlowFilterEntryResource) resource)
-                                               .getIfName().trim().isEmpty()) {
+                                                               .getIfName().trim().isEmpty()) {
                                        isValid = validator
                                                        .isValidMaxLengthAlphaNum(
                                                                        ((VBridgeInterfaceFlowFilterEntryResource) resource)
-                                                                       .getIfName().trim(),
+                                                                                       .getIfName().trim(),
                                                                        VtnServiceJsonConsts.LEN_31);
                                } else {
                                        isValid = false;
@@ -162,13 +158,13 @@ VtnServiceValidator {
                                if (((VBridgeInterfaceFlowFilterEntryResource) resource)
                                                .getFfType() != null
                                                && !((VBridgeInterfaceFlowFilterEntryResource) resource)
-                                               .getFfType().trim().isEmpty()) {
+                                                               .getFfType().trim().isEmpty()) {
                                        isValid = ((VBridgeInterfaceFlowFilterEntryResource) resource)
                                                        .getFfType().trim()
                                                        .equalsIgnoreCase(VtnServiceJsonConsts.IN)
                                                        || ((VBridgeInterfaceFlowFilterEntryResource) resource)
-                                                       .getFfType().trim()
-                                                       .equalsIgnoreCase(VtnServiceJsonConsts.OUT);
+                                                                       .getFfType().trim()
+                                                                       .equalsIgnoreCase(VtnServiceJsonConsts.OUT);
                                } else {
                                        isValid = false;
                                }
@@ -179,40 +175,38 @@ VtnServiceValidator {
                                if (((VBridgeInterfaceFlowFilterEntryResource) resource)
                                                .getSeqnum() != null
                                                && !((VBridgeInterfaceFlowFilterEntryResource) resource)
-                                               .getSeqnum().trim().isEmpty()) {
+                                                               .getSeqnum().trim().isEmpty()) {
                                        isValid = validator
                                                        .isValidRange(
                                                                        ((VBridgeInterfaceFlowFilterEntryResource) resource)
                                                                                        .getSeqnum().trim(),
-                                                                                       VtnServiceJsonConsts.VAL_1,
-                                                                                       VtnServiceJsonConsts.VAL_65535);
+                                                                       VtnServiceJsonConsts.VAL_1,
+                                                                       VtnServiceJsonConsts.VAL_65535);
                                } else {
                                        isValid = false;
                                }
                        }
                        setListOpFlag(false);
-               }
-
-               // For VRouterInterfaceFlowFilterEntryResource instance
-               else if (resource instanceof VRouterInterfaceFlowFilterEntryResource
+               } else if (resource instanceof VRouterInterfaceFlowFilterEntryResource
                                && ((VRouterInterfaceFlowFilterEntryResource) resource)
-                               .getVtnName() != null
+                                               .getVtnName() != null
                                && !((VRouterInterfaceFlowFilterEntryResource) resource)
-                               .getVtnName().trim().isEmpty()) {
+                                               .getVtnName().trim().isEmpty()) {
+                       // For VRouterInterfaceFlowFilterEntryResource instance
                        isValid = validator.isValidMaxLengthAlphaNum(
                                        ((VRouterInterfaceFlowFilterEntryResource) resource)
-                                       .getVtnName().trim(), VtnServiceJsonConsts.LEN_31);
+                                                       .getVtnName().trim(), VtnServiceJsonConsts.LEN_31);
                        if (isValid) {
                                setInvalidParameter(VtnServiceJsonConsts.URI
                                                + VtnServiceJsonConsts.VRTNAME);
                                if (((VRouterInterfaceFlowFilterEntryResource) resource)
                                                .getVrtName() != null
                                                && !((VRouterInterfaceFlowFilterEntryResource) resource)
-                                               .getVrtName().trim().isEmpty()) {
+                                                               .getVrtName().trim().isEmpty()) {
                                        isValid = validator
                                                        .isValidMaxLengthAlphaNum(
                                                                        ((VRouterInterfaceFlowFilterEntryResource) resource)
-                                                                       .getVrtName().trim(),
+                                                                                       .getVrtName().trim(),
                                                                        VtnServiceJsonConsts.LEN_31);
                                } else {
                                        isValid = false;
@@ -224,11 +218,11 @@ VtnServiceValidator {
                                if (((VRouterInterfaceFlowFilterEntryResource) resource)
                                                .getIfName() != null
                                                && !((VRouterInterfaceFlowFilterEntryResource) resource)
-                                               .getIfName().trim().isEmpty()) {
+                                                               .getIfName().trim().isEmpty()) {
                                        isValid = validator
                                                        .isValidMaxLengthAlphaNum(
                                                                        ((VRouterInterfaceFlowFilterEntryResource) resource)
-                                                                       .getIfName().trim(),
+                                                                                       .getIfName().trim(),
                                                                        VtnServiceJsonConsts.LEN_31);
                                } else {
                                        isValid = false;
@@ -240,13 +234,13 @@ VtnServiceValidator {
                                if (((VRouterInterfaceFlowFilterEntryResource) resource)
                                                .getFfType() != null
                                                && !((VRouterInterfaceFlowFilterEntryResource) resource)
-                                               .getFfType().trim().isEmpty()) {
+                                                               .getFfType().trim().isEmpty()) {
                                        isValid = ((VRouterInterfaceFlowFilterEntryResource) resource)
                                                        .getFfType().trim()
                                                        .equalsIgnoreCase(VtnServiceJsonConsts.IN)
                                                        || ((VRouterInterfaceFlowFilterEntryResource) resource)
-                                                       .getFfType().trim()
-                                                       .equalsIgnoreCase(VtnServiceJsonConsts.OUT);
+                                                                       .getFfType().trim()
+                                                                       .equalsIgnoreCase(VtnServiceJsonConsts.OUT);
                                } else {
                                        isValid = false;
                                }
@@ -257,19 +251,20 @@ VtnServiceValidator {
                                if (((VRouterInterfaceFlowFilterEntryResource) resource)
                                                .getSeqnum() != null
                                                && !((VRouterInterfaceFlowFilterEntryResource) resource)
-                                               .getSeqnum().trim().isEmpty()) {
+                                                               .getSeqnum().trim().isEmpty()) {
                                        isValid = validator
                                                        .isValidRange(
                                                                        ((VRouterInterfaceFlowFilterEntryResource) resource)
                                                                                        .getSeqnum().trim(),
-                                                                                       VtnServiceJsonConsts.VAL_1,
-                                                                                       VtnServiceJsonConsts.VAL_65535);
+                                                                       VtnServiceJsonConsts.VAL_1,
+                                                                       VtnServiceJsonConsts.VAL_65535);
                                } else {
                                        isValid = false;
                                }
                        }
                        setListOpFlag(false);
                }
+
                LOG.trace("Complete VBridgeFlowFilterEntryResourceValidator#validateUri()");
                return isValid;
        }
@@ -280,8 +275,9 @@ VtnServiceValidator {
         * VrouterInterfaceFlowFilterEntry API.
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start VBridgeFlowFilterEntryResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of VBridgeFlowFilterEntryResourceValidator");
@@ -295,7 +291,7 @@ VtnServiceValidator {
                        } else if (isValid && requestBody != null
                                        && VtnServiceConsts.PUT.equals(method)) {
                                isValid = validatePut(requestBody);
-                               if(validator.getInvalidParameter()!=null){
+                               if (validator.getInvalidParameter() != null) {
                                        setInvalidParameter(validator.getInvalidParameter());
                                }
                        } else if (isValid) {
@@ -303,7 +299,7 @@ VtnServiceValidator {
                                isValid = false;
                        }
                } catch (final NumberFormatException e) {
-                       if(method.equals(VtnServiceConsts.PUT)){
+                       if (method.equals(VtnServiceConsts.PUT)) {
                                setInvalidParameter(validator.getInvalidParameter());
                        }
                        LOG.error("Inside catch:NumberFormatException");
@@ -338,30 +334,30 @@ VtnServiceValidator {
        private boolean validateGet(final JsonObject requestBody) {
                LOG.trace("Start VBridgeFlowFilterEntryResourceValidator#validateGet()");
                boolean isValid = false;
-//             // validation for key: controller_id(mandatory)
-//             setInvalidParameter(VtnServiceJsonConsts.CONTROLLERID);
-//             if (requestBody.has(VtnServiceJsonConsts.CONTROLLERID)
-//                             && requestBody.getAsJsonPrimitive(
-//                                             VtnServiceJsonConsts.CONTROLLERID).getAsString() != null) {
-//                     isValid = validator.isValidMaxLengthAlphaNum(requestBody
-//                                     .getAsJsonPrimitive(VtnServiceJsonConsts.CONTROLLERID)
-//                                     .getAsString().trim(), VtnServiceJsonConsts.LEN_31);
-//             }
-               
+               // // validation for key: controller_id(mandatory)
+               // setInvalidParameter(VtnServiceJsonConsts.CONTROLLERID);
+               // if (requestBody.has(VtnServiceJsonConsts.CONTROLLERID)
+               // && requestBody.getAsJsonPrimitive(
+               // VtnServiceJsonConsts.CONTROLLERID).getAsString() != null) {
+               // isValid = validator.isValidMaxLengthAlphaNum(requestBody
+               // .getAsJsonPrimitive(VtnServiceJsonConsts.CONTROLLERID)
+               // .getAsString().trim(), VtnServiceJsonConsts.LEN_31);
+               // }
+
                // validation for key: targetdb(optional)
-//             if (isValid) {
-                       setInvalidParameter(VtnServiceJsonConsts.TARGETDB);
-                       isValid = validator.isValidRequestDB(requestBody);
-//             }
-                       
+               // if (isValid) {
+               setInvalidParameter(VtnServiceJsonConsts.TARGETDB);
+               isValid = validator.isValidRequestDB(requestBody);
+               // }
+
                // validation for key: op(optinal)
                if (isValid) {
                        setInvalidParameter(VtnServiceJsonConsts.OP);
                        if (requestBody.has(VtnServiceJsonConsts.OP)
                                        && requestBody.getAsJsonPrimitive(VtnServiceJsonConsts.OP)
-                                       .getAsString() != null
+                                                       .getAsString() != null
                                        && !requestBody.getAsJsonPrimitive(VtnServiceJsonConsts.OP)
-                                       .getAsString().trim().isEmpty()) {
+                                                       .getAsString().trim().isEmpty()) {
                                isValid = requestBody
                                                .getAsJsonPrimitive(VtnServiceJsonConsts.OP)
                                                .getAsString()
@@ -391,7 +387,7 @@ VtnServiceValidator {
                setInvalidParameter(VtnServiceJsonConsts.FLOWFILTERENTRY);
                if (requestBody.has(VtnServiceJsonConsts.FLOWFILTERENTRY)
                                && requestBody.get(VtnServiceJsonConsts.FLOWFILTERENTRY)
-                               .isJsonObject()) {
+                                               .isJsonObject()) {
                        isValid = true;
                        final JsonObject ffEntry = requestBody
                                        .getAsJsonObject(VtnServiceJsonConsts.FLOWFILTERENTRY);
index 45da8667ab89a52f09f1493ef73b60c3a74ce77c..b65d261e5da8f98799425038bc218dc72c3faac0 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -29,7 +29,7 @@ public class VBridgeResourceValidator extends VtnServiceValidator {
        private static final Logger LOG = Logger
                        .getLogger(VBridgeResourceValidator.class.getName());
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new Vbridge resource validator.
@@ -47,7 +47,7 @@ public class VBridgeResourceValidator extends VtnServiceValidator {
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start VBridgeResourceValidator#validateUri()");
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.URI
@@ -88,8 +88,9 @@ public class VBridgeResourceValidator extends VtnServiceValidator {
         * Validate request json for get, put and post method of VBridge API
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start VBridgeResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of VBridgeResourceValidator");
@@ -282,4 +283,4 @@ public class VBridgeResourceValidator extends VtnServiceValidator {
                LOG.trace("Complete VBridgeResourceValidator#validatePost()");
                return isValid;
        }
-}
\ No newline at end of file
+}
index d0b1c856cdb7f0e564b0ee91713466ef512fb57f..1416d59f31f7fd69dfd1fc13c91603fd234b0ada 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -21,15 +21,15 @@ import org.opendaylight.vtn.javaapi.validation.CommonValidator;
 import org.opendaylight.vtn.javaapi.validation.VtnServiceValidator;
 
 /**
- * The Class VBypassResourceValidator validates request Json object for
- * VBypass API.
+ * The Class VBypassResourceValidator validates request Json object for VBypass
+ * API.
  */
 public class VBypassResourceValidator extends VtnServiceValidator {
 
        private static final Logger LOG = Logger
                        .getLogger(VBypassResourceValidator.class.getName());
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new VBypass resource validator.
@@ -47,7 +47,7 @@ public class VBypassResourceValidator extends VtnServiceValidator {
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start VBypassResourceValidator#validateUri()");
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.URI
@@ -62,11 +62,11 @@ public class VBypassResourceValidator extends VtnServiceValidator {
                                setInvalidParameter(VtnServiceJsonConsts.URI
                                                + VtnServiceJsonConsts.VBYPASS_NAME);
                                if (((VBypassResource) resource).getVbypassName() != null
-                                               && !((VBypassResource) resource).getVbypassName().trim()
-                                               .isEmpty()) {
+                                               && !((VBypassResource) resource).getVbypassName()
+                                                               .trim().isEmpty()) {
                                        isValid = validator.isValidMaxLengthAlphaNum(
-                                                       ((VBypassResource) resource).getVbypassName().trim(),
-                                                       VtnServiceJsonConsts.LEN_31);
+                                                       ((VBypassResource) resource).getVbypassName()
+                                                                       .trim(), VtnServiceJsonConsts.LEN_31);
                                } else {
                                        isValid = false;
                                }
@@ -75,7 +75,7 @@ public class VBypassResourceValidator extends VtnServiceValidator {
                } else if (resource instanceof VBypassesResource
                                && ((VBypassesResource) resource).getVtnName() != null
                                && !((VBypassesResource) resource).getVtnName().trim()
-                               .isEmpty()) {
+                                               .isEmpty()) {
                        isValid = validator.isValidMaxLengthAlphaNum(
                                        ((VBypassesResource) resource).getVtnName().trim(),
                                        VtnServiceJsonConsts.LEN_31);
@@ -89,8 +89,9 @@ public class VBypassResourceValidator extends VtnServiceValidator {
         * Validate request Json object for get, put and post method of VBypass API
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start VBypassResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of VBypassResourceValidator");
@@ -152,16 +153,14 @@ public class VBypassResourceValidator extends VtnServiceValidator {
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.VBYPASS);
                if (requestBody.has(VtnServiceJsonConsts.VBYPASS)
-                               && requestBody.get(VtnServiceJsonConsts.VBYPASS)
-                               .isJsonObject()) {
+                               && requestBody.get(VtnServiceJsonConsts.VBYPASS).isJsonObject()) {
                        final JsonObject vBypass = requestBody
                                        .getAsJsonObject(VtnServiceJsonConsts.VBYPASS);
                        // validation for key: VBYPASS_NAME(mandatory)
                        setInvalidParameter(VtnServiceJsonConsts.VBYPASS_NAME);
                        if (vBypass.has(VtnServiceJsonConsts.VBYPASS_NAME)
-                                       && vBypass
-                                       .getAsJsonPrimitive(VtnServiceJsonConsts.VBYPASS_NAME)
-                                       .getAsString() != null) {
+                                       && vBypass.getAsJsonPrimitive(
+                                                       VtnServiceJsonConsts.VBYPASS_NAME).getAsString() != null) {
                                isValid = validator.isValidMaxLengthAlphaNum(vBypass
                                                .getAsJsonPrimitive(VtnServiceJsonConsts.VBYPASS_NAME)
                                                .getAsString().trim(), VtnServiceJsonConsts.LEN_31);
@@ -192,29 +191,30 @@ public class VBypassResourceValidator extends VtnServiceValidator {
         * @param vBypass
         * @return
         */
-       private boolean commonValidations(boolean isValid, final JsonObject vBypass) {
+       private boolean
+                       commonValidations(boolean isValid, final JsonObject vBypass) {
                LOG.trace("Start VBypassResourceValidator#commonValidations()");
                // validation for key: description
                setInvalidParameter(VtnServiceJsonConsts.DESCRIPTION);
                if (vBypass.has(VtnServiceJsonConsts.DESCRIPTION)
-                               && vBypass.getAsJsonPrimitive(
-                                               VtnServiceJsonConsts.DESCRIPTION).getAsString() != null
-                                               && !vBypass
-                                               .getAsJsonPrimitive(
-                                                               VtnServiceJsonConsts.DESCRIPTION)
-                                                               .getAsString().trim().isEmpty()) {
-                       isValid = validator.isValidMaxLength(
-                                       vBypass.getAsJsonPrimitive(
-                                                       VtnServiceJsonConsts.DESCRIPTION)
-                                                       .getAsString().trim(),
+                               && vBypass.getAsJsonPrimitive(VtnServiceJsonConsts.DESCRIPTION)
+                                               .getAsString() != null
+                               && !vBypass
+                                               .getAsJsonPrimitive(VtnServiceJsonConsts.DESCRIPTION)
+                                               .getAsString().trim().isEmpty()) {
+                       isValid = validator
+                                       .isValidMaxLength(
+                                                       vBypass.getAsJsonPrimitive(
+                                                                       VtnServiceJsonConsts.DESCRIPTION)
+                                                                       .getAsString().trim(),
                                                        VtnServiceJsonConsts.LEN_127);
                }
                // validation for key: type
                if (isValid) {
                        setInvalidParameter(VtnServiceJsonConsts.TYPE);
                        if (vBypass.has(VtnServiceJsonConsts.TYPE)
-                                       && vBypass.getAsJsonPrimitive(
-                                                       VtnServiceJsonConsts.TYPE).getAsString() != null) {
+                                       && vBypass.getAsJsonPrimitive(VtnServiceJsonConsts.TYPE)
+                                                       .getAsString() != null) {
                                isValid = validType(vBypass
                                                .getAsJsonPrimitive(VtnServiceJsonConsts.TYPE)
                                                .getAsString().trim());
@@ -225,17 +225,14 @@ public class VBypassResourceValidator extends VtnServiceValidator {
                        setInvalidParameter(VtnServiceJsonConsts.CONTROLLERID);
                        if (vBypass.has(VtnServiceJsonConsts.CONTROLLERID)
                                        && vBypass.getAsJsonPrimitive(
-                                                       VtnServiceJsonConsts.CONTROLLERID)
-                                                       .getAsString() != null
-                                                       && !vBypass
+                                                       VtnServiceJsonConsts.CONTROLLERID).getAsString() != null
+                                       && !vBypass
                                                        .getAsJsonPrimitive(
                                                                        VtnServiceJsonConsts.CONTROLLERID)
-                                                                       .getAsString().trim().isEmpty()) {
-                               isValid = validator.isValidMaxLengthAlphaNum(
-                                               vBypass.getAsJsonPrimitive(
-                                                               VtnServiceJsonConsts.CONTROLLERID)
-                                                               .getAsString().trim(),
-                                                               VtnServiceJsonConsts.LEN_31);
+                                                       .getAsString().trim().isEmpty()) {
+                               isValid = validator.isValidMaxLengthAlphaNum(vBypass
+                                               .getAsJsonPrimitive(VtnServiceJsonConsts.CONTROLLERID)
+                                               .getAsString().trim(), VtnServiceJsonConsts.LEN_31);
                        }
                }
                LOG.trace("Complete VBypassResourceValidator#commonValidations()");
@@ -257,8 +254,7 @@ public class VBypassResourceValidator extends VtnServiceValidator {
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.VBYPASS);
                if (requestBody.has(VtnServiceJsonConsts.VBYPASS)
-                               && requestBody.get(VtnServiceJsonConsts.VBYPASS)
-                               .isJsonObject()) {
+                               && requestBody.get(VtnServiceJsonConsts.VBYPASS).isJsonObject()) {
                        isValid = true;
                        final JsonObject vBypass = requestBody
                                        .getAsJsonObject(VtnServiceJsonConsts.VBYPASS);
@@ -269,10 +265,10 @@ public class VBypassResourceValidator extends VtnServiceValidator {
                                if (vBypass.has(VtnServiceJsonConsts.DOMAINID)
                                                && vBypass.getAsJsonPrimitive(
                                                                VtnServiceJsonConsts.DOMAINID).getAsString() != null
-                                                               && !vBypass
+                                               && !vBypass
                                                                .getAsJsonPrimitive(
                                                                                VtnServiceJsonConsts.DOMAINID)
-                                                                               .getAsString().trim().isEmpty()) {
+                                                               .getAsString().trim().isEmpty()) {
                                        isValid = validator.isValidDomainId(vBypass
                                                        .getAsJsonPrimitive(VtnServiceJsonConsts.DOMAINID)
                                                        .getAsString().trim(), VtnServiceJsonConsts.LEN_31);
index f9e654c5697ded15392ce421b0c2ac25137f6ada..466cf092e87bccb74fed68d9c37fe7720b4d4903 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -30,7 +30,7 @@ public class VLanMapResourceValidator extends VtnServiceValidator {
                        .getLogger(VLanMapResourceValidator.class.getName());
 
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new vlan map resource validator.
@@ -48,7 +48,7 @@ public class VLanMapResourceValidator extends VtnServiceValidator {
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start VLanMapResourceValidator#validateUri()");
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.URI
@@ -135,8 +135,9 @@ public class VLanMapResourceValidator extends VtnServiceValidator {
         * Validate request Json object for get, put and post method of VLanMap API.
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start VLanMapResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of VLanMapResourceValidator");
@@ -303,15 +304,14 @@ public class VLanMapResourceValidator extends VtnServiceValidator {
                        if (vLanMap.has(VtnServiceJsonConsts.VLANID)
                                        && vLanMap.has(VtnServiceJsonConsts.NO_VLAN_ID)) {
                                isValid = false;
-                       }
-                       // validation for key: vlan_id
-                       else if (vLanMap.has(VtnServiceJsonConsts.VLANID)) {
+                       } else if (vLanMap.has(VtnServiceJsonConsts.VLANID)) {
                                setInvalidParameter(VtnServiceJsonConsts.VLANID);
                                if (vLanMap.getAsJsonPrimitive(VtnServiceJsonConsts.VLANID)
                                                .getAsString() != null
                                                && !vLanMap
                                                                .getAsJsonPrimitive(VtnServiceJsonConsts.VLANID)
                                                                .getAsString().trim().isEmpty()) {
+                                       // validation for key: vlan_id
                                        isValid = validator.isValidRange(vLanMap
                                                        .getAsJsonPrimitive(VtnServiceJsonConsts.VLANID)
                                                        .getAsString().trim(), VtnServiceJsonConsts.VAL_1,
@@ -319,9 +319,7 @@ public class VLanMapResourceValidator extends VtnServiceValidator {
                                } else {
                                        isValid = false;
                                }
-                       }
-                       // validation for key: no_vlan_id
-                       else if (vLanMap.has(VtnServiceJsonConsts.NO_VLAN_ID)) {
+                       } else if (vLanMap.has(VtnServiceJsonConsts.NO_VLAN_ID)) {
                                setInvalidParameter(VtnServiceJsonConsts.NO_VLAN_ID);
                                if (vLanMap.getAsJsonPrimitive(VtnServiceJsonConsts.NO_VLAN_ID)
                                                .getAsString() != null
@@ -329,6 +327,7 @@ public class VLanMapResourceValidator extends VtnServiceValidator {
                                                                .getAsJsonPrimitive(
                                                                                VtnServiceJsonConsts.NO_VLAN_ID)
                                                                .getAsString().trim().isEmpty()) {
+                                       // validation for key: no_vlan_id
                                        final String no_vlan_id = vLanMap
                                                        .getAsJsonPrimitive(VtnServiceJsonConsts.NO_VLAN_ID)
                                                        .getAsString().trim();
index d71a3b6a7b458add454c5b6d4d39c3df517815cf..0bd82dff16fb5708a61a39192fc3eac3cbcfe05e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -24,21 +24,28 @@ import org.opendaylight.vtn.javaapi.validation.VtnServiceValidator;
  * The Class VLinkResourceValidator validates request Json object for Vlink API.
  */
 public class VLinkResourceValidator extends VtnServiceValidator {
-
+       /**
+        * logger for debugging.
+        */
        private static final Logger LOG = Logger
                        .getLogger(VLinkResourceValidator.class.getName());
-
+       /**
+        * Abstract resource.
+        */
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       /**
+        * common validations.
+        */
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new vlink resource validator.
         * 
-        * @param resource
+        * @param mappingResource
         *            the instance of AbstractResource
         */
-       public VLinkResourceValidator(final AbstractResource resource) {
-               this.resource = resource;
+       public VLinkResourceValidator(final AbstractResource mappingResource) {
+               this.resource = mappingResource;
        }
 
        /**
@@ -47,7 +54,7 @@ public class VLinkResourceValidator extends VtnServiceValidator {
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start VLinkResourceValidator#validateUri()");
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.URI
@@ -87,9 +94,18 @@ public class VLinkResourceValidator extends VtnServiceValidator {
        /**
         * Validate request Json object for get, put and post method of Vlink API.
         */
+       /**
+        * @param method
+        *            , to get type of method
+        * @param requestBody
+        *            , for request
+        * @throws VtnServiceException
+        *             , for vtn exception
+        */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start VLinkResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of FlowListResourceValidator");
@@ -437,9 +453,7 @@ public class VLinkResourceValidator extends VtnServiceValidator {
                                if (boundary.has(VtnServiceJsonConsts.VLANID)
                                                && boundary.has(VtnServiceJsonConsts.NO_VLAN_ID)) {
                                        isValid = false;
-                               }
-                               // validation for key: boundary_id(optional)
-                               else if (boundary.has(VtnServiceJsonConsts.VLANID)) {
+                               } else if (boundary.has(VtnServiceJsonConsts.VLANID)) {
                                        setInvalidParameter(VtnServiceJsonConsts.VLANID);
                                        if (boundary
                                                        .getAsJsonPrimitive(VtnServiceJsonConsts.VLANID)
@@ -448,19 +462,16 @@ public class VLinkResourceValidator extends VtnServiceValidator {
                                                                        .getAsJsonPrimitive(
                                                                                        VtnServiceJsonConsts.VLANID)
                                                                        .getAsString().trim().isEmpty()) {
-                                               isValid = validator
-                                                               .isValidRange(
-                                                                               boundary.getAsJsonPrimitive(
-                                                                                               VtnServiceJsonConsts.VLANID)
-                                                                                               .getAsString().trim(),
-                                                                               VtnServiceJsonConsts.VAL_1,
-                                                                               VtnServiceJsonConsts.VAL_4095);
+                                               isValid = validator.isValidRange(
+                                                               boundary.getAsJsonPrimitive(
+                                                                               VtnServiceJsonConsts.VLANID)
+                                                                               .getAsString().trim(),
+                                                               VtnServiceJsonConsts.VAL_1,
+                                                               VtnServiceJsonConsts.VAL_4095);
                                        } else {
                                                isValid = false;
                                        }
-                               }
-                               // validation for key: no_vlan_id
-                               else if (boundary.has(VtnServiceJsonConsts.NO_VLAN_ID)) {
+                               } else if (boundary.has(VtnServiceJsonConsts.NO_VLAN_ID)) {
                                        setInvalidParameter(VtnServiceJsonConsts.NO_VLAN_ID);
                                        if (boundary.getAsJsonPrimitive(
                                                        VtnServiceJsonConsts.NO_VLAN_ID).getAsString() != null
@@ -476,9 +487,7 @@ public class VLinkResourceValidator extends VtnServiceValidator {
                                        } else {
                                                isValid = false;
                                        }
-                               }/* else {
-                                       isValid = false;
-                               }*/
+                               }
                                if (isValid) {
                                        setInvalidParameter(VtnServiceJsonConsts.BOUNDARYID);
                                        if (boundary.has(VtnServiceJsonConsts.BOUNDARYID)
@@ -496,9 +505,7 @@ public class VLinkResourceValidator extends VtnServiceValidator {
                                                                                .getAsString().trim().isEmpty();
                                        }
                                }
-                       }/* else {
-                               isValid = false;
-                       }*/
+                       }
                }
                LOG.trace("Complete VLinkResourceValidator#commonValidation()");
                return isValid;
index 322fbfa02c7ae86dffd62c4b504b040b5168e9c2..d813d70952c21eac00c631962f0a9efaa36b0a74 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -30,7 +30,7 @@ public class VRouterInterfaceResourceValidator extends VtnServiceValidator {
                        .getLogger(VRouterInterfaceResourceValidator.class.getName());
 
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new vrouter interface resource validator.
@@ -48,7 +48,7 @@ public class VRouterInterfaceResourceValidator extends VtnServiceValidator {
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start VRouterInterfaceResourceValidator#validateUri()");
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.URI
@@ -118,8 +118,9 @@ public class VRouterInterfaceResourceValidator extends VtnServiceValidator {
         * VrouterInterface API
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start VRouterInterfaceResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of VRouterInterfaceResourceValidator");
@@ -215,7 +216,6 @@ public class VRouterInterfaceResourceValidator extends VtnServiceValidator {
        private boolean validatePut(final JsonObject requestBody)
                        throws VtnServiceException {
                LOG.trace("Start VRouterInterfaceResourceValidator#validatePost()");
-               final CommonValidator validator = new CommonValidator();
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.INTERFACE);
                if (requestBody.has(VtnServiceJsonConsts.INTERFACE)
@@ -273,12 +273,9 @@ public class VRouterInterfaceResourceValidator extends VtnServiceValidator {
                        if (isValid) {
                                setInvalidParameter(VtnServiceJsonConsts.PREFIX);
                                if (vRouterInterface.has(VtnServiceJsonConsts.PREFIX)) {
-                                       isValid = validator.isValidRange(
-                                                       vRouterInterface
-                                                                       .getAsJsonPrimitive(
-                                                                                       VtnServiceJsonConsts.PREFIX)
-                                                                       .getAsString().trim(),
-                                                       VtnServiceJsonConsts.VAL_1,
+                                       isValid = validator.isValidRange(vRouterInterface
+                                                       .getAsJsonPrimitive(VtnServiceJsonConsts.PREFIX)
+                                                       .getAsString().trim(), VtnServiceJsonConsts.VAL_1,
                                                        VtnServiceJsonConsts.VAL_30);
                                }
                        }
index 7102e1df66732ebcd10b05d0e422788d43203494..47bae930b5f0d929a71de482e81399dee850302d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -29,7 +29,7 @@ public class VRouterResourceValidator extends VtnServiceValidator {
        private static final Logger LOG = Logger
                        .getLogger(VRouterResourceValidator.class.getName());
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new vrouter resource validator.
@@ -47,7 +47,7 @@ public class VRouterResourceValidator extends VtnServiceValidator {
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start VRouterResourceValidator#validateUri()");
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.URI
@@ -88,8 +88,9 @@ public class VRouterResourceValidator extends VtnServiceValidator {
         * Validate request Json object for get, put and post method of VRouter API.
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start VRouterResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of VRouterResourceValidator");
index 3be235f81aa53bca47cad214484c3b08f446bcf1..acdeffff9c181194317f3380a3aabe5a5c129415 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -34,7 +34,7 @@ public class VTepGroupResourceValidator extends VtnServiceValidator {
                        .getLogger(VTepGroupResourceValidator.class.getName());
 
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new v tep group resource validator.
@@ -52,7 +52,7 @@ public class VTepGroupResourceValidator extends VtnServiceValidator {
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start VTepGroupResourceValidator#validateUri()");
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.URI
@@ -96,8 +96,9 @@ public class VTepGroupResourceValidator extends VtnServiceValidator {
         * API.
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start VTepGroupResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of VTepGroupResourceValidator");
@@ -264,4 +265,4 @@ public class VTepGroupResourceValidator extends VtnServiceValidator {
                LOG.trace("Complete VTepGroupResourceValidator#validatePut()");
                return isValid;
        }
-}
\ No newline at end of file
+}
index c1bd62a3f375578f5b9e8ecbe8cf8b55a0fa42f3..40c8c8cbf6800eecc293675667be62a72f20ad3e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -29,7 +29,7 @@ public class VTepResourceValidator extends VtnServiceValidator {
                        .getLogger(VTepResourceValidator.class.getName());
 
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new v tep resource validator.
@@ -47,7 +47,7 @@ public class VTepResourceValidator extends VtnServiceValidator {
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start VTepResourceValidator#validateUri()");
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.URI
@@ -88,8 +88,9 @@ public class VTepResourceValidator extends VtnServiceValidator {
         * Validate request Json object for get, put and post method of VTep API.
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start VTepResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of VTepResourceValidator");
@@ -276,4 +277,4 @@ public class VTepResourceValidator extends VtnServiceValidator {
                LOG.trace("Complete VTepResourceValidator#validatePut()");
                return isValid;
        }
-}
\ No newline at end of file
+}
index 8efe80668eb63c7357307012788f426319f8f6c2..93118c13af55b0e80ace7c14d549519bb8bd7c65 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -30,7 +30,7 @@ public class VTunnelResourceValidator extends VtnServiceValidator {
                        .getLogger(VTunnelResourceValidator.class.getName());
 
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new v tunnel resource validator.
@@ -48,7 +48,7 @@ public class VTunnelResourceValidator extends VtnServiceValidator {
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start VTunnelResourceValidator#validateUri()");
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.URI
@@ -89,8 +89,9 @@ public class VTunnelResourceValidator extends VtnServiceValidator {
         * Validate request Json object for get, put and post method of VTunnel API.
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start VTunnelResource#validate()");
                LOG.info("Validating request for " + method
                                + " of VTunnelResourceValidator");
@@ -181,7 +182,8 @@ public class VTunnelResourceValidator extends VtnServiceValidator {
                                }
                        }
                        if (isValid) {
-                               // validation for key: description(optional),  vtn_name(optional), vtepgroup_name(optional), label(optional)
+                               // validation for key: description(optional),
+                               // vtn_name(optional), vtepgroup_name(optional), label(optional)
                                isValid = commonValidations(isValid, vTunnel);
                        }
                        // validation for key: DomainId(optional)
@@ -207,35 +209,37 @@ public class VTunnelResourceValidator extends VtnServiceValidator {
         * @param vTunnel
         * @return
         */
-       private boolean commonValidations(boolean isValid, final JsonObject vTunnel) {
+       private boolean
+                       commonValidations(boolean isValid, final JsonObject vTunnel) {
                LOG.trace("Start VTunnelResourceValidator#commonValidations()");
                // validation for key: description(optional)
                setInvalidParameter(VtnServiceJsonConsts.DESCRIPTION);
                if (vTunnel.has(VtnServiceJsonConsts.DESCRIPTION)
-                               && vTunnel.getAsJsonPrimitive(
-                                               VtnServiceJsonConsts.DESCRIPTION).getAsString() != null) {
-                       isValid = validator.isValidMaxLength(
-                                       vTunnel.getAsJsonPrimitive(
-                                                       VtnServiceJsonConsts.DESCRIPTION)
-                                                       .getAsString().trim(),
+                               && vTunnel.getAsJsonPrimitive(VtnServiceJsonConsts.DESCRIPTION)
+                                               .getAsString() != null) {
+                       isValid = validator
+                                       .isValidMaxLength(
+                                                       vTunnel.getAsJsonPrimitive(
+                                                                       VtnServiceJsonConsts.DESCRIPTION)
+                                                                       .getAsString().trim(),
                                                        VtnServiceJsonConsts.LEN_127)
-                                                       || vTunnel
+                                       || vTunnel
                                                        .getAsJsonPrimitive(
                                                                        VtnServiceJsonConsts.DESCRIPTION)
-                                                                       .getAsString().trim().isEmpty();
+                                                       .getAsString().trim().isEmpty();
                }
                // validation for key: vtn_name(optional)
                if (isValid) {
                        setInvalidParameter(VtnServiceJsonConsts.VTNNAME);
                        if (vTunnel.has(VtnServiceJsonConsts.VTNNAME)
-                                       && vTunnel.getAsJsonPrimitive(
-                                                       VtnServiceJsonConsts.VTNNAME).getAsString() != null) {
+                                       && vTunnel.getAsJsonPrimitive(VtnServiceJsonConsts.VTNNAME)
+                                                       .getAsString() != null) {
                                isValid = validator.isValidMaxLengthAlphaNum(vTunnel
                                                .getAsJsonPrimitive(VtnServiceJsonConsts.VTNNAME)
                                                .getAsString().trim(), VtnServiceJsonConsts.LEN_31)
                                                || vTunnel
-                                               .getAsJsonPrimitive(
-                                                               VtnServiceJsonConsts.VTNNAME)
+                                                               .getAsJsonPrimitive(
+                                                                               VtnServiceJsonConsts.VTNNAME)
                                                                .getAsString().trim().isEmpty();
                        }
                }
@@ -244,17 +248,14 @@ public class VTunnelResourceValidator extends VtnServiceValidator {
                        setInvalidParameter(VtnServiceJsonConsts.VTEPGROUPNAME);
                        if (vTunnel.has(VtnServiceJsonConsts.VTEPGROUPNAME)
                                        && vTunnel.getAsJsonPrimitive(
-                                                       VtnServiceJsonConsts.VTEPGROUPNAME)
-                                                       .getAsString() != null) {
-                               isValid = validator.isValidMaxLengthAlphaNum(
-                                               vTunnel.getAsJsonPrimitive(
-                                                               VtnServiceJsonConsts.VTEPGROUPNAME)
-                                                               .getAsString().trim(),
-                                                               VtnServiceJsonConsts.LEN_31)
-                                                               || vTunnel
+                                                       VtnServiceJsonConsts.VTEPGROUPNAME).getAsString() != null) {
+                               isValid = validator.isValidMaxLengthAlphaNum(vTunnel
+                                               .getAsJsonPrimitive(VtnServiceJsonConsts.VTEPGROUPNAME)
+                                               .getAsString().trim(), VtnServiceJsonConsts.LEN_31)
+                                               || vTunnel
                                                                .getAsJsonPrimitive(
                                                                                VtnServiceJsonConsts.VTEPGROUPNAME)
-                                                                               .getAsString().trim().isEmpty();
+                                                               .getAsString().trim().isEmpty();
                        }
                }
                // validation for key: label(optional)
@@ -291,7 +292,8 @@ public class VTunnelResourceValidator extends VtnServiceValidator {
                        isValid = true;
                        final JsonObject vTunnel = requestBody
                                        .getAsJsonObject(VtnServiceJsonConsts.VTUNNEL);
-                       // validation for key: description(optional),  vtn_name(optional), vtepgroup_name(optional), label(optional)
+                       // validation for key: description(optional), vtn_name(optional),
+                       // vtepgroup_name(optional), label(optional)
                        isValid = commonValidations(isValid, vTunnel);
                        // validation for key: controller_id(optional)
                        if (isValid) {
@@ -299,15 +301,16 @@ public class VTunnelResourceValidator extends VtnServiceValidator {
                                if (vTunnel.has(VtnServiceJsonConsts.CONTROLLERID)
                                                && vTunnel.getAsJsonPrimitive(
                                                                VtnServiceJsonConsts.CONTROLLERID)
-                                                               .getAsString() != null && !vTunnel
+                                                               .getAsString() != null
+                                               && !vTunnel
                                                                .getAsJsonPrimitive(
                                                                                VtnServiceJsonConsts.CONTROLLERID)
-                                                                               .getAsString().trim().isEmpty()) {
+                                                               .getAsString().trim().isEmpty()) {
                                        isValid = validator.isValidMaxLengthAlphaNum(
                                                        vTunnel.getAsJsonPrimitive(
                                                                        VtnServiceJsonConsts.CONTROLLERID)
                                                                        .getAsString().trim(),
-                                                                       VtnServiceJsonConsts.LEN_31);
+                                                       VtnServiceJsonConsts.LEN_31);
                                }
                        }
                        // validation for key: DomainId(optional)
@@ -315,10 +318,11 @@ public class VTunnelResourceValidator extends VtnServiceValidator {
                                setInvalidParameter(VtnServiceJsonConsts.DOMAINID);
                                if (vTunnel.has(VtnServiceJsonConsts.DOMAINID)
                                                && vTunnel.getAsJsonPrimitive(
-                                                               VtnServiceJsonConsts.DOMAINID).getAsString() != null && !vTunnel
+                                                               VtnServiceJsonConsts.DOMAINID).getAsString() != null
+                                               && !vTunnel
                                                                .getAsJsonPrimitive(
                                                                                VtnServiceJsonConsts.DOMAINID)
-                                                                               .getAsString().trim().isEmpty()) {
+                                                               .getAsString().trim().isEmpty()) {
                                        isValid = validator.isValidDomainId(vTunnel
                                                        .getAsJsonPrimitive(VtnServiceJsonConsts.DOMAINID)
                                                        .getAsString().trim(), VtnServiceJsonConsts.LEN_31);
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/VtnDataFlowResourceValidator.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/VtnDataFlowResourceValidator.java
new file mode 100644 (file)
index 0000000..cd22ffd
--- /dev/null
@@ -0,0 +1,210 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.vtn.javaapi.validation.logical;
+
+import com.google.gson.JsonObject;
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
+import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
+import org.opendaylight.vtn.javaapi.resources.AbstractResource;
+import org.opendaylight.vtn.javaapi.resources.logical.VtnDataFlowResource;
+import org.opendaylight.vtn.javaapi.validation.CommonValidator;
+import org.opendaylight.vtn.javaapi.validation.VtnServiceValidator;
+
+/**
+ * The Class VtnDataFlowResourceValidator validates request Json and URI object
+ * for VTN Data Flow .
+ */
+public class VtnDataFlowResourceValidator extends VtnServiceValidator {
+       /**
+        * logger for debugging purpose.
+        */
+       private static final Logger LOG = Logger
+                       .getLogger(VtnDataFlowResourceValidator.class.getName());
+
+       /**
+        * Abstract resouce reference.
+        */
+       private final AbstractResource resource;
+       /**
+        * Common validator object for common validation methods.
+        */
+       private final CommonValidator validator = new CommonValidator();
+
+       /**
+        * Instantiates a new VTN Data Flow resource validator.
+        * 
+        * @param resource1
+        *            the instance of AbstractResource.
+        */
+       public VtnDataFlowResourceValidator(final AbstractResource resource1) {
+               this.resource = resource1;
+       }
+
+       /**
+        * Validate URI parameters for VTN Data Flow API.
+        * 
+        * @return true, if successful
+        */
+       @Override
+       public final boolean validateUri() {
+               LOG.trace("Start VtnDataFlowResourceValidator#validateUri()");
+               boolean isValid = false;
+               setInvalidParameter(VtnServiceJsonConsts.URI
+                               + VtnServiceJsonConsts.VTNNAME);
+               if (resource instanceof VtnDataFlowResource
+                               && ((VtnDataFlowResource) resource).getVtnName() != null
+                               && !((VtnDataFlowResource) resource).getVtnName().trim()
+                                               .isEmpty()) {
+                       isValid = validator.isValidMaxLengthAlphaNum(
+                                       ((VtnDataFlowResource) resource).getVtnName().trim(),
+                                       VtnServiceJsonConsts.LEN_31);
+               }
+               LOG.trace("Complete VtnDataFlowResourceValidator#validateUri()");
+               return isValid;
+       }
+
+       /**
+        * Validate request JSON for get methods of VTN Data Flow API.
+        */
+       /**
+        * @param method
+        *            , for put get post delete.
+        * @param requestBody
+        *            , for requested params
+        * @throws VtnServiceException
+        *             ,in case of exception regarding vtn
+        */
+       @Override
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
+               LOG.trace("Start VtnDataFlowResourceValidator#validate()");
+               LOG.info("Validating request for " + method
+                               + " of VtnDataFlowResourceValidator");
+               boolean isValid = false;
+               try {
+                       isValid = validateUri();
+                       if (isValid && requestBody != null
+                                       && VtnServiceConsts.GET.equals(method)) {
+                               isValid = isValidateGet(requestBody);
+                       } else if (isValid) {
+                               setInvalidParameter(VtnServiceConsts.INCORRECT_METHOD_INVOCATION);
+                               isValid = false;
+                       }
+               } catch (final NumberFormatException e) {
+                       LOG.error("Inside catch:NumberFormatException");
+                       isValid = false;
+               }
+               // Throws exception if validation fails
+               if (!isValid) {
+                       LOG.error("Validation failed");
+                       throw new VtnServiceException(Thread.currentThread()
+                                       .getStackTrace()[1].getMethodName(),
+                                       UncJavaAPIErrorCode.VALIDATION_ERROR.getErrorCode(),
+                                       UncJavaAPIErrorCode.VALIDATION_ERROR.getErrorMessage());
+               }
+               LOG.info("Validation successful");
+               LOG.trace("Complete VtnDataFlowResourceValidator#validate()");
+       }
+
+       /**
+        * Validate request JSON for get method of VTN Data Flow API.
+        * 
+        * @param requestBody
+        *            the request Json object
+        * @return true, if successful
+        * @throws VtnServiceException
+        */
+       private boolean isValidateGet(final JsonObject requestBody) {
+               LOG.trace("Start VtnDataFlowResourceValidator#isValidateGet()");
+               boolean isValid = true;
+               // validation for key:vnode_name(mandatory)
+               setInvalidParameter(VtnServiceJsonConsts.VNODENAME);
+
+               if (requestBody.has(VtnServiceJsonConsts.VNODENAME)
+                               && requestBody.getAsJsonPrimitive(
+                                               VtnServiceJsonConsts.VNODENAME).getAsString() != null
+                               && !requestBody
+                                               .getAsJsonPrimitive(VtnServiceJsonConsts.VNODENAME)
+                                               .getAsString().trim().isEmpty()) {
+                       isValid = validator.isValidMaxLengthAlphaNum(requestBody
+                                       .getAsJsonPrimitive(VtnServiceJsonConsts.VNODENAME)
+                                       .getAsString().trim(), VtnServiceJsonConsts.LEN_31);
+               } else {
+                       isValid = false;
+               }
+               // validation for key: srcmacaddr(mandatory)
+               if (isValid) {
+                       setInvalidParameter(VtnServiceJsonConsts.SRCMACADDR);
+                       if (requestBody.has(VtnServiceJsonConsts.SRCMACADDR)
+                                       && requestBody.getAsJsonPrimitive(
+                                                       VtnServiceJsonConsts.SRCMACADDR).getAsString() != null
+                                       && !requestBody
+                                                       .getAsJsonPrimitive(VtnServiceJsonConsts.SRCMACADDR)
+                                                       .getAsString().trim().isEmpty()) {
+                               isValid = validator.isValidMacAddress(requestBody
+                                               .getAsJsonPrimitive(VtnServiceJsonConsts.SRCMACADDR)
+                                               .getAsString().trim());
+                       } else {
+                               isValid = false;
+                       }
+               }
+
+               // validation for key: vlan_id or no_vlan_id(One of them is Mandatory)
+               if (isValid) {
+                       // Only vlan_id or no_vlan_id is allowed in request body
+                       setInvalidParameter(VtnServiceJsonConsts.VLANID
+                                       + VtnServiceJsonConsts.SLASH
+                                       + VtnServiceJsonConsts.NO_VLAN_ID);
+                       if (requestBody.has(VtnServiceJsonConsts.VLANID)
+                                       && requestBody.has(VtnServiceJsonConsts.NO_VLAN_ID)) {
+                               isValid = false;
+                       } else if (requestBody.has(VtnServiceJsonConsts.VLANID)) {
+                               setInvalidParameter(VtnServiceJsonConsts.VLANID);
+                               if (requestBody.getAsJsonPrimitive(VtnServiceJsonConsts.VLANID)
+                                               .getAsString() != null
+                                               && !requestBody
+                                                               .getAsJsonPrimitive(VtnServiceJsonConsts.VLANID)
+                                                               .getAsString().trim().isEmpty()) {
+                                       isValid = validator.isValidRange(requestBody
+                                                       .getAsJsonPrimitive(VtnServiceJsonConsts.VLANID)
+                                                       .getAsString().trim(), VtnServiceJsonConsts.VAL_1,
+                                                       VtnServiceJsonConsts.VAL_4095);
+                               } else {
+                                       isValid = false;
+                               }
+                       } else if (requestBody.has(VtnServiceJsonConsts.NO_VLAN_ID)) {
+                               setInvalidParameter(VtnServiceJsonConsts.NO_VLAN_ID);
+                               if (requestBody.getAsJsonPrimitive(
+                                               VtnServiceJsonConsts.NO_VLAN_ID).getAsString() != null
+                                               && !requestBody
+                                                               .getAsJsonPrimitive(
+                                                                               VtnServiceJsonConsts.NO_VLAN_ID)
+                                                               .getAsString().trim().isEmpty()) {
+                                       isValid = requestBody
+                                                       .getAsJsonPrimitive(VtnServiceJsonConsts.NO_VLAN_ID)
+                                                       .getAsString().trim()
+                                                       .equalsIgnoreCase(VtnServiceJsonConsts.TRUE);
+                               } else {
+                                       isValid = false;
+
+                               }
+                       } else {
+                               isValid = false;
+                       }
+               }
+
+               LOG.trace("Complete VtnDataFlowResourceValidator#isValidateGet");
+               return isValid;
+       }
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/VtnMappingResourceValidator.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/VtnMappingResourceValidator.java
new file mode 100644 (file)
index 0000000..d695ac1
--- /dev/null
@@ -0,0 +1,219 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.vtn.javaapi.validation.logical;
+
+import com.google.gson.JsonObject;
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
+import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
+import org.opendaylight.vtn.javaapi.resources.AbstractResource;
+import org.opendaylight.vtn.javaapi.resources.logical.VtnMappingResource;
+import org.opendaylight.vtn.javaapi.resources.logical.VtnMappingsResource;
+import org.opendaylight.vtn.javaapi.validation.CommonValidator;
+import org.opendaylight.vtn.javaapi.validation.VtnServiceValidator;
+
+/**
+ * The Class VtnMappingResourceValidator validates request Json object for VTN
+ * Mapping API.
+ */
+public class VtnMappingResourceValidator extends VtnServiceValidator {
+       /**
+        * logger for debugging purpose.
+        */
+       private static final Logger LOG = Logger
+                       .getLogger(VtnMappingResourceValidator.class.getName());
+
+       /**
+        * Abstract resouce reference.
+        */
+       private final AbstractResource resource;
+       /**
+        * Common validator object for common validation methods.
+        */
+       private final CommonValidator validator = new CommonValidator();
+
+       /**
+        * Instantiates a new Vtn mapping resource validator.
+        * 
+        * @param mappingResource
+        *            , the instance of AbstractResource
+        */
+       public VtnMappingResourceValidator(final AbstractResource mappingResource) {
+               this.resource = mappingResource;
+       }
+
+       /**
+        * Validate uri parameters for Vtn Mapping API.
+        * 
+        * @return true, if successful
+        */
+       @Override
+       public final boolean validateUri() {
+               LOG.trace("Start VtnMappingResourceValidator#validateUri()");
+               boolean isValid = false;
+               setInvalidParameter(VtnServiceJsonConsts.URI
+                               + VtnServiceJsonConsts.VTNNAME);
+               if (resource instanceof VtnMappingsResource
+                               && ((VtnMappingsResource) resource).getVtnName() != null
+                               && !((VtnMappingsResource) resource).getVtnName().trim()
+                                               .isEmpty()) {
+                       isValid = validator.isValidMaxLengthAlphaNum(
+                                       ((VtnMappingsResource) resource).getVtnName().trim(),
+                                       VtnServiceJsonConsts.LEN_31);
+                       setListOpFlag(true);
+               } else if (resource instanceof VtnMappingResource
+                               && ((VtnMappingResource) resource).getVtnName() != null
+                               && !((VtnMappingResource) resource).getVtnName().trim()
+                                               .isEmpty()) {
+                       isValid = validator.isValidMaxLengthAlphaNum(
+                                       ((VtnMappingResource) resource).getVtnName().trim(),
+                                       VtnServiceJsonConsts.LEN_31);
+                       if (isValid) {
+                               setInvalidParameter(VtnServiceJsonConsts.URI
+                                               + VtnServiceJsonConsts.MAPPINGID);
+                               if (((VtnMappingResource) resource).getMappingId() != null
+                                               && !((VtnMappingResource) resource).getMappingId()
+                                                               .trim().isEmpty()) {
+                                       final String[] mappingId = ((VtnMappingResource) resource)
+                                                       .getMappingId().trim()
+                                                       .split(VtnServiceJsonConsts.HYPHEN);
+                                       isValid = validator.isValidMappingId(mappingId);
+                               } else {
+                                       isValid = false;
+                               }
+                       }
+                       setListOpFlag(false);
+               }
+               LOG.trace("Completed VtnMappingResourceValidator#validateUri()");
+               return isValid;
+       }
+
+       /**
+        * Validate request json for get, put and post method of VBridge API.
+        * 
+        * @param method
+        *            , for method type get,put post delete
+        * @param requestBody
+        *            , for request
+        * @throws VtnServiceException
+        *             , for vtn exceptions
+        */
+       @Override
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
+               LOG.trace("Start VtnMappingResourceValidator#validate()");
+               LOG.info("Validating request for " + method
+                               + " of VtnMappingResourceValidator");
+               boolean isValid = false;
+               try {
+                       isValid = validateUri();
+                       if (isValid && requestBody != null
+                                       && VtnServiceConsts.GET.equals(method)) {
+                               isValid = isValidGetForMappingIdIndex(requestBody,
+                                               isListOpFlag());
+                               setInvalidParameter(validator.getInvalidParameter());
+                               updateOpParameterForList(requestBody);
+                       } else {
+                               setInvalidParameter(VtnServiceConsts.INCORRECT_METHOD_INVOCATION);
+                               isValid = false;
+                       }
+               } catch (final NumberFormatException e) {
+                       LOG.error("Inside catch:NumberFormatException");
+                       if (method.equals(VtnServiceConsts.GET)) {
+                               setInvalidParameter(validator.getInvalidParameter());
+                       }
+                       isValid = false;
+               } catch (final ClassCastException e) {
+                       if (method.equals(VtnServiceConsts.GET)) {
+                               setInvalidParameter(validator.getInvalidParameter());
+                       }
+                       LOG.error("Inside catch:ClassCastException");
+                       isValid = false;
+               }
+               // Throws exception if validation fails
+               if (!isValid) {
+                       LOG.error("Validation failed");
+                       throw new VtnServiceException(Thread.currentThread()
+                                       .getStackTrace()[1].getMethodName(),
+                                       UncJavaAPIErrorCode.VALIDATION_ERROR.getErrorCode(),
+                                       UncJavaAPIErrorCode.VALIDATION_ERROR.getErrorMessage());
+               }
+               LOG.info("Validation successful");
+               LOG.trace("Complete VtnMappingResourceValidator#validate()");
+       }
+
+       /**
+        * @param requestBody
+        *            , for request
+        * @param opFlag
+        *            , for getting option1 type
+        * @return true , if parameter are in corret format values
+        */
+       public final boolean isValidGetForMappingIdIndex(
+                       final JsonObject requestBody, final boolean opFlag) {
+               LOG.trace("Start CommonValidator#isValidGetForMappingIdIndex");
+               boolean isValid = true;
+
+               // validation for key: targetdb
+               setInvalidParameter(VtnServiceJsonConsts.TARGETDB);
+               isValid = validator.isValidRequestDBState(requestBody);
+
+               /*
+                * Remove unwanted parameters from request body for Show APIs
+                */
+               if (!opFlag) {
+                       if (requestBody.has(VtnServiceJsonConsts.OP)) {
+                               requestBody.remove(VtnServiceJsonConsts.OP);
+                       } else {
+                               LOG.debug("No need to remove");
+                       }
+                       if (requestBody.has(VtnServiceJsonConsts.INDEX)) {
+                               requestBody.remove(VtnServiceJsonConsts.INDEX);
+                       } else {
+                               LOG.debug("No need to remove");
+                       }
+                       if (requestBody.has(VtnServiceJsonConsts.MAX)) {
+                               requestBody.remove(VtnServiceJsonConsts.MAX);
+                       } else {
+                               LOG.debug("No need to remove");
+                       }
+               } else {
+                       // validation for key: op
+                       if (isValid) {
+                               setInvalidParameter(VtnServiceJsonConsts.OP);
+                               isValid = validator.isValidOperationForDetail(requestBody);
+                       }
+                       // validation for key: index where index is combination of
+                       // controller id and domain id
+                       if (isValid) {
+                               setInvalidParameter(VtnServiceJsonConsts.INDEX);
+                               if (requestBody.has(VtnServiceJsonConsts.INDEX)
+                                               && requestBody.getAsJsonPrimitive(
+                                                               VtnServiceJsonConsts.INDEX).getAsString() != null) {
+                                       final String[] mappingId = requestBody
+                                                       .getAsJsonPrimitive(VtnServiceJsonConsts.INDEX)
+                                                       .getAsString().trim()
+                                                       .split(VtnServiceJsonConsts.HYPHEN);
+                                       isValid = validator.isValidMappingId(mappingId);
+                               }
+                       }
+                       // validation for key: max_repitition
+                       if (isValid) {
+                               setInvalidParameter(VtnServiceJsonConsts.MAX);
+                               isValid = validator.isValidMaxRepetition(requestBody);
+                       }
+               }
+               LOG.trace("Complete CommonValidator#isValidGetForMappingIdIndex");
+               return isValid;
+       }
+}
index 9900dc56cf748d366126131901418a5f3a7364b0..49ea3ec27ef97c191a7de85c52c1ddbdf983c70b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -29,7 +29,7 @@ public class VtnResourceValidator extends VtnServiceValidator {
                        .getLogger(VtnResourceValidator.class.getName());
 
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new vtn resource validator.
@@ -47,7 +47,7 @@ public class VtnResourceValidator extends VtnServiceValidator {
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start VtnResourceValidator#validateUri()");
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.URI
@@ -71,8 +71,9 @@ public class VtnResourceValidator extends VtnServiceValidator {
         * Validate request Json object for get, put and post method of Vtn API
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start VtnResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of VtnResourceValidator");
@@ -172,11 +173,12 @@ public class VtnResourceValidator extends VtnServiceValidator {
                                                        .getAsJsonObject(VtnServiceJsonConsts.VTN)
                                                        .getAsJsonPrimitive(
                                                                        VtnServiceJsonConsts.DESCRIPTION)
-                                                       .getAsString() != null && !requestBody
+                                                       .getAsString() != null
+                                       && !requestBody
                                                        .getAsJsonObject(VtnServiceJsonConsts.VTN)
                                                        .getAsJsonPrimitive(
                                                                        VtnServiceJsonConsts.DESCRIPTION)
-                                                                       .getAsString().trim().isEmpty()) {
+                                                       .getAsString().trim().isEmpty()) {
                                isValid = validator.isValidMaxLength(requestBody
                                                .getAsJsonObject(VtnServiceJsonConsts.VTN)
                                                .getAsJsonPrimitive(VtnServiceJsonConsts.DESCRIPTION)
index 9b7065a816cb7476c0ff22306e025dbccc476019..fda22fd90056fa61471ecf9ea6c77765fd5b2de7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -29,7 +29,7 @@ public class VtnStationsResourceValidator extends VtnServiceValidator {
                        .getLogger(VtnStationsResourceValidator.class.getName());
 
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new vtn stations resource validator.
@@ -122,14 +122,14 @@ public class VtnStationsResourceValidator extends VtnServiceValidator {
                        if (requestBody.has(VtnServiceJsonConsts.VLANID)
                                        && requestBody.has(VtnServiceJsonConsts.NO_VLAN_ID)) {
                                isValid = false;
-                       } // validation for key: vlan_id
-                       else if (requestBody.has(VtnServiceJsonConsts.VLANID)) {
+                       } else if (requestBody.has(VtnServiceJsonConsts.VLANID)) {
                                setInvalidParameter(VtnServiceJsonConsts.VLANID);
                                if (requestBody.getAsJsonPrimitive(VtnServiceJsonConsts.VLANID)
                                                .getAsString() != null
                                                && !requestBody
                                                                .getAsJsonPrimitive(VtnServiceJsonConsts.VLANID)
                                                                .getAsString().trim().isEmpty()) {
+                                       // validation for key: vlan_id
                                        isValid = validator.isValidRange(requestBody
                                                        .getAsJsonPrimitive(VtnServiceJsonConsts.VLANID)
                                                        .getAsString().trim(), VtnServiceJsonConsts.VAL_1,
@@ -137,8 +137,8 @@ public class VtnStationsResourceValidator extends VtnServiceValidator {
                                } else {
                                        isValid = false;
                                }
-                       } // validation for key: no_vlan_id
-                       else if (requestBody.has(VtnServiceJsonConsts.NO_VLAN_ID)) {
+                       } else if (requestBody.has(VtnServiceJsonConsts.NO_VLAN_ID)) {
+                               // validation for key: no_vlan_id
                                setInvalidParameter(VtnServiceJsonConsts.NO_VLAN_ID);
                                if (requestBody.getAsJsonPrimitive(
                                                VtnServiceJsonConsts.NO_VLAN_ID).getAsString() != null
@@ -268,7 +268,8 @@ public class VtnStationsResourceValidator extends VtnServiceValidator {
                                                                .getAsJsonPrimitive(VtnServiceJsonConsts.IFNAME)
                                                                .getAsString().trim().isEmpty();
                        }
-               }// validation for key: domain_id
+               }
+               // validation for key: domain_id
                if (isValid) {
                        setInvalidParameter(VtnServiceJsonConsts.DOMAINID);
                        if (requestBody.has(VtnServiceJsonConsts.DOMAINID)
@@ -290,4 +291,4 @@ public class VtnStationsResourceValidator extends VtnServiceValidator {
                LOG.trace("Complete VtnStationsResourceValidator#validateGet()");
                return isValid;
        }
-}
\ No newline at end of file
+}
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/package-info.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/logical/package-info.java
new file mode 100644 (file)
index 0000000..452b785
--- /dev/null
@@ -0,0 +1,14 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * Package contains Java API Resource classes for logical APIs.
+ */
+package org.opendaylight.vtn.javaapi.validation.logical;
+
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/package-info.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/package-info.java
new file mode 100644 (file)
index 0000000..6d373f7
--- /dev/null
@@ -0,0 +1,15 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * Package contains Java API Resource validation interfaces
+ *  and classes for TC and Session APIs
+ */
+package org.opendaylight.vtn.javaapi.validation;
+
index 4a9ff9826b7c20c1079deedf30cb0a5079b016b6..8e9f4d435f4aee3e2911394f3ee1e7bb50f4713b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -31,7 +31,7 @@ public class AlarmResourceValidator extends VtnServiceValidator {
                        .getLogger(AlarmResourceValidator.class.getName());
 
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new alarm resource validator.
@@ -49,7 +49,7 @@ public class AlarmResourceValidator extends VtnServiceValidator {
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start AlarmResourceValidator#validateUri()");
                boolean isValid = false;
                if (resource instanceof AlarmResource) {
@@ -64,8 +64,9 @@ public class AlarmResourceValidator extends VtnServiceValidator {
         * Validate request JSON for Clear Alarms API.
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start AlarmResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of AlarmResourceValidator");
@@ -114,9 +115,11 @@ public class AlarmResourceValidator extends VtnServiceValidator {
                                && !requestBody
                                                .getAsJsonPrimitive(VtnServiceJsonConsts.ALARMNO)
                                                .getAsString().trim().isEmpty()) {
-                       isValid = validator.isValidAlarmRange(new BigInteger(requestBody
-                                       .getAsJsonPrimitive(VtnServiceJsonConsts.ALARMNO)
-                                       .getAsString().trim()), VtnServiceJsonConsts.BIG_VAL0,
+                       isValid = validator.isValidBigIntegerRangeString(new BigInteger(
+                                       requestBody
+                                                       .getAsJsonPrimitive(VtnServiceJsonConsts.ALARMNO)
+                                                       .getAsString().trim()),
+                                       VtnServiceJsonConsts.BIG_VAL0,
                                        VtnServiceJsonConsts.BIG_VAL_9999999999999999999);
                } else {
                        isValid = false;
index 76bc02ddb22b75b4e1bf4bbe41c174f5c838d5a5..b6c132811458f9a6b679edd91689ee374bd48990 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -29,7 +29,7 @@ public class BoundaryResourceValidator extends VtnServiceValidator {
                        .getLogger(BoundaryResourceValidator.class.getName());
 
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new Boundary resource validator.
@@ -47,7 +47,7 @@ public class BoundaryResourceValidator extends VtnServiceValidator {
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start BoundaryResourceValidator#validateUri()");
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.URI
@@ -72,8 +72,9 @@ public class BoundaryResourceValidator extends VtnServiceValidator {
         * Validate request json for put, post and get methods of Boundary API
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start BoundaryResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of VtnResourceValidator");
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/physical/ControllerDataFlowResourceValidator.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/physical/ControllerDataFlowResourceValidator.java
new file mode 100644 (file)
index 0000000..29ae90e
--- /dev/null
@@ -0,0 +1,171 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.vtn.javaapi.validation.physical;
+
+import java.math.BigInteger;
+
+import com.google.gson.JsonObject;
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
+import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
+import org.opendaylight.vtn.javaapi.resources.AbstractResource;
+import org.opendaylight.vtn.javaapi.resources.physical.ControllerDataFlowResource;
+import org.opendaylight.vtn.javaapi.validation.CommonValidator;
+import org.opendaylight.vtn.javaapi.validation.VtnServiceValidator;
+
+/**
+ * The Class DataFlowResourceValidator validates .
+ */
+public class ControllerDataFlowResourceValidator extends VtnServiceValidator {
+       /**
+        * . Logger is used for debugging purpose
+        */
+       private static final Logger LOG = Logger
+                       .getLogger(BoundaryResourceValidator.class.getName());
+       /**
+        * . AbsractResouce class refernce
+        */
+       private final AbstractResource resource;
+       private final CommonValidator validator = new CommonValidator();
+
+       /**
+        * Instantiates a new Controller Data Flow resource Validator. the instance
+        * of AbstractResource.
+        * 
+        * @param mappingResource
+        *            ,AbstarctResouce refernce assigned to derived class
+        */
+       public ControllerDataFlowResourceValidator(
+                       final AbstractResource mappingResource) {
+               this.resource = mappingResource;
+       }
+
+       /**
+        * Validate uri for ControllerDataFlowResource API.
+        * 
+        * @return true, if successful
+        */
+       @Override
+       public final boolean validateUri() {
+               LOG.trace("Start ControllerDataFlowResourceValidator#validateUri()");
+               boolean isValid = false;
+               setInvalidParameter(VtnServiceJsonConsts.URI
+                               + VtnServiceJsonConsts.CONTROLLERID);
+               if (resource instanceof ControllerDataFlowResource
+                               && ((ControllerDataFlowResource) resource).getControllerId() != null
+                               && !((ControllerDataFlowResource) resource).getControllerId()
+                                               .trim().isEmpty()) {
+                       isValid = validator.isValidMaxLengthAlphaNum(
+                                       ((ControllerDataFlowResource) resource).getControllerId()
+                                                       .trim(), VtnServiceJsonConsts.LEN_31);
+                       setListOpFlag(true);
+               }
+
+               LOG.trace("Complete ControllerDataFlowResourceValidator#validateUri()");
+               return isValid;
+       }
+
+       /**
+        * . Validate request json for get method of Controller Data Flow API.
+        */
+       /**
+        * @param method
+        *            , contains info about get,post ,delete.
+        * @param requestBody
+        *            , contains request param.
+        * @throws VtnServiceException
+        *             , vtnexcpetion is thrown.
+        */
+       @Override
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
+               LOG.trace("Start ControllerDataFlowResourceValidator#validate()");
+               LOG.info("Validating request for " + method
+                               + " of ControllerDataFlowResourceValidator");
+               boolean isValid = false;
+               try {
+                       isValid = validateUri();
+                       if (isValid && requestBody != null
+                                       && VtnServiceConsts.GET.equals(method)) {
+                               isValid = isValidateGet(requestBody, isListOpFlag());
+                               updateOpParameterForList(requestBody);
+                       } else if (isValid) {
+                               setInvalidParameter(VtnServiceConsts.INCORRECT_METHOD_INVOCATION);
+                               isValid = false;
+                       }
+               } catch (final NumberFormatException e) {
+                       LOG.error("Inside catch:NumberFormatException");
+                       isValid = false;
+               }
+               // Throws exception if validation fails
+               if (!isValid) {
+                       LOG.error("Validation failed");
+                       throw new VtnServiceException(Thread.currentThread()
+                                       .getStackTrace()[1].getMethodName(),
+                                       UncJavaAPIErrorCode.VALIDATION_ERROR.getErrorCode(),
+                                       UncJavaAPIErrorCode.VALIDATION_ERROR.getErrorMessage());
+               }
+               LOG.info("Validation successful");
+               LOG.trace("Complete ControllerDataFlowResourceValidator#validate()");
+       }
+
+       /**
+        * . Validate request json for get method of Controller Data Flow API
+        * 
+        * @param requestBody
+        *            the request Json object
+        * @return true, if successful
+        * @throws VtnServiceException
+        * @param opFlag
+        *            , opertion type
+        */
+       private boolean isValidateGet(final JsonObject requestBody,
+                       final boolean opFlag) {
+               LOG.trace("Start ControllerDataFlowResourceValidator#isValidateGet()");
+               boolean isValid = true;
+               setInvalidParameter(VtnServiceJsonConsts.URI
+                               + VtnServiceJsonConsts.CONTROLLERID);
+               if (resource instanceof ControllerDataFlowResource
+                               && ((ControllerDataFlowResource) resource).getControllerId() != null
+                               && !((ControllerDataFlowResource) resource).getControllerId()
+                                               .trim().isEmpty()) {
+                       isValid = validator.isValidMaxLengthAlphaNum(
+                                       ((ControllerDataFlowResource) resource).getControllerId()
+                                                       .trim(), VtnServiceJsonConsts.LEN_31);
+                       setListOpFlag(true);
+               }
+               setInvalidParameter(VtnServiceJsonConsts.CONTROLLERID);
+               if (requestBody.has(VtnServiceJsonConsts.CONTROLLERID)
+                               && requestBody.getAsJsonPrimitive(
+                                               VtnServiceJsonConsts.CONTROLLERID).getAsString() != null) {
+                       isValid = validator.isValidMaxLengthAlphaNum(requestBody
+                                       .getAsJsonPrimitive(VtnServiceJsonConsts.CONTROLLERID)
+                                       .getAsString().trim(), VtnServiceJsonConsts.LEN_31);
+               }
+
+               setInvalidParameter(VtnServiceJsonConsts.FLOW_ID);
+               if (requestBody.has(VtnServiceJsonConsts.FLOW_ID)
+                               && requestBody.getAsJsonPrimitive(VtnServiceJsonConsts.FLOW_ID)
+                                               .getAsString() != null) {
+                       isValid = validator.isValidBigIntegerRangeString(new BigInteger(
+                                       requestBody
+                                                       .getAsJsonPrimitive(VtnServiceJsonConsts.FLOW_ID)
+                                                       .getAsString().trim()),
+                                       VtnServiceJsonConsts.BIG_VAL0,
+                                       VtnServiceJsonConsts.BIG_VAL_18446744073709551615);
+               }
+
+               LOG.trace("Complete ControllerDataFlowResourceValidator#isValidateGet");
+               return isValid;
+       }
+}
index 127cfd03a01071e70be4290c8e7e3ecb787de45e..c2b1d767809ed8de8f4661da7b28d96ac39006c5 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -26,7 +26,7 @@ public class ControllerResourceValidator extends VtnServiceValidator {
                        .getLogger(ControllerResourceValidator.class.getName());
 
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new controller resource validator.
@@ -44,7 +44,7 @@ public class ControllerResourceValidator extends VtnServiceValidator {
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start ControllerResourceValidator#validateUri()");
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.CONTROLLERID);
@@ -68,8 +68,9 @@ public class ControllerResourceValidator extends VtnServiceValidator {
         * Validate request json for put, post and get method of controller API
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start ControlleResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of ControllerResourceValidator");
@@ -86,7 +87,7 @@ public class ControllerResourceValidator extends VtnServiceValidator {
                        } else if (isValid && requestBody != null
                                        && VtnServiceConsts.PUT.equals(method)) {
                                isValid = validatePut(requestBody);
-                       }else if (isValid) {
+                       } else if (isValid) {
                                setInvalidParameter(VtnServiceConsts.INCORRECT_METHOD_INVOCATION);
                                isValid = false;
                        }
@@ -114,7 +115,7 @@ public class ControllerResourceValidator extends VtnServiceValidator {
         * 
         * @return true, if is valid get
         */
-       public boolean validateGet(final JsonObject requestBody,
+       public final boolean validateGet(final JsonObject requestBody,
                        final boolean opFlag) {
                LOG.trace("Start ControllerResourceValidator#isValidGet");
                boolean isValid = true;
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/physical/DataFlowResourceValidator.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/physical/DataFlowResourceValidator.java
new file mode 100644 (file)
index 0000000..736d578
--- /dev/null
@@ -0,0 +1,236 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.vtn.javaapi.validation.physical;
+
+import com.google.gson.JsonObject;
+import org.opendaylight.vtn.core.util.Logger;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
+import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
+import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
+import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
+import org.opendaylight.vtn.javaapi.resources.AbstractResource;
+import org.opendaylight.vtn.javaapi.resources.physical.DataFlowResource;
+import org.opendaylight.vtn.javaapi.validation.CommonValidator;
+import org.opendaylight.vtn.javaapi.validation.VtnServiceValidator;
+
+/**
+ * The Class DataFlowResourceValidator validates request Json object for
+ * DataFlowResource API.
+ */
+public class DataFlowResourceValidator extends VtnServiceValidator {
+       /**
+        * Logger to debug.
+        */
+       private static final Logger LOG = Logger
+                       .getLogger(DataFlowResourceValidator.class.getName());
+       /**
+        * Abstract clas resouce refrence.
+        */
+       private final AbstractResource resource;
+       /**
+        * Common vaildator class object to invoke common validation methods.
+        */
+       private final CommonValidator validator = new CommonValidator();
+
+       /**
+        * Instantiates a new Data Flow resource Validator. the instance of
+        * AbstractResource
+        */
+       /**
+        * @param mappingResource
+        *            ,resouce class object
+        */
+       public DataFlowResourceValidator(final AbstractResource mappingResource) {
+               this.resource = mappingResource;
+       }
+
+       /**
+        * Validate uri for DataFlowResource API.
+        * 
+        * @return true, if successful
+        */
+       @Override
+       public final boolean validateUri() {
+               LOG.trace("Start DataFlowResourceValidator#validateUri()");
+               boolean isValid = false;
+               if (resource instanceof DataFlowResource) {
+                       isValid = true;
+                       setListOpFlag(true);
+               }
+               LOG.trace("Complete DataFlowResourceValidator#validateUri()");
+               return isValid;
+       }
+
+       /**
+        * Validate request JSON for get methods of Data Flow API.
+        */
+       /**
+        * @param method
+        *            , contains info about get,post ,delete.
+        * @param requestBody
+        *            , contains request param.
+        * @throws VtnServiceException
+        *             , vtnexcpetion is thrown.
+        */
+       @Override
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
+               LOG.trace("Start DataFlowResourceValidator#validate()");
+               LOG.info("Validating request for " + method
+                               + " of DataFlowResourceValidator");
+               boolean isValid = false;
+               try {
+                       isValid = validateUri();
+                       if (isValid && requestBody != null
+                                       && VtnServiceConsts.GET.equals(method)) {
+                               isValid = isValidateGet(requestBody, isListOpFlag());
+                               updateOpParameterForList(requestBody);
+                       } else if (isValid) {
+                               setInvalidParameter(VtnServiceConsts.INCORRECT_METHOD_INVOCATION);
+                               isValid = false;
+                       }
+               } catch (final NumberFormatException e) {
+                       LOG.error("Inside catch:NumberFormatException");
+                       isValid = false;
+               }
+               // Throws exception if validation fails
+               if (!isValid) {
+                       LOG.error("Validation failed");
+                       throw new VtnServiceException(Thread.currentThread()
+                                       .getStackTrace()[1].getMethodName(),
+                                       UncJavaAPIErrorCode.VALIDATION_ERROR.getErrorCode(),
+                                       UncJavaAPIErrorCode.VALIDATION_ERROR.getErrorMessage());
+               }
+               LOG.info("Validation successful");
+               LOG.trace("Complete DataFlowResourceValidator#validate()");
+       }
+
+       /**
+        * Validate request json for get method of Data Flow API.
+        * 
+        * @param requestBody
+        *            the request Json object
+        * @return true, if successful.
+        * @param opFlag
+        *            ,set for opertaion type
+        */
+       private boolean isValidateGet(final JsonObject requestBody,
+                       final boolean opFlag) {
+               LOG.trace("Start DataFlowResourceValidator#isValidateGet()");
+               boolean isValid = false;
+               // validation for key:controller_id(mandatory)
+               setInvalidParameter(VtnServiceJsonConsts.CONTROLLERID);
+               if (requestBody.has(VtnServiceJsonConsts.CONTROLLERID)
+                               && requestBody.getAsJsonPrimitive(
+                                               VtnServiceJsonConsts.CONTROLLERID).getAsString() != null
+                               && !requestBody
+                                               .getAsJsonPrimitive(VtnServiceJsonConsts.CONTROLLERID)
+                                               .getAsString().trim().isEmpty()) {
+                       isValid = validator.isValidMaxLengthAlphaNum(requestBody
+                                       .getAsJsonPrimitive(VtnServiceJsonConsts.CONTROLLERID)
+                                       .getAsString().trim(), VtnServiceJsonConsts.LEN_31);
+               }
+               // validation for key:switch_id(mandatory)
+               if (isValid) {
+                       setInvalidParameter(VtnServiceJsonConsts.SWITCHID);
+                       if (requestBody.has(VtnServiceJsonConsts.SWITCHID)
+                                       && requestBody.getAsJsonPrimitive(
+                                                       VtnServiceJsonConsts.SWITCHID).getAsString() != null
+                                       && !requestBody
+                                                       .getAsJsonPrimitive(VtnServiceJsonConsts.SWITCHID)
+                                                       .getAsString().trim().isEmpty()) {
+                               isValid = validator.isValidMaxLength(requestBody
+                                               .getAsJsonPrimitive(VtnServiceJsonConsts.SWITCHID)
+                                               .getAsString().trim(), VtnServiceJsonConsts.LEN_255);
+                       } else {
+                               isValid = false;
+                       }
+               }
+               // validation for key:port_name(mandatory)
+               if (isValid) {
+                       setInvalidParameter(VtnServiceJsonConsts.PORTNAME);
+                       if (requestBody.has(VtnServiceJsonConsts.PORTNAME)
+                                       && requestBody.getAsJsonPrimitive(
+                                                       VtnServiceJsonConsts.PORTNAME).getAsString() != null
+                                       && !requestBody
+                                                       .getAsJsonPrimitive(VtnServiceJsonConsts.PORTNAME)
+                                                       .getAsString().trim().isEmpty()) {
+                               isValid = validator.isValidMaxLength(requestBody
+                                               .getAsJsonPrimitive(VtnServiceJsonConsts.PORTNAME)
+                                               .getAsString().trim(), VtnServiceJsonConsts.LEN_31);
+                       } else {
+                               isValid = false;
+                       }
+               }
+
+               // validation for key: vlan_id or no_vlan_id(mandatory one of them)
+               if (isValid) {
+                       // only vlan_id or no_vlan_id is allowed
+                       setInvalidParameter(VtnServiceJsonConsts.VLANID
+                                       + VtnServiceJsonConsts.SLASH
+                                       + VtnServiceJsonConsts.NO_VLAN_ID);
+                       if (requestBody.has(VtnServiceJsonConsts.VLANID)
+                                       && requestBody.has(VtnServiceJsonConsts.NO_VLAN_ID)) {
+                               isValid = false;
+                       } else if (requestBody.has(VtnServiceJsonConsts.VLANID)) {
+                               setInvalidParameter(VtnServiceJsonConsts.VLANID);
+                               if (requestBody.getAsJsonPrimitive(VtnServiceJsonConsts.VLANID)
+                                               .getAsString() != null
+                                               && !requestBody
+                                                               .getAsJsonPrimitive(VtnServiceJsonConsts.VLANID)
+                                                               .getAsString().trim().isEmpty()) {
+                                       isValid = validator.isValidRange(requestBody
+                                                       .getAsJsonPrimitive(VtnServiceJsonConsts.VLANID)
+                                                       .getAsString().trim(), VtnServiceJsonConsts.VAL_1,
+                                                       VtnServiceJsonConsts.VAL_4095);
+                               } else {
+                                       isValid = false;
+                               }
+                       } else if (requestBody.has(VtnServiceJsonConsts.NO_VLAN_ID)) {
+                               setInvalidParameter(VtnServiceJsonConsts.NO_VLAN_ID);
+                               if (requestBody.getAsJsonPrimitive(
+                                               VtnServiceJsonConsts.NO_VLAN_ID).getAsString() != null
+                                               && !requestBody
+                                                               .getAsJsonPrimitive(
+                                                                               VtnServiceJsonConsts.NO_VLAN_ID)
+                                                               .getAsString().trim().isEmpty()) {
+                                       isValid = requestBody
+                                                       .getAsJsonPrimitive(VtnServiceJsonConsts.NO_VLAN_ID)
+                                                       .getAsString().trim()
+                                                       .equalsIgnoreCase(VtnServiceJsonConsts.TRUE);
+                               } else {
+                                       isValid = false;
+                               }
+                       } else {
+                               isValid = false;
+                       }
+               }
+
+               // validation for key: srcmacaddr(mandatory)
+               if (isValid) {
+                       setInvalidParameter(VtnServiceJsonConsts.SRCMACADDR);
+                       if (requestBody.has(VtnServiceJsonConsts.SRCMACADDR)
+                                       && requestBody.getAsJsonPrimitive(
+                                                       VtnServiceJsonConsts.SRCMACADDR).getAsString() != null
+                                       && !requestBody
+                                                       .getAsJsonPrimitive(VtnServiceJsonConsts.SRCMACADDR)
+                                                       .getAsString().trim().isEmpty()) {
+                               isValid = validator.isValidMacAddress(requestBody
+                                               .getAsJsonPrimitive(VtnServiceJsonConsts.SRCMACADDR)
+                                               .getAsString().trim());
+                       } else {
+                               isValid = false;
+                       }
+               }
+               LOG.trace("Complete DataFlowResourceValidator#isValidateGet");
+               return isValid;
+       }
+}
index 71bd38c5a13d7e3221d6c1a5e2b1c50e4760653a..29420ca2d82b2143f75a2777ce5d2002f37f81d0 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -15,7 +15,6 @@ import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
 import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
 import org.opendaylight.vtn.javaapi.resources.AbstractResource;
-import org.opendaylight.vtn.javaapi.resources.physical.DomainLogicalPortResource;
 import org.opendaylight.vtn.javaapi.resources.physical.DomainLogicalPortsResource;
 import org.opendaylight.vtn.javaapi.validation.CommonValidator;
 import org.opendaylight.vtn.javaapi.validation.VtnServiceValidator;
@@ -30,7 +29,7 @@ public class DomainLogicalPortResourceValidator extends VtnServiceValidator {
                        .getLogger(DomainLogicalPortResourceValidator.class.getName());
 
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new DomainLogicalPort resource validator.
@@ -48,48 +47,12 @@ public class DomainLogicalPortResourceValidator extends VtnServiceValidator {
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start DomainLogicalPortResourceValidator#validateUri()");
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.URI
                                + VtnServiceJsonConsts.CONTROLLERID);
-               if (resource instanceof DomainLogicalPortResource
-                               && ((DomainLogicalPortResource) resource).getControllerId() != null
-                               && !((DomainLogicalPortResource) resource).getControllerId()
-                                               .trim().isEmpty()) {
-                       isValid = validator.isValidMaxLengthAlphaNum(
-                                       ((DomainLogicalPortResource) resource).getControllerId()
-                                                       .trim(), VtnServiceJsonConsts.LEN_31);
-                       if (isValid) {
-                               setInvalidParameter(VtnServiceJsonConsts.URI
-                                               + VtnServiceJsonConsts.DOMAINID);
-                               if (((DomainLogicalPortResource) resource).getDomainId() != null
-                                               && !((DomainLogicalPortResource) resource)
-                                                               .getDomainId().trim().isEmpty()) {
-                                       isValid = validator.isValidDomainId(
-                                                       ((DomainLogicalPortResource) resource)
-                                                                       .getDomainId().trim(),
-                                                       VtnServiceJsonConsts.LEN_31);
-                               } else {
-                                       isValid = false;
-                               }
-                       }
-                       if (isValid) {
-                               setInvalidParameter(VtnServiceJsonConsts.URI
-                                               + VtnServiceJsonConsts.LOGICAL_PORT_ID);
-                               if (((DomainLogicalPortResource) resource).getLogicalPortId() != null
-                                               && !((DomainLogicalPortResource) resource)
-                                                               .getLogicalPortId().trim().isEmpty()) {
-                                       isValid = validator.isValidMaxLength(
-                                                       ((DomainLogicalPortResource) resource)
-                                                                       .getLogicalPortId().trim(),
-                                                       VtnServiceJsonConsts.LEN_319);
-                               } else {
-                                       isValid = false;
-                               }
-                       }
-                       setListOpFlag(false);
-               } else if (resource instanceof DomainLogicalPortsResource) {
+               if (resource instanceof DomainLogicalPortsResource) {
                        if (((DomainLogicalPortsResource) resource).getcontrollerId() != null
                                        && !((DomainLogicalPortsResource) resource)
                                                        .getcontrollerId().trim().isEmpty()) {
@@ -119,8 +82,9 @@ public class DomainLogicalPortResourceValidator extends VtnServiceValidator {
        }
 
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start DomainLogicalPortResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of DomainLogicalPortResourceValidator");
@@ -234,6 +198,23 @@ public class DomainLogicalPortResourceValidator extends VtnServiceValidator {
                                 */
                        }
                }
+               if (isValid) {
+                       setInvalidParameter(VtnServiceJsonConsts.LOGICAL_PORT_ID);
+                       if (requestBody.has(VtnServiceJsonConsts.LOGICAL_PORT_ID)
+                                       && requestBody.getAsJsonPrimitive(
+                                                       VtnServiceJsonConsts.LOGICAL_PORT_ID).getAsString() != null
+                                       && !requestBody
+                                                       .getAsJsonPrimitive(
+                                                                       VtnServiceJsonConsts.LOGICAL_PORT_ID)
+                                                       .getAsString().isEmpty()) {
+                               isValid = validator.isValidMaxLength(
+                                               requestBody
+                                                               .getAsJsonPrimitive(
+                                                                               VtnServiceJsonConsts.LOGICAL_PORT_ID)
+                                                               .getAsString().trim(),
+                                               VtnServiceJsonConsts.LEN_319);
+                       }
+               }
                LOG.trace("Complete DomainLogicalPortResourceValidator#isValidGet");
                return isValid;
        }
index ce8e69f1b2e597e576566e473a1009e39e023253..041b5901255b38c176709a65af3c821c69db3b94 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -30,7 +30,7 @@ public class DomainResourceValidator extends VtnServiceValidator {
                        .getLogger(DomainResourceValidator.class.getName());
 
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new Domain resource validator.
@@ -48,7 +48,7 @@ public class DomainResourceValidator extends VtnServiceValidator {
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start DomainResourceValidator#validateUri()");
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.URI
@@ -91,8 +91,9 @@ public class DomainResourceValidator extends VtnServiceValidator {
         * Validate request json for Domain API
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start DomainResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of DomainResourceValidator");
@@ -181,6 +182,7 @@ public class DomainResourceValidator extends VtnServiceValidator {
        }
 
        /**
+        * 
         * @param isValid
         * @param domain
         * @return
@@ -301,4 +303,4 @@ public class DomainResourceValidator extends VtnServiceValidator {
                LOG.trace("Complete DomainResourceValidator#validateGet()");
                return isValid;
        }
-}
\ No newline at end of file
+}
index 5df3c697942ef4a18af0d74911bb48af9080e41f..a8835892b65635ae1fb091298c6ff5e99c22f7d1 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -15,7 +15,6 @@ import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
 import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
 import org.opendaylight.vtn.javaapi.resources.AbstractResource;
-import org.opendaylight.vtn.javaapi.resources.physical.LinkResource;
 import org.opendaylight.vtn.javaapi.resources.physical.LinksResource;
 import org.opendaylight.vtn.javaapi.validation.CommonValidator;
 import org.opendaylight.vtn.javaapi.validation.VtnServiceValidator;
@@ -25,55 +24,42 @@ import org.opendaylight.vtn.javaapi.validation.VtnServiceValidator;
  * API.
  */
 public class LinkResourceValidator extends VtnServiceValidator {
-
+       /**
+        * Logger for debugging purpose.
+        */
        private static final Logger LOG = Logger
                        .getLogger(LinkResourceValidator.class.getName());
-
+       /**
+        * resource , the instance of AbstractResource.
+        */
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       /**
+        * validator object for common validations.
+        */
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new link resource validator.
         * 
-        * @param switchResource
-        *            the instance of AbstractResource
+        * @param resource
+        *            the instance of AbstractResource
         */
        public LinkResourceValidator(final AbstractResource resource) {
                this.resource = resource;
        }
 
        /**
-        * Validate uri parameters for Link API
+        * Validate uri parameters for Link API .
         * 
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start LinkResourceValidator#validateUri()");
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.URI
                                + VtnServiceJsonConsts.CONTROLLERID);
-               if (resource instanceof LinkResource
-                               && ((LinkResource) resource).getControllerId() != null
-                               && !((LinkResource) resource).getControllerId().trim()
-                                               .isEmpty()) {
-                       isValid = validator.isValidMaxLengthAlphaNum(
-                                       ((LinkResource) resource).getControllerId().trim(),
-                                       VtnServiceJsonConsts.LEN_31);
-                       if (isValid) {
-                               setInvalidParameter(VtnServiceJsonConsts.URI
-                                               + VtnServiceJsonConsts.LINKNAME);
-                               if (((LinkResource) resource).getLinkName() != null
-                                               && !((LinkResource) resource).getLinkName().trim()
-                                                               .isEmpty()) {
-                                       isValid = linkNameValidator(((LinkResource) resource)
-                                                       .getLinkName().trim());
-                               } else {
-                                       isValid = false;
-                               }
-                       }
-                       setListOpFlag(false);
-               } else if (resource instanceof LinksResource
+               if (resource instanceof LinksResource
                                && ((LinksResource) resource).getControllerId() != null
                                && !((LinksResource) resource).getControllerId().trim()
                                                .isEmpty()) {
@@ -87,7 +73,7 @@ public class LinkResourceValidator extends VtnServiceValidator {
        }
 
        /**
-        * Validate link name
+        * Validate link name .
         * 
         * @param link
         *            value to be validated
@@ -121,11 +107,20 @@ public class LinkResourceValidator extends VtnServiceValidator {
        }
 
        /**
-        * Validate request json get method of Link API
+        * Validate request JSON for get methods of Data Flow API.
+        */
+       /**
+        * @param method
+        *            , contains info about get,post ,delete.
+        * @param requestBody
+        *            , contains request param.
+        * @throws VtnServiceException
+        *             , vtnexcpetion is thrown.
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start LinkResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of LinkResourceValidator");
@@ -136,7 +131,7 @@ public class LinkResourceValidator extends VtnServiceValidator {
                                        && VtnServiceConsts.GET.equals(method)) {
                                isValid = validateGet(requestBody, isListOpFlag());
                                updateOpParameterForList(requestBody);
-                       }else if (isValid) {
+                       } else if (isValid) {
                                setInvalidParameter(VtnServiceConsts.INCORRECT_METHOD_INVOCATION);
                                isValid = false;
                        }
@@ -157,14 +152,15 @@ public class LinkResourceValidator extends VtnServiceValidator {
        }
 
        /**
-        * Validate get request json for Link API
+        * Validate get request json for Link API .
         * 
         * @param requestBody
-        *            the request Json object
-        * 
+        *            , the request Json object .
+        * @param opFlag
+        *            , to resolve operation type .
         * @return true, if is valid get
         */
-       public boolean validateGet(final JsonObject requestBody,
+       public final boolean validateGet(final JsonObject requestBody,
                        final boolean opFlag) {
                LOG.trace("Start LinkResourceValidator#ValidGet");
                boolean isValid = true;
@@ -212,10 +208,7 @@ public class LinkResourceValidator extends VtnServiceValidator {
                                setInvalidParameter(VtnServiceJsonConsts.INDEX);
                                if (requestBody.has(VtnServiceJsonConsts.INDEX)
                                                && requestBody.getAsJsonPrimitive(
-                                                               VtnServiceJsonConsts.INDEX).getAsString() != null
-                                               && !requestBody
-                                                               .getAsJsonPrimitive(VtnServiceJsonConsts.INDEX)
-                                                               .getAsString().isEmpty()) {
+                                                               VtnServiceJsonConsts.INDEX).getAsString() != null) {
                                        isValid = linkNameValidator(requestBody
                                                        .getAsJsonPrimitive(VtnServiceJsonConsts.INDEX)
                                                        .getAsString().trim());
@@ -263,6 +256,18 @@ public class LinkResourceValidator extends VtnServiceValidator {
                                                .getAsString().trim(), VtnServiceJsonConsts.LEN_255);
                        }
                }
+               // validation for key: Link Name
+               if (isValid) {
+                       setInvalidParameter(VtnServiceJsonConsts.LINKNAME);
+                       if (requestBody.has(VtnServiceJsonConsts.LINKNAME)
+                                       && requestBody.getAsJsonPrimitive(
+                                                       VtnServiceJsonConsts.LINKNAME).getAsString() != null) {
+                               isValid = linkNameValidator(requestBody
+                                               .getAsJsonPrimitive(VtnServiceJsonConsts.LINKNAME)
+                                               .getAsString().trim());
+                       }
+               }
+
                LOG.trace("Complete LinkResourceValidator#isValidGet");
                return isValid;
        }
index 451d58808923254d98288d8b282b748ebed54cb6..ad6b1cf47cec614310d9519dec6259627cc2b23f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -15,7 +15,6 @@ import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
 import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
 import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
 import org.opendaylight.vtn.javaapi.resources.AbstractResource;
-import org.opendaylight.vtn.javaapi.resources.physical.SwitchPortResource;
 import org.opendaylight.vtn.javaapi.resources.physical.SwitchPortsResource;
 import org.opendaylight.vtn.javaapi.validation.CommonValidator;
 import org.opendaylight.vtn.javaapi.validation.VtnServiceValidator;
@@ -25,69 +24,42 @@ import org.opendaylight.vtn.javaapi.validation.VtnServiceValidator;
  * API.
  */
 public class SwitchPortResourceValidator extends VtnServiceValidator {
-
+       /**
+        * logger object for debugging.
+        */
        private static final Logger LOG = Logger
                        .getLogger(SwitchPortResourceValidator.class.getName());
-
+       /**
+        * Abstract resource.
+        */
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       /**
+        * Common validator class for common validations.
+        */
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new switch port resource validator.
         * 
-        * @param resource
+        * @param resource1
         *            the instance of AbstractResource
         */
-       public SwitchPortResourceValidator(final AbstractResource resource) {
-               this.resource = resource;
+       public SwitchPortResourceValidator(final AbstractResource resource1) {
+               this.resource = resource1;
        }
 
        /**
-        * Validate uri parameters for Port API
+        * Validate uri parameters for Port API.
         * 
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start SwitchPortResourceValidator#validateUri()");
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.URI
                                + VtnServiceJsonConsts.CONTROLLERID);
-               if (resource instanceof SwitchPortResource
-                               && ((SwitchPortResource) resource).getControllerId() != null
-                               && !((SwitchPortResource) resource).getControllerId().trim()
-                                               .isEmpty()) {
-                       isValid = validator.isValidMaxLengthAlphaNum(
-                                       ((SwitchPortResource) resource).getControllerId().trim(),
-                                       VtnServiceJsonConsts.LEN_31);
-                       if (isValid) {
-                               setInvalidParameter(VtnServiceJsonConsts.URI
-                                               + VtnServiceJsonConsts.SWITCHID);
-                               if (((SwitchPortResource) resource).getSwitchId() != null
-                                               && !((SwitchPortResource) resource).getSwitchId()
-                                                               .trim().isEmpty()) {
-                                       isValid = validator.isValidMaxLength(
-                                                       ((SwitchPortResource) resource).getSwitchId()
-                                                                       .trim(), VtnServiceJsonConsts.LEN_255);
-                               } else {
-                                       isValid = false;
-                               }
-                       }
-                       if (isValid) {
-                               setInvalidParameter(VtnServiceJsonConsts.URI
-                                               + VtnServiceJsonConsts.PORTNAME);
-                               if (((SwitchPortResource) resource).getPortName() != null
-                                               && !((SwitchPortResource) resource).getPortName()
-                                                               .trim().isEmpty()) {
-                                       isValid = validator.isValidMaxLength(
-                                                       ((SwitchPortResource) resource).getPortName()
-                                                                       .trim(), VtnServiceJsonConsts.LEN_31);
-                               } else {
-                                       isValid = false;
-                               }
-                       }
-                       setListOpFlag(false);
-               } else if (resource instanceof SwitchPortsResource
+               if (resource instanceof SwitchPortsResource
                                && ((SwitchPortsResource) resource).getControllerId() != null
                                && !((SwitchPortsResource) resource).getControllerId().trim()
                                                .isEmpty()) {
@@ -115,8 +87,9 @@ public class SwitchPortResourceValidator extends VtnServiceValidator {
         * Validate get request json for Port API
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start SwitchPortResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of SwitchPortResourceValidator");
@@ -148,13 +121,15 @@ public class SwitchPortResourceValidator extends VtnServiceValidator {
        }
 
        /**
-        * Validate get request json for Port API
+        * Validate get request json for Port API.
         * 
+        * @param opFlag
+        *            ,opflag set
         * @param requestBody
         *            the request Json object
         * @return true, if is valid get
         */
-       public boolean validateGet(final JsonObject requestBody,
+       public final boolean validateGet(final JsonObject requestBody,
                        final boolean opFlag) {
                LOG.trace("Start SwitchPortResourceValidator#ValidGet");
                boolean isValid = true;
@@ -195,7 +170,7 @@ public class SwitchPortResourceValidator extends VtnServiceValidator {
                        // validation for key: op
                        if (isValid) {
                                setInvalidParameter(VtnServiceJsonConsts.OP);
-                               isValid = validator.isValidOperation(requestBody);
+                               isValid = validator.isValidOperationInfo(requestBody);
                        }
                        // validation for key: index
                        if (isValid) {
@@ -225,7 +200,37 @@ public class SwitchPortResourceValidator extends VtnServiceValidator {
                                 */
                        }
                }
-               LOG.trace("Complete SwitchResourceValidator#isValidGet");
+               if (isValid) {
+                       // validation for key: Port Name(Optional)
+                       setInvalidParameter(VtnServiceJsonConsts.PORTNAME);
+                       if (requestBody.has(VtnServiceJsonConsts.PORTNAME)
+                                       && requestBody.getAsJsonPrimitive(
+                                                       VtnServiceJsonConsts.PORTNAME).getAsString() != null
+                                       && !requestBody
+                                                       .getAsJsonPrimitive(VtnServiceJsonConsts.PORTNAME)
+                                                       .getAsString().trim().isEmpty()) {
+                               isValid = validator.isValidMaxLength(requestBody
+                                               .getAsJsonPrimitive(VtnServiceJsonConsts.PORTNAME)
+                                               .getAsString().trim(), VtnServiceJsonConsts.LEN_31);
+                       }
+               }
+
+               if (isValid) {
+                       // validation for key: Port Id(Optional)
+                       setInvalidParameter(VtnServiceJsonConsts.PORT_ID);
+                       if (requestBody.has(VtnServiceJsonConsts.PORT_ID)
+                                       && requestBody.getAsJsonPrimitive(
+                                                       VtnServiceJsonConsts.PORT_ID).getAsString() != null
+                                       && !requestBody
+                                                       .getAsJsonPrimitive(VtnServiceJsonConsts.PORT_ID)
+                                                       .getAsString().trim().isEmpty()) {
+                               isValid = validator.isValidRange(requestBody
+                                               .getAsJsonPrimitive(VtnServiceJsonConsts.PORT_ID)
+                                               .getAsString().trim(), VtnServiceJsonConsts.LONG_VAL_0,
+                                               VtnServiceJsonConsts.LONG_VAL_4294967295);
+                       }
+               }
+               LOG.trace("Complete SwitchPortResourceValidator#isValidGet");
                return isValid;
        }
 }
index 6573948cec22c2a9f4ab901a8c165a3730689cde..27ea455c09aae0ae51aedb2597298201c14eb964 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -25,30 +25,37 @@ import org.opendaylight.vtn.javaapi.validation.VtnServiceValidator;
  * API.
  */
 public class SwitchResourceValidator extends VtnServiceValidator {
-
+       /**
+        * Logger for debugging purpose.
+        */
        private static final Logger LOG = Logger
                        .getLogger(SwitchResourceValidator.class.getName());
-
+       /**
+        * resource , the instance of AbstractResource.
+        */
        private final AbstractResource resource;
-       final CommonValidator validator = new CommonValidator();
+       /**
+        * validator object for common validations.
+        */
+       private final CommonValidator validator = new CommonValidator();
 
        /**
         * Instantiates a new switch resource validator.
         * 
-        * @param switchResource
-        *            the instance of AbstractResource
+        * @param resource
+        *            , the instance of AbstractResource.
         */
        public SwitchResourceValidator(final AbstractResource resource) {
                this.resource = resource;
        }
 
        /**
-        * Validate uri parameters for Switch API
+        * Validate uri parameters for Switch API.
         * 
         * @return true, if successful
         */
        @Override
-       public boolean validateUri() {
+       public final boolean validateUri() {
                LOG.trace("Start SwitchResourceValidator#validateUri()");
                boolean isValid = false;
                setInvalidParameter(VtnServiceJsonConsts.CONTROLLERID);
@@ -89,8 +96,9 @@ public class SwitchResourceValidator extends VtnServiceValidator {
         * Validate get request json for Switch API
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.trace("Start SwitchResourceValidator#validate()");
                LOG.info("Validating request for " + method
                                + " of SwitchResourceValidator");
@@ -122,18 +130,19 @@ public class SwitchResourceValidator extends VtnServiceValidator {
        }
 
        /**
-        * Validate get request json for Switch API
+        * Validate get request json for Switch API.
         * 
         * @param requestBody
-        *            the request Json object
-        * @return true, if is valid get
+        *            , the request Json object .
+        * @return true, if is valid get .
+        * @param opFlag
+        *            ,to reolve type of operations .
         */
-       public boolean validateGet(final JsonObject requestBody,
+       public final boolean validateGet(final JsonObject requestBody,
                        final boolean opFlag) {
                LOG.trace("Start SwitchResourceValidator#ValidateGet");
                boolean isValid = true;
                // validation for key: targetdb
-               // updated check for targetdb
                setInvalidParameter(VtnServiceJsonConsts.TARGETDB);
                if (requestBody.has(VtnServiceJsonConsts.TARGETDB)
                                && requestBody
@@ -151,11 +160,24 @@ public class SwitchResourceValidator extends VtnServiceValidator {
                                        VtnServiceJsonConsts.STATE);
                }
                if (!opFlag) {
-                       if (requestBody.has(VtnServiceJsonConsts.OP)) {
-                               requestBody.remove(VtnServiceJsonConsts.OP);
+                       // validation for key: op
+                       setInvalidParameter(VtnServiceJsonConsts.OP);
+                       if (requestBody.has(VtnServiceJsonConsts.OP)
+                                       && requestBody.getAsJsonPrimitive(VtnServiceJsonConsts.OP)
+                                                       .getAsString() != null
+                                       && !requestBody.getAsJsonPrimitive(VtnServiceJsonConsts.OP)
+                                                       .getAsString().trim().isEmpty()) {
+                               final String operation = requestBody
+                                               .getAsJsonPrimitive(VtnServiceJsonConsts.OP)
+                                               .getAsString().trim();
+                               isValid = operation
+                                               .equalsIgnoreCase(VtnServiceJsonConsts.DETAIL);
                        } else {
-                               LOG.debug("No need to remove");
+                               requestBody.remove(VtnServiceJsonConsts.OP);
+                               requestBody.addProperty(VtnServiceJsonConsts.OP,
+                                               VtnServiceJsonConsts.NORMAL);
                        }
+
                        if (requestBody.has(VtnServiceJsonConsts.INDEX)) {
                                requestBody.remove(VtnServiceJsonConsts.INDEX);
                        } else {
@@ -170,7 +192,24 @@ public class SwitchResourceValidator extends VtnServiceValidator {
                        if (isValid) {
                                // validation for key: op
                                setInvalidParameter(VtnServiceJsonConsts.OP);
-                               isValid = validator.isValidOperation(requestBody);
+                               if (requestBody.has(VtnServiceJsonConsts.OP)
+                                               && requestBody.getAsJsonPrimitive(
+                                                               VtnServiceJsonConsts.OP).getAsString() != null
+                                               && !requestBody
+                                                               .getAsJsonPrimitive(VtnServiceJsonConsts.OP)
+                                                               .getAsString().trim().isEmpty()) {
+                                       final String operation = requestBody
+                                                       .getAsJsonPrimitive(VtnServiceJsonConsts.OP)
+                                                       .getAsString().trim();
+                                       isValid = operation
+                                                       .equalsIgnoreCase(VtnServiceJsonConsts.DETAIL)
+                                                       || operation
+                                                                       .equalsIgnoreCase(VtnServiceJsonConsts.COUNT);
+                               } else {
+                                       requestBody.remove(VtnServiceJsonConsts.OP);
+                                       requestBody.addProperty(VtnServiceJsonConsts.OP,
+                                                       VtnServiceJsonConsts.NORMAL);
+                               }
                        }
                        if (isValid) {
                                // validation for key: index
@@ -207,4 +246,4 @@ public class SwitchResourceValidator extends VtnServiceValidator {
                LOG.trace("Complete SwitchResourceValidator#ValidateGet");
                return isValid;
        }
-}
\ No newline at end of file
+}
index 36a1ff7de02625f09c92d1b4e26e8a82bb19cd16..de4d69133cea15b27f7cbec77d102946e01757a1 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -31,8 +31,9 @@ public class VersionResourceValidator extends VtnServiceValidator {
         * Validate request Json for UNC Version API.
         */
        @Override
-       public void validate(final String method, final JsonObject requestBody)
-                       throws VtnServiceException {
+       public final void
+                       validate(final String method, final JsonObject requestBody)
+                                       throws VtnServiceException {
                LOG.info("No validation required for Show Version");
        }
 }
diff --git a/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/physical/package-info.java b/coordinator/java/vtn-javaapi/src/org/opendaylight/vtn/javaapi/validation/physical/package-info.java
new file mode 100644 (file)
index 0000000..97c29e5
--- /dev/null
@@ -0,0 +1,14 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * package contains Java API Resource classes for physical APIs.
+ */
+package org.opendaylight.vtn.javaapi.validation.physical;
+
index 7a783394ef9e178f31ecedc84dadfc96c379ba74..09efce979e9d401db066099ddb06b4f255e13dfb 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2012-2013 NEC Corporation
+# Copyright (c) 2012-2014 NEC Corporation
 # All rights reserved.
 # 
 # This program and the accompanying materials are made available under the
@@ -22,8 +22,9 @@ JAVA_IMPL_TITLE         = $(JAVA_SPEC_TITLE)
 # Use PFC-IPC and PFC-Core utility library.
 JAVA_LIBS              = pfc_ipc.jar pfc_util.jar vtn-javaapi.jar
 
-# Use both Google gson and org.json.
-JAVA_EXTLIBS           = $(GOOGLE_GSON) $(ORG_JSON)
+# Define external libraries.
+JAVA_EXTLIBS           = $(GOOGLE_GSON) $(ORG_JSON) $(COMMONS_NET)
+JAVA_EXTLIBS           += $(POSTGRESQL_JDBC)
 
 # Replace keywords in properties file.
 JAVA_TEXT_FILTERS      = -f UNC_JAVA_LIBDIR '$(INST_JAVADIR)/jar'
diff --git a/coordinator/java/vtn-webapi/src/mapmode.properties b/coordinator/java/vtn-webapi/src/mapmode.properties
new file mode 100644 (file)
index 0000000..dfa1d43
--- /dev/null
@@ -0,0 +1,11 @@
+#
+# Copyright (c) 2013-2014 NEC Corporation
+# All rights reserved.
+# 
+# This program and the accompanying materials are made available under the
+# terms of the Eclipse Public License v1.0 which accompanies this
+# distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+#
+
+#define map mode property for Create Port operation
+vlanmap_mode=1
similarity index 57%
rename from coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/enums/ApplicationConstants.java
rename to coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/constants/ApplicationConstants.java
index f20ef180b0ae6dff98e9cc0e875c6819b5221cd7..d28de15607da527dba079050c45e04deb7b03a6e 100644 (file)
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.vtn.webapi.enums;
+
+package org.opendaylight.vtn.webapi.constants;
 
 /**
- * The Class ApplicationConstants.This class contains all the constants used in the web api application
+ * The Class ApplicationConstants.This class contains all the constants used in
+ * the web api application
  */
 public final class ApplicationConstants {
-       
+
        /**
         * Instantiates a new application constants.
         */
-       private ApplicationConstants() {        
+       private ApplicationConstants() {
        }
-       
+
+       /** The Constant RESPONSE_SUCCESS. */
+       public static final int SUCCESS = 200;
+
        /** The Constant ZERO. */
        public static final int ZERO = 0;
-       
+
        /** The Constant FOUR for XML length. */
        public static final int FOUR = 4;
-       
+
        /** The Constant FIVE for JSON length. */
        public static final int FIVE = 5;
-       
+
        /** The Constant TIMEOUT. */
        public static final String TIMEOUT = "timeout";
-       
+
        /** The Constant READLOCK. */
        public static final String READLOCK = "readlock";
-       
+
        /** The Constant TYPE_XML. */
        public static final String TYPE_XML = ".xml";
-       
+
        /** The Constant TYPE_JSON. */
        public static final String TYPE_JSON = ".json";
-       
+
        /** The Constant ACCESS_PROPERTY_PATH. */
        public static final String ACCESS_PROPERTY_PATH = "/access.properties";
-               
+
+       /** The Constant PWD_PROPERTY_PATH. */
+       public static final String PWD_PROPERTY_PATH = "/pwd.properties";
+
        /** The Constant WEBAPI_CONF_PROPERTY_PATH. */
        public static final String WEBAPI_CONF_PROPERTY_PATH = "/webapiconf.properties";
-       
-       /** The Constant EMPTY_STRING. */
-       public static final String EMPTY_STRING = "";
-       
-       /** The Constant DEFAULT_ERROR_DESCRIPTION. */
-       public final static String DEFAULT_ERROR_DESCRIPTION = "internal server error";
-               
+
+       /** The Constant BLANK_STR. */
+       public static final String BLANK_STR = "";
+
        /** The Constant OPERATION. */
        public static final String OPERATION = "operation";
-       
+
        /** The Constant OPERATION_COMMIT. */
        public static final String OPERATION_COMMIT = "commit";
-       
+
        /** The Constant OPERATION_SAVE. */
        public static final String OPERATION_SAVE = "save";
-       
+
        /** The Constant CONFIGURATION_STRING. */
        public static final String CONFIGURATION_STRING = "configuration";
-       
+
        /** The Constant COLON. */
        public static final String COLON = ":";
-       
+
        /** The Constant ONE. */
        public static final int ONE = 1;
        /* HTTP Error codes and error descriptions */
-       //error codes
+       // error codes
        /** The Constant VTN_ERRORCODE_PREFIX. */
        public static final String VTN_ERRORCODE_PREFIX = "vtns_err_";
-       
-       /** The Constant STATUS_OK. */
-       public static final String STATUS_OK = "200";
-       
-       /** The Constant BAD_REQUEST_ERROR. */
-       public static final String BAD_REQUEST_ERROR = "400";
-       
-       /** The Constant USER_UNAUTHORISED_ERROR. */
-       public static final String USER_UNAUTHORISED_ERROR = "401";
-       
-       /** The Constant FORBIDDEN_ERROR. */
-       public static final String FORBIDDEN_ERROR = "403";
-       
-       /** The Constant RESOURCE_NOT_FOUND_ERROR. */
-       public static final String RESOURCE_NOT_FOUND_ERROR = "404";
-       
-       /** The Constant METHOD_NOT_ALLOWED_ERROR. */
-       public static final String METHOD_NOT_ALLOWED_ERROR = "405";
-               
-       /** The Constant INTERNAL_SERVER_ERROR. */
-       public static final String INTERNAL_SERVER_ERROR = "500";
-               
+
        /** The Constant ACCESS_ALL. */
        public static final String ACCESS_ALL = "ALL";
-       
+
        /** The Constant COMMA_STR. */
        public static final String COMMA_STR = ",";
-       
+
        /** The Constant ROLE_ADMIN. */
        public static final String ROLE_ADMIN = "admin";
-       
+
        /** The Constant ROLE_OPERATOR. */
        public static final String ROLE_OPERATOR = "oper";
-       
+
        /** The Constant HTTP_GET. */
-       public static final String HTTP_GET = "get";
-       
+       public static final String GET_METHOD_NAME = "get";
+
        /** The Constant CONFIG_MODE. */
        public static final String CONFIG_MODE = "configmode";
-       
+
        /** The Constant SESSION_OBJECT. */
-       public static final String SESSION_OBJECT = "session";
-       
+       public static final String SESSION = "session";
+
        /** The Constant SESSION_ID_STR. */
        public static final String SESSION_ID_STR = "session_id";
-       
+
        /** The Constant CONFIG_ID_STR. */
        public static final String CONFIG_ID_STR = "config_id";
-       
+
        /** The Constant ENCODE_UTF8_FORMAT. */
        public static final String ENCODE_UTF8_FORMAT = "UTF-8";
-       
+
        /** The Constant SESSION_TYPE. */
        public static final String SESSION_TYPE = "webapi";
-       
+
        /** The Constant TYPE. */
        public static final String TYPE = "type";
-       
+
        /** The Constant STATUS_SUCCESS. */
        public static final String STATUS_SUCCESS = "success";
-       
+
        /** The Constant ERR_CODE. */
-       public static final String ERR_CODE = "code";
-       
+       public static final String ERR_CODE = "err_code";
+
        /** The Constant ERR_DESCRIPTION. */
-       public static final String ERR_DESCRIPTION = "msg";
-       
+       public static final String ERR_DESCRIPTION = "err_msg";
+
        /** The Constant TO_REMOVE_XML_ATTR_START. */
        public static final String TO_REMOVE_XML_ATTR_START = "<o>";
-       
+
        /** The Constant TO_REMOVE_XML_ATTR_END. */
        public static final String TO_REMOVE_XML_ATTR_END = "</o>";
-       
+
        /** The Constant JSON_GARBAGE. */
        public static final String JSON_GARBAGE = "@";
-       
+
        /** The Constant CONTEXTPATH. */
        public static final String CONTEXTPATH = "/vtn-webapi";
-       
+
        /** The Constant OP. */
        public static final String OP = "op";
-       
+
        /** The Constant COUNT. */
        public static final String COUNT = "/count";
-       
+
        /** The Constant DETAIL. */
        public static final String DETAIL = "/detail";
-       
+
        /** The Constant SLASH. */
        public static final char SLASH = '/';
 
        /** The Constant ERROR. */
        public static final String ERROR = "error";
-       
+
        public static final String GETLISTAPI = "getListAPI";
 
-       public static final CharSequence CONTROLLERSTR = "/controllers";
+       public static final String ROUTERS = "/routers";
        
+       public static final String TENANTS = "/tenants";
+
+       public static final CharSequence CONTROLLERSTR = "/controllers";
+
        public static final CharSequence DOMAINSTR = "/domains";
-       
+
        public static final CharSequence LOGICALPORTSSTR = "/logicalports";
 
        public static final String SESSIONSTR = "/sessions/";
-       
+
        public static final String ALARMSTR = "/unc/alarms";
-       
+
        public static final String UNC_WEB_ADMIN = "UNC_WEB_ADMIN";
 
        public static final String UNC_WEB_OPER = "UNC_WEB_OPER";
@@ -186,23 +174,25 @@ public final class ApplicationConstants {
        public static final String CANDIDATE = "candidate";
 
        public static final String OPERATION_ABORT = "abort";
-       
+
        public static final String WILD_CARD_STAR = "*";
-       
+
        public static final String CHAR_ENCODING = "UTF-8";
-       
+
        public static final String XSLT_FILE = "org/opendaylight/vtn/webapi/utils/tranformXslt.xslt";
-       
+
+       public static final String NEW_LINE = "\n";
+
        public static final String LINE_FEED = "[\\n\\r]";
-       
+
        public static final String XML_STANDALONE = "yes";
-       
+
        public static final char LESS_THAN = '<';
 
-       public static final char GREATER_THAN = '>';    
+       public static final char GREATER_THAN = '>';
 
        public static final String NULL_STRING = "null";
-       
+
        public static final String DUMMY_JSON = "{\"dummy\" : {}}";
 
        public static final String DUMMY_XML = " dummy=\"\"";
@@ -210,16 +200,82 @@ public final class ApplicationConstants {
        public static final String EMPTY_JSON = "{}";
 
        public static final String EMPTY_JSON_ARRAY = "[]";
-       
+
        public static final String vtepgroup = "vtepgroup";
 
        public static final String member_vteps = "member_vteps";
-       
+
        public static final String member_vtep = "member_vtep";
 
        public static final String ipaddrs = "ipaddrs";
-       
+
        public static final String ipv6addr = "ipv6addrs";
-       
+
        public static final String DOT_ZERO = "0";
-} 
+
+       public static final String POST_METHOD_NAME = "POST";
+
+       public static final String PUT_METHOD_NAME = "PUT";
+
+       public static final String DELETE_METHOD_NAME = "delete";
+
+       public static final String HTTP_HEADER_ACCEPT = "Accept";
+
+       public static final String DOT_REGEX = ".";
+
+       public static final String QUESTION_MARK_CHAR = "?";
+
+       public static final String DEFAULT_ACCEPT = "*/*";
+
+       public static final String HYPHEN = "-";
+
+       public static final String INFO = "/info";
+
+       public static final String RETRY_AFTER = "Retry-After";
+
+       public static final String MD5 = "MD5";
+
+       public static final String DEFAULT_PASSWD = "adminpass";
+
+       public static final String TARGETDB = "targetdb";
+
+       public static final String inport = "inport";
+       public static final String macdstaddr = "macdstaddr";
+       public static final String macdstaddr_mask = "macdstaddr_mask";
+       public static final String macsrcaddr = "macsrcaddr";
+       public static final String macsrcaddr_mask = "macsrcaddr_mask";
+       public static final String macethertype = "macethertype";
+       public static final String vlan_id = "vlan_id";
+       public static final String vlan_priority = "vlan_priority";
+       public static final String iptos = "iptos";
+       public static final String ipproto = "ipproto";
+       public static final String ipdstaddr = "ipdstaddr";
+       public static final String ipdstaddr_mask = "ipdstaddr_mask";
+       public static final String ipsrcaddr = "ipsrcaddr";
+       public static final String ipsrcaddr_mask = "ipsrcaddr_mask";
+       public static final String l4dstport_icmptype = "l4dstport_icmptype";
+       public static final String l4dstport_icmptype_mask = "l4dstport_icmptype_mask";
+       public static final String l4srcport_icmptype = "l4srcport_icmptype";
+       public static final String l4srcport_icmptype_mask = "l4srcport_icmptype_mask";
+       public static final String ipv6dstaddr = "ipv6dstaddr";
+       public static final String ipv6dstaddr_mask = "ipv6dstaddr_mask";
+       public static final String ipv6srcaddr = "ipv6srcaddr";
+       public static final String ipv6srcaddr_mask = "ipv6srcaddr_mask";
+       public static final String outputport = "outputport";
+       public static final String enqueueport = "enqueueport";
+       public static final String queue_id = "queue_id";
+       public static final String setmacdstaddr = "setmacdstaddr";
+       public static final String setmacsrcaddr = "setmacsrcaddr";
+       public static final String setvlan_id = "setvlan_id";
+       public static final String setvlan_priority = "setvlan_priority";
+       public static final String setipdstaddr = "setipdstaddr";
+       public static final String setipsrcaddr = "setipsrcaddr";
+       public static final String setiptos = "setiptos";
+       public static final String setl4dstport_icmptype = "setl4dstport_icmptype";
+       public static final String setl4srcport_icmptype = "setl4srcport_icmptype";
+       public static final String setipv6dstaddr = "setipv6dstaddr";
+       public static final String setipv6srcaddr = "setipv6srcaddr";
+
+       public static final String OS_RESOURCE_PKG = "org.opendaylight.vtn.javaapi.resources.openstack.";
+       public static final String SEMI_COLON = ";";
+}
diff --git a/coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/constants/package-info.java b/coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/constants/package-info.java
new file mode 100644 (file)
index 0000000..a39f030
--- /dev/null
@@ -0,0 +1,14 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * Package contains contains All constants classes .
+ */
+package org.opendaylight.vtn.webapi.constants;
+
index 56decf015c7e738558ffe5aeac184d1c3fff4b44..0f0eea30b36235dfb335c59cedc08fd09092b513 100644 (file)
@@ -1,11 +1,12 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
+
 package org.opendaylight.vtn.webapi.endpoint;
 
 import java.io.IOException;
@@ -21,313 +22,494 @@ import org.json.JSONObject;
 
 import com.google.gson.JsonObject;
 import org.opendaylight.vtn.core.util.Logger;
-import org.opendaylight.vtn.webapi.enums.ApplicationConstants;
+import org.opendaylight.vtn.javaapi.init.VtnServiceInitManager;
+import org.opendaylight.vtn.webapi.constants.ApplicationConstants;
+import org.opendaylight.vtn.webapi.enums.ContentTypeEnum;
+import org.opendaylight.vtn.webapi.enums.HttpErrorCodeEnum;
 import org.opendaylight.vtn.webapi.exception.VtnServiceWebAPIException;
 import org.opendaylight.vtn.webapi.services.VtnServiceWebAPIHandler;
+import org.opendaylight.vtn.webapi.utils.ConfigurationManager;
 import org.opendaylight.vtn.webapi.utils.DataConverter;
 import org.opendaylight.vtn.webapi.utils.InitManager;
 import org.opendaylight.vtn.webapi.utils.VtnServiceCommonUtil;
 import org.opendaylight.vtn.webapi.utils.VtnServiceWebUtil;
 
 /**
- * The Class VtnServiceWebAPIServle is the end point for all request coming to Web API will be handled here first 
+ * The Class VtnServiceWebAPIServle is the end point for all request coming to
+ * Web API will be handled here first
  */
 public class VtnServiceWebAPIServlet extends HttpServlet {
-       
 
        /** The Constant serialVersionUID. */
        private static final long serialVersionUID = 9136213504159408769L;
-       
-       /** The Constant LOGGER. */
-       private static final Logger LOG = Logger.getLogger(VtnServiceWebAPIServlet.class.getName());
-       
-       /** The vtn service web api controller. */
-       private VtnServiceWebAPIHandler vtnServiceWebAPIHandler;
 
+       /** The Constant LOGGER. */
+       private static final Logger LOG = Logger
+                       .getLogger(VtnServiceWebAPIServlet.class.getName());
 
        /**
         * Initialize the HttpServlet and will initialize LOGGING and Configuration.
-        *
-        * @param config the config
+        * 
+        * @param config
+        *            the config
         * @see Servlet#init(ServletConfig)
         */
-    @Override
-       public void init(final ServletConfig config){
-               try{
+       @Override
+       public void init(final ServletConfig config) {
+               LOG.trace("Start VtnServiceWebAPIServlet#init()");
+               try {
                        super.init();
-                       LOG.trace("Servlet initialization starts...");
                        InitManager.initialize();
-                       LOG.trace("Servlet initialized successfully...");
-               }catch (VtnServiceWebAPIException vtnException) {
-                       LOG.error(VtnServiceCommonUtil.logErrorDetails(vtnException.getErrorCode()));
-               }catch (ServletException se) {
-                       LOG.error("Servlet Initialization failed error "+se.getMessage());              
-               }catch (Exception e) {
-                       LOG.error("Servlet Initialization failed error " +e.getMessage());
+                       LOG.info("Successful initialization of VTN Service");
+               } catch (final Exception e) {
+                       LOG.error("Servlet Initialization failed error " + e.getMessage());
                }
+               LOG.trace("Complete VtnServiceWebAPIServlet#init()");
        }
-       
-    /**
-        * Service Method will be called each time when a request will come to web API and it will validate the same for authentication and authorization
+
+       /**
+        * Service Method will be called each time when a request will come to web
+        * API and it will validate the same for authentication and authorization
         * After this will route the call to the specified method.
-        *
-        * @param request the request
-        * @param response the response
-        * @throws ServletException the servlet exception
-        * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
+        * 
+        * @param request
+        *            the request
+        * @param response
+        *            the response
+        * @throws ServletException
+        *             the servlet exception
+        * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse
+        *      response)
         */
        @Override
-       protected void service(final HttpServletRequest request, final HttpServletResponse response) {
-               LOG.trace("Authentication process is initializing.");
+       protected void service(final HttpServletRequest request,
+                       final HttpServletResponse response) {
+               LOG.trace("Start VtnServiceWebAPIServlet#service()");
                JSONObject serviceErrorJSON = null;
-               try{
+               VtnServiceWebAPIHandler vtnServiceWebAPIHandler = null;
+               try {
                        vtnServiceWebAPIHandler = new VtnServiceWebAPIHandler();
                        vtnServiceWebAPIHandler.validate(request);
                        super.service(request, response);
-                       LOG.trace("Authentication process initialized.");
-               } catch (IOException e) {
-                       LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));
-                       serviceErrorJSON = VtnServiceWebUtil.prepareErrResponseJson(ApplicationConstants.INTERNAL_SERVER_ERROR, ApplicationConstants.DEFAULT_ERROR_DESCRIPTION);
-               } catch (ServletException e) {
-                       LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));
-                       serviceErrorJSON = VtnServiceWebUtil.prepareErrResponseJson(ApplicationConstants.INTERNAL_SERVER_ERROR, ApplicationConstants.DEFAULT_ERROR_DESCRIPTION);
-               } catch (VtnServiceWebAPIException e) {
-                       LOG.error(VtnServiceCommonUtil.logErrorDetails(e.getErrorCode()));
-                       serviceErrorJSON = VtnServiceWebUtil.prepareErrResponseJson(e.getErrorCode(), e.getErrorDescription());
-               }catch (Exception e) {
-                       LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));
-                       serviceErrorJSON = VtnServiceWebUtil.prepareErrResponseJson(ApplicationConstants.INTERNAL_SERVER_ERROR, ApplicationConstants.DEFAULT_ERROR_DESCRIPTION);
-               } 
-               finally{
-                       if(null != serviceErrorJSON){
+               } catch (final VtnServiceWebAPIException e) {
+                       VtnServiceCommonUtil.logErrorDetails(e.getErrorCode());
+                       LOG.error("VTN Service erorr occurred : " + e.getMessage());
+                       serviceErrorJSON = VtnServiceWebUtil.prepareErrResponseJson(e
+                                       .getErrorCode());
+               } catch (final ClassCastException e) {
+                       LOG.error("Internal server error " + e.getMessage());
+                       serviceErrorJSON = VtnServiceWebUtil
+                                       .prepareErrResponseJson(HttpErrorCodeEnum.UNC_BAD_REQUEST
+                                                       .getCode());
+               } catch (final Exception e) {
+                       LOG.error("Internal server error " + e.getMessage());
+                       serviceErrorJSON = VtnServiceWebUtil
+                                       .prepareErrResponseJson(HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR
+                                                       .getCode());
+               } finally {
+                       if (null != serviceErrorJSON) {
                                try {
-                                       final String responseString = DataConverter.getConvertedResponse(serviceErrorJSON, VtnServiceCommonUtil.getContentType(request.getRequestURI()));
-                                       setResponseHeader(request, response, responseString);
+                                       createErrorResponse(request, response, serviceErrorJSON);
                                } catch (IOException e) {
-                                       LOG.error("Servlet writer failed error "+e.getMessage());
+                                       LOG.error("VTN Service erorr occurred " + e.getMessage());
+                                       serviceErrorJSON = VtnServiceWebUtil
+                                                       .prepareErrResponseJson(HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR
+                                                                       .getCode());
                                } catch (NumberFormatException e) {
-                                       LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));
-                                       serviceErrorJSON = VtnServiceWebUtil.prepareErrResponseJson(ApplicationConstants.INTERNAL_SERVER_ERROR, ApplicationConstants.DEFAULT_ERROR_DESCRIPTION);
-                               } catch (VtnServiceWebAPIException e) {
-                                       LOG.error(VtnServiceCommonUtil.logErrorDetails(e.getErrorCode()));
-                                       serviceErrorJSON = VtnServiceWebUtil.prepareErrResponseJson(e.getErrorCode(), e.getErrorDescription());
+                                       LOG.error("VTN Service erorr occurred " + e.getMessage());
+                                       serviceErrorJSON = VtnServiceWebUtil
+                                                       .prepareErrResponseJson(HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR
+                                                                       .getCode());
+                               } catch (final VtnServiceWebAPIException e) {
+                                       LOG.error("VTN Service erorr occurred " + e.getMessage());
+                                       serviceErrorJSON = VtnServiceWebUtil
+                                                       .prepareErrResponseJson(e.getErrorCode());
                                }
                        }
                }
-               
+               LOG.info("Successful Validation of VTN Service Request");
+               LOG.trace("Complete VtnServiceWebAPIServlet#service()");
        }
-       
+
        /**
-        * Do get.This method will get the json/xml data from java API and will write the same on servlet output
-        *
-        * @param request the request
-        * @param response the response
-        * @throws ServletException the servlet exception
-        * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
+        * Do get.This method will get the json/xml data from java API and will
+        * write the same on servlet output
+        * 
+        * @param request
+        *            the request
+        * @param response
+        *            the response
+        * @throws ServletException
+        *             the servlet exception
+        * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
+        *      response)
         */
        @Override
-       protected void doGet(final HttpServletRequest request, final HttpServletResponse response) throws ServletException {
-               LOG.trace("HTTP GET method is processing.");
+       protected void doGet(final HttpServletRequest request,
+                       final HttpServletResponse response) throws ServletException {
+               LOG.trace("Start VtnServiceWebAPIServlet#doGet()");
                JSONObject serviceErrorJSON = null;
-                       try {
-                               vtnServiceWebAPIHandler = new VtnServiceWebAPIHandler();
-                               final String responseString = vtnServiceWebAPIHandler.get(request);
-                               setResponseHeader(request, response, responseString);
-                               LOG.trace("HTTP GET method finished processing.");
-                       }catch (IOException e) {
-                               LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));
-                               serviceErrorJSON = VtnServiceWebUtil.prepareErrResponseJson(ApplicationConstants.INTERNAL_SERVER_ERROR, ApplicationConstants.DEFAULT_ERROR_DESCRIPTION);
-                       } catch (VtnServiceWebAPIException e) {
-                               LOG.error(VtnServiceCommonUtil.logErrorDetails(e.getErrorCode()));
-                               serviceErrorJSON = VtnServiceWebUtil.prepareErrResponseJson(e.getErrorCode(), e.getErrorDescription());
-                       }finally{
-                               if(null != serviceErrorJSON){
-                                       try {
-                                               final String responseString = DataConverter.getConvertedResponse(serviceErrorJSON, VtnServiceCommonUtil.getContentType(request.getRequestURI()));
-                                               setResponseHeader(request, response, responseString);
-                                       } catch (IOException e) {
-                                               LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));
-                                       } catch (NumberFormatException e) {
-                                               LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));
-                                               serviceErrorJSON = VtnServiceWebUtil.prepareErrResponseJson(ApplicationConstants.INTERNAL_SERVER_ERROR, ApplicationConstants.DEFAULT_ERROR_DESCRIPTION);
-                                       } catch (VtnServiceWebAPIException e) {
-                                               LOG.error(VtnServiceCommonUtil.logErrorDetails(e.getErrorCode()));
-                                               serviceErrorJSON = VtnServiceWebUtil.prepareErrResponseJson(e.getErrorCode(), e.getErrorDescription());
-                                       }
+               VtnServiceWebAPIHandler vtnServiceWebAPIHandler = null;
+               try {
+                       vtnServiceWebAPIHandler = new VtnServiceWebAPIHandler();
+                       final String responseString = vtnServiceWebAPIHandler.get(request);
+                       response.setStatus(HttpServletResponse.SC_OK);
+                       setResponseHeader(request, response, responseString,
+                                       VtnServiceCommonUtil.getContentType(request));
+               } catch (final IOException e) {
+                       serviceErrorJSON = VtnServiceWebUtil
+                                       .prepareErrResponseJson(HttpErrorCodeEnum.UNC_BAD_REQUEST
+                                                       .getCode());
+               } catch (final VtnServiceWebAPIException e) {
+                       LOG.error("VTN Service erorr occurred " + e.getMessage());
+                       serviceErrorJSON = VtnServiceWebUtil.prepareErrResponseJson(e
+                                       .getErrorCode());
+               } finally {
+                       if (null != serviceErrorJSON) {
+                               try {
+                                       createErrorResponse(request, response, serviceErrorJSON);
+                               } catch (IOException e) {
+                                       LOG.error("VTN Service erorr occurred " + e.getMessage());
+                                       serviceErrorJSON = VtnServiceWebUtil
+                                                       .prepareErrResponseJson(HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR
+                                                                       .getCode());
+                               } catch (NumberFormatException e) {
+                                       LOG.error("VTN Service erorr occurred " + e.getMessage());
+                                       serviceErrorJSON = VtnServiceWebUtil
+                                                       .prepareErrResponseJson(HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR
+                                                                       .getCode());
+                               } catch (final VtnServiceWebAPIException e) {
+                                       LOG.error("VTN Service erorr occurred " + e.getMessage());
+                                       serviceErrorJSON = VtnServiceWebUtil
+                                                       .prepareErrResponseJson(e.getErrorCode());
                                }
                        }
-                       
+               }
+               LOG.info("Successful processing for GET request.");
+               LOG.trace("Complete VtnServiceWebAPIServlet#doGet()");
        }
 
        /**
-        * Do post.This method will be used to post the data either in xml or json to the java api
-        * by converting all the request to JSON and getting response in specified format.
-        *
-        * @param request the request
-        * @param response the response
-        * @throws ServletException the servlet exception
-        * @throws IOException Signals that an I/O exception has occurred.
-        * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
+        * Do post.This method will be used to post the data either in xml or json
+        * to the java api by converting all the request to JSON and getting
+        * response in specified format.
+        * 
+        * @param request
+        *            the request
+        * @param response
+        *            the response
+        * @throws ServletException
+        *             the servlet exception
+        * @throws IOException
+        *             Signals that an I/O exception has occurred.
+        * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
+        *      response)
         */
        @Override
-       protected void doPost(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException {
-               LOG.trace("HTTP POST method start processing.");
+       protected void doPost(final HttpServletRequest request,
+                       final HttpServletResponse response) throws ServletException,
+                       IOException {
+               LOG.trace("Start VtnServiceWebAPIServlet#doPost()");
                JSONObject serviceErrorJSON = null;
-               try{
+               VtnServiceWebAPIHandler vtnServiceWebAPIHandler = null;
+               try {
                        vtnServiceWebAPIHandler = new VtnServiceWebAPIHandler();
                        final String responseString = vtnServiceWebAPIHandler.post(request);
-                       setResponseHeader(request, response, responseString);
-                       LOG.trace("HTTP POST method finished processing.");
-               }
-               catch (IOException e) {
-                       LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));
-                       serviceErrorJSON = VtnServiceWebUtil.prepareErrResponseJson(ApplicationConstants.INTERNAL_SERVER_ERROR, ApplicationConstants.DEFAULT_ERROR_DESCRIPTION);
-               }catch (VtnServiceWebAPIException e) {
-                       LOG.error(VtnServiceCommonUtil.logErrorDetails(e.getErrorCode()));
-                       serviceErrorJSON = VtnServiceWebUtil.prepareErrResponseJson(e.getErrorCode(), e.getErrorDescription());
-               }
-               finally{
-                       if(null != serviceErrorJSON){
+                       response.setStatus(HttpServletResponse.SC_CREATED);
+                       setResponseHeader(request, response, responseString,
+                                       VtnServiceCommonUtil.getContentType(request));
+               } catch (final IOException e) {
+                       serviceErrorJSON = VtnServiceWebUtil
+                                       .prepareErrResponseJson(HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR
+                                                       .getCode());
+               } catch (final VtnServiceWebAPIException e) {
+                       LOG.error("VTN Service erorr occurred " + e.getMessage());
+                       serviceErrorJSON = VtnServiceWebUtil.prepareErrResponseJson(e
+                                       .getErrorCode());
+               } finally {
+                       if (null != serviceErrorJSON) {
                                try {
-                                       final String responseString = DataConverter.getConvertedResponse(serviceErrorJSON, VtnServiceCommonUtil.getContentType(request.getRequestURI()));
-                                       setResponseHeader(request, response, responseString);
+                                       createErrorResponse(request, response, serviceErrorJSON);
                                } catch (IOException e) {
-                                       LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));
+                                       LOG.error("VTN Service erorr occurred " + e.getMessage());
+                                       serviceErrorJSON = VtnServiceWebUtil
+                                                       .prepareErrResponseJson(HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR
+                                                                       .getCode());
                                } catch (NumberFormatException e) {
-                                       LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));
-                                       serviceErrorJSON = VtnServiceWebUtil.prepareErrResponseJson(ApplicationConstants.INTERNAL_SERVER_ERROR, ApplicationConstants.DEFAULT_ERROR_DESCRIPTION);
-                               } catch (VtnServiceWebAPIException e) {
-                                       LOG.error(VtnServiceCommonUtil.logErrorDetails(e.getErrorCode()));
-                                       serviceErrorJSON = VtnServiceWebUtil.prepareErrResponseJson(e.getErrorCode(), e.getErrorDescription());
+                                       LOG.error("VTN Service erorr occurred " + e.getMessage());
+                                       serviceErrorJSON = VtnServiceWebUtil
+                                                       .prepareErrResponseJson(HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR
+                                                                       .getCode());
+                               } catch (final VtnServiceWebAPIException e) {
+                                       LOG.error("VTN Service erorr occurred " + e.getMessage());
+                                       serviceErrorJSON = VtnServiceWebUtil
+                                                       .prepareErrResponseJson(e.getErrorCode());
                                }
                        }
-               }               
+               }
+               LOG.info("Successful processing for POST request.");
+               LOG.trace("Complete VtnServiceWebAPIServlet#doPost()");
        }
 
        /**
-        * Do put.This method will be used to post the data either in xml or json to the java api
-        * by converting all the request to JSON and getting response in specified format.
-        *
-        * @param request the request
-        * @param response the response
+        * Do put.This method will be used to post the data either in xml or json to
+        * the java api by converting all the request to JSON and getting response
+        * in specified format.
+        * 
+        * @param request
+        *            the request
+        * @param response
+        *            the response
         * @see HttpServlet#doPut(HttpServletRequest, HttpServletResponse)
         */
        @Override
-       protected void doPut(final HttpServletRequest request, final HttpServletResponse response) {    
-               LOG.trace("HTTP PUT method start processing.");
+       protected void doPut(final HttpServletRequest request,
+                       final HttpServletResponse response) {
+               LOG.trace("Start VtnServiceWebAPIServlet#init()");
                JSONObject serviceErrorJSON = null;
-               try{
+               VtnServiceWebAPIHandler vtnServiceWebAPIHandler = null;
+               try {
                        vtnServiceWebAPIHandler = new VtnServiceWebAPIHandler();
-                       final String responseString =  vtnServiceWebAPIHandler.put(request);
-                       setResponseHeader(request, response, responseString);
-                       LOG.trace("HTTP PUT method finished processing.");
-               }
-               catch (IOException e) {
-                       LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));
-                       serviceErrorJSON = VtnServiceWebUtil.prepareErrResponseJson(ApplicationConstants.INTERNAL_SERVER_ERROR, ApplicationConstants.DEFAULT_ERROR_DESCRIPTION);
-               }catch (VtnServiceWebAPIException e) {
-                       LOG.error(VtnServiceCommonUtil.logErrorDetails(e.getErrorCode()));
-                       serviceErrorJSON = VtnServiceWebUtil.prepareErrResponseJson(e.getErrorCode(), e.getErrorDescription());
-               }finally{
-                       if(null != serviceErrorJSON){
+                       final String responseString = vtnServiceWebAPIHandler.put(request);
+                       response.setStatus(HttpServletResponse.SC_NO_CONTENT);
+                       setResponseHeader(request, response, responseString,
+                                       VtnServiceCommonUtil.getContentType(request));
+               } catch (final IOException e) {
+                       serviceErrorJSON = VtnServiceWebUtil
+                                       .prepareErrResponseJson(HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR
+                                                       .getCode());
+               } catch (final VtnServiceWebAPIException e) {
+                       LOG.error("VTN Service erorr occurred " + e.getMessage());
+                       serviceErrorJSON = VtnServiceWebUtil.prepareErrResponseJson(e
+                                       .getErrorCode());
+               } finally {
+                       if (null != serviceErrorJSON) {
                                try {
-                                       final String responseString = DataConverter.getConvertedResponse(serviceErrorJSON, VtnServiceCommonUtil.getContentType(request.getRequestURI()));
-                                       setResponseHeader(request, response, responseString);
+                                       createErrorResponse(request, response, serviceErrorJSON);
                                } catch (IOException e) {
-                                       LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));
+                                       LOG.error("VTN Service erorr occurred " + e.getMessage());
+                                       serviceErrorJSON = VtnServiceWebUtil
+                                                       .prepareErrResponseJson(HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR
+                                                                       .getCode());
                                } catch (NumberFormatException e) {
-                                       LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));
-                                       serviceErrorJSON = VtnServiceWebUtil.prepareErrResponseJson(ApplicationConstants.INTERNAL_SERVER_ERROR, ApplicationConstants.DEFAULT_ERROR_DESCRIPTION);
-                               } catch (VtnServiceWebAPIException e) {
-                                       LOG.error(VtnServiceCommonUtil.logErrorDetails(e.getErrorCode()));
-                                       serviceErrorJSON = VtnServiceWebUtil.prepareErrResponseJson(e.getErrorCode(), e.getErrorDescription());
+                                       LOG.error("VTN Service erorr occurred " + e.getMessage());
+                                       serviceErrorJSON = VtnServiceWebUtil
+                                                       .prepareErrResponseJson(HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR
+                                                                       .getCode());
+                               } catch (final VtnServiceWebAPIException e) {
+                                       LOG.error("VTN Service erorr occurred " + e.getMessage());
+                                       serviceErrorJSON = VtnServiceWebUtil
+                                                       .prepareErrResponseJson(e.getErrorCode());
                                }
                        }
                }
-               
-
-               
+               LOG.info("Successful processing for PUT request.");
+               LOG.trace("Complete VtnServiceWebAPIServlet#doPut()");
        }
 
        /**
-        * Do delete.This method will be used to post the data either in xml or json to the java api
-        * by converting all the request to JSON and getting response in specified format.
-        *
-        * @param request the request
-        * @param response the response
+        * Do delete.This method will be used to post the data either in xml or json
+        * to the java api by converting all the request to JSON and getting
+        * response in specified format.
+        * 
+        * @param request
+        *            the request
+        * @param response
+        *            the response
         * @see HttpServlet#doDelete(HttpServletRequest, HttpServletResponse)
         */
        @Override
-       protected void doDelete(final HttpServletRequest request, final HttpServletResponse response){
-               LOG.trace("HTTP DELETE method start processing.");
+       protected void doDelete(final HttpServletRequest request,
+                       final HttpServletResponse response) {
+               LOG.trace("Start VtnServiceWebAPIServlet#doDelete()");
                JSONObject serviceErrorJSON = null;
-               try{
+               VtnServiceWebAPIHandler vtnServiceWebAPIHandler = null;
+               try {
                        vtnServiceWebAPIHandler = new VtnServiceWebAPIHandler();
-                       final String responseString =  vtnServiceWebAPIHandler.delete(request);
-                       setResponseHeader(request, response, responseString);
-                       LOG.trace("HTTP DELETE method finished processing.");
-               }
-               catch (IOException e) {
-                       LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));
-                       serviceErrorJSON = VtnServiceWebUtil.prepareErrResponseJson(ApplicationConstants.INTERNAL_SERVER_ERROR, ApplicationConstants.DEFAULT_ERROR_DESCRIPTION);
-               }catch (VtnServiceWebAPIException e) {
-                       LOG.error(VtnServiceCommonUtil.logErrorDetails(e.getErrorCode()));
-                       serviceErrorJSON = VtnServiceWebUtil.prepareErrResponseJson(e.getErrorCode(), e.getErrorDescription());
-               }finally{
-                       if(null != serviceErrorJSON){
+                       final String responseString = vtnServiceWebAPIHandler
+                                       .delete(request);
+                       response.setStatus(HttpServletResponse.SC_NO_CONTENT);
+                       setResponseHeader(request, response, responseString,
+                                       VtnServiceCommonUtil.getContentType(request));
+               } catch (final IOException e) {
+                       serviceErrorJSON = VtnServiceWebUtil
+                                       .prepareErrResponseJson(HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR
+                                                       .getCode());
+               } catch (final VtnServiceWebAPIException e) {
+                       LOG.error("VTN Service erorr occurred " + e.getMessage());
+                       serviceErrorJSON = VtnServiceWebUtil.prepareErrResponseJson(e
+                                       .getErrorCode());
+               } finally {
+                       if (null != serviceErrorJSON) {
                                try {
-                                       final String responseString = DataConverter.getConvertedResponse(serviceErrorJSON, VtnServiceCommonUtil.getContentType(request.getRequestURI()));
-                                       setResponseHeader(request, response, responseString);
+                                       createErrorResponse(request, response, serviceErrorJSON);
                                } catch (IOException e) {
-                                       LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));
+                                       LOG.error("VTN Service erorr occurred " + e.getMessage());
+                                       serviceErrorJSON = VtnServiceWebUtil
+                                                       .prepareErrResponseJson(HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR
+                                                                       .getCode());
                                } catch (NumberFormatException e) {
-                                       LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));
-                                       serviceErrorJSON = VtnServiceWebUtil.prepareErrResponseJson(ApplicationConstants.INTERNAL_SERVER_ERROR, ApplicationConstants.DEFAULT_ERROR_DESCRIPTION);
-                               } catch (VtnServiceWebAPIException e) {
-                                       LOG.error(VtnServiceCommonUtil.logErrorDetails(e.getErrorCode()));
-                                       serviceErrorJSON = VtnServiceWebUtil.prepareErrResponseJson(e.getErrorCode(), e.getErrorDescription());
+                                       LOG.error("VTN Service erorr occurred " + e.getMessage());
+                                       serviceErrorJSON = VtnServiceWebUtil
+                                                       .prepareErrResponseJson(HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR
+                                                                       .getCode());
+                               } catch (final VtnServiceWebAPIException e) {
+                                       LOG.error("VTN Service erorr occurred " + e.getMessage());
+                                       serviceErrorJSON = VtnServiceWebUtil
+                                                       .prepareErrResponseJson(e.getErrorCode());
                                }
                        }
                }
-               
-
+               LOG.info("Successful processing for DELETE request.");
+               LOG.trace("Complete VtnServiceWebAPIServlet#doDelete()");
        }
-       
 
        /**
-        * destroy method to finalize Servlet instances and used objects in the Web API.
-        *
-        * @param request the request
-        * @param response the response
+        * destroy method to finalize Servlet instances and used objects in the Web
+        * API.
+        * 
+        * @param request
+        *            the request
+        * @param response
+        *            the response
         * @see HttpServlet#doPut(HttpServletRequest, HttpServletResponse)
         */
        @Override
        public void destroy() {
                LOG.trace("Servlet instance is now eligible for garbage collection.");
                super.destroy();
+               VtnServiceInitManager.getInstance().destroy();
        }
 
        /**
         * Set response header information
-        *
-        * @param request the request
-        * @param response the response
+        * 
+        * @param request
+        *            the request
+        * @param response
+        *            the response
         * @see HttpServlet#doPut(HttpServletRequest, HttpServletResponse)
         */
-       private void setResponseHeader(final HttpServletRequest request,final HttpServletResponse response, final String responseString) throws IOException, VtnServiceWebAPIException {
-               LOG.debug("Start setResponseHeader");
-               response.setContentType(VtnServiceCommonUtil.getContentType(request.getRequestURI()));
+       private void setResponseHeader(final HttpServletRequest request,
+                       final HttpServletResponse response, final String responseString,
+                       final String contentType) throws IOException,
+                       VtnServiceWebAPIException {
+               LOG.trace("Start VtnServiceWebAPIServlet#setResponseHeader()");
+               response.setContentType(contentType);
                response.setCharacterEncoding(ApplicationConstants.CHAR_ENCODING);
-               if(null != responseString && !responseString.isEmpty()){                        
-                       // Set response status in cases where returned response in not success from JavaAPI
-                       JsonObject responseJson = DataConverter.getConvertedRequestObject(responseString, VtnServiceCommonUtil.getContentType(request.getRequestURI()));
-                       if(responseJson.has(ApplicationConstants.ERROR)){
-                               LOG.debug("Set HTTP response status : " + responseJson.get(ApplicationConstants.ERROR).getAsJsonObject().get(ApplicationConstants.ERR_CODE).getAsInt());
-                               response.setStatus(responseJson.get(ApplicationConstants.ERROR).getAsJsonObject().get(ApplicationConstants.ERR_CODE).getAsInt());                                               
+               if (null != responseString && !responseString.isEmpty()) {
+                       // Set response status in cases where returned response in not
+                       // success from JavaAPI
+                       final JsonObject responseJson = DataConverter
+                                       .getConvertedRequestObject(responseString, contentType);
+                       if (responseJson.has(ApplicationConstants.ERROR)) {
+                               String actualErrorCode = responseJson
+                                               .get(ApplicationConstants.ERROR).getAsJsonObject()
+                                               .get(ApplicationConstants.ERR_CODE).getAsString();
+                               int errorCode = Integer.parseInt(actualErrorCode
+                                               .substring(0, 3));
+
+                               /*
+                                * If service is unavailable then retry-after header required to
+                                * be set
+                                */
+                               if (actualErrorCode.equalsIgnoreCase(String
+                                               .valueOf(HttpErrorCodeEnum.UNC_SERVICE_UNAVAILABLE
+                                                               .getCode()))) {
+                                       response.setHeader(
+                                                       ApplicationConstants.RETRY_AFTER,
+                                                       ConfigurationManager.getInstance().getConfProperty(
+                                                                       ApplicationConstants.RETRY_AFTER));
+                               }
+
+                               LOG.debug("Set HTTP response status : " + errorCode);
+                               response.setStatus(errorCode);
+                               if (actualErrorCode.equalsIgnoreCase(String
+                                               .valueOf(HttpErrorCodeEnum.UNC_CUSTOM_NOT_FOUND.getCode()))
+                                               || VtnServiceCommonUtil.isOpenStackResurce(request)) {
+
+                                       errorCode = responseJson.get(ApplicationConstants.ERROR)
+                                                       .getAsJsonObject()
+                                                       .get(ApplicationConstants.ERR_CODE).getAsInt();
+                                       if (errorCode == HttpErrorCodeEnum.UNC_CUSTOM_NOT_FOUND
+                                                       .getCode()) {
+                                               errorCode = HttpErrorCodeEnum.UNC_NOT_FOUND.getCode();
+                                               responseJson
+                                                               .get(ApplicationConstants.ERROR)
+                                                               .getAsJsonObject()
+                                                               .addProperty(
+                                                                               ApplicationConstants.ERR_DESCRIPTION,
+                                                                               HttpErrorCodeEnum.UNC_CUSTOM_NOT_FOUND
+                                                                                               .getMessage());
+                                       }
+                                       /**
+                                        * transform JSON object for error JSONs. err_code and
+                                        * err_msg parameters are not required to be nested inside
+                                        * error
+                                        */
+                                       responseJson.addProperty(ApplicationConstants.ERR_CODE,
+                                                       String.valueOf(errorCode));
+
+                                       /**
+                                        * changes the message for 500 error code UNC error message
+                                        * are not required to return to OpenStack API user
+                                        */
+                                       if (actualErrorCode
+                                                       .equalsIgnoreCase(String
+                                                                       .valueOf(HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR
+                                                                                       .getCode()))) {
+                                               responseJson.addProperty(
+                                                               ApplicationConstants.ERR_DESCRIPTION,
+                                                               HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR
+                                                                               .getMessage());
+                                       } else {
+                                               responseJson
+                                                               .addProperty(
+                                                                               ApplicationConstants.ERR_DESCRIPTION,
+                                                                               responseJson
+                                                                                               .get(ApplicationConstants.ERROR)
+                                                                                               .getAsJsonObject()
+                                                                                               .get(ApplicationConstants.ERR_DESCRIPTION)
+                                                                                               .getAsString());
+                                       }
+                                       // error nested json is not required so remove the same
+                                       responseJson.remove(ApplicationConstants.ERROR);
+
+                                       response.getWriter().write(responseJson.toString());
+                               }
                        } else {
                                response.getWriter().write(responseString);
                        }
                }
-               LOG.debug("Complete setResponseHeader");
+               LOG.info("Http Response Header Set Successfully");
+               LOG.trace("Complete VtnServiceWebAPIServlet#setResponseHeader()");
+       }
+
+       /**
+        * Prepare error response and header in case of error conditions
+        * 
+        * @param request
+        * @param response
+        * @param serviceErrorJSON
+        * @throws VtnServiceWebAPIException
+        * @throws IOException
+        */
+       private void createErrorResponse(final HttpServletRequest request,
+                       final HttpServletResponse response, JSONObject serviceErrorJSON)
+                       throws VtnServiceWebAPIException, IOException {
+               String contentType = VtnServiceCommonUtil.getContentType(request);
+               if (contentType == null
+                               || !contentType
+                                               .equalsIgnoreCase(ContentTypeEnum.APPLICATION_JSON
+                                                               .getContentType())
+                               || !contentType
+                                               .equalsIgnoreCase(ContentTypeEnum.APPLICATION_XML
+                                                               .getContentType())) {
+                       contentType = ContentTypeEnum.APPLICATION_JSON.getContentType();
+               }
+               final String responseString = DataConverter.getConvertedResponse(
+                               serviceErrorJSON, contentType);
+               setResponseHeader(request, response, responseString, contentType);
        }
+
 }
diff --git a/coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/endpoint/package-info.java b/coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/endpoint/package-info.java
new file mode 100644 (file)
index 0000000..aa709c9
--- /dev/null
@@ -0,0 +1,14 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * Package contains WebAPI Servlet class which be used as an interface for the incoming request from web client .
+ */
+package org.opendaylight.vtn.webapi.endpoint;
+
index 7cf7891d3e25ff6af25da3b8c0a19e9f872f41f7..20666d8cf3d547c292910d737bdcbfc7ad72c79d 100644 (file)
@@ -1,39 +1,42 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
+
 package org.opendaylight.vtn.webapi.enums;
 
 /**
- * The Enum ContentTypeEnum.This enum is used for the content type which we are getting in the request
+ * The Enum ContentTypeEnum.This enum is used for the content type which we are
+ * getting in the request
  */
 public enum ContentTypeEnum {
 
        /** The APPLICATIO n_ xml. */
        APPLICATION_XML("application/xml"),
-       
+
        /** The APPLICATIO n_ json. */
        APPLICATION_JSON("application/json");
-       
+
        /** The content type. */
        private String contentType;
-       
+
        /**
         * Instantiates a new content type enum.
-        *
-        * @param type the type
+        * 
+        * @param type
+        *            the type
         */
-       private ContentTypeEnum(final String type){
+       private ContentTypeEnum(final String type) {
                this.contentType = type;
        }
-       
+
        /**
         * Gets the content type.
-        *
+        * 
         * @return the content type
         */
        public String getContentType() {
diff --git a/coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/enums/HttpErrorCodeEnum.java b/coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/enums/HttpErrorCodeEnum.java
new file mode 100644 (file)
index 0000000..273473e
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.vtn.webapi.enums;
+
+public enum HttpErrorCodeEnum {
+
+       UNC_BAD_REQUEST(40001, "Invalid Format"),
+       UNC_UNAUTHORIZED(40100, "Unauthorized"),
+       UNC_FORBIDDEN(40300, "Forbidden"),
+       UNC_NOT_FOUND(40400, "Not Found"),
+       UNC_CUSTOM_NOT_FOUND(40499, "Not Found"),
+       UNC_METHOD_NOT_ALLOWED(40500, "Method Not Allowed"),
+       UNC_NOT_ACCEPTABLE(40600, "Not Acceptable"),
+       UNC_UNSUPPORTED_MEDIA_TYPE(41500, "Unsupported Media Type"),
+       UNC_INTERNAL_SERVER_ERROR(50000, "Internal Server Error"),
+       UNC_SERVICE_UNAVAILABLE(50301, "Server Busy"),
+       UNC_STATUS_OK(200, "Server Busy");
+
+       private final int code;
+       private String message;
+
+       private HttpErrorCodeEnum(final int code, final String messgae) {
+               this.code = code;
+               this.message = messgae;
+       }
+
+       public int getCode() {
+               return code;
+       }
+
+       public String getMessage() {
+               return message;
+       }
+}
index c3a594e65f6863426e648bf18a243c28221bc379..7501951abe85763cec9b00df0eb25d3d4ad31b9a 100644 (file)
@@ -1,57 +1,59 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
+
 package org.opendaylight.vtn.webapi.enums;
 
 /**
- * The Enum ResourcePathEnum.This enum provided the path of resources like session path, config path
+ * The Enum ResourcePathEnum.This enum provided the path of resources like
+ * session path, config path
  */
 public enum ResourcePathEnum {
 
-       
        /** The SESSIO n_ path. */
        SESSION_PATH("/sessions"),
-       
+
        /** The ACQUIR e_ confi g_ path. */
        ACQUIRE_CONFIG_PATH("/configuration/configmode"),
-       
+
        /** The RELEAS e_ session. */
        RELEASE_SESSION("/sessions/"),
-       
+
        /** The RELEAS e_ configuration. */
        RELEASE_CONFIGURATION("/configuration/configmode/"),
-       
+
        /** The ACQUIR e_ releas e_ monitorin g_ path. */
        ACQUIRE_RELEASE_MONITORING_PATH("/configuration/readlock"),
-       
+
        /** The COMMI t_ configuration. */
        COMMIT_CONFIGURATION("/configuration"),
-       
+
        /** The ABORT_ configuration. */
        ABORT_CONFIGURATION("/configuration/candidate");
        /** The path. */
-       private String path; 
-       
+       private String path;
+
        /**
         * Instantiates a new resource path enum.
-        *
-        * @param resourcePath the resource path
+        * 
+        * @param resourcePath
+        *            the resource path
         */
        private ResourcePathEnum(final String resourcePath) {
                this.path = resourcePath;
        }
-       
+
        /**
         * Gets the resource path.
-        *
+        * 
         * @return the resource path
         */
-       public String getPath(){
+       public String getPath() {
                return path;
        }
 }
index 569fd381357920176ef34a11ddca8c018e0ed624..f027bfc9514a3ba2175d56a023588e6fe0c48aba 100644 (file)
@@ -1,49 +1,45 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
+
 package org.opendaylight.vtn.webapi.enums;
 
 /**
- * The Enum SessionEnum.This enum have all the required parameters that will be passed to lower layer for creating session.
+ * The Enum SessionEnum.This enum have all the required parameters that will be
+ * passed to lower layer for creating session.
  */
 public enum SessionEnum {
 
        /** The USERNAME. */
        USERNAME("username"),
-       
+
        /** The PASSWORD. */
        PASSWORD("password"),
-       
+
        /** The IPADDRESS. */
-       IPADDRESS("ipaddr"),
-       
-       /** The LOGINNAME. */
-       LOGINNAME("login_name"),
-       
-       /** The INFO. */
-       INFO("info");
-       
-       
+       IPADDRESS("ipaddr");
+
        /** The session element. */
        private String sessionElement;
-       
+
        /**
         * Instantiates a new session enum.
-        *
-        * @param element the element
+        * 
+        * @param element
+        *            the element
         */
        private SessionEnum(final String element) {
                this.sessionElement = element;
        }
-       
+
        /**
         * Gets the session element.
-        *
+        * 
         * @return the session element
         */
        public String getSessionElement() {
diff --git a/coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/enums/package-info.java b/coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/enums/package-info.java
new file mode 100644 (file)
index 0000000..28b5923
--- /dev/null
@@ -0,0 +1,14 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * Package contains All enums classes .
+ */
+package org.opendaylight.vtn.webapi.enums;
+
index fde31ee12f3ce19adb645960303f973cca578c95..28e4c7cc892d140071d0baeff56a6b4d98a85510 100644 (file)
@@ -1,86 +1,58 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
+
 package org.opendaylight.vtn.webapi.exception;
 
-import org.opendaylight.vtn.webapi.utils.VtnServiceCommonUtil;
+import org.opendaylight.vtn.webapi.constants.ApplicationConstants;
 
 /**
  * The Class VtnServiceException.
- *
+ * 
  * This is a common exception class which will be caught by service and thrown
  * by all subsequent layers.
  */
 public class VtnServiceWebAPIException extends Exception {
 
-    /** The Constant serialVersionUID. */
+       /** The Constant serialVersionUID. */
        private static final long serialVersionUID = 1L;
        /** The error code. */
-       private String errorCode;
-    
-    /** The error description. */
-    private String errorDescription;
+       private int errorCode;
 
-    /**
-     * Instantiates a new vtn service web api exception.
-     */
-    public VtnServiceWebAPIException() {
+       /**
+        * Instantiates a new vtn service web api exception.
+        */
+       public VtnServiceWebAPIException() {
                super();
        }
-    
-    /**
-     * Constructor for ServiceException- This constructor will pass the  code and description to the Super class constructor.
-     *
-     * @param code String
-     * @param message the message
-     */
-    public VtnServiceWebAPIException(final String code, final String message) {
-       super(VtnServiceCommonUtil.logErrorDetails(code));
-               this.errorDescription = message;
-               this.errorCode = code;
-    }
-
-  
-    /**
-     * Method getErrorCode.
-     * 
-    
-     * @return String */
-    public String getErrorCode() {
-       return errorCode;
-    }
 
-    /**
-     * Method setErrorCode.
-     * 
-     * @param errorCode
-     *            String
-     */
-    public void setErrorCode(final String errorCode) {
-       this.errorCode = errorCode;
-    }
+       /**
+        * Constructor for ServiceException- This constructor will pass the code and
+        * description to the Super class constructor.
+        * 
+        * @param code
+        *            String
+        */
+       public VtnServiceWebAPIException(final int code) {
+               this.errorCode = code;
+       }
 
-    /**
-     * Method getErrorDescription.
-     * 
-    
-     * @return String */
-    public String getErrorDescription() {
-       return errorDescription;
-    }
+       /**
+        * Method getErrorCode.
+        
+        * @return int
+        */
+       public int getErrorCode() {
+               return errorCode;
+       }
 
-    /**
-     * Method setErrorDescription.
-     * 
-     * @param errorDescription
-     *            String
-     */
-    public void setErrorDescription(final String errorDescription) {
-       this.errorDescription = errorDescription;
-    }
+       @Override
+       public String getMessage() {
+               return errorCode + ApplicationConstants.COLON + super.getMessage();
+       }
 }
diff --git a/coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/exception/package-info.java b/coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/exception/package-info.java
new file mode 100644 (file)
index 0000000..453709e
--- /dev/null
@@ -0,0 +1,14 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * Package contains VtnServiceException class for handling application level exceptions .
+ */
+package org.opendaylight.vtn.webapi.exception;
+
index 87d7bb8be32847bfcfc0ba9655a341865aa0367b..edfc6fc6b67dd93a7a8158a4cee8bc90acad49bc 100644 (file)
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.vtn.webapi.pojo;
 
+package org.opendaylight.vtn.webapi.pojo;
 
 /**
- * The Class SessionBean.This bean class is used as a pojo class for putting the header information 
- * in this and when required create JSON or XML from the same
+ * The Class SessionBean.This bean class is used as a pojo class for putting the
+ * header information in this and when required create JSON or XML from the same
  */
 public class SessionBean {
 
        /** The user name. */
        private String userName;
-       
+
        /** The password. */
        private String password;
-       
+
        /** The ip address. */
        private String ipAddress;
-       
-       /** The login name. */
-       private String loginName;
-       
-       /** The information. */
-       private String information;
-       
+
        /** The type *. */
        private String type;
-       
-       
+
        /**
         * Gets the user name.
-        *
+        * 
         * @return the userName
         */
        public String getUserName() {
                return userName;
        }
-       
+
        /**
         * Sets the user name.
-        *
-        * @param userName the userName to set
+        * 
+        * @param userName
+        *            the userName to set
         */
        public void setUserName(final String userName) {
                this.userName = userName;
        }
-       
+
        /**
         * Gets the password.
-        *
+        * 
         * @return the password
         */
        public String getPassword() {
                return password;
        }
-       
+
        /**
         * Sets the password.
-        *
-        * @param password the password to set
+        * 
+        * @param password
+        *            the password to set
         */
        public void setPassword(final String password) {
                this.password = password;
        }
-       
+
        /**
         * Gets the ip address.
-        *
+        * 
         * @return the ipAddress
         */
        public String getIpAddress() {
                return ipAddress;
        }
-       
+
        /**
         * Sets the ip address.
-        *
-        * @param ipAddress the ipAddress to set
+        * 
+        * @param ipAddress
+        *            the ipAddress to set
         */
        public void setIpAddress(final String ipAddress) {
                this.ipAddress = ipAddress;
        }
-       
-       /**
-        * Gets the login name.
-        *
-        * @return the loginName
-        */
-       public String getLoginName() {
-               return loginName;
-       }
-       
-       /**
-        * Sets the login name.
-        *
-        * @param loginName the loginName to set
-        */
-       public void setLoginName(final String loginName) {
-               this.loginName = loginName;
-       }
-       
-       /**
-        * Gets the information.
-        *
-        * @return the information
-        */
-       public String getInformation() {
-               return information;
-       }
-       
-       /**
-        * Sets the information.
-        *
-        * @param information the information to set
-        */
-       public void setInformation(final String information) {
-               this.information = information;
-       }
 
        /**
         * Gets the type.
-        *
+        * 
         * @return the type
         */
        public String getType() {
@@ -135,12 +95,12 @@ public class SessionBean {
 
        /**
         * Sets the type.
-        *
-        * @param type the type to set
+        * 
+        * @param type
+        *            the type to set
         */
        public void setType(String type) {
                this.type = type;
        }
-       
 
 }
diff --git a/coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/pojo/package-info.java b/coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/pojo/package-info.java
new file mode 100644 (file)
index 0000000..6a94cdf
--- /dev/null
@@ -0,0 +1,14 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * Package contains SessionBean class.
+ */
+package org.opendaylight.vtn.webapi.pojo;
+
index b1d645a612fafac7781b846e953827e41cbad904..22ef135584b25706ee118fffcd0706798ee02cfa 100644 (file)
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
+
 package org.opendaylight.vtn.webapi.services;
 
+import javax.servlet.http.HttpServletResponse;
+
+import org.json.JSONException;
 import org.json.JSONObject;
 
 import com.google.gson.JsonObject;
 import org.opendaylight.vtn.core.util.Logger;
 import org.opendaylight.vtn.javaapi.RestResource;
-import org.opendaylight.vtn.webapi.enums.ApplicationConstants;
+import org.opendaylight.vtn.webapi.constants.ApplicationConstants;
+import org.opendaylight.vtn.webapi.enums.HttpErrorCodeEnum;
 import org.opendaylight.vtn.webapi.enums.ResourcePathEnum;
 import org.opendaylight.vtn.webapi.exception.VtnServiceWebAPIException;
 import org.opendaylight.vtn.webapi.utils.VtnServiceCommonUtil;
 import org.opendaylight.vtn.webapi.utils.VtnServiceWebUtil;
 
 /**
- * The Class VtnServiceWebAPIController.This class will be the interface between WebAPI and Java API
- * The actual flow will be covered in this class only. 
+ * The Class VtnServiceWebAPIController.This class will be the interface between
+ * WebAPI and Java API The actual flow will be covered in this class only.
  */
 public class VtnServiceWebAPIController {
 
        /** The Constant LOG. */
-       private static final Logger LOG = Logger.getLogger(VtnServiceWebAPIController.class.getName());
+       private static final Logger LOG = Logger
+                       .getLogger(VtnServiceWebAPIController.class.getName());
 
-       /** The response success. */
-       private final int RESPONSE_SUCCESS = 200;
-       
-       /** The exception status. */
-       private boolean exceptionStatus = false;
-       
        /**
-        * This method will get the data from java api in json format and will do not pass any request to java api.
-        * First of all it will create the session and then acquire readlock from TC through JAva API. 
-        * Then it will call the requested API and if we get success from lower layer then the response jaon will be recived and
-        * readlock will be released and same for session . 
-        *
-        * @param sessionJson the session json
-        * @param resourcePath the resource path
+        * This method will get the data from java api in json format and will do
+        * not pass any request to java api. First of all it will create the session
+        * and then acquire readlock from TC through JAva API. Then it will call the
+        * requested API and if we get success from lower layer then the response
+        * jaon will be recived and readlock will be released and same for session .
+        * 
+        * @param sessionJson
+        *            the session json
+        * @param resourcePath
+        *            the resource path
         * @return the jSON object
-        * @throws VtnServiceWebAPIException the vtn service web api exception
+        * @throws VtnServiceWebAPIException
+        *             the vtn service web api exception
         */
-       public JSONObject get(final JsonObject sessionJson, final String resourcePath) throws VtnServiceWebAPIException{
-               LOG.trace("Java API calling for GET method initialized.");
+       public JSONObject get(final JsonObject sessionJson,
+                       final String resourcePath) throws VtnServiceWebAPIException {
+               LOG.trace("Start VtnServiceWebAPIController#get()");
                JSONObject responseJSON = null;
                long sessionId = 0;
                boolean isReadlock = true;
                String responseStr = null;
+               boolean exceptionStatus = false;
                final RestResource resource = new RestResource();
-               try{
+               try {
                        LOG.debug("acquiring session id and readlock from java API");
-                       //acquire session id
+                       // acquire session id
                        resource.setPath(ResourcePathEnum.SESSION_PATH.getPath());
-                       if(resource.post(sessionJson) != RESPONSE_SUCCESS){
-                               isReadlock=false;
-                               LOG.error("JAVA API returns error # "+resource.getInfo());
-                               responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
+                       if (resource.post(sessionJson) != ApplicationConstants.SUCCESS) {
+                               isReadlock = false;
+                               LOG.error("JAVA API returns error # " + resource.getInfo());
+                               responseStr = resource.getInfo() != null ? resource.getInfo()
+                                               .toString() : null;
                                throw new VtnServiceWebAPIException();
                        }
-                       sessionId = VtnServiceCommonUtil.getSessionFromJson(resource.getInfo());
-                       //acquire monitoring mode
-                       resource.setPath(ResourcePathEnum.ACQUIRE_RELEASE_MONITORING_PATH.getPath());
+                       sessionId = VtnServiceCommonUtil.getSessionFromJson(resource
+                                       .getInfo());
+                       // acquire monitoring mode
+                       resource.setPath(ResourcePathEnum.ACQUIRE_RELEASE_MONITORING_PATH
+                                       .getPath());
                        resource.setSessionID(sessionId);
-                       if(resource.put(VtnServiceWebUtil.prepareAquireReadLockJSON()) != RESPONSE_SUCCESS){
-                               isReadlock=false;
-                               LOG.error("JAVA API returns error # "+resource.getInfo());
-                               responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
+                       if (resource.put(VtnServiceWebUtil.prepareAquireReadLockJSON()) != ApplicationConstants.SUCCESS) {
+                               isReadlock = false;
+                               LOG.error("JAVA API returns error # " + resource.getInfo());
+                               responseStr = resource.getInfo() != null ? resource.getInfo()
+                                               .toString() : null;
                                throw new VtnServiceWebAPIException();
                        }
-                       //send the api request json
+                       // send the api request json
                        resource.setPath(resourcePath);
                        resource.setSessionID(sessionId);
                        final int status = resource.get();
-                       LOG.debug("JAVA API returned error code #"+status);
-                       if(status != RESPONSE_SUCCESS){
-                               responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
-                               LOG.error("JAVA API returns error # "+resource.getInfo());
+                       LOG.debug("JAVA API returned error code #" + status);
+                       if (status != ApplicationConstants.SUCCESS) {
+                               responseStr = resource.getInfo() != null ? resource.getInfo()
+                                               .toString() : null;
+                               LOG.error("JAVA API returns error # " + resource.getInfo());
                                throw new VtnServiceWebAPIException();
                        }
-                       responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
-                       LOG.debug("JAVA API returned response # "+responseStr);
-               }catch (VtnServiceWebAPIException vtnException) {       
+                       responseStr = resource.getInfo() != null ? resource.getInfo()
+                                       .toString() : null;
+                       LOG.debug("JAVA API returned response # " + responseStr);
+               } catch (final Exception e) {
+                       LOG.error("VTN Service error occurred : " + e.getMessage());
                        exceptionStatus = true;
-               }catch (RuntimeException exception) {
-                       exceptionStatus = true;
-                       LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));    
-                       throw new VtnServiceWebAPIException(ApplicationConstants.INTERNAL_SERVER_ERROR, ApplicationConstants.DEFAULT_ERROR_DESCRIPTION);
-               }
-               finally{
-                       try{
-                               //release monitoring mode
-                       if(isReadlock){
-                                       resource.setPath(ResourcePathEnum.ACQUIRE_RELEASE_MONITORING_PATH.getPath());
+                       if (!(e instanceof VtnServiceWebAPIException)) {
+                               throw new VtnServiceWebAPIException(
+                                               HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR.getCode());
+                       }
+               } finally {
+                       try {
+                               // release monitoring mode
+                               if (isReadlock) {
+                                       resource.setPath(ResourcePathEnum.ACQUIRE_RELEASE_MONITORING_PATH
+                                                       .getPath());
                                        resource.setSessionID(sessionId);
-                                       if(resource.delete() != RESPONSE_SUCCESS){
-                                               LOG.error("JAVA API returns error # "+resource.getInfo());
-                                               responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
+                                       if (resource.delete() != ApplicationConstants.SUCCESS) {
+                                               LOG.error("JAVA API returns error # "
+                                                               + resource.getInfo());
+                                               responseStr = resource.getInfo() != null ? resource
+                                                               .getInfo().toString() : null;
                                                throw new VtnServiceWebAPIException();
                                        }
-                       }
-                       if(sessionId != ApplicationConstants.ZERO){
-                                       //release session
-                                       resource.setPath(ResourcePathEnum.RELEASE_SESSION.getPath()+ sessionId);
+                               }
+                               if (sessionId != ApplicationConstants.ZERO) {
+                                       // release session
+                                       resource.setPath(ResourcePathEnum.RELEASE_SESSION.getPath()
+                                                       + sessionId);
                                        resource.setSessionID(sessionId);
-                                       if(resource.delete() != RESPONSE_SUCCESS){
-                                               LOG.error("JAVA API returns error # "+resource.getInfo());
-                                               responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
+                                       if (resource.delete() != ApplicationConstants.SUCCESS) {
+                                               LOG.error("JAVA API returns error # "
+                                                               + resource.getInfo());
+                                               responseStr = resource.getInfo() != null ? resource
+                                                               .getInfo().toString() : null;
                                                throw new VtnServiceWebAPIException();
                                        }
+                               }
+                               if (null == responseStr && !exceptionStatus) {
+                                       responseJSON = VtnServiceWebUtil
+                                                       .prepareErrResponseJson(HttpErrorCodeEnum.UNC_STATUS_OK
+                                                                       .getCode());
+                               } else {
+                                       responseJSON = new JSONObject(responseStr);
+                               }
+                       } catch (final JSONException exception) {
+                               LOG.error("VTN Service error occurred : "
+                                               + exception.getMessage());
+                               throw new VtnServiceWebAPIException(
+                                               HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR.getCode());
                        }
-                       responseJSON = new JSONObject(responseStr);
-                       }catch (Exception exception) {
-                               exceptionStatus = true;
-                               LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));    
-                               throw new VtnServiceWebAPIException(ApplicationConstants.INTERNAL_SERVER_ERROR, ApplicationConstants.DEFAULT_ERROR_DESCRIPTION);
-                       }
-                       
                }
+               LOG.trace("Complete VtnServiceWebAPIController#get()");
                return responseJSON;
        }
-       
+
        /**
-        *This method will get the data from java api in json format and will pass the required request to java api.
-        * First of all it will create the session and then acquire readlock from TC through JAva API. 
-        * Then it will call the requested API and if we get success from lower layer then the response jaon will be recived and
-        * readlock will be released and same for session .
-        * @param sessionJson the session json
-        * @param reqObject the req object
-        * @param resourcePath the resource path
+        * This method will get the data from java api in json format and will pass
+        * the required request to java api. First of all it will create the session
+        * and then acquire readlock from TC through JAva API. Then it will call the
+        * requested API and if we get success from lower layer then the response
+        * jaon will be recived and readlock will be released and same for session .
+        * 
+        * @param sessionJson
+        *            the session json
+        * @param reqObject
+        *            the req object
+        * @param resourcePath
+        *            the resource path
         * @return the jSON object
-        * @throws VtnServiceWebAPIException the vtn service web api exception
+        * @throws VtnServiceWebAPIException
+        *             the vtn service web api exception
         */
-       public JSONObject get(final JsonObject sessionJson, final JsonObject reqObject, final String resourcePath) throws VtnServiceWebAPIException {
+       public JSONObject get(final JsonObject sessionJson,
+                       final JsonObject reqObject, final String resourcePath)
+                       throws VtnServiceWebAPIException {
+               LOG.trace("Start VtnServiceWebAPIController#get()");
                JSONObject responseJSON = null;
                long sessionId = 0;
                boolean isReadlock = true;
                String responseStr = null;
+               boolean exceptionStatus = false;
                final RestResource resource = new RestResource();
-               try{
+               try {
                        LOG.debug("acquiring session id and readlock from java API");
-                       //acquire session id
+                       // acquire session id
                        resource.setPath(ResourcePathEnum.SESSION_PATH.getPath());
-                       if(resource.post(sessionJson) != RESPONSE_SUCCESS){
-                               isReadlock=false;
-                               LOG.error("JAVA API returns error # "+resource.getInfo());
-                               responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
+                       if (resource.post(sessionJson) != ApplicationConstants.SUCCESS) {
+                               isReadlock = false;
+                               LOG.error("JAVA API returns error # " + resource.getInfo());
+                               responseStr = resource.getInfo() != null ? resource.getInfo()
+                                               .toString() : null;
                                throw new VtnServiceWebAPIException();
                        }
-                       sessionId = VtnServiceCommonUtil.getSessionFromJson(resource.getInfo());
-                       //acquire monitoring mode
-               
-                       resource.setPath(ResourcePathEnum.ACQUIRE_RELEASE_MONITORING_PATH.getPath());
+                       sessionId = VtnServiceCommonUtil.getSessionFromJson(resource
+                                       .getInfo());
+                       // acquire monitoring mode
+
+                       resource.setPath(ResourcePathEnum.ACQUIRE_RELEASE_MONITORING_PATH
+                                       .getPath());
                        resource.setSessionID(sessionId);
-                       if(resource.put(VtnServiceWebUtil.prepareAquireReadLockJSON()) != RESPONSE_SUCCESS){
+                       if (resource.put(VtnServiceWebUtil.prepareAquireReadLockJSON()) != ApplicationConstants.SUCCESS) {
                                isReadlock = false;
-                               LOG.error("JAVA API returns error # "+resource.getInfo());
-                               responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
+                               LOG.error("JAVA API returns error # " + resource.getInfo());
+                               responseStr = resource.getInfo() != null ? resource.getInfo()
+                                               .toString() : null;
                                throw new VtnServiceWebAPIException();
                        }
-                       //send the api request json
+                       // send the api request json
                        resource.setPath(resourcePath);
                        resource.setSessionID(sessionId);
-                       LOG.debug("Request object passing to JAVA API  #"+reqObject);
+                       LOG.debug("Request object passing to JAVA API  #" + reqObject);
                        final int status = resource.get(reqObject);
-                       LOG.debug("JAVA API returned error code #"+status);
-                       if(status != RESPONSE_SUCCESS){
-                               responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
-                               LOG.error("JAVA API returns error # "+resource.getInfo());
+                       LOG.debug("JAVA API returned error code #" + status);
+                       if (status != ApplicationConstants.SUCCESS) {
+                               responseStr = resource.getInfo() != null ? resource.getInfo()
+                                               .toString() : null;
+                               LOG.error("JAVA API returns error # " + resource.getInfo());
                                throw new VtnServiceWebAPIException();
                        }
-                       responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
-                       LOG.debug("JAVA API returned response # "+responseStr);
-               }catch (VtnServiceWebAPIException vtnException) {
-                       exceptionStatus = true;
-               }catch (RuntimeException exception) {
+                       responseStr = resource.getInfo() != null ? resource.getInfo()
+                                       .toString() : null;
+                       LOG.debug("JAVA API returned response # " + responseStr);
+               } catch (final Exception e) {
+                       LOG.error("VTN Service error occurred : " + e.getMessage());
                        exceptionStatus = true;
-                       LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));    
-                       throw new VtnServiceWebAPIException(ApplicationConstants.INTERNAL_SERVER_ERROR, ApplicationConstants.DEFAULT_ERROR_DESCRIPTION);
-               }
-               finally{
-                       try{
-                               //release monitoring mode
-                               if(isReadlock){
-                                       resource.setPath(ResourcePathEnum.ACQUIRE_RELEASE_MONITORING_PATH.getPath());
+                       if (!(e instanceof VtnServiceWebAPIException)) {
+                               throw new VtnServiceWebAPIException(
+                                               HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR.getCode());
+                       }
+               } finally {
+                       try {
+                               // release monitoring mode
+                               if (isReadlock) {
+                                       resource.setPath(ResourcePathEnum.ACQUIRE_RELEASE_MONITORING_PATH
+                                                       .getPath());
                                        resource.setSessionID(sessionId);
-                                       if(resource.delete() != RESPONSE_SUCCESS){
-                                               LOG.error("JAVA API returns error # "+resource.getInfo());
-                                               responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
+                                       if (resource.delete() != ApplicationConstants.SUCCESS) {
+                                               LOG.error("JAVA API returns error # "
+                                                               + resource.getInfo());
+                                               responseStr = resource.getInfo() != null ? resource
+                                                               .getInfo().toString() : null;
                                                throw new VtnServiceWebAPIException();
                                        }
                                }
-                               
-                               if(sessionId != ApplicationConstants.ZERO){
-                                       //release session
-                                       resource.setPath(ResourcePathEnum.RELEASE_SESSION.getPath()+ sessionId);
+
+                               if (sessionId != ApplicationConstants.ZERO) {
+                                       // release session
+                                       resource.setPath(ResourcePathEnum.RELEASE_SESSION.getPath()
+                                                       + sessionId);
                                        resource.setSessionID(sessionId);
-                                       if(resource.delete() != RESPONSE_SUCCESS){
-                                               LOG.error("JAVA API returns error # "+resource.getInfo());
-                                               responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
+                                       if (resource.delete() != ApplicationConstants.SUCCESS) {
+                                               LOG.error("JAVA API returns error # "
+                                                               + resource.getInfo());
+                                               responseStr = resource.getInfo() != null ? resource
+                                                               .getInfo().toString() : null;
                                                throw new VtnServiceWebAPIException();
                                        }
                                }
-                               responseJSON = new JSONObject(responseStr);
-                       }catch (Exception exception) {
-                               exceptionStatus = true;
-                               LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));    
-                               throw new VtnServiceWebAPIException(ApplicationConstants.INTERNAL_SERVER_ERROR, ApplicationConstants.DEFAULT_ERROR_DESCRIPTION);
+                               if (null == responseStr && !exceptionStatus) {
+                                       responseJSON = VtnServiceWebUtil
+                                                       .prepareErrResponseJson(HttpErrorCodeEnum.UNC_STATUS_OK
+                                                                       .getCode());
+                               } else {
+                                       responseJSON = new JSONObject(responseStr);
+                               }
+                       } catch (final JSONException exception) {
+                               LOG.error("VTN Service error occurred : "
+                                               + exception.getMessage());
+                               throw new VtnServiceWebAPIException(
+                                               HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
                        }
-               
                }
+               LOG.trace("Complete VtnServiceWebAPIController#get()");
                return responseJSON;
        }
 
-       
        /**
-        * Post.This method will be required when we have to create any component using Java API. 
-        * This method will work in the following sequence-
-        * Create session 
-        * acquire config mode
-        * calling actual Java API which is requested
-        * release config lock
-        * release session
-        *
-        * @param sessionJson the session json
-        * @param reqObject the req object
-        * @param resourcePath the resource path
+        * Post.This method will be required when we have to create any component
+        * using Java API. This method will work in the following sequence- Create
+        * session acquire config mode calling actual Java API which is requested
+        * release config lock release session
+        * 
+        * @param sessionJson
+        *            the session json
+        * @param reqObject
+        *            the req object
+        * @param resourcePath
+        *            the resource path
         * @return the jSON object
-        * @throws VtnServiceWebAPIException the vtn service web api exception
+        * @throws VtnServiceWebAPIException
+        *             the vtn service web api exception
         */
-       public JSONObject post(final JsonObject sessionJson, final JsonObject reqObject, final String resourcePath) throws VtnServiceWebAPIException{
-               JSONObject responseJSON = null; 
+       public JSONObject post(final JsonObject sessionJson,
+                       final JsonObject reqObject, final String resourcePath)
+                       throws VtnServiceWebAPIException {
+               LOG.trace("Start VtnServiceWebAPIController#post()");
+               JSONObject responseJSON = null;
                String responseStr = null;
                long sessionId = 0;
                long configId = 0;
+               boolean exceptionStatus = false;
                final RestResource resource = new RestResource();
-               try{
+               try {
                        LOG.debug("acquiring session id and config mode from java API");
-                       //acquire session id
+                       // acquire session id
                        resource.setPath(ResourcePathEnum.SESSION_PATH.getPath());
-                       if(resource.post(sessionJson) != RESPONSE_SUCCESS){
-                               LOG.error("JAVA API returns error # "+resource.getInfo());
-                               responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
+                       if (resource.post(sessionJson) != ApplicationConstants.SUCCESS) {
+                               LOG.error("JAVA API returns error # " + resource.getInfo());
+                               responseStr = resource.getInfo() != null ? resource.getInfo()
+                                               .toString() : null;
                                throw new VtnServiceWebAPIException();
                        }
-                       sessionId = VtnServiceCommonUtil.getSessionFromJson(resource.getInfo());
-                       //acquire configure mode
+                       sessionId = VtnServiceCommonUtil.getSessionFromJson(resource
+                                       .getInfo());
+                       // acquire configure mode
                        resource.setPath(ResourcePathEnum.ACQUIRE_CONFIG_PATH.getPath());
                        resource.setSessionID(sessionId);
-                       if(resource.post(VtnServiceWebUtil.prepareAquireConfigJSON()) != RESPONSE_SUCCESS){
-                               LOG.error("JAVA API returns error # "+resource.getInfo());
-                               responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
+                       if (resource.post(VtnServiceWebUtil.prepareAquireConfigJSON()) != ApplicationConstants.SUCCESS) {
+                               LOG.error("JAVA API returns error # " + resource.getInfo());
+                               responseStr = resource.getInfo() != null ? resource.getInfo()
+                                               .toString() : null;
                                throw new VtnServiceWebAPIException();
                        }
-                       configId = VtnServiceCommonUtil.getConfigIdFromJson(resource.getInfo());
+                       configId = VtnServiceCommonUtil.getConfigIdFromJson(resource
+                                       .getInfo());
                        // Abort operation to clear candidate DB
                        responseStr = performAbort(sessionId, configId, resource);
-                       //send the api request json
+                       if (responseStr != null) {
+                               throw new VtnServiceWebAPIException();
+                       }
+                       // send the api request json
                        resource.setPath(resourcePath);
                        resource.setSessionID(sessionId);
                        resource.setConfigID(configId);
-                       LOG.debug("Request object passing to JAVA API  #"+reqObject);
+                       LOG.debug("Request object passing to JAVA API  #" + reqObject);
                        final int status = resource.post(reqObject);
-                       LOG.debug("JAVA API returned error code #"+status);
-                       if(status != RESPONSE_SUCCESS){
-                               LOG.error("JAVA API returns error # "+resource.getInfo());
-                               responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
-                               throw new VtnServiceWebAPIException();//to save the below steps execution
-                       }
-                       responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
-                       LOG.debug("JAVA API returned response # "+responseStr);
-                       //responseStr = performCommit(sessionId, configId, resource);
-                       String commitResponse = performCommit(sessionId, configId, resource);
-                       if(commitResponse != null){
+                       LOG.debug("JAVA API returned error code #" + status);
+                       if (status != ApplicationConstants.SUCCESS) {
+                               LOG.error("JAVA API returns error # " + resource.getInfo());
+                               responseStr = resource.getInfo() != null ? resource.getInfo()
+                                               .toString() : null;
+                               throw new VtnServiceWebAPIException();// to save the below steps
+                                                                                                               // execution
+                       }
+                       responseStr = resource.getInfo() != null ? resource.getInfo()
+                                       .toString() : null;
+                       LOG.debug("JAVA API returned response # " + responseStr);
+                       // responseStr = performCommit(sessionId, configId, resource);
+                       final String commitResponse = performCommit(sessionId, configId,
+                                       resource);
+                       if (commitResponse != null) {
                                responseStr = commitResponse;
+                               throw new VtnServiceWebAPIException();
                        }
-               }catch (VtnServiceWebAPIException vtnException) {       
-                       exceptionStatus = true;
-               }catch (RuntimeException exception) {
+               } catch (final Exception e) {
+                       LOG.error("VTN Service error occurred : " + e.getMessage());
                        exceptionStatus = true;
-                       LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));    
-                       throw new VtnServiceWebAPIException(ApplicationConstants.INTERNAL_SERVER_ERROR, ApplicationConstants.DEFAULT_ERROR_DESCRIPTION);
-               }
-               finally{
-                       try{
-                               if(configId != ApplicationConstants.ZERO){
-                                       //release monitoring mode
-                                       resource.setPath(ResourcePathEnum.RELEASE_CONFIGURATION.getPath()+configId);
+                       if (!(e instanceof VtnServiceWebAPIException)) {
+                               throw new VtnServiceWebAPIException(
+                                               HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR.getCode());
+                       }
+               } finally {
+                       try {
+                               if (configId != ApplicationConstants.ZERO) {
+                                       // release monitoring mode
+                                       resource.setPath(ResourcePathEnum.RELEASE_CONFIGURATION
+                                                       .getPath() + configId);
                                        resource.setSessionID(sessionId);
                                        resource.setConfigID(configId);
-                                       if(resource.delete() != RESPONSE_SUCCESS){
-                                               LOG.error("JAVA API returns error # "+resource.getInfo());
-                                               responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
+                                       if (resource.delete() != ApplicationConstants.SUCCESS) {
+                                               LOG.error("JAVA API returns error # "
+                                                               + resource.getInfo());
+                                               responseStr = resource.getInfo() != null ? resource
+                                                               .getInfo().toString() : null;
                                                throw new VtnServiceWebAPIException();
                                        }
                                }
-                               if(sessionId != ApplicationConstants.ZERO){
-                                       //release session
-                                       resource.setPath(ResourcePathEnum.RELEASE_SESSION.getPath()+ sessionId);
+                               if (sessionId != ApplicationConstants.ZERO) {
+                                       // release session
+                                       resource.setPath(ResourcePathEnum.RELEASE_SESSION.getPath()
+                                                       + sessionId);
                                        resource.setSessionID(sessionId);
-                                       if(resource.delete() != RESPONSE_SUCCESS){
-                                               LOG.error("JAVA API returns error # "+resource.getInfo());
-                                               responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
+                                       if (resource.delete() != ApplicationConstants.SUCCESS) {
+                                               LOG.error("JAVA API returns error # "
+                                                               + resource.getInfo());
+                                               responseStr = resource.getInfo() != null ? resource
+                                                               .getInfo().toString() : null;
                                                throw new VtnServiceWebAPIException();
                                        }
                                }
 
-                               if(null == responseStr && !exceptionStatus){
-                                       responseJSON = VtnServiceWebUtil.prepareErrResponseJson(ApplicationConstants.STATUS_OK, ApplicationConstants.STATUS_SUCCESS);
-                               }else{
+                               if (null == responseStr && !exceptionStatus) {
+                                       responseJSON = VtnServiceWebUtil
+                                                       .prepareErrResponseJson(HttpErrorCodeEnum.UNC_STATUS_OK
+                                                                       .getCode());
+                               } else {
                                        responseJSON = new JSONObject(responseStr);
                                }
-                       }catch (Exception exception) {
-                               LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));    
-                               throw new VtnServiceWebAPIException(ApplicationConstants.INTERNAL_SERVER_ERROR, ApplicationConstants.DEFAULT_ERROR_DESCRIPTION);
+                       } catch (final JSONException exception) {
+                               LOG.error("VTN Service error occurred : "
+                                               + exception.getMessage());
+                               throw new VtnServiceWebAPIException(
+                                               HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR.getCode());
                        }
 
-
                }
+               LOG.trace("Complete VtnServiceWebAPIController#post()");
                return responseJSON;
        }
 
        /**
-        * Put.This method will be required when we have to update any component using Java API. 
-        * This method will work in the following sequence-
-        * Create session 
-        * acquire config mode
-        * calling actual Java API which is requested
-        * release config lock
-        * release session
-        * @param sessionJson the session json
-        * @param reqObject the req object
-        * @param resourcePath the resource path
+        * Put.This method will be required when we have to update any component
+        * using Java API. This method will work in the following sequence- Create
+        * session acquire config mode calling actual Java API which is requested
+        * release config lock release session
+        * 
+        * @param sessionJson
+        *            the session json
+        * @param reqObject
+        *            the req object
+        * @param resourcePath
+        *            the resource path
         * @return the jSON object
-        * @throws VtnServiceWebAPIException the vtn service web api exception
+        * @throws VtnServiceWebAPIException
+        *             the vtn service web api exception
         */
-       public JSONObject put(final JsonObject sessionJson, final JsonObject reqObject, final String resourcePath) throws VtnServiceWebAPIException {
+       public JSONObject put(final JsonObject sessionJson,
+                       final JsonObject reqObject, final String resourcePath)
+                       throws VtnServiceWebAPIException {
+               LOG.trace("Start VtnServiceWebAPIController#put()");
                JSONObject responseJSON = null;
                String responseStr = null;
                long sessionId = 0;
                long configId = 0;
+               boolean exceptionStatus = false;
                final RestResource resource = new RestResource();
-               try{
+               try {
                        LOG.debug("acquiring session id and config mode from java API");
-                       //acquire session id
+                       // acquire session id
                        resource.setPath(ResourcePathEnum.SESSION_PATH.getPath());
-                       if(resource.post(sessionJson) != RESPONSE_SUCCESS){
-                               LOG.error("JAVA API returns error # "+resource.getInfo());
-                               responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
+                       if (resource.post(sessionJson) != ApplicationConstants.SUCCESS) {
+                               LOG.error("JAVA API returns error # " + resource.getInfo());
+                               responseStr = resource.getInfo() != null ? resource.getInfo()
+                                               .toString() : null;
                                throw new VtnServiceWebAPIException();
                        }
-                       sessionId = VtnServiceCommonUtil.getSessionFromJson(resource.getInfo());
-                       //acquire configure mode
+                       sessionId = VtnServiceCommonUtil.getSessionFromJson(resource
+                                       .getInfo());
+                       // acquire configure mode
                        resource.setPath(ResourcePathEnum.ACQUIRE_CONFIG_PATH.getPath());
                        resource.setSessionID(sessionId);
-                       if(resource.post(VtnServiceWebUtil.prepareAquireConfigJSON()) != RESPONSE_SUCCESS){
-                               LOG.error("JAVA API returns error # "+resource.getInfo());
-                               responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
+                       if (resource.post(VtnServiceWebUtil.prepareAquireConfigJSON()) != ApplicationConstants.SUCCESS) {
+                               LOG.error("JAVA API returns error # " + resource.getInfo());
+                               responseStr = resource.getInfo() != null ? resource.getInfo()
+                                               .toString() : null;
+                               throw new VtnServiceWebAPIException();
+                       }
+                       configId = VtnServiceCommonUtil.getConfigIdFromJson(resource
+                                       .getInfo());
+                       responseStr = performAbort(sessionId, configId, resource);
+                       if (responseStr != null) {
                                throw new VtnServiceWebAPIException();
                        }
-                       configId = VtnServiceCommonUtil.getConfigIdFromJson(resource.getInfo());
-                       responseStr = performAbort(sessionId, configId, resource);              
-                       //send the api request json
+                       // send the api request json
                        resource.setPath(resourcePath);
                        resource.setConfigID(configId);
                        resource.setSessionID(sessionId);
-                       LOG.debug("Request object passing to JAVA API  #"+reqObject);
+                       LOG.debug("Request object passing to JAVA API  #" + reqObject);
                        final int status = resource.put(reqObject);
-                       LOG.debug("JAVA API returned error code #"+status);
-                       if(status != RESPONSE_SUCCESS){
-                               LOG.error("JAVA API returns error # "+resource.getInfo());
-                               responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
-                               throw new VtnServiceWebAPIException();//to save the below steps execution
-                       }
-                       responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
-                       LOG.debug("JAVA API returned response # "+responseStr);
-                       //responseStr = performCommit(sessionId, configId, resource);
-                       String commitResponse = performCommit(sessionId, configId, resource);
-                       if(commitResponse != null){
-                                       responseStr = commitResponse;
-                       }
-               }catch (VtnServiceWebAPIException vtnException) {       
-                       exceptionStatus = true;
-               }catch (RuntimeException exception) {
+                       LOG.debug("JAVA API returned error code #" + status);
+                       if (status != ApplicationConstants.SUCCESS) {
+                               LOG.error("JAVA API returns error # " + resource.getInfo());
+                               responseStr = resource.getInfo() != null ? resource.getInfo()
+                                               .toString() : null;
+                               throw new VtnServiceWebAPIException();// to save the below steps
+                                                                                                               // execution
+                       }
+                       responseStr = resource.getInfo() != null ? resource.getInfo()
+                                       .toString() : null;
+                       LOG.debug("JAVA API returned response # " + responseStr);
+                       // responseStr = performCommit(sessionId, configId, resource);
+                       final String commitResponse = performCommit(sessionId, configId,
+                                       resource);
+                       if (commitResponse != null) {
+                               responseStr = commitResponse;
+                               throw new VtnServiceWebAPIException();
+                       }
+               } catch (final Exception e) {
+                       LOG.error("VTN Service error occurred : " + e.getMessage());
                        exceptionStatus = true;
-                       LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));    
-                       throw new VtnServiceWebAPIException(ApplicationConstants.INTERNAL_SERVER_ERROR, ApplicationConstants.DEFAULT_ERROR_DESCRIPTION);
-               }
-               finally{
-                       try{
-                               if(configId != ApplicationConstants.ZERO){
-                                       //release monitoring mode
-                                       resource.setPath(ResourcePathEnum.RELEASE_CONFIGURATION.getPath()+configId);
+                       if (!(e instanceof VtnServiceWebAPIException)) {
+                               throw new VtnServiceWebAPIException(
+                                               HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR.getCode());
+                       }
+               } finally {
+                       try {
+                               if (configId != ApplicationConstants.ZERO) {
+                                       // release monitoring mode
+                                       resource.setPath(ResourcePathEnum.RELEASE_CONFIGURATION
+                                                       .getPath() + configId);
                                        resource.setSessionID(sessionId);
                                        resource.setConfigID(configId);
-                                       if(resource.delete() != RESPONSE_SUCCESS){
-                                               LOG.error("JAVA API returns error # "+resource.getInfo());
-                                               responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
+                                       if (resource.delete() != ApplicationConstants.SUCCESS) {
+                                               LOG.error("JAVA API returns error # "
+                                                               + resource.getInfo());
+                                               responseStr = resource.getInfo() != null ? resource
+                                                               .getInfo().toString() : null;
                                                throw new VtnServiceWebAPIException();
                                        }
                                }
-                               if(sessionId != ApplicationConstants.ZERO){
-                                       //release session
-                                       resource.setPath(ResourcePathEnum.RELEASE_SESSION.getPath()+ sessionId);
+                               if (sessionId != ApplicationConstants.ZERO) {
+                                       // release session
+                                       resource.setPath(ResourcePathEnum.RELEASE_SESSION.getPath()
+                                                       + sessionId);
                                        resource.setSessionID(sessionId);
-                                       if(resource.delete() != RESPONSE_SUCCESS){
-                                               LOG.error("JAVA API returns error # "+resource.getInfo());
-                                               responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
+                                       if (resource.delete() != ApplicationConstants.SUCCESS) {
+                                               LOG.error("JAVA API returns error # "
+                                                               + resource.getInfo());
+                                               responseStr = resource.getInfo() != null ? resource
+                                                               .getInfo().toString() : null;
                                                throw new VtnServiceWebAPIException();
                                        }
                                }
 
-                               if(null == responseStr && !exceptionStatus){
-                                       responseJSON = VtnServiceWebUtil.prepareErrResponseJson(ApplicationConstants.STATUS_OK, ApplicationConstants.STATUS_SUCCESS);
-                               }else{
+                               if (null == responseStr && !exceptionStatus) {
+                                       responseJSON = VtnServiceWebUtil
+                                                       .prepareErrResponseJson(HttpErrorCodeEnum.UNC_STATUS_OK
+                                                                       .getCode());
+                               } else {
                                        responseJSON = new JSONObject(responseStr);
                                }
-                       }catch (Exception exception) {
-                               exceptionStatus = true;
-                               LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));    
-                               throw new VtnServiceWebAPIException(ApplicationConstants.INTERNAL_SERVER_ERROR, ApplicationConstants.DEFAULT_ERROR_DESCRIPTION);
+                       } catch (final JSONException exception) {
+                               LOG.error("VTN Service error occurred : "
+                                               + exception.getMessage());
+                               throw new VtnServiceWebAPIException(
+                                               HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR.getCode());
                        }
 
                }
+               LOG.trace("Complete VtnServiceWebAPIController#put()");
                return responseJSON;
        }
 
        /**
-        * Delete.This method will be required when we have to delete any component using Java API. 
-        * This method will work in the following sequence-
-        * Create session 
-        * acquire config mode
-        * calling actual Java API which is requested
-        * release config lock
-        * release session
-        * @param sessionJson the session json
-        * @param reqObject the req object
-        * @param resourcePath the resource path
+        * Delete.This method will be required when we have to delete any component
+        * using Java API. This method will work in the following sequence- Create
+        * session acquire config mode calling actual Java API which is requested
+        * release config lock release session
+        * 
+        * @param sessionJson
+        *            the session json
+        * @param reqObject
+        *            the req object
+        * @param resourcePath
+        *            the resource path
         * @return the jSON object
-        * @throws VtnServiceWebAPIException the vtn service web api exception
+        * @throws VtnServiceWebAPIException
+        *             the vtn service web api exception
         */
-       public JSONObject delete(final JsonObject sessionJson, final JsonObject reqObject, final String resourcePath) throws VtnServiceWebAPIException{
+       public JSONObject delete(final JsonObject sessionJson,
+                       final JsonObject reqObject, final String resourcePath)
+                       throws VtnServiceWebAPIException {
+               LOG.trace("Start VtnServiceWebAPIController#delete()");
                JSONObject responseJSON = null;
                String responseStr = null;
                long sessionId = 0;
                long configId = 0;
+               boolean exceptionStatus = false;
                final RestResource resource = new RestResource();
-               try{
+               try {
                        LOG.debug("acquiring session id and config mode from java API");
-                       //acquire session id
+                       // acquire session id
                        resource.setPath(ResourcePathEnum.SESSION_PATH.getPath());
-                       if(resource.post(sessionJson) != RESPONSE_SUCCESS){
-                               LOG.error("JAVA API returns error # "+resource.getInfo());
-                               responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
+                       if (resource.post(sessionJson) != ApplicationConstants.SUCCESS) {
+                               LOG.error("JAVA API returns error # " + resource.getInfo());
+                               responseStr = resource.getInfo() != null ? resource.getInfo()
+                                               .toString() : null;
                                throw new VtnServiceWebAPIException();
                        }
-                       sessionId = VtnServiceCommonUtil.getSessionFromJson(resource.getInfo());
-                       //acquire configure mode
+                       sessionId = VtnServiceCommonUtil.getSessionFromJson(resource
+                                       .getInfo());
+                       // acquire configure mode
                        resource.setPath(ResourcePathEnum.ACQUIRE_CONFIG_PATH.getPath());
                        resource.setSessionID(sessionId);
-                       if(resource.post(VtnServiceWebUtil.prepareAquireConfigJSON()) != RESPONSE_SUCCESS){
-                               LOG.error("JAVA API returns error # "+resource.getInfo());
-                               responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
+                       if (resource.post(VtnServiceWebUtil.prepareAquireConfigJSON()) != ApplicationConstants.SUCCESS) {
+                               LOG.error("JAVA API returns error # " + resource.getInfo());
+                               responseStr = resource.getInfo() != null ? resource.getInfo()
+                                               .toString() : null;
                                throw new VtnServiceWebAPIException();
                        }
-                       configId = VtnServiceCommonUtil.getConfigIdFromJson(resource.getInfo());
-                       responseStr = performAbort(sessionId, configId, resource);      
-                       //send the api request json
+                       configId = VtnServiceCommonUtil.getConfigIdFromJson(resource
+                                       .getInfo());
+                       responseStr = performAbort(sessionId, configId, resource);
+                       if (responseStr != null) {
+                               throw new VtnServiceWebAPIException();
+                       }
+                       // send the api request json
                        resource.setPath(resourcePath);
                        resource.setConfigID(configId);
                        resource.setSessionID(sessionId);
-                       LOG.debug("Request object passing to JAVA API  #"+reqObject);
+                       LOG.debug("Request object passing to JAVA API  #" + reqObject);
                        final int status = resource.delete(reqObject);
-                       LOG.debug("JAVA API returned error code #"+status);
-                       if(status != RESPONSE_SUCCESS){
-                               LOG.error("JAVA API returns error # "+resource.getInfo());
-                               responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
-                               throw new VtnServiceWebAPIException();//to save the below steps execution
-                       }
-                       responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
-                       LOG.debug("JAVA API returned response # "+responseStr);
-                       //responseStr = performCommit(sessionId, configId, resource);
-                       String commitResponse = performCommit(sessionId, configId, resource);
-                       if(commitResponse != null){
-                                       responseStr = commitResponse;
-                       }
-               }catch (VtnServiceWebAPIException vtnException) {       
-                       exceptionStatus = true;
-               }catch (Exception exception) {
+                       LOG.debug("JAVA API returned error code #" + status);
+                       if (status != ApplicationConstants.SUCCESS) {
+                               LOG.error("JAVA API returns error # " + resource.getInfo());
+                               responseStr = resource.getInfo() != null ? resource.getInfo()
+                                               .toString() : null;
+                               throw new VtnServiceWebAPIException();// to save the below steps
+                                                                                                               // execution
+                       }
+                       responseStr = resource.getInfo() != null ? resource.getInfo()
+                                       .toString() : null;
+                       LOG.debug("JAVA API returned response # " + responseStr);
+                       // responseStr = performCommit(sessionId, configId, resource);
+                       final String commitResponse = performCommit(sessionId, configId,
+                                       resource);
+                       if (commitResponse != null) {
+                               responseStr = commitResponse;
+                               throw new VtnServiceWebAPIException();
+                       }
+               } catch (final Exception e) {
+                       LOG.error("VTN Service error occurred : " + e.getMessage());
                        exceptionStatus = true;
-                       LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));    
-                       throw new VtnServiceWebAPIException(ApplicationConstants.INTERNAL_SERVER_ERROR, ApplicationConstants.DEFAULT_ERROR_DESCRIPTION);
-               }
-               finally{
-                       try{
-                               if(configId != ApplicationConstants.ZERO){
-                                       //release monitoring mode
-                                       resource.setPath(ResourcePathEnum.RELEASE_CONFIGURATION.getPath()+configId);
+                       if (!(e instanceof VtnServiceWebAPIException)) {
+                               throw new VtnServiceWebAPIException(
+                                               HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR.getCode());
+                       }
+               } finally {
+                       try {
+                               if (configId != ApplicationConstants.ZERO) {
+                                       // release monitoring mode
+                                       resource.setPath(ResourcePathEnum.RELEASE_CONFIGURATION
+                                                       .getPath() + configId);
                                        resource.setSessionID(sessionId);
                                        resource.setConfigID(configId);
-                                       if(resource.delete() != RESPONSE_SUCCESS){
-                                               LOG.error("JAVA API returns error # "+resource.getInfo());
-                                               responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
+                                       if (resource.delete() != ApplicationConstants.SUCCESS) {
+                                               LOG.error("JAVA API returns error # "
+                                                               + resource.getInfo());
+                                               responseStr = resource.getInfo() != null ? resource
+                                                               .getInfo().toString() : null;
                                                throw new VtnServiceWebAPIException();
                                        }
                                }
-                               if(sessionId != ApplicationConstants.ZERO){
-                                       //release session
-                                       resource.setPath(ResourcePathEnum.RELEASE_SESSION.getPath()+ sessionId);
+                               if (sessionId != ApplicationConstants.ZERO) {
+                                       // release session
+                                       resource.setPath(ResourcePathEnum.RELEASE_SESSION.getPath()
+                                                       + sessionId);
                                        resource.setSessionID(sessionId);
-                                       if(resource.delete() != RESPONSE_SUCCESS){
-                                               LOG.error("JAVA API returns error # "+resource.getInfo());
-                                               responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
+                                       if (resource.delete() != ApplicationConstants.SUCCESS) {
+                                               LOG.error("JAVA API returns error # "
+                                                               + resource.getInfo());
+                                               responseStr = resource.getInfo() != null ? resource
+                                                               .getInfo().toString() : null;
                                                throw new VtnServiceWebAPIException();
                                        }
                                }
-                               if(null == responseStr && !exceptionStatus){
-                                       responseJSON = VtnServiceWebUtil.prepareErrResponseJson(ApplicationConstants.STATUS_OK, ApplicationConstants.STATUS_SUCCESS);
-                               }else{
+                               if (null == responseStr && !exceptionStatus) {
+                                       responseJSON = VtnServiceWebUtil
+                                                       .prepareErrResponseJson(HttpErrorCodeEnum.UNC_STATUS_OK
+                                                                       .getCode());
+                               } else {
                                        responseJSON = new JSONObject(responseStr);
                                }
-                       }catch (Exception exception) {
-                               exceptionStatus = true;
-                               LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));    
-                               throw new VtnServiceWebAPIException(ApplicationConstants.INTERNAL_SERVER_ERROR, ApplicationConstants.DEFAULT_ERROR_DESCRIPTION);
+                       } catch (final JSONException exception) {
+                               LOG.error("VTN Service error occurred : "
+                                               + exception.getMessage());
+                               throw new VtnServiceWebAPIException(
+                                               HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR.getCode());
                        }
-                       
+
                }
+               LOG.trace("Complete VtnServiceWebAPIController#delete()");
                return responseJSON;
        }
-       
+
        /**
-        * Delete.This method will be required when we have to delete any component using Java API. 
-        * This method will work in the following sequence-
-        * Create session 
-        * acquire config mode
-        * calling actual Java API which is requested
-        * release config lock
-        * release session
-        * @param sessionJson the session json
-        * @param resourcePath the resource path
+        * Delete.This method will be required when we have to delete any component
+        * using Java API. This method will work in the following sequence- Create
+        * session acquire config mode calling actual Java API which is requested
+        * release config lock release session
+        * 
+        * @param sessionJson
+        *            the session json
+        * @param resourcePath
+        *            the resource path
         * @return the jSON object
-        * @throws VtnServiceWebAPIException the vtn service web api exception
+        * @throws VtnServiceWebAPIException
+        *             the vtn service web api exception
         */
-       public JSONObject delete(final JsonObject sessionJson,  final String resourcePath) throws VtnServiceWebAPIException {
+       public JSONObject delete(final JsonObject sessionJson,
+                       final String resourcePath) throws VtnServiceWebAPIException {
+               LOG.trace("Start VtnServiceWebAPIController#delete()");
                JSONObject responseJSON = null;
                String responseStr = null;
                long sessionId = 0;
                long configId = 0;
+               boolean exceptionStatus = false;
                final RestResource resource = new RestResource();
-               try{
+               try {
                        LOG.debug("acquiring session id and config mode from java API");
-                       //acquire session id
+                       // acquire session id
                        resource.setPath(ResourcePathEnum.SESSION_PATH.getPath());
-                       if(resource.post(sessionJson) != RESPONSE_SUCCESS){
-                               LOG.error("JAVA API returns error # "+resource.getInfo());
-                               responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
+                       if (resource.post(sessionJson) != ApplicationConstants.SUCCESS) {
+                               LOG.error("JAVA API returns error # " + resource.getInfo());
+                               responseStr = resource.getInfo() != null ? resource.getInfo()
+                                               .toString() : null;
                                throw new VtnServiceWebAPIException();
                        }
-                       sessionId = VtnServiceCommonUtil.getSessionFromJson(resource.getInfo());
-                       //acquire configure mode
+                       sessionId = VtnServiceCommonUtil.getSessionFromJson(resource
+                                       .getInfo());
+                       // acquire configure mode
                        resource.setPath(ResourcePathEnum.ACQUIRE_CONFIG_PATH.getPath());
                        resource.setSessionID(sessionId);
-                       if(resource.post(VtnServiceWebUtil.prepareAquireConfigJSON()) != RESPONSE_SUCCESS){
-                               LOG.error("JAVA API returns error # "+resource.getInfo());
-                               responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
+                       if (resource.post(VtnServiceWebUtil.prepareAquireConfigJSON()) != ApplicationConstants.SUCCESS) {
+                               LOG.error("JAVA API returns error # " + resource.getInfo());
+                               responseStr = resource.getInfo() != null ? resource.getInfo()
+                                               .toString() : null;
+                               throw new VtnServiceWebAPIException();
+                       }
+                       configId = VtnServiceCommonUtil.getConfigIdFromJson(resource
+                                       .getInfo());
+                       responseStr = performAbort(sessionId, configId, resource);
+                       if (responseStr != null) {
                                throw new VtnServiceWebAPIException();
                        }
-                       configId = VtnServiceCommonUtil.getConfigIdFromJson(resource.getInfo());
-                       responseStr = performAbort(sessionId, configId, resource);      
-                       //send the api request json
+                       // send the api request json
                        resource.setPath(resourcePath);
                        resource.setConfigID(configId);
                        resource.setSessionID(sessionId);
                        final int status = resource.delete();
-                       LOG.debug("JAVA API returned error code #"+status);
-                       if(status != RESPONSE_SUCCESS){
-                               LOG.error("JAVA API returns error # "+resource.getInfo());
-                               responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
-                               throw new VtnServiceWebAPIException();//to save the below steps execution
-                       }
-                       responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
-                       LOG.debug("JAVA API returned response # "+responseStr);
-                       //responseStr = performCommit(sessionId, configId, resource);
-                       String commitResponse = performCommit(sessionId, configId, resource);
-                       if(commitResponse != null){
-                                       responseStr = commitResponse;
-                       }
-               }catch (VtnServiceWebAPIException vtnException) {
-                       exceptionStatus = true;
-               }catch (RuntimeException exception) {
+                       LOG.debug("JAVA API returned error code #" + status);
+                       if (status != ApplicationConstants.SUCCESS) {
+                               LOG.error("JAVA API returns error # " + resource.getInfo());
+                               responseStr = resource.getInfo() != null ? resource.getInfo()
+                                               .toString() : null;
+                               throw new VtnServiceWebAPIException();// to save the below steps
+                                                                                                               // execution
+                       }
+                       responseStr = resource.getInfo() != null ? resource.getInfo()
+                                       .toString() : null;
+                       LOG.debug("JAVA API returned response # " + responseStr);
+                       // responseStr = performCommit(sessionId, configId, resource);
+                       final String commitResponse = performCommit(sessionId, configId,
+                                       resource);
+                       if (commitResponse != null) {
+                               responseStr = commitResponse;
+                               throw new VtnServiceWebAPIException();
+                       }
+               } catch (final Exception e) {
+                       LOG.error("VTN Service error occurred : " + e.getMessage());
                        exceptionStatus = true;
-                       LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));    
-                       throw new VtnServiceWebAPIException(ApplicationConstants.INTERNAL_SERVER_ERROR, ApplicationConstants.DEFAULT_ERROR_DESCRIPTION);
-               }
-               finally{
-                       try{
-                               if(configId != ApplicationConstants.ZERO){
-                                       //release monitoring mode
-                                       resource.setPath(ResourcePathEnum.RELEASE_CONFIGURATION.getPath()+configId);
+                       if (!(e instanceof VtnServiceWebAPIException)) {
+                               throw new VtnServiceWebAPIException(
+                                               HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR.getCode());
+                       }
+               } finally {
+                       try {
+                               if (configId != ApplicationConstants.ZERO) {
+                                       // release monitoring mode
+                                       resource.setPath(ResourcePathEnum.RELEASE_CONFIGURATION
+                                                       .getPath() + configId);
                                        resource.setSessionID(sessionId);
                                        resource.setConfigID(configId);
-                                       if(resource.delete() != RESPONSE_SUCCESS){
-                                               LOG.error("JAVA API returns error # "+resource.getInfo());
-                                               responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
+                                       if (resource.delete() != ApplicationConstants.SUCCESS) {
+                                               LOG.error("JAVA API returns error # "
+                                                               + resource.getInfo());
+                                               responseStr = resource.getInfo() != null ? resource
+                                                               .getInfo().toString() : null;
                                                throw new VtnServiceWebAPIException();
                                        }
                                }
-                               if(sessionId != ApplicationConstants.ZERO){
-                                       //release session
-                                       resource.setPath(ResourcePathEnum.RELEASE_SESSION.getPath()+ sessionId);
+                               if (sessionId != ApplicationConstants.ZERO) {
+                                       // release session
+                                       resource.setPath(ResourcePathEnum.RELEASE_SESSION.getPath()
+                                                       + sessionId);
                                        resource.setSessionID(sessionId);
-                                       if(resource.delete() != RESPONSE_SUCCESS){
-                                               LOG.error("JAVA API returns error # "+resource.getInfo());
-                                               responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
+                                       if (resource.delete() != ApplicationConstants.SUCCESS) {
+                                               LOG.error("JAVA API returns error # "
+                                                               + resource.getInfo());
+                                               responseStr = resource.getInfo() != null ? resource
+                                                               .getInfo().toString() : null;
                                                throw new VtnServiceWebAPIException();
                                        }
                                }
-                               if(null == responseStr && !exceptionStatus){
-                                       responseJSON = VtnServiceWebUtil.prepareErrResponseJson(ApplicationConstants.STATUS_OK, ApplicationConstants.STATUS_SUCCESS);
-                               }else{
+                               if (null == responseStr && !exceptionStatus) {
+                                       responseJSON = VtnServiceWebUtil
+                                                       .prepareErrResponseJson(HttpErrorCodeEnum.UNC_STATUS_OK
+                                                                       .getCode());
+                               } else {
                                        responseJSON = new JSONObject(responseStr);
                                }
-                       }catch (Exception exception) {
-                               exceptionStatus = true;
-                               LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));    
-                               throw new VtnServiceWebAPIException(ApplicationConstants.INTERNAL_SERVER_ERROR, ApplicationConstants.DEFAULT_ERROR_DESCRIPTION);
+                       } catch (final JSONException exception) {
+                               LOG.error("VTN Service error occurred : "
+                                               + exception.getMessage());
+                               throw new VtnServiceWebAPIException(
+                                               HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR.getCode());
                        }
-                       
                }
+               LOG.trace("Complete VtnServiceWebAPIController#delete()");
                return responseJSON;
        }
 
        /**
         * Execute commit API for given resource, session and configuration id
+        * 
         * @param responseStr
         * @param sessionId
         * @param configId
@@ -644,26 +806,29 @@ public class VtnServiceWebAPIController {
         * @return : response from JavaAPI
         * @throws VtnServiceWebAPIException
         */
-       private String performCommit(long sessionId, long configId, final RestResource resource)
-                       throws VtnServiceWebAPIException {
-               String responseStr = null ;
+       private String performCommit(long sessionId, long configId,
+                       final RestResource resource) throws VtnServiceWebAPIException {
                LOG.trace("Start VtnServiceWebAPIController#performCommit()");
+               String responseStr = null;
                resource.setPath(ResourcePathEnum.COMMIT_CONFIGURATION.getPath());
                resource.setSessionID(sessionId);
                resource.setConfigID(configId);
-               final int commitStatus = resource.put(VtnServiceWebUtil.prepareConfigCommitOrSaveJSON(ApplicationConstants.OPERATION_COMMIT));
-               if (commitStatus != RESPONSE_SUCCESS) {
-                       LOG.error("JAVA API returns error # "+resource.getInfo());
-                       responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
+               final int commitStatus = resource
+                               .put(VtnServiceWebUtil
+                                               .prepareConfigCommitOrSaveJSON(ApplicationConstants.OPERATION_COMMIT));
+               if (commitStatus != ApplicationConstants.SUCCESS) {
+                       LOG.error("JAVA API returns error # " + resource.getInfo());
+                       responseStr = resource.getInfo() != null ? resource.getInfo()
+                                       .toString() : null;
                        performAbort(sessionId, configId, resource);
-                       throw new VtnServiceWebAPIException();
                }
                LOG.trace("Complete VtnServiceWebAPIController#performCommit()");
                return responseStr;
        }
-       
+
        /**
         * Execute abort API for given resource, session and configuration id
+        * 
         * @param responseStr
         * @param sessionId
         * @param configId
@@ -671,19 +836,21 @@ public class VtnServiceWebAPIController {
         * @return : response from JavaAPI
         * @throws VtnServiceWebAPIException
         */
-       private String performAbort(long sessionId, long configId, final RestResource resource)
-                       throws VtnServiceWebAPIException {
-               String responseStr = null ;
+       private String performAbort(long sessionId, long configId,
+                       final RestResource resource) throws VtnServiceWebAPIException {
                LOG.trace("Start VtnServiceWebAPIController#performAbort()");
+               String responseStr = null;
                resource.setPath(ResourcePathEnum.ABORT_CONFIGURATION.getPath());
                resource.setSessionID(sessionId);
                resource.setConfigID(configId);
-               if (resource.put(VtnServiceWebUtil.prepareCandidateAbortJSON(ApplicationConstants.OPERATION_ABORT)) != RESPONSE_SUCCESS) {
+               if (resource
+                               .put(VtnServiceWebUtil
+                                               .prepareCandidateAbortJSON(ApplicationConstants.OPERATION_ABORT)) != ApplicationConstants.SUCCESS) {
                        LOG.error("JAVA API returns error # " + resource.getInfo());
-                       responseStr = resource.getInfo() != null? resource.getInfo().toString():null;
-                       throw new VtnServiceWebAPIException();
+                       responseStr = resource.getInfo() != null ? resource.getInfo()
+                                       .toString() : null;
                }
                LOG.trace("Complete VtnServiceWebAPIController#performAbort()");
                return responseStr;
-       }       
+       }
 }
index 911624de55467ad567b1412ac407dece908b991b..3abb6623d26cd62bb38da39e0c0299c37ac623ed 100644 (file)
@@ -1,11 +1,12 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
+
 package org.opendaylight.vtn.webapi.services;
 
 import java.io.IOException;
@@ -17,196 +18,363 @@ import org.json.JSONObject;
 
 import com.google.gson.JsonObject;
 import org.opendaylight.vtn.core.util.Logger;
-import org.opendaylight.vtn.webapi.enums.ApplicationConstants;
+import org.opendaylight.vtn.webapi.constants.ApplicationConstants;
+import org.opendaylight.vtn.webapi.enums.ContentTypeEnum;
+import org.opendaylight.vtn.webapi.enums.HttpErrorCodeEnum;
 import org.opendaylight.vtn.webapi.exception.VtnServiceWebAPIException;
 import org.opendaylight.vtn.webapi.pojo.SessionBean;
 import org.opendaylight.vtn.webapi.utils.DataConverter;
 import org.opendaylight.vtn.webapi.utils.VtnServiceCommonUtil;
 import org.opendaylight.vtn.webapi.utils.VtnServiceWebUtil;
 
-
 /**
- * The Class VtnServiceWebAPIHandler.This class is defined at the handler layer where the actual request 
- * object is prepared and validated for the correctness.This class will contain get, post, put , validate and delete 
+ * The Class VtnServiceWebAPIHandler.This class is defined at the handler layer
+ * where the actual request object is prepared and validated for the
+ * correctness.This class will contain get, post, put , validate and delete
  */
 public class VtnServiceWebAPIHandler {
+
        /** The Constant LOGGER. */
-       private static final Logger LOG = Logger.getLogger(VtnServiceWebAPIHandler.class.getName());
-       
-       /** The vtn service web api controller. */
-       private final VtnServiceWebAPIController vtnServiceWebAPIController;
-       
-       /** The resource path. */
-       private String resourcePath;
-       
-       /** The content type. */
-       private String contentType;
-       
-       
-       /**
-        * Instantiates a new vtn service web api controller and latter it will be used for calling the method written for java api call.
-        */
-       public VtnServiceWebAPIHandler() {
-               LOG.trace("Initializing web api handler #VtnServiceWebAPIHandler()");
-               this.vtnServiceWebAPIController = new VtnServiceWebAPIController();
-               LOG.trace("Web api handler initialized successfully #VtnServiceWebAPIHandler()");
-       }
+       private static final Logger LOG = Logger
+                       .getLogger(VtnServiceWebAPIHandler.class.getName());
 
        /**
-        * Get. This method will convert the httprequest to JSON format and then will validate the same for json syntax.
-        * At the same time the count and detail information will be removed from resource path 
-        * it will also decide whether the call is for JSON/XML by passed URI format. 
-        * After getting the response it will convert the same in either format JSON/XML
-        * @param request the request
+        * Get. This method will convert the httprequest to JSON format and then
+        * will validate the same for json syntax. At the same time the count and
+        * detail information will be removed from resource path it will also decide
+        * whether the call is for JSON/XML by passed URI format. After getting the
+        * response it will convert the same in either format JSON/XML
+        * 
+        * @param request
+        *            the request
         * @return the string
-        * @throws VtnServiceWebAPIException the vtn service web api exception
+        * @throws VtnServiceWebAPIException
+        *             the vtn service web api exception
         */
-       public String get(final HttpServletRequest request) throws VtnServiceWebAPIException{
+       public String get(final HttpServletRequest request)
+                       throws VtnServiceWebAPIException {
+               LOG.trace("Start VtnServiceWebAPIHandler#get()");
                JSONObject serviceResponse = null;
                JsonObject serviceRequest = new JsonObject();
                String responseString = null;
-               LOG.trace("GET method of web api handler starts #get()");
-               this.resourcePath = VtnServiceCommonUtil.getResourceURI(request.getRequestURI());
-               this.contentType = VtnServiceCommonUtil.getContentType(request.getRequestURI());
+               String resourcePath = VtnServiceCommonUtil.getResourceURI(request
+                               .getRequestURI());
+               final String contentType = VtnServiceCommonUtil.getContentType(request);
                final Map<String, String[]> paramsMap = request.getParameterMap();
-               serviceRequest = VtnServiceCommonUtil.getOpParameter(serviceRequest, resourcePath);
-               this.resourcePath = VtnServiceCommonUtil.removeCountOrDetailFromURI(this.resourcePath);
+               serviceRequest = VtnServiceCommonUtil.getOpParameter(serviceRequest,
+                               resourcePath);
+               resourcePath = VtnServiceCommonUtil
+                               .removeCountOrDetailFromURI(resourcePath);
+               final VtnServiceWebAPIController vtnServiceWebAPIController = new VtnServiceWebAPIController();
                if (null != paramsMap && !paramsMap.isEmpty()) {
-                       serviceRequest = DataConverter.convertMapToJson(paramsMap, serviceRequest);
-                       serviceResponse = vtnServiceWebAPIController.get(VtnServiceWebUtil.prepareHeaderJson(request), serviceRequest,
-                                       this.resourcePath);
+                       serviceRequest = DataConverter.convertMapToJson(paramsMap,
+                                       serviceRequest);
+                       serviceResponse = vtnServiceWebAPIController.get(
+                                       VtnServiceWebUtil.prepareHeaderJson(request),
+                                       serviceRequest, resourcePath);
                } else {
-                       if (VtnServiceCommonUtil.validateGetAPI(this.resourcePath)) {
-                               serviceResponse = vtnServiceWebAPIController.get(VtnServiceWebUtil.prepareHeaderJson(request), this.resourcePath);
+                       if (VtnServiceCommonUtil.validateGetAPI(resourcePath)) {
+                               serviceResponse = vtnServiceWebAPIController.get(
+                                               VtnServiceWebUtil.prepareHeaderJson(request),
+                                               resourcePath);
                        } else {
-                               serviceResponse = vtnServiceWebAPIController.get(VtnServiceWebUtil.prepareHeaderJson(request), serviceRequest,
-                                               this.resourcePath);
+                               serviceResponse = vtnServiceWebAPIController.get(
+                                               VtnServiceWebUtil.prepareHeaderJson(request),
+                                               serviceRequest, resourcePath);
                        }
                }
-               responseString = DataConverter.getConvertedResponse(serviceResponse, contentType);
-               LOG.trace("GET method of web api handler ends #get()");
-
+               responseString = DataConverter.getConvertedResponse(serviceResponse,
+                               contentType);
+               LOG.debug("responseString : " + responseString);
+               LOG.trace("Complete VtnServiceWebAPIHandler#get()");
                return responseString;
        }
 
-
-       
        /**
-        * Post. This method will convert the httprequest to JSON format and then will validate the same for json syntax 
-        * it will also decide whether the call is for JSON/XML by passed URI format.
-        * will prepare the session json also to take session for api call later. 
-        * After getting the response it will convert the same in either format JSON/XML
-        * @param request the request
+        * Post. This method will convert the httprequest to JSON format and then
+        * will validate the same for json syntax it will also decide whether the
+        * call is for JSON/XML by passed URI format. will prepare the session json
+        * also to take session for api call later. After getting the response it
+        * will convert the same in either format JSON/XML
+        * 
+        * @param request
+        *            the request
         * @return the string
-        * @throws VtnServiceWebAPIException the vtn service web api exception
+        * @throws VtnServiceWebAPIException
+        *             the vtn service web api exception
         */
-       public String post(final HttpServletRequest request) throws VtnServiceWebAPIException{
+       public String post(final HttpServletRequest request)
+                       throws VtnServiceWebAPIException {
+               LOG.trace("Start VtnServiceWebAPIHandler#post()");
                JSONObject serviceResponse = null;
                JsonObject serviceRequest = null;
                String responseString = null;
-               try{
-                       LOG.trace("POST method of web api handler starts #post()");
-                       this.resourcePath = VtnServiceCommonUtil.getResourceURI(request.getRequestURI());
-                       this.contentType =  VtnServiceCommonUtil.getContentType(request.getRequestURI());
-                       serviceRequest = new VtnServiceWebUtil().prepareRequestJson(request, contentType);
-                       JsonObject sessionJson = VtnServiceWebUtil.prepareHeaderJson(request);
-                       serviceResponse =  vtnServiceWebAPIController.post(sessionJson, serviceRequest, this.resourcePath);
-                       responseString = DataConverter.getConvertedResponse(serviceResponse, contentType);
-                       LOG.trace("POST method of web api handler ends #post()");
-               } catch (IOException e) {                       
-                       LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));
-                       throw new VtnServiceWebAPIException(ApplicationConstants.INTERNAL_SERVER_ERROR, ApplicationConstants.DEFAULT_ERROR_DESCRIPTION);
+               try {
+                       final String resourcePath = VtnServiceCommonUtil
+                                       .getResourceURI(request.getRequestURI());
+                       final String contentType = VtnServiceCommonUtil
+                                       .getContentType(request);
+                       serviceRequest = new VtnServiceWebUtil().prepareRequestJson(
+                                       request, contentType);
+                       final JsonObject sessionJson = VtnServiceWebUtil
+                                       .prepareHeaderJson(request);
+                       final VtnServiceWebAPIController vtnServiceWebAPIController = new VtnServiceWebAPIController();
+                       serviceResponse = vtnServiceWebAPIController.post(sessionJson,
+                                       serviceRequest, resourcePath);
+                       responseString = DataConverter.getConvertedResponse(
+                                       serviceResponse, contentType);
+                       LOG.debug("responseString : " + responseString);
+               } catch (final IOException e) {
+                       LOG.error("Internal server error occurred : " + e.getMessage());
+                       throw new VtnServiceWebAPIException(
+                                       HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR.getCode());
                }
-               
+               LOG.trace("Complete VtnServiceWebAPIHandler#post()");
                return responseString;
        }
 
-
        /**
-        * Put. This method will convert the httprequest to JSON format and then will validate the same for json syntax 
-        * it will also decide whether the call is for JSON/XML by passed URI format.
-        * will prepare the session json also to take session for api call later. 
-        * After getting the response it will convert the same in either format JSON/XML
-        * @param request the request
+        * Put. This method will convert the httprequest to JSON format and then
+        * will validate the same for json syntax it will also decide whether the
+        * call is for JSON/XML by passed URI format. will prepare the session json
+        * also to take session for api call later. After getting the response it
+        * will convert the same in either format JSON/XML
+        * 
+        * @param request
+        *            the request
         * @return the string
-        * @throws VtnServiceWebAPIException the vtn service web api exception
+        * @throws VtnServiceWebAPIException
+        *             the vtn service web api exception
         */
-       public String put(final HttpServletRequest request) throws VtnServiceWebAPIException{
+       public String put(final HttpServletRequest request)
+                       throws VtnServiceWebAPIException {
+               LOG.trace("Start VtnServiceWebAPIHandler#put()");
                JSONObject serviceResponse = null;
                JsonObject serviceRequest = null;
                String responseString = null;
-               try{
-                       LOG.trace("PUT method of web api handler starts #put()");
-                       this.resourcePath = VtnServiceCommonUtil.getResourceURI(request.getRequestURI());
-                       this.contentType =  VtnServiceCommonUtil.getContentType(request.getRequestURI());
-                       if (this.resourcePath.equals(ApplicationConstants.ALARMSTR)) {
-                               final Map<String, String[]> paramsMap = request.getParameterMap();
+               try {
+                       final String resourcePath = VtnServiceCommonUtil
+                                       .getResourceURI(request.getRequestURI());
+                       final String contentType = VtnServiceCommonUtil
+                                       .getContentType(request);
+                       if (resourcePath.equals(ApplicationConstants.ALARMSTR)) {
+                               final Map<String, String[]> paramsMap = request
+                                               .getParameterMap();
                                if (null != paramsMap && !paramsMap.isEmpty()) {
                                        serviceRequest = new JsonObject();
-                                       serviceRequest = DataConverter.convertMapToJson(paramsMap, serviceRequest);
+                                       serviceRequest = DataConverter.convertMapToJson(paramsMap,
+                                                       serviceRequest);
                                }
                        } else {
-                               serviceRequest = new VtnServiceWebUtil().prepareRequestJson(request, contentType);                              
+                               serviceRequest = new VtnServiceWebUtil().prepareRequestJson(
+                                               request, contentType);
                        }
-                       serviceResponse =  vtnServiceWebAPIController.put(VtnServiceWebUtil.prepareHeaderJson(request) ,serviceRequest, this.resourcePath);
-                       responseString = DataConverter.getConvertedResponse(serviceResponse, contentType);
-                       LOG.trace("PUT method of web api handler ends #put()");
-               } catch (IOException e) {                       
-                       LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));
-                       throw new VtnServiceWebAPIException(ApplicationConstants.INTERNAL_SERVER_ERROR, ApplicationConstants.DEFAULT_ERROR_DESCRIPTION);
-               } 
-                       return responseString;
+                       final VtnServiceWebAPIController vtnServiceWebAPIController = new VtnServiceWebAPIController();
+                       serviceResponse = vtnServiceWebAPIController.put(
+                                       VtnServiceWebUtil.prepareHeaderJson(request),
+                                       serviceRequest, resourcePath);
+                       responseString = DataConverter.getConvertedResponse(
+                                       serviceResponse, contentType);
+                       LOG.debug("responseString : " + responseString);
+               } catch (final IOException e) {
+                       LOG.error("Internal server error occurred : " + e.getMessage());
+                       throw new VtnServiceWebAPIException(
+                                       HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR.getCode());
                }
-
+               LOG.trace("Complete VtnServiceWebAPIHandler#put()");
+               return responseString;
+       }
 
        /**
-        * Delete. This method will convert the httprequest to JSON format and then will validate the same for json syntax 
-        * it will also decide whether the call is for JSON/XML by passed URI format.
-        * will prepare the session json also to take session for api call later. 
-        * After getting the response it will convert the same in either format JSON/XML
-        * @param request the request
+        * Delete. This method will convert the httprequest to JSON format and then
+        * will validate the same for json syntax it will also decide whether the
+        * call is for JSON/XML by passed URI format. will prepare the session json
+        * also to take session for api call later. After getting the response it
+        * will convert the same in either format JSON/XML
+        * 
+        * @param request
+        *            the request
         * @return the string
-        * @throws VtnServiceWebAPIException the vtn service web api exception
+        * @throws VtnServiceWebAPIException
+        *             the vtn service web api exception
         */
-       public String delete(final HttpServletRequest request) throws VtnServiceWebAPIException{
+       public String delete(final HttpServletRequest request)
+                       throws VtnServiceWebAPIException {
+               LOG.trace("Start VtnServiceWebAPIHandler#delete()");
                JSONObject serviceResponse = null;
                JsonObject serviceRequest = new JsonObject();
-               String responseString = null;                   
-                       LOG.trace("DELETE method of web api handler starts #delete()");
-                       this.resourcePath = VtnServiceCommonUtil.getResourceURI(request.getRequestURI());
-                       this.contentType =  VtnServiceCommonUtil.getContentType(request.getRequestURI());
-                       Map<String, String[]> paramsMap = request.getParameterMap();
-                       if(null != paramsMap && !paramsMap.isEmpty()){
-                               serviceRequest = DataConverter.convertMapToJson(paramsMap, serviceRequest);
-                               serviceResponse =  vtnServiceWebAPIController.delete(VtnServiceWebUtil.prepareHeaderJson(request), serviceRequest, this.resourcePath);
-                       }else{
-                               serviceResponse =  vtnServiceWebAPIController.delete(VtnServiceWebUtil.prepareHeaderJson(request), this.resourcePath);
-                       }
-                       responseString = DataConverter.getConvertedResponse(serviceResponse, contentType);
-                       LOG.trace("DELETE method of web api handler ends#delete()");
+               String responseString = null;
+               final String resourcePath = VtnServiceCommonUtil.getResourceURI(request
+                               .getRequestURI());
+               final String contentType = VtnServiceCommonUtil.getContentType(request);
+               final Map<String, String[]> paramsMap = request.getParameterMap();
+               final VtnServiceWebAPIController vtnServiceWebAPIController = new VtnServiceWebAPIController();
+               if (null != paramsMap && !paramsMap.isEmpty()) {
+                       serviceRequest = DataConverter.convertMapToJson(paramsMap,
+                                       serviceRequest);
+                       serviceResponse = vtnServiceWebAPIController.delete(
+                                       VtnServiceWebUtil.prepareHeaderJson(request),
+                                       serviceRequest, resourcePath);
+               } else {
+                       serviceResponse = vtnServiceWebAPIController.delete(
+                                       VtnServiceWebUtil.prepareHeaderJson(request), resourcePath);
+               }
+               responseString = DataConverter.getConvertedResponse(serviceResponse,
+                               contentType);
+               LOG.debug("responseString : " + responseString);
+               LOG.trace("Complete VtnServiceWebAPIHandler#delete()");
                return responseString;
-       }       
-       
+       }
+
        /**
-        * Validate.This method will validate for the header part coming with the request and check for the authentication and authorization
-        * It will also check for valid URI, if URI is not valid then it will fail the call and return forbidden error.
-        *
-        * @param request the request
-        * @throws VtnServiceWebAPIException the vtn service web api exception
+        * Validate.This method will validate for the header part coming with the
+        * request and check for the authentication and authorization It will also
+        * check for valid URI, if URI is not valid then it will fail the call and
+        * return forbidden error.
+        * 
+        * @param request
+        *            the request
+        * @throws VtnServiceWebAPIException
+        *             the vtn service web api exception
         */
-       public void validate(final HttpServletRequest request) throws VtnServiceWebAPIException {       
-                       LOG.trace("validate method of web api handler starts #validate()");
-                       if(!VtnServiceCommonUtil.validateURI(request.getRequestURI(), request.getContentType())){
-                               throw new VtnServiceWebAPIException(ApplicationConstants.FORBIDDEN_ERROR, VtnServiceCommonUtil.getErrorDescription(ApplicationConstants.FORBIDDEN_ERROR));
+       public void validate(final HttpServletRequest request)
+                       throws VtnServiceWebAPIException {
+               LOG.trace("Start VtnServiceWebAPIHandler#validate()");
+               if (!VtnServiceCommonUtil.validateMediaType(request)) {
+                       LOG.error("Invalid media type");
+                       throw new VtnServiceWebAPIException(
+                                       HttpErrorCodeEnum.UNC_UNSUPPORTED_MEDIA_TYPE.getCode());
+               }
+               
+               // in case of GET method check the validity of Accept header
+               if (request.getMethod().equalsIgnoreCase(
+                               ApplicationConstants.GET_METHOD_NAME)) {
+                       final String acceptHeaderValue = request
+                                       .getHeader(ApplicationConstants.HTTP_HEADER_ACCEPT);
+                       LOG.debug("Accept header's value : " + acceptHeaderValue);
+                       if (acceptHeaderValue != null) {
+                               String acceptHeader[] = acceptHeaderValue
+                                               .split(ApplicationConstants.SEMI_COLON);
+                               if (acceptHeader.length > 0) {
+                                       if (acceptHeader[0]
+                                                       .equalsIgnoreCase(ApplicationConstants.DEFAULT_ACCEPT)
+                                                       || acceptHeader[0]
+                                                                       .equalsIgnoreCase(ContentTypeEnum.APPLICATION_JSON
+                                                                                       .getContentType())
+                                                       || acceptHeader[0]
+                                                                       .equalsIgnoreCase(ContentTypeEnum.APPLICATION_XML
+                                                                                       .getContentType())) {
+                                               LOG.info("Valid value for Accept");
+                                       } else {
+                                               LOG.error("Invalid accept hedare value");
+                                               throw new VtnServiceWebAPIException(
+                                                               HttpErrorCodeEnum.UNC_NOT_ACCEPTABLE.getCode());
+                                       }
+                               } else {
+                                       LOG.error("Invalid accept hedare value");
+                                       throw new VtnServiceWebAPIException(
+                                                       HttpErrorCodeEnum.UNC_NOT_ACCEPTABLE.getCode());
+                               }
+                       }
+               }
+
+               final JsonObject headerInfo = VtnServiceWebUtil
+                               .prepareHeaderJson(request);
+               final SessionBean bean = VtnServiceCommonUtil
+                               .getSessionObject(headerInfo);
+
+               if (!VtnServiceCommonUtil.authoriseUser(bean, request.getMethod())) {
+                       LOG.error("Unautorized user");
+                       throw new VtnServiceWebAPIException(
+                                       HttpErrorCodeEnum.UNC_FORBIDDEN.getCode());
+               }
+
+               // perform extra checks for restriction of XML information in OpenStack
+               // operations
+               if (VtnServiceCommonUtil.isOpenStackResurce(request)) {
+                       restrictXmlforOpenStack(request);
+               }
+
+               LOG.trace("Complete VtnServiceWebAPIHandler#validate()");
+       }
+
+       /**
+        * Check for XML restrictions in Content-Type, Accept and URI extension
+        * 
+        * @param request
+        * @throws VtnServiceWebAPIException
+        */
+       private void restrictXmlforOpenStack(final HttpServletRequest request)
+                       throws VtnServiceWebAPIException {
+               LOG.trace("Start VtnServiceWebAPIHandler#restrictXmlforOpenStack()");
+               if (request.getMethod().equalsIgnoreCase(
+                               ApplicationConstants.POST_METHOD_NAME)
+                               || request.getMethod().equalsIgnoreCase(
+                                               ApplicationConstants.PUT_METHOD_NAME)) {
+                       String contentType = request.getContentType().split(
+                                       ApplicationConstants.SEMI_COLON)[0];
+                       if (contentType.equalsIgnoreCase(ContentTypeEnum.APPLICATION_XML
+                                       .getContentType())) {
+                               LOG.error("Invalid media type for OpenStack operations");
+                               throw new VtnServiceWebAPIException(
+                                               HttpErrorCodeEnum.UNC_UNSUPPORTED_MEDIA_TYPE.getCode());
                        }
-                       final JsonObject headerInfo  = VtnServiceWebUtil.prepareHeaderJson(request);
-                       final SessionBean bean = VtnServiceCommonUtil.getSessionObject(headerInfo);
-                       if(!VtnServiceCommonUtil.authoriseUser(bean, request.getMethod())){
-                               throw new VtnServiceWebAPIException(ApplicationConstants.USER_UNAUTHORISED_ERROR, VtnServiceCommonUtil.getErrorDescription(ApplicationConstants.USER_UNAUTHORISED_ERROR));
+               }
+
+               // in case of GET method check the validity of Accept header
+               if (request.getMethod().equalsIgnoreCase(
+                               ApplicationConstants.GET_METHOD_NAME)) {
+                       final String acceptHeaderValue = request
+                                       .getHeader(ApplicationConstants.HTTP_HEADER_ACCEPT);
+                       LOG.debug("Accept header's value : " + acceptHeaderValue);
+                       if (acceptHeaderValue != null) {
+                               String acceptHeader[] = acceptHeaderValue
+                                               .split(ApplicationConstants.SEMI_COLON);
+                               if (acceptHeader.length > 0) {
+                                       if (acceptHeader[0]
+                                                       .equalsIgnoreCase(ApplicationConstants.DEFAULT_ACCEPT)
+                                                       || acceptHeader[0]
+                                                                       .equalsIgnoreCase(ContentTypeEnum.APPLICATION_JSON
+                                                                                       .getContentType())) {
+                                               LOG.info("Valid value for Accept");
+                                       } else {
+                                               LOG.error("Invalid accept hedare value");
+                                               throw new VtnServiceWebAPIException(
+                                                               HttpErrorCodeEnum.UNC_NOT_ACCEPTABLE.getCode());
+                                       }
+                               } else {
+                                       LOG.error("Invalid accept hedare value");
+                                       throw new VtnServiceWebAPIException(
+                                                       HttpErrorCodeEnum.UNC_NOT_ACCEPTABLE.getCode());
+                               }
                        }
-                       LOG.trace("validate method of web api handler ends #validate()");
+               }
 
+               String requestURI = request.getRequestURI();
+               String finalURI;
+               if (null != requestURI
+                               && requestURI.startsWith(ApplicationConstants.CONTEXTPATH)) {
+                       finalURI = requestURI.replace(ApplicationConstants.CONTEXTPATH,
+                                       ApplicationConstants.BLANK_STR);
+                       final int paramaStartIndex = finalURI
+                                       .indexOf(ApplicationConstants.QUESTION_MARK_CHAR);
+                       if (paramaStartIndex != -1) {
+                               finalURI = finalURI.substring(0, paramaStartIndex);
+                       }
+
+                       final int extensionStartIndex = finalURI
+                                       .lastIndexOf(ApplicationConstants.DOT_REGEX);
+                       if (extensionStartIndex != -1) {
+                               final String extension = finalURI
+                                               .substring(extensionStartIndex);
+                               if (null != extension
+                                               && (extension.equals(ApplicationConstants.TYPE_XML) || extension
+                                                               .equals(ApplicationConstants.TYPE_JSON))) {
+                                       throw new VtnServiceWebAPIException(
+                                                       HttpErrorCodeEnum.UNC_CUSTOM_NOT_FOUND.getCode());
+                               }
+                       }
+               }
+               LOG.trace("Complete VtnServiceWebAPIHandler#restrictXmlforOpenStack()");
        }
-       
-       
 }
diff --git a/coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/services/package-info.java b/coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/services/package-info.java
new file mode 100644 (file)
index 0000000..9832bad
--- /dev/null
@@ -0,0 +1,14 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * Package contains Service handler(Servlet helper) class and controller class for java API call .
+ */
+package org.opendaylight.vtn.webapi.services;
+
index 5504d7eba0168bcfc77e001507307091fb640bb3..ec8434c6199f41318b68b72178c72cd011d19900 100644 (file)
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
+
 package org.opendaylight.vtn.webapi.utils;
 
-import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.util.Properties;
 
 import org.opendaylight.vtn.core.util.Logger;
-import org.opendaylight.vtn.webapi.enums.ApplicationConstants;
+import org.opendaylight.vtn.webapi.constants.ApplicationConstants;
+import org.opendaylight.vtn.webapi.enums.HttpErrorCodeEnum;
 import org.opendaylight.vtn.webapi.exception.VtnServiceWebAPIException;
 
-
 /**
  * The Class ConfigurationManager.
- *
- * This class is used to initialize and Read/Write properties in the config file.
- * Values in config file are stored as key-value pairs.
+ * 
+ * This class is used to initialize and Read/Write properties in the config
+ * file. Values in config file are stored as key-value pairs.
  */
 public final class ConfigurationManager {
-       
+
        /** The Constant LOG. */
-       private static final Logger LOG = Logger.getLogger(ConfigurationManager.class.getName());
+       private static final Logger LOG = Logger
+                       .getLogger(ConfigurationManager.class.getName());
        /** The conf manager. */
        private static ConfigurationManager confManager;
-       
+
        /** The access configuration. */
        private static Properties accessConfiguration;
-       
+
        /** The pwd configuration. */
        private static Properties pwdConfiguration;
 
        /** The web api configuration. */
        private static Properties webAPIConfiguration;
+
        /**
         * Instantiates a new configuration manager.
-        *
-        * @throws VtnServiceWebAPIException the vtn service exception
+        * 
+        * @throws VtnServiceWebAPIException
+        *             the vtn service exception
         */
        private ConfigurationManager() throws VtnServiceWebAPIException {
-               LOG.trace("Initialising Configuration Manager");
+               LOG.trace("Start ConfigurationManager#ConfigurationManager()");
                initConfiguration();
-               LOG.trace("Configuration Manager initialised");
+               LOG.trace("Complete ConfigurationManager#ConfigurationManager()");
        }
-       
+
        /**
         * Gets the single instance of ConfigurationManager.
-        *
+        * 
         * @return single instance of ConfigurationManager
-        * @throws VtnServiceWebAPIException the vtn service exception
+        * @throws VtnServiceWebAPIException
+        *             the vtn service exception
         */
-       public synchronized static ConfigurationManager getInstance() throws VtnServiceWebAPIException {
-               LOG.trace("Getting instance of configuration manager");
-               if(null == confManager){
+       public synchronized static ConfigurationManager getInstance()
+                       throws VtnServiceWebAPIException {
+               LOG.trace("Start ConfigurationManager#getInstance()");
+               if (null == confManager) {
                        confManager = new ConfigurationManager();
-               }       
-               LOG.trace("Returning instance of configuration manager");
+               }
+               LOG.trace("Complete ConfigurationManager#getInstance()");
                return confManager;
        }
-       
+
        /**
-        * Initialize the configuration part and will store the same in configuration objects
-        * @throws VtnServiceWebAPIException the vtn service exception
+        * Initialize the configuration part and will store the same in
+        * configuration objects
+        * 
+        * @throws VtnServiceWebAPIException
+        *             the vtn service exception
         */
-       public static void initConfiguration() throws VtnServiceWebAPIException{
-               LOG.trace("Initilising configuration properties..");
-               try{
+       public static void initConfiguration() throws VtnServiceWebAPIException {
+               LOG.trace("Start ConfigurationManager#initConfiguration()");
+               try {
                        accessConfiguration = new Properties();
-                       accessConfiguration.load(Thread.currentThread().getContextClassLoader().getResourceAsStream(ApplicationConstants.ACCESS_PROPERTY_PATH));
-                       
-                       /*pwdConfiguration = new Properties();
-                       pwdConfiguration.load(Thread.currentThread().getContextClassLoader().getResourceAsStream(ApplicationConstants.PWD_PROPERTY_PATH));*/
-                       
+                       accessConfiguration.load(Thread
+                                       .currentThread()
+                                       .getContextClassLoader()
+                                       .getResourceAsStream(
+                                                       ApplicationConstants.ACCESS_PROPERTY_PATH));
+
+                       pwdConfiguration = new Properties();
+                       pwdConfiguration
+                                       .load(Thread
+                                                       .currentThread()
+                                                       .getContextClassLoader()
+                                                       .getResourceAsStream(
+                                                                       ApplicationConstants.PWD_PROPERTY_PATH));
+
                        webAPIConfiguration = new Properties();
-                       webAPIConfiguration.load(Thread.currentThread().getContextClassLoader().getResourceAsStream(ApplicationConstants.WEBAPI_CONF_PROPERTY_PATH));
-               LOG.trace("configuration properties initialised successfully.");
-               }catch (FileNotFoundException exception) {
-                       LOG.error(exception.getMessage());
-                       throw new VtnServiceWebAPIException(ApplicationConstants.INTERNAL_SERVER_ERROR, VtnServiceCommonUtil.getErrorDescription(ApplicationConstants.INTERNAL_SERVER_ERROR)); 
-               }catch (IOException exception) {
-                       LOG.error(exception.getMessage());
-                       throw new VtnServiceWebAPIException(ApplicationConstants.INTERNAL_SERVER_ERROR, VtnServiceCommonUtil.getErrorDescription(ApplicationConstants.INTERNAL_SERVER_ERROR)); 
+                       webAPIConfiguration.load(Thread
+                                       .currentThread()
+                                       .getContextClassLoader()
+                                       .getResourceAsStream(
+                                                       ApplicationConstants.WEBAPI_CONF_PROPERTY_PATH));
+               } catch (final IOException exception) {
+                       LOG.error("VTN Service configuration initialization error : "
+                                       + exception.getMessage());
+                       throw new VtnServiceWebAPIException(
+                                       HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR.getCode());
                }
+               LOG.trace("Complete ConfigurationManager#initConfiguration()");
        }
-       
-    /**
-     * This method is used to read properties file and returns value based on key.
-     *
-     * @param key - Represents the key for which value to be retrieved.
-     * @return value -  Represents corresponding value fetched from config file.
-     * @throws VtnServiceWebAPIException the vtn service exception
-     */
-       public String getAccessProperty(final String key) throws VtnServiceWebAPIException {
-               LOG.trace("getAccessProperty start # getAccessProperty()");
-               final String value  = accessConfiguration.getProperty(key);
-               //Check if value retrieved is null
+
+       /**
+        * This method is used to read properties file and returns value based on
+        * key.
+        * 
+        * @param key
+        *            - Represents the key for which value to be retrieved.
+        * @return value - Represents corresponding value fetched from config file.
+        * @throws VtnServiceWebAPIException
+        *             the vtn service exception
+        */
+       public String getAccessProperty(final String key)
+                       throws VtnServiceWebAPIException {
+               LOG.trace("Start ConfigurationManager#getAccessProperty()");
+               final String value = accessConfiguration.getProperty(key);
+               // Check if value retrieved is null
                if (null == value || value.isEmpty()) {
-                       throw new VtnServiceWebAPIException(ApplicationConstants.INTERNAL_SERVER_ERROR, VtnServiceCommonUtil.getErrorDescription(ApplicationConstants.INTERNAL_SERVER_ERROR));
+                       LOG.error("Configuration value not found for Key : " + key);
+                       throw new VtnServiceWebAPIException(
+                                       HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR.getCode());
                }
-               LOG.trace("getAccessProperty end # getAccessProperty()");
+               LOG.debug("Key : " + key + " Value : " + value);
+               LOG.trace("Complete ConfigurationManager#getAccessProperty()");
                return value;
        }
-       
+
        /**
         * Gets the pWD resource file property.
-        *
-        * @param key the key
+        * 
+        * @param key
+        *            the key
         * @return the pWD property
-        * @throws VtnServiceWebAPIException the vtn service exception
+        * @throws VtnServiceWebAPIException
+        *             the vtn service exception
         */
-       public String getPWDProperty(final String key) throws VtnServiceWebAPIException {
-               LOG.trace("getPWDProperty start # getPWDProperty()");
-               final String value  = pwdConfiguration.getProperty(key);
-               //Check if value retrieved is null
+       public String getPWDProperty(final String key)
+                       throws VtnServiceWebAPIException {
+               LOG.trace("Start ConfigurationManager#getPWDProperty()");
+               final String value = pwdConfiguration.getProperty(key);
+               // Check if value retrieved is null
                if (null == value || value.isEmpty()) {
-                       LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));
-                       throw new VtnServiceWebAPIException(ApplicationConstants.INTERNAL_SERVER_ERROR, VtnServiceCommonUtil.getErrorDescription(ApplicationConstants.INTERNAL_SERVER_ERROR));
+                       LOG.error("Configuration value not found for Key : " + key);
+                       throw new VtnServiceWebAPIException(
+                                       HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR.getCode());
                }
-               LOG.trace("getPWDProperty end # getPWDProperty()");
+               LOG.debug("Key : " + key + " Value : " + value);
+               LOG.trace("Complete ConfigurationManager#getPWDProperty()");
                return value;
        }
-       
+
        /**
-        * Gets the conf property from webAPIConfiguration object , This object will store the configuration
-        * related to Web API flow only.
-        *
-        * @param key the key
+        * Gets the conf property from webAPIConfiguration object , This object will
+        * store the configuration related to Web API flow only.
+        * 
+        * @param key
+        *            the key
         * @return the conf property
-        * @throws VtnServiceWebAPIException the vtn service web api exception
+        * @throws VtnServiceWebAPIException
+        *             the vtn service web api exception
         */
-       public String getConfProperty(final String key) throws VtnServiceWebAPIException {
-               LOG.trace("getConfProperty start # getConfProperty()");
-               final String value  = webAPIConfiguration.getProperty(key);
-               //Check if value retrieved is null
-               if (null == value || value.isEmpty()) {
-                       LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));
-                       throw new VtnServiceWebAPIException(ApplicationConstants.INTERNAL_SERVER_ERROR, ApplicationConstants.DEFAULT_ERROR_DESCRIPTION);
+       public String getConfProperty(final String key)
+                       throws VtnServiceWebAPIException {
+               LOG.trace("Start ConfigurationManager#getConfProperty()");
+               final String value = webAPIConfiguration.getProperty(key);
+               // Check if value retrieved is null
+               if (null == value) {
+                       throw new VtnServiceWebAPIException(
+                                       HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR.getCode());
                }
-               LOG.trace("getConfProperty end # getConfProperty()");
+               LOG.trace("Complete ConfigurationManager#getConfProperty()");
                return value;
        }
 
        /**
-        * This method will destroy the objects which are still opened or live in the memory to flush out the same
+        * This method will destroy the objects which are still opened or live in
+        * the memory to flush out the same
         */
        @Override
        public void finalize() {
-                confManager = null;
-                accessConfiguration =null;             
-                pwdConfiguration = null;
-                webAPIConfiguration = null;
+               LOG.trace("Start ConfigurationManager#finalize()");
+               confManager = null;
+               accessConfiguration = null;
+               pwdConfiguration = null;
+               webAPIConfiguration = null;
+               LOG.trace("Complete ConfigurationManager#finalize()");
        }
 }
index 1ddc740e5b43653fade4b8fd8d06312a81d11814..bc2533757b32acfb7480c2f0906917eeb9c119a4 100644 (file)
@@ -1,15 +1,17 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
+
 package org.opendaylight.vtn.webapi.utils;
 
 import java.util.Arrays;
 import java.util.Map;
+import java.util.NoSuchElementException;
 import java.util.Random;
 import java.util.Set;
 
@@ -21,115 +23,167 @@ import com.google.gson.JsonObject;
 import com.google.gson.JsonParser;
 import com.google.gson.JsonSyntaxException;
 import org.opendaylight.vtn.core.util.Logger;
-import org.opendaylight.vtn.webapi.enums.ApplicationConstants;
+import org.opendaylight.vtn.webapi.constants.ApplicationConstants;
 import org.opendaylight.vtn.webapi.enums.ContentTypeEnum;
+import org.opendaylight.vtn.webapi.enums.HttpErrorCodeEnum;
 import org.opendaylight.vtn.webapi.exception.VtnServiceWebAPIException;
 
 /**
- * The Class DataConverter.This class will be used for conversion part of request and response as well
- * If the request will be in format of XML then needs to convert it in JSON otherwise the same JSON will be
- * passed as request object
+ * The Class DataConverter.This class will be used for conversion part of
+ * request and response as well If the request will be in format of XML then
+ * needs to convert it in JSON otherwise the same JSON will be passed as request
+ * object
  * 
  */
 public final class DataConverter {
 
        /** The Constant LOG. */
-       private static final Logger LOG = Logger.getLogger(DataConverter.class.getName());
-       
+       private static final Logger LOG = Logger.getLogger(DataConverter.class
+                       .getName());
+
        /**
         * Instantiates a new data converter.
         */
        private DataConverter() {
        }
-       
+
        /**
         * Convert data to json.
-        *
-        * @param rawRequestString the raw data
-        * @param contentType the data type
+        * 
+        * @param rawRequestString
+        *            the raw data
+        * @param contentType
+        *            the data type
         * @return the json object
-        * @throws VtnServiceWebAPIException the vtn service web api exception
+        * @throws VtnServiceWebAPIException
+        *             the vtn service web api exception
         */
-       public static JsonObject getConvertedRequestObject(String rawRequestString, final String contentType) throws VtnServiceWebAPIException{
-               JsonObject convertedObj=null;
-               final JsonParser parser = new JsonParser(); 
-               try{
-               LOG.trace("converting request string to JSON Object #getConvertedRequestObject()");
-               if(ContentTypeEnum.APPLICATION_XML.getContentType().equals(contentType)){
-                       final Random random = new Random();
-                       String randomString = String.valueOf(random.nextInt());
-                       rawRequestString = rawRequestString.replaceAll(ApplicationConstants.DOT_ZERO, randomString + ApplicationConstants.SESSION_TYPE);
-                       org.json.JSONObject jsonObject =  XML.toJSONObject(rawRequestString);
-                       if(ApplicationConstants.vtepgroup.equals(jsonObject.keys().next().toString())){
-                               XMLTransformationUtil.preProcessJson(jsonObject);
+       public static JsonObject getConvertedRequestObject(String rawRequestString,
+                       final String contentType) throws VtnServiceWebAPIException {
+               LOG.trace("Start DataConverter#getConvertedRequestObject()");
+               JsonObject convertedObj = null;
+               final JsonParser parser = new JsonParser();
+               try {
+                       if (ContentTypeEnum.APPLICATION_XML.getContentType().equals(
+                                       contentType)) {
+                               final Random random = new Random();
+                               final String randomString = String.valueOf(random.nextInt());
+                               rawRequestString = rawRequestString.replaceAll(
+                                               ApplicationConstants.DOT_ZERO, randomString
+                                                               + ApplicationConstants.SESSION_TYPE);
+                               final org.json.JSONObject jsonObject = XML
+                                               .toJSONObject(rawRequestString);
+                               if (ApplicationConstants.vtepgroup.equals(jsonObject.keys()
+                                               .next().toString())) {
+                                       XMLTransformationUtil.preProcessJson(jsonObject);
+                               }
+                               LOG.debug("Json before parsing : " + jsonObject);
+                               convertedObj = (JsonObject) parser.parse(jsonObject.toString()
+                                               .replaceAll(
+                                                               randomString
+                                                                               + ApplicationConstants.SESSION_TYPE,
+                                                               ApplicationConstants.DOT_ZERO));
+                       } else if (ContentTypeEnum.APPLICATION_JSON.getContentType()
+                                       .equals(contentType)) {
+                               convertedObj = (JsonObject) parser.parse(rawRequestString);
+                       } else {
+                               LOG.error("Content-Type is not valid");
+                               throw new VtnServiceWebAPIException(
+                                               HttpErrorCodeEnum.UNC_BAD_REQUEST.getCode());
                        }
-                       LOG.debug("Json before parsing : " + jsonObject);
-                       convertedObj =  (JsonObject) parser.parse(jsonObject.toString().replaceAll(randomString + ApplicationConstants.SESSION_TYPE, ApplicationConstants.DOT_ZERO));
-               }else{
-                       convertedObj =  (JsonObject) parser.parse(rawRequestString);
-               }
-               }catch (JsonSyntaxException jsonSyntaxException) {
-                       LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.BAD_REQUEST_ERROR));
-                       throw new VtnServiceWebAPIException(ApplicationConstants.BAD_REQUEST_ERROR, VtnServiceCommonUtil.getErrorDescription(ApplicationConstants.BAD_REQUEST_ERROR));
+                       LOG.debug("Request JSON object for Java API #" + convertedObj);
+               } catch (JsonSyntaxException e) {
+                       LOG.error("Request Syntax Error : " + e);
+                       throw new VtnServiceWebAPIException(
+                                       HttpErrorCodeEnum.UNC_BAD_REQUEST.getCode());
                } catch (JSONException e) {
-                       LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.BAD_REQUEST_ERROR));
-                       throw new VtnServiceWebAPIException(ApplicationConstants.BAD_REQUEST_ERROR, VtnServiceCommonUtil.getErrorDescription(ApplicationConstants.BAD_REQUEST_ERROR));
+                       LOG.error("Request Syntax Error : " + e);
+                       throw new VtnServiceWebAPIException(
+                                       HttpErrorCodeEnum.UNC_BAD_REQUEST.getCode());
+               } catch (NoSuchElementException e) {
+                       LOG.error("Request Syntax Error : " + e);
+                       throw new VtnServiceWebAPIException(
+                                       HttpErrorCodeEnum.UNC_BAD_REQUEST.getCode());
                }
-               LOG.trace("converting request string to JSON Object completed #getConvertedRequestObject()");
-               LOG.trace("Request JSON object for Java API #" +convertedObj);
+               LOG.trace("Complete DataConverter#getConvertedRequestObject()");
                return convertedObj;
        }
-       
+
        /**
         * Convert map to json.
-        *
-        * @param queryStringMap the query string map
+        * 
+        * @param queryStringMap
+        *            the query string map
         * @return the json object
-        * @throws VtnServiceWebAPIException 
+        * @throws VtnServiceWebAPIException
         */
-       public static JsonObject convertMapToJson(final Map<String, String[]> queryStringMap, final JsonObject serviceRequest) throws VtnServiceWebAPIException{
-               LOG.trace("converting query String Map to JSON Object #convertMapToJson()");
-               final Set<String> queryStringKeySet = queryStringMap.keySet(); 
-               JSONObject json = null; 
-               try{
-                       json =  new JSONObject(serviceRequest.toString());
-               for (String key : queryStringKeySet) {
-                       final String[] valueList = queryStringMap.get(key);
-                       if(null != valueList && valueList.length > ApplicationConstants.ONE){
-                               json.put(key, Arrays.asList(valueList));
-                       }else{
-                               json.put(key, valueList[ApplicationConstants.ZERO]);
+       public static JsonObject convertMapToJson(
+                       final Map<String, String[]> queryStringMap,
+                       final JsonObject serviceRequest) throws VtnServiceWebAPIException {
+               LOG.trace("Start DataConverter#convertMapToJson()");
+               JsonObject mapJson = null;
+               final Set<String> queryStringKeySet = queryStringMap.keySet();
+               JSONObject json = null;
+               try {
+                       json = new JSONObject(serviceRequest.toString());
+                       for (final String key : queryStringKeySet) {
+                               final String[] valueList = queryStringMap.get(key);
+                               if (valueList.length == 1
+                                               && valueList[0]
+                                                               .equalsIgnoreCase(ApplicationConstants.BLANK_STR)) {
+                                       LOG.error("URI parameter containing no values : " + key);
+                                       throw new VtnServiceWebAPIException(
+                                                       HttpErrorCodeEnum.UNC_BAD_REQUEST.getCode());
+                               }
+                               if (key.equalsIgnoreCase(ApplicationConstants.OP)
+                                               || key.equalsIgnoreCase(ApplicationConstants.TARGETDB)) {
+                                       LOG.debug("Parameter not required to be added for : " + key);
+                               } else {
+                                       if (null != valueList
+                                                       && valueList.length > ApplicationConstants.ONE) {
+                                               json.put(key, Arrays.asList(valueList));
+                                       } else {
+                                               json.put(key, valueList[ApplicationConstants.ZERO]);
+                                       }
+                               }
                        }
+                       mapJson = (JsonObject) new JsonParser().parse(json.toString());
+                       LOG.debug("Coverted JSON from Map parameters : " + mapJson);
+               } catch (final JSONException e) {
+                       LOG.error("Json syntax error : " + e.getMessage());
+                       throw new VtnServiceWebAPIException(
+                                       HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR.getCode());
                }
-               }catch (JSONException je) {
-                       LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));
-                       throw new VtnServiceWebAPIException(ApplicationConstants.INTERNAL_SERVER_ERROR, VtnServiceCommonUtil.getErrorDescription(ApplicationConstants.INTERNAL_SERVER_ERROR));
-               }
-               LOG.trace("converting query String Map to JSON Object completed#convertMapToJson()");
-               return (JsonObject) new JsonParser().parse(json.toString());
-               
+               LOG.trace("Complete DataConverter#convertMapToJson()");
+               return mapJson;
        }
-       
+
        /**
         * Convert json to xml.
-        *
-        * @param responseJson the response json
-        * @param requiredContentType the required content type
+        * 
+        * @param responseJson
+        *            the response json
+        * @param requiredContentType
+        *            the required content type
         * @return the string
-        * @throws VtnServiceWebAPIException 
+        * @throws VtnServiceWebAPIException
         */
-       public static String getConvertedResponse(final JSONObject responseJson, final String requiredContentType) throws VtnServiceWebAPIException {
+       public static String getConvertedResponse(final JSONObject responseJson,
+                       final String requiredContentType) throws VtnServiceWebAPIException {
+               LOG.trace("Start DataConverter#getConvertedResponse()");
                String responseString = null;
-               LOG.trace("converting response JSON to String #getConvertedResponse()");
-               LOG.debug("Json : " + responseJson);
-               try{
+               LOG.debug("Json : " + responseJson + " Content-type : "
+                               + requiredContentType);
+               try {
                        if (null != responseJson) {
                                responseString = responseJson.toString();
                                // conversion is required only for XML type response type
-                               if (ContentTypeEnum.APPLICATION_XML.getContentType().equals(requiredContentType)) {
+                               if (ContentTypeEnum.APPLICATION_XML.getContentType().equals(
+                                               requiredContentType)) {
                                        // modify the json object to remove null and empty nested
                                        // json and arrays
-                                       JSONObject modifiedJson = new JSONObject(responseJson.toString()
+                                       final JSONObject modifiedJson = new JSONObject(responseJson
+                                                       .toString()
                                                        .replace(ApplicationConstants.NULL_STRING,
                                                                        ApplicationConstants.EMPTY_JSON)
                                                        .replace(ApplicationConstants.EMPTY_JSON,
@@ -137,25 +191,23 @@ public final class DataConverter {
                                                        .replace(ApplicationConstants.EMPTY_JSON_ARRAY,
                                                                        ApplicationConstants.DUMMY_JSON));
                                        LOG.debug("Modified Json : " + modifiedJson.toString());
-                                       String xml = XMLTransformationUtil.convertJsonToXml(modifiedJson);
+                                       final String xml = XMLTransformationUtil
+                                                       .convertJsonToXml(modifiedJson);
                                        LOG.debug("Converted XML : " + xml);
                                        // remove non-required dummy xml attributes
-                                       responseString = XMLTransformationUtil.convertAllAttributesToElements(xml).replace(
+                                       responseString = XMLTransformationUtil
+                                                       .convertAllAttributesToElements(xml).replace(
                                                                        ApplicationConstants.DUMMY_XML,
-                                                                       ApplicationConstants.EMPTY_STRING);
+                                                                       ApplicationConstants.BLANK_STR);
                                }
-                               LOG.debug("Response String : " + responseString);
                        }
-               }catch (JSONException e) {
-                       LOG.error(e.getMessage());
-                       LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));
-                       throw new VtnServiceWebAPIException(ApplicationConstants.INTERNAL_SERVER_ERROR, VtnServiceCommonUtil.getErrorDescription(ApplicationConstants.INTERNAL_SERVER_ERROR));
-               }catch (Exception e) {
-                        LOG.error(e.getMessage());
-                       LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));
-                       throw new VtnServiceWebAPIException(ApplicationConstants.INTERNAL_SERVER_ERROR, VtnServiceCommonUtil.getErrorDescription(ApplicationConstants.INTERNAL_SERVER_ERROR));
+                       LOG.debug("Response String : " + responseString);
+               } catch (final Exception e) {
+                       LOG.error("Internal server error occurred : " + e);
+                       throw new VtnServiceWebAPIException(
+                                       HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR.getCode());
                }
-               LOG.trace("converting response JSON to String completed #getConvertedResponse()");
+               LOG.trace("Complete DataConverter#getConvertedResponse()");
                return responseString;
        }
 }
index 061ddfd1460dc283ef180f2183c3d4f6c23aac02..446f70183c33d34c57ab2abdbf1425360a2ff74a 100644 (file)
@@ -1,11 +1,12 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
+
 package org.opendaylight.vtn.webapi.utils;
 
 import org.opendaylight.vtn.core.util.Logger;
@@ -18,65 +19,69 @@ import org.opendaylight.vtn.webapi.exception.VtnServiceWebAPIException;
 public final class InitManager {
 
        /** The Constant LOG. */
-       private static final Logger LOG = Logger.getLogger(InitManager.class.getName());
+       private static final Logger LOG = Logger.getLogger(InitManager.class
+                       .getName());
        /** The init manager. */
        private static InitManager initMngr;
-       
+
        /**
         * Instantiates a new inits the manager.
-        *
-        * @throws VtnServiceWebAPIException the vtn service exception
+        * 
+        * @throws VtnServiceWebAPIException
+        *             the vtn service exception
         */
        private InitManager() throws VtnServiceWebAPIException {
-               LOG.trace("Initilizing configurtation and java api #InitManager");
+               LOG.trace("Start InitManager#InitManager()");
                initializeConfiguration();
-               initializeJavaAPI();    
-               LOG.trace("Configurtation and java api initialized successfully #InitManager()");
+               initializeJavaAPI();
+               LOG.trace("Complete InitManager#InitManager()");
        }
-       
+
        /**
         * Initialize.
-        *
+        * 
         * @return the inits the manager
-        * @throws VtnServiceWebAPIException the vtn service exception
+        * @throws VtnServiceWebAPIException
+        *             the vtn service exception
         */
-       public synchronized static InitManager initialize() throws VtnServiceWebAPIException {
-               LOG.trace("creating single instance for initManager #initialize()");
-               if(initMngr == null){
+       public synchronized static InitManager initialize()
+                       throws VtnServiceWebAPIException {
+               LOG.trace("Start InitManager#initialize()");
+               if (initMngr == null) {
                        initMngr = new InitManager();
                }
+               LOG.trace("Complete InitManager#initialize()");
                return initMngr;
        }
-       
-       
+
        /**
         * Initialize java api.
         */
        private void initializeJavaAPI() {
-               LOG.trace("Initializing Java API #initializeJavaAPI()");
+               LOG.trace("Start InitManager#initializeJavaAPI()");
                VtnServiceInitManager.init();
-               LOG.trace("Java API Initialized #initializeJavaAPI()");
+               LOG.trace("Complete InitManager#initializeJavaAPI()");
        }
-       
-       
 
        /**
         * Initialize configuration.
-        *
-        * @throws VtnServiceWebAPIException the vtn service web api exception
+        * 
+        * @throws VtnServiceWebAPIException
+        *             the vtn service web api exception
         */
        private void initializeConfiguration() throws VtnServiceWebAPIException {
-               LOG.trace("Initializing web API configuration #initializeConfiguration()");
+               LOG.trace("Start InitManager#initializeConfiguration()");
                ConfigurationManager.initConfiguration();
-               LOG.trace("Initializing web API configuration #initializeConfiguration()");
+               LOG.trace("Complete InitManager#initializeConfiguration()");
        }
-       
 
        /**
         * This method will free the memory which is used by init manager instance
         */
        @Override
        public void finalize() {
+               LOG.trace("Start InitManager#finalize()");
                initMngr = null;
+               LOG.trace("Complete InitManager#finalize()");
        }
 }
index 4ba5180d98e0c1924e655d5a097ef496ac6f1d57..49993eacd06ecb0fe0b71e68c555356b35f555aa 100644 (file)
@@ -1,20 +1,26 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
+
 package org.opendaylight.vtn.webapi.utils;
 
 import java.util.Arrays;
 import java.util.List;
 
+import javax.servlet.http.HttpServletRequest;
+
 import com.google.gson.JsonObject;
 import org.opendaylight.vtn.core.util.Logger;
-import org.opendaylight.vtn.webapi.enums.ApplicationConstants;
+import org.opendaylight.vtn.javaapi.RestResource;
+import org.opendaylight.vtn.javaapi.resources.AbstractResource;
+import org.opendaylight.vtn.webapi.constants.ApplicationConstants;
 import org.opendaylight.vtn.webapi.enums.ContentTypeEnum;
+import org.opendaylight.vtn.webapi.enums.HttpErrorCodeEnum;
 import org.opendaylight.vtn.webapi.enums.SessionEnum;
 import org.opendaylight.vtn.webapi.exception.VtnServiceWebAPIException;
 import org.opendaylight.vtn.webapi.pojo.SessionBean;
@@ -23,342 +29,457 @@ import org.opendaylight.vtn.webapi.pojo.SessionBean;
  * The Class VtnServiceCommonUtil.
  */
 public final class VtnServiceCommonUtil {
-       
+
        /** The Constant LOG. */
-       private static final Logger LOG = Logger.getLogger(VtnServiceCommonUtil.class.getName());
+       private static final Logger LOG = Logger
+                       .getLogger(VtnServiceCommonUtil.class.getName());
 
        /**
         * Instantiates a new vtn service common util.
         */
        private VtnServiceCommonUtil() {
-               
        }
+
        /**
-        * Method getErrorDescription - Below method is used to get error description based on error code.
-        *
-        * @param errorCode the error code
+        * Method getErrorDescription - Below method is used to get error
+        * description based on error code.
+        * 
+        * @param errorCode
+        *            the error code
+        * @param description
+        *            the description
         * @return String
-        * @throws VtnServiceWebAPIException the vtn service exception
         */
-       public static String getErrorDescription(final String errorCode) throws VtnServiceWebAPIException {
-               LOG.trace(" Getting error description on the basis of error code #getErrorDescription()");
-               return ConfigurationManager.getInstance().getConfProperty(ApplicationConstants.VTN_ERRORCODE_PREFIX + errorCode);
+       public static String logErrorDetails(final int errorCode) {
+               LOG.trace("Start VtnServiceCommonUtil#logErrorDetails()");
+               final String errorDetails = new StringBuilder().append(errorCode)
+                               .append(ApplicationConstants.HYPHEN)
+                               .append(getErrorMessage(errorCode)).toString();
+               LOG.error(errorDetails);
+               LOG.trace("Complete VtnServiceCommonUtil#logErrorDetails()");
+               return errorDetails;
        }
-  
+
        /**
-        * Method getErrorDescription - Below method is used to get error description based on error code.
-        *
-        * @param errorCode the error code
-        * @param description the description
-        * @return String
+        * @param errorCode
+        * @return
         */
-       public static String logErrorDetails(final String errorCode) {
-               LOG.trace(" Getting error description by appending error code and description #getErrorDescription()");
-               String errorDetails = null;
-               try{
-                       errorDetails = new StringBuilder().append(errorCode).append("-").append(ConfigurationManager.getInstance().getConfProperty(ApplicationConstants.VTN_ERRORCODE_PREFIX + errorCode)).toString();
-               }catch (Exception e) {
-                       LOG.error(logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));
+       public static String getErrorMessage(final int errorCode) {
+               String errorMessage;
+               if (errorCode == HttpErrorCodeEnum.UNC_BAD_REQUEST.getCode()) {
+                       errorMessage = HttpErrorCodeEnum.UNC_BAD_REQUEST.getMessage();
+               } else if (errorCode == HttpErrorCodeEnum.UNC_FORBIDDEN.getCode()) {
+                       errorMessage = HttpErrorCodeEnum.UNC_FORBIDDEN.getMessage();
+               } else if (errorCode == HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR
+                               .getCode()) {
+                       errorMessage = HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR
+                                       .getMessage();
+               } else if (errorCode == HttpErrorCodeEnum.UNC_METHOD_NOT_ALLOWED
+                               .getCode()) {
+                       errorMessage = HttpErrorCodeEnum.UNC_METHOD_NOT_ALLOWED
+                                       .getMessage();
+               } else if (errorCode == HttpErrorCodeEnum.UNC_NOT_ACCEPTABLE.getCode()) {
+                       errorMessage = HttpErrorCodeEnum.UNC_NOT_ACCEPTABLE.getMessage();
+               } else if (errorCode == HttpErrorCodeEnum.UNC_NOT_FOUND.getCode()) {
+                       errorMessage = HttpErrorCodeEnum.UNC_NOT_FOUND.getMessage();
+               } else if (errorCode == HttpErrorCodeEnum.UNC_SERVICE_UNAVAILABLE
+                               .getCode()) {
+                       errorMessage = HttpErrorCodeEnum.UNC_SERVICE_UNAVAILABLE
+                                       .getMessage();
+               } else if (errorCode == HttpErrorCodeEnum.UNC_STATUS_OK.getCode()) {
+                       errorMessage = HttpErrorCodeEnum.UNC_STATUS_OK.getMessage();
+               } else if (errorCode == HttpErrorCodeEnum.UNC_UNAUTHORIZED.getCode()) {
+                       errorMessage = HttpErrorCodeEnum.UNC_UNAUTHORIZED.getMessage();
+               } else if (errorCode == HttpErrorCodeEnum.UNC_UNSUPPORTED_MEDIA_TYPE
+                               .getCode()) {
+                       errorMessage = HttpErrorCodeEnum.UNC_UNSUPPORTED_MEDIA_TYPE
+                                       .getMessage();
+               } else {
+                       errorMessage = HttpErrorCodeEnum.UNC_INTERNAL_SERVER_ERROR
+                                       .getMessage();
                }
-               return errorDetails;
+               return errorMessage;
        }
-       
-       
+
        /**
-        * Authenticate user.
-        *
-        * @param headerInfo the header info
-        * @param httpMethod the http method
+        * Authorize user.
+        * 
+        * @param bean
+        *            the bean
+        * @param httpMethod
+        *            the http method
         * @return true, if successful
-        * @throws VtnServiceWebAPIException the vtn service exception
+        * @throws VtnServiceWebAPIException
+        *             the vtn service web api exception
         */
-    /*public static boolean authenticateUser(final JsonObject headerInfo, final String httpMethod) throws VtnServiceWebAPIException{
-       LOG.trace(" Authenticating user  #authenticateUser() :starts");
-       boolean authenticationStatus= false;            
-       String role = null;
-       String password = null;
-       final SessionBean bean = getSessionObject(headerInfo);
-               final ConfigurationManager configurationManager = ConfigurationManager.getInstance();
-               final String roleAndPassString = configurationManager.getPWDProperty(bean.getUserName());
-               if(null != roleAndPassString && !roleAndPassString.isEmpty() && roleAndPassString.indexOf(ApplicationConstants.COLON) != -1){
-                       String[] roleAndPassArr = roleAndPassString.split(ApplicationConstants.COLON);
-                       role = roleAndPassArr[ApplicationConstants.ZERO];
-                       password = roleAndPassArr[ApplicationConstants.ONE];
-               }
-               if(authoriseUser(bean, httpMethod)){
-                       authenticationStatus = checkRoleAccessability(role, httpMethod, password, bean);
-               }
-               LOG.trace(" Authenticating user  #authenticateUser() :ends");
-       return authenticationStatus;
-       }*/
-    
-    /**
-     * Authorise user.
-     *
-     * @param bean the bean
-     * @param httpMethod the http method
-     * @return true, if successful
-     * @throws VtnServiceWebAPIException the vtn service web api exception
-     */
-    public static boolean authoriseUser(SessionBean bean,  String httpMethod) throws VtnServiceWebAPIException{
-       boolean ipStatus = false;
-       ConfigurationManager configurationManager = ConfigurationManager.getInstance();
-       LOG.trace(" Authorizinging user  #authoriseUser() : starts");
-               final String ipAddresses =  configurationManager.getAccessProperty(ApplicationConstants.ACCESS_ALL);
-               final String httpMethodAccessIpAddress = configurationManager.getAccessProperty(httpMethod.toUpperCase());
-               if(ipAddresses != null && ApplicationConstants.WILD_CARD_STAR.equals(ipAddresses.trim())){
+       public static boolean authoriseUser(SessionBean bean, String httpMethod)
+                       throws VtnServiceWebAPIException {
+               LOG.trace("Start VtnServiceCommonUtil#authoriseUser()");
+               boolean ipStatus = false;
+               final ConfigurationManager configurationManager = ConfigurationManager
+                               .getInstance();
+               final String ipAddresses = configurationManager
+                               .getAccessProperty(ApplicationConstants.ACCESS_ALL);
+               LOG.debug("Authorized IP Address from Configuration : " + ipAddresses);
+               final String httpMethodAccessIpAddress = configurationManager
+                               .getAccessProperty(httpMethod.toUpperCase());
+               LOG.debug("Authorized methods from Configuration : " + ipAddresses);
+
+               if (ipAddresses != null
+                               && ApplicationConstants.WILD_CARD_STAR.equals(ipAddresses
+                                               .trim())) {
                        ipStatus = true;
-               }
-               else if(ipAddresses.indexOf(bean.getIpAddress()) != -1){
+               } else if (ipAddresses.indexOf(bean.getIpAddress()) != -1) {
                        ipStatus = true;
-               }
-               else if(null != httpMethodAccessIpAddress && !httpMethodAccessIpAddress.isEmpty() && ApplicationConstants.WILD_CARD_STAR.equals(httpMethodAccessIpAddress.trim())){
+               } else if (null != httpMethodAccessIpAddress
+                               && !httpMethodAccessIpAddress.isEmpty()
+                               && ApplicationConstants.WILD_CARD_STAR
+                                               .equals(httpMethodAccessIpAddress.trim())) {
                        ipStatus = true;
-               }
-               else if(null != httpMethodAccessIpAddress && !httpMethodAccessIpAddress.isEmpty() && httpMethodAccessIpAddress.indexOf(bean.getIpAddress()) != -1){
+               } else if (null != httpMethodAccessIpAddress
+                               && !httpMethodAccessIpAddress.isEmpty()
+                               && httpMethodAccessIpAddress.indexOf(bean.getIpAddress()) != -1) {
                        ipStatus = true;
                }
-               
-       LOG.trace(" Authorizinging user  #authoriseUser() : ends");
-       return ipStatus;
-       }
-
 
-    /**
-     * Check role accessability.
-     *
-     * @param role the role
-     * @param httpMethod the http method
-     * @param password the password
-     * @param bean the bean
-     * @return true, if successful
-     * @throws VtnServiceWebAPIException the vtn service web api exception
-     */
-   /* private static boolean checkRoleAccessability(final String role, final String httpMethod, final String password, final SessionBean bean) throws VtnServiceWebAPIException {
-       LOG.trace("Validating role and accessability of the user : starts");
-       boolean authenticationStatus = false;
-       if(VtnServiceWebUtil.checkStringForNullOrEmpty(role) && ApplicationConstants.ROLE_ADMIN.equals(role) && (VtnServiceWebUtil.checkStringForNullOrEmpty(password) && password.equals(convertPasswordStrToMd5Str(bean.getPassword())))){
-                       authenticationStatus = true;
-               }else if(VtnServiceWebUtil.checkStringForNullOrEmpty(role) && ApplicationConstants.ROLE_OPERATOR.equals(role) && httpMethod.equalsIgnoreCase(ApplicationConstants.HTTP_GET) && (VtnServiceWebUtil.checkStringForNullOrEmpty(password) && password.equals(bean.getPassword()))){
-                       authenticationStatus = true;
-               }
-       LOG.trace("Validating role and accessability of the user : ends");
-       return authenticationStatus;
-       }*/
+               LOG.debug("Authorize User Result : " + ipStatus);
+               LOG.trace("Complete VtnServiceCommonUtil#authoriseUser()");
+               return ipStatus;
+       }
 
        /**
         * Gets the session from json.
-        *
-        * @param sessionObjRes the session obj res
+        * 
+        * @param sessionObjRes
+        *            the session obj res
         * @return the session from json
         */
        public static long getSessionFromJson(final JsonObject sessionObjRes) {
-               LOG.trace("Getting session id from recieved session Json response : starts");
+               LOG.trace("Start VtnServiceCommonUtil#getSessionFromJson()");
                long sessionID = -1;
-               if(null != sessionObjRes){
-                       JsonObject sessionJson = sessionObjRes.getAsJsonObject(ApplicationConstants.SESSION_OBJECT);
-                       sessionID = null != sessionJson && sessionJson.has(ApplicationConstants.SESSION_ID_STR) ? sessionJson.getAsJsonPrimitive(ApplicationConstants.SESSION_ID_STR).getAsLong() : -1;
+               if (null != sessionObjRes) {
+                       final JsonObject sessionJson = sessionObjRes
+                                       .getAsJsonObject(ApplicationConstants.SESSION);
+
+                       if (null != sessionJson
+                                       && sessionJson.has(ApplicationConstants.SESSION_ID_STR)) {
+                               sessionID = sessionJson.getAsJsonPrimitive(
+                                               ApplicationConstants.SESSION_ID_STR).getAsLong();
+                       }
                }
-               LOG.trace("Getting session id from recieved session Json response : ends");
+               LOG.debug("Session Id : " + sessionID);
+               LOG.trace("Complete VtnServiceCommonUtil#getSessionFromJson()");
                return sessionID;
        }
 
        /**
         * Gets the config id from json.
-        *
-        * @param configObjRes the config obj res
+        * 
+        * @param configObjRes
+        *            the config obj res
         * @return the config id from json
         */
        public static long getConfigIdFromJson(final JsonObject configObjRes) {
-               LOG.trace("Getting config id from recieved config Json response : starts");
+               LOG.trace("Start VtnServiceCommonUtil#getConfigIdFromJson()");
                long configID = -1;
-               if(null != configObjRes){
-                       JsonObject configModeJson = configObjRes.getAsJsonObject(ApplicationConstants.CONFIG_MODE);
-                       configID = null != configModeJson && configModeJson.has(ApplicationConstants.CONFIG_ID_STR) ? configModeJson.getAsJsonPrimitive(ApplicationConstants.CONFIG_ID_STR).getAsInt() : -1;
+               if (null != configObjRes) {
+                       final JsonObject configModeJson = configObjRes
+                                       .getAsJsonObject(ApplicationConstants.CONFIG_MODE);
+
+                       if (null != configModeJson
+                                       && configModeJson.has(ApplicationConstants.CONFIG_ID_STR)) {
+                               configID = configModeJson.getAsJsonPrimitive(
+                                               ApplicationConstants.CONFIG_ID_STR).getAsInt();
+                       }
                }
-               LOG.trace("Getting config id from recieved config Json response : ends");
+               LOG.debug("Config Id : " + configID);
+               LOG.trace("Complete VtnServiceCommonUtil#getConfigIdFromJson()");
                return configID;
        }
-       
+
        /**
         * Gets the content type.
-        *
-        * @param uri the uri
+        * 
+        * @param uri
+        *            the uri
         * @return the content type
         */
-       public static String getContentType(final String uri) {
-               LOG.trace("Getting content type from URI : starts");
-               String contentType = ContentTypeEnum.APPLICATION_JSON.getContentType();
-               if(null != uri && (uri.endsWith(ApplicationConstants.TYPE_XML))){
-                       contentType = ContentTypeEnum.APPLICATION_XML.getContentType();
+       public static String getContentType(final HttpServletRequest request) {
+               LOG.trace("Start VtnServiceCommonUtil#getContentType()");
+
+               String contentType = null;
+               LOG.debug("Http Method : " + request.getMethod());
+               if (request.getMethod().equalsIgnoreCase(
+                               ApplicationConstants.GET_METHOD_NAME)
+                               || request.getMethod().equalsIgnoreCase(
+                                               ApplicationConstants.DELETE_METHOD_NAME)) {
+                       final String requestURI = request.getRequestURI();
+                       if (requestURI.lastIndexOf(ApplicationConstants.DOT_REGEX) != -1) {
+                               String extension = requestURI.substring(requestURI
+                                               .lastIndexOf(ApplicationConstants.DOT_REGEX));
+                               if (extension.indexOf(ApplicationConstants.QUESTION_MARK_CHAR) != -1) {
+                                       extension = extension.substring(0, extension.indexOf("?"));
+                               }
+                               if (null != extension
+                                               && (extension
+                                                               .equalsIgnoreCase(ApplicationConstants.TYPE_XML) || extension
+                                                               .equalsIgnoreCase(ApplicationConstants.TYPE_JSON))) {
+                                       if (extension
+                                                       .equalsIgnoreCase(ApplicationConstants.TYPE_XML)) {
+                                               contentType = ContentTypeEnum.APPLICATION_XML
+                                                               .getContentType();
+                                       } else if (extension
+                                                       .equalsIgnoreCase(ApplicationConstants.TYPE_JSON)) {
+                                               contentType = ContentTypeEnum.APPLICATION_JSON
+                                                               .getContentType();
+                                       }
+                               }
+                       }
+                       
+                       if (null == contentType) {
+                               final String acceptHeaderValue = request
+                                               .getHeader(ApplicationConstants.HTTP_HEADER_ACCEPT);
+                               if (acceptHeaderValue != null) {
+                                       String acceptHeader[] = acceptHeaderValue
+                                                       .split(ApplicationConstants.SEMI_COLON);
+                                       if (acceptHeader.length > 0
+                                                       && !acceptHeader[0]
+                                                                       .equalsIgnoreCase(ApplicationConstants.DEFAULT_ACCEPT)) {
+                                               if (acceptHeader[0]
+                                                               .equalsIgnoreCase(ContentTypeEnum.APPLICATION_JSON
+                                                                               .getContentType())
+                                                               || acceptHeader[0]
+                                                                               .equalsIgnoreCase(ContentTypeEnum.APPLICATION_XML
+                                                                                               .getContentType())) {
+                                                       contentType = acceptHeader[0];
+                                               }
+                                       }
+                               }
+                       }
+                       
+                       if (null == contentType) {
+                               contentType = ContentTypeEnum.APPLICATION_JSON.getContentType();
+                       }
+               } else {
+                       contentType = request.getContentType();
+                       if (contentType != null) {
+                               String content[] = contentType
+                                               .split(ApplicationConstants.SEMI_COLON);
+                               if (content.length > 0) {
+                                       contentType = content[0];
+                               } else {
+                                       contentType = ContentTypeEnum.APPLICATION_JSON
+                                                       .getContentType();
+                               }
+                       }
                }
-               LOG.trace("Getting content type from URI : ends");
-               LOG.trace("Getting content type from URI :"+contentType);
+               LOG.debug("Content-Type : " + contentType);
+               LOG.trace("Complete VtnServiceCommonUtil#getContentType()");
                return contentType;
        }
-       
+
        /**
         * Validate uri.
-        *
-        * @param uri the uri
-        * @param contentType the content type
+        * 
+        * @param uri
+        *            the uri
+        * @param contentType
+        *            the content type
         * @return true, if successful
         */
-       public static boolean validateURI(final String uri, final String contentType){
-               LOG.trace("validation for URI : starts");
-               LOG.debug("uri : " + uri + " content-type : " + contentType);
-               boolean uriStatus = false;
-               if(null != uri && (uri.endsWith(ApplicationConstants.TYPE_XML) || uri.endsWith(ApplicationConstants.TYPE_JSON))){
-                       uriStatus =  true;
-               }
-               if(uriStatus && (ContentTypeEnum.APPLICATION_JSON.getContentType().equals(contentType) || ContentTypeEnum.APPLICATION_XML.getContentType().equals(contentType))){
-                       uriStatus =  true;
-               }else{
-                       uriStatus =  false;
+       public static boolean validateMediaType(final HttpServletRequest request) {
+               LOG.trace("Start VtnServiceCommonUtil#validateMediaType()");
+               boolean isMediaTypeCorrect = true;
+               if (request.getMethod().equalsIgnoreCase(
+                               ApplicationConstants.POST_METHOD_NAME)
+                               || request.getMethod().equalsIgnoreCase(
+                                               ApplicationConstants.PUT_METHOD_NAME)) {
+                       isMediaTypeCorrect = false;
+                       String contentType = request.getContentType();
+                       if (contentType != null) {
+                               String content[] = contentType
+                                               .split(ApplicationConstants.SEMI_COLON);
+                               if (content.length > 0
+                                               && (content[0]
+                                                               .equalsIgnoreCase(ContentTypeEnum.APPLICATION_JSON
+                                                                               .getContentType()) || content[0]
+                                                               .equalsIgnoreCase(ContentTypeEnum.APPLICATION_XML
+                                                                               .getContentType()))) {
+                                       isMediaTypeCorrect = true;
+                               }
+                       }
                }
-               LOG.debug("uri : " + uri + " content-type : " + contentType);
-               LOG.trace("validation for URI : ends");
-               return uriStatus;
+               LOG.debug("Valid Media Type : " + isMediaTypeCorrect);
+               LOG.trace("Complete VtnServiceCommonUtil#validateMediaType()");
+               return isMediaTypeCorrect;
        }
-       
+
        /**
         * Gets the session object.
-        *
-        * @param sessionJson the session json
+        * 
+        * @param sessionJson
+        *            the session json
         * @return the session object
-        * @throws VtnServiceWebAPIException the vtn service web api exception
+        * @throws VtnServiceWebAPIException
+        *             the vtn service web api exception
         */
-       public static SessionBean getSessionObject(final JsonObject sessionJson) throws VtnServiceWebAPIException{
-               LOG.trace("Preparing session object : starts");
-               SessionBean sessionBean = new SessionBean();
-               List<String> mandatoryList = Arrays.asList(SessionEnum.USERNAME.getSessionElement(), SessionEnum.PASSWORD.getSessionElement(), SessionEnum.IPADDRESS.getSessionElement());
-               JsonObject sessionJsonObj = (JsonObject) sessionJson.get(ApplicationConstants.SESSION_OBJECT);
-               for (String value : mandatoryList) {
-                       if(!sessionJsonObj.has(value) || null == sessionJsonObj.get(value)){
-                               throw new VtnServiceWebAPIException(ApplicationConstants.BAD_REQUEST_ERROR, VtnServiceCommonUtil.getErrorDescription(ApplicationConstants.BAD_REQUEST_ERROR));
+       public static SessionBean getSessionObject(final JsonObject sessionJson)
+                       throws VtnServiceWebAPIException {
+               LOG.trace("Start VtnServiceCommonUtil#getSessionObject()");
+               final SessionBean sessionBean = new SessionBean();
+               final List<String> mandatoryList = Arrays.asList(
+                               SessionEnum.USERNAME.getSessionElement(),
+                               SessionEnum.PASSWORD.getSessionElement(),
+                               SessionEnum.IPADDRESS.getSessionElement());
+               final JsonObject sessionJsonObj = (JsonObject) sessionJson
+                               .get(ApplicationConstants.SESSION);
+
+               for (final String value : mandatoryList) {
+                       if (!sessionJsonObj.has(value) || null == sessionJsonObj.get(value)) {
+                               throw new VtnServiceWebAPIException(
+                                               HttpErrorCodeEnum.UNC_UNAUTHORIZED.getCode());
                        }
                }
-               sessionBean.setUserName(sessionJsonObj.get(SessionEnum.USERNAME.getSessionElement()) != null ?sessionJsonObj.get(SessionEnum.USERNAME.getSessionElement()).getAsString() : null );
-               sessionBean.setPassword(sessionJsonObj.get(SessionEnum.PASSWORD.getSessionElement()) != null ?sessionJsonObj.get(SessionEnum.PASSWORD.getSessionElement()).getAsString() : null );
-               sessionBean.setIpAddress(sessionJsonObj.get(SessionEnum.IPADDRESS.getSessionElement()) != null ?sessionJsonObj.get(SessionEnum.IPADDRESS.getSessionElement()).getAsString() : null );
-               sessionBean.setLoginName(sessionJsonObj.get(SessionEnum.LOGINNAME.getSessionElement()) != null ?sessionJsonObj.get(SessionEnum.LOGINNAME.getSessionElement()).getAsString() : null );
-               sessionBean.setInformation(sessionJsonObj.get(SessionEnum.INFO.getSessionElement()) != null ?sessionJsonObj.get(SessionEnum.INFO.getSessionElement()).getAsString() : null );
+               sessionBean.setUserName(sessionJsonObj.get(SessionEnum.USERNAME
+                               .getSessionElement()) != null ? sessionJsonObj.get(
+                               SessionEnum.USERNAME.getSessionElement()).getAsString() : null);
+               sessionBean.setPassword(sessionJsonObj.get(SessionEnum.PASSWORD
+                               .getSessionElement()) != null ? sessionJsonObj.get(
+                               SessionEnum.PASSWORD.getSessionElement()).getAsString() : null);
+               sessionBean
+                               .setIpAddress(sessionJsonObj.get(SessionEnum.IPADDRESS
+                                               .getSessionElement()) != null ? sessionJsonObj.get(
+                                               SessionEnum.IPADDRESS.getSessionElement())
+                                               .getAsString() : null);
+
                sessionBean.setType(ApplicationConstants.SESSION_TYPE);
-               LOG.trace("Preparing session object : ends");
+
+               LOG.debug("Username : " + sessionBean.getUserName());
+               LOG.debug("Password : " + sessionBean.getPassword());
+               LOG.debug("Type : " + sessionBean.getType());
+
+               LOG.trace("Complete VtnServiceCommonUtil#getSessionObject()");
                return sessionBean;
-       
+
        }
-       
+
        /**
         * Gets the resource uri.
-        *
-        * @param requestURI the request uri
+        * 
+        * @param requestURI
+        *            the request uri
         * @return the resource uri
         */
        public static String getResourceURI(final String requestURI) {
-               LOG.trace("Getting requested URI: starts " + requestURI);
+               LOG.trace("Start VtnServiceCommonUtil#getResourceURI()");
                String finalURI = null;
-               if (null != requestURI) {
-                       if (requestURI.endsWith(ApplicationConstants.TYPE_XML)) {
-                               finalURI = requestURI.substring(ApplicationConstants.ZERO,
-                                               requestURI.length() - ApplicationConstants.FOUR);
-                       } else if (requestURI.endsWith(ApplicationConstants.TYPE_JSON)) {
-                               finalURI = requestURI.substring(ApplicationConstants.ZERO,
-                                               requestURI.length() - ApplicationConstants.FIVE);
+
+               if (null != requestURI
+                               && requestURI.startsWith(ApplicationConstants.CONTEXTPATH)) {
+                       finalURI = requestURI.replace(ApplicationConstants.CONTEXTPATH,
+                                       ApplicationConstants.BLANK_STR);
+                       final int paramaStartIndex = finalURI
+                                       .indexOf(ApplicationConstants.QUESTION_MARK_CHAR);
+                       if (paramaStartIndex != -1) {
+                               finalURI = finalURI.substring(0, paramaStartIndex);
+                       }
+
+                       final int extensionStartIndex = finalURI
+                                       .lastIndexOf(ApplicationConstants.DOT_REGEX);
+                       if (extensionStartIndex != -1) {
+                               final String extension = finalURI
+                                               .substring(extensionStartIndex);
+                               if (null != extension
+                                               && (extension.equals(ApplicationConstants.TYPE_XML) || extension
+                                                               .equals(ApplicationConstants.TYPE_JSON))) {
+                                       finalURI = finalURI.substring(0, extensionStartIndex);
+                               }
                        }
                }
-               if (null != finalURI) {
-                       finalURI = finalURI.replace(ApplicationConstants.CONTEXTPATH,
-                                       ApplicationConstants.EMPTY_STRING);
-               }
-               LOG.trace("Getting requested URI: ends " + finalURI);
+               LOG.debug("Final URI : " + finalURI);
+               LOG.trace("Complete VtnServiceCommonUtil#getResourceURI()");
                return finalURI;
        }
-       
-       /**
-        * Convert password str to md5 str.
-        *
-        * @param simplePasswordStr the simple password str
-        * @return the string
-        * @throws VtnServiceWebAPIException the vtn service web api exception
-        */
-       /*private static String convertPasswordStrToMd5Str(final String simplePasswordStr) throws VtnServiceWebAPIException{
-               LOG.trace("Converting password string to MD5 using MD5 algorithm: starts");
-               StringBuffer sb = null;
-        try {
-            final java.security.MessageDigest md = java.security.MessageDigest.getInstance(ApplicationConstants.MD5);
-            final byte[] array = md.digest(simplePasswordStr.getBytes(ApplicationConstants.ENCODE_UTF8_FORMAT));
-            sb = new StringBuffer();
-            for (int i = 0; i < array.length; ++i) {
-                sb.append(Integer.toHexString((array[i] & 0xFF) | 0x100).substring(1, 3));
-            }
-        }catch (final java.security.NoSuchAlgorithmException e) {
-               LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.MD5_ALGO_ERROR));
-               throw new VtnServiceWebAPIException(ApplicationConstants.MD5_ALGO_ERROR, VtnServiceCommonUtil.getErrorDescription(ApplicationConstants.MD5_ALGO_ERROR));
-        } catch (UnsupportedEncodingException e) {
-               LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.UNSUPPORTED_PASSWORD_STRING_FORMAT_ERROR));
-               throw new VtnServiceWebAPIException(ApplicationConstants.UNSUPPORTED_PASSWORD_STRING_FORMAT_ERROR, VtnServiceCommonUtil.getErrorDescription(ApplicationConstants.UNSUPPORTED_PASSWORD_STRING_FORMAT_ERROR));
-               }
-        LOG.trace("Converting password string to MD5 using MD5 algorithm: ends");
-        return sb.toString();
-    }*/
-       
+
        /**
         * Gets the op parameter.
-        *
-        * @param serviceRequest the service request
-        * @param resourcePath the resource path
+        * 
+        * @param serviceRequest
+        *            the service request
+        * @param resourcePath
+        *            the resource path
         * @return the op parameter
         */
-       public static JsonObject getOpParameter(JsonObject serviceRequest, String resourcePath) {
-               LOG.trace("Getting OP parameter from request URI : starts");
+       public static JsonObject getOpParameter(JsonObject serviceRequest,
+                       String resourcePath) {
+               LOG.trace("Start VtnServiceCommonUtil#getOpParameter()");
                String opString = null;
-               if(null !=resourcePath && (resourcePath.endsWith(ApplicationConstants.COUNT) || resourcePath.endsWith(ApplicationConstants.DETAIL))){
-                       opString = resourcePath.substring(resourcePath.lastIndexOf(ApplicationConstants.SLASH)+1, resourcePath.length());
+               if (null != resourcePath
+                               && (resourcePath.endsWith(ApplicationConstants.COUNT)
+                                               || resourcePath.endsWith(ApplicationConstants.DETAIL) || resourcePath
+                                                       .endsWith(ApplicationConstants.INFO))) {
+                       opString = resourcePath.substring(
+                                       resourcePath.lastIndexOf(ApplicationConstants.SLASH) + 1,
+                                       resourcePath.length());
                }
-               if(null != opString && !opString.isEmpty()){
+               if (null != opString && !opString.isEmpty()) {
                        serviceRequest.addProperty(ApplicationConstants.OP, opString);
                }
-               LOG.trace("Getting OP parameter from request URI : ends");
+               LOG.trace("Complete VtnServiceCommonUtil#getOpParameter()");
                return serviceRequest;
        }
-       
+
        /**
-        * This method will remove /count or /detail from URI and then will return actual resource path.
-        *
-        * @param resourcePath the resource path
+        * This method will remove /count or /detail or /info from URI and then will
+        * return actual resource path.
+        * 
+        * @param resourcePath
+        *            the resource path
         * @return the string
         */
        public static String removeCountOrDetailFromURI(final String resourcePath) {
-               LOG.trace("Removing detail/count from URI and putting the same in requestJson: starts");
+               LOG.trace("Start VtnServiceCommonUtil#removeCountOrDetailFromURI()");
                String opString = resourcePath;
-               if(null !=resourcePath && (resourcePath.endsWith(ApplicationConstants.COUNT) || resourcePath.endsWith(ApplicationConstants.DETAIL))){
-                       opString = resourcePath.substring(ApplicationConstants.ZERO, resourcePath.lastIndexOf(ApplicationConstants.SLASH));
+               if (null != resourcePath
+                               && (resourcePath.endsWith(ApplicationConstants.COUNT)
+                                               || resourcePath.endsWith(ApplicationConstants.DETAIL) || resourcePath
+                                                       .endsWith(ApplicationConstants.INFO))) {
+                       opString = resourcePath.substring(ApplicationConstants.ZERO,
+                                       resourcePath.lastIndexOf(ApplicationConstants.SLASH));
                }
-               LOG.trace("Removing detail/count from URI and putting the same in requestJson: end");
+               LOG.trace("Complete VtnServiceCommonUtil#removeCountOrDetailFromURI()");
                return opString;
        }
-       
+
        /**
         * 
         * @param URI
         * @return
-        * @throws VtnServiceWebAPIException 
+        * @throws VtnServiceWebAPIException
         */
-       public static boolean validateGetAPI(String URI) throws VtnServiceWebAPIException{
+       public static boolean validateGetAPI(String URI)
+                       throws VtnServiceWebAPIException {
+               LOG.trace("Start VtnServiceCommonUtil#validateGetAPI()");
                boolean status = false;
-               if(null != URI && !URI.isEmpty()){
-                       if(URI.trim().contains(ApplicationConstants.CONTROLLERSTR) && URI.trim().contains(ApplicationConstants.DOMAINSTR) && URI.trim().contains(ApplicationConstants.LOGICALPORTSSTR))
+               if (null != URI && !URI.isEmpty()) {
+                       if (URI.trim().contains(ApplicationConstants.CONTROLLERSTR)
+                                       && URI.trim().contains(ApplicationConstants.DOMAINSTR)
+                                       && URI.trim()
+                                                       .contains(ApplicationConstants.LOGICALPORTSSTR)) {
                                status = true;
-                       else if(URI.trim().startsWith(ApplicationConstants.SESSIONSTR) && URI.trim().length() > ApplicationConstants.SESSIONSTR.length())
+                       } else if (URI.trim().startsWith(ApplicationConstants.SESSIONSTR)
+                                       && URI.trim().length() > ApplicationConstants.SESSIONSTR
+                                                       .length()) {
                                status = true;
-                       else{
-                               final String getListAPI = ConfigurationManager.getInstance().getConfProperty(ApplicationConstants.GETLISTAPI);
-                               if(null != getListAPI && !getListAPI.isEmpty()){
-                                       final String[] tempList = getListAPI.split(ApplicationConstants.COMMA_STR);
-                                       for(int i=0; i < tempList.length; i++ ){
+                       } else {
+                               final String getListAPI = ConfigurationManager.getInstance()
+                                               .getConfProperty(ApplicationConstants.GETLISTAPI);
+                               if (null != getListAPI && !getListAPI.isEmpty()) {
+                                       final String[] tempList = getListAPI
+                                                       .split(ApplicationConstants.COMMA_STR);
+                                       for (int i = 0; i < tempList.length; i++) {
                                                final String getStr = tempList[i];
-                                               if(URI.trim().equals(getStr)){
+                                               if (URI.trim().equals(getStr.trim())) {
                                                        status = true;
                                                        break;
                                                }
@@ -366,6 +487,40 @@ public final class VtnServiceCommonUtil {
                                }
                        }
                }
+               LOG.trace("Complete VtnServiceCommonUtil#validateGetAPI()");
+               return status;
+       }
+
+       /**
+        * 
+        * @param request
+        * @return
+        * @throws VtnServiceWebAPIException
+        */
+       public static boolean isOpenStackResurce(final HttpServletRequest request)
+                       throws VtnServiceWebAPIException {
+               LOG.trace("Start VtnServiceUtil#isOpenStackResurce()");
+               boolean status = false;
+               /*
+                * get resource path and then resolve the resource corresponding to this
+                * resource path
+                */
+               final String resourcePath = VtnServiceCommonUtil.removeCountOrDetailFromURI(
+                               VtnServiceCommonUtil.getResourceURI(request.getRequestURI()));
+               final RestResource restResource = new RestResource();
+               restResource.setPath(resourcePath);
+               final AbstractResource resource = restResource.getResource();
+
+               if (resource == null) {
+                       LOG.debug("Decision cannot be taken that request came for UNC core APIs or UNC OpenStack APIs");
+                       throw new VtnServiceWebAPIException(
+                                       HttpErrorCodeEnum.UNC_CUSTOM_NOT_FOUND.getCode());
+               } else if (resource.getClass().getCanonicalName()
+                               .startsWith(ApplicationConstants.OS_RESOURCE_PKG)) {
+                       LOG.debug("Request came for UNC OpenStack APIs");
+                       status = true;
+               }
+               LOG.trace("Complete VtnServiceUtil#isOpenStackResurce()");
                return status;
        }
 }
index 09735488cb6c346f54656d777544ef20f6260ef3..ba605ce5687b0c7f0c00966d65507001db5f5e59 100644 (file)
@@ -1,11 +1,12 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
+
 package org.opendaylight.vtn.webapi.utils;
 
 import java.io.BufferedReader;
@@ -19,7 +20,8 @@ import org.json.JSONObject;
 
 import com.google.gson.JsonObject;
 import org.opendaylight.vtn.core.util.Logger;
-import org.opendaylight.vtn.webapi.enums.ApplicationConstants;
+import org.opendaylight.vtn.webapi.constants.ApplicationConstants;
+import org.opendaylight.vtn.webapi.enums.HttpErrorCodeEnum;
 import org.opendaylight.vtn.webapi.enums.SessionEnum;
 import org.opendaylight.vtn.webapi.exception.VtnServiceWebAPIException;
 
@@ -27,120 +29,221 @@ import org.opendaylight.vtn.webapi.exception.VtnServiceWebAPIException;
  * The Class VtnServiceWebUtil.
  */
 public class VtnServiceWebUtil {
-       
+
        /** The Constant LOG. */
-       private static final Logger LOG = Logger.getLogger(VtnServiceWebUtil.class.getName());
-       /** The Constant SESSION. */
-       private static final String SESSION = "session";
-       
-       /** The Constant NEW_LINE. */
-       private static final String NEW_LINE="\n";
-       
-       /** The Constant OP. */
-       private static final String OP = "op";
-       
+       private static final Logger LOG = Logger.getLogger(VtnServiceWebUtil.class
+                       .getName());
+
        /**
         * Prepare request json.
-        *
-        * @param request the request
-        * @param contentType the content type
+        * 
+        * @param request
+        *            the request
+        * @param contentType
+        *            the content type
         * @return the json object
-        * @throws IOException Signals that an I/O exception has occurred.
-        * @throws VtnServiceWebAPIException the vtn service web api exception
+        * @throws IOException
+        *             Signals that an I/O exception has occurred.
+        * @throws VtnServiceWebAPIException
+        *             the vtn service web api exception
         */
-       public  JsonObject prepareRequestJson(final HttpServletRequest request, final String contentType) throws IOException, VtnServiceWebAPIException{
-               LOG.trace("Preparing request JSON # prepareRequestJson()");
-               final BufferedReader reader = request.getReader();
+       public JsonObject prepareRequestJson(final HttpServletRequest request,
+                       final String contentType) throws IOException,
+                       VtnServiceWebAPIException {
+               LOG.trace("Start VtnServiceWebUtil#prepareRequestJson()");
                JsonObject serviceRequest = null;
-           final StringBuilder requestStr = new StringBuilder();
-           String line = reader.readLine();
-           while (line != null) {
-               requestStr.append(line).append(NEW_LINE);       
-               line = reader.readLine();
-           }
-           reader.close();
-           LOG.debug("Request String : " + requestStr.toString());
-           serviceRequest = DataConverter.getConvertedRequestObject(requestStr.toString(), contentType);
-           LOG.debug("Request object json # serviceRequest #");
-           return serviceRequest;
-           
+               StringBuilder requestStr = null;
+               BufferedReader reader = request.getReader();
+                       requestStr = new StringBuilder();
+                       String line = reader.readLine();
+                       while (line != null) {
+                               requestStr.append(line).append(ApplicationConstants.NEW_LINE);
+                               line = reader.readLine();
+                       }
+               reader.close();
+               /*
+                * exceptional case handle for router-creation operation. 
+                * POST is allowed with no request body
+                */
+               if (VtnServiceCommonUtil.getResourceURI(request.getRequestURI())
+                                               .endsWith(ApplicationConstants.ROUTERS)) {
+                       requestStr = new StringBuilder();
+                       requestStr.append(ApplicationConstants.EMPTY_JSON);
+               }
+
+               try {
+                       serviceRequest = DataConverter.getConvertedRequestObject(
+                                       requestStr.toString(), contentType);
+               } catch (ClassCastException e) {
+                       /*
+                        * exceptional case handle for tenant-creation operation. POST is
+                        * allowed with no request body
+                        */
+                       if (VtnServiceCommonUtil.getResourceURI(request.getRequestURI())
+                                       .endsWith(ApplicationConstants.TENANTS)) {
+                               requestStr = new StringBuilder();
+                               requestStr.append(ApplicationConstants.EMPTY_JSON);
+                               serviceRequest = DataConverter.getConvertedRequestObject(
+                                               requestStr.toString(), contentType);
+                       } else {
+                               throw e;
+                       }
+               }
+               LOG.debug("Request String : " + requestStr.toString());
+               
+               LOG.debug("Request Json : " + serviceRequest);
+               LOG.trace("Complete VtnServiceWebUtil#prepareRequestJson()");
+               return serviceRequest;
+
        }
-       
+
        /**
         * Prepare header json.
-        *
-        * @param request the request
+        * 
+        * @param request
+        *            the request
         * @return the json object
+        * @throws VtnServiceWebAPIException
         */
-       public static JsonObject prepareHeaderJson(final HttpServletRequest request){
-               LOG.trace("Preaparing request header json # prepareHeaderJson()");
+       public static JsonObject
+                       prepareHeaderJson(final HttpServletRequest request)
+                                       throws VtnServiceWebAPIException {
+               LOG.trace("Start VtnServiceWebUtil#prepareHeaderJson()");
                final JsonObject headerJson = new JsonObject();
                final Enumeration<?> headerEnum = request.getHeaderNames();
-               if(null !=headerEnum ){
+               if (null != headerEnum) {
                        while (headerEnum.hasMoreElements()) {
-                               final String nextElement =  (String)headerEnum.nextElement();
-                               if(SessionEnum.USERNAME.getSessionElement().equals(nextElement) || 
-                                       SessionEnum.PASSWORD.getSessionElement().equals(nextElement) || 
-                                       SessionEnum.LOGINNAME.getSessionElement().equals(nextElement) || 
-                                       SessionEnum.INFO.getSessionElement().equals(nextElement))
-                                       {
-                                               headerJson.addProperty(nextElement, request.getHeader(nextElement));
-                                       }
+                               final String nextElement = (String) headerEnum.nextElement();
+                               if (SessionEnum.USERNAME.getSessionElement()
+                                               .equals(nextElement)
+                                               || SessionEnum.PASSWORD.getSessionElement().equals(
+                                                               nextElement)) {
+                                       headerJson.addProperty(nextElement,
+                                                       request.getHeader(nextElement));
+                               }
                        }
-                       
                }
-               headerJson.addProperty(SessionEnum.IPADDRESS.getSessionElement(), request.getRemoteAddr());
-               headerJson.addProperty(ApplicationConstants.TYPE, ApplicationConstants.SESSION_TYPE);
+
+               /*
+                * Set user-name and password, if request came from NEC OpenFlow Plugin
+                */
+               setOpenStackAuthentications(request, headerJson);
+
+               headerJson.addProperty(SessionEnum.IPADDRESS.getSessionElement(),
+                               request.getRemoteAddr());
+               headerJson.addProperty(ApplicationConstants.TYPE,
+                               ApplicationConstants.SESSION_TYPE);
                final JsonObject sessionJson = new JsonObject();
-               sessionJson.add(SESSION, headerJson);
-               LOG.debug("Preaparing request header json # prepareHeaderJson() ");
+               sessionJson.add(ApplicationConstants.SESSION, headerJson);
+               LOG.debug("Session Json : " + sessionJson);
+               LOG.trace("Complete VtnServiceWebUtil#prepareHeaderJson()");
                return sessionJson;
        }
-       
+
+       /**
+        * Set/override the user-name and password for the request, if it came from
+        * NEC OpenFlow Plugin for OpenStack APIs
+        * 
+        * @param request
+        *            - Http Request Object
+        * @param headerJson
+        *            - Session Json object
+        * @throws VtnServiceWebAPIException
+        */
+       private static void setOpenStackAuthentications(
+                       final HttpServletRequest request, final JsonObject headerJson)
+                       throws VtnServiceWebAPIException {
+               LOG.trace("Start VtnServiceWebUtil#setOpenStackAuthentications");
+               /*
+                * If resource is related with OpenStack API resources then add/update
+                * user-name and password
+                */
+               if (VtnServiceCommonUtil.isOpenStackResurce(request)) {
+                       if (request.getMethod().equalsIgnoreCase(
+                                       ApplicationConstants.GET_METHOD_NAME)) {
+                               LOG.debug("Set username and password for oper user");
+                               // Set for oper user in case of GET operations
+                               headerJson.addProperty(
+                                               SessionEnum.USERNAME.getSessionElement(),
+                                               ApplicationConstants.ROLE_OPERATOR);
+                               headerJson.addProperty(
+                                               SessionEnum.PASSWORD.getSessionElement(),
+                                               ApplicationConstants.DEFAULT_PASSWD);
+                       } else {
+                               LOG.debug("Set username and password for admin user");
+                               // Set for admin in case of operations other than GET
+                               headerJson.addProperty(
+                                               SessionEnum.USERNAME.getSessionElement(),
+                                               ApplicationConstants.ROLE_ADMIN);
+                               headerJson.addProperty(
+                                               SessionEnum.PASSWORD.getSessionElement(),
+                                               ApplicationConstants.DEFAULT_PASSWD);
+                       }
+               }
+               LOG.debug("Session Json : " + headerJson);
+               LOG.trace("Start VtnServiceWebUtil#setOpenStackAuthentications");
+       }
+
        /**
         * Prepare aquire config json.
-        *
+        * 
         * @return the json object
-        * @throws VtnServiceWebAPIException the vtn service web api exception
+        * @throws VtnServiceWebAPIException
+        *             the vtn service web api exception
         */
-       public static JsonObject prepareAquireConfigJSON() throws VtnServiceWebAPIException {
-               LOG.trace("Preaparing aquire config json # prepareAquireConfigJSON() ");
-               JsonObject configJson= new JsonObject();
-               configJson.addProperty(OP, ConfigurationManager.getInstance().getConfProperty(OP));
-               LOG.debug("Aquire config json prepared # prepareAquireConfigJSON() ");
+       public static JsonObject prepareAquireConfigJSON()
+                       throws VtnServiceWebAPIException {
+               LOG.trace("Start VtnServiceWebUtil#prepareAquireConfigJSON()");
+               final JsonObject configJson = new JsonObject();
+               final String opForce = ConfigurationManager.getInstance()
+                               .getConfProperty(ApplicationConstants.OP);
+               if (!opForce.isEmpty()) {
+                       configJson.addProperty(ApplicationConstants.OP, opForce);
+               }
+               LOG.trace("Complete VtnServiceWebUtil#prepareAquireConfigJSON()");
                return configJson;
        }
-       
 
        /**
         * Prepare aquire read lock json.
-        *
+        * 
         * @return the json object
-        * @throws VtnServiceWebAPIException the vtn service web api exception
+        * @throws VtnServiceWebAPIException
+        *             the vtn service web api exception
         */
-       public static JsonObject prepareAquireReadLockJSON() throws VtnServiceWebAPIException {
-               LOG.trace("Preaparing aquire read lock json # prepareAquireReadLockJSON() ");
-               JsonObject acquireReadLockObj = new JsonObject();
-               JsonObject readLockJson = new JsonObject();
-               readLockJson.addProperty(ApplicationConstants.TIMEOUT, ConfigurationManager.getInstance().getConfProperty(ApplicationConstants.TIMEOUT));
+       public static JsonObject prepareAquireReadLockJSON()
+                       throws VtnServiceWebAPIException {
+               LOG.trace("Start VtnServiceWebUtil#prepareAquireReadLockJSON()");
+               final JsonObject acquireReadLockObj = new JsonObject();
+               final JsonObject readLockJson = new JsonObject();
+               readLockJson.addProperty(
+                               ApplicationConstants.TIMEOUT,
+                               ConfigurationManager.getInstance().getConfProperty(
+                                               ApplicationConstants.TIMEOUT));
                acquireReadLockObj.add(ApplicationConstants.READLOCK, readLockJson);
-               LOG.trace("Aquire read lock json # prepareAquireReadLockJSON() ");
+               LOG.trace("Complete VtnServiceWebUtil#prepareAquireReadLockJSON()");
                return acquireReadLockObj;
        }
 
        /**
         * Prepare config commit json.
-        *
-        * @param operation the operation
+        * 
+        * @param operation
+        *            the operation
         * @return the json object
         */
-       public static JsonObject prepareConfigCommitOrSaveJSON(final String operation) {
-               JsonObject commitConfigJson = new JsonObject();
-               JsonObject commitConfigObj = new JsonObject();
+       public static JsonObject prepareConfigCommitOrSaveJSON(
+                       final String operation) {
+               LOG.trace("Start VtnServiceWebUtil#prepareConfigCommitOrSaveJSON()");
+               final JsonObject commitConfigJson = new JsonObject();
+               final JsonObject commitConfigObj = new JsonObject();
                commitConfigJson.addProperty(ApplicationConstants.OPERATION, operation);
-               commitConfigObj.add(ApplicationConstants.CONFIGURATION_STRING, commitConfigJson);
+               commitConfigObj.add(ApplicationConstants.CONFIGURATION_STRING,
+                               commitConfigJson);
+               LOG.trace("Complete VtnServiceWebUtil#prepareConfigCommitOrSaveJSON()");
                return commitConfigObj;
        }
+
        /**
         * Prepare abort commit json.
         * 
@@ -149,50 +252,58 @@ public class VtnServiceWebUtil {
         * @return the json object
         */
        public static JsonObject prepareCandidateAbortJSON(final String operation) {
-               JsonObject abortConfigJson = new JsonObject();
-               JsonObject abortConfigObj = new JsonObject();
+               LOG.trace("Start VtnServiceWebUtil#prepareCandidateAbortJSON()");
+               final JsonObject abortConfigJson = new JsonObject();
+               final JsonObject abortConfigObj = new JsonObject();
                abortConfigJson.addProperty(ApplicationConstants.OPERATION, operation);
                abortConfigObj.add(ApplicationConstants.CANDIDATE, abortConfigJson);
+               LOG.trace("Complete VtnServiceWebUtil#prepareCandidateAbortJSON()");
                return abortConfigObj;
        }
-       
-       
+
        /**
         * Prepare err response json.
-        *
-        * @param errCode the err code
-        * @param description the description
+        * 
+        * @param errCode
+        *            the err code
+        * @param description
+        *            the description
         * @return the jSON object
-        * @throws JSONException 
+        * @throws JSONException
         */
-       public static JSONObject prepareErrResponseJson(final String errCode, final String description) {
+       public static JSONObject prepareErrResponseJson(final int errCode) {
+               LOG.trace("Start VtnServiceWebUtil#prepareErrResponseJson()");
                JSONObject errJson = null;
-               if(!ApplicationConstants.STATUS_OK.equals(errCode)){
-                       JSONObject temErrorJSON = new JSONObject();
+               if (HttpErrorCodeEnum.UNC_STATUS_OK.getCode() != errCode) {
+                       final JSONObject temErrorJSON = new JSONObject();
                        errJson = new JSONObject();
-                       try{
+                       try {
                                temErrorJSON.put(ApplicationConstants.ERR_CODE, errCode);
-                               temErrorJSON.put(ApplicationConstants.ERR_DESCRIPTION, description);
+                               temErrorJSON.put(ApplicationConstants.ERR_DESCRIPTION,
+                                               VtnServiceCommonUtil.getErrorMessage(errCode));
                                errJson.put(ApplicationConstants.ERROR, temErrorJSON);
-                       }catch(JSONException e){
-                               LOG.error(VtnServiceCommonUtil.logErrorDetails(ApplicationConstants.INTERNAL_SERVER_ERROR));
-                       }                       
+                       } catch (final JSONException e) {
+                               LOG.error("Internal server error : " + e);
+                       }
                }
+               LOG.trace("Complete VtnServiceWebUtil#prepareErrResponseJson()");
                return errJson;
        }
 
-       
        /**
         * Check string for null or empty.
-        *
-        * @param valueStr the value str
+        * 
+        * @param valueStr
+        *            the value str
         * @return true, if successful
         */
        public static boolean checkStringForNullOrEmpty(final String valueStr) {
+               LOG.trace("Start VtnServiceWebUtil#checkStringForNullOrEmpty()");
                boolean status = false;
-               if(null != valueStr && !valueStr.trim().isEmpty()){
+               if (null != valueStr && !valueStr.trim().isEmpty()) {
                        status = true;
                }
+               LOG.trace("Complete VtnServiceWebUtil#checkStringForNullOrEmpty()");
                return status;
        }
 }
index 492f99f08e984fc44bfe28cea6b458f78b70e427..cb73e548ce05fbeb91dcbc36d88ef947bebf8ea6 100644 (file)
@@ -1,18 +1,24 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
+
 package org.opendaylight.vtn.webapi.utils;
 
 import java.io.ByteArrayOutputStream;
+import java.io.IOException;
 import java.io.StringReader;
+import java.util.HashSet;
 import java.util.Iterator;
+import java.util.Set;
 
 import javax.xml.transform.OutputKeys;
+import javax.xml.transform.TransformerConfigurationException;
+
 import javax.xml.transform.TransformerException;
 import javax.xml.transform.stream.StreamResult;
 
@@ -21,7 +27,7 @@ import org.json.JSONException;
 import org.json.JSONObject;
 
 import org.opendaylight.vtn.core.util.Logger;
-import org.opendaylight.vtn.webapi.enums.ApplicationConstants;
+import org.opendaylight.vtn.webapi.constants.ApplicationConstants;
 import org.opendaylight.vtn.webapi.exception.VtnServiceWebAPIException;
 
 /**
@@ -32,8 +38,27 @@ import org.opendaylight.vtn.webapi.exception.VtnServiceWebAPIException;
 public class XMLTransformationUtil {
 
        /** The Constant LOG. */
-       private static final Logger LOG = Logger.getLogger(XMLTransformationUtil.class.getName());
-       
+       private static final Logger LOG = Logger
+                       .getLogger(XMLTransformationUtil.class.getName());
+
+       private static javax.xml.transform.Transformer trans;
+
+       static {
+               javax.xml.transform.TransformerFactory transFact = javax.xml.transform.TransformerFactory
+                               .newInstance();
+               javax.xml.transform.Source xsltSource = new javax.xml.transform.stream.StreamSource(
+                               Thread.currentThread().getContextClassLoader()
+                                               .getResource(ApplicationConstants.XSLT_FILE)
+                                               .toExternalForm());
+               try {
+                       trans = transFact.newTransformer(xsltSource);
+                       trans.setOutputProperty(OutputKeys.STANDALONE,
+                                       ApplicationConstants.XML_STANDALONE);
+               } catch (TransformerConfigurationException e) {
+                       LOG.error("Error ocurred while compilation of XSLT sheet : " + e);
+               }
+       }
+
        /**
         * Convert all elements to attributes in XML string
         * 
@@ -42,17 +67,16 @@ public class XMLTransformationUtil {
         * @return attributed XML string
         * @throws TransformerException
         */
+
+       static Set<String> keySet = null;
+
        public static String convertAllAttributesToElements(String xmlContent)
-                       throws TransformerException {
+                       throws TransformerException, IOException {
                LOG.trace("Start XMLTransformationUtil#convertAllAttributesToElements()");
-               javax.xml.transform.Source xmlSource = new javax.xml.transform.stream.StreamSource(
+               final javax.xml.transform.Source xmlSource = new javax.xml.transform.stream.StreamSource(
                                new StringReader(xmlContent));
-               javax.xml.transform.Source xsltSource = new javax.xml.transform.stream.StreamSource(
-                               Thread.currentThread().getContextClassLoader()
-                                               .getResource(ApplicationConstants.XSLT_FILE)
-                                               .toExternalForm());
                LOG.trace("Complete XMLTransformationUtil#convertAllAttributesToElements()");
-               return transformContent(xmlSource, xsltSource);
+               return transformContent(xmlSource);
        }
 
        /**
@@ -62,29 +86,29 @@ public class XMLTransformationUtil {
         * @param xsltSource
         * @return
         * @throws TransformerException
+        * @throws IOException
         */
-       private static String transformContent(
-                       javax.xml.transform.Source xmlSource,
-                       javax.xml.transform.Source xsltSource) throws TransformerException {
+       private static String
+                       transformContent(javax.xml.transform.Source xmlSource)
+                                       throws TransformerException, IOException {
                LOG.trace("Start XMLTransformationUtil#transformContent()");
                String modifiedContent = null;
-               javax.xml.transform.TransformerFactory transFact = javax.xml.transform.TransformerFactory
-                               .newInstance();
-               ByteArrayOutputStream outStream = new ByteArrayOutputStream();
-               StreamResult result = new javax.xml.transform.stream.StreamResult(
-                               outStream);
-               javax.xml.transform.Transformer trans = transFact
-                               .newTransformer(xsltSource);
-               trans.setOutputProperty(OutputKeys.STANDALONE,
-                               ApplicationConstants.XML_STANDALONE);
-               trans.transform(xmlSource, result);
-               byte[] b = ((ByteArrayOutputStream) result.getOutputStream())
-                               .toByteArray();
-               modifiedContent = new String(b);
-               // removing any line feed to save bytes.
-               modifiedContent = modifiedContent.replaceAll(
-                               ApplicationConstants.LINE_FEED,
-                               ApplicationConstants.EMPTY_STRING);
+               ByteArrayOutputStream outStream = null;
+               try {
+                       outStream = new ByteArrayOutputStream();
+                       final StreamResult result = new javax.xml.transform.stream.StreamResult(
+                                       outStream);
+                       trans.transform(xmlSource, result);
+                       final byte[] b = ((ByteArrayOutputStream) result.getOutputStream())
+                                       .toByteArray();
+                       modifiedContent = new String(b);
+                       // removing any line feed to save bytes.
+                       modifiedContent = modifiedContent.replaceAll(
+                                       ApplicationConstants.LINE_FEED,
+                                       ApplicationConstants.BLANK_STR);
+               } finally {
+                       outStream.close();
+               }
                LOG.trace("Complete XMLTransformationUtil#transformContent()");
                return modifiedContent;
        }
@@ -96,7 +120,7 @@ public class XMLTransformationUtil {
         * @param responseJson
         * @return
         * @throws JSONException
-        * @throws VtnServiceWebAPIException 
+        * @throws VtnServiceWebAPIException
         */
        public static String convertJsonToXml(Object responseJson)
                        throws JSONException, VtnServiceWebAPIException {
@@ -110,12 +134,13 @@ public class XMLTransformationUtil {
         * @param parentTagName
         * @return
         * @throws JSONException
-        * @throws VtnServiceWebAPIException 
+        * @throws VtnServiceWebAPIException
         */
        public static String convertJsonToXml(Object responseJson,
-                       String parentTagName) throws JSONException, VtnServiceWebAPIException {
+                       String parentTagName) throws JSONException,
+                       VtnServiceWebAPIException {
                LOG.trace("Start XMLTransformationUtil#convertJsonToXml()");
-               StringBuffer xmlString = new StringBuffer();
+               final StringBuffer xmlString = new StringBuffer();
                // local parameter required for conversion
                JSONArray jsonArray;
                JSONObject jsonObject;
@@ -140,7 +165,7 @@ public class XMLTransformationUtil {
                                jsonKey = jsonKeys.next().toString();
                                jsonValue = jsonObject.opt(jsonKey);
                                if (jsonValue == null) {
-                                       jsonValue = ApplicationConstants.EMPTY_STRING;
+                                       jsonValue = ApplicationConstants.BLANK_STR;
                                }
                                // if element in JSON object is JSON array type then iterate for
                                // all of element recursively
@@ -163,10 +188,9 @@ public class XMLTransformationUtil {
                                                try {
                                                        childElementName = ConfigurationManager
                                                                        .getInstance().getConfProperty(jsonKey);
-                                               } catch (VtnServiceWebAPIException e) {
+                                               } catch (final VtnServiceWebAPIException e) {
                                                        LOG.error("Property not found for list element");
-                                                       if (!(ApplicationConstants.ipaddrs.equals(jsonKey) 
-                                                                       || ApplicationConstants.ipv6addr.equals(jsonKey))) {
+                                                       if (!(checkForJsonKey(jsonKey))) {
                                                                throw e;
                                                        } else {
                                                                flag = true;
@@ -174,25 +198,30 @@ public class XMLTransformationUtil {
                                                }
                                                // sb.append('[');
                                                for (counter = 0; counter < length; counter += 1) {
-                                                       if(childElementName != null){
-                                                               xmlString.append(ApplicationConstants.LESS_THAN);
+                                                       if (childElementName != null) {
+                                                               xmlString
+                                                                               .append(ApplicationConstants.LESS_THAN);
                                                                xmlString.append(childElementName);
-                                                               xmlString.append(ApplicationConstants.GREATER_THAN);
+                                                               xmlString
+                                                                               .append(ApplicationConstants.GREATER_THAN);
                                                        }
-                                                       jsonValue = jsonArray.get(counter);                                                             
+                                                       jsonValue = jsonArray.get(counter);
                                                        if (jsonValue instanceof JSONArray) {
                                                                xmlString.append(convertJsonToXml(jsonValue));
                                                        } else {
                                                                if (!(counter == length - 1) && flag) {
-                                                                       jsonValue = jsonValue + ApplicationConstants.COMMA_STR;
+                                                                       jsonValue = jsonValue
+                                                                                       + ApplicationConstants.COMMA_STR;
                                                                }
                                                                xmlString.append(convertJsonToXml(jsonValue));
                                                        }
-                                                       if(childElementName != null){
-                                                               xmlString.append(ApplicationConstants.LESS_THAN);
+                                                       if (childElementName != null) {
+                                                               xmlString
+                                                                               .append(ApplicationConstants.LESS_THAN);
                                                                xmlString.append(ApplicationConstants.SLASH);
                                                                xmlString.append(childElementName);
-                                                               xmlString.append(ApplicationConstants.GREATER_THAN);
+                                                               xmlString
+                                                                               .append(ApplicationConstants.GREATER_THAN);
                                                        }
                                                }
                                                // sb.append(']');
@@ -202,7 +231,7 @@ public class XMLTransformationUtil {
                                                xmlString.append(ApplicationConstants.GREATER_THAN);
                                                flag = false;
                                        }
-                               } else if (ApplicationConstants.EMPTY_STRING.equals(jsonValue)) {
+                               } else if (ApplicationConstants.BLANK_STR.equals(jsonValue)) {
                                        xmlString.append(ApplicationConstants.LESS_THAN);
                                        xmlString.append(jsonKey);
                                        xmlString.append(ApplicationConstants.SLASH);
@@ -236,18 +265,74 @@ public class XMLTransformationUtil {
                return xmlString.toString();
        }
 
+       private static boolean checkForJsonKey(String jsonKey) {
+               boolean exist = false;
+               if (keySet == null) {
+                       keySet = new HashSet<String>();
+                       keySet.add(ApplicationConstants.ipaddrs);
+                       keySet.add(ApplicationConstants.ipv6addr);
+                       keySet.add(ApplicationConstants.inport);
+                       keySet.add(ApplicationConstants.macdstaddr);
+                       keySet.add(ApplicationConstants.macdstaddr_mask);
+                       keySet.add(ApplicationConstants.macsrcaddr);
+                       keySet.add(ApplicationConstants.macsrcaddr_mask);
+                       keySet.add(ApplicationConstants.macethertype);
+                       keySet.add(ApplicationConstants.vlan_id);
+                       keySet.add(ApplicationConstants.vlan_priority);
+                       keySet.add(ApplicationConstants.iptos);
+                       keySet.add(ApplicationConstants.ipproto);
+                       keySet.add(ApplicationConstants.ipdstaddr);
+                       keySet.add(ApplicationConstants.ipdstaddr_mask);
+                       keySet.add(ApplicationConstants.ipsrcaddr);
+                       keySet.add(ApplicationConstants.ipsrcaddr_mask);
+                       keySet.add(ApplicationConstants.l4dstport_icmptype);
+                       keySet.add(ApplicationConstants.l4dstport_icmptype_mask);
+                       keySet.add(ApplicationConstants.l4srcport_icmptype);
+                       keySet.add(ApplicationConstants.l4srcport_icmptype_mask);
+                       keySet.add(ApplicationConstants.ipv6dstaddr);
+                       keySet.add(ApplicationConstants.ipv6dstaddr_mask);
+                       keySet.add(ApplicationConstants.ipv6srcaddr);
+                       keySet.add(ApplicationConstants.ipv6srcaddr_mask);
+                       keySet.add(ApplicationConstants.outputport);
+                       keySet.add(ApplicationConstants.enqueueport);
+                       keySet.add(ApplicationConstants.queue_id);
+                       keySet.add(ApplicationConstants.setmacdstaddr);
+                       keySet.add(ApplicationConstants.setmacsrcaddr);
+                       keySet.add(ApplicationConstants.setvlan_id);
+                       keySet.add(ApplicationConstants.setvlan_priority);
+                       keySet.add(ApplicationConstants.setipdstaddr);
+                       keySet.add(ApplicationConstants.setipsrcaddr);
+                       keySet.add(ApplicationConstants.setiptos);
+                       keySet.add(ApplicationConstants.setl4dstport_icmptype);
+                       keySet.add(ApplicationConstants.setl4srcport_icmptype);
+                       keySet.add(ApplicationConstants.setipv6dstaddr);
+                       keySet.add(ApplicationConstants.setipv6srcaddr);
+               }
+               if (keySet.contains(jsonKey)) {
+                       exist = true;
+               }
+               return exist;
+
+       }
+
        /**
         * pre-process request Json for removing unwanted tags
+        * 
         * @param jsonObject
         * @return
         * @throws JSONException
         * @throws VtnServiceWebAPIException
         */
-       public static JSONObject preProcessJson(JSONObject jsonObject) throws JSONException, VtnServiceWebAPIException {
+       public static JSONObject preProcessJson(JSONObject jsonObject)
+                       throws JSONException, VtnServiceWebAPIException {
                // pre-process for vtep-group API
-               if (ApplicationConstants.vtepgroup.equals(jsonObject.keys().next().toString()) 
-                               && jsonObject.getJSONObject(ApplicationConstants.vtepgroup).has(ApplicationConstants.member_vteps)) {
-                       JSONObject memberVtepJson = jsonObject.getJSONObject(ApplicationConstants.vtepgroup).getJSONObject(ApplicationConstants.member_vteps);
+               if (ApplicationConstants.vtepgroup.equals(jsonObject.keys().next()
+                               .toString())
+                               && jsonObject.getJSONObject(ApplicationConstants.vtepgroup)
+                                               .has(ApplicationConstants.member_vteps)) {
+                       final JSONObject memberVtepJson = jsonObject.getJSONObject(
+                                       ApplicationConstants.vtepgroup).getJSONObject(
+                                       ApplicationConstants.member_vteps);
                        JSONArray newArray = new JSONArray();
                        if (memberVtepJson.has(ApplicationConstants.member_vtep)) {
                                // only one instance
@@ -259,8 +344,9 @@ public class XMLTransformationUtil {
                                        newArray = memberVtepJson
                                                        .getJSONArray(ApplicationConstants.member_vtep);
                                }
-                       }                                       
-                       jsonObject.getJSONObject(ApplicationConstants.vtepgroup).put(ApplicationConstants.member_vteps, newArray);
+                       }
+                       jsonObject.getJSONObject(ApplicationConstants.vtepgroup).put(
+                                       ApplicationConstants.member_vteps, newArray);
                }
                return jsonObject;
        }
diff --git a/coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/utils/package-info.java b/coordinator/java/vtn-webapi/src/org/opendaylight/vtn/webapi/utils/package-info.java
new file mode 100644 (file)
index 0000000..568535c
--- /dev/null
@@ -0,0 +1,14 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * Package contains Web API initialization, configuration manager, utility , Logger, Enums / constants and data convertor classes .
+ */
+package org.opendaylight.vtn.webapi.utils;
+
diff --git a/coordinator/java/vtn-webapi/src/pwd.properties b/coordinator/java/vtn-webapi/src/pwd.properties
new file mode 100644 (file)
index 0000000..a8b8f35
--- /dev/null
@@ -0,0 +1,12 @@
+#
+# Copyright (c) 2013-2014 NEC Corporation
+# All rights reserved.
+# 
+# This program and the accompanying materials are made available under the
+# terms of the Eclipse Public License v1.0 which accompanies this
+# distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+#
+
+#define password for admin and oper users
+admin=adminpass
+oper=adminpass
index 5b85784cf7a09aed4cb40eca071305b52ed686c0..e0d0cf644cd248f5a7dd9df574c01ebf87bd240d 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2012-2013 NEC Corporation
+# Copyright (c) 2012-2014 NEC Corporation
 # All rights reserved.
 # 
 # This program and the accompanying materials are made available under the
@@ -7,20 +7,12 @@
 # distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
 #
 
-#Common settings or error codes for VTN service web API
-vtns_err_200 = OK
-vtns_err_400 = Bad Request
-vtns_err_500 = Internal Server Error
-vtns_err_401 = User Unauthorized
-vtns_err_403 = Forbidden
-vtns_err_404 = Resource Not Found
-vtns_err_405 = Method Not Allowed
-
-op=FORCE
+op=
 timeout = 1000
+Retry-After=1
 
 #Default get api list for which blank json should be passed to Java API
-getListAPI = /api_version,/unc/version,/unc/alarms,/configuration/diff,/configuration/autosave
+getListAPI = /api_version,/unc/version,/unc/alarms,/configuration/diff,/configuration/autosave,/coordinator_version,/destination_controller
 
 #Properties corresponding to List and their respective Show APIs
 flowlists=flowlist
@@ -56,3 +48,9 @@ boundaries=boundary
 alarms=alarm
 patches=patch
 sessions=session
+dataflows=dataflow
+controller_dataflows=controller_dataflow
+pathinfos =pathinfo
+controller_domain_dataflows=controller_domain_dataflow
+mappings=mapping
+mappinginfos=mappinginfo
index abab9738fd33eaafa6d93fc61e813ef330022af1..9b95366e8ae7d622af692a819e36f52195791b1a 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2012-2013 NEC Corporation
+# Copyright (c) 2012-2014 NEC Corporation
 # All rights reserved.
 # 
 # This program and the accompanying materials are made available under the
@@ -7,6 +7,9 @@
 # distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
 #
 
+#vtn-javaapi.jar file path
+javaapi_path=%UNC_JAVA_LIBDIR%/vtn-javaapi.jar
+
 #define default value of max_repetition.
 max_repetition_default=10000
 
@@ -24,5 +27,8 @@ max_ipc_conn_pool_size_uncd=4
 max_ipc_conn_pool_size_usess=4
 max_ipc_conn_pool_size_unc_sysmg=4
 
-#vtn-javaapi.jar file path
-javaapi_path=%UNC_JAVA_LIBDIR%/vtn-javaapi.jar
+#Database connection pool properties for vtn-webapi only
+ini_filepath=/etc/odbc.ini
+db_initial_con_size=5
+db_max_conn_size=10
+db_wait_status=true
index 390c9beb1433ed36bfbd4ef69add43784b03e913..7c9373cc0c2ac9aa713fd3ee3e27b8c94546975c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
 #include <pfcxx/module.hh>
 #include <alarm.hh>
 
-namespace pfc{
-namespace alarm{
+namespace pfc {
+namespace alarm {
 
 class AlarmModule
-  : public pfc::core::Module
-{
-public:
+  : public pfc::core::Module {
+ public:
   AlarmModule(const pfc_modattr_t *mattr) : pfc::core::Module(mattr) {}
   ~AlarmModule(void) {}
 
@@ -29,8 +28,7 @@ public:
  */
 
 alarm_return_code_t
-pfc_alarm_initialize(int32_t *fd)
-{
+pfc_alarm_initialize(int32_t *fd) {
   *fd = -1;
   return ALM_OK;
 }
@@ -38,49 +36,43 @@ pfc_alarm_initialize(int32_t *fd)
 alarm_return_code_t
 pfc_alarm_send(const std::string& VTN_name, const std::string& alm_msg,
                const std::string& alm_msg_summary,
-               alarm_info_t *data, int32_t fd)
-{
+               alarm_info_t *data, int32_t fd) {
   return ALM_OK;
 }
 
-alarm_return_code_t 
+alarm_return_code_t
 pfc_alarm_send_with_key(const std::string& VTN_name, const std::string& alm_msg,
                         const std::string& alm_msg_summary,
-                        alarm_info_with_key_t* data, int32_t fd)
-{
+                        alarm_info_with_key_t* data, int32_t fd) {
   return ALM_OK;
 }
 
-alarm_return_code_t 
+alarm_return_code_t
 pfc_alarm_send_with_key2(const std::string& VTN_name,
                          const std::string& alm_msg,
                          const std::string& alm_msg_summary,
                          alarm_info_with_key_t* data, int32_t fd,
-                         struct timeval* tv)
-{
+                         struct timeval* tv) {
   return ALM_OK;
 }
 
 alarm_return_code_t
-pfc_alarm_clear (uint8_t apl_No)
-{
+pfc_alarm_clear(uint8_t apl_No) {
   return ALM_OK;
 }
 
 alarm_return_code_t
-pfc_alarm_close(int32_t fd)
-{
+pfc_alarm_close(int32_t fd) {
   return ALM_OK;
 }
 
 alarm_return_code_t
-pfc_alarm_view_start(void)
-{
+pfc_alarm_view_start(void) {
   return ALM_OK;
 }
 
-};
-};
+};  // namespace alarm
+};  // namespace pfc
 
 /* Declare C++ module. */
 PFC_MODULE_DECL(pfc::alarm::AlarmModule);
index 004ea225fab753be830c771e0bb63ad615045746..987ef1a7a489615a57babffbc74454a05d35ba00 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
 #ifndef ALARM_ALARM_HH
 #define ALARM_ALARM_HH
 
+#include <sys/time.h>
 #include <stdint.h>
 #include <string>
-#include <sys/time.h>
 
-namespace pfc{
-namespace alarm{
+namespace pfc {
+namespace alarm {
 
 /*
  * alarm API
@@ -27,7 +27,7 @@ typedef struct alarm_info {
         uint8_t     alarm_class;
         uint8_t     apl_No;
         uint16_t    alarm_category;
-        uint32_t    alarm_id ;
+        uint32_t    alarm_id;
         uint8_t     alarm_kind;
 } alarm_info_t;
 
@@ -40,8 +40,8 @@ typedef struct alarm_info_with_key {
         uint8_t  alarm_kind;
 } alarm_info_with_key_t;
 
-typedef enum{
-    ALM_EMERG=0,
+typedef enum {
+    ALM_EMERG = 0,
     ALM_ALERT,
     ALM_CRITICAL,
     ALM_ERROR,
@@ -50,7 +50,7 @@ typedef enum{
     ALM_INFO,
     ALM_DEBUG
 }alarm_level_t;
-    
+
 typedef enum {
     ALM_OK = 0,
     ALM_EAGAIN,
@@ -64,24 +64,24 @@ alarm_return_code_t
 pfc_alarm_send(const std::string& VTN_name, const std::string& alm_msg,
 const std::string& alm_msg_summary,  alarm_info_t *data,  int32_t fd);
 
-alarm_return_code_t 
+alarm_return_code_t
 pfc_alarm_send_with_key(const std::string& VTN_name, const std::string& alm_msg,
 const std::string& alm_msg_summary, alarm_info_with_key_t* data, int32_t fd);
 
-alarm_return_code_t 
+alarm_return_code_t
 pfc_alarm_send_with_key2(const std::string& VTN_name,
         const std::string& alm_msg, const std::string& alm_msg_summary,
         alarm_info_with_key_t* data, int32_t fd, struct timeval* tv);
 
 alarm_return_code_t
-pfc_alarm_clear (uint8_t apl_No);
+pfc_alarm_clear(uint8_t apl_No);
 
 alarm_return_code_t
 pfc_alarm_close(int32_t fd);
 
 alarm_return_code_t pfc_alarm_view_start(void);
 
-};
-};
+};  // namespace alarm
+};  // namespace pfc
 
 #endif /* !ALARM_ALARM_HH */
index a934db826315435269b98dbb61ca8fce9af39c85..ecf32f115d00b3150bb1739c3840633cf5d96062 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -76,7 +76,7 @@ pfc_bool_t CapaModule::fini(void) {
     delete ccc;
   }
   ctrlr_common_map_.clear();
-#endif 
+#endif
   return PFC_TRUE;
 }
 
@@ -99,7 +99,6 @@ void CapaModule::LoadParentVersion(pfc_conf_t confp,
 
 bool CapaModule::LoadActualVersion(pfc_conf_t confp, const std::string version,
                                    std::list<ActualVersion> &version_list) {
-
   pfc_cfblk_t ver_def_cfblk = pfc_conf_get_map(confp, "version_definition",
                                                version.c_str());
 
@@ -107,7 +106,7 @@ bool CapaModule::LoadActualVersion(pfc_conf_t confp, const std::string version,
   uint32_t           actual_count         = 0;
   uint32_t           actual_version_size  = 0;
   uint32_t           array_index          = 0;
-  
+
   /* Clear actual version list */
   version_list.clear();
 
@@ -116,7 +115,6 @@ bool CapaModule::LoadActualVersion(pfc_conf_t confp, const std::string version,
   pfc_log_verbose(" Actual version count is %u", actual_count);
 
   for (uint32_t index = 0; index <actual_count; index++) {
-
     actual_version_size = pfc_conf_array_size(ver_def_cfblk, "actual_version");
 
     if ((actual_version_size == 0) || (actual_version_size%4 != 0)) {
@@ -126,13 +124,17 @@ bool CapaModule::LoadActualVersion(pfc_conf_t confp, const std::string version,
 
     memset(&actual_version, 0, sizeof(ActualVersion));
     actual_version.major1  = pfc_conf_array_int32at(ver_def_cfblk,
-                                                 "actual_version", array_index++, 0);
+                                                 "actual_version",
+                                                 array_index++, 0);
     actual_version.major2  = pfc_conf_array_int32at(ver_def_cfblk,
-                                                 "actual_version", array_index++, 0);
+                                                 "actual_version",
+                                                 array_index++, 0);
     actual_version.minor   = pfc_conf_array_int32at(ver_def_cfblk,
-                                                 "actual_version", array_index++, 0);
+                                                 "actual_version",
+                                                 array_index++, 0);
     actual_version.update  = pfc_conf_array_int32at(ver_def_cfblk,
-                                                 "actual_version", array_index++, 0);
+                                                 "actual_version",
+                                                 array_index++, 0);
     version_list.push_back(actual_version);
   }
   return true;
@@ -140,16 +142,16 @@ bool CapaModule::LoadActualVersion(pfc_conf_t confp, const std::string version,
 
 bool CapaModule::ValidateVersion(unc_keytype_ctrtype_t ctrlr_type,
                                  std::string config_version,
-                                 uint8_t pfc_version_major1, 
+                                 uint8_t pfc_version_major1,
                                  uint8_t pfc_version_major2,
                                  uint8_t pfc_version_minor,
                                  uint8_t pfc_version_update) {
-
   pfc_log_info("Validates Configuration version and actual version ");
 
   struct CapaCtrlrCommon    *ccc = ctrlr_common_map_.find(ctrlr_type)->second;
   std::list<ActualVersion>  actual_version_list;
   ActualVersion             actual;
+  std::map<std::string, std::list<ActualVersion> >::iterator act_ver_it;
 
   if (ccc == NULL) {
     pfc_log_warn("Failed to find Capa controller common");
@@ -157,13 +159,14 @@ bool CapaModule::ValidateVersion(unc_keytype_ctrtype_t ctrlr_type,
   }
   memset(&actual, 0, sizeof(ActualVersion));
 
-  if (ccc->actual_version_map_.count(config_version) == 0) {
+  act_ver_it = ccc->actual_version_map_.find(config_version);
+  if (act_ver_it == ccc->actual_version_map_.end()) {
     pfc_log_debug("Configuration version is not a member of "
                   "actual version map");
     return false;
   }
 
-  actual_version_list = ccc->actual_version_map_.find(config_version)->second;
+  actual_version_list =  act_ver_it->second;
 
   while (!actual_version_list.empty()) {
     actual = actual_version_list.front();
@@ -172,22 +175,26 @@ bool CapaModule::ValidateVersion(unc_keytype_ctrtype_t ctrlr_type,
     pfc_log_verbose("Actual version : : (%d.%d.%d.%d)",
                     actual.major1, actual.major2, actual.minor, actual.update);
 
-    if ((actual.major1 == -1) || ((uint8_t)actual.major1 < pfc_version_major1)) {
+    if ((actual.major1 == -1) ||
+        ((uint8_t)actual.major1 < pfc_version_major1)) {
       return true;
-    } 
+    }
 
     if (((uint8_t)actual.major1 == pfc_version_major1)) {
-      if ((actual.major2 == -1) || ((uint8_t)actual.major2 < pfc_version_major2)) {
+      if ((actual.major2 == -1) ||
+          ((uint8_t)actual.major2 < pfc_version_major2)) {
         return true;
       }
 
       if ((uint8_t)actual.major2 == pfc_version_major2) {
-        if ((actual.minor == -1) || ((uint8_t)actual.minor < pfc_version_minor)) {
+        if ((actual.minor == -1)
+            || ((uint8_t)actual.minor < pfc_version_minor)) {
           return true;
         }
 
         if ((uint8_t)actual.minor == pfc_version_minor) {
-          if ((actual.update == -1) || ((uint8_t)actual.update <= pfc_version_update)) {
+          if ((actual.update == -1) ||
+              ((uint8_t)actual.update <= pfc_version_update)) {
             return true;
           }
         }
@@ -212,7 +219,7 @@ bool CapaModule::LoadCapabilityFile(unc_keytype_ctrtype_t ctrlr_type) {
   } else if (ctrlr_type == UNC_CT_LEGACY) {
       pfc_log_info("\n \n ******CAPA**** UNC_CT_LEGACY type %d", ctrlr_type);
       capa_file = CAPA_CONF_FILE_LEGACY;
-  */      
+  */
   } else if (ctrlr_type == UNC_CT_VNP) {
       pfc_log_info("\n \n *****CAPA**** UNC_CT_VNP type %d", ctrlr_type);
       capa_file = CAPA_CONF_FILE_VNP;
@@ -228,10 +235,13 @@ bool CapaModule::LoadCapabilityFile(unc_keytype_ctrtype_t ctrlr_type) {
   /* Lock capability database */
   ScopedReadWriteLock lock(capa_module_lock_, true);
 
-  if (ctrlr_common_map_.count(ctrlr_type) == 0) {
+  std::map<unc_keytype_ctrtype_t, CapaCtrlrCommon*>::iterator ctrlr_comm_it =
+    ctrlr_common_map_.find(ctrlr_type);
+
+  if (ctrlr_comm_it == ctrlr_common_map_.end()) {
     return false;
   }
-  struct CapaCtrlrCommon *ccc = ctrlr_common_map_.find(ctrlr_type)->second;
+  struct CapaCtrlrCommon *ccc = ctrlr_comm_it->second;
 
   /* Clear file */
   ccc->capa_map.clear();
@@ -275,7 +285,8 @@ bool CapaModule::LoadCapabilityFile(unc_keytype_ctrtype_t ctrlr_type) {
     }
     pfc_log_verbose("Loading capability for version: %s", version_name);
     // current_version = version_name;
-    // TODO Why it is repeated LoadParentCapability(confp, version_name);
+    // TODO(capa): Why it is repeated
+    // LoadParentCapability(confp, version_name);
     CtrlrCapability *cap_ptr = new CtrlrCapability;
     if (false == cap_ptr->LoadCtrlrCapability(confp, version_name)) {
       pfc_log_error("Failed to load capability for %s", version_name);
@@ -305,11 +316,11 @@ bool CapaModule::LoadCapabilityFile(unc_keytype_ctrtype_t ctrlr_type) {
 // for that controller type
 
 bool CapaModule::LoadCapabilityFiles(void) {
-       LoadCapabilityFile(UNC_CT_PFC);
-       // LoadCapabilityFile(UNC_CT_LEGACY);
-       LoadCapabilityFile(UNC_CT_VNP);
-       LoadCapabilityFile(UNC_CT_ODC);
-       return true;
+  LoadCapabilityFile(UNC_CT_PFC);
+  // LoadCapabilityFile(UNC_CT_LEGACY);
+  LoadCapabilityFile(UNC_CT_VNP);
+  LoadCapabilityFile(UNC_CT_ODC);
+  return true;
 }
 
 bool CapaModule::GetCreateCapability(unc_keytype_ctrtype_t ctrlr_type,
@@ -319,13 +330,16 @@ bool CapaModule::GetCreateCapability(unc_keytype_ctrtype_t ctrlr_type,
                                      uint32_t *num_attrs,
                                      const uint8_t  **attrs) {
   ScopedReadWriteLock lock(capa_module_lock_, false);
-  if (ctrlr_common_map_.count(ctrlr_type) == 0) {
+  std::map<unc_keytype_ctrtype_t, CapaCtrlrCommon*>::iterator ctrlr_comm_it =
+      ctrlr_common_map_.find(ctrlr_type);
+
+  if (ctrlr_comm_it == ctrlr_common_map_.end()) {
     pfc_log_verbose("Bad ctrlr_type %d", ctrlr_type);
     return false;
   }
-  struct CapaCtrlrCommon *ccc = ctrlr_common_map_.find(ctrlr_type)->second;
+  struct CapaCtrlrCommon *ccc = ctrlr_comm_it->second;
   std::map<std::string, CtrlrCapability*>::iterator verit =
-       ccc->capa_map.find(version);
+      ccc->capa_map.find(version);
   if (verit == ccc->capa_map.end()) {
     pfc_log_verbose("Version %s not found", version.c_str());
     return false;
@@ -342,11 +356,14 @@ bool CapaModule::GetUpdateCapability(unc_keytype_ctrtype_t ctrlr_type,
                                      uint32_t *num_attrs,
                                      const uint8_t  **attrs) {
   ScopedReadWriteLock lock(capa_module_lock_, false);
-  if (ctrlr_common_map_.count(ctrlr_type) == 0) {
+
+  std::map<unc_keytype_ctrtype_t, CapaCtrlrCommon*>::iterator ctrlr_comm_it =
+      ctrlr_common_map_.find(ctrlr_type);
+  if (ctrlr_comm_it == ctrlr_common_map_.end()) {
     pfc_log_verbose("Bad ctrlr_type %d", ctrlr_type);
     return false;
   }
-  struct CapaCtrlrCommon *ccc = ctrlr_common_map_.find(ctrlr_type)->second;
+  struct CapaCtrlrCommon *ccc = ctrlr_comm_it->second;
   std::map<std::string, CtrlrCapability*>::iterator verit =
       ccc->capa_map.find(version);
   if (verit == ccc->capa_map.end()) {
@@ -363,15 +380,18 @@ bool CapaModule::GetReadCapability(unc_keytype_ctrtype_t ctrlr_type,
                                    uint32_t *num_attrs,
                                    const uint8_t  **attrs) {
   ScopedReadWriteLock lock(capa_module_lock_, false);
-  if (ctrlr_common_map_.count(ctrlr_type) == 0) {
+
+  std::map<unc_keytype_ctrtype_t, CapaCtrlrCommon*>::iterator ctrlr_comm_it =
+      ctrlr_common_map_.find(ctrlr_type);
+  if (ctrlr_comm_it == ctrlr_common_map_.end()) {
     pfc_log_verbose("Bad ctrlr_type %d", ctrlr_type);
     return false;
   }
-  struct CapaCtrlrCommon *ccc = ctrlr_common_map_.find(ctrlr_type)->second;
+  struct CapaCtrlrCommon *ccc = ctrlr_comm_it->second;
   std::map<std::string, CtrlrCapability*>::iterator verit =
-        ccc->capa_map.find(version);
+      ccc->capa_map.find(version);
   if (verit == ccc->capa_map.end()) {
-     return false;
+    return false;
   }
   CtrlrCapability* cap_ptr = verit->second;
   bool ret = cap_ptr->GetReadCapability(keytype, num_attrs, attrs);
@@ -384,11 +404,14 @@ bool CapaModule::GetStateCapability(unc_keytype_ctrtype_t ctrlr_type,
                                     uint32_t *num_attrs,
                                     const uint8_t  **attrs) {
   ScopedReadWriteLock lock(capa_module_lock_, false);
-  if (ctrlr_common_map_.count(ctrlr_type) == 0) {
+
+  std::map<unc_keytype_ctrtype_t, CapaCtrlrCommon*>::iterator ctrlr_comm_it =
+      ctrlr_common_map_.find(ctrlr_type);
+  if (ctrlr_comm_it == ctrlr_common_map_.end()) {
     pfc_log_verbose("Bad ctrlr_type %d", ctrlr_type);
     return false;
   }
-  struct CapaCtrlrCommon *ccc = ctrlr_common_map_.find(ctrlr_type)->second;
+  struct CapaCtrlrCommon *ccc = ctrlr_comm_it->second;
   std::map<std::string, CtrlrCapability*>::iterator verit =
   ccc->capa_map.find(version);
   if (verit == (ccc->capa_map).end()) {
@@ -404,11 +427,14 @@ bool CapaModule::GetInstanceCount(unc_keytype_ctrtype_t ctrlr_type,
                                   unc_key_type_t keytype,
                                   uint32_t &instance_count) {
   ScopedReadWriteLock lock(capa_module_lock_, false);
-  if (ctrlr_common_map_.count(ctrlr_type) == 0) {
+
+  std::map<unc_keytype_ctrtype_t, CapaCtrlrCommon*>::iterator ctrlr_comm_it =
+    ctrlr_common_map_.find(ctrlr_type);
+  if (ctrlr_comm_it == ctrlr_common_map_.end()) {
     pfc_log_verbose("Bad ctrlr_type %d", ctrlr_type);
     return false;
   }
-  struct CapaCtrlrCommon *ccc = ctrlr_common_map_.find(ctrlr_type)->second;
+  struct CapaCtrlrCommon *ccc = ctrlr_comm_it->second;
   std::map<std::string, CtrlrCapability*>::iterator verit =
        (ccc->capa_map).find(version);
   if (verit == (ccc->capa_map).end()) {
@@ -431,6 +457,7 @@ std::string CapaModule::GetCtrlrParentVersion(const std::string &version) {
   return parent_version;
 }
 
+
 void CapaModule::VerboseDumpAll() {
   std::map<unc_keytype_ctrtype_t, CapaCtrlrCommon*>::iterator comm_ctrlr_it;
   ScopedReadWriteLock lock(capa_module_lock_, false);
@@ -506,9 +533,47 @@ void CapaModule::VerboseDump(unc_keytype_ctrtype_t ctrlr_type,
     }
   }
 }
+
+bool CapaModule::GetSupportedVersion(unc_keytype_ctrtype_t ctrlr_type,
+                                 std::string config_version,
+                                 uint8_t* version_major1,
+                                 uint8_t* version_major2,
+                                 uint8_t* version_minor,
+                                 uint8_t* version_update) {
+  pfc_log_info("Fetches th actual version from configured version");
+
+  struct CapaCtrlrCommon    *ccc = ctrlr_common_map_.find(ctrlr_type)->second;
+  std::list<ActualVersion>  actual_version_list;
+  ActualVersion             actual;
+  std::map<std::string, std::list<ActualVersion> >::iterator act_ver_it;
+
+  if (ccc == NULL) {
+    pfc_log_warn("Failed to find Capa controller common");
+    return false;
+  }
+  memset(&actual, 0, sizeof(ActualVersion));
+
+  act_ver_it = ccc->actual_version_map_.find(config_version);
+  if (act_ver_it == ccc->actual_version_map_.end()) {
+    pfc_log_debug("Configuration version is not a member of "
+                  "actual version map");
+    return false;
+  }
+
+  actual_version_list =  act_ver_it->second;
+
+  actual = actual_version_list.front();
+
+  *version_major1 = actual.major1;
+  *version_major2 = actual.major2;
+  *version_minor  = actual.minor;
+  *version_update  = actual.update;
+
+  return true;
+}
                                                                        // NOLINT
-}  // capa
-}  // unc
+}  // namespace capa
+}  // namespace unc
 
 PFC_MODULE_DECL(unc::capa::CapaModule);
 
index 7c2bc9297cec5d058d77ec7bb2d6f79177d80640..0a3e35813f1231aed23b2dc29d7b8c246e5457d5 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -93,72 +93,77 @@ class CapaModule : public pfc::core::Module, CapaIntf {
    * @retval true   Successful
    * @retval false  keytype is not found for the given ctrlr type
    */
-  bool  GetInstanceCount(unc_keytype_ctrtype_t ctrlr_type, const std::string &version,
+  bool  GetInstanceCount(unc_keytype_ctrtype_t ctrlr_type,
+                         const std::string &version,
                          unc_key_type_t keytype, uint32_t &instance_count);
 
 
   /**
    * @brief  Return Attribute SUPPORTED or NOT_SUPPORTED of specified key type.
-   * 
+   *
    * @param[in]  keytype    Key type.
    * @param[in]  version    controller version
    * @param[out] num_attrs  Maximum attribute for specified key type
    * @param[out] attrs      Array of SUPPORTED and NOT_SUPPORTED information
-   * 
+   *
    * @retval true   Successful
    * @retval false  keytype is  not found for the given ctrlr type
    */
 
-  bool GetCreateCapability(unc_keytype_ctrtype_t ctrlr_type, const std::string &version,
+  bool GetCreateCapability(unc_keytype_ctrtype_t ctrlr_type,
+                           const std::string &version,
                            unc_key_type_t keytype,
                            uint32_t *instnace_count,
                            uint32_t *num_attrs, const uint8_t  **attrs);
 
   /**
    * @brief  Return Attribute SUPPORTED or NOT_SUPPORTED of specified key type.
-   * 
+   *
    * @param[in]  keytype    Key type.
    * @param[in]  version    controller version
    * @param[out] num_attrs  Maximum attribute for specified key type
    * @param[out] attrs      Array of SUPPORTED and NOT_SUPPORTED information
-   * 
+   *
    * @retval true   Successful
    * @retval false  keytype is  not found for the given ctrlr type
    */
 
-  bool GetUpdateCapability(unc_keytype_ctrtype_t ctrlr_type, const std::string &version,
+  bool GetUpdateCapability(unc_keytype_ctrtype_t ctrlr_type,
+                           const std::string &version,
                            unc_key_type_t keytype,
                            uint32_t *num_attrs, const uint8_t  **attrs);
 
   /**
    * @brief  Return Attribute SUPPORTED or NOT_SUPPORTED of specified key type.
-   * 
+   *
    * @param[in]  keytype    Key type.
    * @param[in]  version    controller version
    * @param[out] num_attrs  Maximum attribute for specified key type
    * @param[out] attrs      Array of SUPPORTED and NOT_SUPPORTED information
-   * 
+   *
    * @retval true   Successful
    * @retval false  keytype is  not found for the given ctrlr type
    */
 
-  bool GetReadCapability(unc_keytype_ctrtype_t ctrlr_type, const std::string &version,
+  bool GetReadCapability(unc_keytype_ctrtype_t ctrlr_type,
+                         const std::string &version,
                          unc_key_type_t keytype,
                          uint32_t *num_attrs, const uint8_t  **attrs);
 
   /**
    * @brief  Return Attribute SUPPORTED or NOT_SUPPORTED of specified key type.
-   * 
+   *
    * @param[in]  keytype    Key type.
    * @param[in]  version    controller version
    * @param[out] num_attrs  Maximum attribute for specified key type
    * @param[out] attrs      Array of SUPPORTED and NOT_SUPPORTED information
-   * 
+   *
    * @retval true   Successful
    * @retval false  keytype is  not found for the given ctrlr type
    */
 
-  bool GetStateCapability(unc_keytype_ctrtype_t ctrlr_type, const std::string &version,
+  bool GetStateCapability(unc_keytype_ctrtype_t ctrlr_type,
+                          const std::string &version,
                           unc_key_type_t keytype,
                           uint32_t *num_attrs, const uint8_t  **attrs);
 
@@ -182,6 +187,14 @@ class CapaModule : public pfc::core::Module, CapaIntf {
                        std::string config_version, uint8_t pfc_version_major1,
                        uint8_t pfc_version_major2, uint8_t pfc_version_minor,
                        uint8_t pfc_version_update);
+
+bool GetSupportedVersion(unc_keytype_ctrtype_t ctrlr_type,
+                                 std::string config_version,
+                                 uint8_t* version_major1,
+                                 uint8_t* version_major2,
+                                 uint8_t* version_minor,
+                                 uint8_t* version_update);
+
  private:
   struct ActualVersion {
     int32_t major1;
@@ -228,13 +241,12 @@ class CapaModule : public pfc::core::Module, CapaIntf {
    private:
     pfc::core::ReadWriteLock *lock_;
   };
-
 };
 // NOLINT
 
 
-} /* namespace capctrl */
-} /* namespace unc */
+}  // namespace capa
+}  // namespace unc
 
 #endif  // CAPABILITY_MGR_HH_
 
index 4edb243a641266d576156c353a32b218ed87ed06..ec4c0fe11af54414b0536ae8d550aeb95a02aefa 100644 (file)
@@ -1,5 +1,5 @@
 %
-% Copyright (c) 2012-2013 NEC Corporation
+% Copyright (c) 2012-2014 NEC Corporation
 % All rights reserved.
 % 
 % This program and the accompanying materials are made available under the
@@ -415,3 +415,136 @@ defmap vrouter_interface_flow_filter_entry {
         dscp                    = BOOL[4];
         priority                = BOOL[4];
 }
+
+%        *****uppl defs******
+
+
+defmap controller  {
+        instance_count          =  UINT32;
+
+        % 0:CONF_CREATE, 1:CONF_UPDATE, 2:CONF_READ, 3:STATE_READ
+        description      =  BOOL[4];
+        type             =  BOOL[4];
+        version          =  BOOL[4];
+        ip_address       =  BOOL[4];
+        user             =  BOOL[4];
+        password         =  BOOL[4];
+        enable_audit     =  BOOL[4];
+        port             =  BOOL[4];
+}
+defmap ctr_domain  {
+        instance_count          =  UINT32;
+
+        % 0:CONF_CREATE, 1:CONF_UPDATE, 2:CONF_READ, 3:STATE_READ
+        type             =  BOOL[4];
+        description      =  BOOL[4];
+}
+
+
+defmap logical_port {
+        instance_count          =  UINT32;
+
+        % 0:CONF_CREATE, 1:CONF_UPDATE, 2:CONF_READ, 3:STATE_READ
+        description         =  BOOL[4];
+        port_type          =  BOOL[4];
+        switch_id           =  BOOL[4];
+        physical_port_id    =  BOOL[4];
+        oper_down_criteria  =  BOOL[4];
+}
+defmap switch  {
+        instance_count          =  UINT32;
+
+        % 0:CONF_CREATE, 1:CONF_UPDATE, 2:CONF_READ, 3:STATE_READ
+        description      =   BOOL[4];
+        model            =   BOOL[4];
+        ip_address       =   BOOL[4];
+        ipv6_address     =   BOOL[4];
+        admin_status     =   BOOL[4];
+        domain_name      =   BOOL[4];
+}
+
+defmap port  {
+        instance_count          =  UINT32;
+
+        % 0:CONF_CREATE, 1:CONF_UPDATE, 2:CONF_READ, 3:STATE_READ
+        port_number         =  BOOL[4];
+        description         =  BOOL[4];
+        admin_status        =  BOOL[4];
+        trunk_allowed_vlan  =  BOOL[4];
+}
+
+defmap link  {
+        instance_count          =  UINT32;
+
+        % 0:CONF_CREATE, 1:CONF_UPDATE, 2:CONF_READ, 3:STATE_READ
+        description         =  BOOL[4];
+}
+
+defmap boundary  {
+        instance_count         =  UINT32;
+
+        description        = BOOL[4];
+        controller_name1   = BOOL[4];
+        domain_name1       = BOOL[4];
+        logical_port_id1   = BOOL[4];
+        controller_name2   = BOOL[4];
+        domain_name2       = BOOL[4];
+        logical_port_id2   = BOOL[4];
+}
+
+defmap ctr_dataflow  {
+        instance_count          =  UINT32;
+
+        % 0:CONF_CREATE, 1:CONF_UPDATE, 2:CONF_READ, 3:STATE_READ
+       
+       controller_name         = BOOL[4];
+        controller_type         = BOOL[4];
+        flow_id                 = BOOL[4];
+        status                  = BOOL[4];
+        flow_type               = BOOL[4];
+        policy_index            = BOOL[4];
+        vtn_id                  = BOOL[4];
+        ingress_switch_id       = BOOL[4];
+        in_port                 = BOOL[4];
+        in_station_id           = BOOL[4];
+        in_domain               = BOOL[4];
+        egress_switch_id        = BOOL[4];
+        out_port                = BOOL[4];
+        out_station_id          = BOOL[4];
+        out_domain              = BOOL[4];
+        path_info_count         = BOOL[4];
+        match_count             = BOOL[4];
+        action_count            = BOOL[4];
+
+}
+
+defmap dataflow  {
+        instance_count          =  UINT32;
+
+        % 0:CONF_CREATE, 1:CONF_UPDATE, 2:CONF_READ, 3:STATE_READ
+       
+       controller_name         = BOOL[4]; 
+        controller_type         = BOOL[4];
+        flow_id                 = BOOL[4];
+        status                  = BOOL[4];
+        flow_type               = BOOL[4];
+        policy_index            = BOOL[4];
+        vtn_id                  = BOOL[4];
+        ingress_switch_id       = BOOL[4];
+        in_port                 = BOOL[4];
+        in_station_id           = BOOL[4];
+        in_domain               = BOOL[4];
+        egress_switch_id        = BOOL[4];
+        out_port                = BOOL[4];
+        out_station_id          = BOOL[4];
+        out_domain              = BOOL[4];
+        path_info_count         = BOOL[4];
+        match_count             = BOOL[4];
+        action_count            = BOOL[4];
+}
+
+defmap vtn_dataflow {
+        instance_count          =  UINT32;
+
+        % 0:CONF_CREATE, 1:CONF_UPDATE, 2:CONF_READ, 3:STATE_READ
+}
index ef44eb330009766b6af0e86c6ad576cceaf791b6..1ded3e78ad881b7fb42c34a9818e6111b29e2d5e 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -62,7 +62,6 @@ KtAttrMap kam_dhcp_relay_server[] = {
 };
 
 KtAttrMap kam_dhcp_relay_interface[] = {
-
 };
 
 KtAttrMap kam_static_ip_route[] = {
@@ -289,7 +288,44 @@ KtAttrMap kam_vrouter_if_flow_filter_entry[] = {
   { "dscp", vrt_if_flowfilter_entry::kCapDscp },
   { "priority", vrt_if_flowfilter_entry::kCapPriority }
 };
+// ****************adding for physical module***********/
+
+KtAttrMap kam_controller[] = {
+  { "type", controller::kType},
+  { "version", controller::kVersion},
+  { "description", controller::kDescription},
+  { "ip_address", controller::kIp_address},
+  { "user", controller::kUser_name},
+  { "password", controller::kPassword},
+  { "enable_audit", controller::kEnableAudit}
+};
+KtAttrMap kam_ctr_domain[] =  {
+};
+
+
+KtAttrMap kam_logical_port[] = {
+};
+
+KtAttrMap kam_switch[] =  {
+};
+
+KtAttrMap kam_port[] = {
+};
+
+KtAttrMap kam_link[] = {
+};
+
+KtAttrMap kam_boundary[] = {
+};
 
+KtAttrMap kam_ctr_data_flow[] = {
+};
+
+KtAttrMap kam_data_flow[] =  {
+};
+
+KtAttrMap kam_vtn_dataflow[] = {
+};
 #ifndef ARRAY_SIZE
 #define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))
 #endif
@@ -305,13 +341,17 @@ KtMap kt_map[] = {
     &kam_vbr_if[0] },
   { "vrouter", UNC_KT_VROUTER, ARRAY_SIZE(kam_vrouter),
     &kam_vrouter[0] },
-  { "dhcp_relay_server", UNC_KT_DHCPRELAY_SERVER, ARRAY_SIZE(kam_dhcp_relay_server),
+  { "dhcp_relay_server", UNC_KT_DHCPRELAY_SERVER,
+    ARRAY_SIZE(kam_dhcp_relay_server),
     &kam_dhcp_relay_server[0] },
-  { "dhcp_relay_interface", UNC_KT_DHCPRELAY_IF, ARRAY_SIZE(kam_dhcp_relay_interface),
+  { "dhcp_relay_interface", UNC_KT_DHCPRELAY_IF,
+    ARRAY_SIZE(kam_dhcp_relay_interface),
     &kam_dhcp_relay_interface[0] },
-  { "static_ip_route", UNC_KT_VRT_IPROUTE, ARRAY_SIZE(kam_static_ip_route),
+  { "static_ip_route", UNC_KT_VRT_IPROUTE,
+    ARRAY_SIZE(kam_static_ip_route),
     &kam_static_ip_route[0] },
-  { "vrouter_interface", UNC_KT_VRT_IF, ARRAY_SIZE(kam_vrouter_interface),
+  { "vrouter_interface", UNC_KT_VRT_IF,
+    ARRAY_SIZE(kam_vrouter_interface),
     &kam_vrouter_interface[0] },
 #if 0
   { "vunknown", UNC_KT_VUNKNOWN, ARRAY_SIZE(kam_vunknown),
@@ -335,7 +375,8 @@ KtMap kt_map[] = {
     &kam_vlink[0] },
   { "network_monitor_group", UNC_KT_VBR_NWMONITOR, ARRAY_SIZE(kam_nwm),
     &kam_nwm[0] },
-  { "network_monitor_ip_host", UNC_KT_VBR_NWMONITOR_HOST, ARRAY_SIZE(kam_nwm_host),
+  { "network_monitor_ip_host", UNC_KT_VBR_NWMONITOR_HOST,
+    ARRAY_SIZE(kam_nwm_host),
     &kam_nwm_host[0] },
 
   { "flow_list", UNC_KT_FLOWLIST,
@@ -393,6 +434,24 @@ KtMap kt_map[] = {
     ARRAY_SIZE(kam_vrouter_if_flow_filter_entry),
     &kam_vrouter_if_flow_filter_entry[0] },
 
+  { "controller", UNC_KT_CONTROLLER, ARRAY_SIZE(kam_controller),
+    &kam_controller[0] },
+  { "ctr_domain", UNC_KT_CTR_DOMAIN, ARRAY_SIZE(kam_ctr_domain),
+    &kam_ctr_domain[0] },
+  { "switch", UNC_KT_SWITCH, ARRAY_SIZE(kam_switch),
+    &kam_switch[0] },
+  { "port", UNC_KT_PORT, ARRAY_SIZE(kam_port),
+    &kam_port[0] },
+  { "link", UNC_KT_LINK, ARRAY_SIZE(kam_link),
+    &kam_link[0] },
+  { "boundary", UNC_KT_BOUNDARY, ARRAY_SIZE(kam_boundary),
+    &kam_boundary[0] },
+  { "dataflow", UNC_KT_DATAFLOW, ARRAY_SIZE(kam_data_flow),
+    &kam_data_flow[0] },
+  { "ctr_dataflow", UNC_KT_CTR_DATAFLOW, ARRAY_SIZE(kam_ctr_data_flow),
+    &kam_ctr_data_flow[0] },
+  { "vtn_dataflow", UNC_KT_VTN_DATAFLOW, ARRAY_SIZE(kam_vtn_dataflow),
+    &kam_vtn_dataflow[0] },
   { NULL, UNC_KT_ROOT, 0, NULL }
 };
 
index 0c1f877dbfb53e41e91f81aae369db0f338c9835..a42acaf3e21d430c85a7ee4000491b74a1e9b441 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -322,7 +322,7 @@ KtAttrCapability::~KtAttrCapability() {
 
 bool KtAttrCapability::Init(uint32_t num_attrs) {
   num_attrs_ = num_attrs;
-  if (num_attrs == 0 ) {
+  if ( num_attrs == 0 ) {
     // KTs without any configuration attributes exist.
     // Just to avoid null pointers, and zero size allocation, keep 1 byte memory
     // Class varaible num_attrs_ still will be zero
@@ -400,5 +400,5 @@ bool KtAttrCapability::GetStateCapability(uint32_t *num_attrs,
   *state = (const uint8_t *)state_cap_;
   return true;
 }
-}  /* capa */
-}  /* unc */
+}  // namespace capa
+}  // namespace unc
index b9d9fc78dc692fafe743f97cc876c05e5abd84cc..f6d803980f675c04df17c9d192813d3e440ed056 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -40,14 +40,14 @@ class CapaIntf {
 
   /**
    * @brief  Return Attribute SUPPORTED or NOT_SUPPORTED of specified key type.
-   * 
+   *
    * @param[in]  ctrlr_type controller type.
    * @param[in]  version    controller version
    * @param[in]  keytype    Key type.
    * @param[out] instance_count  Instance count for specified keytype.
    * @param[out] num_attrs  Maximum attribute for specified key type
    * @param[out] attrs      Array of SUPPORTED and NOT_SUPPORTED information
-   * 
+   *
    * @retval true   Successful
    * @retval false  controller or keytype is not found
    */
@@ -60,13 +60,13 @@ class CapaIntf {
 
   /**
    * @brief  Return Attribute SUPPORTED or NOT_SUPPORTED of specified key type.
-   * 
+   *
    * @param[in]  ctrlr_type controller type.
    * @param[in]  version    controller version
    * @param[in]  keytype    Key type.
    * @param[out] num_attrs  Maximum attribute for specified key type
    * @param[out] attrs      Array of SUPPORTED and NOT_SUPPORTED information
-   * 
+   *
    * @retval true   Successful
    * @retval false  controler or keytype is not found
    */
@@ -78,13 +78,13 @@ class CapaIntf {
 
   /**
    * @brief  Return Attribute SUPPORTED or NOT_SUPPORTED of specified key type.
-   * 
+   *
    * @param[in]  ctrlr_type controller type.
    * @param[in]  version    controller version
    * @param[in]  keytype    Key type.
    * @param[out] num_attrs  Maximum attribute for specified key type
    * @param[out] attrs      Array of SUPPORTED and NOT_SUPPORTED information
-   * 
+   *
    * @retval true   Successful
    * @retval false  controller or keytype is not found
    */
@@ -96,13 +96,13 @@ class CapaIntf {
 
   /**
    * @brief  Return Attribute SUPPORTED or NOT_SUPPORTED of specified key type.
-   * 
+   *
    * @param[in]  ctrlr_type controller type.
    * @param[in]  version    controller version
    * @param[in]  keytype    Key type.
    * @param[out] num_attrs  Maximum attribute for specified key type
    * @param[out] attrs      Array of SUPPORTED and NOT_SUPPORTED information
-   * 
+   *
    * @retval true   Successful
    * @retval false  controller or keytype is not found
    */
@@ -118,7 +118,7 @@ class CapaIntf {
   static const uint32_t kNumberOfAvailability = 4;
 };
                                                                        // NOLINT
-} /* namespace capctrl */
-} /* namespace unc */
+}  // namespace capa
+}  // namespace unc
 
 #endif  // CAPA_INTF_HH_
index 72207ef3b68ff06c50d9254c2209e847422858d3..291f23b9407301b307f510b717c7c9804f6c3e47 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -45,7 +45,7 @@ enum vtn_neighbor {
   kCapConnectedIfName,
   kCapConnectedVlinkName
 };
-} // namespace vtn_neighbor
+}  // namespace vtn_neighbor
 
 namespace vbr {
 enum vbr {
@@ -86,14 +86,14 @@ enum vrt {
 
 namespace dhcp_relay_server {
 enum dhcp_relay_server {
- //   kCapServerAddr = 0
 //   kCapServerAddr = 0
 };
-} //namespace dhcp_relay_server
+}  // namespace dhcp_relay_server
 
 namespace dhcp_relay_if {
 enum dhcp_relay_if {
 };
-}//namespace dhcp_relay_if
+}  // namespace dhcp_relay_if
 
 namespace static_ip_route {
 enum static_ip_route {
@@ -287,7 +287,7 @@ enum vtn_flowfilter_entry {
 
 namespace vtn_flowfilter_controller {
 enum  vtn_flowfilter_controller {
-  kCapDirection=0,
+  kCapDirection = 0,
   kCapSeqNum
 };
 }  // namesapce vtn_flowfilter_controller
@@ -297,7 +297,7 @@ namespace vtn_policingmap {
 enum vtn_policingmap {
   kCapPolicername = 0
 };
-}  // namespace vbr_policingmap
+}  // namespace vtn_policingmap
 
 // UNC_KT_VTN_POLICINGMAP_CONTROLLER
 namespace vtn_policingmap_controller {
@@ -326,7 +326,7 @@ enum vbr_flowfilter_entry {
   kCapDscp,
   kCapPriority
 };
-}  // namespace vbridge_flowfilter_entry
+}  // namespace vbr_flowfilter_entry
 
 // UNC_KT_VBR_POLICINGMAP
 namespace vbr_policingmap {
@@ -346,7 +346,7 @@ enum vbr_policingmap_entry {
 namespace vbr_if_flowfilter {
 enum vbr_if_flowfilter {
 };
-}  // namespace vbrif_flowfilter
+}  // namespace vbr_if_flowfilter
 
 
 // UNC_KT_VBRIF_FLOWFILTER_ENTRY
@@ -362,21 +362,21 @@ enum vbr_if_flowfilter_entry {
   kCapDscp,
   kCapPriority
 };
-}  // namespace vbridge_if_flowfilter_entry
+}  // namespace vbr_if_flowfilter_entry
 
 // UNC_KT_VBRIF_POLICINGMAP
 namespace vbr_if_policingmap {
 enum vbr_if_policingmap {
   kCapPolicername = 0
 };
-}  // namespace vbrif_policingmap
+}  // namespace vbr_if_policingmap
 
 
 // UNC_KT_VBRIF_POLICINGMAP_ENTRY
 namespace vbr_if_policingmap_entry {
 enum vbr_if_policingmap_entry {
 };
-}  // namespace vbrif_policingmap_entry
+}  // namespace vbr_if_policingmap_entry
 
 
 // UNC_KT_VRTIF_FLOWFILTER
@@ -398,8 +398,29 @@ enum vrt_if_flowfilter_entry {
   kCapDscp,
   kCapPriority
 };
-}  // namespace vrouter_if_flowfilter_entry
-
+}  // namespace vrt_if_flowfilter_entry
+// UNC_KT_CONTROLLER
+namespace controller {
+enum controller {
+  kType = 0,
+  kVersion,
+  kDescription,
+  kIp_address,
+  kUser_name,
+  kPassword,
+  kEnableAudit,
+  kActualVersion,
+  kOperStatus,
+  kValid,
+  kCsrowstatus,
+  kCsattr
+};
+}  // namespace controller
+// UNC_KT_VTN_DATAFLOW
+namespace vtn_dataflow {
+enum vtn_dataflow {
+};
+}  // namespace vtn_dataflow
 }  // namespace capa
 }  // namespace unc
 
index 37e38ead049cb40d680ca9ad6bb07e76622a880b..dd3ffcff042733bd895feae3a8dffeb18b97d7df 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2012-2013 NEC Corporation
+# Copyright (c) 2012-2014 NEC Corporation
 # All rights reserved.
 # 
 # This program and the accompanying materials are made available under the
@@ -14,7 +14,7 @@
 # Version definitions.
 version_list {
   names = [
-    "5.0"
+    "5.0", "5.1"
   ];
 }
 
@@ -23,11 +23,17 @@ version_definition "5.0" {
   actual_version       = [5, 0, -1, -1];
 }
 
+version_definition "5.1" {
+  parent = "5.0";
+  actual_version_count = 1;
+  actual_version       = [5, 1, -1, -1];
+}
+
 # Capability definitions.
 
 
 vtn "5.0" {
-        instance_count          =  1000;
+        instance_count          =  0;
 
         # 0:CONF_CREATE, 1:CONF_UPDATE, 2:CONF_READ, 3:STATE_READ
         description             = [ true,  true,  true,  true  ];
@@ -38,7 +44,7 @@ vtn "5.0" {
 }
 
 vbridge "5.0" {
-        instance_count          =  10000;
+        instance_count          =  0;
 
         # 0:CONF_CREATE, 1:CONF_UPDATE, 2:CONF_READ, 3:STATE_READ
         domain_id               = [ true,  true,  true,  true  ];
@@ -93,7 +99,7 @@ dhcp_relay_interface "5.0" {
 } 
 
 static_ip_route "5.0" {
-        instance_count          =  65535;
+        instance_count          =  0;
 
         # 0:CONF_CREATE, 1:CONF_UPDATE, 2:CONF_READ, 3:STATE_READ
         group_metric            = [ false,  false,  false,  false ];
@@ -135,7 +141,7 @@ network_monitor_group "5.0" {
 }
 
 network_monitor_ip_host "5.0" {
-        instance_count          =  1000;
+        instance_count          =  0;
 
         # 0:CONF_CREATE, 1:CONF_UPDATE, 2:CONF_READ, 3:STATE_READ
         health_interval         = [ true,  true,  true,  true  ];
@@ -338,3 +344,213 @@ vrouter_interface_flow_filter_entry "5.0" {
         dscp                    = [ true,  true,  true,  true  ];
         priority                = [ true,  true,  true,  true  ];
 }
+
+# Capability definitions "5.0" and "5.1"
+
+controller "5.0" {
+        instance_count          =  1;
+
+        # 0:CONF_CREATE, 1:CONF_UPDATE, 2:CONF_READ, 3:STATE_READ
+        type             = [ true,  true,  true,  true  ];
+        version          = [ true,  true,  true,  true  ];
+        description      = [ true,  true,  true,  true  ];
+        ip_address       = [ true,  true,  true,  true  ];
+        user             = [ true,  true,  true,  true  ];
+        password         = [ true,  true,  true,  true  ];
+        enable_audit     = [ true,  true,  true,  true  ];
+}
+
+controller "5.1" {
+        instance_count          =  1;
+
+        # 0:CONF_CREATE, 1:CONF_UPDATE, 2:CONF_READ, 3:STATE_READ
+        type             = [ true,  true,  true,  true  ];
+        version          = [ true,  true,  true,  true  ];
+        description      = [ true,  true,  true,  true  ];
+        ip_address       = [ true,  true,  true,  true  ];
+        user             = [ true,  true,  true,  true  ];
+        password         = [ true,  true,  true,  true  ];
+        enable_audit     = [ true,  true,  true,  true  ];
+}
+
+ctr_domain "5.0" {
+        instance_count          =  0;
+
+        # 0:CONF_CREATE, 1:CONF_UPDATE, 2:CONF_READ, 3:STATE_READ
+        type             = [ true,  true,  true,  true  ];
+       description      = [ true,  true,  true,  true  ];
+}
+
+ctr_domain "5.1" {
+        instance_count          =  0;
+
+        # 0:CONF_CREATE, 1:CONF_UPDATE, 2:CONF_READ, 3:STATE_READ
+        type             = [ true,  true,  true,  true  ];
+        description      = [ true,  true,  true,  true  ];
+}
+
+logical_port "5.0" {
+        instance_count          =  0;
+
+        # 0:CONF_CREATE, 1:CONF_UPDATE, 2:CONF_READ, 3:STATE_READ
+        description         = [ true,  true,  true,  true  ];
+        port_type           = [ true,  true,  true,  true  ];
+        switch_id           = [ true,  true,  true,  true  ];
+        physical_port_id    = [ true,  true,  true,  true  ];
+        oper_down_criteria  = [ true,  true,  true,  true  ];
+}
+
+logical_port "5.1" {
+        instance_count          =  0;
+
+        # 0:CONF_CREATE, 1:CONF_UPDATE, 2:CONF_READ, 3:STATE_READ
+        description         = [ true,  true,  true,  true  ];
+        port_type           = [ true,  true,  true,  true  ];
+        switch_id           = [ true,  true,  true,  true  ];
+        physical_port_id    = [ true,  true,  true,  true  ];
+        oper_down_criteria  = [ true,  true,  true,  true  ];
+}
+
+
+switch "5.0" {
+        instance_count          =  0;
+
+        # 0:CONF_CREATE, 1:CONF_UPDATE, 2:CONF_READ, 3:STATE_READ
+        description      = [ true,  true,  true,  true  ];
+        model            = [ true,  true,  true,  true  ];
+        ip_address       = [ true,  true,  true,  true  ];
+        ipv6_address     = [ true,  true,  true,  true  ];
+        admin_status     = [ true,  true,  true,  true  ];
+        domain_name      = [ true,  true,  true,  true  ];
+}
+
+switch "5.1" {
+        instance_count          =  0;
+
+        # 0:CONF_CREATE, 1:CONF_UPDATE, 2:CONF_READ, 3:STATE_READ
+        description      = [ true,  true,  true,  true  ];
+        model            = [ true,  true,  true,  true  ];
+        ip_address       = [ true,  true,  true,  true  ];
+        ipv6_address     = [ true,  true,  true,  true  ];
+        admin_status     = [ true,  true,  true,  true  ];
+        domain_name      = [ true,  true,  true,  true  ];
+}
+
+port "5.0" {
+        instance_count          =  0;
+
+        # 0:CONF_CREATE, 1:CONF_UPDATE, 2:CONF_READ, 3:STATE_READ
+        port_number         = [ true,  true,  true,  true  ];
+        description         = [ true,  true,  true,  true  ];
+        admin_status        = [ true,  true,  true,  true  ];
+        trunk_allowed_vlan  = [ true,  true,  true,  true  ];
+}
+
+port "5.1" {
+        instance_count          =  0;
+
+        # 0:CONF_CREATE, 1:CONF_UPDATE, 2:CONF_READ, 3:STATE_READ
+        port_number         = [ true,  true,  true,  true  ];
+        description         = [ true,  true,  true,  true  ];
+        admin_status        = [ true,  true,  true,  true  ];
+        trunk_allowed_vlan  = [ true,  true,  true,  true  ];
+}
+
+
+link "5.0" {
+        instance_count          =  0;
+
+        # 0:CONF_CREATE, 1:CONF_UPDATE, 2:CONF_READ, 3:STATE_READ
+        description      = [ true,  true,  true,  true  ];
+}
+
+link "5.1" {
+        instance_count          =  0;
+
+        # 0:CONF_CREATE, 1:CONF_UPDATE, 2:CONF_READ, 3:STATE_READ
+        description      = [ true,  true,  true,  true  ];
+}
+
+
+boundary "5.0" {
+        instance_count         = 0;
+
+        description        = [ true,  true,  true,  true  ];
+        controller_name1   = [ true,  true,  true,  true  ];
+        domain_name1       = [ true,  true,  true,  true  ];
+        logical_port_id1   = [ true,  true,  true,  true  ];
+        controller_name2   = [ true,  true,  true,  true  ];
+        domain_name2       = [ true,  true,  true,  true  ];
+        logical_port_id2   = [ true,  true,  true,  true  ];
+
+}
+
+boundary "5.1" {
+        instance_count         = 0;
+
+        description        = [ true,  true,  true,  true  ];
+        controller_name1   = [ true,  true,  true,  true  ];
+        domain_name1       = [ true,  true,  true,  true  ];
+        logical_port_id1   = [ true,  true,  true,  true  ];
+        controller_name2   = [ true,  true,  true,  true  ];
+        domain_name2       = [ true,  true,  true,  true  ];
+        logical_port_id2   = [ true,  true,  true,  true  ];
+
+}
+
+
+ctr_dataflow "5.1" {
+        instance_count          =  0;
+
+        # 0:CONF_CREATE, 1:CONF_UPDATE, 2:CONF_READ, 3:STATE_READ
+       
+        controller_name         = [ false,  false,  false,  true  ];
+        controller_type         = [ false,  false,  false,  true  ];
+        flow_id                 = [ false,  false,  false,  true  ];
+        status                  = [ false,  false,  false,  true  ];
+        flow_type               = [ false,  false,  false,  true  ];
+        policy_index            = [ false,  false,  false,  true  ];
+        vtn_id                  = [ false,  false,  false,  true  ];
+        ingress_switch_id       = [ false,  false,  false,  true  ];
+        in_port                 = [ false,  false,  false,  true  ];
+        in_station_id           = [ false,  false,  false,  true  ];
+        in_domain               = [ false,  false,  false,  true  ];
+        egress_switch_id        = [ false,  false,  false,  true  ];
+        out_port                = [ false,  false,  false,  true  ];
+        out_station_id          = [ false,  false,  false,  true  ];
+        out_domain              = [ false,  false,  false,  true  ];
+        path_info_count         = [ false,  false,  false,  true  ];
+        match_count             = [ false,  false,  false,  true  ];
+        action_count            = [ false,  false,  false,  true  ];
+}
+
+dataflow "5.1" {
+        instance_count          =  0;
+
+        # 0:CONF_CREATE, 1:CONF_UPDATE, 2:CONF_READ, 3:STATE_READ
+        
+       controller_name         = [ false,  false,  false,  true  ];
+       controller_type         = [ false,  false,  false,  true  ];            
+       flow_id                 = [ false,  false,  false,  true  ];
+       status                  = [ false,  false,  false,  true  ];
+       flow_type               = [ false,  false,  false,  true  ];
+       policy_index            = [ false,  false,  false,  true  ];
+       vtn_id                  = [ false,  false,  false,  true  ];
+       ingress_switch_id       = [ false,  false,  false,  true  ];
+       in_port                 = [ false,  false,  false,  true  ];
+       in_station_id           = [ false,  false,  false,  true  ];
+       in_domain               = [ false,  false,  false,  true  ];
+       egress_switch_id        = [ false,  false,  false,  true  ];
+       out_port                = [ false,  false,  false,  true  ];
+       out_station_id          = [ false,  false,  false,  true  ];
+       out_domain              = [ false,  false,  false,  true  ];
+       path_info_count         = [ false,  false,  false,  true  ];
+       match_count             = [ false,  false,  false,  true  ];
+       action_count            = [ false,  false,  false,  true  ];
+}
+
+vtn_dataflow "5.1" {
+        instance_count          =  0;
+
+        # 0:CONF_CREATE, 1:CONF_UPDATE, 2:CONF_READ, 3:STATE_READ
+}
index a811913109500de4599a5097f8955b0b64e20dd7..da0192083132862486df5d7f71a9463b4f93db08 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -178,12 +178,6 @@ DalBindColumnInfo::UpdateColumnInfo(const DalTableIndex table_index,
     return false;
   }
 
-  if (io_type_ == io_type && io_code == kDalIoCodeInput) {
-    UPLL_LOG_TRACE("Overwriting Input Bind Information for Table(%s)"
-                   " Column(%s): ", schema::TableName(table_index),
-                   schema::ColumnName(table_index, column_index_));
-    return false;
-  }
   io_type_ = io_type;
 
   // One time updation of properties
@@ -531,7 +525,6 @@ DalBindColumnInfo::AllocateColBuffer(void **col_buff,
 // Resets the DAL output buffer to store further results
 bool
 DalBindColumnInfo::ResetDalOutputBuffer(const DalTableIndex table_index) {
-
   // Validating table_index
   if (table_index >= schema::table::kDalNumTables) {
     UPLL_LOG_DEBUG("Invalid table(%s) for Column(%s)",
@@ -697,7 +690,6 @@ void
 DalBindColumnInfo::GetCopyDataType(const DalCDataType app_data_type,
                                    const SQLSMALLINT dal_data_type,
                                    DalDataTypeCode *data_type_code) {
-
   *data_type_code = kDalDtCodeInvalid;
   switch (dal_data_type) {
     case SQL_C_CHAR:
@@ -1331,7 +1323,7 @@ DalBindColumnInfo::ColInfoToStr(const DalTableIndex table_index) const {
      << "\n  App Array Size : " << app_array_size_
      << "\n  Bind Type : " << DalIoTypeToStr(io_type_);
   if (app_out_addr_ != NULL) {
-    ss  << "\n  App Output Address : " << app_out_addr_ 
+    ss  << "\n  App Output Address : " << app_out_addr_
         << "\n  App Output Value : "
         << ValueInBindAddrToStr(table_index,
                             const_cast<const void**>(&app_out_addr_));
@@ -1526,7 +1518,7 @@ std::string
 DalBindColumnInfo::AppValueToStr(const DalCDataType app_data_type,
                                  const void **addr) const {
   std::stringstream ss;
-  
+
   if (addr == NULL || *addr == NULL) {
     ss << "(null)";
     return ss.str();
index 7d3ac0ee66050264c5cf9e29a423d0f93d2f401b..404cb379482efebe871398cd7b7af670c56d1732 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -11,7 +11,7 @@
 /**
  * dal_bind_column_info.hh
  *   Contains bind information for each column defined in the schema
- */ 
+ */
 
 #ifndef __DAL_BIND_COLUMN_INFO__HH__
 #define __DAL_BIND_COLUMN_INFO__HH__
@@ -370,7 +370,7 @@ class DalBindColumnInfo {
     DalIoType io_type_;           // IO type to specify the column binding
 
     void *app_out_addr_;          // DAL user buffer for output. The result
-                                  // will be stored to this address after 
+                                  // will be stored to this address after
                                   // successful query execution/fetch results
 
     void *db_in_out_addr_;        // DAL buffer contains input/output value
index c7730756ce44ff244be7fad2e799727df3034134..7855ffa575fb781998f18f1597e1cfa499d99285 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -254,7 +254,7 @@ DalBindInfo::ResetDalOutBuffer(void) {
         col_info->get_io_type() == kDalIoOutputAndMatch) {
       if (col_info->ResetDalOutputBuffer(table_index_) != true) {
         UPLL_LOG_DEBUG("Failed Restting DAL output buffer for Column(%s) "
-                       "in Table(%s)", 
+                       "in Table(%s)",
                        schema::ColumnName(table_index_,
                          col_info->get_column_index()),
                        schema::TableName(table_index_));
@@ -338,7 +338,7 @@ DalBindInfo::BindAttribute(const DalIoCode io_code,
 
   // Create new DalBindColumnInfo instance if
   //   1. there is no instance available
-  //   2. there is an instance and binding is already done. 
+  //   2. there is an instance and binding is already done.
   // Update the exisiting instance if binding is not done before.
   for (iter = bind_list_.begin(); iter != bind_list_.end(); ++iter) {
     col_info = *iter;
index 7770abd764a1cf74889550d46e9a14c547376b8b..f321c7082550bb778ca0eaf3b161001eafae58ee 100644 (file)
@@ -1,25 +1,26 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-/*                                                                
- * dal_info.hh 
+/*
+ * dal_info.hh
  *   Contians information and buffers from dal user for all the columns
  *   in a specific table
  *   The buffers store the input values from dal user to databse and
  *   the output values from database to dal user.
- */ 
+ */
 
 #ifndef __DAL_BIND_INFO__HH__
 #define __DAL_BIND_INFO__HH__
 
 #include <stdint.h>
 #include <sqltypes.h>
+#include <string>
 #include <vector>
 #include "dal_schema.hh"
 #include "dal_bind_column_info.hh"
index e216fd1207a649754618b8dd52f940abeda732d0..6a61f8ad7918c3e7998917fec67685cb3df19d63 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -28,6 +28,11 @@ enum DalConnType {
   kDalConnReadWrite      // Read Write Connection
 };
 
+enum DalConnState {
+  kDalDbDisconnected = 0,  // DB disconnected
+  kDalDbConnected          // DB connected
+};
+
 /**
  *  DalConnIntf 
  *    Connection and Transaction APIs for database
index d295821b17199510acf2e35de15950cbb4f6867a..56517bbb19277ca32a4f485d15b69838ad3f7f98 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -183,7 +183,7 @@ DalCursor::CloseStmtHandle(SQLHANDLE stmt_handle) {
     if (free_dal_rc != kDalRcSuccess) {
       UPLL_LOG_TRACE("Err - %d. Failed to Free Handle %p",
                      free_dal_rc, stmt_handle);
-      return ((dal_rc == kDalRcSuccess) ? free_dal_rc : dal_rc); 
+      return ((dal_rc == kDalRcSuccess) ? free_dal_rc : dal_rc);
     }
   }
   stmt_handle = NULL;
index 30ed5c4439a1c9c2f120292aca67f1054d635eb2..c315f087e4df55679563b1248e85f97a4b72631f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -45,16 +45,16 @@ enum DalResultCode {
   kDalRcConnNotAvailable,     // For all DCI and DMI APIs
   kDalRcNotDisconnected,      // For DCI interface DisconnectFromDB
   kDalRcTxnError,             // For DCI interaces Commit/RollbackTransaction
-  // TODO(sankar): It should be internal to DAL. DAL user does not have
+  // This should be internal to DAL. DAL user does not have
   // knowledge about Conn Handle
   kDalRcInvalidConnHandle,    // For DCI and DMI interfaces
   kDalRcInvalidCursor,        // For DMI interface GetNextRecord/CloseCursor
   kDalRcDataError,            // For all DMI Interfaces
-  // TODO(sankar): kDalRcRecordAlreadyExists not taken care
   kDalRcRecordAlreadyExists,  // For DMI interface CreateRecord API
+  kDalRcParentNotFound,       // For DMI interface CreateRecord API
   kDalRcRecordNotFound,       // For DMI interfaces Get/Update APIs
   kDalRcRecordNoMore,         // For DMI interface GetNextRecord
-  // TODO(sankar): kDalRcAccessViolation not taken care
+  // kDalRcAccessViolation not taken care
   kDalRcAccessViolation,      // For DMI Edit Interface with RO conn
   kDalRcConnTimeOut,          // For DCI and DMI interfaces
   kDalRcQueryTimeOut,         // For all DMI interfaces
index 99d510b3bcc4b1cf676a7a1fa2bc397992d2f312..496161fcfeb4f48d64f140826eb98d3660dfd44a 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  * dal_dml_intf.hh
  *   Contains definition of DalDmlIntf
  *   DML interface of database
- * 
+ *
  * Implemented by DalOdbcMgr
- */ 
+ */
 
 #ifndef __DAL_DML_INTF_HH__
 #define __DAL_DML_INTF_HH__
 
 #include <stdint.h>
+#include <string>
 #include "dal_defines.hh"
 #include "dal_bind_info.hh"
 #include "dal_schema.hh"
@@ -29,7 +30,7 @@ namespace upll {
 namespace dal {
 
 /**
- *  DalConnIntf 
+ *  DalConnIntf
  *    Database management query APIs for database
  *
  *  Inherited by DalOdbcMgr
@@ -378,11 +379,12 @@ class DalDmlIntf {
      */
     virtual DalResultCode DeleteRecords(const UpllCfgType cfg_type,
                                 const DalTableIndex table_index,
-                                const DalBindInfo *matching_attr_info) const = 0;
+                                const DalBindInfo
+                                *matching_attr_info) const = 0;
 
     /**
      * CreateRecord
-     *   Creates the record in table with the given input data for 
+     *   Creates the record in table with the given input data for
      *   the given cfg_type
      *
      * @param[in] cfg_type        - Configuration Type for which the record
@@ -622,12 +624,13 @@ class DalDmlIntf {
     virtual DalResultCode CopyEntireRecords(const UpllCfgType dest_cfg_type,
                                     const UpllCfgType src_cfg_type,
                                     const DalTableIndex table_index,
-                                    const DalBindInfo *output_attr_info) const = 0;
+                                    const DalBindInfo
+                                    *output_attr_info) const = 0;
 
     /**
      * CopyModifiedRecords
-     *   Copies the entire records of table from source configuration to
-     *   destination configuration.
+     *   Copies the modified records of table from source configuration to
+     *   destination configuration based on the operation.
      *
      * @param[in] dest_cfg_type   - Configuration Type where the records to be
      *                              copied (not equal to src_cfg_type)
@@ -637,20 +640,23 @@ class DalDmlIntf {
      * @param[in] output_and_match_attr_info
      *                            - Bind Information for output and match
      *                            - columns
+     * @param[in] op              - Operation to be performed for Copy.
      *
      * @return DalResultCode      - kDalRcSuccess in case of success
      *                            - Valid errorcode otherwise
      *                              On successful execution, both the
-     *                              configurations have same records
+     *                              configurations have same records.
      *
      * Note:
      * Information on Copy Logic
-     * 1. Remvoe the records from dest_cfg_type that are result of
-     *    GetDeletedRecords(dest_cfg_type, src_cfg_type, ...)
-     * 2. Add the records in dest_cfg_type that are result of
-     *    GetCreatedRecords(dest_cfg_type, src_cfg_type, ...)
-     * 3. Update the records in dest_cfg_type with the records from 
-     *    src_cfg_type that are result of
+     * 1. For DELETE operation, Remove the records from dest_cfg_type that are
+     *    result of GetDeletedRecords(dest_cfg_type, src_cfg_type, ...)
+     *    This should be called for Child schema first and then parent schema
+     *    if Parent-Child relationship is established.
+     * 2. For CREATE operation, Add the records in dest_cfg_type that are
+     *    result of GetCreatedRecords(dest_cfg_type, src_cfg_type, ...)
+     * 3. For UPDATE operation, Update the records in dest_cfg_type with the
+     *    records from src_cfg_type that are result of
      *    GetUpdatedRecords(dest_cfg_type, src_cfg_type, ...)
      * 4. Recommended to use this API, where difference between both the
      *    configurations are comparitively lesser.
@@ -682,50 +688,9 @@ class DalDmlIntf {
                     const UpllCfgType dest_cfg_type,
                     const UpllCfgType src_cfg_type,
                     const DalTableIndex table_index,
-                    const DalBindInfo *output_and_match_attr_info) const = 0;
+                    const DalBindInfo *output_and_match_attr_info,
+                    const unc_keytype_operation_t op) const = 0;
 
-    /**
-     * CopyModifiedInsertRecords
-     *   Inserts the additional records of table from source configuration to
-     *   destination configuration.
-     *
-     * @param[in] dest_cfg_type   - Configuration Type where the records to be
-     *                              copied (not equal to src_cfg_type)
-     * @param[in] src_cfg_type    - Configuration Type from where the records
-     *                              will be copied (not equal to dest_cfg_type)
-     * @param[in] table_index     - Valid Index of the table
-     * @param[in] output_and_match_attr_info
-     *                            - Bind Information for output and match
-     *                            - columns
-     *
-     * @return DalResultCode      - kDalRcSuccess in case of success
-     *                            - Valid errorcode otherwise
-     *                              On successful execution, both the
-     *                              configurations have same records.
-     *
-     * Note:
-     * Information on Copy Logic
-     * 1. Add the records in dest_cfg_type that are result of
-     *    GetCreatedRecords(dest_cfg_type, src_cfg_type, ...)
-     *    
-     * Information on usage of DalBindInfo
-     *  1. Valid instance of DalBindInfo with same table_index used in this API
-     *  2. BindInput if used for any attributes, ignored.
-     *  3. BindMatch if used for any attributes, ignored.
-     *  4. BindOutput is optional.
-     *     BindOutput, if used, copy the values of bound columns from
-     *     src_cfg_type to dst_cfg_type
-     *     BindOutput, if not used, copy the values of all columns from
-     *     src_cfg_type to dst_cfg_type
-     *     Since the bound value is not used for this API, it is ok to bind
-     *     dummy address. Do not pass NULL address.
-     *
-     */
-    virtual DalResultCode CopyModifiedInsertRecords(
-                    const UpllCfgType dest_cfg_type,
-                    const UpllCfgType src_cfg_type,
-                    const DalTableIndex table_index,
-                    const DalBindInfo *output_and_match_attr_info) const = 0;
 
     /**
      * CopyMatchingRecords
index 77a511a964ae1fbf70ebbe89df2a259d7e8e042c..f73f45d6d0327188766e607f332defb9b2eab3c0 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -121,6 +121,10 @@ static const DalErrMap dal_err_map[] = {
 
   // 23000 Integrity Constraint - may not happen in this appln
   {"23000", kDalRcGeneralError},
+  // 23503 Foreign Key violation
+  {"23503", kDalRcParentNotFound},
+  // 23505 Unique Constraint violation
+  {"23505", kDalRcRecordAlreadyExists},
 
   // 24000 Invalid Cursor State
   {"24000", kDalRcInvalidCursor},
@@ -293,16 +297,6 @@ DalErrorHandler::ProcessOdbcErrors(const SQLSMALLINT handle_type,
                                    const SQLHANDLE handle,
                                    const SQLRETURN sql_rc,
                                    DalResultCode *dal_rc) {
-  const uint16_t kDalSqlStateLen = 6;
-  const uint16_t kDalSqlErrMsgLen = 256;
-  SQLCHAR sql_state[kDalSqlStateLen];
-  SQLCHAR err_msg[kDalSqlErrMsgLen];
-  SQLINTEGER err_code = 0;
-  SQLSMALLINT err_msg_len = 0;
-
-  memset(sql_state, 0, kDalSqlStateLen);
-  memset(err_msg, 0, kDalSqlErrMsgLen);
-
   switch (sql_rc) {
     // Success
     case SQL_SUCCESS:
@@ -363,6 +357,12 @@ DalErrorHandler::ProcessOdbcErrors(const SQLSMALLINT handle_type,
       {
         SQLRETURN rc = SQL_SUCCESS;
         uint16_t rec_no = 1;
+        const uint16_t kDalSqlStateLen = 6;
+        const uint16_t kDalSqlErrMsgLen = 256;
+        SQLCHAR sql_state[kDalSqlStateLen];
+        SQLCHAR err_msg[kDalSqlErrMsgLen];
+        SQLINTEGER err_code = 0;
+        SQLSMALLINT err_msg_len = 0;
 
         do {
           err_code = 0;
index 42ecdd992e51261215b4b277f4e8c5459987b787..406dcfcee3aff9a398fc03ee8bb5fe8a61ad7497 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -32,7 +32,8 @@ pfc_bool_t DalModule::init(void) {
 
 pfc_bool_t DalModule::fini(void) {
   pfc_log_notice("Fini");
-  DalErrorHandler::ClearErrorMap();
+  // There could be transactions in progress. So not clearing error map.
+  // DalErrorHandler::ClearErrorMap();
 
   return PFC_TRUE;
 }
index 620c44298ba1a204482932b7820736de422d2b86..5e946526d929870711c813dfafe8a43008586168 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
 #include "dal_query_builder.hh"
 #include "dal_error_handler.hh"
 
+#define SET_DB_STATE_DISCONNECT(dal_rc, conn_state)       \
+  if ((dal_rc) == kDalRcConnNotEstablished ||             \
+      (dal_rc) == kDalRcConnNotAvailable ||               \
+      (dal_rc) == kDalRcConnTimeOut ||                    \
+      (dal_rc) == kDalRcQueryTimeOut) {                   \
+    (conn_state) = kDalDbDisconnected;                    \
+  }
+
 namespace unc {
 namespace upll {
 namespace dal {
@@ -30,11 +38,11 @@ DalOdbcMgr::DalOdbcMgr() {
   dal_env_handle_ = SQL_NULL_HANDLE;
   dal_conn_handle_ = SQL_NULL_HANDLE;
   conn_type_ = kDalConnReadOnly;
+  conn_state_ = kDalDbDisconnected;
 }
 
 /* Desctructor */
 DalOdbcMgr::~DalOdbcMgr() {
-  // TODO(sankar): what if FreeHandle returns error?
   FreeHandle(SQL_HANDLE_DBC, dal_conn_handle_);
   FreeHandle(SQL_HANDLE_ENV, dal_env_handle_);
 }
@@ -93,7 +101,6 @@ DalOdbcMgr::Init() {
                                      sql_rc, &dal_rc);
   if (dal_rc != kDalRcSuccess) {
     UPLL_LOG_DEBUG("Err - %d. Failed to register DB with ODBC V3", dal_rc);
-    // TODO(sankar): what if FreeHandle returns error?
     FreeHandle(SQL_HANDLE_ENV, dal_env_handle_);
     return dal_rc;
   }
@@ -129,8 +136,6 @@ DalResultCode
 DalOdbcMgr::ConnectToDb(const DalConnType conn_type) const {
   SQLRETURN     sql_rc;
   DalResultCode dal_rc;
-  // PFC_ASSERT(dal_env_handle_);
-
   conn_type_ = conn_type;
 
   if (dal_conn_handle_ == NULL) {
@@ -141,7 +146,8 @@ DalOdbcMgr::ConnectToDb(const DalConnType conn_type) const {
   // Set Connection Attributes
   dal_rc = SetConnAttributes(dal_conn_handle_, conn_type);
   if (dal_rc != kDalRcSuccess) {
-    UPLL_LOG_TRACE("Err - %d. Some or All Connection Attributes not set", dal_rc);
+    UPLL_LOG_TRACE("Err - %d. Some or All Connection Attributes not set",
+                   dal_rc);
     return dal_rc;
   }
 
@@ -165,6 +171,7 @@ DalOdbcMgr::ConnectToDb(const DalConnType conn_type) const {
                    dal_rc, dal_conn_str.c_str());
     return dal_rc;
   }
+  conn_state_ = kDalDbConnected;
 
   UPLL_LOG_TRACE("Successfully connected to Datatbase with conn string(%s)",
                  dal_conn_str.c_str());
@@ -192,6 +199,7 @@ DalOdbcMgr::DisconnectFromDb() const {
                   "handle(%p)",  dal_rc, dal_conn_handle_);
     return dal_rc;
   }
+  conn_state_ = kDalDbDisconnected;
   UPLL_LOG_TRACE("Successfully Disconnected from Database");
   return kDalRcSuccess;
 }  // DalOdbcMgr::DisconnectFromDb
@@ -203,7 +211,6 @@ DalOdbcMgr::CommitTransaction(void) const {
   SQLRETURN     sql_rc;
   DalResultCode dal_rc;
 
-  // PFC_ASSERT(dal_conn_handle_);
   if (dal_conn_handle_ == NULL) {
     UPLL_LOG_DEBUG("NULL Connection Handle");
     return kDalRcGeneralError;
@@ -213,6 +220,7 @@ DalOdbcMgr::CommitTransaction(void) const {
   DalErrorHandler::ProcessOdbcErrors(SQL_HANDLE_DBC,
                                      dal_conn_handle_,
                                      sql_rc, &dal_rc);
+  SET_DB_STATE_DISCONNECT(dal_rc, conn_state_);
   if (dal_rc != kDalRcSuccess) {
     UPLL_LOG_DEBUG("Err - %d. Failed to commit transaction for the "
                   "handle(%p)",  dal_rc, dal_conn_handle_);
@@ -240,6 +248,7 @@ DalOdbcMgr::RollbackTransaction(void) const {
   DalErrorHandler::ProcessOdbcErrors(SQL_HANDLE_DBC,
                                      dal_conn_handle_,
                                      sql_rc, &dal_rc);
+  SET_DB_STATE_DISCONNECT(dal_rc, conn_state_);
   if (dal_rc != kDalRcSuccess) {
     UPLL_LOG_DEBUG("Err - %d. Failed to rollback transaction for the "
                   "handle(%p)",  dal_rc, dal_conn_handle_);
@@ -281,7 +290,7 @@ DalOdbcMgr::GetSingleRecord(const UpllCfgType cfg_type,
 
   if (table_index != bind_info->get_table_index()) {
     UPLL_LOG_DEBUG("Table Index Mismatch with bind info "
-                   "\n Query - %s; Bind - %s",
+                   "Query - %s; Bind - %s",
                    schema::TableName(table_index),
                    schema::TableName(bind_info->get_table_index()));
     return kDalRcGeneralError;
@@ -314,6 +323,7 @@ DalOdbcMgr::GetSingleRecord(const UpllCfgType cfg_type,
   DalErrorHandler::ProcessOdbcErrors(SQL_HANDLE_STMT,
                                      dal_stmt_handle,
                                      sql_rc, &dal_rc);
+  SET_DB_STATE_DISCONNECT(dal_rc, conn_state_);
   if (dal_rc != kDalRcSuccess) {
     UPLL_LOG_DEBUG("%d - Failed to Fetch result", dal_rc);
     FreeHandle(SQL_HANDLE_STMT, dal_stmt_handle);
@@ -366,7 +376,7 @@ DalOdbcMgr::GetMultipleRecords(const UpllCfgType cfg_type,
 
   if (table_index != bind_info->get_table_index()) {
     UPLL_LOG_DEBUG("Table Index Mismatch with bind info "
-                   "\n Query - %s; Bind - %s",
+                   "Query - %s; Bind - %s",
                    schema::TableName(table_index),
                    schema::TableName(bind_info->get_table_index()));
     return kDalRcGeneralError;
@@ -420,6 +430,7 @@ DalOdbcMgr::GetNextRecord(const DalCursor *cursor) const {
   }
 
   dal_rc = cursor->GetNextRecord();
+  SET_DB_STATE_DISCONNECT(dal_rc, conn_state_);
 
   if (dal_rc != kDalRcSuccess) {
     if (dal_rc == kDalRcRecordNoMore) {
@@ -449,6 +460,8 @@ DalOdbcMgr::CloseCursor(DalCursor *cursor, bool delete_bind) const {
   }
 
   dal_rc = cursor->CloseCursor(delete_bind);
+  SET_DB_STATE_DISCONNECT(dal_rc, conn_state_);
+
   if (dal_rc != kDalRcSuccess) {
     UPLL_LOG_TRACE("Error closing Cursor Handle(%p)", cursor);
     delete cursor;
@@ -465,21 +478,75 @@ DalOdbcMgr::RecordExists(const UpllCfgType cfg_type,
                          const DalTableIndex table_index,
                          const DalBindInfo *bind_info,
                          bool *existence) const {
+  SQLHANDLE     dal_stmt_handle = SQL_NULL_HANDLE;
+  SQLRETURN     sql_rc;
   DalResultCode dal_rc;
-  uint32_t count;
+  DalQueryBuilder  qbldr;
+  std::string query_stmt;
 
-  *existence = false;
-  dal_rc = GetRecordCount(cfg_type, table_index, bind_info, &count);
+  // Validating Inputs
+  if (cfg_type == UPLL_DT_INVALID) {
+    UPLL_LOG_DEBUG("Invalid Config Type - %d", cfg_type);
+    return kDalRcGeneralError;
+  }
+
+  if (table_index >= schema::table::kDalNumTables) {
+    UPLL_LOG_DEBUG("Invalid Table Index - %d", table_index);
+    return kDalRcGeneralError;
+  }
+
+  // BindInput - NA; BindOutput - NA; BindMatch - Optional
+  // No need to validate bind_info
+  if (bind_info != NULL) {
+    if (table_index != bind_info->get_table_index()) {
+      UPLL_LOG_DEBUG("Table Index Mismatch with bind info "
+                     "Query - %s; Bind - %s",
+                     schema::TableName(table_index),
+                     schema::TableName(bind_info->get_table_index()));
+      return kDalRcGeneralError;
+    }
+  }
+
+  // Build Query Statement
+  if (qbldr.get_sql_statement(kDalRecExistsQT, bind_info, query_stmt,
+                        table_index, cfg_type) != true) {
+    UPLL_LOG_DEBUG("Failed Building Query Stmt");
+    return kDalRcGeneralError;
+  } else {
+    UPLL_LOG_TRACE("Query Stmt - %s", query_stmt.c_str());
+  }
+
+  // Allocate Stmt Handle, Bind and Execute the Query Statement
+  dal_rc = ExecuteQuery(&dal_stmt_handle,
+                        &query_stmt,
+                        bind_info);
   if (dal_rc != kDalRcSuccess) {
+    UPLL_LOG_DEBUG("Err - %d. XXXXX - Failed Executing Query Stmt - %s",
+                   dal_rc, query_stmt.c_str());
+    FreeHandle(SQL_HANDLE_STMT, dal_stmt_handle);
     return dal_rc;
   }
+  UPLL_LOG_TRACE("Completed Executing Query Stmt - %s",
+                query_stmt.c_str());
+
+  // Fetching results from the resultset
+  SQLLEN row_count = 0;
+  sql_rc = SQLRowCount(dal_stmt_handle, &row_count);
+  DalErrorHandler::ProcessOdbcErrors(SQL_HANDLE_STMT,
+                                     dal_stmt_handle,
+                                     sql_rc, &dal_rc);
+  SET_DB_STATE_DISCONNECT(dal_rc, conn_state_);
 
-  if (count > 0) {
-    *existence = true;
+  if (dal_rc != kDalRcSuccess) {
+    UPLL_LOG_DEBUG("Err - %d. XXXXX - Failed to fetch result from DB", dal_rc);
+    FreeHandle(SQL_HANDLE_STMT, dal_stmt_handle);
+    return dal_rc;
   }
 
+  *existence = (row_count > 0) ? true : false;
   UPLL_LOG_TRACE("Completed Executing RecordExists and result of"
                 " existence is %d",  *existence);
+  FreeHandle(SQL_HANDLE_STMT, dal_stmt_handle);
   return kDalRcSuccess;
 }
 
@@ -515,7 +582,7 @@ DalOdbcMgr::GetSiblingBegin(const UpllCfgType cfg_type,
 
   if (table_index != bind_info->get_table_index()) {
     UPLL_LOG_DEBUG("Table Index Mismatch with bind info "
-                   "\n Query - %s; Bind - %s",
+                   "Query - %s; Bind - %s",
                    schema::TableName(table_index),
                    schema::TableName(bind_info->get_table_index()));
     return kDalRcGeneralError;
@@ -585,7 +652,7 @@ DalOdbcMgr::GetSiblingRecords(const UpllCfgType cfg_type,
 
   if (table_index != bind_info->get_table_index()) {
     UPLL_LOG_DEBUG("Table Index Mismatch with bind info "
-                   "\n Query - %s; Bind - %s",
+                   "Query - %s; Bind - %s",
                    schema::TableName(table_index),
                    schema::TableName(bind_info->get_table_index()));
     return kDalRcGeneralError;
@@ -654,7 +721,7 @@ DalOdbcMgr::GetSiblingCount(const UpllCfgType cfg_type,
 
   if (table_index != bind_info->get_table_index()) {
     UPLL_LOG_DEBUG("Table Index Mismatch with bind info "
-                   "\n Query - %s; Bind - %s",
+                   "Query - %s; Bind - %s",
                    schema::TableName(table_index),
                    schema::TableName(bind_info->get_table_index()));
     return kDalRcGeneralError;
@@ -738,7 +805,7 @@ DalOdbcMgr::GetRecordCount(const UpllCfgType cfg_type,
   if (bind_info != NULL) {
     if (table_index != bind_info->get_table_index()) {
       UPLL_LOG_DEBUG("Table Index Mismatch with bind info "
-                     "\n Query - %s; Bind - %s",
+                     "Query - %s; Bind - %s",
                      schema::TableName(table_index),
                      schema::TableName(bind_info->get_table_index()));
       return kDalRcGeneralError;
@@ -784,6 +851,7 @@ DalOdbcMgr::GetRecordCount(const UpllCfgType cfg_type,
   DalErrorHandler::ProcessOdbcErrors(SQL_HANDLE_STMT,
                                      dal_stmt_handle,
                                      sql_rc, &dal_rc);
+  SET_DB_STATE_DISCONNECT(dal_rc, conn_state_);
   if (dal_rc != kDalRcSuccess) {
     UPLL_LOG_DEBUG("Err - %d. Failed to fetch result from DB", dal_rc);
     FreeHandle(SQL_HANDLE_STMT, dal_stmt_handle);
@@ -821,7 +889,7 @@ DalOdbcMgr::DeleteRecords(const UpllCfgType cfg_type,
   if (bind_info != NULL) {
     if (table_index != bind_info->get_table_index()) {
       UPLL_LOG_DEBUG("Table Index Mismatch with bind info "
-                     "\n Query - %s; Bind - %s",
+                     "Query - %s; Bind - %s",
                      schema::TableName(table_index),
                      schema::TableName(bind_info->get_table_index()));
       return kDalRcGeneralError;
@@ -846,14 +914,141 @@ DalOdbcMgr::DeleteRecords(const UpllCfgType cfg_type,
     UPLL_LOG_DEBUG("Err - %d. Failed Executing Query Stmt - %s",
                    dal_rc, query_stmt.c_str());
     FreeHandle(SQL_HANDLE_STMT, dal_stmt_handle);
+    if (dal_rc == kDalRcParentNotFound) {
+      UPLL_LOG_DEBUG
+          ("Foreign Key Violation error. Returning kDalRcGeneralError");
+      dal_rc = kDalRcGeneralError;
+    }
     return dal_rc;
   }
   UPLL_LOG_TRACE("Completed Executing Query Stmt - %s",
                 query_stmt.c_str());
   FreeHandle(SQL_HANDLE_STMT, dal_stmt_handle);
+
+  // Storing dirty table list for skip unmodified tables during commit
+  if (cfg_type == UPLL_DT_CANDIDATE) {
+    delete_dirty.insert(table_index);
+  }
   return kDalRcSuccess;
 }   // DalOdbcMgr::DeleteRecords
 
+DalResultCode
+DalOdbcMgr::CheckParentInstance(const UpllCfgType cfg_type,
+                                const DalTableIndex table_index,
+                                const DalBindInfo *bind_info) const {
+  UPLL_FUNC_TRACE;
+  DalResultCode dal_rc;
+
+  if (bind_info->get_input_bind_count() == 0) {
+    UPLL_LOG_DEBUG("No Input bind data for ParentCheck");
+    return kDalRcGeneralError;
+  }
+
+  // Create Bind Info for Instance Check
+  DalBindInfo ci_binfo(schema::TableParentIndex(table_index));
+  DalBindList bind_list = bind_info->get_bind_list();
+  for (DalBindList::iterator iter = bind_list.begin();
+       iter != bind_list.end(); ++iter) {
+    // Break for loop when all Foreign Keys bound
+    if (ci_binfo.get_input_bind_count() ==
+        schema::TableNumFkCols(table_index)) {
+      break;
+    }
+
+    DalBindColumnInfo *col_info = NULL;
+    col_info = reinterpret_cast<DalBindColumnInfo *>(*iter);
+    if (col_info == NULL) {
+      UPLL_LOG_DEBUG("Invalid column Info");
+      return kDalRcGeneralError;
+    }
+
+    // Bind only for Input and Foreign Key indices
+    if ((col_info->get_io_type() != kDalIoInputOnly &&
+         col_info->get_io_type() != kDalIoInputAndMatch) ||
+        col_info->get_column_index() >= schema::TableNumFkCols(table_index)) {
+      continue;
+    }
+
+    if (!ci_binfo.BindMatch(col_info->get_column_index(),
+                            col_info->get_app_data_type(),
+                            col_info->get_app_array_size(),
+                            col_info->get_db_in_out_addr())) {
+      UPLL_LOG_DEBUG("Error Binding Match for Parent Check");
+      return kDalRcGeneralError;
+    }
+  }
+  UPLL_LOG_VERBOSE("Constructed Bind Info for Parent Check : %s",
+                   ci_binfo.BindListToStr().c_str());
+
+  // Call RecordExists with the newly created BindInfo
+  bool existence;
+  dal_rc = RecordExists(cfg_type, schema::TableParentIndex(table_index),
+                        &ci_binfo, &existence);
+  if (dal_rc == kDalRcSuccess) {
+    return ((existence == true) ? kDalRcRecordAlreadyExists
+                                : kDalRcRecordNotFound);
+  }
+  return dal_rc;
+}
+
+DalResultCode
+DalOdbcMgr::CheckInstance(const UpllCfgType cfg_type,
+                          const DalTableIndex table_index,
+                          const DalBindInfo *bind_info) const {
+  UPLL_FUNC_TRACE;
+  DalResultCode dal_rc;
+
+  if (bind_info->get_input_bind_count() == 0) {
+    UPLL_LOG_DEBUG("No Input bind data for CheckInstance");
+    return kDalRcGeneralError;
+  }
+
+  // Create Bind Info for Instance Check
+  DalBindInfo ci_binfo(table_index);
+  DalBindList bind_list = bind_info->get_bind_list();
+  for (DalBindList::iterator iter = bind_list.begin();
+       iter != bind_list.end(); ++iter) {
+    // Break for loop when all Foreign Keys bound
+    if (ci_binfo.get_input_bind_count() ==
+        schema::TableNumPkCols(table_index)) {
+      break;
+    }
+
+    DalBindColumnInfo *col_info = NULL;
+    col_info = reinterpret_cast<DalBindColumnInfo *>(*iter);
+    if (col_info == NULL) {
+      UPLL_LOG_DEBUG("Invalid column Info");
+      return kDalRcGeneralError;
+    }
+
+    // Bind only for Input and Foreign Key indices
+    if ((col_info->get_io_type() != kDalIoInputOnly &&
+         col_info->get_io_type() != kDalIoInputAndMatch) ||
+        col_info->get_column_index() >= schema::TableNumPkCols(table_index)) {
+      continue;
+    }
+
+    if (!ci_binfo.BindMatch(col_info->get_column_index(),
+                            col_info->get_app_data_type(),
+                            col_info->get_app_array_size(),
+                            col_info->get_db_in_out_addr())) {
+      UPLL_LOG_DEBUG("Error Binding Match for Instance Check");
+      return kDalRcGeneralError;
+    }
+  }
+  UPLL_LOG_VERBOSE("Constructed Bind Info for Instance Check : %s",
+                   ci_binfo.BindListToStr().c_str());
+
+  // Call RecordExists with the existing BindInfo
+  bool existence;
+  dal_rc = RecordExists(cfg_type, table_index, &ci_binfo, &existence);
+  if (dal_rc == kDalRcSuccess) {
+    return ((existence == true) ? kDalRcRecordAlreadyExists
+                                : kDalRcRecordNotFound);
+  }
+  return dal_rc;
+}
+
 // Creates a record with the given data
 DalResultCode
 DalOdbcMgr::CreateRecord(const UpllCfgType cfg_type,
@@ -875,7 +1070,6 @@ DalOdbcMgr::CreateRecord(const UpllCfgType cfg_type,
     return kDalRcGeneralError;
   }
 
-  // PFC_ASSERT(bind_info)
   if (bind_info == NULL) {
     UPLL_LOG_DEBUG("NULL Bind Info for Table(%s)",
                    schema::TableName(table_index));
@@ -884,12 +1078,24 @@ DalOdbcMgr::CreateRecord(const UpllCfgType cfg_type,
 
   if (table_index != bind_info->get_table_index()) {
     UPLL_LOG_DEBUG("Table Index Mismatch with bind info "
-                   "\n Query - %s; Bind - %s",
+                   "Query - %s; Bind - %s",
                    schema::TableName(table_index),
                    schema::TableName(bind_info->get_table_index()));
     return kDalRcGeneralError;
   }
 
+  // Parent Existence Check for Import Datatype
+  if (cfg_type == UPLL_DT_IMPORT && schema::TableNumFkCols(table_index) > 0) {
+    dal_rc = CheckParentInstance(cfg_type, table_index, bind_info);
+    if (dal_rc == kDalRcRecordNotFound) {
+       UPLL_LOG_DEBUG("Parent Does not Exist");
+       return kDalRcParentNotFound;
+    } else if (dal_rc != kDalRcRecordAlreadyExists) {
+       UPLL_LOG_DEBUG("Error during Parent Existence Check");
+       return dal_rc;
+    }
+  }
+
   // Build Query Statement
   if (qbldr.get_sql_statement(kDalCreateRecQT, bind_info, query_stmt,
                         table_index, cfg_type) != true) {
@@ -903,6 +1109,29 @@ DalOdbcMgr::CreateRecord(const UpllCfgType cfg_type,
   dal_rc = ExecuteQuery(&dal_stmt_handle,
                         &query_stmt,
                         bind_info);
+  // Diagnose GeneralError for ParentCheck and InstanceCheck
+  if (dal_rc == kDalRcGeneralError) {
+    UPLL_LOG_DEBUG("Err - %d. Failed Executing Query Stmt - %s",
+                   dal_rc, query_stmt.c_str());
+    dal_rc = CheckInstance(cfg_type, table_index, bind_info);
+    if (dal_rc == kDalRcRecordAlreadyExists) {
+      UPLL_LOG_DEBUG("Instance Already Exists");
+      return kDalRcRecordAlreadyExists;
+    } else if (dal_rc != kDalRcRecordNotFound) {
+      UPLL_LOG_DEBUG("Error during Instance Check");
+      return dal_rc;
+    }
+    if (schema::TableNumFkCols(table_index) > 0) {
+      dal_rc = CheckParentInstance(cfg_type, table_index, bind_info);
+      if (dal_rc == kDalRcRecordNotFound) {
+        UPLL_LOG_DEBUG("Parent Does not Exist");
+        return kDalRcParentNotFound;
+      } else if (dal_rc != kDalRcRecordAlreadyExists) {
+        UPLL_LOG_DEBUG("Error during Parent Check");
+        return dal_rc;
+      }
+    }
+  }
   if (dal_rc != kDalRcSuccess) {
     UPLL_LOG_DEBUG("Err - %d. Failed Executing Query Stmt - %s",
                    dal_rc, query_stmt.c_str());
@@ -912,6 +1141,12 @@ DalOdbcMgr::CreateRecord(const UpllCfgType cfg_type,
   UPLL_LOG_TRACE("Completed Executing Query Stmt - %s",
                 query_stmt.c_str());
   FreeHandle(SQL_HANDLE_STMT, dal_stmt_handle);
+
+  // Storing dirty table list for skip unmodified tables during commit
+  if (cfg_type == UPLL_DT_CANDIDATE || cfg_type == UPLL_DT_IMPORT) {
+    UPLL_LOG_TRACE("Insert for table %d", table_index);
+    create_dirty.insert(table_index);
+  }
   return kDalRcSuccess;
 }   // DalOdbcMgr::CreateRecord
 
@@ -945,7 +1180,7 @@ DalOdbcMgr::UpdateRecords(const UpllCfgType cfg_type,
 
   if (table_index != bind_info->get_table_index()) {
     UPLL_LOG_DEBUG("Table Index Mismatch with bind info "
-                   "\n Query - %s; Bind - %s",
+                   "Query - %s; Bind - %s",
                    schema::TableName(table_index),
                    schema::TableName(bind_info->get_table_index()));
     return kDalRcGeneralError;
@@ -968,12 +1203,22 @@ DalOdbcMgr::UpdateRecords(const UpllCfgType cfg_type,
   if (dal_rc != kDalRcSuccess) {
     UPLL_LOG_DEBUG("Err - %d. Failed Executing Query Stmt - %s",
                    dal_rc, query_stmt.c_str());
+    if (dal_rc == kDalRcParentNotFound) {
+      UPLL_LOG_DEBUG
+          ("Foreign Key Violation error. Returning kDalRcGeneralError");
+      dal_rc = kDalRcGeneralError;
+    }
     FreeHandle(SQL_HANDLE_STMT, dal_stmt_handle);
     return dal_rc;
   }
   UPLL_LOG_TRACE("Completed Executing Query Stmt - %s",
                 query_stmt.c_str());
   FreeHandle(SQL_HANDLE_STMT, dal_stmt_handle);
+
+  // Storing dirty table list for skip unmodified tables during commit
+  if (cfg_type == UPLL_DT_CANDIDATE) {
+    update_dirty.insert(table_index);
+  }
   return kDalRcSuccess;
 }   // DalOdbcMgr::UpdateRecords
 
@@ -1007,6 +1252,16 @@ DalOdbcMgr::GetDeletedRecords(const UpllCfgType cfg_type_1,
     return kDalRcGeneralError;
   }
 
+  // Skip if table is non dirty for commit
+  if (cfg_type_1 == UPLL_DT_CANDIDATE && cfg_type_2 == UPLL_DT_RUNNING &&
+      delete_dirty.find(table_index) == delete_dirty.end()) {
+    UPLL_LOG_DEBUG("Skipping GetDeletedRecords for %s",
+      schema::TableName(table_index));
+    return kDalRcRecordNotFound;
+  }
+  UPLL_LOG_TRACE("Performing GetDeletedRecords for %s",
+    schema::TableName(table_index));
+
   // PFC_ASSERT(bind_info)
   if (bind_info == NULL) {
     UPLL_LOG_DEBUG("NULL Bind Info for Table(%s)",
@@ -1016,7 +1271,7 @@ DalOdbcMgr::GetDeletedRecords(const UpllCfgType cfg_type_1,
 
   if (table_index != bind_info->get_table_index()) {
     UPLL_LOG_DEBUG("Table Index Mismatch with bind info "
-                   "\n Query - %s; Bind - %s",
+                   "Query - %s; Bind - %s",
                    schema::TableName(table_index),
                    schema::TableName(bind_info->get_table_index()));
     return kDalRcGeneralError;
@@ -1086,6 +1341,16 @@ DalOdbcMgr::GetCreatedRecords(const UpllCfgType cfg_type_1,
     return kDalRcGeneralError;
   }
 
+  // Skip if table is not dirty
+  if (cfg_type_1 == UPLL_DT_CANDIDATE && cfg_type_2 == UPLL_DT_RUNNING &&
+      create_dirty.find(table_index) == create_dirty.end()) {
+    UPLL_LOG_DEBUG("Skipping GetCreatedRecords for %s",
+      schema::TableName(table_index));
+    return kDalRcRecordNotFound;
+  }
+  UPLL_LOG_TRACE("Performing GetCreatedRecords for %s",
+    schema::TableName(table_index));
+
   // PFC_ASSERT(bind_info)
   if (bind_info == NULL) {
     UPLL_LOG_DEBUG("NULL Bind Info for Table(%s)",
@@ -1095,7 +1360,7 @@ DalOdbcMgr::GetCreatedRecords(const UpllCfgType cfg_type_1,
 
   if (table_index != bind_info->get_table_index()) {
     UPLL_LOG_DEBUG("Table Index Mismatch with bind info "
-                   "\n Query - %s; Bind - %s",
+                   "Query - %s; Bind - %s",
                    schema::TableName(table_index),
                    schema::TableName(bind_info->get_table_index()));
     return kDalRcGeneralError;
@@ -1167,6 +1432,16 @@ DalOdbcMgr::GetUpdatedRecords(const UpllCfgType cfg_type_1,
     return kDalRcGeneralError;
   }
 
+  // Skip if table is not dirty
+  if (cfg_type_1 == UPLL_DT_CANDIDATE && cfg_type_2 == UPLL_DT_RUNNING &&
+      update_dirty.find(table_index) == update_dirty.end()) {
+    UPLL_LOG_DEBUG("Skipping GetUpdatedRecords for %s",
+      schema::TableName(table_index));
+    return kDalRcRecordNotFound;
+  }
+  UPLL_LOG_TRACE("Performing GetUpdatedRecords for %s",
+    schema::TableName(table_index));
+
   // PFC_ASSERT(bind_info)
   if (cfg_1_bind_info == NULL || cfg_2_bind_info == NULL) {
     UPLL_LOG_DEBUG("NULL Bind Info for Table(%s)",
@@ -1177,7 +1452,7 @@ DalOdbcMgr::GetUpdatedRecords(const UpllCfgType cfg_type_1,
   if (table_index != cfg_1_bind_info->get_table_index() ||
       table_index != cfg_2_bind_info->get_table_index()) {
     UPLL_LOG_DEBUG("Table Index Mismatch with bind info "
-                   "\n Query - %s; Bind1 - %s; Bind2 - %s",
+                   "Query - %s; Bind1 - %s; Bind2 - %s",
                    schema::TableName(table_index),
                    schema::TableName(cfg_1_bind_info->get_table_index()),
                    schema::TableName(cfg_2_bind_info->get_table_index()));
@@ -1289,7 +1564,7 @@ DalOdbcMgr::CopyEntireRecords(const UpllCfgType dest_cfg_type,
   // BindInput - NA; BindOuput - O; BindMatch - NA;
   if (bind_info != NULL  && table_index != bind_info->get_table_index()) {
     UPLL_LOG_DEBUG("Table Index Mismatch with bind info "
-                   "\n Query - %s; Bind - %s",
+                   "Query - %s; Bind - %s",
                    schema::TableName(table_index),
                    schema::TableName(bind_info->get_table_index()));
     return kDalRcGeneralError;
@@ -1309,6 +1584,10 @@ DalOdbcMgr::CopyEntireRecords(const UpllCfgType dest_cfg_type,
   dal_rc = ExecuteQuery(&dal_stmt_handle,
                         &query_stmt, bind_info);
 
+  if (dal_rc == kDalRcParentNotFound) {
+    UPLL_LOG_DEBUG("Foreign Key Violation error. Returning kDalRcGeneralError");
+    dal_rc = kDalRcGeneralError;
+  }
   if (dal_rc != kDalRcSuccess) {
     UPLL_LOG_DEBUG("Err - %d. Failed Executing Query Stmt - %s",
                    dal_rc, query_stmt.c_str());
@@ -1326,7 +1605,8 @@ DalResultCode
 DalOdbcMgr::CopyModifiedRecords(const UpllCfgType dest_cfg_type,
                                 const UpllCfgType src_cfg_type,
                                 const DalTableIndex table_index,
-                                const DalBindInfo *bind_info) const {
+                                const DalBindInfo *bind_info,
+                                const unc_keytype_operation_t op) const {
   SQLHANDLE     dal_stmt_handle = SQL_NULL_HANDLE;
   DalResultCode dal_rc;
   DalQueryBuilder  qbldr;
@@ -1352,123 +1632,47 @@ DalOdbcMgr::CopyModifiedRecords(const UpllCfgType dest_cfg_type,
   // BindInput - NA; BindOuput - O; BindMatch - O;
   if (bind_info != NULL && table_index != bind_info->get_table_index()) {
     UPLL_LOG_DEBUG("Table Index Mismatch with bind info "
-                   "\n Query - %s; Bind - %s",
+                   "Query - %s; Bind - %s",
                    schema::TableName(table_index),
                    schema::TableName(bind_info->get_table_index()));
     return kDalRcGeneralError;
   }
 
-  // Delete deleted records from dst
-  // Build Query Statement
-  if (qbldr.get_sql_statement(kDalCopyModRecDelQT, bind_info, query_stmt,
-                        table_index, dest_cfg_type, src_cfg_type) != true) {
-    UPLL_LOG_TRACE("Failed Building Query Stmt");
-    return kDalRcGeneralError;
-  } else {
-    UPLL_LOG_DEBUG("Query Stmt - %s", query_stmt.c_str());
-  }
-
-  // Allocate Stmt Handle, Bind and Execute the Query Statement
-  dal_rc = ExecuteQuery(&dal_stmt_handle,
-                        &query_stmt, bind_info);
-
-  if (dal_rc != kDalRcSuccess && dal_rc != kDalRcRecordNotFound) {
-    UPLL_LOG_DEBUG("Err - %d. Failed Executing Query Stmt - %s",
-                   dal_rc, query_stmt.c_str());
-    FreeHandle(SQL_HANDLE_STMT, dal_stmt_handle);
-    return dal_rc;
-  }
-  FreeHandle(SQL_HANDLE_STMT, dal_stmt_handle);
-  UPLL_LOG_TRACE("Completed Executing Query Stmt - %s",
-                query_stmt.c_str());
-
-  // Insert created records to dst
-  if (qbldr.get_sql_statement(kDalCopyModRecCreateQT, bind_info, query_stmt,
-                        table_index, dest_cfg_type, src_cfg_type) != true) {
-    UPLL_LOG_TRACE("Failed Building Query Stmt");
-    return kDalRcGeneralError;
-  } else {
-    UPLL_LOG_DEBUG("Query Stmt - %s", query_stmt.c_str());
-  }
-
-  dal_rc = ExecuteQuery(&dal_stmt_handle,
-                        &query_stmt, bind_info);
-
-  if (dal_rc != kDalRcSuccess && dal_rc != kDalRcRecordNotFound) {
-    UPLL_LOG_DEBUG("Err - %d. Failed Executing Query Stmt - %s",
-                   dal_rc, query_stmt.c_str());
-    if (dal_stmt_handle != SQL_NULL_HANDLE) {
-      FreeHandle(SQL_HANDLE_STMT, dal_stmt_handle);
+  DalApiNum query_template;
+  if (op == UNC_OP_DELETE) {
+    if (dest_cfg_type == UPLL_DT_CANDIDATE &&
+        src_cfg_type == UPLL_DT_RUNNING &&
+        (create_dirty.find(table_index) == create_dirty.end())) {
+       UPLL_LOG_DEBUG("No entries modified for the operation %d in table %d",
+                      op, table_index);
+       return kDalRcRecordNotFound;
     }
-    return dal_rc;
-  }
-  FreeHandle(SQL_HANDLE_STMT, dal_stmt_handle);
-  UPLL_LOG_TRACE("Completed Executing Query Stmt - %s",
-                query_stmt.c_str());
-
-// Update modified records to dst
-  if (qbldr.get_sql_statement(kDalCopyModRecUpdateQT, bind_info, query_stmt,
-                        table_index, dest_cfg_type, src_cfg_type) != true) {
-    UPLL_LOG_TRACE("Failed Building Query Stmt");
-    return kDalRcGeneralError;
+    query_template = kDalCopyModRecDelQT;
+  } else if (op == UNC_OP_CREATE) {
+    if (dest_cfg_type == UPLL_DT_CANDIDATE &&
+        src_cfg_type == UPLL_DT_RUNNING &&
+        delete_dirty.find(table_index) == delete_dirty.end()) {
+       UPLL_LOG_DEBUG("No entries modified for the operation %d in table %d",
+                      op, table_index);
+       return kDalRcRecordNotFound;
+    }
+    query_template = kDalCopyModRecCreateQT;
+  } else if (op == UNC_OP_UPDATE) {
+    if (dest_cfg_type == UPLL_DT_CANDIDATE &&
+        src_cfg_type == UPLL_DT_RUNNING &&
+        update_dirty.find(table_index) == update_dirty.end()) {
+       UPLL_LOG_DEBUG("No entries modified for the operation %d in table %d",
+                      op, table_index);
+       return kDalRcRecordNotFound;
+    }
+    query_template = kDalCopyModRecUpdateQT;
   } else {
-    UPLL_LOG_DEBUG("Query Stmt - %s", query_stmt.c_str());
-  }
-
-  dal_rc = ExecuteQuery(&dal_stmt_handle,
-                        &query_stmt, bind_info);
-
-  if (dal_rc != kDalRcSuccess && dal_rc != kDalRcRecordNotFound) {
-    UPLL_LOG_DEBUG("Err - %d. Failed Executing Query Stmt - %s",
-                   dal_rc, query_stmt.c_str());
-    FreeHandle(SQL_HANDLE_STMT, dal_stmt_handle);
-    return dal_rc;
-  }
-  UPLL_LOG_TRACE("Completed Executing Query Stmt - %s",
-                query_stmt.c_str());
-  FreeHandle(SQL_HANDLE_STMT, dal_stmt_handle);
-  return kDalRcSuccess;
-}  // DalOdbcMgr::CopyModifiedRecords
-
-// Copies only the modified records from dst to src cfg_type
-DalResultCode
-DalOdbcMgr::CopyModifiedInsertRecords(const UpllCfgType dest_cfg_type,
-                                const UpllCfgType src_cfg_type,
-                                const DalTableIndex table_index,
-                                const DalBindInfo *bind_info) const {
-  SQLHANDLE     dal_stmt_handle = SQL_NULL_HANDLE;
-  DalResultCode dal_rc;
-  DalQueryBuilder  qbldr;
-  std::string query_stmt;
-
-  // Validating Inputs
-  if (dest_cfg_type == UPLL_DT_INVALID || src_cfg_type == UPLL_DT_INVALID) {
-    UPLL_LOG_DEBUG("Invalid Config Type - %d %d", dest_cfg_type, src_cfg_type);
-    return kDalRcGeneralError;
-  }
-
-  if (dest_cfg_type == src_cfg_type) {
-    UPLL_LOG_DEBUG("Same Config Type - %d %d", dest_cfg_type, src_cfg_type);
-    return kDalRcGeneralError;
-  }
-
-  if (table_index >= schema::table::kDalNumTables) {
-    UPLL_LOG_DEBUG("Invalid Table Index - %d", table_index);
-    return kDalRcGeneralError;
-  }
-
-  // No need to validate bindinfo
-  // BindInput - NA; BindOuput - O; BindMatch - O;
-  if (bind_info != NULL && table_index != bind_info->get_table_index()) {
-    UPLL_LOG_DEBUG("Table Index Mismatch with bind info "
-                   "\n Query - %s; Bind - %s",
-                   schema::TableName(table_index),
-                   schema::TableName(bind_info->get_table_index()));
+    UPLL_LOG_DEBUG("Invalid operation %d", op);
     return kDalRcGeneralError;
   }
 
-  // Insert created records to dst
-  if (qbldr.get_sql_statement(kDalCopyModRecCreateQT, bind_info, query_stmt,
+  // Build Query Statement
+  if (qbldr.get_sql_statement(query_template, bind_info, query_stmt,
                         table_index, dest_cfg_type, src_cfg_type) != true) {
     UPLL_LOG_TRACE("Failed Building Query Stmt");
     return kDalRcGeneralError;
@@ -1476,22 +1680,26 @@ DalOdbcMgr::CopyModifiedInsertRecords(const UpllCfgType dest_cfg_type,
     UPLL_LOG_DEBUG("Query Stmt - %s", query_stmt.c_str());
   }
 
+  // Allocate Stmt Handle, Bind and Execute the Query Statement
   dal_rc = ExecuteQuery(&dal_stmt_handle,
                         &query_stmt, bind_info);
 
+  if (dal_rc == kDalRcParentNotFound) {
+    UPLL_LOG_DEBUG("Foreign Key Violation error. Returning kDalRcGeneralError");
+    dal_rc = kDalRcGeneralError;
+  }
   if (dal_rc != kDalRcSuccess && dal_rc != kDalRcRecordNotFound) {
     UPLL_LOG_DEBUG("Err - %d. Failed Executing Query Stmt - %s",
                    dal_rc, query_stmt.c_str());
-    if (dal_stmt_handle != SQL_NULL_HANDLE) {
-      FreeHandle(SQL_HANDLE_STMT, dal_stmt_handle);
-    }
+    FreeHandle(SQL_HANDLE_STMT, dal_stmt_handle);
     return dal_rc;
   }
   FreeHandle(SQL_HANDLE_STMT, dal_stmt_handle);
   UPLL_LOG_TRACE("Completed Executing Query Stmt - %s",
                 query_stmt.c_str());
+
   return kDalRcSuccess;
-}  // DalOdbcMgr::CopyModifiedInsertRecords
+}  // DalOdbcMgr::CopyModifiedRecords
 
 // Copies the matching records from dst to src cfg_type
 DalResultCode
@@ -1529,7 +1737,7 @@ DalOdbcMgr::CopyMatchingRecords(const UpllCfgType dest_cfg_type,
 
   if (table_index != bind_info->get_table_index()) {
     UPLL_LOG_DEBUG("Table Index Mismatch with bind info "
-                   "\n Query - %s; Bind - %s",
+                   "Query - %s; Bind - %s",
                    schema::TableName(table_index),
                    schema::TableName(bind_info->get_table_index()));
     return kDalRcGeneralError;
@@ -1550,6 +1758,10 @@ DalOdbcMgr::CopyMatchingRecords(const UpllCfgType dest_cfg_type,
                         &query_stmt,
                         bind_info);
 
+  if (dal_rc == kDalRcParentNotFound) {
+    UPLL_LOG_DEBUG("Foreign Key Violation error. Returning kDalRcGeneralError");
+    dal_rc = kDalRcGeneralError;
+  }
   if (dal_rc != kDalRcSuccess) {
     UPLL_LOG_DEBUG("Err - %d. Failed Executing Query Stmt - %s",
                    dal_rc, query_stmt.c_str());
@@ -1596,7 +1808,7 @@ DalOdbcMgr::CheckRecordsIdentical(const UpllCfgType cfg_type_1,
   // BindInput - NA; BindOuput - NA; BindMatch - O;
   if (bind_info != NULL && table_index != bind_info->get_table_index()) {
     UPLL_LOG_DEBUG("Table Index Mismatch with bind info "
-                   "\n Query - %s; Bind - %s",
+                   "Query - %s; Bind - %s",
                    schema::TableName(table_index),
                    schema::TableName(bind_info->get_table_index()));
     return kDalRcGeneralError;
@@ -1641,6 +1853,7 @@ DalOdbcMgr::CheckRecordsIdentical(const UpllCfgType cfg_type_1,
   DalErrorHandler::ProcessOdbcErrors(SQL_HANDLE_STMT,
                                      dal_stmt_handle,
                                      sql_rc, &dal_rc);
+  SET_DB_STATE_DISCONNECT(dal_rc, conn_state_);
   if (dal_rc != kDalRcSuccess) {
     UPLL_LOG_DEBUG("Err - %d. Failed to fetch result from DB", dal_rc);
     FreeHandle(SQL_HANDLE_STMT, dal_stmt_handle);
@@ -1696,6 +1909,7 @@ DalOdbcMgr::ExecuteAppQuerySingleRecord(
   DalErrorHandler::ProcessOdbcErrors(SQL_HANDLE_STMT,
                                      dal_stmt_handle,
                                      sql_rc, &dal_rc);
+  SET_DB_STATE_DISCONNECT(dal_rc, conn_state_);
   if (dal_rc != kDalRcSuccess) {
     UPLL_LOG_DEBUG("%d - Failed to Fetch result", dal_rc);
     FreeHandle(SQL_HANDLE_STMT, dal_stmt_handle);
@@ -1851,7 +2065,6 @@ void
 DalOdbcMgr::SetStmtAttributes(const SQLHANDLE stmt_handle) const {
   SQLRETURN     sql_rc;
   DalResultCode dal_rc;
-  uint32_t query_timeout;
 
   // SQL_ATTR_NOSCAN - SQL_NOSCAN_ON (default: SQL_NOSCAN_OFF)
   //   Scan for escape sequence to edit query stmts acc to datasource
@@ -1867,13 +2080,15 @@ DalOdbcMgr::SetStmtAttributes(const SQLHANDLE stmt_handle) const {
   DalErrorHandler::ProcessOdbcErrors(SQL_HANDLE_STMT,
                                      stmt_handle,
                                      sql_rc, &dal_rc);
+  SET_DB_STATE_DISCONNECT(dal_rc, conn_state_);
   if (dal_rc != kDalRcSuccess) {
     UPLL_LOG_TRACE(" Failed to Set NoScan On. Default value set");
   }
 
   // SQL_ATTR_QUERY_TIMEOUT - conf (default: 0 no timeout)
+#if 0
   // TODO(sankar): should come from conf file
-  query_timeout = 0;
+  uint32_t query_timeout = 0;
   sql_rc = SQLSetStmtAttr(stmt_handle,
                           SQL_ATTR_QUERY_TIMEOUT,
                           reinterpret_cast<SQLPOINTER>(query_timeout),
@@ -1886,10 +2101,11 @@ DalOdbcMgr::SetStmtAttributes(const SQLHANDLE stmt_handle) const {
   DalErrorHandler::ProcessOdbcErrors(SQL_HANDLE_STMT,
                                      stmt_handle,
                                      sql_rc, &dal_rc);
+  SET_DB_STATE_DISCONNECT(dal_rc, conn_state_);
   if (dal_rc != kDalRcSuccess) {
     UPLL_LOG_TRACE(" Failed to set Query Timeout. Default value set");
   }
-
+#endif
   // SQL_ATTR_ROW_ARRAY_SIZE - 1 (default)
   //   Number of records to be fetched using SQLFetch
 
@@ -1939,6 +2155,7 @@ DalOdbcMgr::SetCursorAttributes(const SQLHANDLE stmt_handle,
   DalErrorHandler::ProcessOdbcErrors(SQL_HANDLE_STMT,
                                      stmt_handle,
                                      sql_rc, &dal_rc);
+  SET_DB_STATE_DISCONNECT(dal_rc, conn_state_);
   if (dal_rc != kDalRcSuccess) {
     UPLL_LOG_TRACE(" Failed to set Max Row Size set. Default value set");
   }
@@ -2241,6 +2458,7 @@ DalOdbcMgr::ExecuteQuery(SQLHANDLE *dal_stmt_handle,
   DalErrorHandler::ProcessOdbcErrors(SQL_HANDLE_STMT,
                                      *dal_stmt_handle,
                                      sql_rc, &dal_rc);
+  SET_DB_STATE_DISCONNECT(dal_rc, conn_state_);
   if (dal_rc != kDalRcSuccess) {
     UPLL_LOG_DEBUG("Err - %d. Failed to Allocate Statement handle",
                    dal_rc);
@@ -2263,6 +2481,7 @@ DalOdbcMgr::ExecuteQuery(SQLHANDLE *dal_stmt_handle,
   // Bind attributes to query statement only if available
   if (bind_info != NULL) {
     dal_rc = BindToQuery(dal_stmt_handle, bind_info);
+    SET_DB_STATE_DISCONNECT(dal_rc, conn_state_);
     if (dal_rc != kDalRcSuccess) {
       UPLL_LOG_DEBUG("Err - %d. Failed to Bind parameters to Query",
                      dal_rc);
@@ -2279,6 +2498,7 @@ DalOdbcMgr::ExecuteQuery(SQLHANDLE *dal_stmt_handle,
   DalErrorHandler::ProcessOdbcErrors(SQL_HANDLE_STMT,
                                      *dal_stmt_handle,
                                      sql_rc, &dal_rc);
+  SET_DB_STATE_DISCONNECT(dal_rc, conn_state_);
   if (dal_rc != kDalRcSuccess) {
     UPLL_LOG_DEBUG("Err - %d. Failed to Execute Query %s",
                    dal_rc, query_stmt->c_str());
@@ -2320,7 +2540,7 @@ DalOdbcMgr::FreeHandle(const SQLSMALLINT handle_type,
 std::string
 DalOdbcMgr::GetConnString(const DalConnType conn_type) const {
   std::string dal_conn_str;
-  std::string dal_cf_str = std::string(DAL_CONF_FILE);
+  std::string dal_cf_str = DAL_CONF_FILE;
   std::string conn_param_str;
 
   pfc::core::ConfHandle dal_cf_handle(dal_cf_str, &dal_cfdef);
index 1c8bd09b81ad2fc9f8d34d7e2245fe8538584291..82a7ba16ec8a530122d7b856c11d589a4e5a3775 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -17,6 +17,7 @@
 
 #include <sql.h>
 #include <string>
+#include <set>
 #include "pfcxx/module.hh"
 #include "unc/config.h"
 #include "dal_defines.hh"
@@ -86,6 +87,7 @@ class DalOdbcMgr:public DalConnIntf, public DalDmlIntf {
     DalResultCode DisconnectFromDb() const;
 
     inline DalConnType get_conn_type() { return conn_type_; }
+    inline DalConnState get_conn_state() { return conn_state_; }
 
     /**
      * CommitTransaction
@@ -438,6 +440,10 @@ class DalOdbcMgr:public DalConnIntf, public DalDmlIntf {
      * CreateRecord
      *   Creates the record in table with the given input data for 
      *   the given cfg_type
+     *   Performs parent existence check if cfg_type is UPLL_DT_IMPORT
+     *   Performs existence check and parent existence check if
+     *   kDalRcGeneralError is returned. This is done to get proper error
+     *   codes when Database cannot.
      *
      * @param[in] cfg_type        - Configuration Type for which the record
      *                              has to be created
@@ -680,8 +686,8 @@ class DalOdbcMgr:public DalConnIntf, public DalDmlIntf {
 
     /**
      * CopyModifiedRecords
-     *   Copies the entire records of table from source configuration to
-     *   destination configuration.
+     *   Copies the modified records of table from source configuration to
+     *   destination configuration based on the operation.
      *
      * @param[in] dest_cfg_type   - Configuration Type where the records to be
      *                              copied (not equal to src_cfg_type)
@@ -691,6 +697,7 @@ class DalOdbcMgr:public DalConnIntf, public DalDmlIntf {
      * @param[in] output_and_match_attr_info
      *                            - Bind Information for output and match
      *                            - columns
+     * @param[in] op              - Operation to be performed for Copy.
      *
      * @return DalResultCode      - kDalRcSuccess in case of success
      *                            - Valid errorcode otherwise
@@ -699,12 +706,14 @@ class DalOdbcMgr:public DalConnIntf, public DalDmlIntf {
      *
      * Note:
      * Information on Copy Logic
-     * 1. Remove the records from dest_cfg_type that are result of
-     *    GetDeletedRecords(dest_cfg_type, src_cfg_type, ...)
-     * 2. Add the records in dest_cfg_type that are result of
-     *    GetCreatedRecords(dest_cfg_type, src_cfg_type, ...)
-     * 3. Update the records in dest_cfg_type with the records from 
-     *    src_cfg_type that are result of
+     * 1. For DELETE operation, Remove the records from dest_cfg_type that are
+     *    result of GetDeletedRecords(dest_cfg_type, src_cfg_type, ...)
+     *    This should be called for Child schema first and then parent schema
+     *    if Parent-Child relationship is established.
+     * 2. For CREATE operation, Add the records in dest_cfg_type that are
+     *    result of GetCreatedRecords(dest_cfg_type, src_cfg_type, ...)
+     * 3. For UPDATE operation, Update the records in dest_cfg_type with the
+     *    records from src_cfg_type that are result of
      *    GetUpdatedRecords(dest_cfg_type, src_cfg_type, ...)
      * 4. Recommended to use this API, where difference between both the
      *    configurations are comparitively lesser.
@@ -736,50 +745,8 @@ class DalOdbcMgr:public DalConnIntf, public DalDmlIntf {
                     const UpllCfgType dest_cfg_type,
                     const UpllCfgType src_cfg_type,
                     const DalTableIndex table_index,
-                    const DalBindInfo *output_and_match_attr_info) const;
-
-    /**
-     * CopyModifiedInsertRecords
-     *   Inserts the additional records of table from source configuration to
-     *   destination configuration.
-     *
-     * @param[in] dest_cfg_type   - Configuration Type where the records to be
-     *                              copied (not equal to src_cfg_type)
-     * @param[in] src_cfg_type    - Configuration Type from where the records
-     *                              will be copied (not equal to dest_cfg_type)
-     * @param[in] table_index     - Valid Index of the table
-     * @param[in] output_and_match_attr_info
-     *                            - Bind Information for output and match
-     *                            - columns
-     *
-     * @return DalResultCode      - kDalRcSuccess in case of success
-     *                            - Valid errorcode otherwise
-     *                              On successful execution, both the
-     *                              configurations have same records.
-     *
-     * Note:
-     * Information on Copy Logic
-     * 1. Add the records in dest_cfg_type that are result of
-     *    GetCreatedRecords(dest_cfg_type, src_cfg_type, ...)
-     *    
-     * Information on usage of DalBindInfo
-     *  1. Valid instance of DalBindInfo with same table_index used in this API
-     *  2. BindInput if used for any attributes, ignored.
-     *  3. BindMatch if used for any attributes, ignored.
-     *  4. BindOutput is optional.
-     *     BindOutput, if used, copy the values of bound columns from
-     *     src_cfg_type to dst_cfg_type
-     *     BindOutput, if not used, copy the values of all columns from
-     *     src_cfg_type to dst_cfg_type
-     *     Since the bound value is not used for this API, it is ok to bind
-     *     dummy address. Do not pass NULL address.
-     *
-     */
-    DalResultCode CopyModifiedInsertRecords(
-                    const UpllCfgType dest_cfg_type,
-                    const UpllCfgType src_cfg_type,
-                    const DalTableIndex table_index,
-                    const DalBindInfo *output_and_match_attr_info) const;
+                    const DalBindInfo *output_and_match_attr_info,
+                    const unc_keytype_operation_t op) const;
 
     /**
      * CopyMatchingRecords
@@ -892,6 +859,27 @@ class DalOdbcMgr:public DalConnIntf, public DalDmlIntf {
                          const size_t max_record_count,
                          const DalBindInfo *bind_info,
                          DalCursor **cursor) const;
+
+    // Clears all the tables from dirty list
+    inline void ClearDirty() const {
+      delete_dirty.clear();
+      create_dirty.clear();
+      update_dirty.clear();
+    }
+
+    // Add all the tables to dirty list
+    inline void MakeAllDirty() const {
+      delete_dirty.clear();
+      create_dirty.clear();
+      update_dirty.clear();
+      for (uint16_t tbl_idx = schema::table::kDbiVtnTbl;
+           tbl_idx < schema::table::kDalNumTables; tbl_idx++) {
+        delete_dirty.insert(tbl_idx);
+        create_dirty.insert(tbl_idx);
+        update_dirty.insert(tbl_idx);
+      }
+    }  // DalOdbcMgr::MakeAllDirty
+
   private:
     /**
      * SetConnAttributes
@@ -1017,14 +1005,72 @@ class DalOdbcMgr:public DalConnIntf, public DalDmlIntf {
                                const DalBindInfo *bind_info = NULL,
                                const uint32_t max_count = 1) const;
 
+    /**
+     * CheckParentInstance
+     *   Checks the parent of the given instance with parent key values from
+     *   the given DalBindInfo in Database for the given cfg_type
+     *
+     * @param[in] cfg_type        - Configuration Type for which the record
+     *                              has to be created
+     * @param[in] table_index     - Valid Index of the table
+     * @param[in] input_attr_info - Bind Information for the given table_index
+     *
+     * @return DalResultCode      - kDalRcSuccess in case of success
+     *                            - Valid errorcode otherwise
+     *
+     * Note:
+     * Information on usage of DalBindInfo
+     *  1. Valid instance of DalBindInfo with same table_index used in this API
+     *  2. BindInput is mandatory for the interested attributes.
+     *     It is mandatory to bind input for all primary keys.
+     *  3. BindMatch if used for any attributes, ignored.
+     *  4. BindOutput if used for any attributes, ignored.
+     */
+    DalResultCode CheckParentInstance(const UpllCfgType cfg_type,
+                                      const DalTableIndex table_index,
+                                      const DalBindInfo *input_attr_info) const;
+
+
+    /**
+     * CheckInstance
+     *   Checks the instance with primary key values from the given
+     *   DalBindInfo in Database for the given cfg_type
+     *
+     * @param[in] cfg_type        - Configuration Type for which the record
+     *                              has to be created
+     * @param[in] table_index     - Valid Index of the table
+     * @param[in] input_attr_info - Bind Information for the given table_index
+     *
+     * @return DalResultCode      - kDalRcSuccess in case of success
+     *                            - Valid errorcode otherwise
+     *
+     * Note:
+     * Information on usage of DalBindInfo
+     *  1. Valid instance of DalBindInfo with same table_index used in this API
+     *  2. BindInput is mandatory for the interested attributes.
+     *     It is mandatory to bind input for all primary keys.
+     *  3. BindMatch if used for any attributes, ignored.
+     *  4. BindOutput if used for any attributes, ignored.
+     */
+    DalResultCode CheckInstance(const UpllCfgType cfg_type,
+                                const DalTableIndex table_index,
+                                const DalBindInfo *input_attr_info) const;
+
     inline DalResultCode FreeHandle(const SQLSMALLINT handle_type,
                                     SQLHANDLE handle) const;
 
     std::string GetConnString(const DalConnType conn_type) const;
 
+    mutable std::set<uint32_t> create_dirty;
+       // List of tables modified by candidate create operation
+    mutable std::set<uint32_t> delete_dirty;
+       // List of tables modified by candidate delete operation
+    mutable std::set<uint32_t> update_dirty;
+       // List of tables modified by candidate update operation
     SQLHANDLE dal_env_handle_;   // Environment Handle
     SQLHANDLE dal_conn_handle_;  // Connection Handle
     mutable DalConnType conn_type_;  // Connection Type
+    mutable DalConnState conn_state_;  // Connection State
 };  // class DalOdbcMgr
 
 }  // namespace dal
index e98686e07a9df9dcdae28d4e1974f1876d31b65a..b6b5234b8e696721a128c673dd2ae323809aa4ff 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -30,9 +30,8 @@ const char * DalQueryBuilder::DalGetMultiRecQT  =
   "SELECT {mand_out_columns} FROM {config1_table_name}"
     " {opt_WHERE_match_columns_eq} ORDER BY {primary_key_columns}";
 
-// Currently DalRecExists use DalGetRecCount Api
 const char * DalQueryBuilder::DalRecExistsQT    =
-  "SELECT 1 FROM {config1_table_name} {mand_WHERE_match_columns_eq}";
+  "SELECT 1 FROM {config1_table_name} {mand_WHERE_match_columns_eq} limit 1";
 
 const char * DalQueryBuilder::DalGetSibBegQT    =
   "SELECT {mand_out_columns} FROM {config1_table_name}"
@@ -61,17 +60,6 @@ const char * DalQueryBuilder::DalUpdateRecQT    =
   "UPDATE {config1_table_name} SET {mand_in_columns_with_?}"
     " {opt_WHERE_match_columns_eq}";
 
-#if 0
-const char * DalQueryBuilder::DalGetDelRecQT    =
-  "SELECT {mand_out_columns} FROM {config2_table_name}"
-    " WHERE ({mand_match_columns}) NOT IN"
-    " ( SELECT {mand_match_columns} FROM {config1_table_name})";
-
-const char * DalQueryBuilder::DalGetCreatedRecQT =
-  "SELECT {mand_out_columns} FROM {config1_table_name}"
-    " WHERE ({mand_match_columns}) NOT IN"
-    " ( SELECT {mand_match_columns} FROM {config2_table_name})";
-#endif
 const char * DalQueryBuilder::DalGetDelRecQT    =
   "SELECT {mand_out_columns} FROM {config2_table_name} AS temp"
     " WHERE NOT EXISTS"
@@ -86,38 +74,35 @@ const char * DalQueryBuilder::DalGetCreatedRecQT =
 
 const char * DalQueryBuilder::DalGetModRecQT     =
   "SELECT {mand_out_columns} FROM {config1_table_name}"
-    " WHERE ({primary_key_columns}) IN"
+    " WHERE EXISTS"
       " ( SELECT {primary_key_columns} FROM"
         " ( SELECT {opt_match_columns} FROM {config2_table_name} EXCEPT"
           " SELECT {opt_match_columns} FROM {config1_table_name}"
-        " ) as temp"
+        " ) AS temp WHERE {match_dst_primary_key_columns_eq_with_temp}"
       " ) ORDER BY ({primary_key_columns})";
 
 const char * DalQueryBuilder::DalCopyEntireRecQT =
-  "DELETE FROM {dst_table_name};"
   " INSERT INTO {dst_table_name} ({opt_out_columns})"
     " SELECT {opt_out_columns} FROM {src_table_name}";
 
 const char * DalQueryBuilder::DalCopyModRecDelQT =
-  "DELETE FROM {dst_table_name} WHERE ({primary_key_columns}) NOT IN"
-    " ( SELECT {primary_key_columns} FROM {src_table_name})";
+  " DELETE FROM {dst_table_name} WHERE NOT EXISTS"
+    " ( SELECT {primary_key_columns} FROM {src_table_name} AS temp"
+      "  WHERE {match_dst_primary_key_columns_eq_with_temp})";
 
 const char * DalQueryBuilder::DalCopyModRecCreateQT =
-  "INSERT INTO {dst_table_name} ({opt_out_columns})"
-    " ( SELECT {opt_out_columns} FROM {src_table_name}"
-      " WHERE ({primary_key_columns}) NOT IN"
-      " ( SELECT {primary_key_columns} FROM {dst_table_name})"
-    )";
+  " INSERT INTO {dst_table_name} ({opt_out_columns})"
+    " ( SELECT {opt_out_columns} FROM {src_table_name} AS temp"
+      " WHERE NOT EXISTS"
+        " ( SELECT {primary_key_columns} FROM {dst_table_name}"
+          " WHERE {match_dst_primary_key_columns_eq_with_temp}))";
 
 const char * DalQueryBuilder::DalCopyModRecUpdateQT =
   "UPDATE {dst_table_name} SET {opt_dst_out_columns_with_temp} FROM"
-    " ( SELECT {opt_out_columns} FROM {src_table_name}"
-      " WHERE ({primary_key_columns}) IN"
-        " ( SELECT {primary_key_columns} FROM"
-          " ( SELECT {opt_match_columns} FROM {dst_table_name} EXCEPT"
-            " SELECT {opt_match_columns} FROM {src_table_name}"
-          " ) AS temp1"
-        " )"
+    " ( SELECT {opt_out_columns} FROM"
+      " ( SELECT {opt_match_columns} FROM {src_table_name} EXCEPT"
+        " SELECT {opt_match_columns} FROM {dst_table_name}"
+      " ) AS temp1"
     " ) AS temp WHERE {match_dst_primary_key_columns_eq_with_temp}";
 
 const char * DalQueryBuilder::DalCopyMatchingRecQT =
@@ -221,14 +206,13 @@ bool DalQueryBuilder::get_sql_statement(
                         const UpllCfgType first_config,
                         const UpllCfgType second_config) const {
   /* get query template */
-  std::string query_tmpl = std::string(sql_templates[dal_api_num].query_tmpl);
   size_t start_pos = 0, last_pos = 0;
   std::string token = "", replacement = "";
 
   //  pfc::core::Mutex ctrlr_mutex;
   //  pfc::core::ScopedMutex lock(ccc->ctrlr_mutex);
 
-  query_str =  "";
+  query_str.erase();
   /* checking DalBindInfo */
   if (dbi == NULL) {
     UPLL_LOG_TRACE("Column bound is NULL");
@@ -252,36 +236,35 @@ bool DalQueryBuilder::get_sql_statement(
     return false;
   }
 
+  query_str = sql_templates[dal_api_num].query_tmpl;
   /* replace all tokens in query template to get statement */
-  while (next_token(query_tmpl, start_pos, &token, &last_pos)) {
+  while (next_token_pos(query_str, start_pos, last_pos)) {
+    size_t length = last_pos - start_pos + 1;
+
     /* get columns/table name for statement */
-    if (get_bind_str(str_to_num(token), dbi, replacement,
+    if (get_bind_str(str_to_num(query_str, start_pos, length), dbi, replacement,
                      table_index, first_config, second_config) != true) {
       UPLL_LOG_DEBUG("Error constructing bind string");
-      query_str =  "";
+      query_str.erase();
       return false;
     }
     /* replace token with actual columns/table name in template */
-    query_tmpl.replace((last_pos - token.length() + 1), token.length(),
-                       replacement);
+    query_str.replace(start_pos, length, replacement);
+    start_pos += replacement.length();
   }
-  query_str = query_tmpl;
   return true;
 }  // DalQueryBuilder::get_sql_statement
 
 /* keep finding tokens from given query template until end of templates */
-bool DalQueryBuilder::next_token(const std::string &query_template,
-                                 const size_t start_position,
-                                 std::string *token,
-                                 size_t *last_position) const {
-
+bool DalQueryBuilder::next_token_pos(const std::string &query_template,
+                                     size_t &start_position,
+                                     size_t &last_position) const {
   if (query_template.empty()) {
     UPLL_LOG_DEBUG("Empty Query Template String");
     return false;
   }
 
   /* find start position of token */
-  *token = "";
   size_t open_token = query_template.find('{', start_position);
 
   /* check if no more start position */
@@ -298,63 +281,70 @@ bool DalQueryBuilder::next_token(const std::string &query_template,
     return false;
   }
 
-  *last_position = close_token;
-  *token = query_template.substr(open_token, (close_token - open_token + 1));
+  start_position = open_token;
+  last_position = close_token;
   return true;
-}  // DalQueryBuilder::next_token
+}  // DalQueryBuilder::next_token_pos
 
 /* converts token string to enum constants */
-DalQuerytoken DalQueryBuilder::str_to_num(const std::string &tokenstr) const {
+DalQuerytoken DalQueryBuilder::str_to_num(const std::string &tokenstr,
+                                          const size_t start_pos,
+                                          const size_t length) const {
   if (tokenstr.empty()) {
     UPLL_LOG_DEBUG("Empty Token String");
     return kDalInvalidToken;
   }
   // Input Related tokens
-  if (tokenstr.compare(DalMandInColNames) == 0) {
+  if (tokenstr.compare(start_pos, length, DalMandInColNames) == 0) {
     return kDalMandInColNames;
-  } else if (tokenstr.compare(DalMandInColValues) == 0) {
+  } else if (tokenstr.compare(start_pos, length, DalMandInColValues) == 0) {
     return kDalMandInColValues;
-  } else if (tokenstr.compare(DalMandInColUpdExpr) == 0) {
+  } else if (tokenstr.compare(start_pos, length, DalMandInColUpdExpr) == 0) {
     return kDalMandInColUpdExpr;
 
-  // Output Related tokens
-  } else if (tokenstr.compare(DalMandOutColNames) == 0) {
+    // Output Related tokens
+  } else if (tokenstr.compare(start_pos, length, DalMandOutColNames) == 0) {
     return kDalMandOutColNames;
-  } else if (tokenstr.compare(DalOptOutColNames) == 0) {
+  } else if (tokenstr.compare(start_pos, length, DalOptOutColNames) == 0) {
     return kDalOptOutColNames;
-  } else if (tokenstr.compare(DalOptDstOutColUpdTempExpr) == 0) {
+  } else if (tokenstr.compare(start_pos, length,
+                              DalOptDstOutColUpdTempExpr) == 0) {
     return kDalOptDstOutColUpdTempExpr;
 
-  // Match Related tokens
-  } else if (tokenstr.compare(DalMandMatchColNames) == 0) {
+    // Match Related tokens
+  } else if (tokenstr.compare(start_pos, length, DalMandMatchColNames) == 0) {
     return kDalMandMatchColNames;
-  } else if (tokenstr.compare(DalOptMatchColNames) == 0) {
+  } else if (tokenstr.compare(start_pos, length, DalOptMatchColNames) == 0) {
     return kDalOptMatchColNames;
-  } else if (tokenstr.compare(DalMandMatchColEqExpr) == 0) {
+  } else if (tokenstr.compare(start_pos, length, DalMandMatchColEqExpr) == 0) {
     return kDalMandMatchColEqExpr;
-  } else if (tokenstr.compare(DalOptMatchColEqExpr) == 0) {
+  } else if (tokenstr.compare(start_pos, length, DalOptMatchColEqExpr) == 0) {
     return kDalOptMatchColEqExpr;
-  } else if (tokenstr.compare(DalOptMatchColEqNotLastExpr) == 0) {
+  } else if (tokenstr.compare(start_pos, length,
+                              DalOptMatchColEqNotLastExpr) == 0) {
     return kDalOptMatchColEqNotLastExpr;
-  } else if (tokenstr.compare(DalMandMatchColLstGtrExpr) == 0) {
+  } else if (tokenstr.compare(start_pos, length,
+                              DalMandMatchColLstGtrExpr) == 0) {
     return kDalMandMatchColLstGtrExpr;
-  } else if (tokenstr.compare(DalMandMatchColEqTempExpr) == 0) {
+  } else if (tokenstr.compare(start_pos, length,
+                              DalMandMatchColEqTempExpr) == 0) {
     return kDalMandMatchColEqTempExpr;
 
-  // Primary Key Related tokens
-  } else if (tokenstr.compare(DalPkeyColNames) == 0) {
+    // Primary Key Related tokens
+  } else if (tokenstr.compare(start_pos, length, DalPkeyColNames) == 0) {
     return kDalPkeyColNames;
-  } else if (tokenstr.compare(DalMatchPriColEqTempExpr) == 0) {
+  } else if (tokenstr.compare(start_pos, length,
+                              DalMatchPriColEqTempExpr) == 0) {
     return kDalMatchPriColEqTempExpr;
 
-  // Table Related tokens
-  } else if (tokenstr.compare(DalCfg1TableName) == 0) {
+    // Table Related tokens
+  } else if (tokenstr.compare(start_pos, length, DalCfg1TableName) == 0) {
     return kDalCfg1TableName;
-  } else if (tokenstr.compare(DalCfg2TableName) == 0) {
+  } else if (tokenstr.compare(start_pos, length, DalCfg2TableName) == 0) {
     return kDalCfg2TableName;
-  } else if (tokenstr.compare(DalDstTableName) == 0) {
+  } else if (tokenstr.compare(start_pos, length, DalDstTableName) == 0) {
     return kDalDstTableName;
-  } else if (tokenstr.compare(DalSrcTableName) == 0) {
+  } else if (tokenstr.compare(start_pos, length, DalSrcTableName) == 0) {
     return kDalSrcTableName;
   } else {
     UPLL_LOG_DEBUG("Invalid token(%s) from Query template", tokenstr.c_str());
@@ -370,22 +360,22 @@ bool DalQueryBuilder::get_config_prefix(const UpllCfgType type,
       UPLL_LOG_DEBUG("Invalid Config type(%d)", type);
       return false;
     case UPLL_DT_STATE:
-      config_type += std::string(DalStateType);
+      config_type += DalStateType;
       return true;
     case UPLL_DT_CANDIDATE:
-      config_type += std::string(DalCandidateType);
+      config_type += DalCandidateType;
       return true;
     case UPLL_DT_RUNNING:
-      config_type += std::string(DalRunningType);
+      config_type += DalRunningType;
       return true;
     case UPLL_DT_STARTUP:
-      config_type += std::string(DalStartupType);
+      config_type += DalStartupType;
       return true;
     case UPLL_DT_IMPORT:
-      config_type += std::string(DalImportType);
+      config_type += DalImportType;
       return true;
     case UPLL_DT_AUDIT:
-      config_type += std::string(DalAuditType);
+      config_type += DalAuditType;
       return true;
     default:
       UPLL_LOG_DEBUG("Unknown Config type(%d)", type);
@@ -405,7 +395,7 @@ bool DalQueryBuilder::fill_column_names(const DalIoCode io_code,
   DalBindList::iterator bl_it;
   DalBindColumnInfo *col_info = NULL;
 
-  replc_str = "";
+  replc_str.erase();
   /* verify DAL IO Code */
   if (io_code == kDalIoCodeInvalid) {
     UPLL_LOG_DEBUG("Invalid DAL IO Code - %d", io_code);
@@ -425,6 +415,7 @@ bool DalQueryBuilder::fill_column_names(const DalIoCode io_code,
   }
 
   bind_list = dbi->get_bind_list();
+
   for (bl_it = bind_list.begin(); bl_it != bind_list.end();
        ++bl_it) {
     col_info = *bl_it;
@@ -432,31 +423,29 @@ bool DalQueryBuilder::fill_column_names(const DalIoCode io_code,
 
     if (io_code == kDalIoCodeInput) {
       if ( io_type != kDalIoInputOnly &&
-           io_type != kDalIoInputAndMatch ) {
+          io_type != kDalIoInputAndMatch ) {
         continue;
       }
     } else if (io_code == kDalIoCodeOutput) {
       if ( io_type != kDalIoOutputOnly &&
-           io_type != kDalIoOutputAndMatch ) {
+          io_type != kDalIoOutputAndMatch ) {
         continue;
       }
     } else if (io_code == kDalIoCodeMatch) {
       if ( io_type != kDalIoMatchOnly &&
-           io_type != kDalIoInputAndMatch &&
-           io_type != kDalIoOutputAndMatch ) {
+          io_type != kDalIoInputAndMatch &&
+          io_type != kDalIoOutputAndMatch ) {
         continue;
       }
     }
 
     if (first != true)
-      replc_str += std::string(", ");
+      replc_str += ", ";
 
     if (first)
       first = false;
 
-    replc_str += std::string(schema::ColumnName(
-                             table_index,
-                             col_info->get_column_index()));
+    replc_str += schema::ColumnName(table_index, col_info->get_column_index());
   }  // for
   return true;
 }  // DalQueryBuilder::fill_column_names
@@ -464,8 +453,8 @@ bool DalQueryBuilder::fill_column_names(const DalIoCode io_code,
 // Finding the position of greater Primary Key index bound for match
 // in DalBindList
 bool DalQueryBuilder::find_last_pkey_pos_for_match(
-                          const DalBindInfo *dbi,
-                          uint16_t *last_pkey_pos) const {
+    const DalBindInfo *dbi,
+    uint16_t *last_pkey_pos) const {
   DalBindList::iterator bl_it;
   DalBindList bind_list;
   DalBindColumnInfo *col_info = NULL;
@@ -482,14 +471,14 @@ bool DalQueryBuilder::find_last_pkey_pos_for_match(
     return false;
   }
   for (bl_it = bind_list.begin(), index = 0; bl_it != bind_list.end();
-      ++bl_it, ++index) {
+       ++bl_it, ++index) {
     col_info = *bl_it;
     if ((col_info->get_io_type() == kDalIoMatchOnly ||
-        col_info->get_io_type() == kDalIoInputAndMatch ||
-        col_info->get_io_type() == kDalIoOutputAndMatch) && 
-        (schema::ColumnIsPKeyIndex(dbi->get_table_index(), 
-                            col_info->get_column_index()) &&
-        col_info->get_column_index() >= last_pkey_col_index)) {
+         col_info->get_io_type() == kDalIoInputAndMatch ||
+         col_info->get_io_type() == kDalIoOutputAndMatch) &&
+        (schema::ColumnIsPKeyIndex(dbi->get_table_index(),
+                                   col_info->get_column_index()) &&
+         col_info->get_column_index() >= last_pkey_col_index)) {
       *last_pkey_pos = index;
       last_pkey_col_index = col_info->get_column_index();
     }
@@ -519,7 +508,7 @@ bool DalQueryBuilder::get_bind_str(const DalQuerytoken token,
   uint16_t col_index = 0, col_count = 0;
   uint16_t last_pkey_pos;
 
-  replc_str = "";
+  replc_str.erase();
 
   /* verify table_index */
   if (table_index >= (schema::table::kDalNumTables)) {
@@ -556,14 +545,14 @@ bool DalQueryBuilder::get_bind_str(const DalQuerytoken token,
       }
 
       if (fill_column_names(kDalIoCodeInput,
-                          table_index, dbi, replc_str) == false) {
+                            table_index, dbi, replc_str) == false) {
         UPLL_LOG_DEBUG("Error Filling Column names for Input");
         return false;
       }
-    break;
+      break;
 
-    // {mand_insert_?} - ?, ?, ?, ...
-    // count of attributes bound for input
+      // {mand_insert_?} - ?, ?, ?, ...
+      // count of attributes bound for input
     case kDalMandInColValues:
       // PFC_ASSERT(dbi);
       if (dbi == NULL) {
@@ -580,17 +569,17 @@ bool DalQueryBuilder::get_bind_str(const DalQuerytoken token,
 
       for (col_index = 0; col_index < col_count; col_index++) {
         if (first != true)
-          replc_str += std::string(", ");
+          replc_str += ", ";
 
         if (first)
           first = false;
 
-        replc_str += std::string("?");
+        replc_str += "?";
       }
       break;
 
-    // {mand_in_columns_with_?} - col1 = ?, col2 = ?, col3 = ?, ...
-    // For all attributes bound for input
+      // {mand_in_columns_with_?} - col1 = ?, col2 = ?, col3 = ?, ...
+      // For all attributes bound for input
     case kDalMandInColUpdExpr:
       // PFC_ASSERT(dbi);
       if (dbi == NULL) {
@@ -611,22 +600,21 @@ bool DalQueryBuilder::get_bind_str(const DalQuerytoken token,
         if ( io_type == upll::dal::kDalIoInputOnly ||
             io_type == upll::dal::kDalIoInputAndMatch) {
           if (first != true)
-            replc_str += std::string(", ");
+            replc_str += ", ";
 
           if (first)
             first = false;
 
-          replc_str += std::string(schema::ColumnName(
-                                     table_index,
-                                     col_info->get_column_index()));
-          replc_str += std::string("= ?");
+          replc_str += schema::ColumnName(table_index,
+                                          col_info->get_column_index());
+          replc_str += "= ?";
         }  // if
       }  // for
       break;
 
-    // Output Related Tokens
-    // {mand_out_columns} - col1, col2, ...
-    // column names of attributes bound for output
+      // Output Related Tokens
+      // {mand_out_columns} - col1, col2, ...
+      // column names of attributes bound for output
     case kDalMandOutColNames:
       // PFC_ASSERT(dbi);
       if (dbi == NULL) {
@@ -646,21 +634,21 @@ bool DalQueryBuilder::get_bind_str(const DalQuerytoken token,
       }
       break;
 
-    // {opt_out_columns} - col1, col2, ...
-    // column names of attributes bound for output
-    // All column names, if no attributes bound for output
+      // {opt_out_columns} - col1, col2, ...
+      // column names of attributes bound for output
+      // All column names, if no attributes bound for output
     case kDalOptOutColNames:
       if (dbi == NULL || dbi->get_output_bind_count() == 0) {
         UPLL_LOG_TRACE("All Columns bound for Optional Output");
         col_count = schema::TableNumCols(table_index);
         for (col_index = 0; col_index < col_count; col_index++) {
           if (first != true)
-            replc_str += std::string(", ");
+            replc_str += ", ";
 
           if (first)
             first = false;
 
-          replc_str += std::string(schema::ColumnName(table_index, col_index));
+          replc_str += schema::ColumnName(table_index, col_index);
         }
         return true;
       }
@@ -672,10 +660,10 @@ bool DalQueryBuilder::get_bind_str(const DalQuerytoken token,
       }
       break;
 
-    // {opt_dst_out_columns_with_temp} -
-    // <dst_table>.col1 = temp.col1, <dst_table>.col2 = temp.col2, ...
-    // column names of attributes bound for output
-    // All column names, if no attributes bound for output
+      // {opt_dst_out_columns_with_temp} -
+      // <dst_table>.col1 = temp.col1, <dst_table>.col2 = temp.col2, ...
+      // column names of attributes bound for output
+      // All column names, if no attributes bound for output
     case kDalOptDstOutColUpdTempExpr:
       table_name = "";
       if (get_bind_str(kDalDstTableName, dbi, table_name,
@@ -689,16 +677,16 @@ bool DalQueryBuilder::get_bind_str(const DalQuerytoken token,
         col_count = schema::TableNumCols(table_index);
         for (col_index = 0; col_index < col_count; col_index++) {
           if (first != true)
-            replc_str += std::string(", ");
+            replc_str += ", ";
 
           if (first)
             first = false;
 
-        //  replc_str += std::string(table_name);
-        //  replc_str += std::string(".");
-          replc_str += std::string(schema::ColumnName(table_index, col_index));
-          replc_str += std::string("= temp.");
-          replc_str += std::string(schema::ColumnName(table_index, col_index));
+          //  replc_str += std::string(table_name);
+          //  replc_str += std::string(".");
+          replc_str += schema::ColumnName(table_index, col_index);
+          replc_str += "= temp.";
+          replc_str += schema::ColumnName(table_index, col_index);
         }
       } else {
         // Building string from bind info
@@ -710,35 +698,33 @@ bool DalQueryBuilder::get_bind_str(const DalQuerytoken token,
           if ( io_type == upll::dal::kDalIoOutputOnly ||
               io_type == upll::dal::kDalIoOutputAndMatch) {
             if (first != true)
-              replc_str += std::string(", ");
+              replc_str += ", ";
 
             if (first)
               first = false;
             col_index = col_info->get_column_index();
-            replc_str += std::string(table_name);
-            replc_str += std::string(".");
-            replc_str += std::string(schema::ColumnName(table_index,
-                                                        col_index));
-            replc_str += std::string("= temp.");
-            replc_str += std::string(schema::ColumnName(table_index,
-                                                        col_index));
+            replc_str += table_name;
+            replc_str += ".";
+            replc_str += schema::ColumnName(table_index, col_index);
+            replc_str += "= temp.";
+            replc_str += schema::ColumnName(table_index, col_index);
           }  // if
         }  // for
       }
       break;
 
-    // Match Related Tokens
-    // {mand_match_columns} - col1, col2, ...
-    // column names of attributes bound for match
+      // Match Related Tokens
+      // {mand_match_columns} - col1, col2, ...
+      // column names of attributes bound for match
     case kDalMandMatchColNames:
       if (dbi == NULL || dbi->get_match_bind_count() == 0) {
         UPLL_LOG_DEBUG("No columns bound for Mandatory match");
         return false;
       }
 
-    // {opt_match_columns} - col1, col2, ...
-    // column names of attributes bound for match
-    // All column names, if no attributes bound for output
+      // {opt_match_columns} - col1, col2, ...
+      // column names of attributes bound for match
+      // All column names, if no attributes bound for output
     case kDalOptMatchColNames:
       // PFC_ASSERT(dbi);
       if (dbi == NULL || dbi->get_match_bind_count() == 0) {
@@ -746,12 +732,12 @@ bool DalQueryBuilder::get_bind_str(const DalQuerytoken token,
         col_count = schema::TableNumCols(table_index);
         for (col_index = 0; col_index < col_count; col_index++) {
           if (first != true)
-            replc_str += std::string(", ");
+            replc_str += ", ";
 
           if (first)
             first = false;
 
-          replc_str += std::string(schema::ColumnName(table_index, col_index));
+          replc_str += schema::ColumnName(table_index, col_index);
         }
         return true;
       }
@@ -763,9 +749,9 @@ bool DalQueryBuilder::get_bind_str(const DalQuerytoken token,
       }
       break;
 
-    // {mand_WHERE_match_columns_eq} -
-    // WHERE col1 = ?, col2 = ?, ...
-    // column names of attributes bound for match
+      // {mand_WHERE_match_columns_eq} -
+      // WHERE col1 = ?, col2 = ?, ...
+      // column names of attributes bound for match
     case kDalMandMatchColEqExpr:
       // PFC_ASSERT(dbi);
       if (dbi == NULL) {
@@ -778,10 +764,10 @@ bool DalQueryBuilder::get_bind_str(const DalQuerytoken token,
         return false;
       }
 
-    // {opt_WHERE_match_columns_eq} -
-    // WHERE col1 = ?, col2 = ?, ...
-    // column names of attributes bound for match
-    // Empty string if no attributes bound for match
+      // {opt_WHERE_match_columns_eq} -
+      // WHERE col1 = ?, col2 = ?, ...
+      // column names of attributes bound for match
+      // Empty string if no attributes bound for match
     case kDalOptMatchColEqExpr:
       if (dbi == NULL || dbi->get_match_bind_count() == 0) {
         UPLL_LOG_DEBUG("No columns bound for Optional Match");
@@ -790,7 +776,7 @@ bool DalQueryBuilder::get_bind_str(const DalQuerytoken token,
 
       // Building string for attributes bound for match
       if (dbi->get_match_bind_count() > 0) {
-        replc_str += std::string("WHERE ");
+        replc_str += "WHERE ";
       }
 
       bind_list = dbi->get_bind_list();
@@ -802,23 +788,22 @@ bool DalQueryBuilder::get_bind_str(const DalQuerytoken token,
             io_type == kDalIoInputAndMatch ||
             io_type == kDalIoOutputAndMatch) {
           if (first != true)
-            replc_str += std::string(" AND ");
+            replc_str += " AND ";
 
           if (first)
             first = false;
 
-          replc_str += std::string(schema::ColumnName(
-                                     table_index,
-                                     col_info->get_column_index()));
-          replc_str += std::string(" = ?");
+          replc_str += schema::ColumnName(table_index,
+                                          col_info->get_column_index());
+          replc_str += " = ?";
         }  // if
       }  // for
       break;
 
-    // {opt_WHERE_match_columns_eq_not_last} -
-    // WHERE col1 = ?, col2 = ?, ..., col(n-1) = ?
-    // n is the number of attributes bound for match
-    // column names of attributes bound for match
+      // {opt_WHERE_match_columns_eq_not_last} -
+      // WHERE col1 = ?, col2 = ?, ..., col(n-1) = ?
+      // n is the number of attributes bound for match
+      // column names of attributes bound for match
     case kDalOptMatchColEqNotLastExpr:
       if (dbi == NULL || dbi->get_match_bind_count() < 1) {
         UPLL_LOG_DEBUG("No columns bound for Optional Match");
@@ -827,7 +812,7 @@ bool DalQueryBuilder::get_bind_str(const DalQuerytoken token,
 
       // Building string for attributes bound for match
       if (dbi->get_match_bind_count() > 1)
-        replc_str += std::string("WHERE ");
+        replc_str += "WHERE ";
 
       col_count = 0;
       bind_list = dbi->get_bind_list();
@@ -840,25 +825,24 @@ bool DalQueryBuilder::get_bind_str(const DalQuerytoken token,
             io_type == kDalIoOutputAndMatch) {
           if (col_count <= dbi->get_match_bind_count() - 2) {
             if (first != true)
-              replc_str += std::string(" AND ");
+              replc_str += " AND ";
 
             if (first)
               first = false;
 
-            replc_str += std::string(schema::ColumnName(
-                                     table_index,
-                                     col_info->get_column_index()));
-            replc_str += std::string("= ?");
+            replc_str += schema::ColumnName(table_index,
+                                            col_info->get_column_index());
+            replc_str += "= ?";
           }
           col_count++;
         }  // if
       }  // for
       break;
 
-    // {mand_WHERE_match_columns_last_greater} -
-    // WHERE col1 = ?, col2 = ?, ..., col(n-1) > ?
-    // n is the number of attributes bound for match
-    // column names of attributes bound for match
+      // {mand_WHERE_match_columns_last_greater} -
+      // WHERE col1 = ?, col2 = ?, ..., col(n-1) > ?
+      // n is the number of attributes bound for match
+      // column names of attributes bound for match
     case kDalMandMatchColLstGtrExpr:
       // PFC_ASSERT(dbi);
       if (dbi == NULL) {
@@ -873,7 +857,7 @@ bool DalQueryBuilder::get_bind_str(const DalQuerytoken token,
 
       // Building string for attributes bound for match
       if (dbi->get_match_bind_count() > 0)
-        replc_str += std::string("WHERE ");
+        replc_str += "WHERE ";
 
       col_count = 0;
       last_pkey_pos = UINT16_MAX;
@@ -888,42 +872,41 @@ bool DalQueryBuilder::get_bind_str(const DalQuerytoken token,
             io_type == kDalIoInputAndMatch ||
             io_type == kDalIoOutputAndMatch) {
           if (first != true)
-            replc_str += std::string(" AND ");
+            replc_str += " AND ";
 
           if (first)
             first = false;
 
-          replc_str += std::string(schema::ColumnName(
-                                     table_index,
-                                     col_info->get_column_index()));
+          replc_str += schema::ColumnName(table_index,
+                                          col_info->get_column_index());
           if (col_count == last_pkey_pos)
-            replc_str += std::string("> ?");
+            replc_str += "> ?";
           else
-            replc_str += std::string("= ?");
+            replc_str += "= ?";
         }  // if
         col_count++;
       }  // for
       break;
 
-    // Primary Key Related Tokens
-    // {primary_key_columns} - col1, col2, ...
-    // All primary key column names of the table
+      // Primary Key Related Tokens
+      // {primary_key_columns} - col1, col2, ...
+      // All primary key column names of the table
     case kDalPkeyColNames:
       col_count = schema::TableNumPkCols(table_index);
       for (col_index = 0; col_index < col_count; col_index++) {
         if (first != true)
-          replc_str += std::string(", ");
+          replc_str += ", ";
 
         if (first)
           first = false;
 
-        replc_str += std::string(schema::ColumnName(table_index, col_index));
+        replc_str += schema::ColumnName(table_index, col_index);
       }
       break;
 
-    // {mand_match_columns_eq_with_temp}
-    // col1 = temp.col1 AND col2 = temp.col2 ...
-    // For all match columns in bind list
+      // {mand_match_columns_eq_with_temp}
+      // col1 = temp.col1 AND col2 = temp.col2 ...
+      // For all match columns in bind list
     case kDalMandMatchColEqTempExpr:
       if (dbi == NULL) {
         UPLL_LOG_INFO("Null Bind Info for Mandatory token");
@@ -937,7 +920,7 @@ bool DalQueryBuilder::get_bind_str(const DalQuerytoken token,
 
       // Building string for attributes bound for match
       if (dbi->get_match_bind_count() > 0)
-        replc_str += std::string("WHERE ");
+        replc_str += "WHERE ";
 
       bind_list = dbi->get_bind_list();
       for (bl_it = bind_list.begin(); bl_it != bind_list.end(); ++bl_it) {
@@ -947,33 +930,30 @@ bool DalQueryBuilder::get_bind_str(const DalQuerytoken token,
             io_type == kDalIoInputAndMatch ||
             io_type == kDalIoOutputAndMatch) {
           if (first != true)
-            replc_str += std::string(" AND ");
+            replc_str += " AND ";
 
           if (first)
             first = false;
 
-          replc_str += std::string(schema::ColumnName(
-                                     table_index,
-                                     col_info->get_column_index()));
-          replc_str += std::string(" = temp.");
-          replc_str += std::string(schema::ColumnName(
-                                     table_index,
-                                     col_info->get_column_index()));
-
+          replc_str += schema::ColumnName(table_index,
+                                          col_info->get_column_index());
+          replc_str += " = temp.";
+          replc_str += schema::ColumnName(table_index,
+                                          col_info->get_column_index());
         }  // if
         col_count++;
       }  // for
       break;
 
-    // {match_dst_primary_key_columns_eq_with_temp} - col1, col2, ...
-    // <dst_table>.col1 = temp.col1 AND <dst_table>.col2 = temp.col2 ...
-    // For all primary key column names of the table
+      // {match_dst_primary_key_columns_eq_with_temp} - col1, col2, ...
+      // <dst_table>.col1 = temp.col1 AND <dst_table>.col2 = temp.col2 ...
+      // For all primary key column names of the table
     case kDalMatchPriColEqTempExpr:
       table_name = "";
       col_count = schema::TableNumPkCols(table_index);
       for (col_index = 0; col_index < col_count; col_index++) {
         if (first != true)
-          replc_str += std::string(" AND ");
+          replc_str += " AND ";
 
         if (first)
           first = false;
@@ -982,40 +962,40 @@ bool DalQueryBuilder::get_bind_str(const DalQuerytoken token,
                          table_index, first_config, second_config) != true) {
           return false;
         }
-        replc_str += std::string(table_name);
-        replc_str += std::string(".");
-        replc_str += std::string(schema::ColumnName(table_index, col_index));
-        replc_str += std::string(" = temp.");
-        replc_str += std::string(schema::ColumnName(table_index, col_index));
+        replc_str += table_name;
+        replc_str += ".";
+        replc_str += schema::ColumnName(table_index, col_index);
+        replc_str += " = temp.";
+        replc_str += schema::ColumnName(table_index, col_index);
       }
       break;
 
-    // Table Related Tokens
-    // {config1_table_name} - <config1>_<table_name>
+      // Table Related Tokens
+      // {config1_table_name} - <config1>_<table_name>
     case kDalCfg1TableName:
-    // {dst_table_name} - <dst_config>_<table_name>
+      // {dst_table_name} - <dst_config>_<table_name>
     case kDalDstTableName:
       if (get_config_prefix(first_config, replc_str) != true) {
-         UPLL_LOG_DEBUG("First/Dest configuration type wrong");
-         return false;
+        UPLL_LOG_DEBUG("First/Dest configuration type wrong");
+        return false;
       }
 
-      replc_str += std::string(schema::TableName(table_index));
+      replc_str += schema::TableName(table_index);
       break;
 
-    // {config2_table_name} - <config2>_<table_name>
+      // {config2_table_name} - <config2>_<table_name>
     case kDalCfg2TableName:
-    // {src_table_name} - <src_config>_<table_name>
+      // {src_table_name} - <src_config>_<table_name>
     case kDalSrcTableName:
       if (get_config_prefix(second_config, replc_str) != true) {
-         UPLL_LOG_DEBUG("Second/src configuration type wrong");
-         return false;
+        UPLL_LOG_DEBUG("Second/src configuration type wrong");
+        return false;
       }
 
-      replc_str += std::string(schema::TableName(table_index));
+      replc_str += schema::TableName(table_index);
       break;
 
-    /* Invalid token */
+      /* Invalid token */
     default:
       UPLL_LOG_DEBUG("Invalid query token");
       return false;
index 40796f2fa6f2ead575ae44501b9a447166d15964..d99ddd7958abc766b57761429ca2355da3d91935 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -220,9 +220,13 @@ class DalQueryBuilder {
      *   converts token string to enum constants
      *
      * @param[in] tokenstr    - replacement token string
+     * @param[in] start_pos   - replacement token string:start position
+     * @param[in] length      - replacement token string:length
      * @return DalQuerytoken  - valid DalQuerytoken enum on success
      */
-    DalQuerytoken str_to_num(const std::string &tokenstr) const;
+    DalQuerytoken str_to_num(const std::string &tokenstr,
+                             const size_t start_pos,
+                             const size_t length) const;
 
     /* get_config_prefix
      *   verifies config type, and adds appropriate config type prefix
@@ -234,19 +238,17 @@ class DalQueryBuilder {
     bool get_config_prefix(const UpllCfgType type,
                            std::string &config_type) const;
 
-    /* next_token
+    /* next_token_pos
      *   keep finding tokens in sql template until all token found
      *
      * @param[in] query_template    - query template specific to API
-     * @param[in] start_position    - next start position of each token
-     * @param[out] token            - actual token string which need to replace
+     * @param[in/out] start_position    - next start position of each token
      * @param[in/out] last_position - last end position of previous token
      * @return bool                 - true on success else false
      */
-    bool next_token(const std::string &query_template,
-                    const size_t start_position,
-                    std::string *token,
-                    size_t *last_position) const;
+    bool next_token_pos(const std::string &query_template,
+                        size_t &start_position,
+                        size_t &last_position) const;
 
     /* get_bind_str
      *   generate column's or table name string according to token, and it
index b8f9cb8713eb2a4fda6e3a8779116bbc5b688595..cc93c496d1503984cac280dd23b2e4fcb0bc9ece 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -41,7 +41,7 @@ const DalColumnSchema vtn_schema[] =  {
   {"cs_rowstatus", SQL_SMALLINT, SQL_C_SHORT, 1},
   {"cs_description", SQL_SMALLINT, SQL_C_SHORT, 1}
 };
-}
+}  // namespace vtn
 
 namespace vtn_controller {
 const DalColumnSchema vtn_controller_schema[] =  {
@@ -58,7 +58,7 @@ const DalColumnSchema vtn_controller_schema[] =  {
   {"cs_rowstatus", SQL_SMALLINT, SQL_C_SHORT, 1},
   {"cs_description", SQL_SMALLINT, SQL_C_SHORT, 1}
 };
-}
+}  // namespace vtn_controller
 
 namespace vtn_rename {
 const DalColumnSchema vtn_rename_schema[] =  {
@@ -67,7 +67,7 @@ const DalColumnSchema vtn_rename_schema[] =  {
   {"domain_id", SQL_VARCHAR, SQL_C_CHAR, 32},
   {"unc_vtn_name", SQL_VARCHAR, SQL_C_CHAR, 32}
 };
-}
+}  // namespace vtn_rename
 
 namespace vbridge {
 const DalColumnSchema vbridge_schema[] =  {
@@ -95,7 +95,7 @@ const DalColumnSchema vbridge_schema[] =  {
   {"cs_host_addr_mask", SQL_SMALLINT, SQL_C_SHORT, 1},
   {"flags", SQL_SMALLINT, SQL_C_SHORT, 1}
 };
-}
+}  // namespace vbridge
 
 namespace vbridge_vlanmap {
 const DalColumnSchema vbridge_vlanmap_schema[] =  {
@@ -104,14 +104,16 @@ const DalColumnSchema vbridge_vlanmap_schema[] =  {
   {"logical_port_id", SQL_VARCHAR, SQL_C_CHAR, 320},
   {"logical_port_id_valid", SQL_SMALLINT, SQL_C_SHORT, 1},
   {"vlanid", SQL_INTEGER, SQL_C_ULONG, 1},
+  {"bdry_ref_count", SQL_BIGINT, SQL_C_UBIGINT, 1},
   {"controller_name", SQL_VARCHAR, SQL_C_CHAR, 32},
   {"domain_id", SQL_VARCHAR, SQL_C_CHAR, 32},
   {"flags", SQL_SMALLINT, SQL_C_SHORT, 1},
   {"valid_vlanid", SQL_SMALLINT, SQL_C_SHORT, 1},
+  {"valid_bdry_ref_count", SQL_SMALLINT, SQL_C_SHORT, 1},
   {"cs_rowstatus", SQL_SMALLINT, SQL_C_SHORT, 1},
   {"cs_vlanid", SQL_SMALLINT, SQL_C_SHORT, 1}
 };
-}
+}  // namespace vbridge_vlanmap
 
 namespace vbridge_interface {
 const DalColumnSchema vbridge_interface_schema[] =  {
@@ -149,7 +151,7 @@ const DalColumnSchema vbridge_interface_schema[] =  {
   {"cs_vlanid", SQL_SMALLINT, SQL_C_SHORT, 1},
   {"cs_tagged", SQL_SMALLINT, SQL_C_SHORT, 1}
 };
-}
+}  // namespace vbridge_interface
 
 namespace vrouter {
 const DalColumnSchema vrouter_schema[] =  {
@@ -173,7 +175,7 @@ const DalColumnSchema vrouter_schema[] =  {
   {"cs_vrt_description", SQL_SMALLINT, SQL_C_SHORT, 1},
   {"cs_dhcprelay_admin_status", SQL_SMALLINT, SQL_C_SHORT, 1}
 };
-}
+}  // namespace vrouter
 
 namespace vrouter_interface {
 const DalColumnSchema vrouter_interface_schema[] =  {
@@ -203,7 +205,7 @@ const DalColumnSchema vrouter_interface_schema[] =  {
   {"cs_mac_addr", SQL_SMALLINT, SQL_C_SHORT, 1},
   {"cs_admin_status", SQL_SMALLINT, SQL_C_SHORT, 1}
 };
-}
+}  // namespace vrouter_interface
 
 namespace vnode_rename {
 const DalColumnSchema vnode_rename_schema[] =  {
@@ -214,7 +216,7 @@ const DalColumnSchema vnode_rename_schema[] =  {
   {"unc_vtn_name", SQL_VARCHAR, SQL_C_CHAR, 32},
   {"unc_vnode_name", SQL_VARCHAR, SQL_C_CHAR, 32}
 };
-}
+}  // namespace vnode_rename
 
 namespace vlink {
 const DalColumnSchema vlink_schema[] =  {
@@ -255,7 +257,7 @@ const DalColumnSchema vlink_schema[] =  {
   {"cs_vlanid", SQL_SMALLINT, SQL_C_SHORT, 1},
   {"cs_description", SQL_SMALLINT, SQL_C_SHORT, 1}
 };
-}
+}  // namespace vlink
 
 namespace vlink_rename {
 const DalColumnSchema vlink_rename_schema[] =  {
@@ -266,7 +268,7 @@ const DalColumnSchema vlink_rename_schema[] =  {
   {"unc_vtn_name", SQL_VARCHAR, SQL_C_CHAR, 32},
   {"unc_vlink_name", SQL_VARCHAR, SQL_C_CHAR, 32}
 };
-}
+}  // namespace vlink_rename
 
 namespace static_ip_route {
 const DalColumnSchema static_ip_route_schema[] =  {
@@ -284,7 +286,7 @@ const DalColumnSchema static_ip_route_schema[] =  {
   {"cs_rowstatus", SQL_SMALLINT, SQL_C_SHORT, 1},
   {"cs_metric", SQL_SMALLINT, SQL_C_SHORT, 1}
 };
-}
+}  // namespace static_ip_route
 
 namespace dhcprelay_server {
 const DalColumnSchema dhcprelay_server_schema[] =  {
@@ -296,7 +298,7 @@ const DalColumnSchema dhcprelay_server_schema[] =  {
   {"flags", SQL_SMALLINT, SQL_C_SHORT, 1},
   {"cs_rowstatus", SQL_SMALLINT, SQL_C_SHORT, 1}
 };
-}
+}  // namespace dhcprelay_server
 
 namespace dhcprelay_interface {
 const DalColumnSchema dhcprelay_interface_schema[] =  {
@@ -308,7 +310,7 @@ const DalColumnSchema dhcprelay_interface_schema[] =  {
   {"flags", SQL_SMALLINT, SQL_C_SHORT, 1},
   {"cs_rowstatus", SQL_SMALLINT, SQL_C_SHORT, 1}
 };
-}
+}  // namespace dhcprelay_interface
 
 namespace vbridge_networkmonitor_group {
 const DalColumnSchema vbridge_networkmonitor_group_schema[] =  {
@@ -325,7 +327,7 @@ const DalColumnSchema vbridge_networkmonitor_group_schema[] =  {
   {"cs_rowstatus", SQL_SMALLINT, SQL_C_SHORT, 1},
   {"cs_admin_status", SQL_SMALLINT, SQL_C_SHORT, 1}
 };
-}
+}  // namespace vbridge_networkmonitor_group
 
 namespace vbridge_networkmonitor_host {
 const DalColumnSchema vbridge_networkmonitor_host_schema[] =  {
@@ -353,7 +355,7 @@ const DalColumnSchema vbridge_networkmonitor_host_schema[] =  {
   {"cs_recovery_count", SQL_SMALLINT, SQL_C_SHORT, 1},
   {"cs_wait_time", SQL_SMALLINT, SQL_C_SHORT, 1}
 };
-}
+}  // namespace vbridge_networkmonitor_host
 
 namespace vunknown {
 const DalColumnSchema vunknown_schema[] =  {
@@ -371,7 +373,7 @@ const DalColumnSchema vunknown_schema[] =  {
   {"cs_type", SQL_SMALLINT, SQL_C_SHORT, 1},
   {"cs_domain_id", SQL_SMALLINT, SQL_C_SHORT, 1}
 };
-}
+}  // namespace vunknown
 
 namespace vunknown_interface {
 const DalColumnSchema vunknown_interface_schema[] =  {
@@ -388,7 +390,7 @@ const DalColumnSchema vunknown_interface_schema[] =  {
   {"cs_description", SQL_SMALLINT, SQL_C_SHORT, 1},
   {"cs_admin_status", SQL_SMALLINT, SQL_C_SHORT, 1},
 };
-}
+}  // namespace vunknown_interface
 
 namespace vtep {
 const DalColumnSchema vtep_schema[] =  {
@@ -409,7 +411,7 @@ const DalColumnSchema vtep_schema[] =  {
   {"cs_controller_name", SQL_SMALLINT, SQL_C_SHORT, 1},
   {"cs_domain_id", SQL_SMALLINT, SQL_C_SHORT, 1}
 };
-}
+}  // namespace vtep
 
 namespace vtep_interface {
 const DalColumnSchema vtep_interface_schema[] =  {
@@ -441,7 +443,7 @@ const DalColumnSchema vtep_interface_schema[] =  {
   {"cs_vlanid", SQL_SMALLINT, SQL_C_SHORT, 1},
   {"cs_tagged", SQL_SMALLINT, SQL_C_SHORT, 1}
 };
-}
+}  // namespace vtep_interface
 
 namespace vtep_group {
 const DalColumnSchema vtep_group_schema[] =  {
@@ -456,7 +458,7 @@ const DalColumnSchema vtep_group_schema[] =  {
   {"cs_controller_name", SQL_SMALLINT, SQL_C_SHORT, 1},
   {"cs_description", SQL_SMALLINT, SQL_C_SHORT, 1},
 };
-}
+}  // namespace vtep_group
 
 namespace vtep_groupmember {
 const DalColumnSchema vtep_groupmember_schema[] =  {
@@ -468,7 +470,7 @@ const DalColumnSchema vtep_groupmember_schema[] =  {
   {"flags", SQL_SMALLINT, SQL_C_SHORT, 1},
   {"cs_rowstatus", SQL_SMALLINT, SQL_C_SHORT, 1},
 };
-}
+}  // namespace vtep_groupmember
 
 namespace vtunnel {
 const DalColumnSchema vtunnel_schema[] =  {
@@ -498,7 +500,7 @@ const DalColumnSchema vtunnel_schema[] =  {
   {"cs_vtepgrp_name", SQL_SMALLINT, SQL_C_SHORT, 1},
   {"cs_label", SQL_SMALLINT, SQL_C_SHORT, 1}
 };
-}
+}  // namespace vtunnel
 
 namespace vtunnel_interface {
 const DalColumnSchema vtunnel_interface_schema[] =  {
@@ -530,7 +532,7 @@ const DalColumnSchema vtunnel_interface_schema[] =  {
   {"cs_vlanid", SQL_SMALLINT, SQL_C_SHORT, 1},
   {"cs_tagged", SQL_SMALLINT, SQL_C_SHORT, 1}
 };
-}
+}  // namespace vtunnel_interface
 
 // L2/L3 MoMgrs Schema End
 
@@ -557,7 +559,7 @@ const DalColumnSchema flowlist_ctrlr_schema[] = {
   { "cs_rowstatus", SQL_SMALLINT, SQL_C_SHORT, 1 },
   { "cs_ip_type", SQL_SMALLINT, SQL_C_SHORT, 1 }
 };  // flowlist_ctrlr_schema
-}  // namespace flowlist ctrlr
+}  // namespace flowlist_ctrlr
 
 namespace flowlist_rename {
 const DalColumnSchema flowlist_rename_schema[] = {
@@ -1111,7 +1113,7 @@ const DalColumnSchema vbr_if_policingmap_schema[] = {
   { "cs_rowstatus", SQL_SMALLINT, SQL_C_SHORT, 1 },
   { "cs_policername", SQL_SMALLINT, SQL_C_SHORT, 1 }
 };  // vbr_policingmap_schema
-}  // namespace vbr_policingmap
+}  // namespace vbr_if_policingmap
 
 // POM MoMgrs Schema End
 
@@ -1127,6 +1129,64 @@ const DalColumnSchema ctrlr_schema[] = {
 };
 }  // namespace ctrlr
 
+// Relational Schema - Shows parent-child relation
+const DalRelnSchema relational_schema[] = {
+// VTN Schemas
+  { kDalNumTables, 0 },  // VTN Schema
+  { kDalNumTables, 0 },  // VTN Controller Schema
+  { kDalNumTables, 0 },  // VTN Rename Schema
+  { kDbiVtnTbl, 1 },  // Vbridge Schema
+  { kDbiVbrTbl, 2 },  // Vbridge Vlanmap Schema
+  { kDbiVbrTbl, 2 },  // Vbridge Interface Schema
+  { kDbiVtnTbl, 1 },  // Vrouter Schema
+  { kDbiVrtTbl, 2 },  // Vrouter Interface Schema
+  { kDalNumTables, 0 },  // Vnode Rename Schema
+  { kDbiVtnTbl, 1 },  // Vlink Schema
+  { kDalNumTables, 0 },  // Vlink Rename Schema
+  { kDbiVrtTbl, 2 },  // Static IP Route Schema
+  { kDbiVrtTbl, 2 },  // Dhcp Relay Server Schema
+  { kDbiVrtTbl, 2 },  // Dhcp Relay Interface Schema
+  { kDbiVbrTbl, 2 },  // Vbridge Network Monitor Schema
+  { kDbiVbrNwMonTbl, 3 },  // Vbridge Network Monitor Host Schema
+  { kDbiVtnTbl, 1 },  // Vunknown Schema
+  { kDbiVunknownTbl, 2 },  // Vunknown Interface Schema
+  { kDbiVtnTbl, 1 },  // Vtep Schema
+  { kDbiVtepTbl, 2 },  // Vtep Interface Schema
+  { kDbiVtnTbl, 1 },  // Vtep Group Schema
+  { kDbiVtepGrpTbl, 2 },  // Vtep Group Member Schema
+  { kDbiVtnTbl, 1 },  // Vtunnel Schema
+  { kDbiVtunnelTbl, 2 },  // Vtunnel Interface Schema
+
+// POM schemas
+  { kDalNumTables, 0 },  // Flowlist Schema
+  { kDalNumTables, 0 },  // Flowlist Controller Schema
+  { kDalNumTables, 0 },  // Flowlist Rename Schema
+  { kDbiFlowListTbl, 1 },  // Flowlist Entry Schema
+  { kDalNumTables, 0 },  // Flowlist Entry Controller Schema
+  { kDalNumTables, 0 },  // Policing profile Schema
+  { kDalNumTables, 0 },  // Policing profile Controller Schema
+  { kDalNumTables, 0 },  // Policing profile Rename Schema
+  { kDbiPolicingProfileTbl, 1 },  // Policing profile Entry Schema
+  { kDalNumTables, 0 },  // Policing profile Entry Controller Schema
+  { kDbiVtnTbl, 1 },  // VTN Flowfilter Schema
+  { kDalNumTables, 0 },  // VTN Flowfilter Controller Schema
+  { kDbiVtnFlowFilterTbl, 2 },  // VTN Flowfilter Entry Schema
+  { kDalNumTables, 0 },  // VTN Flowfilter Entry Controller Schema
+  { kDbiVbrTbl, 2 },  // Vbridge Flowfilter Schema
+  { kDbiVbrFlowFilterTbl, 3 },  // Vbridge Flowfilter Entry Schema
+  { kDbiVbrIfTbl, 3 },  // Vbridge Interface Flowfilter Schema
+  { kDbiVbrIfFlowFilterTbl, 4 },  // Vbridge Interface Flowfilter Entry Schema
+  { kDbiVrtIfTbl, 3 },  // Vrouter Interface Flowfilter Schema
+  { kDbiVrtIfFlowFilterTbl, 4 },  // Vrouter Interface Flowfilter Entry Schema
+  { kDbiVtnTbl, 1 },  // VTN Policing Map Schema
+  { kDalNumTables, 0 },  // VTN Policing Map Controller Schema
+  { kDbiVbrTbl, 2 },  // Vbridge Policing Map Schema
+  { kDbiVbrIfTbl, 3 },  // Vbridge Interface Policing Map Schema
+
+// Ctrlr Schema
+  { kDalNumTables, 0 }  // Controller Schema
+};  // Relational schema
+
 const DalTableSchema table_schema[] = {
   // L2/L3 MoMgr table Schema Info Start
   {"vtn_tbl",
index fd54b1392ab6b43385d7c36b510b1f9579b918ac..1336c27a5964feba2c2b226d6a0f3675bca42be3 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -36,6 +36,11 @@ struct DalColumnSchema {
   size_t db_array_size;          // size used in DB
 };
 
+struct DalRelnSchema {
+  DalTableIndex parent_index;
+  size_t num_fk_columns;
+};
+
 struct DalTableSchema {
   const char *table_name;   // Table Name
   size_t num_columns;      // Total number of columns in the table
@@ -66,7 +71,7 @@ enum kVtnIndex {
   kDbiVtnCsDesc,
   kDbiVtnNumCols
 };
-}
+}  // namespace vtn
 
 namespace vtn_controller {
 static const uint8_t kVtnCtrlrNumPks = 3;
@@ -85,7 +90,7 @@ enum kVtnCtrlrIndex {
   kDbiCsDesc,
   kDbiVtnCtrlrNumCols
 };
-}
+}  // namespace vtn_controller
 
 namespace vtn_rename {
 static const uint8_t kVtnRenameNumPks = 3;
@@ -126,7 +131,7 @@ enum kVbrIndex {
   kDbiVbrFlags,
   kDbiVbrNumCols
 };
-}
+}  // namespace vbridge
 
 namespace vbridge_vlanmap {
 static const uint8_t kVbrVlanMapNumPks = 4;
@@ -136,15 +141,17 @@ enum kVbrVlanMapIndex {
   kDbiLogicalPortId,
   kDbiLogicalPortIdValid,
   kDbiVlanid,
+  kDbiBdryRefCount,
   kDbiCtrlrName,
   kDbiDomainId,
   kDbiVbrVlanMapFlags,
   kDbiValidVlanid,
+  kDbiValidBdryRefCount,
   kDbiCsRowStatus,
   kDbiCsVlanid,
   kDbiVbrVlanMapNumCols
 };
-}
+}  // namespace vbridge_vlanmap
 
 namespace vbridge_interface {
 static const uint8_t kVbrIfNumPks = 3;
@@ -184,7 +191,7 @@ enum kVbrIfIndex {
   kDbiCsTagged,
   kDbiVbrIfNumCols
 };
-}
+}  // namespace vbridge_interface
 
 namespace vrouter {
 static const uint8_t kVrtNumPks = 2;
@@ -210,7 +217,7 @@ enum kVrtIndex {
   kDbiCsDhcprelayAdminstatus,
   kDbiVrtNumCols
 };
-}
+}  // namespace vrouter
 
 namespace vrouter_interface {
 static const uint8_t kVrtIfNumPks = 3;
@@ -242,7 +249,7 @@ enum kVrtIfIndex {
   kDbiCsAdminStatus,
   kDbiVrtIfNumCols
 };
-}
+}  // namespace vrouter_interface
 
 namespace vnode_rename {
 static const uint8_t kVnodeRenameNumPks = 4;
@@ -255,7 +262,7 @@ enum kVnodeRenameIndex {
   kDbiUncvnodeName,
   kDbiVnodeRenameNumCols
 };
-}
+}  // namespace vnode_rename
 
 namespace vlink {
 static const uint8_t kVlinkNumPks = 2;
@@ -298,7 +305,7 @@ enum kVlinkIndex {
   kDbiCsDesc,
   kDbiVlinkNumCols
 };
-}
+}  // namespace vlink
 
 namespace vlink_rename {
 static const uint8_t kVlinkRenameNumPks = 4;
@@ -311,7 +318,7 @@ enum kVlinkRenameIndex {
   kDbiVlinkName,
   kDbiVlinkRenameNumCols
 };
-}
+}  // namespace vlink_rename
 
 namespace static_ip_route {
 static const uint8_t kStaticIpRouteNumPks = 6;
@@ -331,7 +338,7 @@ enum kStaticIpRouteIndex {
   kDbiCsMetric,
   kDbiStaticIpRouteNumCols
 };
-}
+}  // namespace static_ip_route
 
 namespace dhcprelay_server {
 static const uint8_t kDhcpRelayServerNumPks = 3;
@@ -345,7 +352,7 @@ enum kDhcpRelayServerIndex {
   kDbiCsRowstatus,
   kDbiDhcpRelayServerNumCols
 };
-}
+}  // namespace dhcprelay_server
 
 namespace dhcprelay_interface {
 static const uint8_t kDhcpRelayIfNumPks = 3;
@@ -359,7 +366,7 @@ enum kDhcpRelayIfIndex {
   kDbiCsRowstatus,
   kDbiDhcpRelayIfNumCols
 };
-}
+}  // namespace dhcprelay_interface
 
 namespace vbridge_networkmonitor_group {
 static const uint8_t kVbrNwMonGrpNumPks = 3;
@@ -378,7 +385,7 @@ enum kVbrNwMonGrpIndex {
   kDbiCsAdminStatus,
   kDbiVbrNwMonGrpNumCols
 };
-}
+}  // namespace vbridge_networkmonitor_group
 
 namespace vbridge_networkmonitor_host {
 static const uint8_t kVbrNwMonHostNumPks = 4;
@@ -408,7 +415,7 @@ enum kVbrNwMonHostIndex {
   kDbiCsWaitTime,
   kDbiVbrNwMonHostNumCols
 };
-}
+}  // namespace vbridge_networkmonitor_host
 
 namespace vunknown {
 static const uint8_t kVunknownNumPks = 2;
@@ -428,7 +435,7 @@ enum kVunknownIndex {
   kDbiCsDomainId,
   kDbiVunknownNumCols
 };
-}
+}  // namespace vunknown
 
 namespace vunknown_interface {
 static const uint8_t kVunknownIfNumPks = 3;
@@ -447,7 +454,7 @@ enum kVunknownIfIndex {
   kDbiCsAdminStatus,
   kDbiVunknownIfNumCols
 };
-}
+}  // namespace vunknown_interface
 
 namespace vtep {
 static const uint8_t kVtepNumPks = 2;
@@ -470,7 +477,7 @@ enum kVtepIndex {
   kDbiCsDomainId,
   kDbiVtepNumCols
 };
-}
+}  // namespace vtep
 
 namespace vtep_interface {
 static const uint8_t kVtepIfNumPks = 3;
@@ -504,7 +511,7 @@ enum kVtepIfIndex {
   kDbiCsTagged,
   kDbiVtepIfNumCols
 };
-}
+}  // namespace vtep_interface
 
 namespace vtep_group {
 static const uint8_t kVtepGrpNumPks = 2;
@@ -521,7 +528,7 @@ enum kVtepGrpIndex {
   kDbiCsDesc,
   kDbiVtepGrpNumCols
 };
-}
+}  // namespace vtep_group
 
 namespace vtep_groupmember {
 static const uint8_t kVtepGrpMemNumPks = 3;
@@ -535,7 +542,7 @@ enum kVtepGrpMemIndex {
   kDbiCsRowstatus,
   kDbiVtepGrpMemNumCols
 };
-}
+}  // namespace vtep_groupmember
 
 namespace vtunnel {
 static const uint8_t kVtunnelNumPks = 2;
@@ -567,7 +574,7 @@ enum kVtunnelIndex {
   kDbiCsLabel,
   kDbiVtunnelNumCols
 };
-}
+}  // namespace vtunnel
 
 namespace vtunnel_interface {
 static const uint8_t kVtunnelIfNumPks = 3;
@@ -601,7 +608,7 @@ enum kVtunnelIfIndex {
   kDbiCsTagged,
   kDbiVtunnelIfNumCols
 };
-}
+}  // namespace vtunnel_interface
 // L2/L3 MoMgr Enum End
 
 // POM MoMgr Enum Start
@@ -780,7 +787,7 @@ enum FlowListEntryCtrlrSchema {
   kDbiCsIcmpV6Code,
   kDbiFlowListEntryCtrlrNumCols  // Number of Columns
 };  // FlowFilterEntryCtrlrSchema
-}  // namespace flowlist_entry_Ctrlr
+}  // namespace flowlist_entry_ctrlr
 
 // Enum definition for index in global policing profile table Schema
 namespace policingprofile {
@@ -1333,6 +1340,7 @@ enum kDalTableIndex {
   kDalNumTables
 };  // enum kDalTableIndex
 
+  extern const DalRelnSchema relational_schema[];
   extern const DalTableSchema table_schema[];
 };  // namespace table
 
@@ -1355,6 +1363,16 @@ TableNumPkCols(uint16_t table_index) {
            table::table_schema[table_index].num_pk_columns : 0);
 }
 
+inline size_t
+TableParentIndex(uint16_t table_index) {
+  return (table::relational_schema[table_index].parent_index);
+}
+
+inline size_t
+TableNumFkCols(uint16_t table_index) {
+  return ((table_index < table::kDalNumTables) ?
+           table::relational_schema[table_index].num_fk_columns : 0);
+}
 
 /* Inline Functions for Column Schema */
 inline const char *
index b0075ba70a9f689905228545127ab61eab3e5742..066fc42c3126d5d9747f358c33985bd581609e41 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -148,7 +148,7 @@ void build_create_table_script() {
   // Print Copyright
   line.clear();
   line += "/*\n"
-      " * Copyright (c) 2012-2013 NEC Corporation\n"
+      " * Copyright (c) 2012-2014 NEC Corporation\n"
       " * All rights reserved.\n"
       " *\n"
       " * This program and the accompanying materials are made available "
@@ -164,7 +164,7 @@ void build_create_table_script() {
   line += "/**\n"
           " * upll_create_table.sql\n"
           " *   Contains SQL commands to create all the tables need for UPLL\n"
-          " */\n"; 
+          " */\n";
   printf("\n%s", line.c_str());
 
   for (cfg_idx = 0; cfg_idx < kUpllDbNumCfgId; cfg_idx++) {
@@ -192,25 +192,31 @@ void build_create_table_script() {
       line += " ";
 
       // data type
-      line += get_data_type_str(uudschema::ColumnDbDataTypeId(tbl_idx, col_idx));
+      line += get_data_type_str(uudschema::ColumnDbDataTypeId(
+              tbl_idx,
+              col_idx));
 
       // dimension
       if (uudschema::ColumnDbArraySize(tbl_idx, col_idx) > 1 &&
           uudschema::ColumnDbDataTypeId(tbl_idx, col_idx) != SQL_BINARY) {
         line += "(";
         memset(size_str, '0', 4);
-        sprintf(size_str, "%zd", uudschema::ColumnDbArraySize(tbl_idx, col_idx));
+        sprintf(size_str, "%zd", uudschema::ColumnDbArraySize(
+                tbl_idx,
+                col_idx));
         line += size_str;
         line += ")";
       }
-      
+
       // default
       line += " default ";
       def_type = get_default_type(uudschema::ColumnName(tbl_idx, col_idx),
-                                  uudschema::ColumnDbDataTypeId(tbl_idx, col_idx));
+                                  uudschema::ColumnDbDataTypeId(tbl_idx,
+                                                                col_idx));
       if (def_type == kDefaultTypeBinary) {
         line += "'";
-        for (uint16_t i = 0; i < uudschema::ColumnDbArraySize(tbl_idx, col_idx); i++) {
+        for (uint16_t i = 0; i < uudschema::ColumnDbArraySize(tbl_idx,
+                                                              col_idx); i++) {
           line+= get_default_str((UpllDbCfgId)cfg_idx, def_type);
         }
         line += "'";
@@ -232,7 +238,8 @@ void build_create_table_script() {
     // Primary Keys
     line += "PRIMARY KEY(";
     first = true;
-    for (col_idx = 0; col_idx < uudschema::TableNumPkCols(tbl_idx); col_idx++) {
+    for (col_idx = 0; col_idx < uudschema::TableNumPkCols(tbl_idx);
+         col_idx++) {
       if (first == false) {
         line += ", ";
       } else {
@@ -240,15 +247,66 @@ void build_create_table_script() {
       }
       line += uudschema::ColumnName(tbl_idx, col_idx);
     }
-    line += "));";
+    if ((cfg_idx == kCfgIdCandidate) &&
+        uudschema::TableParentIndex(tbl_idx) < uudstbl::kDalNumTables) {
+      line += "),";
+    } else {
+      line += "));";
+    }
     printf("\n  %s", line.c_str());
+
+    // Foreign Keys
+    if ((cfg_idx == kCfgIdCandidate) &&
+        uudschema::TableParentIndex(tbl_idx) < uudstbl::kDalNumTables) {
+      line.clear();
+      line += "FOREIGN KEY(";
+      first = true;
+      for (col_idx = 0; col_idx < uudschema::TableNumFkCols(tbl_idx);
+           col_idx++) {
+        if (first == false) {
+          line += ", ";
+        } else {
+          first = false;
+        }
+        line += uudschema::ColumnName(tbl_idx, col_idx);
+      }
+      line += ") ";
+      line += "REFERENCES ";
+      line += get_cfg_str(static_cast<UpllDbCfgId>(cfg_idx));
+      line += uudschema::TableName(uudschema::TableParentIndex(tbl_idx));
+      line += "(";
+      first = true;
+      for (col_idx = 0; col_idx < uudschema::TableNumFkCols(tbl_idx);
+           col_idx++) {
+        if (first == false) {
+          line += ", ";
+        } else {
+          first = false;
+        }
+        line += uudschema::ColumnName(uudschema::TableParentIndex(tbl_idx),
+                                      col_idx);
+      }
+      line += "));";
+      printf("\n  %s", line.c_str());
+    }
+
     printf("\n");
   }  // for all tables
   }  // for all config types
 }  // build_create_table_script
 
+void build_create_index_script() {
+  printf("\nCREATE INDEX ca_vbr_if_tbl_semindex ON ca_vbr_if_tbl USING btree (logical_port_id, controller_name, domain_id, valid_portmap, valid_logical_port_id);");
+  printf("\nCREATE INDEX ca_policingprofile_entry_tbl_semindex ON ca_policingprofile_entry_tbl USING btree (flowlist, valid_flowlist);");
+  printf("\nCREATE INDEX ca_vtn_policingmap_tbl_semindex ON ca_vtn_policingmap_tbl USING btree (policername, valid_policername);");
+  printf("\nCREATE INDEX ca_vbr_policingmap_tbl_semindex ON ca_vbr_policingmap_tbl USING btree (policername, valid_policername);");
+  printf("\nCREATE INDEX ca_vbr_if_policingmap_tbl_semindex ON ca_vbr_if_policingmap_tbl USING btree (policername, valid_policername);");
+
+  printf("\nCREATE INDEX ru_vbr_if_tbl_showindex ON ru_vbr_if_tbl (vtn_name, vex_name, valid_vex_name);");
+}
 
 int main() {
   build_create_table_script();
+  build_create_index_script();
   return 0;
 }
diff --git a/coordinator/modules/dal/utils/table_creation.sh b/coordinator/modules/dal/utils/table_creation.sh
new file mode 100644 (file)
index 0000000..b782d1e
--- /dev/null
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2013-2014 NEC Corporation
+# All rights reserved.
+# 
+# This program and the accompanying materials are made available under the
+# terms of the Eclipse Public License v1.0 which accompanies this
+# distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+#
+
+#/*
+# * table_creation.sh
+# *   Creates SQL file with table creation queries
+# *   Copies the SQL file to /dev/src/sql/
+# * Usage : sh table_creation.sh
+# */
+
+make clean;
+make all;
+./upll_create_table.exe > upll_create_table.sql
+cp upll_create_table.sql ../../../sql/
index bf594845849f54a91f9fd6114b5e6592161336ee..41b36dbad2f8f429288cfb96ab08391c7494b2f9 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -65,7 +65,7 @@ void build_delete_table_script() {
   // Print Copyright
   line.clear();
   line += "/*\n"
-      " * Copyright (c) 2012-2013 NEC Corporation\n"
+      " * Copyright (c) 2012-2014 NEC Corporation\n"
       " * All rights reserved.\n"
       " *\n"
       " * This program and the accompanying materials are made available "
@@ -80,21 +80,22 @@ void build_delete_table_script() {
   line.clear();
   line += "/**\n"
           " * upll_delete_table.sql\n"
-          " *   Contains SQL commands to delete all the tables created by UPLL\n"
-          " */\n"; 
+          " *   Contains SQL commands to delete all the tables"
+          "created by UPLL\n"
+          " */\n";
   printf("\n%s", line.c_str());
 
-
   for (cfg_idx = 0; cfg_idx < kUpllDbNumCfgId; cfg_idx++) {
-  for (tbl_idx = 0; tbl_idx < uudstbl::kDalNumTables; tbl_idx++) {
+  for (uint16_t tbl_iter = uudstbl::kDalNumTables; tbl_iter > 0; tbl_iter--) {
+    tbl_idx = tbl_iter - 1;
     // Controller Table appears only in Candidate
     if (tbl_idx == uudstbl::kDbiCtrlrTbl && cfg_idx != kCfgIdCandidate) {
-      break;
+      continue;
     }
 
-    // Create Table
+    // Delete Table
     line.clear();
-    line += "DROP TABLE ";
+    line += "TRUNCATE TABLE ";
     line += get_cfg_str(static_cast<UpllDbCfgId>(cfg_idx));
     line += uudschema::TableName(tbl_idx);
     line += ";";
index 36c898306122559e8a2f4c28ea643af6567ec6a0..6fa36db8d1562c28c32ef499ce059ca5cb4f23cb 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -84,10 +84,12 @@ CREATE TABLE su_vbr_vlanmap_tbl (
     logical_port_id varchar(320) default ' ',
     logical_port_id_valid smallint default 0,
     vlanid integer default 0,
+    bdry_ref_count bigint default 0,
     controller_name varchar(32) default ' ',
     domain_id varchar(32) default ' ',
     flags smallint default 0,
     valid_vlanid smallint default 0,
+    valid_bdry_ref_count smallint default 0,
     cs_rowstatus smallint default 3,
     cs_vlanid smallint default 3,
   PRIMARY KEY(vtn_name, vbridge_name, logical_port_id, logical_port_id_valid));
@@ -1064,7 +1066,8 @@ CREATE TABLE ca_vbr_tbl (
     cs_host_addr smallint default 3,
     cs_host_addr_mask smallint default 3,
     flags smallint default 0,
-  PRIMARY KEY(vtn_name, vbridge_name));
+  PRIMARY KEY(vtn_name, vbridge_name),
+  FOREIGN KEY(vtn_name) REFERENCES ca_vtn_tbl(vtn_name));
 
 CREATE TABLE ca_vbr_vlanmap_tbl (
     vtn_name varchar(32) default ' ',
@@ -1072,13 +1075,16 @@ CREATE TABLE ca_vbr_vlanmap_tbl (
     logical_port_id varchar(320) default ' ',
     logical_port_id_valid smallint default 0,
     vlanid integer default 0,
+    bdry_ref_count bigint default 0,
     controller_name varchar(32) default ' ',
     domain_id varchar(32) default ' ',
     flags smallint default 0,
     valid_vlanid smallint default 0,
+    valid_bdry_ref_count smallint default 0,
     cs_rowstatus smallint default 3,
     cs_vlanid smallint default 3,
-  PRIMARY KEY(vtn_name, vbridge_name, logical_port_id, logical_port_id_valid));
+  PRIMARY KEY(vtn_name, vbridge_name, logical_port_id, logical_port_id_valid),
+  FOREIGN KEY(vtn_name, vbridge_name) REFERENCES ca_vbr_tbl(vtn_name, vbridge_name));
 
 CREATE TABLE ca_vbr_if_tbl (
     vtn_name varchar(32) default ' ',
@@ -1114,7 +1120,8 @@ CREATE TABLE ca_vbr_if_tbl (
     cs_logical_port_id smallint default 3,
     cs_vlanid smallint default 3,
     cs_tagged smallint default 3,
-  PRIMARY KEY(vtn_name, vbridge_name, if_name));
+  PRIMARY KEY(vtn_name, vbridge_name, if_name),
+  FOREIGN KEY(vtn_name, vbridge_name) REFERENCES ca_vbr_tbl(vtn_name, vbridge_name));
 
 CREATE TABLE ca_vrt_tbl (
     vtn_name varchar(32) default ' ',
@@ -1136,7 +1143,8 @@ CREATE TABLE ca_vrt_tbl (
     cs_domain_id smallint default 3,
     cs_vrt_description smallint default 3,
     cs_dhcprelay_admin_status smallint default 3,
-  PRIMARY KEY(vtn_name, vrouter_name));
+  PRIMARY KEY(vtn_name, vrouter_name),
+  FOREIGN KEY(vtn_name) REFERENCES ca_vtn_tbl(vtn_name));
 
 CREATE TABLE ca_vrt_if_tbl (
     vtn_name varchar(32) default ' ',
@@ -1164,7 +1172,8 @@ CREATE TABLE ca_vrt_if_tbl (
     cs_mask smallint default 3,
     cs_mac_addr smallint default 3,
     cs_admin_status smallint default 3,
-  PRIMARY KEY(vtn_name, vrouter_name, if_name));
+  PRIMARY KEY(vtn_name, vrouter_name, if_name),
+  FOREIGN KEY(vtn_name, vrouter_name) REFERENCES ca_vrt_tbl(vtn_name, vrouter_name));
 
 CREATE TABLE ca_vnode_rename_tbl (
     ctrlr_vtn_name varchar(32) default ' ',
@@ -1212,7 +1221,8 @@ CREATE TABLE ca_vlink_tbl (
     cs_boundary_name smallint default 3,
     cs_vlanid smallint default 3,
     cs_description smallint default 3,
-  PRIMARY KEY(vtn_name, vlink_name));
+  PRIMARY KEY(vtn_name, vlink_name),
+  FOREIGN KEY(vtn_name) REFERENCES ca_vtn_tbl(vtn_name));
 
 CREATE TABLE ca_vlink_rename_tbl (
     ctrlr_vtn_name varchar(32) default ' ',
@@ -1237,7 +1247,8 @@ CREATE TABLE ca_static_ip_route_tbl (
     valid_metric smallint default 0,
     cs_rowstatus smallint default 3,
     cs_metric smallint default 3,
-  PRIMARY KEY(vtn_name, vrouter_name, dst_ip_addr, mask, next_hop_addr, nwm_name));
+  PRIMARY KEY(vtn_name, vrouter_name, dst_ip_addr, mask, next_hop_addr, nwm_name),
+  FOREIGN KEY(vtn_name, vrouter_name) REFERENCES ca_vrt_tbl(vtn_name, vrouter_name));
 
 CREATE TABLE ca_dhcp_relay_server_tbl (
     vtn_name varchar(32) default ' ',
@@ -1247,7 +1258,8 @@ CREATE TABLE ca_dhcp_relay_server_tbl (
     domain_id varchar(32) default ' ',
     flags smallint default 0,
     cs_rowstatus smallint default 3,
-  PRIMARY KEY(vtn_name, vrouter_name, server_ip_addr));
+  PRIMARY KEY(vtn_name, vrouter_name, server_ip_addr),
+  FOREIGN KEY(vtn_name, vrouter_name) REFERENCES ca_vrt_tbl(vtn_name, vrouter_name));
 
 CREATE TABLE ca_dhcp_relay_if_tbl (
     vtn_name varchar(32) default ' ',
@@ -1257,7 +1269,8 @@ CREATE TABLE ca_dhcp_relay_if_tbl (
     domain_id varchar(32) default ' ',
     flags smallint default 0,
     cs_rowstatus smallint default 3,
-  PRIMARY KEY(vtn_name, vrouter_name, if_name));
+  PRIMARY KEY(vtn_name, vrouter_name, if_name),
+  FOREIGN KEY(vtn_name, vrouter_name) REFERENCES ca_vrt_tbl(vtn_name, vrouter_name));
 
 CREATE TABLE ca_vbr_nwmon_grp_tbl (
     vtn_name varchar(32) default ' ',
@@ -1272,7 +1285,8 @@ CREATE TABLE ca_vbr_nwmon_grp_tbl (
     valid_oper_status smallint default 0,
     cs_rowstatus smallint default 3,
     cs_admin_status smallint default 3,
-  PRIMARY KEY(vtn_name, vbridge_name, nwm_name));
+  PRIMARY KEY(vtn_name, vbridge_name, nwm_name),
+  FOREIGN KEY(vtn_name, vbridge_name) REFERENCES ca_vbr_tbl(vtn_name, vbridge_name));
 
 CREATE TABLE ca_vbr_nwmon_host_tbl (
     vtn_name varchar(32) default ' ',
@@ -1298,7 +1312,8 @@ CREATE TABLE ca_vbr_nwmon_host_tbl (
     cs_failure_count smallint default 3,
     cs_recovery_count smallint default 3,
     cs_wait_time smallint default 3,
-  PRIMARY KEY(vtn_name, vbridge_name, nwm_name, host_address));
+  PRIMARY KEY(vtn_name, vbridge_name, nwm_name, host_address),
+  FOREIGN KEY(vtn_name, vbridge_name, nwm_name) REFERENCES ca_vbr_nwmon_grp_tbl(vtn_name, vbridge_name, nwm_name));
 
 CREATE TABLE ca_vunknown_tbl (
     vtn_name varchar(32) default ' ',
@@ -1314,7 +1329,8 @@ CREATE TABLE ca_vunknown_tbl (
     cs_description smallint default 3,
     cs_type smallint default 3,
     cs_domain_id smallint default 3,
-  PRIMARY KEY(vtn_name, vunknown_name));
+  PRIMARY KEY(vtn_name, vunknown_name),
+  FOREIGN KEY(vtn_name) REFERENCES ca_vtn_tbl(vtn_name));
 
 CREATE TABLE ca_vunknown_if_tbl (
     vtn_name varchar(32) default ' ',
@@ -1329,7 +1345,8 @@ CREATE TABLE ca_vunknown_if_tbl (
     cs_rowstatus smallint default 3,
     cs_description smallint default 3,
     cs_admin_status smallint default 3,
-  PRIMARY KEY(vtn_name, vunknown_name, if_name));
+  PRIMARY KEY(vtn_name, vunknown_name, if_name),
+  FOREIGN KEY(vtn_name, vunknown_name) REFERENCES ca_vunknown_tbl(vtn_name, vunknown_name));
 
 CREATE TABLE ca_vtep_tbl (
     vtn_name varchar(32) default ' ',
@@ -1348,7 +1365,8 @@ CREATE TABLE ca_vtep_tbl (
     cs_description smallint default 3,
     cs_controller_name smallint default 3,
     cs_domain_id smallint default 3,
-  PRIMARY KEY(vtn_name, vtep_name));
+  PRIMARY KEY(vtn_name, vtep_name),
+  FOREIGN KEY(vtn_name) REFERENCES ca_vtn_tbl(vtn_name));
 
 CREATE TABLE ca_vtep_if_tbl (
     vtn_name varchar(32) default ' ',
@@ -1378,7 +1396,8 @@ CREATE TABLE ca_vtep_if_tbl (
     cs_logical_port_id smallint default 3,
     cs_vlanid smallint default 3,
     cs_tagged smallint default 3,
-  PRIMARY KEY(vtn_name, vtep_name, if_name));
+  PRIMARY KEY(vtn_name, vtep_name, if_name),
+  FOREIGN KEY(vtn_name, vtep_name) REFERENCES ca_vtep_tbl(vtn_name, vtep_name));
 
 CREATE TABLE ca_vtep_grp_tbl (
     vtn_name varchar(32) default ' ',
@@ -1391,7 +1410,8 @@ CREATE TABLE ca_vtep_grp_tbl (
     cs_rowstatus smallint default 3,
     cs_controller_name smallint default 3,
     cs_description smallint default 3,
-  PRIMARY KEY(vtn_name, vtepgrp_name));
+  PRIMARY KEY(vtn_name, vtepgrp_name),
+  FOREIGN KEY(vtn_name) REFERENCES ca_vtn_tbl(vtn_name));
 
 CREATE TABLE ca_vtep_grp_mem_tbl (
     vtn_name varchar(32) default ' ',
@@ -1401,7 +1421,8 @@ CREATE TABLE ca_vtep_grp_mem_tbl (
     domain_id varchar(32) default ' ',
     flags smallint default 0,
     cs_rowstatus smallint default 3,
-  PRIMARY KEY(vtn_name, vtepgrp_name, vtepgrp_member_name));
+  PRIMARY KEY(vtn_name, vtepgrp_name, vtepgrp_member_name),
+  FOREIGN KEY(vtn_name, vtepgrp_name) REFERENCES ca_vtep_grp_tbl(vtn_name, vtepgrp_name));
 
 CREATE TABLE ca_vtunnel_tbl (
     vtn_name varchar(32) default ' ',
@@ -1429,7 +1450,8 @@ CREATE TABLE ca_vtunnel_tbl (
     cs_underlay_vtn_name smallint default 3,
     cs_vtepgrp_name smallint default 3,
     cs_label smallint default 3,
-  PRIMARY KEY(vtn_name, vtunnel_name));
+  PRIMARY KEY(vtn_name, vtunnel_name),
+  FOREIGN KEY(vtn_name) REFERENCES ca_vtn_tbl(vtn_name));
 
 CREATE TABLE ca_vtunnel_if_tbl (
     vtn_name varchar(32) default ' ',
@@ -1459,7 +1481,8 @@ CREATE TABLE ca_vtunnel_if_tbl (
     cs_logical_port_id smallint default 3,
     cs_vlanid smallint default 3,
     cs_tagged smallint default 3,
-  PRIMARY KEY(vtn_name, vtunnel_name, if_name));
+  PRIMARY KEY(vtn_name, vtunnel_name, if_name),
+  FOREIGN KEY(vtn_name, vtunnel_name) REFERENCES ca_vtunnel_tbl(vtn_name, vtunnel_name));
 
 CREATE TABLE ca_flowlist_tbl (
     flowlist_name varchar(33) default ' ',
@@ -1557,7 +1580,8 @@ CREATE TABLE ca_flowlist_entry_tbl (
     cs_icmp_code smallint default 3,
     cs_icmpv6_type smallint default 3,
     cs_icmpv6_code smallint default 3,
-  PRIMARY KEY(flowlist_name, sequence_num));
+  PRIMARY KEY(flowlist_name, sequence_num),
+  FOREIGN KEY(flowlist_name) REFERENCES ca_flowlist_tbl(flowlist_name));
 
 CREATE TABLE ca_flowlist_entry_ctrlr_tbl (
     flowlist_name varchar(33) default ' ',
@@ -1690,7 +1714,8 @@ CREATE TABLE ca_policingprofile_entry_tbl (
     cs_red_priority smallint default 3,
     cs_red_dscp smallint default 3,
     cs_red_drop smallint default 3,
-  PRIMARY KEY(policingprofile_name, sequence_num));
+  PRIMARY KEY(policingprofile_name, sequence_num),
+  FOREIGN KEY(policingprofile_name) REFERENCES ca_policingprofile_tbl(policingprofile_name));
 
 CREATE TABLE ca_policingprofile_entry_ctrlr_tbl (
     policingprofile_name varchar(33) default ' ',
@@ -1741,7 +1766,8 @@ CREATE TABLE ca_vtn_flowfilter_tbl (
     direction smallint default 0,
     flags smallint default 0,
     cs_rowstatus smallint default 3,
-  PRIMARY KEY(vtn_name, direction));
+  PRIMARY KEY(vtn_name, direction),
+  FOREIGN KEY(vtn_name) REFERENCES ca_vtn_tbl(vtn_name));
 
 CREATE TABLE ca_vtn_flowfilter_ctrlr_tbl (
     vtn_name varchar(32) default ' ',
@@ -1773,7 +1799,8 @@ CREATE TABLE ca_vtn_flowfilter_entry_tbl (
     cs_nwn_name smallint default 3,
     cs_dscp smallint default 3,
     cs_priority smallint default 3,
-  PRIMARY KEY(vtn_name, direction, sequence_num));
+  PRIMARY KEY(vtn_name, direction, sequence_num),
+  FOREIGN KEY(vtn_name, direction) REFERENCES ca_vtn_flowfilter_tbl(vtn_name, direction));
 
 CREATE TABLE ca_vtn_flowfilter_entry_ctrlr_tbl (
     vtn_name varchar(32) default ' ',
@@ -1803,7 +1830,8 @@ CREATE TABLE ca_vbr_flowfilter_tbl (
     domain_id varchar(32) default ' ',
     flags smallint default 0,
     cs_rowstatus smallint default 3,
-  PRIMARY KEY(vtn_name, vbr_name, direction));
+  PRIMARY KEY(vtn_name, vbr_name, direction),
+  FOREIGN KEY(vtn_name, vbr_name) REFERENCES ca_vbr_tbl(vtn_name, vbridge_name));
 
 CREATE TABLE ca_vbr_flowfilter_entry_tbl (
     vtn_name varchar(32) default ' ',
@@ -1841,7 +1869,8 @@ CREATE TABLE ca_vbr_flowfilter_entry_tbl (
     cs_nwm_name smallint default 3,
     cs_dscp smallint default 3,
     cs_priority smallint default 3,
-  PRIMARY KEY(vtn_name, vbr_name, direction, sequence_num));
+  PRIMARY KEY(vtn_name, vbr_name, direction, sequence_num),
+  FOREIGN KEY(vtn_name, vbr_name, direction) REFERENCES ca_vbr_flowfilter_tbl(vtn_name, vbr_name, direction));
 
 CREATE TABLE ca_vbr_if_flowfilter_tbl (
     vtn_name varchar(32) default ' ',
@@ -1852,7 +1881,8 @@ CREATE TABLE ca_vbr_if_flowfilter_tbl (
     domain_id varchar(32) default ' ',
     flags smallint default 0,
     cs_rowstatus smallint default 3,
-  PRIMARY KEY(vtn_name, vbr_name, vbr_if_name, direction));
+  PRIMARY KEY(vtn_name, vbr_name, vbr_if_name, direction),
+  FOREIGN KEY(vtn_name, vbr_name, vbr_if_name) REFERENCES ca_vbr_if_tbl(vtn_name, vbridge_name, if_name));
 
 CREATE TABLE ca_vbr_if_flowfilter_entry_tbl (
     vtn_name varchar(32) default ' ',
@@ -1891,7 +1921,8 @@ CREATE TABLE ca_vbr_if_flowfilter_entry_tbl (
     cs_nwm_name smallint default 3,
     cs_dscp smallint default 3,
     cs_priority smallint default 3,
-  PRIMARY KEY(vtn_name, vbr_name, vbr_if_name, direction, sequence_num));
+  PRIMARY KEY(vtn_name, vbr_name, vbr_if_name, direction, sequence_num),
+  FOREIGN KEY(vtn_name, vbr_name, vbr_if_name, direction) REFERENCES ca_vbr_if_flowfilter_tbl(vtn_name, vbr_name, vbr_if_name, direction));
 
 CREATE TABLE ca_vrt_if_flowfilter_tbl (
     vtn_name varchar(32) default ' ',
@@ -1902,7 +1933,8 @@ CREATE TABLE ca_vrt_if_flowfilter_tbl (
     domain_id varchar(32) default ' ',
     flags smallint default 0,
     cs_rowstatus smallint default 3,
-  PRIMARY KEY(vtn_name, vrt_name, vrt_if_name, direction));
+  PRIMARY KEY(vtn_name, vrt_name, vrt_if_name, direction),
+  FOREIGN KEY(vtn_name, vrt_name, vrt_if_name) REFERENCES ca_vrt_if_tbl(vtn_name, vrouter_name, if_name));
 
 CREATE TABLE ca_vrt_if_flowfilter_entry_tbl (
     vtn_name varchar(32) default ' ',
@@ -1941,7 +1973,8 @@ CREATE TABLE ca_vrt_if_flowfilter_entry_tbl (
     cs_nwm_name smallint default 3,
     cs_dscp smallint default 3,
     cs_priority smallint default 3,
-  PRIMARY KEY(vtn_name, vrt_name, vrt_if_name, direction, sequence_num));
+  PRIMARY KEY(vtn_name, vrt_name, vrt_if_name, direction, sequence_num),
+  FOREIGN KEY(vtn_name, vrt_name, vrt_if_name, direction) REFERENCES ca_vrt_if_flowfilter_tbl(vtn_name, vrt_name, vrt_if_name, direction));
 
 CREATE TABLE ca_vtn_policingmap_tbl (
     vtn_name varchar(32) default ' ',
@@ -1950,7 +1983,8 @@ CREATE TABLE ca_vtn_policingmap_tbl (
     valid_policername smallint default 0,
     cs_rowstatus smallint default 3,
     cs_policername smallint default 3,
-  PRIMARY KEY(vtn_name));
+  PRIMARY KEY(vtn_name),
+  FOREIGN KEY(vtn_name) REFERENCES ca_vtn_tbl(vtn_name));
 
 CREATE TABLE ca_vtn_policingmap_ctrlr_tbl (
     vtn_name varchar(32) default ' ',
@@ -1973,7 +2007,8 @@ CREATE TABLE ca_vbr_policingmap_tbl (
     valid_policername smallint default 0,
     cs_rowstatus smallint default 3,
     cs_policername smallint default 3,
-  PRIMARY KEY(vtn_name, vbr_name));
+  PRIMARY KEY(vtn_name, vbr_name),
+  FOREIGN KEY(vtn_name, vbr_name) REFERENCES ca_vbr_tbl(vtn_name, vbridge_name));
 
 CREATE TABLE ca_vbr_if_policingmap_tbl (
     vtn_name varchar(32) default ' ',
@@ -1986,7 +2021,8 @@ CREATE TABLE ca_vbr_if_policingmap_tbl (
     valid_policername smallint default 0,
     cs_rowstatus smallint default 3,
     cs_policername smallint default 3,
-  PRIMARY KEY(vtn_name, vbr_name, vbr_if_name));
+  PRIMARY KEY(vtn_name, vbr_name, vbr_if_name),
+  FOREIGN KEY(vtn_name, vbr_name, vbr_if_name) REFERENCES ca_vbr_if_tbl(vtn_name, vbridge_name, if_name));
 
 CREATE TABLE ca_ctrlr_tbl (
     name varchar(32) default ' ',
@@ -2069,10 +2105,12 @@ CREATE TABLE ru_vbr_vlanmap_tbl (
     logical_port_id varchar(320) default ' ',
     logical_port_id_valid smallint default 0,
     vlanid integer default 0,
+    bdry_ref_count bigint default 0,
     controller_name varchar(32) default ' ',
     domain_id varchar(32) default ' ',
     flags smallint default 0,
     valid_vlanid smallint default 0,
+    valid_bdry_ref_count smallint default 0,
     cs_rowstatus smallint default 3,
     cs_vlanid smallint default 3,
   PRIMARY KEY(vtn_name, vbridge_name, logical_port_id, logical_port_id_valid));
@@ -3057,10 +3095,12 @@ CREATE TABLE im_vbr_vlanmap_tbl (
     logical_port_id varchar(320) default ' ',
     logical_port_id_valid smallint default 0,
     vlanid integer default 0,
+    bdry_ref_count bigint default 0,
     controller_name varchar(32) default ' ',
     domain_id varchar(32) default ' ',
     flags smallint default 0,
     valid_vlanid smallint default 0,
+    valid_bdry_ref_count smallint default 0,
     cs_rowstatus smallint default 1,
     cs_vlanid smallint default 1,
   PRIMARY KEY(vtn_name, vbridge_name, logical_port_id, logical_port_id_valid));
@@ -4045,10 +4085,12 @@ CREATE TABLE au_vbr_vlanmap_tbl (
     logical_port_id varchar(320) default ' ',
     logical_port_id_valid smallint default 0,
     vlanid integer default 0,
+    bdry_ref_count bigint default 0,
     controller_name varchar(32) default ' ',
     domain_id varchar(32) default ' ',
     flags smallint default 0,
     valid_vlanid smallint default 0,
+    valid_bdry_ref_count smallint default 0,
     cs_rowstatus smallint default 1,
     cs_vlanid smallint default 1,
   PRIMARY KEY(vtn_name, vbridge_name, logical_port_id, logical_port_id_valid));
@@ -4960,3 +5002,10 @@ CREATE TABLE au_vbr_if_policingmap_tbl (
     cs_rowstatus smallint default 1,
     cs_policername smallint default 1,
   PRIMARY KEY(vtn_name, vbr_name, vbr_if_name));
+
+CREATE INDEX ca_vbr_if_tbl_semindex ON ca_vbr_if_tbl USING btree (logical_port_id, controller_name, domain_id, valid_portmap, valid_logical_port_id);
+CREATE INDEX ca_policingprofile_entry_tbl_semindex ON ca_policingprofile_entry_tbl USING btree (flowlist, valid_flowlist);
+CREATE INDEX ca_vtn_policingmap_tbl_semindex ON ca_vtn_policingmap_tbl USING btree (policername, valid_policername);
+CREATE INDEX ca_vbr_policingmap_tbl_semindex ON ca_vbr_policingmap_tbl USING btree (policername, valid_policername);
+CREATE INDEX ca_vbr_if_policingmap_tbl_semindex ON ca_vbr_if_policingmap_tbl USING btree (policername, valid_policername);
+CREATE INDEX ru_vbr_if_tbl_showindex ON ru_vbr_if_tbl (vtn_name, vex_name, valid_vex_name);
\ No newline at end of file
diff --git a/coordinator/modules/dataflow/Makefile b/coordinator/modules/dataflow/Makefile
new file mode 100644 (file)
index 0000000..1927c73
--- /dev/null
@@ -0,0 +1,41 @@
+#
+# Copyright (c) 2013-2014 NEC Corporation
+# All rights reserved.
+#
+# This program and the accompanying materials are made available under the
+# terms of the Eclipse Public License v1.0 which accompanies this
+# distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+#
+
+##
+## Makefile that drives the production of capa module.
+##
+
+include ../defs.mk
+
+CXX_SOURCES = dataflow.cc 
+
+# Example of Boost library configuration.
+BOOST_LIBS     = 
+
+EXTRA_INCDIRS   = $(CURDIR)/../uppl/include $(CURDIR)/../upll $(CURDIR)/../upll/include
+
+include ../rules.mk
+
+
+##
+## Targets:
+##
+## make all (default target)
+##     Build all binary distributions.
+##
+## make install
+##     Execute "make all" and install binary distributions into the
+##     installation directory.
+##
+## make clean
+##     Remove binary distributions built by "make all".
+##
+## make clobber
+##     Execute "make clean" and remove header dependency files.
+##
diff --git a/coordinator/modules/dataflow/dataflow.cc b/coordinator/modules/dataflow/dataflow.cc
new file mode 100644 (file)
index 0000000..830bba1
--- /dev/null
@@ -0,0 +1,3293 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * @file    dataflow.cc
+ *
+ */
+
+#include "uncxx/dataflow.hh"
+#include <unc/unc_base.h>
+#include <arpa/inet.h>
+#include <sstream>
+#include <bitset>
+#include "unc/keytype.h"
+#include "ipc_util.hh"
+
+#define DATAFLOW_MATCHES_ADDOUTPUT(val_df_flow_match_xx_t, \
+                                   match_iterator, \
+                                   session, \
+                                   putresp_position, \
+                                   err_code) \
+val_df_flow_match_xx_t *ptr_t = \
+reinterpret_cast<val_df_flow_match_xx_t *>((match_iterator).second); \
+pfc_log_debug("%d. %s", (putresp_position), get_string(*ptr_t).c_str()); \
+(putresp_position)++; \
+(err_code) |= (session).addOutput(*ptr_t); \
+if ((err_code) != UNC_RC_SUCCESS) return (err_code);
+
+#define DATAFLOW_ACTION_ADDOUTPUT(val_df_flow_action_set_xx_t, \
+                                  actions_vect_st, \
+                                  session, \
+                                  putresp_position, \
+                                  err_code) \
+val_df_flow_action_set_xx_t *ptr_t = \
+reinterpret_cast<val_df_flow_action_set_xx_t *>( \
+                                                (actions_vect_st)->action_st_ptr); \
+pfc_log_debug("%d. %s", (putresp_position), get_string(*ptr_t).c_str()); \
+(putresp_position)++; \
+(err_code) |= (session).addOutput(*ptr_t); \
+if ((err_code) != UNC_RC_SUCCESS) return (err_code);
+
+#define DATAFLOW_MATCHES_GETRESP(val_df_flow_match_xx_t, \
+                                 mmatches, \
+                                 UncDataflowFlowMatchType_val, \
+                                 session, \
+                                 getres_position, \
+                                 err_code) \
+val_df_flow_match_xx_t *ptr_t =  new val_df_flow_match_xx_t; \
+memset(ptr_t, 0, sizeof(val_df_flow_match_xx_t)); \
+(err_code) |= (session).getResponse((getres_position)++, *ptr_t); \
+if ((err_code) != UNC_RC_SUCCESS) return (err_code); \
+(mmatches)[(UncDataflowFlowMatchType_val)] = ptr_t;
+
+#define DATAFLOW_ACTION_GETRESP(val_df_flow_action_xx_t, \
+                                getres_position, \
+                                session, \
+                                actions_vect_st, \
+                                err_code) \
+val_df_flow_action_xx_t *ptr_t =  new val_df_flow_action_xx_t; \
+memset(ptr_t, 0, sizeof(val_df_flow_action_xx_t)); \
+(err_code) |= (session).getResponse((getres_position)++, *ptr_t); \
+if ((err_code) != UNC_RC_SUCCESS) return (err_code); \
+(actions_vect_st)->action_st_ptr = ptr_t;
+
+#define DATAFLOW_MATCHES_GETSTRING(sstr, match_iter, val_df_flow_match_xx_t) \
+    val_df_flow_match_xx_t *ptr_t = \
+reinterpret_cast<val_df_flow_match_xx_t*>((match_iter).second); \
+(sstr) << "  " << ((match_iter).first) << "..." << get_string(*ptr_t); \
+
+#define DATAFLOW_ACTIONS_GETSTRING(sstr, ptr, val_df_flow_action_xx_t) \
+    val_df_flow_action_xx_t *ptr_t = \
+reinterpret_cast<val_df_flow_action_xx_t *>(ptr->action_st_ptr); \
+(sstr) << "  " << (ptr)->action_type << "..." << get_string(*ptr_t); \
+
+#define DEEP_COPY_MATCHES_TO_OUTPUTMATCHES(val_df_flow_match_xx_t, \
+                                           op_matches, \
+                                           UncDataflowFlowMatchType_val, \
+                                           iterator) \
+val_df_flow_match_xx_t *val_mat = \
+reinterpret_cast<val_df_flow_match_xx_t*>((iterator).second); \
+val_df_flow_match_xx_t *val_out_mat = new(val_df_flow_match_xx_t); \
+memcpy(val_out_mat, val_mat, sizeof(val_df_flow_match_xx_t)); \
+(op_matches)[(UncDataflowFlowMatchType_val)] = val_out_mat;
+
+using std::stringstream;
+using std::bitset;
+using namespace unc::dataflow;
+using unc::upll::ipc_util::ConfigKeyVal;
+
+string uint8tostr(const uint8_t& c) {
+  char str[20];
+  memset(&str, '\0', 20);
+  snprintf(str, sizeof(str), "%d", c);
+  string str1(str);
+  return str1;
+}
+string uint16tostr(const uint16_t& c) {
+  char str[20];
+  snprintf(str, sizeof(str), "%d", c);
+  string str1(str);
+  return str1;
+}
+string uint64tostr(const uint64_t& c) {
+  char str[25];
+  snprintf(str, sizeof(str), "%"PFC_PFMT_u64, c);
+  string str1(str);
+  return str1;
+}
+
+
+
+
+DataflowDummy* DataflowDummy::dataflow_dummy_ = NULL;
+
+DataflowDummy::DataflowDummy(const pfc_modattr_t *attr)
+  :pfc::core::Module(attr) {
+  }
+
+DataflowDummy* DataflowDummy::get_dataflow_dummy() {
+  /** No Need to check NULL and create capabilit object.*/
+  return dataflow_dummy_;
+}
+
+pfc_bool_t DataflowDummy::init() {
+  dataflow_dummy_ = this;
+  return PFC_TRUE;
+}
+
+pfc_bool_t DataflowDummy::fini() {
+  return PFC_TRUE;
+}
+
+AddlData::AddlData()
+  : reason(0),
+    controller_count(0),
+    max_dom_traversal_count(0),
+    current_traversal_count(0) {
+    }
+
+AddlData::~AddlData() {
+  traversed_controllers.clear();
+}
+
+DataflowDetail::DataflowDetail(IpctStructNum df_type,
+                               unc_keytype_ctrtype_t ctr_type)
+: df_common(NULL), vtn_df_common(NULL), ckv_egress(NULL),
+    st_num_(df_type) {
+      if (st_num_ == kidx_val_df_data_flow_cmn) {
+        df_common = new val_df_data_flow_cmn_t;
+        memset(df_common, 0, sizeof(val_df_data_flow_cmn_t));
+        df_common->controller_type = ctr_type;
+        if (df_common->controller_type == UNC_CT_VNP) {
+          df_common->valid[kidxDfDataFlowControllerName] = 1;
+          df_common->valid[kidxDfDataFlowControllerType] = 1;
+          df_common->valid[kidxDfDataFlowIngressSwitchId] = 1;
+          df_common->valid[kidxDfDataFlowInPort] = 1;
+          df_common->valid[kidxDfDataFlowInDomain] = 1;
+          df_common->valid[kidxDfDataFlowEgressSwitchId] = 1;
+          df_common->valid[kidxDfDataFlowOutPort] = 1;
+          df_common->valid[kidxDfDataFlowOutDomain] = 1;
+        } else if (df_common->controller_type == UNC_CT_UNKNOWN) {
+          df_common->valid[kidxDfDataFlowControllerName] = 1;
+          df_common->valid[kidxDfDataFlowControllerType] = 1;
+          df_common->valid[kidxDfDataFlowInDomain] = 1;
+          df_common->valid[kidxDfDataFlowOutDomain] = 1;
+        }
+      } else {
+        // LOGICAL
+        flow_traversed = false;
+        vtn_df_common = new val_vtn_dataflow_cmn_t;
+        memset(vtn_df_common, 0, sizeof(val_vtn_dataflow_cmn_t));
+        vtn_df_common->controller_type = ctr_type;
+        if ((vtn_df_common->controller_type == UNC_CT_VNP) ||
+            (vtn_df_common->controller_type == UNC_CT_UNKNOWN)) {
+          if (vtn_df_common->controller_type != UNC_CT_UNKNOWN)
+            vtn_df_common->valid[UPLL_IDX_CONTROLLER_ID_VVDC]     = 1;
+          // Controller Name
+          vtn_df_common->valid[UPLL_IDX_CONTROLLER_TYPE_VVDC]    = 1;
+          // Controller Type
+          vtn_df_common->valid[UPLL_IDX_INGRESS_VNODE_VVDC]      = 1;
+          // ingress vnode ****
+          vtn_df_common->valid[UPLL_IDX_INGRESS_VINTERFACE_VVDC] = 1;
+          // ingress vInterface Name****
+          vtn_df_common->valid[UPLL_IDX_INGRESS_DOMAIN_VVDC]     = 1;
+          // ingress domain ****
+          vtn_df_common->valid[UPLL_IDX_EGRESS_VNODE_VVDC]       = 1;
+          // egress vnode
+          vtn_df_common->valid[UPLL_IDX_EGRESS_VINTERFACE_VVDC]  = 1;
+          // egress vInterface Name
+          vtn_df_common->valid[UPLL_IDX_EGRESS_DOMAIN_VVDC]      = 1;
+          // egress domain
+        }
+      }
+    }
+
+
+/** Constructor
+ * * @Description : This constructor initializes member variables
+ * * @param[in]   : isHead, DataflowDetail pointer
+ * * @return      : None
+ **/
+DataflowCmn::DataflowCmn(bool isHead, DataflowDetail *df_segm)
+  : df_segment(df_segm),
+    is_head(isHead),
+    head(NULL),
+    total_flow_count(0),
+    is_vlan_src_mac_changed_(false),
+    parent_node(NULL) {
+      addl_data = new AddlData();
+    }
+
+
+/** Destructor
+ * * @Description : Destructor deletes all allocated memories
+ * * @param[in]   : None
+ * * @return      : None
+ **/
+DataflowCmn::~DataflowCmn() {
+  pfc_log_trace("DataflowCmn -Destructor call");
+  if (df_segment != NULL) {
+    if (df_segment->st_num_ == kidx_val_df_data_flow_cmn) {
+      if (df_segment->df_common->controller_type != UNC_CT_PFC) {
+        pfc_log_debug("~DataflowCmn deleting %d df_segment %p",
+                      df_segment->df_common->controller_type, df_segment);
+        delete df_segment;
+        df_segment = NULL;
+      }
+    } else {
+      // LOGICAL
+      if (df_segment->vtn_df_common->controller_type != UNC_CT_PFC) {
+        pfc_log_debug("~DataflowCmn deleting %d df_segment %p",
+                      df_segment->vtn_df_common->controller_type, df_segment);
+        delete df_segment;
+        df_segment = NULL;
+      }
+    }
+  }
+  if (output_matches.size() > 0) {
+    map<UncDataflowFlowMatchType, void *>::iterator op_matches_iter;
+    for (op_matches_iter = output_matches.begin();
+         op_matches_iter != output_matches.end();
+         op_matches_iter++) {
+      ::operator delete((*op_matches_iter).second);
+      pfc_log_trace("out_matches map entry is deleted");
+    }
+    output_matches.clear();
+  }
+  if (next.size() > 0) {
+    vector<DataflowCmn *>::iterator next_iter;
+    for (next_iter = next.begin();
+         next_iter != next.end();
+         next_iter++) {
+      delete (*next_iter);
+      pfc_log_trace("next vector entry is deleted");
+    }
+    next.clear();
+  }
+  if (addl_data != NULL) {
+    delete addl_data;
+    addl_data = NULL;
+  }
+  pfc_log_trace("DataflowCmn - Destructor call end");
+}
+
+
+/** sessReadDataflow
+ * @Description : This function Reads dataflow val structures
+ * using getresponse function
+ * @param[in]   : sess - ipc client session where the response has to be added
+ * getres_pos - read position
+ * @return      : UncRespCode is returned
+ **/
+int DataflowDetail::sessReadDataflow(ClientSession& sess,
+                                     uint32_t& getres_pos) {
+  int err = 0;
+
+  pfc_log_debug("inside sessReadDataflow fn with getres_pos as %d",
+                getres_pos);
+  uint32_t match_count = 0;
+  uint32_t action_count = 0;
+  if (st_num_ == kidx_val_df_data_flow_cmn) {
+    memset(df_common, 0, sizeof(val_df_data_flow_cmn_t));
+    err |= sess.getResponse(getres_pos++, *df_common);
+    pfc_log_debug("%s", DataflowCmn::get_string(*df_common).c_str());
+    match_count = df_common->match_count;
+    action_count = df_common->action_count;
+  } else {
+    memset(vtn_df_common, 0, sizeof(val_vtn_dataflow_cmn_t));
+    err |= sess.getResponse(getres_pos++, *vtn_df_common);
+    pfc_log_debug("%s", DataflowCmn::get_string(*vtn_df_common).c_str());
+    match_count = vtn_df_common->match_count;
+    action_count = vtn_df_common->action_count;
+  }
+  if (err != UNC_RC_SUCCESS) {
+    return err;
+  }
+  val_df_flow_match_t val_flow_match_obj;
+  memset(&val_flow_match_obj, 0, sizeof(val_flow_match_obj));
+  for (uint32_t i = 0; i < match_count; i++) {
+    err |= sess.getResponse(getres_pos++, val_flow_match_obj);
+    if (err != UNC_RC_SUCCESS) {
+      pfc_log_error("getresponse returned %d, for %d flow_match strt", err, i);
+      return err;
+    }
+
+    pfc_log_debug("%s", DataflowCmn::get_string(val_flow_match_obj).c_str());
+    switch (val_flow_match_obj.match_type) {
+      case UNC_MATCH_IN_PORT:
+        {
+          DATAFLOW_MATCHES_GETRESP(val_df_flow_match_in_port_t, matches,
+                                   UNC_MATCH_IN_PORT, sess, getres_pos, err);
+          break;
+        }
+      case UNC_MATCH_DL_DST:
+        {
+          DATAFLOW_MATCHES_GETRESP(val_df_flow_match_dl_addr_t, matches,
+                                   UNC_MATCH_DL_DST, sess, getres_pos, err);
+          break;
+        }
+      case UNC_MATCH_DL_SRC:
+        {
+          DATAFLOW_MATCHES_GETRESP(val_df_flow_match_dl_addr_t, matches,
+                                   UNC_MATCH_DL_SRC, sess, getres_pos, err);
+          break;
+        }
+      case UNC_MATCH_DL_TYPE:
+        {
+          DATAFLOW_MATCHES_GETRESP(val_df_flow_match_dl_type_t, matches,
+                                   UNC_MATCH_DL_TYPE, sess, getres_pos, err);
+          break;
+        }
+      case UNC_MATCH_VLAN_ID:
+        {
+          DATAFLOW_MATCHES_GETRESP(val_df_flow_match_vlan_id_t, matches,
+                                   UNC_MATCH_VLAN_ID, sess, getres_pos, err);
+          break;
+        }
+      case UNC_MATCH_VLAN_PCP:
+        {
+          DATAFLOW_MATCHES_GETRESP(val_df_flow_match_vlan_pcp_t, matches,
+                                   UNC_MATCH_VLAN_PCP, sess, getres_pos, err);
+          break;
+        }
+      case UNC_MATCH_IP_TOS:
+        {
+          DATAFLOW_MATCHES_GETRESP(val_df_flow_match_ip_tos_t, matches,
+                                   UNC_MATCH_IP_TOS, sess, getres_pos, err);
+          break;
+        }
+      case UNC_MATCH_IP_PROTO:
+        {
+          DATAFLOW_MATCHES_GETRESP(val_df_flow_match_ip_proto_t, matches,
+                                   UNC_MATCH_IP_PROTO, sess, getres_pos, err);
+          break;
+        }
+      case UNC_MATCH_IPV4_SRC:
+        {
+          DATAFLOW_MATCHES_GETRESP(val_df_flow_match_ipv4_addr_t, matches,
+                                   UNC_MATCH_IPV4_SRC, sess, getres_pos, err);
+          break;
+        }
+      case UNC_MATCH_IPV4_DST:
+        {
+          DATAFLOW_MATCHES_GETRESP(val_df_flow_match_ipv4_addr_t, matches,
+                                   UNC_MATCH_IPV4_DST, sess, getres_pos, err);
+          break;
+        }
+      case UNC_MATCH_IPV6_SRC:
+        {
+          DATAFLOW_MATCHES_GETRESP(val_df_flow_match_ipv6_addr_t, matches,
+                                   UNC_MATCH_IPV6_SRC, sess, getres_pos, err);
+          break;
+        }
+      case UNC_MATCH_IPV6_DST:
+        {
+          DATAFLOW_MATCHES_GETRESP(val_df_flow_match_ipv6_addr_t, matches,
+                                   UNC_MATCH_IPV6_DST, sess, getres_pos, err);
+          break;
+        }
+      case UNC_MATCH_TP_SRC:
+        {
+          DATAFLOW_MATCHES_GETRESP(val_df_flow_match_tp_port_t, matches,
+                                   UNC_MATCH_TP_SRC, sess, getres_pos, err);
+          break;
+        }
+      case UNC_MATCH_TP_DST:
+        {
+          DATAFLOW_MATCHES_GETRESP(val_df_flow_match_tp_port_t, matches,
+                                   UNC_MATCH_TP_DST, sess, getres_pos, err);
+          break;
+        }
+      default:
+        {
+          pfc_log_warn("Invalid Match Type received %d"
+                       , val_flow_match_obj.match_type);
+          return EBADF;
+          break;
+        }
+    }
+  }
+
+  for (uint32_t i = 0; i < action_count; i++) {
+    val_df_flow_action_t val_flow_action_obj;
+    memset(&val_flow_action_obj, 0, sizeof(val_df_flow_action_t));
+    err |= sess.getResponse(getres_pos++, val_flow_action_obj);
+    if (err != UNC_RC_SUCCESS) {
+      pfc_log_warn("getresponse returned %d, for %d flow_action strt", err, i);
+      return err;
+    }
+    pfc_log_debug("%s", DataflowCmn::get_string(val_flow_action_obj).c_str());
+    val_actions_vect_st *obj_actions_vect_st = new val_actions_vect_st;
+    memset(obj_actions_vect_st, 0, sizeof(val_actions_vect_st));
+    obj_actions_vect_st->action_type =
+        (UncDataflowFlowActionType)val_flow_action_obj.action_type;
+    switch (val_flow_action_obj.action_type) {
+      case UNC_ACTION_OUTPUT:
+        {
+          DATAFLOW_ACTION_GETRESP(val_df_flow_action_output_port_t,
+                                  getres_pos, sess, obj_actions_vect_st, err);
+          break;
+        }
+      case UNC_ACTION_SET_ENQUEUE:
+        {
+          DATAFLOW_ACTION_GETRESP(val_df_flow_action_enqueue_port_t,
+                                  getres_pos, sess, obj_actions_vect_st, err);
+          break;
+        }
+      case UNC_ACTION_SET_DL_SRC:
+        {
+          DATAFLOW_ACTION_GETRESP(val_df_flow_action_set_dl_addr_t,
+                                  getres_pos, sess, obj_actions_vect_st, err);
+          break;
+        }
+      case UNC_ACTION_SET_DL_DST:
+        {
+          DATAFLOW_ACTION_GETRESP(val_df_flow_action_set_dl_addr_t,
+                                  getres_pos, sess, obj_actions_vect_st, err);
+          break;
+        }
+      case UNC_ACTION_SET_VLAN_ID:
+        {
+          DATAFLOW_ACTION_GETRESP(val_df_flow_action_set_vlan_id_t,
+                                  getres_pos, sess, obj_actions_vect_st, err);
+          break;
+        }
+      case UNC_ACTION_SET_VLAN_PCP:
+        {
+          DATAFLOW_ACTION_GETRESP(val_df_flow_action_set_vlan_pcp_t,
+                                  getres_pos, sess, obj_actions_vect_st, err);
+          break;
+        }
+      case UNC_ACTION_STRIP_VLAN:
+        {
+          getres_pos++;
+          break;
+        }
+      case UNC_ACTION_SET_IPV4_SRC:
+        {
+          DATAFLOW_ACTION_GETRESP(val_df_flow_action_set_ipv4_t,
+                                  getres_pos, sess, obj_actions_vect_st, err);
+          break;
+        }
+      case UNC_ACTION_SET_IPV4_DST:
+        {
+          DATAFLOW_ACTION_GETRESP(val_df_flow_action_set_ipv4_t,
+                                  getres_pos, sess, obj_actions_vect_st, err);
+          break;
+        }
+      case UNC_ACTION_SET_IP_TOS:
+        {
+          DATAFLOW_ACTION_GETRESP(val_df_flow_action_set_ip_tos_t,
+                                  getres_pos, sess, obj_actions_vect_st, err);
+          break;
+        }
+      case UNC_ACTION_SET_TP_SRC:
+        {
+          DATAFLOW_ACTION_GETRESP(val_df_flow_action_set_tp_port_t,
+                                  getres_pos, sess, obj_actions_vect_st, err);
+          break;
+        }
+      case UNC_ACTION_SET_TP_DST:
+        {
+          DATAFLOW_ACTION_GETRESP(val_df_flow_action_set_tp_port_t,
+                                  getres_pos, sess, obj_actions_vect_st, err);
+          break;
+        }
+      case UNC_ACTION_SET_IPV6_SRC:
+        {
+          DATAFLOW_ACTION_GETRESP(val_df_flow_action_set_ipv6_t,
+                                  getres_pos, sess, obj_actions_vect_st, err);
+          break;
+        }
+      case UNC_ACTION_SET_IPV6_DST:
+        {
+          DATAFLOW_ACTION_GETRESP(val_df_flow_action_set_ipv6_t,
+                                  getres_pos, sess, obj_actions_vect_st, err);
+          break;
+        }
+      default:
+        {
+          pfc_log_warn("Invalid Action Type received %d"
+                       , val_flow_action_obj.action_type);
+          return EBADF;
+          break;
+        }
+    }
+    actions.push_back(obj_actions_vect_st);
+  }
+
+  pfc_log_trace("inside sessReadDataflow fn getting path info");
+  if (st_num_ == kidx_val_df_data_flow_cmn) {
+    for (uint32_t i = 0; i < df_common->path_info_count; i++) {
+      val_df_data_flow_path_info_t *val_flow_path_obj
+          = new val_df_data_flow_path_info_t;
+      memset(val_flow_path_obj, 0, sizeof(val_df_data_flow_path_info_t));
+      err |= sess.getResponse(getres_pos++, *val_flow_path_obj);
+      if (err != UNC_RC_SUCCESS) {
+        pfc_log_warn("getresponse returned %d, for %d path_info strt", err, i);
+        return err;
+      }
+      pfc_log_debug("%d.%s", i,
+                    DataflowCmn::get_string(*val_flow_path_obj).c_str());
+      path_infos.push_back(val_flow_path_obj);
+    }
+  } else {
+    for (uint32_t i = 0; i < vtn_df_common->path_info_count; i++) {
+      val_vtn_dataflow_path_info_t *val_flow_path_obj
+          = new val_vtn_dataflow_path_info_t;
+      memset(val_flow_path_obj, 0, sizeof(val_vtn_dataflow_path_info_t));
+      err |= sess.getResponse(getres_pos++, *val_flow_path_obj);
+      if (err != 0)
+        return err;
+      pfc_log_debug("%d.%s", i,
+                    DataflowCmn::get_string(*val_flow_path_obj).c_str());
+      vtn_path_infos.push_back(val_flow_path_obj);
+    }
+  }
+  pfc_log_debug("Returned value is %d", err);
+  return err;
+}
+
+/**  CompareDataflow
+ * * @Description : This function compare dataflows
+ * * @param[in]   : vector
+ * * @return      : true or false
+ */
+bool DataflowCmn::CompareDataflow(DataflowCmn *otherflow) {
+  if ((strcmp((const char*)otherflow->df_segment->df_common->controller_name
+              , (const char*)this->df_segment->df_common->controller_name) != 0)
+      || (strcmp((const char*)otherflow->df_segment->df_common->egress_switch_id
+                 , (const char*)
+                 this->df_segment->df_common->egress_switch_id) != 0)
+      || (strcmp((const char*)otherflow->df_segment->df_common->out_port
+                 , (const char*)this->df_segment->df_common->out_port) != 0)) {
+    pfc_log_info("Controller Name, switch id, Port id are not matched");
+    return false;
+  }
+  return true;
+}
+/**  Compare
+ * * @Description : This function compare dataflows
+ * * @param[in]   : vector
+ * * @return      : true or false
+ */
+bool DataflowCmn::Compare(const key_dataflow_t& lhs,
+                          const key_dataflow_t& rhs) {
+  int ret = strcmp((const char*)lhs.controller_name, (const char*)
+                   rhs.controller_name);
+  if ( ret != 0 ) return false;
+  ret = strcmp((const char*)lhs.switch_id, (const char*)rhs.switch_id);
+  if ( ret != 0 ) return false;
+  ret = strcmp((const char*)lhs.port_id, (const char*)rhs.port_id);
+  if ( ret != 0 ) return false;
+  if (lhs.vlan_id != rhs.vlan_id) return false;
+  ret = memcmp(lhs.src_mac_address, rhs.src_mac_address,
+               sizeof(lhs.src_mac_address));
+  if ( ret != 0 ) return false;
+  return true;
+}
+/**  CompareVtnDataflow
+ * * @Description : This function compare dataflows
+ * * @param[in]   : vector
+ * * @return      : true or false
+ */
+bool DataflowCmn::CompareVtnDataflow(DataflowCmn *otherflow) {
+  if ((strcmp((const char*)otherflow->df_segment->vtn_df_common->controller_id
+              , (const char*)
+              this->df_segment->vtn_df_common->controller_id) != 0)
+      || (strcmp((const char*)otherflow->df_segment->vtn_df_common->
+                 egress_switch_id
+                 , (const char*)
+                 this->df_segment->vtn_df_common->egress_switch_id)
+          != 0)
+      || (strcmp((const char*)otherflow->df_segment->vtn_df_common->
+                 egress_port_id
+                 , (const char*)
+                 this->df_segment->vtn_df_common->egress_port_id)
+          != 0)) {
+    pfc_log_info("Controller Name, switch id, Port id are not matched");
+    return false;
+  }
+  return true;
+}
+
+
+/** operator
+ * * @Description : This function compare dataflows
+ * * @param[in]   : vector
+ * * @return      : true or false
+ */
+bool DataflowCmn::Compare(const key_vtn_ctrlr_dataflow& lhs,
+                          const key_vtn_ctrlr_dataflow& rhs) {
+  int ret = strcmp((const char*)lhs.ctrlr, (const char*)rhs.ctrlr);
+  if ( ret != 0 ) return false;
+  ret = strcmp((const char*)lhs.domain, (const char*)rhs.domain);
+  if ( ret != 0 ) return false;
+  ret = strcmp((const char*)lhs.vtn_key.vtn_name,
+               (const char*)rhs.vtn_key.vtn_name);
+  if ( ret != 0 ) return false;
+  if (lhs.vlanid != rhs.vlanid) return false;
+  ret = memcmp(lhs.src_mac_address, rhs.src_mac_address,
+               sizeof(lhs.src_mac_address));
+  if ( ret != 0 ) return false;
+  return true;
+}
+
+bool KeyDataflowCmp::operator()(const key_dataflow_t& lhs,
+                                const key_dataflow_t& rhs) {
+  pfc_log_debug("KeyDataflowCmp called \n%s\n%s",
+                DataflowCmn::get_string(lhs).c_str(),
+                DataflowCmn::get_string(rhs).c_str());
+  int ret = strcmp((const char*)lhs.controller_name,
+                   (const char*)rhs.controller_name);
+  if ( ret < 0 ) return true;
+  ret = strcmp((const char*)lhs.switch_id, (const char*)rhs.switch_id);
+  if ( ret < 0 ) return true;
+  ret = strcmp((const char*)lhs.port_id, (const char*)rhs.port_id);
+  if ( ret < 0 ) return true;
+  if (lhs.vlan_id < rhs.vlan_id) return true;
+  ret = memcmp(lhs.src_mac_address, rhs.src_mac_address,
+               sizeof(lhs.src_mac_address));
+  if ( ret < 0 ) return true;
+  return false;
+}
+
+/**  CompareDataflow
+ * * @Description : This function compare dataflows
+ * * @param[in]   : vector
+ * * @return      : true or false
+ */
+bool KeyVtnDataflowCmp::operator()(const key_vtn_ctrlr_dataflow &lhs,
+                                   const key_vtn_ctrlr_dataflow &rhs) {
+  int ret =  strcmp((const char *)lhs.vtn_key.vtn_name,
+                    (const char*)rhs.vtn_key.vtn_name);
+  if (ret < 0) return true;
+  ret =  strcmp((const char *)lhs.ctrlr, (const char *)rhs.ctrlr);
+  if (ret < 0) return true;
+  ret =  strcmp((const char *)lhs.domain, (const char *)rhs.domain);
+  if (ret < 0) return true;
+  if ( lhs.vlanid < rhs.vlanid) return true;
+  ret = memcmp(lhs.src_mac_address,
+               rhs.src_mac_address, sizeof(lhs.src_mac_address));
+  if ( ret < 0 ) return true;
+  return false;
+}
+
+
+/** sessOutDataflow
+ * @Description : This function writes dataflow val structures
+ * using addoutput function
+ * @param[in]   : sess - ipc server session where the response has to be added
+ * putres_pos - write position
+ * @return      : UncRespCode is returned
+ **/
+int DataflowCmn::sessOutDataflow(ServerSession& sess, int& putresp_pos) {
+  if (df_segment == NULL) {
+    pfc_log_debug("df_segment is NULL in DataflowCmn::sessReadDataflow");
+    return -1;
+  }
+  int err = 0;
+  map<UncDataflowFlowMatchType, void *>::iterator match_iter;
+
+  pfc_log_trace("inside sessOutDataflow fn with getres_pos as %d", putresp_pos);
+
+  if (df_segment->st_num_ == kidx_val_df_data_flow_cmn) {
+    df_segment->df_common->path_info_count = df_segment->path_infos.size();
+    df_segment->df_common->match_count = df_segment->matches.size();
+    df_segment->df_common->action_count = df_segment->actions.size();
+  } else {
+    df_segment->vtn_df_common->path_info_count =
+        df_segment->vtn_path_infos.size();
+    df_segment->vtn_df_common->match_count = df_segment->matches.size();
+    df_segment->vtn_df_common->action_count = df_segment->actions.size();
+  }
+
+  if (df_segment->st_num_ == kidx_val_df_data_flow_cmn) {
+    pfc_log_debug("%d. %s", putresp_pos,
+                  get_string(*df_segment->df_common).c_str());
+    putresp_pos++;
+    err |= sess.addOutput(*df_segment->df_common);
+  } else {
+    // LOGICAL
+    pfc_log_debug("%d. %s", putresp_pos,
+                  get_string(*df_segment->vtn_df_common).c_str());
+    putresp_pos++;
+    err |= sess.addOutput(*df_segment->vtn_df_common);
+  }
+
+  for (match_iter = df_segment->matches.begin();
+       match_iter != df_segment->matches.end(); match_iter++) {
+    val_df_flow_match_t val_match;
+    val_match.match_type = (UncDataflowFlowMatchType)(*match_iter).first;
+    pfc_log_debug("%d. %s", putresp_pos, get_string(val_match).c_str());
+    putresp_pos++;
+    err |= sess.addOutput(val_match);
+    if (err != UNC_RC_SUCCESS) {
+      pfc_log_trace("addoutput status %d, failed to sent %d flow_match strt ",
+                    err, putresp_pos);
+      return err;
+    }
+
+    switch (val_match.match_type) {
+      case UNC_MATCH_IN_PORT:
+        {
+          DATAFLOW_MATCHES_ADDOUTPUT(val_df_flow_match_in_port_t,
+                                     *match_iter, sess, putresp_pos, err);
+          break;
+        }
+      case UNC_MATCH_DL_SRC:
+        {
+          DATAFLOW_MATCHES_ADDOUTPUT(val_df_flow_match_dl_addr_t,
+                                     *match_iter, sess, putresp_pos, err);
+          break;
+        }
+      case UNC_MATCH_DL_DST:
+        {
+          DATAFLOW_MATCHES_ADDOUTPUT(val_df_flow_match_dl_addr_t,
+                                     *match_iter, sess, putresp_pos, err);
+          break;
+        }
+      case UNC_MATCH_DL_TYPE:
+        {
+          DATAFLOW_MATCHES_ADDOUTPUT(val_df_flow_match_dl_type_t,
+                                     *match_iter, sess, putresp_pos, err);
+          break;
+        }
+      case UNC_MATCH_VLAN_ID:
+        {
+          DATAFLOW_MATCHES_ADDOUTPUT(val_df_flow_match_vlan_id_t,
+                                     *match_iter, sess, putresp_pos, err);
+          break;
+        }
+      case UNC_MATCH_VLAN_PCP:
+        {
+          DATAFLOW_MATCHES_ADDOUTPUT(val_df_flow_match_vlan_pcp_t,
+                                     *match_iter, sess, putresp_pos, err);
+          break;
+        }
+      case UNC_MATCH_IP_TOS:
+        {
+          DATAFLOW_MATCHES_ADDOUTPUT(val_df_flow_match_ip_tos_t,
+                                     *match_iter, sess, putresp_pos, err);
+          break;
+        }
+      case UNC_MATCH_IP_PROTO:
+        {
+          DATAFLOW_MATCHES_ADDOUTPUT(val_df_flow_match_ip_proto_t,
+                                     *match_iter, sess, putresp_pos, err);
+          break;
+        }
+      case UNC_MATCH_IPV4_SRC:
+        {
+          DATAFLOW_MATCHES_ADDOUTPUT(val_df_flow_match_ipv4_addr_t,
+                                     *match_iter, sess, putresp_pos, err);
+          break;
+        }
+      case UNC_MATCH_IPV4_DST:
+        {
+          DATAFLOW_MATCHES_ADDOUTPUT(val_df_flow_match_ipv4_addr_t,
+                                     *match_iter, sess, putresp_pos, err);
+          break;
+        }
+      case UNC_MATCH_IPV6_SRC:
+        {
+          DATAFLOW_MATCHES_ADDOUTPUT(val_df_flow_match_ipv6_addr_t,
+                                     *match_iter, sess, putresp_pos, err);
+          break;
+        }
+      case UNC_MATCH_IPV6_DST:
+        {
+          DATAFLOW_MATCHES_ADDOUTPUT(val_df_flow_match_ipv6_addr_t,
+                                     *match_iter, sess, putresp_pos, err);
+          break;
+        }
+      case UNC_MATCH_TP_SRC:
+        {
+          DATAFLOW_MATCHES_ADDOUTPUT(val_df_flow_match_tp_port_t,
+                                     *match_iter, sess, putresp_pos, err);
+          break;
+        }
+      case UNC_MATCH_TP_DST:
+        {
+          DATAFLOW_MATCHES_ADDOUTPUT(val_df_flow_match_tp_port_t,
+                                     *match_iter, sess, putresp_pos, err);
+          break;
+        }
+      default:
+        {
+          pfc_log_debug("Invalid Match Type received %d", val_match.match_type);
+          break;
+        }
+    }
+  }
+
+  pfc_log_trace
+      ("inside sessOutDataflow fn sending actions after match struct sessout.");
+  for (uint32_t i = 0; i < df_segment->actions.size(); i++) {
+    val_actions_vect_st *obj_actions_vect_st =
+        reinterpret_cast<val_actions_vect_st *>(df_segment->actions[i]);
+    val_df_flow_action_t val_action;
+    // memset(&val_action, 0, sizeof(val_df_flow_action_t));
+    val_action.action_type =
+        (UncDataflowFlowActionType)df_segment->actions[i]->action_type;
+    pfc_log_debug("%d. %s", putresp_pos, get_string(val_action).c_str());
+    putresp_pos++;
+    err |= sess.addOutput(val_action);
+    if (err != UNC_RC_SUCCESS) {
+      pfc_log_trace("addoutput status %d, failed to sent %d flow_action strt",
+                    err, putresp_pos);
+      return err;
+    }
+
+    switch (val_action.action_type) {
+      case UNC_ACTION_OUTPUT:
+        {
+          DATAFLOW_ACTION_ADDOUTPUT(val_df_flow_action_output_port_t,
+                                    obj_actions_vect_st, sess,
+                                    putresp_pos, err);
+          break;
+        }
+      case UNC_ACTION_SET_ENQUEUE:
+        {
+          DATAFLOW_ACTION_ADDOUTPUT(val_df_flow_action_enqueue_port_t,
+                                    obj_actions_vect_st, sess,
+                                    putresp_pos, err);
+          break;
+        }
+      case UNC_ACTION_SET_DL_SRC:
+        {
+          DATAFLOW_ACTION_ADDOUTPUT(val_df_flow_action_set_dl_addr_t,
+                                    obj_actions_vect_st, sess,
+                                    putresp_pos, err);
+          break;
+        }
+      case UNC_ACTION_SET_DL_DST:
+        {
+          DATAFLOW_ACTION_ADDOUTPUT(val_df_flow_action_set_dl_addr_t,
+                                    obj_actions_vect_st, sess,
+                                    putresp_pos, err);
+          break;
+        }
+      case UNC_ACTION_SET_VLAN_ID:
+        {
+          DATAFLOW_ACTION_ADDOUTPUT(val_df_flow_action_set_vlan_id_t,
+                                    obj_actions_vect_st, sess,
+                                    putresp_pos, err);
+          break;
+        }
+      case UNC_ACTION_SET_VLAN_PCP:
+        {
+          DATAFLOW_ACTION_ADDOUTPUT(val_df_flow_action_set_vlan_pcp_t,
+                                    obj_actions_vect_st, sess,
+                                    putresp_pos, err);
+          break;
+        }
+      case UNC_ACTION_STRIP_VLAN:
+        {
+          putresp_pos++;
+          err |= sess.addOutput();  // Send NULL struct
+          break;
+        }
+      case UNC_ACTION_SET_IPV4_SRC:
+        {
+          DATAFLOW_ACTION_ADDOUTPUT(val_df_flow_action_set_ipv4_t,
+                                    obj_actions_vect_st, sess,
+                                    putresp_pos, err);
+          break;
+        }
+      case UNC_ACTION_SET_IPV4_DST:
+        {
+          DATAFLOW_ACTION_ADDOUTPUT(val_df_flow_action_set_ipv4_t,
+                                    obj_actions_vect_st, sess,
+                                    putresp_pos, err);
+          break;
+        }
+      case UNC_ACTION_SET_IP_TOS:
+        {
+          DATAFLOW_ACTION_ADDOUTPUT(val_df_flow_action_set_ip_tos_t,
+                                    obj_actions_vect_st, sess,
+                                    putresp_pos, err);
+          break;
+        }
+      case UNC_ACTION_SET_TP_SRC:
+        {
+          DATAFLOW_ACTION_ADDOUTPUT(val_df_flow_action_set_tp_port_t,
+                                    obj_actions_vect_st, sess,
+                                    putresp_pos, err);
+          break;
+        }
+      case UNC_ACTION_SET_TP_DST:
+        {
+          DATAFLOW_ACTION_ADDOUTPUT(val_df_flow_action_set_tp_port_t,
+                                    obj_actions_vect_st, sess,
+                                    putresp_pos, err);
+          break;
+        }
+      case UNC_ACTION_SET_IPV6_SRC:
+        {
+          DATAFLOW_ACTION_ADDOUTPUT(val_df_flow_action_set_ipv6_t,
+                                    obj_actions_vect_st, sess,
+                                    putresp_pos, err);
+          break;
+        }
+      case UNC_ACTION_SET_IPV6_DST:
+        {
+          DATAFLOW_ACTION_ADDOUTPUT(val_df_flow_action_set_ipv6_t,
+                                    obj_actions_vect_st, sess,
+                                    putresp_pos, err);
+          break;
+        }
+      default:
+        {
+          pfc_log_debug("Invalid action Type in action map %d",
+                        val_action.action_type);
+          break;
+        }
+    }
+  }
+  if (df_segment->st_num_ == kidx_val_df_data_flow_cmn) {
+    for (uint32_t i = 0; i < df_segment->path_infos.size(); i++) {
+      pfc_log_debug("%d. %s", putresp_pos,
+                    get_string(*df_segment->path_infos[i]).c_str());
+      putresp_pos++;
+      err |= sess.addOutput(*df_segment->path_infos[i]);
+      if (err != UNC_RC_SUCCESS) {
+        pfc_log_trace("addoutput status %d,"
+                      "failed to sent %d path_info struct",
+                      err, putresp_pos);
+        return err;
+      }
+    }
+  } else {
+    // LOGICAL
+    for (uint32_t i = 0; i < df_segment->vtn_path_infos.size(); i++) {
+      pfc_log_debug("%d. %s",
+                    putresp_pos,
+                    get_string(*df_segment->vtn_path_infos[i]).c_str());
+      putresp_pos++;
+      err |= sess.addOutput(*df_segment->vtn_path_infos[i]);
+      if (err != UNC_RC_SUCCESS) {
+        pfc_log_trace
+            ("addoutput status %d, failed to sent %d vtn_path_info struct",
+                      err, putresp_pos);
+        return err;
+      }
+    }
+  }
+
+  pfc_log_debug("Return value %d", err);
+  return err;
+}
+
+/** check_match_condition
+ * * @Description : This function check the matches and output_matches
+ * * @param[in]   : prev_output_matches - output_matches
+ * * @return      : bool
+ **/
+bool DataflowCmn::check_match_condition(map<UncDataflowFlowMatchType,
+                                        void *> prev_output_matches) {
+  bool ret_value = true;
+  map<UncDataflowFlowMatchType, void *>::iterator iter_out_match =
+      prev_output_matches.begin();
+  pfc_log_debug("Size of prev_output_matches:%" PFC_PFMT_SIZE_T,
+                prev_output_matches.size());
+  pfc_log_debug("Size of curr matches:%" PFC_PFMT_SIZE_T,
+                df_segment->matches.size());
+  while (iter_out_match != prev_output_matches.end()) {
+    switch (iter_out_match->first) {
+      case UNC_MATCH_IN_PORT:
+        break;
+      case UNC_MATCH_DL_SRC:
+        break;
+      case UNC_MATCH_DL_DST:
+        {
+          pfc_log_debug("check match for mac src/dst %d",
+                        iter_out_match->first);
+          map<UncDataflowFlowMatchType, void *>::iterator iter_mch =
+              df_segment->matches.find(iter_out_match->first);
+          if (iter_mch !=  df_segment->matches.end()) {
+            val_df_flow_match_dl_addr_t *curr =
+                reinterpret_cast<val_df_flow_match_dl_addr_t *>
+                (iter_mch->second);
+            val_df_flow_match_dl_addr_t *prev =
+                reinterpret_cast<val_df_flow_match_dl_addr_t *>
+                ((*iter_out_match).second);
+            if (prev == NULL) {
+              // (strict or masked) and ANY
+              break;
+            }
+            if (curr->v_mask == UNC_MATCH_MASK_VALID) {
+              if (prev->v_mask == UNC_MATCH_MASK_VALID) {
+                // 9.RANGE - RANGE
+                if (!DataflowUtil::checkMacAddress(curr->dl_addr,
+                                                   curr->dl_addr_mask,
+                                                   prev->dl_addr,
+                                                   prev->dl_addr_mask)) {
+                  pfc_log_debug("check match failed for"
+                                "mac addr range1 range2");
+                  ret_value &= false;
+                }
+              } else {
+                // 3.STRICT - RANGE
+                if (!DataflowUtil::checkMacAddress(curr->dl_addr,
+                                                   curr->dl_addr_mask,
+                                                   prev->dl_addr)) {
+                  pfc_log_debug("check match failed for"
+                                "mac addr strict1 range2");
+                  ret_value &= false;
+                }
+              }
+            } else {
+              if (prev->v_mask == UNC_MATCH_MASK_VALID) {
+                // 7.RANGE - STRICT
+                if (!DataflowUtil::checkMacAddress(prev->dl_addr,
+                                                   prev->dl_addr_mask,
+                                                   curr->dl_addr)) {
+                  pfc_log_debug
+                      ("check match failed for mac addr range1 strict2");
+                  ret_value &= false;
+                }
+              } else {
+                // 1.STRICT - STRICT
+                if (memcmp(curr->dl_addr, prev->dl_addr,
+                           sizeof(prev->dl_addr)) != 0) {
+                  pfc_log_debug
+                      ("check match failed for mac addr strict1 strict2");
+                  ret_value &= false;
+                }
+              }
+            }
+          }  // else {
+          // 2.STRICT - ANY //8.RANGE - ANY // This is OK. Do nothing.
+          // }
+          break;
+        }
+      case UNC_MATCH_DL_TYPE:
+        {
+          map<UncDataflowFlowMatchType, void *>::iterator iter_mch =
+              df_segment->matches.find(iter_out_match->first);
+          if (iter_mch !=  df_segment->matches.end()) {
+            val_df_flow_match_dl_type_t *curr =
+                reinterpret_cast<val_df_flow_match_dl_type_t *>
+                (iter_mch->second);
+            val_df_flow_match_dl_type_t *prev =
+                reinterpret_cast<val_df_flow_match_dl_type_t *>
+                ((*iter_out_match).second);
+            if (prev == NULL) {
+              // (strict or masked) and ANY
+              break;
+            }
+            // 1.STRICT - STRICT
+            if (curr->dl_type != prev->dl_type) {
+              pfc_log_info("check match failed for dl_type");
+              ret_value &= false;
+            }
+          }
+          break;
+        }
+      case UNC_MATCH_VLAN_ID:
+        break;
+      case UNC_MATCH_VLAN_PCP:
+        {
+          map<UncDataflowFlowMatchType, void *>::iterator iter_mch =
+              df_segment->matches.find(iter_out_match->first);
+          if (iter_mch !=  df_segment->matches.end()) {
+            val_df_flow_match_vlan_pcp_t *curr =
+                reinterpret_cast<val_df_flow_match_vlan_pcp_t *>
+                (iter_mch->second);
+            val_df_flow_match_vlan_pcp_t *prev =
+                reinterpret_cast<val_df_flow_match_vlan_pcp_t *>
+                ((*iter_out_match).second);
+            if (prev == NULL) {
+              // (strict or masked) and ANY
+              break;
+            }
+            // 1.STRICT - STRICT
+            if (curr->vlan_pcp != prev->vlan_pcp) {
+              pfc_log_info("check match failed for vlan pcp");
+              ret_value &= false;
+            }
+          }
+          break;
+        }
+      case UNC_MATCH_IP_TOS:
+        {
+          map<UncDataflowFlowMatchType, void *>::iterator iter_mch =
+              df_segment->matches.find(iter_out_match->first);
+          if (iter_mch !=  df_segment->matches.end()) {
+            val_df_flow_match_ip_tos_t *curr =
+                reinterpret_cast<val_df_flow_match_ip_tos_t *>
+                (iter_mch->second);
+            val_df_flow_match_ip_tos_t *prev =
+                reinterpret_cast<val_df_flow_match_ip_tos_t *>
+                ((*iter_out_match).second);
+            if (prev == NULL) {
+              // (strict or masked) and ANY
+              break;
+            }
+            // 1.STRICT - STRICT
+            if (curr->ip_tos != prev->ip_tos) {
+              pfc_log_info("check match failed for ip tos");
+              ret_value &= false;
+            }
+          }
+          break;
+        }
+      case UNC_MATCH_IP_PROTO:
+        {
+          map<UncDataflowFlowMatchType, void *>::iterator iter_mch =
+              df_segment->matches.find(iter_out_match->first);
+          if (iter_mch !=  df_segment->matches.end()) {
+            val_df_flow_match_ip_proto_t *curr =
+                reinterpret_cast<val_df_flow_match_ip_proto_t *>
+                (iter_mch->second);
+            val_df_flow_match_ip_proto_t *prev =
+                reinterpret_cast<val_df_flow_match_ip_proto_t *>
+                ((*iter_out_match).second);
+            if (prev == NULL) {
+              // (strict or masked) and ANY
+              break;
+            }
+            // 1.STRICT - STRICT
+            if (curr->ip_proto != prev->ip_proto) {
+              pfc_log_info("check match failed for ip_proto");
+              ret_value &= false;
+            }
+          }
+          break;
+        }
+      case UNC_MATCH_IPV4_SRC:
+      case UNC_MATCH_IPV4_DST:
+        {
+          pfc_log_debug("check match for ipv4 src/dst %d",
+                        iter_out_match->first);
+          map<UncDataflowFlowMatchType, void *>::iterator iter_mch =
+              df_segment->matches.find(iter_out_match->first);
+          if (iter_mch !=  df_segment->matches.end()) {
+            val_df_flow_match_ipv4_addr_t *curr =
+                reinterpret_cast<val_df_flow_match_ipv4_addr_t *>
+                (iter_mch->second);
+            val_df_flow_match_ipv4_addr_t *prev =
+                reinterpret_cast<val_df_flow_match_ipv4_addr_t *>
+                ((*iter_out_match).second);
+            if (prev == NULL) {
+              // (strict or masked) and ANY
+              break;
+            }
+            if (curr->v_mask == UNC_MATCH_MASK_VALID) {
+              if (prev->v_mask == UNC_MATCH_MASK_VALID) {
+                // 9.RANGE - RANGE
+                if (!DataflowUtil::checkIPv4Address(curr->ipv4_addr,
+                                                    curr->ipv4_addr_mask,
+                                                    prev->ipv4_addr,
+                                                    prev->ipv4_addr_mask)) {
+                  pfc_log_debug
+                      ("check match failed for ipv4 addr range1 range2");
+                  ret_value &= false;
+                }
+              } else {
+                // 3.STRICT - RANGE
+                if (!DataflowUtil::checkIPv4Address(curr->ipv4_addr,
+                                                    curr->ipv4_addr_mask,
+                                                    prev->ipv4_addr)) {
+                  pfc_log_debug
+                      ("check match failed for ipv4 addr strict1 range2");
+                  ret_value &= false;
+                }
+              }
+            } else {
+              if (prev->v_mask == UNC_MATCH_MASK_VALID) {
+                // 7.RANGE - STRICT
+                if (!DataflowUtil::checkIPv4Address(prev->ipv4_addr,
+                                                    prev->ipv4_addr_mask,
+                                                    curr->ipv4_addr)) {
+                  pfc_log_debug
+                      ("check match failed for ipv4 addr range1 strict2");
+                  ret_value &= false;
+                }
+              } else {
+                // 1.STRICT - STRICT
+                if (curr->ipv4_addr.s_addr != prev->ipv4_addr.s_addr) {
+                  pfc_log_debug
+                      ("check match failed for ipv4 addr strict1 strict2");
+                  ret_value &= false;
+                }
+              }
+            }
+          }  // else {
+          // 2.STRICT - ANY  //8.RANGE - ANY  // This is OK. Do nothing.
+          // }
+          break;
+        }
+      case UNC_MATCH_IPV6_SRC:
+      case UNC_MATCH_IPV6_DST:
+        {
+          pfc_log_debug("check match for ipv6 src/dst %d",
+                        iter_out_match->first);
+          map<UncDataflowFlowMatchType, void *>::iterator iter_mch =
+              df_segment->matches.find(iter_out_match->first);
+          if (iter_mch !=  df_segment->matches.end()) {
+            val_df_flow_match_ipv6_addr_t *curr =
+                reinterpret_cast<val_df_flow_match_ipv6_addr_t *>
+                (iter_mch->second);
+            val_df_flow_match_ipv6_addr_t *prev =
+                reinterpret_cast<val_df_flow_match_ipv6_addr_t *>
+                ((*iter_out_match).second);
+            if (prev == NULL) {
+              // (strict or masked) and ANY
+              break;
+            }
+            if (curr->v_mask == UNC_MATCH_MASK_VALID) {
+              if (prev->v_mask == UNC_MATCH_MASK_VALID) {
+                // 9.RANGE - RANGE
+                if (!DataflowUtil::checkIPv6Address(curr->ipv6_addr,
+                                                    curr->ipv6_addr_mask,
+                                                    prev->ipv6_addr,
+                                                    prev->ipv6_addr_mask)) {
+                  pfc_log_debug
+                      ("check match failed for ipv6 addr range1 range2");
+                  ret_value &= false;
+                }
+              } else {
+                // 3.STRICT - RANGE
+                if (!DataflowUtil::checkIPv6Address(curr->ipv6_addr,
+                                                    curr->ipv6_addr_mask,
+                                                    prev->ipv6_addr)) {
+                  pfc_log_debug
+                      ("check match failed for ipv6 addr strict1 range2");
+                  ret_value &= false;
+                }
+              }
+            } else {
+              if (prev->v_mask == UNC_MATCH_MASK_VALID) {
+                // 7.RANGE - STRICT
+                if (!DataflowUtil::checkIPv6Address(prev->ipv6_addr,
+                                                    prev->ipv6_addr_mask,
+                                                    curr->ipv6_addr)) {
+                  pfc_log_debug
+                      ("check match failed for ipv6 addr range1 strict2");
+                  ret_value &= false;
+                }
+              } else {
+                // 1.STRICT - STRICT
+                if (memcmp(curr->ipv6_addr.s6_addr,
+                           prev->ipv6_addr.s6_addr,
+                           sizeof(prev->ipv6_addr.s6_addr)) != 0) {
+                  pfc_log_debug
+                      ("check match failed for ipv6 addr strict1 strict2");
+                  ret_value &= false;
+                }
+              }
+            }
+          }  // else {
+          // 2.STRICT - ANY  //8.RANGE - ANY  // This is OK. Do nothing.
+          // }
+          break;
+        }
+      case UNC_MATCH_TP_SRC:
+      case UNC_MATCH_TP_DST:
+        {
+          pfc_log_debug("check match for tp port src/dst %d",
+                        iter_out_match->first);
+          map<UncDataflowFlowMatchType, void *>::iterator iter_mch =
+              df_segment->matches.find(iter_out_match->first);
+          if (iter_mch !=  df_segment->matches.end()) {
+            val_df_flow_match_tp_port_t *curr =
+                reinterpret_cast<val_df_flow_match_tp_port_t *>
+                (iter_mch->second);
+            val_df_flow_match_tp_port_t *prev =
+                reinterpret_cast<val_df_flow_match_tp_port_t *>
+                ((*iter_out_match).second);
+            if (prev == NULL) {
+              // (strict or masked) and ANY
+              break;
+            }
+            if (curr->v_mask == UNC_MATCH_MASK_VALID) {
+              if (prev->v_mask == UNC_MATCH_MASK_VALID) {
+                // 9.RANGE - RANGE
+                if (!DataflowUtil::checkIPv4Address(curr->tp_port,
+                                                    curr->tp_port_mask,
+                                                    prev->tp_port,
+                                                    prev->tp_port_mask)) {
+                  pfc_log_debug(
+                      "check match failed for tp port range1 range2");
+                  ret_value &= false;
+                }
+              } else {
+                // 3.STRICT - RANGE
+                if (!DataflowUtil::checkIPv4Address(curr->tp_port,
+                                                    curr->tp_port_mask,
+                                                    prev->tp_port)) {
+                  pfc_log_debug(
+                      "check match failed for tp port strict1 range2");
+                  ret_value &= false;
+                }
+              }
+            } else {
+              if (prev->v_mask == UNC_MATCH_MASK_VALID) {
+                // 7.RANGE - STRICT
+                if (!DataflowUtil::checkIPv4Address(prev->tp_port,
+                                                    prev->tp_port_mask,
+                                                    curr->tp_port)) {
+                  pfc_log_debug(
+                      "check match failed for tp port range1 strict2");
+                  ret_value &= false;
+                }
+              } else {
+                // 1.STRICT - STRICT
+                if (curr->tp_port != prev->tp_port) {
+                  pfc_log_debug(
+                      "check match failed for tp port strict1 strict2");
+                  ret_value &= false;
+                }
+              }
+            }
+          }  // else {
+          // 2.STRICT - ANY  //8.RANGE - ANY  // This is OK. Do nothing.
+          // }
+          break;
+        }
+      default:
+        pfc_log_warn("check_match_condition Ignoring %d ",
+                     iter_out_match->first);
+        break;
+    }
+    if (ret_value == false)
+      break;
+    iter_out_match++;
+  }
+  pfc_log_debug("check_match_condition returns %d", ret_value);
+  return ret_value;
+}
+
+/** apply_action
+ * * @Description : This function Apply 'actions' to 'matches'
+ * * and fill 'output_matches'
+ * * @param[in]   : None
+ * * @return      : None
+ **/
+void DataflowCmn::apply_action() {
+  // DEEP COPY matches to output_matches;
+  deep_copy();
+  if (df_segment->actions.size() > 0) {
+    map<UncDataflowFlowMatchType, void *>::iterator match_iter;
+    vector<val_actions_vect_st *>::iterator iter_action =
+        df_segment->actions.begin();
+    for (; iter_action != df_segment->actions.end(); iter_action++) {
+      val_actions_vect_st *obj_action_vect = (*iter_action);
+      pfc_log_debug("apply_action action_type=%d",
+                    obj_action_vect->action_type);
+      switch (obj_action_vect->action_type) {
+        case UNC_ACTION_OUTPUT:
+        case UNC_ACTION_SET_ENQUEUE:
+          break;
+        case UNC_ACTION_SET_DL_SRC:
+          {
+            val_df_flow_action_set_dl_addr_t *act_st =
+                reinterpret_cast<val_df_flow_action_set_dl_addr_t *>
+                (obj_action_vect->action_st_ptr);
+            match_iter = output_matches.find(UNC_MATCH_DL_SRC);
+            if (match_iter != output_matches.end()) {
+              val_df_flow_match_dl_addr_t *out_match_st =
+                  reinterpret_cast<val_df_flow_match_dl_addr_t *>
+                  ((*match_iter).second);
+              if (memcmp((const char*)out_match_st->dl_addr,
+                         (const char*)act_st->dl_addr,
+                         sizeof(act_st->dl_addr)) != 0) {
+                is_vlan_src_mac_changed_ = true;
+              }
+              memcpy(out_match_st->dl_addr, act_st->dl_addr,
+                     sizeof(act_st->dl_addr));
+              out_match_st->v_mask = UNC_MATCH_MASK_INVALID;
+            } else {
+              val_df_flow_match_dl_addr_t *out_match_st =
+                  new val_df_flow_match_dl_addr_t;
+              memset(out_match_st, '\0',
+                     sizeof(val_df_flow_match_dl_addr_t));
+              memcpy(out_match_st->dl_addr, act_st->dl_addr,
+                     sizeof(act_st->dl_addr));
+              out_match_st->v_mask = UNC_MATCH_MASK_INVALID;
+              output_matches[UNC_MATCH_DL_SRC] = out_match_st;
+            }
+            break;
+          }
+        case UNC_ACTION_SET_DL_DST:
+          {
+            val_df_flow_action_set_dl_addr_t *act_st =
+                reinterpret_cast<val_df_flow_action_set_dl_addr_t *>
+                (obj_action_vect->action_st_ptr);
+            match_iter = output_matches.find(UNC_MATCH_DL_DST);
+            if (match_iter != output_matches.end()) {
+              val_df_flow_match_dl_addr_t *out_match_st =
+                  reinterpret_cast<val_df_flow_match_dl_addr_t *>
+                  ((*match_iter).second);
+              memcpy(out_match_st->dl_addr,
+                     act_st->dl_addr,
+                     sizeof(act_st->dl_addr));
+              out_match_st->v_mask = UNC_MATCH_MASK_INVALID;
+            } else {
+              val_df_flow_match_dl_addr_t *out_match_st =
+                  new val_df_flow_match_dl_addr_t;
+              memset(out_match_st, '\0',
+                     sizeof(val_df_flow_match_dl_addr_t));
+              memcpy(out_match_st->dl_addr,
+                     act_st->dl_addr,
+                     sizeof(act_st->dl_addr));
+              out_match_st->v_mask = UNC_MATCH_MASK_INVALID;
+              output_matches[UNC_MATCH_DL_DST] = out_match_st;
+            }
+            break;
+          }
+        case UNC_ACTION_SET_VLAN_ID:
+          {
+            val_df_flow_action_set_vlan_id_t *act_st =
+                reinterpret_cast<val_df_flow_action_set_vlan_id_t *>
+                (obj_action_vect->action_st_ptr);
+            match_iter = output_matches.find(UNC_MATCH_VLAN_ID);
+            if (match_iter != output_matches.end()) {
+              val_df_flow_match_vlan_id_t *out_match_st =
+                  reinterpret_cast<val_df_flow_match_vlan_id_t *>
+                  ((*match_iter).second);
+              if (out_match_st->vlan_id != act_st->vlan_id) {
+                is_vlan_src_mac_changed_ = true;
+              }
+              out_match_st->vlan_id = act_st->vlan_id;
+            } else {
+              val_df_flow_match_vlan_id_t *out_match_st =
+                  new val_df_flow_match_vlan_id_t;
+              out_match_st->vlan_id = act_st->vlan_id;
+              output_matches[UNC_MATCH_VLAN_ID] = out_match_st;
+            }
+            break;
+          }
+        case UNC_ACTION_SET_VLAN_PCP:
+          {
+            val_df_flow_action_set_vlan_pcp_t *act_st =
+                reinterpret_cast<val_df_flow_action_set_vlan_pcp_t *>
+                (obj_action_vect->action_st_ptr);
+            match_iter = output_matches.find(UNC_MATCH_VLAN_PCP);
+            if (match_iter != output_matches.end()) {
+              val_df_flow_match_vlan_pcp_t *out_match_st =
+                  reinterpret_cast<val_df_flow_match_vlan_pcp_t *>
+                  ((*match_iter).second);
+              out_match_st->vlan_pcp = act_st->vlan_pcp;
+            } else {
+              val_df_flow_match_vlan_pcp_t *out_match_st =
+                  new val_df_flow_match_vlan_pcp_t;
+              out_match_st->vlan_pcp = act_st->vlan_pcp;
+              output_matches[UNC_MATCH_VLAN_PCP] = out_match_st;
+            }
+            break;
+          }
+        case UNC_ACTION_STRIP_VLAN:
+          {
+            match_iter = output_matches.find(UNC_MATCH_VLAN_ID);
+            if (match_iter != output_matches.end()) {
+              val_df_flow_match_vlan_id_t *out_match_st =
+                  reinterpret_cast<val_df_flow_match_vlan_id_t *>
+                  ((*match_iter).second);
+              if (out_match_st->vlan_id != 0xFFFF)
+                is_vlan_src_mac_changed_ = true;
+              out_match_st->vlan_id = 0xFFFF;
+            } else {
+              val_df_flow_match_vlan_id_t *out_match_st =
+                  new val_df_flow_match_vlan_id_t;
+              out_match_st->vlan_id = 0xFFFF;
+              output_matches[UNC_MATCH_VLAN_ID] = out_match_st;
+            }
+            break;
+          }
+        case UNC_ACTION_SET_IPV4_SRC:
+          {
+            val_df_flow_action_set_ipv4_t *act_st =
+                reinterpret_cast<val_df_flow_action_set_ipv4_t *>
+                (obj_action_vect->action_st_ptr);
+            match_iter = output_matches.find(UNC_MATCH_IPV4_SRC);
+            if (match_iter != output_matches.end()) {
+              val_df_flow_match_ipv4_addr_t *out_match_st =
+                  reinterpret_cast<val_df_flow_match_ipv4_addr_t *>
+                  ((*match_iter).second);
+              out_match_st->ipv4_addr.s_addr = act_st->ipv4_addr.s_addr;
+              out_match_st->v_mask = UNC_MATCH_MASK_INVALID;
+            } else {
+              val_df_flow_match_ipv4_addr_t *out_match_st =
+                  new val_df_flow_match_ipv4_addr_t;
+              memset(out_match_st, '\0',
+                     sizeof(val_df_flow_match_ipv4_addr_t));
+              out_match_st->ipv4_addr.s_addr =
+                  act_st->ipv4_addr.s_addr;
+              out_match_st->v_mask =
+                  UNC_MATCH_MASK_INVALID;
+              output_matches[UNC_MATCH_IPV4_SRC] =
+                  out_match_st;
+            }
+            break;
+          }
+        case UNC_ACTION_SET_IPV4_DST:
+          {
+            val_df_flow_action_set_ipv4_t *act_st =
+                reinterpret_cast<val_df_flow_action_set_ipv4_t *>
+                (obj_action_vect->action_st_ptr);
+            match_iter = output_matches.find(UNC_MATCH_IPV4_DST);
+            if (match_iter != output_matches.end()) {
+              val_df_flow_match_ipv4_addr_t *out_match_st =
+                  reinterpret_cast<val_df_flow_match_ipv4_addr_t *>
+                  ((*match_iter).second);
+              out_match_st->ipv4_addr.s_addr = act_st->ipv4_addr.s_addr;
+              out_match_st->v_mask = UNC_MATCH_MASK_INVALID;
+            } else {
+              val_df_flow_match_ipv4_addr_t *out_match_st =
+                  new val_df_flow_match_ipv4_addr_t;
+              memset(out_match_st, '\0',
+                     sizeof(val_df_flow_match_ipv4_addr_t));
+              out_match_st->ipv4_addr.s_addr = act_st->ipv4_addr.s_addr;
+              out_match_st->v_mask = UNC_MATCH_MASK_INVALID;
+              output_matches[UNC_MATCH_IPV4_DST] = out_match_st;
+            }
+            break;
+          }
+        case UNC_ACTION_SET_IP_TOS:
+          {
+            val_df_flow_action_set_ip_tos_t *act_st =
+                reinterpret_cast<val_df_flow_action_set_ip_tos_t *>
+                (obj_action_vect->action_st_ptr);
+            match_iter = output_matches.find(UNC_MATCH_IP_TOS);
+            if (match_iter != output_matches.end()) {
+              val_df_flow_match_ip_tos_t *out_match_st =
+                  reinterpret_cast<val_df_flow_match_ip_tos_t *>
+                  ((*match_iter).second);
+              out_match_st->ip_tos = act_st->ip_tos;
+            } else {
+              val_df_flow_match_ip_tos_t *out_match_st =
+                  new val_df_flow_match_ip_tos_t;
+              out_match_st->ip_tos = act_st->ip_tos;
+              output_matches[UNC_MATCH_IP_TOS] = out_match_st;
+            }
+            break;
+          }
+        case UNC_ACTION_SET_TP_SRC:
+          {
+            val_df_flow_action_set_tp_port_t *act_st =
+                reinterpret_cast<val_df_flow_action_set_tp_port_t *>
+                (obj_action_vect->action_st_ptr);
+            match_iter = output_matches.find(UNC_MATCH_TP_SRC);
+            if (match_iter != output_matches.end()) {
+              val_df_flow_match_tp_port_t *out_match_st =
+                  reinterpret_cast<val_df_flow_match_tp_port_t *>
+                  ((*match_iter).second);
+              out_match_st->tp_port = act_st->tp_port;
+              out_match_st->v_mask = UNC_MATCH_MASK_INVALID;
+            } else {
+              val_df_flow_match_tp_port_t *out_match_st =
+                  new val_df_flow_match_tp_port_t;
+              out_match_st->tp_port = act_st->tp_port;
+              out_match_st->v_mask = UNC_MATCH_MASK_INVALID;
+              output_matches[UNC_MATCH_TP_SRC] = out_match_st;
+            }
+            break;
+          }
+        case UNC_ACTION_SET_TP_DST:
+          {
+            val_df_flow_action_set_tp_port_t *act_st =
+                reinterpret_cast<val_df_flow_action_set_tp_port_t *>
+                (obj_action_vect->action_st_ptr);
+            match_iter = output_matches.find(UNC_MATCH_TP_DST);
+            if (match_iter != output_matches.end()) {
+              val_df_flow_match_tp_port_t *out_match_st =
+                  reinterpret_cast<val_df_flow_match_tp_port_t *>
+                  ((*match_iter).second);
+              out_match_st->tp_port = act_st->tp_port;
+              out_match_st->v_mask = UNC_MATCH_MASK_INVALID;
+            } else {
+              val_df_flow_match_tp_port_t *out_match_st =
+                  new val_df_flow_match_tp_port_t;
+              out_match_st->tp_port = act_st->tp_port;
+              out_match_st->v_mask = UNC_MATCH_MASK_INVALID;
+              output_matches[UNC_MATCH_TP_DST] = out_match_st;
+            }
+            break;
+          }
+        case UNC_ACTION_SET_IPV6_SRC:
+          {
+            val_df_flow_action_set_ipv6_t *act_st =
+                reinterpret_cast<val_df_flow_action_set_ipv6_t *>
+                (obj_action_vect->action_st_ptr);
+            match_iter = output_matches.find(UNC_MATCH_IPV6_SRC);
+            if (match_iter != output_matches.end()) {
+              val_df_flow_match_ipv6_addr_t *out_match_st =
+                  reinterpret_cast<val_df_flow_match_ipv6_addr_t *>
+                  ((*match_iter).second);
+              memcpy(out_match_st->ipv6_addr.s6_addr, act_st->ipv6_addr.s6_addr,
+                     sizeof(act_st->ipv6_addr.s6_addr));
+              out_match_st->v_mask = UNC_MATCH_MASK_INVALID;
+            } else {
+              val_df_flow_match_ipv6_addr_t *out_match_st =
+                  new val_df_flow_match_ipv6_addr_t;
+              memset(out_match_st, '\0',
+                     sizeof(val_df_flow_match_ipv6_addr_t));
+              memcpy(out_match_st->ipv6_addr.s6_addr,
+                     act_st->ipv6_addr.s6_addr,
+                     sizeof(act_st->ipv6_addr.s6_addr));
+              out_match_st->v_mask = UNC_MATCH_MASK_INVALID;
+              output_matches[UNC_MATCH_IPV6_SRC] = out_match_st;
+            }
+            break;
+          }
+        case UNC_ACTION_SET_IPV6_DST:
+          {
+            val_df_flow_action_set_ipv6_t *act_st =
+                reinterpret_cast<val_df_flow_action_set_ipv6_t *>
+                (obj_action_vect->action_st_ptr);
+            match_iter = output_matches.find(UNC_MATCH_IPV6_DST);
+            if (match_iter != output_matches.end()) {
+              val_df_flow_match_ipv6_addr_t *out_match_st =
+                  reinterpret_cast<val_df_flow_match_ipv6_addr_t *>
+                  ((*match_iter).second);
+              memcpy(out_match_st->ipv6_addr.s6_addr,
+                     act_st->ipv6_addr.s6_addr,
+                     sizeof(act_st->ipv6_addr.s6_addr));
+              out_match_st->v_mask = UNC_MATCH_MASK_INVALID;
+            } else {
+              val_df_flow_match_ipv6_addr_t *out_match_st =
+                  new val_df_flow_match_ipv6_addr_t;
+              memset(out_match_st, '\0', sizeof(val_df_flow_match_ipv6_addr_t));
+              memcpy(out_match_st->ipv6_addr.s6_addr,
+                     act_st->ipv6_addr.s6_addr,
+                     sizeof(act_st->ipv6_addr.s6_addr));
+              out_match_st->v_mask = UNC_MATCH_MASK_INVALID;
+              output_matches[UNC_MATCH_IPV6_DST] = out_match_st;
+            }
+            break;
+          }
+        default:
+          break;
+      }
+    }
+  }
+  pfc_log_trace("Exiting the for loop in apply_action");
+}
+
+
+UncDataflowReason DataflowCmn::appendFlow(DataflowCmn* nextCtrlrFlow,
+                                          map<string, uint32_t>
+                                          & ctrlr_dom_count_map) {
+  pfc_log_debug("ctrlr_dom_count_map.size=%" PFC_PFMT_SIZE_T " is_head=%d",
+                ctrlr_dom_count_map.size(), is_head);
+  pfc_log_debug("Head is %p", head);
+  nextCtrlrFlow->head = head;
+  addl_data->reason = 0;
+  addl_data->controller_count = 0;
+  string cname = "";
+  if (kidx_val_df_data_flow_cmn == nextCtrlrFlow->df_segment->st_num_) {
+    cname = (const char*)nextCtrlrFlow->df_segment->df_common->controller_name;
+    map<string, uint32_t >::iterator dciter =
+        addl_data->traversed_controllers.find(cname);
+    if (dciter == addl_data->traversed_controllers.end()) {
+      pfc_log_debug("%s is not present in traversed controllers map",
+                    cname.c_str());
+      uint32_t dom_count = 0;
+      map<string, uint32_t>::iterator cdciter =
+          ctrlr_dom_count_map.find(cname);
+      if (cdciter != ctrlr_dom_count_map.end()) {
+        dom_count = cdciter->second;
+      }
+      if (dom_count == 0)
+        dom_count = 2;  // Assume as 2 - double the value.
+      addl_data->max_dom_traversal_count += dom_count;
+      pfc_log_debug("ctr_name %s  dom count %d is added,"
+                    "max_dom_traversal_count :%d"
+                    , cname.c_str(), dom_count,
+                    addl_data->max_dom_traversal_count);
+      addl_data->traversed_controllers.insert(std::pair<string,
+                                              uint32_t>(cname, dom_count));
+    } else {
+      pfc_log_debug("%s is present in traversed controllers map",
+                    cname.c_str());
+    }
+  } else {
+    addl_data->max_dom_traversal_count =
+        ctrlr_dom_count_map["nvtnctrlrdom"] * 2;
+  }
+  if (addl_data->current_traversal_count+1 >
+      addl_data->max_dom_traversal_count) {
+    pfc_log_debug("current_traversal_count %d is exceeding"
+                  "max_dom_traversal_count %d",
+                  addl_data->current_traversal_count+1,
+                  head->addl_data->max_dom_traversal_count);
+    addl_data->reason = UNC_DF_RES_EXCEEDS_HOP_LIMIT;
+    return UNC_DF_RES_EXCEEDS_HOP_LIMIT;
+  } else {
+    nextCtrlrFlow->addl_data->max_dom_traversal_count =
+        addl_data->max_dom_traversal_count;
+    if ((kidx_val_df_data_flow_cmn == nextCtrlrFlow->df_segment->st_num_) ||
+        (kidx_val_df_data_flow_cmn != nextCtrlrFlow->df_segment->st_num_ &&
+         UNC_CT_UNKNOWN !=
+         nextCtrlrFlow->df_segment->vtn_df_common->controller_type)) {
+      nextCtrlrFlow->addl_data->current_traversal_count =
+          addl_data->current_traversal_count+1;
+    }
+    nextCtrlrFlow->addl_data->traversed_controllers =
+        addl_data->traversed_controllers;
+    pfc_log_debug("current_traversal_count %d is"
+                  "not exceeding max_dom_traversal_count %d",
+                  addl_data->current_traversal_count,
+                  addl_data->max_dom_traversal_count);
+  }
+
+  pfc_log_debug("before is_head=%d next.size()=%" PFC_PFMT_SIZE_T
+                " head->total_flow_count=%d", is_head, next.size(),
+                head->total_flow_count);
+  if (next.size() >= 1) {
+    // increament total_flow_count
+    head->total_flow_count++;
+  }
+  pfc_log_debug("after is_head=%d next.size()=%" PFC_PFMT_SIZE_T
+                " head->total_flow_count=%d", is_head, next.size(),
+                head->total_flow_count);
+  next.push_back(nextCtrlrFlow);
+  return UNC_DF_RES_SUCCESS;
+}
+
+/** Destructor
+ * * @Description : Destructor deletes all allocated memories
+ * * @param[in]   : None
+ * * @return      : None
+ **/
+DataflowUtil::~DataflowUtil() {
+  pfc_log_debug("~DataflowUtil ctrlr_dom_count_map.size=%d"
+                "firstCtrlrFlows.size=%d pfc_flows.size=%d",
+                (int)ctrlr_dom_count_map.size(),
+                (int)firstCtrlrFlows.size(),
+                (int)pfc_flows.size());
+  // Clear the allocated memory
+  ctrlr_dom_count_map.clear();
+
+  if (firstCtrlrFlows.size() > 0) {
+    vector<DataflowCmn *>::iterator firstCtrlrFlows_iter;
+    for (firstCtrlrFlows_iter = firstCtrlrFlows.begin();
+         firstCtrlrFlows_iter != firstCtrlrFlows.end();
+         firstCtrlrFlows_iter++) {
+      delete (*firstCtrlrFlows_iter);
+    }
+    firstCtrlrFlows.clear();
+  }
+
+  if (pfc_flows.size() > 0) {
+    map<key_dataflow_t, vector<DataflowDetail*> >::iterator miter =
+        pfc_flows.begin();
+    while (miter != pfc_flows.end()) {
+      vector<DataflowDetail*> flowDetails = miter->second;
+      pfc_log_debug("~DataflowUtil deleting %d df_segments for key %s",
+                    (int)flowDetails.size(),
+                    DataflowCmn::get_string(miter->first).c_str());
+      if (flowDetails.size() > 0) {
+        vector<DataflowDetail*>::iterator it = flowDetails.begin();
+        while (it != flowDetails.end()) {
+          DataflowDetail *df_segm = (DataflowDetail*)*it;
+          pfc_log_debug("~DataflowUtil deleting %d df_segment %p",
+                        df_segm->df_common->controller_type,
+                        df_segm);
+          delete df_segm;
+          it++;
+        }
+        flowDetails.clear();
+      }
+      miter++;
+    }
+    pfc_flows.clear();
+  }
+
+  if (upll_pfc_flows.size() > 0) {
+    map<key_vtn_ctrlr_dataflow,
+        vector<DataflowDetail*> >::iterator miter =
+            upll_pfc_flows.begin();
+    while (miter != upll_pfc_flows.end()) {
+      vector<DataflowDetail*> flowDetails = miter->second;
+      if (flowDetails.size() > 0) {
+        vector<DataflowDetail*>::iterator it = flowDetails.begin();
+        while (it != flowDetails.end()) {
+          DataflowDetail *df_segm = (DataflowDetail*)*it;
+          delete df_segm;
+          it++;
+        }
+        flowDetails.clear();
+      }
+      miter++;
+    }
+    upll_pfc_flows.clear();
+  }
+}
+
+
+uint32_t DataflowUtil::get_total_flow_count() {
+  uint32_t tot_flow_count = 0;
+  vector<DataflowCmn *>::iterator iter_1st_ctrlr_flow =
+      firstCtrlrFlows.begin();
+  while (iter_1st_ctrlr_flow != firstCtrlrFlows.end()) {
+    DataflowCmn *aFlow = (DataflowCmn *)(*iter_1st_ctrlr_flow);
+    tot_flow_count += aFlow->total_flow_count;
+    pfc_log_debug("Tot=%d, curr=%d", tot_flow_count, aFlow->total_flow_count);
+    ++iter_1st_ctrlr_flow;
+  }
+  return tot_flow_count;
+}
+
+uint32_t DataflowUtil::storeFlowDetails(key_dataflow_t fk,
+                                        vector<DataflowDetail*> flowDetails) {
+  pfc_log_debug("Inside storeFlowDetails of DataflowUtil");
+  pfc_flows.insert(std::pair<key_dataflow_t,
+                   vector<DataflowDetail*> > (fk, flowDetails));
+  vector<DataflowDetail*>::iterator it = flowDetails.begin();
+  while (it != flowDetails.end()) {
+    DataflowDetail *df_segm = (DataflowDetail*)*it;
+    DataflowCmn* firstCtrlrFlow = new DataflowCmn(true, df_segm);
+    appendFlow(firstCtrlrFlow);
+    it++;
+  }
+  return 0;
+}
+
+uint32_t DataflowUtil::appendFlow(DataflowCmn* firstCtrlrFlow) {
+  pfc_log_debug("Inside appendFlow of DataflowUtil");
+  if (firstCtrlrFlow != NULL) {
+    firstCtrlrFlow->head = firstCtrlrFlow;
+    firstCtrlrFlow->total_flow_count = 1;
+    firstCtrlrFlow->addl_data->reason = 0;
+    firstCtrlrFlow->addl_data->controller_count = 1;
+    firstCtrlrFlow->addl_data->current_traversal_count = 1;
+    uint32_t dom_count = 0;
+    string cname = "";
+    if (kidx_val_vtn_dataflow_cmn == firstCtrlrFlow->df_segment->st_num_) {
+      cname = (const char*)firstCtrlrFlow->df_segment->vtn_df_common->
+          controller_id;
+    } else {
+      cname = (const char*)firstCtrlrFlow->df_segment->df_common->
+          controller_name;
+    }
+    map<string, uint32_t>::iterator cdciter = ctrlr_dom_count_map.find(cname);
+    if (cdciter != ctrlr_dom_count_map.end()) {
+      dom_count = cdciter->second;
+    }
+    if (dom_count == 0)
+      dom_count = 2;  // Assume as 2 - double the value.
+    firstCtrlrFlow->addl_data->max_dom_traversal_count = dom_count;
+    pfc_log_debug("Initialising max_dom_traversal_count to %d for %s",
+                  dom_count, cname.c_str());
+    firstCtrlrFlow->addl_data->traversed_controllers.insert(std::pair<string,
+                                                            uint32_t >
+                                                            (cname,
+                                                             dom_count));
+    firstCtrlrFlows.push_back(firstCtrlrFlow);
+  }
+  return 0;
+}
+
+int DataflowUtil::sessOutDataflowsFromDriver(ServerSession& sess) {
+  int err = 0;
+  int putresp_pos = 12;
+  uint32_t sz = firstCtrlrFlows.size();
+  pfc_log_info("%d. flow_count=%d", putresp_pos, sz);
+  putresp_pos++;
+  sess.addOutput(sz);
+  vector<DataflowCmn *>::iterator iter_1st_ctrlr_flow =
+      firstCtrlrFlows.begin();
+  while (iter_1st_ctrlr_flow != firstCtrlrFlows.end()) {
+    DataflowCmn *aFlow = reinterpret_cast<DataflowCmn *>(*iter_1st_ctrlr_flow);
+    err |= aFlow->sessOutDataflow(sess, putresp_pos);
+    ++iter_1st_ctrlr_flow;
+    DataflowDetail *df_seg = aFlow->df_segment;
+    delete aFlow;
+    pfc_log_info("sessOutDataflowsFromDriver befor df_segment delete");
+    delete df_seg;
+  }
+  firstCtrlrFlows.clear();
+  return err;
+}
+
+int DataflowUtil::sessOutDataflows(ServerSession& sess) {
+  pfc_log_debug("Inside sessOutDataflows");
+  uint32_t tot_flow_count = DataflowUtil::get_total_flow_count();
+  int putresp_pos = 10;
+  int err = 0;
+  pfc_log_info("%d. flow_count=%d", putresp_pos, tot_flow_count);
+  putresp_pos++;
+  err |= sess.addOutput(tot_flow_count);
+
+  while (firstCtrlrFlows.size() > 0) {
+    pfc_log_debug("sessOutDataflows flows.size:%"
+                  PFC_PFMT_SIZE_T, firstCtrlrFlows.size());
+
+    vector<DataflowCmn *>::iterator iter_1st_ctrlr_flow =
+        firstCtrlrFlows.begin();
+    while (iter_1st_ctrlr_flow != firstCtrlrFlows.end()) {
+      pfc_log_debug("One head flow is being processed");
+      DataflowCmn *headFlow =  reinterpret_cast<DataflowCmn *>
+          (*iter_1st_ctrlr_flow);
+
+      DataflowCmn *aFlow = headFlow;
+      uint32_t ctrlr_cnt = 1;
+      uint32_t reason = headFlow->addl_data->reason;
+      while (aFlow->next.size() != 0) {
+        pfc_log_debug("Inside while before controller_count=%d reason=%d",
+                      ctrlr_cnt, reason);
+        ctrlr_cnt++;
+        aFlow = *(aFlow->next.begin());
+        if (aFlow != NULL && aFlow->addl_data != NULL) {
+          pfc_log_debug("aFlow ir aFlow->addl_data is null");
+          reason = aFlow->addl_data->reason;
+        } else {
+          break;
+        }
+        pfc_log_debug("Inside while after controller_count=%d reason=%d",
+                      ctrlr_cnt, reason);
+      }
+      pfc_log_debug("Final controller_count=%d reason=%d df_type=%d",
+                    ctrlr_cnt, reason, headFlow->df_segment->st_num_);
+      if (kidx_val_vtn_dataflow_cmn == headFlow->df_segment->st_num_) {
+        val_vtn_dataflow_t obj_val_vtn_dataflow;
+        memset(&obj_val_vtn_dataflow, '\0', sizeof(val_vtn_dataflow_t));
+        obj_val_vtn_dataflow.reason = reason;
+        obj_val_vtn_dataflow.ctrlr_domain_count = ctrlr_cnt;
+        memset(obj_val_vtn_dataflow.valid, UNC_VF_VALID,
+               sizeof(obj_val_vtn_dataflow.valid));
+        err |= sess.addOutput(obj_val_vtn_dataflow);
+        if (err != 0) {
+          pfc_log_warn("Adding to session failed with err %d", err);
+          return err;
+        }
+      } else {
+        val_df_data_flow_t obj_val_df_data_flow;
+        // memset(&obj_val_df_data_flow, '\0', sizeof(val_df_data_flow));
+        obj_val_df_data_flow.reason = reason;
+        obj_val_df_data_flow.controller_count = ctrlr_cnt;
+        memset(obj_val_df_data_flow.valid, UNC_VF_VALID,
+               sizeof(obj_val_df_data_flow.valid));
+        pfc_log_debug("%d. %s", putresp_pos,
+                      get_string(obj_val_df_data_flow).c_str());
+        putresp_pos++;
+        err |= sess.addOutput(obj_val_df_data_flow);
+        if (err != 0) {
+          pfc_log_warn("Adding to session failed with err %d", err);
+          return err;
+        }
+      }
+
+      aFlow = headFlow;
+      stack <DataflowCmn *> lastBranchStack;
+
+      err |= aFlow->sessOutDataflow(sess, putresp_pos);
+      if (err != 0) {
+        pfc_log_warn("Adding to session failed with err %d", err);
+        return err;
+      }
+
+      while (aFlow->next.size() != 0) {
+        if (aFlow->next.size() > 1) {
+          while (!lastBranchStack.empty()) {
+            lastBranchStack.pop();
+          };
+          pfc_log_debug("Cleared all stack entries. Size=%" PFC_PFMT_SIZE_T,
+                        lastBranchStack.size());
+        }
+
+        if (kidx_val_vtn_dataflow_cmn == headFlow->df_segment->st_num_) {
+          pfc_log_debug("Adding to stack flowid=%" PFC_PFMT_u64,
+                        aFlow->df_segment->vtn_df_common->flow_id);
+        } else {
+          pfc_log_debug("Adding to stack flowid=%" PFC_PFMT_u64,
+                        aFlow->df_segment->df_common->flow_id);
+        }
+        lastBranchStack.push(aFlow);
+        aFlow = *(aFlow->next.begin());
+        err |= aFlow->sessOutDataflow(sess, putresp_pos);
+        if (err != 0) {
+          pfc_log_warn("Adding to session failed with err %d", err);
+          return err;
+        }
+      }
+      pfc_log_debug("Added one complete path to session. Stack.size=%"
+                    PFC_PFMT_SIZE_T, lastBranchStack.size());
+      DataflowCmn *iter_fl = headFlow;
+      while (!lastBranchStack.empty()) {
+        pfc_log_debug("stack Size=%" PFC_PFMT_SIZE_T, lastBranchStack.size());
+        iter_fl = lastBranchStack.top();
+        lastBranchStack.pop();
+        pfc_log_debug("after pop stack Size=%" PFC_PFMT_SIZE_T " iter_fl=%p",
+                      lastBranchStack.size(), iter_fl);
+        vector<DataflowCmn *>::iterator it = iter_fl->next.begin();
+        if (it != iter_fl->next.end()) {
+          pfc_log_debug("Found tree branch node to be deleted");
+          delete *it;
+          iter_fl->next.erase(it);  // remove the first element from the vector
+        }
+      }
+      pfc_log_debug("One branch deleted iter_fl=%p headFlow=%p",
+                    iter_fl, headFlow);
+
+      if (iter_fl == headFlow) {
+        if (iter_fl->next.size() == 0) {
+          pfc_log_debug("Reached head node, so delete it");
+          delete  reinterpret_cast<DataflowCmn *>(*iter_1st_ctrlr_flow);
+          firstCtrlrFlows.erase(iter_1st_ctrlr_flow);
+        }
+        break;
+      } else {
+        break;
+      }
+    }
+  }
+  return err;
+}
+
+bool DataflowUtil::checkMacAddress(uint8_t macaddr[6], uint8_t macaddr_mask[6],
+                                   uint8_t checkmacaddr[6]) {
+  bool retval = false;
+  for (int i = 0; i < 6; i++) {
+    retval = checkByte(macaddr[i], macaddr_mask[i], checkmacaddr[i]);
+    if (retval == false)
+      break;
+  }
+  return retval;
+}
+
+bool DataflowUtil::checkMacAddress(uint8_t macaddr[6], uint8_t macaddr_mask[6],
+                                   uint8_t checkmacaddr[6],
+                                   uint8_t checkmacaddr_mask[6]) {
+  bool retval = false;
+  for (int i = 0; i < 6; i++) {
+    retval = checkByte(macaddr[i], macaddr_mask[i], checkmacaddr[i],
+                       checkmacaddr_mask[i]);
+    if (retval == false)
+      break;
+  }
+  return retval;
+}
+
+bool DataflowUtil::checkIPv4Address(in_addr ipaddr, in_addr ip_mask,
+                                    in_addr checkipaddr) {
+  return checkIPv4Address(ipaddr.s_addr, ip_mask.s_addr, checkipaddr.s_addr);
+}
+
+bool DataflowUtil::checkByte(uint8_t ipaddr, uint8_t ip_mask,
+                             uint8_t checkipaddr) {
+  // stringstream ss;
+  // ss << "1FRIP-" << getipstring(ipaddr, 2) << " " <<
+  // getipstring(ipaddr, 16) <<endl;
+  // ss << "1MASK:" << getipstring(ip_mask, 2) << " " <<
+  // getipstring(ip_mask, 16) <<endl;
+  // ss << "1TOIP:" << getipstring(checkipaddr, 2) << " " <<
+  // getipstring(checkipaddr, 16) <<endl;
+  uint8_t anded1 = ipaddr & ip_mask;
+  // ss << "1AND :" << getipstring(anded1, 2) << " " <<
+  // getipstring(anded1, 16) <<endl;
+  uint8_t anded2 = checkipaddr & ip_mask;
+  // ss << "2AND :" << getipstring(anded2, 2) << " " <<
+  // getipstring(anded2, 16) <<endl;
+  // pfc_log_debug("\n%s", ss.str().c_str());
+  if (anded1 == anded2) return true;
+  return false;
+}
+bool DataflowUtil::checkByte(uint8_t ipaddr, uint8_t ip_mask,
+                             uint8_t checkipaddr, uint8_t chk_ip_mask) {
+  // stringstream ss;
+  // ss << "1MASK:" << getipstring(ip_mask, 2) << " " <<
+  // getipstring(ip_mask, 16) <<endl;
+  // ss << "2MASK:" << getipstring(chk_ip_mask, 2) << " " <<
+  // getipstring(chk_ip_mask, 16) <<endl;
+  uint8_t and_mask = ip_mask & chk_ip_mask;
+  // ss << "&MASK:" << getipstring(and_mask, 2) << " " <<
+  // getipstring(and_mask, 16) <<endl;
+  // pfc_log_debug("\n%s", ss.str().c_str());
+  return checkByte(ipaddr, and_mask, checkipaddr);
+}
+
+bool DataflowUtil::checkIPv4Address(uint32_t ipaddr, uint32_t ip_mask,
+                                    uint32_t checkipaddr) {
+  // stringstream ss;
+  // ss << "1FRIP-" << getipstring(ipaddr, 2) << " " <<
+  // getipstring(ipaddr, 16) <<endl;
+  // ss << "1MASK:" << getipstring(ip_mask, 2) << " " <<
+  // getipstring(ip_mask, 16) <<endl;
+  // ss << "2TOIP:" << getipstring(checkipaddr, 2) << " " <<
+  // getipstring(checkipaddr, 16) <<endl;
+  uint32_t anded1 = ipaddr & ip_mask;
+  // ss << "1AND :" << getipstring(anded1, 2) << " " <<
+  // getipstring(anded1, 16) <<endl;
+  uint32_t anded2 = checkipaddr & ip_mask;
+  // ss << "2AND :" << getipstring(anded2, 2) << " " <<
+  // getipstring(anded2, 16) <<endl;
+  // pfc_log_debug("\n%s", ss.str().c_str());
+  if (anded1 == anded2) return true;
+  return false;
+}
+
+
+
+bool DataflowUtil::checkIPv6Address(in6_addr ipv6addr, in6_addr ipv6_mask,
+                                    in6_addr checkipv6addr) {
+  bool ret = false;
+  for (int index = 0; index < 4; index ++) {
+    uint32_t ipv4_addr = ipv6addr.s6_addr32[index];
+    uint32_t ipv4_mask = ipv6_mask.s6_addr32[index];
+    uint32_t checkipv4_addr = checkipv6addr.s6_addr32[index];
+    ret = checkIPv4Address(ipv4_addr, ipv4_mask, checkipv4_addr);
+    if (ret == false)
+      break;
+  }
+  return ret;
+}
+
+
+bool DataflowUtil::checkIPv6Address(in6_addr ipv6addr, in6_addr ipv6_mask,
+                                    in6_addr checkipv6addr,
+                                    in6_addr chk_ipv6_mask) {
+  bool ret = false;
+  for (int index = 0; index < 4; index ++) {
+    in_addr ipv4_addr, ipv4_mask, checkipv4_addr, checkipv4_mask;
+    ipv4_addr.s_addr =  ipv6addr.s6_addr32[index];
+    ipv4_mask.s_addr = ipv6_mask.s6_addr32[index];
+    checkipv4_addr.s_addr = checkipv6addr.s6_addr32[index];
+    checkipv4_mask.s_addr = chk_ipv6_mask.s6_addr32[index];
+    ret = checkIPv4Address(ipv4_addr, ipv4_mask, checkipv4_addr,
+                           checkipv4_mask);
+    if (ret == false)
+      break;
+  }
+  return ret;
+}
+
+
+
+bool DataflowUtil::checkIPv4Address(in_addr ipaddr, in_addr ip_mask,
+                                    in_addr checkipaddr, in_addr chk_ip_mask) {
+  return checkIPv4Address(ipaddr.s_addr, ip_mask.s_addr, checkipaddr.s_addr,
+                          chk_ip_mask.s_addr);
+}
+
+bool DataflowUtil::checkIPv4Address(uint32_t ipaddr, uint32_t ip_mask,
+                                    uint32_t checkipaddr,
+                                    uint32_t chk_ip_mask) {
+  // stringstream ss;
+  // ss << "1MASK:" << getipstring(ip_mask, 2) << " " <<
+  // getipstring(ip_mask, 16)
+  //                            <<endl;
+  // ss << "2MASK:" << getipstring(chk_ip_mask, 2) << " "
+  //                            << getipstring(chk_ip_mask, 16) <<endl;
+  uint32_t and_mask = ip_mask & chk_ip_mask;
+  // ss << "&MASK:" << getipstring(and_mask, 2) << " " <<
+  // getipstring(and_mask, 16)
+  //                            <<endl;
+  // pfc_log_info("\n%s", ss.str().c_str());
+  return checkIPv4Address(ipaddr, and_mask, checkipaddr);
+}
+
+string DataflowUtil::getipstring(in_addr ipnaddr, int radix) {
+  uint32_t ipaddr = ipnaddr.s_addr;
+  return getipstring(ipaddr, radix);
+}
+
+string DataflowUtil::getipstring(uint32_t ipaddr, int radix) {
+  if (radix == 2) {
+    bitset<32> A = ipaddr;
+    stringstream ss;
+    for (int i = 31; i >= 0; i--) {
+      if ((i+1)%8 == 0) ss << ".";
+      ss << A[i];
+    };
+    return ss.str();
+  } else if (radix == 8) {
+    char b_ipaddr[16];
+    memset(&b_ipaddr, '\0', 16);
+    snprintf(b_ipaddr, sizeof(b_ipaddr), "%03d.%03d.%03d.%03d",
+             ipaddr>>24&0xFF, ipaddr>>16&0xFF, ipaddr>>8&0xFF, ipaddr&0xFF);
+    return b_ipaddr;
+  } else if (radix == 16) {
+    char b_ipaddr[12];
+    memset(&b_ipaddr, '\0', 12);
+    snprintf(b_ipaddr, sizeof(b_ipaddr), "%02x.%02x.%02x.%02x",
+             ipaddr>>24&0xFF, ipaddr>>16&0xFF, ipaddr>>8&0xFF, ipaddr&0xFF);
+    return b_ipaddr;
+  } else if (radix == 32) {
+    char b_ipaddr[12];
+    memset(&b_ipaddr, '\0', 12);
+    snprintf(b_ipaddr, sizeof(b_ipaddr), "%d", ipaddr);
+    return b_ipaddr;
+  }
+  return "";
+}
+
+string DataflowUtil::getbytestring(uint8_t ipaddr, int radix) {
+  if (radix == 2) {
+    bitset<8> A = ipaddr;
+    stringstream ss;
+    for (int i = 7; i >= 0; i--) {
+      if ((i+1)%8 == 0) ss << ".";
+      ss << A[i];
+    };
+    return ss.str();
+  } else if (radix == 8) {
+    char b_ipaddr[4];
+    memset(&b_ipaddr, '\0', 4);
+    snprintf(b_ipaddr, sizeof(b_ipaddr), "%03d",
+             ipaddr&0xFF);
+    return b_ipaddr;
+  } else if (radix == 16) {
+    char b_ipaddr[3];
+    memset(&b_ipaddr, '\0', 3);
+    snprintf(b_ipaddr, sizeof(b_ipaddr), "%02x",
+             ipaddr&0xFF);
+    return b_ipaddr;
+  }
+  return "";
+}
+
+/** get_string
+ * @Description : This function returns the values from
+ *                the key structure
+ * @param[in]   : k - structure variable of type key_dataflow
+ * @return      : attributes in key structure of key_dataflow_t are returned
+ * returned
+ **/
+string DataflowCmn::get_string(const key_dataflow_t &k) {
+  char macaddr[18];
+  memset(&macaddr, '\0', 18);
+  snprintf(macaddr, sizeof(macaddr), "%02x%02x.%02x%02x.%02x%02x",
+           k.src_mac_address[0], k.src_mac_address[1], k.src_mac_address[2],
+           k.src_mac_address[3], k.src_mac_address[4], k.src_mac_address[5]);
+
+  stringstream ss;
+  ss << "KT_DATAFLOW:[KEY: "
+      << "controller_name:" << k.controller_name
+      << ", switch_id:" << k.switch_id
+      << ", port_id:" << k.port_id
+      << ", vlan_id:" << uint16tostr(k.vlan_id)
+      << ", src_mac_address:" << macaddr
+      << "]";
+  return ss.str();
+}
+/**
+ * @Description : This function returns the values from
+ *                the key structure
+ * @param[in]   : k - structure variable of type key_vtn_dataflow
+ * @return      : attributes in key structure of key_vtn_dataflow_t are returned
+ * returned
+ **/
+string DataflowCmn::get_string(const key_vtn_dataflow_t &k) {
+  char macaddr[18];
+  memset(&macaddr, '\0', 18);
+  snprintf(macaddr, sizeof(macaddr), "%02x%02x.%02x%02x.%02x%02x",
+           k.src_mac_address[0], k.src_mac_address[1], k.src_mac_address[2],
+           k.src_mac_address[3], k.src_mac_address[4], k.src_mac_address[5]);
+
+  stringstream ss;
+  ss << "KT_VTN_DATAFLOW:[KEY: "
+      << "vtn_name:" << k.vtn_key.vtn_name
+      << ", vnode_id:" << k.vnode_id
+      << ", vlanid:" << uint16tostr(k.vlanid)
+      << ", src_mac_address:" << macaddr
+      << "]";
+  return ss.str();
+}
+
+
+/** get_string
+ * @Description : This function returns controller name and flow_id from
+ *                the key structure
+ * @param[in]   : k - structure variable of type key_ctr_dataflow
+ * @return      : attributes in key structure of key_ctr_dataflow_t are returned
+ * returned
+ **/
+string DataflowCmn::get_string(const key_ctr_dataflow_t &k) {
+  stringstream ss;
+  ss << "KT_CTR_DATAFLOW:[KEY: "
+      << "controller_name:" << k.ctr_key.controller_name
+      << ", flow_id:" << uint64tostr(k.flow_id)
+      << "]";
+  return ss.str();
+}
+
+/**
+ * @Description : This function returns the values from the value structure
+ * @param[in]   : val_obj - structure variable of type val_df_data_flow_cmn_t
+ * @return      : attributes in value structure of val_df_data_flow_cmn_t are
+ * returned
+ **/
+string DataflowCmn::get_string(const val_df_data_flow_cmn_t &val_obj) {
+  stringstream ss;
+  stringstream valid;
+  for (unsigned int i = 0; i < 18 ; ++i) {
+    valid << uint8tostr(val_obj.valid[i]);
+  }
+  ss << "[VAL_FLOW_CMN:"
+      << " controller_name: " << val_obj.controller_name
+      << ", controller_type: " << uint8tostr(val_obj.controller_type)
+      << "\n"
+      << " flow_id: " << uint64tostr(val_obj.flow_id)
+      << ", status: " << val_obj.status
+      << ", flow_type: " << val_obj.flow_type
+      << ", policy_index: " << val_obj.policy_index
+      << " vtn_id: " << val_obj.vtn_id
+      << "\n"
+      << " ingress_switch_id: " << val_obj.ingress_switch_id
+      << ", in_port: " << val_obj.in_port
+      << ", in_station_id: " << uint64tostr(val_obj.in_station_id)
+      << ", in_domain: " << val_obj.in_domain
+      << "\n"
+      << " egress_switch_id: " << val_obj.egress_switch_id
+      << ", out_port: " << val_obj.out_port
+      << ", out_station_id: " << uint64tostr(val_obj.out_station_id)
+      << ", out_domain: " << val_obj.out_domain
+      << "\n"
+      << " path_info_count: " << val_obj.path_info_count
+      << ", match_count: " << val_obj.match_count
+      << ", action_count: " << val_obj.action_count
+      << "\n"
+      << " valid: " << valid.str()
+      << " ]"
+      << endl;
+  return ss.str();
+}
+
+/**
+ * @Description : This function returns the values from the value structure
+ * @param[in]   : val_obj - structure variable of type val_vtn_dataflow_cmn_t
+ * @return      : attributes in value structure of val_vtn_dataflow_cmn_t are
+ * returned
+ **/
+string DataflowCmn::get_string(const val_vtn_dataflow_cmn_t &val_obj) {
+  stringstream ss;
+  stringstream valid;
+  for (unsigned int i = 0; i < 21 ; ++i) {
+    valid << uint8tostr(val_obj.valid[i]);
+  }
+  ss << "[VAL_FLOW_CMN:"
+      << " valid: " << valid.str()
+      << " ]"
+      << "\n"
+      << " controller_name: " << val_obj.controller_id
+      << "\n"
+      << " controller_type: " << uint8tostr(val_obj.controller_type)
+      << "\n"
+      << " flow_id: " << uint64tostr(val_obj.flow_id)
+      << "\n"
+      << " created_time: " << uint64tostr(val_obj.created_time)
+      << "\n"
+      << " idle_timeout: " << val_obj.idle_timeout
+      << "\n"
+      << " hard_timeout:" << val_obj.hard_timeout
+      << "\n"
+      << " ingress_vnode: " << val_obj.ingress_vnode
+      << "\n"
+      << " ingress_vinterface: " << val_obj.ingress_vinterface
+      << "\n"
+      << " ingress_switch_id: " << val_obj.ingress_switch_id
+      << "\n"
+      << " ingress_port_id: " << val_obj.ingress_port_id
+      << "\n"
+      << " ingress_logical_port_id: " << val_obj.ingress_logical_port_id
+      << "\n"
+      << " ingress_domain: " << val_obj.ingress_domain
+      << "\n"
+      << " egress_vnode: " << val_obj.egress_vnode
+      << "\n"
+      << " egress_vinterface: " << val_obj.egress_vinterface
+      << "\n"
+      << " egress_switch_id: " << val_obj.egress_switch_id
+      << "\n"
+      << " egress_port_id: " << val_obj.egress_port_id
+      << "\n"
+      << " egress_logical_port_id: " << val_obj.egress_logical_port_id
+      << "\n"
+      << " egress_domain: " << val_obj.egress_domain
+      << "\n"
+      << " match_count: " << val_obj.match_count
+      << "\n"
+      << " action_count: " << val_obj.action_count
+      << "\n"
+      << " path_info_count: " << val_obj.path_info_count
+      << "\n"
+      << endl;
+  return ss.str();
+}
+
+
+
+/**
+ * @Description : This function returns the values from the value structure
+ * @param[in]   : val_obj - structure variable of type val_df_flow_match_t
+ * @return      : attributes in value structure of val_df_flow_match_t are
+ * returned
+ **/
+string DataflowCmn::get_string(const val_df_flow_match_t &val_obj) {
+  stringstream ss;
+  ss << "[VAL_FLOW_MATCH: "
+      << "match_type: " << val_obj.match_type
+      << " ]"
+      << endl;
+  return ss.str();
+}
+
+/**
+ * @Description : This function returns the values from the value structure
+ * @param[in]   : val_obj - structure variable of type val_df_flow_match_in_port_t
+ * @return      : attributes in value structure of val_df_flow_match_in_port_t are
+ * returned
+ **/
+string DataflowCmn::get_string(const val_df_flow_match_in_port_t &val_obj) {
+  stringstream ss;
+  ss << "[VAL_FLOW_MATCH_IN_PORT: "
+      << "in_port: " << val_obj.in_port
+      << " ]"
+      << endl;
+  return ss.str();
+}
+
+/** get_string
+ * @Description : This function returns the values from the value structure
+ * @param[in]   : val_obj - structure variable of type val_df_flow_match_dl_addr_t
+ * @return      : attributes in value structure of val_df_flow_match_dl_addr_t are
+ * returned
+ **/
+string DataflowCmn::get_string(const val_df_flow_match_dl_addr_t &val_obj) {
+  stringstream ss;
+  char macaddr[18];
+  memset(&macaddr, '\0', 18);
+  snprintf(macaddr, sizeof(macaddr), "%02x%02x.%02x%02x.%02x%02x",
+           val_obj.dl_addr[0], val_obj.dl_addr[1], val_obj.dl_addr[2],
+           val_obj.dl_addr[3], val_obj.dl_addr[4], val_obj.dl_addr[5]);
+  char macaddr_mask[18];
+  memset(&macaddr_mask, '\0', 18);
+  snprintf(macaddr_mask, sizeof(macaddr_mask), "%02x%02x.%02x%02x.%02x%02x",
+           val_obj.dl_addr_mask[0], val_obj.dl_addr_mask[1],
+           val_obj.dl_addr_mask[2],
+           val_obj.dl_addr_mask[3], val_obj.dl_addr_mask[4],
+           val_obj.dl_addr_mask[5]);
+
+  ss << "[VAL_FLOW_MATCH_DL_ADDR: "
+      <<"dl_addr: " << macaddr
+      <<", v_mask: " << uint8tostr(val_obj.v_mask)
+      <<", dl_addr_mask: " << macaddr_mask
+      << " ]"
+      << endl;
+  return ss.str();
+}
+
+/** get_string
+ * @Description : This function returns the values from the value structure
+ * @param[in]   : val_obj - structure variable of type val_df_flow_match_dl_type_t
+ * @return      : attributes in value structure of val_df_flow_match_dl_type_t are
+ * returned
+ **/
+string DataflowCmn::get_string(const val_df_flow_match_dl_type_t &val_obj) {
+  stringstream ss;
+  ss << "[VAL_FLOW_MATCH_DL_TYPE: "
+      << "dl_type: " << uint8tostr(val_obj.dl_type)
+      << " ]"
+      << endl;
+  return ss.str();
+}
+
+/** get_string
+ * @Description : This function returns the values from the value structure
+ * @param[in]   : val_obj - structure variable of type val_df_flow_match_vlan_id_t
+ * @return      : attributes in value structure of val_df_flow_match_vlan_id_t are
+ * returned
+ **/
+string DataflowCmn::get_string(const val_df_flow_match_vlan_id_t &val_obj) {
+  stringstream ss;
+  ss << "[VAL_FLOW_MATCH_VLAN_ID: "
+      << "_vlan_id: " << uint16tostr(val_obj.vlan_id)
+      << " ]"
+      << endl;
+  return ss.str();
+}
+
+/** get_string
+ * @Description : This function returns the values from the value structure
+ * @param[in]   : val_obj - structure variable of type val_df_flow_match_vlan_pcp_t
+ * @return      : attributes in value structure of val_df_flow_match_vlan_pcp_t are
+ * returned
+ **/
+string DataflowCmn::get_string(const val_df_flow_match_vlan_pcp_t &val_obj) {
+  stringstream ss;
+  ss << "[VAL_FLOW_MATCH_VLAN_PCP: "
+      << "vlan_pcp: " << uint8tostr(val_obj.vlan_pcp)
+      << " ]"
+      << endl;
+  return ss.str();
+}
+
+/** get_string
+ * @Description : This function returns the values from the value structure
+ * @param[in]   : val_obj - structure variable of type val_df_flow_match_ip_tos_t
+ * @return      : attributes in value structure of val_df_flow_match_ip_tos_t are
+ * returned
+ **/
+string DataflowCmn::get_string(const val_df_flow_match_ip_tos_t &val_obj) {
+  stringstream ss;
+  ss << "[VAL_FLOW_MATCH_IP_TOS: "
+      << "ip_tos: " << uint8tostr(val_obj.ip_tos)
+      << " ]"
+      << endl;
+  return ss.str();
+}
+
+/** get_string
+ * @Description : This function returns the values from the value structure
+ * @param[in]   : val_obj - structure variable of type val_df_flow_match_ip_proto_t
+ * @return      : attributes in value structure of val_df_flow_match_ip_proto_t are
+ * returned
+ **/
+string DataflowCmn::get_string(const val_df_flow_match_ip_proto_t &val_obj) {
+  stringstream ss;
+  ss << "[VAL_FLOW_MATCH_ip_proto: "
+      << "ip_proto: " << uint8tostr(val_obj.ip_proto)
+      << " ]"
+      << endl;
+  return ss.str();
+}
+
+/** get_string
+ * @Description : This function returns the values from the value structure
+ * @param[in]   : val_obj - structure variable of type val_df_flow_match_ipv4_addr_t
+ * @return      : attributes in value structure of val_df_flow_match_ipv4_addr_t are
+ * returned
+ **/
+string DataflowCmn::get_string(const val_df_flow_match_ipv4_addr_t &val_obj) {
+  stringstream ss;
+  ss << "[VAL_FLOW_MATCH_ipv4_addr: "
+      << "ipv4_addr: " << val_obj.ipv4_addr.s_addr
+      << ", v_mask: " << uint8tostr(val_obj.v_mask)
+      << ", ipv4_addr_mask: " << val_obj.ipv4_addr_mask.s_addr
+      << " ]"
+      << endl;
+  return ss.str();
+}
+
+/** get_string
+ * @Description : This function returns the values from the value structure
+ * @param[in]   : val_obj - structure variable of type val_df_flow_match_tp_port_t
+ * @return      : attributes in value structure of val_df_flow_match_tp_port_t are
+ * returned
+ **/
+string DataflowCmn::get_string(const val_df_flow_match_tp_port_t &val_obj) {
+  stringstream ss;
+  ss << "[VAL_FLOW_MATCH_tp_port: "
+      << "tp_port: " << uint16tostr(val_obj.tp_port)
+      << ", v_mask: " << uint8tostr(val_obj.v_mask)
+      << ", tp_port_mask: " << uint16tostr(val_obj.tp_port_mask)
+      << " ]"
+      << endl;
+  return ss.str();
+}
+
+/** get_string
+ * @Description : This function returns the values from the value structure
+ * @param[in]   : val_obj - structure variable of type val_df_flow_match_ipv6_addr_t
+ * @return      : attributes in value structure of val_df_flow_match_ipv6_addr_t are
+ * returned
+ **/
+string DataflowCmn::get_string(const val_df_flow_match_ipv6_addr_t &val_obj) {
+  stringstream ss;
+  char ipv6_addr[INET6_ADDRSTRLEN];
+  inet_ntop(AF_INET6, &val_obj.ipv6_addr.s6_addr, ipv6_addr, INET6_ADDRSTRLEN);
+  char ipv6_addr_mask[INET6_ADDRSTRLEN];
+  inet_ntop(AF_INET6, &val_obj.ipv6_addr_mask.s6_addr, ipv6_addr_mask,
+            INET6_ADDRSTRLEN);
+  ss << "[VAL_FLOW_MATCH_ipv6_addr: "
+      << "ipv6_addr: " << ipv6_addr
+      << ", v_mask: " << uint8tostr(val_obj.v_mask)
+      << ", ipv6_addr_mask: " << ipv6_addr_mask
+      << " ]"
+      << endl;
+  return ss.str();
+}
+
+/** get_string
+ * @Description : This function returns the values from the value structure
+ * @param[in]   : val_obj - structure variable of type val_df_flow_action_t
+ * @return      : attributes in value structure of val_df_flow_action_t are
+ * returned
+ **/
+string DataflowCmn::get_string(const val_df_flow_action_t &val_obj) {
+  stringstream ss;
+  ss << "[VAL_FLOW_ACTION_SET: "
+      << "action_type: " << val_obj.action_type
+      << " ]"
+      << endl;
+  return ss.str();
+}
+
+/** get_string
+ * @Description : This function returns the values from the value structure
+ * @param[in]   : val_obj - structure variable of type val_df_flow_action_output_port_t
+ * @return      : attributes in value structure of val_df_flow_action_output_port_t are
+ * returned
+ **/
+string DataflowCmn::get_string
+(const val_df_flow_action_output_port_t &val_obj) {
+  stringstream ss;
+  ss << "[VAL_FLOW_ACTION_SET_output_port: "
+      << "output_port: " << val_obj.output_port
+      << " ]"
+      << endl;
+  return ss.str();
+}
+
+/** get_string
+ * @Description : This function returns the values from the value structure
+ * @param[in]   : val_obj - structure variable of type val_df_flow_action_enqueue_port_t
+ * @return      : attributes in value structure of val_df_flow_action_enqueue_port_t are
+ * returned
+ **/
+string DataflowCmn::get_string
+(const val_df_flow_action_enqueue_port_t &val_obj) {
+  stringstream ss;
+  ss << "[VAL_FLOW_ACTION_SET_enqueue_port: "
+      << "output_port: " << val_obj.output_port
+      << ", enqueue_id: " << uint16tostr(val_obj.enqueue_id)
+      << " ]"
+      << endl;
+  return ss.str();
+}
+
+/** get_string
+ * @Description : This function returns the values from the value structure
+ * @param[in]   : val_obj - structure variable of type val_df_flow_action_set_dl_addr_t
+ * @return      : attributes in value structure of val_df_flow_action_set_dl_addr_t are
+ * returned
+ **/
+string DataflowCmn::get_string
+(const val_df_flow_action_set_dl_addr_t &val_obj) {
+  char macaddr[18];
+  memset(&macaddr, '\0', 18);
+  snprintf(macaddr, sizeof(macaddr), "%02x%02x.%02x%02x.%02x%02x",
+           val_obj.dl_addr[0], val_obj.dl_addr[1], val_obj.dl_addr[2],
+           val_obj.dl_addr[3], val_obj.dl_addr[4], val_obj.dl_addr[5]);
+
+  stringstream ss;
+  ss << "[VAL_FLOW_ACTION_SET_set_dl_addr: "
+      << "dl_addr: " << macaddr
+      << " ]"
+      << endl;
+  return ss.str();
+}
+
+/** get_string
+ * @Description : This function returns the values from the value structure
+ * @param[in]   : val_obj - structure variable of type val_df_flow_action_set_vlan_id_t
+ * @return      : attributes in value structure of val_df_flow_action_set_vlan_id_t are
+ * returned
+ **/
+string DataflowCmn::get_string
+(const val_df_flow_action_set_vlan_id_t &val_obj) {
+  stringstream ss;
+  ss << "[VAL_FLOW_ACTION_SET_vlan_id: "
+      << "vlan_id: " << uint16tostr(val_obj.vlan_id)
+      << " ]"
+      << endl;
+  return ss.str();
+}
+
+/** get_string
+ * @Description : This function returns the values from the value structure
+ * @param[in]   : val_obj - structure variable of type val_df_flow_action_set_vlan_pcp_t
+ * @return      : attributes in value structure of val_df_flow_action_set_vlan_pcp_t are
+ * returned
+ **/
+string DataflowCmn::get_string
+(const val_df_flow_action_set_vlan_pcp_t &val_obj) {
+  stringstream ss;
+  ss << "[VAL_FLOW_ACTION_SET_vlan_pcp: "
+      << "vlan_pcp: " << uint8tostr(val_obj.vlan_pcp)
+      << " ]"
+      << endl;
+  return ss.str();
+}
+
+/** get_string
+ * @Description : This function returns the values from the value structure
+ * @param[in]   : val_obj - structure variable of type val_df_flow_action_set_ipv4_t
+ * @return      : attributes in value structure of val_df_flow_action_set_ipv4_t are
+ * returned
+ **/
+string DataflowCmn::get_string(const val_df_flow_action_set_ipv4_t &val_obj) {
+  stringstream ss;
+  ss << "[VAL_FLOW_ACTION_SET_ipv4: "
+      << "ipv4_addr: " << val_obj.ipv4_addr.s_addr
+      << " ]"
+      << endl;
+  return ss.str();
+}
+
+/** get_string
+ * @Description : This function returns the values from the value structure
+ * @param[in]   : val_obj - structure variable of type val_df_flow_action_set_ip_tos_t
+ * @return      : attributes in value structure of val_df_flow_action_set_ip_tos_t are
+ * returned
+ **/
+string DataflowCmn::get_string
+(const val_df_flow_action_set_ip_tos_t &val_obj) {
+  stringstream ss;
+  ss << "[VAL_FLOW_ACTION_SET_ip_tos: "
+      << "ip_tos: " << uint8tostr(val_obj.ip_tos)
+      << " ]"
+      << endl;
+  return ss.str();
+}
+
+/** get_string
+ * @Description : This function returns the values from the value structure
+ * @param[in]   : val_obj - structure variable of type val_df_flow_action_set_tp_port_t
+ * @return      : attributes in value structure of val_df_flow_action_set_tp_port_t are
+ * returned
+ **/
+string DataflowCmn::get_string
+(const val_df_flow_action_set_tp_port_t &val_obj) {
+  stringstream ss;
+  ss << "[VAL_FLOW_ACTION_SET_tp_port: "
+      << "tp_port: " << uint16tostr(val_obj.tp_port)
+      << " ]"
+      << endl;
+  return ss.str();
+}
+
+/** get_string
+ * @Description : This function returns the values from the value structure
+ * @param[in]   : val_obj - structure variable of type val_df_flow_action_set_ipv6_t
+ * @return      : attributes in value structure of val_df_flow_action_set_ipv6_t are
+ * returned
+ **/
+string DataflowCmn::get_string(const val_df_flow_action_set_ipv6_t &val_obj) {
+  stringstream ss;
+  char ipv6_addr[INET6_ADDRSTRLEN];
+  inet_ntop(AF_INET6, &val_obj.ipv6_addr.s6_addr, ipv6_addr, INET6_ADDRSTRLEN);
+  ss << "[VAL_FLOW_ACTION_SET_ipv6: "
+      << "ipv6_addr: " << ipv6_addr
+      << " ]"
+      << endl;
+  return ss.str();
+}
+
+string DataflowCmn::get_string(const val_vtn_dataflow_path_info_t &val_obj) {
+  stringstream ss;
+  stringstream valid;
+  for (unsigned int i = 0; i < 6 ; ++i) {
+    valid << uint8tostr(val_obj.valid[i]);
+  }
+  ss << "[VAL_FLOW_PATH_INFO: "
+      << " valid: " << valid.str()
+      << " ]"
+      << "\n"
+      << " in_vnode: " << val_obj.in_vnode
+      << "\n"
+      << " in_vif: " << val_obj.in_vif
+      << "\n"
+      << " out_vnode: " << val_obj.out_vnode
+      << "\n"
+      << " out_vif: " << val_obj.out_vif
+      << "\n"
+      << " vlink_flag: " << val_obj.vlink_flag
+      << "\n"
+      << " status: " << val_obj.status
+      << endl;
+  return ss.str();
+}
+
+
+/** get_string
+ * @Description : This function returns the values from the value structure
+ * @param[in]   : val_obj - structure variable of type val_df_data_flow_path_info_t
+ * @return      : attributes in value structure of val_df_data_flow_path_info_t are
+ * returned
+ **/
+string DataflowCmn::get_string(const val_df_data_flow_path_info_t &val_obj) {
+  stringstream ss;
+  stringstream valid;
+  for (unsigned int i = 0; i < 3 ; ++i) {
+    valid << uint8tostr(val_obj.valid[i]);
+  }
+  ss << "[VAL_FLOW_PATH_INFO: "
+      << "switch_id: " << val_obj.switch_id
+      << ", in_port: " << val_obj.in_port
+      << ", out_port: " << val_obj.out_port
+      << ", valid: " << valid.str()
+      << " ]"
+      << endl;
+  return ss.str();
+}
+
+/** get_string
+ * @Description : This function returns the values from AddlData structure
+ * @param[in]   : ptr - structure variable of type AddlData
+ * @return      : attributes in AddlData structure of are
+ * returned
+ **/
+string DataflowCmn::get_string(const AddlData *ptr) {
+  if (ptr == NULL) {
+    return "[AddlData:NULL]\n";
+  }
+  stringstream ss;
+  ss << "[AddlData: "
+      << "reason: " << ptr->reason
+      << ", controller_count: " << ptr->controller_count
+      << ", max_dom_traversal_count: " << ptr->max_dom_traversal_count
+      << ", current_traversal_count: " << ptr->current_traversal_count
+      << ", traversed_controllers.size: " << ptr->traversed_controllers.size()
+      << " ]"
+      << endl;
+  return ss.str();
+}
+
+/** get_string
+ * @Description : This function returns the values from the value structure
+ * @param[in]   : val_obj - structure variable of type val_df_data_flow_t
+ * @return      : attributes in value structure of val_df_data_flow_t are
+ * returned
+ **/
+string DataflowUtil::get_string(const val_df_data_flow_t &val_obj) {
+  stringstream ss;
+  stringstream valid;
+  for (unsigned int i = 0; i < 2 ; ++i) {
+    valid << uint8tostr(val_obj.valid[i]);
+  }
+  ss << "[VAL_FLOW: "
+      << " reason: " << val_obj.reason
+      << " controller_count: " << val_obj.controller_count
+      << " valid: " << valid.str()
+      << " ]"
+      << endl;
+  return ss.str();
+}
+
+/** 
+ * @Description : This function returns the values from the value structure
+ * @param[in]   : val_obj - structure variable of type val_vtn_dataflow_t
+ * @return      : attributes in value structure of val_vtn_dataflow_t are
+ * returned
+ **/
+string DataflowUtil::get_string(const val_vtn_dataflow_t &val_obj) {
+  stringstream ss;
+  stringstream valid;
+  for (unsigned int i = 0; i < 2 ; ++i) {
+    valid << uint8tostr(val_obj.valid[i]);
+  }
+  ss << "[VAL_FLOW: "
+      << " valid: " << valid.str()
+      << " ]"
+      << "\n"
+      << " reason: " << val_obj.reason
+      << "\n"
+      << " controller_domain_count: " << val_obj.ctrlr_domain_count
+      << endl;
+  return ss.str();
+}
+
+
+/** 
+ * @Description : This function returns the values from the value structure
+ * @param[in]   : val_obj - structure variable of type val_df_data_flow_t
+ * @return      : attributes in value structure of val_df_data_flow_t are
+ * returned
+ **/
+string DataflowUtil::get_string(const val_df_data_flow_st_t &val_obj) {
+  stringstream ss;
+  stringstream valid_st;
+  for (unsigned int i = 0; i < 3 ; ++i) {
+    valid_st << uint8tostr(val_obj.valid[i]);
+  }
+  ss << "[VAL_FLOW_ST: "
+      << " packets: " << uint64tostr(val_obj.packets)
+      << ", octets: " << uint64tostr(val_obj.octets)
+      << ", duration: " << val_obj.duration
+      << " valid_st: " << valid_st.str()
+      << " ]"
+      << endl;
+  return ss.str();
+}
+
+/** 
+ * @Description : This function returns the values from the dataflow
+ * value structure
+ * @param[in]   : None
+ * @return      : attributes in value structure of dataflow val_* are
+ * returned
+ **/
+std::string DataflowCmn::ToStr() {
+  stringstream ss;
+  ss << get_string(*df_segment->df_common);
+  map<UncDataflowFlowMatchType, void *>::iterator matches_iter;
+  for (matches_iter = df_segment->matches.begin(); matches_iter !=
+       df_segment->matches.end(); matches_iter++) {
+    switch (matches_iter->first) {
+      case UNC_MATCH_IN_PORT:
+        {
+          DATAFLOW_MATCHES_GETSTRING(ss, *matches_iter,
+                                     val_df_flow_match_in_port_t);
+          break;
+        }
+      case UNC_MATCH_DL_DST:
+        {
+          DATAFLOW_MATCHES_GETSTRING(ss, *matches_iter,
+                                     val_df_flow_match_dl_addr_t);
+          break;
+        }
+      case UNC_MATCH_DL_SRC:
+        {
+          DATAFLOW_MATCHES_GETSTRING(ss, *matches_iter,
+                                     val_df_flow_match_dl_addr_t);
+          break;
+        }
+      case UNC_MATCH_DL_TYPE:
+        {
+          DATAFLOW_MATCHES_GETSTRING(ss, *matches_iter,
+                                     val_df_flow_match_dl_type_t);
+          break;
+        }
+      case UNC_MATCH_VLAN_ID:
+        {
+          DATAFLOW_MATCHES_GETSTRING(ss, *matches_iter,
+                                     val_df_flow_match_vlan_id_t);
+          break;
+        }
+      case UNC_MATCH_VLAN_PCP:
+        {
+          DATAFLOW_MATCHES_GETSTRING(ss, *matches_iter,
+                                     val_df_flow_match_vlan_pcp_t);
+          break;
+        }
+      case UNC_MATCH_IP_TOS:
+        {
+          DATAFLOW_MATCHES_GETSTRING(ss, *matches_iter,
+                                     val_df_flow_match_ip_tos_t);
+          break;
+        }
+      case UNC_MATCH_IP_PROTO:
+        {
+          DATAFLOW_MATCHES_GETSTRING(ss, *matches_iter,
+                                     val_df_flow_match_ip_proto_t);
+          break;
+        }
+      case UNC_MATCH_IPV4_SRC:
+        {
+          DATAFLOW_MATCHES_GETSTRING(ss, *matches_iter,
+                                     val_df_flow_match_ipv4_addr_t);
+          break;
+        }
+      case UNC_MATCH_IPV4_DST:
+        {
+          DATAFLOW_MATCHES_GETSTRING(ss, *matches_iter,
+                                     val_df_flow_match_ipv4_addr_t);
+          break;
+        }
+      case UNC_MATCH_IPV6_SRC:
+        {
+          DATAFLOW_MATCHES_GETSTRING(ss, *matches_iter,
+                                     val_df_flow_match_ipv6_addr_t);
+          break;
+        }
+      case UNC_MATCH_IPV6_DST:
+        {
+          DATAFLOW_MATCHES_GETSTRING(ss, *matches_iter,
+                                     val_df_flow_match_ipv6_addr_t);
+          break;
+        }
+      case UNC_MATCH_TP_SRC:
+        {
+          DATAFLOW_MATCHES_GETSTRING(ss, *matches_iter,
+                                     val_df_flow_match_tp_port_t);
+          break;
+        }
+      case UNC_MATCH_TP_DST:
+        {
+          DATAFLOW_MATCHES_GETSTRING(ss, *matches_iter,
+                                     val_df_flow_match_tp_port_t);
+          break;
+        }
+      default:
+        break;
+    }
+  }
+
+  vector<val_actions_vect_st *>::iterator actions_iter;
+  for (actions_iter = df_segment->actions.begin(); actions_iter !=
+       df_segment->actions.end(); actions_iter++) {
+    val_actions_vect_st *ptr =  reinterpret_cast<val_actions_vect_st *>
+        (*actions_iter);
+    switch (ptr->action_type) {
+      case UNC_ACTION_OUTPUT:
+        {
+          DATAFLOW_ACTIONS_GETSTRING(ss, ptr, val_df_flow_action_output_port_t);
+          break;
+        }
+      case UNC_ACTION_SET_ENQUEUE:
+        {
+          DATAFLOW_ACTIONS_GETSTRING(ss, ptr,
+                                     val_df_flow_action_enqueue_port_t);
+          break;
+        }
+      case UNC_ACTION_SET_DL_SRC:
+        {
+          DATAFLOW_ACTIONS_GETSTRING(ss, ptr,
+                                     val_df_flow_action_set_dl_addr_t);
+          break;
+        }
+      case UNC_ACTION_SET_DL_DST:
+        {
+          DATAFLOW_ACTIONS_GETSTRING(ss, ptr,
+                                     val_df_flow_action_set_dl_addr_t);
+          break;
+        }
+      case UNC_ACTION_SET_VLAN_ID:
+        {
+          DATAFLOW_ACTIONS_GETSTRING(ss, ptr,
+                                     val_df_flow_action_set_vlan_id_t);
+          break;
+        }
+      case UNC_ACTION_SET_VLAN_PCP:
+        {
+          DATAFLOW_ACTIONS_GETSTRING(ss, ptr,
+                                     val_df_flow_action_set_vlan_pcp_t);
+          break;
+        }
+      case UNC_ACTION_STRIP_VLAN:
+        {
+          ss << "  6...VAL_FLOW_ACTION_STRIP_VLAN" << endl;
+          break;
+        }
+      case UNC_ACTION_SET_IPV4_SRC:
+        {
+          DATAFLOW_ACTIONS_GETSTRING(ss, ptr,
+                                     val_df_flow_action_set_ipv4_t);
+          break;
+        }
+      case UNC_ACTION_SET_IPV4_DST:
+        {
+          DATAFLOW_ACTIONS_GETSTRING(ss, ptr,
+                                     val_df_flow_action_set_ipv4_t);
+          break;
+        }
+      case UNC_ACTION_SET_IP_TOS:
+        {
+          DATAFLOW_ACTIONS_GETSTRING(ss, ptr,
+                                     val_df_flow_action_set_ip_tos_t);
+          break;
+        }
+      case UNC_ACTION_SET_TP_SRC:
+        {
+          DATAFLOW_ACTIONS_GETSTRING(ss, ptr,
+                                     val_df_flow_action_set_tp_port_t);
+          break;
+        }
+      case UNC_ACTION_SET_TP_DST:
+        {
+          DATAFLOW_ACTIONS_GETSTRING(ss, ptr,
+                                     val_df_flow_action_set_tp_port_t);
+          break;
+        }
+      case UNC_ACTION_SET_IPV6_SRC:
+        {
+          DATAFLOW_ACTIONS_GETSTRING(ss, ptr,
+                                     val_df_flow_action_set_ipv6_t);
+          break;
+        }
+      case UNC_ACTION_SET_IPV6_DST:
+        {
+          DATAFLOW_ACTIONS_GETSTRING(ss, ptr,
+                                     val_df_flow_action_set_ipv6_t);
+          break;
+        }
+      default:
+        break;
+    }
+  }
+  for (uint32_t i = 0; i < df_segment->path_infos.size(); i++) {
+    ss << "  " << get_string(*df_segment->path_infos[i]);
+  }
+  ss << get_string(addl_data);
+  if (head == NULL)
+    ss << "head=NULL";
+  else
+    ss << "head=ptr";
+
+  ss << " next.size=" << next.size()
+      << " total_flow_count=" << total_flow_count << endl;
+
+  return ss.str();
+}
+
+/** deep_copy
+ * @Description : This function copies matches to output_matches
+ * @param[in]   : None
+ * @return      : None
+ **/
+void DataflowCmn::deep_copy() {
+  map<UncDataflowFlowMatchType, void *>::iterator iter;
+  for (iter = df_segment->matches.begin(); iter != df_segment->matches.end();
+       iter++) {
+    switch (iter->first) {
+      case UNC_MATCH_IN_PORT:
+        {
+          DEEP_COPY_MATCHES_TO_OUTPUTMATCHES(val_df_flow_match_in_port_t,
+                                             output_matches,
+                                             UNC_MATCH_IN_PORT, *iter);
+          break;
+        }
+      case UNC_MATCH_DL_DST:
+        {
+          DEEP_COPY_MATCHES_TO_OUTPUTMATCHES(val_df_flow_match_dl_addr_t,
+                                             output_matches,
+                                             UNC_MATCH_DL_DST, *iter);
+          break;
+        }
+      case UNC_MATCH_DL_SRC:
+        {
+          DEEP_COPY_MATCHES_TO_OUTPUTMATCHES(val_df_flow_match_dl_addr_t,
+                                             output_matches,
+                                             UNC_MATCH_DL_SRC, *iter);
+          break;
+        }
+      case UNC_MATCH_DL_TYPE:
+        {
+          DEEP_COPY_MATCHES_TO_OUTPUTMATCHES(val_df_flow_match_dl_type_t,
+                                             output_matches,
+                                             UNC_MATCH_DL_TYPE, *iter);
+          break;
+        }
+      case UNC_MATCH_VLAN_ID:
+        {
+          DEEP_COPY_MATCHES_TO_OUTPUTMATCHES(val_df_flow_match_vlan_id_t,
+                                             output_matches,
+                                             UNC_MATCH_VLAN_ID, *iter);
+          break;
+        }
+      case UNC_MATCH_VLAN_PCP:
+        {
+          DEEP_COPY_MATCHES_TO_OUTPUTMATCHES(val_df_flow_match_vlan_pcp_t,
+                                             output_matches,
+                                             UNC_MATCH_VLAN_PCP, *iter);
+          break;
+        }
+      case UNC_MATCH_IP_TOS:
+        {
+          DEEP_COPY_MATCHES_TO_OUTPUTMATCHES(val_df_flow_match_ip_tos_t,
+                                             output_matches,
+                                             UNC_MATCH_IP_TOS, *iter);
+          break;
+        }
+      case UNC_MATCH_IP_PROTO:
+        {
+          DEEP_COPY_MATCHES_TO_OUTPUTMATCHES(val_df_flow_match_ip_proto_t,
+                                             output_matches,
+                                             UNC_MATCH_IP_PROTO, *iter);
+          break;
+        }
+      case UNC_MATCH_IPV4_SRC:
+        {
+          DEEP_COPY_MATCHES_TO_OUTPUTMATCHES(val_df_flow_match_ipv4_addr_t,
+                                             output_matches,
+                                             UNC_MATCH_IPV4_SRC, *iter);
+          break;
+        }
+      case UNC_MATCH_IPV4_DST:
+        {
+          DEEP_COPY_MATCHES_TO_OUTPUTMATCHES(val_df_flow_match_ipv4_addr_t,
+                                             output_matches,
+                                             UNC_MATCH_IPV4_DST, *iter);
+          break;
+        }
+      case UNC_MATCH_IPV6_SRC:
+        {
+          DEEP_COPY_MATCHES_TO_OUTPUTMATCHES(val_df_flow_match_ipv6_addr_t,
+                                             output_matches,
+                                             UNC_MATCH_IPV6_SRC, *iter);
+          break;
+        }
+      case UNC_MATCH_IPV6_DST:
+        {
+          DEEP_COPY_MATCHES_TO_OUTPUTMATCHES(val_df_flow_match_ipv6_addr_t,
+                                             output_matches,
+                                             UNC_MATCH_IPV6_DST, *iter);
+          break;
+        }
+      case UNC_MATCH_TP_SRC:
+        {
+          DEEP_COPY_MATCHES_TO_OUTPUTMATCHES(val_df_flow_match_tp_port_t,
+                                             output_matches,
+                                             UNC_MATCH_TP_SRC, *iter);
+          break;
+        }
+      case UNC_MATCH_TP_DST:
+        {
+          DEEP_COPY_MATCHES_TO_OUTPUTMATCHES(val_df_flow_match_tp_port_t,
+                                             output_matches,
+                                             UNC_MATCH_TP_DST, *iter);
+          break;
+        }
+    }
+  }
+}
+
+/** Destructor
+ * * @Description : Destructor deletes all allocated memories
+ * * @param[in]   : None
+ * * @return      : None
+ **/
+DataflowDetail::~DataflowDetail() {
+  pfc_log_trace("DataflowDetail -Destructor call");
+
+  if (df_common != NULL) {
+    delete df_common;
+    df_common = NULL;
+  }
+  if (vtn_df_common != NULL) {
+    delete vtn_df_common;
+    vtn_df_common = NULL;
+  }
+  if (ckv_egress)
+    delete reinterpret_cast<ConfigKeyVal *>(ckv_egress);
+  ckv_egress = NULL;
+  if (matches.size() > 0) {
+    map<UncDataflowFlowMatchType, void *>::iterator matches_iter;
+    for (matches_iter = matches.begin();
+         matches_iter != matches.end();
+         matches_iter++) {
+      ::operator delete((*matches_iter).second);
+      pfc_log_trace("out_matches map entry is deleted");
+    }
+    matches.clear();
+  }
+  if (actions.size() > 0) {
+    vector<val_actions_vect_st *>::iterator action_vect_iter;
+    for (action_vect_iter = actions.begin();
+         action_vect_iter != actions.end();
+         action_vect_iter++) {
+      val_actions_vect_st *ptr = reinterpret_cast<val_actions_vect_st*>
+          ((*action_vect_iter));
+      ::operator delete(ptr->action_st_ptr);
+      delete ptr;
+      ptr = NULL;
+      pfc_log_trace("action vector entry is deleted");
+    }
+    actions.clear();
+  }
+  if (path_infos.size() > 0) {
+    vector<val_df_data_flow_path_info *>::iterator path_infos_iter;
+    for (path_infos_iter = path_infos.begin();
+         path_infos_iter != path_infos.end();
+         path_infos_iter++) {
+      ::operator delete((*path_infos_iter));
+      pfc_log_trace("path_infos vector entry is deleted");
+    }
+    path_infos.clear();
+  }
+  if (vtn_path_infos.size() > 0) {
+    vector<val_vtn_dataflow_path_info *>::iterator vtn_path_infos_iter;
+    for (vtn_path_infos_iter = vtn_path_infos.begin();
+         vtn_path_infos_iter != vtn_path_infos.end();
+         vtn_path_infos_iter++) {
+      ::operator delete((*vtn_path_infos_iter));
+      pfc_log_trace("vtn_path_infos vector entry is deleted");
+    }
+    vtn_path_infos.clear();
+  }
+}
+
+PFC_MODULE_DECL(unc::dataflow::DataflowDummy);
index dcca6e07f4d3cf72e3f1f9fc34e675e081395252..cd156d178e086e50d7d653591c741a17809d76f5 100644 (file)
@@ -44,12 +44,12 @@ class OdcLink {
    * @param[in] ctr                  - Controller pointer
    * @param[in] cache_empty          - If cache is empty it is PFC_TRUE else
    *                                   PFC_FALSE
-   * @return drv_resp_code_t         - returns DRVAPI_RESPONSE_SUCCESS on
+   * @return UncRespCode             - returns UNC_RC_SUCCESS on
    *                                   success of read all operation/returns
-   *                                   DRVAPI_RESPONSE_FAILURE on failure
+   *                                   UNC_DRV_RC_ERR_GENERIC on failure
    */
-  drv_resp_code_t fetch_config(unc::driver::controller* ctr,
-                               const pfc_bool_t &cache_empty);
+  UncRespCode fetch_config(unc::driver::controller* ctr,
+                           const pfc_bool_t &cache_empty);
 
  private:
   /**
@@ -60,11 +60,11 @@ class OdcLink {
    * @param[out] edge_prop_map      - map which stores edge property values
    * @param[out] head_conn_map      - map which stores head connection property
    *                                  values
-   * @return drv_resp_code_t        - returns
-   *                                  DRVAPI_RESPONSE_SUCCESS/
-   *                                  DRVAPI_RESPONSE_FAILURE
+   * @return UncRespCode            - returns
+   *                                  UNC_RC_SUCCESS/
+   *                                  UNC_DRV_RC_ERR_GENERIC
    */
-  drv_resp_code_t fill_edge_value_map(
+  UncRespCode fill_edge_value_map(
       json_object *json_obj_node_prop,
       int arr_idx,
       std::map<std::string, std::string> &edge_prop_map,
@@ -78,12 +78,12 @@ class OdcLink {
    *                                   connection properties
    * @param[out] cfg_node_vector     - vector to which config node needs to be
    *                                   pushed
-   * @return drv_resp_code_t         - returns DRVAPI_RESPONSE_SUCCESS on
+   * @return UncRespCode             - returns UNC_RC_SUCCESS on
    *                                   parsing link and appending to vector
    *                                   successfully/returns
-   *                                   DRVAPI_RESPONSE_FAILURE on failure
+   *                                   UNC_DRV_RC_ERR_GENERIC on failure
    */
-  drv_resp_code_t fill_config_node_vector(
+  UncRespCode fill_config_node_vector(
       unc::driver::controller *ctr_ptr,
       const std::map<std::string, std::string> &edge_prop_map,
       const std::map<std::string, std::string> &head_conn_map,
@@ -94,9 +94,9 @@ class OdcLink {
    * @param[in]                      - ctr controller pointer
    * @param[in]                      - Cache empty or not PFC_TRUE/PFC_FALSE
    * @param[out]                     - filled config node vector
-   * @return drv_resp_code_t         - returns DRVAPI_RESPONSE_SUCCESS/ DRVAPI_RESPONSE_FAILURE
+   * @return UncRespCode             - returns UNC_RC_SUCCESS/ UNC_DRV_RC_ERR_GENERIC
    */
-  drv_resp_code_t compare_with_cache(
+  UncRespCode compare_with_cache(
       unc::driver::controller *ctr_ptr,
       const pfc_bool_t &cache_empty,
       std::vector<unc::vtndrvcache::ConfigNode *> &cfgnode_vector);
@@ -127,11 +127,11 @@ class OdcLink {
    * @param[in] ctr_ptr              - controller pointer
    * @param[in] cfg_node             - Config Node pointer
    * @param[out] link_list           - local list maintained for delete contains link id
-   * @return drv_resp_code_t         - return DRVAPI_RESPONSE_SUCCESS/ DRVAPI_RESPONSE_FAILURE
+   * @return UncRespCode             - return UNC_RC_SUCCESS/ UNC_DRV_RC_ERR_GENERIC
    */
-  drv_resp_code_t add_event(unc::driver::controller *ctr_ptr,
-                            unc::vtndrvcache::ConfigNode *cfg_node,
-                            std::list<std::string> &link_list);
+  UncRespCode add_event(unc::driver::controller *ctr_ptr,
+                        unc::vtndrvcache::ConfigNode *cfg_node,
+                        std::list<std::string> &link_list);
 
   /**
    * @brief                          - update event to be sent to UPPL and cache
@@ -139,30 +139,30 @@ class OdcLink {
    * @param[in] cfg_node             - Config Node pointer
    * @param[in] val_old_link         - old link value structure
    * @param[out] link_list           - local list maintained for delete contains link id
-   * @return drv_resp_code_t         - return DRVAPI_RESPONSE_SUCCESS/ DRVAPI_RESPONSE_FAILURE
+   * @return UncRespCode             - return UNC_RC_SUCCESS/ UNC_DRV_RC_ERR_GENERIC
    */
-  drv_resp_code_t update_event(unc::driver::controller *ctr_ptr,
-                               unc::vtndrvcache::ConfigNode *cfg_node,
-                               val_link_st_t *val_old_link,
-                               std::list<std::string> &link_list);
+  UncRespCode update_event(unc::driver::controller *ctr_ptr,
+                           unc::vtndrvcache::ConfigNode *cfg_node,
+                           val_link_st_t *val_old_link,
+                           std::list<std::string> &link_list);
 
   /**
    * @brief                           - delete event to be sent to UPPL and cache
    * @param[in] ctr_ptr               - controller pointer
    * @param[in] link_list             - local list maintained for delete contains link id
-   * @return drv_resp_code_t          - return DRVAPI_RESPONSE_SUCCESS/ DRVAPI_RESPONSE_FAILURE
+   * @return UncRespCode              - return UNC_RC_SUCCESS/ UNC_DRV_RC_ERR_GENERIC
    */
-  drv_resp_code_t delete_event(unc::driver::controller *ctr_ptr,
-                               std::list<std::string> &link_list);
+  UncRespCode delete_event(unc::driver::controller *ctr_ptr,
+                           std::list<std::string> &link_list);
 
    /**
     * @brief                          - Verify in cache whether link aleady exists or not
     * @param[in] ctr_ptr              - controller pointer
     * @param[in] cfgnode_vector       - Config Node vector
     * @param[out] link_list           - local list maintained for delete contains link id
-    * @return drv_resp_code_t         - return DRVAPI_RESPONSE_SUCCESS/ DRVAPI_RESPONSE_FAILURE
+    * @return UncRespCode             - return UNC_RC_SUCCESS/ UNC_DRV_RC_ERR_GENERIC
     */
-  drv_resp_code_t verify_in_cache(
+  UncRespCode verify_in_cache(
       unc::driver::controller *ctr_ptr,
       std::vector<unc::vtndrvcache::ConfigNode *> &cfgnode_vector,
       std::list<std::string> &link_list);
@@ -181,9 +181,9 @@ class OdcLink {
    * @param[in] ctr_ptr               - Controller pointer
    * @param[in] data                  - data to be parsed
    * @param[out] cfgnode_vector       - to be filled with the response
-   * return drv_resp_code_t           - return DRVAPI_RESPONSE_SUCCESS/ DRVAPI_RESPONSE_FAILURE
+   * return UncRespCode               - return UNC_RC_SUCCESS/ UNC_DRV_RC_ERR_GENERIC
    */
-  drv_resp_code_t parse_link_response(
+  UncRespCode parse_link_response(
       unc::driver::controller *ctr_ptr,
       char *data,
       std::vector< unc::vtndrvcache::ConfigNode *> &cfgnode_vector);
@@ -192,10 +192,10 @@ class OdcLink {
    * @brief                          - delete_Link
    * @param[in] ctr                  - Controller pointer
    * @param[in]                      - cfg_node_delete_map
-   * @return drv_resp_code_t         - return DRVAPI_RESPONSE_SUCCESS/
-   *                                   DRVAPI_RESPONSE_FAILURE
+   * @return UncRespCode             - return UNC_RC_SUCCESS/
+   *                                   UNC_DRV_RC_ERR_GENERIC
    */
-  drv_resp_code_t delete_link(
+  UncRespCode delete_link(
       unc::driver::controller *ctr,
       const std::map<std::string,
       unc::vtndrvcache::ConfigNode *> &cfg_node_delete_map);
index a5b0b95577f83ae007c47e2a8ff3b8feaf70f866..696bc157b8d66ce33cda8681477b053e81c40101 100644 (file)
@@ -42,11 +42,11 @@ class OdcPort {
    * @param[in] ctr                  - Controller pointer
    * @param[in] parent_key           - parent key is key_switch
    * @param[in] cache_empty          - PFC_TRUE/ PFC_FALSE
-   * @return drv_resp_code_t         - returns DRVAPI_RESPONSE_SUCCESS on
+   * @return UncRespCode             - returns UNC_RC_SUCCESS on
    *                                   success of read all operation/returns
-   *                                   DRVAPI_RESPONSE_FAILURE on failure
+   *                                   UNC_DRV_RC_ERR_GENERIC on failure
    */
-  drv_resp_code_t fetch_config(unc::driver::controller* ctr,
+  UncRespCode fetch_config(unc::driver::controller* ctr,
                                key_switch_t *parent_key,
                                const pfc_bool_t cache_empty);
 
@@ -72,12 +72,12 @@ class OdcPort {
    *                                   index  -1 denotes no array
    * @param[out] cfg_node_vector     - vector to which config node needs to be
    *                                   pushed
-   * @return drv_resp_code_t         - returns DRVAPI_RESPONSE_SUCCESS on
+   * @return UncRespCode             - returns UNC_RC_SUCCESS on
    *                                   parsing port and appending to vector
    *                                   successfully/returns
-   *                                   DRVAPI_RESPONSE_FAILURE on failure
+   *                                   UNC_DRV_RC_ERR_GENERIC on failure
    */
-  drv_resp_code_t fill_config_node_vector(
+  UncRespCode fill_config_node_vector(
       unc::driver::controller *ctr_ptr,
       json_object *json_obj_node_prop,
       int arr_idx,
@@ -92,11 +92,11 @@ class OdcPort {
    * @param[out] state_value         - state_value is parsed and its out param
    * @param[out] config_value        - config_value is parsed and its out param
    * @param[out] speed               - speed value is parsed and its out param
-   * @return drv_resp_code_t         - returns
-   *                                    DRVAPI_RESPONSE_SUCCESS/DRVAPI_RESPONSE_FAILURE
+   * @return UncRespCode             - returns
+   *                                    UNC_RC_SUCCESS/UNC_DRV_RC_ERR_GENERIC
    */
 
-  drv_resp_code_t parse_port_properties_value(
+  UncRespCode parse_port_properties_value(
       int arr_idx,
       json_object *json_obj_node_conn,
       std::string &name_value,
@@ -109,10 +109,10 @@ class OdcPort {
    * @param[in]                      - filled config node vector
    * @param[in] switch id            - switch id in string
    * @param[in] cache_empty          - cache_empty pfc_bool_t
-   * @return drv_resp_code_t         - returns DRVAPI_RESPONSE_SUCCESS/ DRVAPI_RESPONSE_FAILURE
+   * @return UncRespCode             - returns UNC_RC_SUCCESS/ UNC_DRV_RC_ERR_GENERIC
    */
 
-  drv_resp_code_t compare_with_cache(
+  UncRespCode compare_with_cache(
       unc::driver::controller *ctr_ptr,
       std::vector<unc::vtndrvcache::ConfigNode *> &cfgnode_vector,
       const std::string &switch_id, const pfc_bool_t cache_empty);
@@ -140,10 +140,10 @@ class OdcPort {
    * @param[in] ctr_ptr              - controller pointer
    * @param[in] cfg_node             - Config Node pointer
    * @param[out] port_list           - local list maintained for delete contains port id
-   * @return drv_resp_code_t         - return DRVAPI_RESPONSE_SUCCESS/ DRVAPI_RESPONSE_FAILURE
+   * @return UncRespCode             - return UNC_RC_SUCCESS/ UNC_DRV_RC_ERR_GENERIC
    */
 
-  drv_resp_code_t add_event(unc::driver::controller *ctr_ptr,
+  UncRespCode add_event(unc::driver::controller *ctr_ptr,
                             unc::vtndrvcache::ConfigNode *cfg_node,
                             std::list<std::string> &port_list);
 
@@ -153,9 +153,9 @@ class OdcPort {
    * @param[in] cfg_node             - Config Node pointer
    * @param[in] val_old_port         - old port value structure
    * @param[out] port_list           - local list maintained for delete contains port id
-   * @return drv_resp_code_t         - return DRVAPI_RESPONSE_SUCCESS/ DRVAPI_RESPONSE_FAILURE
+   * @return UncRespCode             - return UNC_RC_SUCCESS/ UNC_DRV_RC_ERR_GENERIC
    */
-  drv_resp_code_t update_event(unc::driver::controller *ctr_ptr,
+  UncRespCode update_event(unc::driver::controller *ctr_ptr,
                                unc::vtndrvcache::ConfigNode *cfg_node,
                                val_port_st_t *val_old_port,
                                std::list<std::string> &port_list);
@@ -165,9 +165,9 @@ class OdcPort {
    * @param[in] ctr_ptr              - controller pointer
    * @param[in] switch id            - switch id in string
    * @param[in] port_list            - local list maintained for delete contains port id
-   * @return drv_resp_code_t         - return DRVAPI_RESPONSE_SUCCESS/ DRVAPI_RESPONSE_FAILURE
+   * @return UncRespCode             - return UNC_RC_SUCCESS/ UNC_DRV_RC_ERR_GENERIC
    */
-  drv_resp_code_t delete_event(unc::driver::controller *ctr_ptr,
+  UncRespCode delete_event(unc::driver::controller *ctr_ptr,
                                const std::string &switch_id,
                                std::list<std::string> &port_list);
 
@@ -177,9 +177,9 @@ class OdcPort {
    * @param[in] cfgnode_vector       - Config Node vector
    * @param[in] switch id            - switch id in string
    * @param[out] port_list           - local list maintained for delete contains port id
-   * @return drv_resp_code_t         - return DRVAPI_RESPONSE_SUCCESS/ DRVAPI_RESPONSE_FAILURE
+   * @return UncRespCode             - return UNC_RC_SUCCESS/ UNC_DRV_RC_ERR_GENERIC
    */
-  drv_resp_code_t verify_in_cache(
+  UncRespCode verify_in_cache(
       unc::driver::controller *ctr_ptr,
       std::vector<unc::vtndrvcache::ConfigNode *> &cfgnode_vector,
       const std::string &switch_id,
@@ -199,9 +199,9 @@ class OdcPort {
    * @param[in] ctr_ptr               - Controller pointer
    * @param[in] data                  - data to be parsed
    * @param[out] cfgnode_vector       - to be filled with the response
-   * return drv_resp_code_t           - return DRVAPI_RESPONSE_SUCCESS/ DRVAPI_RESPONSE_FAILURE
+   * return UncRespCode               - return UNC_RC_SUCCESS/ UNC_DRV_RC_ERR_GENERIC
    */
-  drv_resp_code_t parse_port_response(
+  UncRespCode parse_port_response(
       unc::driver::controller *ctr_ptr,
       char *data,
       std::vector< unc::vtndrvcache::ConfigNode *> &cfgnode_vector);
@@ -235,10 +235,10 @@ class OdcPort {
    * @param[in] ctr                   - Controller pointer
    * @param[in]                       - cfg_node_delete_map map which contains
    *                                    config node pointer to be deleted
-   * @return drv_resp_code_t          - return DRVAPI_RESPONSE_SUCCESS/
-   *                                    DRVAPI_RESPONSE_FAILURE
+   * @return UncRespCode              - return UNC_RC_SUCCESS/
+   *                                    UNC_DRV_RC_ERR_GENERIC
    */
-  drv_resp_code_t delete_port(
+  UncRespCode delete_port(
       unc::driver::controller *ctr,
       const std::map<std::string,
       unc::vtndrvcache::ConfigNode *> &cfg_node_delete_map);
index 2b8f335213a392b840230c626ebf48292dcc02b8..01acd3d71e933cb2fa512194da932feb905d30d5 100644 (file)
@@ -43,11 +43,11 @@ class OdcSwitch {
    * @param[in] ctr                  - Controller pointer
    * @param[out] cache_empty         - If cache is empty it is PFC_TRUE else
    *                                   PFC_FALSE
-   * @return drv_resp_code_t         - returns DRVAPI_RESPONSE_SUCCESS on
+   * @return UncRespCode             - returns UNC_RC_SUCCESS on
    *                                   success of read all operation/returns
-   *                                   DRVAPI_RESPONSE_FAILURE on failure
+   *                                   UNC_DRV_RC_ERR_GENERIC on failure
    */
-  drv_resp_code_t fetch_config(unc::driver::controller* ctr,
+  UncRespCode fetch_config(unc::driver::controller* ctr,
                                pfc_bool_t &cache_empty);
 
  private:
@@ -60,12 +60,12 @@ class OdcSwitch {
    *                                   index  -1 denotes no array
    * @param[out] cfg_node_vector     - vector to which config node needs to be
    *                                   pushed
-   * @return drv_resp_code_t         - returns DRVAPI_RESPONSE_SUCCESS on
+   * @return UncRespCode             - returns UNC_RC_SUCCESS on
    *                                   parsing switch and appending to vector
    *                                   successfully/returns
-   *                                   DRVAPI_RESPONSE_FAILURE on failure
+   *                                   UNC_DRV_RC_ERR_GENERIC on failure
    */
-  drv_resp_code_t fill_config_node_vector(
+  UncRespCode fill_config_node_vector(
       unc::driver::controller *ctr_ptr,
       json_object *json_obj_node_prop,
       int arr_idx,
@@ -76,9 +76,9 @@ class OdcSwitch {
    * @param[in]                      - ctr controller pointer
    * @param[out]                     - filled config node vector
    * @param[out]                     - Cache empty or not PFC_TRUE/PFC_FALSE
-   * @return drv_resp_code_t         - returns DRVAPI_RESPONSE_SUCCESS/ DRVAPI_RESPONSE_FAILURE
+   * @return UncRespCode             - returns UNC_RC_SUCCESS/ UNC_DRV_RC_ERR_GENERIC
    */
-  drv_resp_code_t compare_with_cache(
+  UncRespCode compare_with_cache(
       unc::driver::controller *ctr_ptr,
       std::vector<unc::vtndrvcache::ConfigNode *> &cfgnode_vector,
       pfc_bool_t &cache_empty);
@@ -108,10 +108,10 @@ class OdcSwitch {
    * @param[in] ctr_ptr              - controller pointer
    * @param[in] cfg_node             - Config Node pointer
    * @param[out] switch_list         - local list maintained for delete contains switch id
-   * @return drv_resp_code_t         - return DRVAPI_RESPONSE_SUCCESS/ DRVAPI_RESPONSE_FAILURE
+   * @return UncRespCode             - return UNC_RC_SUCCESS/ UNC_DRV_RC_ERR_GENERIC
    */
 
-  drv_resp_code_t add_event(unc::driver::controller *ctr_ptr,
+  UncRespCode add_event(unc::driver::controller *ctr_ptr,
                             unc::vtndrvcache::ConfigNode *cfg_node,
                             std::list<std::string> &switch_list);
 
@@ -121,9 +121,9 @@ class OdcSwitch {
    * @param[in] cfg_node             - Config Node pointer
    * @param[in] val_old_switch       - old switch value structure
    * @param[out] switch_list         - local list maintained for delete contains switch id
-   * @return drv_resp_code_t         - return DRVAPI_RESPONSE_SUCCESS/ DRVAPI_RESPONSE_FAILURE
+   * @return UncRespCode             - return UNC_RC_SUCCESS/ UNC_DRV_RC_ERR_GENERIC
    */
-  drv_resp_code_t update_event(unc::driver::controller *ctr_ptr,
+  UncRespCode update_event(unc::driver::controller *ctr_ptr,
                                unc::vtndrvcache::ConfigNode *cfg_node,
                                val_switch_st_t *val_old_switch,
                                std::list<std::string> &switch_list);
@@ -132,19 +132,19 @@ class OdcSwitch {
    * @brief                           - delete event to be sent to UPPL and cache
    * @param[in] ctr_ptr               - controller pointer
    * @param[in] switch_list           - local list maintained for delete contains switch id
-   * @return drv_resp_code_t          - return DRVAPI_RESPONSE_SUCCESS/ DRVAPI_RESPONSE_FAILURE
+   * @return UncRespCode              - return UNC_RC_SUCCESS/ UNC_DRV_RC_ERR_GENERIC
    */
-  drv_resp_code_t delete_event(unc::driver::controller *ctr_ptr,
-                               std::list<std::string> &switch_list);
+  UncRespCode delete_event(unc::driver::controller *ctr_ptr,
+                           std::list<std::string> &switch_list);
 
    /**
     * @brief                          - Verify in cache whether switch aleady exists or not
     * @param[in] ctr_ptr              - controller pointer
     * @param[in] cfgnode_vector       - Config Node vector
     * @param[out] switch_list         - local list maintained for delete contains switch id
-    * @return drv_resp_code_t         - return DRVAPI_RESPONSE_SUCCESS/ DRVAPI_RESPONSE_FAILURE
+    * @return UncRespCode             - return UNC_RC_SUCCESS/ UNC_DRV_RC_ERR_GENERIC
     */
-  drv_resp_code_t verify_in_cache(
+  UncRespCode verify_in_cache(
       unc::driver::controller *ctr_ptr,
       std::vector<unc::vtndrvcache::ConfigNode *> &cfgnode_vector,
       std::list<std::string> &switch_list);
@@ -163,9 +163,9 @@ class OdcSwitch {
    * @param[in] ctr_ptr               - Controller pointer
    * @param[in] data                  - data to be parsed
    * @param[out] cfgnode_vector       - to be filled with the response
-   * return drv_resp_code_t           - return DRVAPI_RESPONSE_SUCCESS/ DRVAPI_RESPONSE_FAILURE
+   * return UncRespCode               - return UNC_RC_SUCCESS/ UNC_DRV_RC_ERR_GENERIC
    */
-  drv_resp_code_t parse_node_response(
+  UncRespCode parse_node_response(
       unc::driver::controller *ctr_ptr,
       char *data,
       std::vector< unc::vtndrvcache::ConfigNode *> &cfgnode_vector);
@@ -174,10 +174,10 @@ class OdcSwitch {
    * @brief                          - delete_logical_port
    * @param[in] ctr                  - Controller pointer
    * @param[in]                      - cfg_node_delete_map
-   * @return drv_resp_code_t         - return DRVAPI_RESPONSE_SUCCESS/
-   *                                   DRVAPI_RESPONSE_FAILURE
+   * @return UncRespCode             - return UNC_RC_SUCCESS/
+   *                                   UNC_DRV_RC_ERR_GENERIC
    */
-  drv_resp_code_t delete_logical_port(
+  UncRespCode delete_logical_port(
       unc::driver::controller *ctr,
       const std::map<std::string,
       unc::vtndrvcache::ConfigNode *> &cfg_node_delete_map);
@@ -186,10 +186,10 @@ class OdcSwitch {
    * @brief                          - delete_Switch
    * @param[in] ctr                  - Controller pointer
    * @param[in]                      - cfg_node_delete_map
-   * @return drv_resp_code_t         - return DRVAPI_RESPONSE_SUCCESS/
-   *                                   DRVAPI_RESPONSE_FAILURE
+   * @return UncRespCode             - return UNC_RC_SUCCESS/
+   *                                   UNC_DRV_RC_ERR_GENERIC
    */
-  drv_resp_code_t delete_switch(
+  UncRespCode delete_switch(
       unc::driver::controller *ctr,
       const std::map<std::string,
       unc::vtndrvcache::ConfigNode *> &cfg_node_delete_map);
index 0bf4fbdc38412ae8047cd59e546fe069ba8dd74a..f8528989f06fb949ea4f0ba0096214b6344b44c7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013 NEC Corporation
+ * Copyright (c) 2013-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -46,12 +46,13 @@ class OdcVbrCommand: public unc::driver::vbr_driver_command {
    * @param[in] key_vbr              - key structure of VBR
    * @param[in] val_vbr              - value structure of VBR
    * @param[in] ctr                  - Controller pointrt
-   * @return drv_resp_t              - returns DRVAPI_RESPONSE_SUCCESS on creating vbr successfully
-   *                                   /returns DRVAPI_RESPONSE_FAILURE on failure
+   * @return drv_resp_t              - returns UNC_RC_SUCCESS on creating vbr successfully
+   *                                   /returns UNC_DRV_RC_ERR_GENERIC on failure
    */
 
-  drv_resp_code_t create_cmd(key_vbr_t& key_vbr, val_vbr_t& val_vbr,
-                             unc::driver::controller *ctr);
+  UncRespCode create_cmd(key_vbr_t& key_vbr,
+                         val_vbr_t& val_vbr,
+                         unc::driver::controller *ctr);
 
   /**
    * @brief                           - Constructs VBR update command and send
@@ -59,11 +60,12 @@ class OdcVbrCommand: public unc::driver::vbr_driver_command {
    * @param[in] key_vbr               - key structure of VBR
    * @param[in] val_vbr               - value structure of VBR
    * @param[in] ctr                   - Controller pointer
-   * @return drv_resp_code_t          - returns DRVAPI_RESPONSE_SUCCESS on updating vbr successfully
-   *                                    /returns DRVAPI_RESPONSE_FAILURE on failure
+   * @return UncRespCode              - returns UNC_RC_SUCCESS on updating vbr successfully
+   *                                    /returns UNC_DRV_RC_ERR_GENERIC on failure
    */
-  drv_resp_code_t update_cmd(key_vbr_t& key_vbr, val_vbr_t& val_vbr,
-                             unc::driver::controller* ctr);
+  UncRespCode update_cmd(key_vbr_t& key_vbr,
+                         val_vbr_t& val_vbr,
+                         unc::driver::controller* ctr);
 
   /**
    * @brief                           - Constructs VBR Delete command and send
@@ -71,28 +73,29 @@ class OdcVbrCommand: public unc::driver::vbr_driver_command {
    * @param[in] key_vbr               - key structure of VBR
    * @param[in] val_vbr               - value structure of VBR
    * @param[in] ctr                   - Controller pointer
-   * @return  drv_resp_code_t         - returns DRVAPI_RESPONSE_SUCCESS on deleting a vbr
-   *                                    / returns DRVAPI_RESPONSE_FAILURE on failure
+   * @return  UncRespCode             - returns UNC_RC_SUCCESS on deleting a vbr
+   *                                    / returns UNC_DRV_RC_ERR_GENERIC on failure
    */
-  drv_resp_code_t delete_cmd(key_vbr_t& key_vbr, val_vbr_t& val_vbr,
-                             unc::driver::controller *ctr);
+  UncRespCode delete_cmd(key_vbr_t& key_vbr,
+                         val_vbr_t& val_vbr,
+                         unc::driver::controller *ctr);
 
   /**
    * @brief                          - get vbr list - gets all the vbridge
    *                                   under particular vtn
    * @param[in]                      - vtn name
    * @param[in] ctr                  - Controller pointer
-   * @param[out] cfg_node_vector      - cfg_node_vector out parameter contains
+   * @param[out] cfg_node_vector     - cfg_node_vector out parameter contains
    *                                   list of vbridge present for specified vtn
    *                                   in controller
-   * @return drv_resp_code_t         - returns DRVAPI_RESPONSE_SUCCESS on
+   * @return UncRespCode             - returns UNC_RC_SUCCESS on
    *                                   retrieving the vtn child successfully/
-   *                                   returns DRVAPI_RESPONSE_FAILURE on fail
+   *                                   returns UNC_DRV_RC_ERR_GENERIC on fail
    */
-  drv_resp_code_t get_vbr_list(std::string vtnname,
-                                unc::driver::controller* ctr,
-                                std::vector<unc::vtndrvcache::ConfigNode *>
-                                &cfg_node_vector);
+  UncRespCode get_vbr_list(
+      std::string vtnname,
+      unc::driver::controller* ctr,
+      std::vector<unc::vtndrvcache::ConfigNode *> &cfg_node_vector);
 
   private:
   /**
@@ -110,17 +113,19 @@ class OdcVbrCommand: public unc::driver::vbr_driver_command {
   json_object* create_request_body(const val_vbr_t& val_vtn);
 
   /**
-   * @brief                    - parse the vbr response data
-   * @param[in] data           - data which is the response from controller
-   * @param[in] vtn_name       - vtn name
+   * @brief                      - parse the vbr response data
+   * @param[in] data             - data which is the response from controller
+   * @param[in] vtn_name         - vtn name
    * @param[out] cfg_node_vector - vector to which the resp to be pushed
-   * @return drv_resp_code_t   - returns DRVAPI_RESPONSE_SUCCESS on parsing vbr
-   *                             reponse data successfully/returns
-   *                             DRVAPI_RESPONSE_FAILURE on failure
+   * @return UncRespCode         - returns UNC_RC_SUCCESS on parsing vbr
+   *                               reponse data successfully/returns
+   *                               UNC_DRV_RC_ERR_GENERIC on failure
    */
-  drv_resp_code_t parse_vbr_response(char *data, std::string vtn_name,
-                                         unc::driver::controller* ctr,
-        std::vector< unc::vtndrvcache::ConfigNode *> &cfg_node_vector);
+  UncRespCode parse_vbr_response(
+      char *data,
+      std::string vtn_name,
+      unc::driver::controller* ctr,
+      std::vector< unc::vtndrvcache::ConfigNode *> &cfg_node_vector);
 
   /**
    * @brief                          - parse vbr information and append to the vector
@@ -128,16 +133,19 @@ class OdcVbrCommand: public unc::driver::vbr_driver_command {
    * @param[in] json_obj_vbr         - json object which is to be parsed
    * @param[in] arr_idx              - array index in int specifies the array
    *                                   index  -1 denotes no array
-   * @param[out] cfg_node_vector       - vector to which config node needs
+   * @param[out] cfg_node_vector     - vector to which config node needs
    *                                   to be pushed
-   * @return drv_resp_code_t         - returns DRVAPI_RESPONSE_SUCCESS on
+   * @return UncRespCode             - returns UNC_RC_SUCCESS on
    *                                   parsing vbr and appending to vector
    *                                   successfully/returns
-   *                                   DRVAPI_RESPONSE_FAILURE on failure
+   *                                   UNC_DRV_RC_ERR_GENERIC on failure
    */
-  drv_resp_code_t fill_config_node_vector(unc::driver::controller* ctr,
-      json_object *json_obj_vbr, std::string vtn_name, uint32_t arr_idx,
-          std::vector< unc::vtndrvcache::ConfigNode *> &cfg_node_vector);
+  UncRespCode fill_config_node_vector(
+      unc::driver::controller* ctr,
+      json_object *json_obj_vbr,
+      std::string vtn_name,
+      uint32_t arr_idx,
+      std::vector< unc::vtndrvcache::ConfigNode *> &cfg_node_vector);
 
   /**
    * @brief                      - read port map
@@ -152,12 +160,12 @@ class OdcVbrCommand: public unc::driver::vbr_driver_command {
    * @param[in]  - controller pointer
    * @param[in]  - parent key type pointer
    * @param[out] - list of configurations
-   * @retval     - DRVAPI_RESPONSE_SUCCESS / DRVAPI_RESPONSE_FAILURE
+   * @retval     - UNC_RC_SUCCESS / UNC_DRV_RC_ERR_GENERIC
    */
-  drv_resp_code_t fetch_config(unc::driver::controller* ctr,
-                               void* parent_key,
-                               std::vector<unc::vtndrvcache::ConfigNode *>
-                                 &cfgnode_vector);
+  UncRespCode fetch_config(
+      unc::driver::controller* ctr,
+      void* parent_key,
+      std::vector<unc::vtndrvcache::ConfigNode *> &cfgnode_vector);
 
   private:
   uint32_t age_interval_;
index ec4bd2820af67505e9127b30237dcd40ba2d8847..591433089d4a822e6803b863146fdbbfe8f6ca3f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013 NEC Corporation
+ * Copyright (c) 2013-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -13,6 +13,7 @@
 #include <rest_util.hh>
 #include <driver/driver_command.hh>
 #include <unc/upll_ipc_enum.h>
+#include <unc/pfcdriver_ipc_enum.h>
 #include <odc_driver_common_defs.hh>
 #include <vtn_conf_data_element_op.hh>
 #include <odc_controller.hh>
@@ -43,12 +44,13 @@ class OdcVbrVlanMapCommand: public unc::driver::vbrvlanmap_driver_command {
    * @param[in] key              - key structure of VBR_VLANMAP
    * @param[in] val              - value structure of VBR_VLANMAP
    * @param[in] conn             - Controller pointer
-   * @retval drv_resp_code_t     - returns DRVAPI_RESPONSE SUCCESS on creation
+   * @retval UncRespCode         - returns DRVAPI_RESPONSE SUCCESS on creation
    *                             - of VBR_VLANMAP successfully
-   *                               /returns DRVAPI_RESPONSE_FAILURE on failure
+   *                               /returns UNC_DRV_RC_ERR_GENERIC on failure
    */
-  drv_resp_code_t create_cmd(key_vlan_map_t& key, val_vlan_map_t& val,
-                             unc::driver::controller *conn);
+  UncRespCode create_cmd(key_vlan_map_t& key,
+                         pfcdrv_val_vlan_map_t& val,
+                         unc::driver::controller *conn);
 
   /**
    * @brief                      - Forms VBR_VLANMAP command and send it to
@@ -56,12 +58,13 @@ class OdcVbrVlanMapCommand: public unc::driver::vbrvlanmap_driver_command {
    * @param[in] key              - key structure of VBR_VLANMAP
    * @param[in] val              - value structure of VBR_VLANMAP
    * @param[in] conn             - Controller pointer
-   * @retval drv_resp_code_t     - returns DRVAPI_RESPONSE_SUCCESS on
+   * @retval UncRespCode         - returns UNC_RC_SUCCESS on
    *                             - updation of VBR_VLANMAP successfully
-   *                             - returns DRVAPI_RESPONSE_FAILURE on failure
+   *                             - returns UNC_DRV_RC_ERR_GENERIC on failure
    */
-  drv_resp_code_t update_cmd(key_vlan_map_t& key, val_vlan_map_t& val,
-                             unc::driver::controller *conn);
+  UncRespCode update_cmd(key_vlan_map_t& key,
+                         pfcdrv_val_vlan_map_t& val,
+                         unc::driver::controller *conn);
 
   /**
    * @brief                      - Deletes VBR_VLANMAP and send it to restclient
@@ -69,23 +72,25 @@ class OdcVbrVlanMapCommand: public unc::driver::vbrvlanmap_driver_command {
    * @param[in] key              - key structure of VBR_VLANMAP
    * @param[in] val              - value structure of VBR_VLANMAP
    * @param[in] conn             - Controller pointer
-   * @return drv_resp_code_t     - returns DRVAPI_RESPONSE_SUCCESS on deletion of
+   * @return UncRespCode         - returns UNC_RC_SUCCESS on deletion of
    *                             - VBRIf successfully /returns
-   *                             - DRVAPI_RESPONSE_FAILURE on failure
+   *                             - UNC_DRV_RC_ERR_GENERIC on failure
    */
-  drv_resp_code_t delete_cmd(key_vlan_map_t& key, val_vlan_map_t& val,
-                             unc::driver::controller *conn);
+  UncRespCode delete_cmd(key_vlan_map_t& key,
+                         pfcdrv_val_vlan_map_t& val,
+                         unc::driver::controller *conn);
 
   /**
    * @brief                      - Method to fetch child configurations for the parent kt
    * @param[in] ctr              - controller pointer
    * @param[in] parent_key       - parent key type pointer
    * @param[out] cfgnode_vector  - config node vector
-   * @retval                     - DRVAPI_RESPONSE_SUCCESS / DRVAPI_RESPONSE_FAILURE
+   * @retval                     - UNC_RC_SUCCESS / UNC_DRV_RC_ERR_GENERIC
    */
-  drv_resp_code_t fetch_config
-      (unc::driver::controller* ctr, void* parent_key,
-       std::vector<unc::vtndrvcache::ConfigNode *> &cfgnode_vector);
+  UncRespCode fetch_config(
+      unc::driver::controller* ctr,
+      void* parent_key,
+      std::vector<unc::vtndrvcache::ConfigNode *> &cfgnode_vector);
 
  private:
   /**
@@ -93,12 +98,13 @@ class OdcVbrVlanMapCommand: public unc::driver::vbrvlanmap_driver_command {
    * @param[in] parent_key       - parent key type pointer
    * @param[in] ctr              - controller pointer
    * @param[out] cfgnode_vector  - config node vector
-   * @return drv_resp_code_t     - returns DRVAPI_RESPONSE_SUCCESS on success
-   *                              /returns DRVAPI_RESPONSE_FAILURE on failure
+   * @return UncRespCode         - returns UNC_RC_SUCCESS on success
+   *                              /returns UNC_DRV_RC_ERR_GENERIC on failure
    */
-  drv_resp_code_t get_vbrvlanmap_list(void* parent_key,
-                            unc::driver::controller* ctr,
-    std::vector< unc::vtndrvcache::ConfigNode *> &cfgnode_vector);
+  UncRespCode get_vbrvlanmap_list(
+      void* parent_key,
+      unc::driver::controller* ctr,
+      std::vector< unc::vtndrvcache::ConfigNode *> &cfgnode_vector);
 
   /**
    * @brief                      - parse the VBR_VLANMAP data
@@ -106,12 +112,14 @@ class OdcVbrVlanMapCommand: public unc::driver::vbrvlanmap_driver_command {
    * @param[in] ctr              - controller pointer
    * @param[in] data             - data from which parse should happen
    * @param[out] cfgnode_vector  - config node vector
-   * @return drv_resp_code_t     - returns DRVAPI_RESPONSE_SUCCESS on parsing the
-   *                              response of vbrif/returns DRVAPI_RESPONSE_FAILURE on failure
+   * @return UncRespCode         - returns UNC_RC_SUCCESS on parsing the
+   *                              response of vbrif/returns UNC_DRV_RC_ERR_GENERIC on failure
    */
-  drv_resp_code_t parse_vbrvlanmap_response(void *parent_key,
-                      unc::driver::controller* ctr, char *data,
-       std::vector< unc::vtndrvcache::ConfigNode *> &cfgnode_vector);
+  UncRespCode parse_vbrvlanmap_response(
+      void *parent_key,
+      unc::driver::controller* ctr,
+      char *data,
+      std::vector< unc::vtndrvcache::ConfigNode *> &cfgnode_vector);
 
   /**
    * @brief                      - parse VBR_VLANMAP and append it to config
@@ -121,12 +129,15 @@ class OdcVbrVlanMapCommand: public unc::driver::vbrvlanmap_driver_command {
    * @param[in] json_obj         - json_object pointer contains the controller response
    * @param[in] arr_idx          - array index of vlanmap
    * @param[out] cfgnode_vector  - config node vector
-   * @return drv_resp_code_t     - returns DRVAPI_RESPONSE_SUCCESS on success
-   *                               / returns DRVAPI_RESPONSE_FAILURE on failure
+   * @return UncRespCode         - returns UNC_RC_SUCCESS on success
+   *                               / returns UNC_DRV_RC_ERR_GENERIC on failure
    */
-  drv_resp_code_t fill_config_node_vector(void *parent_key,
-    unc::driver::controller* ctr, json_object *jobj, uint32_t arr_idx,
-          std::vector< unc::vtndrvcache::ConfigNode *>&cfgnode_vector);
+  UncRespCode fill_config_node_vector(
+      void *parent_key,
+      unc::driver::controller* ctr,
+      json_object *jobj,
+      uint32_t arr_idx,
+      std::vector< unc::vtndrvcache::ConfigNode *>&cfgnode_vector);
 
   /**
    * @brief                      - Constructs url for VBR_VLANMAP
@@ -144,7 +155,7 @@ class OdcVbrVlanMapCommand: public unc::driver::vbrvlanmap_driver_command {
    *                               json_object pointer
    */
   json_object* create_request_body(key_vlan_map_t& vlanmap_key,
-                                   val_vlan_map_t& vlanmap_val,
+                                   pfcdrv_val_vlan_map_t& vlanmap_val,
                                    const std::string &logical_port_id);
 
   /*
@@ -153,7 +164,7 @@ class OdcVbrVlanMapCommand: public unc::driver::vbrvlanmap_driver_command {
    * @return                     - returns ODC_DRV_SUCCESS/ ODC_DRV_FAILURE
    */
   odc_drv_resp_code_t validate_logical_port_id(
-                                       const std::string& logical_port_id);
+      const std::string& logical_port_id);
 
   /**
    * @brief                      - Generate vlanmap id in the format
@@ -172,23 +183,25 @@ class OdcVbrVlanMapCommand: public unc::driver::vbrvlanmap_driver_command {
    * @param[in] vlanmap_key      - key structure of VBR_VLANMAP
    * @param[in] vlanmap_val      - value structure of VBR_VLANMAP
    * @param[in] ctr_ptr          - controller pointer
-   * @retval drv_resp_code_t     - returns DRVAPI_RESPONSE_SUCCESS/
-   *                             - DRVAPI_RESPONSE_FAILURE
+   * @retval UncRespCode         - returns UNC_RC_SUCCESS/
+   *                             - UNC_DRV_RC_ERR_GENERIC
    */
-  drv_resp_code_t create_update_cmd(key_vlan_map_t& vlanmap_key,
-                                    val_vlan_map_t& vlanmap_val,
-                                    unc::driver::controller* ctr_ptr);
+  UncRespCode create_update_cmd(key_vlan_map_t& vlanmap_key,
+                                pfcdrv_val_vlan_map_t& vlanmap_val,
+                                unc::driver::controller* ctr_ptr);
   /**
    * @brief                      - Delete vlan-map configuration from controller by
    *                               sending request to rest client interface
    * @param[in] vlanmap_key      - key structure of VBR_VLANMAP
    * @param[in] ctr_ptr          - controller pointer
    * @param[in]  port_id         - port id
-   * @retval drv_resp_code_t     - returns DRVAPI_RESPONSE_SUCCESS/
-   *                             - DRVAPI_RESPONSE_FAILURE
+   * @retval UncRespCode         - returns UNC_RC_SUCCESS/
+   *                             - UNC_DRV_RC_ERR_GENERIC
    */
-  drv_resp_code_t del_existing_vlanmap(key_vlan_map_t& vlanmap_key,
-      unc::driver::controller* ctr_ptr, const std::string &port_id);
+  UncRespCode del_existing_vlanmap(
+      key_vlan_map_t& vlanmap_key,
+      unc::driver::controller* ctr_ptr,
+      const std::string &port_id);
 
   /**
    * @brief                      - generates vlan id from the vlan-map vector
@@ -210,15 +223,15 @@ class OdcVbrVlanMapCommand: public unc::driver::vbrvlanmap_driver_command {
    * @param[out]is_switch_exist  - pfc_bool_t variable set to PFC_TRUE if switch
    *                               already exists in controller
    * @param[out] port_id         - existing switch id in controller
-   * @return drv_resp_code_t     - returns
-   *                               DRVAPI_RESPONSE_SUCCESS/DRVAPI_RESPONSE_FAILURE
+   * @return UncRespCode         - returns
+   *                               UNC_RC_SUCCESS/UNC_DRV_RC_ERR_GENERIC
    */
-  drv_resp_code_t check_switch_already_exists(key_vlan_map_t &key_vlan_map,
-                                              val_vlan_map_t &val_vlan_map,
-                                              const std::string &logical_port,
-                                              unc::driver::controller *ctr_ptr,
-                                              pfc_bool_t &is_switch_exist,
-                                              std::string &port_id);
+  UncRespCode check_switch_already_exists(key_vlan_map_t &key_vlan_map,
+                                          pfcdrv_val_vlan_map_t &val_vlan_map,
+                                          const std::string &logical_port,
+                                          unc::driver::controller *ctr_ptr,
+                                          pfc_bool_t &is_switch_exist,
+                                          std::string &port_id);
 
   /*
    * @brief                      - Check  "ANY" vlan-id (vlan-id not associated
@@ -229,14 +242,14 @@ class OdcVbrVlanMapCommand: public unc::driver::vbrvlanmap_driver_command {
    * @param[out]is_switch_exist  - pfc_bool_t variable set to PFC_TRUE if "ANY"
    *                               already exists in controller
    * @param[out] port_id         - existing "ANY" vlan-id stored in controller
-   * @return drv_resp_code_t     - returns
-   *                               DRVAPI_RESPONSE_SUCCESS/DRVAPI_RESPONSE_FAILURE
+   * @return UncRespCode         - returns
+   *                               UNC_RC_SUCCESS/UNC_DRV_RC_ERR_GENERIC
    */
-  drv_resp_code_t check_ANY_already_exists(key_vlan_map_t &key_vlan_map,
-                                           val_vlan_map_t &val_vlan_map,
-                                           unc::driver::controller *ctr,
-                                           pfc_bool_t &is_switch_exist,
-                                           std::string &port_id);
+  UncRespCode check_ANY_already_exists(key_vlan_map_t &key_vlan_map,
+                                       pfcdrv_val_vlan_map_t &val_vlan_map,
+                                       unc::driver::controller *ctr,
+                                       pfc_bool_t &is_switch_exist,
+                                       std::string &port_id);
 
   /*
    * @brief                      - Validates VLAN exists or not
@@ -247,22 +260,22 @@ class OdcVbrVlanMapCommand: public unc::driver::vbrvlanmap_driver_command {
    * @param[out]is_switch_exist  - pfc_bool_t variable set to PFC_TRUE if
    *                               "ANY"/switch id already exists in controller
    * @param[out] port_id         - existing "ANY"/SW id stored in the controller
-   * @return drv_resp_code_t     - returns
-   *                               DRVAPI_RESPONSE_SUCCESS/DRVAPI_RESPONSE_FAILURE
+   * @return UncRespCode         - returns
+   *                               UNC_RC_SUCCESS/UNC_DRV_RC_ERR_GENERIC
    */
-  drv_resp_code_t validate_vlan_exist(key_vlan_map_t &key_vlan_map,
-                                      val_vlan_map_t &val_vlan_map,
-                                      const std::string &logical_port,
-                                      unc::driver::controller *ctr,
-                                      pfc_bool_t &is_switch_exist,
-                                      std::string &port_id);
+  UncRespCode validate_vlan_exist(key_vlan_map_t &key_vlan_map,
+                                  pfcdrv_val_vlan_map_t &val_vlan_map,
+                                  const std::string &logical_port,
+                                  unc::driver::controller *ctr,
+                                  pfc_bool_t &is_switch_exist,
+                                  std::string &port_id);
 
   /**
    * @brief                      - Deletes particular entry from vlan-map vector
    * @param[in] ctr_             - controller pointer
    * @param[in] vtn_vbr_vlan     - this entry needs to be deleted
    */
-  void delete_from_vector(unc::driver::controller *ctr ,
+  void delete_from_vector(unc::driver::controller *ctr,
                           std::string vtn_vbr_vlan);
 
   /**
@@ -270,7 +283,8 @@ class OdcVbrVlanMapCommand: public unc::driver::vbrvlanmap_driver_command {
    * @param[in] ctr              - controller pointer
    * @param[in] vtn_vbr_vlan     - this entry needs to be updated into vector
    */
-  void update_vector(unc::driver::controller *ctr , std::string vtn_vbr_vlan);
+  void update_vector(unc::driver::controller *ctr,
+                     std::string vtn_vbr_vlan);
 
   /**
    * @brief                      - parses the vector and gets vtn, vbr, sw id as out param
@@ -299,8 +313,8 @@ class OdcVbrVlanMapCommand: public unc::driver::vbrvlanmap_driver_command {
    * @param[in][out]            - logical_port_id
    * @return                    - odc_drv_resp_code_t
    */
-  odc_drv_resp_code_t check_logical_port_id_format(std::string&
-                                                   logical_port_id);
+  odc_drv_resp_code_t check_logical_port_id_format(
+      std::string& logical_port_id);
 
   /**
    * @brief                     - converts the format of logical
index da53d52dcd9530dd500614d262fee576b78e2890..e337db549119ef9d8739e9771ed1d5a2ac2f33d7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013 NEC Corporation
+ * Copyright (c) 2013-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -44,33 +44,36 @@ class OdcVbrIfCommand: public unc::driver::vbrif_driver_command {
    * @param[in]  - value structure of VBRIf
    * @param[in]  - Controller connection information
    * @retval     - returns DRVAPI_RESPONSE SUCCESS on creation of vbrif successfully
-   *               /returns DRVAPI_RESPONSE_FAILURE on failure
+   *               /returns UNC_DRV_RC_ERR_GENERIC on failure
    */
-  drv_resp_code_t create_cmd(key_vbr_if_t& key, pfcdrv_val_vbr_if_t& val,
-                             unc::driver::controller *conn);
+  UncRespCode create_cmd(key_vbr_if_t& key,
+                         pfcdrv_val_vbr_if_t& val,
+                         unc::driver::controller *conn);
 
   /**
    * @brief                      - Updates VBRIf
    * @param[in] key              - key structure of VBRIf
    * @param[in] val              - value structure of VBRIf
    * @param[in] conn             - Controller connection information
-   * @retval drv_resp_code_t     - returns DRVAPI_RESPONSE_SUCCESS on updation of VBRIf
-   *                               successfully/returns DRVAPI_RESPONSE_FAILURE on failure
+   * @retval UncRespCode         - returns UNC_RC_SUCCESS on updation of VBRIf
+   *                               successfully/returns UNC_DRV_RC_ERR_GENERIC on failure
    */
-  drv_resp_code_t update_cmd(key_vbr_if_t& key, pfcdrv_val_vbr_if_t& val,
-                             unc::driver::controller *conn);
+  UncRespCode update_cmd(key_vbr_if_t& key,
+                         pfcdrv_val_vbr_if_t& val,
+                         unc::driver::controller *conn);
 
   /**
    * @brief                    - Deletes VBRIf
    * @param[in] key            - key structure of VBRIf
    * @param[in] val            - value structure of VBRIf
    * @param[in] conn           - Controller connection information
-   * @return drv_resp_code_t   - returns DRVAPI_RESPONSE_SUCCESS on deletion of
+   * @return UncRespCode       - returns UNC_RC_SUCCESS on deletion of
    *                             VBRIf successfully /returns
-   *                             DRVAPI_RESPONSE_FAILURE on failure
+   *                             UNC_DRV_RC_ERR_GENERIC on failure
    */
-  drv_resp_code_t delete_cmd(key_vbr_if_t& key, pfcdrv_val_vbr_if_t& val,
-                             unc::driver::controller *conn);
+  UncRespCode delete_cmd(key_vbr_if_t& key,
+                         pfcdrv_val_vbr_if_t& val,
+                         unc::driver::controller *conn);
 
   /**
    * @brief                           - get all the vbr child
@@ -78,21 +81,26 @@ class OdcVbrIfCommand: public unc::driver::vbrif_driver_command {
    * @param[in] vbr_name              - vbr name
    * @param[in] ctr                   - controller pointer
    * @param[out] cfgnode_vector       - config node vector
-   * @return drv_resp_code_t          - returns DRVAPI_RESPONSE_SUCCESS on successfully retieving a vbr
-   *                                    child /returns DRVAPI_RESPONSE_FAILURE on failure
+   * @return UncRespCode              - returns UNC_RC_SUCCESS on successfully retieving a vbr
+   *                                    child /returns UNC_DRV_RC_ERR_GENERIC on failure
    */
-  drv_resp_code_t get_vbrif_list(std::string vtn_name,
-         std::string vbr_name, unc::driver::controller* ctr,
-       std::vector< unc::vtndrvcache::ConfigNode *> &cfgnode_vector);
+  UncRespCode get_vbrif_list(
+      std::string vtn_name,
+      std::string vbr_name,
+      unc::driver::controller* ctr,
+      std::vector< unc::vtndrvcache::ConfigNode *> &cfgnode_vector);
+
   /**
    * @brief      - Method to fetch child configurations for the parent kt
    * @param[in]  - controller pointer
    * @param[in]  - parent key type pointer
    * @param[out] - list of configurations
-   * @retval     - DRVAPI_RESPONSE_SUCCESS / DRVAPI_RESPONSE_FAILURE
+   * @retval     - UNC_RC_SUCCESS / UNC_DRV_RC_ERR_GENERIC
    */
-  drv_resp_code_t fetch_config(unc::driver::controller* ctr, void* parent_key,
-                 std::vector<unc::vtndrvcache::ConfigNode *> &cfgnode_vector);
+  UncRespCode fetch_config(
+      unc::driver::controller* ctr,
+      void* parent_key,
+      std::vector<unc::vtndrvcache::ConfigNode *> &cfgnode_vector);
 
  private:
   /**
@@ -103,13 +111,17 @@ class OdcVbrIfCommand: public unc::driver::vbrif_driver_command {
    * @param[in] ctr                   - controller pointer
    * @param[in] data                  - data from which parse should happen
    * @param[out] cfgnode_vector       - config node vector
-   * @return drv_resp_code_t          - returns DRVAPI_RESPONSE_SUCCESS on parsing the
-   *                                    response of vbrif/returns DRVAPI_RESPONSE_FAILURE on failure
+   * @return UncRespCode              - returns UNC_RC_SUCCESS on parsing the
+   *                                    response of vbrif/returns UNC_DRV_RC_ERR_GENERIC on failure
    */
-  drv_resp_code_t parse_vbrif_response(std::string vtn_name,
-                        std::string vbr_name, std::string url,
-                       unc::driver::controller* ctr, char *data,
-  std::vector< unc::vtndrvcache::ConfigNode *> &cfgnode_vector);
+  UncRespCode parse_vbrif_response(
+      std::string vtn_name,
+      std::string vbr_name,
+      std::string url,
+      unc::driver::controller* ctr,
+      char *data,
+      std::vector< unc::vtndrvcache::ConfigNode *> &cfgnode_vector);
+
   /**
    * @brief                       - parse vbr if and append it to vector
    * @param[in] vtn_name          - vtn name
@@ -119,15 +131,17 @@ class OdcVbrIfCommand: public unc::driver::vbrif_driver_command {
    * @param[in] url               - url to send request
    * @param[in] ctr               - controller pointer
    * @param[out] cfgnode_vector   - config node vector
-   * @return drv_resp_code_t      - returns DRVAPI_RESPONSE_SUCCESS on parsing vbrif and appending
-   *                                vector/ returns DRVAPI_RESPONSE_FAILURE on failure
-   */
-  drv_resp_code_t fill_config_node_vector(std::string vtn_name,
-                                  std::string vbr_name, json_object *json_obj,
-                                            uint32_t arr_idx, std::string url,
-                                                 unc::driver::controller* ctr,
-                  std::vector< unc::vtndrvcache::ConfigNode *>&cfgnode_vector);
-
+   * @return UncRespCode          - returns UNC_RC_SUCCESS on parsing vbrif and appending
+   *                                vector/ returns UNC_DRV_RC_ERR_GENERIC on failure
+   */
+  UncRespCode fill_config_node_vector(
+      std::string vtn_name,
+      std::string vbr_name,
+      json_object *json_obj,
+      uint32_t arr_idx,
+      std::string url,
+      unc::driver::controller* ctr,
+      std::vector< unc::vtndrvcache::ConfigNode *>&cfgnode_vector);
 
   /**
    * @brief                   - read portmap
@@ -137,7 +151,9 @@ class OdcVbrIfCommand: public unc::driver::vbrif_driver_command {
    * return json_object       - json object
    */
   json_object*  read_portmap(unc::driver::controller* ctr,
-                                             std::string url, int &resp_code);
+                             std::string url,
+                             int &resp_code);
+
     /**
    * @brief                  - Constructs url for vbrif
    * @param[in] vbrif_key    - key structure of vbrif key structure
@@ -166,16 +182,16 @@ class OdcVbrIfCommand: public unc::driver::vbrif_driver_command {
    * @param[in]   - logical_port_id which needs to be validated
    * @return      - returns ODC_DRV_SUCCESS/ ODC_DRV_FAILURE
    */
-  odc_drv_resp_code_t validate_logical_port_id(const std::string&
-                                               logical_port_id);
+  odc_drv_resp_code_t validate_logical_port_id(
+      const std::string& logical_port_id);
 
   /**
    * @brief                     - checks the logical port id format
    * @param[in][out]            - logical_port_id
    * @return                    - odc_drv_resp_code_t
    */
-  odc_drv_resp_code_t check_logical_port_id_format(std::string&
-                                                   logical_port_id);
+  odc_drv_resp_code_t check_logical_port_id_format(
+      std::string& logical_port_id);
 
   /**
    * @brief                     - converts the format of logical
index fe68be966a591cd0c6aab3116781bb2730eab267..56ead42c575db094b89041f56b5f0a5127934f36 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013 NEC Corporation
+ * Copyright (c) 2013-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -43,12 +43,12 @@ class OdcVtnCommand: public unc::driver::vtn_driver_command {
    * @param[in] key_vtn_t            - key structure of VTN
    * @param[in] val_vtn_t            - value structure of VTN
    * @param[in] ctr                  - Controller pointer
-   * @return                         - returns DRVAPI_RESPONSE_SUCCESS on
+   * @return                         - returns UNC_RC_SUCCESS on
    *                                   creation of vtn/ returns
-   *                                   DRVAPI_RESPONSE_FAILURE on failure
+   *                                   UNC_DRV_RC_ERR_GENERIC on failure
    */
-  drv_resp_code_t create_cmd(key_vtn_t& key, val_vtn_t& val,
-                             unc::driver::controller *ctr);
+  UncRespCode create_cmd(key_vtn_t& key, val_vtn_t& val,
+                         unc::driver::controller *ctr);
 
   /**
    * @brief                          - Frames VTN update command and uses rest client
@@ -56,12 +56,12 @@ class OdcVtnCommand: public unc::driver::vtn_driver_command {
    * @param[in] key_vtn_t            - key structure of VTN
    * @param[in] val_vtn_t            - value structure of VTN
    * @param[in] ctr                  - Controller pointer
-   * @return                         - returns DRVAPI_RESPONSE_SUCCESS on
+   * @return                         - returns UNC_RC_SUCCESS on
    *                                   updation of vtn /returns
-   *                                   DRVAPI_RESPONSE_FAILURE on failure
+   *                                   UNC_DRV_RC_ERR_GENERIC on failure
    */
-  drv_resp_code_t update_cmd(key_vtn_t& key, val_vtn_t& val,
-                             unc::driver::controller *ctr);
+  UncRespCode update_cmd(key_vtn_t& key, val_vtn_t& val,
+                         unc::driver::controller *ctr);
 
   /**
    * @brief                          - Frames VTN delete command and uses rest
@@ -69,35 +69,36 @@ class OdcVtnCommand: public unc::driver::vtn_driver_command {
    * @param[in] key_vtn_t            - key structure of VTN
    * @param[in] val_vtn_t            - value structure of VTN
    * @param[in] ctr                  - Controller pointer
-   * @return                         - returns DRVAPI_RESPONSE_SUCCESS on
-   *                                   deletion/returns DRVAPI_RESPONSE_FAILURE
+   * @return                         - returns UNC_RC_SUCCESS on
+   *                                   deletion/returns UNC_DRV_RC_ERR_GENERIC
    *                                   on failure
    */
-  drv_resp_code_t delete_cmd(key_vtn_t& key, val_vtn_t& val,
-                             unc::driver::controller *ctr);
+  UncRespCode delete_cmd(key_vtn_t& key, val_vtn_t& val,
+                         unc::driver::controller *ctr);
   /**
    * @brief                          - get all the vtns from the VTN Manager
    * @param[in] ctr                  - Controller pointer
    * @param[out] cfg_node_vector      - cfg_node_vector - out parameter contains
    *                                   list of vtns present in controller
-   * @return drv_resp_code_t         - returns DRVAPI_RESPONSE_SUCCESS on
+   * @return UncRespCode         - returns UNC_RC_SUCCESS on
    *                                   success of read all operation/returns
-   *                                   DRVAPI_RESPONSE_FAILURE on failure
+   *                                   UNC_DRV_RC_ERR_GENERIC on failure
    */
-  drv_resp_code_t get_vtn_list(unc::driver::controller* ctr,
-                 std::vector<unc::vtndrvcache::ConfigNode *> &cfg_node_vector);
+  UncRespCode get_vtn_list(
+      unc::driver::controller* ctr,
+      std::vector<unc::vtndrvcache::ConfigNode *> &cfg_node_vector);
 
   /**
    * @brief      - Method to fetch child configurations for the parent kt
    * @param[in]  - controller pointer
    * @param[in]  - parent key type pointer
    * @param[out] - list of configurations
-   * @retval     - DRVAPI_RESPONSE_SUCCESS / DRVAPI_RESPONSE_FAILURE
+   * @retval     - UNC_RC_SUCCESS / UNC_DRV_RC_ERR_GENERIC
    */
-  drv_resp_code_t fetch_config(unc::driver::controller* ctr,
-                                     void* parent_key,
-                                     std::vector<unc::vtndrvcache::ConfigNode *>
-                                       &cfgnode_vector);
+  UncRespCode fetch_config(
+      unc::driver::controller* ctr,
+      void* parent_key,
+      std::vector<unc::vtndrvcache::ConfigNode *> &cfgnode_vector);
 
  private:
   /**
@@ -106,17 +107,18 @@ class OdcVtnCommand: public unc::driver::vtn_driver_command {
    *                                   parsed
    * @param[in] arr_idx              - array index - in int specifies the array
    *                                   index  -1 denotes no array
-   * @param[out] cfg_node_vector      - vector to which config node needs to be
+   * @param[out] cfg_node_vector     - vector to which config node needs to be
    *                                   pushed
-   * @return drv_resp_code_t         - returns DRVAPI_RESPONSE_SUCCESS on
+   * @return UncRespCode             - returns UNC_RC_SUCCESS on
    *                                   parsing vtn and appending to vector
    *                                   successfully/returns
-   *                                   DRVAPI_RESPONSE_FAILURE on failure
+   *                                   UNC_DRV_RC_ERR_GENERIC on failure
    */
-  drv_resp_code_t fill_config_node_vector(json_object *json_obj_vtn,
-                                   int arr_idx,
-                                   std::vector<unc::vtndrvcache::ConfigNode *>
-                                   &cfg_node_vector);
+  UncRespCode fill_config_node_vector(
+      json_object *json_obj_vtn,
+      int arr_idx,
+      std::vector<unc::vtndrvcache::ConfigNode *> &cfg_node_vector);
+
   /**
    * @brief                 - Creates the Request Body
    * @param[in] val         - VTN value structure val_vtn_t
@@ -125,15 +127,16 @@ class OdcVtnCommand: public unc::driver::vtn_driver_command {
   json_object* create_request_body(const val_vtn_t& val_vtn);
 
   /**
-   * @brief                     - parse the vtn response data
-   * @param[in]                 - data which is the response from the controller
+   * @brief                      - parse the vtn response data
+   * @param[in]                  - data which is the response from the controller
    * @param[out] cfg_node_vector - vector to which the resp to be pushed
-   * @return drv_resp_code_t    - returns DRVAPI_RESPONSE_SUCCESS on parsing the
-   *                              response data/returns DRVAPI_RESPONSE_FAILURE
+   * @return UncRespCode         - returns UNC_RC_SUCCESS on parsing the
+   *                              response data/returns UNC_DRV_RC_ERR_GENERIC
    *                              on failure
    */
-  drv_resp_code_t parse_vtn_response(char *data,
-                std::vector< unc::vtndrvcache::ConfigNode *> &cfg_node_vector);
+  UncRespCode parse_vtn_response(
+      char *data,
+      std::vector< unc::vtndrvcache::ConfigNode *> &cfg_node_vector);
 
  private:
   uint32_t idle_timeout_;
index 4ce8b5316e77b5b63920d59643d0fd56f6420641..0d50260c110d9f8823757daef23cb5528534fea4 100644 (file)
@@ -24,7 +24,7 @@ OdcLink::~OdcLink() {
 
 
 // Get link information in the controller
-drv_resp_code_t OdcLink::fetch_config(
+UncRespCode OdcLink::fetch_config(
     unc::driver::controller *ctr_ptr,
     const pfc_bool_t &cache_empty) {
   ODC_FUNC_TRACE;
@@ -46,23 +46,23 @@ drv_resp_code_t OdcLink::fetch_config(
 
   if (NULL == response) {
     pfc_log_error("Error Occured while getting httpresponse");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   int resp_code = response->code;
   if (HTTP_200_RESP_OK != resp_code) {
     pfc_log_error("Response code is not OK , resp : %d", resp_code);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   if (NULL != response->write_data) {
     if (NULL != response->write_data->memory) {
       char *data = response->write_data->memory;
       pfc_log_trace("All Linkes : %s", data);
-      drv_resp_code_t ret_val =  parse_link_response(
+      UncRespCode ret_val =  parse_link_response(
                               ctr_ptr, data, cfgnode_vector);
       pfc_log_debug("Number of LINK present, %d",
                     static_cast<int>(cfgnode_vector.size()));
-      if (ret_val != DRVAPI_RESPONSE_SUCCESS) {
+      if (UNC_RC_SUCCESS != ret_val) {
         pfc_log_error("Error occured while parsing");
         return ret_val;
       }
@@ -72,11 +72,11 @@ drv_resp_code_t OdcLink::fetch_config(
     }
   }
   pfc_log_error("Response data is NULL");
-  return DRVAPI_RESPONSE_FAILURE;;
+  return UNC_DRV_RC_ERR_GENERIC;
 }
 
 // parse each LINK append to map maintained
-drv_resp_code_t OdcLink::fill_edge_value_map(
+UncRespCode OdcLink::fill_edge_value_map(
     json_object *json_obj_node_prop,
     int arr_idx,
     std::map<std::string, std::string> &edge_prop_map,
@@ -91,7 +91,7 @@ drv_resp_code_t OdcLink::fill_edge_value_map(
   if ((restjson::REST_OP_SUCCESS != ret_val) ||
       (json_object_is_type(json_obj_edge, json_type_null))) {
     pfc_log_error(" Error while parsing edge or json type NULL");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   json_object *json_obj_tail_conn = NULL;
@@ -102,7 +102,7 @@ drv_resp_code_t OdcLink::fill_edge_value_map(
   if ((restjson::REST_OP_SUCCESS != ret_val) ||
       (json_object_is_type(json_obj_tail_conn, json_type_null))) {
     pfc_log_error(" Error while parsing tail connector or json type NULL");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   json_object *json_obj_tail_node = NULL;
@@ -114,7 +114,7 @@ drv_resp_code_t OdcLink::fill_edge_value_map(
   if ((restjson::REST_OP_SUCCESS != ret_val) ||
       (json_object_is_type(json_obj_tail_node, json_type_null))) {
     pfc_log_error(" Error while parsing node or json_node NULL");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   std::string tail_node_id = "";
@@ -126,7 +126,7 @@ drv_resp_code_t OdcLink::fill_edge_value_map(
   if ((restjson::REST_OP_SUCCESS != ret_val) ||
       (tail_node_id.empty())) {
     pfc_log_error("Error while parsing node_id");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   std::string tail_id   = "";
   ret_val = restjson::JsonBuildParse::parse(json_obj_tail_conn,
@@ -137,7 +137,7 @@ drv_resp_code_t OdcLink::fill_edge_value_map(
   if ((restjson::REST_OP_SUCCESS != ret_val) ||
       (tail_id.empty())) {
     pfc_log_error(" Error while parsing type id");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   json_object *json_obj_head_conn = NULL;
@@ -149,7 +149,7 @@ drv_resp_code_t OdcLink::fill_edge_value_map(
   if ((restjson::REST_OP_SUCCESS != ret_val) ||
       (json_object_is_type(json_obj_head_conn, json_type_null))) {
     pfc_log_error(" Error while parsing head connector or json type NULL");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   std::string head_id = "";
@@ -161,7 +161,7 @@ drv_resp_code_t OdcLink::fill_edge_value_map(
   if ((restjson::REST_OP_SUCCESS != ret_val) ||
       (head_id.empty())) {
     pfc_log_error("Error while parsing head conn id");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   json_object *json_obj_head_node = NULL;
   ret_val = restjson::JsonBuildParse::parse(json_obj_head_conn,
@@ -172,7 +172,7 @@ drv_resp_code_t OdcLink::fill_edge_value_map(
   if ((restjson::REST_OP_SUCCESS != ret_val) ||
       (json_object_is_type(json_obj_head_node, json_type_null))) {
     pfc_log_error(" Error while parsing head connector node or json type NULL");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   std::string head_node_id = "";
@@ -184,7 +184,7 @@ drv_resp_code_t OdcLink::fill_edge_value_map(
   if ((restjson::REST_OP_SUCCESS != ret_val) ||
       (head_node_id.empty())) {
     pfc_log_error("Error while parsing head conn id");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   json_object *json_obj_prop = NULL;
@@ -196,7 +196,7 @@ drv_resp_code_t OdcLink::fill_edge_value_map(
   if ((restjson::REST_OP_SUCCESS != ret_val) ||
       (json_object_is_type(json_obj_prop, json_type_null))) {
     pfc_log_error(" Error while parsing json_obj_prop or json type NULL");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   json_object *json_obj_prop_name = NULL;
@@ -208,7 +208,7 @@ drv_resp_code_t OdcLink::fill_edge_value_map(
   if ((restjson::REST_OP_SUCCESS != ret_val) ||
       (json_object_is_type(json_obj_prop_name, json_type_null))) {
     pfc_log_error(" Error while parsing json_obj_prop_name or json type NULL");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   std::string prop_name = "";
@@ -220,7 +220,7 @@ drv_resp_code_t OdcLink::fill_edge_value_map(
   if ((restjson::REST_OP_SUCCESS != ret_val) ||
       (prop_name.empty())) {
     pfc_log_error("Error while parsing prop name value");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   json_object *json_obj_prop_state = NULL;
@@ -232,7 +232,7 @@ drv_resp_code_t OdcLink::fill_edge_value_map(
   if ((restjson::REST_OP_SUCCESS != ret_val) ||
       (json_object_is_type(json_obj_prop_state, json_type_null))) {
     pfc_log_error(" Error while parsing json_obj_prop_state or json type NULL");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   uint state_value = 0;
@@ -243,7 +243,7 @@ drv_resp_code_t OdcLink::fill_edge_value_map(
 
   if (restjson::REST_OP_SUCCESS != ret_val) {
     pfc_log_error("Error while parsing prop state value");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   json_object *json_obj_prop_config = NULL;
@@ -253,7 +253,7 @@ drv_resp_code_t OdcLink::fill_edge_value_map(
       (json_object_is_type(json_obj_prop_config, json_type_null))) {
     pfc_log_error(" Error while parsing json_obj_prop_config"
                   "or json type NULL");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   uint config_value = 0;
@@ -264,7 +264,7 @@ drv_resp_code_t OdcLink::fill_edge_value_map(
 
   if (restjson::REST_OP_SUCCESS != ret_val) {
     pfc_log_error("Error while parsing prop config value");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   std::string tail_conn_prop = "";
@@ -306,31 +306,31 @@ drv_resp_code_t OdcLink::fill_edge_value_map(
   edge_prop_map[tail_conn_prop] = head_conn_prop;
   pfc_log_trace("Entry in edge prop map is key : %s, val : %s",
                 tail_conn_prop.c_str(), head_conn_prop.c_str());
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 //  Compare whether cache empty or not
-drv_resp_code_t OdcLink::compare_with_cache(
+UncRespCode OdcLink::compare_with_cache(
     unc::driver::controller *ctr_ptr,
     const pfc_bool_t &cache_empty,
     std::vector<unc::vtndrvcache::ConfigNode *> &cfgnode_vector) {
   ODC_FUNC_TRACE;
   if (NULL == ctr_ptr->physical_port_cache) {
     pfc_log_error("cache pointer is empty");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   std::list<std::string> link_list;
-  drv_resp_code_t ret_val = DRVAPI_RESPONSE_FAILURE;
+  UncRespCode ret_val = UNC_DRV_RC_ERR_GENERIC;
   if (PFC_TRUE == cache_empty) {
     for (std::vector<unc::vtndrvcache::ConfigNode *>::iterator it =
          cfgnode_vector.begin(); it != cfgnode_vector.end(); ++it) {
       unc::vtndrvcache::ConfigNode *cfgnode_cache = *it;
       if (NULL == cfgnode_cache) {
         pfc_log_error("cfgnode_cache is NULL");
-        return DRVAPI_RESPONSE_FAILURE;
+        return UNC_DRV_RC_ERR_GENERIC;
       }
       ret_val = add_event(ctr_ptr, cfgnode_cache, link_list);
-      if (ret_val != DRVAPI_RESPONSE_SUCCESS) {
+      if (UNC_RC_SUCCESS != ret_val) {
         pfc_log_error("Error in adding to cache");
         return ret_val;
       }
@@ -339,7 +339,7 @@ drv_resp_code_t OdcLink::compare_with_cache(
     ret_val = verify_in_cache(ctr_ptr, cfgnode_vector, link_list);
     return ret_val;
   }
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 //  Notify physical about the link event
@@ -391,7 +391,7 @@ void OdcLink::update_list(key_link_t *key_link,
 }
 
 //  Add event for Link
-drv_resp_code_t OdcLink::add_event(unc::driver::controller *ctr_ptr,
+UncRespCode OdcLink::add_event(unc::driver::controller *ctr_ptr,
                                    unc::vtndrvcache::ConfigNode *cfg_node,
                                    std::list<std::string> &link_list) {
   ODC_FUNC_TRACE;
@@ -405,7 +405,7 @@ drv_resp_code_t OdcLink::add_event(unc::driver::controller *ctr_ptr,
 
   if ((NULL == key_link) || (NULL == val_link)) {
     pfc_log_error("key_link/val_link is NULL");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   //  Send Notification to UPPL
   notify_physical(unc::driver::VTN_LINK_CREATE,
@@ -414,9 +414,9 @@ drv_resp_code_t OdcLink::add_event(unc::driver::controller *ctr_ptr,
                   NULL);
 
   //  Append to cache
-  drv_resp_code_t  ret_val =
+  UncRespCode  ret_val =
       ctr_ptr->physical_port_cache->append_Physical_attribute_node(cfg_node);
-  if (ret_val != DRVAPI_RESPONSE_SUCCESS) {
+  if (UNC_RC_SUCCESS != ret_val) {
     pfc_log_error(" Error in adding to cache");
     delete_config_node(cfg_node);
     return ret_val;
@@ -426,7 +426,7 @@ drv_resp_code_t OdcLink::add_event(unc::driver::controller *ctr_ptr,
 }
 
 // Update event for Link
-drv_resp_code_t OdcLink::update_event(unc::driver::controller *ctr_ptr,
+UncRespCode OdcLink::update_event(unc::driver::controller *ctr_ptr,
                                       unc::vtndrvcache::ConfigNode *cfg_node,
                                       val_link_st_t *val_old_link,
                                       std::list<std::string> &link_list) {
@@ -441,7 +441,7 @@ drv_resp_code_t OdcLink::update_event(unc::driver::controller *ctr_ptr,
   if ((NULL == key_link) || (NULL == val_link) ||
       (NULL == val_old_link)) {
     pfc_log_error("key_link/val_link is NULL");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   // Send notification to UPPL
@@ -451,9 +451,9 @@ drv_resp_code_t OdcLink::update_event(unc::driver::controller *ctr_ptr,
                   val_old_link);
 
   // Append to cache
-  drv_resp_code_t  ret_val =
+  UncRespCode  ret_val =
       ctr_ptr->physical_port_cache->update_physical_attribute_node(cfg_node);
-  if (ret_val != DRVAPI_RESPONSE_SUCCESS) {
+  if (UNC_RC_SUCCESS != ret_val) {
     pfc_log_error(" Error in updating to cache");
     delete_config_node(cfg_node);
     return ret_val;
@@ -463,7 +463,7 @@ drv_resp_code_t OdcLink::update_event(unc::driver::controller *ctr_ptr,
 }
 
 // Delete event for Link
-drv_resp_code_t OdcLink::delete_event(unc::driver::controller *ctr,
+UncRespCode OdcLink::delete_event(unc::driver::controller *ctr,
                                       std::list<std::string> &link_list) {
   ODC_FUNC_TRACE;
   unc::vtndrvcache::ConfigNode *cfgnode_cache = NULL;
@@ -476,7 +476,7 @@ drv_resp_code_t OdcLink::delete_event(unc::driver::controller *ctr,
        cfgnode_cache = itr_ptr->NextItem() ) {
     if (NULL == cfgnode_cache) {
       pfc_log_error("cfgnode is NULL before get_type");
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
     unc_key_type_t key_type =  cfgnode_cache->get_type_name();
     if (UNC_KT_LINK == key_type) {
@@ -488,7 +488,7 @@ drv_resp_code_t OdcLink::delete_event(unc::driver::controller *ctr,
       key_link_t *key_link_cache = cfgptr_cache->get_key_structure();
       if (NULL == key_link_cache) {
         pfc_log_error("Key slink cache is empty");
-        return DRVAPI_RESPONSE_FAILURE;
+        return UNC_DRV_RC_ERR_GENERIC;
       }
       std::string switch_id1 =
           reinterpret_cast<const char*>(key_link_cache->switch_id1);
@@ -517,12 +517,12 @@ drv_resp_code_t OdcLink::delete_event(unc::driver::controller *ctr,
       }
     }
   }
-  drv_resp_code_t ret_val = delete_link(ctr, cfg_node_delete_map);
+  UncRespCode ret_val = delete_link(ctr, cfg_node_delete_map);
   return ret_val;
 }
 
 // Send Delete notification to Link
-drv_resp_code_t OdcLink::delete_link(
+UncRespCode OdcLink::delete_link(
     unc::driver::controller *ctr,
     const std::map<std::string,
     unc::vtndrvcache::ConfigNode *> &cfg_node_delete_map) {
@@ -535,7 +535,7 @@ drv_resp_code_t OdcLink::delete_link(
     unc::vtndrvcache::ConfigNode *cfg_node = iter->second;
     if (NULL == cfg_node) {
       pfc_log_error("cfgnode is NULL before get_type");
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
     std::string link_id = iter->first;
       unc::vtndrvcache::CacheElementUtil
@@ -548,7 +548,7 @@ drv_resp_code_t OdcLink::delete_link(
 
       if ((NULL == key_link) || (NULL == val_link)) {
         pfc_log_error("key_link/val_link is NULL");
-        return DRVAPI_RESPONSE_FAILURE;
+        return UNC_DRV_RC_ERR_GENERIC;
       }
       // Send notification to UPPL
       notify_physical(unc::driver::VTN_LINK_DELETE,
@@ -557,18 +557,18 @@ drv_resp_code_t OdcLink::delete_link(
                       NULL);
 
       // Delete from cache
-      drv_resp_code_t  ret_val =
+      UncRespCode  ret_val =
           ctr->physical_port_cache->delete_physical_attribute_node(cfg_node);
-      if (ret_val != DRVAPI_RESPONSE_SUCCESS) {
+      if (ret_val != UNC_RC_SUCCESS) {
         pfc_log_error(" Error in deleting in cache");
         return ret_val;
       }
     }
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 //  Verify in cache whether link exists or not
-drv_resp_code_t OdcLink::verify_in_cache(
+UncRespCode OdcLink::verify_in_cache(
     unc::driver::controller *ctr_ptr,
     std::vector<unc::vtndrvcache::ConfigNode *> &cfgnode_vector,
     std::list<std::string> &link_list) {
@@ -581,7 +581,7 @@ drv_resp_code_t OdcLink::verify_in_cache(
     unc::vtndrvcache::ConfigNode *cfg_node = *ctr_iterator;
     if (NULL == cfg_node) {
       pfc_log_error("cfgnode is NULL before get_type");
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
 
     unc::vtndrvcache::CacheElementUtil<key_link_t, val_link_st_t, uint32_t>
@@ -593,7 +593,7 @@ drv_resp_code_t OdcLink::verify_in_cache(
 
     if ((NULL == key_link) || (NULL == val_link_ctr)) {
       pfc_log_error("key_link / val_link is NULL");
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
     std::string switch_id1 =
         reinterpret_cast<const char*>(key_link->switch_id1);
@@ -614,8 +614,8 @@ drv_resp_code_t OdcLink::verify_in_cache(
                                           cfgnode_ctr, cfgnode_cache);
     if (PFC_FALSE == exist_in_cache) {
       pfc_log_trace("Link not exist in cache");
-      drv_resp_code_t  ret_val = add_event(ctr_ptr, cfgnode_ctr, link_list);
-      if (ret_val != DRVAPI_RESPONSE_SUCCESS) {
+      UncRespCode  ret_val = add_event(ctr_ptr, cfgnode_ctr, link_list);
+      if (ret_val != UNC_RC_SUCCESS) {
         pfc_log_error("Error occured in adding to cache");
         return ret_val;
       }
@@ -633,9 +633,9 @@ drv_resp_code_t OdcLink::verify_in_cache(
                                                 val_link_cache);
       if (PFC_TRUE == link_update) {
         pfc_log_trace("Link parameters are updated");
-        drv_resp_code_t  ret_val =
+        UncRespCode  ret_val =
             update_event(ctr_ptr, cfgnode_ctr, val_link_cache, link_list);
-        if (ret_val != DRVAPI_RESPONSE_SUCCESS) {
+        if (UNC_RC_SUCCESS != ret_val) {
           pfc_log_error("error in updating the cache");
           return ret_val;
         }
@@ -647,7 +647,7 @@ drv_resp_code_t OdcLink::verify_in_cache(
     }
   }
   // Check for delete
-  drv_resp_code_t  ret_val = delete_event(ctr_ptr, link_list);
+  UncRespCode  ret_val = delete_event(ctr_ptr, link_list);
   return ret_val;
 }
 
@@ -673,7 +673,7 @@ pfc_bool_t OdcLink::is_link_modified(val_link_st_t *val_link_ctr,
 }
 
 // Fills config node vector with link
-drv_resp_code_t OdcLink::fill_config_node_vector(
+UncRespCode OdcLink::fill_config_node_vector(
     unc::driver::controller *ctr_ptr,
     const std::map<std::string, std::string> &edge_prop_map,
     const std::map<std::string, std::string> &head_conn_map,
@@ -692,12 +692,12 @@ drv_resp_code_t OdcLink::fill_config_node_vector(
       port_id1 = it_head_node->second;
     } else {
       pfc_log_error("No corresponding port available . Error occured");
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
     size_t pos_sw_one = tail_node_conn.find(PIPE_SEPARATOR);
     if (pos_sw_one == std::string::npos) {
       pfc_log_error("Error in tail_node_conn value");
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
     std::string switch_id1 = tail_node_conn.substr(0, pos_sw_one);
     std::string switch_id2 = "";
@@ -732,7 +732,7 @@ drv_resp_code_t OdcLink::fill_config_node_vector(
     if ((switch_id1.empty()) || (switch_id2.empty()) ||
         (port_id1.empty()) || (port_id2.empty())) {
       pfc_log_error("switch id or port id is empty");
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
     pfc_log_trace("SW1 : %s ,PORT1: %s, SW2: %s,PORT2: %s", switch_id1.c_str(),
                   port_id1.c_str(), switch_id2.c_str(), port_id2.c_str());
@@ -781,11 +781,11 @@ drv_resp_code_t OdcLink::fill_config_node_vector(
     PFC_VERIFY(cfgptr != NULL);
     cfgnode_vector.push_back(cfgptr);
   }
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 // parsing function for converting controller response to driver format
-drv_resp_code_t OdcLink::parse_link_response(
+UncRespCode OdcLink::parse_link_response(
     unc::driver::controller *ctr_ptr,
     char *data,
     std::vector< unc::vtndrvcache::ConfigNode *> &cfgnode_vector) {
@@ -793,7 +793,7 @@ drv_resp_code_t OdcLink::parse_link_response(
   json_object* jobj = restjson::JsonBuildParse::get_json_object(data);
   if (json_object_is_type(jobj, json_type_null)) {
     pfc_log_error("json_object_is_type error");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   uint32_t array_length =0;
   json_object *json_obj_edge_prop = NULL;
@@ -806,7 +806,7 @@ drv_resp_code_t OdcLink::parse_link_response(
       (json_object_is_type(json_obj_edge_prop, json_type_null))) {
     json_object_put(jobj);
     pfc_log_error("Parsing Error json_obj_edge_prop is null");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   if (json_object_is_type(json_obj_edge_prop, json_type_array)) {
@@ -816,16 +816,16 @@ drv_resp_code_t OdcLink::parse_link_response(
   if (0 == array_length) {
     pfc_log_debug("No EDGE present");
     json_object_put(jobj);
-    return DRVAPI_RESPONSE_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
-  drv_resp_code_t ret_val = DRVAPI_RESPONSE_FAILURE;
+  UncRespCode ret_val = UNC_DRV_RC_ERR_GENERIC;
   std::map<std::string, std::string> edge_prop_map;
   std::map<std::string, std::string> head_conn_map;
   for (uint32_t arr_idx = 0; arr_idx < array_length; arr_idx++) {
     ret_val = fill_edge_value_map(
         json_obj_edge_prop, arr_idx, edge_prop_map, head_conn_map);
 
-    if (DRVAPI_RESPONSE_SUCCESS != ret_val) {
+    if (UNC_RC_SUCCESS != ret_val) {
       json_object_put(jobj);
       pfc_log_error("Error return from fill map failure");
       return ret_val;
@@ -835,13 +835,13 @@ drv_resp_code_t OdcLink::parse_link_response(
   ret_val = fill_config_node_vector
       (ctr_ptr, edge_prop_map, head_conn_map, cfgnode_vector);
 
-  if (DRVAPI_RESPONSE_SUCCESS != ret_val) {
+  if (UNC_RC_SUCCESS != ret_val) {
     json_object_put(jobj);
     pfc_log_error("Error return from fill config node_vector failure");
     return ret_val;
   }
   json_object_put(jobj);
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 }  // namespace odcdriver
 }  // namespace unc
index f8f8d3ef46d852cf9c100c16d5472328208c2d4a..c926b6ea8fee23b39925528f2630b82689b33bb7 100644 (file)
@@ -209,8 +209,8 @@ pfc_bool_t ODCModule::get_physical_port_details(
   pfc_bool_t cache_empty = PFC_TRUE;
 
   // Gets the SWITCH details
-  drv_resp_code_t ret_val = odc_switch_obj.fetch_config(ctr_ptr, cache_empty);
-  if (ret_val != DRVAPI_RESPONSE_SUCCESS) {
+  UncRespCode ret_val = odc_switch_obj.fetch_config(ctr_ptr, cache_empty);
+  if (UNC_RC_SUCCESS != ret_val) {
     pfc_log_error("Error occured in getting switch details");
     return PFC_FALSE;
   }
@@ -221,11 +221,11 @@ pfc_bool_t ODCModule::get_physical_port_details(
   for (cfgnode_cache = itr_ptr->PhysicalNodeFirstItem();
        itr_ptr->IsDone() == false;
        cfgnode_cache = itr_ptr->NextItem() ) {
-    if (cfgnode_cache == NULL) {
+    if (NULL == cfgnode_cache) {
       pfc_log_error("cfgnode is NULL before get_type");
       delete ctr_ptr->physical_port_cache;
       ctr_ptr->physical_port_cache = NULL;
-      return DRVAPI_RESPONSE_FAILURE;
+      return PFC_FALSE;
     }
 
     unc_key_type_t key_type =  cfgnode_cache->get_type_name();
@@ -245,7 +245,7 @@ pfc_bool_t ODCModule::get_physical_port_details(
       OdcPort odc_port_obj(conf_file_values_);
       //  Gets the port details of a particular SW
       ret_val = odc_port_obj.fetch_config(ctr_ptr, key_switch, cache_empty);
-      if (ret_val != DRVAPI_RESPONSE_SUCCESS) {
+      if (UNC_RC_SUCCESS != ret_val) {
         pfc_log_error("Error occured in getting port details");
         return PFC_FALSE;
       }
@@ -253,7 +253,7 @@ pfc_bool_t ODCModule::get_physical_port_details(
   }
   OdcLink odc_link_obj(conf_file_values_);
   ret_val = odc_link_obj.fetch_config(ctr_ptr, cache_empty);
-  if (ret_val != DRVAPI_RESPONSE_SUCCESS) {
+  if (UNC_RC_SUCCESS != ret_val) {
     pfc_log_error("Error occured in getting link details");
     return PFC_FALSE;
   }
index 783d95db5d2965d6f7ea456e92b6db4ef18c9e5e..bbfe592be348cf83181268799645c0fefd0fe23d 100644 (file)
@@ -24,7 +24,7 @@ OdcPort::~OdcPort() {
 
 
 // Get logical port information in the controller
-drv_resp_code_t OdcPort::fetch_config(
+UncRespCode OdcPort::fetch_config(
     unc::driver::controller *ctr_ptr,
     key_switch_t *parent_switch,
     const pfc_bool_t cache_empty) {
@@ -34,7 +34,7 @@ drv_resp_code_t OdcPort::fetch_config(
 
   if (NULL == parent_switch) {
     pfc_log_error("parent_switch is NULL");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   std::vector<unc::vtndrvcache::ConfigNode *> cfgnode_vector;
   std::string switch_id = reinterpret_cast<const char*>
@@ -42,7 +42,7 @@ drv_resp_code_t OdcPort::fetch_config(
 
   if (switch_id.empty()) {
     pfc_log_error("Switch id is empty");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   std::string url = "";
   url.append(BASE_SW_URL);
@@ -63,24 +63,24 @@ drv_resp_code_t OdcPort::fetch_config(
 
   if (NULL == response) {
     pfc_log_error("Error Occured while getting httpresponse");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   int resp_code = response->code;
   if (HTTP_200_RESP_OK != resp_code) {
     pfc_log_error("Response code is not OK , resp : %d", resp_code);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   if (NULL != response->write_data) {
     if (NULL != response->write_data->memory) {
       char *data = response->write_data->memory;
       pfc_log_trace("All nodes : %s", data);
-      drv_resp_code_t ret_val =
+      UncRespCode ret_val =
           parse_port_response(ctr_ptr, data, cfgnode_vector);
       pfc_log_debug("Number of Ports in Switch %s is, %d", switch_id.c_str(),
                     static_cast<int>(cfgnode_vector.size()));
-      if (ret_val != DRVAPI_RESPONSE_SUCCESS) {
+      if (UNC_RC_SUCCESS != ret_val) {
         pfc_log_error("Error while parsing the port response");
         return ret_val;
       }
@@ -92,11 +92,11 @@ drv_resp_code_t OdcPort::fetch_config(
     }
   }
   pfc_log_error("Response in NULL");
-  return DRVAPI_RESPONSE_FAILURE;
+  return UNC_DRV_RC_ERR_GENERIC;
 }
 
 // parse each port and append to cache
-drv_resp_code_t OdcPort::fill_config_node_vector(
+UncRespCode OdcPort::fill_config_node_vector(
     unc::driver::controller *ctr_ptr,
     json_object *json_obj_node_conn_prop,
     int arr_idx,
@@ -113,10 +113,10 @@ drv_resp_code_t OdcPort::fill_config_node_vector(
                                                      arr_idx,
                                                      json_obj_node_conn);
 
-  if ((DRVAPI_RESPONSE_SUCCESS != ret_val) ||
+  if ((restjson::REST_OP_SUCCESS != ret_val) ||
   (json_object_is_type(json_obj_node_conn, json_type_null))) {
     pfc_log_error(" Error while parsing node");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   std::string node_conn_id = "";
@@ -124,10 +124,10 @@ drv_resp_code_t OdcPort::fill_config_node_vector(
                                             "id",
                                             -1,
                                             node_conn_id);
-  if ((DRVAPI_RESPONSE_SUCCESS != ret_val) ||
+  if ((restjson::REST_OP_SUCCESS != ret_val) ||
       (node_conn_id.empty())) {
     pfc_log_error(" Error while parsing node_conn_id");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   json_object *json_obj_node = NULL;
@@ -138,32 +138,32 @@ drv_resp_code_t OdcPort::fill_config_node_vector(
                                             -1,
                                             json_obj_node);
 
-  if ((DRVAPI_RESPONSE_SUCCESS != ret_val) ||
+  if ((restjson::REST_OP_SUCCESS != ret_val) ||
       (json_object_is_type(json_obj_node, json_type_null))) {
     pfc_log_error(" Error while parsing port or json obj is NULL");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   ret_val = restjson::JsonBuildParse::parse(json_obj_node_conn,
                                             "type",
                                             -1,
                                             node_type);
 
-  if ((DRVAPI_RESPONSE_SUCCESS != ret_val) ||
+  if ((restjson::REST_OP_SUCCESS != ret_val) ||
       (node_type.empty())) {
     pfc_log_error(" Error while parsing node_type");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   if (node_type.compare("SW") == 0) {
     pfc_log_debug("SW type is received");
-    return DRVAPI_RESPONSE_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 
   ret_val = restjson::JsonBuildParse::parse(json_obj_node, "id",
                                             -1, node_id);
-  if ((DRVAPI_RESPONSE_SUCCESS != ret_val) ||
+  if ((restjson::REST_OP_SUCCESS != ret_val) ||
       (node_id.empty())) {
     pfc_log_error(" Error while parsing node id");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   std::string name_value = "";
@@ -177,9 +177,9 @@ drv_resp_code_t OdcPort::fill_config_node_vector(
                                         config_value,
                                         speed);
 
-  if (DRVAPI_RESPONSE_SUCCESS != ret_val) {
+  if (UNC_RC_SUCCESS != ret_val) {
     pfc_log_error("Error in  parsing node conn properties");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   //  Fills Key Structure
@@ -240,11 +240,11 @@ drv_resp_code_t OdcPort::fill_config_node_vector(
     (&key_port, &val_port, uint32_t(UNC_OP_READ));
   PFC_VERIFY(cfgptr != NULL);
   cfgnode_vector.push_back(cfgptr);
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 // parse the port properties vale
-drv_resp_code_t OdcPort::parse_port_properties_value(
+UncRespCode OdcPort::parse_port_properties_value(
     int arr_idx,
     json_object *json_obj_node_conn,
     std::string &name_value,
@@ -257,10 +257,10 @@ drv_resp_code_t OdcPort::parse_port_properties_value(
                                                 "properties",
                                                 arr_idx,
                                                 json_obj_node_prop);
-  if ((DRVAPI_RESPONSE_SUCCESS != ret_val) ||
+  if ((restjson::REST_OP_SUCCESS != ret_val) ||
       (json_object_is_type(json_obj_node_prop, json_type_null))) {
     pfc_log_error(" Error while parsing node properties");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   json_object *json_obj_node_prop_name = NULL;
   ret_val = restjson::JsonBuildParse::parse(json_obj_node_prop,
@@ -268,10 +268,10 @@ drv_resp_code_t OdcPort::parse_port_properties_value(
                                             -1,
                                             json_obj_node_prop_name);
 
-  if ((DRVAPI_RESPONSE_SUCCESS != ret_val) ||
+  if ((restjson::REST_OP_SUCCESS != ret_val) ||
       (json_object_is_type(json_obj_node_prop_name, json_type_null))) {
     pfc_log_error(" Error while parsing node name");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   ret_val = restjson::JsonBuildParse::parse(json_obj_node_prop_name,
@@ -279,10 +279,10 @@ drv_resp_code_t OdcPort::parse_port_properties_value(
                                             -1,
                                             name_value);
 
-  if ((DRVAPI_RESPONSE_SUCCESS != ret_val) ||
+  if ((restjson::REST_OP_SUCCESS != ret_val) ||
       (name_value.empty())) {
     pfc_log_error(" Error while parsing node name value");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   json_object *json_obj_node_prop_state = NULL;
@@ -291,10 +291,10 @@ drv_resp_code_t OdcPort::parse_port_properties_value(
                                             -1,
                                             json_obj_node_prop_state);
 
-  if ((DRVAPI_RESPONSE_SUCCESS != ret_val) ||
+  if ((restjson::REST_OP_SUCCESS != ret_val) ||
       (json_object_is_type(json_obj_node_prop_state, json_type_null))) {
     pfc_log_error(" Error while parsing node state properties");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   ret_val = restjson::JsonBuildParse::parse(json_obj_node_prop_state,
@@ -302,9 +302,9 @@ drv_resp_code_t OdcPort::parse_port_properties_value(
                                             -1,
                                             state_value);
 
-  if (DRVAPI_RESPONSE_SUCCESS != ret_val) {
+  if (restjson::REST_OP_SUCCESS != ret_val) {
     pfc_log_error(" Error while parsing node state value properties");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   json_object *json_obj_node_prop_config = NULL;
@@ -313,10 +313,10 @@ drv_resp_code_t OdcPort::parse_port_properties_value(
                                             -1,
                                             json_obj_node_prop_config);
 
-  if ((DRVAPI_RESPONSE_SUCCESS != ret_val) ||
+  if ((restjson::REST_OP_SUCCESS != ret_val) ||
       (json_object_is_type(json_obj_node_prop_config, json_type_null))) {
     pfc_log_error(" Error while parsing node config properties");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   ret_val = restjson::JsonBuildParse::parse(json_obj_node_prop_config,
@@ -324,9 +324,9 @@ drv_resp_code_t OdcPort::parse_port_properties_value(
                                             -1,
                                             config_value);
 
-  if (DRVAPI_RESPONSE_SUCCESS != ret_val) {
+  if (restjson::REST_OP_SUCCESS != ret_val) {
     pfc_log_error(" Error while parsing node config properties");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   json_object *json_obj_node_prop_speed = NULL;
@@ -335,10 +335,10 @@ drv_resp_code_t OdcPort::parse_port_properties_value(
                                             -1,
                                             json_obj_node_prop_speed);
 
-  if ((DRVAPI_RESPONSE_SUCCESS != ret_val) ||
+  if ((restjson::REST_OP_SUCCESS != ret_val) ||
       (json_object_is_type(json_obj_node_prop_speed, json_type_null))) {
     pfc_log_error(" Error while parsing node bandwidth properties");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   ret_val = restjson::JsonBuildParse::parse(json_obj_node_prop_speed,
@@ -346,26 +346,26 @@ drv_resp_code_t OdcPort::parse_port_properties_value(
                                             -1,
                                             speed);
 
-  if (DRVAPI_RESPONSE_SUCCESS != ret_val) {
+  if (restjson::REST_OP_SUCCESS != ret_val) {
     pfc_log_error(" Error while parsing node bandwidth properties");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 //  Compare whether cache empty or not
-drv_resp_code_t OdcPort::compare_with_cache(
+UncRespCode OdcPort::compare_with_cache(
     unc::driver::controller *ctr_ptr,
     std::vector<unc::vtndrvcache::ConfigNode *> &cfgnode_vector,
     const std::string &switch_id, const pfc_bool_t cache_empty) {
   ODC_FUNC_TRACE;
   if (NULL == ctr_ptr->physical_port_cache) {
     pfc_log_error("Cache is empty");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   std::list<std::string> port_list;
-  drv_resp_code_t ret_val = DRVAPI_RESPONSE_FAILURE;
+  UncRespCode ret_val = UNC_DRV_RC_ERR_GENERIC;
 
   if (PFC_TRUE == cache_empty) {
     for (std::vector<unc::vtndrvcache::ConfigNode *>::iterator it =
@@ -373,10 +373,10 @@ drv_resp_code_t OdcPort::compare_with_cache(
       unc::vtndrvcache::ConfigNode *cfgnode_cache = *it;
       if (NULL == cfgnode_cache) {
         pfc_log_error("cfgnode_cache is NULL");
-        return DRVAPI_RESPONSE_FAILURE;
+        return UNC_DRV_RC_ERR_GENERIC;
       }
       ret_val = add_event(ctr_ptr, cfgnode_cache, port_list);
-      if (ret_val != DRVAPI_RESPONSE_SUCCESS) {
+      if (UNC_RC_SUCCESS != ret_val) {
         pfc_log_error("Error in adding to cache");
         return ret_val;
       }
@@ -385,7 +385,7 @@ drv_resp_code_t OdcPort::compare_with_cache(
     ret_val = verify_in_cache(ctr_ptr, cfgnode_vector, switch_id, port_list);
     return ret_val;
   }
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 //  Notify physical about the port event
@@ -529,7 +529,7 @@ void OdcPort::update_list(key_port_t *key_port,
 }
 
 //  Add event for Port
-drv_resp_code_t OdcPort::add_event(unc::driver::controller *ctr_ptr,
+UncRespCode OdcPort::add_event(unc::driver::controller *ctr_ptr,
                                    unc::vtndrvcache::ConfigNode *cfg_node,
                                    std::list<std::string> &port_list) {
   ODC_FUNC_TRACE;
@@ -542,15 +542,15 @@ drv_resp_code_t OdcPort::add_event(unc::driver::controller *ctr_ptr,
 
   if ((NULL == key_port) || (NULL == val_port)) {
     pfc_log_error("key_port/val_port is NULL");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   //  Send Notification to UPPL
   notify_physical(unc::driver::VTN_PORT_CREATE, key_port, val_port, NULL);
 
   //  Append to cache
-  drv_resp_code_t  ret_val =
+  UncRespCode  ret_val =
       ctr_ptr->physical_port_cache->append_Physical_attribute_node(cfg_node);
-  if (ret_val != DRVAPI_RESPONSE_SUCCESS) {
+  if (UNC_RC_SUCCESS != ret_val) {
     delete_config_node(cfg_node);
     pfc_log_error(" Error in adding to cache");
     return ret_val;
@@ -560,7 +560,7 @@ drv_resp_code_t OdcPort::add_event(unc::driver::controller *ctr_ptr,
 }
 
 // Update event for Port
-drv_resp_code_t OdcPort::update_event(unc::driver::controller *ctr_ptr,
+UncRespCode OdcPort::update_event(unc::driver::controller *ctr_ptr,
                                       unc::vtndrvcache::ConfigNode *cfg_node,
                                       val_port_st_t *val_old_port,
                                       std::list<std::string> &port_list) {
@@ -574,16 +574,16 @@ drv_resp_code_t OdcPort::update_event(unc::driver::controller *ctr_ptr,
 
   if ((NULL == key_port) || (NULL == val_port) || (NULL == val_old_port)) {
     pfc_log_error("key_port/val_port is NULL");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   // Send notification to UPPL
   notify_physical(unc::driver::VTN_PORT_UPDATE, key_port,
                                   val_port, val_old_port);
 
   // Append to cache
-  drv_resp_code_t  ret_val =
+  UncRespCode  ret_val =
       ctr_ptr->physical_port_cache->update_physical_attribute_node(cfg_node);
-  if (ret_val != DRVAPI_RESPONSE_SUCCESS) {
+  if (UNC_RC_SUCCESS != ret_val) {
     delete_config_node(cfg_node);
     pfc_log_error(" Error in updating to cache");
     return ret_val;
@@ -594,7 +594,7 @@ drv_resp_code_t OdcPort::update_event(unc::driver::controller *ctr_ptr,
 }
 
 // Check Delete event for Port
-drv_resp_code_t OdcPort::delete_event(unc::driver::controller *ctr_ptr,
+UncRespCode OdcPort::delete_event(unc::driver::controller *ctr_ptr,
                                       const std::string &switch_id,
                                       std::list<std::string> &port_list) {
   ODC_FUNC_TRACE;
@@ -608,7 +608,7 @@ drv_resp_code_t OdcPort::delete_event(unc::driver::controller *ctr_ptr,
        cfgnode_cache = itr_ptr->NextItem() ) {
     if (NULL == cfgnode_cache) {
       pfc_log_error("cfgnode is NULL before get_type");
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
     unc_key_type_t key_type =  cfgnode_cache->get_type_name();
     if (UNC_KT_PORT == key_type) {
@@ -619,7 +619,7 @@ drv_resp_code_t OdcPort::delete_event(unc::driver::controller *ctr_ptr,
       key_port_t *key_port_cache = cfgptr_cache->get_key_structure();
       if (NULL == key_port_cache) {
         pfc_log_error("key_port_cache is NULL");
-        return DRVAPI_RESPONSE_FAILURE;
+        return UNC_DRV_RC_ERR_GENERIC;
       }
       std::string switch_id_cache = reinterpret_cast<const char*>
           (key_port_cache->sw_key.switch_id);
@@ -645,7 +645,7 @@ drv_resp_code_t OdcPort::delete_event(unc::driver::controller *ctr_ptr,
   return delete_port(ctr_ptr, cfg_node_delete_map);
 }
 
-drv_resp_code_t OdcPort::delete_port(
+UncRespCode OdcPort::delete_port(
     unc::driver::controller *ctr_ptr,
     const std::map<std::string,
     unc::vtndrvcache::ConfigNode *> &cfg_node_delete_map) {
@@ -658,7 +658,7 @@ drv_resp_code_t OdcPort::delete_port(
     unc::vtndrvcache::ConfigNode *cfg_node = iter->second;
     if (NULL == cfg_node) {
       pfc_log_error("cfgnode is NULL before get_type");
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
 
     unc::vtndrvcache::CacheElementUtil<key_port_t, val_port_st_t, uint32_t>
@@ -670,20 +670,20 @@ drv_resp_code_t OdcPort::delete_port(
 
     if ((NULL == key_port) || (NULL == val_port)) {
       pfc_log_error("key_port/val_port is NULL");
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
     // Send notification to UPPL
     notify_physical(unc::driver::VTN_PORT_DELETE, key_port, val_port, NULL);
 
     // Delete from cache
-    drv_resp_code_t  ret_val =
+    UncRespCode  ret_val =
         ctr_ptr->physical_port_cache->delete_physical_attribute_node(cfg_node);
-    if (ret_val != DRVAPI_RESPONSE_SUCCESS) {
+    if (UNC_RC_SUCCESS != ret_val) {
       pfc_log_error(" Error in deleting in cache");
       return ret_val;
     }
   }
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 // Deletes config node
@@ -696,7 +696,7 @@ void OdcPort::delete_config_node(unc::vtndrvcache::ConfigNode *cfg_node) {
 }
 
 //  Verify in cache whether port aleady exists or not
-drv_resp_code_t OdcPort::verify_in_cache(
+UncRespCode OdcPort::verify_in_cache(
     unc::driver::controller *ctr_ptr,
     std::vector<unc::vtndrvcache::ConfigNode *> &cfgnode_vector,
     const std::string &switch_id,
@@ -710,7 +710,7 @@ drv_resp_code_t OdcPort::verify_in_cache(
     unc::vtndrvcache::ConfigNode *cfg_node = *ctr_iterator;
     if (NULL == cfg_node) {
       pfc_log_error("cfg_node is NULL");
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
     unc::vtndrvcache::CacheElementUtil<key_port_t, val_port_st_t, uint32_t>
         *cfgnode_ctr = static_cast<unc::vtndrvcache::CacheElementUtil
@@ -719,7 +719,7 @@ drv_resp_code_t OdcPort::verify_in_cache(
     val_port_st_t *val_port_ctr = cfgnode_ctr->get_val_structure();
     if (NULL == val_port_ctr) {
       pfc_log_error("val_port_ctr is NULL");
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
 
     std::string port_id_ctr = reinterpret_cast<const char*>
@@ -734,8 +734,8 @@ drv_resp_code_t OdcPort::verify_in_cache(
 
     if (PFC_FALSE == exist_in_cache) {
       pfc_log_trace("Port %s not exist in cache", port_id_ctr.c_str());
-      drv_resp_code_t  ret_val = add_event(ctr_ptr, cfgnode_ctr, port_list);
-      if (ret_val != DRVAPI_RESPONSE_SUCCESS) {
+      UncRespCode  ret_val = add_event(ctr_ptr, cfgnode_ctr, port_list);
+      if (ret_val != UNC_RC_SUCCESS) {
         pfc_log_error("Error occured in adding to cache");
         return ret_val;
       }
@@ -750,15 +750,15 @@ drv_resp_code_t OdcPort::verify_in_cache(
 
       if ((NULL == key_port) || (NULL == val_port_cache)) {
         pfc_log_error("key_port/val_port_cache is NULL");
-        return DRVAPI_RESPONSE_FAILURE;
+        return UNC_DRV_RC_ERR_GENERIC;
       }
       pfc_bool_t sw_update = is_port_modified(val_port_ctr, val_port_cache);
       if (PFC_TRUE == sw_update) {
         pfc_log_trace("Port is %s, its parameters are updated",
                                             port_id_ctr.c_str());
-        drv_resp_code_t  ret_val =
+        UncRespCode  ret_val =
             update_event(ctr_ptr, cfgnode_ctr, val_port_cache, port_list);
-        if (ret_val != DRVAPI_RESPONSE_SUCCESS) {
+        if (UNC_RC_SUCCESS != ret_val) {
           pfc_log_error("error in updating the cache");
           return ret_val;
         }
@@ -771,7 +771,7 @@ drv_resp_code_t OdcPort::verify_in_cache(
     }
   }
   // Check for delete
-  drv_resp_code_t  ret_val = delete_event(ctr_ptr, switch_id, port_list);
+  UncRespCode  ret_val = delete_event(ctr_ptr, switch_id, port_list);
   return ret_val;
 }
 
@@ -801,14 +801,14 @@ pfc_bool_t OdcPort::is_port_modified(val_port_st_t *val_port_ctr,
 }
 
 // parsing function for converting controller response to driver format
-drv_resp_code_t OdcPort::parse_port_response(
+UncRespCode OdcPort::parse_port_response(
     unc::driver::controller *ctr_ptr, char *data,
     std::vector< unc::vtndrvcache::ConfigNode *> &cfgnode_vector) {
   ODC_FUNC_TRACE;
   json_object* jobj = restjson::JsonBuildParse::get_json_object(data);
   if (json_object_is_type(jobj, json_type_null)) {
     pfc_log_error("json_object_is_type error");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   uint32_t array_length =0;
   json_object *json_obj_node_conn_prop = NULL;
@@ -817,11 +817,11 @@ drv_resp_code_t OdcPort::parse_port_response(
                                 -1,
                                 json_obj_node_conn_prop);
 
-  if ((DRVAPI_RESPONSE_SUCCESS != ret_val) ||
+  if ((restjson::REST_OP_SUCCESS != ret_val) ||
       (json_object_is_type(json_obj_node_conn_prop, json_type_null))) {
     json_object_put(jobj);
     pfc_log_error("Parsing Error json_obj_node_conn_prop is null");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   if (json_object_is_type(json_obj_node_conn_prop, json_type_array)) {
@@ -831,19 +831,19 @@ drv_resp_code_t OdcPort::parse_port_response(
   if (0 == array_length) {
     pfc_log_debug("No nodes port present");
     json_object_put(jobj);
-    return DRVAPI_RESPONSE_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   for (uint32_t arr_idx = 0; arr_idx < array_length; arr_idx++) {
-    drv_resp_code_t ret_val = fill_config_node_vector(ctr_ptr,
+    UncRespCode ret_val = fill_config_node_vector(ctr_ptr,
                           json_obj_node_conn_prop, arr_idx, cfgnode_vector);
-    if (DRVAPI_RESPONSE_SUCCESS != ret_val) {
+    if (UNC_RC_SUCCESS != ret_val) {
       json_object_put(jobj);
       pfc_log_error("Error return from parse_node_append_vector failure");
       return ret_val;
     }
   }
   json_object_put(jobj);
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 }  // namespace odcdriver
 }  // namespace unc
index 754b9a9a9d6fc044f520d2184a633e63f64b5a46..784f28a3e6dd2f8f14f178409b96a295000ae234 100644 (file)
@@ -24,7 +24,7 @@ OdcSwitch::~OdcSwitch() {
 
 
 // Get switch information in the controller
-drv_resp_code_t OdcSwitch::fetch_config(unc::driver::controller *ctr_ptr,
+UncRespCode OdcSwitch::fetch_config(unc::driver::controller *ctr_ptr,
                                         pfc_bool_t &cache_empty) {
   ODC_FUNC_TRACE;
   PFC_VERIFY(ctr_ptr != NULL);
@@ -45,23 +45,23 @@ drv_resp_code_t OdcSwitch::fetch_config(unc::driver::controller *ctr_ptr,
 
   if (NULL == response) {
     pfc_log_error("Error Occured while getting httpresponse");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   int resp_code = response->code;
   if (HTTP_200_RESP_OK != resp_code) {
     pfc_log_error("Response code is not OK , resp : %d", resp_code);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   if (NULL != response->write_data) {
     if (NULL != response->write_data->memory) {
       char *data = response->write_data->memory;
       pfc_log_trace("All Switches : %s", data);
-      drv_resp_code_t ret_val =  parse_node_response(
+      UncRespCode ret_val =  parse_node_response(
                               ctr_ptr, data, cfgnode_vector);
       pfc_log_debug("Number of SWITCH present, %d",
                     static_cast<int>(cfgnode_vector.size()));
-      if (ret_val != DRVAPI_RESPONSE_SUCCESS) {
+      if (ret_val != UNC_RC_SUCCESS) {
         pfc_log_error("Error occured while parsing");
         return ret_val;
       }
@@ -71,11 +71,11 @@ drv_resp_code_t OdcSwitch::fetch_config(unc::driver::controller *ctr_ptr,
     }
   }
   pfc_log_error("Response data is NULL");
-  return DRVAPI_RESPONSE_FAILURE;;
+  return UNC_DRV_RC_ERR_GENERIC;;
 }
 
 // parse each SWITCH append t  cache
-drv_resp_code_t OdcSwitch::fill_config_node_vector(
+UncRespCode OdcSwitch::fill_config_node_vector(
     unc::driver::controller *ctr_ptr,
     json_object *json_obj_node_prop,
     int arr_idx,
@@ -92,10 +92,10 @@ drv_resp_code_t OdcSwitch::fill_config_node_vector(
                                                      arr_idx,
                                                      json_obj_node);
 
-  if ((DRVAPI_RESPONSE_SUCCESS != ret_val) ||
+  if ((restjson::REST_OP_SUCCESS != ret_val) ||
       (json_object_is_type(json_obj_node, json_type_null))) {
     pfc_log_error(" Error while parsing node or json type NULL");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   std::string node_id   = "";
@@ -103,10 +103,10 @@ drv_resp_code_t OdcSwitch::fill_config_node_vector(
                                             "id",
                                             -1,
                                             node_id);
-  if ((DRVAPI_RESPONSE_SUCCESS != ret_val) ||
+  if ((restjson::REST_OP_SUCCESS != ret_val) ||
       (node_id.empty())) {
     pfc_log_error(" Error while parsing id");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   json_object *json_prop = NULL;
@@ -115,10 +115,10 @@ drv_resp_code_t OdcSwitch::fill_config_node_vector(
                                             arr_idx,
                                             json_prop);
 
-  if ((DRVAPI_RESPONSE_SUCCESS != ret_val) ||
+  if ((restjson::REST_OP_SUCCESS != ret_val) ||
       (json_object_is_type(json_prop, json_type_null))) {
     pfc_log_error(" Error while parsing description or json_prop NULL");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   json_object *json_obj_description = NULL;
   ret_val = restjson::JsonBuildParse::parse(json_prop,
@@ -126,10 +126,10 @@ drv_resp_code_t OdcSwitch::fill_config_node_vector(
                                             -1,
                                             json_obj_description);
 
-  if ((DRVAPI_RESPONSE_SUCCESS != ret_val) ||
+  if ((restjson::REST_OP_SUCCESS != ret_val) ||
       (json_object_is_type(json_obj_description, json_type_null))) {
     pfc_log_error(" Error while parsing description or json type NULL");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   std::string desc   = "";
   ret_val = restjson::JsonBuildParse::parse(json_obj_description,
@@ -137,9 +137,9 @@ drv_resp_code_t OdcSwitch::fill_config_node_vector(
                                             -1,
                                             desc);
 
-  if (DRVAPI_RESPONSE_SUCCESS != ret_val) {
+  if (restjson::REST_OP_SUCCESS != ret_val) {
     pfc_log_error(" Error while parsing description");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   std::string ctr_name = ctr_ptr->get_controller_id();
@@ -173,21 +173,21 @@ drv_resp_code_t OdcSwitch::fill_config_node_vector(
 
   PFC_VERIFY(cfgptr != NULL);
   cfgnode_vector.push_back(cfgptr);
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 //  Compare whether cache empty or not
-drv_resp_code_t OdcSwitch::compare_with_cache(
+UncRespCode OdcSwitch::compare_with_cache(
     unc::driver::controller *ctr_ptr,
     std::vector<unc::vtndrvcache::ConfigNode *> &cfgnode_vector,
     pfc_bool_t &cache_empty) {
   ODC_FUNC_TRACE;
   if (NULL == ctr_ptr->physical_port_cache) {
     pfc_log_error("cache pointer is empty");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   std::list<std::string> switch_list;
-  drv_resp_code_t ret_val = DRVAPI_RESPONSE_FAILURE;
+  UncRespCode ret_val = UNC_DRV_RC_ERR_GENERIC;
   if (0 == ctr_ptr->physical_port_cache->cfg_list_count()) {
     cache_empty = PFC_TRUE;
     for (std::vector<unc::vtndrvcache::ConfigNode *>::iterator it =
@@ -195,10 +195,10 @@ drv_resp_code_t OdcSwitch::compare_with_cache(
       unc::vtndrvcache::ConfigNode *cfgnode_cache = *it;
       if (NULL == cfgnode_cache) {
         pfc_log_error("cfgnode_cache is NULL");
-        return DRVAPI_RESPONSE_FAILURE;
+        return UNC_DRV_RC_ERR_GENERIC;
       }
       ret_val = add_event(ctr_ptr, cfgnode_cache, switch_list);
-      if (ret_val != DRVAPI_RESPONSE_SUCCESS) {
+      if (ret_val != UNC_RC_SUCCESS) {
         pfc_log_error("Error in adding to cache");
         return ret_val;
       }
@@ -208,7 +208,7 @@ drv_resp_code_t OdcSwitch::compare_with_cache(
     ret_val = verify_in_cache(ctr_ptr, cfgnode_vector, switch_list);
     return ret_val;
   }
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 //  Notify physical about the switch event
@@ -243,7 +243,7 @@ void OdcSwitch::update_list(key_switch_t *key_switch,
 }
 
 //  Add event for Switch
-drv_resp_code_t OdcSwitch::add_event(unc::driver::controller *ctr_ptr,
+UncRespCode OdcSwitch::add_event(unc::driver::controller *ctr_ptr,
                                      unc::vtndrvcache::ConfigNode *cfg_node,
                                      std::list<std::string> &switch_list) {
   ODC_FUNC_TRACE;
@@ -255,16 +255,16 @@ drv_resp_code_t OdcSwitch::add_event(unc::driver::controller *ctr_ptr,
 
   if ((NULL == key_switch) || (NULL == val_switch)) {
     pfc_log_error("key_switch/val_switch is NULL");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   //  Send Notification to UPPL
   notify_physical(unc::driver::VTN_SWITCH_CREATE,
                   key_switch, val_switch, NULL);
 
   //  Append to cache
-  drv_resp_code_t  ret_val =
+  UncRespCode  ret_val =
       ctr_ptr->physical_port_cache->append_Physical_attribute_node(cfg_node);
-  if (ret_val != DRVAPI_RESPONSE_SUCCESS) {
+  if (ret_val != UNC_RC_SUCCESS) {
     delete_config_node(cfg_node);
     pfc_log_error(" Error in adding to cache");
     return ret_val;
@@ -274,7 +274,7 @@ drv_resp_code_t OdcSwitch::add_event(unc::driver::controller *ctr_ptr,
 }
 
 // Update event for Switch
-drv_resp_code_t OdcSwitch::update_event(unc::driver::controller *ctr_ptr,
+UncRespCode OdcSwitch::update_event(unc::driver::controller *ctr_ptr,
                                         unc::vtndrvcache::ConfigNode *cfg_node,
                                         val_switch_st_t *val_old_switch,
                                         std::list<std::string> &switch_list) {
@@ -289,7 +289,7 @@ drv_resp_code_t OdcSwitch::update_event(unc::driver::controller *ctr_ptr,
   if ((NULL == key_switch) || (NULL == val_switch) ||
       (NULL == val_old_switch)) {
     pfc_log_error("key_switch/val_switch is NULL");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   // Send notification to UPPL
@@ -297,9 +297,9 @@ drv_resp_code_t OdcSwitch::update_event(unc::driver::controller *ctr_ptr,
                   val_switch, val_old_switch);
 
   // Append to cache
-  drv_resp_code_t  ret_val =
+  UncRespCode  ret_val =
       ctr_ptr->physical_port_cache->update_physical_attribute_node(cfg_node);
-  if (ret_val != DRVAPI_RESPONSE_SUCCESS) {
+  if (ret_val != UNC_RC_SUCCESS) {
     delete_config_node(cfg_node);
     pfc_log_error(" Error in updating to cache");
     return ret_val;
@@ -309,7 +309,7 @@ drv_resp_code_t OdcSwitch::update_event(unc::driver::controller *ctr_ptr,
 }
 
 // Delete event for Switch
-drv_resp_code_t OdcSwitch::delete_event(unc::driver::controller *ctr,
+UncRespCode OdcSwitch::delete_event(unc::driver::controller *ctr,
                                         std::list<std::string> &switch_list) {
   ODC_FUNC_TRACE;
   unc::vtndrvcache::ConfigNode *cfgnode_cache = NULL;
@@ -322,7 +322,7 @@ drv_resp_code_t OdcSwitch::delete_event(unc::driver::controller *ctr,
        cfgnode_cache = itr_ptr->NextItem() ) {
     if (NULL == cfgnode_cache) {
       pfc_log_error("cfgnode is NULL before get_type");
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
     unc_key_type_t key_type =  cfgnode_cache->get_type_name();
     pfc_log_debug("key_type is %d", key_type);
@@ -335,7 +335,7 @@ drv_resp_code_t OdcSwitch::delete_event(unc::driver::controller *ctr,
       key_switch_t *key_switch_cache = cfgptr_cache->get_key_structure();
       if (NULL == key_switch_cache) {
         pfc_log_error("Key sswitch cache is empty");
-        return DRVAPI_RESPONSE_FAILURE;
+        return UNC_DRV_RC_ERR_GENERIC;
       }
       std::string switch_id = reinterpret_cast<const char*>
           (key_switch_cache->switch_id);
@@ -354,7 +354,7 @@ drv_resp_code_t OdcSwitch::delete_event(unc::driver::controller *ctr,
       key_port_t *key_port_cache = cfgptr_cache_port->get_key_structure();
       if (NULL == key_port_cache) {
         pfc_log_error("key_port_cache is NULL");
-        return DRVAPI_RESPONSE_FAILURE;
+        return UNC_DRV_RC_ERR_GENERIC;
       }
       std::string switch_port_id = reinterpret_cast<const char*>
                                   (key_port_cache->sw_key.switch_id);
@@ -371,18 +371,18 @@ drv_resp_code_t OdcSwitch::delete_event(unc::driver::controller *ctr,
     }
   }
 
-  drv_resp_code_t  ret_val =
+  UncRespCode  ret_val =
         delete_logical_port(ctr, cfg_node_delete_map);
-  if (ret_val != DRVAPI_RESPONSE_SUCCESS) {
+  if (ret_val != UNC_RC_SUCCESS) {
     pfc_log_error("Error in deleting logical port");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   ret_val = delete_switch(ctr, cfg_node_delete_map);
   return ret_val;
 }
 
 // Send Delete notification to logical port
-drv_resp_code_t OdcSwitch::delete_logical_port(
+UncRespCode OdcSwitch::delete_logical_port(
     unc::driver::controller *ctr,
     const std::map<std::string,
     unc::vtndrvcache::ConfigNode *> &cfg_node_delete_map) {
@@ -395,7 +395,7 @@ drv_resp_code_t OdcSwitch::delete_logical_port(
     unc::vtndrvcache::ConfigNode *cfg_node = iter->second;
     if (NULL == cfg_node) {
       pfc_log_error("cfgnode is NULL before get_type");
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
     std::string switch_id = iter->first;
     if (switch_id.compare(0, 3, "LP-") == 0) {
@@ -407,7 +407,7 @@ drv_resp_code_t OdcSwitch::delete_logical_port(
       val_port_st_t *val_port = cfgptr_cache->get_val_structure();
       if ((NULL == key_port) || (NULL == val_port)) {
         pfc_log_error("key_port/val_port is NULL");
-        return DRVAPI_RESPONSE_FAILURE;
+        return UNC_DRV_RC_ERR_GENERIC;
       }
 
       OdcPort odc_port_obj(conf_file_values_);
@@ -416,11 +416,11 @@ drv_resp_code_t OdcSwitch::delete_logical_port(
                                                 key_port, val_port, NULL);
     }
   }
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 // Send Delete notification to Switch
-drv_resp_code_t OdcSwitch::delete_switch(
+UncRespCode OdcSwitch::delete_switch(
     unc::driver::controller *ctr,
     const std::map<std::string,
     unc::vtndrvcache::ConfigNode *> &cfg_node_delete_map) {
@@ -433,7 +433,7 @@ drv_resp_code_t OdcSwitch::delete_switch(
     unc::vtndrvcache::ConfigNode *cfg_node = iter->second;
     if (NULL == cfg_node) {
       pfc_log_error("cfgnode is NULL before get_type");
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
     std::string switch_id = iter->first;
     if (switch_id.compare(0, 3, "LP-") != 0) {
@@ -446,26 +446,26 @@ drv_resp_code_t OdcSwitch::delete_switch(
       val_switch_st_t *val_switch = cfgptr_cache_sw->get_val_structure();
       if ((NULL == key_switch) || (NULL == val_switch)) {
         pfc_log_error("key_switch/val_switch is NULL");
-        return DRVAPI_RESPONSE_FAILURE;
+        return UNC_DRV_RC_ERR_GENERIC;
       }
       // Send notification to UPPL
       notify_physical(unc::driver::VTN_SWITCH_DELETE, key_switch,
                       val_switch, NULL);
 
       // Delete from cache
-      drv_resp_code_t  ret_val =
+      UncRespCode  ret_val =
           ctr->physical_port_cache->delete_physical_attribute_node(cfg_node);
-      if (ret_val != DRVAPI_RESPONSE_SUCCESS) {
+      if (ret_val != UNC_RC_SUCCESS) {
         pfc_log_error(" Error in deleting in cache");
         return ret_val;
       }
     }
   }
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 //  Verify in cache whether switch aleady exists or not
-drv_resp_code_t OdcSwitch::verify_in_cache(
+UncRespCode OdcSwitch::verify_in_cache(
     unc::driver::controller *ctr_ptr,
     std::vector<unc::vtndrvcache::ConfigNode *> &cfgnode_vector,
     std::list<std::string> &switch_list) {
@@ -478,7 +478,7 @@ drv_resp_code_t OdcSwitch::verify_in_cache(
     unc::vtndrvcache::ConfigNode *cfg_node = *ctr_iterator;
     if (NULL == cfg_node) {
       pfc_log_error("cfgnode is NULL before get_type");
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
 
     unc::vtndrvcache::CacheElementUtil<key_switch_t, val_switch_st_t, uint32_t>
@@ -497,8 +497,8 @@ drv_resp_code_t OdcSwitch::verify_in_cache(
             cfgnode_ctr, cfgnode_cache);
     if (PFC_FALSE == exist_in_cache) {
       pfc_log_trace("Switch %s not exists in cache", switch_id.c_str());
-      drv_resp_code_t  ret_val = add_event(ctr_ptr, cfgnode_ctr, switch_list);
-      if (ret_val != DRVAPI_RESPONSE_SUCCESS) {
+      UncRespCode  ret_val = add_event(ctr_ptr, cfgnode_ctr, switch_list);
+      if (ret_val != UNC_RC_SUCCESS) {
         pfc_log_error("Error occured in adding to cache");
         return ret_val;
       }
@@ -517,9 +517,9 @@ drv_resp_code_t OdcSwitch::verify_in_cache(
       if (PFC_TRUE == sw_update) {
         pfc_log_trace("Switch is %s,  parameters are updated",
                                      switch_id.c_str());
-        drv_resp_code_t  ret_val =
+        UncRespCode  ret_val =
             update_event(ctr_ptr, cfgnode_ctr, val_switch_cache, switch_list);
-        if (ret_val != DRVAPI_RESPONSE_SUCCESS) {
+        if (ret_val != UNC_RC_SUCCESS) {
           pfc_log_error("error in updating the cache");
           return ret_val;
         }
@@ -532,7 +532,7 @@ drv_resp_code_t OdcSwitch::verify_in_cache(
     }
   }
   // Check for delete
-  drv_resp_code_t  ret_val = delete_event(ctr_ptr, switch_list);
+  UncRespCode  ret_val = delete_event(ctr_ptr, switch_list);
   return ret_val;
 }
 
@@ -567,7 +567,7 @@ pfc_bool_t OdcSwitch::is_switch_modified(val_switch_st_t *val_switch_ctr,
 }
 
 // parsing function for converting controller response to driver format
-drv_resp_code_t OdcSwitch::parse_node_response(
+UncRespCode OdcSwitch::parse_node_response(
     unc::driver::controller *ctr_ptr,
     char *data,
     std::vector< unc::vtndrvcache::ConfigNode *> &cfgnode_vector) {
@@ -575,7 +575,7 @@ drv_resp_code_t OdcSwitch::parse_node_response(
   json_object* jobj = restjson::JsonBuildParse::get_json_object(data);
   if (json_object_is_type(jobj, json_type_null)) {
     pfc_log_error("json_object_is_type error");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   uint32_t array_length =0;
   json_object *json_obj_node_prop = NULL;
@@ -584,11 +584,11 @@ drv_resp_code_t OdcSwitch::parse_node_response(
                                                      -1,
                                                      json_obj_node_prop);
 
-  if ((DRVAPI_RESPONSE_SUCCESS != ret_val) ||
+  if ((restjson::REST_OP_SUCCESS != ret_val) ||
       (json_object_is_type(json_obj_node_prop, json_type_null))) {
     json_object_put(jobj);
     pfc_log_error("Parsing Error json_obj_node_prop is null");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   if (json_object_is_type(json_obj_node_prop, json_type_array)) {
@@ -598,19 +598,19 @@ drv_resp_code_t OdcSwitch::parse_node_response(
   if (0 == array_length) {
     pfc_log_trace("No SWITCH present");
     json_object_put(jobj);
-    return DRVAPI_RESPONSE_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   for (uint32_t arr_idx = 0; arr_idx < array_length; arr_idx++) {
-    drv_resp_code_t ret_val = fill_config_node_vector(ctr_ptr,
+    UncRespCode ret_val = fill_config_node_vector(ctr_ptr,
                              json_obj_node_prop, arr_idx, cfgnode_vector);
-    if (DRVAPI_RESPONSE_SUCCESS != ret_val) {
+    if (UNC_RC_SUCCESS != ret_val) {
       json_object_put(jobj);
       pfc_log_error("Error return from parse_node_append_vector failure");
       return ret_val;
     }
   }
   json_object_put(jobj);
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 }  // namespace odcdriver
 }  // namespace unc
index 1e1688405d04ba99174dafa5ac24895e43f82af7..c4dd64ca74d81028b07121eecb255a4681bff957 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013 NEC Corporation
+ * Copyright (c) 2013-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -24,7 +24,7 @@ OdcVbrCommand::~OdcVbrCommand() {
 }
 
 // Create Command and send Request to Controller
-drv_resp_code_t OdcVbrCommand::create_cmd(key_vbr_t& key_vbr,
+UncRespCode OdcVbrCommand::create_cmd(key_vbr_t& key_vbr,
                                           val_vbr_t& val_vbr,
                                           unc::driver::controller
                                           *ctr_ptr) {
@@ -34,7 +34,7 @@ drv_resp_code_t OdcVbrCommand::create_cmd(key_vbr_t& key_vbr,
   std::string vbr_url = get_vbr_url(key_vbr);
   if (vbr_url.empty()) {
     pfc_log_error("vbrif url is empty");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   unc::restjson::JsonBuildParse json_obj;
   json_object *json_req_body = create_request_body(val_vbr);
@@ -53,7 +53,7 @@ drv_resp_code_t OdcVbrCommand::create_cmd(key_vbr_t& key_vbr,
   json_object_put(json_req_body);
   if (NULL == response) {
     pfc_log_error("Error Occured while getting httpresponse");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   int resp_code = response->code;
   pfc_log_debug("resp_code for create vbr is %d", resp_code);
@@ -61,7 +61,7 @@ drv_resp_code_t OdcVbrCommand::create_cmd(key_vbr_t& key_vbr,
   if (HTTP_201_RESP_CREATED != resp_code) {
     pfc_log_debug("check if vtn is stand-alone");
     //  check if vtn is stand-alone
-    drv_resp_code_t ret_code = DRVAPI_RESPONSE_FAILURE;
+    UncRespCode ret_code = UNC_DRV_RC_ERR_GENERIC;
     std::vector<unc::vtndrvcache::ConfigNode*> child_list;
     child_list.clear();
     std::string vtn_name = reinterpret_cast<const char*>
@@ -71,7 +71,7 @@ drv_resp_code_t OdcVbrCommand::create_cmd(key_vbr_t& key_vbr,
     int vtn_child_size = static_cast<int> (child_list.size());
     pfc_log_debug("VTN child_list... size: %d", vtn_child_size);
 
-    if (ret_code == DRVAPI_RESPONSE_SUCCESS) {
+    if (ret_code == UNC_RC_SUCCESS) {
       if (vtn_child_size == 0) {
         pfc_log_debug("delete stand-alone vtn");
         //  delete stand-alone vtn
@@ -86,13 +86,13 @@ drv_resp_code_t OdcVbrCommand::create_cmd(key_vbr_t& key_vbr,
         vtn_obj.delete_cmd(key_vtn, val_vtn, ctr_ptr);
       }
     }
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 //  Command to update vtn  and Send request to Controller
-drv_resp_code_t OdcVbrCommand::update_cmd(key_vbr_t& key_vbr,
+UncRespCode OdcVbrCommand::update_cmd(key_vbr_t& key_vbr,
                                  val_vbr_t& val_vbr,
                                  unc::driver::controller *ctr_ptr) {
   ODC_FUNC_TRACE;
@@ -101,7 +101,7 @@ drv_resp_code_t OdcVbrCommand::update_cmd(key_vbr_t& key_vbr,
   std::string vbr_url = get_vbr_url(key_vbr);
   if (vbr_url.empty()) {
     pfc_log_error("vbr url is empty");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   json_object *json_req_body = create_request_body(val_vbr);
   unc::restjson::JsonBuildParse json_obj;
@@ -119,19 +119,19 @@ drv_resp_code_t OdcVbrCommand::update_cmd(key_vbr_t& key_vbr,
   json_object_put(json_req_body);
   if (NULL == response) {
     pfc_log_error("Error Occured while getting httpresponse");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   int resp_code = response->code;
   pfc_log_debug("Response code from Ctl for vbr update cmd : %d ", resp_code);
   if (HTTP_200_RESP_OK != resp_code) {
     pfc_log_error("vbr is not updated , resp_code is : %d", resp_code);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 // Delete Request send to the Controller
-drv_resp_code_t OdcVbrCommand::delete_cmd(key_vbr_t& key_vbr,
+UncRespCode OdcVbrCommand::delete_cmd(key_vbr_t& key_vbr,
                                           val_vbr_t& val_vbr,
                                           unc::driver::controller
                                           *ctr_ptr) {
@@ -142,7 +142,7 @@ drv_resp_code_t OdcVbrCommand::delete_cmd(key_vbr_t& key_vbr,
   pfc_log_debug("vbr_url:%s", vbr_url.c_str());
   if (vbr_url.empty()) {
     pfc_log_error("vbr url is empty");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   unc::restjson::RestUtil rest_util_obj(ctr_ptr->get_host_address(),
@@ -152,15 +152,15 @@ drv_resp_code_t OdcVbrCommand::delete_cmd(key_vbr_t& key_vbr,
 
   if (NULL == response) {
     pfc_log_error("Error Occured while getting httpresponse");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   int resp_code = response->code;
   pfc_log_debug("Response code from Ctl for delete vbr : %d ", resp_code);
   if (HTTP_200_RESP_OK != resp_code) {
     pfc_log_error("vbr delete is not success , resp_code id: %d", resp_code);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 // Creates Request Body
@@ -194,7 +194,7 @@ json_object* OdcVbrCommand::create_request_body(const val_vbr_t& val_vbr) {
 }
 
 // fetch child configurations for the parent kt(vtn)
-drv_resp_code_t OdcVbrCommand::fetch_config(unc::driver::controller* ctr,
+UncRespCode OdcVbrCommand::fetch_config(unc::driver::controller* ctr,
                                     void* parent_key,
                                     std::vector<unc::vtndrvcache::ConfigNode *>
                                     &cfgnode_vector) {
@@ -210,7 +210,7 @@ drv_resp_code_t OdcVbrCommand::fetch_config(unc::driver::controller* ctr,
 }
 
 // Get all vbridges under specified vtn
-drv_resp_code_t OdcVbrCommand::get_vbr_list(std::string vtn_name,
+UncRespCode OdcVbrCommand::get_vbr_list(std::string vtn_name,
                                              unc::driver::controller* ctr,
                                              std::vector< unc::vtndrvcache
                                              ::ConfigNode *>
@@ -233,30 +233,30 @@ drv_resp_code_t OdcVbrCommand::get_vbr_list(std::string vtn_name,
                     url, restjson::HTTP_METHOD_GET, NULL, conf_file_values_);
   if (NULL == response) {
     pfc_log_error("Error Occured while getting httpresponse");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   int resp_code = response->code;
   pfc_log_debug("Response code for GET vbridges : %d", resp_code);
 
   if (HTTP_200_RESP_OK != resp_code) {
     pfc_log_error("get vbridges is not succesful , resp_code %d", resp_code);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   if (NULL != response->write_data) {
     if (NULL != response->write_data->memory) {
        char *data = response->write_data->memory;
-       drv_resp_code_t ret_code = parse_vbr_response(data,
-                                                     vtn_name,
-                                                     ctr,
-                                                     cfgnode_vector);
+       UncRespCode ret_code = parse_vbr_response(data,
+                                                 vtn_name,
+                                                 ctr,
+                                                 cfgnode_vector);
        return ret_code;
     }
   }
-  return DRVAPI_RESPONSE_FAILURE;
+  return UNC_DRV_RC_ERR_GENERIC;
 }
 
 // Prsing fuction for vbridge after getting vbridge from controller
-drv_resp_code_t OdcVbrCommand::parse_vbr_response(char *data,
+UncRespCode OdcVbrCommand::parse_vbr_response(char *data,
                                          std::string vtn_name,
                                   unc::driver::controller* ctr,
   std::vector< unc::vtndrvcache::ConfigNode *> &cfgnode_vector) {
@@ -269,7 +269,7 @@ drv_resp_code_t OdcVbrCommand::parse_vbr_response(char *data,
   if (json_object_is_type(jobj, json_type_null)) {
     pfc_log_error("Exit parse_vbr_resp_data. json_object_is_type null");
     json_object_put(jobj);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   pfc_log_debug("response data from controller : %s", data);
   uint32_t array_length = 0;
@@ -279,13 +279,13 @@ drv_resp_code_t OdcVbrCommand::parse_vbr_response(char *data,
   if (json_object_is_type(json_obj_vbr, json_type_null)) {
     json_object_put(jobj);
     pfc_log_error("%s jobj_vbr NULL", PFC_FUNCNAME);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   if (restjson::REST_OP_SUCCESS != ret_val) {
     pfc_log_error("Error in parsing json object in %s", PFC_FUNCNAME);
     json_object_put(jobj);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   if (json_object_is_type(json_obj_vbr, json_type_array)) {
@@ -293,22 +293,22 @@ drv_resp_code_t OdcVbrCommand::parse_vbr_response(char *data,
   }
   pfc_log_debug(" array _length %d" , array_length);
   for (uint32_t arr_idx = 0; arr_idx < array_length; arr_idx++) {
-    drv_resp_code_t retval = fill_config_node_vector(ctr, json_obj_vbr,
+    UncRespCode retval = fill_config_node_vector(ctr, json_obj_vbr,
                                           vtn_name, arr_idx, cfgnode_vector);
-    if (DRVAPI_RESPONSE_SUCCESS != retval) {
+    if (UNC_RC_SUCCESS != retval) {
       pfc_log_error("Error in parsing vbr resp data in %s", PFC_FUNCNAME);
       json_object_put(jobj);
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
   }
   json_object_put(jobj);
   pfc_log_debug("cfgnode_vector.size: %d" ,
                 static_cast<int>(cfgnode_vector.size()));
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 // each vbridge node append to cache
-drv_resp_code_t OdcVbrCommand::fill_config_node_vector(
+UncRespCode OdcVbrCommand::fill_config_node_vector(
     unc::driver::controller* ctr, json_object *json_obj_vbr,
     std::string vtn_name, uint32_t arr_idx,
     std::vector<unc::vtndrvcache::ConfigNode *> &cfgnode_vector) {
@@ -324,14 +324,14 @@ drv_resp_code_t OdcVbrCommand::fill_config_node_vector(
                                                 arr_idx, vbr_name);
   if (restjson::REST_OP_SUCCESS != ret_val) {
     pfc_log_error("Error occured while parsing vbr name");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   ret_val = restjson::JsonBuildParse::parse(json_obj_vbr, "description",
                                             arr_idx, vbr_description);
   if (restjson::REST_OP_SUCCESS != ret_val) {
     pfc_log_error(" Error occured while parsing vbr description");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   //  Fills the vbr KEY structure
   strncpy(reinterpret_cast<char*> (key_vbr.vtn_key.vtn_name), vtn_name.c_str(),
@@ -375,7 +375,7 @@ drv_resp_code_t OdcVbrCommand::fill_config_node_vector(
   cfgnode_vector.push_back(cfgptr);
   pfc_log_debug("parse_vbr_append_vector Exiting. cfgnode_vector size: %d",
                 static_cast<int>(cfgnode_vector.size()));
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 // Constructing URL for vbridge,inject request to controller
index a539eadac253b1ebe84f5cc1644fa31666c2869f..12505cade9753a4316421880daeb3b8abea753a3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013 NEC Corporation
+ * Copyright (c) 2013-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -24,7 +24,7 @@ OdcVbrVlanMapCommand::~OdcVbrVlanMapCommand() {
 }
 
 // fetch child configurations for the parent kt(vbr)
-drv_resp_code_t OdcVbrVlanMapCommand::fetch_config(
+UncRespCode OdcVbrVlanMapCommand::fetch_config(
     unc::driver::controller* ctr,
     void* parent_key,
     std::vector <unc::vtndrvcache::ConfigNode *> &cfgnode_vector) {
@@ -33,23 +33,23 @@ drv_resp_code_t OdcVbrVlanMapCommand::fetch_config(
 }
 
 // Validates VLAN exists or not
-drv_resp_code_t OdcVbrVlanMapCommand::validate_vlan_exist(
-                                        key_vlan_map_t &key_vlan_map,
-                                        val_vlan_map_t &val_vlan_map,
-                                        const std::string &logical_port_id,
-                                        unc::driver::controller *ctr,
-                                        pfc_bool_t &is_switch_exist,
-                                        std::string &port_id) {
+UncRespCode OdcVbrVlanMapCommand::validate_vlan_exist(
+  key_vlan_map_t &key_vlan_map,
+  pfcdrv_val_vlan_map_t &val_vlan_map,
+  const std::string &logical_port_id,
+  unc::driver::controller *ctr,
+  pfc_bool_t &is_switch_exist,
+  std::string &port_id) {
   ODC_FUNC_TRACE;
   if (key_vlan_map.logical_port_id_valid != 0) {
     // Validate request received with SwitchID
-    drv_resp_code_t ret_val =
+    UncRespCode ret_val =
         check_switch_already_exists(key_vlan_map,
                  val_vlan_map, logical_port_id, ctr, is_switch_exist, port_id);
     return ret_val;
   } else {
     // Validate request received without SwitchID
-    drv_resp_code_t  ret_val = check_ANY_already_exists
+    UncRespCode  ret_val = check_ANY_already_exists
         (key_vlan_map, val_vlan_map, ctr, is_switch_exist, port_id);
       return ret_val;
   }
@@ -57,14 +57,15 @@ drv_resp_code_t OdcVbrVlanMapCommand::validate_vlan_exist(
 
 // Check  "ANY" vlan-id (vlan-id not associated with any switch)
 // exists in controller
-drv_resp_code_t
-OdcVbrVlanMapCommand::check_ANY_already_exists(key_vlan_map_t &key_vlan_map,
-                                              val_vlan_map_t  &val_vlan_map,
-                                              unc::driver::controller *ctr,
-                                              pfc_bool_t &is_switch_exist,
-                                              std::string &port_id) {
+UncRespCode
+OdcVbrVlanMapCommand::check_ANY_already_exists(
+    key_vlan_map_t &key_vlan_map,
+    pfcdrv_val_vlan_map_t  &val_vlan_map,
+    unc::driver::controller *ctr,
+    pfc_bool_t &is_switch_exist,
+    std::string &port_id) {
   ODC_FUNC_TRACE;
-  uint vlan_id_req = val_vlan_map.vlan_id;
+  uint vlan_id_req = val_vlan_map.vm.vlan_id;
   std::string vtn_name_req =
       reinterpret_cast<char*>(key_vlan_map.vbr_key.vtn_key.vtn_name);
   std::string vbr_name_req =
@@ -87,7 +88,7 @@ OdcVbrVlanMapCommand::check_ANY_already_exists(key_vlan_map_t &key_vlan_map,
     size_t vlan_occurence = vtn_vbr_vlan_data.find_last_of(PERIOD);
     if (vlan_occurence == std::string::npos) {
       pfc_log_error("%s: Error in parsing data", PFC_FUNCNAME);
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
     std::string vlan_id = vtn_vbr_vlan_data.substr(vlan_occurence+1);
     uint vlan_id_ctr = atoi(vlan_id.c_str());
@@ -101,7 +102,7 @@ OdcVbrVlanMapCommand::check_ANY_already_exists(key_vlan_map_t &key_vlan_map,
         (vbr_name_ctr.empty()) ||
         (switch_id_ctr.empty())) {
       pfc_log_error("Error in parsing values ");
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
 
     if (vlan_id_req != vlan_id_ctr) {
@@ -125,22 +126,22 @@ OdcVbrVlanMapCommand::check_ANY_already_exists(key_vlan_map_t &key_vlan_map,
           }
     } else {
       pfc_log_error("%s: VLANID Conflict for Node type ANY!!!", PFC_FUNCNAME);
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
   }
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 // Check if switch id exists in controller
-drv_resp_code_t OdcVbrVlanMapCommand::check_switch_already_exists(
+UncRespCode OdcVbrVlanMapCommand::check_switch_already_exists(
     key_vlan_map_t &key_vlan_map,
-    val_vlan_map_t &val_vlan_map,
+    pfcdrv_val_vlan_map_t &val_vlan_map,
     const std::string &switch_id_req,
     unc::driver::controller *ctr_ptr,
     pfc_bool_t &is_switch_exist,
     std::string &port_id) {
   ODC_FUNC_TRACE;
-  uint vlan_id_req = val_vlan_map.vlan_id;
+  uint vlan_id_req = val_vlan_map.vm.vlan_id;
   std::string vtn_name_req = reinterpret_cast<char*>
       (key_vlan_map.vbr_key.vtn_key.vtn_name);
   std::string vbr_name_req = reinterpret_cast<char*>
@@ -160,7 +161,7 @@ drv_resp_code_t OdcVbrVlanMapCommand::check_switch_already_exists(
   } else {
     pfc_log_error("%s: Request logical port is not in the format of SW-",
                   PFC_FUNCNAME);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   unc::odcdriver::OdcController *odc_ctr =
@@ -173,7 +174,7 @@ drv_resp_code_t OdcVbrVlanMapCommand::check_switch_already_exists(
     size_t vlan_occurence = vtn_vbr_vlan_data.find_last_of(PERIOD);
     if (vlan_occurence == std::string::npos) {
       pfc_log_error("%s: Error in parsing vlan-id", PFC_FUNCNAME);
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
     std::string vlan_id = vtn_vbr_vlan_data.substr(vlan_occurence+1);
     uint vlan_id_ctr = atoi(vlan_id.c_str());
@@ -186,7 +187,7 @@ drv_resp_code_t OdcVbrVlanMapCommand::check_switch_already_exists(
          (vbr_name_ctr.empty()) ||
          (switch_id_ctr.empty())) {
       pfc_log_error("%s: Error in parsing values", PFC_FUNCNAME);
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
 
     if (vlan_id_req == vlan_id_ctr) {
@@ -196,22 +197,22 @@ drv_resp_code_t OdcVbrVlanMapCommand::check_switch_already_exists(
             pfc_log_error("%s:VLAN ID Conflict for SWID in Request & "
                               "ANY in Controller %s",
                               PFC_FUNCNAME, switch_id_ctr.c_str());
-            return DRVAPI_RESPONSE_FAILURE;
+            return UNC_DRV_RC_ERR_GENERIC;
           } else if (logical_port_req.compare(switch_id_ctr) == 0) {
             pfc_log_error("%s: VLANID Conflict for SWID in Request & "
                           "Controller (%s)!!!",
                           PFC_FUNCNAME, switch_id_ctr.c_str());
-            return DRVAPI_RESPONSE_FAILURE;
+            return UNC_DRV_RC_ERR_GENERIC;
           }
         } else {
           pfc_log_error("%s:VLAN id Conflict in different vbridges "
                         "under same VTN", PFC_FUNCNAME);
-          return DRVAPI_RESPONSE_FAILURE;
+          return UNC_DRV_RC_ERR_GENERIC;
         }
       } else {
         pfc_log_error("%s:VLAN id Conflict in different "
                       "vbridges under different VTN", PFC_FUNCNAME);
-        return DRVAPI_RESPONSE_FAILURE;
+        return UNC_DRV_RC_ERR_GENERIC;
       }
     } else {
       if ((vtn_name_req.compare(vtn_name_ctr) == 0) &&
@@ -228,7 +229,7 @@ drv_resp_code_t OdcVbrVlanMapCommand::check_switch_already_exists(
       }
     }
   }
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 // parses the vector and gets vtn, vbr, sw id as out param
@@ -262,7 +263,7 @@ void OdcVbrVlanMapCommand::parse_data_from_vector(
 }
 
 // Getting vbridge vlanmap if available
-drv_resp_code_t OdcVbrVlanMapCommand::get_vbrvlanmap_list(void* parent_key,
+UncRespCode OdcVbrVlanMapCommand::get_vbrvlanmap_list(void* parent_key,
                                                           unc::driver
                                                           ::controller* ctr,
                                                           std::vector
@@ -280,7 +281,7 @@ drv_resp_code_t OdcVbrVlanMapCommand::get_vbrvlanmap_list(void* parent_key,
   PFC_ASSERT(ctr != NULL);
   if ((0 == strlen(vtn_name.c_str())) || (0 == strlen(vbr_name.c_str()))) {
     pfc_log_error("%s: Empty VTN/VBR name", PFC_FUNCNAME);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   // Construct URL to retrieve vlanmaps from controller
@@ -303,7 +304,7 @@ drv_resp_code_t OdcVbrVlanMapCommand::get_vbrvlanmap_list(void* parent_key,
 
   if (NULL == response) {
     pfc_log_error("%s:Error Occured while getting http response", PFC_FUNCNAME);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   int resp_code = response->code;
   pfc_log_debug("%s: Response code (%d) from Ctrl for get vbrvlanmap",
@@ -317,23 +318,23 @@ drv_resp_code_t OdcVbrVlanMapCommand::get_vbrvlanmap_list(void* parent_key,
       pfc_log_error("%s:VTN Manager service not operating inside controller %u",
                     PFC_FUNCNAME, resp_code);
     }
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   if (NULL != response->write_data) {
     if (NULL != response->write_data->memory) {
       char *data = response->write_data->memory;
-      drv_resp_code_t parse_ret = DRVAPI_RESPONSE_FAILURE;
+      UncRespCode parse_ret = UNC_DRV_RC_ERR_GENERIC;
       // Parse the vlan-map GET response from controller
       parse_ret = parse_vbrvlanmap_response(parent_key, ctr, data,
                                             cfgnode_vector);
       return parse_ret;
     }
   }
-  return DRVAPI_RESPONSE_FAILURE;
+  return UNC_DRV_RC_ERR_GENERIC;
 }
 
 // Parse the VBR_VLANMAP data
-drv_resp_code_t OdcVbrVlanMapCommand::parse_vbrvlanmap_response(
+UncRespCode OdcVbrVlanMapCommand::parse_vbrvlanmap_response(
                                                             void *parent_key,
                                                 unc::driver::controller* ctr,
                                                                   char *data,
@@ -342,7 +343,7 @@ drv_resp_code_t OdcVbrVlanMapCommand::parse_vbrvlanmap_response(
   json_object* jobj = unc::restjson::JsonBuildParse::get_json_object(data);
   if (json_object_is_type(jobj, json_type_null)) {
     pfc_log_error("%s: json_object_is_null", PFC_FUNCNAME);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   uint32_t array_length = 0;
   json_object *json_obj_vbrvlanmap = NULL;
@@ -354,13 +355,13 @@ drv_resp_code_t OdcVbrVlanMapCommand::parse_vbrvlanmap_response(
   if (json_object_is_type(json_obj_vbrvlanmap, json_type_null)) {
     pfc_log_error("%s: json vbrvlanmap is null", PFC_FUNCNAME);
     json_object_put(jobj);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   if (restjson::REST_OP_SUCCESS != ret_val) {
     json_object_put(jobj);
     pfc_log_error("%s: JsonBuildParse::parse fail", PFC_FUNCNAME);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   // If more than 0 vlanmap configurations are present,retrieve the array length
   if (json_object_is_type(json_obj_vbrvlanmap, json_type_array)) {
@@ -368,40 +369,39 @@ drv_resp_code_t OdcVbrVlanMapCommand::parse_vbrvlanmap_response(
                                                               "vlanmap");
   }
 
-  drv_resp_code_t resp_code = DRVAPI_RESPONSE_FAILURE;
+  UncRespCode resp_code = UNC_DRV_RC_ERR_GENERIC;
 
   // Loop for all vlanmap configurations and cache it
   for (uint32_t arr_idx = 0; arr_idx < array_length; arr_idx++) {
     resp_code = fill_config_node_vector(parent_key, ctr, json_obj_vbrvlanmap,
                                         arr_idx, cfgnode_vector);
-    if (DRVAPI_RESPONSE_FAILURE == resp_code) {
+    if (UNC_DRV_RC_ERR_GENERIC == resp_code) {
       json_object_put(jobj);
       pfc_log_error("%s: fill_config_node_vector failed", PFC_FUNCNAME);
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
   }
   json_object_put(jobj);
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 // Parse VBR_VLANMAP and append it to confignode vector
-drv_resp_code_t OdcVbrVlanMapCommand::fill_config_node_vector(void *parent_key,
+UncRespCode OdcVbrVlanMapCommand::fill_config_node_vector(void *parent_key,
                                                   unc::driver::controller* ctr,
                                                              json_object *jobj,
                                                               uint32_t arr_idx,
                 std::vector< unc::vtndrvcache::ConfigNode *> &cfgnode_vector) {
   ODC_FUNC_TRACE;
   key_vlan_map_t key_vlan_map;
-  val_vlan_map_t val_vlan_map;
+  pfcdrv_val_vlan_map_t val_vlan_map;
   memset(&key_vlan_map, 0, sizeof(key_vlan_map_t));
-  memset(&val_vlan_map, 0, sizeof(val_vlan_map_t));
-  val_vlan_map.valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+  memset(&val_vlan_map, 0, sizeof(pfcdrv_val_vlan_map_t));
   std::string vlan = "0";
   int ret_val = unc::restjson::JsonBuildParse::parse(jobj, "vlan", arr_idx,
                                                      vlan);
   if (restjson::REST_OP_SUCCESS != ret_val) {
     pfc_log_error("%s: Parse error for vlanid", PFC_FUNCNAME);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   pfc_log_debug("%s: Vlan id parsed %s", PFC_FUNCNAME, vlan.c_str());
   std::string id = "";
@@ -409,25 +409,27 @@ drv_resp_code_t OdcVbrVlanMapCommand::fill_config_node_vector(void *parent_key,
                                                  id);
   if (restjson::REST_OP_SUCCESS != ret_val) {
     pfc_log_error("%s: Parse error for id", PFC_FUNCNAME);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   pfc_log_debug("%s: ID parsed %s", PFC_FUNCNAME, id.c_str());
   if (id.empty()) {
     pfc_log_error("%s: id is empty", PFC_FUNCNAME);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
-  val_vlan_map.vlan_id = atoi(vlan.c_str());
-  if (val_vlan_map.vlan_id == 0) {
-    val_vlan_map.vlan_id = 0xFFFF;
+  val_vlan_map.valid[PFCDRV_IDX_VAL_VLAN_MAP] = UNC_VF_VALID;
+  val_vlan_map.vm.valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+  val_vlan_map.vm.vlan_id = atoi(vlan.c_str());
+  if (val_vlan_map.vm.vlan_id == 0) {
+    val_vlan_map.vm.vlan_id = 0xFFFF;
     pfc_log_debug("%s: Vlan id untagged set as %d", PFC_FUNCNAME,
-                  val_vlan_map.vlan_id);
+                  val_vlan_map.vm.vlan_id);
   }
   json_object *jobj_node = NULL;
   ret_val = unc::restjson::JsonBuildParse::parse(jobj, "node", arr_idx,
                                                  jobj_node);
   if (restjson::REST_OP_SUCCESS != ret_val) {
     pfc_log_error("%s: Parse Error for node", PFC_FUNCNAME);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   if (json_object_is_type(jobj_node, json_type_null)) {
@@ -440,7 +442,7 @@ drv_resp_code_t OdcVbrVlanMapCommand::fill_config_node_vector(void *parent_key,
 
     if (restjson::REST_OP_SUCCESS != ret_val) {
       pfc_log_error("%s: Parse Error for ID", PFC_FUNCNAME);
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
     switch_id.append(node_id);
     strncpy(reinterpret_cast<char*>
@@ -458,7 +460,7 @@ drv_resp_code_t OdcVbrVlanMapCommand::fill_config_node_vector(void *parent_key,
 
   if ((parent_vtn_name.empty()) || (parent_vbr_name.empty())) {
     pfc_log_error("%s: VTN/VBR name is empty", PFC_FUNCNAME);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   strncpy(reinterpret_cast<char*> (key_vlan_map.vbr_key.vtn_key.vtn_name),
           parent_vtn_name.c_str(), strlen(parent_vtn_name.c_str()));
@@ -469,7 +471,7 @@ drv_resp_code_t OdcVbrVlanMapCommand::fill_config_node_vector(void *parent_key,
   // Cache the parsed vlanmap configurations
   unc::vtndrvcache::ConfigNode *cfgptr =
       new unc::vtndrvcache::CacheElementUtil
-      <key_vlan_map_t, val_vlan_map_t, uint32_t>
+      <key_vlan_map_t, pfcdrv_val_vlan_map_t, uint32_t>
       (&key_vlan_map, &val_vlan_map, uint32_t(UNC_OP_READ));
   PFC_ASSERT(cfgptr != NULL);
   cfgnode_vector.push_back(cfgptr);
@@ -494,7 +496,7 @@ drv_resp_code_t OdcVbrVlanMapCommand::fill_config_node_vector(void *parent_key,
   if (PFC_FALSE == is_data_exist) {
     odc_ctr->vlan_vector.push_back(vtn_vbr_vlan);
   }
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 std::string OdcVbrVlanMapCommand::generate_string_for_vector(
@@ -553,9 +555,9 @@ std::string OdcVbrVlanMapCommand::generate_vlanmap_id(
 }
 
 // Create Command for vbr vlanmap
-drv_resp_code_t OdcVbrVlanMapCommand::create_cmd(
+UncRespCode OdcVbrVlanMapCommand::create_cmd(
     key_vlan_map_t& vlanmap_key,
-    val_vlan_map_t& vlanmap_val,
+    pfcdrv_val_vlan_map_t& vlanmap_val,
     unc::driver::controller* ctr_ptr) {
 
   ODC_FUNC_TRACE;
@@ -563,9 +565,9 @@ drv_resp_code_t OdcVbrVlanMapCommand::create_cmd(
 }
 
 // Update Command for vbr vlanmap
-drv_resp_code_t OdcVbrVlanMapCommand::update_cmd(
+UncRespCode OdcVbrVlanMapCommand::update_cmd(
     key_vlan_map_t& vlanmap_key,
-    val_vlan_map_t& vlanmap_val,
+    pfcdrv_val_vlan_map_t& vlanmap_val,
     unc::driver::controller* ctr_ptr) {
 
   ODC_FUNC_TRACE;
@@ -573,7 +575,7 @@ drv_resp_code_t OdcVbrVlanMapCommand::update_cmd(
 }
 
 // Delete vlan-map from controller
-drv_resp_code_t OdcVbrVlanMapCommand::del_existing_vlanmap(
+UncRespCode OdcVbrVlanMapCommand::del_existing_vlanmap(
     key_vlan_map_t& vlanmap_key,
     unc::driver::controller*
     ctr_ptr, const std::string &str_mapping_id) {
@@ -582,11 +584,11 @@ drv_resp_code_t OdcVbrVlanMapCommand::del_existing_vlanmap(
   std::string del_vbr_vlanmap_url = get_vbrvlanmap_url(vlanmap_key);
   if (del_vbr_vlanmap_url.empty()) {
     pfc_log_error("%s: vlanmap url is empty", PFC_FUNCNAME);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   if (str_mapping_id.empty()) {
     pfc_log_error("%s: MapID received is empty", PFC_FUNCNAME);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   del_vbr_vlanmap_url.append(str_mapping_id);
@@ -601,7 +603,7 @@ drv_resp_code_t OdcVbrVlanMapCommand::del_existing_vlanmap(
 
   if (NULL == response) {
     pfc_log_error("%s: Error Occured while getting httpresponse", PFC_FUNCNAME);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   int resp_code = response->code;
   pfc_log_debug("%s: Response code from Ctl for delete vlanmap (%d) ",
@@ -610,7 +612,7 @@ drv_resp_code_t OdcVbrVlanMapCommand::del_existing_vlanmap(
   if (HTTP_200_RESP_OK != resp_code) {
     pfc_log_error("%s: Delete vlanmap is not successful %d",
                   PFC_FUNCNAME, resp_code);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   std::string vtn_name_req =
@@ -621,20 +623,20 @@ drv_resp_code_t OdcVbrVlanMapCommand::del_existing_vlanmap(
                                                 vbr_name_req, str_mapping_id);
   if (vtn_vbr_vlan_delete.empty()) {
     pfc_log_debug("vtn/vbr/id is empty");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
 
   // Entry from search vector is removed
   delete_from_vector(ctr_ptr, vtn_vbr_vlan_delete);
 
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 // Create or Update Command for vbr vlanmap
-drv_resp_code_t OdcVbrVlanMapCommand::create_update_cmd(
+UncRespCode OdcVbrVlanMapCommand::create_update_cmd(
     key_vlan_map_t& vlanmap_key,
-    val_vlan_map_t& vlanmap_val,
+    pfcdrv_val_vlan_map_t& vlanmap_val,
     unc::driver::controller* ctr_ptr) {
   ODC_FUNC_TRACE;
   PFC_ASSERT(ctr_ptr != NULL);
@@ -649,35 +651,35 @@ drv_resp_code_t OdcVbrVlanMapCommand::create_update_cmd(
     if (ret_val != ODC_DRV_SUCCESS) {
       pfc_log_error("%s: Validation for logical_port[%s] failed ",
                     PFC_FUNCNAME, logical_port_id.c_str());
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
     pfc_log_debug(" Logical port id received %s", logical_port_id.c_str());
   }
-  if (vlanmap_val.valid[UPLL_IDX_VLAN_ID_VM] != UNC_VF_VALID) {
+  if (vlanmap_val.vm.valid[UPLL_IDX_VLAN_ID_VM] != UNC_VF_VALID) {
     pfc_log_error("%s: Received invalid Vlan_id",
                     PFC_FUNCNAME);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   // Validate if vlanid already exists in controller
-  drv_resp_code_t validate_resp = validate_vlan_exist(vlanmap_key,
-                                                      vlanmap_val,
-                                                      logical_port_id,
-                                                      ctr_ptr,
-                                                      vlan_map_exists,
-                                                      strmapid);
-
-  if (validate_resp != DRVAPI_RESPONSE_SUCCESS) {
+  UncRespCode validate_resp = validate_vlan_exist(vlanmap_key,
+                                                  vlanmap_val,
+                                                  logical_port_id,
+                                                  ctr_ptr,
+                                                  vlan_map_exists,
+                                                  strmapid);
+
+  if (UNC_RC_SUCCESS != validate_resp) {
     pfc_log_error("%s Validation of vlanmap failed, validate_resp(%u)",
                   PFC_FUNCNAME, validate_resp);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   // If vlanid exists for same SwitchID/ANY delete the existing vlanmap
   // and create a new vlanmap
-  if (vlan_map_exists == PFC_TRUE) {
+  if (PFC_TRUE == vlan_map_exists) {
     if (del_existing_vlanmap(vlanmap_key, ctr_ptr, strmapid) !=
-        DRVAPI_RESPONSE_SUCCESS) {
+        UNC_RC_SUCCESS) {
       pfc_log_error("%s Delete of vlanmap failed", PFC_FUNCNAME);
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
   }
 
@@ -685,7 +687,7 @@ drv_resp_code_t OdcVbrVlanMapCommand::create_update_cmd(
   pfc_log_debug("%s: Vlanmap url %s ", PFC_FUNCNAME, vbr_vlanmap_url.c_str());
   if (vbr_vlanmap_url.empty()) {
     pfc_log_error("%s: Vlanmap url is empty", PFC_FUNCNAME);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   unc::restjson::JsonBuildParse json_obj;
   json_object* vbrvlanmap_json_request_body = create_request_body(
@@ -705,7 +707,7 @@ drv_resp_code_t OdcVbrVlanMapCommand::create_update_cmd(
   if (NULL == response) {
     pfc_log_error("%s: Error Occured while getting httpresponse",
                   PFC_FUNCNAME);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   int resp_code = response->code;
   pfc_log_debug("%s: Response code from Ctl for vlanmap create_cmd: %d",
@@ -713,30 +715,30 @@ drv_resp_code_t OdcVbrVlanMapCommand::create_update_cmd(
   if (HTTP_201_RESP_CREATED != resp_code) {
     pfc_log_error("%s: Create/Update Vlanmap Failure.Response code %d",
                   PFC_FUNCNAME, resp_code);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   std::string vtn_name_req =
       reinterpret_cast<char*>(vlanmap_key.vbr_key.vtn_key.vtn_name);
   std::string vbr_name_req =
       reinterpret_cast<char*>(vlanmap_key.vbr_key.vbridge_name);
 
-  uint vlanid =  vlanmap_val.vlan_id;
+  uint vlanid =  vlanmap_val.vm.vlan_id;
   std::ostringstream convert_vlanid;
   convert_vlanid << vlanid;
   std::string map_id = generate_vlanmap_id(vlanmap_key, convert_vlanid.str(),
                                            logical_port_id);
   if (map_id.empty()) {
     pfc_log_error("Error occured in generating vlan map id");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   std::string vtn_vbr_vlan_update = generate_string_for_vector(vtn_name_req,
                           vbr_name_req, map_id);
   if (vtn_vbr_vlan_update.empty()) {
     pfc_log_error("vtn/vbr/switch id is empty in %s", PFC_FUNCNAME);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   update_vector(ctr_ptr,  vtn_vbr_vlan_update);
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 // Deletes particular entry from vlan-map vector
@@ -833,13 +835,10 @@ OdcVbrVlanMapCommand::generate_vlanid_from_vector(unc::driver::controller *ctr,
 }
 
 // Delete Command for vbr vlan-map
-drv_resp_code_t OdcVbrVlanMapCommand::delete_cmd(key_vlan_map_t&
-                                                 vlanmap_key,
-                                                 val_vlan_map_t&
-                                                 vlanmap_val,
-                                                 unc::driver
-                                                 ::controller*
-                                                 ctr_ptr) {
+UncRespCode OdcVbrVlanMapCommand::delete_cmd(
+    key_vlan_map_t& vlanmap_key,
+    pfcdrv_val_vlan_map_t& vlanmap_val,
+    unc::driver::controller* ctr_ptr) {
   ODC_FUNC_TRACE;
   PFC_ASSERT(ctr_ptr != NULL);
 
@@ -861,7 +860,7 @@ drv_resp_code_t OdcVbrVlanMapCommand::delete_cmd(key_vlan_map_t&
     if (ret_val != ODC_DRV_SUCCESS) {
       pfc_log_error("%s: Validation for logical_port[%s] failed ",
                     PFC_FUNCNAME, logical_portid_req.c_str());
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
     std::string switch_id = logical_portid_req;
     pfc_log_debug(" Logical port id received %s", logical_portid_req.c_str());
@@ -877,7 +876,7 @@ drv_resp_code_t OdcVbrVlanMapCommand::delete_cmd(key_vlan_map_t&
                                       vlanmap_key, logical_portid_req);
   if (str_vlan_id.empty()) {
     pfc_log_error("%s: Empty vlan id returned", PFC_FUNCNAME);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   str_mapping_id.append(PERIOD);
   str_mapping_id.append(str_vlan_id);
@@ -890,7 +889,7 @@ drv_resp_code_t OdcVbrVlanMapCommand::delete_cmd(key_vlan_map_t&
 
   if (vbr_vlanmap_url.empty()) {
     pfc_log_error("%s: vlanmap url is empty", PFC_FUNCNAME);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   vbr_vlanmap_url.append(str_mapping_id);
   pfc_log_debug("%s: Vlanmap delete URL :%s", PFC_FUNCNAME,
@@ -902,7 +901,7 @@ drv_resp_code_t OdcVbrVlanMapCommand::delete_cmd(key_vlan_map_t&
        vbr_vlanmap_url, restjson::HTTP_METHOD_DELETE, NULL, conf_file_values_);
   if (NULL == response) {
     pfc_log_error("%s: Error Occured while getting httpresponse", PFC_FUNCNAME);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   int resp_code = response->code;
   pfc_log_debug("%s: Response code from Ctrl for delete vlanmap(%d)",
@@ -910,7 +909,7 @@ drv_resp_code_t OdcVbrVlanMapCommand::delete_cmd(key_vlan_map_t&
   if (HTTP_200_RESP_OK != resp_code) {
     pfc_log_error("%s: Delete of vlanmap Failed.Response Code %d",
                   PFC_FUNCNAME, resp_code);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   std::string vtn_name_req =
       reinterpret_cast<char*>(vlanmap_key.vbr_key.vtn_key.vtn_name);
@@ -921,15 +920,16 @@ drv_resp_code_t OdcVbrVlanMapCommand::delete_cmd(key_vlan_map_t&
                                                vbr_name_req, str_mapping_id);
   if (vtn_vbr_vlan_delete.empty()) {
     pfc_log_error("vtn/vbr/switch id is empty in %s", PFC_FUNCNAME);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   delete_from_vector(ctr_ptr, vtn_vbr_vlan_delete);
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 // Creates request body for vbr vlanmap
 json_object* OdcVbrVlanMapCommand::create_request_body(
-    key_vlan_map_t& vlanmap_key, val_vlan_map_t& vlanmap_val,
+    key_vlan_map_t& vlanmap_key,
+    pfcdrv_val_vlan_map_t& vlanmap_val,
     const std::string &logical_port_id) {
   ODC_FUNC_TRACE;
   unc::restjson::JsonBuildParse json_obj;
@@ -937,13 +937,13 @@ json_object* OdcVbrVlanMapCommand::create_request_body(
   uint32_t ret_val = 1;
   std::string vlanid;
 
-  if (vlanmap_val.vlan_id == 0xFFFF) {
+  if (vlanmap_val.vm.vlan_id == 0xFFFF) {
     pfc_log_debug("%s: Vlan Untagged ", PFC_FUNCNAME);
     vlanid = "0";
   } else {
     pfc_log_debug("%s: Vlan Tagged ", PFC_FUNCNAME);
     std::ostringstream convert_vlanid;
-    convert_vlanid << vlanmap_val.vlan_id;
+    convert_vlanid << vlanmap_val.vm.vlan_id;
     vlanid.append(convert_vlanid.str());
   }
   pfc_log_debug("%s: Vlanid: %s", PFC_FUNCNAME, vlanid.c_str());
index ed2120fa7df58006588c5f1b46081772f58e90a7..5b6a4f814856f3bcbbf28ebc59c87c99c197d1be 100644 (file)
@@ -281,7 +281,7 @@ std::string OdcVbrIfCommand::get_vbrif_url(key_vbr_if_t& vbrif_key) {
 
 
 // Create Command for vbrif
-drv_resp_code_t OdcVbrIfCommand::create_cmd(key_vbr_if_t& vbrif_key,
+UncRespCode OdcVbrIfCommand::create_cmd(key_vbr_if_t& vbrif_key,
                                             pfcdrv_val_vbr_if_t& vbrif_val,
                                             unc::driver::controller*
                                             ctr_ptr) {
@@ -290,7 +290,7 @@ drv_resp_code_t OdcVbrIfCommand::create_cmd(key_vbr_if_t& vbrif_key,
   std::string vbrif_url = get_vbrif_url(vbrif_key);
   if (vbrif_url.empty()) {
     pfc_log_error("vbrif url is empty");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   json_object* vbrif_json_request_body = create_request_body(vbrif_val);
   json_object* port_map_json_req_body = NULL;
@@ -306,7 +306,7 @@ drv_resp_code_t OdcVbrIfCommand::create_cmd(key_vbr_if_t& vbrif_key,
       vbrif_val.val_vbrif.portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM]) {
       pfc_log_error("portmap - logical port valid flag is not set");
       json_object_put(vbrif_json_request_body);
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
     std::string logical_port_id =
         reinterpret_cast<char*>(vbrif_val.val_vbrif.portmap.logical_port_id);
@@ -315,14 +315,14 @@ drv_resp_code_t OdcVbrIfCommand::create_cmd(key_vbr_if_t& vbrif_key,
     if (logical_port_retval != ODC_DRV_SUCCESS) {
       pfc_log_error("logical port id is Invalid");
       json_object_put(vbrif_json_request_body);
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
     port_map_json_req_body = create_request_body_port_map(vbrif_val,
                                                           logical_port_id);
     if (json_object_is_type(port_map_json_req_body, json_type_null)) {
       pfc_log_error("request body is null");
       json_object_put(vbrif_json_request_body);
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
     port_map_req_body = json_obj.get_string(port_map_json_req_body);
     pfc_log_debug("%s request body for portmap ", port_map_req_body);
@@ -339,14 +339,14 @@ drv_resp_code_t OdcVbrIfCommand::create_cmd(key_vbr_if_t& vbrif_key,
   if (NULL == response) {
     pfc_log_error("Error Occured while getting httpresponse");
     json_object_put(port_map_json_req_body);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   int resp_code = response->code;
   pfc_log_debug("Response code from Ctl for vbrif create_cmd: %d", resp_code);
   if (HTTP_201_RESP_CREATED != resp_code) {
     pfc_log_error("create vbrif is not success , resp_code %d", resp_code);
     json_object_put(port_map_json_req_body);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   // VBR_IF successful...Check for PortMap
   if (vbrif_val.val_vbrif.valid[UPLL_IDX_PM_VBRI] == UNC_VF_VALID) {
@@ -359,21 +359,21 @@ drv_resp_code_t OdcVbrIfCommand::create_cmd(key_vbr_if_t& vbrif_key,
     json_object_put(port_map_json_req_body);
     if (NULL == port_map_response) {
       pfc_log_error("Error Occured while getting httpresponse");
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
     int resp_code = port_map_response->code;
     if (HTTP_200_RESP_OK != resp_code) {
       pfc_log_error("port map  update is not success,rep_code: %d", resp_code);
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
   } else {
     pfc_log_debug("No Port map");
   }
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 // Update command for vbrif command
-drv_resp_code_t OdcVbrIfCommand::update_cmd(key_vbr_if_t& vbrif_key,
+UncRespCode OdcVbrIfCommand::update_cmd(key_vbr_if_t& vbrif_key,
                                             pfcdrv_val_vbr_if_t& val,
                                             unc::driver::controller
                                             *ctr_ptr) {
@@ -381,7 +381,7 @@ drv_resp_code_t OdcVbrIfCommand::update_cmd(key_vbr_if_t& vbrif_key,
   PFC_ASSERT(ctr_ptr != NULL);
   std::string vbrif_url = get_vbrif_url(vbrif_key);
   if (vbrif_url.empty()) {
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   json_object* vbrif_json_request_body = create_request_body(val);
   json_object* port_map_json_req_body = NULL;
@@ -397,7 +397,7 @@ drv_resp_code_t OdcVbrIfCommand::update_cmd(key_vbr_if_t& vbrif_key,
       val.val_vbrif.portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM]) {
       pfc_log_error("portmap - logical port valid flag is not set");
       json_object_put(vbrif_json_request_body);
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
     std::string logical_port_id =
         reinterpret_cast<char*>(val.val_vbrif.portmap.logical_port_id);
@@ -406,13 +406,13 @@ drv_resp_code_t OdcVbrIfCommand::update_cmd(key_vbr_if_t& vbrif_key,
     if (logical_port_retval != ODC_DRV_SUCCESS) {
       json_object_put(vbrif_json_request_body);
       pfc_log_error("logical port id is invalid");
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
     port_map_json_req_body = create_request_body_port_map(val, logical_port_id);
     if (json_object_is_type(port_map_json_req_body, json_type_null)) {
       pfc_log_error("port map req body is null");
       json_object_put(vbrif_json_request_body);
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
     port_map_req_body = json_obj.get_string(port_map_json_req_body);
     pfc_log_debug("%s request body for portmap ", port_map_req_body);
@@ -430,14 +430,14 @@ drv_resp_code_t OdcVbrIfCommand::update_cmd(key_vbr_if_t& vbrif_key,
   if (NULL == response) {
     pfc_log_error("Error Occured while getting httpresponse");
     json_object_put(port_map_json_req_body);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   int resp_code = response->code;
   pfc_log_debug("Response code from Ctl for update vbrif : %d ", resp_code);
   if (HTTP_200_RESP_OK != resp_code) {
     pfc_log_error("update vbrif is not successful %d", resp_code);
     json_object_put(port_map_json_req_body);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   uint32_t port_map_resp_code = ODC_DRV_FAILURE;
@@ -455,12 +455,12 @@ drv_resp_code_t OdcVbrIfCommand::update_cmd(key_vbr_if_t& vbrif_key,
     json_object_put(port_map_json_req_body);
     if (NULL == port_map_response) {
       pfc_log_error("Error Occured while getting httpresponse");
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
     port_map_resp_code = port_map_response->code;
     if (HTTP_200_RESP_OK != port_map_resp_code) {
       pfc_log_error("update portmap is not successful %d", resp_code);
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
   } else if ((val.val_vbrif.valid[UPLL_IDX_PM_VBRI] == UNC_VF_VALID_NO_VALUE)
              && (val.valid[PFCDRV_IDX_VAL_VBRIF] == UNC_VF_VALID)) {
@@ -472,20 +472,20 @@ drv_resp_code_t OdcVbrIfCommand::update_cmd(key_vbr_if_t& vbrif_key,
 
     if (NULL == port_map_response) {
       pfc_log_error("Error Occured while getting httpresponse");
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
     port_map_resp_code = port_map_response->code;
     if (HTTP_200_RESP_OK != port_map_resp_code) {
       pfc_log_error("delete portmap is not successful %d", resp_code);
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
   }
   pfc_log_debug("Response code from Ctl for portmap:%d", port_map_resp_code);
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 // Delete Command for vbr if
-drv_resp_code_t OdcVbrIfCommand::delete_cmd(key_vbr_if_t& vbrif_key,
+UncRespCode OdcVbrIfCommand::delete_cmd(key_vbr_if_t& vbrif_key,
                                             pfcdrv_val_vbr_if_t& val,
                                   unc::driver::controller* ctr_ptr) {
   ODC_FUNC_TRACE;
@@ -495,7 +495,7 @@ drv_resp_code_t OdcVbrIfCommand::delete_cmd(key_vbr_if_t& vbrif_key,
   pfc_log_debug("vbrif_url:%s", vbrif_url.c_str());
   if (vbrif_url.empty()) {
     pfc_log_error("brif url is empty");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   unc::restjson::RestUtil rest_util_obj(ctr_ptr->get_host_address(),
@@ -505,15 +505,15 @@ drv_resp_code_t OdcVbrIfCommand::delete_cmd(key_vbr_if_t& vbrif_key,
                         restjson::HTTP_METHOD_DELETE, NULL, conf_file_values_);
   if (NULL == response) {
     pfc_log_error("Error Occured while getting httpresponse");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   int resp_code = response->code;
   pfc_log_debug("Response code from Ctl for delete vbrif : %d ", resp_code);
   if (HTTP_200_RESP_OK != resp_code) {
     pfc_log_error("delete vbrif is not successful %d", resp_code);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 // Creates request body for vbr if
@@ -550,7 +550,7 @@ json_object* OdcVbrIfCommand::create_request_body(
 }
 
 //  fetch child configurations for the parent kt(vbr)
-drv_resp_code_t OdcVbrIfCommand::fetch_config(unc::driver::controller* ctr,
+UncRespCode OdcVbrIfCommand::fetch_config(unc::driver::controller* ctr,
                                      void* parent_key,
                                      std::vector<unc::vtndrvcache::ConfigNode *>
                                      &cfgnode_vector) {
@@ -570,14 +570,14 @@ drv_resp_code_t OdcVbrIfCommand::fetch_config(unc::driver::controller* ctr,
 }
 
 // Getting  vbridge child if available
-drv_resp_code_t OdcVbrIfCommand::get_vbrif_list(std::string vtn_name,
+UncRespCode OdcVbrIfCommand::get_vbrif_list(std::string vtn_name,
                   std::string vbr_name, unc::driver::controller* ctr,
        std::vector< unc::vtndrvcache::ConfigNode *> &cfgnode_vector) {
   ODC_FUNC_TRACE;
   PFC_ASSERT(ctr != NULL);
   if ((0 == strlen(vtn_name.c_str())) || (0 == strlen(vbr_name.c_str()))) {
     pfc_log_error("Empty vtn / vbr name");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   std::string url = "";
   url.append(BASE_URL);
@@ -596,26 +596,26 @@ drv_resp_code_t OdcVbrIfCommand::get_vbrif_list(std::string vtn_name,
 
   if (NULL == response) {
     pfc_log_error("Error Occured while getting httpresponse");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   int resp_code = response->code;
   pfc_log_debug("Response code from Ctlfor get vbrif : %d ", resp_code);
   if (HTTP_200_RESP_OK != resp_code) {
     pfc_log_error("rest_util_obj send_request fail");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   if (NULL != response->write_data) {
     if (NULL != response->write_data->memory) {
       char *data = response->write_data->memory;
-      drv_resp_code_t parse_ret = DRVAPI_RESPONSE_FAILURE;
+      UncRespCode parse_ret = UNC_DRV_RC_ERR_GENERIC;
       parse_ret = parse_vbrif_response(vtn_name, vbr_name, url, ctr, data,
                                        cfgnode_vector);
       return parse_ret;
     }
   }
-  return DRVAPI_RESPONSE_FAILURE;
+  return UNC_DRV_RC_ERR_GENERIC;
 }
-drv_resp_code_t OdcVbrIfCommand::parse_vbrif_response(std::string vtn_name,
+UncRespCode OdcVbrIfCommand::parse_vbrif_response(std::string vtn_name,
                                      std::string vbr_name, std::string url,
                                   unc::driver::controller* ctr, char *data,
             std::vector< unc::vtndrvcache::ConfigNode *> &cfgnode_vector) {
@@ -624,7 +624,7 @@ drv_resp_code_t OdcVbrIfCommand::parse_vbrif_response(std::string vtn_name,
       get_json_object(data);
   if (json_object_is_type(jobj, json_type_null)) {
     pfc_log_error("json_object_is_null");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   uint32_t array_length = 0;
   json_object *json_obj_vbrif = NULL;
@@ -634,13 +634,13 @@ drv_resp_code_t OdcVbrIfCommand::parse_vbrif_response(std::string vtn_name,
   if (json_object_is_type(json_obj_vbrif, json_type_null)) {
     pfc_log_error("json vbrif is null");
     json_object_put(jobj);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   if (restjson::REST_OP_SUCCESS != ret_val) {
     json_object_put(jobj);
     pfc_log_error("JsonBuildParse::parse fail");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   if (json_object_is_type(json_obj_vbrif, json_type_array)) {
     array_length = restjson::JsonBuildParse::get_array_length(jobj,
@@ -648,18 +648,18 @@ drv_resp_code_t OdcVbrIfCommand::parse_vbrif_response(std::string vtn_name,
   }
 
   pfc_log_debug("interface array_length:%d", array_length);
-  drv_resp_code_t resp_code = DRVAPI_RESPONSE_FAILURE;
+  UncRespCode resp_code = UNC_DRV_RC_ERR_GENERIC;
   for (uint32_t arr_idx = 0; arr_idx < array_length; arr_idx++) {
     pfc_log_debug("inside array_length for loop");
     resp_code = fill_config_node_vector(vtn_name, vbr_name, json_obj_vbrif,
                                           arr_idx, url, ctr, cfgnode_vector);
-    if (DRVAPI_RESPONSE_FAILURE == resp_code) {
+    if (UNC_DRV_RC_ERR_GENERIC == resp_code) {
       json_object_put(jobj);
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
   }
   json_object_put(jobj);
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 // Reading port-map from active controller
 json_object* OdcVbrIfCommand::read_portmap(unc::driver::controller* ctr,
@@ -695,7 +695,7 @@ json_object* OdcVbrIfCommand::read_portmap(unc::driver::controller* ctr,
   return NULL;
 }
 
-drv_resp_code_t OdcVbrIfCommand::fill_config_node_vector(std::string vtn_name,
+UncRespCode OdcVbrIfCommand::fill_config_node_vector(std::string vtn_name,
                                   std::string vbr_name, json_object *json_obj,
                uint32_t arr_idx, std::string url, unc::driver::controller* ctr,
                 std::vector< unc::vtndrvcache::ConfigNode *> &cfgnode_vector) {
@@ -713,19 +713,19 @@ drv_resp_code_t OdcVbrIfCommand::fill_config_node_vector(std::string vtn_name,
                                                           arr_idx, name);
   if (restjson::REST_OP_SUCCESS != ret_val) {
     pfc_log_error("JsonBuildParse::parse fail.");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   pfc_log_debug("vbr_if name: %s", name.c_str());
   if (strlen(name.c_str()) == 0) {
     pfc_log_error("NO vbr_if name");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   ret_val = unc::restjson::JsonBuildParse::parse(json_obj,
                                                  "description",
                                                  arr_idx, description);
   if (restjson::REST_OP_SUCCESS != ret_val) {
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   pfc_log_debug("vbr_if description: %s", description.c_str());
   //  Fills the vbrif KEY structure
@@ -758,7 +758,7 @@ drv_resp_code_t OdcVbrIfCommand::fill_config_node_vector(std::string vtn_name,
                                                  "enabled",
                                                  arr_idx, admin_status);
   if (restjson::REST_OP_SUCCESS != ret_val) {
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   val_vbr_if.val_vbrif.valid[UPLL_IDX_ADMIN_STATUS_VBRI] = UNC_VF_VALID;
@@ -774,7 +774,7 @@ drv_resp_code_t OdcVbrIfCommand::fill_config_node_vector(std::string vtn_name,
   json_object *jobj = read_portmap(ctr, url, resp_code);
   if (0 == resp_code) {
     pfc_log_error("Error while reading portmap");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   pfc_log_debug("Response code from Ctl for portmap read : %d ", resp_code);
   if (HTTP_204_NO_CONTENT == resp_code) {
@@ -785,7 +785,7 @@ drv_resp_code_t OdcVbrIfCommand::fill_config_node_vector(std::string vtn_name,
                   unc::restjson::JsonBuildParse::get_string(jobj));
     if (json_object_is_type(jobj, json_type_null)) {
       pfc_log_error("null jobj no portmap");
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     } else {
       val_vbr_if.val_vbrif.valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID;
       std::string vlanid = "0";
@@ -794,7 +794,7 @@ drv_resp_code_t OdcVbrIfCommand::fill_config_node_vector(std::string vtn_name,
       if (restjson::REST_OP_SUCCESS != ret_val) {
         json_object_put(jobj);
         pfc_log_debug("vlan parse error");
-        return DRVAPI_RESPONSE_FAILURE;
+        return UNC_DRV_RC_ERR_GENERIC;
       }
       pfc_log_debug("vlan id in portmap read %s", vlanid.c_str());
       if (0 == atoi(vlanid.c_str())) {
@@ -819,14 +819,14 @@ drv_resp_code_t OdcVbrIfCommand::fill_config_node_vector(std::string vtn_name,
       if (restjson::REST_OP_SUCCESS != ret_val) {
         pfc_log_debug("node is null");
         json_object_put(jobj);
-        return DRVAPI_RESPONSE_FAILURE;
+        return UNC_DRV_RC_ERR_GENERIC;
       }
       ret_val = unc::restjson::JsonBuildParse::parse(jobj, "port",
                                                      -1, jobj_port);
       if (restjson::REST_OP_SUCCESS != ret_val) {
         json_object_put(jobj);
         pfc_log_debug("Parsing error in port");
-        return DRVAPI_RESPONSE_FAILURE;
+        return UNC_DRV_RC_ERR_GENERIC;
       }
       std::string node_id = "";
       std::string port_name = "";
@@ -835,22 +835,22 @@ drv_resp_code_t OdcVbrIfCommand::fill_config_node_vector(std::string vtn_name,
       if ((json_object_is_type(jobj_node, json_type_null)) ||
           (json_object_is_type(jobj_port, json_type_null))) {
         pfc_log_error("node or port json object is null");
-        return DRVAPI_RESPONSE_FAILURE;
+        return UNC_DRV_RC_ERR_GENERIC;
       }
 
       ret_val = unc::restjson::JsonBuildParse::parse(jobj_node, "id",
                                                      -1, node_id);
-      if (ret_val) {
+      if (restjson::REST_OP_SUCCESS != ret_val) {
         json_object_put(jobj);
         pfc_log_debug("id parse error");
-        return DRVAPI_RESPONSE_FAILURE;
+        return UNC_DRV_RC_ERR_GENERIC;
       }
       ret_val = unc::restjson::JsonBuildParse::parse(jobj_port, "name",
                                                      -1, port_name);
       if (restjson::REST_OP_SUCCESS != ret_val) {
         json_object_put(jobj);
         pfc_log_debug("name parse error");
-        return DRVAPI_RESPONSE_FAILURE;
+        return UNC_DRV_RC_ERR_GENERIC;
       }
       logical_port.append(node_id);
       logical_port.append(HYPHEN);
@@ -872,7 +872,7 @@ drv_resp_code_t OdcVbrIfCommand::fill_config_node_vector(std::string vtn_name,
   } else {
     pfc_log_error("Error in response code while reading port map:%d",
                   resp_code);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   unc::vtndrvcache::ConfigNode *cfgptr =
@@ -883,7 +883,7 @@ drv_resp_code_t OdcVbrIfCommand::fill_config_node_vector(std::string vtn_name,
                                              uint32_t(UNC_OP_READ));
   PFC_ASSERT(cfgptr != NULL);
   cfgnode_vector.push_back(cfgptr);
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 }  // namespace odcdriver
 }  // namespace unc
index 0b1506441bc090f6f8a4d46e9c2fd1ae96f1368e..a9f44e5dfd042664de6be45d590da86a50168f8d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013 NEC Corporation
+ * Copyright (c) 2013-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -26,7 +26,7 @@ OdcVtnCommand::~OdcVtnCommand() {
 
 // Constructs command to create Vtn and send it to rest interface to send to
 // controller
-drv_resp_code_t OdcVtnCommand::create_cmd(key_vtn_t& key_vtn,
+UncRespCode OdcVtnCommand::create_cmd(key_vtn_t& key_vtn,
                                           val_vtn_t& val_vtn,
                                           unc::driver::controller *ctr_ptr) {
   ODC_FUNC_TRACE;
@@ -41,7 +41,7 @@ drv_resp_code_t OdcVtnCommand::create_cmd(key_vtn_t& key_vtn,
   vtnname = reinterpret_cast<char*>(key_vtn.vtn_name);
   if (0 == strlen(vtnname)) {
     pfc_log_error("Empty vtn name in %s", PFC_FUNCNAME);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   url.append(vtnname);
   unc::restjson::JsonBuildParse json_obj;
@@ -61,14 +61,14 @@ drv_resp_code_t OdcVtnCommand::create_cmd(key_vtn_t& key_vtn,
   json_object_put(jobj_req_body);
   if (NULL == response) {
     pfc_log_error("Error Occured while getting httpresponse");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   int resp_code = response->code;
   pfc_log_debug("response code returned in create vtn is %d", resp_code);
   if (HTTP_201_RESP_CREATED != resp_code) {
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 // Creates Request Body
@@ -81,7 +81,7 @@ json_object* OdcVtnCommand::create_request_body(const val_vtn_t& val_vtn) {
   if (UNC_VF_VALID == val_vtn.valid[UPLL_IDX_DESC_VTN]) {
     if (0 != strlen(description)) {
       ret_val = json_obj.build("description", description, jobj);
-      if (ret_val) {
+      if (restjson::REST_OP_SUCCESS != ret_val) {
         pfc_log_error("Error occured in request body build %s", PFC_FUNCNAME);
         json_object_put(jobj);
         return NULL;
@@ -109,7 +109,7 @@ json_object* OdcVtnCommand::create_request_body(const val_vtn_t& val_vtn) {
 }
 
 //  Command to update vtn  and Send request to Controller
-drv_resp_code_t OdcVtnCommand::update_cmd(key_vtn_t& key_vtn,
+UncRespCode OdcVtnCommand::update_cmd(key_vtn_t& key_vtn,
                                           val_vtn_t& val_vtn,
                                           unc::driver::controller *ctr_ptr) {
   ODC_FUNC_TRACE;
@@ -123,7 +123,7 @@ drv_resp_code_t OdcVtnCommand::update_cmd(key_vtn_t& key_vtn,
   vtnname = reinterpret_cast<char*>(key_vtn.vtn_name);
   if (0 == strlen(vtnname)) {
     pfc_log_error("Empty vtn name in : %s", PFC_FUNCNAME);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   url.append(vtnname);
   unc::restjson::JsonBuildParse json_obj;
@@ -145,18 +145,18 @@ drv_resp_code_t OdcVtnCommand::update_cmd(key_vtn_t& key_vtn,
   json_object_put(jobj_request);
   if (NULL == response) {
     pfc_log_error("Error Occured while getting httpresponse");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   int resp_code = response->code;
   pfc_log_debug("response code returned in updatevtn is %d", resp_code);
   if (HTTP_200_RESP_OK != resp_code) {
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 //  fetch all child configuration for the parent key type(root)
-drv_resp_code_t OdcVtnCommand::fetch_config(unc::driver::controller* ctr,
+UncRespCode OdcVtnCommand::fetch_config(unc::driver::controller* ctr,
                                    void* parent_key,
                                    std::vector<unc::vtndrvcache::ConfigNode *>
                                    &cfgnode_vector) {
@@ -165,7 +165,7 @@ drv_resp_code_t OdcVtnCommand::fetch_config(unc::driver::controller* ctr,
 }
 
 // Gets the Controller Response code
-drv_resp_code_t OdcVtnCommand::get_vtn_list(unc::driver::controller* ctr,
+UncRespCode OdcVtnCommand::get_vtn_list(unc::driver::controller* ctr,
                                std::vector<unc::vtndrvcache::ConfigNode *>
                                &cfgnode_vector) {
   ODC_FUNC_TRACE;
@@ -182,28 +182,28 @@ drv_resp_code_t OdcVtnCommand::get_vtn_list(unc::driver::controller* ctr,
 
   if (NULL == response) {
     pfc_log_error("Error Occured while getting httpresponse -- ");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   int resp_code = response->code;
   if (HTTP_200_RESP_OK != resp_code) {
     pfc_log_error("%d error resp ", resp_code);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   if (NULL != response->write_data) {
     if (NULL != response->write_data->memory) {
       char *data = response->write_data->memory;
       pfc_log_debug("vtns present : %s", data);
-      drv_resp_code_t ret_val =  parse_vtn_response(data, cfgnode_vector);
+      UncRespCode ret_val =  parse_vtn_response(data, cfgnode_vector);
       pfc_log_debug("read_all_--  size, %d",
                     static_cast<int>(cfgnode_vector.size()));
       return ret_val;
     }
   }
-  return DRVAPI_RESPONSE_FAILURE;
+  return UNC_DRV_RC_ERR_GENERIC;
 }
 
 // parse each vtn node append to cache
-drv_resp_code_t OdcVtnCommand::fill_config_node_vector(
+UncRespCode OdcVtnCommand::fill_config_node_vector(
     json_object *json_obj_vtn, int arr_idx,
     std::vector<unc::vtndrvcache::ConfigNode *> &cfgnode_vector) {
   ODC_FUNC_TRACE;
@@ -218,16 +218,16 @@ drv_resp_code_t OdcVtnCommand::fill_config_node_vector(
   uint32_t ret_val = restjson::JsonBuildParse::parse(json_obj_vtn, "name",
                                               arr_idx, vtn_name);
   pfc_log_debug(" vtn_name %s:", vtn_name.c_str());
-  if (DRVAPI_RESPONSE_SUCCESS != ret_val) {
+  if (restjson::REST_OP_SUCCESS != ret_val) {
     pfc_log_debug(" Error while parsing vtn name");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   ret_val = restjson::JsonBuildParse::parse(json_obj_vtn, "description",
                                             arr_idx, vtn_description);
   pfc_log_debug(" vtn_description %s:", vtn_description.c_str());
-  if (DRVAPI_RESPONSE_SUCCESS != ret_val) {
+  if (restjson::REST_OP_SUCCESS != ret_val) {
     pfc_log_debug(" Error while parsing vtn description");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   //  Fills Key Structure
   strncpy(reinterpret_cast<char*> (key_vtn.vtn_name), vtn_name.c_str(),
@@ -251,11 +251,11 @@ drv_resp_code_t OdcVtnCommand::fill_config_node_vector(
       (&key_vtn, &val_vtn, uint32_t(UNC_OP_READ));
   PFC_ASSERT(cfgptr != NULL);
   cfgnode_vector.push_back(cfgptr);
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 // parsing function for converting controller response to driver format
-drv_resp_code_t OdcVtnCommand::parse_vtn_response(char *data,
+UncRespCode OdcVtnCommand::parse_vtn_response(char *data,
                                                std::vector< unc::vtndrvcache
                                                ::ConfigNode *>
                                                &cfgnode_vector) {
@@ -264,7 +264,7 @@ drv_resp_code_t OdcVtnCommand::parse_vtn_response(char *data,
   if (json_object_is_type(jobj, json_type_null)) {
     pfc_log_error("json_object_is_type error");
     json_object_put(jobj);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   uint32_t array_length =0;
   json_object *json_obj_vtn = NULL;
@@ -274,12 +274,12 @@ drv_resp_code_t OdcVtnCommand::parse_vtn_response(char *data,
   if (json_object_is_type(json_obj_vtn, json_type_null)) {
     json_object_put(jobj);
     pfc_log_error("Parsing Error json_obj_vtn is null");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
-  if (DRVAPI_RESPONSE_SUCCESS != ret_val) {
+  if (restjson::REST_OP_SUCCESS != ret_val) {
     json_object_put(jobj);
     pfc_log_error("Error in parsing the json_obj_vtn");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   if (json_object_is_type(json_obj_vtn, json_type_array)) {
     array_length = restjson::JsonBuildParse::get_array_length(jobj, "vtn");
@@ -288,23 +288,23 @@ drv_resp_code_t OdcVtnCommand::parse_vtn_response(char *data,
   if (0 == array_length) {
     pfc_log_debug("inside 0==arraylength");
     json_object_put(jobj);
-    return DRVAPI_RESPONSE_NO_SUCH_INSTANCE;
+    return UNC_RC_NO_SUCH_INSTANCE;
   }
   for (uint32_t arr_idx = 0; arr_idx < array_length; arr_idx++) {
-    drv_resp_code_t ret_val = fill_config_node_vector(json_obj_vtn, arr_idx,
+    UncRespCode ret_val = fill_config_node_vector(json_obj_vtn, arr_idx,
                                                       cfgnode_vector);
-    if (DRVAPI_RESPONSE_SUCCESS != ret_val) {
+    if (UNC_RC_SUCCESS != ret_val) {
       json_object_put(jobj);
       pfc_log_error("Error return from parse_vtn_append_vector failure");
       return ret_val;
     }
   }
   json_object_put(jobj);
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 // Delete Request send to the Contoller
-drv_resp_code_t OdcVtnCommand::delete_cmd(key_vtn_t& key_vtn,
+UncRespCode OdcVtnCommand::delete_cmd(key_vtn_t& key_vtn,
                                           val_vtn_t& val_vtn,
                                           unc::driver::controller *ctr_ptr) {
   ODC_FUNC_TRACE;
@@ -318,7 +318,7 @@ drv_resp_code_t OdcVtnCommand::delete_cmd(key_vtn_t& key_vtn,
   vtnname = reinterpret_cast<char*>(key_vtn.vtn_name);
   if (0 == strlen(vtnname)) {
     pfc_log_error("Empty vtn name in %s", PFC_FUNCNAME);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   url.append(vtnname);
 
@@ -329,14 +329,14 @@ drv_resp_code_t OdcVtnCommand::delete_cmd(key_vtn_t& key_vtn,
 
   if (NULL == response) {
     pfc_log_error("Error Occured while getting httpresponse");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   int resp_code = response->code;
   pfc_log_debug("response code returned in delete vtn is %d", resp_code);
   if (HTTP_200_RESP_OK != resp_code) {
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 }  // namespace odcdriver
 }  // namespace unc
index 1e6f9afeb3f427b118824ab3e765eff315b7a491..5bf62079f2da5c0a42770348398b5de89500b42c 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -43,9 +43,11 @@ class TcDbHandler {
     TcOperRet GetConfTable(pfc_bool_t* auto_save);
     /*methods to access TC_RECOVERY_TABLE*/
     TcOperRet UpdateRecoveryTable(unc_keytype_datatype_t data_base,
-                                  TcServiceType operation);
+                                  TcServiceType operation,
+                                  uint32_t failover_instance = 0);
     TcOperRet GetRecoveryTable(unc_keytype_datatype_t* db,
-                               TcServiceType* oper);
+                               TcServiceType* oper,
+                               uint32_t* failover_instance);
     /*checks whether the row exists with a value*/
     TcOperRet IsRowExists(std::string table_name, std::string attribute);
 
index 63196d49d1d62040f1e8818774ef5811c5807191..66e40c44093994831080b0b3b4794595614655ec 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -104,7 +104,7 @@ class TcLock {
   /* State based methods */
   TcLockRet TcOperationIsAllowed(uint32_t session_id, TcOperation operation);
 };
-}
-} /* unc */
+}  // namespace tc
+}  // namespace unc
 
 #endif  // __UNC_TC_LOCK_HH__
index 11d1a97cb2a9a5d66dfdff79a75a87ae860d9cff..bdf994c161c90f31241e713301d190de9cda3c8a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -108,8 +108,8 @@ class TcModule : public pfc::core::Module, public UncStateHandler {
   TcTaskqUtil* audit_q_;
   /* DB DSN NAME */
   std::string dsn_name;
-  /* DB DRV NAME */
-  std::string drv_name;
+  /*Max Failover instance*/
+  uint32_t max_failover_instance_;
 };
 }  //  namespace tc
 }  //  namespace unc
index 95c891ca41f724db5a39fd0618a43a575fa7f21a..6bb851da7e1e16d024ce941f85d91c2ab7a9757f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -21,12 +21,11 @@ namespace tc {
 
 const std::string tc_conf_block="tc_db_params";
 
-
 const std::string tc_conf_db_dsn_name_param="tc_db_dsn_name";
 const std::string tc_def_db_dsn_name_value="UNC_DB_DSN";
 
-const std::string tc_conf_db_drv_name_param="tc_db_driver";
-const std::string tc_def_db_drv_name_value="UNC_DB_DRIVER";
+const std::string max_failover_instance_param="max_failover_instance";
+const uint32_t max_failover_instance_value = 4;
 
 const uint32_t TC_READ_CONCURRENCY = 1;
 const uint32_t TC_AUDIT_CONCURRENCY = 1;
@@ -36,7 +35,8 @@ typedef enum {
   TC_INIT = 1,
   TC_ACT,
   TC_SBY,
-  TC_STOP
+  TC_STOP,
+  TC_ACT_FAIL
 }TcState;
 
 /* TC Main Operations  */
@@ -344,22 +344,11 @@ class TcReadWriteLock  {
     TC_DRV_OPENFLOW,
     TC_DRV_OVERLAY,
     TC_DRV_ODL
-    //TC_DRV_LEGACY
+    // TC_DRV_LEGACY
   };
 
   typedef std::map<TcDaemonName, std::string> TcChannelNameMap;
-
-  typedef struct {
-    std::string tc_db_driver;
-    std::string tc_db_dsn_name;
-    std::string tc_db_access_username;
-    std::string tc_db_access_password;
-    uint32_t tc_db_port_number;
-    uint32_t tc_db_conn_type;
-    uint32_t tc_db_timeout;
-    uint32_t tc_db_conn_timeout;
-  } TcDbParams;
-}
-} /* unc */
+}  // namespace tc
+}  // namespace unc
 
 #endif  // __UNC_TC_LOCK_HH__
index 3f0507b1c4c7dd925c3b1e147527c2e4b866f21a..2e363100b5458cc9944c01e298e618d469663f9e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -65,6 +65,9 @@ class TcOperations {
   /* To Track Operation and Revoke if needed */
   TcOperEnum tc_oper_status_;
 
+  /*flag is set when Audit DB fails in startup phase*/
+  pfc_bool_t audit_db_fail_;
+
 
   TcOperations(TcLock* tclock,
                pfc::core::ipc::ServerSession* sess,
@@ -156,15 +159,16 @@ class TcStartUpOperations: public TcOperations {
   TcOperStatus TcCreateMsgList();
   TcOperStatus FillTcMsgData(TcMsg*, TcMsgOperType);
   TcOperStatus HandleArgs();
-  TcOperStatus  HandleLockRet(TcLockRet LockRet);
+  TcOperStatus HandleLockRet(TcLockRet LockRet);
   TcOperStatus SendAdditionalResponse(TcOperStatus oper_stat);
   TcOperStatus SendResponse(TcOperStatus oper_status);
+  TcOperStatus SendAuditDBFailNotice(uint32_t alarm_id);
 };
 
 /*
- * @brief TcDbOperations 
+ * @brief TcDbOperations
  *        Provides Methods to handle
- *        DB operations (Save/Clear StartUp) 
+ *        DB operations (Save/Clear StartUp)
  *        requests from user
  */
 class TcDbOperations: public TcOperations {
@@ -297,6 +301,7 @@ class TcAuditOperations: public TcOperations {
   unc::tclib::TcAuditResult audit_result_;
   unc::tclib::TcTransEndResult trans_result_;
   pfc_bool_t api_audit_;
+  pfc_bool_t force_reconnect_;
 
   TcAuditOperations(TcLock* tclock,
                     pfc::core::ipc::ServerSession* sess,
index c0873bcf6b19de601347c55eaf8f543bd57dccb5..394012574b5af342597fe94f529a228b0456857b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -77,6 +77,7 @@ class TcMsg {
   TcOperRet SetAuditResult(tclib::TcAuditResult result);
   tclib::TcTransEndResult GetTransResult();
   TcOperRet SetTransResult(tclib::TcTransEndResult result);
+  virtual void SetReconnect(pfc_bool_t force_reconnect) {}
   /*method to send response to VTN*/
   TcOperRet ForwardResponseInternal(pfc::core::ipc::ServerSession& srv_sess,
                                     pfc::core::ipc::ClientSession* clnt_sess,
index 59e7b36b24306f65dd15b0ac6ad855cf4ff9c943..5e748d9e858cb0c4fbe324439ecef3720fb1459f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -40,6 +40,9 @@ class AuditTransaction : public TcMsgAudit {
  public:
   AuditTransaction(uint32_t sess_id, unc::tclib::TcMsgOperType oper);
   TcOperRet Execute();
+  void SetReconnect(pfc_bool_t force_reconnect);
+
+  pfc_bool_t reconnect_controller_;
 
  protected:
   TcOperRet SendRequest(std::string channel_name);
index c605052b32f78302639a1e785dbe1e56abcf2217..4438ef799aadc2d7a5b614e9652944d25728966d 100644 (file)
@@ -1,5 +1,5 @@
 %
-% Copyright (c) 2012-2013 NEC Corporation
+% Copyright (c) 2012-2014 NEC Corporation
 % All rights reserved.
 % 
 % This program and the accompanying materials are made available under the
@@ -12,4 +12,5 @@
 %%
 defblock tc_db_params{
   tc_db_dsn_name = STRING: max=63;
+  max_failover_instance = UINT32;
 }
index 9d38fc582c3482b4d59d3904d0d28f6e13ae6edb..dfd82de1443e53736269e1dfce1bfacbb8e11dba 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2012-2013 NEC Corporation
+# Copyright (c) 2012-2014 NEC Corporation
 # All rights reserved.
 # 
 # This program and the accompanying materials are made available under the
@@ -13,4 +13,5 @@
 
 tc_db_params {
   tc_db_dsn_name = "UNC_DB_DSN";
+  max_failover_instance = 1;
 }
index 02ed5cc81747508d9568ecc4cfc598de95b5155c..2fd2c513a1e0b03dbe7c6558f73fcfb494e325aa 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -15,7 +15,7 @@
 namespace unc {
 namespace tc {
 
-#define UNC_AUDIT_OPS_ARG_COUNT 3
+#define UNC_AUDIT_OPS_ARG_COUNT 4
 
 
 TcAuditOperations::TcAuditOperations(TcLock* tc_lock_,
@@ -30,7 +30,8 @@ TcAuditOperations::TcAuditOperations(TcLock* tc_lock_,
       audit_handle_(audit_),
       audit_result_(unc::tclib::TC_AUDIT_FAILURE),
       trans_result_(unc::tclib::TRANS_END_FAILURE),
-      api_audit_(PFC_FALSE) {}
+      api_audit_(PFC_FALSE),
+      force_reconnect_(PFC_FALSE) {}
 
 TcAuditOperations::~TcAuditOperations() {
   if (resp_tc_msg_) {
@@ -116,24 +117,33 @@ TcOperStatus TcAuditOperations::TcValidateOperType() {
  * @brief check for valid Operation Paramaters
  */
 TcOperStatus TcAuditOperations::TcValidateOperParams() {
-  TcUtilRet ret;
+  TcUtilRet ret = TCUTIL_RET_SUCCESS, ret1 = TCUTIL_RET_SUCCESS;
+  uint8_t reconnect = 0;
   if ( tc_oper_ == TC_OP_USER_AUDIT ) {
     ret= TcServerSessionUtils::get_string(ssess_,
                                           TC_REQ_ARG_INDEX,
                                           controller_id_);
+    ret1= TcServerSessionUtils::get_uint8(ssess_,
+                                          TC_REQ_ARG_INDEX+1,
+                                          &reconnect);
   } else {
     ret= TcServerSessionUtils::get_string(ssess_,
                                           TC_REQ_SESSION_ID_INDEX,
                                           controller_id_);
   }
-  if ( ret == TCUTIL_RET_FAILURE ) {
+  if (ret == TCUTIL_RET_FAILURE || ret1 == TCUTIL_RET_FAILURE) {
     return TC_OPER_INVALID_INPUT;
-  } else if ( ret == TCUTIL_RET_FATAL ) {
+  } else if (ret == TCUTIL_RET_FATAL || ret1 == TCUTIL_RET_FATAL) {
     return TC_OPER_FAILURE;
   }
+
   if ( controller_id_.length() == 0 ) {
     return TC_OPER_INVALID_INPUT;
   }
+  /*force-reconnect option*/
+  force_reconnect_ = (pfc_bool_t)reconnect;
+  pfc_log_info("controller %s force_reconnect %d",
+               controller_id_.c_str(), force_reconnect_);
 
   uint8_t read_drv_id = 0;
   if ( tc_oper_ == TC_OP_DRIVER_AUDIT ) {
@@ -249,8 +259,7 @@ pfc_bool_t TcAuditOperations::GetDriverType() {
   driver_id_ = tc_drv_msg->GetResult();
   if ( driver_id_ == UNC_CT_UNKNOWN ) {
     pfc_log_error("Controller of Unknown type");
-    delete tc_drv_msg;
-    tc_drv_msg = NULL;
+    resp_tc_msg_ = tc_drv_msg;
     return PFC_FALSE;
   }
   delete tc_drv_msg;
@@ -414,11 +423,14 @@ TcOperStatus TcAuditOperations::FillTcMsgData(TcMsg* tc_msg,
   if ( oper_type == unc::tclib::MSG_GET_DRIVERID ) {
     tc_msg->SetData(0, controller_id_, UNC_CT_UNKNOWN);
   } else {
-  if ( driver_id_ == UNC_CT_UNKNOWN ) {
-    return TC_OPER_INVALID_INPUT;
-  }
+    if ( driver_id_ == UNC_CT_UNKNOWN ) {
+      return TC_OPER_INVALID_INPUT;
+    }
     tc_msg->SetData(0, controller_id_, driver_id_);
   }
+  if (oper_type == unc::tclib::MSG_AUDIT_START) {
+    tc_msg->SetReconnect(force_reconnect_);
+  }
   if (oper_type == unc::tclib::MSG_AUDIT_TRANS_END) {
     tc_msg->SetTransResult(trans_result_);
   }
@@ -438,7 +450,7 @@ TcOperStatus TcAuditOperations::Execute() {
   }
 
   if ( GetDriverType() == PFC_FALSE ) {
-    return TC_OPER_INVALID_INPUT;
+    return TC_OPER_ABORT;
   }
 
   pfc_log_info("Driver Type %d", driver_id_);
@@ -492,6 +504,8 @@ TcAuditOperations::SendAdditionalResponse(TcOperStatus oper_stat) {
   if ( api_audit_ == PFC_TRUE ) {
     return oper_stat;
   }
+  if (oper_stat != TC_OPER_SUCCESS)
+     audit_result_ = unc::tclib::TC_AUDIT_FAILURE;
   /*Append the status of Audit operation*/
   if (SetAuditOperationStatus() != TC_OPER_SUCCESS) {
         return TC_OPER_FAILURE;
index cfe476fe46e39865de2c3a412966ba488866cf7f..070181be85657d732db313185d2748269e2e029d 100644 (file)
@@ -480,6 +480,7 @@ TcOperRet TcDbHandler::SetDefaultRecoveryTable() {
   SQLRETURN SQL_ret;
   unc_keytype_datatype_t database = UNC_DT_INVALID;
   TcServiceType oper = TC_OP_INVALID;
+  int failover_instance = 0;
   char inttostr[4];
   TcOperRet retval = TCOPER_RET_SUCCESS;
   SQLINTEGER query_length;
@@ -492,7 +493,7 @@ TcOperRet TcDbHandler::SetDefaultRecoveryTable() {
   /*set query*/
   set_query.append("INSERT INTO ");
   set_query.append(RECOVERY_TABLE);
-  set_query.append("(database,operation,date_time)");
+  set_query.append("(database,operation,failover_instance,date_time)");
   set_query.append(" VALUES(");
 
   snprintf(inttostr, sizeof(database), "%d", database);
@@ -500,6 +501,9 @@ TcOperRet TcDbHandler::SetDefaultRecoveryTable() {
   set_query.append(",");
   snprintf(inttostr, sizeof(oper), "%d", oper);
   set_query.append(inttostr);
+  set_query.append(",");
+  snprintf(inttostr, sizeof(oper), "%d", failover_instance);
+  set_query.append(inttostr);
   set_query.append(",CURRENT_TIMESTAMP);");
 
   SQL_ret = SQLAllocHandle(SQL_HANDLE_STMT, db_conn_handle_, &hstmt_set);
@@ -525,7 +529,8 @@ TcOperRet TcDbHandler::SetDefaultRecoveryTable() {
 /*!\brief updates recovery table
  * */
 TcOperRet TcDbHandler::UpdateRecoveryTable(unc_keytype_datatype_t data_base,
-                                           TcServiceType operation) {
+                                           TcServiceType operation,
+                                           uint32_t failover_instance) {
   pfc_log_debug("%s entry", __FUNCTION__);
   SQLRETURN SQL_ret;
   std::string upd_query;
@@ -552,6 +557,9 @@ TcOperRet TcDbHandler::UpdateRecoveryTable(unc_keytype_datatype_t data_base,
   snprintf(inttostr, sizeof(operation), "%d", operation);
   upd_query.append(",operation=");
   upd_query.append(inttostr);
+  snprintf(inttostr, sizeof(operation), "%d", failover_instance);
+  upd_query.append(",failover_instance=");
+  upd_query.append(inttostr);
   upd_query.append(",date_time=CURRENT_TIMESTAMP WHERE database >= 0;");
 
   SQL_ret = SQLAllocHandle(SQL_HANDLE_STMT, db_conn_handle_, &hstmt_upd);
@@ -578,14 +586,15 @@ TcOperRet TcDbHandler::UpdateRecoveryTable(unc_keytype_datatype_t data_base,
 /*!\brief retrieves data from recovery table
  * */
 TcOperRet TcDbHandler::GetRecoveryTable(unc_keytype_datatype_t* db,
-                                        TcServiceType* oper) {
+                                        TcServiceType* oper,
+                                        uint32_t* failover_instance) {
   pfc_log_debug("%s entry", __FUNCTION__);
   SQLRETURN SQL_ret;
   HSTMT hstmt_get;
   std::string get_query;
-  SQLINTEGER dbase, op;
+  SQLINTEGER dbase, op, fail_inst;
   SQLINTEGER query_length;
-  SQLLEN Db_err[2];
+  SQLLEN Db_err[3];
   TcOperRet retval = TCOPER_RET_SUCCESS;
   /*validate the row*/
   retval = IsRowExists(RECOVERY_TABLE, "database");
@@ -593,7 +602,8 @@ TcOperRet TcDbHandler::GetRecoveryTable(unc_keytype_datatype_t* db,
     return retval;
   }
   /*set query*/
-  get_query.append("SELECT database,operation FROM TC_RECOVERY_TABLE");
+  get_query.append("SELECT database,operation,failover_instance ");
+  get_query.append("FROM TC_RECOVERY_TABLE");
 
   SQL_ret = SQLAllocHandle(SQL_HANDLE_STMT, db_conn_handle_, &hstmt_get);
   if ((SQL_ret != SQL_SUCCESS) && (SQL_ret != SQL_SUCCESS_WITH_INFO)) {
@@ -612,6 +622,11 @@ TcOperRet TcDbHandler::GetRecoveryTable(unc_keytype_datatype_t* db,
     GetErrorReason(SQL_ret, SQL_HANDLE_STMT, hstmt_get);
     return TCOPER_RET_FAILURE;
   }
+  SQL_ret = SQLBindCol(hstmt_get, 3, SQL_C_LONG, &fail_inst, 5, &Db_err[2]);
+  if ((SQL_ret != SQL_SUCCESS) && (SQL_ret != SQL_SUCCESS_WITH_INFO)) {
+    GetErrorReason(SQL_ret, SQL_HANDLE_STMT, hstmt_get);
+    return TCOPER_RET_FAILURE;
+  }
 
   query_length = (SQLINTEGER)get_query.length();
   SQL_ret = SQLExecDirect(hstmt_get,
@@ -627,11 +642,13 @@ TcOperRet TcDbHandler::GetRecoveryTable(unc_keytype_datatype_t* db,
     *db = (Db_err[0] == SQL_NULL_DATA)
       ? UNC_DT_INVALID : (unc_keytype_datatype_t)dbase;
     *oper = (Db_err[1] == SQL_NULL_DATA) ? TC_OP_INVALID : (TcServiceType)op;
+    *failover_instance = (Db_err[2] == SQL_NULL_DATA)
+      ? 1U : (uint32_t)fail_inst;
   }
   std::string op_string = ConvertOptoString(*oper);
   std::string dbase_string = ConvertDbasetoString(*db);
-  pfc_log_info("db = %s; fail_oper = %s",
-               dbase_string.c_str(), op_string.c_str());
+  pfc_log_info("db = %s; fail_oper = %s, fail_instance = %d",
+               dbase_string.c_str(), op_string.c_str(), *failover_instance);
   /* clear all variables */
   SQLFreeHandle(SQL_HANDLE_STMT, hstmt_get);
   get_query.clear();
index 2d208b8072f83d3dc4b6f654eed1e952c7af4419..7b96ab69c4bac2c169a16b5450adea2b93d81100 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -439,6 +439,7 @@ TcLockRet TcLock::TcOperationIsAllowed(uint32_t session_id,
   case TC_ACT:
     break;
   case TC_SBY:
+  case TC_ACT_FAIL:
     if (operation != TC_ACQUIRE_READ_SESSION &&
         operation != TC_ACQUIRE_READ_LOCK_FOR_STATE_TRANSITION) {
       return TC_LOCK_INVALID_UNC_STATE;
index b6e4d1cd89071a81cdbbc7ea1309bc6cc364d374..9d8a23a26e0f67d7da75890e2b8185e91bcc0357 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -41,6 +41,9 @@ void TcModule::collect_db_params() {
   dsn_name =
       tc_db_block.getString(tc_conf_db_dsn_name_param,
                             tc_def_db_dsn_name_value.c_str());
+
+  max_failover_instance_ = tc_db_block.getUint32(max_failover_instance_param,
+                                                max_failover_instance_value);
 }
 
 /**
@@ -101,7 +104,7 @@ pfc_bool_t TcModule::init() {
     pfc_log_error("Unable to Register State Handlers");
     return PFC_FALSE;
   }
-  // Read the configuration file
+  /*Read the configuration file */
   collect_db_params();
   TcDbHandler tc_db_hdlr_(dsn_name);
   if (validate_tc_db(&tc_db_hdlr_) == PFC_FALSE) {
@@ -190,6 +193,43 @@ pfc_bool_t TcModule::HandleAct(pfc_bool_t is_switch) {
 
   TcOperStatus oper_ret(startup_.Dispatch());
   if (PFC_EXPECT_FALSE(oper_ret != TC_OPER_SUCCESS)) {
+    if (PFC_EXPECT_TRUE(startup_.audit_db_fail_ == PFC_TRUE)) {
+      pfc_log_error("Audit DB failure in switchover");
+      /*Get failover instance from DB */
+      uint32_t failover_instance;
+      if (PFC_EXPECT_TRUE(TCOPER_RET_SUCCESS == tc_db_hdlr_->GetRecoveryTable(
+                  &startup_.database_type_,
+                  &startup_.fail_oper_,
+                  &failover_instance))) {
+        /*increment and update failover instance*/
+        tc_db_hdlr_->UpdateRecoveryTable(startup_.database_type_,
+                                         startup_.fail_oper_,
+                                         ++failover_instance);
+        startup_.audit_db_fail_ = PFC_FALSE;
+
+        if (PFC_EXPECT_TRUE(failover_instance >= max_failover_instance_)) {
+          /*sending alarm to usr*/
+          if (PFC_EXPECT_TRUE(TC_OPER_SUCCESS !=
+                              startup_.SendAuditDBFailNotice(alarm_id))) {
+            pfc_log_warn("Failed to send AuditDBFailNotification");
+          }
+
+          pfc_log_info("Transiting to ACT_FAIL state");
+          tc_lock_.TcUpdateUncState(TC_ACT_FAIL);
+          ret = tc_lock_.ReleaseLock(0,
+                                     0,
+                                     TC_RELEASE_READ_LOCK_FOR_STATE_TRANSITION,
+                                     TC_WRITE_NONE);
+          if (PFC_EXPECT_FALSE(ret != TC_LOCK_SUCCESS)) {
+            pfc_log_fatal("Cannot Release Lock Instance");
+            return PFC_FALSE;
+          }
+          return PFC_TRUE;
+        }
+      } else {
+        pfc_log_error("could not fetch RecoveryTable attributes");
+      }
+    }
     pfc_log_fatal("StartUp Operation Failure");
     ret = tc_lock_.ReleaseLock(0,
                                0,
@@ -201,11 +241,10 @@ pfc_bool_t TcModule::HandleAct(pfc_bool_t is_switch) {
     }
     return PFC_FALSE;
   }
-  ret=
-     tc_lock_.ReleaseLock(0,
-                          0,
-                          TC_RELEASE_READ_LOCK_FOR_STATE_TRANSITION,
-                          TC_WRITE_NONE);
+  ret = tc_lock_.ReleaseLock(0,
+                             0,
+                             TC_RELEASE_READ_LOCK_FOR_STATE_TRANSITION,
+                             TC_WRITE_NONE);
   if (PFC_EXPECT_FALSE(ret != TC_LOCK_SUCCESS)) {
     pfc_log_fatal("Cannot Release Lock Instance");
     return PFC_FALSE;
index f5e0373ccb818b60f928b0aed8b3eba2fc05bce8..a066dd56c54ba9024ee9f070d50e1c002f02569c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -290,6 +290,10 @@ TcOperStatus TcOperations::Execute() {
     if ( MsgRet != TCOPER_RET_SUCCESS ) {
       delete tcmsg_;
       tcmsg_ = NULL;
+      if (*MsgIter == unc::tclib::MSG_AUDITDB) {
+        /*set when Audit DB fails in startup phase*/
+        audit_db_fail_ = PFC_TRUE;
+      }
       return HandleMsgRet(MsgRet);
     }
 
index 7d824b0f49fdaea1d63df9b7d88e000cbe2be497..18e30099aa91e71d64114668a32a02deec53079b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -9,6 +9,8 @@
 
 
 #include <tc_operations.hh>
+#include <alarm.hh>
+#include <unc/component.h>
 
 #define UNC_NO_ARGS 0
 
@@ -38,12 +40,14 @@ uint32_t TcStartUpOperations::TcGetMinArgCount() {
  * @brief Get Arguments for operation
  */
 TcOperStatus
-  TcStartUpOperations::HandleArgs() {
-    if ( is_switch_ == PFC_FALSE ) {
-      return TC_OPER_SUCCESS;
-    }
+TcStartUpOperations::HandleArgs() {
+  if ( is_switch_ == PFC_FALSE ) {
+    return TC_OPER_SUCCESS;
+  }
+  uint32_t failover_instance = 0;
   TcOperRet ret = db_hdlr_->GetRecoveryTable(&database_type_,
-                                            &fail_oper_);
+                                            &fail_oper_,
+                                            &failover_instance);
   if ( ret != TCOPER_RET_SUCCESS ) {
     return TC_OPER_FAILURE;
   }
@@ -140,12 +144,10 @@ TcOperStatus
 TcOperStatus
   TcStartUpOperations::SendResponse(TcOperStatus ret_) {
   if (ret_ == TC_OPER_SUCCESS) {
-    if ( is_switch_ == PFC_TRUE ) {
-      TcOperRet ret= db_hdlr_->UpdateRecoveryTable(UNC_DT_INVALID,
-                                                   TC_OP_INVALID);
-      if ( ret != TCOPER_RET_SUCCESS )
-        return TC_SYSTEM_FAILURE;
-    }
+    TcOperRet ret= db_hdlr_->UpdateRecoveryTable(UNC_DT_INVALID,
+                                                 TC_OP_INVALID);
+    if ( ret != TCOPER_RET_SUCCESS )
+      return TC_SYSTEM_FAILURE;
   }
   return ret_;
 }
@@ -158,5 +160,51 @@ TcOperStatus
     return oper_stat;
 }
 
+/*method to raise alarm for Audit DB failure*/
+TcOperStatus
+TcStartUpOperations::SendAuditDBFailNotice(uint32_t alarm_id) {
+  std::string alm_msg, dbType;
+  std::string alm_msg_summary;
+  std::string vtn_name = "";
+  pfc::alarm::alarm_info_with_key_t* data =
+      new pfc::alarm::alarm_info_with_key_t;
+
+  if (database_type_ == UNC_DT_RUNNING) {
+    alm_msg = "Audit of Running DB failed";
+    alm_msg_summary = "Audit of Running DB failed";
+    dbType = "DB_Running";
+  } else if (database_type_ == UNC_DT_STARTUP) {
+    alm_msg = "Audit of Startup DB failed";
+    alm_msg_summary = "Audit of Startup DB failed";
+    dbType = "DB_Startup";
+  } else if (database_type_ == UNC_DT_CANDIDATE) {
+    alm_msg = "Audit of Candidate DB failed";
+    alm_msg_summary = "Audit of Candidate DB failed";
+    dbType = "DB_Candidate";
+  }
+  data->alarm_class = pfc::alarm::ALM_CRITICAL;
+  data->alarm_kind = 1;
+  data->apl_No = UNCCID_TC;
+  data->alarm_category = 1;
+  data->alarm_key_size = dbType.length();
+  data->alarm_key = new uint8_t[dbType.length()+1];
+  memcpy(data->alarm_key, dbType.c_str(), dbType.length()+1);
+
+  pfc::alarm::alarm_return_code_t ret =
+      pfc::alarm::pfc_alarm_send_with_key(vtn_name,
+                                          alm_msg,
+                                          alm_msg_summary,
+                                          data, alarm_id);
+  if (ret != pfc::alarm::ALM_OK) {
+    delete []data->alarm_key;
+    delete data;
+    return TC_OPER_FAILURE;
+  }
+  delete []data->alarm_key;
+  delete data;
+  return TC_OPER_SUCCESS;
+}
+
+
 }  // namespace tc
 }  // namespace unc
index 8a316e43b8862d018880adb0296974e0c9a2edb4..34c90beba9ddaee0054c8991ec6a15a8b3748384 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -260,7 +260,6 @@ TcOperRet
 TcMsg::ForwardResponseInternal(pfc::core::ipc::ServerSession& srv_sess,
                                pfc::core::ipc::ClientSession* clnt_sess,
                                pfc_bool_t decr_resp) {
-  
   uint32_t respcount = clnt_sess->getResponseCount();
   if (PFC_EXPECT_TRUE(respcount == 0)) {
     pfc_log_info("session is empty");
@@ -273,7 +272,7 @@ TcMsg::ForwardResponseInternal(pfc::core::ipc::ServerSession& srv_sess,
   } else {
     to_index = respcount;
   }
-  
+
   if (clnt_sess->forwardTo(srv_sess, from_index, to_index)
       != TCOPER_RET_SUCCESS) {
     pfc_log_fatal("forwardTo failed!!");
@@ -292,9 +291,9 @@ TcOperRet
 TcMsg::ForwardResponseToVTN(pfc::core::ipc::ServerSession& srv_sess) {
   pfc_log_debug("TcMsg::ForwardResponseToVTN() entry");
   TcOperRet ret = TCOPER_RET_SUCCESS;
-  
+
   if (sess_) {
-    pfc_log_info("forward client session data");    
+    pfc_log_info("forward client session data");
     ret = ForwardResponseInternal(srv_sess, sess_, PFC_FALSE);
     if (ret != TCOPER_RET_SUCCESS) {
       pfc_log_info("forwarding session data to VTN failed");
@@ -303,7 +302,7 @@ TcMsg::ForwardResponseToVTN(pfc::core::ipc::ServerSession& srv_sess) {
   }
 
   if (upll_sess_) {
-    pfc_log_info("forward UPLL session data");    
+    pfc_log_info("forward UPLL session data");
     if (PFC_EXPECT_TRUE(opertype_ == tclib::MSG_AUDIT_GLOBAL)) {
       /*filtering audit_result of global commit*/
       ret = ForwardResponseInternal(srv_sess, upll_sess_, PFC_TRUE);
@@ -317,7 +316,7 @@ TcMsg::ForwardResponseToVTN(pfc::core::ipc::ServerSession& srv_sess) {
   }
 
   if (uppl_sess_) {
-    pfc_log_info("forward UPPL session data");    
+    pfc_log_info("forward UPPL session data");
     if (PFC_EXPECT_TRUE(opertype_ == tclib::MSG_AUDIT_GLOBAL)) {
       /*filtering audit_result of global commit*/
       ret = ForwardResponseInternal(srv_sess, uppl_sess_, PFC_TRUE);
index 0db215f336fcbbbd36d8bc0281f037865bda5b54..969f28044833be22cd0cdb448d5c0f81a2c31aa3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -166,7 +166,7 @@ TcMsgAudit::SendAuditTransEndRequest(AbortOnFailVector abort_on_fail_,
       return TCOPER_RET_FATAL;
     }
     /*append data to channel */
-    pfc_log_info("notify Audit/TxEnd to %s", channel_name.c_str());
+    pfc_log_info("notify AuditTxEnd to %s", channel_name.c_str());
     util_resp = tc::TcClientSessionUtils::set_uint8(end_sess, oper);
     if (PFC_EXPECT_TRUE(util_resp != TCUTIL_RET_SUCCESS)) {
       TcClientSessionUtils::tc_session_close(&end_sess, conn);
@@ -294,7 +294,15 @@ unc_keytype_ctrtype_t GetDriverId::GetResult() {
  **/
 AuditTransaction::AuditTransaction(uint32_t sess_id,
                                    tclib::TcMsgOperType oper)
-:TcMsgAudit(sess_id, oper) {}
+:TcMsgAudit(sess_id , oper), reconnect_controller_(PFC_FALSE) {}
+
+/*!\brief method to set reconnect option
+ * @param[in] force_reconnect - option to perforn audit after reconnecting with
+ * the controller*/ 
+void AuditTransaction::SetReconnect(pfc_bool_t force_reconnect) {
+  reconnect_controller_ = force_reconnect;
+}
+
 
 /*!\brief this method sends send Audit/Transaction START/END
  *request to recipient modules.
@@ -336,6 +344,13 @@ AuditTransaction::SendRequest(std::string channel_name) {
   if (PFC_EXPECT_TRUE(util_resp != TCUTIL_RET_SUCCESS)) {
     return ReturnUtilResp(util_resp);
   }
+  if (opertype_ == tclib::MSG_AUDIT_START) {
+    util_resp = tc::TcClientSessionUtils::
+        set_uint8(sess_, (uint8_t)reconnect_controller_);
+    if (PFC_EXPECT_TRUE(util_resp != TCUTIL_RET_SUCCESS)) {
+      return ReturnUtilResp(util_resp);
+    }
+  }
   if (opertype_ == tclib::MSG_AUDIT_TRANS_END) {
     util_resp = tc::TcClientSessionUtils::set_uint8(sess_, trans_result_);
     if (PFC_EXPECT_TRUE(util_resp != TCUTIL_RET_SUCCESS)) {
@@ -398,6 +413,7 @@ AuditTransaction::SendRequest(std::string channel_name) {
                              PFC_EXPECT_TRUE(opertype_ ==
                                              tclib::MSG_AUDIT_TRANS_END)))) {
     pfc_log_error("Audit end/Transaction end failure");
+    audit_result_ = tclib::TC_AUDIT_FAILURE;
     ret_val = TCOPER_RET_FATAL;
   }
   /*session is not closed in case of failure as its contents
@@ -453,7 +469,7 @@ TcOperRet AuditTransaction::Execute() {
     case tclib::MSG_AUDIT_TRANS_START: {
       pfc_log_info("*** AUDIT TxSTART ***");
       notifyorder_.push_back(TC_DRV_ODL);
-      //notifyorder_.push_back(TC_DRV_OVERLAY);
+      // notifyorder_.push_back(TC_DRV_OVERLAY);
       // notifyorder_.push_back(TC_DRV_LEGACY);
       notifyorder_.push_back(TC_UPLL);
       notifyorder_.push_back(TC_UPPL);
@@ -632,6 +648,7 @@ TwoPhaseAudit::HandleDriverResultResponse(pfc::core::ipc::ClientSession*
       PFC_EXPECT_TRUE(opertype_ ==  tclib::MSG_AUDIT_VOTE)) {
     pfc_log_info("failure response for vote-driver result");
     trans_result_ = tclib::TRANS_END_FAILURE;
+    audit_result_ = tclib::TC_AUDIT_FAILURE;
     ret_val = SendAbortRequest(abort_on_fail_);
     if (PFC_EXPECT_TRUE(ret_val == TCOPER_RET_SUCCESS)) {
       ret_val = TCOPER_RET_ABORT;
@@ -642,6 +659,7 @@ TwoPhaseAudit::HandleDriverResultResponse(pfc::core::ipc::ClientSession*
   } else if (PFC_EXPECT_TRUE(resp == tclib::TC_FAILURE) &&
              PFC_EXPECT_TRUE(opertype_ == tclib::MSG_AUDIT_GLOBAL)) {
     pfc_log_info("failure response for global commit-driver result");
+    audit_result_ = tclib::TC_AUDIT_FAILURE;
     ret_val = TCOPER_RET_FATAL;
   } else {
      pfc_log_info("success response for driver result");
@@ -871,6 +889,7 @@ TwoPhaseAudit::SendRequestToDriver() {
     } else if (PFC_EXPECT_TRUE(tclib::TC_FAILURE == resp) &&
                PFC_EXPECT_TRUE(opertype_ ==  tclib::MSG_AUDIT_GLOBAL)) {
       pfc_log_error("Failure response from %s", channel_name.c_str());
+      audit_result_ = tclib::TC_AUDIT_FAILURE;
       ret_val = TCOPER_RET_FATAL;
     }
     if (ret_val == TCOPER_RET_SUCCESS) {
@@ -988,6 +1007,7 @@ TwoPhaseAudit::SendRequest(std::string channel_name) {
              PFC_EXPECT_TRUE(opertype_ == tclib::MSG_AUDIT_GLOBAL)) {
     pfc_log_error("Failure response from %s",
                   channel_name.c_str());
+    audit_result_ = tclib::TC_AUDIT_FAILURE;
     ret_val = TCOPER_RET_FATAL;
   }
   /*delete the session pointer*/
index 97338c0d67fb2962273f4066877ffc8e7ef72ac0..ef81d0de4abe509efca5055998860400fd43f017 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013 NEC Corporation
+ * Copyright (c) 2013-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -88,6 +88,13 @@ class TcLibModule : public pfc::core::Module {
    */
   TcApiCommonRet TcLibValidateUpdateMsg(uint32_t sessionid, uint32_t configid);
 
+  /**
+   * @brief       Gives current session_id and config_id to upll,upll,pfcdriver
+   * @param[out]  current session_id
+   * @param[out]  current config_id
+   */
+  void GetSessionAttributes(uint32_t* session_id, uint32_t* config_id);
+
   /**
    * @brief      Read of key types key and value data information from session
    * @param[in]  controller_id controller id for which key type involved
index 95fa96c009585e350bc556092f11500a72cfc4be..54a6373fd558a99f8ccabd86d5f6eea19077d359 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -21,8 +21,8 @@ namespace tclib {
 class TcLibMsgUtil {
  public:
   /**
-   * @brief       Get of commit transaction arguments from the session  
-   * @param[in]   session pointer of server session from where data will be read 
+   * @brief       Get of commit transaction arguments from the session
+   * @param[in]   session pointer of server session from where data will be read
    * @param[out]  commit_trans_msg structure variable after reading from session
    * @retval      TC_SUCCESS Get data from session is success
    * @retval      TC_FAILURE Get data from session is failed
@@ -34,8 +34,8 @@ class TcLibMsgUtil {
 
   /**
    * @brief       Get of commit driver vote/global arguments from the session
-   * @param[in]   session pointer of server session from where data will be read 
-   * @param[out]  drv_vote_global_msg structure variable after reading 
+   * @param[in]   session pointer of server session from where data will be read
+   * @param[out]  drv_vote_global_msg structure variable after reading
    *              from session
    * @retval      TC_SUCCESS Get data from session is success
    * @retval      TC_FAILURE Get data from session is failed
@@ -47,7 +47,7 @@ class TcLibMsgUtil {
 
   /**
    * @brief       Get of commit driver result arguments from the session
-   * @param[in]   session pointer of server session from where data will be read 
+   * @param[in]   session pointer of server session from where data will be read
    * @param[out]  drv_result_msg structure variable after reading from session
    * @retval      TC_SUCCESS Get data from session is success
    * @retval      TC_FAILURE Get data from session is failed
@@ -59,7 +59,7 @@ class TcLibMsgUtil {
 
   /**
    * @brief       Get of commit global abort arguments from the session
-   * @param[in]   session pointer of server session from where data will be read 
+   * @param[in]   session pointer of server session from where data will be read
    * @param[out]  global_abort_msg structure variable after reading from session
    * @retval      TC_SUCCESS Get data from session is success
    * @retval      TC_FAILURE Get data from session is failed
@@ -71,7 +71,7 @@ class TcLibMsgUtil {
 
   /**
    * @brief       Get of audit transaction arguments from the session
-   * @param[in]   session pointer of server session from where data will be read 
+   * @param[in]   session pointer of server session from where data will be read
    * @param[out]  audit_trans_msg structure variable after reading from session
    * @retval      TC_SUCCESS Get data from session is success
    * @retval      TC_FAILURE Get data from session is failed
@@ -83,8 +83,8 @@ class TcLibMsgUtil {
 
   /**
    * @brief       Get of audit driver vote/global arguments from the session
-   * @param[in]   session pointer of server session from where data will be read 
-   * @param[out]  drv_vote_global_msg structure variable after reading 
+   * @param[in]   session pointer of server session from where data will be read
+   * @param[out]  drv_vote_global_msg structure variable after reading
    *              from session
    * @retval      TC_SUCCESS Get data from session is success
    * @retval      TC_FAILURE Get data from session is failed
@@ -96,7 +96,7 @@ class TcLibMsgUtil {
 
   /**
    * @brief       Get of audit driver result arguments from the session
-   * @param[in]   session pointer of server session from where data will be read 
+   * @param[in]   session pointer of server session from where data will be read
    * @param[out]  drv_result_msg structure variable after reading from session
    * @retval      TC_SUCCESS Get data from session is success
    * @retval      TC_FAILURE Get data from session is failed
@@ -108,7 +108,7 @@ class TcLibMsgUtil {
 
   /**
    * @brief       Get of audit global abort arguments from the session
-   * @param[in]   session pointer of server session from where data will be read 
+   * @param[in]   session pointer of server session from where data will be read
    * @param[out]  global_abort_msg structure variable after reading from session
    * @retval      TC_SUCCESS Get data from session is success
    * @retval      TC_FAILURE Get data from session is failed
@@ -120,7 +120,7 @@ class TcLibMsgUtil {
 
   /**
    * @brief       Get of audit config related arguments from the session
-   * @param[in]   session pointer of server session from where data will be read 
+   * @param[in]   session pointer of server session from where data will be read
    * @param[out]  audit_config_msg structure variable after reading from session
    * @retval      TC_SUCCESS Get data from session is success
    * @retval      TC_FAILURE Get data from session is failed
@@ -128,7 +128,7 @@ class TcLibMsgUtil {
   static TcCommonRet GetAuditConfigMsg(pfc::core::ipc::ServerSession *session,
                                        TcAuditConfigMsg &audit_config_msg);
 };
-}  // tclib
-}  // unc
+}  // namespace tclib
+}  // namespace unc
 
 #endif /* _UNC_TCLIB_MSG_UTIL_HH_ */
index 7c91bd569fc112cda3fdaee2f824dcf848a373e4..7b86833ea9e12cc8bfac8e6accc8176e75fe720c 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -75,6 +75,7 @@ typedef struct {
   uint32_t session_id;
   unc_keytype_ctrtype_t driver_id;
   std::string controller_id;
+  uint8_t reconnect_controller; /*filled only for audit start*/
   TcAuditResult audit_result; /* filled only for audit end */
   TcTransEndResult end_result; /* filled for transaction end */
 }TcAuditTransactionMsg;
@@ -135,7 +136,7 @@ typedef struct {
   unc_keytype_datatype_t db_type;
   TcServiceType service_type;
 }TcAuditConfigMsg;
-}  // tclib
-}  // unc
+}  // namespace tclib
+}  // namespace unc
 
 #endif /* _UNC_TCLIB_STRUCT_DEFS_HH_ */
index 0b5f5961e7c14439f2b88298ede6c946c3207940..65c572c3ba33125bf22f040a6a1224e128bbc584 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -163,6 +163,7 @@ TcApiCommonRet TcLibModule::TcLibAuditControllerRequest
   int err = 0;
   unc_keytype_ctrtype_t ctr_type = UNC_CT_UNKNOWN;
   tc::TcUtilRet util_ret = tc::TCUTIL_RET_SUCCESS;
+  uint8_t force_reconnect = 0;
 
   if (pTcLibInterface_ != NULL) {
     ctr_type = pTcLibInterface_->HandleGetControllerType();
@@ -226,6 +227,15 @@ TcApiCommonRet TcLibModule::TcLibAuditControllerRequest
     pfc_ipcclnt_altclose(conn);
     return TC_API_COMMON_FAILURE;
   }
+  /* Writing force_reconnect into the session */
+  idx++;
+  util_ret = tc::TcClientSessionUtils::set_uint8(&sess, force_reconnect);
+  if (util_ret != tc::TCUTIL_RET_SUCCESS) {
+    pfc_log_error("%s %d TcServerSessionUtils failed with %d",
+                  __FUNCTION__, __LINE__, util_ret);
+    pfc_ipcclnt_altclose(conn);
+    return TC_API_COMMON_FAILURE;
+  }
 
   /*Invoke the session using the handle*/
   err = sess.invoke(resp);
@@ -276,6 +286,21 @@ TcApiCommonRet TcLibModule::TcLibValidateUpdateMsg(uint32_t sessionid,
   return ret;
 }
 
+
+/**
+ * @brief       Gives current session_id and config_id to upll, upll, pfcdriver
+ * @param[out]  current session_id
+ * @param[out]  current config_id
+ */
+void TcLibModule::GetSessionAttributes(uint32_t* session_id,
+                                      uint32_t* config_id) {
+  pfc_log_info("session_id:%d, config_id:%d", session_id_, config_id_);
+  pfc::core::ScopedMutex m(tclib_mutex_);
+  *session_id = session_id_;
+  *config_id = config_id_;
+}
+
+
 /**
    * @brief      GetKeyIndex
    *             Get of key index based on controller id, err_pos from
@@ -1069,6 +1094,7 @@ NotifySessionConfig(pfc::core::ipc::ServerSession *sess) {
   tc::TcUtilRet util_ret = tc::TCUTIL_RET_SUCCESS;
 
   pfc::core::ScopedMutex m(tclib_mutex_);
+
   /*read from the session and update the session and config id*/
   if (sess != NULL) {
     argcount = sess->getArgCount();
@@ -1491,9 +1517,17 @@ TcCommonRet TcLibModule::AuditTransStartEnd(TcMsgOperType oper_type,
 
   switch (oper_type) {
     case MSG_AUDIT_START :
-      ret = pTcLibInterface_->HandleAuditStart(audit_trans_msg.session_id,
-                                               audit_trans_msg.driver_id,
-                                               audit_trans_msg.controller_id);
+      if (GetControllerType() != UNC_CT_UNKNOWN) {
+        ret = pTcLibInterface_->HandleAuditStart(
+            audit_trans_msg.session_id,
+            audit_trans_msg.driver_id,
+            audit_trans_msg.controller_id,
+            audit_trans_msg.reconnect_controller);
+      } else {
+        ret = pTcLibInterface_->HandleAuditStart(audit_trans_msg.session_id,
+                                                 audit_trans_msg.driver_id,
+                                                 audit_trans_msg.controller_id);
+      }
       pfc_log_info("%s %d HandleAuditStart returned with %d",
                    __FUNCTION__, __LINE__, ret);
       if (ret != TC_SUCCESS) {
@@ -2191,11 +2225,13 @@ unc_keytype_ctrtype_t TcLibModule::GetDriverId() {
                   __FUNCTION__, __LINE__, util_ret);
     return UNC_CT_UNKNOWN;
   }
-
+  oper_state_ = MSG_GET_DRIVERID;
   ctr_type = pTcLibInterface_->HandleGetControllerType(controller_id);
 
   pfc_log_info("%s %d Handler returned with %d",
                __FUNCTION__, __LINE__, ctr_type);
+
+  oper_state_ = MSG_NONE;
   return ctr_type;
 }
 
index c7fa41870c7b69c9f9c411862e138da725cac296..77f71eb77c35ce2ed48e9490efac047a01ad7e58 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -421,6 +421,19 @@ TcCommonRet TcLibMsgUtil::GetAuditTransactionMsg(
     return TC_FAILURE;
   }
 
+  /*reconnect attribute*/
+  if (audit_trans_msg.oper_type == MSG_AUDIT_START) {
+    uint8_t reconnect = 0;
+    idx++;
+    util_ret = tc::TcServerSessionUtils::get_uint8(session, idx, &reconnect);
+    if (util_ret != tc::TCUTIL_RET_SUCCESS) {
+      pfc_log_error("%s %d TcServerSessionUtils failed with %d",
+                    __FUNCTION__, __LINE__, util_ret);
+      return TC_FAILURE;
+    }
+    audit_trans_msg.reconnect_controller = (pfc_bool_t)reconnect;
+  }
+
   // audit_result
   if (audit_trans_msg.oper_type == MSG_AUDIT_END) {
     uint8_t audit_result = 0;
index 1489f1e7a0438f32577690f5bc6e10076d89baf3..f22552f19bb2d3b57de6c6119960c779a53dea6b 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2012-2013 NEC Corporation
+# Copyright (c) 2012-2014 NEC Corporation
 # All rights reserved.
 # 
 # This program and the accompanying materials are made available under the
 
 include ../defs.mk
 
-#CXX_OPT = -O0
+CXX_OPT = -O0
 
 # We need to append build directory to header search path explicitly
 # for build.cc.
 EXTRA_INCDIRS  = .. ../dal
 
-CXX_SOURCES    = ipct_st.cc kt_util.cc ipc_util.cc key_tree.cc \
+CXX_SOURCES    = ipct_st.cc kt_util.cc ipc_util.cc key_tree.cc dbconn_mgr.cc \
+       ipc_client_handler.cc \
        momgr_intf.cc \
        ctrlr_mgr.cc \
        config_svc.cc \
@@ -38,7 +39,8 @@ VTN_SOURCES   = momgr_util.cc momgr_impl.cc \
        vunk_momgr.cc vunk_if_momgr.cc \
         vtep_momgr.cc vtep_if_momgr.cc \
         vtep_grp_momgr.cc vtepgrp_mem_momgr.cc \
-        vtunnel_momgr.cc vtunnel_if_momgr.cc
+        vtunnel_momgr.cc vtunnel_if_momgr.cc \
+                               vtn_dataflow_momgr.cc 
        
 POM_SOURCES    = policingprofile_momgr.cc policingprofile_entry_momgr.cc \
               flowlist_momgr.cc flowlist_entry_momgr.cc \
index e78b0d2685cd19fd270b445f3fd6bbbc3913ee3f..74704f1870e31bb6a4f981aa45a215a1b3df2f14 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
index 4aa6c52e0169fb4c74af8bf7f76158d1b9089cc4..1c3c76d91052a260ede6ef33f83200c7cccfd65c 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
index ec38c88933ac963eee4c2b1cab8ed0173ef39dfc..f8753b41dc5196b428b2460047e7be7ec0c9577f 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
 #include "vtepgrp_mem_momgr.hh"
 #include "vtunnel_momgr.hh"
 #include "vtunnel_if_momgr.hh"
+#include "vtn_dataflow_momgr.hh"
+
+
+namespace {
+const char * const db_conn_conf_blk = "db_conn";
+const uint32_t default_db_max_ro_conns = 64;
+}
 
 namespace unc {
 namespace upll {
@@ -101,8 +108,10 @@ UpllConfigMgr::UpllConfigMgr()
       shutting_down_ = false;
       node_active_ = false;
       candidate_dirty_qc_ = false;
+      dbcm_ = NULL;
       alarm_fd = -1;
-}
+      audit_ctrlr_affected_state_  = kCtrlrAffectedNoDiff;
+    }
 
 /*
  * UpllConfigMgr::~UpllConfigMgr(void)
@@ -141,6 +150,8 @@ bool UpllConfigMgr::Init(void) {
 
   unc::upll::ipc_util::IpctSt::RegisterAll();
 
+  dbcm_= new UpllDbConnMgr(GetDbROConnLimitFrmConfFile());
+
   if (!CreateMoManagers())
     return false;
 
@@ -161,11 +172,29 @@ bool UpllConfigMgr::Init(void) {
   return true;
 }
 
+
+uint32_t UpllConfigMgr::GetDbROConnLimitFrmConfFile() {
+  UPLL_FUNC_TRACE;
+  uint32_t max_ro_conn = default_db_max_ro_conns;
+
+  pfc::core::ModuleConfBlock db_conn_block(db_conn_conf_blk);
+  if (db_conn_block.getBlock() != PFC_CFBLK_INVALID) {
+    UPLL_LOG_TRACE("Block handle is valid");
+    max_ro_conn = db_conn_block.getUint32("db_conn_ro_limit",
+                                          default_db_max_ro_conns);
+    UPLL_LOG_INFO("Max. DB RO connections from conf file %d", max_ro_conn);
+  } else {
+    UPLL_LOG_INFO("Setting default value to maximum DB RO connections %d",
+                  max_ro_conn);
+  }
+  return max_ro_conn;
+}
+
 const unc::capa::CapaIntf *UpllConfigMgr::GetCapaInterface() {
   unc::capa::CapaIntf *capa = reinterpret_cast<unc::capa::CapaIntf *>(
       pfc::core::Module::getInstance("capa"));
   if (capa == NULL) {
-    pfc_log_fatal("CapaModule is not found");
+    UPLL_LOG_FATAL("CapaModule is not found");
   }
   return capa;
 }
@@ -174,7 +203,7 @@ unc::tclib::TcLibModule *UpllConfigMgr::GetTcLibModule() {
   unc::tclib::TcLibModule *tclib = static_cast<unc::tclib::TcLibModule *>(
       pfc::core::Module::getInstance("tclib"));
   if (tclib == NULL) {
-    pfc_log_fatal("TcLibModule is not found");
+    UPLL_LOG_FATAL("TcLibModule is not found");
   }
   return tclib;
 }
@@ -186,7 +215,6 @@ pfc_ipcresp_t UpllConfigMgr::KtServiceHandler(upll_service_ids_t service,
                                               IpcReqRespHeader *msghdr,
                                               ConfigKeyVal *first_ckv) {
   UPLL_FUNC_TRACE;
-
   if (msghdr == NULL || first_ckv == NULL) {
     UPLL_LOG_DEBUG("Null argument %p, %p", msghdr, first_ckv);
     if (msghdr) {
@@ -250,12 +278,14 @@ pfc_ipcresp_t UpllConfigMgr::KtServiceHandler(upll_service_ids_t service,
 
   // Open Dal Connection
   DalOdbcMgr *dom = NULL;
+  bool dom_commit_flag = false;
   switch (msghdr->operation) {
     case UNC_OP_CREATE:
     case UNC_OP_UPDATE:
     case UNC_OP_DELETE:
     case UNC_OP_RENAME:
-      dom = &config_rw_dom_;
+      dom = dbcm_->GetConfigRwConn();
+      dom_commit_flag = true;
       break;
     case UNC_OP_READ:
     case UNC_OP_READ_NEXT:
@@ -264,7 +294,7 @@ pfc_ipcresp_t UpllConfigMgr::KtServiceHandler(upll_service_ids_t service,
     case UNC_OP_READ_SIBLING:
     case UNC_OP_READ_SIBLING_COUNT:
       if (msghdr->datatype == UPLL_DT_CANDIDATE) {
-        dom = &config_ro_dom_;
+        dom = dbcm_->GetConfigRwConn();
       }
       break;
     default:
@@ -276,7 +306,7 @@ pfc_ipcresp_t UpllConfigMgr::KtServiceHandler(upll_service_ids_t service,
   if (dom != NULL) {
     // already selected the dom
   } else {
-    if (UPLL_RC_SUCCESS != (urc = DalOpen(&dom, false, __FUNCTION__))) {
+    if (UPLL_RC_SUCCESS != (urc = dbcm_->AcquireRoConn(&dom))) {
       msghdr->result_code = urc;
       if (ReleaseConfigLock(msghdr->operation, msghdr->datatype) == false) {
         UPLL_LOG_ERROR("Failed to release config lock.");
@@ -284,7 +314,6 @@ pfc_ipcresp_t UpllConfigMgr::KtServiceHandler(upll_service_ids_t service,
       return 0;
     }
   }
-
   switch (msghdr->operation) {
     case UNC_OP_READ:
       urc = momgr->ReadMo(msghdr, first_ckv, dom);
@@ -332,9 +361,17 @@ pfc_ipcresp_t UpllConfigMgr::KtServiceHandler(upll_service_ids_t service,
   }
 
   msghdr->result_code = urc;
-  upll_rc_t db_urc = DalClose(dom, (urc == UPLL_RC_SUCCESS), __FUNCTION__);
-  if (urc == UPLL_RC_SUCCESS) {
-     msghdr->result_code = urc = db_urc;
+
+  if (dom->get_conn_type() == uudal::kDalConnReadWrite) {
+    upll_rc_t db_urc = dbcm_->DalTxClose(dom, ((urc == UPLL_RC_SUCCESS) &&
+                                               (dom_commit_flag == true)));
+    dbcm_->ReleaseRwConn(dom);
+    if (urc == UPLL_RC_SUCCESS) {
+      msghdr->result_code = urc = db_urc;
+    }
+  } else {
+    dbcm_->DalTxClose(dom, false);
+    dbcm_->ReleaseRoConn(dom);
   }
 
   if ((urc == UPLL_RC_SUCCESS) && (msghdr->datatype == UPLL_DT_CANDIDATE) &&
@@ -500,6 +537,7 @@ bool UpllConfigMgr::BuildKeyTree() {
   kt_name_map_[UNC_KT_VTUNNEL] = "VTUNNEL";
   kt_name_map_[UNC_KT_VTUNNEL_IF] = "VTUNNEL_IF";
   kt_name_map_[UNC_KT_VLINK] = "VLINK";
+  kt_name_map_[UNC_KT_VTN_DATAFLOW] = "VTN_DATAFLOW";
 
   return true;
 }
@@ -510,10 +548,13 @@ void UpllConfigMgr::DumpKeyTree() {
   UPLL_LOG_TRACE("--- KeyTree Preorder Traversal ---");
   const std::list<unc_key_type_t> *pre_list = cktt_.get_preorder_list();
   std::list<unc_key_type_t>::const_iterator pre_it = pre_list->begin();
+  std::map<unc_key_type_t, std::string>::iterator nmap_it;
+
   while (pre_it != pre_list->end()) {
     kt = *pre_it;
-    if (kt_name_map_.count(kt) > 0) {
-      UPLL_LOG_TRACE("--- KT: %s", kt_name_map_[kt].c_str());
+    nmap_it = kt_name_map_.find(kt);
+    if (nmap_it !=  kt_name_map_.end()) {
+      UPLL_LOG_TRACE("--- KT: %s", nmap_it->second.c_str());
     }
     pre_it++;
   }
@@ -523,8 +564,9 @@ void UpllConfigMgr::DumpKeyTree() {
   std::list<unc_key_type_t>::const_iterator post_it = post_list->begin();
   while (post_it != post_list->end()) {
     kt = *post_it;
-    if (kt_name_map_.count(kt) > 0) {
-      UPLL_LOG_TRACE("--- KT: %s", kt_name_map_[kt].c_str());
+    nmap_it = kt_name_map_.find(kt);
+    if (nmap_it !=  kt_name_map_.end()) {
+      UPLL_LOG_TRACE("--- KT: %s", nmap_it->second.c_str());
     }
     post_it++;
   }
@@ -571,7 +613,7 @@ bool UpllConfigMgr::CreateMoManagers() {
       upll_kt_momgrs_[UNC_KT_VTN_POLICINGMAP_CONTROLLER] =
       new uuk::VtnPolicingMapMoMgr();
   upll_kt_momgrs_[UNC_KT_VBR_POLICINGMAP_ENTRY] =
-  upll_kt_momgrs_[UNC_KT_VBR_POLICINGMAP] = new uuk::VbrPolicingMapMoMgr();
+      upll_kt_momgrs_[UNC_KT_VBR_POLICINGMAP] = new uuk::VbrPolicingMapMoMgr();
   upll_kt_momgrs_[UNC_KT_VBR_FLOWFILTER] = new uuk::VbrFlowFilterMoMgr();
   upll_kt_momgrs_[UNC_KT_VBR_FLOWFILTER_ENTRY] =
       new uuk::VbrFlowFilterEntryMoMgr();
@@ -584,6 +626,7 @@ bool UpllConfigMgr::CreateMoManagers() {
   upll_kt_momgrs_[UNC_KT_VRTIF_FLOWFILTER] = new uuk::VrtIfFlowFilterMoMgr();
   upll_kt_momgrs_[UNC_KT_VRTIF_FLOWFILTER_ENTRY] =
       new uuk::VrtIfFlowFilterEntryMoMgr();
+  upll_kt_momgrs_[UNC_KT_VTN_DATAFLOW] = new uuk::VtnDataflowMoMgr();
   return true;
 }
 
@@ -601,9 +644,9 @@ upll_rc_t UpllConfigMgr::ValidSession(uint32_t clnt_sess_id,
   }
 
   if (err == unc::tclib::TC_INVALID_SESSION_ID) {
-      UPLL_LOG_DEBUG("Invalid session_id %u in IPC request", clnt_sess_id);
+    UPLL_LOG_DEBUG("Invalid session_id %u in IPC request", clnt_sess_id);
   } else if (err == unc::tclib::TC_INVALID_CONFIG_ID) {
-      UPLL_LOG_DEBUG("Invalid config_id %u in IPC request", config_id);
+    UPLL_LOG_DEBUG("Invalid config_id %u in IPC request", config_id);
   }
 
   return UPLL_RC_ERR_BAD_CONFIG_OR_SESSION_ID;
@@ -632,7 +675,7 @@ upll_rc_t UpllConfigMgr::ValidIpcDatatype(upll_keytype_datatype_t datatype) {
       return UPLL_RC_SUCCESS;
     case UPLL_DT_AUDIT:
     default:
-        return UPLL_RC_ERR_NO_SUCH_DATATYPE;
+      return UPLL_RC_ERR_NO_SUCH_DATATYPE;
   }
   return UPLL_RC_ERR_NO_SUCH_DATATYPE;
 }
@@ -708,8 +751,8 @@ upll_rc_t UpllConfigMgr::ValidIpcOperation(upll_service_ids_t service,
 }
 
 upll_rc_t UpllConfigMgr::ValidateKtRequest(upll_service_ids_t service,
-                                   const IpcReqRespHeader &msghdr,
-                                   const ConfigKeyVal &ckv) {
+                                           const IpcReqRespHeader &msghdr,
+                                           const ConfigKeyVal &ckv) {
   UPLL_FUNC_TRACE;
   upll_rc_t urc;
   if ((service == UPLL_EDIT_SVC_ID) ||
@@ -719,7 +762,7 @@ upll_rc_t UpllConfigMgr::ValidateKtRequest(upll_service_ids_t service,
     urc = ValidSession(msghdr.clnt_sess_id, msghdr.config_id);
     if (urc != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Invalid session_id %u and/or config_id %u in IPC request."
-                    " Err: %d", msghdr.clnt_sess_id, msghdr.config_id, urc);
+                     " Err: %d", msghdr.clnt_sess_id, msghdr.config_id, urc);
       return urc;
     }
   }
@@ -727,7 +770,7 @@ upll_rc_t UpllConfigMgr::ValidateKtRequest(upll_service_ids_t service,
   urc = ValidIpcOperation(service, msghdr.datatype, msghdr.operation);
   if (urc != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("Invalid operation %u in IPC request for service %u",
-                  msghdr.operation, service);
+                   msghdr.operation, service);
     return urc;
   }
 
@@ -740,7 +783,7 @@ upll_rc_t UpllConfigMgr::ValidateKtRequest(upll_service_ids_t service,
     // only allowed option combination is normal and none
     if (msghdr.option1 != UNC_OPT1_NORMAL) {
       UPLL_LOG_DEBUG("Invalid option1 %u, expected %d in IPC request",
-                    msghdr.option1, UNC_OPT1_NORMAL);
+                     msghdr.option1, UNC_OPT1_NORMAL);
       return UPLL_RC_ERR_INVALID_OPTION1;
     }
     if (msghdr.option2 != UNC_OPT2_NONE) {
@@ -948,7 +991,7 @@ upll_rc_t UpllConfigMgr::ValidateImport(uint32_t sess_id, uint32_t config_id,
   // Check controller type
   unc_keytype_ctrtype_t ctrlr_type;
   if (false == CtrlrMgr::GetInstance()->GetCtrlrType(
-      ctrlr_id, UPLL_DT_CANDIDATE, &ctrlr_type)) {
+          ctrlr_id, UPLL_DT_CANDIDATE, &ctrlr_type)) {
     UPLL_LOG_INFO("Unable to get controller type. Cannot do %s for %s ",
                   import_operation, ctrlr_id);
     return UPLL_RC_ERR_NO_SUCH_INSTANCE;
@@ -983,7 +1026,7 @@ upll_rc_t UpllConfigMgr::ValidateImport(uint32_t sess_id, uint32_t config_id,
   urc = IsKeyInUseNoLock(UPLL_DT_RUNNING, &ckv, &ctr_in_use);
   if (urc != UPLL_RC_SUCCESS) {
     UPLL_LOG_INFO("Failed to find if controller is in running config. Urc=%d."
-                   "Cannot do %s for %s", urc, import_operation, ctrlr_id);
+                  "Cannot do %s for %s", urc, import_operation, ctrlr_id);
     return urc;
   }
   if (ctr_in_use == true) {
@@ -1000,7 +1043,7 @@ upll_rc_t UpllConfigMgr::ImportCtrlrConfig(const char *ctrlr_id,
   UPLL_FUNC_TRACE;
   upll_rc_t urc = UPLL_RC_SUCCESS;
 
-  DalOdbcMgr *dom = &import_rw_dom_;      // Dal Connection
+  DalOdbcMgr *dom = dbcm_->GetConfigRwConn();
 
   key_root_t *root_key = reinterpret_cast<key_root_t *>(
       ConfigKeyVal::Malloc(sizeof(key_root_t)));
@@ -1069,6 +1112,11 @@ upll_rc_t UpllConfigMgr::ImportCtrlrConfig(const char *ctrlr_id,
     ConfigKeyVal *one_ckv = NULL;
     // Create each KT instance at a time in the destination DT
     while (bulk_resp.ckv_data) {
+      if ((urc = ContinueActiveProcess()) != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("Import aborted, Urc=%d", urc);
+        read_bulk_done = true;
+        break;  // break from inner loop
+      }
       one_ckv = bulk_resp.ckv_data;
       bulk_resp.ckv_data = one_ckv->get_next_cfg_key_val();
       one_ckv->set_next_cfg_key_val(NULL);
@@ -1081,8 +1129,10 @@ upll_rc_t UpllConfigMgr::ImportCtrlrConfig(const char *ctrlr_id,
 
       unc_key_type_t kt = one_ckv->get_key_type();
       UPLL_LOG_TRACE("KeyType in Driver message: %u", kt);
-      if (upll_kt_momgrs_.count(kt) > 0) {
-        MoManager *momgr = upll_kt_momgrs_[kt];
+      std::map<unc_key_type_t, MoManager*>::iterator momgr_it =
+          upll_kt_momgrs_.find(kt);
+      if (momgr_it != upll_kt_momgrs_.end()) {
+        MoManager *momgr = momgr_it->second;
         // In import-readbulk driver cannot return domain id in message header
         // as there will be more than one VTN. A VTN will be sent in the
         // response only if a VNODE is present for the VTN. VNODE val structure
@@ -1105,10 +1155,10 @@ upll_rc_t UpllConfigMgr::ImportCtrlrConfig(const char *ctrlr_id,
       // Need to preserve the last CKV for continuing READ_BULK operation to
       // remaining data
       if (bulk_resp.ckv_data != NULL) {
-        delete one_ckv;
+      delete one_ckv;
       } else {
-        // install last CKV from the bulk response into READ_BULK next request
-        bulkreq_ckv = one_ckv;
+      // install last CKV from the bulk response into READ_BULK next request
+      bulkreq_ckv = one_ckv;
       }
       */
     }
@@ -1124,7 +1174,9 @@ upll_rc_t UpllConfigMgr::ImportCtrlrConfig(const char *ctrlr_id,
   }
 
   UPLL_LOG_DEBUG("Import configuration status. Urc=%d", urc);
-  upll_rc_t close_urc = DalClose(dom, (urc == UPLL_RC_SUCCESS), __FUNCTION__);
+  upll_rc_t close_urc = dbcm_->DalTxClose(dom, (urc == UPLL_RC_SUCCESS));
+  dbcm_->ReleaseRwConn(dom);
+
   if (urc == UPLL_RC_SUCCESS) {
     urc = close_urc;
   }
@@ -1135,13 +1187,20 @@ upll_rc_t UpllConfigMgr::ImportCtrlrConfig(const char *ctrlr_id,
 upll_rc_t UpllConfigMgr::StartImport(const char *ctrlr_id, uint32_t sess_id,
                                      uint32_t config_id) {
   UPLL_FUNC_TRACE;
+  upll_rc_t urc;
+  /*
+     if ((urc = ContinueActiveProcess()) != UPLL_RC_SUCCESS) {
+     UPLL_LOG_INFO("Import not possible, Urc=%d", urc);
+     return;
+     }
+     */
 
   pfc::core::ScopedMutex import_lock(import_mutex_lock_);
 
   // Validate if import is already in progress
   if (import_in_progress_ == true) {
     UPLL_LOG_INFO("Import is in progress for %s. Cannot do import for %s",
-                   import_ctrlr_id_.c_str(), ctrlr_id);
+                  import_ctrlr_id_.c_str(), ctrlr_id);
     return UPLL_RC_ERR_NOT_ALLOWED_AT_THIS_TIME;
   }
 
@@ -1152,11 +1211,11 @@ upll_rc_t UpllConfigMgr::StartImport(const char *ctrlr_id, uint32_t sess_id,
   // Take read lock on running for doing IsCandidateDirty and IsKeyInUse check
   // in ValidateImport
   ScopedConfigLock scfg_lock2(cfg_lock_,
-                             UPLL_DT_RUNNING, ConfigLock::CFG_READ_LOCK);
+                              UPLL_DT_RUNNING, ConfigLock::CFG_READ_LOCK);
 
 
-  upll_rc_t urc = ValidateImport(sess_id, config_id, ctrlr_id,
-                                 UPLL_IMPORT_CTRLR_CONFIG_OP);
+  urc = ValidateImport(sess_id, config_id, ctrlr_id,
+                       UPLL_IMPORT_CTRLR_CONFIG_OP);
   if (urc != UPLL_RC_SUCCESS)
     return urc;
 
@@ -1193,9 +1252,9 @@ upll_rc_t UpllConfigMgr::OnMerge(uint32_t sess_id, uint32_t config_id) {
   // Take read lock on running for doing IsCandidateDirty and IsKeyInUse check
   // in ValidateImport
   ScopedConfigLock scfg_lock2(cfg_lock_,
-                             UPLL_DT_RUNNING, ConfigLock::CFG_READ_LOCK);
+                              UPLL_DT_RUNNING, ConfigLock::CFG_READ_LOCK);
 
-  DalOdbcMgr *dom = &import_rw_dom_;
+  DalOdbcMgr *dom = dbcm_->GetConfigRwConn();
 
   urc = ValidateImport(sess_id, config_id, import_ctrlr_id_.c_str(),
                        UPLL_MERGE_IMPORT_CONFIG_OP);
@@ -1205,7 +1264,8 @@ upll_rc_t UpllConfigMgr::OnMerge(uint32_t sess_id, uint32_t config_id) {
   if (urc == UPLL_RC_SUCCESS)
     urc = MergeImportToCandidate();  // merge import config to candidate config
 
-  upll_rc_t db_urc = DalClose(dom, (urc == UPLL_RC_SUCCESS), __FUNCTION__);
+  upll_rc_t db_urc = dbcm_->DalTxClose(dom, (urc == UPLL_RC_SUCCESS));
+  dbcm_->ReleaseRwConn(dom);
   if (urc == UPLL_RC_SUCCESS) {
     urc = db_urc;
   }
@@ -1224,36 +1284,44 @@ upll_rc_t UpllConfigMgr::MergeValidate() {
   upll_rc_t urc = UPLL_RC_SUCCESS;
   unc_key_type_t kt;
 
-  DalOdbcMgr *dom = &import_rw_dom_;
+  DalOdbcMgr *dom = dbcm_->GetConfigRwConn();
 
   const std::list<unc_key_type_t> *pre_list = cktt_.get_preorder_list();
   for (std::list<unc_key_type_t>::const_iterator pre_it = pre_list->begin();
        pre_it != pre_list->end(); pre_it++) {
     kt = *pre_it;
     bool flag = false;
-    if (upll_kt_momgrs_.count(kt) > 0) {
-       unc_key_type_t child_key[]= { UNC_KT_VBRIDGE, UNC_KT_VBR_VLANMAP,
-                    UNC_KT_VBR_NWMONITOR, UNC_KT_VBR_NWMONITOR_HOST,
-                    UNC_KT_VBR_IF, UNC_KT_VROUTER, UNC_KT_VRT_IPROUTE,
-                    UNC_KT_DHCPRELAY_SERVER, UNC_KT_DHCPRELAY_IF,
-                    UNC_KT_VRT_IF, UNC_KT_VUNKNOWN, UNC_KT_VUNK_IF,
-                    UNC_KT_VTEP, UNC_KT_VTEP_IF, UNC_KT_VTEP_GRP,
-                    UNC_KT_VTEP_GRP_MEMBER, UNC_KT_VTUNNEL,
-                    UNC_KT_VTUNNEL_IF, UNC_KT_VLINK
-       };
-       for (unsigned int i = 0; i < sizeof(child_key)/sizeof(child_key[0]);
-            i++) {
-         const unc_key_type_t ktype = child_key[i];
-         if (ktype == kt)  {
-           UPLL_LOG_TRACE("Skip MergeValidate Here, Its done in UNC_KT_VTN for"
-               "the key type %d if applicable", ktype);
-           flag = true;
-           break;
+    std::map<unc_key_type_t, MoManager*>::iterator momgr_it =
+        upll_kt_momgrs_.find(kt);
+    if (momgr_it != upll_kt_momgrs_.end()) {
+      unc_key_type_t child_key[]= { UNC_KT_VBRIDGE, UNC_KT_VBR_VLANMAP,
+        UNC_KT_VBR_NWMONITOR, UNC_KT_VBR_NWMONITOR_HOST,
+        UNC_KT_VBR_IF, UNC_KT_VROUTER, UNC_KT_VRT_IPROUTE,
+        UNC_KT_DHCPRELAY_SERVER, UNC_KT_DHCPRELAY_IF,
+        UNC_KT_VRT_IF, UNC_KT_VUNKNOWN, UNC_KT_VUNK_IF,
+        UNC_KT_VTEP, UNC_KT_VTEP_IF, UNC_KT_VTEP_GRP,
+        UNC_KT_VTEP_GRP_MEMBER, UNC_KT_VTUNNEL,
+        UNC_KT_VTUNNEL_IF, UNC_KT_VLINK
+      };
+      for (unsigned int i = 0; i < sizeof(child_key)/sizeof(child_key[0]);
+           i++) {
+        const unc_key_type_t ktype = child_key[i];
+        if (ktype == kt)  {
+          UPLL_LOG_TRACE("Skip MergeValidate Here, Its done in UNC_KT_VTN for"
+                         "the key type %d if applicable", ktype);
+          flag = true;
+          break;
+        }
+      }
+      if (flag)
+        continue;
+      /*
+         if ((urc = ContinueActiveProcess()) != UPLL_RC_SUCCESS) {
+         UPLL_LOG_INFO("Aborting MergeValidate, Urc=%d", urc);
+         break;
          }
-       }
-     if (flag)
-       continue;
-      MoManager *momgr = upll_kt_momgrs_[kt];
+         */
+      MoManager *momgr = momgr_it->second;
       ConfigKeyVal conflict_ckv(kt);
       urc = momgr->MergeValidate(kt, import_ctrlr_id_.c_str(),
                                  &conflict_ckv, dom);
@@ -1271,19 +1339,27 @@ upll_rc_t UpllConfigMgr::MergeImportToCandidate() {
   upll_rc_t urc = UPLL_RC_SUCCESS;
   unc_key_type_t kt;
 
-  DalOdbcMgr *dom = &import_rw_dom_;
+  DalOdbcMgr *dom = dbcm_->GetConfigRwConn();
 
   const std::list<unc_key_type_t> *pre_list = cktt_.get_preorder_list();
   for (std::list<unc_key_type_t>::const_iterator pre_it = pre_list->begin();
        pre_it != pre_list->end(); pre_it++) {
     kt = *pre_it;
-    if (upll_kt_momgrs_.count(kt) > 0) {
-      MoManager *momgr = upll_kt_momgrs_[kt];
+    std::map<unc_key_type_t, MoManager*>::iterator momgr_it =
+        upll_kt_momgrs_.find(kt);
+    if (momgr_it != upll_kt_momgrs_.end()) {
+      MoManager *momgr = momgr_it->second;
       urc = momgr->MergeImportToCandidate(kt, import_ctrlr_id_.c_str(), dom);
       if (urc != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("MergeImportToCandidate failed %d", urc);
         break;
       }
+      /*
+         if ((urc = ContinueActiveProcess()) != UPLL_RC_SUCCESS) {
+         UPLL_LOG_INFO("Aborting MergeValidate, Urc=%d", urc);
+         break;
+         }
+         */
     }
   }
 
@@ -1326,7 +1402,7 @@ upll_rc_t UpllConfigMgr::IsCandidateDirtyNoLock(bool *dirty) {
   }
 
   DalOdbcMgr *dom = NULL;
-  if (UPLL_RC_SUCCESS != (urc = DalOpen(&dom, false, __FUNCTION__))) {
+  if (UPLL_RC_SUCCESS != (urc = dbcm_->AcquireRoConn(&dom))) {
     return urc;
   }
 
@@ -1336,8 +1412,10 @@ upll_rc_t UpllConfigMgr::IsCandidateDirtyNoLock(bool *dirty) {
   for (std::list<unc_key_type_t>::const_iterator pre_it = pre_list->begin();
        pre_it != pre_list->end(); pre_it++) {
     kt = *pre_it;
-    if (upll_kt_momgrs_.count(kt) > 0) {
-      MoManager *momgr = upll_kt_momgrs_[kt];
+    std::map<unc_key_type_t, MoManager*>::iterator momgr_it =
+        upll_kt_momgrs_.find(kt);
+    if (momgr_it != upll_kt_momgrs_.end()) {
+      MoManager *momgr = momgr_it->second;
       urc = momgr->IsCandidateDirty(kt, dirty, dom);
       if (urc != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("IsCandidateDirty failed %d", urc);
@@ -1350,10 +1428,11 @@ upll_rc_t UpllConfigMgr::IsCandidateDirtyNoLock(bool *dirty) {
     }
   }
 
-  upll_rc_t db_urc = DalClose(dom, (urc == UPLL_RC_SUCCESS), __FUNCTION__);
+  upll_rc_t db_urc = dbcm_->DalTxClose(dom, false);
   if (urc == UPLL_RC_SUCCESS) {
     urc = db_urc;
   }
+  dbcm_->ReleaseRoConn(dom);
 
   return urc;
 }
@@ -1397,16 +1476,17 @@ upll_rc_t UpllConfigMgr::IsKeyInUseNoLock(upll_keytype_datatype_t datatype,
   }
   if (momgr) {
     DalOdbcMgr *dom = NULL;
-    if (UPLL_RC_SUCCESS != (urc = DalOpen(&dom, false, __FUNCTION__))) {
+    if (UPLL_RC_SUCCESS != (urc = dbcm_->AcquireRoConn(&dom))) {
       return urc;
     }
 
     urc = momgr->IsKeyInUse(datatype, ckv, in_use, dom);
 
-    upll_rc_t db_urc = DalClose(dom, (urc == UPLL_RC_SUCCESS), __FUNCTION__);
+    upll_rc_t db_urc = dbcm_->DalTxClose(dom, false);
     if (urc == UPLL_RC_SUCCESS) {
       urc = db_urc;
     }
+    dbcm_->ReleaseRoConn(dom);
   } else {
     urc = UPLL_RC_ERR_GENERIC;
   }
@@ -1414,198 +1494,6 @@ upll_rc_t UpllConfigMgr::IsKeyInUseNoLock(upll_keytype_datatype_t datatype,
   return urc;
 }
 
-static upll_rc_t ConvertDalResultCode(uudal::DalResultCode drc) {
-  switch (drc) {
-    case uudal::kDalRcSuccess:
-      return UPLL_RC_SUCCESS;
-    case uudal::kDalRcConnNotEstablished:
-    case uudal::kDalRcConnNotAvailable:
-    case uudal::kDalRcConnTimeOut:
-    case uudal::kDalRcQueryTimeOut:
-      return UPLL_RC_ERR_RESOURCE_DISCONNECTED;
-    case uudal::kDalRcTxnError:
-    case uudal::kDalRcAccessViolation:
-      return UPLL_RC_ERR_DB_ACCESS;
-    case uudal::kDalRcNotDisconnected:
-    case uudal::kDalRcInvalidConnHandle:
-    case uudal::kDalRcInvalidCursor:
-    case uudal::kDalRcDataError:
-    case uudal::kDalRcRecordAlreadyExists:
-    case uudal::kDalRcRecordNotFound:
-    case uudal::kDalRcRecordNoMore:
-    case uudal::kDalRcMemoryError:
-    case uudal::kDalRcInternalError:
-    case uudal::kDalRcGeneralError:
-    // default:
-      return UPLL_RC_ERR_GENERIC;
-  }
-  return UPLL_RC_ERR_GENERIC;
-}
-
-upll_rc_t UpllConfigMgr::DalOpen(DalOdbcMgr **dom, bool read_write_conn,
-                                 const char *caller) {
-  UPLL_FUNC_TRACE;
-
-  uudal::DalResultCode drc;
-
-  uudal::DalConnType conn_type = ((read_write_conn) ? uudal::kDalConnReadWrite :
-                                  uudal::kDalConnReadOnly);
-  bool dom_allocated = false;
-  if ((*dom != &config_rw_dom_) && (*dom != &import_rw_dom_) &&
-      (*dom != &alarm_rw_dom_) && (*dom != &config_ro_dom_)) {
-    *dom = new DalOdbcMgr();
-    dom_allocated = true;
-  }
-
-  // Initialize
-  drc = (*dom)->Init();
-  if (drc != uudal::kDalRcSuccess) {
-    if (read_write_conn) {
-      pfc_log_fatal("%s: Failed to initialize DalOdbcMgr. Err=%d", caller, drc);
-    } else {
-      UPLL_LOG_ERROR("%s: Failed to initialize DalOdbcMgr. Err=%d", caller,
-                     drc);
-    }
-    if (dom_allocated) {
-      delete (*dom);
-      *dom = NULL;
-    }
-    return ConvertDalResultCode(drc);
-  } else {
-    UPLL_LOG_TRACE("%s: DalOdbcMgr init successful.", caller);
-  }
-
-  // Connect to DB
-  drc = (*dom)->ConnectToDb(conn_type);
-  if (drc != uudal::kDalRcSuccess) {
-    if (read_write_conn) {
-      pfc_log_fatal("%s: Failed to connect to database. Err=%d", caller, drc);
-    } else {
-      UPLL_LOG_ERROR("%s: Failed to connect to database. Err=%d", caller, drc);
-    }
-    if (dom_allocated) {
-      delete (*dom);
-      *dom = NULL;
-    }
-    return ConvertDalResultCode(drc);
-  } else {
-    UPLL_LOG_TRACE("%s: Connected to database.", caller);
-  }
-
-  return UPLL_RC_SUCCESS;
-}
-
-upll_rc_t UpllConfigMgr::DalClose(DalOdbcMgr *dom, bool commit,
-                                  const char *caller) {
-  UPLL_FUNC_TRACE;
-
-  uudal::DalResultCode drc;
-  upll_rc_t urc = UPLL_RC_SUCCESS;
-
-  // Commit or Rollback is required only read-write connections
-  if (dom->get_conn_type() == uudal::kDalConnReadWrite) {
-    if (commit) {
-      // Commit the transaction
-      drc = dom->CommitTransaction();
-      if (drc != uudal::kDalRcSuccess) {
-        UPLL_LOG_ERROR("%s: Failed to commit DB transaction. Err=%d",
-                       caller, drc);
-        urc = ConvertDalResultCode(drc);
-      } else {
-        UPLL_LOG_TRACE("%s: Committed the DB transaction.", caller);
-        urc = UPLL_RC_SUCCESS;
-      }
-    } else {
-      // Rollback the transaction
-      drc = dom->RollbackTransaction();
-      if (drc != uudal::kDalRcSuccess) {
-        UPLL_LOG_ERROR("%s: Failed to rollback DB transaction. Err=%d",
-                       caller, drc);
-        urc = ConvertDalResultCode(drc);
-      } else {
-        UPLL_LOG_TRACE("%s: Rolledback the DB transaction.", caller);
-        urc = UPLL_RC_SUCCESS;
-      }
-    }
-  }
-
-  // disconnect and delete dom instance for dynamic connections .
-  if ((dom != &config_rw_dom_) && (dom != &import_rw_dom_) &&
-      (dom != &alarm_rw_dom_) && (dom != &config_ro_dom_)) {
-    // Disconnect from database; on error do not change urc.
-    drc = dom->DisconnectFromDb();
-    if (drc != uudal::kDalRcSuccess) {
-      UPLL_LOG_ERROR("%s: Failed to disconnect from database. Err=%d",
-                     caller, drc);
-    } else {
-      UPLL_LOG_TRACE("%s: Disconnected from database.", caller);
-    }
-
-    delete dom;
-  }
-
-  return urc;
-}
-
-upll_rc_t UpllConfigMgr::DalOpenInitialConnections() {
-  UPLL_FUNC_TRACE;
-  pfc::core::ScopedMutex lock(rw_dom_mutex_lock_);
-  upll_rc_t urc = UPLL_RC_SUCCESS;
-
-  DalOdbcMgr *dom = &config_rw_dom_;
-  if (UPLL_RC_SUCCESS != (urc = DalOpen(&dom, true, __FUNCTION__))) {
-    return urc;
-  }
-  dom = &config_ro_dom_;
-  if (UPLL_RC_SUCCESS != (urc = DalOpen(&dom, true, __FUNCTION__))) {
-    return urc;
-  }
-  dom = &import_rw_dom_;
-  if (UPLL_RC_SUCCESS != (urc = DalOpen(&dom, true, __FUNCTION__))) {
-    return urc;
-  }
-  dom = &alarm_rw_dom_;
-  if (UPLL_RC_SUCCESS != (urc = DalOpen(&dom, true, __FUNCTION__))) {
-    return urc;
-  }
-
-  return urc;
-}
-
-upll_rc_t UpllConfigMgr::DalCloseInitialConnections() {
-  UPLL_FUNC_TRACE;
-  pfc::core::ScopedMutex lock(rw_dom_mutex_lock_);
-  upll_rc_t urc = UPLL_RC_SUCCESS;
-  uudal::DalResultCode drc;
-
-  drc = config_rw_dom_.DisconnectFromDb();
-  if (drc != uudal::kDalRcSuccess) {
-    UPLL_LOG_ERROR("Failed to disconnect config_rw_dom_ from database. Err=%d",
-                   drc);
-    urc = UPLL_RC_ERR_GENERIC;
-  }
-  drc = config_ro_dom_.DisconnectFromDb();
-  if (drc != uudal::kDalRcSuccess) {
-    UPLL_LOG_ERROR("Failed to disconnect config_ro_dom_ from database. Err=%d",
-                   drc);
-    urc = UPLL_RC_ERR_GENERIC;
-  }
-  drc = import_rw_dom_.DisconnectFromDb();
-  if (drc != uudal::kDalRcSuccess) {
-    UPLL_LOG_ERROR("Failed to disconnect import_rw_dom_ from database. Err=%d",
-                   drc);
-    urc = UPLL_RC_ERR_GENERIC;
-  }
-  drc = alarm_rw_dom_.DisconnectFromDb();
-  if (drc != uudal::kDalRcSuccess) {
-    UPLL_LOG_ERROR("Failed to disconnect alarm_rw_dom_ from database. Err=%d",
-                   drc);
-    urc = UPLL_RC_ERR_GENERIC;
-  }
-
-  return urc;
-}
-
 void UpllConfigMgr::OnPathFaultAlarm(const char *ctrlr_name,
                                      const char *domain_name,
                                      std::vector<std::string> &ingress_ports,
@@ -1614,13 +1502,14 @@ void UpllConfigMgr::OnPathFaultAlarm(const char *ctrlr_name,
   UPLL_FUNC_TRACE;
   ScopedConfigLock lock(cfg_lock_, UPLL_DT_RUNNING, ConfigLock::CFG_WRITE_LOCK);
   uuk::VbrIfMoMgr *mgr = reinterpret_cast<uuk::VbrIfMoMgr *>
-                    (GetMoManager(UNC_KT_VBR_IF));
+      (GetMoManager(UNC_KT_VBR_IF));
   if (mgr != NULL) {
     upll_rc_t urc;
-    DalOdbcMgr *dom = &alarm_rw_dom_;
+    DalOdbcMgr *dom = dbcm_->GetAlarmRwConn();
     urc = mgr->PathFaultHandler(ctrlr_name, domain_name, ingress_ports,
                                 egress_ports, alarm_asserted, dom);
-    DalClose(dom, (urc == UPLL_RC_SUCCESS), __FUNCTION__);
+    dbcm_->DalTxClose(dom, (urc == UPLL_RC_SUCCESS));
+    dbcm_->ReleaseRwConn(dom);
   }
 }
 
@@ -1632,10 +1521,11 @@ void UpllConfigMgr::OnControllerStatusChange(const char *ctrlr_name,
       (GetMoManager(UNC_KT_VTN));
   if (mgr != NULL) {
     upll_rc_t urc;
-    DalOdbcMgr *dom = &alarm_rw_dom_;
+    DalOdbcMgr *dom = dbcm_->GetAlarmRwConn();
     urc = mgr->ControllerStatusHandler(reinterpret_cast<uint8_t*>(
             const_cast<char*>(ctrlr_name)), dom, operstatus);
-    DalClose(dom, (urc == UPLL_RC_SUCCESS), __FUNCTION__);
+    dbcm_->DalTxClose(dom, (urc == UPLL_RC_SUCCESS));
+    dbcm_->ReleaseRwConn(dom);
   }
 }
 
@@ -1649,10 +1539,11 @@ void UpllConfigMgr::OnLogicalPortStatusChange(const char *ctrlr_name,
       (GetMoManager(UNC_KT_VBR_IF));
   if (mgr != NULL) {
     upll_rc_t urc;
-    DalOdbcMgr *dom = &alarm_rw_dom_;
+    DalOdbcMgr *dom = dbcm_->GetAlarmRwConn();
     urc = mgr->PortStatusHandler(ctrlr_name, domain_name, logical_port_id,
                                  oper_status, dom);
-    DalClose(dom, (urc == UPLL_RC_SUCCESS), __FUNCTION__);
+    dbcm_->DalTxClose(dom, (urc == UPLL_RC_SUCCESS));
+    dbcm_->ReleaseRwConn(dom);
   }
 }
 
@@ -1665,14 +1556,16 @@ void UpllConfigMgr::OnBoundaryStatusChange(const char *boundary_id,
       (GetMoManager(UNC_KT_VLINK));
   if (mgr != NULL) {
     upll_rc_t urc;
-    DalOdbcMgr *dom = &alarm_rw_dom_;
+    DalOdbcMgr *dom = dbcm_->GetAlarmRwConn();
     urc = mgr->BoundaryStatusHandler(
         reinterpret_cast<uint8_t*>(const_cast<char*>(boundary_id)),
         oper_status, dom);
-    DalClose(dom, (urc == UPLL_RC_SUCCESS), __FUNCTION__);
+    dbcm_->DalTxClose(dom, (urc == UPLL_RC_SUCCESS));
+    dbcm_->ReleaseRwConn(dom);
   }
 #else
-  UPLL_LOG_DEBUG("Recevied boundary %s oper status %d\n",boundary_id,oper_status);
+  UPLL_LOG_DEBUG("Recevied boundary %s oper status %d\n", boundary_id,
+                 oper_status);
 #endif
 }
 
@@ -1688,12 +1581,13 @@ void UpllConfigMgr::OnPolicerFullAlarm(
   if (mgr != NULL) {
     upll_rc_t urc;
     DalOdbcMgr *dom = NULL;
-    if (UPLL_RC_SUCCESS != (urc = DalOpen(&dom, false, __FUNCTION__))) {
+    if (UPLL_RC_SUCCESS != (urc = dbcm_->AcquireRoConn(&dom))) {
       return;
     }
     urc = mgr->OnPolicerFullAlarm(ctrlr_name, domain_id, key_vtn,
                                   alarm_data, alarm_raised, dom);
-    DalClose(dom, (urc == UPLL_RC_SUCCESS), __FUNCTION__);
+    dbcm_->DalTxClose(dom, false);
+    dbcm_->ReleaseRoConn(dom);
   }
 }
 
@@ -1710,12 +1604,13 @@ void UpllConfigMgr::OnPolicerFailAlarm(
   if (mgr != NULL) {
     upll_rc_t urc;
     DalOdbcMgr *dom = NULL;
-    if (UPLL_RC_SUCCESS != (urc = DalOpen(&dom, false, __FUNCTION__))) {
+    if (UPLL_RC_SUCCESS != (urc = dbcm_->AcquireRoConn(&dom))) {
       return;
     }
     urc = mgr->OnPolicerFailAlarm(ctrlr_name, domain_id, key_vtn,
                                   alarm_data, alarm_raised, dom);
-    DalClose(dom, (urc == UPLL_RC_SUCCESS), __FUNCTION__);
+    dbcm_->DalTxClose(dom, false);
+    dbcm_->ReleaseRoConn(dom);
   }
 }
 
@@ -1725,13 +1620,14 @@ void UpllConfigMgr::OnNwmonFaultAlarm(
   UPLL_FUNC_TRACE;
   ScopedConfigLock lock(cfg_lock_, UPLL_DT_RUNNING, ConfigLock::CFG_READ_LOCK);
   uuk::NwMonitorMoMgr *nwm_mgr = reinterpret_cast<uuk::NwMonitorMoMgr*>
-         (const_cast<MoManager*>(GetMoManager(UNC_KT_VBR_NWMONITOR)));
+      (const_cast<MoManager*>(GetMoManager(UNC_KT_VBR_NWMONITOR)));
   if (nwm_mgr != NULL) {
     upll_rc_t urc;
-    DalOdbcMgr *dom = &alarm_rw_dom_;
+    DalOdbcMgr *dom = dbcm_->GetAlarmRwConn();
     urc = nwm_mgr->OnNwmonFault(ctrlr_name, domain_id, vtn_key, alarm_data,
-                            alarm_raised, dom);
-    DalClose(dom, (urc == UPLL_RC_SUCCESS), __FUNCTION__);
+                                alarm_raised, dom);
+    dbcm_->DalTxClose(dom, (urc == UPLL_RC_SUCCESS));
+    dbcm_->ReleaseRwConn(dom);
   }
 }
 
@@ -1787,7 +1683,7 @@ bool UpllConfigMgr::SendOperStatusAlarm(const char *vtn_name,
 
   return true;
 }
-                                                                       // NOLINT
-}  // namesapce config_momgr
-}  // namesapce upll
-}  // namesapce unc
+// NOLINT
+}  // namespace config_momgr
+}  // namespace upll
+}  // namespace unc
index f76b8708d2041756b1d22ea0022ff02c166a61a8..fe006fee1aadd2ec22cb30ac06e80771eecee6ac 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
 #include "tclib_module.hh"
 
 #include "unc/upll_svc.h"
+#include "upll_util.hh"
 #include "ipc_util.hh"
 #include "key_tree.hh"
 #include "momgr_intf.hh"
 #include "tclib_intf_impl.hh"
 #include "config_lock.hh"
+#include "dbconn_mgr.hh"
 
 namespace unc {
 namespace upll {
@@ -50,12 +52,12 @@ enum upll_alarm_category_t {
 
 class UpllConfigMgr {
  public:
-   /**
-    * @brief Creates a singleton instance of UpllConfigMgr if one is not already
-    * constructed.
-    *
-    * @return Pointer to newly constructed or exsting instance of UpllConfigMgr
-    */
+  /**
+   * @brief Creates a singleton instance of UpllConfigMgr if one is not already
+   * constructed.
+   *
+   * @return Pointer to newly constructed or exsting instance of UpllConfigMgr
+   */
   static UpllConfigMgr *GetUpllConfigMgr() {
     if (!singleton_instance_) {
       singleton_instance_ = new UpllConfigMgr();
@@ -197,7 +199,7 @@ class UpllConfigMgr {
    * @brief Controller down event handler
    *
    * @param[in] ctrlr_name  name of the controller
-   * @param[in] operstatus  operational status of controller 
+   * @param[in] operstatus  operational status of controller
    */
   void OnControllerStatusChange(const char *ctrlr_name, bool operstatus);
 
@@ -267,7 +269,8 @@ class UpllConfigMgr {
   upll_rc_t OnTxStart(uint32_t session_id, uint32_t config_id,
                       ConfigKeyVal **err_ckv);
   upll_rc_t OnAuditTxStart(const char *ctrlr_id,
-                        uint32_t session_id, uint32_t config_id);
+                           uint32_t session_id, uint32_t config_id,
+                           ConfigKeyVal **err_ckv);
   upll_rc_t OnTxVote(const std::set<std::string> **affected_ctrlr_list,
                      ConfigKeyVal **err_ckv);
   upll_rc_t OnAuditTxVote(const char *ctrlr_id,
@@ -294,8 +297,10 @@ class UpllConfigMgr {
   const KeyTree &GetConfigKeyTree() { return cktt_; }
 
   MoManager *GetMoManager(unc_key_type_t kt) {
-    if (upll_kt_momgrs_.count(kt) > 0 )
-      return upll_kt_momgrs_[kt];
+    std::map<unc_key_type_t, MoManager*>::iterator it =
+        upll_kt_momgrs_.find(kt);
+    if (it != upll_kt_momgrs_.end() )
+      return it->second;
     return NULL;
   }
 
@@ -312,19 +317,32 @@ class UpllConfigMgr {
     sys_state_rwlock_.unlock();
     return state;
   }
+
   void SetClusterState(bool active) {
     sys_state_rwlock_.wrlock();
     node_active_ = active;
     tclib_impl_.SetClusterState(active);
     sys_state_rwlock_.unlock();
+    dbcm_->TerminateAllDbConns();
     if (active) {
-      DalOpenInitialConnections();
-      OnAuditEnd("", true);
-      ClearImport(0, 0, true);
+      upll_rc_t urc;
+      dbcm_->InitializeDbConnections();
+      DalOdbcMgr *dbinst = dbcm_->GetConfigRwConn();
+      dbinst->MakeAllDirty();
+      dbcm_->ReleaseRwConn(dbinst);
+      urc = OnAuditEnd("", true);
+      if (urc != UPLL_RC_SUCCESS) {
+        UPLL_LOG_FATAL("Failed to clear audit tables, urc=%d", urc);
+      }
+      urc = ClearImport(0, 0, true);
+      if (urc != UPLL_RC_SUCCESS) {
+        UPLL_LOG_FATAL("Failed to clear import tables, urc=%d", urc);
+      }
     } else {
-      DalCloseInitialConnections();
+      // dbcm_->TerminateAllDbConns();
     }
   }
+
   bool IsActiveNode() {
     bool state;
     sys_state_rwlock_.rdlock();
@@ -332,6 +350,21 @@ class UpllConfigMgr {
     sys_state_rwlock_.unlock();
     return state;
   }
+
+  upll_rc_t ContinueActiveProcess() {
+    if (IsShuttingDown()) {
+      UPLL_LOG_INFO("Shutting down, cannot commit");
+      return UPLL_RC_ERR_SHUTTING_DOWN;
+    }
+
+    if (!IsActiveNode()) {
+      UPLL_LOG_INFO("Node is not active, cannot commit");
+      return UPLL_RC_ERR_NOT_SUPPORTED_BY_STANDBY;
+    }
+    return UPLL_RC_SUCCESS;
+  }
+
+  uint32_t GetDbROConnLimitFrmConfFile();
   bool SendOperStatusAlarm(const char *vtn_name, const char *vnode_name,
                            const char *vif_name, bool assert_alarm);
 
@@ -384,12 +417,6 @@ class UpllConfigMgr {
                            const char *ctrlr_id, uint32_t operation);
   upll_rc_t ImportCtrlrConfig(const char *ctrlr_id, upll_keytype_datatype_t dt);
 
-  // Helper functions or DB operations
-  upll_rc_t DalOpen(DalOdbcMgr **dom, bool read_write_conn, const char *caller);
-  upll_rc_t DalClose(DalOdbcMgr *dom, bool commit, const char *caller);
-  upll_rc_t DalOpenInitialConnections();
-  upll_rc_t DalCloseInitialConnections();
-
   bool SendInvalidConfigAlarm(string ctrlr_name, bool assert_alarm);
 
 
@@ -411,6 +438,7 @@ class UpllConfigMgr {
   bool import_in_progress_;
   string import_ctrlr_id_;
   string audit_ctrlr_id_;
+  KTxCtrlrAffectedState audit_ctrlr_affected_state_;
   pfc::core::Mutex  commit_mutex_lock_;
   pfc::core::Mutex  import_mutex_lock_;
   pfc::core::Mutex  audit_mutex_lock_;
@@ -419,11 +447,7 @@ class UpllConfigMgr {
   // Initail database connections. When node turns ACTIVE, intial connections
   // are mode, and when node turns STANDBY from ACTIVE, initial connections are
   // closed.
-  pfc::core::Mutex rw_dom_mutex_lock_;
-  DalOdbcMgr config_rw_dom_;
-  DalOdbcMgr config_ro_dom_;
-  DalOdbcMgr import_rw_dom_;
-  DalOdbcMgr alarm_rw_dom_;
+  UpllDbConnMgr *dbcm_;
 
   int32_t alarm_fd;
 
index c3880d9fd464ccdd2f8a78770281cfbaf4a6cd3c..3259ac1b8d3e84cc41ec6676e37ac3d23ecb44e2 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -11,6 +11,7 @@
  * upll_main.cc - UPLL module
  */
 
+#include <clstat_api.h>
 #include <map>
 
 #include "pfc/debug.h"
 #include "unc/unc_events.h"
 
 #include "alarm.hh"
-#include <clstat_api.h>
 
 #include "unc/uppl_common.h"
 #include "unc/pfcdriver_include.h"
-
 #include "unc/upll_svc.h"
 #include "uncxx/upll_log.hh"
 
@@ -36,6 +35,9 @@
 #include "ctrlr_mgr.hh"
 #include "config_svc.hh"
 
+bool fatal_done;
+pfc::core::Mutex  fatal_mutex_lock;
+
 namespace unc {
 namespace upll {
 namespace config_svc {
@@ -60,13 +62,13 @@ unsigned int UpllConfigSvc::kNumCfgServices = 4;
 UpllConfigSvc::UpllConfigSvc(const pfc_modattr_t *mattr)
     : pfc::core::Module(mattr), sys_evhid_(EVHANDLER_ID_INVALID),
     cls_evhid_(EVHANDLER_ID_INVALID) {
-  UPLL_LOG_NOTICE("constructor");
-  shutting_down_ = false;
-  node_active_ = false;
-  config_mgr_ = NULL;
-  physical_evhdlr_ = NULL;
-  pfcdriver_evhdlr_ = NULL;
-}
+      UPLL_LOG_NOTICE("constructor");
+      shutting_down_ = false;
+      node_active_ = false;
+      config_mgr_ = NULL;
+      physical_evhdlr_ = NULL;
+      pfcdriver_evhdlr_ = NULL;
+    }
 
 /*
  * UpllConfigSvc::~UpllConfigSvc(void)
@@ -184,7 +186,26 @@ pfc_ipcresp_t UpllConfigSvc::KtService(pfc::core::ipc::ServerSession *sess,
     ping_tspec.tv_nsec = 0;
     sess->setTimeout(&ping_tspec);
     UPLL_LOG_DEBUG("IPC Server Session timeout for Ping set to %d",
-                  kIpcTimeoutPing);
+                   kIpcTimeoutPing);
+  } else if (ckv->get_key_type() == UNC_KT_VTNSTATION_CONTROLLER) {
+    pfc_timespec_t tspec;
+    tspec.tv_sec = kIpcTimeoutVtnstation;
+    tspec.tv_nsec = 0;
+    sess->setTimeout(&tspec);
+    UPLL_LOG_DEBUG("IPC Server Session timeout for VTN_STATION_CONTROLLER "
+                   "set to %d", kIpcTimeoutVtnstation);
+  }
+
+  if (ckv->get_key_type() == UNC_KT_VTN_DATAFLOW) {
+    pfc_timespec_t dataflow_tspec;
+    dataflow_tspec.tv_sec = kIpcTimeoutDataflow;
+    dataflow_tspec.tv_nsec = 0;
+    sess->setTimeout(&dataflow_tspec);
+    UPLL_LOG_DEBUG("IPC Server Session timeout for data-flow set to %d",
+                   kIpcTimeoutDataflow);
+    // XXX: store server session object in CKV user_data CKV
+    // for data-flow library
+    ckv->set_user_data(sess);
   }
 
   pfc_ipcresp_t ret = config_mgr_->KtServiceHandler(service, &msghdr, ckv);
@@ -195,6 +216,19 @@ pfc_ipcresp_t UpllConfigSvc::KtService(pfc::core::ipc::ServerSession *sess,
   }
 
   // send the response
+  // Convert driver specific error UPLL_RC_ERR_CTR_DISCONNECTED
+  // to logical specific error UNC_UPLL_RC_ERR_RESOURCE_DISCONNECTED
+  if (msghdr.result_code == UPLL_RC_ERR_CTR_DISCONNECTED) {
+    msghdr.result_code = UPLL_RC_ERR_RESOURCE_DISCONNECTED;
+  }
+  if (ckv->get_key_type() == UNC_KT_VTN_DATAFLOW) {
+    UPLL_LOG_TRACE("KT:UNC_KT_VTN_DATAFLOW result:%d", msghdr.result_code);
+    ckv->set_user_data(NULL);
+    if (msghdr.result_code == UPLL_RC_SUCCESS) {
+      delete ckv;
+      return 0;
+    }
+  }
   if (!IpcUtil::WriteKtResponse(sess, msghdr, ckv)) {
     UPLL_LOG_DEBUG("Failed to send response to key tree request");
     delete ckv;
@@ -216,7 +250,7 @@ pfc_ipcresp_t UpllConfigSvc::GlobalConfigService(
 
   if (0 != (ipc_err = sess->getArgument(arg++, operation))) {
     UPLL_LOG_DEBUG("Unable to read operation from IPC request. Err=%d",
-                  ipc_err);
+                   ipc_err);
     return PFC_IPCRESP_FATAL;
   }
   switch (operation) {
@@ -227,6 +261,7 @@ pfc_ipcresp_t UpllConfigSvc::GlobalConfigService(
                      " to infinite");
       urc = config_mgr_->IsCandidateDirty(&dirty);
       // Write response
+      // No need to convert UPLL_RC_ERR_CTR_DISCONNECTED error code
       if ((0 != (ipc_err = sess->addOutput((uint32_t)operation))) ||
           (0 != (ipc_err = sess->addOutput((uint32_t)urc))) ||
           (0 != (ipc_err = sess->addOutput((uint8_t)dirty)))) {
@@ -263,13 +298,13 @@ pfc_ipcresp_t UpllConfigSvc::GlobalConfigService(
       }
 
       /*
-      pfc_timespec_t sess_timeout;
-      sess_timeout.tv_sec = kIpcTimeoutImport;
-      sess_timeout.tv_nsec = 0;
-      sess->setTimeout(&sess_timeout);
-      UPLL_LOG_DEBUG("IPC Server Session timeout for Import set to %d",
-                     kIpcTimeoutImport);
-      */
+         pfc_timespec_t sess_timeout;
+         sess_timeout.tv_sec = kIpcTimeoutImport;
+         sess_timeout.tv_nsec = 0;
+         sess->setTimeout(&sess_timeout);
+         UPLL_LOG_DEBUG("IPC Server Session timeout for Import set to %d",
+         kIpcTimeoutImport);
+         */
       sess->setTimeout(NULL);
       UPLL_LOG_DEBUG("IPC Server Session timeout for Import set to infinite.");
 
@@ -278,6 +313,11 @@ pfc_ipcresp_t UpllConfigSvc::GlobalConfigService(
                      " session_id=%d, config_id=%d",
                      urc, ctrlr_name, session_id, config_id);
       // Write response
+      // Convert driver specific error UNC_RC_ERR_CTR_DISCONNECTED
+      // to logical specific error UNC_UPLL_RC_ERR_RESOURCE_DISCONNECTED
+      if (urc == UPLL_RC_ERR_CTR_DISCONNECTED) {
+        urc = UPLL_RC_ERR_RESOURCE_DISCONNECTED;
+      }
       if ((0 != (ipc_err = sess->addOutput((uint32_t)operation))) ||
           (0 != (ipc_err = sess->addOutput((uint32_t)urc)))) {
         UPLL_LOG_DEBUG("Unable to write IPC response. Err=%d", ipc_err);
@@ -297,13 +337,13 @@ pfc_ipcresp_t UpllConfigSvc::GlobalConfigService(
       }
 
       /*
-      pfc_timespec_t sess_timeout;
-      sess_timeout.tv_sec = kIpcTimeoutImport;
-      sess_timeout.tv_nsec = 0;
-      sess->setTimeout(&sess_timeout);
-      UPLL_LOG_DEBUG("IPC Server Session timeout for ImportMerge set to %d",
-                     kIpcTimeoutImport);
-      */
+         pfc_timespec_t sess_timeout;
+         sess_timeout.tv_sec = kIpcTimeoutImport;
+         sess_timeout.tv_nsec = 0;
+         sess->setTimeout(&sess_timeout);
+         UPLL_LOG_DEBUG("IPC Server Session timeout for ImportMerge set to %d",
+         kIpcTimeoutImport);
+         */
       sess->setTimeout(NULL);
       UPLL_LOG_DEBUG("IPC Server Session timeout for Merge set to infinite");
 
@@ -311,6 +351,11 @@ pfc_ipcresp_t UpllConfigSvc::GlobalConfigService(
       UPLL_LOG_TRACE("Merge: urc=%d, session_id=%d, config_id=%d",
                      urc, session_id, config_id);
       // Write response
+      // Convert driver specific error UNC_RC_CTR_DISCONNECTED
+      // to logical specific error UNC_UPLL_RC_ERR_RESOURCE_DISCONNECTED
+      if (urc == UPLL_RC_ERR_CTR_DISCONNECTED) {
+        urc = UPLL_RC_ERR_RESOURCE_DISCONNECTED;
+      }
       if ((0 != (ipc_err = sess->addOutput((uint32_t)operation))) ||
           (0 != (ipc_err = sess->addOutput((uint32_t)urc)))) {
         UPLL_LOG_DEBUG("Unable to write IPC response. Err=%d", ipc_err);
@@ -332,6 +377,7 @@ pfc_ipcresp_t UpllConfigSvc::GlobalConfigService(
       UPLL_LOG_TRACE("ClearImport: urc=%d, session_id=%d, config_id=%d",
                      urc, session_id, config_id);
       // Write response
+      // No need to convert UNC_RC_CTR_DISCONNECTED error code
       if ((0 != (ipc_err = sess->addOutput((uint32_t)operation))) ||
           (0 != (ipc_err = sess->addOutput((uint32_t)urc)))) {
         UPLL_LOG_DEBUG("Unable to write IPC response. Err=%d", ipc_err);
@@ -342,12 +388,12 @@ pfc_ipcresp_t UpllConfigSvc::GlobalConfigService(
     break;
 
     case UPLL_IS_KEY_TYPE_IN_USE_OP:
-      return HandleIsKeyInUse(sess, arg);
-      break;
+    return HandleIsKeyInUse(sess, arg);
+    break;
 
     case UPLL_UPPL_UPDATE_OP:
-      return HandleUpplUpdate(sess, arg);
-      break;
+    return HandleUpplUpdate(sess, arg);
+    break;
   }
   return PFC_IPCRESP_FATAL;
 }
@@ -465,8 +511,8 @@ pfc_ipcresp_t UpllConfigSvc::HandleUpplUpdate(
     if (ctr_val.valid[kIdxType] == UNC_VF_VALID) {
       // For Unknown, version is optional.
       if (((unc_keytype_ctrtype_t)ctr_val.type == UNC_CT_PFC ||
-          (unc_keytype_ctrtype_t)ctr_val.type == UNC_CT_VNP || 
-          (unc_keytype_ctrtype_t)ctr_val.type == UNC_CT_ODC)) {
+           (unc_keytype_ctrtype_t)ctr_val.type == UNC_CT_VNP ||
+           (unc_keytype_ctrtype_t)ctr_val.type == UNC_CT_ODC)) {
         if (ctr_val.valid[kIdxVersion] == UNC_VF_INVALID) {
           urc = UPLL_RC_ERR_CFG_SYNTAX;
         }
@@ -671,7 +717,7 @@ void UpllConfigSvc::PhysicalEventHandler(const IpcEvent &event) {
   uint32_t arg_cnt = sess.getResponseCount();
   if (arg_cnt < unc::upll::ipc_util::kPhyConfigNotificationMandatoryFields) {
     UPLL_LOG_DEBUG("Not enough arguments in Physical event. Has only %u.",
-                  arg_cnt);
+                   arg_cnt);
     return;
   }
 
@@ -767,14 +813,14 @@ void UpllConfigSvc::PhysicalEventHandler(const IpcEvent &event) {
           if ((old_ctr_st.oper_status == UPPL_CONTROLLER_OPER_UP)  &&
               (new_ctr_st.oper_status != UPPL_CONTROLLER_OPER_UP)) {
             config_mgr_->OnControllerStatusChange(
-                            reinterpret_cast<char *>(key_ctr.controller_name),
-                            UPPL_CONTROLLER_OPER_DOWN);
+                reinterpret_cast<char *>(key_ctr.controller_name),
+                UPPL_CONTROLLER_OPER_DOWN);
           }  else if ((old_ctr_st.oper_status != UPPL_CONTROLLER_OPER_UP)  &&
-                     (new_ctr_st.oper_status == UPPL_CONTROLLER_OPER_UP)) {
+                      (new_ctr_st.oper_status == UPPL_CONTROLLER_OPER_UP)) {
             config_mgr_->OnControllerStatusChange(
-                             reinterpret_cast<char *>(key_ctr.controller_name),
-                             UPPL_CONTROLLER_OPER_UP);
-          } 
+                reinterpret_cast<char *>(key_ctr.controller_name),
+                UPPL_CONTROLLER_OPER_UP);
+          }
         }
       }
       return;
@@ -794,7 +840,12 @@ void UpllConfigSvc::PhysicalEventHandler(const IpcEvent &event) {
           return;
         }
         if (operation == UNC_OP_CREATE) {
-          // To do nothing?
+          config_mgr_->OnLogicalPortStatusChange(
+              reinterpret_cast<char *>(
+                  key_port.domain_key.ctr_key.controller_name),
+              reinterpret_cast<char *>(key_port.domain_key.domain_name),
+              reinterpret_cast<char *>(key_port.port_id),
+              new_port_st.oper_status);
         } else if (operation == UNC_OP_UPDATE) {
           if (0 != (err = sess.getResponse(arg++, old_port_st))) {
             UPLL_LOG_DEBUG("Failed to get field at #%u in Physical event. "
@@ -881,7 +932,7 @@ void UpllConfigSvc::PfcDriverAlarmHandler(const IpcEvent &event) {
       (0 != (err = sess.getResponse(arg++, keytype))) ||
       (0 != (err = sess.getResponse(arg++, alarm_type)))) {
     UPLL_LOG_DEBUG("Failed to get header field #%u in the alarm from PFCDriver."
-                  " Err=%d", arg, err);
+                   " Err=%d", arg, err);
     return;
   }
   if (ctrlr_name[0] == 0) {
@@ -980,10 +1031,10 @@ void UpllConfigSvc::UnregisterIpcEventHandlers() {
     pfcdriver_evhdlr_ = NULL;
   }
 }
-                                                                       // NOLINT
-}  // namesapce config_svc
-}  // namesapce upll
-}  // namesapce unc
+// NOLINT
+}  // namespace config_svc
+}  // namespace upll
+}  // namespace unc
 
 /* Declare C++ module. */
 PFC_MODULE_IPC_DECL(unc::upll::config_svc::UpllConfigSvc,
index 27fa3e23e114678e7868536e2cc6243b37cb7a0f..8aa39db3fe56d1cb56e1b8b47293c243749720a5 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
index be1439048e773f10c3a0802b308b7188feb7773f..30d963bf9c96d6c0745d4555f563910d1834013d 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -85,7 +85,7 @@ upll_rc_t CtrlrMgr::Add(const Ctrlr &ctrlr,
 /**
  * @brief Delete controller in both candidate and running
  *
- * @param ctrlr_name[in]      Controller name 
+ * @param ctrlr_name[in]      Controller name
  *
  * @retval  UPLL_RC_SUCCESS, if controller deleted
  * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE, if entry not found
@@ -105,7 +105,7 @@ upll_rc_t CtrlrMgr::Delete(const std::string &ctrlr_name,
   for (std::list<Ctrlr*>::iterator it = ctrlrs_.begin();
        it != ctrlrs_.end(); ++it) {
     if ((*it)->name_.compare(ctrlr_name) == 0 &&
-      (*it)->datatype_ == datatype) {
+        (*it)->datatype_ == datatype) {
       ctrlr = *it;
       ctrlrs_.erase(it);
       delete ctrlr;
@@ -128,7 +128,7 @@ upll_rc_t CtrlrMgr::Delete(const std::string &ctrlr_name,
 /**
  * @brief Update controller version
  *
- * @param ctrlr_name[in]      Controller name 
+ * @param ctrlr_name[in]      Controller name
  * @param ctrlr_version[in]   Controller version
  *
  * @retval  UPLL_RC_SUCCESS, if controller updated
@@ -169,8 +169,8 @@ upll_rc_t CtrlrMgr::UpdateVersion(const std::string &ctrlr_name,
 /**
  * @brief Update audit_done flag in Running
  *
- * @param ctrlr_name[in]      Controller name 
- * @param audit_done[in]      Audit Done flag 
+ * @param ctrlr_name[in]      Controller name
+ * @param audit_done[in]      Audit Done flag
  *
  * @retval  UPLL_RC_SUCCESS, if controller updated
  * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE, if entry not found
@@ -207,8 +207,8 @@ upll_rc_t CtrlrMgr::UpdateAuditDone(const std::string &ctrlr_name,
 /**
  * @brief Update config_done flag in Running
  *
- * @param ctrlr_name[in]      Controller name 
- * @param config_done[in]     Config Done flag 
+ * @param ctrlr_name[in]      Controller name
+ * @param config_done[in]     Config Done flag
  *
  * @retval  UPLL_RC_SUCCESS, if controller updated
  * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE, if entry not found
@@ -245,8 +245,8 @@ upll_rc_t CtrlrMgr::UpdateConfigDone(const std::string &ctrlr_name,
 /**
  * @brief Update invalid_config flag in Running
  *
- * @param ctrlr_name[in]      Controller name 
- * @param invalid_config[in]  Invalid Config flag 
+ * @param ctrlr_name[in]      Controller name
+ * @param invalid_config[in]  Invalid Config flag
  *
  * @retval  UPLL_RC_SUCCESS, if controller updated
  * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE, if entry not found
@@ -359,7 +359,7 @@ bool CtrlrMgr::GetCtrlrTypeAndVersion(const char *ctrlr_name,
  *
  * @param ctrlr_name[in]  Controller Name
  *
- * @return  
+ * @return
  */
 upll_rc_t CtrlrMgr::IsConfigInvalid(const char *ctrlr_name,
                                     bool *config_invalid) {
@@ -389,8 +389,8 @@ upll_rc_t CtrlrMgr::IsConfigInvalid(const char *ctrlr_name,
  *
  * @param ctrlr_name[in]  Controller Name
  *
- * @return  
- *          
+ * @return
+ *
  */
 upll_rc_t CtrlrMgr::IsConfigDone(const char *ctrlr_name, bool *config_done) {
   pfc::core::ScopedMutex lock(ctrlr_mutex_);
@@ -447,7 +447,7 @@ upll_rc_t CtrlrMgr::IsAuditDone(const char *ctrlr_name, bool *audit_done) {
 /**
  * @brief Get Name of the first controller in the list
  *
- * @param[in]  datatype      Datatype in which to be read 
+ * @param[in]  datatype      Datatype in which to be read
  * @param[out] first_name    Name of the first controller
  *
  * @return     UPLL_RC_SUCCES, when name is read from the list
@@ -485,9 +485,9 @@ upll_rc_t CtrlrMgr::GetFirstCtrlrName(
 /**
  * @brief Get Name of the next controller in the list
  *
- * @param[in]  name          Name of the input controller 
- * @param[in]  datatype      Datatype in which to be read 
- * @param[out] next_name     Name of the next controller 
+ * @param[in]  name          Name of the input controller
+ * @param[in]  datatype      Datatype in which to be read
+ * @param[out] next_name     Name of the next controller
  *
  * @return     UPLL_RC_SUCCES, when name is read from the list
  *             UPLL_RC_ERR_NO_SUCH_INSTANCE when there is no matching entry
@@ -498,7 +498,7 @@ upll_rc_t CtrlrMgr::GetNextCtrlrName(
     std::string *next_name) {
   pfc::core::ScopedMutex lock(ctrlr_mutex_);
   UPLL_LOG_TRACE("Input Ctrlr (%s) next Ctrlr (%s) ",
-                     in_name.c_str(), (*next_name).c_str());
+                 in_name.c_str(), (*next_name).c_str());
   upll_keytype_datatype_t mapped_dt;
   mapped_dt = MapDataType(datatype);
   if (next_name == NULL) {
@@ -515,7 +515,7 @@ upll_rc_t CtrlrMgr::GetNextCtrlrName(
       continue;
     if ((*it)->name_.compare(in_name) > 0) {
       UPLL_LOG_DEBUG("ctlr in list (%s) and input ctrlr (%s) are same",
-       (*it)->name_.c_str(), in_name.c_str());
+                     (*it)->name_.c_str(), in_name.c_str());
       *next_name = (*it)->name_;
       UPLL_LOG_DEBUG("next_name Ctrlr (%s)", (*next_name).c_str());
       return UPLL_RC_SUCCESS;
@@ -584,15 +584,15 @@ void CtrlrMgr::PrintCtrlrList() {
     return;
   }
   ss << "\n***********************************************************"
-     << "name, type, version, audit_done, config_done, invalid_config,"
-     << " datatype\n"
-     << "\n***********************************************************";
+      << "name, type, version, audit_done, config_done, invalid_config,"
+      << " datatype\n"
+      << "\n***********************************************************";
   for (std::list<Ctrlr*>::iterator it = ctrlrs_.begin();
        it != ctrlrs_.end(); ++it) {
     ss << (*it)->name_.c_str() << ", " << (*it)->type_ << ", "
-       << (*it)->version_.c_str() << ", " << (*it)->audit_done_ << ", "
-       << (*it)->config_done_ << ", " << (*it)->invalid_config_ << ", "
-       << (*it)->datatype_ << "\n";
+        << (*it)->version_.c_str() << ", " << (*it)->audit_done_ << ", "
+        << (*it)->config_done_ << ", " << (*it)->invalid_config_ << ", "
+        << (*it)->datatype_ << "\n";
   }
   UPLL_LOG_DEBUG("\n%s", ss.str().c_str());
   ss << "\n***********************************************************";
index e1da57a958847d39eb257711d889d22a39a6cff3..1c6222b1b60f02b7d38e6907b50dce0968f5f0bc 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -26,41 +26,41 @@ class CtrlrMgr {
  public:
   static const uint32_t CTRLR_NAME_LEN = 31;
   class Ctrlr {
-    public:
-      friend class CtrlrMgr;
-      Ctrlr(const char *name, unc_keytype_ctrtype_t type, const char *version)
+   public:
+    friend class CtrlrMgr;
+    Ctrlr(const char *name, unc_keytype_ctrtype_t type, const char *version)
         :name_(name), type_(type), version_(version) {
-        invalid_config_ = false;
-        audit_done_ = false;
-        config_done_ = false;
-        datatype_ = UPLL_DT_CANDIDATE;
-      }
-      Ctrlr(const Ctrlr &ctrlr, upll_keytype_datatype_t datatype)
+          invalid_config_ = false;
+          audit_done_ = false;
+          config_done_ = false;
+          datatype_ = UPLL_DT_CANDIDATE;
+        }
+    Ctrlr(const Ctrlr &ctrlr, upll_keytype_datatype_t datatype)
         :name_(ctrlr.name_), version_(ctrlr.version_) {
-        UPLL_FUNC_TRACE;
-        type_ = ctrlr.type_;
-        invalid_config_ = ctrlr.invalid_config_;
-        audit_done_ = ctrlr.audit_done_;
-        config_done_ = ctrlr.config_done_;
-        datatype_ = datatype;
-      }
-      ~Ctrlr() {
-        UPLL_FUNC_TRACE;
-        name_.clear();
-        version_.clear();
-      }
-
-    private:
-      std::string name_;
-      unc_keytype_ctrtype_t type_;
-      std::string version_;
-      bool audit_done_;      // true, if audit is completed.
-                             // available only in running
-      bool config_done_;     // available only in running
-      bool invalid_config_;  // Invalid config status after audit failure
-                             // available only in running
-      upll_keytype_datatype_t datatype_;
-        // if it is Running, Ctrlr is available in both candidate and running
+          UPLL_FUNC_TRACE;
+          type_ = ctrlr.type_;
+          invalid_config_ = ctrlr.invalid_config_;
+          audit_done_ = ctrlr.audit_done_;
+          config_done_ = ctrlr.config_done_;
+          datatype_ = datatype;
+        }
+    ~Ctrlr() {
+      UPLL_FUNC_TRACE;
+      name_.clear();
+      version_.clear();
+    }
+
+   private:
+    std::string name_;
+    unc_keytype_ctrtype_t type_;
+    std::string version_;
+    bool audit_done_;      // true, if audit is completed.
+    // available only in running
+    bool config_done_;     // available only in running
+    bool invalid_config_;  // Invalid config status after audit failure
+    // available only in running
+    upll_keytype_datatype_t datatype_;
+    // if it is Running, Ctrlr is available in both candidate and running
   };  // Class Ctrlr
 
   upll_rc_t Add(const Ctrlr &ctrlr, const upll_keytype_datatype_t datatype);
@@ -121,5 +121,5 @@ class CtrlrMgr {
 }  // namespace config_momgr
 }  // namespace upll
 }  // namespace unc
-                                                                       // NOLINT
+// NOLINT
 #endif  // UPLL_CTRLR_MGR_HH_
diff --git a/coordinator/modules/upll/dbconn_mgr.cc b/coordinator/modules/upll/dbconn_mgr.cc
new file mode 100644 (file)
index 0000000..b2921f9
--- /dev/null
@@ -0,0 +1,362 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/*
+ * config_mgr.cc - UPLL Config Manager
+ */
+
+#include <iostream>
+#include <sstream>
+#include "upll_util.hh"
+#include "dbconn_mgr.hh"
+
+namespace unc {
+namespace upll {
+namespace config_momgr {
+
+using unc::upll::dal::DalOdbcMgr;
+namespace uudal = unc::upll::dal;
+using namespace unc::upll::upll_util;
+
+// Error translation given below apply for Connect/Disconnect/Commit/Rollback
+// Operations only.
+upll_rc_t UpllDbConnMgr::ConvertDalResultCode(uudal::DalResultCode drc) {
+  switch (drc) {
+    case uudal::kDalRcSuccess:
+      return UPLL_RC_SUCCESS;
+    case uudal::kDalRcConnNotEstablished:
+    case uudal::kDalRcConnNotAvailable:
+    case uudal::kDalRcConnTimeOut:
+    case uudal::kDalRcQueryTimeOut:
+      return UPLL_RC_ERR_RESOURCE_DISCONNECTED;
+    case uudal::kDalRcTxnError:
+    case uudal::kDalRcAccessViolation:
+      return UPLL_RC_ERR_DB_ACCESS;
+    case uudal::kDalRcNotDisconnected:
+    case uudal::kDalRcInvalidConnHandle:
+    case uudal::kDalRcInvalidCursor:
+    case uudal::kDalRcDataError:
+    case uudal::kDalRcRecordAlreadyExists:
+    case uudal::kDalRcParentNotFound:
+    case uudal::kDalRcRecordNotFound:
+    case uudal::kDalRcRecordNoMore:
+    case uudal::kDalRcMemoryError:
+    case uudal::kDalRcInternalError:
+    case uudal::kDalRcGeneralError:
+      // default:
+      return UPLL_RC_ERR_GENERIC;
+  }
+  return UPLL_RC_ERR_GENERIC;
+}
+
+
+void UpllDbConnMgr::ConvertConnInfoToStr() const {
+#ifdef PFC_VERBOSE_DEBUG
+  std::stringstream ss;
+  ss << " Max No. Of Connections:" << max_ro_conns_
+      << " No. Of Connections In Use:" << active_ro_conns_cnt_
+      << " No. Of Free Connections:" << (max_ro_conns_ - active_ro_conns_cnt_);
+  UPLL_LOG_DEBUG("DbConn: %s", ss.str().c_str());
+#endif
+}
+
+upll_rc_t UpllDbConnMgr::DalOpen(DalOdbcMgr *dom, bool read_write_conn) {
+  UPLL_FUNC_TRACE;
+
+  uudal::DalResultCode drc;
+
+  uudal::DalConnType conn_type = ((read_write_conn) ? uudal::kDalConnReadWrite :
+                                  uudal::kDalConnReadOnly);
+  // Initialize
+  drc = dom->Init();
+  if (drc != uudal::kDalRcSuccess) {
+    if (read_write_conn) {
+      UPLL_LOG_FATAL("Failed to initialize DalOdbcMgr. Err=%d", drc);
+    } else {
+      UPLL_LOG_ERROR("Failed to initialize DalOdbcMgr. Err=%d", drc);
+    }
+    return ConvertDalResultCode(drc);
+  } else {
+    UPLL_LOG_TRACE("DalOdbcMgr init successful.");
+  }
+
+  // Connect to DB
+  drc = dom->ConnectToDb(conn_type);
+  if (drc != uudal::kDalRcSuccess) {
+    if (read_write_conn) {
+      UPLL_LOG_FATAL("Failed to connect to database. Err=%d", drc);
+    } else {
+      UPLL_LOG_ERROR("Failed to connect to database. Err=%d", drc);
+    }
+    return ConvertDalResultCode(drc);
+  } else {
+    UPLL_LOG_TRACE("Connected to database.");
+  }
+
+  return UPLL_RC_SUCCESS;
+}
+
+upll_rc_t UpllDbConnMgr::DalTxClose(DalOdbcMgr *dom, bool commit) {
+  UPLL_FUNC_TRACE;
+
+  uudal::DalResultCode drc;
+  upll_rc_t urc = UPLL_RC_SUCCESS;
+
+  // Commit or Rollback is required only for read-write connections
+  if ((dom->get_conn_type() == uudal::kDalConnReadWrite) && (commit)) {
+    // Commit the transaction
+    drc = dom->CommitTransaction();
+    if (drc != uudal::kDalRcSuccess) {
+      UPLL_LOG_ERROR("Failed to commit DB transaction. Err=%d", drc);
+      urc = ConvertDalResultCode(drc);
+    } else {
+      UPLL_LOG_TRACE("Committed the DB transaction.");
+      urc = UPLL_RC_SUCCESS;
+    }
+  } else {
+    // Rollback the transaction
+    drc = dom->RollbackTransaction();
+    if (drc != uudal::kDalRcSuccess) {
+      UPLL_LOG_ERROR("Failed to rollback DB transaction. Err=%d", drc);
+      urc = ConvertDalResultCode(drc);
+    } else {
+      UPLL_LOG_TRACE("Rolledback the DB transaction.");
+      urc = UPLL_RC_SUCCESS;
+    }
+  }
+
+  return urc;
+}
+
+// GetConfigRwConn() should be called only after InitializeDbConnections()
+// It cannot be called after TerminateAllDbConns()
+DalOdbcMgr *UpllDbConnMgr::GetConfigRwConn() {
+  config_rw_conn_->in_use_cnt++;
+  if (config_rw_conn_->in_use_cnt > 1) {
+    UPLL_LOG_TRACE("Config connection shared %d times",
+                   config_rw_conn_->in_use_cnt);
+  }
+  return &config_rw_conn_->dom;
+}
+
+// GetAlarmRwConn() should be called only after InitializeDbConnections()
+// It cannot be called after TerminateAllDbConns()
+DalOdbcMgr *UpllDbConnMgr::GetAlarmRwConn() {
+  alarm_rw_conn_->in_use_cnt++;
+  if (alarm_rw_conn_->in_use_cnt > 1) {
+    UPLL_LOG_TRACE("Alarm connection shared %d times",
+                   alarm_rw_conn_->in_use_cnt);
+  }
+  return &alarm_rw_conn_->dom;
+}
+
+void UpllDbConnMgr::ReleaseRwConn(DalOdbcMgr *dom) {
+  UPLL_FUNC_TRACE;
+  pfc::core::ScopedMutex lock(conn_mutex_);
+  DbConn *dbc = NULL;
+  if ((config_rw_conn_ != NULL) && (&config_rw_conn_->dom == dom)) {
+    dbc = config_rw_conn_;
+  } else if ((alarm_rw_conn_ != NULL) && (&alarm_rw_conn_->dom == dom)) {
+    dbc = alarm_rw_conn_;
+  }
+  if (dbc != NULL) {
+    if (dbc->in_use_cnt == 0) {  // Should not happen
+      UPLL_LOG_INFO("Error: RW connection is not acquired, but released");
+      ConvertConnInfoToStr();
+      return;
+    }
+    dbc->in_use_cnt--;
+    if ( dom->get_conn_state() == uudal::kDalDbDisconnected ) {
+      UPLL_LOG_FATAL("RW connection Failure.");
+    }
+  } else {
+    for (std::list<DbConn*>::iterator iter = stale_rw_conn_pool_.begin();
+         iter != stale_rw_conn_pool_.end(); iter++) {
+      dbc = *iter;
+      if (dom == &dbc->dom) {
+        if (dbc->in_use_cnt == 0) {  // Should not happen
+          UPLL_LOG_INFO("Error: RW connection is not acquired, but released");
+          return;
+        }
+        if ( dom->get_conn_state() == uudal::kDalDbDisconnected ) {
+          UPLL_LOG_FATAL("Stale RW connection Failure.");
+        }
+        dbc->in_use_cnt--;
+        if (dbc->in_use_cnt == 0) {
+          TerminateDbConn(dbc);
+          delete dbc;
+          stale_rw_conn_pool_.erase(iter);
+        }
+        ConvertConnInfoToStr();
+        return;
+      }
+    }
+    UPLL_LOG_INFO("RW connection not found");
+  }
+  ConvertConnInfoToStr();
+}
+
+upll_rc_t UpllDbConnMgr::InitializeDbConnections() {
+  UPLL_FUNC_TRACE;
+  pfc::core::ScopedMutex lock(conn_mutex_);
+  upll_rc_t urc = UPLL_RC_SUCCESS;
+
+  config_rw_conn_ = new DbConn;
+  if (UPLL_RC_SUCCESS != (urc = DalOpen(&config_rw_conn_->dom, true))) {
+    // return urc;  // Other dom object needs to be created.
+  }
+  alarm_rw_conn_ = new DbConn;
+  if (UPLL_RC_SUCCESS != (urc = DalOpen(&alarm_rw_conn_->dom, true))) {
+    return urc;
+  }
+  ConvertConnInfoToStr();
+  return urc;
+}
+
+upll_rc_t UpllDbConnMgr::TerminateDbConn(DbConn *dbc) {
+  UPLL_FUNC_TRACE
+      if (dbc->in_use_cnt > 0) {
+        dbc->close_on_finish = true;
+        UPLL_LOG_DEBUG("Connection is in use (%d), setting close_on_finish",
+                       dbc->in_use_cnt);
+      } else {
+        uudal::DalResultCode drc = dbc->dom.DisconnectFromDb();
+        if (drc != uudal::kDalRcSuccess) {
+          UPLL_LOG_ERROR("Failed to disconnect from database. Err=%d", drc);
+          return UPLL_RC_ERR_GENERIC;
+        }
+      }
+  return UPLL_RC_SUCCESS;
+}
+
+upll_rc_t UpllDbConnMgr::TerminateAllDbConns() {
+  UPLL_FUNC_TRACE;
+  UPLL_LOG_DEBUG("All DB connections are being closed");
+  pfc::core::ScopedMutex lock(conn_mutex_);
+  upll_rc_t urc = UPLL_RC_SUCCESS;
+  if ( config_rw_conn_!= NULL ) {
+    TerminateDbConn(config_rw_conn_);
+    if (config_rw_conn_->close_on_finish) {
+      UPLL_LOG_DEBUG("config_rw_conn_ is in use, putting on the stale list");
+      stale_rw_conn_pool_.push_back(config_rw_conn_);
+    } else {
+      delete config_rw_conn_;
+    }
+    config_rw_conn_ = NULL;
+  }
+  if ( alarm_rw_conn_!= NULL ) {
+    TerminateDbConn(alarm_rw_conn_);
+    if (alarm_rw_conn_->close_on_finish) {
+      UPLL_LOG_DEBUG("alarm_rw_conn_ is in use, putting on the stale list");
+      stale_rw_conn_pool_.push_back(alarm_rw_conn_);
+    } else {
+      delete alarm_rw_conn_;
+    }
+    alarm_rw_conn_ = NULL;
+  }
+
+  TerminateAllRoConns_NoLock();
+  ConvertConnInfoToStr();
+  return urc;
+}
+
+upll_rc_t UpllDbConnMgr::TerminateAllRoConns_NoLock() {
+  UPLL_FUNC_TRACE;
+  UPLL_LOG_DEBUG("All DB RO connections are being closed");
+  std::list<DbConn*>::iterator iter = ro_conn_pool_.begin();
+  while (iter != ro_conn_pool_.end()) {
+    TerminateDbConn(*iter);
+    if ((*iter)->close_on_finish == true) {
+      iter++;
+    } else {
+      std::list<DbConn*>::iterator tmp_iter = iter;
+      iter++;
+      DbConn *dbc = *tmp_iter;
+      delete dbc;
+      ro_conn_pool_.erase(tmp_iter);
+      active_ro_conns_cnt_--;
+      ro_conn_sem_.post();
+    }
+  }
+  ConvertConnInfoToStr();
+  return UPLL_RC_SUCCESS;
+}
+
+upll_rc_t UpllDbConnMgr::AcquireRoConn(DalOdbcMgr **dom) {
+  UPLL_FUNC_TRACE;
+  UPLL_LOG_DEBUG("Acquiring RO Connection");
+  ro_conn_sem_.wait();
+  pfc::core::ScopedMutex lock(conn_mutex_);
+
+  // First check if there is a not-in-use connection available
+  for (std::list<DbConn*>::iterator iter = ro_conn_pool_.begin();
+       iter != ro_conn_pool_.end(); iter++) {
+    if ((*iter)->in_use_cnt == 0) {
+      (*iter)->in_use_cnt = 1;
+      *dom = &(*iter)->dom;
+      return UPLL_RC_SUCCESS;
+    }
+  }
+  if (active_ro_conns_cnt_ >= max_ro_conns_) {
+    UPLL_LOG_INFO("Error: Could not find a not-in-use connection");
+    return UPLL_RC_ERR_GENERIC;
+  }
+
+  // Create a new connection
+  upll_rc_t urc = UPLL_RC_SUCCESS;
+  DbConn *ro_conn = new DbConn;
+  if (UPLL_RC_SUCCESS != (urc = DalOpen(&ro_conn->dom, false))) {
+    delete ro_conn;
+    TerminateAllRoConns_NoLock();
+    return urc;
+  }
+
+  ro_conn_pool_.push_back(ro_conn);
+  active_ro_conns_cnt_++;
+
+  ro_conn->in_use_cnt = 1;
+  *dom = &ro_conn->dom;
+  return UPLL_RC_SUCCESS;
+}
+
+upll_rc_t UpllDbConnMgr::ReleaseRoConn(DalOdbcMgr *dom) {
+  UPLL_FUNC_TRACE;
+  UPLL_LOG_DEBUG("Releasing RO Connection");
+  pfc::core::ScopedMutex lock(conn_mutex_);
+  ConvertConnInfoToStr();
+  for (std::list<DbConn*>::iterator iter = ro_conn_pool_.begin();
+       iter != ro_conn_pool_.end(); iter++) {
+    if (&(*iter)->dom == dom) {
+      (*iter)->in_use_cnt = 0;
+      if ((*iter)->close_on_finish == true) {
+        TerminateDbConn(*iter);
+        DbConn *dbc = *iter;
+        delete dbc;
+        ro_conn_pool_.erase(iter);
+      } else {
+        // If dom had encountered connection error, close all RO connections
+        if (dom->get_conn_state() == uudal::kDalDbDisconnected) {
+          UPLL_LOG_TRACE("DB RO connection error, closing all RO connections");
+          TerminateAllRoConns_NoLock();
+        } else {
+          ro_conn_sem_.post();
+        }
+      }
+      ConvertConnInfoToStr();
+      return UPLL_RC_SUCCESS;
+    }
+  }
+  ConvertConnInfoToStr();
+  UPLL_LOG_INFO("Error: connection not found");
+  return UPLL_RC_ERR_GENERIC;
+}
+// NOLINT
+}  // namespace config_momgr
+}  // namespace upll
+}  // namespace unc
diff --git a/coordinator/modules/upll/dbconn_mgr.hh b/coordinator/modules/upll/dbconn_mgr.hh
new file mode 100644 (file)
index 0000000..a0bdb40
--- /dev/null
@@ -0,0 +1,85 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+#ifndef UPLL_DBCONN_MGR_HH_
+#define UPLL_DBCONN_MGR_HH_
+
+#include <list>
+
+#include "cxx/pfcxx/synch.hh"
+
+#include "unc/upll_errno.h"
+#include "uncxx/upll_log.hh"
+
+#include "dal/dal_odbc_mgr.hh"
+
+namespace unc {
+namespace upll {
+namespace config_momgr {
+
+using unc::upll::dal::DalOdbcMgr;
+namespace uudal = unc::upll::dal;
+
+class UpllDbConnMgr {
+ public:
+  explicit UpllDbConnMgr(size_t max_ro_conns) : ro_conn_sem_(max_ro_conns) {
+    config_rw_conn_ = alarm_rw_conn_ = NULL;
+    max_ro_conns_ = max_ro_conns;
+    active_ro_conns_cnt_= 0;
+  }
+  upll_rc_t InitializeDbConnections();
+  upll_rc_t TerminateAllDbConns();
+  // GetConfigRwConn() should be called after InitializeDbConnections()
+  // It cannot be called after TerminateAllDbConns()
+  DalOdbcMgr *GetConfigRwConn();
+  // GetAlarmRwConn() should be called after InitializeDbConnections()
+  // It cannot be called after TerminateAllDbConns()
+  DalOdbcMgr *GetAlarmRwConn();
+  void ReleaseRwConn(DalOdbcMgr *dom);
+
+  inline size_t get_ro_conn_limit() const { return max_ro_conns_; }
+  upll_rc_t AcquireRoConn(DalOdbcMgr **);
+  upll_rc_t ReleaseRoConn(DalOdbcMgr *);
+  // void DestroyRoConns();
+  upll_rc_t DalOpen(DalOdbcMgr *dom, bool read_write_conn);
+  upll_rc_t DalTxClose(DalOdbcMgr *dom, bool commit);
+
+  static upll_rc_t ConvertDalResultCode(uudal::DalResultCode drc);
+  void ConvertConnInfoToStr() const;
+
+ private:
+  class DbConn {
+   public:
+    DbConn() { in_use_cnt = 0; close_on_finish = false; }
+    DalOdbcMgr dom;    // DAL object instance which manages the ODBC connection
+    uint32_t in_use_cnt;               // If >0, connection is allocated
+    bool close_on_finish;      // If true, the connection is closed after
+    // the connection is returned.
+  };
+  DbConn* config_rw_conn_;  // shared connection
+  DbConn* alarm_rw_conn_;   // shared connection
+  size_t max_ro_conns_;
+  size_t active_ro_conns_cnt_;
+  std::list<DbConn*> ro_conn_pool_;  // not shared connection
+  // stale_rw_conn_pool_: rw connections that need to be closed and destroyed
+  std::list<DbConn*> stale_rw_conn_pool_;
+  pfc::core::Mutex conn_mutex_;
+  pfc::core::Semaphore ro_conn_sem_;
+
+  upll_rc_t TerminateDbConn(DbConn *);
+  upll_rc_t TerminateAllRoConns_NoLock();
+};
+
+}  // namespace config_momgr
+}  // namespace upll
+}  // namespace unc
+
+
+#endif  // UPLL_DBCONN_MGR_HH_
+
index 5d3fc71593d136662c4337feb44c857dd2049ed2..258eb5c472f57f4a93b31de3c600a4ca005b74bd 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -18,56 +18,57 @@ namespace upll {
 namespace kt_momgr {
 
 BindInfo DhcpRelayIfMoMgr::dhcprelay_if_bind_info[] = {
-    { uudst::dhcprelay_interface::kDbiVtnName, CFG_KEY, offsetof(
-        key_dhcp_relay_if, vrt_key.vtn_key.vtn_name),
-      uud::kDalChar, 32 },
-    { uudst::dhcprelay_interface::kDbiVrtName, CFG_KEY, offsetof(
-        key_dhcp_relay_if, vrt_key.vrouter_name),
-      uud::kDalChar, 32 },
-    { uudst::dhcprelay_interface::kDbiIfName, CFG_KEY, offsetof(
-        key_dhcp_relay_if, if_name),
-      uud::kDalChar, 32 },
-    { uudst::dhcprelay_interface::kDbiCtrlrName, CK_VAL, offsetof(key_user_data,
-                                                                  ctrlr_id),
-      uud::kDalChar, 32 },
-    { uudst::dhcprelay_interface::kDbiDomainId, CK_VAL, offsetof(key_user_data,
-                                                                 domain_id),
-      uud::kDalChar, 32 },
-    { uudst::dhcprelay_interface::kDbiCsRowstatus, CS_VAL, offsetof(
-        val_dhcp_relay_if, cs_row_status),
-      uud::kDalUint8, 1 },
-    { uudst::dhcprelay_interface::kDbiFlags, CK_VAL, offsetof(key_user_data,
-                                                              flags),
-      uud::kDalUint8, 1 }, };
+  { uudst::dhcprelay_interface::kDbiVtnName, CFG_KEY, offsetof(
+          key_dhcp_relay_if, vrt_key.vtn_key.vtn_name),
+  uud::kDalChar, 32 },
+  { uudst::dhcprelay_interface::kDbiVrtName, CFG_KEY, offsetof(
+          key_dhcp_relay_if, vrt_key.vrouter_name),
+  uud::kDalChar, 32 },
+  { uudst::dhcprelay_interface::kDbiIfName, CFG_KEY, offsetof(
+          key_dhcp_relay_if, if_name),
+  uud::kDalChar, 32 },
+  { uudst::dhcprelay_interface::kDbiCtrlrName, CK_VAL, offsetof(key_user_data,
+                                                                ctrlr_id),
+  uud::kDalChar, 32 },
+  { uudst::dhcprelay_interface::kDbiDomainId, CK_VAL, offsetof(key_user_data,
+                                                               domain_id),
+  uud::kDalChar, 32 },
+  { uudst::dhcprelay_interface::kDbiCsRowstatus, CS_VAL, offsetof(
+          val_dhcp_relay_if, cs_row_status),
+  uud::kDalUint8, 1 },
+  { uudst::dhcprelay_interface::kDbiFlags, CK_VAL, offsetof(key_user_data,
+                                                            flags),
+  uud::kDalUint8, 1 }, };
 
 BindInfo DhcpRelayIfMoMgr::dhcprealy_if_maintbl_key_update_bind_info[] = {
-    { uudst::dhcprelay_interface::kDbiVtnName, CFG_MATCH_KEY, offsetof(
-        key_dhcp_relay_if, vrt_key.vtn_key.vtn_name),
-      uud::kDalChar, kMaxLenVtnName + 1 },
-    { uudst::dhcprelay_interface::kDbiVrtName, CFG_MATCH_KEY, offsetof(
-        key_dhcp_relay_if, vrt_key.vrouter_name),
-      uud::kDalChar, kMaxLenVnodeName + 1 },
-    { uudst::dhcprelay_interface::kDbiIfName, CFG_MATCH_KEY, offsetof(
-        key_dhcp_relay_if, if_name),
-      uud::kDalChar, kMaxLenVnodeName + 1 },
-    { uudst::dhcprelay_interface::kDbiVtnName, CFG_INPUT_KEY, offsetof(
-        key_rename_vnode_info_t, new_unc_vtn_name),
-      uud::kDalChar, kMaxLenVtnName + 1 },
-    { uudst::dhcprelay_interface::kDbiVrtName, CFG_INPUT_KEY, offsetof(
-        key_rename_vnode_info_t, new_unc_vnode_name),
-      uud::kDalChar, kMaxLenVnodeName + 1 },
-    { uudst::dhcprelay_interface::kDbiFlags, CK_VAL, offsetof(
-        key_user_data_t, flags),
-      uud::kDalUint8, 1 } };
+  { uudst::dhcprelay_interface::kDbiVtnName, CFG_MATCH_KEY, offsetof(
+          key_dhcp_relay_if, vrt_key.vtn_key.vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1 },
+  { uudst::dhcprelay_interface::kDbiVrtName, CFG_MATCH_KEY, offsetof(
+          key_dhcp_relay_if, vrt_key.vrouter_name),
+  uud::kDalChar, kMaxLenVnodeName + 1 },
+  { uudst::dhcprelay_interface::kDbiIfName, CFG_MATCH_KEY, offsetof(
+          key_dhcp_relay_if, if_name),
+  uud::kDalChar, kMaxLenVnodeName + 1 },
+  { uudst::dhcprelay_interface::kDbiVtnName, CFG_INPUT_KEY, offsetof(
+          key_rename_vnode_info_t, new_unc_vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1 },
+  { uudst::dhcprelay_interface::kDbiVrtName, CFG_INPUT_KEY, offsetof(
+          key_rename_vnode_info_t, new_unc_vnode_name),
+  uud::kDalChar, kMaxLenVnodeName + 1 },
+  { uudst::dhcprelay_interface::kDbiFlags, CK_VAL, offsetof(
+          key_user_data_t, flags),
+  uud::kDalUint8, 1 } };
 
 DhcpRelayIfMoMgr::DhcpRelayIfMoMgr() {
   UPLL_FUNC_TRACE
-  ntable = MAX_MOMGR_TBLS;
+      ntable = MAX_MOMGR_TBLS;
   table = new Table *[ntable];
   table[MAINTBL]= new Table(uudst::kDbiDhcpRelayIfTbl, UNC_KT_DHCPRELAY_IF,
-                   dhcprelay_if_bind_info, IpctSt::kIpcStKeyDhcpRelayIf,
-                   IpctSt::kIpcStValDhcpRelayIf,
-                   uudst::dhcprelay_interface::kDbiDhcpRelayIfNumCols);
+                            dhcprelay_if_bind_info,
+                            IpctSt::kIpcStKeyDhcpRelayIf,
+                            IpctSt::kIpcStValDhcpRelayIf,
+                            uudst::dhcprelay_interface::kDbiDhcpRelayIfNumCols);
   table[RENAMETBL] = NULL;
   table[CTRLRTBL] = NULL;
   nchild = 0;
@@ -92,47 +93,48 @@ bool DhcpRelayIfMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type,
   return PFC_TRUE;
 }
 
-upll_rc_t DhcpRelayIfMoMgr::ValidateAttribute(ConfigKeyVal *ikey, 
+upll_rc_t DhcpRelayIfMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
                                               DalDmlIntf *dmi,
                                               IpcReqRespHeader *req) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
-  if (ikey->get_key_type() != UNC_KT_DHCPRELAY_IF) 
+  if (ikey->get_key_type() != UNC_KT_DHCPRELAY_IF)
     result_code = UPLL_RC_ERR_CFG_SYNTAX;
 
-  #if 0
+#if 0
   /* Check if vrouter admin status is disabled */
   result_code = IsAdminStatusEnable(ikey, dmi);
   if (result_code != UPLL_RC_SUCCESS) {
     return UPLL_RC_ERR_CFG_SEMANTIC;
   }
-  #endif
+#endif
 
-    /* Check if vrt interface exists */
+  /* Check if vrt interface exists */
   MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
-                                            (GetMoManager(UNC_KT_VRT_IF)));
+                                                 (GetMoManager(UNC_KT_VRT_IF)));
   if (!mgr) {
-   UPLL_LOG_DEBUG("Invalid param");
-   return UPLL_RC_ERR_GENERIC;
+    UPLL_LOG_DEBUG("Invalid param");
+    return UPLL_RC_ERR_GENERIC;
   }
   ConfigKeyVal *ckv_vrtif = NULL;
   result_code = mgr->GetChildConfigKey(ckv_vrtif, ikey);
   if (!ckv_vrtif || result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Returing error %d",result_code);
+    UPLL_LOG_DEBUG("Returing error %d", result_code);
     return UPLL_RC_ERR_GENERIC;
   }
   DbSubOp dbop = {kOpReadExist, kOpMatchNone, kOpInOutNone};
   result_code = mgr->UpdateConfigDB(ckv_vrtif, req->datatype,
-                         UNC_OP_READ, dmi, &dbop, MAINTBL);
+                                    UNC_OP_READ, dmi, &dbop, MAINTBL);
   if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-    UPLL_LOG_DEBUG("Vrt interface does not exist %s",(ckv_vrtif->ToStr()).c_str());
+    UPLL_LOG_DEBUG("Vrt interface does not exist %s",
+                   (ckv_vrtif->ToStr()).c_str());
     delete ckv_vrtif;
     return UPLL_RC_ERR_CFG_SEMANTIC;
   } else if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
     delete ckv_vrtif;
     return UPLL_RC_SUCCESS;
   } else  {
-    UPLL_LOG_DEBUG(" Returning error %d",result_code);
+    UPLL_LOG_DEBUG(" Returning error %d", result_code);
   }
   delete ckv_vrtif;
   return result_code;
@@ -151,7 +153,7 @@ upll_rc_t DhcpRelayIfMoMgr::ValidateCapability(IpcReqRespHeader *req,
 
   if (!ctrlr_name) {
     ctrlr_name = reinterpret_cast<char*>((reinterpret_cast<key_user_data_t *>
-                  (ikey->get_user_data()))->ctrlr_id);
+                                          (ikey->get_user_data()))->ctrlr_id);
     if (!ctrlr_name || !strlen(ctrlr_name)) {
       UPLL_LOG_DEBUG("Controller Name is NULL");
       return UPLL_RC_ERR_GENERIC;
@@ -181,13 +183,6 @@ upll_rc_t DhcpRelayIfMoMgr::ValidateCapability(IpcReqRespHeader *req,
                                      &max_instance_count,
                                      &max_attrs,
                                      &attrs);
-      if (ret_code && (max_instance_count != 0) &&
-          (cur_instance_count >= max_instance_count)) {
-        UPLL_LOG_DEBUG("[%s:%d:%s Instance count %d exceeds %d", __FILE__,
-                      __LINE__, __FUNCTION__, cur_instance_count,
-                      max_instance_count);
-        return UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
-      }
       break;
     }
     case UNC_OP_UPDATE: {
@@ -267,7 +262,7 @@ upll_rc_t DhcpRelayIfMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
   void *pkey;
   if (parent_key == NULL) {
     dhcp_key = reinterpret_cast<key_dhcp_relay_if *>
-       (ConfigKeyVal::Malloc(sizeof(key_dhcp_relay_if)));
+        (ConfigKeyVal::Malloc(sizeof(key_dhcp_relay_if)));
     if (okey) delete okey;
     okey = new ConfigKeyVal(UNC_KT_DHCPRELAY_IF, IpctSt::kIpcStKeyDhcpRelayIf,
                             dhcp_key, NULL);
@@ -281,35 +276,37 @@ upll_rc_t DhcpRelayIfMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
     dhcp_key = reinterpret_cast<key_dhcp_relay_if *>(okey->get_key());
   } else {
     dhcp_key = reinterpret_cast<key_dhcp_relay_if *>
-       (ConfigKeyVal::Malloc(sizeof(key_dhcp_relay_if)));
+        (ConfigKeyVal::Malloc(sizeof(key_dhcp_relay_if)));
   }
   unc_key_type_t keytype = parent_key->get_key_type();
   switch (keytype) {
     case UNC_KT_VTN:
       uuu::upll_strncpy(dhcp_key->vrt_key.vtn_key.vtn_name,
-                   reinterpret_cast<key_vtn *>(pkey)->vtn_name,
-                   (kMaxLenVtnName + 1));
+                        reinterpret_cast<key_vtn *>(pkey)->vtn_name,
+                        (kMaxLenVtnName + 1));
       *(dhcp_key->vrt_key.vrouter_name) = *"";
       break;
     case UNC_KT_VROUTER:
       uuu::upll_strncpy(dhcp_key->vrt_key.vtn_key.vtn_name,
-             reinterpret_cast<key_vrt *>(pkey)->vtn_key.vtn_name,
-             (kMaxLenVtnName + 1));
+                        reinterpret_cast<key_vrt *>(pkey)->vtn_key.vtn_name,
+                        (kMaxLenVtnName + 1));
       uuu::upll_strncpy(dhcp_key->vrt_key.vrouter_name,
-             reinterpret_cast<key_vrt *>(pkey)->vrouter_name,
-             (kMaxLenVnodeName + 1));
+                        reinterpret_cast<key_vrt *>(pkey)->vrouter_name,
+                        (kMaxLenVnodeName + 1));
       break;
     case UNC_KT_VRT_IF:
     case UNC_KT_DHCPRELAY_IF:
       uuu::upll_strncpy(dhcp_key->vrt_key.vtn_key.vtn_name,
-          reinterpret_cast<key_dhcp_relay_if *>(pkey)->vrt_key.vtn_key.vtn_name,
-          (kMaxLenVtnName + 1));
+                        reinterpret_cast<key_dhcp_relay_if *>
+                        (pkey)->vrt_key.vtn_key.vtn_name,
+                        (kMaxLenVtnName + 1));
       uuu::upll_strncpy(dhcp_key->vrt_key.vrouter_name,
-             reinterpret_cast<key_dhcp_relay_if *>(pkey)->vrt_key.vrouter_name,
-             (kMaxLenVnodeName + 1));
+                        reinterpret_cast<key_dhcp_relay_if *>
+                        (pkey)->vrt_key.vrouter_name,
+                        (kMaxLenVnodeName + 1));
       uuu::upll_strncpy(dhcp_key->if_name,
-             reinterpret_cast<key_dhcp_relay_if *>(pkey)->if_name,
-             (kMaxLenInterfaceName + 1));
+                        reinterpret_cast<key_dhcp_relay_if *>(pkey)->if_name,
+                        (kMaxLenInterfaceName + 1));
     default:
       break;
   }
@@ -340,13 +337,15 @@ upll_rc_t DhcpRelayIfMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
       (ikey->get_key());
   if (!pkey) return UPLL_RC_ERR_GENERIC;
   key_vrt *vrt_key = reinterpret_cast<key_vrt *>
-    (ConfigKeyVal::Malloc(sizeof(key_vrt)));
+      (ConfigKeyVal::Malloc(sizeof(key_vrt)));
   uuu::upll_strncpy(vrt_key->vtn_key.vtn_name,
-    reinterpret_cast<key_dhcp_relay_if*>(pkey)->vrt_key.vtn_key.vtn_name,
-        (kMaxLenVtnName + 1));
-      uuu::upll_strncpy(vrt_key->vrouter_name,
-        reinterpret_cast<key_dhcp_relay_if*>(pkey)->vrt_key.vrouter_name,
-             (kMaxLenVnodeName + 1));
+                    reinterpret_cast<key_dhcp_relay_if*>
+                    (pkey)->vrt_key.vtn_key.vtn_name,
+                    (kMaxLenVtnName + 1));
+  uuu::upll_strncpy(vrt_key->vrouter_name,
+                    reinterpret_cast<key_dhcp_relay_if*>
+                    (pkey)->vrt_key.vrouter_name,
+                    (kMaxLenVnodeName + 1));
   if (okey) delete okey;
   okey = new ConfigKeyVal(UNC_KT_VROUTER, IpctSt::kIpcStKeyVrt, vrt_key, NULL);
   if (okey == NULL) {
@@ -392,7 +391,7 @@ upll_rc_t DhcpRelayIfMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
           reinterpret_cast<val_dhcp_relay_if *>(GetVal(req));
       val_dhcp_relay_if *dhcp_val =
           reinterpret_cast<val_dhcp_relay_if *>(ConfigKeyVal::Malloc(
-          sizeof(val_dhcp_relay_if)));
+                  sizeof(val_dhcp_relay_if)));
       memcpy(dhcp_val, ival, sizeof(val_dhcp_relay_if));
       tmp1 = new ConfigVal(IpctSt::kIpcStValDhcpRelayIf, dhcp_val);
     }
@@ -400,7 +399,7 @@ upll_rc_t DhcpRelayIfMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
   void *tkey = (req)->get_key();
   key_dhcp_relay_if *ikey = reinterpret_cast<key_dhcp_relay_if *>(tkey);
   key_dhcp_relay_if *dhcp_key = reinterpret_cast<key_dhcp_relay_if *>(
-    ConfigKeyVal::Malloc(sizeof(key_dhcp_relay_if)));
+      ConfigKeyVal::Malloc(sizeof(key_dhcp_relay_if)));
   memcpy(dhcp_key, ikey, sizeof(key_dhcp_relay_if));
   okey = new ConfigKeyVal(UNC_KT_DHCPRELAY_IF, IpctSt::kIpcStKeyDhcpRelayIf,
                           dhcp_key, tmp1);
@@ -417,7 +416,7 @@ upll_rc_t DhcpRelayIfMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
 upll_rc_t DhcpRelayIfMoMgr::UpdateConfigStatus(ConfigKeyVal *ikey,
                                                unc_keytype_operation_t op,
                                                uint32_t driver_result,
-                                               ConfigKeyVal *upd_key, 
+                                               ConfigKeyVal *upd_key,
                                                DalDmlIntf *dmi,
                                                ConfigKeyVal *ctrlr_key) {
   UPLL_FUNC_TRACE;
@@ -426,25 +425,28 @@ upll_rc_t DhcpRelayIfMoMgr::UpdateConfigStatus(ConfigKeyVal *ikey,
 
   unc_keytype_configstatus_t cs_status =
       (driver_result == UPLL_RC_SUCCESS) ? UNC_CS_APPLIED
-                                         : UNC_CS_NOT_APPLIED;
+      : UNC_CS_NOT_APPLIED;
   if (dhcp_val == NULL) return UPLL_RC_ERR_GENERIC;
   if (op == UNC_OP_CREATE) {
     dhcp_val->cs_row_status = cs_status;
   }
-  UPLL_LOG_TRACE("%s",(ikey->ToStrAll()).c_str());
-  val_dhcp_relay_if *dhcp_val2 = 
-          reinterpret_cast<val_dhcp_relay_if *>(GetVal(upd_key));
+  UPLL_LOG_TRACE("%s", (ikey->ToStrAll()).c_str());
+  val_dhcp_relay_if *dhcp_val2 =
+      reinterpret_cast<val_dhcp_relay_if *>(GetVal(upd_key));
   if (dhcp_val2 == NULL) return UPLL_RC_ERR_GENERIC;
   if (UNC_OP_UPDATE == op) {
-    UPLL_LOG_TRACE("%s",(upd_key->ToStrAll()).c_str());
+    UPLL_LOG_TRACE("%s", (upd_key->ToStrAll()).c_str());
     dhcp_val->cs_row_status = dhcp_val2->cs_row_status;
   }
   return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t DhcpRelayIfMoMgr::UpdateAuditConfigStatus(
-    unc_keytype_configstatus_t cs_status, uuc::UpdateCtrlrPhase phase,
-    ConfigKeyVal *&ckv_running) {
+    unc_keytype_configstatus_t cs_status,
+    uuc::UpdateCtrlrPhase phase,
+    ConfigKeyVal *&ckv_running,
+    DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_dhcp_relay_if_t *val;
   val = (ckv_running != NULL) ?
@@ -452,8 +454,8 @@ upll_rc_t DhcpRelayIfMoMgr::UpdateAuditConfigStatus(
   if (NULL == val) return UPLL_RC_ERR_GENERIC;
   if (uuc::kUpllUcpCreate == phase) val->cs_row_status = cs_status;
   if ((uuc::kUpllUcpUpdate == phase) &&
-           (val->cs_row_status == UNC_CS_INVALID ||
-            val->cs_row_status == UNC_CS_NOT_APPLIED))
+      (val->cs_row_status == UNC_CS_INVALID ||
+       val->cs_row_status == UNC_CS_NOT_APPLIED))
     val->cs_row_status = cs_status;
   return result_code;
 }
@@ -471,21 +473,21 @@ upll_rc_t DhcpRelayIfMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
   key_dhcp_relay_if_t * key_dhcp = reinterpret_cast<key_dhcp_relay_if_t *>
       (ConfigKeyVal::Malloc(sizeof(key_dhcp_relay_if_t)));
   uuu::upll_strncpy(key_dhcp->vrt_key.vtn_key.vtn_name,
-         key_rename->old_unc_vtn_name, (kMaxLenVtnName + 1));
+                    key_rename->old_unc_vtn_name, (kMaxLenVtnName + 1));
   if (ikey->get_key_type() == UNC_KT_VROUTER) {
     if (!strlen(reinterpret_cast<char *>(key_rename->old_unc_vnode_name))) {
       free(key_dhcp);
       return UPLL_RC_ERR_GENERIC;
     }
     uuu::upll_strncpy(key_dhcp->vrt_key.vrouter_name,
-           key_rename->old_unc_vnode_name, (kMaxLenVnodeName + 1));
+                      key_rename->old_unc_vnode_name, (kMaxLenVnodeName + 1));
   } else {
     if (!strlen(reinterpret_cast<char *>(key_rename->new_unc_vnode_name))) {
       FREE_IF_NOT_NULL(key_dhcp);
       return UPLL_RC_ERR_GENERIC;
     }
     uuu::upll_strncpy(key_dhcp->vrt_key.vrouter_name,
-       key_rename->new_unc_vnode_name, (kMaxLenVnodeName+1));
+                      key_rename->new_unc_vnode_name, (kMaxLenVnodeName+1));
   }
 
   okey = new ConfigKeyVal(UNC_KT_DHCPRELAY_IF, IpctSt::kIpcStKeyDhcpRelayIf,
@@ -511,8 +513,8 @@ upll_rc_t DhcpRelayIfMoMgr::ValidateMessage(IpcReqRespHeader *req,
 
   upll_rc_t ret_val;
   if (ikey->get_st_num() != IpctSt::kIpcStKeyDhcpRelayIf) {
-     UPLL_LOG_DEBUG("Invalid key structure received. received struct num - %d",
-                  ikey->get_st_num());
+    UPLL_LOG_DEBUG("Invalid key structure received. received struct num - %d",
+                   ikey->get_st_num());
     return UPLL_RC_ERR_BAD_REQUEST;
   }
   key_dhcp_relay_if *dhcprelayif_key =
@@ -535,10 +537,10 @@ upll_rc_t DhcpRelayIfMoMgr::ValidateMessage(IpcReqRespHeader *req,
     if (dt_type == UPLL_DT_CANDIDATE || dt_type == UPLL_DT_RUNNING
         || dt_type == UPLL_DT_STARTUP || dt_type == UPLL_DT_STATE
         || UPLL_DT_IMPORT == dt_type) {
-      if (option1 != UNC_OPT1_NORMAL) 
+      if (option1 != UNC_OPT1_NORMAL)
         return UPLL_RC_ERR_INVALID_OPTION1;
       if (option2 != UNC_OPT2_NONE)
-        return UPLL_RC_ERR_INVALID_OPTION2; 
+        return UPLL_RC_ERR_INVALID_OPTION2;
       UPLL_LOG_DEBUG("Value structure is none for operation type:%d", op);
       return UPLL_RC_SUCCESS;
     } else {
@@ -551,18 +553,18 @@ upll_rc_t DhcpRelayIfMoMgr::ValidateMessage(IpcReqRespHeader *req,
 }
 
 upll_rc_t DhcpRelayIfMoMgr::ValidateDhcpRelayIfKey(
-    key_dhcp_relay_if *dhcprelayif_key, 
+    key_dhcp_relay_if *dhcprelayif_key,
     unc_keytype_operation_t operation) {
 
   UPLL_FUNC_TRACE;
   upll_rc_t ret_val;
 
   ret_val = ValidateKey(reinterpret_cast<char *>
-          (dhcprelayif_key->vrt_key.vtn_key.vtn_name),
-          kMinLenVtnName, kMaxLenVtnName);
+                        (dhcprelayif_key->vrt_key.vtn_key.vtn_name),
+                        kMinLenVtnName, kMaxLenVtnName);
   if (ret_val != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("syntax check failed. VTN Name - %s",
-                  dhcprelayif_key->vrt_key.vtn_key.vtn_name);
+                   dhcprelayif_key->vrt_key.vtn_key.vtn_name);
     return UPLL_RC_ERR_CFG_SYNTAX;
   }
   ret_val = ValidateKey(reinterpret_cast<char *>
@@ -570,17 +572,17 @@ upll_rc_t DhcpRelayIfMoMgr::ValidateDhcpRelayIfKey(
                         kMinLenVnodeName, kMaxLenVnodeName);
   if (ret_val != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("syntax check failed. VROUTER Name - %s",
-                  dhcprelayif_key->vrt_key.vrouter_name);
+                   dhcprelayif_key->vrt_key.vrouter_name);
     return UPLL_RC_ERR_CFG_SYNTAX;
   }
   if (operation != UNC_OP_READ_SIBLING_COUNT &&
       operation != UNC_OP_READ_SIBLING_BEGIN) {
     ret_val = ValidateKey(reinterpret_cast<char *>
-                        (dhcprelayif_key->if_name), kMinLenInterfaceName,
-                        kMaxLenInterfaceName);
+                          (dhcprelayif_key->if_name), kMinLenInterfaceName,
+                          kMaxLenInterfaceName);
     if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("syntax check failed. If name - %s",
-                  dhcprelayif_key->if_name);
+                     dhcprelayif_key->if_name);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else {
@@ -596,25 +598,26 @@ upll_rc_t DhcpRelayIfMoMgr::IsReferenced(ConfigKeyVal *ikey,
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t DhcpRelayIfMoMgr::IsAdminStatusEnable(ConfigKeyVal *ikey, 
+upll_rc_t DhcpRelayIfMoMgr::IsAdminStatusEnable(ConfigKeyVal *ikey,
                                                 DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
-  MoMgrImpl *vrt_mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
-                                            (GetMoManager(UNC_KT_VROUTER)));
+  MoMgrImpl *vrt_mgr = reinterpret_cast<MoMgrImpl *>(
+      const_cast<MoManager *>
+      (GetMoManager(UNC_KT_VROUTER)));
   if (!vrt_mgr) {
-   UPLL_LOG_DEBUG("Invalid param");
-   return UPLL_RC_ERR_GENERIC;
+    UPLL_LOG_DEBUG("Invalid param");
+    return UPLL_RC_ERR_GENERIC;
   }
   ConfigKeyVal *ckv_vrt = NULL;
   result_code = GetParentConfigKey(ckv_vrt, ikey);
   if (!ckv_vrt || result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Returing error %d",result_code);
+    UPLL_LOG_DEBUG("Returing error %d", result_code);
     return UPLL_RC_ERR_GENERIC;
   }
   DbSubOp dbop = {kOpReadSingle, kOpMatchNone, kOpInOutNone};
   result_code = vrt_mgr->ReadConfigDB(ckv_vrt, UPLL_DT_CANDIDATE, UNC_OP_READ,
-                             dbop, dmi, MAINTBL);
+                                      dbop, dmi, MAINTBL);
   if (result_code == UPLL_RC_SUCCESS) {
     val_vrt_t *vrt_val = reinterpret_cast<val_vrt_t *>(GetVal(ckv_vrt));
     if (vrt_val && vrt_val->dhcp_relay_admin_status == UPLL_ADMIN_ENABLE) {
index 9fe9d124540e75e62c1c767ce249da2797c9c15d..d0f3d29cc56f1345d80b6b0bbfa7aa3d193ec861 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -20,170 +20,173 @@ namespace kt_momgr {
 
 
 class DhcpRelayIfMoMgr : public VnodeChildMoMgr {
 private:
-    static BindInfo dhcprelay_if_bind_info[];
-    static BindInfo dhcprealy_if_maintbl_key_update_bind_info[];
-    /**
-     * @brief  Gets the valid array position of the variable in the value
-     *         structure from the table in the specified configuration
-     *
-     * @param[in]     val      pointer to the value structure
-     * @param[in]     indx     database index for the variable
-     * @param[out]    valid    position of the variable in the valid array -
-     *                          NULL if valid does not exist.
-     * @param[in]     dt_type  specifies the configuration
-     * @param[in]     tbl      specifies the table containing the given value
-     *
-     **/
-    upll_rc_t GetValid(void *val, uint64_t indx, uint8_t *&valid,
-                       upll_keytype_datatype_t dt_type, MoMgrTables tbl) {
-      return UPLL_RC_ERR_GENERIC;
-    }
+ private:
+  static BindInfo dhcprelay_if_bind_info[];
+  static BindInfo dhcprealy_if_maintbl_key_update_bind_info[];
+  /**
+   * @brief  Gets the valid array position of the variable in the value
+   *         structure from the table in the specified configuration
+   *
+   * @param[in]     val      pointer to the value structure
+   * @param[in]     indx     database index for the variable
+   * @param[out]    valid    position of the variable in the valid array -
+   *                          NULL if valid does not exist.
+   * @param[in]     dt_type  specifies the configuration
+   * @param[in]     tbl      specifies the table containing the given value
+   *
+   **/
+  upll_rc_t GetValid(void *val, uint64_t indx, uint8_t *&valid,
+                     upll_keytype_datatype_t dt_type, MoMgrTables tbl) {
+    return UPLL_RC_ERR_GENERIC;
+  }
 
-    /**
-     * @brief  Compares the valid value between two database records.
-     *       if both the values are same, update the valid flag for corresponding
-     *       attribute as invalid in the first record.
-     *
-     * @param[in/out]  val1   first record value instance.
-     * @param[in]      val2   second record value instance.
-     * @param[in]      audit  if true, CompareValidValue called from audit process.
-     *
-     **/
-    bool CompareValidValue(void *&val1, void *val2, bool audit) {
-      return true;
-    }
-    upll_rc_t UpdateConfigStatus(ConfigKeyVal *req, unc_keytype_operation_t op,
+  /**
+   * @brief  Compares the valid value between two database records.
+   *       if both the values are same, update the valid flag for corresponding
+   *       attribute as invalid in the first record.
+   *
+   * @param[in/out]  val1   first record value instance.
+   * @param[in]      val2   second record value instance.
+   * @param[in]      audit  if true, CompareValidValue called from audit process.
+   *
+   **/
+  bool CompareValidValue(void *&val1, void *val2, bool audit) {
+    return true;
+  }
+  upll_rc_t UpdateConfigStatus(ConfigKeyVal *req, unc_keytype_operation_t op,
                                uint32_t driver_result, ConfigKeyVal *upd_key,
                                DalDmlIntf *dmi, ConfigKeyVal *ctrlr_key = NULL);
-    /**
-     * @brief  Update config status for commit result and vote result.
-     *
-     * @param[in/out]  ckv_running  ConfigKeyVal instance.
-     * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
-     * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
-     *
-     **/
-    upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
-                                      uuc::UpdateCtrlrPhase phase,
-                                      ConfigKeyVal *&ckv_running);
+  /**
+   * @brief  Update config status for commit result and vote result.
+   *
+   * @param[in/out]  ckv_running  ConfigKeyVal instance.
+   * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
+   * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
+   * @param[in]      dmi          Pointer to the DalDmlIntf(DB Interface)
+   *
+   **/
+  upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
+                                    uuc::UpdateCtrlrPhase phase,
+                                    ConfigKeyVal *&ckv_running,
+                                    DalDmlIntf *dmi);
 
-    /**
-     * @Brief  Validates the syntax of the specified key and value structure
-     *       for KT_DHCPRELAY_IF keytype
-     *
-     * @param[in]  req    This structure contains IpcReqRespHeader
-     *                    (first 8 fields of input request structure).
-     * @param[in]  ikey   ikey contains key and value structure.
-     *
-     * @retval  UPLL_RC_SUCCESS                Successful.
-     * @retval  UPLL_RC_ERR_CFG_SYNTAX         Syntax error.
-     * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE   key_dhcp_relay_if is not available.
-     * @retval  UPLL_RC_ERR_GENERIC            Generic failure.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION1    Option1 is not valid.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION2    Option2 is not valid.
-     */
-    upll_rc_t ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *ikey);
+  /**
+   * @Brief  Validates the syntax of the specified key and value structure
+   *       for KT_DHCPRELAY_IF keytype
+   *
+   * @param[in]  req    This structure contains IpcReqRespHeader
+   *                    (first 8 fields of input request structure).
+   * @param[in]  ikey   ikey contains key and value structure.
+   *
+   * @retval  UPLL_RC_SUCCESS                Successful.
+   * @retval  UPLL_RC_ERR_CFG_SYNTAX         Syntax error.
+   * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE   key_dhcp_relay_if is not available.
+   * @retval  UPLL_RC_ERR_GENERIC            Generic failure.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION1    Option1 is not valid.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION2    Option2 is not valid.
+   */
+  upll_rc_t ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *ikey);
 
-    /**
-     * @Brief  Validates the syntax for KT_DHCP_RELAY_IF Keytype key structure.
-     *
-     * @param[in]  key_dhcp_relay_if  KT_DHCP_RELAY_IF key structure.
-     * @param[in]  operation operation type.
-     *
-     * @retval  UPLL_RC_SUCCESS          validation succeeded.
-     * @retval  UPLL_RC_ERR_CFG_SYNTAX   validation failed.
-     */
-    upll_rc_t ValidateDhcpRelayIfKey(key_dhcp_relay_if *dhcprelayif_key,
-                           unc_keytype_operation_t operation = UNC_OP_INVALID);
+  /**
+   * @Brief  Validates the syntax for KT_DHCP_RELAY_IF Keytype key structure.
+   *
+   * @param[in]  key_dhcp_relay_if  KT_DHCP_RELAY_IF key structure.
+   * @param[in]  operation operation type.
+   *
+   * @retval  UPLL_RC_SUCCESS          validation succeeded.
+   * @retval  UPLL_RC_ERR_CFG_SYNTAX   validation failed.
+   */
+  upll_rc_t ValidateDhcpRelayIfKey(
+      key_dhcp_relay_if *dhcprelayif_key,
+      unc_keytype_operation_t operation = UNC_OP_INVALID);
 
-    /**
-     * @Brief  Checks if the specified key type(KT_DHCPRELAY_IF) and
-     *         associated attributes are supported on the given controller,
-     *         based on the valid flag
-     *
-     * @param[in]  req               This structure contains IpcReqRespHeader
-     *                               (first 8 fields of input request structure).
-     * @param[in]  ikey              ikey contains key and value structure.
-     * @param[in]  ctrlr_name        controller name associated with the input ikey.
-     *
-     * @retval  UPLL_RC_SUCCESS              Validation succeeded.
-     * @retval  UPLL_RC_ERR_GENERIC          Validation failure.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION1  Option1 is not valid.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION2  Option2 is not valid.
-     */
-    upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                                 const char *ctrlr_name);
+  /**
+   * @Brief  Checks if the specified key type(KT_DHCPRELAY_IF) and
+   *         associated attributes are supported on the given controller,
+   *         based on the valid flag
+   *
+   * @param[in]  req               This structure contains IpcReqRespHeader
+   *                               (first 8 fields of input request structure).
+   * @param[in]  ikey              ikey contains key and value structure.
+   * @param[in]  ctrlr_name        controller name associated with the input ikey.
+   *
+   * @retval  UPLL_RC_SUCCESS              Validation succeeded.
+   * @retval  UPLL_RC_ERR_GENERIC          Validation failure.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION1  Option1 is not valid.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION2  Option2 is not valid.
+   */
+  upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *ikey,
+                               const char *ctrlr_name);
 
-    upll_rc_t ValidateAttribute(ConfigKeyVal *kval, 
-                                DalDmlIntf *dmi,
-                                IpcReqRespHeader *req = NULL);
-    /**
-     * @brief  Duplicates the input configkeyval including the key and val.
-     * based on the tbl specified.
-     *
-     * @param[in]  okey   Output Configkeyval - allocated within the function
-     * @param[in]  req    Input ConfigKeyVal to be duplicated.
-     * @param[in]  tbl    specifies if the val structure belongs to the main
-     *                    table/ controller table or rename table.
-     *
-     * @retval     UPLL_RC_SUCCESS      Successfull completion.
-     * @retval     UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
-                              MoMgrTables tbl = MAINTBL);
-    /**
-     * @brief  Allocates for the specified val in the given configuration in the     * specified table.
-     *
-     * @param[in]  ck_val   Reference pointer to configval structure allocated.      * @param[in]  dt_type  specifies the configuration candidate/running/state
-     * @param[in]  tbl      specifies if the corresponding table is the  main
-     *                      table / controller table or rename table.
-     *
-     * @retval     UPLL_RC_SUCCESS      Successfull completion.
-     * @retval     UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
-                       MoMgrTables tbl = MAINTBL);
-    upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *parent_key);
-    /**
-     * @brief      Method to get a configkeyval of the parent keytype
-     *
-     * @param[in/out]  okey                 pointer to parent ConfigKeyVal
-     * @param[in]      ikey           pointer to the child configkeyval from
-     * which the parent configkey val is obtained.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *parent_key);
-    /* Rename */
-    bool GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo,
-                              int &nattr, MoMgrTables tbl);
-    upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
-    upll_rc_t IsReferenced(ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
-                           DalDmlIntf *dmi);
-    upll_rc_t IsAdminStatusEnable(ConfigKeyVal *ikey,DalDmlIntf *dmi);
-    
-  public:
-    DhcpRelayIfMoMgr();
-    virtual ~DhcpRelayIfMoMgr() {
-      for (int i = 0; i < ntable; i++)
-        if (table[i]) {
-          delete table[i];
-        }
-      delete[] table;
-    }
+  upll_rc_t ValidateAttribute(ConfigKeyVal *kval,
+                              DalDmlIntf *dmi,
+                              IpcReqRespHeader *req = NULL);
+  /**
+   * @brief  Duplicates the input configkeyval including the key and val.
+   * based on the tbl specified.
+   *
+   * @param[in]  okey   Output Configkeyval - allocated within the function
+   * @param[in]  req    Input ConfigKeyVal to be duplicated.
+   * @param[in]  tbl    specifies if the val structure belongs to the main
+   *                    table/ controller table or rename table.
+   *
+   * @retval     UPLL_RC_SUCCESS      Successfull completion.
+   * @retval     UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
+                            MoMgrTables tbl = MAINTBL);
+  /**
+   * @brief  Allocates for the specified val in the given configuration in the     * specified table.
+   *
+   * @param[in]  ck_val   Reference pointer to configval structure allocated.      * @param[in]  dt_type  specifies the configuration candidate/running/state
+   * @param[in]  tbl      specifies if the corresponding table is the  main
+   *                      table / controller table or rename table.
+   *
+   * @retval     UPLL_RC_SUCCESS      Successfull completion.
+   * @retval     UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
+                     MoMgrTables tbl = MAINTBL);
+  upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *parent_key);
+  /**
+   * @brief      Method to get a configkeyval of the parent keytype
+   *
+   * @param[in/out]  okey                 pointer to parent ConfigKeyVal
+   * @param[in]      ikey           pointer to the child configkeyval from
+   * which the parent configkey val is obtained.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *parent_key);
+  /* Rename */
+  bool GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo,
+                            int &nattr, MoMgrTables tbl);
+  upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
+  upll_rc_t IsReferenced(ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
+                         DalDmlIntf *dmi);
+  upll_rc_t IsAdminStatusEnable(ConfigKeyVal *ikey, DalDmlIntf *dmi);
 
-    /**
-     * @brief      Method to check if individual portions of a key are valid
-     *
-     * @param[in/out]  ikey                 pointer to ConfigKeyVal referring to a UNC resource
-     * @param[in]      index                db index associated with the variable
-     *
-     * @retval         true                 input key is valid
-     * @retval         false                input key is invalid.
-     **/
-    bool IsValidKey(void *tkey, uint64_t index);
+ public:
+  DhcpRelayIfMoMgr();
+  virtual ~DhcpRelayIfMoMgr() {
+    for (int i = 0; i < ntable; i++)
+      if (table[i]) {
+        delete table[i];
+      }
+    delete[] table;
+  }
+
+  /**
+   * @brief      Method to check if individual portions of a key are valid
+   *
+   * @param[in/out]  ikey                 pointer to ConfigKeyVal referring to a UNC resource
+   * @param[in]      index                db index associated with the variable
+   *
+   * @retval         true                 input key is valid
+   * @retval         false                input key is invalid.
+   **/
+  bool IsValidKey(void *tkey, uint64_t index);
 };
 
 }  // namespace kt_momgr
index 4572086684c8aaeb623277d128fede84d479ea16..2c1d57478d4ec945d06e4aeda4887acef92eaaac 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -18,55 +18,57 @@ namespace upll {
 namespace kt_momgr {
 
 BindInfo DhcpRelayServerMoMgr::dhcprelay_server_bind_info[] = {
-    { uudst::dhcprelay_server::kDbiVtnName, CFG_KEY, offsetof(
-        key_dhcp_relay_server, vrt_key.vtn_key.vtn_name),
-      uud::kDalChar, 32 },
-    { uudst::dhcprelay_server::kDbiVrouterName, CFG_KEY, offsetof(
-        key_dhcp_relay_server, vrt_key.vrouter_name),
-      uud::kDalChar, 32 },
-    { uudst::dhcprelay_server::kDbiServerIpAddr, CFG_KEY, offsetof(
-        key_dhcp_relay_server, server_addr),
-      uud::kDalUint32, 1 },
-    { uudst::dhcprelay_server::kDbiCtrlrName, CK_VAL, offsetof(key_user_data,
-                                                               ctrlr_id),
-      uud::kDalChar, 32 },
-    { uudst::dhcprelay_server::kDbiDomainId, CK_VAL, offsetof(key_user_data,
-                                                              domain_id),
-      uud::kDalChar, 32 },
-    { uudst::dhcprelay_server::kDbiCsRowstatus, CS_VAL, offsetof(
-        val_dhcp_relay_server, cs_row_status),
-      uud::kDalUint8, 1 },
-    { uudst::dhcprelay_server::kDbiFlags, CK_VAL, offsetof(key_user_data,
-                                                           flags),
-      uud::kDalUint8, 1 }, };
-
-BindInfo DhcpRelayServerMoMgr::dhcprealy_server_maintbl_key_update_bind_info[] =
-    { { uudst::dhcprelay_server::kDbiVtnName, CFG_MATCH_KEY, offsetof(
-        key_dhcp_relay_server, vrt_key.vtn_key.vtn_name),
-        uud::kDalChar, kMaxLenVtnName + 1 },
-      { uudst::dhcprelay_server::kDbiVrouterName, CFG_MATCH_KEY, offsetof(
+  { uudst::dhcprelay_server::kDbiVtnName, CFG_KEY, offsetof(
+          key_dhcp_relay_server, vrt_key.vtn_key.vtn_name),
+  uud::kDalChar, 32 },
+  { uudst::dhcprelay_server::kDbiVrouterName, CFG_KEY, offsetof(
           key_dhcp_relay_server, vrt_key.vrouter_name),
-        uud::kDalChar, kMaxLenVnodeName + 1 },
-      { uudst::dhcprelay_server::kDbiServerIpAddr, CFG_MATCH_KEY, offsetof(
+  uud::kDalChar, 32 },
+  { uudst::dhcprelay_server::kDbiServerIpAddr, CFG_KEY, offsetof(
           key_dhcp_relay_server, server_addr),
-        uud::kDalUint32, 1 },
-      { uudst::dhcprelay_server::kDbiVtnName, CFG_INPUT_KEY, offsetof(
-          key_rename_vnode_info_t, new_unc_vtn_name),
-        uud::kDalChar, kMaxLenVtnName + 1 },
-      { uudst::dhcprelay_server::kDbiVrouterName, CFG_INPUT_KEY, offsetof(
-          key_rename_vnode_info_t, new_unc_vnode_name),
-        uud::kDalChar, kMaxLenVnodeName + 1 },
-      { uudst::dhcprelay_server::kDbiFlags, CK_VAL, offsetof(
-          key_user_data_t, flags),
-        uud::kDalUint8, 1 } };
+  uud::kDalUint32, 1 },
+  { uudst::dhcprelay_server::kDbiCtrlrName, CK_VAL, offsetof(key_user_data,
+                                                             ctrlr_id),
+  uud::kDalChar, 32 },
+  { uudst::dhcprelay_server::kDbiDomainId, CK_VAL, offsetof(key_user_data,
+                                                            domain_id),
+  uud::kDalChar, 32 },
+  { uudst::dhcprelay_server::kDbiCsRowstatus, CS_VAL, offsetof(
+          val_dhcp_relay_server, cs_row_status),
+  uud::kDalUint8, 1 },
+  { uudst::dhcprelay_server::kDbiFlags, CK_VAL, offsetof(key_user_data,
+                                                         flags),
+  uud::kDalUint8, 1 }, };
+
+BindInfo DhcpRelayServerMoMgr::dhcprealy_server_maintbl_key_update_bind_info[] =
+{ { uudst::dhcprelay_server::kDbiVtnName, CFG_MATCH_KEY, offsetof(
+            key_dhcp_relay_server, vrt_key.vtn_key.vtn_name),
+uud::kDalChar, kMaxLenVtnName + 1 },
+{ uudst::dhcprelay_server::kDbiVrouterName, CFG_MATCH_KEY, offsetof(
+        key_dhcp_relay_server, vrt_key.vrouter_name),
+uud::kDalChar, kMaxLenVnodeName + 1 },
+{ uudst::dhcprelay_server::kDbiServerIpAddr, CFG_MATCH_KEY, offsetof(
+        key_dhcp_relay_server, server_addr),
+uud::kDalUint32, 1 },
+{ uudst::dhcprelay_server::kDbiVtnName, CFG_INPUT_KEY, offsetof(
+        key_rename_vnode_info_t, new_unc_vtn_name),
+uud::kDalChar, kMaxLenVtnName + 1 },
+{ uudst::dhcprelay_server::kDbiVrouterName, CFG_INPUT_KEY, offsetof(
+        key_rename_vnode_info_t, new_unc_vnode_name),
+uud::kDalChar, kMaxLenVnodeName + 1 },
+{ uudst::dhcprelay_server::kDbiFlags, CK_VAL, offsetof(
+        key_user_data_t, flags),
+uud::kDalUint8, 1 } };
 
 DhcpRelayServerMoMgr::DhcpRelayServerMoMgr() {
   UPLL_FUNC_TRACE
-  ntable = MAX_MOMGR_TBLS;
+      ntable = MAX_MOMGR_TBLS;
   table = new Table *[ntable];
-  table[MAINTBL]= new Table( uudst::kDbiDhcpRelayServerTbl,
+  table[MAINTBL]= new Table(
+      uudst::kDbiDhcpRelayServerTbl,
       UNC_KT_DHCPRELAY_SERVER, dhcprelay_server_bind_info,
-      IpctSt::kIpcStKeyDhcpRelayServer, IpctSt::kIpcStValDhcpRelayServer,
+      IpctSt::kIpcStKeyDhcpRelayServer,
+      IpctSt::kIpcStValDhcpRelayServer,
       uudst::dhcprelay_server::kDbiDhcpRelayServerNumCols);
   table[RENAMETBL] = NULL;
   table[CTRLRTBL] = NULL;
@@ -92,21 +94,21 @@ bool DhcpRelayServerMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type,
   return PFC_TRUE;
 }
 
-upll_rc_t DhcpRelayServerMoMgr::ValidateAttribute(ConfigKeyVal *ikey, 
+upll_rc_t DhcpRelayServerMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
                                                   DalDmlIntf *dmi,
                                                   IpcReqRespHeader *req) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   if (ikey->get_key_type() != UNC_KT_DHCPRELAY_SERVER) result_code =
-      UPLL_RC_ERR_CFG_SYNTAX;
+    UPLL_RC_ERR_CFG_SYNTAX;
 
-  #if 0
+#if 0
   /* Check if vrouter admin status is disabled */
   result_code = IsAdminStatusEnable(ikey, dmi);
   if (result_code != UPLL_RC_SUCCESS) {
     return UPLL_RC_ERR_CFG_SEMANTIC;
   }
-  #endif
+#endif
   return result_code;
 }
 
@@ -114,7 +116,7 @@ upll_rc_t DhcpRelayServerMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
 bool DhcpRelayServerMoMgr::IsValidKey(void *key, uint64_t index) {
   UPLL_FUNC_TRACE;
   key_dhcp_relay_server *dhcp_rs_key =
-     reinterpret_cast<key_dhcp_relay_server *>(key);
+      reinterpret_cast<key_dhcp_relay_server *>(key);
   uint32_t val = 0;
   upll_rc_t ret_val = UPLL_RC_SUCCESS;
   switch (index) {
@@ -181,26 +183,27 @@ upll_rc_t DhcpRelayServerMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
   switch (keytype) {
     case UNC_KT_VTN:
       uuu::upll_strncpy(dhcp_key->vrt_key.vtn_key.vtn_name,
-             reinterpret_cast<key_vtn *>(pkey)->vtn_name,
-             (kMaxLenVtnName + 1));
+                        reinterpret_cast<key_vtn *>(pkey)->vtn_name,
+                        (kMaxLenVtnName + 1));
       *(dhcp_key->vrt_key.vrouter_name) = *"";
       break;
     case UNC_KT_VROUTER:
       uuu::upll_strncpy(dhcp_key->vrt_key.vtn_key.vtn_name,
-             reinterpret_cast<key_vrt *>(pkey)->vtn_key.vtn_name,
-             (kMaxLenVtnName + 1));
+                        reinterpret_cast<key_vrt *>(pkey)->vtn_key.vtn_name,
+                        (kMaxLenVtnName + 1));
       uuu::upll_strncpy(dhcp_key->vrt_key.vrouter_name,
-             reinterpret_cast<key_vrt *>(pkey)->vrouter_name,
-              (kMaxLenVnodeName + 1));
+                        reinterpret_cast<key_vrt *>(pkey)->vrouter_name,
+                        (kMaxLenVnodeName + 1));
       break;
     case UNC_KT_DHCPRELAY_SERVER:
       uuu::upll_strncpy(dhcp_key->vrt_key.vtn_key.vtn_name,
-          reinterpret_cast<key_dhcp_relay_server *>
-          (pkey)->vrt_key.vtn_key.vtn_name,
-          (kMaxLenVtnName + 1));
+                        reinterpret_cast<key_dhcp_relay_server *>
+                        (pkey)->vrt_key.vtn_key.vtn_name,
+                        (kMaxLenVtnName + 1));
       uuu::upll_strncpy(dhcp_key->vrt_key.vrouter_name,
-          reinterpret_cast<key_dhcp_relay_server *>(pkey)->vrt_key.vrouter_name,
-          (kMaxLenVnodeName + 1));
+                        reinterpret_cast<key_dhcp_relay_server *>
+                        (pkey)->vrt_key.vrouter_name,
+                        (kMaxLenVnodeName + 1));
       dhcp_key->server_addr.s_addr =
           reinterpret_cast<key_dhcp_relay_server *>(pkey)->server_addr.s_addr;
     default:
@@ -231,18 +234,20 @@ upll_rc_t DhcpRelayServerMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
   unc_key_type_t ikey_type = ikey->get_key_type();
 
   if (ikey_type != UNC_KT_DHCPRELAY_SERVER) return UPLL_RC_ERR_GENERIC;
-    key_vrt_if *pkey = reinterpret_cast<key_vrt_if *>
-        (ikey->get_key());
+  key_vrt_if *pkey = reinterpret_cast<key_vrt_if *>
+      (ikey->get_key());
   if (!pkey) return UPLL_RC_ERR_GENERIC;
   key_vrt *vrt_key = reinterpret_cast<key_vrt *>(malloc(sizeof(key_vrt)));
   if (!vrt_key) return UPLL_RC_ERR_GENERIC;
   memset(vrt_key, 0, sizeof(key_vrt));
   uuu::upll_strncpy(vrt_key->vtn_key.vtn_name,
-      reinterpret_cast<key_dhcp_relay_server *>(pkey)->vrt_key.vtn_key.vtn_name,
-      (kMaxLenVtnName + 1));
+                    reinterpret_cast<key_dhcp_relay_server *>
+                    (pkey)->vrt_key.vtn_key.vtn_name,
+                    (kMaxLenVtnName + 1));
   uuu::upll_strncpy(vrt_key->vrouter_name,
-         reinterpret_cast<key_dhcp_relay_server *>(pkey)->vrt_key.vrouter_name,
-         (kMaxLenVnodeName + 1));
+                    reinterpret_cast<key_dhcp_relay_server *>
+                    (pkey)->vrt_key.vrouter_name,
+                    (kMaxLenVnodeName + 1));
   if (okey) delete okey;
   okey = new ConfigKeyVal(UNC_KT_VROUTER, IpctSt::kIpcStKeyVrt, vrt_key, NULL);
   if (okey == NULL) {
@@ -295,7 +300,7 @@ upll_rc_t DhcpRelayServerMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
       }
       val_dhcp_relay_server *dhcp_val =
           reinterpret_cast<val_dhcp_relay_server *>(malloc(
-          sizeof(val_dhcp_relay_server)));
+                  sizeof(val_dhcp_relay_server)));
       if (!dhcp_val) return UPLL_RC_ERR_GENERIC;
       memcpy(dhcp_val, ival, sizeof(val_dhcp_relay_server));
       tmp1 = new ConfigVal(IpctSt::kIpcStValDhcpRelayServer, dhcp_val);
@@ -305,7 +310,7 @@ upll_rc_t DhcpRelayServerMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
   key_dhcp_relay_server *ikey = reinterpret_cast<key_dhcp_relay_server *>(tkey);
   key_dhcp_relay_server *dhcp_key =
       reinterpret_cast<key_dhcp_relay_server *>(ConfigKeyVal::Malloc(
-      sizeof(key_dhcp_relay_server)));
+              sizeof(key_dhcp_relay_server)));
   memcpy(dhcp_key, ikey, sizeof(key_dhcp_relay_server));
   okey = new ConfigKeyVal(UNC_KT_DHCPRELAY_SERVER,
                           IpctSt::kIpcStKeyDhcpRelayServer, dhcp_key, tmp1);
@@ -331,17 +336,17 @@ upll_rc_t DhcpRelayServerMoMgr::UpdateConfigStatus(ConfigKeyVal *ikey,
 
   unc_keytype_configstatus_t cs_status =
       (driver_result == UPLL_RC_SUCCESS) ? UNC_CS_APPLIED
-                                         : UNC_CS_NOT_APPLIED;
+      : UNC_CS_NOT_APPLIED;
   if (dhcp_val == NULL) return UPLL_RC_ERR_GENERIC;
   if (op == UNC_OP_CREATE) {
     dhcp_val->cs_row_status = cs_status;
   }
-  UPLL_LOG_TRACE("%s",(ikey->ToStrAll()).c_str());
-  val_dhcp_relay_server *dhcp_val2 = 
-       reinterpret_cast<val_dhcp_relay_server *>(GetVal(upd_key));
+  UPLL_LOG_TRACE("%s", (ikey->ToStrAll()).c_str());
+  val_dhcp_relay_server *dhcp_val2 =
+      reinterpret_cast<val_dhcp_relay_server *>(GetVal(upd_key));
   if (dhcp_val2 == NULL) return UPLL_RC_ERR_GENERIC;
   if (UNC_OP_UPDATE == op) {
-    UPLL_LOG_TRACE("%s",(upd_key->ToStrAll()).c_str());
+    UPLL_LOG_TRACE("%s", (upd_key->ToStrAll()).c_str());
     dhcp_val->cs_row_status = dhcp_val2->cs_row_status;
   }
   return UPLL_RC_SUCCESS;
@@ -349,7 +354,8 @@ upll_rc_t DhcpRelayServerMoMgr::UpdateConfigStatus(ConfigKeyVal *ikey,
 
 upll_rc_t DhcpRelayServerMoMgr::UpdateAuditConfigStatus(
     unc_keytype_configstatus_t cs_status, uuc::UpdateCtrlrPhase phase,
-    ConfigKeyVal *&ckv_running) {
+    ConfigKeyVal *&ckv_running,
+    DalDmlIntf *dmi) {
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_dhcp_relay_server_t *val;
   val = (ckv_running != NULL) ?
@@ -359,8 +365,8 @@ upll_rc_t DhcpRelayServerMoMgr::UpdateAuditConfigStatus(
   }
   if (uuc::kUpllUcpCreate == phase) val->cs_row_status = cs_status;
   if ((uuc::kUpllUcpUpdate == phase) &&
-           (val->cs_row_status == UNC_CS_INVALID ||
-            val->cs_row_status == UNC_CS_NOT_APPLIED))
+      (val->cs_row_status == UNC_CS_INVALID ||
+       val->cs_row_status == UNC_CS_NOT_APPLIED))
     val->cs_row_status = cs_status;
   return result_code;
 }
@@ -373,23 +379,24 @@ upll_rc_t DhcpRelayServerMoMgr::GetVrtDhcpRelayServerAddress(ConfigKeyVal *ikey,
   result_code = GetChildConfigKey(ck_dhcp, ikey);
   if (!ck_dhcp || result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("GetChildConfigKey is failed- %d", result_code);
-   return result_code;
+    return result_code;
   }
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutNone };
   result_code = ReadConfigDB(ck_dhcp, UPLL_DT_RUNNING, UNC_OP_READ, dbop,
-                                                                 dmi, MAINTBL);
+                             dmi, MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("Failed to ReadConfigDb- %d", result_code);
-    DELETE_IF_NOT_NULL (ck_dhcp);
+    DELETE_IF_NOT_NULL(ck_dhcp);
     return result_code;
   }
-  val_vrt_dhcp_relay_st *val_vrt_dhcp = reinterpret_cast<val_vrt_dhcp_relay_st *>
-                           (ConfigKeyVal::Malloc(sizeof(val_vrt_dhcp_relay_st)));
+  val_vrt_dhcp_relay_st *val_vrt_dhcp =
+      reinterpret_cast<val_vrt_dhcp_relay_st *>
+      (ConfigKeyVal::Malloc(sizeof(val_vrt_dhcp_relay_st)));
   val_vrt_dhcp->valid[UPLL_IDX_DHCP_RELAY_ADMIN_STATUS_VDRS] = UNC_VF_INVALID;
   val_vrt_dhcp->valid[UPLL_IDX_IP_COUNT_VDRS] = UNC_VF_VALID;
   val_vrt_dhcp->valid[UPLL_IDX_IF_COUNT_VDRS] = UNC_VF_INVALID;
   ConfigKeyVal *tmp= ck_dhcp;
-  while(tmp != NULL) {
+  while (tmp != NULL) {
     val_vrt_dhcp->ip_count++;
     tmp = tmp->get_next_cfg_key_val();
   }
@@ -398,11 +405,11 @@ upll_rc_t DhcpRelayServerMoMgr::GetVrtDhcpRelayServerAddress(ConfigKeyVal *ikey,
   ConfigKeyVal *tkey = ck_dhcp;
   while (tkey  && ipcount < val_vrt_dhcp->ip_count)  {
     key_dhcp_relay_server *dhcp_key =
-                  reinterpret_cast<key_dhcp_relay_server_t *>(tkey->get_key());
-    uint32_t *ip_addr = 
-          reinterpret_cast<uint32_t *>(ConfigKeyVal::Malloc(sizeof(uint32_t)));
+        reinterpret_cast<key_dhcp_relay_server_t *>(tkey->get_key());
+    uint32_t *ip_addr =
+        reinterpret_cast<uint32_t *>(ConfigKeyVal::Malloc(sizeof(uint32_t)));
     *ip_addr = dhcp_key->server_addr.s_addr;  //  assign ipaddress
-    ikey->AppendCfgVal( IpctSt::kIpcStIpv4, ip_addr);
+    ikey->AppendCfgVal(IpctSt::kIpcStIpv4, ip_addr);
     ipcount++;
     tkey = tkey->get_next_cfg_key_val();
   }
@@ -421,7 +428,7 @@ upll_rc_t DhcpRelayServerMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
       reinterpret_cast<key_rename_vnode_info *>(ikey->get_key());
   key_dhcp_relay_server_t * key_dhcp =
       reinterpret_cast<key_dhcp_relay_server_t*>(malloc(
-      sizeof(key_dhcp_relay_server_t)));
+              sizeof(key_dhcp_relay_server_t)));
 
   if (!key_dhcp) return UPLL_RC_ERR_GENERIC;
   memset(key_dhcp, 0, sizeof(key_dhcp_relay_server));
@@ -430,23 +437,23 @@ upll_rc_t DhcpRelayServerMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
     return UPLL_RC_ERR_GENERIC;
   }
   uuu::upll_strncpy(key_dhcp->vrt_key.vtn_key.vtn_name,
-         key_rename->old_unc_vtn_name,
-         (kMaxLenVtnName + 1));
+                    key_rename->old_unc_vtn_name,
+                    (kMaxLenVtnName + 1));
   if (ikey->get_key_type() == UNC_KT_VROUTER) {
     if (!strlen(reinterpret_cast<char *>(key_rename->old_unc_vnode_name))) {
       FREE_IF_NOT_NULL(key_dhcp);
       return UPLL_RC_ERR_GENERIC;
     }
     uuu::upll_strncpy(key_dhcp->vrt_key.vrouter_name,
-           key_rename->old_unc_vnode_name,
-           (kMaxLenVnodeName + 1));
+                      key_rename->old_unc_vnode_name,
+                      (kMaxLenVnodeName + 1));
   } else {
     if (!strlen(reinterpret_cast<char *>(key_rename->new_unc_vnode_name))) {
       FREE_IF_NOT_NULL(key_dhcp);
       return UPLL_RC_ERR_GENERIC;
     }
     uuu::upll_strncpy(key_dhcp->vrt_key.vrouter_name,
-       key_rename->new_unc_vnode_name, (kMaxLenVnodeName+1));
+                      key_rename->new_unc_vnode_name, (kMaxLenVnodeName+1));
   }
 
   okey = new ConfigKeyVal(UNC_KT_DHCPRELAY_SERVER,
@@ -473,7 +480,7 @@ upll_rc_t DhcpRelayServerMoMgr::ValidateMessage(IpcReqRespHeader *req,
   upll_rc_t ret_val;
   if (ikey->get_st_num() != IpctSt::kIpcStKeyDhcpRelayServer) {
     UPLL_LOG_DEBUG("Invalid key structure received. received struct - %d",
-                  ikey->get_st_num());
+                   ikey->get_st_num());
     return UPLL_RC_ERR_BAD_REQUEST;
   }
   key_dhcp_relay_server *dhcprelay_key =
@@ -494,11 +501,11 @@ upll_rc_t DhcpRelayServerMoMgr::ValidateMessage(IpcReqRespHeader *req,
       || op == UNC_OP_READ_NEXT || op == UNC_OP_READ_BULK) {
     if (dt_type == UPLL_DT_CANDIDATE || dt_type == UPLL_DT_RUNNING
         || dt_type == UPLL_DT_STARTUP || dt_type == UPLL_DT_STATE ||
-          UPLL_DT_IMPORT == dt_type) {
-      if (option1 != UNC_OPT1_NORMAL) 
+        UPLL_DT_IMPORT == dt_type) {
+      if (option1 != UNC_OPT1_NORMAL)
         return UPLL_RC_ERR_INVALID_OPTION1;
       if (option2 != UNC_OPT2_NONE)
-        return UPLL_RC_ERR_INVALID_OPTION2; 
+        return UPLL_RC_ERR_INVALID_OPTION2;
       UPLL_LOG_DEBUG("Value structure is none for operation type:%d", op);
       return UPLL_RC_SUCCESS;
     } else {
@@ -522,23 +529,23 @@ upll_rc_t DhcpRelayServerMoMgr::ValidateDhcpRelayKey(
                         kMinLenVtnName, kMaxLenVtnName);
   if (ret_val != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("syntax check failed. VTN Name - %s",
-                  dhcprelay_key->vrt_key.vtn_key.vtn_name);
+                   dhcprelay_key->vrt_key.vtn_key.vtn_name);
     return UPLL_RC_ERR_CFG_SYNTAX;
   }
   ret_val = ValidateKey(reinterpret_cast<char *>(
-                        dhcprelay_key->vrt_key.vrouter_name),
-                        kMinLenVnodeName, kMaxLenVnodeName);
+          dhcprelay_key->vrt_key.vrouter_name),
+      kMinLenVnodeName, kMaxLenVnodeName);
   if (ret_val != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("syntax check failed. VROUTER Name -%s",
-                  dhcprelay_key->vrt_key.vrouter_name);
+                   dhcprelay_key->vrt_key.vrouter_name);
     return UPLL_RC_ERR_CFG_SYNTAX;
   }
   if ((operation != UNC_OP_READ_SIBLING_BEGIN) &&
-     (operation != UNC_OP_READ_SIBLING_COUNT)) {
+      (operation != UNC_OP_READ_SIBLING_COUNT)) {
     val = dhcprelay_key->server_addr.s_addr;
     if (val == 0x00000000 || val == 0xffffffff) {
       UPLL_LOG_DEBUG("INVALID SERVER ADDRESS RECEIVED. received addr - %d",
-                    dhcprelay_key->server_addr.s_addr);
+                     dhcprelay_key->server_addr.s_addr);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else {
@@ -561,7 +568,7 @@ upll_rc_t DhcpRelayServerMoMgr::ValidateCapability(IpcReqRespHeader *req,
 
   if (!ctrlr_name) {
     ctrlr_name = reinterpret_cast<char*>((reinterpret_cast<key_user_data_t *>
-                  (ikey->get_user_data()))->ctrlr_id);
+                                          (ikey->get_user_data()))->ctrlr_id);
     if (!ctrlr_name || !strlen(ctrlr_name)) {
       UPLL_LOG_DEBUG("Controller Name is NULL");
       return UPLL_RC_ERR_GENERIC;
@@ -587,17 +594,10 @@ upll_rc_t DhcpRelayServerMoMgr::ValidateCapability(IpcReqRespHeader *req,
   switch (operation) {
     case UNC_OP_CREATE: {
       ret_code = GetCreateCapability(ctrlr_name,
-                                    ikey->get_key_type(),
+                                     ikey->get_key_type(),
                                      &max_instance_count,
                                      &max_attrs,
                                      &attrs);
-      if (ret_code && (max_instance_count != 0) &&
-          (cur_instance_count >= max_instance_count)) {
-        UPLL_LOG_DEBUG("[%s:%d:%s Instance count %d exceeds %d", __FILE__,
-                      __LINE__, __FUNCTION__, cur_instance_count,
-                      max_instance_count);
-        return UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
-      }
       break;
     }
     case UNC_OP_UPDATE: {
@@ -638,24 +638,25 @@ upll_rc_t DhcpRelayServerMoMgr::IsReferenced(ConfigKeyVal *ikey,
 }
 
 upll_rc_t DhcpRelayServerMoMgr::IsAdminStatusEnable(ConfigKeyVal *ikey,
-                                                DalDmlIntf *dmi) {
+                                                    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
-  MoMgrImpl *vrt_mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
-                                            (GetMoManager(UNC_KT_VROUTER)));
+  MoMgrImpl *vrt_mgr = reinterpret_cast<MoMgrImpl *>(
+      const_cast<MoManager *>
+      (GetMoManager(UNC_KT_VROUTER)));
   if (!vrt_mgr) {
-   UPLL_LOG_DEBUG("Invalid param");
-   return UPLL_RC_ERR_GENERIC;
+    UPLL_LOG_DEBUG("Invalid param");
+    return UPLL_RC_ERR_GENERIC;
   }
   ConfigKeyVal *ckv_vrt = NULL;
   result_code = GetParentConfigKey(ckv_vrt, ikey);
   if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Returing error %d \n",result_code);
+    UPLL_LOG_DEBUG("Returing error %d \n", result_code);
     return UPLL_RC_ERR_GENERIC;
   }
   DbSubOp dbop = {kOpReadSingle, kOpMatchNone, kOpInOutNone};
   result_code = vrt_mgr->ReadConfigDB(ckv_vrt, UPLL_DT_CANDIDATE, UNC_OP_READ,
-                             dbop, dmi, MAINTBL);
+                                      dbop, dmi, MAINTBL);
   if (result_code == UPLL_RC_SUCCESS) {
     val_vrt_t *vrt_val = reinterpret_cast<val_vrt_t *>(GetVal(ckv_vrt));
     if (vrt_val && vrt_val->dhcp_relay_admin_status == UPLL_ADMIN_ENABLE) {
@@ -668,6 +669,6 @@ upll_rc_t DhcpRelayServerMoMgr::IsAdminStatusEnable(ConfigKeyVal *ikey,
   return result_code;
 }
 
-}  // namespaces kt_momgr
+}  // namespace kt_momgr
 }  // namespace upll
 }  // namespace unc
index 965256072609b0522aae0c075929b7dd5947e776..cf6151235cde9be5f822ed022ed160fa9b3a827c 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -20,181 +20,183 @@ namespace kt_momgr {
 
 
 class DhcpRelayServerMoMgr : public VnodeChildMoMgr {
-  private:
-    static BindInfo dhcprelay_server_bind_info[];
-    static BindInfo dhcprealy_server_maintbl_key_update_bind_info[];
-    /**
-     * @brief  Gets the valid array position of the variable in the value
-     *         structure from the table in the specified configuration
-     *
-     * @param[in]     val      pointer to the value structure
-     * @param[in]     indx     database index for the variable
-     * @param[out]    valid    position of the variable in the valid array -
-     *                          NULL if valid does not exist.
-     * @param[in]     dt_type  specifies the configuration
-     * @param[in]     tbl      specifies the table containing the given value
-     *
-     **/
-    upll_rc_t GetValid(void *val, uint64_t indx, uint8_t *&valid,
-                       upll_keytype_datatype_t dt_type, MoMgrTables tbl) {
-      return UPLL_RC_ERR_GENERIC;
-    }
-    upll_rc_t UpdateConfigStatus(ConfigKeyVal *req, unc_keytype_operation_t op,
-                              uint32_t driver_result, ConfigKeyVal *upd_key,
-                              DalDmlIntf *dmi, ConfigKeyVal *ctrlr_key = NULL);
-    /**
-     * @brief  Update config status for commit result and vote result.
-     *
-     * @param[in/out]  ckv_running  ConfigKeyVal instance.
-     * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
-     * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
-     *
-     **/
-    upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
-                                      uuc::UpdateCtrlrPhase phase,
-                                      ConfigKeyVal *&ckv_running);
+ private:
+  static BindInfo dhcprelay_server_bind_info[];
+  static BindInfo dhcprealy_server_maintbl_key_update_bind_info[];
+  /**
+   * @brief  Gets the valid array position of the variable in the value
+   *         structure from the table in the specified configuration
+   *
+   * @param[in]     val      pointer to the value structure
+   * @param[in]     indx     database index for the variable
+   * @param[out]    valid    position of the variable in the valid array -
+   *                          NULL if valid does not exist.
+   * @param[in]     dt_type  specifies the configuration
+   * @param[in]     tbl      specifies the table containing the given value
+   *
+   **/
+  upll_rc_t GetValid(void *val, uint64_t indx, uint8_t *&valid,
+                     upll_keytype_datatype_t dt_type, MoMgrTables tbl) {
+    return UPLL_RC_ERR_GENERIC;
+  }
+  upll_rc_t UpdateConfigStatus(ConfigKeyVal *req, unc_keytype_operation_t op,
+                               uint32_t driver_result, ConfigKeyVal *upd_key,
+                               DalDmlIntf *dmi, ConfigKeyVal *ctrlr_key = NULL);
+  /**
+   * @brief  Update config status for commit result and vote result.
+   *
+   * @param[in/out]  ckv_running  ConfigKeyVal instance.
+   * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
+   * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
+   * @param[in]      dmi          Pointer to the DalDmlIntf(DB Interface)
+   *
+   **/
+  upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
+                                    uuc::UpdateCtrlrPhase phase,
+                                    ConfigKeyVal *&ckv_running,
+                                    DalDmlIntf *dmi);
 
-    /**
-     * @Brief  Validates the syntax of the specified key and value structure
-     *         for KT_DHCPRELAY_SERVER keytype
-     *
-     * @param[in]  req    This structure contains IpcReqRespHeader
-     *                    (first 8 fields of input request structure).
-     * @param[in]  ikey   ikey contains key and value structure.
-     *
-     * @retval  UPLL_RC_SUCCESS                Successful.
-     * @retval  UPLL_RC_ERR_CFG_SYNTAX         Syntax error.
-     * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE   key_dhcp_relay_server is not available.
-     * @retval  UPLL_RC_ERR_GENERIC            Generic failure.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION1    option1 is not valid.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION2    option2 is not valid.
-     */
-    upll_rc_t ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *ikey);
+  /**
+   * @Brief  Validates the syntax of the specified key and value structure
+   *         for KT_DHCPRELAY_SERVER keytype
+   *
+   * @param[in]  req    This structure contains IpcReqRespHeader
+   *                    (first 8 fields of input request structure).
+   * @param[in]  ikey   ikey contains key and value structure.
+   *
+   * @retval  UPLL_RC_SUCCESS                Successful.
+   * @retval  UPLL_RC_ERR_CFG_SYNTAX         Syntax error.
+   * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE   key_dhcp_relay_server is not available.
+   * @retval  UPLL_RC_ERR_GENERIC            Generic failure.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION1    option1 is not valid.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION2    option2 is not valid.
+   */
+  upll_rc_t ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *ikey);
 
-    /**
-     * @Brief  Validates the syntax for KT_DHCP_RELAY_SERVER Keytype key structure.
-     *
-     * @param[in]  key_dhcp_relay_server  KT_DHCP_RELAY_SERVER key structure.
-     * @param[in]  Operation             operation type.
-     *
-     * @retval  UPLL_RC_SUCCESS          validation succeeded.
-     * @retval  UPLL_RC_ERR_CFG_SYNTAX   validation failed.
-     *
-     */
-    upll_rc_t ValidateDhcpRelayKey(key_dhcp_relay_server *dhcp_relay_key,
-                                   unc_keytype_operation_t op);
+  /**
+   * @Brief  Validates the syntax for KT_DHCP_RELAY_SERVER Keytype key structure.
+   *
+   * @param[in]  key_dhcp_relay_server  KT_DHCP_RELAY_SERVER key structure.
+   * @param[in]  Operation             operation type.
+   *
+   * @retval  UPLL_RC_SUCCESS          validation succeeded.
+   * @retval  UPLL_RC_ERR_CFG_SYNTAX   validation failed.
+   *
+   */
+  upll_rc_t ValidateDhcpRelayKey(key_dhcp_relay_server *dhcp_relay_key,
+                                 unc_keytype_operation_t op);
 
-    /**
-     * @brief  Compares the valid value between two database records.
-     *              if both the values are same, update the valid flag for corresponding
-     *              attribute as invalid in the first record.
-     *
-     * @param[in/out]  val1   first record value instance.
-     * @param[in]      val2   second record value instance.
-     * @param[in]      audit  if true, CompareValidValue called from audit process.
-     *
-     **/
-    bool CompareValidValue(void *&val1, void *val2, bool audit) {
-      return true;
-    }
+  /**
+   * @brief  Compares the valid value between two database records.
+   *        if both the values are same, update the valid flag for corresponding
+   *        attribute as invalid in the first record.
+   *
+   * @param[in/out]  val1   first record value instance.
+   * @param[in]      val2   second record value instance.
+   * @param[in]      audit  if true, CompareValidValue called from audit process.
+   *
+   **/
+  bool CompareValidValue(void *&val1, void *val2, bool audit) {
+    return true;
+  }
 
-    /**
-     * @Brief  Checks if the specified key type(KT_DHCPRELAY_SERVER) and
-     *         associated attributes are supported on the given controller,
-     *         based on the valid flag
-     *
-     * @param[in]  req               This structure contains IpcReqRespHeader
-     *                               (first 8 fields of input request structure).
-     * @param[in]  ikey              ikey contains key and value structure.
-     * @param[in]  ctrlr_name        Controller name associated with ikey.
-     *
-     * @retval   UPLL_RC_SUCCESS               Validation succeeded.
-     * @retval   UPLL_RC_ERR_GENERIC           Validation failure.
-     * @retval   UPLL_RC_ERR_INVALID_OPTION1   Option1 is not valid.
-     * @retval   UPLL_RC_ERR_INVALID_OPTION2   Option2 is not valid.
-     **/
-    upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                                 const char *ctrlr_name);
+  /**
+   * @Brief  Checks if the specified key type(KT_DHCPRELAY_SERVER) and
+   *         associated attributes are supported on the given controller,
+   *         based on the valid flag
+   *
+   * @param[in]  req               This structure contains IpcReqRespHeader
+   *                               (first 8 fields of input request structure).
+   * @param[in]  ikey              ikey contains key and value structure.
+   * @param[in]  ctrlr_name        Controller name associated with ikey.
+   *
+   * @retval   UPLL_RC_SUCCESS               Validation succeeded.
+   * @retval   UPLL_RC_ERR_GENERIC           Validation failure.
+   * @retval   UPLL_RC_ERR_INVALID_OPTION1   Option1 is not valid.
+   * @retval   UPLL_RC_ERR_INVALID_OPTION2   Option2 is not valid.
+   **/
+  upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *ikey,
+                               const char *ctrlr_name);
 
-    upll_rc_t ValidateAttribute(ConfigKeyVal *kval, 
-                                DalDmlIntf *dmi,
-                                IpcReqRespHeader *req = NULL);
-    /**
-     * @brief  Duplicates the input configkeyval including the key and val.
-     * based on the tbl specified.
-     *
-     * @param[in]  okey   Output Configkeyval - allocated within the function
-     * @param[in]  req    Input ConfigKeyVal to be duplicated.
-     * @param[in]  tbl    specifies if the val structure belongs to the main table/ controller table or rename table.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
-                              MoMgrTables tbl = MAINTBL);
-    /**
-     * @brief  Allocates for the specified val in the given configuration in the     * specified table.
-     *
-     * @param[in]  ck_val   Reference pointer to configval structure allocated.      * @param[in]  dt_type  specifies the configuration candidate/running/state
-     * @param[in]  tbl      specifies if the corresponding table is the  main
-     *                      table / controller table or rename table.
-     *
-     * @retval     UPLL_RC_SUCCESS      Successfull completion.
-     * @retval     UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
-                       MoMgrTables tbl = MAINTBL);
-    /**
-     * @brief      Method to get a configkeyval of a specified keytype from an input configkeyval
-     *
-     * @param[in/out]  okey                 pointer to output ConfigKeyVal
-     * @param[in]      parent_key           pointer to the configkeyval from which the output configkey val is initialized.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     */
-    upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *parent_key);
-    /**
-     * @brief  Allocates for the specified val in the given configuration in the     * specified table.
-     *
-     * @param[in]  ck_val   Reference pointer to configval structure allocated.      * @param[in]  dt_type  specifies the configuration candidate/running/state
-     * @param[in]  tbl      specifies if the corresponding table is the  main
-     *                      table / controller table or rename table.
-     *
-     * @retval     UPLL_RC_SUCCESS      Successfull completion.
-     * @retval     UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *parent_key);
-    /* Rename */
-    bool GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo,
-                              int &nattr, MoMgrTables tbl);
-    upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
-    upll_rc_t IsReferenced(ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
-                           DalDmlIntf *dmi);
-    upll_rc_t IsAdminStatusEnable(ConfigKeyVal *ikey,DalDmlIntf *dmi);
+  upll_rc_t ValidateAttribute(ConfigKeyVal *kval,
+                              DalDmlIntf *dmi,
+                              IpcReqRespHeader *req = NULL);
+  /**
+   * @brief  Duplicates the input configkeyval including the key and val.
+   * based on the tbl specified.
+   *
+   * @param[in]  okey   Output Configkeyval - allocated within the function
+   * @param[in]  req    Input ConfigKeyVal to be duplicated.
+   * @param[in]  tbl    specifies if the val structure belongs to the main table/ controller table or rename table.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
+                            MoMgrTables tbl = MAINTBL);
+  /**
+   * @brief  Allocates for the specified val in the given configuration in the     * specified table.
+   *
+   * @param[in]  ck_val   Reference pointer to configval structure allocated.      * @param[in]  dt_type  specifies the configuration candidate/running/state
+   * @param[in]  tbl      specifies if the corresponding table is the  main
+   *                      table / controller table or rename table.
+   *
+   * @retval     UPLL_RC_SUCCESS      Successfull completion.
+   * @retval     UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
+                     MoMgrTables tbl = MAINTBL);
+  /**
+   * @brief      Method to get a configkeyval of a specified keytype from an input configkeyval
+   *
+   * @param[in/out]  okey                 pointer to output ConfigKeyVal
+   * @param[in]      parent_key           pointer to the configkeyval from which the output configkey val is initialized.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   */
+  upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *parent_key);
+  /**
+   * @brief  Allocates for the specified val in the given configuration in the     * specified table.
+   *
+   * @param[in]  ck_val   Reference pointer to configval structure allocated.      * @param[in]  dt_type  specifies the configuration candidate/running/state
+   * @param[in]  tbl      specifies if the corresponding table is the  main
+   *                      table / controller table or rename table.
+   *
+   * @retval     UPLL_RC_SUCCESS      Successfull completion.
+   * @retval     UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *parent_key);
+  /* Rename */
+  bool GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo,
+                            int &nattr, MoMgrTables tbl);
+  upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
+  upll_rc_t IsReferenced(ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
+                         DalDmlIntf *dmi);
+  upll_rc_t IsAdminStatusEnable(ConfigKeyVal *ikey, DalDmlIntf *dmi);
 
 public:
-    DhcpRelayServerMoMgr();
-    virtual ~DhcpRelayServerMoMgr() {
-      for (int i = 0; i < ntable; i++)
-        if (table[i]) {
-          delete table[i];
-        }
-      delete[] table;
-    }
-    /**
-     * @brief      Method to check if individual portions of a key are valid
-     *
-     * @param[in/out]  ikey                 pointer to ConfigKeyVal referring to a UNC resource
-     * @param[in]      index                db index associated with the variable
-     *
-     * @retval         true                 input key is valid
-     * @retval         false                input key is invalid.
-     **/
-    bool IsValidKey(void *tkey, uint64_t index);
+ public:
+  DhcpRelayServerMoMgr();
+  virtual ~DhcpRelayServerMoMgr() {
+    for (int i = 0; i < ntable; i++)
+      if (table[i]) {
+        delete table[i];
+      }
+    delete[] table;
+  }
+  /**
+   * @brief      Method to check if individual portions of a key are valid
+   *
+   * @param[in/out]  ikey                 pointer to ConfigKeyVal referring to a UNC resource
+   * @param[in]      index                db index associated with the variable
+   *
+   * @retval         true                 input key is valid
+   * @retval         false                input key is invalid.
+   **/
+  bool IsValidKey(void *tkey, uint64_t index);
 
-    upll_rc_t GetVrtDhcpRelayServerAddress(ConfigKeyVal *ikey,
-                                             DalDmlIntf *dmi);
+  upll_rc_t GetVrtDhcpRelayServerAddress(ConfigKeyVal *ikey,
+                                         DalDmlIntf *dmi);
 };
 
 }  // namespace kt_momgr
index 2f78d6019bdb70f0a125b4c35965fbe98c01ae3c..72b8deecb4ffb24bed41815f9b5f1993b464b2aa 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -20,7 +20,7 @@
 #define RENAME_FLOWLIST 0x01
 
 #define GET_VALID_MAINCTRL(tbl, l_val_ctrl_ff, l_val_ff, en) \
-  (tbl == MAINTBL) ? &(l_val_ff->valid[en]) : &(l_val_ctrl_ff->valid[en])
+    (tbl == MAINTBL) ? &(l_val_ff->valid[en]) : &(l_val_ctrl_ff->valid[en])
 using unc::upll::ipc_util::IpcUtil;
 namespace unc {
 namespace upll {
@@ -538,14 +538,17 @@ BindInfo FlowListEntryMoMgr::rename_flowlist_entry_ctrlr_tbl[] = {
     uud::kDalUint8, 1}
 };
 
-bool FlowListEntryMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type,
-    BindInfo *&binfo, int &nattr, MoMgrTables tbl) {
+bool FlowListEntryMoMgr::GetRenameKeyBindInfo(
+    unc_key_type_t key_type,
+    BindInfo *&binfo,
+    int &nattr,
+    MoMgrTables tbl) {
   if (MAINTBL == tbl) {
-     nattr = NUM_FL_KEY_MAIN_COL;
-     binfo = rename_flowlist_entry_main_tbl;
+    nattr = NUM_FL_KEY_MAIN_COL;
+    binfo = rename_flowlist_entry_main_tbl;
   } else if (CTRLRTBL == tbl) {
-     nattr = NUM_FL_KEY_CTRLR_COL;
-     binfo = rename_flowlist_entry_ctrlr_tbl;
+    nattr = NUM_FL_KEY_CTRLR_COL;
+    binfo = rename_flowlist_entry_ctrlr_tbl;
   }
   return PFC_TRUE;
 }
@@ -559,22 +562,26 @@ FlowListEntryMoMgr::FlowListEntryMoMgr() : MoMgrImpl() {
 
   // For Main Table
   table[MAINTBL] = new Table(uudst::kDbiFlowListEntryTbl,
-      UNC_KT_FLOWLIST_ENTRY, flowlistentry_bind_info,
-      IpctSt::kIpcStKeyFlowlistEntry, IpctSt::kIpcStValFlowlistEntry,
-      uudst::flowlist_entry::kDbiFlowListEntryNumCols);
+                             UNC_KT_FLOWLIST_ENTRY,
+                             flowlistentry_bind_info,
+                             IpctSt::kIpcStKeyFlowlistEntry,
+                             IpctSt::kIpcStValFlowlistEntry,
+                             uudst::flowlist_entry::kDbiFlowListEntryNumCols);
 
   // rename table is not used
   table[RENAMETBL] = NULL;
 
   // For Controller Table
-  table[CTRLRTBL] = new Table(uudst::kDbiFlowListEntryCtrlrTbl,
-      UNC_KT_FLOWLIST_ENTRY, flowlistentry_controller_bind_info,
-      IpctSt::kIpcStKeyFlowlistEntry, IpctSt::kIpcInvalidStNum,
+  table[CTRLRTBL] = new Table(
+      uudst::kDbiFlowListEntryCtrlrTbl,
+      UNC_KT_FLOWLIST_ENTRY,
+      flowlistentry_controller_bind_info,
+      IpctSt::kIpcStKeyFlowlistEntry,
+      IpctSt::kIpcInvalidStNum,
       uudst::flowlist_entry_ctrlr::kDbiFlowListEntryCtrlrNumCols);
 
   nchild = 0;
   child = NULL;
-  cur_instance_count = 0;
 }
 
 
@@ -699,14 +706,16 @@ upll_rc_t FlowListEntryMoMgr::GetValid(void *val,
 
 /**
  * @brief     Allocates Memory for the Incoming Pointer to the Class.
- * @param[out] ck_val     This Contains the pointer to the Class for which memory has to be allocated.
+ * @param[out] ck_val     This Contains the pointer to the Class for
+ * which memory has to be allocated.
  * @param[in]  dt_type    Describes Configiration Information.
  * @param[in]  tbl        Describes the Destination table Information.
  * @retval     RT_SUCCESS Successfull completion.
  */
 
 upll_rc_t FlowListEntryMoMgr::AllocVal(ConfigVal *&ck_val,
-    upll_keytype_datatype_t dt_type, MoMgrTables tbl) {
+                                       upll_keytype_datatype_t dt_type,
+                                       MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
   void *val = NULL;
   uint32_t index;
@@ -716,22 +725,22 @@ upll_rc_t FlowListEntryMoMgr::AllocVal(ConfigVal *&ck_val,
   }
 
   switch (tbl) {
-  case MAINTBL:
-    val = ConfigKeyVal::Malloc(sizeof(val_flowlist_entry_t));
+    case MAINTBL:
+      val = ConfigKeyVal::Malloc(sizeof(val_flowlist_entry_t));
       ck_val = new ConfigVal(IpctSt::kIpcStValFlowlistEntry, val);
-    break;
-  case CTRLRTBL:
-    val = ConfigKeyVal::Malloc(sizeof(val_flowlist_entry_ctrl));
+      break;
+    case CTRLRTBL:
+      val = ConfigKeyVal::Malloc(sizeof(val_flowlist_entry_ctrl));
       for (index = UPLL_IDX_MAC_DST_FLE; index <= UPLL_IDX_ICMP_V6_CODE_FLE;
-            index++) {
-          reinterpret_cast<val_flowlist_entry_ctrl *>(val)->valid[index] =
-              UNC_VF_INVALID;
-        }
+           index++) {
+        reinterpret_cast<val_flowlist_entry_ctrl *>(val)->valid[index] =
+            UNC_VF_INVALID;
+      }
       ck_val = new ConfigVal(IpctSt::kIpcInvalidStNum, val);
-    break;
-  default:
-    val = NULL;
-    break;
+      break;
+    default:
+      val = NULL;
+      break;
   }
   if (val == NULL) {
     UPLL_LOG_DEBUG("Failed to allocate memory for val structure");
@@ -744,13 +753,13 @@ upll_rc_t FlowListEntryMoMgr::AllocVal(ConfigVal *&ck_val,
 bool FlowListEntryMoMgr::IsValidKey(void *key, uint64_t index) {
   UPLL_FUNC_TRACE;
   key_flowlist_entry_t *flowlist_entry_key =
-    reinterpret_cast<key_flowlist_entry_t*> (key);
+      reinterpret_cast<key_flowlist_entry_t*> (key);
   upll_rc_t ret_val;
   if (uudst::flowlist_entry::kDbiFlowListName == index) {
     ret_val = ValidateKey(reinterpret_cast<char *>
-        (flowlist_entry_key->flowlist_key.flowlist_name),
-        kMinLenFlowListName,
-        kMaxLenFlowListName);
+                          (flowlist_entry_key->flowlist_key.flowlist_name),
+                          kMinLenFlowListName,
+                          kMaxLenFlowListName);
     if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("FlowList Name is not valid(%d)", ret_val);
       return false;
@@ -758,8 +767,8 @@ bool FlowListEntryMoMgr::IsValidKey(void *key, uint64_t index) {
   }
   if (uudst::flowlist_entry::kDbiSequenceNum == index) {
     if (!ValidateNumericRange(flowlist_entry_key->sequence_num,
-          kMinFlowFilterSeqNum, kMaxFlowFilterSeqNum, true,
-          true)) {
+                              kMinFlowFilterSeqNum, kMaxFlowFilterSeqNum, true,
+                              true)) {
       UPLL_LOG_DEBUG(" Sequence Number syntax validation failed ");
       return false;
     }
@@ -796,7 +805,7 @@ upll_rc_t FlowListEntryMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
   }
 
   if (!pkey) {
-//    if (key_fle) free(key_fle);
+    //    if (key_fle) free(key_fle);
     return UPLL_RC_ERR_GENERIC;
   }
   if (okey) {
@@ -825,7 +834,7 @@ upll_rc_t FlowListEntryMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
           (pkey)->sequence_num;
       break;
     default:
-      if (key_fle) free(key_fle);
+      if ((!okey) || (!okey->get_key())) FREE_IF_NOT_NULL(key_fle);
       return UPLL_RC_ERR_GENERIC;
       break;
   }
@@ -846,12 +855,14 @@ upll_rc_t FlowListEntryMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
 }
 
 upll_rc_t FlowListEntryMoMgr::GetRenamedUncKey(ConfigKeyVal *ctrlr_key,
-    upll_keytype_datatype_t dt_type, DalDmlIntf *dmi, uint8_t *ctrlr_id) {
+                                               upll_keytype_datatype_t dt_type,
+                                               DalDmlIntf *dmi,
+                                               uint8_t *ctrlr_id) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code;
   ConfigKeyVal *unc_key = NULL;
   UPLL_LOG_TRACE("%s GetRenamedUncKey fl_entry start",
-                  ctrlr_key->ToStrAll().c_str());
+                 ctrlr_key->ToStrAll().c_str());
   key_flowlist_entry_t *ctrlr_flowlist_entry_key =
       reinterpret_cast<key_flowlist_entry_t *> (ctrlr_key->get_key());
   if (NULL == ctrlr_flowlist_entry_key) {
@@ -861,20 +872,20 @@ upll_rc_t FlowListEntryMoMgr::GetRenamedUncKey(ConfigKeyVal *ctrlr_key,
   DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutNone };
 
   val_rename_flowlist_t *rename_flowlist =
-  reinterpret_cast<val_rename_flowlist_t *>
-  (ConfigKeyVal::Malloc(sizeof(val_rename_flowlist_t)));
+      reinterpret_cast<val_rename_flowlist_t *>
+      (ConfigKeyVal::Malloc(sizeof(val_rename_flowlist_t)));
   if (!rename_flowlist) {
     UPLL_LOG_TRACE("rename_flowlist NULL");
     return UPLL_RC_ERR_GENERIC;
   }
   uuu::upll_strncpy(rename_flowlist->flowlist_newname,
                     ctrlr_flowlist_entry_key->flowlist_key.flowlist_name,
-           (kMaxLenFlowListName+1));
+                    (kMaxLenFlowListName+1));
   rename_flowlist->valid[UPLL_IDX_RENAME_FLOWLIST_RFL] = UNC_VF_VALID;
 
   FlowListMoMgr *mgr =
-    reinterpret_cast<FlowListMoMgr *>(const_cast<MoManager *>(GetMoManager(
-            UNC_KT_FLOWLIST)));
+      reinterpret_cast<FlowListMoMgr *>(const_cast<MoManager *>(GetMoManager(
+                  UNC_KT_FLOWLIST)));
   if (!mgr) {
     UPLL_LOG_TRACE("mgr failed");
     if (rename_flowlist) free(rename_flowlist);
@@ -895,13 +906,13 @@ upll_rc_t FlowListEntryMoMgr::GetRenamedUncKey(ConfigKeyVal *ctrlr_key,
     return result_code;
   }
   unc_key->AppendCfgVal(IpctSt::kIpcStValRenameFlowlist,
-      rename_flowlist);
+                        rename_flowlist);
 
   UPLL_LOG_DEBUG("ctrlr_id fle (%s)", ctrlr_id);
   SET_USER_DATA_CTRLR(unc_key, ctrlr_id);
 
   result_code = mgr->ReadConfigDB(unc_key, dt_type, UNC_OP_READ, dbop, dmi,
-      RENAMETBL);
+                                  RENAMETBL);
   if (result_code == UPLL_RC_SUCCESS) {
     key_flowlist_entry_t *flowlist_entry =
         reinterpret_cast<key_flowlist_entry_t *> (unc_key->get_key());
@@ -910,16 +921,16 @@ upll_rc_t FlowListEntryMoMgr::GetRenamedUncKey(ConfigKeyVal *ctrlr_key,
                       (kMaxLenFlowListName+1));
   }
   UPLL_LOG_TRACE("%s GetRenamedUncKey fl_entry end",
-                  ctrlr_key->ToStrAll().c_str());
+                 ctrlr_key->ToStrAll().c_str());
   DELETE_IF_NOT_NULL(unc_key);
   mgr = NULL;
   if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)
-     result_code = UPLL_RC_SUCCESS;
+    result_code = UPLL_RC_SUCCESS;
   return result_code;
 }
 
 upll_rc_t FlowListEntryMoMgr::ReadRecord(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey, DalDmlIntf *dmi) {
+                                         ConfigKeyVal *ikey, DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code;
 
@@ -932,54 +943,56 @@ upll_rc_t FlowListEntryMoMgr::ReadRecord(IpcReqRespHeader *req,
 
   DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutNone };
   switch (req->datatype) {
-  // Retrieving config information
-  case UPLL_DT_CANDIDATE:
-  case UPLL_DT_RUNNING:
-  case UPLL_DT_STARTUP:
-  case UPLL_DT_STATE:
-    if (req->operation == UNC_OP_READ) {
-      result_code = ReadConfigDB(ikey, req->datatype, req->operation,
-                                 dbop, dmi, MAINTBL);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG(" ReadConfigDB failed:-%d", result_code);
-        return result_code;
-      }
-    } else {
-      if ((req->operation == UNC_OP_READ_SIBLING_BEGIN) ||
-          (req->operation == UNC_OP_READ_SIBLING)) {
-        dbop.readop = kOpReadMultiple;
-      }
-      result_code = ReadConfigDB(ikey, req->datatype, req->operation,
-                                 dbop, dmi, MAINTBL);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG(" ReadConfigDB failed:-%d", result_code);
-        return result_code;
+    // Retrieving config information
+    case UPLL_DT_CANDIDATE:
+    case UPLL_DT_RUNNING:
+    case UPLL_DT_STARTUP:
+    case UPLL_DT_STATE:
+      if (req->operation == UNC_OP_READ) {
+        result_code = ReadConfigDB(ikey, req->datatype, req->operation,
+                                   dbop, dmi, MAINTBL);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG(" ReadConfigDB failed:-%d", result_code);
+          return result_code;
+        }
+      } else {
+        if ((req->operation == UNC_OP_READ_SIBLING_BEGIN) ||
+            (req->operation == UNC_OP_READ_SIBLING)) {
+          dbop.readop = kOpReadMultiple;
+        }
+        result_code = ReadConfigDB(ikey, req->datatype, req->operation,
+                                   dbop, dmi, MAINTBL);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG(" ReadConfigDB failed:-%d", result_code);
+          return result_code;
+        }
       }
-    }
-    break;
-
-  case UPLL_DT_IMPORT:
-    // Retrieving state information
-    if (req->operation != UNC_OP_READ_SIBLING_COUNT) {
-      result_code = GetRenamedControllerKey(ikey, req->datatype, dmi, NULL);
-      result_code = ReadConfigDB(ikey, req->datatype, req->operation, dbop, dmi,
-          RENAMETBL);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG(" ReadConfigDB failed:-%d", result_code);
-        return result_code;
+      break;
+
+    case UPLL_DT_IMPORT:
+      // Retrieving state information
+      if (req->operation != UNC_OP_READ_SIBLING_COUNT) {
+        result_code = GetRenamedControllerKey(ikey, req->datatype, dmi, NULL);
+        result_code = ReadConfigDB(ikey, req->datatype, req->operation,
+                                   dbop, dmi,
+                                   RENAMETBL);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG(" ReadConfigDB failed:-%d", result_code);
+          return result_code;
+        }
       }
-    }
-    break;
-  default:
-    return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
+      break;
+    default:
+      return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
   }  // end of switch
 
   UPLL_LOG_DEBUG("Read Record Successfull");
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t FlowListEntryMoMgr::ReadMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-    DalDmlIntf *dmi) {
+upll_rc_t FlowListEntryMoMgr::ReadMo(IpcReqRespHeader *req,
+                                     ConfigKeyVal *ikey,
+                                     DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   controller_domain ctrlr_dom;
@@ -998,7 +1011,9 @@ upll_rc_t FlowListEntryMoMgr::ReadMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
 }
 
 upll_rc_t FlowListEntryMoMgr:: ReadSiblingMo(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey, bool begin, DalDmlIntf *dmi) {
+                                             ConfigKeyVal *ikey,
+                                             bool begin,
+                                             DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   controller_domain ctrlr_dom;
@@ -1017,7 +1032,8 @@ upll_rc_t FlowListEntryMoMgr:: ReadSiblingMo(IpcReqRespHeader *req,
 }
 
 upll_rc_t FlowListEntryMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
-    ConfigKeyVal *&req, MoMgrTables tbl) {
+                                              ConfigKeyVal *&req,
+                                              MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
   if (req == NULL) {
     UPLL_LOG_DEBUG("Request is null");
@@ -1042,31 +1058,33 @@ upll_rc_t FlowListEntryMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
       ival = reinterpret_cast<val_flowlist_entry_t *> (GetVal(req));
       if (NULL != ival) {
         val_flowlist_entry_t *flowlist_entry_val =
-                      reinterpret_cast<val_flowlist_entry_t*>
-                     (ConfigKeyVal::Malloc(sizeof(val_flowlist_entry_t)));
+            reinterpret_cast<val_flowlist_entry_t*>
+            (ConfigKeyVal::Malloc(sizeof(val_flowlist_entry_t)));
         memcpy(flowlist_entry_val, ival, sizeof(val_flowlist_entry_t));
         tmp1 = new ConfigVal(IpctSt::kIpcStValFlowlistEntry,
-            flowlist_entry_val);
+                             flowlist_entry_val);
+        if (!tmp1) {
+          FREE_IF_NOT_NULL(flowlist_entry_val);
+          return UPLL_RC_ERR_GENERIC;
+        }
       }
     } else if (tbl == CTRLRTBL) {
       val_flowlist_entry_ctrl_t *ival =
-        reinterpret_cast<val_flowlist_entry_ctrl_t *>(GetVal(req));
-        if (NULL != ival) {
-          val_flowlist_entry_ctrl_t *flowlist_ctrlr_val =
-          reinterpret_cast<val_flowlist_entry_ctrl_t *>
-          (ConfigKeyVal::Malloc(sizeof(val_flowlist_entry_ctrl_t)));
-          memcpy(flowlist_ctrlr_val, ival, sizeof(val_flowlist_entry_ctrl_t));
-          tmp1 = new ConfigVal(IpctSt::kIpcInvalidStNum,
-                               flowlist_ctrlr_val);
+          reinterpret_cast<val_flowlist_entry_ctrl_t *>(GetVal(req));
+      if (NULL != ival) {
+        val_flowlist_entry_ctrl_t *flowlist_ctrlr_val =
+            reinterpret_cast<val_flowlist_entry_ctrl_t *>
+            (ConfigKeyVal::Malloc(sizeof(val_flowlist_entry_ctrl_t)));
+        memcpy(flowlist_ctrlr_val, ival, sizeof(val_flowlist_entry_ctrl_t));
+        tmp1 = new ConfigVal(IpctSt::kIpcInvalidStNum,
+                             flowlist_ctrlr_val);
+        if (!tmp1) {
+          FREE_IF_NOT_NULL(flowlist_ctrlr_val);
+          return UPLL_RC_ERR_GENERIC;
         }
+      }
     }
-
-
-    if (!tmp1) {
-      return UPLL_RC_ERR_GENERIC;
-    }
-
-    tmp1->set_user_data(tmp->get_user_data());
+    if (tmp1) tmp1->set_user_data(tmp->get_user_data());
     // tmp = tmp->get_next_cfg_val();//COVERITY UN UDSED VALUE
   }
   void *tkey = (req)->get_key();
@@ -1074,14 +1092,16 @@ upll_rc_t FlowListEntryMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
   if (tkey != NULL) {
     ikey = reinterpret_cast<key_flowlist_entry_t *> (tkey);
     key_flowlist_entry_t *flowlist_entry =
-                        reinterpret_cast<key_flowlist_entry_t*>
-                        (ConfigKeyVal::Malloc(sizeof(key_flowlist_entry_t)));
+        reinterpret_cast<key_flowlist_entry_t*>
+        (ConfigKeyVal::Malloc(sizeof(key_flowlist_entry_t)));
     memcpy(flowlist_entry, ikey, sizeof(key_flowlist_entry_t));
     okey = new ConfigKeyVal(UNC_KT_FLOWLIST_ENTRY,
-        IpctSt::kIpcStKeyFlowlistEntry, flowlist_entry, tmp1);
+                            IpctSt::kIpcStKeyFlowlistEntry,
+                            flowlist_entry,
+                            tmp1);
     SET_USER_DATA(okey, req)
 
-    UPLL_LOG_DEBUG("DupConfigkeyVal Succesfull.");
+        UPLL_LOG_DEBUG("DupConfigkeyVal Succesfull.");
     return UPLL_RC_SUCCESS;
   }
   delete tmp1;
@@ -1090,13 +1110,16 @@ upll_rc_t FlowListEntryMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
 
 #if 0
 upll_rc_t FlowListEntryMoMgr::UpdateConfigStatus(ConfigKeyVal *key,
-    unc_keytype_operation_t op, uint32_t driver_result, ConfigKeyVal *nreq,
-    DalDmlIntf *dmi, ConfigKeyVal *ctrlr_key) {
+                                                 unc_keytype_operation_t op,
+                                                 uint32_t driver_result,
+                                                 ConfigKeyVal *nreq,
+                                                 DalDmlIntf *dmi,
+                                                 ConfigKeyVal *ctrlr_key) {
   UPLL_FUNC_TRACE;
   // char obj;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   unc_keytype_configstatus_t status = UNC_CS_UNKNOWN,
-      cs_status = UNC_CS_UNKNOWN;
+                             cs_status = UNC_CS_UNKNOWN;
   cs_status = (driver_result == 0) ? UNC_CS_APPLIED : UNC_CS_NOT_APPLIED;
   if ((NULL == ctrlr_key) || (NULL == key)) return UPLL_RC_ERR_GENERIC;
   val_flowlist_entry_t *flowlist_val =
@@ -1108,71 +1131,72 @@ upll_rc_t FlowListEntryMoMgr::UpdateConfigStatus(ConfigKeyVal *key,
     return UPLL_RC_ERR_GENERIC;
   }
   if (op == UNC_OP_CREATE) {
-/*    for (int index = UPLL_IDX_MAC_DST_FLE; index <= UPLL_IDX_ICMP_V6_CODE_FLE;
-        index++) {
-      ctrlr_val_flowlist->valid[index] = UNC_VF_INVALID;
-    }*/
+    /*    for (int index = UPLL_IDX_MAC_DST_FLE; index <= UPLL_IDX_ICMP_V6_CODE_FLE;
+          index++) {
+          ctrlr_val_flowlist->valid[index] = UNC_VF_INVALID;
+          }*/
 
     switch (flowlist_val->cs_row_status) {
-    case UNC_CS_UNKNOWN:
-      status = cs_status;
-      break;
-    case UNC_CS_PARTIALLY_APPLIED:
-      if (ctrlr_val_flowlist->cs_row_status == UNC_CS_NOT_APPLIED) {
-        /* changes need to do */
-      }
-    case UNC_CS_APPLIED:
-    case UNC_CS_NOT_APPLIED:
-    case UNC_CS_INVALID:
-    default:
-      status =
-          (cs_status == UNC_CS_APPLIED) ? UNC_CS_PARTIALLY_APPLIED : status;
-      break;
+      case UNC_CS_UNKNOWN:
+        status = cs_status;
+        break;
+      case UNC_CS_PARTIALLY_APPLIED:
+        if (ctrlr_val_flowlist->cs_row_status == UNC_CS_NOT_APPLIED) {
+          /* changes need to do */
+        }
+      case UNC_CS_APPLIED:
+      case UNC_CS_NOT_APPLIED:
+      case UNC_CS_INVALID:
+      default:
+        status =
+            (cs_status == UNC_CS_APPLIED) ? UNC_CS_PARTIALLY_APPLIED : status;
+        break;
     }
     flowlist_val->cs_row_status = status;
     ctrlr_val_flowlist->cs_row_status = cs_status;
     for ( unsigned int loop = 0;
-          loop < sizeof(flowlist_val->valid)/sizeof(flowlist_val->valid[0]);
-          ++loop ) {
-        // Setting CS to the not supported attributes
-        if ( UNC_VF_NOT_SUPPORTED == flowlist_val->valid[loop] ) {
-          flowlist_val->cs_attr[loop] = UNC_CS_NOT_SUPPORTED;
-          continue;
-        }
-        if ( UNC_VF_NOT_SUPPORTED == ctrlr_val_flowlist->valid[loop] ) {
-          ctrlr_val_flowlist->cs_attr[loop] = UNC_CS_NOT_SUPPORTED;
-          continue;
+         loop < sizeof(flowlist_val->valid)/sizeof(flowlist_val->valid[0]);
+         ++loop ) {
+      // Setting CS to the not supported attributes
+      if ( UNC_VF_NOT_SUPPORTED == flowlist_val->valid[loop] ) {
+        flowlist_val->cs_attr[loop] = UNC_CS_NOT_SUPPORTED;
+        continue;
+      }
+      if ( UNC_VF_NOT_SUPPORTED == ctrlr_val_flowlist->valid[loop] ) {
+        ctrlr_val_flowlist->cs_attr[loop] = UNC_CS_NOT_SUPPORTED;
+        continue;
+      }
+      if ((UNC_VF_VALID == flowlist_val->valid[loop]) ||
+          (UNC_VF_VALID_NO_VALUE == flowlist_val->valid[loop]))
+        if (ctrlr_val_flowlist->valid[loop] != UNC_VF_NOT_SUPPORTED) {
+          ctrlr_val_flowlist->cs_attr[loop] = cs_status;
+          flowlist_val->cs_attr[loop] = (uint8_t)flowlist_val->cs_row_status;
         }
-        if ((UNC_VF_VALID == flowlist_val->valid[loop]) ||
-           (UNC_VF_VALID_NO_VALUE == flowlist_val->valid[loop]))
-          if (ctrlr_val_flowlist->valid[loop] != UNC_VF_NOT_SUPPORTED) {
-            ctrlr_val_flowlist->cs_attr[loop] = cs_status;
-            flowlist_val->cs_attr[loop] = (uint8_t)flowlist_val->cs_row_status;
-          }
     }
 
   } else if (op == UNC_OP_UPDATE) {
     // void *flowlistentryval = NULL;
 
-      void *flowlist_val1 = GetVal(key);
-      void *flowlist_val2 = GetVal(nreq);
-      CompareValidValue(flowlist_val1, flowlist_val2, true);
+    void *flowlist_val1 = GetVal(key);
+    void *flowlist_val2 = GetVal(nreq);
+    CompareValidValue(flowlist_val1, flowlist_val2, true);
     for (unsigned int loop = 0;
-        loop < sizeof(flowlist_val->valid) / sizeof(flowlist_val->valid[0]);
-        ++loop) {
-        if (ctrlr_val_flowlist->valid[loop] != UNC_VF_NOT_SUPPORTED) {
-          ctrlr_val_flowlist->cs_attr[loop] = cs_status;
-        } else {
-          ctrlr_val_flowlist->cs_attr[loop] = UNC_CS_NOT_SUPPORTED;
-        }
-          flowlist_val->cs_attr[loop] = (uint8_t)flowlist_val->cs_row_status;
+         loop < sizeof(flowlist_val->valid) / sizeof(flowlist_val->valid[0]);
+         ++loop) {
+      if (ctrlr_val_flowlist->valid[loop] != UNC_VF_NOT_SUPPORTED) {
+        ctrlr_val_flowlist->cs_attr[loop] = cs_status;
+      } else {
+        ctrlr_val_flowlist->cs_attr[loop] = UNC_CS_NOT_SUPPORTED;
+      }
+      flowlist_val->cs_attr[loop] = (uint8_t)flowlist_val->cs_row_status;
     }
   }
   bool flag_applied = false;
   bool flag_not_applied = false;
   for (unsigned int loop = 0;
-        loop < sizeof(ctrlr_val_flowlist->valid) / sizeof(ctrlr_val_flowlist->valid[0]);
-        ++loop) {
+       loop < sizeof(ctrlr_val_flowlist->valid) /
+       sizeof(ctrlr_val_flowlist->valid[0]);
+       ++loop) {
     if (ctrlr_val_flowlist->cs_attr[loop] == UNC_CS_APPLIED)
       flag_applied = true;
     else if (ctrlr_val_flowlist->cs_attr[loop] == UNC_CS_NOT_APPLIED)
@@ -1199,14 +1223,14 @@ bool FlowListEntryMoMgr::CompareKey(ConfigKeyVal *key1,
                                     ConfigKeyVal *key2) {
   UPLL_FUNC_TRACE;
   key_flowlist_entry_t *flowlist_entry_key1,
-      *flowlist_entry_key2;
+                       *flowlist_entry_key2;
   bool match = false;
   if (key1 == key2) {
     return true;
   }
   if (!key1 || !key2) return false;
   flowlist_entry_key1 =
-    reinterpret_cast<key_flowlist_entry_t *>(key1->get_key());
+      reinterpret_cast<key_flowlist_entry_t *>(key1->get_key());
   flowlist_entry_key2 =
       reinterpret_cast<key_flowlist_entry_t *>(key2->get_key());
   if (flowlist_entry_key1 == flowlist_entry_key2) {
@@ -1217,14 +1241,14 @@ bool FlowListEntryMoMgr::CompareKey(ConfigKeyVal *key1,
     return false;
   }
   if (strcmp(reinterpret_cast<const char *>
-       (flowlist_entry_key1->
-            flowlist_key.flowlist_name),
-       reinterpret_cast<const char *>
-       (flowlist_entry_key2->
-         flowlist_key.flowlist_name)) == 0) {
+             (flowlist_entry_key1->
+              flowlist_key.flowlist_name),
+             reinterpret_cast<const char *>
+             (flowlist_entry_key2->
+              flowlist_key.flowlist_name)) == 0) {
     if (flowlist_entry_key1->sequence_num ==
         flowlist_entry_key2->sequence_num)
-    match = true;
+      match = true;
     UPLL_LOG_DEBUG(" FlowListEntryMoMgr::CompareKey,Both Keys are same");
   }
   return match;
@@ -1245,128 +1269,131 @@ bool FlowListEntryMoMgr::CompareValidValue(void *&val1, void *val2,
   UPLL_FUNC_TRACE;
   bool invalid_attr = true;
   val_flowlist_entry_t *flowlist_entry_val1 =
-    reinterpret_cast<val_flowlist_entry_t *>(val1);
+      reinterpret_cast<val_flowlist_entry_t *>(val1);
 
   val_flowlist_entry_t *flowlist_entry_val2 =
-    reinterpret_cast<val_flowlist_entry_t *>(val2);
+      reinterpret_cast<val_flowlist_entry_t *>(val2);
   if (!flowlist_entry_val1 || !flowlist_entry_val2) {
     return false;
   }
-  for ( unsigned int loop = 0; loop < (sizeof(flowlist_entry_val1->valid)
-                         /(sizeof(flowlist_entry_val1->valid[0])));
-          ++loop ) {
-      if (UNC_VF_INVALID == flowlist_entry_val1->valid[loop] &&
-                  UNC_VF_VALID == flowlist_entry_val2->valid[loop])
-       flowlist_entry_val1->valid[loop] = UNC_VF_VALID_NO_VALUE;
+  for ( unsigned int loop = 0;
+       loop < (sizeof(flowlist_entry_val1->valid)
+               /(sizeof(flowlist_entry_val1->valid[0])));
+       ++loop ) {
+    if (UNC_VF_INVALID == flowlist_entry_val1->valid[loop] &&
+        UNC_VF_VALID == flowlist_entry_val2->valid[loop])
+      flowlist_entry_val1->valid[loop] = UNC_VF_VALID_NO_VALUE;
   }
   if (UNC_VF_VALID == flowlist_entry_val1->valid[UPLL_IDX_MAC_DST_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_MAC_DST_FLE])
     if (!memcmp(flowlist_entry_val1->mac_dst, flowlist_entry_val2->mac_dst,
-        sizeof(flowlist_entry_val2->mac_dst)))
-     flowlist_entry_val1->valid[UPLL_IDX_MAC_DST_FLE] = UNC_VF_INVALID;
+                sizeof(flowlist_entry_val2->mac_dst)))
+      flowlist_entry_val1->valid[UPLL_IDX_MAC_DST_FLE] = UNC_VF_INVALID;
 
   if (UNC_VF_VALID == flowlist_entry_val1->valid[UPLL_IDX_MAC_SRC_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_MAC_SRC_FLE] )
     if (!memcmp(flowlist_entry_val1->mac_src, flowlist_entry_val2->mac_src,
-       sizeof(flowlist_entry_val2->mac_src)))
-     flowlist_entry_val1->valid[UPLL_IDX_MAC_SRC_FLE] = UNC_VF_INVALID;
+                sizeof(flowlist_entry_val2->mac_src)))
+      flowlist_entry_val1->valid[UPLL_IDX_MAC_SRC_FLE] = UNC_VF_INVALID;
 
   if (UNC_VF_VALID == flowlist_entry_val1->valid[UPLL_IDX_MAC_ETH_TYPE_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_MAC_ETH_TYPE_FLE] )
     if (flowlist_entry_val1->mac_eth_type == flowlist_entry_val2->mac_eth_type)
-     flowlist_entry_val1->valid[UPLL_IDX_MAC_ETH_TYPE_FLE] = UNC_VF_INVALID;
+      flowlist_entry_val1->valid[UPLL_IDX_MAC_ETH_TYPE_FLE] = UNC_VF_INVALID;
 
   if (UNC_VF_VALID == flowlist_entry_val1->valid[UPLL_IDX_DST_IP_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_DST_IP_FLE] )
     if (!memcmp(&flowlist_entry_val1->dst_ip,
-               &flowlist_entry_val2->dst_ip,
-               sizeof(flowlist_entry_val2->dst_ip)))
-    flowlist_entry_val1->valid[UPLL_IDX_DST_IP_FLE] = UNC_VF_INVALID;
+                &flowlist_entry_val2->dst_ip,
+                sizeof(flowlist_entry_val2->dst_ip)))
+      flowlist_entry_val1->valid[UPLL_IDX_DST_IP_FLE] = UNC_VF_INVALID;
 
   if (UNC_VF_VALID == flowlist_entry_val1->valid[UPLL_IDX_DST_IP_PREFIX_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_DST_IP_PREFIX_FLE] )
     if (flowlist_entry_val1->dst_ip_prefixlen  ==
-                            flowlist_entry_val2->dst_ip_prefixlen)
-     flowlist_entry_val1->valid[UPLL_IDX_DST_IP_PREFIX_FLE] = UNC_VF_INVALID;
+        flowlist_entry_val2->dst_ip_prefixlen)
+      flowlist_entry_val1->valid[UPLL_IDX_DST_IP_PREFIX_FLE] = UNC_VF_INVALID;
 
 
   if (UNC_VF_VALID == flowlist_entry_val1->valid[UPLL_IDX_SRC_IP_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_SRC_IP_FLE] )
     if (!memcmp(&flowlist_entry_val1->src_ip,
-               &flowlist_entry_val2->src_ip,
-               sizeof(flowlist_entry_val2->src_ip)))
-    flowlist_entry_val1->valid[UPLL_IDX_SRC_IP_FLE] = UNC_VF_INVALID;
+                &flowlist_entry_val2->src_ip,
+                sizeof(flowlist_entry_val2->src_ip)))
+      flowlist_entry_val1->valid[UPLL_IDX_SRC_IP_FLE] = UNC_VF_INVALID;
 
   if (UNC_VF_VALID == flowlist_entry_val1->valid[UPLL_IDX_SRC_IP_PREFIX_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_SRC_IP_PREFIX_FLE] )
     if (flowlist_entry_val1->src_ip_prefixlen  ==
-                            flowlist_entry_val2->src_ip_prefixlen)
-    flowlist_entry_val1->valid[UPLL_IDX_SRC_IP_PREFIX_FLE] = UNC_VF_INVALID;
+        flowlist_entry_val2->src_ip_prefixlen)
+      flowlist_entry_val1->valid[UPLL_IDX_SRC_IP_PREFIX_FLE] = UNC_VF_INVALID;
 
   if (UNC_VF_VALID == flowlist_entry_val1->valid[UPLL_IDX_VLAN_PRIORITY_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_VLAN_PRIORITY_FLE] )
     if (flowlist_entry_val1->vlan_priority  ==
-                                          flowlist_entry_val2->vlan_priority)
-     flowlist_entry_val1->valid[UPLL_IDX_VLAN_PRIORITY_FLE] = UNC_VF_INVALID;
+        flowlist_entry_val2->vlan_priority)
+      flowlist_entry_val1->valid[UPLL_IDX_VLAN_PRIORITY_FLE] = UNC_VF_INVALID;
 
   if (UNC_VF_VALID == flowlist_entry_val1->valid[UPLL_IDX_DST_IP_V6_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_DST_IP_V6_FLE] )
     if (!memcmp(&flowlist_entry_val1->dst_ipv6,
-               &flowlist_entry_val2->dst_ipv6,
-               sizeof(flowlist_entry_val2->dst_ipv6)))
-     flowlist_entry_val1->valid[UPLL_IDX_DST_IP_V6_FLE] = UNC_VF_INVALID;
+                &flowlist_entry_val2->dst_ipv6,
+                sizeof(flowlist_entry_val2->dst_ipv6)))
+      flowlist_entry_val1->valid[UPLL_IDX_DST_IP_V6_FLE] = UNC_VF_INVALID;
 
   if (UNC_VF_VALID ==
       flowlist_entry_val1->valid[UPLL_IDX_DST_IP_V6_PREFIX_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_DST_IP_V6_PREFIX_FLE])
     if (flowlist_entry_val1->dst_ipv6_prefixlen  ==
-                            flowlist_entry_val2->dst_ipv6_prefixlen)
-     flowlist_entry_val1->valid[UPLL_IDX_DST_IP_V6_PREFIX_FLE] = UNC_VF_INVALID;
+        flowlist_entry_val2->dst_ipv6_prefixlen)
+      flowlist_entry_val1->valid[UPLL_IDX_DST_IP_V6_PREFIX_FLE] =
+          UNC_VF_INVALID;
 
   if (UNC_VF_VALID == flowlist_entry_val1->valid[UPLL_IDX_SRC_IP_V6_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_SRC_IP_V6_FLE] )
     if (!memcmp(&flowlist_entry_val1->src_ipv6,
-               &flowlist_entry_val2->src_ipv6,
-               sizeof(flowlist_entry_val2->src_ipv6)))
+                &flowlist_entry_val2->src_ipv6,
+                sizeof(flowlist_entry_val2->src_ipv6)))
       flowlist_entry_val1->valid[UPLL_IDX_SRC_IP_V6_FLE] = UNC_VF_INVALID;
 
   if (UNC_VF_VALID ==
       flowlist_entry_val1->valid[UPLL_IDX_SRC_IP_V6_PREFIX_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_SRC_IP_V6_PREFIX_FLE])
     if (flowlist_entry_val1->src_ipv6_prefixlen  ==
-                            flowlist_entry_val2->src_ipv6_prefixlen)
-     flowlist_entry_val1->valid[UPLL_IDX_SRC_IP_V6_PREFIX_FLE] = UNC_VF_INVALID;
+        flowlist_entry_val2->src_ipv6_prefixlen)
+      flowlist_entry_val1->valid[UPLL_IDX_SRC_IP_V6_PREFIX_FLE] =
+          UNC_VF_INVALID;
 
   if (UNC_VF_VALID == flowlist_entry_val1->valid[UPLL_IDX_IP_PROTOCOL_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_IP_PROTOCOL_FLE] )
     if (flowlist_entry_val1->ip_proto == flowlist_entry_val2->ip_proto)
-     flowlist_entry_val1->valid[UPLL_IDX_IP_PROTOCOL_FLE] = UNC_VF_INVALID;
+      flowlist_entry_val1->valid[UPLL_IDX_IP_PROTOCOL_FLE] = UNC_VF_INVALID;
 
   if (UNC_VF_VALID == flowlist_entry_val1->valid[UPLL_IDX_IP_DSCP_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_IP_DSCP_FLE] )
     if (flowlist_entry_val1->ip_dscp == flowlist_entry_val2->ip_dscp)
-    flowlist_entry_val1->valid[UPLL_IDX_IP_DSCP_FLE] = UNC_VF_INVALID;
+      flowlist_entry_val1->valid[UPLL_IDX_IP_DSCP_FLE] = UNC_VF_INVALID;
 
 
   if (UNC_VF_VALID == flowlist_entry_val1->valid[UPLL_IDX_L4_DST_PORT_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_L4_DST_PORT_FLE] )
     if (flowlist_entry_val1->l4_dst_port == flowlist_entry_val2->l4_dst_port)
-    flowlist_entry_val1->valid[UPLL_IDX_L4_DST_PORT_FLE] =
-    (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+      flowlist_entry_val1->valid[UPLL_IDX_L4_DST_PORT_FLE] =
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
 
   if (UNC_VF_VALID == flowlist_entry_val1->valid[UPLL_IDX_L4_DST_PORT_ENDPT_FLE]
-     && UNC_VF_VALID ==
-        flowlist_entry_val2->valid[UPLL_IDX_L4_DST_PORT_ENDPT_FLE])
+      && UNC_VF_VALID ==
+      flowlist_entry_val2->valid[UPLL_IDX_L4_DST_PORT_ENDPT_FLE])
     if (flowlist_entry_val1->l4_dst_port_endpt ==
-                           flowlist_entry_val2->l4_dst_port_endpt)
+        flowlist_entry_val2->l4_dst_port_endpt)
       flowlist_entry_val1->valid[UPLL_IDX_L4_DST_PORT_ENDPT_FLE] =
-      (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+
   if (UNC_VF_VALID == flowlist_entry_val1->valid[UPLL_IDX_L4_SRC_PORT_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_L4_SRC_PORT_FLE] )
     if (flowlist_entry_val1->l4_src_port == flowlist_entry_val2->l4_src_port)
       flowlist_entry_val1->valid[UPLL_IDX_L4_SRC_PORT_FLE] =
-      (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
 
 
   if (UNC_VF_VALID ==
@@ -1374,9 +1401,9 @@ bool FlowListEntryMoMgr::CompareValidValue(void *&val1, void *val2,
       UNC_VF_VALID ==
       flowlist_entry_val2->valid[UPLL_IDX_L4_SRC_PORT_ENDPT_FLE] )
     if (flowlist_entry_val1->l4_src_port_endpt ==
-                           flowlist_entry_val2->l4_src_port_endpt)
+        flowlist_entry_val2->l4_src_port_endpt)
       flowlist_entry_val1->valid[UPLL_IDX_L4_SRC_PORT_ENDPT_FLE] =
-      (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
 
   if (UNC_VF_VALID == flowlist_entry_val1->valid[UPLL_IDX_ICMP_TYPE_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_ICMP_TYPE_FLE])
@@ -1396,13 +1423,13 @@ bool FlowListEntryMoMgr::CompareValidValue(void *&val1, void *val2,
   if (UNC_VF_VALID == flowlist_entry_val1->valid[UPLL_IDX_ICMP_V6_CODE_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_ICMP_V6_CODE_FLE])
     if (flowlist_entry_val1->icmpv6_code == flowlist_entry_val2->icmpv6_code)
-     flowlist_entry_val1->valid[UPLL_IDX_ICMP_V6_CODE_FLE] = UNC_VF_INVALID;
+      flowlist_entry_val1->valid[UPLL_IDX_ICMP_V6_CODE_FLE] = UNC_VF_INVALID;
 
-   for (unsigned int loop = 0;
-      loop < sizeof(flowlist_entry_val1->valid) / sizeof(uint8_t); ++loop) {
+  for (unsigned int loop = 0;
+       loop < sizeof(flowlist_entry_val1->valid) / sizeof(uint8_t); ++loop) {
     if ((UNC_VF_VALID == (uint8_t) flowlist_entry_val1->valid[loop]) ||
-       (UNC_VF_VALID_NO_VALUE == (uint8_t) flowlist_entry_val1->valid[loop]))
-        invalid_attr = false;
+        (UNC_VF_VALID_NO_VALUE == (uint8_t) flowlist_entry_val1->valid[loop]))
+      invalid_attr = false;
   }
   return invalid_attr;
 }
@@ -1412,132 +1439,135 @@ bool FlowListEntryMoMgr::CompareValidVal(void *&val1, void *val2, void *val3,
   UPLL_FUNC_TRACE;
   bool invalid_attr = true;
   val_flowlist_entry_t *flowlist_entry_val1 =
-    reinterpret_cast<val_flowlist_entry_t *>(val1);
+      reinterpret_cast<val_flowlist_entry_t *>(val1);
 
   val_flowlist_entry_t *flowlist_entry_val2 =
-    reinterpret_cast<val_flowlist_entry_t *>(val2);
+      reinterpret_cast<val_flowlist_entry_t *>(val2);
 
   val_flowlist_entry_t *flowlist_entry_val3 =
-    reinterpret_cast<val_flowlist_entry_t *>(val2);
-
-  if (!flowlist_entry_val1 || !flowlist_entry_val2 || flowlist_entry_val3) {
+      reinterpret_cast<val_flowlist_entry_t *>(val2);
+  // Addressed Coverity DEADCODE
+  if (!flowlist_entry_val1 || !flowlist_entry_val2 || !flowlist_entry_val3) {
     return false;
   }
-  for ( unsigned int loop = 0; loop < (sizeof(flowlist_entry_val1->valid)
-                         /(sizeof(flowlist_entry_val1->valid[0])));
-          ++loop ) {
-      if (UNC_VF_INVALID == flowlist_entry_val1->valid[loop] &&
-                  UNC_VF_VALID == flowlist_entry_val2->valid[loop])
-       flowlist_entry_val1->valid[loop] = UNC_VF_VALID_NO_VALUE;
+  for ( unsigned int loop = 0;
+       loop < (sizeof(flowlist_entry_val1->valid)
+               /(sizeof(flowlist_entry_val1->valid[0])));
+       ++loop ) {
+    if (UNC_VF_INVALID == flowlist_entry_val1->valid[loop] &&
+        UNC_VF_VALID == flowlist_entry_val2->valid[loop])
+      flowlist_entry_val1->valid[loop] = UNC_VF_VALID_NO_VALUE;
   }
   if (UNC_VF_VALID == flowlist_entry_val1->valid[UPLL_IDX_MAC_DST_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_MAC_DST_FLE])
     if (!memcmp(flowlist_entry_val3->mac_dst, flowlist_entry_val2->mac_dst,
-        sizeof(flowlist_entry_val2->mac_dst)))
-     flowlist_entry_val1->valid[UPLL_IDX_MAC_DST_FLE] = UNC_VF_INVALID;
+                sizeof(flowlist_entry_val2->mac_dst)))
+      flowlist_entry_val1->valid[UPLL_IDX_MAC_DST_FLE] = UNC_VF_INVALID;
 
   if (UNC_VF_VALID == flowlist_entry_val1->valid[UPLL_IDX_MAC_SRC_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_MAC_SRC_FLE] )
     if (!memcmp(flowlist_entry_val3->mac_src, flowlist_entry_val2->mac_src,
-       sizeof(flowlist_entry_val2->mac_src)))
-     flowlist_entry_val1->valid[UPLL_IDX_MAC_SRC_FLE] = UNC_VF_INVALID;
+                sizeof(flowlist_entry_val2->mac_src)))
+      flowlist_entry_val1->valid[UPLL_IDX_MAC_SRC_FLE] = UNC_VF_INVALID;
 
   if (UNC_VF_VALID == flowlist_entry_val1->valid[UPLL_IDX_MAC_ETH_TYPE_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_MAC_ETH_TYPE_FLE] )
     if (flowlist_entry_val3->mac_eth_type == flowlist_entry_val2->mac_eth_type)
-     flowlist_entry_val1->valid[UPLL_IDX_MAC_ETH_TYPE_FLE] = UNC_VF_INVALID;
+      flowlist_entry_val1->valid[UPLL_IDX_MAC_ETH_TYPE_FLE] = UNC_VF_INVALID;
 
   if (UNC_VF_VALID == flowlist_entry_val1->valid[UPLL_IDX_DST_IP_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_DST_IP_FLE] )
     if (!memcmp(&flowlist_entry_val3->dst_ip,
-               &flowlist_entry_val2->dst_ip,
-               sizeof(flowlist_entry_val2->dst_ip)))
-    flowlist_entry_val1->valid[UPLL_IDX_DST_IP_FLE] = UNC_VF_INVALID;
+                &flowlist_entry_val2->dst_ip,
+                sizeof(flowlist_entry_val2->dst_ip)))
+      flowlist_entry_val1->valid[UPLL_IDX_DST_IP_FLE] = UNC_VF_INVALID;
 
   if (UNC_VF_VALID == flowlist_entry_val1->valid[UPLL_IDX_DST_IP_PREFIX_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_DST_IP_PREFIX_FLE] )
     if (flowlist_entry_val3->dst_ip_prefixlen  ==
-                            flowlist_entry_val2->dst_ip_prefixlen)
-     flowlist_entry_val1->valid[UPLL_IDX_DST_IP_PREFIX_FLE] = UNC_VF_INVALID;
+        flowlist_entry_val2->dst_ip_prefixlen)
+      flowlist_entry_val1->valid[UPLL_IDX_DST_IP_PREFIX_FLE] = UNC_VF_INVALID;
 
 
   if (UNC_VF_VALID == flowlist_entry_val1->valid[UPLL_IDX_SRC_IP_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_SRC_IP_FLE] )
     if (!memcmp(&flowlist_entry_val3->src_ip,
-               &flowlist_entry_val2->src_ip,
-               sizeof(flowlist_entry_val2->src_ip)))
-    flowlist_entry_val1->valid[UPLL_IDX_SRC_IP_FLE] = UNC_VF_INVALID;
+                &flowlist_entry_val2->src_ip,
+                sizeof(flowlist_entry_val2->src_ip)))
+      flowlist_entry_val1->valid[UPLL_IDX_SRC_IP_FLE] = UNC_VF_INVALID;
 
   if (UNC_VF_VALID == flowlist_entry_val1->valid[UPLL_IDX_SRC_IP_PREFIX_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_SRC_IP_PREFIX_FLE] )
     if (flowlist_entry_val3->src_ip_prefixlen  ==
-                            flowlist_entry_val2->src_ip_prefixlen)
-    flowlist_entry_val1->valid[UPLL_IDX_SRC_IP_PREFIX_FLE] = UNC_VF_INVALID;
+        flowlist_entry_val2->src_ip_prefixlen)
+      flowlist_entry_val1->valid[UPLL_IDX_SRC_IP_PREFIX_FLE] = UNC_VF_INVALID;
 
   if (UNC_VF_VALID == flowlist_entry_val1->valid[UPLL_IDX_VLAN_PRIORITY_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_VLAN_PRIORITY_FLE] )
     if (flowlist_entry_val3->vlan_priority  ==
-                                          flowlist_entry_val2->vlan_priority)
-     flowlist_entry_val1->valid[UPLL_IDX_VLAN_PRIORITY_FLE] = UNC_VF_INVALID;
+        flowlist_entry_val2->vlan_priority)
+      flowlist_entry_val1->valid[UPLL_IDX_VLAN_PRIORITY_FLE] = UNC_VF_INVALID;
 
   if (UNC_VF_VALID == flowlist_entry_val1->valid[UPLL_IDX_DST_IP_V6_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_DST_IP_V6_FLE] )
     if (!memcmp(&flowlist_entry_val3->dst_ipv6,
-               &flowlist_entry_val2->dst_ipv6,
-               sizeof(flowlist_entry_val2->dst_ipv6)))
-     flowlist_entry_val1->valid[UPLL_IDX_DST_IP_V6_FLE] = UNC_VF_INVALID;
+                &flowlist_entry_val2->dst_ipv6,
+                sizeof(flowlist_entry_val2->dst_ipv6)))
+      flowlist_entry_val1->valid[UPLL_IDX_DST_IP_V6_FLE] = UNC_VF_INVALID;
 
   if (UNC_VF_VALID ==
       flowlist_entry_val1->valid[UPLL_IDX_DST_IP_V6_PREFIX_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_DST_IP_V6_PREFIX_FLE])
     if (flowlist_entry_val3->dst_ipv6_prefixlen  ==
-                            flowlist_entry_val2->dst_ipv6_prefixlen)
-     flowlist_entry_val1->valid[UPLL_IDX_DST_IP_V6_PREFIX_FLE] = UNC_VF_INVALID;
+        flowlist_entry_val2->dst_ipv6_prefixlen)
+      flowlist_entry_val1->valid[UPLL_IDX_DST_IP_V6_PREFIX_FLE] =
+          UNC_VF_INVALID;
 
   if (UNC_VF_VALID == flowlist_entry_val1->valid[UPLL_IDX_SRC_IP_V6_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_SRC_IP_V6_FLE] )
     if (!memcmp(&flowlist_entry_val3->src_ipv6,
-               &flowlist_entry_val2->src_ipv6,
-               sizeof(flowlist_entry_val2->src_ipv6)))
+                &flowlist_entry_val2->src_ipv6,
+                sizeof(flowlist_entry_val2->src_ipv6)))
       flowlist_entry_val1->valid[UPLL_IDX_SRC_IP_V6_FLE] = UNC_VF_INVALID;
 
   if (UNC_VF_VALID ==
       flowlist_entry_val1->valid[UPLL_IDX_SRC_IP_V6_PREFIX_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_SRC_IP_V6_PREFIX_FLE])
     if (flowlist_entry_val3->src_ipv6_prefixlen  ==
-                            flowlist_entry_val2->src_ipv6_prefixlen)
-     flowlist_entry_val1->valid[UPLL_IDX_SRC_IP_V6_PREFIX_FLE] = UNC_VF_INVALID;
+        flowlist_entry_val2->src_ipv6_prefixlen)
+      flowlist_entry_val1->valid[UPLL_IDX_SRC_IP_V6_PREFIX_FLE] =
+          UNC_VF_INVALID;
 
   if (UNC_VF_VALID == flowlist_entry_val1->valid[UPLL_IDX_IP_PROTOCOL_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_IP_PROTOCOL_FLE] )
     if (flowlist_entry_val3->ip_proto == flowlist_entry_val2->ip_proto)
-     flowlist_entry_val1->valid[UPLL_IDX_IP_PROTOCOL_FLE] = UNC_VF_INVALID;
+      flowlist_entry_val1->valid[UPLL_IDX_IP_PROTOCOL_FLE] = UNC_VF_INVALID;
 
   if (UNC_VF_VALID == flowlist_entry_val1->valid[UPLL_IDX_IP_DSCP_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_IP_DSCP_FLE] )
     if (flowlist_entry_val3->ip_dscp == flowlist_entry_val2->ip_dscp)
-    flowlist_entry_val1->valid[UPLL_IDX_IP_DSCP_FLE] = UNC_VF_INVALID;
+      flowlist_entry_val1->valid[UPLL_IDX_IP_DSCP_FLE] = UNC_VF_INVALID;
 
 
   if (UNC_VF_VALID == flowlist_entry_val1->valid[UPLL_IDX_L4_DST_PORT_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_L4_DST_PORT_FLE] )
     if (flowlist_entry_val3->l4_dst_port == flowlist_entry_val2->l4_dst_port)
-    flowlist_entry_val1->valid[UPLL_IDX_L4_DST_PORT_FLE] =
-    (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+      flowlist_entry_val1->valid[UPLL_IDX_L4_DST_PORT_FLE] =
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
 
   if (UNC_VF_VALID == flowlist_entry_val1->valid[UPLL_IDX_L4_DST_PORT_ENDPT_FLE]
-     && UNC_VF_VALID ==
-        flowlist_entry_val2->valid[UPLL_IDX_L4_DST_PORT_ENDPT_FLE])
+      && UNC_VF_VALID ==
+      flowlist_entry_val2->valid[UPLL_IDX_L4_DST_PORT_ENDPT_FLE])
     if (flowlist_entry_val3->l4_dst_port_endpt ==
-                           flowlist_entry_val2->l4_dst_port_endpt)
+        flowlist_entry_val2->l4_dst_port_endpt)
       flowlist_entry_val1->valid[UPLL_IDX_L4_DST_PORT_ENDPT_FLE] =
-      (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+
   if (UNC_VF_VALID == flowlist_entry_val1->valid[UPLL_IDX_L4_SRC_PORT_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_L4_SRC_PORT_FLE] )
     if (flowlist_entry_val3->l4_src_port == flowlist_entry_val2->l4_src_port)
       flowlist_entry_val1->valid[UPLL_IDX_L4_SRC_PORT_FLE] =
-      (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
 
 
   if (UNC_VF_VALID ==
@@ -1545,9 +1575,9 @@ bool FlowListEntryMoMgr::CompareValidVal(void *&val1, void *val2, void *val3,
       UNC_VF_VALID ==
       flowlist_entry_val2->valid[UPLL_IDX_L4_SRC_PORT_ENDPT_FLE] )
     if (flowlist_entry_val3->l4_src_port_endpt ==
-                           flowlist_entry_val2->l4_src_port_endpt)
+        flowlist_entry_val2->l4_src_port_endpt)
       flowlist_entry_val1->valid[UPLL_IDX_L4_SRC_PORT_ENDPT_FLE] =
-      (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
 
   if (UNC_VF_VALID == flowlist_entry_val1->valid[UPLL_IDX_ICMP_TYPE_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_ICMP_TYPE_FLE])
@@ -1567,26 +1597,26 @@ bool FlowListEntryMoMgr::CompareValidVal(void *&val1, void *val2, void *val3,
   if (UNC_VF_VALID == flowlist_entry_val1->valid[UPLL_IDX_ICMP_V6_CODE_FLE] &&
       UNC_VF_VALID == flowlist_entry_val2->valid[UPLL_IDX_ICMP_V6_CODE_FLE])
     if (flowlist_entry_val3->icmpv6_code == flowlist_entry_val2->icmpv6_code)
-     flowlist_entry_val1->valid[UPLL_IDX_ICMP_V6_CODE_FLE] = UNC_VF_INVALID;
+      flowlist_entry_val1->valid[UPLL_IDX_ICMP_V6_CODE_FLE] = UNC_VF_INVALID;
 
-   for (unsigned int loop = 0;
-      loop < sizeof(flowlist_entry_val1->valid) / sizeof(uint8_t); ++loop) {
+  for (unsigned int loop = 0;
+       loop < sizeof(flowlist_entry_val1->valid) / sizeof(uint8_t); ++loop) {
     if ((UNC_VF_VALID == (uint8_t) flowlist_entry_val1->valid[loop]) ||
-       (UNC_VF_VALID_NO_VALUE == (uint8_t) flowlist_entry_val1->valid[loop]))
-        invalid_attr = false;
+        (UNC_VF_VALID_NO_VALUE == (uint8_t) flowlist_entry_val1->valid[loop]))
+      invalid_attr = false;
   }
   return invalid_attr;
 }
 
 upll_rc_t FlowListEntryMoMgr::MergeValidate(unc_key_type_t keytype,
-    const char *ctrlr_id,
-    ConfigKeyVal *ikey,
-    DalDmlIntf *dmi) {
+                                            const char *ctrlr_id,
+                                            ConfigKeyVal *ikey,
+                                            DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   MoMgrImpl *mgr =
-    reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-            UNC_KT_FLOWLIST)));
+      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                  UNC_KT_FLOWLIST)));
   if (!mgr) {
     UPLL_LOG_DEBUG("Invalid mgr param");
     return UPLL_RC_ERR_GENERIC;
@@ -1598,7 +1628,9 @@ upll_rc_t FlowListEntryMoMgr::MergeValidate(unc_key_type_t keytype,
 }
 
 upll_rc_t FlowListEntryMoMgr::RenameMo(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey, DalDmlIntf *dmi, const char *ctrlr_id) {
+                                       ConfigKeyVal *ikey,
+                                       DalDmlIntf *dmi,
+                                       const char *ctrlr_id) {
   UPLL_FUNC_TRACE;
   UPLL_LOG_DEBUG(" FlowListEntryMoMgr::Rename Not required:: successful ");
   return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT;
@@ -1614,7 +1646,8 @@ upll_rc_t FlowListEntryMoMgr::RenameMo(IpcReqRespHeader *req,
  *                            DalDmlIntf *dmi);
  */
 upll_rc_t FlowListEntryMoMgr::IsReferenced(ConfigKeyVal *ikey,
-    upll_keytype_datatype_t dt_type, DalDmlIntf *dmi) {
+                                           upll_keytype_datatype_t dt_type,
+                                           DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   // int refcount = 0;
@@ -1625,15 +1658,17 @@ upll_rc_t FlowListEntryMoMgr::IsReferenced(ConfigKeyVal *ikey,
     return UPLL_RC_ERR_CFG_SEMANTIC;
   }
   key_flowlist_entry_t *key_fle = reinterpret_cast
-    <key_flowlist_entry_t *>(ikey->get_key());
+      <key_flowlist_entry_t *>(ikey->get_key());
   PolicingProfileEntryMoMgr *mgr =
-    reinterpret_cast<PolicingProfileEntryMoMgr *>(const_cast<MoManager *>
-    (GetMoManager(UNC_KT_POLICING_PROFILE_ENTRY)));
+      reinterpret_cast<PolicingProfileEntryMoMgr *>(
+          const_cast<MoManager *>
+          (GetMoManager(UNC_KT_POLICING_PROFILE_ENTRY)));
   if (NULL == mgr) {
     return UPLL_RC_ERR_GENERIC;
   }
   result_code = mgr->IsFlowListMatched(reinterpret_cast<const char *>
-    (key_fle->flowlist_key.flowlist_name), UPLL_DT_CANDIDATE, dmi);
+                                       (key_fle->flowlist_key.flowlist_name),
+                                       UPLL_DT_CANDIDATE, dmi);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("IsFlowListMatched failed from ppe %d", result_code);
   }
@@ -1645,7 +1680,7 @@ upll_rc_t FlowListEntryMoMgr::GetFlowListKeyVal(
   UPLL_FUNC_TRACE;
 
   key_flowlist_entry_t *key_flowlist_entry =
-    reinterpret_cast<key_flowlist_entry_t *>(ikey->get_key());
+      reinterpret_cast<key_flowlist_entry_t *>(ikey->get_key());
 
   if (NULL == key_flowlist_entry) {
     UPLL_LOG_DEBUG("Invalid key");
@@ -1653,118 +1688,114 @@ upll_rc_t FlowListEntryMoMgr::GetFlowListKeyVal(
   }
 
   key_flowlist_t *key_flowlist =
-    reinterpret_cast<key_flowlist_t *>(ConfigKeyVal::Malloc(
-          sizeof(key_flowlist_t)));
+      reinterpret_cast<key_flowlist_t *>(ConfigKeyVal::Malloc(
+              sizeof(key_flowlist_t)));
   uuu::upll_strncpy(
       key_flowlist->flowlist_name, key_flowlist_entry->
       flowlist_key.flowlist_name, kMaxLenFlowListName + 1);
 
   okey = new ConfigKeyVal(UNC_KT_FLOWLIST,
-      IpctSt::kIpcStKeyFlowlist, key_flowlist,
-      NULL);
-
-  if (!okey) return UPLL_RC_ERR_GENERIC;
+                          IpctSt::kIpcStKeyFlowlist, key_flowlist,
+                          NULL);
 
+  if (!okey) {
+    FREE_IF_NOT_NULL(key_flowlist);
+    return UPLL_RC_ERR_GENERIC;
+  }
   UPLL_LOG_DEBUG("GetObjectConfigVal Successfull");
   return UPLL_RC_SUCCESS;
 }
 
 
-upll_rc_t FlowListEntryMoMgr::GetRenamedControllerKey(ConfigKeyVal *ikey,
-    upll_keytype_datatype_t dt_type, DalDmlIntf *dmi,
+upll_rc_t FlowListEntryMoMgr::GetRenamedControllerKey(
+    ConfigKeyVal *ikey,
+    upll_keytype_datatype_t dt_type,
+    DalDmlIntf *dmi,
     controller_domain *ctrlr_dom) {
   UPLL_FUNC_TRACE;
   ConfigKeyVal *okey = NULL;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
 
-  if (NULL == ctrlr_dom) {
-    UPLL_LOG_DEBUG("ctrlr_dom is NULL");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  uint8_t *ctrlr_name = ctrlr_dom->ctrlr;
-
-  uint8_t rename = 0;
-  if (ctrlr_name == NULL) {
-    UPLL_LOG_DEBUG("Controller Name is Not Valid");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  IsRenamed(ikey, dt_type, dmi, rename);
-  if (!rename)
-    return UPLL_RC_SUCCESS;
   /* Flowlist is  renamed */
-  if (rename & RENAME_FLOWLIST) {
-    UPLL_LOG_DEBUG("flow list renamed");
-    MoMgrImpl *mgr =
+  UPLL_LOG_DEBUG("flow list renamed");
+  MoMgrImpl *mgr =
       reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-          UNC_KT_FLOWLIST)));
+                  UNC_KT_FLOWLIST)));
 
-    result_code = mgr->GetChildConfigKey(okey, NULL);
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("GetChildConfigKey fail (%d)", result_code);
-      return UPLL_RC_ERR_GENERIC;
-    }
+  result_code = mgr->GetChildConfigKey(okey, NULL);
+  if (UPLL_RC_SUCCESS != result_code) {
+    UPLL_LOG_DEBUG("GetChildConfigKey fail (%d)", result_code);
+    return UPLL_RC_ERR_GENERIC;
+  }
 
-    if (ctrlr_dom != NULL)
+  if (ctrlr_dom != NULL) {
     SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
+  } else {
+    UPLL_LOG_DEBUG("Controller id is null");
+    DELETE_IF_NOT_NULL(okey);
+    return UPLL_RC_ERR_GENERIC;
+  }
 
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
+  UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
+                 ctrlr_dom->domain);
 
-    uuu::upll_strncpy(
-     reinterpret_cast<key_flowlist_t *>(okey->get_key())->flowlist_name,
-     reinterpret_cast <key_flowlist_entry *>
-     (ikey->get_key())->flowlist_key.flowlist_name,
-     (kMaxLenFlowListName + 1));
+  uuu::upll_strncpy(
+      reinterpret_cast<key_flowlist_t *>(okey->get_key())->flowlist_name,
+      reinterpret_cast <key_flowlist_entry *>
+      (ikey->get_key())->flowlist_key.flowlist_name,
+      (kMaxLenFlowListName + 1));
 
-    UPLL_LOG_DEBUG("flowlist name (%s) (%s)",
-     reinterpret_cast<key_flowlist_t *>(okey->get_key())->flowlist_name,
-     reinterpret_cast <key_flowlist_entry *>
-     (ikey->get_key())->flowlist_key.flowlist_name);
+  UPLL_LOG_DEBUG("flowlist name (%s) (%s)",
+                 reinterpret_cast<key_flowlist_t *>
+                 (okey->get_key())->flowlist_name,
+                 reinterpret_cast <key_flowlist_entry *>
+                 (ikey->get_key())->flowlist_key.flowlist_name);
 
-    DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutFlag };
+  DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutFlag };
 
-    result_code = mgr->ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop, dmi, RENAMETBL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-        UPLL_LOG_DEBUG("ReadConfigDB no instance");
-        DELETE_IF_NOT_NULL(okey);
-        return UPLL_RC_SUCCESS;
-      }
-      UPLL_LOG_DEBUG("ReadConfigDB failed (%d)", result_code);
+  result_code = mgr->ReadConfigDB(okey, dt_type, UNC_OP_READ,
+                                  dbop, dmi, RENAMETBL);
+  if (result_code != UPLL_RC_SUCCESS) {
+    if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+      UPLL_LOG_DEBUG("ReadConfigDB no instance");
       DELETE_IF_NOT_NULL(okey);
-      return result_code;
+      return UPLL_RC_SUCCESS;
     }
+    UPLL_LOG_DEBUG("ReadConfigDB failed (%d)", result_code);
+    DELETE_IF_NOT_NULL(okey);
+    return result_code;
+  }
 
-    val_rename_flowlist_t *rename_val = NULL;
-    rename_val = reinterpret_cast<val_rename_flowlist_t *> (GetVal(okey));
-    if (!rename_val) {
-      UPLL_LOG_DEBUG("FlowList Name is not valid");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
+  val_rename_flowlist_t *rename_val = NULL;
+  rename_val = reinterpret_cast<val_rename_flowlist_t *> (GetVal(okey));
+  if (!rename_val) {
+    UPLL_LOG_DEBUG("FlowList Name is not valid");
+    DELETE_IF_NOT_NULL(okey);
+    return UPLL_RC_ERR_GENERIC;
+  }
 
-  key_flowlist_entry *key = reinterpret_cast<key_flowlist_entry *>(ikey->get_key());
+  key_flowlist_entry *key =
+      reinterpret_cast<key_flowlist_entry *>(ikey->get_key());
   uuu::upll_strncpy(key->flowlist_key.flowlist_name,
-                      rename_val->flowlist_newname,
-                      (kMaxLenFlowListName+1));
-    UPLL_LOG_DEBUG("flowlist re name (%s) (%s)",
-           key->flowlist_key.flowlist_name,
-           rename_val->flowlist_newname);
+                    rename_val->flowlist_newname,
+                    (kMaxLenFlowListName+1));
+  UPLL_LOG_DEBUG("flowlist re name (%s) (%s)",
+                 key->flowlist_key.flowlist_name,
+                 rename_val->flowlist_newname);
+
+  DELETE_IF_NOT_NULL(okey);
 
-    DELETE_IF_NOT_NULL(okey);
-  }
-  
   UPLL_LOG_DEBUG("GetRenamedControllerKey is Successfull");
   return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t FlowListEntryMoMgr::GetControllerSpan(ConfigKeyVal *ikey,
-                                        upll_keytype_datatype_t dt_type,
-                                        DalDmlIntf *dmi) {
+                                                upll_keytype_datatype_t dt_type,
+                                                DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code;
   DbSubOp dbop = {kOpReadExist|kOpReadMultiple, kOpMatchNone,
-                  kOpInOutCtrlr};
+    kOpInOutCtrlr};
 
   result_code = ReadConfigDB(ikey, dt_type, UNC_OP_READ, dbop, dmi, CTRLRTBL);
   return result_code;
@@ -1774,11 +1805,15 @@ upll_rc_t FlowListEntryMoMgr::TxUpdateProcess(ConfigKeyVal *ck_main,
                                               IpcResponse *ipc_resp,
                                               unc_keytype_operation_t op,
                                               DalDmlIntf *dmi,
-                                              controller_domain *ctrlr_dom) {
+                                              controller_domain *ctrlr_dom,
+                                              set<string> *affected_ctrlr_set,
+                                              bool *driver_resp) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code;
   /* read from main table */
-  ConfigKeyVal *dup_ckmain = ck_main;
+  ConfigKeyVal *dup_ckmain  = NULL;
+  if (ck_main != NULL)
+    dup_ckmain = ck_main;
   if (op == UNC_OP_CREATE) {
     dup_ckmain = NULL;
     result_code = GetChildConfigKey(dup_ckmain, ck_main);
@@ -1792,11 +1827,12 @@ upll_rc_t FlowListEntryMoMgr::TxUpdateProcess(ConfigKeyVal *ck_main,
                                UNC_OP_READ, dbop, dmi, MAINTBL);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("%s Flowlist read failed %d",
-                      (dup_ckmain->ToStrAll()).c_str(), result_code);
-      delete dup_ckmain;
+                     (dup_ckmain->ToStrAll()).c_str(), result_code);
+      if (dup_ckmain) delete dup_ckmain;
       return result_code;
     }
   }
+  if (!dup_ckmain) return UPLL_RC_ERR_GENERIC;
   /* Get renamed key if key is renamed */
   result_code =  GetRenamedControllerKey(dup_ckmain, UPLL_DT_CANDIDATE,
                                          dmi, ctrlr_dom);
@@ -1809,27 +1845,31 @@ upll_rc_t FlowListEntryMoMgr::TxUpdateProcess(ConfigKeyVal *ck_main,
   result_code = SendIpcReq(ipc_resp->header.clnt_sess_id,
                            ipc_resp->header.config_id, op,
                            UPLL_DT_CANDIDATE, dup_ckmain, ctrlr_dom, ipc_resp);
-  if (result_code == UPLL_RC_ERR_RESOURCE_DISCONNECTED) {
+  if (result_code == UPLL_RC_ERR_CTR_DISCONNECTED) {
     UPLL_LOG_DEBUG("Controller disconnected");
     result_code = UPLL_RC_SUCCESS;
   }
   if (result_code != UPLL_RC_SUCCESS) {
+    *driver_resp = true;
     UPLL_LOG_DEBUG("IpcSend failed %d", result_code);
   }
+  affected_ctrlr_set->insert((const char *)ctrlr_dom->ctrlr);
   if ((op == UNC_OP_CREATE) && dup_ckmain) {
     delete dup_ckmain;
     dup_ckmain = NULL;
   }
-  return result_code;
+  UPLL_LOG_TRACE("Driver response received %d", *driver_resp)
+      return result_code;
 }
 
-upll_rc_t FlowListEntryMoMgr::TxUpdateController(unc_key_type_t keytype,
-                                                uint32_t session_id,
-                                                uint32_t config_id,
-                                                uuc::UpdateCtrlrPhase phase,
-                                                set<string> *affected_ctrlr_set,
-                                                DalDmlIntf *dmi,
-                                                ConfigKeyVal **err_ckv) {
+upll_rc_t FlowListEntryMoMgr::TxUpdateController(
+    unc_key_type_t keytype,
+    uint32_t session_id,
+    uint32_t config_id,
+    uuc::UpdateCtrlrPhase phase,
+    set<string> *affected_ctrlr_set,
+    DalDmlIntf *dmi,
+    ConfigKeyVal **err_ckv) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   DalResultCode dal_result = uud::kDalRcSuccess;
@@ -1867,28 +1907,43 @@ upll_rc_t FlowListEntryMoMgr::TxUpdateController(unc_key_type_t keytype,
     if (result_code != UPLL_RC_SUCCESS)
       break;
     ck_main = NULL;
+    bool driver_resp = false;
     if ( (op == UNC_OP_CREATE) || (op == UNC_OP_DELETE) ) {
       result_code = GetChildConfigKey(ck_main, req);
-      if (result_code != UPLL_RC_SUCCESS)
+      if (result_code != UPLL_RC_SUCCESS) {
+        DELETE_IF_NOT_NULL(nreq);
+        DELETE_IF_NOT_NULL(req);
+        if (dal_cursor_handle) {
+          dmi->CloseCursor(dal_cursor_handle, true);
+          dal_cursor_handle = NULL;
+        }
         return result_code;
-
+      }
       GET_USER_DATA_CTRLR_DOMAIN(req, ctrlr_dom);
       UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom.ctrlr,
                      ctrlr_dom.domain);
       if (ctrlr_dom.ctrlr == NULL) {
         UPLL_LOG_DEBUG("Invalid controller");
-        if (ck_main) delete ck_main;
+        DELETE_IF_NOT_NULL(ck_main);
+        DELETE_IF_NOT_NULL(nreq);
+        DELETE_IF_NOT_NULL(req);
+        if (dal_cursor_handle) {
+          dmi->CloseCursor(dal_cursor_handle, true);
+          dal_cursor_handle = NULL;
+        }
         return UPLL_RC_ERR_GENERIC;
       }
+
       result_code = TxUpdateProcess(ck_main, &resp,
-                                    op, dmi, &ctrlr_dom);
-      affected_ctrlr_set->insert((const char *)ctrlr_dom.ctrlr);
-      if (result_code != UPLL_RC_SUCCESS) {
+                                    op, dmi, &ctrlr_dom,
+                                    affected_ctrlr_set,
+                                    &driver_resp);
+      if (result_code != UPLL_RC_SUCCESS && driver_resp) {
         UPLL_LOG_DEBUG("TxUpdateProcess Returns error %d", result_code);
         upll_keytype_datatype_t dt_type = (UNC_OP_DELETE == op)?
             UPLL_DT_RUNNING:UPLL_DT_CANDIDATE;
         upll_rc_t local_rc = GetRenamedUncKey(resp.ckv_data, dt_type, dmi,
-                                       ctrlr_dom.ctrlr);
+                                              ctrlr_dom.ctrlr);
         if (UPLL_RC_SUCCESS != local_rc &&
             UPLL_RC_ERR_NO_SUCH_INSTANCE != local_rc) {
           UPLL_LOG_DEBUG("GetRenamedUncKey failed %d", local_rc);
@@ -1897,16 +1952,29 @@ upll_rc_t FlowListEntryMoMgr::TxUpdateController(unc_key_type_t keytype,
           result_code = UPLL_RC_ERR_GENERIC;
           break;
         }
+        SET_USER_DATA_CTRLR(resp.ckv_data, ctrlr_dom.ctrlr);
         *err_ckv = resp.ckv_data;
         DELETE_IF_NOT_NULL(ck_main);
         break;
+      } else if (result_code != UPLL_RC_SUCCESS) {
+        DELETE_IF_NOT_NULL(ck_main);
+        DELETE_IF_NOT_NULL(resp.ckv_data);
+        break;
       }
       DELETE_IF_NOT_NULL(resp.ckv_data);
     } else if (op == UNC_OP_UPDATE) {
       ConfigKeyVal *ck_ctrlr = NULL;
       result_code = DupConfigKeyVal(ck_main, req, MAINTBL);
-      if (result_code != UPLL_RC_SUCCESS)
+      if (result_code != UPLL_RC_SUCCESS) {
+        DELETE_IF_NOT_NULL(ck_main);
+        DELETE_IF_NOT_NULL(nreq);
+        DELETE_IF_NOT_NULL(req);
+        if (dal_cursor_handle) {
+          dmi->CloseCursor(dal_cursor_handle, true);
+          dal_cursor_handle = NULL;
+        }
         return result_code;
+      }
       /*
          result_code = ValidateCapability(&(ipc_req.header), ck_main);
          if (result_code != UPLL_RC_SUCCESS) {
@@ -1923,8 +1991,8 @@ upll_rc_t FlowListEntryMoMgr::TxUpdateController(unc_key_type_t keytype,
         DELETE_IF_NOT_NULL(nreq);
         DELETE_IF_NOT_NULL(req);
         if (dal_cursor_handle) {
-         dmi->CloseCursor(dal_cursor_handle, true);
-         dal_cursor_handle = NULL;
+          dmi->CloseCursor(dal_cursor_handle, true);
+          dal_cursor_handle = NULL;
         }
         return result_code;
       }
@@ -1940,9 +2008,17 @@ upll_rc_t FlowListEntryMoMgr::TxUpdateController(unc_key_type_t keytype,
 
       for (ConfigKeyVal *tmp = ck_ctrlr; tmp != NULL;
            tmp = tmp->get_next_cfg_key_val()) {
+        driver_resp = false;
         GET_USER_DATA_CTRLR_DOMAIN(tmp, ctrlr_dom);
         if (ctrlr_dom.ctrlr == NULL) {
           UPLL_LOG_DEBUG("Invalid controller");
+          DELETE_IF_NOT_NULL(ck_main);
+          DELETE_IF_NOT_NULL(nreq);
+          DELETE_IF_NOT_NULL(req);
+          if (dal_cursor_handle) {
+            dmi->CloseCursor(dal_cursor_handle, true);
+            dal_cursor_handle = NULL;
+          }
           return UPLL_RC_ERR_GENERIC;
         }
         ConfigKeyVal *temp_ck_main = NULL;
@@ -1951,23 +2027,35 @@ upll_rc_t FlowListEntryMoMgr::TxUpdateController(unc_key_type_t keytype,
           UPLL_LOG_DEBUG("DupConfigKeyVal failed %d", result_code);
           DELETE_IF_NOT_NULL(ck_ctrlr);
           DELETE_IF_NOT_NULL(ck_main);
+          DELETE_IF_NOT_NULL(nreq);
+          DELETE_IF_NOT_NULL(req);
+          if (dal_cursor_handle) {
+            dmi->CloseCursor(dal_cursor_handle, true);
+            dal_cursor_handle = NULL;
+          }
           return result_code;
         }
-        result_code = TxUpdateProcess(ck_main, &resp, op, dmi, &ctrlr_dom);
-        affected_ctrlr_set->insert(reinterpret_cast<const char *>
-                                   (ctrlr_dom.ctrlr));
-        if (result_code != UPLL_RC_SUCCESS) {
+        result_code = TxUpdateProcess(ck_main, &resp, op, dmi, &ctrlr_dom,
+                                      affected_ctrlr_set, &driver_resp);
+        if (result_code != UPLL_RC_SUCCESS && driver_resp) {
           UPLL_LOG_DEBUG("TxUpdate Process returns with %d", result_code);
           *err_ckv = temp_ck_main;
           DELETE_IF_NOT_NULL(resp.ckv_data);
           DELETE_IF_NOT_NULL(ck_ctrlr);
           DELETE_IF_NOT_NULL(ck_main);
           break;
+        } else if (result_code != UPLL_RC_SUCCESS) {
+          DELETE_IF_NOT_NULL(resp.ckv_data);
+          DELETE_IF_NOT_NULL(ck_ctrlr);
+          DELETE_IF_NOT_NULL(ck_main);
+          break;
         }
         DELETE_IF_NOT_NULL(resp.ckv_data);
         DELETE_IF_NOT_NULL(temp_ck_main);
       }
       DELETE_IF_NOT_NULL(ck_ctrlr);
+      if (driver_resp || result_code != UPLL_RC_SUCCESS)
+        break;
     }
     DELETE_IF_NOT_NULL(ck_main);
   }
@@ -1982,13 +2070,14 @@ upll_rc_t FlowListEntryMoMgr::TxUpdateController(unc_key_type_t keytype,
   return result_code;
 }
 
-upll_rc_t FlowListEntryMoMgr::AddFlowListToController(char *flowlist_name,
-                                                 DalDmlIntf *dmi,
-                                                 char* ctrl_id,
-                                                 upll_keytype_datatype_t dt_type,
-                                                 unc_keytype_operation_t op) {
+upll_rc_t FlowListEntryMoMgr::AddFlowListToController(
+    char *flowlist_name,
+    DalDmlIntf *dmi,
+    char* ctrl_id,
+    upll_keytype_datatype_t dt_type,
+    unc_keytype_operation_t op) {
   UPLL_FUNC_TRACE
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
+      upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *okey = NULL;
 
   result_code = GetChildConfigKey(okey, NULL);
@@ -1997,14 +2086,14 @@ upll_rc_t FlowListEntryMoMgr::AddFlowListToController(char *flowlist_name,
     return result_code;
   }
   key_flowlist_entry_t *flowlist_key = reinterpret_cast<key_flowlist_entry_t*>
-                                 (okey->get_key());
+      (okey->get_key());
   uuu::upll_strncpy(flowlist_key->flowlist_key.flowlist_name,
                     flowlist_name, (kMaxLenFlowListName+1));
   DbSubOp dbop = {kOpReadMultiple, kOpMatchNone, kOpInOutCs};
   result_code = ReadConfigDB(okey,
-                            dt_type,
-                            UNC_OP_READ,
-                            dbop, dmi, MAINTBL);
+                             dt_type,
+                             UNC_OP_READ,
+                             dbop, dmi, MAINTBL);
   if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
     UPLL_LOG_DEBUG("No such instance in entry table");
     DELETE_IF_NOT_NULL(okey);
@@ -2012,7 +2101,7 @@ upll_rc_t FlowListEntryMoMgr::AddFlowListToController(char *flowlist_name,
   }
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("Unable to read flowlist configuration from DB %d",
-                    result_code);
+                   result_code);
     DELETE_IF_NOT_NULL(okey);
     return result_code;
   }
@@ -2026,20 +2115,21 @@ void FlowListEntryMoMgr::SetValidAttributesForController(
     val_flowlist_entry_t *val) {
   UPLL_FUNC_TRACE;
   for ( unsigned int loop = 0;
-      loop < sizeof(val->valid)/sizeof(val->valid[0]); ++loop ) {
+       loop < sizeof(val->valid)/sizeof(val->valid[0]); ++loop ) {
     if ((val->valid[loop] == UNC_VF_NOT_SUPPORTED)
         || (val->valid[loop] ==
-           UNC_VF_VALID_NO_VALUE)) {
-        val->valid[loop] = UNC_VF_INVALID;
+            UNC_VF_VALID_NO_VALUE)) {
+      val->valid[loop] = UNC_VF_INVALID;
     }
   }
 }
 
-upll_rc_t FlowListEntryMoMgr::UpdateControllerTable(ConfigKeyVal *ikey,
-                                               unc_keytype_operation_t op,
-                                               upll_keytype_datatype_t dt_type,
-                                               DalDmlIntf *dmi,
-                                               char* ctrl_id) {
+upll_rc_t FlowListEntryMoMgr::UpdateControllerTable(
+    ConfigKeyVal *ikey,
+    unc_keytype_operation_t op,
+    upll_keytype_datatype_t dt_type,
+    DalDmlIntf *dmi,
+    char* ctrl_id) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_flowlist_entry_ctrl_t *val_flowlist_entry_ctrl = NULL;
@@ -2053,35 +2143,16 @@ upll_rc_t FlowListEntryMoMgr::UpdateControllerTable(ConfigKeyVal *ikey,
     result_code = GetChildConfigKey(ctrlr_ckv, temp_ikey);
     SET_USER_DATA_CTRLR(ctrlr_ckv, ctrl_id);
     result_code = ReadConfigDB(ctrlr_ckv, dt_type, UNC_OP_READ,
-        dbop, dmi, CTRLRTBL);
+                               dbop, dmi, CTRLRTBL);
     if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
       if (op == UNC_OP_CREATE || op == UNC_OP_UPDATE) {
         val_flowlist_entry_t *val_flowlist_entry =
-          reinterpret_cast<val_flowlist_entry_t *>
-          (GetVal(temp_ikey));
-  
-        //capability check
-        ConfigKeyVal *temp_key = NULL;
-        result_code = GetChildConfigKey(temp_key, NULL);
-        if (UPLL_RC_SUCCESS != result_code) {
-          DELETE_IF_NOT_NULL(ctrlr_ckv);
-          UPLL_LOG_DEBUG("GetChildConfigKey failed(%d)",result_code);
-          return result_code;
-        }
-
-        result_code = GetInstanceCount(temp_key, ctrl_id,
-                                       dt_type,
-                                       &cur_instance_count,
-                                       dmi, CTRLRTBL);
-        DELETE_IF_NOT_NULL(temp_key);
-        if (UPLL_RC_SUCCESS != result_code) {
-          UPLL_LOG_DEBUG("GetInstanceCount failed(%d)",result_code);
-          DELETE_IF_NOT_NULL(ctrlr_ckv);
-          return result_code;
-        }
+            reinterpret_cast<val_flowlist_entry_t *>
+            (GetVal(temp_ikey));
 
+        // capability check
         IpcReqRespHeader *req_header = reinterpret_cast<IpcReqRespHeader*>
-                     (ConfigKeyVal::Malloc(sizeof(IpcReqRespHeader)));
+            (ConfigKeyVal::Malloc(sizeof(IpcReqRespHeader)));
 
         req_header->operation = op;
         req_header->datatype = UPLL_DT_CANDIDATE;
@@ -2091,104 +2162,127 @@ upll_rc_t FlowListEntryMoMgr::UpdateControllerTable(ConfigKeyVal *ikey,
         free(req_header);
 
         if (result_code != UPLL_RC_SUCCESS) {
-          // Error should be returned if the failure code is other then ctrlr not
+          // Error should be returned if the failure code
+          // is other then ctrlr not
           // supported
           DELETE_IF_NOT_NULL(ctrlr_ckv);
           if ((!ctrlr_mgr->GetCtrlrType(reinterpret_cast<char *>(ctrl_id),
-                       dt_type, &ctrlrtype)) || (ctrlrtype != UNC_CT_PFC)) {
+                                        dt_type, &ctrlrtype)) ||
+              (ctrlrtype != UNC_CT_PFC)) {
             result_code = UPLL_RC_SUCCESS;
             UPLL_LOG_DEBUG("Controller type is  %d", ctrlrtype);
             temp_ikey = temp_ikey->get_next_cfg_key_val();
             continue;
           }
           UPLL_LOG_DEBUG("ValidateCapability Failed: result_code=%d",
-                          result_code);
+                         result_code);
           return result_code;
         }
         /** change NOT_SOPPRTED attribute to INVALID to store in ctrlr table */
         SetValidAttributesForController(val_flowlist_entry);
 
         val_flowlist_entry_ctrl = reinterpret_cast<val_flowlist_entry_ctrl_t*>
-          (GetVal(ctrlr_ckv));
+            (GetVal(ctrlr_ckv));
         for ( unsigned int loop = 0;
-            loop < sizeof
-            (val_flowlist_entry->valid)/sizeof(val_flowlist_entry->valid[0]);
-            ++loop ) {
+             loop < sizeof
+             (val_flowlist_entry->valid)/sizeof(val_flowlist_entry->valid[0]);
+             ++loop ) {
           val_flowlist_entry_ctrl->valid[loop] =
-            val_flowlist_entry->valid[loop];
+              val_flowlist_entry->valid[loop];
+        }
+
+        // Audit
+        if (dt_type == UPLL_DT_AUDIT) {
+          UPLL_LOG_DEBUG("Audit db setting cs");
+          for (unsigned int loop = 0;
+               loop < (sizeof
+                       (val_flowlist_entry_ctrl->valid)/
+                       sizeof(val_flowlist_entry_ctrl->valid[0]));
+               loop++) {
+            val_flowlist_entry_ctrl->cs_attr[loop] =
+                (unc_keytype_configstatus_t)val_flowlist_entry->cs_attr[loop];
+          }
+          val_flowlist_entry_ctrl->cs_row_status =
+              (unc_keytype_configstatus_t)val_flowlist_entry->cs_row_status;
         }
         result_code = UpdateConfigDB(ctrlr_ckv, dt_type,
-            UNC_OP_CREATE, dmi,
-            CTRLRTBL);
+                                     UNC_OP_CREATE, dmi,
+                                     CTRLRTBL);
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("Unable to create a FlowListEntry in Ctrlr table=%d",
-              result_code);
+                         result_code);
           DELETE_IF_NOT_NULL(ctrlr_ckv);
           return result_code;
         }
       }
       DELETE_IF_NOT_NULL(ctrlr_ckv);
     } else if (UPLL_RC_SUCCESS == result_code) {
-        if (op == UNC_OP_UPDATE || op == UNC_OP_DELETE) {
+      if (op == UNC_OP_UPDATE || op == UNC_OP_DELETE) {
         if (op == UNC_OP_UPDATE) {
           val_flowlist_entry_t *val_flowlist_entry =
-            reinterpret_cast<val_flowlist_entry_t *>
-            (GetVal(temp_ikey));
+              reinterpret_cast<val_flowlist_entry_t *>
+              (GetVal(temp_ikey));
 
           // Capability check
           IpcReqRespHeader *req_header = reinterpret_cast<IpcReqRespHeader*>
-                     (ConfigKeyVal::Malloc(sizeof(IpcReqRespHeader)));
+              (ConfigKeyVal::Malloc(sizeof(IpcReqRespHeader)));
 
           req_header->operation = op;
           req_header->datatype = UPLL_DT_CANDIDATE;
 
           // Validate whether the attributes supported by controller or not
-          result_code = ValidateCapability(req_header, temp_ikey, reinterpret_cast<char*>(ctrl_id));
+          result_code = ValidateCapability(req_header, temp_ikey,
+                                           reinterpret_cast<char*>(ctrl_id));
           free(req_header);
           if (result_code != UPLL_RC_SUCCESS) {
             DELETE_IF_NOT_NULL(ctrlr_ckv);
             // FlowListEntry is not supported for other than PFC Controller
             // so SKIP the adding entry for such sontroller
             if ((!ctrlr_mgr->GetCtrlrType(reinterpret_cast<char *>(ctrl_id),
-                       dt_type, &ctrlrtype)) || (ctrlrtype != UNC_CT_PFC)) {
-              result_code = UPLL_RC_SUCCESS; 
+                                          dt_type, &ctrlrtype)) ||
+                (ctrlrtype != UNC_CT_PFC)) {
+              result_code = UPLL_RC_SUCCESS;
               UPLL_LOG_DEBUG("Controller type is  %d", ctrlrtype);
               temp_ikey = temp_ikey->get_next_cfg_key_val();
               continue;
             }
             UPLL_LOG_DEBUG("Key not supported by controller");
             return result_code;
-         }
+          }
 
-          val_flowlist_entry_ctrl = reinterpret_cast<val_flowlist_entry_ctrl_t*>
-            (GetVal(ctrlr_ckv));
+          val_flowlist_entry_ctrl = reinterpret_cast
+              <val_flowlist_entry_ctrl_t*>
+              (GetVal(ctrlr_ckv));
           for ( unsigned int loop = 0;
-              loop < sizeof
-              (val_flowlist_entry->valid)/sizeof(val_flowlist_entry->valid[0]);
-              ++loop ) {
+               loop < sizeof
+               (val_flowlist_entry->valid)/sizeof
+               (val_flowlist_entry->valid[0]);
+               ++loop ) {
             if (val_flowlist_entry->valid[loop] == UNC_VF_NOT_SUPPORTED) {
-               val_flowlist_entry_ctrl->valid[loop] = UNC_VF_INVALID;
+              val_flowlist_entry_ctrl->valid[loop] = UNC_VF_INVALID;
             } else {
               val_flowlist_entry_ctrl->valid[loop] =
-                 val_flowlist_entry->valid[loop];
+                  val_flowlist_entry->valid[loop];
             }
           }
         }
-        if ((UPLL_DT_AUDIT == dt_type) && (UNC_OP_DELETE != op) ) {
+        if ((UPLL_DT_AUDIT == dt_type) && (UNC_OP_DELETE != op)) {
           val_flowlist_entry_t *val_flowlist_entry =
-            reinterpret_cast<val_flowlist_entry_t *>
-            (GetVal(temp_ikey));
-          val_flowlist_entry_ctrl = reinterpret_cast<val_flowlist_entry_ctrl_t*>
-            (GetVal(ctrlr_ckv));
+              reinterpret_cast<val_flowlist_entry_t *>
+              (GetVal(temp_ikey));
+          val_flowlist_entry_ctrl = reinterpret_cast
+              <val_flowlist_entry_ctrl_t*>
+              (GetVal(ctrlr_ckv));
           for ( unsigned int loop = 0;
-              loop < sizeof
-              (val_flowlist_entry->valid)/sizeof(val_flowlist_entry->valid[0]);
-              ++loop ) {
-            val_flowlist_entry_ctrl->cs_attr[loop] = (unc_keytype_configstatus_t)
+               loop < sizeof
+               (val_flowlist_entry->valid)/sizeof(val_flowlist_entry->valid[0]);
+               ++loop ) {
+            val_flowlist_entry_ctrl->cs_attr[loop] =
+                (unc_keytype_configstatus_t)
                 val_flowlist_entry->cs_attr[loop];
           }
-            val_flowlist_entry_ctrl->cs_row_status = (unc_keytype_configstatus_t)
-                val_flowlist_entry->cs_row_status;
+          val_flowlist_entry_ctrl->cs_row_status = (unc_keytype_configstatus_t)
+              val_flowlist_entry->cs_row_status;
         }
         SET_USER_DATA_CTRLR(ctrlr_ckv, ctrl_id);
         result_code = UpdateConfigDB(ctrlr_ckv, dt_type,
@@ -2199,7 +2293,7 @@ upll_rc_t FlowListEntryMoMgr::UpdateControllerTable(ConfigKeyVal *ikey,
         }
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("Unable to delete a FlowListEntry in Ctrlr table=%d",
-              result_code);
+                         result_code);
           // delete ctrlr_ckv;
         }
       }
@@ -2215,9 +2309,9 @@ upll_rc_t FlowListEntryMoMgr::UpdateControllerTable(ConfigKeyVal *ikey,
 }
 
 upll_rc_t FlowListEntryMoMgr::TxCopyCandidateToRunning(
-                                     unc_key_type_t keytype,
-                                     CtrlrCommitStatusList *ctrlr_commit_status,
-                                     DalDmlIntf *dmi) {
+    unc_key_type_t keytype,
+    CtrlrCommitStatusList *ctrlr_commit_status,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   DalResultCode db_result;
@@ -2236,34 +2330,34 @@ upll_rc_t FlowListEntryMoMgr::TxCopyCandidateToRunning(
   CtrlrCommitStatusList::iterator ccsListItr;
   CtrlrCommitStatus *ccStatusPtr;
 
-  if ((ctrlr_commit_status == NULL) || (dmi == NULL)) {
-    UPLL_LOG_DEBUG(
-        "FlowListEntryMoMgr::ctrlr_commit_status is NULL");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  for (ccsListItr = ctrlr_commit_status->begin();
-       ccsListItr != ctrlr_commit_status->end(); ++ccsListItr) {
-    ccStatusPtr = *ccsListItr;
-    ctrlr_id = reinterpret_cast<uint8_t *>(&ccStatusPtr->ctrlr_id);
-    ctrlr_result[ccStatusPtr->ctrlr_id] = ccStatusPtr->upll_ctrlr_result;
-    if (ccStatusPtr->upll_ctrlr_result != UPLL_RC_SUCCESS) {
-      for (ConfigKeyVal *ck_err = ccStatusPtr->err_ckv; ck_err != NULL; ck_err =
-           ck_err->get_next_cfg_key_val()) {
-        if (ck_err->get_key_type() != keytype) continue;
-        result_code = GetRenamedUncKey(ck_err, UPLL_DT_CANDIDATE, dmi,
-                                       ctrlr_id);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG(
-              "FlowListEntryMoMgr::GetRenamedUncKey is failed,resultcode= %d",
-              result_code);
-          return result_code;
+  if (ctrlr_commit_status != NULL) {
+    for (ccsListItr = ctrlr_commit_status->begin();
+         ccsListItr != ctrlr_commit_status->end(); ++ccsListItr) {
+      ccStatusPtr = *ccsListItr;
+      ctrlr_id = reinterpret_cast<uint8_t *>(&ccStatusPtr->ctrlr_id);
+      ctrlr_result[ccStatusPtr->ctrlr_id] = ccStatusPtr->upll_ctrlr_result;
+      if (ccStatusPtr->upll_ctrlr_result != UPLL_RC_SUCCESS) {
+        for (ConfigKeyVal *ck_err = ccStatusPtr->err_ckv; ck_err != NULL;
+             ck_err =
+             ck_err->get_next_cfg_key_val()) {
+          if (ck_err->get_key_type() != keytype) continue;
+          result_code = GetRenamedUncKey(ck_err, UPLL_DT_CANDIDATE, dmi,
+                                         ctrlr_id);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG(
+                "FlowListEntryMoMgr::GetRenamedUncKey is failed,"
+                "resultcode= %d",
+                result_code);
+            return result_code;
+          }
         }
       }
     }
   }
   for (int i = 0; i < nop; i++) {
     if (op[i] != UNC_OP_UPDATE) {
-      result_code = DiffConfigDB(UPLL_DT_CANDIDATE, UPLL_DT_RUNNING, op[i], req,
+      result_code = DiffConfigDB(UPLL_DT_CANDIDATE, UPLL_DT_RUNNING, op[i],
+                                 req,
                                  nreq, &cfg1_cursor, dmi, NULL, MAINTBL, true);
       while (result_code == UPLL_RC_SUCCESS) {
         db_result = dmi->GetNextRecord(cfg1_cursor);
@@ -2277,7 +2371,7 @@ upll_rc_t FlowListEntryMoMgr::TxCopyCandidateToRunning(
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("Updating Main table Error %d", result_code);
           if (cfg1_cursor)
-              dmi->CloseCursor(cfg1_cursor, true);
+            dmi->CloseCursor(cfg1_cursor, true);
           DELETE_IF_NOT_NULL(req);
           DELETE_IF_NOT_NULL(nreq);
           return result_code;
@@ -2296,7 +2390,7 @@ upll_rc_t FlowListEntryMoMgr::TxCopyCandidateToRunning(
   for (int i = 0; i < nop; i++) {
     MoMgrTables tbl = (op[i] == UNC_OP_UPDATE)?MAINTBL:CTRLRTBL;
     result_code = DiffConfigDB(UPLL_DT_CANDIDATE, UPLL_DT_RUNNING, op[i], req,
-                               nreq, &cfg1_cursor, dmi, NULL, tbl,true);
+                               nreq, &cfg1_cursor, dmi, NULL, tbl, true);
 
     ConfigKeyVal *fle_ctrlr_key = NULL;
     while (result_code == UPLL_RC_SUCCESS) {
@@ -2305,13 +2399,14 @@ upll_rc_t FlowListEntryMoMgr::TxCopyCandidateToRunning(
       if (result_code != UPLL_RC_SUCCESS)
         break;
       if (op[i] == UNC_OP_UPDATE) {
-        DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutCtrlr | kOpInOutCs };
+        DbSubOp dbop = { kOpReadMultiple, kOpMatchNone,
+          kOpInOutCtrlr | kOpInOutCs };
         result_code = GetChildConfigKey(fle_ctrlr_key, req);
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("GetChildConfigKey is failed resultcode=%d",
                          result_code);
           if (cfg1_cursor)
-             dmi->CloseCursor(cfg1_cursor, true);
+            dmi->CloseCursor(cfg1_cursor, true);
           DELETE_IF_NOT_NULL(req);
           DELETE_IF_NOT_NULL(nreq);
           return result_code;
@@ -2324,23 +2419,27 @@ upll_rc_t FlowListEntryMoMgr::TxCopyCandidateToRunning(
         result_code = ReadConfigDB(fle_ctrlr_key, UPLL_DT_CANDIDATE,
                                    UNC_OP_READ, dbop, dmi, CTRLRTBL);
         if (result_code != UPLL_RC_SUCCESS) {
-          DELETE_IF_NOT_NULL(fle_ctrlr_key); 
+          DELETE_IF_NOT_NULL(fle_ctrlr_key);
           if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
             UPLL_LOG_DEBUG("No record found in FlowlistEntry Ctrlr Tbl");
             result_code = UpdateMainTbl(req, op[i], UPLL_RC_SUCCESS,
                                         nreq, dmi);
             if (result_code != UPLL_RC_SUCCESS) {
               UPLL_LOG_DEBUG("Error updating main table%d", result_code);
+              if (cfg1_cursor)
+                dmi->CloseCursor(cfg1_cursor, true);
+              DELETE_IF_NOT_NULL(req);
+              DELETE_IF_NOT_NULL(nreq);
               return result_code;
             } else {
               continue;
             }
           } else  {
             UPLL_LOG_DEBUG("DB err while reading records from ctrlrtbl, err %d",
-                          result_code);
+                           result_code);
 
             if (cfg1_cursor)
-               dmi->CloseCursor(cfg1_cursor, true);
+              dmi->CloseCursor(cfg1_cursor, true);
             DELETE_IF_NOT_NULL(req);
             DELETE_IF_NOT_NULL(nreq);
             return result_code;
@@ -2348,19 +2447,19 @@ upll_rc_t FlowListEntryMoMgr::TxCopyCandidateToRunning(
         }
         for (ConfigKeyVal *tmp = fle_ctrlr_key; tmp != NULL; tmp =
              tmp->get_next_cfg_key_val()) {
-
           GET_USER_DATA_CTRLR(tmp, ctrlr_id);
           string controller(reinterpret_cast<char *>(ctrlr_id));
 
           UPLL_LOG_DEBUG("Controller ID =%s", controller.c_str());
-          DbSubOp dbop_maintbl = { kOpReadSingle, kOpMatchNone, kOpInOutFlag | kOpInOutCs };
+          DbSubOp dbop_maintbl = { kOpReadSingle, kOpMatchNone,
+            kOpInOutFlag | kOpInOutCs };
           result_code = GetChildConfigKey(fle_key, req);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("GetChildConfigKey is failed resultcode=%d",
-                           result_code);   
+                           result_code);
             DELETE_IF_NOT_NULL(fle_ctrlr_key);
             if (cfg1_cursor)
-               dmi->CloseCursor(cfg1_cursor, true);
+              dmi->CloseCursor(cfg1_cursor, true);
             DELETE_IF_NOT_NULL(req);
             DELETE_IF_NOT_NULL(nreq);
             return result_code;
@@ -2369,10 +2468,10 @@ upll_rc_t FlowListEntryMoMgr::TxCopyCandidateToRunning(
                                      UNC_OP_READ, dbop_maintbl, dmi, MAINTBL);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("Unable to read configuration from CandidateDb");
-            DELETE_IF_NOT_NULL(fle_key); 
+            DELETE_IF_NOT_NULL(fle_key);
             DELETE_IF_NOT_NULL(fle_ctrlr_key);
             if (cfg1_cursor)
-               dmi->CloseCursor(cfg1_cursor, true);
+              dmi->CloseCursor(cfg1_cursor, true);
             DELETE_IF_NOT_NULL(req);
             DELETE_IF_NOT_NULL(nreq);
             return result_code;
@@ -2380,17 +2479,17 @@ upll_rc_t FlowListEntryMoMgr::TxCopyCandidateToRunning(
           static_cast<val_flowlist_entry_t *>
               (GetVal(fle_key))->cs_row_status =
               static_cast<val_flowlist_entry_t *>
-                      (GetVal(nreq))->cs_row_status;
+              (GetVal(nreq))->cs_row_status;
 
-         //  ReadingConfigstatus for main tbl
+          //  ReadingConfigstatus for main tbl
           result_code = GetChildConfigKey(fl_run_key, req);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("GetChildConfigKey is failed resultcode=%d",
                            result_code);
-            DELETE_IF_NOT_NULL(fle_key); 
+            DELETE_IF_NOT_NULL(fle_key);
             DELETE_IF_NOT_NULL(fle_ctrlr_key);
             if (cfg1_cursor)
-               dmi->CloseCursor(cfg1_cursor, true);
+              dmi->CloseCursor(cfg1_cursor, true);
             DELETE_IF_NOT_NULL(req);
             DELETE_IF_NOT_NULL(nreq);
 
@@ -2401,9 +2500,9 @@ upll_rc_t FlowListEntryMoMgr::TxCopyCandidateToRunning(
                                      UNC_OP_READ, dbop_maintbl, dmi, MAINTBL);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("Unable to read configuration from CandidateDb");
-            DELETE_IF_NOT_NULL(fle_key); 
+            DELETE_IF_NOT_NULL(fle_key);
             DELETE_IF_NOT_NULL(fle_ctrlr_key);
-            DELETE_IF_NOT_NULL(fl_run_key); 
+            DELETE_IF_NOT_NULL(fl_run_key);
             if (cfg1_cursor)
               dmi->CloseCursor(cfg1_cursor, true);
             DELETE_IF_NOT_NULL(req);
@@ -2412,24 +2511,24 @@ upll_rc_t FlowListEntryMoMgr::TxCopyCandidateToRunning(
           }
 
           val_flowlist_entry_t *val_main_can = reinterpret_cast
-           <val_flowlist_entry_t *>(GetVal(fle_key));
+              <val_flowlist_entry_t *>(GetVal(fle_key));
           val_flowlist_entry_t *val_main = reinterpret_cast
-           <val_flowlist_entry_t *>(GetVal(fl_run_key));
-         for (unsigned int loop = 0; loop < sizeof(val_main->valid)/
-           sizeof(val_main->valid[0]); ++loop) {
-           val_main_can->cs_attr[loop] = val_main->cs_attr[loop];
-         }
+              <val_flowlist_entry_t *>(GetVal(fl_run_key));
+          for (unsigned int loop = 0; loop < sizeof(val_main->valid)/
+               sizeof(val_main->valid[0]); ++loop) {
+            val_main_can->cs_attr[loop] = val_main->cs_attr[loop];
+          }
 
-        // For Reading The controller table for config status
+          // For Reading The controller table for config status
           result_code = GetChildConfigKey(fl_run_ctrl_key, tmp);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("GetChildConfigKey is failed resultcode=%d",
                            result_code);
-            DELETE_IF_NOT_NULL(fle_key); 
+            DELETE_IF_NOT_NULL(fle_key);
             DELETE_IF_NOT_NULL(fle_ctrlr_key);
-            DELETE_IF_NOT_NULL(fl_run_key); 
+            DELETE_IF_NOT_NULL(fl_run_key);
             if (cfg1_cursor)
-               dmi->CloseCursor(cfg1_cursor, true);
+              dmi->CloseCursor(cfg1_cursor, true);
             DELETE_IF_NOT_NULL(req);
             DELETE_IF_NOT_NULL(nreq);
             return result_code;
@@ -2438,36 +2537,44 @@ upll_rc_t FlowListEntryMoMgr::TxCopyCandidateToRunning(
                                      UNC_OP_READ, dbop_maintbl, dmi, CTRLRTBL);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("Unable to read configuration from CandidateDb");
-            DELETE_IF_NOT_NULL(fle_key); 
+            DELETE_IF_NOT_NULL(fle_key);
             DELETE_IF_NOT_NULL(fle_ctrlr_key);
-            DELETE_IF_NOT_NULL(fl_run_key); 
-            DELETE_IF_NOT_NULL(fl_run_ctrl_key); 
+            DELETE_IF_NOT_NULL(fl_run_key);
+            DELETE_IF_NOT_NULL(fl_run_ctrl_key);
             if (cfg1_cursor)
-               dmi->CloseCursor(cfg1_cursor, true);
+              dmi->CloseCursor(cfg1_cursor, true);
             DELETE_IF_NOT_NULL(req);
             DELETE_IF_NOT_NULL(nreq);
             return result_code;
           }
           val_flowlist_entry_ctrl *val_ctrlr_can = reinterpret_cast
-           <val_flowlist_entry_ctrl_t *>(GetVal(tmp));
+              <val_flowlist_entry_ctrl_t *>(GetVal(tmp));
           val_flowlist_entry_ctrl *val_ctrlr_run = reinterpret_cast
-            <val_flowlist_entry_ctrl_t *>(GetVal(fl_run_ctrl_key));
+              <val_flowlist_entry_ctrl_t *>(GetVal(fl_run_ctrl_key));
           val_ctrlr_can->cs_row_status = val_ctrlr_run->cs_row_status;
 
           for (unsigned int loop = 0; loop < sizeof(val_ctrlr_run->valid)/
-           sizeof(val_ctrlr_run->valid[0]); ++loop) {
-           val_ctrlr_can->cs_attr[loop] = val_ctrlr_run->cs_attr[loop];
+               sizeof(val_ctrlr_run->valid[0]); ++loop) {
+            val_ctrlr_can->cs_attr[loop] = val_ctrlr_run->cs_attr[loop];
+          }
+          // End Reading The controller table for config status
+          if (ctrlr_result.empty()) {
+            UPLL_LOG_TRACE("ctrlr_commit_status is NULL.");
+            result_code = UpdateConfigStatus(fle_key, op[i],
+                                             UPLL_RC_ERR_CTR_DISCONNECTED,
+                                             nreq,
+                                             dmi, tmp);
+          } else {
+            result_code = UpdateConfigStatus(fle_key, op[i],
+                                             ctrlr_result[controller], nreq,
+                                             dmi, tmp);
           }
-          //End Reading The controller table for config status
-          result_code = UpdateConfigStatus(fle_key, op[i],
-                                           ctrlr_result[controller], nreq,
-                                           dmi, tmp);
           if (result_code != UPLL_RC_SUCCESS) {
-             UPLL_LOG_DEBUG("UpdateConfigStatus Failed ,err %d", result_code);
-             break;
+            UPLL_LOG_DEBUG("UpdateConfigStatus Failed ,err %d", result_code);
+            break;
           }
-          DELETE_IF_NOT_NULL(fl_run_key); 
-          DELETE_IF_NOT_NULL(fl_run_ctrl_key); 
+          DELETE_IF_NOT_NULL(fl_run_key);
+          DELETE_IF_NOT_NULL(fl_run_ctrl_key);
           void *fle_val1 = GetVal(tmp);
           void *fle_val2 = GetVal(nreq);
           void *fle_val3 = GetVal(req);
@@ -2488,7 +2595,7 @@ upll_rc_t FlowListEntryMoMgr::TxCopyCandidateToRunning(
                                        op[i], dmi, MAINTBL);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("UpdateConfigDB for main tbl is failed");
-            DELETE_IF_NOT_NULL(fle_ctrlr_key); 
+            DELETE_IF_NOT_NULL(fle_ctrlr_key);
             DELETE_IF_NOT_NULL(fle_key);
             if (cfg1_cursor)
               dmi->CloseCursor(cfg1_cursor, true);
@@ -2498,39 +2605,52 @@ upll_rc_t FlowListEntryMoMgr::TxCopyCandidateToRunning(
           }  // COV UNREACHABLE
           EnqueCfgNotification(op[i], UPLL_DT_RUNNING,
                                fle_key);
-          DELETE_IF_NOT_NULL(fle_key); 
+          DELETE_IF_NOT_NULL(fle_key);
         }
       } else {
         if (op[i] == UNC_OP_CREATE) {
-          DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutFlag |kOpInOutCs };
+          DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
+            kOpInOutFlag |kOpInOutCs };
           result_code = GetChildConfigKey(fle_key, req);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("GetChildConfigKey is failed resultcode=%d",
+                           result_code);
+            if (cfg1_cursor)
+              dmi->CloseCursor(cfg1_cursor, true);
+            DELETE_IF_NOT_NULL(req);
+            DELETE_IF_NOT_NULL(nreq);
+            return result_code;
+          }
+
           result_code = ReadConfigDB(fle_key, UPLL_DT_RUNNING,
                                      UNC_OP_READ, dbop, dmi, MAINTBL);
           if ((result_code != UPLL_RC_SUCCESS) &&
-             (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)) {
-             UPLL_LOG_DEBUG("ReadConfigDB is failed -%d", result_code);
-             DELETE_IF_NOT_NULL(fle_key);
-             if (cfg1_cursor)
-               dmi->CloseCursor(cfg1_cursor, true);
-             DELETE_IF_NOT_NULL(req);
-             DELETE_IF_NOT_NULL(nreq);
-             return result_code;
+              (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)) {
+            UPLL_LOG_DEBUG("ReadConfigDB is failed -%d", result_code);
+            DELETE_IF_NOT_NULL(fle_key);
+            if (cfg1_cursor)
+              dmi->CloseCursor(cfg1_cursor, true);
+            DELETE_IF_NOT_NULL(req);
+            DELETE_IF_NOT_NULL(nreq);
+            return result_code;
           }
           /* Capability check
            * req_header->operation = op[i];
            * strcpy((char*)req_header->datatype,(char*)UNC_DT_CANDIDATE);
            * result_code = ValidateCapability(req_header, vtn_ctrlr_key);
            *                                                 */
-      
+
           // set consolidated config status to UNKNOWN to init vtn cs_status
           // to the cs_status of first controller
           uint32_t cur_instance_count;
           result_code = GetInstanceCount(fle_key, NULL,
-                                   UPLL_DT_CANDIDATE, &cur_instance_count,
-                                   dmi, CTRLRTBL);
+                                         UPLL_DT_CANDIDATE,
+                                         &cur_instance_count,
+                                         dmi, CTRLRTBL);
           if ((result_code == UPLL_RC_SUCCESS) && (cur_instance_count == 1))
-            reinterpret_cast<val_flowlist_entry *>(GetVal(fle_key))->cs_row_status =
-                                       UNC_CS_UNKNOWN;
+            reinterpret_cast<val_flowlist_entry *>
+                (GetVal(fle_key))->cs_row_status =
+                UNC_CS_UNKNOWN;
           result_code = DupConfigKeyVal(fle_ctrlr_key, req, tbl);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("DupConfigKeyVal is failed -%d", result_code);
@@ -2544,68 +2664,75 @@ upll_rc_t FlowListEntryMoMgr::TxCopyCandidateToRunning(
 
           GET_USER_DATA_CTRLR(fle_ctrlr_key, ctrlr_id);
           string controller(reinterpret_cast<char *>(ctrlr_id));
-          result_code = UpdateConfigStatus(fle_key, op[i],
-                                           ctrlr_result[controller], nreq,
-                                           dmi, fle_ctrlr_key);
+          if (ctrlr_result.empty()) {
+            UPLL_LOG_TRACE("ctrlr_commit_status is NULL.");
+            result_code = UpdateConfigStatus(fle_key, op[i],
+                                             UPLL_RC_ERR_CTR_DISCONNECTED,
+                                             nreq,
+                                             dmi, fle_ctrlr_key);
+          } else {
+            result_code = UpdateConfigStatus(fle_key, op[i],
+                                             ctrlr_result[controller], nreq,
+                                             dmi, fle_ctrlr_key);
+          }
         } else if (op[i] == UNC_OP_DELETE) {
-           // Reading Main Running DB for delete op
-           DbSubOp dbop1 = { kOpReadSingle, kOpMatchNone,
-                             kOpInOutFlag | kOpInOutCs };
+          // Reading Main Running DB for delete op
+          DbSubOp dbop1 = { kOpReadSingle, kOpMatchNone,
+            kOpInOutFlag | kOpInOutCs };
           GET_USER_DATA_CTRLR(req, ctrlr_id);
           result_code = GetChildConfigKey(fl_ck_run, req);
-           if (result_code != UPLL_RC_SUCCESS) {
-             UPLL_LOG_DEBUG("GetChildConfigKey is failed resultcode=%d",
-                         result_code);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("GetChildConfigKey is failed resultcode=%d",
+                           result_code);
             if (cfg1_cursor)
               dmi->CloseCursor(cfg1_cursor, true);
             DELETE_IF_NOT_NULL(req);
             DELETE_IF_NOT_NULL(nreq);
             return result_code;
-           }
+          }
 
-           GET_USER_DATA_CTRLR(req, ctrlr_id);
-           result_code = ReadConfigDB(fl_ck_run, UPLL_DT_RUNNING,
-                                   UNC_OP_READ, dbop1, dmi, MAINTBL);
+          GET_USER_DATA_CTRLR(req, ctrlr_id);
+          result_code = ReadConfigDB(fl_ck_run, UPLL_DT_RUNNING,
+                                     UNC_OP_READ, dbop1, dmi, MAINTBL);
 
-           if (result_code != UPLL_RC_SUCCESS && 
-                 result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-             UPLL_LOG_DEBUG("Unable to read configuration from RunningDB");
-             DELETE_IF_NOT_NULL(fl_ck_run);
-             if (cfg1_cursor)
+          if (result_code != UPLL_RC_SUCCESS &&
+              result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+            UPLL_LOG_DEBUG("Unable to read configuration from RunningDB");
+            DELETE_IF_NOT_NULL(fl_ck_run);
+            if (cfg1_cursor)
               dmi->CloseCursor(cfg1_cursor, true);
-             DELETE_IF_NOT_NULL(req);
-             DELETE_IF_NOT_NULL(nreq);
-             return result_code;
-           }
-           if (result_code == UPLL_RC_SUCCESS) {
-             //If Record exists in MainTBL then perform consolidation
-             result_code = SetFlowlistEntryConsolidatedStatus(fl_ck_run,
-                                                              ctrlr_id, dmi);
-             if (result_code != UPLL_RC_SUCCESS) {
-               UPLL_LOG_DEBUG("Could not set consolidated status %d",
-                               result_code);
-               DELETE_IF_NOT_NULL(fl_ck_run);
-               if (cfg1_cursor)
-                dmi->CloseCursor(cfg1_cursor, true);
-               DELETE_IF_NOT_NULL(req);
-               DELETE_IF_NOT_NULL(nreq);
-               return result_code;
-             }
-           } 
-           DELETE_IF_NOT_NULL(fl_ck_run);
-           result_code = GetChildConfigKey(fle_ctrlr_key, req);
-           if (result_code != UPLL_RC_SUCCESS) {
-             UPLL_LOG_DEBUG("Error in getting the GetChildConfigKey,err=%d",
+            DELETE_IF_NOT_NULL(req);
+            DELETE_IF_NOT_NULL(nreq);
+            return result_code;
+          }
+          if (result_code == UPLL_RC_SUCCESS) {
+            // If Record exists in MainTBL then perform consolidation
+            result_code = SetFlowlistEntryConsolidatedStatus(fl_ck_run,
+                                                             ctrlr_id, dmi);
+            if (result_code != UPLL_RC_SUCCESS) {
+              UPLL_LOG_DEBUG("Could not set consolidated status %d",
                              result_code);
-             if (cfg1_cursor)
-               dmi->CloseCursor(cfg1_cursor, true);
-             DELETE_IF_NOT_NULL(req);
-             DELETE_IF_NOT_NULL(nreq);
-             return result_code;
-           }
-
+              DELETE_IF_NOT_NULL(fl_ck_run);
+              if (cfg1_cursor)
+                dmi->CloseCursor(cfg1_cursor, true);
+              DELETE_IF_NOT_NULL(req);
+              DELETE_IF_NOT_NULL(nreq);
+              return result_code;
+            }
+          }
+          DELETE_IF_NOT_NULL(fl_ck_run);
+          result_code = GetChildConfigKey(fle_ctrlr_key, req);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("Error in getting the GetChildConfigKey,err=%d",
+                           result_code);
+            if (cfg1_cursor)
+              dmi->CloseCursor(cfg1_cursor, true);
+            DELETE_IF_NOT_NULL(req);
+            DELETE_IF_NOT_NULL(nreq);
+            return result_code;
+          }
         }
-      
+
         result_code = UpdateConfigDB(fle_ctrlr_key, UPLL_DT_RUNNING,
                                      op[i], dmi, CTRLRTBL);
         if (result_code != UPLL_RC_SUCCESS) {
@@ -2613,9 +2740,10 @@ upll_rc_t FlowListEntryMoMgr::TxCopyCandidateToRunning(
                          result_code);
           DELETE_IF_NOT_NULL(fle_ctrlr_key);
           if (cfg1_cursor)
-              dmi->CloseCursor(cfg1_cursor, true);
+            dmi->CloseCursor(cfg1_cursor, true);
           DELETE_IF_NOT_NULL(req);
           DELETE_IF_NOT_NULL(nreq);
+          DELETE_IF_NOT_NULL(fle_key);
           return result_code;
         }
         if (op[i] != UNC_OP_DELETE) {
@@ -2625,6 +2753,7 @@ upll_rc_t FlowListEntryMoMgr::TxCopyCandidateToRunning(
             UPLL_LOG_DEBUG("UpdateConfigDB in main tbl is failed -%d",
                            result_code);
             DELETE_IF_NOT_NULL(fle_key);
+            DELETE_IF_NOT_NULL(fle_ctrlr_key);
             if (cfg1_cursor)
               dmi->CloseCursor(cfg1_cursor, true);
             DELETE_IF_NOT_NULL(req);
@@ -2666,7 +2795,7 @@ FlowListEntryMoMgr::SetFlowlistEntryConsolidatedStatus(ConfigKeyVal *ikey,
   bool applied = false, not_applied = false, invalid = false;
   unc_keytype_configstatus_t c_status = UNC_CS_NOT_APPLIED;
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone,
-                   kOpInOutCtrlr | kOpInOutDomain | kOpInOutCs };
+    kOpInOutCtrlr | kOpInOutDomain | kOpInOutCs };
   if (!ikey || !dmi) {
     UPLL_LOG_DEBUG("Invalid Input");
     return UPLL_RC_ERR_GENERIC;
@@ -2686,8 +2815,7 @@ FlowListEntryMoMgr::SetFlowlistEntryConsolidatedStatus(ConfigKeyVal *ikey,
   }
 
   for (ConfigKeyVal *tmp = ctrlr_ckv; tmp != NULL;
-                     tmp = tmp->get_next_cfg_key_val()) {
-
+       tmp = tmp->get_next_cfg_key_val()) {
     ctrlr_val = reinterpret_cast<val_flowlist_entry_ctrl_t *>(GetVal(tmp));
     if (!ctrlr_val) {
       UPLL_LOG_DEBUG("Controller Value is empty");
@@ -2704,13 +2832,13 @@ FlowListEntryMoMgr::SetFlowlistEntryConsolidatedStatus(ConfigKeyVal *ikey,
     switch (ctrlr_val->cs_row_status) {
       case UNC_CS_APPLIED:
         applied = true;
-      break;
+        break;
       case UNC_CS_NOT_APPLIED:
         not_applied = true;
-      break;
+        break;
       case UNC_CS_INVALID:
         invalid = true;
-      break;
+        break;
       default:
         UPLL_LOG_DEBUG("Invalid status");
         DELETE_IF_NOT_NULL(ctrlr_ckv);
@@ -2731,47 +2859,47 @@ FlowListEntryMoMgr::SetFlowlistEntryConsolidatedStatus(ConfigKeyVal *ikey,
   }
   applied = not_applied =false;
   // Set cs_status
-  val_flowlist_entry_t *fleval = 
-     static_cast<val_flowlist_entry_t *>(GetVal(ikey));
+  val_flowlist_entry_t *fleval =
+      static_cast<val_flowlist_entry_t *>(GetVal(ikey));
   fleval->cs_row_status = c_status;
 
   for (unsigned int loop = 0; loop < sizeof(fleval->valid)/
-           sizeof(fleval->valid[0]); ++loop) {
+       sizeof(fleval->valid[0]); ++loop) {
     for (ConfigKeyVal *tmp = ctrlr_ckv; tmp != NULL;
-                     tmp = tmp->get_next_cfg_key_val()) {
+         tmp = tmp->get_next_cfg_key_val()) {
       ctrlr_val = reinterpret_cast<val_flowlist_entry_ctrl_t *>(GetVal(tmp));
 
       GET_USER_DATA_CTRLR(tmp, fle_exist_on_ctrlr);
       UPLL_LOG_DEBUG("internally read ctrollername %s", fle_exist_on_ctrlr);
       if (!strcmp(reinterpret_cast<char *>(fle_exist_on_ctrlr),
-                reinterpret_cast<char *>(ctrlr_id)))
+                  reinterpret_cast<char *>(ctrlr_id)))
         continue;  // skipping entry of deleted controller
-       if (ctrlr_val->valid[loop] == UNC_VF_VALID) {
+      if (ctrlr_val->valid[loop] == UNC_VF_VALID) {
         switch (ctrlr_val->cs_attr[loop]) {
           case UNC_CS_APPLIED:
             applied = true;
-        break;
-        case UNC_CS_NOT_APPLIED:
-          not_applied = true;
-        break;
-        case UNC_CS_INVALID:
-          invalid = true;
-        break;
-        default:
-          UPLL_LOG_DEBUG("Invalid status %d", ctrlr_val->cs_attr[loop]);
+            break;
+          case UNC_CS_NOT_APPLIED:
+            not_applied = true;
+            break;
+          case UNC_CS_INVALID:
+            invalid = true;
+            break;
+          default:
+            UPLL_LOG_DEBUG("Invalid status %d", ctrlr_val->cs_attr[loop]);
         }
       }
     }
     if (invalid) {
       c_status = UNC_CS_INVALID;
     } else if (applied && !not_applied) {
-        c_status = UNC_CS_APPLIED;
+      c_status = UNC_CS_APPLIED;
     } else if (!applied && not_applied) {
-        c_status = UNC_CS_NOT_APPLIED;
+      c_status = UNC_CS_NOT_APPLIED;
     } else if (applied && not_applied) {
-        c_status = UNC_CS_PARTIALLY_APPLIED;
+      c_status = UNC_CS_PARTIALLY_APPLIED;
     } else {
-        c_status = UNC_CS_APPLIED;
+      c_status = UNC_CS_APPLIED;
     }
     fleval->cs_attr[loop] = c_status;
     applied = not_applied =false;
@@ -2784,29 +2912,32 @@ FlowListEntryMoMgr::SetFlowlistEntryConsolidatedStatus(ConfigKeyVal *ikey,
 }
 
 upll_rc_t FlowListEntryMoMgr::UpdateAuditConfigStatus(
-                           unc_keytype_configstatus_t cs_status,
-                           uuc::UpdateCtrlrPhase phase,
-                           ConfigKeyVal *&ckv_running) {
+    unc_keytype_configstatus_t cs_status,
+    uuc::UpdateCtrlrPhase phase,
+    ConfigKeyVal *&ckv_running,
+    DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
-  val_flowlist_entry_t *val;
+  val_flowlist_entry_ctrl_t *val;
   val = (ckv_running != NULL)?
-                            reinterpret_cast<val_flowlist_entry_t *>
-                            (GetVal(ckv_running)):NULL;
+      reinterpret_cast<val_flowlist_entry_ctrl_t *>
+      (GetVal(ckv_running)):NULL;
   if (NULL == val) {
     return UPLL_RC_ERR_GENERIC;
   }
+  UPLL_LOG_DEBUG("CS Status= %u phase =%u", cs_status, phase);
   if (uuc::kUpllUcpCreate == phase )
     val->cs_row_status = cs_status;
   if ((uuc::kUpllUcpUpdate == phase) &&
-           (val->cs_row_status == UNC_CS_INVALID ||
-            val->cs_row_status == UNC_CS_NOT_APPLIED))
+      (val->cs_row_status == UNC_CS_INVALID ||
+       val->cs_row_status == UNC_CS_NOT_APPLIED))
     val->cs_row_status = cs_status;
   for ( unsigned int loop = 0;
-        loop < sizeof(val->valid)/sizeof(val->valid[0]);
-        ++loop ) {
+       loop < sizeof(val->valid)/sizeof(val->valid[0]);
+       ++loop ) {
     if ((cs_status == UNC_CS_INVALID && UNC_VF_VALID == val->valid[loop]) ||
-         cs_status == UNC_CS_APPLIED)
-       val->cs_attr[loop] = cs_status;
+        cs_status == UNC_CS_APPLIED)
+      val->cs_attr[loop] = cs_status;
   }
   return result_code;
 }
@@ -2823,10 +2954,10 @@ upll_rc_t FlowListEntryMoMgr::SetConsolidatedStatus(ConfigKeyVal *ikey,
     return result_code;
   }
   result_code = ReadConfigDB(ckv, UPLL_DT_RUNNING, UNC_OP_READ, dbop , dmi,
-                CTRLRTBL);
+                             CTRLRTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("Unable to read configuration from RunningDB,ResultCode=%d",
-                  result_code);
+                   result_code);
     delete ckv;
     return result_code;
   }
@@ -2834,7 +2965,7 @@ upll_rc_t FlowListEntryMoMgr::SetConsolidatedStatus(ConfigKeyVal *ikey,
   std::list< unc_keytype_configstatus_t > list_cs_row;
   val_flowlist_entry_ctrl_t *val;
   for (unsigned int loop = 0; loop < sizeof(val->valid)/sizeof(val->valid[0]);
-      ++loop) {
+       ++loop) {
     std::list< unc_keytype_configstatus_t > list_attr;
     vec_attr.push_back(list_attr);
   }
@@ -2843,23 +2974,23 @@ upll_rc_t FlowListEntryMoMgr::SetConsolidatedStatus(ConfigKeyVal *ikey,
     val = reinterpret_cast<val_flowlist_entry_ctrl_t *>(GetVal(temp_ckv));
     list_cs_row.push_back((unc_keytype_configstatus_t)val->cs_row_status);
     for (unsigned int loop = 0; loop < sizeof(val->valid)/sizeof(val->valid[0]);
-        ++loop) {
+         ++loop) {
       vec_attr[loop].push_back((unc_keytype_configstatus_t)val->cs_attr[loop]);
     }
   }
   DELETE_IF_NOT_NULL(ckv);
   val_flowlist_entry_t *val_temp =
-    reinterpret_cast<val_flowlist_entry_t *>(GetVal(ikey));
+      reinterpret_cast<val_flowlist_entry_t *>(GetVal(ikey));
   val_temp->cs_row_status = GetConsolidatedCsStatus(list_cs_row);
   for (unsigned int loop = 0; loop < sizeof(val->valid)/sizeof(val->valid[0]);
-      ++loop) {
+       ++loop) {
     val_temp->cs_attr[loop] = GetConsolidatedCsStatus(vec_attr[loop]);
   }
   result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING,
-                                UNC_OP_UPDATE, dmi, MAINTBL);
+                               UNC_OP_UPDATE, dmi, MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("Unable to Update the Running DB, result_code=%d",
-                  result_code);
+                   result_code);
     return result_code;
   }
   return result_code;
@@ -2887,7 +3018,7 @@ upll_rc_t FlowListEntryMoMgr::ValidateCapability(IpcReqRespHeader *req,
   }
 
   UPLL_LOG_DEBUG("ctrlr_name(%s), datatype :(%d)",
-               ctrlr_name, req->datatype);
+                 ctrlr_name, req->datatype);
 
   bool result_code = false;
   uint32_t max_instance_count = 0;
@@ -2897,13 +3028,8 @@ upll_rc_t FlowListEntryMoMgr::ValidateCapability(IpcReqRespHeader *req,
   switch (req->operation) {
     case UNC_OP_CREATE: {
       result_code = GetCreateCapability(ctrlr_name, key->get_key_type(),
-                                        &max_instance_count, &max_attrs, &attrs);
-      if (result_code && (max_instance_count != 0) &&
-          (cur_instance_count >= max_instance_count)) {
-        UPLL_LOG_DEBUG("Instance count %d exceeds %d", cur_instance_count,
-                      max_instance_count);
-        return UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
-      }
+                                        &max_instance_count, &max_attrs,
+                                        &attrs);
       break;
     }
     case UNC_OP_UPDATE: {
@@ -2914,10 +3040,10 @@ upll_rc_t FlowListEntryMoMgr::ValidateCapability(IpcReqRespHeader *req,
     default: {
       if (req->datatype == UPLL_DT_STATE) {
         result_code = GetStateCapability(ctrlr_name, key->get_key_type(),
-                                      &max_attrs, &attrs);
+                                         &max_attrs, &attrs);
       } else {
         result_code = GetReadCapability(ctrlr_name, key->get_key_type(),
-                                      &max_attrs, &attrs);
+                                        &max_attrs, &attrs);
       }
     }
   }
@@ -2935,9 +3061,10 @@ upll_rc_t FlowListEntryMoMgr::ValidateCapability(IpcReqRespHeader *req,
   if (val_flowlist_entry) {
     if (max_attrs > 0) {
       return ValFlowlistEntryAttributeSupportCheck(val_flowlist_entry,
-            attrs);
+                                                   attrs);
     } else {
-      UPLL_LOG_DEBUG("Attribute list is empty for operation %d", req->operation);
+      UPLL_LOG_DEBUG("Attribute list is empty for operation %d",
+                     req->operation);
       return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
     }
   }
@@ -3041,7 +3168,7 @@ void FlowListEntryMoMgr::ValidateIpDscpAttribute(
 void FlowListEntryMoMgr::ValidateMacAttribute(
     val_flowlist_entry_t *val_flowlist_entry, const uint8_t *attrs) {
   UPLL_FUNC_TRACE;
+
   if ((val_flowlist_entry->valid[UPLL_IDX_MAC_DST_FLE] == UNC_VF_VALID)
       || (val_flowlist_entry->valid[UPLL_IDX_MAC_DST_FLE]
           == UNC_VF_VALID_NO_VALUE)) {
@@ -3064,7 +3191,7 @@ void FlowListEntryMoMgr::ValidateMacAttribute(
 void FlowListEntryMoMgr::ValidateIPAttribute(
     val_flowlist_entry_t *val_flowlist_entry, const uint8_t *attrs) {
   UPLL_FUNC_TRACE;
-  
+
   if ((val_flowlist_entry->valid[UPLL_IDX_DST_IP_FLE] == UNC_VF_VALID)
       || (val_flowlist_entry->valid[UPLL_IDX_DST_IP_FLE]
           == UNC_VF_VALID_NO_VALUE)) {
@@ -3162,7 +3289,7 @@ void FlowListEntryMoMgr::ValidateL4PortAttribute(
   }
 
   if ((val_flowlist_entry->valid[UPLL_IDX_L4_DST_PORT_ENDPT_FLE] ==
-      UNC_VF_VALID)
+       UNC_VF_VALID)
       || (val_flowlist_entry->valid[UPLL_IDX_L4_DST_PORT_ENDPT_FLE]
           == UNC_VF_VALID_NO_VALUE)) {
     if (attrs[unc::capa::flowlist_entry::kCapL4DstPortEndpt] == 0) {
@@ -3197,7 +3324,7 @@ void FlowListEntryMoMgr::ValidateL4PortAttribute(
 void FlowListEntryMoMgr::ValidateICMPAttribute(
     val_flowlist_entry_t *val_flowlist_entry, const uint8_t *attrs) {
   UPLL_FUNC_TRACE;
-  
+
   if ((val_flowlist_entry->valid[UPLL_IDX_ICMP_TYPE_FLE] == UNC_VF_VALID)
       || (val_flowlist_entry->valid[UPLL_IDX_ICMP_TYPE_FLE]
           == UNC_VF_VALID_NO_VALUE)) {
@@ -3261,7 +3388,7 @@ upll_rc_t FlowListEntryMoMgr::ValidateMessage(IpcReqRespHeader *req,
     UPLL_LOG_DEBUG(" invalid option2(%d)", req->option2);
     return UPLL_RC_ERR_INVALID_OPTION2;
   }
-  
+
   if (UPLL_RC_SUCCESS !=
       (rt_code = ValidateFlowlistEntryKey(key, req->operation))) {
     UPLL_LOG_DEBUG("KT_FLOWLIST_ENTRY key structure syntax "
@@ -3405,8 +3532,8 @@ upll_rc_t FlowListEntryMoMgr::ValidateFlowlistEntryVal(ConfigKeyVal *key,
 }
 
 upll_rc_t FlowListEntryMoMgr::ValidateFlowlistEntryVal(IpcReqRespHeader *req,
-                                                 ConfigKeyVal *key,
-                                                 DalDmlIntf *dmi) {
+                                                       ConfigKeyVal *key,
+                                                       DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t rt_code = UPLL_RC_SUCCESS;
   key_flowlist_entry_t *key_flowlist_entry =
@@ -3436,9 +3563,13 @@ upll_rc_t FlowListEntryMoMgr::ValidateFlowlistEntryVal(IpcReqRespHeader *req,
       const_cast<MoManager *>(GetMoManager(UNC_KT_FLOWLIST)));
 
   if (mgrflowlist) {
-    if (UPLL_RC_SUCCESS != (rt_code = mgrflowlist->ReadConfigDB(okey,
-                           (upll_keytype_datatype_t) req->datatype,
-                           UNC_OP_READ, readop, dmi, MAINTBL))) {
+    if (UPLL_RC_SUCCESS != (rt_code = mgrflowlist->ReadConfigDB(
+                okey,
+                (upll_keytype_datatype_t) req->datatype,
+                UNC_OP_READ,
+                readop,
+                dmi,
+                MAINTBL))) {
       UPLL_LOG_DEBUG("Error in read :Err code=%d", rt_code);
       delete okey;
       return ((UPLL_RC_ERR_NO_SUCH_INSTANCE == rt_code) ?
@@ -3460,14 +3591,17 @@ upll_rc_t FlowListEntryMoMgr::ValidateFlowlistEntryVal(IpcReqRespHeader *req,
                                    req->operation, false)) != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("syntax check failed for dst IP address. err code (%d)",
                    rt_code);
-        return rt_code;
+    DELETE_IF_NOT_NULL(okey);
+    return rt_code;
   }
 
   if ((rt_code = ValidateIPAddress(val_flowlist_entry, val_flowlist->ip_type,
                                    req->operation, true)) != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG(" syntax check failed for src IPaddress. err code (%d)",
                    rt_code);
-        return rt_code;
+
+    DELETE_IF_NOT_NULL(okey);
+    return rt_code;
   }
 
   /** TCP/UDP port number is filled for the flowlist entry which does not
@@ -3515,7 +3649,7 @@ upll_rc_t FlowListEntryMoMgr::ValidateFlowlistEntryVal(IpcReqRespHeader *req,
 
   /** validate l4dst_port and l4_dst_portendpt */
   if ((rt_code = ValidateL4Port(val_flowlist_entry, tmp_val_fle,
-                 req->operation, false)) != UPLL_RC_SUCCESS) {
+                                req->operation, false)) != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("dst L4 Port syntax validation failed: err code (%d)",
                    rt_code);
     delete fle_okey;
@@ -3524,7 +3658,7 @@ upll_rc_t FlowListEntryMoMgr::ValidateFlowlistEntryVal(IpcReqRespHeader *req,
   }
 
   if ((rt_code = ValidateL4Port(val_flowlist_entry, tmp_val_fle,
-                 req->operation, true)) != UPLL_RC_SUCCESS) {
+                                req->operation, true)) != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("src L4 Port syntax validation failed: err code (%d)",
                    rt_code);
     delete fle_okey;
@@ -3536,7 +3670,8 @@ upll_rc_t FlowListEntryMoMgr::ValidateFlowlistEntryVal(IpcReqRespHeader *req,
   */
 
   if ((rt_code = ValidateIcmp(val_flowlist_entry, tmp_val_fle,
-                 val_flowlist->ip_type, req->operation)) != UPLL_RC_SUCCESS) {
+                              val_flowlist->ip_type, req->operation)) !=
+      UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("ICMP syntax validation failed: err code (%d)",
                    rt_code);
     delete fle_okey;
@@ -3577,7 +3712,7 @@ upll_rc_t FlowListEntryMoMgr::ValidateEthType(
   /** Validate ether type of the ethernet frame */
   if ((operation == UNC_OP_UPDATE) || (operation == UNC_OP_CREATE)) {
     if (val_flowlist_entry->valid[UPLL_IDX_MAC_ETH_TYPE_FLE] ==
-       UNC_VF_VALID_NO_VALUE) {
+        UNC_VF_VALID_NO_VALUE) {
       UPLL_LOG_DEBUG("Reset mac_eth_type");
       val_flowlist_entry->mac_eth_type = 0;
     }
@@ -3739,7 +3874,7 @@ upll_rc_t FlowListEntryMoMgr::ValidateIPProto(
 
   if (((operation == UNC_OP_UPDATE) || (operation == UNC_OP_CREATE)) &&
       (val_flowlist_entry->valid[UPLL_IDX_IP_PROTOCOL_FLE]
-          == UNC_VF_VALID_NO_VALUE)) {
+       == UNC_VF_VALID_NO_VALUE)) {
     UPLL_LOG_DEBUG("Reset ip_proto");
     val_flowlist_entry->ip_proto = 0;
     return UPLL_RC_SUCCESS;
@@ -3762,7 +3897,7 @@ upll_rc_t FlowListEntryMoMgr::ValidateDscp(
 
   if (((operation == UNC_OP_UPDATE) || (operation == UNC_OP_CREATE)) &&
       (val_flowlist_entry->valid[UPLL_IDX_IP_DSCP_FLE]
-          == UNC_VF_VALID_NO_VALUE)) {
+       == UNC_VF_VALID_NO_VALUE)) {
     UPLL_LOG_DEBUG("Reset ip_dscp");
     val_flowlist_entry->ip_dscp = 0;
     return UPLL_RC_SUCCESS;
@@ -3794,13 +3929,13 @@ upll_rc_t FlowListEntryMoMgr::ValidateL4Port(
        == UNC_VF_VALID) ||
       (val_flowlist_entry->valid[UPLL_IDX_L4_SRC_PORT_ENDPT_FLE]
        == UNC_VF_VALID) ||
-       ((operation == UNC_OP_UPDATE) &&
-        ((db_val_fle->valid[UPLL_IDX_L4_DST_PORT_FLE] == UNC_VF_VALID) ||
+      ((operation == UNC_OP_UPDATE) &&
+       ((db_val_fle->valid[UPLL_IDX_L4_DST_PORT_FLE] == UNC_VF_VALID) ||
         (db_val_fle->valid[UPLL_IDX_L4_SRC_PORT_FLE] == UNC_VF_VALID) ||
         (db_val_fle->valid[UPLL_IDX_L4_DST_PORT_ENDPT_FLE] ==
          UNC_VF_VALID) ||
         (db_val_fle->valid[UPLL_IDX_L4_SRC_PORT_ENDPT_FLE] ==
-          UNC_VF_VALID)))) {
+         UNC_VF_VALID)))) {
     if ((val_flowlist_entry->valid[UPLL_IDX_ICMP_TYPE_FLE] == UNC_VF_VALID) ||
         (val_flowlist_entry->valid[UPLL_IDX_ICMP_CODE_FLE] == UNC_VF_VALID) ||
         (val_flowlist_entry->valid[UPLL_IDX_ICMP_V6_TYPE_FLE] ==
@@ -3959,14 +4094,6 @@ upll_rc_t FlowListEntryMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
     UPLL_LOG_DEBUG("IsFlowListMatched failed in fle %d", result_code);
     return result_code;
   }
-  if (UNC_OP_CREATE == req->operation) {
-    result_code = SetRenameFlag(ikey, dmi, req);
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("SetRenameFlag failed %d", result_code);
-      return result_code;
-    }
-  }
-
   UPLL_LOG_DEBUG("ValidateAttribute Successfull.");
   return result_code;
 }
@@ -3980,15 +4107,17 @@ upll_rc_t FlowListEntryMoMgr::IsFlowListMatched(ConfigKeyVal *ikey,
   if (UNC_OP_UPDATE == req->operation ||
       UNC_OP_CREATE == req->operation) {
     key_flowlist_entry_t *key_fle = reinterpret_cast
-      <key_flowlist_entry_t *>(ikey->get_key());
+        <key_flowlist_entry_t *>(ikey->get_key());
     PolicingProfileEntryMoMgr *mgr =
-      reinterpret_cast<PolicingProfileEntryMoMgr *>(const_cast<MoManager *>
-      (GetMoManager(UNC_KT_POLICING_PROFILE_ENTRY)));
+        reinterpret_cast<PolicingProfileEntryMoMgr *>(
+            const_cast<MoManager *>
+            (GetMoManager(UNC_KT_POLICING_PROFILE_ENTRY)));
     if (NULL == mgr) {
       return UPLL_RC_ERR_GENERIC;
     }
     result_code = mgr->IsFlowListMatched(reinterpret_cast<const char *>
-      (key_fle->flowlist_key.flowlist_name), req->datatype, dmi);
+                                         (key_fle->flowlist_key.flowlist_name),
+                                         req->datatype, dmi);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("IsFlowListMatched failed from ppe %d", result_code);
       return UPLL_RC_ERR_CFG_SEMANTIC;
@@ -3998,22 +4127,22 @@ upll_rc_t FlowListEntryMoMgr::IsFlowListMatched(ConfigKeyVal *ikey,
 }
 
 upll_rc_t FlowListEntryMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
-    ConfigKeyVal *ikey) {
+                                              ConfigKeyVal *ikey) {
   if ( !ikey || !(ikey->get_key()) )
     return UPLL_RC_ERR_GENERIC;
 
   key_flowlist_entry_t *key_flowlist = NULL;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   key_rename_vnode_info_t *key_rename =
-    reinterpret_cast<key_rename_vnode_info_t *>(ikey->get_key());
+      reinterpret_cast<key_rename_vnode_info_t *>(ikey->get_key());
   key_flowlist =
-    reinterpret_cast<key_flowlist_entry_t *>
-    (ConfigKeyVal::Malloc(sizeof(key_flowlist_entry_t)));
+      reinterpret_cast<key_flowlist_entry_t *>
+      (ConfigKeyVal::Malloc(sizeof(key_flowlist_entry_t)));
   uuu::upll_strncpy(key_flowlist->flowlist_key.flowlist_name,
                     key_rename->old_flowlist_name,
                     (kMaxLenFlowListName+1));
   okey = new ConfigKeyVal(UNC_KT_FLOWLIST_ENTRY,
-      IpctSt::kIpcStKeyFlowlistEntry, key_flowlist, NULL);
+                          IpctSt::kIpcStKeyFlowlistEntry, key_flowlist, NULL);
   if (!okey) {
     free(key_flowlist);
     UPLL_LOG_DEBUG("Copy to ConfigKey Failed");
@@ -4024,19 +4153,22 @@ upll_rc_t FlowListEntryMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
 }
 
 upll_rc_t FlowListEntryMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
-                                       ConfigKeyVal *ikey,
-                                       DalDmlIntf *dmi) {
+                                                ConfigKeyVal *ikey,
+                                                DalDmlIntf *dmi,
+                                                bool restore_flag) {
   UPLL_FUNC_TRACE;
   if (ikey == NULL || req == NULL) {
-        return UPLL_RC_ERR_GENERIC;
+    return UPLL_RC_ERR_GENERIC;
   }
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
   // validate syntax
-  result_code = ValidateMessage(req, ikey);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("ValidateMessage failed, Error - %d", result_code);
-    return result_code;
+  if (!restore_flag) {
+    result_code = ValidateMessage(req, ikey);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("ValidateMessage failed, Error - %d", result_code);
+      return result_code;
+    }
   }
   result_code = ValidateAttribute(ikey, dmi, req);
   if (result_code != UPLL_RC_SUCCESS) {
@@ -4051,32 +4183,46 @@ upll_rc_t FlowListEntryMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
     return result_code;
   }
 
-  // Check if flowlist entry already exists in CANDIDATE DB
-  result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_READ, dmi);
-  if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS
-      || result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-//    std::cout << "Record already exists in Candidate DB";
-    return result_code;
-  }
-  if (UPLL_DT_CANDIDATE == req->datatype) {
-  // Check if flowlist entry exists in RUNNING DB and move it to CANDIDATE DB
-  result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING,
-                               UNC_OP_READ, dmi, MAINTBL);
-  if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
-    result_code = RestoreChildren(ikey, req->datatype, UPLL_DT_RUNNING, dmi);
-    if (result_code != UPLL_RC_SUCCESS) {
-      return UPLL_RC_ERR_GENERIC;
+  if (!restore_flag) {
+    if (UPLL_DT_CANDIDATE == req->datatype) {
+      result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dmi,
+                                   MAINTBL);
+      if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
+        UPLL_LOG_DEBUG("Key instance exist");
+        if ((ikey)->get_cfg_val()) {
+          UPLL_LOG_DEBUG("Read Key with Value struct");
+          DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
+            kOpInOutFlag | kOpInOutCtrlr | kOpInOutDomain };
+          result_code = ReadConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dbop,
+                                     dmi, MAINTBL);
+          if (UPLL_RC_SUCCESS != result_code &&
+              UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+            UPLL_LOG_DEBUG("ReadConfigDB Failed %d",  result_code);
+          }
+          if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code)  {
+            return UPLL_RC_ERR_CFG_SEMANTIC;
+          }
+        } else  {
+          result_code = UPLL_RC_SUCCESS;
+        }
+        if (UPLL_RC_SUCCESS == result_code) {
+          result_code = RestoreChildren(ikey, req->datatype,
+                                        UPLL_DT_RUNNING, dmi, req);
+          UPLL_LOG_DEBUG("Restore Children returns %d", result_code);
+          return result_code;
+        }
+      } else if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+        UPLL_LOG_DEBUG("UpdateConfigDB Failed %d", result_code);
+        return result_code;
       }
+    } else {
+      result_code = UPLL_RC_ERR_NO_SUCH_INSTANCE;
     }
+  } else {
+    result_code = UPLL_RC_ERR_NO_SUCH_INSTANCE;
   }
   if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
     // create a record in CANDIDATE DB
-    result_code = SetRenameFlag(ikey, dmi, req);
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("SetRenameFlag failed %d", result_code);
-      return result_code;
-    }
-
     result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_CREATE, dmi);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("UpdateConfigDB failed for maintbl %d", result_code);
@@ -4094,26 +4240,28 @@ upll_rc_t FlowListEntryMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
 }
 
 upll_rc_t FlowListEntryMoMgr::CreateEntryCtrlrTbl(IpcReqRespHeader *req,
-                              ConfigKeyVal *ikey,
-                              DalDmlIntf *dmi) {
+                                                  ConfigKeyVal *ikey,
+                                                  DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
-  ConfigKeyVal *pkey = NULL;
+  ConfigKeyVal *pkey = NULL, *tmp_ikey = NULL;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   result_code = GetParentConfigKey(pkey, ikey);
   if (UPLL_RC_SUCCESS != result_code) {
+    UPLL_LOG_DEBUG("GetParentConfigKey Error");
     return result_code;
   }
+
   DbSubOp dbop = {kOpReadMultiple, kOpMatchNone, kOpInOutCtrlr};
   FlowListMoMgr *mgr =
-    reinterpret_cast<FlowListMoMgr *>(const_cast<MoManager *>(GetMoManager(
-            UNC_KT_FLOWLIST)));
+      reinterpret_cast<FlowListMoMgr *>(const_cast<MoManager *>(GetMoManager(
+                  UNC_KT_FLOWLIST)));
   if (NULL == mgr) {
     UPLL_LOG_DEBUG("mgr is NULL");
     DELETE_IF_NOT_NULL(pkey);
     return UPLL_RC_ERR_GENERIC;
   }
   result_code = mgr->ReadConfigDB(pkey, req->datatype, UNC_OP_READ,
-                             dbop, dmi, CTRLRTBL);
+                                  dbop, dmi, CTRLRTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
       UPLL_LOG_DEBUG("No record in flowlist ctrlrtbl");
@@ -4138,48 +4286,34 @@ upll_rc_t FlowListEntryMoMgr::CreateEntryCtrlrTbl(IpcReqRespHeader *req,
     GET_USER_DATA_CTRLR(temp_pkey, ctrlr_id);
     SET_USER_DATA_CTRLR(ctrlr_ckv, ctrlr_id);
 
-    ConfigKeyVal *temp_key = NULL;
-    result_code = GetChildConfigKey(temp_key, NULL);
-    if (UPLL_RC_SUCCESS != result_code) {
-          DELETE_IF_NOT_NULL(pkey);
-          DELETE_IF_NOT_NULL(ctrlr_ckv);
-          UPLL_LOG_DEBUG("GetChildConfigKey failed(%d)", result_code);
-          return result_code;
-    }
-
-    result_code = GetInstanceCount(temp_key, reinterpret_cast<char *>(ctrlr_id),
-                                   req->datatype,
-                                   &cur_instance_count,
-                                   dmi, CTRLRTBL);
-    DELETE_IF_NOT_NULL(temp_key);
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("GetInstanceCount failed(%d)", result_code);
-      DELETE_IF_NOT_NULL(ctrlr_ckv);
-      DELETE_IF_NOT_NULL(pkey);
-      return result_code;
-    }
-
     // Validate whether the attributes supported by controller or not
     result_code = ValidateCapability(req, ikey, reinterpret_cast<char *>(
-                                     ctrlr_id));
+            ctrlr_id));
     if (result_code != UPLL_RC_SUCCESS) {
-    // Error should be returned if the failure code is other then ctrlr not
-    // supported
+      // Error should be returned if the failure code is other then ctrlr not
+      // supported
       DELETE_IF_NOT_NULL(ctrlr_ckv);
-      if ((!ctrlr_mgr->GetCtrlrType(reinterpret_cast<char *>(ctrlr_id),
-          req->datatype, &ctrlrtype)) || (ctrlrtype != UNC_CT_PFC)) {
-          result_code = UPLL_RC_SUCCESS;
-          UPLL_LOG_DEBUG("Controller type is  %d", ctrlrtype);
-          temp_pkey = temp_pkey->get_next_cfg_key_val();
-          continue;
+      if ((!ctrlr_mgr->GetCtrlrType(
+                  reinterpret_cast<char *>(ctrlr_id),
+                  req->datatype, &ctrlrtype)) || (ctrlrtype != UNC_CT_PFC)) {
+        result_code = UPLL_RC_SUCCESS;
+        UPLL_LOG_DEBUG("Controller type is  %d", ctrlrtype);
+        temp_pkey = temp_pkey->get_next_cfg_key_val();
+        continue;
       }
       DELETE_IF_NOT_NULL(pkey);
       UPLL_LOG_DEBUG("ValidateCapability Failed: result_code=%d",
-      result_code);
+                     result_code);
+      return result_code;
+    }
+    result_code = DupConfigKeyVal(tmp_ikey, ikey, MAINTBL);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG("DupConfigKeyVal Error");
+      DELETE_IF_NOT_NULL(pkey);
       return result_code;
     }
     val_flowlist_entry_t *val_fle = reinterpret_cast<val_flowlist_entry_t *>
-                                    (GetVal(temp_pkey));
+        (GetVal(tmp_ikey));
     /** change NOT_SOPPRTED attribute to INVALID to store in ctrlr table */
     SetValidAttributesForController(val_fle);
 
@@ -4187,20 +4321,22 @@ upll_rc_t FlowListEntryMoMgr::CreateEntryCtrlrTbl(IpcReqRespHeader *req,
         <val_flowlist_entry_ctrl_t *>
         (ConfigKeyVal::Malloc(sizeof(val_flowlist_entry_ctrl_t)));
     for ( unsigned int loop = 0;
-        loop < sizeof(val_fle->valid)/sizeof(val_fle->valid[0]);
-        ++loop ) {
+         loop < sizeof(val_fle->valid)/sizeof(val_fle->valid[0]);
+         ++loop ) {
       val_ctrlr->valid[loop] = val_fle->valid[loop];
     }
     ctrlr_ckv->AppendCfgVal(IpctSt::kIpcStValFlowlistEntry, val_ctrlr);
     DbSubOp dbop1 = {kOpNotRead, kOpMatchNone, kOpInOutCtrlr};
     result_code = UpdateConfigDB(ctrlr_ckv, req->datatype, UNC_OP_CREATE,
-                               dmi, &dbop1, CTRLRTBL);
+                                 dmi, &dbop1, CTRLRTBL);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("UpdateConfigDB failed %d", result_code);
       DELETE_IF_NOT_NULL(pkey);
+      DELETE_IF_NOT_NULL(tmp_ikey);
       DELETE_IF_NOT_NULL(ctrlr_ckv);
       return result_code;
     }
+    DELETE_IF_NOT_NULL(tmp_ikey);
     DELETE_IF_NOT_NULL(ctrlr_ckv);
     temp_pkey = temp_pkey->get_next_cfg_key_val();
   }
@@ -4209,21 +4345,21 @@ upll_rc_t FlowListEntryMoMgr::CreateEntryCtrlrTbl(IpcReqRespHeader *req,
 }
 
 upll_rc_t FlowListEntryMoMgr::UpdateMo(IpcReqRespHeader *req,
-                              ConfigKeyVal *ikey,
-                              DalDmlIntf *dmi) {
+                                       ConfigKeyVal *ikey,
+                                       DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
 
   uint8_t *ctrlr_id = NULL;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
   if (NULL == ikey || NULL == req || !(ikey->get_key())) {
-     UPLL_LOG_DEBUG("Given Input is Empty");
-     return UPLL_RC_ERR_GENERIC;
+    UPLL_LOG_DEBUG("Given Input is Empty");
+    return UPLL_RC_ERR_GENERIC;
   }
 
   result_code = ValidateMessage(req, ikey);
   if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("Validation Message is Failed ");
-      return result_code;
+    UPLL_LOG_DEBUG("Validation Message is Failed ");
+    return result_code;
   }
 
   result_code = ValidateFlowlistEntryVal(req, ikey, dmi);
@@ -4243,30 +4379,31 @@ upll_rc_t FlowListEntryMoMgr::UpdateMo(IpcReqRespHeader *req,
   result_code = ReadConfigDB(okey, req->datatype, UNC_OP_READ,
                              dbop, dmi, MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("Record does Not Exists");
-      DELETE_IF_NOT_NULL(okey);
-      return result_code;
+    UPLL_LOG_DEBUG("Record does Not Exists");
+    DELETE_IF_NOT_NULL(okey);
+    return result_code;
   }
   result_code = ValidateAttribute(okey, dmi, req);
   if (UPLL_RC_SUCCESS  != result_code) {
-      UPLL_LOG_DEBUG("Validate Attribute is Failed");
-      DELETE_IF_NOT_NULL(okey);
-      return result_code;
+    UPLL_LOG_DEBUG("Validate Attribute is Failed");
+    DELETE_IF_NOT_NULL(okey);
+    return result_code;
   }
 
   // Construct the DUP key to update in the controller table
   result_code = DupConfigKeyVal(ctrl_key, ikey, MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("DupConfigKeyVal is failed result_code = %d",
-                    result_code);
-      DELETE_IF_NOT_NULL(okey);
-      return result_code;
+    UPLL_LOG_DEBUG("DupConfigKeyVal is failed result_code = %d",
+                   result_code);
+    DELETE_IF_NOT_NULL(okey);
+    return result_code;
   }
   result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_UPDATE,
                                dmi, MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("Updation Failure in DB : %d", result_code);
     DELETE_IF_NOT_NULL(okey);
+    DELETE_IF_NOT_NULL(ctrl_key);
     return result_code;
   }
 
@@ -4277,28 +4414,28 @@ upll_rc_t FlowListEntryMoMgr::UpdateMo(IpcReqRespHeader *req,
 
   if (UPLL_RC_SUCCESS == result_code ||
       result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
-      UPLL_LOG_DEBUG("Record  Exists in flowlist controller table");
+    UPLL_LOG_DEBUG("Record  Exists in flowlist controller table");
 
-      ConfigKeyVal *tmp_key = okey;
-      while (tmp_key != NULL) {
-        GET_USER_DATA_CTRLR(tmp_key, ctrlr_id);
-        result_code = UpdateControllerTable(ctrl_key,
+    ConfigKeyVal *tmp_key = okey;
+    while (tmp_key != NULL) {
+      GET_USER_DATA_CTRLR(tmp_key, ctrlr_id);
+      result_code = UpdateControllerTable(ctrl_key,
                                           UNC_OP_UPDATE,
                                           req->datatype,
                                           dmi,
                                           reinterpret_cast<char*>(ctrlr_id));
-     
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("Failed to Update the controller Table err(%d)",
+
+      if (result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("Failed to Update the controller Table err(%d)",
                        result_code);
-          DELETE_IF_NOT_NULL(okey);
-          DELETE_IF_NOT_NULL(ctrl_key);
-          okey = NULL;
-          ctrl_key = NULL;
-          return result_code;
-        }
-        ctrlr_id = NULL;
-        tmp_key = tmp_key->get_next_cfg_key_val();
+        DELETE_IF_NOT_NULL(okey);
+        DELETE_IF_NOT_NULL(ctrl_key);
+        okey = NULL;
+        ctrl_key = NULL;
+        return result_code;
+      }
+      ctrlr_id = NULL;
+      tmp_key = tmp_key->get_next_cfg_key_val();
     }
   }
 
@@ -4309,8 +4446,10 @@ upll_rc_t FlowListEntryMoMgr::UpdateMo(IpcReqRespHeader *req,
 }
 
 upll_rc_t FlowListEntryMoMgr::UpdateMainTbl(ConfigKeyVal *fle_key,
-      unc_keytype_operation_t op, uint32_t driver_result,
-      ConfigKeyVal *nreq, DalDmlIntf *dmi) {
+                                            unc_keytype_operation_t op,
+                                            uint32_t driver_result,
+                                            ConfigKeyVal *nreq,
+                                            DalDmlIntf *dmi) {
   ConfigKeyVal *ck_fle = NULL;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_flowlist_entry_t *fle_val = NULL;
@@ -4327,12 +4466,14 @@ upll_rc_t FlowListEntryMoMgr::UpdateMainTbl(ConfigKeyVal *fle_key,
     fle_val = reinterpret_cast<val_flowlist_entry_t *>(GetVal(ck_fle));
     if (!fle_val) {
       UPLL_LOG_DEBUG("invalid val");
+      DELETE_IF_NOT_NULL(ck_fle);
       return UPLL_RC_ERR_GENERIC;
     }
   } else {
     result_code = GetChildConfigKey(ck_fle, fle_key);
     if (!ck_fle || result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Returning error %d", result_code);
+      DELETE_IF_NOT_NULL(ck_fle);
       return UPLL_RC_ERR_GENERIC;
     }
   }
@@ -4345,11 +4486,12 @@ upll_rc_t FlowListEntryMoMgr::UpdateMainTbl(ConfigKeyVal *fle_key,
       nfleval = (nreq)?GetVal(nreq):NULL;
       if (!nfleval) {
         UPLL_LOG_DEBUG("Invalid param");
+        DELETE_IF_NOT_NULL(ck_fle);
         return UPLL_RC_ERR_GENERIC;
       }
       CompareValidValue(fleval, nfleval, true);
       fle_val->cs_row_status =
-             reinterpret_cast<val_flowlist_entry_t*>(GetVal(nreq))->cs_row_status;
+          reinterpret_cast<val_flowlist_entry_t*>(GetVal(nreq))->cs_row_status;
 
       break;
     case UNC_OP_DELETE:
@@ -4361,7 +4503,7 @@ upll_rc_t FlowListEntryMoMgr::UpdateMainTbl(ConfigKeyVal *fle_key,
 
   DbSubOp dbop = {kOpNotRead, kOpMatchNone, kOpInOutNone};
   dbop.inoutop = kOpInOutCs;
-  result_code = UpdateConfigDB(ck_fle, UPLL_DT_STATE, op, dmi,&dbop, MAINTBL);
+  result_code = UpdateConfigDB(ck_fle, UPLL_DT_STATE, op, dmi, &dbop, MAINTBL);
   EnqueCfgNotification(op, UPLL_DT_RUNNING, ck_fle);
   delete ck_fle;
   return result_code;
@@ -4411,8 +4553,8 @@ upll_rc_t FlowListEntryMoMgr::SetValidAudit(ConfigKeyVal *&ikey) {
     return UPLL_RC_ERR_GENERIC;
   }
   for ( unsigned int loop = 0;
-        loop < sizeof(val->valid)/sizeof(val->valid[0]);
-        ++loop ) {
+       loop < sizeof(val->valid)/sizeof(val->valid[0]);
+       ++loop ) {
     val->cs_attr[loop] = UNC_CS_APPLIED;
   }
   val->cs_row_status = UNC_CS_APPLIED;
@@ -4420,18 +4562,18 @@ upll_rc_t FlowListEntryMoMgr::SetValidAudit(ConfigKeyVal *&ikey) {
 }
 
 upll_rc_t FlowListEntryMoMgr::UpdateConfigStatus(ConfigKeyVal *main_ckv,
-                                       unc_keytype_operation_t op,
-                                       uint32_t driver_result,
-                                       ConfigKeyVal *upd_key,
-                                       DalDmlIntf *dmi,
-                                       ConfigKeyVal *ctrlr_key) {
+                                                 unc_keytype_operation_t op,
+                                                 uint32_t driver_result,
+                                                 ConfigKeyVal *upd_key,
+                                                 DalDmlIntf *dmi,
+                                                 ConfigKeyVal *ctrlr_key) {
   UPLL_FUNC_TRACE;
   // upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_flowlist_entry_ctrl_t *ctrlr_val;
 
   val_flowlist_entry_t *val_main = reinterpret_cast
       <val_flowlist_entry_t *>(GetVal(main_ckv));
-  uint8_t cs_status; 
+  uint8_t cs_status;
   unc_keytype_configstatus_t ctrlr_status =
       (driver_result == UPLL_RC_SUCCESS) ? UNC_CS_APPLIED : UNC_CS_NOT_APPLIED;
   ctrlr_val = reinterpret_cast<val_flowlist_entry_ctrl_t *>(GetVal(ctrlr_key));
@@ -4440,135 +4582,138 @@ upll_rc_t FlowListEntryMoMgr::UpdateConfigStatus(ConfigKeyVal *main_ckv,
   UPLL_LOG_TRACE("cs_status %d ctrlr_status %d\n", cs_status, ctrlr_status);
   if (op == UNC_OP_CREATE) {
     ctrlr_val->cs_row_status = ctrlr_status;
-  if (val_main->cs_row_status == UNC_CS_UNKNOWN) {
-        /* first entry in ctrlr table */
+    if (val_main->cs_row_status == UNC_CS_UNKNOWN) {
+      /* first entry in ctrlr table */
       cs_status = ctrlr_status;
-    } else if (val_main->cs_row_status == UNC_CS_INVALID) { 
+    } else if (val_main->cs_row_status == UNC_CS_INVALID) {
       cs_status = UNC_CS_INVALID;
     } else if (val_main->cs_row_status == UNC_CS_APPLIED) {
-        if (ctrlr_status == UNC_CS_NOT_APPLIED) {
-          cs_status = UNC_CS_PARTIALLY_APPLIED;
-        }
+      if (ctrlr_status == UNC_CS_NOT_APPLIED) {
+        cs_status = UNC_CS_PARTIALLY_APPLIED;
+      }
     } else if (val_main->cs_row_status == UNC_CS_NOT_APPLIED) {
-        if (ctrlr_status == UNC_CS_APPLIED) {
-          cs_status =  UNC_CS_PARTIALLY_APPLIED;
-        }
-      } else {
-         cs_status = UNC_CS_PARTIALLY_APPLIED;
+      if (ctrlr_status == UNC_CS_APPLIED) {
+        cs_status =  UNC_CS_PARTIALLY_APPLIED;
       }
+    } else {
+      cs_status = UNC_CS_PARTIALLY_APPLIED;
+    }
     val_main->cs_row_status = cs_status;
   }
 
-  val_flowlist_entry_ctrl_t *run_ctrlr_val = 
-                   reinterpret_cast<val_flowlist_entry_ctrl_t *>
-                                              (GetVal(upd_key));
+  val_flowlist_entry_ctrl_t *run_ctrlr_val =
+      reinterpret_cast<val_flowlist_entry_ctrl_t *>
+      (GetVal(upd_key));
   // Updating the Controller cs_row_status
   if ((op == UNC_OP_UPDATE) && (upd_key != NULL)) {
-  //  ctrlr_val->cs_row_status = run_ctrlr_val->cs_row_status;
+    //  ctrlr_val->cs_row_status = run_ctrlr_val->cs_row_status;
     void *valmain = reinterpret_cast<void *>(val_main);
     CompareValidValue(valmain, (GetVal(upd_key)), true);
     for (unsigned int loop = 0; loop < sizeof(val_main->valid)/
-      sizeof(val_main->valid[0]); ++loop) {
-    if ((val_main->valid[loop] != UNC_VF_INVALID) && (val_main->valid[loop]
-          != UNC_VF_VALID_NO_VALUE)) {
-     if (ctrlr_status == UNC_CS_APPLIED) {
-        if(ctrlr_val->valid[loop] == UNC_VF_VALID) {
-          ctrlr_val->cs_attr[loop] = UNC_CS_APPLIED;
-        } 
-       if(val_main->cs_attr[loop] == UNC_CS_UNKNOWN) {
-         cs_status = UNC_CS_APPLIED;
-       } else if (val_main->cs_attr[loop] == UNC_CS_NOT_APPLIED) {
-         cs_status = UNC_CS_PARTIALLY_APPLIED ;
-       } else if (val_main->cs_attr[loop] == UNC_CS_INVALID) {
-         cs_status = UNC_CS_INVALID;
-       }
-     } else if (ctrlr_status == UNC_CS_NOT_APPLIED) {
-       ctrlr_val->cs_attr[loop] = UNC_CS_NOT_APPLIED;
-       if(val_main->cs_attr[loop] == UNC_CS_UNKNOWN) {
-         cs_status = UNC_CS_NOT_APPLIED;
-       } else if(val_main->cs_attr[loop] == UNC_CS_APPLIED) {
-           cs_status = UNC_CS_PARTIALLY_APPLIED ;
-       } else if (val_main->cs_attr[loop] == UNC_CS_INVALID) {
-         cs_status = UNC_CS_INVALID;
-       }
-     }
-     val_main->cs_attr[loop]  = cs_status;
-     UPLL_LOG_DEBUG("UpdatePath tbl cs_attr : %d", val_main->cs_attr[loop]);
-    }
-    if (val_main->valid[loop] == UNC_VF_INVALID) {
-      if (ctrlr_status == UNC_CS_APPLIED){
-        if (run_ctrlr_val->valid[loop] == UNC_VF_VALID) {
-          if (val_main->cs_attr[loop] == UNC_CS_PARTIALLY_APPLIED) {
-             val_main->cs_attr[loop] = UNC_CS_PARTIALLY_APPLIED;         
-          } else if (val_main->cs_attr[loop] == UNC_CS_NOT_APPLIED) { 
-              val_main->cs_attr[loop] = UNC_CS_NOT_APPLIED;
+         sizeof(val_main->valid[0]); ++loop) {
+      if ((val_main->valid[loop] != UNC_VF_INVALID) &&
+          (val_main->valid[loop]
+           != UNC_VF_VALID_NO_VALUE)) {
+        if (ctrlr_status == UNC_CS_APPLIED) {
+          if (ctrlr_val->valid[loop] == UNC_VF_VALID) {
+            ctrlr_val->cs_attr[loop] = UNC_CS_APPLIED;
+          }
+          if (val_main->cs_attr[loop] == UNC_CS_UNKNOWN) {
+            cs_status = UNC_CS_APPLIED;
+          } else if (val_main->cs_attr[loop] == UNC_CS_NOT_APPLIED) {
+            cs_status = UNC_CS_PARTIALLY_APPLIED;
           } else if (val_main->cs_attr[loop] == UNC_CS_INVALID) {
-            val_main->cs_attr[loop] = UNC_CS_INVALID;
-          } else {
-              val_main->cs_attr[loop]  = ctrlr_status;      
+            cs_status = UNC_CS_INVALID;
+          }
+        } else if (ctrlr_status == UNC_CS_NOT_APPLIED) {
+          ctrlr_val->cs_attr[loop] = UNC_CS_NOT_APPLIED;
+          if (val_main->cs_attr[loop] == UNC_CS_UNKNOWN) {
+            cs_status = UNC_CS_NOT_APPLIED;
+          } else if (val_main->cs_attr[loop] == UNC_CS_APPLIED) {
+            cs_status = UNC_CS_PARTIALLY_APPLIED;
+          } else if (val_main->cs_attr[loop] == UNC_CS_INVALID) {
+            cs_status = UNC_CS_INVALID;
           }
         }
-        if (ctrlr_val->cs_attr[loop] == UNC_CS_APPLIED) {
-          ctrlr_val->cs_attr[loop] = ctrlr_status;
-        }  
-      } else if (ctrlr_status == UNC_CS_NOT_APPLIED) {
-        if (run_ctrlr_val->valid[loop] == UNC_VF_VALID) {
-          if (val_main->cs_attr[loop] == UNC_CS_PARTIALLY_APPLIED) {
-             val_main->cs_attr[loop]  = UNC_CS_PARTIALLY_APPLIED;
-           } else if (val_main->cs_attr[loop] == UNC_CS_NOT_APPLIED) {
+        val_main->cs_attr[loop]  = cs_status;
+        UPLL_LOG_DEBUG("UpdatePath tbl cs_attr : %d", val_main->cs_attr[loop]);
+      }
+      if (val_main->valid[loop] == UNC_VF_INVALID) {
+        if (ctrlr_status == UNC_CS_APPLIED) {
+          if (run_ctrlr_val->valid[loop] == UNC_VF_VALID) {
+            if (val_main->cs_attr[loop] == UNC_CS_PARTIALLY_APPLIED) {
+              val_main->cs_attr[loop] = UNC_CS_PARTIALLY_APPLIED;
+            } else if (val_main->cs_attr[loop] == UNC_CS_NOT_APPLIED) {
+              val_main->cs_attr[loop] = UNC_CS_NOT_APPLIED;
+            } else if (val_main->cs_attr[loop] == UNC_CS_INVALID) {
+              val_main->cs_attr[loop] = UNC_CS_INVALID;
+            } else {
+              val_main->cs_attr[loop]  = ctrlr_status;
+            }
+          }
+          if (ctrlr_val->cs_attr[loop] == UNC_CS_APPLIED) {
+            ctrlr_val->cs_attr[loop] = ctrlr_status;
+          }
+        } else if (ctrlr_status == UNC_CS_NOT_APPLIED) {
+          if (run_ctrlr_val->valid[loop] == UNC_VF_VALID) {
+            if (val_main->cs_attr[loop] == UNC_CS_PARTIALLY_APPLIED) {
+              val_main->cs_attr[loop]  = UNC_CS_PARTIALLY_APPLIED;
+            } else if (val_main->cs_attr[loop] == UNC_CS_NOT_APPLIED) {
               val_main->cs_attr[loop]  = UNC_CS_NOT_APPLIED;
-           } else if (val_main->cs_attr[loop] == UNC_CS_INVALID) {
+            } else if (val_main->cs_attr[loop] == UNC_CS_INVALID) {
               val_main->cs_attr[loop]  = UNC_CS_INVALID;
-           } else {
-             val_main->cs_attr[loop]  = UNC_CS_PARTIALLY_APPLIED;      
+            } else {
+              val_main->cs_attr[loop]  = UNC_CS_PARTIALLY_APPLIED;
+            }
           }
         }
       }
+      if (val_main->valid[loop] == UNC_VF_VALID_NO_VALUE) {
+        ctrlr_val->cs_attr[loop] = UNC_CS_UNKNOWN;
+        val_main->cs_attr[loop]  = UNC_CS_UNKNOWN;
+      }
     }
-    if (val_main->valid[loop] == UNC_VF_VALID_NO_VALUE) { 
-      ctrlr_val->cs_attr[loop] = UNC_CS_UNKNOWN;
-      val_main->cs_attr[loop]  = UNC_CS_UNKNOWN;
+  }
+
+  if (op == UNC_OP_CREATE) {
+    for (unsigned int loop = 0; loop < sizeof(val_main->valid)/
+         sizeof(val_main->valid[0]); ++loop) {
+      if (val_main->valid[loop] != UNC_VF_INVALID) {
+        if (ctrlr_val->cs_attr[loop] != UNC_CS_NOT_SUPPORTED)
+          ctrlr_val->cs_attr[loop] = ctrlr_status;
+        else
+          ctrlr_val->cs_attr[loop] = UNC_CS_NOT_SUPPORTED;
+
+        if (val_main->cs_attr[loop] == ctrlr_status) {
+          cs_status = ctrlr_status;
+        } else if (ctrlr_status == UNC_CS_APPLIED) {
+          if (val_main->cs_attr[loop] == UNC_CS_UNKNOWN) {
+            cs_status = ctrlr_status;
+          } else if (val_main->cs_attr[loop] == UNC_CS_NOT_APPLIED) {
+            val_main->cs_attr[loop] = UNC_CS_PARTIALLY_APPLIED;
+          } else if (val_main->cs_attr[loop] == UNC_CS_INVALID) {
+            val_main->cs_attr[loop] = UNC_CS_INVALID;
+          } else {
+            cs_status = val_main->cs_attr[loop];
+          }
+        } else if (ctrlr_status == UNC_CS_NOT_APPLIED) {
+          if (val_main->cs_attr[loop] == UNC_CS_UNKNOWN) {
+            cs_status =  UNC_CS_NOT_APPLIED;
+          } else if (val_main->cs_attr[loop] == UNC_CS_NOT_APPLIED) {
+            cs_status =  UNC_CS_NOT_APPLIED;
+          } else if (val_main->cs_attr[loop] == UNC_CS_APPLIED) {
+            cs_status =  UNC_CS_PARTIALLY_APPLIED;
+          } else if (val_main->cs_attr[loop] == UNC_CS_INVALID) {
+            val_main->cs_attr[loop] = UNC_CS_INVALID;
+          } else {
+            cs_status =  UNC_CS_PARTIALLY_APPLIED;
+          }
+        }
+        val_main->cs_attr[loop]  = cs_status;
+        UPLL_LOG_DEBUG("Main tbl cs_attr : %d", val_main->cs_attr[loop]);
+      }
     }
-   }
- }
-
-  if (op == UNC_OP_CREATE ) {
-  for (unsigned int loop = 0; loop < sizeof(val_main->valid)/
-      sizeof(val_main->valid[0]); ++loop) {
-   if (val_main->valid[loop] != UNC_VF_INVALID){
-     if (ctrlr_val->cs_attr[loop] != UNC_CS_NOT_SUPPORTED)
-       ctrlr_val->cs_attr[loop] = ctrlr_status;
-     else
-       ctrlr_val->cs_attr[loop] = UNC_CS_NOT_SUPPORTED;
-
-   if (val_main->cs_attr[loop] == ctrlr_status) {
-     cs_status = ctrlr_status;
-   } else if (ctrlr_status == UNC_CS_APPLIED) {
-     if (val_main->cs_attr[loop] == UNC_CS_UNKNOWN) {
-       cs_status = ctrlr_status;
-     } else if (val_main->cs_attr[loop] == UNC_CS_NOT_APPLIED) {
-       val_main->cs_attr[loop] = UNC_CS_PARTIALLY_APPLIED;
-     } else if (val_main->cs_attr[loop] == UNC_CS_INVALID) {
-       val_main->cs_attr[loop] = UNC_CS_INVALID;
-     } else {
-       cs_status = val_main->cs_attr[loop];
-     }
-   } else if(ctrlr_status == UNC_CS_NOT_APPLIED) {
-     if(val_main->cs_attr[loop] == UNC_CS_NOT_APPLIED) {
-       cs_status =  UNC_CS_NOT_APPLIED;
-     } else if (val_main->cs_attr[loop] == UNC_CS_APPLIED) {
-       cs_status =  UNC_CS_PARTIALLY_APPLIED;
-     } else if (val_main->cs_attr[loop] == UNC_CS_INVALID) {
-       val_main->cs_attr[loop] = UNC_CS_INVALID;
-     } else {
-       cs_status =  UNC_CS_PARTIALLY_APPLIED;
-     }
-   }
-     val_main->cs_attr[loop]  = cs_status;
-     UPLL_LOG_DEBUG("Main tbl cs_attr : %d", val_main->cs_attr[loop]);
-   }
-  }
- }
+  }
   return UPLL_RC_SUCCESS;
 }
 
@@ -4586,7 +4731,7 @@ upll_rc_t FlowListEntryMoMgr::Get_Tx_Consolidated_Status(
       if (current_ctrlr_cs == UNC_CS_NOT_APPLIED) {
         // Todo: if this vtn has caused it then to change to applied.
         status = (drv_result_status != UNC_CS_APPLIED) ?
-          UNC_CS_PARTIALLY_APPLIED : drv_result_status;
+            UNC_CS_PARTIALLY_APPLIED : drv_result_status;
       }
       break;
     case UNC_CS_APPLIED:
@@ -4594,8 +4739,8 @@ upll_rc_t FlowListEntryMoMgr::Get_Tx_Consolidated_Status(
     case UNC_CS_INVALID:
     default:
       status = (drv_result_status == UNC_CS_NOT_APPLIED)?
-        UNC_CS_PARTIALLY_APPLIED:
-        (status == UNC_CS_UNKNOWN)?drv_result_status:status;
+          UNC_CS_PARTIALLY_APPLIED:
+          (status == UNC_CS_UNKNOWN)?drv_result_status:status;
       break;
   }
   return UPLL_RC_SUCCESS;
@@ -4613,8 +4758,8 @@ upll_rc_t FlowListEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
     return result_code;
   }
   MoMgrImpl *mgr =
-    reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-            UNC_KT_FLOWLIST)));
+      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                  UNC_KT_FLOWLIST)));
   if (!mgr) {
     UPLL_LOG_DEBUG("mgr is NULL");
     DELETE_IF_NOT_NULL(pkey);
index 8363f2a480ba2f73bc65622c21bb7298d5d98030..90930a5979633f25b0333ceac9bf60e54370e8bc 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -19,12 +19,12 @@ namespace upll {
 namespace kt_momgr {
 
 /* This file declares interfaces for keyType KT_VBR_FLOWFILER */
-/**
- * @brief VbrFlowFilterMoMgr class handles all the request
- *  received from service.
- */
-class FlowListEntryMoMgr: public MoMgrImpl {
-  private:
+  /**
  * @brief VbrFlowFilterMoMgr class handles all the request
  *  received from service.
  */
+  class FlowListEntryMoMgr: public MoMgrImpl {
+   private:
     /**
      * Member Variable for FlowListEntryBindInfo.
      */
@@ -36,37 +36,36 @@ class FlowListEntryMoMgr: public MoMgrImpl {
 
     static BindInfo rename_flowlist_entry_main_tbl[];
     static BindInfo rename_flowlist_entry_ctrlr_tbl[];
-    uint32_t cur_instance_count;
-    
+
     bool GetRenameKeyBindInfo(unc_key_type_t key_type,
-    BindInfo *&binfo, int &nattr, MoMgrTables tbl);
-
-   /**
-    * @brief     Methods Used for  Validating Attribute.
-    * @param[in]  kval     The pointer to the ConfigKeyVal class
-    *
-    * @param[in]  dmi      Pointer to the Database Interface.
-    *
-    * @retval  UPLL_RC_SUCCESS      Validation succeeded.
-    * @retval  UPLL_RC_ERR_GENERIC  Validation failure.
-    */
+                              BindInfo *&binfo, int &nattr, MoMgrTables tbl);
+
+    /**
+     * @brief     Methods Used for  Validating Attribute.
+     * @param[in]  kval     The pointer to the ConfigKeyVal class
+     *
+     * @param[in]  dmi      Pointer to the Database Interface.
+     *
+     * @retval  UPLL_RC_SUCCESS      Validation succeeded.
+     * @retval  UPLL_RC_ERR_GENERIC  Validation failure.
+     */
     upll_rc_t ValidateAttribute(ConfigKeyVal *kval,
                                 DalDmlIntf *dmi,
                                 IpcReqRespHeader *req = NULL);
 
-   /**
-    * @Brief Checks if the specified key type(KT_FLOWLIST_ENTRY) and
-    *        associated attributes are supported on the given controller,
-    *        based on the valid flag
-    *
-    * @param[in] IpcReqRespHeader  contains first 8 fields of input request
-    *                              structure
-    * @param[in]   ConfigKeyVal    contains key and value structure.
-    * @param[in]   ctrlr_name      controller_name
-    *
-    * @retval  UPLL_RC_SUCCESS             Validation succeeded.
-    * @retval  UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR  Validation failure.
-    */
+    /**
+     * @Brief Checks if the specified key type(KT_FLOWLIST_ENTRY) and
+     *        associated attributes are supported on the given controller,
+     *        based on the valid flag
+     *
+     * @param[in] IpcReqRespHeader  contains first 8 fields of input request
+     *                              structure
+     * @param[in]   ConfigKeyVal    contains key and value structure.
+     * @param[in]   ctrlr_name      controller_name
+     *
+     * @retval  UPLL_RC_SUCCESS             Validation succeeded.
+     * @retval  UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR  Validation failure.
+     */
     upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *key,
                                  const char *ctrlr_name = NULL);
 
@@ -81,261 +80,263 @@ class FlowListEntryMoMgr: public MoMgrImpl {
      * @retval UPLL_RC_SUCCESS        indicates attribute check completion
      */
     upll_rc_t ValFlowlistEntryAttributeSupportCheck(
-                          val_flowlist_entry_t *val_flowlist_entry,
-                          const uint8_t* attrs);
-
-   /**
-    * @Brief Checks ip_proto attributes is supported
-    *  on the given controller, based on the valid flag.
-    *
-    * @param[in] val_flowlist_entry KT_FLOWLIST_ENTRY value structure
-    * @param[in] attrs               pointer to controller attribute
-    *
-    */
+        val_flowlist_entry_t *val_flowlist_entry,
+        const uint8_t* attrs);
+
+    /**
+     * @Brief Checks ip_proto attributes is supported
+     *  on the given controller, based on the valid flag.
+     *
+     * @param[in] val_flowlist_entry KT_FLOWLIST_ENTRY value structure
+     * @param[in] attrs               pointer to controller attribute
+     *
+     */
     void ValidateIpProtoAttribute(
-      val_flowlist_entry_t *val_flowlist_entry, const uint8_t *attrs);
+        val_flowlist_entry_t *val_flowlist_entry, const uint8_t *attrs);
 
     /**
-    * @Brief Checks Vlan_priority attributes is supported
-    *  on the given controller, based on the valid flag.
-    *
-    * @param[in] val_flowlist_entry KT_FLOWLIST_ENTRY value structure
-    * @param[in] attrs               pointer to controller attributee
-    */
+     * @Brief Checks Vlan_priority attributes is supported
+     *  on the given controller, based on the valid flag.
+     *
+     * @param[in] val_flowlist_entry KT_FLOWLIST_ENTRY value structure
+     * @param[in] attrs               pointer to controller attributee
+     */
     void ValidateVlanPriorityAttribute(
-      val_flowlist_entry_t *val_flowlist_entry, const uint8_t *attrs);
-
-   /**
-    * @Brief Checks dst_mac and src_mac attributes are supported
-    *  on the given controller, based on the valid flag.
-    *
-    * @param[in] val_flowlist_entry KT_FLOWLIST_ENTRY value structure
-    * @param[in] attrs               pointer to controller attribute
-    */
+        val_flowlist_entry_t *val_flowlist_entry, const uint8_t *attrs);
+
+    /**
+     * @Brief Checks dst_mac and src_mac attributes are supported
+     *  on the given controller, based on the valid flag.
+     *
+     * @param[in] val_flowlist_entry KT_FLOWLIST_ENTRY value structure
+     * @param[in] attrs               pointer to controller attribute
+     */
     void ValidateMacAttribute(val_flowlist_entry_t *val_flowlist_entry,
-      const uint8_t *attrs);
-
-   /**
-    * @Brief Checks source and destination IPV4 and IPV4 prefix attributes
-    *  are supported on the given controller, based on the valid flag.
-    *
-    * @param[in] val_flowlist_entry KT_FLOWLIST_ENTRY value structure
-    * @param[in] attrs               pointer to controller attribute
-    */
+                              const uint8_t *attrs);
+
+    /**
+     * @Brief Checks source and destination IPV4 and IPV4 prefix attributes
+     *  are supported on the given controller, based on the valid flag.
+     *
+     * @param[in] val_flowlist_entry KT_FLOWLIST_ENTRY value structure
+     * @param[in] attrs               pointer to controller attribute
+     */
     void ValidateIPAttribute(val_flowlist_entry_t *val_flowlist_entry,
-      const uint8_t *attrs);
-
-   /**
-    * @Brief Checks source and destination IPV6 and IPV6 prefix attributes
-    *  are supported on the given controller, based on the valid flag.
-    *
-    * @param[in] val_flowlist_entry KT_FLOWLIST_ENTRY value structure
-    * @param[in] attrs               pointer to controller attribute
-    */
+                             const uint8_t *attrs);
+
+    /**
+     * @Brief Checks source and destination IPV6 and IPV6 prefix attributes
+     *  are supported on the given controller, based on the valid flag.
+     *
+     * @param[in] val_flowlist_entry KT_FLOWLIST_ENTRY value structure
+     * @param[in] attrs               pointer to controller attribute
+     */
     void ValidateIPV6Attribute(val_flowlist_entry_t *val_flowlist_entry,
-      const uint8_t *attrs);
-
-   /**
-    * @Brief Checks source and destination L4 port and portEndpt attributes
-    *  are supported on the given controller, based on the valid flag.
-    *
-    * @param[in] val_flowlist_entry KT_FLOWLIST_ENTRY value structure
-    * @param[in] attrs               pointer to controller attribute
-    */
+                               const uint8_t *attrs);
+
+    /**
+     * @Brief Checks source and destination L4 port and portEndpt attributes
+     *  are supported on the given controller, based on the valid flag.
+     *
+     * @param[in] val_flowlist_entry KT_FLOWLIST_ENTRY value structure
+     * @param[in] attrs               pointer to controller attribute
+     */
     void ValidateL4PortAttribute(val_flowlist_entry_t *val_flowlist_entry,
-      const uint8_t *attrs);
-
-   /**
-    * @Brief Checks icmp_type, icmp_code, icmpv6_type, icmpv6_code
-    *  are supported on the given controller, based on the valid flag.
-    *
-    * @param[in] val_flowlist_entry KT_FLOWLIST_ENTRY value structure
-    * @param[in] attrs               pointer to controller attribute
-    */
+                                 const uint8_t *attrs);
+
+    /**
+     * @Brief Checks icmp_type, icmp_code, icmpv6_type, icmpv6_code
+     *  are supported on the given controller, based on the valid flag.
+     *
+     * @param[in] val_flowlist_entry KT_FLOWLIST_ENTRY value structure
+     * @param[in] attrs               pointer to controller attribute
+     */
     void ValidateICMPAttribute(val_flowlist_entry_t *val_flowlist_entry,
-     const uint8_t *attrs);
-   /**
-    * @Brief Checks Mac_eth_type attributes is supported
-    *  on the given controller, based on the valid flag.
-    *
-    * @param[in] val_flowlist_entry KT_FLOWLIST_ENTRY value structure
-    * @param[in] attrs               pointer to controller attribute
-    */
+                               const uint8_t *attrs);
+    /**
+     * @Brief Checks Mac_eth_type attributes is supported
+     *  on the given controller, based on the valid flag.
+     *
+     * @param[in] val_flowlist_entry KT_FLOWLIST_ENTRY value structure
+     * @param[in] attrs               pointer to controller attribute
+     */
     void ValidateMacEthTypeAttribute(
-      val_flowlist_entry_t *val_flowlist_entry, const uint8_t *attrs);
-
-   /**
-    * @Brief Checks DSCP attributes is supported
-    *  on the given controller, based on the valid flag.
-    *
-    * @param[in] val_flowlist_entry KT_FLOWLIST_ENTRY value structure
-    * @param[in] attrs               pointer to controller attribute
-    */
+        val_flowlist_entry_t *val_flowlist_entry, const uint8_t *attrs);
+
+    /**
+     * @Brief Checks DSCP attributes is supported
+     *  on the given controller, based on the valid flag.
+     *
+     * @param[in] val_flowlist_entry KT_FLOWLIST_ENTRY value structure
+     * @param[in] attrs               pointer to controller attribute
+     */
     void ValidateIpDscpAttribute(
-      val_flowlist_entry_t *val_flowlist_entry, const uint8_t *attrs);
-
-   /**
-    * @Brief Validates the syntax of the specified key and value structure
-    *        for KT_FLOWLIST_ENTRY keytype
-    *
-    * @param[in] IpcReqRespHeader  contains first 8 fields of input request structure
-    * @param[in] ConfigKeyVal      key and value structure.
-    *
-    * @retval UPLL_RC_SUCCESS              Successful.
-    * @retval UPLL_RC_ERR_CFG_SYNTAX       Syntax error.
-    * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE key_flowlist_entry is not available.
-    * @retval UPLL_RC_ERR_GENERIC          Generic failure.
-    * @retval UPLL_RC_ERR_INVALID_OPTION1  option1 is not valid.
-    * @retval UPLL_RC_ERR_INVALID_OPTION2  option2 is not valid.
-    */
+        val_flowlist_entry_t *val_flowlist_entry, const uint8_t *attrs);
+
+    /**
+     * @Brief Validates the syntax of the specified key and value structure
+     *        for KT_FLOWLIST_ENTRY keytype
+     *
+     * @param[in] IpcReqRespHeader  contains first 8 fields of input request structure
+     * @param[in] ConfigKeyVal      key and value structure.
+     *
+     * @retval UPLL_RC_SUCCESS              Successful.
+     * @retval UPLL_RC_ERR_CFG_SYNTAX       Syntax error.
+     * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE key_flowlist_entry is not available.
+     * @retval UPLL_RC_ERR_GENERIC          Generic failure.
+     * @retval UPLL_RC_ERR_INVALID_OPTION1  option1 is not valid.
+     * @retval UPLL_RC_ERR_INVALID_OPTION2  option2 is not valid.
+     */
     upll_rc_t ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *key);
 
-   /**
-    * @Brief Validates the syntax for KT_FLOWLIST_ENTRY keytype key structure.
-    * @param[in] key_flowlist  KT_FLOWLIST_ENTRY key structure.
-    * @retval UPLL_RC_SUCCESS         validation succeeded.
-    * @retval UPLL_RC_ERR_CFG_SYNTAX  validation failed.
-    */
+    /**
+     * @Brief Validates the syntax for KT_FLOWLIST_ENTRY keytype key structure.
+     * @param[in] key_flowlist  KT_FLOWLIST_ENTRY key structure.
+     * @retval UPLL_RC_SUCCESS         validation succeeded.
+     * @retval UPLL_RC_ERR_CFG_SYNTAX  validation failed.
+     */
     upll_rc_t ValidateFlowlistEntryKey(ConfigKeyVal *key,
                                        unc_keytype_operation_t op);
 
-   /**
-    * @Brief Validates the syntax for KT_FLOWLIST_ENTRY keytype value structure.
-    *
-    * @param[in] val_flowlist KT_FLOWLIST_ENTRY value structure.
-    *
-    * @retval UPLL_RC_SUCCESS         validation succeeded.
-    * @retval UPLL_RC_ERR_CFG_SYNTAX  validation failed.
-    */
+    /**
+     * @Brief Validates the syntax for KT_FLOWLIST_ENTRY keytype value structure.
+     *
+     * @param[in] val_flowlist KT_FLOWLIST_ENTRY value structure.
+     *
+     * @retval UPLL_RC_SUCCESS         validation succeeded.
+     * @retval UPLL_RC_ERR_CFG_SYNTAX  validation failed.
+     */
     upll_rc_t ValidateFlowlistEntryVal(
-       ConfigKeyVal *key, uint32_t operation, uint32_t dt_type);
+        ConfigKeyVal *key, uint32_t operation, uint32_t dt_type);
 
     upll_rc_t ValidateFlowlistEntryVal(IpcReqRespHeader *req,
-                                 ConfigKeyVal *key,
-                                 DalDmlIntf *dmi);
-   /**
-    * @Brief Validates the syntax for mac_dst, mac_src fields
-    *
-    * @param[in] val_flowlist_entry  KT_FLOWLIST_ENTRY value structure.
-    * @param[in] operation           Describes operation code
-    *
-    * @retval UPLL_RC_SUCCESS         validation succeeded.
-    * @retval UPLL_RC_ERR_CFG_SYNTAX  validation failed.
-    */
+                                       ConfigKeyVal *key,
+                                       DalDmlIntf *dmi);
+    /**
+     * @Brief Validates the syntax for mac_dst, mac_src fields
+     *
+     * @param[in] val_flowlist_entry  KT_FLOWLIST_ENTRY value structure.
+     * @param[in] operation           Describes operation code
+     *
+     * @retval UPLL_RC_SUCCESS         validation succeeded.
+     * @retval UPLL_RC_ERR_CFG_SYNTAX  validation failed.
+     */
     upll_rc_t ValidateFlowlistMacAddr(val_flowlist_entry_t *val_flowlist_entry,
-                                       uint32_t operation);
-   /**
-    * @Brief Validates the syntax for mac_eth_type field
-    *
-    * @param[in] val_flowlist_entry  KT_FLOWLIST_ENTRY value structure.
-    * @param[in] operation           Describes operation code
-    *
-    * @retval UPLL_RC_SUCCESS         validation succeeded.
-    * @retval UPLL_RC_ERR_CFG_SYNTAX  validation failed.
-    */
+                                      uint32_t operation);
+    /**
+     * @Brief Validates the syntax for mac_eth_type field
+     *
+     * @param[in] val_flowlist_entry  KT_FLOWLIST_ENTRY value structure.
+     * @param[in] operation           Describes operation code
+     *
+     * @retval UPLL_RC_SUCCESS         validation succeeded.
+     * @retval UPLL_RC_ERR_CFG_SYNTAX  validation failed.
+     */
     upll_rc_t ValidateEthType(val_flowlist_entry_t *val_flowlist_entry,
-                               uint32_t operation);
-   /**
-    * @Brief Validates the syntax for dst_ip, dst_ip_prefix fields
-    *
-    * @param[in] val_flowlist_entry KT_FLOWLIST_ENTRY value structure.
-    * @param[in] operation     Describes operation code
-    *
-    * @retval UPLL_RC_SUCCESS        validation succeeded.
-    * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
-    */
+                              uint32_t operation);
+    /**
+     * @Brief Validates the syntax for dst_ip, dst_ip_prefix fields
+     *
+     * @param[in] val_flowlist_entry KT_FLOWLIST_ENTRY value structure.
+     * @param[in] operation     Describes operation code
+     *
+     * @retval UPLL_RC_SUCCESS        validation succeeded.
+     * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
+     */
     upll_rc_t ValidateIPAddress(val_flowlist_entry_t *val_flowlist_entry,
-    uint8_t ip_type, unc_keytype_operation_t operation, bool is_src_ip);
-
-   /**
-    * @Brief Validates the syntax for valn_priority field
-    *
-    * @param[in] val_flowlist_entry KT_FLOWLIST_ENTRY value structure.
-    * @param[in] operation     Describes operation code
-    *
-    * @retval UPLL_RC_SUCCESS        validation succeeded.
-    * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
-    */
+                                uint8_t ip_type,
+                                unc_keytype_operation_t operation,
+                                bool is_src_ip);
+
+    /**
+     * @Brief Validates the syntax for valn_priority field
+     *
+     * @param[in] val_flowlist_entry KT_FLOWLIST_ENTRY value structure.
+     * @param[in] operation     Describes operation code
+     *
+     * @retval UPLL_RC_SUCCESS        validation succeeded.
+     * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
+     */
     upll_rc_t ValidateVlanPriority(val_flowlist_entry_t *val_flowlist_entry,
-                                    uint32_t operation);
-
-   /**
-    * @Brief Validates the syntax for ip_proto field
-    *
-    * @param[in] val_flowlist_entry KT_FLOWLIST_ENTRY value structure.
-    * @param[in] operation     Describes operation code
-    *
-    * @retval UPLL_RC_SUCCESS        validation succeeded.
-    * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
-    */
+                                   uint32_t operation);
+
+    /**
+     * @Brief Validates the syntax for ip_proto field
+     *
+     * @param[in] val_flowlist_entry KT_FLOWLIST_ENTRY value structure.
+     * @param[in] operation     Describes operation code
+     *
+     * @retval UPLL_RC_SUCCESS        validation succeeded.
+     * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
+     */
     upll_rc_t ValidateIPProto(val_flowlist_entry_t *val_flowlist_entry,
                               uint32_t operation);
 
-   /**
-    * @Brief Validates the syntax for DSCP field
-    *
-    * @param[in] val_flowlist_entry KT_FLOWLIST_ENTRY value structure.
-    * @param[in] operation     Describes operation code
-    *
-    * @retval UPLL_RC_SUCCESS        validation succeeded.
-    * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
-    */
+    /**
+     * @Brief Validates the syntax for DSCP field
+     *
+     * @param[in] val_flowlist_entry KT_FLOWLIST_ENTRY value structure.
+     * @param[in] operation     Describes operation code
+     *
+     * @retval UPLL_RC_SUCCESS        validation succeeded.
+     * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
+     */
     upll_rc_t ValidateDSCP(val_flowlist_entry_t *val_flowlist_entry,
                            uint32_t operation);
 
-   /**
-    * @Brief Validates the syntax for l4_dst_port_endpt, l4_dst_port fields
-    *
-    * @param[in] val_flowlist_entry KT_FLOWLIST_ENTRY value structure.
-    * @param[in] operation     Describes operation code
-    *
-    * @retval UPLL_RC_SUCCESS        validation succeeded.
-    * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
-    */
+    /**
+     * @Brief Validates the syntax for l4_dst_port_endpt, l4_dst_port fields
+     *
+     * @param[in] val_flowlist_entry KT_FLOWLIST_ENTRY value structure.
+     * @param[in] operation     Describes operation code
+     *
+     * @retval UPLL_RC_SUCCESS        validation succeeded.
+     * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
+     */
     upll_rc_t ValidateL4Port(val_flowlist_entry_t *val_flowlist_entry,
                              val_flowlist_entry_t *db_val_fle,
                              uint32_t operation,
                              bool is_src_port);
 
-   /**
-    * @Brief Validates the syntax for icmp_type, icmp_code fields
-    *
-    * @param[in] val_flowlist_entry KT_FLOWLIST_ENTRY value structure.
-    * @param[in] val_flowlist KT_FLOWLIST value structure
-    * @param[in] operation     Describes operation code
-    *
-    * @retval UPLL_RC_SUCCESS        validation succeeded.
-    * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
-    */
+    /**
+     * @Brief Validates the syntax for icmp_type, icmp_code fields
+     *
+     * @param[in] val_flowlist_entry KT_FLOWLIST_ENTRY value structure.
+     * @param[in] val_flowlist KT_FLOWLIST value structure
+     * @param[in] operation     Describes operation code
+     *
+     * @retval UPLL_RC_SUCCESS        validation succeeded.
+     * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
+     */
 
     upll_rc_t ValidateIcmp(val_flowlist_entry_t *val_flowlist_entry,
                            val_flowlist_entry_t *db_val_fle,
                            uint8_t ip_type, uint32_t operation);
 
-   /**
-    * @Brief Validates the syntax for DSCP field
-    *
-    * @param[in] val_flowlist_entry KT_FLOWLIST_ENTRY value structure.
-    * @param[in] operation     Describes operation code
-    *
-    * @retval UPLL_RC_SUCCESS        validation succeeded.
-    * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
-    */
+    /**
+     * @Brief Validates the syntax for DSCP field
+     *
+     * @param[in] val_flowlist_entry KT_FLOWLIST_ENTRY value structure.
+     * @param[in] operation     Describes operation code
+     *
+     * @retval UPLL_RC_SUCCESS        validation succeeded.
+     * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
+     */
     upll_rc_t ValidateDscp(val_flowlist_entry_t *val_flowlist_entry,
                            uint32_t operation);
 
-   /**
-    * @brief  Method GetControllerSpan.
-    *
-    * @param[out]  ikey     Contains the Pointer to ConfigkeyVal Class
-    * @param[in]   dt_type  Describes Datatype.
-    * @param[in]   dmi      Describes the Objct type .
-    *
-    * @retval  UPLL_RT_SUCCESS      Successfull completion.
-    * @retval  UPLL_RC_ERR_GENERIC  Failure.
-    * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE  No record found in DB
-    * @retval  UPLL_RC_ERR_DB_ACCESS         DB access error
-    * */
+    /**
+     * @brief  Method GetControllerSpan.
+     *
+     * @param[out]  ikey     Contains the Pointer to ConfigkeyVal Class
+     * @param[in]   dt_type  Describes Datatype.
+     * @param[in]   dmi      Describes the Objct type .
+     *
+     * @retval  UPLL_RT_SUCCESS      Successfull completion.
+     * @retval  UPLL_RC_ERR_GENERIC  Failure.
+     * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE  No record found in DB
+     * @retval  UPLL_RC_ERR_DB_ACCESS         DB access error
+     * */
 
     upll_rc_t GetControllerSpan(ConfigKeyVal *ikey,
                                 upll_keytype_datatype_t dt_type,
@@ -356,19 +357,21 @@ class FlowListEntryMoMgr: public MoMgrImpl {
      * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE  No record found in DB
      * @retval  UPLL_RC_ERR_DB_ACCESS         DB access error
      * */
-     upll_rc_t TxUpdateProcess(ConfigKeyVal *ck_main,
-                               IpcResponse *ipc_resp,
-                               unc_keytype_operation_t op,
-                               DalDmlIntf *dmi,
-                               controller_domain *ctrlr_dom);
+    upll_rc_t TxUpdateProcess(ConfigKeyVal *ck_main,
+                              IpcResponse *ipc_resp,
+                              unc_keytype_operation_t op,
+                              DalDmlIntf *dmi,
+                              controller_domain *ctrlr_dom,
+                              set<string> *affected_ctrlr_set,
+                              bool *driver_resp);
 
-     upll_rc_t UpdateMainTbl(ConfigKeyVal *fle_key,
-                             unc_keytype_operation_t op,
-                             uint32_t driver_result,
-                             ConfigKeyVal *nreq,
-                             DalDmlIntf *dmi);
+    upll_rc_t UpdateMainTbl(ConfigKeyVal *fle_key,
+                            unc_keytype_operation_t op,
+                            uint32_t driver_result,
+                            ConfigKeyVal *nreq,
+                            DalDmlIntf *dmi);
 
-  public:
+   public:
     /**
      * @brief FlowlistEntryMoMgr Class Constructor.
      */
@@ -415,7 +418,7 @@ class FlowListEntryMoMgr: public MoMgrImpl {
      * @retval  UPLL_RC_ERR_GENERIC  Failure.
      */
     upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
-        MoMgrTables tbl);
+                       MoMgrTables tbl);
 
     /**
      * @brief  Update config status for commit result and vote result.
@@ -423,15 +426,17 @@ class FlowListEntryMoMgr: public MoMgrImpl {
      * @param[in,out]  ckv_running  ConfigKeyVal instance.
      * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
      * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
+     * @param[in]      dmi          Pointer to the DalDmlIntf(DB Interface)
      *
      * @retval  UPLL_RC_SUCCECSS     Successful Completion
      * @retval  UPLL_RC_ERR_GENERIC  For failue case GENERIC ERROR
      *
      ***/
-     upll_rc_t UpdateAuditConfigStatus(
-                           unc_keytype_configstatus_t cs_status,
-                           uuc::UpdateCtrlrPhase phase,
-                           ConfigKeyVal *&ckv_running);
+    upll_rc_t UpdateAuditConfigStatus(
+        unc_keytype_configstatus_t cs_status,
+        uuc::UpdateCtrlrPhase phase,
+        ConfigKeyVal *&ckv_running,
+        DalDmlIntf *dmi);
 
     /**
      * @brief  Method used to fill the CongigKeyVal with the Parent
@@ -463,7 +468,9 @@ class FlowListEntryMoMgr: public MoMgrImpl {
      * @retval  UPLL_RC_ERR_GENERIC  Failure.
      */
     upll_rc_t GetRenamedUncKey(ConfigKeyVal *ctrlr_key,
-        upll_keytype_datatype_t dt_type, DalDmlIntf *dmi, uint8_t *ctrlr_id);
+                               upll_keytype_datatype_t dt_type,
+                               DalDmlIntf *dmi,
+                               uint8_t *ctrlr_id);
 
     /**
      * @brief  Method used to Duplicate the ConfigkeyVal.
@@ -477,7 +484,7 @@ class FlowListEntryMoMgr: public MoMgrImpl {
      * @retval  UPLL_RC_ERR_GENERIC  Failure.
      */
     upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
-        MoMgrTables tbl);
+                              MoMgrTables tbl);
 
     /**
      * @brief     Method used for Validation before Merge.
@@ -491,7 +498,7 @@ class FlowListEntryMoMgr: public MoMgrImpl {
      * @retval    UPLL_RC_SUCCESS  Successfull completion.
      */
     upll_rc_t MergeValidate(unc_key_type_t keytype, const char *ctrlr_id,
-        ConfigKeyVal *ikey, DalDmlIntf *dmi);
+                            ConfigKeyVal *ikey, DalDmlIntf *dmi);
 
     /**
      * @brief     Method used for Rename Operation.
@@ -504,7 +511,7 @@ class FlowListEntryMoMgr: public MoMgrImpl {
      * @retval    UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT
      */
     upll_rc_t RenameMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-        DalDmlIntf *dmi, const char *ctrlr_id);
+                       DalDmlIntf *dmi, const char *ctrlr_id);
 
     /* @brief        Checkes whether the key exists in DB
      *
@@ -532,11 +539,12 @@ class FlowListEntryMoMgr: public MoMgrImpl {
      * */
 
     upll_rc_t GetFlowListKeyVal(ConfigKeyVal *&okey,
-                          ConfigKeyVal *&ikey);
+                                ConfigKeyVal *&ikey);
     /**
      * @brief  Method used for RenamedControllerkey(PfcName).
      *
-     * @param[out] ikey      Contains the Pointer to ConfigkeyVal Class and contains the Pfc Name.
+     * @param[out] ikey      Contains the Pointer to ConfigkeyVal
+     *                       Class and contains the Pfc Name
      * @param[in] dt_type    Describes Configiration Information.
      * @param[in] dmi        Pointer to DalDmlIntf Class.
      * @param[in] ctrlr_id   Describes the Controller Name.
@@ -547,8 +555,9 @@ class FlowListEntryMoMgr: public MoMgrImpl {
      * @retval  UPLL_RC_ERR_DB_ACCESS         DB access error
      */
     upll_rc_t GetRenamedControllerKey(ConfigKeyVal *ikey,
-        upll_keytype_datatype_t dt_type, DalDmlIntf *dmi,
-        controller_domain *ctrlr_dom = NULL);
+                                      upll_keytype_datatype_t dt_type,
+                                      DalDmlIntf *dmi,
+                                      controller_domain *ctrlr_dom = NULL);
     /**
      * @brief     Method used for TxCopyCandidateToRunning.
      * @param[in] keytype             Describes the followong keytype
@@ -561,8 +570,10 @@ class FlowListEntryMoMgr: public MoMgrImpl {
      * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE  No record found in DB
      * @retval  UPLL_RC_ERR_DB_ACCESS         DB access error
      * */
-    upll_rc_t TxCopyCandidateToRunning(unc_key_type_t keytype,
-        CtrlrCommitStatusList *ctrlr_commit_status, DalDmlIntf *dmi);
+    upll_rc_t TxCopyCandidateToRunning(
+        unc_key_type_t keytype,
+        CtrlrCommitStatusList *ctrlr_commit_status,
+        DalDmlIntf *dmi);
 
     /**
      *  @brief  Method to Update Controller with created, deleted and updated records
@@ -583,23 +594,23 @@ class FlowListEntryMoMgr: public MoMgrImpl {
      *  */
 
     upll_rc_t TxUpdateController(unc_key_type_t keytype,
-                                                uint32_t session_id,
-                                                uint32_t config_id,
-                                                uuc::UpdateCtrlrPhase phase,
-                                                set<string> *affected_ctrlr_set,
-                                                DalDmlIntf *dmi,
-                                                ConfigKeyVal **err_ckv);
+                                 uint32_t session_id,
+                                 uint32_t config_id,
+                                 uuc::UpdateCtrlrPhase phase,
+                                 set<string> *affected_ctrlr_set,
+                                 DalDmlIntf *dmi,
+                                 ConfigKeyVal **err_ckv);
 
     bool CompareValidValue(void *&val1, void *val2, bool copy_to_running);
 
-   /**
-    *  @brief  Method to compare to keys
-    *
-    *  @param[in]  key1  Pointer to key structure for comparision
-    *  @param[in]  key2  Pointer to key for comparision
-    *
-    *  @returncode  returns true if both the input parameters match
-    *   */
+    /**
+     *  @brief  Method to compare to keys
+     *
+     *  @param[in]  key1  Pointer to key structure for comparision
+     *  @param[in]  key2  Pointer to key for comparision
+     *
+     *  @returncode  returns true if both the input parameters match
+     *   */
     bool CompareKey(ConfigKeyVal *key1,
                     ConfigKeyVal *key2);
 
@@ -612,9 +623,12 @@ class FlowListEntryMoMgr: public MoMgrImpl {
      * @param[in] ctrlr_key     Pointer to ConfigKeyVal Class.
      * @retval    RT_SUCCESS    Successfull completion.
      */
-    upll_rc_t UpdateConfigStatus(ConfigKeyVal *key, unc_keytype_operation_t op,
-        uint32_t driver_result, ConfigKeyVal *nreq, DalDmlIntf *dmi,
-        ConfigKeyVal *ctrlr_key);
+    upll_rc_t UpdateConfigStatus(ConfigKeyVal *key,
+                                 unc_keytype_operation_t op,
+                                 uint32_t driver_result,
+                                 ConfigKeyVal *nreq,
+                                 DalDmlIntf *dmi,
+                                 ConfigKeyVal *ctrlr_key);
     /**
      * @brief     Method used for Read Operation.
      * @param[in] req        Describes RequestResponderHeaderClass.
@@ -627,7 +641,7 @@ class FlowListEntryMoMgr: public MoMgrImpl {
      * @retval  UPLL_RC_ERR_DB_ACCESS         DB access error
      */
     upll_rc_t ReadMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-        DalDmlIntf *dmi);
+                     DalDmlIntf *dmi);
 
     /* @brief      Read the configuration from DB based on the operation code
      *  @param[in]     req    Pointer to IpcResResHeader
@@ -637,7 +651,7 @@ class FlowListEntryMoMgr: public MoMgrImpl {
      *  @return code          UPLL_RC_SUCCECSS Successful Completion
      */
     upll_rc_t ReadSiblingMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-        bool begin, DalDmlIntf *dmi);
+                            bool begin, DalDmlIntf *dmi);
 
     /**
      * @brief     Method used for Read Operation.
@@ -652,7 +666,7 @@ class FlowListEntryMoMgr: public MoMgrImpl {
      * @retval  UPLL_RC_ERR_DB_ACCESS         DB access error
      * */
     upll_rc_t ReadRecord(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-        DalDmlIntf *dmi);
+                         DalDmlIntf *dmi);
 
     /**
      * @brief  Method to Create ConfigKeyVal with rename struct as key
@@ -664,10 +678,10 @@ class FlowListEntryMoMgr: public MoMgrImpl {
      * @retval  UPLL_RC_ERR_GENERIC           Failure
      */
     upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey,
-        ConfigKeyVal *ikey);
+                              ConfigKeyVal *ikey);
 
 
-   /** @brief Method to Update the Controller Table entry
+    /** @brief Method to Update the Controller Table entry
      *
      * @param[in] ikey     Pointer to ConkeyValClass
      * @param[in] op       Operation code
@@ -677,7 +691,7 @@ class FlowListEntryMoMgr: public MoMgrImpl {
      * @retval  UPLL_RC_SUCCESS      Successfull completion.
      * @retval  UPLL_RC_ERR_GENERIC  Failure
      *
-   */
+     */
     upll_rc_t UpdateControllerTable(ConfigKeyVal *ikey,
                                     unc_keytype_operation_t op,
                                     upll_keytype_datatype_t dt_type,
@@ -685,7 +699,7 @@ class FlowListEntryMoMgr: public MoMgrImpl {
                                     char* ctrl_id);
     void SetValidAttributesForController(val_flowlist_entry_t *val);
 
-   /** @brief Method to Validate and Update flowlist in  the Controller Table
+    /** @brief Method to Validate and Update flowlist in  the Controller Table
      *
      * @param[in] flowlist FlowListName
      * @param[in] dmi      Pointer to DB Interface
@@ -695,7 +709,7 @@ class FlowListEntryMoMgr: public MoMgrImpl {
      * @retval  UPLL_RC_SUCCESS      Successfull completion.
      * @retval  UPLL_RC_ERR_GENERIC  Failure
      *
-   */
+     */
     upll_rc_t AddFlowListToController(char *flowlist_name,
                                       DalDmlIntf *dmi,
                                       char* ctrl_id,
@@ -735,64 +749,57 @@ class FlowListEntryMoMgr: public MoMgrImpl {
      *
      * @retval  UPLL_RC_ERR_GENERIC           Failure
      **/
-  upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey,
-                               ConfigKeyVal *ikey);
-
-  upll_rc_t CreateCandidateMo(IpcReqRespHeader *req,
-                                       ConfigKeyVal *ikey,
-                                       DalDmlIntf *dmi);
+    upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey,
+                                 ConfigKeyVal *ikey);
 
-  upll_rc_t UpdateMo(IpcReqRespHeader *req,
-                             ConfigKeyVal *ikey,
-                             DalDmlIntf *dmi);
+    upll_rc_t CreateCandidateMo(IpcReqRespHeader *req,
+                                ConfigKeyVal *ikey,
+                                DalDmlIntf *dmi,
+                                bool restore_flag = false);
 
-  upll_rc_t IsFlowListMatched(ConfigKeyVal *ikey,
-                              DalDmlIntf *dmi,
-                              IpcReqRespHeader *req);
+    upll_rc_t UpdateMo(IpcReqRespHeader *req,
+                       ConfigKeyVal *ikey,
+                       DalDmlIntf *dmi);
 
-  upll_rc_t SetValidAudit(ConfigKeyVal *&ikey);
+    upll_rc_t IsFlowListMatched(ConfigKeyVal *ikey,
+                                DalDmlIntf *dmi,
+                                IpcReqRespHeader *req);
 
-  upll_rc_t AuditUpdateController1(unc_key_type_t keytype,
-                                  const char *ctrlr_id,
-                                  uint32_t session_id,
-                                  uint32_t config_id,
-                                  uuc::UpdateCtrlrPhase phase,
-                                  bool *ctrlr_affected,
-                                  DalDmlIntf *dmi);
+    upll_rc_t SetValidAudit(ConfigKeyVal *&ikey);
 
-  bool FilterAttributes(void *&val1,
-                        void *val2,
-                        bool copy_to_running,
-                        unc_keytype_operation_t op);
+    bool FilterAttributes(void *&val1,
+                          void *val2,
+                          bool copy_to_running,
+                          unc_keytype_operation_t op);
 
-  upll_rc_t Get_Tx_Consolidated_Status(
-      unc_keytype_configstatus_t &status,
-      unc_keytype_configstatus_t  drv_result_status,
-      unc_keytype_configstatus_t current_cs,
-      unc_keytype_configstatus_t current_ctrlr_cs);
+    upll_rc_t Get_Tx_Consolidated_Status(
+        unc_keytype_configstatus_t &status,
+        unc_keytype_configstatus_t  drv_result_status,
+        unc_keytype_configstatus_t current_cs,
+        unc_keytype_configstatus_t current_ctrlr_cs);
 
-  upll_rc_t CreateEntryCtrlrTbl(IpcReqRespHeader *req,
-                                ConfigKeyVal *ikey,
-                                DalDmlIntf *dmi);
+    upll_rc_t CreateEntryCtrlrTbl(IpcReqRespHeader *req,
+                                  ConfigKeyVal *ikey,
+                                  DalDmlIntf *dmi);
 
-  upll_rc_t SetFlowlistEntryConsolidatedStatus(ConfigKeyVal *ikey,
-                                               uint8_t *ctrlr_id,
-                                               DalDmlIntf *dmi);
+    upll_rc_t SetFlowlistEntryConsolidatedStatus(ConfigKeyVal *ikey,
+                                                 uint8_t *ctrlr_id,
+                                                 DalDmlIntf *dmi);
 
-  upll_rc_t SetRenameFlag(ConfigKeyVal *ikey,
-                          DalDmlIntf *dmi,
-                          IpcReqRespHeader *req);
-  bool CompareValidVal(void *&val1, void *val2, void *val3,
-                       bool copy_to_running);
-};
+    upll_rc_t SetRenameFlag(ConfigKeyVal *ikey,
+                            DalDmlIntf *dmi,
+                            IpcReqRespHeader *req);
+    bool CompareValidVal(void *&val1, void *val2, void *val3,
+                         bool copy_to_running);
+  };
 
-typedef struct val_flowlist_entry_ctrl {
+  typedef struct val_flowlist_entry_ctrl {
     uint8_t valid[22];
     unc_keytype_configstatus_t cs_row_status;
     unc_keytype_configstatus_t cs_attr[22];
     uint8_t flags;
-} val_flowlist_entry_ctrl_t;
-}  // nameSpace kt_momgr
+  } val_flowlist_entry_ctrl_t;
+}  // namespace kt_momgr
 }  // namespace upll
 }  // namespace unc
 #endif  // UPLL_FLOWLISTENTRY_MOMGR_HH_
index 5fb5eb9445ddf2dc3793b0ed4d20463914c7f87d..cd0edbf3c8814a2ae7b3e83a812fb17381432d18 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -155,29 +155,37 @@ FlowListMoMgr::FlowListMoMgr():MoMgrImpl() {
 
   /*Construct the Flowlist  Main Table*/
   table[MAINTBL] = new Table(uudst::kDbiFlowListTbl,
-      UNC_KT_FLOWLIST, flowlist_bind_info,
-      IpctSt::kIpcStKeyFlowlist, IpctSt::kIpcStValFlowlist,
-      uudst::flowlist::kDbiFlowListNumCols);
+                             UNC_KT_FLOWLIST,
+                             flowlist_bind_info,
+                             IpctSt::kIpcStKeyFlowlist,
+                             IpctSt::kIpcStValFlowlist,
+                             uudst::flowlist::kDbiFlowListNumCols);
 
   /*Construct Flowlist RenameTable*/
-  table[RENAMETBL] = new Table(uudst::kDbiFlowListRenameTbl, UNC_KT_FLOWLIST,
-      flowlist_rename_bind_info, IpctSt::kIpcStKeyFlowlist,
+  table[RENAMETBL] = new Table(
+      uudst::kDbiFlowListRenameTbl,
+      UNC_KT_FLOWLIST,
+      flowlist_rename_bind_info,
+      IpctSt::kIpcStKeyFlowlist,
       IpctSt::kIpcStValRenameFlowlist,
       uudst::flowlist_rename::kDbiFlowListRenameNumCols);
 
   /*Construct FlowList Controller Table*/
-  table[CTRLRTBL] = new Table(uudst::kDbiFlowListCtrlrTbl, UNC_KT_FLOWLIST,
-      flowlist_controller_bind_info, IpctSt::kIpcStKeyFlowlist,
-      IpctSt::kIpcInvalidStNum,
-      uudst::flowlist_ctrlr::kDbiFlowListCtrlrNumCols);
+  table[CTRLRTBL] = new Table(uudst::kDbiFlowListCtrlrTbl,
+                              UNC_KT_FLOWLIST,
+                              flowlist_controller_bind_info,
+                              IpctSt::kIpcStKeyFlowlist,
+                              IpctSt::kIpcInvalidStNum,
+                              uudst::flowlist_ctrlr::kDbiFlowListCtrlrNumCols);
 
   nchild = sizeof(flowlist_child) / sizeof(flowlist_child[0]);
   child = flowlist_child;
-  cur_instance_count = 0;
 }
 
 bool FlowListMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type,
-    BindInfo *&binfo, int &nattr, MoMgrTables tbl) {
+                                         BindInfo *&binfo,
+                                         int &nattr,
+                                         MoMgrTables tbl) {
   switch (key_type) {
     case UNC_KT_FLOWLIST:
       if (MAINTBL == tbl) {
@@ -206,42 +214,42 @@ upll_rc_t FlowListMoMgr::GetValid(void*val,
 
   if (tbl == MAINTBL) {
     valid = NULL;
-    switch(indx) {
+    switch (indx) {
       case uudst::flowlist::kDbiIpType:
         valid = &(reinterpret_cast<val_flowlist_t*>
-                (val))->valid[UPLL_IDX_IP_TYPE_FL];
+                  (val))->valid[UPLL_IDX_IP_TYPE_FL];
         break;
       default:
-         return UPLL_RC_ERR_GENERIC;
+        return UPLL_RC_ERR_GENERIC;
     }
-    #if 0
+#if 0
     if (indx == uudst::flowlist::kDbiIpType) {
       valid = &(reinterpret_cast<val_flowlist_t*>
                 (val))->valid[UPLL_IDX_IP_TYPE_FL];
     } else {
-       valid = NULL;
+      valid = NULL;
     }
-    #endif
+#endif
   } else if (tbl == RENAMETBL) {
     valid = NULL;
-    switch(indx) {
+    switch (indx) {
       case uudst::flowlist_rename::kDbiFlowListNameCtrlr:
-         valid = &(reinterpret_cast<val_rename_flowlist *>
-                 (val))->valid[UPLL_IDX_RENAME_FLOWLIST_RFL];
-         break;
+        valid = &(reinterpret_cast<val_rename_flowlist *>
+                  (val))->valid[UPLL_IDX_RENAME_FLOWLIST_RFL];
+        break;
       default:
-         return UPLL_RC_ERR_GENERIC;
+        return UPLL_RC_ERR_GENERIC;
     }
-    #if 0
+#if 0
     if (indx == uudst::flowlist_rename::kDbiFlowListNameCtrlr) {
       valid = &(reinterpret_cast<val_rename_flowlist *>
-                 (val))->valid[UPLL_IDX_RENAME_FLOWLIST_RFL];
+                (val))->valid[UPLL_IDX_RENAME_FLOWLIST_RFL];
     } else {
       valid = NULL;
     }
-    #endif
+#endif
   } else if (tbl == CTRLRTBL) {
-    #if 0
+#if 0
     if (indx == uudst::flowlist_ctrlr::kDbiValidIpType) {
       valid = &(reinterpret_cast<val_flowlist_ctrl*>(val))->valid[0];
     } else if (indx ==uudst::flowlist_ctrlr::kDbiRefCount) {
@@ -249,16 +257,16 @@ upll_rc_t FlowListMoMgr::GetValid(void*val,
     } else {
       valid = NULL;
     }
-    #endif
+#endif
     valid = NULL;
-    switch(indx) {
+    switch (indx) {
       case uudst::flowlist_ctrlr::kDbiValidIpType:
         valid = &(reinterpret_cast<val_flowlist_ctrl*>(val))->valid[0];
         break;
       case uudst::flowlist_ctrlr::kDbiRefCount:
         valid = &(reinterpret_cast<val_flowlist_ctrl*>(val))->valid[1];
       default:
-         break;
+        break;
     }
   } else {
     valid = NULL;
@@ -319,7 +327,7 @@ upll_rc_t FlowListMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
   // If parent key is null then allocate the new configkey val and return
   if (parent_key == NULL) {
     flowlist_key = reinterpret_cast<key_flowlist_t *>
-      (ConfigKeyVal::Malloc(sizeof(key_flowlist_t)));
+        (ConfigKeyVal::Malloc(sizeof(key_flowlist_t)));
 
     okey = new ConfigKeyVal(UNC_KT_FLOWLIST, IpctSt::kIpcStKeyFlowlist,
                             flowlist_key, NULL);
@@ -338,7 +346,8 @@ upll_rc_t FlowListMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
       return UPLL_RC_ERR_GENERIC;
   }
   if ((okey) && (okey->get_key())) {
-    flowlist_key = reinterpret_cast<key_flowlist_t *>(okey->get_key());
+    flowlist_key =
+        reinterpret_cast<key_flowlist_t *>(okey->get_key());
   } else {
     flowlist_key = reinterpret_cast<key_flowlist_t *>
         (ConfigKeyVal::Malloc(sizeof(key_flowlist_t)));
@@ -367,7 +376,7 @@ upll_rc_t FlowListMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
   }
   SET_USER_DATA(okey, parent_key);
   UPLL_LOG_TRACE("%s GetChildConfigKey fl start",
-                  okey->ToStrAll().c_str());
+                 okey->ToStrAll().c_str());
   return result_code;
 }
 
@@ -378,23 +387,23 @@ upll_rc_t FlowListMoMgr::GetRenamedUncKey(ConfigKeyVal *ctrlr_key,
   upll_rc_t result_code;
   ConfigKeyVal *unc_key = NULL;
   UPLL_LOG_TRACE("%s GetRenamedUncKey fl start",
-                  ctrlr_key->ToStrAll().c_str());
+                 ctrlr_key->ToStrAll().c_str());
   key_flowlist_t *ctrlr_flowlist_key =
-                  reinterpret_cast<key_flowlist_t *>(ctrlr_key->get_key());
+      reinterpret_cast<key_flowlist_t *>(ctrlr_key->get_key());
   if (NULL == ctrlr_flowlist_key) return UPLL_RC_ERR_GENERIC;
 
   DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutNone };
 
   val_rename_flowlist_t *rename_flowlist =
-  reinterpret_cast<val_rename_flowlist_t*>
-  (ConfigKeyVal::Malloc(sizeof(val_rename_flowlist_t)));
+      reinterpret_cast<val_rename_flowlist_t*>
+      (ConfigKeyVal::Malloc(sizeof(val_rename_flowlist_t)));
   if (!rename_flowlist) {
     UPLL_LOG_DEBUG("rename_flowlist NULL");
     return UPLL_RC_ERR_GENERIC;
   }
   uuu::upll_strncpy(rename_flowlist->flowlist_newname,
-               ctrlr_flowlist_key->flowlist_name,
-               (kMaxLenFlowListName + 1));
+                    ctrlr_flowlist_key->flowlist_name,
+                    (kMaxLenFlowListName + 1));
   rename_flowlist->valid[UPLL_IDX_RENAME_FLOWLIST_RFL] = UNC_VF_VALID;
 
   result_code = GetChildConfigKey(unc_key, NULL);
@@ -424,13 +433,13 @@ upll_rc_t FlowListMoMgr::GetRenamedUncKey(ConfigKeyVal *ctrlr_key,
 
   if (result_code == UPLL_RC_SUCCESS) {
     key_flowlist_t *flowlist_key =
-    reinterpret_cast<key_flowlist_t *>(unc_key->get_key());
+        reinterpret_cast<key_flowlist_t *>(unc_key->get_key());
     uuu::upll_strncpy(ctrlr_flowlist_key->flowlist_name,
-                 flowlist_key->flowlist_name,
-                 (kMaxLenFlowListName + 1));
+                      flowlist_key->flowlist_name,
+                      (kMaxLenFlowListName + 1));
   }
   UPLL_LOG_TRACE("%s GetRenamedUncKey fl end",
-                  ctrlr_key->ToStrAll().c_str());
+                 ctrlr_key->ToStrAll().c_str());
   DELETE_IF_NOT_NULL(unc_key);
   return result_code;
 }
@@ -441,59 +450,53 @@ upll_rc_t FlowListMoMgr::GetRenamedControllerKey(
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
   ConfigKeyVal *okey = NULL;
-  uint8_t rename = 0;
-  if (UPLL_RC_SUCCESS != IsRenamed(ikey, dt_type, dmi, rename)) {
-    UPLL_LOG_DEBUG("Rename check for input ConfigKeyval is failed");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  if (!rename) {
-    UPLL_LOG_DEBUG("Key is not Renamed");
-    return UPLL_RC_SUCCESS;
+  result_code = GetChildConfigKey(okey, ikey);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_DEBUG("GetChildConfigKey fail (%d)", result_code);
+    return result_code;
   }
-  UPLL_LOG_DEBUG("Key Renamed");
-  /* FlowList renamed */
-  if (rename & FLOWLIST_RENAME) {
-    result_code = GetChildConfigKey(okey, ikey);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetChildConfigKey fail (%d)", result_code);
-      return result_code;
-    }
-    if (ctrlr_dom != NULL)
+
+  if (ctrlr_dom != NULL) {
     SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
+  } else {
+    UPLL_LOG_DEBUG("Controller id is null");
+    DELETE_IF_NOT_NULL(okey);
+    return UPLL_RC_ERR_GENERIC;
+  }
 
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
+  UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
+                 ctrlr_dom->domain);
 
-    DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutFlag };
+  DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutFlag };
 
-    result_code = ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop, dmi, RENAMETBL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-        UPLL_LOG_DEBUG("ReadConfigDB no instance");
-        DELETE_IF_NOT_NULL(okey);
-        return UPLL_RC_SUCCESS;
-      }
-      DELETE_IF_NOT_NULL(okey);
-      return result_code;
-    } 
-    val_rename_flowlist_t *rename_val =
-         reinterpret_cast<val_rename_flowlist_t *>(GetVal(okey));
-    if (!rename_val) {
+  result_code = ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop, dmi, RENAMETBL);
+  if (result_code != UPLL_RC_SUCCESS) {
+    if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+      UPLL_LOG_DEBUG("ReadConfigDB no instance");
       DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
+      return UPLL_RC_SUCCESS;
     }
+    DELETE_IF_NOT_NULL(okey);
+    return result_code;
+  }
 
-    UPLL_LOG_DEBUG("valid flowlist (%d)", rename_val->valid[UPLL_IDX_RENAME_FLOWLIST_RFL]);
-    key_flowlist *key = reinterpret_cast<key_flowlist *>(ikey->get_key());
-    uuu::upll_strncpy(key->flowlist_name,
-                 rename_val->flowlist_newname,
-                 (kMaxLenFlowListName + 1));
-    UPLL_LOG_DEBUG("flow list name (%s) (%s)", key->flowlist_name, rename_val->flowlist_newname);
+  val_rename_flowlist_t *rename_val =
+      reinterpret_cast<val_rename_flowlist_t *>(GetVal(okey));
+  if (!rename_val) {
     DELETE_IF_NOT_NULL(okey);
+    return UPLL_RC_ERR_GENERIC;
   }
+
+  key_flowlist *key = reinterpret_cast<key_flowlist *>(ikey->get_key());
+  uuu::upll_strncpy(key->flowlist_name,
+                    rename_val->flowlist_newname,
+                    (kMaxLenFlowListName + 1));
+  DELETE_IF_NOT_NULL(okey);
+
   return UPLL_RC_SUCCESS;
 }
 
+
 upll_rc_t FlowListMoMgr::UpdateMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
                                   DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
@@ -512,7 +515,7 @@ upll_rc_t FlowListMoMgr::SetFlowListConsolidatedStatus(ConfigKeyVal *ikey,
   bool applied = false, not_applied = false, invalid = false;
   unc_keytype_configstatus_t c_status = UNC_CS_NOT_APPLIED;
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone,
-                   kOpInOutCtrlr | kOpInOutDomain | kOpInOutCs };
+    kOpInOutCtrlr | kOpInOutDomain | kOpInOutCs };
   if (!ikey || !dmi || !ctrlr_id) {
     UPLL_LOG_DEBUG("Invalid Input");
     return UPLL_RC_ERR_GENERIC;
@@ -522,7 +525,11 @@ upll_rc_t FlowListMoMgr::SetFlowListConsolidatedStatus(ConfigKeyVal *ikey,
     UPLL_LOG_DEBUG("GetChildConfigKey failed err code %d", result_code);
     return result_code;
   }
-  result_code = ReadConfigDB(ctrlr_ckv, UPLL_DT_RUNNING, UNC_OP_READ, dbop, dmi,
+  result_code = ReadConfigDB(ctrlr_ckv,
+                             UPLL_DT_RUNNING,
+                             UNC_OP_READ,
+                             dbop,
+                             dmi,
                              CTRLRTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("ReadConfigDB from ctrltbl failed err code %d",
@@ -532,7 +539,7 @@ upll_rc_t FlowListMoMgr::SetFlowListConsolidatedStatus(ConfigKeyVal *ikey,
   }
 
   for (ConfigKeyVal *tmp = ctrlr_ckv; tmp != NULL;
-                     tmp = tmp->get_next_cfg_key_val()) {
+       tmp = tmp->get_next_cfg_key_val()) {
     ctrlr_val = reinterpret_cast<val_flowlist_ctrl *>(GetVal(tmp));
     if (!ctrlr_val) {
       UPLL_LOG_DEBUG("Controller Value is empty");
@@ -548,23 +555,25 @@ upll_rc_t FlowListMoMgr::SetFlowListConsolidatedStatus(ConfigKeyVal *ikey,
     switch (ctrlr_val->cs_row_status) {
       case UNC_CS_APPLIED:
         applied = true;
-      break;
+        break;
       case UNC_CS_NOT_APPLIED:
         not_applied = true;
-      break;
+        break;
       case UNC_CS_INVALID:
         invalid = true;
+        break;  // Addressed Coverity MISSING_BREAK
       default:
         UPLL_LOG_DEBUG("Invalid status");
         DELETE_IF_NOT_NULL(ctrlr_ckv);
         break;
-        // return UPLL_RC_ERR_GENERIC;  
+        // return UPLL_RC_ERR_GENERIC;
     }
     flowlist_exist_on_ctrlr = NULL;
   }
   if (invalid) {
     c_status = UNC_CS_INVALID;
-  } if (applied && !not_applied) {
+  }
+  if (applied && !not_applied) {
     c_status = UNC_CS_APPLIED;
   } else if (!applied && not_applied) {
     c_status = UNC_CS_NOT_APPLIED;
@@ -701,7 +710,11 @@ upll_rc_t FlowListMoMgr::MergeValidate(unc_key_type_t keytype,
   }
 
   DbSubOp dbop1 = { kOpReadMultiple, kOpMatchNone, kOpInOutNone };
-  result_code = ReadConfigDB(temp_ckey, UPLL_DT_IMPORT, UNC_OP_READ, dbop1, dmi,
+  result_code = ReadConfigDB(temp_ckey,
+                             UPLL_DT_IMPORT,
+                             UNC_OP_READ,
+                             dbop1,
+                             dmi,
                              MAINTBL);
   if (UPLL_RC_SUCCESS != result_code &&
       UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
@@ -710,14 +723,14 @@ upll_rc_t FlowListMoMgr::MergeValidate(unc_key_type_t keytype,
     return result_code;
   }
   if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-     DELETE_IF_NOT_NULL(temp_ckey);
-     return UPLL_RC_SUCCESS;
+    DELETE_IF_NOT_NULL(temp_ckey);
+    return UPLL_RC_SUCCESS;
   }
   ckey = temp_ckey;
   while (ckey != NULL) {
     UPLL_LOG_DEBUG("ckey not null");
 
-    // Check the flow list as stand alone 
+    // Check the flow list as stand alone
     DbSubOp dbop = { kOpReadExist, kOpMatchNone, kOpInOutNone };
     result_code = UpdateConfigDB(ckey, UPLL_DT_IMPORT, UNC_OP_READ, dmi, &dbop,
                                  CTRLRTBL);
@@ -729,7 +742,7 @@ upll_rc_t FlowListMoMgr::MergeValidate(unc_key_type_t keytype,
         UPLL_LOG_DEBUG("DupConfigKeyVal fail");
         return result_code;
       }
-      return UPLL_RC_ERR_MERGE_CONFLICT; 
+      return UPLL_RC_ERR_MERGE_CONFLICT;
     } else if (result_code != UPLL_RC_ERR_INSTANCE_EXISTS) {
       UPLL_LOG_DEBUG("Database Error");
       DELETE_IF_NOT_NULL(temp_ckey);
@@ -787,13 +800,14 @@ upll_rc_t FlowListMoMgr::IsReferenced(ConfigKeyVal *ikey,
   }
   if (tmp_ckv) delete tmp_ckv;
   PolicingProfileEntryMoMgr *mgr =
-    reinterpret_cast<PolicingProfileEntryMoMgr *>(const_cast<MoManager*>
-            (GetMoManager(UNC_KT_POLICING_PROFILE_ENTRY)));
+      reinterpret_cast<PolicingProfileEntryMoMgr *>(
+          const_cast<MoManager*>
+          (GetMoManager(UNC_KT_POLICING_PROFILE_ENTRY)));
   if (NULL == mgr) {
     return UPLL_RC_ERR_GENERIC;
   }
   result_code = mgr->IsFlowlistConfigured(reinterpret_cast<const char *>
-      (fl_key->flowlist_name), dmi);
+                                          (fl_key->flowlist_name), dmi);
   if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
     if (UPLL_RC_SUCCESS == result_code)
       result_code = UPLL_RC_ERR_CFG_SEMANTIC;
@@ -801,13 +815,14 @@ upll_rc_t FlowListMoMgr::IsReferenced(ConfigKeyVal *ikey,
     return result_code;
   }
   VtnFlowFilterEntryMoMgr *vtn_mgr =
-    reinterpret_cast<VtnFlowFilterEntryMoMgr *>(const_cast<MoManager*>
-            (GetMoManager(UNC_KT_VTN_FLOWFILTER_ENTRY)));
+      reinterpret_cast<VtnFlowFilterEntryMoMgr *>(
+          const_cast<MoManager*>
+          (GetMoManager(UNC_KT_VTN_FLOWFILTER_ENTRY)));
   if (NULL == vtn_mgr) {
     return UPLL_RC_ERR_GENERIC;
   }
   result_code = vtn_mgr->IsFlowListConfigured(reinterpret_cast<const char *>
-      (fl_key->flowlist_name), dmi);
+                                              (fl_key->flowlist_name), dmi);
   if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
     if (UPLL_RC_SUCCESS == result_code)
       result_code = UPLL_RC_ERR_CFG_SEMANTIC;
@@ -817,16 +832,16 @@ upll_rc_t FlowListMoMgr::IsReferenced(ConfigKeyVal *ikey,
 
   /*key_flowlist_t *key_fle = reinterpret_cast
     <key_flowlist_t *>(ikey->get_key());
-  PolicingProfileEntryMoMgr *ppe_mgr =
+    PolicingProfileEntryMoMgr *ppe_mgr =
     reinterpret_cast<PolicingProfileEntryMoMgr *>(const_cast<MoManager *>
     (GetMoManager(UNC_KT_POLICING_PROFILE_ENTRY)));
-  if (NULL == ppe_mgr) {
+    if (NULL == ppe_mgr) {
     return UPLL_RC_ERR_GENERIC;
-  }
-  */
+    }
+    */
 
   result_code = mgr->IsFlowListMatched(reinterpret_cast<const char *>
-    (fl_key->flowlist_name), dt_type, dmi);
+                                       (fl_key->flowlist_name), dt_type, dmi);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("IsFlowListMatched failed from ppe %d", result_code);
     return UPLL_RC_ERR_CFG_SEMANTIC;
@@ -864,8 +879,8 @@ upll_rc_t FlowListMoMgr::SwapKeyVal(ConfigKeyVal *ikey, ConfigKeyVal *&okey,
   val_rename_flowlist_t *tval =
       reinterpret_cast<val_rename_flowlist_t *>(cfg_val->get_val());
   if (!tval) {
-      UPLL_LOG_DEBUG("Val is NULL");
-      return UPLL_RC_ERR_GENERIC;
+    UPLL_LOG_DEBUG("Val is NULL");
+    return UPLL_RC_ERR_GENERIC;
   }
   key_flowlist_t *key_flowlist = reinterpret_cast<key_flowlist_t*>
       (ConfigKeyVal::Malloc(sizeof(key_flowlist_t)));
@@ -873,8 +888,9 @@ upll_rc_t FlowListMoMgr::SwapKeyVal(ConfigKeyVal *ikey, ConfigKeyVal *&okey,
   if (UNC_VF_VALID_NO_VALUE == tval->valid[UPLL_IDX_RENAME_FLOWLIST_RFL]) {
     no_rename = true;
     uuu::upll_strncpy(key_flowlist->flowlist_name,
-           reinterpret_cast<key_flowlist_t*>(ikey->get_key())->flowlist_name,
-           (kMaxLenFlowListName + 1));
+                      reinterpret_cast<key_flowlist_t*>
+                      (ikey->get_key())->flowlist_name,
+                      (kMaxLenFlowListName + 1));
 
   } else if (tval->valid[UPLL_IDX_RENAME_FLOWLIST_RFL] == UNC_VF_VALID) {
     // checking the string is empty or not
@@ -883,22 +899,23 @@ upll_rc_t FlowListMoMgr::SwapKeyVal(ConfigKeyVal *ikey, ConfigKeyVal *&okey,
       return UPLL_RC_ERR_GENERIC;
     }
     uuu::upll_strncpy(key_flowlist->flowlist_name,
-           tval->flowlist_newname,
-           (kMaxLenFlowListName + 1));
+                      tval->flowlist_newname,
+                      (kMaxLenFlowListName + 1));
     /* The New Name and PFC name should not be same name */
     if (!strcmp(reinterpret_cast<char *>
-       (reinterpret_cast<key_flowlist_t *>(ikey->get_key())->flowlist_name),
-              reinterpret_cast<char *>(tval->flowlist_newname))) {
+                (reinterpret_cast<key_flowlist_t *>
+                 (ikey->get_key())->flowlist_name),
+                reinterpret_cast<char *>(tval->flowlist_newname))) {
       free(key_flowlist);
       return UPLL_RC_ERR_GENERIC;
     }
-
   }
 
   okey = new ConfigKeyVal(UNC_KT_FLOWLIST, IpctSt::kIpcStKeyFlowlist,
                           key_flowlist, NULL);
   if (NULL == okey) {
     UPLL_LOG_DEBUG("Memory allocation failure for ConfigKeyVal structure");
+    FREE_IF_NOT_NULL(key_flowlist);
     return UPLL_RC_ERR_GENERIC;
   }
   return result_code;
@@ -918,19 +935,27 @@ upll_rc_t FlowListMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
       val_flowlist_t *ival = reinterpret_cast<val_flowlist_t *>(GetVal(req));
       if (NULL != ival) {
         val_flowlist_t *flowlist_val = reinterpret_cast<val_flowlist_t*>
-          (ConfigKeyVal::Malloc(sizeof(val_flowlist_t)));
+            (ConfigKeyVal::Malloc(sizeof(val_flowlist_t)));
         memcpy(flowlist_val, ival, sizeof(val_flowlist_t));
         tmp1 = new ConfigVal(IpctSt::kIpcStValFlowlist, flowlist_val);
+        if (!tmp1) {
+          FREE_IF_NOT_NULL(flowlist_val);
+          return UPLL_RC_ERR_GENERIC;
+        }
       }
     } else if (tbl == RENAMETBL) {
       val_rename_flowlist_t *ival =
           reinterpret_cast<val_rename_flowlist_t *>(GetVal(req));
       if (NULL != ival) {
         val_rename_flowlist_t *rename_val =
-          reinterpret_cast<val_rename_flowlist_t*>
-          (ConfigKeyVal::Malloc(sizeof(val_rename_flowlist_t)));
+            reinterpret_cast<val_rename_flowlist_t*>
+            (ConfigKeyVal::Malloc(sizeof(val_rename_flowlist_t)));
         memcpy(rename_val, ival, sizeof(val_rename_flowlist_t));
         tmp1 = new ConfigVal(IpctSt::kIpcStValRenameFlowlist, rename_val);
+        if (!tmp1) {
+          FREE_IF_NOT_NULL(rename_val);
+          return UPLL_RC_ERR_GENERIC;
+        }
       }
     } else if (tbl == CTRLRTBL) {
       val_flowlist_ctrl *ival =
@@ -941,11 +966,13 @@ upll_rc_t FlowListMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
                                                   (sizeof(val_flowlist_ctrl)));
         memcpy(flowlist_ctrlr_val, ival, sizeof(val_flowlist_ctrl));
         tmp1 = new ConfigVal(IpctSt::kIpcStValFlowlist, flowlist_ctrlr_val);
+        if (!tmp1) {
+          FREE_IF_NOT_NULL(flowlist_ctrlr_val);
+          return UPLL_RC_ERR_GENERIC;
+        }
       }
     }
-    if (!tmp1)
-      return UPLL_RC_ERR_GENERIC;
-    tmp1->set_user_data(tmp->get_user_data());
+    if (tmp1) tmp1->set_user_data(tmp->get_user_data());
     // tmp = tmp->get_next_cfg_val();
   }
 
@@ -953,10 +980,10 @@ upll_rc_t FlowListMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
   if (tkey) {
     key_flowlist_t *ikey = reinterpret_cast<key_flowlist_t *>(tkey);
     key_flowlist_t *flowlist_key = reinterpret_cast<key_flowlist_t*>
-      (ConfigKeyVal::Malloc(sizeof(key_flowlist_t)));
+        (ConfigKeyVal::Malloc(sizeof(key_flowlist_t)));
     memcpy(flowlist_key, ikey, sizeof(key_flowlist_t));
     okey = new ConfigKeyVal(UNC_KT_FLOWLIST, IpctSt::kIpcStKeyFlowlist,
-                          flowlist_key, tmp1);
+                            flowlist_key, tmp1);
   }
   if (okey) {
     SET_USER_DATA(okey, req)
@@ -985,7 +1012,7 @@ upll_rc_t FlowListMoMgr::UpdateConfigStatus(ConfigKeyVal *flowlist_key,
   }
 
   val_flowlist_t *val_flowlist =
-                 reinterpret_cast<val_flowlist_t *>(GetVal(flowlist_key));
+      reinterpret_cast<val_flowlist_t *>(GetVal(flowlist_key));
   val_flowlist_ctrl *ctrlr_val_flowlist =
       reinterpret_cast<val_flowlist_ctrl *>(GetVal(ctrlr_key));
   if ((val_flowlist == NULL) || (ctrlr_val_flowlist == NULL)) {
@@ -996,11 +1023,11 @@ upll_rc_t FlowListMoMgr::UpdateConfigStatus(ConfigKeyVal *flowlist_key,
   UPLL_LOG_TRACE("cs_status %d ctrlr_status %d\n", cs_status, ctrlr_status);
 
   if (op == UNC_OP_CREATE) {
-   ctrlr_val_flowlist->cs_row_status = ctrlr_status;
-   if (val_flowlist->cs_row_status == UNC_CS_INVALID) { 
-     cs_status = UNC_CS_INVALID;
-   } else if (val_flowlist->cs_row_status == UNC_CS_UNKNOWN) {
-        /* first entry in ctrlr table */
+    ctrlr_val_flowlist->cs_row_status = ctrlr_status;
+    if (val_flowlist->cs_row_status == UNC_CS_INVALID) {
+      cs_status = UNC_CS_INVALID;
+    } else if (val_flowlist->cs_row_status == UNC_CS_UNKNOWN) {
+      /* first entry in ctrlr table */
       cs_status = ctrlr_status;
     } else if (val_flowlist->cs_row_status == UNC_CS_APPLIED) {
       if (ctrlr_status == UNC_CS_NOT_APPLIED) {
@@ -1011,17 +1038,17 @@ upll_rc_t FlowListMoMgr::UpdateConfigStatus(ConfigKeyVal *flowlist_key,
         cs_status =  UNC_CS_PARTIALLY_APPLIED;
       }
     } else {
-       cs_status = UNC_CS_PARTIALLY_APPLIED;
+      cs_status = UNC_CS_PARTIALLY_APPLIED;
     }
     val_flowlist->cs_row_status = cs_status;
     val_flowlist->cs_attr[0]  = cs_status;
   }
   // Updating the Controller cs_row_status
   if ((op == UNC_OP_UPDATE) && (nreq != NULL)) {
-      val_flowlist_ctrl *run_ctrlr_val = reinterpret_cast<val_flowlist_ctrl *>
-                                                     (GetVal(nreq));
-      if (run_ctrlr_val != NULL)
-       ctrlr_val_flowlist->cs_row_status = run_ctrlr_val->cs_row_status;
+    val_flowlist_ctrl *run_ctrlr_val = reinterpret_cast<val_flowlist_ctrl *>
+        (GetVal(nreq));
+    if (run_ctrlr_val != NULL)
+      ctrlr_val_flowlist->cs_row_status = run_ctrlr_val->cs_row_status;
   }
   if (val_flowlist->valid[0] != UNC_VF_INVALID) {
     if (ctrlr_val_flowlist->cs_attr[0] != UNC_CS_NOT_SUPPORTED)
@@ -1036,18 +1063,18 @@ upll_rc_t FlowListMoMgr::UpdateConfigStatus(ConfigKeyVal *flowlist_key,
     } else if (ctrlr_status == UNC_CS_APPLIED) {
       if (val_flowlist->cs_attr[0] == UNC_CS_UNKNOWN) {
         cs_status = ctrlr_status;
-      } 
+      }
       if (val_flowlist->cs_attr[0] == UNC_CS_NOT_APPLIED) {
         cs_status = UNC_CS_PARTIALLY_APPLIED;
       } else {
         cs_status = val_flowlist->cs_attr[0];
       }
-    } else if(ctrlr_status == UNC_CS_NOT_APPLIED) {
-       if(val_flowlist->cs_attr[0] == UNC_CS_NOT_APPLIED) {
-         cs_status =  UNC_CS_NOT_APPLIED;
-       } else {
-         cs_status =  UNC_CS_PARTIALLY_APPLIED;
-       }
+    } else if (ctrlr_status == UNC_CS_NOT_APPLIED) {
+      if (val_flowlist->cs_attr[0] == UNC_CS_NOT_APPLIED) {
+        cs_status =  UNC_CS_NOT_APPLIED;
+      } else {
+        cs_status =  UNC_CS_PARTIALLY_APPLIED;
+      }
     }
     val_flowlist->cs_attr[0]  = cs_status;
     UPLL_LOG_DEBUG("Main tbl cs_attr : %d", val_flowlist->cs_attr[0]);
@@ -1055,11 +1082,12 @@ upll_rc_t FlowListMoMgr::UpdateConfigStatus(ConfigKeyVal *flowlist_key,
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t FlowListMoMgr::AddFlowListToController(char *flowlist_name,
-                                                 DalDmlIntf *dmi,
-                                                 char* ctrl_id,
-                                                 upll_keytype_datatype_t dt_type,
-                                                 unc_keytype_operation_t op) {
+upll_rc_t FlowListMoMgr::AddFlowListToController(
+    char *flowlist_name,
+    DalDmlIntf *dmi,
+    char* ctrl_id,
+    upll_keytype_datatype_t dt_type,
+    unc_keytype_operation_t op) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
@@ -1073,7 +1101,8 @@ upll_rc_t FlowListMoMgr::AddFlowListToController(char *flowlist_name,
   return result_code;
 }
 
-upll_rc_t FlowListMoMgr::DeleteFlowListToController(char *flowlist_name,
+upll_rc_t FlowListMoMgr::DeleteFlowListToController(
+    char *flowlist_name,
     DalDmlIntf *dmi,
     char* ctrl_id,
     upll_keytype_datatype_t dt_type,
@@ -1088,16 +1117,16 @@ upll_rc_t FlowListMoMgr::DeleteFlowListToController(char *flowlist_name,
     return result_code;
   }
   key_flowlist_t *okey_key = reinterpret_cast<key_flowlist_t *>
-    (okey->get_key());
+      (okey->get_key());
   uuu::upll_strncpy(okey_key->flowlist_name,
-      flowlist_name,
-      (kMaxLenFlowListName+1));
+                    flowlist_name,
+                    (kMaxLenFlowListName+1));
   SET_USER_DATA_CTRLR(okey, ctrl_id);
   DbSubOp dbop = {kOpReadSingle, kOpMatchCtrlr, kOpInOutNone};
   result_code = ReadConfigDB(okey,
-      dt_type,
-      UNC_OP_READ,
-      dbop, dmi, CTRLRTBL);
+                             dt_type,
+                             UNC_OP_READ,
+                             dbop, dmi, CTRLRTBL);
   if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
     UPLL_LOG_DEBUG("No matching record found in Ctrlrtbl");
     DELETE_IF_NOT_NULL(okey);
@@ -1105,12 +1134,12 @@ upll_rc_t FlowListMoMgr::DeleteFlowListToController(char *flowlist_name,
   } else if (UPLL_RC_SUCCESS == result_code) {
     UPLL_LOG_DEBUG("Matching records found in ctrlrtbl");
     val_flowlist_ctrl_t *ctrlr_val = reinterpret_cast
-      <val_flowlist_ctrl_t *>(GetVal(okey));
+        <val_flowlist_ctrl_t *>(GetVal(okey));
     ctrlr_val->refcount -= 1;
     if (1 > ctrlr_val->refcount) {
       ctrlr_val->valid[1] = UNC_VF_VALID;
       result_code = UpdateConfigDB(okey, dt_type, UNC_OP_DELETE, dmi,
-          CTRLRTBL);
+                                   CTRLRTBL);
       if (UPLL_RC_SUCCESS != result_code) {
         UPLL_LOG_DEBUG("Delete from ctrlrtbl failed");
         DELETE_IF_NOT_NULL(okey);
@@ -1120,7 +1149,7 @@ upll_rc_t FlowListMoMgr::DeleteFlowListToController(char *flowlist_name,
     } else {
       ctrlr_val->valid[1] = UNC_VF_VALID;
       result_code = UpdateConfigDB(okey, dt_type, UNC_OP_UPDATE, dmi,
-          CTRLRTBL);
+                                   CTRLRTBL);
       if (UPLL_RC_SUCCESS != result_code) {
         UPLL_LOG_DEBUG("Update in ctrlrtbl failed");
         DELETE_IF_NOT_NULL(okey);
@@ -1134,24 +1163,24 @@ upll_rc_t FlowListMoMgr::DeleteFlowListToController(char *flowlist_name,
   }
   DELETE_IF_NOT_NULL(okey);
   if (fl_entry_del) {
-
     FlowListEntryMoMgr *mgr = reinterpret_cast<FlowListEntryMoMgr *>
-      (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST_ENTRY)));
+        (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST_ENTRY)));
     result_code = mgr->AddFlowListToController(
         flowlist_name, dmi, ctrl_id, dt_type, op);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Unable to update the controller table for flowlistentry");
       return result_code;
     }
-  } 
+  }
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t FlowListMoMgr::CreateFlowListToController(char *flowlist_name,
-                                                 DalDmlIntf *dmi,
-                                                 char* ctrl_id,
-                                                 upll_keytype_datatype_t dt_type,
-                                                 unc_keytype_operation_t op) {
+upll_rc_t FlowListMoMgr::CreateFlowListToController(
+    char *flowlist_name,
+    DalDmlIntf *dmi,
+    char* ctrl_id,
+    upll_keytype_datatype_t dt_type,
+    unc_keytype_operation_t op) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *okey = NULL;
@@ -1166,14 +1195,14 @@ upll_rc_t FlowListMoMgr::CreateFlowListToController(char *flowlist_name,
   key_flowlist_t *okey_key = reinterpret_cast<key_flowlist_t *>
       (okey->get_key());
   uuu::upll_strncpy(okey_key->flowlist_name,
-        flowlist_name,
-        (kMaxLenFlowListName+1));
+                    flowlist_name,
+                    (kMaxLenFlowListName+1));
   SET_USER_DATA_CTRLR(okey, ctrl_id);
   DbSubOp dbop = {kOpReadSingle, kOpMatchCtrlr, kOpInOutCs};
   result_code = ReadConfigDB(okey,
-                            dt_type,
-                            UNC_OP_READ,
-                            dbop, dmi, CTRLRTBL);
+                             dt_type,
+                             UNC_OP_READ,
+                             dbop, dmi, CTRLRTBL);
   if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
     UPLL_LOG_DEBUG("No entry in ctrlr tbl");
     ConfigKeyVal *main_ckv = NULL;
@@ -1185,9 +1214,9 @@ upll_rc_t FlowListMoMgr::CreateFlowListToController(char *flowlist_name,
     }
     DbSubOp dbop1 = {kOpReadSingle, kOpMatchNone, kOpInOutCs};
     result_code = ReadConfigDB(main_ckv,
-                            dt_type,
-                            UNC_OP_READ,
-                            dbop1, dmi, MAINTBL);
+                               dt_type,
+                               UNC_OP_READ,
+                               dbop1, dmi, MAINTBL);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("ReadConfigDB in maintbl failed %d", result_code);
       DELETE_IF_NOT_NULL(okey);
@@ -1210,33 +1239,10 @@ upll_rc_t FlowListMoMgr::CreateFlowListToController(char *flowlist_name,
       DELETE_IF_NOT_NULL(main_ckv);
       return UPLL_RC_ERR_GENERIC;
     }
-     // capability check
-    ConfigKeyVal *temp_key = NULL;
-
-    result_code = GetChildConfigKey(temp_key, NULL);
-    if (UPLL_RC_SUCCESS != result_code) {
-      DELETE_IF_NOT_NULL(main_ckv);
-      DELETE_IF_NOT_NULL(okey);
-      UPLL_LOG_DEBUG("GetChildConfigKey failed(%d)",result_code);
-      return result_code;
-    }
-
-   result_code = GetInstanceCount(temp_key, ctrl_id,
-                                 dt_type,
-                                 &cur_instance_count,
-                                 dmi, CTRLRTBL);
-
-    DELETE_IF_NOT_NULL(temp_key);
-    if (UPLL_RC_SUCCESS != result_code) {
-      DELETE_IF_NOT_NULL(main_ckv);
-      DELETE_IF_NOT_NULL(okey);
-      UPLL_LOG_DEBUG("GetInstanceCount failed(%d)",result_code);
-      return result_code;
-    }
-
+    // capability check
     IpcReqRespHeader *temp_req = reinterpret_cast<IpcReqRespHeader *>
-      (ConfigKeyVal::Malloc(sizeof(IpcReqRespHeader)));
-    
+        (ConfigKeyVal::Malloc(sizeof(IpcReqRespHeader)));
+
     if (NULL == temp_req) {
       UPLL_LOG_DEBUG(" Memory allocation for IpcReqRespHeader failed");
       DELETE_IF_NOT_NULL(main_ckv);
@@ -1250,17 +1256,20 @@ upll_rc_t FlowListMoMgr::CreateFlowListToController(char *flowlist_name,
     free(temp_req);
 
     if (result_code != UPLL_RC_SUCCESS) {
-       // FlowList is not supported for other than PFC Controller
-       // so SKIP the adding entry for such sontroller
-       DELETE_IF_NOT_NULL(main_ckv);
-       DELETE_IF_NOT_NULL(okey);
-       if ((!ctrlr_mgr->GetCtrlrType(reinterpret_cast<char *>(ctrl_id),
-                       dt_type, &ctrlrtype)) || (ctrlrtype != UNC_CT_PFC)) {
-          UPLL_LOG_DEBUG("Controller type is  %d", ctrlrtype);
-          return UPLL_RC_SUCCESS;
-       }
-       UPLL_LOG_DEBUG("Key not supported by controller");
-       return result_code;
+      // FlowList is not supported for other than PFC Controller
+      // so SKIP the adding entry for such sontroller
+      DELETE_IF_NOT_NULL(main_ckv);
+      DELETE_IF_NOT_NULL(okey);
+      if ((!ctrlr_mgr->GetCtrlrType(
+                  reinterpret_cast<char *>(ctrl_id),
+                  dt_type,
+                  &ctrlrtype)) ||
+          (ctrlrtype != UNC_CT_PFC)) {
+        UPLL_LOG_DEBUG("Controller type is  %d", ctrlrtype);
+        return UPLL_RC_SUCCESS;
+      }
+      UPLL_LOG_DEBUG("Key not supported by controller");
+      return result_code;
     }
 
     ctrlr_val->refcount = 1;
@@ -1271,17 +1280,22 @@ upll_rc_t FlowListMoMgr::CreateFlowListToController(char *flowlist_name,
       ctrlr_val->valid[UPLL_IDX_IP_TYPE_FL] = UNC_VF_INVALID;
     }
     if (UPLL_DT_AUDIT == dt_type) {
-      UPLL_LOG_DEBUG("Setting cs cs_attr %d cs_row_status %d", main_val->cs_attr[0], main_val->cs_row_status);
-      ctrlr_val->cs_row_status = (unc_keytype_configstatus_t)main_val->cs_row_status;
+      UPLL_LOG_DEBUG("Setting cs cs_attr %d cs_row_status %d",
+                     main_val->cs_attr[0],
+                     main_val->cs_row_status);
+      ctrlr_val->cs_row_status =
+          (unc_keytype_configstatus_t)main_val->cs_row_status;
       ctrlr_val->cs_attr[0] = (unc_keytype_configstatus_t)main_val->cs_attr[0];
-      UPLL_LOG_DEBUG("Sutting ctrlr cs cs_attr %d cs_row_status %d", ctrlr_val->cs_attr[0], ctrlr_val->cs_row_status);
+      UPLL_LOG_DEBUG("Sutting ctrlr cs cs_attr %d cs_row_status %d",
+                     ctrlr_val->cs_attr[0],
+                     ctrlr_val->cs_row_status);
     }
     result_code = UpdateConfigDB(okey, dt_type,
                                  UNC_OP_CREATE, dmi,
                                  CTRLRTBL);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("UpdateConfigDB failed to create in ctrlrtbl %d",
-          result_code);
+                     result_code);
       DELETE_IF_NOT_NULL(main_ckv);
       DELETE_IF_NOT_NULL(okey);
       return result_code;
@@ -1304,7 +1318,7 @@ upll_rc_t FlowListMoMgr::CreateFlowListToController(char *flowlist_name,
                                  CTRLRTBL);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("UpdateConfigDB failed to create in ctrlrtbl %d",
-          result_code);
+                     result_code);
       DELETE_IF_NOT_NULL(okey);
       return result_code;
     }
@@ -1312,9 +1326,9 @@ upll_rc_t FlowListMoMgr::CreateFlowListToController(char *flowlist_name,
     UPLL_LOG_DEBUG("ReadConfig DB in ctrlrtbl failed %d", result_code);
   }
   FlowListEntryMoMgr *mgr = reinterpret_cast<FlowListEntryMoMgr *>
-    (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST_ENTRY)));
+      (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST_ENTRY)));
   result_code = mgr->AddFlowListToController(
-                      flowlist_name, dmi, ctrl_id, dt_type, op);
+      flowlist_name, dmi, ctrl_id, dt_type, op);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("Unable to update the controller table for flowlistentry");
     DELETE_IF_NOT_NULL(okey);;
@@ -1342,13 +1356,19 @@ upll_rc_t FlowListMoMgr::TxUpdateController(unc_key_type_t keytype,
   IpcResponse resp;
   if (phase == uuc::kUpllUcpDelete) return UPLL_RC_SUCCESS;
   unc_keytype_operation_t op = (phase == uuc::kUpllUcpCreate)?UNC_OP_CREATE:
-          ((phase == uuc::kUpllUcpUpdate)?UNC_OP_UPDATE:
-          ((phase == uuc::kUpllUcpDelete2)?UNC_OP_DELETE:UNC_OP_INVALID));
+      ((phase == uuc::kUpllUcpUpdate)?UNC_OP_UPDATE:
+       ((phase == uuc::kUpllUcpDelete2)?UNC_OP_DELETE:UNC_OP_INVALID));
   switch (op) {
     case UNC_OP_CREATE:
     case UNC_OP_DELETE:
-      result_code = DiffConfigDB(UPLL_DT_CANDIDATE, UPLL_DT_RUNNING,
-          op, req, nreq, &dal_cursor_handle, dmi, CTRLRTBL);
+      result_code = DiffConfigDB(UPLL_DT_CANDIDATE,
+                                 UPLL_DT_RUNNING,
+                                 op,
+                                 req,
+                                 nreq,
+                                 &dal_cursor_handle,
+                                 dmi,
+                                 CTRLRTBL);
       break;
     case UNC_OP_UPDATE:
       // not supported by keytype
@@ -1372,7 +1392,8 @@ upll_rc_t FlowListMoMgr::TxUpdateController(unc_key_type_t keytype,
     if ((op == UNC_OP_CREATE) || (op == UNC_OP_DELETE)) {
       result_code = DupConfigKeyVal(ck_main, req, MAINTBL);
       if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("FlowListMoMgr:DupConfigKeyVal failed during TxUpdate.");
+        UPLL_LOG_DEBUG("FlowListMoMgr:DupConfigKeyVal failed"
+                       "during TxUpdate.");
         return result_code;
       }
 
@@ -1385,16 +1406,20 @@ upll_rc_t FlowListMoMgr::TxUpdateController(unc_key_type_t keytype,
         DELETE_IF_NOT_NULL(ck_main);
         break;
       }
-      result_code = TxUpdateProcess(ck_main, &resp, op,
-          dmi, &ctrlr_dom);
-      if (result_code == UPLL_RC_SUCCESS) {
-        affected_ctrlr_set->insert((const char *)ctrlr_dom.ctrlr);
-      } else {
+      bool driver_resp = false;
+      result_code = TxUpdateProcess(ck_main,
+                                    &resp,
+                                    op,
+                                    dmi,
+                                    &ctrlr_dom,
+                                    affected_ctrlr_set,
+                                    &driver_resp);
+      if (result_code != UPLL_RC_SUCCESS && driver_resp) {
         UPLL_LOG_DEBUG("TxUpdateProcess error %d", result_code);
         upll_keytype_datatype_t dt_type = (UNC_OP_DELETE == op)?
             UPLL_DT_RUNNING:UPLL_DT_CANDIDATE;
         upll_rc_t local_rc = GetRenamedUncKey(resp.ckv_data, dt_type, dmi,
-                                       ctrlr_dom.ctrlr);
+                                              ctrlr_dom.ctrlr);
         if (UPLL_RC_SUCCESS != local_rc &&
             UPLL_RC_ERR_NO_SUCH_INSTANCE != local_rc) {
           UPLL_LOG_DEBUG("GetRenamedUncKey failed %d", local_rc);
@@ -1403,9 +1428,14 @@ upll_rc_t FlowListMoMgr::TxUpdateController(unc_key_type_t keytype,
           result_code = UPLL_RC_ERR_GENERIC;
           break;
         }
+        SET_USER_DATA_CTRLR(resp.ckv_data, ctrlr_dom.ctrlr);
         *err_ckv = resp.ckv_data;
         DELETE_IF_NOT_NULL(ck_main);
         break;
+      } else if (result_code != UPLL_RC_SUCCESS) {
+        DELETE_IF_NOT_NULL(ck_main);
+        DELETE_IF_NOT_NULL(resp.ckv_data);
+        break;
       }
       DELETE_IF_NOT_NULL(resp.ckv_data);
     }
@@ -1423,8 +1453,12 @@ upll_rc_t FlowListMoMgr::TxUpdateController(unc_key_type_t keytype,
 }
 
 upll_rc_t FlowListMoMgr::TxUpdateProcess(ConfigKeyVal *ck_main,
-     IpcResponse *ipc_resp, unc_keytype_operation_t op,
-     DalDmlIntf *dmi, controller_domain *ctrlr_dom) {
+                                         IpcResponse *ipc_resp,
+                                         unc_keytype_operation_t op,
+                                         DalDmlIntf *dmi,
+                                         controller_domain *ctrlr_dom,
+                                         set<string> *affected_ctrlr_set,
+                                         bool *driver_resp) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code;
   /* read from main table */
@@ -1452,24 +1486,28 @@ upll_rc_t FlowListMoMgr::TxUpdateProcess(ConfigKeyVal *ck_main,
                                          dmi, ctrlr_dom);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("Failed to get the Renamed ControllerKey");
+    DELETE_IF_NOT_NULL(dup_ckmain);
     return result_code;
   }
   result_code = SendIpcReq(ipc_resp->header.clnt_sess_id,
                            ipc_resp->header.config_id, op,
                            UPLL_DT_CANDIDATE,
                            dup_ckmain, ctrlr_dom, ipc_resp);
-  if (result_code == UPLL_RC_ERR_RESOURCE_DISCONNECTED) {
+  if (result_code == UPLL_RC_ERR_CTR_DISCONNECTED) {
     result_code = UPLL_RC_SUCCESS;
     UPLL_LOG_DEBUG("controller disconnected error proceed with commit");
   }
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("IpcSend failed %d", result_code);
+    *driver_resp = true;
   }
+  affected_ctrlr_set->insert((const char *)ctrlr_dom->ctrlr);
   if ((op == UNC_OP_CREATE) && dup_ckmain) {
     delete dup_ckmain;
     dup_ckmain = NULL;
   }
-  return result_code;
+  UPLL_LOG_TRACE("Driver response received %d", *driver_resp)
+      return result_code;
 }
 
 upll_rc_t FlowListMoMgr::TxCopyCandidateToRunning(
@@ -1479,44 +1517,57 @@ upll_rc_t FlowListMoMgr::TxCopyCandidateToRunning(
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   DalResultCode db_result;
   unc_keytype_operation_t op[] = { UNC_OP_CREATE, UNC_OP_DELETE,
-                                   UNC_OP_UPDATE};
+    UNC_OP_UPDATE};
   int nop = sizeof(op) / sizeof(op[0]);
-  ConfigKeyVal *flowlist_key = NULL, *req = NULL, *nreq = NULL , *instance_key = NULL;
+  ConfigKeyVal *flowlist_key = NULL,
+               *req = NULL,
+               *nreq = NULL ,
+               *instance_key = NULL;
   DalCursor *cfg1_cursor = NULL;
   uint8_t *ctrlr_id = NULL;
   map<string, int> ctrlr_result;
-  CtrlrCommitStatusList::iterator ccsListItr;
+  CtrlrCommitStatusList::iterator ccsListItr_begin;
+  CtrlrCommitStatusList::iterator ccsListItr_end;
   CtrlrCommitStatus *ccStatusPtr;
 
-  if ((ctrlr_commit_status == NULL) || (dmi == NULL)) {
-    UPLL_LOG_DEBUG("Insufficient parameters");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  for (ccsListItr = ctrlr_commit_status->begin();
-       ccsListItr != ctrlr_commit_status->end(); ++ccsListItr) {
-    ccStatusPtr = *ccsListItr;
-    ctrlr_id = reinterpret_cast<uint8_t *>
-        (const_cast<char*>(ccStatusPtr->ctrlr_id.c_str()));
-    ctrlr_result[ccStatusPtr->ctrlr_id] = ccStatusPtr->upll_ctrlr_result;
-    if (ccStatusPtr->upll_ctrlr_result != UPLL_RC_SUCCESS) {
-      for (ConfigKeyVal *ck_err = ccStatusPtr->err_ckv; ck_err != NULL; ck_err =
-           ck_err->get_next_cfg_key_val()) {
-        if (ck_err->get_key_type() != keytype) continue;
-        result_code = GetRenamedUncKey(ck_err, UPLL_DT_CANDIDATE, dmi,
-                                       ctrlr_id);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("Unable to get the Renamed UncKey %d", result_code);
-          return result_code;
+  if (ctrlr_commit_status != NULL) {
+    ccsListItr_begin = ctrlr_commit_status->begin();
+    ccsListItr_end = ctrlr_commit_status->end();
+    for (; ccsListItr_begin != ccsListItr_end; ++ccsListItr_begin) {
+      ccStatusPtr = *ccsListItr_begin;
+      ctrlr_id = reinterpret_cast<uint8_t *>
+          (const_cast<char*>(ccStatusPtr->ctrlr_id.c_str()));
+      ctrlr_result[ccStatusPtr->ctrlr_id] = ccStatusPtr->upll_ctrlr_result;
+      if (ccStatusPtr->upll_ctrlr_result != UPLL_RC_SUCCESS) {
+        for (ConfigKeyVal *ck_err = ccStatusPtr->err_ckv;
+             ck_err != NULL; ck_err =
+             ck_err->get_next_cfg_key_val()) {
+          if (ck_err->get_key_type() != keytype) continue;
+          result_code = GetRenamedUncKey(ck_err, UPLL_DT_CANDIDATE, dmi,
+                                         ctrlr_id);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("Unable to get the Renamed UncKey %d", result_code);
+            return result_code;
+          }
         }
       }
     }
   }
 
   for (int i = 0; i < nop; i++) {
+    cfg1_cursor = NULL;
     // Update the Main table
     if (op[i] != UNC_OP_UPDATE) {
-      result_code = DiffConfigDB(UPLL_DT_CANDIDATE, UPLL_DT_RUNNING, op[i],
-                                 req, nreq, &cfg1_cursor, dmi, NULL, MAINTBL ,true);
+      result_code = DiffConfigDB(UPLL_DT_CANDIDATE,
+                                 UPLL_DT_RUNNING,
+                                 op[i],
+                                 req,
+                                 nreq,
+                                 &cfg1_cursor,
+                                 dmi,
+                                 NULL,
+                                 MAINTBL ,
+                                 true);
       while (result_code == UPLL_RC_SUCCESS) {
         db_result = dmi->GetNextRecord(cfg1_cursor);
         result_code = DalToUpllResCode(db_result);
@@ -1541,15 +1592,17 @@ upll_rc_t FlowListMoMgr::TxCopyCandidateToRunning(
         cfg1_cursor = NULL;
       }
       if (req)
-        delete req;
+        DELETE_IF_NOT_NULL(req);
+      DELETE_IF_NOT_NULL(nreq);
       req = NULL;
     }
     UPLL_LOG_DEBUG("Updating main table complete with op %d", op[i]);
   }
   for (int i = 0; i < nop; i++) {
+    cfg1_cursor = NULL;
     // Update the controller table
     result_code = DiffConfigDB(UPLL_DT_CANDIDATE, UPLL_DT_RUNNING, op[i], req,
-                               nreq, &cfg1_cursor, dmi, NULL, CTRLRTBL,true);
+                               nreq, &cfg1_cursor, dmi, NULL, CTRLRTBL, true);
     ConfigKeyVal *flowlist_ctrlr_key = NULL;
     while (result_code == UPLL_RC_SUCCESS) {
       db_result = dmi->GetNextRecord(cfg1_cursor);
@@ -1559,7 +1612,9 @@ upll_rc_t FlowListMoMgr::TxCopyCandidateToRunning(
         break;
       }
       if (op[i] == UNC_OP_CREATE) {
-        DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutFlag | kOpInOutCs };
+        DbSubOp dbop = { kOpReadSingle,
+          kOpMatchNone,
+          kOpInOutFlag | kOpInOutCs };
         result_code = GetChildConfigKey(flowlist_key, req);
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("GetChildConfigKey is failed resultcode=%d",
@@ -1570,7 +1625,7 @@ upll_rc_t FlowListMoMgr::TxCopyCandidateToRunning(
           DELETE_IF_NOT_NULL(nreq);
           return result_code;
         }
-        result_code = ReadConfigDB(flowlist_key,UPLL_DT_RUNNING ,
+        result_code = ReadConfigDB(flowlist_key, UPLL_DT_RUNNING ,
                                    UNC_OP_READ, dbop, dmi, MAINTBL);
         if ((result_code != UPLL_RC_SUCCESS) &&
             (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)) {
@@ -1597,7 +1652,8 @@ upll_rc_t FlowListMoMgr::TxCopyCandidateToRunning(
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("GetChildConfigKey is failed resultcode=%d",
                          result_code);
-          DELETE_IF_NOT_NULL(flowlist_ctrlr_key); 
+          DELETE_IF_NOT_NULL(flowlist_ctrlr_key);
+          DELETE_IF_NOT_NULL(flowlist_key);
           if (cfg1_cursor)
             dmi->CloseCursor(cfg1_cursor, true);
           DELETE_IF_NOT_NULL(req);
@@ -1605,29 +1661,36 @@ upll_rc_t FlowListMoMgr::TxCopyCandidateToRunning(
           return result_code;
         }
 
-          /* set consolidated config status to UNKNOWN to init  cs_status
+        /* set consolidated config status to UNKNOWN to init  cs_status
          * to the cs_status of first controller
          */
         uint32_t cur_instance_count;
         result_code = GetInstanceCount(instance_key, NULL,
-                                   UPLL_DT_CANDIDATE, &cur_instance_count,
-                                   dmi, CTRLRTBL);
-        UPLL_LOG_TRACE("in iiiflowlist cs_status %d \n",cur_instance_count);
+                                       UPLL_DT_CANDIDATE, &cur_instance_count,
+                                       dmi, CTRLRTBL);
+        UPLL_LOG_TRACE("in iiiflowlist cs_status %d \n", cur_instance_count);
         if ((result_code == UPLL_RC_SUCCESS) && (cur_instance_count == 1))
-        reinterpret_cast<val_flowlist *>(GetVal(flowlist_key))->
-          cs_row_status = UNC_CS_UNKNOWN ;
-        
+          reinterpret_cast<val_flowlist *>(GetVal(flowlist_key))->
+              cs_row_status = UNC_CS_UNKNOWN;
+
         DELETE_IF_NOT_NULL(instance_key);
 
         GET_USER_DATA_CTRLR(flowlist_ctrlr_key, ctrlr_id);
         string controller(reinterpret_cast<char *>(ctrlr_id));
-        result_code = UpdateConfigStatus(flowlist_key, op[i],
-                                         ctrlr_result[controller], nreq,
-                                         dmi, flowlist_ctrlr_key);
+        if (ctrlr_result.empty()) {
+          result_code = UpdateConfigStatus(flowlist_key, op[i],
+                                           UPLL_RC_ERR_CTR_DISCONNECTED, nreq,
+                                           dmi, flowlist_ctrlr_key);
+        } else {
+          result_code = UpdateConfigStatus(flowlist_key, op[i],
+                                           ctrlr_result[controller], nreq,
+                                           dmi, flowlist_ctrlr_key);
+        }
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG(" UpdateConfigStatus Function Failed - %d ",
                          result_code);
           DELETE_IF_NOT_NULL(flowlist_key);
+          DELETE_IF_NOT_NULL(flowlist_ctrlr_key);
           if (cfg1_cursor)
             dmi->CloseCursor(cfg1_cursor, true);
           DELETE_IF_NOT_NULL(req);
@@ -1635,52 +1698,56 @@ upll_rc_t FlowListMoMgr::TxCopyCandidateToRunning(
           return result_code;
         }
       } else if (op[i] == UNC_OP_DELETE) {
-          DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
-                             kOpInOutFlag | kOpInOutCs };
-          result_code = GetChildConfigKey(flowlist_key, req);
-          if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("GetChildConfigKey is failed resultcode=%d",
-                            result_code);
-            if (cfg1_cursor)
-             dmi->CloseCursor(cfg1_cursor, true);
-             DELETE_IF_NOT_NULL(req);
-             DELETE_IF_NOT_NULL(nreq);
-             return result_code;
-          }
-          GET_USER_DATA_CTRLR(req, ctrlr_id);
-          result_code = ReadConfigDB(flowlist_key, UPLL_DT_RUNNING,
+        DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
+          kOpInOutFlag | kOpInOutCs };
+        result_code = GetChildConfigKey(flowlist_key, req);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("GetChildConfigKey is failed resultcode=%d",
+                         result_code);
+          if (cfg1_cursor)
+            dmi->CloseCursor(cfg1_cursor, true);
+          DELETE_IF_NOT_NULL(req);
+          DELETE_IF_NOT_NULL(nreq);
+          return result_code;
+        }
+        GET_USER_DATA_CTRLR(req, ctrlr_id);
+        result_code = ReadConfigDB(flowlist_key, UPLL_DT_RUNNING,
                                    UNC_OP_READ, dbop, dmi, MAINTBL);
 
-          if (result_code != UPLL_RC_SUCCESS && 
-              result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-            UPLL_LOG_DEBUG("Unable to read configuration from RunningDB");
+        if (result_code != UPLL_RC_SUCCESS &&
+            result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+          UPLL_LOG_DEBUG("Unable to read configuration from RunningDB");
+          DELETE_IF_NOT_NULL(flowlist_key);
+          if (cfg1_cursor)
+            dmi->CloseCursor(cfg1_cursor, true);
+          DELETE_IF_NOT_NULL(req);
+          DELETE_IF_NOT_NULL(nreq);
+          return result_code;
+        }
+        if (result_code == UPLL_RC_SUCCESS) {
+          result_code = SetFlowListConsolidatedStatus(flowlist_key,
+                                                      ctrlr_id, dmi);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("Could not set consolidated status %d",
+                           result_code);
             DELETE_IF_NOT_NULL(flowlist_key);
             if (cfg1_cursor)
-             dmi->CloseCursor(cfg1_cursor, true);
+              dmi->CloseCursor(cfg1_cursor, true);
             DELETE_IF_NOT_NULL(req);
             DELETE_IF_NOT_NULL(nreq);
             return result_code;
           }
-          if (result_code == UPLL_RC_SUCCESS) {
-            result_code = SetFlowListConsolidatedStatus(flowlist_key,
-                                                          ctrlr_id, dmi);
-            if (result_code != UPLL_RC_SUCCESS) {
-              UPLL_LOG_DEBUG("Could not set consolidated status %d",
-                              result_code);
-              DELETE_IF_NOT_NULL(flowlist_key);
-              if (cfg1_cursor)
-               dmi->CloseCursor(cfg1_cursor, true);
-              DELETE_IF_NOT_NULL(req);
-              DELETE_IF_NOT_NULL(nreq);
-              return result_code;
-            }
-          }
-          result_code = GetChildConfigKey(flowlist_ctrlr_key, req);
-          if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("GetChildConfigKey Failed  %d", result_code);
-            DELETE_IF_NOT_NULL(flowlist_key);
-            return result_code;
-          }
+        }
+        result_code = GetChildConfigKey(flowlist_ctrlr_key, req);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("GetChildConfigKey Failed  %d", result_code);
+          DELETE_IF_NOT_NULL(flowlist_key);
+          if (cfg1_cursor)
+            dmi->CloseCursor(cfg1_cursor, true);
+          DELETE_IF_NOT_NULL(req);
+          DELETE_IF_NOT_NULL(nreq);
+          return result_code;
+        }
       }
       if (UNC_OP_CREATE == op[i]) {
         val_flowlist_ctrl_t *val_ctrlr_temp = reinterpret_cast
@@ -1693,11 +1760,11 @@ upll_rc_t FlowListMoMgr::TxCopyCandidateToRunning(
         result_code = DupConfigKeyVal(flowlist_ctrlr_key, nreq, CTRLRTBL);
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("DupConfigVal function is failed %d",
-                          result_code);
+                         result_code);
           if (cfg1_cursor)
             dmi->CloseCursor(cfg1_cursor, true);
-            DELETE_IF_NOT_NULL(req);
-            DELETE_IF_NOT_NULL(nreq);
+          DELETE_IF_NOT_NULL(req);
+          DELETE_IF_NOT_NULL(nreq);
           return result_code;
         }
         val_flowlist_ctrl_t *val_ctrlr_temp = reinterpret_cast
@@ -1715,24 +1782,27 @@ upll_rc_t FlowListMoMgr::TxCopyCandidateToRunning(
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("Unable to Update Configuration at DB %d", result_code);
         DELETE_IF_NOT_NULL(flowlist_ctrlr_key);
+        DELETE_IF_NOT_NULL(flowlist_key);
         if (cfg1_cursor)
-           dmi->CloseCursor(cfg1_cursor, true);
-           DELETE_IF_NOT_NULL(req);
-           DELETE_IF_NOT_NULL(nreq);
+          dmi->CloseCursor(cfg1_cursor, true);
+        DELETE_IF_NOT_NULL(req);
+        DELETE_IF_NOT_NULL(nreq);
         return result_code;
       }
 
       // update the consolidated config status in the Main Table
       if (op[i] == UNC_OP_CREATE) {
         result_code = UpdateConfigDB(flowlist_key, UPLL_DT_RUNNING,
-                                    UNC_OP_UPDATE, dmi, MAINTBL);
+                                     UNC_OP_UPDATE, dmi, MAINTBL);
         if (result_code != UPLL_RC_SUCCESS) {
+          DELETE_IF_NOT_NULL(flowlist_ctrlr_key);
+          DELETE_IF_NOT_NULL(flowlist_key);
           if (cfg1_cursor)
             dmi->CloseCursor(cfg1_cursor, true);
-            DELETE_IF_NOT_NULL(req);
-            DELETE_IF_NOT_NULL(nreq);
-            return result_code;
-          }
+          DELETE_IF_NOT_NULL(req);
+          DELETE_IF_NOT_NULL(nreq);
+          return result_code;
+        }
       }
 
       EnqueCfgNotification(op[i], UPLL_DT_RUNNING, flowlist_ctrlr_key);
@@ -1749,9 +1819,9 @@ upll_rc_t FlowListMoMgr::TxCopyCandidateToRunning(
     if (nreq) delete nreq;
     nreq = req = NULL;
     result_code = TxCopyRenameTableFromCandidateToRunning(keytype,
-                                                            op[i], dmi);
+                                                          op[i], dmi);
     UPLL_LOG_DEBUG("TxCopyRenameTableFromCandidateToRunning returned %d",
-                                                            result_code);
+                   result_code);
   }
   result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) ?
       UPLL_RC_SUCCESS : result_code;
@@ -1761,42 +1831,43 @@ upll_rc_t FlowListMoMgr::TxCopyCandidateToRunning(
 bool FlowListMoMgr::IsValidKey(void *key, uint64_t index) {
   UPLL_FUNC_TRACE;
   key_flowlist_t *flowlist_key =
-    reinterpret_cast<key_flowlist_t*> (key);
+      reinterpret_cast<key_flowlist_t*> (key);
   upll_rc_t ret_val;
   ret_val = ValidateKey(reinterpret_cast<char *>
                         (flowlist_key->flowlist_name),
                         kMinLenFlowListName,
                         kMaxLenFlowListName);
   if (ret_val != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("FlowList Name is not valid(%d)", ret_val);
-      return false;
+    UPLL_LOG_DEBUG("FlowList Name is not valid(%d)", ret_val);
+    return false;
   }
   return true;
 }
 
 upll_rc_t FlowListMoMgr::UpdateAuditConfigStatus(
-                           unc_keytype_configstatus_t cs_status,
-                           uuc::UpdateCtrlrPhase phase,
-                           ConfigKeyVal *&ckv_running) {
+    unc_keytype_configstatus_t cs_status,
+    uuc::UpdateCtrlrPhase phase,
+    ConfigKeyVal *&ckv_running,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_flowlist_ctrl_t *val;
   val = (ckv_running != NULL)?
-                            reinterpret_cast<val_flowlist_ctrl_t *>
-                            (GetVal(ckv_running)):NULL;
+      reinterpret_cast<val_flowlist_ctrl_t *>
+      (GetVal(ckv_running)):NULL;
   if (NULL == val) {
     UPLL_LOG_DEBUG("Value Structure is Empty");
     return UPLL_RC_ERR_GENERIC;
   }
-  UPLL_LOG_DEBUG("The Value of Cs Status at start is %d",cs_status);
+  UPLL_LOG_DEBUG("The Value of Cs Status at start is %d", cs_status);
   if (uuc::kUpllUcpCreate == phase )
     val->cs_row_status = cs_status;
   if ((uuc::kUpllUcpUpdate == phase) &&
-           (val->cs_row_status == UNC_CS_INVALID ||
-            val->cs_row_status == UNC_CS_NOT_APPLIED))
+      (val->cs_row_status == UNC_CS_INVALID ||
+       val->cs_row_status == UNC_CS_NOT_APPLIED))
     val->cs_row_status = cs_status;
   if ((cs_status == UNC_CS_INVALID && UNC_VF_VALID == val->valid[0]) ||
-       cs_status == UNC_CS_APPLIED)
+      cs_status == UNC_CS_APPLIED)
     val->cs_attr[0] = cs_status;
 
   return result_code;
@@ -1828,9 +1899,9 @@ upll_rc_t FlowListMoMgr::SetConsolidatedStatus(ConfigKeyVal *ikey,
   val_flowlist_ctrl_t *val;
   ConfigKeyVal *temp_ckv = ckv;
   for ( ; temp_ckv != NULL ; temp_ckv = temp_ckv->get_next_cfg_key_val()) {
-      val = reinterpret_cast<val_flowlist_ctrl_t *>(GetVal(temp_ckv));
-      list_cs_row.push_back((unc_keytype_configstatus_t)val->cs_row_status);
-      list_cs_attr.push_back((unc_keytype_configstatus_t)val->cs_attr[0]);
+    val = reinterpret_cast<val_flowlist_ctrl_t *>(GetVal(temp_ckv));
+    list_cs_row.push_back((unc_keytype_configstatus_t)val->cs_row_status);
+    list_cs_attr.push_back((unc_keytype_configstatus_t)val->cs_attr[0]);
   }
   DELETE_IF_NOT_NULL(ckv);
   val_flowlist_t *val_temp = reinterpret_cast<val_flowlist_t *>(GetVal(ikey));
@@ -1851,7 +1922,7 @@ bool FlowListMoMgr::CompareKey(void *key1, void *key2) {
   flowlist_key1 = reinterpret_cast<key_flowlist_t *>(key1);
   flowlist_key2 = reinterpret_cast<key_flowlist_t *>(key2);
   if (flowlist_key1 == flowlist_key2)
-      return true;
+    return true;
   if ((!flowlist_key1) || (!flowlist_key2)) {
     UPLL_LOG_DEBUG(" CompareKey failed");
     return false;
@@ -1859,7 +1930,7 @@ bool FlowListMoMgr::CompareKey(void *key1, void *key2) {
   if (strcmp(reinterpret_cast<char *>(flowlist_key1->flowlist_name),
              reinterpret_cast< char *>(flowlist_key2->flowlist_name)) == 0) {
     match = true;
-     UPLL_LOG_DEBUG(" CompareKey . Both Keys are same");
+    UPLL_LOG_DEBUG(" CompareKey . Both Keys are same");
   }
   return match;
 }
@@ -1888,12 +1959,12 @@ upll_rc_t FlowListMoMgr::ValidateMessage(IpcReqRespHeader *req,
     return UPLL_RC_ERR_INVALID_OPTION2;
   }
 
-    if (UPLL_RC_SUCCESS !=
-        (result_code = ValidateFlowListKey(key, req->operation))) {
-      UPLL_LOG_DEBUG(" flow-list key validation failed result(%d)",
-                     result_code);
-      return result_code;
-    }
+  if (UPLL_RC_SUCCESS !=
+      (result_code = ValidateFlowListKey(key, req->operation))) {
+    UPLL_LOG_DEBUG(" flow-list key validation failed result(%d)",
+                   result_code);
+    return result_code;
+  }
 
   if ((req->operation == UNC_OP_RENAME) ||
       ((req->datatype == UPLL_DT_IMPORT) &&
@@ -1921,7 +1992,7 @@ upll_rc_t FlowListMoMgr::ValidateFlowListKey(ConfigKeyVal *key,
                                              unc_keytype_operation_t op) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
-  /** check received key,val struct in configkeyval is valid
+  /** check received key, val struct in configkeyval is valid
    * KT_FLOWLIST structs */
   if (key->get_st_num() != IpctSt::kIpcStKeyFlowlist) {
     UPLL_LOG_DEBUG("Invalid key structure received. struct num - %d",
@@ -1967,7 +2038,8 @@ upll_rc_t FlowListMoMgr::ValidateFlowListValRename(ConfigKeyVal *key,
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
   if (!key->get_cfg_val()) {
-    // operation is read/read_sibling/read_sibling_begin and data type is import
+    // operation is read/read_sibling/read_sibling_begin and data
+    // type is import
     if ((datatype == UPLL_DT_IMPORT) &&
         ((operation == UNC_OP_READ) || (operation == UNC_OP_READ_SIBLING) ||
          (operation == UNC_OP_READ_SIBLING_BEGIN))) {
@@ -1982,7 +2054,7 @@ upll_rc_t FlowListMoMgr::ValidateFlowListValRename(ConfigKeyVal *key,
     UPLL_LOG_DEBUG("Invalid val structure received. struct num - %d",
                    (key->get_cfg_val())->get_st_num());
     return UPLL_RC_ERR_BAD_REQUEST;
-      }
+  }
 
   if (NULL == key->get_cfg_val()->get_val()) {
     UPLL_LOG_DEBUG("KT_FLOWLIST val rename structure is null");
@@ -1992,21 +2064,21 @@ upll_rc_t FlowListMoMgr::ValidateFlowListValRename(ConfigKeyVal *key,
       static_cast<val_rename_flowlist_t *>(key->get_cfg_val()->get_val());
 
   if (UPLL_DT_IMPORT != datatype) {
-  if (val_rename_flowlist->valid[UPLL_IDX_RENAME_FLOWLIST_RFL]
-      != UNC_VF_VALID) {
-    UPLL_LOG_DEBUG(" flowlist rename value is not set");
-    return UPLL_RC_ERR_BAD_REQUEST;
+    if (val_rename_flowlist->valid[UPLL_IDX_RENAME_FLOWLIST_RFL]
+        != UNC_VF_VALID) {
+      UPLL_LOG_DEBUG(" flowlist rename value is not set");
+      return UPLL_RC_ERR_BAD_REQUEST;
     }
   }
   if (val_rename_flowlist->valid[UPLL_IDX_RENAME_FLOWLIST_RFL]
-        == UNC_VF_VALID) {
+      == UNC_VF_VALID) {
     result_code = ValidateKey(
-      reinterpret_cast<char *>(val_rename_flowlist->flowlist_newname),
-      (unsigned int)kMinLenFlowListName,
-      (unsigned int)kMaxLenFlowListName);
+        reinterpret_cast<char *>(val_rename_flowlist->flowlist_newname),
+        (unsigned int)kMinLenFlowListName,
+        (unsigned int)kMaxLenFlowListName);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG(" flowlist rename value validation failed %s",
-                   val_rename_flowlist->flowlist_newname);
+                     val_rename_flowlist->flowlist_newname);
       return result_code;
     }
   }
@@ -2058,7 +2130,8 @@ upll_rc_t FlowListMoMgr::ValidateFlowListVal(ConfigKeyVal *key,
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if ((operation == UNC_OP_CREATE) &&
-      (val_flowlist->valid[UPLL_IDX_IP_TYPE_FL] == UNC_VF_VALID_NO_VALUE)) {
+             (val_flowlist->valid[UPLL_IDX_IP_TYPE_FL] ==
+              UNC_VF_VALID_NO_VALUE)) {
     UPLL_LOG_TRACE("Reset ip_type");
     val_flowlist->ip_type = UPLL_FLOWLIST_TYPE_IP;
   }
@@ -2087,7 +2160,7 @@ upll_rc_t FlowListMoMgr::ValidateCapability(IpcReqRespHeader *req,
   }
 
   UPLL_LOG_TRACE("ctrlr_name(%s), datatype : (%d)",
-                ctrlr_name, req->datatype);
+                 ctrlr_name, req->datatype);
 
   bool result_code = false;
   uint32_t max_instance_count = 0;
@@ -2096,14 +2169,11 @@ upll_rc_t FlowListMoMgr::ValidateCapability(IpcReqRespHeader *req,
 
   switch (req->operation) {
     case UNC_OP_CREATE: {
-      result_code = GetCreateCapability(ctrlr_name, ikey->get_key_type(),
-                                        &max_instance_count, &max_attrs, &attrs);
-      if (result_code && (max_instance_count != 0) &&
-          (cur_instance_count >= max_instance_count)) {
-        UPLL_LOG_DEBUG("Instance count %d exceeds %d", cur_instance_count,
-                      max_instance_count);
-        return UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
-      }      
+      result_code = GetCreateCapability(ctrlr_name,
+                                        ikey->get_key_type(),
+                                        &max_instance_count,
+                                        &max_attrs,
+                                        &attrs);
       break;
     }
     case UNC_OP_UPDATE: {
@@ -2114,10 +2184,10 @@ upll_rc_t FlowListMoMgr::ValidateCapability(IpcReqRespHeader *req,
     default:
       if (req->datatype == UPLL_DT_STATE) {
         result_code = GetStateCapability(ctrlr_name, ikey->get_key_type(),
-                                      &max_attrs, &attrs);
+                                         &max_attrs, &attrs);
       } else {
         result_code = GetReadCapability(ctrlr_name, ikey->get_key_type(),
-                                      &max_attrs, &attrs);
+                                        &max_attrs, &attrs);
       }
       break;
   }
@@ -2130,26 +2200,27 @@ upll_rc_t FlowListMoMgr::ValidateCapability(IpcReqRespHeader *req,
   }
 
   val_flowlist_t *val_flowlist =
-       reinterpret_cast<val_flowlist_t *>(GetVal(ikey));
+      reinterpret_cast<val_flowlist_t *>(GetVal(ikey));
 
   if (val_flowlist) {
-     if (max_attrs > 0) {
-        return ValFlowlistAttributeSupportCheck(val_flowlist, attrs);
-     } else {
-       UPLL_LOG_DEBUG("Attribute list is empty for operation %d", req->operation);
-       return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
-     }
-   }
-   return UPLL_RC_SUCCESS;
+    if (max_attrs > 0) {
+      return ValFlowlistAttributeSupportCheck(val_flowlist, attrs);
+    } else {
+      UPLL_LOG_DEBUG("Attribute list is empty for operation %d",
+                     req->operation);
+      return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
+    }
+  }
+  return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t FlowListMoMgr::ValFlowlistAttributeSupportCheck(
-val_flowlist_t *val_flowlist, const uint8_t* attrs ) {
+    val_flowlist_t *val_flowlist, const uint8_t* attrs ) {
   UPLL_FUNC_TRACE;
 
   if ((val_flowlist->valid[UPLL_IDX_IP_TYPE_FL] == UNC_VF_VALID)
       || (val_flowlist->valid[UPLL_IDX_IP_TYPE_FL] ==
-         UNC_VF_VALID_NO_VALUE)) {
+          UNC_VF_VALID_NO_VALUE)) {
     if (attrs[unc::capa::flowlist::kCapIpType] == 0) {
       val_flowlist->valid[UPLL_IDX_IP_TYPE_FL] = UNC_VF_NOT_SUPPORTED;
 
@@ -2160,8 +2231,11 @@ val_flowlist_t *val_flowlist, const uint8_t* attrs ) {
 }
 
 upll_rc_t FlowListMoMgr::GetRenameInfo(ConfigKeyVal *ikey,
-    ConfigKeyVal *okey, ConfigKeyVal *&rename_info, DalDmlIntf *dmi,
-    const char *ctrlr_id, bool &renamed) {
+                                       ConfigKeyVal *okey,
+                                       ConfigKeyVal *&rename_info,
+                                       DalDmlIntf *dmi,
+                                       const char *ctrlr_id,
+                                       bool &renamed) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   if (!ikey || !okey || NULL != rename_info
@@ -2170,39 +2244,42 @@ upll_rc_t FlowListMoMgr::GetRenameInfo(ConfigKeyVal *ikey,
     return UPLL_RC_ERR_GENERIC;
   }
   key_rename_vnode_info_t *key_rename_info =
-  reinterpret_cast<key_rename_vnode_info_t*>
-  (ConfigKeyVal::Malloc(sizeof(key_rename_vnode_info_t)));
+      reinterpret_cast<key_rename_vnode_info_t*>
+      (ConfigKeyVal::Malloc(sizeof(key_rename_vnode_info_t)));
 
   key_flowlist_t *flowlist_key = NULL;
   flowlist_key = reinterpret_cast<key_flowlist_t *>
-    (ikey->get_key());
+      (ikey->get_key());
   if (renamed) {
     uuu::upll_strncpy(key_rename_info->ctrlr_flowlist_name,
-               reinterpret_cast<val_rename_flowlist_t*>(GetVal(ikey))->flowlist_newname,
-               (kMaxLenFlowListName+1));
+                      reinterpret_cast<val_rename_flowlist_t*>
+                      (GetVal(ikey))->flowlist_newname,
+                      (kMaxLenFlowListName+1));
 
   } else {
     /* if not renamed the ikey contains the controller name */
     uuu::upll_strncpy(key_rename_info->ctrlr_flowlist_name,
-        flowlist_key->flowlist_name,
-        (kMaxLenFlowListName + 1));
+                      flowlist_key->flowlist_name,
+                      (kMaxLenFlowListName + 1));
     UPLL_LOG_DEBUG("key_rename_info->ctrlr_flowlist_name ::: (%s)",
                    key_rename_info->ctrlr_flowlist_name);
   }
 
   uuu::upll_strncpy(key_rename_info->old_flowlist_name,
-               flowlist_key->flowlist_name,
-               (kMaxLenFlowListName+1));
+                    flowlist_key->flowlist_name,
+                    (kMaxLenFlowListName+1));
 
   flowlist_key = reinterpret_cast<key_flowlist_t *>
-    (okey->get_key());
+      (okey->get_key());
 
   uuu::upll_strncpy(key_rename_info->new_flowlist_name,
-               flowlist_key->flowlist_name,
-               (kMaxLenFlowListName+1));
+                    flowlist_key->flowlist_name,
+                    (kMaxLenFlowListName+1));
 
   rename_info = new ConfigKeyVal(UNC_KT_FLOWLIST,
-      IpctSt::kIpcInvalidStNum, key_rename_info, NULL);
+                                 IpctSt::kIpcInvalidStNum,
+                                 key_rename_info,
+                                 NULL);
   if (!rename_info) {
     free(key_rename_info);
     key_rename_info = NULL;
@@ -2212,34 +2289,38 @@ upll_rc_t FlowListMoMgr::GetRenameInfo(ConfigKeyVal *ikey,
 
   DbSubOp dbop = {kOpReadExist, kOpMatchNone, kOpInOutNone};
   result_code = UpdateConfigDB(ikey, UPLL_DT_IMPORT,
-                             UNC_OP_READ, dmi, &dbop, CTRLRTBL);
+                               UNC_OP_READ, dmi, &dbop, CTRLRTBL);
   if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
     result_code = UPLL_RC_ERR_NOT_ALLOWED_AT_THIS_TIME;
+    FREE_IF_NOT_NULL(key_rename_info);
     UPLL_LOG_DEBUG("StandAlone configuration found %d", result_code);
     return result_code;
   } else if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code)  {
     UPLL_LOG_DEBUG("ReadConfigDB failed - %d", result_code);
+    FREE_IF_NOT_NULL(key_rename_info);
     return result_code;
   }
   SET_USER_DATA_CTRLR(rename_info, ctrlr_id);
   if (!renamed) {
     val_rename_flowlist_t *val_rename =
-    reinterpret_cast<val_rename_flowlist_t*>
-    (ConfigKeyVal::Malloc(sizeof(val_rename_flowlist_t)));
+        reinterpret_cast<val_rename_flowlist_t*>
+        (ConfigKeyVal::Malloc(sizeof(val_rename_flowlist_t)));
     uuu::upll_strncpy(val_rename->flowlist_newname,
-                 key_rename_info->old_flowlist_name,
-                 (kMaxLenFlowListName+1));
+                      key_rename_info->old_flowlist_name,
+                      (kMaxLenFlowListName+1));
     val_rename->valid[UPLL_IDX_RENAME_FLOWLIST_RFL] = UNC_VF_VALID;
     ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcStValRenameFlowlist,
-        val_rename);
+                                       val_rename);
     okey->SetCfgVal(cfg_val);
     SET_USER_DATA_CTRLR(okey, ctrlr_id);
     DbSubOp dbop1 = {kOpNotRead, kOpMatchNone, kOpInOutCtrlr};
     result_code = UpdateConfigDB(okey, UPLL_DT_IMPORT, UNC_OP_CREATE, dmi,
-        &dbop1, RENAMETBL);
+                                 &dbop1, RENAMETBL);
     if (result_code != UPLL_RC_SUCCESS) {
+      FREE_IF_NOT_NULL(key_rename_info);
+      FREE_IF_NOT_NULL(rename_info);
       UPLL_LOG_DEBUG(" GetRenameInfo Failed. UpdateConfigDb Failed"
-        " Result code - %d", result_code);
+                     " Result code - %d", result_code);
     }
   }
   if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code)
@@ -2249,8 +2330,7 @@ upll_rc_t FlowListMoMgr::GetRenameInfo(ConfigKeyVal *ikey,
 }
 
 upll_rc_t FlowListMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
-    ConfigKeyVal *ikey) {
-
+                                         ConfigKeyVal *ikey) {
   if ( !ikey || !(ikey->get_key()) )
     return UPLL_RC_ERR_GENERIC;
 
@@ -2259,12 +2339,12 @@ upll_rc_t FlowListMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
 
   if (UNC_KT_FLOWLIST == ikey->get_key_type()) {
     key_rename_vnode_info_t *key_rename =
-      reinterpret_cast<key_rename_vnode_info_t *>(ikey->get_key());
+        reinterpret_cast<key_rename_vnode_info_t *>(ikey->get_key());
     key_flowlist =
-      reinterpret_cast<key_flowlist_t*>
-      (ConfigKeyVal::Malloc(sizeof(key_flowlist_t)));
+        reinterpret_cast<key_flowlist_t*>
+        (ConfigKeyVal::Malloc(sizeof(key_flowlist_t)));
     if (!strlen(reinterpret_cast<char *>
-          (key_rename->old_flowlist_name))) {
+                (key_rename->old_flowlist_name))) {
       free(key_flowlist);
       return UPLL_RC_ERR_GENERIC;
     }
@@ -2273,12 +2353,12 @@ upll_rc_t FlowListMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
                       (kMaxLenFlowListName+1));
 
     okey = new ConfigKeyVal(UNC_KT_FLOWLIST,
-        IpctSt::kIpcStKeyFlowlist, key_flowlist, NULL);
+                            IpctSt::kIpcStKeyFlowlist, key_flowlist, NULL);
     if (!okey) {
       UPLL_LOG_DEBUG("Memory allocation failed for ConfigKeyVal");
       free(key_flowlist);
       result_code = UPLL_RC_ERR_GENERIC;
-      return result_code; 
+      return result_code;
     }
     SET_USER_DATA(okey, ikey);
   } else {
@@ -2303,37 +2383,39 @@ bool FlowListMoMgr::CompareValidValue(void *&val1, void *val2,
   UPLL_FUNC_TRACE;
   bool invalid_attr = true;
   val_flowlist_t *flowlist_val1 =
-    reinterpret_cast<val_flowlist_t *>(val1);
+      reinterpret_cast<val_flowlist_t *>(val1);
 
   val_flowlist_t *flowlist_val2 =
-    reinterpret_cast<val_flowlist_t *>(val2);
-//  if (flowlist_val1 && flowlist_val2) {
+      reinterpret_cast<val_flowlist_t *>(val2);
+  //  if (flowlist_val1 && flowlist_val2) {
   //  if (audit) {
-      for ( unsigned int loop = 0; loop < sizeof(flowlist_val1->valid);
-          ++loop ) {
-        if (UNC_VF_INVALID == flowlist_val1->valid[loop] &&
-            UNC_VF_VALID == flowlist_val2->valid[loop])
-          flowlist_val1->valid[loop] = UNC_VF_VALID_NO_VALUE;
-      }
-   // }
-    if (UNC_VF_VALID == flowlist_val1->valid[UPLL_IDX_IP_TYPE_FL] &&
-        UNC_VF_VALID == flowlist_val2->valid[UPLL_IDX_IP_TYPE_FL]) {
-      if (flowlist_val1->ip_type == flowlist_val2->ip_type) {
-        flowlist_val1->valid[UPLL_IDX_IP_TYPE_FL] = UNC_VF_INVALID;
-      }
+  for ( unsigned int loop = 0; loop < sizeof(flowlist_val1->valid);
+       ++loop ) {
+    if (UNC_VF_INVALID == flowlist_val1->valid[loop] &&
+        UNC_VF_VALID == flowlist_val2->valid[loop])
+      flowlist_val1->valid[loop] = UNC_VF_VALID_NO_VALUE;
+  }
+  // }
+  if (UNC_VF_VALID == flowlist_val1->valid[UPLL_IDX_IP_TYPE_FL] &&
+      UNC_VF_VALID == flowlist_val2->valid[UPLL_IDX_IP_TYPE_FL]) {
+    if (flowlist_val1->ip_type == flowlist_val2->ip_type) {
+      flowlist_val1->valid[UPLL_IDX_IP_TYPE_FL] = UNC_VF_INVALID;
     }
-   for (unsigned int loop = 0;
-      loop < sizeof(flowlist_val1->valid) / sizeof(uint8_t); ++loop) {
+  }
+  for (unsigned int loop = 0;
+       loop < sizeof(flowlist_val1->valid) / sizeof(uint8_t); ++loop) {
     if ((UNC_VF_VALID == (uint8_t) flowlist_val1->valid[loop]) ||
-       (UNC_VF_VALID_NO_VALUE == (uint8_t) flowlist_val1->valid[loop]))
-        invalid_attr = false;
+        (UNC_VF_VALID_NO_VALUE == (uint8_t) flowlist_val1->valid[loop]))
+      invalid_attr = false;
   }
   return invalid_attr;
 }
 
 upll_rc_t FlowListMoMgr::UpdateMainTbl(ConfigKeyVal *key_fl,
-      unc_keytype_operation_t op, uint32_t driver_result,
-      ConfigKeyVal *nreq, DalDmlIntf *dmi) {
+                                       unc_keytype_operation_t op,
+                                       uint32_t driver_result,
+                                       ConfigKeyVal *nreq,
+                                       DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   ConfigKeyVal *ck_fl = NULL;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
@@ -2349,6 +2431,7 @@ upll_rc_t FlowListMoMgr::UpdateMainTbl(ConfigKeyVal *key_fl,
       val_fl = reinterpret_cast<val_flowlist_t *>(GetVal(ck_fl));
       if (!val_fl) {
         UPLL_LOG_DEBUG("invalid val");
+        DELETE_IF_NOT_NULL(ck_fl);
         return UPLL_RC_ERR_GENERIC;
       }
       val_fl->cs_row_status = UNC_CS_APPLIED;
@@ -2362,7 +2445,7 @@ upll_rc_t FlowListMoMgr::UpdateMainTbl(ConfigKeyVal *key_fl,
       }
       break;
     default:
-          UPLL_LOG_DEBUG("Inalid operation");
+      UPLL_LOG_DEBUG("Inalid operation");
       return UPLL_RC_ERR_GENERIC;
   }
 
index 764018a62fd412edc7313f8e5c4c000ad4d90e9b..3deb29d225e56b3c30d7e8ec8d4504aaf97486b2 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -19,571 +19,578 @@ namespace upll {
 namespace kt_momgr {
 
 class FlowListMoMgr : public MoMgrImpl {
-  private:
-    static unc_key_type_t flowlist_child[];
-    static BindInfo flowlist_bind_info[];
-    static BindInfo flowlist_rename_bind_info[];
-    static BindInfo flowlist_controller_bind_info[];
-
-    /**
-     * Member Variable for PolicingProfileBindInfo.
-     */
-    static BindInfo rename_flowlist_main_tbl[];
-
-    /**
-     * Member Variable for PolicingProfileBindInfo.
-     */
-    static BindInfo rename_flowlist_ctrlr_tbl[];
-
-    /**
-     * Member Variable for PolicingProfileBindInfo.
-     */
-    static BindInfo rename_flowlist_rename_tbl[];
-
-    uint32_t cur_instance_count;
-
-    /**
-     * @Brief Validates the syntax of the specified key and value structure
-     *        for KT_FLOWLIST keytype
-     *
-     * @param[in] req  Pointer to IpcResResHeader
-     * @param[in] key  Pointer to the ConfigKeyVal Structure
-     *
-     * @retval UPLL_RC_SUCCESS               Successful.
-     * @retval UPLL_RC_ERR_CFG_SYNTAX        Syntax error.
-     * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE  key_flowlist is not available.
-     * @retval UPLL_RC_ERR_GENERIC           Generic failure.
-     * @retval UPLL_RC_ERR_INVALID_OPTION1   option1 is not valid.
-     * @retval UPLL_RC_ERR_INVALID_OPTION2   option2 is not valid.
-     */
-     upll_rc_t ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *key);
-
-     upll_rc_t ValidateFlowListKey(ConfigKeyVal *key,
-                                   unc_keytype_operation_t op);
-
-    /**
-     *  @Brief Validates the syntax for KT_FLOWLIST Rename value structure.
-     *
-     *   @param[in] val_rename_flowlist KT_FLOWLIST rename value structure.
-     *
-     *    @retval UPLL_RC_SUCCESS        validation succeeded.
-     *    @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
-     */
-     upll_rc_t ValidateFlowListValRename(ConfigKeyVal *key,
-                                         uint32_t operation,
-                                         uint32_t datatype);
-
-    /**
-     *  @Brief Validates the syntax for KT_FLOWLIST keytype value structure.
-     *
-     *   @param[in] val_flowlist KT_FLOWLIST value structure.
-     *   @param[in] operation    Describes operation code
-     *
-     *    @retval UPLL_RC_SUCCESS        validation succeeded.
-     *    @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
-     */
-     upll_rc_t ValidateFlowListVal(ConfigKeyVal *key,
-                                   uint32_t operation,
-                                   uint32_t datatype);
-
-    /**
-     * @brief     Methods Used for  Validating Attribute.
-     *
-     * @param[in]  kval     The pointer to the ConfigKeyVal class
-     *
-     * @param[in]  dmi      Pointer to the Database Interface.
-     *
-     * @retval  UPLL_RC_SUCCESS      Validation succeeded.
-     * @retval  UPLL_RC_ERR_GENERIC  Validation failure.
-     */
-     upll_rc_t ValidateAttribute(ConfigKeyVal *kval,
-                                 DalDmlIntf *dmi,
-                                 IpcReqRespHeader *req = NULL);
-
-     /**
-     * @Brief Checks if the specified key type(KT_FLOWLIST) and
-     *        associated attributes are supported on the given controller,
-     *        based on the valid flag
-     *
-     * @param[in] IpcReqRespHeader  contains first 8 fields of input request structure
-     * @param[in] ConfigKeyVal      contains key and value structure.
-     * @param[in] ctrlr_name        controller_name
-     *
-     * @retval  UPLL_RC_SUCCESS             Validation succeeded.
-     * @retval  UPLL_RC_ERR_GENERIC         Validation failure.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION1 Option1 is not valid.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION2 Option2 is not valid.
-     */
-     upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                                   const char* ctrlr_name = NULL);
-
-    /**
-     * @Brief Checks if the specified key type and
-     *        associated attributes are supported on the given controller,
-     *        based on the valid flag.
-     *
-     * @param[in] val_flowlist  KT_FLOWLIST value structure.
-     * @param[in] attrs         pointer to controller attribute
-     *
-     * @retval UPLL_RC_SUCCESS                    validation succeeded.
-     * @retval UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR Attribute NOT_SUPPORTED.
-     * @retval UPLL_RC_ERR_GENERIC                Generic failure.
-     */
-     upll_rc_t ValFlowlistAttributeSupportCheck(val_flowlist_t *val_flowlist,
-       const uint8_t* attrs);
-
-    upll_rc_t UpdateMainTbl(ConfigKeyVal *key_fl,
-                            unc_keytype_operation_t op,
-                            uint32_t driver_result,
-                            ConfigKeyVal *nreq,
-                            DalDmlIntf *dmi);
-
-  public:
-    /**
-     * @brief constructor
-     */
-    FlowListMoMgr();
-
-   /**
-    * @brief Destructor
-    **/
-    ~FlowListMoMgr() {
-      for (int i = 0; i < ntable; i++) {
-        if (table[i]) {
-          delete table[i];
-        }
+ private:
+  static unc_key_type_t flowlist_child[];
+  static BindInfo flowlist_bind_info[];
+  static BindInfo flowlist_rename_bind_info[];
+  static BindInfo flowlist_controller_bind_info[];
+
+  /**
+   * Member Variable for PolicingProfileBindInfo.
+   */
+  static BindInfo rename_flowlist_main_tbl[];
+
+  /**
+   * Member Variable for PolicingProfileBindInfo.
+   */
+  static BindInfo rename_flowlist_ctrlr_tbl[];
+
+  /**
+   * Member Variable for PolicingProfileBindInfo.
+   */
+  static BindInfo rename_flowlist_rename_tbl[];
+
+  /**
+   * @Brief Validates the syntax of the specified key and value structure
+   *        for KT_FLOWLIST keytype
+   *
+   * @param[in] req  Pointer to IpcResResHeader
+   * @param[in] key  Pointer to the ConfigKeyVal Structure
+   *
+   * @retval UPLL_RC_SUCCESS               Successful.
+   * @retval UPLL_RC_ERR_CFG_SYNTAX        Syntax error.
+   * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE  key_flowlist is not available.
+   * @retval UPLL_RC_ERR_GENERIC           Generic failure.
+   * @retval UPLL_RC_ERR_INVALID_OPTION1   option1 is not valid.
+   * @retval UPLL_RC_ERR_INVALID_OPTION2   option2 is not valid.
+   */
+  upll_rc_t ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *key);
+
+  upll_rc_t ValidateFlowListKey(ConfigKeyVal *key,
+                                unc_keytype_operation_t op);
+
+  /**
+   *  @Brief Validates the syntax for KT_FLOWLIST Rename value structure.
+   *
+   *   @param[in] val_rename_flowlist KT_FLOWLIST rename value structure.
+   *
+   *    @retval UPLL_RC_SUCCESS        validation succeeded.
+   *    @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
+   */
+  upll_rc_t ValidateFlowListValRename(ConfigKeyVal *key,
+                                      uint32_t operation,
+                                      uint32_t datatype);
+
+  /**
+   *  @Brief Validates the syntax for KT_FLOWLIST keytype value structure.
+   *
+   *   @param[in] val_flowlist KT_FLOWLIST value structure.
+   *   @param[in] operation    Describes operation code
+   *
+   *    @retval UPLL_RC_SUCCESS        validation succeeded.
+   *    @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
+   */
+  upll_rc_t ValidateFlowListVal(ConfigKeyVal *key,
+                                uint32_t operation,
+                                uint32_t datatype);
+
+  /**
+   * @brief     Methods Used for  Validating Attribute.
+   *
+   * @param[in]  kval     The pointer to the ConfigKeyVal class
+   *
+   * @param[in]  dmi      Pointer to the Database Interface.
+   *
+   * @retval  UPLL_RC_SUCCESS      Validation succeeded.
+   * @retval  UPLL_RC_ERR_GENERIC  Validation failure.
+   */
+  upll_rc_t ValidateAttribute(ConfigKeyVal *kval,
+                              DalDmlIntf *dmi,
+                              IpcReqRespHeader *req = NULL);
+
+  /**
+   * @Brief Checks if the specified key type(KT_FLOWLIST) and
+   *        associated attributes are supported on the given controller,
+   *        based on the valid flag
+   *
+   * @param[in] IpcReqRespHeader  contains first 8 fields of input request structure
+   * @param[in] ConfigKeyVal      contains key and value structure.
+   * @param[in] ctrlr_name        controller_name
+   *
+   * @retval  UPLL_RC_SUCCESS             Validation succeeded.
+   * @retval  UPLL_RC_ERR_GENERIC         Validation failure.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION1 Option1 is not valid.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION2 Option2 is not valid.
+   */
+  upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *ikey,
+                               const char* ctrlr_name = NULL);
+
+  /**
+   * @Brief Checks if the specified key type and
+   *        associated attributes are supported on the given controller,
+   *        based on the valid flag.
+   *
+   * @param[in] val_flowlist  KT_FLOWLIST value structure.
+   * @param[in] attrs         pointer to controller attribute
+   *
+   * @retval UPLL_RC_SUCCESS                    validation succeeded.
+   * @retval UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR Attribute NOT_SUPPORTED.
+   * @retval UPLL_RC_ERR_GENERIC                Generic failure.
+   */
+  upll_rc_t ValFlowlistAttributeSupportCheck(val_flowlist_t *val_flowlist,
+                                             const uint8_t* attrs);
+
+  upll_rc_t UpdateMainTbl(ConfigKeyVal *key_fl,
+                          unc_keytype_operation_t op,
+                          uint32_t driver_result,
+                          ConfigKeyVal *nreq,
+                          DalDmlIntf *dmi);
+
+ public:
+  /**
+   * @brief constructor
+   */
+  FlowListMoMgr();
+
+  /**
+   * @brief Destructor
+   **/
+  ~FlowListMoMgr() {
+    for (int i = 0; i < ntable; i++) {
+      if (table[i]) {
+        delete table[i];
       }
-      delete[] table;
     }
+    delete[] table;
+  }
+
+  /**
+   * @Brief Compares two flowlist key
+   *
+   * @param[in] key1  pointer to the configkeyval structure containing the
+   *                  key which needs to compare
+   * @param[in] key2  pointer to the configkeyval structure containing the
+   *                  key which needs to compare
+   *
+   * @return  Returns true if both the keys are same
+   * */
+  bool CompareKey(void *key1, void *key2);
+
+  /* @brief         Copies the new flowlist name to the newly created key
+   *                and assign this key to the output ConfigKeyVal structure
+   *
+   * @param[in] ikey   Pointer to the ConfigKeyval containing the Key and
+   *                   value structure
+   * @param[in] dmi    Pointer to the DalDmlIntf(DB Interface)
+   * @param[in] ctrlr  controller name
+   *
+   * @retval  UPLL_RC_SUCCECSS     Successful Completion
+   * @retval  UPLL_RC_ERR_GENERIC  For failue case GENERIC ERROR
+   */
+  upll_rc_t SwapKeyVal(ConfigKeyVal *ikey, ConfigKeyVal *&okey,
+                       DalDmlIntf *dmi, uint8_t *ctrlr, bool &no_rename);
 
-   /**
-    * @Brief Compares two flowlist key
-    *
-    * @param[in] key1  pointer to the configkeyval structure containing the
-    *                  key which needs to compare
-    * @param[in] key2  pointer to the configkeyval structure containing the
-    *                  key which needs to compare
-    *
-    * @return  Returns true if both the keys are same
-    * */
-    bool CompareKey(void *key1, void *key2);
-
-   /* @brief         Copies the new flowlist name to the newly created key
-    *                and assign this key to the output ConfigKeyVal structure
-    *
-    * @param[in] ikey   Pointer to the ConfigKeyval containing the Key and
-    *                   value structure
-    * @param[in] dmi    Pointer to the DalDmlIntf(DB Interface)
-    * @param[in] ctrlr  controller name
-    *
-    * @retval  UPLL_RC_SUCCECSS     Successful Completion
-    * @retval  UPLL_RC_ERR_GENERIC  For failue case GENERIC ERROR
-    */
-    upll_rc_t SwapKeyVal(ConfigKeyVal *ikey, ConfigKeyVal *&okey,
-                         DalDmlIntf *dmi, uint8_t *ctrlr, bool &no_rename);
-
-    upll_rc_t UpdateConfigStatus(ConfigKeyVal *flowlist_key,
-                                 unc_keytype_operation_t op,
-                                 uint32_t driver_result, ConfigKeyVal *nreq,
-                                 DalDmlIntf *dmi,
-                                 ConfigKeyVal *ctrlr_key);
-    /**
-     * @brief  Update config status for commit result and vote result.
-     *
-     * @param[in,out]  ckv_running  ConfigKeyVal instance.
-     * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
-     * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
-     *
-     * @retval  UPLL_RC_SUCCECSS     Successful Completion
-     * @retval  UPLL_RC_ERR_GENERIC  For failue case GENERIC ERROR
-     *
-     ***/
-
-     upll_rc_t UpdateAuditConfigStatus(
-                           unc_keytype_configstatus_t cs_status,
-                           uuc::UpdateCtrlrPhase phase,
-                           ConfigKeyVal *&ckv_running);
-
-    /* @brief            Retrieve the NewConfigKeyVal based on the input  parent
-     *                   ConfigKey.
-     *                   If parent configkey is not available then create new
-     *                    configkeyval and return that keyval.
-     *
-     * @param[out] okey  Out Pointer to the configkeyval
-     * @param[in]  parent_key Input configkeyval pointer
-     *
-     * @retval  UPLL_RC_SUCCECSS     Successful Completion
-     * @retval  UPLL_RC_ERR_GENERIC  On Failure
-     **/
-    upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *parent_key);
-
-    /* @brief        Checkes whether the key exists in DB
-     *
-     * @param[in]  ikey     Pointer to the ConfigKeyval containing the Key and Value
-     *                      value structure of Import Configuration
-     * @param[in]  dt_type  Given UNC Datatype  at which reference needs to check
-     * @param[in]  dmi      Pointer to the DalDmlIntf(DB Interface)
-     *
-     * @retval  UPLL_RC_SUCCECSS     Successful Completion
-     * @retval  UPLL_RC_ERR_GENERIC  For failue case GENERIC ERROR
-     **/
-    upll_rc_t IsReferenced(ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
-                           DalDmlIntf *dmi);
-
-    /* @brief  Read the configuration from DB based on the operation code
-    *
-    *  @param[in]     req   Pointer to IpcResResHeader
-    *  @param[in,out] ikey  Pointer to the ConfigKeyVal Structure
-    *  @param[in]     dmi   Pointer to the DalDmlIntf(DB Interface)
-    *
-    *  @retval  UPLL_RC_SUCCESS                    Completed successfully.
-    *  @retval  UPLL_RC_ERR_GENERIC                Generic failure.
-    *  @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
-    *  @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
-    *  @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist
-    **/
-    upll_rc_t ReadMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                     DalDmlIntf *dmi);
+  upll_rc_t UpdateConfigStatus(ConfigKeyVal *flowlist_key,
+                               unc_keytype_operation_t op,
+                               uint32_t driver_result, ConfigKeyVal *nreq,
+                               DalDmlIntf *dmi,
+                               ConfigKeyVal *ctrlr_key);
+  /**
+   * @brief  Update config status for commit result and vote result.
+   *
+   * @param[in,out]  ckv_running  ConfigKeyVal instance.
+   * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
+   * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
+   * @param[in]      dmi          Pointer to the DalDmlIntf(DB Interface)
+   *
+   * @retval  UPLL_RC_SUCCECSS     Successful Completion
+   * @retval  UPLL_RC_ERR_GENERIC  For failue case GENERIC ERROR
+   *
+   ***/
+
+  upll_rc_t UpdateAuditConfigStatus(
+      unc_keytype_configstatus_t cs_status,
+      uuc::UpdateCtrlrPhase phase,
+      ConfigKeyVal *&ckv_running,
+      DalDmlIntf *dmi);
+
+  /* @brief            Retrieve the NewConfigKeyVal based on the input  parent
+   *                   ConfigKey.
+   *                   If parent configkey is not available then create new
+   *                    configkeyval and return that keyval.
+   *
+   * @param[out] okey  Out Pointer to the configkeyval
+   * @param[in]  parent_key Input configkeyval pointer
+   *
+   * @retval  UPLL_RC_SUCCECSS     Successful Completion
+   * @retval  UPLL_RC_ERR_GENERIC  On Failure
+   **/
+  upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *parent_key);
+
+  /* @brief        Checkes whether the key exists in DB
+   *
+   * @param[in]  ikey     Pointer to the ConfigKeyval containing the Key and Value
+   *                      value structure of Import Configuration
+   * @param[in]  dt_type  Given UNC Datatype  at which reference needs to check
+   * @param[in]  dmi      Pointer to the DalDmlIntf(DB Interface)
+   *
+   * @retval  UPLL_RC_SUCCECSS     Successful Completion
+   * @retval  UPLL_RC_ERR_GENERIC  For failue case GENERIC ERROR
+   **/
+  upll_rc_t IsReferenced(ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
+                         DalDmlIntf *dmi);
 
-    /* @brief  Validates the Import configuration with the Running Configuration
-     *         during Import Operations
-     *
-     * @param[in]  keytype    UNC Keytype
-     * @param[in]  ctrl_id    Controller Name
-     * @param[in]  configkey  Pointer to the ConfigKeyval containing the Key
-     *                        and Value structure of Import Configuration
-     * @param[in]  dmi        Pointer to the DalDmlIntf(DB Interface)
-     *
-     * @retval UPLL_RC_SUCCECSS                     Successful Completion
-     * @retval UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT  Read Operation is
-     *                                              not allowed for the given
-     *                                              datatype
-     * @retval UPLL_RC_ERR_MERGE_CONFLICT           For failue case
-     *                                              (if configuration already
-     *                                              exists in RunningDB)
-     **/
-    upll_rc_t MergeValidate(unc_key_type_t keytype, const char *ctrlr_id,
-                            ConfigKeyVal *conflict_ckv, DalDmlIntf *dmi);
-
-   /* @brief      Read the configuration from DB based on the operation code
-    *
-    * @param[in]     req    Pointer to IpcResResHeader
-    * @param[in,out] ikey   Pointer to the ConfigKeyVal Structure
-    * @param[in]     begin  boolean variable to decide the sibling operation
-    * @param[in]     dmi    Pointer to the DalDmlIntf(DB Interface )
-
-    * @retval  UPLL_RC_SUCCESS                    Completed successfully.
-    * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
-    * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
-    * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
-    * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist
-    **/
-    upll_rc_t ReadSiblingMo(IpcReqRespHeader *req, ConfigKeyVal *key,
-                            bool begin, DalDmlIntf *dmi);
-
-   /** @brief Performs the update operation
-    *         This operation is not allowed for FlowListMomgr
-    *
-    *  @retval UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT
-    **/
-    upll_rc_t UpdateMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                       DalDmlIntf *dmi);
+  /* @brief  Read the configuration from DB based on the operation code
+   *
+   *  @param[in]     req   Pointer to IpcResResHeader
+   *  @param[in,out] ikey  Pointer to the ConfigKeyVal Structure
+   *  @param[in]     dmi   Pointer to the DalDmlIntf(DB Interface)
+   *
+   *  @retval  UPLL_RC_SUCCESS                    Completed successfully.
+   *  @retval  UPLL_RC_ERR_GENERIC                Generic failure.
+   *  @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
+   *  @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
+   *  @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist
+   **/
+  upll_rc_t ReadMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
+                   DalDmlIntf *dmi);
+
+  /* @brief  Validates the Import configuration with the Running Configuration
+   *         during Import Operations
+   *
+   * @param[in]  keytype    UNC Keytype
+   * @param[in]  ctrl_id    Controller Name
+   * @param[in]  configkey  Pointer to the ConfigKeyval containing the Key
+   *                        and Value structure of Import Configuration
+   * @param[in]  dmi        Pointer to the DalDmlIntf(DB Interface)
+   *
+   * @retval UPLL_RC_SUCCECSS                     Successful Completion
+   * @retval UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT  Read Operation is
+   *                                              not allowed for the given
+   *                                              datatype
+   * @retval UPLL_RC_ERR_MERGE_CONFLICT           For failue case
+   *                                              (if configuration already
+   *                                              exists in RunningDB)
+   **/
+  upll_rc_t MergeValidate(unc_key_type_t keytype, const char *ctrlr_id,
+                          ConfigKeyVal *conflict_ckv, DalDmlIntf *dmi);
+
+  /* @brief      Read the configuration from DB based on the operation code
+   *
+   * @param[in]     req    Pointer to IpcResResHeader
+   * @param[in,out] ikey   Pointer to the ConfigKeyVal Structure
+   * @param[in]     begin  boolean variable to decide the sibling operation
+   * @param[in]     dmi    Pointer to the DalDmlIntf(DB Interface )
+
+   * @retval  UPLL_RC_SUCCESS                    Completed successfully.
+   * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
+   * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
+   * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
+   * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist
+   **/
+  upll_rc_t ReadSiblingMo(IpcReqRespHeader *req, ConfigKeyVal *key,
+                          bool begin, DalDmlIntf *dmi);
+
+  /** @brief Performs the update operation
+   *         This operation is not allowed for FlowListMomgr
+   *
+   *  @retval UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT
+   **/
+  upll_rc_t UpdateMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
+                     DalDmlIntf *dmi);
 
 
-   /**
-    * @brief     This method is used for copying configuration from Candidate
-    *            to Running DB during transaction operation.
-    *
-    * @param[in]  keytype               Defines the keytype for which operation
-    *                                   has to be carried out.
-    * @param[in]  ctrlr_commit_status   List describes Commit Control Status
-    *                                   Information.
-    * @param[in]  dmi                   Pointer to DalDmlIntf Class.
-    *
-    * @retval  UPLL_RC_SUCCESS        successful completion
-    * @retval  UPLL_RC_ERR_DB_ACCESS  DB Read/Write error.
-    * @retval  UPLL_RC_ERR_GENERIC    For generic failure
-    **/
-    upll_rc_t TxCopyCandidateToRunning(
-        unc_key_type_t keytype, CtrlrCommitStatusList *ctrlr_commit_status,
-        DalDmlIntf *dmi);
-
-   /**
-    *  @brief  Method to Update Controller with created, deleted and updated records
-    *
-    *  @param[in]   keytype             Defines the keytype for which operation has
-    *                                   to be carried out.
-    *  @param[in]   session_id          Session id to send req to driver
-    *  @param[in]   config_id           Config id to send req to driver
-    *  @param[in]   phase               List describes Commit Control Status
-    *                                    Information.
-    *  @param[out]  affected_ctrlr_set  Set of affected controllers.
-    *  @param[in]   dmi                 Pointer to DalDmlIntf Class.
-    *
-    *  @retval  UPLL_RC_SUCCESS              Successfull completion.
-    *  @retval  UPLL_RC_ERR_GENERIC          Failure
-    *  retval  UPLL_RC_ERR_NO_SUCH_INSTANCE  No record found in DB
-    *  @retval  UPLL_RC_ERR_DB_ACCESS        DB access error
-    **/
-    upll_rc_t TxUpdateController(unc_key_type_t keytype,
-        uint32_t session_id, uint32_t config_id,
-        uuc::UpdateCtrlrPhase phase,
-        set<string> *affected_ctrlr_set, DalDmlIntf *dmi,
-        ConfigKeyVal **err_ckv);
-
-   /**
-    *  @brief  Method to send req to driver during Transaction Update Operation
-    *
-    *  @param[in]  ck_main   Pointer to ConfigKeyVal
-    *  @param[in]  ipc_req   Pointer to ipc_request structure.
-    *  @param[in]  ipc_resp  Pointer to ipc_response structure.
-    *  @param[in]  op        Operation to be carried out
-    *  @param[in]  dmi       Pointer to DalDmlIntf Class.
-    *  @param[in]  ctrlr_id  Pointer to ctrlr_id
-    *
-    *  @retval  UPLL_RC_SUCCESS               Successfull completion.
-    *  @retval  UPLL_RC_ERR_GENERIC           Failure
-    *  @retval  UPLL_RC_ERR_DB_ACCESS         DB access error
-    **/
-    upll_rc_t TxUpdateProcess(ConfigKeyVal *ck_main,
-        IpcResponse *ipc_resp, unc_keytype_operation_t op, DalDmlIntf *dmi,
-        controller_domain *ctrlr_dom);
-
-
-    /** @brief  Allocate the memory for the value structure depending upon
-     *          the tbl ARG
-     *
-     *  @param[in,out]  ck_val   pointer to configval structure
-     *  @param[in]      dt_type  UPLL Datatype
-     *  @param[in]      tbl      enum for Tabletypes
-     *                           Possible values could be
-     *                           MAINTBL
-     *                           RENAMETBL
-     *                           CTRLRTBL
-     *
-     *  @retval  UPLL_RC_SUCCESS     successful completion
-     *  @retval  UPLL_RC_ERR_GENERIC For failure
-     * * */
-    upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
-                       MoMgrTables tbl = MAINTBL);
-
-    /**
-     * @brief       Fetch the valid array value and assign it to the valid flag
-     *              values to the outparam based on the table type and the
-     *              datatype.
-     *
-     * @param[in]   val    pointer to the value structure.
-     * @param[out]  valid  reference to the enum containing the possible
-     *                     values of Valid flag.
-     * @param[out]  indx   reference for the DbFlag.
-     * @param[in]   tbl    Containing the values for Tabletype
-     *
-     * @retval  UPLL_RC_SUCCESS      Successful completion.
-     * @retval  UPLL_RC_ERR_GENERIC  Failure occurred.
-     **/
-    upll_rc_t GetValid(void*val, uint64_t indx, uint8_t *&valid,
-                       upll_keytype_datatype_t dt_type, MoMgrTables tbl =
-                           MAINTBL);
-
-    /* @brief  Creates a duplicate configkeyval structure from the existing configkey
-     *         val structure
-     * @param[out]  okey  Pointer to the ConfigKeyval containing the Key and Value
-     *                    value structure
-     * @param[in]   req   Pointer to the ConfigKeyval containing the Key and Value
-     *                    value structure
-     * @param[in]   tbl   Enumerator variable contaiing the Table type
-     *
-     * @retval  UPLL_RC_SUCCECSS     Successful Completion
-     * @retval  UPLL_RC_ERR_GENERIC  For failue case GENERIC ERROR
-     * **/
-    upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
-                              MoMgrTables tbl = MAINTBL);
-
-    /* @brief     Retrieve the controller key based on the UNC KEY which
-     *            got renamed.
-     *
-     * @param[in,out] ikey       Pointer to configkeyval structure of inputkey
-     * @param[in]     dt_type    upll datatype
-     * @param[in]     dmi        pointer to the DalDmlIntf Interface
-     * @param[in]     ctrl_name  Controller Name
-     *
-     * @retval  UPLL_RC_SUCCECSS     Successful Completion
-     * @retval  UPLL_RC_ERR_GENERIC  On Failure
-     **/
-    upll_rc_t GetRenamedControllerKey(ConfigKeyVal *ikey,
-                                      upll_keytype_datatype_t dt_type,
-                                      DalDmlIntf *dmi,
-                                      controller_domain *ctrlr_dom = NULL);
-
-    /* @brief  Retrieve the UNC key which got renamed  based on the input
-     *         ConfigKeyval in which PFC key is available.
-     *
-     * @param[in/out] ctrl_key  Pointer to configkeyval structure containing
-     *                          controller key
-     * @param[in]     dt_type   upll datatype
-     * @param[in]     dmi       pointer to the DalDmlIntf Interface
-     * @param[in]     ctrl_id   Controller Name
-     *
-     * @retval  UPLL_RC_SUCCECSS Successful Completion
-     *          UPLL_RC_ERR_GENERIC On Failure(if unable to generate output key)
-     **/
-    upll_rc_t GetRenamedUncKey(ConfigKeyVal *ctrlr_key,
-                               upll_keytype_datatype_t dt_type,
-                               DalDmlIntf *dmi,
-                               uint8_t *ctrlr_id);
-
-    /* @brief  Read the configuration from DB based on the operation code
-     *
-     * @param[in]      req    Pointer to IpcResResHeader
-     * @param[in,out]  ikey   Pointer to the ConfigKeyVal Structure
-     * @param[in]      dmi    Pointer to the DalDmlIntf(DB Interface)
-     * @param[in]      op     Upll Operation code
-     *
-     * @retval  UPLL_RC_SUCCESS                    Completed successfully.
-     * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
-     * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
-     * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
-     * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist
-     *
-     **/
-    upll_rc_t ReadRecord(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                         DalDmlIntf *dmi);
-    /**
-     * @brief  Method to old policingprofile name from rename struct to
-     *         output ConfigKeyVal
-     *
-     * @param[in]   ikey         Pointer to input ConfigKeyVal
-     * @param[out]  okey         Pointer to output ConfigKeyVal.
-     * @param[in]   rename_info  Pointer to ConfigKeyVal with rename struct
-     *                           as key.
-     * @param[in]   dmi          Pointer to DalDmlIntf Class.
-     * @param[in]   ctrlr_id     Pointer to ctrlr_id
-     * @param[in]   renamed      bool variable to check whether its renamed or
-     *                           not
-     *
-     * @retval  UPLL_RC_SUCCESS               Successfull completion.
-     * @retval  UPLL_RC_ERR_GENERIC           Failure
-     */
-    upll_rc_t GetRenameInfo(ConfigKeyVal *ikey,
-        ConfigKeyVal *okey, ConfigKeyVal *&rename_info, DalDmlIntf *dmi,
-        const char *ctrlr_id, bool &renamed);
-
-    /**
-     * @brief  Method to Create ConfigKeyVal with rename struct as key
-     *
-     * @param[in]   ikey  Pointer to input ConfigKeyVal
-     * @param[out]  okey  Pointer to output ConfigKeyVal.
-     *
-     * @retval  UPLL_RC_SUCCESS               Successfull completion.
-     * @retval  UPLL_RC_ERR_GENERIC           Failure
-     */
-    upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
-
-    /**
-     * @brief  Method to get the bind struct depending on table
-     *
-     * @param[in]   key_type  Keytype for bind attr selection
-     * @param[out]  binfo     Pointer to bindinfo structure
-     * @param[out]  nattr     Number of attributes to bind
-     * @param[in]   tbl       Table for which bind attr is to be selected
-     *
-     * @retval  UPLL_RC_SUCCESS               Successfull completion.
-     * @retval  UPLL_RC_ERR_GENERIC           Failure
-     */
-    bool GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo,
-                              int &nattr, MoMgrTables tbl);
-   /** @brief Method to Update the Controller Table entry
-     *
-     * @param[in] ikey     Pointer to ConkeyValClass
-     * @param[in] op       Operation code
-     * @param[in] dmi      Pointer to DB Interface
-     * @param[in] ctrl_id  Controller Name
-     *
-     * @retval  UPLL_RC_SUCCESS      Successfull completion.
-     * @retval  UPLL_RC_ERR_GENERIC  Failure
-     *
+  /**
+   * @brief     This method is used for copying configuration from Candidate
+   *            to Running DB during transaction operation.
+   *
+   * @param[in]  keytype               Defines the keytype for which operation
+   *                                   has to be carried out.
+   * @param[in]  ctrlr_commit_status   List describes Commit Control Status
+   *                                   Information.
+   * @param[in]  dmi                   Pointer to DalDmlIntf Class.
+   *
+   * @retval  UPLL_RC_SUCCESS        successful completion
+   * @retval  UPLL_RC_ERR_DB_ACCESS  DB Read/Write error.
+   * @retval  UPLL_RC_ERR_GENERIC    For generic failure
+   **/
+  upll_rc_t TxCopyCandidateToRunning(
+      unc_key_type_t keytype, CtrlrCommitStatusList *ctrlr_commit_status,
+      DalDmlIntf *dmi);
+
+  /**
+   *  @brief  Method to Update Controller with created, deleted and updated records
+   *
+   *  @param[in]   keytype             Defines the keytype for which operation has
+   *                                   to be carried out.
+   *  @param[in]   session_id          Session id to send req to driver
+   *  @param[in]   config_id           Config id to send req to driver
+   *  @param[in]   phase               List describes Commit Control Status
+   *                                    Information.
+   *  @param[out]  affected_ctrlr_set  Set of affected controllers.
+   *  @param[in]   dmi                 Pointer to DalDmlIntf Class.
+   *
+   *  @retval  UPLL_RC_SUCCESS              Successfull completion.
+   *  @retval  UPLL_RC_ERR_GENERIC          Failure
+   *  retval  UPLL_RC_ERR_NO_SUCH_INSTANCE  No record found in DB
+   *  @retval  UPLL_RC_ERR_DB_ACCESS        DB access error
+   **/
+  upll_rc_t TxUpdateController(unc_key_type_t keytype,
+                               uint32_t session_id, uint32_t config_id,
+                               uuc::UpdateCtrlrPhase phase,
+                               set<string> *affected_ctrlr_set, DalDmlIntf *dmi,
+                               ConfigKeyVal **err_ckv);
+
+  /**
+   *  @brief  Method to send req to driver during Transaction Update Operation
+   *
+   *  @param[in]  ck_main   Pointer to ConfigKeyVal
+   *  @param[in]  ipc_req   Pointer to ipc_request structure.
+   *  @param[in]  ipc_resp  Pointer to ipc_response structure.
+   *  @param[in]  op        Operation to be carried out
+   *  @param[in]  dmi       Pointer to DalDmlIntf Class.
+   *  @param[in]  ctrlr_id  Pointer to ctrlr_id
+   *
+   *  @retval  UPLL_RC_SUCCESS               Successfull completion.
+   *  @retval  UPLL_RC_ERR_GENERIC           Failure
+   *  @retval  UPLL_RC_ERR_DB_ACCESS         DB access error
+   **/
+  upll_rc_t TxUpdateProcess(ConfigKeyVal *ck_main,
+                            IpcResponse *ipc_resp,
+                            unc_keytype_operation_t op,
+                            DalDmlIntf *dmi,
+                            controller_domain *ctrlr_dom,
+                            set<string> *affected_ctrlr_set,
+                            bool *driver_resp);
+
+
+  /** @brief  Allocate the memory for the value structure depending upon
+   *          the tbl ARG
+   *
+   *  @param[in,out]  ck_val   pointer to configval structure
+   *  @param[in]      dt_type  UPLL Datatype
+   *  @param[in]      tbl      enum for Tabletypes
+   *                           Possible values could be
+   *                           MAINTBL
+   *                           RENAMETBL
+   *                           CTRLRTBL
+   *
+   *  @retval  UPLL_RC_SUCCESS     successful completion
+   *  @retval  UPLL_RC_ERR_GENERIC For failure
+   * * */
+  upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
+                     MoMgrTables tbl = MAINTBL);
+
+  /**
+   * @brief       Fetch the valid array value and assign it to the valid flag
+   *              values to the outparam based on the table type and the
+   *              datatype.
+   *
+   * @param[in]   val    pointer to the value structure.
+   * @param[out]  valid  reference to the enum containing the possible
+   *                     values of Valid flag.
+   * @param[out]  indx   reference for the DbFlag.
+   * @param[in]   tbl    Containing the values for Tabletype
+   *
+   * @retval  UPLL_RC_SUCCESS      Successful completion.
+   * @retval  UPLL_RC_ERR_GENERIC  Failure occurred.
+   **/
+  upll_rc_t GetValid(void*val, uint64_t indx, uint8_t *&valid,
+                     upll_keytype_datatype_t dt_type, MoMgrTables tbl =
+                     MAINTBL);
+
+  /* @brief  Creates a duplicate configkeyval structure from the existing configkey
+   *         val structure
+   * @param[out]  okey  Pointer to the ConfigKeyval containing the Key and Value
+   *                    value structure
+   * @param[in]   req   Pointer to the ConfigKeyval containing the Key and Value
+   *                    value structure
+   * @param[in]   tbl   Enumerator variable contaiing the Table type
+   *
+   * @retval  UPLL_RC_SUCCECSS     Successful Completion
+   * @retval  UPLL_RC_ERR_GENERIC  For failue case GENERIC ERROR
+   * **/
+  upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
+                            MoMgrTables tbl = MAINTBL);
+
+  /* @brief     Retrieve the controller key based on the UNC KEY which
+   *            got renamed.
+   *
+   * @param[in,out] ikey       Pointer to configkeyval structure of inputkey
+   * @param[in]     dt_type    upll datatype
+   * @param[in]     dmi        pointer to the DalDmlIntf Interface
+   * @param[in]     ctrl_name  Controller Name
+   *
+   * @retval  UPLL_RC_SUCCECSS     Successful Completion
+   * @retval  UPLL_RC_ERR_GENERIC  On Failure
+   **/
+  upll_rc_t GetRenamedControllerKey(ConfigKeyVal *ikey,
+                                    upll_keytype_datatype_t dt_type,
+                                    DalDmlIntf *dmi,
+                                    controller_domain *ctrlr_dom = NULL);
+
+  /* @brief  Retrieve the UNC key which got renamed  based on the input
+   *         ConfigKeyval in which PFC key is available.
+   *
+   * @param[in/out] ctrl_key  Pointer to configkeyval structure containing
+   *                          controller key
+   * @param[in]     dt_type   upll datatype
+   * @param[in]     dmi       pointer to the DalDmlIntf Interface
+   * @param[in]     ctrl_id   Controller Name
+   *
+   * @retval  UPLL_RC_SUCCECSS Successful Completion
+   *          UPLL_RC_ERR_GENERIC On Failure(if unable to generate output key)
+   **/
+  upll_rc_t GetRenamedUncKey(ConfigKeyVal *ctrlr_key,
+                             upll_keytype_datatype_t dt_type,
+                             DalDmlIntf *dmi,
+                             uint8_t *ctrlr_id);
+
+  /* @brief  Read the configuration from DB based on the operation code
+   *
+   * @param[in]      req    Pointer to IpcResResHeader
+   * @param[in,out]  ikey   Pointer to the ConfigKeyVal Structure
+   * @param[in]      dmi    Pointer to the DalDmlIntf(DB Interface)
+   * @param[in]      op     Upll Operation code
+   *
+   * @retval  UPLL_RC_SUCCESS                    Completed successfully.
+   * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
+   * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
+   * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
+   * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist
+   *
+   **/
+  upll_rc_t ReadRecord(IpcReqRespHeader *req, ConfigKeyVal *ikey,
+                       DalDmlIntf *dmi);
+  /**
+   * @brief  Method to old policingprofile name from rename struct to
+   *         output ConfigKeyVal
+   *
+   * @param[in]   ikey         Pointer to input ConfigKeyVal
+   * @param[out]  okey         Pointer to output ConfigKeyVal.
+   * @param[in]   rename_info  Pointer to ConfigKeyVal with rename struct
+   *                           as key.
+   * @param[in]   dmi          Pointer to DalDmlIntf Class.
+   * @param[in]   ctrlr_id     Pointer to ctrlr_id
+   * @param[in]   renamed      bool variable to check whether its renamed or
+   *                           not
+   *
+   * @retval  UPLL_RC_SUCCESS               Successfull completion.
+   * @retval  UPLL_RC_ERR_GENERIC           Failure
+   */
+  upll_rc_t GetRenameInfo(ConfigKeyVal *ikey,
+                          ConfigKeyVal *okey,
+                          ConfigKeyVal *&rename_info,
+                          DalDmlIntf *dmi,
+                          const char *ctrlr_id,
+                          bool &renamed);
+
+  /**
+   * @brief  Method to Create ConfigKeyVal with rename struct as key
+   *
+   * @param[in]   ikey  Pointer to input ConfigKeyVal
+   * @param[out]  okey  Pointer to output ConfigKeyVal.
+   *
+   * @retval  UPLL_RC_SUCCESS               Successfull completion.
+   * @retval  UPLL_RC_ERR_GENERIC           Failure
    */
-    upll_rc_t UpdateControllerTable(ConfigKeyVal *ikey,
-                                    unc_keytype_operation_t op,
+  upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
+
+  /**
+   * @brief  Method to get the bind struct depending on table
+   *
+   * @param[in]   key_type  Keytype for bind attr selection
+   * @param[out]  binfo     Pointer to bindinfo structure
+   * @param[out]  nattr     Number of attributes to bind
+   * @param[in]   tbl       Table for which bind attr is to be selected
+   *
+   * @retval  UPLL_RC_SUCCESS               Successfull completion.
+   * @retval  UPLL_RC_ERR_GENERIC           Failure
+   */
+  bool GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo,
+                            int &nattr, MoMgrTables tbl);
+  /** @brief Method to Update the Controller Table entry
+   *
+   * @param[in] ikey     Pointer to ConkeyValClass
+   * @param[in] op       Operation code
+   * @param[in] dmi      Pointer to DB Interface
+   * @param[in] ctrl_id  Controller Name
+   *
+   * @retval  UPLL_RC_SUCCESS      Successfull completion.
+   * @retval  UPLL_RC_ERR_GENERIC  Failure
+   *
+   */
+  upll_rc_t UpdateControllerTable(ConfigKeyVal *ikey,
+                                  unc_keytype_operation_t op,
+                                  DalDmlIntf *dmi,
+                                  char* ctrl_id);
+  upll_rc_t AddFlowListToController(char *flowlist_name,
                                     DalDmlIntf *dmi,
-                                    char* ctrl_id);
-    upll_rc_t AddFlowListToController(char *flowlist_name,
-                                      DalDmlIntf *dmi,
-                                      char* ctrl_id,
-                                      upll_keytype_datatype_t dt_type,
-                                      unc_keytype_operation_t op);
-    /**
-     * @brief  Method to Set the Consolidated status
-     *
-     * @param[in]  ikey     Pointer to ConfigKeyVal
-     * @param[in]  dmi      Pointer to DalDmlIntf.
-     *
-     * @retval  UPLL_RC_SUCCESS               Successfull completion.
-     * @retval  UPLL_RC_ERR_GENERIC           Failure
-     * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE  No record found in DB
-     * @retval  UPLL_RC_ERR_DB_ACCESS         DB access error
-     **/
-    upll_rc_t SetConsolidatedStatus(ConfigKeyVal *ikey,
-                                               DalDmlIntf *dmi);
-
-    /**
-     * @brief Method To Compare the Valid Check of Attributes
-     *
-     * @param[out]  val1   Pointer to ConfigKeyVal Class which
-     *                     contains only Valid Attributes
-     * @param[in]   val2   Pointer to ConfigKeyVal Class.
-     * @param[in]   audit  If true,Audit Process
-     * @retval UPLL_RC_SUCCESS;
-     */
-     bool  CompareValidValue(void *&val1, void *val2, bool audit);
-
-    /**
-     * @brief  Method to check validity of Key
-     *
-     * @param[in]   ConfigKeyVal  input COnfigKeyVal
-     * @param[out]  index     Column Index
-     *
-     * @return  TRUE   Success
-     * @retval  FALSE  Failure
-     * */
-     bool IsValidKey(void *key, uint64_t index);
-    /**
-     * @brief  Method to get Parent ConfigKeyVal
-     *
-     * @param[in]   ConfigKeyVal  parent_key
-     * @param[out]  ConfigKeyVal  okey
-     *
-     * @retval  UPLL_RC_ERR_GENERIC           Failure
-     **/
-     upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey,
-                                  ConfigKeyVal *ikey);
-
-    upll_rc_t CreateFlowListToController(
-        char *flowlist_name, DalDmlIntf *dmi, char* ctrl_id,
-        upll_keytype_datatype_t dt_type, unc_keytype_operation_t op);
-
-    upll_rc_t DeleteFlowListToController(
-        char *flowlist_name, DalDmlIntf *dmi, char* ctrl_id,
-        upll_keytype_datatype_t dt_type, unc_keytype_operation_t op);
-
-    upll_rc_t SetValidAudit(ConfigKeyVal *&ikey);
-
-    bool FilterAttributes(void *&val1,
-                          void *val2,
-                          bool copy_to_running,
-                          unc_keytype_operation_t op);
-
-    upll_rc_t SetFlowListConsolidatedStatus(ConfigKeyVal *ikey,
-                                            uint8_t *ctrlr_id,
-                                            DalDmlIntf *dmi);
+                                    char* ctrl_id,
+                                    upll_keytype_datatype_t dt_type,
+                                    unc_keytype_operation_t op);
+  /**
+   * @brief  Method to Set the Consolidated status
+   *
+   * @param[in]  ikey     Pointer to ConfigKeyVal
+   * @param[in]  dmi      Pointer to DalDmlIntf.
+   *
+   * @retval  UPLL_RC_SUCCESS               Successfull completion.
+   * @retval  UPLL_RC_ERR_GENERIC           Failure
+   * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE  No record found in DB
+   * @retval  UPLL_RC_ERR_DB_ACCESS         DB access error
+   **/
+  upll_rc_t SetConsolidatedStatus(ConfigKeyVal *ikey,
+                                  DalDmlIntf *dmi);
+
+  /**
+   * @brief Method To Compare the Valid Check of Attributes
+   *
+   * @param[out]  val1   Pointer to ConfigKeyVal Class which
+   *                     contains only Valid Attributes
+   * @param[in]   val2   Pointer to ConfigKeyVal Class.
+   * @param[in]   audit  If true,Audit Process
+   * @retval UPLL_RC_SUCCESS;
+   */
+  bool  CompareValidValue(void *&val1, void *val2, bool audit);
+
+  /**
+   * @brief  Method to check validity of Key
+   *
+   * @param[in]   ConfigKeyVal  input COnfigKeyVal
+   * @param[out]  index     Column Index
+   *
+   * @return  TRUE   Success
+   * @retval  FALSE  Failure
+   * */
+  bool IsValidKey(void *key, uint64_t index);
+  /**
+   * @brief  Method to get Parent ConfigKeyVal
+   *
+   * @param[in]   ConfigKeyVal  parent_key
+   * @param[out]  ConfigKeyVal  okey
+   *
+   * @retval  UPLL_RC_ERR_GENERIC           Failure
+   **/
+  upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey,
+                               ConfigKeyVal *ikey);
+
+  upll_rc_t CreateFlowListToController(
+      char *flowlist_name, DalDmlIntf *dmi, char* ctrl_id,
+      upll_keytype_datatype_t dt_type, unc_keytype_operation_t op);
+
+  upll_rc_t DeleteFlowListToController(
+      char *flowlist_name, DalDmlIntf *dmi, char* ctrl_id,
+      upll_keytype_datatype_t dt_type, unc_keytype_operation_t op);
+
+  upll_rc_t SetValidAudit(ConfigKeyVal *&ikey);
+
+  bool FilterAttributes(void *&val1,
+                        void *val2,
+                        bool copy_to_running,
+                        unc_keytype_operation_t op);
+
+  upll_rc_t SetFlowListConsolidatedStatus(ConfigKeyVal *ikey,
+                                          uint8_t *ctrlr_id,
+                                          DalDmlIntf *dmi);
 };
 
 typedef struct val_flowlist_ctrl {
-    uint8_t valid[2];  // valid[1] is for refcount
-    unc_keytype_configstatus_t cs_row_status;
-    unc_keytype_configstatus_t cs_attr[1];
-    uint8_t flags;    // DBFLAGS
-    uint32_t refcount;  // DB RefCount
+  uint8_t valid[2];  // valid[1] is for refcount
+  unc_keytype_configstatus_t cs_row_status;
+  unc_keytype_configstatus_t cs_attr[1];
+  uint8_t flags;    // DBFLAGS
+  uint32_t refcount;  // DB RefCount
 } val_flowlist_ctrl_t;
 }  // namespace kt_momgr
 }  // namespace upll
diff --git a/coordinator/modules/upll/ipc_client_handler.cc b/coordinator/modules/upll/ipc_client_handler.cc
new file mode 100644 (file)
index 0000000..474fa23
--- /dev/null
@@ -0,0 +1,278 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+#include "kt_util.hh"
+#include "ipc_client_handler.hh"
+#include "ipc_util.hh"
+
+
+using unc::upll::upll_util::upll_strncpy;
+
+namespace unc {
+namespace upll {
+namespace ipc_util {
+
+bool IpcClientHandler::SendReqToDriver(const char *ctrlr_name, char *domain_id,
+                                       IpcRequest *req ) {
+  UPLL_FUNC_TRACE
+      bool ok = SendReqToServer(PFCDRIVER_CHANNEL_NAME,
+                                PFCDRIVER_SERVICE_NAME,
+                                PFCDRIVER_SVID_LOGICAL,
+                                true,
+                                ctrlr_name,
+                                domain_id,
+                                req);
+  if (ok) {
+    ipc_resp.header.result_code = IpcUtil::DriverResultCodeToKtURC(
+        req->header.operation , ipc_resp.header.result_code);
+  }
+  return ok;
+}
+
+
+
+bool IpcClientHandler::SendReqToServer(const char *channel_name,
+                                       const char *service_name,
+                                       pfc_ipcid_t service_id,
+                                       bool driver_msg,
+                                       const char *ctrlr_name, char *domain_id,
+                                       IpcRequest *req) {
+  UPLL_FUNC_TRACE
+      IpcResponse *resp = &ipc_resp;
+
+  if (channel_name == NULL || service_name == NULL ||
+      req == NULL || resp == NULL) {
+    UPLL_LOG_DEBUG("NULL argument");
+    if (resp != NULL) {
+      resp->header.result_code = UPLL_RC_ERR_GENERIC;
+      resp->return_code = 0;
+    }
+    return false;
+  }
+  if (driver_msg == true && ctrlr_name == NULL) {
+    UPLL_LOG_DEBUG("NULL controller argument");
+    if (resp != NULL) {
+      resp->header.result_code = UPLL_RC_ERR_GENERIC;
+      resp->return_code = 0;
+    }
+    return false;
+  }
+
+  if (IpcUtil::IsShuttingDown()) {
+    UPLL_LOG_WARN("Cannot send request to %s as shutdown in progress",
+                  channel_name);
+    resp->header.result_code = UPLL_RC_ERR_SHUTTING_DOWN;
+    resp->return_code = 0;
+    return false;
+  }
+
+  UPLL_LOG_TRACE("dest=%s:%s:%d, controller_name=%s domain_id=%s\n"
+                 "Request: %s\n%s",
+                 channel_name, service_name, service_id,
+                 ctrlr_name, domain_id,
+                 IpcUtil::IpcRequestToStr(req->header).c_str(),
+                 req->ckv_data->ToStrAll().c_str());
+
+  // Create an alternative IPC connection handle.
+  int err = pfc_ipcclnt_altopen(channel_name, &connid);
+  if (err != 0) {
+    UPLL_LOG_DEBUG("Failed to create IPC alternative connection to %s. Err=%d",
+                   channel_name, err);
+    resp->header.result_code = UPLL_RC_ERR_GENERIC;
+    resp->return_code = PFC_IPCRESP_FATAL;
+    return false;
+  }
+
+  cl_sess = new pfc::core::ipc::ClientSession(connid, service_name,
+                                              service_id, err);
+  if (err != 0) {
+    UPLL_LOG_DEBUG("Failed to create IPC client session %s:%s:%d. Err=%d",
+                   channel_name, service_name, service_id, err);
+    err = pfc_ipcclnt_altclose(connid);  // Close the IPC connection handle
+    if (err != 0) {
+      UPLL_LOG_DEBUG("Failed to close the IPC connection %s:%s:%d. Err=%d",
+                     channel_name, service_name, service_id, err);
+    }
+    resp->header.result_code = UPLL_RC_ERR_GENERIC;
+    resp->return_code = PFC_IPCRESP_FATAL;
+    return false;
+  }
+  if ((req->ckv_data != NULL) &&
+      (req->ckv_data->get_key_type() == UNC_KT_VTN_DATAFLOW)) {
+    pfc_timespec_t sess_timeout;
+    sess_timeout.tv_sec  = kIpcTimeoutDataflow;
+    sess_timeout.tv_nsec = 0;
+    cl_sess->setTimeout(&sess_timeout);
+    UPLL_LOG_TRACE("IPC Client Session timeout for channel %s set to %d secs",
+                   channel_name, kIpcTimeoutDataflow);
+  }
+  bool ret = IpcUtil::WriteKtRequest(cl_sess, driver_msg, ctrlr_name, domain_id,
+                                     req->header, req->ckv_data);
+  if (!ret) {
+    UPLL_LOG_DEBUG("Failed to send IPC request to %s:%s:%d",
+                   channel_name, service_name, service_id);
+    err = pfc_ipcclnt_altclose(connid);  // Close the IPC connection handle
+    if (err != 0) {
+      UPLL_LOG_DEBUG("Failed to close the IPC connection %s:%s:%d. Err=%d",
+                     channel_name, service_name, service_id, err);
+    }
+    resp->header.result_code = UPLL_RC_ERR_GENERIC;
+    resp->return_code = PFC_IPCRESP_FATAL;
+    return false;
+  }
+  pfc_ipcresp_t ipcresp;
+  err = cl_sess->invoke(ipcresp);
+  if (err != 0) {
+    resp->header.result_code = UPLL_RC_ERR_GENERIC;
+    if (err == ETIMEDOUT) {
+      UPLL_LOG_DEBUG("IPC Session to %s:%s:%d has timed out",
+                     channel_name, service_name, service_id);
+      resp->return_code = PFC_IPCRESP_FATAL;
+    } else {
+      UPLL_LOG_FATAL("Failed to send IPC request to %s:%s:%d. Err=%d",
+                     channel_name, service_name, service_id, err);
+      resp->return_code = PFC_IPCRESP_FATAL;
+    }
+    err = pfc_ipcclnt_altclose(connid);  // Close the IPC connection handle
+    if (err != 0) {
+      UPLL_LOG_DEBUG("Failed to close the IPC connection %s:%s:%d. Err=%d",
+                     channel_name, service_name, service_id, err);
+    }
+    return false;
+  }
+  if (ipcresp != 0) {
+    UPLL_LOG_DEBUG("Error at IPC server %s:%s:%d. ErrResp=%d",
+                   channel_name, service_name, service_id, ipcresp);
+    err = pfc_ipcclnt_altclose(connid);  // Close the IPC connection handle
+    if (err != 0) {
+      UPLL_LOG_DEBUG("Failed to close the IPC connection %s:%s:%d. Err=%d",
+                     channel_name, service_name, service_id, err);
+    }
+    resp->header.result_code = UPLL_RC_ERR_GENERIC;
+    resp->return_code = PFC_IPCRESP_FATAL;
+    return false;
+  }
+
+  ret = ReadKtResponse(cl_sess, service_id, driver_msg, domain_id);
+  if (!ret) {
+    UPLL_LOG_DEBUG("Failed to read IPC response from %s:%s:%d",
+                   channel_name, service_name, service_id);
+    err = pfc_ipcclnt_altclose(connid);  // Close the IPC connection handle
+    if (err != 0) {
+      UPLL_LOG_DEBUG("Failed to close the IPC connection %s:%s:%d. Err=%d",
+                     channel_name, service_name, service_id, err);
+    }
+    resp->header.result_code = UPLL_RC_ERR_GENERIC;
+    resp->return_code = PFC_IPCRESP_FATAL;
+    return false;
+  }
+  resp->return_code = 0;
+
+  UPLL_LOG_TRACE("dest=%s:%s:%d, controller_name=%s domain_id=%s\n"
+                 "Response: %s\n",
+                 channel_name, service_name, service_id,
+                 ctrlr_name, domain_id,
+                 IpcUtil::IpcResponseToStr(resp->header).c_str());
+  return true;
+}
+
+
+/* Read KT response from Server */
+/* if driver_msg is true, then the message is from driver, otherwise it is from
+ * Physical. If the driver_msg is true and non-null domain_id pointer is passed
+ * then the domain_id from the message is placed in the domain_id pointer.
+ * Caller should have sent a valid pointer for copying domain id */
+bool IpcClientHandler::ReadKtResponse(pfc::core::ipc::ClientSession *sess,
+                                      pfc_ipcid_t /* service */,
+                                      bool driver_msg, char *domain_id) {
+  UPLL_FUNC_TRACE;
+  if (sess == NULL) {
+    UPLL_LOG_DEBUG("Null argument");
+    return false;
+  }
+  IpcReqRespHeader *msg_hdr = &ipc_resp.header;
+  ConfigKeyVal **first_ckv =  &ipc_resp.ckv_data;
+  *first_ckv = NULL;
+
+  bzero(msg_hdr, sizeof(*msg_hdr));
+
+  uint32_t arg_cnt = sess->getResponseCount();
+  uint32_t mandatory_fields = (driver_msg) ?
+      unc::upll::ipc_util::kKeyTreeDriverRespMandatoryFields :
+      unc::upll::ipc_util::kKeyTreeRespMandatoryFields;
+  if (arg_cnt < mandatory_fields) {
+    UPLL_LOG_DEBUG("Not enough arguments in key tree response."
+                   " Has only %u, expected %d",
+                   arg_cnt, mandatory_fields);
+    return false;
+  }
+
+  int err;
+  uint32_t keytype;
+  uint32_t operation;
+  const char *msg_ctrlr_name;
+  const char *msg_domain_id;
+  uint32_t option1;
+  uint32_t option2;
+  uint32_t datatype;
+  uint32_t result_code;
+  arg = 0;
+  if ((0 != (err = sess->getResponse(arg++, msg_hdr->clnt_sess_id))) ||
+      (0 != (err = sess->getResponse(arg++, msg_hdr->config_id)))) {
+    UPLL_LOG_DEBUG("Failed to get header field #%u in the key tree response."
+                   " Err=%d", arg, err);
+    UPLL_LOG_TRACE("Config and Sess id is not able to get");
+    return false;
+  }
+  if (driver_msg == true) {
+    if ((0 != (err = sess->getResponse(arg++, msg_ctrlr_name))) ||
+        (0 != (err = sess->getResponse(arg++, msg_domain_id)))) {
+      UPLL_LOG_DEBUG("Failed to get header field #%u in the key tree response."
+                     " Err=%d", arg, err);
+      UPLL_LOG_TRACE("Ctrlr and domain name not able to get");
+      return false;
+    }
+    if (domain_id != NULL) {
+      upll_strncpy(domain_id, msg_domain_id, KtUtil::kCtrlrNameLenWith0);
+    }
+  }
+  if ((0 != (err = sess->getResponse(arg++, operation))) ||
+      (0 != (err = sess->getResponse(arg++, msg_hdr->rep_count))) ||
+      (0 != (err = sess->getResponse(arg++, option1))) ||
+      (0 != (err = sess->getResponse(arg++, option2))) ||
+      (0 != (err = sess->getResponse(arg++, datatype))) ||
+      (0 != (err = sess->getResponse(arg++, result_code))) ||
+      (0 != (err = sess->getResponse(arg++, keytype))) ) {
+    UPLL_LOG_DEBUG("Failed to get header field #%u in the key tree response."
+                   " Err=%d", arg, err);
+    return false;
+  }
+  arg++; /* Key struct skkipped */
+  msg_hdr->operation = (unc_keytype_operation_t)operation;
+  msg_hdr->option1 = (unc_keytype_option1_t)option1;
+  msg_hdr->option2 = (unc_keytype_option2_t)option2;
+  msg_hdr->datatype = (upll_keytype_datatype_t)datatype;
+  msg_hdr->result_code = (upll_rc_t) result_code;
+
+#if 0
+  IpctSt::IpcStructNum st_num;
+  void *ipc_st;
+  if (!IpcUtil::ReadIpcStruct(sess, arg++, &st_num, &ipc_st)) {
+    UPLL_LOG_DEBUG("Failed to get structure at %u in the key tree response",
+                   arg);
+    return false;
+  }
+  *first_ckv = new ConfigKeyVal((unc_key_type_t)keytype, st_num, ipc_st, NULL);
+#endif
+  return true;
+}
+
+}  // namespace ipc_util
+}  // namespace upll
+}  // namespace unc
diff --git a/coordinator/modules/upll/ipc_client_handler.hh b/coordinator/modules/upll/ipc_client_handler.hh
new file mode 100644 (file)
index 0000000..5a0b3fe
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+#include "ipct_st.hh"
+#include "unc/upll_svc.h"
+
+#include "unc/pfcdriver_include.h"
+#include "unc/vnpdriver_include.h"
+#include "momgr_impl.hh"
+
+using unc::upll::ipc_util::IpcResponse;
+
+namespace unc {
+namespace upll {
+namespace ipc_util {
+
+class IpcClientHandler {
+ public:
+  uint32_t arg;
+  IpcResponse ipc_resp;
+  pfc::core::ipc::ClientSession *cl_sess;
+
+  IpcClientHandler() {
+    cl_sess = NULL;
+    memset(&ipc_resp, 0, sizeof(IpcResponse));
+    arg = 0;
+    connid = 0;
+  }
+  ~IpcClientHandler() {
+    if (cl_sess) {
+      int err = pfc_ipcclnt_altclose(connid);
+      if (err != 0) {
+        pfc_log_info("Unable to close the connection");
+      }
+      cl_sess->cancel(PFC_TRUE);
+      delete cl_sess;
+    }
+    DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
+  }
+  bool SendReqToDriver(const char *ctrlr_name, char *domain_id,
+                       IpcRequest *req);
+  // ctrlr_name and domain_id are valid only when sending to driver. When
+  // sending to physical they are ignored.
+  bool SendReqToServer(const char *channel_name,
+                       const char *service_name, pfc_ipcid_t service_id,
+                       bool driver_msg,
+                       const char *ctrlr_name, char *domain_id,
+                       IpcRequest *req);
+
+ private:
+  pfc_ipcconn_t connid;
+  bool ReadKtResponse(pfc::core::ipc::ClientSession *sess,
+                      pfc_ipcid_t service,
+                      bool driver_msg, char *domain_id);
+};
+
+}  // namespace ipc_util
+}  // namespace upll
+}  // namespace unc
index 1b261f42f4582c877b4cd301839bdb1371f37a3e..22638968d9e6db46646cf8395cc609572851796e 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -210,53 +210,115 @@ upll_rc_t IpcUtil::GetCtrlrTypeFromPhy(const char *ctrlr_name,
 }
 
 upll_rc_t IpcUtil::DriverResultCodeToKtURC(
-    unc_keytype_ctrtype_t ctrlr_type, uint32_t driver_result_code) {
-  switch (ctrlr_type) {
-    case UNC_CT_PFC:
-    case UNC_CT_VNP:
-    case UNC_CT_ODC:
+    unc_keytype_operation_t operation, uint32_t driver_result_code) {
+  switch (operation) {
+    // Transaction specific operations
+    case UNC_OP_CREATE:
+    case UNC_OP_DELETE:
+    case UNC_OP_UPDATE:
       {
         switch (driver_result_code) {
-          case DRVAPI_RESPONSE_SUCCESS:
+          case UNC_RC_SUCCESS:
             return UPLL_RC_SUCCESS;
-          case DRVAPI_RESPONSE_NOT_RUNNING:
-            return UPLL_RC_ERR_GENERIC;
-          case DRVAPI_RESPONSE_CONTROLLER_DISCONNECTED:
-            return UPLL_RC_ERR_RESOURCE_DISCONNECTED;
-          case DRVAPI_RESPONSE_NOT_SENT_TO_CONTROLLER:
+
+            // case UNC_DRV_RC_DAEMON_INACTIVE: move to default case
             // It will not be sent to controller only in the case of
             // vote, and that too if previous vote failed. Since we do not send
             // VOTE request from here, let us convert it to GENERIC error.
+            // case UNC_RC_REQ_NOT_SENT_TO_CTR: move to default case
+            // case UNC_DRV_RC_INVALID_REQUEST_FORMAT: move to default case
+            // case UNC_DRV_RC_INVALID_SESSION_ID: move to default case
+            // case UNC_DRV_RC_INVALID_CONFIG_ID: move to default case
+            // case UNC_DRV_RC_INVALID_OPERATION: move to default case
+            // case UNC_DRV_RC_INVALID_OPTION1: move to default case
+            // case UNC_DRV_RC_INVALID_OPTION2: move to default case
+            // case UNC_DRV_RC_INVALID_DATATYPE: move to default case
+            // case UNC_DRV_RC_INVALID_KEYTYPE: move to default case
+
+          case UNC_DRV_RC_ERR_ATTRIBUTE_SYNTAX:
+            return static_cast<upll_rc_t>(UNC_RC_CONFIG_INVAL);
+          case UNC_DRV_RC_ERR_ATTRIBUTE_SEMANTIC:
+            return static_cast<upll_rc_t>(UNC_RC_CONFIG_INVAL);
+
+          case UNC_RC_CTR_DISCONNECTED:
+            return UPLL_RC_ERR_CTR_DISCONNECTED;
+
+          case UNC_RC_CONFIG_INVAL:
+          case UNC_RC_CTR_CONFIG_STATUS_ERR:
+          case UNC_RC_CTR_BUSY:
+            return static_cast<upll_rc_t>(driver_result_code);
+
+          case UNC_RC_NO_SUCH_INSTANCE:
+            return UPLL_RC_ERR_NO_SUCH_INSTANCE;
+
+            // case UNC_DRV_RC_MISSING_KEY_STRUCT: move to default case
+            // case UNC_DRV_RC_MISSING_VAL_STRUCT: move to default case
+            // case UNC_DRV_RC_ERR_GENERIC: move to default case
+            // case UNC_RC_INTERNAL_ERR: move to default case
+
+          case UNC_RC_CTRLAPI_FAILURE:
+            return static_cast<upll_rc_t>(driver_result_code);
+          default:
+            UPLL_LOG_INFO("Received error %d from driver,"
+                          " converting to GENERIC error",
+                          driver_result_code);
             return UPLL_RC_ERR_GENERIC;
-          case DRVAPI_RESPONSE_INVALID_REQUEST_FORMAT:
-            return UPLL_RC_ERR_BAD_REQUEST;
-          case DRVAPI_RESPONSE_INVALID_SESSION_ID:
-          case DRVAPI_RESPONSE_INVALID_CONFIG_ID:
-            return UPLL_RC_ERR_BAD_CONFIG_OR_SESSION_ID;
-          case DRVAPI_RESPONSE_INVALID_OPERATION:
-            return UPLL_RC_ERR_NO_SUCH_OPERATION;
-          case DRVAPI_RESPONSE_INVALID_OPTION1:
-                return UPLL_RC_ERR_INVALID_OPTION1;
-          case DRVAPI_RESPONSE_INVALID_OPTION2:
-                return UPLL_RC_ERR_INVALID_OPTION2;
-          case DRVAPI_RESPONSE_INVALID_DATATYPE:
-                return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
-          case DRVAPI_RESPONSE_INVALID_KEYTYPE:
-                return UPLL_RC_ERR_NO_SUCH_NAME;
-          case DRVAPI_RESPONSE_NO_SUCH_INSTANCE:
-                return UPLL_RC_ERR_NO_SUCH_INSTANCE;
-          case DRVAPI_RESPONSE_MISSING_KEY_STRUCT:
-          case DRVAPI_RESPONSE_MISSING_VAL_STRUCT:
-          case DRVAPI_RESPONSE_FAILURE:
-          case DRVAPI_RESPONSE_CTRLAPI_FAILURE:
-          case DRVAPI_RESPONSE_INVALID_TRANSACTION:
+        }
+      }
+    default:  // Not-transaction specific operations: READ, CONTROL operations
+      {
+        switch (driver_result_code) {
+          case UNC_RC_SUCCESS:
+            return UPLL_RC_SUCCESS;
+            // case UNC_DRV_RC_DAEMON_INACTIVE: move to default case
+            // It will not be sent to controller only in the case of
+            // vote, and that too if previous vote failed. Since we do not send
+            // VOTE request from here, let us convert it to GENERIC error.
+            // case UNC_RC_REQ_NOT_SENT_TO_CTR: move to default case
+            // case UNC_DRV_RC_INVALID_REQUEST_FORMAT: move to default case
+            // case UNC_DRV_RC_INVALID_SESSION_ID: move to default case
+            // case UNC_DRV_RC_INVALID_CONFIG_ID: move to default case
+            // case UNC_DRV_RC_INVALID_OPERATION: move to default case
+            // case UNC_DRV_RC_INVALID_OPTION1: move to default case
+            // case UNC_DRV_RC_INVALID_OPTION2: move to default case
+            // case UNC_DRV_RC_INVALID_DATATYPE: move to default case
+            // case UNC_DRV_RC_INVALID_KEYTYPE: move to default case
+
+          case UNC_DRV_RC_ERR_ATTRIBUTE_SYNTAX:
+            return UPLL_RC_ERR_CFG_SYNTAX;
+          case UNC_DRV_RC_ERR_ATTRIBUTE_SEMANTIC:
+            return UPLL_RC_ERR_CFG_SEMANTIC;
+
+          case UNC_RC_CTR_DISCONNECTED:
+            return UPLL_RC_ERR_CTR_DISCONNECTED;
+
+            // case UNC_RC_CONFIG_INVAL: move to default case
+            // case UNC_RC_CTR_CONFIG_STATUS_ERR: move to default case
+            // case UNC_RC_CTR_BUSY: move to default case
+            // TODO(upll) : assumption driver does not give this error.
+            // Please Verify
+
+          case UNC_RC_NO_SUCH_INSTANCE:
+            return UPLL_RC_ERR_NO_SUCH_INSTANCE;
+
+            // case UNC_DRV_RC_MISSING_KEY_STRUCT: move to default case
+            // case UNC_DRV_RC_MISSING_VAL_STRUCT: move to default case
+            // case UNC_DRV_RC_ERR_GENERIC: move to default case
+            // case UNC_RC_INTERNAL_ERR: move to default case
+          case UNC_RC_CTRLAPI_FAILURE:
+            // TODO(upll) : need to check with Driver on whether
+            // this is possible
+            // for these operations. If so, what should it get converted in
+            // upll.
+            // In U10 we were sending GENERIC error, so we can convert to
+            // default case
           default:
+            UPLL_LOG_INFO("Received error %d from driver,"
+                          " converting to GENERIC error",
+                          driver_result_code);
             return UPLL_RC_ERR_GENERIC;
         }
       }
-      break;
-    default:
-      return UPLL_RC_ERR_GENERIC;
   }
 }
 
@@ -267,7 +329,7 @@ bool IpcUtil::SendReqToDriver(const char *ctrlr_name, char *domain_id,
                               IpcRequest *req, bool /* edit_conn */,
                               IpcResponse *resp) {
   UPLL_FUNC_TRACE
-  PFC_ASSERT(ctrlr_name != NULL);
+      PFC_ASSERT(ctrlr_name != NULL);
 
   unc_keytype_ctrtype_t ctrlr_type = UNC_CT_UNKNOWN;
   const char *channel_name = NULL;
@@ -275,11 +337,11 @@ bool IpcUtil::SendReqToDriver(const char *ctrlr_name, char *domain_id,
   pfc_ipcid_t service_id;
 
   if (unc::upll::config_momgr::CtrlrMgr::GetInstance()->GetCtrlrType(
-      ctrlr_name, req->header.datatype, &ctrlr_type) == false) {
+          ctrlr_name, req->header.datatype, &ctrlr_type) == false) {
     if ((req->header.operation == UNC_OP_DELETE) &&
         (req->header.datatype != UPLL_DT_RUNNING)) {
       if (unc::upll::config_momgr::CtrlrMgr::GetInstance()->GetCtrlrType(
-          ctrlr_name, UPLL_DT_RUNNING, &ctrlr_type) == false) {
+              ctrlr_name, UPLL_DT_RUNNING, &ctrlr_type) == false) {
         UPLL_LOG_WARN("Unable to get controller type for %s", ctrlr_name);
         resp->header.result_code = UPLL_RC_ERR_GENERIC;
         return false;
@@ -316,16 +378,16 @@ bool IpcUtil::SendReqToDriver(const char *ctrlr_name, char *domain_id,
                             true, ctrlr_name, domain_id, req, resp);
   if (ok) {
     resp->header.result_code = DriverResultCodeToKtURC(
-        ctrlr_type, resp->header.result_code);
+        req->header.operation , resp->header.result_code);
   }
   return ok;
 }
 
 upll_rc_t IpcUtil::PhysicalResultCodeToKtURC(uint32_t result_code) {
   switch (result_code) {
-    case UPPL_RC_SUCCESS:
+    case UNC_RC_SUCCESS:
       return UPLL_RC_SUCCESS;
-    case UPPL_RC_ERR_NO_SUCH_INSTANCE:
+    case UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE:
       return UPLL_RC_ERR_NO_SUCH_INSTANCE;
     default:
       return UPLL_RC_ERR_GENERIC;
@@ -357,15 +419,15 @@ bool IpcUtil::SendReqToServer(const char *channel_name,
                               const char *ctrlr_name, char *domain_id,
                               IpcRequest *req, IpcResponse *resp) {
   UPLL_FUNC_TRACE
-  if (channel_name == NULL || service_name == NULL ||
-      req == NULL || resp == NULL) {
-    UPLL_LOG_DEBUG("NULL argument");
-    if (resp != NULL) {
-      resp->header.result_code = UPLL_RC_ERR_GENERIC;
-      resp->return_code = 0;
-    }
-    return false;
-  }
+      if (channel_name == NULL || service_name == NULL ||
+          req == NULL || resp == NULL) {
+        UPLL_LOG_DEBUG("NULL argument");
+        if (resp != NULL) {
+          resp->header.result_code = UPLL_RC_ERR_GENERIC;
+          resp->return_code = 0;
+        }
+        return false;
+      }
   if (driver_msg == true && ctrlr_name == NULL) {
     UPLL_LOG_DEBUG("NULL controller argument");
     if (resp != NULL) {
@@ -395,7 +457,7 @@ bool IpcUtil::SendReqToServer(const char *channel_name,
   int err = pfc_ipcclnt_altopen(channel_name, &connid);
   if (err != 0) {
     UPLL_LOG_DEBUG("Failed to create IPC alternative connection to %s. Err=%d",
-                  channel_name, err);
+                   channel_name, err);
     resp->header.result_code = UPLL_RC_ERR_GENERIC;
     resp->return_code = PFC_IPCRESP_FATAL;
     return false;
@@ -404,11 +466,11 @@ bool IpcUtil::SendReqToServer(const char *channel_name,
   pfc::core::ipc::ClientSession cl_sess(connid, service_name, service_id, err);
   if (err != 0) {
     UPLL_LOG_DEBUG("Failed to create IPC client session %s:%s:%d. Err=%d",
-                  channel_name, service_name, service_id, err);
+                   channel_name, service_name, service_id, err);
     err = pfc_ipcclnt_altclose(connid);  // Close the IPC connection handle
     if (err != 0) {
       UPLL_LOG_DEBUG("Failed to close the IPC connection %s:%s:%d. Err=%d",
-                    channel_name, service_name, service_id, err);
+                     channel_name, service_name, service_id, err);
     }
     resp->header.result_code = UPLL_RC_ERR_GENERIC;
     resp->return_code = PFC_IPCRESP_FATAL;
@@ -432,17 +494,26 @@ bool IpcUtil::SendReqToServer(const char *channel_name,
     UPLL_LOG_TRACE("IPC Client Session timeout for channel %s set to infinity"
                    " for operation %d",
                    channel_name, req->header.operation);
+  } else if (req->ckv_data->get_key_type() == UNC_KT_VTNSTATION_CONTROLLER) {
+    pfc_timespec_t sess_timeout;
+    sess_timeout.tv_sec  = kIpcTimeoutVtnstation;
+    sess_timeout.tv_nsec = 0;
+    cl_sess.setTimeout(&sess_timeout);
+    UPLL_LOG_TRACE("IPC Client Session timeout for channel %s set to %d secs"
+                   " for operation %d on VTN_STATION_CONTROLLER",
+                   channel_name, kIpcTimeoutVtnstation, req->header.operation);
   }
 
+
   bool ret = WriteKtRequest(&cl_sess, driver_msg, ctrlr_name, domain_id,
                             req->header, req->ckv_data);
   if (!ret) {
     UPLL_LOG_DEBUG("Failed to send IPC request to %s:%s:%d",
-                  channel_name, service_name, service_id);
+                   channel_name, service_name, service_id);
     err = pfc_ipcclnt_altclose(connid);  // Close the IPC connection handle
     if (err != 0) {
       UPLL_LOG_DEBUG("Failed to close the IPC connection %s:%s:%d. Err=%d",
-                    channel_name, service_name, service_id, err);
+                     channel_name, service_name, service_id, err);
     }
     resp->header.result_code = UPLL_RC_ERR_GENERIC;
     resp->return_code = PFC_IPCRESP_FATAL;
@@ -458,24 +529,24 @@ bool IpcUtil::SendReqToServer(const char *channel_name,
                      channel_name, service_name, service_id);
       resp->return_code = PFC_IPCRESP_FATAL;
     } else {
-      pfc_log_fatal("Failed to send IPC request to %s:%s:%d. Err=%d",
-                  channel_name, service_name, service_id, err);
+      UPLL_LOG_FATAL("Failed to send IPC request to %s:%s:%d. Err=%d",
+                     channel_name, service_name, service_id, err);
       resp->return_code = PFC_IPCRESP_FATAL;
     }
     err = pfc_ipcclnt_altclose(connid);  // Close the IPC connection handle
     if (err != 0) {
       UPLL_LOG_DEBUG("Failed to close the IPC connection %s:%s:%d. Err=%d",
-                    channel_name, service_name, service_id, err);
+                     channel_name, service_name, service_id, err);
     }
     return false;
   }
   if (ipcresp != 0) {
     UPLL_LOG_DEBUG("Error at IPC server %s:%s:%d. ErrResp=%d",
-                  channel_name, service_name, service_id, ipcresp);
+                   channel_name, service_name, service_id, ipcresp);
     err = pfc_ipcclnt_altclose(connid);  // Close the IPC connection handle
     if (err != 0) {
       UPLL_LOG_DEBUG("Failed to close the IPC connection %s:%s:%d. Err=%d",
-                    channel_name, service_name, service_id, err);
+                     channel_name, service_name, service_id, err);
     }
     resp->header.result_code = UPLL_RC_ERR_GENERIC;
     resp->return_code = PFC_IPCRESP_FATAL;
@@ -486,11 +557,11 @@ bool IpcUtil::SendReqToServer(const char *channel_name,
                        &local_resp.header, &local_resp.ckv_data);
   if (!ret) {
     UPLL_LOG_DEBUG("Failed to read IPC response from %s:%s:%d",
-                  channel_name, service_name, service_id);
+                   channel_name, service_name, service_id);
     err = pfc_ipcclnt_altclose(connid);  // Close the IPC connection handle
     if (err != 0) {
       UPLL_LOG_DEBUG("Failed to close the IPC connection %s:%s:%d. Err=%d",
-                    channel_name, service_name, service_id, err);
+                     channel_name, service_name, service_id, err);
     }
     resp->header.result_code = UPLL_RC_ERR_GENERIC;
     resp->return_code = PFC_IPCRESP_FATAL;
@@ -503,15 +574,14 @@ bool IpcUtil::SendReqToServer(const char *channel_name,
     resp->ckv_data = new ConfigKeyVal(local_resp.ckv_data->get_key_type());
   }
   resp->ckv_data->ResetWith(local_resp.ckv_data);
-  if (local_resp.ckv_data)
-   delete local_resp.ckv_data;
+  delete local_resp.ckv_data;
   resp->return_code = 0;
 
   /* Close the IPC connection handle. */
   err = pfc_ipcclnt_altclose(connid);
   if (err != 0) {
     UPLL_LOG_DEBUG("Failed to close the IPC connection %s:%s:%d. Err=%d",
-                  channel_name, service_name, service_id, err);
+                   channel_name, service_name, service_id, err);
   }
 
   UPLL_LOG_TRACE("dest=%s:%s:%d, controller_name=%s domain_id=%s\n"
@@ -524,12 +594,12 @@ bool IpcUtil::SendReqToServer(const char *channel_name,
 }
 
 #define READ_PRIMARY_IPCTYPE(                                                 \
-    ipc_sess, sess_read_api, index, data_type, data_var_ptr)                  \
+                             ipc_sess, sess_read_api, index, data_type, data_var_ptr)                  \
 {                                                                             \
   ret = true;                                                                 \
   data_var_ptr = ConfigKeyVal::Malloc(sizeof(data_type));                     \
   int ipc_ret = ipc_sess->sess_read_api(                                      \
-      index, *(reinterpret_cast<data_type*>(data_var_ptr)));                  \
+                                        index, *(reinterpret_cast<data_type*>(data_var_ptr)));                  \
   if (ipc_ret != 0) {                                                         \
     UPLL_LOG_DEBUG("Failed to read argument in the IPC request, Err=%d",      \
                    ipc_ret);                                                  \
@@ -538,23 +608,23 @@ bool IpcUtil::SendReqToServer(const char *channel_name,
 }
 
 #define READ_PRIMARY_IPCTYPE_FROM_SERVER(                                     \
-    ipc_srv_sess, index, data_type, data_var_ptr) {                           \
+                                         ipc_srv_sess, index, data_type, data_var_ptr) {                           \
   READ_PRIMARY_IPCTYPE(ipc_srv_sess, getArgument,                             \
                        index, data_type, data_var_ptr) \
 }
 
 #define READ_PRIMARY_IPCTYPE_FROM_CLIENT(                                     \
-    ipc_clnt_sess, index, data_type, data_var_ptr) {                          \
+                                         ipc_clnt_sess, index, data_type, data_var_ptr) {                          \
   READ_PRIMARY_IPCTYPE(ipc_clnt_sess, getResponse,                            \
                        index, data_type, data_var_ptr) \
 }
 
 #define WRITE_PRIMARY_IPCTYPE(                                                \
-    ipc_sess, sess_write_api, data_type, data_var_ptr)                        \
+                              ipc_sess, sess_write_api, data_type, data_var_ptr)                        \
 {                                                                             \
   ret = true;                                                                 \
   int ipc_ret = ipc_sess->sess_write_api(                                     \
-                                *((data_type*)(data_var_ptr)));  /* NOLINT */ \
+                                         *((data_type*)(data_var_ptr)));  /* NOLINT */ \
   if (ipc_ret != 0) {                                                         \
     UPLL_LOG_DEBUG("Failed to read argument in the IPC request, Err=%d",      \
                    ipc_ret);                                                  \
@@ -565,162 +635,164 @@ bool IpcUtil::SendReqToServer(const char *channel_name,
 
 bool IpcUtil::ReadIpcArg(pfc::core::ipc::ServerSession *sess, uint32_t index,
                          IpctSt::IpcStructNum *st_num, void **ipc_struct) {
-    pfc_ipctype_t arg_type;
-    if (0 != sess->getArgType(index, arg_type)) {
-      UPLL_LOG_DEBUG("Failed to get arg type in the IPC request");
-      return false;
-    }
+  pfc_ipctype_t arg_type;
+  if (0 != sess->getArgType(index, arg_type)) {
+    UPLL_LOG_DEBUG("Failed to get arg type in the IPC request");
+    return false;
+  }
 
-    bool ret;
+  bool ret;
 
-    switch (arg_type) {
-      case PFC_IPCTYPE_INT8:
-        *st_num = IpctSt::kIpcStInt8;
-        READ_PRIMARY_IPCTYPE_FROM_SERVER(sess, index, int8_t, *ipc_struct);
-        break;
-      case PFC_IPCTYPE_UINT8:
-        *st_num = IpctSt::kIpcStUint8;
-        READ_PRIMARY_IPCTYPE_FROM_SERVER(sess, index, uint8_t, *ipc_struct);
-        break;
-      case PFC_IPCTYPE_INT16:
-        *st_num = IpctSt::kIpcStInt16;
-        READ_PRIMARY_IPCTYPE_FROM_SERVER(sess, index, int16_t, *ipc_struct);
-        break;
-      case PFC_IPCTYPE_UINT16:
-        *st_num = IpctSt::kIpcStUint16;
-        READ_PRIMARY_IPCTYPE_FROM_SERVER(sess, index, uint16_t, *ipc_struct);
-        break;
-      case PFC_IPCTYPE_INT32:
-        *st_num = IpctSt::kIpcStInt32;
-        READ_PRIMARY_IPCTYPE_FROM_SERVER(sess, index, int32_t, *ipc_struct);
-        break;
-      case PFC_IPCTYPE_UINT32:
-        *st_num = IpctSt::kIpcStUint32;
-        READ_PRIMARY_IPCTYPE_FROM_SERVER(sess, index, uint32_t, *ipc_struct);
-        break;
-      case PFC_IPCTYPE_INT64:
-        *st_num = IpctSt::kIpcStInt64;
-        READ_PRIMARY_IPCTYPE_FROM_SERVER(sess, index, int64_t, *ipc_struct);
-        break;
-      case PFC_IPCTYPE_UINT64:
-        *st_num = IpctSt::kIpcStUint64;
-        READ_PRIMARY_IPCTYPE_FROM_SERVER(sess, index, uint64_t, *ipc_struct);
-        break;
-      case PFC_IPCTYPE_FLOAT:
-        *st_num = IpctSt::kIpcStFloat;
-        READ_PRIMARY_IPCTYPE_FROM_SERVER(sess, index, float, *ipc_struct);
-        break;
-      case PFC_IPCTYPE_DOUBLE:
-        *st_num = IpctSt::kIpcStDouble;
-        READ_PRIMARY_IPCTYPE_FROM_SERVER(sess, index, double, *ipc_struct);
-        break;
-      case PFC_IPCTYPE_IPV4:
-        *st_num = IpctSt::kIpcStIpv4;
-        READ_PRIMARY_IPCTYPE_FROM_SERVER(sess, index, struct in_addr,
-                                         *ipc_struct);
-        break;
-      case PFC_IPCTYPE_IPV6:
-        *st_num = IpctSt::kIpcStIpv6;
-        READ_PRIMARY_IPCTYPE_FROM_SERVER(sess, index, struct in6_addr,
+  switch (arg_type) {
+    case PFC_IPCTYPE_INT8:
+      *st_num = IpctSt::kIpcStInt8;
+      READ_PRIMARY_IPCTYPE_FROM_SERVER(sess, index, int8_t, *ipc_struct);
+      break;
+    case PFC_IPCTYPE_UINT8:
+      *st_num = IpctSt::kIpcStUint8;
+      READ_PRIMARY_IPCTYPE_FROM_SERVER(sess, index, uint8_t, *ipc_struct);
+      break;
+    case PFC_IPCTYPE_INT16:
+      *st_num = IpctSt::kIpcStInt16;
+      READ_PRIMARY_IPCTYPE_FROM_SERVER(sess, index, int16_t, *ipc_struct);
+      break;
+    case PFC_IPCTYPE_UINT16:
+      *st_num = IpctSt::kIpcStUint16;
+      READ_PRIMARY_IPCTYPE_FROM_SERVER(sess, index, uint16_t, *ipc_struct);
+      break;
+    case PFC_IPCTYPE_INT32:
+      *st_num = IpctSt::kIpcStInt32;
+      READ_PRIMARY_IPCTYPE_FROM_SERVER(sess, index, int32_t, *ipc_struct);
+      break;
+    case PFC_IPCTYPE_UINT32:
+      *st_num = IpctSt::kIpcStUint32;
+      READ_PRIMARY_IPCTYPE_FROM_SERVER(sess, index, uint32_t, *ipc_struct);
+      break;
+    case PFC_IPCTYPE_INT64:
+      *st_num = IpctSt::kIpcStInt64;
+      READ_PRIMARY_IPCTYPE_FROM_SERVER(sess, index, int64_t, *ipc_struct);
+      break;
+    case PFC_IPCTYPE_UINT64:
+      *st_num = IpctSt::kIpcStUint64;
+      READ_PRIMARY_IPCTYPE_FROM_SERVER(sess, index, uint64_t, *ipc_struct);
+      break;
+    case PFC_IPCTYPE_FLOAT:
+      *st_num = IpctSt::kIpcStFloat;
+      READ_PRIMARY_IPCTYPE_FROM_SERVER(sess, index, float, *ipc_struct);
+      break;
+    case PFC_IPCTYPE_DOUBLE:
+      *st_num = IpctSt::kIpcStDouble;
+      READ_PRIMARY_IPCTYPE_FROM_SERVER(sess, index, double, *ipc_struct);
+      break;
+    case PFC_IPCTYPE_IPV4:
+      *st_num = IpctSt::kIpcStIpv4;
+      READ_PRIMARY_IPCTYPE_FROM_SERVER(sess, index, struct in_addr,
+                                       *ipc_struct);
+      break;
+    case PFC_IPCTYPE_IPV6:
+      *st_num = IpctSt::kIpcStIpv6;
+      READ_PRIMARY_IPCTYPE_FROM_SERVER(sess, index, struct in6_addr,
+                                       *ipc_struct);
+      break;
+    case PFC_IPCTYPE_STRING:
+      {
+        *st_num = IpctSt::kIpcStString;
+        READ_PRIMARY_IPCTYPE_FROM_SERVER(sess, index, const char *,
                                          *ipc_struct);
-        break;
-      case PFC_IPCTYPE_STRING:
-        {
-          *st_num = IpctSt::kIpcStString;
-          READ_PRIMARY_IPCTYPE_FROM_SERVER(sess, index, const char *,
-                                           *ipc_struct);
-          char *str = strdup(*(reinterpret_cast<char **>(*ipc_struct)));
-          *ipc_struct = str;
-        }
-        break;
-      case PFC_IPCTYPE_STRUCT:
-        ret = ReadIpcStruct(sess, index, st_num, ipc_struct);
-        break;
-      case PFC_IPCTYPE_BINARY:            // NOT USED
-      default:
-        ret = false;
-    }
-    return ret;
+        char *str = strdup(*(reinterpret_cast<char **>(*ipc_struct)));
+        ConfigKeyVal::Free(*ipc_struct);
+        *ipc_struct = str;
+      }
+      break;
+    case PFC_IPCTYPE_STRUCT:
+      ret = ReadIpcStruct(sess, index, st_num, ipc_struct);
+      break;
+    case PFC_IPCTYPE_BINARY:            // NOT USED
+    default:
+      ret = false;
+  }
+  return ret;
 }
 
 bool IpcUtil::ReadIpcArg(pfc::core::ipc::ClientSession *sess, uint32_t index,
                          IpctSt::IpcStructNum *st_num, void **ipc_struct) {
-    pfc_ipctype_t arg_type;
-    if (0 != sess->getResponseType(index, arg_type)) {
-      UPLL_LOG_DEBUG("Failed to get arg type in the IPC request");
-      return false;
-    }
+  pfc_ipctype_t arg_type;
+  if (0 != sess->getResponseType(index, arg_type)) {
+    UPLL_LOG_DEBUG("Failed to get arg type in the IPC request");
+    return false;
+  }
 
-    bool ret;
+  bool ret;
 
-    switch (arg_type) {
-      case PFC_IPCTYPE_INT8:
-        *st_num = IpctSt::kIpcStInt8;
-        READ_PRIMARY_IPCTYPE_FROM_CLIENT(sess, index, int8_t, *ipc_struct);
-        break;
-      case PFC_IPCTYPE_UINT8:
-        *st_num = IpctSt::kIpcStUint8;
-        READ_PRIMARY_IPCTYPE_FROM_CLIENT(sess, index, uint8_t, *ipc_struct);
-        break;
-      case PFC_IPCTYPE_INT16:
-        *st_num = IpctSt::kIpcStInt16;
-        READ_PRIMARY_IPCTYPE_FROM_CLIENT(sess, index, int16_t, *ipc_struct);
-        break;
-      case PFC_IPCTYPE_UINT16:
-        *st_num = IpctSt::kIpcStUint16;
-        READ_PRIMARY_IPCTYPE_FROM_CLIENT(sess, index, uint16_t, *ipc_struct);
-        break;
-      case PFC_IPCTYPE_INT32:
-        *st_num = IpctSt::kIpcStInt32;
-        READ_PRIMARY_IPCTYPE_FROM_CLIENT(sess, index, int32_t, *ipc_struct);
-        break;
-      case PFC_IPCTYPE_UINT32:
-        *st_num = IpctSt::kIpcStUint32;
-        READ_PRIMARY_IPCTYPE_FROM_CLIENT(sess, index, uint32_t, *ipc_struct);
-        break;
-      case PFC_IPCTYPE_INT64:
-        *st_num = IpctSt::kIpcStInt64;
-        READ_PRIMARY_IPCTYPE_FROM_CLIENT(sess, index, int64_t, *ipc_struct);
-        break;
-      case PFC_IPCTYPE_UINT64:
-        *st_num = IpctSt::kIpcStUint64;
-        READ_PRIMARY_IPCTYPE_FROM_CLIENT(sess, index, uint64_t, *ipc_struct);
-        break;
-      case PFC_IPCTYPE_FLOAT:
-        *st_num = IpctSt::kIpcStFloat;
-        READ_PRIMARY_IPCTYPE_FROM_CLIENT(sess, index, float, *ipc_struct);
-        break;
-      case PFC_IPCTYPE_DOUBLE:
-        *st_num = IpctSt::kIpcStDouble;
-        READ_PRIMARY_IPCTYPE_FROM_CLIENT(sess, index, double, *ipc_struct);
-        break;
-      case PFC_IPCTYPE_IPV4:
-        *st_num = IpctSt::kIpcStIpv4;
-        READ_PRIMARY_IPCTYPE_FROM_CLIENT(sess, index, struct in_addr,
-                                         *ipc_struct);
-        break;
-      case PFC_IPCTYPE_IPV6:
-        *st_num = IpctSt::kIpcStIpv6;
-        READ_PRIMARY_IPCTYPE_FROM_CLIENT(sess, index, struct in6_addr,
+  switch (arg_type) {
+    case PFC_IPCTYPE_INT8:
+      *st_num = IpctSt::kIpcStInt8;
+      READ_PRIMARY_IPCTYPE_FROM_CLIENT(sess, index, int8_t, *ipc_struct);
+      break;
+    case PFC_IPCTYPE_UINT8:
+      *st_num = IpctSt::kIpcStUint8;
+      READ_PRIMARY_IPCTYPE_FROM_CLIENT(sess, index, uint8_t, *ipc_struct);
+      break;
+    case PFC_IPCTYPE_INT16:
+      *st_num = IpctSt::kIpcStInt16;
+      READ_PRIMARY_IPCTYPE_FROM_CLIENT(sess, index, int16_t, *ipc_struct);
+      break;
+    case PFC_IPCTYPE_UINT16:
+      *st_num = IpctSt::kIpcStUint16;
+      READ_PRIMARY_IPCTYPE_FROM_CLIENT(sess, index, uint16_t, *ipc_struct);
+      break;
+    case PFC_IPCTYPE_INT32:
+      *st_num = IpctSt::kIpcStInt32;
+      READ_PRIMARY_IPCTYPE_FROM_CLIENT(sess, index, int32_t, *ipc_struct);
+      break;
+    case PFC_IPCTYPE_UINT32:
+      *st_num = IpctSt::kIpcStUint32;
+      READ_PRIMARY_IPCTYPE_FROM_CLIENT(sess, index, uint32_t, *ipc_struct);
+      break;
+    case PFC_IPCTYPE_INT64:
+      *st_num = IpctSt::kIpcStInt64;
+      READ_PRIMARY_IPCTYPE_FROM_CLIENT(sess, index, int64_t, *ipc_struct);
+      break;
+    case PFC_IPCTYPE_UINT64:
+      *st_num = IpctSt::kIpcStUint64;
+      READ_PRIMARY_IPCTYPE_FROM_CLIENT(sess, index, uint64_t, *ipc_struct);
+      break;
+    case PFC_IPCTYPE_FLOAT:
+      *st_num = IpctSt::kIpcStFloat;
+      READ_PRIMARY_IPCTYPE_FROM_CLIENT(sess, index, float, *ipc_struct);
+      break;
+    case PFC_IPCTYPE_DOUBLE:
+      *st_num = IpctSt::kIpcStDouble;
+      READ_PRIMARY_IPCTYPE_FROM_CLIENT(sess, index, double, *ipc_struct);
+      break;
+    case PFC_IPCTYPE_IPV4:
+      *st_num = IpctSt::kIpcStIpv4;
+      READ_PRIMARY_IPCTYPE_FROM_CLIENT(sess, index, struct in_addr,
+                                       *ipc_struct);
+      break;
+    case PFC_IPCTYPE_IPV6:
+      *st_num = IpctSt::kIpcStIpv6;
+      READ_PRIMARY_IPCTYPE_FROM_CLIENT(sess, index, struct in6_addr,
+                                       *ipc_struct);
+      break;
+    case PFC_IPCTYPE_STRING:
+      {
+        *st_num = IpctSt::kIpcStString;
+        READ_PRIMARY_IPCTYPE_FROM_CLIENT(sess, index, const char *,
                                          *ipc_struct);
-        break;
-      case PFC_IPCTYPE_STRING:
-        {
-          *st_num = IpctSt::kIpcStString;
-          READ_PRIMARY_IPCTYPE_FROM_CLIENT(sess, index, const char *,
-                                           *ipc_struct);
-          char *str = strdup(*(reinterpret_cast<char **>(*ipc_struct)));
-          *ipc_struct = str;
-        }
-        break;
-      case PFC_IPCTYPE_STRUCT:
-        ret = ReadIpcStruct(sess, index, st_num, ipc_struct);
-        break;
-      case PFC_IPCTYPE_BINARY:            // NOT USED
-      default:
-        ret = false;
-    }
-    return ret;
+        char *str = strdup(*(reinterpret_cast<char **>(*ipc_struct)));
+        ConfigKeyVal::Free(*ipc_struct);
+        *ipc_struct = str;
+      }
+      break;
+    case PFC_IPCTYPE_STRUCT:
+      ret = ReadIpcStruct(sess, index, st_num, ipc_struct);
+      break;
+    case PFC_IPCTYPE_BINARY:            // NOT USED
+    default:
+      ret = false;
+  }
+  return ret;
 }
 
 bool IpcUtil::ReadIpcStruct(pfc::core::ipc::ServerSession *sess,
@@ -735,7 +807,7 @@ bool IpcUtil::ReadIpcStruct(pfc::core::ipc::ServerSession *sess,
   const pfc_ipcstdef_t *st_def = IpctSt::GetIpcStdef(st_name.c_str());
   if (st_def == NULL) {
     UPLL_LOG_DEBUG("Unknown structure %s in the ipc message",
-                  st_name.c_str());
+                   st_name.c_str());
     return false;
   }
   *st_num = IpctSt::GetIpcStNum(st_name.c_str());
@@ -763,7 +835,7 @@ bool IpcUtil::ReadIpcStruct(pfc::core::ipc::ClientSession *sess,
   const pfc_ipcstdef_t *st_def = IpctSt::GetIpcStdef(st_name.c_str());
   if (st_def == NULL) {
     UPLL_LOG_DEBUG("Unknown structure %s in the ipc message",
-                  st_name.c_str());
+                   st_name.c_str());
     return false;
   }
   *st_num = IpctSt::GetIpcStNum(st_name.c_str());
@@ -823,7 +895,7 @@ bool IpcUtil::WriteIpcArg(pfc::core::ipc::ServerSession *sess,
       /* With -03 the following line gives compilation error.
        * So macro isn't used.
        * WRITE_PRIMARY_IPCTYPE(sess, addOutput, const char *, &ipc_struct);
-      */
+       */
       {
         ret = true;
         int ipc_ret = sess->addOutput(
@@ -887,7 +959,7 @@ bool IpcUtil::WriteIpcArg(pfc::core::ipc::ClientSession *sess,
       /* With -03 the following line gives compilation error.
        * So macro isn't used.
        * WRITE_PRIMARY_IPCTYPE(sess, addOutput, const char *, &ipc_struct);
-      */
+       */
       {
         ret = true;
         int ipc_ret = sess->addOutput(
@@ -964,7 +1036,7 @@ bool IpcUtil::ReadKtRequest(pfc::core::ipc::ServerSession *sess,
   uint32_t arg_cnt = sess->getArgCount();
   if (arg_cnt < unc::upll::ipc_util::kKeyTreeReqMandatoryFields) {
     UPLL_LOG_DEBUG("Not enough arguments in key tree request. Has only %u.",
-                  arg_cnt);
+                   arg_cnt);
     return false;
   }
 
@@ -1014,14 +1086,14 @@ bool IpcUtil::ReadKtRequest(pfc::core::ipc::ServerSession *sess,
       // new key type is expected.
       if (0 != sess->getArgument(arg++, keytype)) {
         UPLL_LOG_DEBUG("Failed to get key type at %u in the key tree request",
-                      arg);
+                       arg);
         delete *first_ckv;
         *first_ckv = NULL;
         return false;
       }
       if (!IpcUtil::ReadIpcStruct(sess, arg++, &st_num, &ipc_st)) {
         UPLL_LOG_DEBUG("Failed to get structure at %u in the key tree request",
-                      arg);
+                       arg);
         delete *first_ckv;
         *first_ckv = NULL;
         return false;
@@ -1033,7 +1105,7 @@ bool IpcUtil::ReadKtRequest(pfc::core::ipc::ServerSession *sess,
     } else {
       if (!IpcUtil::ReadIpcArg(sess, arg++, &st_num, &ipc_st)) {
         UPLL_LOG_DEBUG("Failed to get structure at %u in the key tree request",
-                      arg);
+                       arg);
         delete *first_ckv;
         *first_ckv = NULL;
         return false;
@@ -1046,8 +1118,8 @@ bool IpcUtil::ReadKtRequest(pfc::core::ipc::ServerSession *sess,
 
 /* Send response to UPLL user */
 bool IpcUtil::WriteKtResponse(pfc::core::ipc::ServerSession *sess,
-                             const IpcReqRespHeader &msg_hdr,
-                             const ConfigKeyVal *first_ckv) {
+                              const IpcReqRespHeader &msg_hdr,
+                              const ConfigKeyVal *first_ckv) {
   if (sess == NULL) {
     UPLL_LOG_DEBUG("Null argument");
     return false;
@@ -1106,7 +1178,7 @@ bool IpcUtil::WriteKtResponse(pfc::core::ipc::ServerSession *sess,
 }
 
 /* Write KT request to Server */
-                             // ctrlr_name: Non-null if sent to driver
+// ctrlr_name: Non-null if sent to driver
 bool IpcUtil::WriteKtRequest(pfc::core::ipc::ClientSession *sess,
                              bool driver_msg,
                              const char *ctrlr_name, const char *domain_id,
@@ -1260,7 +1332,7 @@ bool IpcUtil::ReadKtResponse(pfc::core::ipc::ClientSession *sess,
   if (arg_cnt < mandatory_fields) {
     UPLL_LOG_DEBUG("Not enough arguments in key tree response."
                    " Has only %u, expected %d",
-                  arg_cnt, mandatory_fields);
+                   arg_cnt, mandatory_fields);
     return false;
   }
 
@@ -1278,14 +1350,14 @@ bool IpcUtil::ReadKtResponse(pfc::core::ipc::ClientSession *sess,
   if ((0 != (err = sess->getResponse(arg++, msg_hdr->clnt_sess_id))) ||
       (0 != (err = sess->getResponse(arg++, msg_hdr->config_id)))) {
     UPLL_LOG_DEBUG("Failed to get header field #%u in the key tree response."
-                  " Err=%d", arg, err);
+                   " Err=%d", arg, err);
     return false;
   }
   if (driver_msg == true) {
     if ((0 != (err = sess->getResponse(arg++, msg_ctrlr_name))) ||
         (0 != (err = sess->getResponse(arg++, msg_domain_id)))) {
       UPLL_LOG_DEBUG("Failed to get header field #%u in the key tree response."
-          " Err=%d", arg, err);
+                     " Err=%d", arg, err);
       return false;
     }
     if (domain_id != NULL) {
@@ -1300,7 +1372,7 @@ bool IpcUtil::ReadKtResponse(pfc::core::ipc::ClientSession *sess,
       (0 != (err = sess->getResponse(arg++, result_code))) ||
       (0 != (err = sess->getResponse(arg++, keytype))) ) {
     UPLL_LOG_DEBUG("Failed to get header field #%u in the key tree response."
-                  " Err=%d", arg, err);
+                   " Err=%d", arg, err);
     return false;
   }
   msg_hdr->operation = (unc_keytype_operation_t)operation;
@@ -1313,7 +1385,7 @@ bool IpcUtil::ReadKtResponse(pfc::core::ipc::ClientSession *sess,
   void *ipc_st;
   if (!IpcUtil::ReadIpcStruct(sess, arg++, &st_num, &ipc_st)) {
     UPLL_LOG_DEBUG("Failed to get structure at %u in the key tree response",
-                  arg);
+                   arg);
     return false;
   }
   *first_ckv = new ConfigKeyVal((unc_key_type_t)keytype, st_num, ipc_st, NULL);
@@ -1325,7 +1397,7 @@ bool IpcUtil::ReadKtResponse(pfc::core::ipc::ClientSession *sess,
     pfc_ipctype_t arg_type;
     if (0 != (err = sess->getResponseType(arg, arg_type))) {
       UPLL_LOG_DEBUG("Failed to get arg type at %u in the key tree response."
-                    " Err=%d", arg, err);
+                     " Err=%d", arg, err);
       delete *first_ckv;
       *first_ckv = NULL;
       return false;
@@ -1342,7 +1414,7 @@ bool IpcUtil::ReadKtResponse(pfc::core::ipc::ClientSession *sess,
       // new key type is expected.
       if (0 != (err = sess->getResponse(arg++, keytype))) {
         UPLL_LOG_DEBUG("Failed to get key type at %u in the key tree response."
-                      " Err=%d", arg, err);
+                       " Err=%d", arg, err);
         DumpResponse(sess);
         delete *first_ckv;
         *first_ckv = NULL;
@@ -1350,7 +1422,7 @@ bool IpcUtil::ReadKtResponse(pfc::core::ipc::ClientSession *sess,
       }
       if (!IpcUtil::ReadIpcStruct(sess, arg++, &st_num, &ipc_st)) {
         UPLL_LOG_DEBUG("Failed to get structure at %u in the key tree response",
-                      arg);
+                       arg);
         delete *first_ckv;
         *first_ckv = NULL;
         return false;
@@ -1363,7 +1435,7 @@ bool IpcUtil::ReadKtResponse(pfc::core::ipc::ClientSession *sess,
     } else {
       if (!IpcUtil::ReadIpcArg(sess, arg++, &st_num, &ipc_st)) {
         UPLL_LOG_DEBUG("Failed to get structure at %u in the key tree response",
-                      arg);
+                       arg);
         delete *first_ckv;
         *first_ckv = NULL;
         return false;
@@ -1383,27 +1455,27 @@ bool IpcUtil::ReadKtResponse(pfc::core::ipc::ClientSession *sess,
 std::string IpcUtil::IpcRequestToStr(const IpcReqRespHeader &msghdr) {
   std::stringstream ss;
   ss << "-------------IpcRequest--------------" << std::endl
-     << "  clnt_sess_id:  " << msghdr.clnt_sess_id << std::endl
-     << "  config_id:     " << msghdr.config_id << std::endl
-     << "  operation:     " << msghdr.operation << std::endl
-     << "  max_rep_count: " << msghdr.rep_count << std::endl
-     << "  option1:       " << msghdr.option1 << std::endl
-     << "  option2:       " << msghdr.option2 << std::endl
-     << "  datatype:      " << msghdr.datatype;
+      << "  clnt_sess_id:  " << msghdr.clnt_sess_id << std::endl
+      << "  config_id:     " << msghdr.config_id << std::endl
+      << "  operation:     " << msghdr.operation << std::endl
+      << "  max_rep_count: " << msghdr.rep_count << std::endl
+      << "  option1:       " << msghdr.option1 << std::endl
+      << "  option2:       " << msghdr.option2 << std::endl
+      << "  datatype:      " << msghdr.datatype;
   return ss.str();
 }
 
 std::string IpcUtil::IpcResponseToStr(const IpcReqRespHeader &msghdr) {
   std::stringstream ss;
   ss << "-------------IpcResponse--------------" << std::endl
-     << "  clnt_sess_id:  " << msghdr.clnt_sess_id << std::endl
-     << "  config_id:     " << msghdr.config_id << std::endl
-     << "  operation:     " << msghdr.operation << std::endl
-     << "  rep_count:     " << msghdr.rep_count << std::endl
-     << "  option1:       " << msghdr.option1 << std::endl
-     << "  option2:       " << msghdr.option2 << std::endl
-     << "  datatype:      " << msghdr.datatype << std::endl
-     << "  result_code:   " << msghdr.result_code;
+      << "  clnt_sess_id:  " << msghdr.clnt_sess_id << std::endl
+      << "  config_id:     " << msghdr.config_id << std::endl
+      << "  operation:     " << msghdr.operation << std::endl
+      << "  rep_count:     " << msghdr.rep_count << std::endl
+      << "  option1:       " << msghdr.option1 << std::endl
+      << "  option2:       " << msghdr.option2 << std::endl
+      << "  datatype:      " << msghdr.datatype << std::endl
+      << "  result_code:   " << msghdr.result_code;
   return ss.str();
 }
 
@@ -1473,8 +1545,9 @@ bool ConfigNotifier::SendBufferedNotificationsToUpllUser() {
   // Send out buffered notifications
   ConfigNotification *cn;
   std::list<ConfigNotification*>::iterator it = buffered_notifs.begin();
-  for (cn = *it; (it != buffered_notifs.end());
-       it++, (delete cn), (cn = *it)) {
+  for (; (it != buffered_notifs.end());
+       it++, (delete cn)) {
+    cn = *it;
     if (IpcUtil::IsShuttingDown()) {
       UPLL_LOG_WARN("Cannot send config nofitications as shutdown in progress");
       break;
@@ -1483,7 +1556,7 @@ bool ConfigNotifier::SendBufferedNotificationsToUpllUser() {
     pfc::core::ipc::ServerEvent event(UPLL_EV_CONFIG_NOTIFICATION, err);
     if (err != 0) {
       UPLL_LOG_DEBUG("Failed to create configuration notification event."
-                    " Err:%d", err);
+                     " Err:%d", err);
       continue;
     }
 
@@ -1491,9 +1564,9 @@ bool ConfigNotifier::SendBufferedNotificationsToUpllUser() {
     if ((0 != (err = event.addOutput((uint32_t)cn->get_operation()))) ||
         (0 != (err = event.addOutput((uint32_t)cn->get_datatype()))) ||
         (0 != (err = event.addOutput((uint32_t)cn->get_ckv()->get_key_type())))
-        ) {
+       ) {
       UPLL_LOG_DEBUG("Failed to add output to configuration notification."
-                    " Err=%d", err);
+                     " Err=%d", err);
       continue;
     }
 
@@ -1521,7 +1594,7 @@ bool ConfigNotifier::SendBufferedNotificationsToUpllUser() {
     err = event.post();
     if (err != 0) {
       UPLL_LOG_DEBUG("Failed to post configuration notification event."
-                    " Err=%d", err);
+                     " Err=%d", err);
       continue;
     }
   }
index d7be3d324ba70b2add757062f98be3af808cae9f..6fdcaab4da762ba8a44d901a3f68e415e0926f4f 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
 #include "./keytype_upll_ext.h"
 #include "ipct_st.hh"
 #include "uncxx/upll_log.hh"
+
+#include "upll_validation.hh"
+
 namespace unc {
 namespace upll {
+
 static const uint32_t kIpcTimeoutPing = 330;
 static const uint32_t kIpcTimeoutImport = 300;
+static const uint32_t kIpcTimeoutDataflow = 3600;
+static const uint32_t kIpcTimeoutVtnstation = 300;
 
 namespace ipc_util {
 
@@ -43,6 +49,12 @@ static const uint32_t kKeyTreeDriverRespMandatoryFields = 12;
 static const uint32_t kPhyConfigNotificationMandatoryFields = 4;
 static const uint32_t kPfcDrvierAlarmMandatoryFields = 7;
 
+typedef struct key_user_data {
+  uint8_t ctrlr_id[unc::upll::kt_momgr::kMaxLenCtrlrId+1];
+  uint8_t domain_id[unc::upll::kt_momgr::kMaxLenDomainId+1];
+  uint8_t flags;
+} key_user_data_t;
+
 // NOTE: ConfigVal assumes the pointers passed in to this class are allocated
 // with Malloc() function and calls free() for freeing the memory.
 // ConfigVal does not make duplicate memory for the pointers passed.
@@ -176,7 +188,7 @@ class ConfigKeyVal {
 
   inline ConfigKeyVal *get_next_cfg_key_val() const { return next_ckv_; }
   void AppendCfgKeyVal(unc_key_type_t kt, IpctSt::IpcStructNum st_num,
-                           void *key, ConfigVal *cv = NULL) {
+                       void *key, ConfigVal *cv = NULL) {
     AppendCfgKeyVal(new ConfigKeyVal(kt, st_num, key, cv));
   }
   void AppendCfgKeyVal(ConfigKeyVal *cfg_kv);
@@ -265,8 +277,8 @@ class ConfigNotification {
  public:
   // {New and old(optional) values can be given in keyval}
   ConfigNotification(unc_keytype_operation_t operation,
-                          unc_keytype_datatype_t datatype,
-                          ConfigKeyVal *ckv_data) {
+                     unc_keytype_datatype_t datatype,
+                     ConfigKeyVal *ckv_data) {
     operation_ = operation;
     datatype_ = datatype;
     ckv_ = ckv_data;
@@ -317,7 +329,7 @@ class IpcUtil {
   static upll_rc_t GetCtrlrTypeFromPhy(const char *ctrlr_name,
                                        upll_keytype_datatype_t dt,
                                        unc_keytype_ctrtype_t *ctrlr_type);
-  static upll_rc_t DriverResultCodeToKtURC(unc_keytype_ctrtype_t ctrlr_type,
+  static upll_rc_t DriverResultCodeToKtURC(unc_keytype_operation_t operation,
                                            uint32_t driver_result_code);
   static bool SendReqToDriver(const char *ctrlr_name, char *domain_id,
                               const char *service_name, pfc_ipcid_t service_id,
index f6e9df95d7bf8bbc97c7d248399c754abe4e5307..64045eb536e43ad7d83bbd80dc742fe0f5ec7c01 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -140,14 +140,17 @@ const char *IpctSt::kIpcStrStKeyVbrPolicingmapEntry =
     "key_vbr_policingmap_entry";
 const char *IpctSt::kIpcStrStKeyVbrifPolicingmapEntry =
     "key_vbrif_policingmap_entry";
-  // Add Driver structures below
+// Add Driver structures below
 const char *IpctSt::kIpcStrStPfcdrvValVbrIf = "pfcdrv_val_vbr_if";
 const char *IpctSt::kIpcStrStPfcdrvValVbrifVextif = "pfcdrv_val_vbrif_vextif";
 const char *IpctSt::kIpcStrStPfcdrvValFlowfilterEntry =
     "pfcdrv_val_flowfilter_entry";
 const char *IpctSt::kIpcStrStPfcdrvValVbrifPolicingmap =
     "pfcdrv_val_vbrif_policingmap";
-  // Add Physical structures below
+/* VlanmapOnBoundary: Added new val struct */
+const char *IpctSt::kIpcStrStPfcdrvValVlanMap =
+    "pfcdrv_val_vlan_map";
+// Add Physical structures below
 const char *IpctSt::kIpcStrStKeyCtr = "key_ctr";
 const char *IpctSt::kIpcStrStValCtr = "val_ctr";
 const char *IpctSt::kIpcStrStValCtrSt = "val_ctr_st";
@@ -159,9 +162,11 @@ const char *IpctSt::kIpcStrStKeyBoundary = "key_boundary";
 const char *IpctSt::kIpcStrStValBoundary = "val_boundary";
 const char *IpctSt::kIpcStrStValBoundarySt = "val_boundary_st";
 const char *IpctSt::kIpcStrStValPathFaultAlarm = "val_path_fault_alarm";
-  // Add Overlay Driver structures below
+// Add Overlay Driver structures below
 const char *IpctSt::kIpcStrStVnpdrvValVtunnel = "vnpdrv_val_vtunnel";
 const char *IpctSt::kIpcStrStVnpdrvValVtunnelIf ="vnpdrv_val_vtunnel_if";
+// Add vtn dataflow structure below
+const char *IpctSt::kIpcStrStKeyVtnDataflow ="key_vtn_dataflow";
 
 std::map<std::string, const pfc_ipcstdef_t*> IpctSt::ipc_stdef_smap_;
 std::map<IpctSt::IpcStructNum, const pfc_ipcstdef_t*> IpctSt::ipc_stdef_nmap_;
@@ -508,6 +513,10 @@ void IpctSt::RegisterAll() {
   REGISTER_STDEF(pfcdrv_val_vbrif_policingmap,
                  kIpcStrStPfcdrvValVbrifPolicingmap,
                  kIpcStPfcdrvValVbrifPolicingmap);
+  /* VlanmapOnBoundary: Added new val struct */
+  REGISTER_STDEF(pfcdrv_val_vlan_map,
+                 kIpcStrStPfcdrvValVlanMap,
+                 kIpcStPfcdrvValVlanMap);
   // Add Physical structures below
   REGISTER_STDEF(key_ctr,
                  kIpcStrStKeyCtr,
@@ -546,6 +555,9 @@ void IpctSt::RegisterAll() {
   REGISTER_STDEF(vnpdrv_val_vtunnel_if,
                  kIpcStrStVnpdrvValVtunnelIf,
                  kIpcStVnpdrvValVtunnelIf);
+  REGISTER_STDEF(key_vtn_dataflow,
+                 kIpcStrStKeyVtnDataflow,
+                 kIpcStKeyVtnDataflow);
 }
 
 }  // namespace ipc_util
index 3713e9e60bc7daef6c5399f56758b50a05a10285..72f081a7fa62aeb34b8a6174210cc00094d38a84 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -138,12 +138,15 @@ class IpctSt {
   static const char *kIpcStrStValPolicingmapController;
   static const char *kIpcStrStKeyVbrPolicingmapEntry;
   static const char *kIpcStrStKeyVbrifPolicingmapEntry;
+  static const char *kIpcStrStKeyVtnDataflow;
   // Driver structures
   static const char *kIpcStrStPfcdrvValVbrIf;
   static const char *kIpcStrStPfcdrvValVbrifVextif;
   static const char *kIpcStrStPfcdrvValFlowfilterEntry;
   static const char *kIpcStrStPfcdrvValVbrifPolicingmap;
-      // Physical strucures
+  /* VlanmapOnBoundary: New val struct */
+  static const char *kIpcStrStPfcdrvValVlanMap;
+  // Physical strucures
   static const char *kIpcStrStKeyCtr;
   static const char *kIpcStrStValCtr;
   static const char *kIpcStrStValCtrSt;
@@ -288,6 +291,8 @@ class IpctSt {
     kIpcStPfcdrvValVbrifVextif,
     kIpcStPfcdrvValFlowfilterEntry,
     kIpcStPfcdrvValVbrifPolicingmap,
+    /* VlanmapOnBoundary: New val struct */
+    kIpcStPfcdrvValVlanMap,
     // Physical structures
     kIpcStKeyCtr,
     kIpcStValCtr,
@@ -302,29 +307,35 @@ class IpctSt {
     kIpcStValPathFaultAlarm,
     // Overlay Driver structures
     kIpcStVnpdrvValVtunnel,
-    kIpcStVnpdrvValVtunnelIf
+    kIpcStVnpdrvValVtunnelIf,
+    // Vtn DataFlow Structures
+    kIpcStKeyVtnDataflow
   };  // enum IpcStructNum
 
   static uint32_t Register(const char *stname, IpcStructNum stnum);
   static void RegisterAll();
 
   static IpcStructNum GetIpcStNum(const char *stname) {
-    std::string str = stname;
-    if (ipc_strname_to_stnum_map_.count(str))
-      return ipc_strname_to_stnum_map_[str];
+    std::map<std::string, IpcStructNum>::iterator it =
+        ipc_strname_to_stnum_map_.find(stname);
+    if (it !=  ipc_strname_to_stnum_map_.end())
+      return it->second;
     else
       return kIpcInvalidStNum;
   }
   static const pfc_ipcstdef_t *GetIpcStdef(const char *stname) {
-    std::string str = stname;
-    if (ipc_stdef_smap_.count(str))
-      return ipc_stdef_smap_[str];
+    std::map<std::string, const pfc_ipcstdef_t*>::iterator it =
+        ipc_stdef_smap_.find(stname);
+    if (it != ipc_stdef_smap_.end())
+      return it->second;
     else
       return NULL;
   }
   static const pfc_ipcstdef_t *GetIpcStdef(IpcStructNum st_num) {
-    if (ipc_stdef_nmap_.count(st_num))
-      return ipc_stdef_nmap_[st_num];
+    std::map<IpcStructNum, const pfc_ipcstdef_t*>::iterator it =
+        ipc_stdef_nmap_.find(st_num);
+    if (it != ipc_stdef_nmap_.end())
+      return it->second;
     else
       return NULL;
   }
index 95a33c49632a5b6db3907c596fd01fe62efb7cbb..e7fa43c0c539ab869d306bc77854bea05da069b3 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -17,76 +17,76 @@ namespace unc {
 namespace upll {
 namespace kt_momgr {
 
-  uint16_t IpRouteMoMgr::kIpRouteNumChildKey = 4;
+uint16_t IpRouteMoMgr::kIpRouteNumChildKey = 4;
 
 BindInfo IpRouteMoMgr::ip_route_bind_info[] = {
-    { uudst::static_ip_route::kDbiVtnName, CFG_KEY, offsetof(
-        key_static_ip_route, vrt_key.vtn_key.vtn_name),
-      uud::kDalChar, 32 },
-    { uudst::static_ip_route::kDbiVrouterName, CFG_KEY, offsetof(
-        key_static_ip_route, vrt_key.vrouter_name),
-      uud::kDalChar, 32 },
-    { uudst::static_ip_route::kDbiDstIpAddr, CFG_KEY, offsetof(
-        key_static_ip_route, dst_addr.s_addr),
-      uud::kDalUint32, 1 },
-    { uudst::static_ip_route::kDbiMask, CFG_KEY, offsetof(key_static_ip_route,
-                                                          dst_addr_prefixlen),
-      uud::kDalUint8, 1 },
-    { uudst::static_ip_route::kDbiNextHopAddr, CFG_KEY, offsetof(
-        key_static_ip_route, next_hop_addr.s_addr),
-      uud::kDalUint32, 1 },
-    { uudst::static_ip_route::kDbiNwmName, CFG_KEY, offsetof(
-        key_static_ip_route, nwm_name),
-      uud::kDalChar, 32 },
-    { uudst::static_ip_route::kDbiMetric, CFG_VAL, offsetof(val_static_ip_route,
-                                                            group_metric),
-      uud::kDalUint16, 1 },
-    { uudst::static_ip_route::kDbiCtrlrName, CK_VAL, offsetof(key_user_data,
-                                                              ctrlr_id),
-      uud::kDalChar, 32 },
-    { uudst::static_ip_route::kDbiDomainId, CK_VAL, offsetof(key_user_data,
-                                                             domain_id),
-      uud::kDalChar, 32 },
-    { uudst::static_ip_route::kDbiValidMetric, CFG_META_VAL, offsetof(
-        val_static_ip_route, valid[UPLL_IDX_GROUP_METRIC_SIR]),
-      uud::kDalUint8, 1 },
-    { uudst::static_ip_route::kDbiCsMetric, CS_VAL, offsetof(
-        val_static_ip_route, cs_attr[UPLL_IDX_GROUP_METRIC_SIR]),
-      uud::kDalUint8, 1 },
-    { uudst::static_ip_route::kDbiCsRowstatus, CS_VAL, offsetof(
-        val_static_ip_route, cs_row_status),
-      uud::kDalUint8, 1 },
-    { uudst::static_ip_route::kDbiFlags, CK_VAL, offsetof(key_user_data, flags),
-      uud::kDalUint8, 1 }, };
+  { uudst::static_ip_route::kDbiVtnName, CFG_KEY, offsetof(
+          key_static_ip_route, vrt_key.vtn_key.vtn_name),
+  uud::kDalChar, 32 },
+  { uudst::static_ip_route::kDbiVrouterName, CFG_KEY, offsetof(
+          key_static_ip_route, vrt_key.vrouter_name),
+  uud::kDalChar, 32 },
+  { uudst::static_ip_route::kDbiDstIpAddr, CFG_KEY, offsetof(
+          key_static_ip_route, dst_addr.s_addr),
+  uud::kDalUint32, 1 },
+  { uudst::static_ip_route::kDbiMask, CFG_KEY, offsetof(key_static_ip_route,
+                                                        dst_addr_prefixlen),
+  uud::kDalUint8, 1 },
+  { uudst::static_ip_route::kDbiNextHopAddr, CFG_KEY, offsetof(
+          key_static_ip_route, next_hop_addr.s_addr),
+  uud::kDalUint32, 1 },
+  { uudst::static_ip_route::kDbiNwmName, CFG_KEY, offsetof(
+          key_static_ip_route, nwm_name),
+  uud::kDalChar, 32 },
+  { uudst::static_ip_route::kDbiMetric, CFG_VAL, offsetof(val_static_ip_route,
+                                                          group_metric),
+  uud::kDalUint16, 1 },
+  { uudst::static_ip_route::kDbiCtrlrName, CK_VAL, offsetof(key_user_data,
+                                                            ctrlr_id),
+  uud::kDalChar, 32 },
+  { uudst::static_ip_route::kDbiDomainId, CK_VAL, offsetof(key_user_data,
+                                                           domain_id),
+  uud::kDalChar, 32 },
+  { uudst::static_ip_route::kDbiValidMetric, CFG_META_VAL, offsetof(
+          val_static_ip_route, valid[UPLL_IDX_GROUP_METRIC_SIR]),
+  uud::kDalUint8, 1 },
+  { uudst::static_ip_route::kDbiCsMetric, CS_VAL, offsetof(
+          val_static_ip_route, cs_attr[UPLL_IDX_GROUP_METRIC_SIR]),
+  uud::kDalUint8, 1 },
+  { uudst::static_ip_route::kDbiCsRowstatus, CS_VAL, offsetof(
+          val_static_ip_route, cs_row_status),
+  uud::kDalUint8, 1 },
+  { uudst::static_ip_route::kDbiFlags, CK_VAL, offsetof(key_user_data, flags),
+    uud::kDalUint8, 1 }, };
 
 BindInfo IpRouteMoMgr::key_ip_route_maintbl_update_bind_info[] = {
-    { uudst::static_ip_route::kDbiVtnName, CFG_MATCH_KEY, offsetof(
-        key_static_ip_route_t, vrt_key.vtn_key.vtn_name),
-      uud::kDalChar, kMaxLenVtnName + 1 },
-    { uudst::static_ip_route::kDbiVrouterName, CFG_MATCH_KEY, offsetof(
-        key_static_ip_route_t, vrt_key.vrouter_name),
-      uud::kDalChar, kMaxLenVnodeName + 1 },
-    { uudst::static_ip_route::kDbiNwmName, CFG_MATCH_KEY, offsetof(
-        key_static_ip_route, nwm_name),
-      uud::kDalChar, kMaxLenVnodeName + 1 },
-    { uudst::static_ip_route::kDbiVtnName, CFG_INPUT_KEY, offsetof(
-        key_rename_vnode_info_t, new_unc_vtn_name),
-      uud::kDalChar, kMaxLenVtnName + 1 },
-    { uudst::static_ip_route::kDbiVrouterName, CFG_INPUT_KEY, offsetof(
-        key_rename_vnode_info_t, new_unc_vnode_name),
-      uud::kDalChar, kMaxLenVnodeName + 1 },
-    { uudst::static_ip_route::kDbiFlags, CK_VAL, offsetof(
-        key_user_data_t, flags),
-      uud::kDalUint8, 1 } };
+  { uudst::static_ip_route::kDbiVtnName, CFG_MATCH_KEY, offsetof(
+          key_static_ip_route_t, vrt_key.vtn_key.vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1 },
+  { uudst::static_ip_route::kDbiVrouterName, CFG_MATCH_KEY, offsetof(
+          key_static_ip_route_t, vrt_key.vrouter_name),
+  uud::kDalChar, kMaxLenVnodeName + 1 },
+  { uudst::static_ip_route::kDbiNwmName, CFG_MATCH_KEY, offsetof(
+          key_static_ip_route, nwm_name),
+  uud::kDalChar, kMaxLenVnodeName + 1 },
+  { uudst::static_ip_route::kDbiVtnName, CFG_INPUT_KEY, offsetof(
+          key_rename_vnode_info_t, new_unc_vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1 },
+  { uudst::static_ip_route::kDbiVrouterName, CFG_INPUT_KEY, offsetof(
+          key_rename_vnode_info_t, new_unc_vnode_name),
+  uud::kDalChar, kMaxLenVnodeName + 1 },
+  { uudst::static_ip_route::kDbiFlags, CK_VAL, offsetof(
+          key_user_data_t, flags),
+  uud::kDalUint8, 1 } };
 
 IpRouteMoMgr::IpRouteMoMgr() {
   UPLL_FUNC_TRACE
-  ntable = MAX_MOMGR_TBLS;
+      ntable = MAX_MOMGR_TBLS;
   table = new Table *[ntable];
   table[MAINTBL] = new Table(uudst::kDbiStaticIpRouteTbl, UNC_KT_VRT_IPROUTE,
-                         ip_route_bind_info, IpctSt::kIpcStKeyStaticIpRoute,
-                         IpctSt::kIpcStValStaticIpRoute,
-                         uudst::static_ip_route::kDbiStaticIpRouteNumCols);
+                             ip_route_bind_info, IpctSt::kIpcStKeyStaticIpRoute,
+                             IpctSt::kIpcStValStaticIpRoute,
+                             uudst::static_ip_route::kDbiStaticIpRouteNumCols);
   table[RENAMETBL] = NULL;
   table[CTRLRTBL] = NULL;
   nchild = 0;
@@ -116,7 +116,7 @@ upll_rc_t IpRouteMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   if (ikey->get_key_type() != UNC_KT_VRT_IPROUTE) result_code =
-      UPLL_RC_ERR_CFG_SYNTAX;
+    UPLL_RC_ERR_CFG_SYNTAX;
   return result_code;
 }
 
@@ -177,7 +177,7 @@ bool IpRouteMoMgr::IsValidKey(void *key, uint64_t index) {
       }
       break;
     default:
-//      UPLL_LOG_TRACE("Invalid Key Index %d", index);
+      //      UPLL_LOG_TRACE("Invalid Key Index %d", index);
       break;
   }
   return true;
@@ -241,8 +241,9 @@ upll_rc_t IpRouteMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
       if (strlen(reinterpret_cast<char *>
                  (reinterpret_cast<key_static_ip_route *>(pkey)->nwm_name))) {
         uuu::upll_strncpy(vrt_ip_route->nwm_name,
-                      reinterpret_cast<key_static_ip_route *>(pkey)->nwm_name,
-                      (kMaxLenNwmName + 1));
+                          reinterpret_cast<key_static_ip_route *>
+                          (pkey)->nwm_name,
+                          (kMaxLenNwmName + 1));
       }
       vrt_ip_route->dst_addr.s_addr =
           reinterpret_cast<key_static_ip_route *>(pkey)->dst_addr.s_addr;
@@ -252,7 +253,7 @@ upll_rc_t IpRouteMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
           reinterpret_cast<key_static_ip_route *>(pkey)->next_hop_addr.s_addr;
       break;
     default:
-      if (!okey || !(okey->get_key()))
+      if (!okey)
         free(vrt_ip_route);
       return UPLL_RC_ERR_GENERIC;
   }
@@ -285,11 +286,11 @@ upll_rc_t IpRouteMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
       (ikey->get_key());
   if (!pkey) return UPLL_RC_ERR_GENERIC;
   key_vrt *vrt_key = reinterpret_cast<key_vrt *>
-    (ConfigKeyVal::Malloc(sizeof(key_vrt)));
+      (ConfigKeyVal::Malloc(sizeof(key_vrt)));
   uuu::upll_strncpy(vrt_key->vtn_key.vtn_name,
-         pkey->vrt_key.vtn_key.vtn_name, (kMaxLenVtnName + 1));
+                    pkey->vrt_key.vtn_key.vtn_name, (kMaxLenVtnName + 1));
   uuu::upll_strncpy(vrt_key->vrouter_name,
-         pkey->vrt_key.vrouter_name, (kMaxLenVnodeName + 1));
+                    pkey->vrt_key.vrouter_name, (kMaxLenVnodeName + 1));
   okey = new ConfigKeyVal(UNC_KT_VROUTER, IpctSt::kIpcStKeyVrt, vrt_key, NULL);
   if (okey == NULL) {
     free(vrt_key);
@@ -337,7 +338,7 @@ upll_rc_t IpRouteMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
       }
       val_static_ip_route *vrt_val =
           reinterpret_cast<val_static_ip_route *>(ConfigKeyVal::Malloc(
-          sizeof(val_static_ip_route)));
+                  sizeof(val_static_ip_route)));
       memcpy(vrt_val, ival, sizeof(val_static_ip_route));
       tmp1 = new ConfigVal(IpctSt::kIpcStValStaticIpRoute, vrt_val);
     }
@@ -352,7 +353,7 @@ upll_rc_t IpRouteMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
   }
   key_static_ip_route *vrt_key =
       reinterpret_cast<key_static_ip_route *>(ConfigKeyVal::Malloc(
-      sizeof(key_static_ip_route)));
+              sizeof(key_static_ip_route)));
   memcpy(vrt_key, ikey, sizeof(key_static_ip_route));
   okey = new ConfigKeyVal(UNC_KT_VRT_IPROUTE, IpctSt::kIpcStKeyStaticIpRoute,
                           vrt_key, tmp1);
@@ -368,14 +369,14 @@ upll_rc_t IpRouteMoMgr::UpdateConfigStatus(ConfigKeyVal *ikey,
                                            ConfigKeyVal *ctrlr_key) {
   UPLL_FUNC_TRACE;
   val_static_ip_route *vrt_val =
-     static_cast<val_static_ip_route *>(GetVal(ikey));
+      static_cast<val_static_ip_route *>(GetVal(ikey));
   if (vrt_val == NULL) return UPLL_RC_ERR_GENERIC;
   val_static_ip_route *vrt_val2 =
       reinterpret_cast<val_static_ip_route *>(GetVal(upd_key));
 
   unc_keytype_configstatus_t cs_status =
       (driver_result == UPLL_RC_SUCCESS) ? UNC_CS_APPLIED
-                                         : UNC_CS_NOT_APPLIED;
+      : UNC_CS_NOT_APPLIED;
   UPLL_LOG_TRACE("%s", (ikey->ToStrAll()).c_str());
   if (op == UNC_OP_CREATE) {
     vrt_val->cs_row_status = cs_status;
@@ -391,22 +392,25 @@ upll_rc_t IpRouteMoMgr::UpdateConfigStatus(ConfigKeyVal *ikey,
        loop < (sizeof(vrt_val->valid) / sizeof(vrt_val->valid[0]));
        ++loop) {
     if ((UNC_VF_VALID == vrt_val->valid[loop])
-          || (UNC_VF_VALID_NO_VALUE == vrt_val->valid[loop])) {
-        vrt_val->cs_attr[loop] = cs_status;
+        || (UNC_VF_VALID_NO_VALUE == vrt_val->valid[loop])) {
+      vrt_val->cs_attr[loop] = cs_status;
     } else if ((UNC_VF_INVALID == vrt_val->valid[loop]) &&
                (UNC_OP_CREATE == op)) {
-        vrt_val->cs_attr[loop] = UNC_CS_APPLIED;
+      vrt_val->cs_attr[loop] = UNC_CS_APPLIED;
     } else if ((UNC_VF_INVALID == vrt_val->valid[loop]) &&
                (UNC_OP_UPDATE == op)) {
-        vrt_val->cs_attr[loop] = vrt_val2->cs_attr[loop];
+      vrt_val->cs_attr[loop] = vrt_val2->cs_attr[loop];
     }
   }
   return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t IpRouteMoMgr::UpdateAuditConfigStatus(
-    unc_keytype_configstatus_t cs_status, uuc::UpdateCtrlrPhase phase,
-    ConfigKeyVal *&ckv_running) {
+    unc_keytype_configstatus_t cs_status,
+    uuc::UpdateCtrlrPhase phase,
+    ConfigKeyVal *&ckv_running,
+    DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_static_ip_route_t *val;
   val = (ckv_running != NULL) ?
@@ -416,13 +420,13 @@ upll_rc_t IpRouteMoMgr::UpdateAuditConfigStatus(
   }
   if (uuc::kUpllUcpCreate == phase) val->cs_row_status = cs_status;
   if ((uuc::kUpllUcpUpdate == phase) &&
-           (val->cs_row_status == UNC_CS_INVALID ||
-            val->cs_row_status == UNC_CS_NOT_APPLIED))
+      (val->cs_row_status == UNC_CS_INVALID ||
+       val->cs_row_status == UNC_CS_NOT_APPLIED))
     val->cs_row_status = cs_status;
   for (unsigned int loop = 0; loop < sizeof(val->valid) / sizeof(uint8_t);
-      ++loop) {
+       ++loop) {
     if ((cs_status == UNC_CS_INVALID && UNC_VF_VALID == val->valid[loop]) ||
-         cs_status == UNC_CS_APPLIED) {
+        cs_status == UNC_CS_APPLIED) {
       val->cs_attr[loop] = cs_status;
     }
   }
@@ -445,7 +449,7 @@ upll_rc_t IpRouteMoMgr::ValidateMessage(IpcReqRespHeader *req,
   upll_rc_t ret_val = UPLL_RC_SUCCESS;
   if (ikey->get_st_num() != IpctSt::kIpcStKeyStaticIpRoute) {
     UPLL_LOG_DEBUG("Invalid key structure received. received struct - %d",
-                  ikey->get_st_num());
+                   ikey->get_st_num());
     return UPLL_RC_ERR_BAD_REQUEST;
   }
   key_static_ip_route *iproute_key =
@@ -466,7 +470,7 @@ upll_rc_t IpRouteMoMgr::ValidateMessage(IpcReqRespHeader *req,
       if (NULL == ikey->get_cfg_val()) {
         UPLL_LOG_DEBUG("ConfigVal struct is empty");
         if (UNC_OP_UPDATE == op) {
-           return UPLL_RC_ERR_BAD_REQUEST;
+          return UPLL_RC_ERR_BAD_REQUEST;
         } else {
           return UPLL_RC_SUCCESS;
         }
@@ -478,7 +482,8 @@ upll_rc_t IpRouteMoMgr::ValidateMessage(IpcReqRespHeader *req,
         return UPLL_RC_ERR_BAD_REQUEST;
       }
       val_static_ip_route *iproute_val =
-        reinterpret_cast<val_static_ip_route*>(ikey->get_cfg_val()->get_val());
+          reinterpret_cast<val_static_ip_route*>
+          (ikey->get_cfg_val()->get_val());
       if (iproute_val == NULL) {
         UPLL_LOG_DEBUG("val struct is mandatory for create and update op");
         return UPLL_RC_ERR_BAD_REQUEST;
@@ -494,7 +499,8 @@ upll_rc_t IpRouteMoMgr::ValidateMessage(IpcReqRespHeader *req,
       return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
     }
   } else if (op == UNC_OP_READ || op == UNC_OP_READ_SIBLING
-      || op == UNC_OP_READ_SIBLING_BEGIN || op == UNC_OP_READ_SIBLING_COUNT) {
+             || op == UNC_OP_READ_SIBLING_BEGIN ||
+             op == UNC_OP_READ_SIBLING_COUNT) {
     if (dt_type == UPLL_DT_CANDIDATE || dt_type == UPLL_DT_RUNNING
         || dt_type == UPLL_DT_STARTUP || dt_type == UPLL_DT_STATE) {
       if (opt1 != UNC_OPT1_NORMAL) {
@@ -548,7 +554,7 @@ upll_rc_t IpRouteMoMgr::ValidateMessage(IpcReqRespHeader *req,
 }
 
 upll_rc_t IpRouteMoMgr::ValidateIpRouteKey(key_static_ip_route *iproute_key,
-                          unc_keytype_operation_t operation) {
+                                           unc_keytype_operation_t operation) {
   UPLL_FUNC_TRACE;
   upll_rc_t ret_val = UPLL_RC_SUCCESS;
 
@@ -557,7 +563,7 @@ upll_rc_t IpRouteMoMgr::ValidateIpRouteKey(key_static_ip_route *iproute_key,
       kMinLenVtnName, kMaxLenVtnName);
   if (ret_val != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("syntax check failed. vtn_name - %s",
-                  iproute_key->vrt_key.vtn_key.vtn_name);
+                   iproute_key->vrt_key.vtn_key.vtn_name);
     return UPLL_RC_ERR_CFG_SYNTAX;
   }
   ret_val = ValidateKey(
@@ -565,7 +571,7 @@ upll_rc_t IpRouteMoMgr::ValidateIpRouteKey(key_static_ip_route *iproute_key,
       kMinLenVnodeName, kMaxLenVnodeName);
   if (ret_val != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("syntax check failed. vrouter name -%s",
-                  iproute_key->vrt_key.vrouter_name);
+                   iproute_key->vrt_key.vrouter_name);
     return UPLL_RC_ERR_CFG_SYNTAX;
   }
 
@@ -584,34 +590,34 @@ upll_rc_t IpRouteMoMgr::ValidateIpRouteKey(key_static_ip_route *iproute_key,
     UPLL_LOG_DEBUG("Currently nwm name is not supported for this KT");
     return UPLL_RC_ERR_CFG_SYNTAX;
     /*
-    ret_val = ValidateKey(reinterpret_cast<char *>(iproute_key->nwm_name),
-                          kMinLenNwmName,
-                          kMaxLenNwmName);
-    if (ret_val != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("syntax check failed. nwm name - %s", iproute_key->nwm_name);
-      return UPLL_RC_ERR_CFG_SYNTAX;
-    }
-    */
+       ret_val = ValidateKey(reinterpret_cast<char *>(iproute_key->nwm_name),
+       kMinLenNwmName,
+       kMaxLenNwmName);
+       if (ret_val != UPLL_RC_SUCCESS) {
+       UPLL_LOG_DEBUG("syntax check failed. nwm name - %s", iproute_key->nwm_name);
+       return UPLL_RC_ERR_CFG_SYNTAX;
+       }
+       */
   }
 
   // TODO(s): Need to validate if inputs are given
   if (!ValidateNumericRange(iproute_key->dst_addr_prefixlen,
-                          (uint8_t) kMinIpRoutePrefix,
-                          (uint8_t) kMaxIpRoutePrefix,
-                          true, true)) {
+                            (uint8_t) kMinIpRoutePrefix,
+                            (uint8_t) kMaxIpRoutePrefix,
+                            true, true)) {
     UPLL_LOG_DEBUG("Numeric range check failed. dst_addr_prefixlen - %d",
-                  iproute_key->dst_addr_prefixlen);
+                   iproute_key->dst_addr_prefixlen);
     return UPLL_RC_ERR_CFG_SYNTAX;
   }
   if (iproute_key->dst_addr.s_addr == 0xffffffff) {
     UPLL_LOG_DEBUG("Bad destination address. addr:0x%08x",
-                  iproute_key->dst_addr.s_addr);
+                   iproute_key->dst_addr.s_addr);
     return UPLL_RC_ERR_CFG_SYNTAX;
   }
   if (iproute_key->next_hop_addr.s_addr == 0x00000000 ||
       iproute_key->next_hop_addr.s_addr == 0xffffffff) {
     UPLL_LOG_DEBUG("Bad next hop address. addr:0x%08x",
-                  iproute_key->next_hop_addr.s_addr);
+                   iproute_key->next_hop_addr.s_addr);
     return UPLL_RC_ERR_CFG_SYNTAX;
   }
   return UPLL_RC_SUCCESS;
@@ -629,20 +635,20 @@ upll_rc_t IpRouteMoMgr::ValidateIpRouteValue(val_static_ip_route *iproute_val,
     return UPLL_RC_ERR_CFG_SYNTAX;
   }
   /*
-  if (iproute_val->valid[UPLL_IDX_GROUP_METRIC_SIR] == UNC_VF_VALID) {
-    if (!ValidateNumericRange(iproute_val->group_metric,
-                              (uint16_t) kMinLenGroupMetric,
-                              (uint16_t) kMaxLenGroupMetric, true, true)) {
-      UPLL_LOG_DEBUG(
-          "Numeric range check failure for vrt_ip_route_val->group_metric");
-      return UPLL_RC_ERR_CFG_SYNTAX;
-    }
-  } else if (iproute_val->valid[UPLL_IDX_GROUP_METRIC_SIR]
-      == UNC_VF_VALID_NO_VALUE
-      && (op == UNC_OP_CREATE || op == UNC_OP_UPDATE)) {
-    iproute_val->group_metric = 0;
-  }
-  */
+     if (iproute_val->valid[UPLL_IDX_GROUP_METRIC_SIR] == UNC_VF_VALID) {
+     if (!ValidateNumericRange(iproute_val->group_metric,
+     (uint16_t) kMinLenGroupMetric,
+     (uint16_t) kMaxLenGroupMetric, true, true)) {
+     UPLL_LOG_DEBUG(
+     "Numeric range check failure for vrt_ip_route_val->group_metric");
+     return UPLL_RC_ERR_CFG_SYNTAX;
+     }
+     } else if (iproute_val->valid[UPLL_IDX_GROUP_METRIC_SIR]
+     == UNC_VF_VALID_NO_VALUE
+     && (op == UNC_OP_CREATE || op == UNC_OP_UPDATE)) {
+     iproute_val->group_metric = 0;
+     }
+     */
   return UPLL_RC_SUCCESS;
 }
 
@@ -658,7 +664,7 @@ upll_rc_t IpRouteMoMgr::ValidateCapability(IpcReqRespHeader *req,
 
   if (!ctrlr_name) {
     ctrlr_name = reinterpret_cast<char*>((reinterpret_cast<key_user_data_t *>
-                  (ikey->get_user_data()))->ctrlr_id);
+                                          (ikey->get_user_data()))->ctrlr_id);
     if (!ctrlr_name || !strlen(ctrlr_name)) {
       UPLL_LOG_DEBUG("Controller Name is NULL");
       return UPLL_RC_ERR_GENERIC;
@@ -675,13 +681,6 @@ upll_rc_t IpRouteMoMgr::ValidateCapability(IpcReqRespHeader *req,
       result_code = GetCreateCapability(ctrlr_name, ikey->get_key_type(),
                                         &max_instance_count, &max_attrs,
                                         &attrs);
-      if (result_code && (max_instance_count != 0) &&
-         (cur_instance_count >= max_instance_count)) {
-        UPLL_LOG_DEBUG("[%s:%d:%s Instance count %d exceeds %d", __FILE__,
-                      __LINE__, __FUNCTION__, cur_instance_count,
-                      max_instance_count);
-        return UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
-      }
       break;
 
     case UNC_OP_UPDATE:
@@ -701,12 +700,12 @@ upll_rc_t IpRouteMoMgr::ValidateCapability(IpcReqRespHeader *req,
   }
   if (!result_code) {
     UPLL_LOG_DEBUG("key_type - %d is not supported by controller - %s",
-                  ikey->get_key_type(), ctrlr_name);
+                   ikey->get_key_type(), ctrlr_name);
     return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
   }
   val_static_ip_route *iproute_val = NULL;
   if ((ikey->get_cfg_val()) && (ikey->get_cfg_val()->get_st_num() ==
-       IpctSt::kIpcStValStaticIpRoute)) {
+                                IpctSt::kIpcStValStaticIpRoute)) {
     iproute_val =
         reinterpret_cast<val_static_ip_route*>(ikey->get_cfg_val()->get_val());
   }
@@ -766,22 +765,22 @@ upll_rc_t IpRouteMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
     return UPLL_RC_ERR_GENERIC;
   }
   uuu::upll_strncpy(key_route->vrt_key.vtn_key.vtn_name,
-         key_rename->old_unc_vtn_name,
-         (kMaxLenVtnName + 1));
+                    key_rename->old_unc_vtn_name,
+                    (kMaxLenVtnName + 1));
   if (ikey->get_key_type() == UNC_KT_VROUTER) {
     if (!strlen(reinterpret_cast<char *>(key_rename->old_unc_vnode_name))) {
       free(key_route);
       return UPLL_RC_ERR_GENERIC;
     }
     uuu::upll_strncpy(key_route->vrt_key.vrouter_name,
-           key_rename->old_unc_vnode_name, (kMaxLenVnodeName + 1));
+                      key_rename->old_unc_vnode_name, (kMaxLenVnodeName + 1));
   } else {
     if (!strlen(reinterpret_cast<char *>(key_rename->new_unc_vnode_name))) {
       FREE_IF_NOT_NULL(key_route);
       return UPLL_RC_ERR_GENERIC;
     }
     uuu::upll_strncpy(key_route->vrt_key.vrouter_name,
-       key_rename->new_unc_vnode_name, (kMaxLenVnodeName+1));
+                      key_rename->new_unc_vnode_name, (kMaxLenVnodeName+1));
   }
 
 
@@ -811,20 +810,20 @@ bool IpRouteMoMgr::CompareValidValue(void *&val1, void *val2,
   val_static_ip_route_t *val_iprte2 =
       reinterpret_cast<val_static_ip_route_t *>(val2);
   for (unsigned int loop = 0;
-        loop < sizeof(val_iprte1->valid) / sizeof(uint8_t); ++loop) {
+       loop < sizeof(val_iprte1->valid) / sizeof(uint8_t); ++loop) {
     if (UNC_VF_INVALID == val_iprte1->valid[loop]
         && UNC_VF_VALID == val_iprte2->valid[loop])
-       val_iprte1->valid[loop] = UNC_VF_VALID_NO_VALUE;
+      val_iprte1->valid[loop] = UNC_VF_VALID_NO_VALUE;
   }
   if (UNC_VF_VALID == val_iprte1->valid[UPLL_IDX_GROUP_METRIC_SIR]
       && UNC_VF_VALID == val_iprte2->valid[UPLL_IDX_GROUP_METRIC_SIR]) {
     if (val_iprte1->group_metric == val_iprte2->group_metric)
       val_iprte1->valid[UPLL_IDX_GROUP_METRIC_SIR] =
-        (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   }
   for (unsigned int loop = 0;
        loop < (sizeof(val_iprte1->valid) / sizeof(val_iprte1->valid[0]));
-      ++loop) {
+       ++loop) {
     if ((UNC_VF_VALID == (uint8_t) val_iprte1->valid[loop]) ||
         (UNC_VF_VALID_NO_VALUE == (uint8_t) val_iprte1->valid[loop])) {
       invalid_attr = false;
@@ -848,8 +847,8 @@ upll_rc_t IpRouteMoMgr::MergeValidate(unc_key_type_t keytype,
                                       DalDmlIntf *dmi) {
   return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
   /* NEC changed the design so the below code is not required
-   */
-  #if 0
+  */
+#if 0
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutNone };
   ConfigKeyVal *tkey = NULL;
@@ -867,18 +866,18 @@ upll_rc_t IpRouteMoMgr::MergeValidate(unc_key_type_t keytype,
   travel_key = ikey;
   while (travel_key) {
     result_code = GetChildConfigKey(tkey, travel_key);
-    if (UPLL_RC_SUCCESS != result_code){
+    if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("GetChildConfigKey Failed");
       DELETE_IF_NOT_NULL(tkey);
       return result_code;
     }
     /*Check the network host name should not be present same vtn */
     memset(reinterpret_cast<key_static_ip_route_t*>
-    (tkey->get_key())->vrt_key.vrouter_name, 0, (kMaxLenVnodeName+1));
+           (tkey->get_key())->vrt_key.vrouter_name, 0, (kMaxLenVnodeName+1));
     reinterpret_cast<key_static_ip_route_t*>
         (tkey->get_key())->dst_addr.s_addr = 0;
     reinterpret_cast<key_static_ip_route_t*>
-          (tkey->get_key())->dst_addr_prefixlen = 0;
+        (tkey->get_key())->dst_addr_prefixlen = 0;
     reinterpret_cast<key_static_ip_route_t*>
         (tkey->get_key())->next_hop_addr.s_addr = 0;
     result_code = ReadConfigDB(tkey, UPLL_DT_CANDIDATE, UNC_OP_READ, dbop, dmi,
@@ -903,15 +902,15 @@ upll_rc_t IpRouteMoMgr::MergeValidate(unc_key_type_t keytype,
    * shows any error don't fix it.
    */
   return result_code;
-  #endif
+#endif
 }
 
 // Overridden Read Sibling from momgr_impl.
 // This keytype contains 4 child keys and needs special handling.
 upll_rc_t IpRouteMoMgr::ReadSiblingMo(IpcReqRespHeader *header,
-                                   ConfigKeyVal *ikey,
-                                   bool begin,
-                                   DalDmlIntf *dmi) {
+                                      ConfigKeyVal *ikey,
+                                      bool begin,
+                                      DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
   uint32_t result_count = 0;
@@ -937,7 +936,7 @@ upll_rc_t IpRouteMoMgr::ReadSiblingMo(IpcReqRespHeader *header,
 
   MoMgrTables tbl = MAINTBL;
   DbSubOp dbop = {kOpReadMultiple, kOpMatchNone,
-                     kOpInOutCtrlr | kOpInOutDomain | kOpInOutFlag};
+    kOpInOutCtrlr | kOpInOutDomain | kOpInOutFlag};
 
   if (UPLL_DT_RUNNING == header->datatype) {
     UPLL_LOG_TRACE("Status Flag enabled");
@@ -950,132 +949,133 @@ upll_rc_t IpRouteMoMgr::ReadSiblingMo(IpcReqRespHeader *header,
     case UPLL_DT_RUNNING:
     case UPLL_DT_STARTUP:
     case UPLL_DT_STATE:
-    {
-      // To read the record(s) from DB
-      upll_keytype_datatype_t dt_type = (header->datatype == UPLL_DT_STATE) ?
-                                        UPLL_DT_RUNNING : header->datatype;
-      ConfigVal *cval = ikey->get_cfg_val();
-      ConfigVal *new_cval = NULL;
-      AllocVal(new_cval, dt_type, MAINTBL);
-      if (new_cval == NULL) {
-        UPLL_LOG_DEBUG("Null new_cval after AllocVal");
-        return UPLL_RC_ERR_GENERIC;
-      }
+      {
+        // To read the record(s) from DB
+        upll_keytype_datatype_t dt_type = (header->datatype == UPLL_DT_STATE) ?
+            UPLL_DT_RUNNING : header->datatype;
+        ConfigVal *cval = ikey->get_cfg_val();
+        ConfigVal *new_cval = NULL;
+        AllocVal(new_cval, dt_type, MAINTBL);
+        if (new_cval == NULL) {
+          UPLL_LOG_DEBUG("Null new_cval after AllocVal");
+          return UPLL_RC_ERR_GENERIC;
+        }
 
-      if (cval != NULL && cval->get_val() != NULL) {
-        memcpy(new_cval->get_val(), cval->get_val(),
-               sizeof(val_static_ip_route));
-      }
-      ikey->SetCfgVal(new_cval);
+        if (cval != NULL && cval->get_val() != NULL) {
+          memcpy(new_cval->get_val(), cval->get_val(),
+                 sizeof(val_static_ip_route));
+        }
+        ikey->SetCfgVal(new_cval);
 
-      // Used in ReadConfigDB in each Iteration
-      ConfigKeyVal *queryckval = NULL;
-      result_code = DupConfigKeyVal(queryckval, ikey, MAINTBL);
-      if (result_code != UPLL_RC_SUCCESS || queryckval == NULL) {
-        UPLL_LOG_DEBUG("Error while DupConfigKeyVal");
-        return UPLL_RC_ERR_GENERIC;
-      }
+        // Used in ReadConfigDB in each Iteration
+        ConfigKeyVal *queryckval = NULL;
+        result_code = DupConfigKeyVal(queryckval, ikey, MAINTBL);
+        if (result_code != UPLL_RC_SUCCESS || queryckval == NULL) {
+          UPLL_LOG_DEBUG("Error while DupConfigKeyVal");
+          return UPLL_RC_ERR_GENERIC;
+        }
 
-      // uint16_t kIpRouteNumChildKey = 4;
-      bool fetched_from_query = false;
-      for (uint16_t childKeyIndex = uuds::TableNumPkCols(
-               uudst::kDbiStaticIpRouteTbl) - 1;
-           childKeyIndex >= uuds::TableNumPkCols(
-               uudst::kDbiStaticIpRouteTbl) - kIpRouteNumChildKey;
-           childKeyIndex--) {
-        if (IsValidKey(queryckval->get_key(), childKeyIndex) == false)
-          continue;
-        uint32_t tmp_count = header->rep_count;
-        result_code = ReadConfigDB(queryckval, dt_type, header->operation,
-                                   dbop, tmp_count, dmi, tbl);
+        // uint16_t kIpRouteNumChildKey = 4;
+        bool fetched_from_query = false;
+        for (uint16_t childKeyIndex = uuds::TableNumPkCols(
+                uudst::kDbiStaticIpRouteTbl) - 1;
+            childKeyIndex >= uuds::TableNumPkCols(
+                uudst::kDbiStaticIpRouteTbl) - kIpRouteNumChildKey;
+            childKeyIndex--) {
+          if (IsValidKey(queryckval->get_key(), childKeyIndex) == false)
+            continue;
+          uint32_t tmp_count = header->rep_count;
+          result_code = ReadConfigDB(queryckval, dt_type, header->operation,
+                                     dbop, tmp_count, dmi, tbl);
 
-        if (result_code == UPLL_RC_SUCCESS) {
-          ConfigKeyVal *qtmpckval = queryckval;
-          ConfigKeyVal *tmpckval = NULL;
-          ConfigKeyVal *appendckval = NULL;
-          // Iterating through all ConfigKeyVal from the result set
-          // and storing the result set in ikey
-          while (qtmpckval != NULL) {
-            if (result_count == header->rep_count) {
-              UPLL_LOG_TRACE("Fetched (%d) records", result_count);
-              delete queryckval;
-              return UPLL_RC_SUCCESS;
-            }
-            result_code = DupConfigKeyVal(tmpckval, qtmpckval, MAINTBL);
-            if (result_code != UPLL_RC_SUCCESS) {
-              UPLL_LOG_DEBUG("Error while DupConfigKeyVal");
-              if (queryckval)
+          if (result_code == UPLL_RC_SUCCESS) {
+            ConfigKeyVal *qtmpckval = queryckval;
+            ConfigKeyVal *tmpckval = NULL;
+            ConfigKeyVal *appendckval = NULL;
+            // Iterating through all ConfigKeyVal from the result set
+            // and storing the result set in ikey
+            while (qtmpckval != NULL) {
+              if (result_count == header->rep_count) {
+                UPLL_LOG_TRACE("Fetched (%d) records", result_count);
                 delete queryckval;
-              if (tmpckval)
-                delete tmpckval;
-              return UPLL_RC_ERR_GENERIC;
-            }
-            UPLL_LOG_TRACE("Appending ConfigKeyVal");
-            appendckval = tmpckval;
-            if (fetched_from_query == false) {
-              ikey->ResetWith(appendckval);
-              DELETE_IF_NOT_NULL(appendckval);
-              result_count++;
-              fetched_from_query = true;
+                return UPLL_RC_SUCCESS;
+              }
+              result_code = DupConfigKeyVal(tmpckval, qtmpckval, MAINTBL);
+              if (result_code != UPLL_RC_SUCCESS) {
+                UPLL_LOG_DEBUG("Error while DupConfigKeyVal");
+                if (queryckval)
+                  delete queryckval;
+                if (tmpckval)
+                  delete tmpckval;
+                return UPLL_RC_ERR_GENERIC;
+              }
+              UPLL_LOG_TRACE("Appending ConfigKeyVal");
+              appendckval = tmpckval;
+              if (fetched_from_query == false) {
+                ikey->ResetWith(appendckval);
+                DELETE_IF_NOT_NULL(appendckval);
+                result_count++;
+                fetched_from_query = true;
+              } else {
+                ikey->AppendCfgKeyVal(appendckval);
+                result_count++;
+              }
+              tmpckval = NULL;
+              qtmpckval = qtmpckval->get_next_cfg_key_val();
+            }  // while (qtmpckval != NULL)
+#if 0
+            // Copying the last available key structure for next iteration
+            if (appendckval != NULL && appendckval->get_key() != NULL) {
+              memcpy(queryckval->get_key(), appendckval->get_key(),
+                     sizeof(key_static_ip_route));
             } else {
-              ikey->AppendCfgKeyVal(appendckval);
-              result_count++;
+              memcpy(queryckval->get_key(), ikey->get_key(),
+                     sizeof(key_static_ip_route));
             }
-            tmpckval = NULL;
-            qtmpckval = qtmpckval->get_next_cfg_key_val();
-          }  // while (qtmpckval != NULL)
-#if 0
-          // Copying the last available key structure for next iteration
-          if (appendckval != NULL && appendckval->get_key() != NULL) {
-            memcpy(queryckval->get_key(), appendckval->get_key(),
-                   sizeof(key_static_ip_route));
-          } else {
-            memcpy(queryckval->get_key(), ikey->get_key(),
-                   sizeof(key_static_ip_route));
-          }
 #endif
-        } else if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-          UPLL_LOG_DEBUG("Error while ReadConfigDB");
-          delete queryckval;
-          return result_code;
-        }
+          } else if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+            UPLL_LOG_DEBUG("Error while ReadConfigDB");
+            delete queryckval;
+            return result_code;
+          }
 
-        // Preparing Child Key data for next Sibling Iteration
-        key_static_ip_route *key_ipr =
-            reinterpret_cast<key_static_ip_route *>(queryckval->get_key());
-        if (ResetDataForSibling(key_ipr,
-             (uudst::static_ip_route::kStaticIpRouteIndex)childKeyIndex)
-           == false) {
-          UPLL_LOG_DEBUG("Data Not Reset for the index(%d)", childKeyIndex);
-          delete queryckval;
-          return UPLL_RC_ERR_GENERIC;
-        }
-        if (GetVal(ikey)) {
-          memcpy(queryckval->get_cfg_val()->get_val(),
-                 ikey->get_cfg_val()->get_val(),
-                 sizeof(val_static_ip_route));
-        } else {
-          queryckval->SetCfgVal(NULL);
-        }
-        UPLL_LOG_TRACE("Next Query After Reset: %s",
-                       (queryckval->ToStrAll()).c_str());
-      }  // for
-      header->rep_count = result_count;
-      delete queryckval;
-      break;
-    }  // case
+          // Preparing Child Key data for next Sibling Iteration
+          key_static_ip_route *key_ipr =
+              reinterpret_cast<key_static_ip_route *>(queryckval->get_key());
+          if (ResetDataForSibling(key_ipr,
+                                  (uudst::static_ip_route::kStaticIpRouteIndex)
+                                  childKeyIndex)
+              == false) {
+            UPLL_LOG_DEBUG("Data Not Reset for the index(%d)", childKeyIndex);
+            delete queryckval;
+            return UPLL_RC_ERR_GENERIC;
+          }
+          if (GetVal(ikey)) {
+            memcpy(queryckval->get_cfg_val()->get_val(),
+                   ikey->get_cfg_val()->get_val(),
+                   sizeof(val_static_ip_route));
+          } else {
+            queryckval->SetCfgVal(NULL);
+          }
+          UPLL_LOG_TRACE("Next Query After Reset: %s",
+                         (queryckval->ToStrAll()).c_str());
+        }  // for
+        header->rep_count = result_count;
+        delete queryckval;
+        break;
+      }  // case
     default:
       break;
   }
 
   if (header->rep_count > 0) {
     result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)
-                  ? UPLL_RC_SUCCESS : result_code;
+        ? UPLL_RC_SUCCESS : result_code;
     if (result_code == UPLL_RC_SUCCESS) {
       result_code = AdaptValToVtnService(ikey);
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("AdaptValToVtnService failed result_code %d",
-                    result_code);
+                       result_code);
         return result_code;
       }
     }
@@ -1087,7 +1087,8 @@ upll_rc_t IpRouteMoMgr::ReadSiblingMo(IpcReqRespHeader *header,
 
 // To reset the data available in index to empty
 // Currently implemented only for child index
-bool IpRouteMoMgr::ResetDataForSibling(key_static_ip_route *key_ipr,
+bool IpRouteMoMgr::ResetDataForSibling(
+    key_static_ip_route *key_ipr,
     uudst::static_ip_route::kStaticIpRouteIndex index) {
   switch (index) {
     case uudst::static_ip_route::kDbiDstIpAddr:
index 7ea7175626b2c18dab0eaaf4cdf4fa0140563323..92121243c5c3b4fabb72ad1ca89490e28ff19cb8 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -25,237 +25,239 @@ namespace uuds = unc::upll::dal::schema;
 namespace uudst = unc::upll::dal::schema::table;
 
 class IpRouteMoMgr : public VnodeChildMoMgr {
-  private:
-    static BindInfo ip_route_bind_info[];
-    static BindInfo key_ip_route_maintbl_update_bind_info[];
-    /**
-     * @brief  Gets the valid array position of the variable in the value
-     *         structure from the table in the specified configuration
-     *
-     * @param[in]     val      pointer to the value structure
-     * @param[in]     indx     database index for the variable
-     * @param[out]    valid    position of the variable in the valid array -
-     *                          NULL if valid does not exist.
-     * @param[in]     dt_type  specifies the configuration
-     * @param[in]     tbl      specifies the table containing the given value
-     *
-     **/
-    upll_rc_t GetValid(void *val, uint64_t indx, uint8_t *&valid,
-                       upll_keytype_datatype_t dt_type, MoMgrTables tbl) {
-      if (val == NULL) return UPLL_RC_ERR_GENERIC;
-      if (tbl == MAINTBL) {
-        switch (indx) {
-          case uudst::static_ip_route::kDbiMetric:
-            valid = &(reinterpret_cast<val_static_ip_route*>
-                      (val))->valid[UPLL_IDX_GROUP_METRIC_SIR];
-            break;
-          default:
-            return UPLL_RC_ERR_GENERIC;
-        }
+ private:
+  static BindInfo ip_route_bind_info[];
+  static BindInfo key_ip_route_maintbl_update_bind_info[];
+  /**
+   * @brief  Gets the valid array position of the variable in the value
+   *         structure from the table in the specified configuration
+   *
+   * @param[in]     val      pointer to the value structure
+   * @param[in]     indx     database index for the variable
+   * @param[out]    valid    position of the variable in the valid array -
+   *                          NULL if valid does not exist.
+   * @param[in]     dt_type  specifies the configuration
+   * @param[in]     tbl      specifies the table containing the given value
+   *
+   **/
+  upll_rc_t GetValid(void *val, uint64_t indx, uint8_t *&valid,
+                     upll_keytype_datatype_t dt_type, MoMgrTables tbl) {
+    if (val == NULL) return UPLL_RC_ERR_GENERIC;
+    if (tbl == MAINTBL) {
+      switch (indx) {
+        case uudst::static_ip_route::kDbiMetric:
+          valid = &(reinterpret_cast<val_static_ip_route*>
+                    (val))->valid[UPLL_IDX_GROUP_METRIC_SIR];
+          break;
+        default:
+          return UPLL_RC_ERR_GENERIC;
       }
-      return UPLL_RC_SUCCESS;
     }
+    return UPLL_RC_SUCCESS;
+  }
 
-    /**
-     * @brief  Filters the attributes which need not be sent to controller
-     *
-     * @param[in/out]  val1   first record value instance.
-     * @param[in]      val2   second record value instance.
-     * @param[in]      audit  Not used for VTN
-     * @param[in]      op     Operation to be performed
-     *
-     **/
-    bool FilterAttributes(void *&val1, void *val2, bool audit_status,
-                          unc_keytype_operation_t op);
-    /**
-     * @brief  Compares the valid value between two database records.
-     *              if both the values are same, update the valid flag for corresponding
-     *              attribute as invalid in the first record.
-     *
-     * @param[in/out]  val1   first record value instance.
-     * @param[in]      val2   second record value instance.
-     * @param[in]      audit  if true,CompareValidValue is called from audit process.
-     *
-     **/
-    bool CompareValidValue(void *&val1, void *val2, bool audit);
+  /**
+   * @brief  Filters the attributes which need not be sent to controller
+   *
+   * @param[in/out]  val1   first record value instance.
+   * @param[in]      val2   second record value instance.
+   * @param[in]      audit  Not used for VTN
+   * @param[in]      op     Operation to be performed
+   *
+   **/
+  bool FilterAttributes(void *&val1, void *val2, bool audit_status,
+                        unc_keytype_operation_t op);
+  /**
+   * @brief  Compares the valid value between two database records.
+   *        if both the values are same, update the valid flag for corresponding
+   *        attribute as invalid in the first record.
+   *
+   * @param[in/out]  val1   first record value instance.
+   * @param[in]      val2   second record value instance.
+   * @param[in]      audit  if true,CompareValidValue is called from audit process.
+   *
+   **/
+  bool CompareValidValue(void *&val1, void *val2, bool audit);
 
-    upll_rc_t UpdateConfigStatus(ConfigKeyVal *req, unc_keytype_operation_t op,
+  upll_rc_t UpdateConfigStatus(ConfigKeyVal *req, unc_keytype_operation_t op,
                                uint32_t driver_result, ConfigKeyVal *upd_key,
                                DalDmlIntf *dmi, ConfigKeyVal *ctrlr_key = NULL);
-    /**
-     * @brief  Update config status for commit result and vote result.
-     *
-     * @param[in/out]  ckv_running  ConfigKeyVal instance.
-     * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
-     * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
-     *
-     **/
-    upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
-                                      uuc::UpdateCtrlrPhase phase,
-                                      ConfigKeyVal *&ckv_running);
-    /**
-     * @Brief  Validates the syntax of the specified key and value structure
-     *         for KT_VRT_IPROUTE keytype
-     *
-     * @param[in]  req    This structure contains IpcReqRespHeader
-     *                    (first 8 fields of input request structure).
-     * @param[in]  ikey   ikey contains key and value structure.
-     *
-     * @retval  UPLL_RC_SUCCESS                Successful.
-     * @retval  UPLL_RC_ERR_CFG_SYNTAX         Syntax error.
-     * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE   key_vlan_map is not available.
-     * @retval  UPLL_RC_ERR_GENERIC            Generic failure.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION1    option1 is not valid.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION2    option2 is not valid.
-     *
-     */
-    upll_rc_t ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *ikey);
+  /**
+   * @brief  Update config status for commit result and vote result.
+   *
+   * @param[in/out]  ckv_running  ConfigKeyVal instance.
+   * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
+   * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
+   * @param[in]      dmi          Pointer to the DalDmlIntf(DB Interface)
+   *
+   **/
+  upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
+                                    uuc::UpdateCtrlrPhase phase,
+                                    ConfigKeyVal *&ckv_running,
+                                    DalDmlIntf *dmi);
+  /**
+   * @Brief  Validates the syntax of the specified key and value structure
+   *         for KT_VRT_IPROUTE keytype
+   *
+   * @param[in]  req    This structure contains IpcReqRespHeader
+   *                    (first 8 fields of input request structure).
+   * @param[in]  ikey   ikey contains key and value structure.
+   *
+   * @retval  UPLL_RC_SUCCESS                Successful.
+   * @retval  UPLL_RC_ERR_CFG_SYNTAX         Syntax error.
+   * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE   key_vlan_map is not available.
+   * @retval  UPLL_RC_ERR_GENERIC            Generic failure.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION1    option1 is not valid.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION2    option2 is not valid.
+   *
+   */
+  upll_rc_t ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *ikey);
 
-    /**
-     * @Brief  Checks if the specified key type(KT_VRT_IPROUTE) and
-     *         associated attributes are supported on the given controller,
-     *         based on the valid flag
-     *
-     * @param[in]  req               This structure contains IpcReqRespHeader
-     *                               (first 8 fields of input request structure).
-     * @param[in]  ikey              ikey contains key and value structure.
-     * @param[in]  ctrlr_name        Controller name associated with ikey.
-     *
-     * @retval   UPLL_RC_SUCCESS               Validation succeeded.
-     * @retval   UPLL_RC_ERR_GENERIC           Validation failure.
-     * @retval   UPLL_RC_ERR_INVALID_OPTION1   Option1 is not valid.
-     * @retval   UPLL_RC_ERR_INVALID_OPTION2   Option2 is not valid.
-     */
-    upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                                 const char *ctrlr_name);
+  /**
+   * @Brief  Checks if the specified key type(KT_VRT_IPROUTE) and
+   *         associated attributes are supported on the given controller,
+   *         based on the valid flag
+   *
+   * @param[in]  req               This structure contains IpcReqRespHeader
+   *                               (first 8 fields of input request structure).
+   * @param[in]  ikey              ikey contains key and value structure.
+   * @param[in]  ctrlr_name        Controller name associated with ikey.
+   *
+   * @retval   UPLL_RC_SUCCESS               Validation succeeded.
+   * @retval   UPLL_RC_ERR_GENERIC           Validation failure.
+   * @retval   UPLL_RC_ERR_INVALID_OPTION1   Option1 is not valid.
+   * @retval   UPLL_RC_ERR_INVALID_OPTION2   Option2 is not valid.
+   */
+  upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *ikey,
+                               const char *ctrlr_name);
 
-    /**
-     * @Brief  Validates the syntax for KT_VRT_IPROUTE Keytype key structure.
-     *
-     * @param[in]  key_static_ip_route  KT_VRT_IPROUTE key structure.
-     * @param[in]  operation   Operation type.
-     *
-     * @retval  UPLL_RC_SUCCESS          validation succeeded.
-     * @retval  UPLL_RC_ERR_CFG_SYNTAX   validation failed.
-     *
-     */
-    upll_rc_t ValidateIpRouteKey(key_static_ip_route *iproute_key,
-                                 unc_keytype_operation_t operation);
+  /**
+   * @Brief  Validates the syntax for KT_VRT_IPROUTE Keytype key structure.
+   *
+   * @param[in]  key_static_ip_route  KT_VRT_IPROUTE key structure.
+   * @param[in]  operation   Operation type.
+   *
+   * @retval  UPLL_RC_SUCCESS          validation succeeded.
+   * @retval  UPLL_RC_ERR_CFG_SYNTAX   validation failed.
+   *
+   */
+  upll_rc_t ValidateIpRouteKey(key_static_ip_route *iproute_key,
+                               unc_keytype_operation_t operation);
 
-    /**
-     * @Brief  Validates the syntax for KT_VRT_IPROUTE keytype value structure.
-     *
-     * @param[in]  val_vrt_iproute  KT_VRT_IPROUTE value structure.
-     * @param[in]  operation  Operation type.
-     *
-     * @retval  UPLL_RC_SUCCESS          validation succeeded.
-     * @retval  UPLL_RC_ERR_CFG_SYNTAX   validation failed.
-     */
-    upll_rc_t ValidateIpRouteValue(val_static_ip_route *iprout_val,
-                                   uint32_t op);
+  /**
+   * @Brief  Validates the syntax for KT_VRT_IPROUTE keytype value structure.
+   *
+   * @param[in]  val_vrt_iproute  KT_VRT_IPROUTE value structure.
+   * @param[in]  operation  Operation type.
+   *
+   * @retval  UPLL_RC_SUCCESS          validation succeeded.
+   * @retval  UPLL_RC_ERR_CFG_SYNTAX   validation failed.
+   */
+  upll_rc_t ValidateIpRouteValue(val_static_ip_route *iprout_val,
+                                 uint32_t op);
 
-    /**
-     * @Brief  Checks if the specified key type and
-     *         associated attributes are supported on the given controller,
-     *         based on the valid flag.
-     *
-     * @param[in]  iproute_val     KT_VRT_IPROUTE value structure.
-     * @param[in]  attrs           Pointer to controller attribute.
-     * @param[in]  operation       Operation name.
-     *
-     * @retval  UPLL_RC_SUCCESS                      validation succeeded.
-     * @retval  UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT   Instance count resource limit is exceeds.
-     * @retval  UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR   Attribute NOT_SUPPORTED.
-     * @retval  UPLL_RC_ERR_GENERIC                  Generic failure.
-     */
-    upll_rc_t ValIpRouteAttributeSupportCheck(
-        val_static_ip_route *iproute_val,
-        const uint8_t *attrs,
-        unc_keytype_operation_t operation);
+  /**
+   * @Brief  Checks if the specified key type and
+   *         associated attributes are supported on the given controller,
+   *         based on the valid flag.
+   *
+   * @param[in]  iproute_val     KT_VRT_IPROUTE value structure.
+   * @param[in]  attrs           Pointer to controller attribute.
+   * @param[in]  operation       Operation name.
+   *
+   * @retval  UPLL_RC_SUCCESS                      validation succeeded.
+   * @retval  UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT   Instance count resource limit is exceeds.
+   * @retval  UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR   Attribute NOT_SUPPORTED.
+   * @retval  UPLL_RC_ERR_GENERIC                  Generic failure.
+   */
+  upll_rc_t ValIpRouteAttributeSupportCheck(
+      val_static_ip_route *iproute_val,
+      const uint8_t *attrs,
+      unc_keytype_operation_t operation);
 
-    upll_rc_t ValidateAttribute(ConfigKeyVal *kval,
-                                DalDmlIntf *dmi,
-                                IpcReqRespHeader *req = NULL);
-    /**
-     * @brief  Duplicates the input configkeyval including the key and val.
-     * based on the tbl specified.
-     *
-     * @param[in]  okey   Output Configkeyval - allocated within the function
-     * @param[in]  req    Input ConfigKeyVal to be duplicated.
-     * @param[in]  tbl    specifies if the val structure belongs to the main table/ controller table or rename table.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
-                              MoMgrTables tbl = MAINTBL);
-    /**
-     * @brief  Allocates for the specified val in the given configuration in the     * specified table.
-     *
-     * @param[in]  ck_val   Reference pointer to configval structure allocated.      * @param[in]  dt_type  specifies the configuration candidate/running/state
-     * @param[in]  tbl      specifies if the corresponding table is the  main
-     *                      table / controller table or rename table.
-     *
-     * @retval     UPLL_RC_SUCCESS      Successfull completion.
-     * @retval     UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
-                       MoMgrTables tbl = MAINTBL);
-    /**
-     * @brief      Method to get a configkeyval of a specified keytype from an input configkeyval
-     *
-     * @param[in/out]  okey                 pointer to output ConfigKeyVal
-     * @param[in]      parent_key           pointer to the configkeyval from which the output configkey val is initialized.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     */
-    upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *parent_key);
-    /**
-     * @brief  Allocates for the specified val in the given configuration in the     * specified table.
-     *
-     * @param[in]  ck_val   Reference pointer to configval structure allocated.      * @param[in]  dt_type  specifies the configuration candidate/running/state
-     * @param[in]  tbl      specifies if the corresponding table is the  main
-     *                      table / controller table or rename table.
-     *
-     * @retval     UPLL_RC_SUCCESS      Successfull completion.
-     * @retval     UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *parent_key);
-    /* RENAME */
-    bool GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo,
-                              int &nattr, MoMgrTables tbl);
-    upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
-    upll_rc_t IsReferenced(ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
-                           DalDmlIntf *dmi);
-    upll_rc_t MergeValidate(unc_key_type_t keytype, const char *ctrlr_id,
-                            ConfigKeyVal *ikey, DalDmlIntf *dmi);
+  upll_rc_t ValidateAttribute(ConfigKeyVal *kval,
+                              DalDmlIntf *dmi,
+                              IpcReqRespHeader *req = NULL);
+  /**
+   * @brief  Duplicates the input configkeyval including the key and val.
+   * based on the tbl specified.
+   *
+   * @param[in]  okey   Output Configkeyval - allocated within the function
+   * @param[in]  req    Input ConfigKeyVal to be duplicated.
+   * @param[in]  tbl    specifies if the val structure belongs to the main table/ controller table or rename table.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
+                            MoMgrTables tbl = MAINTBL);
+  /**
+   * @brief  Allocates for the specified val in the given configuration in the     * specified table.
+   *
+   * @param[in]  ck_val   Reference pointer to configval structure allocated.      * @param[in]  dt_type  specifies the configuration candidate/running/state
+   * @param[in]  tbl      specifies if the corresponding table is the  main
+   *                      table / controller table or rename table.
+   *
+   * @retval     UPLL_RC_SUCCESS      Successfull completion.
+   * @retval     UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
+                     MoMgrTables tbl = MAINTBL);
+  /**
+   * @brief      Method to get a configkeyval of a specified keytype from an input configkeyval
+   *
+   * @param[in/out]  okey                 pointer to output ConfigKeyVal
+   * @param[in]      parent_key           pointer to the configkeyval from which the output configkey val is initialized.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   */
+  upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *parent_key);
+  /**
+   * @brief  Allocates for the specified val in the given configuration in the     * specified table.
+   *
+   * @param[in]  ck_val   Reference pointer to configval structure allocated.      * @param[in]  dt_type  specifies the configuration candidate/running/state
+   * @param[in]  tbl      specifies if the corresponding table is the  main
+   *                      table / controller table or rename table.
+   *
+   * @retval     UPLL_RC_SUCCESS      Successfull completion.
+   * @retval     UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *parent_key);
+  /* RENAME */
+  bool GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo,
+                            int &nattr, MoMgrTables tbl);
+  upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
+  upll_rc_t IsReferenced(ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
+                         DalDmlIntf *dmi);
+  upll_rc_t MergeValidate(unc_key_type_t keytype, const char *ctrlr_id,
+                          ConfigKeyVal *ikey, DalDmlIntf *dmi);
 
-    bool ResetDataForSibling(key_static_ip_route *key_ipr,
-                   uudst::static_ip_route::kStaticIpRouteIndex index);
+  bool ResetDataForSibling(key_static_ip_route *key_ipr,
+                           uudst::static_ip_route::kStaticIpRouteIndex index);
 
-    static uint16_t kIpRouteNumChildKey;
+  static uint16_t kIpRouteNumChildKey;
 
 public:
-    IpRouteMoMgr();
-    virtual ~IpRouteMoMgr() {
-      for (int i = 0; i < ntable; i++)
-        if (table[i]) {
-          delete table[i];
-        }
-      delete[] table;
-    }
+ public:
+  IpRouteMoMgr();
+  virtual ~IpRouteMoMgr() {
+    for (int i = 0; i < ntable; i++)
+      if (table[i]) {
+        delete table[i];
+      }
+    delete[] table;
+  }
 
-    /**
-     * @brief      Method to check if individual portions of a key are valid
-     *
-     * @param[in/out]  ikey                 pointer to ConfigKeyVal referring to a UNC resource
-     * @param[in]      index                db index associated with the variable
-     *
-     * @retval         true                 input key is valid
-     * @retval         false                input key is invalid.
-     **/
-    bool IsValidKey(void *tkey, uint64_t index);
+  /**
+   * @brief      Method to check if individual portions of a key are valid
+   *
+   * @param[in/out]  ikey                 pointer to ConfigKeyVal referring to a UNC resource
+   * @param[in]      index                db index associated with the variable
+   *
+   * @retval         true                 input key is valid
+   * @retval         false                input key is invalid.
+   **/
+  bool IsValidKey(void *tkey, uint64_t index);
 
   /* @brief         READ_SIBLING_BEGIN: Gets the first MO from the sibling group
    *                under the parent
index 435ad6254b686c2d91d91c8b5cb6f38780ff2ef1..a55f088b7b22d68013c109f9ca2a6706b545c37f 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -54,8 +54,10 @@ bool KeyTree::AddKeyType(unc_key_type_t parent, unc_key_type_t child) {
 }
 
 KeyTreeNode *KeyTree::GetNode(unc_key_type_t key_type) {
-  if (all_kt_map_.count(key_type))
-    return all_kt_map_[key_type];
+  std::map<unc_key_type_t, KeyTreeNode*>::iterator it
+      = all_kt_map_.find(key_type);
+  if (it != all_kt_map_.end())
+    return it->second;
   return NULL;
 }
 
@@ -220,11 +222,11 @@ bool KeyTree::PostorderIterator::Next(unc_key_type_t *next_key_type) {
       next_node_ = next_node_->children.front();
     }
     UPLL_LOG_VERBOSE("moving to sibling's descendant %d",
-                    ((next_node_) ? next_node_->key_type : 0));
+                     ((next_node_) ? next_node_->key_type : 0));
   } else {
     next_node_ = next_node_->parent;
     UPLL_LOG_VERBOSE("moving to the parent %d",
-                    ((next_node_) ? next_node_->key_type : 0));
+                     ((next_node_) ? next_node_->key_type : 0));
     if (next_node_ == keytree_->GetRoot()) {
       next_node_ = NULL;
     }
index 1e61e831bc1c690d9116f837e841459ac9e5a2fa..20fa53d37019605f3024ecae5454fb8b7ec19fef 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
index b84764facc068e32e4ca8eb1ce754a77262366f0..87d7c1bc96d8f734864308a77f8134d714ace86b 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -52,8 +52,10 @@ const std::vector<IpctSt::IpcStructNum>& KtUtil::GetCfgMsgTemplate(
     unc_key_type_t kt) {
   UPLL_FUNC_TRACE;
   static std::vector<IpctSt::IpcStructNum> dummy;
-  if (kt_msg_templates_.count(kt) > 0) {
-    return kt_msg_templates_[kt]->kt_cfg_msg;
+  std::map<unc_key_type_t, KtMsgTemplate*>::iterator it
+      = kt_msg_templates_.find(kt);
+  if ( it != kt_msg_templates_.end() ) {
+    return it->second->kt_cfg_msg;
   }
   return dummy;
 }
@@ -111,7 +113,8 @@ void KtUtil::Init() {
   // UNC_KT_VBR_VLANMAP
   tmpl = new KtMsgTemplate();
   tmpl->kt_cfg_msg.push_back(IpctSt::kIpcStKeyVlanMap);
-  tmpl->kt_cfg_msg.push_back(IpctSt::kIpcStValVlanMap);
+  /* VlanmapOnBoundary: Added new val struct */
+  tmpl->kt_cfg_msg.push_back(IpctSt::kIpcStPfcdrvValVlanMap);
   kt_msg_templates_[UNC_KT_VBR_VLANMAP] = tmpl;
   // UNC_KT_VBR_NWMONITOR
   tmpl = new KtMsgTemplate();
@@ -246,6 +249,10 @@ void KtUtil::Init() {
   tmpl->kt_cfg_msg.push_back(IpctSt::kIpcStKeyVlink);
   tmpl->kt_cfg_msg.push_back(IpctSt::kIpcStValVlink);
   kt_msg_templates_[UNC_KT_VLINK] = tmpl;
+  // UNC_KT_VTN_DATAFLOW
+  tmpl = new KtMsgTemplate();
+  tmpl->kt_cfg_msg.push_back(IpctSt::kIpcStKeyVtnDataflow);
+  kt_msg_templates_[UNC_KT_VTN_DATAFLOW] = tmpl;
 }
 
 
@@ -256,7 +263,7 @@ void KtUtil::Init() {
  * @param stnum
  * @param data
  *
- * @return 
+ * @return
  */
 std::string KtUtil::KtStructToStr(IpctSt::IpcStructNum stnum, void *data) {
   std::stringstream ss;
@@ -557,6 +564,9 @@ std::string KtUtil::KtStructToStr(IpctSt::IpcStructNum stnum, void *data) {
     case IpctSt::kIpcStPfcdrvValVbrifPolicingmap:
       return IpcStructToStr(
           *reinterpret_cast<pfcdrv_val_vbrif_policingmap*>(data));
+      /* VlanmapOnBoundary: Added new val struct */
+    case IpctSt::kIpcStPfcdrvValVlanMap:
+      return IpcStructToStr(*reinterpret_cast<pfcdrv_val_vlan_map*>(data));
       // Physical structures
     case IpctSt::kIpcStKeyCtr:
       return IpcStructToStr(*reinterpret_cast<key_ctr*>(data));
@@ -585,6 +595,8 @@ std::string KtUtil::KtStructToStr(IpctSt::IpcStructNum stnum, void *data) {
       return IpcStructToStr(*reinterpret_cast<vnpdrv_val_vtunnel*>(data));
     case IpctSt::kIpcStVnpdrvValVtunnelIf:
       return IpcStructToStr(*reinterpret_cast<vnpdrv_val_vtunnel_if*>(data));
+    case IpctSt::kIpcStKeyVtnDataflow:
+      return IpcStructToStr(*reinterpret_cast<key_vtn_dataflow*>(data));
   }
   return ss.str();
 }
@@ -719,6 +731,17 @@ std::string KtUtil::IpcStructToStr(const key_vtn& key_vtn) {
   return ss.str();
 }
 
+std::string KtUtil::IpcStructToStr(const key_vtn_dataflow& key_vtn_df) {
+  std::stringstream ss;
+  ss << "   -----   key_vtn_dataflow   -----   " << endl;
+  ss << "   -->vtn_name " << key_vtn_df.vtn_key.vtn_name << endl;
+  ss << "   -->vnode_name " << key_vtn_df.vnode_id << endl;
+  ss << "   -->vlan_id " << key_vtn_df.vlanid << endl;
+  ss << "   -->source_mac_addr " <<
+      MacAddrToStr(key_vtn_df.src_mac_address) << endl;
+  return ss.str();
+}
+
 std::string KtUtil::IpcStructToStr(const val_vtn& val_vtn) {
   std::stringstream ss;
   ss << "   -----   val_vtn   -----   " << endl;
@@ -1522,7 +1545,7 @@ std::string KtUtil::IpcStructToStr(const val_flowfilter& val_flowfilter) {
 }
 
 std::string KtUtil::IpcStructToStr(const val_vtn_flowfilter_controller_st&
-                              val_cnler_st) {
+                                   val_cnler_st) {
   std::stringstream ss;
   ss << "   -----   val_vtn_flowfilter_controller_st   -----   " << endl;
   ss << "   -->valid " << VALID_ARRAY_TO_STR(val_cnler_st.valid);
@@ -1562,7 +1585,7 @@ std::string KtUtil::IpcStructToStr(const val_flowlist_entry_st& val_cnler_st) {
 }
 
 std::string KtUtil::IpcStructToStr(const key_vtn_flowfilter_entry&
-                              key_vtn_flowfilter_entry) {
+                                   key_vtn_flowfilter_entry) {
   std::stringstream ss;
   ss << "   -----   key_vtn_flowfilter_entry   -----   " << endl;
   // ss << "   -->flowfilter_key " << endl;
@@ -1614,7 +1637,7 @@ std::string KtUtil::IpcStructToStr(const key_vbr_flowfilter& data) {
 }
 
 std::string KtUtil::IpcStructToStr(const key_vbr_flowfilter_entry&
-                              key_vbr_flowfilter_entry) {
+                                   key_vbr_flowfilter_entry) {
   std::stringstream ss;
   ss << "   -----   key_vbr_flowfilter_entry   -----   " << endl;
   // ss << "   -->flowfilter_key " << endl;
@@ -1660,7 +1683,7 @@ std::string KtUtil::IpcStructToStr(const val_flowfilter_entry_st& data) {
 }
 
 std::string KtUtil::IpcStructToStr(const key_vbr_if_flowfilter&
-                              key_vbr_if_flowfilter) {
+                                   key_vbr_if_flowfilter) {
   std::stringstream ss;
   ss << "   -----   key_vbr_if_flowfilter   -----   " << endl;
   // ss << "   -->if_key " << endl;
@@ -1670,7 +1693,7 @@ std::string KtUtil::IpcStructToStr(const key_vbr_if_flowfilter&
 }
 
 std::string KtUtil::IpcStructToStr(const key_vbr_if_flowfilter_entry&
-                              key_vbr_if_flowfilter_entry) {
+                                   key_vbr_if_flowfilter_entry) {
   std::stringstream ss;
   ss << "   -----   key_vbr_if_flowfilter_entry   -----   " << endl;
   // ss << "   -->flowfilter_key " << endl;
@@ -1681,7 +1704,7 @@ std::string KtUtil::IpcStructToStr(const key_vbr_if_flowfilter_entry&
 }
 
 std::string KtUtil::IpcStructToStr(const key_vrt_if_flowfilter&
-                              key_vrt_if_flowfilter) {
+                                   key_vrt_if_flowfilter) {
   std::stringstream ss;
   ss << "   -----   key_vrt_if_flowfilter   -----   " << endl;
   // ss << "   -->if_key " << endl;
@@ -1714,7 +1737,7 @@ std::string KtUtil::IpcStructToStr(const val_policingprofile& data) {
 }
 
 std::string KtUtil::IpcStructToStr(const val_rename_policingprofile&
-                              val_rename_policingprofile) {
+                                   val_rename_policingprofile) {
   std::stringstream ss;
   ss << "   -----   val_rename_policingprofile   -----   " << endl;
   ss << "   -->valid " << VALID_ARRAY_TO_STR(val_rename_policingprofile.valid);
@@ -1724,7 +1747,7 @@ std::string KtUtil::IpcStructToStr(const val_rename_policingprofile&
 }
 
 std::string KtUtil::IpcStructToStr(const key_policingprofile_entry&
-                              key_policingprofile_entry) {
+                                   key_policingprofile_entry) {
   std::stringstream ss;
   ss << "   -----   key_policingprofile_entry   -----   " << endl;
   // ss << "   -->policingprofile_key " << endl;
@@ -1778,7 +1801,7 @@ std::string KtUtil::IpcStructToStr(const val_policingmap& data) {
 }
 
 std::string KtUtil::IpcStructToStr(const val_policingmap_controller_st&
-                              val_cnler_st) {
+                                   val_cnler_st) {
   std::stringstream ss;
   ss << "   -----   val_policingmap_controller_st   -----   " << endl;
   ss << "   -->valid " << VALID_ARRAY_TO_STR(val_cnler_st.valid);
@@ -1813,7 +1836,7 @@ std::string KtUtil::IpcStructToStr(const val_policingmap_switch_st& data) {
 }
 
 std::string KtUtil::IpcStructToStr(const key_vtn_policingmap_controller&
-                              key_vtn_policingmap_controller) {
+                                   key_vtn_policingmap_controller) {
   std::stringstream ss;
   ss << "   -----   key_vtn_policingmap_controller   -----   " << endl;
   // ss << "   -->vtn_key " << endl;
@@ -2021,6 +2044,17 @@ std::string KtUtil::IpcStructToStr(const pfcdrv_val_vbrif_policingmap &data) {
   return ss.str();
 }
 
+/* VlanmapOnBoundary: Added new val struct */
+std::string KtUtil::IpcStructToStr(const pfcdrv_val_vlan_map &data) {
+  std::stringstream ss;
+  ss << "   -----   pfcdrv_val_vlan_map   -----   " << endl;
+  ss << "   -->valid " << VALID_ARRAY_TO_STR(data.valid);
+  ss << "   -->val.vm.valid " << VALID_ARRAY_TO_STR(data.vm.valid);
+  ss << "   -->vm.vlan_id " << data.vm.vlan_id << endl;
+  ss << "   -->bdry_ref_count " << data.bdry_ref_count << endl;
+  return ss.str();
+}
+
 // VNP-DRV
 std::string KtUtil::IpcStructToStr(const vnpdrv_val_vtunnel& data) {
   std::stringstream ss;
index 4afb3d9f011e28fe0122ff316a9a784548ef6a9a..a4877f9f661358d36d73bee7e64149d6353b312f 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -173,6 +173,9 @@ class KtUtil {
   static string IpcStructToStr(const pfcdrv_val_flowfilter_entry &data);
   static string IpcStructToStr(const pfcdrv_val_vbrif_policingmap &data);
 
+  /* VlanmapOnBoundary: New val struct */
+  static string IpcStructToStr(const pfcdrv_val_vlan_map &data);
+
   static string Ipv4AddrToStr(struct in_addr address);
   static string Ipv4AddrToStr(uint32_t address);
   static string Ipv6AddrToStr(struct in6_addr address);
@@ -182,6 +185,7 @@ class KtUtil {
 
   static string IpcStructToStr(const vnpdrv_val_vtunnel &data);
   static string IpcStructToStr(const vnpdrv_val_vtunnel_if &data);
+  static string IpcStructToStr(const key_vtn_dataflow &key_vtn_df);
 
  private:
   KtUtil() {}
@@ -193,5 +197,5 @@ class KtUtil {
 }  // namespace ipc_util
 }  // namespace upll
 }  // namespace unc
-                                                                       // NOLINT
+// NOLINT
 #endif  // UPLL_KT_UTIL_HH_
index f5f0e2630eeba8c8970e998afdbac1d00af32d80..02c5c60359f344c537a262b63c94b0f906d114d3 100644 (file)
@@ -1,14 +1,13 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
 #include <time.h>
-//  #include <iostream>
 #include <string>
 #include <list>
 #include <map>
 #include "unc/uppl_common.h"
 #include "momgr_impl.hh"
 #include "dhcprelay_server_momgr.hh"
-// #include "vtn_momgr.hh"
-// #include "vbr_momgr.hh"
 #include "vlink_momgr.hh"
-// #include "vbr_if_momgr.hh"
-//  #include "policingprofile_entry_momgr.hh"
+#include "vbr_if_momgr.hh"
+#include "config_mgr.hh"
+#include "vlanmap_momgr.hh"
 #include "uncxx/upll_log.hh"
 
-// using namespace std;
 using unc::upll::ipc_util::IpcUtil;
 using unc::upll::dal::DalResultCode;
-// map<unc_key_type_t,  MoMgr *> MoMgr::momgr;
-
-// map<unc_key_type_t,  MoMgr *> MoMgr::momgr;
 
 namespace unc {
 namespace upll {
@@ -46,110 +40,90 @@ namespace kt_momgr {
                                     (key_type == UNC_KT_VBRIF_POLICINGMAP) || \
                                     (key_type == UNC_KT_VTN_FLOWFILTER))
 
-upll_rc_t MoMgrImpl::CreateMo(IpcReqRespHeader *req,
-                              ConfigKeyVal *ikey,
-                              DalDmlIntf *dmi) {
-//  std::cout << "MoMgrImpl::createMo ";
-  if (ikey == NULL || req == NULL) {
-//    std::cout << "Improper inputs : Cannot create object";
-    return UPLL_RC_ERR_GENERIC;
-  }
+  upll_rc_t MoMgrImpl::CreateMo(IpcReqRespHeader *req,
+                                ConfigKeyVal *ikey,
+                                DalDmlIntf *dmi) {
+    //  std::cout << "MoMgrImpl::createMo ";
+    if (ikey == NULL || req == NULL) {
+      //    std::cout << "Improper inputs : Cannot create object";
+      return UPLL_RC_ERR_GENERIC;
+    }
 
-  switch (req->datatype) {
-    case UPLL_DT_IMPORT:
-    case UPLL_DT_CANDIDATE: {
-      return CreateCandidateMo(req, ikey, dmi);
+    switch (req->datatype) {
+      case UPLL_DT_IMPORT:
+      case UPLL_DT_CANDIDATE: {
+        return CreateCandidateMo(req, ikey, dmi);
+      }
+      default:  {
+        return UPLL_RC_ERR_GENERIC;
+      }
     }
-    default:  {
+  }
+
+  upll_rc_t MoMgrImpl::CreateImportMo(IpcReqRespHeader *req,
+                                      ConfigKeyVal *ikey,
+                                      DalDmlIntf *dmi,
+                                      const char *ctrlr_id,
+                                      const char *domain_id) {
+    UPLL_FUNC_TRACE;
+    //  std::cout << "MoMgrImpl::createMo ";
+    if (ikey == NULL || req == NULL) {
+      //    std::cout << "Improper inputs : Cannot create object";
       return UPLL_RC_ERR_GENERIC;
     }
+    switch (req->datatype) {
+      case UPLL_DT_AUDIT: {
+        //      std::cout << "UPLL_DT_AUDIT";
+        return CreateAuditMoImpl(ikey, dmi, ctrlr_id);
+      }
+      case UPLL_DT_IMPORT: {
+        return CreateMo(req, ikey, dmi);
+      }
+      default:
+        return UPLL_RC_ERR_GENERIC;
+    }
   }
-}
-
-upll_rc_t MoMgrImpl::CreateImportMo(IpcReqRespHeader *req,
-                                    ConfigKeyVal *ikey,
-                                    DalDmlIntf *dmi,
-                                    const char *ctrlr_id,
-                                    const char *domain_id) {
-  UPLL_FUNC_TRACE;
-//  std::cout << "MoMgrImpl::createMo ";
-  if (ikey == NULL || req == NULL) {
-//    std::cout << "Improper inputs : Cannot create object";
-    return UPLL_RC_ERR_GENERIC;
-  }
-  switch (req->datatype) {
-    case UPLL_DT_AUDIT: {
-//      std::cout << "UPLL_DT_AUDIT";
-      return CreateAuditMoImpl(ikey, dmi, ctrlr_id);
+
+  upll_rc_t MoMgrImpl::CreateCandidateMo(IpcReqRespHeader *req,
+                                         ConfigKeyVal *ikey,
+                                         DalDmlIntf *dmi,
+                                         bool restore_flag) {
+    UPLL_FUNC_TRACE;
+    //  std::cout << "MoMgrImpl::CreateCandidateMo";
+    if (ikey == NULL || req == NULL) {
+      return UPLL_RC_ERR_GENERIC;
     }
-    case UPLL_DT_IMPORT: {
-      return CreateMo(req, ikey, dmi);
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+    if (!restore_flag) {
+      // validate syntax and semantics
+      result_code = ValidateMessage(req, ikey);
+      if (result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("ValidateMessage failed, Error - %d", result_code);
+        return result_code;
+      }
+    }
+    result_code = ValidateAttribute(ikey, dmi, req);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("ValidateAttribute failed, Error - %d", result_code);
+      return result_code;
     }
-    default:
-      return UPLL_RC_ERR_GENERIC;
-  }
-}
-
-upll_rc_t MoMgrImpl::CreateCandidateMo(IpcReqRespHeader *req,
-                                       ConfigKeyVal *ikey,
-                                       DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-//  std::cout << "MoMgrImpl::CreateCandidateMo";
-  if (ikey == NULL || req == NULL) {
-        return UPLL_RC_ERR_GENERIC;
-  }
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  // validate syntax and semantics
-  result_code = ValidateMessage(req, ikey);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("ValidateMessage failed, Error - %d", result_code);
-    return result_code;
-  }
-  result_code = ValidateAttribute(ikey, dmi, req);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("ValidateAttribute failed, Error - %d", result_code);
-    return result_code;
-  }
 
-  // Parent check
-  if (ikey->get_key_type() == UNC_KT_VUNKNOWN ||
-    ikey->get_key_type() == UNC_KT_VUNK_IF) {
-    ConfigKeyVal *okey = NULL;
+    // Parent check
     if (ikey->get_key_type() == UNC_KT_VUNKNOWN) {
       // Vnode Existence check in CANDIDATE DB
       result_code = VnodeChecks(ikey, req->datatype, dmi);
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG(
             "Another Vnode with the same name already exists. Error code : %d",
-             result_code);
+            result_code);
         return result_code;
       }
-      result_code = GetParentConfigKey(okey, ikey);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("Error in retrieving the parent ConfigKeyVal");
-        if (okey)
-          delete okey;
-        return UPLL_RC_ERR_GENERIC;
-      }
-      MoMgrImpl *vtn_mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
-                   (const_cast<MoManager*>(GetMoManager(UNC_KT_VTN))));
-      result_code = vtn_mgr->UpdateConfigDB(okey, req->datatype, UNC_OP_READ,
-                                    dmi, MAINTBL);
-      if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
-        UPLL_LOG_DEBUG("Parent doesn't exist!");
-        if (okey)
-          delete okey;
-        if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-          return UPLL_RC_ERR_PARENT_DOES_NOT_EXIST;
-        }else { 
-          UPLL_LOG_DEBUG("UpdateConfigDB Failed %d", result_code);
-          return result_code;
-        }
-      }
-      if (okey)
-      delete okey;
     }
+
+    /* In case of bypass vlink, domain info is required
+     * so below code is needed */
     if (ikey->get_key_type() == UNC_KT_VUNK_IF) {
+      ConfigKeyVal *okey = NULL;
       result_code = GetParentConfigKey(okey, ikey);
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("Error in retrieving the parent ConfigKeyVal");
@@ -157,1543 +131,1878 @@ upll_rc_t MoMgrImpl::CreateCandidateMo(IpcReqRespHeader *req,
           delete okey;
         return UPLL_RC_ERR_GENERIC;
       }
-      MoMgrImpl *vunk_mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
-                   (const_cast<MoManager*>(GetMoManager(UNC_KT_VUNKNOWN))));
-      result_code = vunk_mgr->UpdateConfigDB(okey, req->datatype, UNC_OP_READ,
-                                    dmi, MAINTBL);
-      if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
+      MoMgrImpl *vunk_mgr = reinterpret_cast<MoMgrImpl *>(
+          const_cast<MoManager *>
+          (const_cast<MoManager*>(GetMoManager(UNC_KT_VUNKNOWN))));
+      DbSubOp dboper = { kOpReadSingle, kOpMatchNone,  kOpInOutDomain };
+      result_code = vunk_mgr->ReadConfigDB(okey,
+                                           req->datatype,
+                                           UNC_OP_READ,
+                                           dboper,
+                                           dmi,
+                                           MAINTBL);
+      if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("Parent doesn't exist!");
-        if (okey)
-          delete okey;
-        return UPLL_RC_ERR_PARENT_DOES_NOT_EXIST;
+        delete okey;
+        okey = NULL;
+        result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)?
+            UPLL_RC_ERR_PARENT_DOES_NOT_EXIST: result_code;
+        return result_code;
       }
-      if (okey)
+      uint8_t *domain = NULL;
+      GET_USER_DATA_DOMAIN(okey, domain);
+      SET_USER_DATA_DOMAIN(ikey, domain);
       delete okey;
+      okey = NULL;
     }
-  }
-  // Check if VTN already exists in CANDIDATE DB
-  result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_READ, dmi);
-  if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS
-    || result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-    return result_code;
-  }
-  if (UPLL_DT_CANDIDATE == req->datatype) {
-    // Check if VTN exists in RUNNING DB and move it to CANDIDATE DB
-    result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING,
-                               UNC_OP_READ, dmi, MAINTBL);
-    if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code &&
-      UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
-      UPLL_LOG_DEBUG("Error in UpdateConfigDB %d", result_code);
-        return result_code;
-    }
-    if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
-      result_code = RestoreChildren(ikey, req->datatype, UPLL_DT_RUNNING, dmi);
-      if (result_code != UPLL_RC_SUCCESS) {
-        return result_code;
+
+    if (!restore_flag) {
+      if (UPLL_DT_CANDIDATE == req->datatype) {
+        result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dmi,
+                                     MAINTBL);
+        if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
+          UPLL_LOG_DEBUG("Key instance exist");
+          if ((ikey)->get_cfg_val()) {
+            UPLL_LOG_DEBUG("Read Key with Value struct");
+            DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
+              kOpInOutFlag | kOpInOutCtrlr | kOpInOutDomain };
+            result_code = ReadConfigDB(ikey,
+                                       UPLL_DT_RUNNING,
+                                       UNC_OP_READ,
+                                       dbop,
+                                       dmi,
+                                       MAINTBL);
+            if (UPLL_RC_SUCCESS != result_code &&
+                UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+              UPLL_LOG_DEBUG("ReadConfigDB Failed %d",  result_code);
+            }
+            if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code)  {
+              return UPLL_RC_ERR_CFG_SEMANTIC;
+            }
+          } else  {
+            result_code = UPLL_RC_SUCCESS;
+          }
+          if (UPLL_RC_SUCCESS == result_code) {
+            result_code = RestoreChildren(ikey,
+                                          req->datatype,
+                                          UPLL_DT_RUNNING,
+                                          dmi,
+                                          req);
+            UPLL_LOG_DEBUG("Restore Children returns %d", result_code);
+            return result_code;
+          }
+        } else if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+          UPLL_LOG_DEBUG("UpdateConfigDB Failed %d", result_code);
+          return result_code;
+        }
       }
-      return result_code;
+    } else {
+      result_code = UPLL_RC_ERR_NO_SUCH_INSTANCE;
     }
-  }
-  // create a record in CANDIDATE DB
-  result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_CREATE, dmi);
-  return result_code;
-}
-
-upll_rc_t MoMgrImpl::CreateAuditMoImpl(ConfigKeyVal *ikey,
-                                   DalDmlIntf *dmi,
-                                   const char *ctrlr_id) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  UPLL_LOG_TRACE(" ikey is %s", ikey->ToStrAll().c_str());
-  uint8_t *controller_id = reinterpret_cast<uint8_t *>(
-                                 const_cast<char *>(ctrlr_id));
-
-  /* check if object is renamed in the corresponding Rename Tbl
-   * if "renamed"  create the object by the UNC name.
-   * else - create using the controller name.
-   */
-  result_code = GetRenamedUncKey(ikey, UPLL_DT_RUNNING, dmi, controller_id);
-  if (result_code != UPLL_RC_SUCCESS && result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-    UPLL_LOG_DEBUG("GetRenamedUncKey Failed err_code %d", result_code);
-    return result_code;
-  }
-  UPLL_LOG_TRACE("ikey After GetRenamedUncKey %s", ikey->ToStrAll().c_str());
-
-  result_code = SetValidAudit(ikey);
-  if (UPLL_RC_SUCCESS != result_code) {
-    return result_code;
-  }
-  result_code = UpdateConfigDB(ikey, UPLL_DT_AUDIT, UNC_OP_READ, dmi, MAINTBL);
-  if (result_code != UPLL_RC_ERR_INSTANCE_EXISTS && result_code !=
-                     UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-    UPLL_LOG_DEBUG("UpdateConfigDB Failed err_code %d", result_code);
+    // create a record in CANDIDATE DB
+    result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_CREATE, dmi);
     return result_code;
   }
-  result_code = (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) ? UPLL_RC_SUCCESS :
-                                                           result_code;
-  // Create a record in AUDIT DB
-  if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-    result_code = UpdateConfigDB(ikey, UPLL_DT_AUDIT, UNC_OP_CREATE, dmi, MAINTBL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("UpdateConfigDB Failed err_code %d", result_code);
-    }
-  }
-  return result_code;
-}
-
-upll_rc_t MoMgrImpl::ReadMo(IpcReqRespHeader *header,
-                            ConfigKeyVal *ikey,
-                            DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  ConfigKeyVal *ck_dhcp = NULL;
-  controller_domain ctrlr_dom;
-  memset(&ctrlr_dom, 0, sizeof(controller_domain));
-
-  DhcpRelayServerMoMgr *mgr_dhcp = reinterpret_cast<DhcpRelayServerMoMgr *>
-           (const_cast<MoManager *>(GetMoManager(UNC_KT_DHCPRELAY_SERVER)));
-  if (!mgr_dhcp) {
-    UPLL_LOG_DEBUG("Invalid Mgr");
-    return UPLL_RC_ERR_GENERIC;
-  }
 
-  // To validate the read request from VTNService
-  result_code = ValidateMessage(header, ikey);
-  if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("ValidateMessage failed, result_code= %d",
-                    result_code);
+  upll_rc_t MoMgrImpl::CreateAuditMoImpl(ConfigKeyVal *ikey,
+                                         DalDmlIntf *dmi,
+                                         const char *ctrlr_id) {
+    UPLL_FUNC_TRACE;
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+    UPLL_LOG_TRACE(" ikey is %s", ikey->ToStrAll().c_str());
+    uint8_t *controller_id = reinterpret_cast<uint8_t *>(
+        const_cast<char *>(ctrlr_id));
+
+    /* check if object is renamed in the corresponding Rename Tbl
+     * if "renamed"  create the object by the UNC name.
+     * else - create using the controller name.
+     */
+    result_code = GetRenamedUncKey(ikey, UPLL_DT_RUNNING, dmi, controller_id);
+    if (result_code != UPLL_RC_SUCCESS && result_code !=
+        UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+      UPLL_LOG_DEBUG("GetRenamedUncKey Failed err_code %d", result_code);
       return result_code;
-  }
-
-  if (header->option2 == UNC_OPT2_NEIGHBOR) {
-    if (ikey->get_key_type() != UNC_KT_VUNK_IF) {
-      return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT;
     }
+    UPLL_LOG_TRACE("ikey After GetRenamedUncKey %s", ikey->ToStrAll().c_str());
 
-    if ((header->operation == UNC_OP_READ) &&
-        ((header->datatype == UPLL_DT_CANDIDATE) ||
-         (header->datatype == UPLL_DT_RUNNING) ||
-         (header->datatype == UPLL_DT_STARTUP) ||
-         (header->datatype == UPLL_DT_STATE))) {
-      result_code = PopulateValVtnNeighbor(ikey, dmi);
-      if (UPLL_RC_SUCCESS != result_code) {
-        UPLL_LOG_DEBUG("PopulateValVtnNeighbor failed result_code %d", result_code);
-      }
+    result_code = SetValidAudit(ikey);
+    if (UPLL_RC_SUCCESS != result_code) {
       return result_code;
     }
-    return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
-  }
-
-  if ( ((header->option1 != UNC_OPT1_DETAIL) ||
-        ((header->option1 == UNC_OPT1_DETAIL) &&
-        (ikey->get_key_type() == UNC_KT_VBR_NWMONITOR)))&&
-       header->option2 == UNC_OPT2_NONE) {
-       result_code = ReadInfoFromDB(header, ikey, dmi, &ctrlr_dom);
-       if (result_code != UPLL_RC_SUCCESS) {
-         UPLL_LOG_DEBUG("ReadInfoFromDB failed, result_code= %d",
-                    result_code);
-         return result_code;
-       }
-  }
-  if (header->datatype == UPLL_DT_STATE &&
-      (header->option1 != UNC_OPT1_COUNT  &&
-       header->option2 == UNC_OPT2_DHCP_RELAY)) {
-    result_code = mgr_dhcp->GetVrtDhcpRelayServerAddress(ikey, dmi);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetVrtDhcpRelayServerAddress Failed");
+    result_code = UpdateConfigDB(ikey,
+                                 UPLL_DT_AUDIT,
+                                 UNC_OP_READ,
+                                 dmi,
+                                 MAINTBL);
+    if (result_code != UPLL_RC_ERR_INSTANCE_EXISTS && result_code !=
+        UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+      UPLL_LOG_DEBUG("UpdateConfigDB Failed err_code %d", result_code);
       return result_code;
     }
-  }
-  if ((header->datatype == UPLL_DT_STATE) &&
-      ((ikey->get_key_type() == UNC_KT_VBR_NWMONITOR) ||
-       (ikey->get_key_type() == UNC_KT_DHCPRELAY_IF) ||
-      ((header->option1 == UNC_OPT1_DETAIL) ||
-       ((header->option2 != UNC_OPT2_DHCP_RELAY) &&
-       (header->option2 != UNC_OPT2_NONE))))) {
-    // check with karthi GET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
-    // Getting the controller vtn, vnode name
-//  result_code = UpdateConfigDB(ikey, header->datatype, UNC_OP_READ, dmi);
-//  if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
-//    UPLL_LOG_ERROR("Record Doesn't Exists in DB ");
-//    return result_code;
-//  }
-
-    DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutCtrlr|kOpInOutDomain };
-
-    if (ikey->get_key_type() != UNC_KT_VTN) {
-      ctrlr_dom.ctrlr = ctrlr_dom.domain = NULL;
-      result_code = GetChildConfigKey(ck_dhcp, ikey);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("GetChildConfigKey is failed- %d", result_code);
-        delete ck_dhcp;
-        return result_code;
-      }
-      result_code = ReadConfigDB(ck_dhcp, header->datatype, UNC_OP_READ, dbop,
-                                                                dmi, MAINTBL);
-      if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-        UPLL_LOG_DEBUG("Failed to ReadConfigDb- %d", result_code);
-        delete ck_dhcp;
-        return result_code;
-      }
-      GET_USER_DATA_CTRLR_DOMAIN(ck_dhcp, ctrlr_dom);
-      UPLL_LOG_TRACE("Controller Name is: %s", ctrlr_dom.ctrlr);
-      result_code = ValidateCapability(
-                header, ikey, reinterpret_cast<char *>(ctrlr_dom.ctrlr));
-
+    result_code = (result_code ==
+                   UPLL_RC_ERR_INSTANCE_EXISTS) ? UPLL_RC_SUCCESS :
+        result_code;
+    // Create a record in AUDIT DB
+    if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+      result_code = UpdateConfigDB(ikey,
+                                   UPLL_DT_AUDIT,
+                                   UNC_OP_CREATE,
+                                   dmi,
+                                   MAINTBL);
       if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("ValidateCapability is failed: %d", result_code);
-        delete ck_dhcp;
-        return result_code;
-      }
-      if (ikey->get_key_type() == UNC_KT_VLINK) {
-        controller_domain ctrlr_vnode2_ctrlr;
-        memset(&ctrlr_vnode2_ctrlr, 0, sizeof(controller_domain));
-        GET_USER_DATA_CTRLR_DOMAIN(ck_dhcp->get_cfg_val(), ctrlr_vnode2_ctrlr);
-        UPLL_LOG_INFO("2nd controller name %s",
-          reinterpret_cast<const char *>(ctrlr_vnode2_ctrlr.ctrlr));
-        if (strcmp((const char *)ctrlr_vnode2_ctrlr.ctrlr,
-                                      (const char *)ctrlr_dom.ctrlr)) {
-          result_code = ValidateCapability(header, ikey,
-                        reinterpret_cast<const char *>(ctrlr_vnode2_ctrlr.ctrlr));
-          if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("ValidateCapability Failed for vlink %d", result_code);
-            return result_code;
-          }
-        }
+        UPLL_LOG_DEBUG("UpdateConfigDB Failed err_code %d", result_code);
       }
     }
-    result_code = GetRenamedControllerKey(ikey, header->datatype, dmi,
-                                          &ctrlr_dom);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetRenamedControllerKey failed result_code %d",
-                    result_code);
-      return result_code;
-    }
-    UPLL_LOG_TRACE("After Read  %s", (ikey->ToStrAll()).c_str());
+    return result_code;
+  }
 
-    IpcResponse ipc_resp;
-    memset(&(ipc_resp), 0, sizeof(IpcResponse));
-    IpcRequest ipc_req;
-    memset(&ipc_req, 0, sizeof(ipc_req));
-    memcpy(&(ipc_req.header), header, sizeof(IpcReqRespHeader));
-    UPLL_LOG_TRACE("ConfigId %d", ipc_req.header.config_id);
-    UPLL_LOG_TRACE("Operation %d", ipc_req.header.operation);
-    UPLL_LOG_TRACE(" DataType %d", ipc_req.header.datatype);
-    UPLL_LOG_TRACE("Option1 %d Option2 %d", ipc_req.header.option1, ipc_req.header.option2);
-    ipc_req.ckv_data = ikey;
-    UPLL_LOG_TRACE("Before Sending to Driver %s", (ikey->ToStrAll()).c_str());
-    UPLL_LOG_TRACE("Domain Name %s", ctrlr_dom.domain);
-    UPLL_LOG_TRACE("Controller Name %s", ctrlr_dom.ctrlr);
-
-    if (!IpcUtil::SendReqToDriver((const char *)(ctrlr_dom.ctrlr),
-           reinterpret_cast<char *>(ctrlr_dom.domain), PFCDRIVER_SERVICE_NAME,
-           PFCDRIVER_SVID_LOGICAL, &ipc_req, true, &ipc_resp)) {
-      UPLL_LOG_INFO("Request to driver for Key %d for controller %s failed ",
-                    ikey->get_key_type(), reinterpret_cast<char *>(ctrlr_dom.ctrlr));
-      return ipc_resp.header.result_code;
-    }
-
-    UPLL_LOG_TRACE("AfterDriver Read from Controller %s", (ikey->ToStrAll()).c_str());
-       // Populate ConfigKeyVal and IpcReqRespHeader with the response from driver
-    if (ipc_resp.header.result_code == UPLL_RC_SUCCESS) {
-      ikey->ResetWith(ipc_resp.ckv_data);
-    }
-    DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
-    result_code = ipc_resp.header.result_code;
-    upll_rc_t child_result_code = GetChildConfigKey(ikey, ck_dhcp);
-    if (UPLL_RC_SUCCESS != child_result_code) {
-      UPLL_LOG_DEBUG("GetChildConfigKeyFailed %d", child_result_code);
-      return child_result_code;
+  upll_rc_t MoMgrImpl::ReadMo(IpcReqRespHeader *header,
+                              ConfigKeyVal *ikey,
+                              DalDmlIntf *dmi) {
+    UPLL_FUNC_TRACE;
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+    ConfigKeyVal *ck_dhcp = NULL;
+    controller_domain ctrlr_dom;
+    memset(&ctrlr_dom, 0, sizeof(controller_domain));
+
+    DhcpRelayServerMoMgr *mgr_dhcp = reinterpret_cast<DhcpRelayServerMoMgr *>
+        (const_cast<MoManager *>(GetMoManager(UNC_KT_DHCPRELAY_SERVER)));
+    if (!mgr_dhcp) {
+      UPLL_LOG_DEBUG("Invalid Mgr");
+      return UPLL_RC_ERR_GENERIC;
     }
-  }
 
-  UPLL_LOG_TRACE("Before AdaptValtovtnservice  %s", (ikey->ToStrAll()).c_str());
-  if (result_code == UPLL_RC_SUCCESS && UPLL_DT_IMPORT != header->datatype) {
-    result_code = AdaptValToVtnService(ikey);
+    // To validate the read request from VTNService
+    result_code = ValidateMessage(header, ikey);
     if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("AdaptValToVtnService failed result_code %d",
-                    result_code);
+      UPLL_LOG_DEBUG("ValidateMessage failed, result_code= %d",
+                     result_code);
       return result_code;
     }
-  }
-  if (ck_dhcp)
-    delete ck_dhcp;
-
-  return result_code;
-}
 
-upll_rc_t MoMgrImpl::ReadSiblingMo(IpcReqRespHeader *header,
-                                   ConfigKeyVal *ikey,
-                                   bool begin,
-                                   DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  controller_domain ctrlr_dom;
-
-  result_code = ValidateMessage(header, ikey);
-  if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("ValidateMessage failed result_code %d",
-                    result_code);
-      return result_code;
-  }
-
-  ConfigKeyVal *tkey = NULL;
-  ConfigKeyVal *start_key = ikey;
+    if (header->option2 == UNC_OPT2_NEIGHBOR) {
+      if (ikey->get_key_type() != UNC_KT_VUNK_IF) {
+        return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT;
+      }
 
-  bool set_flag = false;
-  if (header->datatype == UPLL_DT_STATE && UNC_OPT2_NONE != header->option2) {
-    if (ikey->get_cfg_val() == NULL) {
-      set_flag = true;
-      result_code = ReadInfoFromDB(header, ikey, dmi, &ctrlr_dom);
-    } else {
-      result_code = GetChildConfigKey(tkey, ikey);
-      if (UPLL_RC_SUCCESS != result_code) {
-        UPLL_LOG_DEBUG("GetChildConfigKey Failed");
+      if ((header->operation == UNC_OP_READ) &&
+          ((header->datatype == UPLL_DT_CANDIDATE) ||
+           (header->datatype == UPLL_DT_RUNNING) ||
+           (header->datatype == UPLL_DT_STARTUP) ||
+           (header->datatype == UPLL_DT_STATE))) {
+        result_code = PopulateValVtnNeighbor(ikey, dmi);
+        if (UPLL_RC_SUCCESS != result_code) {
+          UPLL_LOG_DEBUG("PopulateValVtnNeighbor failed result_code %d",
+                         result_code);
+        }
         return result_code;
       }
-      result_code = ReadInfoFromDB(header, tkey, dmi, &ctrlr_dom);
-      ConfigKeyVal *travel_key = tkey;
-      while (travel_key) {
-        ConfigVal *travel_val = ikey->get_cfg_val();
-        ConfigVal *fval = (travel_val)->DupVal();
-        travel_key->SetCfgVal(fval);
-        while (travel_val) {
-          travel_val = travel_val->get_next_cfg_val();
-          if (travel_val) {
-            ConfigVal *sval = travel_val->DupVal();
-            travel_key->AppendCfgVal(sval);
-          } else {
-            break;
+      return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
+    }
+
+    if ( ((header->option1 != UNC_OPT1_DETAIL) ||
+          ((header->option1 == UNC_OPT1_DETAIL) &&
+           (ikey->get_key_type() == UNC_KT_VBR_NWMONITOR)))&&
+        header->option2 == UNC_OPT2_NONE) {
+      result_code = ReadInfoFromDB(header, ikey, dmi, &ctrlr_dom);
+      if (result_code != UPLL_RC_SUCCESS) {
+        /* VlanmapOnBoundary: vlanmap check added */
+        if (ikey->get_key_type() == UNC_KT_VBR_VLANMAP) {
+          upll_rc_t rc_t = AdaptValToVtnService(ikey);
+          if (rc_t != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("AdaptValToVtnService failed result_code %d", rc_t);
+            return UPLL_RC_ERR_GENERIC;
           }
         }
-        travel_key = travel_key->get_next_cfg_key_val();
+        UPLL_LOG_DEBUG("ReadInfoFromDB failed, result_code= %d", result_code);
+        return result_code;
       }
-      ikey =tkey;
     }
-  } else {
-    set_flag = true;
-    result_code = ReadInfoFromDB(header, ikey, dmi, &ctrlr_dom);
-  }
-
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("ReadInfoFromDB failed result_code %d",
-                    result_code);
-    return result_code;
-  }
-
-  if (header->datatype == UPLL_DT_STATE &&
-     ((ikey->get_key_type() == UNC_KT_VBR_NWMONITOR) ||
-      (ikey->get_key_type() == UNC_KT_DHCPRELAY_IF) ||
-    header->option1 == UNC_OPT1_DETAIL ||
-    header->option2 != UNC_OPT2_NONE)) {
-    // ikey is retained in next_ckv, and then refered by end_resp_ckv. Once the
-    // while loop is executed once, end_resp_ckv and ikey point to same.
-    ConfigKeyVal *end_resp_ckv = NULL;
-    ConfigKeyVal *one_ckv , *next_ckv;
-
-    next_ckv = ikey;
-    ConfigKeyVal *end_resp_ckv_tail = NULL;
-    while (NULL != next_ckv) {
-      one_ckv = next_ckv;
-      next_ckv = next_ckv->get_next_cfg_key_val();
-      one_ckv->set_next_cfg_key_val(NULL);
-      GET_USER_DATA_CTRLR_DOMAIN(one_ckv, ctrlr_dom);
-      // Get controller key
-      // TODO(myself) GetReanmedControllerKey changes the actual data
-      // and same will go to VTN Service. BUG.
-      if (header->datatype == UPLL_DT_STATE &&
-         (header->option1 != UNC_OPT1_COUNT &&
-          header->option2 == UNC_OPT2_DHCP_RELAY)) {
-        DhcpRelayServerMoMgr *mgr_dhcp =
-               reinterpret_cast<DhcpRelayServerMoMgr *>
-               (const_cast<MoManager *>(GetMoManager(UNC_KT_DHCPRELAY_SERVER)));
-        if (!mgr_dhcp) {
-          UPLL_LOG_DEBUG("Invalid Mgr");
+    /* VlanmapOnBoundary: vlanmap check added */
+    if (result_code == UPLL_RC_SUCCESS && (ikey->get_key_type() ==
+                                           UNC_KT_VBR_VLANMAP)) {
+      uint8_t user_flag = 0, vlanmap_flag =0;
+      GET_USER_DATA_FLAGS(ikey, vlanmap_flag);
+      user_flag = USER_VLANMAP_FLAG & vlanmap_flag;
+      if (!user_flag) {
+        upll_rc_t rc_t = AdaptValToVtnService(ikey);
+        if (rc_t != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("AdaptValToVtnService failed result_code %d", rc_t);
           return UPLL_RC_ERR_GENERIC;
         }
-        result_code = mgr_dhcp->GetVrtDhcpRelayServerAddress(one_ckv, dmi);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("GetVrtDhcpRelayServerAddress Failed");
-          return result_code;
-        }
-        if (header->option1 == UNC_OPT1_NORMAL) {
-          if (end_resp_ckv == NULL) {
-            end_resp_ckv = ikey;
-          } else {
-            end_resp_ckv->AppendCfgKeyVal(one_ckv);
-          }
-          continue;
-        }
-      }
 
-      DbSubOp dbop1 = { kOpReadSingle, kOpMatchNone, kOpInOutCtrlr | kOpInOutFlag
-                      | kOpInOutDomain };
-      ConfigKeyVal *temp_key = NULL;
-      result_code = GetChildConfigKey(temp_key, one_ckv);
-      if (UPLL_RC_SUCCESS != result_code) {
-        UPLL_LOG_DEBUG("GetChildConfigKey Failed");
-        return result_code;
-      }
-      result_code = ReadConfigDB(temp_key, header->datatype,
-                                              UNC_OP_READ, dbop1, dmi, MAINTBL);
-      if (UPLL_RC_SUCCESS != result_code) {
-        UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
-        DELETE_IF_NOT_NULL(temp_key);
-        return result_code;
+        UPLL_LOG_DEBUG("vlan map is not user configured by user");
+        return UPLL_RC_ERR_NO_SUCH_INSTANCE;
       }
-      memset(&ctrlr_dom, 0, sizeof(controller_domain));
-      GET_USER_DATA_CTRLR_DOMAIN(temp_key, ctrlr_dom);
+    }
 
-      result_code = ValidateCapability(
-            header, one_ckv, reinterpret_cast<const char *>
-                                    (ctrlr_dom.ctrlr));
+    if (header->datatype == UPLL_DT_STATE &&
+        (header->option1 != UNC_OPT1_COUNT  &&
+         header->option2 == UNC_OPT2_DHCP_RELAY)) {
+      result_code = mgr_dhcp->GetVrtDhcpRelayServerAddress(ikey, dmi);
       if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("ValidateCapability Failed %d", result_code);
-        DELETE_IF_NOT_NULL(temp_key);
+        UPLL_LOG_DEBUG("GetVrtDhcpRelayServerAddress Failed");
         return result_code;
       }
-      if (ikey->get_key_type() == UNC_KT_VLINK) {
-        controller_domain ctrlr_vnode2_ctrlr;
-        memset(&ctrlr_vnode2_ctrlr, 0, sizeof(controller_domain));
-        GET_USER_DATA_CTRLR_DOMAIN(temp_key->get_cfg_val(), ctrlr_vnode2_ctrlr);
-        if (strcmp((const char *)ctrlr_vnode2_ctrlr.ctrlr,
-                                      (const char *)ctrlr_dom.ctrlr)) {
-          result_code = ValidateCapability(header, one_ckv,
-                      reinterpret_cast<const char *>(ctrlr_vnode2_ctrlr.ctrlr));
-          if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("ValidateCapability Failed %d", result_code);
-            DELETE_IF_NOT_NULL(temp_key);
-            return result_code;
+    }
+    if ((header->datatype == UPLL_DT_STATE) &&
+        ((ikey->get_key_type() == UNC_KT_VBR_NWMONITOR) ||
+         (ikey->get_key_type() == UNC_KT_DHCPRELAY_IF) ||
+         ((header->option1 == UNC_OPT1_DETAIL) ||
+          ((header->option2 != UNC_OPT2_DHCP_RELAY) &&
+           (header->option2 != UNC_OPT2_NONE))))) {
+      // check with karthi GET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
+      // Getting the controller vtn, vnode name
+      //  result_code = UpdateConfigDB(ikey,
+      //  header->datatype,
+      //  UNC_OP_READ,
+      //  dmi);
+      //  if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
+      //    UPLL_LOG_ERROR("Record Doesn't Exists in DB ");
+      //    return result_code;
+      //  }
+
+      DbSubOp dbop = { kOpReadSingle,
+        kOpMatchNone,
+        kOpInOutCtrlr|kOpInOutDomain };
+
+      if (ikey->get_key_type() != UNC_KT_VTN) {
+        ctrlr_dom.ctrlr = ctrlr_dom.domain = NULL;
+        result_code = GetChildConfigKey(ck_dhcp, ikey);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("GetChildConfigKey is failed- %d", result_code);
+          delete ck_dhcp;
+          return result_code;
+        }
+        result_code = ReadConfigDB(ck_dhcp,
+                                   header->datatype,
+                                   UNC_OP_READ,
+                                   dbop,
+                                   dmi,
+                                   MAINTBL);
+        if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+          UPLL_LOG_DEBUG("Failed to ReadConfigDb- %d", result_code);
+          delete ck_dhcp;
+          return result_code;
+        }
+        GET_USER_DATA_CTRLR_DOMAIN(ck_dhcp, ctrlr_dom);
+        UPLL_LOG_TRACE("Controller Name is: %s", ctrlr_dom.ctrlr);
+        result_code = ValidateCapability(
+            header, ikey, reinterpret_cast<char *>(ctrlr_dom.ctrlr));
+
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("ValidateCapability is failed: %d", result_code);
+          delete ck_dhcp;
+          return result_code;
+        }
+        if (ikey->get_key_type() == UNC_KT_VLINK) {
+          controller_domain ctrlr_vnode2_ctrlr;
+          memset(&ctrlr_vnode2_ctrlr, 0, sizeof(controller_domain));
+          GET_USER_DATA_CTRLR_DOMAIN(ck_dhcp->get_cfg_val(),
+                                     ctrlr_vnode2_ctrlr);
+          UPLL_LOG_INFO("2nd controller name %s",
+                        reinterpret_cast<const char *>
+                        (ctrlr_vnode2_ctrlr.ctrlr));
+          if (strcmp((const char *)ctrlr_vnode2_ctrlr.ctrlr,
+                     (const char *)ctrlr_dom.ctrlr)) {
+            result_code = ValidateCapability(
+                header,
+                ikey,
+                reinterpret_cast<const char *>(ctrlr_vnode2_ctrlr.ctrlr));
+            if (result_code != UPLL_RC_SUCCESS) {
+              UPLL_LOG_DEBUG("ValidateCapability Failed for vlink %d",
+                             result_code);
+              DELETE_IF_NOT_NULL(ck_dhcp);
+              return result_code;
+            }
           }
         }
       }
-      result_code = GetRenamedControllerKey(one_ckv, header->datatype, dmi,
-                                          &ctrlr_dom);
+      result_code = GetRenamedControllerKey(ikey, header->datatype, dmi,
+                                            &ctrlr_dom);
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("GetRenamedControllerKey failed result_code %d",
-                        result_code);
-        DELETE_IF_NOT_NULL(temp_key);
+                       result_code);
+        DELETE_IF_NOT_NULL(ck_dhcp);
         return result_code;
       }
-      if (UNC_KT_VBRIDGE == one_ckv->get_key_type() &&
-          UNC_OPT2_NONE != header->option2) {
-          UPLL_LOG_DEBUG("Set NULL for ConfigVal");
-          one_ckv->SetCfgVal(NULL);
-      }
-      UPLL_LOG_TRACE("After Read  %s", (one_ckv->ToStrAll()).c_str());
+      UPLL_LOG_TRACE("After Read  %s", (ikey->ToStrAll()).c_str());
+
       IpcResponse ipc_resp;
       memset(&(ipc_resp), 0, sizeof(IpcResponse));
       IpcRequest ipc_req;
       memset(&ipc_req, 0, sizeof(ipc_req));
       memcpy(&(ipc_req.header), header, sizeof(IpcReqRespHeader));
-      ipc_req.header.operation = UNC_OP_READ;
-      ipc_req.ckv_data = one_ckv;
+      UPLL_LOG_TRACE("ConfigId %d", ipc_req.header.config_id);
+      UPLL_LOG_TRACE("Operation %d", ipc_req.header.operation);
+      UPLL_LOG_TRACE(" DataType %d", ipc_req.header.datatype);
+      UPLL_LOG_TRACE("Option1 %d Option2 %d", ipc_req.header.option1,
+                     ipc_req.header.option2);
+      ipc_req.ckv_data = ikey;
+      UPLL_LOG_TRACE("Before Sending to Driver %s",
+                     (ikey->ToStrAll()).c_str());
+      UPLL_LOG_TRACE("Domain Name %s", ctrlr_dom.domain);
+      UPLL_LOG_TRACE("Controller Name %s", ctrlr_dom.ctrlr);
 
       if (!IpcUtil::SendReqToDriver((const char *)(ctrlr_dom.ctrlr),
-            reinterpret_cast<char *>(ctrlr_dom.domain), PFCDRIVER_SERVICE_NAME,
-            PFCDRIVER_SVID_LOGICAL, &ipc_req, true, &ipc_resp)) {
+                                    reinterpret_cast<char *>(ctrlr_dom.domain),
+                                    PFCDRIVER_SERVICE_NAME,
+                                    PFCDRIVER_SVID_LOGICAL,
+                                    &ipc_req,
+                                    true,
+                                    &ipc_resp)) {
         UPLL_LOG_INFO("Request to driver for Key %d for controller %s failed ",
-           one_ckv->get_key_type(), reinterpret_cast<char *>(ctrlr_dom.ctrlr));
+                      ikey->get_key_type(), reinterpret_cast<char *>
+                      (ctrlr_dom.ctrlr));
+        DELETE_IF_NOT_NULL(ck_dhcp);
         return ipc_resp.header.result_code;
       }
+
       UPLL_LOG_TRACE("AfterDriver Read from Controller %s",
-                     (one_ckv->ToStrAll()).c_str());
-      // Populate ConfigKeyVal with the response from driver
+                     (ikey->ToStrAll()).c_str());
+      // Populate ConfigKeyVal and IpcReqRespHeader
+      // with the response from driver
       if (ipc_resp.header.result_code == UPLL_RC_SUCCESS) {
-        one_ckv->ResetWith(ipc_resp.ckv_data);
-        delete ipc_resp.ckv_data;
-      } else {
-          DELETE_IF_NOT_NULL(temp_key);
-          DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
-          return ipc_resp.header.result_code;
-      }
-      if (end_resp_ckv == NULL) {
-        end_resp_ckv = ikey;  // ikey and one_ckv should be same here
-        if (one_ckv == ikey) {
-          UPLL_LOG_TRACE("ikey has val");
-        } else {
-          UPLL_LOG_TRACE("ikey %p one_ckv %p", ikey, one_ckv);
-        }
-        end_resp_ckv_tail = end_resp_ckv;
-      } else {
-        end_resp_ckv_tail->AppendCfgKeyVal(one_ckv);
-        end_resp_ckv_tail = one_ckv;
-        UPLL_LOG_TRACE("ikey %p one_ckv %p end_ckv %p", ikey,
-                       one_ckv, end_resp_ckv);
+        ikey->ResetWith(ipc_resp.ckv_data);
       }
+      DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
       result_code = ipc_resp.header.result_code;
-      upll_rc_t child_result_code = GetChildConfigKey(one_ckv, temp_key);
+      upll_rc_t child_result_code = GetChildConfigKey(ikey, ck_dhcp);
       if (UPLL_RC_SUCCESS != child_result_code) {
-        DELETE_IF_NOT_NULL(temp_key);
-        UPLL_LOG_DEBUG("GetChildConfigKey Failed %d", child_result_code);
+        UPLL_LOG_DEBUG("GetChildConfigKeyFailed %d", child_result_code);
+        DELETE_IF_NOT_NULL(ck_dhcp);
         return child_result_code;
       }
-
-      DELETE_IF_NOT_NULL(temp_key);
-      UPLL_LOG_TRACE("AfterDriver Read from Controller %s",
-                     (one_ckv->ToStrAll()).c_str());
-    }
-
-    UPLL_LOG_TRACE("BEFORE REST WITHr %s",
-                     (end_resp_ckv->ToStrAll()).c_str());
-    if (!set_flag && end_resp_ckv) {
-      start_key->ResetWith(end_resp_ckv);
-      delete end_resp_ckv;
     }
-    UPLL_LOG_TRACE("AFTER REST WITHr %s",
-                     (end_resp_ckv->ToStrAll()).c_str());
-  }
-
-  if (header->rep_count > 0) {
-    if (result_code == UPLL_RC_SUCCESS
-        && UPLL_DT_IMPORT != header->datatype) {
-        result_code = AdaptValToVtnService(start_key);
 
+    UPLL_LOG_TRACE("Before AdaptValtovtnservice  %s",
+                   (ikey->ToStrAll()).c_str());
+    if (result_code == UPLL_RC_SUCCESS && UPLL_DT_IMPORT != header->datatype) {
+      result_code = AdaptValToVtnService(ikey);
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("AdaptValToVtnService failed result_code %d",
-                    result_code);
+                       result_code);
+        DELETE_IF_NOT_NULL(ck_dhcp);
         return result_code;
       }
     }
+    if (ck_dhcp)
+      delete ck_dhcp;
+
+    return result_code;
   }
 
-  return result_code;
-}
+  upll_rc_t MoMgrImpl::ReadSiblingMo(IpcReqRespHeader *header,
+                                     ConfigKeyVal *ikey,
+                                     bool begin,
+                                     DalDmlIntf *dmi) {
+    UPLL_FUNC_TRACE;
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+    controller_domain ctrlr_dom;
 
-upll_rc_t MoMgrImpl::ReadSiblingCount(IpcReqRespHeader *header,
-                                      ConfigKeyVal* ikey,
-                                      DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  controller_domain ctrlr_dom;
-  // To validate the read sibling count request from VTNService
-  result_code = ValidateMessage(header, ikey);
-  if (result_code != UPLL_RC_SUCCESS) {
+    result_code = ValidateMessage(header, ikey);
+    if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("ValidateMessage failed result_code %d",
-                    result_code);
+                     result_code);
       return result_code;
-  }
-#if 0
-  DbSubOp dbop1 = { kOpReadSingle, kOpMatchNone, kOpInOutCtrlr | kOpInOutFlag
-                   | kOpInOutDomain };
-
-  ConfigKeyVal *temp_key = NULL;
-  result_code = GetChildConfigKey(temp_key, ikey);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("GetChildConfigKey Failed");
-    return result_code;
-  }
-  result_code = ReadConfigDB(temp_key, header->datatype,
-                             UNC_OP_READ, dbop1, dmi, MAINTBL);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
-    return result_code;
-  }
-  GET_USER_DATA_CTRLR_DOMAIN(temp_key, ctrlr_dom);
-
-  result_code = ValidateCapability(
-         header, ikey, reinterpret_cast<const char *>
-                                   (ctrlr_dom.ctrlr));
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("ValidateCapability Failed %d", result_code);
-    return result_code;
-  }
-  if (ikey->get_key_type() == UNC_KT_VLINK) {
-    controller_domain ctrlr_vnode2_ctrlr;
-    memset(&ctrlr_vnode2_ctrlr, 0, sizeof(controller_domain));
-    GET_USER_DATA_CTRLR_DOMAIN(temp_key->get_cfg_val(), ctrlr_vnode2_ctrlr);
-    if (strcmp((const char *)ctrlr_vnode2_ctrlr.ctrlr,
-                                    (const char *)ctrlr_dom.ctrlr)) {
-      result_code = ValidateCapability(header, ikey,
-                    reinterpret_cast<const char *>(ctrlr_vnode2_ctrlr.ctrlr));
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("ValidateCapability Failed %d", result_code);
-        return result_code;
-      }
     }
-  }
-#endif
-  result_code = ReadInfoFromDB(header, ikey, dmi, &ctrlr_dom);
-  return result_code;
-}
 
-upll_rc_t MoMgrImpl::ReadInfoFromDB(IpcReqRespHeader *header,
-                                         ConfigKeyVal* ikey,
-                                         DalDmlIntf *dmi,
-                                         controller_domain *ctrlr_dom) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  #if 0
-  MoMgrTables tbl = (header->operation != UNC_OP_READ_SIBLING_COUNT &&
-                     header->datatype == UPLL_DT_IMPORT) ? RENAMETBL:MAINTBL;
-  #endif
-  MoMgrTables tbl = MAINTBL;
-  DbSubOp dbop = {kOpReadSingle, kOpMatchNone,
-                     kOpInOutCtrlr | kOpInOutDomain | kOpInOutFlag};
-  // To validate the READ, READ_SIBLING, READ_SIBLING_BEGIN
-  // and READ_SIBLING_COUNT message
-  /* There is not difference between show running configuration
-   * and show running configuration status in the request. so 
-   * binding cs statuin in ruuing. Once the request is differentiate
-   * have to modify here
-   */
-  if (UPLL_DT_RUNNING == header->datatype) {
-    UPLL_LOG_TRACE("Status Flag enabled");
-    dbop.inoutop |= kOpInOutCs;
-  } else if(KEY_TYPE_BIND_CS(ikey->get_key_type())) {
-    UPLL_LOG_TRACE("Status Flag enabled");
-    dbop.inoutop |= kOpInOutCs;
-  }
+    ConfigKeyVal *tkey = NULL;
+    ConfigKeyVal *start_key = ikey;
 
-  switch (header->datatype) {
-    case UPLL_DT_IMPORT:
-    if (header->operation != UNC_OP_READ_SIBLING_COUNT) {
-      result_code = ReadImportDB(ikey, header, dmi);
-      if (UPLL_RC_SUCCESS != result_code) {
-        UPLL_LOG_DEBUG("ReadImportDB failed %d", result_code);
-        return result_code;
-      }
+    bool set_flag = false;
+    if (header->datatype == UPLL_DT_STATE && UNC_OPT2_NONE !=
+        header->option2) {
+      if (ikey->get_cfg_val() == NULL) {
+        set_flag = true;
+        result_code = ReadInfoFromDB(header, ikey, dmi, &ctrlr_dom);
+      } else {
+        result_code = GetChildConfigKey(tkey, ikey);
+        if (UPLL_RC_SUCCESS != result_code) {
+          UPLL_LOG_DEBUG("GetChildConfigKey Failed");
+          return result_code;
+        }
+        result_code = ReadInfoFromDB(header, tkey, dmi, &ctrlr_dom);
+        ConfigKeyVal *travel_key = tkey;
+        while (travel_key) {
+          ConfigVal *travel_val = ikey->get_cfg_val();
+          ConfigVal *fval = (travel_val)->DupVal();
+          travel_key->SetCfgVal(fval);
+          while (travel_val) {
+            travel_val = travel_val->get_next_cfg_val();
+            if (travel_val) {
+              ConfigVal *sval = travel_val->DupVal();
+              travel_key->AppendCfgVal(sval);
+            } else {
+              break;
+            }
+          }
+          travel_key = travel_key->get_next_cfg_key_val();
+        }
+        ikey =tkey;
+      }
+    } else {
+      set_flag = true;
+      result_code = ReadInfoFromDB(header, ikey, dmi, &ctrlr_dom);
+    }
+
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("ReadInfoFromDB failed result_code %d",
+                     result_code);
+      DELETE_IF_NOT_NULL(tkey);
       return result_code;
     }
-    break;
-    case UPLL_DT_CANDIDATE:
-    case UPLL_DT_RUNNING:
-    case UPLL_DT_STARTUP:
-    case UPLL_DT_STATE:
-    {
-      // To read the record(s) from DB
-      upll_keytype_datatype_t dt_type =
-          (ikey->get_key_type() == UNC_KT_VBR_NWMONITOR_HOST &&
-          header->datatype == UPLL_DT_STATE) ?
-          UPLL_DT_RUNNING : header->datatype;
-      ConfigVal *cval = ikey->get_cfg_val();
-      ConfigVal *new_cval = NULL;
-      ConfigVal *orig_new_cval = NULL;
-      if (cval) {
-        while (cval) {
-          UPLL_LOG_TRACE("Allocate new value struct...");
-          AllocVal(new_cval, dt_type, MAINTBL);
-          if (orig_new_cval == NULL)
-            orig_new_cval = new_cval;
-          const pfc_ipcstdef_t *st_def = IpctSt::GetIpcStdef(
-                                            cval->get_st_num());
-          UPLL_LOG_TRACE("Allocate new value struct for st_num:%d...", cval->get_st_num());
-          memcpy(new_cval->get_val(), cval->get_val(), st_def->ist_size);
-          if (dt_type == UPLL_DT_STATE) {
-            cval = cval->get_next_cfg_val();
-            new_cval = new_cval->get_next_cfg_val();
+
+    if (header->datatype == UPLL_DT_STATE &&
+        ((ikey->get_key_type() == UNC_KT_VBR_NWMONITOR) ||
+         (ikey->get_key_type() == UNC_KT_DHCPRELAY_IF) ||
+         header->option1 == UNC_OPT1_DETAIL ||
+         header->option2 != UNC_OPT2_NONE)) {
+      // ikey is retained in next_ckv, and then refered by
+      // end_resp_ckv. Once the
+      // while loop is executed once, end_resp_ckv and ikey
+      // point to same.
+      ConfigKeyVal *end_resp_ckv = NULL;
+      ConfigKeyVal *one_ckv , *next_ckv;
+
+      next_ckv = ikey;
+      ConfigKeyVal *end_resp_ckv_tail = NULL;
+      while (NULL != next_ckv) {
+        one_ckv = next_ckv;
+        next_ckv = next_ckv->get_next_cfg_key_val();
+        one_ckv->set_next_cfg_key_val(NULL);
+        GET_USER_DATA_CTRLR_DOMAIN(one_ckv, ctrlr_dom);
+        // Get controller key
+        // TODO(myself) GetReanmedControllerKey changes the actual data
+        // and same will go to VTN Service. BUG.
+        if (header->datatype == UPLL_DT_STATE &&
+            (header->option1 != UNC_OPT1_COUNT &&
+             header->option2 == UNC_OPT2_DHCP_RELAY)) {
+          DhcpRelayServerMoMgr *mgr_dhcp =
+              reinterpret_cast<DhcpRelayServerMoMgr *>
+              (const_cast<MoManager *>(GetMoManager(UNC_KT_DHCPRELAY_SERVER)));
+          if (!mgr_dhcp) {
+            UPLL_LOG_DEBUG("Invalid Mgr");
+            DELETE_IF_NOT_NULL(tkey);
+            return UPLL_RC_ERR_GENERIC;
+          }
+          result_code = mgr_dhcp->GetVrtDhcpRelayServerAddress(one_ckv, dmi);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("GetVrtDhcpRelayServerAddress Failed");
+            DELETE_IF_NOT_NULL(tkey);
+            return result_code;
+          }
+          if (header->option1 == UNC_OPT1_NORMAL) {
+            if (end_resp_ckv == NULL) {
+              end_resp_ckv = ikey;
+            } else {
+              end_resp_ckv->AppendCfgKeyVal(one_ckv);
+            }
+            continue;
+          }
+        }
+
+        DbSubOp dbop1 = { kOpReadSingle,
+          kOpMatchNone,
+          kOpInOutCtrlr | kOpInOutFlag
+          | kOpInOutDomain };
+        ConfigKeyVal *temp_key = NULL;
+        result_code = GetChildConfigKey(temp_key, one_ckv);
+        if (UPLL_RC_SUCCESS != result_code) {
+          UPLL_LOG_DEBUG("GetChildConfigKey Failed");
+          DELETE_IF_NOT_NULL(tkey);
+          return result_code;
+        }
+        result_code = ReadConfigDB(temp_key, header->datatype,
+                                   UNC_OP_READ, dbop1, dmi, MAINTBL);
+        if (UPLL_RC_SUCCESS != result_code) {
+          UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
+          DELETE_IF_NOT_NULL(temp_key);
+          DELETE_IF_NOT_NULL(tkey);
+          return result_code;
+        }
+        memset(&ctrlr_dom, 0, sizeof(controller_domain));
+        GET_USER_DATA_CTRLR_DOMAIN(temp_key, ctrlr_dom);
+
+        result_code = ValidateCapability(
+            header, one_ckv, reinterpret_cast<const char *>
+            (ctrlr_dom.ctrlr));
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("ValidateCapability Failed %d", result_code);
+          DELETE_IF_NOT_NULL(temp_key);
+          DELETE_IF_NOT_NULL(tkey);
+          return result_code;
+        }
+        if (ikey->get_key_type() == UNC_KT_VLINK) {
+          controller_domain ctrlr_vnode2_ctrlr;
+          memset(&ctrlr_vnode2_ctrlr, 0, sizeof(controller_domain));
+          GET_USER_DATA_CTRLR_DOMAIN(temp_key->get_cfg_val(),
+                                     ctrlr_vnode2_ctrlr);
+          if (strcmp((const char *)ctrlr_vnode2_ctrlr.ctrlr,
+                     (const char *)ctrlr_dom.ctrlr)) {
+            result_code = ValidateCapability(header,
+                                             one_ckv,
+                                             reinterpret_cast
+                                             <const char *>
+                                             (ctrlr_vnode2_ctrlr.ctrlr));
+            if (result_code != UPLL_RC_SUCCESS) {
+              UPLL_LOG_DEBUG("ValidateCapability Failed %d", result_code);
+              DELETE_IF_NOT_NULL(temp_key);
+              DELETE_IF_NOT_NULL(tkey);
+              return result_code;
+            }
+          }
+        }
+        result_code = GetRenamedControllerKey(one_ckv, header->datatype, dmi,
+                                              &ctrlr_dom);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("GetRenamedControllerKey failed result_code %d",
+                         result_code);
+          DELETE_IF_NOT_NULL(temp_key);
+          DELETE_IF_NOT_NULL(tkey);
+          return result_code;
+        }
+        if (UNC_KT_VBRIDGE == one_ckv->get_key_type() &&
+            UNC_OPT2_NONE != header->option2) {
+          UPLL_LOG_DEBUG("Set NULL for ConfigVal");
+          one_ckv->SetCfgVal(NULL);
+        }
+        UPLL_LOG_TRACE("After Read  %s", (one_ckv->ToStrAll()).c_str());
+        IpcResponse ipc_resp;
+        memset(&(ipc_resp), 0, sizeof(IpcResponse));
+        IpcRequest ipc_req;
+        memset(&ipc_req, 0, sizeof(ipc_req));
+        memcpy(&(ipc_req.header), header, sizeof(IpcReqRespHeader));
+        ipc_req.header.operation = UNC_OP_READ;
+        ipc_req.ckv_data = one_ckv;
+
+        if (!IpcUtil::SendReqToDriver((const char *)(ctrlr_dom.ctrlr),
+                                      reinterpret_cast<char *>
+                                      (ctrlr_dom.domain),
+                                      PFCDRIVER_SERVICE_NAME,
+                                      PFCDRIVER_SVID_LOGICAL,
+                                      &ipc_req,
+                                      true,
+                                      &ipc_resp)) {
+          UPLL_LOG_INFO("Request to driver for Key %d for"
+                        "controller %s failed ",
+                        one_ckv->get_key_type(), reinterpret_cast<char *>
+                        (ctrlr_dom.ctrlr));
+          DELETE_IF_NOT_NULL(temp_key);
+          DELETE_IF_NOT_NULL(tkey);
+          return ipc_resp.header.result_code;
+        }
+        UPLL_LOG_TRACE("AfterDriver Read from Controller %s",
+                       (one_ckv->ToStrAll()).c_str());
+        // Populate ConfigKeyVal with the response from driver
+        if (ipc_resp.header.result_code == UPLL_RC_SUCCESS) {
+          one_ckv->ResetWith(ipc_resp.ckv_data);
+          delete ipc_resp.ckv_data;
+        } else {
+          DELETE_IF_NOT_NULL(temp_key);
+          DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
+          DELETE_IF_NOT_NULL(tkey);
+          return ipc_resp.header.result_code;
+        }
+        if (end_resp_ckv == NULL) {
+          end_resp_ckv = ikey;  // ikey and one_ckv should be same here
+          if (one_ckv == ikey) {
+            UPLL_LOG_TRACE("ikey has val");
           } else {
-            break;
+            UPLL_LOG_TRACE("ikey %p one_ckv %p", ikey, one_ckv);
           }
+          end_resp_ckv_tail = end_resp_ckv;
+        } else {
+          end_resp_ckv_tail->AppendCfgKeyVal(one_ckv);
+          end_resp_ckv_tail = one_ckv;
+          UPLL_LOG_TRACE("ikey %p one_ckv %p end_ckv %p", ikey,
+                         one_ckv, end_resp_ckv);
         }
-        ikey->SetCfgVal(orig_new_cval);
-      }
-      if (header->operation == UNC_OP_READ) {
-        result_code = ReadConfigDB(ikey, dt_type, header->operation,
-                                   dbop, dmi, tbl);
-      } else {
-        if ((header->operation == UNC_OP_READ_SIBLING_BEGIN) ||
-            (header->operation == UNC_OP_READ_SIBLING)) {
-          dbop.readop = kOpReadMultiple;
-        } else if (header->operation == UNC_OP_READ_SIBLING_COUNT) {
-           dbop.readop = kOpReadCount;
+        result_code = ipc_resp.header.result_code;
+        upll_rc_t child_result_code = GetChildConfigKey(one_ckv, temp_key);
+        if (UPLL_RC_SUCCESS != child_result_code) {
+          DELETE_IF_NOT_NULL(temp_key);
+          UPLL_LOG_DEBUG("GetChildConfigKey Failed %d", child_result_code);
+          DELETE_IF_NOT_NULL(tkey);
+          return child_result_code;
         }
-        UPLL_LOG_TRACE("Before the Read ConfigVal  is %s", (ikey->ToStrAll()).c_str());
 
-        result_code = ReadConfigDB(ikey, dt_type, header->operation,
-                                   dbop, header->rep_count, dmi, tbl);
-        UPLL_LOG_TRACE("After the Read ConfigVal  is %s", (ikey->ToStrAll()).c_str());
+        DELETE_IF_NOT_NULL(temp_key);
+        UPLL_LOG_TRACE("AfterDriver Read from Controller %s",
+                       (one_ckv->ToStrAll()).c_str());
       }
-      break;
+
+      UPLL_LOG_TRACE("BEFORE REST WITHr %s",
+                     (end_resp_ckv->ToStrAll()).c_str());
+      if (!set_flag && end_resp_ckv) {
+        start_key->ResetWith(end_resp_ckv);
+        delete end_resp_ckv;
+      }
+      UPLL_LOG_TRACE("AFTER REST WITHr %s",
+                     (end_resp_ckv->ToStrAll()).c_str());
     }
-    default:
-      break;
-  }
-  if (result_code != UPLL_RC_SUCCESS)
-    UPLL_LOG_DEBUG("Returning %d", result_code);
-  return result_code;
-}
 
-upll_rc_t MoMgrImpl::ValidateDeleteMoReq(IpcReqRespHeader *req,
-                                         ConfigKeyVal *ikey,
-                                         DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  // uint8_t rename = 0;
+    if (header->rep_count > 0) {
+      if (result_code == UPLL_RC_SUCCESS
+          && UPLL_DT_IMPORT != header->datatype) {
+        result_code = AdaptValToVtnService(start_key);
+
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("AdaptValToVtnService failed result_code %d",
+                         result_code);
+          DELETE_IF_NOT_NULL(tkey);
+          return result_code;
+        }
+      }
+    }
 
-  if (!ikey || !req || !(ikey->get_key())) {
-     UPLL_LOG_ERROR("Given Input is Empty")
-     return UPLL_RC_ERR_GENERIC;
+    return result_code;
   }
-  UPLL_LOG_TRACE("Delete Operation for %d ", ikey->get_key_type());
-  // cout << *ikey << "";
-  result_code = ValidateMessage(req, ikey);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_ERROR("Validate Message is Failed %d ", result_code);
+
+  upll_rc_t MoMgrImpl::ReadSiblingCount(IpcReqRespHeader *header,
+                                        ConfigKeyVal* ikey,
+                                        DalDmlIntf *dmi) {
+    UPLL_FUNC_TRACE;
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+    controller_domain ctrlr_dom;
+    // To validate the read sibling count request from VTNService
+    result_code = ValidateMessage(header, ikey);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("ValidateMessage failed result_code %d",
+                     result_code);
+      return result_code;
+    }
+#if 0
+    DbSubOp dbop1 = { kOpReadSingle, kOpMatchNone, kOpInOutCtrlr | kOpInOutFlag
+      | kOpInOutDomain };
+
+    ConfigKeyVal *temp_key = NULL;
+    result_code = GetChildConfigKey(temp_key, ikey);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG("GetChildConfigKey Failed");
+      return result_code;
+    }
+    result_code = ReadConfigDB(temp_key, header->datatype,
+                               UNC_OP_READ, dbop1, dmi, MAINTBL);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
+      return result_code;
+    }
+    GET_USER_DATA_CTRLR_DOMAIN(temp_key, ctrlr_dom);
+
+    result_code = ValidateCapability(
+        header, ikey, reinterpret_cast<const char *>
+        (ctrlr_dom.ctrlr));
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("ValidateCapability Failed %d", result_code);
+      return result_code;
+    }
+    if (ikey->get_key_type() == UNC_KT_VLINK) {
+      controller_domain ctrlr_vnode2_ctrlr;
+      memset(&ctrlr_vnode2_ctrlr, 0, sizeof(controller_domain));
+      GET_USER_DATA_CTRLR_DOMAIN(temp_key->get_cfg_val(), ctrlr_vnode2_ctrlr);
+      if (strcmp((const char *)ctrlr_vnode2_ctrlr.ctrlr,
+                 (const char *)ctrlr_dom.ctrlr)) {
+        result_code = ValidateCapability(header,
+                                         ikey,
+                                         reinterpret_cast<const char *>
+                                         (ctrlr_vnode2_ctrlr.ctrlr));
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("ValidateCapability Failed %d", result_code);
+          return result_code;
+        }
+      }
+    }
+#endif
+    result_code = ReadInfoFromDB(header, ikey, dmi, &ctrlr_dom);
     return result_code;
   }
-  result_code = UpdateConfigDB(ikey, UPLL_DT_CANDIDATE, UNC_OP_READ, dmi);
-  if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
-    UPLL_LOG_ERROR("Record Doesn't Exists in DB ");
+
+  upll_rc_t MoMgrImpl::ReadInfoFromDB(IpcReqRespHeader *header,
+                                      ConfigKeyVal* ikey,
+                                      DalDmlIntf *dmi,
+                                      controller_domain *ctrlr_dom) {
+    UPLL_FUNC_TRACE;
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+#if 0
+    MoMgrTables tbl = (header->operation != UNC_OP_READ_SIBLING_COUNT &&
+                       header->datatype == UPLL_DT_IMPORT) ? RENAMETBL:MAINTBL;
+#endif
+    MoMgrTables tbl = MAINTBL;
+    DbSubOp dbop = {kOpReadSingle, kOpMatchNone,
+      kOpInOutCtrlr | kOpInOutDomain | kOpInOutFlag};
+    // To validate the READ, READ_SIBLING, READ_SIBLING_BEGIN
+    // and READ_SIBLING_COUNT message
+    /* There is not difference between show running configuration
+     * and show running configuration status in the request. so
+     * binding cs statuin in ruuing. Once the request is differentiate
+     * have to modify here
+     */
+    if (UPLL_DT_RUNNING == header->datatype) {
+      UPLL_LOG_TRACE("Status Flag enabled");
+      dbop.inoutop |= kOpInOutCs;
+    } else if (KEY_TYPE_BIND_CS(ikey->get_key_type())) {
+      UPLL_LOG_TRACE("Status Flag enabled");
+      dbop.inoutop |= kOpInOutCs;
+    }
+
+    switch (header->datatype) {
+      case UPLL_DT_IMPORT:
+        if (header->operation != UNC_OP_READ_SIBLING_COUNT) {
+          result_code = ReadImportDB(ikey, header, dmi);
+          if (UPLL_RC_SUCCESS != result_code) {
+            UPLL_LOG_DEBUG("ReadImportDB failed %d", result_code);
+            return result_code;
+          }
+          return result_code;
+        }
+        break;
+      case UPLL_DT_CANDIDATE:
+      case UPLL_DT_RUNNING:
+      case UPLL_DT_STARTUP:
+      case UPLL_DT_STATE:
+        {
+          // To read the record(s) from DB
+          upll_keytype_datatype_t dt_type =
+              (ikey->get_key_type() == UNC_KT_VBR_NWMONITOR_HOST &&
+               header->datatype == UPLL_DT_STATE) ?
+              UPLL_DT_RUNNING : header->datatype;
+          ConfigVal *cval = ikey->get_cfg_val();
+          ConfigVal *new_cval = NULL;
+          ConfigVal *orig_new_cval = NULL;
+          if (cval) {
+            while (cval) {
+              UPLL_LOG_TRACE("Allocate new value struct...");
+              AllocVal(new_cval, dt_type, MAINTBL);
+              if (orig_new_cval == NULL)
+                orig_new_cval = new_cval;
+              const pfc_ipcstdef_t *st_def = IpctSt::GetIpcStdef(
+                  cval->get_st_num());
+              UPLL_LOG_TRACE("Allocate new value struct for st_num:%d...",
+                             cval->get_st_num());
+              memcpy(new_cval->get_val(), cval->get_val(), st_def->ist_size);
+              if (dt_type == UPLL_DT_STATE) {
+                cval = cval->get_next_cfg_val();
+                new_cval = new_cval->get_next_cfg_val();
+              } else {
+                break;
+              }
+            }
+            ikey->SetCfgVal(orig_new_cval);
+          }
+          if (header->operation == UNC_OP_READ) {
+            result_code = ReadConfigDB(ikey, dt_type, header->operation,
+                                       dbop, dmi, tbl);
+          } else {
+            if ((header->operation == UNC_OP_READ_SIBLING_BEGIN) ||
+                (header->operation == UNC_OP_READ_SIBLING)) {
+              dbop.readop = kOpReadMultiple;
+            } else if (header->operation == UNC_OP_READ_SIBLING_COUNT) {
+              dbop.readop = kOpReadCount;
+            }
+            UPLL_LOG_TRACE("Before the Read ConfigVal  is %s",
+                           (ikey->ToStrAll()).c_str());
+
+            result_code = ReadConfigDB(ikey, dt_type, header->operation,
+                                       dbop, header->rep_count, dmi, tbl);
+            UPLL_LOG_TRACE("After the Read ConfigVal  is %s",
+                           (ikey->ToStrAll()).c_str());
+          }
+          break;
+        }
+      default:
+        break;
+    }
+    if (result_code != UPLL_RC_SUCCESS)
+      UPLL_LOG_DEBUG("Returning %d", result_code);
     return result_code;
-  } else {
-    result_code = UPLL_RC_SUCCESS;
   }
+
+  upll_rc_t MoMgrImpl::ValidateDeleteMoReq(IpcReqRespHeader *req,
+                                           ConfigKeyVal *ikey,
+                                           DalDmlIntf *dmi) {
+    UPLL_FUNC_TRACE;
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+    // uint8_t rename = 0;
+
+    if (!ikey || !req || !(ikey->get_key())) {
+      UPLL_LOG_ERROR("Given Input is Empty")
+          return UPLL_RC_ERR_GENERIC;
+    }
+    UPLL_LOG_TRACE("Delete Operation for %d ", ikey->get_key_type());
+    // cout << *ikey << "";
+    result_code = ValidateMessage(req, ikey);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_ERROR("Validate Message is Failed %d ", result_code);
+      return result_code;
+    }
+    result_code = UpdateConfigDB(ikey, UPLL_DT_CANDIDATE, UNC_OP_READ, dmi);
+    if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
+      UPLL_LOG_ERROR("Record Doesn't Exists in DB ");
+      return result_code;
+    } else {
+      result_code = UPLL_RC_SUCCESS;
+    }
 #if 1
-  result_code = IsReferenced(ikey, req->datatype, dmi);
-  if (UPLL_RC_SUCCESS != result_code) {
+    result_code = IsReferenced(ikey, req->datatype, dmi);
+    if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_ERROR("Semantic Error - IsReferenced ErrorCode: %d",
                      result_code);
       return result_code;  // Semantic Error
-  }
+    }
+#endif
+
+#if 0
+    /* Check if vrouter admin status is disabled */
+    result_code = IsAdminStatusEnable(ikey, dmi);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_ERROR("IsAdminStatusEnable Failed %d ", result_code);
+      return result_code;
+    }
 #endif
 
-  #if 0
-  /* Check if vrouter admin status is disabled */
-  result_code = IsAdminStatusEnable(ikey, dmi);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_ERROR("IsAdminStatusEnable Failed %d ", result_code);
     return result_code;
   }
-  #endif
-
-  return result_code;
-}
 
 
-upll_rc_t MoMgrImpl::DeleteMo(IpcReqRespHeader *req,
-                              ConfigKeyVal *ikey,
-                              DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = ValidateDeleteMoReq(req, ikey, dmi);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_ERROR("Returning Error - %d", result_code);
-    return result_code;  // Semantic Error
-  }
-  result_code = DeleteCandidateMo(req, ikey, dmi);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_ERROR("Returning Error - %d", result_code);
+  upll_rc_t MoMgrImpl::DeleteMo(IpcReqRespHeader *req,
+                                ConfigKeyVal *ikey,
+                                DalDmlIntf *dmi) {
+    UPLL_FUNC_TRACE;
+    upll_rc_t result_code = ValidateDeleteMoReq(req, ikey, dmi);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_ERROR("Returning Error - %d", result_code);
+      return result_code;  // Semantic Error
+    }
+    result_code = DeleteCandidateMo(req, ikey, dmi);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_ERROR("Returning Error - %d", result_code);
+    }
+    return result_code;
   }
-  return result_code;
-}
 
 
-upll_rc_t MoMgrImpl::DeleteCandidateMo(IpcReqRespHeader *req,
-                              ConfigKeyVal *ikey,
-                              DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-  bool fail = false;
+  upll_rc_t MoMgrImpl::DeleteCandidateMo(IpcReqRespHeader *req,
+                                         ConfigKeyVal *ikey,
+                                         DalDmlIntf *dmi) {
+    UPLL_FUNC_TRACE;
+    bool fail = false;
 #if 0
-  upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
-  // uint8_t rename = 0;
-  bool fail = false;
+    upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
+    // uint8_t rename = 0;
+    bool fail = false;
 
-  if (!ikey || !req || !(ikey->get_key())) {
-     UPLL_LOG_ERROR("Given Input is Empty")
-     return result_code;
-  }
-  UPLL_LOG_TRACE("Delete Operation for %d ", ikey->get_key_type());
-  // cout << *ikey << "";
-  result_code = ValidateMessage(req, ikey);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_ERROR("Validate Message is Failed %d ", result_code);
-    return result_code;
-  }
-  result_code = UpdateConfigDB(ikey, UPLL_DT_CANDIDATE, UNC_OP_READ, dmi);
-  if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
-    UPLL_LOG_ERROR("Record Doesn't Exists in DB ");
-    return result_code;
-  }
-  result_code = IsReferenced(ikey, req->datatype, dmi);
-  if (UPLL_RC_SUCCESS != result_code) {
+    if (!ikey || !req || !(ikey->get_key())) {
+      UPLL_LOG_ERROR("Given Input is Empty")
+          return result_code;
+    }
+    UPLL_LOG_TRACE("Delete Operation for %d ", ikey->get_key_type());
+    // cout << *ikey << "";
+    result_code = ValidateMessage(req, ikey);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_ERROR("Validate Message is Failed %d ", result_code);
+      return result_code;
+    }
+    result_code = UpdateConfigDB(ikey, UPLL_DT_CANDIDATE, UNC_OP_READ, dmi);
+    if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
+      UPLL_LOG_ERROR("Record Doesn't Exists in DB ");
+      return result_code;
+    }
+    result_code = IsReferenced(ikey, req->datatype, dmi);
+    if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_ERROR("Semantic Error - IsReferenced ");
       return result_code;  // Semantic Error
-  }
+    }
 #endif
-  upll_rc_t result_code = DeleteChildren(ikey, req->datatype, dmi, MAINTBL);
-  if (UPLL_RC_SUCCESS != result_code) {
+    upll_rc_t result_code = DeleteChildren(ikey, ikey, req->datatype,
+                                           dmi, MAINTBL);
+    if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_ERROR("DeleteChildren %d", result_code);
       return result_code;  // Semantic Error
-  }
-  for (int i = 0; i < ntable; i++) {
-    if (GetTable((MoMgrTables)i, UPLL_DT_CANDIDATE) >= uudst::kDalNumTables) {
-      continue;
     }
-    DbSubOp dbop = {kOpNotRead, kOpMatchNone, kOpInOutNone};
-    result_code = UpdateConfigDB(ikey, UPLL_DT_CANDIDATE,
-             UNC_OP_DELETE, dmi, &dbop, (MoMgrTables)i);
-    result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)?
-                  UPLL_RC_SUCCESS:result_code;
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_ERROR("Delete Operation fails with %d", result_code);
-      fail = true;
+    for (int i = 0; i < ntable; i++) {
+      if (GetTable((MoMgrTables)i, UPLL_DT_CANDIDATE) >=
+          uudst::kDalNumTables) {
+        continue;
+      }
+      DbSubOp dbop = {kOpNotRead, kOpMatchNone, kOpInOutNone};
+      result_code = UpdateConfigDB(ikey, UPLL_DT_CANDIDATE,
+                                   UNC_OP_DELETE, dmi, &dbop, (MoMgrTables)i);
+      result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)?
+          UPLL_RC_SUCCESS:result_code;
+      if (UPLL_RC_SUCCESS != result_code) {
+        UPLL_LOG_ERROR("Delete Operation fails with %d", result_code);
+        fail = true;
+      }
     }
+    return ((fail == true)?UPLL_RC_ERR_GENERIC:UPLL_RC_SUCCESS);
   }
-  return ((fail == true)?UPLL_RC_ERR_GENERIC:UPLL_RC_SUCCESS);
-}
 
-upll_rc_t MoMgrImpl::UpdateMo(IpcReqRespHeader *req,
-                              ConfigKeyVal *ikey,
-                              DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
+  upll_rc_t MoMgrImpl::UpdateMo(IpcReqRespHeader *req,
+                                ConfigKeyVal *ikey,
+                                DalDmlIntf *dmi) {
+    UPLL_FUNC_TRACE;
 
-  upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
-  if (NULL == ikey || NULL == req || !(ikey->get_key())) {
-     UPLL_LOG_ERROR("Given Input is Empty");
-     return UPLL_RC_ERR_GENERIC;
-  }
-  UPLL_LOG_INFO("UpdateMo for %d", ikey->get_key_type());
-  result_code = ValidateMessage(req, ikey);
-  if (UPLL_RC_SUCCESS != result_code) {
+    upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
+    if (NULL == ikey || NULL == req || !(ikey->get_key())) {
+      UPLL_LOG_ERROR("Given Input is Empty");
+      return UPLL_RC_ERR_GENERIC;
+    }
+    UPLL_LOG_INFO("UpdateMo for %d", ikey->get_key_type());
+    result_code = ValidateMessage(req, ikey);
+    if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_ERROR("Validation Message is Failed ");
       return result_code;
-  }
-  controller_domain ctrlr_dom;
-  ctrlr_dom.ctrlr = ctrlr_dom.domain = NULL;
-  ConfigKeyVal *temp_ck = NULL;
-  result_code = GetChildConfigKey(temp_ck, ikey);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_ERROR("Error in retrieving the Child ConfigKeyVal");
-    if (temp_ck)
+    }
+    controller_domain ctrlr_dom;
+    ctrlr_dom.ctrlr = ctrlr_dom.domain = NULL;
+    ConfigKeyVal *temp_ck = NULL;
+    result_code = GetChildConfigKey(temp_ck, ikey);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_ERROR("Error in retrieving the Child ConfigKeyVal");
+      if (temp_ck)
+        delete temp_ck;
+      return result_code;
+    }
+    DbSubOp dbop = { kOpReadSingle,
+      kOpMatchNone,
+      kOpInOutCtrlr|kOpInOutDomain  };
+    result_code = ReadConfigDB(temp_ck, req->datatype, UNC_OP_READ,
+                               dbop, dmi, MAINTBL);
+    if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+      UPLL_LOG_DEBUG("ReadConfigDB Failed %d", result_code);
       delete temp_ck;
-    return result_code;
-  }
-  DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutCtrlr|kOpInOutDomain  };
-  result_code = ReadConfigDB(temp_ck, req->datatype, UNC_OP_READ,
-                                  dbop, dmi, MAINTBL);
-  if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-    UPLL_LOG_DEBUG("ReadConfigDB Failed %d", result_code);
+      return result_code;
+    }
+    GET_USER_DATA_CTRLR_DOMAIN(temp_ck, ctrlr_dom);
+    SET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
+    if (ikey->get_key_type() != UNC_KT_VTN) {
+      result_code = ValidateCapability(
+          req, ikey, reinterpret_cast<char *>(ctrlr_dom.ctrlr));
+      if (UPLL_RC_SUCCESS  != result_code) {
+        UPLL_LOG_DEBUG("Validate Capability is Failed. Error_code : %d",
+                       result_code);
+        delete temp_ck;
+        return result_code;
+      }
+    }
     delete temp_ck;
-    return result_code;
-  }
-  GET_USER_DATA_CTRLR_DOMAIN(temp_ck, ctrlr_dom);
-  SET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
-  if (ikey->get_key_type() != UNC_KT_VTN) {
-    result_code = ValidateCapability(
-                req, ikey, reinterpret_cast<char *>(ctrlr_dom.ctrlr));
+    // ValidateAttribute needs Controller Domain
+    result_code = ValidateAttribute(ikey, dmi, req);
     if (UPLL_RC_SUCCESS  != result_code) {
-        UPLL_LOG_DEBUG("Validate Capability is Failed. Error_code : %d",
-                      result_code);
-      delete temp_ck;
+      UPLL_LOG_ERROR("Validate Attribute is Failed");
       return result_code;
     }
-  }
-  delete temp_ck;
-  // ValidateAttribute needs Controller Domain
-  result_code = ValidateAttribute(ikey, dmi, req);
-  if (UPLL_RC_SUCCESS  != result_code) {
-      UPLL_LOG_ERROR("Validate Attribute is Failed");
+    dbop.matchop = kOpMatchCtrlr | kOpMatchDomain;
+    result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_UPDATE,
+                                 dmi, MAINTBL);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_ERROR("Updation Failure in DB : %d", result_code);
       return result_code;
-  }
-  dbop.matchop = kOpMatchCtrlr | kOpMatchDomain;
-  result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_UPDATE,
-                               dmi, MAINTBL);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_ERROR("Updation Failure in DB : %d", result_code);
+    }
+    UPLL_LOG_TRACE("Updated Done Successfully %d", result_code);
     return result_code;
   }
-  UPLL_LOG_TRACE("Updated Done Successfully %d", result_code);
-  return result_code;
-}
-
-/*Return result of validation*/
-upll_rc_t MoMgrImpl::TxVote(unc_key_type_t keytype,
-                            DalDmlIntf *dmi,
-                            ConfigKeyVal **err_ckv) {
-  UPLL_FUNC_TRACE;
-  return UPLL_RC_SUCCESS;
-}
-
-/*Return result of validation*/
-upll_rc_t MoMgrImpl::TxEnd(unc_key_type_t keytype, DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-  return UPLL_RC_SUCCESS;
-}
-
-/*Invoked to parse the controller vote result*/
-upll_rc_t MoMgrImpl::TxVoteCtrlrStatus(unc_key_type_t keytype,
-                                       CtrlrVoteStatusList *ctrlr_vote_status,
-                                       DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t driver_result, result_code;
-  driver_result = result_code = UPLL_RC_SUCCESS;
-  ConfigKeyVal *err_key = NULL;
-  uint8_t* ctrlr_id = NULL;
-  CtrlrVoteStatusList::iterator cvsListItr;
-  cvsListItr = ctrlr_vote_status->begin();
-  CtrlrVoteStatus *cv_status_ptr;
-  bool keytype_no_err = false;
-
-  if (OVERLAY_KT(keytype))
+
+  /*Return result of validation*/
+  upll_rc_t MoMgrImpl::TxVote(unc_key_type_t keytype,
+                              DalDmlIntf *dmi,
+                              ConfigKeyVal **err_ckv) {
+    UPLL_FUNC_TRACE;
     return UPLL_RC_SUCCESS;
+  }
 
-  for (; cvsListItr != ctrlr_vote_status->end(); ++cvsListItr) {
-    cv_status_ptr = *cvsListItr;
-    // Retrieve the controler Id from the CtrlrVoteStatus object
-    ctrlr_id = reinterpret_cast<uint8_t *>(
-                    const_cast<char *>(cv_status_ptr->ctrlr_id.c_str()));
-    UPLL_LOG_TRACE("TxVoteCtrlrStatus cvStatus controller ID: %s",
-                  (cv_status_ptr->ctrlr_id).c_str());
-    driver_result = (upll_rc_t) cv_status_ptr->upll_ctrlr_result;   \
-
-    if (driver_result == UPLL_RC_ERR_RESOURCE_DISCONNECTED) {
-      UPLL_LOG_DEBUG(" vote status is controller disconnect");
-      continue;
-    }
-    if (driver_result == UPLL_RC_SUCCESS) {
-      UPLL_LOG_TRACE("TxVoteCtrlrStatus cvStatus net result: UPLL_RC_SUCCESS");
-      continue;
-    }
-  // Retrieve the config Key as such from the KeyInfo
-    for (err_key = cv_status_ptr->err_ckv; err_key;
-               err_key = err_key->get_next_cfg_key_val()) {
-      if (keytype != err_key->get_key_type())
-        continue;
-      keytype_no_err = true;
-      /* if renamed obtain the unc specifc name */
-      result_code = GetRenamedUncKey(err_key, UPLL_DT_CANDIDATE, dmi, ctrlr_id);
-      if ((result_code != UPLL_RC_SUCCESS) &&
-         (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE)) {
-        UPLL_LOG_TRACE("Error in getting renamed name ");
+  /*Return result of validation*/
+  upll_rc_t MoMgrImpl::TxEnd(unc_key_type_t keytype, DalDmlIntf *dmi) {
+    UPLL_FUNC_TRACE;
+    return UPLL_RC_SUCCESS;
+  }
+
+  /*Invoked to parse the controller vote result*/
+  upll_rc_t MoMgrImpl::TxVoteCtrlrStatus(
+      unc_key_type_t keytype,
+      CtrlrVoteStatusList *ctrlr_vote_status,
+      DalDmlIntf *dmi) {
+    UPLL_FUNC_TRACE;
+    upll_rc_t driver_result, result_code;
+    driver_result = result_code = UPLL_RC_SUCCESS;
+    ConfigKeyVal *err_key = NULL;
+    uint8_t* ctrlr_id = NULL;
+    CtrlrVoteStatusList::iterator cvsListItr;
+    cvsListItr = ctrlr_vote_status->begin();
+    CtrlrVoteStatus *cv_status_ptr;
+    bool keytype_no_err = false;
+
+    if (OVERLAY_KT(keytype))
+      return UPLL_RC_SUCCESS;
+
+    for (; cvsListItr != ctrlr_vote_status->end(); ++cvsListItr) {
+      cv_status_ptr = *cvsListItr;
+      // Retrieve the controler Id from the CtrlrVoteStatus object
+      ctrlr_id = reinterpret_cast<uint8_t *>(
+          const_cast<char *>(cv_status_ptr->ctrlr_id.c_str()));
+      UPLL_LOG_TRACE("TxVoteCtrlrStatus cvStatus controller ID: %s",
+                     (cv_status_ptr->ctrlr_id).c_str());
+      driver_result = (upll_rc_t) cv_status_ptr->upll_ctrlr_result;   \
+
+                      if (driver_result == UPLL_RC_ERR_CTR_DISCONNECTED) {
+                        UPLL_LOG_DEBUG(" vote status is controller disconnect");
+                        continue;
+                      }
+      if (driver_result == UPLL_RC_SUCCESS) {
+        UPLL_LOG_TRACE("TxVoteCtrlrStatus cvStatus net result:"
+                       "UPLL_RC_SUCCESS");
         continue;
       }
-      /* Verifying for Boundary VLink */
-      if (err_key->get_key_type() == UNC_KT_VBR_IF) {
-        ConfigKeyVal *ck_vlink = NULL;
-        VlinkMoMgr *mgr = reinterpret_cast<VlinkMoMgr *>(
-              const_cast<MoManager *>(GetMoManager(UNC_KT_VLINK)));
-        if (!mgr) {
-          UPLL_LOG_DEBUG("Invalid mgr");
-          return UPLL_RC_ERR_GENERIC;
+      // Retrieve the config Key as such from the KeyInfo
+      for (err_key = cv_status_ptr->err_ckv; err_key;
+           err_key = err_key->get_next_cfg_key_val()) {
+        if (keytype != err_key->get_key_type())
+          continue;
+        keytype_no_err = true;
+        /* if renamed obtain the unc specifc name */
+        result_code = GetRenamedUncKey(err_key,
+                                       UPLL_DT_CANDIDATE,
+                                       dmi,
+                                       ctrlr_id);
+        if ((result_code != UPLL_RC_SUCCESS) &&
+            (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE)) {
+          UPLL_LOG_TRACE("Error in getting renamed name ");
+          continue;
         }
-        vn_if_type iftype;
-        result_code = mgr->CheckIfMemberOfVlink(err_key,
-                                     UPLL_DT_CANDIDATE, ck_vlink, dmi, iftype);
-        /* replace err_key with ck_vlink */
-        if (result_code == UPLL_RC_SUCCESS) {
-          if ((iftype == kVlinkBoundaryNode1) || (iftype == kVlinkBoundaryNode2)) {
-            err_key->ResetWith(ck_vlink);
-            continue;
-          } else {
-            if (ck_vlink) delete ck_vlink;
-            UPLL_LOG_TRACE("%s is an internal vlink", (err_key->ToStr()).c_str());
+
+        /* VlanmapOnBoundary: vlanmap check added */
+        if (err_key->get_key_type() == UNC_KT_VBR_VLANMAP) {
+          ConfigKeyVal *vlanmap_ckv = NULL;
+          VlanMapMoMgr *vlanmap_mgr = reinterpret_cast<VlanMapMoMgr *>(
+              const_cast<MoManager *>(GetMoManager(UNC_KT_VBR_VLANMAP)));
+
+          result_code = vlanmap_mgr->GetChildConfigKey(vlanmap_ckv, err_key);
+          DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
+            kOpInOutFlag | kOpInOutDomain | kOpInOutCtrlr};
+          result_code = vlanmap_mgr->ReadConfigDB(vlanmap_ckv,
+                                                  UPLL_DT_CANDIDATE,
+                                                  UNC_OP_READ,
+                                                  dbop,
+                                                  dmi,
+                                                  MAINTBL);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("ReadConfigDB from running failed %d", result_code);
+            return UPLL_RC_ERR_GENERIC;
+          }
+
+          ConfigKeyVal *err_ckv = NULL;
+          /* Case1: commit(del) - Check in CANDIDATE
+           * Case2: Commit(Cr/upd) - Check in CANDIDATE
+           * Since we are not able to check cr or upd or del */
+          result_code = vlanmap_mgr->TranslateError(&err_ckv, vlanmap_ckv,
+                                                    dmi, UPLL_DT_CANDIDATE);
+          DELETE_IF_NOT_NULL(vlanmap_ckv);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("Returning error %d", result_code);
+            if (err_ckv) delete err_ckv;
+            return result_code;
           }
-        } else if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+          err_key->ResetWith(err_ckv);
+          continue;
+        }
+
+        /* Verifying for Boundary VLink */
+        if (err_key->get_key_type() == UNC_KT_VBR_IF) {
+          ConfigKeyVal *ck_vlink = NULL;
+          VlinkMoMgr *mgr = reinterpret_cast<VlinkMoMgr *>(
+              const_cast<MoManager *>(GetMoManager(UNC_KT_VLINK)));
+          if (!mgr) {
+            UPLL_LOG_DEBUG("Invalid mgr");
+            return UPLL_RC_ERR_GENERIC;
+          }
+          vn_if_type iftype;
+          result_code = mgr->CheckIfMemberOfVlink(err_key,
+                                                  UPLL_DT_CANDIDATE,
+                                                  ck_vlink,
+                                                  dmi,
+                                                  iftype);
+          /* replace err_key with ck_vlink */
+          if (result_code == UPLL_RC_SUCCESS) {
+            if ((iftype == kVlinkBoundaryNode1) ||
+                (iftype == kVlinkBoundaryNode2)) {
+              err_key->ResetWith(ck_vlink);
+              DELETE_IF_NOT_NULL(ck_vlink);
+              continue;
+            } else {
+              if (ck_vlink) delete ck_vlink;
+              UPLL_LOG_TRACE("%s is an internal vlink",
+                             (err_key->ToStr()).c_str());
+            }
+          } else if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
             UPLL_LOG_DEBUG("Returning error %d", result_code);
             if (ck_vlink) delete ck_vlink;
             return UPLL_RC_ERR_GENERIC;
-        } else {
-          if (ck_vlink) delete ck_vlink;
-          UPLL_LOG_TRACE("%s is not part of a vlink", (err_key->ToStr()).c_str());
+          } else {
+            if (ck_vlink) delete ck_vlink;
+            UPLL_LOG_TRACE("%s is not part of a vlink",
+                           (err_key->ToStr()).c_str());
+          }
         }
+        result_code = AdaptValToVtnService(err_key);
       }
-      result_code = AdaptValToVtnService(err_key);
     }
+    UPLL_LOG_TRACE("TxVote Controller Status : %d", driver_result);
+    if (!keytype_no_err)
+      return UPLL_RC_SUCCESS;
+    // Return vote Result to UPLLManager
+    driver_result = (driver_result == UPLL_RC_ERR_CTR_DISCONNECTED) ?
+        UPLL_RC_SUCCESS : driver_result;
+    // return driver_result;
+    result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) ?
+        UPLL_RC_SUCCESS : result_code;
+    return result_code;
   }
-  UPLL_LOG_TRACE("TxVote Controller Status : %d", driver_result);
-  if (!keytype_no_err)
-    return UPLL_RC_SUCCESS;
-  // Return vote Result to UPLLManager
-  driver_result = (driver_result == UPLL_RC_ERR_RESOURCE_DISCONNECTED)?
-                UPLL_RC_SUCCESS : driver_result;
-  // return driver_result;
-  result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) ?
-      UPLL_RC_SUCCESS : result_code;
-  return result_code;
-}
-
-upll_rc_t MoMgrImpl::TxUpdateController(unc_key_type_t keytype,
-                                        uint32_t session_id,
-                                        uint32_t config_id,
-                                        uuc::UpdateCtrlrPhase phase,
-                                        set<string> *affected_ctrlr_set,
-                                        DalDmlIntf *dmi,
-                                        ConfigKeyVal **err_ckv)  {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  DalResultCode db_result;
-  ConfigKeyVal *req = NULL, *nreq = NULL, *ck_main = NULL;
-  controller_domain_t ctrlr_dom, vlink_ctrlr_dom[2];
-  vlink_ctrlr_dom[0].ctrlr = NULL;
-  vlink_ctrlr_dom[0].domain = NULL;
-  vlink_ctrlr_dom[1].ctrlr = NULL;
-  vlink_ctrlr_dom[1].domain = NULL;
-  ctrlr_dom.ctrlr = NULL;
-  ctrlr_dom.domain = NULL;
-  DalCursor *dal_cursor_handle = NULL;
-  IpcResponse ipc_resp;
-  if (affected_ctrlr_set == NULL)
+
+  upll_rc_t MoMgrImpl::TxUpdateController(unc_key_type_t keytype,
+                                          uint32_t session_id,
+                                          uint32_t config_id,
+                                          uuc::UpdateCtrlrPhase phase,
+                                          set<string> *affected_ctrlr_set,
+                                          DalDmlIntf *dmi,
+                                          ConfigKeyVal **err_ckv)  {
+    UPLL_FUNC_TRACE;
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+    DalResultCode db_result;
+    ConfigKeyVal *req = NULL, *nreq = NULL, *ck_main = NULL;
+    controller_domain_t ctrlr_dom, vlink_ctrlr_dom[2];
+    vlink_ctrlr_dom[0].ctrlr = NULL;
+    vlink_ctrlr_dom[0].domain = NULL;
+    vlink_ctrlr_dom[1].ctrlr = NULL;
+    vlink_ctrlr_dom[1].domain = NULL;
+    ctrlr_dom.ctrlr = NULL;
+    ctrlr_dom.domain = NULL;
+    DalCursor *dal_cursor_handle = NULL;
+    IpcResponse ipc_resp;
+    if (affected_ctrlr_set == NULL)
       return UPLL_RC_ERR_GENERIC;
-  unc_keytype_operation_t op = (phase == uuc::kUpllUcpCreate)?UNC_OP_CREATE:
-               ((phase == uuc::kUpllUcpUpdate)?UNC_OP_UPDATE:
-               ((phase == uuc::kUpllUcpDelete)?UNC_OP_DELETE:UNC_OP_INVALID));
+    unc_keytype_operation_t op = (phase == uuc::kUpllUcpCreate)?UNC_OP_CREATE:
+        ((phase == uuc::kUpllUcpUpdate)?UNC_OP_UPDATE:
+         ((phase == uuc::kUpllUcpDelete)?UNC_OP_DELETE:UNC_OP_INVALID));
 
-  if ((UNC_OP_UPDATE == op) && ((UNC_KT_VBR_FLOWFILTER == keytype) ||
-      (UNC_KT_VBRIF_FLOWFILTER == keytype) ||
-      (UNC_KT_VRTIF_FLOWFILTER == keytype))) {
+    if ((UNC_OP_UPDATE == op) && ((UNC_KT_VBR_FLOWFILTER == keytype) ||
+                                  (UNC_KT_VBRIF_FLOWFILTER == keytype) ||
+                                  (UNC_KT_VRTIF_FLOWFILTER == keytype))) {
       // Update operation not supported.
       // return success
-    return UPLL_RC_SUCCESS;
-  }
-  result_code = DiffConfigDB(UPLL_DT_CANDIDATE, UPLL_DT_RUNNING,
-                     op, req, nreq, &dal_cursor_handle, dmi, MAINTBL);
-  while (result_code == UPLL_RC_SUCCESS) {
+      return UPLL_RC_SUCCESS;
+    }
+    result_code = DiffConfigDB(UPLL_DT_CANDIDATE,
+                               UPLL_DT_RUNNING,
+                               op,
+                               req,
+                               nreq,
+                               &dal_cursor_handle,
+                               dmi,
+                               MAINTBL);
+    while (result_code == UPLL_RC_SUCCESS) {
       //  Get Next Record
-    db_result = dmi->GetNextRecord(dal_cursor_handle);
-    result_code = DalToUpllResCode(db_result);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG(" GetNextRecord failed err code(%d)", result_code);
-      break;
-    }
-    ck_main = NULL;
-    switch (op)   {
-      case UNC_OP_CREATE:
-      case UNC_OP_UPDATE:
-     /* fall through intended */
-        result_code = DupConfigKeyVal(ck_main, req);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_TRACE("DupConfigKeyVal failed %d", result_code);
-          dmi->CloseCursor(dal_cursor_handle, true);
-          delete req;
-          if (nreq) delete nreq;
-          return result_code;
-        }
+      db_result = dmi->GetNextRecord(dal_cursor_handle);
+      result_code = DalToUpllResCode(db_result);
+      if (result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG(" GetNextRecord failed err code(%d)", result_code);
         break;
-     case UNC_OP_DELETE:
-       result_code = GetChildConfigKey(ck_main, req);
-       if (result_code != UPLL_RC_SUCCESS) {
-         UPLL_LOG_TRACE("GetChildConfigKey failed %d", result_code);
-         dmi->CloseCursor(dal_cursor_handle, true);
-         delete req;
-         if (nreq) delete nreq;
-         return result_code;
-       }
-       break;
-     default:
-       return UPLL_RC_ERR_GENERIC;
-    }
-    /* Boundary VLink is not sent to Controller*/
-    if (ck_main->get_key_type() == UNC_KT_VLINK && (op != UNC_OP_DELETE)) {
-      bool bound_vlink = false;
-      VlinkMoMgr *mgr = reinterpret_cast<VlinkMoMgr *>(
-            const_cast<MoManager *>(GetMoManager(UNC_KT_VLINK)));
-      if (!mgr) {
-        UPLL_LOG_DEBUG("Invalid mgr");
-        dmi->CloseCursor(dal_cursor_handle, true);
-        delete req;
-        if (nreq) delete nreq;
-        delete ck_main;
-        return UPLL_RC_ERR_GENERIC;
-      }
-      result_code = mgr->BoundaryVlink(ck_main, vlink_ctrlr_dom, bound_vlink);
-      if (bound_vlink) {
-        UPLL_LOG_TRACE("%s is a boundary Link. Not Sent to Controller",
-            (reinterpret_cast<key_vlink *>(ck_main->get_key()))->vlink_name);
-        if (ck_main) delete ck_main;
-        continue;
-      }
-    }
-    GET_USER_DATA_CTRLR_DOMAIN(ck_main, ctrlr_dom);
-    if ((op == UNC_OP_CREATE) || (op == UNC_OP_UPDATE)) {
-      void *main = GetVal(ck_main);
-      void *val_nrec = (nreq) ? GetVal(nreq) : NULL;
-      if (FilterAttributes(main, val_nrec, false, op)) {
-        if (ck_main) delete ck_main;
-        continue;
       }
-    }
-    if (!OVERLAY_KT(keytype)) {
-      upll_keytype_datatype_t dt_type = (op == UNC_OP_DELETE)?
-        UPLL_DT_RUNNING : UPLL_DT_CANDIDATE;
-      if (ck_main->get_key_type() == UNC_KT_VLINK) {
-        if (ck_main->get_cfg_val()) {
-          GET_USER_DATA_CTRLR_DOMAIN(ck_main->get_cfg_val(), vlink_ctrlr_dom[1]);
-        } else {
-          vlink_ctrlr_dom[1].ctrlr = NULL;
-          vlink_ctrlr_dom[1].domain = NULL;
-        }
+      ck_main = NULL;
+      switch (op)   {
+        case UNC_OP_CREATE:
+        case UNC_OP_UPDATE:
+          /* fall through intended */
+          result_code = DupConfigKeyVal(ck_main, req);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_TRACE("DupConfigKeyVal failed %d", result_code);
+            dmi->CloseCursor(dal_cursor_handle, true);
+            delete req;
+            if (nreq) delete nreq;
+            return result_code;
+          }
+          break;
+        case UNC_OP_DELETE:
+          result_code = GetChildConfigKey(ck_main, req);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_TRACE("GetChildConfigKey failed %d", result_code);
+            dmi->CloseCursor(dal_cursor_handle, true);
+            delete req;
+            if (nreq) delete nreq;
+            return result_code;
+          }
+          break;
+        default:
+          return UPLL_RC_ERR_GENERIC;
       }
-      controller_domain_t *tctrlr_dom =
-       (ck_main->get_key_type() == UNC_KT_VLINK)?
-                     &vlink_ctrlr_dom[1]:&ctrlr_dom;
-      result_code = GetRenamedControllerKey(ck_main, dt_type,
-                                            dmi, tctrlr_dom);
-      if (result_code != UPLL_RC_SUCCESS) {
-         UPLL_LOG_DEBUG(" GetRenamedControllerKey failed err code(%d)",
-                        result_code);
-         if (ck_main)
-           delete ck_main;
-         break;
-      }
-      if (ck_main->get_key_type() == UNC_KT_VLINK && (op == UNC_OP_DELETE)) {
-        /* boundary vlink */
-        VlinkMoMgr *vlink_mgr = reinterpret_cast<VlinkMoMgr *>(
-              const_cast<MoManager *>(GetMoManager(UNC_KT_VLINK)));
-        if (!vlink_mgr) {
+      /* Boundary VLink is not sent to Controller*/
+      if (ck_main->get_key_type() == UNC_KT_VLINK && (op != UNC_OP_DELETE)) {
+        bool bound_vlink = false;
+        VlinkMoMgr *mgr = reinterpret_cast<VlinkMoMgr *>(
+            const_cast<MoManager *>(GetMoManager(UNC_KT_VLINK)));
+        if (!mgr) {
           UPLL_LOG_DEBUG("Invalid mgr");
-          if (ck_main) delete ck_main;
-          DELETE_IF_NOT_NULL(req);
           dmi->CloseCursor(dal_cursor_handle, true);
+          delete req;
+          if (nreq) delete nreq;
+          delete ck_main;
           return UPLL_RC_ERR_GENERIC;
         }
-        unc_key_type_t ktype[2] = {UNC_KT_ROOT, UNC_KT_ROOT};
-        for (int vnode_count = 0; vnode_count < 2; vnode_count++)
-          ktype[vnode_count] = vlink_mgr->
-                               GetVlinkVnodeIfKeyType(ck_main, vnode_count);
-        if (ktype[0] == UNC_KT_VUNK_IF || ktype[1] == UNC_KT_VUNK_IF ||
-           strncmp(reinterpret_cast<const char *>(ctrlr_dom.ctrlr), 
-                   reinterpret_cast<const char *>(tctrlr_dom->ctrlr), 
-                   kMaxLenCtrlrId + 1) ||
-           strncmp(reinterpret_cast<const char *>(ctrlr_dom.domain), 
-                   reinterpret_cast<const char *>(tctrlr_dom->domain), 
-                   kMaxLenDomainId + 1)) {
-          UPLL_LOG_TRACE("%s is a boundary Link. Not Sent to Controller/n",
-            (reinterpret_cast<key_vlink *>(ck_main->get_key()))->vlink_name);
-          if (ck_main)
-            delete ck_main;
+        result_code = mgr->BoundaryVlink(ck_main,
+                                         vlink_ctrlr_dom,
+                                         bound_vlink);
+        if (bound_vlink) {
+          UPLL_LOG_TRACE("%s is a boundary Link. Not Sent to Controller",
+                         (reinterpret_cast<key_vlink *>
+                          (ck_main->get_key()))->vlink_name);
+          if (ck_main) delete ck_main;
           continue;
         }
       }
-    } else if  (op == UNC_OP_DELETE) {
-      UPLL_LOG_TRACE("Overlay KeyType %d", keytype);
-      DbSubOp dbop = {kOpReadSingle, kOpMatchNone,
-                      kOpInOutCtrlr | kOpInOutDomain};
-      result_code = ReadConfigDB(ck_main, UPLL_DT_RUNNING,
-                                 UNC_OP_READ, dbop, dmi, MAINTBL);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("ReadConfigDB from running failed %d", result_code);
-        DELETE_IF_NOT_NULL(req);
-        dmi->CloseCursor(dal_cursor_handle, true);
-        return UPLL_RC_ERR_GENERIC;
+      GET_USER_DATA_CTRLR_DOMAIN(ck_main, ctrlr_dom);
+      if ((op == UNC_OP_CREATE) || (op == UNC_OP_UPDATE)) {
+        void *main = GetVal(ck_main);
+        void *val_nrec = (nreq) ? GetVal(nreq) : NULL;
+        if (FilterAttributes(main, val_nrec, false, op)) {
+          if (ck_main) delete ck_main;
+          continue;
+        }
       }
-      if (keytype == UNC_KT_VTUNNEL || keytype == UNC_KT_VTUNNEL_IF) {
-        result_code = PopulateDriverDeleteCkv(ck_main, dmi, UPLL_DT_RUNNING);
+
+      /* VlanmapOnBoundary: get the flags */
+      uint8_t flags = 0;
+      GET_USER_DATA_FLAGS(ck_main, flags);
+
+      if (!OVERLAY_KT(keytype)) {
+        upll_keytype_datatype_t dt_type = (op == UNC_OP_DELETE)?
+            UPLL_DT_RUNNING : UPLL_DT_CANDIDATE;
+        if (ck_main->get_key_type() == UNC_KT_VLINK) {
+          if (ck_main->get_cfg_val()) {
+            GET_USER_DATA_CTRLR_DOMAIN(ck_main->get_cfg_val(),
+                                       vlink_ctrlr_dom[1]);
+          } else {
+            vlink_ctrlr_dom[1].ctrlr = NULL;
+            vlink_ctrlr_dom[1].domain = NULL;
+          }
+        }
+        controller_domain_t *tctrlr_dom =
+            (ck_main->get_key_type() == UNC_KT_VLINK)?
+            &vlink_ctrlr_dom[1]:&ctrlr_dom;
+        result_code = GetRenamedControllerKey(ck_main, dt_type,
+                                              dmi, tctrlr_dom);
         if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("Couldnt form Driver Val structure %d", result_code);
-          if (ck_main) delete ck_main;
+          UPLL_LOG_DEBUG(" GetRenamedControllerKey failed err code(%d)",
+                         result_code);
+          if (ck_main)
+            delete ck_main;
+          break;
+        }
+        if (ck_main->get_key_type() == UNC_KT_VLINK && (op == UNC_OP_DELETE)) {
+          /* boundary vlink */
+          VlinkMoMgr *vlink_mgr = reinterpret_cast<VlinkMoMgr *>(
+              const_cast<MoManager *>(GetMoManager(UNC_KT_VLINK)));
+          if (!vlink_mgr) {
+            UPLL_LOG_DEBUG("Invalid mgr");
+            if (ck_main) delete ck_main;
+            DELETE_IF_NOT_NULL(req);
+            dmi->CloseCursor(dal_cursor_handle, true);
+            DELETE_IF_NOT_NULL(nreq);
+            return UPLL_RC_ERR_GENERIC;
+          }
+          unc_key_type_t ktype[2] = {UNC_KT_ROOT, UNC_KT_ROOT};
+          for (int vnode_count = 0; vnode_count < 2; vnode_count++)
+            ktype[vnode_count] = vlink_mgr->
+                GetVlinkVnodeIfKeyType(ck_main, vnode_count);
+          if (ktype[0] == UNC_KT_VUNK_IF || ktype[1] == UNC_KT_VUNK_IF ||
+              strncmp(reinterpret_cast<const char *>(ctrlr_dom.ctrlr),
+                      reinterpret_cast<const char *>(tctrlr_dom->ctrlr),
+                      kMaxLenCtrlrId + 1) ||
+              strncmp(reinterpret_cast<const char *>(ctrlr_dom.domain),
+                      reinterpret_cast<const char *>(tctrlr_dom->domain),
+                      kMaxLenDomainId + 1)) {
+            UPLL_LOG_TRACE("%s is a boundary Link. Not Sent to Controller/n",
+                           (reinterpret_cast<key_vlink *>(ck_main->get_key()))->
+                           vlink_name);
+            if (ck_main)
+              delete ck_main;
+            continue;
+          }
+        }
+      } else if  (op == UNC_OP_DELETE) {
+        UPLL_LOG_TRACE("Overlay KeyType %d", keytype);
+        DbSubOp dbop = {kOpReadSingle, kOpMatchNone,
+          kOpInOutCtrlr | kOpInOutDomain};
+        result_code = ReadConfigDB(ck_main, UPLL_DT_RUNNING,
+                                   UNC_OP_READ, dbop, dmi, MAINTBL);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("ReadConfigDB from running failed %d", result_code);
           DELETE_IF_NOT_NULL(req);
+          DELETE_IF_NOT_NULL(nreq);
           dmi->CloseCursor(dal_cursor_handle, true);
           return UPLL_RC_ERR_GENERIC;
         }
+        if (keytype == UNC_KT_VTUNNEL || keytype == UNC_KT_VTUNNEL_IF) {
+          result_code = PopulateDriverDeleteCkv(ck_main, dmi, UPLL_DT_RUNNING);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("Couldnt form Driver Val structure %d",
+                           result_code);
+            if (ck_main) delete ck_main;
+            DELETE_IF_NOT_NULL(req);
+            dmi->CloseCursor(dal_cursor_handle, true);
+            return UPLL_RC_ERR_GENERIC;
+          }
+        }
       }
-    }
-    UPLL_LOG_TRACE("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
-                 ctrlr_dom.domain);
-    // Inserting the controller to Set
-    affected_ctrlr_set->insert
-      (string(reinterpret_cast<char *>(ctrlr_dom.ctrlr)));
-    result_code = SendIpcReq(session_id, config_id, op, UPLL_DT_CANDIDATE,
-      ck_main, &ctrlr_dom, &ipc_resp);
-
-    if (result_code == UPLL_RC_ERR_RESOURCE_DISCONNECTED) {
-      UPLL_LOG_DEBUG(" driver result code - %d", ipc_resp.header.result_code);
-      result_code = UPLL_RC_SUCCESS;
-    }
-    if (result_code != UPLL_RC_SUCCESS) {
-      // If Driver returned error, return the err_ckv received from driver after
-      // getting its UNC key and apdapting the CKV to North Bound API
-      // If update to driver failed, exit the loop.
-      UPLL_LOG_DEBUG("IpcSend failed %d", result_code);
-      upll_keytype_datatype_t dt_type = (op == UNC_OP_DELETE)?
-        UPLL_DT_RUNNING : UPLL_DT_CANDIDATE;
-      upll_rc_t local_rc = GetRenamedUncKey(ipc_resp.ckv_data, dt_type, dmi,
-                                     ctrlr_dom.ctrlr);
-      if (UPLL_RC_SUCCESS != local_rc &&
-          UPLL_RC_ERR_NO_SUCH_INSTANCE != local_rc) {
-        UPLL_LOG_DEBUG("GetRenamedUncKey failed %d", local_rc);
-        DELETE_IF_NOT_NULL(ck_main);
-        DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
-       result_code = UPLL_RC_ERR_GENERIC;
-        break;
+      UPLL_LOG_TRACE("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
+                     ctrlr_dom.domain);
+      // Inserting the controller to Set
+      affected_ctrlr_set->insert
+          (string(reinterpret_cast<char *>(ctrlr_dom.ctrlr)));
+      result_code = SendIpcReq(session_id, config_id, op, UPLL_DT_CANDIDATE,
+                               ck_main, &ctrlr_dom, &ipc_resp);
+
+      if (result_code == UPLL_RC_ERR_CTR_DISCONNECTED) {
+        UPLL_LOG_DEBUG(" driver result code - %d",
+                       ipc_resp.header.result_code);
+        result_code = UPLL_RC_SUCCESS;
       }
-      if (ipc_resp.ckv_data) {
-        upll_rc_t local_rc = AdaptValToVtnService(ipc_resp.ckv_data);
-        if (local_rc != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("AdaptValToVtnService failed result_code %d",
-                          local_rc);
-          DELETE_IF_NOT_NULL(ck_main);
-          DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
-         result_code = UPLL_RC_ERR_GENERIC;
-          break;
+      if (result_code != UPLL_RC_SUCCESS) {
+        // If Driver returned error, return the err_ckv received
+        // from driver after
+        // getting its UNC key and apdapting the CKV to North Bound API
+        // If update to driver failed, exit the loop.
+        UPLL_LOG_DEBUG("IpcSend failed %d", result_code);
+
+        /* VlanmapOnBoundary: Added vlanmap check */
+        upll_rc_t local_rc = UPLL_RC_SUCCESS;
+        if (ck_main->get_key_type() == UNC_KT_VBR_VLANMAP) {
+          VlanMapMoMgr *vlanmap_mgr = reinterpret_cast<VlanMapMoMgr *>(
+              const_cast<MoManager *>(GetMoManager(UNC_KT_VBR_VLANMAP)));
+
+          SET_USER_DATA_FLAGS(ck_main, flags);
+
+          UPLL_LOG_DEBUG("IpcSend failed %d", result_code);
+          ConfigKeyVal *err = NULL;
+
+          /* Case1: commit(del) - Check in RUNNING since no info exists in CAND
+           * Case2: Commit(Cr/upd) - Check in CANDIDATE always */
+          upll_keytype_datatype_t dttype = (uuc::kUpllUcpDelete == phase) ?
+              UPLL_DT_RUNNING : UPLL_DT_CANDIDATE;
+          local_rc = vlanmap_mgr->TranslateError(&err, ck_main, dmi, dttype);
+          if (local_rc != UPLL_RC_SUCCESS) {
+            UPLL_LOG_ERROR("Failed to convert vlanmap error ckv");
+            return local_rc;
+          }
+
+          if (flags & BOUNDARY_VLANMAP_FLAG) {
+            SET_USER_DATA_CTRLR(err, ctrlr_dom.ctrlr);
+            DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
+            *err_ckv = err;
+            DELETE_IF_NOT_NULL(ck_main);
+            break;
+          } else {
+            DELETE_IF_NOT_NULL(err);
+          }
         }
-        *err_ckv = ipc_resp.ckv_data;
+
+        upll_keytype_datatype_t dt_type = (op == UNC_OP_DELETE)?
+            UPLL_DT_RUNNING : UPLL_DT_CANDIDATE;
+        if (ipc_resp.ckv_data) {
+          local_rc = GetRenamedUncKey(ipc_resp.ckv_data, dt_type, dmi,
+                                      ctrlr_dom.ctrlr);
+          if (UPLL_RC_SUCCESS != local_rc &&
+              UPLL_RC_ERR_NO_SUCH_INSTANCE != local_rc) {
+            UPLL_LOG_DEBUG("GetRenamedUncKey failed %d", local_rc);
+            DELETE_IF_NOT_NULL(ck_main);
+            DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
+            result_code = UPLL_RC_ERR_GENERIC;
+            break;
+          }
+          local_rc = AdaptValToVtnService(ipc_resp.ckv_data);
+          if (local_rc != UPLL_RC_SUCCESS &&
+              local_rc != UPLL_RC_ERR_GENERIC) {
+            // If no val structure, ignore error
+            UPLL_LOG_DEBUG("AdaptValToVtnService failed result_code %d",
+                           local_rc);
+            DELETE_IF_NOT_NULL(ck_main);
+            DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
+            result_code = UPLL_RC_ERR_GENERIC;
+            break;
+          }
+          SET_USER_DATA_CTRLR(ipc_resp.ckv_data, ctrlr_dom.ctrlr);
+          *err_ckv = ipc_resp.ckv_data;
+        }
+        if (ck_main)
+          delete ck_main;
+        break;
       }
-      if (ck_main)
-        delete ck_main;
-      break;
+      DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
+      DELETE_IF_NOT_NULL(ck_main);
     }
-    DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
-    DELETE_IF_NOT_NULL(ck_main);
+    if (dal_cursor_handle)
+      dmi->CloseCursor(dal_cursor_handle, true);
+    if (req)
+      delete req;
+    if (nreq)
+      delete nreq;
+    result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)?
+        UPLL_RC_SUCCESS : result_code;
+    return result_code;
   }
-  if (dal_cursor_handle)
-    dmi->CloseCursor(dal_cursor_handle, true);
-  if (req)
-    delete req;
-  if (nreq)
-    delete nreq;
-  result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)?
-    UPLL_RC_SUCCESS : result_code;
-  return result_code;
-}
-
-upll_rc_t MoMgrImpl::SendIpcReq(uint32_t session_id,
-                               uint32_t config_id,
-                               unc_keytype_operation_t op,
-                               upll_keytype_datatype_t dt_type,
-                               ConfigKeyVal *&ckv,
-                               controller_domain *ctrlr_dom,
-                               IpcResponse *ipc_resp) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t rc = UPLL_RC_SUCCESS;
-  if (!ipc_resp)
-    return UPLL_RC_ERR_GENERIC;
-  memset(ipc_resp, 0, sizeof(IpcResponse));
-  IpcRequest ipc_req;
-  memset(&ipc_req, 0, sizeof(ipc_req));
-  ipc_req.header.clnt_sess_id = session_id;
-  ipc_req.header.config_id = config_id;
-  ipc_req.header.operation = op;
-  ipc_req.header.datatype = dt_type;
-  ipc_req.ckv_data = ckv;
-
-  UPLL_LOG_TRACE(" session id - %d, configuration id - %d",
-                 session_id, config_id);
-
-  if (ctrlr_dom == NULL) {
-    if (!uui::IpcUtil::SendReqToPhysical(UPPL_IPC_SVC_NAME, UPPL_SVC_READREQ,
-                                         &ipc_req, ipc_resp)) {
-      UPLL_LOG_INFO("Send Request to physical for Key %d failed ", ckv->get_key_type());
-    }
-  } else {
-    if (!IpcUtil::SendReqToDriver((const char *)ctrlr_dom->ctrlr,
-                                  reinterpret_cast<char *>(ctrlr_dom->domain),
-                                  NULL,
-                                  static_cast<pfc_ipcid_t>(0),
-                                  &ipc_req, true, ipc_resp)) {
-      UPLL_LOG_INFO("Request to driver for Key %d for controller %s failed ",
-                    ckv->get_key_type(), reinterpret_cast<char *>(ctrlr_dom->ctrlr));
+
+  upll_rc_t MoMgrImpl::SendIpcReq(uint32_t session_id,
+                                  uint32_t config_id,
+                                  unc_keytype_operation_t op,
+                                  upll_keytype_datatype_t dt_type,
+                                  ConfigKeyVal *&ckv,
+                                  controller_domain *ctrlr_dom,
+                                  IpcResponse *ipc_resp) {
+    UPLL_FUNC_TRACE;
+    upll_rc_t rc = UPLL_RC_SUCCESS;
+    if (!ipc_resp)
+      return UPLL_RC_ERR_GENERIC;
+    memset(ipc_resp, 0, sizeof(IpcResponse));
+    IpcRequest ipc_req;
+    memset(&ipc_req, 0, sizeof(ipc_req));
+    ipc_req.header.clnt_sess_id = session_id;
+    ipc_req.header.config_id = config_id;
+    ipc_req.header.operation = op;
+    ipc_req.header.datatype = dt_type;
+    ipc_req.ckv_data = ckv;
+
+    UPLL_LOG_TRACE(" session id - %d, configuration id - %d",
+                   session_id, config_id);
+
+    if (ctrlr_dom == NULL) {
+      /* VlanmapOnBoundary: To get the boundary name
+       * associated with the logical_port_id */
+      if (ckv->get_key_type() == UNC_KT_BOUNDARY && op ==
+          UNC_OP_READ_SIBLING) {
+        ipc_req.header.rep_count = 10000;
+      }
+      if (!uui::IpcUtil::SendReqToPhysical(UPPL_IPC_SVC_NAME, UPPL_SVC_READREQ,
+                                           &ipc_req, ipc_resp)) {
+        UPLL_LOG_INFO("Send Request to physical for Key %d failed ",
+                      ckv->get_key_type());
+      }
+    } else {
+      if (!IpcUtil::SendReqToDriver((const char *)ctrlr_dom->ctrlr,
+                                    reinterpret_cast<char *>
+                                    (ctrlr_dom->domain),
+                                    NULL,
+                                    static_cast<pfc_ipcid_t>(0),
+                                    &ipc_req, true, ipc_resp)) {
+        UPLL_LOG_INFO("Request to driver for Key %d for controller %s failed ",
+                      ckv->get_key_type(), reinterpret_cast<char *>
+                      (ctrlr_dom->ctrlr));
+      }
     }
+    rc = ipc_resp->header.result_code;
+    if (rc != UPLL_RC_SUCCESS) {
+      UPLL_LOG_INFO("Request for Key %d failed  with error %d",
+                    ckv->get_key_type(), rc);
+    }
+    return rc;
   }
-  rc = ipc_resp->header.result_code;
-  if (rc != UPLL_RC_SUCCESS) {
-    UPLL_LOG_INFO("Request for Key %d failed  with error %d",
-                  ckv->get_key_type(), rc);
-  }
-  return rc;
-}
-
-
-
-upll_rc_t MoMgrImpl::TxCopyCandidateToRunning(
-                                    unc_key_type_t key_type,
-                                    CtrlrCommitStatusList *ctrlr_commit_status,
-                                    DalDmlIntf* dmi) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  unc_keytype_operation_t op[] = {UNC_OP_DELETE, UNC_OP_CREATE, UNC_OP_UPDATE};
-  ConfigKeyVal *req = NULL, *nreq = NULL, *ckey = NULL;
-  DalCursor *cfg1_cursor;
-  DalResultCode db_result = uud::kDalRcSuccess;
-  int nop = sizeof(op)/ sizeof(op[0]);
-  uint8_t *ctrlr_id = NULL;
-  map<string, int> ctrlr_result;
-  CtrlrCommitStatusList::iterator ccsListItr;
-  CtrlrCommitStatus *ccStatusPtr;
-
-  if ((ctrlr_commit_status == NULL) || (dmi == NULL))
-    return UPLL_RC_ERR_GENERIC;
-    for (ccsListItr = ctrlr_commit_status->begin();
-    ccsListItr != ctrlr_commit_status->end(); ++ccsListItr) {
-      ccStatusPtr = *ccsListItr;
-      ctrlr_id =
-         reinterpret_cast<uint8_t *>(
-            const_cast<char *>(ccStatusPtr->ctrlr_id.c_str()));
-      ctrlr_result[ccStatusPtr->ctrlr_id] = ccStatusPtr->upll_ctrlr_result;
-      if (ccStatusPtr->upll_ctrlr_result != UPLL_RC_SUCCESS) {
-        for (ConfigKeyVal *ck_err = ccStatusPtr->err_ckv; ck_err != NULL;
-                      ck_err = ck_err->get_next_cfg_key_val()) {
-        if (ck_err->get_key_type() != key_type) continue;
-        if (!OVERLAY_KT(key_type)) {
-          result_code = GetRenamedUncKey(ck_err, UPLL_DT_CANDIDATE,
-                                       dmi, ctrlr_id);
-          if (result_code != UPLL_RC_SUCCESS &&
-              result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-            UPLL_LOG_DEBUG("GetRenamedUncKey failed. Result: %d", result_code);
-            return result_code;
+
+
+
+  upll_rc_t MoMgrImpl::TxCopyCandidateToRunning(
+      unc_key_type_t key_type,
+      CtrlrCommitStatusList *ctrlr_commit_status,
+      DalDmlIntf* dmi) {
+    UPLL_FUNC_TRACE;
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+    unc_keytype_operation_t op[] = {UNC_OP_DELETE,
+      UNC_OP_CREATE,
+      UNC_OP_UPDATE};
+    ConfigKeyVal *req = NULL, *nreq = NULL, *ckey = NULL;
+    DalCursor *cfg1_cursor;
+    DalResultCode db_result = uud::kDalRcSuccess;
+    int nop = sizeof(op)/ sizeof(op[0]);
+    uint8_t *ctrlr_id = NULL;
+    map<string, int> ctrlr_result;
+    CtrlrCommitStatusList::iterator ccsListItr;
+    CtrlrCommitStatus *ccStatusPtr;
+
+    if (ctrlr_commit_status != NULL) {
+      for (ccsListItr = ctrlr_commit_status->begin();
+           ccsListItr != ctrlr_commit_status->end(); ++ccsListItr) {
+        ccStatusPtr = *ccsListItr;
+        ctrlr_id =
+            reinterpret_cast<uint8_t *>(
+                const_cast<char *>(ccStatusPtr->ctrlr_id.c_str()));
+        ctrlr_result[ccStatusPtr->ctrlr_id] = ccStatusPtr->upll_ctrlr_result;
+        if (ccStatusPtr->upll_ctrlr_result != UPLL_RC_SUCCESS) {
+          for (ConfigKeyVal *ck_err = ccStatusPtr->err_ckv; ck_err != NULL;
+               ck_err = ck_err->get_next_cfg_key_val()) {
+            if (ck_err->get_key_type() != key_type) continue;
+            if (!OVERLAY_KT(key_type)) {
+              result_code = GetRenamedUncKey(ck_err, UPLL_DT_CANDIDATE,
+                                             dmi, ctrlr_id);
+              if (result_code != UPLL_RC_SUCCESS &&
+                  result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                UPLL_LOG_DEBUG("GetRenamedUncKey failed. Result: %d",
+                               result_code);
+                return result_code;
+              }
+            }
+
+            /* VlanmapOnBoundary: Added vlanmap check */
+            if (ck_err->get_key_type() == UNC_KT_VBR_VLANMAP) {
+              ConfigKeyVal *vlanmap_ckv = NULL;
+              VlanMapMoMgr *vlanmap_mgr = reinterpret_cast<VlanMapMoMgr *>(
+                  const_cast<MoManager *>(GetMoManager(UNC_KT_VBR_VLANMAP)));
+
+              result_code = vlanmap_mgr->GetChildConfigKey(vlanmap_ckv, ck_err);
+              DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
+                kOpInOutFlag | kOpInOutDomain | kOpInOutCtrlr};
+              result_code = vlanmap_mgr->ReadConfigDB(vlanmap_ckv,
+                                                      UPLL_DT_CANDIDATE,
+                                                      UNC_OP_READ,
+                                                      dbop,
+                                                      dmi,
+                                                      MAINTBL);
+              if (result_code != UPLL_RC_SUCCESS) {
+                UPLL_LOG_DEBUG("ReadConfigDB from running failed %d",
+                               result_code);
+                return UPLL_RC_ERR_GENERIC;
+              }
+
+              ConfigKeyVal *err_ckv = NULL;
+              /* Case1: commit(del) - Check in CANDIDATE
+               * Case2: Commit(Cr/upd) - Check in CANDIDATE
+               * Since we are not able to check cr or upd or del here */
+              result_code = vlanmap_mgr->TranslateError(&err_ckv,
+                                                        vlanmap_ckv,
+                                                        dmi,
+                                                        UPLL_DT_CANDIDATE);
+              if (result_code != UPLL_RC_SUCCESS) {
+                UPLL_LOG_DEBUG("Returning error %d", result_code);
+                if (err_ckv) delete err_ckv;
+                DELETE_IF_NOT_NULL(vlanmap_ckv);
+                return result_code;
+              }
+              ck_err->ResetWith(err_ckv);
+              continue;
+            }
+
+            if (ck_err->get_key_type() == UNC_KT_VBR_IF) {
+              ConfigKeyVal *ck_vlink = NULL;
+              VlinkMoMgr *mgr = reinterpret_cast<VlinkMoMgr *>(
+                  const_cast<MoManager *>(GetMoManager(UNC_KT_VLINK)));
+              if (!mgr) {
+                UPLL_LOG_DEBUG("Invalid mgr");
+                return UPLL_RC_ERR_GENERIC;
+              }
+              vn_if_type iftype;
+              result_code = mgr->CheckIfMemberOfVlink(ck_err,
+                                                      UPLL_DT_CANDIDATE,
+                                                      ck_vlink,
+                                                      dmi,
+                                                      iftype);
+              /* replace ck_err with ck_vlink */
+              if (result_code == UPLL_RC_SUCCESS) {
+                if ((iftype == kVlinkBoundaryNode1) ||
+                    (iftype == kVlinkBoundaryNode2)) {
+                  ck_err->ResetWith(ck_vlink);
+                  continue;
+                } else {
+                  if (ck_vlink) delete ck_vlink;
+                  UPLL_LOG_DEBUG("%s is an internal vlink",
+                                 (ck_err->ToStr()).c_str());
+                }
+              } else if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                UPLL_LOG_DEBUG("Returning error %d", result_code);
+                if (ck_vlink) delete ck_vlink;
+                result_code = AdaptValToVtnService(ck_err);
+                return UPLL_RC_ERR_GENERIC;
+              } else {
+                if (ck_vlink) delete ck_vlink;
+                UPLL_LOG_TRACE("%s is not part of a vlink",
+                               (ck_err->ToStr()).c_str());
+              }
+            }
+            result_code = AdaptValToVtnService(ck_err);
+            if (result_code != UPLL_RC_SUCCESS) {
+              UPLL_LOG_DEBUG("Returning error %d\n", result_code);
+              return result_code;
+            }
           }
         }
-        if (ck_err->get_key_type() == UNC_KT_VBR_IF) {
-          ConfigKeyVal *ck_vlink = NULL;
-          VlinkMoMgr *mgr = reinterpret_cast<VlinkMoMgr *>(
-              const_cast<MoManager *>(GetMoManager(UNC_KT_VLINK)));
-          if (!mgr) {
-            UPLL_LOG_DEBUG("Invalid mgr");
-            return UPLL_RC_ERR_GENERIC;
-          }
-          vn_if_type iftype;
-          result_code = mgr->CheckIfMemberOfVlink(ck_err,
-                                       UPLL_DT_CANDIDATE, ck_vlink, dmi, iftype);
-         /* replace ck_err with ck_vlink */
-          if (result_code == UPLL_RC_SUCCESS) {
-            if ((iftype == kVlinkBoundaryNode1) ||
-                (iftype == kVlinkBoundaryNode2)) {
-              ck_err->ResetWith(ck_vlink);
-              continue;
+      }
+    }
+    for (int i = 0; i < nop; i++)  {
+      result_code= DiffConfigDB(UPLL_DT_CANDIDATE,
+                                UPLL_DT_RUNNING,
+                                op[i],
+                                req,
+                                nreq,
+                                &cfg1_cursor,
+                                dmi,
+                                NULL,
+                                MAINTBL,
+                                true);
+      while (result_code == UPLL_RC_SUCCESS) {
+        db_result = dmi->GetNextRecord(cfg1_cursor);
+        result_code = DalToUpllResCode(db_result);
+        if (result_code != UPLL_RC_SUCCESS)
+          break;
+        if (op[i] == UNC_OP_DELETE)
+          result_code = GetChildConfigKey(ckey, req);
+        else
+          result_code = DupConfigKeyVal(ckey, req, MAINTBL);
+        if (result_code != UPLL_RC_SUCCESS)
+          break;
+        string controller;
+        uint32_t driver_result;
+        switch (ckey->get_key_type()) {
+          case UNC_KT_VUNKNOWN:
+          case UNC_KT_VUNK_IF:
+            driver_result = UPLL_RC_SUCCESS;
+            break;
+          default:
+            GET_USER_DATA_CTRLR(ckey, ctrlr_id);
+            controller = reinterpret_cast<char *>(ctrlr_id);
+            if (ctrlr_result.empty()) {
+              UPLL_LOG_TRACE("ctrlr_commit_status is NULL");
+              driver_result = UPLL_RC_ERR_CTR_DISCONNECTED;
             } else {
-              if (ck_vlink) delete ck_vlink;
-              UPLL_LOG_DEBUG("%s is an internal vlink", (ck_err->ToStr()).c_str());
+              driver_result = ctrlr_result[controller];
+            }
+        }
+        upll_keytype_datatype_t dt_type =
+            (op[i] == UNC_OP_CREATE)? UPLL_DT_STATE:UPLL_DT_RUNNING;
+        if (op[i] != UNC_OP_DELETE) {
+          if (key_type == UNC_KT_VLINK) {
+            uint8_t *ctrlr_id2 = NULL;
+            GET_USER_DATA_CTRLR(ckey->get_cfg_val(), ctrlr_id2);
+            if (ctrlr_id2 && strncmp(reinterpret_cast<const char *>(ctrlr_id),
+                                     reinterpret_cast<const char *>(ctrlr_id2),
+                                     kMaxLenCtrlrId+1)) {
+              string controller2(reinterpret_cast<char *>(ctrlr_id2));
+              if (ctrlr_result.empty()) {
+                UPLL_LOG_TRACE("ctrlr_commit_status is NULL");
+                UpdateConfigStatus(ckey,
+                                   op[i],
+                                   UPLL_RC_ERR_CTR_DISCONNECTED,
+                                   nreq,
+                                   dmi);
+              } else {
+                uint32_t cons_result = ctrlr_result[controller2] |
+                    ctrlr_result[controller];
+                UpdateConfigStatus(ckey, op[i], cons_result, nreq, dmi);
+              }
+            }  else {
+              if (ctrlr_result.empty()) {
+                UPLL_LOG_TRACE("ctrlr_commit_status is NULL");
+                UpdateConfigStatus(ckey, op[i], UPLL_RC_ERR_CTR_DISCONNECTED,
+                                   nreq, dmi);
+              } else {
+                UpdateConfigStatus(ckey, op[i], ctrlr_result[controller],
+                                   nreq, dmi);
+              }
             }
-          } else if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-            UPLL_LOG_DEBUG("Returning error %d", result_code);
-            if (ck_vlink) delete ck_vlink;
-            result_code = AdaptValToVtnService(ck_err);
-            return UPLL_RC_ERR_GENERIC;
+          } else if ((op[i] == UNC_OP_UPDATE) && VN_IF_KEYTYPE(key_type)) {
+            UpdateConfigStatus(ckey, op[i], driver_result, nreq, dmi);
           } else {
-            if (ck_vlink) delete ck_vlink;
-            UPLL_LOG_TRACE("%s is not part of a vlink", (ck_err->ToStr()).c_str());
+            UpdateConfigStatus(ckey, op[i], driver_result, nreq, dmi);
+          }
+          /* if portmapping / admin status on kt is updated,
+           *  oper status has to be reset*/
+          if (GetStateVal(ckey))
+            dt_type = UPLL_DT_STATE;
+        } else {
+          if (OperStatusSupported(ckey->get_key_type())) {
+            result_code = UpdateParentOperStatus(ckey, dmi);
+            if (result_code != UPLL_RC_SUCCESS) {
+              delete ckey;
+              DELETE_IF_NOT_NULL(req);
+              DELETE_IF_NOT_NULL(nreq);
+              if (cfg1_cursor)
+                dmi->CloseCursor(cfg1_cursor, true);
+              UPLL_LOG_DEBUG("Returning error %d\n", result_code);
+              return result_code;
+            }
           }
         }
-        result_code = AdaptValToVtnService(ck_err);
+        DbSubOp dbop_update = {kOpNotRead, kOpMatchNone, kOpInOutCs |
+          kOpInOutFlag | kOpInOutCtrlr | kOpInOutDomain};
+        result_code = UpdateConfigDB(ckey, dt_type, op[i], dmi, &dbop_update,
+                                     MAINTBL);
         if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("Returning error %d\n", result_code);
-          return result_code;
+          delete ckey;
+          DELETE_IF_NOT_NULL(req);
+          DELETE_IF_NOT_NULL(nreq);
+          if (cfg1_cursor)
+            dmi->CloseCursor(cfg1_cursor, true);
+          UPLL_LOG_DEBUG("Returning error %d", result_code);
+          return UPLL_RC_ERR_GENERIC;
         }
-      }
-    }
-  }
-  for (int i = 0; i < nop; i++)  {
-    result_code= DiffConfigDB(UPLL_DT_CANDIDATE, UPLL_DT_RUNNING, op[i],
-          req, nreq, &cfg1_cursor, dmi, NULL, MAINTBL, true);
-    while (result_code == UPLL_RC_SUCCESS) {
-      db_result = dmi->GetNextRecord(cfg1_cursor);
-      result_code = DalToUpllResCode(db_result);
-      if (result_code != UPLL_RC_SUCCESS)
-        break;
-      if (op[i] == UNC_OP_DELETE)
-        result_code = GetChildConfigKey(ckey, req);
-      else
-        result_code = DupConfigKeyVal(ckey, req, MAINTBL);
-      if (result_code != UPLL_RC_SUCCESS)
-        break;
-      string controller;
-      uint32_t driver_result;
-      switch (ckey->get_key_type()) {
-      case UNC_KT_VUNKNOWN:
-      case UNC_KT_VUNK_IF:
-        driver_result = UPLL_RC_SUCCESS;
-        break;
-      default:
-        GET_USER_DATA_CTRLR(ckey, ctrlr_id);
-        controller = reinterpret_cast<char *>(ctrlr_id);
-        driver_result = ctrlr_result[controller];
-      }
-      upll_keytype_datatype_t dt_type = (op[i] == UNC_OP_CREATE)? UPLL_DT_STATE:UPLL_DT_RUNNING;
-      if (op[i] != UNC_OP_DELETE) {
-         if (key_type == UNC_KT_VLINK) {
-           uint8_t *ctrlr_id2 = NULL;
-           GET_USER_DATA_CTRLR(ckey->get_cfg_val(), ctrlr_id2);
-           if (ctrlr_id2 && strncmp(reinterpret_cast<const char *>(ctrlr_id), 
-                                    reinterpret_cast<const char *>(ctrlr_id2),
-                                    kMaxLenCtrlrId+1)) {
-             string controller2(reinterpret_cast<char *>(ctrlr_id2));
-             uint32_t cons_result = ctrlr_result[controller2] |
-                                    ctrlr_result[controller];
-             UpdateConfigStatus(ckey, op[i], cons_result, nreq, dmi);
-           }  else {
-             UpdateConfigStatus(ckey, op[i], ctrlr_result[controller],
-                                nreq, dmi);
-           }
-         } else if ((op[i] == UNC_OP_UPDATE) && VN_IF_KEYTYPE(key_type)) {
-           UpdateConfigStatus(ckey, op[i], driver_result, nreq, dmi);
-         } else {
-           UpdateConfigStatus(ckey, op[i], driver_result, nreq, dmi);
-         }
-         /* if portmapping / admin status on kt is updated,
-          *  oper status has to be reset*/
-         if (GetStateVal(ckey))
-           dt_type = UPLL_DT_STATE;
-      } else {
-         if (OperStatusSupported(ckey->get_key_type())) {
-           result_code = UpdateParentOperStatus(ckey,dmi);
-           if (result_code != UPLL_RC_SUCCESS) {
-             delete ckey;
-             if (cfg1_cursor)
-               dmi->CloseCursor(cfg1_cursor, true);
-             UPLL_LOG_DEBUG("Returning error %d\n",result_code);
-             return result_code;
-           }
-         }
-      }
-      DbSubOp dbop_update = {kOpNotRead, kOpMatchNone, kOpInOutCs |
-                             kOpInOutFlag | kOpInOutCtrlr | kOpInOutDomain};
-      result_code = UpdateConfigDB(ckey, dt_type, op[i], dmi, &dbop_update,
-                                                                  MAINTBL);
-      if (result_code != UPLL_RC_SUCCESS) {
+        EnqueCfgNotification(op[i], UPLL_DT_RUNNING, ckey);
         delete ckey;
-        if (cfg1_cursor)
-          dmi->CloseCursor(cfg1_cursor, true);
-        UPLL_LOG_DEBUG("Returning error %d", result_code);
-        return UPLL_RC_ERR_GENERIC;
+        ckey = NULL;
+      }
+      if (req)
+        delete req;
+      if (nreq)
+        delete nreq;
+      req = nreq = NULL;
+      if (cfg1_cursor) {
+        dmi->CloseCursor(cfg1_cursor, true);
+        cfg1_cursor = NULL;
+      }
+      // Copying Rename Table to Running
+      UPLL_LOG_TRACE("keytype is %d", key_type);
+      if ((key_type == UNC_KT_VBRIDGE) ||
+          (key_type == UNC_KT_VLINK)) {
+        result_code = TxCopyRenameTableFromCandidateToRunning(key_type,
+                                                              op[i], dmi);
+        UPLL_LOG_DEBUG("TxCopyRenameTableFromCandidateToRunning returned %d",
+                       result_code);
       }
-      EnqueCfgNotification(op[i], UPLL_DT_RUNNING, ckey);
-      delete ckey;
-      ckey = NULL;
-    }
-    if (req)
-      delete req;
-    if (nreq)
-      delete nreq;
-    req = nreq = NULL;
-    if (cfg1_cursor) {
-      dmi->CloseCursor(cfg1_cursor, true);
-      cfg1_cursor = NULL;
-    }
-    // Copying Rename Table to Running
-    UPLL_LOG_TRACE("keytype is %d", key_type);
-    if ((key_type == UNC_KT_VBRIDGE) ||
-        (key_type == UNC_KT_VLINK)) {
-      result_code = TxCopyRenameTableFromCandidateToRunning(key_type,
-                                                            op[i], dmi);
-      UPLL_LOG_DEBUG("TxCopyRenameTableFromCandidateToRunning returned %d",
-                                                            result_code);
     }
-  }
-  ctrlr_result.clear();
-  result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)?
-                 UPLL_RC_SUCCESS: result_code;
-  return result_code;
-}
-
-upll_rc_t MoMgrImpl::EnqueCfgNotification(unc_keytype_operation_t op,
-                                          upll_keytype_datatype_t dt_type,
-                                          ConfigKeyVal *ctrlr_key) {
-  UPLL_FUNC_TRACE;
-  ConfigNotification *ck_notify;
-  unc_keytype_datatype_t unc_type = (unc_keytype_datatype_t)dt_type;
-  ConfigKeyVal *okey = NULL;
-  upll_rc_t result_code = GetChildConfigKey(okey, ctrlr_key);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Returning error %d", result_code);
+    if (!ctrlr_result.empty())
+      ctrlr_result.clear();
+    result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)?
+        UPLL_RC_SUCCESS: result_code;
     return result_code;
   }
-  ck_notify = new ConfigNotification(op, unc_type, okey);
-  if (!(ConfigNotifier::BufferNotificationToUpllUser(ck_notify))) {
-    delete ck_notify;
-  } 
-  return UPLL_RC_SUCCESS;
-}
-
-void MoMgrImpl::DumpRenameInfo(ConfigKeyVal *ikey) {
-  UPLL_FUNC_TRACE;
-  if (!ikey || !ikey->get_key()) {
-    UPLL_LOG_TRACE("Input key is NULL");
-    return;
-  }
-  key_rename_vnode_info *rename = reinterpret_cast<key_rename_vnode_info *>(
-      ikey->get_key());
-  UPLL_LOG_TRACE("The Rename for the Key type %d", ikey->get_key_type());
-  if (strlen(reinterpret_cast<char *>(rename->new_unc_vtn_name)))
-    UPLL_LOG_TRACE("new_unc_vtn_name = %s",
-                   reinterpret_cast<char*>(rename->new_unc_vtn_name));
-  if (strlen(reinterpret_cast<char *>(rename->old_unc_vtn_name)))
-    UPLL_LOG_TRACE("old_unc_vtn_name = %s",
-
-                   reinterpret_cast<char*>(rename->old_unc_vtn_name));
-  if (strlen(reinterpret_cast<char *>(rename->new_unc_vnode_name)))
-    UPLL_LOG_TRACE("new_unc_vnode_name = %s",
-                   reinterpret_cast<char*>(rename->new_unc_vnode_name));
-  if (strlen(reinterpret_cast<char *>(rename->old_unc_vnode_name)))
-    UPLL_LOG_TRACE("old_unc_vnode_name = %s",
-                   reinterpret_cast<char*>(rename->old_unc_vnode_name));
-  if (strlen(reinterpret_cast<char *>(rename->ctrlr_vtn_name)))
-    UPLL_LOG_TRACE("ctrlr_vtn_name = %s",
-                   reinterpret_cast<char*>(rename->ctrlr_vtn_name));
-  if (strlen(reinterpret_cast<char *>(rename->ctrlr_vnode_name)))
-    UPLL_LOG_TRACE("ctrlr_vnode_name = %s",
-                   reinterpret_cast<char*>(rename->ctrlr_vnode_name));
-}
-
-
-
-upll_rc_t MoMgrImpl::RenameMo(IpcReqRespHeader *req,
-                              ConfigKeyVal *ikey,
-                              DalDmlIntf *dmi,
-                              const char *ctrlr_id) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  // char ctrlr_name[10]= "ctrlr1"; //its input argument.
-  ConfigKeyVal *okey = NULL;
-  ConfigKeyVal *rename_info = NULL;
-  ConfigKeyVal *dup_ikey = NULL;
-  // char unc_old_name[32];
-  bool renamed   = false;
-  bool no_rename = false;
-  UPLL_LOG_TRACE("RenameMo");
-  if (NULL == ikey || NULL == req) {
-    UPLL_LOG_DEBUG(" Given Input is NULL ");
-    return UPLL_RC_ERR_GENERIC;
-  }
 
-  result_code = ValidateMessage(req, ikey);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("ValidateMessage Return Failure = %d ", result_code);
-    return result_code;
-  }
-  // The new name copy to the okey for checking DT_CANDIDATE
-  result_code = SwapKeyVal(ikey, okey, dmi,
-                 reinterpret_cast<uint8_t *>(const_cast<char *>(ctrlr_id)),
-                 no_rename);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("SwapKeyVal Return Failure = %d ", result_code);
-    DELETE_IF_NOT_NULL(okey);
-    return UPLL_RC_ERR_GENERIC;
+  upll_rc_t MoMgrImpl::EnqueCfgNotification(unc_keytype_operation_t op,
+                                            upll_keytype_datatype_t dt_type,
+                                            ConfigKeyVal *ctrlr_key) {
+    UPLL_FUNC_TRACE;
+    ConfigNotification *ck_notify;
+    unc_keytype_datatype_t unc_type = (unc_keytype_datatype_t)dt_type;
+    ConfigKeyVal *okey = NULL;
+    upll_rc_t result_code = GetChildConfigKey(okey, ctrlr_key);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("Returning error %d", result_code);
+      return result_code;
+    }
+    ck_notify = new ConfigNotification(op, unc_type, okey);
+    if (!(ConfigNotifier::BufferNotificationToUpllUser(ck_notify))) {
+      delete ck_notify;
+    }
+    return UPLL_RC_SUCCESS;
   }
-  result_code = GetChildConfigKey(dup_ikey, ikey);
-  UPLL_LOG_TRACE("DupRenameKey %s", (dup_ikey->ToStrAll()).c_str());
-  UPLL_LOG_TRACE(" Rename No Rename falg = %d", no_rename);
-  UPLL_LOG_TRACE(" After SwapKeyVal Ikey %s", (dup_ikey->ToStrAll()).c_str());
-  UPLL_LOG_TRACE(" After SwapKeyVal Okey %s", (okey->ToStrAll()).c_str());
-  /* the vnode name should not be same */
-  if (!no_rename) {
-    switch (dup_ikey->get_key_type()) {
-    case UNC_KT_VBRIDGE:
-    case UNC_KT_VROUTER:
-    case UNC_KT_VLINK:
-        result_code =  VnodeChecks(okey, req->datatype, dmi);
-        if (UPLL_RC_SUCCESS != result_code) {
-           DELETE_IF_NOT_NULL(dup_ikey);
-           DELETE_IF_NOT_NULL(okey);
-           return UPLL_RC_ERR_GENERIC;
-        }
-        result_code =  VnodeChecks(okey, UPLL_DT_CANDIDATE, dmi);
-        if (UPLL_RC_SUCCESS != result_code) {
-           DELETE_IF_NOT_NULL(dup_ikey);
-           DELETE_IF_NOT_NULL(okey);
-           return UPLL_RC_ERR_GENERIC;
-        }
-    default:
-       break;
+
+  void MoMgrImpl::DumpRenameInfo(ConfigKeyVal *ikey) {
+    UPLL_FUNC_TRACE;
+    if (!ikey || !ikey->get_key()) {
+      UPLL_LOG_TRACE("Input key is NULL");
+      return;
     }
+    key_rename_vnode_info *rename = reinterpret_cast<key_rename_vnode_info *>(
+        ikey->get_key());
+    UPLL_LOG_TRACE("The Rename for the Key type %d", ikey->get_key_type());
+    if (strlen(reinterpret_cast<char *>(rename->new_unc_vtn_name)))
+      UPLL_LOG_TRACE("new_unc_vtn_name = %s",
+                     reinterpret_cast<char*>(rename->new_unc_vtn_name));
+    if (strlen(reinterpret_cast<char *>(rename->old_unc_vtn_name)))
+      UPLL_LOG_TRACE("old_unc_vtn_name = %s",
+
+                     reinterpret_cast<char*>(rename->old_unc_vtn_name));
+    if (strlen(reinterpret_cast<char *>(rename->new_unc_vnode_name)))
+      UPLL_LOG_TRACE("new_unc_vnode_name = %s",
+                     reinterpret_cast<char*>(rename->new_unc_vnode_name));
+    if (strlen(reinterpret_cast<char *>(rename->old_unc_vnode_name)))
+      UPLL_LOG_TRACE("old_unc_vnode_name = %s",
+                     reinterpret_cast<char*>(rename->old_unc_vnode_name));
+    if (strlen(reinterpret_cast<char *>(rename->ctrlr_vtn_name)))
+      UPLL_LOG_TRACE("ctrlr_vtn_name = %s",
+                     reinterpret_cast<char*>(rename->ctrlr_vtn_name));
+    if (strlen(reinterpret_cast<char *>(rename->ctrlr_vnode_name)))
+      UPLL_LOG_TRACE("ctrlr_vnode_name = %s",
+                     reinterpret_cast<char*>(rename->ctrlr_vnode_name));
   }
-  // Set The controller ID into the dup_ikey & okey
-  SET_USER_DATA_CTRLR(dup_ikey, ctrlr_id);
-  SET_USER_DATA_CTRLR(okey, ctrlr_id);
-  // Checks if the PFC name is already renamed
-  dup_ikey->SetCfgVal(NULL);
-  result_code = GetRenamedUncKey(dup_ikey, req->datatype, dmi,
-                  reinterpret_cast<uint8_t *>(const_cast<char *>(ctrlr_id)));
-  if (result_code == UPLL_RC_SUCCESS) {
-     UPLL_LOG_TRACE("Given PFC Exists in Import DB %s", (dup_ikey->ToStrAll()).c_str());
-     result_code = UpdateConfigDB(dup_ikey, req->datatype, UNC_OP_READ,
+
+
+
+  upll_rc_t MoMgrImpl::RenameMo(IpcReqRespHeader *req,
+                                ConfigKeyVal *ikey,
+                                DalDmlIntf *dmi,
+                                const char *ctrlr_id) {
+    UPLL_FUNC_TRACE;
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+    // char ctrlr_name[10]= "ctrlr1"; //its input argument.
+    ConfigKeyVal *okey = NULL;
+    ConfigKeyVal *rename_info = NULL;
+    ConfigKeyVal *dup_ikey = NULL;
+    // char unc_old_name[32];
+    bool renamed   = false;
+    bool no_rename = false;
+    UPLL_LOG_TRACE("RenameMo");
+    if (NULL == ikey || NULL == req) {
+      UPLL_LOG_DEBUG(" Given Input is NULL ");
+      return UPLL_RC_ERR_GENERIC;
+    }
+
+    result_code = ValidateMessage(req, ikey);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("ValidateMessage Return Failure = %d ", result_code);
+      return result_code;
+    }
+    // The new name copy to the okey for checking DT_CANDIDATE
+    result_code = SwapKeyVal(ikey, okey, dmi,
+                             reinterpret_cast<uint8_t *>
+                             (const_cast<char *>(ctrlr_id)),
+                             no_rename);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG("SwapKeyVal Return Failure = %d ", result_code);
+      DELETE_IF_NOT_NULL(okey);
+      return UPLL_RC_ERR_GENERIC;
+    }
+    result_code = GetChildConfigKey(dup_ikey, ikey);
+    UPLL_LOG_TRACE("DupRenameKey %s", (dup_ikey->ToStrAll()).c_str());
+    UPLL_LOG_TRACE(" Rename No Rename falg = %d", no_rename);
+    UPLL_LOG_TRACE(" After SwapKeyVal Ikey %s",
+                   (dup_ikey->ToStrAll()).c_str());
+    UPLL_LOG_TRACE(" After SwapKeyVal Okey %s", (okey->ToStrAll()).c_str());
+    /* the vnode name should not be same */
+    if (!no_rename) {
+      switch (dup_ikey->get_key_type()) {
+        case UNC_KT_VBRIDGE:
+        case UNC_KT_VROUTER:
+        case UNC_KT_VLINK:
+          result_code =  VnodeChecks(okey, req->datatype, dmi);
+          if (UPLL_RC_SUCCESS != result_code) {
+            DELETE_IF_NOT_NULL(dup_ikey);
+            DELETE_IF_NOT_NULL(okey);
+            return UPLL_RC_ERR_GENERIC;
+          }
+          result_code =  VnodeChecks(okey, UPLL_DT_CANDIDATE, dmi);
+          if (UPLL_RC_SUCCESS != result_code) {
+            DELETE_IF_NOT_NULL(dup_ikey);
+            DELETE_IF_NOT_NULL(okey);
+            return UPLL_RC_ERR_GENERIC;
+          }
+        default:
+          break;
+      }
+    }
+    // Set The controller ID into the dup_ikey & okey
+    SET_USER_DATA_CTRLR(dup_ikey, ctrlr_id);
+    SET_USER_DATA_CTRLR(okey, ctrlr_id);
+    // Checks if the PFC name is already renamed
+    dup_ikey->SetCfgVal(NULL);
+    result_code = GetRenamedUncKey(dup_ikey, req->datatype, dmi,
+                                   reinterpret_cast<uint8_t *>
+                                   (const_cast<char *>(ctrlr_id)));
+    if (result_code == UPLL_RC_SUCCESS) {
+      UPLL_LOG_TRACE("Given PFC Exists in Import DB %s",
+                     (dup_ikey->ToStrAll()).c_str());
+      result_code = UpdateConfigDB(dup_ikey, req->datatype, UNC_OP_READ,
                                    dmi, MAINTBL);
-     /* Entry in rename table but no corresponding entry in main table */
-     if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
-       UPLL_LOG_ERROR("UpdateConfigDB Return Failure = %d ", result_code);
-       DELETE_IF_NOT_NULL(dup_ikey);
-       DELETE_IF_NOT_NULL(okey);
-       return UPLL_RC_ERR_GENERIC;
-     }
-     renamed = true;
+      /* Entry in rename table but no corresponding entry in main table */
+      if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
+        UPLL_LOG_ERROR("UpdateConfigDB Return Failure = %d ", result_code);
+        DELETE_IF_NOT_NULL(dup_ikey);
+        DELETE_IF_NOT_NULL(okey);
+        return UPLL_RC_ERR_GENERIC;
+      }
+      renamed = true;
     } else if (result_code != UPLL_RC_SUCCESS &&
                result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
       UPLL_LOG_DEBUG("GetRenamedUncKey failed. Result : %d", result_code);
@@ -1702,52 +2011,58 @@ upll_rc_t MoMgrImpl::RenameMo(IpcReqRespHeader *req,
       return UPLL_RC_ERR_GENERIC;
     }
     /* ensure no other vnode has the renamed name in the main table */
-    result_code = UpdateConfigDB(okey, req->datatype,
+    if (UNC_KT_VTN != okey->get_key_type()) {
+      result_code = UpdateConfigDB(okey, req->datatype,
                                    UNC_OP_READ, dmi, MAINTBL);
-    if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code &&
-          UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
-         UPLL_LOG_DEBUG("UpdateConfigDB Failed %d", result_code);
-          DELETE_IF_NOT_NULL(okey);
-          DELETE_IF_NOT_NULL(dup_ikey);
-         return result_code;
-    }
-    if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code) {
-        UPLL_LOG_DEBUG("Record Exists in DT IMPORT = %d ", result_code);
-         DELETE_IF_NOT_NULL(okey);
-         DELETE_IF_NOT_NULL(dup_ikey);
-        return result_code;
-    }
-      /* Ensure the renamed name does not correspond to an existing UNC name */
-    if (!no_rename) {
-      result_code = UpdateConfigDB(okey, UPLL_DT_CANDIDATE, UNC_OP_READ,
-                                   dmi, MAINTBL);
       if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code &&
           UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
-         UPLL_LOG_DEBUG("UpdateConfigDB Failed %d", result_code);
-         DELETE_IF_NOT_NULL(okey);
-         DELETE_IF_NOT_NULL(dup_ikey);
-         return result_code;
+        UPLL_LOG_DEBUG("UpdateConfigDB Failed %d", result_code);
+        DELETE_IF_NOT_NULL(okey);
+        DELETE_IF_NOT_NULL(dup_ikey);
+        return result_code;
       }
-      if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code &&
-         UNC_KT_VTN != okey->get_key_type()) {
-         UPLL_LOG_DEBUG("Record Exists in DT CANDIDATE %d ", result_code);
-         DELETE_IF_NOT_NULL(okey);
-         DELETE_IF_NOT_NULL(dup_ikey);
-         return result_code;
+      if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code) {
+        UPLL_LOG_DEBUG("Record Exists in DT IMPORT = %d ", result_code);
+        DELETE_IF_NOT_NULL(okey);
+        DELETE_IF_NOT_NULL(dup_ikey);
+        return result_code;
       }
     }
-    if (renamed)    {
-        UPLL_LOG_TRACE("Before Read from Rename Table %s", (dup_ikey->ToStrAll()).c_str());
-        dup_ikey->SetCfgVal(NULL);
-        DbSubOp dbop = {kOpReadSingle, kOpMatchCtrlr, kOpInOutCtrlr | kOpInOutDomain };
-        result_code = ReadConfigDB(dup_ikey, req->datatype, UNC_OP_READ, dbop,
-                                   dmi, RENAMETBL);
-        if (UPLL_RC_SUCCESS != result_code) {
-          UPLL_LOG_TRACE("ERROR :: %d:%s:%s", __LINE__, __FILE__, __func__);
+    /* Ensure the renamed name does not correspond to an existing UNC name */
+    if (!no_rename) {
+      if (UNC_KT_VTN != okey->get_key_type()) {
+        result_code = UpdateConfigDB(okey, UPLL_DT_CANDIDATE, UNC_OP_READ,
+                                     dmi, MAINTBL);
+        if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code &&
+            UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+          UPLL_LOG_DEBUG("UpdateConfigDB Failed %d", result_code);
+          DELETE_IF_NOT_NULL(okey);
+          DELETE_IF_NOT_NULL(dup_ikey);
+          return result_code;
+        }
+        if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code) {
+          UPLL_LOG_DEBUG("Record Exists in DT CANDIDATE %d ", result_code);
           DELETE_IF_NOT_NULL(okey);
           DELETE_IF_NOT_NULL(dup_ikey);
           return result_code;
         }
+      }
+    }
+    if (renamed)    {
+      UPLL_LOG_TRACE("Before Read from Rename Table %s",
+                     (dup_ikey->ToStrAll()).c_str());
+      dup_ikey->SetCfgVal(NULL);
+      DbSubOp dbop = {kOpReadSingle,
+        kOpMatchCtrlr,
+        kOpInOutCtrlr | kOpInOutDomain };
+      result_code = ReadConfigDB(dup_ikey, req->datatype, UNC_OP_READ, dbop,
+                                 dmi, RENAMETBL);
+      if (UPLL_RC_SUCCESS != result_code) {
+        UPLL_LOG_TRACE("ERROR :: %d:%s:%s", __LINE__, __FILE__, __func__);
+        DELETE_IF_NOT_NULL(okey);
+        DELETE_IF_NOT_NULL(dup_ikey);
+        return result_code;
+      }
     }
     /* Get The PFC, Old UNC, and New UNC name and maintains in rename_info
      * dup_ikey -> Old Unc Name (or) Controller Name
@@ -1773,11 +2088,11 @@ upll_rc_t MoMgrImpl::RenameMo(IpcReqRespHeader *req,
     DELETE_IF_NOT_NULL(dup_ikey);
     DELETE_IF_NOT_NULL(rename_info);
     return result_code;
-}
+  }
 
-upll_rc_t MoMgrImpl::MergeImportToCandidate(unc_key_type_t keytype,
-                                            const char *ctrlr_name,
-                                            DalDmlIntf *dmi) {
+  upll_rc_t MoMgrImpl::MergeImportToCandidate(unc_key_type_t keytype,
+                                              const char *ctrlr_name,
+                                              DalDmlIntf *dmi) {
     UPLL_FUNC_TRACE;
     DalResultCode dal_result = uud::kDalRcSuccess;
     UPLL_LOG_TRACE("MergeImportToCandidate ");
@@ -1786,13 +2101,20 @@ upll_rc_t MoMgrImpl::MergeImportToCandidate(unc_key_type_t keytype,
       tbl_index = GetTable((MoMgrTables)tbl, UPLL_DT_IMPORT);
       /* skipping VTN Main Table */
       if (tbl_index < uudst::kDalNumTables && tbl_index != 0) {
-        UPLL_LOG_TRACE("Merging the %d Table ", tbl);
+        UPLL_LOG_TRACE("Merging the Keytype %d, Table %d, Table index %d ",
+                       keytype, tbl, tbl_index);
         if (table[tbl]->get_key_type() != keytype)
           return UPLL_RC_ERR_GENERIC;
         DalBindInfo *dal_bind_info = new DalBindInfo(tbl_index);
-        dal_result = dmi->CopyModifiedInsertRecords(UPLL_DT_CANDIDATE,
-                      UPLL_DT_IMPORT, tbl_index, dal_bind_info);
-        UPLL_LOG_TRACE("%d Table is completed ", tbl);
+        dal_result = dmi->CopyModifiedRecords(UPLL_DT_CANDIDATE,
+                                              UPLL_DT_IMPORT,
+                                              tbl_index,
+                                              dal_bind_info,
+                                              UNC_OP_CREATE);
+        UPLL_LOG_TRACE("%d Table is completed", tbl);
+        if (dal_result == uud::kDalRcRecordNotFound) {
+          dal_result = uud::kDalRcSuccess;
+        }
         if (dal_result != uud::kDalRcSuccess) {
           delete dal_bind_info;
           break;
@@ -1802,120 +2124,114 @@ upll_rc_t MoMgrImpl::MergeImportToCandidate(unc_key_type_t keytype,
     }
     // convert dal_result to result_code
     return DalToUpllResCode(dal_result);
-}
-
-upll_rc_t MoMgrImpl::ImportClear(unc_key_type_t keytype,
-                                 const char *ctrlr_id,
-                                 DalDmlIntf *dmi) {
-  // UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  // cout<<" ImportClear ";
-  for (int tbl = MAINTBL; tbl < ntable; tbl++) {
-    uudst::kDalTableIndex tbl_index;
-    tbl_index = GetTable((MoMgrTables)tbl, UPLL_DT_IMPORT);
-      if ((tbl_index < uudst::kDalNumTables)) {
-        result_code = DalToUpllResCode(dmi->DeleteRecords(UPLL_DT_IMPORT,
-                                          tbl_index, NULL));
-        if ((UPLL_RC_SUCCESS != result_code) &&
-          (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
-          UPLL_LOG_DEBUG("DeleteRecords Failed %d", result_code);
-          return result_code;
-        }
-      }
-    }
-  return UPLL_RC_SUCCESS;
-}
-
-upll_rc_t MoMgrImpl::GetDiffRecord(ConfigKeyVal *ckv_running,
-                                   ConfigKeyVal *ckv_audit,
-                                   uuc::UpdateCtrlrPhase phase, MoMgrTables tbl,
-                                   ConfigKeyVal *&okey,
-                                   DalDmlIntf *dmi,
-                                   bool &invalid_attr) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  ConfigKeyVal *ckv_dup = NULL;
-  okey = NULL;
-  DbSubOp dbop = {kOpReadSingle, kOpMatchNone, kOpInOutCtrlr | kOpInOutDomain|
-                                               kOpInOutFlag | kOpInOutCs};
-  switch (phase) {
-    case uuc::kUpllUcpDelete:
-      UPLL_LOG_TRACE("Deleted record is %s ", ckv_running->ToStrAll().c_str());
-      result_code = GetChildConfigKey(okey, ckv_running);
-      if (result_code != UPLL_RC_SUCCESS) {
-         UPLL_LOG_DEBUG("GetChildConfigKey failed. err_code & phase %d %d",
-                           result_code, phase);
-         return result_code;
-      }
-    break;
-    case uuc::kUpllUcpCreate:
-      if (tbl == CTRLRTBL) {
-        UPLL_LOG_TRACE("Created  record fot ctrlr_tbl is %s ", ckv_running->ToStrAll().c_str());
-        dbop.inoutop = kOpInOutCtrlr | kOpInOutDomain;
+  }
+
+  upll_rc_t MoMgrImpl::ImportClear(unc_key_type_t keytype,
+                                   const char *ctrlr_id,
+                                   DalDmlIntf *dmi) {
+    UPLL_FUNC_TRACE;
+    return (ClearConfiguration(keytype, dmi, UPLL_DT_IMPORT));
+  }
+
+  upll_rc_t MoMgrImpl::GetDiffRecord(ConfigKeyVal *ckv_running,
+                                     ConfigKeyVal *ckv_audit,
+                                     uuc::UpdateCtrlrPhase phase,
+                                     MoMgrTables tbl,
+                                     ConfigKeyVal *&okey,
+                                     DalDmlIntf *dmi,
+                                     bool &invalid_attr) {
+    UPLL_FUNC_TRACE;
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+    ConfigKeyVal *ckv_dup = NULL;
+    okey = NULL;
+    DbSubOp dbop = {kOpReadSingle,
+      kOpMatchNone,
+      kOpInOutCtrlr | kOpInOutDomain|
+      kOpInOutFlag | kOpInOutCs};
+    switch (phase) {
+      case uuc::kUpllUcpDelete:
+        UPLL_LOG_TRACE("Deleted record is %s ",
+                       ckv_running->ToStrAll().c_str());
         result_code = GetChildConfigKey(okey, ckv_running);
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("GetChildConfigKey failed. err_code & phase %d %d",
-                           result_code, phase);
+                         result_code, phase);
           return result_code;
         }
-        result_code = ReadConfigDB(okey, UPLL_DT_RUNNING,
+        break;
+      case uuc::kUpllUcpCreate:
+        if (tbl == CTRLRTBL) {
+          UPLL_LOG_TRACE("Created  record fot ctrlr_tbl is %s ",
+                         ckv_running->ToStrAll().c_str());
+          dbop.inoutop = kOpInOutCtrlr | kOpInOutDomain;
+          result_code = GetChildConfigKey(okey, ckv_running);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("GetChildConfigKey failed. err_code & phase %d %d",
+                           result_code, phase);
+            return result_code;
+          }
+          result_code = ReadConfigDB(okey, UPLL_DT_RUNNING,
                                      UNC_OP_READ, dbop, dmi, MAINTBL);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("ReadConfigDB failed. err_code & phase %d %d",
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("ReadConfigDB failed. err_code & phase %d %d",
                            result_code, phase);
-          return result_code;
-        }
-      } else {
-          UPLL_LOG_TRACE("Created  record is %s ", ckv_running->ToStrAll().c_str());
+            return result_code;
+          }
+        } else {
+          UPLL_LOG_TRACE("Created  record is %s ",
+                         ckv_running->ToStrAll().c_str());
           result_code = DupConfigKeyVal(okey, ckv_running, tbl);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("DupConfigKeyVal failed. err_code & phase %d %d",
                            result_code, phase);
             return result_code;
           }
-      }
-    break;
-    case uuc::kUpllUcpUpdate:
-      if (tbl == CTRLRTBL) {
-        UPLL_LOG_TRACE("UpdateRecord  record for Ctrlr_tbl is %s ", ckv_running->ToStrAll().c_str());
-        UPLL_LOG_TRACE("UpdateRecord  record for Ctrlr_tbl is %s ", ckv_audit->ToStrAll().c_str());
-        result_code = GetChildConfigKey(okey, ckv_running);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("GetChildConfigKey for running record failed. "
-                         "err_code & phase %d %d", result_code, phase);
-          return result_code;
         }
-        result_code = ReadConfigDB(okey, UPLL_DT_RUNNING,
+        break;
+      case uuc::kUpllUcpUpdate:
+        if (tbl == CTRLRTBL) {
+          UPLL_LOG_TRACE("UpdateRecord  record for Ctrlr_tbl is %s ",
+                         ckv_running->ToStrAll().c_str());
+          UPLL_LOG_TRACE("UpdateRecord  record for Ctrlr_tbl is %s ",
+                         ckv_audit->ToStrAll().c_str());
+          result_code = GetChildConfigKey(okey, ckv_running);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("GetChildConfigKey for running record failed. "
+                           "err_code & phase %d %d", result_code, phase);
+            return result_code;
+          }
+          result_code = ReadConfigDB(okey, UPLL_DT_RUNNING,
                                      UNC_OP_READ, dbop, dmi, MAINTBL);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("ReadConfigDB from running failed. "
-                         "err_code & phase %d %d", result_code, phase);
-          return result_code;
-        }
-        result_code = GetChildConfigKey(ckv_dup, ckv_audit);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("GetChildConfigKey for audit record failed. "
-                         "err_code & phase %d %d", result_code, phase);
-          if (ckv_dup)
-            delete ckv_dup;
-          return result_code;
-        }
-        result_code = ReadConfigDB(ckv_dup, UPLL_DT_AUDIT,
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("ReadConfigDB from running failed. "
+                           "err_code & phase %d %d", result_code, phase);
+            return result_code;
+          }
+          result_code = GetChildConfigKey(ckv_dup, ckv_audit);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("GetChildConfigKey for audit record failed. "
+                           "err_code & phase %d %d", result_code, phase);
+            if (ckv_dup)
+              delete ckv_dup;
+            return result_code;
+          }
+          result_code = ReadConfigDB(ckv_dup, UPLL_DT_AUDIT,
                                      UNC_OP_READ, dbop, dmi, MAINTBL);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("ReadConfigDB from audit failed. "
-                         "err_code & phase %d %d", result_code, phase);
-          delete ckv_dup;
-          return result_code;
-        }
-      } else {
-          UPLL_LOG_TRACE("UpdateRecord  record  is %s ", ckv_running->ToStrAll().c_str());
-          UPLL_LOG_TRACE("UpdateRecord  record  is %s ", ckv_audit->ToStrAll().c_str());
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("ReadConfigDB from audit failed. "
+                           "err_code & phase %d %d", result_code, phase);
+            delete ckv_dup;
+            return result_code;
+          }
+        } else {
+          UPLL_LOG_TRACE("UpdateRecord  record  is %s ",
+                         ckv_running->ToStrAll().c_str());
+          UPLL_LOG_TRACE("UpdateRecord  record  is %s ",
+                         ckv_audit->ToStrAll().c_str());
           result_code = DupConfigKeyVal(okey, ckv_running, tbl);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("DupConfigKeyVal failed for running record. "
                            "err_code & phase %d %d", result_code, phase);
-            delete ckv_dup;
             return result_code;
           }
           result_code = DupConfigKeyVal(ckv_dup, ckv_audit, tbl);
@@ -1926,196 +2242,177 @@ upll_rc_t MoMgrImpl::GetDiffRecord(ConfigKeyVal *ckv_running,
               delete ckv_dup;
             return result_code;
           }
-      }
-      if (GetVal(okey) != NULL &&
-          GetVal(ckv_dup) != NULL) {
-        void *val1 = GetVal(okey);
-        invalid_attr = FilterAttributes(val1, GetVal(ckv_dup), false,
-                         UNC_OP_UPDATE);
-      }
-    break;
-    default:
-      UPLL_LOG_DEBUG("Invalid operation %d", phase);
-      return UPLL_RC_ERR_NO_SUCH_OPERATION;
-      break;
-  }
+        }
+        if (GetVal(okey) != NULL &&
+            GetVal(ckv_dup) != NULL) {
+          void *val1 = GetVal(okey);
+          invalid_attr = FilterAttributes(val1, GetVal(ckv_dup), false,
+                                          UNC_OP_UPDATE);
+        }
+        break;
+      default:
+        UPLL_LOG_DEBUG("Invalid operation %d", phase);
+        return UPLL_RC_ERR_NO_SUCH_OPERATION;
+        break;
+    }
     delete ckv_dup;
-  return result_code;
-}
-
-upll_rc_t MoMgrImpl::AuditUpdateController(unc_key_type_t keytype,
-                             const char *ctrlr_id,
-                             uint32_t session_id,
-                             uint32_t config_id,
-                             uuc::UpdateCtrlrPhase phase,
-                             bool *ctrlr_affected,
-                             DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  DalResultCode db_result = uud::kDalRcSuccess;
-  MoMgrTables tbl  = MAINTBL;
-  controller_domain_t ctrlr_dom, vlink_ctrlr_dom[2];
-  vlink_ctrlr_dom[0].ctrlr = NULL;
-  vlink_ctrlr_dom[0].domain = NULL;
-  vlink_ctrlr_dom[1].ctrlr = NULL;
-  vlink_ctrlr_dom[1].domain = NULL;
-  ctrlr_dom.ctrlr = NULL;
-  ctrlr_dom.domain = NULL;
-  ConfigKeyVal  *ckv_running = NULL;
-  ConfigKeyVal  *ckv_audit = NULL;
-  ConfigKeyVal  *ckv_drvr = NULL;
-  ConfigKeyVal  *resp = NULL;
-  DalCursor *cursor = NULL;
-  bool invalid_attr = false;
-  uint8_t *in_ctrlr = reinterpret_cast<uint8_t *>(const_cast<char *>(ctrlr_id));
-  /* decides whether to retrieve from controller table or main table */
-  GET_TABLE_TYPE(keytype, tbl);
-  unc_keytype_operation_t op = (phase == uuc::kUpllUcpCreate)?UNC_OP_CREATE:
-    ((phase == uuc::kUpllUcpUpdate)?UNC_OP_UPDATE:
-     ((phase == uuc::kUpllUcpDelete)?UNC_OP_DELETE:UNC_OP_INVALID));
-  if (phase == uuc::kUpllUcpDelete2)
-    return result_code;
-  /* retreives the delta of running and audit configuration */
-  UPLL_LOG_TRACE("Operation is %d", op);
-  if ((op == UNC_OP_UPDATE) && (keytype == UNC_KT_VTN))
-    return UPLL_RC_SUCCESS;
-  result_code = DiffConfigDB(UPLL_DT_RUNNING, UPLL_DT_AUDIT, op,
-      ckv_running, ckv_audit,
-      &cursor, dmi, in_ctrlr, tbl, true);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("DiffConfigDB failed - %d", result_code);
     return result_code;
   }
-  while (uud::kDalRcSuccess == (db_result = dmi->GetNextRecord(cursor))) {
-    /* ignore records of another controller for create and update operation */
-    if (phase != uuc::kUpllUcpDelete) {
-      uint8_t *db_ctrlr = NULL;
-      GET_USER_DATA_CTRLR(ckv_running, db_ctrlr);
-      UPLL_LOG_TRACE("db ctrl_id and audit ctlr_id are  %s %s", db_ctrlr, ctrlr_id);
-      if (db_ctrlr && strncmp(reinterpret_cast<const char *>(db_ctrlr),
-            reinterpret_cast<const char *>(ctrlr_id),
-            strlen(reinterpret_cast<const char *>(ctrlr_id)) + 1))
-        continue;
-    }
-    UPLL_LOG_TRACE("Diff Running Record for Keytype: Operation:  is %d %d\n %s",
-        keytype, op, ckv_running->ToStrAll().c_str());
-    if (op == UNC_OP_UPDATE)
-      UPLL_LOG_TRACE("Diff Audit Record for Keytype: Operation:  is %d %d\n %s",
-          keytype, op, ckv_audit->ToStrAll().c_str());
-    result_code =  GetDiffRecord(ckv_running, ckv_audit, phase, tbl,
-        ckv_drvr, dmi, invalid_attr);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_INFO("GetDiffRecord failed err code is %d", result_code);
-      DELETE_IF_NOT_NULL(ckv_running);
-      DELETE_IF_NOT_NULL(ckv_audit);
-      DELETE_IF_NOT_NULL(ckv_drvr);
-      dmi->CloseCursor(cursor, true);
+
+  upll_rc_t MoMgrImpl::AuditUpdateController(
+      unc_key_type_t keytype,
+      const char *ctrlr_id,
+      uint32_t session_id,
+      uint32_t config_id,
+      uuc::UpdateCtrlrPhase phase,
+      DalDmlIntf *dmi,
+      ConfigKeyVal **err_ckv,
+      KTxCtrlrAffectedState *ctrlr_affected) {
+    UPLL_FUNC_TRACE;
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+    DalResultCode db_result = uud::kDalRcSuccess;
+    MoMgrTables tbl  = MAINTBL;
+    controller_domain_t ctrlr_dom, vlink_ctrlr_dom[2];
+    vlink_ctrlr_dom[0].ctrlr = NULL;
+    vlink_ctrlr_dom[0].domain = NULL;
+    vlink_ctrlr_dom[1].ctrlr = NULL;
+    vlink_ctrlr_dom[1].domain = NULL;
+    ctrlr_dom.ctrlr = NULL;
+    ctrlr_dom.domain = NULL;
+    ConfigKeyVal  *ckv_running = NULL;
+    ConfigKeyVal  *ckv_audit = NULL;
+    ConfigKeyVal  *ckv_drvr = NULL;
+    ConfigKeyVal  *resp = NULL;
+    DalCursor *cursor = NULL;
+    bool invalid_attr = false;
+    uint8_t flags = 0;
+    uint8_t *in_ctrlr = reinterpret_cast<uint8_t *>
+        (const_cast<char *>(ctrlr_id));
+    /* decides whether to retrieve from controller table or main table */
+    GET_TABLE_TYPE(keytype, tbl);
+    unc_keytype_operation_t op = (phase == uuc::kUpllUcpCreate)?UNC_OP_CREATE:
+        ((phase == uuc::kUpllUcpUpdate)?UNC_OP_UPDATE:
+         ((phase == uuc::kUpllUcpDelete)?UNC_OP_DELETE:UNC_OP_INVALID));
+    if (phase == uuc::kUpllUcpDelete2)
+      return result_code;
+    /* retreives the delta of running and audit configuration */
+    UPLL_LOG_TRACE("Operation is %d", op);
+    if ((op == UNC_OP_UPDATE) && (keytype == UNC_KT_VTN))
+      return UPLL_RC_SUCCESS;
+    result_code = DiffConfigDB(UPLL_DT_RUNNING, UPLL_DT_AUDIT, op,
+                               ckv_running, ckv_audit,
+                               &cursor, dmi, in_ctrlr, tbl, true);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG("DiffConfigDB failed - %d", result_code);
       return result_code;
     }
-    if (invalid_attr) {
-      DELETE_IF_NOT_NULL(ckv_drvr);
-      continue;
-    }
-    if (OVERLAY_KT(keytype) && (op == UNC_OP_DELETE)) {
-      UPLL_LOG_TRACE("Overlay KeyType %d", keytype);
-      DbSubOp dbop = {kOpReadSingle, kOpMatchNone,
-        kOpInOutCtrlr | kOpInOutDomain};
-      result_code = ReadConfigDB(ckv_drvr, UPLL_DT_AUDIT,
-          UNC_OP_READ, dbop, dmi, MAINTBL);
+    while (uud::kDalRcSuccess == (db_result = dmi->GetNextRecord(cursor))) {
+      /* ignore records of another controller for create and update operation */
+      if (phase != uuc::kUpllUcpDelete) {
+        /* VlanmapOnBoundary: Ignore records of another controller
+         * for create and update operation */
+        uint8_t *db_ctrlr = NULL;
+        GET_USER_DATA_CTRLR(ckv_running, db_ctrlr);
+        if ((!db_ctrlr) || (db_ctrlr &&
+                            strncmp(reinterpret_cast<const char *>(db_ctrlr),
+                                    reinterpret_cast<const char *>(ctrlr_id),
+                                    strlen(reinterpret_cast
+                                           <const char *>(ctrlr_id)) + 1))) {
+          if (keytype == UNC_KT_VLINK) {
+            unc_key_type_t ktype = UNC_KT_ROOT;
+            VlinkMoMgr *mgr = reinterpret_cast<VlinkMoMgr *>(
+                const_cast<MoManager *>(GetMoManager(UNC_KT_VLINK)));
+            if (!mgr) {
+              UPLL_LOG_DEBUG("Invalid vLink mgr");
+              DELETE_IF_NOT_NULL(ckv_running);
+              DELETE_IF_NOT_NULL(ckv_audit);
+              DELETE_IF_NOT_NULL(ckv_drvr);
+              dmi->CloseCursor(cursor, true);
+              return UPLL_RC_ERR_GENERIC;
+            }
+            ktype = mgr->GetVlinkVnodeIfKeyType(ckv_running, 1);
+            if (ktype != UNC_KT_VUNK_IF) {
+              GET_USER_DATA_CTRLR(ckv_running->get_cfg_val(), db_ctrlr);
+              if (db_ctrlr && strncmp(reinterpret_cast<const char *>(db_ctrlr),
+                                      reinterpret_cast<const char *>(ctrlr_id),
+                                      strlen(reinterpret_cast
+                                             <const char *>(ctrlr_id)) + 1)) {
+                continue;
+              }
+            } else {
+              continue;
+            }
+          } else {
+            continue;
+          }
+        }
+      }
+      UPLL_LOG_TRACE("Diff Running Record for Keytype: Operation:"
+                     "is %d %d\n %s",
+                     keytype, op, ckv_running->ToStrAll().c_str());
+      if (op == UNC_OP_UPDATE)
+        UPLL_LOG_TRACE("Diff Audit Record for Keytype: Operation:"
+                       "is %d %d\n %s",
+                       keytype, op, ckv_audit->ToStrAll().c_str());
+      result_code =  GetDiffRecord(ckv_running, ckv_audit, phase, tbl,
+                                   ckv_drvr, dmi, invalid_attr);
       if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("ReadConfigDB from AuditdB failed %d", result_code);
+        UPLL_LOG_INFO("GetDiffRecord failed err code is %d", result_code);
         DELETE_IF_NOT_NULL(ckv_running);
         DELETE_IF_NOT_NULL(ckv_audit);
         DELETE_IF_NOT_NULL(ckv_drvr);
         dmi->CloseCursor(cursor, true);
-        return UPLL_RC_ERR_GENERIC;
+        return result_code;
+      }
+      if (invalid_attr) {
+        DELETE_IF_NOT_NULL(ckv_drvr);
+        // Assuming that the diff found only in ConfigStatus
+        // Setting the   value as OnlyCSDiff in the out parameter
+        // ctrlr_affected
+        // The value Configdiff should be given more priority than the value
+        // onlycs .
+        // SO  If the out parameter ctrlr_affected has already value
+        // as configdiff
+        //  then dont change the value
+        if (*ctrlr_affected != uuc::kCtrlrAffectedConfigDiff) {
+          UPLL_LOG_INFO("Setting the ctrlr_affected to OnlyCSDiff for KT %u",
+                        keytype);
+          *ctrlr_affected = uuc::kCtrlrAffectedOnlyCSDiff;
+        }
+        continue;
       }
-      if (keytype == UNC_KT_VTUNNEL || keytype == UNC_KT_VTUNNEL_IF) {
-        result_code = PopulateDriverDeleteCkv(ckv_drvr, dmi, UPLL_DT_AUDIT);
+      if (OVERLAY_KT(keytype) && (op == UNC_OP_DELETE)) {
+        UPLL_LOG_TRACE("Overlay KeyType %d", keytype);
+        DbSubOp dbop = {kOpReadSingle, kOpMatchNone,
+          kOpInOutCtrlr | kOpInOutDomain};
+        result_code = ReadConfigDB(ckv_drvr, UPLL_DT_AUDIT,
+                                   UNC_OP_READ, dbop, dmi, MAINTBL);
         if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("Couldnt form Driver Val structure %d", result_code);
+          UPLL_LOG_DEBUG("ReadConfigDB from AuditdB failed %d", result_code);
           DELETE_IF_NOT_NULL(ckv_running);
           DELETE_IF_NOT_NULL(ckv_audit);
           DELETE_IF_NOT_NULL(ckv_drvr);
           dmi->CloseCursor(cursor, true);
           return UPLL_RC_ERR_GENERIC;
         }
+        if (keytype == UNC_KT_VTUNNEL || keytype == UNC_KT_VTUNNEL_IF) {
+          result_code = PopulateDriverDeleteCkv(ckv_drvr, dmi, UPLL_DT_AUDIT);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("Couldnt form Driver Val structure %d", result_code);
+            DELETE_IF_NOT_NULL(ckv_running);
+            DELETE_IF_NOT_NULL(ckv_audit);
+            DELETE_IF_NOT_NULL(ckv_drvr);
+            dmi->CloseCursor(cursor, true);
+            return UPLL_RC_ERR_GENERIC;
+          }
+        }
       }
-    }
-    /* Boundary VLink is not sent to Controller*/
-    if (ckv_drvr->get_key_type() == UNC_KT_VLINK && (op != UNC_OP_DELETE)) {
-      bool bound_vlink = false;
-      VlinkMoMgr *mgr = reinterpret_cast<VlinkMoMgr *>(
-          const_cast<MoManager *>(GetMoManager(UNC_KT_VLINK)));
-      if (!mgr) {
-        UPLL_LOG_DEBUG("Invalid mgr");
-        DELETE_IF_NOT_NULL(ckv_running);
-        DELETE_IF_NOT_NULL(ckv_audit);
-        DELETE_IF_NOT_NULL(ckv_drvr);
-        dmi->CloseCursor(cursor, true);
-        return UPLL_RC_ERR_GENERIC;
-      }
-      result_code = mgr->BoundaryVlink(ckv_drvr, vlink_ctrlr_dom, bound_vlink);
-      if (bound_vlink) {
-        UPLL_LOG_TRACE("%s is a boundary Link. Not Sent to Controller/n",
-            (reinterpret_cast<key_vlink *>(ckv_drvr->get_key()))->vlink_name);
-        if (ckv_drvr) delete ckv_drvr;
-        ckv_drvr = NULL;
-        continue;
-      }
-    }
-    GET_USER_DATA_CTRLR_DOMAIN(ckv_drvr, ctrlr_dom);
-    UPLL_LOG_DEBUG("Outside if %d", keytype);
-    if (!OVERLAY_KT(keytype)) {
-      UPLL_LOG_DEBUG("Inside if %d", keytype);
-      upll_keytype_datatype_t dt_type = (op == UNC_OP_DELETE)?
-        UPLL_DT_AUDIT : UPLL_DT_RUNNING;
-      if (ckv_drvr->get_key_type() == UNC_KT_VLINK) {
-        if (ckv_drvr->get_cfg_val()) {
-          GET_USER_DATA_CTRLR_DOMAIN(ckv_drvr->get_cfg_val(), vlink_ctrlr_dom[1]);
-        } else {
-          vlink_ctrlr_dom[1].ctrlr = NULL;
-          vlink_ctrlr_dom[1].domain = NULL;
-        }
-      }
-      controller_domain_t *tctrlr_dom =
-        (ckv_drvr->get_key_type() == UNC_KT_VLINK)?
-        &vlink_ctrlr_dom[1]:&ctrlr_dom;
-      if (UNC_KT_POLICING_PROFILE == ckv_drvr->get_key_type() ||
-          UNC_KT_POLICING_PROFILE_ENTRY == ckv_drvr->get_key_type() ||
-          UNC_KT_FLOWLIST == ckv_drvr->get_key_type() ||
-          UNC_KT_FLOWLIST_ENTRY == ckv_drvr->get_key_type() ||
-          UNC_KT_VTN_POLICINGMAP == ckv_drvr->get_key_type() ||
-          UNC_KT_VTN_FLOWFILTER == ckv_drvr->get_key_type() ||
-          UNC_KT_VTN_FLOWFILTER_ENTRY == ckv_drvr->get_key_type()) {
-        dt_type = UPLL_DT_RUNNING;
-      }
-      result_code = DupConfigKeyVal(resp, ckv_drvr, MAINTBL);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG(" DupConfigKeyVal failed err code(%d)",
-            result_code);
-        DELETE_IF_NOT_NULL(ckv_running);
-        DELETE_IF_NOT_NULL(ckv_audit);
-        DELETE_IF_NOT_NULL(ckv_drvr);
-        dmi->CloseCursor(cursor, true);
-        return result_code;
-      }
-      result_code = GetRenamedControllerKey(ckv_drvr, dt_type,
-          dmi, tctrlr_dom);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG(" GetRenamedControllerKey failed err code(%d)",
-            result_code);
-        DELETE_IF_NOT_NULL(ckv_running);
-        DELETE_IF_NOT_NULL(ckv_audit);
-        DELETE_IF_NOT_NULL(ckv_drvr);
-        dmi->CloseCursor(cursor, true);
-        return result_code;
-      }
-      if (ckv_drvr->get_key_type() == UNC_KT_VLINK && (op == UNC_OP_DELETE)) {
-        /* boundary vlink */
-        VlinkMoMgr *vlink_mgr = reinterpret_cast<VlinkMoMgr *>(
+      /* Boundary VLink is not sent to Controller*/
+      if (ckv_drvr->get_key_type() == UNC_KT_VLINK && (op != UNC_OP_DELETE)) {
+        bool bound_vlink = false;
+        VlinkMoMgr *mgr = reinterpret_cast<VlinkMoMgr *>(
             const_cast<MoManager *>(GetMoManager(UNC_KT_VLINK)));
-        if (!vlink_mgr) {
+        if (!mgr) {
           UPLL_LOG_DEBUG("Invalid mgr");
           DELETE_IF_NOT_NULL(ckv_running);
           DELETE_IF_NOT_NULL(ckv_audit);
@@ -2123,1004 +2420,1483 @@ upll_rc_t MoMgrImpl::AuditUpdateController(unc_key_type_t keytype,
           dmi->CloseCursor(cursor, true);
           return UPLL_RC_ERR_GENERIC;
         }
-        unc_key_type_t ktype[2] = {UNC_KT_ROOT, UNC_KT_ROOT};
-        for (int vnode_count = 0; vnode_count < 2; vnode_count++) {
-          ktype[vnode_count] = vlink_mgr->
-            GetVlinkVnodeIfKeyType(ckv_drvr, vnode_count);
-        }
-        if (ktype[0] != UNC_KT_VUNK_IF && ktype[1] != UNC_KT_VUNK_IF) {
-          if (!ctrlr_dom.ctrlr || !tctrlr_dom->ctrlr || !ctrlr_dom.domain
-              || !tctrlr_dom->domain) {
-            UPLL_LOG_INFO("Ctrlr id or domain id is Null in vlink delete");
-            if (ckv_drvr)
-              delete ckv_drvr;
-            return UPLL_RC_ERR_GENERIC;
-          }
-        }
-        if (ktype[0] == UNC_KT_VUNK_IF || ktype[1] == UNC_KT_VUNK_IF ||
-            strncmp(reinterpret_cast<const char *>(ctrlr_dom.ctrlr), 
-              reinterpret_cast<const char *>(tctrlr_dom->ctrlr), 
-              kMaxLenCtrlrId + 1) ||
-            strncmp(reinterpret_cast<const char *>(ctrlr_dom.domain), 
-              reinterpret_cast<const char *>(tctrlr_dom->domain), 
-              kMaxLenDomainId + 1)) {
+        result_code = mgr->BoundaryVlink(ckv_drvr,
+                                         vlink_ctrlr_dom,
+                                         bound_vlink);
+        if (bound_vlink) {
           UPLL_LOG_TRACE("%s is a boundary Link. Not Sent to Controller/n",
-              (reinterpret_cast<key_vlink *>(ckv_drvr->get_key()))->vlink_name);
-          DELETE_IF_NOT_NULL(resp);
-          if (ckv_drvr)
-            delete ckv_drvr;
+                         (reinterpret_cast<key_vlink *>
+                          (ckv_drvr->get_key()))->vlink_name);
+          if (ckv_drvr) delete ckv_drvr;
           ckv_drvr = NULL;
           continue;
         }
       }
-    }
+      GET_USER_DATA_CTRLR_DOMAIN(ckv_drvr, ctrlr_dom);
+      UPLL_LOG_DEBUG("Outside if %d", keytype);
+      if (!OVERLAY_KT(keytype)) {
+        UPLL_LOG_DEBUG("Inside if %d", keytype);
+        upll_keytype_datatype_t dt_type = (op == UNC_OP_DELETE)?
+            UPLL_DT_AUDIT : UPLL_DT_RUNNING;
+        if (ckv_drvr->get_key_type() == UNC_KT_VLINK) {
+          if (ckv_drvr->get_cfg_val()) {
+            GET_USER_DATA_CTRLR_DOMAIN(ckv_drvr->get_cfg_val(),
+                                       vlink_ctrlr_dom[1]);
+          } else {
+            vlink_ctrlr_dom[1].ctrlr = NULL;
+            vlink_ctrlr_dom[1].domain = NULL;
+          }
+        }
+        controller_domain_t *tctrlr_dom =
+            (ckv_drvr->get_key_type() == UNC_KT_VLINK)?
+            &vlink_ctrlr_dom[1]:&ctrlr_dom;
+        if (UNC_KT_POLICING_PROFILE == ckv_drvr->get_key_type() ||
+            UNC_KT_POLICING_PROFILE_ENTRY == ckv_drvr->get_key_type() ||
+            UNC_KT_FLOWLIST == ckv_drvr->get_key_type() ||
+            UNC_KT_FLOWLIST_ENTRY == ckv_drvr->get_key_type() ||
+            UNC_KT_VTN_POLICINGMAP == ckv_drvr->get_key_type() ||
+            UNC_KT_VTN_FLOWFILTER == ckv_drvr->get_key_type() ||
+            UNC_KT_VTN_FLOWFILTER_ENTRY == ckv_drvr->get_key_type()) {
+          dt_type = UPLL_DT_RUNNING;
+        }
+        result_code = DupConfigKeyVal(resp, ckv_drvr, MAINTBL);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG(" DupConfigKeyVal failed err code(%d)",
+                         result_code);
+          DELETE_IF_NOT_NULL(ckv_running);
+          DELETE_IF_NOT_NULL(ckv_audit);
+          DELETE_IF_NOT_NULL(ckv_drvr);
+          dmi->CloseCursor(cursor, true);
+          return result_code;
+        }
+        /* VlanmapOnBoundary: Get the flags */
+        GET_USER_DATA_FLAGS(ckv_drvr, flags);
 
-    if (ctrlr_dom.ctrlr != NULL) {
-      bool domain = false;
-      KEYTYPE_WITHOUT_DOMAIN(keytype, domain);
-      if (!domain) {
-        if (NULL == ctrlr_dom.domain) {
-          UPLL_LOG_INFO(" domain is NULL");
+        result_code = GetRenamedControllerKey(ckv_drvr, dt_type,
+                                              dmi, tctrlr_dom);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG(" GetRenamedControllerKey failed err code(%d)",
+                         result_code);
           DELETE_IF_NOT_NULL(ckv_running);
           DELETE_IF_NOT_NULL(ckv_audit);
+          DELETE_IF_NOT_NULL(ckv_drvr);
           DELETE_IF_NOT_NULL(resp);
           dmi->CloseCursor(cursor, true);
-          return UPLL_RC_ERR_GENERIC;
+          return result_code;
+        }
+        if (ckv_drvr->get_key_type() == UNC_KT_VLINK &&
+            (op == UNC_OP_DELETE)) {
+          /* boundary vlink */
+          VlinkMoMgr *vlink_mgr = reinterpret_cast<VlinkMoMgr *>(
+              const_cast<MoManager *>(GetMoManager(UNC_KT_VLINK)));
+          if (!vlink_mgr) {
+            UPLL_LOG_DEBUG("Invalid mgr");
+            DELETE_IF_NOT_NULL(ckv_running);
+            DELETE_IF_NOT_NULL(ckv_audit);
+            DELETE_IF_NOT_NULL(ckv_drvr);
+            DELETE_IF_NOT_NULL(resp);
+            dmi->CloseCursor(cursor, true);
+            return UPLL_RC_ERR_GENERIC;
+          }
+          unc_key_type_t ktype[2] = {UNC_KT_ROOT, UNC_KT_ROOT};
+          for (int vnode_count = 0; vnode_count < 2; vnode_count++) {
+            ktype[vnode_count] = vlink_mgr->
+                GetVlinkVnodeIfKeyType(ckv_drvr, vnode_count);
+          }
+          if (ktype[0] != UNC_KT_VUNK_IF && ktype[1] != UNC_KT_VUNK_IF) {
+            if (!ctrlr_dom.ctrlr || !tctrlr_dom->ctrlr || !ctrlr_dom.domain
+                || !tctrlr_dom->domain) {
+              UPLL_LOG_INFO("Ctrlr id or domain id is Null in vlink delete");
+              if (ckv_drvr)
+                delete ckv_drvr;
+              DELETE_IF_NOT_NULL(ckv_running);
+              DELETE_IF_NOT_NULL(ckv_audit);
+              DELETE_IF_NOT_NULL(ckv_drvr);
+              DELETE_IF_NOT_NULL(resp);
+              dmi->CloseCursor(cursor, true);
+              return UPLL_RC_ERR_GENERIC;
+            }
+          }
+          if (ktype[0] == UNC_KT_VUNK_IF || ktype[1] == UNC_KT_VUNK_IF ||
+              strncmp(reinterpret_cast<const char *>(ctrlr_dom.ctrlr),
+                      reinterpret_cast<const char *>(tctrlr_dom->ctrlr),
+                      kMaxLenCtrlrId + 1) ||
+              strncmp(reinterpret_cast<const char *>(ctrlr_dom.domain),
+                      reinterpret_cast<const char *>(tctrlr_dom->domain),
+                      kMaxLenDomainId + 1)) {
+            UPLL_LOG_TRACE("%s is a boundary Link. Not Sent to Controller/n",
+                           (reinterpret_cast<key_vlink *>
+                            (ckv_drvr->get_key()))->vlink_name);
+            DELETE_IF_NOT_NULL(resp);
+            if (ckv_drvr)
+              delete ckv_drvr;
+            ckv_drvr = NULL;
+            continue;
+          }
         }
       }
-    } else {
-      UPLL_LOG_DEBUG("Controller Id is NULL");
-      DELETE_IF_NOT_NULL(ckv_running);
-      DELETE_IF_NOT_NULL(ckv_audit);
-      DELETE_IF_NOT_NULL(resp);
-      dmi->CloseCursor(cursor, true);
-      return UPLL_RC_ERR_GENERIC;
-    }
 
-    UPLL_LOG_TRACE("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
-        ctrlr_dom.domain);
-    IpcResponse ipc_response;
-    memset(&ipc_response, 0, sizeof(IpcResponse));
-    IpcRequest ipc_req;
-    memset(&ipc_req, 0, sizeof(IpcRequest));
-    ipc_req.header.clnt_sess_id = session_id;
-    ipc_req.header.config_id = config_id;
-    ipc_req.header.operation = op;
-    ipc_req.header.datatype = UPLL_DT_CANDIDATE;
-    ipc_req.ckv_data = ckv_drvr;
-    if (!IpcUtil::SendReqToDriver((const char *)ctrlr_dom.ctrlr, reinterpret_cast<char *>
-          (ctrlr_dom.domain), PFCDRIVER_SERVICE_NAME,
-          PFCDRIVER_SVID_LOGICAL, &ipc_req, true, &ipc_response)) {
-      UPLL_LOG_INFO("Request to driver for Key %d for controller %s failed ",
-          ckv_drvr->get_key_type(), reinterpret_cast<char *>(ctrlr_dom.ctrlr));
-      DELETE_IF_NOT_NULL(resp);
-      DELETE_IF_NOT_NULL(ckv_running);
-      DELETE_IF_NOT_NULL(ckv_audit);
-      DELETE_IF_NOT_NULL(ipc_response.ckv_data);
-      dmi->CloseCursor(cursor, true);
-      return UPLL_RC_ERR_GENERIC;
-    }
-    if  ((ipc_response.header.result_code != UPLL_RC_SUCCESS) && (phase != uuc::kUpllUcpDelete)) {
-      UPLL_LOG_DEBUG("driver return failure err_code is %d", ipc_response.header.result_code);
-      ConfigKeyVal *ctrlr_key = NULL;
-      if (CTRLRTBL == (GET_TABLE_TYPE(keytype, tbl))) {
-        result_code = DupConfigKeyVal(ctrlr_key, ckv_running, CTRLRTBL);
+      if (ctrlr_dom.ctrlr != NULL) {
+        bool domain = false;
+        KEYTYPE_WITHOUT_DOMAIN(keytype, domain);
+        if (!domain) {
+          if (NULL == ctrlr_dom.domain) {
+            UPLL_LOG_INFO(" domain is NULL");
+            DELETE_IF_NOT_NULL(ckv_running);
+            DELETE_IF_NOT_NULL(ckv_audit);
+            DELETE_IF_NOT_NULL(resp);
+            dmi->CloseCursor(cursor, true);
+            return UPLL_RC_ERR_GENERIC;
+          }
+        }
       } else {
-        result_code = DupConfigKeyVal(ctrlr_key, ckv_running, MAINTBL);
-      }
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_INFO("DupConfigKeyVal failed");
-        DELETE_IF_NOT_NULL(ipc_response.ckv_data);
-        DELETE_IF_NOT_NULL(resp);
+        UPLL_LOG_DEBUG("Controller Id is NULL");
         DELETE_IF_NOT_NULL(ckv_running);
         DELETE_IF_NOT_NULL(ckv_audit);
-        DELETE_IF_NOT_NULL(ckv_drvr);
+        DELETE_IF_NOT_NULL(resp);
         dmi->CloseCursor(cursor, true);
-        return result_code;
+        return UPLL_RC_ERR_GENERIC;
       }
-      if (UNC_KT_VTN == keytype) {
-        result_code = UpdateCtrlrConfigStatus(UNC_CS_INVALID,
-            phase, ctrlr_key);
-      } else {
-          result_code = UpdateAuditConfigStatus(UNC_CS_INVALID,
-              phase, ctrlr_key);
+
+      UPLL_LOG_TRACE("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
+                     ctrlr_dom.domain);
+      /* VlanmapOnBoundary: Added vlanmap check */
+      if (keytype == UNC_KT_VBR_VLANMAP) {
+        pfcdrv_val_vlan_map *vlanmap_val =
+            reinterpret_cast<pfcdrv_val_vlan_map_t *>(GetVal(ckv_drvr));
+        if (vlanmap_val) {
+          vlanmap_val->valid[0] = UNC_VF_INVALID;
+          if (vlanmap_val->vm.valid[UPLL_IDX_VLAN_ID_VM] != UNC_VF_INVALID)
+            vlanmap_val->valid[0] = UNC_VF_VALID;
+        }
       }
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_INFO("UpdateAuditConfigStatus failed");
-        DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+
+      IpcResponse ipc_response;
+      memset(&ipc_response, 0, sizeof(IpcResponse));
+      IpcRequest ipc_req;
+      memset(&ipc_req, 0, sizeof(IpcRequest));
+      ipc_req.header.clnt_sess_id = session_id;
+      ipc_req.header.config_id = config_id;
+      ipc_req.header.operation = op;
+      ipc_req.header.datatype = UPLL_DT_CANDIDATE;
+      ipc_req.ckv_data = ckv_drvr;
+      if (!IpcUtil::SendReqToDriver((const char *)ctrlr_dom.ctrlr,
+                                    reinterpret_cast<char *>
+                                    (ctrlr_dom.domain),
+                                    PFCDRIVER_SERVICE_NAME,
+                                    PFCDRIVER_SVID_LOGICAL,
+                                    &ipc_req,
+                                    true,
+                                    &ipc_response)) {
+        UPLL_LOG_INFO("Request to driver for Key %d for controller %s failed ",
+                      ckv_drvr->get_key_type(), reinterpret_cast<char *>
+                      (ctrlr_dom.ctrlr));
         DELETE_IF_NOT_NULL(resp);
         DELETE_IF_NOT_NULL(ckv_running);
         DELETE_IF_NOT_NULL(ckv_audit);
-        DELETE_IF_NOT_NULL(ckv_drvr);
-        dmi->CloseCursor(cursor, true);
-        DELETE_IF_NOT_NULL(ctrlr_key);
-        return result_code;
-      }
-      result_code = UpdateConfigDB(ctrlr_key, UPLL_DT_RUNNING, UNC_OP_UPDATE,
-          dmi, tbl);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("UpdateConfigDB failed for ipc response ckv err_code %d",
-            result_code);
         DELETE_IF_NOT_NULL(ipc_response.ckv_data);
-        DELETE_IF_NOT_NULL(resp);
-        DELETE_IF_NOT_NULL(ckv_running);
-        DELETE_IF_NOT_NULL(ckv_audit);
-        DELETE_IF_NOT_NULL(ckv_drvr);
         dmi->CloseCursor(cursor, true);
-        DELETE_IF_NOT_NULL(ctrlr_key);
-        return result_code;
+        return UPLL_RC_ERR_GENERIC;
       }
-      DELETE_IF_NOT_NULL(ctrlr_key);
-      if (CTRLRTBL == (GET_TABLE_TYPE(keytype, tbl))) {
-        result_code = SetConsolidatedStatus(resp, dmi);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("SetConsolidatedStatus failed for ipc response ckv err_code %d",
-              result_code);
-          DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+      /* VlanmapOnBoundary: Added vlanmap check */
+      if (ckv_running->get_key_type() == UNC_KT_VBR_VLANMAP &&
+          ipc_response.header.result_code != UPLL_RC_SUCCESS) {
+        SET_USER_DATA_FLAGS(ckv_drvr, flags);
+
+
+        UPLL_LOG_TRACE("Flags = %u", flags);
+        UPLL_LOG_DEBUG("IpcSend failed %d", result_code);
+        VlanMapMoMgr *vlanmap_mgr = reinterpret_cast<VlanMapMoMgr *>(
+            const_cast<MoManager *>(GetMoManager(
+                    ckv_running->get_key_type())));
+        if (!vlanmap_mgr) {
+          UPLL_LOG_DEBUG("Invalid mgr param");
+          DELETE_IF_NOT_NULL(resp);
           DELETE_IF_NOT_NULL(ckv_running);
           DELETE_IF_NOT_NULL(ckv_audit);
-          DELETE_IF_NOT_NULL(ckv_drvr);
+          DELETE_IF_NOT_NULL(ipc_response.ckv_data);
           dmi->CloseCursor(cursor, true);
+          return UPLL_RC_ERR_GENERIC;
+        }
+
+        /* resp is expected NULL inside TranslateError
+         *  Inside TranslateError, DupConfigKeyVal is called */
+        DELETE_IF_NOT_NULL(resp);
+
+        /* Case1: Audit(del) - Check in AUDIT since no info exists in RUNNING
+         * Case2: Audit(Cr/upd) - Check in RUNNING always */
+        upll_keytype_datatype_t dttype = (uuc::kUpllUcpDelete == phase) ?
+            UPLL_DT_AUDIT: UPLL_DT_RUNNING;
+        result_code  = vlanmap_mgr->TranslateError(&resp, ckv_drvr,
+                                                   dmi, dttype);
+        if (result_code != UPLL_RC_SUCCESS) {
           DELETE_IF_NOT_NULL(resp);
+          DELETE_IF_NOT_NULL(ckv_running);
+          DELETE_IF_NOT_NULL(ckv_audit);
+          DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+          dmi->CloseCursor(cursor, true);
           return result_code;
         }
       }
-      DELETE_IF_NOT_NULL(ipc_response.ckv_data);
-      DELETE_IF_NOT_NULL(ckv_running);
-      DELETE_IF_NOT_NULL(ckv_audit);
-      DELETE_IF_NOT_NULL(ckv_drvr);
-      dmi->CloseCursor(cursor, true);
-      DELETE_IF_NOT_NULL(resp);
-      return ipc_response.header.result_code; 
-    }
-    DELETE_IF_NOT_NULL(ckv_drvr);
-    DELETE_IF_NOT_NULL(ipc_response.ckv_data);
-    *ctrlr_affected = true;
-    DELETE_IF_NOT_NULL(resp);
-  }
-  if (cursor)
-    dmi->CloseCursor(cursor, true);
-  if (uud::kDalRcSuccess != db_result) {
-    UPLL_LOG_DEBUG("GetNextRecord from database failed  - %d", db_result);
-    result_code =  DalToUpllResCode(db_result);
-  }
-  if (ckv_running)
-    delete ckv_running;
-  if (ckv_audit)
-    delete ckv_audit;
-  result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)
-    ? UPLL_RC_SUCCESS : result_code;
-  return result_code;
-}
-
-upll_rc_t MoMgrImpl::AuditVoteCtrlrStatus(unc_key_type_t keytype,
-    CtrlrVoteStatus *vote_status,
-    DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-  if ((vote_status == NULL) || (dmi == NULL)) {
-    UPLL_LOG_INFO("vote_status or dmi is null");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  ConfigKeyVal *ckv_dup  = NULL;
-  ConfigKeyVal *ckv_au_dup  = NULL;
-  uuc::UpdateCtrlrPhase operation = uuc::kUpllUcpUpdate;
-  MoMgrTables tbl = MAINTBL;
-  uint32_t ctrlr_result  = vote_status->upll_ctrlr_result;
-  uint8_t *ctrlr_id =
-    reinterpret_cast<uint8_t *>((char *)(vote_status->ctrlr_id.c_str()));
-  UPLL_LOG_INFO("controller id & vote result  is %s %d", ctrlr_id,
-      ctrlr_result);
-  switch (ctrlr_result) {
-    case UPLL_RC_SUCCESS: /* No Operation */
-      break;
-    case UPLL_RC_ERR_RESOURCE_DISCONNECTED:
-      break;
-    default:
-      /* retrieves the error configkeyval one by one and if the keytype matches,
-         rename the key with UNC name */
-      ConfigKeyVal *ckv_drv_rslt  = NULL;
-      for (ckv_drv_rslt  = vote_status->err_ckv;
-          ckv_drv_rslt != NULL; ckv_drv_rslt = ckv_drv_rslt->get_next_cfg_key_val()) {
-        if (ckv_drv_rslt->get_key_type() != keytype)
-          continue;
-        UPLL_LOG_INFO("err ConfigKeyVal are %s", (vote_status->err_ckv)->ToStrAll().c_str());
-        /* Get the Unc key */
-        if (!OVERLAY_KT(keytype)) {
-          result_code = GetRenamedUncKey(ckv_drv_rslt, UPLL_DT_RUNNING,
-              dmi, ctrlr_id);
-          if (UPLL_RC_SUCCESS != result_code &&
-              UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
-            UPLL_LOG_DEBUG("GetRenamedUncKey failed - %d", result_code);
-            return result_code;
-          }
-        }
-        result_code = GetChildConfigKey(ckv_dup, ckv_drv_rslt);
-        if (UPLL_RC_SUCCESS != result_code) {
-          UPLL_LOG_DEBUG("Duplicate ConfigKeyVal failed  - %d", result_code);
-          DELETE_IF_NOT_NULL(ckv_dup);
+
+      UPLL_LOG_DEBUG("Result code from driver %d",
+                     ipc_response.header.result_code);
+      if  (ipc_response.header.result_code != UPLL_RC_SUCCESS) {
+        result_code = AdaptValToVtnService(resp);
+        if (result_code != UPLL_RC_SUCCESS &&
+            result_code != UPLL_RC_ERR_GENERIC) {
+          UPLL_LOG_DEBUG("AdaptValToVtnService failed %d\n", result_code);
+          DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+          DELETE_IF_NOT_NULL(ckv_running);
+          DELETE_IF_NOT_NULL(ckv_audit);
+          DELETE_IF_NOT_NULL(ckv_drvr);
+          DELETE_IF_NOT_NULL(resp);
+          dmi->CloseCursor(cursor, true);
           return result_code;
         }
-        /* Record exist check from running  - if not found, it is a delete*/
-        DbSubOp dbop = {kOpReadSingle, kOpMatchNone, kOpInOutNone};
-        result_code = ReadConfigDB(ckv_dup, UPLL_DT_RUNNING,
-            UNC_OP_READ, dbop, dmi, MAINTBL);
-        if (UPLL_RC_SUCCESS == result_code) { /* exists in Running Database */
-          /* Record exist check from audit - if exists then update else create*/
-          UPLL_LOG_TRACE("Record exist in running tbl result_code %d",
-              result_code);
-          result_code = GetChildConfigKey(ckv_au_dup, ckv_drv_rslt);
-          if (UPLL_RC_SUCCESS != result_code) {
-            UPLL_LOG_DEBUG("GetChildConfigKeyVal failed for ckv_au_dup - %d", result_code);
-            delete ckv_dup;  //check with Vinoth
-            DELETE_IF_NOT_NULL(ckv_au_dup);
+        if (phase == uuc::kUpllUcpDelete) {
+          *err_ckv = resp;
+          DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+          DELETE_IF_NOT_NULL(ckv_running);
+          DELETE_IF_NOT_NULL(ckv_audit);
+          DELETE_IF_NOT_NULL(ckv_drvr);
+          dmi->CloseCursor(cursor, true);
+          return ipc_response.header.result_code;
+        } else {
+          UPLL_LOG_DEBUG("driver return failure err_code is %d",
+                         ipc_response.header.result_code);
+          *err_ckv = resp;
+          ConfigKeyVal *ctrlr_key = NULL;
+          if (CTRLRTBL == (GET_TABLE_TYPE(keytype, tbl))) {
+            result_code = DupConfigKeyVal(ctrlr_key, ckv_running, CTRLRTBL);
+          } else {
+            result_code = DupConfigKeyVal(ctrlr_key, ckv_running, MAINTBL);
+          }
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_INFO("DupConfigKeyVal failed");
+            DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+            DELETE_IF_NOT_NULL(ckv_running);
+            DELETE_IF_NOT_NULL(ckv_audit);
+            DELETE_IF_NOT_NULL(ckv_drvr);
+            dmi->CloseCursor(cursor, true);
             return result_code;
           }
-          result_code = ReadConfigDB(ckv_au_dup, UPLL_DT_AUDIT,
-              UNC_OP_READ, dbop, dmi, MAINTBL);
-          if (UPLL_RC_SUCCESS == result_code) {
-            UPLL_LOG_TRACE("Record exist in running & audit tbl result_code %d",
-                result_code);
-            operation = uuc::kUpllUcpUpdate;
+          if (UNC_KT_VTN == keytype) {
+            result_code = UpdateCtrlrConfigStatus(UNC_CS_INVALID,
+                                                  phase, ctrlr_key);
           } else {
-            UPLL_LOG_TRACE("Record exist in running tbl only result_code %d",
-                result_code);
-            operation = uuc::kUpllUcpCreate;
+            result_code = UpdateAuditConfigStatus(UNC_CS_INVALID,
+                                                  phase, ctrlr_key, dmi);
           }
-          DELETE_IF_NOT_NULL(ckv_au_dup);
-        } else {
-          result_code = ReadConfigDB(ckv_dup, UPLL_DT_AUDIT,
-              UNC_OP_READ, dbop, dmi, MAINTBL);
-          if (UPLL_RC_SUCCESS == result_code) { /* exists in Audit Database */
-            UPLL_LOG_TRACE("Record exist in audit tbl only result_code %d",
-                result_code);
-            operation = uuc::kUpllUcpDelete;
-            ckv_dup->DeleteCfgVal();
-            UPLL_LOG_DEBUG("ConfigKeyVal failed during AuditVote Phase is %s",
-                ckv_dup->ToStrAll().c_str());
-          } else {
-            UPLL_LOG_TRACE("Record neither exists in running nor "
-                "audit tbl result_code %d", result_code);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_INFO("UpdateAuditConfigStatus failed");
+            DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+            DELETE_IF_NOT_NULL(ckv_running);
+            DELETE_IF_NOT_NULL(ckv_audit);
+            DELETE_IF_NOT_NULL(ckv_drvr);
+            dmi->CloseCursor(cursor, true);
+            DELETE_IF_NOT_NULL(ctrlr_key);
+            return result_code;
           }
-          DELETE_IF_NOT_NULL(ckv_dup);//check with Vinoth
-          continue;
-        }
-        if (uuc::kUpllUcpDelete != operation) {
-          ConfigKeyVal *temp_ckv_dup = NULL;
+          result_code = UpdateConfigDB(ctrlr_key,
+                                       UPLL_DT_RUNNING,
+                                       UNC_OP_UPDATE,
+                                       dmi,
+                                       tbl);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("UpdateConfigDB failed for ipc response"
+                           "ckv err_code %d",
+                           result_code);
+            DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+            DELETE_IF_NOT_NULL(ckv_running);
+            DELETE_IF_NOT_NULL(ckv_audit);
+            DELETE_IF_NOT_NULL(ckv_drvr);
+            dmi->CloseCursor(cursor, true);
+            DELETE_IF_NOT_NULL(ctrlr_key);
+            return result_code;
+          }
+          DELETE_IF_NOT_NULL(ctrlr_key);
           if (CTRLRTBL == (GET_TABLE_TYPE(keytype, tbl))) {
-            result_code = GetChildConfigKey(temp_ckv_dup, ckv_drv_rslt);
-            if (UPLL_RC_SUCCESS != result_code) {
-              UPLL_LOG_DEBUG("Duplicate ConfigKeyVal failed  - %d", result_code);
-              DELETE_IF_NOT_NULL(ckv_dup);
+            result_code = SetConsolidatedStatus(resp, dmi);
+            if (result_code != UPLL_RC_SUCCESS) {
+              UPLL_LOG_DEBUG("SetConsolidatedStatus failed for ipc"
+                             "response ckv err_code %d",
+                             result_code);
+              DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+              DELETE_IF_NOT_NULL(ckv_running);
+              DELETE_IF_NOT_NULL(ckv_audit);
+              DELETE_IF_NOT_NULL(ckv_drvr);
+              dmi->CloseCursor(cursor, true);
               return result_code;
             }
-            ConfigKeyVal *ctrlr_ckv = NULL;
-            result_code = GetChildConfigKey(ctrlr_ckv, temp_ckv_dup);
-            if (UPLL_RC_SUCCESS != result_code) {
-              UPLL_LOG_DEBUG("GetChildConfigKeyVal failed %d", result_code);
-              DELETE_IF_NOT_NULL(ckv_dup);
-              DELETE_IF_NOT_NULL(temp_ckv_dup);
+          }
+          DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+          DELETE_IF_NOT_NULL(ckv_running);
+          DELETE_IF_NOT_NULL(ckv_audit);
+          DELETE_IF_NOT_NULL(ckv_drvr);
+          dmi->CloseCursor(cursor, true);
+          return ipc_response.header.result_code;
+        }
+      }
+      DELETE_IF_NOT_NULL(ckv_drvr);
+      DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+      //  *ctrlr_affected = true;
+
+      if (*ctrlr_affected == uuc::kCtrlrAffectedOnlyCSDiff) {
+        UPLL_LOG_INFO("Reset ctrlr state from OnlyCSDiff to ConfigDiff  KT %u",
+                      keytype);
+      }
+      UPLL_LOG_DEBUG("Setting the ctrlr_affected to ConfigDiff,"
+                     "KT %u", keytype);
+      *ctrlr_affected = uuc::kCtrlrAffectedConfigDiff;
+      DELETE_IF_NOT_NULL(resp);
+    }
+    if (cursor)
+      dmi->CloseCursor(cursor, true);
+    if (uud::kDalRcSuccess != db_result) {
+      UPLL_LOG_DEBUG("GetNextRecord from database failed  - %d", db_result);
+      result_code =  DalToUpllResCode(db_result);
+    }
+    if (ckv_running)
+      delete ckv_running;
+    if (ckv_audit)
+      delete ckv_audit;
+    result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)
+        ? UPLL_RC_SUCCESS : result_code;
+    return result_code;
+  }
+
+  upll_rc_t MoMgrImpl::AuditVoteCtrlrStatus(unc_key_type_t keytype,
+                                            CtrlrVoteStatus *vote_status,
+                                            DalDmlIntf *dmi) {
+    UPLL_FUNC_TRACE;
+    if ((vote_status == NULL) || (dmi == NULL)) {
+      UPLL_LOG_INFO("vote_status or dmi is null");
+      return UPLL_RC_ERR_GENERIC;
+    }
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+    ConfigKeyVal *ckv_dup  = NULL;
+    ConfigKeyVal *ckv_au_dup  = NULL;
+    uuc::UpdateCtrlrPhase operation = uuc::kUpllUcpUpdate;
+    MoMgrTables tbl = MAINTBL;
+    uint32_t ctrlr_result  = vote_status->upll_ctrlr_result;
+    uint8_t *ctrlr_id =
+        reinterpret_cast<uint8_t *>((char *)(vote_status->ctrlr_id.c_str()));
+    UPLL_LOG_INFO("controller id & vote result  is %s %d", ctrlr_id,
+                  ctrlr_result);
+    switch (ctrlr_result) {
+      case UPLL_RC_SUCCESS: /* No Operation */
+        break;
+      case UNC_RC_CTR_DISCONNECTED:
+        break;
+      default:
+        /* retrieves the error configkeyval one by one and if the
+         * keytype matches,
+           rename the key with UNC name */
+        ConfigKeyVal *ckv_drv_rslt  = NULL;
+        for (ckv_drv_rslt  = vote_status->err_ckv;
+             ckv_drv_rslt != NULL; ckv_drv_rslt = ckv_drv_rslt->
+             get_next_cfg_key_val()) {
+          if (ckv_drv_rslt->get_key_type() != keytype)
+            continue;
+          /* Get the Unc key */
+          if (!OVERLAY_KT(keytype)) {
+            // Perform RenameUncKey and get logical specific key values from db
+            result_code = AdaptErrValToVtn(ckv_drv_rslt, dmi, ctrlr_id);
+            if (result_code != UPLL_RC_SUCCESS) {
+              UPLL_LOG_TRACE("AdaptErrValToVtn failed %d", result_code);
+              return result_code;
+            }
+            // Convert driver val to logical specific val
+            result_code = AdaptValToVtnService(ckv_drv_rslt);
+            if (result_code != UPLL_RC_SUCCESS) {
+              UPLL_LOG_DEBUG("AdaptValToVtnService failed %d\n", result_code);
               return result_code;
             }
-            SET_USER_DATA_CTRLR(ctrlr_ckv, ctrlr_id);
-            DbSubOp dbop1 = {kOpReadMultiple, kOpMatchCtrlr,
-              kOpInOutCtrlr | kOpInOutDomain};
-            result_code = ReadConfigDB(ctrlr_ckv, UPLL_DT_RUNNING,
-                UNC_OP_READ, dbop1, dmi, CTRLRTBL);
+          }
+          result_code = GetChildConfigKey(ckv_dup, ckv_drv_rslt);
+          if (UPLL_RC_SUCCESS != result_code) {
+            UPLL_LOG_DEBUG("Duplicate ConfigKeyVal failed  - %d", result_code);
+            DELETE_IF_NOT_NULL(ckv_dup);
+            return result_code;
+          }
+          /* Record exist check from running  - if not found, it is a delete*/
+          DbSubOp dbop = {kOpReadSingle, kOpMatchNone, kOpInOutCs};
+          result_code = ReadConfigDB(ckv_dup, UPLL_DT_RUNNING,
+                                     UNC_OP_READ, dbop, dmi, MAINTBL);
+          if (UPLL_RC_SUCCESS == result_code) { /* exists in Running Database*/
+            /* Record exist check from audit - if exists then update else
+             * create*/
+            UPLL_LOG_TRACE("Record exist in running tbl result_code %d",
+                           result_code);
+            result_code = GetChildConfigKey(ckv_au_dup, ckv_drv_rslt);
             if (UPLL_RC_SUCCESS != result_code) {
-              UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
-              DELETE_IF_NOT_NULL(ckv_dup);
-              DELETE_IF_NOT_NULL(temp_ckv_dup);
-              DELETE_IF_NOT_NULL(ctrlr_ckv);
+              UPLL_LOG_DEBUG("GetChildConfigKeyVal failed for ckv_au_dup - %d",
+                             result_code);
+              delete ckv_dup;  // check with Vinoth
+              DELETE_IF_NOT_NULL(ckv_au_dup);
               return result_code;
             }
-            ConfigKeyVal *temp_ctrlr_ckv = ctrlr_ckv;
-            while(temp_ctrlr_ckv) {
-              if (UNC_KT_VTN == keytype) {
-                result_code = UpdateCtrlrConfigStatus(UNC_CS_INVALID,
-                    operation, temp_ctrlr_ckv);
-              } else {
-                result_code = UpdateAuditConfigStatus(UNC_CS_INVALID,
-                    operation, temp_ctrlr_ckv);
+            result_code = ReadConfigDB(ckv_au_dup, UPLL_DT_AUDIT,
+                                       UNC_OP_READ, dbop, dmi, MAINTBL);
+            if (UPLL_RC_SUCCESS == result_code) {
+              UPLL_LOG_TRACE("Record exist in running & audit tbl"
+                             "result_code %d",
+                             result_code);
+              operation = uuc::kUpllUcpUpdate;
+            } else {
+              UPLL_LOG_TRACE("Record exist in running tbl only result_code %d",
+                             result_code);
+              operation = uuc::kUpllUcpCreate;
+            }
+            DELETE_IF_NOT_NULL(ckv_au_dup);
+          } else {
+            result_code = ReadConfigDB(ckv_dup, UPLL_DT_AUDIT,
+                                       UNC_OP_READ, dbop, dmi, MAINTBL);
+            if (UPLL_RC_SUCCESS == result_code) { /* exists in Audit Database*/
+              UPLL_LOG_TRACE("Record exist in audit tbl only result_code %d",
+                             result_code);
+              operation = uuc::kUpllUcpDelete;
+              ckv_dup->DeleteCfgVal();
+              UPLL_LOG_DEBUG("ConfigKeyVal failed during AuditVote"
+                             "Phase is %s",
+                             ckv_dup->ToStrAll().c_str());
+            } else {
+              UPLL_LOG_TRACE("Record neither exists in running nor "
+                             "audit tbl result_code %d", result_code);
+            }
+            DELETE_IF_NOT_NULL(ckv_dup);  // check with Vinoth
+
+            /* VlanmapOnBoundary: Added vlanmap check */
+            if (ckv_drv_rslt->get_key_type() == UNC_KT_VBR_VLANMAP) {
+              ConfigKeyVal *err_ckv = NULL;
+              VlanMapMoMgr *vlanmap_mgr = reinterpret_cast<VlanMapMoMgr *>(
+                  const_cast<MoManager *>(GetMoManager
+                                          (ckv_drv_rslt->get_key_type())));
+
+              ConfigKeyVal *vlanmap_ckv = NULL;
+              result_code = vlanmap_mgr->GetChildConfigKey(vlanmap_ckv,
+                                                           ckv_drv_rslt);
+
+              DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
+                kOpInOutFlag | kOpInOutDomain | kOpInOutCtrlr};
+              result_code = vlanmap_mgr->ReadConfigDB(vlanmap_ckv,
+                                                      UPLL_DT_CANDIDATE,
+                                                      UNC_OP_READ,
+                                                      dbop,
+                                                      dmi,
+                                                      MAINTBL);
+              if (result_code != UPLL_RC_SUCCESS) {
+                UPLL_LOG_DEBUG("ReadConfigDB from running failed %d",
+                               result_code);
+                DELETE_IF_NOT_NULL(vlanmap_ckv);
+                return UPLL_RC_ERR_GENERIC;
+              }
+
+              uint8_t flags = 0;
+              GET_USER_DATA_FLAGS(vlanmap_ckv, flags);
+              if (flags & BOUNDARY_VLANMAP_FLAG) {
+                /* Case1: Audit(del) - Check in AUDIT since no
+                 * info exists in RUNNING
+                 * Case2: Audit(Cr/upd) - Check in RUNNING always */
+                upll_keytype_datatype_t dttype =
+                    (uuc::kUpllUcpDelete == operation)?
+                    UPLL_DT_AUDIT:UPLL_DT_RUNNING;
+                result_code = vlanmap_mgr->TranslateError(&err_ckv,
+                                                          vlanmap_ckv,
+                                                          dmi, dttype);
+                if (result_code != UPLL_RC_SUCCESS) {
+                  UPLL_LOG_DEBUG("Error in Updating Error Code");
+                  DELETE_IF_NOT_NULL(err_ckv);
+                  DELETE_IF_NOT_NULL(vlanmap_ckv);
+                  return result_code;
+                }
+                ckv_drv_rslt->ResetWith(err_ckv);
+              }
+            }
+            continue;
+          }
+          if (uuc::kUpllUcpDelete != operation) {
+            ConfigKeyVal *temp_ckv_dup = NULL;
+            if (CTRLRTBL == (GET_TABLE_TYPE(keytype, tbl))) {
+              result_code = GetChildConfigKey(temp_ckv_dup, ckv_drv_rslt);
+              if (UPLL_RC_SUCCESS != result_code) {
+                UPLL_LOG_DEBUG("Duplicate ConfigKeyVal failed  - %d",
+                               result_code);
+                DELETE_IF_NOT_NULL(ckv_dup);
+                return result_code;
+              }
+              ConfigKeyVal *ctrlr_ckv = NULL;
+              result_code = GetChildConfigKey(ctrlr_ckv, temp_ckv_dup);
+              if (UPLL_RC_SUCCESS != result_code) {
+                UPLL_LOG_DEBUG("GetChildConfigKeyVal failed %d", result_code);
+                DELETE_IF_NOT_NULL(ckv_dup);
+                DELETE_IF_NOT_NULL(temp_ckv_dup);
+                return result_code;
+              }
+              SET_USER_DATA_CTRLR(ctrlr_ckv, ctrlr_id);
+              DbSubOp dbop1 = {kOpReadMultiple, kOpMatchCtrlr,
+                kOpInOutCtrlr | kOpInOutDomain};
+              result_code = ReadConfigDB(ctrlr_ckv, UPLL_DT_RUNNING,
+                                         UNC_OP_READ, dbop1, dmi, CTRLRTBL);
+              if (UPLL_RC_SUCCESS != result_code) {
+                UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
+                DELETE_IF_NOT_NULL(ckv_dup);
+                DELETE_IF_NOT_NULL(temp_ckv_dup);
+                DELETE_IF_NOT_NULL(ctrlr_ckv);
+                return result_code;
+              }
+              ConfigKeyVal *temp_ctrlr_ckv = ctrlr_ckv;
+              while (temp_ctrlr_ckv) {
+                if (UNC_KT_VTN == keytype) {
+                  result_code = UpdateCtrlrConfigStatus(UNC_CS_INVALID,
+                                                        operation,
+                                                        temp_ctrlr_ckv);
+                } else {
+                  result_code = UpdateAuditConfigStatus(UNC_CS_INVALID,
+                                                        operation,
+                                                        temp_ctrlr_ckv,
+                                                        dmi);
+                }
+                if (UPLL_RC_SUCCESS != result_code) {
+                  UPLL_LOG_DEBUG("UpdateAuditConfigStatus failed %d",
+                                 result_code);
+                  DELETE_IF_NOT_NULL(ckv_dup);
+                  DELETE_IF_NOT_NULL(temp_ckv_dup);
+                  DELETE_IF_NOT_NULL(ctrlr_ckv);
+                  return result_code;
+                }
+                result_code = UpdateConfigDB(temp_ctrlr_ckv,
+                                             UPLL_DT_RUNNING,
+                                             UNC_OP_UPDATE,
+                                             dmi,
+                                             CTRLRTBL);
+                if (UPLL_RC_SUCCESS != result_code) {
+                  UPLL_LOG_DEBUG("UpdateConfigDB failed %d",
+                                 result_code);
+                  DELETE_IF_NOT_NULL(ckv_dup);
+                  DELETE_IF_NOT_NULL(temp_ckv_dup);
+                  DELETE_IF_NOT_NULL(ctrlr_ckv);
+                  return result_code;
+                }
+                temp_ctrlr_ckv = temp_ctrlr_ckv->get_next_cfg_key_val();
+              }
+              DELETE_IF_NOT_NULL(ctrlr_ckv);
+            } else {
+              result_code = DupConfigKeyVal(temp_ckv_dup,
+                                            ckv_drv_rslt,
+                                            MAINTBL);
+              if (UPLL_RC_SUCCESS != result_code) {
+                UPLL_LOG_DEBUG("DupConfigKeyVal failed %d", result_code);
+                DELETE_IF_NOT_NULL(ckv_dup);
+                return result_code;
               }
+              result_code = UpdateAuditConfigStatus(UNC_CS_INVALID,
+                                                    operation,
+                                                    temp_ckv_dup,
+                                                    dmi);
               if (UPLL_RC_SUCCESS != result_code) {
-                UPLL_LOG_DEBUG("UpdateAuditConfigStatus failed %d", result_code);
+                UPLL_LOG_DEBUG("UpdateAuditConfigStatus failed %d",
+                               result_code);
                 DELETE_IF_NOT_NULL(ckv_dup);
                 DELETE_IF_NOT_NULL(temp_ckv_dup);
-                DELETE_IF_NOT_NULL(ctrlr_ckv);
                 return result_code;
               }
-              result_code = UpdateConfigDB(temp_ctrlr_ckv, UPLL_DT_RUNNING,
-                  UNC_OP_UPDATE, dmi, CTRLRTBL);
+              /* Configkeyval from driver will not contain
+               * flags, controller, domain */
+              // Update only config status
+              DbSubOp dbop = {kOpReadExist, kOpMatchNone, kOpInOutCs};
+              result_code = UpdateConfigDB(temp_ckv_dup, UPLL_DT_RUNNING,
+                                           UNC_OP_UPDATE, dmi, &dbop, MAINTBL);
               if (UPLL_RC_SUCCESS != result_code) {
                 UPLL_LOG_DEBUG("UpdateConfigDB failed %d", result_code);
                 DELETE_IF_NOT_NULL(ckv_dup);
                 DELETE_IF_NOT_NULL(temp_ckv_dup);
-                DELETE_IF_NOT_NULL(ctrlr_ckv);
                 return result_code;
               }
-              temp_ctrlr_ckv = temp_ctrlr_ckv->get_next_cfg_key_val();
-            }
-            DELETE_IF_NOT_NULL(ctrlr_ckv);
-          } else {
-            result_code = DupConfigKeyVal(temp_ckv_dup, ckv_drv_rslt, MAINTBL);
-            if (UPLL_RC_SUCCESS != result_code) {
-              UPLL_LOG_DEBUG("DupConfigKeyVal failed %d", result_code);
-              DELETE_IF_NOT_NULL(ckv_dup);
-              return result_code;
             }
-            result_code = UpdateAuditConfigStatus(UNC_CS_INVALID,
-                operation, temp_ckv_dup);
-            if (UPLL_RC_SUCCESS != result_code) {
-              UPLL_LOG_DEBUG("UpdateAuditConfigStatus failed %d", result_code);
+            result_code = SetConsolidatedStatus(ckv_drv_rslt, dmi);
+            if (result_code != UPLL_RC_SUCCESS) {
+              UPLL_LOG_INFO("SetConsolidatedStatus failed err code %d",
+                            result_code);
               DELETE_IF_NOT_NULL(ckv_dup);
               DELETE_IF_NOT_NULL(temp_ckv_dup);
               return result_code;
             }
-            result_code = UpdateConfigDB(temp_ckv_dup, UPLL_DT_RUNNING,
-                UNC_OP_UPDATE, dmi, MAINTBL);
-            if (UPLL_RC_SUCCESS != result_code) {
-              UPLL_LOG_DEBUG("UpdateConfigDB failed %d", result_code);
-              DELETE_IF_NOT_NULL(ckv_dup);
-              DELETE_IF_NOT_NULL(temp_ckv_dup);
+            DELETE_IF_NOT_NULL(temp_ckv_dup);
+          }
+          DELETE_IF_NOT_NULL(ckv_dup);
+
+          /* VlanmapOnBoundary: Added vlanmap check */
+          if (ckv_drv_rslt->get_key_type() == UNC_KT_VBR_VLANMAP) {
+            ConfigKeyVal *err_ckv = NULL;
+            ConfigKeyVal *vlanmap_ckv = NULL;
+            VlanMapMoMgr *vlanmap_mgr = reinterpret_cast<VlanMapMoMgr *>(
+                const_cast<MoManager *>(GetMoManager(
+                        ckv_drv_rslt->get_key_type())));
+
+            result_code = vlanmap_mgr->GetChildConfigKey(vlanmap_ckv,
+                                                         ckv_drv_rslt);
+
+            DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
+              kOpInOutFlag | kOpInOutCtrlr | kOpInOutDomain};
+
+            result_code = vlanmap_mgr->ReadConfigDB(vlanmap_ckv,
+                                                    UPLL_DT_CANDIDATE,
+                                                    UNC_OP_READ,
+                                                    dbop,
+                                                    dmi,
+                                                    MAINTBL);
+            if (result_code != UPLL_RC_SUCCESS) {
+              UPLL_LOG_DEBUG("ReadConfigDB from running failed %d",
+                             result_code);
+              DELETE_IF_NOT_NULL(vlanmap_ckv);
+              return UPLL_RC_ERR_GENERIC;
+            }
+
+            result_code = vlanmap_mgr->TranslateError(&err_ckv, vlanmap_ckv,
+                                                      dmi, UPLL_DT_RUNNING);
+            if (result_code != UPLL_RC_SUCCESS) {
+              UPLL_LOG_DEBUG("Error in Updating Error Code");
+              DELETE_IF_NOT_NULL(vlanmap_ckv);
+              DELETE_IF_NOT_NULL(err_ckv);
               return result_code;
             }
+            ckv_drv_rslt->ResetWith(err_ckv);
           }
-          result_code = SetConsolidatedStatus(ckv_drv_rslt, dmi);
-          if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_INFO("SetConsolidatedStatus failed err code %d", result_code);
-            DELETE_IF_NOT_NULL(ckv_dup);
-            DELETE_IF_NOT_NULL(temp_ckv_dup);
-            return result_code;
-          }
-          DELETE_IF_NOT_NULL(temp_ckv_dup);
+          UPLL_LOG_INFO("Processed err ConfigKeyVal are %s",
+                        (ckv_drv_rslt)->ToStrAll().c_str());
         }
-        DELETE_IF_NOT_NULL(ckv_dup);
-      }
-  }
-  return result_code;
-}
-
-upll_rc_t MoMgrImpl::AuditCommitCtrlrStatus(
-                                       unc_key_type_t keytype ,
-                                       CtrlrCommitStatus *ctrlr_commit_status,
-                                       DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-  if ((ctrlr_commit_status == NULL) || (dmi == NULL)) {
-    UPLL_LOG_DEBUG("ctrlr_commit_status or dmi is NULL");
-    return UPLL_RC_ERR_GENERIC;
+    }
+    return result_code;
   }
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  DalResultCode db_result = uud::kDalRcSuccess;
-  ConfigKeyVal *ckv_running = NULL;
-  ConfigKeyVal *ckv_audit = NULL;
-  ConfigKeyVal *ckv_update = NULL;
-  ConfigKeyVal *ctrlr_key = NULL;
-  DalCursor *cursor = NULL;
-  bool invalid_attr = false;
-  uint8_t *ctrlr_id =
-         reinterpret_cast<uint8_t *>((char *)(ctrlr_commit_status->ctrlr_id.c_str()));
-  uint32_t ctrlr_result = ctrlr_commit_status->upll_ctrlr_result;
-  UPLL_LOG_INFO("controller id & commit result  is %s %d", ctrlr_id,
-                                                   ctrlr_result);
-  MoMgrTables tbl = MAINTBL;
-  unc_keytype_operation_t operation = UNC_OP_INVALID;
-  GET_TABLE_TYPE(keytype, tbl);
-  switch (ctrlr_result) {
-  /* if controller returns commit success, set CS Status as applied
-     retreived from database */
-    case UPLL_RC_SUCCESS:
-      /* retreives the delta of running and audit configuration
-         - created and updated only */
-      for (int loop = uuc::kUpllUcpCreate; loop < uuc::kUpllUcpDelete; ++loop) {
-        operation = (loop == uuc::kUpllUcpCreate)?UNC_OP_CREATE:UNC_OP_UPDATE;
-/*        if ((operation == UNC_OP_UPDATE) && (keytype == UNC_KT_VTN))
-          return UPLL_RC_SUCCESS;*/
-        result_code = DiffConfigDB(UPLL_DT_RUNNING, UPLL_DT_AUDIT,
-                              operation,
-                              ckv_running, ckv_audit,
-                              &cursor,
-                              dmi, ctrlr_id,  tbl, true);
-        if (UPLL_RC_SUCCESS != result_code) {
-          UPLL_LOG_DEBUG("DiffConfigDB failed - %d", result_code);
-          return result_code;
-        }
-        /* Get the record one by one, duplicate the configkeyval
-         and update cs status */
-        while (uud::kDalRcSuccess == (db_result = dmi->GetNextRecord(cursor))) {
-          /* ignore records of another controller for create and update operation */
-          uint8_t *ctrlr = NULL;
-          GET_USER_DATA_CTRLR(ckv_running, ctrlr);
-          if (ctrlr && strncmp(reinterpret_cast<const char *>(ctrlr),
-                           reinterpret_cast<const char *>(ctrlr_id),
-                           sizeof(strlen(reinterpret_cast<const char *>(ctrlr_id)))))
-            continue;
-          UPLL_LOG_TRACE("Diff Record: Keytype: Phase:  is %d\n %d\n %s",
-                    keytype, loop, ckv_running->ToStrAll().c_str());
-          result_code =  GetDiffRecord(ckv_running, ckv_audit, (uuc::UpdateCtrlrPhase)loop, tbl,
-                                       ckv_update, dmi, invalid_attr);
-          if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_INFO("GetDiffRecord failed err code is %d", result_code);
-            return result_code;
-          }
-          if (CTRLRTBL == (GET_TABLE_TYPE(keytype, tbl))) {
-            result_code = DupConfigKeyVal(ctrlr_key, ckv_running, CTRLRTBL);
-          } else {
-            result_code = DupConfigKeyVal(ctrlr_key, ckv_running, MAINTBL);
-          }
-          if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_INFO("DupConfigKeyVal failed");
-            DELETE_IF_NOT_NULL(ckv_running);
-            DELETE_IF_NOT_NULL(ckv_audit);
-            DELETE_IF_NOT_NULL(ckv_update);
-            dmi->CloseCursor(cursor, true);
-            return result_code;
-          }
-          if (UNC_KT_VTN == keytype) {
-            result_code = UpdateCtrlrConfigStatus(UNC_CS_APPLIED,
-                               (uuc::UpdateCtrlrPhase)loop, ctrlr_key);
-          } else {
-            result_code = UpdateAuditConfigStatus(UNC_CS_APPLIED,
-                              (uuc::UpdateCtrlrPhase)loop, ctrlr_key);
-          }
-          if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_INFO("UpdateAuditConfigStatus failed");
+
+  upll_rc_t MoMgrImpl::AuditCommitCtrlrStatus(
+      unc_key_type_t keytype ,
+      CtrlrCommitStatus *ctrlr_commit_status,
+      DalDmlIntf *dmi) {
+    UPLL_FUNC_TRACE;
+    if ((ctrlr_commit_status == NULL) || (dmi == NULL)) {
+      UPLL_LOG_DEBUG("ctrlr_commit_status or dmi is NULL");
+      return UPLL_RC_ERR_GENERIC;
+    }
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+    DalResultCode db_result = uud::kDalRcSuccess;
+    ConfigKeyVal *ckv_running = NULL;
+    ConfigKeyVal *ckv_audit = NULL;
+    ConfigKeyVal *ckv_update = NULL;
+    ConfigKeyVal *ctrlr_key = NULL;
+    DalCursor *cursor = NULL;
+    bool invalid_attr = false;
+    uint8_t *ctrlr_id =
+        reinterpret_cast<uint8_t *>((char *)
+                                    (ctrlr_commit_status->ctrlr_id.c_str()));
+    uint32_t ctrlr_result = ctrlr_commit_status->upll_ctrlr_result;
+    UPLL_LOG_INFO("controller id & commit result  is %s %d", ctrlr_id,
+                  ctrlr_result);
+    MoMgrTables tbl = MAINTBL;
+    unc_keytype_operation_t operation = UNC_OP_INVALID;
+    GET_TABLE_TYPE(keytype, tbl);
+    switch (ctrlr_result) {
+      /* if controller returns commit success, set CS Status as applied
+         retreived from database */
+      case UPLL_RC_SUCCESS:
+        /* retreives the delta of running and audit configuration
+           - created and updated only */
+        for (int loop = uuc::kUpllUcpCreate; loop < uuc::kUpllUcpDelete;
+             ++loop) {
+          operation =
+              (loop == uuc::kUpllUcpCreate)?UNC_OP_CREATE:UNC_OP_UPDATE;
+          /*        if ((operation == UNC_OP_UPDATE) &&
+           *        (keytype == UNC_KT_VTN))
+                    return UPLL_RC_SUCCESS;*/
+          result_code = DiffConfigDB(UPLL_DT_RUNNING, UPLL_DT_AUDIT,
+                                     operation,
+                                     ckv_running, ckv_audit,
+                                     &cursor,
+                                     dmi, ctrlr_id,  tbl, true);
+          if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+            UPLL_LOG_DEBUG("No record found for op %d", operation);
             DELETE_IF_NOT_NULL(ckv_running);
             DELETE_IF_NOT_NULL(ckv_audit);
-            DELETE_IF_NOT_NULL(ckv_update);
-            DELETE_IF_NOT_NULL(ctrlr_key); 
-            dmi->CloseCursor(cursor, true);
-            return result_code;
+            continue;
           }
-          result_code = UpdateConfigDB(ctrlr_key, UPLL_DT_RUNNING,
-                            UNC_OP_UPDATE, dmi, tbl);
           if (UPLL_RC_SUCCESS != result_code) {
-            UPLL_LOG_DEBUG("UpdateConfigDB for config status update failed  %d",
-                                 result_code);
+            UPLL_LOG_DEBUG("DiffConfigDB failed - %d", result_code);
             DELETE_IF_NOT_NULL(ckv_running);
             DELETE_IF_NOT_NULL(ckv_audit);
-            DELETE_IF_NOT_NULL(ckv_update);
-            DELETE_IF_NOT_NULL(ctrlr_key);
-            dmi->CloseCursor(cursor, true);
+            // continue;
             return result_code;
           }
-          DELETE_IF_NOT_NULL(ctrlr_key);
-          if (CTRLRTBL == (GET_TABLE_TYPE(keytype, tbl))) {
-            result_code = SetConsolidatedStatus(ckv_update, dmi);
+          /* Get the record one by one, duplicate the configkeyval
+             and update cs status */
+          while (uud::kDalRcSuccess ==
+                 (db_result = dmi->GetNextRecord(cursor))) {
+            /* VlanmapOnBoundary: ignore records of another controller
+             * for create and update operation */
+            uint8_t *db_ctrlr = NULL;
+            GET_USER_DATA_CTRLR(ckv_running, db_ctrlr);
+            if ((!db_ctrlr) || (db_ctrlr && strncmp(
+                        reinterpret_cast<const char *>(db_ctrlr),
+                        reinterpret_cast<const char *>(ctrlr_id),
+                        strlen(reinterpret_cast
+                               <const char *>(ctrlr_id)) + 1))) {
+              if (keytype == UNC_KT_VLINK) {
+                unc_key_type_t ktype = UNC_KT_ROOT;
+                VlinkMoMgr *mgr = reinterpret_cast<VlinkMoMgr *>(
+                    const_cast<MoManager *>(GetMoManager(UNC_KT_VLINK)));
+                if (!mgr) {
+                  UPLL_LOG_DEBUG("Invalid mgr");
+                  DELETE_IF_NOT_NULL(ckv_running);
+                  DELETE_IF_NOT_NULL(ckv_audit);
+                  DELETE_IF_NOT_NULL(ckv_update);
+                  dmi->CloseCursor(cursor, true);
+                  return UPLL_RC_ERR_GENERIC;
+                }
+                ktype = mgr->GetVlinkVnodeIfKeyType(ckv_running, 1);
+                if (ktype != UNC_KT_VUNK_IF) {
+                  GET_USER_DATA_CTRLR(ckv_running->get_cfg_val(), db_ctrlr);
+                  if (db_ctrlr && strncmp(
+                          reinterpret_cast<const char *>
+                          (db_ctrlr),
+                          reinterpret_cast<const char *>
+                          (ctrlr_id),
+                          strlen(reinterpret_cast
+                                 <const char *>(ctrlr_id)) + 1)) {
+                    continue;
+                  }
+                } else {
+                  continue;
+                }
+              } else {
+                continue;
+              }
+            }
+            UPLL_LOG_TRACE("Diff Record: Keytype: Phase:  is %d\n %d\n %s",
+                           keytype, loop, ckv_running->ToStrAll().c_str());
+
+            result_code =  GetDiffRecord(ckv_running, ckv_audit,
+                                         (uuc::UpdateCtrlrPhase)loop, tbl,
+                                         ckv_update, dmi, invalid_attr);
+            if (result_code != UPLL_RC_SUCCESS) {
+              UPLL_LOG_INFO("GetDiffRecord failed err code is %d",
+                            result_code);
+              DELETE_IF_NOT_NULL(ckv_running);
+              DELETE_IF_NOT_NULL(ckv_audit);
+              DELETE_IF_NOT_NULL(ckv_update);
+              dmi->CloseCursor(cursor, true);
+              return result_code;
+            }
+            if (CTRLRTBL == (GET_TABLE_TYPE(keytype, tbl))) {
+              result_code = DupConfigKeyVal(ctrlr_key, ckv_running, CTRLRTBL);
+            } else {
+              result_code = DupConfigKeyVal(ctrlr_key, ckv_running, MAINTBL);
+            }
+            if (result_code != UPLL_RC_SUCCESS) {
+              UPLL_LOG_INFO("DupConfigKeyVal failed");
+              DELETE_IF_NOT_NULL(ckv_running);
+              DELETE_IF_NOT_NULL(ckv_audit);
+              DELETE_IF_NOT_NULL(ckv_update);
+              dmi->CloseCursor(cursor, true);
+              return result_code;
+            }
+            if (UNC_KT_VTN == keytype) {
+              result_code = UpdateCtrlrConfigStatus(UNC_CS_APPLIED,
+                                                    (uuc::UpdateCtrlrPhase)loop,
+                                                    ctrlr_key);
+            } else {
+              result_code = UpdateAuditConfigStatus(UNC_CS_APPLIED,
+                                                    (uuc::UpdateCtrlrPhase)loop,
+                                                    ctrlr_key, dmi);
+            }
             if (result_code != UPLL_RC_SUCCESS) {
-              UPLL_LOG_INFO("SetConsolidatedStatus failed err code %d", result_code);
+              UPLL_LOG_INFO("UpdateAuditConfigStatus failed");
+              DELETE_IF_NOT_NULL(ckv_running);
+              DELETE_IF_NOT_NULL(ckv_audit);
+              DELETE_IF_NOT_NULL(ckv_update);
+              DELETE_IF_NOT_NULL(ctrlr_key);
+              dmi->CloseCursor(cursor, true);
+              return result_code;
+            }
+            result_code = UpdateConfigDB(ctrlr_key, UPLL_DT_RUNNING,
+                                         UNC_OP_UPDATE, dmi, tbl);
+            if (UPLL_RC_SUCCESS != result_code) {
+              UPLL_LOG_DEBUG("UpdateConfigDB for config status"
+                             "update failed  %d",
+                             result_code);
               DELETE_IF_NOT_NULL(ckv_running);
               DELETE_IF_NOT_NULL(ckv_audit);
               DELETE_IF_NOT_NULL(ckv_update);
+              DELETE_IF_NOT_NULL(ctrlr_key);
               dmi->CloseCursor(cursor, true);
               return result_code;
             }
+            DELETE_IF_NOT_NULL(ctrlr_key);
+            if (CTRLRTBL == (GET_TABLE_TYPE(keytype, tbl))) {
+              result_code = SetConsolidatedStatus(ckv_update, dmi);
+              if (result_code != UPLL_RC_SUCCESS) {
+                UPLL_LOG_INFO("SetConsolidatedStatus failed err code %d",
+                              result_code);
+                DELETE_IF_NOT_NULL(ckv_running);
+                DELETE_IF_NOT_NULL(ckv_audit);
+                DELETE_IF_NOT_NULL(ckv_update);
+                dmi->CloseCursor(cursor, true);
+                return result_code;
+              }
+            }
+            DELETE_IF_NOT_NULL(ckv_update);
+            if (invalid_attr)
+              continue;
           }
-          DELETE_IF_NOT_NULL(ckv_update);
-          if (invalid_attr)
-            continue;
+          if (cursor) {
+            dmi->CloseCursor(cursor, true);
+            cursor = NULL;
+          }
+          DELETE_IF_NOT_NULL(ckv_running);
+          DELETE_IF_NOT_NULL(ckv_audit);
         }
-        if (cursor) {
-          dmi->CloseCursor(cursor, true);
-          cursor = NULL;
+        if (uud::kDalRcSuccess != db_result) {
+          UPLL_LOG_DEBUG("GetNextRecord from database failed  - %d",
+                         db_result);
+          result_code = DalToUpllResCode(db_result);
         }
-        DELETE_IF_NOT_NULL(ckv_running);
-        DELETE_IF_NOT_NULL(ckv_audit);
-      }
-      if (uud::kDalRcSuccess != db_result) {
-        UPLL_LOG_DEBUG("GetNextRecord from database failed  - %d",
-                          db_result);
-        result_code = DalToUpllResCode(db_result);
-      }
-      result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)
-                ? UPLL_RC_SUCCESS : result_code;
-      break;
-    case UPLL_RC_ERR_RESOURCE_DISCONNECTED:
-      break;  // NO OPERATION
-  default:
-      /* retrieves the error configkeyval one by one and if the keytype matches,
-         rename the key with UNC name */
-      result_code = AuditVoteCtrlrStatus(keytype, ctrlr_commit_status, dmi);
-  }
-  return result_code;
-}
-
-upll_rc_t MoMgrImpl::AuditEnd(unc_key_type_t keytype,
-                              const char *ctrlr_id,
-                              DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  DalResultCode db_result;
-  uudst::kDalTableIndex tbl_index;
-  for (int tbl = MAINTBL; tbl < ntable; tbl++) {
-    tbl_index = GetTable((MoMgrTables)tbl, UPLL_DT_AUDIT);
-    UPLL_LOG_DEBUG("Table Index value is %d", tbl_index);
-    if (tbl_index >= uudst::kDalNumTables)
-      continue;
-    db_result = dmi->DeleteRecords(UPLL_DT_AUDIT, tbl_index, NULL);
-    result_code = DalToUpllResCode(db_result);
-    result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)
-                ? UPLL_RC_SUCCESS : result_code;
-    if (UPLL_RC_SUCCESS != result_code) {
-        UPLL_LOG_DEBUG("DAL error in DeleteRecords call  - %d", result_code);
+        result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)
+            ? UPLL_RC_SUCCESS : result_code;
         break;
+      case UNC_RC_CTR_DISCONNECTED:
+        break;  // NO OPERATION
+      default:
+        /* retrieves the error configkeyval one by one and if
+         * the keytype matches,
+           rename the key with UNC name */
+        result_code = AuditVoteCtrlrStatus(keytype, ctrlr_commit_status, dmi);
     }
+    return result_code;
+  }
+
+  upll_rc_t MoMgrImpl::AuditEnd(unc_key_type_t keytype,
+                                const char *ctrlr_id,
+                                DalDmlIntf *dmi) {
+    UPLL_FUNC_TRACE;
+    return (ClearConfiguration(keytype, dmi, UPLL_DT_AUDIT));
   }
-  return result_code;
-}
 
-upll_rc_t MoMgrImpl::ClearStartup(unc_key_type_t kt,
-                                  DalDmlIntf *dmi) {
+  // Some configuration types maintain parent-child relationship.
+  // It is advised to call this API with REVERSE_ORDER
+  upll_rc_t MoMgrImpl::ClearConfiguration(unc_key_type_t kt,
+                                          DalDmlIntf *dmi,
+                                          upll_keytype_datatype_t cfg_type) {
     UPLL_FUNC_TRACE;
     upll_rc_t result_code = UPLL_RC_SUCCESS;
     DalResultCode db_result;
-    for (int tbl = MAINTBL; tbl < ntable; tbl++) {
+    for (int tbl = ntable; tbl > MAINTBL; tbl--) {
       uudst::kDalTableIndex tbl_index;
-      tbl_index = GetTable((MoMgrTables)tbl, UPLL_DT_IMPORT);
-      if ((tbl_index >= uudst::kDalNumTables) ||
-        ((tbl == RENAMETBL) && (kt != UNC_KT_VBRIDGE)))
+      tbl_index = GetTable((MoMgrTables)(tbl - 1), cfg_type);
+      if ((tbl_index >= uudst::kDalNumTables))
+        continue;
+      // vnode_rename_tbl should be copied only once.
+      if (((tbl - 1) == RENAMETBL) && (VNODE_KEYTYPE(kt)) &&
+          (kt != UNC_KT_VBRIDGE))
         continue;
-      db_result =  dmi->DeleteRecords(UPLL_DT_STARTUP, tbl_index, NULL);
+      db_result =  dmi->DeleteRecords(cfg_type, tbl_index, NULL);
       result_code = DalToUpllResCode(db_result);
       if (result_code != UPLL_RC_SUCCESS &&
           result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE)
         return result_code;
     }
     return UPLL_RC_SUCCESS;
-}
-
-upll_rc_t MoMgrImpl::CopyRunningToStartup(unc_key_type_t kt,
-                                          DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-
-  upll_keytype_datatype_t dest_cfg_type = UPLL_DT_STARTUP;
-  upll_keytype_datatype_t src_cfg_type = UPLL_DT_RUNNING;
-
-  for (int i = MAINTBL; i < ntable; i++)  {
-    DalResultCode db_result  = uud::kDalRcSuccess;
-    const uudst::kDalTableIndex tbl_index = GetTable((MoMgrTables)i,
-                                                     src_cfg_type);
-    if (tbl_index >= uudst::kDalNumTables)
-      continue;
-    db_result = dmi->CopyEntireRecords(dest_cfg_type, src_cfg_type,
-                                     tbl_index, NULL);
-    if ((db_result != uud::kDalRcSuccess) &&
-        (db_result != uud::kDalRcRecordNotFound)) {
-      return DalToUpllResCode(db_result);
-    }
   }
-  return UPLL_RC_SUCCESS;
-}
 
-upll_rc_t MoMgrImpl::CopyStartupToCandidate(unc_key_type_t kt,
-                                            DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-  upll_keytype_datatype_t dest_cfg_type = UPLL_DT_CANDIDATE;
-  upll_keytype_datatype_t src_cfg_type = UPLL_DT_STARTUP;
-  for (int i = MAINTBL; i < ntable; i++)  {
-    DalResultCode db_result  = uud::kDalRcSuccess;
-    const uudst::kDalTableIndex tbl_index = GetTable((MoMgrTables)i,
-                                                     src_cfg_type);
-    if (tbl_index >= uudst::kDalNumTables)
-      continue;
-    db_result = dmi->CopyEntireRecords(dest_cfg_type, src_cfg_type,
-                                     tbl_index, NULL);
-    if ((db_result != uud::kDalRcSuccess) &&
-        (db_result != uud::kDalRcRecordNotFound)) {
-      return DalToUpllResCode(db_result);
-    }
+  upll_rc_t MoMgrImpl::ClearStartup(unc_key_type_t kt,
+                                    DalDmlIntf *dmi) {
+    UPLL_FUNC_TRACE;
+    return(ClearConfiguration(kt, dmi, UPLL_DT_STARTUP));
   }
-  return UPLL_RC_SUCCESS;
-}
 
-upll_rc_t MoMgrImpl::CopyRunningToCandidate(unc_key_type_t kt,
+  upll_rc_t MoMgrImpl::CopyRunningToStartup(unc_key_type_t kt,
                                             DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-  DalResultCode db_result = uud::kDalRcSuccess;
-  upll_keytype_datatype_t dest_cfg_type = UPLL_DT_CANDIDATE;
-  upll_keytype_datatype_t src_cfg_type = UPLL_DT_RUNNING;
-  for (int i = MAINTBL; i < ntable; i++)  {
-    const uudst::kDalTableIndex tbl_index = GetTable((MoMgrTables)i,
-                                                     src_cfg_type);
-    if (tbl_index >= uudst::kDalNumTables)
-      continue;
-    db_result = dmi->CopyModifiedRecords(dest_cfg_type, src_cfg_type, tbl_index,
-                  NULL);
-    if (db_result != uud::kDalRcSuccess) {
-      break;
-    }
-  }
-  return DalToUpllResCode(db_result);
-}
-
-upll_rc_t MoMgrImpl::LoadStartup(unc_key_type_t kt, DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-  /* copy startup to candidate */
-  upll_rc_t result_code = CopyStartupToCandidate(kt, dmi);
-  if (result_code != UPLL_RC_SUCCESS)
-    return result_code;
+    UPLL_FUNC_TRACE;
 
-  /* copy startup to running */
-  upll_keytype_datatype_t dest_cfg_type = UPLL_DT_RUNNING;
-  upll_keytype_datatype_t src_cfg_type = UPLL_DT_STARTUP;
-  for (int tbl = MAINTBL; tbl < ntable; tbl++) {
-    DalResultCode db_result  = uud::kDalRcSuccess;
-    const uudst::kDalTableIndex tbl_index = GetTable((MoMgrTables)tbl,
-                                                     dest_cfg_type);
-    if (tbl_index >= uudst::kDalNumTables)
-      continue;
-    db_result = dmi->CopyEntireRecords(dest_cfg_type, src_cfg_type,
-                                     tbl_index, NULL);
-    if ((db_result != uud::kDalRcSuccess) &&
-        (db_result != uud::kDalRcRecordNotFound)) {
-      UPLL_LOG_INFO("Copy error");
-      break;
-    }
-    if (tbl != RENAMETBL) {
-      DalBindInfo dal_bind_info(tbl_index);
-      result_code = BindStartup(&dal_bind_info, dest_cfg_type,
-                                           (MoMgrTables)tbl);
-      if (result_code != UPLL_RC_SUCCESS) {
-        return result_code;
-      }
-      db_result = dmi->UpdateRecords(dest_cfg_type, tbl_index,
-                                    &dal_bind_info);
+    upll_keytype_datatype_t dest_cfg_type = UPLL_DT_STARTUP;
+    upll_keytype_datatype_t src_cfg_type = UPLL_DT_RUNNING;
+
+    for (int tbl = MAINTBL; tbl < ntable; tbl++)  {
+      DalResultCode db_result  = uud::kDalRcSuccess;
+      const uudst::kDalTableIndex tbl_index = GetTable((MoMgrTables)tbl,
+                                                       src_cfg_type);
+      if (tbl_index >= uudst::kDalNumTables)
+        continue;
+      // vnode_rename_tbl should be copied only once.
+      if ((tbl == RENAMETBL) && VNODE_KEYTYPE(kt) && (kt != UNC_KT_VBRIDGE))
+        continue;
+      db_result = dmi->CopyEntireRecords(dest_cfg_type, src_cfg_type,
+                                         tbl_index, NULL);
       if ((db_result != uud::kDalRcSuccess) &&
           (db_result != uud::kDalRcRecordNotFound)) {
-        UPLL_LOG_INFO("Update error %d, kt - %d", db_result, kt);
         return DalToUpllResCode(db_result);
       }
     }
+    return UPLL_RC_SUCCESS;
   }
-  return UPLL_RC_SUCCESS;
-}
-
-upll_rc_t MoMgrImpl::IsCandidateDirty(unc_key_type_t kt,
-                                      bool *dirty,
-                                      DalDmlIntf *dmi) {
-  DalResultCode db_result = uud::kDalRcSuccess;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  bool identical = false;
-  *dirty = false;
-
-  upll_keytype_datatype_t cfg_type1 = UPLL_DT_RUNNING;
-  upll_keytype_datatype_t cfg_type2 = UPLL_DT_CANDIDATE;
-//  DalBindInfo *matching_attr_info;
-  for (int i = MAINTBL; i < ntable; i++) {
-    const uudst::kDalTableIndex tbl_index = GetTable((MoMgrTables)i, cfg_type1);
-    if (tbl_index >= uudst::kDalNumTables)
-      continue;
-    DalBindInfo dal_bind_info(tbl_index);
-    result_code = BindCandidateDirty(&dal_bind_info,
-                                      cfg_type1, (MoMgrTables)i,
-                                      tbl_index);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Error while binding %d", result_code);
-      return result_code;
-    }
-    db_result = dmi->CheckRecordsIdentical(cfg_type1,
-                                             cfg_type2,
-                                             tbl_index,
-                                             &dal_bind_info,
-                                             &identical);
-    result_code = DalToUpllResCode(db_result);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Check Records identical Failed %d", result_code);
-      return result_code;
-    }
-    /* dirty is set if records are identical */
-    *dirty = !identical;
-    if (!identical) {
-      break;
+
+  upll_rc_t MoMgrImpl::CopyStartupToCandidate(unc_key_type_t kt,
+                                              DalDmlIntf *dmi) {
+    UPLL_FUNC_TRACE;
+    upll_keytype_datatype_t dest_cfg_type = UPLL_DT_CANDIDATE;
+    upll_keytype_datatype_t src_cfg_type = UPLL_DT_STARTUP;
+    for (int tbl = MAINTBL; tbl < ntable; tbl++)  {
+      DalResultCode db_result  = uud::kDalRcSuccess;
+      const uudst::kDalTableIndex tbl_index = GetTable((MoMgrTables)tbl,
+                                                       src_cfg_type);
+      if (tbl_index >= uudst::kDalNumTables)
+        continue;
+      // vnode_rename_tbl should be copied only once.
+      if ((tbl == RENAMETBL) && VNODE_KEYTYPE(kt) && (kt != UNC_KT_VBRIDGE))
+        continue;
+      db_result = dmi->CopyEntireRecords(dest_cfg_type, src_cfg_type,
+                                         tbl_index, NULL);
+      if (db_result == uud::kDalRcRecordNotFound) {
+        db_result = uud::kDalRcSuccess;
+      }
+      if (db_result != uud::kDalRcSuccess) {
+        return DalToUpllResCode(db_result);
+      }
     }
+    return UPLL_RC_SUCCESS;
   }
-  return result_code;
-}
 
-upll_rc_t MoMgrImpl::DalToUpllResCode(DalResultCode result_code) {
-  switch (result_code) {
-    case uud::kDalRcSuccess:
-      return UPLL_RC_SUCCESS;
-    case uud::kDalRcConnNotAvailable:
-      return UPLL_RC_ERR_RESOURCE_DISCONNECTED;
-    case uud::kDalRcTxnError:
-      return UPLL_RC_ERR_GENERIC;
-    case uud::kDalRcInvalidConnHandle:
-      return UPLL_RC_ERR_DB_ACCESS;
-    case uud::kDalRcRecordNotFound:
-    case uud::kDalRcRecordNoMore:
-      return UPLL_RC_ERR_NO_SUCH_INSTANCE;
-    case uud::kDalRcRecordAlreadyExists:
-      return UPLL_RC_ERR_INSTANCE_EXISTS;
-    case uud::kDalRcAccessViolation:
-      return UPLL_RC_ERR_DB_ACCESS;
-    case uud::kDalRcConnNotEstablished:
-    case uud::kDalRcDataError:
-    case uud::kDalRcInvalidCursor:
-    case uud::kDalRcMemoryError:
-    case uud::kDalRcInternalError:
-    case uud::kDalRcGeneralError:
-    default:
-      return UPLL_RC_ERR_GENERIC;
+  upll_rc_t MoMgrImpl::CopyRunningToCandidate(unc_key_type_t kt,
+                                              DalDmlIntf *dmi,
+                                              unc_keytype_operation_t op) {
+    UPLL_FUNC_TRACE;
+    DalResultCode db_result = uud::kDalRcSuccess;
+    upll_keytype_datatype_t dest_cfg_type = UPLL_DT_CANDIDATE;
+    upll_keytype_datatype_t src_cfg_type = UPLL_DT_RUNNING;
+    for (int tbl = MAINTBL; tbl < ntable; tbl++)  {
+      const uudst::kDalTableIndex tbl_index = GetTable((MoMgrTables)tbl,
+                                                       src_cfg_type);
+      if (tbl_index >= uudst::kDalNumTables)
+        continue;
+      db_result = dmi->CopyModifiedRecords(dest_cfg_type,
+                                           src_cfg_type,
+                                           tbl_index,
+                                           NULL,
+                                           op);
+      if (db_result == uud::kDalRcRecordNotFound) {
+        db_result = uud::kDalRcSuccess;
+      }
+      if (db_result != uud::kDalRcSuccess) {
+        break;
+      }
+    }
+    return DalToUpllResCode(db_result);
   }
-}
-
 
+  upll_rc_t MoMgrImpl::LoadStartup(unc_key_type_t kt, DalDmlIntf *dmi) {
+    UPLL_FUNC_TRACE;
+    // Clearing Candidate and Running configuration should be handled by
+    // the caller
+    /* copy startup to candidate */
+    upll_rc_t result_code = CopyStartupToCandidate(kt, dmi);
+    if (result_code != UPLL_RC_SUCCESS)
+      return result_code;
 
-upll_rc_t MoMgrImpl:: UpdateVnodeTables(ConfigKeyVal *ikey,
-                                         upll_keytype_datatype_t data_type,
-                                         DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-  if (!ikey) {
-    UPLL_LOG_DEBUG("Given Input is Empty ");
-    return UPLL_RC_ERR_GENERIC;
+    /* copy startup to running */
+    upll_keytype_datatype_t dest_cfg_type = UPLL_DT_RUNNING;
+    upll_keytype_datatype_t src_cfg_type = UPLL_DT_STARTUP;
+    for (int tbl = MAINTBL; tbl < ntable; tbl++) {
+      DalResultCode db_result  = uud::kDalRcSuccess;
+      const uudst::kDalTableIndex tbl_index = GetTable((MoMgrTables)tbl,
+                                                       dest_cfg_type);
+      if (tbl_index >= uudst::kDalNumTables)
+        continue;
+      // vnode_rename_tbl should be copied only once.
+      if ((tbl == RENAMETBL) && VNODE_KEYTYPE(kt) && (kt != UNC_KT_VBRIDGE))
+        continue;
+      db_result = dmi->CopyEntireRecords(dest_cfg_type, src_cfg_type,
+                                         tbl_index, NULL);
+      if ((db_result != uud::kDalRcSuccess) &&
+          (db_result != uud::kDalRcRecordNotFound)) {
+        UPLL_LOG_INFO("Copy error");
+        break;
+      }
+      if (tbl != RENAMETBL) {
+        DalBindInfo dal_bind_info(tbl_index);
+        result_code = BindStartup(&dal_bind_info, dest_cfg_type,
+                                  (MoMgrTables)tbl);
+        if (result_code != UPLL_RC_SUCCESS) {
+          return result_code;
+        }
+        db_result = dmi->UpdateRecords(dest_cfg_type, tbl_index,
+                                       &dal_bind_info);
+        if ((db_result != uud::kDalRcSuccess) &&
+            (db_result != uud::kDalRcRecordNotFound)) {
+          UPLL_LOG_INFO("Update error %d, kt - %d", db_result, kt);
+          return DalToUpllResCode(db_result);
+        }
+      }
+    }
+    return UPLL_RC_SUCCESS;
   }
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  for (int tbl = MAINTBL; tbl < ntable; tbl++) {
-    if (GetTable((MoMgrTables)tbl, data_type) < uudst::kDalNumTables) {
-      UPLL_LOG_TRACE("TABLE INDEX IS %d", GetTable((MoMgrTables)tbl, data_type));
-      DbSubOp dbop = {kOpNotRead, kOpMatchNone, kOpInOutFlag};
-      result_code = UpdateRenameKey(ikey, data_type, UNC_OP_UPDATE,
-                        dmi, &dbop, (MoMgrTables)tbl);
 
-      if (UPLL_RC_SUCCESS != result_code &&
-          UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
-        UPLL_LOG_DEBUG(" UpdateRenameKey Reurn Failure = %d", result_code);
+  upll_rc_t MoMgrImpl::IsCandidateDirty(unc_key_type_t kt,
+                                        bool *dirty,
+                                        DalDmlIntf *dmi) {
+    DalResultCode db_result = uud::kDalRcSuccess;
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+    bool identical = false;
+    *dirty = false;
+
+    upll_keytype_datatype_t cfg_type1 = UPLL_DT_RUNNING;
+    upll_keytype_datatype_t cfg_type2 = UPLL_DT_CANDIDATE;
+    //  DalBindInfo *matching_attr_info;
+    for (int i = MAINTBL; i < ntable; i++) {
+      const uudst::kDalTableIndex tbl_index =
+          GetTable((MoMgrTables)i, cfg_type1);
+      if (tbl_index >= uudst::kDalNumTables)
+        continue;
+      DalBindInfo dal_bind_info(tbl_index);
+      result_code = BindCandidateDirty(&dal_bind_info,
+                                       cfg_type1, (MoMgrTables)i,
+                                       tbl_index);
+      if (result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("Error while binding %d", result_code);
+        return result_code;
+      }
+      db_result = dmi->CheckRecordsIdentical(cfg_type1,
+                                             cfg_type2,
+                                             tbl_index,
+                                             &dal_bind_info,
+                                             &identical);
+      result_code = DalToUpllResCode(db_result);
+      if (result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("Check Records identical Failed %d", result_code);
         return result_code;
       }
-      UPLL_LOG_TRACE("Updated Successfully in the Table ");
+      /* dirty is set if records are identical */
+      *dirty = !identical;
+      if (!identical) {
+        break;
+      }
     }
+    return result_code;
   }
-  result_code = (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code)?
-                UPLL_RC_SUCCESS:result_code;
-  return result_code;
-}
-
 
-
-upll_rc_t MoMgrImpl::UpdateRenamedValue(ConfigKeyVal *&rename_info,
-                                        DalDmlIntf *dmi,
-                                        upll_keytype_datatype_t data_type,
-                                        bool &renamed,
-                                        bool &no_rename) {
-  UPLL_FUNC_TRACE;
-  if (!rename_info || (!rename_info->get_key())) {
-    UPLL_LOG_DEBUG("Given Input is Empty ");
-    return UPLL_RC_ERR_GENERIC;
+  upll_rc_t MoMgrImpl::DalToUpllResCode(DalResultCode result_code) {
+    switch (result_code) {
+      case uud::kDalRcSuccess:
+        return UPLL_RC_SUCCESS;
+      case uud::kDalRcConnNotAvailable:
+      case uud::kDalRcConnTimeOut:
+      case uud::kDalRcQueryTimeOut:
+        return UPLL_RC_ERR_RESOURCE_DISCONNECTED;
+      case uud::kDalRcTxnError:
+        return UPLL_RC_ERR_GENERIC;
+      case uud::kDalRcAccessViolation:
+        UPLL_LOG_FATAL("DB access error: %d", result_code);
+        return UPLL_RC_ERR_DB_ACCESS;
+      case uud::kDalRcParentNotFound:
+        return UPLL_RC_ERR_PARENT_DOES_NOT_EXIST;
+      case uud::kDalRcRecordNotFound:
+      case uud::kDalRcRecordNoMore:
+        return UPLL_RC_ERR_NO_SUCH_INSTANCE;
+      case uud::kDalRcRecordAlreadyExists:
+        return UPLL_RC_ERR_INSTANCE_EXISTS;
+      case uud::kDalRcConnNotEstablished:
+      case uud::kDalRcNotDisconnected:
+      case uud::kDalRcInvalidConnHandle:
+      case uud::kDalRcInvalidCursor:
+      case uud::kDalRcDataError:
+      case uud::kDalRcMemoryError:
+      case uud::kDalRcInternalError:
+      case uud::kDalRcGeneralError:
+      default:
+        return UPLL_RC_ERR_GENERIC;
+    }
   }
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-
-  ConfigKeyVal *okey = NULL;
 
-  uint8_t rename = 0;
-
-  ConfigKeyVal *combine_key = NULL;
-  /* Create the partial key */
-  result_code = CopyToConfigKey(okey, rename_info);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("CopyToConfig Return Empty key");
-    DELETE_IF_NOT_NULL(okey);
-    return UPLL_RC_ERR_GENERIC;
-  }
-  UPLL_LOG_DEBUG("The CopyToConfigKey out is %s", (okey->ToStrAll()).c_str());
-  /* Get the Full key Information */
-  DbSubOp dbop = {kOpReadMultiple, kOpMatchNone,
-    kOpInOutFlag | kOpInOutCtrlr | kOpInOutDomain};
-  /* For VTN, we need to read it from Controller Table
-   * since while doing VTN rename we are skipping the vtn
-   * MAINTBL
-   */
-    result_code = ReadConfigDB(okey, data_type, UNC_OP_READ, dbop, dmi, MAINTBL);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("ReadConfigDB returns Error = %d ", result_code);
-    DELETE_IF_NOT_NULL(okey);
-    return result_code;
-  }
-  ConfigKeyVal *temp = okey;
-  while (okey) {
-    rename = 0;
-    val_rename_vnode *vnode = NULL;
-    key_rename_vnode_info  *vnode_rename =
-        reinterpret_cast<key_rename_vnode_info *>(rename_info->get_key());
-    GET_USER_DATA_FLAGS(okey, rename);
-    /* Set the rename flag */
-    UPLL_LOG_TRACE("Before Renaming the Rename Flag = %d", rename);
-    switch (rename_info->get_key_type()) {
-      case UNC_KT_VTN:
-        if (!no_rename)
-          rename = rename | VTN_RENAME;
-        else
-          rename = rename & NO_VTN_RENAME;
-        UPLL_LOG_TRACE("After the Renaming the Rename Flag = %d ", rename);
-        break;
-      case UNC_KT_VROUTER:
-      case UNC_KT_VLINK:
-      case UNC_KT_VBRIDGE:
-        if (!no_rename)
-          rename = rename | VN_RENAME;
-        else
-          rename = rename & NO_VN_RENAME;
-        UPLL_LOG_TRACE("After the Renaming the Rename Flag = %d ", rename);
-        break;
-        // Update Here
-      case UNC_KT_POLICING_PROFILE:
-        switch (table[MAINTBL]->get_key_type()) {
-          case UNC_KT_POLICING_PROFILE:
-          case UNC_KT_POLICING_PROFILE_ENTRY:
-            if (!no_rename)
-              rename = rename | PP_RENAME;
-            else
-              rename = rename & NO_PP_RENAME;
-            break;
-          case UNC_KT_VTN_POLICINGMAP:
-          case UNC_KT_VBR_POLICINGMAP:
-          case UNC_KT_VBRIF_POLICINGMAP:
-            if (!no_rename)
-              rename = rename | PM_RENAME;
-            else
-              rename = rename & NO_PM_RENAME;
-            break;
-          default:
-            break;
-        }
-        break;
-      case UNC_KT_FLOWLIST:
-        switch (table[MAINTBL]->get_key_type()) {
-          case UNC_KT_FLOWLIST:
-          case UNC_KT_FLOWLIST_ENTRY:
-            if (!no_rename)
-              rename = rename | FL_RENAME;
-            else
-              rename = rename & NO_FL_RENAME;
-            break;
-          case UNC_KT_VTN_FLOWFILTER:
-          case UNC_KT_VTN_FLOWFILTER_ENTRY:
-          case UNC_KT_VTN_FLOWFILTER_CONTROLLER:
-          case UNC_KT_VBR_FLOWFILTER:
-          case UNC_KT_VBR_FLOWFILTER_ENTRY:
-          case UNC_KT_VBRIF_FLOWFILTER:
-          case UNC_KT_VBRIF_FLOWFILTER_ENTRY:
-          case UNC_KT_VRTIF_FLOWFILTER:
-          case UNC_KT_VRTIF_FLOWFILTER_ENTRY:
-            if (!no_rename)
-              rename = rename | FF_RENAME;
-            else
-              rename = rename & NO_FF_RENAME;
-            break;
-          default:
-            break;
+  upll_rc_t MoMgrImpl::UpdateVnodeTables(ConfigKeyVal *ikey,
+                                         upll_keytype_datatype_t data_type,
+                                         DalDmlIntf *dmi) {
+    UPLL_FUNC_TRACE;
+    if (!ikey) {
+      UPLL_LOG_DEBUG("Given Input is Empty ");
+      return UPLL_RC_ERR_GENERIC;
+    }
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+    for (int tbl = MAINTBL; tbl < ntable; tbl++) {
+      /* Skipping the VTN Main Table During the VTN rename */
+      if (GetTable((MoMgrTables)tbl, data_type) != uudst::kDbiVtnTbl &&
+          GetTable((MoMgrTables)tbl, data_type) < uudst::kDalNumTables) {
+        UPLL_LOG_TRACE("TABLE INDEX IS %d",
+                       GetTable((MoMgrTables)tbl, data_type));
+        DbSubOp dbop = {kOpNotRead, kOpMatchNone, kOpInOutFlag};
+        result_code = UpdateRenameKey(ikey, data_type, UNC_OP_UPDATE,
+                                      dmi, &dbop, (MoMgrTables)tbl);
+
+        if (UPLL_RC_SUCCESS != result_code &&
+            UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+          UPLL_LOG_DEBUG(" UpdateRenameKey Reurn Failure = %d", result_code);
+          return result_code;
         }
-      default:
-        break;
+        UPLL_LOG_TRACE("Updated Successfully in the Table ");
+      }
     }
-    /* Create the duplicate key by using this function */
-    UPLL_LOG_TRACE("The Okey is %s", okey->ToStrAll().c_str());
-    result_code = GetChildConfigKey(combine_key, okey);
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("GetChildConfigKey Return Empty Key ");
-     if (combine_key) {
-       combine_key->set_next_cfg_key_val(NULL);
-       DELETE_IF_NOT_NULL(combine_key);
-     }
-     DELETE_IF_NOT_NULL(temp);
-     return UPLL_RC_ERR_GENERIC;
-    }
-    /* Set the rename flag */
-    SET_USER_DATA_FLAGS(combine_key, rename);
-    DumpRenameInfo(rename_info);
-    switch (rename_info->get_key_type()) {
-      /* fill the vnode if vtn is renamed
-       * This part create an etrn in vnode rename table*/
-      case UNC_KT_VTN:
-        UPLL_LOG_TRACE("Update the Vnode rename tables");
-        vnode = reinterpret_cast<val_rename_vnode *>(
-                ConfigKeyVal::Malloc(sizeof(val_rename_vnode)));
-        uuu::upll_strncpy(vnode->ctrlr_vtn_name,
-                          vnode_rename->ctrlr_vtn_name,
-                          (kMaxLenCtrlrId + 1));
-        switch (table[MAINTBL]->get_key_type()) {
-          case UNC_KT_VBRIDGE:
-            uuu::upll_strncpy(vnode_rename->new_unc_vnode_name,
-                              (reinterpret_cast<key_vbr_t *>(okey->get_key()))->vbridge_name,
-                              (kMaxLenVnodeName + 1));
-            uuu::upll_strncpy(vnode->ctrlr_vnode_name,
-                              (reinterpret_cast<key_vbr_t *>(okey->get_key()))->vbridge_name,
-                              (kMaxLenVnodeName + 1));
-            break;
-          case UNC_KT_VROUTER:
-            uuu::upll_strncpy(vnode_rename->new_unc_vnode_name,
-                              (reinterpret_cast<key_vrt_t *>(okey->get_key()))->vrouter_name,
-                              (kMaxLenVnodeName + 1));
-            uuu::upll_strncpy(vnode->ctrlr_vnode_name,
-                              (reinterpret_cast<key_vrt_t *>(okey->get_key()))->vrouter_name,
-                              (kMaxLenVnodeName + 1));
-            break;
-          case UNC_KT_VLINK:
-            uuu::upll_strncpy(vnode_rename->new_unc_vnode_name,
-                              (reinterpret_cast<key_vlink_t *>(okey->get_key()))->vlink_name,
-                              (kMaxLenVlinkName + 1));
-            uuu::upll_strncpy(vnode->ctrlr_vnode_name,
-                              (reinterpret_cast<key_vlink_t *>(okey->get_key()))->vlink_name,
-                              (kMaxLenVlinkName + 1));
-            break;
-          case UNC_KT_VBR_POLICINGMAP:
-            uuu::upll_strncpy(vnode_rename->new_unc_vnode_name,
-                              (reinterpret_cast<key_vbr_t *>(okey->get_key()))->vbridge_name,
-                              (kMaxLenVnodeName + 1));
-            break;
+    result_code = (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code)?
+        UPLL_RC_SUCCESS:result_code;
+    return result_code;
+  }
 
-          case UNC_KT_VBRIF_POLICINGMAP:
-            uuu::upll_strncpy(vnode_rename->new_unc_vnode_name,
-                              (reinterpret_cast<key_vbr_if *>
-                               (okey->get_key()))->vbr_key.vbridge_name,
-                              (kMaxLenVnodeName + 1));
-            break;
-          case UNC_KT_VBR_FLOWFILTER:
-            uuu::upll_strncpy(vnode_rename->new_unc_vnode_name,
-                              (reinterpret_cast<key_vbr_flowfilter  *>
-                               (okey->get_key()))->vbr_key.vbridge_name,
-                              (kMaxLenVnodeName + 1));
-            break;
 
-          case UNC_KT_VBR_FLOWFILTER_ENTRY:
-            uuu::upll_strncpy(vnode_rename->new_unc_vnode_name,
-                              (reinterpret_cast<key_vbr_flowfilter_entry  *>
-                               (okey->get_key()))->flowfilter_key.vbr_key.vbridge_name,
-                              (kMaxLenVnodeName + 1));
-            break;
-          case UNC_KT_VBRIF_FLOWFILTER:
-            uuu::upll_strncpy(vnode_rename->new_unc_vnode_name,
-                              (reinterpret_cast<key_vbr_if_flowfilter  *>
-                               (okey->get_key()))->if_key.vbr_key.vbridge_name,
-                              (kMaxLenVnodeName + 1));
-            break;
 
-          case UNC_KT_VBRIF_FLOWFILTER_ENTRY:
-            uuu::upll_strncpy(vnode_rename->new_unc_vnode_name,
-                              (reinterpret_cast<key_vbr_if_flowfilter_entry *>
-                               (okey->get_key()))->flowfilter_key.if_key.vbr_key.vbridge_name,
-                              (kMaxLenVnodeName + 1));
-            break;
-          case UNC_KT_VRTIF_FLOWFILTER:
-            uuu::upll_strncpy(vnode_rename->new_unc_vnode_name,
-                              (reinterpret_cast<key_vrt_if_flowfilter *>
-                               (okey->get_key()))->if_key.vrt_key.vrouter_name,
-                              (kMaxLenVnodeName + 1));
-            break;
-          case UNC_KT_VRTIF_FLOWFILTER_ENTRY:
-            uuu::upll_strncpy(vnode_rename->new_unc_vnode_name,
-                              (reinterpret_cast<key_vrt_if_flowfilter_entry *>
-                               (okey->get_key()))->flowfilter_key.if_key.vrt_key.vrouter_name,
-                              (kMaxLenVnodeName + 1));
-            break;
-          default:
-            break;
+  upll_rc_t MoMgrImpl::UpdateRenamedValue(ConfigKeyVal *&rename_info,
+                                          DalDmlIntf *dmi,
+                                          upll_keytype_datatype_t data_type,
+                                          bool &renamed,
+                                          bool &no_rename) {
+    UPLL_FUNC_TRACE;
+    if (!rename_info || (!rename_info->get_key())) {
+      UPLL_LOG_DEBUG("Given Input is Empty ");
+      return UPLL_RC_ERR_GENERIC;
+    }
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+
+    ConfigKeyVal *okey = NULL;
+
+    uint8_t rename = 0;
+
+    ConfigKeyVal *combine_key = NULL;
+    /* Create the partial key */
+    result_code = CopyToConfigKey(okey, rename_info);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG("CopyToConfig Return Empty key");
+      DELETE_IF_NOT_NULL(okey);
+      return UPLL_RC_ERR_GENERIC;
+    }
+    UPLL_LOG_DEBUG("The CopyToConfigKey out is %s",
+                   (okey->ToStrAll()).c_str());
+    /* Get the Full key Information */
+    DbSubOp dbop = {kOpReadMultiple, kOpMatchNone,
+      kOpInOutFlag | kOpInOutCtrlr | kOpInOutDomain};
+    /* For VTN, we need to read it from Controller Table
+     * since while doing VTN rename we are skipping the vtn
+     * MAINTBL
+     */
+    if (UNC_KT_VTN != okey->get_key_type())
+      result_code = ReadConfigDB(okey,
+                                 data_type,
+                                 UNC_OP_READ,
+                                 dbop,
+                                 dmi,
+                                 MAINTBL);
+    else
+      result_code = ReadConfigDB(okey,
+                                 data_type,
+                                 UNC_OP_READ,
+                                 dbop,
+                                 dmi,
+                                 CTRLRTBL);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG("ReadConfigDB returns Error = %d ", result_code);
+      DELETE_IF_NOT_NULL(okey);
+      return result_code;
+    }
+    ConfigKeyVal *temp = okey;
+    while (okey) {
+      rename = 0;
+      val_rename_vnode *vnode = NULL;
+      key_rename_vnode_info  *vnode_rename =
+          reinterpret_cast<key_rename_vnode_info *>(rename_info->get_key());
+      GET_USER_DATA_FLAGS(okey, rename);
+      /* Set the rename flag */
+      UPLL_LOG_TRACE("Before Renaming the Rename Flag = %d", rename);
+      switch (rename_info->get_key_type()) {
+        case UNC_KT_VTN:
+          if (!no_rename)
+            rename = rename | VTN_RENAME;
+          else
+            rename = rename & NO_VTN_RENAME;
+          UPLL_LOG_TRACE("After the Renaming the Rename Flag = %d ", rename);
+          break;
+        case UNC_KT_VROUTER:
+        case UNC_KT_VLINK:
+        case UNC_KT_VBRIDGE:
+          if (!no_rename)
+            rename = rename | VN_RENAME;
+          else
+            rename = rename & NO_VN_RENAME;
+          UPLL_LOG_TRACE("After the Renaming the Rename Flag = %d ", rename);
+          break;
+          // Update Here
+        case UNC_KT_POLICING_PROFILE:
+          switch (table[MAINTBL]->get_key_type()) {
+            case UNC_KT_POLICING_PROFILE:
+            case UNC_KT_POLICING_PROFILE_ENTRY:
+              if (!no_rename)
+                rename = rename | PP_RENAME;
+              else
+                rename = rename & NO_PP_RENAME;
+              break;
+            case UNC_KT_VTN_POLICINGMAP:
+            case UNC_KT_VBR_POLICINGMAP:
+            case UNC_KT_VBRIF_POLICINGMAP:
+              if (!no_rename)
+                rename = rename | PM_RENAME;
+              else
+                rename = rename & NO_PM_RENAME;
+              break;
+            default:
+              break;
+          }
+          break;
+        case UNC_KT_FLOWLIST:
+          switch (table[MAINTBL]->get_key_type()) {
+            case UNC_KT_FLOWLIST:
+            case UNC_KT_FLOWLIST_ENTRY:
+              if (!no_rename)
+                rename = rename | FL_RENAME;
+              else
+                rename = rename & NO_FL_RENAME;
+              break;
+            case UNC_KT_VTN_FLOWFILTER:
+            case UNC_KT_VTN_FLOWFILTER_ENTRY:
+            case UNC_KT_VTN_FLOWFILTER_CONTROLLER:
+            case UNC_KT_VBR_FLOWFILTER:
+            case UNC_KT_VBR_FLOWFILTER_ENTRY:
+            case UNC_KT_VBRIF_FLOWFILTER:
+            case UNC_KT_VBRIF_FLOWFILTER_ENTRY:
+            case UNC_KT_VRTIF_FLOWFILTER:
+            case UNC_KT_VRTIF_FLOWFILTER_ENTRY:
+              if (!no_rename)
+                rename = rename | FF_RENAME;
+              else
+                rename = rename & NO_FF_RENAME;
+              break;
+            default:
+              break;
+          }
+        default:
+          break;
+      }
+      /* Create the duplicate key by using this function */
+      UPLL_LOG_TRACE("The Okey is %s", okey->ToStrAll().c_str());
+      result_code = GetChildConfigKey(combine_key, okey);
+      if (UPLL_RC_SUCCESS != result_code) {
+        UPLL_LOG_DEBUG("GetChildConfigKey Return Empty Key ");
+        if (combine_key) {
+          combine_key->set_next_cfg_key_val(NULL);
+          DELETE_IF_NOT_NULL(combine_key);
         }
-        UPLL_LOG_TRACE("The Renamed Value is %d", renamed);
-        if (!renamed && !no_rename) {
-          /* If VTN is renamed add the entry in vnode and vlink rename table */
-          if (table[MAINTBL]->get_key_type() == UNC_KT_VBRIDGE ||
-              table[MAINTBL]->get_key_type() == UNC_KT_VROUTER ||
-              table[MAINTBL]->get_key_type() == UNC_KT_VLINK) {
-            ConfigKeyVal *tmp_key = NULL;
-            DbSubOp dbop = {kOpReadSingle, kOpMatchNone, kOpInOutCtrlr|kOpInOutDomain};
-            controller_domain ctrlr_dom;
-            UPLL_LOG_TRACE("Updating the Rename Table");
-            result_code = GetControllerDomainId(okey, &ctrlr_dom);
-            if (UPLL_RC_SUCCESS != result_code) {
-              UPLL_LOG_DEBUG("GetControllerDomainId Failed");
-              free(vnode);
-              if (combine_key) {
-                combine_key->set_next_cfg_key_val(NULL);
-                DELETE_IF_NOT_NULL(combine_key);
+        DELETE_IF_NOT_NULL(temp);
+        return UPLL_RC_ERR_GENERIC;
+      }
+      /* Set the rename flag */
+      SET_USER_DATA_FLAGS(combine_key, rename);
+      DumpRenameInfo(rename_info);
+      switch (rename_info->get_key_type()) {
+        /* fill the vnode if vtn is renamed
+         * This part create an etrn in vnode rename table*/
+        case UNC_KT_VTN:
+          UPLL_LOG_TRACE("Update the Vnode rename tables");
+          vnode = reinterpret_cast<val_rename_vnode *>(
+              ConfigKeyVal::Malloc(sizeof(val_rename_vnode)));
+          uuu::upll_strncpy(vnode->ctrlr_vtn_name,
+                            vnode_rename->ctrlr_vtn_name,
+                            (kMaxLenCtrlrId + 1));
+          switch (table[MAINTBL]->get_key_type()) {
+            case UNC_KT_VBRIDGE:
+              uuu::upll_strncpy(vnode_rename->new_unc_vnode_name,
+                                (reinterpret_cast<key_vbr_t *>
+                                 (okey->get_key()))->vbridge_name,
+                                (kMaxLenVnodeName + 1));
+              uuu::upll_strncpy(vnode->ctrlr_vnode_name,
+                                (reinterpret_cast<key_vbr_t *>
+                                 (okey->get_key()))->vbridge_name,
+                                (kMaxLenVnodeName + 1));
+              break;
+            case UNC_KT_VROUTER:
+              uuu::upll_strncpy(vnode_rename->new_unc_vnode_name,
+                                (reinterpret_cast<key_vrt_t *>
+                                 (okey->get_key()))->vrouter_name,
+                                (kMaxLenVnodeName + 1));
+              uuu::upll_strncpy(vnode->ctrlr_vnode_name,
+                                (reinterpret_cast<key_vrt_t *>
+                                 (okey->get_key()))->vrouter_name,
+                                (kMaxLenVnodeName + 1));
+              break;
+            case UNC_KT_VLINK:
+              uuu::upll_strncpy(vnode_rename->new_unc_vnode_name,
+                                (reinterpret_cast<key_vlink_t *>
+                                 (okey->get_key()))->vlink_name,
+                                (kMaxLenVlinkName + 1));
+              uuu::upll_strncpy(vnode->ctrlr_vnode_name,
+                                (reinterpret_cast<key_vlink_t *>
+                                 (okey->get_key()))->vlink_name,
+                                (kMaxLenVlinkName + 1));
+              break;
+            case UNC_KT_VBR_POLICINGMAP:
+              uuu::upll_strncpy(vnode_rename->new_unc_vnode_name,
+                                (reinterpret_cast<key_vbr_t *>
+                                 (okey->get_key()))->vbridge_name,
+                                (kMaxLenVnodeName + 1));
+              break;
+
+            case UNC_KT_VBRIF_POLICINGMAP:
+              uuu::upll_strncpy(vnode_rename->new_unc_vnode_name,
+                                (reinterpret_cast<key_vbr_if *>
+                                 (okey->get_key()))->vbr_key.vbridge_name,
+                                (kMaxLenVnodeName + 1));
+              break;
+            case UNC_KT_VBR_FLOWFILTER:
+              uuu::upll_strncpy(vnode_rename->new_unc_vnode_name,
+                                (reinterpret_cast<key_vbr_flowfilter  *>
+                                 (okey->get_key()))->vbr_key.vbridge_name,
+                                (kMaxLenVnodeName + 1));
+              break;
+
+            case UNC_KT_VBR_FLOWFILTER_ENTRY:
+              uuu::upll_strncpy(vnode_rename->new_unc_vnode_name,
+                                (reinterpret_cast<key_vbr_flowfilter_entry  *>
+                                 (okey->get_key()))->
+                                flowfilter_key.vbr_key.vbridge_name,
+                                (kMaxLenVnodeName + 1));
+              break;
+            case UNC_KT_VBRIF_FLOWFILTER:
+              uuu::upll_strncpy(vnode_rename->new_unc_vnode_name,
+                                (reinterpret_cast<key_vbr_if_flowfilter  *>
+                                 (okey->get_key()))->
+                                if_key.vbr_key.vbridge_name,
+                                (kMaxLenVnodeName + 1));
+              break;
+
+            case UNC_KT_VBRIF_FLOWFILTER_ENTRY:
+              uuu::upll_strncpy(vnode_rename->new_unc_vnode_name,
+                                (reinterpret_cast<key_vbr_if_flowfilter_entry *>
+                                 (okey->get_key()))->
+                                flowfilter_key.if_key.vbr_key.vbridge_name,
+                                (kMaxLenVnodeName + 1));
+              break;
+            case UNC_KT_VRTIF_FLOWFILTER:
+              uuu::upll_strncpy(vnode_rename->new_unc_vnode_name,
+                                (reinterpret_cast<key_vrt_if_flowfilter *>
+                                 (okey->get_key()))->
+                                if_key.vrt_key.vrouter_name,
+                                (kMaxLenVnodeName + 1));
+              break;
+            case UNC_KT_VRTIF_FLOWFILTER_ENTRY:
+              uuu::upll_strncpy(vnode_rename->new_unc_vnode_name,
+                                (reinterpret_cast
+                                 <key_vrt_if_flowfilter_entry *>
+                                 (okey->get_key()))->
+                                flowfilter_key.if_key.vrt_key.vrouter_name,
+                                (kMaxLenVnodeName + 1));
+              break;
+            default:
+              break;
+          }
+          UPLL_LOG_TRACE("The Renamed Value is %d", renamed);
+          if (!renamed && !no_rename) {
+            /* If VTN is renamed add the entry in vnode and vlink
+             * rename table */
+            if (table[MAINTBL]->get_key_type() == UNC_KT_VBRIDGE ||
+                table[MAINTBL]->get_key_type() == UNC_KT_VROUTER ||
+                table[MAINTBL]->get_key_type() == UNC_KT_VLINK) {
+              ConfigKeyVal *tmp_key = NULL;
+              DbSubOp dbop = {kOpReadSingle,
+                kOpMatchNone,
+                kOpInOutCtrlr|kOpInOutDomain};
+              controller_domain ctrlr_dom;
+              UPLL_LOG_TRACE("Updating the Rename Table");
+              result_code = GetControllerDomainId(okey, &ctrlr_dom);
+              if (UPLL_RC_SUCCESS != result_code) {
+                UPLL_LOG_DEBUG("GetControllerDomainId Failed");
+                free(vnode);
+                if (combine_key) {
+                  combine_key->set_next_cfg_key_val(NULL);
+                  DELETE_IF_NOT_NULL(combine_key);
+                }
+                DELETE_IF_NOT_NULL(temp);
+                return result_code;
               }
-              DELETE_IF_NOT_NULL(temp);
-              return result_code;
+              result_code = GetChildConfigKey(tmp_key, okey);
+              if (UPLL_RC_SUCCESS != result_code) {
+                UPLL_LOG_DEBUG("GetChildConfigKey Failed");
+                free(vnode);
+                if (combine_key) {
+                  combine_key->set_next_cfg_key_val(NULL);
+                  DELETE_IF_NOT_NULL(combine_key);
+                }
+                DELETE_IF_NOT_NULL(temp);
+                return result_code;
+              }
+              ConfigVal *cfg_val =
+                  new ConfigVal(IpctSt::kIpcInvalidStNum, vnode);
+              tmp_key->SetCfgVal(cfg_val);
+              SET_USER_DATA_CTRLR_DOMAIN(tmp_key, ctrlr_dom);
+              dbop.readop = kOpReadSingle;
+              dbop.matchop = kOpMatchCtrlr | kOpMatchDomain;
+              result_code = ReadConfigDB(tmp_key, data_type, UNC_OP_READ, dbop,
+                                         dmi, RENAMETBL);
+              if (UPLL_RC_SUCCESS != result_code &&
+                  UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+                UPLL_LOG_DEBUG("ReadConfigDB Failed %d", result_code);
+                DELETE_IF_NOT_NULL(tmp_key);
+                DELETE_IF_NOT_NULL(temp);
+                if (combine_key) {
+                  combine_key->set_next_cfg_key_val(NULL);
+                  DELETE_IF_NOT_NULL(combine_key);
+                }
+                return result_code;
+              }
+              if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+                /* If rename case create an entry in rename table
+                 * otherwise delete from the rename table */
+                vnode->valid[UPLL_CTRLR_VTN_NAME_VALID] = UNC_VF_VALID;
+                vnode->valid[UPLL_CTRLR_VNODE_NAME_VALID] = UNC_VF_VALID;
+
+                dbop.readop = kOpNotRead;
+                dbop.matchop = kOpMatchNone;
+                dbop.inoutop = kOpInOutCtrlr | kOpInOutDomain;
+                UPLL_LOG_TRACE("Rename No Rename Falg = %d", no_rename);
+                result_code = UpdateConfigDB(tmp_key, data_type, UNC_OP_CREATE,
+                                             dmi, &dbop, RENAMETBL);
+              }
+              DELETE_IF_NOT_NULL(tmp_key);
+              if (UPLL_RC_SUCCESS != result_code) {
+                UPLL_LOG_DEBUG(" UpdateConfigDB Failed %d", result_code);
+                if (combine_key) {
+                  combine_key->set_next_cfg_key_val(NULL);
+                  DELETE_IF_NOT_NULL(combine_key);
+                }
+                DELETE_IF_NOT_NULL(temp);
+                return result_code;
+              }
+            } else {
+              FREE_IF_NOT_NULL(vnode);
             }
-            result_code = GetChildConfigKey(tmp_key, okey);
+          } else {
+            FREE_IF_NOT_NULL(vnode);
+          }
+          break;
+        default:
+          break;
+      }
+      if (no_rename) {
+        if (table[MAINTBL]->get_key_type() == UNC_KT_VTN ||
+            table[MAINTBL]->get_key_type() == UNC_KT_VBRIDGE ||
+            table[MAINTBL]->get_key_type() == UNC_KT_VROUTER ||
+            table[MAINTBL]->get_key_type() == UNC_KT_VLINK ||
+            table[MAINTBL]->get_key_type() == UNC_KT_FLOWLIST ||
+            table[MAINTBL]->get_key_type() == UNC_KT_POLICING_PROFILE) {
+          UPLL_LOG_TRACE("Delete Entry from Rename Table");
+          UPLL_LOG_TRACE("Rename Flag is %d", rename);
+          if ((table[MAINTBL]->get_key_type() == UNC_KT_VLINK &&
+               !(rename & 0X03))
+              || !rename) {
+            ConfigKeyVal *rename_key = NULL;
+            result_code = GetChildConfigKey(rename_key, okey);
             if (UPLL_RC_SUCCESS != result_code) {
               UPLL_LOG_DEBUG("GetChildConfigKey Failed");
-              free(vnode);
               if (combine_key) {
                 combine_key->set_next_cfg_key_val(NULL);
                 DELETE_IF_NOT_NULL(combine_key);
@@ -3128,415 +3904,430 @@ upll_rc_t MoMgrImpl::UpdateRenamedValue(ConfigKeyVal *&rename_info,
               DELETE_IF_NOT_NULL(temp);
               return result_code;
             }
-            ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcInvalidStNum, vnode);
-            tmp_key->SetCfgVal(cfg_val);
-            SET_USER_DATA_CTRLR_DOMAIN(tmp_key, ctrlr_dom);
-            dbop.readop = kOpReadSingle;
-            dbop.matchop = kOpMatchCtrlr | kOpMatchDomain;
-            result_code = ReadConfigDB(tmp_key, data_type, UNC_OP_READ, dbop,
-                                       dmi, RENAMETBL);
-            if (UPLL_RC_SUCCESS != result_code &&
-                UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
-              UPLL_LOG_DEBUG("ReadConfigDB Failed %d", result_code);
-              DELETE_IF_NOT_NULL(tmp_key);
-              DELETE_IF_NOT_NULL(temp);
-              if (combine_key) {
-                combine_key->set_next_cfg_key_val(NULL);
-                DELETE_IF_NOT_NULL(combine_key);
-              }
-              return result_code;
-            }
-            if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-              /* If rename case create an entry in rename table
-               * otherwise delete from the rename table */
-              vnode->valid[UPLL_CTRLR_VTN_NAME_VALID] = UNC_VF_VALID;
-              vnode->valid[UPLL_CTRLR_VNODE_NAME_VALID] = UNC_VF_VALID;
-
-              dbop.readop = kOpNotRead;
-              dbop.matchop = kOpMatchNone;
-              dbop.inoutop = kOpInOutCtrlr | kOpInOutDomain;
-              UPLL_LOG_TRACE("Rename No Rename Falg = %d", no_rename);
-              result_code = UpdateConfigDB(tmp_key, data_type, UNC_OP_CREATE,
-                                           dmi, &dbop, RENAMETBL);
-            }
-            DELETE_IF_NOT_NULL(tmp_key);
+            DbSubOp dbop = {kOpNotRead,
+              kOpMatchCtrlr|kOpMatchDomain,
+              kOpInOutNone};
+            result_code = UpdateConfigDB(rename_key, data_type, UNC_OP_DELETE,
+                                         dmi, &dbop, RENAMETBL);
+            if (rename_key)
+              DELETE_IF_NOT_NULL(rename_key);
             if (UPLL_RC_SUCCESS != result_code) {
-              UPLL_LOG_DEBUG(" UpdateConfigDB Failed %d", result_code);
+              UPLL_LOG_TRACE("UpdateConfigDB Failed");
+              DELETE_IF_NOT_NULL(temp);
               if (combine_key) {
                 combine_key->set_next_cfg_key_val(NULL);
                 DELETE_IF_NOT_NULL(combine_key);
               }
-              DELETE_IF_NOT_NULL(temp);
               return result_code;
             }
-          } else {
-            FREE_IF_NOT_NULL(vnode);
-          }          
-        } else {
-           FREE_IF_NOT_NULL(vnode);
-        }
-        break;
-      default:
-        break;
-    }
-    if (no_rename) {
-      if (table[MAINTBL]->get_key_type() == UNC_KT_VTN ||
-          table[MAINTBL]->get_key_type() == UNC_KT_VBRIDGE ||
-          table[MAINTBL]->get_key_type() == UNC_KT_VROUTER ||
-          table[MAINTBL]->get_key_type() == UNC_KT_VLINK ||
-          table[MAINTBL]->get_key_type() == UNC_KT_FLOWLIST ||
-          table[MAINTBL]->get_key_type() == UNC_KT_POLICING_PROFILE) {
-        UPLL_LOG_TRACE("Delete Entry from Rename Table");
-        UPLL_LOG_TRACE("Rename Flag is %d", rename);
-        if ((table[MAINTBL]->get_key_type() == UNC_KT_VLINK && !(rename & 0X03))
-            || !rename) {
-          ConfigKeyVal *rename_key = NULL;
-          result_code = GetChildConfigKey(rename_key, okey);
-          if (UPLL_RC_SUCCESS != result_code) {
-            UPLL_LOG_DEBUG("GetChildConfigKey Failed");
-            if (combine_key) {
-              combine_key->set_next_cfg_key_val(NULL);
-              DELETE_IF_NOT_NULL(combine_key);
-            }
-            DELETE_IF_NOT_NULL(temp);
-            return result_code;
-          }
-          DbSubOp dbop = {kOpNotRead, kOpMatchCtrlr|kOpMatchDomain, kOpInOutNone};
-          result_code = UpdateConfigDB(rename_key, data_type, UNC_OP_DELETE,
-                                       dmi, &dbop, RENAMETBL);
-          if (rename_key)
-            DELETE_IF_NOT_NULL(rename_key);
-          if (UPLL_RC_SUCCESS != result_code) {
-            UPLL_LOG_TRACE("UpdateConfigDB Failed");
-            DELETE_IF_NOT_NULL(temp);
-            if (combine_key) {
-              combine_key->set_next_cfg_key_val(NULL);
-              DELETE_IF_NOT_NULL(combine_key);
-            }
-            return result_code;
           }
         }
       }
-    }
-    DumpRenameInfo(rename_info);
-    /* Add the New name configkeyval to old name configkeyval */
-    combine_key->AppendCfgKeyVal(rename_info);
-    /* Update the new name into the table */
-    DumpRenameInfo(rename_info);
-    result_code = UpdateVnodeTables(combine_key, data_type, dmi);
-    if (combine_key) {
-      combine_key->set_next_cfg_key_val(NULL);
-      DELETE_IF_NOT_NULL(combine_key);
-    }
-    UPLL_LOG_TRACE("Updated in Vnode Tables ");
-    if (UPLL_RC_SUCCESS != result_code) {
-     DELETE_IF_NOT_NULL(temp);
-     return result_code;
-    }
-    for (int i = 0; i < nchild; i++) {
-      unc_key_type_t ktype = child[i];
-      /* Avoid the Overlay key types here */
-      if (OVERLAY_KT(ktype)) {
-        UPLL_LOG_TRACE("Overlay Key type %d is skipping from rename operation"
-                       , ktype);
-        continue;
-      }
-      MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(
-          const_cast<MoManager *>(GetMoManager(ktype)));
-      if (!mgr) {
-        UPLL_LOG_DEBUG("Invalid mgr param");
-        DELETE_IF_NOT_NULL(temp);
-        return UPLL_RC_ERR_GENERIC;
-      }
-      UPLL_LOG_TRACE("Update Key for the Child key type %d", ktype);
       DumpRenameInfo(rename_info);
-      result_code = mgr->UpdateRenamedValue(rename_info, dmi, data_type,
-                                            renamed, no_rename);
-      if (UPLL_RC_SUCCESS != result_code
-          && UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
-        DELETE_IF_NOT_NULL(temp);
-        UPLL_LOG_DEBUG("UpdateRenamedValue is Failed %d", result_code);
-        return result_code;
-      }
-    }
-    UPLL_LOG_TRACE("The current Instance key type %d return result_code %d",
-                   table[MAINTBL]->get_key_type(), result_code);
-    okey  = okey->get_next_cfg_key_val();
-    UPLL_LOG_TRACE("Fetching Next Record ");
-  }
-  DELETE_IF_NOT_NULL(temp);
-  return result_code;
-}
-
-upll_rc_t MoMgrImpl::UpdateTables(IpcReqRespHeader *req,
-                                  ConfigKeyVal *&rename_info,
-                                  bool &renamed,
-                                  DalDmlIntf *dmi, bool &no_rename) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  if (!rename_info) {
-    UPLL_LOG_DEBUG("Input key is null");
-    return UPLL_RC_ERR_GENERIC;
-  }
-
-  switch (rename_info->get_key_type()) {
-    case UNC_KT_VTN:
-    case UNC_KT_VROUTER:
-    case UNC_KT_VBRIDGE:
-    case UNC_KT_VLINK:
-    case UNC_KT_POLICING_PROFILE:
-    case UNC_KT_FLOWLIST:
-      /* Update the new name into the tables */
+      /* Add the New name configkeyval to old name configkeyval */
+      combine_key->AppendCfgKeyVal(rename_info);
+      /* Update the new name into the table */
       DumpRenameInfo(rename_info);
-      /* Current Instance is Supporting Rename
-       * Then Get the Info */
-      result_code = UpdateRenamedValue(rename_info, dmi, req->datatype,
-                                       renamed, no_rename);
-      if (UPLL_RC_SUCCESS != result_code
-          && UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
-        UPLL_LOG_DEBUG("UpdateRenamedValue is Failed %d", result_code);
+      result_code = UpdateVnodeTables(combine_key, data_type, dmi);
+      if (combine_key) {
+        combine_key->set_next_cfg_key_val(NULL);
+        DELETE_IF_NOT_NULL(combine_key);
+      }
+      UPLL_LOG_TRACE("Updated in Vnode Tables ");
+      if (UPLL_RC_SUCCESS != result_code) {
+        DELETE_IF_NOT_NULL(temp);
         return result_code;
       }
-      UPLL_LOG_TRACE("UpdateRenamedValue Return code %d", result_code);
-      break;
-    default:
-      break;
-  }
-  switch (rename_info->get_key_type())  {
-    case UNC_KT_VBRIDGE:
-    case UNC_KT_VROUTER:
-      {
-        /* The current instance is VBRIDGE or VROUTER then only
-         * call this api
-         */
+      for (int i = 0; i < nchild; i++) {
+        unc_key_type_t ktype = child[i];
+        /* Avoid the Overlay key types here */
+        if (OVERLAY_KT(ktype) || (UNKNOWN_KT(ktype))) {
+          UPLL_LOG_TRACE("Key type %d is skipping from rename operation"
+                         , ktype);
+          continue;
+        }
         MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(
-            const_cast<MoManager*>(GetMoManager(UNC_KT_VLINK)));
+            const_cast<MoManager *>(GetMoManager(ktype)));
         if (!mgr) {
-          UPLL_LOG_DEBUG("Invalid mgr");
+          UPLL_LOG_DEBUG("Invalid mgr param");
+          DELETE_IF_NOT_NULL(temp);
           return UPLL_RC_ERR_GENERIC;
         }
+        UPLL_LOG_TRACE("Update Key for the Child key type %d", ktype);
+        DumpRenameInfo(rename_info);
+        result_code = mgr->UpdateRenamedValue(rename_info, dmi, data_type,
+                                              renamed, no_rename);
+        if (UPLL_RC_SUCCESS != result_code
+            && UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+          DELETE_IF_NOT_NULL(temp);
+          UPLL_LOG_DEBUG("UpdateRenamedValue is Failed %d", result_code);
+          return result_code;
+        }
+      }
+      UPLL_LOG_TRACE("The current Instance key type %d return result_code %d",
+                     table[MAINTBL]->get_key_type(), result_code);
+      okey  = okey->get_next_cfg_key_val();
+      UPLL_LOG_TRACE("Fetching Next Record ");
+    }
+    DELETE_IF_NOT_NULL(temp);
+    return result_code;
+  }
+
+  upll_rc_t MoMgrImpl::UpdateTables(IpcReqRespHeader *req,
+                                    ConfigKeyVal *&rename_info,
+                                    bool &renamed,
+                                    DalDmlIntf *dmi, bool &no_rename) {
+    UPLL_FUNC_TRACE;
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+    if (!rename_info) {
+      UPLL_LOG_DEBUG("Input key is null");
+      return UPLL_RC_ERR_GENERIC;
+    }
 
+    switch (rename_info->get_key_type()) {
+      case UNC_KT_VTN:
+      case UNC_KT_VROUTER:
+      case UNC_KT_VBRIDGE:
+      case UNC_KT_VLINK:
+      case UNC_KT_POLICING_PROFILE:
+      case UNC_KT_FLOWLIST:
+        /* Update the new name into the tables */
         DumpRenameInfo(rename_info);
-        /* Update the Vnode info in the Vlink table */
-        result_code = mgr->UpdateVnodeVal(rename_info, dmi, req->datatype,
-                                          no_rename);
-        UPLL_LOG_TRACE("The Update Vnode val return value is %d", result_code);
-
-        unc_key_type_t child_key[]= {
-          UNC_KT_VBR_FLOWFILTER_ENTRY, UNC_KT_VBRIF_FLOWFILTER_ENTRY,
-          UNC_KT_VRTIF_FLOWFILTER_ENTRY };
-
-        for (unsigned int i = 0;
-             i < sizeof(child_key)/sizeof(child_key[0]); i++) {
-          const unc_key_type_t ktype = child_key[i];
+        /* Current Instance is Supporting Rename
+         * Then Get the Info */
+        result_code = UpdateRenamedValue(rename_info, dmi, req->datatype,
+                                         renamed, no_rename);
+        if (UPLL_RC_SUCCESS != result_code
+            && UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+          UPLL_LOG_DEBUG("UpdateRenamedValue is Failed %d", result_code);
+          return result_code;
+        }
+        UPLL_LOG_TRACE("UpdateRenamedValue Return code %d", result_code);
+        break;
+      default:
+        break;
+    }
+    switch (rename_info->get_key_type())  {
+      case UNC_KT_VBRIDGE:
+      case UNC_KT_VROUTER:
+        {
+          /* The current instance is VBRIDGE or VROUTER then only
+           * call this api
+           */
           MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(
-              const_cast<MoManager *>(GetMoManager(ktype)));
+              const_cast<MoManager*>(GetMoManager(UNC_KT_VLINK)));
           if (!mgr) {
-            UPLL_LOG_DEBUG("Instance is NULL");
+            UPLL_LOG_DEBUG("Invalid mgr");
             return UPLL_RC_ERR_GENERIC;
           }
+
           DumpRenameInfo(rename_info);
           /* Update the Vnode info in the Vlink table */
           result_code = mgr->UpdateVnodeVal(rename_info, dmi, req->datatype,
                                             no_rename);
-          UPLL_LOG_TRACE("The Update Vnode val return value is %d", result_code);
-        }
-      }
-      break;
-    case UNC_KT_FLOWLIST:
-      {
-        unc_key_type_t child_key[]= {
-          UNC_KT_POLICING_PROFILE, UNC_KT_POLICING_PROFILE_ENTRY,
-          UNC_KT_VTN_FLOWFILTER, UNC_KT_VTN_FLOWFILTER_ENTRY,
-          UNC_KT_VBR_FLOWFILTER, UNC_KT_VBR_FLOWFILTER_ENTRY,
-          UNC_KT_VBRIF_FLOWFILTER, UNC_KT_VBRIF_FLOWFILTER_ENTRY,
-          UNC_KT_VRTIF_FLOWFILTER, UNC_KT_VRTIF_FLOWFILTER_ENTRY};
-        for (unsigned int i = 0;
-             i < sizeof(child_key)/sizeof(child_key[0]); i++) {
-          const unc_key_type_t ktype = child_key[i];
-          MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(
-              const_cast<MoManager *>(GetMoManager(ktype)));
-          if (!mgr) {
-            UPLL_LOG_DEBUG("Instance is NULL");
-            return UPLL_RC_ERR_GENERIC;
+          UPLL_LOG_TRACE("The Update Vnode val return value is %d",
+                         result_code);
+
+          unc_key_type_t child_key[]= {
+            UNC_KT_VBR_FLOWFILTER_ENTRY, UNC_KT_VBRIF_FLOWFILTER_ENTRY,
+            UNC_KT_VRTIF_FLOWFILTER_ENTRY };
+
+          for (unsigned int i = 0;
+               i < sizeof(child_key)/sizeof(child_key[0]); i++) {
+            const unc_key_type_t ktype = child_key[i];
+            MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(
+                const_cast<MoManager *>(GetMoManager(ktype)));
+            if (!mgr) {
+              UPLL_LOG_DEBUG("Instance is NULL");
+              return UPLL_RC_ERR_GENERIC;
+            }
+            DumpRenameInfo(rename_info);
+            /* Update the Vnode info in the Vlink table */
+            result_code = mgr->UpdateVnodeVal(rename_info, dmi, req->datatype,
+                                              no_rename);
+            UPLL_LOG_TRACE("The Update Vnode val return value is %d",
+                           result_code);
           }
-          DumpRenameInfo(rename_info);
-          /* Update the Vnode info in the Vlink table */
-          result_code = mgr->UpdateVnodeVal(rename_info, dmi, req->datatype,
-                                            no_rename);
-          UPLL_LOG_TRACE("The Update Vnode val return value is %d", result_code);
-        }
-      }
-      break;
-    case UNC_KT_POLICING_PROFILE:
-      {
-        unc_key_type_t child_key[]= {
-          UNC_KT_VTN_POLICINGMAP, UNC_KT_VBR_POLICINGMAP,
-          UNC_KT_VBRIF_POLICINGMAP };
-        for (unsigned int i = 0;
-             i < sizeof(child_key)/sizeof(child_key[0]); i++) {
-          const unc_key_type_t ktype = child_key[i];
-          MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(
-              const_cast<MoManager *>(GetMoManager(ktype)));
-          if (!mgr) {
-            UPLL_LOG_DEBUG("Instance is NULL");
-            return UPLL_RC_ERR_GENERIC;
+        }
+        break;
+      case UNC_KT_FLOWLIST:
+        {
+          unc_key_type_t child_key[]= {
+            UNC_KT_POLICING_PROFILE, UNC_KT_POLICING_PROFILE_ENTRY,
+            UNC_KT_VTN_FLOWFILTER, UNC_KT_VTN_FLOWFILTER_ENTRY,
+            UNC_KT_VBR_FLOWFILTER, UNC_KT_VBR_FLOWFILTER_ENTRY,
+            UNC_KT_VBRIF_FLOWFILTER, UNC_KT_VBRIF_FLOWFILTER_ENTRY,
+            UNC_KT_VRTIF_FLOWFILTER, UNC_KT_VRTIF_FLOWFILTER_ENTRY};
+          for (unsigned int i = 0;
+               i < sizeof(child_key)/sizeof(child_key[0]); i++) {
+            const unc_key_type_t ktype = child_key[i];
+            MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(
+                const_cast<MoManager *>(GetMoManager(ktype)));
+            if (!mgr) {
+              UPLL_LOG_DEBUG("Instance is NULL");
+              return UPLL_RC_ERR_GENERIC;
+            }
+            DumpRenameInfo(rename_info);
+            /* Update the Vnode info in the Vlink table */
+            result_code = mgr->UpdateVnodeVal(rename_info, dmi, req->datatype,
+                                              no_rename);
+            UPLL_LOG_TRACE("The Update Vnode val return value is %d",
+                           result_code);
           }
-          DumpRenameInfo(rename_info);
-          /* Update the Vnode info in the Vlink table */
-          result_code = mgr->UpdateVnodeVal(rename_info, dmi, req->datatype,
-                                            no_rename);
-          UPLL_LOG_TRACE("The Update Vnode val return value is %d", result_code);
         }
-      }
-      break;
-    default:
-      break;
+        break;
+      case UNC_KT_POLICING_PROFILE:
+        {
+          unc_key_type_t child_key[]= {
+            UNC_KT_VTN_POLICINGMAP, UNC_KT_VBR_POLICINGMAP,
+            UNC_KT_VBRIF_POLICINGMAP };
+          for (unsigned int i = 0;
+               i < sizeof(child_key)/sizeof(child_key[0]); i++) {
+            const unc_key_type_t ktype = child_key[i];
+            MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(
+                const_cast<MoManager *>(GetMoManager(ktype)));
+            if (!mgr) {
+              UPLL_LOG_DEBUG("Instance is NULL");
+              return UPLL_RC_ERR_GENERIC;
+            }
+            DumpRenameInfo(rename_info);
+            /* Update the Vnode info in the Vlink table */
+            result_code = mgr->UpdateVnodeVal(rename_info,
+                                              dmi,
+                                              req->datatype,
+                                              no_rename);
+            UPLL_LOG_TRACE("The Update Vnode val return value is %d",
+                           result_code);
+          }
+        }
+        break;
+      default:
+        break;
+    }
+    result_code = (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code)?
+        UPLL_RC_SUCCESS:result_code;
+    return result_code;
   }
-  result_code = (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code)?
-      UPLL_RC_SUCCESS:result_code;
-  return result_code;
-}
 
-/*
- *  This function used to chekcs the give node is
- *  unique or not
- */
-upll_rc_t MoMgrImpl::VnodeChecks(ConfigKeyVal *ikey,
-                                 upll_keytype_datatype_t dt_type,
-                                 DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-
-  if (!ikey || !(ikey->get_key()))
-    return UPLL_RC_ERR_GENERIC;
-  unc_key_type_t nodes[] = {UNC_KT_VBRIDGE, UNC_KT_VROUTER, UNC_KT_VLINK,
-                            UNC_KT_VUNKNOWN, UNC_KT_VTEP, UNC_KT_VTUNNEL};
-  int nop = sizeof(nodes)/ sizeof(nodes[0]);
-  ConfigKeyVal *ck_vnode = NULL;
-  UPLL_LOG_TRACE("ikey keytype %d", ikey->get_key_type());
-  for (int indx = 0; indx < nop; indx++) {
-    MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(
-        const_cast<MoManager *>(GetMoManager(nodes[indx])));
-    if (!mgr) {
-      UPLL_LOG_TRACE("Invalid mgr");
-      continue;
-    }
-    result_code = mgr->CreateVnodeConfigKey(ikey, ck_vnode);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("CreateVnodeConfigKey failed - %d", result_code);
-      return result_code;
-    }
-    result_code = mgr->UpdateConfigDB(ck_vnode, dt_type, UNC_OP_READ,
-                                         dmi, MAINTBL);
-    if (result_code != UPLL_RC_ERR_INSTANCE_EXISTS &&
-        result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-      UPLL_LOG_TRACE("Existence check in keytype %d result_code  %d",
-        ck_vnode->get_key_type(), result_code);
-      delete ck_vnode;
-      return result_code;
-    }
-    if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code) {
-      if (ikey->get_key_type() != ck_vnode->get_key_type()) {
-        UPLL_LOG_INFO("vnode already exists in another vnode tbl");
-        result_code = UPLL_RC_ERR_CFG_SEMANTIC;
+  /*
+   *  This function used to chekcs the give node is
+   *  unique or not
+   */
+  upll_rc_t MoMgrImpl::VnodeChecks(ConfigKeyVal *ikey,
+                                   upll_keytype_datatype_t dt_type,
+                                   DalDmlIntf *dmi) {
+    UPLL_FUNC_TRACE;
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+
+    if (!ikey || !(ikey->get_key()))
+      return UPLL_RC_ERR_GENERIC;
+    unc_key_type_t nodes[] = {UNC_KT_VBRIDGE, UNC_KT_VROUTER,
+      /* VlanmapOnBoundary: Added vlink */
+      UNC_KT_VLINK,
+      UNC_KT_VUNKNOWN, UNC_KT_VTEP, UNC_KT_VTUNNEL};
+    int nop = sizeof(nodes)/ sizeof(nodes[0]);
+    ConfigKeyVal *ck_vnode = NULL;
+    UPLL_LOG_TRACE("ikey keytype %d", ikey->get_key_type());
+    for (int indx = 0; indx < nop; indx++) {
+      MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(
+          const_cast<MoManager *>(GetMoManager(nodes[indx])));
+      if (!mgr) {
+        UPLL_LOG_TRACE("Invalid mgr");
+        continue;
+      }
+      result_code = mgr->CreateVnodeConfigKey(ikey, ck_vnode);
+      if (result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("CreateVnodeConfigKey failed - %d", result_code);
+        return result_code;
+      }
+      result_code = mgr->UpdateConfigDB(ck_vnode, dt_type, UNC_OP_READ,
+                                        dmi, MAINTBL);
+      if (result_code != UPLL_RC_ERR_INSTANCE_EXISTS &&
+          result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+        UPLL_LOG_TRACE("Existence check in keytype %d result_code  %d",
+                       ck_vnode->get_key_type(), result_code);
+        delete ck_vnode;
+        return result_code;
+      }
+      if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code) {
+        if (ikey->get_key_type() != ck_vnode->get_key_type()) {
+          UPLL_LOG_INFO("vnode already exists in another vnode tbl");
+          result_code = UPLL_RC_ERR_CFG_SEMANTIC;
+        }
+        delete ck_vnode;
+        return result_code;
+      }
+      if (ck_vnode) {
+        delete ck_vnode;
+        ck_vnode = NULL;
       }
-      delete ck_vnode;
-      return result_code;
-    }
-    if (ck_vnode) {
-      delete ck_vnode;
-      ck_vnode = NULL;
     }
-  }
-  result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) ? UPLL_RC_SUCCESS :
-                                      result_code;
-  return result_code;
-}
-
-unc_keytype_configstatus_t MoMgrImpl::GetConsolidatedCsStatus(
-                             list< unc_keytype_configstatus_t > cs_status) {
-  unc_keytype_configstatus_t final_cs_status;
-  unc_keytype_configstatus_t current_cs_status;
-
-  list< unc_keytype_configstatus_t >::iterator iter;
-  iter = cs_status.begin();
-  final_cs_status = *iter;
-  if (iter != cs_status.end() && UNC_CS_NOT_SUPPORTED == final_cs_status) {
-    return UNC_CS_NOT_APPLIED;
+    result_code =
+        (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) ? UPLL_RC_SUCCESS :
+        result_code;
+    return result_code;
   }
 
-  while (iter != cs_status.end()) {
-    current_cs_status = *iter;
+  unc_keytype_configstatus_t MoMgrImpl::GetConsolidatedCsStatus(
+      list< unc_keytype_configstatus_t > cs_status) {
+    unc_keytype_configstatus_t final_cs_status;
+    unc_keytype_configstatus_t current_cs_status;
 
-    final_cs_status = ComputeStatus(final_cs_status, current_cs_status);
-    ++iter;
-  }
-  return final_cs_status;
-}
-
-unc_keytype_configstatus_t MoMgrImpl::ComputeStatus(
-    unc_keytype_configstatus_t db_status,
-    unc_keytype_configstatus_t cs_status) {
-  unc_keytype_configstatus_t result_code;
-
-/* UNC_CS_APPLIED             UNC_CS_INVALID             UNC_CS_INVALID
- * UNC_CS_PARTIALLY_APPLIED   UNC_CS_INVALID             UNC_CS_INVALID
- * UNC_CS_NOT_APPLIED         UNC_CS_INVALID             UNC_CS_INVALID
- * UNC_CS_INVALID             UNC_CS_APPLIED             UNC_CS_INVALID
- * UNC_CS_INVALID             UNC_CS_INVALID             UNC_CS_INVALID
- * UNC_CS_INVALID             UNC_CS_NOT_APPLIED         UNC_CS_INVALID
- * UNC_CS_NOT_SUPPORTED       UNC_CS_INVALID             UNC_CS_INVALID*/
-  if (UNC_CS_INVALID == db_status || UNC_CS_INVALID == cs_status) {
-    result_code = UNC_CS_INVALID;
-  }
+    list< unc_keytype_configstatus_t >::iterator iter;
+    iter = cs_status.begin();
+    if (iter == cs_status.end()) {
+      return UNC_CS_UNKNOWN;
+    } else {
+      final_cs_status = *iter;
+      if (iter != cs_status.end() && UNC_CS_NOT_SUPPORTED == final_cs_status) {
+        return UNC_CS_NOT_APPLIED;
+      }
+    }
 
-/* UNC_CS_APPLIED             UNC_CS_APPLIED             UNC_CS_APPLIED*/
+    while (iter != cs_status.end()) {
+      current_cs_status = *iter;
 
-  else  if (UNC_CS_APPLIED == db_status && UNC_CS_APPLIED == cs_status) {
-    result_code = UNC_CS_APPLIED;
+      final_cs_status = ComputeStatus(final_cs_status, current_cs_status);
+      ++iter;
+    }
+    return final_cs_status;
   }
 
-/* UNC_CS_NOT_APPLIED         UNC_CS_NOT_APPLIED         UNC_CS_NOT_APPLIED
- * UNC_CS_NOT_SUPPORTED       UNC_CS_NOT_APPLIED         UNC_CS_NOT_APPLIED
- * UNC_CS_NOT_APPLIED         UNC_CS_NOT_SUPPORTED       UNC_CS_NOT_APPLIED
- * UNC_CS_NOT_SUPPORTED       UNC_CS_NOT_SUPPORTED       UNC_CS_NOT_APPLIED*/
-
-  else if ((UNC_CS_NOT_APPLIED == db_status &&
-           UNC_CS_NOT_APPLIED == cs_status) ||
-          (UNC_CS_NOT_SUPPORTED == db_status &&
-           UNC_CS_NOT_APPLIED == cs_status) ||
-          (UNC_CS_NOT_SUPPORTED == cs_status &&
-           UNC_CS_NOT_APPLIED == db_status) ||
-          (UNC_CS_NOT_SUPPORTED == cs_status &&
-           UNC_CS_NOT_SUPPORTED == db_status)) {
-    result_code = UNC_CS_NOT_APPLIED;
+  unc_keytype_configstatus_t MoMgrImpl::ComputeStatus(
+      unc_keytype_configstatus_t db_status,
+      unc_keytype_configstatus_t cs_status) {
+    unc_keytype_configstatus_t result_code;
+
+    /* UNC_CS_APPLIED             UNC_CS_INVALID             UNC_CS_INVALID
+     * UNC_CS_PARTIALLY_APPLIED   UNC_CS_INVALID             UNC_CS_INVALID
+     * UNC_CS_NOT_APPLIED         UNC_CS_INVALID             UNC_CS_INVALID
+     * UNC_CS_INVALID             UNC_CS_APPLIED             UNC_CS_INVALID
+     * UNC_CS_INVALID             UNC_CS_INVALID             UNC_CS_INVALID
+     * UNC_CS_INVALID             UNC_CS_NOT_APPLIED         UNC_CS_INVALID
+     * UNC_CS_NOT_SUPPORTED       UNC_CS_INVALID             UNC_CS_INVALID*/
+    if (UNC_CS_INVALID == db_status || UNC_CS_INVALID == cs_status) {
+      result_code = UNC_CS_INVALID;
+    } else  if (UNC_CS_APPLIED == db_status && UNC_CS_APPLIED == cs_status) {
+      /* UNC_CS_APPLIED             UNC_CS_APPLIED             UNC_CS_APPLIED*/
+      result_code = UNC_CS_APPLIED;
+    }
+
+    /* UNC_CS_NOT_APPLIED         UNC_CS_NOT_APPLIED      UNC_CS_NOT_APPLIED
+     * UNC_CS_NOT_SUPPORTED       UNC_CS_NOT_APPLIED      UNC_CS_NOT_APPLIED
+     * UNC_CS_NOT_APPLIED         UNC_CS_NOT_SUPPORTED    UNC_CS_NOT_APPLIED
+     * UNC_CS_NOT_SUPPORTED       UNC_CS_NOT_SUPPORTED    UNC_CS_NOT_APPLIED*/
+
+    else if ((UNC_CS_NOT_APPLIED == db_status &&
+              UNC_CS_NOT_APPLIED == cs_status) ||
+             (UNC_CS_NOT_SUPPORTED == db_status &&
+              UNC_CS_NOT_APPLIED == cs_status) ||
+             (UNC_CS_NOT_SUPPORTED == cs_status &&
+              UNC_CS_NOT_APPLIED == db_status) ||
+             (UNC_CS_NOT_SUPPORTED == cs_status &&
+              UNC_CS_NOT_SUPPORTED == db_status)) {
+      result_code = UNC_CS_NOT_APPLIED;
+    }
+
+    /* UNC_CS_APPLIED            UNC_CS_NOT_APPLIED        UNC_CS_PARTIALLY_APPLIED
+     * UNC_CS_NOT_APPLIED        UNC_CS_APPLIED            UNC_CS_PARTIALLY_APPLIED
+     * UNC_CS_NOT_SUPPORTED      UNC_CS_APPLIED            UNC_CS_PARTIALLY_APPLIED
+     * UNC_CS_APPLIED            UNC_CS_NOT_SUPPORTED      UNC_CS_PARTIALLY_APPLIED
+     * UNC_CS_PARTIALLY_APPLIED  UNC_CS_APPLIED            UNC_CS_PARTIALLY_APPLIED
+     * UNC_CS_APPLIED            UNC_CS_PARTIALLY_APPLIED  UNC_CS_PARTIALLY_APPLIED
+     * UNC_CS_NOT_APPLIED        UNC_CS_PARTIALLY_APPLIED  UNC_CS_PARTIALLY_APPLIED
+     * UNC_CS_PARTIALLY_APPLIED  UNC_CS_NOT_APPLIED        UNC_CS_PARTIALLY_APPLIED
+     * UNC_CS_PARTIALLY_APPLIED  UNC_CS_PARTIALLY_APPLIED  UNC_CS_PARTIALLY_APPLIED*/
+
+    else if ((UNC_CS_APPLIED == db_status ||
+              UNC_CS_NOT_APPLIED == db_status ||
+              UNC_CS_NOT_SUPPORTED == db_status ||
+              UNC_CS_PARTIALLY_APPLIED == db_status) &&
+             (UNC_CS_APPLIED == cs_status ||
+              UNC_CS_NOT_APPLIED == cs_status ||
+              UNC_CS_NOT_SUPPORTED == cs_status ||
+              UNC_CS_PARTIALLY_APPLIED == cs_status)) {
+      result_code = UNC_CS_PARTIALLY_APPLIED;
+    } else {
+      result_code = UNC_CS_UNKNOWN;
+    }
+    return result_code;
   }
 
-/* UNC_CS_APPLIED            UNC_CS_NOT_APPLIED        UNC_CS_PARTIALLY_APPLIED
- * UNC_CS_NOT_APPLIED        UNC_CS_APPLIED            UNC_CS_PARTIALLY_APPLIED
- * UNC_CS_NOT_SUPPORTED      UNC_CS_APPLIED            UNC_CS_PARTIALLY_APPLIED
- * UNC_CS_APPLIED            UNC_CS_NOT_SUPPORTED      UNC_CS_PARTIALLY_APPLIED
- * UNC_CS_PARTIALLY_APPLIED  UNC_CS_APPLIED            UNC_CS_PARTIALLY_APPLIED
- * UNC_CS_APPLIED            UNC_CS_PARTIALLY_APPLIED  UNC_CS_PARTIALLY_APPLIED
- * UNC_CS_NOT_APPLIED        UNC_CS_PARTIALLY_APPLIED  UNC_CS_PARTIALLY_APPLIED
- * UNC_CS_PARTIALLY_APPLIED  UNC_CS_NOT_APPLIED        UNC_CS_PARTIALLY_APPLIED
- * UNC_CS_PARTIALLY_APPLIED  UNC_CS_PARTIALLY_APPLIED  UNC_CS_PARTIALLY_APPLIED*/
-
-  else if ((UNC_CS_APPLIED == db_status ||
-           UNC_CS_NOT_APPLIED == db_status ||
-           UNC_CS_NOT_SUPPORTED == db_status ||
-           UNC_CS_PARTIALLY_APPLIED == db_status) &&
-          (UNC_CS_APPLIED == cs_status ||
-           UNC_CS_NOT_APPLIED == cs_status ||
-           UNC_CS_NOT_SUPPORTED == cs_status ||
-           UNC_CS_PARTIALLY_APPLIED == cs_status)) {
-    result_code = UNC_CS_PARTIALLY_APPLIED;
-  } else {
-    result_code = UNC_CS_UNKNOWN;
+  upll_rc_t MoMgrImpl::AdaptErrValToVtn(ConfigKeyVal *ckv_drv_rslt,
+                                        DalDmlIntf *dmi,
+                                        uint8_t* ctrlr_id) {
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+    while (ckv_drv_rslt) {
+      // Convert the driver returned key to unc specific key
+      result_code = GetRenamedUncKey(ckv_drv_rslt,
+                                     UPLL_DT_RUNNING, dmi, ctrlr_id);
+      if (UPLL_RC_SUCCESS != result_code &&
+          UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+        UPLL_LOG_DEBUG("GetRenamedUncKey failed - %d", result_code);
+        return result_code;
+      }
+      ConfigVal *cval = ckv_drv_rslt->get_cfg_val();
+      while (cval) {
+        switch (ckv_drv_rslt->get_key_type()) {
+          // Get VBridge interface name using vExternal Name
+          case UNC_KT_VBR_IF: {
+            uint8_t *vext_name;
+            UPLL_LOG_TRACE("Received Structure: %d",  cval->get_st_num());
+            if (IpctSt::kIpcStPfcdrvValVbrIf == cval->get_st_num()) {
+              val_drv_vbr_if *vbr_if_val = reinterpret_cast<val_drv_vbr_if *>
+                  (cval->get_val());
+              if (vbr_if_val == NULL) {
+                UPLL_LOG_DEBUG("vbr_if_val is NULL.");
+                cval = cval->get_next_cfg_val();
+                continue;
+              }
+              if (vbr_if_val->valid[PFCDRV_IDX_VEXTERNAL_NAME_VBRIF] ==
+                  UNC_VF_VALID) {
+                vext_name = vbr_if_val->vex_name;
+              } else {
+                UPLL_LOG_DEBUG("Vexternal name is not valid."
+                               "No translation required");
+                cval = cval->get_next_cfg_val();
+                continue;
+              }
+            } else {
+              UPLL_LOG_TRACE("No translation required");
+              cval = cval->get_next_cfg_val();
+              continue;
+            }
+
+            ConfigKeyVal *vbrif_key_val = NULL;
+            VbrIfMoMgr *vbrifmgr = reinterpret_cast<VbrIfMoMgr *>
+                (const_cast<MoManager *>(GetMoManager(UNC_KT_VBR_IF)));
+            if (vbrifmgr == NULL) {
+              UPLL_LOG_DEBUG("Invalid momgr object");
+              return UPLL_RC_ERR_GENERIC;
+            }
+            result_code = vbrifmgr->GetVbrIfFromVExternal(
+                reinterpret_cast<key_vbr_if *>
+                (ckv_drv_rslt->get_key())->vbr_key.vtn_key.vtn_name,
+                vext_name,
+                vbrif_key_val,
+                dmi);
+            if (result_code == UPLL_RC_SUCCESS) {
+              memcpy(ckv_drv_rslt->get_key(), vbrif_key_val->get_key(),
+                     sizeof(key_vbr_if));
+              UPLL_LOG_DEBUG("Driver result updated with logical values");
+            }
+            DELETE_IF_NOT_NULL(vbrif_key_val);
+            cval = cval->get_next_cfg_val();
+          }
+          break;
+          default:
+          cval = cval->get_next_cfg_val();
+          break;
+        }
+      }
+      ckv_drv_rslt = ckv_drv_rslt->get_next_cfg_key_val();
+    }
+    return UPLL_RC_SUCCESS;
   }
-  return result_code;
-}
+
 }  // namespace kt_momgr
 }  // namespace upll
 }  // namespace unc
index 2eec3cca772fdb9a8bd14962d2787e955ece3d68..0bbd45c68e7bdaa66b1cc37a33a7fdfd79120d75 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -18,6 +18,7 @@
 #include <cstring>
 #include <list>
 #include <set>
+#include <functional>
 
 #include "unc/keytype.h"
 #include "unc/pfcdriver_include.h"
@@ -64,6 +65,7 @@ using unc::upll::ipc_util::IpcReqRespHeader;
 using unc::upll::ipc_util::IpcRequest;
 using unc::upll::config_momgr::CtrlrCommitStatus;
 using unc::upll::config_momgr::CtrlrVoteStatus;
+using unc::upll::config_momgr::KTxCtrlrAffectedState;
 using unc::upll::config_momgr::MoManager;
 using unc::upll::dal::DalBindInfo;
 using unc::upll::dal::DalDmlIntf;
@@ -77,24 +79,24 @@ using unc::upll::dal::DalResultCode;
 #define ResetValid(x, val) { \
   struct x *tval = reinterpret_cast<struct x *>(val);           \
   for (uint8_t i = 0; i < sizeof(tval->valid)/sizeof(tval->valid[0]); i++) \
-    *reinterpret_cast<uint8_t *>(tval->valid + i)  = UNC_VF_INVALID; \
+  *reinterpret_cast<uint8_t *>(tval->valid + i)  = UNC_VF_INVALID; \
 }
 
 #define GetVal(ikey) \
-  ((ikey) ? \
-    (((ikey)->get_cfg_val()) ? \
+    ((ikey) ? \
+     (((ikey)->get_cfg_val()) ? \
       (((ikey)->get_cfg_val())->get_val()) \
-    : NULL) \
-  : NULL)
+      : NULL) \
+     : NULL)
 
 #define GetStateVal(ikey) \
- ((ikey) ? \
-   (((ikey)->get_cfg_val()) ? \
-     (((ikey)->get_cfg_val()->get_next_cfg_val()) ? \
   ((ikey) ? \
+     (((ikey)->get_cfg_val()) ? \
+      (((ikey)->get_cfg_val()->get_next_cfg_val()) ? \
        ((ikey)->get_cfg_val()->get_next_cfg_val()->get_val()) \
-     : NULL) \
-   : NULL) \
- : NULL)
+       : NULL) \
+      : NULL) \
    : NULL)
 
 // #define KEY_RESET(x) *(x) = ' '
 
@@ -105,18 +107,24 @@ using unc::upll::dal::DalResultCode;
 typedef list<CtrlrCommitStatus *> CtrlrCommitStatusList;
 typedef list<CtrlrVoteStatus *> CtrlrVoteStatusList;
 // typedef multimap<uint8_t*, ConfigKeyVal *>ControllerKeyMap;
+#define UNKNOWN_KT(keytype) ((keytype == UNC_KT_VUNKNOWN) || \
+                             (keytype == UNC_KT_VUNK_IF))
 
 #define OVERLAY_KT(keytype)  ((keytype == UNC_KT_VTEP) || \
-    (keytype == UNC_KT_VTEP_IF) || (keytype == UNC_KT_VTEP_GRP) || \
-    (keytype == UNC_KT_VTEP_GRP_MEMBER) || (keytype == UNC_KT_VTUNNEL) ||\
-    (keytype == UNC_KT_VTUNNEL_IF))
+                              (keytype == UNC_KT_VTEP_IF) || (keytype == UNC_KT_VTEP_GRP) || \
+                              (keytype == UNC_KT_VTEP_GRP_MEMBER) || (keytype == UNC_KT_VTUNNEL) ||\
+                              (keytype == UNC_KT_VTUNNEL_IF))
 
 #define PORT_MAPPED_KEYTYPE(keytype) ((keytype == UNC_KT_VBR_IF) || \
-    (keytype == UNC_KT_VTEP_IF) || (keytype == UNC_KT_VTUNNEL_IF))
+                                      (keytype == UNC_KT_VTEP_IF) || (keytype == UNC_KT_VTUNNEL_IF))
 
 #define VN_IF_KEYTYPE(keytype) ((keytype == UNC_KT_VBR_IF) || \
-    (keytype == UNC_KT_VTEP_IF) || (keytype == UNC_KT_VTUNNEL_IF) || \
-    (keytype == UNC_KT_VRT_IF))
+                                (keytype == UNC_KT_VTEP_IF) || (keytype == UNC_KT_VTUNNEL_IF) || \
+                                (keytype == UNC_KT_VRT_IF))
+
+#define VNODE_KEYTYPE(keytype) ((keytype == UNC_KT_VBRIDGE) || \
+                                (keytype == UNC_KT_VROUTER) || (keytype == UNC_KT_VUNKNOWN) || \
+                                (keytype == UNC_KT_VTEP) || (keytype == UNC_KT_VTUNNEL))
 
 #define GET_USER_DATA(ckey) { \
   void *user_data = (ckey)->get_user_data(); \
@@ -131,24 +139,32 @@ typedef list<CtrlrVoteStatus *> CtrlrVoteStatusList;
 
 #define SET_USER_DATA(ckey, skey) { \
   key_user_data_t *suser_data = \
-    reinterpret_cast<key_user_data_t *>((skey)?(skey->get_user_data()):NULL); \
+  reinterpret_cast<key_user_data_t *>((skey)?(skey->get_user_data()):NULL); \
   if (suser_data)  {\
     GET_USER_DATA(ckey)      \
     key_user_data_t *user_data = \
-                 reinterpret_cast<key_user_data_t *>(ckey->get_user_data()); \
+    reinterpret_cast<key_user_data_t *>(ckey->get_user_data()); \
     uuu::upll_strncpy(user_data->ctrlr_id, suser_data->ctrlr_id, \
-                                             (kMaxLenCtrlrId+1)); \
+                      (kMaxLenCtrlrId+1)); \
     uuu::upll_strncpy(user_data->domain_id, suser_data->domain_id, \
-                                             (kMaxLenDomainId+1)); \
+                      (kMaxLenDomainId+1)); \
     user_data->flags = suser_data->flags; \
   } \
 }
 
+// free the user data and set it to NULL
+#define DEL_USER_DATA(ckey) {       \
+  if ((ckey)->get_user_data()) {    \
+    free((ckey)->get_user_data());  \
+  }                                 \
+  (ckey)->set_user_data(NULL);      \
+}
+
 #define SET_USER_DATA_CTRLR(ckey, ctrlr) { \
   GET_USER_DATA(ckey)      \
   if (ctrlr && strlen(reinterpret_cast<const char *>(ctrlr))) { \
     key_user_data *user_data = \
-                 reinterpret_cast<key_user_data *>(ckey->get_user_data()); \
+    reinterpret_cast<key_user_data *>(ckey->get_user_data()); \
     uuu::upll_strncpy(user_data->ctrlr_id, (ctrlr), (kMaxLenCtrlrId+1)); \
   } \
 }
@@ -157,7 +173,7 @@ typedef list<CtrlrVoteStatus *> CtrlrVoteStatusList;
   GET_USER_DATA(ckey)      \
   if (domain && strlen(reinterpret_cast<const char *>(domain))) { \
     key_user_data *user_data = \
-                 reinterpret_cast<key_user_data *>(ckey->get_user_data()); \
+    reinterpret_cast<key_user_data *>(ckey->get_user_data()); \
     uuu::upll_strncpy(user_data->domain_id, (domain), (kMaxLenDomainId+1)); \
   } \
 }
@@ -165,26 +181,26 @@ typedef list<CtrlrVoteStatus *> CtrlrVoteStatusList;
 #define SET_USER_DATA_CTRLR_DOMAIN(ckey, ctrlr_dom) { \
   GET_USER_DATA(ckey)      \
   key_user_data *user_data = \
-                reinterpret_cast<key_user_data *>(ckey->get_user_data()); \
+  reinterpret_cast<key_user_data *>(ckey->get_user_data()); \
   if (((ctrlr_dom).ctrlr) && \
-                  strlen(reinterpret_cast<char *>((ctrlr_dom).ctrlr)))  {\
+      strlen(reinterpret_cast<char *>((ctrlr_dom).ctrlr)))  {\
     uuu::upll_strncpy(user_data->ctrlr_id, (ctrlr_dom).ctrlr, \
-                                         (kMaxLenCtrlrId+1)); \
+                      (kMaxLenCtrlrId+1)); \
   } else { \
-     (ctrlr_dom).ctrlr = NULL; \
+    (ctrlr_dom).ctrlr = NULL; \
   }\
   if (((ctrlr_dom).domain) && \
-                 strlen(reinterpret_cast<char *>((ctrlr_dom).domain)))  \
-    uuu::upll_strncpy(user_data->domain_id, ((ctrlr_dom).domain), \
-                                                   (kMaxLenDomainId+1)); \
+      strlen(reinterpret_cast<char *>((ctrlr_dom).domain)))  \
+  uuu::upll_strncpy(user_data->domain_id, ((ctrlr_dom).domain), \
+                    (kMaxLenDomainId+1)); \
   else  \
-    (ctrlr_dom).domain = NULL; \
+  (ctrlr_dom).domain = NULL; \
 }
 
 #define GET_USER_DATA_FLAGS(ckey, rename) \
 { \
   key_user_data_t *user_data = \
-                reinterpret_cast<key_user_data_t *>((ckey)->get_user_data()); \
+  reinterpret_cast<key_user_data_t *>((ckey)->get_user_data()); \
   if (user_data) { \
     rename = user_data->flags; \
   } \
@@ -193,37 +209,37 @@ typedef list<CtrlrVoteStatus *> CtrlrVoteStatusList;
 #define GET_USER_DATA_CTRLR(ckey, ctrlr) \
 { \
   key_user_data_t *user_data = \
-               reinterpret_cast<key_user_data_t *>(ckey->get_user_data()); \
+  reinterpret_cast<key_user_data_t *>(ckey->get_user_data()); \
   if (user_data) { \
     (ctrlr) = \
-         (reinterpret_cast<key_user_data_t *>(ckey->get_user_data()))->ctrlr_id; \
+    (reinterpret_cast<key_user_data_t *>(ckey->get_user_data()))->ctrlr_id; \
   } \
 }
 
 #define GET_USER_DATA_DOMAIN(ckey, domain) \
 { \
   key_user_data_t *user_data = \
-                 reinterpret_cast<key_user_data_t *>(ckey->get_user_data()); \
+  reinterpret_cast<key_user_data_t *>(ckey->get_user_data()); \
   if (user_data) { \
     (domain) = \
-      (reinterpret_cast<key_user_data_t *>(ckey->get_user_data()))->domain_id; \
+    (reinterpret_cast<key_user_data_t *>(ckey->get_user_data()))->domain_id; \
   } \
 }
 
 #define GET_USER_DATA_CTRLR_DOMAIN(ckey, ctrlr_domain) \
 { \
   key_user_data_t *user_data = \
-                reinterpret_cast<key_user_data_t *>(ckey->get_user_data()); \
+  reinterpret_cast<key_user_data_t *>(ckey->get_user_data()); \
   if (user_data) { \
     if (strlen(reinterpret_cast<char *>((reinterpret_cast<key_user_data_t *> \
-                                     (ckey->get_user_data()))->ctrlr_id))) { \
-    (ctrlr_domain).ctrlr  = \
-       (reinterpret_cast<key_user_data_t *>(ckey->get_user_data()))->ctrlr_id; \
+                                         (ckey->get_user_data()))->ctrlr_id))) { \
+      (ctrlr_domain).ctrlr  = \
+      (reinterpret_cast<key_user_data_t *>(ckey->get_user_data()))->ctrlr_id; \
     } \
     if (strlen(reinterpret_cast<char *>((reinterpret_cast<key_user_data_t *> \
-                                    (ckey->get_user_data()))->domain_id))) { \
-    (ctrlr_domain).domain  = \
-       (reinterpret_cast<key_user_data_t *>(ckey->get_user_data()))->domain_id;\
+                                         (ckey->get_user_data()))->domain_id))) { \
+      (ctrlr_domain).domain  = \
+      (reinterpret_cast<key_user_data_t *>(ckey->get_user_data()))->domain_id;\
     } \
   } \
 }
@@ -232,22 +248,22 @@ typedef list<CtrlrVoteStatus *> CtrlrVoteStatusList;
 { \
   GET_USER_DATA(ckey)    \
   key_user_data_t  *user_data = \
-               reinterpret_cast<key_user_data_t *>(ckey->get_user_data()); \
+  reinterpret_cast<key_user_data_t *>(ckey->get_user_data()); \
   user_data->flags = (rename); \
 }
 
 #define FREE_IF_NOT_NULL(key) \
-do { \
-  if (key) \
-    free(key); \
-} while (0);
+    do { \
+      if (key) \
+      free(key); \
+    } while (0);
 
 #define DELETE_IF_NOT_NULL(key) \
-do { \
-  if (key)\
-  delete key;\
-  key = NULL;\
-} while (0);
+    do { \
+      if (key)\
+      delete key;\
+      key = NULL;\
+    } while (0);
 
 #define GET_TABLE_TYPE(keytype, tbl) \
 { \
@@ -267,28 +283,34 @@ do { \
 #define KEYTYPE_WITHOUT_DOMAIN(keytype, domain) \
 { \
   domain = ((keytype == UNC_KT_POLICING_PROFILE) \
-         || (keytype == UNC_KT_POLICING_PROFILE_ENTRY) \
-         || (keytype == UNC_KT_FLOWLIST) \
-         || (keytype == UNC_KT_FLOWLIST_ENTRY) \
-         || (keytype == UNC_KT_VTEP_GRP) \
-         || (keytype == UNC_KT_VTEP_GRP_MEMBER))?true:false; \
+            || (keytype == UNC_KT_POLICING_PROFILE_ENTRY) \
+            || (keytype == UNC_KT_FLOWLIST) \
+            || (keytype == UNC_KT_FLOWLIST_ENTRY) \
+            || (keytype == UNC_KT_VTEP_GRP) \
+            || (keytype == UNC_KT_VTEP_GRP_MEMBER))?true:false; \
 }
 
 #define IS_POM_KT(keytype, flag) \
 { \
   flag = ((keytype == UNC_KT_VTN_POLICINGMAP) \
-         || (keytype == UNC_KT_VBR_POLICINGMAP) \
-         || (keytype == UNC_KT_VBRIF_POLICINGMAP) \
-         || (keytype == UNC_KT_VTN_FLOWFILTER) \
-         || (keytype == UNC_KT_VTN_FLOWFILTER_ENTRY) \
-         || (keytype == UNC_KT_VBR_FLOWFILTER) \
-         || (keytype == UNC_KT_VBR_FLOWFILTER_ENTRY) \
-         || (keytype == UNC_KT_VBRIF_FLOWFILTER) \
-         || (keytype == UNC_KT_VBRIF_FLOWFILTER_ENTRY) \
-         || (keytype == UNC_KT_VRTIF_FLOWFILTER) \
-         || (keytype == UNC_KT_VRTIF_FLOWFILTER_ENTRY))?true:false; \
+          || (keytype == UNC_KT_VBR_POLICINGMAP) \
+          || (keytype == UNC_KT_VBRIF_POLICINGMAP) \
+          || (keytype == UNC_KT_VTN_FLOWFILTER) \
+          || (keytype == UNC_KT_VTN_FLOWFILTER_ENTRY) \
+          || (keytype == UNC_KT_VBR_FLOWFILTER) \
+          || (keytype == UNC_KT_VBR_FLOWFILTER_ENTRY) \
+          || (keytype == UNC_KT_VBRIF_FLOWFILTER) \
+          || (keytype == UNC_KT_VBRIF_FLOWFILTER_ENTRY) \
+          || (keytype == UNC_KT_VRTIF_FLOWFILTER) \
+          || (keytype == UNC_KT_VRTIF_FLOWFILTER_ENTRY))?true:false; \
 }
 
+#define IS_INTERFACE_KEY(kt_type) ((kt_type == UNC_KT_VBR_IF) || \
+                                   (kt_type == UNC_KT_VRT_IF) || \
+                                   (kt_type == UNC_KT_VTEP_IF) || \
+                                   (kt_type == UNC_KT_VTUNNEL_IF) || \
+                                   (kt_type == UNC_KT_VUNK_IF))
+
 enum state_notification {
   kCtrlrReconnect = 0x0,
   kCtrlrReconnectIfUp,
@@ -296,12 +318,15 @@ enum state_notification {
   kCtrlrDisconnect,
   kAdminStatusDisabled,
   kAdminStatusEnabled,
+  kPortUnknown,
   kPortFault,
   kPathFault,
   kPortFaultReset,
   kPathFaultReset,
   kBoundaryFault,
-  kBoundaryFaultReset
+  kBoundaryFaultReset,
+  kPortFaultResetWithAdminDisabled,
+  kBoundaryFaultResetWithAdminDisabled
 };
 
 #define POM_RENAME_KT(ktype) (((ktype) == UNC_KT_VBR_POLICINGMAP) || \
@@ -314,9 +339,9 @@ enum state_notification {
 #define GET_RENAME_FLAG(rename, ktype) \
 { \
   if (POM_RENAME_KT(ktype)) \
-    rename = rename & RENAME; \
+  rename = rename & RENAME; \
   else \
-    rename = rename & RENAME_BITS; \
+  rename = rename & RENAME_BITS; \
 }
 
 #define NO_VTN_RENAME 0xFE
@@ -352,7 +377,7 @@ typedef struct key_vnode_type {
 
 struct key_vnode_type_compare {
   inline bool operator()(const key_vnode_type &keyvnodetype1,
-                          const key_vnode_type keyvnodetype2) const {
+                         const key_vnode_type keyvnodetype2) const {
     int ret = strcmp((const char *)keyvnodetype1.vnode_key.vtn_key.vtn_name,
                      (const char *)keyvnodetype1.vnode_key.vtn_key.vtn_name);
     if (ret == 0) {
@@ -378,7 +403,10 @@ enum vnode_if_type {
   kVrtIf,
   kVunkIf,
   kVtepIf,
-  kVtunnelIf
+  kVtunnelIf,
+  /* VlanmapOnBoundary: kVlanMap is used when boundary
+   * vnode_if is mapped to SD or SW */
+  kVlanMap
 };
 
 #define VLINK_FLAG_NODE_TYPE 0xFC
@@ -388,10 +416,10 @@ enum vnode_if_type {
 #define kVlinkVnodeIf1Type  5
 
 #define GET_VLINK_NODE1_TYPE(vlink_flag) \
-  ((vlink_flag  & VLINK_FLAG_NODE1_TYPE) >> kVlinkVnodeIf1Type)
+    ((vlink_flag  & VLINK_FLAG_NODE1_TYPE) >> kVlinkVnodeIf1Type)
 
 #define GET_VLINK_NODE2_TYPE(vlink_flag) \
-  ((vlink_flag  & VLINK_FLAG_NODE2_TYPE) >> kVlinkVnodeIf2Type)
+    ((vlink_flag  & VLINK_FLAG_NODE2_TYPE) >> kVlinkVnodeIf2Type)
 
 enum if_type {
   kUnboundInterface = 0x0,
@@ -408,6 +436,13 @@ enum vn_if_type {
   kVlinkInternalNode2 = 0x10
 };
 
+enum NotifyPOMForPortMapInfo {
+  kPortMapNoChange = 0,
+  kPortMapCreated,  // Used to notify POM when PortMap is Created
+  kPortMapDeleted,  // Used to notifyPOM when PortMap is Deleted
+  kPortMapUpdated,  // PortMap is Updated. No Notification is required for POM
+};
+
 enum InterfacePortMapInfo {
   kVlinkPortMapNotConfigured = 0x00,
   kVlinkConfigured = 0x01,
@@ -424,7 +459,7 @@ typedef struct val_rename_vnode {
 
 struct vlink_compare {
   inline bool operator()(const key_vlink_t &keyvlink1,
-                          const key_vlink_t keyvlink2) const {
+                         const key_vlink_t keyvlink2) const {
     int ret = strcmp((const char *)keyvlink1.vtn_key.vtn_name,
                      (const char *)keyvlink2.vtn_key.vtn_name);
     if (ret == 0) {
@@ -443,6 +478,10 @@ enum VlinkNodePosition {
 };
 
 #define VLINK_FLAG_NODE_POS 0xC0
+/* VlanmapOnBoundary: Below flags used to set/clear
+ * user or boundary configured bit in vlanmap flag */
+#define USER_VLANMAP_FLAG 0x40
+#define BOUNDARY_VLANMAP_FLAG 0x80
 
 typedef struct controller_domain {
   uint8_t                 *ctrlr;
@@ -549,14 +588,14 @@ class Table {
 
  public:
   Table(uudst::kDalTableIndex itbl_index, unc_key_type_t ikey_type,
-         BindInfo *binfo, uui::IpctSt::IpcStructNum ikey_struct,
-         IpctSt::IpcStructNum ival_struct,
+        BindInfo *binfo, uui::IpctSt::IpcStructNum ikey_struct,
+        IpctSt::IpcStructNum ival_struct,
         int inattr):
       key_type(ikey_type), key_struct(ikey_struct),
       val_struct(ival_struct), nattr(inattr) {
         tbl_index = itbl_index;
         db_info = binfo;
-  }
+      }
   ~Table() {
   }
   unc_key_type_t get_key_type() { return key_type; }
@@ -577,28 +616,36 @@ class Table {
 class MoMgrImpl : public MoManager {
  private:
   upll_rc_t CreateImportMoImpl(IpcReqRespHeader *req,
-                           ConfigKeyVal *ikey,
-                           DalDmlIntf *dmi,
-                           const char *ctrlr_id,
-                           const char *domain_id);
+                               ConfigKeyVal *ikey,
+                               DalDmlIntf *dmi,
+                               const char *ctrlr_id,
+                               const char *domain_id);
 
   // Returns Query String for Read Import based on operation and keytype
   std::string GetReadImportQueryString(unc_keytype_operation_t op,
                                        unc_key_type_t kt) const;
 
   bool OperStatusSupported(unc_key_type_t kt) {
-   switch (kt) {
-   case UNC_KT_VTN:
-   case UNC_KT_VBRIDGE:
-   case UNC_KT_VROUTER:
-   case UNC_KT_VBR_IF:
-   case UNC_KT_VRT_IF:
-    return true;
-   default:
-    return false;
-   }
+    switch (kt) {
+      case UNC_KT_VTN:
+      case UNC_KT_VBRIDGE:
+      case UNC_KT_VROUTER:
+      case UNC_KT_VBR_IF:
+      case UNC_KT_VRT_IF:
+      case UNC_KT_VBR_VLANMAP:
+        return true;
+      default:
+        return false;
+    }
   }
 
+  // Converts the driver returned err_ckv specific to VTN
+  // This method is used when the err_ckv sent from driver
+  // does not have all required key values filled
+  // Calls GetRenamedUncKey as well
+  upll_rc_t AdaptErrValToVtn(ConfigKeyVal *ckv_drv_rslt,
+                             DalDmlIntf *dmi,
+                             uint8_t* ctrlr_id);
 
  protected:
   Table **table;
@@ -607,56 +654,56 @@ class MoMgrImpl : public MoManager {
   int nchild;
   upll_rc_t DalToUpllResCode(DalResultCode result_code);
 
- /* @brief    Populate val_vtn_neighbor for the READ/READ_SIBLING operations
-  *
-  * @param[in/out] key   Pointer to the ConfigKeyVal Structure
-  * @param[in]     dmi    Pointer to the DalDmlIntf(DB Interface)
-  *
-  * @retval  UPLL_RC_SUCCESS                    Completed successfully.
-  * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
-  * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
-  * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
-  * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist
-  *
-  **/
 /* @brief    Populate val_vtn_neighbor for the READ/READ_SIBLING operations
+   *
+   * @param[in/out] key   Pointer to the ConfigKeyVal Structure
+   * @param[in]     dmi    Pointer to the DalDmlIntf(DB Interface)
+   *
+   * @retval  UPLL_RC_SUCCESS                    Completed successfully.
+   * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
+   * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
+   * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
+   * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist
+   *
+   **/
   virtual upll_rc_t PopulateValVtnNeighbor(ConfigKeyVal *&key,
-                                   DalDmlIntf *dmi) {
+                                           DalDmlIntf *dmi) {
     return UPLL_RC_SUCCESS;
   }
 
   upll_rc_t TxCopyRenameTableFromCandidateToRunning(
-                                    unc_key_type_t key_type,
-                                    unc_keytype_operation_t op,
-                                    DalDmlIntf* dmi);
+      unc_key_type_t key_type,
+      unc_keytype_operation_t op,
+      DalDmlIntf* dmi);
 
 
 #if 0
   /**
-    * @brief Get configkey val with oper status initialized to UNINIT
-    *
-    * @param[out]  ck_vn  pointer to ConfigKeyVal
-    * @param[in]   ktype  key type
-    * @param[in]   dmi    Poiner to database connection params.
-    *
-    * @retval UPLL_RC_SUCCESS      Successful
-    * @retval UPLL_RC_ERR_GENERIC  Generic error
-    */
+   * @brief Get configkey val with oper status initialized to UNINIT
+   *
+   * @param[out]  ck_vn  pointer to ConfigKeyVal
+   * @param[in]   ktype  key type
+   * @param[in]   dmi    Poiner to database connection params.
+   *
+   * @retval UPLL_RC_SUCCESS      Successful
+   * @retval UPLL_RC_ERR_GENERIC  Generic error
+   */
   template<typename T1, typename T2>
-  upll_rc_t GetCkvWithOperSt(ConfigKeyVal *&ck_vn,
-                               unc_key_type_t ktype,
-                               DalDmlIntf     *dmi);
+upll_rc_t GetCkvWithOperSt(ConfigKeyVal *&ck_vn,
+                           unc_key_type_t ktype,
+                           DalDmlIntf     *dmi);
 #else
-    /* @brief      Gets ports with uninitialized oper status
-     *             - ports whose status have to be obtained from physical
-     *
-     * @param[out]  ikey     Pointer to a list of configkeyvals
-     * @param[in]   dmi      Database connection parameter
-     *
-     * @retval  UPLL_RC_SUCCESS      Completed successfully.
-     * @retval  UPLL_RC_ERR_GENERIC  Generic failure.
-     *
-     **/
-    upll_rc_t GetUninitOperState(ConfigKeyVal *&ck_vn, DalDmlIntf *dmi);
+  /* @brief      Gets ports with uninitialized oper status
+   *             - ports whose status have to be obtained from physical
+   *
+   * @param[out]  ikey     Pointer to a list of configkeyvals
+   * @param[in]   dmi      Database connection parameter
+   *
+   * @retval  UPLL_RC_SUCCESS      Completed successfully.
+   * @retval  UPLL_RC_ERR_GENERIC  Generic failure.
+   *
+   **/
+  upll_rc_t GetUninitOperState(ConfigKeyVal *&ck_vn, DalDmlIntf *dmi);
 #endif
 
   virtual upll_rc_t SwapKeyVal(ConfigKeyVal *ikey,
@@ -667,8 +714,8 @@ class MoMgrImpl : public MoManager {
     return UPLL_RC_ERR_GENERIC;
   };
   upll_rc_t ValidateDeleteMoReq(IpcReqRespHeader *req,
-                              ConfigKeyVal *ikey,
-                              DalDmlIntf *dmi);
+                                ConfigKeyVal *ikey,
+                                DalDmlIntf *dmi);
   upll_rc_t DeleteCandidateMo(IpcReqRespHeader *req,
                               ConfigKeyVal *ikey,
                               DalDmlIntf *dmi);
@@ -690,7 +737,7 @@ class MoMgrImpl : public MoManager {
   virtual upll_rc_t UpdateParentOperStatus(ConfigKeyVal *ikey,
                                            DalDmlIntf *dmi) {
     UPLL_LOG_DEBUG("Unsupported operation for this keytype %d\n",
-                      (ikey)?ikey->get_key_type():0);
+                   (ikey)?ikey->get_key_type():0);
     return UPLL_RC_ERR_GENERIC;
   }
 
@@ -703,27 +750,30 @@ class MoMgrImpl : public MoManager {
    *
    **/
   virtual upll_rc_t UpdateConfigStatus(ConfigKeyVal *req,
-                                unc_keytype_operation_t op,
-                                uint32_t result,
-                                ConfigKeyVal *upd_key = NULL,
-                                DalDmlIntf *dmi = NULL,
-                                ConfigKeyVal *ctrlr_key = NULL) = 0;
+                                       unc_keytype_operation_t op,
+                                       uint32_t result,
+                                       ConfigKeyVal *upd_key = NULL,
+                                       DalDmlIntf *dmi = NULL,
+                                       ConfigKeyVal *ctrlr_key = NULL) = 0;
   /**
    * @brief  Update config status for commit result and vote result.
    *
    * @param[in/out]  ckv_running  ConfigKeyVal instance.
    * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
    * @param[in]      phase        specify the phase (CREATE, DELETE or UPDATE)
+   * @param[in]      dmi          Pointer to the DalDmlIntf(DB Interface)
    *
    **/
   virtual upll_rc_t UpdateAuditConfigStatus(
-                                     unc_keytype_configstatus_t cs_status,
-                                     uuc::UpdateCtrlrPhase phase,
-                                     ConfigKeyVal *&ckv_running) = 0;
+      unc_keytype_configstatus_t cs_status,
+      uuc::UpdateCtrlrPhase phase,
+      ConfigKeyVal *&ckv_running,
+      DalDmlIntf *dmi) = 0;
+
   virtual upll_rc_t UpdateCtrlrConfigStatus(
-                                     unc_keytype_configstatus_t cs_status,
-                                     uuc::UpdateCtrlrPhase phase,
-                                     ConfigKeyVal *&ckv_running) {
+      unc_keytype_configstatus_t cs_status,
+      uuc::UpdateCtrlrPhase phase,
+      ConfigKeyVal *&ckv_running) {
     return UPLL_RC_SUCCESS;
   }
   virtual upll_rc_t UpdateRenameKey(ConfigKeyVal *&ikey,
@@ -734,25 +784,15 @@ class MoMgrImpl : public MoManager {
                                     MoMgrTables tbl);
 
   virtual upll_rc_t GetDiffRecord(ConfigKeyVal *ckv_running,
-                                   ConfigKeyVal *ckv_audit,
-                                   uuc::UpdateCtrlrPhase phase, MoMgrTables tbl,
-                                   ConfigKeyVal *&ckv_driver_req,
-                                   DalDmlIntf *dmi,
-                                   bool &invalid_attr);
+                                  ConfigKeyVal *ckv_audit,
+                                  uuc::UpdateCtrlrPhase phase, MoMgrTables tbl,
+                                  ConfigKeyVal *&ckv_driver_req,
+                                  DalDmlIntf *dmi,
+                                  bool &invalid_attr);
 
   virtual upll_rc_t  ValidateMessage(IpcReqRespHeader *req,
                                      ConfigKeyVal *ikey) = 0;
 
-   /**
-   * @brief  Perform Semantic Check to check Different vbridges
-   *          contain same switch-id and vlan-id
-   *
-   * @param[in]       ikey        ConfigKeyVal
-   * @param[out]      upll_rc_t   UPLL_RC_ERR_CFG_SEMANTIC on error
-   *                                UPLL_RC_SUCCESS on success
-   **/
-  virtual upll_rc_t ValidateAttribute(ConfigKeyVal *kval, DalDmlIntf *dmi,
-                                      IpcReqRespHeader *req = NULL) =0;
   /**
    * @brief  Gets the valid array position of the variable in the value
    *         structure from the table in the specified configuration
@@ -772,16 +812,18 @@ class MoMgrImpl : public MoManager {
                              MoMgrTables tbl = MAINTBL)= 0;
   virtual upll_rc_t CreateCandidateMo(IpcReqRespHeader *req,
                                       ConfigKeyVal *ikey,
-                                      DalDmlIntf *dmi);
+                                      DalDmlIntf *dmi,
+                                      bool restore_flag = false);
 
   upll_rc_t BindStartup(DalBindInfo *db_info,
-                     upll_keytype_datatype_t dt_type,
-                     MoMgrTables tbl = MAINTBL);
+                        upll_keytype_datatype_t dt_type,
+                        MoMgrTables tbl = MAINTBL);
 
   upll_rc_t BindCandidateDirty(DalBindInfo *db_info,
-                     upll_keytype_datatype_t dt_type,
-                     MoMgrTables tbl = MAINTBL,
-                    const uudst::kDalTableIndex index = uudst::kDalNumTables);
+                               upll_keytype_datatype_t dt_type,
+                               MoMgrTables tbl = MAINTBL,
+                               const uudst::kDalTableIndex index =
+                               uudst::kDalNumTables);
 
   virtual upll_rc_t BindAttr(DalBindInfo *db_info,
                              ConfigKeyVal *&req,
@@ -794,14 +836,14 @@ class MoMgrImpl : public MoManager {
                                    DbSubOp dbop, MoMgrTables tbl = MAINTBL);
 
   /*const */uudst::kDalTableIndex GetTable(MoMgrTables tbl,
-                                    upll_keytype_datatype_t dt_type) {
+                                           upll_keytype_datatype_t dt_type) {
     if (NULL != table[tbl])
       return table[tbl]->GetTblIndex();
     else
       return uudst::kDalNumTables;
   }
   unc_key_type_t GetMoMgrKeyType(MoMgrTables tbl,
-         upll_keytype_datatype_t dt_type) {
+                                 upll_keytype_datatype_t dt_type) {
     if (table[tbl])
       return table[tbl]->get_key_type();
     else
@@ -845,14 +887,23 @@ class MoMgrImpl : public MoManager {
     ntable = 0;
     child = NULL;
     nchild = 0;
-    cur_instance_count = 0;
   }
   virtual ~MoMgrImpl() {}
-  uint32_t cur_instance_count;
-  /* @brief      - allocates a configkeyval with oper status = UNINIT 
+  /**
+   * @brief  Perform Semantic Check to check Different vbridges
+   *          contain same switch-id and vlan-id
    *
-   * @param[out]  ck_vn    Pointer to a configkeyval 
-   * @param[in]   ikey     null if no key is to be copied 
+   * @param[in]       ikey        ConfigKeyVal
+   * @param[out]      upll_rc_t   UPLL_RC_ERR_CFG_SEMANTIC on error
+   *                                UPLL_RC_SUCCESS on success
+   **/
+  virtual upll_rc_t ValidateAttribute(ConfigKeyVal *kval, DalDmlIntf *dmi,
+                                      IpcReqRespHeader *req = NULL) =0;
+
+  /* @brief      - allocates a configkeyval with oper status = UNINIT
+   *
+   * @param[out]  ck_vn    Pointer to a configkeyval
+   * @param[in]   ikey     null if no key is to be copied
    * @param[in]   dmi      Database connection parameter
    *
    * @retval  UPLL_RC_SUCCESS      Completed successfully.
@@ -869,13 +920,15 @@ class MoMgrImpl : public MoManager {
                              uint32_t *count,
                              DalDmlIntf *dmi,
                              MoMgrTables tbl);
+
   /**
    * @brief  Duplicates the input configkeyval including the key and val.
    * based on the tbl specified.
    *
    * @param[in]  okey   Output Configkeyval - allocated within the function
    * @param[in]  req    Input ConfigKeyVal to be duplicated.
-   * @param[in]  tbl    specifies if the val structure belongs to the main table/ controller table or rename table.
+   * @param[in]  tbl    specifies if the val structure belongs to the main table/
+   * controller table or rename table.
    *
    * @retval         UPLL_RC_SUCCESS      Successfull completion.
    * @retval         UPLL_RC_ERR_GENERIC  Failure case.
@@ -904,12 +957,12 @@ class MoMgrImpl : public MoManager {
    *
    **/
   virtual bool FilterAttributes(void *&val1,
-                        void *val2,
-                        bool audit_status,
-                        unc_keytype_operation_t op) {
-  if (op != UNC_OP_CREATE)
-    return CompareValidValue(val1, val2, audit_status);
-  return false;
+                                void *val2,
+                                bool audit_status,
+                                unc_keytype_operation_t op) {
+    if (op != UNC_OP_CREATE)
+      return CompareValidValue(val1, val2, audit_status);
+    return false;
   }
   /**
    * @brief  Compares the valid value between two database records.
@@ -918,7 +971,8 @@ class MoMgrImpl : public MoManager {
    *
    * @param[in/out]  val1   first record value instance.
    * @param[in]      val2   second record value instance.
-   * @param[in]      audit  if true, CompareValidValue called from audit process.
+   * @param[in]      audit  if true, CompareValidValue called
+   * from audit process.
    *
    **/
   virtual bool CompareValidValue(void *&val1,
@@ -928,7 +982,7 @@ class MoMgrImpl : public MoManager {
   virtual upll_rc_t PopulateDriverDeleteCkv(ConfigKeyVal *&vnpCkv,
                                             DalDmlIntf *dmi,
                                             upll_keytype_datatype_t dt_type) {
-  return UPLL_RC_SUCCESS; }
+    return UPLL_RC_SUCCESS; }
 
   /**
    * @brief      Method to get renamed controller key from unc key.
@@ -942,12 +996,13 @@ class MoMgrImpl : public MoManager {
    * @retval         UPLL_RC_SUCCESS      Successfull completion.
    * @retval         UPLL_RC_ERR_GENERIC  Failure case.
    */
-  virtual upll_rc_t GetRenamedControllerKey(ConfigKeyVal *ikey,
-                                       upll_keytype_datatype_t dt_type,
-                                       DalDmlIntf *dmi,
-                                       controller_domain *ctrlr_dom = NULL) {
-  return UPLL_RC_SUCCESS;
-  }
+  virtual upll_rc_t GetRenamedControllerKey
+      (ConfigKeyVal *ikey,
+       upll_keytype_datatype_t dt_type,
+       DalDmlIntf *dmi,
+       controller_domain *ctrlr_dom = NULL) {
+        return UPLL_RC_SUCCESS;
+      }
   /**
    * @brief      Method to get a configkeyval of a specified keytype from
    * an input configkeyval
@@ -991,6 +1046,7 @@ class MoMgrImpl : public MoManager {
                          DalDmlIntf *dmi,
                          MoMgrTables tbl = MAINTBL);
   upll_rc_t DeleteChildren(ConfigKeyVal *ikey,
+                           ConfigKeyVal *pkey,
                            upll_keytype_datatype_t dt_type,
                            DalDmlIntf *dmi,
                            MoMgrTables tbl = MAINTBL);
@@ -1018,6 +1074,7 @@ class MoMgrImpl : public MoManager {
                             upll_keytype_datatype_t dest_cfg,
                             upll_keytype_datatype_t src_cfg,
                             DalDmlIntf *dmi,
+                            IpcReqRespHeader *req,
                             MoMgrTables tbl = MAINTBL);
   upll_rc_t UpdateConfigDB(ConfigKeyVal *ikey,
                            upll_keytype_datatype_t dt_type,
@@ -1053,12 +1110,12 @@ class MoMgrImpl : public MoManager {
    *
    */
   upll_rc_t SendIpcReq(uint32_t session_id,
-                      uint32_t config_id,
-                      unc_keytype_operation_t op,
-                      upll_keytype_datatype_t dt_type,
-                      ConfigKeyVal *&ckv,
-                      controller_domain_t *ctrlr_dom,
-                      IpcResponse *ipc_resp);
+                       uint32_t config_id,
+                       unc_keytype_operation_t op,
+                       upll_keytype_datatype_t dt_type,
+                       ConfigKeyVal *&ckv,
+                       controller_domain_t *ctrlr_dom,
+                       IpcResponse *ipc_resp);
   virtual upll_rc_t EnqueCfgNotification(unc_keytype_operation_t op,
                                          upll_keytype_datatype_t dt_type,
                                          ConfigKeyVal *ctrlr_key);
@@ -1075,7 +1132,8 @@ class MoMgrImpl : public MoManager {
   /**
    * @brief      Method used to Delete the Values in the specified key type.
    *
-   * @param[in]  req                        contains first 8 fields of input request structure
+   * @param[in]  req                        contains first 8 fields of input
+   *                                        request structure
    * @param[in]  ikey                       key and value structure
    * @param[in]  dmi                        Pointer to DalDmlIntf Class.
    *
@@ -1091,7 +1149,8 @@ class MoMgrImpl : public MoManager {
   /**
    * @brief      Method used to Update the Values in the specified key type.
    *
-   * @param[in]  req                        contains first 8 fields of input request structure
+   * @param[in]  req                        contains first 8 fields of
+   *                                        input request structure
    * @param[in]  ikey                       key and value structure
    * @param[in]  dmi                        Pointer to DalDmlIntf Class.
    *
@@ -1106,7 +1165,8 @@ class MoMgrImpl : public MoManager {
    * @brief     Method used to Rename the VTN and Vnodes during IMPORT operation
    *            when conflicting with corresponding objects in the UNC.
    *
-   * @param[in]  req                         contains first 8 fields of input request structure
+   * @param[in]  req                         contains first 8 fields of
+   *                                         input request structure
    * @param[in]  key                         key and value structure
    * @param[in]  dmi                         Pointer to DalDmlIntf Class.
    * @param[in]  ctrlr_id                    Controller Id.
@@ -1120,7 +1180,8 @@ class MoMgrImpl : public MoManager {
                              DalDmlIntf *dmi,
                              const char *ctrlr_id);
 
-  /* @brief         Read the configuration either from RDBMS and/or from the controller
+  /* @brief         Read the configuration either from RDBMS
+   *                and/or from the controller
    *
    * @param[in]     req    Pointer to IpcResResHeader
    * @param[in/out] ikey   Pointer to the ConfigKeyVal Structure
@@ -1192,9 +1253,9 @@ class MoMgrImpl : public MoManager {
    *
    **/
   virtual upll_rc_t ReadInfoFromDB(IpcReqRespHeader *header,
-                                        ConfigKeyVal* ikey,
-                                        DalDmlIntf *dmi,
-                                        controller_domain *ctrlr_dom);
+                                   ConfigKeyVal* ikey,
+                                   DalDmlIntf *dmi,
+                                   controller_domain *ctrlr_dom);
 
   /* @brief     To control operation on key types
    *
@@ -1212,19 +1273,23 @@ class MoMgrImpl : public MoManager {
   virtual upll_rc_t ControlMo(IpcReqRespHeader *header,
                               ConfigKeyVal *ikey,
                               DalDmlIntf *dmi) {
-  return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT;
+    return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT;
   }
 
   virtual upll_rc_t TxVote(unc_key_type_t keytype,
                            DalDmlIntf *dmi,
                            ConfigKeyVal **err_ckv);
-  virtual upll_rc_t TxVoteCtrlrStatus(unc_key_type_t keytype,
-                                      list<CtrlrVoteStatus*> *ctrlr_vote_status,
-                                      DalDmlIntf *dmi);
+  virtual upll_rc_t TxVoteCtrlrStatus
+      (unc_key_type_t keytype,
+       list<CtrlrVoteStatus*> *ctrlr_vote_status,
+       DalDmlIntf *dmi);
 
   /**
-   * @brief  Update controller with the new created / updated / deleted configuration
-   *                   between the Candidate and the Running configuration
+   * @brief                                    Update controller with the new
+   *                                           created / updated /
+   *                                           deleted configuration
+   *                                           between the Candidate and
+   *                                           the Running configuration
    *
    * @param[in]  keytype                        Specifies the keytype
    * @param[in]  session_id                     Ipc client session id
@@ -1261,7 +1326,8 @@ class MoMgrImpl : public MoManager {
   }
 
   /**
-   * @brief     Method used to Copy the datas from IMPORT to CANDIDATE Datatbase
+   * @brief     Method used to Copy the datas from IMPORT to
+   *            CANDIDATE Datatbase
    *
    * @param[in]  key_type                    unc key type.
    * @param[in]  ctrlr_id                    Controller Id.
@@ -1306,14 +1372,15 @@ class MoMgrImpl : public MoManager {
    * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Instance specified does not exist.
    * @retval  UPLL_RC_ERR_INSTANCE_EXISTS        Instance specified already exist.
    */
-  virtual upll_rc_t AuditUpdateController(unc_key_type_t keytype,
-                                          const char *ctrlr_id,
-                                          uint32_t session_id,
-                                          uint32_t config_id,
-                                          uuc::UpdateCtrlrPhase phase,
-                                          bool *ctrlr_affected,
-                                          DalDmlIntf *dmi);
-
+  virtual upll_rc_t AuditUpdateController
+      (unc_key_type_t keytype,
+       const char *ctrlr_id,
+       uint32_t session_id,
+       uint32_t config_id,
+       uuc::UpdateCtrlrPhase phase,
+       DalDmlIntf *dmi,
+       ConfigKeyVal **err_ckv,
+       KTxCtrlrAffectedState *ctrlr_affected);
   /**
    * @brief  updates the config status of errored objects returned by the
    *         controller as invalid.
@@ -1375,6 +1442,9 @@ class MoMgrImpl : public MoManager {
                              DalDmlIntf *dmi);
   virtual upll_rc_t CopyRunningToStartup(unc_key_type_t kt,
                                          DalDmlIntf *dmi);
+  virtual upll_rc_t ClearConfiguration(unc_key_type_t kt,
+                                       DalDmlIntf *dmi,
+                                       upll_keytype_datatype_t cfg_type);
   virtual upll_rc_t ClearStartup(unc_key_type_t kt,
                                  DalDmlIntf *dmi);
   /* updates both candidate and running from startup */
@@ -1383,7 +1453,8 @@ class MoMgrImpl : public MoManager {
   virtual upll_rc_t CopyStartupToCandidate(unc_key_type_t kt,
                                            DalDmlIntf *dmi);
   virtual upll_rc_t CopyRunningToCandidate(unc_key_type_t kt,
-                                           DalDmlIntf *dmi);
+                                           DalDmlIntf *dmi,
+                                           unc_keytype_operation_t op);
   virtual upll_rc_t IsCandidateDirty(unc_key_type_t kt,
                                      bool *dirty,
                                      DalDmlIntf *dmi);
@@ -1413,8 +1484,8 @@ class MoMgrImpl : public MoManager {
                                   DalDmlIntf *dmi,
                                   const char *ctrlr_id,
                                   bool &renamed) {
-  UPLL_FUNC_TRACE;
-  return UPLL_RC_ERR_GENERIC;
+    UPLL_FUNC_TRACE;
+    return UPLL_RC_ERR_GENERIC;
   }
 
   /**
@@ -1428,7 +1499,8 @@ class MoMgrImpl : public MoManager {
    *              new VBridge name into the vlink table.
    *
    *
-   * @param[in]  req                         contains first 8 fields of input request structure*
+   * @param[in]  req                         contains first 8 fields of
+   *                                         input request structure*
    * @param[in]  rename_info                 key and value structure.
    * @param[in]  renamed                     Flag for Already renamed or not.
    * @param[in]  dmi                         Pointer to DalDmlIntf Class.
@@ -1437,10 +1509,10 @@ class MoMgrImpl : public MoManager {
    * @retval     UPLL_RC_ERR_GENERIC         Failure case.
    */
   virtual upll_rc_t UpdateTables(IpcReqRespHeader *req,
-                                  ConfigKeyVal *&rename_info,
-                                  bool &renamed,
-                                  DalDmlIntf *dmi,
-                                  bool  &no_rename);
+                                 ConfigKeyVal *&rename_info,
+                                 bool &renamed,
+                                 DalDmlIntf *dmi,
+                                 bool  &no_rename);
 
   /**
    * @brief     Method used in rename opertaion while update the new name into the tables
@@ -1459,12 +1531,15 @@ class MoMgrImpl : public MoManager {
                                      MoMgrTables tbl) = 0;
 
   /**
-   * @brief     Method used in rename opertaion while update the new name into the tables.
-   *            This method getting the full key informtion from the Database and Update the
+   * @brief     Method used in rename opertaion while
+   *            update the new name into the tables.
+   *            This method getting the full key informtion
+   *            from the Database and Update the
    *            new name and set the rename flag accordingly.
    *
    *            Ex
-   *              While renaming the VTN name in VBR_IF, we need the full key to update the
+   *              While renaming the VTN name in VBR_IF,
+   *              we need the full key to update the
    *              VBR_IF table and set the rename flag accordingly.
    *
    *
@@ -1484,8 +1559,10 @@ class MoMgrImpl : public MoManager {
 
 
   /**
-   * @brief     Method used in rename opertaion while update the new name into the tables.
-   *            Based on the Key type this function will update the new name into the table.
+   * @brief     Method used in rename opertaion while update
+   *            the new name into the tables.
+   *            Based on the Key type this function will update
+   *            the new name into the table.
    *
    * @param[in]  ikey                        key and value structure.
    * @param[in]  data_type                   Database.
@@ -1514,7 +1591,8 @@ class MoMgrImpl : public MoManager {
 
 
   /**
-   * @brief     Method used to update the New name for the vnodes which presents in
+   * @brief     Method used to update the New name for the
+   *            vnodes which presents in
    *            the Vlink Table.
    *
    * @param[in]  rename_info                 key and value structure.
@@ -1563,7 +1641,7 @@ class MoMgrImpl : public MoManager {
   virtual upll_rc_t CheckVnodeInfo(ConfigKeyVal *ikey,
                                    upll_keytype_datatype_t dt_type,
                                    DalDmlIntf *dmi) {
-  return UPLL_RC_ERR_GENERIC;
+    return UPLL_RC_ERR_GENERIC;
   }
 
   /*
@@ -1593,7 +1671,7 @@ class MoMgrImpl : public MoManager {
    * @retval UPLL_RC_SUCCESS       Successful
    */
   virtual upll_rc_t CreateVnodeConfigKey(ConfigKeyVal *ikey,
-                                 ConfigKeyVal *&okey) {
+                                         ConfigKeyVal *&okey) {
     return UPLL_RC_ERR_GENERIC;
   }
 
@@ -1612,7 +1690,7 @@ class MoMgrImpl : public MoManager {
    * @retval  UNC_CS_UNKNOWN State before the exact status of configuration is known.
    */
   unc_keytype_configstatus_t GetConsolidatedCsStatus(
-                                list< unc_keytype_configstatus_t > cs_status);
+      list< unc_keytype_configstatus_t > cs_status);
 
   /**
    * @brief  compute the consolidated configstatus between all the controllers and current controller.
@@ -1627,10 +1705,11 @@ class MoMgrImpl : public MoManager {
    *     pertaining to this configuration
    * @retval  UNC_CS_UNKNOWN State before the exact status of configuration is known.
    */
-  unc_keytype_configstatus_t ComputeStatus(unc_keytype_configstatus_t db_status,
-                                          unc_keytype_configstatus_t cs_status);
+  unc_keytype_configstatus_t ComputeStatus
+      (unc_keytype_configstatus_t db_status,
+       unc_keytype_configstatus_t cs_status);
   virtual upll_rc_t SetConsolidatedStatus(ConfigKeyVal *ikey,
-                                  DalDmlIntf *dmi) {
+                                          DalDmlIntf *dmi) {
     return UPLL_RC_SUCCESS;
   }
 
@@ -1652,27 +1731,28 @@ class MoMgrImpl : public MoManager {
    *
    */
   virtual upll_rc_t UpdateControllerTableForVtn(uint8_t *vtn_name,
-                                        controller_domain *ctrlr_dom,
-                                        unc_keytype_operation_t op,
-                                        upll_keytype_datatype_t dt_type,
-                                        DalDmlIntf *dmi,
-                                        uint8_t flag) {
+                                                controller_domain *ctrlr_dom,
+                                                unc_keytype_operation_t op,
+                                                upll_keytype_datatype_t dt_type,
+                                                DalDmlIntf *dmi,
+                                                uint8_t flag) {
     UPLL_FUNC_TRACE
-    return UPLL_RC_ERR_GENERIC;
+        return UPLL_RC_ERR_GENERIC;
   }
 
-  virtual upll_rc_t SetVlinkPortmapConfiguration(ConfigKeyVal *ikey,
-                                               upll_keytype_datatype_t dt_type,
-                                               DalDmlIntf *dmi,
-                                               InterfacePortMapInfo flag,
-                                               unc_keytype_operation_t oper) {
-  return UPLL_RC_ERR_GENERIC;
-}
+  virtual upll_rc_t SetVlinkPortmapConfiguration
+      (ConfigKeyVal *ikey,
+       upll_keytype_datatype_t dt_type,
+       DalDmlIntf *dmi,
+       InterfacePortMapInfo flag,
+       unc_keytype_operation_t oper) {
+        return UPLL_RC_ERR_GENERIC;
+      }
 
   virtual upll_rc_t RestorePOMInCtrlTbl(ConfigKeyVal *ikey,
-                                             upll_keytype_datatype_t dt_type,
-                                             MoMgrTables tbl,
-                                             DalDmlIntf* dmi) {
+                                        upll_keytype_datatype_t dt_type,
+                                        MoMgrTables tbl,
+                                        DalDmlIntf* dmi) {
     UPLL_FUNC_TRACE;
     return UPLL_RC_SUCCESS;
   }
@@ -1680,18 +1760,18 @@ class MoMgrImpl : public MoManager {
    * @Brief This API is to Dump the local rename's structure.
    */
   void DumpRenameInfo(ConfigKeyVal *ikey);
-   /**
-     * @brief  returns the controller name from ConfigKeyVal
-     *
-     * @param[in] ikey   ConfigKeyVal pointer
-     *
-     * @retval uint8_t  pointer
-     * @retval NULL     if ConfigKeyVal is empty
-     */
-    virtual upll_rc_t GetControllerDomainId(ConfigKeyVal *ikey,
-                                            controller_domain_t *ctrlr_dom) {
-     return UPLL_RC_ERR_GENERIC;
-    }
+  /**
+   * @brief  returns the controller name from ConfigKeyVal
+   *
+   * @param[in] ikey   ConfigKeyVal pointer
+   *
+   * @retval uint8_t  pointer
+   * @retval NULL     if ConfigKeyVal is empty
+   */
+  virtual upll_rc_t GetControllerDomainId(ConfigKeyVal *ikey,
+                                          controller_domain_t *ctrlr_dom) {
+    return UPLL_RC_ERR_GENERIC;
+  }
   virtual upll_rc_t IsHostAddrAndPrefixLenInUse(ConfigKeyVal *ckv,
                                                 DalDmlIntf *dmi,
                                                 IpcReqRespHeader *req) {
@@ -1700,16 +1780,16 @@ class MoMgrImpl : public MoManager {
   virtual upll_rc_t IsLogicalPortAndVlanIdInUse(ConfigKeyVal *ckv,
                                                 DalDmlIntf *dmi,
                                                 IpcReqRespHeader *req) {
-  return UPLL_RC_SUCCESS;
+    return UPLL_RC_SUCCESS;
   };
   virtual upll_rc_t EnableAdminStatus(ConfigKeyVal *ikey,
                                       DalDmlIntf *dmi,
                                       IpcReqRespHeader *req) {
-  return UPLL_RC_SUCCESS;
+    return UPLL_RC_SUCCESS;
   };
   virtual upll_rc_t IsAdminStatusEnable(ConfigKeyVal *ikey,
-                                      DalDmlIntf *dmi) {
-  return UPLL_RC_SUCCESS;
+                                        DalDmlIntf *dmi) {
+    return UPLL_RC_SUCCESS;
   };
   virtual upll_rc_t DeleteChildrenPOM(ConfigKeyVal *ikey,
                                       upll_keytype_datatype_t dt_type,
@@ -1735,7 +1815,11 @@ class MoMgrImpl : public MoManager {
   upll_rc_t Getvalstnum(ConfigKeyVal *&ikey,
                         uui::IpctSt::IpcStructNum &struct_num);
   upll_rc_t Swapvaltokey(ConfigKeyVal *&ikey,
-                        uint8_t rename_flag);
+                         uint8_t rename_flag);
+  upll_rc_t CheckExistenceInRenameTable(ConfigKeyVal *&req,
+                                        upll_keytype_datatype_t dt_type,
+                                        unc_key_type_t instance_key_type,
+                                        DalDmlIntf *dmi);
   /**
    * @brief      Method to get a configkeyval of the parent keytype
    *
@@ -1764,27 +1848,51 @@ class MoMgrImpl : public MoManager {
                              upll_keytype_datatype_t dt_type,
                              MoMgrTables tbl = MAINTBL) = 0;
 
+  /* VlanmapOnBoundary: Handle all boundary vlanmap request */
+  virtual upll_rc_t BoundaryVlanmapReq
+      (IpcReqRespHeader *req,
+       ConfigKeyVal *ikey, ConfigKeyVal *db_vlink,
+       ConfigKeyVal *vlanmap_ckv, DalDmlIntf *dmi) {
+        return UPLL_RC_SUCCESS;
+      }
+
+  /* @brief      Returns portmap information if portmap is valid
+   *             Else returns NULL for portmap
+   *
+   * @param[in]   ikey     Pointer to ConfigKeyVal
+   * @param[out]  valid_pm portmap is valid
+   * @param[out]  pm       pointer to portmap informtation if valid_pm
+   *
+   * @retval  UPLL_RC_SUCCESS      Completed successfully.
+   * @retval  UPLL_RC_ERR_GENERIC  Generic failure.
+   *
+   **/
+  virtual upll_rc_t GetPortMap(ConfigKeyVal *ikey, uint8_t &valid_pm,
+                               val_port_map_t *&pm, uint8_t &valid_admin,
+                               uint8_t &admin_status) {
+    return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT;
+  }
 };  // class MoMgrImpl
 }  // namespace kt_momgr
 }  // namespace upll
 }  // namespace unc
 
 namespace std {
-  using unc::upll::kt_momgr::key_vnode_t;
-  template<>
-  struct less<key_vnode_t>  {
-    bool operator()(const key_vnode_t &keyvnode1,
-                       const key_vnode_t keyvnode2) const {
-      int ret = strcmp((const char *)keyvnode1.vtn_key.vtn_name,
+using unc::upll::kt_momgr::key_vnode_t;
+template<>
+struct less<key_vnode_t>  {
+  bool operator()(const key_vnode_t &keyvnode1,
+                  const key_vnode_t keyvnode2) const {
+    int ret = strcmp((const char *)keyvnode1.vtn_key.vtn_name,
                      (const char *)keyvnode2.vtn_key.vtn_name);
-      if (ret == 0) {
-        return (strcmp((const char *)keyvnode1.vnode_name,
+    if (ret == 0) {
+      return (strcmp((const char *)keyvnode1.vnode_name,
                      (const char*)keyvnode2.vnode_name) < 0);
-      } else {
-        return (ret < 0);
-      }
+    } else {
+      return (ret < 0);
     }
-  };
-}
+  }
+};
+}  // namespace std
 
 #endif
index 174129fdbc891346cf86ffe0efdc650e82941434..527e835c98e8644dc3065d9f753fa0a419f15209 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -40,7 +40,7 @@ bool MoManager::GetMaxInstanceCount(const char *ctrlr_name,
   unc::capa::CapaIntf *capa = reinterpret_cast<unc::capa::CapaIntf *>(
       pfc::core::Module::getInstance("capa"));
   if (capa == NULL) {
-    pfc_log_fatal("%s:%d: CapaModule is not found", __FUNCTION__, __LINE__);
+    UPLL_LOG_FATAL("CapaModule is not found");
     return false;
   }
 
@@ -68,9 +68,9 @@ bool MoManager::GetCreateCapability(const char *ctrlr_name,
   }
 
   unc::capa::CapaModule *capa = reinterpret_cast<unc::capa::CapaModule *>(
-    pfc::core::Module::getInstance("capa"));
+      pfc::core::Module::getInstance("capa"));
   if (capa == NULL) {
-    pfc_log_fatal("%s:%d: CapaModule is not found", __FUNCTION__, __LINE__);
+    UPLL_LOG_FATAL("CapaModule is not found");
     return false;
   }
 
@@ -97,9 +97,9 @@ bool MoManager::GetUpdateCapability(const char *ctrlr_name,
   }
 
   unc::capa::CapaModule *capa = reinterpret_cast<unc::capa::CapaModule *>(
-    pfc::core::Module::getInstance("capa"));
+      pfc::core::Module::getInstance("capa"));
   if (capa == NULL) {
-    pfc_log_fatal("%s:%d: CapaModule is not found", __FUNCTION__, __LINE__);
+    UPLL_LOG_FATAL("CapaModule is not found");
     return false;
   }
 
@@ -126,9 +126,9 @@ bool MoManager::GetReadCapability(const char *ctrlr_name,
   }
 
   unc::capa::CapaModule *capa = reinterpret_cast<unc::capa::CapaModule *>(
-    pfc::core::Module::getInstance("capa"));
+      pfc::core::Module::getInstance("capa"));
   if (capa == NULL) {
-    pfc_log_fatal("%s:%d: CapaModule is not found", __FUNCTION__, __LINE__);
+    UPLL_LOG_FATAL("CapaModule is not found");
     return false;
   }
 
@@ -154,9 +154,9 @@ bool MoManager::GetStateCapability(const char *ctrlr_name,
   }
 
   unc::capa::CapaModule *capa = reinterpret_cast<unc::capa::CapaModule *>(
-    pfc::core::Module::getInstance("capa"));
+      pfc::core::Module::getInstance("capa"));
   if (capa == NULL) {
-    pfc_log_fatal("CapaModule is not found");
+    UPLL_LOG_FATAL("CapaModule is not found");
     return false;
   }
 
index 498e72c5edae1c10b38b86e6167b0af17ef127a7..277fc2740d4b7b99dd0dba5010cc09861db5510b 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -58,13 +58,13 @@ class MoCfgServiceIntf {
  public:
   virtual ~MoCfgServiceIntf() {}
   virtual upll_rc_t CreateMo(IpcReqRespHeader *req, ConfigKeyVal *key,
-                          DalDmlIntf *dmi) = 0;
+                             DalDmlIntf *dmi) = 0;
   // domain_id is guaranteed for VTN, for vnode it might be there (driver team
   // need to confirm), for others it is optional and not present does not mean
   // no domain id.
   virtual upll_rc_t CreateImportMo(IpcReqRespHeader *req, ConfigKeyVal *key,
-                                DalDmlIntf *dmi, const char *ctrlr_id,
-                                const char *domain_id) = 0;
+                                   DalDmlIntf *dmi, const char *ctrlr_id,
+                                   const char *domain_id) = 0;
   virtual upll_rc_t DeleteMo(IpcReqRespHeader *req, ConfigKeyVal *key,
                              DalDmlIntf *dmi) = 0;
   virtual upll_rc_t UpdateMo(IpcReqRespHeader *req, ConfigKeyVal *key,
@@ -95,16 +95,22 @@ enum UpdateCtrlrPhase {
   kUpllUcpDelete2
 };
 
+enum KTxCtrlrAffectedState {
+  kCtrlrAffectedNoDiff =  0,  // There is no diff in UNC and Ctrlr Configuration
+  kCtrlrAffectedOnlyCSDiff,   // No config diff, only diff in the config status
+  kCtrlrAffectedConfigDiff  // There is a diff in the configuration,
+  // add the controller to affected ctrlr list
+};
 // Interface class for normal transaction operations
 class MoTxServiceIntf {
  public:
   virtual ~MoTxServiceIntf() {}
   virtual upll_rc_t TxUpdateController(unc_key_type_t keytype,
-                                    uint32_t session_id, uint32_t config_id,
-                                    UpdateCtrlrPhase phase,
-                                    set<string> *affected_ctrlr_set,
-                                    DalDmlIntf *dmi,
-                                    ConfigKeyVal **err_ckv) = 0;
+                                       uint32_t session_id, uint32_t config_id,
+                                       UpdateCtrlrPhase phase,
+                                       set<string> *affected_ctrlr_set,
+                                       DalDmlIntf *dmi,
+                                       ConfigKeyVal **err_ckv) = 0;
   virtual upll_rc_t TxVote(unc_key_type_t keytype, DalDmlIntf *dmi,
                            ConfigKeyVal **err_ckv) = 0;
   virtual upll_rc_t TxVoteCtrlrStatus(
@@ -123,8 +129,8 @@ class MoTxServiceIntf {
 
   virtual upll_rc_t TxUpdateDtState(unc_key_type_t ktype,
                                     uint32_t session_id,
-                                     uint32_t config_id,
-                                     DalDmlIntf *dmi) {
+                                    uint32_t config_id,
+                                    DalDmlIntf *dmi) {
     UPLL_LOG_DEBUG("kt: %u", ktype);
     return UPLL_RC_SUCCESS;
   }
@@ -135,13 +141,16 @@ class MoTxServiceIntf {
 class MoAuditServiceIntf {
  public:
   virtual ~MoAuditServiceIntf() {}
-  virtual upll_rc_t AuditUpdateController(unc_key_type_t keytype,
-                                          const char *ctrlr_id,
-                                          uint32_t session_id,
-                                          uint32_t config_id,
-                                          UpdateCtrlrPhase phase,
-                                          bool *ctrlr_affected,
-                                          DalDmlIntf *dmi) = 0;
+  virtual upll_rc_t AuditUpdateController
+      (unc_key_type_t keytype,
+       const char *ctrlr_id,
+       uint32_t session_id,
+       uint32_t config_id,
+       UpdateCtrlrPhase phase,
+       DalDmlIntf *dmi,
+       ConfigKeyVal **err_ckv,
+       KTxCtrlrAffectedState *ctrlr_affected) = 0;
+
   // virtual upll_rc_t AuditVote(const char *ctrlr_id) = 0;
   virtual upll_rc_t AuditVoteCtrlrStatus(unc_key_type_t keytype,
                                          CtrlrVoteStatus *vote_satus,
@@ -179,10 +188,13 @@ class MoDbServiceIntf {
   virtual ~MoDbServiceIntf() {}
   virtual upll_rc_t CopyRunningToStartup(unc_key_type_t kt,
                                          DalDmlIntf *dmi) = 0;
+  virtual upll_rc_t ClearConfiguration(unc_key_type_t kt, DalDmlIntf *dmi,
+                                       upll_keytype_datatype_t cfg_type) = 0;
   virtual upll_rc_t ClearStartup(unc_key_type_t kt, DalDmlIntf *dmi) = 0;
   virtual upll_rc_t LoadStartup(unc_key_type_t kt, DalDmlIntf *dmi) = 0;
   virtual upll_rc_t CopyRunningToCandidate(unc_key_type_t kt,
-                                           DalDmlIntf *dmi) = 0;
+                                           DalDmlIntf *dmi,
+                                           unc_keytype_operation_t op) = 0;
   virtual upll_rc_t IsCandidateDirty(unc_key_type_t kt, bool *dirty,
                                      DalDmlIntf *dmi) = 0;
 };
@@ -190,140 +202,147 @@ class MoDbServiceIntf {
 class MoManager : public MoCfgServiceIntf, public MoTxServiceIntf,
     public MoAuditServiceIntf, public MoImportServiceIntf,
     public MoDbServiceIntf {
- public:
-  static const uint32_t kMaxReadBulkCount = 10000;
    public:
+      static const uint32_t kMaxReadBulkCount = 10000;
 
-  virtual ~MoManager() {}
+      virtual ~MoManager() {}
 
-  const MoManager *GetMoManager(unc_key_type_t kt);
-  // virtual void UpplNotificationHandler(pfc_event_t event, pfc_ptr_t arg);
-  // virtual void DriverNotificationHandler(pfc_event_t event, pfc_ptr_t arg);
-  virtual upll_rc_t IsKeyInUse(upll_keytype_datatype_t datatype,
-                               const ConfigKeyVal *ckv, bool *in_use,
-                               DalDmlIntf *dmi) {
-    *in_use = true;
-    return UPLL_RC_ERR_GENERIC;
-  }
+      const MoManager *GetMoManager(unc_key_type_t kt);
+      // virtual void UpplNotificationHandler(pfc_event_t event, pfc_ptr_t arg);
+      // virtual void DriverNotificationHandler(pfc_event_t event,
+      // pfc_ptr_t arg);
+      virtual upll_rc_t IsKeyInUse(upll_keytype_datatype_t datatype,
+                                   const ConfigKeyVal *ckv, bool *in_use,
+                                   DalDmlIntf *dmi) {
+        *in_use = true;
+        return UPLL_RC_ERR_GENERIC;
+      }
 
-  /**
-   * @brief      Method to get a configkeyval of a specified keytype from
-   * an input configkeyval
-   *
-   * @param[in/out]  okey                 pointer to output ConfigKeyVal
-   * @param[in]      parent_key           pointer to the configkeyval from
-   * which the output configkey val is initialized.
-   *
-   * @retval         UPLL_RC_SUCCESS      Successfull completion.
-   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-   */
-  virtual upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey,
-                                      ConfigKeyVal *parent_key) = 0;
+      /**
+       * @brief      Method to get a configkeyval of a specified keytype from
+       * an input configkeyval
+       *
+       * @param[in/out]  okey                 pointer to output ConfigKeyVal
+       * @param[in]      parent_key           pointer to the configkeyval from
+       * which the output configkey val is initialized.
+       *
+       * @retval         UPLL_RC_SUCCESS      Successfull completion.
+       * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+       */
+      virtual upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey,
+                                          ConfigKeyVal *parent_key) = 0;
 
-  /**
-   * @brief      Method to get a configkeyval of the parent keytype
-   *
-   * @param[in/out]  okey           pointer to parent ConfigKeyVal
-   * @param[in]      ikey           pointer to the child configkeyval from
-   * which the parent configkey val is obtained.
-   *
-   * @retval         UPLL_RC_SUCCESS      Successfull completion.
-   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-   **/
-  virtual upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey,
-                                       ConfigKeyVal *ikey) = 0;
-  // Capabiltiy functions
-  /**
-   * @brief  Return instance count of specified key type.
-   *
-   * @param[in] ctrlr_name  controller name.
-   * @param[in] keytype     key type
-   * @param[out] instance_count  Max instance count for specified keytype.
-   * @param[in] datatype    Datatype. default is CANDIDATE
-   *
-   * @retval true   Successful
-   * @retval false  controller/keytype is not found
-   */
-  virtual bool GetMaxInstanceCount(const char *ctrlr_name,
-                   unc_key_type_t keytype,
-                   uint32_t &instance_count,
-                   upll_keytype_datatype_t datatype = UPLL_DT_CANDIDATE);
-  /**
-   * @brief  Return Attribute SUPPORTED or NOT_SUPPORTED of specified key type.
-   * 
-   * @param[in]  ctrlr_name controller name.
-   * @param[in]  version    controller version
-   * @param[in]  keytype    Key type.
-   * @param[out] instance_count  Instance count for specified keytype.
-   * @param[in]  num_attrs  Maximum attribute for specified key type
-   * @param[out] attrs      Array of SUPPORTED and NOT_SUPPORTED information
-   * @param[in] datatype    Datatype. default is CANDIDATE
-   * 
-   * @retval true   Successful
-   * @retval false  controller or keytype is not found
-   */
-  virtual bool GetCreateCapability(const char *ctrlr_name,
-                   unc_key_type_t keytype,
-                   uint32_t *instnace_count,
-                   uint32_t *num_attrs,
-                   const uint8_t **attrs,
-                   upll_keytype_datatype_t datatype = UPLL_DT_CANDIDATE);
-  /**
-   * @brief  Return Attribute SUPPORTED or NOT_SUPPORTED of specified key type.
-   * 
-   * @param[in]  ctrlr_type controller type.
-   * @param[in]  keytype    Key type.
-   * @param[in]  num_attrs  Maximum attribute for specified key type
-   * @param[out] attrs      Array of SUPPORTED and NOT_SUPPORTED information
-   * @param[in] datatype    Datatype. default is CANDIDATE
-   * 
-   * @retval true   Successful
-   * @retval false  controler or keytype is not found
-   */
-  virtual bool GetUpdateCapability(const char *ctrlr_name,
-                   unc_key_type_t keytype,
-                   uint32_t *num_attrs,
-                   const uint8_t **attrs,
-                   upll_keytype_datatype_t datatype = UPLL_DT_CANDIDATE);
-  /**
-   * @brief  Return Attribute SUPPORTED or NOT_SUPPORTED of specified key type.
-   * 
-   * @param[in]  ctrlr_name controller name.
-   * @param[in]  keytype    Key type.
-   * @param[in]  num_attrs  Maximum attribute for specified key type
-   * @param[out] attrs      Array of SUPPORTED and NOT_SUPPORTED information
-   * @param[in] datatype    Datatype. default is CANDIDATE
-   * 
-   * @retval true   Successful
-   * @retval false  controller or keytype is not found
-   */
-  virtual bool GetReadCapability(const char *ctrlr_name,
-                   unc_key_type_t keytype,
-                   uint32_t *num_attrs,
-                   const uint8_t **attrs,
-                   upll_keytype_datatype_t datatype = UPLL_DT_CANDIDATE);
-  /**
-   * @brief  Return Attribute SUPPORTED or NOT_SUPPORTED of specified key type.
-   * 
-   * @param[in]  ctrlr_name controller name.
-   * @param[in]  keytype    Key type.
-   * @param[in]  num_attrs  Maximum attribute for specified key type
-   * @param[out] attrs      Array of SUPPORTED and NOT_SUPPORTED information
-   * @param[in] datatype    Datatype. default is CANDIDATE
-   * 
-   * @retval true   Successful
-   * @retval false  controller or keytype is not found
-   */
-  virtual bool GetStateCapability(const char *ctrlr_name,
-                   unc_key_type_t keytype,
-                   uint32_t *num_attrs,
-                   const uint8_t **attrs,
-                   upll_keytype_datatype_t datatype = UPLL_DT_CANDIDATE);
- private:
-  static bool GetCtrlrTypeAndVersion(const char *ctrlr_name,
-                                     upll_keytype_datatype_t datatype,
-                                     unc_keytype_ctrtype_t *ctrlr_type,
-                                     std::string *version);
-};
+      /**
+       * @brief      Method to get a configkeyval of the parent keytype
+       *
+       * @param[in/out]  okey           pointer to parent ConfigKeyVal
+       * @param[in]      ikey           pointer to the child configkeyval from
+       * which the parent configkey val is obtained.
+       *
+       * @retval         UPLL_RC_SUCCESS      Successfull completion.
+       * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+       **/
+      virtual upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey,
+                                           ConfigKeyVal *ikey) = 0;
+      // Capabiltiy functions
+      /**
+       * @brief  Return instance count of specified key type.
+       *
+       * @param[in] ctrlr_name  controller name.
+       * @param[in] keytype     key type
+       * @param[out] instance_count  Max instance count for specified keytype.
+       * @param[in] datatype    Datatype. default is CANDIDATE
+       *
+       * @retval true   Successful
+       * @retval false  controller/keytype is not found
+       */
+      virtual bool GetMaxInstanceCount(const char *ctrlr_name,
+                                       unc_key_type_t keytype,
+                                       uint32_t &instance_count,
+                                       upll_keytype_datatype_t datatype =
+                                       UPLL_DT_CANDIDATE);
+      /**
+       * @brief  Return Attribute SUPPORTED or NOT_SUPPORTED of
+       *         specified key type.
+       *
+       * @param[in]  ctrlr_name controller name.
+       * @param[in]  version    controller version
+       * @param[in]  keytype    Key type.
+       * @param[out] instance_count  Instance count for specified keytype.
+       * @param[in]  num_attrs  Maximum attribute for specified key type
+       * @param[out] attrs      Array of SUPPORTED and NOT_SUPPORTED information
+       * @param[in] datatype    Datatype. default is CANDIDATE
+       *
+       * @retval true   Successful
+       * @retval false  controller or keytype is not found
+       */
+      virtual bool GetCreateCapability(const char *ctrlr_name,
+                                       unc_key_type_t keytype,
+                                       uint32_t *instnace_count,
+                                       uint32_t *num_attrs,
+                                       const uint8_t **attrs,
+                                       upll_keytype_datatype_t datatype =
+                                       UPLL_DT_CANDIDATE);
+      /**
+       * @brief  Return Attribute SUPPORTED or NOT_SUPPORTED of specified key type.
+       *
+       * @param[in]  ctrlr_type controller type.
+       * @param[in]  keytype    Key type.
+       * @param[in]  num_attrs  Maximum attribute for specified key type
+       * @param[out] attrs      Array of SUPPORTED and NOT_SUPPORTED information
+       * @param[in] datatype    Datatype. default is CANDIDATE
+       *
+       * @retval true   Successful
+       * @retval false  controler or keytype is not found
+       */
+      virtual bool GetUpdateCapability(const char *ctrlr_name,
+                                       unc_key_type_t keytype,
+                                       uint32_t *num_attrs,
+                                       const uint8_t **attrs,
+                                       upll_keytype_datatype_t datatype =
+                                       UPLL_DT_CANDIDATE);
+      /**
+       * @brief  Return Attribute SUPPORTED or NOT_SUPPORTED of specified key type.
+       *
+       * @param[in]  ctrlr_name controller name.
+       * @param[in]  keytype    Key type.
+       * @param[in]  num_attrs  Maximum attribute for specified key type
+       * @param[out] attrs      Array of SUPPORTED and NOT_SUPPORTED information
+       * @param[in] datatype    Datatype. default is CANDIDATE
+       *
+       * @retval true   Successful
+       * @retval false  controller or keytype is not found
+       */
+      virtual bool GetReadCapability(const char *ctrlr_name,
+                                     unc_key_type_t keytype,
+                                     uint32_t *num_attrs,
+                                     const uint8_t **attrs,
+                                     upll_keytype_datatype_t datatype =
+                                     UPLL_DT_CANDIDATE);
+      /**
+       * @brief  Return Attribute SUPPORTED or NOT_SUPPORTED of specified key type.
+       *
+       * @param[in]  ctrlr_name controller name.
+       * @param[in]  keytype    Key type.
+       * @param[in]  num_attrs  Maximum attribute for specified key type
+       * @param[out] attrs      Array of SUPPORTED and NOT_SUPPORTED information
+       * @param[in] datatype    Datatype. default is CANDIDATE
+       *
+       * @retval true   Successful
+       * @retval false  controller or keytype is not found
+       */
+      virtual bool GetStateCapability(const char *ctrlr_name,
+                                      unc_key_type_t keytype,
+                                      uint32_t *num_attrs,
+                                      const uint8_t **attrs,
+                                      upll_keytype_datatype_t datatype =
+                                      UPLL_DT_CANDIDATE);
+     private:
+      static bool GetCtrlrTypeAndVersion(const char *ctrlr_name,
+                                         upll_keytype_datatype_t datatype,
+                                         unc_keytype_ctrtype_t *ctrlr_type,
+                                         std::string *version);
+    };
 
 }  // namespace config_momgr
 }  // namespace upll
index 27f41800f4fd9c78005b2fe4d0314b457ae20699..981e0d72aa6654846300a2026f017cdaeb6f41cb 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -55,7 +55,11 @@ upll_rc_t MoMgrImpl::GetInstanceCount(ConfigKeyVal *ikey,
     return UPLL_RC_ERR_GENERIC;
   }
   result_code = DalToUpllResCode(
-      dmi->GetRecordCount((dt_type == UPLL_DT_STATE)?UPLL_DT_RUNNING:dt_type, tbl_index, dal_bind_info, count));
+      dmi->GetRecordCount((
+              dt_type == UPLL_DT_STATE)?UPLL_DT_RUNNING:dt_type,
+          tbl_index,
+          dal_bind_info,
+          count));
   delete dal_bind_info;
   return result_code;
 }
@@ -66,7 +70,7 @@ upll_rc_t MoMgrImpl::IsRenamed(ConfigKeyVal *ikey,
                                uint8_t &rename) {
   UPLL_FUNC_TRACE;
   DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutFlag | kOpInOutCtrlr
-                       | kOpInOutDomain };
+    | kOpInOutDomain };
   ConfigKeyVal *okey = NULL;
   upll_rc_t result_code;
   MoMgrTables tbl = MAINTBL;
@@ -74,15 +78,15 @@ upll_rc_t MoMgrImpl::IsRenamed(ConfigKeyVal *ikey,
    * operaton is delete and ikey has to be populated with
    * val from db.
    */
-  if (rename && 
-     ((dt_type == UPLL_DT_RUNNING) ||
-      (dt_type == UPLL_DT_AUDIT))) {
+  if (rename &&
+      ((dt_type == UPLL_DT_RUNNING) ||
+       (dt_type == UPLL_DT_AUDIT))) {
     okey = ikey;
   } else  {
     result_code = GetChildConfigKey(okey, ikey);
     if (result_code != UPLL_RC_SUCCESS) {
-       UPLL_LOG_TRACE("Returning error %d",result_code);
-       return result_code;
+      UPLL_LOG_TRACE("Returning error %d", result_code);
+      return result_code;
     }
   }
 
@@ -95,29 +99,29 @@ upll_rc_t MoMgrImpl::IsRenamed(ConfigKeyVal *ikey,
      * match and get the exact information from vtn controller
      * table
      */
-     if (ctrlr_dom.ctrlr != NULL && ctrlr_dom.domain != NULL) {
-         dbop.matchop = kOpMatchCtrlr | kOpMatchDomain; 
-         dbop.inoutop = kOpInOutFlag; 
-     }
-     tbl = CTRLRTBL;
+    if (ctrlr_dom.ctrlr != NULL && ctrlr_dom.domain != NULL) {
+      dbop.matchop = kOpMatchCtrlr | kOpMatchDomain;
+      dbop.inoutop = kOpInOutFlag;
+    }
+    tbl = CTRLRTBL;
   }
   result_code = ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop, dmi,
-                                       tbl);
+                             tbl);
   if ((result_code != UPLL_RC_SUCCESS) &&
-       (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE))  {
-    UPLL_LOG_DEBUG("Returning error code %d",result_code);
+      (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE))  {
+    UPLL_LOG_DEBUG("Returning error code %d", result_code);
     if (okey != ikey) delete okey;
     return UPLL_RC_ERR_GENERIC;
   }
   if (okey != ikey)
-    SET_USER_DATA(ikey,okey);
+    SET_USER_DATA(ikey, okey);
   GET_USER_DATA_FLAGS(okey, rename);
 #if 0
   rename &= RENAME;
 #else
-  GET_RENAME_FLAG(rename,ikey->get_key_type())
+  GET_RENAME_FLAG(rename, ikey->get_key_type())
 #endif
-  if (okey != ikey) delete okey;
+      if (okey != ikey) delete okey;
   return UPLL_RC_SUCCESS;
 }
 
@@ -136,29 +140,43 @@ upll_rc_t MoMgrImpl::RenameChildren(ConfigKeyVal *ikey,
   for (int i = 0; i < nchild; i++) {
     unc_key_type_t ktype = child[i];
     MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>
-                                (const_cast<MoManager *>(GetMoManager(ktype)));
+        (const_cast<MoManager *>(GetMoManager(ktype)));
     if (!mgr) {
       UPLL_LOG_DEBUG("Invalid mgr");
       return UPLL_RC_ERR_GENERIC;
     }
     // cout << *ikey << ktype << " " << mgr << "\n";
-    mgr->GetChildConfigKey(tkey, ikey);
+    result_code = mgr->GetChildConfigKey(tkey, ikey);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG("GetChildConfigKey failed %d", result_code);
+      return result_code;
+    }
     // cout << "Renaming keytype " << ktype << " " << *tkey << "\n";
     DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutFlag };
-    result_code = mgr->ReadConfigDB(tkey, dt_type, UNC_OP_READ, dbop, dmi, tbl);
+    result_code = mgr->ReadConfigDB(tkey,
+                                    dt_type,
+                                    UNC_OP_READ,
+                                    dbop,
+                                    dmi,
+                                    tbl);
     ConfigKeyVal *tmp = tkey;
     while (tmp != NULL) {
-      uint8_t child_rename=0;
+      uint8_t child_rename = 0;
       GET_USER_DATA_FLAGS(tmp, child_rename);
       child_rename &= RENAME;
       if (child_rename == rename) continue;
       rename &= RENAME;
       SET_USER_DATA_FLAGS(tmp, rename);
-      result_code = mgr->UpdateConfigDB(tkey, dt_type, UNC_OP_UPDATE, dmi, tbl);
+      result_code = mgr->UpdateConfigDB(tkey,
+                                        dt_type,
+                                        UNC_OP_UPDATE,
+                                        dmi,
+                                        tbl);
       if (result_code != UPLL_RC_SUCCESS) {
-         UPLL_LOG_DEBUG("UpdateConfigDB failed with error code %d",
-                                                      result_code);
-         return result_code;
+        UPLL_LOG_DEBUG("UpdateConfigDB failed with error code %d",
+                       result_code);
+        DELETE_IF_NOT_NULL(tkey);
+        return result_code;
       }
       tmp = tmp->get_next_cfg_key_val();
     }
@@ -174,57 +192,62 @@ upll_rc_t MoMgrImpl::RenameChildren(ConfigKeyVal *ikey,
 }
 
 upll_rc_t MoMgrImpl::DeleteChildren(ConfigKeyVal *ikey,
+                                    ConfigKeyVal *pkey,
                                     upll_keytype_datatype_t dt_type,
                                     DalDmlIntf *dmi,
                                     MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
-  ConfigKeyVal *tkey = NULL;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   bool fail = false;
+  unc_key_type_t ktype;
 
-  for (int i = 0; i < nchild; i++) {
-    unc_key_type_t ktype = child[i];
+  for (int i = nchild; i > 0; i--) {
+    ConfigKeyVal *tkey = NULL;
+    ktype = child[(i - 1)];
     MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>
-                          (const_cast<MoManager*>(GetMoManager(ktype)));
+        (const_cast<MoManager*>(GetMoManager(ktype)));
     if (!mgr) {
       UPLL_LOG_DEBUG("Invalid mgr %d", ktype);
       continue;
     }
-    bool kt_flag = false;
-    IS_POM_KT(ktype, kt_flag);
-    if (kt_flag) {
-      mgr->DeleteChildrenPOM(ikey, dt_type, dmi);
-      if (UPLL_RC_SUCCESS != result_code) {
-       UPLL_LOG_DEBUG("DeleteChildrenPOM failed %d", result_code);
-       return result_code;
-      }
+    result_code = mgr->GetChildConfigKey(tkey, pkey);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG("GetChildConfigKey failed %d", result_code);
+      return result_code;
     }
-    mgr->GetChildConfigKey(tkey, ikey);
     /* For deleting the vnode rename table for the vtn or vnode
      * need no to match the controller and domain
      */
     memset(tkey->get_user_data(), 0 , sizeof(key_user_data_t));
-    result_code = mgr->DeleteChildren(tkey, dt_type, dmi);
+    result_code = mgr->DeleteChildren(tkey, pkey, dt_type, dmi);
+    DELETE_IF_NOT_NULL(tkey);
+  }
+  bool kt_flag = false;
+  IS_POM_KT(GetMoMgrKeyType(MAINTBL, dt_type), kt_flag);
+  if (kt_flag) {
+    result_code = DeleteChildrenPOM(ikey, dt_type, dmi);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG("DeleteChildrenPOM failed %d", result_code);
+      return result_code;
+    }
+  } else {
     /* Delete all the tables for this momgr
      * RENAMETBL to be deleted only once */
-    for (int j = 0; j < mgr->get_ntable(); j++) {
-      if ((mgr == NULL) ||
-          (mgr->GetTable((MoMgrTables)j, dt_type) >= uudst::kDalNumTables)) {
+    for (int j = get_ntable(); j > MAINTBL; j--) {
+      if ((GetTable((MoMgrTables)(j - 1), dt_type) >= uudst::kDalNumTables)) {
         continue;
       }
       /* Match Controller and domain is not need for delete children*/
       DbSubOp dbop = {kOpNotRead, kOpMatchNone, kOpInOutNone};
-      result_code = mgr->UpdateConfigDB(tkey, dt_type, UNC_OP_DELETE, dmi, &dbop,
-                                        (MoMgrTables) j);
+      result_code = UpdateConfigDB(ikey, dt_type, UNC_OP_DELETE, dmi, &dbop,
+                                   (MoMgrTables)(j - 1));
       result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)?
-                     UPLL_RC_SUCCESS : result_code;
+          UPLL_RC_SUCCESS : result_code;
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("DeleteChild failed with result_code %d", result_code);
         fail = true;
       }
     }
-    delete tkey;
-    tkey = NULL;
   }
   return ((fail == true) ? UPLL_RC_ERR_GENERIC : UPLL_RC_SUCCESS);
 }
@@ -233,96 +256,68 @@ upll_rc_t MoMgrImpl::RestoreChildren(ConfigKeyVal *&ikey,
                                      upll_keytype_datatype_t dest_cfg,
                                      upll_keytype_datatype_t src_cfg,
                                      DalDmlIntf *dmi,
+                                     IpcReqRespHeader *req,
                                      MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
   ConfigKeyVal *tkey = NULL;
+  ConfigKeyVal *start_ptr = NULL;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
-  bool fail = false;
+  bool restore_flag = true;
+  int index = MAINTBL;
   int i = 0;
-
   MoMgrImpl *chld_mgr = NULL;
-  unc_key_type_t chld_ktype = (unc_key_type_t)0;
   while (true) {
     unc_key_type_t ktype = (unc_key_type_t)0;
+    unc_key_type_t instance_key_type = GetMoMgrKeyType(tbl, src_cfg);
 
-    if (GetMoMgrKeyType(tbl, src_cfg) == ikey->get_key_type()) {
-      ktype = ikey->get_key_type();
+    result_code  = GetChildConfigKey(tkey, ikey);
+    if (UPLL_RC_SUCCESS != result_code) {
+      return result_code;
     }
 
-    for (int index = MAINTBL; index < MAX_MOMGR_TBLS; index++) {
-      if (table[index] == NULL)
-        continue;
-      result_code  = GetChildConfigKey(tkey, ikey);
-
-      if (UPLL_RC_SUCCESS != result_code) {
-        return result_code;
-      }
+    DbSubOp dbop = { kOpReadMultiple, kOpMatchNone,
+      kOpInOutFlag | kOpInOutCtrlr | kOpInOutDomain };
+    result_code = ReadConfigDB(tkey,
+                               src_cfg,
+                               UNC_OP_READ,
+                               dbop,
+                               dmi,
+                               (MoMgrTables)index);
+    if (UPLL_RC_SUCCESS != result_code
+        && UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+      UPLL_LOG_DEBUG("ReadConfigDB Failed");
+      DELETE_IF_NOT_NULL(tkey);
+      return result_code;
+    }
 
-      DbSubOp dbop = { kOpReadMultiple, kOpMatchNone,
-                       kOpInOutFlag | kOpInOutCtrlr | kOpInOutDomain };
-      result_code = ReadConfigDB(tkey, src_cfg, UNC_OP_READ, dbop, dmi, (MoMgrTables)index);
+    if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+      DELETE_IF_NOT_NULL(tkey);
+      return result_code;
+    }
 
-      if (UPLL_RC_SUCCESS != result_code
-           && UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
-        UPLL_LOG_DEBUG("GetControllerDomainId Failed");
-        DELETE_IF_NOT_NULL(tkey);
+    start_ptr = tkey;
+    while (tkey != NULL) {
+      result_code = CreateCandidateMo(req, tkey, dmi, restore_flag);
+      if (result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("CreateCandidateMo failed with error code %d\n",
+                       result_code);
+        DELETE_IF_NOT_NULL(start_ptr);
         return result_code;
       }
 
-      if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-        DELETE_IF_NOT_NULL(tkey);
-        continue;
-      }
-      ConfigKeyVal *tmp1 = tkey;
-      while (tkey != NULL) {
-        ConfigKeyVal *tmp = NULL;
-        result_code = DupConfigKeyVal(tmp, tkey, (MoMgrTables)index);
-        SET_USER_DATA(tmp, tkey);
-
-        if (UPLL_RC_SUCCESS != result_code) {
-           UPLL_LOG_DEBUG("DupConfiKeyVal Failed");
-        }
-        chld_ktype = tmp->get_key_type();
-        dbop.readop = kOpNotRead;
-        result_code = UpdateConfigDB(tmp, dest_cfg, UNC_OP_CREATE, dmi, &dbop, (MoMgrTables)index);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("UpdateConfigDB failed with error code %d",
-                                                      result_code);
-          DELETE_IF_NOT_NULL(tmp);
-          return result_code;
-        }
-        if ((chld_ktype == UNC_KT_VTN_FLOWFILTER_ENTRY) ||
-            (chld_ktype == UNC_KT_VBR_FLOWFILTER_ENTRY) ||
-            (chld_ktype == UNC_KT_VBRIF_FLOWFILTER_ENTRY) ||
-            (chld_ktype == UNC_KT_VRTIF_FLOWFILTER_ENTRY) ||
-            (chld_ktype == UNC_KT_VTN_POLICINGMAP) ||
-            (chld_ktype == UNC_KT_VBR_POLICINGMAP) ||
-            (chld_ktype == UNC_KT_VBRIF_POLICINGMAP)) {
-           chld_mgr = reinterpret_cast<MoMgrImpl *>
-                            (const_cast<MoManager *>(GetMoManager(chld_ktype)));
-           if (!chld_mgr) {
-             UPLL_LOG_DEBUG("Invalid mgr");
-             DELETE_IF_NOT_NULL(tmp);
-             return UPLL_RC_ERR_GENERIC;
-          }
-
-          result_code = chld_mgr->RestorePOMInCtrlTbl(tmp,
-                                                      dest_cfg,
-                                                      (MoMgrTables)index,
-                                                      dmi);
-          if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("Err in restoring POM Obj in Ctrltbl, err %d, kt%d",
-                            result_code, chld_ktype);
-            DELETE_IF_NOT_NULL(tmp);
-            return result_code;
-          }
-          chld_mgr = NULL;
-        }
-        tkey = tkey->get_next_cfg_key_val();
-        DELETE_IF_NOT_NULL(tmp);
+      result_code = CheckExistenceInRenameTable(ikey,
+                                                src_cfg,
+                                                instance_key_type,
+                                                dmi);
+      if (result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("CheckExistenceInRenameTable failed with err code %d\n",
+                       result_code);
+        DELETE_IF_NOT_NULL(start_ptr);
+        return result_code;
       }
-      DELETE_IF_NOT_NULL(tmp1);
+      tkey = tkey->get_next_cfg_key_val();
     }
+    DELETE_IF_NOT_NULL(start_ptr);
 
     if (nchild == 0) {
       return UPLL_RC_SUCCESS;
@@ -331,27 +326,202 @@ upll_rc_t MoMgrImpl::RestoreChildren(ConfigKeyVal *&ikey,
     while (true) {
       ktype = child[i];
       chld_mgr = reinterpret_cast<MoMgrImpl *>
-                              (const_cast<MoManager *>(GetMoManager(ktype)));
+          (const_cast<MoManager *>(GetMoManager(ktype)));
       if (!chld_mgr) {
         UPLL_LOG_DEBUG("Invalid mgr");
         return UPLL_RC_ERR_GENERIC;
       }
 
-      result_code = chld_mgr->RestoreChildren(ikey, dest_cfg, src_cfg, dmi);
+      result_code = chld_mgr->RestoreChildren(ikey,
+                                              dest_cfg,
+                                              src_cfg,
+                                              dmi,
+                                              req);
 
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("Restored failed with error code %d", result_code);
-        fail = true;
-        break;
+      if ((UPLL_RC_SUCCESS != result_code) &&
+          (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
+        UPLL_LOG_DEBUG("Restored failed with error code %d\n", result_code);
+        return UPLL_RC_ERR_GENERIC;
       }
 
       if ((nchild-1) <= i)
         return UPLL_RC_SUCCESS;
       i++;
     }
-    break;
   }
-  return ((fail == true) ? UPLL_RC_ERR_GENERIC : UPLL_RC_SUCCESS);
+}
+
+upll_rc_t MoMgrImpl::CheckExistenceInRenameTable(
+    ConfigKeyVal *&req,
+    upll_keytype_datatype_t dt_type,
+    unc_key_type_t instance_key_type,
+    DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
+  upll_rc_t result_code = UPLL_RC_SUCCESS;
+  ConfigKeyVal *tkey = NULL;
+  ConfigKeyVal *ctrl_key = NULL;
+  MoMgrImpl *vtn_mgr = NULL;
+  if ((instance_key_type == UNC_KT_VBRIDGE) ||
+      (instance_key_type == UNC_KT_VROUTER)) {
+    result_code  = GetChildConfigKey(tkey, req);
+    if (UPLL_RC_SUCCESS != result_code) {
+      return result_code;
+    }
+    result_code = GetParentConfigKey(ctrl_key, tkey);
+    if (result_code != UPLL_RC_SUCCESS) {
+      DELETE_IF_NOT_NULL(tkey);
+      UPLL_LOG_DEBUG("GetParentConfigKey Failed %d", result_code);
+      return result_code;
+    }
+    DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr|kOpMatchDomain,
+      kOpInOutCtrlr | kOpInOutDomain };
+    vtn_mgr = reinterpret_cast<MoMgrImpl *>
+        (const_cast<MoManager *>(GetMoManager(UNC_KT_VTN)));
+    if (!vtn_mgr) {
+      UPLL_LOG_DEBUG("Instance is NULL");
+      DELETE_IF_NOT_NULL(ctrl_key);
+      DELETE_IF_NOT_NULL(tkey);
+      return UPLL_RC_ERR_GENERIC;
+    }
+    result_code = vtn_mgr->ReadConfigDB(ctrl_key,
+                                        UPLL_DT_CANDIDATE,
+                                        UNC_OP_READ,
+                                        dbop,
+                                        dmi ,
+                                        (MoMgrTables)RENAMETBL);
+    if ((UPLL_RC_SUCCESS != result_code) &&
+        (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
+      UPLL_LOG_DEBUG("ReadConfigDB Failed in candidateDB %d", result_code);
+      DELETE_IF_NOT_NULL(ctrl_key);
+      DELETE_IF_NOT_NULL(tkey);
+      return result_code;
+    }
+    if ((UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code)) {
+      result_code = vtn_mgr->ReadConfigDB(ctrl_key, dt_type, UNC_OP_READ,
+                                          dbop, dmi , (MoMgrTables)RENAMETBL);
+      if ((UPLL_RC_SUCCESS != result_code) &&
+          (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
+        UPLL_LOG_DEBUG("ReadConfigDB Failed in RunningDB %d", result_code);
+        DELETE_IF_NOT_NULL(ctrl_key);
+        DELETE_IF_NOT_NULL(tkey);
+        return result_code;
+      }
+      if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+        val_rename_vtn *ival = reinterpret_cast<val_rename_vtn *>
+            (GetVal(ctrl_key));
+        if (ival == NULL) {
+          UPLL_LOG_DEBUG("Null Val structure");
+          DELETE_IF_NOT_NULL(ctrl_key);
+          DELETE_IF_NOT_NULL(tkey);
+          return UPLL_RC_ERR_GENERIC;
+        }
+        ival->valid[0] = UNC_VF_VALID;
+        dbop.readop = kOpNotRead;
+        result_code = vtn_mgr->UpdateConfigDB(ctrl_key,
+                                              UPLL_DT_CANDIDATE,
+                                              UNC_OP_CREATE,
+                                              dmi,
+                                              &dbop,
+                                              (MoMgrTables)RENAMETBL);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_INFO("UpdateConfigDB failed with error code %d\n",
+                        result_code);
+          DELETE_IF_NOT_NULL(ctrl_key);
+          DELETE_IF_NOT_NULL(tkey);
+          return result_code;
+        }
+      }
+    }
+    DELETE_IF_NOT_NULL(ctrl_key);
+    DbSubOp dboper = { kOpReadSingle, kOpMatchCtrlr|kOpMatchDomain,
+      kOpInOutCtrlr | kOpInOutDomain };
+    result_code = ReadConfigDB(tkey,
+                               dt_type,
+                               UNC_OP_READ,
+                               dboper,
+                               dmi,
+                               (MoMgrTables)RENAMETBL);
+    if ((UPLL_RC_SUCCESS != result_code) &&
+        (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
+      UPLL_LOG_DEBUG("ReadConfigDB Failed");
+      DELETE_IF_NOT_NULL(ctrl_key);
+      DELETE_IF_NOT_NULL(tkey);
+      return result_code;
+    }
+    if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+      val_rename_vnode *ival = reinterpret_cast<val_rename_vnode *>
+          (GetVal(tkey));
+      if (ival == NULL) {
+        UPLL_LOG_DEBUG("Null Val structure");
+        DELETE_IF_NOT_NULL(ctrl_key);
+        DELETE_IF_NOT_NULL(tkey);
+        return UPLL_RC_ERR_GENERIC;
+      }
+      ival->valid[UPLL_CTRLR_VTN_NAME_VALID] = UNC_VF_VALID;
+      ival->valid[UPLL_CTRLR_VNODE_NAME_VALID] = UNC_VF_VALID;
+      dboper.readop = kOpNotRead;
+      result_code = UpdateConfigDB(tkey,
+                                   UPLL_DT_CANDIDATE,
+                                   UNC_OP_CREATE,
+                                   dmi,
+                                   &dboper,
+                                   (MoMgrTables)RENAMETBL);
+      if (result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("UpdateConfigDB failed with error code %d\n",
+                       result_code);
+        DELETE_IF_NOT_NULL(tkey);
+        DELETE_IF_NOT_NULL(ctrl_key);
+        return result_code;
+      }
+    }
+  }
+
+  if ((instance_key_type == UNC_KT_FLOWLIST) ||
+      (instance_key_type == UNC_KT_POLICING_PROFILE)) {
+    result_code  = GetChildConfigKey(tkey, req);
+    if (UPLL_RC_SUCCESS != result_code) {
+      return result_code;
+    }
+    DbSubOp dboper = { kOpReadSingle, kOpMatchCtrlr|kOpMatchDomain,
+      kOpInOutCtrlr | kOpInOutDomain };
+    result_code = ReadConfigDB(tkey,
+                               dt_type,
+                               UNC_OP_READ,
+                               dboper,
+                               dmi,
+                               (MoMgrTables)RENAMETBL);
+    if ((UPLL_RC_SUCCESS != result_code) &&
+        (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
+      UPLL_LOG_DEBUG("ReadConfigDB Failed");
+      DELETE_IF_NOT_NULL(tkey);
+      return result_code;
+    }
+    if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+      val_rename_flowlist *ival = reinterpret_cast<val_rename_flowlist *>
+          (GetVal(tkey));
+      if (ival == NULL) {
+        UPLL_LOG_DEBUG("Null Val structure");
+        DELETE_IF_NOT_NULL(tkey);
+        return UPLL_RC_ERR_GENERIC;
+      }
+      ival->valid[0] = UNC_VF_VALID;
+      dboper.readop = kOpNotRead;
+      result_code = UpdateConfigDB(tkey,
+                                   UPLL_DT_CANDIDATE,
+                                   UNC_OP_CREATE,
+                                   dmi,
+                                   &dboper,
+                                   (MoMgrTables)RENAMETBL);
+      if (result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("UpdateConfigDB failed with error code %d\n",
+                       result_code);
+        DELETE_IF_NOT_NULL(tkey);
+        return result_code;
+      }
+    }
+  }
+  DELETE_IF_NOT_NULL(tkey);
+  return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t MoMgrImpl::DiffConfigDB(upll_keytype_datatype_t dt_cfg1,
@@ -367,9 +537,6 @@ upll_rc_t MoMgrImpl::DiffConfigDB(upll_keytype_datatype_t dt_cfg1,
   upll_rc_t result_code;
   result_code = DiffConfigDB(dt_cfg1, dt_cfg2, op, req, nreq, cfg1_cursor, dmi,
                              NULL, tbl);
-  if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)
-    return UPLL_RC_SUCCESS;
-
   return result_code;
 }
 
@@ -398,16 +565,16 @@ upll_rc_t MoMgrImpl::DiffConfigDB(upll_keytype_datatype_t dt_cfg1,
     return result_code;
   }
   DbSubOp dbop = { kOpReadDiff, kOpMatchCtrlr | kOpMatchDomain,
-                   kOpInOutFlag | kOpInOutCtrlr | kOpInOutDomain };
+    kOpInOutFlag | kOpInOutCtrlr | kOpInOutDomain };
   if (UNC_OP_DELETE == op)
-    dbop.matchop = kOpMatchCtrlr | kOpMatchDomain; 
+    dbop.matchop = kOpMatchCtrlr | kOpMatchDomain;
   uint16_t max_record_count = 0;
-  #if 0
+#if 0
   if (ctrlr_id) {
     dbop.inoutop &= ~kOpInOutCtrlr;
     SET_USER_DATA_CTRLR(req, ctrlr_id)
   }
-  #endif
+#endif
   if (tbl == CTRLRTBL) {
     dbop.inoutop |= kOpInOutCs;
   }
@@ -420,13 +587,16 @@ upll_rc_t MoMgrImpl::DiffConfigDB(upll_keytype_datatype_t dt_cfg1,
     if (read_withcs)
       dbop.inoutop |= kOpInOutCs;
   }
-  if (dt_cfg2 == UPLL_DT_AUDIT) dbop.matchop |= kOpMatchCs;
+  if (dt_cfg2 == UPLL_DT_AUDIT) {
+    dbop.matchop |= kOpMatchCs;
+    dbop.matchop &= ~kOpMatchFlag;
+  }
   DalBindInfo *binfo_cfg1 = new DalBindInfo(tbl_index);
   result_code = BindAttr(binfo_cfg1, req, UNC_OP_READ, dt_cfg1, dbop, tbl);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("Error from BindAttr for table(%d)", tbl_index);
     delete binfo_cfg1;
-    delete req;
+    DELETE_IF_NOT_NULL(req);
     req = NULL;
     return result_code;
   }
@@ -453,7 +623,9 @@ upll_rc_t MoMgrImpl::DiffConfigDB(upll_keytype_datatype_t dt_cfg1,
         req = NULL;
         return result_code;
       }
-      result_code = BindAttr(binfo_cfg2, nreq, UNC_OP_READ,((dt_cfg2 == UPLL_DT_RUNNING)?UPLL_DT_STATE:dt_cfg2), dbop, tbl);
+      result_code = BindAttr(
+          binfo_cfg2, nreq, UNC_OP_READ,
+          ((dt_cfg2 == UPLL_DT_RUNNING)?UPLL_DT_STATE:dt_cfg2), dbop, tbl);
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("Error from BindAttr for table(%d)", tbl_index);
         delete binfo_cfg1;
@@ -509,7 +681,7 @@ upll_rc_t MoMgrImpl::ReadConfigDB(ConfigKeyVal *ikey,
     UPLL_LOG_DEBUG(" Invalid Table index - %d", tbl_index);
     return UPLL_RC_ERR_GENERIC;
   }
-  DalCursor *dal_cursor_handle;
+  DalCursor *dal_cursor_handle = NULL;
   UPLL_LOG_TRACE("tbl_index is %d", tbl_index);
   if (!READ_OP(op)) {
     UPLL_LOG_INFO("Exiting MoMgrImpl::ReadConfigDB");
@@ -537,7 +709,7 @@ upll_rc_t MoMgrImpl::ReadConfigDB(ConfigKeyVal *ikey,
                                         &sibling_count);
         uint32_t *sib_count =
             reinterpret_cast<uint32_t*>(ConfigKeyVal::Malloc
-                (sizeof(uint32_t)));
+                                        (sizeof(uint32_t)));
         *sib_count = sibling_count;
         ikey->SetCfgVal(new ConfigVal(IpctSt::kIpcStUint32, sib_count));
       }
@@ -555,18 +727,22 @@ upll_rc_t MoMgrImpl::ReadConfigDB(ConfigKeyVal *ikey,
       break;
     case UNC_OP_READ:
       if (dbop.readop & kOpReadMultiple) {
-        db_result = dmi->GetMultipleRecords(dt_type, tbl_index,
-         sibling_count, dal_bind_info, &dal_cursor_handle);
+        db_result = dmi->GetMultipleRecords(dt_type,
+                                            tbl_index,
+                                            sibling_count,
+                                            dal_bind_info,
+                                            &dal_cursor_handle);
       } else {
         db_result = dmi->GetSingleRecord(dt_type, tbl_index, dal_bind_info);
       }
       break;
     default:
+      DELETE_IF_NOT_NULL(dal_bind_info);
       return UPLL_RC_ERR_GENERIC;
   }
   result_code = DalToUpllResCode(db_result);
   if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Returning %d",result_code);
+    UPLL_LOG_DEBUG("Returning %d", result_code);
     delete dal_bind_info;
     return result_code;
   }
@@ -579,9 +755,9 @@ upll_rc_t MoMgrImpl::ReadConfigDB(ConfigKeyVal *ikey,
       result_code = DalToUpllResCode(db_result);
       if (result_code != UPLL_RC_SUCCESS) {
         if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-           count = (op == UNC_OP_READ)?nrec_read:count;
-           result_code = (count) ? UPLL_RC_SUCCESS : result_code;
-           sibling_count = count;
+          count = (op == UNC_OP_READ)?nrec_read:count;
+          result_code = (count) ? UPLL_RC_SUCCESS : result_code;
+          sibling_count = count;
         }
         break;
       }
@@ -589,15 +765,15 @@ upll_rc_t MoMgrImpl::ReadConfigDB(ConfigKeyVal *ikey,
       tkey = NULL;
       result_code = DupConfigKeyVal(tkey, ikey, tbl);
       if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("Dup failed error %d",result_code);
-          delete dal_bind_info;
-          DELETE_IF_NOT_NULL(end_resp);
-          return result_code;
+        UPLL_LOG_DEBUG("Dup failed error %d", result_code);
+        delete dal_bind_info;
+        DELETE_IF_NOT_NULL(end_resp);
+        return result_code;
       }
       if (!end_resp)
-         end_resp = tkey;
+        end_resp = tkey;
       else {
-         prev_key->AppendCfgKeyVal(tkey);
+        prev_key->AppendCfgKeyVal(tkey);
       }
       if (op != UNC_OP_READ) count++; else nrec_read++;
     }
@@ -605,8 +781,7 @@ upll_rc_t MoMgrImpl::ReadConfigDB(ConfigKeyVal *ikey,
       if (end_resp)
         ikey->ResetWith(end_resp);
       UPLL_LOG_DEBUG(" sibling_count %d count %d operation %d response %s",
-                   sibling_count, count, op, (ikey->ToStrAll()).c_str());
-         
+                     sibling_count, count, op, (ikey->ToStrAll()).c_str());
     }
     dmi->CloseCursor(dal_cursor_handle);
     DELETE_IF_NOT_NULL(end_resp);
@@ -643,24 +818,27 @@ upll_rc_t MoMgrImpl::UpdateConfigDB(ConfigKeyVal *ikey,
   DalBindInfo *dal_bind_info = new DalBindInfo(tbl_index);
   upll_rc_t result_code;
   DbSubOp dbop = { kOpReadExist, kOpMatchNone, kOpInOutFlag | kOpInOutCtrlr
-                       | kOpInOutDomain };
+    | kOpInOutDomain };
   if (pdbop == NULL) {
     if (op == UNC_OP_DELETE) dbop.inoutop = kOpInOutNone;
     if (op != UNC_OP_CREATE) {
       if ((tbl == RENAMETBL) || (tbl == CTRLRTBL)) {
         dbop.matchop = kOpMatchCtrlr | kOpMatchDomain;
         dbop.inoutop = kOpInOutFlag | kOpInOutCs;
-      } 
+      }
       if (op == UNC_OP_UPDATE) {
         if  (dt_type == UPLL_DT_CANDIDATE) {
           dbop.inoutop = kOpInOutCs;
         } else if (dt_type == UPLL_DT_RUNNING) {
           dbop.inoutop |= kOpInOutCs;
+        } else if (dt_type == UPLL_DT_AUDIT) {
+          dbop.inoutop = kOpInOutFlag;
         }
       }
     } else {
       if (dt_type != UPLL_DT_CANDIDATE || tbl == CTRLRTBL)
-        dbop.inoutop |= kOpInOutCs;
+        if (dt_type != UPLL_DT_AUDIT)
+          dbop.inoutop |= kOpInOutCs;
     }
     pdbop = &dbop;
   }
@@ -672,33 +850,37 @@ upll_rc_t MoMgrImpl::UpdateConfigDB(ConfigKeyVal *ikey,
   dt_type = (dt_type == UPLL_DT_STATE) ? UPLL_DT_RUNNING : dt_type;
   switch (op) {
     case UNC_OP_CREATE:
-      UPLL_LOG_TRACE("Dbop %s dt_type %d CREATE %d", (ikey->ToStrAll()).c_str(), dt_type,
-                    tbl_index);
+      UPLL_LOG_TRACE("Dbop %s dt_type %d CREATE %d",
+                     (ikey->ToStrAll()).c_str(), dt_type,
+                     tbl_index);
       result_code = DalToUpllResCode(
           dmi->CreateRecord(dt_type, tbl_index, dal_bind_info));
       break;
     case UNC_OP_DELETE:
-      UPLL_LOG_TRACE("Dbop %s dt_type %d DELETE  %d", (ikey->ToStrAll()).c_str(), dt_type,
-                    tbl_index);
+      UPLL_LOG_TRACE("Dbop %s dt_type %d DELETE  %d",
+                     (ikey->ToStrAll()).c_str(), dt_type,
+                     tbl_index);
       result_code = DalToUpllResCode(
           dmi->DeleteRecords(dt_type, tbl_index, dal_bind_info));
       break;
     case UNC_OP_UPDATE:
-      UPLL_LOG_TRACE("Dbop %s dt_type %d UPD  %d", (ikey->ToStrAll()).c_str(), dt_type,
-                    tbl_index);
+      UPLL_LOG_TRACE("Dbop %s dt_type %d UPD  %d",
+                     (ikey->ToStrAll()).c_str(), dt_type,
+                     tbl_index);
       result_code = DalToUpllResCode(
           dmi->UpdateRecords(dt_type, tbl_index, dal_bind_info));
       break;
     case UNC_OP_READ:
-      UPLL_LOG_TRACE("Dbop %s dt_type %d EXISTS  %d", (ikey->ToStrAll()).c_str(), dt_type,
-                    tbl_index);
+      UPLL_LOG_TRACE("Dbop %s dt_type %d EXISTS  %d",
+                     (ikey->ToStrAll()).c_str(), dt_type,
+                     tbl_index);
       result_code = DalToUpllResCode(
           dmi->RecordExists(dt_type, tbl_index, dal_bind_info, &exists));
       if (result_code == UPLL_RC_SUCCESS) {
         if (exists)
-            result_code = UPLL_RC_ERR_INSTANCE_EXISTS;
+          result_code = UPLL_RC_ERR_INSTANCE_EXISTS;
         else
-            result_code = UPLL_RC_ERR_NO_SUCH_INSTANCE;
+          result_code = UPLL_RC_ERR_NO_SUCH_INSTANCE;
       }
       break;
     default:
@@ -730,7 +912,9 @@ upll_rc_t MoMgrImpl::BindAttr(DalBindInfo *db_info,
     UPLL_LOG_DEBUG("NULL input parameters");
     return UPLL_RC_ERR_GENERIC;
   }
-  UPLL_LOG_TRACE("Valid Falg is true ConfigKeyVal %s", (req->ToStrAll()).c_str());//COV: FORWARD NULL
+  UPLL_LOG_TRACE("Valid Falg is true ConfigKeyVal %s",
+                 (req->ToStrAll()).c_str());
+  // COV: FORWARD NULL
   if (!GetBindInfo(tbl, dt_type, binfo, nattr)) return UPLL_RC_ERR_GENERIC;
   tuser_data = reinterpret_cast<key_user_data_t *>(req->get_user_data());
   switch (op) {
@@ -743,15 +927,15 @@ upll_rc_t MoMgrImpl::BindAttr(DalBindInfo *db_info,
           AllocVal(ck_val, dt_type, tbl);
           if (!ck_val) return UPLL_RC_ERR_GENERIC;
           req->AppendCfgVal(ck_val);
-        } else if ((dt_type == UPLL_DT_STATE) && 
+        } else if ((dt_type == UPLL_DT_STATE) &&
                    (ck_val->get_next_cfg_val() == NULL) && tbl != RENAMETBL) {
           ConfigVal *ck_val1 = NULL;
           AllocVal(ck_val1, dt_type, tbl);
           const pfc_ipcstdef_t *st_def = IpctSt::GetIpcStdef(
-                                           ck_val->get_st_num());
+              ck_val->get_st_num());
           if (st_def) {
-            memcpy(ck_val1->get_val(),ck_val->get_val(),st_def->ist_size);
-            req->SetCfgVal(ck_val1);      
+            memcpy(ck_val1->get_val(), ck_val->get_val(), st_def->ist_size);
+            req->SetCfgVal(ck_val1);
             ck_val = ck_val1;
           } else {
             delete ck_val1;
@@ -801,7 +985,7 @@ upll_rc_t MoMgrImpl::BindAttr(DalBindInfo *db_info,
     UPLL_LOG_TRACE(" the attr_type %x number %d", binfo[i].struct_type, i);
     if (attr_type == CFG_KEY) {
       p = reinterpret_cast<void *>(reinterpret_cast<char *>(tkey)
-          + binfo[i].offset);
+                                   + binfo[i].offset);
       UPLL_LOG_TRACE(" key struct %d tkey %p p %p", attr_type, tkey, p);
       switch (op) {
         case UNC_OP_CREATE:
@@ -820,7 +1004,7 @@ upll_rc_t MoMgrImpl::BindAttr(DalBindInfo *db_info,
           if (IsValidKey(tkey, indx)) {
             UPLL_LOG_TRACE("tkey %p bind match DEL p %p", tkey, p);
             db_info->BindMatch(indx, binfo[i].app_data_type,
-              binfo[i].array_size, p);
+                               binfo[i].array_size, p);
           }
           break;
         case UNC_OP_READ:
@@ -828,7 +1012,8 @@ upll_rc_t MoMgrImpl::BindAttr(DalBindInfo *db_info,
         case UNC_OP_READ_SIBLING_BEGIN:
         case UNC_OP_READ_SIBLING_COUNT:
           if ((dbop.readop & kOpReadSingle) || (dbop.readop & kOpReadExist)
-              || (dbop.readop & kOpReadMultiple) || (dbop.readop & kOpReadCount))  {
+              || (dbop.readop & kOpReadMultiple) ||
+              (dbop.readop & kOpReadCount))  {
             if (IsValidKey(tkey, indx)) {
               UPLL_LOG_TRACE("tkey %p bind match READ p %p", tkey, p);
               db_info->BindMatch(indx, binfo[i].app_data_type,
@@ -836,7 +1021,7 @@ upll_rc_t MoMgrImpl::BindAttr(DalBindInfo *db_info,
               if (dbop.readop & kOpReadMultiple) {
                 UPLL_LOG_TRACE("tkey %p bind output READ p %p", tkey, p);
                 db_info->BindOutput(indx, binfo[i].app_data_type,
-                                 binfo[i].array_size, p);
+                                    binfo[i].array_size, p);
               }
             } else {
               UPLL_LOG_TRACE("tkey %p bind output READ p %p", tkey, p);
@@ -855,24 +1040,24 @@ upll_rc_t MoMgrImpl::BindAttr(DalBindInfo *db_info,
           break;
       }
     } else if (tuser_data
-        && ((attr_type == CK_VAL) || (attr_type == CK_VAL2))) {
+               && ((attr_type == CK_VAL) || (attr_type == CK_VAL2))) {
       if (attr_type == CK_VAL2) {
         if (req->get_cfg_val()) {
           GET_USER_DATA(req->get_cfg_val());
           tuser_data =
-                 reinterpret_cast<key_user_data *>
-                    (req->get_cfg_val()->get_user_data());
-        } else 
+              reinterpret_cast<key_user_data *>
+              (req->get_cfg_val()->get_user_data());
+        } else
           tuser_data = NULL;
       } else {
         tuser_data = reinterpret_cast<key_user_data_t *>(req->get_user_data());
       }
       if (!tuser_data) {
         UPLL_LOG_DEBUG("null tuser_data");
-        continue; 
+        continue;
       }
       p = reinterpret_cast<void *>(reinterpret_cast<char *>(tuser_data)
-          + binfo[i].offset);
+                                   + binfo[i].offset);
       bool par_flag = false, par_ctrlr = false, par_dom = false;
       if (binfo[i].offset == offsetof(key_user_data_t, flags))
         par_flag = true;
@@ -898,8 +1083,8 @@ upll_rc_t MoMgrImpl::BindAttr(DalBindInfo *db_info,
             db_info->BindMatch(indx, binfo[i].app_data_type,
                                binfo[i].array_size, p);
           } else if ((par_ctrlr && (dbop.inoutop & kOpInOutCtrlr))
-              || (par_dom && (dbop.inoutop & kOpInOutDomain))
-              || (par_flag && (dbop.inoutop & kOpInOutFlag))) {
+                     || (par_dom && (dbop.inoutop & kOpInOutDomain))
+                     || (par_flag && (dbop.inoutop & kOpInOutFlag))) {
             UPLL_LOG_TRACE("UPD bind input flag/Cntrlr/domain %p ", p);
             db_info->BindInput(indx, binfo[i].app_data_type,
                                binfo[i].array_size, p);
@@ -934,48 +1119,51 @@ upll_rc_t MoMgrImpl::BindAttr(DalBindInfo *db_info,
     } else if (tval && (attr_type != ST_VAL) && (attr_type != ST_META_VAL)) {
 #if 1
       if (attr_type == CFG_DEF_VAL) {
-         attr_type = (dbop.readop & kOpReadDiffUpd)?attr_type:CFG_META_VAL;
-        UPLL_LOG_DEBUG("ATTR: attr_type %d readop %d op %d\n",attr_type, dbop.readop,op);
+        attr_type = (dbop.readop & kOpReadDiffUpd)?attr_type:CFG_META_VAL;
+        UPLL_LOG_DEBUG("ATTR: attr_type %d readop %d op %d\n",
+                       attr_type,
+                       dbop.readop,
+                       op);
       }
 #endif
       if (op == UNC_OP_DELETE) continue;
       if (dt_type == UPLL_DT_STATE) {
 #if 0
         attr_type = (attr_type == CFG_ST_VAL)?CFG_VAL:
-                    ((attr_type == CFG_ST_META_VAL)?CFG_META_VAL:attr_type);
+            ((attr_type == CFG_ST_META_VAL)?CFG_META_VAL:attr_type);
 #else
         // bind down count only for output and not for match
         if (attr_type == CFG_ST_VAL) {
           attr_type = (dbop.readop & kOpReadDiffUpd)?CFG_DEF_VAL:CFG_VAL;
         } else if (attr_type == CFG_ST_META_VAL) {
           attr_type = (dbop.readop & kOpReadDiffUpd)?CFG_DEF_VAL:CFG_META_VAL;
-        } 
+        }
 #endif
       } else if ((attr_type == CFG_ST_VAL) || (attr_type == CFG_ST_META_VAL)) {
         continue;
       }
       p = reinterpret_cast<void *>(reinterpret_cast<char *>(tval)
-          + binfo[i].offset);
+                                   + binfo[i].offset);
       bool valid_is_defined = false;
       if (attr_type == CFG_VAL) {
         result_code = GetValid(tval, indx, valid, dt_type, tbl);
         if (result_code != UPLL_RC_SUCCESS) {
-           UPLL_LOG_TRACE("Returning %d",result_code);
-           return result_code;
+          UPLL_LOG_TRACE("Returning %d", result_code);
+          return result_code;
         }
         if (!valid) {
           UPLL_LOG_TRACE(" Invalid for attr %d", i);
-           switch (op) {
-           case UNC_OP_CREATE:
-           case UNC_OP_UPDATE:
-             valid_is_defined = true;
+          switch (op) {
+            case UNC_OP_CREATE:
+            case UNC_OP_UPDATE:
+              valid_is_defined = true;
               break;
-           default:
-             valid_is_defined = false;
-           }
-        } else if ((*valid == UNC_VF_VALID) || 
-                   ( *valid == UNC_VF_VALID_NO_VALUE)) {
-          valid_is_defined = true; 
+            default:
+              valid_is_defined = false;
+          }
+        } else if ((*valid == UNC_VF_VALID) ||
+                   (*valid == UNC_VF_VALID_NO_VALUE)) {
+          valid_is_defined = true;
         }
       } else if (attr_type == CFG_META_VAL) {
         if ((*(reinterpret_cast<uint8_t *>(p)) == UNC_VF_VALID)
@@ -985,135 +1173,144 @@ upll_rc_t MoMgrImpl::BindAttr(DalBindInfo *db_info,
       switch (op) {
         case UNC_OP_CREATE:
 #if 0
-          if ((attr_type == CFG_META_VAL) || valid_is_defined 
+          if ((attr_type == CFG_META_VAL) || valid_is_defined
 #else
-          if ((attr_type == CFG_META_VAL) || (attr_type == CFG_VAL)
+              if ((attr_type == CFG_META_VAL) || (attr_type == CFG_VAL)
 #endif
-              || ((attr_type == CS_VAL) && (dbop.inoutop & kOpInOutCs))) {
-            UPLL_LOG_TRACE("tval/meta CR bind input %p p %p", tval, p);
-            db_info->BindInput(indx, binfo[i].app_data_type,
-                               binfo[i].array_size,
-                               reinterpret_cast<void *>(p));
-          }
-          break;
-        case UNC_OP_UPDATE:
+                  || ((attr_type == CS_VAL) && (dbop.inoutop & kOpInOutCs))) {
+              UPLL_LOG_TRACE("tval/meta CR bind input %p p %p", tval, p);
+              db_info->BindInput(indx, binfo[i].app_data_type,
+                                 binfo[i].array_size,
+                                 reinterpret_cast<void *>(p));
+              }
+              break;
+              case UNC_OP_UPDATE:
 #if 0
-          if ((attr_type == CFG_META_VAL)
-              || ((attr_type == CS_VAL) && (dbop.matchop & kOpMatchCs))) {
-            UPLL_LOG_TRACE("tval/meta UP bind match %p p %p", tval, p);
-            db_info->BindMatch(indx, binfo[i].app_data_type,
-                               binfo[i].array_size,
-                               reinterpret_cast<void *>(p));
-          }
-#endif
-          if (valid_is_defined || 
-             ((attr_type == CS_VAL) && (dbop.inoutop & kOpInOutCs))) {
-            UPLL_LOG_TRACE("tval/meta UP bind input %p p %p", tval, p);
-            // store VALID_NO_VALUE flag in candidate as INVALID
-            if ((attr_type == CFG_META_VAL) && 
-                (*(reinterpret_cast<uint8_t *>(p)) == UNC_VF_VALID_NO_VALUE)) {
-              UPLL_LOG_TRACE("Resetting VALID_NO_VALUE to INVALID %p", p);
-             *(reinterpret_cast<uint8_t *>(p)) = UNC_VF_INVALID; 
-            }
-            db_info->BindInput(indx, binfo[i].app_data_type,
-                               binfo[i].array_size,
-                               reinterpret_cast<void *>(p));
-          }
-          break;
-        case UNC_OP_READ:
-        case UNC_OP_READ_SIBLING:
-        case UNC_OP_READ_SIBLING_BEGIN:
-        case UNC_OP_READ_SIBLING_COUNT:
-          if (dbop.readop & ~(kOpReadDiff | kOpReadExist | kOpReadDiffUpd)) {
-            if (valid_is_defined) {
-              UPLL_LOG_TRACE("tval RD bind match %p p %p", tval, p);
+              if ((attr_type == CFG_META_VAL)
+                  || ((attr_type == CS_VAL) && (dbop.matchop & kOpMatchCs))) {
+              UPLL_LOG_TRACE("tval/meta UP bind match %p p %p", tval, p);
               db_info->BindMatch(indx, binfo[i].app_data_type,
                                  binfo[i].array_size,
                                  reinterpret_cast<void *>(p));
-            } else if ((dbop.readop & (kOpReadExist | kOpReadCount)) == 0) {
-              switch (attr_type) {
-                case CS_VAL:
-                  if (dbop.inoutop & kOpInOutCs) {
-                    UPLL_LOG_TRACE("tvalcs RD bind output %p p %p", tval, p);
-                    db_info->BindOutput(indx, binfo[i].app_data_type,
-                                        binfo[i].array_size,
-                                        reinterpret_cast<void *>(p));
+              }
+#endif
+              if (valid_is_defined ||
+                  ((attr_type == CS_VAL) && (dbop.inoutop & kOpInOutCs))) {
+                UPLL_LOG_TRACE("tval/meta UP bind input %p p %p", tval, p);
+                // store VALID_NO_VALUE flag in candidate as INVALID
+                if ((attr_type == CFG_META_VAL) &&
+                    (*(reinterpret_cast<uint8_t *>(p)) ==
+                     UNC_VF_VALID_NO_VALUE)) {
+                  UPLL_LOG_TRACE("Resetting VALID_NO_VALUE to INVALID %p", p);
+                  *(reinterpret_cast<uint8_t *>(p)) = UNC_VF_INVALID;
+                }
+                db_info->BindInput(indx, binfo[i].app_data_type,
+                                   binfo[i].array_size,
+                                   reinterpret_cast<void *>(p));
+              }
+              break;
+              case UNC_OP_READ:
+              case UNC_OP_READ_SIBLING:
+              case UNC_OP_READ_SIBLING_BEGIN:
+              case UNC_OP_READ_SIBLING_COUNT:
+              if (dbop.readop & ~(kOpReadDiff | kOpReadExist |
+                                  kOpReadDiffUpd)) {
+                if (valid_is_defined) {
+                  UPLL_LOG_TRACE("tval RD bind match %p p %p", tval, p);
+                  db_info->BindMatch(indx, binfo[i].app_data_type,
+                                     binfo[i].array_size,
+                                     reinterpret_cast<void *>(p));
+                } else if ((dbop.readop &
+                            (kOpReadExist | kOpReadCount)) == 0) {
+                  switch (attr_type) {
+                    case CS_VAL:
+                      if (dbop.inoutop & kOpInOutCs) {
+                        UPLL_LOG_TRACE("tvalcs RD bind output %p p %p",
+                                       tval, p);
+                        db_info->BindOutput(indx, binfo[i].app_data_type,
+                                            binfo[i].array_size,
+                                            reinterpret_cast<void *>(p));
+                      }
+                      break;
+                    case CFG_VAL:
+                    case CFG_META_VAL:
+                      UPLL_LOG_TRACE("tval RD bind output %p p %p", tval, p);
+                      db_info->BindOutput(indx, binfo[i].app_data_type,
+                                          binfo[i].array_size,
+                                          reinterpret_cast<void *>(p));
+                    default:
+                      break;
                   }
-                  break;
-                case CFG_VAL:
-                case CFG_META_VAL:
-                  UPLL_LOG_TRACE("tval RD bind output %p p %p", tval, p);
+                }
+              } else if (dbop.readop & kOpReadDiff) {
+                if ((attr_type == CFG_META_VAL) || (attr_type == CFG_VAL) ||
+#if 1
+                    (attr_type == CFG_DEF_VAL) ||
+#endif
+                    ((attr_type == CS_VAL) && (dbop.inoutop & kOpInOutCs))) {
+                  UPLL_LOG_TRACE("tval %d RDDiff bind output %p p %p",
+                                 attr_type,
+                                 tval, p);
                   db_info->BindOutput(indx, binfo[i].app_data_type,
                                       binfo[i].array_size,
                                       reinterpret_cast<void *>(p));
-                default:
-                  break;
-              }
-            }
-          } else if (dbop.readop & kOpReadDiff) {
-            if ((attr_type == CFG_META_VAL) || (attr_type == CFG_VAL) ||
-#if 1
-                (attr_type == CFG_DEF_VAL) ||
-#endif
-                ((attr_type == CS_VAL) && (dbop.inoutop & kOpInOutCs))) {
-              UPLL_LOG_TRACE("tval %d RDDiff bind output %p p %p", attr_type,
-                             tval, p);
-              db_info->BindOutput(indx, binfo[i].app_data_type,
-                                  binfo[i].array_size,
-                                  reinterpret_cast<void *>(p));
-            }
+                }
 #if 1
-            if ((attr_type == CFG_META_VAL) || (attr_type == CFG_VAL) ||
+                if ((attr_type == CFG_META_VAL) || (attr_type == CFG_VAL) ||
 #else
-            if ((attr_type == CFG_VAL) ||
+                    if ((attr_type == CFG_VAL) ||
 #endif
-                ((attr_type == CS_VAL) && (dbop.matchop & kOpMatchCs))) {
+                        ((attr_type == CS_VAL) &&
+                         (dbop.matchop & kOpMatchCs))) {
 #if 1
-              if ((dbop.readop & kOpReadDiffUpd) && (attr_type != CFG_DEF_VAL)) { 
+                    if ((dbop.readop & kOpReadDiffUpd) &&
+                        (attr_type != CFG_DEF_VAL)) {
 #else
-              if (dbop.readop & kOpReadDiffUpd)  
+                    if (dbop.readop & kOpReadDiffUpd)
 #endif
-                UPLL_LOG_TRACE("tval %d RDDiff bind match %p p %p", attr_type,
-                             tval, p);
-                db_info->BindMatch(indx, binfo[i].app_data_type,
-                                   binfo[i].array_size,
-                                   reinterpret_cast<void *>(p));
-              }
-            }
-          }
-        default:
-          break;
-      }
+                    UPLL_LOG_TRACE("tval %d RDDiff bind match %p p %p",
+                                   attr_type,
+                                   tval, p);
+                    db_info->BindMatch(indx, binfo[i].app_data_type,
+                                       binfo[i].array_size,
+                                       reinterpret_cast<void *>(p));
+                    }
+                    }
+                    }
+                    default:
+                    break;
+                    }
     } else if (sval) {
       if (op == UNC_OP_DELETE) continue;
       bool valid_is_defined = false;
       p = reinterpret_cast<void *>(reinterpret_cast<char *>(sval)
-          + binfo[i].offset);
+                                   + binfo[i].offset);
 #if 0
-      if (attr_type == CFG_ST_VAL) { 
+      if (attr_type == CFG_ST_VAL) {
         uint32_t val_p =  *(reinterpret_cast<uint32_t *>(p));
         attr_type = (op == UNC_OP_UPDATE)?
-                    ((val_p != INVALID_MATCH_VALUE)?ST_VAL:attr_type):ST_VAL;
+            ((val_p != INVALID_MATCH_VALUE)?ST_VAL:attr_type):ST_VAL;
       }
 #endif
       if (attr_type == ST_VAL) {
         result_code = GetValid(sval, indx, valid_st, dt_type, tbl);
         if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_TRACE("Returning %d",result_code);
+          UPLL_LOG_TRACE("Returning %d", result_code);
           return result_code;
         }
-        if (!valid_st) { 
+        if (!valid_st) {
           switch (op) {
-          case UNC_OP_CREATE:
-          case UNC_OP_UPDATE:
-            valid_is_defined = true;
-            break;
-          default:
-            valid_is_defined = false;
+            case UNC_OP_CREATE:
+            case UNC_OP_UPDATE:
+              valid_is_defined = true;
+              break;
+            default:
+              valid_is_defined = false;
           }
         }
         else if ((*(reinterpret_cast<uint8_t *>(valid_st)) == UNC_VF_VALID) ||
-                 (*(reinterpret_cast<uint8_t *>(valid_st)) == UNC_VF_VALID_NO_VALUE))
+                 (*(reinterpret_cast<uint8_t *>(valid_st)) ==
+                  UNC_VF_VALID_NO_VALUE))
           valid_is_defined = true;
         UPLL_LOG_TRACE(" The ST_VAL valid flag is %d", valid_is_defined);
       } else if (attr_type == ST_META_VAL) {
@@ -1150,7 +1347,7 @@ upll_rc_t MoMgrImpl::BindAttr(DalBindInfo *db_info,
         case UNC_OP_READ_SIBLING:
         case UNC_OP_READ_SIBLING_BEGIN:
         case UNC_OP_READ_SIBLING_COUNT:
-          if (dbop.readop & ~( kOpReadDiff | kOpReadDiffUpd | kOpReadExist)) {
+          if (dbop.readop & ~(kOpReadDiff | kOpReadDiffUpd | kOpReadExist)) {
             if (valid_is_defined) {
               UPLL_LOG_TRACE("sval RD bind match %p p %p", sval, p);
               db_info->BindMatch(indx, binfo[i].app_data_type,
@@ -1172,7 +1369,7 @@ upll_rc_t MoMgrImpl::BindAttr(DalBindInfo *db_info,
 #if 0
               if (dbop.readop & kOpReadDiffUpd) {
                 UPLL_LOG_TRACE("sval %d RDDiff bind match %p p %p", attr_type,
-                             sval, p);
+                               sval, p);
                 db_info->BindMatch(indx, binfo[i].app_data_type,
                                    binfo[i].array_size,
                                    reinterpret_cast<void *>(p));
@@ -1199,12 +1396,12 @@ upll_rc_t MoMgrImpl::UpdateRenameKey(ConfigKeyVal *&ikey,
     UPLL_LOG_DEBUG(" Invalid Table index - %d", tbl_index);
     return UPLL_RC_ERR_GENERIC;
   }
-//  cout << tbl_index << "\n";
+  //  cout << tbl_index << "\n";
   bool exists = false;
   DalBindInfo *dal_bind_info = new DalBindInfo(tbl_index);
   upll_rc_t result_code;
   DbSubOp dbop = { kOpReadExist, kOpMatchNone, kOpInOutFlag | kOpInOutCtrlr
-                       | kOpInOutDomain };
+    | kOpInOutDomain };
   if (pdbop == NULL) {
     if (op == UNC_OP_DELETE)
       dbop.inoutop = kOpInOutNone;
@@ -1214,35 +1411,35 @@ upll_rc_t MoMgrImpl::UpdateRenameKey(ConfigKeyVal *&ikey,
     }
     pdbop = &dbop;
   }
-         result_code = BindAttrRename(dal_bind_info, ikey, op, dt_type, *pdbop, tbl);
-         switch (op) {
-           case UNC_OP_CREATE:
-             result_code = DalToUpllResCode(
-                 dmi->CreateRecord(dt_type, tbl_index, dal_bind_info));
-             break;
-           case UNC_OP_UPDATE:
-             result_code = DalToUpllResCode(
-                 dmi->UpdateRecords(dt_type, tbl_index, dal_bind_info));
-             break;
-           case UNC_OP_READ:
-             result_code = DalToUpllResCode(
-                 dmi->RecordExists(dt_type, tbl_index, dal_bind_info, &exists));
-             if (result_code == UPLL_RC_SUCCESS) {
-               if (exists)
-                   result_code = UPLL_RC_ERR_INSTANCE_EXISTS;
-               else
-                   result_code = UPLL_RC_ERR_NO_SUCH_INSTANCE;
-             }
-             break;
-           default:
-             break;
-         }
-         delete dal_bind_info;
-
-         return result_code;
-       }
-
-       upll_rc_t MoMgrImpl::BindAttrRename(DalBindInfo *db_info,
+  result_code = BindAttrRename(dal_bind_info, ikey, op, dt_type, *pdbop, tbl);
+  switch (op) {
+    case UNC_OP_CREATE:
+      result_code = DalToUpllResCode(
+          dmi->CreateRecord(dt_type, tbl_index, dal_bind_info));
+      break;
+    case UNC_OP_UPDATE:
+      result_code = DalToUpllResCode(
+          dmi->UpdateRecords(dt_type, tbl_index, dal_bind_info));
+      break;
+    case UNC_OP_READ:
+      result_code = DalToUpllResCode(
+          dmi->RecordExists(dt_type, tbl_index, dal_bind_info, &exists));
+      if (result_code == UPLL_RC_SUCCESS) {
+        if (exists)
+          result_code = UPLL_RC_ERR_INSTANCE_EXISTS;
+        else
+          result_code = UPLL_RC_ERR_NO_SUCH_INSTANCE;
+      }
+      break;
+    default:
+      break;
+  }
+  delete dal_bind_info;
+
+  return result_code;
+}
+
+upll_rc_t MoMgrImpl::BindAttrRename(DalBindInfo *db_info,
                                     ConfigKeyVal *&req,
                                     unc_keytype_operation_t op,
                                     upll_keytype_datatype_t dt_type,
@@ -1260,14 +1457,14 @@ upll_rc_t MoMgrImpl::UpdateRenameKey(ConfigKeyVal *&ikey,
     UPLL_LOG_DEBUG("Input is NULL");
     return UPLL_RC_ERR_GENERIC;
   }
-  if (!GetRenameKeyBindInfo(req->get_key_type(), binfo, nattr, tbl)){
-     UPLL_LOG_DEBUG("GetRenameKeyBindInfo Not available for the keytype %d"
-                    "For the Table %d", req->get_key_type(), tbl);
+  if (!GetRenameKeyBindInfo(req->get_key_type(), binfo, nattr, tbl)) {
+    UPLL_LOG_DEBUG("GetRenameKeyBindInfo Not available for the keytype %d"
+                   "For the Table %d", req->get_key_type(), tbl);
     return UPLL_RC_ERR_GENERIC;
   }
   UPLL_LOG_TRACE("The nAttribute %d", nattr);
   tuser_data = reinterpret_cast<key_user_data_t *>(req->get_user_data());
-  for (int i = 0; i < nattr; i++ ) {
+  for (int i = 0; i < nattr; i++) {
     UPLL_LOG_TRACE("The If condition value is %d i=%d", (nattr/2), i);
     if (i == (nattr / 2)) {
       if (req->get_next_cfg_key_val()
@@ -1281,229 +1478,238 @@ upll_rc_t MoMgrImpl::UpdateRenameKey(ConfigKeyVal *&ikey,
     UPLL_LOG_TRACE("the attr_type %d attr number %d", binfo[i].struct_type,
                    i);
     p = reinterpret_cast<void *>(reinterpret_cast<char *>(tkey)
-        + binfo[i].offset);
+                                 + binfo[i].offset);
     UPLL_LOG_TRACE("key struct %d tkey %p p %p", attr_type, tkey, p);
     if (CFG_INPUT_KEY == attr_type || CFG_MATCH_KEY == attr_type) {
       switch (op) {
         case UNC_OP_CREATE:
 #if 0
-          if (!IsValidKey(tkey, indx))  { 
-            UPLL_LOG_TRACE("Given Key is Invalid %s", (req->ToStrAll()).c_str());
+          if (!IsValidKey(tkey, indx))  {
+            UPLL_LOG_TRACE("Given Key is Invalid %s",
+                           (req->ToStrAll()).c_str());
             return UPLL_RC_ERR_GENERIC;
           }
 #endif
           UPLL_LOG_TRACE(" Bind input Key %"PFC_PFMT_u64" p %p", indx,
-                       reinterpret_cast<char*>(p));
+                         reinterpret_cast<char*>(p));
           db_info->BindInput(indx, binfo[i].app_data_type, binfo[i].array_size,
-                           p);
+                             p);
           break;
         case UNC_OP_UPDATE:
           UPLL_LOG_TRACE("Validate the Key in Update");
-//          if (IsValidKey(tkey, indx)) {
-            switch (attr_type) {
-              case CFG_INPUT_KEY:
-                UPLL_LOG_TRACE("tkey %p bindinput %p", tkey,
+          //          if (IsValidKey(tkey, indx)) {
+          switch (attr_type) {
+            case CFG_INPUT_KEY:
+              UPLL_LOG_TRACE("tkey %p bindinput %p", tkey,
                              reinterpret_cast<char*>(p));
-                db_info->BindInput(indx, binfo[i].app_data_type,
+              db_info->BindInput(indx, binfo[i].app_data_type,
                                  binfo[i].array_size, p);
-                break;
-              case CFG_MATCH_KEY:
-                UPLL_LOG_TRACE("tkey %p bindmatch %p", tkey,
-                               reinterpret_cast<char*>(p));
-                db_info->BindMatch(indx, binfo[i].app_data_type,
-                               binfo[i].array_size, p);
-                break;
-              default:
-                break;
-            }
-          break;
-        default:
-          break;
-      }
-    }
-    if (tuser_data && attr_type == CK_VAL) {
-      p = reinterpret_cast<void *>(reinterpret_cast<char *>(tuser_data)
-          + binfo[i].offset);
-      switch (op) {
-        case UNC_OP_CREATE:
-          if ((dbop.inoutop & (kOpInOutCtrlr | kOpInOutDomain))) {
-            UPLL_LOG_TRACE("CR bind input Cntrlr/Flag %p", p);
-            db_info->BindInput(indx, binfo[i].app_data_type,
-                               binfo[i].array_size, p);
-          }
-          break;
-        case UNC_OP_UPDATE:
-          if ((dbop.matchop & (kOpMatchCtrlr | kOpMatchDomain))
-              || (dbop.matchop & kOpMatchFlag)) {
-            UPLL_LOG_TRACE("UPD bind match Cntrlr/Flag %p", p);
-            db_info->BindMatch(indx, binfo[i].app_data_type,
-                               binfo[i].array_size, p);
-          } else if ((dbop.inoutop & (kOpInOutCtrlr | kOpInOutDomain))
-              || (dbop.inoutop & kOpInOutFlag)) {
-            UPLL_LOG_TRACE("UPD bind input Cntrlr/Flag %p", p);
-            db_info->BindInput(indx, binfo[i].app_data_type,
-                               binfo[i].array_size, p);
+              break;
+            case CFG_MATCH_KEY:
+              UPLL_LOG_TRACE("tkey %p bindmatch %p", tkey,
+                             reinterpret_cast<char*>(p));
+              db_info->BindMatch(indx, binfo[i].app_data_type,
+                                 binfo[i].array_size, p);
+              break;
+            default:
+              break;
           }
           break;
         default:
           break;
       }
+      }
+      if (tuser_data && attr_type == CK_VAL) {
+        p = reinterpret_cast<void *>(reinterpret_cast<char *>(tuser_data)
+                                     + binfo[i].offset);
+        switch (op) {
+          case UNC_OP_CREATE:
+            if ((dbop.inoutop & (kOpInOutCtrlr | kOpInOutDomain))) {
+              UPLL_LOG_TRACE("CR bind input Cntrlr/Flag %p", p);
+              db_info->BindInput(indx, binfo[i].app_data_type,
+                                 binfo[i].array_size, p);
+            }
+            break;
+          case UNC_OP_UPDATE:
+            if ((dbop.matchop & (kOpMatchCtrlr | kOpMatchDomain))
+                || (dbop.matchop & kOpMatchFlag)) {
+              UPLL_LOG_TRACE("UPD bind match Cntrlr/Flag %p", p);
+              db_info->BindMatch(indx, binfo[i].app_data_type,
+                                 binfo[i].array_size, p);
+            } else if ((dbop.inoutop & (kOpInOutCtrlr | kOpInOutDomain))
+                       || (dbop.inoutop & kOpInOutFlag)) {
+              UPLL_LOG_TRACE("UPD bind input Cntrlr/Flag %p", p);
+              db_info->BindInput(indx, binfo[i].app_data_type,
+                                 binfo[i].array_size, p);
+            }
+            break;
+          default:
+            break;
+        }
+      }
     }
+    return result_code;
   }
-  return result_code;
-}
 
-upll_rc_t MoMgrImpl::BindStartup(DalBindInfo *db_info,
-       upll_keytype_datatype_t dt_type, MoMgrTables tbl) {
-  UPLL_FUNC_TRACE;
-  int nattr;
-  BindInfo *binfo;
-  unc_keytype_configstatus_t cs_val = UNC_CS_NOT_APPLIED;
-  if (!GetBindInfo(tbl, dt_type, binfo, nattr))
-    return UPLL_RC_ERR_GENERIC;
-  for (int i = 0; i < nattr; i++) {
-    uint64_t indx = binfo[i].index;
-    BindStructTypes attr_type = binfo[i].struct_type;
-    if (attr_type == CS_VAL) {
-      db_info->BindInput(indx, binfo[i].app_data_type,
-                         binfo[i].array_size, &cs_val);
+  upll_rc_t MoMgrImpl::BindStartup(DalBindInfo *db_info,
+                                   upll_keytype_datatype_t dt_type,
+                                   MoMgrTables tbl) {
+    UPLL_FUNC_TRACE;
+    int nattr;
+    BindInfo *binfo;
+    unc_keytype_configstatus_t cs_val = UNC_CS_NOT_APPLIED;
+    if (!GetBindInfo(tbl, dt_type, binfo, nattr))
+      return UPLL_RC_ERR_GENERIC;
+    for (int i = 0; i < nattr; i++) {
+      uint64_t indx = binfo[i].index;
+      BindStructTypes attr_type = binfo[i].struct_type;
+      if (attr_type == CS_VAL) {
+        db_info->BindInput(indx, binfo[i].app_data_type,
+                           binfo[i].array_size, &cs_val);
+      }
     }
+    return UPLL_RC_SUCCESS;
   }
-  return UPLL_RC_SUCCESS;
-}
 
-// Binding Dummy pointers for matching
-// This is currently specific for CheckRecordsIdentical API.
-upll_rc_t MoMgrImpl::BindCandidateDirty(DalBindInfo *db_info,
-                                        upll_keytype_datatype_t dt_type,
-                                        MoMgrTables tbl,
-                                        const uudst::kDalTableIndex index) {
-  UPLL_FUNC_TRACE;
-  int nattr;
-  BindInfo *binfo;
-  
-  void *dummy = malloc(sizeof(uint16_t)); /* dummy pointer */
-  if (dummy == NULL) {
-    free(dummy);
-    throw new std::bad_alloc;
-  }
-  memset(dummy, 0, sizeof(uint16_t));
+  // Binding Dummy pointers for matching
+  // This is currently specific for CheckRecordsIdentical API.
+  upll_rc_t MoMgrImpl::BindCandidateDirty(DalBindInfo *db_info,
+                                          upll_keytype_datatype_t dt_type,
+                                          MoMgrTables tbl,
+                                          const uudst::kDalTableIndex index) {
+    UPLL_FUNC_TRACE;
+    int nattr;
+    BindInfo *binfo;
 
-  if (!GetBindInfo(tbl, dt_type, binfo, nattr)) {
-    free(dummy);
-    return UPLL_RC_ERR_GENERIC;
-  }
+    void *dummy = malloc(sizeof(uint16_t)); /* dummy pointer */
+    if (dummy == NULL) {
+      throw new std::bad_alloc;
+    }
+    memset(dummy, 0, sizeof(uint16_t));
 
-  for (int i = 0; i < nattr; i++) {
-    uint64_t indx = binfo[i].index;
-    BindStructTypes attr_type = binfo[i].struct_type;
-    if (attr_type != CS_VAL && attr_type != ST_VAL &&
-        attr_type != ST_META_VAL && (((attr_type == CFG_KEY)
-       || (uudst::kDbiVtnCtrlrTbl != index)) 
-       || ((CK_VAL == attr_type) && (uudst::kDbiVtnCtrlrTbl == index)))) {  
-      UPLL_LOG_TRACE("Bind for attr type %d", attr_type);
-      db_info->BindMatch(indx, binfo[i].app_data_type,
-                         binfo[i].array_size, dummy);
+    if (!GetBindInfo(tbl, dt_type, binfo, nattr)) {
+      free(dummy);
+      return UPLL_RC_ERR_GENERIC;
     }
-  }
 
-  free(dummy);
-  return UPLL_RC_SUCCESS;
-}
+    for (int i = 0; i < nattr; i++) {
+      uint64_t indx = binfo[i].index;
+      BindStructTypes attr_type = binfo[i].struct_type;
+      if (attr_type != CS_VAL && attr_type != ST_VAL &&
+          attr_type != ST_META_VAL && ((
+                  (attr_type == CFG_KEY)
+                  || (uudst::kDbiVtnCtrlrTbl != index))
+              || ((CK_VAL == attr_type) &&
+                  (uudst::kDbiVtnCtrlrTbl == index)))) {
+        UPLL_LOG_TRACE("Bind for attr type %d", attr_type);
+        db_info->BindMatch(indx, binfo[i].app_data_type,
+                           binfo[i].array_size, dummy);
+      }
+    }
 
-upll_rc_t MoMgrImpl::TxCopyRenameTableFromCandidateToRunning(
-                                    unc_key_type_t key_type,
-                                    unc_keytype_operation_t op,
-                                    DalDmlIntf* dmi) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  ConfigKeyVal *can_ckv = NULL, *run_ckv = NULL;
-  DalCursor *cfg1_cursor;
-  DalResultCode db_result = uud::kDalRcSuccess;
-  if (op == UNC_OP_UPDATE) {
-    UPLL_LOG_TRACE("No action is performed for Update");
+    free(dummy);
     return UPLL_RC_SUCCESS;
   }
-  result_code = DiffConfigDB(UPLL_DT_CANDIDATE, UPLL_DT_RUNNING, op,
-        can_ckv, run_ckv, &cfg1_cursor, dmi, NULL, RENAMETBL, true);
-  while (result_code == UPLL_RC_SUCCESS) {
-    db_result = dmi->GetNextRecord(cfg1_cursor);
-    result_code = DalToUpllResCode(db_result); 
-    if (result_code != UPLL_RC_SUCCESS)
-       break;
-    /* VRT and VBR sharing the same table so need not use
-     * VRT key type here */
-    switch (key_type) {
-    case UNC_KT_VTN: {
-      val_rename_vtn *ren_val = static_cast<val_rename_vtn *>(
-                                            GetVal(can_ckv));
-      ren_val->valid[UPLL_IDX_NEW_NAME_RVTN] = UNC_VF_VALID; 
-      }
-      break;
-    case UNC_KT_VBRIDGE: 
-    case UNC_KT_VLINK: {
-      val_rename_vnode *ren_val = static_cast<val_rename_vnode *>(
-                                            GetVal(can_ckv));
-      ren_val->valid[UPLL_CTRLR_VTN_NAME_VALID] = UNC_VF_VALID;
-      ren_val->valid[UPLL_CTRLR_VNODE_NAME_VALID] = UNC_VF_VALID; 
-      }
-      break;
-    case UNC_KT_POLICING_PROFILE: {
-      val_rename_policingprofile_t *ren_val = static_cast
-        <val_rename_policingprofile_t *>(GetVal(can_ckv));
-      ren_val->valid[UPLL_IDX_RENAME_PROFILE_RPP] = UNC_VF_VALID;
+
+  upll_rc_t MoMgrImpl::TxCopyRenameTableFromCandidateToRunning(
+      unc_key_type_t key_type,
+      unc_keytype_operation_t op,
+      DalDmlIntf* dmi) {
+    UPLL_FUNC_TRACE;
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+    ConfigKeyVal *can_ckv = NULL, *run_ckv = NULL;
+    DalCursor *cfg1_cursor = NULL;
+    DalResultCode db_result = uud::kDalRcSuccess;
+    if (op == UNC_OP_UPDATE) {
+      UPLL_LOG_TRACE("No action is performed for Update");
+      return UPLL_RC_SUCCESS;
+    }
+    result_code = DiffConfigDB(UPLL_DT_CANDIDATE, UPLL_DT_RUNNING, op,
+                               can_ckv, run_ckv, &cfg1_cursor, dmi, NULL,
+                               RENAMETBL, true);
+    while (result_code == UPLL_RC_SUCCESS) {
+      db_result = dmi->GetNextRecord(cfg1_cursor);
+      result_code = DalToUpllResCode(db_result);
+      if (result_code != UPLL_RC_SUCCESS)
+        break;
+      /* VRT and VBR sharing the same table so need not use
+       * VRT key type here */
+      switch (key_type) {
+        case UNC_KT_VTN: {
+          val_rename_vtn *ren_val = static_cast<val_rename_vtn *>(
+              GetVal(can_ckv));
+          ren_val->valid[UPLL_IDX_NEW_NAME_RVTN] = UNC_VF_VALID;
+        }
+        break;
+        case UNC_KT_VBRIDGE:
+        case UNC_KT_VLINK: {
+          val_rename_vnode *ren_val = static_cast<val_rename_vnode *>(
+              GetVal(can_ckv));
+          ren_val->valid[UPLL_CTRLR_VTN_NAME_VALID] = UNC_VF_VALID;
+          ren_val->valid[UPLL_CTRLR_VNODE_NAME_VALID] = UNC_VF_VALID;
+        }
+        break;
+        case UNC_KT_POLICING_PROFILE: {
+          val_rename_policingprofile_t *ren_val = static_cast
+              <val_rename_policingprofile_t *>(GetVal(can_ckv));
+          ren_val->valid[UPLL_IDX_RENAME_PROFILE_RPP] = UNC_VF_VALID;
+        }
+        break;
+        case UNC_KT_FLOWLIST: {
+          val_rename_flowlist_t *ren_val = static_cast
+              <val_rename_flowlist_t *>(GetVal(can_ckv));
+          ren_val->valid[UPLL_IDX_RENAME_FLOWLIST_RFL] = UNC_VF_VALID;
+        }
+        break;
+        default:
+        UPLL_LOG_DEBUG("No special operation for %u", key_type);
+        break;
       }
-      break;
-    case UNC_KT_FLOWLIST: {
-      val_rename_flowlist_t *ren_val = static_cast
-        <val_rename_flowlist_t *>(GetVal(can_ckv));
-      ren_val->valid[UPLL_IDX_RENAME_FLOWLIST_RFL] = UNC_VF_VALID;
+      // Copy Rename Table Info into Running
+      result_code = UpdateConfigDB(can_ckv,
+                                   UPLL_DT_RUNNING,
+                                   op,
+                                   dmi,
+                                   RENAMETBL);
+      if (result_code != UPLL_RC_SUCCESS) {
+        delete can_ckv; can_ckv = NULL;
+        DELETE_IF_NOT_NULL(run_ckv);
+        if (cfg1_cursor)
+          dmi->CloseCursor(cfg1_cursor, true);
+        UPLL_LOG_DEBUG("Returning error %d", result_code);
+        return UPLL_RC_ERR_GENERIC;
       }
-      break;
-    default:
-      UPLL_LOG_DEBUG("No special operation for %u", key_type);
-      break;
-    }
-    // Copy Rename Table Info into Running
-    result_code = UpdateConfigDB(can_ckv, UPLL_DT_RUNNING, op, dmi, RENAMETBL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      delete can_ckv; can_ckv = NULL;
-      if (cfg1_cursor)
-        dmi->CloseCursor(cfg1_cursor, true);
-      UPLL_LOG_DEBUG("Returning error %d",result_code);
-      return UPLL_RC_ERR_GENERIC;
     }
+    if (cfg1_cursor)
+      dmi->CloseCursor(cfg1_cursor, true);
+    DELETE_IF_NOT_NULL(can_ckv);
+    DELETE_IF_NOT_NULL(run_ckv);
+    result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)?
+        UPLL_RC_SUCCESS : result_code;
+    return result_code;
   }
-  if (cfg1_cursor)
-    dmi->CloseCursor(cfg1_cursor, true);
-  DELETE_IF_NOT_NULL(can_ckv);
-  DELETE_IF_NOT_NULL(run_ckv);
-  result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)?
-    UPLL_RC_SUCCESS : result_code;
-  return result_code; 
-}
 
 #if 0
-template<typename T1, typename T2>
+  template<typename T1, typename T2>
 upll_rc_t MoMgrImpl::GetCkvWithOperSt(ConfigKeyVal *&ck_vn,
-                                  unc_key_type_t ktype,
-                                  DalDmlIntf     *dmi) {
+                                      unc_key_type_t ktype,
+                                      DalDmlIntf     *dmi) {
   if (ck_vn != NULL) return UPLL_RC_ERR_GENERIC;
   ConfigVal *cval = NULL;
-  MoMgrImpl *mgr = NULL ; 
-  upll_rc_t result_code = AllocVal(cval,UPLL_DT_STATE,MAINTBL);
+  MoMgrImpl *mgr = NULL;
+  upll_rc_t result_code = AllocVal(cval, UPLL_DT_STATE, MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Returning error %d",result_code);
+    UPLL_LOG_DEBUG("Returning error %d", result_code);
     return result_code;
   }
 
   /* initialize vnode st */
   T2 * vnode_st = reinterpret_cast<T2 *>
-                               (cval->get_next_cfg_val()->get_val());
+      (cval->get_next_cfg_val()->get_val());
   if (!vnode_st) {
-   delete cval;
-   UPLL_LOG_DEBUG("Invalid param");
-   return UPLL_RC_ERR_GENERIC;
+    delete cval;
+    UPLL_LOG_DEBUG("Invalid param");
+    return UPLL_RC_ERR_GENERIC;
   }
   T1 *vn_st = reinterpret_cast<T1 *>(vnode_st);
   vn_st->valid[UPLL_IDX_OPER_STATUS_VBRIS] = UNC_VF_VALID;
@@ -1511,89 +1717,107 @@ upll_rc_t MoMgrImpl::GetCkvWithOperSt(ConfigKeyVal *&ck_vn,
 
   /* Create Vnode If child */
   switch (ktype) {
-  case UNC_KT_VTN:
-  case UNC_KT_VLINK:
-    mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
-                                            (GetMoManager(ktype)));
-    break;
-  case UNC_KT_VBRIDGE:
-    mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
-                                            (GetMoManager(UNC_KT_VBR_IF)));
-    break;
-  case UNC_KT_VROUTER:
-    mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
-                                            (GetMoManager(UNC_KT_VRT_IF)));
-    break;
-  case UNC_KT_VTEP:
-    mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
-                                            (GetMoManager(UNC_KT_VTEP_IF)));
-    break;
-  case UNC_KT_VTUNNEL:
-    mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
-                                            (GetMoManager(UNC_KT_VTUNNEL_IF)));
-    break;
-  default:
-    UPLL_LOG_DEBUG("Unsupported operation on keytype %d",ktype);
-    return UPLL_RC_ERR_GENERIC;
+    case UNC_KT_VTN:
+    case UNC_KT_VLINK:
+      mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
+                                          (GetMoManager(ktype)));
+      break;
+    case UNC_KT_VBRIDGE:
+      mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
+                                          (GetMoManager(UNC_KT_VBR_IF)));
+      break;
+    case UNC_KT_VROUTER:
+      mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
+                                          (GetMoManager(UNC_KT_VRT_IF)));
+      break;
+    case UNC_KT_VTEP:
+      mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
+                                          (GetMoManager(UNC_KT_VTEP_IF)));
+      break;
+    case UNC_KT_VTUNNEL:
+      mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
+                                          (GetMoManager(UNC_KT_VTUNNEL_IF)));
+      break;
+    default:
+      UPLL_LOG_DEBUG("Unsupported operation on keytype %d", ktype);
+      return UPLL_RC_ERR_GENERIC;
   }
-  result_code = mgr->GetChildConfigKey(ck_vn, NULL); 
+  result_code = mgr->GetChildConfigKey(ck_vn, NULL);
   if (UPLL_RC_SUCCESS != result_code || ck_vn == NULL)  {
     delete cval;
     if (ck_vn) delete ck_vn;
     UPLL_LOG_DEBUG("GetChildConfigKey Failed %d", result_code);
     return result_code;
   }
-  ck_vn->AppendCfgVal(cval); 
+  ck_vn->AppendCfgVal(cval);
 
-  /* Reading the Vnode Table and Check the Operstatus is unknown 
+  /* Reading the Vnode Table and Check the Operstatus is unknown
    * for any one of the vnode if */
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutFlag |
-                           kOpInOutCtrlr | kOpInOutDomain };
+    kOpInOutCtrlr | kOpInOutDomain };
   result_code = mgr->ReadConfigDB(ck_vn, UPLL_DT_STATE, UNC_OP_READ,
-                                  dbop,dmi,MAINTBL); 
+                                  dbop, dmi, MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
-     result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)?
-                 UPLL_RC_SUCCESS : result_code;
-     UPLL_LOG_DEBUG("Returning %d",result_code);
-     if (ck_vn) delete ck_vn;
-     return result_code;
+    result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)?
+        UPLL_RC_SUCCESS : result_code;
+    UPLL_LOG_DEBUG("Returning %d", result_code);
+    if (ck_vn) delete ck_vn;
+    return result_code;
   }
   return UPLL_RC_SUCCESS;
 }
 
-template upll_rc_t 
-MoMgrImpl::GetCkvWithOperSt<val_vlink_st_t,val_db_vlink_st_t> (ConfigKeyVal *&ck_vn, unc_key_type_t ktype, DalDmlIntf   *dmi) ;
-template upll_rc_t 
-MoMgrImpl::GetCkvWithOperSt<val_vbr_if_st_t,val_db_vbr_if_st_t> (ConfigKeyVal *&ck_vn, unc_key_type_t ktype, DalDmlIntf   *dmi) ;
-template upll_rc_t 
-MoMgrImpl::GetCkvWithOperSt<val_vrt_if_st_t,val_db_vrt_if_st_t> (ConfigKeyVal *&ck_vn, unc_key_type_t ktype, DalDmlIntf   *dmi) ;
-template upll_rc_t 
-MoMgrImpl::GetCkvWithOperSt<val_vtunnel_if_st_t,val_db_vtunnel_if_st_t> (ConfigKeyVal *&ck_vn, unc_key_type_t ktype, DalDmlIntf   *dmi) ;
-template upll_rc_t 
-MoMgrImpl::GetCkvWithOperSt<val_vtep_if_st_t,val_db_vtep_if_st_t> (ConfigKeyVal *&ck_vn, unc_key_type_t ktype, DalDmlIntf   *dmi) ;
-template upll_rc_t 
-MoMgrImpl::GetCkvWithOperSt<val_vtn_st_t,val_db_vtn_st_t> (ConfigKeyVal *&ck_vn, unc_key_type_t ktype, DalDmlIntf   *dmi) ;
+template upll_rc_t
+MoMgrImpl::GetCkvWithOperSt<val_vlink_st_t, val_db_vlink_st_t> (
+    ConfigKeyVal *&ck_vn,
+    unc_key_type_t ktype,
+    DalDmlIntf   *dmi);
+template upll_rc_t
+MoMgrImpl::GetCkvWithOperSt<val_vbr_if_st_t, val_db_vbr_if_st_t> (
+    ConfigKeyVal *&ck_vn,
+    unc_key_type_t ktype,
+    DalDmlIntf   *dmi);
+template upll_rc_t
+MoMgrImpl::GetCkvWithOperSt<val_vrt_if_st_t, val_db_vrt_if_st_t> (
+    ConfigKeyVal *&ck_vn,
+    unc_key_type_t ktype,
+    DalDmlIntf   *dmi);
+template upll_rc_t
+MoMgrImpl::GetCkvWithOperSt<val_vtunnel_if_st_t, val_db_vtunnel_if_st_t> (
+    ConfigKeyVal *&ck_vn,
+    unc_key_type_t ktype,
+    DalDmlIntf   *dmi);
+template upll_rc_t
+MoMgrImpl::GetCkvWithOperSt<val_vtep_if_st_t, val_db_vtep_if_st_t> (
+    ConfigKeyVal *&ck_vn,
+    unc_key_type_t ktype,
+    DalDmlIntf   *dmi);
+template upll_rc_t
+MoMgrImpl::GetCkvWithOperSt<val_vtn_st_t, val_db_vtn_st_t> (
+    ConfigKeyVal *&ck_vn,
+    unc_key_type_t ktype,
+    DalDmlIntf   *dmi);
 #else
 
 upll_rc_t MoMgrImpl::GetUninitOperState(ConfigKeyVal *&ck_vn,
-                                           DalDmlIntf *dmi) {
+                                        DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   result_code = GetCkvUninit(ck_vn, NULL, dmi);
   if (result_code != UPLL_RC_SUCCESS) {
-   UPLL_LOG_DEBUG("Returning error %d\n",result_code);
-   return result_code;
+    UPLL_LOG_DEBUG("Returning error %d\n", result_code);
+    return result_code;
   }
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutFlag |
-                           kOpInOutCtrlr | kOpInOutDomain };
+    kOpInOutCtrlr | kOpInOutDomain };
   result_code = ReadConfigDB(ck_vn, UPLL_DT_STATE, UNC_OP_READ,
-                                  dbop, dmi, MAINTBL); 
+                             dbop, dmi, MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
-     result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)?
-                 UPLL_RC_SUCCESS : result_code;
-     UPLL_LOG_DEBUG("Returning %d",result_code);
-     delete ck_vn;
-     ck_vn = NULL;
+    result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)?
+        UPLL_RC_SUCCESS : result_code;
+    UPLL_LOG_DEBUG("Returning %d", result_code);
+    delete ck_vn;
+    ck_vn = NULL;
   }
   return result_code;
 }
@@ -1603,76 +1827,77 @@ upll_rc_t MoMgrImpl::GetCkvUninit(ConfigKeyVal *&ck_vn,
                                   DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
+
   if (ck_vn == NULL) {
     ConfigVal *cval = NULL;
     /* Create ckv of corresponding keytype */
-    result_code = GetChildConfigKey (ck_vn, ikey); 
+    result_code = GetChildConfigKey(ck_vn, ikey);
     if (UPLL_RC_SUCCESS != result_code)  {
       UPLL_LOG_DEBUG("GetChildConfigKey Failed %d", result_code);
       return result_code;
     }
     /* Allocate Memory for vnode st */
-    result_code = AllocVal(cval,UPLL_DT_STATE,MAINTBL);
+    result_code = AllocVal(cval, UPLL_DT_STATE, MAINTBL);
     if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Returning error %d",result_code);
+      UPLL_LOG_DEBUG("Returning error %d", result_code);
       DELETE_IF_NOT_NULL(ck_vn);
       return result_code;
     }
-    ck_vn->AppendCfgVal(cval); 
-  } 
-    /* initialize vnode st */
+    ck_vn->AppendCfgVal(cval);
+  }
+  /* initialize vnode st */
   void *vnif = GetStateVal(ck_vn);
   if (!vnif) {
     UPLL_LOG_DEBUG("Invalid param\n");
+    DELETE_IF_NOT_NULL(ck_vn);
     return UPLL_RC_ERR_GENERIC;
   }
   switch (ck_vn->get_key_type()) {
-  case UNC_KT_VTN:
-  {
-    val_vtn_st *vtnst = reinterpret_cast<val_vtn_st *>(vnif);
-    vtnst->valid[UPLL_IDX_OPER_STATUS_VBRIS] = UNC_VF_VALID;
-    vtnst->oper_status = UPLL_OPER_STATUS_UNINIT;
-    break;
-  }
-  case UNC_KT_VBRIDGE:
-  case UNC_KT_VROUTER:
-  case UNC_KT_VTUNNEL:
-  case UNC_KT_VTEP:
-  case UNC_KT_VLINK:
-  {
-  /* cast generically as vbr as all  vnode st structures 
-   * are the same and form the first field in the db st structure.
-   */
-    val_vbr_st *vnodest = reinterpret_cast<val_vbr_st *>(vnif);
-    vnodest->valid[UPLL_IDX_OPER_STATUS_VBRIS] = UNC_VF_VALID;
-    vnodest->oper_status = UPLL_OPER_STATUS_UNINIT;
-    break;
-  }
-  case UNC_KT_VBR_IF:
-  case UNC_KT_VRT_IF:
-  case UNC_KT_VTEP_IF:
-  case UNC_KT_VTUNNEL_IF:
-  {
-  /* cast generically as vbr_if as all  vnodeif st structures 
-   * are the same and form the first field in the db st structure.
-   */
-    val_vbr_if_st *vnifst = reinterpret_cast<val_vbr_if_st *>(vnif);
-    vnifst->valid[UPLL_IDX_OPER_STATUS_VBRIS] = UNC_VF_VALID;
-    vnifst->oper_status = UPLL_OPER_STATUS_UNINIT;
-    break;
-  }
-  default:
-    UPLL_LOG_DEBUG("Unsupported keytype\n");
-    DELETE_IF_NOT_NULL(ck_vn);
-    return UPLL_RC_ERR_GENERIC;
+    case UNC_KT_VTN:
+      {
+        val_vtn_st *vtnst = reinterpret_cast<val_vtn_st *>(vnif);
+        vtnst->valid[UPLL_IDX_OPER_STATUS_VBRIS] = UNC_VF_VALID;
+        vtnst->oper_status = UPLL_OPER_STATUS_UNINIT;
+        break;
+      }
+    case UNC_KT_VBRIDGE:
+    case UNC_KT_VROUTER:
+    case UNC_KT_VTUNNEL:
+    case UNC_KT_VTEP:
+    case UNC_KT_VLINK:
+      {
+        /* cast generically as vbr as all  vnode st structures
+         * are the same and form the first field in the db st structure.
+         */
+        val_vbr_st *vnodest = reinterpret_cast<val_vbr_st *>(vnif);
+        vnodest->valid[UPLL_IDX_OPER_STATUS_VBRIS] = UNC_VF_VALID;
+        vnodest->oper_status = UPLL_OPER_STATUS_UNINIT;
+        break;
+      }
+    case UNC_KT_VBR_IF:
+    case UNC_KT_VRT_IF:
+    case UNC_KT_VTEP_IF:
+    case UNC_KT_VTUNNEL_IF:
+      {
+        /* cast generically as vbr_if as all  vnodeif st structures
+         * are the same and form the first field in the db st structure.
+         */
+        val_vbr_if_st *vnifst = reinterpret_cast<val_vbr_if_st *>(vnif);
+        vnifst->valid[UPLL_IDX_OPER_STATUS_VBRIS] = UNC_VF_VALID;
+        vnifst->oper_status = UPLL_OPER_STATUS_UNINIT;
+        break;
+      }
+    default:
+      UPLL_LOG_DEBUG("Unsupported keytype\n");
+      DELETE_IF_NOT_NULL(ck_vn);
+      return UPLL_RC_ERR_GENERIC;
   }
 
 #if 0
-  /* Reading the Vnode Table and Check the Operstatus is unknown 
+  /* Reading the Vnode Table and Check the Operstatus is unknown
    * for any one of the vnode if */
   DbSubOp dbop = { kOpReadExist | kOpReadMultiple, kOpMatchNone, kOpInOutFlag |
-                           kOpInOutCtrlr | kOpInOutDomain };
+    kOpInOutCtrlr | kOpInOutDomain };
   if (PORT_MAPPED_KEYTYPE(ck_vn->get_key_type()))
     dbop.readop = kOpReadMultiple;
 #endif
@@ -1692,10 +1917,10 @@ upll_rc_t MoMgrImpl::BindImportDB(ConfigKeyVal *&ikey,
     UPLL_LOG_DEBUG("Input key is Empty");
     return UPLL_RC_ERR_GENERIC;
   }
-   /* Allocate memeory for key user data to fetch 
-    * controller, domain and rename flag */
+  /* Allocate memeory for key user data to fetch
+   * controller, domain and rename flag */
   AllocVal(ck_val, dt_type, RENAMETBL);
-  if(!ck_val) return UPLL_RC_ERR_GENERIC;
+  if (!ck_val) return UPLL_RC_ERR_GENERIC;
   ikey->SetCfgVal(ck_val);
   void *tval = ck_val->get_val();
   if (!tval) return UPLL_RC_ERR_GENERIC;
@@ -1703,8 +1928,8 @@ upll_rc_t MoMgrImpl::BindImportDB(ConfigKeyVal *&ikey,
   tuser_data = reinterpret_cast<key_user_data_t *>(ikey->get_user_data());
 
   if (!tuser_data) {
-   UPLL_LOG_DEBUG("Memory Allocation Failed");
-   return UPLL_RC_ERR_GENERIC;
+    UPLL_LOG_DEBUG("Memory Allocation Failed");
+    return UPLL_RC_ERR_GENERIC;
   }
   void *tkey = ikey->get_key();
   void *p = NULL;
@@ -1719,60 +1944,59 @@ upll_rc_t MoMgrImpl::BindImportDB(ConfigKeyVal *&ikey,
     UPLL_LOG_TRACE("Attribute type is %d", attr_type);
     if (CFG_KEY == attr_type) {
       p = reinterpret_cast<void *>(reinterpret_cast<char *>(tkey)
-          + binfo[i].offset);
-       UPLL_LOG_TRACE("Attribute type is %d", attr_type);
-       if (IsValidKey(tkey, indx))    {
-         UPLL_LOG_TRACE("Key is valid ");        
-         db_info->BindMatch(indx, binfo[i].app_data_type,
-                         binfo[i].array_size, p);
-       }
+                                   + binfo[i].offset);
+      UPLL_LOG_TRACE("Attribute type is %d", attr_type);
+      if (IsValidKey(tkey, indx)) {
+        UPLL_LOG_TRACE("Key is valid ");
+        db_info->BindMatch(indx, binfo[i].app_data_type,
+                           binfo[i].array_size, p);
+      }
     }
     if (CK_VAL == attr_type) {
       /* For Domain and controller output */
       UPLL_LOG_TRACE("Attribute type is %d", attr_type);
       p = reinterpret_cast<void *>(reinterpret_cast<char *>(tuser_data)
-          + binfo[i].offset);
+                                   + binfo[i].offset);
     }
     if (CFG_VAL == attr_type) {
-     UPLL_LOG_TRACE("Attribute type is %d", attr_type);
+      UPLL_LOG_TRACE("Attribute type is %d", attr_type);
       p = reinterpret_cast<void *>(reinterpret_cast<char *>(tval)
-          + binfo[i].offset);
+                                   + binfo[i].offset);
     }
     if (p)
-    db_info->BindOutput(indx, binfo[i].app_data_type,
-                         binfo[i].array_size, p);
-    }
+      db_info->BindOutput(indx, binfo[i].app_data_type,
+                          binfo[i].array_size, p);
+  }
 
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t MoMgrImpl::Getvalstnum(ConfigKeyVal *&ikey, 
+upll_rc_t MoMgrImpl::Getvalstnum(ConfigKeyVal *&ikey,
                                  uui::IpctSt::IpcStructNum &struct_num) {
-
- switch(ikey->get_key_type()) {
-   case UNC_KT_FLOWLIST:
-     struct_num = IpctSt::kIpcStValRenameFlowlist;
-     break;
-   case UNC_KT_POLICING_PROFILE:
-     struct_num = IpctSt::kIpcStValRenamePolicingprofile;
-     break;
-   case UNC_KT_VTN:
-     struct_num = IpctSt::kIpcStValRenameVtn;
-     break;
-   case UNC_KT_VBRIDGE:
-     struct_num = IpctSt::kIpcStValRenameVbr;
-     break;
-   case UNC_KT_VROUTER:
-     struct_num = IpctSt::kIpcStValRenameVrt;
-     break;
-   case UNC_KT_VLINK:
-     struct_num = IpctSt::kIpcStValRenameVlink;
-     break;
-   default:
-     struct_num  = IpctSt::kIpcInvalidStNum;
-     break;
-  }
- return UPLL_RC_SUCCESS;
+  switch (ikey->get_key_type()) {
+    case UNC_KT_FLOWLIST:
+      struct_num = IpctSt::kIpcStValRenameFlowlist;
+      break;
+    case UNC_KT_POLICING_PROFILE:
+      struct_num = IpctSt::kIpcStValRenamePolicingprofile;
+      break;
+    case UNC_KT_VTN:
+      struct_num = IpctSt::kIpcStValRenameVtn;
+      break;
+    case UNC_KT_VBRIDGE:
+      struct_num = IpctSt::kIpcStValRenameVbr;
+      break;
+    case UNC_KT_VROUTER:
+      struct_num = IpctSt::kIpcStValRenameVrt;
+      break;
+    case UNC_KT_VLINK:
+      struct_num = IpctSt::kIpcStValRenameVlink;
+      break;
+    default:
+      struct_num  = IpctSt::kIpcInvalidStNum;
+      break;
+  }
+  return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t MoMgrImpl::Swapvaltokey(ConfigKeyVal *&ikey,
@@ -1790,150 +2014,175 @@ upll_rc_t MoMgrImpl::Swapvaltokey(ConfigKeyVal *&ikey,
     switch (ikey->get_key_type()) {
       case UNC_KT_FLOWLIST:
         {
-         rename = reinterpret_cast<val_rename_flowlist_t *>(
-                   ConfigKeyVal::Malloc(sizeof(val_rename_flowlist_t)));
-         rename_val = reinterpret_cast<val_rename_flowlist_t *>(GetVal(ikey));
-         if (!rename_val) {
-          UPLL_LOG_DEBUG("Val is Empty");
-          free(rename);
-          return UPLL_RC_ERR_GENERIC;
-        }
-        if (!rename_flag) {
-          if (!strcmp((const char *)reinterpret_cast<key_flowlist_t *>(ikey->get_key())->flowlist_name,
-                      (const char *)reinterpret_cast<val_rename_vtn_t*>(rename_val)->new_name))
-          reinterpret_cast<val_rename_flowlist_t*>(rename)->valid[UPLL_CTRLR_VTN_NAME_VALID] = UNC_VF_INVALID;
-        }
-        else {
-          reinterpret_cast<val_rename_flowlist_t*>(rename)->valid[UPLL_CTRLR_VTN_NAME_VALID] = UNC_VF_VALID;
-        }
-         /* copyt key to temp */
-        uuu::upll_strncpy (temp_str, reinterpret_cast<key_flowlist_t*>
-                           (ikey->get_key())->flowlist_name,
-                           (kMaxLenFlowListName+1)); 
-        /* Copy Controller name to key */
-        uuu::upll_strncpy( reinterpret_cast<key_flowlist_t *>(ikey->get_key())->flowlist_name,
-             reinterpret_cast<val_rename_flowlist_t* >(rename_val)->flowlist_newname,
-                         (kMaxLenFlowListName+1));
-        /* Copy the UNC name to Val */
-        uuu::upll_strncpy ( reinterpret_cast<val_rename_flowlist_t*>(rename)->flowlist_newname, temp_str,
+          rename = reinterpret_cast<val_rename_flowlist_t *>(
+              ConfigKeyVal::Malloc(sizeof(val_rename_flowlist_t)));
+          rename_val = reinterpret_cast<val_rename_flowlist_t *>(GetVal(ikey));
+          if (!rename_val) {
+            UPLL_LOG_DEBUG("Val is Empty");
+            free(rename);
+            return UPLL_RC_ERR_GENERIC;
+          }
+          if (!rename_flag) {
+            if (!strcmp((const char *)reinterpret_cast<key_flowlist_t *>
+                        (ikey->get_key())->flowlist_name,
+                        (const char *)reinterpret_cast<val_rename_vtn_t*>
+                        (rename_val)->new_name))
+              reinterpret_cast<val_rename_flowlist_t*>
+                  (rename)->valid[UPLL_CTRLR_VTN_NAME_VALID] = UNC_VF_INVALID;
+          }
+          else {
+            reinterpret_cast<val_rename_flowlist_t*>
+                (rename)->valid[UPLL_CTRLR_VTN_NAME_VALID] = UNC_VF_VALID;
+          }
+          /* copyt key to temp */
+          uuu::upll_strncpy(temp_str, reinterpret_cast<key_flowlist_t*>
+                             (ikey->get_key())->flowlist_name,
+                             (kMaxLenFlowListName+1));
+          /* Copy Controller name to key */
+          uuu::upll_strncpy(reinterpret_cast<key_flowlist_t *>
+                            (ikey->get_key())->flowlist_name,
+                            reinterpret_cast<val_rename_flowlist_t* >
+                            (rename_val)->flowlist_newname,
                             (kMaxLenFlowListName+1));
+          /* Copy the UNC name to Val */
+          uuu::upll_strncpy(reinterpret_cast<val_rename_flowlist_t*>
+                             (rename)->flowlist_newname, temp_str,
+                             (kMaxLenFlowListName+1));
         }
         break;
       case UNC_KT_POLICING_PROFILE:
         {
-         rename = reinterpret_cast<val_rename_policingprofile_t *>(
-                           ConfigKeyVal::Malloc(sizeof(val_rename_policingprofile_t)));
-         rename_val = reinterpret_cast<val_rename_policingprofile_t *>(GetVal(ikey));
-         if (!rename_val) {
-          UPLL_LOG_DEBUG("Val is Empty");
-          free(rename);
-          return UPLL_RC_ERR_GENERIC;
-         }
-        if (!rename_flag) {
-          if (!strcmp((const char *)reinterpret_cast<key_policingprofile *>(ikey->get_key())->policingprofile_name,
-                      (const char *)reinterpret_cast<val_rename_vtn_t*>(rename_val)->new_name))
-          reinterpret_cast<val_rename_policingprofile_t*>(rename)->valid[UPLL_CTRLR_VTN_NAME_VALID] = UNC_VF_INVALID;
-        }
-        else {
-          reinterpret_cast<val_rename_policingprofile_t*>(rename)->valid[UPLL_CTRLR_VTN_NAME_VALID] = UNC_VF_VALID;
-        }
-         /* copyt key to temp */
-        uuu::upll_strncpy (temp_str, reinterpret_cast<key_policingprofile_t*>
-                           (ikey->get_key())->policingprofile_name,
-                           (kMaxLenPolicingProfileName+1));
-        /* Copy Controller name to key */
-        uuu::upll_strncpy( reinterpret_cast<key_policingprofile_t *>
+          rename = reinterpret_cast<val_rename_policingprofile_t *>(
+              ConfigKeyVal::Malloc(sizeof(val_rename_policingprofile_t)));
+          rename_val = reinterpret_cast
+              <val_rename_policingprofile_t *>(GetVal(ikey));
+          if (!rename_val) {
+            UPLL_LOG_DEBUG("Val is Empty");
+            free(rename);
+            return UPLL_RC_ERR_GENERIC;
+          }
+          if (!rename_flag) {
+            if (!strcmp((const char *)reinterpret_cast<key_policingprofile *>
+                        (ikey->get_key())->policingprofile_name,
+                        (const char *)reinterpret_cast<val_rename_vtn_t*>
+                        (rename_val)->new_name))
+              reinterpret_cast<val_rename_policingprofile_t*>(rename)->
+                  valid[UPLL_CTRLR_VTN_NAME_VALID] = UNC_VF_INVALID;
+          }
+          else {
+            reinterpret_cast<val_rename_policingprofile_t*>(rename)->
+                valid[UPLL_CTRLR_VTN_NAME_VALID] = UNC_VF_VALID;
+          }
+          /* copyt key to temp */
+          uuu::upll_strncpy(temp_str, reinterpret_cast<key_policingprofile_t*>
+                             (ikey->get_key())->policingprofile_name,
+                             (kMaxLenPolicingProfileName+1));
+          /* Copy Controller name to key */
+          uuu::upll_strncpy(reinterpret_cast<key_policingprofile_t *>
                             (ikey->get_key())->policingprofile_name,
-             reinterpret_cast<val_rename_policingprofile_t* >
+                            reinterpret_cast<val_rename_policingprofile_t* >
                             (rename_val)->policingprofile_newname,
                             (kMaxLenPolicingProfileName+1));
-        /* Copy the UNC name to Val */
-        uuu::upll_strncpy ( reinterpret_cast<val_rename_policingprofile_t*>(rename)->policingprofile_newname, temp_str,
-                            (kMaxLenPolicingProfileName+1));
+          /* Copy the UNC name to Val */
+          uuu::upll_strncpy(reinterpret_cast<val_rename_policingprofile_t*>
+                             (rename)->policingprofile_newname, temp_str,
+                             (kMaxLenPolicingProfileName+1));
         }
 
         break;
       case UNC_KT_VTN:
         {
-        rename = reinterpret_cast<val_rename_vtn_t *>(
-                           ConfigKeyVal::Malloc(sizeof(val_rename_vtn_t)));
-        rename_val = reinterpret_cast<val_rename_vtn_t *>(GetVal(ikey));
-        if (!rename_val) {
-          UPLL_LOG_DEBUG("Val is Empty");
-          free(rename);
-          return UPLL_RC_ERR_GENERIC;
-        }
-        if (!rename_flag) {
-          if (!strcmp((const char *)reinterpret_cast<key_vtn_t *>(ikey->get_key())->vtn_name,
-                      (const char *)reinterpret_cast<val_rename_vtn_t*>(rename_val)->new_name))
-          reinterpret_cast<val_rename_vtn_t*>(rename)->valid[UPLL_CTRLR_VTN_NAME_VALID] = UNC_VF_INVALID;
-        }
-        else {
-          reinterpret_cast<val_rename_vtn_t*>(rename)->valid[UPLL_CTRLR_VTN_NAME_VALID] = UNC_VF_VALID;
-        }
-         /* copyt key to temp */
-        uuu::upll_strncpy (temp_str, reinterpret_cast<key_vtn_t*>
-                           (ikey->get_key())->vtn_name,
-                           (kMaxLenVtnName+1));
-        /* Copy Controller name to key */
-        uuu::upll_strncpy( reinterpret_cast<key_vtn_t *>
+          rename = reinterpret_cast<val_rename_vtn_t *>(
+              ConfigKeyVal::Malloc(sizeof(val_rename_vtn_t)));
+          rename_val = reinterpret_cast<val_rename_vtn_t *>(GetVal(ikey));
+          if (!rename_val) {
+            UPLL_LOG_DEBUG("Val is Empty");
+            free(rename);
+            return UPLL_RC_ERR_GENERIC;
+          }
+          if (!rename_flag) {
+            if (!strcmp((const char *)reinterpret_cast<key_vtn_t *>
+                        (ikey->get_key())->vtn_name,
+                        (const char *)reinterpret_cast<val_rename_vtn_t*>
+                        (rename_val)->new_name))
+              reinterpret_cast<val_rename_vtn_t*>(rename)->
+                  valid[UPLL_CTRLR_VTN_NAME_VALID] = UNC_VF_INVALID;
+          }
+          else {
+            reinterpret_cast<val_rename_vtn_t*>(rename)->
+                valid[UPLL_CTRLR_VTN_NAME_VALID] = UNC_VF_VALID;
+          }
+          /* copyt key to temp */
+          uuu::upll_strncpy(temp_str, reinterpret_cast<key_vtn_t*>
+                             (ikey->get_key())->vtn_name,
+                             (kMaxLenVtnName+1));
+          /* Copy Controller name to key */
+          uuu::upll_strncpy(reinterpret_cast<key_vtn_t *>
                             (ikey->get_key())->vtn_name,
-             reinterpret_cast<val_rename_vtn_t* >
+                            reinterpret_cast<val_rename_vtn_t* >
                             (rename_val)->new_name,
                             (kMaxLenVtnName+1));
-        /* Copy the UNC name to Val */
-        uuu::upll_strncpy (reinterpret_cast<val_rename_vtn_t*>(rename)->new_name, temp_str,
-                            (kMaxLenVtnName+1));
+          /* Copy the UNC name to Val */
+          uuu::upll_strncpy(reinterpret_cast<val_rename_vtn_t*>
+                             (rename)->new_name, temp_str,
+                             (kMaxLenVtnName+1));
         }
         break;
       case UNC_KT_VBRIDGE:
       case UNC_KT_VROUTER:
       case UNC_KT_VLINK:
-      {
-        rename = reinterpret_cast<val_rename_vtn_t *>(
-                           ConfigKeyVal::Malloc(sizeof(val_rename_vtn_t)));
-        rename_val = reinterpret_cast<val_rename_vnode_t *>(GetVal(ikey));
-        if (!rename_val) {
-          UPLL_LOG_DEBUG("Val is Empty");
-          free(rename);
-          return UPLL_RC_ERR_GENERIC;
-        }
-        if (!strcmp((const char*)reinterpret_cast<key_vbr_t *>(ikey->get_key())->vbridge_name,
-                  (const char *)reinterpret_cast<val_rename_vnode_t*>(rename_val)->ctrlr_vnode_name)) {
-          reinterpret_cast<val_rename_vtn_t*>(rename)->valid[UPLL_CTRLR_VTN_NAME_VALID] = UNC_VF_INVALID;
-        }
-        else {
-          reinterpret_cast<val_rename_vtn_t*>(rename)->valid[UPLL_CTRLR_VTN_NAME_VALID] = UNC_VF_VALID;
-        }
+        {
+          rename = reinterpret_cast<val_rename_vtn_t *>(
+              ConfigKeyVal::Malloc(sizeof(val_rename_vtn_t)));
+          rename_val = reinterpret_cast<val_rename_vnode_t *>(GetVal(ikey));
+          if (!rename_val) {
+            UPLL_LOG_DEBUG("Val is Empty");
+            free(rename);
+            return UPLL_RC_ERR_GENERIC;
+          }
+          if (!strcmp((const char*)reinterpret_cast<key_vbr_t *>
+                      (ikey->get_key())->vbridge_name,
+                      (const char *)reinterpret_cast<val_rename_vnode_t*>
+                      (rename_val)->ctrlr_vnode_name)) {
+            reinterpret_cast<val_rename_vtn_t*>(rename)->
+                valid[UPLL_CTRLR_VTN_NAME_VALID] =
+                UNC_VF_INVALID;
+          }
+          else {
+            reinterpret_cast<val_rename_vtn_t*>(rename)->
+                valid[UPLL_CTRLR_VTN_NAME_VALID] =
+                UNC_VF_VALID;
+          }
 
-        /* copyt key to temp */
-        uuu::upll_strncpy (temp_str, reinterpret_cast<key_vbr_t*>
-                           (ikey->get_key())->vbridge_name,
-                           (kMaxLenVnodeName+1));
+          /* copyt key to temp */
+          uuu::upll_strncpy(temp_str, reinterpret_cast<key_vbr_t*>
+                             (ikey->get_key())->vbridge_name,
+                             (kMaxLenVnodeName+1));
 
-        /* Copy Controller name to key */
-        uuu::upll_strncpy( reinterpret_cast<key_vbr_t *>
+          /* Copy Controller name to key */
+          uuu::upll_strncpy(reinterpret_cast<key_vbr_t *>
                             (ikey->get_key())->vtn_key.vtn_name,
-             reinterpret_cast<val_rename_vnode_t* >
+                            reinterpret_cast<val_rename_vnode_t* >
                             (rename_val)->ctrlr_vtn_name,
                             (kMaxLenVtnName+1));
-        uuu::upll_strncpy( reinterpret_cast<key_vbr_t *>
+          uuu::upll_strncpy(reinterpret_cast<key_vbr_t *>
                             (ikey->get_key())->vbridge_name,
-             reinterpret_cast<val_rename_vnode_t* >
+                            reinterpret_cast<val_rename_vnode_t* >
                             (rename_val)->ctrlr_vnode_name,
                             (kMaxLenVnodeName+1));
-        /* Copy the UNC name to Val */
-        uuu::upll_strncpy ( reinterpret_cast<val_rename_vtn_t*>(rename)->new_name, temp_str,
-                            (kMaxLenVnodeName+1));
-      }
+          /* Copy the UNC name to Val */
+          uuu::upll_strncpy(reinterpret_cast<val_rename_vtn_t*>
+                            (rename)->new_name,
+                             temp_str,
+                             (kMaxLenVnodeName+1));
+        }
         break;
       default:
         break;
     }
-   }
-   ikey->SetCfgVal(new ConfigVal(struct_num, rename));
-   return UPLL_RC_SUCCESS;
-
+  }
+  ikey->SetCfgVal(new ConfigVal(struct_num, rename));
+  return UPLL_RC_SUCCESS;
 }
 
 
@@ -1941,60 +2190,62 @@ upll_rc_t MoMgrImpl::SwapKey(ConfigKeyVal *&ikey,
                              uint8_t rename_flag) {
   UPLL_FUNC_TRACE;
   uui::IpctSt::IpcStructNum struct_num  = IpctSt::kIpcInvalidStNum;
-  void *rename = NULL; 
-  UPLL_LOG_TRACE("Before Swap Key %s %d", ikey->ToStrAll().c_str(),rename_flag);
+  void *rename = NULL;
+  UPLL_LOG_TRACE("Before Swap Key %s %d", ikey->ToStrAll().c_str(),
+                 rename_flag);
   if (rename_flag) {
     Swapvaltokey(ikey, rename_flag);
   } else {
-
-    Getvalstnum(ikey, struct_num); 
+    Getvalstnum(ikey, struct_num);
 
     switch (ikey->get_key_type()) {
       case UNC_KT_FLOWLIST:
-          rename = reinterpret_cast
-               <val_rename_flowlist *>(ConfigKeyVal::Malloc
-               (sizeof(val_rename_flowlist)));
-          uuu::upll_strncpy(reinterpret_cast<val_rename_flowlist *>(rename)
-               ->flowlist_newname,
-               reinterpret_cast<key_flowlist_t*>(ikey->get_key())
-               ->flowlist_name, (kMaxLenFlowListName+1));
-          break;
-     case UNC_KT_POLICING_PROFILE:
-          rename = reinterpret_cast
-                 <val_rename_policingprofile *>(
-                 ConfigKeyVal::Malloc(sizeof(val_rename_policingprofile)));
-          uuu::upll_strncpy(reinterpret_cast<val_rename_policingprofile *>
-                 (rename)->policingprofile_newname,
-                 reinterpret_cast<key_policingprofile_t*>
-                 (ikey->get_key())->policingprofile_name,
-                 (kMaxLenPolicingProfileName+1));
-          break;
+        rename = reinterpret_cast
+            <val_rename_flowlist *>(ConfigKeyVal::Malloc
+                                    (sizeof(val_rename_flowlist)));
+        uuu::upll_strncpy(reinterpret_cast<val_rename_flowlist *>(rename)
+                          ->flowlist_newname,
+                          reinterpret_cast<key_flowlist_t*>(ikey->get_key())
+                          ->flowlist_name, (kMaxLenFlowListName+1));
+        break;
+      case UNC_KT_POLICING_PROFILE:
+        rename = reinterpret_cast
+            <val_rename_policingprofile *>(
+                ConfigKeyVal::Malloc(sizeof(val_rename_policingprofile)));
+        uuu::upll_strncpy(reinterpret_cast<val_rename_policingprofile *>
+                          (rename)->policingprofile_newname,
+                          reinterpret_cast<key_policingprofile_t*>
+                          (ikey->get_key())->policingprofile_name,
+                          (kMaxLenPolicingProfileName+1));
+        break;
       case UNC_KT_VTN:
-          rename = reinterpret_cast<val_rename_vtn_t *>(
-                   ConfigKeyVal::Malloc(sizeof(val_rename_vtn_t)));
-          uuu::upll_strncpy(reinterpret_cast<val_rename_vtn_t *>
-                   (rename)->new_name,
-               reinterpret_cast<key_vtn_t*>(ikey->get_key())->vtn_name,
+        rename = reinterpret_cast<val_rename_vtn_t *>(
+            ConfigKeyVal::Malloc(sizeof(val_rename_vtn_t)));
+        uuu::upll_strncpy(reinterpret_cast<val_rename_vtn_t *>
+                          (rename)->new_name,
+                          reinterpret_cast<key_vtn_t*>
+                          (ikey->get_key())->vtn_name,
                           (kMaxLenVtnName+1));
-          break;
+        break;
       case UNC_KT_VBRIDGE:
       case UNC_KT_VROUTER:
       case UNC_KT_VLINK:
-          rename = reinterpret_cast<val_rename_vtn_t *>(
-                   ConfigKeyVal::Malloc(sizeof(val_rename_vtn_t)));
-          uuu::upll_strncpy(reinterpret_cast<val_rename_vtn_t *>
-                (rename)->new_name,
-          reinterpret_cast<key_vbr_t*>(ikey->get_key())->vbridge_name,
-          (kMaxLenVnodeName+1));
-          break;
-       default:
-          return UPLL_RC_ERR_GENERIC;
-          break;
+        rename = reinterpret_cast<val_rename_vtn_t *>(
+            ConfigKeyVal::Malloc(sizeof(val_rename_vtn_t)));
+        uuu::upll_strncpy(reinterpret_cast<val_rename_vtn_t *>
+                          (rename)->new_name,
+                          reinterpret_cast<key_vbr_t*>
+                          (ikey->get_key())->vbridge_name,
+                          (kMaxLenVnodeName+1));
+        break;
+      default:
+        return UPLL_RC_ERR_GENERIC;
+        break;
     }
-    
+
     reinterpret_cast<val_rename_vtn_t *>(rename)->valid
-            [UPLL_CTRLR_VTN_NAME_VALID] = UNC_VF_INVALID;
-  ikey->SetCfgVal(new ConfigVal(struct_num, rename));
+        [UPLL_CTRLR_VTN_NAME_VALID] = UNC_VF_INVALID;
+    ikey->SetCfgVal(new ConfigVal(struct_num, rename));
   }
   UPLL_LOG_TRACE("AfterSwap Key %s", ikey->ToStrAll().c_str());
   return UPLL_RC_SUCCESS;
@@ -2008,60 +2259,60 @@ std::string MoMgrImpl::GetReadImportQueryString(unc_keytype_operation_t op,
     switch (kt) {
       case UNC_KT_FLOWLIST:
         query_string = \
-          " (select unc_flowlist_name, ctrlr_name, ctrlr_flowlist_name from "
-            " (select unc_flowlist_name, ctrlr_name, ctrlr_flowlist_name "
-               " from im_flowlist_rename_tbl "
-            " union all "
-            "select flowlist_name, ctrlr_name, flowlist_name from "
-              "im_flowlist_ctrlr_tbl where flags & 1 = 0 ) as temp "
-            "where ctrlr_flowlist_name > ?) "
-          " order by ctrlr_flowlist_name ";
-      break;
+                       " (select unc_flowlist_name, ctrlr_name, ctrlr_flowlist_name from "
+                       " (select unc_flowlist_name, ctrlr_name, ctrlr_flowlist_name "
+                       " from im_flowlist_rename_tbl "
+                       " union all "
+                       "select flowlist_name, ctrlr_name, flowlist_name from "
+                       "im_flowlist_ctrlr_tbl where flags & 1 = 0 ) as temp "
+                       "where ctrlr_flowlist_name > ?) "
+                       " order by ctrlr_flowlist_name ";
+        break;
       case UNC_KT_POLICING_PROFILE:
         query_string = "(select unc_policingprofile_name, ctrlr_name, ctrlr_policingprofile_name from \
-                          (select unc_policingprofile_name, ctrlr_name, ctrlr_policingprofile_name \
-                           from im_policingprofile_rename_tbl union all select policingprofile_name,\
-                           ctrlr_name, policingprofile_name from im_policingprofile_ctrlr_tbl \
-                           where flags & 1 = 0 ) as temp where ctrlr_policingprofile_name > ?) \
-                           order by ctrlr_policingprofile_name";
+                        (select unc_policingprofile_name, ctrlr_name, ctrlr_policingprofile_name \
+                         from im_policingprofile_rename_tbl union all select policingprofile_name, \
+                         ctrlr_name, policingprofile_name from im_policingprofile_ctrlr_tbl \
+                         where flags & 1 = 0 ) as temp where ctrlr_policingprofile_name > ?) \
+                         order by ctrlr_policingprofile_name";
         break;
       case UNC_KT_VTN:
         query_string = "(select unc_vtn_name, controller_name, domain_id, ctrlr_vtn_name from \
-                          (select unc_vtn_name, controller_name, domain_id, ctrlr_vtn_name \
-                           from im_vtn_rename_tbl union all select vtn_name,\
-                           controller_name, domain_id, vtn_name from im_vtn_ctrlr_tbl \
-                           where flags & 1 = 0 ) as temp where ctrlr_vtn_name > ?) order by ctrlr_vtn_name";
+                        (select unc_vtn_name, controller_name, domain_id, ctrlr_vtn_name \
+                         from im_vtn_rename_tbl union all select vtn_name, \
+                         controller_name, domain_id, vtn_name from im_vtn_ctrlr_tbl \
+                         where flags & 1 = 0) as temp where ctrlr_vtn_name > ?) order by ctrlr_vtn_name";
         break;
       case UNC_KT_VBRIDGE:
         query_string = "(select unc_vtn_name, unc_vnode_name, controller_name, domain_id, "
-                              "ctrlr_vtn_name, ctrlr_vnode_name from "
- "(select unc_vtn_name, unc_vnode_name, controller_name, domain_id, "
-                              "ctrlr_vtn_name, ctrlr_vnode_name from im_vnode_rename_tbl where " 
-                             "(unc_vtn_name, unc_vnode_name) IN (select vtn_name, vbridge_name "
-                             "from im_vbr_tbl) "
-                             "union all select vtn_name, vbridge_name, controller_name, domain_id, "
-                             "vtn_name, vbridge_name from im_vbr_tbl where flags & 3 = 0) as temp  where "
-                             "ctrlr_vtn_name = ? and ctrlr_vnode_name > ?) order by ctrlr_vtn_name, ctrlr_vnode_name ";
+            "ctrlr_vtn_name, ctrlr_vnode_name from "
           "(select unc_vtn_name, unc_vnode_name, controller_name, domain_id, "
+            "ctrlr_vtn_name, ctrlr_vnode_name from im_vnode_rename_tbl where "
+            "(unc_vtn_name, unc_vnode_name) IN (select vtn_name, vbridge_name "
+            "from im_vbr_tbl) "
+            "union all select vtn_name, vbridge_name, controller_name, domain_id, "
+            "vtn_name, vbridge_name from im_vbr_tbl where flags & 3 = 0) as temp  where "
+            "ctrlr_vtn_name = ? and ctrlr_vnode_name > ?) order by ctrlr_vtn_name, ctrlr_vnode_name ";
         break;
       case UNC_KT_VROUTER:
         query_string = "(select unc_vtn_name, unc_vnode_name, controller_name, domain_id, "
-                              "ctrlr_vtn_name, ctrlr_vnode_name from "
- "(select unc_vtn_name, unc_vnode_name, controller_name, domain_id, "
-                              "ctrlr_vtn_name, ctrlr_vnode_name from im_vnode_rename_tbl where " 
-                             "(unc_vtn_name, unc_vnode_name) IN (select vtn_name, vrouter_name "
-                             "from im_vrt_tbl) "
-                             "union all select vtn_name, vrouter_name, controller_name, domain_id, "
-                             "vtn_name, vrouter_name from im_vrt_tbl where flags & 3 = 0) as temp  where "
-                             "ctrlr_vtn_name = ? and ctrlr_vnode_name > ?) order by ctrlr_vtn_name, ctrlr_vnode_name ";
+            "ctrlr_vtn_name, ctrlr_vnode_name from "
           "(select unc_vtn_name, unc_vnode_name, controller_name, domain_id, "
+            "ctrlr_vtn_name, ctrlr_vnode_name from im_vnode_rename_tbl where "
+            "(unc_vtn_name, unc_vnode_name) IN (select vtn_name, vrouter_name "
+            "from im_vrt_tbl) "
+            "union all select vtn_name, vrouter_name, controller_name, domain_id, "
+            "vtn_name, vrouter_name from im_vrt_tbl where flags & 3 = 0) as temp  where "
+            "ctrlr_vtn_name = ? and ctrlr_vnode_name > ?) order by ctrlr_vtn_name, ctrlr_vnode_name ";
         break;
       case UNC_KT_VLINK:
         query_string = "(select unc_vtn_name, unc_vlink_name, controller_name, domain_id, "
-                              "ctrlr_vtn_name, ctrlr_vlink_name from "
- "(select unc_vtn_name, unc_vlink_name, controller_name, domain_id, "
-                              "ctrlr_vtn_name, ctrlr_vlink_name from im_vlink_rename_tbl " 
-                             "union all select vtn_name, vlink_name, controller1_name, domain1_id, "
-                             "vtn_name, vlink_name from im_vlink_tbl where key_flags & 3 = 0) as temp  where "
-                             "ctrlr_vtn_name = ? and ctrlr_vlink_name > ?) order by ctrlr_vtn_name, ctrlr_vlink_name ";
+            "ctrlr_vtn_name, ctrlr_vlink_name from "
           "(select unc_vtn_name, unc_vlink_name, controller_name, domain_id, "
+            "ctrlr_vtn_name, ctrlr_vlink_name from im_vlink_rename_tbl "
+            "union all select vtn_name, vlink_name, controller1_name, domain1_id, "
+            "vtn_name, vlink_name from im_vlink_tbl where key_flags & 3 = 0) as temp  where "
+            "ctrlr_vtn_name = ? and ctrlr_vlink_name > ?) order by ctrlr_vtn_name, ctrlr_vlink_name ";
         break;
       default:
         break;
@@ -2069,52 +2320,56 @@ std::string MoMgrImpl::GetReadImportQueryString(unc_keytype_operation_t op,
   } else if (op == UNC_OP_READ_SIBLING_BEGIN) {
     switch (kt) {
       case UNC_KT_FLOWLIST:
-        query_string = "(select unc_flowlist_name, ctrlr_name, ctrlr_flowlist_name from im_flowlist_rename_tbl \
-               union all select flowlist_name, ctrlr_name, flowlist_name from im_flowlist_ctrlr_tbl \
-               where flags & 1 = 0) order by ctrlr_flowlist_name ";
+        query_string = "(select unc_flowlist_name, ctrlr_name,"
+                       "ctrlr_flowlist_name from im_flowlist_rename_tbl "
+                        "union all select flowlist_name, ctrlr_name,"
+                       "flowlist_name from im_flowlist_ctrlr_tbl "
+                        "where flags & 1 = 0) order by ctrlr_flowlist_name ";
         break;
       case UNC_KT_POLICING_PROFILE:
-        query_string = "(select unc_policingprofile_name, ctrlr_name, ctrlr_policingprofile_name from im_policingprofile_rename_tbl \
-              union all select policingprofile_name, ctrlr_name, policingprofile_name from im_policingprofile_ctrlr_tbl \
-              where flags & 1 = 0) order by ctrlr_policingprofile_name";
+        query_string = "(select unc_policingprofile_name, ctrlr_name,"
+                     "ctrlr_policingprofile_name from im_policingprofile_rename_tbl "
+                       " union all select policingprofile_name, ctrlr_name,"
+                     "policingprofile_name from im_policingprofile_ctrlr_tbl "
+                        "where flags & 1 = 0) order by ctrlr_policingprofile_name";
         break;
       case UNC_KT_VTN:
-        query_string = "(select unc_vtn_name, controller_name, domain_id, \
-                          ctrlr_vtn_name from im_vtn_rename_tbl  union all \
-                          select vtn_name, controller_name, domain_id, vtn_name \
-                          from im_vtn_ctrlr_tbl  where flags & 1 = 0) \
-                          order by ctrlr_vtn_name ";
+        query_string = "(select unc_vtn_name, controller_name, domain_id, "
+                        "ctrlr_vtn_name from im_vtn_rename_tbl  union all "
+                        "select vtn_name, controller_name, domain_id, vtn_name "
+                        "from im_vtn_ctrlr_tbl  where flags & 1 = 0) "
+                        "order by ctrlr_vtn_name ";
         break;
       case UNC_KT_VBRIDGE:
         query_string = "(select unc_vtn_name, unc_vnode_name, controller_name, domain_id, "
-                              "ctrlr_vtn_name, ctrlr_vnode_name from "
- "(select unc_vtn_name, unc_vnode_name, controller_name, domain_id, "
-                              "ctrlr_vtn_name, ctrlr_vnode_name from im_vnode_rename_tbl where " 
-                             "(unc_vtn_name, unc_vnode_name) IN (select vtn_name, vbridge_name "
-                             "from im_vbr_tbl) "
-                             "union all select vtn_name, vbridge_name, controller_name, domain_id, "
-                             "vtn_name, vbridge_name from im_vbr_tbl where flags & 3 = 0) as temp  where "
-                             "ctrlr_vtn_name = ?) order by ctrlr_vtn_name, ctrlr_vnode_name ";
+            "ctrlr_vtn_name, ctrlr_vnode_name from "
           "(select unc_vtn_name, unc_vnode_name, controller_name, domain_id, "
+            "ctrlr_vtn_name, ctrlr_vnode_name from im_vnode_rename_tbl where "
+            "(unc_vtn_name, unc_vnode_name) IN (select vtn_name, vbridge_name "
+            "from im_vbr_tbl) "
+            "union all select vtn_name, vbridge_name, controller_name, domain_id, "
+            "vtn_name, vbridge_name from im_vbr_tbl where flags & 3 = 0) as temp  where "
+            "ctrlr_vtn_name = ?) order by ctrlr_vtn_name, ctrlr_vnode_name ";
         break;
       case UNC_KT_VROUTER:
         query_string = "(select unc_vtn_name, unc_vnode_name, controller_name, domain_id, "
-                              "ctrlr_vtn_name, ctrlr_vnode_name from "
- "(select unc_vtn_name, unc_vnode_name, controller_name, domain_id, "
-                              "ctrlr_vtn_name, ctrlr_vnode_name from im_vnode_rename_tbl where " 
-                             "(unc_vtn_name, unc_vnode_name) IN (select vtn_name, vrouter_name "
-                             "from im_vrt_tbl) "
-                             "union all select vtn_name, vrouter_name, controller_name, domain_id, "
-                             "vtn_name, vrouter_name from im_vrt_tbl where flags & 3 = 0) as temp  where "
-                             "ctrlr_vtn_name = ?) order by ctrlr_vtn_name, ctrlr_vnode_name ";
+            "ctrlr_vtn_name, ctrlr_vnode_name from "
           "(select unc_vtn_name, unc_vnode_name, controller_name, domain_id, "
+            "ctrlr_vtn_name, ctrlr_vnode_name from im_vnode_rename_tbl where "
+            "(unc_vtn_name, unc_vnode_name) IN (select vtn_name, vrouter_name "
+            "from im_vrt_tbl) "
+            "union all select vtn_name, vrouter_name, controller_name, domain_id, "
+            "vtn_name, vrouter_name from im_vrt_tbl where flags & 3 = 0) as temp  where "
+            "ctrlr_vtn_name = ?) order by ctrlr_vtn_name, ctrlr_vnode_name ";
         break;
       case UNC_KT_VLINK:
         query_string = "(select unc_vtn_name, unc_vlink_name, controller_name, domain_id, "
-                              "ctrlr_vtn_name, ctrlr_vlink_name from "
- "(select unc_vtn_name, unc_vlink_name, controller_name, domain_id, "
-                              "ctrlr_vtn_name, ctrlr_vlink_name from im_vlink_rename_tbl " 
-                             "union all select vtn_name, vlink_name, controller1_name, domain1_id, "
-                             "vtn_name, vlink_name from im_vlink_tbl where key_flags & 3 = 0) as temp  where "
-                             "ctrlr_vtn_name = ? ) order by ctrlr_vtn_name, ctrlr_vlink_name ";
+            "ctrlr_vtn_name, ctrlr_vlink_name from "
           "(select unc_vtn_name, unc_vlink_name, controller_name, domain_id, "
+            "ctrlr_vtn_name, ctrlr_vlink_name from im_vlink_rename_tbl "
+            "union all select vtn_name, vlink_name, controller1_name, domain1_id, "
+            "vtn_name, vlink_name from im_vlink_tbl where key_flags & 3 = 0) as temp  where "
+            "ctrlr_vtn_name = ? ) order by ctrlr_vtn_name, ctrlr_vlink_name ";
         break;
       default:
         break;
@@ -2123,7 +2378,7 @@ std::string MoMgrImpl::GetReadImportQueryString(unc_keytype_operation_t op,
   return query_string;
 }
 
-upll_rc_t MoMgrImpl::ReadImportDB (ConfigKeyVal *&in_key,
+upll_rc_t MoMgrImpl::ReadImportDB(ConfigKeyVal *&in_key,
                                    IpcReqRespHeader *header,
                                    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
@@ -2134,7 +2389,8 @@ upll_rc_t MoMgrImpl::ReadImportDB (ConfigKeyVal *&in_key,
   result_code = GetChildConfigKey(ikey, in_key);
   if (UPLL_RC_SUCCESS != result_code)
     return result_code;
-  const uudst::kDalTableIndex tbl_index = GetTable(RENAMETBL, header->datatype);
+  const uudst::kDalTableIndex tbl_index = GetTable(RENAMETBL,
+                                                   header->datatype);
   void *tkey = (ikey)?ikey->get_key():NULL;
   if (!tkey) {
     delete ikey;
@@ -2145,7 +2401,7 @@ upll_rc_t MoMgrImpl::ReadImportDB (ConfigKeyVal *&in_key,
     delete ikey;
     return UPLL_RC_ERR_GENERIC;
   }
-  DalCursor *dal_cursor_handle;
+  DalCursor *dal_cursor_handle = NULL;
   UPLL_LOG_TRACE("tbl_index is %d", tbl_index);
   unc_keytype_operation_t op = header->operation;
 
@@ -2156,175 +2412,179 @@ upll_rc_t MoMgrImpl::ReadImportDB (ConfigKeyVal *&in_key,
   }
 #if 0
   uint16_t max_record_count = 1;
-  result_code = GetRenamedUncKey( ikey, header->datatype, 
-                                            dmi, NULL);
+  result_code = GetRenamedUncKey(ikey, header->datatype,
+                                 dmi, NULL);
   if (UPLL_RC_SUCCESS != result_code &&
-        UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
-      UPLL_LOG_DEBUG("GetRenamedUncKey is Failed %d", result_code);
-      return result_code;
+      UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+    UPLL_LOG_DEBUG("GetRenamedUncKey is Failed %d", result_code);
+    return result_code;
   }
 #endif
 
   if (op == UNC_OP_READ_SIBLING_BEGIN || op == UNC_OP_READ_SIBLING) {
-       DalBindInfo *dal_bind_info = new DalBindInfo(tbl_index);  
-       result_code = BindImportDB(ikey, dal_bind_info, header->datatype,
-                                  RENAMETBL);
-       if (result_code != UPLL_RC_SUCCESS) {
-         if (dal_bind_info) delete dal_bind_info;
-           UPLL_LOG_INFO("Exiting MoMgrImpl::ReadConfigDB result code %d",
-                         result_code);
-          delete ikey;          
-           return result_code;
-         }
-  std::string query_string = GetReadImportQueryString(op, ikey->get_key_type());
-  if (query_string.empty()) {
-    UPLL_LOG_TRACE("Null Query String for Operation(%d) KeyType(%d)",
-                   op, ikey->get_key_type());
-    if (dal_bind_info) delete dal_bind_info;
-    delete ikey;
-    return UPLL_RC_ERR_GENERIC;
-  }
-       result_code = DalToUpllResCode(
-         dmi->ExecuteAppQueryMultipleRecords(query_string, header->rep_count,
-                              dal_bind_info, &dal_cursor_handle));
-          ConfigKeyVal *end_resp = NULL;
-          bool flag = false;
-          while (result_code == UPLL_RC_SUCCESS && ((count < header->rep_count) ||
-                 (header->rep_count == 0))) {
-             result_code = DalToUpllResCode(dmi->GetNextRecord(dal_cursor_handle));
-             if (UPLL_RC_SUCCESS == result_code) {
-               ConfigKeyVal *tkey = NULL;
-               val_rename_vtn_t *val = (ikey)?reinterpret_cast<val_rename_vtn_t*>
-                                               (GetVal(ikey)):NULL;
-               if (val) {
-                  val->valid[UPLL_IDX_NEW_NAME_RVTN] = UNC_VF_VALID;
-               }
-               UPLL_LOG_TRACE("GetNextRecord %s", ikey->ToStrAll().c_str());
-               result_code = DupConfigKeyVal(tkey, ikey, RENAMETBL);
-               if (result_code != UPLL_RC_SUCCESS) {
-                 UPLL_LOG_DEBUG("Dup failed error %d",result_code);
-                delete ikey;
-                 delete dal_bind_info;
-                 dmi->CloseCursor(dal_cursor_handle);
-                 return result_code;
-               }
-               flag = true;
-               rename = 0;
-               result_code = UpdateConfigDB(tkey, header->datatype, UNC_OP_READ,
-                                                 dmi, RENAMETBL);
-               if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS)
-                 rename = 1;
-               else  if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
-                 UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
-                delete ikey;
-                 dmi->CloseCursor(dal_cursor_handle);
-                 delete dal_bind_info;
-                 DELETE_IF_NOT_NULL(tkey);
-                 return result_code;
-               }
-               result_code = SwapKey(tkey, rename);
-               UPLL_LOG_TRACE("After No SwapKey %s", ikey->ToStrAll().c_str());
-               ConfigKeyVal *prev_key = tkey; 
-               if (!end_resp)
-                   end_resp = tkey;
-               else 
-                   prev_key->AppendCfgKeyVal(tkey);
-               count++;
-               UPLL_LOG_TRACE("end_resp %s", end_resp->ToStrAll().c_str());
-             }
-           }
-           header->rep_count = count;
-           result_code = (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code && flag)?
-                          UPLL_RC_SUCCESS:result_code;
-           dmi->CloseCursor(dal_cursor_handle);
-           delete dal_bind_info;
-           if (result_code == UPLL_RC_SUCCESS) {
-             if (end_resp) 
-               ikey->ResetWith(end_resp);
-               DELETE_IF_NOT_NULL(end_resp);
-               in_key->ResetWith(ikey);
-               DELETE_IF_NOT_NULL(ikey);
-               UPLL_LOG_TRACE("ResetWith is Called");
-           } else {
-               delete ikey;
-               return result_code;
-           }
-    } else if (op == UNC_OP_READ) {
+    DalBindInfo *dal_bind_info = new DalBindInfo(tbl_index);
+    result_code = BindImportDB(ikey, dal_bind_info, header->datatype,
+                               RENAMETBL);
+    if (result_code != UPLL_RC_SUCCESS) {
+      if (dal_bind_info) delete dal_bind_info;
+      UPLL_LOG_INFO("Exiting MoMgrImpl::ReadConfigDB result code %d",
+                    result_code);
+      delete ikey;
+      return result_code;
+    }
+    std::string query_string = GetReadImportQueryString(op,
+                                                        ikey->get_key_type());
+    if (query_string.empty()) {
+      UPLL_LOG_TRACE("Null Query String for Operation(%d) KeyType(%d)",
+                     op, ikey->get_key_type());
+      if (dal_bind_info) delete dal_bind_info;
+      delete ikey;
+      return UPLL_RC_ERR_GENERIC;
+    }
+    result_code = DalToUpllResCode(
+        dmi->ExecuteAppQueryMultipleRecords(query_string, header->rep_count,
+                                            dal_bind_info, &dal_cursor_handle));
+    ConfigKeyVal *end_resp = NULL;
+    bool flag = false;
+    while (result_code == UPLL_RC_SUCCESS && ((count < header->rep_count) ||
+                                              (header->rep_count == 0))) {
+      result_code = DalToUpllResCode(dmi->GetNextRecord(dal_cursor_handle));
+      if (UPLL_RC_SUCCESS == result_code) {
+        ConfigKeyVal *tkey = NULL;
+        val_rename_vtn_t *val = (ikey)?reinterpret_cast<val_rename_vtn_t*>
+            (GetVal(ikey)):NULL;
+        if (val) {
+          val->valid[UPLL_IDX_NEW_NAME_RVTN] = UNC_VF_VALID;
+        }
+        UPLL_LOG_TRACE("GetNextRecord %s", ikey->ToStrAll().c_str());
+        result_code = DupConfigKeyVal(tkey, ikey, RENAMETBL);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("Dup failed error %d", result_code);
+          delete ikey;
+          delete dal_bind_info;
+          dmi->CloseCursor(dal_cursor_handle);
+          return result_code;
+        }
+        flag = true;
+        rename = 0;
+        result_code = UpdateConfigDB(tkey, header->datatype, UNC_OP_READ,
+                                     dmi, RENAMETBL);
+        if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS)
+          rename = 1;
+        else  if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+          UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
+          delete ikey;
+          dmi->CloseCursor(dal_cursor_handle);
+          delete dal_bind_info;
+          DELETE_IF_NOT_NULL(tkey);
+          return result_code;
+        }
+        result_code = SwapKey(tkey, rename);
+        UPLL_LOG_TRACE("After No SwapKey %s", ikey->ToStrAll().c_str());
+        ConfigKeyVal *prev_key = tkey;
+        if (!end_resp)
+          end_resp = tkey;
+        else
+          prev_key->AppendCfgKeyVal(tkey);
+        count++;
+        UPLL_LOG_TRACE("end_resp %s", end_resp->ToStrAll().c_str());
+      }
+    }
+    header->rep_count = count;
+    result_code = (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code && flag)?
+        UPLL_RC_SUCCESS:result_code;
+    if (dal_cursor_handle)
+      dmi->CloseCursor(dal_cursor_handle);
+    if (dal_bind_info)
+      delete dal_bind_info;
+    if (result_code == UPLL_RC_SUCCESS) {
+      if (end_resp)
+        ikey->ResetWith(end_resp);
+      DELETE_IF_NOT_NULL(end_resp);
+      in_key->ResetWith(ikey);
+      DELETE_IF_NOT_NULL(ikey);
+      UPLL_LOG_TRACE("ResetWith is Called");
+    } else {
+      delete ikey;
+      return result_code;
+    }
+  } else if (op == UNC_OP_READ) {
 #if 0  // tbl is set, but not used.
-        MoMgrTables tbl = MAINTBL;
-         if (UNC_KT_VTN == ikey->get_key_type() ||
-             UNC_KT_FLOWLIST == ikey->get_key_type() ||
-             UNC_KT_POLICING_PROFILE == ikey->get_key_type())
-               tbl = CTRLRTBL;
+    MoMgrTables tbl = MAINTBL;
+    if (UNC_KT_VTN == ikey->get_key_type() ||
+        UNC_KT_FLOWLIST == ikey->get_key_type() ||
+        UNC_KT_POLICING_PROFILE == ikey->get_key_type())
+      tbl = CTRLRTBL;
 #endif
-         /* We are not allow to read using the UNC Name
-          */
-#if 1 
-         DbSubOp dbop = { kOpReadExist, kOpMatchNone, kOpInOutNone};
-
-         ConfigKeyVal *temp = NULL;
-         result_code = DupConfigKeyVal (temp, ikey, RENAMETBL);
-         if (UPLL_RC_SUCCESS != result_code) {
-           UPLL_LOG_DEBUG("DupConfigKeyVal Failed");
-           return result_code;
-         }
-         result_code = UpdateConfigDB(temp, header->datatype, UNC_OP_READ, 
-                                     dmi, &dbop, RENAMETBL);           
-         if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code &&
-             UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
-           UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
-           DELETE_IF_NOT_NULL(temp);
-           return result_code;
-         }
-         if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code) {
-             UPLL_LOG_DEBUG("Read Not allowed by using UNC Name");
-             delete ikey;
-             DELETE_IF_NOT_NULL(temp);
-             return UPLL_RC_ERR_NO_SUCH_INSTANCE;
-         }
-         DELETE_IF_NOT_NULL(temp);
+    /* We are not allow to read using the UNC Name
+    */
+#if 1
+    DbSubOp dbop = { kOpReadExist, kOpMatchNone, kOpInOutNone};
+
+    ConfigKeyVal *temp = NULL;
+    result_code = DupConfigKeyVal(temp, ikey, RENAMETBL);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG("DupConfigKeyVal Failed");
+      DELETE_IF_NOT_NULL(ikey);
+      return result_code;
+    }
+    result_code = UpdateConfigDB(temp, header->datatype, UNC_OP_READ,
+                                 dmi, &dbop, RENAMETBL);
+    if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code &&
+        UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+      UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
+      DELETE_IF_NOT_NULL(temp);
+      return result_code;
+    }
+    if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code) {
+      UPLL_LOG_DEBUG("Read Not allowed by using UNC Name");
+      delete ikey;
+      DELETE_IF_NOT_NULL(temp);
+      return UPLL_RC_ERR_NO_SUCH_INSTANCE;
+    }
+    DELETE_IF_NOT_NULL(temp);
 #endif
-           rename  = 0;
-           result_code = GetRenamedUncKey( ikey, header->datatype, 
-                                            dmi, NULL);
-           if (UPLL_RC_SUCCESS != result_code &&
-               UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
-             UPLL_LOG_DEBUG("GetRenamedUncKey is Failed %d", result_code);
-             delete ikey;
-             return result_code;
-           }
-           if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-              result_code = UpdateConfigDB(ikey, header->datatype, UNC_OP_READ,
-                                                 dmi, MAINTBL);
-              if (result_code != UPLL_RC_ERR_INSTANCE_EXISTS) {
-                   UPLL_LOG_DEBUG("VTN doesn't exist in IMPORT DB. Error code : %d",
-                   result_code);
-                   delete ikey;
-                   return result_code;
-              } else 
-               result_code = UPLL_RC_SUCCESS;
-              ikey->SetCfgVal(NULL);
-           } else {
-              DbSubOp dbop = {kOpReadSingle, kOpMatchNone, kOpInOutNone};
-              result_code = ReadConfigDB(ikey, header->datatype, header->operation, 
-                                        dbop, dmi, RENAMETBL);          
-              if (UPLL_RC_SUCCESS != result_code) {
-                UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
-                delete ikey;
-                return result_code;
-              }
-              rename = 1;
-           }
-           result_code = SwapKey(ikey, rename);
-           UPLL_LOG_TRACE("After No SwapKey %s", ikey->ToStrAll().c_str());
-           in_key->ResetWith(ikey);
-           delete ikey;
-      } else {
-         UPLL_LOG_TRACE("Unexpected Operation : %d", op);
-         delete ikey;
-         return UPLL_RC_ERR_GENERIC;
-      }
+    rename  = 0;
+    result_code = GetRenamedUncKey(ikey, header->datatype,
+                                   dmi, NULL);
+    if (UPLL_RC_SUCCESS != result_code &&
+        UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+      UPLL_LOG_DEBUG("GetRenamedUncKey is Failed %d", result_code);
+      delete ikey;
       return result_code;
+    }
+    if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+      result_code = UpdateConfigDB(ikey, header->datatype, UNC_OP_READ,
+                                   dmi, MAINTBL);
+      if (result_code != UPLL_RC_ERR_INSTANCE_EXISTS) {
+        UPLL_LOG_DEBUG("VTN doesn't exist in IMPORT DB. Error code : %d",
+                       result_code);
+        delete ikey;
+        return result_code;
+      } else
+        result_code = UPLL_RC_SUCCESS;
+      ikey->SetCfgVal(NULL);
+    } else {
+      DbSubOp dbop = {kOpReadSingle, kOpMatchNone, kOpInOutNone};
+      result_code = ReadConfigDB(ikey, header->datatype, header->operation,
+                                 dbop, dmi, RENAMETBL);
+      if (UPLL_RC_SUCCESS != result_code) {
+        UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
+        delete ikey;
+        return result_code;
+      }
+      rename = 1;
+    }
+    result_code = SwapKey(ikey, rename);
+    UPLL_LOG_TRACE("After No SwapKey %s", ikey->ToStrAll().c_str());
+    in_key->ResetWith(ikey);
+    delete ikey;
+  } else {
+    UPLL_LOG_TRACE("Unexpected Operation : %d", op);
+    delete ikey;
+    return UPLL_RC_ERR_GENERIC;
+  }
+  return result_code;
 }
 
 
@@ -2346,36 +2606,36 @@ upll_rc_t MoMgrImpl::ReadImportDB (ConfigKeyVal *&in_key,
 
 
 #if 0
-template upll_rc_t 
-MoMgrImpl::GetUninitOperState<val_vlink_st_t,val_db_vlink_st_t> 
-                        (ConfigKeyVal *&ck_vn, DalDmlIntf   *dmi) ;
-template upll_rc_t 
-MoMgrImpl::GetUninitOperState<val_vbr_st_t,val_db_vbr_st_t> 
-                        (ConfigKeyVal *&ck_vn, DalDmlIntf   *dmi) ;
-template upll_rc_t 
-MoMgrImpl::GetUninitOperState<val_vbr_if_st_t,val_db_vbr_if_st_t> 
-                        (ConfigKeyVal *&ck_vn, DalDmlIntf *dmi) ;
-template upll_rc_t 
-MoMgrImpl::GetUninitOperState<val_vrt_if_st_t,val_db_vrt_if_st_t> 
-                        (ConfigKeyVal *&ck_vn, DalDmlIntf *dmi) ;
-template upll_rc_t 
-MoMgrImpl::GetUninitOperState<val_vrt_st_t,val_db_vrt_st_t> 
-                        (ConfigKeyVal *&ck_vn, DalDmlIntf *dmi) ;
-template upll_rc_t 
-MoMgrImpl::GetUninitOperState<val_vtunnel_st_t,val_db_vtunnel_st_t> 
-                        (ConfigKeyVal *&ck_vn, DalDmlIntf *dmi);
-template upll_rc_t 
-MoMgrImpl::GetUninitOperState<val_vtunnel_if_st_t,val_db_vtunnel_if_st_t> 
-                        (ConfigKeyVal *&ck_vn, DalDmlIntf *dmi);
-template upll_rc_t 
-MoMgrImpl::GetUninitOperState<val_vtep_st_t,val_db_vtep_st_t> 
-                        (ConfigKeyVal *&ck_vn, DalDmlIntf *dmi);
-template upll_rc_t 
-MoMgrImpl::GetUninitOperState<val_vtep_if_st_t,val_db_vtep_if_st_t> 
-                        (ConfigKeyVal *&ck_vn, DalDmlIntf   *dmi);
-template upll_rc_t 
-MoMgrImpl::GetUninitOperState<val_vtn_st_t,val_db_vtn_st_t> 
-                        (ConfigKeyVal *&ck_vn, DalDmlIntf   *dmi);
+template upll_rc_t
+MoMgrImpl::GetUninitOperState<val_vlink_st_t, val_db_vlink_st_t>
+(ConfigKeyVal *&ck_vn, DalDmlIntf   *dmi);
+template upll_rc_t
+MoMgrImpl::GetUninitOperState<val_vbr_st_t, val_db_vbr_st_t>
+(ConfigKeyVal *&ck_vn, DalDmlIntf   *dmi);
+template upll_rc_t
+MoMgrImpl::GetUninitOperState<val_vbr_if_st_t, val_db_vbr_if_st_t>
+(ConfigKeyVal *&ck_vn, DalDmlIntf *dmi);
+template upll_rc_t
+MoMgrImpl::GetUninitOperState<val_vrt_if_st_t, val_db_vrt_if_st_t>
+(ConfigKeyVal *&ck_vn, DalDmlIntf *dmi);
+template upll_rc_t
+MoMgrImpl::GetUninitOperState<val_vrt_st_t, val_db_vrt_st_t>
+(ConfigKeyVal *&ck_vn, DalDmlIntf *dmi);
+template upll_rc_t
+MoMgrImpl::GetUninitOperState<val_vtunnel_st_t, val_db_vtunnel_st_t>
+(ConfigKeyVal *&ck_vn, DalDmlIntf *dmi);
+template upll_rc_t
+MoMgrImpl::GetUninitOperState<val_vtunnel_if_st_t, val_db_vtunnel_if_st_t>
+(ConfigKeyVal *&ck_vn, DalDmlIntf *dmi);
+template upll_rc_t
+MoMgrImpl::GetUninitOperState<val_vtep_st_t, val_db_vtep_st_t>
+(ConfigKeyVal *&ck_vn, DalDmlIntf *dmi);
+template upll_rc_t
+MoMgrImpl::GetUninitOperState<val_vtep_if_st_t, val_db_vtep_if_st_t>
+(ConfigKeyVal *&ck_vn, DalDmlIntf   *dmi);
+template upll_rc_t
+MoMgrImpl::GetUninitOperState<val_vtn_st_t, val_db_vtn_st_t>
+(ConfigKeyVal *&ck_vn, DalDmlIntf   *dmi);
 #endif
 #endif
 
index 36d9d5655540e1df08c7a9b0478833f98c59bdca..b0609701afe1509631e1860957dbac34ae84eac2 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -17,104 +17,105 @@ namespace upll {
 namespace kt_momgr {
 
 BindInfo NwMonitorHostMoMgr::nwm_host_bind_info[] =
-    { { uudst::vbridge_networkmonitor_host::kDbiVtnName, CFG_KEY, offsetof(
-        key_nwm_host, nwm_key.vbr_key.vtn_key.vtn_name),
-        uud::kDalChar, 32 },
-      { uudst::vbridge_networkmonitor_host::kDbiVbrName, CFG_KEY, offsetof(
-          key_nwm_host, nwm_key.vbr_key.vbridge_name),
-        uud::kDalChar, 32 },
-      { uudst::vbridge_networkmonitor_host::kDbiNwmName, CFG_KEY, offsetof(
-          key_nwm_host, nwm_key.nwmonitor_name),
-        uud::kDalChar, 32 },
-      { uudst::vbridge_networkmonitor_host::kDbiHostAddress, CFG_KEY, offsetof(
-          key_nwm_host, host_address.s_addr),
-        uud::kDalUint32, 1 },
-      { uudst::vbridge_networkmonitor_host::kDbiHealthInterval, CFG_VAL,
-        offsetof(val_nwm_host, health_interval), uud::kDalUint16, 1 },
-      { uudst::vbridge_networkmonitor_host::kDbiRecoveryInterval, CFG_VAL,
-        offsetof(val_nwm_host, recovery_interval), uud::kDalUint16, 1 },
-      { uudst::vbridge_networkmonitor_host::kDbiFailureCount, CFG_VAL, offsetof(
-          val_nwm_host, failure_count),
-        uud::kDalUint8, 1 },
-      { uudst::vbridge_networkmonitor_host::kDbiRecoveryCount, CFG_VAL,
-        offsetof(val_nwm_host, recovery_count), uud::kDalUint8, 1 },
-      { uudst::vbridge_networkmonitor_host::kDbiWaitTime, CFG_VAL, offsetof(
-          val_nwm_host, wait_time),
-        uud::kDalUint8, 1 },
-      { uudst::vbridge_networkmonitor_host::kDbiCtrlrName, CK_VAL, offsetof(
-          key_user_data, ctrlr_id),
-        uud::kDalChar, 32 },
-      { uudst::vbridge_networkmonitor_host::kDbiDomainId, CK_VAL, offsetof(
-          key_user_data, domain_id),
-        uud::kDalChar, 32 },
-      { uudst::vbridge_networkmonitor_host::kDbiValidHealthInterval,
-        CFG_META_VAL, offsetof(val_nwm_host,
-                               valid[UPLL_IDX_HEALTH_INTERVAL_NWMH]),
-        uud::kDalUint8, 1 },
-      { uudst::vbridge_networkmonitor_host::kDbiValidRecoveryInterval,
-        CFG_META_VAL, offsetof(val_nwm_host,
-                               valid[UPLL_IDX_RECOVERY_INTERVAL_NWMH]),
-        uud::kDalUint8, 1 },
-      { uudst::vbridge_networkmonitor_host::kDbiValidFailureCount, CFG_META_VAL,
-        offsetof(val_nwm_host, valid[UPLL_IDX_FAILURE_COUNT_NWMH]),
-        uud::kDalUint8, 1 },
-      { uudst::vbridge_networkmonitor_host::kDbiValidRecoveryCount,
-        CFG_META_VAL, offsetof(val_nwm_host,
-                               valid[UPLL_IDX_RECOVERY_COUNT_NWMH]),
-        uud::kDalUint8, 1 },
-      { uudst::vbridge_networkmonitor_host::kDbiValidWaitTime, CFG_META_VAL,
-        offsetof(val_nwm_host, valid[UPLL_IDX_WAIT_TIME_NWMH]), uud::kDalUint8,
-        1 },
-      { uudst::vbridge_networkmonitor_host::kDbiCsHealthInterval, CS_VAL,
-        offsetof(val_nwm_host, cs_attr[UPLL_IDX_HEALTH_INTERVAL_NWMH]),
-        uud::kDalUint8, 1 },
-      { uudst::vbridge_networkmonitor_host::kDbiCsRecoveryInterval, CS_VAL,
-        offsetof(val_nwm_host, cs_attr[UPLL_IDX_RECOVERY_INTERVAL_NWMH]),
-        uud::kDalUint8, 1 },
-      { uudst::vbridge_networkmonitor_host::kDbiCsFailureCount, CS_VAL,
-        offsetof(val_nwm_host, cs_attr[UPLL_IDX_FAILURE_COUNT_NWMH]),
-        uud::kDalUint8, 1 },
-      { uudst::vbridge_networkmonitor_host::kDbiCsRecoveryCount, CS_VAL,
-        offsetof(val_nwm_host, cs_attr[UPLL_IDX_RECOVERY_COUNT_NWMH]),
-        uud::kDalUint8, 1 },
-      { uudst::vbridge_networkmonitor_host::kDbiCsWaitTime, CS_VAL, offsetof(
-          val_nwm_host, cs_attr[UPLL_IDX_WAIT_TIME_NWMH]),
-        uud::kDalUint8, 1 },
-      { uudst::vbridge_networkmonitor_host::kDbiCsRowstatus, CS_VAL, offsetof(
-          val_nwm_host, cs_row_status),
-        uud::kDalUint8, 1 },
-      { uudst::vbridge_networkmonitor_host::kDbiFlags, CK_VAL, offsetof(
-          key_user_data, flags),
-        uud::kDalUint8, 1 }, };
-
-BindInfo NwMonitorHostMoMgr::key_nwm_host_maintbl_update_bind_info[] = {
-    { uudst::vbridge_networkmonitor_host::kDbiVtnName, CFG_MATCH_KEY, offsetof(
-        key_nwm_host, nwm_key.vbr_key.vtn_key.vtn_name),
-      uud::kDalChar, kMaxLenVtnName + 1 },
-    { uudst::vbridge_networkmonitor_host::kDbiVbrName, CFG_MATCH_KEY, offsetof(
+{ { uudst::vbridge_networkmonitor_host::kDbiVtnName, CFG_KEY, offsetof(
+            key_nwm_host, nwm_key.vbr_key.vtn_key.vtn_name),
+uud::kDalChar, 32 },
+{ uudst::vbridge_networkmonitor_host::kDbiVbrName, CFG_KEY, offsetof(
         key_nwm_host, nwm_key.vbr_key.vbridge_name),
-      uud::kDalChar, kMaxLenVnodeName + 1 },
-    { uudst::vbridge_networkmonitor_host::kDbiNwmName, CFG_MATCH_KEY, offsetof(
+uud::kDalChar, 32 },
+{ uudst::vbridge_networkmonitor_host::kDbiNwmName, CFG_KEY, offsetof(
         key_nwm_host, nwm_key.nwmonitor_name),
-      uud::kDalChar, kMaxLenVnodeName + 1 },
-    { uudst::vbridge_networkmonitor_host::kDbiVtnName, CFG_INPUT_KEY, offsetof(
-        key_rename_vnode_info_t, new_unc_vtn_name),
-      uud::kDalChar, kMaxLenVtnName + 1 },
-    { uudst::vbridge_networkmonitor_host::kDbiVbrName, CFG_INPUT_KEY, offsetof(
-        key_rename_vnode_info_t, new_unc_vnode_name),
-      uud::kDalChar, kMaxLenVnodeName + 1 },
-    { uudst::vbridge_networkmonitor_host::kDbiFlags, CK_VAL, offsetof(
+uud::kDalChar, 32 },
+{ uudst::vbridge_networkmonitor_host::kDbiHostAddress, CFG_KEY, offsetof(
+        key_nwm_host, host_address.s_addr),
+uud::kDalUint32, 1 },
+{ uudst::vbridge_networkmonitor_host::kDbiHealthInterval, CFG_VAL,
+  offsetof(val_nwm_host, health_interval), uud::kDalUint16, 1 },
+{ uudst::vbridge_networkmonitor_host::kDbiRecoveryInterval, CFG_VAL,
+  offsetof(val_nwm_host, recovery_interval), uud::kDalUint16, 1 },
+{ uudst::vbridge_networkmonitor_host::kDbiFailureCount, CFG_VAL, offsetof(
+        val_nwm_host, failure_count),
+uud::kDalUint8, 1 },
+{ uudst::vbridge_networkmonitor_host::kDbiRecoveryCount, CFG_VAL,
+  offsetof(val_nwm_host, recovery_count), uud::kDalUint8, 1 },
+{ uudst::vbridge_networkmonitor_host::kDbiWaitTime, CFG_VAL, offsetof(
+        val_nwm_host, wait_time),
+uud::kDalUint8, 1 },
+{ uudst::vbridge_networkmonitor_host::kDbiCtrlrName, CK_VAL, offsetof(
+        key_user_data, ctrlr_id),
+uud::kDalChar, 32 },
+{ uudst::vbridge_networkmonitor_host::kDbiDomainId, CK_VAL, offsetof(
+        key_user_data, domain_id),
+uud::kDalChar, 32 },
+{ uudst::vbridge_networkmonitor_host::kDbiValidHealthInterval,
+  CFG_META_VAL, offsetof(val_nwm_host,
+                         valid[UPLL_IDX_HEALTH_INTERVAL_NWMH]),
+  uud::kDalUint8, 1 },
+{ uudst::vbridge_networkmonitor_host::kDbiValidRecoveryInterval,
+  CFG_META_VAL, offsetof(val_nwm_host,
+                         valid[UPLL_IDX_RECOVERY_INTERVAL_NWMH]),
+  uud::kDalUint8, 1 },
+{ uudst::vbridge_networkmonitor_host::kDbiValidFailureCount, CFG_META_VAL,
+  offsetof(val_nwm_host, valid[UPLL_IDX_FAILURE_COUNT_NWMH]),
+  uud::kDalUint8, 1 },
+{ uudst::vbridge_networkmonitor_host::kDbiValidRecoveryCount,
+  CFG_META_VAL, offsetof(val_nwm_host,
+                         valid[UPLL_IDX_RECOVERY_COUNT_NWMH]),
+  uud::kDalUint8, 1 },
+{ uudst::vbridge_networkmonitor_host::kDbiValidWaitTime, CFG_META_VAL,
+  offsetof(val_nwm_host, valid[UPLL_IDX_WAIT_TIME_NWMH]), uud::kDalUint8,
+  1 },
+{ uudst::vbridge_networkmonitor_host::kDbiCsHealthInterval, CS_VAL,
+  offsetof(val_nwm_host, cs_attr[UPLL_IDX_HEALTH_INTERVAL_NWMH]),
+  uud::kDalUint8, 1 },
+{ uudst::vbridge_networkmonitor_host::kDbiCsRecoveryInterval, CS_VAL,
+  offsetof(val_nwm_host, cs_attr[UPLL_IDX_RECOVERY_INTERVAL_NWMH]),
+  uud::kDalUint8, 1 },
+{ uudst::vbridge_networkmonitor_host::kDbiCsFailureCount, CS_VAL,
+  offsetof(val_nwm_host, cs_attr[UPLL_IDX_FAILURE_COUNT_NWMH]),
+  uud::kDalUint8, 1 },
+{ uudst::vbridge_networkmonitor_host::kDbiCsRecoveryCount, CS_VAL,
+  offsetof(val_nwm_host, cs_attr[UPLL_IDX_RECOVERY_COUNT_NWMH]),
+  uud::kDalUint8, 1 },
+{ uudst::vbridge_networkmonitor_host::kDbiCsWaitTime, CS_VAL, offsetof(
+        val_nwm_host, cs_attr[UPLL_IDX_WAIT_TIME_NWMH]),
+uud::kDalUint8, 1 },
+{ uudst::vbridge_networkmonitor_host::kDbiCsRowstatus, CS_VAL, offsetof(
+        val_nwm_host, cs_row_status),
+uud::kDalUint8, 1 },
+{ uudst::vbridge_networkmonitor_host::kDbiFlags, CK_VAL, offsetof(
         key_user_data, flags),
-      uud::kDalUint8, 1 }, };
+uud::kDalUint8, 1 }, };
+
+BindInfo NwMonitorHostMoMgr::key_nwm_host_maintbl_update_bind_info[] = {
+  { uudst::vbridge_networkmonitor_host::kDbiVtnName, CFG_MATCH_KEY, offsetof(
+          key_nwm_host, nwm_key.vbr_key.vtn_key.vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1 },
+  { uudst::vbridge_networkmonitor_host::kDbiVbrName, CFG_MATCH_KEY, offsetof(
+          key_nwm_host, nwm_key.vbr_key.vbridge_name),
+  uud::kDalChar, kMaxLenVnodeName + 1 },
+  { uudst::vbridge_networkmonitor_host::kDbiNwmName, CFG_MATCH_KEY, offsetof(
+          key_nwm_host, nwm_key.nwmonitor_name),
+  uud::kDalChar, kMaxLenVnodeName + 1 },
+  { uudst::vbridge_networkmonitor_host::kDbiVtnName, CFG_INPUT_KEY, offsetof(
+          key_rename_vnode_info_t, new_unc_vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1 },
+  { uudst::vbridge_networkmonitor_host::kDbiVbrName, CFG_INPUT_KEY, offsetof(
+          key_rename_vnode_info_t, new_unc_vnode_name),
+  uud::kDalChar, kMaxLenVnodeName + 1 },
+  { uudst::vbridge_networkmonitor_host::kDbiFlags, CK_VAL, offsetof(
+          key_user_data, flags),
+  uud::kDalUint8, 1 }, };
 
 NwMonitorHostMoMgr::NwMonitorHostMoMgr() {
   UPLL_FUNC_TRACE
-  ntable = MAX_MOMGR_TBLS;
+      ntable = MAX_MOMGR_TBLS;
   table = new Table *[ntable];
-  table[MAINTBL] = new Table(uudst::kDbiVbrNwMonHostTbl,
-      UNC_KT_VBR_NWMONITOR_HOST, nwm_host_bind_info,
-      IpctSt::kIpcStKeyNwmHost, IpctSt::kIpcStValNwmHost,
-      uudst::vbridge_networkmonitor_host::kDbiVbrNwMonHostNumCols);
+  table[MAINTBL] = new Table
+      (uudst::kDbiVbrNwMonHostTbl,
+       UNC_KT_VBR_NWMONITOR_HOST, nwm_host_bind_info,
+       IpctSt::kIpcStKeyNwmHost, IpctSt::kIpcStValNwmHost,
+       uudst::vbridge_networkmonitor_host::kDbiVbrNwMonHostNumCols);
   table[RENAMETBL] = NULL;
   table[CTRLRTBL] = NULL;
   nchild = 0;
@@ -192,7 +193,7 @@ upll_rc_t NwMonitorHostMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
   if (parent_key == NULL || !(parent_key->get_key())) {
     UPLL_LOG_DEBUG("parentkey is Null");
     nwmh_key = reinterpret_cast<key_nwm_host *>(
-             ConfigKeyVal::Malloc(sizeof(key_nwm_host)));
+        ConfigKeyVal::Malloc(sizeof(key_nwm_host)));
     if (okey) delete okey;
     okey = new ConfigKeyVal(UNC_KT_VBR_NWMONITOR_HOST, IpctSt::kIpcStKeyNwmHost,
                             nwmh_key, NULL);
@@ -207,40 +208,52 @@ upll_rc_t NwMonitorHostMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
     nwmh_key = reinterpret_cast<key_nwm_host *>(okey->get_key());
   } else {
     nwmh_key = reinterpret_cast<key_nwm_host *>(
-      ConfigKeyVal::Malloc(sizeof(key_nwm_host)));
+        ConfigKeyVal::Malloc(sizeof(key_nwm_host)));
   }
   unc_key_type_t keytype = parent_key->get_key_type();
   switch (keytype) {
     case UNC_KT_VTN:
       uuu::upll_strncpy(nwmh_key->nwm_key.vbr_key.vtn_key.vtn_name,
-             reinterpret_cast<key_vtn *>(pkey)->vtn_name,
-             (kMaxLenVtnName + 1));
+                        reinterpret_cast<key_vtn *>(pkey)->vtn_name,
+                        (kMaxLenVtnName + 1));
       *(nwmh_key->nwm_key.vbr_key.vbridge_name) = *"";
       *nwmh_key->nwm_key.nwmonitor_name = *"";
       nwmh_key->host_address.s_addr = 0;
       break;
+    case UNC_KT_VBRIDGE:
+      uuu::upll_strncpy
+          (nwmh_key->nwm_key.vbr_key.vtn_key.vtn_name,
+           reinterpret_cast<key_nwm *>(pkey)->vbr_key.vtn_key.vtn_name,
+           (kMaxLenVtnName + 1));
+      uuu::upll_strncpy(nwmh_key->nwm_key.vbr_key.vbridge_name,
+                        reinterpret_cast<key_nwm *>(pkey)->vbr_key.vbridge_name,
+                        (kMaxLenVnodeName + 1));
+      break;
     case UNC_KT_VBR_NWMONITOR:
-      uuu::upll_strncpy(nwmh_key->nwm_key.vbr_key.vtn_key.vtn_name,
-             reinterpret_cast<key_nwm *>(pkey)->vbr_key.vtn_key.vtn_name,
-             (kMaxLenVtnName + 1));
+      uuu::upll_strncpy
+          (nwmh_key->nwm_key.vbr_key.vtn_key.vtn_name,
+           reinterpret_cast<key_nwm *>(pkey)->vbr_key.vtn_key.vtn_name,
+           (kMaxLenVtnName + 1));
       uuu::upll_strncpy(nwmh_key->nwm_key.vbr_key.vbridge_name,
-             reinterpret_cast<key_nwm *>(pkey)->vbr_key.vbridge_name,
-             (kMaxLenVnodeName + 1));
+                        reinterpret_cast<key_nwm *>(pkey)->vbr_key.vbridge_name,
+                        (kMaxLenVnodeName + 1));
       uuu::upll_strncpy(nwmh_key->nwm_key.nwmonitor_name,
-             reinterpret_cast<key_nwm *>(pkey)->nwmonitor_name,
-             (kMaxLenNwmName + 1));
+                        reinterpret_cast<key_nwm *>(pkey)->nwmonitor_name,
+                        (kMaxLenNwmName + 1));
       break;
     case UNC_KT_VBR_NWMONITOR_HOST:
       uuu::upll_strncpy(nwmh_key->nwm_key.vbr_key.vtn_key.vtn_name,
-            reinterpret_cast<key_nwm_host *>
-            (pkey)->nwm_key.vbr_key.vtn_key.vtn_name,
-            (kMaxLenVtnName + 1));
-      uuu::upll_strncpy(nwmh_key->nwm_key.vbr_key.vbridge_name,
-          reinterpret_cast<key_nwm_host *>(pkey)->nwm_key.vbr_key.vbridge_name,
-          (kMaxLenVnodeName + 1));
-      uuu::upll_strncpy(nwmh_key->nwm_key.nwmonitor_name,
-          reinterpret_cast<key_nwm_host *>(pkey)->nwm_key.nwmonitor_name,
-          (kMaxLenNwmName + 1));
+                        reinterpret_cast<key_nwm_host *>
+                        (pkey)->nwm_key.vbr_key.vtn_key.vtn_name,
+                        (kMaxLenVtnName + 1));
+      uuu::upll_strncpy
+          (nwmh_key->nwm_key.vbr_key.vbridge_name,
+           reinterpret_cast<key_nwm_host *>(pkey)->nwm_key.vbr_key.vbridge_name,
+           (kMaxLenVnodeName + 1));
+      uuu::upll_strncpy
+          (nwmh_key->nwm_key.nwmonitor_name,
+           reinterpret_cast<key_nwm_host *>(pkey)->nwm_key.nwmonitor_name,
+           (kMaxLenNwmName + 1));
       nwmh_key->host_address.s_addr =
           reinterpret_cast<key_nwm_host *>(pkey)->host_address.s_addr;
     default:
@@ -276,16 +289,19 @@ upll_rc_t NwMonitorHostMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
       (ikey->get_key());
   if (!pkey) return UPLL_RC_ERR_GENERIC;
   key_nwm *nwm_key = reinterpret_cast<key_nwm *>(
-    ConfigKeyVal::Malloc(sizeof(key_nwm)));
-  uuu::upll_strncpy(nwm_key->vbr_key.vtn_key.vtn_name,
-      reinterpret_cast<key_nwm_host *>(pkey)->nwm_key.vbr_key.vtn_key.vtn_name,
-      (kMaxLenVtnName + 1));
-  uuu::upll_strncpy(nwm_key->vbr_key.vbridge_name,
-      reinterpret_cast<key_nwm_host *>(pkey)->nwm_key.vbr_key.vbridge_name,
-      (kMaxLenVnodeName + 1));
-  uuu::upll_strncpy(nwm_key->nwmonitor_name,
-      reinterpret_cast<key_nwm_host *>(pkey)->nwm_key.nwmonitor_name,
-      (kMaxLenNwmName + 1));
+      ConfigKeyVal::Malloc(sizeof(key_nwm)));
+  uuu::upll_strncpy
+      (nwm_key->vbr_key.vtn_key.vtn_name,
+       reinterpret_cast<key_nwm_host *>(pkey)->nwm_key.vbr_key.vtn_key.vtn_name,
+       (kMaxLenVtnName + 1));
+  uuu::upll_strncpy
+      (nwm_key->vbr_key.vbridge_name,
+       reinterpret_cast<key_nwm_host *>(pkey)->nwm_key.vbr_key.vbridge_name,
+       (kMaxLenVnodeName + 1));
+  uuu::upll_strncpy
+      (nwm_key->nwmonitor_name,
+       reinterpret_cast<key_nwm_host *>(pkey)->nwm_key.nwmonitor_name,
+       (kMaxLenNwmName + 1));
   if (okey) delete okey;
   okey = new ConfigKeyVal(UNC_KT_VBR_NWMONITOR, IpctSt::kIpcStKeyNwm, nwm_key,
                           NULL);
@@ -328,7 +344,7 @@ upll_rc_t NwMonitorHostMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
   UPLL_FUNC_TRACE;
   if (req == NULL) return UPLL_RC_ERR_GENERIC;
   if (okey != NULL) return UPLL_RC_ERR_GENERIC;
-  if (req->get_key_type() != UNC_KT_VBR_NWMONITOR_HOST) 
+  if (req->get_key_type() != UNC_KT_VBR_NWMONITOR_HOST)
     return UPLL_RC_ERR_GENERIC;
   ConfigVal *tmp1 = NULL, *tmp = (req)->get_cfg_val();
   if (tmp) {
@@ -348,7 +364,7 @@ upll_rc_t NwMonitorHostMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
   if (tmp) {
     if (tbl == MAINTBL) {
       val_nwm_host_st *ival = reinterpret_cast<val_nwm_host_st *>
-                                              (tmp->get_val());
+          (tmp->get_val());
       if (ival == NULL) {
         UPLL_LOG_DEBUG("NULL val structure");
         delete tmp1;
@@ -373,7 +389,8 @@ upll_rc_t NwMonitorHostMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
   if (okey) {
     SET_USER_DATA(okey, req);
   } else  {
-    delete tmp1;
+    DELETE_IF_NOT_NULL(tmp1);
+    DELETE_IF_NOT_NULL(nwm_key);
   }
   return UPLL_RC_SUCCESS;
 }
@@ -397,7 +414,7 @@ upll_rc_t NwMonitorHostMoMgr::UpdateConfigStatus(ConfigKeyVal *ikey,
   } else if (op == UNC_OP_UPDATE) {
     void *val = reinterpret_cast<void*>(nwm_val);
     CompareValidValue(val, GetVal(upd_key), true);
-    UPLL_LOG_TRACE("Key in Running %s",(upd_key->ToStrAll()).c_str());
+    UPLL_LOG_TRACE("Key in Running %s", (upd_key->ToStrAll()).c_str());
     nwm_val->cs_row_status = nwm_val2->cs_row_status;
   } else {
     return UPLL_RC_ERR_GENERIC;
@@ -405,14 +422,14 @@ upll_rc_t NwMonitorHostMoMgr::UpdateConfigStatus(ConfigKeyVal *ikey,
   for (unsigned int loop = 0;
        loop < sizeof(nwm_val->valid) / sizeof(nwm_val->valid[0]); ++loop) {
     if ((UNC_VF_VALID == (uint8_t) nwm_val->valid[loop])
-          || (UNC_VF_VALID_NO_VALUE == (uint8_t) nwm_val->valid[loop])) {
+        || (UNC_VF_VALID_NO_VALUE == (uint8_t) nwm_val->valid[loop])) {
       nwm_val->cs_attr[loop] = cs_status;
     } else if ((UNC_VF_INVALID == nwm_val->valid[loop]) &&
                (UNC_OP_CREATE == op)) {
-        nwm_val->cs_attr[loop] = UNC_CS_NOT_APPLIED;
+      nwm_val->cs_attr[loop] = UNC_CS_NOT_APPLIED;
     } else if ((UNC_VF_INVALID == nwm_val->valid[loop]) &&
                (UNC_OP_UPDATE == op)) {
-        nwm_val->cs_attr[loop] = nwm_val2->cs_attr[loop];
+      nwm_val->cs_attr[loop] = nwm_val2->cs_attr[loop];
     }
   }
   return UPLL_RC_SUCCESS;
@@ -434,7 +451,7 @@ bool NwMonitorHostMoMgr::CompareValidValue(void *&val1, void *val2,
   val_nwm_host_t *valnwmhost1 = reinterpret_cast<val_nwm_host_t *>(val1);
   val_nwm_host_t *valnwmhost2 = reinterpret_cast<val_nwm_host_t *>(val2);
   for (unsigned int loop = 0;
-      loop < sizeof(valnwmhost1->valid) / sizeof(uint8_t); ++loop) {
+       loop < sizeof(valnwmhost1->valid) / sizeof(uint8_t); ++loop) {
     if (UNC_VF_INVALID == valnwmhost1->valid[loop]
         && UNC_VF_VALID == valnwmhost2->valid[loop])
       valnwmhost1->valid[loop] = UNC_VF_VALID_NO_VALUE;
@@ -442,32 +459,32 @@ bool NwMonitorHostMoMgr::CompareValidValue(void *&val1, void *val2,
   if (UNC_VF_VALID == valnwmhost1->valid[UPLL_IDX_HEALTH_INTERVAL_NWMH]
       && UNC_VF_VALID == valnwmhost2->valid[UPLL_IDX_HEALTH_INTERVAL_NWMH]) {
     if (valnwmhost1->health_interval == valnwmhost2->health_interval)
-      valnwmhost1->valid[UPLL_IDX_HEALTH_INTERVAL_NWMH] = 
-        (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+      valnwmhost1->valid[UPLL_IDX_HEALTH_INTERVAL_NWMH] =
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   }
   if (UNC_VF_VALID == valnwmhost1->valid[UPLL_IDX_RECOVERY_INTERVAL_NWMH]
       && UNC_VF_VALID == valnwmhost2->valid[UPLL_IDX_RECOVERY_INTERVAL_NWMH]) {
     if (valnwmhost1->recovery_interval == valnwmhost2->recovery_interval)
-      valnwmhost1->valid[UPLL_IDX_RECOVERY_INTERVAL_NWMH] = 
-        (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+      valnwmhost1->valid[UPLL_IDX_RECOVERY_INTERVAL_NWMH] =
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   }
   if (UNC_VF_VALID == valnwmhost1->valid[UPLL_IDX_FAILURE_COUNT_NWMH]
       && UNC_VF_VALID == valnwmhost2->valid[UPLL_IDX_FAILURE_COUNT_NWMH]) {
     if (valnwmhost1->failure_count == valnwmhost2->failure_count)
-      valnwmhost1->valid[UPLL_IDX_FAILURE_COUNT_NWMH] = 
-        (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+      valnwmhost1->valid[UPLL_IDX_FAILURE_COUNT_NWMH] =
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   }
   if (UNC_VF_VALID == valnwmhost1->valid[UPLL_IDX_RECOVERY_COUNT_NWMH]
       && UNC_VF_VALID == valnwmhost2->valid[UPLL_IDX_RECOVERY_COUNT_NWMH]) {
     if (valnwmhost1->recovery_count == valnwmhost2->recovery_count)
-      valnwmhost1->valid[UPLL_IDX_RECOVERY_COUNT_NWMH] = 
-        (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+      valnwmhost1->valid[UPLL_IDX_RECOVERY_COUNT_NWMH] =
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   }
   if (UNC_VF_VALID == valnwmhost1->valid[UPLL_IDX_WAIT_TIME_NWMH]
       && UNC_VF_VALID == valnwmhost2->valid[UPLL_IDX_WAIT_TIME_NWMH]) {
     if (valnwmhost1->wait_time == valnwmhost2->wait_time)
-      valnwmhost1->valid[UPLL_IDX_WAIT_TIME_NWMH] = 
-        (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+      valnwmhost1->valid[UPLL_IDX_WAIT_TIME_NWMH] =
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   }
   for (unsigned int loop = 0;
        loop < (sizeof(valnwmhost1->valid) / sizeof(valnwmhost1->valid[0]));
@@ -482,8 +499,11 @@ bool NwMonitorHostMoMgr::CompareValidValue(void *&val1, void *val2,
 }
 
 upll_rc_t NwMonitorHostMoMgr::UpdateAuditConfigStatus(
-    unc_keytype_configstatus_t cs_status, uuc::UpdateCtrlrPhase phase,
-    ConfigKeyVal *&ckv_running) {
+    unc_keytype_configstatus_t cs_status,
+    uuc::UpdateCtrlrPhase phase,
+    ConfigKeyVal *&ckv_running,
+    DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_nwm_host_t *val;
   val = (ckv_running != NULL) ?
@@ -493,13 +513,13 @@ upll_rc_t NwMonitorHostMoMgr::UpdateAuditConfigStatus(
   }
   if (uuc::kUpllUcpCreate == phase) val->cs_row_status = cs_status;
   if ((uuc::kUpllUcpUpdate == phase) &&
-           (val->cs_row_status == UNC_CS_INVALID ||
-            val->cs_row_status == UNC_CS_NOT_APPLIED))
+      (val->cs_row_status == UNC_CS_INVALID ||
+       val->cs_row_status == UNC_CS_NOT_APPLIED))
     val->cs_row_status = cs_status;
   for (unsigned int loop = 0; loop < sizeof(val->valid) / sizeof(uint8_t);
-      ++loop) {
+       ++loop) {
     if ((cs_status == UNC_CS_INVALID && UNC_VF_VALID == val->valid[loop]) ||
-       cs_status == UNC_CS_APPLIED) {
+        cs_status == UNC_CS_APPLIED) {
       val->cs_attr[loop] = cs_status;
     }
   }
@@ -515,28 +535,28 @@ upll_rc_t NwMonitorHostMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
   key_rename_vnode_info *key_rename =
       reinterpret_cast<key_rename_vnode_info *>(ikey->get_key());
   key_nwm_host_t * key_vwm = static_cast<key_nwm_host_t *>(
-    ConfigKeyVal::Malloc(sizeof(key_nwm_host_t)));
+      ConfigKeyVal::Malloc(sizeof(key_nwm_host_t)));
   //  key_nwm_host, nwm_key.vbr_key.vtn_key.vtn_name
   if (!strlen(reinterpret_cast<char *>(key_rename->old_unc_vtn_name))) {
     free(key_vwm);
     return UPLL_RC_ERR_GENERIC;
   }
   uuu::upll_strncpy(key_vwm->nwm_key.vbr_key.vtn_key.vtn_name,
-         key_rename->old_unc_vtn_name, (kMaxLenVtnName + 1));
+                    key_rename->old_unc_vtn_name, (kMaxLenVtnName + 1));
   if (ikey->get_key_type() == UNC_KT_VBRIDGE) {
     if (!strlen(reinterpret_cast<char *>(key_rename->old_unc_vnode_name))) {
       free(key_vwm);
       return UPLL_RC_ERR_GENERIC;
     }
     uuu::upll_strncpy(key_vwm->nwm_key.vbr_key.vbridge_name,
-           key_rename->old_unc_vnode_name, (kMaxLenVnodeName + 1));
+                      key_rename->old_unc_vnode_name, (kMaxLenVnodeName + 1));
   } else {
     if (!strlen(reinterpret_cast<char *>(key_rename->new_unc_vnode_name))) {
       FREE_IF_NOT_NULL(key_vwm);
       return UPLL_RC_ERR_GENERIC;
     }
     uuu::upll_strncpy(key_vwm->nwm_key.vbr_key.vbridge_name,
-       key_rename->new_unc_vnode_name, (kMaxLenVnodeName+1));
+                      key_rename->new_unc_vnode_name, (kMaxLenVnodeName+1));
   }
   okey = new ConfigKeyVal(UNC_KT_VBR_NWMONITOR_HOST, IpctSt::kIpcStKeyNwmHost,
                           key_vwm, NULL);
@@ -547,7 +567,7 @@ upll_rc_t NwMonitorHostMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
   return result_code;
 }
 upll_rc_t NwMonitorHostMoMgr::ValidateMessage(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey) {
+                                              ConfigKeyVal *ikey) {
   UPLL_FUNC_TRACE;
   upll_rc_t ret_val = UPLL_RC_SUCCESS;
   if (!ikey || !req || !(ikey->get_key())) {
@@ -568,12 +588,12 @@ upll_rc_t NwMonitorHostMoMgr::ValidateMessage(IpcReqRespHeader *req,
     return UPLL_RC_ERR_BAD_REQUEST;
   }
   key_nwm_host_t *key_nwm_host =
-    reinterpret_cast<key_nwm_host_t *>(ikey->get_key());
+      reinterpret_cast<key_nwm_host_t *>(ikey->get_key());
   val_nwm_host_t *val_nwm_host = NULL;
   if ((ikey->get_cfg_val())
       && ((ikey->get_cfg_val())->get_st_num() == IpctSt::kIpcStValNwmHost)) {
     val_nwm_host =
-      reinterpret_cast<val_nwm_host_t *>(ikey->get_cfg_val()->get_val());
+        reinterpret_cast<val_nwm_host_t *>(ikey->get_cfg_val()->get_val());
   }
   upll_keytype_datatype_t dt_type = req->datatype;
   unc_keytype_operation_t operation = req->operation;
@@ -586,7 +606,8 @@ upll_rc_t NwMonitorHostMoMgr::ValidateMessage(IpcReqRespHeader *req,
   }
   ret_val = ValidateNwMonHostKey(key_nwm_host, operation);
   if (ret_val != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Key structure validation failure for KT_VBR_NWMONITOR_HOST");
+    UPLL_LOG_DEBUG("Key structure validation failure for"
+                   "KT_VBR_NWMONITOR_HOST");
     return UPLL_RC_ERR_CFG_SYNTAX;
   } else {
     if (((operation == UNC_OP_CREATE) || (operation == UNC_OP_UPDATE))
@@ -603,10 +624,12 @@ upll_rc_t NwMonitorHostMoMgr::ValidateMessage(IpcReqRespHeader *req,
         return UPLL_RC_ERR_CFG_SYNTAX;
       }
     } else if (((operation == UNC_OP_READ) || (operation == UNC_OP_READ_SIBLING)
-          || (operation == UNC_OP_READ_SIBLING_BEGIN)
-          || (operation == UNC_OP_READ_SIBLING_COUNT))
-        && ((dt_type == UPLL_DT_CANDIDATE) || (dt_type == UPLL_DT_RUNNING)
-          || (dt_type == UPLL_DT_STARTUP) || (dt_type == UPLL_DT_STATE))) {
+                || (operation == UNC_OP_READ_SIBLING_BEGIN)
+                || (operation == UNC_OP_READ_SIBLING_COUNT))
+               && ((dt_type == UPLL_DT_CANDIDATE) ||
+                   (dt_type == UPLL_DT_RUNNING)
+                   || (dt_type == UPLL_DT_STARTUP) ||
+                   (dt_type == UPLL_DT_STATE))) {
       if (option1 == UNC_OPT1_NORMAL) {
         if (option2 == UNC_OPT2_NONE) {
           if (val_nwm_host != NULL) {
@@ -629,12 +652,13 @@ upll_rc_t NwMonitorHostMoMgr::ValidateMessage(IpcReqRespHeader *req,
         return UPLL_RC_ERR_INVALID_OPTION1;
       }
     } else if ((operation == UNC_OP_DELETE) || (operation == UNC_OP_READ_NEXT)
-        || (operation == UNC_OP_READ_BULK)) {
-      UPLL_LOG_TRACE("Value structure is none for operation type:%d", operation);
+               || (operation == UNC_OP_READ_BULK)) {
+      UPLL_LOG_TRACE("Value structure is none for operation type:%d",
+                     operation);
       return UPLL_RC_SUCCESS;
     } else {
       UPLL_LOG_DEBUG("Invalid datatype(%d) and operation(%d)", dt_type,
-          operation);
+                     operation);
       return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
     }
   }
@@ -646,86 +670,86 @@ upll_rc_t NwMonitorHostMoMgr::ValidateNwMonHostValue(
 
   if (val_nwm_host->valid[UPLL_IDX_HEALTH_INTERVAL_NWMH] == UNC_VF_VALID) {
     if (!ValidateNumericRange(val_nwm_host->health_interval,
-          (uint16_t) kMinNWMHHealthInterval,
-          uint16_t(kMaxNWMHHealthInterval), true, true)) {
+                              (uint16_t) kMinNWMHHealthInterval,
+                              uint16_t(kMaxNWMHHealthInterval), true, true)) {
       UPLL_LOG_DEBUG("Syntax check failed.health_interval(%d)",
-          val_nwm_host->health_interval);
+                     val_nwm_host->health_interval);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
-  } 
+  }
 #if 0
   else if ((val_nwm_host->valid[UPLL_IDX_HEALTH_INTERVAL_NWMH]
-        == UNC_VF_VALID_NO_VALUE)
-      && ((operation == UNC_OP_UPDATE) || (operation == UNC_OP_CREATE))) {
+            == UNC_VF_VALID_NO_VALUE)
+           && ((operation == UNC_OP_UPDATE) || (operation == UNC_OP_CREATE))) {
     val_nwm_host->health_interval = 0;
   }
 #endif
 
   if (val_nwm_host->valid[UPLL_IDX_RECOVERY_INTERVAL_NWMH] == UNC_VF_VALID) {
     if (!ValidateNumericRange(val_nwm_host->recovery_interval,
-          (uint16_t) kMinNWMHRecoveryInterval,
-          (uint16_t) kMaxNWMHRecoveryInterval, true,
-          true)) {
+                              (uint16_t) kMinNWMHRecoveryInterval,
+                              (uint16_t) kMaxNWMHRecoveryInterval, true,
+                              true)) {
       UPLL_LOG_DEBUG("Syntax check failed.recovery_interval:(%d)",
-          val_nwm_host->recovery_interval);
+                     val_nwm_host->recovery_interval);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
-  } 
+  }
 #if 0
   else if ((val_nwm_host->valid[UPLL_IDX_RECOVERY_INTERVAL_NWMH]
-        == UNC_VF_VALID_NO_VALUE)
-      && ((operation == UNC_OP_UPDATE) || (operation == UNC_OP_CREATE))) {
+            == UNC_VF_VALID_NO_VALUE)
+           && ((operation == UNC_OP_UPDATE) || (operation == UNC_OP_CREATE))) {
     val_nwm_host->recovery_interval = 0;
   }
 #endif
 
   if (val_nwm_host->valid[UPLL_IDX_FAILURE_COUNT_NWMH] == UNC_VF_VALID) {
     if (!ValidateNumericRange(val_nwm_host->failure_count,
-          (uint8_t) kMinNWMHFailureCount,
-          (uint8_t) kMaxNWMHFailureCount, true, true)) {
+                              (uint8_t) kMinNWMHFailureCount,
+                              (uint8_t) kMaxNWMHFailureCount, true, true)) {
       UPLL_LOG_DEBUG("Syntax check failed.failure_count(%d)",
-          val_nwm_host->failure_count);
+                     val_nwm_host->failure_count);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
-  } 
+  }
 #if 0
   else if ((val_nwm_host->valid[UPLL_IDX_FAILURE_COUNT_NWMH]
-        == UNC_VF_VALID_NO_VALUE)
-      && ((operation == UNC_OP_UPDATE) || (operation == UNC_OP_CREATE))) {
+            == UNC_VF_VALID_NO_VALUE)
+           && ((operation == UNC_OP_UPDATE) || (operation == UNC_OP_CREATE))) {
     val_nwm_host->failure_count = 0;
   }
 #endif
 
   if (val_nwm_host->valid[UPLL_IDX_RECOVERY_COUNT_NWMH] == UNC_VF_VALID) {
     if (!ValidateNumericRange(val_nwm_host->recovery_count,
-          (uint8_t) kMinNWMHRecoveryCount,
-          (uint8_t) kMaxNWMHRecoveryCount, true, true)) {
+                              (uint8_t) kMinNWMHRecoveryCount,
+                              (uint8_t) kMaxNWMHRecoveryCount, true, true)) {
       UPLL_LOG_DEBUG("Syntax check failed.recovery_count(%d)",
-          val_nwm_host->recovery_count);
+                     val_nwm_host->recovery_count);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
-  } 
+  }
 #if 0
   else if ((val_nwm_host->valid[UPLL_IDX_RECOVERY_COUNT_NWMH]
-        == UNC_VF_VALID_NO_VALUE)
-      && ((operation == UNC_OP_UPDATE) || (operation == UNC_OP_CREATE))) {
+            == UNC_VF_VALID_NO_VALUE)
+           && ((operation == UNC_OP_UPDATE) || (operation == UNC_OP_CREATE))) {
     val_nwm_host->recovery_count = 0;
   }
 #endif
 
   if (val_nwm_host->valid[UPLL_IDX_WAIT_TIME_NWMH] == UNC_VF_VALID) {
     if (!ValidateNumericRange(val_nwm_host->wait_time,
-          (uint8_t) kMinNWMHWaitTime,
-          (uint8_t) kMaxNWMHWaitTime, true, true)) {
+                              (uint8_t) kMinNWMHWaitTime,
+                              (uint8_t) kMaxNWMHWaitTime, true, true)) {
       UPLL_LOG_DEBUG("Syntax check failed.wait_time(%d)",
-          val_nwm_host->wait_time);
+                     val_nwm_host->wait_time);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
-  } 
+  }
 #if 0
   else if ((val_nwm_host->valid[UPLL_IDX_WAIT_TIME_NWMH]
-        == UNC_VF_VALID_NO_VALUE)
-      && ((operation == UNC_OP_UPDATE) || (operation == UNC_OP_CREATE))) {
+            == UNC_VF_VALID_NO_VALUE)
+           && ((operation == UNC_OP_UPDATE) || (operation == UNC_OP_CREATE))) {
     val_nwm_host->wait_time = 0;
   }
 #endif
@@ -739,8 +763,8 @@ upll_rc_t NwMonitorHostMoMgr::ValidateNwMonHostKey(
   UPLL_FUNC_TRACE;
   bool ret_val = UPLL_RC_SUCCESS;
   NwMonitorMoMgr *objnwmmgr =
-    reinterpret_cast<NwMonitorMoMgr*>(const_cast<MoManager *>(GetMoManager(
-            UNC_KT_VBR_NWMONITOR)));
+      reinterpret_cast<NwMonitorMoMgr*>(const_cast<MoManager *>(GetMoManager(
+                  UNC_KT_VBR_NWMONITOR)));
   if (NULL == objnwmmgr) {
     UPLL_LOG_DEBUG("unable to get NwMonitorMoMgr");
     return UPLL_RC_ERR_GENERIC;
@@ -753,8 +777,7 @@ upll_rc_t NwMonitorHostMoMgr::ValidateNwMonHostKey(
   }
   if ((operation == UNC_OP_READ_SIBLING_BEGIN) ||
       (operation == UNC_OP_READ_SIBLING_COUNT)) {
-
-    key_nwm_host->host_address.s_addr = 0x00000000; 
+    key_nwm_host->host_address.s_addr = 0x00000000;
   }
   return UPLL_RC_SUCCESS;
 }
@@ -764,7 +787,7 @@ upll_rc_t NwMonitorHostMoMgr::ValNwMonHostAttributeSupportCheck(
   UPLL_FUNC_TRACE;
   if ((val_nwm_host->valid[UPLL_IDX_HEALTH_INTERVAL_NWMH] == UNC_VF_VALID)
       || (val_nwm_host->valid[UPLL_IDX_HEALTH_INTERVAL_NWMH]
-        == UNC_VF_VALID_NO_VALUE)) {
+          == UNC_VF_VALID_NO_VALUE)) {
     if (attrs[unc::capa::nwm_host::kCapHealthInterval] == 0) {
       val_nwm_host->valid[UPLL_IDX_HEALTH_INTERVAL_NWMH] = UNC_VF_INVALID;
       if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
@@ -775,7 +798,7 @@ upll_rc_t NwMonitorHostMoMgr::ValNwMonHostAttributeSupportCheck(
   }
   if ((val_nwm_host->valid[UPLL_IDX_RECOVERY_INTERVAL_NWMH] == UNC_VF_VALID)
       || (val_nwm_host->valid[UPLL_IDX_RECOVERY_INTERVAL_NWMH]
-        == UNC_VF_VALID_NO_VALUE)) {
+          == UNC_VF_VALID_NO_VALUE)) {
     if (attrs[unc::capa::nwm_host::kCapRecoveryInterval] == 0) {
       val_nwm_host->valid[UPLL_IDX_RECOVERY_INTERVAL_NWMH] = UNC_VF_INVALID;
       if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
@@ -786,7 +809,7 @@ upll_rc_t NwMonitorHostMoMgr::ValNwMonHostAttributeSupportCheck(
   }
   if ((val_nwm_host->valid[UPLL_IDX_FAILURE_COUNT_NWMH] == UNC_VF_VALID)
       || (val_nwm_host->valid[UPLL_IDX_FAILURE_COUNT_NWMH]
-        == UNC_VF_VALID_NO_VALUE)) {
+          == UNC_VF_VALID_NO_VALUE)) {
     if (attrs[unc::capa::nwm_host::kCapFailureCount] == 0) {
       val_nwm_host->valid[UPLL_IDX_FAILURE_COUNT_NWMH] = UNC_VF_INVALID;
       if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
@@ -797,7 +820,7 @@ upll_rc_t NwMonitorHostMoMgr::ValNwMonHostAttributeSupportCheck(
   }
   if ((val_nwm_host->valid[UPLL_IDX_RECOVERY_COUNT_NWMH] == UNC_VF_VALID)
       || (val_nwm_host->valid[UPLL_IDX_RECOVERY_COUNT_NWMH]
-        == UNC_VF_VALID_NO_VALUE)) {
+          == UNC_VF_VALID_NO_VALUE)) {
     if (attrs[unc::capa::nwm_host::kCapRecoveryCount] == 0) {
       val_nwm_host->valid[UPLL_IDX_RECOVERY_COUNT_NWMH] = UNC_VF_INVALID;
       if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
@@ -808,7 +831,7 @@ upll_rc_t NwMonitorHostMoMgr::ValNwMonHostAttributeSupportCheck(
   }
   if ((val_nwm_host->valid[UPLL_IDX_WAIT_TIME_NWMH] == UNC_VF_VALID)
       || (val_nwm_host->valid[UPLL_IDX_WAIT_TIME_NWMH]
-        == UNC_VF_VALID_NO_VALUE)) {
+          == UNC_VF_VALID_NO_VALUE)) {
     if (attrs[unc::capa::nwm_host::kCapWaitTime] == 0) {
       val_nwm_host->valid[UPLL_IDX_WAIT_TIME_NWMH] = UNC_VF_INVALID;
       if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
@@ -821,17 +844,17 @@ upll_rc_t NwMonitorHostMoMgr::ValNwMonHostAttributeSupportCheck(
 }
 
 upll_rc_t NwMonitorHostMoMgr::ValidateCapability(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey,
-    const char * ctrlr_name) {
+                                                 ConfigKeyVal *ikey,
+                                                 const char * ctrlr_name) {
   UPLL_FUNC_TRACE;
-  if (!ikey || !req ) {
+  if (!ikey || !req) {
     UPLL_LOG_DEBUG("ConfigKeyVal / IpcReqRespHeader is Null");
     return UPLL_RC_ERR_GENERIC;
   }
 
   if (!ctrlr_name) {
     ctrlr_name = reinterpret_cast<char*>((reinterpret_cast<key_user_data_t *>
-                  (ikey->get_user_data()))->ctrlr_id);
+                                          (ikey->get_user_data()))->ctrlr_id);
     if (!ctrlr_name || !strlen(ctrlr_name)) {
       UPLL_LOG_DEBUG("Controller Name is NULL");
       return UPLL_RC_ERR_GENERIC;
@@ -839,7 +862,7 @@ upll_rc_t NwMonitorHostMoMgr::ValidateCapability(IpcReqRespHeader *req,
   }
 
   UPLL_LOG_TRACE("ctrlr_name(%s), operation : (%d)",
-      ctrlr_name, req->operation);
+                 ctrlr_name, req->operation);
 
   bool result_code = false;
   uint32_t max_instance_count = 0;
@@ -849,20 +872,13 @@ upll_rc_t NwMonitorHostMoMgr::ValidateCapability(IpcReqRespHeader *req,
   switch (req->operation) {
     case UNC_OP_CREATE:
       result_code = GetCreateCapability(ctrlr_name, ikey->get_key_type(),
-          &max_instance_count, &max_attrs,
-          &attrs);
-      if (result_code && (max_instance_count != 0) &&
-          cur_instance_count >= max_instance_count) {
-        UPLL_LOG_DEBUG("[%s:%d:%s Instance count %d exceeds %d", __FILE__,
-            __LINE__, __FUNCTION__, cur_instance_count,
-            max_instance_count);
-        return UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
-      }
+                                        &max_instance_count, &max_attrs,
+                                        &attrs);
       break;
 
     case UNC_OP_UPDATE:
       result_code = GetUpdateCapability(ctrlr_name, ikey->get_key_type(),
-          &max_attrs, &attrs);
+                                        &max_attrs, &attrs);
       break;
 
     case UNC_OP_READ:
@@ -870,7 +886,7 @@ upll_rc_t NwMonitorHostMoMgr::ValidateCapability(IpcReqRespHeader *req,
     case UNC_OP_READ_SIBLING_BEGIN:
     case UNC_OP_READ_SIBLING_COUNT:
       result_code = GetReadCapability(ctrlr_name, ikey->get_key_type(),
-          &max_attrs, &attrs);
+                                      &max_attrs, &attrs);
       break;
 
     default:
@@ -879,44 +895,48 @@ upll_rc_t NwMonitorHostMoMgr::ValidateCapability(IpcReqRespHeader *req,
   }
   if (!result_code) {
     UPLL_LOG_DEBUG("keytype(%d) is not supported by controller(%s) "
-        "for operation(%d)",
-        ikey->get_key_type(), ctrlr_name, req->operation);
+                   "for operation(%d)",
+                   ikey->get_key_type(), ctrlr_name, req->operation);
     return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
   }
   val_nwm_host_t *val_nwm_host = NULL;
   if ((ikey->get_cfg_val())
       && (ikey->get_cfg_val())->get_st_num() == IpctSt::kIpcStValNwmHost) {
     val_nwm_host =
-      reinterpret_cast<val_nwm_host_t *>(ikey->get_cfg_val()->get_val());
+        reinterpret_cast<val_nwm_host_t *>(ikey->get_cfg_val()->get_val());
   }
   if (val_nwm_host) {
     if (max_attrs > 0) {
-      return ValNwMonHostAttributeSupportCheck(val_nwm_host, attrs, req->operation);
+      return ValNwMonHostAttributeSupportCheck(val_nwm_host,
+                                               attrs,
+                                               req->operation);
     } else {
-      UPLL_LOG_DEBUG("Attribute list is empty for operation %d", req->operation);
+      UPLL_LOG_DEBUG("Attribute list is empty for operation %d",
+                     req->operation);
       return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
     }
   }
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t NwMonitorHostMoMgr::GetControllerDomainId(ConfigKeyVal *ikey,
-                                       upll_keytype_datatype_t dt_type,
-                                       controller_domain_t *ctrlr_dom,
-                                       DalDmlIntf *dmi) {
+upll_rc_t
+NwMonitorHostMoMgr::GetControllerDomainId(ConfigKeyVal *ikey,
+                                          upll_keytype_datatype_t dt_type,
+                                          controller_domain_t *ctrlr_dom,
+                                          DalDmlIntf *dmi) {
   DbSubOp dbop = {kOpReadSingle, kOpMatchNone, kOpInOutCtrlr | kOpInOutDomain};
   NwMonitorMoMgr *mgr = reinterpret_cast<NwMonitorMoMgr*>
-       (const_cast<MoManager *>(GetMoManager(UNC_KT_VBR_NWMONITOR)));
+      (const_cast<MoManager *>(GetMoManager(UNC_KT_VBR_NWMONITOR)));
   upll_rc_t result_code = mgr->ReadConfigDB(ikey, dt_type, UNC_OP_READ,
                                             dbop, dmi, MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Returning error %d",result_code);
+    UPLL_LOG_DEBUG("Returning error %d", result_code);
     return result_code;
   }
-  GET_USER_DATA_CTRLR_DOMAIN(ikey,*ctrlr_dom);
+  GET_USER_DATA_CTRLR_DOMAIN(ikey, *ctrlr_dom);
   if ((!ctrlr_dom->ctrlr || !ctrlr_dom->domain))
     return UPLL_RC_ERR_GENERIC;
-  UPLL_LOG_DEBUG("ctrlr %s domain %s",ctrlr_dom->ctrlr,ctrlr_dom->domain);
+  UPLL_LOG_DEBUG("ctrlr %s domain %s", ctrlr_dom->ctrlr, ctrlr_dom->domain);
   return UPLL_RC_SUCCESS;
 }
 
index 45567cb22c4e864d2c1a9679c42c3cb3d36f02f9..aea056e2be714e8ca322c2465f7f27e8f32dd2ef 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -19,250 +19,256 @@ namespace upll {
 namespace kt_momgr {
 
 class NwMonitorHostMoMgr : public VnodeChildMoMgr {
 private:
-    static BindInfo nwm_host_bind_info[];
-    static BindInfo key_nwm_host_maintbl_update_bind_info[];
+ private:
+  static BindInfo nwm_host_bind_info[];
+  static BindInfo key_nwm_host_maintbl_update_bind_info[];
 
-    upll_rc_t GetControllerDomainId(ConfigKeyVal *ikey,
-                                    upll_keytype_datatype_t dt_type,
-                                    controller_domain_t *ctrlr_dom,
-                                    DalDmlIntf *dmi); 
-    /**
-     * @brief  Gets the valid array position of the variable in the value
-     *         structure from the table in the specified configuration
-     *
-     * @param[in]     val      pointer to the value structure
-     * @param[in]     indx     database index for the variable
-     * @param[out]    valid    position of the variable in the valid array -
-     *                          NULL if valid does not exist.
-     * @param[in]     dt_type  specifies the configuration
-     * @param[in]     tbl      specifies the table containing the given value
-     *
-     **/
-    upll_rc_t GetValid(void *val, uint64_t indx, uint8_t *&valid,
-                       upll_keytype_datatype_t dt_type, MoMgrTables tbl) {
-      if (val == NULL) return UPLL_RC_ERR_GENERIC;
-      if (tbl == MAINTBL) {
-        switch (indx) {
-          case uudst::vbridge_networkmonitor_host::kDbiHealthInterval:
-            valid = &(reinterpret_cast<val_nwm_host *>
-                  (val))->valid[UPLL_IDX_HEALTH_INTERVAL_NWMH];
-            break;
-          case uudst::vbridge_networkmonitor_host::kDbiRecoveryInterval:
-            valid = &(reinterpret_cast<val_nwm_host *>
-                  (val))->valid[UPLL_IDX_RECOVERY_INTERVAL_NWMH];
-            break;
-          case uudst::vbridge_networkmonitor_host::kDbiFailureCount:
-            valid = &(reinterpret_cast<val_nwm_host *>
-                      (val))->valid[UPLL_IDX_FAILURE_COUNT_NWMH];
-            break;
-          case uudst::vbridge_networkmonitor_host::kDbiRecoveryCount:
-            valid = &(reinterpret_cast<val_nwm_host *>
-                      (val))->valid[UPLL_IDX_RECOVERY_COUNT_NWMH];
-            break;
-          case uudst::vbridge_networkmonitor_host::kDbiWaitTime:
-            valid = &(reinterpret_cast<val_nwm_host *>
-                      (val))->valid[UPLL_IDX_WAIT_TIME_NWMH];
-            break;
-          default:
-            return UPLL_RC_ERR_GENERIC;
-        }
+  upll_rc_t GetControllerDomainId(ConfigKeyVal *ikey,
+                                  upll_keytype_datatype_t dt_type,
+                                  controller_domain_t *ctrlr_dom,
+                                  DalDmlIntf *dmi);
+  /**
+   * @brief  Gets the valid array position of the variable in the value
+   *         structure from the table in the specified configuration
+   *
+   * @param[in]     val      pointer to the value structure
+   * @param[in]     indx     database index for the variable
+   * @param[out]    valid    position of the variable in the valid array -
+   *                          NULL if valid does not exist.
+   * @param[in]     dt_type  specifies the configuration
+   * @param[in]     tbl      specifies the table containing the given value
+   *
+   **/
+  upll_rc_t GetValid(void *val, uint64_t indx, uint8_t *&valid,
+                     upll_keytype_datatype_t dt_type, MoMgrTables tbl) {
+    if (val == NULL) return UPLL_RC_ERR_GENERIC;
+    if (tbl == MAINTBL) {
+      switch (indx) {
+        case uudst::vbridge_networkmonitor_host::kDbiHealthInterval:
+          valid = &(reinterpret_cast<val_nwm_host *>
+                    (val))->valid[UPLL_IDX_HEALTH_INTERVAL_NWMH];
+          break;
+        case uudst::vbridge_networkmonitor_host::kDbiRecoveryInterval:
+          valid = &(reinterpret_cast<val_nwm_host *>
+                    (val))->valid[UPLL_IDX_RECOVERY_INTERVAL_NWMH];
+          break;
+        case uudst::vbridge_networkmonitor_host::kDbiFailureCount:
+          valid = &(reinterpret_cast<val_nwm_host *>
+                    (val))->valid[UPLL_IDX_FAILURE_COUNT_NWMH];
+          break;
+        case uudst::vbridge_networkmonitor_host::kDbiRecoveryCount:
+          valid = &(reinterpret_cast<val_nwm_host *>
+                    (val))->valid[UPLL_IDX_RECOVERY_COUNT_NWMH];
+          break;
+        case uudst::vbridge_networkmonitor_host::kDbiWaitTime:
+          valid = &(reinterpret_cast<val_nwm_host *>
+                    (val))->valid[UPLL_IDX_WAIT_TIME_NWMH];
+          break;
+        default:
+          return UPLL_RC_ERR_GENERIC;
       }
-      return UPLL_RC_SUCCESS;
     }
+    return UPLL_RC_SUCCESS;
+  }
 
-    /**
-     * @brief  Filters the attributes which need not be sent to controller
-     *
-     * @param[in/out]  val1   first record value instance.
-     * @param[in]      val2   second record value instance.
-     * @param[in]      audit  Not used for VTN
-     * @param[in]      op     Operation to be performed
-     *
-     **/
-    bool FilterAttributes(void *&val1, void *val2, bool audit_status,
-                          unc_keytype_operation_t op);
-    /**
-     * @brief  Compares the valid value between two database records.
-     *              if both the values are same, update the valid flag for corresponding
-     *              attribute as invalid in the first record.
-     *
-     * @param[in/out]  val1   first record value instance.
-     * @param[in]      val2   second record value instance.
-     * @param[in]      audit  if true, CompareValidValue called from audit process.
-     *
-     **/
-    bool CompareValidValue(void *&val1, void *val2, bool audit);
+  /**
+   * @brief  Filters the attributes which need not be sent to controller
+   *
+   * @param[in/out]  val1   first record value instance.
+   * @param[in]      val2   second record value instance.
+   * @param[in]      audit  Not used for VTN
+   * @param[in]      op     Operation to be performed
+   *
+   **/
+  bool FilterAttributes(void *&val1, void *val2, bool audit_status,
+                        unc_keytype_operation_t op);
+  /**
+   * @brief  Compares the valid value between two database records.
+   *        if both the values are same, update the valid flag for corresponding
+   *        attribute as invalid in the first record.
+   *
+   * @param[in/out]  val1   first record value instance.
+   * @param[in]      val2   second record value instance.
+   * @param[in]      audit  if true, CompareValidValue called from audit process.
+   *
+   **/
+  bool CompareValidValue(void *&val1, void *val2, bool audit);
 
-    upll_rc_t UpdateConfigStatus(ConfigKeyVal *req, unc_keytype_operation_t op,
-                                 uint32_t driver_result, ConfigKeyVal *upd_key,
-                                 DalDmlIntf *dmi, ConfigKeyVal *ctrlr_key = NULL);
-    /**
-     * @brief  Update config status for commit result and vote result.
-     *
-     * @param[in/out]  ckv_running  ConfigKeyVal instance.
-     * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
-     * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
-     *
-     **/
-    upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
-                                      uuc::UpdateCtrlrPhase phase,
-                                      ConfigKeyVal *&ckv_running);
-    /**
-     * @brief  Duplicates the input configkeyval including the key and val.
-     * based on the tbl specified.
-     *
-     * @param[in]  okey   Output Configkeyval - allocated within the function
-     * @param[in]  req    Input ConfigKeyVal to be duplicated.
-     * @param[in]  tbl    specifies if the val structure belongs to the main table/ controller table or rename table.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
-                              MoMgrTables tbl = MAINTBL);
-    /**
-     * @brief  Allocates for the specified val in the given configuration in the     * specified table.
-     *
-     * @param[in]  ck_val   Reference pointer to configval structure allocated.      * @param[in]  dt_type  specifies the configuration candidate/running/state
-     * @param[in]  tbl      specifies if the corresponding table is the  main
-     *                      table / controller table or rename table.
-     *
-     * @retval     UPLL_RC_SUCCESS      Successfull completion.
-     * @retval     UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
-                       MoMgrTables tbl = MAINTBL);
-    /**
-     * @brief      Method to get a configkeyval of a specified keytype from an input configkeyval
-     *
-     * @param[in/out]  okey                 pointer to output ConfigKeyVal
-     * @param[in]      parent_key           pointer to the configkeyval from which the output configkey val is initialized.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     */
-    upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *parent_key);
-    /**
-     * @brief      Method to get a configkeyval of the parent keytype
-     *
-     * @param[in/out]  okey           pointer to parent ConfigKeyVal
-     * @param[in]      ikey           pointer to the child configkeyval from
-     * which the parent configkey val is obtained.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
-    /* Rename */
-    bool GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo,
-                              int &nattr, MoMgrTables tbl);
-    upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
-    /**
-     * @Brief Validates the syntax of the specified key and value structure
-     *        for KT_VBR_NWMONITOR_HOST keytype
-     *
-     * @param[in] req                       This structure contains
-     *                                      IpcReqRespHeader(first 8 fields of input request structure).
-     * @param[in] ikey                      ikey contains key and value structure.
-     *
-     * @retval UPLL_RC_SUCCESS              Successful.
-     * @retval UPLL_RC_ERR_CFG_SYNTAX       Syntax error.
-     * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE key_vlink is not available.
-     * @retval UPLL_RC_ERR_GENERIC          Generic failure.
-     * @retval UPLL_RC_ERR_INVALID_OPTION1  option1 is not valid.
-     * @retval UPLL_RC_ERR_INVALID_OPTION2  option2 is not valid.
-     */
-    upll_rc_t ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *ikey);
+  upll_rc_t UpdateConfigStatus(ConfigKeyVal *req, unc_keytype_operation_t op,
+                               uint32_t driver_result, ConfigKeyVal *upd_key,
+                               DalDmlIntf *dmi, ConfigKeyVal *ctrlr_key = NULL);
+  /**
+   * @brief  Update config status for commit result and vote result.
+   *
+   * @param[in/out]  ckv_running  ConfigKeyVal instance.
+   * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
+   * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
+   * @param[in]      dmi          Pointer to the DalDmlIntf(DB Interface)
+   *
+   **/
+  upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
+                                    uuc::UpdateCtrlrPhase phase,
+                                    ConfigKeyVal *&ckv_running,
+                                    DalDmlIntf *dmi);
+  /**
+   * @brief  Duplicates the input configkeyval including the key and val.
+   * based on the tbl specified.
+   *
+   * @param[in]  okey   Output Configkeyval - allocated within the function
+   * @param[in]  req    Input ConfigKeyVal to be duplicated.
+   * @param[in]  tbl    specifies if the val structure belongs to the main table/ controller table or rename table.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
+                            MoMgrTables tbl = MAINTBL);
+  /**
+   * @brief  Allocates for the specified val in the given configuration in the     * specified table.
+   *
+   * @param[in]  ck_val   Reference pointer to configval structure allocated.      * @param[in]  dt_type  specifies the configuration candidate/running/state
+   * @param[in]  tbl      specifies if the corresponding table is the  main
+   *                      table / controller table or rename table.
+   *
+   * @retval     UPLL_RC_SUCCESS      Successfull completion.
+   * @retval     UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
+                     MoMgrTables tbl = MAINTBL);
+  /**
+   * @brief      Method to get a configkeyval of a specified keytype from an input configkeyval
+   *
+   * @param[in/out]  okey                 pointer to output ConfigKeyVal
+   * @param[in]      parent_key           pointer to the configkeyval from which the output configkey val is initialized.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   */
+  upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *parent_key);
+  /**
+   * @brief      Method to get a configkeyval of the parent keytype
+   *
+   * @param[in/out]  okey           pointer to parent ConfigKeyVal
+   * @param[in]      ikey           pointer to the child configkeyval from
+   * which the parent configkey val is obtained.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
+  /* Rename */
+  bool GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo,
+                            int &nattr, MoMgrTables tbl);
+  upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
+  /**
+   * @Brief Validates the syntax of the specified key and value structure
+   *        for KT_VBR_NWMONITOR_HOST keytype
+   *
+   * @param[in] req                       This structure contains
+   *                                      IpcReqRespHeader(first 8 fields of input request structure).
+   * @param[in] ikey                      ikey contains key and value structure.
+   *
+   * @retval UPLL_RC_SUCCESS              Successful.
+   * @retval UPLL_RC_ERR_CFG_SYNTAX       Syntax error.
+   * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE key_vlink is not available.
+   * @retval UPLL_RC_ERR_GENERIC          Generic failure.
+   * @retval UPLL_RC_ERR_INVALID_OPTION1  option1 is not valid.
+   * @retval UPLL_RC_ERR_INVALID_OPTION2  option2 is not valid.
+   */
+  upll_rc_t ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *ikey);
 
-    /**
-     * @Brief Validates the syntax for KT_VBR_NWMONITOR_HOST keytype key structure.
-     *
-     * @param[in] key_nwm_host KT_VBR_NWMONITOR_HOST key structure.
-     * @param[in] operation    Operation type.
-     *
-     * @retval UPLL_RC_SUCCESS        validation succeeded.
-     * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
-     */
-    upll_rc_t ValidateNwMonHostKey(key_nwm_host_t *key_nwm_host,
-        unc_keytype_operation_t operation = UNC_OP_INVALID);
+  /**
+   * @Brief Validates the syntax for KT_VBR_NWMONITOR_HOST keytype key structure.
+   *
+   * @param[in] key_nwm_host KT_VBR_NWMONITOR_HOST key structure.
+   * @param[in] operation    Operation type.
+   *
+   * @retval UPLL_RC_SUCCESS        validation succeeded.
+   * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
+   */
+  upll_rc_t ValidateNwMonHostKey(key_nwm_host_t *key_nwm_host,
+                                 unc_keytype_operation_t operation =
+                                 UNC_OP_INVALID);
 
-    /**
-     * @Brief Validates the syntax for KT_VBR_NWMONITOR_HOST keytype value structure.
-     *
-     * @param[in] val_nwm_host KT_VBR_NWMONITOR_HOST value structure.
-     * @param[in] operation Operation name.
-     *
-     * @retval UPLL_RC_ERR_GENERIC    Generic failure.
-     * @retval UPLL_RC_SUCCESS        validation succeeded.
-     * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
-     */
-    upll_rc_t ValidateNwMonHostValue(val_nwm_host_t *val_nwm_host,
-                                     unc_keytype_operation_t operation = UNC_OP_INVALID);
+  /**
+   * @Brief Validates the syntax for KT_VBR_NWMONITOR_HOST keytype value structure.
+   *
+   * @param[in] val_nwm_host KT_VBR_NWMONITOR_HOST value structure.
+   * @param[in] operation Operation name.
+   *
+   * @retval UPLL_RC_ERR_GENERIC    Generic failure.
+   * @retval UPLL_RC_SUCCESS        validation succeeded.
+   * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
+   */
+  upll_rc_t ValidateNwMonHostValue(val_nwm_host_t *val_nwm_host,
+                                   unc_keytype_operation_t operation =
+                                   UNC_OP_INVALID);
 
-    /**
-     * @Brief Checks if the specified key type(KT_VBR_NWMONITOR_HOST) and
-     *        associated attributes are supported on the given controller,
-     *        based on the valid flag
-     *
-     * @param[in] req               This structure contains
-     *                              IpcReqRespHeader(first 8 fields of input request structure).
-     * @param[in] ikey              ikey contains key and value structure.
-     * @param[in] crtlr_name        Controller name.
-     *
-     * @retval  UPLL_RC_SUCCESS             Validation succeeded.
-     * @retval  UPLL_RC_ERR_GENERIC         Validation failure.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION1 Option1 is not valid.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION2 Option2 is not valid.
-     */
+  /**
+   * @Brief Checks if the specified key type(KT_VBR_NWMONITOR_HOST) and
+   *        associated attributes are supported on the given controller,
+   *        based on the valid flag
+   *
+   * @param[in] req               This structure contains
+   *                              IpcReqRespHeader(first 8 fields of input request structure).
+   * @param[in] ikey              ikey contains key and value structure.
+   * @param[in] crtlr_name        Controller name.
+   *
+   * @retval  UPLL_RC_SUCCESS             Validation succeeded.
+   * @retval  UPLL_RC_ERR_GENERIC         Validation failure.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION1 Option1 is not valid.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION2 Option2 is not valid.
+   */
 
-    upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                                 const char * crtlr_name);
+  upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *ikey,
+                               const char * crtlr_name);
 
-    /**
-     * @Brief Checks if the specified key type and
-     *        associated attributes are supported on the given controller,
-     *        based on the valid flag.
-     *
-     * @param[in] val_nwm_host    Value Structure.
-     * @param[in] attr            pointer to controller attribute
-     * @param[in] operation       Operation Name
-     *
-     * @retval UPLL_RC_SUCCESS                    validation succeeded.
-     * @retval UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR Attribute NOT_SUPPORTED.
-     * @retval UPLL_RC_ERR_GENERIC                Generic failure.
-     */
-    upll_rc_t ValNwMonHostAttributeSupportCheck(val_nwm_host_t *val_nwm_host,
-  const uint8_t* attrs, unc_keytype_operation_t operation);
+  /**
+   * @Brief Checks if the specified key type and
+   *        associated attributes are supported on the given controller,
+   *        based on the valid flag.
+   *
+   * @param[in] val_nwm_host    Value Structure.
+   * @param[in] attr            pointer to controller attribute
+   * @param[in] operation       Operation Name
+   *
+   * @retval UPLL_RC_SUCCESS                    validation succeeded.
+   * @retval UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR Attribute NOT_SUPPORTED.
+   * @retval UPLL_RC_ERR_GENERIC                Generic failure.
+   */
+  upll_rc_t ValNwMonHostAttributeSupportCheck
+      (val_nwm_host_t *val_nwm_host,
+       const uint8_t* attrs,
+       unc_keytype_operation_t operation);
 
-    upll_rc_t IsReferenced(ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
-                           DalDmlIntf *dmi);
-    upll_rc_t ValidateAttribute(ConfigKeyVal *kval, 
-                                DalDmlIntf *dmi,
-                                IpcReqRespHeader *req = NULL) {
-       return UPLL_RC_SUCCESS;
-    }
+  upll_rc_t IsReferenced(ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
+                         DalDmlIntf *dmi);
+  upll_rc_t ValidateAttribute(ConfigKeyVal *kval,
+                              DalDmlIntf *dmi,
+                              IpcReqRespHeader *req = NULL) {
+    return UPLL_RC_SUCCESS;
+  }
 
 
 public:
-    NwMonitorHostMoMgr();
-    virtual ~NwMonitorHostMoMgr() {
-      for (int i = 0; i < ntable; i++)
-        if (table[i]) {
-          delete table[i];
-        }
-      delete[] table;
-    }
-    /**
-     * @brief      Method to check if individual portions of a key are valid
-     *
-     * @param[in/out]  ikey                 pointer to ConfigKeyVal referring to a UNC resource
-     * @param[in]      index                db index associated with the variable
-     *
-     * @retval         true                 input key is valid
-     * @retval         false                input key is invalid.
-     **/
-    bool IsValidKey(void *tkey, uint64_t index);
+ public:
+  NwMonitorHostMoMgr();
+  virtual ~NwMonitorHostMoMgr() {
+    for (int i = 0; i < ntable; i++)
+      if (table[i]) {
+        delete table[i];
+      }
+    delete[] table;
+  }
+  /**
+   * @brief      Method to check if individual portions of a key are valid
+   *
+   * @param[in/out]  ikey                 pointer to ConfigKeyVal referring to a UNC resource
+   * @param[in]      index                db index associated with the variable
+   *
+   * @retval         true                 input key is valid
+   * @retval         false                input key is invalid.
+   **/
+  bool IsValidKey(void *tkey, uint64_t index);
 };
 
 }  // namespace kt_momgr
index ee8572a61957fa1276b5f132553a056c09c0f300..6e4d9a045c0dc9ea15cb15f23d6d9f5a8fb21375 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -18,66 +18,66 @@ namespace upll {
 namespace kt_momgr {
 
 BindInfo NwMonitorMoMgr::nwm_bind_info[] = {
-    { uudst::vbridge_networkmonitor_group::kDbiVtnName, CFG_KEY, offsetof(
-        key_nwm, vbr_key.vtn_key.vtn_name),
-      uud::kDalChar, 32 },
-    { uudst::vbridge_networkmonitor_group::kDbiVbrName, CFG_KEY, offsetof(
-        key_nwm, vbr_key.vbridge_name),
-      uud::kDalChar, 32 },
-    { uudst::vbridge_networkmonitor_group::kDbiNwmName, CFG_KEY, offsetof(
-        key_nwm, nwmonitor_name),
-      uud::kDalChar, 32 },
-    { uudst::vbridge_networkmonitor_group::kDbiAdminStatus, CFG_VAL, offsetof(
-        val_nwm, admin_status),
-      uud::kDalUint8, 1 },
-    { uudst::vbridge_networkmonitor_group::kDbiOperStatus, ST_VAL, offsetof(
-        val_nwm_st, status),
-      uud::kDalUint8, 1 },
-    { uudst::vbridge_networkmonitor_group::kDbiCtrlrName, CK_VAL, offsetof(
-        key_user_data_t, ctrlr_id),
-      uud::kDalChar, 32 },
-    { uudst::vbridge_networkmonitor_group::kDbiDomainId, CK_VAL, offsetof(
-        key_user_data_t, domain_id),
-      uud::kDalChar, 32 },
-    { uudst::vbridge_networkmonitor_group::kDbiValidAdminStatus, CFG_META_VAL,
-      offsetof(val_nwm, valid[UPLL_IDX_ADMIN_STATUS_NWM]), uud::kDalUint8, 1 },
-    { uudst::vbridge_networkmonitor_group::kDbiValidOperStatus, ST_META_VAL,
-      offsetof(val_nwm_st, valid[UPLL_IDX_STATUS_NWMS]), uud::kDalUint8, 1 },
-    { uudst::vbridge_networkmonitor_group::kDbiCsAdminStatus, CS_VAL, offsetof(
-        val_nwm, cs_attr[0]),
-      uud::kDalUint8, 1 },
-    { uudst::vbridge_networkmonitor_group::kDbiCsRowstatus, CS_VAL, offsetof(
-        val_nwm, cs_row_status),
-      uud::kDalUint8, 1 },
-    { uudst::vbridge_networkmonitor_group::kDbiFlags, CK_VAL, offsetof(
-        key_user_data, flags),
-      uud::kDalUint8, 1 } };
+  { uudst::vbridge_networkmonitor_group::kDbiVtnName, CFG_KEY, offsetof(
+          key_nwm, vbr_key.vtn_key.vtn_name),
+  uud::kDalChar, 32 },
+  { uudst::vbridge_networkmonitor_group::kDbiVbrName, CFG_KEY, offsetof(
+          key_nwm, vbr_key.vbridge_name),
+  uud::kDalChar, 32 },
+  { uudst::vbridge_networkmonitor_group::kDbiNwmName, CFG_KEY, offsetof(
+          key_nwm, nwmonitor_name),
+  uud::kDalChar, 32 },
+  { uudst::vbridge_networkmonitor_group::kDbiAdminStatus, CFG_VAL, offsetof(
+          val_nwm, admin_status),
+  uud::kDalUint8, 1 },
+  { uudst::vbridge_networkmonitor_group::kDbiOperStatus, ST_VAL, offsetof(
+          val_nwm_st, status),
+  uud::kDalUint8, 1 },
+  { uudst::vbridge_networkmonitor_group::kDbiCtrlrName, CK_VAL, offsetof(
+          key_user_data_t, ctrlr_id),
+  uud::kDalChar, 32 },
+  { uudst::vbridge_networkmonitor_group::kDbiDomainId, CK_VAL, offsetof(
+          key_user_data_t, domain_id),
+  uud::kDalChar, 32 },
+  { uudst::vbridge_networkmonitor_group::kDbiValidAdminStatus, CFG_META_VAL,
+    offsetof(val_nwm, valid[UPLL_IDX_ADMIN_STATUS_NWM]), uud::kDalUint8, 1 },
+  { uudst::vbridge_networkmonitor_group::kDbiValidOperStatus, ST_META_VAL,
+    offsetof(val_nwm_st, valid[UPLL_IDX_STATUS_NWMS]), uud::kDalUint8, 1 },
+  { uudst::vbridge_networkmonitor_group::kDbiCsAdminStatus, CS_VAL, offsetof(
+          val_nwm, cs_attr[0]),
+  uud::kDalUint8, 1 },
+  { uudst::vbridge_networkmonitor_group::kDbiCsRowstatus, CS_VAL, offsetof(
+          val_nwm, cs_row_status),
+  uud::kDalUint8, 1 },
+  { uudst::vbridge_networkmonitor_group::kDbiFlags, CK_VAL, offsetof(
+          key_user_data, flags),
+  uud::kDalUint8, 1 } };
 
 BindInfo NwMonitorMoMgr::key_nwm_maintbl_update_bind_info[] = {
-    { uudst::vbridge_networkmonitor_group::kDbiVtnName, CFG_MATCH_KEY, offsetof(
-        key_nwm, vbr_key.vtn_key.vtn_name),
-      uud::kDalChar, kMaxLenVtnName + 1 },
-    { uudst::vbridge_networkmonitor_group::kDbiVbrName, CFG_MATCH_KEY, offsetof(
-        key_nwm, vbr_key.vbridge_name),
-      uud::kDalChar, kMaxLenVnodeName + 1 },
-    { uudst::vbridge_networkmonitor_group::kDbiNwmName, CFG_MATCH_KEY, offsetof(
-        key_nwm, nwmonitor_name),
-      uud::kDalChar, kMaxLenVnodeName + 1 },
-    { uudst::vbridge_networkmonitor_group::kDbiVtnName, CFG_INPUT_KEY, offsetof(
-        key_rename_vnode_info_t, new_unc_vtn_name),
-      uud::kDalChar, kMaxLenVtnName + 1 },
-    { uudst::vbridge_networkmonitor_group::kDbiVbrName, CFG_INPUT_KEY, offsetof(
-        key_rename_vnode_info_t, new_unc_vnode_name),
-      uud::kDalChar, kMaxLenVnodeName + 1 },
-    { uudst::vbridge_networkmonitor_group::kDbiFlags, CK_VAL, offsetof(
-        key_user_data, flags),
-      uud::kDalUint8, 1 } };
+  { uudst::vbridge_networkmonitor_group::kDbiVtnName, CFG_MATCH_KEY, offsetof(
+          key_nwm, vbr_key.vtn_key.vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1 },
+  { uudst::vbridge_networkmonitor_group::kDbiVbrName, CFG_MATCH_KEY, offsetof(
+          key_nwm, vbr_key.vbridge_name),
+  uud::kDalChar, kMaxLenVnodeName + 1 },
+  { uudst::vbridge_networkmonitor_group::kDbiNwmName, CFG_MATCH_KEY, offsetof(
+          key_nwm, nwmonitor_name),
+  uud::kDalChar, kMaxLenVnodeName + 1 },
+  { uudst::vbridge_networkmonitor_group::kDbiVtnName, CFG_INPUT_KEY, offsetof(
+          key_rename_vnode_info_t, new_unc_vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1 },
+  { uudst::vbridge_networkmonitor_group::kDbiVbrName, CFG_INPUT_KEY, offsetof(
+          key_rename_vnode_info_t, new_unc_vnode_name),
+  uud::kDalChar, kMaxLenVnodeName + 1 },
+  { uudst::vbridge_networkmonitor_group::kDbiFlags, CK_VAL, offsetof(
+          key_user_data, flags),
+  uud::kDalUint8, 1 } };
 
 unc_key_type_t NwMonitorMoMgr::nwm_child[] = { UNC_KT_VBR_NWMONITOR_HOST };
 
 NwMonitorMoMgr::NwMonitorMoMgr() {
   UPLL_FUNC_TRACE
-  ntable = MAX_MOMGR_TBLS;
+      ntable = MAX_MOMGR_TBLS;
   table = new Table *[ntable];
   table[MAINTBL] = new Table(
       uudst::kDbiVbrNwMonTbl, UNC_KT_VBR_NWMONITOR, nwm_bind_info,
@@ -172,27 +172,28 @@ upll_rc_t NwMonitorMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
   switch (keytype) {
     case UNC_KT_VTN:
       uuu::upll_strncpy(nwm_key->vbr_key.vtn_key.vtn_name,
-             reinterpret_cast<key_vtn *>(pkey)->vtn_name,
-             (kMaxLenVtnName + 1));
+                        reinterpret_cast<key_vtn *>(pkey)->vtn_name,
+                        (kMaxLenVtnName + 1));
       break;
     case UNC_KT_VBRIDGE:
       uuu::upll_strncpy(nwm_key->vbr_key.vtn_key.vtn_name,
-             reinterpret_cast<key_vbr *>(pkey)->vtn_key.vtn_name,
-             (kMaxLenVtnName + 1));
+                        reinterpret_cast<key_vbr *>(pkey)->vtn_key.vtn_name,
+                        (kMaxLenVtnName + 1));
       uuu::upll_strncpy(nwm_key->vbr_key.vbridge_name,
-             reinterpret_cast<key_vbr *>(pkey)->vbridge_name,
-             (kMaxLenVnodeName + 1));
+                        reinterpret_cast<key_vbr *>(pkey)->vbridge_name,
+                        (kMaxLenVnodeName + 1));
       break;
     case UNC_KT_VBR_NWMONITOR:
       uuu::upll_strncpy(nwm_key->vbr_key.vtn_key.vtn_name,
-             reinterpret_cast<key_nwm *>(pkey)->vbr_key.vtn_key.vtn_name,
-             (kMaxLenVtnName + 1));
+                        reinterpret_cast<key_nwm *>
+                        (pkey)->vbr_key.vtn_key.vtn_name,
+                        (kMaxLenVtnName + 1));
       uuu::upll_strncpy(nwm_key->vbr_key.vbridge_name,
-             reinterpret_cast<key_nwm *>(pkey)->vbr_key.vbridge_name,
-             (kMaxLenVnodeName + 1));
+                        reinterpret_cast<key_nwm *>(pkey)->vbr_key.vbridge_name,
+                        (kMaxLenVnodeName + 1));
       uuu::upll_strncpy(nwm_key->nwmonitor_name,
-             reinterpret_cast<key_nwm *>(pkey)->nwmonitor_name,
-             (kMaxLenNwmName+1));
+                        reinterpret_cast<key_nwm *>(pkey)->nwmonitor_name,
+                        (kMaxLenNwmName+1));
     default:
       break;
   }
@@ -225,11 +226,11 @@ upll_rc_t NwMonitorMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
   key_vbr *vbr_key = reinterpret_cast<key_vbr *>(
       ConfigKeyVal::Malloc(sizeof(key_vbr)));
   uuu::upll_strncpy(vbr_key->vtn_key.vtn_name,
-         reinterpret_cast<key_nwm *>(pkey)->vbr_key.vtn_key.vtn_name,
-         (kMaxLenVtnName + 1));
+                    reinterpret_cast<key_nwm *>(pkey)->vbr_key.vtn_key.vtn_name,
+                    (kMaxLenVtnName + 1));
   uuu::upll_strncpy(vbr_key->vbridge_name,
-         reinterpret_cast<key_nwm *>(pkey)->vbr_key.vbridge_name,
-         (kMaxLenVnodeName + 1));
+                    reinterpret_cast<key_nwm *>(pkey)->vbr_key.vbridge_name,
+                    (kMaxLenVnodeName + 1));
   if (okey) delete okey;
   okey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, vbr_key, NULL);
   SET_USER_DATA(okey, ikey);
@@ -341,24 +342,27 @@ upll_rc_t NwMonitorMoMgr::UpdateConfigStatus(ConfigKeyVal *ikey,
     return UPLL_RC_ERR_GENERIC;
   }
   for (unsigned int loop = 0;
-         loop < (sizeof(nwm_val->valid) / sizeof(nwm_val->valid[0]));
-        ++loop) {
+       loop < (sizeof(nwm_val->valid) / sizeof(nwm_val->valid[0]));
+       ++loop) {
     if ((UNC_VF_VALID == (uint8_t) nwm_val->valid[loop])
-            || (UNC_VF_VALID_NO_VALUE == (uint8_t) nwm_val->valid[loop]))
-         nwm_val->cs_attr[loop] = cs_status;
+        || (UNC_VF_VALID_NO_VALUE == (uint8_t) nwm_val->valid[loop]))
+      nwm_val->cs_attr[loop] = cs_status;
     else if ((UNC_VF_INVALID == nwm_val->valid[loop]) &&
-               (UNC_OP_CREATE == op))
-         nwm_val->cs_attr[loop] = UNC_CS_NOT_APPLIED;
+             (UNC_OP_CREATE == op))
+      nwm_val->cs_attr[loop] = UNC_CS_NOT_APPLIED;
     else if ((UNC_VF_INVALID == nwm_val->valid[loop]) &&
-               (UNC_OP_UPDATE == op))
-         nwm_val->cs_attr[loop] = nwm_val2->cs_attr[loop];
+             (UNC_OP_UPDATE == op))
+      nwm_val->cs_attr[loop] = nwm_val2->cs_attr[loop];
   }
   return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t NwMonitorMoMgr::UpdateAuditConfigStatus(
-    unc_keytype_configstatus_t cs_status, uuc::UpdateCtrlrPhase phase,
-    ConfigKeyVal *&ckv_running) {
+    unc_keytype_configstatus_t cs_status,
+    uuc::UpdateCtrlrPhase phase,
+    ConfigKeyVal *&ckv_running,
+    DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_nwm_t *val;
   val = (ckv_running != NULL) ?
@@ -368,13 +372,13 @@ upll_rc_t NwMonitorMoMgr::UpdateAuditConfigStatus(
   }
   if (uuc::kUpllUcpCreate == phase) val->cs_row_status = cs_status;
   if ((uuc::kUpllUcpUpdate == phase) &&
-           (val->cs_row_status == UNC_CS_INVALID ||
-            val->cs_row_status == UNC_CS_NOT_APPLIED))
+      (val->cs_row_status == UNC_CS_INVALID ||
+       val->cs_row_status == UNC_CS_NOT_APPLIED))
     val->cs_row_status = cs_status;
   for (unsigned int loop = 0; loop < sizeof(val->valid) / sizeof(uint8_t);
-      ++loop) {
+       ++loop) {
     if ((cs_status == UNC_CS_INVALID &&
-        UNC_VF_VALID == val->valid[loop]) || cs_status == UNC_CS_APPLIED) {
+         UNC_VF_VALID == val->valid[loop]) || cs_status == UNC_CS_APPLIED) {
       val->cs_attr[loop] = cs_status;
     }
   }
@@ -397,7 +401,7 @@ upll_rc_t NwMonitorMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
     return UPLL_RC_ERR_GENERIC;
   }
   uuu::upll_strncpy(key_vwm->vbr_key.vtn_key.vtn_name,
-         key_rename->old_unc_vtn_name, (kMaxLenVtnName + 1));
+                    key_rename->old_unc_vtn_name, (kMaxLenVtnName + 1));
   if (ikey->get_key_type() == UNC_KT_VBRIDGE) {
     if (!strlen(reinterpret_cast<char *>(key_rename->old_unc_vnode_name))) {
       /* Addressed RESOURCE_LEAK */
@@ -405,14 +409,14 @@ upll_rc_t NwMonitorMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
       return UPLL_RC_ERR_GENERIC;
     }
     uuu::upll_strncpy(key_vwm->vbr_key.vbridge_name,
-           key_rename->old_unc_vnode_name, (kMaxLenVnodeName + 1));
+                      key_rename->old_unc_vnode_name, (kMaxLenVnodeName + 1));
   } else {
     if (!strlen(reinterpret_cast<char *>(key_rename->new_unc_vnode_name))) {
       ConfigKeyVal::Free(key_vwm);
       return UPLL_RC_ERR_GENERIC;
     }
     uuu::upll_strncpy(key_vwm->vbr_key.vbridge_name,
-       key_rename->new_unc_vnode_name, (kMaxLenVnodeName+1));
+                      key_rename->new_unc_vnode_name, (kMaxLenVnodeName+1));
   }
 
   okey = new ConfigKeyVal(UNC_KT_VBR_NWMONITOR, IpctSt::kIpcStKeyNwm, key_vwm,
@@ -437,7 +441,7 @@ bool NwMonitorMoMgr::CompareValidValue(void *&val1, void *val2,
   val_nwm_t *val_nwm1 = reinterpret_cast<val_nwm_t*>(val1);
   val_nwm_t *val_nwm2 = reinterpret_cast<val_nwm_t*>(val2);
   for (unsigned int loop = 0;
-      loop < sizeof(val_nwm1->valid) / sizeof(uint8_t); ++loop) {
+       loop < sizeof(val_nwm1->valid) / sizeof(uint8_t); ++loop) {
     if (UNC_VF_INVALID == val_nwm1->valid[loop]
         && UNC_VF_VALID == val_nwm2->valid[loop])
       val_nwm1->valid[loop] = UNC_VF_VALID_NO_VALUE;
@@ -449,7 +453,7 @@ bool NwMonitorMoMgr::CompareValidValue(void *&val1, void *val2,
   }
   for (unsigned int loop = 0;
        loop < (sizeof(val_nwm1->valid) / sizeof(val_nwm1->valid[0]));
-      ++loop) {
+       ++loop) {
     if ((UNC_VF_VALID == (uint8_t) val_nwm1->valid[loop])||
         (UNC_VF_VALID_NO_VALUE == (uint8_t) val_nwm1->valid[loop])) {
       invalid_attr = false;
@@ -460,7 +464,7 @@ bool NwMonitorMoMgr::CompareValidValue(void *&val1, void *val2,
 }
 
 upll_rc_t NwMonitorMoMgr::ValidateMessage(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey) {
+                                          ConfigKeyVal *ikey) {
   UPLL_FUNC_TRACE;
   upll_rc_t ret_val = UPLL_RC_ERR_GENERIC;
   if (!ikey || !req || !(ikey->get_key())) {
@@ -514,13 +518,13 @@ upll_rc_t NwMonitorMoMgr::ValidateMessage(IpcReqRespHeader *req,
       }
 
     } else if (((operation == UNC_OP_READ) ||
-          (operation == UNC_OP_READ_SIBLING) ||
-          (operation == UNC_OP_READ_SIBLING_BEGIN) ||
-          (operation == UNC_OP_READ_SIBLING_COUNT)) &&
-        ((dt_type == UPLL_DT_CANDIDATE) ||
-         (dt_type == UPLL_DT_RUNNING) ||
-         (dt_type == UPLL_DT_STARTUP) ||
-         (dt_type == UPLL_DT_STATE))) {
+                (operation == UNC_OP_READ_SIBLING) ||
+                (operation == UNC_OP_READ_SIBLING_BEGIN) ||
+                (operation == UNC_OP_READ_SIBLING_COUNT)) &&
+               ((dt_type == UPLL_DT_CANDIDATE) ||
+                (dt_type == UPLL_DT_RUNNING) ||
+                (dt_type == UPLL_DT_STARTUP) ||
+                (dt_type == UPLL_DT_STATE))) {
       if ((option1 == UNC_OPT1_NORMAL) ||
           ((option1 == UNC_OPT1_DETAIL) &&
            (operation != UNC_OP_READ_SIBLING_COUNT) &&
@@ -549,46 +553,48 @@ upll_rc_t NwMonitorMoMgr::ValidateMessage(IpcReqRespHeader *req,
       }
 
     } else if ((operation == UNC_OP_DELETE) || (operation == UNC_OP_READ_NEXT)
-        || (operation == UNC_OP_READ_BULK)) {
+               || (operation == UNC_OP_READ_BULK)) {
       UPLL_LOG_TRACE("Value structure is none for operation type:%d",
                      operation);
       return UPLL_RC_SUCCESS;
     } else {
       UPLL_LOG_DEBUG("Invalid datatype(%d) and operation(%d)", dt_type,
-          operation);
+                     operation);
       return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
     }
   }
   return UPLL_RC_SUCCESS;
 }
-upll_rc_t NwMonitorMoMgr::ValidateNwMonValue(val_nwm_t *val_nwm,
-    unc_keytype_operation_t operation) {
+upll_rc_t
+NwMonitorMoMgr::ValidateNwMonValue(val_nwm_t *val_nwm,
+                                   unc_keytype_operation_t operation) {
   UPLL_FUNC_TRACE;
 
   if (val_nwm->valid[UPLL_IDX_ADMIN_STATUS_NWM] == UNC_VF_VALID) {
     if (!ValidateNumericRange(val_nwm->admin_status,
-          (uint8_t) UPLL_ADMIN_ENABLE,
-          (uint8_t) UPLL_ADMIN_DISABLE, true, true)) {
+                              (uint8_t) UPLL_ADMIN_ENABLE,
+                              (uint8_t) UPLL_ADMIN_DISABLE, true, true)) {
       UPLL_LOG_DEBUG("Syntax check failed admin_stat-%d",
                      val_nwm->admin_status);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if ((val_nwm->valid[UPLL_IDX_ADMIN_STATUS_NWM] ==
-        UNC_VF_VALID_NO_VALUE)
-      && ((operation == UNC_OP_UPDATE) || (operation == UNC_OP_CREATE))) {
+              UNC_VF_VALID_NO_VALUE)
+             && ((operation == UNC_OP_UPDATE) ||
+                 (operation == UNC_OP_CREATE))) {
     /* Copy default value */
     val_nwm->admin_status = UPLL_ADMIN_ENABLE;
   }
   return UPLL_RC_SUCCESS;
 }
 upll_rc_t NwMonitorMoMgr::ValidateNwMonKey(key_nwm_t *key_nwm,
-    unc_keytype_operation_t operation) {
+                                           unc_keytype_operation_t operation) {
   UPLL_FUNC_TRACE;
 
   upll_rc_t ret_val = UPLL_RC_SUCCESS;
   VbrMoMgr *objvbrmgr =
-    reinterpret_cast<VbrMoMgr *>(const_cast<MoManager *>(GetMoManager(
-            UNC_KT_VBRIDGE)));
+      reinterpret_cast<VbrMoMgr *>(const_cast<MoManager *>(GetMoManager(
+                  UNC_KT_VBRIDGE)));
   if (NULL == objvbrmgr) {
     UPLL_LOG_DEBUG("unable to get VbrMoMgr object to validate key_vbr");
     return UPLL_RC_ERR_GENERIC;
@@ -602,11 +608,11 @@ upll_rc_t NwMonitorMoMgr::ValidateNwMonKey(key_nwm_t *key_nwm,
   if ((operation != UNC_OP_READ_SIBLING_BEGIN) &&
       (operation != UNC_OP_READ_SIBLING_COUNT)) {
     ret_val = ValidateKey(reinterpret_cast<char *>(key_nwm->nwmonitor_name),
-        kMinLenVnodeName, kMaxLenVnodeName);
+                          kMinLenVnodeName, kMaxLenVnodeName);
 
     if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Syntax check failed.nwmonitor_name-(%s)",
-          key_nwm->nwmonitor_name);
+                     key_nwm->nwmonitor_name);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else {
@@ -616,8 +622,11 @@ upll_rc_t NwMonitorMoMgr::ValidateNwMonKey(key_nwm_t *key_nwm,
   return ret_val;
 }
 
-upll_rc_t NwMonitorMoMgr::ValNwMonAttributeSupportCheck(val_nwm_t *val_nwm,
-    const uint8_t* attrs, unc_keytype_operation_t operation) {
+upll_rc_t
+NwMonitorMoMgr::ValNwMonAttributeSupportCheck(
+    val_nwm_t *val_nwm,
+    const uint8_t* attrs,
+    unc_keytype_operation_t operation) {
   UPLL_FUNC_TRACE;
   if ((val_nwm->valid[UPLL_IDX_ADMIN_STATUS_NWM] == UNC_VF_VALID) ||
       (val_nwm->valid[UPLL_IDX_ADMIN_STATUS_NWM] == UNC_VF_VALID_NO_VALUE)) {
@@ -634,8 +643,8 @@ upll_rc_t NwMonitorMoMgr::ValNwMonAttributeSupportCheck(val_nwm_t *val_nwm,
 }
 
 upll_rc_t NwMonitorMoMgr::ValidateCapability(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey,
-    const char * ctrlr_name) {
+                                             ConfigKeyVal *ikey,
+                                             const char * ctrlr_name) {
   UPLL_FUNC_TRACE;
 
   if (!ikey || !req) {
@@ -665,12 +674,6 @@ upll_rc_t NwMonitorMoMgr::ValidateCapability(IpcReqRespHeader *req,
       result_code = GetCreateCapability(ctrlr_name, ikey->get_key_type(),
                                         &max_instance_count, &max_attrs,
                                         &attrs);
-      if (result_code && (max_instance_count != 0) &&
-          cur_instance_count >= max_instance_count) {
-        UPLL_LOG_DEBUG("Instance count %d exceeds %d", cur_instance_count,
-                       max_instance_count);
-        return UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
-      }
       break;
     }
 
@@ -740,22 +743,24 @@ upll_rc_t NwMonitorMoMgr::IsReferenced(ConfigKeyVal *ikey,
     }
     if (indx == 0) {
       val_vtn_flowfilter_entry_t *flowfilter_val =reinterpret_cast
-             <val_vtn_flowfilter_entry_t*>
-            (ConfigKeyVal::Malloc(sizeof(val_vtn_flowfilter_entry_t)));
+          <val_vtn_flowfilter_entry_t*>
+          (ConfigKeyVal::Malloc(sizeof(val_vtn_flowfilter_entry_t)));
       flowfilter_val->valid[UPLL_IDX_NWN_NAME_VFFE] = UNC_VF_VALID;
       uuu::upll_strncpy(flowfilter_val->nwm_name, reinterpret_cast<key_nwm *>
-                      (ikey->get_key())->nwmonitor_name, (kMaxLenNwmName + 1));
+                        (ikey->get_key())->nwmonitor_name,
+                        (kMaxLenNwmName + 1));
       cval  = new ConfigVal(IpctSt::kIpcStValVtnFlowfilterEntry,
-                             flowfilter_val);
+                            flowfilter_val);
     } else {
       val_flowfilter_entry_t *flowfilter_val =reinterpret_cast
-             <val_flowfilter_entry_t*>
-            (ConfigKeyVal::Malloc(sizeof(val_flowfilter_entry_t)));
+          <val_flowfilter_entry_t*>
+          (ConfigKeyVal::Malloc(sizeof(val_flowfilter_entry_t)));
       flowfilter_val->valid[UPLL_IDX_NWM_NAME_FFE] = UNC_VF_VALID;
       uuu::upll_strncpy(flowfilter_val->nwm_name, reinterpret_cast<key_nwm *>
-                      (ikey->get_key())->nwmonitor_name, (kMaxLenNwmName + 1));
+                        (ikey->get_key())->nwmonitor_name,
+                        (kMaxLenNwmName + 1));
       cval  = new ConfigVal(IpctSt::kIpcStValFlowfilterEntry,
-                             flowfilter_val);
+                            flowfilter_val);
     }
     result_code = mgr->GetChildConfigKey(ckv_tmp, ikey);
     if (result_code != UPLL_RC_SUCCESS) {
@@ -768,11 +773,11 @@ upll_rc_t NwMonitorMoMgr::IsReferenced(ConfigKeyVal *ikey,
     ckv_tmp->SetCfgVal(cval);
     DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutNone };
     result_code = mgr->ReadConfigDB(ckv_tmp, dt_type, UNC_OP_READ, dbop,
-                                         dmi, MAINTBL);
+                                    dmi, MAINTBL);
     if (result_code != UPLL_RC_SUCCESS &&
         result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
       UPLL_LOG_DEBUG("Existence check in keytype %d result_code  %d",
-        ckv_tmp->get_key_type(), result_code);
+                     ckv_tmp->get_key_type(), result_code);
       delete ckv_tmp;
       return result_code;
     }
@@ -790,12 +795,12 @@ upll_rc_t NwMonitorMoMgr::IsReferenced(ConfigKeyVal *ikey,
 }
 
 upll_rc_t NwMonitorMoMgr::OnNwmonFault(
-       string ctrlr_name ,
-       string domain_id,
-       const key_vtn &key_vtn,
-       const pfcdrv_network_mon_alarm_data_t &alarm_data,
-       bool alarm_raised,
-       DalDmlIntf *dmi ) {
+    string ctrlr_name ,
+    string domain_id,
+    const key_vtn &key_vtn,
+    const pfcdrv_network_mon_alarm_data_t &alarm_data,
+    bool alarm_raised,
+    DalDmlIntf *dmi ) {
   UPLL_FUNC_TRACE;
   ConfigKeyVal *ikey = NULL;
   char *alarm_status = NULL;
@@ -805,7 +810,7 @@ upll_rc_t NwMonitorMoMgr::OnNwmonFault(
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   char *vtn_name = NULL;
   VtnMoMgr *vtn_mgr = reinterpret_cast<VtnMoMgr*>
-        (const_cast<MoManager*>(GetMoManager(UNC_KT_VTN)));
+      (const_cast<MoManager*>(GetMoManager(UNC_KT_VTN)));
   if (NULL == vtn_mgr) {
     UPLL_LOG_DEBUG("unable to get VtnMoMgr object to validate key_vtn");
     return UPLL_RC_ERR_GENERIC;
@@ -829,7 +834,7 @@ upll_rc_t NwMonitorMoMgr::OnNwmonFault(
   uint8_t *ctrlr_id = reinterpret_cast<uint8_t*>
       (const_cast<char*>(ctrlr_name.c_str()));
   result_code = vtn_mgr->GetRenamedUncKey(ikey, UPLL_DT_RUNNING,
-                                       dmi, ctrlr_id);
+                                          dmi, ctrlr_id);
   if (result_code != UPLL_RC_SUCCESS &&
       UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
     UPLL_LOG_DEBUG("Error in getting renamed vtn name");
@@ -839,15 +844,14 @@ upll_rc_t NwMonitorMoMgr::OnNwmonFault(
   if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
     ikey->SetCfgVal(NULL);
     result_code = vtn_mgr->UpdateConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ,
-                                    dmi, MAINTBL);
+                                          dmi, MAINTBL);
     if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
       delete ikey;
       return result_code;
     }
-    result_code = UPLL_RC_ERR_INSTANCE_EXISTS == result_code?UPLL_RC_SUCCESS: 
-                  result_code;
+    result_code = UPLL_RC_SUCCESS;
   }
-  
+
   vtn_key = reinterpret_cast<key_vtn_t*>(ikey->get_key());
   vtn_name = reinterpret_cast<char*>(vtn_key->vtn_name);
 
@@ -859,7 +863,7 @@ upll_rc_t NwMonitorMoMgr::OnNwmonFault(
 
   UPLL_LOG_INFO("Network Monitor Fault alarm : status - %s, "
                 "network_mon_group_name - %s, "
-                 "controller - %s, domain - %s, vtn - %s", 
+                "controller - %s, domain - %s, vtn - %s",
                 alarm_status, alarm_data.network_mon_group_name,
                 ctrlr_name.c_str(), domain_id.c_str(),
                 vtn_name);
@@ -867,6 +871,94 @@ upll_rc_t NwMonitorMoMgr::OnNwmonFault(
   return result_code;
 }
 
+upll_rc_t NwMonitorMoMgr::MergeValidate(unc_key_type_t keytype,
+                                        const char *ctrlr_id,
+                                        ConfigKeyVal *ikey,
+                                        DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
+  upll_rc_t result_code = UPLL_RC_SUCCESS;
+  DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutNone };
+  ConfigKeyVal *tkey = NULL;
+
+  if (!ikey || !ikey->get_key() || !(strlen(reinterpret_cast<const char *>
+                                            (ctrlr_id)))) {
+    UPLL_LOG_DEBUG("Input is NULL");
+    return UPLL_RC_ERR_GENERIC;
+  }
+  ConfigKeyVal *dup_key = NULL;
+  result_code = GetChildConfigKey(dup_key, ikey);
+  if (UPLL_RC_SUCCESS != result_code) {
+    UPLL_LOG_DEBUG("GetChildConfigKey Failed");
+    DELETE_IF_NOT_NULL(dup_key);
+    return result_code;
+  }
+  /*
+   * Here getting FULL Key (VTN, VBR and Network Monitor Name )
+   */
+  result_code = ReadConfigDB(dup_key, UPLL_DT_IMPORT, UNC_OP_READ, dbop, dmi,
+                             MAINTBL);
+  if (UPLL_RC_SUCCESS != result_code) {
+    DELETE_IF_NOT_NULL(dup_key);
+    return result_code;
+  }
+  if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+    DELETE_IF_NOT_NULL(dup_key);
+    return result_code;
+  }
+  ConfigKeyVal *travel = dup_key;
+  while (travel) {
+    /*
+     * Checks the Val structure is available or not.If availabl
+     * Checks Host address value is available or not in import ckval
+     */
+    result_code = DupConfigKeyVal(tkey, travel, MAINTBL);
+
+    if (UPLL_RC_SUCCESS != result_code || tkey == NULL) {
+      UPLL_LOG_DEBUG(" DupConfigKeyVal is Failed");
+      DELETE_IF_NOT_NULL(tkey);
+      DELETE_IF_NOT_NULL(dup_key);
+      return result_code;
+    }
+    /* Same Network Monitor Name should not present under parent VTN
+     * in Candidate DB
+     */
+    key_nwm *key_nwmon =
+        reinterpret_cast<key_nwm *>(tkey->get_key());
+    memset(key_nwmon->vbr_key.vbridge_name, 0,
+           sizeof(key_nwmon->vbr_key.vbridge_name));
+    // Existence check in Candidate DB
+    result_code = UpdateConfigDB(tkey,
+                                 UPLL_DT_CANDIDATE,
+                                 UNC_OP_READ,
+                                 dmi,
+                                 MAINTBL);
+    if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
+      ikey->ResetWith(tkey);
+      DELETE_IF_NOT_NULL(tkey);
+      DELETE_IF_NOT_NULL(dup_key);
+      UPLL_LOG_DEBUG("NetworkMonitor Name Conflict %s",
+                     (ikey->ToStrAll()).c_str());
+      return UPLL_RC_ERR_MERGE_CONFLICT;
+    }
+
+    /* Any other DB error */
+    if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+      UPLL_LOG_DEBUG("UpdateConfigDB  Failed %d", result_code);
+      DELETE_IF_NOT_NULL(tkey);
+      DELETE_IF_NOT_NULL(dup_key);
+      return result_code;
+    }
+    DELETE_IF_NOT_NULL(tkey);
+    travel = travel->get_next_cfg_key_val();
+  }
+  if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+    DELETE_IF_NOT_NULL(dup_key);
+    return UPLL_RC_SUCCESS;
+  }
+  DELETE_IF_NOT_NULL(dup_key);
+  return result_code;
+}
+
 }  // namespace kt_momgr
 }  // namespace upll
 }  // namespace unc
index 901b98abbae6ca023ff565c774ae1f08dbd59fdb..275feb093ac41d2cfbc4b88c6e4279b8def2503d 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -19,243 +19,270 @@ namespace upll {
 namespace kt_momgr {
 
 class NwMonitorMoMgr : public VnodeChildMoMgr {
-  private:
-    static unc_key_type_t nwm_child[];
-    static BindInfo nwm_bind_info[];
-    static BindInfo key_nwm_maintbl_update_bind_info[];
-    /**
-     * @brief  Gets the valid array position of the variable in the value
-     *         structure from the table in the specified configuration
-     *
-     * @param[in]     val      pointer to the value structure
-     * @param[in]     indx     database index for the variable
-     * @param[out]    valid    position of the variable in the valid array -
-     *                          NULL if valid does not exist.
-     * @param[in]     dt_type  specifies the configuration
-     * @param[in]     tbl      specifies the table containing the given value
-     *
-     **/
-    upll_rc_t GetValid(void *val, uint64_t indx, uint8_t *&valid,
-                       upll_keytype_datatype_t dt_type, MoMgrTables tbl) {
-      if (val == NULL) return UPLL_RC_ERR_GENERIC;
-      if (tbl == MAINTBL) {
-        switch (indx) {
-          case uudst::vbridge_networkmonitor_group::kDbiOperStatus:
-            valid = &(reinterpret_cast<val_nwm_st *>
-                      (val))->valid[UPLL_IDX_STATUS_NWMS];
-            break;
-          case uudst::vbridge_networkmonitor_group::kDbiAdminStatus:
-            valid = &(reinterpret_cast<val_nwm *>
-                      (val))->valid[UPLL_IDX_ADMIN_STATUS_NWM];
-            break;
-          default:
-            return UPLL_RC_ERR_GENERIC;
-        }
+ private:
+  static unc_key_type_t nwm_child[];
+  static BindInfo nwm_bind_info[];
+  static BindInfo key_nwm_maintbl_update_bind_info[];
+  /**
+   * @brief  Gets the valid array position of the variable in the value
+   *         structure from the table in the specified configuration
+   *
+   * @param[in]     val      pointer to the value structure
+   * @param[in]     indx     database index for the variable
+   * @param[out]    valid    position of the variable in the valid array -
+   *                          NULL if valid does not exist.
+   * @param[in]     dt_type  specifies the configuration
+   * @param[in]     tbl      specifies the table containing the given value
+   *
+   **/
+  upll_rc_t GetValid(void *val, uint64_t indx, uint8_t *&valid,
+                     upll_keytype_datatype_t dt_type, MoMgrTables tbl) {
+    if (val == NULL) return UPLL_RC_ERR_GENERIC;
+    if (tbl == MAINTBL) {
+      switch (indx) {
+        case uudst::vbridge_networkmonitor_group::kDbiOperStatus:
+          valid = &(reinterpret_cast<val_nwm_st *>
+                    (val))->valid[UPLL_IDX_STATUS_NWMS];
+          break;
+        case uudst::vbridge_networkmonitor_group::kDbiAdminStatus:
+          valid = &(reinterpret_cast<val_nwm *>
+                    (val))->valid[UPLL_IDX_ADMIN_STATUS_NWM];
+          break;
+        default:
+          return UPLL_RC_ERR_GENERIC;
       }
-      return UPLL_RC_SUCCESS;
     }
-    /**
-     * @brief  Filters the attributes which need not be sent to controller
-     *
-     * @param[in/out]  val1   first record value instance.
-     * @param[in]      val2   second record value instance.
-     * @param[in]      audit  Not used for VTN
-     * @param[in]      op     Operation to be performed
-     *
-     **/
-    bool FilterAttributes(void *&val1, void *val2, bool audit_status,
-                          unc_keytype_operation_t op);
+    return UPLL_RC_SUCCESS;
+  }
+  /**
+   * @brief  Filters the attributes which need not be sent to controller
+   *
+   * @param[in/out]  val1   first record value instance.
+   * @param[in]      val2   second record value instance.
+   * @param[in]      audit  Not used for VTN
+   * @param[in]      op     Operation to be performed
+   *
+   **/
+  bool FilterAttributes(void *&val1, void *val2, bool audit_status,
+                        unc_keytype_operation_t op);
 
-    /**
-     * @brief  Compares the valid value between two database records.
-     *              if both the values are same, update the valid flag for corresponding
-     *              attribute as invalid in the first record.
-     *
-     * @param[in/out]  val1   first record value instance.
-     * @param[in]      val2   second record value instance.
-     * @param[in]      audit  if true, CompareValidValue called from audit process.
-     *
-     **/
-    bool CompareValidValue(void *&val1, void *val2, bool audit);
+  /**
+   * @brief  Compares the valid value between two database records.
+   *        if both the values are same, update the valid flag for corresponding
+   *        attribute as invalid in the first record.
+   *
+   * @param[in/out]  val1   first record value instance.
+   * @param[in]      val2   second record value instance.
+   * @param[in]      audit  if true, CompareValidValue called from audit process.
+   *
+   **/
+  bool CompareValidValue(void *&val1, void *val2, bool audit);
 
-    upll_rc_t UpdateConfigStatus(ConfigKeyVal *req, unc_keytype_operation_t op,
+  upll_rc_t UpdateConfigStatus(ConfigKeyVal *req, unc_keytype_operation_t op,
                                uint32_t driver_result, ConfigKeyVal *upd_key,
                                DalDmlIntf *dmi, ConfigKeyVal *ctrlr_key = NULL);
-    /**
-     * @brief  Update config status for commit result and vote result.
-     *
-     * @param[in/out]  ckv_running  ConfigKeyVal instance.
-     * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
-     * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
-     *
-     **/
-    upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
-                                      uuc::UpdateCtrlrPhase phase,
-                                      ConfigKeyVal *&ckv_running);
-    /**
-     * @brief  Duplicates the input configkeyval including the key and val.
-     * based on the tbl specified.
-     *
-     * @param[in]  okey   Output Configkeyval - allocated within the function
-     * @param[in]  req    Input ConfigKeyVal to be duplicated.
-     * @param[in]  tbl    specifies if the val structure belongs to the main table/ controller table or rename table.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
-                              MoMgrTables tbl = MAINTBL);
-    /**
-     * @brief  Allocates for the specified val in the given configuration in the     * specified table.
-     *
-     * @param[in]  ck_val   Reference pointer to configval structure allocated.      * @param[in]  dt_type  specifies the configuration candidate/running/state
-     * @param[in]  tbl      specifies if the corresponding table is the  main
-     *                      table / controller table or rename table.
-     *
-     * @retval     UPLL_RC_SUCCESS      Successfull completion.
-     * @retval     UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
-                       MoMgrTables tbl = MAINTBL);
-    /**
-     * @brief      Method to get a configkeyval of a specified keytype from an
-     * input configkeyval
-     *
-     * @param[in/out]  okey                 pointer to output ConfigKeyVal
-     * @param[in]      parent_key           pointer to the configkeyval from
-     * which the output configkey val is initialized.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     */
-    upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *parent_key);
-    /**
-     * @brief      Method to get a configkeyval of the parent keytype
-     *
-     * @param[in/out]  okey           pointer to parent ConfigKeyVal
-     * @param[in]      ikey           pointer to the child configkeyval from
-     * which the parent configkey val is obtained.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
-    /* Rename */
-    upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
-    bool GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo,
-                              int &nattr, MoMgrTables tbl);
-    /**
-     * @Brief Validates the syntax of the specified key and value structure
-     *        for KT_VBR_NWMONITOR keytype
-     *
-     * @param[in] req                       This structure contains
-     *                                      IpcReqRespHeader(first 8 fields of
-     *                                      input request structure).
-     * @param[in] ikey                      ikey contains key and value structure.
-     *
-     * @retval UPLL_RC_SUCCESS              Successful.
-     * @retval UPLL_RC_ERR_CFG_SYNTAX       Syntax error.
-     * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE key_vlink is not available.
-     * @retval UPLL_RC_ERR_GENERIC          Generic failure.
-     * @retval UPLL_RC_ERR_INVALID_OPTION1  option1 is not valid.
-     * @retval UPLL_RC_ERR_INVALID_OPTION2  option2 is not valid.
-     */
-    upll_rc_t ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *ikey);
-    /**
-     * @Brief Validates the syntax for KT_VBR_NWMONITOR keytype value structure.
-     *
-     * @param[in] val_nwm   KT_VBR_NWMONITOR value structure.
-     * @param[in] operation Operation name.
-     *
-     * @retval UPLL_RC_ERR_GENERIC    Generic failure.
-     * @retval UPLL_RC_SUCCESS        validation succeeded.
-     * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
-     */
-    upll_rc_t ValidateNwMonValue(val_nwm_t *val_nwm,
-        unc_keytype_operation_t operation = UNC_OP_INVALID);
-    /**
-     * @Brief Checks if the specified key type(KT_VBR_NWMONITOR) and
-     *        associated attributes are supported on the given controller,
-     *        based on the valid flag
-     *
-     * @param[in] req               This structure contains
-     *                              IpcReqRespHeader(first 8 fields of input request structure).
-     * @param[in] ikey              ikey contains key and value structure.
-     * @param[in] crtlr_name        Controller name.
-     *
-     * @retval  UPLL_RC_SUCCESS             Validation succeeded.
-     * @retval  UPLL_RC_ERR_GENERIC         Validation failure.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION1 Option1 is not valid.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION2 Option2 is not valid.
-     */
+  /**
+   * @brief  Update config status for commit result and vote result.
+   *
+   * @param[in/out]  ckv_running  ConfigKeyVal instance.
+   * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
+   * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
+   * @param[in]      dmi          Pointer to the DalDmlIntf(DB Interface)
+   *
+   **/
+  upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
+                                    uuc::UpdateCtrlrPhase phase,
+                                    ConfigKeyVal *&ckv_running,
+                                    DalDmlIntf *dmi);
+  /**
+   * @brief  Duplicates the input configkeyval including the key and val.
+   * based on the tbl specified.
+   *
+   * @param[in]  okey   Output Configkeyval - allocated within the function
+   * @param[in]  req    Input ConfigKeyVal to be duplicated.
+   * @param[in]  tbl    specifies if the val structure belongs to the main table/ controller table or rename table.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
+                            MoMgrTables tbl = MAINTBL);
+  /**
+   * @brief  Allocates for the specified val in the given configuration in the     * specified table.
+   *
+   * @param[in]  ck_val   Reference pointer to configval structure allocated.      * @param[in]  dt_type  specifies the configuration candidate/running/state
+   * @param[in]  tbl      specifies if the corresponding table is the  main
+   *                      table / controller table or rename table.
+   *
+   * @retval     UPLL_RC_SUCCESS      Successfull completion.
+   * @retval     UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
+                     MoMgrTables tbl = MAINTBL);
+  /**
+   * @brief      Method to get a configkeyval of a specified keytype from an
+   * input configkeyval
+   *
+   * @param[in/out]  okey                 pointer to output ConfigKeyVal
+   * @param[in]      parent_key           pointer to the configkeyval from
+   * which the output configkey val is initialized.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   */
+  upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *parent_key);
+  /**
+   * @brief      Method to get a configkeyval of the parent keytype
+   *
+   * @param[in/out]  okey           pointer to parent ConfigKeyVal
+   * @param[in]      ikey           pointer to the child configkeyval from
+   * which the parent configkey val is obtained.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
+  /* Rename */
+  upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
+  bool GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo,
+                            int &nattr, MoMgrTables tbl);
+  /**
+   * @Brief Validates the syntax of the specified key and value structure
+   *        for KT_VBR_NWMONITOR keytype
+   *
+   * @param[in] req                       This structure contains
+   *                                      IpcReqRespHeader(first 8 fields of
+   *                                      input request structure).
+   * @param[in] ikey                      ikey contains key and value structure.
+   *
+   * @retval UPLL_RC_SUCCESS              Successful.
+   * @retval UPLL_RC_ERR_CFG_SYNTAX       Syntax error.
+   * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE key_vlink is not available.
+   * @retval UPLL_RC_ERR_GENERIC          Generic failure.
+   * @retval UPLL_RC_ERR_INVALID_OPTION1  option1 is not valid.
+   * @retval UPLL_RC_ERR_INVALID_OPTION2  option2 is not valid.
+   */
+  upll_rc_t ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *ikey);
+  /**
+   * @Brief Validates the syntax for KT_VBR_NWMONITOR keytype value structure.
+   *
+   * @param[in] val_nwm   KT_VBR_NWMONITOR value structure.
+   * @param[in] operation Operation name.
+   *
+   * @retval UPLL_RC_ERR_GENERIC    Generic failure.
+   * @retval UPLL_RC_SUCCESS        validation succeeded.
+   * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
+   */
+  upll_rc_t ValidateNwMonValue(val_nwm_t *val_nwm,
+                               unc_keytype_operation_t operation =
+                               UNC_OP_INVALID);
+  /**
+   * @Brief Checks if the specified key type(KT_VBR_NWMONITOR) and
+   *        associated attributes are supported on the given controller,
+   *        based on the valid flag
+   *
+   * @param[in] req               This structure contains
+   *                              IpcReqRespHeader(first 8 fields of input request structure).
+   * @param[in] ikey              ikey contains key and value structure.
+   * @param[in] crtlr_name        Controller name.
+   *
+   * @retval  UPLL_RC_SUCCESS             Validation succeeded.
+   * @retval  UPLL_RC_ERR_GENERIC         Validation failure.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION1 Option1 is not valid.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION2 Option2 is not valid.
+   */
 
-    upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                                 const char * crtlr_name);
+  upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *ikey,
+                               const char * crtlr_name);
 
-    /**
-     * @Brief Checks if the specified key type and
-     *        associated attributes are supported on the given controller,
-     *        based on the valid flag.
-     *
-     * @param[in] val_nwm         Value Structure.
-     * @param[in] attr            pointer to controller attribute
-     * @param[in] operation       Operation Name
-     *
-     * @retval UPLL_RC_SUCCESS                    validation succeeded.
-     * @retval UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR Attribute NOT_SUPPORTED.
-     * @retval UPLL_RC_ERR_GENERIC                Generic failure.
-     */
-    upll_rc_t ValNwMonAttributeSupportCheck(val_nwm_t *val_nwm,
-        const uint8_t* attrs,
-        unc_keytype_operation_t operation);
+  /**
+   * @Brief Checks if the specified key type and
+   *        associated attributes are supported on the given controller,
+   *        based on the valid flag.
+   *
+   * @param[in] val_nwm         Value Structure.
+   * @param[in] attr            pointer to controller attribute
+   * @param[in] operation       Operation Name
+   *
+   * @retval UPLL_RC_SUCCESS                    validation succeeded.
+   * @retval UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR Attribute NOT_SUPPORTED.
+   * @retval UPLL_RC_ERR_GENERIC                Generic failure.
+   */
+  upll_rc_t ValNwMonAttributeSupportCheck(val_nwm_t *val_nwm,
+                                          const uint8_t* attrs,
+                                          unc_keytype_operation_t operation);
 
-    upll_rc_t IsReferenced(ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
-                           DalDmlIntf *dmi);
-    upll_rc_t ValidateAttribute(ConfigKeyVal *kval, 
-                                DalDmlIntf *dmi,
-                                IpcReqRespHeader *req = NULL) {
-       return UPLL_RC_SUCCESS;
-    }
+  upll_rc_t IsReferenced(ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
+                         DalDmlIntf *dmi);
+  upll_rc_t ValidateAttribute(ConfigKeyVal *kval,
+                              DalDmlIntf *dmi,
+                              IpcReqRespHeader *req = NULL) {
+    return UPLL_RC_SUCCESS;
+  }
 
-  public:
-    NwMonitorMoMgr();
-    virtual ~NwMonitorMoMgr() {
-      for (int i = 0; i < ntable; i++)
-        if (table[i]) {
-          delete table[i];
-        }
-      delete[] table;
-    }
+ public:
+  NwMonitorMoMgr();
+  virtual ~NwMonitorMoMgr() {
+    for (int i = 0; i < ntable; i++)
+      if (table[i]) {
+        delete table[i];
+      }
+    delete[] table;
+  }
+
+  /**
+   * @brief      Method to check if individual portions of a key are valid
+   *
+   * @param[in/out]  ikey                 pointer to ConfigKeyVal referring to a UNC resource
+   * @param[in]      index                db index associated with the variable
+   *
+   * @retval         true                 input key is valid
+   * @retval         false                input key is invalid.
+   **/
+  bool IsValidKey(void *tkey, uint64_t index);
 
-    /**
-     * @brief      Method to check if individual portions of a key are valid
-     *
-     * @param[in/out]  ikey                 pointer to ConfigKeyVal referring to a UNC resource
-     * @param[in]      index                db index associated with the variable
-     *
-     * @retval         true                 input key is valid
-     * @retval         false                input key is invalid.
-     **/
-    bool IsValidKey(void *tkey, uint64_t index);
+  /* @brief         This method invoke when the Network MOnitor merge
+   *                hapeening between Running and DT import. This will
+   *                checks the network monitor name is unique or not
+   *                under the parent VTN
+   *
+   * @param[in]     keytype       UNC KEY TYPE
+   * @param[in/out] ctrlr_id      Controller ID
+   * @param[in]     conflict_ckv  key and value structure
+   * @param[in]     dal    Pointer to the DalDmlIntf(DB Interface)
+   *
+   * @retval  UPLL_RC_SUCCESS                    Completed successfully.
+   * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
+   * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
+   * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
+   * @retval  UPLL_RC_ERR_MERGE_CONFLICT         Semantic check error.
+   * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist
+   *
+   **/
 
-    /**
-     * @Brief Validates the syntax for KT_VBR_NWMONITOR keytype key structure.
-     *
-     * @param[in] key_nwm KT_VBR_NWMONITOR key structure.
-     * @param[in] operation    Operation type.
-     *
-     * @retval UPLL_RC_SUCCESS        validation succeeded.
-     * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
-     */
-    upll_rc_t ValidateNwMonKey(key_nwm_t *key_nwm,
-        unc_keytype_operation_t operation = UNC_OP_INVALID);
-    upll_rc_t OnNwmonFault(
-       string ctrlr_name ,
-       string domain_id,
-       const key_vtn &key_vtn,
-       const pfcdrv_network_mon_alarm_data_t &alarm_data,
-       bool alarm_raised,
-       DalDmlIntf *dmi ); 
+  upll_rc_t MergeValidate(unc_key_type_t keytype,
+                          const char *ctrlr_id,
+                          ConfigKeyVal *ikey,
+                          DalDmlIntf *dmi);
+  /**
+   * @Brief Validates the syntax for KT_VBR_NWMONITOR keytype key structure.
+   *
+   * @param[in] key_nwm KT_VBR_NWMONITOR key structure.
+   * @param[in] operation    Operation type.
+   *
+   * @retval UPLL_RC_SUCCESS        validation succeeded.
+   * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
+   */
+  upll_rc_t ValidateNwMonKey(key_nwm_t *key_nwm,
+                             unc_keytype_operation_t operation =
+                             UNC_OP_INVALID);
+  upll_rc_t OnNwmonFault(
+      string ctrlr_name ,
+      string domain_id,
+      const key_vtn &key_vtn,
+      const pfcdrv_network_mon_alarm_data_t &alarm_data,
+      bool alarm_raised,
+      DalDmlIntf *dmi);
 };
 }  // namespace kt_momgr
 }  // namespace upll
index 401afef4a94a37ae2d9949104438c66c5e6fad45..a2e77aee98b9f728d2a238158c4d7736f272839a 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -17,7 +17,7 @@
 #include "unc/upll_errno.h"
 
 #define GET_VALID_MAINCTRL(tbl, l_val_ctrl_ff, l_val_ff, en) \
-  (tbl == MAINTBL) ? &(l_val_ff->valid[en]) : &(l_val_ctrl_ff->valid[en])
+    (tbl == MAINTBL) ? &(l_val_ff->valid[en]) : &(l_val_ctrl_ff->valid[en])
 
 namespace unc {
 namespace upll {
@@ -209,137 +209,137 @@ BindInfo PolicingProfileEntryMoMgr::policingprofileentry_bind_info[] = {
     offsetof(val_policingprofile_entry_t, cs_attr[2]),
     uud::kDalUint8, 1 },
   { uudst::policingprofile_entry::kDbiCsCbs, CS_VAL, offsetof(
-      val_policingprofile_entry_t, cs_attr[3]),
+          val_policingprofile_entry_t, cs_attr[3]),
   uud::kDalUint8, 1 },
   { uudst::policingprofile_entry::kDbiCsPir, CS_VAL, offsetof(
-      val_policingprofile_entry_t, cs_attr[4]),
+          val_policingprofile_entry_t, cs_attr[4]),
   uud::kDalUint8, 1 },
   { uudst::policingprofile_entry::kDbiCsPbs, CS_VAL, offsetof(
-      val_policingprofile_entry_t, cs_attr[5]),
+          val_policingprofile_entry_t, cs_attr[5]),
   uud::kDalUint8, 1 },
   { uudst::policingprofile_entry::kDbiCsGreenAction, CS_VAL, offsetof(
-      val_policingprofile_entry_t, cs_attr[6]),
+          val_policingprofile_entry_t, cs_attr[6]),
   uud::kDalUint8, 1 },
   { uudst::policingprofile_entry::kDbiCsGreenPriority, CS_VAL, offsetof(
-      val_policingprofile_entry_t, cs_attr[7]),
+          val_policingprofile_entry_t, cs_attr[7]),
   uud::kDalUint8, 1 },
   { uudst::policingprofile_entry::kDbiCsGreenDscp, CS_VAL, offsetof(
-      val_policingprofile_entry_t, cs_attr[8]),
+          val_policingprofile_entry_t, cs_attr[8]),
   uud::kDalUint8, 1 },
   { uudst::policingprofile_entry::kDbiCsGreenDrop, CS_VAL, offsetof(
-      val_policingprofile_entry_t, cs_attr[9]),
+          val_policingprofile_entry_t, cs_attr[9]),
   uud::kDalUint8, 1 },
   { uudst::policingprofile_entry::kDbiCsYellowAction, CS_VAL, offsetof(
-      val_policingprofile_entry_t, cs_attr[10]),
+          val_policingprofile_entry_t, cs_attr[10]),
   uud::kDalUint8, 1 },
   { uudst::policingprofile_entry::kDbiCsYellowPriority, CS_VAL, offsetof(
-      val_policingprofile_entry_t, cs_attr[11]),
+          val_policingprofile_entry_t, cs_attr[11]),
   uud::kDalUint8, 1 },
   { uudst::policingprofile_entry::kDbiCsYellowDscp, CS_VAL, offsetof(
-      val_policingprofile_entry_t, cs_attr[12]),
+          val_policingprofile_entry_t, cs_attr[12]),
   uud::kDalUint8, 1 },
   { uudst::policingprofile_entry::kDbiCsYellowDrop, CS_VAL, offsetof(
-      val_policingprofile_entry_t, cs_attr[13]),
+          val_policingprofile_entry_t, cs_attr[13]),
   uud::kDalUint8, 1 },
   { uudst::policingprofile_entry::kDbiCsRedAction, CS_VAL, offsetof(
-      val_policingprofile_entry_t, cs_attr[14]),
+          val_policingprofile_entry_t, cs_attr[14]),
   uud::kDalUint8, 1 },
   { uudst::policingprofile_entry::kDbiCsRedPriority, CS_VAL, offsetof(
-      val_policingprofile_entry_t, cs_attr[15]),
+          val_policingprofile_entry_t, cs_attr[15]),
   uud::kDalUint8, 1 },
   { uudst::policingprofile_entry::kDbiCsRedDscp, CS_VAL, offsetof(
-      val_policingprofile_entry_t, cs_attr[16]),
+          val_policingprofile_entry_t, cs_attr[16]),
   uud::kDalUint8, 1 },
   { uudst::policingprofile_entry::kDbiCsRedDrop, CS_VAL, offsetof(
-      val_policingprofile_entry_t, cs_attr[17]),
+          val_policingprofile_entry_t, cs_attr[17]),
   uud::kDalUint8, 1 }
 };
 
 BindInfo PolicingProfileEntryMoMgr::
-  policingprofileentry_controller_bind_info[] = {
+policingprofileentry_controller_bind_info[] = {
   { uudst::policingprofile_entry_ctrlr::kDbiPolicingProfileName,
     CFG_KEY,
     offsetof(key_policingprofile_entry_t,
              policingprofile_key.policingprofile_name),
-  uud::kDalChar,
-  (kMaxLenPolicingProfileName + 1) },
+    uud::kDalChar,
+    (kMaxLenPolicingProfileName + 1) },
   { uudst::policingprofile_entry_ctrlr::kDbiSequenceNum, CFG_KEY, offsetof(
-      key_policingprofile_entry_t, sequence_num),
+          key_policingprofile_entry_t, sequence_num),
   uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiCtrlrName, CK_VAL, offsetof(
-      key_user_data_t, ctrlr_id),
+          key_user_data_t, ctrlr_id),
   uud::kDalChar, kMaxLenCtrlrId + 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiFlags, CK_VAL, offsetof(
-      key_user_data_t, flags),
+          key_user_data_t, flags),
   uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiValidFlowlist, CFG_META_VAL,
-      offsetof(val_policingprofile_entry_ctrl_t, valid[0]),
-  uud::kDalUint8, 1 },
+    offsetof(val_policingprofile_entry_ctrl_t, valid[0]),
+    uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiValidRate, CFG_META_VAL, offsetof(
-      val_policingprofile_entry_ctrl_t, valid[1]),
+          val_policingprofile_entry_ctrl_t, valid[1]),
   uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiValidCir, CFG_META_VAL, offsetof(
-      val_policingprofile_entry_ctrl_t, valid[2]),
+          val_policingprofile_entry_ctrl_t, valid[2]),
   uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiValidCbs, CFG_META_VAL, offsetof(
-      val_policingprofile_entry_ctrl_t, valid[3]),
+          val_policingprofile_entry_ctrl_t, valid[3]),
   uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiValidPir, CFG_META_VAL, offsetof(
-      val_policingprofile_entry_ctrl_t, valid[4]),
+          val_policingprofile_entry_ctrl_t, valid[4]),
   uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiValidPbs, CFG_META_VAL, offsetof(
-      val_policingprofile_entry_ctrl_t, valid[5]),
+          val_policingprofile_entry_ctrl_t, valid[5]),
   uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiValidGreenAction, CFG_META_VAL,
-      offsetof(val_policingprofile_entry_ctrl_t, valid[6]),
-  uud::kDalUint8, 1 },
+    offsetof(val_policingprofile_entry_ctrl_t, valid[6]),
+    uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiValidGreenPriority, CFG_META_VAL,
     offsetof(val_policingprofile_entry_ctrl_t, valid[7]),
-  uud::kDalUint8, 1 },
+    uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiValidGreenDscp, CFG_META_VAL,
-      offsetof(val_policingprofile_entry_ctrl_t, valid[8]),
-  uud::kDalUint8, 1 },
+    offsetof(val_policingprofile_entry_ctrl_t, valid[8]),
+    uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiValidGreenDrop, CFG_META_VAL,
-      offsetof(val_policingprofile_entry_ctrl_t, valid[9]),
-  uud::kDalUint8, 1 },
+    offsetof(val_policingprofile_entry_ctrl_t, valid[9]),
+    uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiValidYellowAction, CFG_META_VAL,
-      offsetof(val_policingprofile_entry_ctrl_t, valid[10]),
-  uud::kDalUint8, 1 },
+    offsetof(val_policingprofile_entry_ctrl_t, valid[10]),
+    uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiValidYellowPriority, CFG_META_VAL,
-      offsetof(val_policingprofile_entry_ctrl_t, valid[11]),
-  uud::kDalUint8, 1 },
+    offsetof(val_policingprofile_entry_ctrl_t, valid[11]),
+    uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiValidYellowDscp, CFG_META_VAL,
-      offsetof(val_policingprofile_entry_ctrl_t, valid[12]),
-  uud::kDalUint8, 1 },
+    offsetof(val_policingprofile_entry_ctrl_t, valid[12]),
+    uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiValidYellowDrop, CFG_META_VAL,
-      offsetof(val_policingprofile_entry_ctrl_t, valid[13]),
-  uud::kDalUint8, 1 },
+    offsetof(val_policingprofile_entry_ctrl_t, valid[13]),
+    uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiValidRedAction, CFG_META_VAL,
-      offsetof(val_policingprofile_entry_ctrl_t, valid[14]),
-  uud::kDalUint8, 1 },
+    offsetof(val_policingprofile_entry_ctrl_t, valid[14]),
+    uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiValidRedPriority, CFG_META_VAL,
-      offsetof(val_policingprofile_entry_ctrl_t, valid[15]),
-  uud::kDalUint8, 1 },
+    offsetof(val_policingprofile_entry_ctrl_t, valid[15]),
+    uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiValidRedDscp, CFG_META_VAL,
-      offsetof(val_policingprofile_entry_ctrl_t, valid[16]),
-  uud::kDalUint8, 1 },
+    offsetof(val_policingprofile_entry_ctrl_t, valid[16]),
+    uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiValidRedDrop, CFG_META_VAL,
-      offsetof(val_policingprofile_entry_ctrl_t, valid[17]),
-  uud::kDalUint8, 1 },
+    offsetof(val_policingprofile_entry_ctrl_t, valid[17]),
+    uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiCsRowStatus, CS_VAL, offsetof(
-      val_policingprofile_entry_ctrl_t, cs_row_status),
+          val_policingprofile_entry_ctrl_t, cs_row_status),
   uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiCsFlowlist, CS_VAL, offsetof(
-      val_policingprofile_entry_ctrl_t, cs_attr[0]),
+          val_policingprofile_entry_ctrl_t, cs_attr[0]),
   uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiCsRate, CS_VAL, offsetof(
-      val_policingprofile_entry_ctrl_t, cs_attr[1]),
+          val_policingprofile_entry_ctrl_t, cs_attr[1]),
   uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiCsCir, CS_VAL, offsetof(
-      val_policingprofile_entry_ctrl_t, cs_attr[2]),
+          val_policingprofile_entry_ctrl_t, cs_attr[2]),
   uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiCsCbs, CS_VAL, offsetof(
-      val_policingprofile_entry_ctrl_t, cs_attr[3]),
+          val_policingprofile_entry_ctrl_t, cs_attr[3]),
   uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiCsPir, CS_VAL,
     offsetof(val_policingprofile_entry_ctrl_t, cs_attr[4]),
@@ -355,68 +355,68 @@ BindInfo PolicingProfileEntryMoMgr::
     uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiCsGreenDscp, CS_VAL,
     offsetof(val_policingprofile_entry_ctrl_t, cs_attr[8]),
-  uud::kDalUint8, 1 },
+    uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiCsGreenDrop, CS_VAL,
     offsetof(val_policingprofile_entry_ctrl_t, cs_attr[9]),
-  uud::kDalUint8, 1 },
+    uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiCsYellowAction, CS_VAL,
     offsetof(val_policingprofile_entry_ctrl_t, cs_attr[10]),
-  uud::kDalUint8, 1 },
+    uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiCsYellowPriority, CS_VAL,
     offsetof(val_policingprofile_entry_ctrl_t, cs_attr[11]),
     uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiCsYellowDscp, CS_VAL,
     offsetof(val_policingprofile_entry_ctrl_t, cs_attr[12]),
-  uud::kDalUint8, 1 },
+    uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiCsYellowDrop, CS_VAL,
     offsetof(val_policingprofile_entry_ctrl_t, cs_attr[13]),
-  uud::kDalUint8, 1 },
+    uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiCsRedAction, CS_VAL,
     offsetof(val_policingprofile_entry_ctrl_t, cs_attr[14]),
-  uud::kDalUint8, 1 },
+    uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiCsRedPriority, CS_VAL,
     offsetof(val_policingprofile_entry_ctrl_t, cs_attr[15]),
     uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiCsRedDscp, CS_VAL,
     offsetof(val_policingprofile_entry_ctrl_t, cs_attr[16]),
-  uud::kDalUint8, 1 },
+    uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiCsRedDrop, CS_VAL,
     offsetof(val_policingprofile_entry_ctrl_t, cs_attr[17]),
-  uud::kDalUint8, 1 } };
+    uud::kDalUint8, 1 } };
 
 BindInfo PolicingProfileEntryMoMgr::rename_policingprofile_entry_main_tbl[] = {
   { uudst::policingprofile_entry::kDbiPolicingProfileName, CFG_MATCH_KEY,
     offsetof(key_policingprofile_entry_t,
              policingprofile_key.policingprofile_name),
-  uud::kDalChar, kMaxLenPolicingProfileName + 1 },
+    uud::kDalChar, kMaxLenPolicingProfileName + 1 },
   { uudst::policingprofile_entry::kDbiSequenceNum, CFG_MATCH_KEY, offsetof(
-      key_policingprofile_entry_t, sequence_num),
+          key_policingprofile_entry_t, sequence_num),
   uud::kDalUint8, 1 },
   { uudst::policingprofile_entry::kDbiPolicingProfileName, CFG_INPUT_KEY,
     offsetof(key_rename_vnode_info_t, new_policingprofile_name),
-  uud::kDalChar, kMaxLenPolicingProfileName + 1 },
+    uud::kDalChar, kMaxLenPolicingProfileName + 1 },
   { uudst::policingprofile_entry::kDbiFlags, CK_VAL,
     offsetof(key_user_data_t, flags), uud::kDalUint8, 1 } };
 
 BindInfo PolicingProfileEntryMoMgr::rename_policingprofile_entry_ctrl_tbl[] = {
   { uudst::policingprofile_entry_ctrlr::kDbiPolicingProfileName, CFG_MATCH_KEY,
     offsetof(key_policingprofile_entry_t,
-        policingprofile_key.policingprofile_name),
+             policingprofile_key.policingprofile_name),
     uud::kDalChar, kMaxLenPolicingProfileName + 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiSequenceNum, CFG_MATCH_KEY,
     offsetof(key_policingprofile_entry_t, sequence_num),
-  uud::kDalUint8, 1 },
+    uud::kDalUint8, 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiPolicingProfileName, CFG_INPUT_KEY,
     offsetof(key_rename_vnode_info_t, new_policingprofile_name),
     uud::kDalChar, kMaxLenPolicingProfileName + 1 },
   { uudst::policingprofile_entry_ctrlr::kDbiFlags, CK_VAL, offsetof(
-    key_user_data_t, flags),
-     uud::kDalUint8, 1 } };
+          key_user_data_t, flags),
+  uud::kDalUint8, 1 } };
 
 bool PolicingProfileEntryMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type,
-    BindInfo *&binfo,
-    int &nattr,
-  MoMgrTables tbl) {
+                                                     BindInfo *&binfo,
+                                                     int &nattr,
+                                                     MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
   if (MAINTBL == tbl) {
     nattr = NUM_PP_KEY_MAIN_COL;
@@ -432,13 +432,15 @@ bool PolicingProfileEntryMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type,
 
 PolicingProfileEntryMoMgr::PolicingProfileEntryMoMgr() :  MoMgrImpl() {
   UPLL_FUNC_TRACE;
-  // Rename operation is not support for this KT
+  //  Rename operation is not support for this KT
   ntable = MAX_MOMGR_TBLS;
   table = new Table *[ntable];
 
   /* For Main Table */
-  table[MAINTBL]= new Table(uudst::kDbiPolicingProfileEntryTbl,
-      UNC_KT_POLICING_PROFILE_ENTRY, policingprofileentry_bind_info,
+  table[MAINTBL]= new Table(
+      uudst::kDbiPolicingProfileEntryTbl,
+      UNC_KT_POLICING_PROFILE_ENTRY,
+      policingprofileentry_bind_info,
       IpctSt::kIpcStKeyPolicingprofileEntry,
       IpctSt::kIpcStValPolicingprofileEntry,
       uudst::policingprofile_entry::kDbiPolicingProfileEntryNumCols);
@@ -447,20 +449,22 @@ PolicingProfileEntryMoMgr::PolicingProfileEntryMoMgr() :  MoMgrImpl() {
   table[RENAMETBL] = NULL;
 
   /* For Controller Table */
-  table[CTRLRTBL] = new Table(uudst::kDbiPolicingProfileEntryCtrlrTbl,
-      UNC_KT_POLICING_PROFILE_ENTRY, policingprofileentry_controller_bind_info,
-      IpctSt::kIpcStKeyPolicingprofileEntry, IpctSt::kIpcInvalidStNum,
+  table[CTRLRTBL] = new Table(
+      uudst::kDbiPolicingProfileEntryCtrlrTbl,
+      UNC_KT_POLICING_PROFILE_ENTRY,
+      policingprofileentry_controller_bind_info,
+      IpctSt::kIpcStKeyPolicingprofileEntry,
+      IpctSt::kIpcInvalidStNum,
       uudst::policingprofile_entry_ctrlr::kDbiPolicingProfileEntryCtrlrNumCols);
 
   nchild = 0;
   child = NULL;
-  cur_instance_count = 0;
 };
 
 
 upll_rc_t PolicingProfileEntryMoMgr::AllocVal(ConfigVal *&ck_val,
-    upll_keytype_datatype_t dt_type,
-    MoMgrTables tbl) {
+                                              upll_keytype_datatype_t dt_type,
+                                              MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
   void *val; /* *ck_nxtval;*/
   int array_size = 0;
@@ -474,27 +478,27 @@ upll_rc_t PolicingProfileEntryMoMgr::AllocVal(ConfigVal *&ck_val,
           (ConfigKeyVal::Malloc(sizeof(val_policingprofile_entry_t)));
       array_size =
           (sizeof(reinterpret_cast
-                 <val_policingprofile_entry_ctrl*>(val)->valid)/
+                  <val_policingprofile_entry_ctrl*>(val)->valid)/
            sizeof(reinterpret_cast
                   <val_policingprofile_entry_ctrl *>(val)->valid[0]));
       for (int index = 0; index < array_size; index++) {
         reinterpret_cast<val_policingprofile_entry_ctrl *>(val)->valid[index] =
-          UNC_VF_INVALID;
+            UNC_VF_INVALID;
       }
       ck_val = new ConfigVal(IpctSt::kIpcStValPolicingprofileEntry, val);
       break;
     case CTRLRTBL:
       val = reinterpret_cast<void *>(ConfigKeyVal::Malloc(
-            sizeof(val_policingprofile_entry_ctrl_t)));
+              sizeof(val_policingprofile_entry_ctrl_t)));
       array_size =
           (sizeof(reinterpret_cast
-                 <val_policingprofile_entry_ctrl*>(val)->valid)/
-          sizeof(reinterpret_cast
-                 <val_policingprofile_entry_ctrl*>(val)->valid[0]));
+                  <val_policingprofile_entry_ctrl*>(val)->valid)/
+           sizeof(reinterpret_cast
+                  <val_policingprofile_entry_ctrl*>(val)->valid[0]));
 
       for (int index = 0; index < array_size; index++) {
         reinterpret_cast<val_policingprofile_entry_ctrl *>(val)->valid[index] =
-          UNC_VF_INVALID;
+            UNC_VF_INVALID;
       }
       ck_val = new ConfigVal(IpctSt::kIpcInvalidStNum, val);
       break;
@@ -529,7 +533,7 @@ upll_rc_t PolicingProfileEntryMoMgr::GetChildConfigKey(
   }
   if (NULL == pkey) {
     UPLL_LOG_DEBUG("error Generated::Key type not supported :-");
-//    if(key_ppe) free(key_ppe);
+    //     if ( key_ppe) free(key_ppe);
     return UPLL_RC_ERR_GENERIC;
   }
   if (okey) {
@@ -571,10 +575,10 @@ upll_rc_t PolicingProfileEntryMoMgr::GetChildConfigKey(
                  key_ppe->policingprofile_key.policingprofile_name);
   UPLL_LOG_DEBUG("GetChildConfigKey  %d",
                  key_ppe->sequence_num);
-  
+
   if ((okey) && !(okey->get_key())) {
     UPLL_LOG_TRACE("okey not NULL profile name updated");
-    okey->SetKey(IpctSt::kIpcStKeyPolicingprofileEntry, key_ppe);    
+    okey->SetKey(IpctSt::kIpcStKeyPolicingprofileEntry, key_ppe);
   }
 
   if (!okey) {
@@ -596,33 +600,34 @@ upll_rc_t PolicingProfileEntryMoMgr::GetRenamedUncKey(
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
   ConfigKeyVal *unc_key = NULL;
   UPLL_LOG_TRACE("%s GetRenamedUncKey pp_entry start",
-                  ctrlr_key->ToStrAll().c_str());
+                 ctrlr_key->ToStrAll().c_str());
   if ((NULL == ctrlr_key) || (NULL == ctrlr_id) || (NULL == dmi)) {
     UPLL_LOG_DEBUG(" PolicingProfileEntryMoMgr::GetRenamedUncKey Failed.");
     return result_code;
   }
   key_policingprofile_entry_t *ctrlr_policingprofile_entry_key =
-    reinterpret_cast<key_policingprofile_entry_t *>(ctrlr_key->get_key());
+      reinterpret_cast<key_policingprofile_entry_t *>(ctrlr_key->get_key());
   if (NULL == ctrlr_policingprofile_entry_key) {
     UPLL_LOG_DEBUG(" PolicingProfileEntryMoMgr::GetRenamedUncKey Failed.");
     return result_code;
   }
   DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutNone };
   val_rename_policingprofile_t *rename_policingprofile =
-    reinterpret_cast<val_rename_policingprofile_t *>(ConfigKeyVal::Malloc(
-          sizeof(val_rename_policingprofile_t)));
+      reinterpret_cast<val_rename_policingprofile_t *>(ConfigKeyVal::Malloc(
+              sizeof(val_rename_policingprofile_t)));
   if (!rename_policingprofile) {
     UPLL_LOG_DEBUG("rename_policingprofile NULL");
     return result_code;
   }
   uuu::upll_strncpy(
       rename_policingprofile->policingprofile_newname,
-      ctrlr_policingprofile_entry_key->policingprofile_key.policingprofile_name,
+      ctrlr_policingprofile_entry_key->
+      policingprofile_key.policingprofile_name,
       (kMaxLenPolicingProfileName + 1));
   rename_policingprofile->valid[UPLL_IDX_RENAME_PROFILE_RPP] = UNC_VF_VALID;
   MoMgrImpl *mgr =
-    reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-            UNC_KT_POLICING_PROFILE)));
+      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                  UNC_KT_POLICING_PROFILE)));
   if (!mgr) {
     UPLL_LOG_TRACE("mgr failed");
     if (rename_policingprofile) free(rename_policingprofile);
@@ -640,20 +645,21 @@ upll_rc_t PolicingProfileEntryMoMgr::GetRenamedUncKey(
     return UPLL_RC_ERR_GENERIC;
   }
   unc_key->AppendCfgVal(IpctSt::kIpcStValRenamePolicingprofile,
-      rename_policingprofile);
+                        rename_policingprofile);
   if (ctrlr_id)
     SET_USER_DATA_CTRLR(unc_key, ctrlr_id);
 
   UPLL_LOG_DEBUG("ctrlr_id (%s)", ctrlr_id);
   result_code = mgr->ReadConfigDB(unc_key, dt_type, UNC_OP_READ, dbop, dmi,
-      RENAMETBL);
+                                  RENAMETBL);
   if (UPLL_RC_SUCCESS == result_code) {
     key_policingprofile_entry_t *policingprofile_entry =
-      reinterpret_cast<key_policingprofile_entry_t *>(unc_key->get_key());
+        reinterpret_cast<key_policingprofile_entry_t *>(unc_key->get_key());
     uuu::upll_strncpy(
-      ctrlr_policingprofile_entry_key->policingprofile_key.policingprofile_name,
-      policingprofile_entry->policingprofile_key.policingprofile_name,
-      (kMaxLenPolicingProfileName + 1));
+        ctrlr_policingprofile_entry_key->
+        policingprofile_key.policingprofile_name,
+        policingprofile_entry->policingprofile_key.policingprofile_name,
+        (kMaxLenPolicingProfileName + 1));
   } else if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
     UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
     DELETE_IF_NOT_NULL(unc_key);
@@ -664,7 +670,7 @@ upll_rc_t PolicingProfileEntryMoMgr::GetRenamedUncKey(
   DELETE_IF_NOT_NULL(unc_key);
 
   val_policingprofile_entry_t *val_ppe =
-    reinterpret_cast<val_policingprofile_entry_t *>(GetVal(ctrlr_key));
+      reinterpret_cast<val_policingprofile_entry_t *>(GetVal(ctrlr_key));
   if (!val_ppe) {
     UPLL_LOG_DEBUG("val_ppe NULL");
     return UPLL_RC_SUCCESS;
@@ -675,8 +681,8 @@ upll_rc_t PolicingProfileEntryMoMgr::GetRenamedUncKey(
   }
   ConfigKeyVal *fl_ckv = NULL;
   val_rename_flowlist_t *rename_flowlist =
-    reinterpret_cast<val_rename_flowlist_t *>(ConfigKeyVal::Malloc(
-          sizeof(val_rename_flowlist_t)));
+      reinterpret_cast<val_rename_flowlist_t *>(ConfigKeyVal::Malloc(
+              sizeof(val_rename_flowlist_t)));
 
   if (!rename_flowlist) {
     UPLL_LOG_DEBUG("rename_flowlist NULL");
@@ -687,8 +693,8 @@ upll_rc_t PolicingProfileEntryMoMgr::GetRenamedUncKey(
                     (kMaxLenFlowListName + 1));
   rename_flowlist->valid[UPLL_IDX_RENAME_FLOWLIST_RFL] = UNC_VF_VALID;
   MoMgrImpl *mgr_fl =
-    reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-            UNC_KT_FLOWLIST)));
+      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                  UNC_KT_FLOWLIST)));
   if (!mgr_fl) {
     UPLL_LOG_TRACE("mgr failed");
     if (rename_flowlist) free(rename_flowlist);
@@ -707,7 +713,7 @@ upll_rc_t PolicingProfileEntryMoMgr::GetRenamedUncKey(
     return UPLL_RC_ERR_GENERIC;
   }
   fl_ckv->AppendCfgVal(IpctSt::kIpcStValRenameFlowlist,
-      rename_flowlist);
+                       rename_flowlist);
 
   UPLL_LOG_DEBUG("ctrlr_id ppe (%s)", ctrlr_id);
 
@@ -715,10 +721,10 @@ upll_rc_t PolicingProfileEntryMoMgr::GetRenamedUncKey(
     SET_USER_DATA_CTRLR(fl_ckv, ctrlr_id);
 
   result_code = mgr_fl->ReadConfigDB(fl_ckv, dt_type, UNC_OP_READ, dbop, dmi,
-      RENAMETBL);
+                                     RENAMETBL);
   if (UPLL_RC_SUCCESS == result_code) {
     key_flowlist_t *key_flowlist =
-      reinterpret_cast<key_flowlist_t *>(fl_ckv->get_key());
+        reinterpret_cast<key_flowlist_t *>(fl_ckv->get_key());
     uuu::upll_strncpy(val_ppe->flowlist,
                       key_flowlist->flowlist_name,
                       (kMaxLenFlowListName + 1));
@@ -729,15 +735,15 @@ upll_rc_t PolicingProfileEntryMoMgr::GetRenamedUncKey(
     return result_code;
   }
   UPLL_LOG_TRACE("%s GetRenamedUncKey pp_entry end",
-                  ctrlr_key->ToStrAll().c_str());
+                 ctrlr_key->ToStrAll().c_str());
   DELETE_IF_NOT_NULL(fl_ckv);
   mgr_fl = NULL;
   return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t PolicingProfileEntryMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
-    ConfigKeyVal *&req,
-    MoMgrTables tbl) {
+                                                     ConfigKeyVal *&req,
+                                                     MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
   if (NULL == req) {
     return UPLL_RC_ERR_GENERIC;
@@ -756,56 +762,64 @@ upll_rc_t PolicingProfileEntryMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
   if (tmp) {
     if (tbl == MAINTBL) {
       val_policingprofile_entry_t *ival =
-        reinterpret_cast<val_policingprofile_entry_t *>(GetVal(req));
+          reinterpret_cast<val_policingprofile_entry_t *>(GetVal(req));
       if (NULL != ival) {
         val_policingprofile_entry_t *policingprofile_entry_val =
-          reinterpret_cast<val_policingprofile_entry_t *>
-          (ConfigKeyVal::Malloc(sizeof(val_policingprofile_entry_t)));
+            reinterpret_cast<val_policingprofile_entry_t *>
+            (ConfigKeyVal::Malloc(sizeof(val_policingprofile_entry_t)));
         memcpy(policingprofile_entry_val, ival,
-            sizeof(val_policingprofile_entry_t));
+               sizeof(val_policingprofile_entry_t));
         tmp1 = new ConfigVal(IpctSt::kIpcStValPolicingprofileEntry,
-            policingprofile_entry_val);
-       // free(policingprofile_entry_val);  //  TODO(check whether req)
+                             policingprofile_entry_val);
+        if (NULL == tmp1) {
+          UPLL_LOG_DEBUG("Null Pointer:");
+          FREE_IF_NOT_NULL(policingprofile_entry_val);
+          return UPLL_RC_ERR_GENERIC;
+        }
+
+        //  free(policingprofile_entry_val);  //   TODO(check whether req)
       }
     } else if (CTRLRTBL == tbl) {
       val_policingprofile_entry_ctrl_t *ival =
-        reinterpret_cast<val_policingprofile_entry_ctrl_t *>(GetVal(req));
+          reinterpret_cast<val_policingprofile_entry_ctrl_t *>(GetVal(req));
       if (NULL != ival) {
         val_policingprofile_entry_ctrl_t *entry_val =
-          reinterpret_cast<val_policingprofile_entry_ctrl_t *>
-          (ConfigKeyVal::Malloc(sizeof(val_policingprofile_entry_ctrl_t)));
+            reinterpret_cast<val_policingprofile_entry_ctrl_t *>
+            (ConfigKeyVal::Malloc(sizeof(val_policingprofile_entry_ctrl_t)));
         memcpy(entry_val, ival, sizeof(val_policingprofile_entry_ctrl_t));
         tmp1 = new ConfigVal(IpctSt::kIpcInvalidStNum, entry_val);
-      //  free(entry_val);  //  TODO(check whether req)
+        if (NULL == tmp1) {
+          UPLL_LOG_DEBUG("Null Pointer:");
+          FREE_IF_NOT_NULL(entry_val);
+          return UPLL_RC_ERR_GENERIC;
+        }
+        //   free(entry_val);  //   TODO(check whether req)
       }
     } else {
       return UPLL_RC_ERR_GENERIC;
     }
-
-    if (NULL == tmp1) {
-      UPLL_LOG_DEBUG("Null Pointer:");
-      return UPLL_RC_ERR_GENERIC;
+    if (tmp1 != NULL) {
+      tmp1->set_user_data(tmp->get_user_data());
     }
-    tmp1->set_user_data(tmp->get_user_data());
   }
   key_policingprofile_entry_t *tkey =
       reinterpret_cast<key_policingprofile_entry_t *>(req->get_key());
   if (NULL == tkey) {
-    delete tmp1;  // COV RESOURCE LEAK
+    delete tmp1;  //  COV RESOURCE LEAK
     return UPLL_RC_ERR_GENERIC;
   }
 
   key_policingprofile_entry_t *policingprofile_entry =
-    reinterpret_cast<key_policingprofile_entry_t *>
-    (ConfigKeyVal::Malloc(sizeof(key_policingprofile_entry_t)));
+      reinterpret_cast<key_policingprofile_entry_t *>
+      (ConfigKeyVal::Malloc(sizeof(key_policingprofile_entry_t)));
   memcpy(policingprofile_entry, tkey,
          sizeof(key_policingprofile_entry_t));
 
   okey = new ConfigKeyVal(UNC_KT_POLICING_PROFILE_ENTRY,
-      IpctSt::kIpcStKeyPolicingprofileEntry,
-      policingprofile_entry, tmp1);
+                          IpctSt::kIpcStKeyPolicingprofileEntry,
+                          policingprofile_entry, tmp1);
   SET_USER_DATA(okey, req);
-  //  free(policingprofile_entry);  //TODO (check whether req)
+  //   free(policingprofile_entry);  // TODO (check whether req)
   UPLL_LOG_DEBUG(" PolicingProfileEntryMoMgr::Successful Compilation ");
   return UPLL_RC_SUCCESS;
 }
@@ -813,33 +827,34 @@ upll_rc_t PolicingProfileEntryMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
 upll_rc_t PolicingProfileEntryMoMgr::UpdateAuditConfigStatus(
     unc_keytype_configstatus_t cs_status,
     uuc::UpdateCtrlrPhase phase,
-    ConfigKeyVal *&ckv_running) {
+    ConfigKeyVal *&ckv_running,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_policingprofile_entry_ctrl_t *val;
   val = (ckv_running != NULL) ? reinterpret_cast
       <val_policingprofile_entry_ctrl_t *>(GetVal(
-          ckv_running)) :  NULL;
+              ckv_running)) :  NULL;
   if (NULL == val) {
     return UPLL_RC_ERR_GENERIC;
   }
   if (uuc::kUpllUcpCreate == phase )
     val->cs_row_status = cs_status;
   if ((uuc::kUpllUcpUpdate == phase) &&
-           (val->cs_row_status == UNC_CS_INVALID ||
-            val->cs_row_status == UNC_CS_NOT_APPLIED))
+      (val->cs_row_status == UNC_CS_INVALID ||
+       val->cs_row_status == UNC_CS_NOT_APPLIED))
     val->cs_row_status = cs_status;
   for (unsigned int loop = 0; loop < sizeof(val->valid)/sizeof(val->valid[0]);
-      ++loop) {
+       ++loop) {
     if ((cs_status == UNC_CS_INVALID && UNC_VF_VALID == val->valid[loop]) ||
-         cs_status == UNC_CS_APPLIED)
-       val->cs_attr[loop] = cs_status;
+        cs_status == UNC_CS_APPLIED)
+      val->cs_attr[loop] = cs_status;
   }
   return result_code;
 }
 
 bool PolicingProfileEntryMoMgr::CompareKey(ConfigKeyVal *key1,
-    ConfigKeyVal *key2) {
+                                           ConfigKeyVal *key2) {
   UPLL_FUNC_TRACE;
   bool match = false;
   if (NULL == key1 || NULL == key2) {
@@ -853,37 +868,39 @@ bool PolicingProfileEntryMoMgr::CompareKey(ConfigKeyVal *key1,
   key_policingprofile_entry_t *policingprofile_entry_key1,
                               *policingprofile_entry_key2;
   policingprofile_entry_key1 =
-    reinterpret_cast<key_policingprofile_entry_t *>(key1->get_key());
+      reinterpret_cast<key_policingprofile_entry_t *>(key1->get_key());
   policingprofile_entry_key2 =
-    reinterpret_cast<key_policingprofile_entry_t *>(key2->get_key());
+      reinterpret_cast<key_policingprofile_entry_t *>(key2->get_key());
 
   if (NULL == policingprofile_entry_key1 ||
-     NULL == policingprofile_entry_key2) {
+      NULL == policingprofile_entry_key2) {
     return match;
   }
   if (strcmp(
-        reinterpret_cast<const char *>(policingprofile_entry_key1->
-            policingprofile_key.policingprofile_name),
-        reinterpret_cast<const char *>(policingprofile_entry_key2->
-            policingprofile_key.policingprofile_name)) == 0 &&
+          reinterpret_cast<const char *>(
+              policingprofile_entry_key1->
+              policingprofile_key.policingprofile_name),
+          reinterpret_cast<const char *>
+          (policingprofile_entry_key2->
+           policingprofile_key.policingprofile_name)) == 0 &&
       policingprofile_entry_key1->sequence_num ==
       policingprofile_entry_key2->sequence_num) {
     match = true;
-    UPLL_LOG_DEBUG(" PolicingProfileEntryMoMgr::CompareKey,"
+    UPLL_LOG_DEBUG(" PolicingProfileEntryMoMgr::CompareKey, "
                    " Both Keys are same");
   }
   return match;
 }
 
 upll_rc_t PolicingProfileEntryMoMgr::MergeValidate(unc_key_type_t keytype,
-    const char *ctrlr_id,
-    ConfigKeyVal *ikey,
-    DalDmlIntf *dmi) {
+                                                   const char *ctrlr_id,
+                                                   ConfigKeyVal *ikey,
+                                                   DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   MoMgrImpl *mgr =
-    reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-            UNC_KT_POLICING_PROFILE)));
+      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                  UNC_KT_POLICING_PROFILE)));
   if (!mgr) {
     UPLL_LOG_DEBUG("Invalid mgr param");
     return UPLL_RC_ERR_GENERIC;
@@ -895,10 +912,10 @@ upll_rc_t PolicingProfileEntryMoMgr::MergeValidate(unc_key_type_t keytype,
 }
 
 upll_rc_t PolicingProfileEntryMoMgr::RenameMo(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey,
-    DalDmlIntf *dmi,
-    const char *ctrlr_id) {
-  // No Implementation for RenameMo.
+                                              ConfigKeyVal *ikey,
+                                              DalDmlIntf *dmi,
+                                              const char *ctrlr_id) {
+  //  No Implementation for RenameMo.
   UPLL_FUNC_TRACE;
   UPLL_LOG_DEBUG(
       " PolicingProfileEntryMoMgr::Alolocation of Memory is successful ");
@@ -911,13 +928,13 @@ upll_rc_t PolicingProfileEntryMoMgr::IsReferenced(
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *okey = NULL;
   result_code = UpdateConfigDB(ikey,
-                  dt_type, UNC_OP_READ, dmi, CTRLRTBL);
+                               dt_type, UNC_OP_READ, dmi, CTRLRTBL);
   if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code) {
     return UPLL_RC_ERR_CFG_SEMANTIC;
   } else if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
     return result_code;
   }
-  // Change to GetParentKey
+  //  Change to GetParentKey
   result_code = GetPolicingprofileKeyVal(okey, ikey);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("Memory is not allocated for okey %d", result_code);
@@ -925,11 +942,11 @@ upll_rc_t PolicingProfileEntryMoMgr::IsReferenced(
     return result_code;
   }
   MoMgrImpl *mgr =
-    reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-            UNC_KT_POLICING_PROFILE)));
+      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                  UNC_KT_POLICING_PROFILE)));
   if (!mgr) {
     UPLL_LOG_DEBUG("Invalid mgr param");
-    DELETE_IF_NOT_NULL(okey);  // RESOURCE LEAK
+    DELETE_IF_NOT_NULL(okey);  //  RESOURCE LEAK
     return UPLL_RC_ERR_GENERIC;
   }
 
@@ -949,7 +966,7 @@ upll_rc_t PolicingProfileEntryMoMgr::GetPolicingprofileKeyVal(
   UPLL_FUNC_TRACE;
 
   key_policingprofile_entry_t *key_policingprofile_entry =
-    reinterpret_cast<key_policingprofile_entry_t *>(ikey->get_key());
+      reinterpret_cast<key_policingprofile_entry_t *>(ikey->get_key());
 
   if (NULL == key_policingprofile_entry) {
     UPLL_LOG_DEBUG("PolicingProfileEntryMoMgr:: Invalid key");
@@ -957,16 +974,16 @@ upll_rc_t PolicingProfileEntryMoMgr::GetPolicingprofileKeyVal(
   }
 
   key_policingprofile_t *key_policingprofile =
-    reinterpret_cast<key_policingprofile_t *>(ConfigKeyVal::Malloc(
-          sizeof(key_policingprofile_t)));
+      reinterpret_cast<key_policingprofile_t *>(ConfigKeyVal::Malloc(
+              sizeof(key_policingprofile_t)));
   uuu::upll_strncpy(
       key_policingprofile->policingprofile_name,
       key_policingprofile_entry->policingprofile_key.policingprofile_name,
       (kMaxLenPolicingProfileName + 1));
 
   okey = new ConfigKeyVal(UNC_KT_POLICING_PROFILE,
-      IpctSt::kIpcStKeyPolicingprofile, key_policingprofile,
-      NULL);
+                          IpctSt::kIpcStKeyPolicingprofile, key_policingprofile,
+                          NULL);
 
   if (okey) {
     SET_USER_DATA(okey, ikey);
@@ -987,91 +1004,85 @@ upll_rc_t PolicingProfileEntryMoMgr::GetRenamedControllerKey(
   }
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
   ConfigKeyVal *okey = NULL;
-  uint8_t rename = 0;
   DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutFlag };
 
-  IsRenamed(ikey, dt_type, dmi, rename);
-  if (!rename) {
-    UPLL_LOG_DEBUG("Key not Renamed");
-    return UPLL_RC_SUCCESS;
-  }
   /* PolicingProfile_name is  renamed */
-  if (rename & PP_RENAME_FLAG) {
-    MoMgrImpl *ppmgr = static_cast<MoMgrImpl*>
-    ((const_cast<MoManager*>(GetMoManager(UNC_KT_POLICING_PROFILE))));
-    result_code = ppmgr->GetChildConfigKey(okey, NULL);
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("GetChildConfigKey fail (%d)", result_code);
-      return UPLL_RC_ERR_GENERIC;
-    }
+  MoMgrImpl *ppmgr = static_cast<MoMgrImpl*>
+      ((const_cast<MoManager*>(GetMoManager(UNC_KT_POLICING_PROFILE))));
+  result_code = ppmgr->GetChildConfigKey(okey, NULL);
+  if (UPLL_RC_SUCCESS != result_code) {
+    UPLL_LOG_DEBUG("GetChildConfigKey fail (%d)", result_code);
+    return UPLL_RC_ERR_GENERIC;
+  }
 
-    if (ctrlr_dom != NULL)
+  if (NULL != ctrlr_dom) {
     SET_USER_DATA_CTRLR(okey, ctrlr_dom->ctrlr);
+  } else {
+    UPLL_LOG_DEBUG("ctrlr null");
+    DELETE_IF_NOT_NULL(okey);
+    return UPLL_RC_ERR_GENERIC;
+  }
 
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
+  UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
+                 ctrlr_dom->domain);
 
-    uuu::upll_strncpy(
-     reinterpret_cast<key_policingprofile_t *>(okey->get_key())->policingprofile_name,
-     reinterpret_cast <key_policingprofile_entry *>
-     (ikey->get_key())->policingprofile_key.policingprofile_name,
-     (kMaxLenPolicingProfileName + 1));
-
-    UPLL_LOG_DEBUG("profile name (%s) (%s)",
-     reinterpret_cast<key_policingprofile_t *>(okey->get_key())->policingprofile_name,
-     reinterpret_cast <key_policingprofile_entry *>
-     (ikey->get_key())->policingprofile_key.policingprofile_name);
-    
-    /* ctrlr_name */
-    result_code = ppmgr->ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop, dmi,
-                  RENAMETBL);  // COVERITY CHECKED RETURN
-    if (result_code != UPLL_RC_SUCCESS) {
-      if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-        UPLL_LOG_DEBUG("ReadConfigDB no instance");
-        DELETE_IF_NOT_NULL(okey);
-        return UPLL_RC_SUCCESS;
-      }
-      DELETE_IF_NOT_NULL(okey);      
-      UPLL_LOG_DEBUG("ReadConfigDB failed (%d)", result_code);
-      return result_code;
-    }
-    /* Null check missing */
+  uuu::upll_strncpy(
+      reinterpret_cast<key_policingprofile_t *>
+      (okey->get_key())->policingprofile_name,
+      reinterpret_cast <key_policingprofile_entry *>
+      (ikey->get_key())->policingprofile_key.policingprofile_name,
+      (kMaxLenPolicingProfileName + 1));
+
+  UPLL_LOG_DEBUG("profile name (%s) (%s)",
+                 reinterpret_cast<key_policingprofile_t *>(okey->get_key())->
+                 policingprofile_name,
+                 reinterpret_cast <key_policingprofile_entry *>
+                 (ikey->get_key())->policingprofile_key.policingprofile_name);
+
+  /* ctrlr_name */
+  result_code = ppmgr->ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop, dmi,
+                                    RENAMETBL);  //  COVERITY CHECKED RETURN
+  if ((result_code != UPLL_RC_SUCCESS) &&
+      (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
+    DELETE_IF_NOT_NULL(okey);
+    UPLL_LOG_DEBUG("ReadConfigDB failed (%d)", result_code);
+    return result_code;
+  }
+  /* Null check missing */
+  if (UPLL_RC_SUCCESS == result_code) {
     val_rename_policingprofile_t *rename_val =
-      reinterpret_cast<val_rename_policingprofile_t *>(GetVal(okey));
+        reinterpret_cast<val_rename_policingprofile_t *>(GetVal(okey));
     if (!rename_val) {
       UPLL_LOG_DEBUG("rename_val null");
       DELETE_IF_NOT_NULL(okey);
       return UPLL_RC_ERR_GENERIC;
     }
-    
+
     uuu::upll_strncpy(
         reinterpret_cast<key_policingprofile_entry_t *>
         (ikey->get_key())->policingprofile_key.policingprofile_name,
         rename_val->policingprofile_newname,
         (kMaxLenPolicingProfileName + 1));
-    DELETE_IF_NOT_NULL(okey);
   }
+  DELETE_IF_NOT_NULL(okey);
   /* rename flowlist */
-  if (rename & FLOWLIST_RENAME) {
-    UPLL_LOG_DEBUG("flowlist name renamed");
-    // Since during delete there wont be val structure
-    if (NULL == GetVal(ikey)) {
-      return UPLL_RC_SUCCESS;
-    }
+  UPLL_LOG_DEBUG("flowlist name renamed");
+  //  Since during delete there wont be val structure
+  val_policingprofile_entry_t *val_ppe =
+      reinterpret_cast<val_policingprofile_entry_t*>(GetVal(ikey));
+  if (NULL == val_ppe) {
+    return UPLL_RC_SUCCESS;
+  }
+  if (strlen(reinterpret_cast<char *>
+             (val_ppe->flowlist))) {
     MoMgrImpl *mgrflist = static_cast<MoMgrImpl*>
-    ((const_cast<MoManager*> (GetMoManager(UNC_KT_FLOWLIST))));
+        ((const_cast<MoManager*> (GetMoManager(UNC_KT_FLOWLIST))));
     result_code = mgrflist->GetChildConfigKey(okey, NULL);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("GetChildConfigKey fail");
       return result_code;
     }
-    if (NULL != ctrlr_dom) {
-      SET_USER_DATA_CTRLR(okey, ctrlr_dom->ctrlr);
-    } else {
-      UPLL_LOG_DEBUG("ctrlr null");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
+    SET_USER_DATA_CTRLR(okey, ctrlr_dom->ctrlr);
 
     UPLL_LOG_DEBUG("ctrlr : %s;", ctrlr_dom->ctrlr);
 
@@ -1082,42 +1093,41 @@ upll_rc_t PolicingProfileEntryMoMgr::GetRenamedControllerKey(
         kMaxLenFlowListName + 1);
 
     UPLL_LOG_DEBUG("flowlist name (%s) (%s)",
-        reinterpret_cast<key_flowlist_t *>(okey->get_key())->flowlist_name,
-        reinterpret_cast<val_policingprofile_entry_t *>
-        (ikey->get_cfg_val()->get_val())->flowlist);
+                   reinterpret_cast<key_flowlist_t *>(okey->get_key())->
+                   flowlist_name,
+                   reinterpret_cast<val_policingprofile_entry_t *>
+                   (ikey->get_cfg_val()->get_val())->flowlist);
 
     DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutFlag };
     /* ctrlr_name */
     result_code =  mgrflist->ReadConfigDB(okey, dt_type,
-                                UNC_OP_READ, dbop, dmi, RENAMETBL);
-    if ( result_code != UPLL_RC_SUCCESS ) {
-      if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-        UPLL_LOG_DEBUG("ReadConfigDB no instance");
-        DELETE_IF_NOT_NULL(okey);
-        return UPLL_RC_SUCCESS;
-      }
+                                          UNC_OP_READ, dbop, dmi, RENAMETBL);
+    if ((result_code != UPLL_RC_SUCCESS ) &&
+        (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
       UPLL_LOG_DEBUG("ReadConfigDB fail");
       DELETE_IF_NOT_NULL(okey);
-       return UPLL_RC_ERR_GENERIC;
+      return UPLL_RC_ERR_GENERIC;
     }
-    val_rename_flowlist_t *rename_val =
-        reinterpret_cast <val_rename_flowlist_t*>(GetVal(okey));
+    if (UPLL_RC_SUCCESS == result_code) {
+      val_rename_flowlist_t *rename_val =
+          reinterpret_cast <val_rename_flowlist_t*>(GetVal(okey));
 
-    if (!rename_val) {
-      UPLL_LOG_DEBUG("flowlist is not valid");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
+      if (!rename_val) {
+        UPLL_LOG_DEBUG("flowlist is not valid");
+        DELETE_IF_NOT_NULL(okey);
+        return UPLL_RC_ERR_GENERIC;
+      }
+      uuu::upll_strncpy(
+          reinterpret_cast<val_policingprofile_entry_t *>
+          (ikey->get_cfg_val()->get_val())->flowlist,
+          rename_val->flowlist_newname,
+          (kMaxLenFlowListName + 1));
     }
-    uuu::upll_strncpy(
-    reinterpret_cast<val_policingprofile_entry_t *>
-    (ikey->get_cfg_val()->get_val())->flowlist,
-    rename_val->flowlist_newname,
-    (kMaxLenFlowListName + 1));
     DELETE_IF_NOT_NULL(okey);
   }
 
   UPLL_LOG_DEBUG("%s GetRenamedCtrl pp_entry end",
-      (ikey->ToStrAll()).c_str());
+                 (ikey->ToStrAll()).c_str());
   UPLL_LOG_DEBUG("GetRenamedControllerKey is successful ");
   return UPLL_RC_SUCCESS;
 }
@@ -1132,10 +1142,10 @@ upll_rc_t PolicingProfileEntryMoMgr::TxUpdateController(
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   DalResultCode dal_result = uud::kDalRcSuccess;
   ConfigKeyVal *req = NULL, *nreq = NULL, *ck_main = NULL;
-  controller_domain ctrlr_dom;  // UNINIT
+  controller_domain ctrlr_dom;  //  UNINIT
   ctrlr_dom.ctrlr = NULL;
   ctrlr_dom.domain = NULL;
-  DalCursor *dal_cursor_handle;
+  DalCursor *dal_cursor_handle = NULL;
   IpcResponse resp;
   memset(&resp, 0, sizeof(resp));
   if (uuc::kUpllUcpDelete == phase) {
@@ -1169,6 +1179,7 @@ upll_rc_t PolicingProfileEntryMoMgr::TxUpdateController(
     if (result_code != UPLL_RC_SUCCESS)
       break;
     ck_main = NULL;
+    bool driver_resp = false;
     if ((op == UNC_OP_CREATE) || (op == UNC_OP_DELETE)) {
       result_code = DupConfigKeyVal(ck_main, req, MAINTBL);
       if (result_code != UPLL_RC_SUCCESS) {
@@ -1186,15 +1197,19 @@ upll_rc_t PolicingProfileEntryMoMgr::TxUpdateController(
         dal_cursor_handle = NULL;
         return UPLL_RC_ERR_GENERIC;
       }
-      result_code = TxUpdateProcess(ck_main, &resp,
-                                    op, dmi, &ctrlr_dom);
-      affected_ctrlr_set->insert((const char *)ctrlr_dom.ctrlr);
-      if (result_code != UPLL_RC_SUCCESS) {
+      result_code = TxUpdateProcess(ck_main,
+                                    &resp,
+                                    op,
+                                    dmi,
+                                    &ctrlr_dom,
+                                    affected_ctrlr_set,
+                                    &driver_resp);
+      if (result_code != UPLL_RC_SUCCESS && driver_resp) {
         UPLL_LOG_DEBUG("TxUpdateProcess Returns error %d", result_code);
         upll_keytype_datatype_t dt_type = (UNC_OP_DELETE == op)?
             UPLL_DT_RUNNING:UPLL_DT_CANDIDATE;
         upll_rc_t local_rc = GetRenamedUncKey(resp.ckv_data, dt_type, dmi,
-                                       ctrlr_dom.ctrlr);
+                                              ctrlr_dom.ctrlr);
         if (UPLL_RC_SUCCESS != local_rc &&
             UPLL_RC_ERR_NO_SUCH_INSTANCE != local_rc) {
           UPLL_LOG_DEBUG("GetRenamedUncKey failed %d", local_rc);
@@ -1203,9 +1218,14 @@ upll_rc_t PolicingProfileEntryMoMgr::TxUpdateController(
           result_code = UPLL_RC_ERR_GENERIC;
           break;
         }
+        SET_USER_DATA_CTRLR(resp.ckv_data, ctrlr_dom.ctrlr);
         *err_ckv = resp.ckv_data;
         DELETE_IF_NOT_NULL(ck_main);
         break;
+      } else if (result_code != UPLL_RC_SUCCESS) {
+        DELETE_IF_NOT_NULL(ck_main);
+        DELETE_IF_NOT_NULL(resp.ckv_data);
+        break;
       }
       DELETE_IF_NOT_NULL(resp.ckv_data);
       DELETE_IF_NOT_NULL(ck_main);
@@ -1242,11 +1262,14 @@ upll_rc_t PolicingProfileEntryMoMgr::GetControllerSpan(
   return result_code;
 }
 
-upll_rc_t PolicingProfileEntryMoMgr::TxUpdateProcess(ConfigKeyVal *ck_main,
+upll_rc_t PolicingProfileEntryMoMgr::TxUpdateProcess(
+    ConfigKeyVal *ck_main,
     IpcResponse *ipc_resp,
     unc_keytype_operation_t op,
     DalDmlIntf *dmi,
-    controller_domain *ctrlr_dom) {
+    controller_domain *ctrlr_dom,
+    set<string> *affected_ctrlr_set,
+    bool *driver_resp) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code;
   /* read from main table */
@@ -1264,7 +1287,7 @@ upll_rc_t PolicingProfileEntryMoMgr::TxUpdateProcess(ConfigKeyVal *ck_main,
                                UNC_OP_READ, dbop, dmi, MAINTBL);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("%s Policingprofile Entry read failed %d",
-          (dup_ckmain->ToStrAll()).c_str(), result_code);
+                     (dup_ckmain->ToStrAll()).c_str(), result_code);
       delete dup_ckmain;
       return result_code;
     }
@@ -1278,22 +1301,25 @@ upll_rc_t PolicingProfileEntryMoMgr::TxUpdateProcess(ConfigKeyVal *ck_main,
   result_code = SendIpcReq(ipc_resp->header.clnt_sess_id,
                            ipc_resp->header.config_id, op,
                            UPLL_DT_CANDIDATE, dup_ckmain, ctrlr_dom, ipc_resp);
-  if (result_code == UPLL_RC_ERR_RESOURCE_DISCONNECTED) {
+  if (result_code == UPLL_RC_ERR_CTR_DISCONNECTED) {
     UPLL_LOG_DEBUG("Controller disconnected");
     result_code = UPLL_RC_SUCCESS;
   }
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("IpcSend failed %d", result_code);
+    *driver_resp = true;
   }
+  affected_ctrlr_set->insert((const char *)ctrlr_dom->ctrlr);
   if ((op == UNC_OP_CREATE) && dup_ckmain) {
     delete dup_ckmain;
     dup_ckmain = NULL;
   }
-  return result_code;
+  UPLL_LOG_TRACE("Driver response received %d", *driver_resp)
+      return result_code;
 }
 
 upll_rc_t PolicingProfileEntryMoMgr::FilterAttributes(
-        ConfigKeyVal *ckv_main, ConfigKeyVal *ckv_ctrlr) {
+    ConfigKeyVal *ckv_main, ConfigKeyVal *ckv_ctrlr) {
   UPLL_FUNC_TRACE;
   val_policingprofile_entry_t *val_main = reinterpret_cast
       <val_policingprofile_entry_t *>(GetVal(ckv_main));
@@ -1303,8 +1329,8 @@ upll_rc_t PolicingProfileEntryMoMgr::FilterAttributes(
     return UPLL_RC_ERR_GENERIC;
   }
   for (unsigned int loop = 0;
-        loop < sizeof(val_ctrlr->valid) /
-        sizeof(val_ctrlr->valid[0]); ++loop) {
+       loop < sizeof(val_ctrlr->valid) /
+       sizeof(val_ctrlr->valid[0]); ++loop) {
     val_main->valid[loop] = val_ctrlr->valid[loop];
   }
   return UPLL_RC_SUCCESS;
@@ -1316,8 +1342,8 @@ upll_rc_t PolicingProfileEntryMoMgr::TxCopyCandidateToRunning(
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   DalResultCode db_result;
-  unc_keytype_operation_t op[] = {  UNC_OP_DELETE,UNC_OP_CREATE,
-                                   UNC_OP_UPDATE };
+  unc_keytype_operation_t op[] = {  UNC_OP_DELETE, UNC_OP_CREATE,
+    UNC_OP_UPDATE };
   int nop = sizeof(op) / sizeof(op[0]);
   ConfigKeyVal *ppe_key = NULL, *req = NULL, *nreq = NULL,
                *pp_ck_run = NULL;
@@ -1331,35 +1357,42 @@ upll_rc_t PolicingProfileEntryMoMgr::TxCopyCandidateToRunning(
   CtrlrCommitStatusList::iterator ccsListItr;
   CtrlrCommitStatus *ccStatusPtr;
 
-  if ((ctrlr_commit_status == NULL) || (dmi == NULL)) {
-    UPLL_LOG_DEBUG(
-        " PolicingProfileEntryMoMgr::ctrlr_commit_statusm, dmi is not valid ");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  for (ccsListItr = ctrlr_commit_status->begin();
-      ccsListItr != ctrlr_commit_status->end(); ++ccsListItr) {
-    ccStatusPtr = *ccsListItr;
-    ctrlr_id = reinterpret_cast<uint8_t *>(&ccStatusPtr->ctrlr_id);
-    ctrlr_result[ccStatusPtr->ctrlr_id] = ccStatusPtr->upll_ctrlr_result;
-    if (ccStatusPtr->upll_ctrlr_result != UPLL_RC_SUCCESS) {
-      for (ConfigKeyVal *ck_err = ccStatusPtr->err_ckv; ck_err != NULL;
-           ck_err = ck_err->get_next_cfg_key_val()) {
-        if (ck_err->get_key_type() != keytype) continue;
-        result_code = GetRenamedUncKey(ck_err, UPLL_DT_CANDIDATE, dmi,
-            ctrlr_id);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG(
-              " PolicingProfileEntryMoMgr::GetRenamedUncKey is successful -%d",
-              result_code);
-          return result_code;
+  if (ctrlr_commit_status != NULL) {
+    for (ccsListItr = ctrlr_commit_status->begin();
+         ccsListItr != ctrlr_commit_status->end(); ++ccsListItr) {
+      ccStatusPtr = *ccsListItr;
+      ctrlr_id = reinterpret_cast<uint8_t *>(&ccStatusPtr->ctrlr_id);
+      ctrlr_result[ccStatusPtr->ctrlr_id] = ccStatusPtr->upll_ctrlr_result;
+      if (ccStatusPtr->upll_ctrlr_result != UPLL_RC_SUCCESS) {
+        for (ConfigKeyVal *ck_err = ccStatusPtr->err_ckv; ck_err != NULL;
+             ck_err = ck_err->get_next_cfg_key_val()) {
+          if (ck_err->get_key_type() != keytype) continue;
+          result_code = GetRenamedUncKey(ck_err, UPLL_DT_CANDIDATE, dmi,
+                                         ctrlr_id);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG(
+                " PolicingProfileEntryMoMgr::GetRenamedUncKey is "
+                "successful -%d",
+                result_code);
+            return result_code;
+          }
         }
       }
     }
   }
   for (int i = 0; i < nop; i++) {
+    cfg1_cursor = NULL;
     if (op[i] != UNC_OP_UPDATE) {
-      result_code = DiffConfigDB(UPLL_DT_CANDIDATE, UPLL_DT_RUNNING, op[i], req,
-          nreq, &cfg1_cursor, dmi, NULL, MAINTBL,true);
+      result_code = DiffConfigDB(UPLL_DT_CANDIDATE,
+                                 UPLL_DT_RUNNING,
+                                 op[i],
+                                 req,
+                                 nreq,
+                                 &cfg1_cursor,
+                                 dmi,
+                                 NULL,
+                                 MAINTBL,
+                                 true);
       while (result_code == UPLL_RC_SUCCESS) {
         db_result = dmi->GetNextRecord(cfg1_cursor);
         result_code = DalToUpllResCode(db_result);
@@ -1386,6 +1419,7 @@ upll_rc_t PolicingProfileEntryMoMgr::TxCopyCandidateToRunning(
   }
 
   for (int i = 0; i < nop; i++) {
+    cfg1_cursor = NULL;
     MoMgrTables tbl = (op[i] == UNC_OP_UPDATE)?MAINTBL:CTRLRTBL;
     result_code = DiffConfigDB(UPLL_DT_CANDIDATE, UPLL_DT_RUNNING, op[i], req,
                                nreq, &cfg1_cursor, dmi, NULL, tbl, true);
@@ -1398,11 +1432,12 @@ upll_rc_t PolicingProfileEntryMoMgr::TxCopyCandidateToRunning(
         break;
 
       if (op[i] == UNC_OP_UPDATE) {
-        DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutCtrlr |kOpInOutCs };
+        DbSubOp dbop = { kOpReadMultiple, kOpMatchNone,
+          kOpInOutCtrlr |kOpInOutCs };
         result_code = GetChildConfigKey(ppe_ctrlr_key, req);
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("GetChildConfigKey is failed resultcode=%d",
-              result_code);
+                         result_code);
           DELETE_IF_NOT_NULL(req);
           DELETE_IF_NOT_NULL(nreq);
           dmi->CloseCursor(cfg1_cursor, true);
@@ -1432,8 +1467,9 @@ upll_rc_t PolicingProfileEntryMoMgr::TxCopyCandidateToRunning(
               continue;
             }
           } else  {
-            UPLL_LOG_DEBUG("DB err while reading records from ctrlrtbl, err %d",
-                result_code);
+            UPLL_LOG_DEBUG("DB err while reading records from "
+                           "ctrlrtbl, err %d",
+                           result_code);
             DELETE_IF_NOT_NULL(req);
             DELETE_IF_NOT_NULL(nreq);
             DELETE_IF_NOT_NULL(ppe_ctrlr_key);
@@ -1444,7 +1480,6 @@ upll_rc_t PolicingProfileEntryMoMgr::TxCopyCandidateToRunning(
 
         for (ConfigKeyVal *tmp = ppe_ctrlr_key; tmp != NULL; tmp =
              tmp->get_next_cfg_key_val()) {
-
           GET_USER_DATA_CTRLR(tmp, ctrlr_id);
           string controller(reinterpret_cast<char *>(ctrlr_id));
 
@@ -1453,7 +1488,7 @@ upll_rc_t PolicingProfileEntryMoMgr::TxCopyCandidateToRunning(
           result_code = GetChildConfigKey(ppe_key, req);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("GetChildConfigKey is failed resultcode=%d",
-                result_code);
+                           result_code);
             DELETE_IF_NOT_NULL(req);
             DELETE_IF_NOT_NULL(nreq);
             DELETE_IF_NOT_NULL(ppe_ctrlr_key);
@@ -1472,13 +1507,20 @@ upll_rc_t PolicingProfileEntryMoMgr::TxCopyCandidateToRunning(
             return result_code;
           }
           static_cast<val_policingprofile_entry_t *>
-            (GetVal(ppe_key))->cs_row_status =
-            static_cast<val_policingprofile_entry_t *>
-            (GetVal(nreq))->cs_row_status;
-
-          result_code = UpdateConfigStatus(ppe_key, op[i],
-                                           ctrlr_result[controller], nreq,
-                                           dmi, tmp);
+              (GetVal(ppe_key))->cs_row_status =
+              static_cast<val_policingprofile_entry_t *>
+              (GetVal(nreq))->cs_row_status;
+
+          if (ctrlr_result.empty()) {
+            UPLL_LOG_TRACE("ctrlr_commit_status is NULL.");
+            result_code = UpdateConfigStatus(ppe_key, op[i],
+                                             UPLL_RC_ERR_CTR_DISCONNECTED, nreq,
+                                             dmi, tmp);
+          } else {
+            result_code = UpdateConfigStatus(ppe_key, op[i],
+                                             ctrlr_result[controller], nreq,
+                                             dmi, tmp);
+          }
           if (result_code != UPLL_RC_SUCCESS) break;
 
           void *fle_val1 = GetVal(tmp);
@@ -1505,7 +1547,7 @@ upll_rc_t PolicingProfileEntryMoMgr::TxCopyCandidateToRunning(
             DELETE_IF_NOT_NULL(nreq);
             dmi->CloseCursor(cfg1_cursor, true);
             return result_code;
-          }  // COV UNREACHABLE
+          }  //  COV UNREACHABLE
           EnqueCfgNotification(op[i], UPLL_DT_RUNNING,
                                tmp);
           DELETE_IF_NOT_NULL(ppe_key);
@@ -1513,7 +1555,9 @@ upll_rc_t PolicingProfileEntryMoMgr::TxCopyCandidateToRunning(
         DELETE_IF_NOT_NULL(ppe_ctrlr_key);
       } else {
         if (op[i] == UNC_OP_CREATE) {
-          DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutFlag |kOpInOutCs };
+          DbSubOp dbop = { kOpReadSingle,
+            kOpMatchNone,
+            kOpInOutFlag |kOpInOutCs };
           result_code = GetChildConfigKey(ppe_key, req);
           if (UPLL_RC_SUCCESS != result_code) {
             UPLL_LOG_DEBUG("GetChildConfigKey failed %d", result_code);
@@ -1521,8 +1565,12 @@ upll_rc_t PolicingProfileEntryMoMgr::TxCopyCandidateToRunning(
             DELETE_IF_NOT_NULL(nreq);
             dmi->CloseCursor(cfg1_cursor, true);
           }
-          result_code = ReadConfigDB(ppe_key, UPLL_DT_RUNNING /*UPLL_DT_CANDIDATE*/,
-              UNC_OP_READ, dbop, dmi, MAINTBL);
+          result_code = ReadConfigDB(ppe_key,
+                                     UPLL_DT_RUNNING /*UPLL_DT_CANDIDATE*/,
+                                     UNC_OP_READ,
+                                     dbop,
+                                     dmi,
+                                     MAINTBL);
           if ((result_code != UPLL_RC_SUCCESS) &&
               (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE)) {
             UPLL_LOG_DEBUG("ReadConfigDB is failed -%d", result_code);
@@ -1536,9 +1584,12 @@ upll_rc_t PolicingProfileEntryMoMgr::TxCopyCandidateToRunning(
            * to the cs_status of first controller
            */
           uint32_t cur_instance_count;
-          result_code = GetInstanceCount(ppe_key, NULL,
-              UPLL_DT_CANDIDATE, &cur_instance_count,
-              dmi, CTRLRTBL);
+          result_code = GetInstanceCount(ppe_key,
+                                         NULL,
+                                         UPLL_DT_CANDIDATE,
+                                         &cur_instance_count,
+                                         dmi,
+                                         CTRLRTBL);
           if (UPLL_RC_SUCCESS != result_code) {
             UPLL_LOG_DEBUG("GetInstanceCount failed %d", result_code);
             DELETE_IF_NOT_NULL(ppe_key);
@@ -1549,7 +1600,7 @@ upll_rc_t PolicingProfileEntryMoMgr::TxCopyCandidateToRunning(
           }
           if (cur_instance_count == 1)
             reinterpret_cast<val_policingprofile_entry*>(GetVal(ppe_key))->
-              cs_row_status = UNC_CS_UNKNOWN ;
+                cs_row_status = UNC_CS_UNKNOWN;
           /* Capability check
            * req_header->operation = op[i];
            * strcpy((char*)req_header->datatype, (char*)UNC_DT_CANDIDATE);
@@ -1567,22 +1618,35 @@ upll_rc_t PolicingProfileEntryMoMgr::TxCopyCandidateToRunning(
 
           GET_USER_DATA_CTRLR(ppe_ctrlr_key, ctrlr_id);
           string controller(reinterpret_cast<char *>(ctrlr_id));
-          result_code = UpdateConfigStatus(ppe_key, op[i],
-              ctrlr_result[controller], nreq,
-              dmi, ppe_ctrlr_key);
+          if (ctrlr_result.empty()) {
+            UPLL_LOG_TRACE("ctrlr_commit_status is NULL.");
+            result_code = UpdateConfigStatus(ppe_key, op[i],
+                                             UPLL_RC_ERR_CTR_DISCONNECTED,
+                                             nreq,
+                                             dmi,
+                                             ppe_ctrlr_key);
+          } else {
+            result_code = UpdateConfigStatus(ppe_key,
+                                             op[i],
+                                             ctrlr_result[controller],
+                                             nreq,
+                                             dmi,
+                                             ppe_ctrlr_key);
+          }
         } else if (op[i] == UNC_OP_DELETE) {
-          //Reading Main Running DB for delete op
-          DbSubOp dbop1 = { kOpReadSingle, kOpMatchNone, kOpInOutFlag | kOpInOutCs };
+          // Reading Main Running DB for delete op
+          DbSubOp dbop1 = { kOpReadSingle, kOpMatchNone,
+            kOpInOutFlag | kOpInOutCs };
           result_code = GetChildConfigKey(pp_ck_run, req);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("GetChildConfigKey is failed resultcode=%d",
-                result_code);
+                           result_code);
             DELETE_IF_NOT_NULL(req);
             dmi->CloseCursor(cfg1_cursor, true);
             return result_code;
           }
           result_code = ReadConfigDB(pp_ck_run, UPLL_DT_RUNNING,
-              UNC_OP_READ, dbop1, dmi, MAINTBL);
+                                     UNC_OP_READ, dbop1, dmi, MAINTBL);
           if (result_code != UPLL_RC_SUCCESS &&
               result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
             UPLL_LOG_DEBUG("Unable to read configuration from RunningDB");
@@ -1595,9 +1659,11 @@ upll_rc_t PolicingProfileEntryMoMgr::TxCopyCandidateToRunning(
           if (result_code == UPLL_RC_SUCCESS) {
             GET_USER_DATA_CTRLR(req, ctrlr_id);
             string controller(reinterpret_cast<char *>(ctrlr_id));
-            result_code = SetPPEntryConsolidatedStatus(pp_ck_run, ctrlr_id, dmi);
+            result_code = SetPPEntryConsolidatedStatus(pp_ck_run,
+                                                       ctrlr_id, dmi);
             if (result_code != UPLL_RC_SUCCESS) {
-              UPLL_LOG_DEBUG("Could not set consolidated status %d", result_code);
+              UPLL_LOG_DEBUG("Could not set consolidated status %d",
+                             result_code);
               DELETE_IF_NOT_NULL(pp_ck_run);
               DELETE_IF_NOT_NULL(req);
               DELETE_IF_NOT_NULL(nreq);
@@ -1663,8 +1729,10 @@ upll_rc_t PolicingProfileEntryMoMgr::TxCopyCandidateToRunning(
 }
 
 upll_rc_t PolicingProfileEntryMoMgr::UpdateMainTbl(ConfigKeyVal *ppe_key,
-      unc_keytype_operation_t op, uint32_t driver_result,
-      ConfigKeyVal *nreq, DalDmlIntf *dmi) {
+                                                   unc_keytype_operation_t op,
+                                                   uint32_t driver_result,
+                                                   ConfigKeyVal *nreq,
+                                                   DalDmlIntf *dmi) {
   ConfigKeyVal *ck_ppe = NULL;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_policingprofile_entry_t *ppe_val = NULL;
@@ -1703,7 +1771,8 @@ upll_rc_t PolicingProfileEntryMoMgr::UpdateMainTbl(ConfigKeyVal *ppe_key,
       }
       CompareValidValue(ppeval, nppeval, true);
       ppe_val->cs_row_status =
-             reinterpret_cast<val_policingprofile_entry_t *>(GetVal(nreq))->cs_row_status;
+          reinterpret_cast<val_policingprofile_entry_t *>
+          (GetVal(nreq))->cs_row_status;
 
       break;
     case UNC_OP_DELETE:
@@ -1723,143 +1792,143 @@ upll_rc_t PolicingProfileEntryMoMgr::UpdateMainTbl(ConfigKeyVal *ppe_key,
 }
 
 bool PolicingProfileEntryMoMgr::CompareValidValue(void *&val1, void *val2,
-    bool copy_to_running) {
+                                                  bool copy_to_running) {
   UPLL_FUNC_TRACE;
   bool invalid_attr = true;
   val_policingprofile_entry_t *val_pp_entry1 =
-    reinterpret_cast<val_policingprofile_entry_t *>(val1);
+      reinterpret_cast<val_policingprofile_entry_t *>(val1);
   val_policingprofile_entry_t *val_pp_entry2 =
-    reinterpret_cast<val_policingprofile_entry_t *>(val2);
+      reinterpret_cast<val_policingprofile_entry_t *>(val2);
 
-//  if (audit) {
-    for (unsigned int loop = 0;
-        loop < sizeof(val_pp_entry1->valid) /
-        sizeof(val_pp_entry1->valid[0]); ++loop) {
-      if (val_pp_entry1->valid[loop] == UNC_VF_INVALID
-          && val_pp_entry2->valid[loop] == UNC_VF_VALID) {
-        val_pp_entry1->valid[loop] = UNC_VF_VALID_NO_VALUE;
-      }
+  //   if (audit) {
+  for (unsigned int loop = 0;
+       loop < sizeof(val_pp_entry1->valid) /
+       sizeof(val_pp_entry1->valid[0]); ++loop) {
+    if (val_pp_entry1->valid[loop] == UNC_VF_INVALID
+        && val_pp_entry2->valid[loop] == UNC_VF_VALID) {
+      val_pp_entry1->valid[loop] = UNC_VF_VALID_NO_VALUE;
     }
-//  }
+  }
+  //   }
 
   if (val_pp_entry1->valid[UPLL_IDX_FLOWLIST_PPE] == (UNC_VF_VALID)
       && val_pp_entry2->valid[UPLL_IDX_FLOWLIST_PPE] == UNC_VF_VALID) {
     if (strcmp(reinterpret_cast<char *>(val_pp_entry1->flowlist),
-          reinterpret_cast<const char *>(val_pp_entry2->flowlist)) != 0)
+               reinterpret_cast<const char *>(val_pp_entry2->flowlist)) != 0)
       val_pp_entry1->valid[UPLL_IDX_FLOWLIST_PPE] = UNC_VF_VALID;
   }
   if (val_pp_entry1->valid[UPLL_IDX_RATE_PPE] == UNC_VF_VALID
       && val_pp_entry2->valid[UPLL_IDX_RATE_PPE] == UNC_VF_VALID) {
     if (val_pp_entry1->rate == val_pp_entry2->rate) {
       val_pp_entry1->valid[UPLL_IDX_RATE_PPE] =
-      (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
     }
   }
   if (val_pp_entry1->valid[UPLL_IDX_CIR_PPE] == UNC_VF_VALID
       && val_pp_entry2->valid[UPLL_IDX_CIR_PPE] == UNC_VF_VALID) {
     if (val_pp_entry1->cir == val_pp_entry2->cir)
       val_pp_entry1->valid[UPLL_IDX_CIR_PPE] =
-      (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   }
   if (val_pp_entry1->valid[UPLL_IDX_CBS_PPE] == UNC_VF_VALID
       && val_pp_entry2->valid[UPLL_IDX_CBS_PPE] == UNC_VF_VALID) {
     if (val_pp_entry1->cbs == val_pp_entry2->cbs)
       val_pp_entry1->valid[UPLL_IDX_CBS_PPE] =
-      (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   }
   if (val_pp_entry1->valid[UPLL_IDX_PIR_PPE] == UNC_VF_VALID
       && val_pp_entry2->valid[UPLL_IDX_PIR_PPE] == UNC_VF_VALID) {
     if (val_pp_entry1->pir == val_pp_entry2->pir)
       val_pp_entry1->valid[UPLL_IDX_PIR_PPE] =
-      (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   }
   if (val_pp_entry1->valid[UPLL_IDX_PBS_PPE] == UNC_VF_VALID
       && val_pp_entry2->valid[UPLL_IDX_PBS_PPE] == UNC_VF_VALID) {
     if (val_pp_entry1->pbs == val_pp_entry2->pbs)
       val_pp_entry1->valid[UPLL_IDX_PBS_PPE] =
-      (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   }
   if (val_pp_entry1->valid[UPLL_IDX_GREEN_ACTION_PPE] == UNC_VF_VALID
       && val_pp_entry2->valid[UPLL_IDX_GREEN_ACTION_PPE] == UNC_VF_VALID) {
     if (val_pp_entry1->green_action == val_pp_entry2->green_action)
       val_pp_entry1->valid[UPLL_IDX_GREEN_ACTION_PPE] =
-      (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   }
   if (val_pp_entry1->valid[UPLL_IDX_GREEN_PRIORITY_PPE] == UNC_VF_VALID
       && val_pp_entry2->valid[UPLL_IDX_GREEN_PRIORITY_PPE] == UNC_VF_VALID) {
     if (val_pp_entry1->green_action_priority ==
         val_pp_entry2->green_action_priority)
       val_pp_entry1->valid[UPLL_IDX_GREEN_PRIORITY_PPE] =
-      (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   }
   if (val_pp_entry1->valid[UPLL_IDX_GREEN_DSCP_PPE] == UNC_VF_VALID
       && val_pp_entry2->valid[UPLL_IDX_GREEN_DSCP_PPE] == UNC_VF_VALID) {
     if (val_pp_entry1->green_action_dscp == val_pp_entry2->green_action_dscp)
       val_pp_entry1->valid[UPLL_IDX_GREEN_DSCP_PPE] =
-      (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   }
   if (val_pp_entry1->valid[UPLL_IDX_GREEN_DROP_PPE] == UNC_VF_VALID
       && val_pp_entry2->valid[UPLL_IDX_GREEN_DROP_PPE] == UNC_VF_VALID) {
     if (val_pp_entry1->green_action_drop_precedence ==
         val_pp_entry2->green_action_drop_precedence)
       val_pp_entry1->valid[UPLL_IDX_GREEN_DROP_PPE] =
-      (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   }
   if (val_pp_entry1->valid[UPLL_IDX_YELLOW_ACTION_PPE] == UNC_VF_VALID
       && val_pp_entry2->valid[UPLL_IDX_YELLOW_ACTION_PPE] == UNC_VF_VALID) {
     if (val_pp_entry1->yellow_action == val_pp_entry2->yellow_action)
       val_pp_entry1->valid[UPLL_IDX_YELLOW_ACTION_PPE] =
-      (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   }
   if (val_pp_entry1->valid[UPLL_IDX_YELLOW_PRIORITY_PPE] == UNC_VF_VALID
       && val_pp_entry2->valid[UPLL_IDX_YELLOW_PRIORITY_PPE] == UNC_VF_VALID) {
     if (val_pp_entry1->yellow_action_priority ==
         val_pp_entry2->yellow_action_priority)
       val_pp_entry1->valid[UPLL_IDX_YELLOW_PRIORITY_PPE] =
-      (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   }
   if (val_pp_entry1->valid[UPLL_IDX_YELLOW_DSCP_PPE] == UNC_VF_VALID
       && val_pp_entry2->valid[UPLL_IDX_YELLOW_DSCP_PPE] == UNC_VF_VALID) {
     if (val_pp_entry1->yellow_action_dscp == val_pp_entry2->yellow_action_dscp)
       val_pp_entry1->valid[UPLL_IDX_YELLOW_DSCP_PPE] =
-      (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   }
   if (val_pp_entry1->valid[UPLL_IDX_YELLOW_DROP_PPE] == UNC_VF_VALID
       && val_pp_entry2->valid[UPLL_IDX_YELLOW_DROP_PPE] == UNC_VF_VALID) {
     if (val_pp_entry1->yellow_action_drop_precedence ==
         val_pp_entry2->yellow_action_drop_precedence)
       val_pp_entry1->valid[UPLL_IDX_YELLOW_DROP_PPE] =
-      (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   }
   if (val_pp_entry1->valid[UPLL_IDX_RED_ACTION_PPE] == UNC_VF_VALID
       && val_pp_entry2->valid[UPLL_IDX_RED_ACTION_PPE] == UNC_VF_VALID) {
     if (val_pp_entry1->red_action == val_pp_entry2->red_action)
       val_pp_entry1->valid[UPLL_IDX_RED_ACTION_PPE] =
-      (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   }
   if (val_pp_entry1->valid[UPLL_IDX_RED_PRIORITY_PPE] == UNC_VF_VALID
       && val_pp_entry2->valid[UPLL_IDX_RED_PRIORITY_PPE] == UNC_VF_VALID) {
     if (val_pp_entry1->red_action_priority ==
         val_pp_entry2->red_action_priority)
       val_pp_entry1->valid[UPLL_IDX_RED_PRIORITY_PPE] =
-      (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   }
   if (val_pp_entry1->valid[UPLL_IDX_RED_DSCP_PPE] == UNC_VF_VALID
       && val_pp_entry2->valid[UPLL_IDX_RED_DSCP_PPE] == UNC_VF_VALID) {
     if (val_pp_entry1->red_action_dscp ==
         val_pp_entry2->red_action_dscp)
       val_pp_entry1->valid[UPLL_IDX_RED_DSCP_PPE] =
-      (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   }
   if (val_pp_entry1->valid[UPLL_IDX_RED_DROP_PPE] == UNC_VF_VALID
       && val_pp_entry2->valid[UPLL_IDX_RED_DROP_PPE] == UNC_VF_VALID) {
     if (val_pp_entry1->red_action_drop_precedence ==
         val_pp_entry2->red_action_drop_precedence)
       val_pp_entry1->valid[UPLL_IDX_RED_DROP_PPE] =
-      (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   }
   for (unsigned int loop = 0;
-      loop < sizeof(val_pp_entry1->valid)/ sizeof(uint8_t); ++loop) {
+       loop < sizeof(val_pp_entry1->valid)/ sizeof(uint8_t); ++loop) {
     if ((UNC_VF_VALID == (uint8_t) val_pp_entry1->valid[loop]) ||
         (UNC_VF_VALID_NO_VALUE == (uint8_t) val_pp_entry1->valid[loop]))
       invalid_attr = false;
@@ -1868,9 +1937,9 @@ bool PolicingProfileEntryMoMgr::CompareValidValue(void *&val1, void *val2,
 }
 
 upll_rc_t PolicingProfileEntryMoMgr::ReadRecord(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey,
-    DalDmlIntf *dmi,
-    unc_keytype_operation_t op) {
+                                                ConfigKeyVal *ikey,
+                                                DalDmlIntf *dmi,
+                                                unc_keytype_operation_t op) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code;
 
@@ -1891,18 +1960,18 @@ upll_rc_t PolicingProfileEntryMoMgr::ReadRecord(IpcReqRespHeader *req,
 
   if (result_code != UPLL_RC_ERR_INSTANCE_EXISTS) {
     UPLL_LOG_DEBUG(" PolicingProfileEntryMoMgr::UpdateConfigDB is failed :-%d",
-        result_code);
+                   result_code);
     return UPLL_RC_ERR_NO_SUCH_INSTANCE;
   }
   switch (req->datatype) {
-    // Retrieving config information
-    case UPLL_DT_CANDIDATE:  // MIXED ENUMS
+    //  Retrieving config information
+    case UPLL_DT_CANDIDATE:  //  MIXED ENUMS
     case UPLL_DT_RUNNING:
     case UPLL_DT_STARTUP:
     case UPLL_DT_STATE:
       if (req->option1 == UNC_OPT1_NORMAL) {
         result_code = ReadConfigDB(ikey, req->datatype, req->operation, dbop,
-            dmi, MAINTBL);
+                                   dmi, MAINTBL);
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG(
               " PolicingProfileEntryMoMgr::ReadConfigDB is Successful :-%d",
@@ -1916,11 +1985,11 @@ upll_rc_t PolicingProfileEntryMoMgr::ReadRecord(IpcReqRespHeader *req,
 
       break;
 
-    case UPLL_DT_IMPORT:  // MIXED ENUMS
+    case UPLL_DT_IMPORT:  //  MIXED ENUMS
       if (req->option1 == UNC_OPT1_NORMAL) {
         result_code = GetRenamedUncKey(ikey, req->datatype, dmi, NULL);
         result_code = ReadConfigDB(ikey, req->datatype, req->operation, dbop,
-            dmi, MAINTBL);
+                                   dmi, MAINTBL);
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG(
               " PolicingProfileEntryMoMgr::ReadConfigDB is Successful :-%d",
@@ -1937,23 +2006,23 @@ upll_rc_t PolicingProfileEntryMoMgr::ReadRecord(IpcReqRespHeader *req,
     default:
       UPLL_LOG_DEBUG(" PolicingProfileEntryMoMgr::Operation not allowed:-");
       return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
-  }  // end of switch
+  }  //  end of switch
   UPLL_LOG_DEBUG(" PolicingProfileEntryMoMgr::ReadMo is Successful :-%d",
-      result_code);
+                 result_code);
   return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t PolicingProfileEntryMoMgr::ReadMo(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey,
-    DalDmlIntf *dmi) {
+                                            ConfigKeyVal *ikey,
+                                            DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   controller_domain ctrlr_dom;
   result_code = ValidateMessage(req, ikey);
   if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("ValidateMessage failed result_code %d",
-                    result_code);
-      return result_code;
+    UPLL_LOG_DEBUG("ValidateMessage failed result_code %d",
+                   result_code);
+    return result_code;
   }
   result_code = ReadInfoFromDB(req, ikey, dmi, &ctrlr_dom);
   if (result_code != UPLL_RC_SUCCESS) {
@@ -1963,8 +2032,8 @@ upll_rc_t PolicingProfileEntryMoMgr::ReadMo(IpcReqRespHeader *req,
 }
 
 upll_rc_t PolicingProfileEntryMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey,
-    DalDmlIntf *dmi) {
+                                                   ConfigKeyVal *ikey,
+                                                   DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   controller_domain ctrlr_dom;
@@ -1980,7 +2049,7 @@ upll_rc_t PolicingProfileEntryMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
   }
   return result_code;
 
-  // return ReadRecord(req, ikey, dmi, UNC_OP_READ_SIBLING);
+  //  return ReadRecord(req, ikey, dmi, UNC_OP_READ_SIBLING);
 }
 
 upll_rc_t PolicingProfileEntryMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
@@ -1991,7 +2060,7 @@ upll_rc_t PolicingProfileEntryMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
     UPLL_LOG_DEBUG(" Input Key is NULL");
     return UPLL_RC_ERR_GENERIC;
   }
-  DELETE_IF_NOT_NULL(okey); 
+  DELETE_IF_NOT_NULL(okey);
   unc_key_type_t ikey_type = ikey->get_key_type();
   if (ikey_type != UNC_KT_POLICING_PROFILE_ENTRY) {
     UPLL_LOG_DEBUG(" Invalid key type received. Key type - %d", ikey_type);
@@ -2025,9 +2094,9 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidateRate(
 
   /* validate Rate */
   if (ValidateNumericRange(val_ppe->rate,
-        (uint8_t) UPLL_POLICINGPROFILE_RATE_KBPS,
-        (uint8_t) UPLL_POLICINGPROFILE_RATE_PPS, true,
-        true)) {
+                           (uint8_t) UPLL_POLICINGPROFILE_RATE_KBPS,
+                           (uint8_t) UPLL_POLICINGPROFILE_RATE_PPS, true,
+                           true)) {
     UPLL_LOG_DEBUG(" Rate validation is success");
 
     /** validate cir if filled */
@@ -2036,13 +2105,13 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidateRate(
 
       /** check cir range */
       if (!(ValidateNumericRange(val_ppe->cir, kMinRateType,
-              kMaxRateType, true, true))) {
+                                 kMaxRateType, true, true))) {
         UPLL_LOG_DEBUG(" CIR validation failed");
         return UPLL_RC_ERR_CFG_SYNTAX;
       }
     } else if ((operation == UNC_OP_UPDATE || operation == UNC_OP_CREATE)
-        && (val_ppe->valid[UPLL_IDX_CIR_PPE]
-          == UNC_VF_VALID_NO_VALUE)) {
+               && (val_ppe->valid[UPLL_IDX_CIR_PPE]
+                   == UNC_VF_VALID_NO_VALUE)) {
       UPLL_LOG_DEBUG("Reset CIR");
       val_ppe->cir = 0;
     }
@@ -2053,13 +2122,13 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidateRate(
 
       /** check cbs range */
       if (!(ValidateNumericRange(val_ppe->cbs, kMinBurstSize,
-              kMaxBurstSize, true, true))) {
+                                 kMaxBurstSize, true, true))) {
         UPLL_LOG_DEBUG(" CBS validation failed");
         return UPLL_RC_ERR_CFG_SYNTAX;
       }
     } else if ((operation == UNC_OP_UPDATE || operation == UNC_OP_CREATE)
-        && (val_ppe->valid[UPLL_IDX_CBS_PPE]
-          == UNC_VF_VALID_NO_VALUE)) {
+               && (val_ppe->valid[UPLL_IDX_CBS_PPE]
+                   == UNC_VF_VALID_NO_VALUE)) {
       UPLL_LOG_DEBUG("Reset CBS");
       val_ppe->cbs = 0;
     }
@@ -2070,13 +2139,13 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidateRate(
 
       /** check pir range */
       if (!(ValidateNumericRange(val_ppe->pir, kMinRateType,
-              kMaxRateType, true, true))) {
+                                 kMaxRateType, true, true))) {
         UPLL_LOG_DEBUG(" PIR validation failed");
         return UPLL_RC_ERR_CFG_SYNTAX;
       }
     } else if ((operation == UNC_OP_UPDATE || operation == UNC_OP_CREATE)
-        && (val_ppe->valid[UPLL_IDX_PIR_PPE]
-          == UNC_VF_VALID_NO_VALUE)) {
+               && (val_ppe->valid[UPLL_IDX_PIR_PPE]
+                   == UNC_VF_VALID_NO_VALUE)) {
       UPLL_LOG_DEBUG("Reset PIR");
       val_ppe->pir = 0;
     }
@@ -2087,19 +2156,19 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidateRate(
 
       /** check pbs range */
       if (!(ValidateNumericRange(val_ppe->pbs, kMinBurstSize,
-              kMaxBurstSize, true, true))) {
+                                 kMaxBurstSize, true, true))) {
         UPLL_LOG_DEBUG(" PBS validation failed");
         return UPLL_RC_ERR_CFG_SYNTAX;
       }
     } else if ((operation == UNC_OP_UPDATE || operation == UNC_OP_CREATE)
-        && (val_ppe->valid[UPLL_IDX_PBS_PPE]
-          == UNC_VF_VALID_NO_VALUE)) {
+               && (val_ppe->valid[UPLL_IDX_PBS_PPE]
+                   == UNC_VF_VALID_NO_VALUE)) {
       UPLL_LOG_DEBUG("Reset PBS");
       val_ppe->pbs = 0;
     }
     if (UNC_OP_CREATE == operation) {
       if ((UNC_VF_VALID == val_ppe->valid[UPLL_IDX_PIR_PPE])
-        && (UNC_VF_VALID == val_ppe->valid[UPLL_IDX_CIR_PPE])) {
+          && (UNC_VF_VALID == val_ppe->valid[UPLL_IDX_CIR_PPE])) {
         if (val_ppe->pir < val_ppe->cir) {
           UPLL_LOG_DEBUG("cir is greated");
           return UPLL_RC_ERR_CFG_SYNTAX;
@@ -2124,15 +2193,16 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidateColorAction(
   if (val_ppe->valid[UPLL_IDX_GREEN_ACTION_PPE]
       == UNC_VF_VALID) {
     if (!(ValidateNumericRange(val_ppe->green_action,
-            (uint8_t) UPLL_POLICINGPROFILE_ACT_PASS,
-            (uint8_t) UPLL_POLICINGPROFILE_ACT_PENALTY, true,
-            true))) {
+                               (uint8_t) UPLL_POLICINGPROFILE_ACT_PASS,
+                               (uint8_t) UPLL_POLICINGPROFILE_ACT_PENALTY,
+                               true,
+                               true))) {
       UPLL_LOG_DEBUG("green_action syntax validation failed");
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if ((operation == UNC_OP_UPDATE || operation == UNC_OP_CREATE)
-      && (val_ppe->valid[UPLL_IDX_GREEN_ACTION_PPE]
-        == UNC_VF_VALID_NO_VALUE)) {
+             && (val_ppe->valid[UPLL_IDX_GREEN_ACTION_PPE]
+                 == UNC_VF_VALID_NO_VALUE)) {
     UPLL_LOG_DEBUG("Reset green_action");
     val_ppe->green_action = 0;
   }
@@ -2141,15 +2211,16 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidateColorAction(
   if (val_ppe->valid[UPLL_IDX_RED_ACTION_PPE]
       == UNC_VF_VALID) {
     if (!(ValidateNumericRange(val_ppe->red_action,
-            (uint8_t) UPLL_POLICINGPROFILE_ACT_PASS,
-            (uint8_t) UPLL_POLICINGPROFILE_ACT_PENALTY, true,
-            true))) {
+                               (uint8_t) UPLL_POLICINGPROFILE_ACT_PASS,
+                               (uint8_t) UPLL_POLICINGPROFILE_ACT_PENALTY,
+                               true,
+                               true))) {
       UPLL_LOG_DEBUG("red_action syntax validation failed");
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if ((operation == UNC_OP_UPDATE || operation == UNC_OP_CREATE)
-      && (val_ppe->valid[UPLL_IDX_RED_ACTION_PPE]
-        == UNC_VF_VALID_NO_VALUE)) {
+             && (val_ppe->valid[UPLL_IDX_RED_ACTION_PPE]
+                 == UNC_VF_VALID_NO_VALUE)) {
     UPLL_LOG_DEBUG("Reset red_action");
     val_ppe->red_action = 0;
   }
@@ -2158,15 +2229,16 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidateColorAction(
   if (val_ppe->valid[UPLL_IDX_YELLOW_ACTION_PPE]
       == UNC_VF_VALID) {
     if (!(ValidateNumericRange(val_ppe->yellow_action,
-            (uint8_t) UPLL_POLICINGPROFILE_ACT_PASS,
-            (uint8_t) UPLL_POLICINGPROFILE_ACT_PENALTY, true,
-            true))) {
+                               (uint8_t) UPLL_POLICINGPROFILE_ACT_PASS,
+                               (uint8_t) UPLL_POLICINGPROFILE_ACT_PENALTY,
+                               true,
+                               true))) {
       UPLL_LOG_DEBUG("yellow_action syntax validation failed");
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if ((operation == UNC_OP_UPDATE || operation == UNC_OP_CREATE)
-      && (val_ppe->valid[UPLL_IDX_YELLOW_ACTION_PPE]
-        == UNC_VF_VALID_NO_VALUE)) {
+             && (val_ppe->valid[UPLL_IDX_YELLOW_ACTION_PPE]
+                 == UNC_VF_VALID_NO_VALUE)) {
     UPLL_LOG_DEBUG("Reset yellow_action");
     val_ppe->yellow_action = 0;
   }
@@ -2185,21 +2257,21 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidateColorPriority(
         == UPLL_POLICINGPROFILE_ACT_PENALTY) {
       /** check green_action_priority range */
       if (!ValidateNumericRange(
-            val_ppe->green_action_priority, kMinVlanPriority,
-            kMaxVlanPriority, true, true)) {
+              val_ppe->green_action_priority, kMinVlanPriority,
+              kMaxVlanPriority, true, true)) {
         UPLL_LOG_DEBUG("green_action_priority syntax validation failed");
         return UPLL_RC_ERR_CFG_SYNTAX;
       }
     } else {
       UPLL_LOG_DEBUG("Error Green_action_priority configured but green_action"
-          "is not UPLL_POLICINGPROFILE_ACT_PENALTY");
+                     "is not UPLL_POLICINGPROFILE_ACT_PENALTY");
 
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
 
   } else if ((operation == UNC_OP_UPDATE || operation == UNC_OP_CREATE)
-      && (val_ppe->valid[UPLL_IDX_GREEN_PRIORITY_PPE]
-        == UNC_VF_VALID_NO_VALUE)) {
+             && (val_ppe->valid[UPLL_IDX_GREEN_PRIORITY_PPE]
+                 == UNC_VF_VALID_NO_VALUE)) {
     UPLL_LOG_DEBUG("Reset green_priority");
     val_ppe->green_action_priority = 0;
   }
@@ -2211,21 +2283,21 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidateColorPriority(
         == UPLL_POLICINGPROFILE_ACT_PENALTY) {
       /** check green_action_priority range */
       if (!ValidateNumericRange(val_ppe->red_action_priority,
-            kMinVlanPriority, kMaxVlanPriority, true,
-            true)) {
+                                kMinVlanPriority, kMaxVlanPriority, true,
+                                true)) {
         UPLL_LOG_DEBUG("red_action_priority syntax validation failed");
         return UPLL_RC_ERR_CFG_SYNTAX;
       }
     } else {
       UPLL_LOG_DEBUG("Error red_action_priority configured but red_action"
-          "is not UPLL_POLICINGPROFILE_ACT_PENALTY");
+                     "is not UPLL_POLICINGPROFILE_ACT_PENALTY");
 
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
 
   } else if ((operation == UNC_OP_UPDATE || operation == UNC_OP_CREATE)
-      && (val_ppe->valid[UPLL_IDX_RED_PRIORITY_PPE]
-        == UNC_VF_VALID_NO_VALUE)) {
+             && (val_ppe->valid[UPLL_IDX_RED_PRIORITY_PPE]
+                 == UNC_VF_VALID_NO_VALUE)) {
     UPLL_LOG_DEBUG("Reset red_priority");
     val_ppe->red_action_priority = 0;
   }
@@ -2237,20 +2309,21 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidateColorPriority(
         == UPLL_POLICINGPROFILE_ACT_PENALTY) {
       /** check yellow_action_priority range */
       if (!ValidateNumericRange(
-            val_ppe->yellow_action_priority, kMinVlanPriority,
-            kMaxVlanPriority, true, true)) {
+              val_ppe->yellow_action_priority, kMinVlanPriority,
+              kMaxVlanPriority, true, true)) {
         UPLL_LOG_DEBUG("yellow_action_priority syntax validation failed");
         return UPLL_RC_ERR_CFG_SYNTAX;
       }
     } else {
-      UPLL_LOG_DEBUG("Error yellow_action_priority configured but yellow_action"
-          "is not UPLL_POLICINGPROFILE_ACT_PENALTY");
+      UPLL_LOG_DEBUG("Error yellow_action_priority configured but"
+                     "yellow_action"
+                     "is not UPLL_POLICINGPROFILE_ACT_PENALTY");
 
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if ((operation == UNC_OP_UPDATE || operation == UNC_OP_CREATE)
-      && (val_ppe->valid[UPLL_IDX_YELLOW_PRIORITY_PPE]
-        == UNC_VF_VALID_NO_VALUE)) {
+             && (val_ppe->valid[UPLL_IDX_YELLOW_PRIORITY_PPE]
+                 == UNC_VF_VALID_NO_VALUE)) {
     UPLL_LOG_DEBUG("Reset yellow priority");
     val_ppe->yellow_action_priority = 0;
   }
@@ -2269,20 +2342,21 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidateColorPrecedence(
         == UPLL_POLICINGPROFILE_ACT_PENALTY) {
       /** check green_action_drop_precedence range */
       if (!(ValidateNumericRange(
-          val_ppe->green_action_drop_precedence,
-          kMinPrecedence, kMaxPrecedence, true, true))) {
-        UPLL_LOG_DEBUG("green_action_drop_precedence syntax validation failed");
+                  val_ppe->green_action_drop_precedence,
+                  kMinPrecedence, kMaxPrecedence, true, true))) {
+        UPLL_LOG_DEBUG("green_action_drop_precedence syntax"
+                       "validation failed");
         return UPLL_RC_ERR_CFG_SYNTAX;
       }
     } else {
       UPLL_LOG_DEBUG("Error Green_action_drop_precedence configured but"
-                    " green_action is not UPLL_POLICINGPROFILE_ACT_PENALTY");
+                     " green_action is not UPLL_POLICINGPROFILE_ACT_PENALTY");
 
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if ((operation == UNC_OP_UPDATE || operation == UNC_OP_CREATE)
-      && (val_ppe->valid[UPLL_IDX_GREEN_DROP_PPE]
-          == UNC_VF_VALID_NO_VALUE)) {
+             && (val_ppe->valid[UPLL_IDX_GREEN_DROP_PPE]
+                 == UNC_VF_VALID_NO_VALUE)) {
     UPLL_LOG_DEBUG("Reset Green_action_drop_precedence");
     val_ppe->green_action_drop_precedence = 0;
   }
@@ -2293,8 +2367,8 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidateColorPrecedence(
         == UPLL_POLICINGPROFILE_ACT_PENALTY) {
       /** check green_action_drop_precedence range */
       if (!(ValidateNumericRange(
-          val_ppe->red_action_drop_precedence, kMinPrecedence,
-          kMaxPrecedence, true, true))) {
+                  val_ppe->red_action_drop_precedence, kMinPrecedence,
+                  kMaxPrecedence, true, true))) {
         UPLL_LOG_DEBUG("red_action_drop_precedence syntax validation failed");
         return UPLL_RC_ERR_CFG_SYNTAX;
       }
@@ -2305,8 +2379,8 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidateColorPrecedence(
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if ((operation == UNC_OP_UPDATE || operation == UNC_OP_CREATE)
-      && (val_ppe->valid[UPLL_IDX_RED_DROP_PPE]
-          == UNC_VF_VALID_NO_VALUE)) {
+             && (val_ppe->valid[UPLL_IDX_RED_DROP_PPE]
+                 == UNC_VF_VALID_NO_VALUE)) {
     UPLL_LOG_DEBUG("Reset red_action_drop_precedence");
     val_ppe->red_action_drop_precedence = 0;
   }
@@ -2318,20 +2392,20 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidateColorPrecedence(
         == UPLL_POLICINGPROFILE_ACT_PENALTY) {
       /** check yellow_action_drop_precedence range */
       if (!(ValidateNumericRange(
-          val_ppe->yellow_action_drop_precedence,
-          kMinPrecedence, kMaxPrecedence, true, true))) {
+                  val_ppe->yellow_action_drop_precedence,
+                  kMinPrecedence, kMaxPrecedence, true, true))) {
         UPLL_LOG_DEBUG("yellow_action_drop_precedence syntax check failed");
         return UPLL_RC_ERR_CFG_SYNTAX;
       }
     } else {
       UPLL_LOG_DEBUG("Error yellow_action_drop_precedence configured but"
-                    " yellow_action is not UPLL_POLICINGPROFILE_ACT_PENALTY");
+                     " yellow_action is not UPLL_POLICINGPROFILE_ACT_PENALTY");
 
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if ((operation == UNC_OP_UPDATE || operation == UNC_OP_CREATE)
-      && (val_ppe->valid[UPLL_IDX_YELLOW_DROP_PPE]
-          == UNC_VF_VALID_NO_VALUE)) {
+             && (val_ppe->valid[UPLL_IDX_YELLOW_DROP_PPE]
+                 == UNC_VF_VALID_NO_VALUE)) {
     UPLL_LOG_DEBUG("Reset yellow_action_drop_precedence");
     val_ppe->yellow_action_drop_precedence = 0;
   }
@@ -2350,19 +2424,19 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidateColorDscp(
         == UPLL_POLICINGPROFILE_ACT_PENALTY) {
       /** Use common function to check green_action_dscp range */
       if (!ValidateNumericRange(val_ppe->green_action_dscp,
-            kMinIPDscp, kMaxIPDscp, true, true)) {
+                                kMinIPDscp, kMaxIPDscp, true, true)) {
         UPLL_LOG_DEBUG("green_action_dscp syntax validation failed");
         return UPLL_RC_ERR_CFG_SYNTAX;
       }
     } else {
       UPLL_LOG_DEBUG("Error Green_action_dscp configured but green_action"
-          "is not UPLL_POLICINGPROFILE_ACT_PENALTY");
+                     "is not UPLL_POLICINGPROFILE_ACT_PENALTY");
 
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if ((operation == UNC_OP_UPDATE || operation == UNC_OP_CREATE)
-      && (val_ppe->valid[UPLL_IDX_GREEN_DSCP_PPE]
-        == UNC_VF_VALID_NO_VALUE)) {
+             && (val_ppe->valid[UPLL_IDX_GREEN_DSCP_PPE]
+                 == UNC_VF_VALID_NO_VALUE)) {
     UPLL_LOG_DEBUG("Reset green_action_dscp");
     val_ppe->green_action_dscp = 0;
   }
@@ -2373,19 +2447,19 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidateColorDscp(
         == UPLL_POLICINGPROFILE_ACT_PENALTY) {
       /** check green_action_dscp range */
       if (!ValidateNumericRange(val_ppe->red_action_dscp,
-            kMinIPDscp, kMaxIPDscp, true, true)) {
+                                kMinIPDscp, kMaxIPDscp, true, true)) {
         UPLL_LOG_DEBUG("red_action_dscp syntax validation failed");
         return UPLL_RC_ERR_CFG_SYNTAX;
       }
     } else {
       UPLL_LOG_DEBUG("Error red_action_dscp configured but red_action"
-          "is not UPLL_POLICINGPROFILE_ACT_PENALTY");
+                     "is not UPLL_POLICINGPROFILE_ACT_PENALTY");
 
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if ((operation == UNC_OP_UPDATE || operation == UNC_OP_CREATE)
-      && (val_ppe->valid[UPLL_IDX_RED_DSCP_PPE]
-        == UNC_VF_VALID_NO_VALUE)) {
+             && (val_ppe->valid[UPLL_IDX_RED_DSCP_PPE]
+                 == UNC_VF_VALID_NO_VALUE)) {
     UPLL_LOG_DEBUG("Reset Red action dscp");
     val_ppe->red_action_dscp = 0;
   }
@@ -2397,28 +2471,29 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidateColorDscp(
         == UPLL_POLICINGPROFILE_ACT_PENALTY) {
       /** check yellow_action_dscp range */
       if (!ValidateNumericRange(val_ppe->yellow_action_dscp,
-            kMinIPDscp, kMaxIPDscp, true, true)) {
+                                kMinIPDscp, kMaxIPDscp, true, true)) {
         UPLL_LOG_DEBUG("yellow_action_dscp syntax validation failed");
         return UPLL_RC_ERR_CFG_SYNTAX;
       }
     } else {
       UPLL_LOG_DEBUG("Error yellow_action_dscp configured but yellow_action"
-          "is not UPLL_POLICINGPROFILE_ACT_PENALTY");
+                     "is not UPLL_POLICINGPROFILE_ACT_PENALTY");
 
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if ((operation == UNC_OP_UPDATE || operation == UNC_OP_CREATE)
-      && (val_ppe->valid[UPLL_IDX_YELLOW_DSCP_PPE]
-        == UNC_VF_VALID_NO_VALUE)) {
+             && (val_ppe->valid[UPLL_IDX_YELLOW_DSCP_PPE]
+                 == UNC_VF_VALID_NO_VALUE)) {
     UPLL_LOG_DEBUG("Reset yellow action dscp");
     val_ppe->yellow_action_dscp = 0;
   }
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t PolicingProfileEntryMoMgr::ValidateCapability(IpcReqRespHeader *req,
-                                          ConfigKeyVal *ikey,
-                                          const char* ctrlr_name) {
+upll_rc_t PolicingProfileEntryMoMgr::ValidateCapability(
+    IpcReqRespHeader *req,
+    ConfigKeyVal *ikey,
+    const char* ctrlr_name) {
   UPLL_FUNC_TRACE;
 
   if ((NULL == req) || (NULL == ikey)) {
@@ -2433,9 +2508,9 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidateCapability(IpcReqRespHeader *req,
     UPLL_LOG_DEBUG("ctrlr_name is NULL");
     return UPLL_RC_ERR_GENERIC;
   }
+
   UPLL_LOG_TRACE("ctrlr_name(%s), operation : (%d)",
-               ctrlr_name, req->operation);
+                 ctrlr_name, req->operation);
 
   bool ret_code = false;
   uint32_t max_instance_count = 0;
@@ -2445,19 +2520,12 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidateCapability(IpcReqRespHeader *req,
   switch (req->operation) {
     case UNC_OP_CREATE: {
       ret_code = GetCreateCapability(ctrlr_name, ikey->get_key_type(),
-                                        &max_instance_count, &max_attrs, &attrs);
-
-      if (ret_code && (max_instance_count != 0) &&
-          (cur_instance_count >= max_instance_count)) {
-        UPLL_LOG_DEBUG("Instance count %d exceeds %d", cur_instance_count,
-                      max_instance_count);
-        return UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
-      }
+                                     &max_instance_count, &max_attrs, &attrs);
       break;
     }
     case UNC_OP_UPDATE: {
       ret_code = GetUpdateCapability(ctrlr_name, ikey->get_key_type(),
-                                        &max_attrs, &attrs);
+                                     &max_attrs, &attrs);
       break;
     }
     default: {
@@ -2466,7 +2534,7 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidateCapability(IpcReqRespHeader *req,
                                       &max_attrs, &attrs);
       else
         ret_code = GetReadCapability(ctrlr_name, ikey->get_key_type(),
-                                      &max_attrs, &attrs);
+                                     &max_attrs, &attrs);
     }
   }
 
@@ -2478,16 +2546,17 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidateCapability(IpcReqRespHeader *req,
   }
 
   val_policingprofile_entry_t *val_policingprofile_entry =
-        reinterpret_cast<val_policingprofile_entry_t *>(
-           GetVal(ikey));
+      reinterpret_cast<val_policingprofile_entry_t *>(
+          GetVal(ikey));
 
   if (val_policingprofile_entry) {
     if (max_attrs > 0) {
       return ValPolicingProfileEntryAttributeSupportCheck(
-            val_policingprofile_entry, attrs);
+          val_policingprofile_entry, attrs);
     } else {
-      UPLL_LOG_DEBUG("Attribute list is empty for operation %d", req->operation);
-      return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR; 
+      UPLL_LOG_DEBUG("Attribute list is empty for operation %d",
+                     req->operation);
+      return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
     }
   }
   return UPLL_RC_SUCCESS;
@@ -2495,8 +2564,8 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidateCapability(IpcReqRespHeader *req,
 
 upll_rc_t PolicingProfileEntryMoMgr::
 ValPolicingProfileEntryAttributeSupportCheck(
-  val_policingprofile_entry_t *val_policingprofile_entry,
-  const uint8_t *attrs) {
+    val_policingprofile_entry_t *val_policingprofile_entry,
+    const uint8_t *attrs) {
   UPLL_FUNC_TRACE;
 
   if ((val_policingprofile_entry->valid[UPLL_IDX_FLOWLIST_PPE] ==
@@ -2576,7 +2645,7 @@ void PolicingProfileEntryMoMgr::ValidateGreenFieldAttribute(
   UPLL_FUNC_TRACE;
 
   if ((val_policingprofile_entry->valid[UPLL_IDX_GREEN_ACTION_PPE]
-      == UNC_VF_VALID)
+       == UNC_VF_VALID)
       || (val_policingprofile_entry->valid[UPLL_IDX_GREEN_ACTION_PPE]
           == UNC_VF_VALID_NO_VALUE)) {
     if (attrs[unc::capa::policingprofile_entry::kCapGreenAction] == 0) {
@@ -2587,7 +2656,7 @@ void PolicingProfileEntryMoMgr::ValidateGreenFieldAttribute(
   }
 
   if ((val_policingprofile_entry->valid[UPLL_IDX_GREEN_PRIORITY_PPE]
-      == UNC_VF_VALID)
+       == UNC_VF_VALID)
       || (val_policingprofile_entry->valid[UPLL_IDX_GREEN_PRIORITY_PPE]
           == UNC_VF_VALID_NO_VALUE)) {
     if (attrs[unc::capa::policingprofile_entry::kCapGreenPriority] == 0) {
@@ -2598,18 +2667,18 @@ void PolicingProfileEntryMoMgr::ValidateGreenFieldAttribute(
   }
 
   if ((val_policingprofile_entry->valid[UPLL_IDX_GREEN_DSCP_PPE] ==
-        UNC_VF_VALID)
+       UNC_VF_VALID)
       || (val_policingprofile_entry->valid[UPLL_IDX_GREEN_DSCP_PPE]
           == UNC_VF_VALID_NO_VALUE)) {
     if (attrs[unc::capa::policingprofile_entry::kCapGreenDscp] == 0) {
       UPLL_LOG_DEBUG("GREEN_DSCP attr is not supported by ctrlr");
       val_policingprofile_entry->valid[UPLL_IDX_GREEN_DSCP_PPE] =
           UNC_VF_NOT_SUPPORTED;
-    } 
+    }
   }
 
   if ((val_policingprofile_entry->valid[UPLL_IDX_GREEN_DROP_PPE] ==
-      UNC_VF_VALID)
+       UNC_VF_VALID)
       || (val_policingprofile_entry->valid[UPLL_IDX_GREEN_DROP_PPE]
           == UNC_VF_VALID_NO_VALUE)) {
     if (attrs[unc::capa::policingprofile_entry::kCapGreenDrop] == 0) {
@@ -2626,7 +2695,7 @@ void PolicingProfileEntryMoMgr::ValidateYellowFieldAttribute(
   UPLL_FUNC_TRACE;
 
   if ((val_policingprofile_entry->valid[UPLL_IDX_YELLOW_ACTION_PPE]
-      == UNC_VF_VALID)
+       == UNC_VF_VALID)
       || (val_policingprofile_entry->valid[UPLL_IDX_YELLOW_ACTION_PPE]
           == UNC_VF_VALID_NO_VALUE)) {
     if (attrs[unc::capa::policingprofile_entry::kCapYellowAction] == 0) {
@@ -2637,18 +2706,18 @@ void PolicingProfileEntryMoMgr::ValidateYellowFieldAttribute(
   }
 
   if ((val_policingprofile_entry->valid[UPLL_IDX_YELLOW_PRIORITY_PPE]
-      == UNC_VF_VALID)
+       == UNC_VF_VALID)
       || (val_policingprofile_entry->valid[UPLL_IDX_YELLOW_PRIORITY_PPE]
           == UNC_VF_VALID_NO_VALUE)) {
     if (attrs[unc::capa::policingprofile_entry::kCapYellowPriority] == 0) {
       UPLL_LOG_DEBUG("YELLOW_PRIORITY attr is not supported by ctrlr");
       val_policingprofile_entry->valid[UPLL_IDX_YELLOW_PRIORITY_PPE] =
           UNC_VF_NOT_SUPPORTED;
-    } 
+    }
   }
 
   if ((val_policingprofile_entry->valid[UPLL_IDX_YELLOW_DSCP_PPE]
-      == UNC_VF_VALID)
+       == UNC_VF_VALID)
       || (val_policingprofile_entry->valid[UPLL_IDX_YELLOW_DSCP_PPE]
           == UNC_VF_VALID_NO_VALUE)) {
     if (attrs[unc::capa::policingprofile_entry::kCapYellowDscp] == 0) {
@@ -2659,7 +2728,7 @@ void PolicingProfileEntryMoMgr::ValidateYellowFieldAttribute(
   }
 
   if ((val_policingprofile_entry->valid[UPLL_IDX_YELLOW_DROP_PPE]
-      == UNC_VF_VALID)
+       == UNC_VF_VALID)
       || (val_policingprofile_entry->valid[UPLL_IDX_YELLOW_DROP_PPE]
           == UNC_VF_VALID_NO_VALUE)) {
     if (attrs[unc::capa::policingprofile_entry::kCapYellowDrop] == 0) {
@@ -2676,7 +2745,7 @@ void PolicingProfileEntryMoMgr::ValidateRedFieldAttribute(
   UPLL_FUNC_TRACE;
 
   if ((val_policingprofile_entry->valid[UPLL_IDX_RED_ACTION_PPE]
-      == UNC_VF_VALID)
+       == UNC_VF_VALID)
       || (val_policingprofile_entry->valid[UPLL_IDX_RED_ACTION_PPE]
           == UNC_VF_VALID_NO_VALUE)) {
     if (attrs[unc::capa::policingprofile_entry::kCapRedAction] == 0) {
@@ -2687,7 +2756,7 @@ void PolicingProfileEntryMoMgr::ValidateRedFieldAttribute(
   }
 
   if ((val_policingprofile_entry->valid[UPLL_IDX_RED_PRIORITY_PPE]
-      == UNC_VF_VALID)
+       == UNC_VF_VALID)
       || (val_policingprofile_entry->valid[UPLL_IDX_RED_PRIORITY_PPE]
           == UNC_VF_VALID_NO_VALUE)) {
     if (attrs[unc::capa::policingprofile_entry::kCapRedPriority] == 0) {
@@ -2719,7 +2788,7 @@ void PolicingProfileEntryMoMgr::ValidateRedFieldAttribute(
 }
 
 upll_rc_t PolicingProfileEntryMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
-    ConfigKeyVal *ikey) {
+                                                     ConfigKeyVal *ikey) {
   UPLL_FUNC_TRACE;
   if (NULL == ikey || NULL ==(ikey->get_key()) ||
       NULL != okey) {
@@ -2729,13 +2798,13 @@ upll_rc_t PolicingProfileEntryMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
 
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   key_rename_vnode_info_t *key_rename =
-    reinterpret_cast<key_rename_vnode_info_t *>(ikey->get_key());
+      reinterpret_cast<key_rename_vnode_info_t *>(ikey->get_key());
 
   key_policingprofile_entry_t *key_policingprofile =
-    reinterpret_cast<key_policingprofile_entry_t *>(ConfigKeyVal::Malloc(
-          sizeof(key_policingprofile_entry_t)));
+      reinterpret_cast<key_policingprofile_entry_t *>(ConfigKeyVal::Malloc(
+              sizeof(key_policingprofile_entry_t)));
   if (!strlen(
-        reinterpret_cast<char *>(key_rename->old_policingprofile_name))) {
+          reinterpret_cast<char *>(key_rename->old_policingprofile_name))) {
     UPLL_LOG_DEBUG("key_rename->old_policingprofile_name NULL");
     if (key_policingprofile) free(key_policingprofile);
     return UPLL_RC_ERR_GENERIC;
@@ -2746,8 +2815,8 @@ upll_rc_t PolicingProfileEntryMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
       (kMaxLenPolicingProfileName + 1));
 
   okey = new ConfigKeyVal(UNC_KT_POLICING_PROFILE_ENTRY,
-      IpctSt::kIpcStKeyPolicingprofileEntry,
-      key_policingprofile, NULL);
+                          IpctSt::kIpcStKeyPolicingprofileEntry,
+                          key_policingprofile, NULL);
   if (!okey) {
     UPLL_LOG_DEBUG("okey NULL");
     return UPLL_RC_ERR_GENERIC;
@@ -2755,10 +2824,11 @@ upll_rc_t PolicingProfileEntryMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
   return result_code;
 }
 
-upll_rc_t PolicingProfileEntryMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
-                                             DalDmlIntf *dmi,
-                                             upll_keytype_datatype_t data_type,
-                                             bool &no_rename) {
+upll_rc_t PolicingProfileEntryMoMgr::UpdateVnodeVal(
+    ConfigKeyVal *ikey,
+    DalDmlIntf *dmi,
+    upll_keytype_datatype_t data_type,
+    bool &no_rename) {
   UPLL_FUNC_TRACE;
   ConfigKeyVal *okey = NULL;
   ConfigKeyVal *kval = NULL;
@@ -2767,12 +2837,12 @@ upll_rc_t PolicingProfileEntryMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
   key_rename_vnode_info_t *key_rename =
-  reinterpret_cast<key_rename_vnode_info_t *>(ikey->get_key());
-  UPLL_LOG_TRACE("old name (%s) (%s)",key_rename->old_flowlist_name,
-              key_rename->new_flowlist_name);
+      reinterpret_cast<key_rename_vnode_info_t *>(ikey->get_key());
+  UPLL_LOG_TRACE("old name (%s) (%s)", key_rename->old_flowlist_name,
+                 key_rename->new_flowlist_name);
   val_policingprofile_entry_t *val_ppe =
-         reinterpret_cast<val_policingprofile_entry_t *>
-         (ConfigKeyVal::Malloc(sizeof(val_policingprofile_entry_t))); 
+      reinterpret_cast<val_policingprofile_entry_t *>
+      (ConfigKeyVal::Malloc(sizeof(val_policingprofile_entry_t)));
   if (!val_ppe) {
     UPLL_LOG_TRACE("val_ppe Failed");
     return UPLL_RC_ERR_GENERIC;
@@ -2792,17 +2862,18 @@ upll_rc_t PolicingProfileEntryMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
     return UPLL_RC_ERR_GENERIC;
   }
   uuu::upll_strncpy(val_ppe->flowlist, key_rename->old_flowlist_name,
-      (kMaxLenFlowListName + 1));
+                    (kMaxLenFlowListName + 1));
   val_ppe->valid[UPLL_IDX_FLOWLIST_PPE] = UNC_VF_VALID;
   UPLL_LOG_DEBUG("policer name and valid (%d) (%s)",
-                  val_ppe->valid[UPLL_IDX_FLOWLIST_PPE], val_ppe->flowlist);
-  okey->SetCfgVal(new ConfigVal (IpctSt::kIpcStValPolicingprofileEntry, val_ppe));
+                 val_ppe->valid[UPLL_IDX_FLOWLIST_PPE], val_ppe->flowlist);
+  okey->SetCfgVal(new ConfigVal(IpctSt::kIpcStValPolicingprofileEntry,
+                                 val_ppe));
 
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutFlag };
 
-  // Read the record of key structure and old policer name in maintbl
+  //  Read the record of key structure and old policer name in maintbl
   result_code = ReadConfigDB(okey, data_type, UNC_OP_READ, dbop, dmi,
-    MAINTBL);
+                             MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG(" ReadConfigDB failed ");
     DELETE_IF_NOT_NULL(okey);
@@ -2810,7 +2881,7 @@ upll_rc_t PolicingProfileEntryMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
   }
   ConfigKeyVal *first_ckv = okey;
   while (okey != NULL) {
-    // Update the new flowlist name in MAINTBL
+    //  Update the new flowlist name in MAINTBL
     result_code = GetChildConfigKey(kval, okey);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("GetChildConfigKey kval NULL");
@@ -2818,14 +2889,14 @@ upll_rc_t PolicingProfileEntryMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
       return result_code;
     }
 
-    // Copy the new flowlist name in val_policingprofile_entry
+    //  Copy the new flowlist name in val_policingprofile_entry
     val_policingprofile_entry_t *val1 =
-         reinterpret_cast<val_policingprofile_entry_t *>
-         (ConfigKeyVal::Malloc(sizeof(val_policingprofile_entry_t)));
+        reinterpret_cast<val_policingprofile_entry_t *>
+        (ConfigKeyVal::Malloc(sizeof(val_policingprofile_entry_t)));
     if (!val1) return UPLL_RC_ERR_GENERIC;
     memset(val1, 0, sizeof(val_policingprofile_entry_t));
 
-    // New name null check
+    //  New name null check
     if (!strlen(reinterpret_cast<char *>(key_rename->new_flowlist_name))) {
       if (val1) free(val1);
       UPLL_LOG_DEBUG("new_policingprofile_name NULL");
@@ -2833,14 +2904,15 @@ upll_rc_t PolicingProfileEntryMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
       DELETE_IF_NOT_NULL(first_ckv);
       return UPLL_RC_ERR_GENERIC;
     }
-    // Copy the new flowlist name into val_policingprofile_entry_t
-     uuu::upll_strncpy(val1->flowlist, key_rename->new_flowlist_name,
-      (kMaxLenFlowListName + 1));
+    //  Copy the new flowlist name into val_policingprofile_entry_t
+    uuu::upll_strncpy(val1->flowlist, key_rename->new_flowlist_name,
+                      (kMaxLenFlowListName + 1));
     val1->valid[UPLL_IDX_FLOWLIST_PPE] = UNC_VF_VALID;
     UPLL_LOG_DEBUG("policer name and valid (%d) (%s)",
-                    val1->valid[UPLL_IDX_FLOWLIST_PPE], val1->flowlist);
+                   val1->valid[UPLL_IDX_FLOWLIST_PPE], val1->flowlist);
 
-    ConfigVal *cval1 = new ConfigVal(IpctSt::kIpcStValPolicingprofileEntry, val1);
+    ConfigVal *cval1 = new ConfigVal(IpctSt::kIpcStValPolicingprofileEntry,
+                                     val1);
 
     kval->SetCfgVal(cval1);
 
@@ -2853,12 +2925,12 @@ upll_rc_t PolicingProfileEntryMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
 
     SET_USER_DATA_FLAGS(kval, rename);
 
-    // Update the new flowlist name in MAINTBL
+    //  Update the new flowlist name in MAINTBL
     result_code = UpdateConfigDB(kval, data_type, UNC_OP_UPDATE, dmi,
-                  MAINTBL);
+                                 MAINTBL);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("Create record Err in vtnpolicingmaptbl CANDIDATE DB(%d)",
-        result_code);
+                     result_code);
       DELETE_IF_NOT_NULL(kval);
       DELETE_IF_NOT_NULL(first_ckv);
       return result_code;
@@ -2874,9 +2946,9 @@ upll_rc_t PolicingProfileEntryMoMgr::UpdatePolicingProfileEntryRenamed(
     ConfigKeyVal *rename_info, DalDmlIntf *dmi,
     upll_keytype_datatype_t data_type) {
   UPLL_FUNC_TRACE;
-  uint8_t rename = 0;  // UNINIT
+  uint8_t rename = 0;  //  UNINIT
   uint8_t *ctrlr_id = NULL;
-  if (!rename_info || !rename_info->get_key()) {  // COVERITY FORWARD NULL
+  if (!rename_info || !rename_info->get_key()) {  //  COVERITY FORWARD NULL
     return UPLL_RC_ERR_GENERIC;
   }
   GET_USER_DATA_CTRLR(rename_info, ctrlr_id);
@@ -2902,12 +2974,17 @@ upll_rc_t PolicingProfileEntryMoMgr::UpdatePolicingProfileEntryRenamed(
     return UPLL_RC_ERR_GENERIC;
   }
   uuu::upll_strncpy(
-                    key_rename->new_flowlist_name,
-                    reinterpret_cast<key_rename_vnode_info *>
-                    (rename_info->get_key())->new_flowlist_name,
-                    (kMaxLenFlowListName + 1));
+      key_rename->new_flowlist_name,
+      reinterpret_cast<key_rename_vnode_info *>
+      (rename_info->get_key())->new_flowlist_name,
+      (kMaxLenFlowListName + 1));
   DbSubOp dbop1 = { kOpReadMultiple, kOpMatchNone, kOpInOutFlag };
-  result_code = ReadConfigDB(okey, data_type, UNC_OP_READ, dbop1, dmi, MAINTBL);
+  result_code = ReadConfigDB(okey,
+                             data_type,
+                             UNC_OP_READ,
+                             dbop1,
+                             dmi,
+                             MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     free(key_rename);
     return result_code;
@@ -2915,25 +2992,25 @@ upll_rc_t PolicingProfileEntryMoMgr::UpdatePolicingProfileEntryRenamed(
   while (okey) {
     result_code = GetChildConfigKey(tmp_key, okey);
     if (result_code != UPLL_RC_SUCCESS) {
-      free(key_rename);  // COV RESOURCE LEAK FIC
+      free(key_rename);  //  COV RESOURCE LEAK FIC
       return result_code;
     }
     result_code = GetChildConfigKey(ctrlr_tmp_key, okey);
     if (result_code != UPLL_RC_SUCCESS) {
-      // COV RESOURCE LEAK FIX
+      //  COV RESOURCE LEAK FIX
       delete tmp_key;
       free(key_rename);
       return result_code;
     }
-    if (!tmp_key || !(tmp_key->get_key())) {  // COVERITY FORWARD NULL
-      delete ctrlr_tmp_key;  // COV RESOURCE LEAK FIX
+    if (!tmp_key || !(tmp_key->get_key())) {  //  COVERITY FORWARD NULL
+      delete ctrlr_tmp_key;  //  COV RESOURCE LEAK FIX
       free(key_rename);
       delete tmp_key;
       return UPLL_RC_ERR_GENERIC;
     }
-    // COVERITY FORWARD NULL
+    //  COVERITY FORWARD NULL
     if (!ctrlr_tmp_key || !(ctrlr_tmp_key->get_key())) {
-      // COV RESOURCE LEAK FIX
+      //  COV RESOURCE LEAK FIX
       free(key_rename);
       delete ctrlr_tmp_key;
       delete tmp_key;
@@ -2944,12 +3021,16 @@ upll_rc_t PolicingProfileEntryMoMgr::UpdatePolicingProfileEntryRenamed(
     SET_USER_DATA_FLAGS(tmp_key, rename);
     SET_USER_DATA_FLAGS(ctrlr_tmp_key, rename);
     tmp_key->AppendCfgKeyVal(table[MAINTBL]->get_key_type(),
-        IpctSt::kIpcInvalidStNum, key_rename, NULL);
+                             IpctSt::kIpcInvalidStNum, key_rename, NULL);
     ctrlr_tmp_key->AppendCfgKeyVal(table[MAINTBL]->get_key_type(),
-        IpctSt::kIpcInvalidStNum, key_rename, NULL);
+                                   IpctSt::kIpcInvalidStNum, key_rename, NULL);
     DbSubOp dbop = { kOpNotRead, kOpMatchNone, kOpInOutFlag };
-    result_code = UpdateRenameKey(tmp_key, data_type, UNC_OP_UPDATE, dmi, &dbop,
-        MAINTBL);
+    result_code = UpdateRenameKey(tmp_key,
+                                  data_type,
+                                  UNC_OP_UPDATE,
+                                  dmi,
+                                  &dbop,
+                                  MAINTBL);
     if (UPLL_RC_SUCCESS != result_code) {
       DELETE_IF_NOT_NULL(tmp_key);
       DELETE_IF_NOT_NULL(ctrlr_tmp_key);
@@ -2959,19 +3040,19 @@ upll_rc_t PolicingProfileEntryMoMgr::UpdatePolicingProfileEntryRenamed(
     SET_USER_DATA_CTRLR(ctrlr_tmp_key, ctrlr_id);
     DbSubOp dbop1 = { kOpNotRead, kOpMatchCtrlr, kOpInOutFlag };
     result_code = UpdateRenameKey(tmp_key, data_type, UNC_OP_UPDATE, dmi,
-        &dbop1, CTRLRTBL);
+                                  &dbop1, CTRLRTBL);
     if (UPLL_RC_SUCCESS != result_code) {
       DELETE_IF_NOT_NULL(tmp_key);
       DELETE_IF_NOT_NULL(ctrlr_tmp_key);
       DELETE_IF_NOT_NULL(okey);
       return result_code;
     }
-    // Check with Sarath - Start
+    //  Check with Sarath - Start
     DELETE_IF_NOT_NULL(tmp_key);
     DELETE_IF_NOT_NULL(ctrlr_tmp_key);
     okey = okey->get_next_cfg_key_val();
   }
-  DELETE_IF_NOT_NULL(okey);  // Logically dead code
+  DELETE_IF_NOT_NULL(okey);  //  Logically dead code
   FREE_IF_NOT_NULL(key_rename);
   return result_code;
 }
@@ -2979,12 +3060,13 @@ upll_rc_t PolicingProfileEntryMoMgr::UpdatePolicingProfileEntryRenamed(
 bool PolicingProfileEntryMoMgr::IsValidKey(void *ikey, uint64_t index) {
   UPLL_FUNC_TRACE;
   key_policingprofile_entry *key =
-    reinterpret_cast<key_policingprofile_entry *>(ikey);
+      reinterpret_cast<key_policingprofile_entry *>(ikey);
   upll_rc_t ret_val = UPLL_RC_SUCCESS;
 
   if (index == uudst::policingprofile_entry::kDbiPolicingProfileName) {
     ret_val = ValidateKey(
-        reinterpret_cast<char *>(key->policingprofile_key.policingprofile_name),
+        reinterpret_cast<char *>
+        (key->policingprofile_key.policingprofile_name),
         kMinLenPolicingProfileName, kMaxLenPolicingProfileName);
     if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_TRACE("Policingprofile Name is not valid(%d)", ret_val);
@@ -2993,8 +3075,8 @@ bool PolicingProfileEntryMoMgr::IsValidKey(void *ikey, uint64_t index) {
   }
   if (index == uudst::policingprofile_entry::kDbiSequenceNum) {
     if (!ValidateNumericRange(key->sequence_num,
-          kMinPolicingProfileSeqNum,
-          kMaxPolicingProfileSeqNum, true, true)) {
+                              kMinPolicingProfileSeqNum,
+                              kMaxPolicingProfileSeqNum, true, true)) {
       UPLL_LOG_DEBUG("Sequence number Syntax validation failed ");
       return false;
     }
@@ -3009,7 +3091,7 @@ upll_rc_t PolicingProfileEntryMoMgr::GetPolicingProfileEntryCtrlrKeyval(
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
   if (NULL == policingprofile_name || NULL == ctrlr_id ||
-     NULL != ppe_keyval) {
+      NULL != ppe_keyval) {
     return UPLL_RC_ERR_GENERIC;
   }
 
@@ -3019,7 +3101,7 @@ upll_rc_t PolicingProfileEntryMoMgr::GetPolicingProfileEntryCtrlrKeyval(
   }
 
   key_policingprofile_entry_t *key_policingprofie =
-    reinterpret_cast<key_policingprofile_entry_t *>(ppe_keyval->get_key());
+      reinterpret_cast<key_policingprofile_entry_t *>(ppe_keyval->get_key());
   uuu::upll_strncpy(
       key_policingprofie->policingprofile_key.policingprofile_name,
       policingprofile_name,
@@ -3037,8 +3119,8 @@ upll_rc_t PolicingProfileEntryMoMgr::PolicingProfileEntryCtrlrTblOper(
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *ppe_ckv = NULL;
   result_code = GetPolicingProfileEntryCtrlrKeyval(ppe_ckv,
-      policingprofile_name,
-      ctrlr_id);
+                                                   policingprofile_name,
+                                                   ctrlr_id);
   if (UPLL_RC_SUCCESS != result_code) {
     DELETE_IF_NOT_NULL(ppe_ckv);
     return result_code;
@@ -3064,7 +3146,7 @@ upll_rc_t PolicingProfileEntryMoMgr::PolicingProfileEntryCtrlrTblOper(
     }
     DbSubOp dbop = { kOpReadExist, kOpMatchCtrlr, kOpInOutNone };
     result_code = mgr->UpdateConfigDB(okey, dt_type, UNC_OP_READ, dmi, &dbop,
-      CTRLRTBL);
+                                      CTRLRTBL);
     if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
       UPLL_LOG_DEBUG("Delete in entry table");
       result_code = CtrlrTblDelete(ppe_ckv, dmi, dt_type);
@@ -3089,7 +3171,7 @@ upll_rc_t PolicingProfileEntryMoMgr::PolicingProfileEntryCtrlrTblOper(
   } else {
     result_code = UPLL_RC_ERR_NO_SUCH_OPERATION;
   }
-  DELETE_IF_NOT_NULL(ppe_ckv);  // COV RESOURCE LEAK FIX
+  DELETE_IF_NOT_NULL(ppe_ckv);  //  COV RESOURCE LEAK FIX
   return result_code;
 }
 
@@ -3122,14 +3204,14 @@ upll_rc_t PolicingProfileEntryMoMgr::DecrementRefCount(
       return UPLL_RC_ERR_GENERIC;
     }
     if (UNC_VF_VALID == temp_ppe_val->valid[UPLL_IDX_FLOWLIST_PPE ]) {
-     FlowListMoMgr *flowlist_mgr = reinterpret_cast<FlowListMoMgr *>
-      (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
-     if (NULL == flowlist_mgr) {
-       UPLL_LOG_DEBUG("flowlist_mgr is NULL");
-       DELETE_IF_NOT_NULL(temp_ckv);
-       return UPLL_RC_ERR_GENERIC;
-     }
-     result_code = flowlist_mgr->AddFlowListToController(
+      FlowListMoMgr *flowlist_mgr = reinterpret_cast<FlowListMoMgr *>
+          (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
+      if (NULL == flowlist_mgr) {
+        UPLL_LOG_DEBUG("flowlist_mgr is NULL");
+        DELETE_IF_NOT_NULL(temp_ckv);
+        return UPLL_RC_ERR_GENERIC;
+      }
+      result_code = flowlist_mgr->AddFlowListToController(
           reinterpret_cast<char *>(temp_ppe_val->flowlist), dmi,
           reinterpret_cast<char *>(ctrlr_id), dt_type, UNC_OP_DELETE);
       if (result_code != UPLL_RC_SUCCESS) {
@@ -3138,7 +3220,7 @@ upll_rc_t PolicingProfileEntryMoMgr::DecrementRefCount(
         }
         UPLL_LOG_DEBUG("AddFlowListToController failed err code(%d)",
                        result_code)
-        DELETE_IF_NOT_NULL(temp_ckv);
+            DELETE_IF_NOT_NULL(temp_ckv);
         return result_code;
       }
     }
@@ -3178,9 +3260,9 @@ upll_rc_t PolicingProfileEntryMoMgr::CtrlrTblDelete(
       return UPLL_RC_ERR_GENERIC;
     }
     if (UNC_VF_VALID == temp_ppe_val->valid[UPLL_IDX_FLOWLIST_PPE ]) {
-     FlowListMoMgr *flowlist_mgr = reinterpret_cast<FlowListMoMgr *>
-      (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
-     result_code = flowlist_mgr->AddFlowListToController(
+      FlowListMoMgr *flowlist_mgr = reinterpret_cast<FlowListMoMgr *>
+          (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
+      result_code = flowlist_mgr->AddFlowListToController(
           reinterpret_cast<char *>(temp_ppe_val->flowlist), dmi,
           reinterpret_cast<char *>(ctrlr_id), dt_type, UNC_OP_DELETE);
       if (result_code != UPLL_RC_SUCCESS) {
@@ -3190,7 +3272,7 @@ upll_rc_t PolicingProfileEntryMoMgr::CtrlrTblDelete(
         }
         UPLL_LOG_DEBUG("AddFlowListToController failed err code(%d)",
                        result_code)
-        DELETE_IF_NOT_NULL(temp_ckv);
+            DELETE_IF_NOT_NULL(temp_ckv);
         return result_code;
       }
     }
@@ -3199,7 +3281,7 @@ upll_rc_t PolicingProfileEntryMoMgr::CtrlrTblDelete(
   DELETE_IF_NOT_NULL(temp_ckv);
   DbSubOp dbop = { kOpNotRead, kOpMatchCtrlr, kOpInOutNone };
   result_code = UpdateConfigDB(ppe_ckv, dt_type, UNC_OP_DELETE, dmi, &dbop,
-      CTRLRTBL);
+                               CTRLRTBL);
   if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
     return UPLL_RC_SUCCESS;
   } else if (UPLL_RC_SUCCESS != result_code) {
@@ -3216,7 +3298,12 @@ upll_rc_t PolicingProfileEntryMoMgr::CtrlrTblCreate(
 
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutCs };
 
-  result_code = ReadConfigDB(ppe_ckv, dt_type, UNC_OP_READ, dbop, dmi, MAINTBL);
+  result_code = ReadConfigDB(ppe_ckv,
+                             dt_type,
+                             UNC_OP_READ,
+                             dbop,
+                             dmi,
+                             MAINTBL);
   if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
     UPLL_LOG_DEBUG("No entry in policingprofile entry maintbl");
     return UPLL_RC_SUCCESS;
@@ -3241,20 +3328,20 @@ upll_rc_t PolicingProfileEntryMoMgr::CtrlrTblCreate(
       return UPLL_RC_ERR_GENERIC;
     }
     if (UNC_VF_VALID == temp_ppe_val->valid[UPLL_IDX_FLOWLIST_PPE ]) {
-     FlowListMoMgr *flowlist_mgr = reinterpret_cast<FlowListMoMgr *>
-      (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
-     if (NULL == flowlist_mgr) {
-       UPLL_LOG_DEBUG("flowlist_mgr is NULL");
-       free(req_header);
-       return UPLL_RC_ERR_GENERIC;
-     }
-     result_code = flowlist_mgr->AddFlowListToController(
+      FlowListMoMgr *flowlist_mgr = reinterpret_cast<FlowListMoMgr *>
+          (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
+      if (NULL == flowlist_mgr) {
+        UPLL_LOG_DEBUG("flowlist_mgr is NULL");
+        free(req_header);
+        return UPLL_RC_ERR_GENERIC;
+      }
+      result_code = flowlist_mgr->AddFlowListToController(
           reinterpret_cast<char *>(temp_ppe_val->flowlist), dmi,
           reinterpret_cast<char *>(ctrlr_id), dt_type, UNC_OP_CREATE);
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("AddFlowListToController failed err code(%d)",
                        result_code)
-        free(req_header);
+            free(req_header);
         return result_code;
       }
     }
@@ -3266,97 +3353,75 @@ upll_rc_t PolicingProfileEntryMoMgr::CtrlrTblCreate(
       return result_code;
     }
     SET_USER_DATA_CTRLR(new_ppe, ctrlr_id);
-    DbSubOp dbop1 = { kOpReadSingle, kOpMatchCtrlr, kOpInOutNone };
-    result_code = ReadConfigDB(new_ppe, dt_type, UNC_OP_READ, dbop1, dmi,
-                                 CTRLRTBL);
-    if (UPLL_RC_SUCCESS == result_code) {
-      ppe_ckv = ppe_ckv->get_next_cfg_key_val();
-      DELETE_IF_NOT_NULL(new_ppe);
-      continue;
-    } else if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
-      UPLL_LOG_DEBUG("CtrlrTbl create failed %d", result_code);
-      free(req_header);
-      DELETE_IF_NOT_NULL(new_ppe);
-      return result_code;
-    }
     val_policingprofile_entry_ctrl_t *val_ctrlr =
-      reinterpret_cast<val_policingprofile_entry_ctrl_t*>(GetVal(new_ppe));
+        reinterpret_cast<val_policingprofile_entry_ctrl_t *>
+        (ConfigKeyVal::Malloc(
+                sizeof(val_policingprofile_entry_ctrl_t)));
     if (NULL == val_ctrlr) {
       free(req_header);
       DELETE_IF_NOT_NULL(new_ppe);
       return UPLL_RC_ERR_GENERIC;
     }
+    new_ppe->AppendCfgVal(IpctSt::kIpcInvalidStNum, val_ctrlr);
     val_policingprofile_entry_t *val =
-      reinterpret_cast<val_policingprofile_entry_t *>(GetVal(ppe_ckv));
+        reinterpret_cast<val_policingprofile_entry_t *>(GetVal(ppe_ckv));
     val_ctrlr->cs_row_status = (unc_keytype_configstatus_t)val->cs_row_status;
 
-    // capability check
-    ConfigKeyVal *temp_key = NULL;
-    result_code = GetChildConfigKey(temp_key, NULL);
-    if (UPLL_RC_SUCCESS != result_code) {
-      DELETE_IF_NOT_NULL(new_ppe);
-      free(req_header);
-      UPLL_LOG_DEBUG("GetChildConfigKey failed(%d)",result_code);
-      return result_code;
-    }
-
-    result_code = GetInstanceCount(temp_key,
-                                 reinterpret_cast<char*>(ctrlr_id),
-                                 dt_type,
-                                 &cur_instance_count,
-                                 dmi, CTRLRTBL);
-    DELETE_IF_NOT_NULL(temp_key);
-
-    if (UPLL_RC_SUCCESS != result_code) {
-      DELETE_IF_NOT_NULL(new_ppe);
-      free(req_header);
-      UPLL_LOG_DEBUG("GetInstanceCount failed(%d)",result_code);
-      return result_code;
-    }
-
+    //  capability check
     result_code = ValidateCapability(
-      req_header, ppe_ckv, reinterpret_cast<char *>(ctrlr_id));
+        req_header, ppe_ckv, reinterpret_cast<char *>(ctrlr_id));
     unc_keytype_ctrtype_t ctrlrtype = UNC_CT_UNKNOWN;
     uuc::CtrlrMgr *ctrlr_mgr = uuc::CtrlrMgr::GetInstance();
     if (result_code != UPLL_RC_SUCCESS) {
-      // Policingprofile is not supported for other than PFC Controller
-      // so skip adding entry for such sontroller in ctrlr table
+      //  Policingprofile is not supported for other than PFC Controller
+      //  so skip adding entry for such sontroller in ctrlr table
       DELETE_IF_NOT_NULL(new_ppe);
       if ((!ctrlr_mgr->GetCtrlrType(reinterpret_cast<char *>(ctrlr_id),
-                     dt_type, &ctrlrtype)) || (ctrlrtype != UNC_CT_PFC)) {
-          result_code = UPLL_RC_SUCCESS; 
-          UPLL_LOG_DEBUG("Controller type is  %d", ctrlrtype);
-          ppe_ckv = ppe_ckv->get_next_cfg_key_val();
-          continue;
-       }
-       free(req_header);
-       UPLL_LOG_DEBUG("Key not supported by controller");
-       return result_code;
+                                    dt_type,
+                                    &ctrlrtype)) || (ctrlrtype !=
+                                                     UNC_CT_PFC)) {
+        result_code = UPLL_RC_SUCCESS;
+        UPLL_LOG_DEBUG("Controller type is  %d", ctrlrtype);
+        ppe_ckv = ppe_ckv->get_next_cfg_key_val();
+        continue;
+      }
+      free(req_header);
+      UPLL_LOG_DEBUG("Key not supported by controller");
+      return result_code;
     }
 
     for (unsigned int loop = 0;
          loop < (sizeof(val_ctrlr->valid)/sizeof(val_ctrlr->valid[0]));
          loop++) {
       if (val->valid[loop] == UNC_VF_NOT_SUPPORTED)
-         val_ctrlr->valid[loop] = UNC_VF_INVALID;
+        val_ctrlr->valid[loop] = UNC_VF_INVALID;
       else
         val_ctrlr->valid[loop] = val->valid[loop];
-      UPLL_LOG_DEBUG("valid of %d - %d  ctrlrtbl - %d", loop,  val->valid[loop],
-                       val_ctrlr->valid[loop]);
+      UPLL_LOG_DEBUG("valid of %d - %d  ctrlrtbl - %d",
+                     loop,
+                     val->valid[loop],
+                     val_ctrlr->valid[loop]);
     }
-    //Audit
+    // Audit
     if (UPLL_DT_AUDIT == dt_type) {
       UPLL_LOG_DEBUG("Audit db setting cs");
       for (unsigned int loop = 0;
-         loop < (sizeof(val_ctrlr->valid)/sizeof(val_ctrlr->valid[0]));
-         loop++) {
-        val_ctrlr->cs_attr[loop] = (unc_keytype_configstatus_t)val->cs_attr[loop];
+           loop < (sizeof(val_ctrlr->valid)/sizeof(val_ctrlr->valid[0]));
+           loop++) {
+        val_ctrlr->cs_attr[loop] = (unc_keytype_configstatus_t)
+            val->cs_attr[loop];
       }
-      val_ctrlr->cs_row_status = (unc_keytype_configstatus_t)val->cs_row_status;
+      val_ctrlr->cs_row_status = (unc_keytype_configstatus_t)
+          val->cs_row_status;
     }
     result_code = UpdateConfigDB(new_ppe, dt_type, UNC_OP_CREATE, dmi,
-        CTRLRTBL);
+                                 CTRLRTBL);
     if (UPLL_RC_SUCCESS != result_code) {
+      if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code) {
+        ppe_ckv = ppe_ckv->get_next_cfg_key_val();
+        DELETE_IF_NOT_NULL(new_ppe);
+        continue;
+      }
       DELETE_IF_NOT_NULL(new_ppe);
       free(req_header);
       return result_code;
@@ -3369,7 +3434,7 @@ upll_rc_t PolicingProfileEntryMoMgr::CtrlrTblCreate(
 }
 
 upll_rc_t PolicingProfileEntryMoMgr::SetConsolidatedStatus(ConfigKeyVal *ikey,
-    DalDmlIntf *dmi) {
+                                                           DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *ckv = NULL;
@@ -3379,7 +3444,7 @@ upll_rc_t PolicingProfileEntryMoMgr::SetConsolidatedStatus(ConfigKeyVal *ikey,
     return result_code;
   }
   result_code = ReadConfigDB(ckv, UPLL_DT_RUNNING, UNC_OP_READ, dbop, dmi,
-      CTRLRTBL);
+                             CTRLRTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     delete ckv;
     return result_code;
@@ -3388,30 +3453,30 @@ upll_rc_t PolicingProfileEntryMoMgr::SetConsolidatedStatus(ConfigKeyVal *ikey,
   std::list < unc_keytype_configstatus_t > list_cs_row;
   val_policingprofile_entry_ctrl_t *val;
   for (unsigned int loop = 0; loop < sizeof(val->valid)/sizeof(val->valid[0]);
-      ++loop) {
+       ++loop) {
     std::list < unc_keytype_configstatus_t > list_attr;
     vec_attr.push_back(list_attr);
   }
   ConfigKeyVal *temp_ckv = ckv;
   for (; temp_ckv != NULL; temp_ckv = temp_ckv->get_next_cfg_key_val()) {
     val = reinterpret_cast<val_policingprofile_entry_ctrl_t *>
-                          (GetVal(temp_ckv));
+        (GetVal(temp_ckv));
     list_cs_row.push_back((unc_keytype_configstatus_t) val->cs_row_status);
     for (unsigned int loop = 0; loop < sizeof(val->valid)/
-        sizeof(val->valid[0]); ++loop) {
+         sizeof(val->valid[0]); ++loop) {
       vec_attr[loop].push_back((unc_keytype_configstatus_t)
-        val->cs_attr[loop]);
+                               val->cs_attr[loop]);
     }
   }
   val_policingprofile_entry_t *val_temp =
-    reinterpret_cast<val_policingprofile_entry_t *>(GetVal(ikey));
+      reinterpret_cast<val_policingprofile_entry_t *>(GetVal(ikey));
   val_temp->cs_row_status = GetConsolidatedCsStatus(list_cs_row);
   for (unsigned int loop = 0; loop < sizeof(val->valid)/
-      sizeof(val->valid[0]); ++loop) {
+       sizeof(val->valid[0]); ++loop) {
     val_temp->cs_attr[loop] = GetConsolidatedCsStatus(vec_attr[loop]);
   }
   result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_UPDATE, dmi,
-      MAINTBL);
+                               MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     return result_code;
   }
@@ -3428,7 +3493,8 @@ upll_rc_t PolicingProfileEntryMoMgr::ReadPolicingProfileEntry(
   const uint8_t *attrs = NULL;
   uint32_t max_attrs = 0;
   upll_rc_t result_code;
-  if (NULL == policingprofile_name || (!ctrlr_id) || (!dmi)) {  // FORWARD NULL
+  if (NULL == policingprofile_name || (!ctrlr_id) || (!dmi)) {
+    //  FORWARD NULL
     return UPLL_RC_ERR_GENERIC;
   }
   if (NULL != ppe_ckv) {
@@ -3440,7 +3506,7 @@ upll_rc_t PolicingProfileEntryMoMgr::ReadPolicingProfileEntry(
     return result_code;
   }
   key_policingprofile_entry_t *key =
-    reinterpret_cast<key_policingprofile_entry_t *>(ppe_ckv->get_key());
+      reinterpret_cast<key_policingprofile_entry_t *>(ppe_ckv->get_key());
   if (!key) {
     delete ppe_ckv;
     return UPLL_RC_ERR_GENERIC;
@@ -3451,7 +3517,12 @@ upll_rc_t PolicingProfileEntryMoMgr::ReadPolicingProfileEntry(
       (kMaxLenPolicingProfileName + 1));
   key->sequence_num = seq_num;
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutCs };
-  result_code = ReadConfigDB(ppe_ckv, dt_type, UNC_OP_READ, dbop, dmi, MAINTBL);
+  result_code = ReadConfigDB(ppe_ckv,
+                             dt_type,
+                             UNC_OP_READ,
+                             dbop,
+                             dmi,
+                             MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     delete ppe_ckv;
     return result_code;
@@ -3467,100 +3538,102 @@ upll_rc_t PolicingProfileEntryMoMgr::ReadPolicingProfileEntry(
     SET_USER_DATA_CTRLR(ctrlr_ckv, ctrlr_id);
     DbSubOp dbop1 = { kOpReadSingle, kOpMatchCtrlr, kOpInOutCs };
     result_code = ReadConfigDB(ctrlr_ckv, dt_type, UNC_OP_READ, dbop1, dmi,
-        CTRLRTBL);
+                               CTRLRTBL);
     if (UPLL_RC_SUCCESS != result_code) {
       delete ppe_ckv;
       delete ctrlr_ckv;
       return result_code;
     }
     val_policingprofile_entry_t *val =
-      reinterpret_cast<val_policingprofile_entry_t *>(GetVal(temp_ckv));
+        reinterpret_cast<val_policingprofile_entry_t *>(GetVal(temp_ckv));
     val_policingprofile_entry_ctrl_t *ctrl_val =
-      reinterpret_cast<val_policingprofile_entry_ctrl_t *>(GetVal(ctrlr_ckv));
+        reinterpret_cast<val_policingprofile_entry_ctrl_t *>
+        (GetVal(ctrlr_ckv));
     val->cs_row_status = ctrl_val->cs_row_status;
     bool ret_code = false;
 
     if ((opt1 == UNC_OPT1_DETAIL) && (dt_type == UPLL_DT_STATE)) {
       ret_code = GetStateCapability(ctrlr_id, UNC_KT_POLICING_PROFILE_ENTRY,
-                                      &max_attrs, &attrs);
-      if (!ret_code ) {
-        UPLL_LOG_DEBUG("GetStateCapability Is failed in PolicingProfileEntry %d",
-                    ret_code);
+                                    &max_attrs, &attrs);
+      if (!ret_code) {
+        UPLL_LOG_DEBUG("GetStateCapability Is failed in"
+                       "PolicingProfileEntry %d",
+                       ret_code);
         return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
       }
-      if (max_attrs>0) {
+      if (max_attrs > 0) {
         result_code =  ValPolicingProfileEntryAttributeSupportCheck(
-                                     val, attrs);
+            val, attrs);
       }
       for (unsigned int loop = 0; loop <
-          sizeof(val->valid[loop]/sizeof(val->valid[0])); loop++) {
+           sizeof(val->valid[loop]/sizeof(val->valid[0])); loop++) {
         val->cs_attr[loop] = ctrl_val->cs_attr[loop];
       }
     } else {
       for (unsigned int loop = 0; loop <
-          sizeof(val->valid[loop]/sizeof(val->valid[0])); loop++) {
+           sizeof(val->valid[loop]/sizeof(val->valid[0])); loop++) {
         val->valid[loop] = ctrl_val->valid[loop];
         val->cs_attr[loop] = ctrl_val->cs_attr[loop];
       }
     }
 
-  if (val->valid[UPLL_IDX_FLOWLIST_PPE] != UNC_VF_VALID) {
+    if (val->valid[UPLL_IDX_FLOWLIST_PPE] != UNC_VF_VALID) {
       uuu::upll_strncpy(val->flowlist,
-                      "\0", (kMaxLenFlowListName + 1));
-  }
-  if (val->valid[UPLL_IDX_CBS_PPE] != UNC_VF_VALID) {
-    val->cbs = 0;
-  }
-  if (val->valid[UPLL_IDX_PIR_PPE] != UNC_VF_VALID) {
-    val->pir = 0;
-  }
-  if (val->valid[UPLL_IDX_PBS_PPE] != UNC_VF_VALID) {
-    val->pbs = 0;
-  }
-  if (val->valid[UPLL_IDX_GREEN_ACTION_PPE] != UNC_VF_VALID) {
-    val->green_action = 0;
-  }
-  if (val->valid[UPLL_IDX_GREEN_PRIORITY_PPE] != UNC_VF_VALID) {
-    val->green_action_priority = 0;
-  }
-  if (val->valid[UPLL_IDX_GREEN_DSCP_PPE] != UNC_VF_VALID) {
-    val->green_action_dscp = 0;
-  }
-  if (val->valid[UPLL_IDX_GREEN_DROP_PPE] != UNC_VF_VALID) {
-    val->green_action_drop_precedence = 0;
-  }
+                        "\0", (kMaxLenFlowListName + 1));
+    }
+    if (val->valid[UPLL_IDX_CBS_PPE] != UNC_VF_VALID) {
+      val->cbs = 0;
+    }
+    if (val->valid[UPLL_IDX_PIR_PPE] != UNC_VF_VALID) {
+      val->pir = 0;
+    }
+    if (val->valid[UPLL_IDX_PBS_PPE] != UNC_VF_VALID) {
+      val->pbs = 0;
+    }
+    if (val->valid[UPLL_IDX_GREEN_ACTION_PPE] != UNC_VF_VALID) {
+      val->green_action = 0;
+    }
+    if (val->valid[UPLL_IDX_GREEN_PRIORITY_PPE] != UNC_VF_VALID) {
+      val->green_action_priority = 0;
+    }
+    if (val->valid[UPLL_IDX_GREEN_DSCP_PPE] != UNC_VF_VALID) {
+      val->green_action_dscp = 0;
+    }
+    if (val->valid[UPLL_IDX_GREEN_DROP_PPE] != UNC_VF_VALID) {
+      val->green_action_drop_precedence = 0;
+    }
 
-  if (val->valid[UPLL_IDX_YELLOW_ACTION_PPE] != UNC_VF_VALID) {
-    val->yellow_action = 0;
-  }
+    if (val->valid[UPLL_IDX_YELLOW_ACTION_PPE] != UNC_VF_VALID) {
+      val->yellow_action = 0;
+    }
 
-  if (val->valid[UPLL_IDX_YELLOW_PRIORITY_PPE] != UNC_VF_VALID) {
-    val->yellow_action_priority = 0;
-  }
+    if (val->valid[UPLL_IDX_YELLOW_PRIORITY_PPE] != UNC_VF_VALID) {
+      val->yellow_action_priority = 0;
+    }
 
-  if (val->valid[UPLL_IDX_YELLOW_DSCP_PPE] != UNC_VF_VALID) {
-    val->yellow_action_dscp = 0;
-  }
+    if (val->valid[UPLL_IDX_YELLOW_DSCP_PPE] != UNC_VF_VALID) {
+      val->yellow_action_dscp = 0;
+    }
 
-  if (val->valid[UPLL_IDX_YELLOW_DROP_PPE] != UNC_VF_VALID) {
-    val->yellow_action_drop_precedence = 0;
-  }
+    if (val->valid[UPLL_IDX_YELLOW_DROP_PPE] != UNC_VF_VALID) {
+      val->yellow_action_drop_precedence = 0;
+    }
 
-  if (val->valid[UPLL_IDX_RED_ACTION_PPE] != UNC_VF_VALID) {
-    val->red_action = 0;
-  }
+    if (val->valid[UPLL_IDX_RED_ACTION_PPE] != UNC_VF_VALID) {
+      val->red_action = 0;
+    }
 
-  if (val->valid[UPLL_IDX_RED_PRIORITY_PPE] != UNC_VF_VALID) {
-    val->red_action_priority = 0;
-  }
+    if (val->valid[UPLL_IDX_RED_PRIORITY_PPE] != UNC_VF_VALID) {
+      val->red_action_priority = 0;
+    }
 
-  if (val->valid[UPLL_IDX_RED_DSCP_PPE] != UNC_VF_VALID) {
-    val->red_action_dscp = 0;
-  }
+    if (val->valid[UPLL_IDX_RED_DSCP_PPE] != UNC_VF_VALID) {
+      val->red_action_dscp = 0;
+    }
 
-  if (val->valid[UPLL_IDX_RED_DROP_PPE] != UNC_VF_VALID) {
-    val->red_action_drop_precedence = 0;
-  }
+    if (val->valid[UPLL_IDX_RED_DROP_PPE] != UNC_VF_VALID) {
+      val->red_action_drop_precedence = 0;
+    }
 
     temp_ckv = temp_ckv->get_next_cfg_key_val();
     delete ctrlr_ckv;
@@ -3569,9 +3642,9 @@ upll_rc_t PolicingProfileEntryMoMgr::ReadPolicingProfileEntry(
 }
 
 upll_rc_t PolicingProfileEntryMoMgr::GetValid(void *val, uint64_t index,
-    uint8_t *&valid,
-    upll_keytype_datatype_t dt_type,
-    MoMgrTables tbl) {
+                                              uint8_t *&valid,
+                                              upll_keytype_datatype_t dt_type,
+                                              MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
   val_policingprofile_entry_t *val_ppe = NULL;
   val_policingprofile_entry_ctrl_t *val_ppe_ctrl = NULL;
@@ -3588,93 +3661,93 @@ upll_rc_t PolicingProfileEntryMoMgr::GetValid(void *val, uint64_t index,
   switch (index) {
     case uudst::policingprofile_entry::kDbiFlowlist:
       valid  = GET_VALID_MAINCTRL(tbl, val_ppe_ctrl, val_ppe,
-                                   UPLL_IDX_FLOWLIST_PPE);
-        break;
+                                  UPLL_IDX_FLOWLIST_PPE);
+      break;
 
     case uudst::policingprofile_entry::kDbiRate:
       valid  = GET_VALID_MAINCTRL(tbl, val_ppe_ctrl, val_ppe,
-                                   UPLL_IDX_RATE_PPE);
-        break;
+                                  UPLL_IDX_RATE_PPE);
+      break;
 
     case uudst::policingprofile_entry::kDbiCir:
       valid  = GET_VALID_MAINCTRL(tbl, val_ppe_ctrl, val_ppe,
-                                   UPLL_IDX_CIR_PPE);
-        break;
+                                  UPLL_IDX_CIR_PPE);
+      break;
 
     case uudst::policingprofile_entry::kDbiCbs:
       valid  = GET_VALID_MAINCTRL(tbl, val_ppe_ctrl, val_ppe,
-                                   UPLL_IDX_CBS_PPE);
-        break;
+                                  UPLL_IDX_CBS_PPE);
+      break;
 
     case uudst::policingprofile_entry::kDbiPir:
       valid  = GET_VALID_MAINCTRL(tbl, val_ppe_ctrl, val_ppe,
-                                   UPLL_IDX_PIR_PPE);
-        break;
+                                  UPLL_IDX_PIR_PPE);
+      break;
 
     case uudst::policingprofile_entry::kDbiPbs:
       valid  = GET_VALID_MAINCTRL(tbl, val_ppe_ctrl, val_ppe,
-                                   UPLL_IDX_PBS_PPE);
-        break;
+                                  UPLL_IDX_PBS_PPE);
+      break;
 
     case uudst::policingprofile_entry::kDbiGreenAction:
       valid  = GET_VALID_MAINCTRL(tbl, val_ppe_ctrl, val_ppe,
-                                   UPLL_IDX_GREEN_ACTION_PPE);
-        break;
+                                  UPLL_IDX_GREEN_ACTION_PPE);
+      break;
 
     case uudst::policingprofile_entry::kDbiGreenPriority:
       valid  = GET_VALID_MAINCTRL(tbl, val_ppe_ctrl, val_ppe,
-                                   UPLL_IDX_GREEN_PRIORITY_PPE);
-        break;
+                                  UPLL_IDX_GREEN_PRIORITY_PPE);
+      break;
 
     case uudst::policingprofile_entry::kDbiGreenDscp:
       valid  = GET_VALID_MAINCTRL(tbl, val_ppe_ctrl, val_ppe,
-                                   UPLL_IDX_GREEN_DSCP_PPE);
-        break;
+                                  UPLL_IDX_GREEN_DSCP_PPE);
+      break;
 
     case uudst::policingprofile_entry::kDbiGreenDrop:
       valid  = GET_VALID_MAINCTRL(tbl, val_ppe_ctrl, val_ppe,
-                                   UPLL_IDX_GREEN_DROP_PPE);
-        break;
+                                  UPLL_IDX_GREEN_DROP_PPE);
+      break;
 
     case uudst::policingprofile_entry::kDbiYellowAction:
       valid  = GET_VALID_MAINCTRL(tbl, val_ppe_ctrl, val_ppe,
-                                   UPLL_IDX_YELLOW_ACTION_PPE);
-        break;
+                                  UPLL_IDX_YELLOW_ACTION_PPE);
+      break;
 
     case uudst::policingprofile_entry::kDbiYellowPriority:
       valid  = GET_VALID_MAINCTRL(tbl, val_ppe_ctrl, val_ppe,
-                                   UPLL_IDX_YELLOW_PRIORITY_PPE);
-        break;
+                                  UPLL_IDX_YELLOW_PRIORITY_PPE);
+      break;
 
     case uudst::policingprofile_entry::kDbiYellowDscp:
       valid  = GET_VALID_MAINCTRL(tbl, val_ppe_ctrl, val_ppe,
-                                   UPLL_IDX_YELLOW_DSCP_PPE);
-        break;
+                                  UPLL_IDX_YELLOW_DSCP_PPE);
+      break;
 
     case uudst::policingprofile_entry::kDbiYellowDrop:
       valid  = GET_VALID_MAINCTRL(tbl, val_ppe_ctrl, val_ppe,
-                                   UPLL_IDX_YELLOW_DROP_PPE);
-        break;
+                                  UPLL_IDX_YELLOW_DROP_PPE);
+      break;
 
     case uudst::policingprofile_entry::kDbiRedAction:
       valid  = GET_VALID_MAINCTRL(tbl, val_ppe_ctrl, val_ppe,
-                                   UPLL_IDX_RED_ACTION_PPE);
-        break;
+                                  UPLL_IDX_RED_ACTION_PPE);
+      break;
 
     case uudst::policingprofile_entry::kDbiRedPriority:
       valid  = GET_VALID_MAINCTRL(tbl, val_ppe_ctrl, val_ppe,
-                                   UPLL_IDX_RED_PRIORITY_PPE);
-        break;
+                                  UPLL_IDX_RED_PRIORITY_PPE);
+      break;
 
     case uudst::policingprofile_entry::kDbiRedDscp:
       valid  = GET_VALID_MAINCTRL(tbl, val_ppe_ctrl, val_ppe,
-                                   UPLL_IDX_RED_DSCP_PPE);
-        break;
+                                  UPLL_IDX_RED_DSCP_PPE);
+      break;
 
     case uudst::policingprofile_entry::kDbiRedDrop:
       valid  = GET_VALID_MAINCTRL(tbl, val_ppe_ctrl, val_ppe,
-                                   UPLL_IDX_RED_DROP_PPE);
-        break;
+                                  UPLL_IDX_RED_DROP_PPE);
+      break;
 
     default :
       valid = NULL;
@@ -3684,7 +3757,7 @@ upll_rc_t PolicingProfileEntryMoMgr::GetValid(void *val, uint64_t index,
 }
 
 upll_rc_t PolicingProfileEntryMoMgr::IsFlowlistConfigured(
-  const char* flowlist_name, DalDmlIntf *dmi) {
+    const char* flowlist_name, DalDmlIntf *dmi) {
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
   ConfigKeyVal *ckv = NULL;
   result_code = GetChildConfigKey(ckv, NULL);
@@ -3695,7 +3768,7 @@ upll_rc_t PolicingProfileEntryMoMgr::IsFlowlistConfigured(
       reinterpret_cast<val_policingprofile_entry_t*>
       (ConfigKeyVal::Malloc(sizeof(val_policingprofile_entry_t)));
   uuu::upll_strncpy(ppe_val->flowlist, flowlist_name,
-      (kMaxLenFlowListName + 1));
+                    (kMaxLenFlowListName + 1));
   ppe_val->valid[UPLL_IDX_POLICERNAME_PM] = UNC_VF_VALID;
   ckv->AppendCfgVal(IpctSt::kIpcStValPolicingprofileEntry, ppe_val);
   DbSubOp dbop = {kOpReadMultiple, kOpMatchNone, kOpInOutNone};
@@ -3734,7 +3807,7 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidateMessage(IpcReqRespHeader *req,
 
   if (UNC_KT_POLICING_PROFILE_ENTRY != key->get_key_type()) {
     UPLL_LOG_DEBUG("Received keytype (%d) is not KT_POLICINGPROFILE_ENTRY!!",
-        key->get_key_type());
+                   key->get_key_type());
     return UPLL_RC_ERR_BAD_REQUEST;
   }
 
@@ -3751,8 +3824,8 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidateMessage(IpcReqRespHeader *req,
   if (UPLL_RC_SUCCESS !=
       (rt_code = ValidatePolicingProfileEntryKey(key, req->operation))) {
     UPLL_LOG_DEBUG("KT_POLICING_PROFILE_ENTRY key structure syntax "
-                    "validation failed: Err code-%d",
-                     rt_code);
+                   "validation failed: Err code-%d",
+                   rt_code);
     return rt_code;
   }
 
@@ -3787,28 +3860,31 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidatePolicingProfileEntryKey(
 
   rt_code = ValidateKey(
       reinterpret_cast<char *>(key_policingprofile_entry->
-        policingprofile_key.policingprofile_name),
-        kMinLenPolicingProfileName, kMaxLenPolicingProfileName);
+                               policingprofile_key.policingprofile_name),
+      kMinLenPolicingProfileName, kMaxLenPolicingProfileName);
 
   if (UPLL_RC_SUCCESS != rt_code) {
     UPLL_LOG_DEBUG("PolicingProfile Name(%s) syntax validation failed: "
-        "err code - %d", key_policingprofile_entry->policingprofile_key.
-        policingprofile_name , rt_code);
+                   "err code - %d",
+                   key_policingprofile_entry->policingprofile_key.
+                   policingprofile_name , rt_code);
     return rt_code;
   }
 
   if ((op != UNC_OP_READ_SIBLING_COUNT) &&
       (op != UNC_OP_READ_SIBLING_BEGIN)) {
-   /** when policingprofile name is set to "flood",
-    *  seq_num should be set as 1 */
-    if (strcmp(reinterpret_cast<char *>(key_policingprofile_entry->
-               policingprofile_key.policingprofile_name), "flood") == 0) {
+    /** when policingprofile name is set to "flood",
+     *  seq_num should be set as 1 */
+    if (strcmp(reinterpret_cast<char *>(
+                key_policingprofile_entry->
+                policingprofile_key.policingprofile_name),
+            "flood") == 0) {
       if (key_policingprofile_entry->sequence_num == 1) {
         UPLL_LOG_DEBUG("valid sequence_num filled for profile_name-flood");
         return UPLL_RC_SUCCESS;
       } else {
         UPLL_LOG_DEBUG("Error Invalid sequence_num for policing name-flood(%d)",
-            key_policingprofile_entry->sequence_num);
+                       key_policingprofile_entry->sequence_num);
         return UPLL_RC_ERR_CFG_SEMANTIC;
       }
     }
@@ -3817,14 +3893,14 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidatePolicingProfileEntryKey(
                               kMinPolicingProfileSeqNum,
                               kMaxPolicingProfileSeqNum, true, true)) {
       UPLL_LOG_DEBUG("SeqNum(%d) syntax validation failed: err code - %d",
-                      key_policingprofile_entry->sequence_num, rt_code);
+                     key_policingprofile_entry->sequence_num, rt_code);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else {
     if (key_policingprofile_entry->sequence_num) {
-      // reset the sequence number
-      // for sibling read and count
-      // operation
+      //  reset the sequence number
+      //  for sibling read and count
+      //  operation
       key_policingprofile_entry->sequence_num = 0;
     }
   }
@@ -3868,41 +3944,25 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidatePolicingprofileEntryVal(
 }
 
 upll_rc_t PolicingProfileEntryMoMgr::UpdateMo(IpcReqRespHeader *req,
-                              ConfigKeyVal *ikey,
-                              DalDmlIntf *dmi) {
+                                              ConfigKeyVal *ikey,
+                                              DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
 
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
   if (NULL == ikey || NULL == req || !(ikey->get_key())) {
-     UPLL_LOG_ERROR("Given Input is Empty");
-     return UPLL_RC_ERR_GENERIC;
+    UPLL_LOG_ERROR("Given Input is Empty");
+    return UPLL_RC_ERR_GENERIC;
   }
-  UPLL_LOG_ERROR("UpdateMo for %d", ikey->get_key_type());
+  UPLL_LOG_TRACE("UpdateMo for %d", ikey->get_key_type());
   result_code = ValidateMessage(req, ikey);
   if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_ERROR("Validation Message is Failed ");
-      return result_code;
-  }
-  ConfigKeyVal *okey = NULL;
-  result_code = GetChildConfigKey(okey, ikey);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("GetChildConfigKey Failed %d", result_code);
+    UPLL_LOG_ERROR("Validation Message is Failed ");
     return result_code;
   }
-  DbSubOp dbop = {kOpReadSingle, kOpMatchNone,
-    kOpInOutCtrlr | kOpInOutDomain | kOpInOutFlag};
-  result_code = ReadConfigDB(okey, req->datatype, UNC_OP_READ,
-                             dbop, dmi, MAINTBL);
-  if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_ERROR("Record does Not Exists");
-      delete okey;
-      return result_code;
-  }
-  delete okey;
   result_code = ValidateAttribute(ikey, dmi, req);
   if (UPLL_RC_SUCCESS  != result_code) {
-      UPLL_LOG_ERROR("Validate Attribute is Failed");
-      return result_code;
+    UPLL_LOG_ERROR("Validate Attribute is Failed");
+    return result_code;
   }
   DbSubOp dbop1 = {kOpNotRead, kOpMatchNone, kOpInOutFlag};
   result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_UPDATE,
@@ -3933,21 +3993,16 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
     return result_code;
   }
 
-  result_code = SetRenameFlag(ikey, dmi, req);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("SetRenameFlag failed %d", result_code);
-    return result_code;
-  }
   return result_code;
 }
 
 upll_rc_t PolicingProfileEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
-    DalDmlIntf *dmi,
-    IpcReqRespHeader *req) {
+                                                   DalDmlIntf *dmi,
+                                                   IpcReqRespHeader *req) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_policingprofile_entry_t *val_ppe = reinterpret_cast
-    <val_policingprofile_entry_t *>(GetVal(ikey));
+      <val_policingprofile_entry_t *>(GetVal(ikey));
   if (!val_ppe) {
     UPLL_LOG_DEBUG("Val is NULL");
     return UPLL_RC_ERR_GENERIC;
@@ -3960,8 +4015,8 @@ upll_rc_t PolicingProfileEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
       return result_code;
     }
     MoMgrImpl *mgr =
-      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_POLICING_PROFILE)));
+        reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                    UNC_KT_POLICING_PROFILE)));
     if (!mgr) {
       UPLL_LOG_DEBUG("mgr is NULL");
       DELETE_IF_NOT_NULL(pkey);
@@ -3976,19 +4031,19 @@ upll_rc_t PolicingProfileEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
     }
     UPLL_LOG_DEBUG("Flag from parent : %d", rename);
     DELETE_IF_NOT_NULL(pkey);
-    // Check flowlist is renamed
+    //  Check flowlist is renamed
     if ((UNC_VF_VALID == val_ppe->valid[UPLL_IDX_FLOWLIST_PPE]) &&
         ((UNC_OP_CREATE == req->operation))) {
       ConfigKeyVal *fl_ckv = NULL;
       result_code = GetFlowlistConfigKey(reinterpret_cast<const char *>
-          (val_ppe->flowlist), fl_ckv, dmi);
+                                         (val_ppe->flowlist), fl_ckv, dmi);
       if (UPLL_RC_SUCCESS != result_code) {
         UPLL_LOG_DEBUG("GetFlowlistConfigKey failed %d", result_code);
         return result_code;
       }
       MoMgrImpl *fl_mgr =
-      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_FLOWLIST)));
+          reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                      UNC_KT_FLOWLIST)));
       if (NULL == fl_mgr) {
         UPLL_LOG_DEBUG("fl_mgr is NULL");
         DELETE_IF_NOT_NULL(fl_ckv);
@@ -4001,7 +4056,8 @@ upll_rc_t PolicingProfileEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
         return result_code;
       }
       if (fl_rename & 0x01) {
-        rename |= FLOWLIST_RENAME;  // TODO Check for correct flag value
+        rename |= FLOWLIST_RENAME;  // TODO(upll) :
+                                    // Check for correct flag value
       }
       DELETE_IF_NOT_NULL(fl_ckv);
     }
@@ -4016,14 +4072,14 @@ upll_rc_t PolicingProfileEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
     if (UNC_VF_VALID == val_ppe->valid[UPLL_IDX_FLOWLIST_PPE]) {
       ConfigKeyVal *fl_ckv = NULL;
       result_code = GetFlowlistConfigKey(reinterpret_cast<const char *>
-          (val_ppe->flowlist), fl_ckv, dmi);
+                                         (val_ppe->flowlist), fl_ckv, dmi);
       if (UPLL_RC_SUCCESS != result_code) {
         UPLL_LOG_DEBUG("GetFlowlistConfigKey failed %d", result_code);
         return result_code;
       }
       MoMgrImpl *fl_mgr =
-      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_FLOWLIST)));
+          reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                      UNC_KT_FLOWLIST)));
       if (NULL == fl_mgr) {
         UPLL_LOG_DEBUG("fl_mgr is NULL");
         DELETE_IF_NOT_NULL(fl_ckv);
@@ -4036,14 +4092,16 @@ upll_rc_t PolicingProfileEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
         return result_code;
       }
       if (fl_rename & 0x01) {
-        rename |= FLOWLIST_RENAME;  // TODO Check for correct flag value
+        rename |= FLOWLIST_RENAME;  // TODO(upll) : Check for correct
+        // flag value
       } else {
         rename = rename & NO_FLOWLIST_RENAME;
       }
       DELETE_IF_NOT_NULL(fl_ckv);
     } else if (UNC_VF_VALID_NO_VALUE == val_ppe->valid
                [UPLL_IDX_FLOWLIST_PPE]) {
-       rename |= ~FLOWLIST_RENAME; // TODO Check for correct flag value. No rename flowlist value should be set
+      rename |= ~FLOWLIST_RENAME;  // TODO(upll) : Check for correct flag value.
+      //  No rename flowlist value should be set
     }
     SET_USER_DATA_FLAGS(ikey, rename);
   }
@@ -4051,13 +4109,13 @@ upll_rc_t PolicingProfileEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
 }
 
 upll_rc_t PolicingProfileEntryMoMgr::GetFlowlistConfigKey(
-        const char *flowlist_name, ConfigKeyVal *&okey,
-        DalDmlIntf *dmi) {
+    const char *flowlist_name, ConfigKeyVal *&okey,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
   MoMgrImpl *mgr =
       reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_FLOWLIST)));
+                  UNC_KT_FLOWLIST)));
   result_code = mgr->GetChildConfigKey(okey, NULL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("GetChildConfigKey failed %d", result_code);
@@ -4066,8 +4124,8 @@ upll_rc_t PolicingProfileEntryMoMgr::GetFlowlistConfigKey(
   key_flowlist_t *okey_key = reinterpret_cast<key_flowlist_t *>
       (okey->get_key());
   uuu::upll_strncpy(okey_key->flowlist_name,
-        flowlist_name,
-        (kMaxLenFlowListName+1));
+                    flowlist_name,
+                    (kMaxLenFlowListName+1));
   return UPLL_RC_SUCCESS;
 }
 
@@ -4077,7 +4135,7 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidatePolicingProfileName(
   UPLL_FUNC_TRACE;
   upll_rc_t rt_code = UPLL_RC_ERR_GENERIC;
 
-  // if policing profile is applied in policing map return error 
+  //  if policing profile is applied in policing map return error
   if (req->operation == UNC_OP_CREATE) {
     rt_code = ValidatePolicingProfileEntryInPolicingMap(ikey, dmi, req);
     if (rt_code != UPLL_RC_SUCCESS) {
@@ -4085,44 +4143,6 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidatePolicingProfileName(
       return rt_code;
     }
   }
-  /* validate policingprofile name */
-  key_policingprofile_entry_t *ppe_key =reinterpret_cast
-    <key_policingprofile_entry_t *>(ikey->get_key());
-
-  /** check policingprofile_name exists in KT_POLICINGPROFILE table */
-  MoMgrImpl *mgr =
-    reinterpret_cast<MoMgrImpl *>(const_cast<MoManager*>(GetMoManager(
-            UNC_KT_POLICING_PROFILE)));
-  if (NULL == mgr) {
-    return UPLL_RC_ERR_GENERIC;
-  }
-  ConfigKeyVal *pp_ckv = NULL;
-  rt_code = mgr->GetChildConfigKey(pp_ckv, NULL);
-  if (UPLL_RC_SUCCESS != rt_code) {
-    UPLL_LOG_DEBUG("GetChildConfigKey fails %d", rt_code);
-    return rt_code;
-  }
-  key_policingprofile_t *pp_key = reinterpret_cast<key_policingprofile_t *>
-      (pp_ckv->get_key());
-  if (NULL == pp_key) {
-    UPLL_LOG_DEBUG("PolicingProfile key is NULL");
-    delete pp_ckv;
-    return UPLL_RC_ERR_GENERIC;
-  }
-  uuu::upll_strncpy(pp_key->policingprofile_name,
-    ppe_key->policingprofile_key.policingprofile_name,
-    kMaxLenPolicingProfileName+1);
-
-  rt_code = mgr->UpdateConfigDB(pp_ckv, req->datatype,
-                UNC_OP_READ, dmi);
-
-  if (rt_code != UPLL_RC_ERR_INSTANCE_EXISTS) {
-    UPLL_LOG_DEBUG("policingprofile name does not exists in "
-        "KT_POLICINGPROFILE table");
-    delete pp_ckv;
-    return UPLL_RC_ERR_PARENT_DOES_NOT_EXIST;
-  }
-  delete pp_ckv;
   return UPLL_RC_SUCCESS;
 }
 
@@ -4133,7 +4153,7 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidatePolicingProfileEntryValue(
   upll_rc_t rt_code = UPLL_RC_ERR_GENERIC;
   bool check = false;
   val_policingprofile_entry_t *val_ppe = reinterpret_cast
-    <val_policingprofile_entry_t *>(GetVal(ikey));
+      <val_policingprofile_entry_t *>(GetVal(ikey));
 
   if (val_ppe != NULL) {
     rt_code = ValidateFlowList(ikey, dmi, req);
@@ -4144,64 +4164,71 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidatePolicingProfileEntryValue(
     uint32_t operation = req->operation;
     if (UNC_OP_CREATE == operation) {
       if ((val_ppe->valid[UPLL_IDX_FLOWLIST_PPE] == UNC_VF_VALID)
-      || (val_ppe->valid[UPLL_IDX_RATE_PPE] == UNC_VF_VALID)
-      || (val_ppe->valid[UPLL_IDX_CIR_PPE] == UNC_VF_VALID)
-      || (val_ppe->valid[UPLL_IDX_CBS_PPE] == UNC_VF_VALID)
-      || (val_ppe->valid[UPLL_IDX_PIR_PPE] == UNC_VF_VALID)
-      || (val_ppe->valid[UPLL_IDX_PBS_PPE] == UNC_VF_VALID)
-      || (val_ppe->valid[UPLL_IDX_GREEN_ACTION_PPE] == UNC_VF_VALID)
-      || (val_ppe->valid[UPLL_IDX_GREEN_PRIORITY_PPE] == UNC_VF_VALID)
-      || (val_ppe->valid[UPLL_IDX_GREEN_DSCP_PPE] == UNC_VF_VALID)
-      || (val_ppe->valid[UPLL_IDX_GREEN_DROP_PPE] == UNC_VF_VALID)
-      || (val_ppe->valid[UPLL_IDX_YELLOW_ACTION_PPE] == UNC_VF_VALID)
-      || (val_ppe->valid[UPLL_IDX_YELLOW_PRIORITY_PPE] == UNC_VF_VALID)
-      || (val_ppe->valid[UPLL_IDX_YELLOW_DSCP_PPE] == UNC_VF_VALID)
-      || (val_ppe->valid[UPLL_IDX_YELLOW_DROP_PPE] == UNC_VF_VALID)
-      || (val_ppe->valid[UPLL_IDX_RED_ACTION_PPE] == UNC_VF_VALID)
-      || (val_ppe->valid[UPLL_IDX_RED_PRIORITY_PPE] == UNC_VF_VALID)
-      || (val_ppe->valid[UPLL_IDX_RED_DSCP_PPE] == UNC_VF_VALID)
-      || (val_ppe->valid[UPLL_IDX_RED_DROP_PPE] == UNC_VF_VALID)) {
+          || (val_ppe->valid[UPLL_IDX_RATE_PPE] == UNC_VF_VALID)
+          || (val_ppe->valid[UPLL_IDX_CIR_PPE] == UNC_VF_VALID)
+          || (val_ppe->valid[UPLL_IDX_CBS_PPE] == UNC_VF_VALID)
+          || (val_ppe->valid[UPLL_IDX_PIR_PPE] == UNC_VF_VALID)
+          || (val_ppe->valid[UPLL_IDX_PBS_PPE] == UNC_VF_VALID)
+          || (val_ppe->valid[UPLL_IDX_GREEN_ACTION_PPE] == UNC_VF_VALID)
+          || (val_ppe->valid[UPLL_IDX_GREEN_PRIORITY_PPE] == UNC_VF_VALID)
+          || (val_ppe->valid[UPLL_IDX_GREEN_DSCP_PPE] == UNC_VF_VALID)
+          || (val_ppe->valid[UPLL_IDX_GREEN_DROP_PPE] == UNC_VF_VALID)
+          || (val_ppe->valid[UPLL_IDX_YELLOW_ACTION_PPE] == UNC_VF_VALID)
+          || (val_ppe->valid[UPLL_IDX_YELLOW_PRIORITY_PPE] == UNC_VF_VALID)
+          || (val_ppe->valid[UPLL_IDX_YELLOW_DSCP_PPE] == UNC_VF_VALID)
+          || (val_ppe->valid[UPLL_IDX_YELLOW_DROP_PPE] == UNC_VF_VALID)
+          || (val_ppe->valid[UPLL_IDX_RED_ACTION_PPE] == UNC_VF_VALID)
+          || (val_ppe->valid[UPLL_IDX_RED_PRIORITY_PPE] == UNC_VF_VALID)
+          || (val_ppe->valid[UPLL_IDX_RED_DSCP_PPE] == UNC_VF_VALID)
+          || (val_ppe->valid[UPLL_IDX_RED_DROP_PPE] == UNC_VF_VALID)) {
         check = true;
       }
     } else if (UNC_OP_UPDATE == operation) {
       if ((val_ppe->valid[UPLL_IDX_FLOWLIST_PPE] == UNC_VF_VALID)
-      || (val_ppe->valid[UPLL_IDX_RATE_PPE] == UNC_VF_VALID)
-      || (val_ppe->valid[UPLL_IDX_CIR_PPE] == UNC_VF_VALID)
-      || (val_ppe->valid[UPLL_IDX_CBS_PPE] == UNC_VF_VALID)
-      || (val_ppe->valid[UPLL_IDX_PIR_PPE] == UNC_VF_VALID)
-      || (val_ppe->valid[UPLL_IDX_PBS_PPE] == UNC_VF_VALID)
-      || (val_ppe->valid[UPLL_IDX_GREEN_ACTION_PPE] == UNC_VF_VALID)
-      || (val_ppe->valid[UPLL_IDX_GREEN_PRIORITY_PPE] == UNC_VF_VALID)
-      || (val_ppe->valid[UPLL_IDX_GREEN_DSCP_PPE] == UNC_VF_VALID)
-      || (val_ppe->valid[UPLL_IDX_GREEN_DROP_PPE] == UNC_VF_VALID)
-      || (val_ppe->valid[UPLL_IDX_YELLOW_ACTION_PPE] == UNC_VF_VALID)
-      || (val_ppe->valid[UPLL_IDX_YELLOW_PRIORITY_PPE] == UNC_VF_VALID)
-      || (val_ppe->valid[UPLL_IDX_YELLOW_DSCP_PPE] == UNC_VF_VALID)
-      || (val_ppe->valid[UPLL_IDX_YELLOW_DROP_PPE] == UNC_VF_VALID)
-      || (val_ppe->valid[UPLL_IDX_RED_ACTION_PPE] == UNC_VF_VALID)
-      || (val_ppe->valid[UPLL_IDX_RED_PRIORITY_PPE] == UNC_VF_VALID)
-      || (val_ppe->valid[UPLL_IDX_RED_DSCP_PPE] == UNC_VF_VALID)
-      || (val_ppe->valid[UPLL_IDX_RED_DROP_PPE] == UNC_VF_VALID)
-      || (val_ppe->valid[UPLL_IDX_FLOWLIST_PPE] == UNC_VF_VALID_NO_VALUE)
-      || (val_ppe->valid[UPLL_IDX_RATE_PPE] == UNC_VF_VALID_NO_VALUE)
-      || (val_ppe->valid[UPLL_IDX_CIR_PPE] == UNC_VF_VALID_NO_VALUE)
-      || (val_ppe->valid[UPLL_IDX_CBS_PPE] == UNC_VF_VALID_NO_VALUE)
-      || (val_ppe->valid[UPLL_IDX_PIR_PPE] == UNC_VF_VALID_NO_VALUE)
-      || (val_ppe->valid[UPLL_IDX_PBS_PPE] == UNC_VF_VALID_NO_VALUE)
-      || (val_ppe->valid[UPLL_IDX_GREEN_ACTION_PPE] == UNC_VF_VALID_NO_VALUE)
-      || (val_ppe->valid[UPLL_IDX_GREEN_PRIORITY_PPE] == UNC_VF_VALID_NO_VALUE)
-      || (val_ppe->valid[UPLL_IDX_GREEN_DSCP_PPE] == UNC_VF_VALID_NO_VALUE)
-      || (val_ppe->valid[UPLL_IDX_GREEN_DROP_PPE] == UNC_VF_VALID_NO_VALUE)
-      || (val_ppe->valid[UPLL_IDX_YELLOW_ACTION_PPE] == UNC_VF_VALID_NO_VALUE)
-      || (val_ppe->valid[UPLL_IDX_YELLOW_PRIORITY_PPE] == UNC_VF_VALID_NO_VALUE)
-      || (val_ppe->valid[UPLL_IDX_YELLOW_DSCP_PPE] == UNC_VF_VALID_NO_VALUE)
-      || (val_ppe->valid[UPLL_IDX_YELLOW_DROP_PPE] == UNC_VF_VALID_NO_VALUE)
-      || (val_ppe->valid[UPLL_IDX_RED_ACTION_PPE] == UNC_VF_VALID_NO_VALUE)
-      || (val_ppe->valid[UPLL_IDX_RED_PRIORITY_PPE] == UNC_VF_VALID_NO_VALUE)
-      || (val_ppe->valid[UPLL_IDX_RED_DSCP_PPE] == UNC_VF_VALID_NO_VALUE)
-      || (val_ppe->valid[UPLL_IDX_RED_DROP_PPE] == UNC_VF_VALID_NO_VALUE)) {
-        check = true;
-      }
+          || (val_ppe->valid[UPLL_IDX_RATE_PPE] == UNC_VF_VALID)
+          || (val_ppe->valid[UPLL_IDX_CIR_PPE] == UNC_VF_VALID)
+          || (val_ppe->valid[UPLL_IDX_CBS_PPE] == UNC_VF_VALID)
+          || (val_ppe->valid[UPLL_IDX_PIR_PPE] == UNC_VF_VALID)
+          || (val_ppe->valid[UPLL_IDX_PBS_PPE] == UNC_VF_VALID)
+          || (val_ppe->valid[UPLL_IDX_GREEN_ACTION_PPE] == UNC_VF_VALID)
+          || (val_ppe->valid[UPLL_IDX_GREEN_PRIORITY_PPE] == UNC_VF_VALID)
+          || (val_ppe->valid[UPLL_IDX_GREEN_DSCP_PPE] == UNC_VF_VALID)
+          || (val_ppe->valid[UPLL_IDX_GREEN_DROP_PPE] == UNC_VF_VALID)
+          || (val_ppe->valid[UPLL_IDX_YELLOW_ACTION_PPE] == UNC_VF_VALID)
+          || (val_ppe->valid[UPLL_IDX_YELLOW_PRIORITY_PPE] == UNC_VF_VALID)
+          || (val_ppe->valid[UPLL_IDX_YELLOW_DSCP_PPE] == UNC_VF_VALID)
+          || (val_ppe->valid[UPLL_IDX_YELLOW_DROP_PPE] == UNC_VF_VALID)
+          || (val_ppe->valid[UPLL_IDX_RED_ACTION_PPE] == UNC_VF_VALID)
+          || (val_ppe->valid[UPLL_IDX_RED_PRIORITY_PPE] == UNC_VF_VALID)
+          || (val_ppe->valid[UPLL_IDX_RED_DSCP_PPE] == UNC_VF_VALID)
+          || (val_ppe->valid[UPLL_IDX_RED_DROP_PPE] == UNC_VF_VALID)
+          || (val_ppe->valid[UPLL_IDX_FLOWLIST_PPE] == UNC_VF_VALID_NO_VALUE)
+          || (val_ppe->valid[UPLL_IDX_RATE_PPE] == UNC_VF_VALID_NO_VALUE)
+          || (val_ppe->valid[UPLL_IDX_CIR_PPE] == UNC_VF_VALID_NO_VALUE)
+          || (val_ppe->valid[UPLL_IDX_CBS_PPE] == UNC_VF_VALID_NO_VALUE)
+          || (val_ppe->valid[UPLL_IDX_PIR_PPE] == UNC_VF_VALID_NO_VALUE)
+          || (val_ppe->valid[UPLL_IDX_PBS_PPE] == UNC_VF_VALID_NO_VALUE)
+          || (val_ppe->valid[UPLL_IDX_GREEN_ACTION_PPE] ==
+              UNC_VF_VALID_NO_VALUE)
+          || (val_ppe->valid[UPLL_IDX_GREEN_PRIORITY_PPE] ==
+              UNC_VF_VALID_NO_VALUE)
+          || (val_ppe->valid[UPLL_IDX_GREEN_DSCP_PPE] == UNC_VF_VALID_NO_VALUE)
+          || (val_ppe->valid[UPLL_IDX_GREEN_DROP_PPE] == UNC_VF_VALID_NO_VALUE)
+          || (val_ppe->valid[UPLL_IDX_YELLOW_ACTION_PPE] ==
+              UNC_VF_VALID_NO_VALUE)
+          || (val_ppe->valid[UPLL_IDX_YELLOW_PRIORITY_PPE] ==
+              UNC_VF_VALID_NO_VALUE)
+          || (val_ppe->valid[UPLL_IDX_YELLOW_DSCP_PPE] ==
+              UNC_VF_VALID_NO_VALUE)
+          || (val_ppe->valid[UPLL_IDX_YELLOW_DROP_PPE] ==
+              UNC_VF_VALID_NO_VALUE)
+          || (val_ppe->valid[UPLL_IDX_RED_ACTION_PPE] == UNC_VF_VALID_NO_VALUE)
+          || (val_ppe->valid[UPLL_IDX_RED_PRIORITY_PPE] ==
+              UNC_VF_VALID_NO_VALUE)
+          || (val_ppe->valid[UPLL_IDX_RED_DSCP_PPE] == UNC_VF_VALID_NO_VALUE)
+          || (val_ppe->valid[UPLL_IDX_RED_DROP_PPE] == UNC_VF_VALID_NO_VALUE)) {
+            check = true;
+          }
     }
     if (check) {
       rt_code = ValidatePolicingProfileEntryInPolicingMap(ikey, dmi, req);
@@ -4217,20 +4244,22 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidatePolicingProfileEntryValue(
 
       if (UPLL_RC_SUCCESS != rt_code) {
         UPLL_LOG_DEBUG(
-            " PolicingProfileEntryname Syntax validation failed :Err Code - %d",
+            " PolicingProfileEntryname Syntax validation failed"
+            ":Err Code - %d",
             rt_code);
         return rt_code;
       }
     } else if ((val_ppe->valid[UPLL_IDX_CIR_PPE]
-        == UNC_VF_VALID)
-        || (val_ppe->valid[UPLL_IDX_CBS_PPE] == UNC_VF_VALID)
-        || (val_ppe->valid[UPLL_IDX_PIR_PPE] == UNC_VF_VALID)
-        || (val_ppe->valid[UPLL_IDX_PBS_PPE] == UNC_VF_VALID)) {
+                == UNC_VF_VALID)
+               || (val_ppe->valid[UPLL_IDX_CBS_PPE] == UNC_VF_VALID)
+               || (val_ppe->valid[UPLL_IDX_PIR_PPE] == UNC_VF_VALID)
+               || (val_ppe->valid[UPLL_IDX_PBS_PPE] == UNC_VF_VALID)) {
       UPLL_LOG_DEBUG("Error Rate is not filled but its subsequent field "
                      "filled");
       return UPLL_RC_ERR_CFG_SYNTAX;
     } else if ((operation == UNC_OP_UPDATE)
-        && (val_ppe->valid[UPLL_IDX_RATE_PPE] == UNC_VF_VALID_NO_VALUE)) {
+               && (val_ppe->valid[UPLL_IDX_RATE_PPE] ==
+                   UNC_VF_VALID_NO_VALUE)) {
       UPLL_LOG_DEBUG("Reset Rate");
       val_ppe->rate = 0;
     }
@@ -4240,17 +4269,17 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidatePolicingProfileEntryValue(
 
     if (UPLL_RC_SUCCESS != rt_code) {
       UPLL_LOG_DEBUG(" Color action syntax validation failed :Err Code - %d",
-                    rt_code);
+                     rt_code);
       return rt_code;
     }
 
     /** Validate red_action_priority, green_action_priority,
-     yellow_action_priority */
+      yellow_action_priority */
     rt_code = ValidateColorPriority(val_ppe, operation);
 
     if (UPLL_RC_SUCCESS != rt_code) {
       UPLL_LOG_DEBUG(" Color priority syntax validation failed :Err Code - %d",
-                    rt_code);
+                     rt_code);
       return rt_code;
     }
 
@@ -4259,7 +4288,7 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidatePolicingProfileEntryValue(
 
     if (UPLL_RC_SUCCESS != rt_code) {
       UPLL_LOG_DEBUG(" Color precedence syntax validation failed:Err Code- %d",
-                    rt_code);
+                     rt_code);
       return rt_code;
     }
 
@@ -4281,7 +4310,7 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidateFlowList(
   upll_rc_t rt_code = UPLL_RC_ERR_GENERIC;
 
   val_policingprofile_entry_t *ppe_val = reinterpret_cast
-    <val_policingprofile_entry_t *>(GetVal(ikey));
+      <val_policingprofile_entry_t *>(GetVal(ikey));
   if (ppe_val->valid[UPLL_IDX_FLOWLIST_PPE] == UNC_VF_VALID) {
     rt_code = ValidateKey(reinterpret_cast<char*>(ppe_val->flowlist),
                           kMinLenFlowListName,
@@ -4305,25 +4334,26 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidateFlowList(
       return rt_code;
     }
     key_flowlist_t *fl_key = reinterpret_cast
-      <key_flowlist_t *>(fl_ckv->get_key());
+        <key_flowlist_t *>(fl_ckv->get_key());
     uuu::upll_strncpy(fl_key->flowlist_name,
-      ppe_val->flowlist,
-      kMaxLenFlowListName+1);
+                      ppe_val->flowlist,
+                      kMaxLenFlowListName+1);
 
     rt_code = mgr->UpdateConfigDB(fl_ckv, req->datatype,
-                UNC_OP_READ, dmi);
+                                  UNC_OP_READ, dmi);
 
     delete fl_ckv;
     if (rt_code != UPLL_RC_ERR_INSTANCE_EXISTS) {
       UPLL_LOG_DEBUG("flowlist name does not exists in "
-          "KT_FLOWLIST table");
+                     "KT_FLOWLIST table");
       return UPLL_RC_ERR_CFG_SEMANTIC;
     }
   } else if ((req->operation == UNC_OP_UPDATE ||
               req->operation == UNC_OP_CREATE)
-        && (ppe_val->valid[UPLL_IDX_FLOWLIST_PPE] == UNC_VF_VALID_NO_VALUE)) {
-      UPLL_LOG_DEBUG("Reset Flowlist name ");
-      memset(ppe_val->flowlist, '\0', sizeof(ppe_val->flowlist));
+             && (ppe_val->valid[UPLL_IDX_FLOWLIST_PPE] ==
+                 UNC_VF_VALID_NO_VALUE)) {
+    UPLL_LOG_DEBUG("Reset Flowlist name ");
+    memset(ppe_val->flowlist, '\0', sizeof(ppe_val->flowlist));
   }
   return UPLL_RC_SUCCESS;
 }
@@ -4336,16 +4366,16 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidatePolicingProfileEntryInPolicingMap(
 
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
   val_policingmap_t *val_policingmap = reinterpret_cast<val_policingmap_t *>
-    (ConfigKeyVal::Malloc(sizeof(val_policingmap_t)));
+      (ConfigKeyVal::Malloc(sizeof(val_policingmap_t)));
   key_policingprofile_entry_t *key_ppe = reinterpret_cast
-    <key_policingprofile_entry_t *>(ikey->get_key());
+      <key_policingprofile_entry_t *>(ikey->get_key());
   uuu::upll_strncpy(val_policingmap->policer_name,
-    key_ppe->policingprofile_key.policingprofile_name,
-    (kMaxLenPolicingProfileName + 1));
+                    key_ppe->policingprofile_key.policingprofile_name,
+                    (kMaxLenPolicingProfileName + 1));
   val_policingmap->valid[UPLL_IDX_POLICERNAME_PM] = UNC_VF_VALID;
 
   ConfigVal *tempval = new ConfigVal(IpctSt::kIpcStValPolicingmap,
-      val_policingmap);
+                                     val_policingmap);
   MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>
       (const_cast<MoManager*>(GetMoManager(UNC_KT_VTN_POLICINGMAP)));
   if (!mgr) {
@@ -4363,31 +4393,31 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidatePolicingProfileEntryInPolicingMap(
 
   DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutNone };
   result_code = mgr->ReadConfigDB(vtn_ckv, req->datatype, UNC_OP_READ, dbop,
-      dmi, MAINTBL);
+                                  dmi, MAINTBL);
   if (result_code == UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("Policing profile name used in VTN_POLICINGMAP table");
     DELETE_IF_NOT_NULL(vtn_ckv);
     return UPLL_RC_ERR_CFG_SEMANTIC;
   } else if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
     UPLL_LOG_DEBUG("Policing profile name check in pm failed %d",
-          result_code);
+                   result_code);
     DELETE_IF_NOT_NULL(vtn_ckv);
     return result_code;
   }
   DELETE_IF_NOT_NULL(vtn_ckv);
 
   val_policingmap_t *val_policingmap1 =
-    reinterpret_cast<val_policingmap_t *>
-    (ConfigKeyVal::Malloc(sizeof(val_policingmap_t)));
+      reinterpret_cast<val_policingmap_t *>
+      (ConfigKeyVal::Malloc(sizeof(val_policingmap_t)));
   uuu::upll_strncpy(val_policingmap1->policer_name,
-    key_ppe->policingprofile_key.policingprofile_name,
-    (kMaxLenPolicingProfileName + 1));
+                    key_ppe->policingprofile_key.policingprofile_name,
+                    (kMaxLenPolicingProfileName + 1));
   val_policingmap1->valid[UPLL_IDX_POLICERNAME_PM ] = UNC_VF_VALID;
   ConfigVal *tempval1 = new ConfigVal(IpctSt::kIpcStValPolicingmap,
-      val_policingmap1);
+                                      val_policingmap1);
   mgr =
-    reinterpret_cast<MoMgrImpl *>(const_cast<MoManager*>(GetMoManager(
-            UNC_KT_VBR_POLICINGMAP)));
+      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager*>(GetMoManager(
+                  UNC_KT_VBR_POLICINGMAP)));
   if (!mgr) {
     DELETE_IF_NOT_NULL(tempval1);
     return UPLL_RC_ERR_GENERIC;
@@ -4402,31 +4432,31 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidatePolicingProfileEntryInPolicingMap(
   vbr_ckv->AppendCfgVal(tempval1);
 
   result_code = mgr->ReadConfigDB(vbr_ckv, req->datatype, UNC_OP_READ, dbop,
-      dmi, MAINTBL);
+                                  dmi, MAINTBL);
   if (result_code == UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("Policing profile name used in VTN_POLICINGMAP table");
     DELETE_IF_NOT_NULL(vbr_ckv);
     return UPLL_RC_ERR_CFG_SEMANTIC;
   } else if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
     UPLL_LOG_DEBUG("Policing profile name check in pm failed %d",
-          result_code);
+                   result_code);
     DELETE_IF_NOT_NULL(vbr_ckv);
     return result_code;
   }
   DELETE_IF_NOT_NULL(vbr_ckv);
 
   val_policingmap_t *val_policingmap2 =
-    reinterpret_cast<val_policingmap_t *>
-    (ConfigKeyVal::Malloc(sizeof(val_policingmap_t)));
+      reinterpret_cast<val_policingmap_t *>
+      (ConfigKeyVal::Malloc(sizeof(val_policingmap_t)));
   uuu::upll_strncpy(val_policingmap2->policer_name,
-    key_ppe->policingprofile_key.policingprofile_name,
-    (kMaxLenPolicingProfileName + 1));
+                    key_ppe->policingprofile_key.policingprofile_name,
+                    (kMaxLenPolicingProfileName + 1));
   val_policingmap2->valid[UPLL_IDX_POLICERNAME_PM ] = UNC_VF_VALID;
   ConfigVal *tempval2 = new ConfigVal(IpctSt::kIpcStValPolicingmap,
-      val_policingmap2);
+                                      val_policingmap2);
   mgr =
-    reinterpret_cast<MoMgrImpl *>(const_cast<MoManager*>(GetMoManager(
-            UNC_KT_VBRIF_POLICINGMAP)));
+      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager*>(GetMoManager(
+                  UNC_KT_VBRIF_POLICINGMAP)));
   if (!mgr) {
     DELETE_IF_NOT_NULL(tempval2);
     return UPLL_RC_ERR_GENERIC;
@@ -4441,14 +4471,14 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidatePolicingProfileEntryInPolicingMap(
   vbrif_ckv->AppendCfgVal(tempval2);
 
   result_code = mgr->ReadConfigDB(vbrif_ckv, req->datatype, UNC_OP_READ, dbop,
-      dmi, MAINTBL);
+                                  dmi, MAINTBL);
   if (result_code == UPLL_RC_SUCCESS) {
     DELETE_IF_NOT_NULL(vbrif_ckv);
     UPLL_LOG_DEBUG("Policing profile name used in VTN_POLICINGMAP table");
     return UPLL_RC_ERR_CFG_SEMANTIC;
   } else if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
     UPLL_LOG_DEBUG("Policing profile name check in pm failed %d",
-          result_code);
+                   result_code);
     DELETE_IF_NOT_NULL(vbrif_ckv);
     return result_code;
   }
@@ -4458,7 +4488,7 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidatePolicingProfileEntryInPolicingMap(
 }
 
 upll_rc_t PolicingProfileEntryMoMgr::GetFlowListEntryConfigKey(
-        ConfigKeyVal *&okey, ConfigKeyVal *ikey) {
+    ConfigKeyVal *&okey, ConfigKeyVal *ikey) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
@@ -4466,11 +4496,11 @@ upll_rc_t PolicingProfileEntryMoMgr::GetFlowListEntryConfigKey(
       <val_policingprofile_entry_t *>(GetVal(ikey));
   key_flowlist_entry_t *out_key = reinterpret_cast
       <key_flowlist_entry_t *>(ConfigKeyVal::
-     Malloc(sizeof(key_flowlist_entry_t)));
+                               Malloc(sizeof(key_flowlist_entry_t)));
   uuu::upll_strncpy(out_key->flowlist_key.flowlist_name,
-      val->flowlist, kMaxLenFlowListName);
+                    val->flowlist, kMaxLenFlowListName);
   okey = new ConfigKeyVal(UNC_KT_FLOWLIST_ENTRY,
-             IpctSt::kIpcStKeyFlowlistEntry, out_key, NULL);
+                          IpctSt::kIpcStKeyFlowlistEntry, out_key, NULL);
   if (!okey)
     return UPLL_RC_ERR_GENERIC;
   return result_code;
@@ -4489,10 +4519,15 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidateValidElements(
   key_policingprofile_entry_t *ppe_key = reinterpret_cast
       <key_policingprofile_entry_t *>(ppe_ckv->get_key());
   uuu::upll_strncpy(ppe_key->policingprofile_key.policingprofile_name,
-    policingprofile_name, kMaxLenPolicingProfileName);
+                    policingprofile_name, kMaxLenPolicingProfileName);
 
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutNone };
-  result_code = ReadConfigDB(ppe_ckv, dt_type, UNC_OP_READ, dbop, dmi, MAINTBL);
+  result_code = ReadConfigDB(ppe_ckv,
+                             dt_type,
+                             UNC_OP_READ,
+                             dbop,
+                             dmi,
+                             MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("No entry in policingprofile entry maintbl");
     delete ppe_ckv;
@@ -4501,7 +4536,7 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidateValidElements(
   ConfigKeyVal *temp_ppe_ckv = ppe_ckv;
   while (NULL != temp_ppe_ckv) {
     val_policingprofile_entry_t *val_ppe = reinterpret_cast
-      <val_policingprofile_entry_t *>(GetVal(temp_ppe_ckv));
+        <val_policingprofile_entry_t *>(GetVal(temp_ppe_ckv));
     if (UNC_VF_VALID != val_ppe->valid[UPLL_IDX_FLOWLIST_PPE ]) {
       UPLL_LOG_DEBUG("Attribute flowlist is not valid");
       DELETE_IF_NOT_NULL(ppe_ckv);
@@ -4516,7 +4551,7 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidateValidElements(
       }
       MoMgrImpl *fle_mgr =
           reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-            UNC_KT_FLOWLIST_ENTRY)));
+                      UNC_KT_FLOWLIST_ENTRY)));
       if (NULL == fle_mgr) {
         UPLL_LOG_DEBUG("fle_mgr is NULL");
         DELETE_IF_NOT_NULL(ppe_ckv);
@@ -4524,7 +4559,10 @@ upll_rc_t PolicingProfileEntryMoMgr::ValidateValidElements(
         return UPLL_RC_ERR_GENERIC;
       }
       result_code = fle_mgr->UpdateConfigDB(okey,
-                  dt_type, UNC_OP_READ, dmi, MAINTBL);
+                                            dt_type,
+                                            UNC_OP_READ,
+                                            dmi,
+                                            MAINTBL);
       if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
         UPLL_LOG_DEBUG("No seq number for given flowlist");
         DELETE_IF_NOT_NULL(ppe_ckv);
@@ -4623,15 +4661,16 @@ upll_rc_t PolicingProfileEntryMoMgr::IsFlowListMatched(
     return result_code;
   }
   val_policingprofile_entry_t *val_ppe = reinterpret_cast
-    <val_policingprofile_entry_t *>(ConfigKeyVal::
-     Malloc(sizeof(val_policingprofile_entry_t)));
+      <val_policingprofile_entry_t *>(ConfigKeyVal::
+                                      Malloc(sizeof(
+                                              val_policingprofile_entry_t)));
   val_ppe->valid[UPLL_IDX_FLOWLIST_PPE ] = UNC_VF_VALID;
   uuu::upll_strncpy(val_ppe->flowlist, flowlist_name,
-    kMaxLenFlowListName + 1);
+                    kMaxLenFlowListName + 1);
   ppe_ckv->AppendCfgVal(IpctSt::kIpcStValPolicingprofileEntry, val_ppe);
   DbSubOp dbop = {kOpReadMultiple, kOpMatchNone, kOpInOutNone};
   result_code = ReadConfigDB(ppe_ckv, dt_type, UNC_OP_READ, dbop, dmi,
-                  MAINTBL);
+                             MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     DELETE_IF_NOT_NULL(ppe_ckv);
     if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
@@ -4652,7 +4691,7 @@ upll_rc_t PolicingProfileEntryMoMgr::IsFlowListMatched(
     }
     DbSubOp dbop1 = {kOpReadMultiple, kOpMatchNone, kOpInOutNone};
     result_code = ReadConfigDB(ctrlr_ppe_ckv, dt_type, UNC_OP_READ, dbop1, dmi,
-                    CTRLRTBL);
+                               CTRLRTBL);
     if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
       DELETE_IF_NOT_NULL(ppe_ckv);
       DELETE_IF_NOT_NULL(ctrlr_ppe_ckv);
@@ -4680,8 +4719,8 @@ upll_rc_t PolicingProfileEntryMoMgr::SetValidAudit(ConfigKeyVal *&ikey) {
     return UPLL_RC_ERR_GENERIC;
   }
   for (unsigned int loop = 0;
-        loop < sizeof(val->valid) / sizeof(val->valid[0]);
-        ++loop) {
+       loop < sizeof(val->valid) / sizeof(val->valid[0]);
+       ++loop) {
     val->cs_attr[loop] = UNC_CS_APPLIED;
   }
   val->cs_row_status = UNC_CS_APPLIED;
@@ -4689,98 +4728,100 @@ upll_rc_t PolicingProfileEntryMoMgr::SetValidAudit(ConfigKeyVal *&ikey) {
 }
 
 bool PolicingProfileEntryMoMgr::FilterAttributes(void *&val1,
-                                          void *val2,
-                                          bool copy_to_running,
-                                          unc_keytype_operation_t op) {
+                                                 void *val2,
+                                                 bool copy_to_running,
+                                                 unc_keytype_operation_t op) {
   UPLL_FUNC_TRACE;
   if (op != UNC_OP_CREATE)
     return CompareValidValue(val1, val2, copy_to_running);
   return false;
 }
 
-upll_rc_t PolicingProfileEntryMoMgr::UpdateConfigStatus(ConfigKeyVal *main_ckv,
-                                     unc_keytype_operation_t op,
-                                     uint32_t driver_result,
-                                     ConfigKeyVal *upd_key,
-                                     DalDmlIntf *dmi,
-                                     ConfigKeyVal *ctrlr_key) {
+upll_rc_t PolicingProfileEntryMoMgr::UpdateConfigStatus(
+    ConfigKeyVal *main_ckv,
+    unc_keytype_operation_t op,
+    uint32_t driver_result,
+    ConfigKeyVal *upd_key,
+    DalDmlIntf *dmi,
+    ConfigKeyVal *ctrlr_key) {
   UPLL_FUNC_TRACE;
   val_policingprofile_entry_ctrl_t *ppe_val;
   unc_keytype_configstatus_t  ctrlr_status;
-  uint8_t cs_status; 
+  uint8_t cs_status;
   val_policingprofile_entry_t *val_ppe_main = reinterpret_cast
       <val_policingprofile_entry_t *>(GetVal(main_ckv));
-  ctrlr_status = 
-    (driver_result == UPLL_RC_SUCCESS) ? UNC_CS_APPLIED : UNC_CS_NOT_APPLIED;
+  ctrlr_status =
+      (driver_result == UPLL_RC_SUCCESS) ? UNC_CS_APPLIED : UNC_CS_NOT_APPLIED;
   ppe_val = reinterpret_cast<val_policingprofile_entry_ctrl_t *>
-                            (GetVal(ctrlr_key));
+      (GetVal(ctrlr_key));
   if (ppe_val == NULL) return UPLL_RC_ERR_GENERIC;
-    cs_status = (val_ppe_main->cs_row_status);
+  cs_status = (val_ppe_main->cs_row_status);
 
   UPLL_LOG_TRACE("cs_status %d ctrlr_status %d\n", cs_status, ctrlr_status);
   if (op == UNC_OP_CREATE) {
     ppe_val->cs_row_status = ctrlr_status;
-  if (val_ppe_main->cs_row_status == UNC_CS_UNKNOWN) {
-        /* first entry in ctrlr table */
+    if (val_ppe_main->cs_row_status == UNC_CS_UNKNOWN) {
+      /* first entry in ctrlr table */
       cs_status = ctrlr_status;
-  } else if (val_ppe_main->cs_row_status == UNC_CS_APPLIED) {
+    } else if (val_ppe_main->cs_row_status == UNC_CS_APPLIED) {
       if (ctrlr_status == UNC_CS_NOT_APPLIED) {
-          cs_status = UNC_CS_PARTIALLY_APPLIED;
+        cs_status = UNC_CS_PARTIALLY_APPLIED;
       }
 
     } else if (val_ppe_main->cs_row_status == UNC_CS_NOT_APPLIED) {
-        if (ctrlr_status == UNC_CS_APPLIED) {
-          cs_status =  UNC_CS_PARTIALLY_APPLIED;
+      if (ctrlr_status == UNC_CS_APPLIED) {
+        cs_status =  UNC_CS_PARTIALLY_APPLIED;
       }
     } else if (val_ppe_main->cs_row_status == UNC_CS_INVALID) {
       cs_status = UNC_CS_INVALID;
     } else {
-        cs_status = UNC_CS_PARTIALLY_APPLIED;
+      cs_status = UNC_CS_PARTIALLY_APPLIED;
     }
     val_ppe_main->cs_row_status = cs_status;
   }
-  // Updating the Controller cs_row_status
-   val_policingprofile_entry_ctrl *run_ctrlr_val = 
-                reinterpret_cast<val_policingprofile_entry_ctrl_t *>
-                                              (GetVal(upd_key));
+  //  Updating the Controller cs_row_status
+  val_policingprofile_entry_ctrl *run_ctrlr_val =
+      reinterpret_cast<val_policingprofile_entry_ctrl_t *>
+      (GetVal(upd_key));
   if ((op == UNC_OP_UPDATE) && (upd_key != NULL)) {
     if (run_ctrlr_val != NULL)
       ppe_val->cs_row_status = run_ctrlr_val->cs_row_status;
   }
 
   for (unsigned int loop = 0; loop < sizeof(val_ppe_main->valid)/
-      sizeof(val_ppe_main->valid[0]); ++loop) {
-   if (val_ppe_main->valid[loop] != UNC_VF_INVALID) {
-     if (ppe_val->cs_attr[loop] != UNC_CS_NOT_SUPPORTED)
-       ppe_val->cs_attr[loop] = ctrlr_status;
-     else
-       ppe_val->cs_attr[loop] = UNC_CS_NOT_SUPPORTED;
-
-   if (op == UNC_OP_CREATE ) {
-     if (val_ppe_main->cs_attr[loop] == UNC_CS_INVALID) {
-       cs_status = UNC_CS_INVALID;
-     } if (val_ppe_main->cs_attr[loop] == ctrlr_status) {
-       cs_status = ctrlr_status;
-     } else if (ctrlr_status == UNC_CS_APPLIED) {
-       if (val_ppe_main->cs_attr[loop] == UNC_CS_UNKNOWN) {
-         cs_status = ctrlr_status;
-       } else if (val_ppe_main->cs_attr[loop] == UNC_CS_NOT_APPLIED) {
-         val_ppe_main->cs_attr[loop] = UNC_CS_PARTIALLY_APPLIED;
-       } else {
-         cs_status = val_ppe_main->cs_attr[loop];
-       }
-     } else if(ctrlr_status == UNC_CS_NOT_APPLIED) {
-       if(val_ppe_main->cs_attr[loop] == UNC_CS_NOT_APPLIED) {
-         cs_status =  UNC_CS_NOT_APPLIED;
-       }
-     } else {
-       cs_status =  UNC_CS_PARTIALLY_APPLIED;
-     }
-     val_ppe_main->cs_attr[loop]  = cs_status;
-     UPLL_LOG_DEBUG("Main tbl cs_attr : %d", val_ppe_main->cs_attr[loop]);
-   }
-  }
- }
+       sizeof(val_ppe_main->valid[0]); ++loop) {
+    if (val_ppe_main->valid[loop] != UNC_VF_INVALID) {
+      if (ppe_val->cs_attr[loop] != UNC_CS_NOT_SUPPORTED)
+        ppe_val->cs_attr[loop] = ctrlr_status;
+      else
+        ppe_val->cs_attr[loop] = UNC_CS_NOT_SUPPORTED;
+
+      if (op == UNC_OP_CREATE) {
+        if (val_ppe_main->cs_attr[loop] == UNC_CS_INVALID) {
+          cs_status = UNC_CS_INVALID;
+        }
+        if (val_ppe_main->cs_attr[loop] == ctrlr_status) {
+          cs_status = ctrlr_status;
+        } else if (ctrlr_status == UNC_CS_APPLIED) {
+          if (val_ppe_main->cs_attr[loop] == UNC_CS_UNKNOWN) {
+            cs_status = ctrlr_status;
+          } else if (val_ppe_main->cs_attr[loop] == UNC_CS_NOT_APPLIED) {
+            val_ppe_main->cs_attr[loop] = UNC_CS_PARTIALLY_APPLIED;
+          } else {
+            cs_status = val_ppe_main->cs_attr[loop];
+          }
+        } else if (ctrlr_status == UNC_CS_NOT_APPLIED) {
+          if (val_ppe_main->cs_attr[loop] == UNC_CS_NOT_APPLIED) {
+            cs_status =  UNC_CS_NOT_APPLIED;
+          }
+        } else {
+          cs_status =  UNC_CS_PARTIALLY_APPLIED;
+        }
+        val_ppe_main->cs_attr[loop]  = cs_status;
+        UPLL_LOG_DEBUG("Main tbl cs_attr : %d", val_ppe_main->cs_attr[loop]);
+      }
+    }
+  }
   return UPLL_RC_SUCCESS;
 }
 
@@ -4796,9 +4837,9 @@ upll_rc_t PolicingProfileEntryMoMgr::Get_Tx_Consolidated_Status(
       break;
     case UNC_CS_PARTIALLY_APPLIED:
       if (current_ctrlr_cs == UNC_CS_NOT_APPLIED) {
-        // Todo: if this vtn has caused it then to change to applied.
+        //  Todo: if this vtn has caused it then to change to applied.
         status = (drv_result_status != UNC_CS_APPLIED) ?
-          UNC_CS_PARTIALLY_APPLIED : drv_result_status;
+            UNC_CS_PARTIALLY_APPLIED : drv_result_status;
       }
       break;
     case UNC_CS_APPLIED:
@@ -4806,16 +4847,17 @@ upll_rc_t PolicingProfileEntryMoMgr::Get_Tx_Consolidated_Status(
     case UNC_CS_INVALID:
     default:
       status = (drv_result_status == UNC_CS_NOT_APPLIED)?
-        UNC_CS_PARTIALLY_APPLIED:
-        (status == UNC_CS_UNKNOWN)?drv_result_status:status;
+          UNC_CS_PARTIALLY_APPLIED:
+          (status == UNC_CS_UNKNOWN)?drv_result_status:status;
       break;
   }
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t PolicingProfileEntryMoMgr::SetPPEntryConsolidatedStatus(ConfigKeyVal *ikey,
-                                                                  uint8_t *ctrlr_id,
-                                                                  DalDmlIntf *dmi)  {
+upll_rc_t PolicingProfileEntryMoMgr::SetPPEntryConsolidatedStatus(
+    ConfigKeyVal *ikey,
+    uint8_t *ctrlr_id,
+    DalDmlIntf *dmi)  {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *ctrlr_ckv = NULL;
@@ -4824,7 +4866,7 @@ upll_rc_t PolicingProfileEntryMoMgr::SetPPEntryConsolidatedStatus(ConfigKeyVal *
   bool applied = false, not_applied = false, invalid = false;
   unc_keytype_configstatus_t c_status = UNC_CS_NOT_APPLIED;
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone,
-                   kOpInOutCtrlr | kOpInOutCs };
+    kOpInOutCtrlr | kOpInOutCs };
   if (!ikey || !dmi) {
     UPLL_LOG_DEBUG("Invalid Input");
     return UPLL_RC_ERR_GENERIC;
@@ -4834,7 +4876,11 @@ upll_rc_t PolicingProfileEntryMoMgr::SetPPEntryConsolidatedStatus(ConfigKeyVal *
     UPLL_LOG_DEBUG("GetChildConfigKey failed err code %d", result_code);
     return result_code;
   }
-  result_code = ReadConfigDB(ctrlr_ckv, UPLL_DT_RUNNING, UNC_OP_READ, dbop, dmi,
+  result_code = ReadConfigDB(ctrlr_ckv,
+                             UPLL_DT_RUNNING,
+                             UNC_OP_READ,
+                             dbop,
+                             dmi,
                              CTRLRTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("ReadConfigDB from ctrltbl failed err code %d",
@@ -4844,9 +4890,9 @@ upll_rc_t PolicingProfileEntryMoMgr::SetPPEntryConsolidatedStatus(ConfigKeyVal *
   }
 
   for (ConfigKeyVal *tmp = ctrlr_ckv; tmp != NULL;
-                     tmp = tmp->get_next_cfg_key_val()) {
+       tmp = tmp->get_next_cfg_key_val()) {
     ctrlr_val = reinterpret_cast<val_policingprofile_entry_ctrl_t *>
-                (GetVal(tmp));
+        (GetVal(tmp));
     if (!ctrlr_val) {
       UPLL_LOG_DEBUG("Controller Value is empty");
       tmp = NULL;
@@ -4856,15 +4902,15 @@ upll_rc_t PolicingProfileEntryMoMgr::SetPPEntryConsolidatedStatus(ConfigKeyVal *
     GET_USER_DATA_CTRLR(tmp, pp_exist_on_ctrlr);
     if (!strcmp(reinterpret_cast<char *>(pp_exist_on_ctrlr),
                 reinterpret_cast<char *>(ctrlr_id)))
-      continue;  // skipping entry of deleted controller
+      continue;  //  skipping entry of deleted controller
 
     switch (ctrlr_val->cs_row_status) {
       case UNC_CS_APPLIED:
         applied = true;
-      break;
+        break;
       case UNC_CS_NOT_APPLIED:
         not_applied = true;
-      break;
+        break;
       case UNC_CS_INVALID:
         invalid = true;
         break;
@@ -4872,14 +4918,15 @@ upll_rc_t PolicingProfileEntryMoMgr::SetPPEntryConsolidatedStatus(ConfigKeyVal *
         UPLL_LOG_DEBUG("Invalid status");
         DELETE_IF_NOT_NULL(ctrlr_ckv);
         break;
-        // return UPLL_RC_ERR_GENERIC;
+        //  return UPLL_RC_ERR_GENERIC;
     }
     pp_exist_on_ctrlr = NULL;
   }
   UPLL_LOG_DEBUG("PPE - applied %d not_applied %d", applied, not_applied);
   if (invalid) {
     c_status = UNC_CS_INVALID;
-  } if (applied && !not_applied) {
+  }
+  if (applied && !not_applied) {
     c_status = UNC_CS_APPLIED;
   } else if (!applied && not_applied) {
     c_status = UNC_CS_NOT_APPLIED;
@@ -4888,7 +4935,7 @@ upll_rc_t PolicingProfileEntryMoMgr::SetPPEntryConsolidatedStatus(ConfigKeyVal *
   } else {
     c_status = UNC_CS_APPLIED;
   }
-  // Set cs_status
+  //  Set cs_status
   val_policingprofile_entry_t *val = static_cast
       <val_policingprofile_entry_t *>(GetVal(ikey));
   val->cs_row_status = c_status;
@@ -4896,45 +4943,46 @@ upll_rc_t PolicingProfileEntryMoMgr::SetPPEntryConsolidatedStatus(ConfigKeyVal *
        sizeof(val->valid)/sizeof(val->valid[0]);
        ++loop) {
     for (ConfigKeyVal *tmp = ctrlr_ckv; tmp != NULL;
-                     tmp = tmp->get_next_cfg_key_val()) {
-      ctrlr_val = reinterpret_cast<val_policingprofile_entry_ctrl_t *>(GetVal(tmp));
+         tmp = tmp->get_next_cfg_key_val()) {
+      ctrlr_val = reinterpret_cast<val_policingprofile_entry_ctrl_t *>
+          (GetVal(tmp));
 
       GET_USER_DATA_CTRLR(tmp, pp_exist_on_ctrlr);
-      UPLL_LOG_DEBUG("Controller name in DB %s",pp_exist_on_ctrlr);
+      UPLL_LOG_DEBUG("Controller name in DB %s", pp_exist_on_ctrlr);
       if (!strcmp(reinterpret_cast<char *>(pp_exist_on_ctrlr),
-                reinterpret_cast<char *>(ctrlr_id)))
-        continue;  // skipping entry of deleted controller
-       if (ctrlr_val->valid[loop] == UNC_VF_VALID) {
+                  reinterpret_cast<char *>(ctrlr_id)))
+        continue;  //  skipping entry of deleted controller
+      if (ctrlr_val->valid[loop] == UNC_VF_VALID) {
         switch (ctrlr_val->cs_attr[loop]) {
           case UNC_CS_APPLIED:
             applied = true;
-        break;
-        case UNC_CS_NOT_APPLIED:
-          not_applied = true;
-        break;
-        case UNC_CS_INVALID:
-          invalid = true;
-        break;
-        default:
-          UPLL_LOG_DEBUG("Invalid status %d", ctrlr_val->cs_attr[loop]);
+            break;
+          case UNC_CS_NOT_APPLIED:
+            not_applied = true;
+            break;
+          case UNC_CS_INVALID:
+            invalid = true;
+            break;
+          default:
+            UPLL_LOG_DEBUG("Invalid status %d", ctrlr_val->cs_attr[loop]);
         }
       }
     }
     if (invalid) {
       c_status = UNC_CS_INVALID;
     } else if (applied && !not_applied) {
-        c_status = UNC_CS_APPLIED;
+      c_status = UNC_CS_APPLIED;
     } else if (!applied && not_applied) {
-        c_status = UNC_CS_NOT_APPLIED;
+      c_status = UNC_CS_NOT_APPLIED;
     } else if (applied && not_applied) {
-        c_status = UNC_CS_PARTIALLY_APPLIED;
+      c_status = UNC_CS_PARTIALLY_APPLIED;
     } else {
-        c_status = UNC_CS_APPLIED;
+      c_status = UNC_CS_APPLIED;
     }
     val->cs_attr[loop] = c_status;
     applied = not_applied =false;
   }
-  
+
   DbSubOp dbop_update = {kOpNotRead, kOpMatchNone, kOpInOutCs};
   result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_UPDATE, dmi,
                                &dbop_update, MAINTBL);
index 554f10dd4a28b0597edec646de9b9358d2014839..d55d8b70afcd7aae9e6bbffd9742f1690fd5edb4 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -19,13 +19,13 @@ namespace upll {
 namespace kt_momgr {
 
 /* This file declares interfaces for keyType KT_POLICINGPROFILE_ENTRY */
-/*
- * @brief  PolicingProfileEntryMoMgr class handles all the request
- *         received from service.
- */
+  /*
  * @brief  PolicingProfileEntryMoMgr class handles all the request
  *         received from service.
  */
 
-class PolicingProfileEntryMoMgr: public MoMgrImpl {
-  private:
+  class PolicingProfileEntryMoMgr: public MoMgrImpl {
+   private:
     /**
      * Member Variable for PolicingProfileEntryBindInfo.
      */
@@ -48,9 +48,8 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
     static BindInfo       rename_flowlist_pp_entry_main_tbl[];
     /**
      * Member Variable for PolicingProfileEntryBindInfo.
-    */
+     */
     static BindInfo       rename_flowlist_pp_entry_ctrl_tbl[];
-    uint32_t cur_instance_count;
     /**
      * @brief  Validates the Attribute of a Particular Class.
      *
@@ -73,8 +72,8 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      * @retval  UPLL_RC_ERR_CFG_SYNTAX  validation failed.
      */
     upll_rc_t ValidateRate(
-       val_policingprofile_entry_t *val_policingprofile_entry,
-       uint32_t operation);
+        val_policingprofile_entry_t *val_policingprofile_entry,
+        uint32_t operation);
 
     /**
      * @Brief  Validates the syntax of red_action,green_action,yellow_action
@@ -87,8 +86,8 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      * @retval  UPLL_RC_ERR_CFG_SYNTAX  validation failed.
      */
     upll_rc_t ValidateColorAction(
-       val_policingprofile_entry_t *val_policingprofile_entry,
-       uint32_t operation);
+        val_policingprofile_entry_t *val_policingprofile_entry,
+        uint32_t operation);
 
     /**
      * @Brief  Validates the syntax ofred_action_priority,green_action_priority,
@@ -102,8 +101,8 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      * @retval  UPLL_RC_ERR_CFG_SYNTAX  validation failed.
      */
     upll_rc_t  ValidateColorPriority(
-       val_policingprofile_entry_t *val_policingprofile_entry,
-       uint32_t operation);
+        val_policingprofile_entry_t *val_policingprofile_entry,
+        uint32_t operation);
 
     /**
      * @Brief  Validates the syntax of Precedence for red,green,yellow
@@ -116,8 +115,8 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      * @retval  UPLL_RC_ERR_CFG_SYNTAX  validation failed.
      */
     upll_rc_t  ValidateColorPrecedence(
-       val_policingprofile_entry_t *val_policingprofile_entry,
-       uint32_t operation);
+        val_policingprofile_entry_t *val_policingprofile_entry,
+        uint32_t operation);
 
     /**
      * @Brief  Validates the syntax of dscp for red,green,yellow
@@ -130,13 +129,13 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      * @retval  UPLL_RC_ERR_CFG_SYNTAX  validation failed.
      */
     upll_rc_t  ValidateColorDscp(
-       val_policingprofile_entry_t *val_policingprofile_entry,
-       uint32_t operation);
+        val_policingprofile_entry_t *val_policingprofile_entry,
+        uint32_t operation);
 
     /**
      * @Brief  Validates syntax of policingprofile name and checks whether it
      *         exists in KT_POLICINGPROFILE table, if not exists sends
-                  SEMANTIC error.
+     SEMANTIC error.
      *
      * @param[in]  policing_profile_name  policingprofile_name.
      *
@@ -145,7 +144,7 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      * @retval  UPLL_RC_ERR_SEMANTIC    name is not exists in table
      */
     upll_rc_t ValidatePolicingProfileName(ConfigKeyVal *ikey, DalDmlIntf *dmi,
-        IpcReqRespHeader *req);
+                                          IpcReqRespHeader *req);
 
     /**
      * @Brief  Validates the syntax of the specified key and value structure
@@ -168,17 +167,17 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      *         key structure.
      *
      * @param[in]  key_policingprofile_entry  KT_POLICING_PROFILE_ENTRY
-                                             key structure.
+     key structure.
      *
      * @retval  UPLL_RC_SUCCESS         validation succeeded.
      * @retval  UPLL_RC_ERR_CFG_SYNTAX  validation failed.
      */
-     upll_rc_t ValidatePolicingProfileEntryKey(
-           ConfigKeyVal *key, uint32_t operation);
+    upll_rc_t ValidatePolicingProfileEntryKey(
+        ConfigKeyVal *key, uint32_t operation);
 
     /**
      * @Brief  Validates the syntax for KT_POLICING_PROFILE_ENTRY
-               keytype value structure.
+     keytype value structure.
      *
      * @param[in]  key_policingprofile_entry  KT_POLICING_PROFILE_ENTRY
      *                                        key structure.
@@ -209,7 +208,7 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      * @retval  UPLL_RC_ERR_INVALID_OPTION2  Option2 is not valid.
      */
     upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                                   const char* ctrlr_name = NULL);
+                                 const char* ctrlr_name = NULL);
 
     /**
      * @Brief  Checks if the specified key type and
@@ -224,7 +223,7 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      */
     upll_rc_t ValPolicingProfileEntryAttributeSupportCheck(
         val_policingprofile_entry_t *val_policingprofile_entry,
-       const uint8_t* attrs);
+        const uint8_t* attrs);
 
     /**
      * @Brief  Checks if the specified green_action, green_action_priority,
@@ -235,8 +234,9 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      * @param[in]  attrs                      Refers supported capability file attributes
      *                                        for the given controller name.
      */
-     void ValidateGreenFieldAttribute(val_policingprofile_entry_t *
-      val_policingprofile_entry, const uint8_t *attrs);
+    void ValidateGreenFieldAttribute(val_policingprofile_entry_t *
+                                     val_policingprofile_entry,
+                                     const uint8_t *attrs);
 
     /**
      * @Brief  Checks if the specified yellow_action, yellow_action_priority,
@@ -247,8 +247,9 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      * @param[in]  attrs                      Refers supported capability file
      *                                        attributes for the given controller name.
      */
-      void ValidateYellowFieldAttribute(val_policingprofile_entry_t *
-        val_policingprofile_entry, const uint8_t *attrs);
+    void ValidateYellowFieldAttribute(val_policingprofile_entry_t *
+                                      val_policingprofile_entry,
+                                      const uint8_t *attrs);
 
     /**
      * @Brief  Checks if the specified red_action, red_action_priority,
@@ -258,13 +259,14 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      * @param[in]  val_policingprofile_entry  value structure.
      * @param[in]  attrs                      Refers supported capability file attributes
      */
-     void ValidateRedFieldAttribute(val_policingprofile_entry_t *
-      val_policingprofile_entry, const uint8_t *attrs);
+    void ValidateRedFieldAttribute(val_policingprofile_entry_t *
+                                   val_policingprofile_entry,
+                                   const uint8_t *attrs);
 
     /**
      * @Brief  Validates the policingprofile_name in key_sttruct exists in
      *         VTN/VBR/VBRIF policingmap table, if exists UPDATE/DELETE
-        *         opearations are not allowed for val struct fields .
+     *         opearations are not allowed for val struct fields .
      *
      * @param[in]  policingprofile_name  name.
      *
@@ -276,7 +278,7 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
                                                         IpcReqRespHeader *req);
 
 
-  public:
+   public:
     /**
      * @brief  PolicingProfileEntryMoMgr Class Constructor.
      */
@@ -297,7 +299,7 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      * @brief  Validation or the Incoming Attributes of the Class.
      *
      * @param[out]  val      This Contains the pointer to the Class
-                             for which memory has to be allocated.
+     for which memory has to be allocated.
      * @param[in]   indx     Describes the Attributes.
      * @param[in]   valid    Describes the Pointer to attributes of Class
      * @param[in]   dt_type  Describes Configiration Information.
@@ -308,15 +310,15 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      */
 
     upll_rc_t GetValid(void *val,
-                    uint64_t indx,
-                    uint8_t *&valid,
-                    upll_keytype_datatype_t dt_type,
-                    MoMgrTables tbl);
+                       uint64_t indx,
+                       uint8_t *&valid,
+                       upll_keytype_datatype_t dt_type,
+                       MoMgrTables tbl);
     /**
      * @brief  Allocates Memory for the Incoming Pointer to the Class.
      *
      * @param[out]  ck_val   This Contains the pointer to the Class
-                             for which memory has to be allocated.
+     for which memory has to be allocated.
      * @param[in]   dt_type  Describes Configiration Information.
      * @param[in]   tbl      Describes the Destination table Information.
      *
@@ -325,29 +327,29 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      */
 
     upll_rc_t AllocVal(ConfigVal *&ck_val,
-                    upll_keytype_datatype_t dt_type,
-                     MoMgrTables tbl);
+                       upll_keytype_datatype_t dt_type,
+                       MoMgrTables tbl);
 
     /**
      * @brief  Method Updates the ConfigStatus for AuditConfigiration.
      *
-     * @param[out]  ctrlr_rslt   This Contains the pointer to the Class
-     *                           for which ConfigStatus is Updated.
+     * @param[in]   cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
      * @param[in]   phase        Describes Commit Control Status
-                                 Information.
+     Information.
      * @param[in]   ckv_running  Describes the Response Code.
-     * @param[in]   ckv_audit    Pointer to DalDmlIntf Class.
+     * @param[in]   dmi          Pointer to the DalDmlIntf(DB Interface)
      *
      * @retval  UPLL_RT_SUCCESS      Successfull completion.
      * @retval  UPLL_RC_ERR_GENERIC  Failure.
      */
-    upll_rc_t UpdateAuditConfigStatus(
-        unc_keytype_configstatus_t cs_status, uuc::UpdateCtrlrPhase phase,
-        ConfigKeyVal *&ckv_running);
+    upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
+                                      uuc::UpdateCtrlrPhase phase,
+                                      ConfigKeyVal *&ckv_running,
+                                      DalDmlIntf *dmi);
 
     /**
      * @brief  Method used to fill the CongigKeyVal with the Parent Class
-               Information.
+     Information.
      *
      * @param[out]  okey        This Contains the pointer to the
      *                          ConfigKeyVal Class for which fields have to be
@@ -361,14 +363,14 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      */
 
     upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey,
-                             ConfigKeyVal *parent_key);
+                                ConfigKeyVal *parent_key);
 
     /**
      * @brief  Method used to get the RenamedUncKey.
      *
      * @param[out]  ctrlr_key  This Contains the pointer to the Class for which
      *                         fields have to be updated with values
-                               from the parent Class.
+     from the parent Class.
      * @param[in]   dt_type    Describes Configiration Information.
      * @param[in]   dmi        Pointer to DalDmlIntf Class.
      * @param[in]   ctrlr_id   Describes the Controller Name.
@@ -378,17 +380,17 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      */
 
     upll_rc_t GetRenamedUncKey(ConfigKeyVal *ctrlr_key,
-                            upll_keytype_datatype_t dt_type,
-                            DalDmlIntf *dmi, uint8_t *ctrlr_id);
+                               upll_keytype_datatype_t dt_type,
+                               DalDmlIntf *dmi, uint8_t *ctrlr_id);
 
     /**
      * @brief  Method used to Duplicate the ConfigkeyVal.
      *
      * @param[out]  okey  This Contains the pointer to the
      *                    Class for which fields have to be
-                          updated with values from the Request.
+     updated with values from the Request.
      * @param[in]   req   This Contains the pointer to the Class
-                          which is used for the Duplication .
+     which is used for the Duplication .
      * @param[in]   tbl   Describes the Destination tables.
      *
      * @retval  UPLL_RT_SUCCESS      Successfull completion.
@@ -396,8 +398,8 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      */
 
     upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey,
-                           ConfigKeyVal *&req,
-                           MoMgrTables tbl);
+                              ConfigKeyVal *&req,
+                              MoMgrTables tbl);
 
     /**
      * @brief  Method used for Validation before Merge.
@@ -413,8 +415,8 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      */
 
     upll_rc_t MergeValidate(unc_key_type_t keytype,
-                         const char *ctrlr_id,
-                         ConfigKeyVal *ikey, DalDmlIntf *dmi);
+                            const char *ctrlr_id,
+                            ConfigKeyVal *ikey, DalDmlIntf *dmi);
 
     /**
      * @brief  Method used for Rename Operation.
@@ -429,8 +431,8 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      */
 
     upll_rc_t RenameMo(IpcReqRespHeader *req,
-                    ConfigKeyVal *ikey,
-                    DalDmlIntf *dmi, const char *ctrlr_id);
+                       ConfigKeyVal *ikey,
+                       DalDmlIntf *dmi, const char *ctrlr_id);
 
 
     /**
@@ -444,14 +446,14 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      * @retval  UPLL_RC_ERR_GENERIC  Failure.
      */
     upll_rc_t IsReferenced(
-                    ConfigKeyVal *ikey,
-                    upll_keytype_datatype_t dt_type, DalDmlIntf *dmi);
+        ConfigKeyVal *ikey,
+        upll_keytype_datatype_t dt_type, DalDmlIntf *dmi);
 
     /**
      * @brief  Method used for RenamedControllerkey(PfcName).
      *
      * @param[out]  ikey        Contains the Pointer to ConfigkeyVal Class
-                                and contains the Pfc Name.
+     and contains the Pfc Name.
      * @param[in]   dt_type     Describes Configiration Information.
      * @param[in]   dmi         Pointer to DalDmlIntf Class.
      * @param[in]   ctrlr_name  Describes the Controller Name.
@@ -461,15 +463,15 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      */
 
     upll_rc_t GetRenamedControllerKey(ConfigKeyVal *ikey,
-                                   upll_keytype_datatype_t dt_type,
-                                   DalDmlIntf *dmi,
-                                   controller_domain *ctrlr_dom = NULL);
+                                      upll_keytype_datatype_t dt_type,
+                                      DalDmlIntf *dmi,
+                                      controller_domain *ctrlr_dom = NULL);
 
     /**
      * @brief  Method used for TxCopyCandidateToRunning.
      *
      * @param[in]  keytype              Describes the followong keytype
-                                        undergoing the operation.
+     undergoing the operation.
      * @param[in]  ctrlr_commit_status  Pointer to the CtrlrCommitStatusList Class
      * @param[in]  dmi                  Pointer to DalDmlIntf Class.
      *
@@ -478,9 +480,10 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE  No Recorde Exists in database.
      */
 
-    upll_rc_t TxCopyCandidateToRunning(unc_key_type_t keytype,
-                                    CtrlrCommitStatusList *ctrlr_commit_status,
-                                    DalDmlIntf *dmi);
+    upll_rc_t TxCopyCandidateToRunning(
+        unc_key_type_t keytype,
+        CtrlrCommitStatusList *ctrlr_commit_status,
+        DalDmlIntf *dmi);
 
     /**
      * @brief      Method used to Update the Values in the specified key type.
@@ -493,8 +496,8 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      * @retval     UPLL_RC_ERR_GENERIC        Failure case.
      */
     upll_rc_t UpdateMo(IpcReqRespHeader *req,
-                             ConfigKeyVal *ikey,
-                             DalDmlIntf *dmi);
+                       ConfigKeyVal *ikey,
+                       DalDmlIntf *dmi);
 
     /**
      * @brief  Method used for UpdateConfigStatus.
@@ -510,11 +513,11 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      */
 
     upll_rc_t UpdateConfigStatus(ConfigKeyVal *key,
-                              unc_keytype_operation_t op,
-                              uint32_t driver_result,
-                              ConfigKeyVal *nreq,
-                              DalDmlIntf   *dmi,
-                              ConfigKeyVal *ctrlr_key);
+                                 unc_keytype_operation_t op,
+                                 uint32_t driver_result,
+                                 ConfigKeyVal *nreq,
+                                 DalDmlIntf   *dmi,
+                                 ConfigKeyVal *ctrlr_key);
 
     /**
      * @brief  Method used for Read Operation.
@@ -528,8 +531,8 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      */
 
     upll_rc_t ReadMo(IpcReqRespHeader *req,
-                  ConfigKeyVal *ikey,
-                  DalDmlIntf *dmi);
+                     ConfigKeyVal *ikey,
+                     DalDmlIntf *dmi);
 
     /**
      * @brief  Method used for ReadSibling Operation.
@@ -543,8 +546,8 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      */
 
     upll_rc_t ReadSiblingMo(IpcReqRespHeader *req,
-                         ConfigKeyVal *ikey,
-                         DalDmlIntf *dmi);
+                            ConfigKeyVal *ikey,
+                            DalDmlIntf *dmi);
 
     /**
      * @brief  Method used for Trasaction Vote Operation.
@@ -560,12 +563,12 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      */
 
     upll_rc_t ReadRecord(IpcReqRespHeader *req,
-                      ConfigKeyVal *ikey,
-                      DalDmlIntf *dmi, unc_keytype_operation_t op);
+                         ConfigKeyVal *ikey,
+                         DalDmlIntf *dmi, unc_keytype_operation_t op);
 
     /**
      * @brief  Method GetPolicingprofileKeyVal used for checking
-               the refernce count for policngprofile object .
+     the refernce count for policngprofile object .
 
      * @param[out]  okey        Contains the Pointer to ConfigkeyVal Class
      *                          and contains the Pfc Name.
@@ -577,7 +580,7 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      */
 
     upll_rc_t GetPolicingprofileKeyVal(ConfigKeyVal *&okey,
-                          ConfigKeyVal *&ikey);
+                                       ConfigKeyVal *&ikey);
 
     /**
      * @brief  Method to compare to keys
@@ -616,12 +619,12 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      */
 
     upll_rc_t TxUpdateController(unc_key_type_t keytype,
-                                          uint32_t session_id,
-                                          uint32_t config_id,
-                                          uuc::UpdateCtrlrPhase phase,
-                                          set<string> *affected_ctrlr_set,
-                                          DalDmlIntf *dmi,
-                                          ConfigKeyVal **err_ckv);
+                                 uint32_t session_id,
+                                 uint32_t config_id,
+                                 uuc::UpdateCtrlrPhase phase,
+                                 set<string> *affected_ctrlr_set,
+                                 DalDmlIntf *dmi,
+                                 ConfigKeyVal **err_ckv);
 
     /**
      * @brief  Method TxUpdateProcess .
@@ -639,10 +642,12 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      */
 
     upll_rc_t TxUpdateProcess(ConfigKeyVal *ck_main,
-                             IpcResponse *ipc_resp,
-                             unc_keytype_operation_t op,
-                             DalDmlIntf *dmi,
-                             controller_domain *ctrlr_dom);
+                              IpcResponse *ipc_resp,
+                              unc_keytype_operation_t op,
+                              DalDmlIntf *dmi,
+                              controller_domain *ctrlr_dom,
+                              set<string> *affected_ctrlr_set,
+                              bool *driver_resp);
 
     /**
      * @brief  Method GetControllerSpan.
@@ -656,7 +661,8 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      */
 
     upll_rc_t GetControllerSpan(ConfigKeyVal *ikey,
-                         upll_keytype_datatype_t dt_type, DalDmlIntf *dmi);
+                                upll_keytype_datatype_t dt_type,
+                                DalDmlIntf *dmi);
 
     /**
      * @brief  Method CopyToConfigKey.
@@ -670,7 +676,7 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      */
 
     upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey,
-        ConfigKeyVal *ikey);
+                              ConfigKeyVal *ikey);
 
     /**
      * @brief  Method GetRenameKeyBindInfo.
@@ -683,7 +689,7 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      */
 
     bool GetRenameKeyBindInfo(unc_key_type_t key_type,
-        BindInfo *&binfo, int &nattr, MoMgrTables tbl);
+                              BindInfo *&binfo, int &nattr, MoMgrTables tbl);
 
     /**
      * @brief  Method UpdatePolicingProfileEntryRenamed.
@@ -697,8 +703,8 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      */
 
     upll_rc_t UpdatePolicingProfileEntryRenamed(
-      ConfigKeyVal *rename_info,
-      DalDmlIntf *dmi, upll_keytype_datatype_t data_type);
+        ConfigKeyVal *rename_info,
+        DalDmlIntf *dmi, upll_keytype_datatype_t data_type);
 
     /**
      * @brief  Method to get Parent ConfigKeyVal
@@ -736,7 +742,7 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      * @retval  UPLL_RC_ERR_DB_ACCESS         DB access error
      */
     upll_rc_t CtrlrTblDelete(ConfigKeyVal *ppe_ckv,
-      DalDmlIntf *dmi, upll_keytype_datatype_t dt_type);
+                             DalDmlIntf *dmi, upll_keytype_datatype_t dt_type);
 
     /**
      * @brief  Method to Create or Delete record in ctrlrtbl
@@ -753,9 +759,9 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      * @retval  UPLL_RC_ERR_DB_ACCESS         DB access error
      */
     upll_rc_t PolicingProfileEntryCtrlrTblOper
-      (const char *policingprofile_name, const char *ctrlr_id,
-       DalDmlIntf *dmi, unc_keytype_operation_t oper,
-       upll_keytype_datatype_t dt_type);
+        (const char *policingprofile_name, const char *ctrlr_id,
+         DalDmlIntf *dmi, unc_keytype_operation_t oper,
+         upll_keytype_datatype_t dt_type);
 
     /**
      * @brief  Method to Get Policingprofile ConfigKeyVal
@@ -787,7 +793,7 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      * @retval  UPLL_RC_ERR_DB_ACCESS         DB access error
      */
     upll_rc_t CtrlrTblCreate(ConfigKeyVal *ppe_ckv,
-        DalDmlIntf *dmi, upll_keytype_datatype_t dt_type);
+                             DalDmlIntf *dmi, upll_keytype_datatype_t dt_type);
 
     /**
      * @brief  Method to Set the Consolidated status
@@ -801,7 +807,7 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      * @retval  UPLL_RC_ERR_DB_ACCESS         DB access error
      */
     upll_rc_t SetConsolidatedStatus(ConfigKeyVal *ikey,
-        DalDmlIntf *dmi);
+                                    DalDmlIntf *dmi);
 
     /**
      * @brief  Method to Read policingprofileentry avl structure
@@ -818,44 +824,45 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
      * @retval  UPLL_RC_ERR_DB_ACCESS         DB access error
      */
     upll_rc_t ReadPolicingProfileEntry(
-      const char *policingprofile_name, uint8_t seq_num,
-      const char *ctrlr_id, DalDmlIntf *dmi, upll_keytype_datatype_t dt_type,
-      ConfigKeyVal *&ppe_ckv, unc_keytype_option1_t opt1 = UNC_OPT1_NORMAL);
+        const char *policingprofile_name, uint8_t seq_num,
+        const char *ctrlr_id, DalDmlIntf *dmi, upll_keytype_datatype_t dt_type,
+        ConfigKeyVal *&ppe_ckv, unc_keytype_option1_t opt1 = UNC_OPT1_NORMAL);
 
     upll_rc_t IsFlowlistConfigured(const char* flowlist_name,
-      DalDmlIntf *dmi);
+                                   DalDmlIntf *dmi);
 
     upll_rc_t ReadDetailEntry(
-      ConfigKeyVal *ff_ckv, upll_keytype_datatype_t dt_type,
-      DbSubOp dbop, DalDmlIntf *dmi);
+        ConfigKeyVal *ff_ckv, upll_keytype_datatype_t dt_type,
+        DbSubOp dbop, DalDmlIntf *dmi);
 
     upll_rc_t ValidatePolicingprofileEntryVal(ConfigKeyVal *key,
                                               uint32_t operation,
                                               uint32_t datatype);
 
     upll_rc_t ValidateFlowList(
-      ConfigKeyVal *ikey, DalDmlIntf *dmi,
-      IpcReqRespHeader *req);
+        ConfigKeyVal *ikey, DalDmlIntf *dmi,
+        IpcReqRespHeader *req);
 
     upll_rc_t UpdateMainTbl(ConfigKeyVal *ppe_key,
-      unc_keytype_operation_t op, uint32_t driver_result,
-      ConfigKeyVal *nreq, DalDmlIntf *dmi);
+                            unc_keytype_operation_t op, uint32_t driver_result,
+                            ConfigKeyVal *nreq, DalDmlIntf *dmi);
 
     upll_rc_t FilterAttributes(ConfigKeyVal *ckv_main,
                                ConfigKeyVal *ckv_ctrlr);
 
     upll_rc_t ValidateValidElements(
-      const char *policingprofile_name, DalDmlIntf *dmi,
-      upll_keytype_datatype_t dt_type);
+        const char *policingprofile_name, DalDmlIntf *dmi,
+        upll_keytype_datatype_t dt_type);
 
     upll_rc_t IsFlowListMatched(const char *flowlist_name,
-      upll_keytype_datatype_t dt_type, DalDmlIntf *dmi);
+                                upll_keytype_datatype_t dt_type,
+                                DalDmlIntf *dmi);
 
     upll_rc_t SetValidAudit(ConfigKeyVal *&ikey);
 
     upll_rc_t DecrementRefCount(
-      ConfigKeyVal *ppe_ckv, DalDmlIntf *dmi,
-      upll_keytype_datatype_t dt_type);
+        ConfigKeyVal *ppe_ckv, DalDmlIntf *dmi,
+        upll_keytype_datatype_t dt_type);
     upll_rc_t UpdateVnodeVal(ConfigKeyVal *ikey,
                              DalDmlIntf *dmi,
                              upll_keytype_datatype_t data_type,
@@ -871,28 +878,28 @@ class PolicingProfileEntryMoMgr: public MoMgrImpl {
         unc_keytype_configstatus_t current_cs,
         unc_keytype_configstatus_t current_ctrlr_cs);
 
-   upll_rc_t GetFlowListEntryConfigKey(
+    upll_rc_t GetFlowListEntryConfigKey(
         ConfigKeyVal *&okey, ConfigKeyVal *ikey);
 
-   upll_rc_t SetRenameFlag(ConfigKeyVal *ikey,
+    upll_rc_t SetRenameFlag(ConfigKeyVal *ikey,
                             DalDmlIntf *dmi,
                             IpcReqRespHeader *req);
 
-   upll_rc_t GetFlowlistConfigKey(
+    upll_rc_t GetFlowlistConfigKey(
         const char *flowlist_name, ConfigKeyVal *&okey,
-        DalDmlIntf *dmi); 
+        DalDmlIntf *dmi);
 
     upll_rc_t SetPPEntryConsolidatedStatus(ConfigKeyVal *ikey,
                                            uint8_t *ctrlr_id,
                                            DalDmlIntf *dmi);
-};
-
-typedef struct val_policingprofile_entry_ctrl {
-  uint8_t valid[18];
-  unc_keytype_configstatus_t cs_row_status;
-  unc_keytype_configstatus_t cs_attr[18];
-  uint8_t flags;
-}val_policingprofile_entry_ctrl_t;
+  };
+
+  typedef struct val_policingprofile_entry_ctrl {
+    uint8_t valid[18];
+    unc_keytype_configstatus_t cs_row_status;
+    unc_keytype_configstatus_t cs_attr[18];
+    uint8_t flags;
+  }val_policingprofile_entry_ctrl_t;
 
 }  // namespace kt_momgr
 }  // namespace upll
index ba6a7a2efe8dd4ab9042d4faddb8e03394fd8929..fad2dddeb722da43791a394d4a766c217b5eb164 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -25,421 +25,422 @@ namespace kt_momgr {
 #define  POLICINGPROFILE_RENAME 0x01
 
 /* This file declares interfaces for keyType KT_POLICING_PROFILE */
-/**
- * @brief PolicingProfileMoMgr class handles all the request
- *        received from service.
- */
+  /**
+   * @brief PolicingProfileMoMgr class handles all the request
+   *        received from service.
+   */
+
+  // PolicingProfile Table(Main Table)
+  BindInfo PolicingProfileMoMgr::policingprofile_bind_info[] = {
+    { uudst::policingprofile::kDbiPolicingProfileName,
+      CFG_KEY,
+      offsetof(key_policingprofile_t, policingprofile_name),
+      uud::kDalChar,
+      kMaxLenPolicingProfileName + 1 },
+    { uudst::policingprofile::kDbiFlags,
+      CK_VAL,
+      offsetof(key_user_data_t, flags),
+      uud::kDalUint8, 1},
+    { uudst::policingprofile::kDbiCsRowStatus,
+      CS_VAL,
+      offsetof(val_policingprofile_t, cs_row_status),
+      uud::kDalUint8, 1 }
+  };
+
+  // PolicingProfile Rename Table
+  BindInfo PolicingProfileMoMgr::policingprofile_rename_bind_info[] = {
+    { uudst::policingprofile_rename::kDbiPolicingProfileName,
+      CFG_KEY,
+      offsetof(key_policingprofile_t, policingprofile_name),
+      uud::kDalChar,
+      (kMaxLenPolicingProfileName + 1) },
+    { uudst::policingprofile_rename::kDbiCtrlrName,
+      CK_VAL,
+      offsetof(key_user_data_t, ctrlr_id),
+      uud::kDalChar,
+      (kMaxLenCtrlrId + 1) },
+    { uudst::policingprofile_rename::kDbiPolicingProfileNameCtrlr,
+      CFG_VAL,
+      offsetof(val_rename_policingprofile_t, policingprofile_newname),
+      uud::kDalChar,
+      (kMaxLenPolicingProfileName+1) }
+  };
+
+  // PolicingProfileController Table
+  BindInfo PolicingProfileMoMgr::policingprofile_controller_bind_info[] = {
+    { uudst::policingprofile_ctrlr::kDbiPolicingProfileName,
+      CFG_KEY,
+      offsetof(key_policingprofile_t, policingprofile_name),
+      uud::kDalChar, (kMaxLenPolicingProfileName + 1) },
+    { uudst::policingprofile_ctrlr::kDbiCtrlrName,
+      CK_VAL,
+      offsetof(key_user_data_t, ctrlr_id),
+      uud::kDalChar, (kMaxLenCtrlrId + 1) },
+    { uudst::policingprofile_ctrlr::kDbiRefCount,
+      CFG_VAL,
+      offsetof(val_policingprofile_ctrl_t, ref_count),
+      uud::kDalUint32, 1 },
+    { uudst::policingprofile_ctrlr::kDbiFlags,
+      CK_VAL,
+      offsetof(key_user_data_t, flags),
+      uud::kDalUint8, 1},
+    { uudst::policingprofile_ctrlr::kDbiCsRowStatus,
+      CS_VAL,
+      offsetof(val_policingprofile_ctrl_t, cs_row_status),
+      uud::kDalUint8, 1 },
+  };
+
+  BindInfo PolicingProfileMoMgr::rename_policingprofile_main_tbl[] = {
+    { uudst::policingprofile::kDbiPolicingProfileName,
+      CFG_MATCH_KEY,
+      offsetof(key_policingprofile_t, policingprofile_name),
+      uud::kDalChar,
+      (kMaxLenPolicingProfileName + 1) },
+    { uudst::policingprofile::kDbiPolicingProfileName,
+      CFG_INPUT_KEY,
+      offsetof(key_rename_vnode_info_t, new_policingprofile_name),
+      uud::kDalChar,
+      (kMaxLenPolicingProfileName + 1) },
+    { uudst::policingprofile::kDbiFlags,
+      CK_VAL,
+      offsetof(key_user_data_t, flags),
+      uud::kDalUint8, 1 }
+  };
+
+  BindInfo PolicingProfileMoMgr::rename_policingprofile_ctrlr_tbl[] = {
+    { uudst::policingprofile_ctrlr::kDbiPolicingProfileName,
+      CFG_MATCH_KEY,
+      offsetof(key_policingprofile_t, policingprofile_name),
+      uud::kDalChar,
+      (kMaxLenPolicingProfileName + 1) },
+    { uudst::policingprofile_ctrlr::kDbiPolicingProfileName,
+      CFG_INPUT_KEY,
+      offsetof(key_rename_vnode_info_t, new_policingprofile_name),
+      uud::kDalChar,
+      (kMaxLenPolicingProfileName + 1) },
+    { uudst::policingprofile_ctrlr::kDbiFlags,
+      CK_VAL,
+      offsetof(key_user_data_t, flags),
+      uud::kDalUint8, 1 }
+  };
+
+  BindInfo PolicingProfileMoMgr::rename_policingprofile_rename_tbl[] = {
+    { uudst::policingprofile_rename::kDbiPolicingProfileName,
+      CFG_MATCH_KEY,
+      offsetof(key_policingprofile_t, policingprofile_name),
+      uud::kDalChar,
+      (kMaxLenPolicingProfileName + 1) },
+    { uudst::policingprofile_rename::kDbiPolicingProfileName,
+      CFG_INPUT_KEY,
+      offsetof(key_rename_vnode_info_t, new_policingprofile_name),
+      uud::kDalChar,
+      (kMaxLenPolicingProfileName + 1) }
+  };
+
+  unc_key_type_t PolicingProfileMoMgr::policingprofile_child[] = {
+    UNC_KT_POLICING_PROFILE_ENTRY,
+  };
+
+  bool PolicingProfileMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type,
+                                                  BindInfo *&binfo,
+                                                  int &nattr,
+                                                  MoMgrTables tbl) {
+    switch (key_type) {
+      case UNC_KT_POLICING_PROFILE:
+        if (MAINTBL == tbl) {
+          nattr = NUM_KEY_MAIN_COL;
+          binfo = rename_policingprofile_main_tbl;
+        } else if (CTRLRTBL == tbl) {
+          nattr = NUM_KEY_CTRL_COL;
+          binfo = rename_policingprofile_ctrlr_tbl;
+        } else {
+          nattr = NUM_KEY_RENAME_COL;
+          binfo = rename_policingprofile_rename_tbl;
+        }
+        break;
+      default:
+        return PFC_FALSE;
+    }
+    return PFC_TRUE;
+  }
 
-// PolicingProfile Table(Main Table)
-BindInfo PolicingProfileMoMgr::policingprofile_bind_info[] = {
-  { uudst::policingprofile::kDbiPolicingProfileName,
-    CFG_KEY,
-    offsetof(key_policingprofile_t, policingprofile_name),
-    uud::kDalChar,
-    kMaxLenPolicingProfileName + 1 },
-  { uudst::policingprofile::kDbiFlags,
-    CK_VAL,
-    offsetof(key_user_data_t, flags),
-    uud::kDalUint8, 1},
-  { uudst::policingprofile::kDbiCsRowStatus,
-    CS_VAL,
-    offsetof(val_policingprofile_t, cs_row_status),
-    uud::kDalUint8, 1 }
-};
-
-// PolicingProfile Rename Table
-BindInfo PolicingProfileMoMgr::policingprofile_rename_bind_info[] = {
-  { uudst::policingprofile_rename::kDbiPolicingProfileName,
-    CFG_KEY,
-    offsetof(key_policingprofile_t, policingprofile_name),
-    uud::kDalChar,
-    (kMaxLenPolicingProfileName + 1) },
-  { uudst::policingprofile_rename::kDbiCtrlrName,
-    CK_VAL,
-    offsetof(key_user_data_t, ctrlr_id),
-    uud::kDalChar,
-    (kMaxLenCtrlrId + 1) },
-  { uudst::policingprofile_rename::kDbiPolicingProfileNameCtrlr,
-    CFG_VAL,
-    offsetof(val_rename_policingprofile_t, policingprofile_newname),
-    uud::kDalChar,
-    (kMaxLenPolicingProfileName+1) }
-};
-
-// PolicingProfileController Table
-BindInfo PolicingProfileMoMgr::policingprofile_controller_bind_info[] = {
-  { uudst::policingprofile_ctrlr::kDbiPolicingProfileName,
-    CFG_KEY,
-    offsetof(key_policingprofile_t, policingprofile_name),
-    uud::kDalChar, (kMaxLenPolicingProfileName + 1) },
-  { uudst::policingprofile_ctrlr::kDbiCtrlrName,
-    CK_VAL,
-    offsetof(key_user_data_t, ctrlr_id),
-    uud::kDalChar, (kMaxLenCtrlrId + 1) },
-  { uudst::policingprofile_ctrlr::kDbiRefCount,
-    CFG_VAL,
-    offsetof(val_policingprofile_ctrl_t, ref_count),
-    uud::kDalUint32, 1 },
-  { uudst::policingprofile_ctrlr::kDbiFlags,
-    CK_VAL,
-    offsetof(key_user_data_t, flags),
-    uud::kDalUint8, 1},
-  { uudst::policingprofile_ctrlr::kDbiCsRowStatus,
-    CS_VAL,
-    offsetof(val_policingprofile_ctrl_t, cs_row_status),
-    uud::kDalUint8, 1 },
-};
-
-BindInfo PolicingProfileMoMgr::rename_policingprofile_main_tbl[] = {
-  { uudst::policingprofile::kDbiPolicingProfileName,
-    CFG_MATCH_KEY,
-    offsetof(key_policingprofile_t, policingprofile_name),
-    uud::kDalChar,
-    (kMaxLenPolicingProfileName + 1) },
-  { uudst::policingprofile::kDbiPolicingProfileName,
-    CFG_INPUT_KEY,
-    offsetof(key_rename_vnode_info_t, new_policingprofile_name),
-    uud::kDalChar,
-    (kMaxLenPolicingProfileName + 1) },
-  { uudst::policingprofile::kDbiFlags,
-    CK_VAL,
-    offsetof(key_user_data_t, flags),
-    uud::kDalUint8, 1 }
-};
-
-BindInfo PolicingProfileMoMgr::rename_policingprofile_ctrlr_tbl[] = {
-  { uudst::policingprofile_ctrlr::kDbiPolicingProfileName,
-    CFG_MATCH_KEY,
-    offsetof(key_policingprofile_t, policingprofile_name),
-    uud::kDalChar,
-    (kMaxLenPolicingProfileName + 1) },
-  { uudst::policingprofile_ctrlr::kDbiPolicingProfileName,
-    CFG_INPUT_KEY,
-    offsetof(key_rename_vnode_info_t, new_policingprofile_name),
-    uud::kDalChar,
-    (kMaxLenPolicingProfileName + 1) },
-  { uudst::policingprofile_ctrlr::kDbiFlags,
-    CK_VAL,
-    offsetof(key_user_data_t, flags),
-    uud::kDalUint8, 1 }
-};
-
-BindInfo PolicingProfileMoMgr::rename_policingprofile_rename_tbl[] = {
-  { uudst::policingprofile_rename::kDbiPolicingProfileName,
-    CFG_MATCH_KEY,
-    offsetof(key_policingprofile_t, policingprofile_name),
-    uud::kDalChar,
-    (kMaxLenPolicingProfileName + 1) },
-  { uudst::policingprofile_rename::kDbiPolicingProfileName,
-    CFG_INPUT_KEY,
-    offsetof(key_rename_vnode_info_t, new_policingprofile_name),
-    uud::kDalChar,
-    (kMaxLenPolicingProfileName + 1) }
-};
-
-unc_key_type_t PolicingProfileMoMgr::policingprofile_child[] = {
-  UNC_KT_POLICING_PROFILE_ENTRY,
-};
-
-bool PolicingProfileMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type,
-    BindInfo *&binfo, int &nattr, MoMgrTables tbl) {
-  switch (key_type) {
-    case UNC_KT_POLICING_PROFILE:
-      if (MAINTBL == tbl) {
-        nattr = NUM_KEY_MAIN_COL;
-        binfo = rename_policingprofile_main_tbl;
-      } else if (CTRLRTBL == tbl) {
-        nattr = NUM_KEY_CTRL_COL;
-        binfo = rename_policingprofile_ctrlr_tbl;
-      } else {
-        nattr = NUM_KEY_RENAME_COL;
-        binfo = rename_policingprofile_rename_tbl;
+  /**
+   * @brief  PolicingProfileMoMgr Class Constructor.
+   */
+  PolicingProfileMoMgr::PolicingProfileMoMgr() {
+    UPLL_FUNC_TRACE;
+    ntable = MAX_MOMGR_TBLS;
+    table = new Table *[ntable];
+
+    table[MAINTBL] = new Table(
+        uudst::kDbiPolicingProfileTbl,
+        UNC_KT_POLICING_PROFILE,
+        policingprofile_bind_info,
+        IpctSt::kIpcStKeyPolicingprofile,
+        IpctSt::kIpcStValPolicingprofile,
+        uudst::policingprofile::kDbiPolicingProfileNumCols);
+
+    table[RENAMETBL] = new Table(
+        uudst::kDbiPolicingProfileRenameTbl,
+        UNC_KT_POLICING_PROFILE,
+        policingprofile_rename_bind_info,
+        IpctSt::kIpcStKeyPolicingprofile,
+        IpctSt::kIpcStValRenamePolicingprofile,
+        uudst::policingprofile_rename::kDbiPolicingProfileRenameNumCols);
+
+    table[CTRLRTBL] = new Table(
+        uudst::kDbiPolicingProfileCtrlrTbl,
+        UNC_KT_POLICING_PROFILE,
+        policingprofile_controller_bind_info,
+        IpctSt::kIpcStKeyPolicingprofile,
+        IpctSt::kIpcInvalidStNum,
+        uudst::policingprofile_ctrlr::kDbiPolicingProfileCtrlrNumCols);
+
+    nchild = sizeof(policingprofile_child) / sizeof(policingprofile_child[0]);
+    child = policingprofile_child;
+  }
+
+  /**
+    @brief  PolicingProfileMoMgr Class Destructor.
+    */
+  PolicingProfileMoMgr::~PolicingProfileMoMgr() {
+    for (int i = 0 ; i < ntable; i++) {
+      if (table[i]) {
+        delete table[i];
       }
-      break;
-    default:
-      return PFC_FALSE;
+    }
+    delete[] table;
   }
-  return PFC_TRUE;
-}
 
-/**
- * @brief  PolicingProfileMoMgr Class Constructor.
- */
-PolicingProfileMoMgr::PolicingProfileMoMgr() {
-  UPLL_FUNC_TRACE;
-  ntable = MAX_MOMGR_TBLS;
-  table = new Table *[ntable];
-
-  table[MAINTBL] = new Table(uudst::kDbiPolicingProfileTbl,
-      UNC_KT_POLICING_PROFILE, policingprofile_bind_info,
-      IpctSt::kIpcStKeyPolicingprofile, IpctSt::kIpcStValPolicingprofile,
-      uudst::policingprofile::kDbiPolicingProfileNumCols);
-
-  table[RENAMETBL] = new Table(uudst::kDbiPolicingProfileRenameTbl,
-      UNC_KT_POLICING_PROFILE, policingprofile_rename_bind_info,
-      IpctSt::kIpcStKeyPolicingprofile, IpctSt::kIpcStValRenamePolicingprofile,
-      uudst::policingprofile_rename::kDbiPolicingProfileRenameNumCols);
-
-  table[CTRLRTBL] = new Table(uudst::kDbiPolicingProfileCtrlrTbl,
-      UNC_KT_POLICING_PROFILE, policingprofile_controller_bind_info,
-      IpctSt::kIpcStKeyPolicingprofile, IpctSt::kIpcInvalidStNum,
-      uudst::policingprofile_ctrlr::kDbiPolicingProfileCtrlrNumCols);
-
-  nchild = sizeof(policingprofile_child) / sizeof(policingprofile_child[0]);
-  child = policingprofile_child;
-  cur_instance_count = 0;
-}
-
-/**
-  @brief  PolicingProfileMoMgr Class Destructor.
- */
-PolicingProfileMoMgr::~PolicingProfileMoMgr() {
-  for (int i = 0 ; i < ntable; i++) {
-    if (table[i]) {
-      delete table[i];
+  upll_rc_t PolicingProfileMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
+                                                    DalDmlIntf *dmi,
+                                                    IpcReqRespHeader *req) {
+    UPLL_FUNC_TRACE;
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+    if (NULL == ikey) {
+      return UPLL_RC_ERR_GENERIC;
     }
-  }
-  delete[] table;
-}
-
-upll_rc_t PolicingProfileMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
-                                                  DalDmlIntf *dmi,
-                                                  IpcReqRespHeader *req) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  if (NULL == ikey) {
-    return UPLL_RC_ERR_GENERIC;
-  }
-  if (ikey->get_key_type() != UNC_KT_POLICING_PROFILE)
-    return UPLL_RC_ERR_GENERIC;
-  return result_code;
-}
-
-upll_rc_t PolicingProfileMoMgr::GetValid(void *val, uint64_t indx,
-    uint8_t *&valid,
-    upll_keytype_datatype_t dt_type,
-    MoMgrTables tbl) {
-  UPLL_FUNC_TRACE;
-  if (val == NULL) {
-    UPLL_LOG_DEBUG(" PolicingProfileMoMgr::Value structure is NULL ");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  if (tbl == RENAMETBL) {
-    val_rename_policingprofile_t *val_rename =
-      reinterpret_cast<val_rename_policingprofile_t *> (val);
-    valid = &val_rename->valid[UPLL_IDX_RENAME_PROFILE_RPP];
-  } else if (tbl == CTRLRTBL) {
-    val_policingprofile_ctrl_t *val_ctrl =
-      reinterpret_cast<val_policingprofile_ctrl_t *>(val);
-    if (uudst::policingprofile_ctrlr::kDbiRefCount == indx) {
-      valid = &val_ctrl->valid[0];
-    }
-  } else {
-    valid = NULL;
-    UPLL_LOG_DEBUG(" PolicingProfileMoMgr:: Invalid tbl");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  UPLL_LOG_TRACE(" PolicingProfileMoMgr:: GetValid is Successful");
-  return UPLL_RC_SUCCESS;
-}
-
-upll_rc_t PolicingProfileMoMgr::AllocVal(ConfigVal *&ck_val,
-    upll_keytype_datatype_t dt_type,
-    MoMgrTables tbl) {
-  UPLL_FUNC_TRACE;
-  void *val;  // *ck_nxtval;
-  if (ck_val != NULL) return UPLL_RC_ERR_GENERIC;
-  switch (tbl) {
-    case MAINTBL:
-      val = reinterpret_cast<void *>
-          (ConfigKeyVal::Malloc(sizeof(val_policingprofile_t)));
-      ck_val = new ConfigVal(IpctSt::kIpcStValPolicingprofile, val);
-      UPLL_LOG_DEBUG(" PolicingProfileMoMgr::Value Allocation successful"
-                     " for PolicingProfile MainTbl ");
-      break;
-    case RENAMETBL:
-      val = reinterpret_cast<void *>
-          (ConfigKeyVal::Malloc(sizeof(val_rename_policingprofile_t)));
-      ck_val = new ConfigVal(IpctSt::kIpcStValRenamePolicingprofile, val);
-      UPLL_LOG_DEBUG(" PolicingProfileMoMgr::Value Allocation successful"
-                     " for PolicingProfile RenameTbl ");
-      break;
-    case CTRLRTBL:
-      val = reinterpret_cast<void *>
-          (ConfigKeyVal::Malloc(sizeof(val_policingprofile_ctrl_t)));
-      ck_val = new ConfigVal(IpctSt::kIpcInvalidStNum, val);
-      UPLL_LOG_DEBUG(" PolicingProfileMoMgr::Value Allocation successful"
-                     " for PolicingProfile CtrlrTbl ");
-      break;
-    default:
-      UPLL_LOG_DEBUG(" PolicingProfileMoMgr::Invalid Tbl");
+    if (ikey->get_key_type() != UNC_KT_POLICING_PROFILE)
       return UPLL_RC_ERR_GENERIC;
+    return result_code;
   }
-  if (NULL == val) {
-    UPLL_LOG_DEBUG(" PolicingProfileMoMgr::Value Allocation Failed");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  return UPLL_RC_SUCCESS;
-}
-
-upll_rc_t PolicingProfileMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
-                                                  ConfigKeyVal *parent_key) {
-  UPLL_FUNC_TRACE;
-  key_policingprofile_t *policingprofile_key = NULL;
-  void *pkey = NULL;
-
-  if (parent_key == NULL) {
-    policingprofile_key = reinterpret_cast<key_policingprofile_t *>
-        (ConfigKeyVal::Malloc(sizeof(key_policingprofile_t)));
 
-    okey = new ConfigKeyVal(UNC_KT_POLICING_PROFILE,
-                            IpctSt::kIpcStKeyPolicingprofile,
-                            policingprofile_key, NULL);
-    UPLL_LOG_TRACE(" PolicingProfileMoMgr::ConfigKeyVal Allocation "
-                   " Successful");
+  upll_rc_t PolicingProfileMoMgr::GetValid(void *val, uint64_t indx,
+                                           uint8_t *&valid,
+                                           upll_keytype_datatype_t dt_type,
+                                           MoMgrTables tbl) {
+    UPLL_FUNC_TRACE;
+    if (val == NULL) {
+      UPLL_LOG_DEBUG(" PolicingProfileMoMgr::Value structure is NULL ");
+      return UPLL_RC_ERR_GENERIC;
+    }
+    if (tbl == RENAMETBL) {
+      val_rename_policingprofile_t *val_rename =
+          reinterpret_cast<val_rename_policingprofile_t *> (val);
+      valid = &val_rename->valid[UPLL_IDX_RENAME_PROFILE_RPP];
+    } else if (tbl == CTRLRTBL) {
+      val_policingprofile_ctrl_t *val_ctrl =
+          reinterpret_cast<val_policingprofile_ctrl_t *>(val);
+      if (uudst::policingprofile_ctrlr::kDbiRefCount == indx) {
+        valid = &val_ctrl->valid[0];
+      }
+    } else {
+      valid = NULL;
+      UPLL_LOG_DEBUG(" PolicingProfileMoMgr:: Invalid tbl");
+      return UPLL_RC_ERR_GENERIC;
+    }
+    UPLL_LOG_TRACE(" PolicingProfileMoMgr:: GetValid is Successful");
     return UPLL_RC_SUCCESS;
-  } else {
-    pkey = parent_key->get_key();
   }
 
-  if (NULL == pkey) {
-    UPLL_LOG_TRACE("Key structure is NULL");
-    return UPLL_RC_ERR_GENERIC;
+  upll_rc_t PolicingProfileMoMgr::AllocVal(ConfigVal *&ck_val,
+                                           upll_keytype_datatype_t dt_type,
+                                           MoMgrTables tbl) {
+    UPLL_FUNC_TRACE;
+    void *val;  // *ck_nxtval;
+    if (ck_val != NULL) return UPLL_RC_ERR_GENERIC;
+    switch (tbl) {
+      case MAINTBL:
+        val = reinterpret_cast<void *>
+            (ConfigKeyVal::Malloc(sizeof(val_policingprofile_t)));
+        ck_val = new ConfigVal(IpctSt::kIpcStValPolicingprofile, val);
+        UPLL_LOG_DEBUG(" PolicingProfileMoMgr::Value Allocation successful"
+                       " for PolicingProfile MainTbl ");
+        break;
+      case RENAMETBL:
+        val = reinterpret_cast<void *>
+            (ConfigKeyVal::Malloc(sizeof(val_rename_policingprofile_t)));
+        ck_val = new ConfigVal(IpctSt::kIpcStValRenamePolicingprofile, val);
+        UPLL_LOG_DEBUG(" PolicingProfileMoMgr::Value Allocation successful"
+                       " for PolicingProfile RenameTbl ");
+        break;
+      case CTRLRTBL:
+        val = reinterpret_cast<void *>
+            (ConfigKeyVal::Malloc(sizeof(val_policingprofile_ctrl_t)));
+        ck_val = new ConfigVal(IpctSt::kIpcInvalidStNum, val);
+        UPLL_LOG_DEBUG(" PolicingProfileMoMgr::Value Allocation successful"
+                       " for PolicingProfile CtrlrTbl ");
+        break;
+      default:
+        UPLL_LOG_DEBUG(" PolicingProfileMoMgr::Invalid Tbl");
+        return UPLL_RC_ERR_GENERIC;
+    }
+    if (NULL == val) {
+      UPLL_LOG_DEBUG(" PolicingProfileMoMgr::Value Allocation Failed");
+      return UPLL_RC_ERR_GENERIC;
+    }
+    return UPLL_RC_SUCCESS;
   }
 
-  if (okey) {
-    if (okey->get_key_type() != UNC_KT_POLICING_PROFILE)
+  upll_rc_t PolicingProfileMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
+                                                    ConfigKeyVal *parent_key) {
+    UPLL_FUNC_TRACE;
+    key_policingprofile_t *policingprofile_key = NULL;
+    void *pkey = NULL;
+
+    if (parent_key == NULL) {
+      policingprofile_key = reinterpret_cast<key_policingprofile_t *>
+          (ConfigKeyVal::Malloc(sizeof(key_policingprofile_t)));
+
+      okey = new ConfigKeyVal(UNC_KT_POLICING_PROFILE,
+                              IpctSt::kIpcStKeyPolicingprofile,
+                              policingprofile_key, NULL);
+      UPLL_LOG_TRACE(" PolicingProfileMoMgr::ConfigKeyVal Allocation "
+                     " Successful");
+      return UPLL_RC_SUCCESS;
+    } else {
+      pkey = parent_key->get_key();
+    }
+
+    if (NULL == pkey) {
+      UPLL_LOG_TRACE("Key structure is NULL");
       return UPLL_RC_ERR_GENERIC;
-  }
-  if ((okey) && (okey->get_key())) {
-    policingprofile_key = reinterpret_cast<key_policingprofile_t *>
+    }
+
+    if (okey) {
+      if (okey->get_key_type() != UNC_KT_POLICING_PROFILE)
+        return UPLL_RC_ERR_GENERIC;
+    }
+    if ((okey) && (okey->get_key())) {
+      policingprofile_key = reinterpret_cast<key_policingprofile_t *>
           (okey->get_key());
-  } else {
-    policingprofile_key = reinterpret_cast<key_policingprofile_t *>
-        (ConfigKeyVal::Malloc(sizeof(key_policingprofile_t)));
-  }
+    } else {
+      policingprofile_key = reinterpret_cast<key_policingprofile_t *>
+          (ConfigKeyVal::Malloc(sizeof(key_policingprofile_t)));
+    }
 
-  switch (parent_key->get_key_type()) {
-    case UNC_KT_ROOT:
-      break;
-    case UNC_KT_POLICING_PROFILE:
-      uuu::upll_strncpy(policingprofile_key->policingprofile_name,
-                        (reinterpret_cast<key_policingprofile_t*>
-                         (pkey)->policingprofile_name),
-                        (kMaxLenPolicingProfileName + 1));
-      break;
-    default:
-      if (policingprofile_key) free(policingprofile_key);
-      return UPLL_RC_ERR_GENERIC;
-  }
-  if ((okey) && !(okey->get_key())) {
-    UPLL_LOG_TRACE("okey not NULL profile name updated");
-    okey->SetKey(IpctSt::kIpcStKeyPolicingprofile, policingprofile_key);    
-  }
-  if (!okey) {
-    okey = new ConfigKeyVal(UNC_KT_POLICING_PROFILE,
-                            IpctSt::kIpcStKeyPolicingprofile,
-                            policingprofile_key, NULL);
-  }
-  SET_USER_DATA(okey, parent_key);
-  UPLL_LOG_TRACE("%s GetChildConfigKey fl start",
-                  okey->ToStrAll().c_str());
-  return UPLL_RC_SUCCESS;
-}
-
-upll_rc_t PolicingProfileMoMgr::GetRenamedUncKey(
-    ConfigKeyVal *ctrlr_key, upll_keytype_datatype_t dt_type, DalDmlIntf *dmi,
-    uint8_t *ctrlr_id) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
-  UPLL_LOG_TRACE("%s GetRenamedUncKey pp start",
-                  ctrlr_key->ToStrAll().c_str());
-  if ((NULL == ctrlr_key) || (NULL == dmi)) {
-    UPLL_LOG_DEBUG(" PolicingProfileMoMgr::Input ConfigKeyVal is NULL.");
-    return result_code;
-  }
-  ConfigKeyVal *unc_key = NULL;
-  key_policingprofile_t *ctrlr_policingprofile_key =
-    reinterpret_cast<key_policingprofile_t *>(ctrlr_key->get_key());
-  if (NULL == ctrlr_policingprofile_key) {
-    UPLL_LOG_DEBUG("PolicingProfileMoMgr::Key struct is NULL");
-    return result_code;
-  }
-  DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutNone };
-
-  val_rename_policingprofile_t *rename_policingprofile =
-  reinterpret_cast <val_rename_policingprofile_t *>
-  (ConfigKeyVal::Malloc(sizeof(val_rename_policingprofile_t)));
-  if (!rename_policingprofile) {
-    UPLL_LOG_DEBUG("rename_policingprofile NULL");
-    return UPLL_RC_ERR_GENERIC;
+    switch (parent_key->get_key_type()) {
+      case UNC_KT_ROOT:
+        break;
+      case UNC_KT_POLICING_PROFILE:
+        uuu::upll_strncpy(policingprofile_key->policingprofile_name,
+                          (reinterpret_cast<key_policingprofile_t*>
+                           (pkey)->policingprofile_name),
+                          (kMaxLenPolicingProfileName + 1));
+        break;
+      default:
+        if (policingprofile_key) free(policingprofile_key);
+        return UPLL_RC_ERR_GENERIC;
+    }
+    if ((okey) && !(okey->get_key())) {
+      UPLL_LOG_TRACE("okey not NULL profile name updated");
+      okey->SetKey(IpctSt::kIpcStKeyPolicingprofile, policingprofile_key);
+    }
+    if (!okey) {
+      okey = new ConfigKeyVal(UNC_KT_POLICING_PROFILE,
+                              IpctSt::kIpcStKeyPolicingprofile,
+                              policingprofile_key, NULL);
+    }
+    SET_USER_DATA(okey, parent_key);
+    UPLL_LOG_TRACE("%s GetChildConfigKey fl start",
+                   okey->ToStrAll().c_str());
+    return UPLL_RC_SUCCESS;
   }
 
-  uuu::upll_strncpy(rename_policingprofile->policingprofile_newname,
-                    ctrlr_policingprofile_key->policingprofile_name,
-                    (kMaxLenPolicingProfileName+1));
-  rename_policingprofile->valid[UPLL_IDX_RENAME_PROFILE_RPP] = UNC_VF_VALID;
+  upll_rc_t PolicingProfileMoMgr::GetRenamedUncKey(
+      ConfigKeyVal *ctrlr_key,
+      upll_keytype_datatype_t dt_type,
+      DalDmlIntf *dmi,
+      uint8_t *ctrlr_id) {
+    UPLL_FUNC_TRACE;
+    upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
+    UPLL_LOG_TRACE("%s GetRenamedUncKey pp start",
+                   ctrlr_key->ToStrAll().c_str());
+    if ((NULL == ctrlr_key) || (NULL == dmi)) {
+      UPLL_LOG_DEBUG(" PolicingProfileMoMgr::Input ConfigKeyVal is NULL.");
+      return result_code;
+    }
+    ConfigKeyVal *unc_key = NULL;
+    key_policingprofile_t *ctrlr_policingprofile_key =
+        reinterpret_cast<key_policingprofile_t *>(ctrlr_key->get_key());
+    if (NULL == ctrlr_policingprofile_key) {
+      UPLL_LOG_DEBUG("PolicingProfileMoMgr::Key struct is NULL");
+      return result_code;
+    }
+    DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutNone };
 
-  result_code = GetChildConfigKey(unc_key, NULL);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("GetChildConfigKey failed (%d)", result_code);
-    free(rename_policingprofile);
-    return result_code;
-  }
-  if (!unc_key) {
-    UPLL_LOG_DEBUG("unc_key NULL");
-    free(rename_policingprofile);
-    return UPLL_RC_ERR_GENERIC;
-  }
-  unc_key->AppendCfgVal(IpctSt::kIpcStValRenamePolicingprofile,
-      rename_policingprofile);
-  UPLL_LOG_DEBUG("ctrlr_id pp (%s)", ctrlr_id);
-  if (ctrlr_id) {
-    SET_USER_DATA_CTRLR(unc_key, ctrlr_id);
-  } else {
-    dbop.matchop = kOpMatchNone;
-  }
+    val_rename_policingprofile_t *rename_policingprofile =
+        reinterpret_cast <val_rename_policingprofile_t *>
+        (ConfigKeyVal::Malloc(sizeof(val_rename_policingprofile_t)));
+    if (!rename_policingprofile) {
+      UPLL_LOG_DEBUG("rename_policingprofile NULL");
+      return UPLL_RC_ERR_GENERIC;
+    }
 
-  result_code = ReadConfigDB(unc_key, dt_type, UNC_OP_READ, dbop, dmi,
-      RENAMETBL);
-  if (result_code == UPLL_RC_SUCCESS) {
-    key_policingprofile_t *policingprofile_key =
-      reinterpret_cast<key_policingprofile_t *>(unc_key->get_key());
-    uuu::upll_strncpy(ctrlr_policingprofile_key->policingprofile_name,
-                      policingprofile_key->policingprofile_name,
+    uuu::upll_strncpy(rename_policingprofile->policingprofile_newname,
+                      ctrlr_policingprofile_key->policingprofile_name,
                       (kMaxLenPolicingProfileName+1));
-  }
-  UPLL_LOG_TRACE("%s GetRenamedUncKey pp end",
-                  ctrlr_key->ToStrAll().c_str());
-  DELETE_IF_NOT_NULL(unc_key);
-  return result_code;
-}
-
-upll_rc_t PolicingProfileMoMgr::GetRenamedControllerKey(
-    ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type, DalDmlIntf *dmi,
-    controller_domain *ctrlr_dom) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
-  if (NULL == ikey || (NULL == dmi)) {
-    UPLL_LOG_DEBUG("Input ConfigKeyVal is NULL");
-    return result_code;
-  }
+    rename_policingprofile->valid[UPLL_IDX_RENAME_PROFILE_RPP] = UNC_VF_VALID;
 
-  ConfigKeyVal *okey = NULL;
-  uint8_t rename = 0;
-  result_code = IsRenamed(ikey, dt_type, dmi, rename);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("IsRenamed function failed (%d)", result_code);
+    result_code = GetChildConfigKey(unc_key, NULL);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("GetChildConfigKey failed (%d)", result_code);
+      free(rename_policingprofile);
+      return result_code;
+    }
+    if (!unc_key) {
+      UPLL_LOG_DEBUG("unc_key NULL");
+      free(rename_policingprofile);
+      return UPLL_RC_ERR_GENERIC;
+    }
+    unc_key->AppendCfgVal(IpctSt::kIpcStValRenamePolicingprofile,
+                          rename_policingprofile);
+    UPLL_LOG_DEBUG("ctrlr_id pp (%s)", ctrlr_id);
+    if (ctrlr_id) {
+      SET_USER_DATA_CTRLR(unc_key, ctrlr_id);
+    } else {
+      dbop.matchop = kOpMatchNone;
+    }
+
+    result_code = ReadConfigDB(unc_key, dt_type, UNC_OP_READ, dbop, dmi,
+                               RENAMETBL);
+    if (result_code == UPLL_RC_SUCCESS) {
+      key_policingprofile_t *policingprofile_key =
+          reinterpret_cast<key_policingprofile_t *>(unc_key->get_key());
+      uuu::upll_strncpy(ctrlr_policingprofile_key->policingprofile_name,
+                        policingprofile_key->policingprofile_name,
+                        (kMaxLenPolicingProfileName+1));
+    }
+    UPLL_LOG_TRACE("%s GetRenamedUncKey pp end",
+                   ctrlr_key->ToStrAll().c_str());
+    DELETE_IF_NOT_NULL(unc_key);
     return result_code;
   }
-  if (!rename) {
-    UPLL_LOG_DEBUG("Key not renamed");
-    return UPLL_RC_SUCCESS;
-  }
-  UPLL_LOG_TRACE("%s GetRenamedCtrl pp start", (ikey->ToStrAll()).c_str());
 
-  /* PolicingProfile renamed */
-  if (rename & POLICINGPROFILE_RENAME) {
+  upll_rc_t PolicingProfileMoMgr::GetRenamedControllerKey(
+      ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type, DalDmlIntf *dmi,
+      controller_domain *ctrlr_dom) {
+    UPLL_FUNC_TRACE;
+    upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
+    if (NULL == ikey || (NULL == dmi)) {
+      UPLL_LOG_DEBUG("Input ConfigKeyVal is NULL");
+      return result_code;
+    }
+
+    ConfigKeyVal *okey = NULL;
+    UPLL_LOG_TRACE("%s GetRenamedCtrl pp start", (ikey->ToStrAll()).c_str());
+
+    /* PolicingProfile renamed */
     result_code = GetChildConfigKey(okey, ikey);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("GetChildConfigKey fail (%d)", result_code);
@@ -454,11 +455,11 @@ upll_rc_t PolicingProfileMoMgr::GetRenamedControllerKey(
       return UPLL_RC_ERR_GENERIC;
     }
     UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
+                   ctrlr_dom->domain);
 
     DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutFlag };
     result_code = ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop, dmi,
-        RENAMETBL); /* ctrlr_name */
+                               RENAMETBL); /* ctrlr_name */
     if (UPLL_RC_SUCCESS != result_code) {
       if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
         UPLL_LOG_DEBUG("ReadConfigDB no instance");
@@ -471,7 +472,7 @@ upll_rc_t PolicingProfileMoMgr::GetRenamedControllerKey(
     }
 
     val_rename_policingprofile_t *rename_val =
-      reinterpret_cast<val_rename_policingprofile_t *>(GetVal(okey));
+        reinterpret_cast<val_rename_policingprofile_t *>(GetVal(okey));
     if (NULL == rename_val) {
       UPLL_LOG_DEBUG("memory Allocation failed for rename val struct");
       DELETE_IF_NOT_NULL(okey);
@@ -484,357 +485,408 @@ upll_rc_t PolicingProfileMoMgr::GetRenamedControllerKey(
         rename_val->policingprofile_newname,
         (kMaxLenPolicingProfileName+1));
     UPLL_LOG_DEBUG("profile name (%s) (%s)",
-      reinterpret_cast<key_policingprofile_t *>
-      (ikey->get_key())->policingprofile_name,
-      rename_val->policingprofile_newname);
+                   reinterpret_cast<key_policingprofile_t *>
+                   (ikey->get_key())->policingprofile_name,
+                   rename_val->policingprofile_newname);
     DELETE_IF_NOT_NULL(okey);
+    UPLL_LOG_TRACE("%s GetRenamedCtrl pp end", (ikey->ToStrAll()).c_str());
+    UPLL_LOG_TRACE(" PolicingProfileMOMgr::GetRenameUncKey Successful");
+    return UPLL_RC_SUCCESS;
   }
-  SET_USER_DATA_FLAGS(ikey, rename);
-  UPLL_LOG_TRACE("%s GetRenamedCtrl pp end", (ikey->ToStrAll()).c_str());
-  UPLL_LOG_TRACE(" PolicingProfileMOMgr::GetRenameUncKey Successful");
-  return UPLL_RC_SUCCESS;
-}
-
-upll_rc_t PolicingProfileMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
-    ConfigKeyVal *&req,
-    MoMgrTables tbl) {
-  UPLL_FUNC_TRACE;
-  if (req == NULL) {
-    UPLL_LOG_DEBUG(" PolicingProfileMoMgr::DupConfigKeyVal Failed."
-      " Input ConfigKeyVal is NULL ");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  if (okey != NULL) {
-    UPLL_LOG_DEBUG(" PolicingProfileMoMgr::DupConfigKeyVal Failed."
-      " Output ConfigKeyVal is not NULL ");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  if (req->get_key_type() != UNC_KT_POLICING_PROFILE) {
-    UPLL_LOG_DEBUG("PolicingProfileMoMgr::Invalid Key type");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  if (NULL == (req->get_key())) {
-    return UPLL_RC_ERR_GENERIC;
-  }
-  ConfigVal *tmp1 = NULL, *tmp = (req)->get_cfg_val();
-
-  if (tmp) {
-    if (tbl == MAINTBL) {
-      val_policingprofile_t *ival =
-        reinterpret_cast<val_policingprofile_t *>(GetVal(req));
-      if (NULL != ival) {
-        val_policingprofile_t *policingprofile_val =
-           reinterpret_cast<val_policingprofile_t *>
-           (ConfigKeyVal::Malloc(sizeof(val_policingprofile_t)));
-        memcpy(policingprofile_val, ival,
-          sizeof(val_policingprofile_t));
-        tmp1 = new ConfigVal(IpctSt::kIpcStValPolicingprofile,
-            policingprofile_val);
-      }
-    } else if (tbl == RENAMETBL) {
-      val_rename_policingprofile_t *ival =
-        reinterpret_cast<val_rename_policingprofile_t *> (GetVal(req));
-      val_rename_policingprofile_t *rename_val =
-        reinterpret_cast<val_rename_policingprofile_t *>
-          (ConfigKeyVal::Malloc(sizeof(val_rename_policingprofile_t)));
-      memcpy(rename_val, ival, sizeof(val_rename_policingprofile_t));
-      tmp1 = new ConfigVal(IpctSt::kIpcStValRenamePolicingprofile, rename_val);
-    } else if (tbl == CTRLRTBL) {
-      val_policingprofile_ctrl_t *ival =
-          reinterpret_cast<val_policingprofile_ctrl_t *>(GetVal(req));
-      if (NULL != ival) {
-        val_policingprofile_ctrl_t *ctrl_val =
-          reinterpret_cast<val_policingprofile_ctrl_t *>
-            (ConfigKeyVal::Malloc(sizeof(val_policingprofile_ctrl_t)));
-        memcpy(ctrl_val, ival, sizeof(val_policingprofile_ctrl_t));
-        tmp1 = new ConfigVal(IpctSt::kIpcInvalidStNum,
-                             ctrl_val);
-      }
+
+
+  upll_rc_t PolicingProfileMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
+                                                  ConfigKeyVal *&req,
+                                                  MoMgrTables tbl) {
+    UPLL_FUNC_TRACE;
+    if (req == NULL) {
+      UPLL_LOG_DEBUG(" PolicingProfileMoMgr::DupConfigKeyVal Failed."
+                     " Input ConfigKeyVal is NULL ");
+      return UPLL_RC_ERR_GENERIC;
     }
-    if (NULL == tmp1) {
-      UPLL_LOG_DEBUG(" PolicingProfileMoMgr::DupConfigKeyVal Failed.");
-      UPLL_LOG_DEBUG(" Value allocation failed");
+    if (okey != NULL) {
+      UPLL_LOG_DEBUG(" PolicingProfileMoMgr::DupConfigKeyVal Failed."
+                     " Output ConfigKeyVal is not NULL ");
       return UPLL_RC_ERR_GENERIC;
     }
-    tmp1->set_user_data(tmp->get_user_data());
-  }
-  key_policingprofile_t *tkey = reinterpret_cast<key_policingprofile_t *>
-                                (req->get_key());
-  key_policingprofile_t *policingprofile_key =
-    reinterpret_cast<key_policingprofile_t *>
-      (ConfigKeyVal::Malloc(sizeof(key_policingprofile_t)));
-  memcpy(policingprofile_key, reinterpret_cast<key_policingprofile_t *>(tkey),
-      sizeof(key_policingprofile_t));
-  okey = new ConfigKeyVal(UNC_KT_POLICING_PROFILE,
-      IpctSt::kIpcStKeyPolicingprofile, policingprofile_key,
-      tmp1);
-  SET_USER_DATA(okey, req);
-  return UPLL_RC_SUCCESS;
-}
-
-pfc_bool_t PolicingProfileMoMgr::CompareKey(ConfigKeyVal *key1,
-    ConfigKeyVal *key2) {
-  UPLL_FUNC_TRACE;
-  bool match = false;
-  if (NULL == key1 || NULL == key2) {
-    return match;
-  }
-  if (key1->get_key_type() != UNC_KT_POLICING_PROFILE) {
-    UPLL_LOG_DEBUG("PolicingProfileMoMgr::Invalid Key type");
-    return match;
+    if (req->get_key_type() != UNC_KT_POLICING_PROFILE) {
+      UPLL_LOG_DEBUG("PolicingProfileMoMgr::Invalid Key type");
+      return UPLL_RC_ERR_GENERIC;
+    }
+    if (NULL == (req->get_key())) {
+      return UPLL_RC_ERR_GENERIC;
+    }
+    ConfigVal *tmp1 = NULL, *tmp = (req)->get_cfg_val();
+
+    if (tmp) {
+      if (tbl == MAINTBL) {
+        val_policingprofile_t *ival =
+            reinterpret_cast<val_policingprofile_t *>(GetVal(req));
+        if (NULL != ival) {
+          val_policingprofile_t *policingprofile_val =
+              reinterpret_cast<val_policingprofile_t *>
+              (ConfigKeyVal::Malloc(sizeof(val_policingprofile_t)));
+          memcpy(policingprofile_val, ival,
+                 sizeof(val_policingprofile_t));
+          tmp1 = new ConfigVal(IpctSt::kIpcStValPolicingprofile,
+                               policingprofile_val);
+        }
+      } else if (tbl == RENAMETBL) {
+        val_rename_policingprofile_t *ival =
+            reinterpret_cast<val_rename_policingprofile_t *> (GetVal(req));
+        val_rename_policingprofile_t *rename_val =
+            reinterpret_cast<val_rename_policingprofile_t *>
+            (ConfigKeyVal::Malloc(sizeof(val_rename_policingprofile_t)));
+        memcpy(rename_val, ival, sizeof(val_rename_policingprofile_t));
+        tmp1 = new ConfigVal(IpctSt::kIpcStValRenamePolicingprofile,
+                             rename_val);
+      } else if (tbl == CTRLRTBL) {
+        val_policingprofile_ctrl_t *ival =
+            reinterpret_cast<val_policingprofile_ctrl_t *>(GetVal(req));
+        if (NULL != ival) {
+          val_policingprofile_ctrl_t *ctrl_val =
+              reinterpret_cast<val_policingprofile_ctrl_t *>
+              (ConfigKeyVal::Malloc(sizeof(val_policingprofile_ctrl_t)));
+          memcpy(ctrl_val, ival, sizeof(val_policingprofile_ctrl_t));
+          tmp1 = new ConfigVal(IpctSt::kIpcInvalidStNum,
+                               ctrl_val);
+        }
+      }
+      if (NULL == tmp1) {
+        UPLL_LOG_DEBUG(" PolicingProfileMoMgr::DupConfigKeyVal Failed.");
+        UPLL_LOG_DEBUG(" Value allocation failed");
+        return UPLL_RC_ERR_GENERIC;
+      }
+      tmp1->set_user_data(tmp->get_user_data());
+    }
+    key_policingprofile_t *tkey = reinterpret_cast<key_policingprofile_t *>
+        (req->get_key());
+    key_policingprofile_t *policingprofile_key =
+        reinterpret_cast<key_policingprofile_t *>
+        (ConfigKeyVal::Malloc(sizeof(key_policingprofile_t)));
+    memcpy(policingprofile_key, reinterpret_cast<key_policingprofile_t *>
+           (tkey),
+           sizeof(key_policingprofile_t));
+    okey = new ConfigKeyVal(UNC_KT_POLICING_PROFILE,
+                            IpctSt::kIpcStKeyPolicingprofile,
+                            policingprofile_key,
+                            tmp1);
+    SET_USER_DATA(okey, req);
+    return UPLL_RC_SUCCESS;
   }
-  key_policingprofile_t *policingprofile_key1, *policingprofile_key2;
-  policingprofile_key1 =
-    reinterpret_cast<key_policingprofile_t *>(key1->get_key());
-  policingprofile_key2 =
-    reinterpret_cast<key_policingprofile_t *>(key2->get_key());
 
-  if (NULL == policingprofile_key1 || NULL == policingprofile_key2) {
-    return false;
-  }
+  pfc_bool_t PolicingProfileMoMgr::CompareKey(ConfigKeyVal *key1,
+                                              ConfigKeyVal *key2) {
+    UPLL_FUNC_TRACE;
+    bool match = false;
+    if (NULL == key1 || NULL == key2) {
+      return match;
+    }
+    if (key1->get_key_type() != UNC_KT_POLICING_PROFILE) {
+      UPLL_LOG_DEBUG("PolicingProfileMoMgr::Invalid Key type");
+      return match;
+    }
+    key_policingprofile_t *policingprofile_key1, *policingprofile_key2;
+    policingprofile_key1 =
+        reinterpret_cast<key_policingprofile_t *>(key1->get_key());
+    policingprofile_key2 =
+        reinterpret_cast<key_policingprofile_t *>(key2->get_key());
+
+    if (NULL == policingprofile_key1 || NULL == policingprofile_key2) {
+      return false;
+    }
 
-  if (strcmp(reinterpret_cast<const char *>
-        (policingprofile_key1->policingprofile_name),
-        reinterpret_cast<const char *>
-        (policingprofile_key2->policingprofile_name)) == 0) {
-    match = true;
-    UPLL_LOG_DEBUG(" PolicingProfileMoMgr::CompareKey .Both Keys are same");
-  }
-  return match;
-}
-
-upll_rc_t PolicingProfileMoMgr::UpdateAuditConfigStatus(
-        unc_keytype_configstatus_t cs_status,
-        uuc::UpdateCtrlrPhase phase,
-        ConfigKeyVal *&ckv_running) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  val_policingprofile_ctrl_t *val = NULL;
-  val = (ckv_running != NULL)?reinterpret_cast
-       <val_policingprofile_ctrl_t *>
-      (GetVal(ckv_running)):NULL;
-  if (NULL == val) {
-    return UPLL_RC_ERR_GENERIC;
+    if (strcmp(reinterpret_cast<const char *>
+               (policingprofile_key1->policingprofile_name),
+               reinterpret_cast<const char *>
+               (policingprofile_key2->policingprofile_name)) == 0) {
+      match = true;
+      UPLL_LOG_DEBUG(" PolicingProfileMoMgr::CompareKey .Both Keys are same");
+    }
+    return match;
   }
-  if (uuc::kUpllUcpCreate == phase )
-    val->cs_row_status = cs_status;
-  if ((uuc::kUpllUcpUpdate == phase) &&
-           (val->cs_row_status == UNC_CS_INVALID ||
-            val->cs_row_status == UNC_CS_NOT_APPLIED))
-    val->cs_row_status = cs_status;
-  return result_code;
-}
-
-upll_rc_t PolicingProfileMoMgr::MergeValidate(unc_key_type_t keytype,
-    const char *ctrlr_id, ConfigKeyVal *okey,
-    DalDmlIntf *dmi) {
+
+  upll_rc_t PolicingProfileMoMgr::UpdateAuditConfigStatus(
+      unc_keytype_configstatus_t cs_status,
+      uuc::UpdateCtrlrPhase phase,
+      ConfigKeyVal *&ckv_running,
+      DalDmlIntf *dmi) {
     UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
-  ConfigKeyVal *ckval = NULL;
-  if (NULL == ctrlr_id) {
-    UPLL_LOG_DEBUG("ctrlr_id NULL");
-    return result_code;
-  }
-  result_code = GetChildConfigKey(ckval, NULL);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("ckval fail");
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+    val_policingprofile_ctrl_t *val = NULL;
+    val = (ckv_running != NULL)?reinterpret_cast
+        <val_policingprofile_ctrl_t *>
+        (GetVal(ckv_running)):NULL;
+    if (NULL == val) {
+      return UPLL_RC_ERR_GENERIC;
+    }
+    if (uuc::kUpllUcpCreate == phase )
+      val->cs_row_status = cs_status;
+    if ((uuc::kUpllUcpUpdate == phase) &&
+        (val->cs_row_status == UNC_CS_INVALID ||
+         val->cs_row_status == UNC_CS_NOT_APPLIED))
+      val->cs_row_status = cs_status;
     return result_code;
   }
-  DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutNone};
-  result_code = ReadConfigDB(ckval, UPLL_DT_IMPORT,
-              UNC_OP_READ, dbop, dmi, MAINTBL);
-  if (UPLL_RC_SUCCESS != result_code) {
-    DELETE_IF_NOT_NULL(ckval);
-    if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-      UPLL_LOG_DEBUG("ReadConfigDB fail");
+
+  upll_rc_t PolicingProfileMoMgr::MergeValidate(unc_key_type_t keytype,
+                                                const char *ctrlr_id,
+                                                ConfigKeyVal *okey,
+                                                DalDmlIntf *dmi) {
+    UPLL_FUNC_TRACE;
+    upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
+    ConfigKeyVal *ckval = NULL;
+    if (NULL == ctrlr_id) {
+      UPLL_LOG_DEBUG("ctrlr_id NULL");
       return result_code;
     }
-    return UPLL_RC_SUCCESS;
-  }
-  ConfigKeyVal *tmp_ckval = ckval;
-  while (NULL != ckval) {
-    // Check the profile is stand alone
-    ConfigKeyVal *ctrl_ckval = NULL;
-    DbSubOp dbop = { kOpReadExist, kOpMatchNone, kOpInOutNone };
-    result_code = GetChildConfigKey(ctrl_ckval, ckval);
+    result_code = GetChildConfigKey(ckval, NULL);
     if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("Failed to get ctrl configkeyval,err %d", result_code);
-      DELETE_IF_NOT_NULL(tmp_ckval);
+      UPLL_LOG_DEBUG("ckval fail");
       return result_code;
     }
-    result_code = UpdateConfigDB(ctrl_ckval,
-                                 UPLL_DT_IMPORT,
-                                 UNC_OP_READ, dmi,
-                                 &dbop, CTRLRTBL);
-    DELETE_IF_NOT_NULL(ctrl_ckval);
-    if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-      UPLL_LOG_DEBUG("profile name is stand alone");
-      result_code = GetChildConfigKey(okey, ckval);
-      DELETE_IF_NOT_NULL(tmp_ckval);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("GetChildConfigKey fail");
+    DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutNone};
+    result_code = ReadConfigDB(ckval, UPLL_DT_IMPORT,
+                               UNC_OP_READ, dbop, dmi, MAINTBL);
+    if (UPLL_RC_SUCCESS != result_code) {
+      DELETE_IF_NOT_NULL(ckval);
+      if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+        UPLL_LOG_DEBUG("ReadConfigDB fail");
         return result_code;
       }
-      return UPLL_RC_ERR_MERGE_CONFLICT; 
-    } else if (result_code != UPLL_RC_ERR_INSTANCE_EXISTS) {
-      UPLL_LOG_DEBUG("Database Error");
-      DELETE_IF_NOT_NULL(tmp_ckval);
-      return result_code;
+      return UPLL_RC_SUCCESS;
     }
+    ConfigKeyVal *tmp_ckval = ckval;
+    while (NULL != ckval) {
+      // Check the profile is stand alone
+      ConfigKeyVal *ctrl_ckval = NULL;
+      DbSubOp dbop = { kOpReadExist, kOpMatchNone, kOpInOutNone };
+      result_code = GetChildConfigKey(ctrl_ckval, ckval);
+      if (UPLL_RC_SUCCESS != result_code) {
+        UPLL_LOG_DEBUG("Failed to get ctrl configkeyval,err %d", result_code);
+        DELETE_IF_NOT_NULL(tmp_ckval);
+        return result_code;
+      }
+      result_code = UpdateConfigDB(ctrl_ckval,
+                                   UPLL_DT_IMPORT,
+                                   UNC_OP_READ, dmi,
+                                   &dbop, CTRLRTBL);
+      DELETE_IF_NOT_NULL(ctrl_ckval);
+      if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+        UPLL_LOG_DEBUG("profile name is stand alone");
+        result_code = GetChildConfigKey(okey, ckval);
+        DELETE_IF_NOT_NULL(tmp_ckval);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("GetChildConfigKey fail");
+          return result_code;
+        }
+        return UPLL_RC_ERR_MERGE_CONFLICT;
+      } else if (result_code != UPLL_RC_ERR_INSTANCE_EXISTS) {
+        UPLL_LOG_DEBUG("Database Error");
+        DELETE_IF_NOT_NULL(tmp_ckval);
+        return result_code;
+      }
 
-    // Check whether the configuration exists in the Running configuration or
-    // not, if exists then return an error
-    result_code = UpdateConfigDB(ckval, UPLL_DT_RUNNING, UNC_OP_READ, dmi,
-                                 MAINTBL);
-    if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code) {
-      result_code = GetChildConfigKey(okey, ckval);
-      DELETE_IF_NOT_NULL(tmp_ckval);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("GetChildConfigKey fail");
+      // Check whether the configuration exists in the Running configuration or
+      // not, if exists then return an error
+      result_code = UpdateConfigDB(ckval, UPLL_DT_RUNNING, UNC_OP_READ, dmi,
+                                   MAINTBL);
+      if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code) {
+        result_code = GetChildConfigKey(okey, ckval);
+        DELETE_IF_NOT_NULL(tmp_ckval);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("GetChildConfigKey fail");
+          return result_code;
+        }
+        return UPLL_RC_ERR_MERGE_CONFLICT;
+      } else if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+        ckval = ckval->get_next_cfg_key_val();
+      } else {
+        DELETE_IF_NOT_NULL(tmp_ckval);
         return result_code;
       }
-      return UPLL_RC_ERR_MERGE_CONFLICT;
-    } else if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-      ckval = ckval->get_next_cfg_key_val();
-    } else {
-      DELETE_IF_NOT_NULL(tmp_ckval);
-      return result_code;
     }
-  }
-  DELETE_IF_NOT_NULL(tmp_ckval);
-  return UPLL_RC_SUCCESS;
-}
-
-upll_rc_t PolicingProfileMoMgr::SwapKeyVal(ConfigKeyVal *ikey,
-    ConfigKeyVal *&okey,
-    uud::DalDmlIntf *dmi,
-    uint8_t *ctrlr, bool &no_rename) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  if (!ikey || !(ikey->get_key()) || !(strlen(reinterpret_cast<const char *>
-     (ctrlr)))){
-    UPLL_LOG_DEBUG("Input ConfigKeyVal is NULL");
-    return UPLL_RC_ERR_GENERIC;
+    DELETE_IF_NOT_NULL(tmp_ckval);
+    return UPLL_RC_SUCCESS;
   }
 
-  ConfigVal *cfg_val = ikey->get_cfg_val();
-  if (NULL == cfg_val) {
-    UPLL_LOG_DEBUG("Value struct is NULL");
-    return UPLL_RC_ERR_GENERIC;
-  }
+  upll_rc_t PolicingProfileMoMgr::SwapKeyVal(ConfigKeyVal *ikey,
+                                             ConfigKeyVal *&okey,
+                                             uud::DalDmlIntf *dmi,
+                                             uint8_t *ctrlr, bool &no_rename) {
+    UPLL_FUNC_TRACE;
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+    if (!ikey || !(ikey->get_key()) || !(strlen(reinterpret_cast<const char *>
+                                                (ctrlr)))) {
+      UPLL_LOG_DEBUG("Input ConfigKeyVal is NULL");
+      return UPLL_RC_ERR_GENERIC;
+    }
 
-  val_rename_policingprofile_t *tval =
-    reinterpret_cast<val_rename_policingprofile_t *>(cfg_val->get_val());
-  if (NULL == tval) {
-    UPLL_LOG_DEBUG("Rename val struct is NULL");
-    return UPLL_RC_ERR_GENERIC;
-  }
+    ConfigVal *cfg_val = ikey->get_cfg_val();
+    if (NULL == cfg_val) {
+      UPLL_LOG_DEBUG("Value struct is NULL");
+      return UPLL_RC_ERR_GENERIC;
+    }
 
-  key_policingprofile_t *key_policingprofile =
-      reinterpret_cast<key_policingprofile_t *>(ConfigKeyVal::Malloc
-      (sizeof(key_policingprofile_t)));
+    val_rename_policingprofile_t *tval =
+        reinterpret_cast<val_rename_policingprofile_t *>(cfg_val->get_val());
+    if (NULL == tval) {
+      UPLL_LOG_DEBUG("Rename val struct is NULL");
+      return UPLL_RC_ERR_GENERIC;
+    }
 
-  if (UNC_VF_VALID_NO_VALUE ==
-             tval->valid[UPLL_IDX_RENAME_PROFILE_RPP]) {
-    no_rename = true;
-    uuu::upll_strncpy(key_policingprofile->policingprofile_name,
-                      reinterpret_cast<key_policingprofile_t *>
-                      (ikey->get_key())->policingprofile_name,
-                      (kMaxLenPolicingProfileName+1));
-    UPLL_LOG_DEBUG("No Rename Operation %d", no_rename);
-  } else {
-     if (UNC_VF_VALID == tval->valid[UPLL_IDX_RENAME_PROFILE_RPP]) {
-      /* checking the string is empty or not*/
-      if (!strlen(reinterpret_cast<char *>(tval->policingprofile_newname))) {
-        UPLL_LOG_DEBUG(" PolicingProfile_newname is NULL");
+    key_policingprofile_t *key_policingprofile =
+        reinterpret_cast<key_policingprofile_t *>(
+            ConfigKeyVal::Malloc
+            (sizeof(key_policingprofile_t)));
+
+    if (UNC_VF_VALID_NO_VALUE ==
+        tval->valid[UPLL_IDX_RENAME_PROFILE_RPP]) {
+      no_rename = true;
+      uuu::upll_strncpy(key_policingprofile->policingprofile_name,
+                        reinterpret_cast<key_policingprofile_t *>
+                        (ikey->get_key())->policingprofile_name,
+                        (kMaxLenPolicingProfileName+1));
+      UPLL_LOG_DEBUG("No Rename Operation %d", no_rename);
+    } else {
+      if (UNC_VF_VALID == tval->valid[UPLL_IDX_RENAME_PROFILE_RPP]) {
+        /* checking the string is empty or not*/
+        if (!strlen(reinterpret_cast<char *>(tval->policingprofile_newname))) {
+          UPLL_LOG_DEBUG(" PolicingProfile_newname is NULL");
+          free(key_policingprofile);
+          return UPLL_RC_ERR_GENERIC;
+        }
+        uuu::upll_strncpy(key_policingprofile->policingprofile_name,
+                          tval->policingprofile_newname,
+                          (kMaxLenPolicingProfileName+1));
+        //  copy the new UNC name to KeyVtn
+        /* The New Name and PFC name should not be same name */
+        if (!strcmp(reinterpret_cast<char *>
+                    ((reinterpret_cast<key_policingprofile_t *>
+                      (ikey->get_key()))
+                     ->policingprofile_name), reinterpret_cast<char *>
+                    (tval->policingprofile_newname))) {
+          UPLL_LOG_DEBUG("ctrl , new name is same");
+          free(key_policingprofile);
+          return UPLL_RC_ERR_GENERIC;
+        }
+      } else {
+        UPLL_LOG_DEBUG("Invalid Input");
         free(key_policingprofile);
         return UPLL_RC_ERR_GENERIC;
+      }
     }
-    uuu::upll_strncpy(key_policingprofile->policingprofile_name,
-                      tval->policingprofile_newname,
-                      (kMaxLenPolicingProfileName+1));
-    //  copy the new UNC name to KeyVtn
-    /* The New Name and PFC name should not be same name */
-    if (!strcmp(reinterpret_cast<char *>
-       ((reinterpret_cast<key_policingprofile_t *>(ikey->get_key()))
-         ->policingprofile_name), reinterpret_cast<char *>
-        (tval->policingprofile_newname))) {
-        UPLL_LOG_DEBUG("ctrl , new name is same");
-        free(key_policingprofile);
-         return UPLL_RC_ERR_GENERIC;
-       }
-    } else {
-      UPLL_LOG_DEBUG("Invalid Input");
+
+    okey = new ConfigKeyVal(UNC_KT_POLICING_PROFILE,
+                            IpctSt::kIpcStValPolicingprofile,
+                            key_policingprofile,
+                            NULL);
+    if (NULL == okey) {
+      UPLL_LOG_DEBUG("okey Memory Allocation for ConfigKeyVal failed");
       free(key_policingprofile);
       return UPLL_RC_ERR_GENERIC;
     }
+    return result_code;
   }
 
-  okey = new ConfigKeyVal(UNC_KT_POLICING_PROFILE,
-      IpctSt::kIpcStValPolicingprofile, key_policingprofile,
-      NULL);
-  if (NULL == okey) {
-    UPLL_LOG_DEBUG("okey Memory Allocation for ConfigKeyVal failed");
-    free(key_policingprofile);
-    return UPLL_RC_ERR_GENERIC;
-  }
-  return result_code;
-}
-
-upll_rc_t PolicingProfileMoMgr::TxCopyCandidateToRunning(
-    unc_key_type_t keytype, CtrlrCommitStatusList *ctrlr_commit_status,
-    DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  DalResultCode db_result = uud::kDalRcGeneralError;
-  unc_keytype_operation_t op[] = { UNC_OP_CREATE, UNC_OP_DELETE ,
-                                   UNC_OP_UPDATE};
-  int nop = sizeof(op) / sizeof(op[0]);
-  ConfigKeyVal *policingprofile_key = NULL, *req = NULL, *nreq = NULL,
-               *pp_ck_run = NULL;
-  DalCursor *cfg1_cursor = NULL;
-  uint8_t *ctrlr_id = NULL;
+  upll_rc_t PolicingProfileMoMgr::TxCopyCandidateToRunning(
+      unc_key_type_t keytype, CtrlrCommitStatusList *ctrlr_commit_status,
+      DalDmlIntf *dmi) {
+    UPLL_FUNC_TRACE;
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+    DalResultCode db_result = uud::kDalRcGeneralError;
+    unc_keytype_operation_t op[] = { UNC_OP_CREATE, UNC_OP_DELETE ,
+      UNC_OP_UPDATE};
+    int nop = sizeof(op) / sizeof(op[0]);
+    ConfigKeyVal *policingprofile_key = NULL, *req = NULL, *nreq = NULL,
+                 *pp_ck_run = NULL;
+    DalCursor *cfg1_cursor = NULL;
+    uint8_t *ctrlr_id = NULL;
 #if 0
-  IpcReqRespHeader *req_header = reinterpret_cast<IpcReqRespHeader *>
-      (ConfigKeyVal::Malloc(sizeof(IpcReqRespHeader)));
+    IpcReqRespHeader *req_header = reinterpret_cast<IpcReqRespHeader *>
+        (ConfigKeyVal::Malloc(sizeof(IpcReqRespHeader)));
 #endif
-  map<string, int> ctrlr_result;
-  CtrlrCommitStatusList::iterator ccsListItr;
-  CtrlrCommitStatus *ccStatusPtr;
-
-  if (ctrlr_commit_status == NULL || (NULL == dmi)) {
-    UPLL_LOG_DEBUG(
-        " PolicingProfileMoMgr::TxCopyCandidateToRunning Failed.");
-    UPLL_LOG_DEBUG(" Incoming CtrlrCommitStatusList is NULL");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  for (ccsListItr = ctrlr_commit_status->begin();
-      ccsListItr != ctrlr_commit_status->end(); ++ccsListItr) {
-    ccStatusPtr = *ccsListItr;
-    ctrlr_id = reinterpret_cast<uint8_t *>
-        (const_cast<char*>(ccStatusPtr->ctrlr_id.c_str()));
-    ctrlr_result[ccStatusPtr->ctrlr_id] = ccStatusPtr->upll_ctrlr_result;
-    if (ccStatusPtr->upll_ctrlr_result != UPLL_RC_SUCCESS) {
-      for (ConfigKeyVal *ck_err = ccStatusPtr->err_ckv; ck_err != NULL; ck_err =
-          ck_err->get_next_cfg_key_val()) {
-        if (ck_err->get_key_type() != keytype) continue;
-        result_code = GetRenamedUncKey(ck_err, UPLL_DT_CANDIDATE, dmi,
-            ctrlr_id);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG(
-              " PolicingProfileMoMgr::TxCopyCandidateToRunning Failed.");
-          UPLL_LOG_DEBUG(" GetRenamedUncKey Function failed - %d ",
-              result_code);
-          return result_code;
+    map<string, int> ctrlr_result;
+    CtrlrCommitStatusList::iterator ccsListItr;
+    CtrlrCommitStatus *ccStatusPtr;
+
+    if (ctrlr_commit_status != NULL) {
+      for (ccsListItr = ctrlr_commit_status->begin();
+           ccsListItr != ctrlr_commit_status->end(); ++ccsListItr) {
+        ccStatusPtr = *ccsListItr;
+        ctrlr_id = reinterpret_cast<uint8_t *>
+            (const_cast<char*>(ccStatusPtr->ctrlr_id.c_str()));
+        ctrlr_result[ccStatusPtr->ctrlr_id] = ccStatusPtr->upll_ctrlr_result;
+        if (ccStatusPtr->upll_ctrlr_result != UPLL_RC_SUCCESS) {
+          for (ConfigKeyVal *ck_err = ccStatusPtr->err_ckv; ck_err != NULL;
+               ck_err =
+               ck_err->get_next_cfg_key_val()) {
+            if (ck_err->get_key_type() != keytype) continue;
+            result_code = GetRenamedUncKey(ck_err, UPLL_DT_CANDIDATE, dmi,
+                                           ctrlr_id);
+            if (result_code != UPLL_RC_SUCCESS) {
+              UPLL_LOG_DEBUG(
+                  " PolicingProfileMoMgr::TxCopyCandidateToRunning Failed.");
+              UPLL_LOG_DEBUG(" GetRenamedUncKey Function failed - %d ",
+                             result_code);
+              return result_code;
+            }
+          }
         }
       }
     }
-  }
-  for (int i = 0; i < nop; i++) {
-    // Update the Main table
-    if (op[i] != UNC_OP_UPDATE) {
-      result_code = DiffConfigDB(UPLL_DT_CANDIDATE, UPLL_DT_RUNNING, op[i],
-          req, nreq, &cfg1_cursor, dmi,NULL, MAINTBL, true);
+    for (int i = 0; i < nop; i++) {
+      cfg1_cursor = NULL;
+      // Update the Main table
+      if (op[i] != UNC_OP_UPDATE) {
+        result_code = DiffConfigDB(UPLL_DT_CANDIDATE,
+                                   UPLL_DT_RUNNING,
+                                   op[i],
+                                   req,
+                                   nreq,
+                                   &cfg1_cursor,
+                                   dmi,
+                                   NULL,
+                                   MAINTBL,
+                                   true);
+        while (result_code == UPLL_RC_SUCCESS) {
+          db_result = dmi->GetNextRecord(cfg1_cursor);
+          result_code = DalToUpllResCode(db_result);
+          if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+            result_code = UPLL_RC_SUCCESS;
+            break;
+          }
+          result_code = UpdateMainTbl(req, op[i], UPLL_RC_SUCCESS,
+                                      nreq, dmi);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("Updating Main table Error %d", result_code);
+            dmi->CloseCursor(cfg1_cursor, true);
+            DELETE_IF_NOT_NULL(req);
+            return result_code;
+          }
+        }
+        if (cfg1_cursor) {
+          dmi->CloseCursor(cfg1_cursor, true);
+          cfg1_cursor = NULL;
+        }
+        DELETE_IF_NOT_NULL(req);
+      }
+      UPLL_LOG_DEBUG("Updating main table complete with op %d", op[i]);
+    }
+    for (int i = 0; i < nop; i++) {
+      cfg1_cursor = NULL;
+      // Update the controller table
+      result_code = DiffConfigDB(UPLL_DT_CANDIDATE,
+                                 UPLL_DT_RUNNING,
+                                 op[i],
+                                 req,
+                                 nreq,
+                                 &cfg1_cursor,
+                                 dmi,
+                                 NULL,
+                                 CTRLRTBL,
+                                 true);
+      ConfigKeyVal *pp_ctrlr_key = NULL;
       while (result_code == UPLL_RC_SUCCESS) {
         db_result = dmi->GetNextRecord(cfg1_cursor);
         result_code = DalToUpllResCode(db_result);
@@ -842,1464 +894,1527 @@ upll_rc_t PolicingProfileMoMgr::TxCopyCandidateToRunning(
           result_code = UPLL_RC_SUCCESS;
           break;
         }
-        result_code = UpdateMainTbl(req, op[i], UPLL_RC_SUCCESS,
-                                    nreq, dmi);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("Updating Main table Error %d", result_code);
-          dmi->CloseCursor(cfg1_cursor, true);
-          DELETE_IF_NOT_NULL(req);
-          return result_code;
-        }
-      }
-      if (cfg1_cursor) {
-        dmi->CloseCursor(cfg1_cursor, true);
-        cfg1_cursor = NULL;
-      }
-      DELETE_IF_NOT_NULL(req);
-    }
-    UPLL_LOG_DEBUG("Updating main table complete with op %d", op[i]);
-  }
-  for (int i = 0; i < nop; i++) {
-    // Update the controller table
-    result_code = DiffConfigDB(UPLL_DT_CANDIDATE, UPLL_DT_RUNNING, op[i], req,
-        nreq, &cfg1_cursor, dmi,NULL, CTRLRTBL, true);
-    ConfigKeyVal *pp_ctrlr_key = NULL;
-    while (result_code == UPLL_RC_SUCCESS) {
-      db_result = dmi->GetNextRecord(cfg1_cursor);
-      result_code = DalToUpllResCode(db_result);
-      if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-        
-        result_code = UPLL_RC_SUCCESS;
-        break;
-      }
-      if (op[i] == UNC_OP_CREATE ) {
-        DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutFlag |kOpInOutCs };
-        result_code = GetChildConfigKey(policingprofile_key, req);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("GetChildConfigKey is failed resultcode=%d",
-              result_code);
-          DELETE_IF_NOT_NULL(req);
-          dmi->CloseCursor(cfg1_cursor, true);
-          return result_code;
-        }
+        if (op[i] == UNC_OP_CREATE) {
+          DbSubOp dbop = { kOpReadSingle,
+            kOpMatchNone,
+            kOpInOutFlag |kOpInOutCs };
+          result_code = GetChildConfigKey(policingprofile_key, req);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("GetChildConfigKey is failed resultcode=%d",
+                           result_code);
+            DELETE_IF_NOT_NULL(req);
+            dmi->CloseCursor(cfg1_cursor, true);
+            return result_code;
+          }
 
-        result_code = ReadConfigDB(policingprofile_key, UPLL_DT_RUNNING /*UPLL_DT_CANDIDATE*/,
-            UNC_OP_READ, dbop, dmi, MAINTBL);
-        if ((result_code != UPLL_RC_SUCCESS) &&
-            (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE)) {
-          UPLL_LOG_DEBUG("Unable to read configuration from CandidateDb");
-          DELETE_IF_NOT_NULL(policingprofile_key);
-          DELETE_IF_NOT_NULL(req);
-          DELETE_IF_NOT_NULL(nreq);
-          dmi->CloseCursor(cfg1_cursor, true);
-          return result_code;
-        }
-        /* set consolidated config status to UNKNOWN to init vtn cs_status
-         * to the cs_status of first controller
-         */
-        uint32_t cur_instance_count;
-        ConfigKeyVal *temp_val=NULL;
-        result_code = DupConfigKeyVal(temp_val, req, CTRLRTBL);
-        if (UPLL_RC_SUCCESS != result_code) {
-          UPLL_LOG_DEBUG("DupConfigval failed %d", result_code);
-          DELETE_IF_NOT_NULL(policingprofile_key);
-          DELETE_IF_NOT_NULL(req);
-          DELETE_IF_NOT_NULL(nreq);
-          DELETE_IF_NOT_NULL(temp_val);
-          dmi->CloseCursor(cfg1_cursor, true);
-          return result_code;
-        }
+          result_code = ReadConfigDB(policingprofile_key,
+                                     UPLL_DT_RUNNING  /*UPLL_DT_CANDIDATE*/,
+                                     UNC_OP_READ,
+                                     dbop,
+                                     dmi,
+                                     MAINTBL);
+          if ((result_code != UPLL_RC_SUCCESS) &&
+              (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE)) {
+            UPLL_LOG_DEBUG("Unable to read configuration from CandidateDb");
+            DELETE_IF_NOT_NULL(policingprofile_key);
+            DELETE_IF_NOT_NULL(req);
+            DELETE_IF_NOT_NULL(nreq);
+            dmi->CloseCursor(cfg1_cursor, true);
+            return result_code;
+          }
+          /* set consolidated config status to UNKNOWN to init vtn cs_status
+           * to the cs_status of first controller
+           */
+          uint32_t cur_instance_count;
+          ConfigKeyVal *temp_val = NULL;
+          result_code = DupConfigKeyVal(temp_val, req, CTRLRTBL);
+          if (UPLL_RC_SUCCESS != result_code) {
+            UPLL_LOG_DEBUG("DupConfigval failed %d", result_code);
+            DELETE_IF_NOT_NULL(policingprofile_key);
+            DELETE_IF_NOT_NULL(req);
+            DELETE_IF_NOT_NULL(nreq);
+            DELETE_IF_NOT_NULL(temp_val);
+            dmi->CloseCursor(cfg1_cursor, true);
+            return result_code;
+          }
 
-        result_code = GetInstanceCount(temp_val, NULL,
-            UPLL_DT_CANDIDATE, &cur_instance_count,
-            dmi, CTRLRTBL);
-        if (UPLL_RC_SUCCESS != result_code) {
-          UPLL_LOG_DEBUG("GetInstanceCount failed %d", result_code);
-          DELETE_IF_NOT_NULL(policingprofile_key);
-          DELETE_IF_NOT_NULL(req);
-          DELETE_IF_NOT_NULL(nreq);
-          DELETE_IF_NOT_NULL(temp_val);
-          dmi->CloseCursor(cfg1_cursor, true);
-          return result_code;
-        }
-        if (cur_instance_count == 1) {
-          reinterpret_cast<val_policingprofile *>
-            (GetVal(policingprofile_key))->cs_row_status =
-            UNC_CS_UNKNOWN;
-        }
-        result_code = DupConfigKeyVal(pp_ctrlr_key, req, CTRLRTBL);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("DupConfigVal function is failed %d", result_code);
-          DELETE_IF_NOT_NULL(policingprofile_key);
-          DELETE_IF_NOT_NULL(req);
-          DELETE_IF_NOT_NULL(nreq);
-          DELETE_IF_NOT_NULL(temp_val);
-          dmi->CloseCursor(cfg1_cursor, true);
-          return result_code;
-        }
+          result_code = GetInstanceCount(temp_val, NULL,
+                                         UPLL_DT_CANDIDATE,
+                                         &cur_instance_count,
+                                         dmi, CTRLRTBL);
+          if (UPLL_RC_SUCCESS != result_code) {
+            UPLL_LOG_DEBUG("GetInstanceCount failed %d", result_code);
+            DELETE_IF_NOT_NULL(policingprofile_key);
+            DELETE_IF_NOT_NULL(req);
+            DELETE_IF_NOT_NULL(nreq);
+            DELETE_IF_NOT_NULL(temp_val);
+            dmi->CloseCursor(cfg1_cursor, true);
+            return result_code;
+          }
+          if (cur_instance_count == 1) {
+            reinterpret_cast<val_policingprofile *>
+                (GetVal(policingprofile_key))->cs_row_status =
+                UNC_CS_UNKNOWN;
+          }
+          result_code = DupConfigKeyVal(pp_ctrlr_key, req, CTRLRTBL);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("DupConfigVal function is failed %d", result_code);
+            DELETE_IF_NOT_NULL(policingprofile_key);
+            DELETE_IF_NOT_NULL(req);
+            DELETE_IF_NOT_NULL(nreq);
+            DELETE_IF_NOT_NULL(temp_val);
+            dmi->CloseCursor(cfg1_cursor, true);
+            return result_code;
+          }
 
-        DELETE_IF_NOT_NULL(temp_val);
-        GET_USER_DATA_CTRLR(pp_ctrlr_key, ctrlr_id);
-        string controller(reinterpret_cast<char *>(ctrlr_id));
-        result_code = UpdateConfigStatus(policingprofile_key, op[i],
-            ctrlr_result[controller], nreq,
-            dmi, pp_ctrlr_key);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG(" UpdateConfigStatus Function Failed - %d ",
-                         result_code);
-          DELETE_IF_NOT_NULL(policingprofile_key);
-          DELETE_IF_NOT_NULL(pp_ctrlr_key);
-          DELETE_IF_NOT_NULL(req);
-          DELETE_IF_NOT_NULL(nreq);
-          dmi->CloseCursor(cfg1_cursor, true);
-          return result_code;
-        }
-      } else if (op[i] == UNC_OP_DELETE) {
-        //Reading Main Running DB for delete op
-        DbSubOp dbop1 = { kOpReadSingle, kOpMatchNone, kOpInOutFlag | kOpInOutCs };
-        result_code = GetChildConfigKey(pp_ck_run, req);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("GetChildConfigKey is failed resultcode=%d",
-              result_code);
-          DELETE_IF_NOT_NULL(req);
-          DELETE_IF_NOT_NULL(nreq);
-          dmi->CloseCursor(cfg1_cursor, true);
-          return result_code;
-        }
-        result_code = ReadConfigDB(pp_ck_run, UPLL_DT_RUNNING,
-            UNC_OP_READ, dbop1, dmi, MAINTBL);
-        if (result_code != UPLL_RC_SUCCESS &&
-            result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-          UPLL_LOG_DEBUG("Unable to read configuration from CandidateDb");
+          DELETE_IF_NOT_NULL(temp_val);
+          GET_USER_DATA_CTRLR(pp_ctrlr_key, ctrlr_id);
+          string controller(reinterpret_cast<char *>(ctrlr_id));
+          if (ctrlr_result.empty()) {
+            UPLL_LOG_TRACE("ctrlr_commit_status is NULL.");
+            result_code = UpdateConfigStatus(policingprofile_key, op[i],
+                                             UPLL_RC_ERR_CTR_DISCONNECTED, nreq,
+                                             dmi, pp_ctrlr_key);
+          } else {
+            result_code = UpdateConfigStatus(policingprofile_key, op[i],
+                                             ctrlr_result[controller], nreq,
+                                             dmi, pp_ctrlr_key);
+          }
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG(" UpdateConfigStatus Function Failed - %d ",
+                           result_code);
+            DELETE_IF_NOT_NULL(policingprofile_key);
+            DELETE_IF_NOT_NULL(pp_ctrlr_key);
+            DELETE_IF_NOT_NULL(req);
+            DELETE_IF_NOT_NULL(nreq);
+            dmi->CloseCursor(cfg1_cursor, true);
+            return result_code;
+          }
+        } else if (op[i] == UNC_OP_DELETE) {
+          // Reading Main Running DB for delete op
+          DbSubOp dbop1 = { kOpReadSingle,
+            kOpMatchNone,
+            kOpInOutFlag | kOpInOutCs };
+          result_code = GetChildConfigKey(pp_ck_run, req);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("GetChildConfigKey is failed resultcode=%d",
+                           result_code);
+            DELETE_IF_NOT_NULL(req);
+            DELETE_IF_NOT_NULL(nreq);
+            dmi->CloseCursor(cfg1_cursor, true);
+            return result_code;
+          }
+          result_code = ReadConfigDB(pp_ck_run, UPLL_DT_RUNNING,
+                                     UNC_OP_READ, dbop1, dmi, MAINTBL);
+          if (result_code != UPLL_RC_SUCCESS &&
+              result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+            UPLL_LOG_DEBUG("Unable to read configuration from CandidateDb");
+            DELETE_IF_NOT_NULL(pp_ck_run);
+            DELETE_IF_NOT_NULL(req);
+            DELETE_IF_NOT_NULL(nreq);
+            dmi->CloseCursor(cfg1_cursor, true);
+            return result_code;
+          }
+          if (result_code == UPLL_RC_SUCCESS) {
+            GET_USER_DATA_CTRLR(req, ctrlr_id);
+            result_code = SetPPConsolidatedStatus(pp_ck_run, ctrlr_id, dmi);
+            if (result_code != UPLL_RC_SUCCESS) {
+              UPLL_LOG_DEBUG("Could not set consolidated status %d",
+                             result_code);
+              DELETE_IF_NOT_NULL(pp_ck_run);
+              DELETE_IF_NOT_NULL(req);
+              DELETE_IF_NOT_NULL(nreq);
+              dmi->CloseCursor(cfg1_cursor, true);
+              return result_code;
+            }
+          }
           DELETE_IF_NOT_NULL(pp_ck_run);
-          DELETE_IF_NOT_NULL(req);
-          DELETE_IF_NOT_NULL(nreq);
-          dmi->CloseCursor(cfg1_cursor, true);
-          return result_code;
+          result_code = GetChildConfigKey(pp_ctrlr_key, req);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("GetChildConfigKey Failed  %d", result_code);
+            DELETE_IF_NOT_NULL(req);
+            DELETE_IF_NOT_NULL(nreq);
+            dmi->CloseCursor(cfg1_cursor, true);
+            return result_code;
+          }
         }
-        if (result_code == UPLL_RC_SUCCESS) {
-          GET_USER_DATA_CTRLR(req, ctrlr_id);
-          result_code = SetPPConsolidatedStatus(pp_ck_run, ctrlr_id, dmi);
+        if (UNC_OP_CREATE == op[i]) {
+          val_policingprofile_ctrl_t *val_ctrlr_temp = reinterpret_cast
+              <val_policingprofile_ctrl_t *>(GetVal(pp_ctrlr_key));
+          val_ctrlr_temp->valid[0] = UNC_VF_VALID;
+          val_policingprofile_ctrl_t *val_ctrlr_temp1 = reinterpret_cast
+              <val_policingprofile_ctrl_t *>(GetVal(req));
+          val_ctrlr_temp->ref_count = val_ctrlr_temp1->ref_count;
+          UPLL_LOG_DEBUG("Ref count in dupckv%d", val_ctrlr_temp->ref_count);
+          UPLL_LOG_DEBUG("Ref count in req%d", val_ctrlr_temp1->ref_count);
+        } else if (UNC_OP_UPDATE == op[i]) {
+          result_code = DupConfigKeyVal(pp_ctrlr_key, nreq, CTRLRTBL);
           if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("Could not set consolidated status %d", result_code);
-            DELETE_IF_NOT_NULL(pp_ck_run);
+            UPLL_LOG_DEBUG("DupConfigVal function is failed %d", result_code);
             DELETE_IF_NOT_NULL(req);
             DELETE_IF_NOT_NULL(nreq);
             dmi->CloseCursor(cfg1_cursor, true);
             return result_code;
           }
+          val_policingprofile_ctrl_t *val_ctrlr_temp = reinterpret_cast
+              <val_policingprofile_ctrl_t *>(GetVal(pp_ctrlr_key));
+          val_ctrlr_temp->valid[0] = UNC_VF_VALID;
+          val_policingprofile_ctrl_t *val_ctrlr_temp1 = reinterpret_cast
+              <val_policingprofile_ctrl_t *>(GetVal(req));
+          val_ctrlr_temp->ref_count = val_ctrlr_temp1->ref_count;
+          UPLL_LOG_DEBUG("Ref count in dupckv%d", val_ctrlr_temp->ref_count);
+          UPLL_LOG_DEBUG("Ref count in req%d", val_ctrlr_temp1->ref_count);
         }
-        DELETE_IF_NOT_NULL(pp_ck_run);
-        result_code = GetChildConfigKey(pp_ctrlr_key, req);
+        result_code = UpdateConfigDB(pp_ctrlr_key, UPLL_DT_RUNNING, op[i],
+                                     dmi, CTRLRTBL);
         if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("GetChildConfigKey Failed  %d", result_code);
+          UPLL_LOG_DEBUG("Unable to Update Configuration at DB %d",
+                         result_code);
           DELETE_IF_NOT_NULL(req);
           DELETE_IF_NOT_NULL(nreq);
+          DELETE_IF_NOT_NULL(pp_ctrlr_key);
           dmi->CloseCursor(cfg1_cursor, true);
           return result_code;
         }
-      }
-      if (UNC_OP_CREATE == op[i]) {
-        val_policingprofile_ctrl_t *val_ctrlr_temp = reinterpret_cast
-            <val_policingprofile_ctrl_t *>(GetVal(pp_ctrlr_key));
-        val_ctrlr_temp->valid[0] = UNC_VF_VALID;
-        val_policingprofile_ctrl_t *val_ctrlr_temp1 = reinterpret_cast
-            <val_policingprofile_ctrl_t *>(GetVal(req));
-        val_ctrlr_temp->ref_count = val_ctrlr_temp1->ref_count;
-        UPLL_LOG_DEBUG("Ref count in dupckv%d", val_ctrlr_temp->ref_count);
-        UPLL_LOG_DEBUG("Ref count in req%d", val_ctrlr_temp1->ref_count);
-      } else if (UNC_OP_UPDATE == op[i]) {
-        result_code = DupConfigKeyVal(pp_ctrlr_key, nreq, CTRLRTBL);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("DupConfigVal function is failed %d", result_code);
-          DELETE_IF_NOT_NULL(req);
-          DELETE_IF_NOT_NULL(nreq);
-          dmi->CloseCursor(cfg1_cursor, true);
-          return result_code;
+
+        // update the consolidated config status in the Main Table
+        if (op[i] == UNC_OP_CREATE) {
+          result_code = UpdateConfigDB(policingprofile_key, UPLL_DT_RUNNING,
+                                       UNC_OP_UPDATE, dmi, MAINTBL);
+          if (result_code != UPLL_RC_SUCCESS) {
+            DELETE_IF_NOT_NULL(req);
+            DELETE_IF_NOT_NULL(nreq);
+            DELETE_IF_NOT_NULL(policingprofile_key);
+            dmi->CloseCursor(cfg1_cursor, true);
+            return result_code;
+          }
         }
-        val_policingprofile_ctrl_t *val_ctrlr_temp = reinterpret_cast
-            <val_policingprofile_ctrl_t *>(GetVal(pp_ctrlr_key));
-        val_ctrlr_temp->valid[0] = UNC_VF_VALID;
-        val_policingprofile_ctrl_t *val_ctrlr_temp1 = reinterpret_cast
-            <val_policingprofile_ctrl_t *>(GetVal(req));
-        val_ctrlr_temp->ref_count = val_ctrlr_temp1->ref_count;
-        UPLL_LOG_DEBUG("Ref count in dupckv%d", val_ctrlr_temp->ref_count);
-        UPLL_LOG_DEBUG("Ref count in req%d", val_ctrlr_temp1->ref_count);
-      }
-      result_code = UpdateConfigDB(pp_ctrlr_key, UPLL_DT_RUNNING, op[i],
-                                   dmi, CTRLRTBL);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("Unable to Update Configuration at DB %d", result_code);
-        DELETE_IF_NOT_NULL(req);
-        DELETE_IF_NOT_NULL(nreq);
+
+        EnqueCfgNotification(op[i], UPLL_DT_RUNNING, pp_ctrlr_key);
+        DELETE_IF_NOT_NULL(policingprofile_key);
         DELETE_IF_NOT_NULL(pp_ctrlr_key);
+        result_code = DalToUpllResCode(db_result);
+      }
+      if (cfg1_cursor) {
         dmi->CloseCursor(cfg1_cursor, true);
-        return result_code;
+        cfg1_cursor = NULL;
       }
+      DELETE_IF_NOT_NULL(req);
+      DELETE_IF_NOT_NULL(nreq);
+      result_code = TxCopyRenameTableFromCandidateToRunning(keytype,
+                                                            op[i], dmi);
+      UPLL_LOG_DEBUG("TxCopyRenameTableFromCandidateToRunning returned %d",
+                     result_code);
+    }
+    result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) ?
+        UPLL_RC_SUCCESS : result_code;
+    return result_code;
+  }
 
-      // update the consolidated config status in the Main Table
-      if (op[i] == UNC_OP_CREATE) {
-        result_code = UpdateConfigDB(policingprofile_key, UPLL_DT_RUNNING,
-            UNC_OP_UPDATE, dmi, MAINTBL);
-        if (result_code != UPLL_RC_SUCCESS) {
-          DELETE_IF_NOT_NULL(req);
-          DELETE_IF_NOT_NULL(nreq);
-          DELETE_IF_NOT_NULL(policingprofile_key);
-          dmi->CloseCursor(cfg1_cursor, true);
+  upll_rc_t PolicingProfileMoMgr::UpdateMainTbl(ConfigKeyVal *key_pp,
+                                                unc_keytype_operation_t op,
+                                                uint32_t driver_result,
+                                                ConfigKeyVal *nreq,
+                                                DalDmlIntf *dmi) {
+    UPLL_FUNC_TRACE;
+    ConfigKeyVal *ck_pp = NULL;
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+    val_policingprofile_t *val_pp = NULL;
+
+    switch (op) {
+      case UNC_OP_CREATE:
+        result_code = DupConfigKeyVal(ck_pp, key_pp, MAINTBL);
+        if (!ck_pp || (result_code != UPLL_RC_SUCCESS)) {
+          UPLL_LOG_DEBUG("DupConfigKeyVal() Returning error %d", result_code);
           return result_code;
         }
-      }
+        val_pp = reinterpret_cast<val_policingprofile_t *>(GetVal(ck_pp));
+        if (!val_pp) {
+          UPLL_LOG_DEBUG("invalid val");
+          return UPLL_RC_ERR_GENERIC;
+        }
+        val_pp->cs_row_status = UNC_CS_APPLIED;
+        break;
+      case UNC_OP_DELETE:
 
-      EnqueCfgNotification(op[i], UPLL_DT_RUNNING, pp_ctrlr_key);
-      DELETE_IF_NOT_NULL(policingprofile_key);
-      DELETE_IF_NOT_NULL(pp_ctrlr_key);
-      result_code = DalToUpllResCode(db_result);
-    }
-    if (cfg1_cursor) {
-      dmi->CloseCursor(cfg1_cursor, true);
-      cfg1_cursor = NULL;
-    }
-    DELETE_IF_NOT_NULL(req);
-    DELETE_IF_NOT_NULL(nreq);
-    result_code = TxCopyRenameTableFromCandidateToRunning(keytype,
-                                                            op[i], dmi);
-    UPLL_LOG_DEBUG("TxCopyRenameTableFromCandidateToRunning returned %d",
-                                                            result_code);
-  }
-  result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) ?
-      UPLL_RC_SUCCESS : result_code;
-  return result_code;
-}
-
-upll_rc_t PolicingProfileMoMgr::UpdateMainTbl(ConfigKeyVal *key_pp,
-      unc_keytype_operation_t op, uint32_t driver_result,
-      ConfigKeyVal *nreq, DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-  ConfigKeyVal *ck_pp = NULL;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  val_policingprofile_t *val_pp = NULL;
-
-  switch (op) {
-    case UNC_OP_CREATE:
-      result_code = DupConfigKeyVal(ck_pp, key_pp, MAINTBL);
-      if (!ck_pp || (result_code != UPLL_RC_SUCCESS)) {
-        UPLL_LOG_DEBUG("DupConfigKeyVal() Returning error %d", result_code);
-        return result_code;
-      }
-      val_pp = reinterpret_cast<val_policingprofile_t *>(GetVal(ck_pp));
-      if (!val_pp) {
-        UPLL_LOG_DEBUG("invalid val");
+        result_code = GetChildConfigKey(ck_pp, key_pp);
+        if (!ck_pp || (result_code != UPLL_RC_SUCCESS)) {
+          UPLL_LOG_DEBUG("GetChildConfigKey() returning error %d",
+                         result_code);
+          return UPLL_RC_ERR_GENERIC;
+        }
+        break;
+      default:
+        UPLL_LOG_DEBUG("Inalid operation");
         return UPLL_RC_ERR_GENERIC;
-      }
-      val_pp->cs_row_status = UNC_CS_APPLIED;
-      break;
-    case UNC_OP_DELETE:
+    }
 
-      result_code = GetChildConfigKey(ck_pp, key_pp);
-      if (!ck_pp || (result_code != UPLL_RC_SUCCESS)) {
-        UPLL_LOG_DEBUG("GetChildConfigKey() returning error %d", result_code);
-        return UPLL_RC_ERR_GENERIC;
-      }
-      break;
-    default:
-          UPLL_LOG_DEBUG("Inalid operation");
-      return UPLL_RC_ERR_GENERIC;
+    DbSubOp dbop = {kOpNotRead, kOpMatchNone, kOpInOutNone};
+    dbop.inoutop = kOpInOutCs | kOpInOutFlag;
+    result_code = UpdateConfigDB(ck_pp,
+                                 UPLL_DT_STATE,
+                                 op,
+                                 dmi,
+                                 &dbop,
+                                 MAINTBL);
+    EnqueCfgNotification(op, UPLL_DT_RUNNING, key_pp);
+    delete ck_pp;
+    return result_code;
   }
 
-  DbSubOp dbop = {kOpNotRead, kOpMatchNone, kOpInOutNone};
-  dbop.inoutop = kOpInOutCs | kOpInOutFlag;
-  result_code = UpdateConfigDB(ck_pp, UPLL_DT_STATE, op, dmi, &dbop, MAINTBL);
-  EnqueCfgNotification(op, UPLL_DT_RUNNING, key_pp);
-  delete ck_pp;
-  return result_code;
-}
-
-
-upll_rc_t PolicingProfileMoMgr::TxUpdateController(unc_key_type_t keytype,
-    uint32_t session_id, uint32_t config_id,
-    uuc::UpdateCtrlrPhase phase,
-    set<string> *affected_ctrlr_set, DalDmlIntf *dmi,
-    ConfigKeyVal **err_ckv) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  DalResultCode dal_result = uud::kDalRcSuccess;
-  ConfigKeyVal *req = NULL, *nreq = NULL, *ck_main = NULL;
-  controller_domain ctrlr_dom;
-  ctrlr_dom.ctrlr = NULL;
-  ctrlr_dom.domain = NULL;
-  DalCursor *dal_cursor_handle;
-  IpcResponse resp;
-  if (uuc::kUpllUcpDelete == phase) {
-    UPLL_LOG_TRACE("Delete phase 1");
-    return UPLL_RC_SUCCESS;
-  }
-  if (uuc::kUpllUcpDelete2 == phase) UPLL_LOG_DEBUG("Delete phase 2");
-  unc_keytype_operation_t op = (phase == uuc::kUpllUcpCreate)?UNC_OP_CREATE:
-          ((phase == uuc::kUpllUcpUpdate)?UNC_OP_UPDATE:
-          ((phase == uuc::kUpllUcpDelete2)?UNC_OP_DELETE:UNC_OP_INVALID));
-  switch (op) {
-    case UNC_OP_CREATE:
-    case UNC_OP_DELETE:
-      result_code = DiffConfigDB(UPLL_DT_CANDIDATE, UPLL_DT_RUNNING,
-          op, req, nreq, &dal_cursor_handle, dmi, CTRLRTBL);
-      if (UPLL_RC_SUCCESS != result_code) {
-        UPLL_LOG_DEBUG(" PolicingProfileMoMgr::TxUpdateController failed."
-            " DiffConfigDB failed to get diff");
-        return result_code;
-      }
-      break;
-    case UNC_OP_UPDATE:
-      // not supported by keytype
-      // return success
-      UPLL_LOG_TRACE(" Not supported operation");
-      return UPLL_RC_SUCCESS;
-    default:
-      UPLL_LOG_TRACE(" Invalid ooperation");
-      return UPLL_RC_ERR_GENERIC;
-  }
-  resp.header.clnt_sess_id = session_id;
-  resp.header.config_id = config_id;
 
-  while (result_code == UPLL_RC_SUCCESS) {
-    // Get Next Record
-    dal_result = dmi->GetNextRecord(dal_cursor_handle);
-    result_code = DalToUpllResCode(dal_result);
-    if (result_code != UPLL_RC_SUCCESS) {
-      break;
+  upll_rc_t PolicingProfileMoMgr::TxUpdateController(
+      unc_key_type_t keytype,
+      uint32_t session_id,
+      uint32_t config_id,
+      uuc::UpdateCtrlrPhase phase,
+      set<string> *affected_ctrlr_set,
+      DalDmlIntf *dmi,
+      ConfigKeyVal **err_ckv) {
+    UPLL_FUNC_TRACE;
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+    DalResultCode dal_result = uud::kDalRcSuccess;
+    ConfigKeyVal *req = NULL, *nreq = NULL, *ck_main = NULL;
+    controller_domain ctrlr_dom;
+    ctrlr_dom.ctrlr = NULL;
+    ctrlr_dom.domain = NULL;
+    DalCursor *dal_cursor_handle = NULL;
+    IpcResponse resp;
+    if (uuc::kUpllUcpDelete == phase) {
+      UPLL_LOG_TRACE("Delete phase 1");
+      return UPLL_RC_SUCCESS;
     }
-    ck_main = NULL;
-    if ((op == UNC_OP_CREATE) || (op == UNC_OP_DELETE)) {
-      result_code = DupConfigKeyVal(ck_main, req, MAINTBL);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("DupConfigKeyVal failed during TxUpdate.");
-        return result_code;
-      }
+    if (uuc::kUpllUcpDelete2 == phase) UPLL_LOG_DEBUG("Delete phase 2");
+    unc_keytype_operation_t op = (phase == uuc::kUpllUcpCreate)?UNC_OP_CREATE:
+        ((phase == uuc::kUpllUcpUpdate)?UNC_OP_UPDATE:
+         ((phase == uuc::kUpllUcpDelete2)?UNC_OP_DELETE:UNC_OP_INVALID));
+    switch (op) {
+      case UNC_OP_CREATE:
+      case UNC_OP_DELETE:
+        result_code = DiffConfigDB(UPLL_DT_CANDIDATE,
+                                   UPLL_DT_RUNNING,
+                                   op,
+                                   req,
+                                   nreq,
+                                   &dal_cursor_handle,
+                                   dmi,
+                                   CTRLRTBL);
+        if (UPLL_RC_SUCCESS != result_code &&
+            UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+          UPLL_LOG_DEBUG(" PolicingProfileMoMgr::TxUpdateController failed."
+                         " DiffConfigDB failed to get diff");
+          return result_code;
+        }
+        break;
+      case UNC_OP_UPDATE:
+        // not supported by keytype
+        // return success
+        UPLL_LOG_TRACE(" Not supported operation");
+        return UPLL_RC_SUCCESS;
+      default:
+        UPLL_LOG_TRACE(" Invalid ooperation");
+        return UPLL_RC_ERR_GENERIC;
+    }
+    resp.header.clnt_sess_id = session_id;
+    resp.header.config_id = config_id;
 
-      GET_USER_DATA_CTRLR_DOMAIN(ck_main, ctrlr_dom);
-      UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom.ctrlr,
-                     ctrlr_dom.domain);
-      if (NULL == ctrlr_dom.ctrlr) {
-        UPLL_LOG_DEBUG("Invalid controller/domain");
-        result_code = UPLL_RC_ERR_GENERIC;
-        DELETE_IF_NOT_NULL(ck_main);
+    while (result_code == UPLL_RC_SUCCESS) {
+      // Get Next Record
+      dal_result = dmi->GetNextRecord(dal_cursor_handle);
+      result_code = DalToUpllResCode(dal_result);
+      if (result_code != UPLL_RC_SUCCESS) {
         break;
       }
-      result_code = TxUpdateProcess(ck_main, &resp, op,
-          dmi, &ctrlr_dom);
-      if (result_code == UPLL_RC_SUCCESS) {
-        affected_ctrlr_set->insert((const char *)ctrlr_dom.ctrlr);
-      } else {
-        UPLL_LOG_DEBUG("TxUpdateProcess error %d", result_code);
-        upll_keytype_datatype_t dt_type = (UNC_OP_DELETE == op)?
-            UPLL_DT_RUNNING:UPLL_DT_CANDIDATE;
-        upll_rc_t local_rc = GetRenamedUncKey(resp.ckv_data, dt_type, dmi,
-                                       ctrlr_dom.ctrlr);
-        if (UPLL_RC_SUCCESS != local_rc &&
-            UPLL_RC_ERR_NO_SUCH_INSTANCE != local_rc) {
-          UPLL_LOG_DEBUG("GetRenamedUncKey failed %d", local_rc);
+      ck_main = NULL;
+      if ((op == UNC_OP_CREATE) || (op == UNC_OP_DELETE)) {
+        result_code = DupConfigKeyVal(ck_main, req, MAINTBL);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("DupConfigKeyVal failed during TxUpdate.");
+          return result_code;
+        }
+
+        GET_USER_DATA_CTRLR_DOMAIN(ck_main, ctrlr_dom);
+        UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom.ctrlr,
+                       ctrlr_dom.domain);
+        if (NULL == ctrlr_dom.ctrlr) {
+          UPLL_LOG_DEBUG("Invalid controller/domain");
+          result_code = UPLL_RC_ERR_GENERIC;
+          DELETE_IF_NOT_NULL(ck_main);
+          break;
+        }
+        bool driver_resp = false;
+        result_code = TxUpdateProcess(ck_main,
+                                      &resp,
+                                      op,
+                                      dmi,
+                                      &ctrlr_dom,
+                                      affected_ctrlr_set,
+                                      &driver_resp);
+        if (result_code != UPLL_RC_SUCCESS && driver_resp) {
+          UPLL_LOG_DEBUG("TxUpdateProcess error %d", result_code);
+          upll_keytype_datatype_t dt_type = (UNC_OP_DELETE == op)?
+              UPLL_DT_RUNNING:UPLL_DT_CANDIDATE;
+          upll_rc_t local_rc = GetRenamedUncKey(resp.ckv_data, dt_type, dmi,
+                                                ctrlr_dom.ctrlr);
+          if (UPLL_RC_SUCCESS != local_rc &&
+              UPLL_RC_ERR_NO_SUCH_INSTANCE != local_rc) {
+            UPLL_LOG_DEBUG("GetRenamedUncKey failed %d", local_rc);
+            DELETE_IF_NOT_NULL(ck_main);
+            DELETE_IF_NOT_NULL(resp.ckv_data);
+            result_code = UPLL_RC_ERR_GENERIC;
+            break;
+          }
+          SET_USER_DATA_CTRLR(resp.ckv_data, ctrlr_dom.ctrlr);
+          *err_ckv = resp.ckv_data;
+          DELETE_IF_NOT_NULL(ck_main);
+          break;
+        } else if (result_code != UPLL_RC_SUCCESS) {
           DELETE_IF_NOT_NULL(ck_main);
           DELETE_IF_NOT_NULL(resp.ckv_data);
-          result_code = UPLL_RC_ERR_GENERIC;
           break;
         }
-        *err_ckv = resp.ckv_data;
-        DELETE_IF_NOT_NULL(ck_main);
-        break;
+        DELETE_IF_NOT_NULL(resp.ckv_data);
       }
-      DELETE_IF_NOT_NULL(resp.ckv_data);
+      DELETE_IF_NOT_NULL(ck_main);
     }
-    DELETE_IF_NOT_NULL(ck_main);
-  }
-  if (nreq)
-    delete nreq;
-  if (req)
-    delete req;
-  if (dal_cursor_handle) {
-    dmi->CloseCursor(dal_cursor_handle, true);
-    dal_cursor_handle = NULL;
+    if (nreq)
+      delete nreq;
+    if (req)
+      delete req;
+    if (dal_cursor_handle) {
+      dmi->CloseCursor(dal_cursor_handle, true);
+      dal_cursor_handle = NULL;
+    }
+    result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) ?
+        UPLL_RC_SUCCESS:result_code;
+    return result_code;
   }
-  result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) ?
-      UPLL_RC_SUCCESS:result_code;
-  return result_code;
-}
-
-upll_rc_t PolicingProfileMoMgr::TxUpdateProcess(ConfigKeyVal *ck_main,
-     IpcResponse *ipc_resp, unc_keytype_operation_t op,
-    DalDmlIntf *dmi, controller_domain *ctrlr_dom) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code;
-  /* read from main table */
-  ConfigKeyVal *dup_ckmain = ck_main;
-  if (op == UNC_OP_CREATE)  {
-    dup_ckmain = NULL;
-    result_code = GetChildConfigKey(dup_ckmain, ck_main);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Returning error %d", result_code);
-      if (dup_ckmain) delete dup_ckmain;
-      return result_code;
+
+  upll_rc_t PolicingProfileMoMgr::TxUpdateProcess(
+      ConfigKeyVal *ck_main,
+      IpcResponse *ipc_resp,
+      unc_keytype_operation_t op,
+      DalDmlIntf *dmi,
+      controller_domain *ctrlr_dom,
+      set<string> *affected_ctrlr_set,
+      bool *driver_resp) {
+    UPLL_FUNC_TRACE;
+    upll_rc_t result_code;
+    /* read from main table */
+    ConfigKeyVal *dup_ckmain = ck_main;
+    if (op == UNC_OP_CREATE)  {
+      dup_ckmain = NULL;
+      result_code = GetChildConfigKey(dup_ckmain, ck_main);
+      if (result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("Returning error %d", result_code);
+        if (dup_ckmain) delete dup_ckmain;
+        return result_code;
+      }
+      DbSubOp dbop = {kOpReadSingle, kOpMatchNone, kOpInOutCs};
+      result_code = ReadConfigDB(dup_ckmain, UPLL_DT_CANDIDATE,
+                                 UNC_OP_READ, dbop, dmi, MAINTBL);
+      if (UPLL_RC_SUCCESS != result_code) {
+        UPLL_LOG_DEBUG("%s policingprofile read failed from candidatedb (%d)",
+                       (dup_ckmain->ToStrAll()).c_str(), result_code);
+        // Since during delete ck_main is set to dup_ckmain
+        // which is deleted by calling method
+        if (op == UNC_OP_CREATE)
+          DELETE_IF_NOT_NULL(dup_ckmain);
+        return result_code;
+      }
     }
-    DbSubOp dbop = {kOpReadSingle, kOpMatchNone, kOpInOutCs};
-    result_code = ReadConfigDB(dup_ckmain, UPLL_DT_CANDIDATE,
-                               UNC_OP_READ, dbop, dmi, MAINTBL);
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("%s policingprofile read failed from candidatedb (%d)",
-                     (dup_ckmain->ToStrAll()).c_str(), result_code);
+    /* Get renamed key if key is renamed */
+    result_code =  GetRenamedControllerKey(dup_ckmain, UPLL_DT_CANDIDATE,
+                                           dmi, ctrlr_dom);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("Failed to get the Renamed ControllerKey");
       // Since during delete ck_main is set to dup_ckmain
       // which is deleted by calling method
       if (op == UNC_OP_CREATE)
         DELETE_IF_NOT_NULL(dup_ckmain);
       return result_code;
     }
-  }
-  /* Get renamed key if key is renamed */
-  result_code =  GetRenamedControllerKey(dup_ckmain, UPLL_DT_CANDIDATE,
-      dmi, ctrlr_dom);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Failed to get the Renamed ControllerKey");
-    // Since during delete ck_main is set to dup_ckmain
-    // which is deleted by calling method
-    if (op == UNC_OP_CREATE)
-    DELETE_IF_NOT_NULL(dup_ckmain); 
+    result_code = SendIpcReq(ipc_resp->header.clnt_sess_id,
+                             ipc_resp->header.config_id, op,
+                             UPLL_DT_CANDIDATE,
+                             dup_ckmain, ctrlr_dom, ipc_resp);
+    if (result_code == UPLL_RC_ERR_CTR_DISCONNECTED) {
+      result_code = UPLL_RC_SUCCESS;
+      UPLL_LOG_DEBUG("controller disconnected error proceed with commit");
+    }
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("IpcSend failed %d", result_code);
+      *driver_resp = true;
+    }
+    affected_ctrlr_set->insert((const char *)ctrlr_dom->ctrlr);
+    if ((op == UNC_OP_CREATE) && dup_ckmain) {
+      delete dup_ckmain;
+      dup_ckmain = NULL;
+    }
+    UPLL_LOG_TRACE("Driver response received %d", *driver_resp);
     return result_code;
   }
-  result_code = SendIpcReq(ipc_resp->header.clnt_sess_id,
-                           ipc_resp->header.config_id, op,
-                           UPLL_DT_CANDIDATE,
-                           dup_ckmain, ctrlr_dom, ipc_resp);
-  if (result_code == UPLL_RC_ERR_RESOURCE_DISCONNECTED) {
-    result_code = UPLL_RC_SUCCESS;
-    UPLL_LOG_DEBUG("controller disconnected error proceed with commit");
-  }
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("IpcSend failed %d", result_code);
-  }
-  if ((op == UNC_OP_CREATE) && dup_ckmain) {
-    delete dup_ckmain;
-    dup_ckmain = NULL;
-  }
-  return result_code;
-}
-
-upll_rc_t PolicingProfileMoMgr::GetDiffRecord(ConfigKeyVal *ckv_running,
-                                   ConfigKeyVal *ckv_audit,
-                                   uuc::UpdateCtrlrPhase phase, MoMgrTables tbl,
-                                   ConfigKeyVal *&okey,
-                                   DalDmlIntf *dmi,
-                                   bool &invalid_attr) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  ConfigKeyVal *ckv_dup = NULL;
-  okey = NULL;
-  DbSubOp dbop = {kOpReadSingle, kOpMatchNone, kOpInOutCs};
-  switch (phase) {
-    case uuc::kUpllUcpDelete:
-      UPLL_LOG_DEBUG("Deleted record is %s ",ckv_running->ToStrAll().c_str());
-      result_code = GetChildConfigKey(okey, ckv_running);
-      if (result_code != UPLL_RC_SUCCESS) {
-         UPLL_LOG_DEBUG("GetChildConfigKey failed. err_code & phase %d %d",
-                           result_code, phase);
-         return result_code;
-      }
-    break;
-    case uuc::kUpllUcpCreate:
-      if (tbl == CTRLRTBL) {
-        UPLL_LOG_DEBUG("Created  record fot ctrlr_tbl is %s ",ckv_running->ToStrAll().c_str());
+
+  upll_rc_t PolicingProfileMoMgr::GetDiffRecord(ConfigKeyVal *ckv_running,
+                                                ConfigKeyVal *ckv_audit,
+                                                uuc::UpdateCtrlrPhase phase,
+                                                MoMgrTables tbl,
+                                                ConfigKeyVal *&okey,
+                                                DalDmlIntf *dmi,
+                                                bool &invalid_attr) {
+    UPLL_FUNC_TRACE;
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+    ConfigKeyVal *ckv_dup = NULL;
+    okey = NULL;
+    DbSubOp dbop = {kOpReadSingle, kOpMatchNone, kOpInOutCs};
+    switch (phase) {
+      case uuc::kUpllUcpDelete:
+        UPLL_LOG_DEBUG("Deleted record is %s ",
+                       ckv_running->ToStrAll().c_str());
         result_code = GetChildConfigKey(okey, ckv_running);
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("GetChildConfigKey failed. err_code & phase %d %d",
-                           result_code, phase);
+                         result_code, phase);
           return result_code;
         }
-        result_code = ReadConfigDB(okey, UPLL_DT_RUNNING,
+        break;
+      case uuc::kUpllUcpCreate:
+        if (tbl == CTRLRTBL) {
+          UPLL_LOG_DEBUG("Created  record fot ctrlr_tbl is %s ",
+                         ckv_running->ToStrAll().c_str());
+          result_code = GetChildConfigKey(okey, ckv_running);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("GetChildConfigKey failed. err_code & phase %d %d",
+                           result_code, phase);
+            return result_code;
+          }
+          result_code = ReadConfigDB(okey, UPLL_DT_RUNNING,
                                      UNC_OP_READ, dbop, dmi, MAINTBL);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("ReadConfigDB failed. err_code & phase %d %d",
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("ReadConfigDB failed. err_code & phase %d %d",
                            result_code, phase);
-          return result_code;
-        }
-      } else {
-          UPLL_LOG_DEBUG("Created  record is %s ",ckv_running->ToStrAll().c_str());
+            return result_code;
+          }
+        } else {
+          UPLL_LOG_DEBUG("Created  record is %s ",
+                         ckv_running->ToStrAll().c_str());
           result_code = DupConfigKeyVal(okey, ckv_running, tbl);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("DupConfigKeyVal failed. err_code & phase %d %d",
                            result_code, phase);
             return result_code;
           }
-      }
-    break;
-    case uuc::kUpllUcpUpdate:
-      if (tbl == CTRLRTBL) {
-        UPLL_LOG_DEBUG("UpdateRecord  record for run Ctrlr_tbl is %s ",ckv_running->ToStrAll().c_str());
-        /*To be removed*/
-        val_policingprofile_ctrl_t *val1 = reinterpret_cast<val_policingprofile_ctrl_t *>
-          (GetVal(ckv_running));
-        UPLL_LOG_DEBUG("cs_row_status : %d flags : %d ref_count : %d", val1->cs_row_status,
-            val1->flags, val1->ref_count);
-        UPLL_LOG_DEBUG("UpdateRecord  record for audit Ctrlr_tbl is %s ",ckv_audit->ToStrAll().c_str());
-        val_policingprofile_ctrl_t *val2 = reinterpret_cast<val_policingprofile_ctrl_t *>
-          (GetVal(ckv_audit));
-        UPLL_LOG_DEBUG("cs_row_status : %d flags : %d ref_count : %d", val2->cs_row_status,
-            val2->flags, val2->ref_count);
-        result_code = GetChildConfigKey(okey, ckv_running);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("GetChildConfigKey for running record failed. \
-                         err_code & phase %d %d", result_code, phase);
-          return result_code;
         }
-        result_code = ReadConfigDB(okey, UPLL_DT_RUNNING,
+        break;
+      case uuc::kUpllUcpUpdate:
+        if (tbl == CTRLRTBL) {
+          UPLL_LOG_DEBUG("UpdateRecord  record for run Ctrlr_tbl is %s ",
+                         ckv_running->ToStrAll().c_str());
+          /*To be removed*/
+          val_policingprofile_ctrl_t *val1 = reinterpret_cast
+              <val_policingprofile_ctrl_t *>
+              (GetVal(ckv_running));
+          UPLL_LOG_DEBUG("cs_row_status : %d flags : %d ref_count : %d",
+                         val1->cs_row_status,
+                         val1->flags, val1->ref_count);
+          UPLL_LOG_DEBUG("UpdateRecord  record for audit Ctrlr_tbl is %s ",
+                         ckv_audit->ToStrAll().c_str());
+          val_policingprofile_ctrl_t *val2 = reinterpret_cast
+              <val_policingprofile_ctrl_t *>
+              (GetVal(ckv_audit));
+          UPLL_LOG_DEBUG("cs_row_status : %d flags : %d ref_count : %d",
+                         val2->cs_row_status,
+                         val2->flags, val2->ref_count);
+          result_code = GetChildConfigKey(okey, ckv_running);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("GetChildConfigKey for running record failed."
+                           "err_code & phase %d %d", result_code, phase);
+            return result_code;
+          }
+          result_code = ReadConfigDB(okey, UPLL_DT_RUNNING,
                                      UNC_OP_READ, dbop, dmi, MAINTBL);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("ReadConfigDB from running failed. \
-                           err_code & phase %d %d", result_code, phase);
-          return result_code;
-        }
-        result_code = GetChildConfigKey(ckv_dup, ckv_audit);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("GetChildConfigKey for audit record failed. \
-                            err_code & phase %d %d", result_code, phase);
-          return result_code;
-        }
-        result_code = ReadConfigDB(ckv_dup, UPLL_DT_AUDIT,
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("ReadConfigDB from running failed."
+                           "err_code & phase %d %d", result_code, phase);
+            return result_code;
+          }
+          result_code = GetChildConfigKey(ckv_dup, ckv_audit);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("GetChildConfigKey for audit record failed."
+                           "err_code & phase %d %d", result_code, phase);
+            return result_code;
+          }
+          result_code = ReadConfigDB(ckv_dup, UPLL_DT_AUDIT,
                                      UNC_OP_READ, dbop, dmi, MAINTBL);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("ReadConfigDB from audit failed. \
-                           err_code & phase %d %d", result_code, phase);
-          DELETE_IF_NOT_NULL(ckv_dup);
-          return result_code;
-        }
-      } else {
-          UPLL_LOG_DEBUG("UpdateRecord  record  is %s ",ckv_running->ToStrAll().c_str());
-          UPLL_LOG_DEBUG("UpdateRecord  record  is %s ",ckv_audit->ToStrAll().c_str());
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("ReadConfigDB from audit failed."
+                           "err_code & phase %d %d", result_code, phase);
+            DELETE_IF_NOT_NULL(ckv_dup);
+            return result_code;
+          }
+        } else {
+          UPLL_LOG_DEBUG("UpdateRecord  record  is %s ",
+                         ckv_running->ToStrAll().c_str());
+          UPLL_LOG_DEBUG("UpdateRecord  record  is %s ",
+                         ckv_audit->ToStrAll().c_str());
           result_code = DupConfigKeyVal(okey, ckv_running, tbl);
           if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("DupConfigKeyVal failed for running record. \
-                            err_code & phase %d %d", result_code, phase);
+            UPLL_LOG_DEBUG("DupConfigKeyVal failed for running record."
+                           "err_code & phase %d %d", result_code, phase);
             return result_code;
           }
           result_code = DupConfigKeyVal(ckv_dup, ckv_audit, tbl);
           if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("DupConfigKeyVal failed for audit record. \
-                           err_code & phase %d %d", result_code, phase);
+            UPLL_LOG_DEBUG("DupConfigKeyVal failed for audit record."
+                           "err_code & phase %d %d", result_code, phase);
             return result_code;
           }
-      }
-      if (GetVal(okey) != NULL &&
-          GetVal(ckv_dup) != NULL) {
-        void *val1 = GetVal(okey);
-        invalid_attr = FilterAttributes(val1, GetVal(ckv_dup), true,
-                         UNC_OP_UPDATE);
-      }
-      DELETE_IF_NOT_NULL(ckv_dup);
-    break;
-    default:
-      UPLL_LOG_DEBUG("Invalid operation %d", phase);
-      return UPLL_RC_ERR_NO_SUCH_OPERATION;
-      break;
-  }
-  return result_code;
-}
-
-
-upll_rc_t PolicingProfileMoMgr::IsReferenced(ConfigKeyVal *ikey,
-    upll_keytype_datatype_t dt_type,
-    DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  if (NULL == ikey) return UPLL_RC_ERR_GENERIC;
-
-  unc::upll::kt_momgr::VtnPolicingMapMoMgr *vtnpmmgr = reinterpret_cast
-      <unc::upll::kt_momgr::VtnPolicingMapMoMgr *>
-      (const_cast<MoManager *>(GetMoManager(UNC_KT_VTN_POLICINGMAP)));
-  if (NULL == vtnpmmgr) {
-    return UPLL_RC_ERR_GENERIC;
-  }
-  result_code = vtnpmmgr->IsPolicingProfileConfigured(
-    reinterpret_cast<const char *>
-    (reinterpret_cast<key_policingprofile *>(ikey->get_key())->
-    policingprofile_name), dmi);
-  if (UPLL_RC_SUCCESS != result_code) {
-    if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code) {
-      UPLL_LOG_DEBUG("PolicingProfile is referred in VTN");
-      return UPLL_RC_ERR_CFG_SEMANTIC;
-    }
-    UPLL_LOG_DEBUG("VTN IsPolicingProfileConfigured failed. code(%d)",
-                   result_code);
+        }
+        if (GetVal(okey) != NULL &&
+            GetVal(ckv_dup) != NULL) {
+          void *val1 = GetVal(okey);
+          invalid_attr = FilterAttributes(val1, GetVal(ckv_dup), true,
+                                          UNC_OP_UPDATE);
+        }
+        DELETE_IF_NOT_NULL(ckv_dup);
+        break;
+      default:
+        UPLL_LOG_DEBUG("Invalid operation %d", phase);
+        return UPLL_RC_ERR_NO_SUCH_OPERATION;
+        break;
+    }
     return result_code;
   }
 
-  unc::upll::kt_momgr::VbrPolicingMapMoMgr *vbrpmmgr = reinterpret_cast
-      <unc::upll::kt_momgr::VbrPolicingMapMoMgr *>
-      (const_cast<MoManager *>(GetMoManager(UNC_KT_VBR_POLICINGMAP)));
-  if (NULL == vbrpmmgr) {
-    return UPLL_RC_ERR_GENERIC;
-  }
-  result_code = vbrpmmgr->IsPolicingProfileConfigured(
-    reinterpret_cast<const char *>
-    (reinterpret_cast<key_policingprofile *>(ikey->get_key())->
-    policingprofile_name), dmi);
-  if (UPLL_RC_SUCCESS != result_code) {
-    if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code) {
-      UPLL_LOG_DEBUG("PolicingProfile is referred in vBridge");
-      return UPLL_RC_ERR_CFG_SEMANTIC;
-    }
-    UPLL_LOG_DEBUG("vBridge IsPolicingProfileConfigured failed. code(%d)",
-                   result_code);
-    return result_code;
-  }
 
-  unc::upll::kt_momgr::VbrIfPolicingMapMoMgr *vbrifpmmgr = reinterpret_cast
-      <unc::upll::kt_momgr::VbrIfPolicingMapMoMgr *>
-      (const_cast<MoManager *>(GetMoManager(UNC_KT_VBRIF_POLICINGMAP)));
-  if (NULL == vbrifpmmgr) {
-    return UPLL_RC_ERR_GENERIC;
-  }
-  result_code = vbrifpmmgr->IsPolicingProfileConfigured(
-    reinterpret_cast<const char *>
-    (reinterpret_cast<key_policingprofile *>(ikey->get_key())->
-    policingprofile_name), dmi);
-  if (UPLL_RC_SUCCESS != result_code) {
-    if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code) {
-      UPLL_LOG_DEBUG(" PolicingProfile is referred in vBridge Interface");
-      return UPLL_RC_ERR_CFG_SEMANTIC;
-    }
-    UPLL_LOG_DEBUG("vBridge If IsPolicingProfileConfigured failed. code(%d)",
-                   result_code);
-    return result_code;
+  upll_rc_t PolicingProfileMoMgr::IsReferenced(ConfigKeyVal *ikey,
+                                               upll_keytype_datatype_t dt_type,
+                                               DalDmlIntf *dmi) {
+    UPLL_FUNC_TRACE;
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+    if (NULL == ikey) return UPLL_RC_ERR_GENERIC;
+
+    unc::upll::kt_momgr::VtnPolicingMapMoMgr *vtnpmmgr = reinterpret_cast
+        <unc::upll::kt_momgr::VtnPolicingMapMoMgr *>
+        (const_cast<MoManager *>(GetMoManager(UNC_KT_VTN_POLICINGMAP)));
+    if (NULL == vtnpmmgr) {
+      return UPLL_RC_ERR_GENERIC;
+    }
+    result_code = vtnpmmgr->IsPolicingProfileConfigured(
+        reinterpret_cast<const char *>
+        (reinterpret_cast<key_policingprofile *>(ikey->get_key())->
+         policingprofile_name), dmi);
+    if (UPLL_RC_SUCCESS != result_code) {
+      if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code) {
+        UPLL_LOG_DEBUG("PolicingProfile is referred in VTN");
+        return UPLL_RC_ERR_CFG_SEMANTIC;
+      }
+      UPLL_LOG_DEBUG("VTN IsPolicingProfileConfigured failed. code(%d)",
+                     result_code);
+      return result_code;
+    }
+
+    unc::upll::kt_momgr::VbrPolicingMapMoMgr *vbrpmmgr = reinterpret_cast
+        <unc::upll::kt_momgr::VbrPolicingMapMoMgr *>
+        (const_cast<MoManager *>(GetMoManager(UNC_KT_VBR_POLICINGMAP)));
+    if (NULL == vbrpmmgr) {
+      return UPLL_RC_ERR_GENERIC;
+    }
+    result_code = vbrpmmgr->IsPolicingProfileConfigured(
+        reinterpret_cast<const char *>
+        (reinterpret_cast<key_policingprofile *>(ikey->get_key())->
+         policingprofile_name), dmi);
+    if (UPLL_RC_SUCCESS != result_code) {
+      if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code) {
+        UPLL_LOG_DEBUG("PolicingProfile is referred in vBridge");
+        return UPLL_RC_ERR_CFG_SEMANTIC;
+      }
+      UPLL_LOG_DEBUG("vBridge IsPolicingProfileConfigured failed. code(%d)",
+                     result_code);
+      return result_code;
+    }
+
+    unc::upll::kt_momgr::VbrIfPolicingMapMoMgr *vbrifpmmgr = reinterpret_cast
+        <unc::upll::kt_momgr::VbrIfPolicingMapMoMgr *>
+        (const_cast<MoManager *>(GetMoManager(UNC_KT_VBRIF_POLICINGMAP)));
+    if (NULL == vbrifpmmgr) {
+      return UPLL_RC_ERR_GENERIC;
+    }
+    result_code = vbrifpmmgr->IsPolicingProfileConfigured(
+        reinterpret_cast<const char *>
+        (reinterpret_cast<key_policingprofile *>(ikey->get_key())->
+         policingprofile_name), dmi);
+    if (UPLL_RC_SUCCESS != result_code) {
+      if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code) {
+        UPLL_LOG_DEBUG(" PolicingProfile is referred in vBridge Interface");
+        return UPLL_RC_ERR_CFG_SEMANTIC;
+      }
+      UPLL_LOG_DEBUG("vBridge If IsPolicingProfileConfigured failed. code(%d)",
+                     result_code);
+      return result_code;
+    }
+    return UPLL_RC_SUCCESS;
   }
-  return UPLL_RC_SUCCESS;
-}
-
-upll_rc_t PolicingProfileMoMgr::ReadMo(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey, DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  controller_domain ctrlr_dom;
-  result_code = ValidateMessage(req, ikey);
-  if (result_code != UPLL_RC_SUCCESS) {
+
+  upll_rc_t PolicingProfileMoMgr::ReadMo(IpcReqRespHeader *req,
+                                         ConfigKeyVal *ikey, DalDmlIntf *dmi) {
+    UPLL_FUNC_TRACE;
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+    controller_domain ctrlr_dom;
+    result_code = ValidateMessage(req, ikey);
+    if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("ValidateMessage failed result_code %d",
-                    result_code);
+                     result_code);
       return result_code;
-  }
+    }
 
-  result_code = ReadInfoFromDB(req, ikey, dmi, &ctrlr_dom);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG(" Read request failed result(%d)", result_code);
+    result_code = ReadInfoFromDB(req, ikey, dmi, &ctrlr_dom);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG(" Read request failed result(%d)", result_code);
+    }
+    return result_code;
   }
-  return result_code;
-}
-
-upll_rc_t PolicingProfileMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey, bool begin,
-    DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  controller_domain ctrlr_dom;
-  result_code = ValidateMessage(req, ikey);
-  if (result_code != UPLL_RC_SUCCESS) {
+
+  upll_rc_t PolicingProfileMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
+                                                ConfigKeyVal *ikey, bool begin,
+                                                DalDmlIntf *dmi) {
+    UPLL_FUNC_TRACE;
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+    controller_domain ctrlr_dom;
+    result_code = ValidateMessage(req, ikey);
+    if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("ValidateMessage failed result_code %d",
-                    result_code);
+                     result_code);
       return result_code;
+    }
+    result_code = ReadInfoFromDB(req, ikey, dmi, &ctrlr_dom);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG(" Read request failed result(%d)", result_code);
+    }
+    return result_code;
   }
-  result_code = ReadInfoFromDB(req, ikey, dmi, &ctrlr_dom);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG(" Read request failed result(%d)", result_code);
-  }
-  return result_code;
-}
 
-upll_rc_t PolicingProfileMoMgr::ValidateCapability(IpcReqRespHeader *req,
-                                 ConfigKeyVal *ikey,
-                                 const char *ctrlr_name) {
-  UPLL_FUNC_TRACE;
+  upll_rc_t PolicingProfileMoMgr::ValidateCapability(IpcReqRespHeader *req,
+                                                     ConfigKeyVal *ikey,
+                                                     const char *ctrlr_name) {
+    UPLL_FUNC_TRACE;
+
+    if ((NULL == req) || (NULL == ikey)) {
+      UPLL_LOG_DEBUG("IpcReqRespHeader/ConfigKeyval is NULL");
+      return UPLL_RC_ERR_GENERIC;
+    }
+
+    if (!ctrlr_name) {
+      ctrlr_name = static_cast<char *>(ikey->get_user_data());
+    }
 
-  if ((NULL == req) || (NULL == ikey)) {
-    UPLL_LOG_DEBUG("IpcReqRespHeader/ConfigKeyval is NULL");
-    return UPLL_RC_ERR_GENERIC;
-  }
+    UPLL_LOG_TRACE("Controller_name:(%s), operation:(%d)",
+                   ctrlr_name, req->operation);
 
-  if (!ctrlr_name) {
-    ctrlr_name = static_cast<char *>(ikey->get_user_data());
-  }
+    bool result_code = false;
+    uint32_t max_instance_count;
+    const uint8_t *attrs = NULL;
+    uint32_t max_attrs = 0;
 
-  UPLL_LOG_TRACE("Controller_name:(%s), operation:(%d)",
-                 ctrlr_name, req->operation);
-
-  bool result_code = false;
-  uint32_t max_instance_count;
-  const uint8_t *attrs = NULL;
-  uint32_t max_attrs = 0;
-
-  switch (req->operation) {
-    case UNC_OP_CREATE: {
-      result_code = GetCreateCapability(ctrlr_name, ikey->get_key_type(),
-                                        &max_instance_count, &max_attrs, &attrs);
-      if (result_code && (max_instance_count != 0) &&
-          (cur_instance_count >= max_instance_count)) {
-        UPLL_LOG_DEBUG("Instance count %d exceeds %d", cur_instance_count,
-                      max_instance_count);
-        return UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
+    switch (req->operation) {
+      case UNC_OP_CREATE: {
+        result_code = GetCreateCapability(ctrlr_name,
+                                          ikey->get_key_type(),
+                                          &max_instance_count,
+                                          &max_attrs, &attrs);
+        break;
+      }
+      case UNC_OP_UPDATE: {
+        result_code = GetUpdateCapability(ctrlr_name, ikey->get_key_type(),
+                                          &max_attrs, &attrs);
+        break;
+      }
+      default: {
+        if (req->datatype == UPLL_DT_STATE)
+          result_code = GetStateCapability(ctrlr_name, ikey->get_key_type(),
+                                           &max_attrs, &attrs);
+        else
+          result_code = GetReadCapability(ctrlr_name, ikey->get_key_type(),
+                                          &max_attrs, &attrs);
       }
-      break;
-    }
-    case UNC_OP_UPDATE: {
-      result_code = GetUpdateCapability(ctrlr_name, ikey->get_key_type(),
-                                        &max_attrs, &attrs);
-      break;
     }
-    default: {
-      if (req->datatype == UPLL_DT_STATE)
-        result_code = GetStateCapability(ctrlr_name, ikey->get_key_type(),
-                                      &max_attrs, &attrs);
-      else
-        result_code = GetReadCapability(ctrlr_name, ikey->get_key_type(),
-                                      &max_attrs, &attrs);
+
+    if (!result_code) {
+      UPLL_LOG_DEBUG("keytype(%d) is not supported by controller(%s) "
+                     "for opeartion(%d)",
+                     ikey->get_key_type(), ctrlr_name, req->operation);
+      return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
     }
+    return UPLL_RC_SUCCESS;
   }
 
-  if (!result_code) {
-    UPLL_LOG_DEBUG("keytype(%d) is not supported by controller(%s) "
-                   "for opeartion(%d)",
-                   ikey->get_key_type(), ctrlr_name, req->operation);
-    return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
-  }
-  return UPLL_RC_SUCCESS;
-}
+  upll_rc_t PolicingProfileMoMgr::ValidateMessage(IpcReqRespHeader *req,
+                                                  ConfigKeyVal *key) {
+    UPLL_FUNC_TRACE;
 
-upll_rc_t PolicingProfileMoMgr::ValidateMessage(IpcReqRespHeader *req,
-                                                ConfigKeyVal *key) {
-  UPLL_FUNC_TRACE;
+    upll_rc_t rt_code = UPLL_RC_ERR_GENERIC;
 
-  upll_rc_t rt_code = UPLL_RC_ERR_GENERIC;
+    if ((NULL == req) || (NULL == key)) {
+      UPLL_LOG_DEBUG("IpcReqRespHeader/ConfigKeyval is NULL");
+      return UPLL_RC_ERR_BAD_REQUEST;
+    }
 
-  if ((NULL == req) || (NULL == key)) {
-    UPLL_LOG_DEBUG("IpcReqRespHeader/ConfigKeyval is NULL");
-    return UPLL_RC_ERR_BAD_REQUEST;
-  }
+    if (UNC_KT_POLICING_PROFILE != key->get_key_type()) {
+      UPLL_LOG_DEBUG("Received keytype (%d) is not KT_POLICINGPROFILE!!",
+                     key->get_key_type());
+      return UPLL_RC_ERR_BAD_REQUEST;
+    }
 
-  if (UNC_KT_POLICING_PROFILE != key->get_key_type()) {
-    UPLL_LOG_DEBUG("Received keytype (%d) is not KT_POLICINGPROFILE!!",
-                  key->get_key_type());
-    return UPLL_RC_ERR_BAD_REQUEST;
-  }
+    if (key->get_st_num() != IpctSt::kIpcStKeyPolicingprofile) {
+      UPLL_LOG_DEBUG("Invalid key structure received."
+                     "received struct num - %d",
+                     key->get_st_num());
+      return UPLL_RC_ERR_BAD_REQUEST;
+    }
+    if (req->option2 != UNC_OPT2_NONE) {
+      UPLL_LOG_DEBUG(" Error: option2 is not NONE");
+      return UPLL_RC_ERR_INVALID_OPTION2;
+    }
+    if (req->option1 != UNC_OPT1_NORMAL) {
+      UPLL_LOG_DEBUG(" Error: option1 is not NORMAL");
+      return UPLL_RC_ERR_INVALID_OPTION1;
+    }
 
-  if (key->get_st_num() != IpctSt::kIpcStKeyPolicingprofile) {
-     UPLL_LOG_DEBUG("Invalid key structure received. received struct num - %d",
-                  key->get_st_num());
-    return UPLL_RC_ERR_BAD_REQUEST;
-  }
-  if(req->option2 != UNC_OPT2_NONE) {
-    UPLL_LOG_DEBUG(" Error: option2 is not NONE");
-    return UPLL_RC_ERR_INVALID_OPTION2;
-  }
-  if(req->option1 != UNC_OPT1_NORMAL) {
-     UPLL_LOG_DEBUG(" Error: option1 is not NORMAL");
-     return UPLL_RC_ERR_INVALID_OPTION1;
-  }
-  
-  /** Read key, val struct from ConfigKeyVal */
-  key_policingprofile_t *key_policingprofile =
-      reinterpret_cast<key_policingprofile_t *>(key->get_key());
-
-  if (NULL == key_policingprofile) {
-    UPLL_LOG_ERROR("KT_POLICINGPROFILE Key structure is empty!!");
-    return UPLL_RC_ERR_BAD_REQUEST;
-  }
+    /** Read key, val struct from ConfigKeyVal */
+    key_policingprofile_t *key_policingprofile =
+        reinterpret_cast<key_policingprofile_t *>(key->get_key());
 
-  if ((req->operation != UNC_OP_READ_SIBLING_COUNT) &&
-      (req->operation != UNC_OP_READ_SIBLING_BEGIN)) {
-    rt_code = ValidateKey(reinterpret_cast<char*>(
-            key_policingprofile->policingprofile_name),
-        (unsigned int)kMinLenPolicingProfileName,
-        (unsigned int)kMaxLenPolicingProfileName);
-
-    if (UPLL_RC_SUCCESS != rt_code) {
-      UPLL_LOG_ERROR("key structure syntax validation failed Err code-%d",
-                     rt_code);
-      return rt_code;
-    }
-  } else {
-    UPLL_LOG_TRACE("Operation is %d", req->operation);
-    StringReset(key_policingprofile->policingprofile_name);
-  }
+    if (NULL == key_policingprofile) {
+      UPLL_LOG_ERROR("KT_POLICINGPROFILE Key structure is empty!!");
+      return UPLL_RC_ERR_BAD_REQUEST;
+    }
 
-  UPLL_LOG_TRACE(" key struct validation is success");
-  uint32_t dt_type = req->datatype;
-  uint32_t operation = req->operation;
-  if (operation == UNC_OP_RENAME) {
-    if (dt_type == UPLL_DT_IMPORT) {
-      val_rename_policingprofile_t *val_rename_policingprofile = NULL;
-      /** Read rename value structure*/
-      if (key->get_cfg_val() && (key->get_cfg_val()->get_st_num() ==
-         IpctSt::kIpcStValRenamePolicingprofile)) {
-        val_rename_policingprofile =
-          reinterpret_cast<val_rename_policingprofile_t *>(
-            key->get_cfg_val()->get_val());
-      }
-      if (val_rename_policingprofile) {
-        return ValidatePolicingProfileRenameValue(val_rename_policingprofile,
-                                                         operation);
+    if ((req->operation != UNC_OP_READ_SIBLING_COUNT) &&
+        (req->operation != UNC_OP_READ_SIBLING_BEGIN)) {
+      rt_code = ValidateKey(reinterpret_cast<char*>(
+              key_policingprofile->policingprofile_name),
+          (unsigned int)kMinLenPolicingProfileName,
+          (unsigned int)kMaxLenPolicingProfileName);
+
+      if (UPLL_RC_SUCCESS != rt_code) {
+        UPLL_LOG_ERROR("key structure syntax validation failed Err code-%d",
+                       rt_code);
+        return rt_code;
       }
-      UPLL_LOG_DEBUG("Mandatory val_rename_policingprofile struct is NULL"
-                     " for RENAME");
-      return UPLL_RC_ERR_BAD_REQUEST;
     } else {
-      UPLL_LOG_DEBUG("Invalid datatype(%d) received for RENAME", dt_type);
-      return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
+      UPLL_LOG_TRACE("Operation is %d", req->operation);
+      StringReset(key_policingprofile->policingprofile_name);
+    }
+
+    UPLL_LOG_TRACE(" key struct validation is success");
+    uint32_t dt_type = req->datatype;
+    uint32_t operation = req->operation;
+    if (operation == UNC_OP_RENAME) {
+      if (dt_type == UPLL_DT_IMPORT) {
+        val_rename_policingprofile_t *val_rename_policingprofile = NULL;
+        /** Read rename value structure*/
+        if (key->get_cfg_val() && (key->get_cfg_val()->get_st_num() ==
+                                   IpctSt::kIpcStValRenamePolicingprofile)) {
+          val_rename_policingprofile =
+              reinterpret_cast<val_rename_policingprofile_t *>(
+                  key->get_cfg_val()->get_val());
+        }
+        if (val_rename_policingprofile) {
+          return ValidatePolicingProfileRenameValue(val_rename_policingprofile,
+                                                    operation);
+        }
+        UPLL_LOG_DEBUG("Mandatory val_rename_policingprofile struct is NULL"
+                       " for RENAME");
+        return UPLL_RC_ERR_BAD_REQUEST;
+      } else {
+        UPLL_LOG_DEBUG("Invalid datatype(%d) received for RENAME", dt_type);
+        return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
+      }
     }
+    /** Expected value structure in Request is NONE for all operation,
+      so no validation required for value structure */
+    return UPLL_RC_SUCCESS;
   }
-  /** Expected value structure in Request is NONE for all operation,
-   so no validation required for value structure */
-  return UPLL_RC_SUCCESS;
-}
-
-upll_rc_t PolicingProfileMoMgr::ValidatePolicingProfileRenameValue(
-    val_rename_policingprofile_t *val_rename_policingprofile,
-    uint32_t operation) {
-  UPLL_FUNC_TRACE;
-
-
-  if (val_rename_policingprofile->valid[UPLL_IDX_RENAME_PROFILE_RPP] ==
-      UNC_VF_VALID) {
-    /** validate flowlist_newname syntax*/
-    return ValidateKey(reinterpret_cast<char *>(
-          val_rename_policingprofile->policingprofile_newname),
+
+  upll_rc_t PolicingProfileMoMgr::ValidatePolicingProfileRenameValue(
+      val_rename_policingprofile_t *val_rename_policingprofile,
+      uint32_t operation) {
+    UPLL_FUNC_TRACE;
+
+
+    if (val_rename_policingprofile->valid[UPLL_IDX_RENAME_PROFILE_RPP] ==
+        UNC_VF_VALID) {
+      /** validate flowlist_newname syntax*/
+      return ValidateKey(reinterpret_cast<char *>(
+              val_rename_policingprofile->policingprofile_newname),
           (unsigned int)kMinLenPolicingProfileName,
           (unsigned int)kMaxLenPolicingProfileName);
-  } else if ((operation == UNC_OP_UPDATE) && (
-      val_rename_policingprofile->valid[ UPLL_IDX_RENAME_PROFILE_RPP ] ==
-      UNC_VF_VALID_NO_VALUE)) {
-    /** Reset the field with default value */
-    memset(val_rename_policingprofile->policingprofile_newname, 0,
-           kMaxLenPolicingProfileName);
-  }
-  return UPLL_RC_SUCCESS;
-}
-
-upll_rc_t PolicingProfileMoMgr::GetRenameInfo(ConfigKeyVal *ikey,
-    ConfigKeyVal *okey, ConfigKeyVal *&rename_info, DalDmlIntf *dmi,
-    const char *ctrlr_id, bool &renamed) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  if (!ikey || !okey || NULL != rename_info
-      || !(ikey->get_key()) || !(okey->get_key())) {
-    UPLL_LOG_DEBUG("Input is NULL");
-    return UPLL_RC_ERR_GENERIC;
+    } else if ((operation == UNC_OP_UPDATE) && (
+            val_rename_policingprofile->valid[ UPLL_IDX_RENAME_PROFILE_RPP ] ==
+            UNC_VF_VALID_NO_VALUE)) {
+      /** Reset the field with default value */
+      memset(val_rename_policingprofile->policingprofile_newname, 0,
+             kMaxLenPolicingProfileName);
+    }
+    return UPLL_RC_SUCCESS;
   }
 
-  key_policingprofile_t *policingprofile_key = NULL;
-  policingprofile_key = reinterpret_cast<key_policingprofile_t *>
-    (ikey->get_key());
-  if (policingprofile_key == NULL) {
-    UPLL_LOG_DEBUG("policingprofile_key NULL");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  key_rename_vnode_info_t *key_rename_info =
-    reinterpret_cast<key_rename_vnode_info_t *>
-    (ConfigKeyVal::Malloc(sizeof(key_rename_vnode_info_t)));
-
-  /* Checks the profile is already renamed or not */
-  if (renamed) {
-    /* if already renamed store the controller name */
-    uuu::upll_strncpy(key_rename_info->ctrlr_profile_name,
-           reinterpret_cast<val_rename_policingprofile *>(GetVal(ikey))
-          ->policingprofile_newname, (kMaxLenPolicingProfileName + 1));
-    UPLL_LOG_DEBUG("key_rename_info->ctrlr_profile_name ::: (%s)",
-                   key_rename_info->ctrlr_profile_name);
-  } else {
-    /* if not renamed the ikey contains the controller name */
-    uuu::upll_strncpy(key_rename_info->ctrlr_profile_name,
-        policingprofile_key->policingprofile_name,
-        (kMaxLenPolicingProfileName + 1));
-    UPLL_LOG_DEBUG("key_rename_info->ctrlr_profile_name ::: (%s)",
-                   key_rename_info->ctrlr_profile_name);
-  }
-  // To check for standalone configuration
-  DbSubOp dbop1 = {kOpReadExist, kOpMatchNone,
-                   kOpInOutNone};
-  result_code = UpdateConfigDB(ikey, UPLL_DT_IMPORT,
-                             UNC_OP_READ, dmi, &dbop1, CTRLRTBL);
-  if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-    result_code = UPLL_RC_ERR_NOT_ALLOWED_AT_THIS_TIME;
-    UPLL_LOG_DEBUG("Stand Alone configuration found %d", result_code);
-    free(key_rename_info);  // resource leak
-    return result_code;
-  }  else if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code)  {
-    UPLL_LOG_DEBUG("ReadConfigDB failed - %d", result_code);
-    free(key_rename_info);  // resource leak
-    return result_code;
-  }
-  /* Store the old UNC VTN  name */
-  uuu::upll_strncpy(key_rename_info->old_policingprofile_name,
-                    policingprofile_key->policingprofile_name,
-                    (kMaxLenPolicingProfileName + 1));
-  UPLL_LOG_DEBUG("key_rename_info->old_policingprofile_name ::: (%s)",
-                  key_rename_info->old_policingprofile_name);
-
-  policingprofile_key = reinterpret_cast<key_policingprofile_t *>
-    (okey->get_key());
-
-  uuu::upll_strncpy(key_rename_info->new_policingprofile_name,
-                    policingprofile_key->policingprofile_name,
-                    (kMaxLenPolicingProfileName + 1));
-  UPLL_LOG_DEBUG("key_rename_info->new_policingprofile_name ::: (%s)",
-                  key_rename_info->new_policingprofile_name);
-
-  rename_info = new ConfigKeyVal(UNC_KT_POLICING_PROFILE,
-      IpctSt::kIpcInvalidStNum, key_rename_info, NULL);
-  if (!rename_info) {
-    free(key_rename_info);
-    UPLL_LOG_DEBUG("Failed to allocate memory for ConfigkeyVal");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  SET_USER_DATA_CTRLR(rename_info, ctrlr_id);
-
-  if (!renamed) {
-    val_rename_policingprofile_t *val_rename =
-      reinterpret_cast<val_rename_policingprofile_t *>
-      (ConfigKeyVal::Malloc(sizeof(val_rename_policingprofile_t)));
-    uuu::upll_strncpy(val_rename->policingprofile_newname,
-                      key_rename_info->ctrlr_profile_name,
-                      (kMaxLenPolicingProfileName+1));
-    val_rename->valid[UPLL_IDX_RENAME_PROFILE_RPP] = UNC_VF_VALID;
-    ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcStValRenamePolicingprofile,
-        val_rename);
+  upll_rc_t PolicingProfileMoMgr::GetRenameInfo(ConfigKeyVal *ikey,
+                                                ConfigKeyVal *okey,
+                                                ConfigKeyVal *&rename_info,
+                                                DalDmlIntf *dmi,
+                                                const char *ctrlr_id,
+                                                bool &renamed) {
+    UPLL_FUNC_TRACE;
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+    if (!ikey || !okey || NULL != rename_info
+        || !(ikey->get_key()) || !(okey->get_key())) {
+      UPLL_LOG_DEBUG("Input is NULL");
+      return UPLL_RC_ERR_GENERIC;
+    }
 
-    SET_USER_DATA_CTRLR(ikey, ctrlr_id);
+    key_policingprofile_t *policingprofile_key = NULL;
+    policingprofile_key = reinterpret_cast<key_policingprofile_t *>
+        (ikey->get_key());
+    if (policingprofile_key == NULL) {
+      UPLL_LOG_DEBUG("policingprofile_key NULL");
+      return UPLL_RC_ERR_GENERIC;
+    }
+    key_rename_vnode_info_t *key_rename_info =
+        reinterpret_cast<key_rename_vnode_info_t *>
+        (ConfigKeyVal::Malloc(sizeof(key_rename_vnode_info_t)));
+
+    /* Checks the profile is already renamed or not */
+    if (renamed) {
+      /* if already renamed store the controller name */
+      uuu::upll_strncpy(key_rename_info->ctrlr_profile_name,
+                        reinterpret_cast<val_rename_policingprofile *>
+                        (GetVal(ikey))
+                        ->policingprofile_newname,
+                        (kMaxLenPolicingProfileName + 1));
+      UPLL_LOG_DEBUG("key_rename_info->ctrlr_profile_name ::: (%s)",
+                     key_rename_info->ctrlr_profile_name);
+    } else {
+      /* if not renamed the ikey contains the controller name */
+      uuu::upll_strncpy(key_rename_info->ctrlr_profile_name,
+                        policingprofile_key->policingprofile_name,
+                        (kMaxLenPolicingProfileName + 1));
+      UPLL_LOG_DEBUG("key_rename_info->ctrlr_profile_name ::: (%s)",
+                     key_rename_info->ctrlr_profile_name);
+    }
+    // To check for standalone configuration
+    DbSubOp dbop1 = {kOpReadExist, kOpMatchNone,
+      kOpInOutNone};
+    result_code = UpdateConfigDB(ikey, UPLL_DT_IMPORT,
+                                 UNC_OP_READ, dmi, &dbop1, CTRLRTBL);
+    if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+      result_code = UPLL_RC_ERR_NOT_ALLOWED_AT_THIS_TIME;
+      UPLL_LOG_DEBUG("Stand Alone configuration found %d", result_code);
+      free(key_rename_info);  // resource leak
+      return result_code;
+    }  else if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code)  {
+      UPLL_LOG_DEBUG("ReadConfigDB failed - %d", result_code);
+      free(key_rename_info);  // resource leak
+      return result_code;
+    }
+    /* Store the old UNC VTN  name */
+    uuu::upll_strncpy(key_rename_info->old_policingprofile_name,
+                      policingprofile_key->policingprofile_name,
+                      (kMaxLenPolicingProfileName + 1));
+    UPLL_LOG_DEBUG("key_rename_info->old_policingprofile_name ::: (%s)",
+                   key_rename_info->old_policingprofile_name);
 
-    ikey->SetCfgVal(cfg_val);
+    policingprofile_key = reinterpret_cast<key_policingprofile_t *>
+        (okey->get_key());
 
-    DbSubOp dbop = {kOpNotRead, kOpMatchNone, kOpInOutCtrlr};
-    result_code = UpdateConfigDB(ikey, UPLL_DT_IMPORT, UNC_OP_CREATE, dmi,
-        &dbop, RENAMETBL);
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("UpdateConfigDb Failed (%d)", result_code);
+    uuu::upll_strncpy(key_rename_info->new_policingprofile_name,
+                      policingprofile_key->policingprofile_name,
+                      (kMaxLenPolicingProfileName + 1));
+    UPLL_LOG_DEBUG("key_rename_info->new_policingprofile_name ::: (%s)",
+                   key_rename_info->new_policingprofile_name);
+
+    rename_info = new ConfigKeyVal(UNC_KT_POLICING_PROFILE,
+                                   IpctSt::kIpcInvalidStNum,
+                                   key_rename_info,
+                                   NULL);
+    if (!rename_info) {
+      free(key_rename_info);
+      UPLL_LOG_DEBUG("Failed to allocate memory for ConfigkeyVal");
+      return UPLL_RC_ERR_GENERIC;
     }
-  }
-  if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code)
-    result_code = UPLL_RC_SUCCESS;
-  return result_code;
-}
-
-upll_rc_t PolicingProfileMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
-    ConfigKeyVal *ikey) {
-  UPLL_FUNC_TRACE;
-  if (NULL == ikey ||  NULL == (ikey->get_key()) || NULL != okey) {
-    UPLL_LOG_DEBUG("Invalid Input");
-    return UPLL_RC_ERR_GENERIC;
-  }
+    SET_USER_DATA_CTRLR(rename_info, ctrlr_id);
 
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
+    if (!renamed) {
+      val_rename_policingprofile_t *val_rename =
+          reinterpret_cast<val_rename_policingprofile_t *>
+          (ConfigKeyVal::Malloc(sizeof(val_rename_policingprofile_t)));
+      uuu::upll_strncpy(val_rename->policingprofile_newname,
+                        key_rename_info->ctrlr_profile_name,
+                        (kMaxLenPolicingProfileName+1));
+      val_rename->valid[UPLL_IDX_RENAME_PROFILE_RPP] = UNC_VF_VALID;
+      ConfigVal *cfg_val = new ConfigVal(
+          IpctSt::kIpcStValRenamePolicingprofile,
+          val_rename);
 
-  key_rename_vnode_info_t *key_rename =
-    reinterpret_cast<key_rename_vnode_info_t *>(ikey->get_key());
-  if (!strlen(reinterpret_cast<char *>
-        (key_rename->old_policingprofile_name))) {
-    UPLL_LOG_DEBUG(" Invalid Policing Profile Name");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  key_policingprofile_t *key_policingprofile =
-    reinterpret_cast<key_policingprofile_t *>
-    (ConfigKeyVal::Malloc(sizeof(key_policingprofile_t)));
-  uuu::upll_strncpy(key_policingprofile->policingprofile_name,
-                    key_rename->old_policingprofile_name,
-                    kMaxLenPolicingProfileName+1);
-
-  okey = new ConfigKeyVal(UNC_KT_POLICING_PROFILE,
-      IpctSt::kIpcStKeyPolicingprofile, key_policingprofile, NULL);
-  if (!okey) {
-    UPLL_LOG_DEBUG("okey NULL");
-    free(key_policingprofile);
-    return UPLL_RC_ERR_GENERIC;
-  }
-  SET_USER_DATA(okey, ikey);
-  return result_code;
-}
-
-bool PolicingProfileMoMgr::IsValidKey(void *ikey, uint64_t index) {
-  UPLL_FUNC_TRACE;
-  key_policingprofile_t *key =
-      reinterpret_cast<key_policingprofile_t *>(ikey);
-  upll_rc_t ret_val = UPLL_RC_SUCCESS;
-
-  ret_val = ValidateKey(reinterpret_cast<char *>(key->policingprofile_name),
-                        kMinLenPolicingProfileName,
-                        kMaxLenPolicingProfileName);
-
-  if (UPLL_RC_SUCCESS != ret_val) {
-    UPLL_LOG_DEBUG("Policingprofile Name is not valid(%d)", ret_val);
-    return false;
-  }
-  return true;
-}
-
-upll_rc_t PolicingProfileMoMgr::GetControllerSpan(ConfigKeyVal *ikey,
-                                        upll_keytype_datatype_t dt_type,
-                                        DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code;
-  DbSubOp dbop = {kOpReadMultiple, kOpMatchNone, kOpInOutCtrlr};
-
-  result_code = ReadConfigDB(ikey, dt_type, UNC_OP_READ, dbop, dmi, CTRLRTBL);
-  UPLL_LOG_DEBUG("GetControllerSpan successful:- %d", result_code);
-  return result_code;
-}
-
-upll_rc_t PolicingProfileMoMgr::SetConsolidatedStatus(ConfigKeyVal *ikey,
-        DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  ConfigKeyVal *ckv = NULL;
-  DbSubOp dbop = {kOpReadMultiple, kOpMatchNone, kOpInOutCs};
-  result_code = GetChildConfigKey(ckv, ikey);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG(" SetConsolidatedStatus failed. GetChildConfigKey Failed"
-      " Result Code - %d", result_code);
-    return result_code;
-  }
-  result_code = ReadConfigDB(ckv, UPLL_DT_RUNNING, UNC_OP_READ, dbop, dmi,
-                             CTRLRTBL);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG(" SetConsolidatedStatus failed. ReadConfigDB Failed"
-      " Result Code - %d", result_code);
-    delete ckv;
-    return result_code;
-  }
-  std::list< unc_keytype_configstatus_t > list_cs_row;
-  val_policingprofile_ctrl_t *val;
-  ConfigKeyVal *tmp_ckv = ckv;
-  for ( ; tmp_ckv != NULL ; tmp_ckv = tmp_ckv->get_next_cfg_key_val()) {
-      val = reinterpret_cast<val_policingprofile_ctrl_t *>(GetVal(tmp_ckv));
-      list_cs_row.push_back((unc_keytype_configstatus_t)val->cs_row_status);
-      UPLL_LOG_DEBUG("Printing Cs_attr %d",val->cs_row_status);
-  }
-  if (ckv) delete ckv;
-  val_policingprofile_t *val_temp =
-      reinterpret_cast<val_policingprofile_t *>(GetVal(ikey));
-  val_temp->cs_row_status = GetConsolidatedCsStatus(list_cs_row);
-  result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_UPDATE, dmi,
-                               MAINTBL);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG(" SetConsolidatedStatus failed. UpdateConfigDB Failed"
-      " Result Code - %d", result_code);
-    return result_code;
-  }
-  return result_code;
-}
-
-upll_rc_t PolicingProfileMoMgr::GetPolicingProfileCtrlrKeyval(
-    ConfigKeyVal *&pp_keyval,
-    const char *policingprofile_name,
-    const char *ctrlr_id) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-
-  if (NULL == policingprofile_name || NULL == ctrlr_id ||
-     NULL != pp_keyval) {
-    return UPLL_RC_ERR_GENERIC;
-  }
+      SET_USER_DATA_CTRLR(ikey, ctrlr_id);
+
+      ikey->SetCfgVal(cfg_val);
 
-  result_code = GetChildConfigKey(pp_keyval, NULL);
-  if (result_code != UPLL_RC_SUCCESS) {
+      DbSubOp dbop = {kOpNotRead, kOpMatchNone, kOpInOutCtrlr};
+      result_code = UpdateConfigDB(ikey, UPLL_DT_IMPORT, UNC_OP_CREATE, dmi,
+                                   &dbop, RENAMETBL);
+      if (UPLL_RC_SUCCESS != result_code) {
+        UPLL_LOG_DEBUG("UpdateConfigDb Failed (%d)", result_code);
+      }
+    }
+    if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code)
+      result_code = UPLL_RC_SUCCESS;
     return result_code;
   }
 
-  key_policingprofile_t *key_policingprofie =
-    reinterpret_cast<key_policingprofile_t *>(pp_keyval->get_key());
-  uuu::upll_strncpy(key_policingprofie->policingprofile_name,
-                    policingprofile_name,
-                    (kMaxLenPolicingProfileName+1));
-
-  UPLL_LOG_DEBUG("PP name in GetPolicingProfileCtrlrKeyval %s",
-                 key_policingprofie->policingprofile_name);
-  UPLL_LOG_DEBUG("Ctrlrid in GetPolicingProfileCtrlrKeyval %s",
-                 ctrlr_id);
-  SET_USER_DATA_CTRLR(pp_keyval, ctrlr_id);
-
-  return UPLL_RC_SUCCESS;
-}
-
-
-upll_rc_t PolicingProfileMoMgr::PolicingProfileCtrlrTblOper
-    (const char *policingprofile_name, const char *ctrlr_id,
-    DalDmlIntf *dmi, unc_keytype_operation_t oper,
-    upll_keytype_datatype_t dt_type) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  ConfigKeyVal *pp_ckv = NULL;
-  result_code = GetPolicingProfileCtrlrKeyval(pp_ckv,
-      policingprofile_name, ctrlr_id);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("PolicingProfileCtrlrTblOper Failed. UpdateConfigDB failed"
-                   "Result code - %d", result_code);
+  upll_rc_t PolicingProfileMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
+                                                  ConfigKeyVal *ikey) {
+    UPLL_FUNC_TRACE;
+    if (NULL == ikey ||  NULL == (ikey->get_key()) || NULL != okey) {
+      UPLL_LOG_DEBUG("Invalid Input");
+      return UPLL_RC_ERR_GENERIC;
+    }
+
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+
+    key_rename_vnode_info_t *key_rename =
+        reinterpret_cast<key_rename_vnode_info_t *>(ikey->get_key());
+    if (!strlen(reinterpret_cast<char *>
+                (key_rename->old_policingprofile_name))) {
+      UPLL_LOG_DEBUG(" Invalid Policing Profile Name");
+      return UPLL_RC_ERR_GENERIC;
+    }
+    key_policingprofile_t *key_policingprofile =
+        reinterpret_cast<key_policingprofile_t *>
+        (ConfigKeyVal::Malloc(sizeof(key_policingprofile_t)));
+    uuu::upll_strncpy(key_policingprofile->policingprofile_name,
+                      key_rename->old_policingprofile_name,
+                      kMaxLenPolicingProfileName+1);
+
+    okey = new ConfigKeyVal(UNC_KT_POLICING_PROFILE,
+                            IpctSt::kIpcStKeyPolicingprofile,
+                            key_policingprofile,
+                            NULL);
+    if (!okey) {
+      UPLL_LOG_DEBUG("okey NULL");
+      free(key_policingprofile);
+      return UPLL_RC_ERR_GENERIC;
+    }
+    SET_USER_DATA(okey, ikey);
     return result_code;
   }
 
-  if (UNC_OP_CREATE == oper) {
-    result_code = CtrlrTblCreate(pp_ckv, dmi, dt_type);
-    UPLL_LOG_DEBUG("PolicingProfileCtrlrTblOper Failed.CtrlrTblCreate failed"
-                   "Result code - %d", result_code);
-  } else if (UNC_OP_DELETE == oper) {
-    result_code = CtrlrTblDelete(pp_ckv, dmi, dt_type);
-    UPLL_LOG_DEBUG("PolicingProfileCtrlrTblOper Failed.CtrlrTblDelete failed"
-                   "Result code - %d", result_code);
-  } else {
-    result_code = UPLL_RC_ERR_NO_SUCH_OPERATION;
-    UPLL_LOG_DEBUG("PolicingProfileCtrlrTblOper Failed. "
-                   "Result code - %d", result_code);
+  bool PolicingProfileMoMgr::IsValidKey(void *ikey, uint64_t index) {
+    UPLL_FUNC_TRACE;
+    key_policingprofile_t *key =
+        reinterpret_cast<key_policingprofile_t *>(ikey);
+    upll_rc_t ret_val = UPLL_RC_SUCCESS;
+
+    ret_val = ValidateKey(reinterpret_cast<char *>(key->policingprofile_name),
+                          kMinLenPolicingProfileName,
+                          kMaxLenPolicingProfileName);
+
+    if (UPLL_RC_SUCCESS != ret_val) {
+      UPLL_LOG_DEBUG("Policingprofile Name is not valid(%d)", ret_val);
+      return false;
+    }
+    return true;
   }
-  delete pp_ckv;
-  PolicingProfileEntryMoMgr *ppe_mgr =
-    reinterpret_cast<PolicingProfileEntryMoMgr *>
-    (const_cast<MoManager *>(GetMoManager(
-                                          UNC_KT_POLICING_PROFILE_ENTRY)));
-  result_code = ppe_mgr->PolicingProfileEntryCtrlrTblOper(
-        policingprofile_name, ctrlr_id, dmi, oper, dt_type);
-  if (UPLL_RC_SUCCESS != result_code) {
+
+  upll_rc_t PolicingProfileMoMgr::GetControllerSpan(
+      ConfigKeyVal *ikey,
+      upll_keytype_datatype_t dt_type,
+      DalDmlIntf *dmi) {
+    UPLL_FUNC_TRACE;
+    upll_rc_t result_code;
+    DbSubOp dbop = {kOpReadMultiple, kOpMatchNone, kOpInOutCtrlr};
+
+    result_code = ReadConfigDB(ikey, dt_type, UNC_OP_READ, dbop, dmi, CTRLRTBL);
+    UPLL_LOG_DEBUG("GetControllerSpan successful:- %d", result_code);
     return result_code;
   }
-  return result_code;
-}
-
-upll_rc_t PolicingProfileMoMgr::CtrlrTblCreate(ConfigKeyVal *pp_ckv,
-    DalDmlIntf *dmi, upll_keytype_datatype_t dt_type) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  DbSubOp dbop = {kOpReadSingle, kOpMatchCtrlr, kOpInOutNone};
-  /*Check whether present in CTRLRTBL*/
-  val_policingprofile_ctrl_t *val_ctrlr;
-  result_code = ReadConfigDB(pp_ckv, dt_type,
-      UNC_OP_READ, dbop, dmi, CTRLRTBL);
-  UPLL_LOG_DEBUG(" Read result in CtrlrTblCreate %d ", result_code);
-  if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-     // capability check
-    ConfigKeyVal *temp_key = NULL;
-    uint8_t *ctrlr_id = NULL;
-    GET_USER_DATA_CTRLR(pp_ckv, ctrlr_id);
 
-    result_code = GetChildConfigKey(temp_key, NULL);
+  upll_rc_t PolicingProfileMoMgr::SetConsolidatedStatus(ConfigKeyVal *ikey,
+                                                        DalDmlIntf *dmi) {
+    UPLL_FUNC_TRACE;
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+    ConfigKeyVal *ckv = NULL;
+    DbSubOp dbop = {kOpReadMultiple, kOpMatchNone, kOpInOutCs};
+    result_code = GetChildConfigKey(ckv, ikey);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG(" SetConsolidatedStatus failed. GetChildConfigKey Failed"
+                     " Result Code - %d", result_code);
+      return result_code;
+    }
+    result_code = ReadConfigDB(ckv, UPLL_DT_RUNNING, UNC_OP_READ, dbop, dmi,
+                               CTRLRTBL);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG(" SetConsolidatedStatus failed. ReadConfigDB Failed"
+                     " Result Code - %d", result_code);
+      delete ckv;
+      return result_code;
+    }
+    std::list< unc_keytype_configstatus_t > list_cs_row;
+    val_policingprofile_ctrl_t *val;
+    ConfigKeyVal *tmp_ckv = ckv;
+    for ( ; tmp_ckv != NULL ; tmp_ckv = tmp_ckv->get_next_cfg_key_val()) {
+      val = reinterpret_cast<val_policingprofile_ctrl_t *>(GetVal(tmp_ckv));
+      list_cs_row.push_back((unc_keytype_configstatus_t)val->cs_row_status);
+      UPLL_LOG_DEBUG("Printing Cs_attr %d", val->cs_row_status);
+    }
+    if (ckv) delete ckv;
+    val_policingprofile_t *val_temp =
+        reinterpret_cast<val_policingprofile_t *>(GetVal(ikey));
+    val_temp->cs_row_status = GetConsolidatedCsStatus(list_cs_row);
+    result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_UPDATE, dmi,
+                                 MAINTBL);
     if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("GetChildConfigKey failed(%d)",result_code);
+      UPLL_LOG_DEBUG(" SetConsolidatedStatus failed. UpdateConfigDB Failed"
+                     " Result Code - %d", result_code);
       return result_code;
     }
+    return result_code;
+  }
 
-    result_code = GetInstanceCount(temp_key, reinterpret_cast<char*>(ctrlr_id),
-                                 dt_type,
-                                 &cur_instance_count,
-                                 dmi, CTRLRTBL);
-    DELETE_IF_NOT_NULL(temp_key);
+  upll_rc_t PolicingProfileMoMgr::GetPolicingProfileCtrlrKeyval(
+      ConfigKeyVal *&pp_keyval,
+      const char *policingprofile_name,
+      const char *ctrlr_id) {
+    UPLL_FUNC_TRACE;
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
 
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("GetInstanceCount failed(%d)",result_code);
+    if (NULL == policingprofile_name || NULL == ctrlr_id ||
+        NULL != pp_keyval) {
+      return UPLL_RC_ERR_GENERIC;
+    }
+
+    result_code = GetChildConfigKey(pp_keyval, NULL);
+    if (result_code != UPLL_RC_SUCCESS) {
       return result_code;
     }
 
-    IpcReqRespHeader *temp_req = reinterpret_cast<IpcReqRespHeader *>
-      (ConfigKeyVal::Malloc(sizeof(IpcReqRespHeader)));
-    
-    temp_req->operation = UNC_OP_CREATE;
-    temp_req->datatype = dt_type;
+    key_policingprofile_t *key_policingprofie =
+        reinterpret_cast<key_policingprofile_t *>(pp_keyval->get_key());
+    uuu::upll_strncpy(key_policingprofie->policingprofile_name,
+                      policingprofile_name,
+                      (kMaxLenPolicingProfileName+1));
 
-    result_code = ValidateCapability(temp_req, pp_ckv, reinterpret_cast<char*>(ctrlr_id));
+    UPLL_LOG_DEBUG("PP name in GetPolicingProfileCtrlrKeyval %s",
+                   key_policingprofie->policingprofile_name);
+    UPLL_LOG_DEBUG("Ctrlrid in GetPolicingProfileCtrlrKeyval %s",
+                   ctrlr_id);
+    SET_USER_DATA_CTRLR(pp_keyval, ctrlr_id);
 
-    free(temp_req);
+    return UPLL_RC_SUCCESS;
+  }
 
-    unc_keytype_ctrtype_t ctrlrtype = UNC_CT_UNKNOWN;
-    uuc::CtrlrMgr *ctrlr_mgr = uuc::CtrlrMgr::GetInstance();
-    if (result_code != UPLL_RC_SUCCESS) {
-      // Policingprofile is not supported for other than PFC Controller
-      // so skip adding entry for such sontroller in ctrlr table
-      if ((!ctrlr_mgr->GetCtrlrType(reinterpret_cast<char *>(ctrlr_id),
-                     dt_type, &ctrlrtype)) || (ctrlrtype != UNC_CT_PFC)) {
+
+  upll_rc_t PolicingProfileMoMgr::PolicingProfileCtrlrTblOper
+      (const char *policingprofile_name, const char *ctrlr_id,
+       DalDmlIntf *dmi, unc_keytype_operation_t oper,
+       upll_keytype_datatype_t dt_type) {
+        UPLL_FUNC_TRACE;
+        upll_rc_t result_code = UPLL_RC_SUCCESS;
+        ConfigKeyVal *pp_ckv = NULL;
+        result_code = GetPolicingProfileCtrlrKeyval(pp_ckv,
+                                                    policingprofile_name,
+                                                    ctrlr_id);
+        if (UPLL_RC_SUCCESS != result_code) {
+          UPLL_LOG_DEBUG("PolicingProfileCtrlrTblOper Failed."
+                         "UpdateConfigDB failed"
+                         "Result code - %d", result_code);
+          return result_code;
+        }
+
+        if (UNC_OP_CREATE == oper) {
+          result_code = CtrlrTblCreate(pp_ckv, dmi, dt_type);
+          UPLL_LOG_DEBUG("PolicingProfileCtrlrTblOper Failed."
+                         "CtrlrTblCreate failed"
+                         "Result code - %d", result_code);
+        } else if (UNC_OP_DELETE == oper) {
+          result_code = CtrlrTblDelete(pp_ckv, dmi, dt_type);
+          UPLL_LOG_DEBUG("PolicingProfileCtrlrTblOper Failed."
+                         "CtrlrTblDelete failed"
+                         "Result code - %d", result_code);
+        } else {
+          result_code = UPLL_RC_ERR_NO_SUCH_OPERATION;
+          UPLL_LOG_DEBUG("PolicingProfileCtrlrTblOper Failed. "
+                         "Result code - %d", result_code);
+        }
+        delete pp_ckv;
+        return result_code;
+      }
+
+  upll_rc_t PolicingProfileMoMgr::CtrlrTblCreate(
+      ConfigKeyVal *pp_ckv,
+      DalDmlIntf *dmi,
+      upll_keytype_datatype_t dt_type) {
+    UPLL_FUNC_TRACE;
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+    DbSubOp dbop = {kOpReadSingle, kOpMatchCtrlr, kOpInOutNone};
+    /*Check whether present in CTRLRTBL*/
+    val_policingprofile_ctrl_t *val_ctrlr;
+    result_code = ReadConfigDB(pp_ckv, dt_type,
+                               UNC_OP_READ, dbop, dmi, CTRLRTBL);
+    UPLL_LOG_DEBUG(" Read result in CtrlrTblCreate %d ", result_code);
+    if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+      // capability check
+      IpcReqRespHeader *temp_req = reinterpret_cast<IpcReqRespHeader *>
+          (ConfigKeyVal::Malloc(sizeof(IpcReqRespHeader)));
+
+      temp_req->operation = UNC_OP_CREATE;
+      temp_req->datatype = dt_type;
+      uint8_t *ctrlr_id = NULL;
+      GET_USER_DATA_CTRLR(pp_ckv, ctrlr_id);
+      result_code = ValidateCapability(temp_req,
+                                       pp_ckv,
+                                       reinterpret_cast<char*>(ctrlr_id));
+
+      free(temp_req);
+
+      unc_keytype_ctrtype_t ctrlrtype = UNC_CT_UNKNOWN;
+      uuc::CtrlrMgr *ctrlr_mgr = uuc::CtrlrMgr::GetInstance();
+      if (result_code != UPLL_RC_SUCCESS) {
+        // Policingprofile is not supported for other than PFC Controller
+        // so skip adding entry for such sontroller in ctrlr table
+        if ((!ctrlr_mgr->GetCtrlrType(reinterpret_cast<char *>(ctrlr_id),
+                                      dt_type, &ctrlrtype)) ||
+            (ctrlrtype != UNC_CT_PFC)) {
           UPLL_LOG_DEBUG("Controller type is  %d", ctrlrtype);
           return UPLL_RC_SUCCESS;
-       }
-       UPLL_LOG_DEBUG("Key not supported by controller");
-       return result_code;
-    }
-    UPLL_LOG_DEBUG(" No record found. Create new record");
-    val_ctrlr = reinterpret_cast<val_policingprofile_ctrl_t *>
-      (GetVal(pp_ckv));
-    val_ctrlr->ref_count = 1;
-    val_ctrlr->valid[0] = UNC_VF_VALID;
-    if (UPLL_DT_AUDIT == dt_type) {
-      ConfigKeyVal *temp_pp_ckv = NULL;
-      result_code = GetChildConfigKey(temp_pp_ckv, pp_ckv);
+        }
+        UPLL_LOG_DEBUG("Key not supported by controller");
+        return result_code;
+      }
+      UPLL_LOG_DEBUG(" No record found. Create new record");
+      val_ctrlr = reinterpret_cast<val_policingprofile_ctrl_t *>
+          (GetVal(pp_ckv));
+      val_ctrlr->ref_count = 1;
+      val_ctrlr->valid[0] = UNC_VF_VALID;
+      if (UPLL_DT_AUDIT == dt_type) {
+        ConfigKeyVal *temp_pp_ckv = NULL;
+        result_code = GetChildConfigKey(temp_pp_ckv, pp_ckv);
+        if (UPLL_RC_SUCCESS != result_code) {
+          UPLL_LOG_DEBUG("GetChildConfigKey failed");
+          return result_code;
+        }
+        DbSubOp dbop1 = {kOpReadSingle, kOpMatchNone, kOpInOutCs};
+        result_code = ReadConfigDB(temp_pp_ckv, dt_type,
+                                   UNC_OP_READ, dbop1, dmi, MAINTBL);
+        if (UPLL_RC_SUCCESS != result_code) {
+          UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
+          DELETE_IF_NOT_NULL(temp_pp_ckv);
+          return result_code;
+        }
+        val_policingprofile_t *temp_val = reinterpret_cast
+            <val_policingprofile_t *>(GetVal(temp_pp_ckv));
+        val_ctrlr->cs_row_status = static_cast<unc_keytype_configstatus_t>
+            (temp_val->cs_row_status);
+        DELETE_IF_NOT_NULL(temp_pp_ckv);
+      }
+      result_code = UpdateConfigDB(pp_ckv, dt_type,
+                                   UNC_OP_CREATE, dmi, CTRLRTBL);
       if (UPLL_RC_SUCCESS != result_code) {
-        UPLL_LOG_DEBUG("GetChildConfigKey failed");
+        UPLL_LOG_DEBUG(" CtrlrTblCreate Failed. Create record failed."
+                       " Result_code - %d", result_code);
         return result_code;
       }
-      DbSubOp dbop1 = {kOpReadSingle, kOpMatchNone, kOpInOutCs};
-      result_code = ReadConfigDB(temp_pp_ckv, dt_type,
-          UNC_OP_READ, dbop1, dmi, MAINTBL);
+      val_policingprofile_ctrl_t *tmp = reinterpret_cast
+          <val_policingprofile_ctrl_t *>(GetVal(pp_ckv));
+      UPLL_LOG_DEBUG(" refcount from ckv - %d %d", tmp->ref_count,
+                     tmp->valid[0]);
+      UPLL_LOG_DEBUG(" refcount - %d ", val_ctrlr->ref_count);
+
+      PolicingProfileEntryMoMgr *ppe_mgr =
+          reinterpret_cast<PolicingProfileEntryMoMgr *>
+          (const_cast<MoManager *>(GetMoManager(
+                      UNC_KT_POLICING_PROFILE_ENTRY)));
+      key_policingprofile_t *key_policingprofile =
+          reinterpret_cast<key_policingprofile_t *>(pp_ckv->get_key());
+      result_code = ppe_mgr->PolicingProfileEntryCtrlrTblOper(
+          reinterpret_cast<char*>(key_policingprofile->policingprofile_name),
+          reinterpret_cast<char*>(ctrlr_id), dmi, UNC_OP_CREATE, dt_type);
       if (UPLL_RC_SUCCESS != result_code) {
-        UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
-        DELETE_IF_NOT_NULL(temp_pp_ckv);
+        UPLL_LOG_DEBUG("Error in PolicingProfileEntryCtrlrTblOper"
+                       "in CREATE (%d)",
+                       result_code);
         return result_code;
       }
-      val_policingprofile_t *temp_val = reinterpret_cast
-          <val_policingprofile_t *>(GetVal(temp_pp_ckv));
-      val_ctrlr->cs_row_status = static_cast<unc_keytype_configstatus_t>
-      (temp_val->cs_row_status);
-      DELETE_IF_NOT_NULL(temp_pp_ckv);
-    }
-    result_code = UpdateConfigDB(pp_ckv, dt_type,
-        UNC_OP_CREATE, dmi, CTRLRTBL);
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG(" CtrlrTblCreate Failed. Create record failed."
-        " Result_code - %d", result_code);
-      return result_code;
-    }
-    val_policingprofile_ctrl_t *tmp = reinterpret_cast
-        <val_policingprofile_ctrl_t *>(GetVal(pp_ckv));
-    UPLL_LOG_DEBUG(" refcount from ckv - %d %d", tmp->ref_count,
-        tmp->valid[0]);
-    UPLL_LOG_DEBUG(" refcount - %d ", val_ctrlr->ref_count);
-  } else if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG(" CtrlrTblCreate Failed. ReadConfigDb Failed."
-      " Result_code - %d", result_code);
-    return result_code;
-  } else {
-    UPLL_LOG_DEBUG(" Record exixts . Update");
-    val_ctrlr = reinterpret_cast<val_policingprofile_ctrl_t *>
-      (GetVal(pp_ckv));
-    /*Check max ref_count*/
-    val_ctrlr->ref_count = val_ctrlr->ref_count+1;
-    val_ctrlr->valid[0] = UNC_VF_VALID;
-    UPLL_LOG_DEBUG(" refcount - %d ", val_ctrlr->ref_count);
-    result_code = UpdateConfigDB(pp_ckv, dt_type, UNC_OP_UPDATE, dmi,
-        &dbop, CTRLRTBL);
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG(" CtrlrTblCreate Failed. Update record failed."
-        " Result_code - %d", result_code);
+    } else if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG(" CtrlrTblCreate Failed. ReadConfigDb Failed."
+                     " Result_code - %d", result_code);
       return result_code;
-    }
-  }
-  return UPLL_RC_SUCCESS;
-}
-
-upll_rc_t PolicingProfileMoMgr::CtrlrTblDelete(ConfigKeyVal *pp_ckv,
-    DalDmlIntf *dmi, upll_keytype_datatype_t dt_type) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  DbSubOp dbop = {kOpReadSingle, kOpMatchCtrlr, kOpInOutNone};
-  DbSubOp dbop1 = {kOpNotRead, kOpMatchCtrlr, kOpInOutNone};
-  // Check whether entry is present in CTRLRTBL
-  val_policingprofile_ctrl_t *val_ctrlr;
-  result_code = ReadConfigDB(pp_ckv, dt_type,
-      UNC_OP_READ, dbop, dmi, CTRLRTBL);
-  // Doesnt exists return error
-  if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-    UPLL_LOG_DEBUG(" CtrlrTblDelete Failed. No record found."
-                   " Result_code - %d", result_code);
-    // Success is sent to continue deleting the record
-    return UPLL_RC_SUCCESS;
-  } else if (UPLL_RC_SUCCESS ==  result_code) {
-    val_ctrlr = reinterpret_cast<val_policingprofile_ctrl_t *>(GetVal(pp_ckv));
-    UPLL_LOG_DEBUG(" Read is success in CtrlrTblDelete");
-    if (1 < val_ctrlr->ref_count) {
-     val_ctrlr->ref_count = val_ctrlr->ref_count-1;
-     UPLL_LOG_DEBUG(" Refcount is  - %d %d", val_ctrlr->ref_count,
-                   val_ctrlr->valid[0]);
+    } else {
+      UPLL_LOG_DEBUG(" Record exixts . Update");
+      val_ctrlr = reinterpret_cast<val_policingprofile_ctrl_t *>
+          (GetVal(pp_ckv));
+      /*Check max ref_count*/
+      val_ctrlr->ref_count = val_ctrlr->ref_count+1;
       val_ctrlr->valid[0] = UNC_VF_VALID;
+      UPLL_LOG_DEBUG(" refcount - %d ", val_ctrlr->ref_count);
       result_code = UpdateConfigDB(pp_ckv, dt_type, UNC_OP_UPDATE, dmi,
-          &dbop1, CTRLRTBL);
+                                   &dbop, CTRLRTBL);
       if (UPLL_RC_SUCCESS != result_code) {
-        UPLL_LOG_DEBUG(" CtrlrTblDelete Failed. Update record failed."
+        UPLL_LOG_DEBUG(" CtrlrTblCreate Failed. Update record failed."
                        " Result_code - %d", result_code);
         return result_code;
       }
-    } else if (1 >= val_ctrlr->ref_count) {
-    // If ref_count = 0 delete the entry in ctrlrtbl
-      UPLL_LOG_DEBUG(" Refcount is less than 1 - %d %d", val_ctrlr->ref_count,
+    }
+    return UPLL_RC_SUCCESS;
+  }
+
+  upll_rc_t PolicingProfileMoMgr::CtrlrTblDelete(
+      ConfigKeyVal *pp_ckv,
+      DalDmlIntf *dmi,
+      upll_keytype_datatype_t dt_type) {
+    UPLL_FUNC_TRACE;
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+    DbSubOp dbop = {kOpReadSingle, kOpMatchCtrlr, kOpInOutNone};
+    DbSubOp dbop1 = {kOpNotRead, kOpMatchCtrlr, kOpInOutNone};
+    uint8_t *ctrlr_id = NULL;
+    // Check whether entry is present in CTRLRTBL
+    val_policingprofile_ctrl_t *val_ctrlr;
+    result_code = ReadConfigDB(pp_ckv, dt_type,
+                               UNC_OP_READ, dbop, dmi, CTRLRTBL);
+    // Doesnt exists return error
+    if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+      UPLL_LOG_DEBUG(" CtrlrTblDelete Failed. No record found."
+                     " Result_code - %d", result_code);
+      // Success is sent to continue deleting the record
+      return UPLL_RC_SUCCESS;
+    } else if (UPLL_RC_SUCCESS ==  result_code) {
+      val_ctrlr = reinterpret_cast<val_policingprofile_ctrl_t *>
+          (GetVal(pp_ckv));
+      UPLL_LOG_DEBUG(" Read is success in CtrlrTblDelete");
+      GET_USER_DATA_CTRLR(pp_ckv, ctrlr_id);
+      if (1 < val_ctrlr->ref_count) {
+        val_ctrlr->ref_count = val_ctrlr->ref_count-1;
+        UPLL_LOG_DEBUG(" Refcount is  - %d %d", val_ctrlr->ref_count,
                        val_ctrlr->valid[0]);
-      result_code = UpdateConfigDB(pp_ckv, dt_type, UNC_OP_DELETE, dmi,
-          &dbop1, CTRLRTBL);
-      if (UPLL_RC_SUCCESS != result_code) {
-        return result_code;
+        val_ctrlr->valid[0] = UNC_VF_VALID;
+        result_code = UpdateConfigDB(pp_ckv, dt_type, UNC_OP_UPDATE, dmi,
+                                     &dbop1, CTRLRTBL);
+        if (UPLL_RC_SUCCESS != result_code) {
+          UPLL_LOG_DEBUG(" CtrlrTblDelete Failed. Update record failed."
+                         " Result_code - %d", result_code);
+          return result_code;
+        }
+      } else if (1 >= val_ctrlr->ref_count) {
+        // If ref_count = 0 delete the entry in ctrlrtbl
+        UPLL_LOG_DEBUG(" Refcount is less than 1 - %d %d", val_ctrlr->ref_count,
+                       val_ctrlr->valid[0]);
+        result_code = UpdateConfigDB(pp_ckv, dt_type, UNC_OP_DELETE, dmi,
+                                     &dbop1, CTRLRTBL);
+        if (UPLL_RC_SUCCESS != result_code) {
+          return result_code;
+        }
+        PolicingProfileEntryMoMgr *ppe_mgr =
+            reinterpret_cast<PolicingProfileEntryMoMgr *>
+            (const_cast<MoManager *>(GetMoManager(
+                        UNC_KT_POLICING_PROFILE_ENTRY)));
+        key_policingprofile_t *key_policingprofile =
+            reinterpret_cast<key_policingprofile_t *>(pp_ckv->get_key());
+        result_code = ppe_mgr->PolicingProfileEntryCtrlrTblOper(
+            reinterpret_cast<char*>(key_policingprofile->policingprofile_name),
+            reinterpret_cast<char*>(ctrlr_id), dmi, UNC_OP_DELETE, dt_type);
+        if (UPLL_RC_SUCCESS != result_code) {
+          UPLL_LOG_DEBUG("Error in PolicingProfileEntryCtrlrTblOper"
+                         "in DELETE (%d)",
+                         result_code);
+          return result_code;
+        }
       }
+    } else {
+      return result_code;
     }
-  } else {
-    return result_code;
-  }
-  return UPLL_RC_SUCCESS;
-}
-
-upll_rc_t PolicingProfileMoMgr::UpdateConfigStatus(ConfigKeyVal *ckv,
-                                                   unc_keytype_operation_t op,
-                                                   uint32_t driver_result,
-                                                   ConfigKeyVal *nreq,
-                                                   DalDmlIntf   *dmi,
-                                                   ConfigKeyVal *ctrlr_key) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  unc_keytype_configstatus_t  ctrlr_status;
-  uint8_t cs_status;
-  ctrlr_status = (driver_result == UPLL_RC_SUCCESS) ? 
-                  UNC_CS_APPLIED : UNC_CS_NOT_APPLIED;
-  if ((NULL == ckv) || (NULL == ctrlr_key)) {
-    UPLL_LOG_DEBUG("input struct is NULL");
-    return UPLL_RC_ERR_GENERIC;
+    return UPLL_RC_SUCCESS;
   }
 
-  val_policingprofile_t *val_policingprofile =
-                 reinterpret_cast<val_policingprofile_t *>(GetVal(ckv));
-  val_policingprofile_ctrl *ctrlr_val_policingprofile =
-      reinterpret_cast<val_policingprofile_ctrl *>(GetVal(ctrlr_key));
-  if ((val_policingprofile == NULL) || (ctrlr_val_policingprofile == NULL)) {
-    UPLL_LOG_ERROR("Value structure is empty!!");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  cs_status = val_policingprofile->cs_row_status;
-  UPLL_LOG_TRACE("cs_status %d ctrlr_status %d\n", cs_status, ctrlr_status);
-  if (op == UNC_OP_CREATE) {
-    ctrlr_val_policingprofile->cs_row_status = ctrlr_status;
-   /* update the vtn status in main tbl */
-    if (val_policingprofile->cs_row_status == UNC_CS_UNKNOWN) {
+  upll_rc_t PolicingProfileMoMgr::UpdateConfigStatus(ConfigKeyVal *ckv,
+                                                     unc_keytype_operation_t op,
+                                                     uint32_t driver_result,
+                                                     ConfigKeyVal *nreq,
+                                                     DalDmlIntf   *dmi,
+                                                     ConfigKeyVal *ctrlr_key) {
+    UPLL_FUNC_TRACE;
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+    unc_keytype_configstatus_t  ctrlr_status;
+    uint8_t cs_status;
+    ctrlr_status = (driver_result == UPLL_RC_SUCCESS) ?
+        UNC_CS_APPLIED : UNC_CS_NOT_APPLIED;
+    if ((NULL == ckv) || (NULL == ctrlr_key)) {
+      UPLL_LOG_DEBUG("input struct is NULL");
+      return UPLL_RC_ERR_GENERIC;
+    }
+
+    val_policingprofile_t *val_policingprofile =
+        reinterpret_cast<val_policingprofile_t *>(GetVal(ckv));
+    val_policingprofile_ctrl *ctrlr_val_policingprofile =
+        reinterpret_cast<val_policingprofile_ctrl *>(GetVal(ctrlr_key));
+    if ((val_policingprofile == NULL) || (ctrlr_val_policingprofile == NULL)) {
+      UPLL_LOG_ERROR("Value structure is empty!!");
+      return UPLL_RC_ERR_GENERIC;
+    }
+    cs_status = val_policingprofile->cs_row_status;
+    UPLL_LOG_TRACE("cs_status %d ctrlr_status %d\n", cs_status, ctrlr_status);
+    if (op == UNC_OP_CREATE) {
+      ctrlr_val_policingprofile->cs_row_status = ctrlr_status;
+      /* update the vtn status in main tbl */
+      if (val_policingprofile->cs_row_status == UNC_CS_UNKNOWN) {
         /* first entry in ctrlr table */
-      cs_status = ctrlr_status;
-    } else if (val_policingprofile->cs_row_status == UNC_CS_APPLIED) {
+        cs_status = ctrlr_status;
+      } else if (val_policingprofile->cs_row_status == UNC_CS_APPLIED) {
         if (ctrlr_status == UNC_CS_NOT_APPLIED) {
           cs_status = UNC_CS_PARTIALLY_APPLIED;
         }
-    } else if (val_policingprofile->cs_row_status == UNC_CS_NOT_APPLIED) {
+      } else if (val_policingprofile->cs_row_status == UNC_CS_NOT_APPLIED) {
         if (ctrlr_status == UNC_CS_APPLIED) {
           cs_status =  UNC_CS_PARTIALLY_APPLIED;
         }
-    } else if (val_policingprofile->cs_row_status == UNC_CS_INVALID) {
-      cs_status = UNC_CS_INVALID;  
-    } else {
+      } else if (val_policingprofile->cs_row_status == UNC_CS_INVALID) {
+        cs_status = UNC_CS_INVALID;
+      } else {
         cs_status = UNC_CS_PARTIALLY_APPLIED;
+      }
+      val_policingprofile->cs_row_status = cs_status;
     }
-    val_policingprofile->cs_row_status = cs_status;
+    return result_code;
   }
-  return result_code;
-}
 
-upll_rc_t PolicingProfileMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
-                                                   ConfigKeyVal *ikey) {
-  UPLL_FUNC_TRACE;
+  upll_rc_t PolicingProfileMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
+                                                     ConfigKeyVal *ikey) {
+    UPLL_FUNC_TRACE;
 
-  if (!ikey) {
-    UPLL_LOG_DEBUG(" Input Key is NULL");
-    return UPLL_RC_ERR_GENERIC;
-  }
+    if (!ikey) {
+      UPLL_LOG_DEBUG(" Input Key is NULL");
+      return UPLL_RC_ERR_GENERIC;
+    }
 
-  unc_key_type_t ikey_type = ikey->get_key_type();
-  if (ikey_type != UNC_KT_POLICING_PROFILE) {
-    UPLL_LOG_DEBUG(" Invalid key type received. Key type - %d", ikey_type);
-    return UPLL_RC_ERR_GENERIC;
-  }
+    unc_key_type_t ikey_type = ikey->get_key_type();
+    if (ikey_type != UNC_KT_POLICING_PROFILE) {
+      UPLL_LOG_DEBUG(" Invalid key type received. Key type - %d", ikey_type);
+      return UPLL_RC_ERR_GENERIC;
+    }
 
-  key_root_t *root_key = reinterpret_cast<key_root_t*>
-      (ConfigKeyVal::Malloc(sizeof(key_root_t)));
-
-  okey = new ConfigKeyVal(UNC_KT_ROOT, IpctSt::kIpcStKeyRoot,
-                          root_key, NULL);
-  SET_USER_DATA(okey, ikey);
-  return UPLL_RC_SUCCESS;
-}
-
-upll_rc_t PolicingProfileMoMgr::SetValidAudit(ConfigKeyVal *&ikey) {
-  UPLL_FUNC_TRACE;
-  val_policingprofile_t *val = reinterpret_cast<val_policingprofile_t *>
-    (ConfigKeyVal::Malloc(sizeof(val_policingprofile_t)));
-  val->cs_row_status = UNC_CS_APPLIED;
-  ikey->AppendCfgVal(IpctSt::kIpcStValPolicingprofile, val);
-  return UPLL_RC_SUCCESS;
-}
-
-bool PolicingProfileMoMgr::FilterAttributes(void *&val1,
-                                          void *val2,
-                                          bool copy_to_running,
-                                          unc_keytype_operation_t op) {
-  UPLL_FUNC_TRACE;
-  if (op != UNC_OP_CREATE)
-    return true;
-  return false;
-}
-
-upll_rc_t PolicingProfileMoMgr::SetPPConsolidatedStatus(ConfigKeyVal *ikey,
-                                                        uint8_t *ctrlr_id,
-                                                        DalDmlIntf *dmi)  {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  ConfigKeyVal *ctrlr_ckv = NULL;
-  val_policingprofile_ctrl_t *ctrlr_val = NULL;
-  uint8_t *pp_exist_on_ctrlr = NULL;
-  bool applied = false, not_applied = false, invalid = false;
-  unc_keytype_configstatus_t c_status = UNC_CS_NOT_APPLIED;
-  DbSubOp dbop = { kOpReadMultiple, kOpMatchNone,
-                   kOpInOutCtrlr | kOpInOutCs };
-  if (!ikey || !dmi) {
-    UPLL_LOG_DEBUG("Invalid Input");
-    return UPLL_RC_ERR_GENERIC;
+    key_root_t *root_key = reinterpret_cast<key_root_t*>
+        (ConfigKeyVal::Malloc(sizeof(key_root_t)));
+
+    okey = new ConfigKeyVal(UNC_KT_ROOT, IpctSt::kIpcStKeyRoot,
+                            root_key, NULL);
+    SET_USER_DATA(okey, ikey);
+    return UPLL_RC_SUCCESS;
   }
-  result_code = GetChildConfigKey(ctrlr_ckv, ikey);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("GetChildConfigKey failed err code %d", result_code);
-    return result_code;
+
+  upll_rc_t PolicingProfileMoMgr::SetValidAudit(ConfigKeyVal *&ikey) {
+    UPLL_FUNC_TRACE;
+    val_policingprofile_t *val = reinterpret_cast<val_policingprofile_t *>
+        (ConfigKeyVal::Malloc(sizeof(val_policingprofile_t)));
+    val->cs_row_status = UNC_CS_APPLIED;
+    ikey->AppendCfgVal(IpctSt::kIpcStValPolicingprofile, val);
+    return UPLL_RC_SUCCESS;
   }
-  result_code = ReadConfigDB(ctrlr_ckv, UPLL_DT_RUNNING, UNC_OP_READ, dbop, dmi,
-                             CTRLRTBL);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("ReadConfigDB from ctrltbl failed err code %d",
-                   result_code);
-    DELETE_IF_NOT_NULL(ctrlr_ckv);
-    return result_code;
+
+  bool PolicingProfileMoMgr::FilterAttributes(void *&val1,
+                                              void *val2,
+                                              bool copy_to_running,
+                                              unc_keytype_operation_t op) {
+    UPLL_FUNC_TRACE;
+    if (op != UNC_OP_CREATE)
+      return true;
+    return false;
   }
 
-  for (ConfigKeyVal *tmp = ctrlr_ckv; tmp != NULL;
-                     tmp = tmp->get_next_cfg_key_val()) {
-    ctrlr_val = reinterpret_cast<val_policingprofile_ctrl_t *>(GetVal(tmp));
-    if (!ctrlr_val) {
-      UPLL_LOG_DEBUG("Controller Value is empty");
-      tmp = NULL;
-      DELETE_IF_NOT_NULL(ctrlr_ckv);
+  upll_rc_t PolicingProfileMoMgr::SetPPConsolidatedStatus(ConfigKeyVal *ikey,
+                                                          uint8_t *ctrlr_id,
+                                                          DalDmlIntf *dmi)  {
+    UPLL_FUNC_TRACE;
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
+    ConfigKeyVal *ctrlr_ckv = NULL;
+    val_policingprofile_ctrl_t *ctrlr_val = NULL;
+    uint8_t *pp_exist_on_ctrlr = NULL;
+    bool applied = false, not_applied = false, invalid = false;
+    unc_keytype_configstatus_t c_status = UNC_CS_NOT_APPLIED;
+    DbSubOp dbop = { kOpReadMultiple, kOpMatchNone,
+      kOpInOutCtrlr | kOpInOutCs };
+    if (!ikey || !dmi) {
+      UPLL_LOG_DEBUG("Invalid Input");
       return UPLL_RC_ERR_GENERIC;
     }
-    GET_USER_DATA_CTRLR(tmp, pp_exist_on_ctrlr);
-    if (!strcmp(reinterpret_cast<char *>(pp_exist_on_ctrlr),
-                reinterpret_cast<char *>(ctrlr_id)))
-      continue;  // skipping entry of deleted controller
-
-    switch (ctrlr_val->cs_row_status) {
-      case UNC_CS_APPLIED:
-        applied = true;
-      break;
-      case UNC_CS_NOT_APPLIED:
-        not_applied = true;
-      break;
-      case UNC_CS_INVALID:
-        invalid = true;
-      break;
-      default:
-        UPLL_LOG_DEBUG("Invalid status");        
+    result_code = GetChildConfigKey(ctrlr_ckv, ikey);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG("GetChildConfigKey failed err code %d", result_code);
+      return result_code;
+    }
+    result_code = ReadConfigDB(ctrlr_ckv,
+                               UPLL_DT_RUNNING,
+                               UNC_OP_READ,
+                               dbop,
+                               dmi,
+                               CTRLRTBL);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG("ReadConfigDB from ctrltbl failed err code %d",
+                     result_code);
+      DELETE_IF_NOT_NULL(ctrlr_ckv);
+      return result_code;
+    }
+
+    for (ConfigKeyVal *tmp = ctrlr_ckv; tmp != NULL;
+         tmp = tmp->get_next_cfg_key_val()) {
+      ctrlr_val = reinterpret_cast<val_policingprofile_ctrl_t *>(GetVal(tmp));
+      if (!ctrlr_val) {
+        UPLL_LOG_DEBUG("Controller Value is empty");
+        tmp = NULL;
         DELETE_IF_NOT_NULL(ctrlr_ckv);
-       //  return UPLL_RC_ERR_GENERIC;
+        return UPLL_RC_ERR_GENERIC;
+      }
+      GET_USER_DATA_CTRLR(tmp, pp_exist_on_ctrlr);
+      if (!strcmp(reinterpret_cast<char *>(pp_exist_on_ctrlr),
+                  reinterpret_cast<char *>(ctrlr_id)))
+        continue;  // skipping entry of deleted controller
+
+      switch (ctrlr_val->cs_row_status) {
+        case UNC_CS_APPLIED:
+          applied = true;
+          break;
+        case UNC_CS_NOT_APPLIED:
+          not_applied = true;
+          break;
+        case UNC_CS_INVALID:
+          invalid = true;
+          break;
+        default:
+          UPLL_LOG_DEBUG("Invalid status");
+          DELETE_IF_NOT_NULL(ctrlr_ckv);
+          //  return UPLL_RC_ERR_GENERIC;
+      }
+      pp_exist_on_ctrlr = NULL;
     }
-    pp_exist_on_ctrlr = NULL;
-  }
-  if (invalid) {
-    c_status = UNC_CS_INVALID;
-  } else if (applied && !not_applied) {
-    c_status = UNC_CS_APPLIED;
-  } else if (!applied && not_applied) {
-    c_status = UNC_CS_NOT_APPLIED;
-  } else if (applied && not_applied) {
-    c_status = UNC_CS_PARTIALLY_APPLIED;
-  } else {
-    c_status = UNC_CS_APPLIED;
+    if (invalid) {
+      c_status = UNC_CS_INVALID;
+    } else if (applied && !not_applied) {
+      c_status = UNC_CS_APPLIED;
+    } else if (!applied && not_applied) {
+      c_status = UNC_CS_NOT_APPLIED;
+    } else if (applied && not_applied) {
+      c_status = UNC_CS_PARTIALLY_APPLIED;
+    } else {
+      c_status = UNC_CS_APPLIED;
+    }
+    // Set cs_status
+    val_policingprofile_t *val = static_cast<val_policingprofile_t *>
+        (GetVal(ikey));
+    val->cs_row_status = c_status;
+    DbSubOp dbop_update = {kOpNotRead, kOpMatchNone, kOpInOutCs};
+    result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_UPDATE, dmi,
+                                 &dbop_update, MAINTBL);
+    DELETE_IF_NOT_NULL(ctrlr_ckv);
+    return result_code;
   }
-  // Set cs_status
-  val_policingprofile_t *val = static_cast<val_policingprofile_t *>
-                                  (GetVal(ikey));
-  val->cs_row_status = c_status;
-  DbSubOp dbop_update = {kOpNotRead, kOpMatchNone, kOpInOutCs};
-  result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_UPDATE, dmi,
-                               &dbop_update, MAINTBL);
-  DELETE_IF_NOT_NULL(ctrlr_ckv);
-  return result_code;
-}
 }  //  namespace kt_momgr
 }  //  namespace upll
 }  //  namespace unc
index c773fd8f854bfe2a7ba34dfa3854befa8f0d9f9d..eea9c50b3bcae2e3c134ec967f5de48186977b3d 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -19,12 +19,12 @@ namespace upll {
 namespace kt_momgr {
 
 /* This file declares interfaces for keyType KT_POLICING_PROFILE */
-/**
- * @brief PolicingProfileMoMgr class handles all the request
- *  received from service.
- */
-class PolicingProfileMoMgr : public MoMgrImpl {
-  private:
+  /**
  * @brief PolicingProfileMoMgr class handles all the request
  *  received from service.
  */
+  class PolicingProfileMoMgr : public MoMgrImpl {
+   private:
     /**
      * Member Variable for PolicingProfileBindInfo.
      */
@@ -59,56 +59,55 @@ class PolicingProfileMoMgr : public MoMgrImpl {
      * Member Variable for PolicingProfileBindInfo.
      */
     static BindInfo rename_policingprofile_rename_tbl[];
-    uint32_t cur_instance_count;
-   /**
-    * @Brief Validates the syntax of the specified key and value structure
-    *        for KT_POLICINGPROFILE keytype
-    *
-    * @param[in] IpcReqRespHeader contains first 8 fields of input request
-    *            structure
-    * @param[in] ConfigKeyVal key and value structure.
-    *
-    * @retval UPLL_RC_SUCCESS              Successful.
-    * @retval UPLL_RC_ERR_CFG_SYNTAX       Syntax error.
-    * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE policingprofile is not available.
-    * @retval UPLL_RC_ERR_GENERIC          Generic failure.
-    * @retval UPLL_RC_ERR_INVALID_OPTION1  option1 is not valid.
-    * @retval UPLL_RC_ERR_INVALID_OPTION2  option2 is not valid.
-    */
+    /**
+     * @Brief Validates the syntax of the specified key and value structure
+     *        for KT_POLICINGPROFILE keytype
+     *
+     * @param[in] IpcReqRespHeader contains first 8 fields of input request
+     *            structure
+     * @param[in] ConfigKeyVal key and value structure.
+     *
+     * @retval UPLL_RC_SUCCESS              Successful.
+     * @retval UPLL_RC_ERR_CFG_SYNTAX       Syntax error.
+     * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE policingprofile is not available.
+     * @retval UPLL_RC_ERR_GENERIC          Generic failure.
+     * @retval UPLL_RC_ERR_INVALID_OPTION1  option1 is not valid.
+     * @retval UPLL_RC_ERR_INVALID_OPTION2  option2 is not valid.
+     */
     upll_rc_t ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *key);
 
-   /**
-    * @Brief Validates the syntax for KT_POLICING_PROFILE keytype
-    *   key structure.
-    *
-    * @param[in] key_flowlist KT_POLICING_PROFILE key structure.
-    *
-    * @retval UPLL_RC_SUCCESS        validation succeeded.
-    * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
-    */
+    /**
+     * @Brief Validates the syntax for KT_POLICING_PROFILE keytype
+     *   key structure.
+     *
+     * @param[in] key_flowlist KT_POLICING_PROFILE key structure.
+     *
+     * @retval UPLL_RC_SUCCESS        validation succeeded.
+     * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
+     */
     upll_rc_t ValidatePolicingProfileRenameValue(
-       val_rename_policingprofile_t *val_rename_policingprofile,
-       uint32_t operation);
-
-   /**
-    * @Brief Checks if the specified key type(KT_POLICING_PROFILE) and
-    *        associated attributes are supported on the given controller,
-    *        based on the valid flag
-    *
-    * @param[in] IpcReqRespHeader  contains first 8 fields of input request
-    *                              structure
-    * @param[in]   ConfigKeyVal    contains key and value structure.
-    * @param[in]   ctrlr_name      controller_name
-    *
-    * @retval  UPLL_RC_SUCCESS             Validation succeeded.
-    * @retval  UPLL_RC_ERR_GENERIC         Validation failure.
-    * @retval  UPLL_RC_ERR_INVALID_OPTION1 Option1 is not valid.
-    * @retval  UPLL_RC_ERR_INVALID_OPTION2 Option2 is not valid.
-    */
+        val_rename_policingprofile_t *val_rename_policingprofile,
+        uint32_t operation);
+
+    /**
+     * @Brief Checks if the specified key type(KT_POLICING_PROFILE) and
+     *        associated attributes are supported on the given controller,
+     *        based on the valid flag
+     *
+     * @param[in] IpcReqRespHeader  contains first 8 fields of input request
+     *                              structure
+     * @param[in]   ConfigKeyVal    contains key and value structure.
+     * @param[in]   ctrlr_name      controller_name
+     *
+     * @retval  UPLL_RC_SUCCESS             Validation succeeded.
+     * @retval  UPLL_RC_ERR_GENERIC         Validation failure.
+     * @retval  UPLL_RC_ERR_INVALID_OPTION1 Option1 is not valid.
+     * @retval  UPLL_RC_ERR_INVALID_OPTION2 Option2 is not valid.
+     */
     upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                                   const char* ctrlr_name = NULL);
+                                 const char* ctrlr_name = NULL);
 
-  public:
+   public:
     /**
      * @brief PolicingProfileMoMgr Class Constructor.
      */
@@ -130,7 +129,7 @@ class PolicingProfileMoMgr : public MoMgrImpl {
                                 DalDmlIntf *dmi,
                                 IpcReqRespHeader *req = NULL);
 
-     /**
+    /**
      * @brief  Gets the validity of the index in the given val structure
      *
      * @param[out] valid    This will contain the output of validity of
@@ -143,8 +142,10 @@ class PolicingProfileMoMgr : public MoMgrImpl {
      * @retval  UPLL_RC_SUCCESS     Successfull completion.
      * @retval  UPLL_RC_ERR_GENERIC Val is NULL.
      */
-    upll_rc_t GetValid(void *val, uint64_t indx, uint8_t *&valid,
-                   upll_keytype_datatype_t dt_type, MoMgrTables tbl = MAINTBL);
+    upll_rc_t GetValid(void *val, uint64_t indx,
+                       uint8_t *&valid,
+                       upll_keytype_datatype_t dt_type,
+                       MoMgrTables tbl = MAINTBL);
 
     /**
      * @brief  Allocates Memory for the Incoming Pointer to the Class.
@@ -192,7 +193,8 @@ class PolicingProfileMoMgr : public MoMgrImpl {
      * @retval  UPLL_RC_ERR_DB_ACCESS         DB access error
      */
     upll_rc_t GetRenamedUncKey(ConfigKeyVal *ctrlr_key,
-                               upll_keytype_datatype_t dt_type, DalDmlIntf *dmi,
+                               upll_keytype_datatype_t dt_type,
+                               DalDmlIntf *dmi,
                                uint8_t *ctrlr_id);
 
     /**
@@ -246,7 +248,7 @@ class PolicingProfileMoMgr : public MoMgrImpl {
      */
     upll_rc_t UpdateAuditConfigStatus(
         unc_keytype_configstatus_t cs_status, uuc::UpdateCtrlrPhase phase,
-        ConfigKeyVal *&ckv_running);
+        ConfigKeyVal *&ckv_running, DalDmlIntf *dmi);
 
     /**
      * @brief  Method Swaps the Key and Val structures.
@@ -395,10 +397,11 @@ class PolicingProfileMoMgr : public MoMgrImpl {
      * @retval  UPLL_RC_ERR_DB_ACCESS         DB access error
      */
     upll_rc_t TxUpdateController(unc_key_type_t keytype,
-        uint32_t session_id, uint32_t config_id,
-        uuc::UpdateCtrlrPhase phase,
-        set<string> *affected_ctrlr_set, DalDmlIntf *dmi,
-        ConfigKeyVal **err_ckv);
+                                 uint32_t session_id, uint32_t config_id,
+                                 uuc::UpdateCtrlrPhase phase,
+                                 set<string> *affected_ctrlr_set,
+                                 DalDmlIntf *dmi,
+                                 ConfigKeyVal **err_ckv);
 
     /**
      * @brief  Method to send req to driver
@@ -416,8 +419,12 @@ class PolicingProfileMoMgr : public MoMgrImpl {
      * @retval  UPLL_RC_ERR_DB_ACCESS         DB access error
      */
     upll_rc_t TxUpdateProcess(ConfigKeyVal *ck_main,
-        IpcResponse *ipc_resp, unc_keytype_operation_t op, DalDmlIntf *dmi,
-        controller_domain *ctrlr_dom);
+                              IpcResponse *ipc_resp,
+                              unc_keytype_operation_t op,
+                              DalDmlIntf *dmi,
+                              controller_domain *ctrlr_dom,
+                              set<string> *affected_ctrlr_set,
+                              bool *driver_resp);
 
     /**
      * @brief  Method to old policingprofile name from rename struct to
@@ -436,8 +443,11 @@ class PolicingProfileMoMgr : public MoMgrImpl {
      * @retval  UPLL_RC_ERR_GENERIC           Failure
      */
     upll_rc_t GetRenameInfo(ConfigKeyVal *ikey,
-        ConfigKeyVal *okey, ConfigKeyVal *&rename_info, DalDmlIntf *dmi,
-        const char *ctrlr_id, bool &renamed);
+                            ConfigKeyVal *okey,
+                            ConfigKeyVal *&rename_info,
+                            DalDmlIntf *dmi,
+                            const char *ctrlr_id,
+                            bool &renamed);
 
     /**
      * @brief  Method to Create ConfigKeyVal with rename struct as key
@@ -511,8 +521,8 @@ class PolicingProfileMoMgr : public MoMgrImpl {
      * @retval  UPLL_RC_ERR_DB_ACCESS         DB access error
      */
     upll_rc_t GetControllerSpan(ConfigKeyVal *ikey,
-              upll_keytype_datatype_t dt_type,
-              DalDmlIntf *dmi);
+                                upll_keytype_datatype_t dt_type,
+                                DalDmlIntf *dmi);
 
     /**
      * @brief  Method to Set the Consolidated status
@@ -526,7 +536,7 @@ class PolicingProfileMoMgr : public MoMgrImpl {
      * @retval  UPLL_RC_ERR_DB_ACCESS         DB access error
      */
     upll_rc_t SetConsolidatedStatus(ConfigKeyVal *ikey,
-        DalDmlIntf *dmi);
+                                    DalDmlIntf *dmi);
 
     /**
      * @brief  Method to Delete record in ctrlrtbl
@@ -541,7 +551,7 @@ class PolicingProfileMoMgr : public MoMgrImpl {
      * @retval  UPLL_RC_ERR_DB_ACCESS         DB access error
      */
     upll_rc_t CtrlrTblDelete(ConfigKeyVal *pp_ckv,
-        DalDmlIntf *dmi, upll_keytype_datatype_t dt_type);
+                             DalDmlIntf *dmi, upll_keytype_datatype_t dt_type);
 
     /**
      * @brief  Method to Create record in ctrlrtbl
@@ -556,7 +566,7 @@ class PolicingProfileMoMgr : public MoMgrImpl {
      * @retval  UPLL_RC_ERR_DB_ACCESS         DB access error
      */
     upll_rc_t CtrlrTblCreate(ConfigKeyVal *pp_ckv,
-        DalDmlIntf *dmi, upll_keytype_datatype_t dt_type);
+                             DalDmlIntf *dmi, upll_keytype_datatype_t dt_type);
 
     /**
      * @brief  Method to Create or Delete record in ctrlrtbl
@@ -572,8 +582,10 @@ class PolicingProfileMoMgr : public MoMgrImpl {
      * @retval  UPLL_RC_ERR_DB_ACCESS         DB access error
      */
     upll_rc_t PolicingProfileCtrlrTblOper(const char *policingprofile_name,
-       const char *ctrlr_id, DalDmlIntf *dmi, unc_keytype_operation_t oper,
-       upll_keytype_datatype_t dt_type);
+                                          const char *ctrlr_id,
+                                          DalDmlIntf *dmi,
+                                          unc_keytype_operation_t oper,
+                                          upll_keytype_datatype_t dt_type);
 
     /**
      * @brief  Method to Get Policingprofile COnfigKeyVal
@@ -593,8 +605,8 @@ class PolicingProfileMoMgr : public MoMgrImpl {
         const char *ctrlr_id);
 
     upll_rc_t UpdateMainTbl(ConfigKeyVal *key_pp,
-      unc_keytype_operation_t op, uint32_t driver_result,
-      ConfigKeyVal *nreq, DalDmlIntf *dmi);
+                            unc_keytype_operation_t op, uint32_t driver_result,
+                            ConfigKeyVal *nreq, DalDmlIntf *dmi);
 
     upll_rc_t GetDiffRecord(ConfigKeyVal *ckv_running,
                             ConfigKeyVal *ckv_audit,
@@ -613,19 +625,19 @@ class PolicingProfileMoMgr : public MoMgrImpl {
     upll_rc_t SetPPConsolidatedStatus(ConfigKeyVal *ikey,
                                       uint8_t *ctrlr_id,
                                       DalDmlIntf *dmi);
-};
+  };
 
-typedef struct val_policingprofile_ctrl {
+  typedef struct val_policingprofile_ctrl {
     unc_keytype_configstatus_t cs_row_status;
     uint8_t flags;    // DBFLAGS
     uint32_t ref_count;  // DB RefCount
     uint8_t valid[1];
-} val_policingprofile_ctrl_t;
+  } val_policingprofile_ctrl_t;
 
-typedef struct key_policingprofile_ctrl {
-  uint8_t policingprofile_name[33];
-  uint8_t ctrlr_name[32];
-} key_policingprofile_ctrl_t;
+  typedef struct key_policingprofile_ctrl {
+    uint8_t policingprofile_name[33];
+    uint8_t ctrlr_name[32];
+  } key_policingprofile_ctrl_t;
 }  // namespace kt_momgr
 }  // namespace upll
 }  // namespace unc
index 7da64fe205d3b1dc32084c25e43a84ca75f1427f..75af55c62fabe6b3a265bb6db9aff80a0c6ac9e0 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -36,7 +36,8 @@ static bool GetNextSiblingKT(const KeyTree &kt_tree, const unc_key_type_t kt,
 }
 
 static bool GetFirstChildKT(const KeyTree &kt_tree,
-                          unc_key_type_t parent_kt, unc_key_type_t *child_kt) {
+                            unc_key_type_t parent_kt,
+                            unc_key_type_t *child_kt) {
   UPLL_FUNC_TRACE;
   UPLL_LOG_TRACE("Request parent KT = %d", parent_kt);
   bool ok = kt_tree.GetFirstChild(parent_kt, child_kt);
@@ -238,10 +239,10 @@ upll_rc_t UpllConfigMgr::ReadBulkGetSubtree(const KeyTree &kt_tree,
     upll_rc_t curr_urc;
     ConfigKeyVal *curr_resp_ckv = NULL;
     for ((curr_urc = ReadBulkGetSibling(datatype, curr_req_ckv, &curr_resp_ckv,
-                                       true, dmi));
+                                        true, dmi));
          curr_urc == UPLL_RC_SUCCESS;
          (curr_urc = ReadBulkGetSibling(datatype, curr_req_ckv, &curr_resp_ckv,
-                                       false, dmi))) {
+                                        false, dmi))) {
       delete curr_req_ckv;
       curr_req_ckv = curr_resp_ckv->DupKey();  // prepare for loop
       if (curr_req_ckv == NULL) {
@@ -385,6 +386,10 @@ upll_rc_t UpllConfigMgr::ReadBulkMo(IpcReqRespHeader *msghdr,
   bool begin = true;
   bool retrieve_user_req_mo = true;  // Check the presence of user given key
   const ConfigKeyVal *step_req_ckv = user_req_ckv->DupKey();
+  if (!step_req_ckv) {
+    UPLL_LOG_DEBUG("step_req_ckv is NULL");
+    return UPLL_RC_ERR_GENERIC;
+  }
   upll_rc_t urc;
   while (pending_cnt > 0) {
     ConfigKeyVal *step_resp_ckv = NULL;
@@ -484,8 +489,8 @@ upll_rc_t UpllConfigMgr::ReadBulkMo(IpcReqRespHeader *msghdr,
             subtree_req_ckv = NULL;
           } else {
             /* Can't delete step_resp_ckv as is it attached to user_resp_ckv
-            delete step_resp_ckv;
-            */
+               delete step_resp_ckv;
+               */
             delete subtree_req_ckv;
             subtree_req_ckv = NULL;
             msghdr->result_code = UPLL_RC_SUCCESS;
@@ -502,7 +507,7 @@ upll_rc_t UpllConfigMgr::ReadBulkMo(IpcReqRespHeader *msghdr,
                          step_req_ckv->get_key_type());
           unc_key_type_t next_sibling_kt;
           if (GetNextSiblingKT(*kt_tree, step_req_ckv->get_key_type(),
-                             &next_sibling_kt)) {
+                               &next_sibling_kt)) {
             // There is a NEXT SIBLING KT for the given KT; get the first
             // instance of the next KT
             begin = true;
@@ -596,7 +601,7 @@ upll_rc_t UpllConfigMgr::ReadBulkMo(IpcReqRespHeader *msghdr,
   UPLL_LOG_TRACE("Returning from %s", __FUNCTION__);
   return UPLL_RC_ERR_GENERIC;
 }
-                                                                       // NOLINT
-}  // namesapce config_momgr
-}  // namesapce upll
-}  // namesapce unc
+// NOLINT
+}  // namespace config_momgr
+}  // namespace upll
+}  // namespace unc
index 1374ac6b3a6bdbfc4943c07c833a29eb8d684932..f186b09db780f22035e7761a5c2af653d98fc2d7 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -44,16 +44,27 @@ TcCommonRet TcLibIntfImpl::HandleCommitTransactionStart(uint32_t session_id,
   ConfigKeyVal *err_ckv =  NULL;
   upll_rc_t urc = ucm_->OnTxStart(session_id, config_id, &err_ckv);
   if (urc != UPLL_RC_SUCCESS) {
+    // If local error in UPLL, send it to TC with controller id as ""
+    const char *ctrlr_id = kUpllCtrlrId;
     if (err_ckv != NULL) {
-      // Local error in UPLL, send it to TC with controller id as ""
-      list<CtrlrTxResult*> tx_res_list;
-      CtrlrTxResult unc_res(kUpllCtrlrId, urc, urc);
-      unc_res.err_ckv = err_ckv;   // err_ckv will be freed by CtlrTxResult
-      tx_res_list.push_back(&unc_res);
-      if (WriteBackTxResult(tx_res_list) != true) {
-        urc = UPLL_RC_ERR_GENERIC;
+      if (err_ckv->get_user_data()) {
+        ctrlr_id = reinterpret_cast<char *>(
+            (reinterpret_cast<unc::upll::ipc_util::key_user_data*>(
+                    err_ckv->get_user_data()))->ctrlr_id);
+        if (ctrlr_id == NULL) {
+          UPLL_LOG_INFO("Controller Id is null");
+          ctrlr_id = kUpllCtrlrId;
+        }
+        UPLL_LOG_TRACE("Controller Id set in response: %s", ctrlr_id);
       }
     }
+    list<CtrlrTxResult*> tx_res_list;
+    CtrlrTxResult unc_res(ctrlr_id, urc, urc);
+    unc_res.err_ckv = err_ckv;   // err_ckv will be freed by CtlrTxResult
+    tx_res_list.push_back(&unc_res);
+    if (WriteBackTxResult(tx_res_list) != true) {
+      urc = UPLL_RC_ERR_GENERIC;
+    }
     // There was an error, let us end tx as TC won't call TxEnd
     ucm_->OnTxEnd();
   }
@@ -65,6 +76,7 @@ TcCommonRet TcLibIntfImpl::HandleCommitTransactionEnd(
     uint32_t session_id, uint32_t config_id, TcTransEndResult end_result) {
   UPLL_LOG_TRACE("TxEnd result: %d", end_result);
   upll_rc_t urc = ucm_->OnTxEnd();
+  WriteUpllErrorBlock(&urc);
   return ((urc == UPLL_RC_SUCCESS) ? unc::tclib::TC_SUCCESS :
           unc::tclib::TC_FAILURE);
 }
@@ -86,10 +98,10 @@ upll_rc_t TcLibIntfImpl::FillTcDriverInfoMap(
     upll_keytype_datatype_t datatype;
     datatype = audit ? UPLL_DT_RUNNING : UPLL_DT_CANDIDATE;
     if (false == CtrlrMgr::GetInstance()->GetCtrlrType(
-        ctrlr_name.c_str(), datatype, &ctrlr_type)) {
+            ctrlr_name.c_str(), datatype, &ctrlr_type)) {
       if (datatype != UPLL_DT_RUNNING) {
         if (false == CtrlrMgr::GetInstance()->GetCtrlrType(
-            ctrlr_name.c_str(), UPLL_DT_RUNNING, &ctrlr_type)) {
+                ctrlr_name.c_str(), UPLL_DT_RUNNING, &ctrlr_type)) {
           UPLL_LOG_WARN("Unable to get controller type for %s",
                         ctrlr_name.c_str());
           return UPLL_RC_ERR_GENERIC;
@@ -101,15 +113,15 @@ upll_rc_t TcLibIntfImpl::FillTcDriverInfoMap(
       }
     }
     UPLL_LOG_TRACE("Affected controller name=%s, type=%d",
-                  ctrlr_name.c_str(), ctrlr_type);
+                   ctrlr_name.c_str(), ctrlr_type);
     if (ctrlr_type == UNC_CT_PFC) {
       openflow_cnt++;
       openflow_list.push_back(ctrlr_name);
-    /*
-    } else if (ctrlr_type == UNC_CT_LEGACY) {
-      legacy_cnt++;
-      legacy_list.push_back(ctrlr_name);
-    */  
+      /*
+         } else if (ctrlr_type == UNC_CT_LEGACY) {
+         legacy_cnt++;
+         legacy_list.push_back(ctrlr_name);
+         */
     } else if (ctrlr_type == UNC_CT_VNP) {
       overlay_cnt++;
       overlay_list.push_back(ctrlr_name);
@@ -125,10 +137,10 @@ upll_rc_t TcLibIntfImpl::FillTcDriverInfoMap(
     (*driver_info)[UNC_CT_PFC] = openflow_list;
   }
   /*
-  if (legacy_cnt) {
-    (*driver_info)[UNC_CT_LEGACY] = legacy_list;
-  }
-  */
+     if (legacy_cnt) {
+     (*driver_info)[UNC_CT_LEGACY] = legacy_list;
+     }
+     */
   if (overlay_cnt) {
     (*driver_info)[UNC_CT_VNP] = overlay_list;
   }
@@ -146,15 +158,13 @@ TcCommonRet TcLibIntfImpl::HandleCommitVoteRequest(
   if (urc == UPLL_RC_SUCCESS) {
     urc = FillTcDriverInfoMap(&driver_info, affected_ctrlr_list, false);
   } else {
-    if (err_ckv != NULL) {
-      // Local error in UPLL, send it to TC with controller id as ""
-      list<CtrlrTxResult*> tx_res_list;
-      CtrlrTxResult unc_res(kUpllCtrlrId, urc, urc);
-      unc_res.err_ckv = err_ckv;   // err_ckv will be freed by CtlrTxResult
-      tx_res_list.push_back(&unc_res);
-      if (WriteBackTxResult(tx_res_list) != true) {
-        urc = UPLL_RC_ERR_GENERIC;
-      }
+    // Local error in UPLL, send it to TC with controller id as ""
+    list<CtrlrTxResult*> tx_res_list;
+    CtrlrTxResult unc_res(kUpllCtrlrId, urc, urc);
+    unc_res.err_ckv = err_ckv;   // err_ckv will be freed by CtlrTxResult
+    tx_res_list.push_back(&unc_res);
+    if (WriteBackTxResult(tx_res_list) != true) {
+      urc = UPLL_RC_ERR_GENERIC;
     }
   }
   return ((urc == UPLL_RC_SUCCESS) ? unc::tclib::TC_SUCCESS :
@@ -168,9 +178,10 @@ TcCommonRet TcLibIntfImpl::HandleCommitGlobalCommit(
   if (urc == UPLL_RC_SUCCESS) {
     urc = FillTcDriverInfoMap(&driver_info, affected_ctrlr_list, false);
     if (urc != UPLL_RC_SUCCESS) {
-      pfc_log_fatal("Failed to fill TcDriverInfoMap in Commit-GlobalCommit");
+      UPLL_LOG_FATAL("Failed to fill TcDriverInfoMap in Commit-GlobalCommit");
     }
   }
+  WriteUpllErrorBlock(&urc);
   return ((urc == UPLL_RC_SUCCESS) ? unc::tclib::TC_SUCCESS :
           unc::tclib::TC_FAILURE);
 }
@@ -241,12 +252,12 @@ bool TcLibIntfImpl::GetTxKtResult(const string &ctrlr_id,
     if (val_exists) {
       val_stdef = IpctSt::GetIpcStdef(val_stnum);
     } else {
-        bzero(&val_stdef_dummy, sizeof(val_stdef_dummy));
-        val_stdef = &val_stdef_dummy;
+      bzero(&val_stdef_dummy, sizeof(val_stdef_dummy));
+      val_stdef = &val_stdef_dummy;
     }
     if (key_stdef == NULL || (val_exists && (val_stdef == NULL))) {
       UPLL_LOG_TRACE("key_stnum=%d key_stdef=%p val_stnum=%d val_stdef=%p",
-                    key_stnum, key_stdef, val_stnum, val_stdef);
+                     key_stnum, key_stdef, val_stnum, val_stdef);
       if (*err_ckv != NULL) {
         delete *err_ckv;
         *err_ckv = NULL;
@@ -300,31 +311,34 @@ upll_rc_t TcLibIntfImpl::DriverResultCodeToTxURC(
     case UNC_CT_VNP:
       {
         switch (driver_result_code) {
-          case DRVAPI_RESPONSE_SUCCESS:
+          case UNC_RC_SUCCESS:
             return UPLL_RC_SUCCESS;
-          case DRVAPI_RESPONSE_NOT_RUNNING:
-            return UPLL_RC_ERR_GENERIC;   // TODO(a) confirm this with NEC.
-          case DRVAPI_RESPONSE_CONTROLLER_DISCONNECTED:
-            return UPLL_RC_ERR_RESOURCE_DISCONNECTED;
-          case DRVAPI_RESPONSE_NOT_SENT_TO_CONTROLLER:
+          case UNC_DRV_RC_DAEMON_INACTIVE:
+            return UPLL_RC_ERR_GENERIC;
+          case UNC_RC_CTR_DISCONNECTED:
+            return UPLL_RC_ERR_CTR_DISCONNECTED;
+          case UNC_DRV_RC_ERR_ATTRIBUTE_SYNTAX:
+            return UPLL_RC_ERR_CFG_SYNTAX;
+          case UNC_DRV_RC_ERR_ATTRIBUTE_SEMANTIC:
+            return UPLL_RC_ERR_CFG_SEMANTIC;
+          case UNC_RC_REQ_NOT_SENT_TO_CTR:
             // It will not be sent to controller only in the case of
             // vote phase For now map it to SUCCESS as we are looking for
             // errors here in vote phase.
             return UPLL_RC_SUCCESS;
-          case DRVAPI_RESPONSE_FAILURE:
-          case DRVAPI_RESPONSE_CTRLAPI_FAILURE:
-          case DRVAPI_RESPONSE_INVALID_REQUEST_FORMAT:
-          case DRVAPI_RESPONSE_INVALID_SESSION_ID:
-          case DRVAPI_RESPONSE_INVALID_CONFIG_ID:
-          case DRVAPI_RESPONSE_INVALID_OPERATION:
-          case DRVAPI_RESPONSE_INVALID_OPTION1:
-          case DRVAPI_RESPONSE_INVALID_OPTION2:
-          case DRVAPI_RESPONSE_INVALID_DATATYPE:
-          case DRVAPI_RESPONSE_INVALID_KEYTYPE:
-          case DRVAPI_RESPONSE_MISSING_KEY_STRUCT:
-          case DRVAPI_RESPONSE_MISSING_VAL_STRUCT:
-          case DRVAPI_RESPONSE_NO_SUCH_INSTANCE:
-          case DRVAPI_RESPONSE_INVALID_TRANSACTION:
+          case UNC_DRV_RC_ERR_GENERIC:
+          case UNC_RC_CTRLAPI_FAILURE:
+          case UNC_DRV_RC_INVALID_REQUEST_FORMAT:
+          case UNC_DRV_RC_INVALID_SESSION_ID:
+          case UNC_DRV_RC_INVALID_CONFIG_ID:
+          case UNC_DRV_RC_INVALID_OPERATION:
+          case UNC_DRV_RC_INVALID_OPTION1:
+          case UNC_DRV_RC_INVALID_OPTION2:
+          case UNC_DRV_RC_INVALID_DATATYPE:
+          case UNC_DRV_RC_INVALID_KEYTYPE:
+          case UNC_DRV_RC_MISSING_KEY_STRUCT:
+          case UNC_DRV_RC_MISSING_VAL_STRUCT:
+          case UNC_RC_NO_SUCH_INSTANCE:
           default:
             return UPLL_RC_ERR_GENERIC;
         }
@@ -335,6 +349,59 @@ upll_rc_t TcLibIntfImpl::DriverResultCodeToTxURC(
   }
 }
 
+static UncRespCode ConvertToTcErrorCode(uint32_t ctr_err_code) {
+  switch (ctr_err_code) {
+    case UNC_RC_SUCCESS:
+      return UNC_RC_SUCCESS;
+
+    case UNC_UPLL_RC_ERR_GENERIC:
+    case UNC_UPLL_RC_ERR_DB_ACCESS:
+      // If ctrlr is disconnected then it is success.
+    case UNC_UPLL_RC_ERR_RESOURCE_DISCONNECTED:
+      return UNC_RC_INTERNAL_ERR;
+    case UNC_UPLL_RC_ERR_BAD_REQUEST:
+    case UNC_UPLL_RC_ERR_BAD_CONFIG_OR_SESSION_ID:
+    case UNC_UPLL_RC_ERR_NO_SUCH_OPERATION:
+    case UNC_UPLL_RC_ERR_INVALID_OPTION1:
+    case UNC_UPLL_RC_ERR_INVALID_OPTION2:
+    case UNC_UPLL_RC_ERR_NO_SUCH_NAME:
+    case UNC_UPLL_RC_ERR_NO_SUCH_DATATYPE:
+    case UNC_UPLL_RC_ERR_NOT_SUPPORTED_BY_STANDBY:
+    case UNC_UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT:
+    case UNC_UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT:
+    case UNC_UPLL_RC_ERR_NOT_ALLOWED_AT_THIS_TIME:
+    case UNC_UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT:
+    case UNC_UPLL_RC_ERR_MERGE_CONFLICT:
+    case UNC_UPLL_RC_ERR_CANDIDATE_IS_DIRTY:
+    case UNC_UPLL_RC_ERR_SHUTTING_DOWN:
+      UPLL_LOG_DEBUG("Error code %d is unexpected", ctr_err_code);
+      return UNC_RC_INTERNAL_ERR;
+
+    case UNC_UPLL_RC_ERR_CFG_SYNTAX:
+    case UNC_UPLL_RC_ERR_CFG_SEMANTIC:
+    case UNC_UPLL_RC_ERR_NO_SUCH_INSTANCE:
+    case UNC_UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR:
+    case UNC_UPLL_RC_ERR_PARENT_DOES_NOT_EXIST:
+    case UNC_UPLL_RC_ERR_INSTANCE_EXISTS:
+      return UNC_RC_CONFIG_INVAL;
+
+      /* Transaction errors */
+    case UNC_RC_INTERNAL_ERR:
+    case UNC_RC_CONFIG_INVAL:
+    case UNC_RC_CTRLAPI_FAILURE:
+    case UNC_RC_CTR_CONFIG_STATUS_ERR:
+    case UNC_RC_CTR_BUSY:
+    case UNC_RC_CTR_DISCONNECTED:
+    case UNC_RC_REQ_NOT_SENT_TO_CTR:
+    case UNC_RC_NO_SUCH_INSTANCE:
+      return static_cast<UncRespCode>(ctr_err_code);
+
+    default:
+      UPLL_LOG_DEBUG("Error code %d is unexpected", ctr_err_code);
+      return UNC_RC_INTERNAL_ERR;
+  }
+}
+
 /**
  * Driver result is converted to UPLL specific format.
  * On error (false return), tx_res_list will be empty.
@@ -347,21 +414,21 @@ bool TcLibIntfImpl::GetTxResult(const TcCommitPhaseResult *driver_result,
   PFC_ASSERT(tx_res_list != NULL);
 
   UPLL_LOG_TRACE("Controller count=%u",
-                static_cast<uint32_t>(driver_result->size()));
+                 static_cast<uint32_t>(driver_result->size()));
 
   // Iterate over each controller status
   for (TcCommitPhaseResult::const_iterator ctr_it = driver_result->begin();
        ctr_it != driver_result->end(); ++ctr_it) {
     unc_keytype_ctrtype_t ctrlr_type = UNC_CT_UNKNOWN;
     if (false == CtrlrMgr::GetInstance()->GetCtrlrType(
-        ctr_it->controller_id.c_str(), UPLL_DT_CANDIDATE, &ctrlr_type)) {
+            ctr_it->controller_id.c_str(), UPLL_DT_CANDIDATE, &ctrlr_type)) {
       if (false == CtrlrMgr::GetInstance()->GetCtrlrType(
-          ctr_it->controller_id.c_str(), UPLL_DT_RUNNING, &ctrlr_type)) {
+              ctr_it->controller_id.c_str(), UPLL_DT_RUNNING, &ctrlr_type)) {
         UPLL_LOG_DEBUG("Controller %s does not exist",
                        ctr_it->controller_id.c_str());
         // empty tx_res_list and free its contents
         for (list<CtrlrTxResult*>::iterator tx_res_it = tx_res_list->begin();
-            tx_res_it != tx_res_list->end(); tx_res_it++) {
+             tx_res_it != tx_res_list->end(); tx_res_it++) {
           CtrlrTxResult *tx_res = *tx_res_it;
           delete tx_res;
         }
@@ -370,64 +437,64 @@ bool TcLibIntfImpl::GetTxResult(const TcCommitPhaseResult *driver_result,
       }
     }
     /*
-    if (ctrlr_type == UNC_CT_PFC) {
-      // TODO(a) NOT_SENT error will be used only in Global Commit Phase
-      if (ctr_it->resp_code == DRVAPI_RESPONSE_NOT_SENT_TO_CONTROLLER)
-        continue;  // skip this controller
-    } else {
-      continue;  // Not implemeted other controller types
-    }
-    */
-    upll_rc_t converted_result = DriverResultCodeToTxURC(ctrlr_type,
-                                                         ctr_it->resp_code);
-    /*
-    if (converted_result != UPLL_RC_ERR_RESOURCE_DISCONNECTED) {
-      if (ctr_it->num_of_errors == 0) {
-        UPLL_LOG_TRACE("Skipping Controller ID=%s CtrResult=%d",
-                  ctr_it->controller_id.c_str(), ctr_it->resp_code);
-        continue;
-      }
-    }
-    */
-
-    UPLL_LOG_INFO("Controller ID=%s CtrlrResult=%d Urc=%d ErrCount=%d",
-                  ctr_it->controller_id.c_str(), ctr_it->resp_code,
-                  converted_result, ctr_it->num_of_errors);
-
-    CtrlrTxResult *tx_res = new CtrlrTxResult(ctr_it->controller_id,
-                                              converted_result,
-                                              ctr_it->resp_code);
-    tx_res->err_ckv = NULL;
-
-    if (GetTxKtResult(tx_res->ctrlr_id, &ctr_it->key_list, &tx_res->err_ckv) ==
-        false) {
-      // empty tx_res_list and free its contents
-      for (list<CtrlrTxResult*>::iterator tx_res_it = tx_res_list->begin();
-           tx_res_it != tx_res_list->end(); tx_res_it++) {
-        CtrlrTxResult *tx_res = *tx_res_it;
-        delete tx_res;
-      }
-      tx_res_list->clear();
-      delete tx_res;
-      return false;
-    }
-    if (tx_res->err_ckv != NULL) {
-      UPLL_LOG_INFO("Error CKV received from controller <%s>: %s",
-                     ctr_it->controller_id.c_str(),
-                     tx_res->err_ckv->ToStrAll().c_str());
-    }
-    tx_res_list->push_back(tx_res);
-    /*
-    if (tx_res->err_ckv->size() != 0) {
-      tx_res_list->push_back(tx_res);
-    } else {
-      if (converted_result == UPLL_RC_ERR_RESOURCE_DISCONNECTED) {
-        tx_res_list->push_back(tx_res);
-      }
-    }
-    */
+       if (ctrlr_type == UNC_CT_PFC) {
+// TODO(a) NOT_SENT error will be used only in Global Commit Phase
+if (ctr_it->resp_code == UNC_RC_REQ_NOT_SENT_TO_CTR)
+continue;  // skip this controller
+} else {
+continue;  // Not implemeted other controller types
+}
+*/
+upll_rc_t converted_result = DriverResultCodeToTxURC(ctrlr_type,
+                                                     ctr_it->resp_code);
+/*
+   if (converted_result != UPLL_RC_ERR_RESOURCE_DISCONNECTED) {
+   if (ctr_it->num_of_errors == 0) {
+   UPLL_LOG_TRACE("Skipping Controller ID=%s CtrResult=%d",
+   ctr_it->controller_id.c_str(), ctr_it->resp_code);
+   continue;
+   }
+   }
+   */
+
+UPLL_LOG_INFO("Controller ID=%s CtrlrResult=%d Urc=%d ErrCount=%d",
+              ctr_it->controller_id.c_str(), ctr_it->resp_code,
+              converted_result, ctr_it->num_of_errors);
+
+CtrlrTxResult *tx_res = new CtrlrTxResult(ctr_it->controller_id,
+                                          converted_result,
+                                          ctr_it->resp_code);
+tx_res->err_ckv = NULL;
+
+if (GetTxKtResult(tx_res->ctrlr_id, &ctr_it->key_list, &tx_res->err_ckv) ==
+    false) {
+  // empty tx_res_list and free its contents
+  for (list<CtrlrTxResult*>::iterator tx_res_it = tx_res_list->begin();
+       tx_res_it != tx_res_list->end(); tx_res_it++) {
+    CtrlrTxResult *tx_res = *tx_res_it;
+    delete tx_res;
   }
-  return true;
+  tx_res_list->clear();
+  delete tx_res;
+  return false;
+}
+if (tx_res->err_ckv != NULL) {
+  UPLL_LOG_INFO("Error CKV received from controller <%s>: %s",
+                ctr_it->controller_id.c_str(),
+                tx_res->err_ckv->ToStrAll().c_str());
+}
+tx_res_list->push_back(tx_res);
+/*
+   if (tx_res->err_ckv->size() != 0) {
+   tx_res_list->push_back(tx_res);
+   } else {
+   if (converted_result == UPLL_RC_ERR_RESOURCE_DISCONNECTED) {
+   tx_res_list->push_back(tx_res);
+   }
+   }
+   */
+}
+return true;
 }
 
 bool TcLibIntfImpl::WriteBackTxResult(const list<CtrlrTxResult*> &tx_res_list) {
@@ -443,13 +510,26 @@ bool TcLibIntfImpl::WriteBackTxResult(const list<CtrlrTxResult*> &tx_res_list) {
     const CtrlrTxResult *res = *ctrlr_it;
     // Skip controllers whose status is success.
     // During Vote/G-Commit, disconnected controller information is not skipped
-    // During Vote, DRVAPI_RESPONSE_NOT_SENT_TO_CONTROLLER is not skipped.
+    // During Vote, UNC_RC_REQ_NOT_SENT_TO_CTR is not skipped.
     if ((res->ctrlr_id.compare(kUpllCtrlrId) != 0) &&
-        (res->ctrlr_orig_result == DRVAPI_RESPONSE_SUCCESS)) {
+        (res->ctrlr_orig_result == UNC_RC_SUCCESS)) {
+      continue;
+    }
+    UncRespCode unc_rc = ConvertToTcErrorCode(res->ctrlr_orig_result);
+    UPLL_LOG_DEBUG("Sending error %d to TC", unc_rc);
+    if (unc_rc == UNC_RC_CTR_BUSY) {
+      // If error is UNC_RC_CTR_BUSY, there is no keytype error. So, err_ckv
+      // should not be used.
+      unc::tclib::TcApiCommonRet tclib_ret = tclib->TcLibWriteControllerInfo(
+          res->ctrlr_id, unc_rc, 0);
+      if (tclib_ret != unc::tclib::TC_API_COMMON_SUCCESS) {
+        UPLL_LOG_DEBUG("Failed to write to tclib %d", tclib_ret);
+        return false;
+      }
       continue;
     }
     unc::tclib::TcApiCommonRet tclib_ret = tclib->TcLibWriteControllerInfo(
-        res->ctrlr_id, res->ctrlr_orig_result, res->err_ckv->size());
+        res->ctrlr_id, unc_rc, ((res->err_ckv)?res->err_ckv->size():0));
     if (tclib_ret != unc::tclib::TC_API_COMMON_SUCCESS) {
       UPLL_LOG_DEBUG("Failed to write to tclib %d", tclib_ret);
       return false;
@@ -457,42 +537,44 @@ bool TcLibIntfImpl::WriteBackTxResult(const list<CtrlrTxResult*> &tx_res_list) {
     if (res->err_ckv) {
       UPLL_LOG_INFO("Proccessed Error CKV for controller <%s>: %s",
                     res->ctrlr_id.c_str(), res->err_ckv->ToStrAll().c_str());
-    }
-    for (const ConfigKeyVal *ckv = res->err_ckv; ckv;
-         ckv = ckv->get_next_cfg_key_val()) {
-      if (ckv->get_key() == NULL) {
-        UPLL_LOG_DEBUG("Bad ConfigKeyVal key is NULL");
-        return false;
-      }
-      const pfc_ipcstdef_t *key_stdef = IpctSt::GetIpcStdef(ckv->get_st_num());
-      if (key_stdef == NULL) {
-        UPLL_LOG_DEBUG("Unknown ConfigKeyVal key=%d", ckv->get_st_num());
-        return false;
-      }
-      const pfc_ipcstdef_t *val_stdef = NULL;
-      // Need a dummy for val_stdef;
-      pfc_ipcstdef_t val_stdef_dummy;
-      const ConfigVal *cv = ckv->get_cfg_val();
-      if (cv != NULL) {
-        if (cv->get_val() == NULL) {
-          UPLL_LOG_DEBUG("Bad ConfigKeyVal val is NULL");
+      for (const ConfigKeyVal *ckv = res->err_ckv; ckv;
+           ckv = ckv->get_next_cfg_key_val()) {
+        if (ckv->get_key() == NULL) {
+          UPLL_LOG_DEBUG("Bad ConfigKeyVal key is NULL");
           return false;
         }
-        val_stdef = IpctSt::GetIpcStdef(cv->get_st_num());
-        if (val_stdef == NULL) {
-          UPLL_LOG_DEBUG("Unknown ConfigKeyVal val=%d", cv->get_st_num());
+        const pfc_ipcstdef_t *key_stdef =
+            IpctSt::GetIpcStdef(ckv->get_st_num());
+        if (key_stdef == NULL) {
+          UPLL_LOG_DEBUG("Unknown ConfigKeyVal key=%d", ckv->get_st_num());
+          return false;
+        }
+        const pfc_ipcstdef_t *val_stdef = NULL;
+        // Need a dummy for val_stdef;
+        pfc_ipcstdef_t val_stdef_dummy;
+        const ConfigVal *cv = ckv->get_cfg_val();
+        if (cv != NULL) {
+          if (cv->get_val() == NULL) {
+            UPLL_LOG_DEBUG("Bad ConfigKeyVal val is NULL");
+            return false;
+          }
+          val_stdef = IpctSt::GetIpcStdef(cv->get_st_num());
+          if (val_stdef == NULL) {
+            UPLL_LOG_DEBUG("Unknown ConfigKeyVal val=%d", cv->get_st_num());
+            return false;
+          }
+        } else {
+          bzero(&val_stdef_dummy, sizeof(val_stdef_dummy));
+          val_stdef = &val_stdef_dummy;
+        }
+        unc::tclib::TcApiCommonRet tclib_ret =
+            tclib->TcLibWriteKeyValueDataInfo(
+            res->ctrlr_id, ckv->get_key_type(), *key_stdef, *val_stdef,
+            ckv->get_key(), ((cv) ? cv->get_val() : NULL));
+        if (tclib_ret != unc::tclib::TC_API_COMMON_SUCCESS) {
+          UPLL_LOG_DEBUG("Failed to write to tclib %d", tclib_ret);
           return false;
         }
-      } else {
-        bzero(&val_stdef_dummy, sizeof(val_stdef_dummy));
-        val_stdef = &val_stdef_dummy;
-      }
-      unc::tclib::TcApiCommonRet tclib_ret = tclib->TcLibWriteKeyValueDataInfo(
-          res->ctrlr_id, ckv->get_key_type(), *key_stdef, *val_stdef,
-          ckv->get_key(), ((cv) ? cv->get_val() : NULL));
-      if (tclib_ret != unc::tclib::TC_API_COMMON_SUCCESS) {
-        UPLL_LOG_DEBUG("Failed to write to tclib %d", tclib_ret);
-        return false;
       }
     }
   }
@@ -513,9 +595,12 @@ TcCommonRet TcLibIntfImpl::HandleCommonTxDriverResult(
   if (GetTxResult(&driver_result, &tx_res_list) == false) {
     UPLL_LOG_DEBUG("Failed to convert driver result");
     PFC_ASSERT(tx_res_list.empty() == true);
+    upll_rc_t urc = UPLL_RC_ERR_GENERIC;
+    WriteUpllErrorBlock(&urc);
     return unc::tclib::TC_FAILURE;
   }
 
+
   // Now call tx_mgr's commit handler
   upll_rc_t urc;
   switch (tx_phase) {
@@ -557,6 +642,7 @@ TcCommonRet TcLibIntfImpl::HandleCommonTxDriverResult(
            unc::tclib::TC_FAILURE);
   } else {
     UPLL_LOG_TRACE("ConfigMgr failed to process the commit result %d", urc);
+    WriteUpllErrorBlock(&urc);
     tcr = unc::tclib::TC_FAILURE;
   }
   // free tx_res_list and also compute final TC result;
@@ -569,16 +655,15 @@ TcCommonRet TcLibIntfImpl::HandleCommonTxDriverResult(
     // For Global-Commit phase, tcr is not dependent on the controller result.
     if (tcr == unc::tclib::TC_SUCCESS) {
       if (tx_phase == unc::tclib::TC_COMMIT_VOTE_PHASE) {
-        if ((tx_res->ctrlr_orig_result != DRVAPI_RESPONSE_SUCCESS) &&
-            (tx_res->ctrlr_orig_result !=
-             DRVAPI_RESPONSE_CONTROLLER_DISCONNECTED)) {
-          /* Assumption: If err is DRVAPI_RESPONSE_NOT_SENT_TO_CONTROLLER, then
+        if ((tx_res->ctrlr_orig_result != UNC_RC_SUCCESS) &&
+            (tx_res->ctrlr_orig_result != UNC_RC_CTR_DISCONNECTED)) {
+          /* Assumption: If err is UNC_RC_REQ_NOT_SENT_TO_CTR, then
            * atleast one controller failed the vote. */
           tcr = unc::tclib::TC_FAILURE;
         }
       } else if (tx_phase == unc::tclib::TC_AUDIT_VOTE_PHASE) {
-        if (tx_res->ctrlr_orig_result != DRVAPI_RESPONSE_SUCCESS) {
-          /* Note: If err is DRVAPI_RESPONSE_CONTROLLER_DISCONNECTED, then
+        if (tx_res->ctrlr_orig_result != UNC_RC_SUCCESS) {
+          /* Note: If err is UNC_RC_CTR_DISCONNECTED, then
            * Audit for the controller is incomplete, so tcr is failure. */
           tcr = unc::tclib::TC_FAILURE;
         }
@@ -612,6 +697,7 @@ TcCommonRet TcLibIntfImpl::HandleAuditStart(uint32_t session_id,
   if (urc != UPLL_RC_SUCCESS) {
     ucm_->OnAuditEnd(controller_id.c_str(), false);
   }
+  WriteUpllErrorBlock(&urc);
   return ((urc == UPLL_RC_SUCCESS) ? unc::tclib::TC_SUCCESS :
           unc::tclib::TC_FAILURE);
 }
@@ -623,6 +709,7 @@ TcCommonRet TcLibIntfImpl::HandleAuditEnd(uint32_t session_id,
                                           TcAuditResult audit_result) {
   UPLL_LOG_TRACE("AuditEnd result: %d", audit_result);
   upll_rc_t urc = ucm_->OnAuditEnd(controller_id.c_str(), false);
+  WriteUpllErrorBlock(&urc);
   return ((urc == UPLL_RC_SUCCESS) ? unc::tclib::TC_SUCCESS :
           unc::tclib::TC_FAILURE);
 }
@@ -631,7 +718,34 @@ TcCommonRet TcLibIntfImpl::HandleAuditEnd(uint32_t session_id,
 TcCommonRet TcLibIntfImpl::HandleAuditTransactionStart(
     uint32_t session_id, unc_keytype_ctrtype_t ctr_type,
     std::string controller_id) {
-  upll_rc_t urc = ucm_->OnAuditTxStart(controller_id.c_str(), session_id, 0);
+  ConfigKeyVal *err_ckv =  NULL;
+  upll_rc_t urc = ucm_->OnAuditTxStart(controller_id.c_str(),
+                                       session_id,
+                                       0,
+                                       &err_ckv);
+  if (urc != UPLL_RC_SUCCESS) {
+    // If local error in UPLL, send it to TC with controller id as ""
+    const char *ctrlr_id = kUpllCtrlrId;
+    if (err_ckv != NULL) {
+      if (err_ckv->get_user_data()) {
+        ctrlr_id = reinterpret_cast<char *>(
+            (reinterpret_cast<unc::upll::ipc_util::key_user_data*>(
+                    err_ckv->get_user_data()))->ctrlr_id);
+        if (ctrlr_id == NULL) {
+          UPLL_LOG_INFO("Controller Id is null");
+          ctrlr_id = kUpllCtrlrId;
+        }
+        UPLL_LOG_TRACE("Controller Id set in response: %s", ctrlr_id);
+      }
+    }
+    list<CtrlrTxResult*> tx_res_list;
+    CtrlrTxResult unc_res(ctrlr_id, urc, urc);
+    unc_res.err_ckv = err_ckv;   // err_ckv will be freed by CtlrTxResult
+    tx_res_list.push_back(&unc_res);
+    if (WriteBackTxResult(tx_res_list) != true) {
+      urc = UPLL_RC_ERR_GENERIC;
+    }
+  }
   return ((urc == UPLL_RC_SUCCESS) ? unc::tclib::TC_SUCCESS :
           unc::tclib::TC_FAILURE);
 }
@@ -641,6 +755,7 @@ TcCommonRet TcLibIntfImpl::HandleAuditTransactionEnd(
     uint32_t session_id, unc_keytype_ctrtype_t ctr_type,
     std::string controller_id, TcTransEndResult end_result) {
   upll_rc_t urc = ucm_->OnAuditTxEnd(controller_id.c_str());
+  WriteUpllErrorBlock(&urc);
   return ((urc == UPLL_RC_SUCCESS) ? unc::tclib::TC_SUCCESS :
           unc::tclib::TC_FAILURE);
 }
@@ -655,6 +770,7 @@ TcCommonRet TcLibIntfImpl::HandleAuditVoteRequest(
   if (urc == UPLL_RC_SUCCESS) {
     urc = FillTcDriverInfoMap(&driver_info, affected_ctrlr_list, true);
   }
+  WriteUpllErrorBlock(&urc);
   return ((urc == UPLL_RC_SUCCESS) ? unc::tclib::TC_SUCCESS :
           unc::tclib::TC_FAILURE);
 }
@@ -669,13 +785,14 @@ TcCommonRet TcLibIntfImpl::HandleAuditGlobalCommit(
   if (urc == UPLL_RC_SUCCESS) {
     urc = FillTcDriverInfoMap(&driver_info, affected_ctrlr_list, true);
     if (urc != UPLL_RC_SUCCESS) {
-      pfc_log_fatal("Failed to fill TcDriverInfoMap in AuditGlobalCommit");
+      UPLL_LOG_FATAL("Failed to fill TcDriverInfoMap in AuditGlobalCommit");
     }
   }
+  WriteUpllErrorBlock(&urc);
   audit_result = ((urc == UPLL_RC_SUCCESS) ? unc::tclib::TC_AUDIT_SUCCESS :
                   unc::tclib::TC_AUDIT_FAILURE);
   return ((urc == UPLL_RC_SUCCESS) ? unc::tclib::TC_SUCCESS :
-                  unc::tclib::TC_FAILURE);
+          unc::tclib::TC_FAILURE);
 }
 
 TcCommonRet TcLibIntfImpl::HandleAuditDriverResult(
@@ -695,7 +812,7 @@ TcCommonRet TcLibIntfImpl::HandleAuditDriverResult(
       /* Iterate over each controller status to find audit_result */
       for (TcCommitPhaseResult::const_iterator ctr_it = driver_result.begin();
            ctr_it != driver_result.end(); ++ctr_it) {
-        if (ctr_it->resp_code != DRVAPI_RESPONSE_SUCCESS) {
+        if (ctr_it->resp_code != UNC_RC_SUCCESS) {
           /* audit_result is failure even if ctrlr is disconnected or
            * vote request not sent to controller. */
           audit_result = unc::tclib::TC_AUDIT_FAILURE;
@@ -786,10 +903,10 @@ TcCommonRet TcLibIntfImpl::HandleAuditConfig(unc_keytype_datatype_t db_target,
     case TC_OP_DRIVER_AUDIT:
       {
         /* Always done as part transitioning to ACT, so no need to do it here.
-        upll_rc_t urc = ucm_->OnAuditEnd("TcRecovery", true);
-        return ((urc == UPLL_RC_SUCCESS) ? unc::tclib::TC_SUCCESS :
-                unc::tclib::TC_FAILURE);
-        */
+           upll_rc_t urc = ucm_->OnAuditEnd("TcRecovery", true);
+           return ((urc == UPLL_RC_SUCCESS) ? unc::tclib::TC_SUCCESS :
+           unc::tclib::TC_FAILURE);
+           */
         return unc::tclib::TC_SUCCESS;
       }
       break;
@@ -825,11 +942,11 @@ TcCommonRet TcLibIntfImpl::HandleSetupComplete() {
  * Invoked from TC to detect the driver id for a controller
  */
 /*
-unc_keytype_ctrtype_t TcLibIntfImpl::HandleGetDriverId(
-    std::string controller_id) {
-  // As per TC design, this API shouldn't have been called.
-  UPLL_LOG_DEBUG("Shouldn't be here.");
-  return UNC_CT_UNKNOWN;
+   unc_keytype_ctrtype_t TcLibIntfImpl::HandleGetDriverId(
+   std::string controller_id) {
+// As per TC design, this API shouldn't have been called.
+UPLL_LOG_DEBUG("Shouldn't be here.");
+return UNC_CT_UNKNOWN;
 }
 */
 
@@ -858,7 +975,25 @@ unc_keytype_ctrtype_t TcLibIntfImpl::HandleGetControllerType() {
   UPLL_LOG_DEBUG("Shouldn't be here.");
   return UNC_CT_UNKNOWN;
 }
-                                                                       // NOLINT
-}  // config_momgr
-}  // upll
-}  // unc
+
+/**
+ * @brief      Write the logical error block to TC in case of internal error
+ * @param[in]  upll response code urc
+ */
+void TcLibIntfImpl::WriteUpllErrorBlock(upll_rc_t *urc) {
+  if (*urc != UPLL_RC_SUCCESS) {
+    const char *ctrlr_id = kUpllCtrlrId;
+    list<CtrlrTxResult*> tx_res_list;
+    CtrlrTxResult unc_res(ctrlr_id, *urc, *urc);
+    unc_res.err_ckv = NULL;
+    tx_res_list.push_back(&unc_res);
+    if (WriteBackTxResult(tx_res_list) != true) {
+      *urc = UPLL_RC_ERR_GENERIC;
+    }
+  }
+}
+
+// NOLINT
+}  // namespace config_momgr
+}  // namespace upll
+}  // namespace unc
index 80a0ca17d4f82f1a1300bae48ea60807f6399bae..9ee5982d7fc5130b8be33a08507a10424cb07a9c 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -90,6 +90,13 @@ class TcLibIntfImpl : public unc::tclib::TcLibInterface {
       uint32_t session_id, unc_keytype_ctrtype_t ctr_type,
       std::string controller_id);
 
+  virtual TcCommonRet HandleAuditStart(
+      uint32_t session_id, unc_keytype_ctrtype_t ctr_type,
+      std::string controller_id, pfc_bool_t force_reconnect) {
+    PFC_ASSERT(0);  // This function should never have been called
+    return unc::tclib::TC_FAILURE;
+  }
+
   virtual TcCommonRet HandleAuditEnd(
       uint32_t session_id, unc_keytype_ctrtype_t ctr_type,
       std::string controller_id, TcAuditResult audit_result);
@@ -133,59 +140,59 @@ class TcLibIntfImpl : public unc::tclib::TcLibInterface {
       uint32_t session_id, unc_keytype_ctrtype_t ctr_type,
       std::string controller_id, TcAuditOpAbortPhase fail_phase);
 
-  /** 
-   * @brief Save Configuration 
+  /**
+   * @brief Save Configuration
    */
   virtual TcCommonRet HandleSaveConfiguration(uint32_t session_id);
 
-  /** 
-   * @brief Abort Candidate Configuration 
+  /**
+   * @brief Abort Candidate Configuration
    */
   virtual TcCommonRet HandleAbortCandidate(uint32_t session_id,
                                            uint32_t config_id);
 
-  /** 
+  /**
    * @brief Clear Startup Configuration
    */
   virtual TcCommonRet HandleClearStartup(uint32_t session_id);
 
-  /** 
+  /**
    * @brief HandleAuditConfig DB
    */
   virtual TcCommonRet HandleAuditConfig(unc_keytype_datatype_t db_target,
                                         TcServiceType fail_oper);
-  /** 
+  /**
    * @brief Setup Configuration
    * Message sent to UPPL at the end of startup operation to send messages to
    * driver
    */
   virtual TcCommonRet HandleSetup();
 
-  /** 
+  /**
    * @brief Setup Complete
    * Message sent to UPPL during state changes
    */
   virtual TcCommonRet HandleSetupComplete();
 
-  /** 
+  /**
    * @brief Get Driver Id
    * Invoked from TC to detect the driver id for a controller
    */
   // virtual unc_keytype_ctrtype_t HandleGetDriverId(std::string controller_id);
 
-  /** 
-   * @brief      Get controller type invoked from TC to detect the controller type 
+  /**
+   * @brief      Get controller type invoked from TC to detect the controller type
    *             for a controller
    * @param[in]  controller_id controller id intended for audit
    * @retval     openflow/overlay/legacy if controller id matches
-   * @retval     UNC_CT_UNKNOWN if controller id does not belong to 
+   * @retval     UNC_CT_UNKNOWN if controller id does not belong to
    *             any of controller type
    */
   virtual unc_keytype_ctrtype_t HandleGetControllerType(
       std::string controller_id);
 
-  /** 
-   * @brief Get Controller Type 
+  /**
+   * @brief Get Controller Type
    * Invoked from TC to detect the type of the controller
    * Intended for the driver modules
    */
@@ -231,6 +238,7 @@ class TcLibIntfImpl : public unc::tclib::TcLibInterface {
                           std::list<CtrlrTxResult*> *tx_res_list);
   static upll_rc_t DriverResultCodeToTxURC(unc_keytype_ctrtype_t ctrlr_type,
                                            int driver_result_code);
+  static void WriteUpllErrorBlock(upll_rc_t *urc);
 
   UpllConfigMgr *ucm_;
   uint32_t session_id_;
@@ -239,9 +247,9 @@ class TcLibIntfImpl : public unc::tclib::TcLibInterface {
   bool shutting_down_;
   pfc::core::ReadWriteLock sys_state_rwlock_;
 };
-                                                                       // NOLINT
-}  // config_momgr
-}  // upll
-}  // unc
-                                                                       // NOLINT
+// NOLINT
+}  // namespace config_momgr
+}  // namespace upll
+}  // namespace unc
+// NOLINT
 #endif  // UPLL_TCLIB_INTF_IMPL_HH_
index 47b50d2d8fa76791473a6a85594d815c6e97f033..19dbeeac311511b5f397e7c0e9a9d6c1a0470f58 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -20,42 +20,55 @@ namespace upll {
 namespace config_momgr {
 
 using unc::upll::dal::DalOdbcMgr;
+using namespace unc::upll::upll_util;
 
 #define CALL_MOMGRS_PREORDER(func, ...)                                     \
-  {                                                                         \
-    const std::list<unc_key_type_t> *lst = cktt_.get_preorder_list();       \
-    for (std::list<unc_key_type_t>::const_iterator it = lst->begin();       \
-         it != lst->end(); it++) {                                          \
-      const unc_key_type_t kt(*it);                                         \
-      if (upll_kt_momgrs_.count(kt) > 0) {                                  \
-        UPLL_LOG_DEBUG("KT: %u; kt_name: %s", kt, kt_name_map_[kt].c_str());\
-        MoManager *momgr = upll_kt_momgrs_[kt];                             \
-        urc = momgr->func(kt, __VA_ARGS__);                                 \
-        if (urc != UPLL_RC_SUCCESS) {                                       \
-          UPLL_LOG_WARN("Error = %d, KT: %s", urc, kt_name_map_[kt].c_str());\
-          break;                                                            \
-        }                                                                   \
-      }                                                                     \
-    }                                                                       \
-  }
+{                                                                         \
+  const std::list<unc_key_type_t> *lst = cktt_.get_preorder_list();       \
+  for (std::list<unc_key_type_t>::const_iterator it = lst->begin();       \
+       it != lst->end(); it++) {                                          \
+    const unc_key_type_t kt(*it);                                         \
+    std::map<unc_key_type_t, MoManager*>::iterator momgr_it =          \
+    upll_kt_momgrs_.find(kt);                                  \
+    if (momgr_it != upll_kt_momgrs_.end()) {                           \
+      UPLL_LOG_DEBUG("KT: %u; kt_name: %s", kt, kt_name_map_[kt].c_str());\
+      MoManager *momgr = momgr_it->second;                             \
+      urc = momgr->func(kt, __VA_ARGS__);                                 \
+      if (urc != UPLL_RC_SUCCESS) {                                       \
+        UPLL_LOG_WARN("Error = %d, KT: %s", urc, kt_name_map_[kt].c_str());\
+        break;                                                            \
+      }                                                                   \
+      if ((urc = ContinueActiveProcess()) != UPLL_RC_SUCCESS) {           \
+        UPLL_LOG_WARN("Error = %d, KT: %s", urc, kt_name_map_[kt].c_str());\
+        break;                                                            \
+      }                                                                   \
+    }                                                                     \
+  }                                                                       \
+}
 
 #define CALL_MOMGRS_REVERSE_ORDER(func, ...)                                \
-  {                                                                         \
-    const std::list<unc_key_type_t> *lst = cktt_.get_reverse_postorder_list();\
-    for (std::list<unc_key_type_t>::const_iterator it = lst->begin();       \
-         it != lst->end(); it++) {                                          \
-      const unc_key_type_t kt(*it);                                         \
-      if (upll_kt_momgrs_.count(kt) > 0) {                                  \
-        UPLL_LOG_DEBUG("KT: %u; kt_name: %s", kt, kt_name_map_[kt].c_str());\
-        MoManager *momgr = upll_kt_momgrs_[kt];                             \
-        urc = momgr->func(kt, __VA_ARGS__);                                 \
-        if (urc != UPLL_RC_SUCCESS) {                                       \
-          UPLL_LOG_INFO("Error = %d, KT: %s", urc, kt_name_map_[kt].c_str());\
-          break;                                                            \
-        }                                                                   \
-      }                                                                     \
-    }                                                                       \
-  }
+{                                                                         \
+  const std::list<unc_key_type_t> *lst = cktt_.get_reverse_postorder_list();\
+  for (std::list<unc_key_type_t>::const_iterator it = lst->begin();       \
+       it != lst->end(); it++) {                                          \
+    const unc_key_type_t kt(*it);                                         \
+    std::map<unc_key_type_t, MoManager*>::iterator momgr_it =          \
+    upll_kt_momgrs_.find(kt);                                  \
+    if (momgr_it != upll_kt_momgrs_.end()) {                           \
+      UPLL_LOG_DEBUG("KT: %u; kt_name: %s", kt, kt_name_map_[kt].c_str());\
+      MoManager *momgr = momgr_it->second;                             \
+      urc = momgr->func(kt, __VA_ARGS__);                                 \
+      if (urc != UPLL_RC_SUCCESS) {                                       \
+        UPLL_LOG_WARN("Error = %d, KT: %s", urc, kt_name_map_[kt].c_str());\
+        break;                                                            \
+      }                                                                   \
+      if ((urc = ContinueActiveProcess()) != UPLL_RC_SUCCESS) {           \
+        UPLL_LOG_WARN("Error = %d, KT: %s", urc, kt_name_map_[kt].c_str());\
+        break;                                                            \
+      }                                                                   \
+    }                                                                     \
+  }                                                                       \
+}
 
 upll_rc_t UpllConfigMgr::ValidateCommit(const char *caller) {
   UPLL_FUNC_TRACE;
@@ -98,7 +111,7 @@ upll_rc_t UpllConfigMgr::ValidateAudit(const char *caller,
   }
   if (0 != audit_ctrlr_id_.compare(req_ctrlr_id)) {
     UPLL_LOG_WARN("%s: Requested controller: %s, audit_ctrlr_id_: %s",
-                caller, req_ctrlr_id, audit_ctrlr_id_.c_str());
+                  caller, req_ctrlr_id, audit_ctrlr_id_.c_str());
     return UPLL_RC_ERR_NOT_ALLOWED_AT_THIS_TIME;
   }
 
@@ -128,14 +141,15 @@ upll_rc_t UpllConfigMgr::OnTxStart(uint32_t session_id, uint32_t config_id,
                              UPLL_DT_CANDIDATE, ConfigLock::CFG_WRITE_LOCK,
                              UPLL_DT_RUNNING, ConfigLock::CFG_READ_LOCK);
 
-  DalOdbcMgr *dbinst = &config_rw_dom_;
+  DalOdbcMgr *dbinst = dbcm_->GetConfigRwConn();
 
   CALL_MOMGRS_REVERSE_ORDER(TxUpdateController, session_id, config_id,
                             kUpllUcpDelete, &affected_ctrlr_set_, dbinst,
                             err_ckv);
 
   if (urc != UPLL_RC_SUCCESS) {
-    DalClose(dbinst, false, __FUNCTION__);
+    dbcm_->DalTxClose(dbinst, false);
+    dbcm_->ReleaseRwConn(dbinst);
     return urc;
   }
 
@@ -143,7 +157,8 @@ upll_rc_t UpllConfigMgr::OnTxStart(uint32_t session_id, uint32_t config_id,
                        kUpllUcpCreate, &affected_ctrlr_set_, dbinst, err_ckv);
 
   if (urc != UPLL_RC_SUCCESS) {
-    DalClose(dbinst, false, __FUNCTION__);
+    dbcm_->DalTxClose(dbinst, false);
+    dbcm_->ReleaseRwConn(dbinst);
     return urc;
   }
 
@@ -151,26 +166,36 @@ upll_rc_t UpllConfigMgr::OnTxStart(uint32_t session_id, uint32_t config_id,
                        kUpllUcpUpdate, &affected_ctrlr_set_, dbinst, err_ckv);
 
   if (urc != UPLL_RC_SUCCESS) {
-    DalClose(dbinst, false, __FUNCTION__);
+    dbcm_->DalTxClose(dbinst, false);
+    dbcm_->ReleaseRwConn(dbinst);
     return urc;
   }
 
   unc_key_type_t phase2_kts[] = { UNC_KT_POLICING_PROFILE_ENTRY,
-                                  UNC_KT_POLICING_PROFILE,
-                                  UNC_KT_FLOWLIST_ENTRY,
-                                  UNC_KT_FLOWLIST
-                                };
+    UNC_KT_POLICING_PROFILE,
+    UNC_KT_FLOWLIST_ENTRY,
+    UNC_KT_FLOWLIST
+  };
   for (unsigned int i = 0; i < sizeof(phase2_kts)/sizeof(phase2_kts[0]); i++) {
     const unc_key_type_t phase2_kt(phase2_kts[i]);
-    if (upll_kt_momgrs_.count(phase2_kt) > 0) {
+    std::map<unc_key_type_t, MoManager*>::iterator momgr_it =
+        upll_kt_momgrs_.find(phase2_kt);
+    if (momgr_it != upll_kt_momgrs_.end()) {
       UPLL_LOG_DEBUG("KT: %u; kt_name: %s",
                      phase2_kt, kt_name_map_[phase2_kt].c_str());
-      MoManager *momgr = upll_kt_momgrs_[phase2_kt];
+      MoManager *momgr = momgr_it->second;
       if (momgr == NULL)
         continue;
-      urc = momgr->TxUpdateController(phase2_kt, session_id, config_id,
-                                      kUpllUcpDelete2, &affected_ctrlr_set_, dbinst,
+      urc = momgr->TxUpdateController(phase2_kt,
+                                      session_id,
+                                      config_id,
+                                      kUpllUcpDelete2,
+                                      &affected_ctrlr_set_,
+                                      dbinst,
                                       err_ckv);
+      if (urc == UPLL_RC_SUCCESS) {
+        urc = ContinueActiveProcess();
+      }
       if (urc != UPLL_RC_SUCCESS) {
         UPLL_LOG_WARN("Error = %d, KT: %s",
                       urc, kt_name_map_[phase2_kt].c_str());
@@ -179,7 +204,8 @@ upll_rc_t UpllConfigMgr::OnTxStart(uint32_t session_id, uint32_t config_id,
     }
   }
 
-  upll_rc_t db_urc = DalClose(dbinst, (urc == UPLL_RC_SUCCESS), __FUNCTION__);
+  upll_rc_t db_urc = dbcm_->DalTxClose(dbinst, (urc == UPLL_RC_SUCCESS));
+  dbcm_->ReleaseRwConn(dbinst);
   if (urc == UPLL_RC_SUCCESS) {
     urc = db_urc;
   }
@@ -189,7 +215,8 @@ upll_rc_t UpllConfigMgr::OnTxStart(uint32_t session_id, uint32_t config_id,
 
 upll_rc_t UpllConfigMgr::OnAuditTxStart(const char *ctrlr_id,
                                         uint32_t session_id,
-                                        uint32_t config_id) {
+                                        uint32_t config_id,
+                                        ConfigKeyVal **err_ckv) {
   UPLL_FUNC_TRACE;
   upll_rc_t urc = UPLL_RC_ERR_GENERIC;
 
@@ -201,70 +228,84 @@ upll_rc_t UpllConfigMgr::OnAuditTxStart(const char *ctrlr_id,
                              UPLL_DT_AUDIT, ConfigLock::CFG_READ_LOCK,
                              UPLL_DT_RUNNING, ConfigLock::CFG_READ_LOCK);
 
-  DalOdbcMgr *dbinst = &config_rw_dom_;
+  DalOdbcMgr *dbinst = dbcm_->GetConfigRwConn();
 
   affected_ctrlr_set_.clear();
 
-  bool ctrlr_affected = false;
+  KTxCtrlrAffectedState ctrlr_affected = kCtrlrAffectedNoDiff;
+  audit_ctrlr_affected_state_ = ctrlr_affected;
   CALL_MOMGRS_REVERSE_ORDER(AuditUpdateController, ctrlr_id, session_id,
-                            config_id, kUpllUcpDelete, &ctrlr_affected,
-                            dbinst);
+                            config_id, kUpllUcpDelete, dbinst,
+                            err_ckv, &ctrlr_affected);
   if (urc != UPLL_RC_SUCCESS) {
-    DalClose(dbinst, false, __FUNCTION__);
+    dbcm_->DalTxClose(dbinst, false);
+    dbcm_->ReleaseRwConn(dbinst);
     return urc;
   }
 
   CALL_MOMGRS_PREORDER(AuditUpdateController, ctrlr_id, session_id, config_id,
-                       kUpllUcpCreate, &ctrlr_affected, dbinst);
+                       kUpllUcpCreate, dbinst, err_ckv,
+                       &ctrlr_affected);
   if (urc != UPLL_RC_SUCCESS) {
-    DalClose(dbinst, false, __FUNCTION__);
+    dbcm_->DalTxClose(dbinst, false);
+    dbcm_->ReleaseRwConn(dbinst);
     return urc;
   }
 
   CALL_MOMGRS_PREORDER(AuditUpdateController, ctrlr_id, session_id, config_id,
-                       kUpllUcpUpdate, &ctrlr_affected, dbinst);
+                       kUpllUcpUpdate, dbinst, err_ckv, &ctrlr_affected);
 
   if (urc != UPLL_RC_SUCCESS) {
-    DalClose(dbinst, false, __FUNCTION__);
+    dbcm_->DalTxClose(dbinst, false);
+    dbcm_->ReleaseRwConn(dbinst);
     return urc;
   }
 
   unc_key_type_t phase2_kts[] = { UNC_KT_POLICING_PROFILE_ENTRY,
-                                  UNC_KT_POLICING_PROFILE,
-                                  UNC_KT_FLOWLIST_ENTRY,
-                                  UNC_KT_FLOWLIST
-                                };
+    UNC_KT_POLICING_PROFILE,
+    UNC_KT_FLOWLIST_ENTRY,
+    UNC_KT_FLOWLIST
+  };
   for (unsigned int i = 0; i < sizeof(phase2_kts)/sizeof(phase2_kts[0]); i++) {
-      const unc_key_type_t phase2_kt(phase2_kts[i]);
-      if (upll_kt_momgrs_.count(phase2_kt) > 0) {
-        UPLL_LOG_DEBUG("KT: %u; kt_name: %s", phase2_kt,
-                       kt_name_map_[phase2_kt].c_str());
-        MoManager *momgr = upll_kt_momgrs_[phase2_kt];
-        if (momgr == NULL)
-          continue;
-        urc = momgr->AuditUpdateController(phase2_kt, ctrlr_id, session_id,
-                                           config_id, kUpllUcpDelete2,
-                                           &ctrlr_affected, dbinst);
-        if (urc != UPLL_RC_SUCCESS) {
-          UPLL_LOG_WARN("Error = %d, KT: %s", urc,
-                        kt_name_map_[phase2_kt].c_str());
-          break;
-        }
+    const unc_key_type_t phase2_kt(phase2_kts[i]);
+    std::map<unc_key_type_t, MoManager*>::iterator momgr_it =
+        upll_kt_momgrs_.find(phase2_kt);
+    if (momgr_it != upll_kt_momgrs_.end()) {
+      UPLL_LOG_DEBUG("KT: %u; kt_name: %s", phase2_kt,
+                     kt_name_map_[phase2_kt].c_str());
+      MoManager *momgr = momgr_it->second;
+      if (momgr == NULL)
+        continue;
+      urc = momgr->AuditUpdateController(phase2_kt, ctrlr_id, session_id,
+                                         config_id, kUpllUcpDelete2,
+                                         dbinst, err_ckv, &ctrlr_affected);
+      if (urc == UPLL_RC_SUCCESS) {
+        urc = ContinueActiveProcess();
       }
+      if (urc != UPLL_RC_SUCCESS) {
+        UPLL_LOG_WARN("Error = %d, KT: %s", urc,
+                      kt_name_map_[phase2_kt].c_str());
+        break;
+      }
+    }
   }
 
-  upll_rc_t db_urc = DalClose(dbinst, (urc == UPLL_RC_SUCCESS), __FUNCTION__);
+  upll_rc_t db_urc = dbcm_->DalTxClose(dbinst, (urc == UPLL_RC_SUCCESS));
+  dbcm_->ReleaseRwConn(dbinst);
   if (urc == UPLL_RC_SUCCESS) {
     urc = db_urc;
   }
 
   if (urc == UPLL_RC_SUCCESS) {
-    if (ctrlr_affected) {
+    audit_ctrlr_affected_state_ = ctrlr_affected;
+    if (ctrlr_affected == kCtrlrAffectedConfigDiff) {
       audit_mutex_lock_.lock();
       affected_ctrlr_set_.insert(audit_ctrlr_id_);
       audit_mutex_lock_.unlock();
+    } else if (ctrlr_affected == kCtrlrAffectedOnlyCSDiff) {
+      UPLL_LOG_INFO("Audit - only cs diff");
     } else {
-      UPLL_LOG_DEBUG("No change found");
+      UPLL_LOG_INFO("No audit diff");
     }
   }
 
@@ -284,11 +325,12 @@ upll_rc_t UpllConfigMgr::OnTxVote(
                              UPLL_DT_CANDIDATE, ConfigLock::CFG_READ_LOCK,
                              UPLL_DT_RUNNING, ConfigLock::CFG_READ_LOCK);
 
-  DalOdbcMgr *dbinst = &config_rw_dom_;
+  DalOdbcMgr *dbinst = dbcm_->GetConfigRwConn();
 
   CALL_MOMGRS_PREORDER(TxVote, dbinst, err_ckv);
 
-  upll_rc_t db_urc = DalClose(dbinst, (urc == UPLL_RC_SUCCESS), __FUNCTION__);
+  upll_rc_t db_urc = dbcm_->DalTxClose(dbinst, (urc == UPLL_RC_SUCCESS));
+  dbcm_->ReleaseRwConn(dbinst);
   if (urc == UPLL_RC_SUCCESS) {
     urc = db_urc;
   }
@@ -324,11 +366,12 @@ upll_rc_t UpllConfigMgr::OnTxVoteCtrlrStatus(
                              UPLL_DT_CANDIDATE, ConfigLock::CFG_READ_LOCK,
                              UPLL_DT_RUNNING, ConfigLock::CFG_READ_LOCK);
 
-  DalOdbcMgr *dbinst = &config_rw_dom_;
+  DalOdbcMgr *dbinst = dbcm_->GetConfigRwConn();
 
   CALL_MOMGRS_PREORDER(TxVoteCtrlrStatus, ctrlr_vote_status, dbinst);
 
-  upll_rc_t db_urc = DalClose(dbinst, (urc == UPLL_RC_SUCCESS), __FUNCTION__);
+  upll_rc_t db_urc = dbcm_->DalTxClose(dbinst, (urc == UPLL_RC_SUCCESS));
+  dbcm_->ReleaseRwConn(dbinst);
   if (urc == UPLL_RC_SUCCESS) {
     urc = db_urc;
   }
@@ -350,20 +393,21 @@ upll_rc_t UpllConfigMgr::OnAuditTxVoteCtrlrStatus(
                              UPLL_DT_AUDIT, ConfigLock::CFG_READ_LOCK,
                              UPLL_DT_RUNNING, ConfigLock::CFG_WRITE_LOCK);
 
-  DalOdbcMgr *dbinst = &config_rw_dom_;
+  DalOdbcMgr *dbinst = dbcm_->GetConfigRwConn();
 
   CALL_MOMGRS_PREORDER(AuditVoteCtrlrStatus, ctrlr_vote_status, dbinst);
 
   upll_rc_t db_urc;
-  if (UPLL_RC_SUCCESS != (db_urc = DalClose(dbinst, (urc == UPLL_RC_SUCCESS),
-                                             __FUNCTION__))) {
+  if (UPLL_RC_SUCCESS != (db_urc = dbcm_->DalTxClose(
+              dbinst, (urc == UPLL_RC_SUCCESS)))) {
+    dbcm_->ReleaseRwConn(dbinst);
     return ((urc != UPLL_RC_SUCCESS) ? urc : db_urc);
   }
+  dbcm_->ReleaseRwConn(dbinst);
 
   // Send an alarm
   if (ctrlr_vote_status->upll_ctrlr_result != UPLL_RC_SUCCESS &&
-      ctrlr_vote_status->upll_ctrlr_result !=
-      UPLL_RC_ERR_RESOURCE_DISCONNECTED) {
+      ctrlr_vote_status->upll_ctrlr_result != UPLL_RC_ERR_CTR_DISCONNECTED) {
     upll_rc_t ctrmgr_urc;
     bool config_invalid = false;
     if ((ctrmgr_urc = (CtrlrMgr::GetInstance()->IsConfigInvalid(
@@ -391,7 +435,7 @@ upll_rc_t UpllConfigMgr::OnTxGlobalCommit(
   UPLL_FUNC_TRACE;
   upll_rc_t urc;
   if (UPLL_RC_SUCCESS != (urc = ValidateCommit(__FUNCTION__))) {
-    pfc_log_fatal("TxGlobalCommit failed. Urc=%d", urc);
+    UPLL_LOG_FATAL("TxGlobalCommit failed. Urc=%d", urc);
     return urc;
   }
 
@@ -404,7 +448,7 @@ upll_rc_t UpllConfigMgr::OnAuditTxGlobalCommit(
   UPLL_FUNC_TRACE;
   upll_rc_t urc;
   if (UPLL_RC_SUCCESS != (urc = ValidateAudit(__FUNCTION__, ctrlr_id))) {
-    pfc_log_fatal("AuditTxGlobalCommit failed. Urc=%d", urc);
+    UPLL_LOG_FATAL("AuditTxGlobalCommit failed. Urc=%d", urc);
     return urc;
   }
 
@@ -435,15 +479,14 @@ upll_rc_t UpllConfigMgr::OnTxCommitCtrlrStatus(
                              UPLL_DT_RUNNING, ConfigLock::CFG_WRITE_LOCK);
   // TODO(a): Why do we need write lock on CANDIDATE?
 
-  DalOdbcMgr *dbinst = &config_rw_dom_;
+  DalOdbcMgr *dbinst = dbcm_->GetConfigRwConn();
 
   CALL_MOMGRS_PREORDER(TxCopyCandidateToRunning, ctrlr_commit_status, dbinst);
 
   if (urc == UPLL_RC_SUCCESS) {
     unc_key_type_t state_kts[] = { UNC_KT_VLINK, UNC_KT_VBR_IF,
-                                    UNC_KT_VRT_IF,
-                                    UNC_KT_VBRIDGE, UNC_KT_VROUTER,
-                                    UNC_KT_VTN };
+      UNC_KT_VRT_IF, UNC_KT_VBRIDGE,
+      UNC_KT_VROUTER, UNC_KT_VTN };
     for (unsigned int i = 0; i < sizeof(state_kts)/sizeof(state_kts[0]); i++) {
       MoManager *momgr = GetMoManager(state_kts[i]);
       if (momgr == NULL)
@@ -454,10 +497,15 @@ upll_rc_t UpllConfigMgr::OnTxCommitCtrlrStatus(
         UPLL_LOG_DEBUG("Failed to update status for KT %d", state_kts[i]);
         break;
       }
+      if ((urc = ContinueActiveProcess()) != UPLL_RC_SUCCESS) {
+        UPLL_LOG_WARN("Error = %d, TxUpdateDtState KT: %d", urc, state_kts[i]);
+        break;
+      }
     }
   }
 
-  upll_rc_t db_urc = DalClose(dbinst, (urc == UPLL_RC_SUCCESS), __FUNCTION__);
+  upll_rc_t db_urc = dbcm_->DalTxClose(dbinst, (urc == UPLL_RC_SUCCESS));
+  dbcm_->ReleaseRwConn(dbinst);
   if (urc == UPLL_RC_SUCCESS) {
     urc = db_urc;
   }
@@ -465,15 +513,17 @@ upll_rc_t UpllConfigMgr::OnTxCommitCtrlrStatus(
   if (urc == UPLL_RC_SUCCESS) {
     candidate_dirty_qc_lock_.lock();
     candidate_dirty_qc_ = false;
+    // Clearing the dirty flags(used for skipping DB Diff operation) if stored
+    dbinst->ClearDirty();
     candidate_dirty_qc_lock_.unlock();
-     // Send Config Notifications
-     ConfigNotifier::SendBufferedNotificationsToUpllUser();
+    // Send Config Notifications
+    ConfigNotifier::SendBufferedNotificationsToUpllUser();
   } else {
-     ConfigNotifier::CancelBufferedNotificationsToUpllUser();
+    ConfigNotifier::CancelBufferedNotificationsToUpllUser();
   }
 
   if (urc != UPLL_RC_SUCCESS) {
-    pfc_log_fatal("Committing candidate to running failed. Urc=%d", urc);
+    UPLL_LOG_FATAL("Committing candidate to running failed. Urc=%d", urc);
   }
   return urc;
 }
@@ -492,15 +542,17 @@ upll_rc_t UpllConfigMgr::OnAuditTxCommitCtrlrStatus(
                              UPLL_DT_AUDIT, ConfigLock::CFG_READ_LOCK,
                              UPLL_DT_RUNNING, ConfigLock::CFG_WRITE_LOCK);
 
-  DalOdbcMgr *dbinst = &config_rw_dom_;
+  DalOdbcMgr *dbinst = dbcm_->GetConfigRwConn();
 
   CALL_MOMGRS_PREORDER(AuditCommitCtrlrStatus, ctrlr_commit_status, dbinst);
 
   upll_rc_t db_urc;
-  if (UPLL_RC_SUCCESS != (db_urc = DalClose(dbinst, (urc == UPLL_RC_SUCCESS),
-                                            __FUNCTION__))) {
+  if (UPLL_RC_SUCCESS != (db_urc = dbcm_->DalTxClose(
+              dbinst, (urc == UPLL_RC_SUCCESS)))) {
+    dbcm_->ReleaseRwConn(dbinst);
     return ((urc != UPLL_RC_SUCCESS) ? urc : db_urc);
   }
+  dbcm_->ReleaseRwConn(dbinst);
 
   bool assert_alarm = (ctrlr_commit_status->upll_ctrlr_result ==
                        UPLL_RC_SUCCESS) ? false : true;
@@ -509,9 +561,8 @@ upll_rc_t UpllConfigMgr::OnAuditTxCommitCtrlrStatus(
   if ((ctrmgr_urc = (CtrlrMgr::GetInstance()->IsConfigInvalid(
                   ctrlr_commit_status->ctrlr_id.c_str(),
                   &alarm_exists))) != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Error in IsConfigInvalid(%s). Urc=%d",
-                   ctrlr_commit_status->ctrlr_id.c_str(),
-                   ctrmgr_urc);
+    UPLL_LOG_INFO("Error in IsConfigInvalid(%s). Urc=%d",
+                  ctrlr_commit_status->ctrlr_id.c_str(), ctrmgr_urc);
   } else {
     if (assert_alarm) {
       UPLL_LOG_ERROR("Audit failed for %s",
@@ -533,7 +584,7 @@ upll_rc_t UpllConfigMgr::OnAuditTxCommitCtrlrStatus(
   }
 
   if (urc != UPLL_RC_SUCCESS) {
-    pfc_log_fatal("AuditCommitCtrlrStatus failed. Urc=%d", urc);
+    UPLL_LOG_FATAL("AuditCommitCtrlrStatus failed. Urc=%d", urc);
   }
 
   return urc;
@@ -551,14 +602,18 @@ upll_rc_t UpllConfigMgr::OnTxEnd() {
                              UPLL_DT_CANDIDATE, ConfigLock::CFG_WRITE_LOCK,
                              UPLL_DT_RUNNING, ConfigLock::CFG_WRITE_LOCK);
 
-  DalOdbcMgr *dbinst = &config_rw_dom_;
+  DalOdbcMgr *dbinst = dbcm_->GetConfigRwConn();
 
   CALL_MOMGRS_PREORDER(TxEnd, dbinst);
 
-  upll_rc_t db_urc = DalClose(dbinst, (urc == UPLL_RC_SUCCESS), __FUNCTION__);
+  upll_rc_t db_urc = dbcm_->DalTxClose(dbinst, (urc == UPLL_RC_SUCCESS));
+  dbcm_->ReleaseRwConn(dbinst);
   if (urc == UPLL_RC_SUCCESS) {
     urc = db_urc;
   }
+  if (urc != UPLL_RC_SUCCESS) {
+    UPLL_LOG_FATAL("TxEnd failed. Urc=%d", urc);
+  }
 
   commit_mutex_lock_.lock();
   commit_in_progress_ = false;
@@ -566,10 +621,6 @@ upll_rc_t UpllConfigMgr::OnTxEnd() {
 
   affected_ctrlr_set_.clear();
 
-  if (urc != UPLL_RC_SUCCESS) {
-    pfc_log_fatal("TxEnd failed. Urc=%d", urc);
-  }
-
   return urc;
 }
 
@@ -592,7 +643,7 @@ upll_rc_t UpllConfigMgr::OnAuditStart(const char *ctrlr_id) {
 
   unc_keytype_ctrtype_t ctrlr_type;
   if (false == CtrlrMgr::GetInstance()->GetCtrlrType(
-      ctrlr_id, UPLL_DT_RUNNING, &ctrlr_type)) {
+          ctrlr_id, UPLL_DT_RUNNING, &ctrlr_type)) {
     UPLL_LOG_INFO("Unknown controller. Cannot do audit for %s ",
                   ctrlr_id);
     return UPLL_RC_ERR_NO_SUCH_INSTANCE;
@@ -609,7 +660,6 @@ upll_rc_t UpllConfigMgr::OnAuditStart(const char *ctrlr_id) {
   audit_mutex_lock_.unlock();
 
   if (UPLL_RC_SUCCESS != (urc = ValidateAudit(__FUNCTION__, ctrlr_id))) {
-    UPLL_LOG_INFO("Validate Audit Failed (err=%u)", urc);
     return urc;
   }
 
@@ -622,33 +672,65 @@ upll_rc_t UpllConfigMgr::OnAuditStart(const char *ctrlr_id) {
   return urc;
 }
 
+// UpllConfigMgr::OnAuditEnd() is called in two scenarios:
+// 1. In normal audit operation at the end of Audit process either successful
+// audit or failed audit. If updating to contorller failed, OnAuditEnd() is
+// locall called.
+// 2. During transition from Standby to Active.
 upll_rc_t UpllConfigMgr::OnAuditEnd(const char *ctrlr_id, bool sby2act_trans) {
   UPLL_FUNC_TRACE;
   upll_rc_t urc = UPLL_RC_ERR_GENERIC;
 
   if (!sby2act_trans) {
     if (UPLL_RC_SUCCESS != (urc = ValidateAudit(__FUNCTION__, ctrlr_id))) {
-      UPLL_LOG_INFO("Validate Audit failed. (urc = %u)", urc);
       return urc;
     }
+    // If only cs status is diffrent in the configuration then the
+    // Call TxCommitCtrlrStatus to Update the config Status
+    // During IMPORT->MERGE->COMMIT->AUDIT case, TC jumpt from
+    // AuditTxStart to AuditEnd sice  there is no diff in the
+    // configurations except cs-status in this case.
+    //  In such case the configuration is not being sent to the controller
+    //  during AUDIT operation
+    if (audit_ctrlr_affected_state_ == kCtrlrAffectedOnlyCSDiff) {
+      // Reset the audit controller affected state. Without reset,
+      // stale value is present during failover
+      audit_ctrlr_affected_state_ = kCtrlrAffectedNoDiff;
+      CtrlrCommitStatus ccs(ctrlr_id, UPLL_RC_SUCCESS, UPLL_RC_SUCCESS);
+      urc = OnAuditTxCommitCtrlrStatus(&ccs);
+      if (urc != UPLL_RC_SUCCESS) {
+        UPLL_LOG_FATAL("Failed to update config status in AuditEnd, Urc=%u",
+                       urc);
+        return urc;
+      }
+    }
   }
+  // Reset the audit controller affected state. Without reset,
+  // stale value is present during failover
+  audit_ctrlr_affected_state_ = kCtrlrAffectedNoDiff;
 
   ScopedConfigLock scfg_lock(cfg_lock_,
                              UPLL_DT_AUDIT, ConfigLock::CFG_WRITE_LOCK);
 
-  DalOdbcMgr *dbinst = &config_rw_dom_;
+  DalOdbcMgr *dbinst = dbcm_->GetConfigRwConn();
 
-  CALL_MOMGRS_PREORDER(AuditEnd, ctrlr_id, dbinst);
+  CALL_MOMGRS_REVERSE_ORDER(AuditEnd, ctrlr_id, dbinst);
 
   if (urc != UPLL_RC_SUCCESS) {
-    pfc_log_fatal("AuditEnd failed. Error:%d", urc);
+    UPLL_LOG_FATAL("AuditEnd failed. Error:%d", urc);
   }
 
-  upll_rc_t db_urc = DalClose(dbinst, (urc == UPLL_RC_SUCCESS), __FUNCTION__);
+  upll_rc_t db_urc = dbcm_->DalTxClose(dbinst, (urc == UPLL_RC_SUCCESS));
+  dbcm_->ReleaseRwConn(dbinst);
   if (urc == UPLL_RC_SUCCESS) {
     urc = db_urc;
   }
 
+  if (urc != UPLL_RC_SUCCESS) {
+    UPLL_LOG_FATAL("AuditEnd failed. Urc=%d", urc);
+    return urc;
+  }
+
   audit_mutex_lock_.lock();
   audit_in_progress_ = false;
   audit_ctrlr_id_ = "";
@@ -656,10 +738,6 @@ upll_rc_t UpllConfigMgr::OnAuditEnd(const char *ctrlr_id, bool sby2act_trans) {
 
   affected_ctrlr_set_.clear();
 
-  if (urc != UPLL_RC_SUCCESS) {
-    pfc_log_fatal("AuditEnd failed. Urc=%d", urc);
-  }
-
   return urc;
 }
 
@@ -684,22 +762,44 @@ upll_rc_t UpllConfigMgr::OnLoadStartup() {
                              UPLL_DT_IMPORT, ConfigLock::CFG_WRITE_LOCK,
                              UPLL_DT_AUDIT, ConfigLock::CFG_WRITE_LOCK);
 
-  DalOdbcMgr *dbinst = &config_rw_dom_;
+  DalOdbcMgr *dbinst = dbcm_->GetConfigRwConn();
+
+  CALL_MOMGRS_REVERSE_ORDER(ClearConfiguration, dbinst, UPLL_DT_CANDIDATE);
+  if (urc != UPLL_RC_SUCCESS) {
+    dbcm_->DalTxClose(dbinst, false);
+    dbcm_->ReleaseRwConn(dbinst);
+    UPLL_LOG_FATAL("Loading startup configuration failed. Urc=%d", urc);
+    return urc;
+  }
+
+  CALL_MOMGRS_REVERSE_ORDER(ClearConfiguration, dbinst, UPLL_DT_RUNNING);
+  if (urc != UPLL_RC_SUCCESS) {
+    dbcm_->DalTxClose(dbinst, false);
+    dbcm_->ReleaseRwConn(dbinst);
+    UPLL_LOG_FATAL("Loading startup configuration failed. Urc=%d", urc);
+    return urc;
+  }
 
   CALL_MOMGRS_PREORDER(LoadStartup, dbinst);
 
   // Audit and Import tables have been already cleared as part of transitioning
   // to ACTIVE
 
-  upll_rc_t db_urc = DalClose(dbinst, (urc == UPLL_RC_SUCCESS), __FUNCTION__);
+  upll_rc_t db_urc = dbcm_->DalTxClose(dbinst, (urc == UPLL_RC_SUCCESS));
+  dbcm_->ReleaseRwConn(dbinst);
   if (urc == UPLL_RC_SUCCESS) {
     urc = db_urc;
   }
 
   if (urc != UPLL_RC_SUCCESS) {
-    pfc_log_fatal("Loading startup configuration failed. Urc=%d", urc);
+    UPLL_LOG_FATAL("Loading startup configuration failed. Urc=%d", urc);
   }
 
+  if (urc == UPLL_RC_SUCCESS) {
+    // SBY->ACT transition, the dirty flags would be lost, So making all the
+    // tables dirty to perform ful DB Diff on commit/abort operation
+    dbinst->MakeAllDirty();
+  }
   return urc;
 }
 
@@ -720,17 +820,28 @@ upll_rc_t UpllConfigMgr::OnSaveRunningConfig(uint32_t session_id) {
                              UPLL_DT_STARTUP, ConfigLock::CFG_WRITE_LOCK,
                              UPLL_DT_RUNNING, ConfigLock::CFG_READ_LOCK);
 
-  DalOdbcMgr *dbinst = &config_rw_dom_;
+  DalOdbcMgr *dbinst = dbcm_->GetConfigRwConn();
 
+  // Clearing StartUp configuration
+  CALL_MOMGRS_REVERSE_ORDER(ClearConfiguration, dbinst, UPLL_DT_STARTUP);
+  if (urc != UPLL_RC_SUCCESS) {
+    dbcm_->DalTxClose(dbinst, false);
+    dbcm_->ReleaseRwConn(dbinst);
+    UPLL_LOG_FATAL("SaveRunningConfig failed. Urc=%d", urc);
+    return urc;
+  }
+
+  // Copying Running configuration to Startup
   CALL_MOMGRS_PREORDER(CopyRunningToStartup, dbinst);
 
-  upll_rc_t db_urc = DalClose(dbinst, (urc == UPLL_RC_SUCCESS), __FUNCTION__);
+  upll_rc_t db_urc = dbcm_->DalTxClose(dbinst, (urc == UPLL_RC_SUCCESS));
+  dbcm_->ReleaseRwConn(dbinst);
   if (urc == UPLL_RC_SUCCESS) {
     urc = db_urc;
   }
 
   if (urc != UPLL_RC_SUCCESS) {
-    pfc_log_fatal("SaveRunningConfig failed. Urc=%d", urc);
+    UPLL_LOG_FATAL("SaveRunningConfig failed. Urc=%d", urc);
   }
 
   return urc;
@@ -754,25 +865,50 @@ upll_rc_t UpllConfigMgr::OnAbortCandidateConfig(uint32_t session_id) {
                              UPLL_DT_CANDIDATE, ConfigLock::CFG_WRITE_LOCK,
                              UPLL_DT_RUNNING, ConfigLock::CFG_READ_LOCK);
 
-  DalOdbcMgr *dbinst = &config_rw_dom_;
+  DalOdbcMgr *dbinst = dbcm_->GetConfigRwConn();
+  // For TcLibInterface::HandleAuditConfig, session_id and config_id is 0
+  // For such transactions, make all the tables dirty to perform full abort
+  if (session_id == 0) {
+    dbinst->MakeAllDirty();
+  }
 
-  CALL_MOMGRS_PREORDER(CopyRunningToCandidate, dbinst);
+  CALL_MOMGRS_REVERSE_ORDER(CopyRunningToCandidate, dbinst, UNC_OP_DELETE);
+  if (urc != UPLL_RC_SUCCESS) {
+    dbcm_->DalTxClose(dbinst, false);
+    dbcm_->ReleaseRwConn(dbinst);
+    UPLL_LOG_FATAL("Abort candidate failed. Urc=%d", urc);
+    return urc;
+  }
 
-  upll_rc_t db_urc = DalClose(dbinst, (urc == UPLL_RC_SUCCESS), __FUNCTION__);
+  CALL_MOMGRS_PREORDER(CopyRunningToCandidate, dbinst, UNC_OP_CREATE);
+  if (urc != UPLL_RC_SUCCESS) {
+    dbcm_->DalTxClose(dbinst, false);
+    dbcm_->ReleaseRwConn(dbinst);
+    UPLL_LOG_FATAL("Abort candidate failed. Urc=%d", urc);
+    return urc;
+  }
+
+  CALL_MOMGRS_PREORDER(CopyRunningToCandidate, dbinst, UNC_OP_UPDATE);
+
+  upll_rc_t db_urc = dbcm_->DalTxClose(dbinst, (urc == UPLL_RC_SUCCESS));
+  // Release DB Connection after ClearDirty
   if (urc == UPLL_RC_SUCCESS) {
     urc = db_urc;
   }
 
+  if (urc != UPLL_RC_SUCCESS) {
+    UPLL_LOG_FATAL("Abort candidate failed. Urc=%d", urc);
+  }
+
   if (urc == UPLL_RC_SUCCESS) {
     candidate_dirty_qc_lock_.lock();
     candidate_dirty_qc_ = false;
+    // Clearing the dirty flags(used for skipping DB Diff operation) if stored
+    dbinst->ClearDirty();
     candidate_dirty_qc_lock_.unlock();
   }
 
-  if (urc != UPLL_RC_SUCCESS) {
-    pfc_log_fatal("Abort candidate failed. Urc=%d", urc);
-  }
-
+  dbcm_->ReleaseRwConn(dbinst);
   return urc;
 }
 
@@ -792,17 +928,18 @@ upll_rc_t UpllConfigMgr::OnClearStartupConfig(uint32_t session_id) {
   ScopedConfigLock scfg_lock(cfg_lock_,
                              UPLL_DT_STARTUP, ConfigLock::CFG_WRITE_LOCK);
 
-  DalOdbcMgr *dbinst = &config_rw_dom_;
+  DalOdbcMgr *dbinst = dbcm_->GetConfigRwConn();
 
-  CALL_MOMGRS_PREORDER(ClearStartup, dbinst);
+  CALL_MOMGRS_REVERSE_ORDER(ClearStartup, dbinst);
 
-  upll_rc_t db_urc = DalClose(dbinst, (urc == UPLL_RC_SUCCESS), __FUNCTION__);
+  upll_rc_t db_urc = dbcm_->DalTxClose(dbinst, (urc == UPLL_RC_SUCCESS));
+  dbcm_->ReleaseRwConn(dbinst);
   if (urc == UPLL_RC_SUCCESS) {
     urc = db_urc;
   }
 
   if (urc != UPLL_RC_SUCCESS) {
-    pfc_log_fatal("ClearStartupConfig failed. Urc=%d", urc);
+    UPLL_LOG_FATAL("ClearStartupConfig failed. Urc=%d", urc);
   }
 
   return urc;
@@ -832,15 +969,21 @@ upll_rc_t UpllConfigMgr::ClearImport(uint32_t session_id, uint32_t config_id,
   ScopedConfigLock scfg_lock(cfg_lock_,
                              UPLL_DT_IMPORT, ConfigLock::CFG_WRITE_LOCK);
 
-  DalOdbcMgr *dbinst = &import_rw_dom_;
+  DalOdbcMgr *dbinst = dbcm_->GetConfigRwConn();
 
-  CALL_MOMGRS_PREORDER(ImportClear, import_ctrlr_id_.c_str(), dbinst);
+  CALL_MOMGRS_REVERSE_ORDER(ImportClear, import_ctrlr_id_.c_str(), dbinst);
 
-  upll_rc_t db_urc = DalClose(dbinst, (urc == UPLL_RC_SUCCESS), __FUNCTION__);
+  upll_rc_t db_urc = dbcm_->DalTxClose(dbinst, (urc == UPLL_RC_SUCCESS));
+  dbcm_->ReleaseRwConn(dbinst);
   if (urc == UPLL_RC_SUCCESS) {
     urc = db_urc;
   }
 
+  if (urc != UPLL_RC_SUCCESS) {
+    UPLL_LOG_FATAL("ClearImportConfig failed. Urc=%d", urc);
+    return urc;
+  }
+
   import_in_progress_ = false;
   import_ctrlr_id_ = "";
 
index c91790633ceccf09f5e54c0e4215786ed62108be..99618ff1634059ac7e91247bbb59f48df0da4365 100644 (file)
@@ -1,5 +1,5 @@
 %
-% Copyright (c) 2012-2013 NEC Corporation
+% Copyright (c) 2012-2014 NEC Corporation
 % All rights reserved.
 % 
 % This program and the accompanying materials are made available under the
@@ -8,10 +8,19 @@
 %
 
 %%
-%% Configuration file format for lgcsrv.conf.
+%% Configuration file format for upll.conf.
 %%
 
 % definitions.
 defblock no_definitions {
        no_definition   = UINT32;
 }
+
+defblock vtn_dataflow {
+  upll_max_dataflowtraversal = UINT32;
+}
+
+% DB Read Connections Related Value
+defblock db_conn {
+  db_conn_ro_limit = UINT32;
+}
index 00b19e0cd702d5ce2f0fd1eeb3623fe11b3814e7..467c8a37ab9c803fd6a34c9f2f788ad43d54222e 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2012-2013 NEC Corporation
+# Copyright (c) 2012-2014 NEC Corporation
 # All rights reserved.
 # 
 # This program and the accompanying materials are made available under the
@@ -8,6 +8,15 @@
 #
 
 ##
-## Configuration file for lgcsrv module.
+## Configuration file for upll module.
 ##
 
+vtn_dataflow {
+ upll_max_dataflowtraversal = 1000;
+}
+
+db_conn {
+# Max number of DB read-only connections
+       db_conn_ro_limit = 64;
+}
index 12d029a69da62f7b8e7acfca68400d8031fe45e9..7699db3d93a1b9f76d1d7aa15f08c1de831b43c1 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2012-2013 NEC Corporation
+# Copyright (c) 2012-2014 NEC Corporation
 # All rights reserved.
 # 
 # This program and the accompanying materials are made available under the
@@ -12,3 +12,4 @@ dal
 tclib
 capa
 alarm
+dataflow
index c00110af5058fddf2ee908a533afbb1427b6302f..3e1677734fa487ec3ff70a2b2b355973977f0ea9 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
 #define UPLL_UPLL_UTIL_HH_
 
 #include <cstring>
+#include "cxx/pfcxx/synch.hh"
+#include "uncxx/upll_log.hh"
+
+extern bool fatal_done;
+extern pfc::core::Mutex  fatal_mutex_lock;
+
+#define UPLL_LOG_FATAL(fmt, ...) do {                                   \
+  fatal_mutex_lock.lock();                                              \
+  if (!fatal_done) {                                                    \
+    UPLL_LOG(fatal, fmt , ##__VA_ARGS__);                               \
+    fatal_done = true;                                                  \
+  } else {                                                              \
+    UPLL_LOG(info, fmt , ##__VA_ARGS__);                                \
+  }                                                                     \
+  fatal_mutex_lock.unlock();                                            \
+} while (0);
+
 
 namespace unc {
 namespace upll {
index df15251bc39ddf93286fba55efc39d809c794f6d..cff91566ce12157c41d85e64ae95a9b065eff4ff 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -33,140 +33,140 @@ namespace kt_momgr {
   (dt_type == UPLL_DT_STATE)
 
 
-// Min and Max values for validation
+  // Min and Max values for validation
 
-const uint8_t kMinLenCtrlrId = 1;
-const uint8_t kMaxLenCtrlrId = 31;
+  const uint8_t kMinLenCtrlrId = 1;
+  const uint8_t kMaxLenCtrlrId = 31;
 
-const uint8_t kMinLenDomainId = 1;
-const uint8_t kMaxLenDomainId = 31;
-static const char* kDefaultDomainId = "(DEFAULT)";
+  const uint8_t kMinLenDomainId = 1;
+  const uint8_t kMaxLenDomainId = 31;
+  static const char* kDefaultDomainId = "(DEFAULT)";
 
-const uint8_t kMinLenVtnName = 1;
-const uint8_t kMaxLenVtnName = 31;
+  const uint8_t kMinLenVtnName = 1;
+  const uint8_t kMaxLenVtnName = 31;
 
-const uint8_t kMinLenVlinkName = 1;
-const uint8_t kMaxLenVlinkName = 31;
+  const uint8_t kMinLenVlinkName = 1;
+  const uint8_t kMaxLenVlinkName = 31;
 
-const uint8_t kMinLenVnodeName = 1;
-const uint8_t kMaxLenVnodeName = 31;
+  const uint8_t kMinLenVnodeName = 1;
+  const uint8_t kMaxLenVnodeName = 31;
 
-const uint8_t kMinLenInterfaceName = 1;
-const uint8_t kMaxLenInterfaceName = 31;
+  const uint8_t kMinLenInterfaceName = 1;
+  const uint8_t kMaxLenInterfaceName = 31;
 
-const uint8_t kMinLenDescription = 1;
-const uint8_t kMaxLenDescription = 127;
+  const uint8_t kMinLenDescription = 1;
+  const uint8_t kMaxLenDescription = 127;
 
-const uint8_t kMinLenSwitchId = 1;
-const uint8_t kMaxLenSwitchId = 255;
+  const uint8_t kMinLenSwitchId = 1;
+  const uint8_t kMaxLenSwitchId = 255;
 
-const uint16_t kMinLenLogicalPortId = 1;
-const uint16_t kMaxLenLogicalPortId = 319;
+  const uint16_t kMinLenLogicalPortId = 1;
+  const uint16_t kMaxLenLogicalPortId = 319;
 
-const uint16_t kMinVlanId = 1;
-const uint16_t kMaxVlanId = 4095;
+  const uint16_t kMinVlanId = 1;
+  const uint16_t kMaxVlanId = 4095;
 
-const uint8_t kMinIpRoutePrefix = 0;
-const uint8_t kMaxIpRoutePrefix = 32;
+  const uint8_t kMinIpRoutePrefix = 0;
+  const uint8_t kMaxIpRoutePrefix = 32;
 
-const uint8_t kMinVnodeIpv4Prefix = 1;
-const uint8_t kMaxVnodeIpv4Prefix = 30;
+  const uint8_t kMinVnodeIpv4Prefix = 1;
+  const uint8_t kMaxVnodeIpv4Prefix = 30;
 
-const uint8_t kMinIpv4Prefix = 1;
-const uint8_t kMaxIpv4Prefix = 32;
+  const uint8_t kMinIpv4Prefix = 1;
+  const uint8_t kMaxIpv4Prefix = 32;
 
-const uint8_t kMinIpv6Prefix = 1;
-const uint8_t kMaxIpv6Prefix = 128;
+  const uint8_t kMinIpv6Prefix = 1;
+  const uint8_t kMaxIpv6Prefix = 128;
 
-const uint16_t kMinPingPacketLen = 1;
-const uint16_t kMaxPingPacketLen = 65467;
+  const uint16_t kMinPingPacketLen = 1;
+  const uint16_t kMaxPingPacketLen = 65467;
 
-const uint32_t kMinPingCount = 1;
-const uint32_t kMaxPingCount = 655350;
+  const uint32_t kMinPingCount = 1;
+  const uint32_t kMaxPingCount = 655350;
 
-const uint8_t kMinPingInterval = 1;
-const uint8_t kMaxPingInterval = 60;
+  const uint8_t kMinPingInterval = 1;
+  const uint8_t kMaxPingInterval = 60;
 
-const uint8_t kMinPingTimeout = 1;
-const uint8_t kMaxPingTimeout = 60;
+  const uint8_t kMinPingTimeout = 1;
+  const uint8_t kMaxPingTimeout = 60;
 
-const uint8_t kMinLenPortName = 1;
-const uint8_t kMaxLenPortName = 32;
+  const uint8_t kMinLenPortName = 1;
+  const uint8_t kMaxLenPortName = 32;
 
-const uint64_t kMinStationId = 1;
-const uint64_t kMaxStationId = 524287;
+  const uint64_t kMinStationId = 1;
+  const uint64_t kMaxStationId = 524287;
 
-const uint32_t kMinIpAddressCount = 1;
-const uint32_t kMaxIpAddressCount = 0xFFFFFFFF;
+  const uint32_t kMinIpAddressCount = 1;
+  const uint32_t kMaxIpAddressCount = 0xFFFFFFFF;
 
-const uint16_t kMinLenGroupMetric = 1;
-const uint16_t kMaxLenGroupMetric = 65535;
+  const uint16_t kMinLenGroupMetric = 1;
+  const uint16_t kMaxLenGroupMetric = 65535;
 
-const uint8_t kMinLenBoundaryName = 1;
-const uint8_t kMaxLenBoundaryName = 31;
+  const uint8_t kMinLenBoundaryName = 1;
+  const uint8_t kMaxLenBoundaryName = 31;
 
-const uint8_t kMinLenNwmName = 1;
-const uint8_t kMaxLenNwmName = 31;
+  const uint8_t kMinLenNwmName = 1;
+  const uint8_t kMaxLenNwmName = 31;
 
-const uint16_t kMinNWMHHealthInterval = 5;
-const uint16_t kMaxNWMHHealthInterval = 600;
+  const uint16_t kMinNWMHHealthInterval = 5;
+  const uint16_t kMaxNWMHHealthInterval = 600;
 
-const uint16_t kMinNWMHRecoveryInterval = 5;
-const uint16_t kMaxNWMHRecoveryInterval = 600;
+  const uint16_t kMinNWMHRecoveryInterval = 5;
+  const uint16_t kMaxNWMHRecoveryInterval = 600;
 
-const uint8_t kMinNWMHFailureCount = 1;
-const uint8_t kMaxNWMHFailureCount = 10;
+  const uint8_t kMinNWMHFailureCount = 1;
+  const uint8_t kMaxNWMHFailureCount = 10;
 
-const uint8_t kMinNWMHRecoveryCount = 1;
-const uint8_t kMaxNWMHRecoveryCount = 10;
+  const uint8_t kMinNWMHRecoveryCount = 1;
+  const uint8_t kMaxNWMHRecoveryCount = 10;
 
-const uint8_t kMinNWMHWaitTime = 1;
-const uint8_t kMaxNWMHWaitTime = 60;
+  const uint8_t kMinNWMHWaitTime = 1;
+  const uint8_t kMaxNWMHWaitTime = 60;
 
-/*KT_FLOWLIST, KT_FLOWLIST_ENTRY*/
-const uint8_t kMinLenFlowListName = 1;
-const uint8_t kMaxLenFlowListName = 32;
+  /*KT_FLOWLIST, KT_FLOWLIST_ENTRY*/
+  const uint8_t kMinLenFlowListName = 1;
+  const uint8_t kMaxLenFlowListName = 32;
 
-const uint16_t kMinEthType = 0x0000;
-const uint16_t kMaxEthType = 0xffff;
+  const uint16_t kMinEthType = 0x0000;
+  const uint16_t kMaxEthType = 0xffff;
 
-const uint8_t kMinIPDscp = 0;
-const uint8_t kMaxIPDscp = 63;
+  const uint8_t kMinIPDscp = 0;
+  const uint8_t kMaxIPDscp = 63;
 
-const uint8_t kMinVlanPriority = 0;
-const uint8_t kMaxVlanPriority = 7;
+  const uint8_t kMinVlanPriority = 0;
+  const uint8_t kMaxVlanPriority = 7;
 
-const uint8_t kMinIPProto = 1;
-const uint8_t kMaxIPProto = 255;
+  const uint8_t kMinIPProto = 1;
+  const uint8_t kMaxIPProto = 255;
 
-const uint16_t kMinL4Port = 0;
-const uint16_t kMaxL4Port = 65535;
+  const uint16_t kMinL4Port = 0;
+  const uint16_t kMaxL4Port = 65535;
 
-const uint8_t kMinIcmpValue = 0;
-const uint8_t kMaxIcmpValue = 255;
+  const uint8_t kMinIcmpValue = 0;
+  const uint8_t kMaxIcmpValue = 255;
 
-/*KT_POLICING_PROFILE, KT_POLICING_PROFILE_ENTRY */
-const uint8_t kMinLenPolicingProfileName = 1;
-const uint8_t kMaxLenPolicingProfileName = 32;
+  /*KT_POLICING_PROFILE, KT_POLICING_PROFILE_ENTRY */
+  const uint8_t kMinLenPolicingProfileName = 1;
+  const uint8_t kMaxLenPolicingProfileName = 32;
 
-const uint8_t kMinPolicingProfileSeqNum = 1;
-const uint8_t kMaxPolicingProfileSeqNum = 255;
+  const uint8_t kMinPolicingProfileSeqNum = 1;
+  const uint8_t kMaxPolicingProfileSeqNum = 255;
 
-const uint32_t kMinRateType = 0;
-const uint32_t kMaxRateType = 4294967295u;
+  const uint32_t kMinRateType = 0;
+  const uint32_t kMaxRateType = 4294967295u;
 
-const uint32_t kMinBurstSize = 0;
-const uint32_t kMaxBurstSize = 4294967295u;
+  const uint32_t kMinBurstSize = 0;
+  const uint32_t kMaxBurstSize = 4294967295u;
 
-const uint8_t kMinPrecedence = 1;
-const uint8_t kMaxPrecedence = 3;
+  const uint8_t kMinPrecedence = 1;
+  const uint8_t kMaxPrecedence = 3;
 
-const uint16_t kMinFlowFilterSeqNum = 1;
-const uint16_t kMaxFlowFilterSeqNum = 65535;
+  const uint16_t kMinFlowFilterSeqNum = 1;
+  const uint16_t kMaxFlowFilterSeqNum = 65535;
 
-// template function to validate the boundary conditions for the input value
+  // template function to validate the boundary conditions for the input value
 
-template<class ValType>
+  template<class ValType>
 bool ValidateNumericRange(const ValType &num_val, const ValType &min_value,
                           const ValType &max_value, const bool &include_min,
                           const bool &include_max) {
@@ -246,11 +246,11 @@ inline bool ValidateDefaultStr(uint8_t *str,
     return false;
   } else if (!ValidateStringRange(reinterpret_cast<char *>(str), min, max)) {
     UPLL_LOG_DEBUG(" Invalid string length %d",
-        (unsigned int) strlen(reinterpret_cast<char *>(str)));
+                   (unsigned int) strlen(reinterpret_cast<char *>(str)));
     return false;
   } else if ((str[0] == '(') &&
-      (0 == strncmp(reinterpret_cast<char *>(str),
-                    kDefaultDomainId, strlen(kDefaultDomainId)))) {
+             (0 == strncmp(reinterpret_cast<char *>(str),
+                           kDefaultDomainId, strlen(kDefaultDomainId)))) {
     return true;
   } else if (!ValidateStrId(reinterpret_cast<char *>(str))) {
     UPLL_LOG_DEBUG("Invalid string format %s", str);
@@ -305,7 +305,7 @@ inline bool ValidateDesc(uint8_t *str, unsigned int min, unsigned int max) {
   if (!(ret_val = ValidateStringRange(reinterpret_cast<char *>(str),
                                       min, max))) {
     UPLL_LOG_DEBUG("Invalid string length %d",
-                  (unsigned int) strlen(reinterpret_cast<char *>(str)));
+                   (unsigned int) strlen(reinterpret_cast<char *>(str)));
   } else {
     if (!(ret_val = ValidateStrPrint(reinterpret_cast<char *>(str)))) {
       UPLL_LOG_DEBUG("Invalid string format %s", str);
@@ -320,7 +320,7 @@ inline bool ValidateDesc(uint8_t *str, unsigned int min, unsigned int max) {
 
 // wrapper function for validating logical port id
 inline bool ValidateLogicalPortId(char *str, unsigned int min,
-                                       unsigned int max) {
+                                  unsigned int max) {
   UPLL_LOG_DEBUG("Inside ValidateLogicalPortId");
 
   if (NULL == str) {
@@ -335,15 +335,15 @@ inline bool ValidateLogicalPortId(char *str, unsigned int min,
     return false;
   }
 
-/*
-  while(*str) {
-    if (!(isalnum(*str) || ('-' == *str) || ('.' == *str) || (':' == *str))) {
-      UPLL_LOG_DEBUG("UPLL_RC_ERR_CFG_SYNTAX %c ",*str);
-      return UPLL_RC_ERR_CFG_SYNTAX;
-    }
-    str++;
-  }
-*/
+  /*
+     while(*str) {
+     if (!(isalnum(*str) || ('-' == *str) || ('.' == *str) || (':' == *str))) {
+     UPLL_LOG_DEBUG("UPLL_RC_ERR_CFG_SYNTAX %c ",*str);
+     return UPLL_RC_ERR_CFG_SYNTAX;
+     }
+     str++;
+     }
+     */
   return true;
 }
 
@@ -354,16 +354,16 @@ inline bool ValidateMacAddr(uint8_t *mac_addr) {
   if ((memcmp(mac_addr, temp_mac1, 6) == 0)
       || (memcmp(mac_addr, temp_mac2, 6) == 0)) {
     UPLL_LOG_DEBUG("Invalid Mac address: %x %x %x %x %x %x", mac_addr[0],
-                  mac_addr[1], mac_addr[2], mac_addr[3], mac_addr[4],
-                  mac_addr[5]);
+                   mac_addr[1], mac_addr[2], mac_addr[3], mac_addr[4],
+                   mac_addr[5]);
     return false;
   }
   /* Multicast MAC address check*/
   if (mac_addr[0] == 0x01 && mac_addr[1] == 0x00 && mac_addr[2] == 0x5e) {
     if ((mac_addr[3] & 0x80) == 0) {
       UPLL_LOG_DEBUG("Invalid Mac address:%x %x %x %x %x %x", mac_addr[0],
-                    mac_addr[1], mac_addr[2], mac_addr[3], mac_addr[4],
-                    mac_addr[5]);
+                     mac_addr[1], mac_addr[2], mac_addr[3], mac_addr[4],
+                     mac_addr[5]);
       return false;
     }
   }
@@ -400,8 +400,8 @@ inline bool chk_ip_mask_allow(uint32_t mask) {
   h_mask = ntohl(mask);
 
   if (h_mask == 0x00000000
-    || h_mask == 0xfffffffe
-    || h_mask == 0xffffffff) {
+      || h_mask == 0xfffffffe
+      || h_mask == 0xffffffff) {
     return false;
   }
   return true;
index 374fca5aa8ef2b18521e55770020ec00f9997fda..539ec4f82c0770868dc6dc3856b6b8cfdcca9e19 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -138,34 +138,36 @@ BindInfo VbrFlowFilterEntryMoMgr::vbr_flowfilterentry_bind_info[] = {
 
 BindInfo VbrFlowFilterEntryMoMgr::vbr_flowfilter_entry_maintbl_bind_info[] = {
   { uudst::vbr_flowfilter_entry::kDbiVtnName, CFG_MATCH_KEY, offsetof(
-     key_vbr_flowfilter_entry_t, flowfilter_key.vbr_key.vtn_key.vtn_name),
-     uud::kDalChar, kMaxLenVtnName + 1 },
+          key_vbr_flowfilter_entry_t, flowfilter_key.vbr_key.vtn_key.vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1 },
   { uudst::vbr_flowfilter_entry::kDbiVbrName, CFG_MATCH_KEY, offsetof(
-     key_vbr_flowfilter_entry_t, flowfilter_key.vbr_key.vbridge_name),
-     uud::kDalChar, kMaxLenVnodeName + 1 },
+          key_vbr_flowfilter_entry_t, flowfilter_key.vbr_key.vbridge_name),
+  uud::kDalChar, kMaxLenVnodeName + 1 },
   { uudst::vbr_flowfilter_entry::kDbiVtnName, CFG_INPUT_KEY, offsetof(
-     key_rename_vnode_info_t, new_unc_vtn_name),
-     uud::kDalChar, kMaxLenVtnName + 1 },
+          key_rename_vnode_info_t, new_unc_vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1 },
   { uudst::vbr_flowfilter_entry::kDbiVbrName, CFG_INPUT_KEY, offsetof(
-     key_rename_vnode_info_t, new_unc_vnode_name),
-     uud::kDalChar, kMaxLenVnodeName + 1 },
+          key_rename_vnode_info_t, new_unc_vnode_name),
+  uud::kDalChar, kMaxLenVnodeName + 1 },
   { uudst::vbr_flowfilter_entry::kDbiFlags, CK_VAL, offsetof(
-     key_user_data_t, flags),
-     uud::kDalUint8, 1 }
+          key_user_data_t, flags),
+  uud::kDalUint8, 1 }
 };
 
 VbrFlowFilterEntryMoMgr::VbrFlowFilterEntryMoMgr() : MoMgrImpl() {
   UPLL_FUNC_TRACE;
   // Rename and ctrlr tables not required for this KT
   // setting max tables toto 1
-  cur_instance_count = 0;
   ntable = (MAX_MOMGR_TBLS);
   table = new Table *[ntable];
 
   // For Main Table
-  table[MAINTBL] = new Table(uudst::kDbiVbrFlowFilterEntryTbl,
-      UNC_KT_VBR_FLOWFILTER_ENTRY, vbr_flowfilterentry_bind_info,
-      IpctSt::kIpcStKeyVbrFlowfilterEntry, IpctSt::kIpcStValFlowfilterEntry,
+  table[MAINTBL] = new Table(
+      uudst::kDbiVbrFlowFilterEntryTbl,
+      UNC_KT_VBR_FLOWFILTER_ENTRY,
+      vbr_flowfilterentry_bind_info,
+      IpctSt::kIpcStKeyVbrFlowfilterEntry,
+      IpctSt::kIpcStValFlowfilterEntry,
       uudst::vbr_flowfilter_entry::kDbiVbrFlowFilterEntryNumCols);
 
   table[RENAMETBL] = NULL;
@@ -177,14 +179,14 @@ VbrFlowFilterEntryMoMgr::VbrFlowFilterEntryMoMgr() : MoMgrImpl() {
 }
 
 bool VbrFlowFilterEntryMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type,
-                                    BindInfo *&binfo,
-                                    int &nattr,
-                                    MoMgrTables tbl ) {
+                                                   BindInfo *&binfo,
+                                                   int &nattr,
+                                                   MoMgrTables tbl ) {
   UPLL_FUNC_TRACE;
 
   /* Main Table only update */
   nattr = sizeof(vbr_flowfilter_entry_maintbl_bind_info)/
-          sizeof(vbr_flowfilter_entry_maintbl_bind_info[0]);
+      sizeof(vbr_flowfilter_entry_maintbl_bind_info[0]);
   binfo = vbr_flowfilter_entry_maintbl_bind_info;
 
   UPLL_LOG_DEBUG("Successful Completeion");
@@ -237,9 +239,9 @@ bool VbrFlowFilterEntryMoMgr::IsValidKey(void *key, uint64_t index) {
         ff_key->flowfilter_key.direction = 0;
         return false;
       } else if (!ValidateNumericRange(ff_key->flowfilter_key.direction,
-                                (uint8_t) UPLL_FLOWFILTER_DIR_IN,
-                                (uint8_t) UPLL_FLOWFILTER_DIR_OUT,
-                                true, true)) {
+                                       (uint8_t) UPLL_FLOWFILTER_DIR_IN,
+                                       (uint8_t) UPLL_FLOWFILTER_DIR_OUT,
+                                       true, true)) {
         UPLL_LOG_DEBUG("direction syntax validation failed :");
         return UPLL_RC_ERR_CFG_SYNTAX;
       }
@@ -272,31 +274,32 @@ upll_rc_t VbrFlowFilterEntryMoMgr::ValidateMessage(IpcReqRespHeader *req,
                    key->get_st_num());
     return UPLL_RC_ERR_BAD_REQUEST;
   }
-  if(req->option2 != UNC_OPT2_NONE) {
+  if (req->option2 != UNC_OPT2_NONE) {
     UPLL_LOG_DEBUG(" Error: option2 is not NONE");
     return UPLL_RC_ERR_INVALID_OPTION2;
   }
-  if((req->option1 != UNC_OPT1_NORMAL) 
-              &&(req->option1 != UNC_OPT1_DETAIL)) {
-     UPLL_LOG_DEBUG(" Error: option1 is not NORMAL");
-     return UPLL_RC_ERR_INVALID_OPTION1;
-   }
-   if((req->option1 != UNC_OPT1_NORMAL) 
-              &&(req->operation == UNC_OP_READ_SIBLING_COUNT)) {
-     UPLL_LOG_DEBUG(" Error: option1 is not NORMAL for ReadSiblingCount");
-     return UPLL_RC_ERR_INVALID_OPTION1;
-   }
-    if ((req->option1 == UNC_OPT1_DETAIL) &&
+  if ((req->option1 != UNC_OPT1_NORMAL)
+     &&(req->option1 != UNC_OPT1_DETAIL)) {
+    UPLL_LOG_DEBUG(" Error: option1 is not NORMAL");
+    return UPLL_RC_ERR_INVALID_OPTION1;
+  }
+  if ((req->option1 != UNC_OPT1_NORMAL)
+     &&(req->operation == UNC_OP_READ_SIBLING_COUNT)) {
+    UPLL_LOG_DEBUG(" Error: option1 is not NORMAL for ReadSiblingCount");
+    return UPLL_RC_ERR_INVALID_OPTION1;
+  }
+  if ((req->option1 == UNC_OPT1_DETAIL) &&
       (req->datatype != UPLL_DT_STATE)) {
-      UPLL_LOG_DEBUG(" Invalid Datatype(%d)", req->datatype);
-      return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
-  }
-  if ((req->datatype == UPLL_DT_IMPORT) && (req->operation == UNC_OP_READ || 
-       req->operation == UNC_OP_READ_SIBLING ||
-       req->operation == UNC_OP_READ_SIBLING_BEGIN ||
-       req->operation == UNC_OP_READ_NEXT ||
-       req->operation == UNC_OP_READ_BULK ||
-       req->operation == UNC_OP_READ_SIBLING_COUNT)) {
+    UPLL_LOG_DEBUG(" Invalid Datatype(%d)", req->datatype);
+    return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
+  }
+  if ((req->datatype == UPLL_DT_IMPORT) && (
+          req->operation == UNC_OP_READ ||
+          req->operation == UNC_OP_READ_SIBLING ||
+          req->operation == UNC_OP_READ_SIBLING_BEGIN ||
+          req->operation == UNC_OP_READ_NEXT ||
+          req->operation == UNC_OP_READ_BULK ||
+          req->operation == UNC_OP_READ_SIBLING_COUNT)) {
     return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
   }
 
@@ -327,7 +330,7 @@ upll_rc_t VbrFlowFilterEntryMoMgr::ValidateMessage(IpcReqRespHeader *req,
 }
 
 upll_rc_t VbrFlowFilterEntryMoMgr::ValidateValFlowfilterEntry(
-    IpcReqRespHeader *req, ConfigKeyVal *key, DalDmlIntf *dmi) {
+    IpcReqRespHeader *req, ConfigKeyVal *key) {
   UPLL_FUNC_TRACE;
 
   if (!key->get_cfg_val()) {
@@ -356,79 +359,11 @@ upll_rc_t VbrFlowFilterEntryMoMgr::ValidateValFlowfilterEntry(
     UPLL_LOG_DEBUG("val_flowfilter_entry structure is null");
     return UPLL_RC_ERR_BAD_REQUEST;
   }
-
-  upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
-  bool db_action_valid = false;
-  bool db_action_redirect = false;
-
-  if ((val_flowfilter_entry->valid[UPLL_IDX_ACTION_FFE]
-       == UNC_VF_INVALID) && (req->operation == UNC_OP_UPDATE)) {
-    /** Read key struct from ConfigKeyVal argument*/
-    key_vbr_flowfilter_entry_t *key_vbr_flowfilter_entry =
-        static_cast<key_vbr_flowfilter_entry_t*>(key->get_key());
-
-    /** Check whether Action configured or not from DB */
-    ConfigKeyVal *okey = NULL;
-
-    result_code = GetChildConfigKey(okey, NULL);
-
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("okey memory allocation failed- %d", result_code);
-      return result_code;
-    }
-
-    key_vbr_flowfilter_entry_t *vbr_ffe_key =
-        reinterpret_cast<key_vbr_flowfilter_entry_t *>(okey->get_key());
-
-    /* copy key structure into okey key struct */
-    uuu::upll_strncpy(
-        vbr_ffe_key->flowfilter_key.vbr_key.vtn_key.vtn_name,
-        key_vbr_flowfilter_entry->flowfilter_key.vbr_key.vtn_key.vtn_name,
-        (kMaxLenVtnName+1));
-
-    uuu::upll_strncpy(
-        vbr_ffe_key->flowfilter_key.vbr_key.vbridge_name,
-        key_vbr_flowfilter_entry->flowfilter_key.vbr_key.vbridge_name,
-        (kMaxLenVnodeName+1));
-
-    vbr_ffe_key->flowfilter_key.direction =
-        key_vbr_flowfilter_entry->flowfilter_key.direction;
-    vbr_ffe_key->sequence_num = key_vbr_flowfilter_entry->sequence_num;
-
-    /* Check the action field configured in VBR_FLOWFILTER_ENTRY table*/
-    DbSubOp dbop = {kOpReadSingle, kOpMatchNone, kOpInOutNone};
-    result_code = ReadConfigDB(okey, req->datatype, UNC_OP_READ,
-                               dbop, dmi, MAINTBL);
-
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("ReadConfigDB is failed for VBR_FLOWFILTER_ENTRY");
-      delete okey;
-      okey = NULL;
-      return UPLL_RC_ERR_NO_SUCH_INSTANCE;
-    }
-
-    /* check the action value from the DB data */
-    val_flowfilter_entry_t *val_ffe =
-        reinterpret_cast<val_flowfilter_entry_t *>(
-            okey->get_cfg_val()->get_val());
-
-    if (val_ffe->valid[UPLL_IDX_ACTION_FFE] == UNC_VF_VALID) {
-      db_action_valid = true;
-      if (val_ffe->action == UPLL_FLOWFILTER_ACT_REDIRECT) {
-        db_action_redirect = true;
-      }
-    }
-
-    delete okey;
-    okey = NULL;
-  }
-  return ValidateFlowfilterEntryValue(val_flowfilter_entry, req->operation,
-                                      db_action_valid, db_action_redirect);
+  return ValidateFlowfilterEntryValue(val_flowfilter_entry, req->operation);
 }
 
 upll_rc_t VbrFlowFilterEntryMoMgr::ValidateFlowfilterEntryValue(
-    val_flowfilter_entry_t *val_flowfilter_entry, uint32_t operation,
-    bool action_valid, bool action_redirect) {
+    val_flowfilter_entry_t *val_flowfilter_entry, uint32_t operation) {
   UPLL_FUNC_TRACE;
 
   upll_rc_t rt_code = UPLL_RC_ERR_GENERIC;
@@ -437,18 +372,18 @@ upll_rc_t VbrFlowFilterEntryMoMgr::ValidateFlowfilterEntryValue(
   if (val_flowfilter_entry->valid[UPLL_IDX_FLOWLIST_NAME_FFE]
       == UNC_VF_VALID) {
     rt_code = ValidateKey(reinterpret_cast<char *>
-                (val_flowfilter_entry->flowlist_name),
-                      kMinLenFlowListName,
-                      kMaxLenFlowListName);
+                          (val_flowfilter_entry->flowlist_name),
+                          kMinLenFlowListName,
+                          kMaxLenFlowListName);
     if (rt_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("FlowList name syntax check failed."
-                "Received Flowlist name - %s",
-                val_flowfilter_entry->flowlist_name);
+                     "Received Flowlist name - %s",
+                     val_flowfilter_entry->flowlist_name);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if ((operation == UNC_OP_UPDATE)
-      && (val_flowfilter_entry->valid[UPLL_IDX_FLOWLIST_NAME_FFE]
-          == UNC_VF_VALID_NO_VALUE)) {
+             && (val_flowfilter_entry->valid[UPLL_IDX_FLOWLIST_NAME_FFE]
+                 == UNC_VF_VALID_NO_VALUE)) {
     UPLL_LOG_DEBUG("Reset flowlist name");
     memset(val_flowfilter_entry->flowlist_name, 0,
            sizeof(val_flowfilter_entry->flowlist_name));
@@ -457,8 +392,7 @@ upll_rc_t VbrFlowFilterEntryMoMgr::ValidateFlowfilterEntryValue(
   /** validates action and checks whether REDIRECT & modify mac configured only
    * when action == REDIRECT */
   if ((rt_code = ValidateFlowfilterEntryAction(val_flowfilter_entry,
-                                               operation, action_valid,
-                                               action_redirect))
+                                               operation))
       != UPLL_RC_SUCCESS) {
     return rt_code;
   }
@@ -490,18 +424,18 @@ upll_rc_t VbrFlowFilterEntryMoMgr::ValidateFlowfilterEntryValue(
   /** validate nwm_name */
   if (val_flowfilter_entry->valid[UPLL_IDX_NWM_NAME_FFE] == UNC_VF_VALID) {
     rt_code = ValidateKey(reinterpret_cast<char *>
-                  (val_flowfilter_entry->nwm_name),
-                      kMinLenNwmName,
-                      kMaxLenNwmName);
+                          (val_flowfilter_entry->nwm_name),
+                          kMinLenNwmName,
+                          kMaxLenNwmName);
     if (rt_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Nwm name syntax check failed."
-                "Received Nwm name - %s",
-                val_flowfilter_entry->nwm_name);
+                     "Received Nwm name - %s",
+                     val_flowfilter_entry->nwm_name);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if ((operation == UNC_OP_UPDATE)
-      && (val_flowfilter_entry->valid[UPLL_IDX_NWM_NAME_FFE]
-          == UNC_VF_VALID_NO_VALUE)) {
+             && (val_flowfilter_entry->valid[UPLL_IDX_NWM_NAME_FFE]
+                 == UNC_VF_VALID_NO_VALUE)) {
     UPLL_LOG_DEBUG("Reset Network monitor name");
     memset(val_flowfilter_entry->nwm_name, 0,
            sizeof(val_flowfilter_entry->nwm_name));
@@ -512,13 +446,13 @@ upll_rc_t VbrFlowFilterEntryMoMgr::ValidateFlowfilterEntryValue(
      action is not exists in DB also then send error */
   if (val_flowfilter_entry->valid[UPLL_IDX_DSCP_FFE] == UNC_VF_VALID) {
     if (!ValidateNumericRange(val_flowfilter_entry->dscp, kMinIPDscp,
-                            kMaxIPDscp, true, true)) {
+                              kMaxIPDscp, true, true)) {
       UPLL_LOG_DEBUG("DSCP syntax validation failed");
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if ((operation == UNC_OP_UPDATE)
-      && (val_flowfilter_entry->valid[UPLL_IDX_DSCP_FFE]
-          == UNC_VF_VALID_NO_VALUE)) {
+             && (val_flowfilter_entry->valid[UPLL_IDX_DSCP_FFE]
+                 == UNC_VF_VALID_NO_VALUE)) {
     UPLL_LOG_DEBUG("Reset DSCP");
     val_flowfilter_entry->dscp = 0;
   }
@@ -529,12 +463,12 @@ upll_rc_t VbrFlowFilterEntryMoMgr::ValidateFlowfilterEntryValue(
                               kMinVlanPriority, kMaxVlanPriority, true,
                               true)) {
       UPLL_LOG_DEBUG("Priority syntax validation failed :Err Code - %d",
-                    rt_code);
+                     rt_code);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if ((operation == UNC_OP_UPDATE)
-      && (val_flowfilter_entry->valid[UPLL_IDX_PRIORITY_FFE]
-          == UNC_VF_VALID_NO_VALUE)) {
+             && (val_flowfilter_entry->valid[UPLL_IDX_PRIORITY_FFE]
+                 == UNC_VF_VALID_NO_VALUE)) {
     UPLL_LOG_DEBUG("Reset Priority");
     val_flowfilter_entry->priority = 0;
   }
@@ -550,7 +484,7 @@ upll_rc_t VbrFlowFilterEntryMoMgr::ValidateVbrFlowfilterEntryKey(
   /** validate key_vbr_flowfilter */
   /** validate vbr_key */
   VbrMoMgr *mgrvbr = reinterpret_cast<VbrMoMgr *>(
-     const_cast<MoManager*>(GetMoManager(UNC_KT_VBRIDGE)));
+      const_cast<MoManager*>(GetMoManager(UNC_KT_VBRIDGE)));
 
   if (NULL == mgrvbr) {
     UPLL_LOG_DEBUG("unable to get VbrMoMgr object to validate key_vbridge");
@@ -561,8 +495,8 @@ upll_rc_t VbrFlowFilterEntryMoMgr::ValidateVbrFlowfilterEntryKey(
       &(key_vbr_flowfilter_entry->flowfilter_key.vbr_key));
   if (UPLL_RC_SUCCESS != rt_code) {
     UPLL_LOG_DEBUG(" Vbr name syntax validation failed :"
-                  "Err Code - %d",
-                  rt_code);
+                   "Err Code - %d",
+                   rt_code);
     return rt_code;
   }
 
@@ -576,13 +510,13 @@ upll_rc_t VbrFlowFilterEntryMoMgr::ValidateVbrFlowfilterEntryKey(
 
   if ((operation != UNC_OP_READ_SIBLING_COUNT) &&
       (operation != UNC_OP_READ_SIBLING_BEGIN)) {
-  /** Validate Seq_num */
-  if (!ValidateNumericRange(key_vbr_flowfilter_entry->sequence_num,
-                            kMinFlowFilterSeqNum, kMaxFlowFilterSeqNum, true,
-                            true)) {
-    UPLL_LOG_DEBUG("sequence number syntax validation failed");
-    return UPLL_RC_ERR_CFG_SYNTAX;
-  }
+    /** Validate Seq_num */
+    if (!ValidateNumericRange(key_vbr_flowfilter_entry->sequence_num,
+                              kMinFlowFilterSeqNum, kMaxFlowFilterSeqNum, true,
+                              true)) {
+      UPLL_LOG_DEBUG("sequence number syntax validation failed");
+      return UPLL_RC_ERR_CFG_SYNTAX;
+    }
   } else {
     key_vbr_flowfilter_entry->sequence_num = 0;
   }
@@ -594,17 +528,17 @@ upll_rc_t VbrFlowFilterEntryMoMgr::ValidateRedirectField(
   upll_rc_t rt_code = UPLL_RC_ERR_GENERIC;
 
   if ((val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_NODE_FFE]
-     == UNC_VF_VALID) &&
-    (val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_PORT_FFE]
-     != UNC_VF_VALID)) {
-      UPLL_LOG_DEBUG("redirect_node: interface is invalid");
-      return UPLL_RC_ERR_CFG_SYNTAX;          
+       == UNC_VF_VALID) &&
+      (val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_PORT_FFE]
+       != UNC_VF_VALID)) {
+    UPLL_LOG_DEBUG("redirect_node: interface is invalid");
+    return UPLL_RC_ERR_CFG_SYNTAX;
   } else if ((val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_NODE_FFE]
-     != UNC_VF_VALID) &&
-    (val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_PORT_FFE]
-     == UNC_VF_VALID)) {
-      UPLL_LOG_DEBUG("redirect_node: node is invalid");
-      return UPLL_RC_ERR_CFG_SYNTAX;
+              != UNC_VF_VALID) &&
+             (val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_PORT_FFE]
+              == UNC_VF_VALID)) {
+    UPLL_LOG_DEBUG("redirect_node: node is invalid");
+    return UPLL_RC_ERR_CFG_SYNTAX;
   }
   /** validate redirect_node */
   if (val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_NODE_FFE] == UNC_VF_VALID) {
@@ -614,12 +548,12 @@ upll_rc_t VbrFlowFilterEntryMoMgr::ValidateRedirectField(
 
     if (UPLL_RC_SUCCESS != rt_code) {
       UPLL_LOG_DEBUG("redirect_node syntax validation failed :Err Code - %d",
-                    rt_code);
+                     rt_code);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if ((operation == UNC_OP_UPDATE)
-      && (val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_NODE_FFE]
-          == UNC_VF_VALID_NO_VALUE)) {
+             && (val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_NODE_FFE]
+                 == UNC_VF_VALID_NO_VALUE)) {
     UPLL_LOG_DEBUG("Reset redirect_node");
 
     memset(val_flowfilter_entry->redirect_node, 0,
@@ -634,12 +568,12 @@ upll_rc_t VbrFlowFilterEntryMoMgr::ValidateRedirectField(
 
     if (UPLL_RC_SUCCESS != rt_code) {
       UPLL_LOG_DEBUG("redirect_port syntax validation failed :Err Code - %d",
-                    rt_code);
+                     rt_code);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if ((operation == UNC_OP_UPDATE)
-      && (val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_PORT_FFE]
-          == UNC_VF_VALID_NO_VALUE)) {
+             && (val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_PORT_FFE]
+                 == UNC_VF_VALID_NO_VALUE)) {
     UPLL_LOG_DEBUG("Reset redirect_port");
 
     memset(val_flowfilter_entry->redirect_port, 0,
@@ -649,11 +583,10 @@ upll_rc_t VbrFlowFilterEntryMoMgr::ValidateRedirectField(
 }
 
 upll_rc_t VbrFlowFilterEntryMoMgr::ValidateFlowfilterEntryAction(
-    val_flowfilter_entry_t *val_flowfilter_entry, uint32_t operation,
-    bool db_up_action_valid, bool action_redirect) {
+    val_flowfilter_entry_t *val_flowfilter_entry, uint32_t operation) {
   UPLL_FUNC_TRACE;
 
-#if 0 // action_is_redirect is set, but not used
+#if 0  // action_is_redirect is set, but not used
   bool action_is_redirect = false;
 #endif
   /** validate action */
@@ -667,25 +600,25 @@ upll_rc_t VbrFlowFilterEntryMoMgr::ValidateFlowfilterEntryAction(
     }
 
   } else if ((operation == UNC_OP_UPDATE)
-      && (val_flowfilter_entry->valid[UPLL_IDX_ACTION_FFE]
-          == UNC_VF_VALID_NO_VALUE)) {
+             && (val_flowfilter_entry->valid[UPLL_IDX_ACTION_FFE]
+                 == UNC_VF_VALID_NO_VALUE)) {
     UPLL_LOG_DEBUG("Reset Action ");
     val_flowfilter_entry->action = 0;
   }
 
-#if 0 // action_is_redirect is set, but not used
+#if 0  // action_is_redirect is set, but not used
   /** At the time of UPDATE if action is not set, then check DB,
    * db_up_action_valid flag is true when operation is update and valid flag for
    * action is INVALID, action_redirect is true when action is configured as
    * REDIRECT in DB */
   if (val_flowfilter_entry->valid[UPLL_IDX_ACTION_FFE] == UNC_VF_VALID) {
-      if (val_flowfilter_entry->action == UPLL_FLOWFILTER_ACT_REDIRECT) {
-         action_is_redirect = true;
-      }
+    if (val_flowfilter_entry->action == UPLL_FLOWFILTER_ACT_REDIRECT) {
+      action_is_redirect = true;
+    }
   } else if (db_up_action_valid) {
-       if (action_redirect) {
-         action_is_redirect = true;
-       }
+    if (action_redirect) {
+      action_is_redirect = true;
+    }
   }
 #endif
   return UPLL_RC_SUCCESS;
@@ -704,15 +637,15 @@ upll_rc_t VbrFlowFilterEntryMoMgr::ValidateCapability(IpcReqRespHeader *req,
 
   if (!ctrlr_name)
     ctrlr_name = static_cast<char *>(ikey->get_user_data());
-    
+
   if (NULL == ctrlr_name) {
     UPLL_LOG_DEBUG("ctrlr_name is NULL");
     return UPLL_RC_ERR_GENERIC;
   }
 
   UPLL_LOG_TRACE("ctrlr_name : (%s)"
-               "operation : (%d)",
-               ctrlr_name, req->operation);
+                 "operation : (%d)",
+                 ctrlr_name, req->operation);
 
   bool ret_code = false;
   uint32_t instance_count = 0;
@@ -721,33 +654,29 @@ upll_rc_t VbrFlowFilterEntryMoMgr::ValidateCapability(IpcReqRespHeader *req,
 
   switch (req->operation) {
     case UNC_OP_CREATE: {
-      UPLL_LOG_TRACE("Calling GetCreateCapability Operation  %d ", req->operation);
+      UPLL_LOG_TRACE("Calling GetCreateCapability Operation  %d ",
+                     req->operation);
+
       ret_code = GetCreateCapability(ctrlr_name, ikey->get_key_type(),
-                                        &instance_count, &max_attrs, &attrs);
-       if (ret_code && cur_instance_count >= instance_count && 
-                  cur_instance_count !=0 && instance_count != 0) {
-          UPLL_LOG_DEBUG("[%s:%d:%s Instance count %d exceeds %d", __FILE__,
-                      __LINE__, __FUNCTION__, cur_instance_count,
-                      instance_count);
-          return UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
-      }
+                                     &instance_count, &max_attrs, &attrs);
       break;
     }
     case UNC_OP_UPDATE: {
       ret_code = GetUpdateCapability(ctrlr_name, ikey->get_key_type(),
-                                        &max_attrs, &attrs);
+                                     &max_attrs, &attrs);
       break;
     }
     default: {
       if (req->datatype == UPLL_DT_STATE) {
-        UPLL_LOG_TRACE("Calling GetStateCapability Operation  %d ", req->operation);
+        UPLL_LOG_TRACE("Calling GetStateCapability Operation  %d ",
+                       req->operation);
         ret_code = GetStateCapability(ctrlr_name, ikey->get_key_type(),
                                       &max_attrs, &attrs);
       } else {
-        UPLL_LOG_TRACE("Calling GetReadCapability Operation  %d ", req->operation);
+        UPLL_LOG_TRACE("Calling GetReadCapability Operation  %d ",
+                       req->operation);
         ret_code = GetReadCapability(ctrlr_name, ikey->get_key_type(),
-                                      &max_attrs, &attrs);
+                                     &max_attrs, &attrs);
       }
       break;
     }
@@ -755,34 +684,35 @@ upll_rc_t VbrFlowFilterEntryMoMgr::ValidateCapability(IpcReqRespHeader *req,
 
   if (!ret_code) {
     UPLL_LOG_DEBUG("keytype(%d) is not supported by controller(%s)",
-        ikey->get_key_type(), ctrlr_name);
+                   ikey->get_key_type(), ctrlr_name);
     return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
   }
 
   val_flowfilter_entry_t *val_flowfilter_entry =
-    reinterpret_cast<val_flowfilter_entry_t *>(GetVal(ikey));
+      reinterpret_cast<val_flowfilter_entry_t *>(GetVal(ikey));
 
   if (val_flowfilter_entry) {
     if (max_attrs > 0) {
       return ValFlowFilterEntryAttributeSupportCheck(val_flowfilter_entry,
-                                                       attrs);
+                                                     attrs);
     } else {
-      UPLL_LOG_DEBUG("Attribute list is empty for operation %d", req->operation);
-      return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR ;
+      UPLL_LOG_DEBUG("Attribute list is empty for operation %d",
+                     req->operation);
+      return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
     }
-  } 
+  }
   return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t VbrFlowFilterEntryMoMgr::ValFlowFilterEntryAttributeSupportCheck(
-  val_flowfilter_entry_t *val_flowfilter_entry, const uint8_t* attrs) {
+    val_flowfilter_entry_t *val_flowfilter_entry, const uint8_t* attrs) {
   UPLL_FUNC_TRACE;
 
   if (val_flowfilter_entry != NULL) {
     if ((val_flowfilter_entry->valid[UPLL_IDX_FLOWLIST_NAME_FFE] ==
-       UNC_VF_VALID)
+         UNC_VF_VALID)
         ||(val_flowfilter_entry->valid[UPLL_IDX_FLOWLIST_NAME_FFE]
-            == UNC_VF_VALID_NO_VALUE)) {
+           == UNC_VF_VALID_NO_VALUE)) {
       if (attrs[unc::capa::vbr_flowfilter_entry::kCapFlowlistName] == 0) {
         val_flowfilter_entry->valid[UPLL_IDX_FLOWLIST_NAME_FFE] =
             UNC_VF_NOT_SUPPORTED;
@@ -830,20 +760,20 @@ upll_rc_t VbrFlowFilterEntryMoMgr::ValFlowFilterEntryAttributeSupportCheck(
     }
 
     if ((val_flowfilter_entry->valid[UPLL_IDX_MODIFY_DST_MAC_FFE]
-        == UNC_VF_VALID)
+         == UNC_VF_VALID)
         || (val_flowfilter_entry->valid[UPLL_IDX_MODIFY_DST_MAC_FFE]
             == UNC_VF_VALID_NO_VALUE)) {
       if (attrs[unc::capa::vbr_flowfilter_entry::kCapModifyDstMac] == 0) {
         val_flowfilter_entry->valid[UPLL_IDX_MODIFY_DST_MAC_FFE] =
             UNC_VF_NOT_SUPPORTED;
 
-        UPLL_LOG_DEBUG("modify_dst attr is not supported by ctrlr"); 
+        UPLL_LOG_DEBUG("modify_dst attr is not supported by ctrlr");
         return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
       }
     }
 
     if ((val_flowfilter_entry->valid[UPLL_IDX_MODIFY_SRC_MAC_FFE]
-        == UNC_VF_VALID)
+         == UNC_VF_VALID)
         || (val_flowfilter_entry->valid[UPLL_IDX_MODIFY_SRC_MAC_FFE]
             == UNC_VF_VALID_NO_VALUE)) {
       if (attrs[unc::capa::vbr_flowfilter_entry::kCapModifySrcMac] == 0) {
@@ -890,27 +820,28 @@ upll_rc_t VbrFlowFilterEntryMoMgr::ValFlowFilterEntryAttributeSupportCheck(
       }
     }
   } else {
-    UPLL_LOG_DEBUG("value struct is NULL in " 
-               "ValFlowFilterEntryAttributeSupportCheck");
+    UPLL_LOG_DEBUG("value struct is NULL in "
+                   "ValFlowFilterEntryAttributeSupportCheck");
   }
   return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t VbrFlowFilterEntryMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
-                                   DalDmlIntf *dmi,
-                                   const char *ctrlr_id) {
+                                                     DalDmlIntf *dmi,
+                                                     const char *ctrlr_id) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   UPLL_LOG_TRACE(" ikey is %s", ikey->ToStrAll().c_str());
   uint8_t *controller_id = reinterpret_cast<uint8_t *>(
-                                 const_cast<char *>(ctrlr_id));
+      const_cast<char *>(ctrlr_id));
 
   /* check if object is renamed in the corresponding Rename Tbl
    * if "renamed"  create the object by the UNC name.
    * else - create using the controller name.
    */
   result_code = GetRenamedUncKey(ikey, UPLL_DT_RUNNING, dmi, controller_id);
-  if (result_code != UPLL_RC_SUCCESS && result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+  if (result_code != UPLL_RC_SUCCESS && result_code !=
+      UPLL_RC_ERR_NO_SUCH_INSTANCE) {
     UPLL_LOG_DEBUG("GetRenamedUncKey Failed err_code %d", result_code);
     return result_code;
   }
@@ -925,10 +856,10 @@ upll_rc_t VbrFlowFilterEntryMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
   }
 
   val_flowfilter_entry_t *val_flowfilter_entry =
-    static_cast<val_flowfilter_entry_t *>(
-        ikey->get_cfg_val()->get_val());
-   
+      static_cast<val_flowfilter_entry_t *>(
+          ikey->get_cfg_val()->get_val());
+
+
   ctrlr_dom.ctrlr = NULL;
   ctrlr_dom.domain = NULL;
   GET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
@@ -936,17 +867,18 @@ upll_rc_t VbrFlowFilterEntryMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
                  ctrlr_dom.ctrlr, ctrlr_dom.domain);
 
   FlowListMoMgr *mgr = reinterpret_cast<FlowListMoMgr *>
-        (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
+      (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
   if (mgr == NULL) {
     UPLL_LOG_DEBUG("Invalid FlowListMoMgr Instance");
     return UPLL_RC_ERR_GENERIC;
   }
 
   if (val_flowfilter_entry->valid[UPLL_IDX_FLOWLIST_NAME_FFE] == UNC_VF_VALID) {
-    result_code = mgr->AddFlowListToController(reinterpret_cast<char *>
-                                              (val_flowfilter_entry->flowlist_name), dmi,
-                                              reinterpret_cast<char *> (const_cast<char *>(ctrlr_id)) ,
-                                              UPLL_DT_AUDIT, UNC_OP_CREATE);
+    result_code = mgr->AddFlowListToController(
+        reinterpret_cast<char *>
+        (val_flowfilter_entry->flowlist_name), dmi,
+        reinterpret_cast<char *> (const_cast<char *>(ctrlr_id)) ,
+        UPLL_DT_AUDIT, UNC_OP_CREATE);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Reference Count Updation Fails %d", result_code);
       return result_code;
@@ -957,7 +889,11 @@ upll_rc_t VbrFlowFilterEntryMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
     return result_code;
   }
   // Create a record in AUDIT DB
-  result_code = UpdateConfigDB(ikey, UPLL_DT_AUDIT, UNC_OP_CREATE, dmi, MAINTBL);
+  result_code = UpdateConfigDB(ikey,
+                               UPLL_DT_AUDIT,
+                               UNC_OP_CREATE,
+                               dmi,
+                               MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("UpdateConfigDB Failed err_code %d", result_code);
     return result_code;
@@ -981,15 +917,15 @@ upll_rc_t VbrFlowFilterEntryMoMgr::VerifyRedirectDestination(
   controller_domain ctrlr_dom;
   memset(&ctrlr_dom, 0, sizeof(controller_domain));
   key_vbr_flowfilter_entry_t *key_vbr_ffe =
-    reinterpret_cast<key_vbr_flowfilter_entry_t *>(ikey->get_key());
+      reinterpret_cast<key_vbr_flowfilter_entry_t *>(ikey->get_key());
 
   /* read val_vtn_flowfilter_entry from ikey*/
   val_flowfilter_entry_t *val_flowfilter_entry =
-    static_cast<val_flowfilter_entry_t *>(
-        ikey->get_cfg_val()->get_val());
+      static_cast<val_flowfilter_entry_t *>(
+          ikey->get_cfg_val()->get_val());
   // Symentic Validation for redirect destination
   if ((val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_NODE_FFE] ==
-        UNC_VF_VALID) &&
+       UNC_VF_VALID) &&
       (val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_PORT_FFE] ==
        UNC_VF_VALID)) {
     DbSubOp dbop_up = { kOpReadExist, kOpMatchCtrlr|kOpMatchDomain,
@@ -997,18 +933,18 @@ upll_rc_t VbrFlowFilterEntryMoMgr::VerifyRedirectDestination(
     result_code = GetControllerDomainID(ikey, &ctrlr_dom, dt_type, dmi);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Failed to Get the Controller Domain details, err:%d",
-          result_code);
+                     result_code);
     }
     ctrlr_dom.ctrlr = NULL;
     ctrlr_dom.domain = NULL;
     GET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
 
     UPLL_LOG_DEBUG("ctrlrid %s, domainid %s",
-        ctrlr_dom.ctrlr, ctrlr_dom.domain);
+                   ctrlr_dom.ctrlr, ctrlr_dom.domain);
     // Verify whether the vtnnode and interface are exists in DB
     // 1. Check for the vbridge Node
     mgr = reinterpret_cast<MoMgrImpl *>
-      (const_cast<MoManager *>(GetMoManager(UNC_KT_VBR_IF)));
+        (const_cast<MoManager *>(GetMoManager(UNC_KT_VBR_IF)));
     if (NULL == mgr) {
       UPLL_LOG_DEBUG("Unable to get VBRIDGE Interface object");
       return UPLL_RC_ERR_GENERIC;
@@ -1016,34 +952,34 @@ upll_rc_t VbrFlowFilterEntryMoMgr::VerifyRedirectDestination(
     result_code = mgr->GetChildConfigKey(okey, NULL);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Memory allocation failed for VBRIDGE key struct - %d",
-          result_code);
+                     result_code);
       return result_code;
     }
     key_vbr_if_t *vbrif_key = static_cast<key_vbr_if_t*>(
         okey->get_key());
     uuu::upll_strncpy(vbrif_key->vbr_key.vtn_key.vtn_name,
-        key_vbr_ffe->flowfilter_key.vbr_key.vtn_key.vtn_name,
-        kMaxLenVtnName + 1);
+                      key_vbr_ffe->flowfilter_key.vbr_key.vtn_key.vtn_name,
+                      kMaxLenVtnName + 1);
 
     uuu::upll_strncpy(vbrif_key->vbr_key.vbridge_name,
-        reinterpret_cast<char *>
-        (val_flowfilter_entry->redirect_node),
-        (kMaxLenVnodeName + 1));
+                      reinterpret_cast<char *>
+                      (val_flowfilter_entry->redirect_node),
+                      (kMaxLenVnodeName + 1));
     uuu::upll_strncpy(vbrif_key->if_name,
-        reinterpret_cast<char *>
-        (val_flowfilter_entry->redirect_port),
-        kMaxLenInterfaceName + 1);
+                      reinterpret_cast<char *>
+                      (val_flowfilter_entry->redirect_port),
+                      kMaxLenInterfaceName + 1);
 
     /* Check vtnnode and interface exists in table*/
 
     SET_USER_DATA_CTRLR_DOMAIN(okey, ctrlr_dom);
 
     result_code = mgr->UpdateConfigDB(okey, dt_type,
-        UNC_OP_READ, dmi, &dbop_up, MAINTBL);
+                                      UNC_OP_READ, dmi, &dbop_up, MAINTBL);
 
     if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code) {
       UPLL_LOG_DEBUG("vtn node/interface in val_flowfilter_entry  exists"
-          "in DB");
+                     "in DB");
       DELETE_IF_NOT_NULL(okey);
     } else if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
       // 2. Check for Vrouter Node
@@ -1051,7 +987,7 @@ upll_rc_t VbrFlowFilterEntryMoMgr::VerifyRedirectDestination(
       // Verify whether the vtnnode and interface are exists in DB
       DELETE_IF_NOT_NULL(okey);
       mgr = reinterpret_cast<MoMgrImpl *>
-        (const_cast<MoManager *>(GetMoManager(UNC_KT_VRT_IF)));
+          (const_cast<MoManager *>(GetMoManager(UNC_KT_VRT_IF)));
       if (NULL == mgr) {
         UPLL_LOG_DEBUG("Unable to get VROUTER Interface object");
         return UPLL_RC_ERR_GENERIC;
@@ -1059,49 +995,49 @@ upll_rc_t VbrFlowFilterEntryMoMgr::VerifyRedirectDestination(
       result_code = mgr->GetChildConfigKey(okey, NULL);
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("Memory allocation failed for VROUTER key struct - %d",
-            result_code);
+                       result_code);
         return result_code;
       }
       key_vrt_if_t *vrtif_key = static_cast<key_vrt_if_t*>(
           okey->get_key());
       uuu::upll_strncpy(vrtif_key->vrt_key.vtn_key.vtn_name,
-          key_vbr_ffe->flowfilter_key.vbr_key.vtn_key.vtn_name,
-          kMaxLenVtnName + 1);
+                        key_vbr_ffe->flowfilter_key.vbr_key.vtn_key.vtn_name,
+                        kMaxLenVtnName + 1);
 
       uuu::upll_strncpy(vrtif_key->vrt_key.vrouter_name,
-          reinterpret_cast<char *>
-          (val_flowfilter_entry->redirect_node),
-          (kMaxLenVnodeName + 1));
+                        reinterpret_cast<char *>
+                        (val_flowfilter_entry->redirect_node),
+                        (kMaxLenVnodeName + 1));
       uuu::upll_strncpy(vrtif_key->if_name,
-          reinterpret_cast<char *>
-          (val_flowfilter_entry->redirect_port),
-          kMaxLenInterfaceName + 1);
+                        reinterpret_cast<char *>
+                        (val_flowfilter_entry->redirect_port),
+                        kMaxLenInterfaceName + 1);
 
       UPLL_LOG_DEBUG("ctrlrid %s, domainid %s",
-          ctrlr_dom.ctrlr, ctrlr_dom.domain);
+                     ctrlr_dom.ctrlr, ctrlr_dom.domain);
       SET_USER_DATA_CTRLR_DOMAIN(okey, ctrlr_dom);
       /* Check vtnnode and interface exists in table*/
       result_code = mgr->UpdateConfigDB(okey, dt_type,
-          UNC_OP_READ, dmi, &dbop_up, MAINTBL);
+                                        UNC_OP_READ, dmi, &dbop_up, MAINTBL);
       if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
         UPLL_LOG_DEBUG("vtn node/interface in val struct does not exists"
-            "in DB");
+                       "in DB");
         DELETE_IF_NOT_NULL(okey);
         return UPLL_RC_ERR_CFG_SEMANTIC;
       }
       DELETE_IF_NOT_NULL(okey);
     }
     result_code =
-      (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) ? UPLL_RC_SUCCESS :
-      result_code;
+        (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) ? UPLL_RC_SUCCESS :
+        result_code;
     DELETE_IF_NOT_NULL(okey);
   }  // end of Symentic Validation
   return result_code;
 }
 /*Return result of validation*/
 upll_rc_t VbrFlowFilterEntryMoMgr::TxVote(unc_key_type_t keytype,
-                            DalDmlIntf *dmi,
-                            ConfigKeyVal **err_ckv) {
+                                          DalDmlIntf *dmi,
+                                          ConfigKeyVal **err_ckv) {
   UPLL_FUNC_TRACE;
   ConfigKeyVal *req = NULL, *nreq = NULL;
   DalResultCode db_result;
@@ -1111,37 +1047,46 @@ upll_rc_t VbrFlowFilterEntryMoMgr::TxVote(unc_key_type_t keytype,
   DalCursor *cfg1_cursor = NULL;
 
   for (int i = 0; i < nop; i++) {
+    cfg1_cursor = NULL;
     result_code = DiffConfigDB(UPLL_DT_CANDIDATE, UPLL_DT_RUNNING, op[i], req,
                                nreq, &cfg1_cursor, dmi, MAINTBL);
+    if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+      result_code = UPLL_RC_SUCCESS;
+      UPLL_LOG_DEBUG("diff skipped for op %d", op[i]);
+      DELETE_IF_NOT_NULL(req);
+      DELETE_IF_NOT_NULL(nreq);
+      continue;
+    }
     while (result_code == UPLL_RC_SUCCESS) {
       db_result = dmi->GetNextRecord(cfg1_cursor);
       result_code = DalToUpllResCode(db_result);
       if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
         result_code = UPLL_RC_SUCCESS;
-        UPLL_LOG_DEBUG("No diff found for op %d", op[i]);
+        UPLL_LOG_DEBUG("No more diff found for operation %d", op[i]);
         break;
       }
       val_flowfilter_entry_t* val = reinterpret_cast<val_flowfilter_entry_t *>
-        (GetVal(req));
+          (GetVal(req));
       if ((val->valid[UPLL_IDX_REDIRECT_NODE_FFE] ==
-          UNC_VF_VALID) && 
+           UNC_VF_VALID) &&
           (val->valid[UPLL_IDX_REDIRECT_PORT_FFE] ==
-          UNC_VF_VALID)) {
-          result_code = VerifyRedirectDestination(req, dmi,
-                                                  UPLL_DT_CANDIDATE);
-            if (result_code != UPLL_RC_SUCCESS) {
-              UPLL_LOG_DEBUG("Invalid redirect-destination node/interface");
-              *err_ckv = req;
-              DELETE_IF_NOT_NULL(nreq);
-              dmi->CloseCursor(cfg1_cursor, true);
-              return result_code;
-            }
+           UNC_VF_VALID)) {
+        result_code = VerifyRedirectDestination(req, dmi,
+                                                UPLL_DT_CANDIDATE);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("Invalid redirect-destination node/interface");
+          DEL_USER_DATA(req);  // Delete the controller and domain from req
+          *err_ckv = req;
+          DELETE_IF_NOT_NULL(nreq);
+          dmi->CloseCursor(cfg1_cursor, true);
+          return result_code;
         }
-      } 
-      dmi->CloseCursor(cfg1_cursor, true);
-      DELETE_IF_NOT_NULL(req);
-      DELETE_IF_NOT_NULL(nreq);
-      req = nreq = NULL;
+      }
+    }
+    dmi->CloseCursor(cfg1_cursor, true);
+    DELETE_IF_NOT_NULL(req);
+    DELETE_IF_NOT_NULL(nreq);
+    req = nreq = NULL;
   }
   return result_code;
 }
@@ -1157,103 +1102,66 @@ upll_rc_t VbrFlowFilterEntryMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
     UPLL_LOG_DEBUG("input key is null");
     return UPLL_RC_ERR_GENERIC;
   }
-
+  MoMgrImpl *mgr = NULL;
   key_vbr_flowfilter_entry_t *key_vbr_ffe =
       reinterpret_cast<key_vbr_flowfilter_entry_t *>(ikey->get_key());
-  MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>
-      (const_cast<MoManager *>(GetMoManager(UNC_KT_VBR_FLOWFILTER)));
-
-  result_code = mgr->GetChildConfigKey(okey, NULL);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("GetChildConfigKey returned error - %d", result_code);
-    return result_code;
-  }
-
-  key_vbr_flowfilter_t *vbr_ff_key =
-      reinterpret_cast<key_vbr_flowfilter_t *>(okey->get_key());
-
-  uuu::upll_strncpy(vbr_ff_key->vbr_key.vtn_key.vtn_name,
-        key_vbr_ffe->flowfilter_key.vbr_key.vtn_key.vtn_name,
-        kMaxLenVtnName + 1);
-
-  uuu::upll_strncpy(vbr_ff_key->vbr_key.vbridge_name,
-        key_vbr_ffe->flowfilter_key.vbr_key.vbridge_name,
-        kMaxLenVnodeName + 1);
-
-  vbr_ff_key->direction = key_vbr_ffe->flowfilter_key.direction;
-
-  /* Checks the given vbr_flowfilter exists in DB or not */
-  result_code = mgr->UpdateConfigDB(okey, req->datatype, UNC_OP_READ,
-                                    dmi, MAINTBL);
-
-  if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
-    UPLL_LOG_DEBUG(" Parent VBR_FLOWFILTER key does not exists");
-    delete okey;
-    okey = NULL;
-    return UPLL_RC_ERR_PARENT_DOES_NOT_EXIST;
-  } else {
-    result_code = UPLL_RC_SUCCESS;
-  }
-
-  delete okey;
-  okey = NULL;
 
   /* read val_flowfilter_entry from ikey*/
   val_flowfilter_entry_t *val_flowfilter_entry =
-    static_cast<val_flowfilter_entry_t *>(
-        ikey->get_cfg_val()->get_val());
+      static_cast<val_flowfilter_entry_t *>(
+          ikey->get_cfg_val()->get_val());
 
   if (val_flowfilter_entry->valid[UPLL_IDX_FLOWLIST_NAME_FFE]
-        == UNC_VF_VALID) {
-  /* validate flowlist_name in val_flowfilter_entry exists in FLOWLIST table*/
-  mgr = reinterpret_cast<MoMgrImpl *>
-      (const_cast<MoManager *>(GetMoManager(UNC_KT_FLOWLIST)));
+      == UNC_VF_VALID) {
+    /* validate flowlist_name in val_flowfilter_entry exists in FLOWLIST table*/
+    mgr = reinterpret_cast<MoMgrImpl *>
+        (const_cast<MoManager *>(GetMoManager(UNC_KT_FLOWLIST)));
 
-  if (NULL == mgr) {
-    UPLL_LOG_DEBUG("Unable to get FLOWLIST object");
-    return UPLL_RC_ERR_GENERIC;
-  }
+    if (NULL == mgr) {
+      UPLL_LOG_DEBUG("Unable to get FLOWLIST object");
+      return UPLL_RC_ERR_GENERIC;
+    }
 
-  /** allocate memory for FLOWLIST key_struct */
-  result_code = mgr->GetChildConfigKey(okey, NULL);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Memory allocation failed for FLOWLIST key struct - %d",
-                    result_code);
-    return result_code;
-  }
+    /** allocate memory for FLOWLIST key_struct */
+    result_code = mgr->GetChildConfigKey(okey, NULL);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("Memory allocation failed for FLOWLIST key struct - %d",
+                     result_code);
+      return result_code;
+    }
 
-  /** fill key_flowlist_t from val_flowfilter_entry*/
-  key_flowlist_t *key_flowlist = static_cast<key_flowlist_t*>(
-    okey->get_key());
-  uuu::upll_strncpy(key_flowlist->flowlist_name,
-    val_flowfilter_entry->flowlist_name,
-    kMaxLenFlowListName+1);
+    /** fill key_flowlist_t from val_flowfilter_entry*/
+    key_flowlist_t *key_flowlist = static_cast<key_flowlist_t*>(
+        okey->get_key());
+    uuu::upll_strncpy(key_flowlist->flowlist_name,
+                      val_flowfilter_entry->flowlist_name,
+                      kMaxLenFlowListName+1);
 
-  UPLL_LOG_TRACE("Flowlist name in val_flowfilter_entry %s",
-                  key_flowlist->flowlist_name);
+    UPLL_LOG_TRACE("Flowlist name in val_flowfilter_entry %s",
+                   key_flowlist->flowlist_name);
 
-  /* Check flowlist_name exists in table*/
-  result_code = mgr->UpdateConfigDB(okey, req->datatype,
-                                     UNC_OP_READ, dmi, MAINTBL);
+    /* Check flowlist_name exists in table*/
+    result_code = mgr->UpdateConfigDB(okey, req->datatype,
+                                      UNC_OP_READ, dmi, MAINTBL);
+
+    if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
+      UPLL_LOG_DEBUG("Flowlist name in val_flowfilter_entry does not exists"
+                     "in FLOWLIST table");
+      delete okey;
+      okey = NULL;
+      return UPLL_RC_ERR_CFG_SEMANTIC;
+    } else {
+      result_code = UPLL_RC_SUCCESS;
+    }
 
-  if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
-    UPLL_LOG_DEBUG("Flowlist name in val_flowfilter_entry does not exists"
-                   "in FLOWLIST table");
     delete okey;
     okey = NULL;
-    return UPLL_RC_ERR_CFG_SEMANTIC;
-  } else {
-    result_code = UPLL_RC_SUCCESS;
-  }
-
-  delete okey;
-  okey = NULL;
   }
   if (val_flowfilter_entry->valid[UPLL_IDX_NWM_NAME_FFE]
-        == UNC_VF_VALID) {
+      == UNC_VF_VALID) {
     // validate nwm_name in KT_VBR_NWMONITOR table
     mgr = reinterpret_cast<MoMgrImpl *>
-       (const_cast<MoManager *>(GetMoManager(UNC_KT_VBR_NWMONITOR)));
+        (const_cast<MoManager *>(GetMoManager(UNC_KT_VBR_NWMONITOR)));
 
     if (NULL == mgr) {
       UPLL_LOG_DEBUG("Unable to get KT_VBR_NWMONITOR object");
@@ -1264,33 +1172,29 @@ upll_rc_t VbrFlowFilterEntryMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
     result_code = mgr->GetChildConfigKey(okey, NULL);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Memory allocation failed for key_nwm struct - %d",
-                    result_code);
+                     result_code);
       return result_code;
     }
 
     /** fill key_nwm from key/val VBR_FLOWFILTER_ENTRY structs*/
     key_nwm_t *key_nwm = static_cast<key_nwm_t*>(
-      okey->get_key());
+        okey->get_key());
 
     uuu::upll_strncpy(key_nwm->nwmonitor_name,
-      val_flowfilter_entry->nwm_name,
-      kMaxLenVnodeName+1);
+                      val_flowfilter_entry->nwm_name,
+                      kMaxLenVnodeName+1);
 
     uuu::upll_strncpy(key_nwm->vbr_key.vtn_key.vtn_name,
-      key_vbr_ffe->flowfilter_key.vbr_key.vtn_key.vtn_name,
-      kMaxLenVtnName+1);
-
-    uuu::upll_strncpy(key_nwm->vbr_key.vbridge_name,
-      key_vbr_ffe->flowfilter_key.vbr_key.vbridge_name,
-      kMaxLenVnodeName+1);
+                      key_vbr_ffe->flowfilter_key.vbr_key.vtn_key.vtn_name,
+                      kMaxLenVtnName+1);
 
     /* Check nwm_name exists in table*/
     result_code = mgr->UpdateConfigDB(okey, req->datatype, UNC_OP_READ,
-                                     dmi, MAINTBL);
+                                      dmi, MAINTBL);
 
     if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
       UPLL_LOG_DEBUG("NWM name in val_flowfilter_entry does not exists"
-                   "in KT_VBR_NWMONITOR table");
+                     "in KT_VBR_NWMONITOR table");
       delete okey;
       okey = NULL;
       return UPLL_RC_ERR_CFG_SEMANTIC;
@@ -1301,17 +1205,16 @@ upll_rc_t VbrFlowFilterEntryMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
     delete okey;
     okey = NULL;
   }  // nwm_name is valid
-  result_code = SetRenameFlag(ikey, dmi, req);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("SetRenameFlag failed %d", result_code);
-    return result_code;
-  }
   UPLL_LOG_DEBUG("ValidateAttribute Successfull.");
   return result_code;
 }
 
-upll_rc_t VbrFlowFilterEntryMoMgr::GetValid(void *val, uint64_t indx,
-    uint8_t *&valid, upll_keytype_datatype_t dt_type, MoMgrTables tbl) {
+upll_rc_t VbrFlowFilterEntryMoMgr::GetValid(
+    void *val,
+    uint64_t indx,
+    uint8_t *&valid,
+    upll_keytype_datatype_t dt_type,
+    MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
   if (val == NULL) {
     UPLL_LOG_DEBUG("Memory is not Allocated");
@@ -1320,44 +1223,44 @@ upll_rc_t VbrFlowFilterEntryMoMgr::GetValid(void *val, uint64_t indx,
 
   if (tbl == MAINTBL) {
     switch (indx) {
-    case uudst::vbr_flowfilter_entry::kDbiFlowlistName:
-      valid = &(reinterpret_cast<val_flowfilter_entry *>
-                (val))->valid[UPLL_IDX_FLOWLIST_NAME_FFE];
-      break;
-    case uudst::vbr_flowfilter_entry::kDbiAction:
-      valid = &(reinterpret_cast<val_flowfilter_entry *>
-                (val))->valid[UPLL_IDX_ACTION_FFE];
-      break;
-    case uudst::vbr_flowfilter_entry::kDbiRedirectNode:
-      valid = &(reinterpret_cast<val_flowfilter_entry *>
-                (val))->valid[UPLL_IDX_REDIRECT_NODE_FFE];
-      break;
-    case uudst::vbr_flowfilter_entry::kDbiRedirectPort:
-      valid = &(reinterpret_cast<val_flowfilter_entry *>
-               (val))->valid[UPLL_IDX_REDIRECT_PORT_FFE];
-      break;
-    case uudst::vbr_flowfilter_entry::kDbiModifyDstMac:
-      valid = &(reinterpret_cast<val_flowfilter_entry *>
-               (val))->valid[UPLL_IDX_MODIFY_DST_MAC_FFE];
-      break;
-    case uudst::vbr_flowfilter_entry::kDbiModifySrcMac:
-      valid = &(reinterpret_cast<val_flowfilter_entry *>
-               (val))->valid[UPLL_IDX_MODIFY_SRC_MAC_FFE];
-      break;
-    case uudst::vbr_flowfilter_entry::kDbiNwmName:
-      valid = &(reinterpret_cast<val_flowfilter_entry *>
-               (val))->valid[UPLL_IDX_NWM_NAME_FFE];
-      break;
-    case uudst::vbr_flowfilter_entry::kDbiDscp:
-      valid = &(reinterpret_cast<val_flowfilter_entry *>
-                (val))->valid[UPLL_IDX_DSCP_FFE];
-      break;
-    case uudst::vbr_flowfilter_entry::kDbiPriority:
-      valid = &(reinterpret_cast<val_flowfilter_entry *>
-                (val))->valid[UPLL_IDX_PRIORITY_FFE];
-      break;
-    default:
-      return UPLL_RC_ERR_GENERIC;
+      case uudst::vbr_flowfilter_entry::kDbiFlowlistName:
+        valid = &(reinterpret_cast<val_flowfilter_entry *>
+                  (val))->valid[UPLL_IDX_FLOWLIST_NAME_FFE];
+        break;
+      case uudst::vbr_flowfilter_entry::kDbiAction:
+        valid = &(reinterpret_cast<val_flowfilter_entry *>
+                  (val))->valid[UPLL_IDX_ACTION_FFE];
+        break;
+      case uudst::vbr_flowfilter_entry::kDbiRedirectNode:
+        valid = &(reinterpret_cast<val_flowfilter_entry *>
+                  (val))->valid[UPLL_IDX_REDIRECT_NODE_FFE];
+        break;
+      case uudst::vbr_flowfilter_entry::kDbiRedirectPort:
+        valid = &(reinterpret_cast<val_flowfilter_entry *>
+                  (val))->valid[UPLL_IDX_REDIRECT_PORT_FFE];
+        break;
+      case uudst::vbr_flowfilter_entry::kDbiModifyDstMac:
+        valid = &(reinterpret_cast<val_flowfilter_entry *>
+                  (val))->valid[UPLL_IDX_MODIFY_DST_MAC_FFE];
+        break;
+      case uudst::vbr_flowfilter_entry::kDbiModifySrcMac:
+        valid = &(reinterpret_cast<val_flowfilter_entry *>
+                  (val))->valid[UPLL_IDX_MODIFY_SRC_MAC_FFE];
+        break;
+      case uudst::vbr_flowfilter_entry::kDbiNwmName:
+        valid = &(reinterpret_cast<val_flowfilter_entry *>
+                  (val))->valid[UPLL_IDX_NWM_NAME_FFE];
+        break;
+      case uudst::vbr_flowfilter_entry::kDbiDscp:
+        valid = &(reinterpret_cast<val_flowfilter_entry *>
+                  (val))->valid[UPLL_IDX_DSCP_FFE];
+        break;
+      case uudst::vbr_flowfilter_entry::kDbiPriority:
+        valid = &(reinterpret_cast<val_flowfilter_entry *>
+                  (val))->valid[UPLL_IDX_PRIORITY_FFE];
+        break;
+      default:
+        return UPLL_RC_ERR_GENERIC;
     }
   }
 
@@ -1365,8 +1268,10 @@ upll_rc_t VbrFlowFilterEntryMoMgr::GetValid(void *val, uint64_t indx,
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t VbrFlowFilterEntryMoMgr::AllocVal(ConfigVal *&ck_val,
-    upll_keytype_datatype_t dt_type, MoMgrTables tbl) {
+upll_rc_t VbrFlowFilterEntryMoMgr::AllocVal(
+    ConfigVal *&ck_val,
+    upll_keytype_datatype_t dt_type,
+    MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
   void *val;
 
@@ -1390,8 +1295,9 @@ upll_rc_t VbrFlowFilterEntryMoMgr::AllocVal(ConfigVal *&ck_val,
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t VbrFlowFilterEntryMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
-                                                     ConfigKeyVal *parent_key) {
+upll_rc_t VbrFlowFilterEntryMoMgr::GetChildConfigKey(
+    ConfigKeyVal *&okey,
+    ConfigKeyVal *parent_key) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   key_vbr_flowfilter_entry_t *vbr_ffe_key;
@@ -1454,8 +1360,8 @@ upll_rc_t VbrFlowFilterEntryMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
                         (pkey)->vbr_key.vbridge_name,
                         (kMaxLenVnodeName + 1));
       vbr_ffe_key->flowfilter_key.direction =
-                        reinterpret_cast<key_vbr_flowfilter_t *>
-                        (pkey)->direction;
+          reinterpret_cast<key_vbr_flowfilter_t *>
+          (pkey)->direction;
       break;
     case UNC_KT_VBR_FLOWFILTER_ENTRY:
       uuu::upll_strncpy(vbr_ffe_key->flowfilter_key.vbr_key.vtn_key.vtn_name,
@@ -1467,11 +1373,11 @@ upll_rc_t VbrFlowFilterEntryMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
                         (pkey)->flowfilter_key.vbr_key.vbridge_name,
                         (kMaxLenVnodeName + 1));
       vbr_ffe_key->flowfilter_key.direction =
-                        reinterpret_cast<key_vbr_flowfilter_entry_t *>
-                        (pkey)->flowfilter_key.direction;
+          reinterpret_cast<key_vbr_flowfilter_entry_t *>
+          (pkey)->flowfilter_key.direction;
       vbr_ffe_key->sequence_num =
-                        reinterpret_cast<key_vbr_flowfilter_entry_t *>
-                        (pkey)->sequence_num;
+          reinterpret_cast<key_vbr_flowfilter_entry_t *>
+          (pkey)->sequence_num;
       break;
     case UNC_KT_VBR_NWMONITOR:
       uuu::upll_strncpy(vbr_ffe_key->flowfilter_key.vbr_key.vtn_key.vtn_name,
@@ -1500,8 +1406,10 @@ upll_rc_t VbrFlowFilterEntryMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
   return result_code;
 }
 
-upll_rc_t VbrFlowFilterEntryMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
-    ConfigKeyVal *&req, MoMgrTables tbl) {
+upll_rc_t VbrFlowFilterEntryMoMgr::DupConfigKeyVal(
+    ConfigKeyVal *&okey,
+    ConfigKeyVal *&req,
+    MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
   if (req == NULL) {
     UPLL_LOG_DEBUG("Request is null");
@@ -1528,15 +1436,15 @@ upll_rc_t VbrFlowFilterEntryMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
   if (tmp) {
     if (tbl == MAINTBL) {
       val_flowfilter_entry_t *ival = NULL;
-       ival = reinterpret_cast<val_flowfilter_entry_t *> (GetVal(req));
+      ival = reinterpret_cast<val_flowfilter_entry_t *> (GetVal(req));
       if (NULL != ival) {
         val_flowfilter_entry_t *vbr_flowfilter_entry_val =
             reinterpret_cast<val_flowfilter_entry_t *>
-           (ConfigKeyVal::Malloc(sizeof(val_flowfilter_entry_t)));
+            (ConfigKeyVal::Malloc(sizeof(val_flowfilter_entry_t)));
 
         memcpy(vbr_flowfilter_entry_val, ival, sizeof(val_flowfilter_entry_t));
         tmp1 = new ConfigVal(IpctSt::kIpcStValFlowfilterEntry,
-            vbr_flowfilter_entry_val);
+                             vbr_flowfilter_entry_val);
       }
       if (NULL == tmp1) {
         UPLL_LOG_DEBUG("Memory Not Allocated");
@@ -1551,19 +1459,20 @@ upll_rc_t VbrFlowFilterEntryMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
   ikey = reinterpret_cast<key_vbr_flowfilter_entry_t *> (tkey);
   key_vbr_flowfilter_entry_t *vbr_flowfilter_entry =
       reinterpret_cast<key_vbr_flowfilter_entry_t*>
-        (ConfigKeyVal::Malloc(sizeof(key_vbr_flowfilter_entry_t)));
+      (ConfigKeyVal::Malloc(sizeof(key_vbr_flowfilter_entry_t)));
 
   memcpy(vbr_flowfilter_entry, ikey, sizeof(key_vbr_flowfilter_entry_t));
 
   okey = new ConfigKeyVal(UNC_KT_VBR_FLOWFILTER_ENTRY,
-      IpctSt::kIpcStKeyVbrFlowfilterEntry, vbr_flowfilter_entry,
-      tmp1);
+                          IpctSt::kIpcStKeyVbrFlowfilterEntry,
+                          vbr_flowfilter_entry,
+                          tmp1);
 
   if (okey) {
     SET_USER_DATA(okey, req)
   } else {
     UPLL_LOG_DEBUG("okey is Null");
-    DELETE_IF_NOT_NULL(tmp1); 
+    DELETE_IF_NOT_NULL(tmp1);
     return UPLL_RC_ERR_GENERIC;
   }
 
@@ -1573,11 +1482,14 @@ upll_rc_t VbrFlowFilterEntryMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t VbrFlowFilterEntryMoMgr::GetRenamedUncKey(ConfigKeyVal *ikey,
-    upll_keytype_datatype_t dt_type, DalDmlIntf *dmi, uint8_t *ctrlr_id) {
+upll_rc_t VbrFlowFilterEntryMoMgr::GetRenamedUncKey(
+    ConfigKeyVal *ikey,
+    upll_keytype_datatype_t dt_type,
+    DalDmlIntf *dmi,
+    uint8_t *ctrlr_id) {
   UPLL_FUNC_TRACE;
   UPLL_LOG_TRACE("%s GetRenamedUncKey vbrff_entry start",
-                  ikey->ToStrAll().c_str());
+                 ikey->ToStrAll().c_str());
   ConfigKeyVal *unc_key = NULL;
   if ((NULL == ikey) || (ctrlr_id == NULL) || (NULL == dmi)) {
     UPLL_LOG_DEBUG("ikey/ctrlr_id dmi NULL");
@@ -1587,7 +1499,7 @@ upll_rc_t VbrFlowFilterEntryMoMgr::GetRenamedUncKey(ConfigKeyVal *ikey,
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
   MoMgrImpl *mgrvbr = reinterpret_cast<MoMgrImpl *>
-         (const_cast<MoManager *> (GetMoManager(UNC_KT_VBRIDGE)));
+      (const_cast<MoManager *> (GetMoManager(UNC_KT_VBRIDGE)));
   if (!mgrvbr) {
     UPLL_LOG_TRACE("mgrvbr failed");
     return UPLL_RC_ERR_GENERIC;
@@ -1607,8 +1519,8 @@ upll_rc_t VbrFlowFilterEntryMoMgr::GetRenamedUncKey(ConfigKeyVal *ikey,
     return UPLL_RC_ERR_GENERIC;
   }
   uuu::upll_strncpy(rename_val->ctrlr_vtn_name,
-          ctrlr_key->flowfilter_key.vbr_key.vtn_key.vtn_name,
-          (kMaxLenVtnName + 1));
+                    ctrlr_key->flowfilter_key.vbr_key.vtn_key.vtn_name,
+                    (kMaxLenVtnName + 1));
   rename_val->valid[UPLL_CTRLR_VTN_NAME_VALID] = UNC_VF_VALID;
 
   uuu::upll_strncpy(rename_val->ctrlr_vnode_name,
@@ -1632,7 +1544,7 @@ upll_rc_t VbrFlowFilterEntryMoMgr::GetRenamedUncKey(ConfigKeyVal *ikey,
   SET_USER_DATA_CTRLR(unc_key, ctrlr_id);
   unc_key->AppendCfgVal(IpctSt::kIpcStValRenameVtn, rename_val);
   result_code = mgrvbr->ReadConfigDB(unc_key, dt_type, UNC_OP_READ,
-      dbop, dmi, RENAMETBL);
+                                     dbop, dmi, RENAMETBL);
   if ((UPLL_RC_SUCCESS != result_code) &&
       (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
     UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
@@ -1646,12 +1558,14 @@ upll_rc_t VbrFlowFilterEntryMoMgr::GetRenamedUncKey(ConfigKeyVal *ikey,
         reinterpret_cast<key_vbr_flowfilter_entry_t *> (unc_key->get_key());
 
     uuu::upll_strncpy(ctrlr_key->flowfilter_key.vbr_key.vtn_key.vtn_name,
-            vbr_flowfilter_entry_key->flowfilter_key.vbr_key.vtn_key.vtn_name,
-            (kMaxLenVtnName + 1));
+                      vbr_flowfilter_entry_key->
+                      flowfilter_key.vbr_key.vtn_key.vtn_name,
+                      (kMaxLenVtnName + 1));
 
     uuu::upll_strncpy(ctrlr_key->flowfilter_key.vbr_key.vbridge_name,
-              vbr_flowfilter_entry_key->flowfilter_key.vbr_key.vbridge_name,
-              (kMaxLenVnodeName + 1));
+                      vbr_flowfilter_entry_key->
+                      flowfilter_key.vbr_key.vbridge_name,
+                      (kMaxLenVnodeName + 1));
   }
   mgrvbr = NULL;
   DELETE_IF_NOT_NULL(unc_key);
@@ -1664,40 +1578,40 @@ upll_rc_t VbrFlowFilterEntryMoMgr::GetRenamedUncKey(ConfigKeyVal *ikey,
   }
 
   if (UNC_VF_VALID == val_flowfilter_entry
-                      ->valid[UPLL_IDX_FLOWLIST_NAME_FFE]) {
+      ->valid[UPLL_IDX_FLOWLIST_NAME_FFE]) {
     val_rename_flowlist_t *rename_flowlist =
-      reinterpret_cast<val_rename_flowlist_t*>
-                   (ConfigKeyVal::Malloc(sizeof(val_rename_flowlist_t)));
+        reinterpret_cast<val_rename_flowlist_t*>
+        (ConfigKeyVal::Malloc(sizeof(val_rename_flowlist_t)));
     if (!rename_flowlist) {
       UPLL_LOG_DEBUG("rename_flowlist NULL %d", result_code);
       return UPLL_RC_ERR_GENERIC;
     }
 
     uuu::upll_strncpy(rename_flowlist->flowlist_newname,
-                    val_flowfilter_entry->flowlist_name,
-                    (kMaxLenFlowListName + 1));
-  rename_flowlist->valid[UPLL_IDX_RENAME_FLOWLIST_RFL] = UNC_VF_VALID;
+                      val_flowfilter_entry->flowlist_name,
+                      (kMaxLenFlowListName + 1));
+    rename_flowlist->valid[UPLL_IDX_RENAME_FLOWLIST_RFL] = UNC_VF_VALID;
 
-  MoMgrImpl* mgr = reinterpret_cast<MoMgrImpl *>
-         (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
-  if (!mgr) {
-    UPLL_LOG_DEBUG("mgr failed");
-    if (rename_flowlist) free(rename_flowlist);
-    return UPLL_RC_ERR_GENERIC;
-  }
-  result_code = mgr->GetChildConfigKey(unc_key, NULL);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("GetChildConfigKey Returned an error");
-    free(rename_flowlist);
-    mgr = NULL;
-    return result_code;
-  }
-  SET_USER_DATA_CTRLR(unc_key, ctrlr_id);
-  unc_key->AppendCfgVal(IpctSt::kIpcStValRenameFlowlist, rename_flowlist);
-  result_code = mgr->ReadConfigDB(unc_key, dt_type, UNC_OP_READ, dbop, dmi,
-      RENAMETBL);
-  if ((UPLL_RC_SUCCESS != result_code) &&
-      (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
+    MoMgrImpl* mgr = reinterpret_cast<MoMgrImpl *>
+        (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
+    if (!mgr) {
+      UPLL_LOG_DEBUG("mgr failed");
+      if (rename_flowlist) free(rename_flowlist);
+      return UPLL_RC_ERR_GENERIC;
+    }
+    result_code = mgr->GetChildConfigKey(unc_key, NULL);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG("GetChildConfigKey Returned an error");
+      free(rename_flowlist);
+      mgr = NULL;
+      return result_code;
+    }
+    SET_USER_DATA_CTRLR(unc_key, ctrlr_id);
+    unc_key->AppendCfgVal(IpctSt::kIpcStValRenameFlowlist, rename_flowlist);
+    result_code = mgr->ReadConfigDB(unc_key, dt_type, UNC_OP_READ, dbop, dmi,
+                                    RENAMETBL);
+    if ((UPLL_RC_SUCCESS != result_code) &&
+        (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
       UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
       DELETE_IF_NOT_NULL(unc_key);
       mgr = NULL;
@@ -1709,21 +1623,21 @@ upll_rc_t VbrFlowFilterEntryMoMgr::GetRenamedUncKey(ConfigKeyVal *ikey,
       key_flowlist = reinterpret_cast<key_flowlist_t *> (unc_key->get_key());
 
       uuu::upll_strncpy(val_flowfilter_entry->flowlist_name,
-                      key_flowlist->flowlist_name,
-                      (kMaxLenFlowListName + 1));
+                        key_flowlist->flowlist_name,
+                        (kMaxLenFlowListName + 1));
     }
     DELETE_IF_NOT_NULL(unc_key);
     mgr = NULL;
   }
 
   if ((UNC_VF_VALID ==
-      val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_NODE_FFE]) &&
+       val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_NODE_FFE]) &&
       (UNC_VF_VALID ==
-      val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_PORT_FFE])) {
+       val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_PORT_FFE])) {
     unc_key_type_t child_key[]= { UNC_KT_VBRIDGE, UNC_KT_VROUTER };
     bool isRedirectVnodeVbridge = false;
     for (unsigned int i = 0;
-      i < sizeof(child_key)/sizeof(child_key[0]); i++) {
+         i < sizeof(child_key)/sizeof(child_key[0]); i++) {
       const unc_key_type_t ktype = child_key[i];
       MoMgrImpl *mgrvbr = reinterpret_cast<MoMgrImpl *>(
           const_cast<MoManager *>(GetMoManager(ktype)));
@@ -1732,15 +1646,15 @@ upll_rc_t VbrFlowFilterEntryMoMgr::GetRenamedUncKey(ConfigKeyVal *ikey,
         return UPLL_RC_ERR_GENERIC;
       }
       val_rename_vnode *rename_val = reinterpret_cast<val_rename_vnode*>
-        (ConfigKeyVal::Malloc(sizeof(val_rename_vnode)));
+          (ConfigKeyVal::Malloc(sizeof(val_rename_vnode)));
       if (!rename_val) {
         UPLL_LOG_TRACE("rename_val NULL");
         return UPLL_RC_ERR_GENERIC;
       }
 
       uuu::upll_strncpy(rename_val->ctrlr_vnode_name,
-                       val_flowfilter_entry->redirect_node,
-                       (kMaxLenVnodeName + 1));
+                        val_flowfilter_entry->redirect_node,
+                        (kMaxLenVnodeName + 1));
       rename_val->valid[UPLL_CTRLR_VNODE_NAME_VALID] = UNC_VF_VALID;
 
       result_code = mgrvbr->GetChildConfigKey(unc_key, NULL);
@@ -1752,10 +1666,14 @@ upll_rc_t VbrFlowFilterEntryMoMgr::GetRenamedUncKey(ConfigKeyVal *ikey,
       }
       SET_USER_DATA_CTRLR(unc_key, ctrlr_id);
       unc_key->AppendCfgVal(IpctSt::kIpcStValRenameVtn, rename_val);
-      result_code = mgrvbr->ReadConfigDB(unc_key, dt_type, UNC_OP_READ, dbop, dmi,
-        RENAMETBL);
+      result_code = mgrvbr->ReadConfigDB(
+          unc_key, dt_type,
+          UNC_OP_READ,
+          dbop,
+          dmi,
+          RENAMETBL);
       if ((UPLL_RC_SUCCESS != result_code) &&
-        (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
+          (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
         UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
         DELETE_IF_NOT_NULL(unc_key);
         mgrvbr = NULL;
@@ -1767,13 +1685,13 @@ upll_rc_t VbrFlowFilterEntryMoMgr::GetRenamedUncKey(ConfigKeyVal *ikey,
           isRedirectVnodeVbridge = true;
           key_vbr *vbr_key = reinterpret_cast<key_vbr *>(unc_key->get_key());
           uuu::upll_strncpy(val_flowfilter_entry->redirect_node,
-                          vbr_key->vbridge_name,
-                          (kMaxLenVnodeName + 1));
+                            vbr_key->vbridge_name,
+                            (kMaxLenVnodeName + 1));
         } else if (unc_key->get_key_type() == UNC_KT_VROUTER) {
           key_vrt *vrt_key = reinterpret_cast<key_vrt *>(unc_key->get_key());
           uuu::upll_strncpy(val_flowfilter_entry->redirect_node,
-                           vrt_key->vrouter_name,
-                          (kMaxLenVnodeName + 1));
+                            vrt_key->vrouter_name,
+                            (kMaxLenVnodeName + 1));
         }
       }
       DELETE_IF_NOT_NULL(unc_key);
@@ -1785,7 +1703,7 @@ upll_rc_t VbrFlowFilterEntryMoMgr::GetRenamedUncKey(ConfigKeyVal *ikey,
     }
   }
   UPLL_LOG_TRACE("%s GetRenamedUncKey vbrff_entry end",
-                  ikey->ToStrAll().c_str());
+                 ikey->ToStrAll().c_str());
   DELETE_IF_NOT_NULL(unc_key);
   return UPLL_RC_SUCCESS;
 }
@@ -1799,362 +1717,154 @@ upll_rc_t VbrFlowFilterEntryMoMgr::GetRenamedControllerKey(
   UPLL_FUNC_TRACE;
   ConfigKeyVal *okey = NULL;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
-  uint8_t rename = 0;
-
+  if (NULL == ctrlr_dom) {
+    UPLL_LOG_DEBUG("ctrlr null");
+    return UPLL_RC_ERR_GENERIC;
+  }
   /* Get the controller's redirect node(vbridge/vrt) name -start*/
   val_flowfilter_entry_t *val_flowfilter_entry =
       reinterpret_cast<val_flowfilter_entry_t *> (GetVal(ikey));
 
   if (val_flowfilter_entry) {
     if ((UNC_VF_VALID ==
-      val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_NODE_FFE]) &&
-      (UNC_VF_VALID ==
-      val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_PORT_FFE])) {
+         val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_NODE_FFE]) &&
+        (UNC_VF_VALID ==
+         val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_PORT_FFE])) {
       unc_key_type_t child_key[]= { UNC_KT_VBRIDGE, UNC_KT_VROUTER };
       bool isRedirectVnodeVbridge = false;
       for (unsigned int i = 0;
-        i < sizeof(child_key)/sizeof(child_key[0]); i++) {
+           i < sizeof(child_key)/sizeof(child_key[0]); i++) {
         const unc_key_type_t ktype = child_key[i];
         MoMgrImpl *mgrvbr = reinterpret_cast<MoMgrImpl *>(
-          const_cast<MoManager *>(GetMoManager(ktype)));
-      if (!mgrvbr) {
-        UPLL_LOG_DEBUG("mgrvbr failed");
-        return UPLL_RC_ERR_GENERIC;
-      }
-
-      result_code = mgrvbr->GetChildConfigKey(okey, NULL);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("GetChildConfigKey fail");
-        return result_code;
-      }
-      if (NULL != ctrlr_dom) {
-        SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
-        // SET_USER_DATA_CTRLR(okey, ctrlr_dom->ctrlr);
-      } else {
-        UPLL_LOG_DEBUG("ctrlr null");
-        DELETE_IF_NOT_NULL(okey);
-        return UPLL_RC_ERR_GENERIC;
-      }
-      UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
-      if (okey->get_key_type() == UNC_KT_VBRIDGE) {
-        uuu::upll_strncpy(reinterpret_cast<key_vbr_t *>
-           (okey->get_key())->vbridge_name,
-        reinterpret_cast<val_flowfilter_entry_t *>(ikey->get_cfg_val()->
-           get_val())->redirect_node, (kMaxLenVnodeName + 1));
-
-        UPLL_LOG_DEBUG("redirect node vbr name (%s) (%s)",
-        reinterpret_cast<key_vbr_t *>(okey->get_key())->vbridge_name,
-        reinterpret_cast<val_flowfilter_entry_t *>(ikey->get_cfg_val()->
-           get_val())->redirect_node);
-      } else if (okey->get_key_type() == UNC_KT_VROUTER) {
-        uuu::upll_strncpy(reinterpret_cast<key_vrt_t *>
-            (okey->get_key())->vrouter_name,
-        reinterpret_cast<val_flowfilter_entry_t *>(ikey->get_cfg_val()->
-            get_val())->redirect_node, (kMaxLenVnodeName + 1));
-
-        UPLL_LOG_DEBUG("redirect node vrt name (%s) (%s)",
-        reinterpret_cast<key_vrt_t *>(okey->get_key())->vrouter_name,
-        reinterpret_cast<val_flowfilter_entry_t *>(ikey->get_cfg_val()->
-           get_val())->redirect_node);
-      }
+            const_cast<MoManager *>(GetMoManager(ktype)));
+        if (!mgrvbr) {
+          UPLL_LOG_DEBUG("mgrvbr failed");
+          return UPLL_RC_ERR_GENERIC;
+        }
 
-      DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr | kOpMatchDomain, kOpInOutFlag };
-      result_code = mgrvbr->ReadConfigDB(okey, dt_type, UNC_OP_READ,
-                                dbop, dmi, RENAMETBL);
-      if (result_code != UPLL_RC_SUCCESS) {
-        if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
-          UPLL_LOG_DEBUG("ReadConfigDB fail");
-          DELETE_IF_NOT_NULL(okey);
+        result_code = mgrvbr->GetChildConfigKey(okey, NULL);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("GetChildConfigKey fail");
           return result_code;
         }
-      }
+        SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
+        UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
+                       ctrlr_dom->domain);
+        if (okey->get_key_type() == UNC_KT_VBRIDGE) {
+          uuu::upll_strncpy(reinterpret_cast<key_vbr_t *>
+                            (okey->get_key())->vbridge_name,
+                            reinterpret_cast<val_flowfilter_entry_t *>
+                            (ikey->get_cfg_val()->
+                             get_val())->redirect_node,
+                            (kMaxLenVnodeName + 1));
+
+          UPLL_LOG_DEBUG("redirect node vbr name (%s) (%s)",
+                         reinterpret_cast<key_vbr_t *>
+                         (okey->get_key())->vbridge_name,
+                         reinterpret_cast<val_flowfilter_entry_t *>
+                         (ikey->get_cfg_val()->
+                          get_val())->redirect_node);
+        } else if (okey->get_key_type() == UNC_KT_VROUTER) {
+          uuu::upll_strncpy(reinterpret_cast<key_vrt_t *>
+                            (okey->get_key())->vrouter_name,
+                            reinterpret_cast<val_flowfilter_entry_t *>
+                            (ikey->get_cfg_val()->
+                             get_val())->redirect_node,
+                            (kMaxLenVnodeName + 1));
+
+          UPLL_LOG_DEBUG("redirect node vrt name (%s) (%s)",
+                         reinterpret_cast<key_vrt_t *>
+                         (okey->get_key())->vrouter_name,
+                         reinterpret_cast<val_flowfilter_entry_t *>
+                         (ikey->get_cfg_val()->
+                          get_val())->redirect_node);
+        }
 
-      if (result_code == UPLL_RC_SUCCESS) {
-        val_rename_vnode *rename_val = NULL;
-        isRedirectVnodeVbridge = true;
-        rename_val = reinterpret_cast<val_rename_vnode *> (GetVal(okey));
-        if (!rename_val) {
-          UPLL_LOG_DEBUG("rename_val NULL.");
-          DELETE_IF_NOT_NULL(okey);
-          return UPLL_RC_ERR_GENERIC;
+        DbSubOp dbop = { kOpReadSingle,
+          kOpMatchCtrlr | kOpMatchDomain,
+          kOpInOutFlag };
+        result_code = mgrvbr->ReadConfigDB(okey, dt_type, UNC_OP_READ,
+                                           dbop, dmi, RENAMETBL);
+        if (result_code != UPLL_RC_SUCCESS) {
+          if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+            UPLL_LOG_DEBUG("ReadConfigDB fail");
+            DELETE_IF_NOT_NULL(okey);
+            return result_code;
+          }
         }
 
-        uuu::upll_strncpy(reinterpret_cast<val_flowfilter_entry_t*>
-             (ikey->get_cfg_val()->get_val())->redirect_node,
-             rename_val->ctrlr_vnode_name, (kMaxLenVtnName + 1));
-      }
-      DELETE_IF_NOT_NULL(okey);
-      if (isRedirectVnodeVbridge)
-        break;
+        if (result_code == UPLL_RC_SUCCESS) {
+          val_rename_vnode *rename_val = NULL;
+          isRedirectVnodeVbridge = true;
+          rename_val = reinterpret_cast<val_rename_vnode *> (GetVal(okey));
+          if (!rename_val) {
+            UPLL_LOG_DEBUG("rename_val NULL.");
+            DELETE_IF_NOT_NULL(okey);
+            return UPLL_RC_ERR_GENERIC;
+          }
+
+          uuu::upll_strncpy(reinterpret_cast<val_flowfilter_entry_t*>
+                            (ikey->get_cfg_val()->get_val())->redirect_node,
+                            rename_val->ctrlr_vnode_name,
+                            (kMaxLenVnodeName + 1));
+        }
+        DELETE_IF_NOT_NULL(okey);
+        if (isRedirectVnodeVbridge)
+          break;
       }
     }
   }
   /* -end*/
-
-  IsRenamed(ikey, dt_type, dmi, rename);
-  if (!rename) {
-    UPLL_LOG_DEBUG("no renamed");
-    return UPLL_RC_SUCCESS;
-  }
   UPLL_LOG_TRACE("Start Input ConfigKeyVal %s",
                  ikey->ToStrAll().c_str());
   MoMgrImpl *mgrvbr = reinterpret_cast<MoMgrImpl *>
-           (const_cast<MoManager *> (GetMoManager(UNC_KT_VBRIDGE)));
-
-    result_code = mgrvbr->GetChildConfigKey(okey, NULL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetChildConfigKey fail");
-      return result_code;
-    }
-
-    if (NULL != ctrlr_dom) {
-      SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom)
-    }
-    else {
-      UPLL_LOG_DEBUG("ctrlr null");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
+      (const_cast<MoManager *> (GetMoManager(UNC_KT_VBRIDGE)));
 
-    uuu::upll_strncpy(reinterpret_cast<key_vbr *> (okey->get_key())->vtn_key.vtn_name,
-                      reinterpret_cast<key_vbr_flowfilter_entry_t *>
-                      (ikey->get_key())->flowfilter_key.vbr_key.vtn_key.vtn_name,
-                      (kMaxLenVnodeName + 1));
-    UPLL_LOG_DEBUG("vtn name (%s) (%s)",
-        reinterpret_cast<key_vbr *> (okey->get_key())->vtn_key.vtn_name,
-                      reinterpret_cast<key_vbr_flowfilter_entry_t *>
-                      (ikey->get_key())->flowfilter_key.vbr_key.vtn_key.vtn_name);
-
-    uuu::upll_strncpy(reinterpret_cast<key_vbr *>
-                      (okey->get_key())->vbridge_name,
-           reinterpret_cast<key_vbr_flowfilter_entry_t *>
-         (ikey->get_key())->flowfilter_key.vbr_key.vbridge_name,
-         (kMaxLenVnodeName + 1));
-
-    UPLL_LOG_DEBUG("vtn name (%s) (%s)",
-                      reinterpret_cast<key_vbr *>
-                      (okey->get_key())->vbridge_name,
-                      reinterpret_cast<key_vbr_flowfilter_entry_t *>
-                      (ikey->get_key())->flowfilter_key.vbr_key.vbridge_name);
-    DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr | kOpMatchDomain, kOpInOutFlag };
-    result_code = mgrvbr->ReadConfigDB(okey, dt_type, UNC_OP_READ,
-                              dbop, dmi, RENAMETBL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-        UPLL_LOG_DEBUG("ReadConfigDB no instance");
-        DELETE_IF_NOT_NULL(okey);
-        return UPLL_RC_SUCCESS;
-      }
-     UPLL_LOG_DEBUG("ReadConfigDB fail");
-     DELETE_IF_NOT_NULL(okey);
-     return result_code;
-    }
-    val_rename_vnode *rename_val = NULL;
-    rename_val = reinterpret_cast<val_rename_vnode *> (GetVal(okey));
-    if (!rename_val) {
-      UPLL_LOG_DEBUG("Vbr Name is not Valid.");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-
-  if (rename & VTN_RENAME_FLAG) {
-    UPLL_LOG_DEBUG("vtn name renamed");
-    uuu::upll_strncpy(reinterpret_cast<key_vbr_flowfilter_entry_t *>
-              (ikey->get_key())->flowfilter_key.vbr_key.vtn_key.vtn_name,
-              rename_val->ctrlr_vtn_name,
-              (kMaxLenVtnName + 1));
-  }
-
-  if (rename & VBR_RENAME_FLAG) {
-    UPLL_LOG_DEBUG("vbr name renamed");
-    uuu::upll_strncpy(reinterpret_cast<char *>
-         (reinterpret_cast<key_vbr_flowfilter_entry_t *>
-         (ikey->get_key())->flowfilter_key.vbr_key.vbridge_name),
-         reinterpret_cast<const char *> (rename_val->ctrlr_vnode_name),
-         kMaxLenVnodeName + 1);
-  }
-
-  DELETE_IF_NOT_NULL(okey);
-
-  // Flowlist is Renamed
-  if (rename & FLOWLIST_RENAME_FLAG) {
-    UPLL_LOG_DEBUG("flowlist name renamed");
-    if (!GetVal(ikey)) {
-      UPLL_LOG_DEBUG("value structure is null");
-      return UPLL_RC_SUCCESS;
-    }
-    MoMgrImpl *mgrflist = reinterpret_cast<MoMgrImpl *>
-          (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
-    result_code = mgrflist->GetChildConfigKey(okey, NULL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetChildConfigKey fail");
-      return result_code;
-    }
-    if (NULL != ctrlr_dom) {
-      SET_USER_DATA_CTRLR(okey, ctrlr_dom->ctrlr);
-    } else {
-      UPLL_LOG_DEBUG("ctrlr null");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
-
-    uuu::upll_strncpy(
-      reinterpret_cast<key_flowlist_t *>
-     (okey->get_key())->flowlist_name,
-     reinterpret_cast<val_flowfilter_entry_t *>(ikey->get_cfg_val()->
-     get_val())->flowlist_name,
-     (kMaxLenFlowListName + 1));
-      UPLL_LOG_DEBUG("flowlist name (%s) (%s)",
-      reinterpret_cast<key_flowlist_t *>
-     (okey->get_key())->flowlist_name,
-     reinterpret_cast<val_flowfilter_entry_t *>(ikey->get_cfg_val()->
-     get_val())->flowlist_name);
-//    UPLL_LOG_DEBUG("flowlist name (%s) (%s)", (okey->get_key())->flowlist_name,
-//                  (ikey->get_cfg_val()->get_val())->flowlist_name);
-    DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutFlag };
-    result_code = mgrflist->ReadConfigDB(okey, dt_type, UNC_OP_READ,
-                                dbop, dmi, RENAMETBL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-        UPLL_LOG_DEBUG("ReadConfigDB no instance");
-        DELETE_IF_NOT_NULL(okey);
-        return UPLL_RC_SUCCESS;
-      }
-      UPLL_LOG_DEBUG("ReadConfigDB fail");
-      DELETE_IF_NOT_NULL(okey);
-      return result_code;
-    }
-
-    val_rename_flowlist_t *rename_val = NULL;
-    rename_val = reinterpret_cast<val_rename_flowlist_t *> (GetVal(okey));
-
-    if (!rename_val) {
-      UPLL_LOG_DEBUG("flowlist is not valid");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-
-    uuu::upll_strncpy(reinterpret_cast<val_flowfilter_entry_t*>
-        (ikey->get_cfg_val()->get_val())->flowlist_name,
-        rename_val->flowlist_newname,
-        (kMaxLenFlowListName + 1));
-    DELETE_IF_NOT_NULL(okey);
-  }
-  UPLL_LOG_TRACE("%s GetRenamedCtrl vbr_ff_entry end",
-                 ikey->ToStrAll().c_str());
-  UPLL_LOG_DEBUG("Renamed Controller key is sucessfull.");
-  return UPLL_RC_SUCCESS;
-#if 0
-  /* Vtn renamed */
-  if (rename & VTN_RENAME_FLAG) {
-    UPLL_LOG_DEBUG("vtn name renamed");
-    MoMgrImpl *mgrvtn = reinterpret_cast<MoMgrImpl *>
-      (const_cast<MoManager *> (GetMoManager(UNC_KT_VTN)));
-    result_code = mgrvtn->GetChildConfigKey(okey, NULL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetChildConfigKey fail");
-      return result_code;
-    }
-
-    if (ctrlr_dom != NULL) {
-      SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
-    } else {
-      UPLL_LOG_DEBUG("ctrlr null");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
-
-    uuu::upll_strncpy(reinterpret_cast<key_vtn *>(okey->get_key())->vtn_name,
-                      reinterpret_cast<key_vbr_flowfilter_entry_t *>
-                     (ikey->get_key())->flowfilter_key.vbr_key.vtn_key.vtn_name,
-                      (kMaxLenVtnName + 1));
-//    UPLL_LOG_DEBUG("vtn name (%s) (%s)", (okey->get_key())->vtn_name,
-//                  (ikey->get_key())->flowfilter_key.vbr_key.vtn_key.vtn_name);
-
-    DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutFlag };
-    result_code = mgrvtn->ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop, dmi, RENAMETBL);
-    if ( result_code != UPLL_RC_SUCCESS ) {
-      UPLL_LOG_DEBUG("ReadConfigDB fail");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-    val_rename_vtn *rename_val = NULL;
-    rename_val = reinterpret_cast<val_rename_vtn *> (GetVal(okey));
-
-    if (!rename_val) {
-      UPLL_LOG_DEBUG("Vtn Name is not Valid.");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-
-    uuu::upll_strncpy(reinterpret_cast<key_vbr_flowfilter_entry_t *>
-              (ikey->get_key())->flowfilter_key.vbr_key.vtn_key.vtn_name,
-              rename_val->new_name,
-              (kMaxLenVtnName + 1));
-    DELETE_IF_NOT_NULL(okey);
+  result_code = mgrvbr->GetChildConfigKey(okey, NULL);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_DEBUG("GetChildConfigKey fail");
+    return result_code;
   }
-  // Vbr Renamed
-  if (rename & VBR_RENAME_FLAG) {
-    UPLL_LOG_DEBUG("vbr name renamed");
-    MoMgrImpl *mgrvbr = reinterpret_cast<MoMgrImpl *>
-           (const_cast<MoManager *> (GetMoManager(UNC_KT_VBRIDGE)));
 
-    result_code = mgrvbr->GetChildConfigKey(okey, NULL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetChildConfigKey fail");
-      return result_code;
-    }
+  SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom)
 
-    if (NULL != ctrlr_dom) {
-      SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom)
-    }
-    else {
-      UPLL_LOG_DEBUG("ctrlr null");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
+      UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
+                     ctrlr_dom->domain);
 
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
+  uuu::upll_strncpy(reinterpret_cast<key_vbr *>
+                    (okey->get_key())->vtn_key.vtn_name,
+                    reinterpret_cast<key_vbr_flowfilter_entry_t *>
+                    (ikey->get_key())->flowfilter_key.vbr_key.vtn_key.vtn_name,
+                    (kMaxLenVnodeName + 1));
+  UPLL_LOG_DEBUG("vtn name (%s) (%s)",
+                 reinterpret_cast<key_vbr *>
+                 (okey->get_key())->vtn_key.vtn_name,
+                 reinterpret_cast<key_vbr_flowfilter_entry_t *>
+                 (ikey->get_key())->flowfilter_key.vbr_key.vtn_key.vtn_name);
+
+  uuu::upll_strncpy(reinterpret_cast<key_vbr *>
+                    (okey->get_key())->vbridge_name,
+                    reinterpret_cast<key_vbr_flowfilter_entry_t *>
+                    (ikey->get_key())->flowfilter_key.vbr_key.vbridge_name,
+                    (kMaxLenVnodeName + 1));
 
-    uuu::upll_strncpy(reinterpret_cast<key_vbr *> (okey->get_key())->vtn_key.vtn_name,
-                      reinterpret_cast<key_vbr_flowfilter_entry_t *>
-                      (ikey->get_key())->flowfilter_key.vbr_key.vtn_key.vtn_name,
-                      (kMaxLenVnodeName + 1));
-    UPLL_LOG_DEBUG("vtn name (%s) (%s)",
-        reinterpret_cast<key_vbr *> (okey->get_key())->vtn_key.vtn_name,
-                      reinterpret_cast<key_vbr_flowfilter_entry_t *>
-                      (ikey->get_key())->flowfilter_key.vbr_key.vtn_key.vtn_name);
-
-    uuu::upll_strncpy(reinterpret_cast<key_vbr *>
-                      (okey->get_key())->vbridge_name,
-           reinterpret_cast<key_vbr_flowfilter_entry_t *>
-         (ikey->get_key())->flowfilter_key.vbr_key.vbridge_name,
-         (kMaxLenVnodeName + 1));
-//    UPLL_LOG_DEBUG("vbr name (%s) (%s)", (okey->get_key())->vbridge_name,
-//                  (ikey->get_key())->flowfilter_key.vbr_key.vbridge_name);
-    UPLL_LOG_DEBUG("vtn name (%s) (%s)",
-  reinterpret_cast<key_vbr *>
-                      (okey->get_key())->vbridge_name,
-           reinterpret_cast<key_vbr_flowfilter_entry_t *>
-         (ikey->get_key())->flowfilter_key.vbr_key.vbridge_name);
-    DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutFlag };
-    result_code = mgrvbr->ReadConfigDB(okey, dt_type, UNC_OP_READ,
-                              dbop, dmi, RENAMETBL);
-    if (result_code != UPLL_RC_SUCCESS) {
-     UPLL_LOG_DEBUG("ReadConfigDB fail");
-     DELETE_IF_NOT_NULL(okey); 
-     return result_code;
-    }
+  UPLL_LOG_DEBUG("vtn name (%s) (%s)",
+                 reinterpret_cast<key_vbr *>
+                 (okey->get_key())->vbridge_name,
+                 reinterpret_cast<key_vbr_flowfilter_entry_t *>
+                 (ikey->get_key())->flowfilter_key.vbr_key.vbridge_name);
+  DbSubOp dbop = { kOpReadSingle,
+    kOpMatchCtrlr | kOpMatchDomain,
+    kOpInOutFlag };
+  result_code = mgrvbr->ReadConfigDB(okey, dt_type, UNC_OP_READ,
+                                     dbop, dmi, RENAMETBL);
+  if ((result_code != UPLL_RC_SUCCESS) &&
+      (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
+    UPLL_LOG_DEBUG("ReadConfigDB fail");
+    DELETE_IF_NOT_NULL(okey);
+    return result_code;
+  }
+  if (UPLL_RC_SUCCESS == result_code) {
     val_rename_vnode *rename_val = NULL;
     rename_val = reinterpret_cast<val_rename_vnode *> (GetVal(okey));
     if (!rename_val) {
@@ -2162,49 +1872,67 @@ upll_rc_t VbrFlowFilterEntryMoMgr::GetRenamedControllerKey(
       DELETE_IF_NOT_NULL(okey);
       return UPLL_RC_ERR_GENERIC;
     }
+
+    uuu::upll_strncpy(reinterpret_cast<key_vbr_flowfilter_entry_t *>
+                      (ikey->get_key())->
+                      flowfilter_key.vbr_key.vtn_key.vtn_name,
+                      rename_val->ctrlr_vtn_name,
+                      (kMaxLenVtnName + 1));
+
     uuu::upll_strncpy(reinterpret_cast<char *>
-           (reinterpret_cast<key_vbr_flowfilter_entry_t *>
-           (ikey->get_key())->flowfilter_key.vbr_key.vbridge_name),
-           reinterpret_cast<const char *> (rename_val->ctrlr_vnode_name),
-           kMaxLenVnodeName + 1);
-    DELETE_IF_NOT_NULL(okey);
+                      (reinterpret_cast<key_vbr_flowfilter_entry_t *>
+                       (ikey->get_key())->flowfilter_key.vbr_key.vbridge_name),
+                      reinterpret_cast<const char *>
+                      (rename_val->ctrlr_vnode_name),
+                      kMaxLenVnodeName + 1);
   }
+  DELETE_IF_NOT_NULL(okey);
 
   // Flowlist is Renamed
-  if (rename & FLOWLIST_RENAME_FLAG) {
-    UPLL_LOG_DEBUG("flowlist name renamed");
-    MoMgrImpl *mgrflist = reinterpret_cast<MoMgrImpl *>
-          (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
-    result_code = mgrflist->GetChildConfigKey(okey, NULL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetChildConfigKey fail");
-      return result_code;
-    }
-    if (NULL != ctrlr_dom) {
-      SET_USER_DATA_CTRLR(okey, ctrlr_dom->ctrlr);
-    } else {
-      UPLL_LOG_DEBUG("ctrlr null");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
+  val_flowfilter_entry_t *val_ffe = reinterpret_cast
+      <val_flowfilter_entry_t *>(GetVal(ikey));
+  if (NULL == val_ffe) {
+    UPLL_LOG_DEBUG("value structure is null");
+    return UPLL_RC_SUCCESS;
+  }
+  if (strlen(reinterpret_cast<char *>
+             (val_ffe->flowlist_name)) == 0) {
+    return UPLL_RC_SUCCESS;
+  }
+  MoMgrImpl *mgrflist = reinterpret_cast<MoMgrImpl *>
+      (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
+  result_code = mgrflist->GetChildConfigKey(okey, NULL);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_DEBUG("GetChildConfigKey fail");
+    return result_code;
+  }
+  SET_USER_DATA_CTRLR(okey, ctrlr_dom->ctrlr);
 
   uuu::upll_strncpy(
       reinterpret_cast<key_flowlist_t *>
-     (okey->get_key())->flowlist_name,
-     reinterpret_cast<val_flowfilter_entry_t *> (ikey->get_cfg_val()->
-     get_val())->flowlist_name,
-     (kMaxLenFlowListName + 1));
-    DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutFlag };
-    result_code = mgrflist->ReadConfigDB(okey, dt_type, UNC_OP_READ,
-                                dbop, dmi, RENAMETBL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("ReadConfigDB fail");
-      DELETE_IF_NOT_NULL(okey);
-      return result_code;
-    }
-
+      (okey->get_key())->flowlist_name,
+      reinterpret_cast<val_flowfilter_entry_t *>(ikey->get_cfg_val()->
+                                                 get_val())->flowlist_name,
+      (kMaxLenFlowListName + 1));
+  UPLL_LOG_DEBUG("flowlist name (%s) (%s)",
+                 reinterpret_cast<key_flowlist_t *>
+                 (okey->get_key())->flowlist_name,
+                 reinterpret_cast<val_flowfilter_entry_t *>
+                 (ikey->get_cfg_val()->
+                  get_val())->flowlist_name);
+  //    UPLL_LOG_DEBUG("flowlist name (%s) (%s)",
+  //    (okey->get_key())->flowlist_name,
+  //                  (ikey->get_cfg_val()->get_val())->flowlist_name);
+  DbSubOp dbop1 = { kOpReadSingle, kOpMatchCtrlr, kOpInOutFlag };
+  result_code = mgrflist->ReadConfigDB(okey, dt_type, UNC_OP_READ,
+                                       dbop1, dmi, RENAMETBL);
+  if ((result_code != UPLL_RC_SUCCESS) &&
+      (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
+    UPLL_LOG_DEBUG("ReadConfigDB fail");
+    DELETE_IF_NOT_NULL(okey);
+    return result_code;
+  }
+  if (UPLL_RC_SUCCESS == result_code) {
     val_rename_flowlist_t *rename_val = NULL;
     rename_val = reinterpret_cast<val_rename_flowlist_t *> (GetVal(okey));
 
@@ -2215,55 +1943,55 @@ upll_rc_t VbrFlowFilterEntryMoMgr::GetRenamedControllerKey(
     }
 
     uuu::upll_strncpy(reinterpret_cast<val_flowfilter_entry_t*>
-        (ikey->get_cfg_val()->get_val())->flowlist_name,
-        rename_val->flowlist_newname,
-        (kMaxLenFlowListName + 1));
-    SET_USER_DATA_FLAGS(ikey, rename);
-    DELETE_IF_NOT_NULL(okey);
+                      (ikey->get_cfg_val()->get_val())->flowlist_name,
+                      rename_val->flowlist_newname,
+                      (kMaxLenFlowListName + 1));
   }
+  DELETE_IF_NOT_NULL(okey);
   UPLL_LOG_TRACE("%s GetRenamedCtrl vbr_ff_entry end",
                  ikey->ToStrAll().c_str());
   UPLL_LOG_DEBUG("Renamed Controller key is sucessfull.");
   return UPLL_RC_SUCCESS;
-#endif
 }
-upll_rc_t VbrFlowFilterEntryMoMgr::GetControllerDomainID(ConfigKeyVal *ikey,
-                                          controller_domain *ctrlr_dom,
-                                          upll_keytype_datatype_t dt_type,
-                                          DalDmlIntf *dmi) {
+
+upll_rc_t VbrFlowFilterEntryMoMgr::GetControllerDomainID(
+    ConfigKeyVal *ikey,
+    controller_domain *ctrlr_dom,
+    upll_keytype_datatype_t dt_type,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *ckv = NULL;
   VbrMoMgr *mgrvbr =
-    reinterpret_cast<VbrMoMgr *>(const_cast<MoManager *>(GetMoManager(
-            UNC_KT_VBRIDGE)));
+      reinterpret_cast<VbrMoMgr *>(const_cast<MoManager *>(GetMoManager(
+                  UNC_KT_VBRIDGE)));
   result_code = mgrvbr->GetChildConfigKey(ckv, NULL);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("Unable to get the ParentConfigKey, resultcode=%d",
-                    result_code);
+                   result_code);
     return result_code;
   }
 
   key_vbr_flowfilter_entry_t *ff_key = reinterpret_cast
-    <key_vbr_flowfilter_entry_t *>(ikey->get_key());
+      <key_vbr_flowfilter_entry_t *>(ikey->get_key());
   key_vbr_t *vbr_key = reinterpret_cast<key_vbr_t *>(ckv->get_key());
 
   uuu::upll_strncpy(vbr_key->vtn_key.vtn_name,
-      ff_key->flowfilter_key.vbr_key.vtn_key.vtn_name,
-      kMaxLenVtnName + 1);
+                    ff_key->flowfilter_key.vbr_key.vtn_key.vtn_name,
+                    kMaxLenVtnName + 1);
 
   uuu::upll_strncpy(vbr_key->vbridge_name,
-      ff_key->flowfilter_key.vbr_key.vbridge_name,
-      kMaxLenVnodeName + 1);
+                    ff_key->flowfilter_key.vbr_key.vbridge_name,
+                    kMaxLenVnodeName + 1);
   // Read Controller ID and Domain ID from the VBridge and set it to the
   // Input ConfigKeyVal
   DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutCtrlr|kOpInOutDomain };
   result_code =  mgrvbr->ReadConfigDB(ckv, dt_type, UNC_OP_READ,
-                                            dbop, dmi, MAINTBL);
+                                      dbop, dmi, MAINTBL);
 
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("Unable to Read the details from DB for the parent err %d",
-                    result_code);
+                   result_code);
     DELETE_IF_NOT_NULL(ckv);
     return result_code;
   }
@@ -2283,11 +2011,10 @@ upll_rc_t VbrFlowFilterEntryMoMgr::GetControllerDomainID(ConfigKeyVal *ikey,
 
 upll_rc_t VbrFlowFilterEntryMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
                                                      ConfigKeyVal *ikey,
-                                                     DalDmlIntf *dmi) {
+                                                     DalDmlIntf *dmi,
+                                                     bool restore_flag) {
   UPLL_FUNC_TRACE;
   uint8_t *ctrlr_id = NULL;
-  ConfigKeyVal* okey = NULL;
-  ConfigKeyVal *temp_key = NULL;
   controller_domain ctrlr_dom;
   if (ikey == NULL && req == NULL) {
     UPLL_LOG_DEBUG(
@@ -2296,11 +2023,13 @@ upll_rc_t VbrFlowFilterEntryMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
   }
 
   upll_rc_t result_code = UPLL_RC_SUCCESS;
-  // validate syntax and semantics
-  result_code = ValidateMessage(req, ikey);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("ValidateMessage failed %d", result_code);
-    return result_code;
+  if (!restore_flag) {
+    // validate syntax and semantics
+    result_code = ValidateMessage(req, ikey);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("ValidateMessage failed %d", result_code);
+      return result_code;
+    }
   }
 
   result_code = ValidateAttribute(ikey, dmi, req);
@@ -2308,21 +2037,18 @@ upll_rc_t VbrFlowFilterEntryMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
     UPLL_LOG_DEBUG("ValidateAttribute failed %d", result_code);
     return result_code;
   }
-  // Check if Object already exists in CANDIDATE DB
-  result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_READ, dmi);
-  if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-    UPLL_LOG_DEBUG("UpdateConfigDB failed Candidate DB");
-    return result_code;
-  }
 
   // Check if Object exists in RUNNING DB and move it to CANDIDATE DB
-  FlowListMoMgr *mgr = NULL;
   val_flowfilter_entry_t *flowfilter_val =
       reinterpret_cast<val_flowfilter_entry_t *> (GetVal(ikey));
   result_code = GetControllerDomainID(ikey, &ctrlr_dom, req->datatype, dmi);
   if (result_code != UPLL_RC_SUCCESS) {
+    if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+      result_code = UPLL_RC_ERR_PARENT_DOES_NOT_EXIST;
+    }
     UPLL_LOG_DEBUG("Failed to Get the Controller Domain details, err:%d",
                    result_code);
+    return result_code;
   }
   ctrlr_dom.ctrlr = NULL;
   ctrlr_dom.domain = NULL;
@@ -2332,112 +2058,71 @@ upll_rc_t VbrFlowFilterEntryMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
                  ctrlr_dom.ctrlr, ctrlr_dom.domain);
   ctrlr_id = ctrlr_dom.ctrlr;
 
-  result_code = GetChildConfigKey(temp_key, NULL);
-  if(result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("GetChildConfigKey Failed in  ValidateCapability");
-   return result_code;
-  }
-  result_code = GetInstanceCount(temp_key,
-                                 reinterpret_cast<char*>(ctrlr_id),
-                                 req->datatype,
-                                 &cur_instance_count,
-                                 dmi,
-                                 MAINTBL);
-  delete temp_key;
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("GetInstanceCount Failed in  ValidateCapability");
-    return result_code;
-  }
-
   result_code = ValidateCapability(req, ikey,
                                    reinterpret_cast<const char *>(ctrlr_id));
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("validate Capability Failed %d", result_code);
     return result_code;
   }
-  if (UPLL_DT_CANDIDATE == req->datatype) {
-    result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dmi,
-                                 MAINTBL);
-    if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
-      result_code = RestoreChildren(ikey, req->datatype, UPLL_DT_RUNNING, dmi);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("Restore Operation Failed, err %d", result_code);
+
+  if (!restore_flag) {
+    if (UPLL_DT_CANDIDATE == req->datatype) {
+      result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dmi,
+                                   MAINTBL);
+      if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
+        UPLL_LOG_DEBUG("Key instance exist");
+        if ((ikey)->get_cfg_val()) {
+          UPLL_LOG_DEBUG("Read Key with Value struct");
+          DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
+            kOpInOutFlag | kOpInOutCtrlr | kOpInOutDomain };
+          result_code = ReadConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dbop,
+                                     dmi, MAINTBL);
+          if (UPLL_RC_SUCCESS != result_code &&
+              UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+            UPLL_LOG_DEBUG("ReadConfigDB Failed %d",  result_code);
+          }
+          if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code)  {
+            return UPLL_RC_ERR_CFG_SEMANTIC;
+          }
+        } else  {
+          result_code = UPLL_RC_SUCCESS;
+        }
+        if (UPLL_RC_SUCCESS == result_code) {
+          result_code = RestoreChildren(ikey,
+                                        req->datatype,
+                                        UPLL_DT_RUNNING,
+                                        dmi,
+                                        req);
+          UPLL_LOG_DEBUG("Restore Children returns %d", result_code);
+          return result_code;
+        }
+      } else if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+        UPLL_LOG_DEBUG("UpdateConfigDB Failed %d", result_code);
         return result_code;
       }
-      return result_code;
-    } else if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-        UPLL_LOG_DEBUG("UpdateConfigDb failed to read running");
-        return result_code;
-    } else {
-        UPLL_LOG_DEBUG("No instance found in running db");
     }
+  } else {
+    result_code = UPLL_RC_ERR_NO_SUCH_INSTANCE;
   }
+
   if (flowfilter_val->valid[UPLL_IDX_FLOWLIST_NAME_FFE] == UNC_VF_VALID) {
-    mgr = reinterpret_cast<FlowListMoMgr *>
+    FlowListMoMgr *mgr = reinterpret_cast<FlowListMoMgr *>
         (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
-    // Check Flowlist object exist or not
-    result_code = mgr->GetChildConfigKey(okey, NULL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Recored %d", result_code);
-      return result_code;
-    }
-    key_flowlist_t *key_flowlist = reinterpret_cast<key_flowlist_t*>
-        (okey->get_key());
-    uuu::upll_strncpy(key_flowlist->flowlist_name,
-                      flowfilter_val->flowlist_name,
-                      (kMaxLenFlowListName +1));
-    result_code = mgr->UpdateConfigDB(okey, req->datatype, UNC_OP_READ,
-                                      dmi, MAINTBL);
-    if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-      UPLL_LOG_DEBUG("Given FlowList does not exists %d", result_code);
-      delete okey;
-      return result_code;
-    } else if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
-      UPLL_LOG_DEBUG("Instance  Available");
-    } else if (result_code != UPLL_RC_SUCCESS) {
-      delete okey;
-      UPLL_LOG_DEBUG("Error Accesing CANDIDATE DB (%d)", result_code);
-      return result_code;
-    }
-  }
-  if (flowfilter_val->valid[UPLL_IDX_FLOWLIST_NAME_FFE] == UNC_VF_VALID) {
     result_code = mgr->AddFlowListToController(
         reinterpret_cast<char *>(flowfilter_val->flowlist_name), dmi,
         reinterpret_cast<char *>(ctrlr_id) , req->datatype, UNC_OP_CREATE);
 
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Unable to Update the FlowList at ctrlr Table");
-      delete okey;
       return result_code;
     }
   }
 
-  // N/w monitor
-#if 0
-  NwMonitorMoMgr *nmgr = reinterpret_cast<NwMonitorMoMgr *>
-      (const_cast<MoManager *> (GetMoManager(UNC_KT_VBR_NWMONITOR)));
-  //  result_code = nmgr->GetChildConfigKey(okey, NULL); // TODO
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Recored %d", result_code);
-    return result_code;
-  }
-  key_nwm_t *key_nwm = reinterpret_cast<key_nwm_t*>(okey->get_key());
-  strncpy(reinterpret_cast<char*>(key_nwm->nwmonitor_name),
-          reinterpret_cast<const char*>(flowfilter_val->nwm_name),
-          kMaxLenNwmName +1);
-  //  result_code = nmgr->IsReferenced(okey, req->datatype, dmi); // TODO
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Recored %d", result_code);
-    return result_code;
-  }
-#endif
-
   // create a record in CANDIDATE DB
   DbSubOp dbop = { kOpNotRead, kOpMatchNone, kOpInOutDomain
     | kOpInOutCtrlr | kOpInOutFlag };
   result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_CREATE,
                                dmi, &dbop, MAINTBL);
-  DELETE_IF_NOT_NULL(okey);
   return result_code;
 }
 
@@ -2458,9 +2143,9 @@ upll_rc_t VbrFlowFilterEntryMoMgr::RestorePOMInCtrlTbl(
     return UPLL_RC_ERR_GENERIC;
   }
   if (tbl != MAINTBL ||
-       ikey->get_key_type() != UNC_KT_VBR_FLOWFILTER_ENTRY) {
+      ikey->get_key_type() != UNC_KT_VBR_FLOWFILTER_ENTRY) {
     UPLL_LOG_DEBUG("Ignoring  ktype/Table kt=%d, tbl=%d",
-                    ikey->get_key_type(), tbl);
+                   ikey->get_key_type(), tbl);
     return result_code;
   }
   val_flowfilter_entry_t *flowfilter_val =
@@ -2485,15 +2170,15 @@ upll_rc_t VbrFlowFilterEntryMoMgr::RestorePOMInCtrlTbl(
     mgr = reinterpret_cast<FlowListMoMgr *>
         (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
     result_code = mgr->AddFlowListToController(
-              reinterpret_cast<char *>(flowfilter_val->flowlist_name),
-              dmi,
-              reinterpret_cast<char *>(ctrlr_id),
-              dt_type,
-              UNC_OP_CREATE);
+        reinterpret_cast<char *>(flowfilter_val->flowlist_name),
+        dmi,
+        reinterpret_cast<char *>(ctrlr_id),
+        dt_type,
+        UNC_OP_CREATE);
     if (result_code != UPLL_RC_SUCCESS) {
-       UPLL_LOG_DEBUG("Unable to Update the FlowList at ctrlr Table, err %d",
+      UPLL_LOG_DEBUG("Unable to Update the FlowList at ctrlr Table, err %d",
                      result_code);
-       return result_code;
+      return result_code;
     }
   }
   return result_code;
@@ -2517,11 +2202,11 @@ upll_rc_t VbrFlowFilterEntryMoMgr::DeleteMo(IpcReqRespHeader *req,
     return result_code;
   }
   /*
-  result_code = ValidateCapability(req, ikey);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("validate Capability Failed %d", result_code);
-    return result_code;
-  } */
+     result_code = ValidateCapability(req, ikey);
+     if (result_code != UPLL_RC_SUCCESS) {
+     UPLL_LOG_DEBUG("validate Capability Failed %d", result_code);
+     return result_code;
+     } */
   result_code = UpdateConfigDB(ikey, UPLL_DT_CANDIDATE, UNC_OP_READ, dmi);
 
   if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
@@ -2568,9 +2253,9 @@ upll_rc_t VbrFlowFilterEntryMoMgr::DeleteMo(IpcReqRespHeader *req,
 }
 
 upll_rc_t VbrFlowFilterEntryMoMgr::MergeValidate(unc_key_type_t keytype,
-    const char *ctrlr_id,
-    ConfigKeyVal *ikey,
-    DalDmlIntf *dmi) {
+                                                 const char *ctrlr_id,
+                                                 ConfigKeyVal *ikey,
+                                                 DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
@@ -2586,7 +2271,7 @@ upll_rc_t VbrFlowFilterEntryMoMgr::MergeValidate(unc_key_type_t keytype,
   }
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutNone};
   result_code = ReadConfigDB(ckval, UPLL_DT_IMPORT,
-              UNC_OP_READ, dbop, dmi, MAINTBL);
+                             UNC_OP_READ, dbop, dmi, MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     DELETE_IF_NOT_NULL(ckval);
     if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
@@ -2598,25 +2283,25 @@ upll_rc_t VbrFlowFilterEntryMoMgr::MergeValidate(unc_key_type_t keytype,
   ConfigKeyVal *tmp_ckval = ckval;
   while (NULL != ckval) {
     val_flowfilter_entry_t* val = reinterpret_cast<val_flowfilter_entry_t *>
-    (GetVal(ckval));
+        (GetVal(ckval));
     if (val->valid[UPLL_IDX_REDIRECT_NODE_FFE] ==
         UNC_VF_VALID) {
-       if (val->valid[UPLL_IDX_REDIRECT_PORT_FFE] ==
-           UNC_VF_VALID) {
-         result_code = VerifyRedirectDestination(ckval, dmi, UPLL_DT_IMPORT);
-         if (result_code != UPLL_RC_SUCCESS) {
-            DELETE_IF_NOT_NULL(ckval);
-            UPLL_LOG_DEBUG("redirect-destination node/interface doesn't exists");
-            return UPLL_RC_ERR_MERGE_CONFLICT;
-          }
+      if (val->valid[UPLL_IDX_REDIRECT_PORT_FFE] ==
+          UNC_VF_VALID) {
+        result_code = VerifyRedirectDestination(ckval, dmi, UPLL_DT_IMPORT);
+        if (result_code != UPLL_RC_SUCCESS) {
+          DELETE_IF_NOT_NULL(ckval);
+          UPLL_LOG_DEBUG("redirect-destination node/interface doesn't exists");
+          return UPLL_RC_ERR_MERGE_CONFLICT;
         }
+      }
     }
     ckval = ckval->get_next_cfg_key_val();
   }
   DELETE_IF_NOT_NULL(tmp_ckval);
   MoMgrImpl *mgr =
-    reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-            UNC_KT_VBR_FLOWFILTER)));
+      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                  UNC_KT_VBR_FLOWFILTER)));
   if (!mgr) {
     UPLL_LOG_DEBUG("Invalid mgr param");
     return UPLL_RC_ERR_GENERIC;
@@ -2630,25 +2315,27 @@ upll_rc_t VbrFlowFilterEntryMoMgr::MergeValidate(unc_key_type_t keytype,
 upll_rc_t VbrFlowFilterEntryMoMgr::UpdateAuditConfigStatus(
     unc_keytype_configstatus_t cs_status,
     uuc::UpdateCtrlrPhase phase,
-    ConfigKeyVal *&ckv_running) {
+    ConfigKeyVal *&ckv_running,
+    DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_flowfilter_entry_t *val;
   val = (ckv_running != NULL)?reinterpret_cast<val_flowfilter_entry_t *>
-                              (GetVal(ckv_running)):NULL;
+      (GetVal(ckv_running)):NULL;
   if (NULL == val) {
     return UPLL_RC_ERR_GENERIC;
   }
   if (uuc::kUpllUcpCreate == phase )
     val->cs_row_status = cs_status;
   if ((uuc::kUpllUcpUpdate == phase) &&
-           (val->cs_row_status == UNC_CS_INVALID ||
-            val->cs_row_status == UNC_CS_NOT_APPLIED))
+      (val->cs_row_status == UNC_CS_INVALID ||
+       val->cs_row_status == UNC_CS_NOT_APPLIED))
     val->cs_row_status = cs_status;
   for ( unsigned int loop = 0;
-      loop < sizeof(val->valid)/sizeof(uint8_t); ++loop ) {
+       loop < sizeof(val->valid)/sizeof(uint8_t); ++loop ) {
     if ((cs_status == UNC_CS_INVALID && UNC_VF_VALID == val->valid[loop]) ||
-         cs_status == UNC_CS_APPLIED)
-       val->cs_attr[loop] = cs_status;
+        cs_status == UNC_CS_APPLIED)
+      val->cs_attr[loop] = cs_status;
   }
 
   UPLL_LOG_DEBUG("AuditUpdate Config Status Information %d", result_code);
@@ -2656,7 +2343,8 @@ upll_rc_t VbrFlowFilterEntryMoMgr::UpdateAuditConfigStatus(
 }
 
 upll_rc_t VbrFlowFilterEntryMoMgr::UpdateMo(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey, DalDmlIntf *dmi) {
+                                            ConfigKeyVal *ikey,
+                                            DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   ConfigKeyVal* okey = NULL;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
@@ -2673,7 +2361,7 @@ upll_rc_t VbrFlowFilterEntryMoMgr::UpdateMo(IpcReqRespHeader *req,
     return result_code;
   }
 
-  result_code = ValidateValFlowfilterEntry(req, ikey, dmi);
+  result_code = ValidateValFlowfilterEntry(req, ikey);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("ValidateValFlowfilterEntry Failed %d", result_code);
     return result_code;
@@ -2683,84 +2371,42 @@ upll_rc_t VbrFlowFilterEntryMoMgr::UpdateMo(IpcReqRespHeader *req,
   if (UPLL_RC_SUCCESS != result_code) {
     return result_code;
   }
-#if 0
-  result_code = ValidateCapability(req, ikey);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("validate Capability Failed %d", result_code);
-    return result_code;
-  }
-#endif
-  result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_READ, dmi, MAINTBL);
-  if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
-    UPLL_LOG_DEBUG("UpdateConfigDB failed %d", result_code);
-    return result_code;
-  }
 
   FlowListMoMgr *flowlist_mgr = reinterpret_cast<FlowListMoMgr *>
       (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
   val_flowfilter_entry_t *flowfilter_val =
-    reinterpret_cast<val_flowfilter_entry_t *> (GetVal(ikey));
-  if (UNC_VF_VALID == flowfilter_val->valid[UPLL_IDX_FLOWLIST_NAME_FFE]) {
-    // Check Flowlist object exist or not
-    result_code = flowlist_mgr->GetChildConfigKey(okey, NULL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Recored %d", result_code);
-      return result_code;
-    }
-    key_flowlist_t *key_flowlist = reinterpret_cast<key_flowlist_t*>
-      (okey->get_key());
-    uuu::upll_strncpy(key_flowlist->flowlist_name,
-        flowfilter_val->flowlist_name,
-        (kMaxLenFlowListName +1));
-    result_code = flowlist_mgr->UpdateConfigDB(okey, req->datatype,
-                  UNC_OP_READ, dmi, MAINTBL);
-    if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-      UPLL_LOG_DEBUG("Given FlowList does not exists %d", result_code);
-      delete okey;
-      return result_code;
-    } else if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
-      UPLL_LOG_DEBUG("Instance  Available");
-    } else if (result_code != UPLL_RC_SUCCESS) {
-      delete okey;
-      UPLL_LOG_DEBUG("Error Accesing CANDIDATE DB (%d)", result_code);
-      return result_code;
-    }
-      delete okey;
-      okey = NULL;
-    }
-
+      reinterpret_cast<val_flowfilter_entry_t *> (GetVal(ikey));
   // Get ctrlr_id to do Capa check
   result_code = GetChildConfigKey(okey, ikey);
-      if (UPLL_RC_SUCCESS != result_code) {
-        UPLL_LOG_DEBUG("GetChildConfigKey failed");
-        return result_code;
-      }
-    DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
-                     kOpInOutCtrlr|kOpInOutDomain };
-    result_code = ReadConfigDB(okey, UPLL_DT_CANDIDATE, UNC_OP_READ, dbop, dmi,
-        MAINTBL);
-    if (UPLL_RC_SUCCESS != result_code) {
-      delete okey;
-      UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
-      return result_code;
-    }
-    GET_USER_DATA_CTRLR(okey, ctrlr_id);
-   
-    UPLL_LOG_DEBUG("Calling validate Capability For UpdateMo");
-    result_code = ValidateCapability(req, ikey,
-                 reinterpret_cast<const char*>(ctrlr_id));
-    if (result_code != UPLL_RC_SUCCESS) {
-      delete okey;
-      UPLL_LOG_DEBUG("validate Capability Failed %d", result_code);
-      return result_code;
-    }
+  if (UPLL_RC_SUCCESS != result_code) {
+    UPLL_LOG_DEBUG("GetChildConfigKey failed");
+    return result_code;
+  }
+  DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
+    kOpInOutCtrlr|kOpInOutDomain };
+  result_code = ReadConfigDB(okey, UPLL_DT_CANDIDATE, UNC_OP_READ, dbop, dmi,
+                             MAINTBL);
+  if (UPLL_RC_SUCCESS != result_code) {
+    delete okey;
+    UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
+    return result_code;
+  }
+  GET_USER_DATA_CTRLR(okey, ctrlr_id);
+
+  UPLL_LOG_DEBUG("Calling validate Capability For UpdateMo");
+  result_code = ValidateCapability(req, ikey,
+                                   reinterpret_cast<const char*>(ctrlr_id));
+  if (result_code != UPLL_RC_SUCCESS) {
+    delete okey;
+    UPLL_LOG_DEBUG("validate Capability Failed %d", result_code);
+    return result_code;
+  }
 
   if (UNC_VF_VALID == flowfilter_val->valid[UPLL_IDX_FLOWLIST_NAME_FFE] ||
       UNC_VF_VALID_NO_VALUE == flowfilter_val->
       valid[UPLL_IDX_FLOWLIST_NAME_FFE]) {
-    
     val_flowfilter_entry_t *temp_ffe_val = reinterpret_cast
-      <val_flowfilter_entry_t *>(GetVal(okey));
+        <val_flowfilter_entry_t *>(GetVal(okey));
     UPLL_LOG_DEBUG("flowlist name %s", flowfilter_val->flowlist_name);
     if (UNC_VF_VALID == flowfilter_val->valid[UPLL_IDX_FLOWLIST_NAME_VFFE] &&
         UNC_VF_VALID  == temp_ffe_val->
@@ -2783,10 +2429,10 @@ upll_rc_t VbrFlowFilterEntryMoMgr::UpdateMo(IpcReqRespHeader *req,
         return result_code;
       }
     } else if (UNC_VF_VALID == flowfilter_val->
-        valid[UPLL_IDX_FLOWLIST_NAME_VFFE] &&
-        (UNC_VF_INVALID == temp_ffe_val->
-         valid[UPLL_IDX_FLOWLIST_NAME_VFFE] || UNC_VF_VALID_NO_VALUE ==
-         temp_ffe_val->valid[UPLL_IDX_FLOWLIST_NAME_VFFE])) {
+               valid[UPLL_IDX_FLOWLIST_NAME_VFFE] &&
+               (UNC_VF_INVALID == temp_ffe_val->
+                valid[UPLL_IDX_FLOWLIST_NAME_VFFE] || UNC_VF_VALID_NO_VALUE ==
+                temp_ffe_val->valid[UPLL_IDX_FLOWLIST_NAME_VFFE])) {
       UPLL_LOG_DEBUG("Update option 2");
       result_code = flowlist_mgr->AddFlowListToController(
           reinterpret_cast<char *>(flowfilter_val->flowlist_name), dmi,
@@ -2797,9 +2443,9 @@ upll_rc_t VbrFlowFilterEntryMoMgr::UpdateMo(IpcReqRespHeader *req,
         return result_code;
       }
     } else if (UNC_VF_VALID_NO_VALUE == flowfilter_val->
-        valid[UPLL_IDX_FLOWLIST_NAME_VFFE] &&
-        UNC_VF_VALID == temp_ffe_val->
-        valid[UPLL_IDX_FLOWLIST_NAME_VFFE]) {
+               valid[UPLL_IDX_FLOWLIST_NAME_VFFE] &&
+               UNC_VF_VALID == temp_ffe_val->
+               valid[UPLL_IDX_FLOWLIST_NAME_VFFE]) {
       UPLL_LOG_DEBUG("Update option 3");
       result_code = flowlist_mgr->AddFlowListToController(
           reinterpret_cast<char *>(temp_ffe_val->flowlist_name), dmi,
@@ -2812,24 +2458,6 @@ upll_rc_t VbrFlowFilterEntryMoMgr::UpdateMo(IpcReqRespHeader *req,
     }
   }
   // N/w monitor
-#if 0
-  NwMonitorMoMgr *nmgr = reinterpret_cast<NwMonitorMoMgr *>
-    (const_cast<MoManager *> (GetMoManager(UNC_KT_VBR_NWMONITOR)));
-  //  result_code = nmgr->GetChildConfigKey(okey, NULL); // TODO
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Recored %d", result_code);
-    return result_code;
-  }
-  key_nwm_t *key_nwm = reinterpret_cast<key_nwm_t*>(okey->get_key());
-  strncpy(reinterpret_cast<char*>(key_nwm->nwmonitor_name),
-      reinterpret_cast<const char*>(flowfilter_val->nwm_name),
-      kMaxLenNwmName +1);
-  //  result_code = nmgr->IsReferenced(okey, req->datatype, dmi); // TODO
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Recored %d", result_code);
-    return result_code;
-  }
-#endif
   DbSubOp dbop1 = {kOpNotRead, kOpMatchNone, kOpInOutFlag};
   result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_UPDATE, dmi,
                                &dbop1, MAINTBL);
@@ -2841,9 +2469,10 @@ upll_rc_t VbrFlowFilterEntryMoMgr::UpdateMo(IpcReqRespHeader *req,
   return result_code;
 }
 
-upll_rc_t VbrFlowFilterEntryMoMgr::IsReferenced(ConfigKeyVal *ikey,
-                                           upll_keytype_datatype_t dt_type,
-                                           DalDmlIntf *dmi) {
+upll_rc_t VbrFlowFilterEntryMoMgr::IsReferenced(
+    ConfigKeyVal *ikey,
+    upll_keytype_datatype_t dt_type,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   if (NULL == ikey) return UPLL_RC_ERR_GENERIC;
@@ -2860,7 +2489,7 @@ upll_rc_t VbrFlowFilterEntryMoMgr::ReadMo(IpcReqRespHeader *req,
   ConfigKeyVal *dup_key = NULL, *l_key = NULL;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   controller_domain ctrlr_dom;
-  DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutCtrlr|kOpInOutDomain  };
+  DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutCtrlr|kOpInOutDomain };
 
   result_code = ValidateMessage(req, ikey);
   if (result_code != UPLL_RC_SUCCESS) {
@@ -2905,9 +2534,11 @@ upll_rc_t VbrFlowFilterEntryMoMgr::ReadMo(IpcReqRespHeader *req,
         }
         GET_USER_DATA_CTRLR_DOMAIN(dup_key, ctrlr_dom);
         SET_USER_DATA_CTRLR_DOMAIN(l_key, ctrlr_dom);
-        //Adding Capacheck
-        result_code = ValidateCapability(req, ikey,
-                   reinterpret_cast<const char *>(ctrlr_dom.ctrlr));
+        // Adding Capacheck
+        result_code = ValidateCapability(
+            req,
+            ikey,
+            reinterpret_cast<const char *>(ctrlr_dom.ctrlr));
         if (result_code != UPLL_RC_SUCCESS) {
           delete dup_key;
           delete l_key;
@@ -2933,10 +2564,10 @@ upll_rc_t VbrFlowFilterEntryMoMgr::ReadMo(IpcReqRespHeader *req,
         ipc_req.header.datatype = req->datatype;
         ipc_req.ckv_data = l_key;
         if (!IpcUtil::SendReqToDriver(
-                    (const char *)ctrlr_dom.ctrlr,
-                    reinterpret_cast<char *>(ctrlr_dom.domain),
-                    PFCDRIVER_SERVICE_NAME, PFCDRIVER_SVID_LOGICAL, &ipc_req,
-                    true, &ipc_resp)) {
+                (const char *)ctrlr_dom.ctrlr,
+                reinterpret_cast<char *>(ctrlr_dom.domain),
+                PFCDRIVER_SERVICE_NAME, PFCDRIVER_SVID_LOGICAL, &ipc_req,
+                true, &ipc_resp)) {
           UPLL_LOG_DEBUG("SendReqToDriver failed for Key %d controller %s",
                          l_key->get_key_type(),
                          reinterpret_cast<char *>(ctrlr_dom.ctrlr));
@@ -2947,8 +2578,8 @@ upll_rc_t VbrFlowFilterEntryMoMgr::ReadMo(IpcReqRespHeader *req,
 
         if (ipc_resp.header.result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("Driver response for Key %d controller %s result %d",
-                        l_key->get_key_type(), ctrlr_dom.ctrlr,
-                        ipc_resp.header.result_code);
+                         l_key->get_key_type(), ctrlr_dom.ctrlr,
+                         ipc_resp.header.result_code);
           DELETE_IF_NOT_NULL(l_key);
           DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
           return ipc_resp.header.result_code;
@@ -3052,9 +2683,11 @@ upll_rc_t VbrFlowFilterEntryMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
 
         GET_USER_DATA_CTRLR_DOMAIN(dup_key, ctrlr_dom);
         SET_USER_DATA_CTRLR_DOMAIN(l_key, ctrlr_dom);
-        //Added CApaCheck
-        result_code = ValidateCapability(req, ikey,
-                   reinterpret_cast<const char *>(ctrlr_dom.ctrlr));
+        // Added CApaCheck
+        result_code = ValidateCapability(
+            req,
+            ikey,
+            reinterpret_cast<const char *>(ctrlr_dom.ctrlr));
         if (result_code != UPLL_RC_SUCCESS) {
           delete dup_key;
           delete l_key;
@@ -3093,10 +2726,10 @@ upll_rc_t VbrFlowFilterEntryMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
           ipc_req.ckv_data = l_key;
 
           if (!IpcUtil::SendReqToDriver(
-                      (const char *)ctrlr_dom.ctrlr,
-                      reinterpret_cast<char *>(ctrlr_dom.domain),
-                      PFCDRIVER_SERVICE_NAME, PFCDRIVER_SVID_LOGICAL, &ipc_req,
-                      true, &ipc_resp)) {
+                  (const char *)ctrlr_dom.ctrlr,
+                  reinterpret_cast<char *>(ctrlr_dom.domain),
+                  PFCDRIVER_SERVICE_NAME, PFCDRIVER_SVID_LOGICAL, &ipc_req,
+                  true, &ipc_resp)) {
             UPLL_LOG_DEBUG("SendReqToDriver failed for Key %d controller %s",
                            l_key->get_key_type(),
                            reinterpret_cast<char *>(ctrlr_dom.ctrlr));
@@ -3105,8 +2738,8 @@ upll_rc_t VbrFlowFilterEntryMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
 
           if (ipc_resp.header.result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("Driver response for Key %d controller %s result %d",
-                          l_key->get_key_type(), ctrlr_dom.ctrlr,
-                          ipc_resp.header.result_code);
+                           l_key->get_key_type(), ctrlr_dom.ctrlr,
+                           ipc_resp.header.result_code);
             return ipc_resp.header.result_code;
           }
 
@@ -3135,16 +2768,22 @@ upll_rc_t VbrFlowFilterEntryMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
 }
 
 upll_rc_t VbrFlowFilterEntryMoMgr::RenameMo(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey, DalDmlIntf *dmi, const char *ctrlr_id) {
+                                            ConfigKeyVal *ikey,
+                                            DalDmlIntf *dmi,
+                                            const char *ctrlr_id) {
   UPLL_FUNC_TRACE;
   UPLL_LOG_DEBUG("Implementation Not supported for this KT.");
   return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT;
 }
 
 #if 0
-upll_rc_t VbrFlowFilterEntryMoMgr::UpdateConfigStatus(ConfigKeyVal *key,
-    unc_keytype_operation_t op, uint32_t driver_result, ConfigKeyVal *upd_key,
-    DalDmlIntf *dmi, ConfigKeyVal *ctrlr_key) {
+upll_rc_t VbrFlowFilterEntryMoMgr::UpdateConfigStatus(
+    ConfigKeyVal *key,
+    unc_keytype_operation_t op,
+    uint32_t driver_result,
+    ConfigKeyVal *upd_key,
+    DalDmlIntf *dmi,
+    ConfigKeyVal *ctrlr_key) {
   // UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_flowfilter_entry_t *vbrflowfilter_entry_val = NULL;
@@ -3152,14 +2791,14 @@ upll_rc_t VbrFlowFilterEntryMoMgr::UpdateConfigStatus(ConfigKeyVal *key,
   unc_keytype_configstatus_t cs_status =
       (driver_result == 0) ? UNC_CS_APPLIED : UNC_CS_NOT_APPLIED;
   vbrflowfilter_entry_val = reinterpret_cast<val_flowfilter_entry_t *>
-                            (GetVal(key));
+      (GetVal(key));
   if (vbrflowfilter_entry_val == NULL)
     return UPLL_RC_ERR_GENERIC;
   if (op == UNC_OP_CREATE) {
     if (vbrflowfilter_entry_val->cs_row_status != UNC_CS_NOT_SUPPORTED)
       vbrflowfilter_entry_val->cs_row_status = cs_status;
     for (unsigned int loop = 0;
-        loop < sizeof(vbrflowfilter_entry_val->valid); ++loop) {
+         loop < sizeof(vbrflowfilter_entry_val->valid); ++loop) {
       if ((UNC_VF_VALID == vbrflowfilter_entry_val->valid[loop])
           || (UNC_VF_VALID_NO_VALUE == vbrflowfilter_entry_val->valid[loop]))
         if (vbrflowfilter_entry_val->cs_attr[loop] != UNC_CS_NOT_SUPPORTED)
@@ -3171,7 +2810,7 @@ upll_rc_t VbrFlowFilterEntryMoMgr::UpdateConfigStatus(ConfigKeyVal *key,
     void *fle_val2 = GetVal(upd_key);
     CompareValidValue(fle_val1, fle_val2, false);
     for (unsigned int loop = 0;
-        loop < sizeof(vbrflowfilter_entry_val->valid); ++loop) {
+         loop < sizeof(vbrflowfilter_entry_val->valid); ++loop) {
       if (vbrflowfilter_entry_val->cs_attr[loop] != UNC_CS_NOT_SUPPORTED)
         if ((UNC_VF_VALID == vbrflowfilter_entry_val->valid[loop])
             || (UNC_VF_VALID_NO_VALUE == vbrflowfilter_entry_val->valid[loop]))
@@ -3192,14 +2831,14 @@ upll_rc_t VbrFlowFilterEntryMoMgr::UpdateConfigStatus(ConfigKeyVal *key,
 #endif
 
 upll_rc_t VbrFlowFilterEntryMoMgr::GetControllerId(ConfigKeyVal *ikey,
-        DalDmlIntf *dmi) {
+                                                   DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *temp = NULL;
   ConfigVal *tmpval = NULL;
   MoMgrImpl *mgr =
       reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-          UNC_KT_VBRIDGE)));
+                  UNC_KT_VBRIDGE)));
   if (NULL == mgr) {
     UPLL_LOG_DEBUG("mgr is NULL");
     return UPLL_RC_ERR_GENERIC;
@@ -3210,13 +2849,13 @@ upll_rc_t VbrFlowFilterEntryMoMgr::GetControllerId(ConfigKeyVal *ikey,
     return result_code;
   }
   val_vbr *vbr_val = reinterpret_cast<val_vbr *>
-                  (ConfigKeyVal::Malloc(sizeof(val_vbr)));
+      (ConfigKeyVal::Malloc(sizeof(val_vbr)));
 
   tmpval = new ConfigVal(IpctSt::kIpcStValVbr, vbr_val);
   temp->SetCfgVal(tmpval);
   DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutCtrlr};
   result_code = mgr->ReadConfigDB(temp, UPLL_DT_CANDIDATE, UNC_OP_READ,
-                                    dbop, dmi, MAINTBL);
+                                  dbop, dmi, MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
     DELETE_IF_NOT_NULL(temp);
@@ -3234,7 +2873,7 @@ upll_rc_t VbrFlowFilterEntryMoMgr::GetControllerId(ConfigKeyVal *ikey,
 }
 
 upll_rc_t VbrFlowFilterEntryMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
-                                              ConfigKeyVal *ikey) {
+                                                   ConfigKeyVal *ikey) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
@@ -3245,13 +2884,13 @@ upll_rc_t VbrFlowFilterEntryMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
   key_rename_vnode_info *key_rename = NULL;
   key_rename = reinterpret_cast<key_rename_vnode_info *> (ikey->get_key());
   key_vbr_flowfilter_entry_t * key_vbr_ff_entry =
-         reinterpret_cast<key_vbr_flowfilter_entry_t *>
-         (ConfigKeyVal::Malloc(sizeof(key_vbr_flowfilter_entry_t)));
+      reinterpret_cast<key_vbr_flowfilter_entry_t *>
+      (ConfigKeyVal::Malloc(sizeof(key_vbr_flowfilter_entry_t)));
 
   if (!strlen(reinterpret_cast<char *> (key_rename->old_unc_vtn_name))) {
     UPLL_LOG_DEBUG("old_unc_vtn_name NULL");
     if (key_vbr_ff_entry) free(key_vbr_ff_entry);
-      return UPLL_RC_ERR_GENERIC;
+    return UPLL_RC_ERR_GENERIC;
   }
   uuu::upll_strncpy(key_vbr_ff_entry->flowfilter_key.vbr_key.vtn_key.vtn_name,
                     key_rename->old_unc_vtn_name,
@@ -3265,8 +2904,8 @@ upll_rc_t VbrFlowFilterEntryMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
     }
 
     uuu::upll_strncpy(key_vbr_ff_entry->flowfilter_key.vbr_key.vbridge_name,
-                       key_rename->old_unc_vnode_name,
-                       (kMaxLenVnodeName + 1));
+                      key_rename->old_unc_vnode_name,
+                      (kMaxLenVnodeName + 1));
   } else {
     if (!strlen(reinterpret_cast<char *>(key_rename->new_unc_vnode_name))) {
       UPLL_LOG_DEBUG("new_unc_vnode_name NULL");
@@ -3288,14 +2927,15 @@ upll_rc_t VbrFlowFilterEntryMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
   return result_code;
 }
 
-upll_rc_t VbrFlowFilterEntryMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
-                                               DalDmlIntf *dmi,
-                                               upll_keytype_datatype_t data_type,
-                                               bool &no_rename) {
+upll_rc_t VbrFlowFilterEntryMoMgr::UpdateVnodeVal(
+    ConfigKeyVal *ikey,
+    DalDmlIntf *dmi,
+    upll_keytype_datatype_t data_type,
+    bool &no_rename) {
   UPLL_FUNC_TRACE;
   ConfigKeyVal *okey = NULL;
   ConfigKeyVal *kval = NULL;
-  //ConfigKeyVal *ckval = NULL;
+  // ConfigKeyVal *ckval = NULL;
   controller_domain ctrlr_dom;
   ctrlr_dom.ctrlr = NULL;
   ctrlr_dom.domain = NULL;
@@ -3309,63 +2949,73 @@ upll_rc_t VbrFlowFilterEntryMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
   key_rename_vnode_info_t *key_rename =
       reinterpret_cast<key_rename_vnode_info_t *>(ikey->get_key());
 
-  //copy the olf flowlist name to val_flowfilter_entry 
-  val_flowfilter_entry_t *val_ff_entry = reinterpret_cast<val_flowfilter_entry_t *>
-                 (ConfigKeyVal::Malloc(sizeof(val_flowfilter_entry_t)));
+  // copy the olf flowlist name to val_flowfilter_entry
+  val_flowfilter_entry_t *val_ff_entry = reinterpret_cast
+      <val_flowfilter_entry_t *>
+      (ConfigKeyVal::Malloc(sizeof(val_flowfilter_entry_t)));
 
   if (ikey->get_key_type() == UNC_KT_FLOWLIST) {
-    if (!strlen(reinterpret_cast<char *>(key_rename->old_flowlist_name))) {
+    if (!strlen(reinterpret_cast<char *>
+                (key_rename->old_flowlist_name))) {
       if (val_ff_entry) free(val_ff_entry);
       return UPLL_RC_ERR_GENERIC;
     }
 
-  uuu::upll_strncpy(val_ff_entry->flowlist_name,
-      key_rename->old_flowlist_name,
-      (kMaxLenFlowListName + 1));
+    uuu::upll_strncpy(val_ff_entry->flowlist_name,
+                      key_rename->old_flowlist_name,
+                      (kMaxLenFlowListName + 1));
     val_ff_entry->valid[UPLL_IDX_FLOWLIST_NAME_FFE] = UNC_VF_VALID;
     UPLL_LOG_DEBUG("valid and flowlist name (%d) (%s)",
-                  val_ff_entry->valid[UPLL_IDX_FLOWLIST_NAME_FFE],
-                  val_ff_entry->flowlist_name);
+                   val_ff_entry->valid[UPLL_IDX_FLOWLIST_NAME_FFE],
+                   val_ff_entry->flowlist_name);
   } else if (ikey->get_key_type() == UNC_KT_VBRIDGE) {
-    if (!strlen(reinterpret_cast<char *>(key_rename->old_unc_vnode_name))) {
+    if (!strlen(reinterpret_cast<char *>
+                (key_rename->old_unc_vnode_name))) {
       UPLL_LOG_DEBUG("key_rename->old_unc_vnode_name NULL");
       if (val_ff_entry) free(val_ff_entry);
       return UPLL_RC_ERR_GENERIC;
     }
     uuu::upll_strncpy(val_ff_entry->redirect_node,
-      key_rename->old_unc_vnode_name,
-      sizeof(val_ff_entry->redirect_node));
+                      key_rename->old_unc_vnode_name,
+                      sizeof(val_ff_entry->redirect_node));
     val_ff_entry->valid[UPLL_IDX_REDIRECT_NODE_FFE] = UNC_VF_VALID;
     UPLL_LOG_DEBUG("valid and vbridge name (%d) (%s)",
                    val_ff_entry->valid[UPLL_IDX_REDIRECT_NODE_FFE],
                    val_ff_entry->redirect_node);
   }
-  
+
   result_code = GetChildConfigKey(okey, NULL);
   if (UPLL_RC_SUCCESS != result_code) {
-     UPLL_LOG_DEBUG("CopyToConfigKey okey  NULL");
-     FREE_IF_NOT_NULL(val_ff_entry);
-     return result_code;
+    UPLL_LOG_DEBUG("CopyToConfigKey okey  NULL");
+    FREE_IF_NOT_NULL(val_ff_entry);
+    return result_code;
   }
   if (!okey) {
-     UPLL_LOG_DEBUG("CopyToConfigKey okey  NULL");
-     free(val_ff_entry);
-     return UPLL_RC_ERR_GENERIC;
+    UPLL_LOG_DEBUG("CopyToConfigKey okey  NULL");
+    free(val_ff_entry);
+    return UPLL_RC_ERR_GENERIC;
   }
 
-  okey->SetCfgVal(new ConfigVal(IpctSt::kIpcStValFlowfilterEntry, val_ff_entry));
+  okey->SetCfgVal(new ConfigVal(IpctSt::kIpcStValFlowfilterEntry,
+                                val_ff_entry));
 
-  //ConfigVal *cval = new ConfigVal(IpctSt::kIpcStValFlowfilterEntry, val_ff_entry);
-  //okey = new ConfigKeyVal(UNC_KT_VBR_FLOWFILTER_ENTRY, IpctSt::kIpcStKeyVbrFlowfilterEntry, NULL, cval);
-  //if (!okey) {
+  // ConfigVal *cval = new ConfigVal(IpctSt::kIpcStValFlowfilterEntry,
+  // val_ff_entry);
+  // okey = new ConfigKeyVal(UNC_KT_VBR_FLOWFILTER_ENTRY,
+  // IpctSt::kIpcStKeyVbrFlowfilterEntry,
+  // NULL,
+  // cval);
+  // if (!okey) {
   //   UPLL_LOG_DEBUG("CopyToConfigKey okey  NULL");
   //   if (val_ff_entry) free(val_ff_entry);
   //   return UPLL_RC_ERR_GENERIC;
- // }
 // }
 
-  DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutCtrlr|kOpInOutDomain|kOpInOutFlag };
+  DbSubOp dbop = { kOpReadMultiple,
+    kOpMatchNone,
+    kOpInOutCtrlr|kOpInOutDomain|kOpInOutFlag };
 
-  // Read the record of key structure and old flowlist name in maintbl   
+  // Read the record of key structure and old flowlist name in maintbl
   result_code = ReadConfigDB(okey, data_type, UNC_OP_READ, dbop, dmi,
                              MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
@@ -3383,48 +3033,48 @@ upll_rc_t VbrFlowFilterEntryMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
       return result_code;
     }
     if (!kval) return UPLL_RC_ERR_GENERIC;
-    // Copy the new flowlist name in val_flowfilter_entry      
-    val_flowfilter_entry_t *val_ff_entry_new = reinterpret_cast<val_flowfilter_entry_t *>
-                 (ConfigKeyVal::Malloc(sizeof(val_flowfilter_entry_t)));
-    if (!val_ff_entry_new) return UPLL_RC_ERR_GENERIC; 
-    if (ikey->get_key_type() == UNC_KT_FLOWLIST) {    
-    // New Name NuLL CHECK 
-    if (!strlen(reinterpret_cast<char *>(key_rename->new_flowlist_name))) {
-      if (val_ff_entry_new) free(val_ff_entry_new);
-      UPLL_LOG_DEBUG("new_flowlist_name NULL");
-      DELETE_IF_NOT_NULL(first_ckv);
-      DELETE_IF_NOT_NULL(kval);
-      return UPLL_RC_ERR_GENERIC;
-    } 
-    // Copy the new flowlist_name into val_flowfilter_entry    
-    uuu::upll_strncpy(val_ff_entry_new->flowlist_name,
-           key_rename->new_flowlist_name,
-           (kMaxLenFlowListName + 1));
-    val_ff_entry_new->valid[UPLL_IDX_FLOWLIST_NAME_FFE] = UNC_VF_VALID;
-    UPLL_LOG_DEBUG("flowlist name and valid (%d) (%s)",
-                    val_ff_entry_new->valid[UPLL_IDX_FLOWLIST_NAME_FFE],
-                    val_ff_entry_new->flowlist_name);
+    // Copy the new flowlist name in val_flowfilter_entry
+    val_flowfilter_entry_t *val_ff_entry_new =
+        reinterpret_cast<val_flowfilter_entry_t *>
+        (ConfigKeyVal::Malloc(sizeof(val_flowfilter_entry_t)));
+    if (!val_ff_entry_new) return UPLL_RC_ERR_GENERIC;
+    if (ikey->get_key_type() == UNC_KT_FLOWLIST) {
+      // New Name NuLL CHECK
+      if (!strlen(reinterpret_cast<char *>(key_rename->new_flowlist_name))) {
+        if (val_ff_entry_new) free(val_ff_entry_new);
+        UPLL_LOG_DEBUG("new_flowlist_name NULL");
+        DELETE_IF_NOT_NULL(first_ckv);
+        DELETE_IF_NOT_NULL(kval);
+        return UPLL_RC_ERR_GENERIC;
+      }
+      // Copy the new flowlist_name into val_flowfilter_entry
+      uuu::upll_strncpy(val_ff_entry_new->flowlist_name,
+                        key_rename->new_flowlist_name,
+                        (kMaxLenFlowListName + 1));
+      val_ff_entry_new->valid[UPLL_IDX_FLOWLIST_NAME_FFE] = UNC_VF_VALID;
+      UPLL_LOG_DEBUG("flowlist name and valid (%d) (%s)",
+                     val_ff_entry_new->valid[UPLL_IDX_FLOWLIST_NAME_FFE],
+                     val_ff_entry_new->flowlist_name);
     } else if (ikey->get_key_type() == UNC_KT_VBRIDGE) {
-    // New Name NuLL CHECK
-    if (!strlen(reinterpret_cast<char *>(key_rename->new_unc_vnode_name))) {
-      UPLL_LOG_DEBUG("new_unc_vnode_name NULL");
-      if (val_ff_entry_new) free(val_ff_entry_new);
-      DELETE_IF_NOT_NULL(kval);
-      DELETE_IF_NOT_NULL(first_ckv);
-      return UPLL_RC_ERR_GENERIC;
-    }
-    // Copy the new vbridge name into val_flowfilter_entry
-    uuu::upll_strncpy(val_ff_entry_new->redirect_node,
-                      key_rename->new_unc_vnode_name,
-                      sizeof(val_ff_entry_new->redirect_node));
-    val_ff_entry_new->valid[UPLL_IDX_REDIRECT_NODE_FFE] = UNC_VF_VALID;
-    UPLL_LOG_DEBUG("vbridge name and valid (%d) (%s)",
-                    val_ff_entry_new->valid[UPLL_IDX_FLOWLIST_NAME_FFE],
-                    val_ff_entry_new->redirect_node);
-
+      // New Name NuLL CHECK
+      if (!strlen(reinterpret_cast<char *>(key_rename->new_unc_vnode_name))) {
+        UPLL_LOG_DEBUG("new_unc_vnode_name NULL");
+        if (val_ff_entry_new) free(val_ff_entry_new);
+        DELETE_IF_NOT_NULL(kval);
+        DELETE_IF_NOT_NULL(first_ckv);
+        return UPLL_RC_ERR_GENERIC;
+      }
+      // Copy the new vbridge name into val_flowfilter_entry
+      uuu::upll_strncpy(val_ff_entry_new->redirect_node,
+                        key_rename->new_unc_vnode_name,
+                        sizeof(val_ff_entry_new->redirect_node));
+      val_ff_entry_new->valid[UPLL_IDX_REDIRECT_NODE_FFE] = UNC_VF_VALID;
+      UPLL_LOG_DEBUG("vbridge name and valid (%d) (%s)",
+                     val_ff_entry_new->valid[UPLL_IDX_FLOWLIST_NAME_FFE],
+                     val_ff_entry_new->redirect_node);
     }
     ConfigVal *cval1 = new ConfigVal(IpctSt::kIpcStValFlowfilterEntry,
-                       val_ff_entry_new);
+                                     val_ff_entry_new);
 
     kval->SetCfgVal(cval1);
 
@@ -3439,9 +3089,9 @@ upll_rc_t VbrFlowFilterEntryMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
     ctrlr_dom.domain = NULL;
     GET_USER_DATA_CTRLR_DOMAIN(okey, ctrlr_dom);
     if (ikey->get_key_type() == UNC_KT_FLOWLIST) {
-      if (!no_rename) 
+      if (!no_rename)
         rename = rename | FLOW_RENAME;
-      else 
+      else
         rename = rename & NO_FLOWLIST_RENAME;
     } else if (ikey->get_key_type() == UNC_KT_VBRIDGE) {
       if (!no_rename)
@@ -3455,10 +3105,11 @@ upll_rc_t VbrFlowFilterEntryMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
 
     // Update the new flowlist name in MAINTBL
     result_code = UpdateConfigDB(kval, data_type, UNC_OP_UPDATE, dmi,
-                  MAINTBL);
+                                 MAINTBL);
     if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("Update The Existing record Err in vbrflowfilterentrytbl CANDIDATE DB(%d)",
-        result_code);
+      UPLL_LOG_DEBUG("Update The Existing record Err in"
+                     "vbrflowfilterentrytbl CANDIDATE DB(%d)",
+                     result_code);
       DELETE_IF_NOT_NULL(first_ckv);
       DELETE_IF_NOT_NULL(kval);
       return result_code;
@@ -3482,72 +3133,73 @@ bool VbrFlowFilterEntryMoMgr::CompareValidValue(void *&val1, void *val2,
   val_flowfilter_entry_t *val_ff_entry2 =
       reinterpret_cast<val_flowfilter_entry_t *>(val2);
 
-  for ( unsigned int loop = 0; loop < (sizeof(val_ff_entry1->valid)/
-                             sizeof(val_ff_entry1->valid[0])) ; ++loop ) {
+  for ( unsigned int loop = 0; loop < (
+          sizeof(val_ff_entry1->valid)/
+          sizeof(val_ff_entry1->valid[0])) ; ++loop ) {
     if ( UNC_VF_INVALID == val_ff_entry1->valid[loop] &&
-                UNC_VF_VALID == val_ff_entry2->valid[loop])
-     val_ff_entry1->valid[loop] = UNC_VF_VALID_NO_VALUE;
+        UNC_VF_VALID == val_ff_entry2->valid[loop])
+      val_ff_entry1->valid[loop] = UNC_VF_VALID_NO_VALUE;
   }
 
   if (val_ff_entry1->valid[UPLL_IDX_FLOWLIST_NAME_FFE] == UNC_VF_VALID
-    && val_ff_entry2->valid[UPLL_IDX_FLOWLIST_NAME_FFE] == UNC_VF_VALID) {
+      && val_ff_entry2->valid[UPLL_IDX_FLOWLIST_NAME_FFE] == UNC_VF_VALID) {
     if (!strcmp(reinterpret_cast<char *>(val_ff_entry1->flowlist_name),
-               reinterpret_cast<char *>(val_ff_entry2->flowlist_name)))
+                reinterpret_cast<char *>(val_ff_entry2->flowlist_name)))
       val_ff_entry1->valid[UPLL_IDX_FLOWLIST_NAME_FFE] = UNC_VF_INVALID;
   }
   if (val_ff_entry1->valid[UPLL_IDX_ACTION_FFE] == UNC_VF_VALID &&
-     val_ff_entry2->valid[UPLL_IDX_ACTION_FFE] == UNC_VF_VALID) {
+      val_ff_entry2->valid[UPLL_IDX_ACTION_FFE] == UNC_VF_VALID) {
     if (val_ff_entry1->action == val_ff_entry2->action)
       val_ff_entry1->valid[UPLL_IDX_ACTION_FFE] = UNC_VF_INVALID;
   }
   if (val_ff_entry1->valid[UPLL_IDX_REDIRECT_NODE_FFE] == UNC_VF_VALID
-     && val_ff_entry2->valid[UPLL_IDX_REDIRECT_NODE_FFE] == UNC_VF_VALID) {
+      && val_ff_entry2->valid[UPLL_IDX_REDIRECT_NODE_FFE] == UNC_VF_VALID) {
     if (!strcmp(reinterpret_cast<char *>(val_ff_entry1->redirect_node),
-              reinterpret_cast<const char *>(val_ff_entry2->redirect_node)))
+                reinterpret_cast<const char *>(val_ff_entry2->redirect_node)))
       val_ff_entry1->valid[UPLL_IDX_REDIRECT_NODE_FFE] =
-      (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   }
   if (val_ff_entry1->valid[UPLL_IDX_REDIRECT_PORT_FFE] == UNC_VF_VALID &&
-     val_ff_entry2->valid[UPLL_IDX_REDIRECT_PORT_FFE] == UNC_VF_VALID) {
+      val_ff_entry2->valid[UPLL_IDX_REDIRECT_PORT_FFE] == UNC_VF_VALID) {
     if (!strcmp(reinterpret_cast<char *>(val_ff_entry1->redirect_port),
-              reinterpret_cast<char *>(val_ff_entry2->redirect_port)))
-      val_ff_entry1->valid[UPLL_IDX_REDIRECT_PORT_FFE] = 
-      (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+                reinterpret_cast<char *>(val_ff_entry2->redirect_port)))
+      val_ff_entry1->valid[UPLL_IDX_REDIRECT_PORT_FFE] =
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   }
   if (val_ff_entry1->valid[UPLL_IDX_MODIFY_DST_MAC_FFE] == UNC_VF_VALID &&
-     val_ff_entry2->valid[UPLL_IDX_MODIFY_DST_MAC_FFE] == UNC_VF_VALID) {
+      val_ff_entry2->valid[UPLL_IDX_MODIFY_DST_MAC_FFE] == UNC_VF_VALID) {
     if (!memcmp(reinterpret_cast<char *>(val_ff_entry1->modify_dstmac),
-        reinterpret_cast<char *>(val_ff_entry2->modify_dstmac),
-        sizeof(val_ff_entry2->modify_dstmac)))
+                reinterpret_cast<char *>(val_ff_entry2->modify_dstmac),
+                sizeof(val_ff_entry2->modify_dstmac)))
       val_ff_entry1->valid[UPLL_IDX_MODIFY_DST_MAC_FFE] =
-      (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   }
   if (val_ff_entry1->valid[UPLL_IDX_MODIFY_SRC_MAC_FFE] == UNC_VF_VALID &&
-     val_ff_entry2->valid[UPLL_IDX_MODIFY_SRC_MAC_FFE] == UNC_VF_VALID) {
+      val_ff_entry2->valid[UPLL_IDX_MODIFY_SRC_MAC_FFE] == UNC_VF_VALID) {
     if (!memcmp(reinterpret_cast<char *>(val_ff_entry1->modify_srcmac),
-              reinterpret_cast<char *>(val_ff_entry2->modify_srcmac),
-              sizeof(val_ff_entry2->modify_srcmac)))
+                reinterpret_cast<char *>(val_ff_entry2->modify_srcmac),
+                sizeof(val_ff_entry2->modify_srcmac)))
       val_ff_entry1->valid[UPLL_IDX_MODIFY_SRC_MAC_FFE] =
-      (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   }
   if (val_ff_entry1->valid[UPLL_IDX_NWM_NAME_FFE] == UNC_VF_VALID &&
-     val_ff_entry2->valid[UPLL_IDX_NWM_NAME_FFE] == UNC_VF_VALID) {
+      val_ff_entry2->valid[UPLL_IDX_NWM_NAME_FFE] == UNC_VF_VALID) {
     if (!strcmp(reinterpret_cast<char *>(val_ff_entry1->nwm_name),
-              reinterpret_cast<char *>(val_ff_entry2->nwm_name)))
+                reinterpret_cast<char *>(val_ff_entry2->nwm_name)))
       val_ff_entry1->valid[UPLL_IDX_NWM_NAME_FFE] = UNC_VF_INVALID;
   }
   if (val_ff_entry1->valid[UPLL_IDX_DSCP_FFE] == UNC_VF_VALID &&
-     val_ff_entry2->valid[UPLL_IDX_DSCP_FFE] == UNC_VF_VALID) {
+      val_ff_entry2->valid[UPLL_IDX_DSCP_FFE] == UNC_VF_VALID) {
     if (val_ff_entry1->dscp == val_ff_entry2->dscp)
       val_ff_entry1->valid[UPLL_IDX_DSCP_FFE] = UNC_VF_INVALID;
   }
   if (val_ff_entry1->valid[UPLL_IDX_PRIORITY_FFE] == UNC_VF_VALID &&
-     val_ff_entry2->valid[UPLL_IDX_PRIORITY_FFE] == UNC_VF_VALID) {
+      val_ff_entry2->valid[UPLL_IDX_PRIORITY_FFE] == UNC_VF_VALID) {
     if (val_ff_entry1->priority == val_ff_entry2->priority)
       val_ff_entry1->valid[UPLL_IDX_PRIORITY_FFE] = UNC_VF_INVALID;
   }
   for (unsigned int loop = 0;
-      loop < sizeof(val_ff_entry1->valid)/ sizeof(uint8_t); ++loop) {
+       loop < sizeof(val_ff_entry1->valid)/ sizeof(uint8_t); ++loop) {
     if ((UNC_VF_VALID == (uint8_t) val_ff_entry1->valid[loop]) ||
         (UNC_VF_VALID_NO_VALUE == (uint8_t) val_ff_entry1->valid[loop]))
       attr = false;
@@ -3620,8 +3272,8 @@ upll_rc_t VbrFlowFilterEntryMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
 }
 
 upll_rc_t VbrFlowFilterEntryMoMgr::DeleteChildrenPOM(
-          ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
-          DalDmlIntf *dmi) {
+    ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
   uint8_t *ctrlr_id = NULL;
@@ -3700,8 +3352,8 @@ upll_rc_t VbrFlowFilterEntryMoMgr::SetValidAudit(ConfigKeyVal *&ikey) {
     return UPLL_RC_ERR_GENERIC;
   }
   for (unsigned int loop = 0;
-        loop < sizeof(val->valid) / sizeof(val->valid[0]);
-        ++loop) {
+       loop < sizeof(val->valid) / sizeof(val->valid[0]);
+       ++loop) {
     if (val->valid[loop] == UNC_VF_VALID) {
       val->cs_attr[loop] = UNC_CS_APPLIED;
     } else if (val->valid[loop] == UNC_VF_INVALID) {
@@ -3713,12 +3365,13 @@ upll_rc_t VbrFlowFilterEntryMoMgr::SetValidAudit(ConfigKeyVal *&ikey) {
 }
 
 
-upll_rc_t VbrFlowFilterEntryMoMgr::UpdateConfigStatus(ConfigKeyVal *vbr_key,
-                                       unc_keytype_operation_t op,
-                                       uint32_t driver_result,
-                                       ConfigKeyVal *upd_key,
-                                       DalDmlIntf *dmi,
-                                       ConfigKeyVal *ctrlr_key) {
+upll_rc_t VbrFlowFilterEntryMoMgr::UpdateConfigStatus(
+    ConfigKeyVal *vbr_key,
+    unc_keytype_operation_t op,
+    uint32_t driver_result,
+    ConfigKeyVal *upd_key,
+    DalDmlIntf *dmi,
+    ConfigKeyVal *ctrlr_key) {
   UPLL_FUNC_TRACE;
   ConfigKeyVal * vbr_ffe_run_key = NULL;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
@@ -3735,22 +3388,22 @@ upll_rc_t VbrFlowFilterEntryMoMgr::UpdateConfigStatus(ConfigKeyVal *vbr_key,
     result_code = GetChildConfigKey(vbr_ffe_run_key, vbr_key);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("GetChildConfigKey is failed resultcode=%d",
-                           result_code);
+                     result_code);
       return result_code;
     }
     DbSubOp dbop_maintbl = { kOpReadSingle, kOpMatchNone,
-                                          kOpInOutFlag |kOpInOutCs };
+      kOpInOutFlag |kOpInOutCs };
     result_code = ReadConfigDB(vbr_ffe_run_key, UPLL_DT_RUNNING  ,
-                                     UNC_OP_READ, dbop_maintbl, dmi, MAINTBL);
+                               UNC_OP_READ, dbop_maintbl, dmi, MAINTBL);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Unable to read configuration from RunningDb");
       DELETE_IF_NOT_NULL(vbr_ffe_run_key);
-      return result_code; 
+      return result_code;
     }
     val_main = reinterpret_cast
-           <val_flowfilter_entry_t *>(GetVal(vbr_ffe_run_key));
+        <val_flowfilter_entry_t *>(GetVal(vbr_ffe_run_key));
     for (unsigned int loop = 0; loop < sizeof(val_main->valid)/
-           sizeof(val_main->valid[0]); ++loop) {
+         sizeof(val_main->valid[0]); ++loop) {
       vbr_ffe_val->cs_attr[loop] = val_main->cs_attr[loop];
     }
     void *vbrffeval = reinterpret_cast<void *>(vbr_ffe_val);
@@ -3758,21 +3411,21 @@ upll_rc_t VbrFlowFilterEntryMoMgr::UpdateConfigStatus(ConfigKeyVal *vbr_key,
   } else {
     return UPLL_RC_ERR_GENERIC;
   }
-  UPLL_LOG_TRACE("%s",(vbr_key->ToStrAll()).c_str());
-  val_flowfilter_entry_t *vbr_ffe_val2 = 
-    reinterpret_cast<val_flowfilter_entry_t *>(GetVal(upd_key));
+  UPLL_LOG_TRACE("%s", (vbr_key->ToStrAll()).c_str());
+  val_flowfilter_entry_t *vbr_ffe_val2 =
+      reinterpret_cast<val_flowfilter_entry_t *>(GetVal(upd_key));
   if (UNC_OP_UPDATE == op) {
-    UPLL_LOG_TRACE("%s",(upd_key->ToStrAll()).c_str());
+    UPLL_LOG_TRACE("%s", (upd_key->ToStrAll()).c_str());
     vbr_ffe_val->cs_row_status = vbr_ffe_val2->cs_row_status;
   }
   for (unsigned int loop = 0;
-    loop < sizeof(vbr_ffe_val->valid) / 
+       loop < sizeof(vbr_ffe_val->valid) /
        sizeof(vbr_ffe_val->valid[0]); ++loop) {
     /* Setting CS to the not supported attributes*/
     if (UNC_VF_NOT_SUPPORTED == vbr_ffe_val->valid[loop]) {
       vbr_ffe_val->cs_attr[loop] = UNC_CS_NOT_SUPPORTED;
     } else if ((UNC_VF_VALID == vbr_ffe_val->valid[loop])
-          || (UNC_VF_VALID_NO_VALUE == vbr_ffe_val->valid[loop])) {
+               || (UNC_VF_VALID_NO_VALUE == vbr_ffe_val->valid[loop])) {
       vbr_ffe_val->cs_attr[loop] = cs_status;
     } else if ((UNC_VF_INVALID == vbr_ffe_val->valid[loop]) &&
                (UNC_OP_CREATE == op)) {
@@ -3785,13 +3438,13 @@ upll_rc_t VbrFlowFilterEntryMoMgr::UpdateConfigStatus(ConfigKeyVal *vbr_key,
         }
       }
     } else if ((UNC_VF_VALID == vbr_ffe_val->valid[loop]) &&
-       (UNC_OP_UPDATE == op)) {
+               (UNC_OP_UPDATE == op)) {
       if (cs_status == UNC_CS_APPLIED) {
         vbr_ffe_val->cs_attr[loop] = UNC_CS_APPLIED;
-      }  
-    } 
-    if ((vbr_ffe_val->valid[loop] == UNC_VF_VALID_NO_VALUE) 
-                     &&(UNC_OP_UPDATE == op)) { 
+      }
+    }
+    if ((vbr_ffe_val->valid[loop] == UNC_VF_VALID_NO_VALUE)
+        &&(UNC_OP_UPDATE == op)) {
       vbr_ffe_val->cs_attr[loop]  = UNC_CS_UNKNOWN;
     }
   }
@@ -3800,9 +3453,9 @@ upll_rc_t VbrFlowFilterEntryMoMgr::UpdateConfigStatus(ConfigKeyVal *vbr_key,
 }
 
 bool VbrFlowFilterEntryMoMgr::FilterAttributes(void *&val1,
-                                          void *val2,
-                                          bool copy_to_running,
-                                          unc_keytype_operation_t op) {
+                                               void *val2,
+                                               bool copy_to_running,
+                                               unc_keytype_operation_t op) {
   UPLL_FUNC_TRACE;
   if (op != UNC_OP_CREATE)
     return CompareValidValue(val1, val2, copy_to_running);
@@ -3810,12 +3463,12 @@ bool VbrFlowFilterEntryMoMgr::FilterAttributes(void *&val1,
 }
 
 upll_rc_t VbrFlowFilterEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
-    DalDmlIntf *dmi,
-    IpcReqRespHeader *req) {
+                                                 DalDmlIntf *dmi,
+                                                 IpcReqRespHeader *req) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_flowfilter_entry_t *val_ffe = reinterpret_cast
-    <val_flowfilter_entry_t *>(GetVal(ikey));
+      <val_flowfilter_entry_t *>(GetVal(ikey));
   if (!val_ffe) {
     UPLL_LOG_DEBUG("Val is NULL");
     return UPLL_RC_ERR_GENERIC;
@@ -3828,8 +3481,8 @@ upll_rc_t VbrFlowFilterEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
       return result_code;
     }
     MoMgrImpl *mgr =
-      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_VBR_FLOWFILTER)));
+        reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                    UNC_KT_VBR_FLOWFILTER)));
     if (!mgr) {
       UPLL_LOG_DEBUG("mgr is NULL");
       DELETE_IF_NOT_NULL(pkey);
@@ -3849,14 +3502,14 @@ upll_rc_t VbrFlowFilterEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
         ((UNC_OP_CREATE == req->operation))) {
       ConfigKeyVal *fl_ckv = NULL;
       result_code = GetFlowlistConfigKey(reinterpret_cast<const char *>
-          (val_ffe->flowlist_name), fl_ckv, dmi);
+                                         (val_ffe->flowlist_name), fl_ckv, dmi);
       if (UPLL_RC_SUCCESS != result_code) {
         UPLL_LOG_DEBUG("GetFlowlistConfigKey failed %d", result_code);
         return result_code;
       }
       MoMgrImpl *fl_mgr =
-      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_FLOWLIST)));
+          reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                      UNC_KT_FLOWLIST)));
       if (NULL == fl_mgr) {
         UPLL_LOG_DEBUG("fl_mgr is NULL");
         DELETE_IF_NOT_NULL(fl_ckv);
@@ -3870,7 +3523,8 @@ upll_rc_t VbrFlowFilterEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
         return result_code;
       }
       if (fl_rename & 0x01) {
-        rename |= FLOW_RENAME;  // TODO Check for correct flag value
+        rename |= FLOW_RENAME;  // TODO(upll):
+                                // Check for correct flag value
       }
       DELETE_IF_NOT_NULL(fl_ckv);
     }
@@ -3885,14 +3539,14 @@ upll_rc_t VbrFlowFilterEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
     if (UNC_VF_VALID == val_ffe->valid[UPLL_IDX_FLOWLIST_NAME_FFE]) {
       ConfigKeyVal *fl_ckv = NULL;
       result_code = GetFlowlistConfigKey(reinterpret_cast<const char *>
-          (val_ffe->flowlist_name), fl_ckv, dmi);
+                                         (val_ffe->flowlist_name), fl_ckv, dmi);
       if (UPLL_RC_SUCCESS != result_code) {
         UPLL_LOG_DEBUG("GetFlowlistConfigKey failed %d", result_code);
         return result_code;
       }
       MoMgrImpl *fl_mgr =
-      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_FLOWLIST)));
+          reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                      UNC_KT_FLOWLIST)));
       if (NULL == fl_mgr) {
         UPLL_LOG_DEBUG("fl_mgr is NULL");
         DELETE_IF_NOT_NULL(fl_ckv);
@@ -3906,7 +3560,8 @@ upll_rc_t VbrFlowFilterEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
         return result_code;
       }
       if (fl_rename & 0x01) {
-        rename |= FLOW_RENAME;  // TODO Check for correct flag value
+        rename |= FLOW_RENAME;  // TODO(upll): Check
+        // for correct flag value
       } else {
         rename &= NO_FLOWLIST_RENAME;
         /* reset flag*/
@@ -3914,7 +3569,8 @@ upll_rc_t VbrFlowFilterEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
       DELETE_IF_NOT_NULL(fl_ckv);
     } else if (UNC_VF_VALID_NO_VALUE == val_ffe->valid
                [UPLL_IDX_FLOWLIST_NAME_FFE]) {
-       rename &= NO_FLOWLIST_RENAME; // TODO Check for correct flag value. No rename flowlist value should be set
+      rename &= NO_FLOWLIST_RENAME;  // TODO(upll): Check for correct flag value
+      // No rename flowlist value should be set
     }
     SET_USER_DATA_FLAGS(ikey, rename);
   }
@@ -3922,13 +3578,13 @@ upll_rc_t VbrFlowFilterEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
 }
 
 upll_rc_t VbrFlowFilterEntryMoMgr::GetFlowlistConfigKey(
-        const char *flowlist_name, ConfigKeyVal *&okey,
-        DalDmlIntf *dmi) {
+    const char *flowlist_name, ConfigKeyVal *&okey,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
   MoMgrImpl *mgr =
       reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_FLOWLIST)));
+                  UNC_KT_FLOWLIST)));
   result_code = mgr->GetChildConfigKey(okey, NULL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("GetChildConfigKey failed %d", result_code);
@@ -3937,8 +3593,8 @@ upll_rc_t VbrFlowFilterEntryMoMgr::GetFlowlistConfigKey(
   key_flowlist_t *okey_key = reinterpret_cast<key_flowlist_t *>
       (okey->get_key());
   uuu::upll_strncpy(okey_key->flowlist_name,
-        flowlist_name,
-        (kMaxLenFlowListName+1));
+                    flowlist_name,
+                    (kMaxLenFlowListName+1));
   return UPLL_RC_SUCCESS;
 }
 }  // namespace kt_momgr
index 3adc7f20ef0932d1b955c59aaa736f49c7af3c9b..75d88427254f1125f938d05ca9e2bb90d5a400f0 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -20,12 +20,12 @@ namespace upll {
 namespace kt_momgr {
 
 /*  This file declares interfaces for keyType KT_VBR_FLOWFILER_ENTRY */
-/**
- * @brief  VbrFlowFilterEntryMoMgr class handles all the request
- *         received from service.
- */
-class VbrFlowFilterEntryMoMgr : public MoMgrImpl {
-  private:
+  /**
  * @brief  VbrFlowFilterEntryMoMgr class handles all the request
  *         received from service.
  */
+  class VbrFlowFilterEntryMoMgr : public MoMgrImpl {
+   private:
     /**
      * @brief  Member Variable for VbrFlowfilterEntryBindInfo.
      */
@@ -40,9 +40,8 @@ class VbrFlowFilterEntryMoMgr : public MoMgrImpl {
      * @brief  Member Variable for FlowListRenameBindInfo.
      */
     static BindInfo vbr_flowlist_rename_bind_info[];
-    uint32_t cur_instance_count;
 
-  public:
+   public:
     /**
      * @brief  Validates the Attribute of a Particular Class.
      *
@@ -62,8 +61,8 @@ class VbrFlowFilterEntryMoMgr : public MoMgrImpl {
                                         upll_keytype_datatype_t dt_type);
 
     upll_rc_t TxVote(unc_key_type_t keytype,
-                            DalDmlIntf *dmi,
-                            ConfigKeyVal **err_ckv);
+                     DalDmlIntf *dmi,
+                     ConfigKeyVal **err_ckv);
     /**
      * @Brief  Validates the syntax of the specified key and value structure
      *         for KT_VBR_FLOWFILTER_ENTRY keytype
@@ -91,8 +90,8 @@ class VbrFlowFilterEntryMoMgr : public MoMgrImpl {
      * @retval  UPLL_RC_ERR_CFG_SYNTAX  validation failed.
      */
     upll_rc_t ValidateVbrFlowfilterEntryKey(
-         key_vbr_flowfilter_entry_t *key_vbr_flowfilter_entry,
-         unc_keytype_operation_t operation);
+        key_vbr_flowfilter_entry_t *key_vbr_flowfilter_entry,
+        unc_keytype_operation_t operation);
 
     upll_rc_t GetControllerDomainID(ConfigKeyVal *ikey,
                                     controller_domain *ctrlr_dom,
@@ -112,8 +111,7 @@ class VbrFlowFilterEntryMoMgr : public MoMgrImpl {
      * @retval  UPLL_RC_ERR_CFG_SYNTAX  validation failed.
      */
     static upll_rc_t ValidateFlowfilterEntryValue(
-          val_flowfilter_entry_t *val_flowfilter_entry, uint32_t operation,
-          bool action_valid = false, bool action_redirect = false);
+        val_flowfilter_entry_t *val_flowfilter_entry, uint32_t operation);
 
     /**
      * @Brief  Validates the syntax for redirect_port, redirect_node fields of
@@ -126,8 +124,8 @@ class VbrFlowFilterEntryMoMgr : public MoMgrImpl {
      * @retval  UPLL_RC_ERR_CFG_SYNTAX  validation failed.
      */
     static upll_rc_t ValidateRedirectField(
-               val_flowfilter_entry_t *val_flowfilter_entry,
-                                    uint32_t operation);
+        val_flowfilter_entry_t *val_flowfilter_entry,
+        uint32_t operation);
 
     /**
      * @Brief  Validates the syntax for action field and checks whether
@@ -141,8 +139,7 @@ class VbrFlowFilterEntryMoMgr : public MoMgrImpl {
      * @retval  UPLL_RC_ERR_CFG_SYNTAX  validation failed.
      */
     static upll_rc_t ValidateFlowfilterEntryAction(
-           val_flowfilter_entry_t *val_flowfilter_entry, uint32_t operation,
-           bool db_up_action_valid, bool action_redirect);
+        val_flowfilter_entry_t *val_flowfilter_entry, uint32_t operation);
 
     /**
      * @Brief  Checks if the specified key type and
@@ -157,7 +154,7 @@ class VbrFlowFilterEntryMoMgr : public MoMgrImpl {
      * @retval  UPLL_RC_ERR_GENERIC                 Generic failure.
      */
     static upll_rc_t ValFlowFilterEntryAttributeSupportCheck(
-      val_flowfilter_entry_t *val_flowfilter_entry, const uint8_t* attrs);
+        val_flowfilter_entry_t *val_flowfilter_entry, const uint8_t* attrs);
 
     /**
      * @brief  VbrFlowFilterEntryMoMgr Class Constructor.
@@ -188,8 +185,8 @@ class VbrFlowFilterEntryMoMgr : public MoMgrImpl {
      * @retval  UPLL_RC_SUCCESS         validation succeeded.
      * @retval  UPLL_RC_ERR_CFG_SYNTAX  validation failed.
      */
-     upll_rc_t ValidateValFlowfilterEntry(IpcReqRespHeader *req,
-           ConfigKeyVal *key, DalDmlIntf *dmi = NULL);
+    upll_rc_t ValidateValFlowfilterEntry(IpcReqRespHeader *req,
+                                         ConfigKeyVal *key);
 
     /**
      * @Brief  Checks if the specified key type(KT_VBR_FLOWFILTER_ENTRY) and
@@ -205,8 +202,8 @@ class VbrFlowFilterEntryMoMgr : public MoMgrImpl {
      * @retval  UPLL_RC_ERR_INVALID_OPTION1  Option1 is not valid.
      * @retval  UPLL_RC_ERR_INVALID_OPTION2  Option2 is not valid.
      */
-     upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                                   const char* ctrlr_name = NULL);
+    upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *ikey,
+                                 const char* ctrlr_name = NULL);
 
     /**
      * @brief  Methods Used for getting Value Attribute.
@@ -263,14 +260,15 @@ class VbrFlowFilterEntryMoMgr : public MoMgrImpl {
      * @param[in]   cs_status    Describes CsStatus Infomation.
      *                           Information.
      * @param[in]   phase        Describes the Phase of the Operation.
-     * @param[in]   ckv_audit    Pointer to ConfigKeyVal Class.
+     * @param[in]      dmi          Pointer to the DalDmlIntf(DB Interface)
      *
      * @retval  UPLL_RC_SUCCESS      Successfull completion.
      * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
      */
-     upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
-                                       uuc::UpdateCtrlrPhase phase,
-                                       ConfigKeyVal *&ckv_running);
+    upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
+                                      uuc::UpdateCtrlrPhase phase,
+                                      ConfigKeyVal *&ckv_running,
+                                      DalDmlIntf *dmi);
 
     /**
      * @brief  Method used to fill the CongigKeyVal with the Parent
@@ -393,7 +391,7 @@ class VbrFlowFilterEntryMoMgr : public MoMgrImpl {
      * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
      */
     upll_rc_t CreateCandidateMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                                DalDmlIntf *dmi);
+                                DalDmlIntf *dmi, bool restore_flag = false);
 
     /**
      * @brief  Method used for Read Operation.
@@ -463,15 +461,15 @@ class VbrFlowFilterEntryMoMgr : public MoMgrImpl {
      */
     upll_rc_t UpdateMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
                        DalDmlIntf *dmi);
-   /**
-    * @brief  Method Used for Getting the Controller Id.
-    *
-    * @param[in]  ikey  Pointer to ConfigKeyVal Class.
-    * @param[in]  dmi   Pointer to DalDmiIntf Class
-    *
-    * @retval  UPLL_RC_SUCCESS      Successfull Operation.
-    * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
-    */
+    /**
+     * @brief  Method Used for Getting the Controller Id.
+     *
+     * @param[in]  ikey  Pointer to ConfigKeyVal Class.
+     * @param[in]  dmi   Pointer to DalDmiIntf Class
+     *
+     * @retval  UPLL_RC_SUCCESS      Successfull Operation.
+     * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
+     */
     upll_rc_t GetControllerId(ConfigKeyVal *ikey,
                               DalDmlIntf *dmi);
 
@@ -524,7 +522,7 @@ class VbrFlowFilterEntryMoMgr : public MoMgrImpl {
      *
      * @retval  UPLL_RC_SUCCESS      Successfull completion.
      * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
-     * @retval  UPLL_RC_ERR_INSTANCE_EXISTS       Record already exists 
+     * @retval  UPLL_RC_ERR_INSTANCE_EXISTS       Record already exists
      * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
      */
 
@@ -572,13 +570,13 @@ class VbrFlowFilterEntryMoMgr : public MoMgrImpl {
                           unc_keytype_operation_t op);
 
     upll_rc_t GetFlowlistConfigKey(
-          const char *flowlist_name, ConfigKeyVal *&okey,
-          DalDmlIntf *dmi);
+        const char *flowlist_name, ConfigKeyVal *&okey,
+        DalDmlIntf *dmi);
 
     upll_rc_t SetRenameFlag(ConfigKeyVal *ikey,
-          DalDmlIntf *dmi,
-          IpcReqRespHeader *req);
-};
+                            DalDmlIntf *dmi,
+                            IpcReqRespHeader *req);
+  };
 }  // namespace kt_momgr
 }  // namespace upll
 }  // namespace unc
index d42f0c2cb816caf78478a46275f239ac0adb4849..911c68f1aea5569068dddadf3856ae3cd0c83a17 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -57,8 +57,8 @@ BindInfo VbrFlowFilterMoMgr::vbr_flowfilter_maintbl_bind_info[] = {
     offsetof(key_rename_vnode_info_t, new_unc_vtn_name),
     uud::kDalChar, (kMaxLenVtnName + 1) },
   { uudst::vbr_flowfilter::kDbiVbrName, CFG_INPUT_KEY, offsetof(
-    key_rename_vnode_info_t, new_unc_vnode_name),
-    uud::kDalChar, (kMaxLenVnodeName + 1) },
+          key_rename_vnode_info_t, new_unc_vnode_name),
+  uud::kDalChar, (kMaxLenVnodeName + 1) },
   { uudst::vbr_flowfilter::kDbiFlags, CK_VAL,   // changed
     offsetof(key_user_data_t, flags),
     uud::kDalUint8, 1}
@@ -75,9 +75,10 @@ VbrFlowFilterMoMgr::VbrFlowFilterMoMgr() : MoMgrImpl() {
 
   // For Main Table
   table[MAINTBL] = new Table(uudst::kDbiVbrFlowFilterTbl,
-      UNC_KT_VBR_FLOWFILTER, vbr_flowfilter_bind_info,
-      IpctSt::kIpcStKeyVbrFlowfilter, IpctSt::kIpcStValFlowfilter,
-      uudst::vbr_flowfilter::kDbiVbrFlowFilterNumCols);
+                             UNC_KT_VBR_FLOWFILTER, vbr_flowfilter_bind_info,
+                             IpctSt::kIpcStKeyVbrFlowfilter,
+                             IpctSt::kIpcStValFlowfilter,
+                             uudst::vbr_flowfilter::kDbiVbrFlowFilterNumCols);
 
   table[RENAMETBL] = NULL;
 
@@ -85,7 +86,6 @@ VbrFlowFilterMoMgr::VbrFlowFilterMoMgr() : MoMgrImpl() {
 
   nchild = sizeof(vbr_flowfilter_child) / sizeof(vbr_flowfilter_child[0]);
   child = vbr_flowfilter_child;
-  cur_instance_count = 0;
 }
 
 bool VbrFlowFilterMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type,
@@ -94,7 +94,7 @@ bool VbrFlowFilterMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type,
                                               MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
   nattr = sizeof(vbr_flowfilter_maintbl_bind_info)/
-          sizeof(vbr_flowfilter_maintbl_bind_info[0]);
+      sizeof(vbr_flowfilter_maintbl_bind_info[0]);
   binfo = vbr_flowfilter_maintbl_bind_info;
 
   UPLL_LOG_DEBUG("Successful Completion");
@@ -109,7 +109,12 @@ upll_rc_t VbrFlowFilterMoMgr::IsReferenced(ConfigKeyVal *ikey,
   if (NULL == ikey) return UPLL_RC_ERR_GENERIC;
   DbSubOp dbop = { kOpReadExist, kOpMatchNone, kOpInOutNone };
   // Check the  object existence
-  result_code = UpdateConfigDB(ikey, dt_type, UNC_OP_READ, dmi, &dbop, MAINTBL);
+  result_code = UpdateConfigDB(ikey,
+                               dt_type,
+                               UNC_OP_READ,
+                               dmi,
+                               &dbop,
+                               MAINTBL);
   if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
     UPLL_LOG_DEBUG("No such instance to delete");
     return result_code;
@@ -118,81 +123,112 @@ upll_rc_t VbrFlowFilterMoMgr::IsReferenced(ConfigKeyVal *ikey,
 }
 
 upll_rc_t VbrFlowFilterMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
-                                       ConfigKeyVal *ikey,
-                                       DalDmlIntf *dmi) {
+                                                ConfigKeyVal *ikey,
+                                                DalDmlIntf *dmi,
+                                                bool restore_flag) {
   UPLL_FUNC_TRACE;
   controller_domain ctrlr_dom;
   ctrlr_dom.ctrlr = NULL;
   ctrlr_dom.domain = NULL;
-//  std::cout << "MoMgrImpl::CreateCandidateMo\n";
+  //  std::cout << "MoMgrImpl::CreateCandidateMo\n";
   if (ikey == NULL || req == NULL) {
-        return UPLL_RC_ERR_GENERIC;
+    return UPLL_RC_ERR_GENERIC;
   }
   upll_rc_t result_code = UPLL_RC_SUCCESS;
-  // validate syntax and semantics
-  result_code = ValidateMessage(req, ikey);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("ValidateMessage failed, Error - %d", result_code);
-    return result_code;
+  if (!restore_flag) {
+    // validate syntax and semantics
+    result_code = ValidateMessage(req, ikey);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("ValidateMessage failed, Error - %d", result_code);
+      return result_code;
+    }
   }
   result_code = ValidateAttribute(ikey, dmi, req);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("ValidateAttribute failed, Error - %d", result_code);
     return result_code;
   }
-  // Check if Object already exists in CANDIDATE DB
-  result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_READ, dmi);
-  if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS
-      || result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-//    std::cout << "Record already exists in Candidate DB\n";
-    return result_code;
-  }
 
-  // Check if Object exists in RUNNING DB and move it to CANDIDATE DB
-  if (UPLL_DT_CANDIDATE == req->datatype) {
-  result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING,
-                               UNC_OP_READ, dmi, MAINTBL);
-  if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
-    result_code = RestoreChildren(ikey, req->datatype, UPLL_DT_RUNNING, dmi);
-    if (result_code != UPLL_RC_SUCCESS) {
-      return UPLL_RC_ERR_GENERIC;
+  if (!restore_flag) {
+    if (UPLL_DT_CANDIDATE == req->datatype) {
+      result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dmi,
+                                   MAINTBL);
+      if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
+        UPLL_LOG_DEBUG("Key instance exist");
+        if ((ikey)->get_cfg_val()) {
+          UPLL_LOG_DEBUG("Read Key with Value struct");
+          DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
+            kOpInOutFlag | kOpInOutCtrlr | kOpInOutDomain };
+          result_code = ReadConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dbop,
+                                     dmi, MAINTBL);
+          if (UPLL_RC_SUCCESS != result_code &&
+              UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+            UPLL_LOG_DEBUG("ReadConfigDB Failed %d",  result_code);
+          }
+          if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code)  {
+            return UPLL_RC_ERR_CFG_SEMANTIC;
+          }
+        } else  {
+          result_code = UPLL_RC_SUCCESS;
+        }
+        if (UPLL_RC_SUCCESS == result_code) {
+          result_code = RestoreChildren(ikey,
+                                        req->datatype,
+                                        UPLL_DT_RUNNING,
+                                        dmi,
+                                        req);
+          UPLL_LOG_DEBUG("Restore Children returns %d", result_code);
+          return result_code;
+        }
+      } else if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+        UPLL_LOG_DEBUG("UpdateConfigDB Failed %d", result_code);
+        return result_code;
       }
+    } else {
+      result_code = UPLL_RC_ERR_NO_SUCH_INSTANCE;
     }
-  } 
+  } else {
+    result_code = UPLL_RC_ERR_NO_SUCH_INSTANCE;
+  }
+
   if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
     // create a record in CANDIDATE DB
     VbrMoMgr *mgrvbr =
-      reinterpret_cast<VbrMoMgr *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_VBRIDGE)));
+        reinterpret_cast<VbrMoMgr *>(const_cast<MoManager *>(GetMoManager(
+                    UNC_KT_VBRIDGE)));
     ConfigKeyVal *ckv = NULL;
     result_code = mgrvbr->GetChildConfigKey(ckv, NULL);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Unable to get the ParentConfigKey, resultcode=%d",
-                      result_code);
+                     result_code);
       return result_code;
     }
 
     key_vbr_flowfilter_t *ff_key = reinterpret_cast
-      <key_vbr_flowfilter_t *>(ikey->get_key());
+        <key_vbr_flowfilter_t *>(ikey->get_key());
     key_vbr_t *vbr_key = reinterpret_cast<key_vbr_t *>(ckv->get_key());
 
     uuu::upll_strncpy(vbr_key->vtn_key.vtn_name,
-        ff_key->vbr_key.vtn_key.vtn_name,
-        kMaxLenVtnName + 1);
+                      ff_key->vbr_key.vtn_key.vtn_name,
+                      kMaxLenVtnName + 1);
 
     uuu::upll_strncpy(vbr_key->vbridge_name,
-        ff_key->vbr_key.vbridge_name,
-        kMaxLenVnodeName + 1);
+                      ff_key->vbr_key.vbridge_name,
+                      kMaxLenVnodeName + 1);
     // Read Controller ID and Domain ID from the VBridge and set it to the
     // Input ConfigKeyVal
     DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
       kOpInOutCtrlr|kOpInOutDomain };
     result_code =  mgrvbr->ReadConfigDB(ckv, req->datatype, UNC_OP_READ,
-                                              dbop, dmi, MAINTBL);
+                                        dbop, dmi, MAINTBL);
 
     if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Unable to Read the details from DB for the parent err %d",
-                      result_code);
+      if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+        result_code = UPLL_RC_ERR_PARENT_DOES_NOT_EXIST;
+      }
+      UPLL_LOG_DEBUG("Unable to Read the details from DB"
+                     "for the parent err %d",
+                     result_code);
       DELETE_IF_NOT_NULL(ckv);
       return result_code;
     }
@@ -201,32 +237,11 @@ upll_rc_t VbrFlowFilterMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
     SET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
 
     UPLL_LOG_DEBUG("ctrlrid %s, domainid %s",
-                    ctrlr_dom.ctrlr, ctrlr_dom.domain);
-
-    ConfigKeyVal *tmp_key = NULL;
-    result_code = GetChildConfigKey(tmp_key, NULL);
-    if(result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetChildConfigKey Failed in  ValidateCapability");
-      DELETE_IF_NOT_NULL(ckv);
-      return result_code;
-    }
-    result_code = GetInstanceCount(tmp_key,
-                                   reinterpret_cast<char*>(ctrlr_dom.ctrlr),
-                                   req->datatype,
-                                   &cur_instance_count,
-                                   dmi,
-                                   MAINTBL);
-
-    delete tmp_key; tmp_key = NULL;
-
-    if(result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetInstanceCount Failed in  ValidateCapability");
-      DELETE_IF_NOT_NULL(ckv);
-      return result_code;
-    }
+                   ctrlr_dom.ctrlr, ctrlr_dom.domain);
 
     result_code = ValidateCapability(req, ikey,
-                     reinterpret_cast<const char *>(ctrlr_dom.ctrlr));
+                                     reinterpret_cast<const char *>
+                                     (ctrlr_dom.ctrlr));
 
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("validate Capability Failed %d", result_code);
@@ -243,13 +258,14 @@ upll_rc_t VbrFlowFilterMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
   return result_code;
 }
 
-upll_rc_t VbrFlowFilterMoMgr::GetControllerDomainID(ConfigKeyVal *ikey,
-                                          upll_keytype_datatype_t dt_type,
-                                          DalDmlIntf *dmi) {
+upll_rc_t VbrFlowFilterMoMgr::GetControllerDomainID(
+    ConfigKeyVal *ikey,
+    upll_keytype_datatype_t dt_type,
+    DalDmlIntf *dmi) {
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   VbrMoMgr *mgrvbr =
-    reinterpret_cast<VbrMoMgr *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_VBRIDGE)));
+      reinterpret_cast<VbrMoMgr *>(const_cast<MoManager *>(GetMoManager(
+                  UNC_KT_VBRIDGE)));
   if (NULL == mgrvbr) {
     UPLL_LOG_DEBUG("mgrvbr is NULL");
     return UPLL_RC_ERR_GENERIC;
@@ -258,30 +274,30 @@ upll_rc_t VbrFlowFilterMoMgr::GetControllerDomainID(ConfigKeyVal *ikey,
   result_code = mgrvbr->GetChildConfigKey(ckv, NULL);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("Unable to get the ParentConfigKey,resultcode=%d",
-                    result_code);
+                   result_code);
     return result_code;
   }
 
   key_vbr_flowfilter_t *ff_key = reinterpret_cast
-    <key_vbr_flowfilter_t *>(ikey->get_key());
+      <key_vbr_flowfilter_t *>(ikey->get_key());
   key_vbr_t *vbr_key = reinterpret_cast<key_vbr_t *>(ckv->get_key());
-  
+
   uuu::upll_strncpy(vbr_key->vtn_key.vtn_name,
-      ff_key->vbr_key.vtn_key.vtn_name,
-      kMaxLenVtnName + 1);
+                    ff_key->vbr_key.vtn_key.vtn_name,
+                    kMaxLenVtnName + 1);
 
   uuu::upll_strncpy(vbr_key->vbridge_name,
-      ff_key->vbr_key.vbridge_name,
-      kMaxLenVnodeName + 1);
-  //Read Controller ID and Domain ID from the VBridge and set it to the
-  //Input ConfigKeyVal
+                    ff_key->vbr_key.vbridge_name,
+                    kMaxLenVnodeName + 1);
+  // Read Controller ID and Domain ID from the VBridge and set it to the
+  // Input ConfigKeyVal
   DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutCtrlr|kOpInOutDomain };
   result_code =  mgrvbr->ReadConfigDB(ckv, dt_type, UNC_OP_READ,
-                                            dbop, dmi, MAINTBL);
-  
+                                      dbop, dmi, MAINTBL);
+
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("Unable to Read the details from DB for the parent err %d",
-                    result_code);
+                   result_code);
     DELETE_IF_NOT_NULL(ckv);
     return result_code;
   }
@@ -291,26 +307,27 @@ upll_rc_t VbrFlowFilterMoMgr::GetControllerDomainID(ConfigKeyVal *ikey,
   result_code = mgrvbr->GetControllerDomainId(ckv, &ctrlr_dom);
   SET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
   UPLL_LOG_DEBUG("ctrlrid %s, domainid %s",
-                  ctrlr_dom.ctrlr, ctrlr_dom.domain);
+                 ctrlr_dom.ctrlr, ctrlr_dom.domain);
   DELETE_IF_NOT_NULL(ckv);
   return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t VbrFlowFilterMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
-                                   DalDmlIntf *dmi,
-                                   const char *ctrlr_id) {
+                                                DalDmlIntf *dmi,
+                                                const char *ctrlr_id) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   UPLL_LOG_TRACE(" ikey is %s", ikey->ToStrAll().c_str());
   uint8_t *controller_id = reinterpret_cast<uint8_t *>(
-                                 const_cast<char *>(ctrlr_id));
+      const_cast<char *>(ctrlr_id));
 
   /* check if object is renamed in the corresponding Rename Tbl
    * if "renamed"  create the object by the UNC name.
    * else - create using the controller name.
    */
   result_code = GetRenamedUncKey(ikey, UPLL_DT_RUNNING, dmi, controller_id);
-  if (result_code != UPLL_RC_SUCCESS && result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+  if (result_code != UPLL_RC_SUCCESS &&
+      result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
     UPLL_LOG_DEBUG("GetRenamedUncKey Failed err_code %d", result_code);
     return result_code;
   }
@@ -331,79 +348,25 @@ upll_rc_t VbrFlowFilterMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
                  ctrlr_dom.ctrlr, ctrlr_dom.domain);
 
   // Create a record in AUDIT DB
-  result_code = UpdateConfigDB(ikey, UPLL_DT_AUDIT, UNC_OP_CREATE, dmi, MAINTBL);
+  result_code = UpdateConfigDB(ikey,
+                               UPLL_DT_AUDIT,
+                               UNC_OP_CREATE,
+                               dmi,
+                               MAINTBL);
 
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("UpdateConfigDB Failed err_code %d", result_code);
     return result_code;
   }
-  
+
   return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t VbrFlowFilterMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
                                                 DalDmlIntf *dmi,
                                                 IpcReqRespHeader *req) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-
-  ConfigKeyVal *okey = NULL;
-  if (!ikey || !ikey->get_key()) {
-    UPLL_LOG_DEBUG("input key is null");
-    return UPLL_RC_ERR_GENERIC;
-  }
-
-  key_vbr_flowfilter_t *key_vbr_ff =
-      reinterpret_cast<key_vbr_flowfilter_t *>(ikey->get_key());
-
-  MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>
-      (const_cast<MoManager *>(GetMoManager(UNC_KT_VBRIDGE)));
-
-  result_code = mgr->GetChildConfigKey(okey, NULL);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Memory allocation failed for KT_VBRIDGE key struct - %d",
-                    result_code);
-    return result_code;
-  }
-
-  key_vbr_t *vbr_key =
-      reinterpret_cast<key_vbr_t *>(okey->get_key());
-
-  uuu::upll_strncpy(vbr_key->vtn_key.vtn_name,
-        key_vbr_ff->vbr_key.vtn_key.vtn_name,
-        kMaxLenVtnName + 1);
-
-  uuu::upll_strncpy(vbr_key->vbridge_name,
-        key_vbr_ff->vbr_key.vbridge_name,
-        kMaxLenVnodeName + 1);
-
-  /* Checks the given key_vbr exists in DB or not */
-  result_code = mgr->UpdateConfigDB(okey, req->datatype, UNC_OP_READ,
-                                    dmi, MAINTBL);
-
-  if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
-    UPLL_LOG_DEBUG(" Parent KT_VBRIDGE key does not exists");
-    delete okey;
-    okey = NULL;
-    return UPLL_RC_ERR_PARENT_DOES_NOT_EXIST;
-  } else {
-    result_code = UPLL_RC_SUCCESS;
-  }
-
-  delete okey;
-  okey = NULL;
-
-  if (UNC_OP_CREATE == req->operation) {
-    result_code = SetRenameFlag(ikey, dmi, req);
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("SetRenameFlag failed %d", result_code);
-      return result_code;
-    }
-  }
-
-
-  UPLL_LOG_DEBUG("ValidateAttribute Successfull.");
-  return result_code;
+  // No operation
+  return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t VbrFlowFilterMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
@@ -418,8 +381,8 @@ upll_rc_t VbrFlowFilterMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
     return result_code;
   }
   MoMgrImpl *mgr =
-    reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-            UNC_KT_VBRIDGE)));
+      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                  UNC_KT_VBRIDGE)));
   if (!mgr) {
     UPLL_LOG_DEBUG("mgr is NULL");
     DELETE_IF_NOT_NULL(pkey);
@@ -439,8 +402,8 @@ upll_rc_t VbrFlowFilterMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
 }
 
 upll_rc_t VbrFlowFilterMoMgr::ValidateCapability(IpcReqRespHeader *req,
-                                 ConfigKeyVal *ikey,
-                                 const char *ctrlr_name) {
+                                                 ConfigKeyVal *ikey,
+                                                 const char *ctrlr_name) {
   UPLL_FUNC_TRACE;
 
   if ((NULL == req) || (NULL == ikey)) {
@@ -458,8 +421,8 @@ upll_rc_t VbrFlowFilterMoMgr::ValidateCapability(IpcReqRespHeader *req,
   }
 
   UPLL_LOG_TRACE("ctrlr_name : (%s)"
-               "operation : (%d)",
-               ctrlr_name, req->operation);
+                 "operation : (%d)",
+                 ctrlr_name, req->operation);
 
   bool result_code = false;
   uint32_t instance_count;
@@ -468,28 +431,23 @@ upll_rc_t VbrFlowFilterMoMgr::ValidateCapability(IpcReqRespHeader *req,
 
   switch (req->operation) {
     case UNC_OP_CREATE: {
-      UPLL_LOG_TRACE("Calling GetCreateCapability Operation  %d ", req->operation);
+      UPLL_LOG_TRACE("Calling GetCreateCapability Operation  %d ",
+                     req->operation);
       result_code = GetCreateCapability(ctrlr_name, ikey->get_key_type(),
                                         &instance_count, &max_attrs, &attrs);
-       if (result_code && cur_instance_count >= instance_count && 
-                  cur_instance_count !=0 && instance_count != 0) {
-          UPLL_LOG_DEBUG("[%s:%d:%s Instance count %d exceeds %d", __FILE__,
-                      __LINE__, __FUNCTION__, cur_instance_count,
-                      instance_count);
-          return UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
-      }
-
       break;
     }
     default: {
       if (req->datatype == UPLL_DT_STATE) {
-        UPLL_LOG_TRACE("Calling GetStateCapability Operation  %d ", req->operation);
+        UPLL_LOG_TRACE("Calling GetStateCapability Operation  %d ",
+                       req->operation);
         result_code = GetStateCapability(ctrlr_name, ikey->get_key_type(),
-                                      &max_attrs, &attrs);
+                                         &max_attrs, &attrs);
       } else {
-        UPLL_LOG_TRACE("Calling GetReadCapability Operation  %d ", req->operation);
+        UPLL_LOG_TRACE("Calling GetReadCapability Operation  %d ",
+                       req->operation);
         result_code = GetReadCapability(ctrlr_name, ikey->get_key_type(),
-                                      &max_attrs, &attrs);
+                                        &max_attrs, &attrs);
       }
     }
   }
@@ -497,7 +455,8 @@ upll_rc_t VbrFlowFilterMoMgr::ValidateCapability(IpcReqRespHeader *req,
   if (!result_code) {
     UPLL_LOG_DEBUG(" keytype(%d) is not supported by controller(%s) "
                    "for opeartion(%d) And Result_code (%d)",
-                   ikey->get_key_type(), ctrlr_name, req->operation, result_code);
+                   ikey->get_key_type(), ctrlr_name, req->operation,
+                   result_code);
     return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
   }
   return UPLL_RC_SUCCESS;
@@ -519,39 +478,40 @@ upll_rc_t VbrFlowFilterMoMgr::ValidateMessage(IpcReqRespHeader *req,
   }
 
   if (key->get_st_num() != IpctSt::kIpcStKeyVbrFlowfilter) {
-     UPLL_LOG_DEBUG("Invalid key structure received. received struct num - %d",
-                  key->get_st_num());
+    UPLL_LOG_DEBUG("Invalid key structure received. received struct num - %d",
+                   key->get_st_num());
     return UPLL_RC_ERR_BAD_REQUEST;
   }
-  if(req->option2 != UNC_OPT2_NONE) {
+  if (req->option2 != UNC_OPT2_NONE) {
     UPLL_LOG_DEBUG(" Error: option2 is not NONE");
     return UPLL_RC_ERR_INVALID_OPTION2;
   }
-  if((req->option1 != UNC_OPT1_NORMAL) 
-              &&(req->option1 != UNC_OPT1_DETAIL)) {
-     UPLL_LOG_DEBUG(" Error: option1 is not NORMAL");
-     return UPLL_RC_ERR_INVALID_OPTION1;
-   }
-   if((req->option1 != UNC_OPT1_NORMAL) 
-              &&(req->operation == UNC_OP_READ_SIBLING_COUNT)) {
-     UPLL_LOG_DEBUG(" Error: option1 is not NORMAL for ReadSiblingCount");
-     return UPLL_RC_ERR_INVALID_OPTION1;
-   }
+  if ((req->option1 != UNC_OPT1_NORMAL)
+     &&(req->option1 != UNC_OPT1_DETAIL)) {
+    UPLL_LOG_DEBUG(" Error: option1 is not NORMAL");
+    return UPLL_RC_ERR_INVALID_OPTION1;
+  }
+  if ((req->option1 != UNC_OPT1_NORMAL)
+     &&(req->operation == UNC_OP_READ_SIBLING_COUNT)) {
+    UPLL_LOG_DEBUG(" Error: option1 is not NORMAL for ReadSiblingCount");
+    return UPLL_RC_ERR_INVALID_OPTION1;
+  }
   if ((req->option1 == UNC_OPT1_DETAIL) &&
       (req->datatype != UPLL_DT_STATE)) {
-      UPLL_LOG_DEBUG(" Invalid Datatype(%d)", req->datatype);
-      return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
-  }
-  if ((req->datatype == UPLL_DT_IMPORT) && (req->operation == UNC_OP_READ || 
-       req->operation == UNC_OP_READ_SIBLING ||
-       req->operation == UNC_OP_READ_SIBLING_BEGIN ||
-       req->operation == UNC_OP_READ_NEXT ||
-       req->operation == UNC_OP_READ_BULK ||
-       req->operation == UNC_OP_READ_SIBLING_COUNT)) {
+    UPLL_LOG_DEBUG(" Invalid Datatype(%d)", req->datatype);
+    return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
+  }
+  if ((req->datatype == UPLL_DT_IMPORT) && (
+          req->operation == UNC_OP_READ ||
+          req->operation == UNC_OP_READ_SIBLING ||
+          req->operation == UNC_OP_READ_SIBLING_BEGIN ||
+          req->operation == UNC_OP_READ_NEXT ||
+          req->operation == UNC_OP_READ_BULK ||
+          req->operation == UNC_OP_READ_SIBLING_COUNT)) {
     return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
   }
 
-   /** Read key & value structure */
+  /** Read key & value structure */
   key_vbr_flowfilter_t *key_vbr_flowfilter =
       reinterpret_cast<key_vbr_flowfilter_t *>(key->get_key());
 
@@ -561,15 +521,15 @@ upll_rc_t VbrFlowFilterMoMgr::ValidateMessage(IpcReqRespHeader *req,
     return UPLL_RC_ERR_BAD_REQUEST;
   }
 
-    rt_code = ValidateVbrFlowfilterKey(key_vbr_flowfilter,
-                                       req->operation);
+  rt_code = ValidateVbrFlowfilterKey(key_vbr_flowfilter,
+                                     req->operation);
 
-    if (UPLL_RC_SUCCESS != rt_code) {
-      UPLL_LOG_DEBUG(" key_vbr_flowfilter syntax validation failed :"
-                     "Err Code - %d",
-                     rt_code);
-      return rt_code;
-    }
+  if (UPLL_RC_SUCCESS != rt_code) {
+    UPLL_LOG_DEBUG(" key_vbr_flowfilter syntax validation failed :"
+                   "Err Code - %d",
+                   rt_code);
+    return rt_code;
+  }
 
   return UPLL_RC_SUCCESS;
 }
@@ -828,19 +788,19 @@ upll_rc_t VbrFlowFilterMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
   void *tkey = req->get_key();
   if (tkey != NULL) {
     key_vbr_flowfilter_t *ikey =
-    reinterpret_cast<key_vbr_flowfilter_t *> (tkey);
+        reinterpret_cast<key_vbr_flowfilter_t *> (tkey);
     key_vbr_flowfilter_t *vbr_flowfilter =
-    reinterpret_cast<key_vbr_flowfilter_t*>
+        reinterpret_cast<key_vbr_flowfilter_t*>
         (ConfigKeyVal::Malloc(sizeof(key_vbr_if_flowfilter_t)));
 
     memcpy(vbr_flowfilter, ikey, sizeof(key_vbr_flowfilter_t));
     okey = new ConfigKeyVal(UNC_KT_VBR_FLOWFILTER,
-                          IpctSt::kIpcStKeyVbrFlowfilter,
-                          vbr_flowfilter, tmp1);
+                            IpctSt::kIpcStKeyVbrFlowfilter,
+                            vbr_flowfilter, tmp1);
   }
-  if (okey)
+  if (okey) {
     SET_USER_DATA(okey, req)
-  else {
+  else {
     DELETE_IF_NOT_NULL(tmp1);
     return UPLL_RC_ERR_GENERIC;
   }
@@ -864,9 +824,9 @@ upll_rc_t VbrFlowFilterMoMgr::RenameMo(IpcReqRespHeader *req,
 }
 
 upll_rc_t VbrFlowFilterMoMgr::MergeValidate(unc_key_type_t keytype,
-                                             const char *ctrlr_id,
-                                             ConfigKeyVal *ikey,
-                                             DalDmlIntf *dmi) {
+                                            const char *ctrlr_id,
+                                            ConfigKeyVal *ikey,
+                                            DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *ckval = NULL;
@@ -885,7 +845,7 @@ upll_rc_t VbrFlowFilterMoMgr::MergeValidate(unc_key_type_t keytype,
 
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutCtrlr|kOpInOutDomain};
   result_code = ReadConfigDB(ckval, UPLL_DT_IMPORT,
-              UNC_OP_READ, dbop, dmi, MAINTBL);
+                             UNC_OP_READ, dbop, dmi, MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     DELETE_IF_NOT_NULL(ckval);
     if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
@@ -928,14 +888,14 @@ upll_rc_t VbrFlowFilterMoMgr::GetRenamedUncKey(ConfigKeyVal *ikey,
   DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutNone };
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   UPLL_LOG_TRACE("%s GetRenamedUncKey vbrff start",
-                  ikey->ToStrAll().c_str());
+                 ikey->ToStrAll().c_str());
   if ((NULL == ikey) || (ctrlr_id == NULL) || (NULL == dmi)) {
     UPLL_LOG_DEBUG("ikey/ctrlr_id dmi NULL");
     return UPLL_RC_ERR_GENERIC;
   }
 
   MoMgrImpl *mgrvbr = reinterpret_cast<MoMgrImpl *>
-            (const_cast<MoManager *> (GetMoManager(UNC_KT_VBRIDGE)));
+      (const_cast<MoManager *> (GetMoManager(UNC_KT_VBRIDGE)));
   if (!mgrvbr) {
     UPLL_LOG_DEBUG("mgrvbr failed");
     return UPLL_RC_ERR_GENERIC;
@@ -980,7 +940,7 @@ upll_rc_t VbrFlowFilterMoMgr::GetRenamedUncKey(ConfigKeyVal *ikey,
   unc_key->AppendCfgVal(IpctSt::kIpcStValRenameVtn, rename_val);
 
   result_code = mgrvbr->ReadConfigDB(unc_key, dt_type, UNC_OP_READ,
-                                               dbop, dmi, RENAMETBL);
+                                     dbop, dmi, RENAMETBL);
   if ((UPLL_RC_SUCCESS != result_code) &&
       (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
     UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
@@ -1002,9 +962,9 @@ upll_rc_t VbrFlowFilterMoMgr::GetRenamedUncKey(ConfigKeyVal *ikey,
   }
 
   UPLL_LOG_TRACE("%s GetRenamedUncKey vbrff end",
-                  ikey->ToStrAll().c_str());
+                 ikey->ToStrAll().c_str());
   DELETE_IF_NOT_NULL(unc_key);
-    mgrvbr = NULL;
+  mgrvbr = NULL;
   return UPLL_RC_SUCCESS;
 }
 
@@ -1014,57 +974,61 @@ upll_rc_t VbrFlowFilterMoMgr::GetRenamedControllerKey(
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *okey = NULL;
-  uint8_t rename = 0;
-  IsRenamed(ikey, dt_type, dmi, rename);
-  if (!rename) {
-    UPLL_LOG_DEBUG("no renamed");
-    return UPLL_RC_SUCCESS;
-  }
   UPLL_LOG_TRACE("Start Input ConfigKeyVal %s", ikey->ToStrAll().c_str());
 
   MoMgrImpl *mgrvbr = reinterpret_cast<MoMgrImpl *>
-           (const_cast<MoManager *> (GetMoManager(UNC_KT_VBRIDGE)));
+      (const_cast<MoManager *> (GetMoManager(UNC_KT_VBRIDGE)));
   result_code = mgrvbr->GetChildConfigKey(okey, NULL);
   if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetChildConfigKey fail");
-      return result_code;
+    UPLL_LOG_DEBUG("GetChildConfigKey fail");
+    return result_code;
   }
 
-  if (ctrlr_dom)
+  if (ctrlr_dom) {
     SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
+  } else {
+    UPLL_LOG_DEBUG("Controller and domain Id are null");
+    DELETE_IF_NOT_NULL(okey);
+    return UPLL_RC_ERR_GENERIC;
+  }
 
   UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
+                 ctrlr_dom->domain);
 
-  uuu::upll_strncpy(reinterpret_cast<key_vbr *> (okey->get_key())->vtn_key.vtn_name,
+  uuu::upll_strncpy(reinterpret_cast<key_vbr *>
+                    (okey->get_key())->vtn_key.vtn_name,
                     reinterpret_cast<key_vbr_flowfilter_t *>
                     (ikey->get_key())->vbr_key.vtn_key.vtn_name,
-                    (kMaxLenVnodeName + 1));
+                    (kMaxLenVtnName + 1));
   UPLL_LOG_DEBUG("vtn name (%s) (%s)",
-      reinterpret_cast<key_vbr *> (okey->get_key())->vtn_key.vtn_name,
-                    reinterpret_cast<key_vbr_flowfilter_t *>
-                      (ikey->get_key())->vbr_key.vtn_key.vtn_name);
-  uuu::upll_strncpy(reinterpret_cast<key_vbr *> (okey->get_key())->vbridge_name,
+                 reinterpret_cast<key_vbr *>
+                 (okey->get_key())->vtn_key.vtn_name,
+                 reinterpret_cast<key_vbr_flowfilter_t *>
+                 (ikey->get_key())->vbr_key.vtn_key.vtn_name);
+  uuu::upll_strncpy(reinterpret_cast<key_vbr *>
+                    (okey->get_key())->vbridge_name,
                     reinterpret_cast<key_vbr_flowfilter_t *>
                     (ikey->get_key())->vbr_key.vbridge_name,
                     (kMaxLenVnodeName + 1));
   UPLL_LOG_DEBUG("vbr name (%s) (%s)",
-           reinterpret_cast<key_vbr *> (okey->get_key())->vbridge_name,
-                    reinterpret_cast<key_vbr_flowfilter_t *>
-                    (ikey->get_key())->vbr_key.vbridge_name);
+                 reinterpret_cast<key_vbr *> (okey->get_key())->vbridge_name,
+                 reinterpret_cast<key_vbr_flowfilter_t *>
+                 (ikey->get_key())->vbr_key.vbridge_name);
 
-  DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr | kOpMatchDomain, kOpInOutFlag };
+  DbSubOp dbop = { kOpReadSingle,
+    kOpMatchCtrlr | kOpMatchDomain,
+    kOpInOutFlag };
   result_code =  mgrvbr->ReadConfigDB(okey, dt_type, UNC_OP_READ,
-                                              dbop, dmi, RENAMETBL);
+                                      dbop, dmi, RENAMETBL);
   if ( result_code != UPLL_RC_SUCCESS ) {
     if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-        UPLL_LOG_DEBUG("ReadConfigDB no instance");
-        DELETE_IF_NOT_NULL(okey);
-        return UPLL_RC_SUCCESS;
-      }
-      UPLL_LOG_DEBUG("ReadConfigDB fail");
+      UPLL_LOG_DEBUG("ReadConfigDB no instance");
       DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
+      return UPLL_RC_SUCCESS;
+    }
+    UPLL_LOG_DEBUG("ReadConfigDB fail");
+    DELETE_IF_NOT_NULL(okey);
+    return UPLL_RC_ERR_GENERIC;
   }
 
   val_rename_vnode *rename_val = NULL;
@@ -1074,168 +1038,43 @@ upll_rc_t VbrFlowFilterMoMgr::GetRenamedControllerKey(
     DELETE_IF_NOT_NULL(okey);
     return UPLL_RC_ERR_GENERIC;
   }
-  if (rename & VTN_RENAME_FLAG) {
-    UPLL_LOG_DEBUG("vtn name renamed");
-    uuu::upll_strncpy(reinterpret_cast<key_vbr_flowfilter_t *>
-                      (ikey->get_key())->vbr_key.vtn_key.vtn_name,
-                      rename_val->ctrlr_vtn_name,
-                      (kMaxLenVtnName + 1));
-    UPLL_LOG_DEBUG("vtn re name(%s) (%s)",
-                    reinterpret_cast<key_vbr_flowfilter_t *>
+  UPLL_LOG_DEBUG("vtn name renamed");
+  uuu::upll_strncpy(reinterpret_cast<key_vbr_flowfilter_t *>
                     (ikey->get_key())->vbr_key.vtn_key.vtn_name,
-                    rename_val->ctrlr_vtn_name);
-  }
+                    rename_val->ctrlr_vtn_name,
+                    (kMaxLenVtnName + 1));
+  UPLL_LOG_DEBUG("vtn re name(%s) (%s)",
+                 reinterpret_cast<key_vbr_flowfilter_t *>
+                 (ikey->get_key())->vbr_key.vtn_key.vtn_name,
+                 rename_val->ctrlr_vtn_name);
 
 
-  if (rename & VBR_RENAME_FLAG) {
-    UPLL_LOG_DEBUG("vbr name renamed");
-    uuu::upll_strncpy(reinterpret_cast<key_vbr_flowfilter_t *>
-                      (ikey->get_key())->vbr_key.vbridge_name,
-                      rename_val->ctrlr_vnode_name,
-                      (kMaxLenVnodeName + 1));
-    UPLL_LOG_DEBUG("vbr name (%s) (%s)",
-                    reinterpret_cast<key_vbr_flowfilter_t *>
+  UPLL_LOG_DEBUG("vbr name renamed");
+  uuu::upll_strncpy(reinterpret_cast<key_vbr_flowfilter_t *>
                     (ikey->get_key())->vbr_key.vbridge_name,
-                    rename_val->ctrlr_vnode_name); 
-  }
+                    rename_val->ctrlr_vnode_name,
+                    (kMaxLenVnodeName + 1));
+  UPLL_LOG_DEBUG("vbr name (%s) (%s)",
+                 reinterpret_cast<key_vbr_flowfilter_t *>
+                 (ikey->get_key())->vbr_key.vbridge_name,
+                 rename_val->ctrlr_vnode_name);
+
   DELETE_IF_NOT_NULL(okey);
-  SET_USER_DATA_FLAGS(ikey, rename);
   UPLL_LOG_TRACE("End Input ConfigKeyVal %s", ikey->ToStrAll().c_str());
   UPLL_LOG_DEBUG("Renamed Controller key is sucessfull.");
   return UPLL_RC_SUCCESS;
-#if 0
-  /* Vtn renamed */
-  if (rename & VTN_RENAME_FLAG) {
-    UPLL_LOG_DEBUG("vtn name renamed");
-    MoMgrImpl *mgrvtn =reinterpret_cast<MoMgrImpl *>
-              (const_cast<MoManager *> (GetMoManager(UNC_KT_VTN)));
-    result_code = mgrvtn->GetChildConfigKey(okey, NULL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetChildConfigKey fail");
-      return result_code;
-    }
-    
-    if (ctrlr_dom) {
-      SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
-    } else {
-      UPLL_LOG_DEBUG("ctrlr_dom null");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
-
-    uuu::upll_strncpy(
-                      reinterpret_cast<key_vtn *> (okey->get_key())->vtn_name,
-                      reinterpret_cast<key_vbr_flowfilter_t *>
-                      (ikey->get_key())->vbr_key.vtn_key.vtn_name,
-                      (kMaxLenVtnName + 1));
-//    UPLL_LOG_DEBUG("vtn name (%s) (%s)" (okey->get_key())->vtn_name,
-//                  (ikey->get_key())->vbr_key.vtn_key.vtn_name);
-    DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutFlag };
-    result_code =  mgrvtn->ReadConfigDB(okey, dt_type, UNC_OP_READ,
-                         dbop, dmi, RENAMETBL);
-    if ( result_code != UPLL_RC_SUCCESS ) {
-      UPLL_LOG_DEBUG("ReadConfigDB null");
-      DELETE_IF_NOT_NULL(okey);
-      return result_code;
-    }
-    val_rename_vtn *rename_val = NULL;
-    rename_val = reinterpret_cast<val_rename_vtn *> (GetVal(okey));
-
-    if (!rename_val) {
-      UPLL_LOG_DEBUG("Vtn Name is not Valid.");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-    uuu::upll_strncpy(reinterpret_cast<key_vbr_flowfilter_t *>
-                      (ikey->get_key())->vbr_key.vtn_key.vtn_name,
-                      rename_val->new_name,
-                      (kMaxLenVtnName + 1));
-    UPLL_LOG_DEBUG("vtn re name(%s) (%s)",
-                    reinterpret_cast<key_vbr_flowfilter_t *>
-                    (ikey->get_key())->vbr_key.vtn_key.vtn_name,
-                    rename_val->new_name);
-    DELETE_IF_NOT_NULL(okey);
-    SET_USER_DATA_FLAGS(ikey, rename);
-  }
-  // Vbr Renamed
-  if (rename & VBR_RENAME_FLAG) {
-    UPLL_LOG_DEBUG("vbr name renamed");
-    MoMgrImpl *mgrvbr = reinterpret_cast<MoMgrImpl *>
-           (const_cast<MoManager *> (GetMoManager(UNC_KT_VBRIDGE)));
-    result_code = mgrvbr->GetChildConfigKey(okey, NULL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetChildConfigKey fail");
-      return result_code;
-    }
-
-    if (ctrlr_dom)
-      SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
-
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
-
-    uuu::upll_strncpy(reinterpret_cast<key_vbr *> (okey->get_key())->vtn_key.vtn_name,
-                      reinterpret_cast<key_vbr_flowfilter_t *>
-                      (ikey->get_key())->vbr_key.vtn_key.vtn_name,
-                      (kMaxLenVnodeName + 1));
-    UPLL_LOG_DEBUG("vtn name (%s) (%s)",
-        reinterpret_cast<key_vbr *> (okey->get_key())->vtn_key.vtn_name,
-                      reinterpret_cast<key_vbr_flowfilter_t *>
-                      (ikey->get_key())->vbr_key.vtn_key.vtn_name);
-    uuu::upll_strncpy(reinterpret_cast<key_vbr *> (okey->get_key())->vbridge_name,
-                      reinterpret_cast<key_vbr_flowfilter_t *>
-                      (ikey->get_key())->vbr_key.vbridge_name,
-                      (kMaxLenVnodeName + 1));
-    UPLL_LOG_DEBUG("vbr name (%s) (%s)",
-             reinterpret_cast<key_vbr *> (okey->get_key())->vbridge_name,
-                      reinterpret_cast<key_vbr_flowfilter_t *>
-                      (ikey->get_key())->vbr_key.vbridge_name);
-
-    DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutFlag };
-    result_code =  mgrvbr->ReadConfigDB(okey, dt_type, UNC_OP_READ,
-                                              dbop, dmi, RENAMETBL);
-    if ( result_code != UPLL_RC_SUCCESS ) {
-      UPLL_LOG_DEBUG("ReadConfigDB fail");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-
-    val_rename_vnode *rename_val = NULL;
-    rename_val = reinterpret_cast<val_rename_vnode *> (GetVal(okey));
-    if (!rename_val) {
-      UPLL_LOG_DEBUG("Vbr Name is not Valid.");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-    uuu::upll_strncpy(reinterpret_cast<key_vbr_flowfilter_t *>
-                      (ikey->get_key())->vbr_key.vbridge_name,
-                      rename_val->ctrlr_vnode_name,
-                      (kMaxLenVnodeName + 1));
-    UPLL_LOG_DEBUG("vbr name (%s) (%s)",
-                    reinterpret_cast<key_vbr_flowfilter_t *>
-                    (ikey->get_key())->vbr_key.vbridge_name,
-                    rename_val->ctrlr_vnode_name);
-    DELETE_IF_NOT_NULL(okey);
-  }
-  UPLL_LOG_TRACE("%s GetRenamedCtrl end", ikey->ToStrAll().c_str());  
-  UPLL_LOG_DEBUG("Renamed Controller key is sucessfull.");
-  return UPLL_RC_SUCCESS;
-#endif
 }
-
 upll_rc_t VbrFlowFilterMoMgr::UpdateAuditConfigStatus(
     unc_keytype_configstatus_t cs_status,
     uuc::UpdateCtrlrPhase phase,
-    ConfigKeyVal *&ckv_running) {
+    ConfigKeyVal *&ckv_running,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_flowfilter_t *val = NULL;
 
   val = (ckv_running != NULL)?
-    reinterpret_cast<val_flowfilter_t *> (GetVal(ckv_running)):NULL;
+      reinterpret_cast<val_flowfilter_t *> (GetVal(ckv_running)):NULL;
 
   if (NULL == val) {
     UPLL_LOG_DEBUG("Memory Not Allocated");
@@ -1244,8 +1083,8 @@ upll_rc_t VbrFlowFilterMoMgr::UpdateAuditConfigStatus(
   if (uuc::kUpllUcpCreate == phase )
     val->cs_row_status = cs_status;
   if ((uuc::kUpllUcpUpdate == phase) &&
-           (val->cs_row_status == UNC_CS_INVALID ||
-            val->cs_row_status == UNC_CS_NOT_APPLIED))
+      (val->cs_row_status == UNC_CS_INVALID ||
+       val->cs_row_status == UNC_CS_NOT_APPLIED))
     val->cs_row_status = cs_status;
 
   UPLL_LOG_DEBUG("AuditUpdate Config Status Information %d", result_code);
@@ -1305,9 +1144,10 @@ upll_rc_t VbrFlowFilterMoMgr::ReadMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
         }
         GET_USER_DATA_CTRLR_DOMAIN(dup_key, ctrlr_dom);
         SET_USER_DATA_CTRLR_DOMAIN(l_key, ctrlr_dom);
-        //Added CApaCheck
+        // Added CApaCheck
         result_code = ValidateCapability(req, ikey,
-                   reinterpret_cast<const char *>(ctrlr_dom.ctrlr));
+                                         reinterpret_cast<const char *>
+                                         (ctrlr_dom.ctrlr));
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("validate Capability Failed %d", result_code);
           DELETE_IF_NOT_NULL(dup_key);
@@ -1335,10 +1175,10 @@ upll_rc_t VbrFlowFilterMoMgr::ReadMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
         ipc_req.header.datatype = req->datatype;
         ipc_req.ckv_data = l_key;
         if (!IpcUtil::SendReqToDriver(
-                    (const char *)ctrlr_dom.ctrlr,
-                    reinterpret_cast<char *>(ctrlr_dom.domain),
-                    PFCDRIVER_SERVICE_NAME, PFCDRIVER_SVID_LOGICAL, &ipc_req,
-                    true, &ipc_resp)) {
+                (const char *)ctrlr_dom.ctrlr,
+                reinterpret_cast<char *>(ctrlr_dom.domain),
+                PFCDRIVER_SERVICE_NAME, PFCDRIVER_SVID_LOGICAL, &ipc_req,
+                true, &ipc_resp)) {
           UPLL_LOG_DEBUG("SendReqToDriver failed for Key %d controller %s",
                          l_key->get_key_type(),
                          reinterpret_cast<char *>(ctrlr_dom.ctrlr));
@@ -1350,8 +1190,8 @@ upll_rc_t VbrFlowFilterMoMgr::ReadMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
 
         if (ipc_resp.header.result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("Driver response for Key %d controller %s result %d",
-                        l_key->get_key_type(), ctrlr_dom.ctrlr,
-                        ipc_resp.header.result_code);
+                         l_key->get_key_type(), ctrlr_dom.ctrlr,
+                         ipc_resp.header.result_code);
           DELETE_IF_NOT_NULL(l_key);
           DELETE_IF_NOT_NULL(dup_key);
           DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
@@ -1399,9 +1239,9 @@ upll_rc_t VbrFlowFilterMoMgr::UpdateConfigStatus(ConfigKeyVal *key,
     if (vbrflowfilter_val->cs_row_status != UNC_CS_NOT_SUPPORTED)
       vbrflowfilter_val->cs_row_status = cs_status;
   } else {
-      UPLL_LOG_DEBUG("Operation Not Supported.");
-      return UPLL_RC_ERR_GENERIC;
-    }
+    UPLL_LOG_DEBUG("Operation Not Supported.");
+    return UPLL_RC_ERR_GENERIC;
+  }
 
   UPLL_LOG_DEBUG("Update Config Status Successfull.");
   return UPLL_RC_SUCCESS;
@@ -1421,12 +1261,12 @@ upll_rc_t VbrFlowFilterMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
   key_rename_vnode_info *key_rename = NULL;
   key_rename = reinterpret_cast<key_rename_vnode_info *> (ikey->get_key());
   key_vbr_flowfilter_t * key_vbr = reinterpret_cast<key_vbr_flowfilter_t*>
-                   (ConfigKeyVal::Malloc(sizeof(key_vbr_flowfilter_t)));
+      (ConfigKeyVal::Malloc(sizeof(key_vbr_flowfilter_t)));
 
   if (!strlen(reinterpret_cast<char *> (key_rename->old_unc_vtn_name))) {
     free(key_vbr);
     UPLL_LOG_DEBUG("String Length not Valid to Perform the Operation");
-     return UPLL_RC_ERR_GENERIC;
+    return UPLL_RC_ERR_GENERIC;
   }
 
   uuu::upll_strncpy(key_vbr->vbr_key.vtn_key.vtn_name,
@@ -1438,9 +1278,9 @@ upll_rc_t VbrFlowFilterMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
       free(key_vbr);
       return UPLL_RC_ERR_GENERIC;
     }
-  uuu::upll_strncpy(key_vbr->vbr_key.vbridge_name,
-                    key_rename->old_unc_vnode_name,
-                    (kMaxLenVnodeName + 1));
+    uuu::upll_strncpy(key_vbr->vbr_key.vbridge_name,
+                      key_rename->old_unc_vnode_name,
+                      (kMaxLenVnodeName + 1));
   } else {
     if (!strlen(reinterpret_cast<char *>(key_rename->new_unc_vnode_name))) {
       UPLL_LOG_DEBUG("new_unc_vnode_name NULL");
@@ -1497,7 +1337,7 @@ upll_rc_t VbrFlowFilterMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
       } else if (req->datatype == UPLL_DT_STATE &&
                  (req->option1 == UNC_OPT1_DETAIL ||
                   req->option2 != UNC_OPT2_NONE)) {
-         result_code =  DupConfigKeyVal(tctrl_key, ikey, MAINTBL);
+        result_code =  DupConfigKeyVal(tctrl_key, ikey, MAINTBL);
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG(" DupConfigKeyVal failed for l_key%d ", result_code);
           return result_code;
@@ -1534,9 +1374,10 @@ upll_rc_t VbrFlowFilterMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
         }
         GET_USER_DATA_CTRLR_DOMAIN(dup_key, ctrlr_dom);
         SET_USER_DATA_CTRLR_DOMAIN(l_key, ctrlr_dom);
-        //Added CApaCheck
+        // Added CApaCheck
         result_code = ValidateCapability(req, ikey,
-                   reinterpret_cast<const char *>(ctrlr_dom.ctrlr));
+                                         reinterpret_cast<const char *>
+                                         (ctrlr_dom.ctrlr));
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("validate Capability Failed %d", result_code);
           DELETE_IF_NOT_NULL(dup_key);
@@ -1549,7 +1390,6 @@ upll_rc_t VbrFlowFilterMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
         result_code = GetRenamedControllerKey(l_key, req->datatype,
                                               dmi, &ctrlr_dom);
         if (result_code != UPLL_RC_SUCCESS) {
-
           DELETE_IF_NOT_NULL(l_key);
           DELETE_IF_NOT_NULL(dup_key);
           DELETE_IF_NOT_NULL(tctrl_key);
@@ -1589,9 +1429,10 @@ upll_rc_t VbrFlowFilterMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
           }
 
           if (ipc_resp.header.result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("Driver response for Key %d controller %s result %d",
-                          l_key->get_key_type(), ctrlr_dom.ctrlr,
-                          ipc_resp.header.result_code);
+            UPLL_LOG_DEBUG("Driver response for Key %d controller"
+                           "%s result %d",
+                           l_key->get_key_type(), ctrlr_dom.ctrlr,
+                           ipc_resp.header.result_code);
 
             DELETE_IF_NOT_NULL(dup_key);
             DELETE_IF_NOT_NULL(l_key);
@@ -1627,8 +1468,11 @@ upll_rc_t VbrFlowFilterMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
   return result_code;
 }
 
-upll_rc_t VbrFlowFilterMoMgr::GetValid(void *val, uint64_t indx,
-    uint8_t *&valid, upll_keytype_datatype_t dt_type, MoMgrTables tbl) {
+upll_rc_t VbrFlowFilterMoMgr::GetValid(void *val,
+                                       uint64_t indx,
+                                       uint8_t *&valid,
+                                       upll_keytype_datatype_t dt_type,
+                                       MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
   if (val == NULL) {
     UPLL_LOG_DEBUG("Memory is not Allocated");
@@ -1668,7 +1512,7 @@ upll_rc_t VbrFlowFilterMoMgr::ConstructReadDetailResponse(
   }
   memcpy(val_ff, tmp_val_ff, sizeof(val_flowfilter_t));
   tmp_okey->AppendCfgVal(IpctSt::kIpcStValFlowfilter, val_ff);
-  tmp_okey->AppendCfgVal(drv_resp_ckv->GetCfgValAndUnlink()); 
+  tmp_okey->AppendCfgVal(drv_resp_ckv->GetCfgValAndUnlink());
 
   if (*okey == NULL) {
     *okey = tmp_okey;
@@ -1686,7 +1530,7 @@ upll_rc_t VbrFlowFilterMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
     UPLL_LOG_DEBUG(" Input Key is NULL");
     return UPLL_RC_ERR_GENERIC;
   }
-  DELETE_IF_NOT_NULL(okey); 
+  DELETE_IF_NOT_NULL(okey);
   unc_key_type_t ikey_type = ikey->get_key_type();
   if (ikey_type != UNC_KT_VBR_FLOWFILTER) {
     UPLL_LOG_DEBUG(" Invalid key type received. Key type - %d", ikey_type);
@@ -1717,14 +1561,14 @@ upll_rc_t VbrFlowFilterMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
 }
 
 upll_rc_t VbrFlowFilterMoMgr::DeleteChildrenPOM(
-           ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
-           DalDmlIntf *dmi) {
+    ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
 
   if (NULL == ikey || NULL == dmi) {
-  UPLL_LOG_DEBUG("Delete Operation failed:Bad request");
-  return result_code;
+    UPLL_LOG_DEBUG("Delete Operation failed:Bad request");
+    return result_code;
   }
   // Read the DB get the flowlist value and send the delete request to
   // flowlist momgr if flowlist is configured.
@@ -1735,7 +1579,7 @@ upll_rc_t VbrFlowFilterMoMgr::DeleteChildrenPOM(
     return result_code;
   }
   result_code = UpdateConfigDB(tempckv, dt_type, UNC_OP_DELETE, dmi,
-      MAINTBL);
+                               MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     DELETE_IF_NOT_NULL(tempckv);
     if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
@@ -1743,7 +1587,7 @@ upll_rc_t VbrFlowFilterMoMgr::DeleteChildrenPOM(
       return UPLL_RC_SUCCESS;
     }
     UPLL_LOG_DEBUG("DeleteMo record Err in vtnpolicingmaptbl (%d)",
-        result_code);
+                   result_code);
     return result_code;
   }
   delete tempckv;
@@ -1754,7 +1598,7 @@ upll_rc_t VbrFlowFilterMoMgr::DeleteChildrenPOM(
 upll_rc_t VbrFlowFilterMoMgr::SetValidAudit(ConfigKeyVal *&ikey) {
   UPLL_FUNC_TRACE;
   val_flowfilter_t *val = reinterpret_cast<val_flowfilter_t *>
-    (ConfigKeyVal::Malloc(sizeof(val_flowfilter_t)));
+      (ConfigKeyVal::Malloc(sizeof(val_flowfilter_t)));
   val->cs_row_status = UNC_CS_APPLIED;
   ikey->AppendCfgVal(IpctSt::kIpcStValFlowfilter, val);
   return UPLL_RC_SUCCESS;
index e6525401cabd66bd7134a41c6dfc240f75a9aeb9..1920eba10de40d4f6ed8862e7ed904f77dce2dd6 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -17,12 +17,12 @@ namespace upll {
 namespace kt_momgr {
 
 /*  This file declares interfaces for keyType KT_VBR_FLOWFILER */
-/**
- *  @brief  VbrFlowFilterMoMgr class handles all the request
- *          received from service.
- */
-class VbrFlowFilterMoMgr : public MoMgrImpl {
-  private:
+  /**
  *  @brief  VbrFlowFilterMoMgr class handles all the request
  *          received from service.
  */
+  class VbrFlowFilterMoMgr : public MoMgrImpl {
+   private:
     static unc_key_type_t vbr_flowfilter_child[];
     /**
      * @brief  Member Variable for VbrFlowfilterBindInfo.
@@ -34,7 +34,6 @@ class VbrFlowFilterMoMgr : public MoMgrImpl {
      */
     static BindInfo vbr_flowfilter_maintbl_bind_info[];
 
-    uint32_t cur_instance_count;
     /**
      * @brief  Validates the Attribute of a Particular Class.
      *
@@ -60,7 +59,7 @@ class VbrFlowFilterMoMgr : public MoMgrImpl {
      * @retval  UPLL_RC_ERR_INSTANCE_EXISTS Instance does Not exist
      * */
     upll_rc_t CreateCandidateMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                                DalDmlIntf *dmi);
+                                DalDmlIntf *dmi, bool restore_flag = false);
 
     /**
      * @Brief This API is used to check the  object availability
@@ -104,25 +103,25 @@ class VbrFlowFilterMoMgr : public MoMgrImpl {
         key_vbr_flowfilter_t* key_vbr_flowfilter,
         unc_keytype_operation_t op);
 
-   /**
-    * @Brief Checks if the specified key type(KT_VBR_FLOWFILTER) and
-    *        associated attributes are supported on the given controller,
-    *        based on the valid flag
-    *
-    * @param[in] IpcReqRespHeader  contains first 8 fields of input request
-    *                              structure
-    * @param[in] ConfigKeyVal    contains key and value structure.
-    * @param[in] ctrlr_name        controller name.
-    *
-    * @retval  UPLL_RC_SUCCESS             Validation succeeded.
-    * @retval  UPLL_RC_ERR_GENERIC         Validation failure.
-    * @retval  UPLL_RC_ERR_INVALID_OPTION1 Option1 is not valid.
-    * @retval  UPLL_RC_ERR_INVALID_OPTION2 Option2 is not valid.
-    */
+    /**
+     * @Brief Checks if the specified key type(KT_VBR_FLOWFILTER) and
+     *        associated attributes are supported on the given controller,
+     *        based on the valid flag
+     *
+     * @param[in] IpcReqRespHeader  contains first 8 fields of input request
+     *                              structure
+     * @param[in] ConfigKeyVal    contains key and value structure.
+     * @param[in] ctrlr_name        controller name.
+     *
+     * @retval  UPLL_RC_SUCCESS             Validation succeeded.
+     * @retval  UPLL_RC_ERR_GENERIC         Validation failure.
+     * @retval  UPLL_RC_ERR_INVALID_OPTION1 Option1 is not valid.
+     * @retval  UPLL_RC_ERR_INVALID_OPTION2 Option2 is not valid.
+     */
     upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                                   const char* ctrlr_name = NULL);
+                                 const char* ctrlr_name = NULL);
 
-  public:
+   public:
     /**
      * @brief  VbrFlowFilterMoMgr Class Constructor.
      */
@@ -162,14 +161,15 @@ class VbrFlowFilterMoMgr : public MoMgrImpl {
      * @param[in]   ctrlr_rslt   Describes Commit Control result
      *                           Information.
      * @param[in]   phase        Describes the Phase of the Operation.
-     * @param[in]   ckv_audit    Pointer to ConfigKeyVal Class.
+     * @param[in]   dmi          Pointer to the DalDmlIntf(DB Interface)
      *
      * @retval  UPLL_RC_SUCCESS      Successfull completion.
      * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
      */
-     upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
-                              uuc::UpdateCtrlrPhase phase,
-                              ConfigKeyVal *&ckv_running);
+    upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
+                                      uuc::UpdateCtrlrPhase phase,
+                                      ConfigKeyVal *&ckv_running,
+                                      DalDmlIntf *dmi);
 
     /**
      * @brief  Method used to fill the CongigKeyVal with the Parent
@@ -219,11 +219,11 @@ class VbrFlowFilterMoMgr : public MoMgrImpl {
      *
      * @retval  UPLL_RC_SUCCESS Successful Completion
      **/
-     upll_rc_t GetValid(void*val,
-                        uint64_t indx,
-                        uint8_t *&valid,
-                        upll_keytype_datatype_t dt_type,
-                        MoMgrTables tbl);
+    upll_rc_t GetValid(void*val,
+                       uint64_t indx,
+                       uint8_t *&valid,
+                       upll_keytype_datatype_t dt_type,
+                       MoMgrTables tbl);
 
     /**
      * @brief  Method used to Duplicate the ConfigkeyVal.
@@ -359,19 +359,19 @@ class VbrFlowFilterMoMgr : public MoMgrImpl {
     upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey,
                               ConfigKeyVal *ikey);
 
-   /**
-    * @brief Method To Compare the Valid Check of Attributes
-    *
-    * @param[out]  val1   Pointer to ConfigKeyVal Class which contains only Valid Attributes
-    * @param[in]   val2   Pointer to ConfigKeyVal Class.
-    * @param[in]   audit  If true,Audit Process.
-    *
-    * @return  Void Function.
-    */
+    /**
+     * @brief Method To Compare the Valid Check of Attributes
+     *
+     * @param[out]  val1   Pointer to ConfigKeyVal Class which contains only Valid Attributes
+     * @param[in]   val2   Pointer to ConfigKeyVal Class.
+     * @param[in]   audit  If true,Audit Process.
+     *
+     * @return  Void Function.
+     */
     bool CompareValidValue(void *&val1, void *val2, bool audit) {
       return false;
     }
-     /**
+    /**
      * @brief  Method used for ReadSibling Operation.
      *
      * @param[in]      req   Describes RequestResponderHeaderClass.
@@ -387,7 +387,7 @@ class VbrFlowFilterMoMgr : public MoMgrImpl {
                             bool begin,
                             DalDmlIntf *dmi);
 
-     /**
+    /**
      * @brief  Method used for GetParentConfigKey Operation.
      *
      * @param[out]  okey        Pointer to ConfigKeyVal Class.
@@ -400,7 +400,7 @@ class VbrFlowFilterMoMgr : public MoMgrImpl {
     upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey,
                                  ConfigKeyVal *ikey);
 
-      /**
+    /**
      * @brief  Method to check validity of Key
      *
      * @param[in]   ConfigKeyVal  input COnfigKeyVal
@@ -437,10 +437,9 @@ class VbrFlowFilterMoMgr : public MoMgrImpl {
                           unc_keytype_operation_t op);
 
     upll_rc_t SetRenameFlag(ConfigKeyVal *ikey,
-                          DalDmlIntf *dmi,
-                          IpcReqRespHeader *req);
-
-};
+                            DalDmlIntf *dmi,
+                            IpcReqRespHeader *req);
+  };
 }  // namespace kt_momgr
 }  // namespace upll
 }  // namespace unc
index 08437340215b3b36553d245ad179c04e006449e9..15f1662e03556ed83846ea4615a74977fbba49fc 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -29,7 +29,7 @@ using unc::upll::ipc_util::IpcUtil;
 #define SET_FLAG_VLINK          0x40
 #define SET_FLAG_PORTMAP        0x20
 #define SET_FLAG_VLINK_PORTMAP (SET_FLAG_VLINK | SET_FLAG_PORTMAP)
-#define SET_FLAG_NO_VLINK_PORTMAP ~SET_FLAG_VLINK_PORTMAP
+#define SET_FLAG_NO_VLINK_PORTMAP 0x9F
 
 #define FLOW_RENAME             0x04
 #define NO_FLOWLIST_RENAME      ~FLOW_RENAME
@@ -148,7 +148,7 @@ BindInfo VbrIfFlowFilterEntryMoMgr::vbr_if_flowfilter_entry_bind_info[] = {
 };
 
 BindInfo VbrIfFlowFilterEntryMoMgr::
-                vbr_if_flowfilter_entry_main_tbl_bind_info[] = {
+vbr_if_flowfilter_entry_main_tbl_bind_info[] = {
   { uudst::vbr_if_flowfilter_entry::kDbiVtnName, CFG_MATCH_KEY,
     offsetof(key_vbr_if_flowfilter_entry_t,
              flowfilter_key.if_key.vbr_key.vtn_key.vtn_name),
@@ -175,10 +175,12 @@ VbrIfFlowFilterEntryMoMgr::VbrIfFlowFilterEntryMoMgr() : MoMgrImpl() {
   // setting rename table and controller index to null
   ntable = MAX_MOMGR_TBLS;
   table = new Table *[ntable];
-  cur_instance_count = 0;
-  table[MAINTBL] = new Table(uudst::kDbiVbrIfFlowFilterEntryTbl,
-      UNC_KT_VBRIF_FLOWFILTER_ENTRY, vbr_if_flowfilter_entry_bind_info,
-      IpctSt::kIpcStKeyVbrIfFlowfilterEntry, IpctSt::kIpcStValFlowfilterEntry,
+  table[MAINTBL] = new Table(
+      uudst::kDbiVbrIfFlowFilterEntryTbl,
+      UNC_KT_VBRIF_FLOWFILTER_ENTRY,
+      vbr_if_flowfilter_entry_bind_info,
+      IpctSt::kIpcStKeyVbrIfFlowfilterEntry,
+      IpctSt::kIpcStValFlowfilterEntry,
       uudst::vbr_if_flowfilter_entry::kDbiVbrIfFlowFilterEntryNumCols);
   table[RENAMETBL] = NULL;
   table[CTRLRTBL] = NULL;
@@ -187,14 +189,14 @@ VbrIfFlowFilterEntryMoMgr::VbrIfFlowFilterEntryMoMgr() : MoMgrImpl() {
 }
 
 bool VbrIfFlowFilterEntryMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type,
-                                    BindInfo *&binfo,
-                                    int &nattr,
-                                    MoMgrTables tbl ) {
+                                                     BindInfo *&binfo,
+                                                     int &nattr,
+                                                     MoMgrTables tbl ) {
   UPLL_FUNC_TRACE;
   /* Main Table only update */
   if (MAINTBL == tbl) {
     nattr = sizeof(vbr_if_flowfilter_entry_main_tbl_bind_info)/
-            sizeof(vbr_if_flowfilter_entry_main_tbl_bind_info[0]);
+        sizeof(vbr_if_flowfilter_entry_main_tbl_bind_info[0]);
     binfo = vbr_if_flowfilter_entry_main_tbl_bind_info;
   } else {
     return PFC_FALSE;
@@ -225,31 +227,32 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::ValidateMessage(IpcReqRespHeader *req,
                    key->get_st_num());
     return UPLL_RC_ERR_BAD_REQUEST;
   }
-  if(req->option2 != UNC_OPT2_NONE) {
+  if (req->option2 != UNC_OPT2_NONE) {
     UPLL_LOG_DEBUG(" Error: option2 is not NONE");
     return UPLL_RC_ERR_INVALID_OPTION2;
   }
-  if((req->option1 != UNC_OPT1_NORMAL) 
-              &&(req->option1 != UNC_OPT1_DETAIL)) {
-     UPLL_LOG_DEBUG(" Error: option1 is not NORMAL");
-     return UPLL_RC_ERR_INVALID_OPTION1;
+  if ((req->option1 != UNC_OPT1_NORMAL)
+      &&(req->option1 != UNC_OPT1_DETAIL)) {
+    UPLL_LOG_DEBUG(" Error: option1 is not NORMAL");
+    return UPLL_RC_ERR_INVALID_OPTION1;
   }
-  if((req->option1 != UNC_OPT1_NORMAL) 
-             &&(req->operation == UNC_OP_READ_SIBLING_COUNT)) {
+  if ((req->option1 != UNC_OPT1_NORMAL)
+      &&(req->operation == UNC_OP_READ_SIBLING_COUNT)) {
     UPLL_LOG_DEBUG(" Error: option1 is not NORMAL for ReadSiblingCount");
     return UPLL_RC_ERR_INVALID_OPTION1;
   }
   if ((req->option1 == UNC_OPT1_DETAIL) &&
       (req->datatype != UPLL_DT_STATE)) {
-      UPLL_LOG_DEBUG(" Invalid Datatype(%d)", req->datatype);
-      return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
-  }
-  if ((req->datatype == UPLL_DT_IMPORT) && (req->operation == UNC_OP_READ || 
-       req->operation == UNC_OP_READ_SIBLING ||
-       req->operation == UNC_OP_READ_SIBLING_BEGIN ||
-       req->operation == UNC_OP_READ_NEXT ||
-       req->operation == UNC_OP_READ_BULK ||
-       req->operation == UNC_OP_READ_SIBLING_COUNT)) {
+    UPLL_LOG_DEBUG(" Invalid Datatype(%d)", req->datatype);
+    return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
+  }
+  if ((req->datatype == UPLL_DT_IMPORT) && (
+          req->operation == UNC_OP_READ ||
+          req->operation == UNC_OP_READ_SIBLING ||
+          req->operation == UNC_OP_READ_SIBLING_BEGIN ||
+          req->operation == UNC_OP_READ_NEXT ||
+          req->operation == UNC_OP_READ_BULK ||
+          req->operation == UNC_OP_READ_SIBLING_COUNT)) {
     return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
   }
 
@@ -310,90 +313,16 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::ValidateMessage(IpcReqRespHeader *req,
 
 upll_rc_t VbrIfFlowFilterEntryMoMgr::ValidateVbrIfValStruct(
     IpcReqRespHeader *req,
-    ConfigKeyVal *ikey,
-    DalDmlIntf *dmi) {
+    ConfigKeyVal *ikey) {
   UPLL_FUNC_TRACE;
 
-  upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
 
   val_flowfilter_entry_t *val_flowfilter_entry =
       reinterpret_cast<val_flowfilter_entry_t *>(
           ikey->get_cfg_val()->get_val());
-
-  bool db_action_valid = false;
-  bool db_action_redirect = false;
-
-  if ((val_flowfilter_entry->valid[UPLL_IDX_ACTION_FFE]
-       == UNC_VF_INVALID) && (req->operation == UNC_OP_UPDATE)) {
-     /** Read key struct from ConfigKeyVal argument*/
-    key_vbr_if_flowfilter_entry_t *key_vbr_if_ffe =
-      static_cast<key_vbr_if_flowfilter_entry_t*>(ikey->get_key());
-
-    /** Check whether Action configured or not from DB */
-    ConfigKeyVal *okey = NULL;
-
-    result_code = GetChildConfigKey(okey, NULL);
-
-    if (result_code != UPLL_RC_SUCCESS) {
-       UPLL_LOG_DEBUG("okey memory allocation failed- %d", result_code);
-       return result_code;
-    }
-
-    key_vbr_if_flowfilter_entry_t *vbrif_ffe_key =
-      reinterpret_cast<key_vbr_if_flowfilter_entry_t *>(okey->get_key());
-
-    /* copy key structure into okey key struct */
-    uuu::upll_strncpy(
-        vbrif_ffe_key->flowfilter_key.if_key.vbr_key.vtn_key.vtn_name,
-        key_vbr_if_ffe->flowfilter_key.if_key.vbr_key.vtn_key.vtn_name,
-        (kMaxLenVtnName+1));
-
-    uuu::upll_strncpy(
-        vbrif_ffe_key->flowfilter_key.if_key.vbr_key.vbridge_name,
-        key_vbr_if_ffe->flowfilter_key.if_key.vbr_key.vbridge_name,
-        (kMaxLenVnodeName+1));
-
-    uuu::upll_strncpy(
-        vbrif_ffe_key->flowfilter_key.if_key.if_name,
-        key_vbr_if_ffe->flowfilter_key.if_key.if_name,
-        (kMaxLenInterfaceName+1));
-
-    vbrif_ffe_key->flowfilter_key.direction =
-        key_vbr_if_ffe->flowfilter_key.direction;
-    vbrif_ffe_key->sequence_num = key_vbr_if_ffe->sequence_num;
-
-    /* Check the action field configured in VBR_IF_FLOWFILTER_ENTRY table*/
-    DbSubOp dbop = {kOpReadSingle, kOpMatchNone, kOpInOutNone};
-    result_code = ReadConfigDB(okey, req->datatype, UNC_OP_READ,
-                                     dbop, dmi, MAINTBL);
-
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("ReadConfigDB is failed for VBRIF_FLOWFILTER_ENTRY");
-      delete okey;
-      okey = NULL;
-      return UPLL_RC_ERR_NO_SUCH_INSTANCE;
-    }
-
-    /* check the action value from the DB data */
-    val_flowfilter_entry_t *val_ffe =
-     reinterpret_cast<val_flowfilter_entry_t *>(
-         okey->get_cfg_val()->get_val());
-
-    if (val_ffe->valid[UPLL_IDX_ACTION_FFE] == UNC_VF_VALID) {
-      db_action_valid = true;
-      if (val_ffe->action == UPLL_FLOWFILTER_ACT_REDIRECT) {
-        db_action_redirect = true;
-      }
-    }
-
-    delete okey;
-    okey = NULL;
-  }
-
   /** Validate value structure */
   return VbrFlowFilterEntryMoMgr::ValidateFlowfilterEntryValue(
-         val_flowfilter_entry, req->operation,
-         db_action_valid, db_action_redirect);
+      val_flowfilter_entry, req->operation);
 }
 
 upll_rc_t VbrIfFlowFilterEntryMoMgr::ValidateVbrIfFlowfilterEntryKey(
@@ -442,9 +371,10 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::ValidateVbrIfFlowfilterEntryKey(
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t VbrIfFlowFilterEntryMoMgr::ValidateCapability(IpcReqRespHeader *req,
-                                                       ConfigKeyVal *ikey,
-                                                       const char* ctrlr_name) {
+upll_rc_t VbrIfFlowFilterEntryMoMgr::ValidateCapability(
+    IpcReqRespHeader *req,
+    ConfigKeyVal *ikey,
+    const char* ctrlr_name) {
   UPLL_FUNC_TRACE;
 
   if ((NULL == req) || (NULL == ikey)) {
@@ -461,8 +391,8 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::ValidateCapability(IpcReqRespHeader *req,
   }
 
   UPLL_LOG_TRACE("ctrlr_name : (%s)"
-               "operation : (%d)",
-               ctrlr_name, req->operation);
+                 "operation : (%d)",
+                 ctrlr_name, req->operation);
 
   bool ret_code = false;
   uint32_t instance_count = 0;
@@ -471,32 +401,28 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::ValidateCapability(IpcReqRespHeader *req,
 
   switch (req->operation) {
     case UNC_OP_CREATE: {
-      UPLL_LOG_TRACE("Calling GetCreateCapability Operation  %d ", req->operation);
+      UPLL_LOG_TRACE("Calling GetCreateCapability Operation  %d ",
+                     req->operation);
       ret_code = GetCreateCapability(ctrlr_name, ikey->get_key_type(),
-                                        &instance_count, &max_attrs, &attrs);
-       if (ret_code && cur_instance_count >= instance_count && 
-                  cur_instance_count !=0 && instance_count != 0) {
-          UPLL_LOG_DEBUG("[%s:%d:%s Instance count %d exceeds %d", __FILE__,
-                      __LINE__, __FUNCTION__, cur_instance_count,
-                      instance_count);
-          return UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
-      }
+                                     &instance_count, &max_attrs, &attrs);
       break;
     }
     case UNC_OP_UPDATE: {
       ret_code = GetUpdateCapability(ctrlr_name, ikey->get_key_type(),
-                                        &max_attrs, &attrs);
+                                     &max_attrs, &attrs);
       break;
     }
     default: {
       if (req->datatype == UPLL_DT_STATE) {
-        UPLL_LOG_TRACE("Calling GetStateCapability Operation  %d ", req->operation);
+        UPLL_LOG_TRACE("Calling GetStateCapability Operation  %d ",
+                       req->operation);
         ret_code = GetStateCapability(ctrlr_name, ikey->get_key_type(),
                                       &max_attrs, &attrs);
       } else {
-        UPLL_LOG_TRACE("Calling GetReadCapability Operation  %d ", req->operation);
+        UPLL_LOG_TRACE("Calling GetReadCapability Operation  %d ",
+                       req->operation);
         ret_code = GetReadCapability(ctrlr_name, ikey->get_key_type(),
-                                      &max_attrs, &attrs);
+                                     &max_attrs, &attrs);
       }
       break;
     }
@@ -504,7 +430,7 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::ValidateCapability(IpcReqRespHeader *req,
 
   if (!ret_code) {
     UPLL_LOG_DEBUG("keytype(%d) is not supported by controller(%s)",
-        ikey->get_key_type(), ctrlr_name);
+                   ikey->get_key_type(), ctrlr_name);
     return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
   }
 
@@ -512,7 +438,7 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::ValidateCapability(IpcReqRespHeader *req,
       reinterpret_cast<val_flowfilter_entry_t *>(GetVal(ikey));
   if (max_attrs > 0) {
     return VbrFlowFilterEntryMoMgr::ValFlowFilterEntryAttributeSupportCheck(
-           val_flowfilter_entry, attrs);
+        val_flowfilter_entry, attrs);
   } else {
     UPLL_LOG_DEBUG("Attribute list is empty for operation %d", req->operation);
     return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
@@ -536,9 +462,9 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::RestorePOMInCtrlTbl(
     return UPLL_RC_ERR_GENERIC;
   }
   if (tbl != MAINTBL ||
-       ikey->get_key_type() != UNC_KT_VBRIF_FLOWFILTER_ENTRY) {
+      ikey->get_key_type() != UNC_KT_VBRIF_FLOWFILTER_ENTRY) {
     UPLL_LOG_DEBUG("Ignoring  ktype/Table kt=%d, tbl=%d",
-                    ikey->get_key_type(), tbl);
+                   ikey->get_key_type(), tbl);
     return result_code;
   }
 
@@ -558,30 +484,29 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::RestorePOMInCtrlTbl(
 
     GET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
     UPLL_LOG_DEBUG("ctrlrid %s, domainid %s",
-                 ctrlr_dom.ctrlr, ctrlr_dom.domain);
+                   ctrlr_dom.ctrlr, ctrlr_dom.domain);
     ctrlr_id = ctrlr_dom.ctrlr;
 
     mgr = reinterpret_cast<FlowListMoMgr *>
         (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
     result_code = mgr->AddFlowListToController(
-              reinterpret_cast<char *>(flowfilter_val->flowlist_name),
-              dmi,
-              reinterpret_cast<char *>(ctrlr_id) ,
-              dt_type,
-              UNC_OP_CREATE);
+        reinterpret_cast<char *>(flowfilter_val->flowlist_name),
+        dmi,
+        reinterpret_cast<char *>(ctrlr_id) ,
+        dt_type,
+        UNC_OP_CREATE);
     if (result_code != UPLL_RC_SUCCESS) {
-       UPLL_LOG_DEBUG("Unable to Update the FlowList at ctrlr Table");
-       return result_code;
+      UPLL_LOG_DEBUG("Unable to Update the FlowList at ctrlr Table");
+      return result_code;
     }
   }
   return result_code;
 }
 upll_rc_t VbrIfFlowFilterEntryMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
                                                        ConfigKeyVal *ikey,
-                                                       DalDmlIntf *dmi) {
+                                                       DalDmlIntf *dmi,
+                                                       bool restore_flag) {
   UPLL_FUNC_TRACE;
-  ConfigKeyVal*  okey = NULL;
-  ConfigKeyVal*  tmp_key = NULL;
   uint8_t *ctrlr_id = NULL;
   controller_domain ctrlr_dom;
   if (ikey == NULL || req == NULL) {
@@ -594,130 +519,103 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
 
   val_flowfilter_entry_t *val_ff_import = NULL;
   pfcdrv_val_flowfilter_entry_t *pfc_val_import = NULL;
+
   UPLL_LOG_DEBUG("datatype (%d)", req->datatype);
 
   if (req->datatype == UPLL_DT_IMPORT) {
     UPLL_LOG_DEBUG("Inside: %d", req->datatype);
     if (ikey->get_cfg_val() &&
-            (ikey->get_cfg_val()->get_st_num() ==
-                 IpctSt::kIpcStPfcdrvValFlowfilterEntry)) {
-      UPLL_LOG_DEBUG("val struct num (%d)",ikey->get_cfg_val()->get_st_num());
+        (ikey->get_cfg_val()->get_st_num() ==
+         IpctSt::kIpcStPfcdrvValFlowfilterEntry)) {
+      UPLL_LOG_DEBUG("val struct num (%d)", ikey->get_cfg_val()->get_st_num());
       pfc_val_import = reinterpret_cast<pfcdrv_val_flowfilter_entry_t *>
-                (ikey->get_cfg_val()->get_val());
-        val_ff_import = reinterpret_cast<val_flowfilter_entry_t *>
-                          (ConfigKeyVal::Malloc(sizeof(val_flowfilter_entry_t)));
-        memcpy(val_ff_import, &pfc_val_import->val_ff_entry, sizeof(val_flowfilter_entry_t));
-        UPLL_LOG_DEBUG("FLOWLIST name (%s)", val_ff_import->flowlist_name);
-        ikey->SetCfgVal(NULL);
-        ikey->SetCfgVal(new ConfigVal(IpctSt::kIpcStValFlowfilterEntry, val_ff_import));
+          (ikey->get_cfg_val()->get_val());
+      val_ff_import = reinterpret_cast<val_flowfilter_entry_t *>
+          (ConfigKeyVal::Malloc(sizeof(val_flowfilter_entry_t)));
+      memcpy(val_ff_import, &pfc_val_import->val_ff_entry,
+             sizeof(val_flowfilter_entry_t));
+      UPLL_LOG_DEBUG("FLOWLIST name (%s)", val_ff_import->flowlist_name);
+      ikey->SetCfgVal(NULL);
+      ikey->SetCfgVal(new ConfigVal(IpctSt::kIpcStValFlowfilterEntry,
+                                    val_ff_import));
     }
   }
 
-  // validate syntax and semantics
-  result_code = ValidateMessage(req, ikey);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG(" ValidateMessage failed ");
-    return result_code;
+  if (!restore_flag) {
+    // validate syntax and semantics
+    result_code = ValidateMessage(req, ikey);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG(" ValidateMessage failed ");
+      return result_code;
+    }
   }
   result_code = ValidateAttribute(ikey, dmi, req);
   if (UPLL_RC_SUCCESS != result_code) {
-     UPLL_LOG_DEBUG(" ValidateAttribute failed ");
-     return result_code;
-  }
-  // Check if Object already exists in CANDIDATE DB
-  result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_READ, dmi);
-  if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS
-      || result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-    UPLL_LOG_DEBUG("Record already exists in Candidate DB");
+    UPLL_LOG_DEBUG(" ValidateAttribute failed ");
     return result_code;
   }
   val_flowfilter_entry_t *flowfilter_val =
       reinterpret_cast<val_flowfilter_entry_t *> (GetVal(ikey));
-  FlowListMoMgr *mgr = NULL;
   memset(&ctrlr_dom, 0, sizeof(controller_domain));
   result_code = GetControllerDomainID(ikey, req->datatype, dmi);
   if (result_code != UPLL_RC_SUCCESS) {
+    if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+      result_code = UPLL_RC_ERR_PARENT_DOES_NOT_EXIST;
+    }
     UPLL_LOG_DEBUG("Failed to Get the Controller Domain details, err:%d",
                    result_code);
+    return result_code;
   }
 
   GET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
   UPLL_LOG_DEBUG("ctrlrid %s, domainid %s",
                  ctrlr_dom.ctrlr, ctrlr_dom.domain);
   ctrlr_id = ctrlr_dom.ctrlr;
-  result_code = GetChildConfigKey(tmp_key, NULL);
-  if(result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("GetChildConfigKey Failed in  ValidateCapability");
-    return result_code;
-  }
-  result_code = GetInstanceCount(tmp_key,
-                                   reinterpret_cast<char*>(ctrlr_id),
-                                     req->datatype,
-                                     &cur_instance_count,
-                                     dmi,
-                                     MAINTBL);
-  delete tmp_key;
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("GetInstanceCount Failed in  ValidateCapability");
-    return result_code;
-  }
 
   result_code = ValidateCapability(req, ikey,
-                   reinterpret_cast<const char *>(ctrlr_id));
+                                   reinterpret_cast<const char *>(ctrlr_id));
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("validate Capability Failed %d", result_code);
     return result_code;
   }
-  // Check if Object exists in RUNNING DB and move it to CANDIDATE DB
-  if (UPLL_DT_CANDIDATE == req->datatype) {
-  result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dmi,
-                               MAINTBL);
-  if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
-    result_code = RestoreChildren(ikey, req->datatype, UPLL_DT_RUNNING, dmi);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Restore Operation Failed, err %d", result_code);
-      return result_code;
+  if (!restore_flag) {
+    if (UPLL_DT_CANDIDATE == req->datatype) {
+      result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dmi,
+                                   MAINTBL);
+      if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
+        UPLL_LOG_DEBUG("Key instance exist");
+        if ((ikey)->get_cfg_val()) {
+          UPLL_LOG_DEBUG("Read Key with Value struct");
+          DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
+            kOpInOutFlag | kOpInOutCtrlr | kOpInOutDomain };
+          result_code = ReadConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dbop,
+                                     dmi, MAINTBL);
+          if (UPLL_RC_SUCCESS != result_code &&
+              UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+            UPLL_LOG_DEBUG("ReadConfigDB Failed %d",  result_code);
+          }
+          if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code)  {
+            return UPLL_RC_ERR_CFG_SEMANTIC;
+          }
+        } else  {
+          result_code = UPLL_RC_SUCCESS;
+        }
+        if (UPLL_RC_SUCCESS == result_code) {
+          result_code = RestoreChildren(ikey,
+                                        req->datatype,
+                                        UPLL_DT_RUNNING,
+                                        dmi,
+                                        req);
+          UPLL_LOG_DEBUG("Restore Children returns %d", result_code);
+          return result_code;
+        }
+      } else if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+        UPLL_LOG_DEBUG("UpdateConfigDB Failed %d", result_code);
+        return result_code;
+      }
     }
-    return result_code;
-  } else if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-      UPLL_LOG_DEBUG(" error reading DB. err code(%d)", result_code);
-      return result_code;
   } else {
-      UPLL_LOG_DEBUG("Record doesn't exist in reading Running DB ");
-    }
-  }
-  if (flowfilter_val->valid[UPLL_IDX_FLOWLIST_NAME_FFE] == UNC_VF_VALID) {
-    mgr = reinterpret_cast<FlowListMoMgr *>
-        (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
-
-    // Check Flowlist object exist or not
-    result_code = mgr->GetChildConfigKey(okey, NULL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Recored %d", result_code);
-      return result_code;
-    }
-    key_flowlist_t *key_flowlist = reinterpret_cast<key_flowlist_t*>
-        (okey->get_key());
-    uuu::upll_strncpy(key_flowlist->flowlist_name,
-                      flowfilter_val->flowlist_name,
-                      (kMaxLenFlowListName +1));
-
-    result_code = mgr->UpdateConfigDB(okey, req->datatype, UNC_OP_READ,
-                                      dmi, MAINTBL);
-    if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-      UPLL_LOG_DEBUG("Given FlowList does not exists %d", result_code);
-      delete okey;
-      return result_code;
-    } else if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
-      UPLL_LOG_DEBUG("Instance  Available");
-    } else if (result_code != UPLL_RC_SUCCESS) {
-      delete okey;
-      UPLL_LOG_DEBUG("Error Accesing CANDIDATE DB (%d)", result_code);
-      return result_code;
-    } 
-    delete okey;
-      okey = NULL;
+    result_code = UPLL_RC_ERR_NO_SUCH_INSTANCE;
   }
   // create a record in CANDIDATE DB
   VbrIfMoMgr *mgrvbrif =
@@ -771,7 +669,9 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
   SET_USER_DATA_FLAGS(ikey, flag_port_map);
   if (flowfilter_val->valid[UPLL_IDX_FLOWLIST_NAME_FFE] == UNC_VF_VALID) {
     if ((flag_port_map & SET_FLAG_VLINK) ||
-         (flag_port_map & SET_FLAG_PORTMAP)) {
+        (flag_port_map & SET_FLAG_PORTMAP)) {
+      FlowListMoMgr *mgr = reinterpret_cast<FlowListMoMgr *>
+          (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
       result_code = mgr->AddFlowListToController(
           reinterpret_cast<char *>(flowfilter_val->flowlist_name), dmi,
           reinterpret_cast<char *> (ctrlr_id), req->datatype, UNC_OP_CREATE);
@@ -797,26 +697,28 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
 }
 
 upll_rc_t VbrIfFlowFilterEntryMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
-                                   DalDmlIntf *dmi,
-                                   const char *ctrlr_id) {
+                                                       DalDmlIntf *dmi,
+                                                       const char *ctrlr_id) {
   UPLL_FUNC_TRACE;
   uint8_t flags = 0;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   UPLL_LOG_TRACE(" ikey is %s", ikey->ToStrAll().c_str());
   uint8_t *controller_id = reinterpret_cast<uint8_t *>(
-                                 const_cast<char *>(ctrlr_id));
+      const_cast<char *>(ctrlr_id));
 
   /* check if object is renamed in the corresponding Rename Tbl
    * if "renamed"  create the object by the UNC name.
    * else - create using the controller name.
    */
   result_code = GetRenamedUncKey(ikey, UPLL_DT_RUNNING, dmi, controller_id);
-  if (result_code != UPLL_RC_SUCCESS && result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+  if (result_code != UPLL_RC_SUCCESS && result_code !=
+      UPLL_RC_ERR_NO_SUCH_INSTANCE) {
     UPLL_LOG_DEBUG("GetRenamedUncKey Failed err_code %d", result_code);
     return result_code;
   }
 
-  pfcdrv_val_flowfilter_entry_t *pfc_val = reinterpret_cast<pfcdrv_val_flowfilter_entry_t *> (GetVal(ikey));
+  pfcdrv_val_flowfilter_entry_t *pfc_val = reinterpret_cast
+      <pfcdrv_val_flowfilter_entry_t *> (GetVal(ikey));
   if (pfc_val == NULL) {
     return UPLL_RC_ERR_GENERIC;
   }
@@ -824,11 +726,10 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
   if (pfc_val->val_vbrif_vextif.interface_type == PFCDRV_IF_TYPE_VBRIF) {
     UPLL_LOG_DEBUG("Vlink configired in vbrifff");
     flags = SET_FLAG_VLINK;
-  }
-  else if (pfc_val->val_vbrif_vextif.interface_type == PFCDRV_IF_TYPE_VEXTIF) {
+  } else if (pfc_val->val_vbrif_vextif.interface_type ==
+             PFCDRV_IF_TYPE_VEXTIF) {
     flags = SET_FLAG_PORTMAP;
-  }
-  else {
+    } else {
     UPLL_LOG_DEBUG("Vlink not configired in vbrifff");
     flags = 0;
   }
@@ -842,17 +743,17 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
 
   val_flowfilter_entry_t * val_ff_entry = NULL;
   val_ff_entry = reinterpret_cast<val_flowfilter_entry_t *>
-          (ConfigKeyVal::Malloc(sizeof(val_flowfilter_entry_t)));
+      (ConfigKeyVal::Malloc(sizeof(val_flowfilter_entry_t)));
 
   memcpy(val_ff_entry, &pfc_val->val_ff_entry, sizeof(val_flowfilter_entry_t));
-  okey->AppendCfgVal(IpctSt::kIpcStValFlowfilterEntry, val_ff_entry); 
+  okey->AppendCfgVal(IpctSt::kIpcStValFlowfilterEntry, val_ff_entry);
   SET_USER_DATA_FLAGS(okey, flags);
-  
+
   controller_domain ctrlr_dom;
   memset(&ctrlr_dom, 0, sizeof(ctrlr_dom));
   result_code = GetControllerDomainID(okey, UPLL_DT_AUDIT, dmi);
   if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Failed to Get the Controller Domain details,err:%d",
+    UPLL_LOG_DEBUG("Failed to Get the Controller Domain details, err:%d",
                    result_code);
     delete okey;
     return result_code;
@@ -863,18 +764,20 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
                  ctrlr_dom.ctrlr, ctrlr_dom.domain);
 
   FlowListMoMgr *mgr = reinterpret_cast<FlowListMoMgr *>
-        (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
+      (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
   if (mgr == NULL) {
     UPLL_LOG_DEBUG("Invalid FlowListMoMgr Instance");
     delete okey;
     return UPLL_RC_ERR_GENERIC;
   }
 
-  if (pfc_val->val_ff_entry.valid[UPLL_IDX_FLOWLIST_NAME_FFE] == UNC_VF_VALID) {
-    result_code = mgr->AddFlowListToController(reinterpret_cast<char *>
-                                              (pfc_val->val_ff_entry.flowlist_name), dmi,
-                                              reinterpret_cast<char *> (const_cast<char *>(ctrlr_id)),
-                                              UPLL_DT_AUDIT, UNC_OP_CREATE);
+  if (pfc_val->val_ff_entry.valid[UPLL_IDX_FLOWLIST_NAME_FFE] ==
+      UNC_VF_VALID) {
+    result_code = mgr->AddFlowListToController(
+        reinterpret_cast<char *>
+        (pfc_val->val_ff_entry.flowlist_name), dmi,
+        reinterpret_cast<char *> (const_cast<char *>(ctrlr_id)),
+        UPLL_DT_AUDIT, UNC_OP_CREATE);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Reference Count Updation Fails %d", result_code);
       delete okey;
@@ -890,7 +793,11 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
     return result_code;
   }
   // Create a record in AUDIT DB
-  result_code = UpdateConfigDB(okey, UPLL_DT_AUDIT, UNC_OP_CREATE, dmi, MAINTBL);
+  result_code = UpdateConfigDB(okey,
+                               UPLL_DT_AUDIT,
+                               UNC_OP_CREATE,
+                               dmi,
+                               MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("UpdateConfigDB Failed err_code %d", result_code);
     delete okey;
@@ -900,13 +807,16 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t VbrIfFlowFilterEntryMoMgr::AuditUpdateController(unc_key_type_t keytype,
+upll_rc_t VbrIfFlowFilterEntryMoMgr::AuditUpdateController(
+    unc_key_type_t keytype,
     const char *ctrlr_id,
     uint32_t session_id,
     uint32_t config_id,
     uuc::UpdateCtrlrPhase phase1,
-    bool *ctrlr_affected,
-    DalDmlIntf *dmi) {
+    DalDmlIntf *dmi,
+    ConfigKeyVal **err_ckv,
+    KTxCtrlrAffectedState *ctrlr_affected) {
+
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   DalResultCode db_result = uud::kDalRcSuccess;
@@ -923,10 +833,11 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::AuditUpdateController(unc_key_type_t keytyp
   uint8_t auditdb_flag = 0;
   uint8_t *ctrlr = reinterpret_cast<uint8_t *>(const_cast<char *>(ctrlr_id));
   DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutCtrlr | kOpInOutDomain};
+
   // Skipping the create phase if it comes as an input.
   // vbr if flowfilter should get applied on controller(pfc) if portma/vlink is
   // configured.
-  // The portmap/vlink request should come in the update phase so 
+  // The portmap/vlink request should come in the update phase so
   // the vbrif policingmap creation should also be applied during update phase.
   if (phase1 == uuc::kUpllUcpCreate) {
     return result_code;
@@ -941,62 +852,82 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::AuditUpdateController(unc_key_type_t keytyp
     op[0] = UNC_OP_DELETE;
     nop = 1;
   }
+
   for (int i = 0; i < nop; i++) {
     UPLL_LOG_DEBUG("Operation is %d", op[i]);
-    unc_keytype_operation_t op1 = op[i]; 
+    cursor = NULL;
+    unc_keytype_operation_t op1 = op[i];
     uuc::UpdateCtrlrPhase phase = (op[i] == UNC_OP_UPDATE)?uuc::kUpllUcpUpdate:
-      ((op[i] == UNC_OP_CREATE)?uuc::kUpllUcpCreate:
-       ((op[i] == UNC_OP_DELETE)?uuc::kUpllUcpDelete:uuc::kUpllUcpInvalid));
+        ((op[i] == UNC_OP_CREATE)?uuc::kUpllUcpCreate:
+         ((op[i] == UNC_OP_DELETE)?uuc::kUpllUcpDelete:uuc::kUpllUcpInvalid));
     result_code = DiffConfigDB(UPLL_DT_RUNNING, UPLL_DT_AUDIT, op[i],
-        ckv_running_db, ckv_audit_db,
-        &cursor, dmi, ctrlr, MAINTBL);
+                               ckv_running_db, ckv_audit_db,
+                               &cursor, dmi, ctrlr, MAINTBL);
+    if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+      result_code = UPLL_RC_SUCCESS;
+      UPLL_LOG_DEBUG("No more diff found for operation %d", op[i]);
+      DELETE_IF_NOT_NULL(ckv_running_db);
+      DELETE_IF_NOT_NULL(ckv_audit_db);
+      continue;
+    }
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("DiffConfigDB failed - %d", result_code);
       dmi->CloseCursor(cursor, true);
+      DELETE_IF_NOT_NULL(ckv_running_db);
+      DELETE_IF_NOT_NULL(ckv_audit_db);
       return result_code;
     }
     if (cursor == NULL) {
       UPLL_LOG_DEBUG("cursor is null");
+      DELETE_IF_NOT_NULL(ckv_running_db);
+      DELETE_IF_NOT_NULL(ckv_audit_db);
       return UPLL_RC_ERR_GENERIC;
     }
     while (uud::kDalRcSuccess == (db_result = dmi->GetNextRecord(cursor))) {
       op1 = op[i];
       if (phase != uuc::kUpllUcpDelete) {
         uint8_t *db_ctrlr = NULL;
-        GET_USER_DATA_CTRLR(ckv_running_db,db_ctrlr);
+        GET_USER_DATA_CTRLR(ckv_running_db, db_ctrlr);
         UPLL_LOG_DEBUG("db ctrl_id and audit ctlr_id are  %s %s",
-                        db_ctrlr, ctrlr_id);
+                       db_ctrlr, ctrlr_id);
         // Skipping the controller ID if the controller id in DB and
         // controller id available for Audit are not the same
-        if (db_ctrlr && strncmp(reinterpret_cast<const char *>(db_ctrlr),
-              reinterpret_cast<const char *>(ctrlr_id), 
-              strlen(reinterpret_cast<const char *>(ctrlr_id)) + 1)) {
+        if (db_ctrlr && strncmp(
+                reinterpret_cast<const char *>(db_ctrlr),
+                reinterpret_cast<const char *>(ctrlr_id),
+                strlen(reinterpret_cast<const char *>(ctrlr_id)) + 1)) {
           continue;
         }
       }
       switch (phase) {
         case uuc::kUpllUcpDelete:
           UPLL_LOG_TRACE("Deleted record is %s ",
-              ckv_running_db->ToStrAll().c_str());
+                         ckv_running_db->ToStrAll().c_str());
           result_code = GetChildConfigKey(ckv_driver_req, ckv_running_db);
           UPLL_LOG_TRACE("ckv_driver_req in delete is %s",
-              ckv_driver_req->ToStrAll().c_str());
+                         ckv_driver_req->ToStrAll().c_str());
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("GetChildConfigKey failed. err_code & phase %d %d",
-                result_code, phase);
+                           result_code, phase);
+            DELETE_IF_NOT_NULL(ckv_running_db);
+            DELETE_IF_NOT_NULL(ckv_audit_db);
             dmi->CloseCursor(cursor, true);
             return result_code;
           }
           if (ckv_driver_req->get_cfg_val()) {
             UPLL_LOG_DEBUG("Invalid param");
+            DELETE_IF_NOT_NULL(ckv_running_db);
+            DELETE_IF_NOT_NULL(ckv_audit_db);
             dmi->CloseCursor(cursor, true);
             return UPLL_RC_ERR_GENERIC;
           }
           result_code = ReadConfigDB(ckv_driver_req, UPLL_DT_AUDIT, UNC_OP_READ,
-              dbop, dmi, MAINTBL);
+                                     dbop, dmi, MAINTBL);
           if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("Returning error %d",result_code);
+            UPLL_LOG_DEBUG("Returning error %d", result_code);
             DELETE_IF_NOT_NULL(ckv_driver_req);
+            DELETE_IF_NOT_NULL(ckv_running_db);
+            DELETE_IF_NOT_NULL(ckv_audit_db);
             dmi->CloseCursor(cursor, true);
             return UPLL_RC_ERR_GENERIC;
           }
@@ -1004,11 +935,15 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::AuditUpdateController(unc_key_type_t keytyp
           break;
         case uuc::kUpllUcpCreate:
           UPLL_LOG_TRACE("Created  record is %s ",
-              ckv_running_db->ToStrAll().c_str());
-          result_code = DupConfigKeyVal(ckv_driver_req, ckv_running_db, MAINTBL);
+                         ckv_running_db->ToStrAll().c_str());
+          result_code = DupConfigKeyVal(ckv_driver_req,
+                                        ckv_running_db,
+                                        MAINTBL);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("DupConfigKeyVal failed. err_code & phase %d %d",
-                result_code, phase);
+                           result_code, phase);
+            DELETE_IF_NOT_NULL(ckv_running_db);
+            DELETE_IF_NOT_NULL(ckv_audit_db);
             dmi->CloseCursor(cursor, true);
             return result_code;
           }
@@ -1017,20 +952,28 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::AuditUpdateController(unc_key_type_t keytyp
           ckv_audit_dup_db = NULL;
           ckv_driver_req = NULL;
           UPLL_LOG_TRACE("UpdateRecord  record  is %s ",
-              ckv_running_db->ToStrAll().c_str());
+                         ckv_running_db->ToStrAll().c_str());
           UPLL_LOG_TRACE("UpdateRecord  record  is %s ",
-              ckv_audit_db->ToStrAll().c_str());
-          result_code = DupConfigKeyVal(ckv_driver_req, ckv_running_db, MAINTBL);
+                         ckv_audit_db->ToStrAll().c_str());
+          result_code = DupConfigKeyVal(ckv_driver_req,
+                                        ckv_running_db,
+                                        MAINTBL);
           if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("DupConfigKeyVal failed for running record. \
-                err_code & phase %d %d", result_code, phase);
+            UPLL_LOG_DEBUG("DupConfigKeyVal failed for running record."
+                           "err_code & phase %d %d", result_code, phase);
+            DELETE_IF_NOT_NULL(ckv_running_db);
+            DELETE_IF_NOT_NULL(ckv_audit_db);
             dmi->CloseCursor(cursor, true);
             return result_code;
           }
-          result_code = DupConfigKeyVal(ckv_audit_dup_db, ckv_audit_db, MAINTBL);
+          result_code = DupConfigKeyVal(ckv_audit_dup_db,
+                                        ckv_audit_db,
+                                        MAINTBL);
           if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("DupConfigKeyVal failed for audit record. \
-                err_code & phase %d %d", result_code, phase);
+            UPLL_LOG_DEBUG("DupConfigKeyVal failed for audit record. "
+                           "err_code & phase %d %d", result_code, phase);
+            DELETE_IF_NOT_NULL(ckv_running_db);
+            DELETE_IF_NOT_NULL(ckv_audit_db);
             DELETE_IF_NOT_NULL(ckv_driver_req);
             dmi->CloseCursor(cursor, true);
             return result_code;
@@ -1045,13 +988,15 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::AuditUpdateController(unc_key_type_t keytyp
       GET_USER_DATA_CTRLR_DOMAIN(ckv_driver_req, ctrlr_dom);
       if ((NULL == ctrlr_dom.ctrlr) || (NULL == ctrlr_dom.domain)) {
         UPLL_LOG_INFO("controller id or domain is NULL");
+        DELETE_IF_NOT_NULL(ckv_running_db);
+        DELETE_IF_NOT_NULL(ckv_audit_db);
         DELETE_IF_NOT_NULL(ckv_driver_req);
         DELETE_IF_NOT_NULL(ckv_audit_dup_db);
         dmi->CloseCursor(cursor, true);
         return UPLL_RC_ERR_GENERIC;
       }
       UPLL_LOG_DEBUG("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
-          ctrlr_dom.domain);
+                     ctrlr_dom.domain);
       db_flag = 0;
       GET_USER_DATA_FLAGS(ckv_driver_req, db_flag);
       UPLL_LOG_DEBUG("dbflag 1 - %d", db_flag);
@@ -1061,8 +1006,7 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::AuditUpdateController(unc_key_type_t keytyp
       // hence sending the delete request to the controller driver
       if ((SET_FLAG_PORTMAP & db_flag) || (SET_FLAG_VLINK & db_flag)) {
         // Continue with further operations
-      }
-      else {
+      } else {
         if (UNC_OP_UPDATE == op1) {
           op1 = UNC_OP_DELETE;
           db_flag = auditdb_flag;
@@ -1074,62 +1018,82 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::AuditUpdateController(unc_key_type_t keytyp
           continue;
         }
       }
-      if (UNC_OP_UPDATE == op1) {    
+      if (UNC_OP_UPDATE == op1) {
         void *running_val = NULL;
         bool invalid_attr = false;
         running_val = GetVal(ckv_driver_req);
         invalid_attr = FilterAttributes(running_val,
-            GetVal(ckv_audit_dup_db), false, UNC_OP_UPDATE);
+                                        GetVal(ckv_audit_dup_db),
+                                        false,
+                                        UNC_OP_UPDATE);
         if (invalid_attr) {
           DELETE_IF_NOT_NULL(ckv_driver_req);
           DELETE_IF_NOT_NULL(ckv_audit_dup_db);
+          // Assuming that the diff found only in ConfigStatus
+          // Setting the   value as OnlyCSDiff in the
+          // out parameter ctrlr_affected
+          // The value Configdiff should be given more priority than the value
+          // onlycs .
+          // So  If the out parameter ctrlr_affected has already
+          // value as configdiff
+          //  then dont change the value
+          if (*ctrlr_affected != uuc::kCtrlrAffectedConfigDiff) {
+            UPLL_LOG_INFO("Setting the ctrlr_affected to OnlyCSDiff");
+            *ctrlr_affected = uuc::kCtrlrAffectedOnlyCSDiff;
+          }
           continue;
         }
       }
+
       DELETE_IF_NOT_NULL(ckv_audit_dup_db);
       pfcdrv_val_flowfilter_entry_t *pfc_val =
-        reinterpret_cast<pfcdrv_val_flowfilter_entry_t *>
-        (ConfigKeyVal::Malloc(sizeof(pfcdrv_val_flowfilter_entry_t)));
+          reinterpret_cast<pfcdrv_val_flowfilter_entry_t *>
+          (ConfigKeyVal::Malloc(sizeof(pfcdrv_val_flowfilter_entry_t)));
       if (op1 == UNC_OP_DELETE) {
         vext_datatype = UPLL_DT_AUDIT;
       } else {
         vext_datatype = UPLL_DT_RUNNING;
       }
       result_code = GetVexternalInformation(ckv_driver_req, vext_datatype,
-          pfc_val, db_flag, dmi);
+                                            pfc_val, db_flag, dmi);
 
       if (UPLL_RC_SUCCESS != result_code) {
         UPLL_LOG_DEBUG("GetVexternalInformation failed %d", result_code);
         DELETE_IF_NOT_NULL(ckv_driver_req);
         free(pfc_val);
+        DELETE_IF_NOT_NULL(ckv_running_db);
+        DELETE_IF_NOT_NULL(ckv_audit_db);
         dmi->CloseCursor(cursor, true);
         return result_code;
       }
 
       val_flowfilter_entry_t* val = reinterpret_cast<val_flowfilter_entry_t *>
-        (GetVal(ckv_driver_req));
+          (GetVal(ckv_driver_req));
 
 
       pfc_val->valid[PFCDRV_IDX_FLOWFILTER_ENTRY_FFE] = UNC_VF_VALID;
       memcpy(&pfc_val->val_ff_entry, val, sizeof(val_flowfilter_entry_t));
       upll_keytype_datatype_t dt_type = (op1 == UNC_OP_DELETE)?
-        UPLL_DT_AUDIT:UPLL_DT_RUNNING;
+          UPLL_DT_AUDIT:UPLL_DT_RUNNING;
       result_code = GetRenamedControllerKey(ckv_driver_req, UPLL_DT_RUNNING,
-          dmi, &ctrlr_dom);
+                                            dmi, &ctrlr_dom);
 
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG(" GetRenamedControllerKey failed err code(%d)",
-            result_code);
+                       result_code);
         DELETE_IF_NOT_NULL(ckv_driver_req);
         free(pfc_val);
+        DELETE_IF_NOT_NULL(ckv_running_db);
+        DELETE_IF_NOT_NULL(ckv_audit_db);
         dmi->CloseCursor(cursor, true);
         return result_code;
       }
 
-      ckv_driver_req->SetCfgVal(new ConfigVal(IpctSt::kIpcStPfcdrvValFlowfilterEntry,
-            pfc_val));
+      ckv_driver_req->SetCfgVal(new ConfigVal(
+              IpctSt::kIpcStPfcdrvValFlowfilterEntry,
+              pfc_val));
       UPLL_LOG_DEBUG("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
-          ctrlr_dom.domain);
+                     ctrlr_dom.domain);
 
       IpcResponse ipc_response;
       memset(&ipc_response, 0, sizeof(IpcResponse));
@@ -1140,71 +1104,105 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::AuditUpdateController(unc_key_type_t keytyp
       ipc_req.header.operation = op1;
       ipc_req.header.datatype = UPLL_DT_CANDIDATE;
       ipc_req.ckv_data = ckv_driver_req;
-      if (!IpcUtil::SendReqToDriver((const char *)ctrlr_dom.ctrlr, reinterpret_cast<char *>
-            (ctrlr_dom.domain), PFCDRIVER_SERVICE_NAME, 
-            PFCDRIVER_SVID_LOGICAL, &ipc_req, true, &ipc_response)) {
+      if (!IpcUtil::SendReqToDriver(
+              (const char *)ctrlr_dom.ctrlr, reinterpret_cast<char *>
+              (ctrlr_dom.domain), PFCDRIVER_SERVICE_NAME,
+              PFCDRIVER_SVID_LOGICAL, &ipc_req, true, &ipc_response)) {
         UPLL_LOG_INFO("Request to driver for Key %d for controller %s failed ",
-            ckv_driver_req->get_key_type(), reinterpret_cast<char *>(ctrlr_dom.ctrlr));
+                      ckv_driver_req->get_key_type(),
+                      reinterpret_cast<char *>(ctrlr_dom.ctrlr));
         DELETE_IF_NOT_NULL(ckv_driver_req);
+        DELETE_IF_NOT_NULL(ckv_running_db);
+        DELETE_IF_NOT_NULL(ckv_audit_db);
         dmi->CloseCursor(cursor, true);
         return UPLL_RC_ERR_GENERIC;
       }
-      if  (ipc_response.header.result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("driver return failure err_code is %d", ipc_response.header.result_code);
-        ConfigKeyVal *resp = NULL;
-        result_code = GetChildConfigKey(resp, ipc_response.ckv_data);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("GetChildConfigKey Failed");
-          DELETE_IF_NOT_NULL(ckv_driver_req);
-          DELETE_IF_NOT_NULL(ipc_response.ckv_data);
-          dmi->CloseCursor(cursor, true);
-          return result_code;
-        }
-
-        pfcdrv_val_flowfilter_entry_t *pfc_val_ff = reinterpret_cast<pfcdrv_val_flowfilter_entry_t *>
-          (GetVal(ipc_response.ckv_data));
-        if (NULL == pfc_val_ff) {
-          UPLL_LOG_DEBUG("pfcdrv_val_flowfilter_entry_t is NULL");
-          DELETE_IF_NOT_NULL(ckv_driver_req);
-          DELETE_IF_NOT_NULL(resp);
-          DELETE_IF_NOT_NULL(ipc_response.ckv_data);
-          dmi->CloseCursor(cursor, true);
-          return UPLL_RC_ERR_GENERIC;
-        }
-        val_flowfilter_entry_t* val_ff = reinterpret_cast<val_flowfilter_entry_t *>
-          (ConfigKeyVal::Malloc(sizeof(val_flowfilter_entry_t)));
-        memcpy(val_ff, &pfc_val_ff->val_ff_entry, sizeof(val_flowfilter_entry_t));
-        resp->AppendCfgVal(IpctSt::kIpcStValFlowfilterEntry, val_ff);
-
+      if (ipc_response.header.result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("driver return failure err_code is %d",
+                       ipc_response.header.result_code);
+        *err_ckv = ckv_running_db;
+        if (phase != uuc::kUpllUcpDelete) {
+          ConfigKeyVal *resp = NULL;
+          result_code = GetChildConfigKey(resp, ipc_response.ckv_data);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("GetChildConfigKey Failed");
+            DELETE_IF_NOT_NULL(ckv_driver_req);
+            DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+            DELETE_IF_NOT_NULL(ckv_running_db);
+            DELETE_IF_NOT_NULL(ckv_audit_db);
+            *err_ckv = NULL;
+            dmi->CloseCursor(cursor, true);
+            return result_code;
+          }
 
-        result_code = UpdateAuditConfigStatus(UNC_CS_INVALID, phase, resp);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_TRACE("Update Audit config status failed %d",
-              result_code);
-          DELETE_IF_NOT_NULL(ckv_driver_req);
-          DELETE_IF_NOT_NULL(resp);
-          DELETE_IF_NOT_NULL(ipc_response.ckv_data);
-          dmi->CloseCursor(cursor, true);
-          return result_code;
-        }
+          pfcdrv_val_flowfilter_entry_t *pfc_val_ff =
+              reinterpret_cast<pfcdrv_val_flowfilter_entry_t *>
+              (GetVal(ipc_response.ckv_data));
+          if (NULL == pfc_val_ff) {
+            UPLL_LOG_DEBUG("pfcdrv_val_flowfilter_entry_t is NULL");
+            DELETE_IF_NOT_NULL(ckv_driver_req);
+            DELETE_IF_NOT_NULL(resp);
+            DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+            DELETE_IF_NOT_NULL(ckv_running_db);
+            DELETE_IF_NOT_NULL(ckv_audit_db);
+            *err_ckv = NULL;
+            dmi->CloseCursor(cursor, true);
+            return UPLL_RC_ERR_GENERIC;
+          }
+          val_flowfilter_entry_t* val_ff =
+              reinterpret_cast<val_flowfilter_entry_t *>
+              (ConfigKeyVal::Malloc(sizeof(val_flowfilter_entry_t)));
+          memcpy(val_ff, &pfc_val_ff->val_ff_entry,
+                 sizeof(val_flowfilter_entry_t));
+          resp->AppendCfgVal(IpctSt::kIpcStValFlowfilterEntry, val_ff);
+
+
+          result_code = UpdateAuditConfigStatus(UNC_CS_INVALID,
+                                                phase,
+                                                resp,
+                                                dmi);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_TRACE("Update Audit config status failed %d",
+                           result_code);
+            DELETE_IF_NOT_NULL(ckv_driver_req);
+            DELETE_IF_NOT_NULL(resp);
+            DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+            DELETE_IF_NOT_NULL(ckv_running_db);
+            DELETE_IF_NOT_NULL(ckv_audit_db);
+            *err_ckv = NULL;
+            dmi->CloseCursor(cursor, true);
+            return result_code;
+          }
 
-        DbSubOp dbop = { kOpNotRead, kOpMatchNone, kOpInOutCs };
-        result_code = UpdateConfigDB(resp, dt_type, UNC_OP_UPDATE,
-            dmi, &dbop, MAINTBL);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("UpdateConfigDB failed for ipc response ckv err_code %d",
-              result_code);
-          DELETE_IF_NOT_NULL(ckv_driver_req);
+          DbSubOp dbop = { kOpNotRead, kOpMatchNone, kOpInOutCs };
+          result_code = UpdateConfigDB(resp, dt_type, UNC_OP_UPDATE,
+                                       dmi, &dbop, MAINTBL);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("UpdateConfigDB failed for ipc"
+                           "response ckv err_code %d",
+                           result_code);
+            DELETE_IF_NOT_NULL(ckv_driver_req);
+            DELETE_IF_NOT_NULL(resp);
+            DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+            DELETE_IF_NOT_NULL(ckv_running_db);
+            DELETE_IF_NOT_NULL(ckv_audit_db);
+            err_ckv = NULL;
+            dmi->CloseCursor(cursor, true);
+            return result_code;
+          }
           DELETE_IF_NOT_NULL(resp);
-          DELETE_IF_NOT_NULL(ipc_response.ckv_data);
-          dmi->CloseCursor(cursor, true);
-          return result_code;
         }
-        DELETE_IF_NOT_NULL(resp);
+        return ipc_response.header.result_code;
       }
       DELETE_IF_NOT_NULL(ckv_driver_req);
       DELETE_IF_NOT_NULL(ipc_response.ckv_data);
-      *ctrlr_affected = true;
+      // *ctrlr_affected = true;
+      if (*ctrlr_affected == uuc::kCtrlrAffectedOnlyCSDiff) {
+        UPLL_LOG_INFO("Reset ctrlr state from OnlyCSDiff to ConfigDiff");
+      }
+      UPLL_LOG_DEBUG("Setting the ctrlr_affected to ConfigDiff");
+
+      *ctrlr_affected = uuc::kCtrlrAffectedConfigDiff;
     }
     dmi->CloseCursor(cursor, true);
     DELETE_IF_NOT_NULL(ckv_running_db);
@@ -1215,7 +1213,7 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::AuditUpdateController(unc_key_type_t keytyp
     result_code =  DalToUpllResCode(db_result);
   }
   result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)
-    ? UPLL_RC_SUCCESS : result_code;
+      ? UPLL_RC_SUCCESS : result_code;
   return result_code;
 }
 
@@ -1226,12 +1224,12 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::DeleteMo(IpcReqRespHeader *req,
   UPLL_FUNC_TRACE;
   uint8_t *ctrlr_id = NULL;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
-// uint8_t rename = 0;
+  // uint8_t rename = 0;
   if (NULL == ikey && NULL == req) return result_code;
 
   result_code = ValidateMessage(req, ikey);
   if (result_code != UPLL_RC_SUCCESS) {
-     return result_code;
+    return result_code;
   }
 
   result_code = UpdateConfigDB(ikey, UPLL_DT_CANDIDATE, UNC_OP_READ, dmi);
@@ -1245,7 +1243,8 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::DeleteMo(IpcReqRespHeader *req,
   if (UPLL_RC_SUCCESS != result_code) {
     return result_code;
   }
-  DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutCtrlr };
+  DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
+    kOpInOutCtrlr|kOpInOutFlag };
   result_code = ReadConfigDB(okey, UPLL_DT_CANDIDATE,
                              UNC_OP_READ, dbop, dmi, MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
@@ -1255,27 +1254,32 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::DeleteMo(IpcReqRespHeader *req,
   }
   GET_USER_DATA_CTRLR(okey, ctrlr_id);
   val_flowfilter_entry_t *flowfilter_val =
-           reinterpret_cast<val_flowfilter_entry_t *> (GetVal(okey));
+      reinterpret_cast<val_flowfilter_entry_t *> (GetVal(okey));
   if (flowfilter_val->valid[UPLL_IDX_FLOWLIST_NAME_FFE] == UNC_VF_VALID) {
-    FlowListMoMgr *mgr = reinterpret_cast<FlowListMoMgr *>
-        (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
-    result_code = mgr->AddFlowListToController(
-        reinterpret_cast<char*>(flowfilter_val->flowlist_name), dmi,
-        reinterpret_cast<char *>(ctrlr_id), req->datatype, UNC_OP_DELETE);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG(" Send delete request to flowlist failed. err code(%d)",
-                     result_code);
-      DELETE_IF_NOT_NULL(okey); 
-      return result_code;
+    uint8_t flag_port_map = 0;
+    GET_USER_DATA_FLAGS(okey, flag_port_map);
+    if ((flag_port_map & SET_FLAG_VLINK) ||
+        (flag_port_map & SET_FLAG_PORTMAP)) {
+      FlowListMoMgr *mgr = reinterpret_cast<FlowListMoMgr *>
+          (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
+      result_code = mgr->AddFlowListToController(
+          reinterpret_cast<char*>(flowfilter_val->flowlist_name), dmi,
+          reinterpret_cast<char *>(ctrlr_id), req->datatype, UNC_OP_DELETE);
+      if (result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG(" Send delete request to flowlist failed. err code(%d)",
+                       result_code);
+        DELETE_IF_NOT_NULL(okey);
+        return result_code;
+      }
     }
   }
   result_code = UpdateConfigDB(ikey, UPLL_DT_CANDIDATE, UNC_OP_DELETE, dmi,
-                             MAINTBL);
+                               MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
-    DELETE_IF_NOT_NULL(okey); 
+    DELETE_IF_NOT_NULL(okey);
     return result_code;
   }
-  DELETE_IF_NOT_NULL(okey); 
+  DELETE_IF_NOT_NULL(okey);
   return UPLL_RC_SUCCESS;
 }
 
@@ -1384,9 +1388,9 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::GetChildConfigKey(
           (pkey)->flowfilter_key.if_key.vbr_key.vbridge_name,
           kMaxLenVnodeName + 1);
       uuu::upll_strncpy(vbr_if_ffe_key->flowfilter_key.if_key.if_name,
-          reinterpret_cast<key_vbr_if_flowfilter_entry_t *>
-          (pkey)->flowfilter_key.if_key.if_name,
-          kMaxLenInterfaceName + 1);
+                        reinterpret_cast<key_vbr_if_flowfilter_entry_t *>
+                        (pkey)->flowfilter_key.if_key.if_name,
+                        kMaxLenInterfaceName + 1);
       vbr_if_ffe_key->flowfilter_key.direction =
           reinterpret_cast<key_vbr_if_flowfilter_entry_t *>
           (pkey)->flowfilter_key.direction;
@@ -1445,7 +1449,7 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
           (GetVal(req));
 
       if (NULL != ival) {
-      val_flowfilter_entry_t *vbr_if_flowfilter_val = NULL;
+        val_flowfilter_entry_t *vbr_if_flowfilter_val = NULL;
         vbr_if_flowfilter_val = reinterpret_cast<val_flowfilter_entry_t *>
             (ConfigKeyVal::Malloc(sizeof(val_flowfilter_entry_t)));
 
@@ -1488,21 +1492,21 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
 }
 
 upll_rc_t VbrIfFlowFilterEntryMoMgr::GetRenamedUncKey(
-  ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type, DalDmlIntf *dmi,
-  uint8_t *ctrlr_id) {
+    ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type, DalDmlIntf *dmi,
+    uint8_t *ctrlr_id) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *unc_key = NULL;
   DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutNone };
   UPLL_LOG_TRACE("%s GetRenamedUncKey vbrifff_entry start",
-                  ikey->ToStrAll().c_str());
+                 ikey->ToStrAll().c_str());
   if ((NULL == ikey) || (ctrlr_id == NULL) || (NULL == dmi)) {
     UPLL_LOG_DEBUG("ikey/ctrlr_id dmi NULL");
     return UPLL_RC_ERR_GENERIC;
   }
 
   MoMgrImpl *VbrIfMoMgr = static_cast<MoMgrImpl*>
-    ((const_cast<MoManager*>(GetMoManager(UNC_KT_VBRIDGE))));
+      ((const_cast<MoManager*>(GetMoManager(UNC_KT_VBRIDGE))));
   if (NULL == VbrIfMoMgr) {
     UPLL_LOG_DEBUG("VbrIfMoMgr NULL");
     return UPLL_RC_ERR_GENERIC;
@@ -1515,16 +1519,16 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::GetRenamedUncKey(
     return UPLL_RC_ERR_GENERIC;
   }
   key_vbr_if_flowfilter_entry_t *ctrlr_key = reinterpret_cast
-    <key_vbr_if_flowfilter_entry_t *>(ikey->get_key());
+      <key_vbr_if_flowfilter_entry_t *>(ikey->get_key());
   if (!ctrlr_key) {
     UPLL_LOG_DEBUG("rename_val NULL");
     free(rename_val);
     return UPLL_RC_ERR_GENERIC;
   }
   uuu::upll_strncpy(
-  rename_val->ctrlr_vtn_name,
-  ctrlr_key->flowfilter_key.if_key.vbr_key.
-  vtn_key.vtn_name, kMaxLenVtnName + 1);
+      rename_val->ctrlr_vtn_name,
+      ctrlr_key->flowfilter_key.if_key.vbr_key.
+      vtn_key.vtn_name, kMaxLenVtnName + 1);
   rename_val->valid[UPLL_CTRLR_VTN_NAME_VALID] = UNC_VF_VALID;
 
   uuu::upll_strncpy(rename_val->ctrlr_vnode_name,
@@ -1548,7 +1552,7 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::GetRenamedUncKey(
   SET_USER_DATA_CTRLR(unc_key, ctrlr_id);
   unc_key->AppendCfgVal(IpctSt::kIpcStValRenameVtn, rename_val);
   result_code = VbrIfMoMgr->ReadConfigDB(unc_key, dt_type ,
-                                  UNC_OP_READ, dbop, dmi, RENAMETBL);
+                                         UNC_OP_READ, dbop, dmi, RENAMETBL);
   if ((UPLL_RC_SUCCESS != result_code) &&
       (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
     UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
@@ -1559,17 +1563,18 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::GetRenamedUncKey(
 
   if (result_code == UPLL_RC_SUCCESS) {
     key_vbr_if_flowfilter_entry_t *vbr_flowfilter_entry_key = reinterpret_cast
-      <key_vbr_if_flowfilter_entry_t *>(unc_key->get_key());
+        <key_vbr_if_flowfilter_entry_t *>(unc_key->get_key());
 
     uuu::upll_strncpy(
-     ctrlr_key->flowfilter_key.if_key.vbr_key.vtn_key.vtn_name,
-     vbr_flowfilter_entry_key->flowfilter_key.if_key.vbr_key.vtn_key.vtn_name,
-     kMaxLenVtnName + 1);
+        ctrlr_key->flowfilter_key.if_key.vbr_key.vtn_key.vtn_name,
+        vbr_flowfilter_entry_key->
+        flowfilter_key.if_key.vbr_key.vtn_key.vtn_name,
+        kMaxLenVtnName + 1);
 
     uuu::upll_strncpy(
-     ctrlr_key->flowfilter_key.if_key.vbr_key.vbridge_name,
-     vbr_flowfilter_entry_key->flowfilter_key.if_key.vbr_key.vbridge_name,
-     kMaxLenVnodeName + 1);
+        ctrlr_key->flowfilter_key.if_key.vbr_key.vbridge_name,
+        vbr_flowfilter_entry_key->flowfilter_key.if_key.vbr_key.vbridge_name,
+        kMaxLenVnodeName + 1);
   }
   VbrIfMoMgr = NULL;
   DELETE_IF_NOT_NULL(unc_key);
@@ -1577,18 +1582,18 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::GetRenamedUncKey(
   val_flowfilter_entry_t *val_flowfilter_entry = NULL;
   pfcdrv_val_flowfilter_entry_t *pfc_val_import = NULL;
   if (ikey->get_cfg_val() &&
-        (ikey->get_cfg_val()->get_st_num() ==
-        IpctSt::kIpcStPfcdrvValFlowfilterEntry)) {
+      (ikey->get_cfg_val()->get_st_num() ==
+       IpctSt::kIpcStPfcdrvValFlowfilterEntry)) {
     UPLL_LOG_DEBUG("val struct num (%d)", ikey->get_cfg_val()->get_st_num());
     pfc_val_import = reinterpret_cast<pfcdrv_val_flowfilter_entry_t *>
-              (ikey->get_cfg_val()->get_val());
+        (ikey->get_cfg_val()->get_val());
     val_flowfilter_entry = &pfc_val_import->val_ff_entry;
     UPLL_LOG_DEBUG("FLOWLIST name (%s)", val_flowfilter_entry->flowlist_name);
   } else if (ikey->get_cfg_val() &&
-      (ikey->get_cfg_val()->get_st_num() ==
-      IpctSt::kIpcStValFlowfilterEntry)) {
-      val_flowfilter_entry = reinterpret_cast
-           <val_flowfilter_entry_t *>(GetVal(ikey));
+             (ikey->get_cfg_val()->get_st_num() ==
+              IpctSt::kIpcStValFlowfilterEntry)) {
+    val_flowfilter_entry = reinterpret_cast
+        <val_flowfilter_entry_t *>(GetVal(ikey));
   }
 
   if (!val_flowfilter_entry) {
@@ -1597,70 +1602,70 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::GetRenamedUncKey(
   }
 
   if (UNC_VF_VALID == val_flowfilter_entry
-                      ->valid[UPLL_IDX_FLOWLIST_NAME_FFE]) {
-  val_rename_flowlist_t *rename_flowlist =
-      reinterpret_cast<val_rename_flowlist_t*>
-                   (ConfigKeyVal::Malloc(sizeof(val_rename_flowlist_t)));
-  if (!rename_flowlist) {
-    UPLL_LOG_DEBUG("rename_flowlist NULL");
-    free(rename_flowlist);
-    return UPLL_RC_ERR_GENERIC;
-  }
+      ->valid[UPLL_IDX_FLOWLIST_NAME_FFE]) {
+    val_rename_flowlist_t *rename_flowlist =
+        reinterpret_cast<val_rename_flowlist_t*>
+        (ConfigKeyVal::Malloc(sizeof(val_rename_flowlist_t)));
+    if (!rename_flowlist) {
+      UPLL_LOG_DEBUG("rename_flowlist NULL");
+      free(rename_flowlist);
+      return UPLL_RC_ERR_GENERIC;
+    }
 
-  uuu::upll_strncpy(rename_flowlist->flowlist_newname,
-                    val_flowfilter_entry->flowlist_name,
-                    (kMaxLenFlowListName + 1));
-  rename_flowlist->valid[UPLL_IDX_RENAME_FLOWLIST_RFL] = UNC_VF_VALID;
-  //  FlowList Renamed
-  MoMgrImpl* mgr = static_cast<MoMgrImpl*>
-             ((const_cast<MoManager*>(GetMoManager(UNC_KT_FLOWLIST))));
-  if (NULL == mgr) {
-    UPLL_LOG_DEBUG("mgr NULL");
-    FREE_IF_NOT_NULL(rename_flowlist);
-    return UPLL_RC_ERR_GENERIC;
-  }
-  UPLL_LOG_TRACE("flowlist name (%s) (%s) ctrlr_name (%s)",
-            rename_flowlist->flowlist_newname,
-            val_flowfilter_entry->flowlist_name,
-            ctrlr_id);
-  result_code = mgr->GetChildConfigKey(unc_key, NULL);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Failed to Get config key structure");
-    if (rename_flowlist) free(rename_flowlist);
-    mgr = NULL;
-    return UPLL_RC_ERR_GENERIC;
-  }
+    uuu::upll_strncpy(rename_flowlist->flowlist_newname,
+                      val_flowfilter_entry->flowlist_name,
+                      (kMaxLenFlowListName + 1));
+    rename_flowlist->valid[UPLL_IDX_RENAME_FLOWLIST_RFL] = UNC_VF_VALID;
+    //  FlowList Renamed
+    MoMgrImpl* mgr = static_cast<MoMgrImpl*>
+        ((const_cast<MoManager*>(GetMoManager(UNC_KT_FLOWLIST))));
+    if (NULL == mgr) {
+      UPLL_LOG_DEBUG("mgr NULL");
+      FREE_IF_NOT_NULL(rename_flowlist);
+      return UPLL_RC_ERR_GENERIC;
+    }
+    UPLL_LOG_TRACE("flowlist name (%s) (%s) ctrlr_name (%s)",
+                   rename_flowlist->flowlist_newname,
+                   val_flowfilter_entry->flowlist_name,
+                   ctrlr_id);
+    result_code = mgr->GetChildConfigKey(unc_key, NULL);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("Failed to Get config key structure");
+      if (rename_flowlist) free(rename_flowlist);
+      mgr = NULL;
+      return UPLL_RC_ERR_GENERIC;
+    }
 
-  SET_USER_DATA_CTRLR(unc_key, ctrlr_id);
-  unc_key->AppendCfgVal(IpctSt::kIpcStValRenameFlowlist, rename_flowlist);
-  result_code = mgr->ReadConfigDB(unc_key, dt_type, UNC_OP_READ, dbop, dmi,
-                                RENAMETBL);
-  if ((UPLL_RC_SUCCESS != result_code) &&
-      (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
-    UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
+    SET_USER_DATA_CTRLR(unc_key, ctrlr_id);
+    unc_key->AppendCfgVal(IpctSt::kIpcStValRenameFlowlist, rename_flowlist);
+    result_code = mgr->ReadConfigDB(unc_key, dt_type, UNC_OP_READ, dbop, dmi,
+                                    RENAMETBL);
+    if ((UPLL_RC_SUCCESS != result_code) &&
+        (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
+      UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
+      DELETE_IF_NOT_NULL(unc_key);
+      mgr = NULL;
+      return result_code;
+    }
+    if (result_code == UPLL_RC_SUCCESS) {
+      key_flowlist_t *key_flowlist = reinterpret_cast <key_flowlist_t *>
+          (unc_key->get_key());
+      uuu::upll_strncpy(val_flowfilter_entry->flowlist_name,
+                        key_flowlist->flowlist_name,
+                        (kMaxLenFlowListName + 1));
+    }
     DELETE_IF_NOT_NULL(unc_key);
     mgr = NULL;
-    return result_code;
-  }
-  if (result_code == UPLL_RC_SUCCESS) {
-  key_flowlist_t *key_flowlist = reinterpret_cast <key_flowlist_t *>
-    (unc_key->get_key());
-  uuu::upll_strncpy(val_flowfilter_entry->flowlist_name,
-                    key_flowlist->flowlist_name,
-                    (kMaxLenFlowListName + 1));
-  }
-  DELETE_IF_NOT_NULL(unc_key);
-  mgr = NULL;
   }
 
   if ((UNC_VF_VALID ==
-      val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_NODE_FFE]) &&
+       val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_NODE_FFE]) &&
       (UNC_VF_VALID ==
-      val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_PORT_FFE])) {
+       val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_PORT_FFE])) {
     unc_key_type_t child_key[]= { UNC_KT_VBRIDGE, UNC_KT_VROUTER };
     bool isRedirectVnodeVbridge = false;
     for (unsigned int i = 0;
-      i < sizeof(child_key)/sizeof(child_key[0]); i++) {
+         i < sizeof(child_key)/sizeof(child_key[0]); i++) {
       const unc_key_type_t ktype = child_key[i];
       MoMgrImpl *mgrvbr = reinterpret_cast<MoMgrImpl *>(
           const_cast<MoManager *>(GetMoManager(ktype)));
@@ -1669,15 +1674,15 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::GetRenamedUncKey(
         return UPLL_RC_ERR_GENERIC;
       }
       val_rename_vnode *rename_val = reinterpret_cast<val_rename_vnode*>
-        (ConfigKeyVal::Malloc(sizeof(val_rename_vnode)));
+          (ConfigKeyVal::Malloc(sizeof(val_rename_vnode)));
       if (!rename_val) {
         UPLL_LOG_TRACE("rename_val NULL");
         return UPLL_RC_ERR_GENERIC;
       }
 
       uuu::upll_strncpy(rename_val->ctrlr_vnode_name,
-                       val_flowfilter_entry->redirect_node,
-                       (kMaxLenVnodeName + 1));
+                        val_flowfilter_entry->redirect_node,
+                        (kMaxLenVnodeName + 1));
       rename_val->valid[UPLL_CTRLR_VNODE_NAME_VALID] = UNC_VF_VALID;
 
       result_code = mgrvbr->GetChildConfigKey(unc_key, NULL);
@@ -1689,10 +1694,14 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::GetRenamedUncKey(
       }
       SET_USER_DATA_CTRLR(unc_key, ctrlr_id);
       unc_key->AppendCfgVal(IpctSt::kIpcStValRenameVtn, rename_val);
-      result_code = mgrvbr->ReadConfigDB(unc_key, dt_type, UNC_OP_READ, dbop, dmi,
-        RENAMETBL);
+      result_code = mgrvbr->ReadConfigDB(unc_key,
+                                         dt_type,
+                                         UNC_OP_READ,
+                                         dbop,
+                                         dmi,
+                                         RENAMETBL);
       if ((UPLL_RC_SUCCESS != result_code) &&
-        (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
+          (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
         UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
         DELETE_IF_NOT_NULL(unc_key);
         mgrvbr = NULL;
@@ -1704,13 +1713,13 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::GetRenamedUncKey(
           isRedirectVnodeVbridge = true;
           key_vbr *vbr_key = reinterpret_cast<key_vbr *>(unc_key->get_key());
           uuu::upll_strncpy(val_flowfilter_entry->redirect_node,
-                          vbr_key->vbridge_name,
-                          (kMaxLenVnodeName + 1));
+                            vbr_key->vbridge_name,
+                            (kMaxLenVnodeName + 1));
         } else if (unc_key->get_key_type() == UNC_KT_VROUTER) {
           key_vrt *vrt_key = reinterpret_cast<key_vrt *>(unc_key->get_key());
           uuu::upll_strncpy(val_flowfilter_entry->redirect_node,
-                           vrt_key->vrouter_name,
-                          (kMaxLenVnodeName + 1));
+                            vrt_key->vrouter_name,
+                            (kMaxLenVnodeName + 1));
         }
       }
       DELETE_IF_NOT_NULL(unc_key);
@@ -1722,200 +1731,192 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::GetRenamedUncKey(
     }
   }
   UPLL_LOG_TRACE("%s GetRenamedUncKey vbrifff_entry end",
-                  ikey->ToStrAll().c_str());
+                 ikey->ToStrAll().c_str());
   DELETE_IF_NOT_NULL(unc_key);
   return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t VbrIfFlowFilterEntryMoMgr::GetRenamedControllerKey(
-  ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type, DalDmlIntf *dmi,
-  controller_domain *ctrlr_dom) {
+    ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type, DalDmlIntf *dmi,
+    controller_domain *ctrlr_dom) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *okey = NULL;
-  uint8_t rename = 0;
 
   /* Get the controller's redirect node(vbridge/vrt) name -start*/
   val_flowfilter_entry_t *val_flowfilter_entry =
       reinterpret_cast<val_flowfilter_entry_t *> (GetVal(ikey));
-
+  if (NULL == ctrlr_dom) {
+    UPLL_LOG_DEBUG("ctrlr null");
+    return UPLL_RC_ERR_GENERIC;
+  }
   if (val_flowfilter_entry) {
     if ((UNC_VF_VALID ==
-      val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_NODE_FFE]) &&
-      (UNC_VF_VALID ==
-      val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_PORT_FFE])) {
+         val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_NODE_FFE]) &&
+        (UNC_VF_VALID ==
+         val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_PORT_FFE])) {
       unc_key_type_t child_key[]= { UNC_KT_VBRIDGE, UNC_KT_VROUTER };
       bool isRedirectVnodeVbridge = false;
       for (unsigned int i = 0;
-        i < sizeof(child_key)/sizeof(child_key[0]); i++) {
+           i < sizeof(child_key)/sizeof(child_key[0]); i++) {
         const unc_key_type_t ktype = child_key[i];
         MoMgrImpl *mgrvbr = reinterpret_cast<MoMgrImpl *>(
-          const_cast<MoManager *>(GetMoManager(ktype)));
-      if (!mgrvbr) {
-        UPLL_LOG_DEBUG("mgrvbr failed");
-        return UPLL_RC_ERR_GENERIC;
-      }
-
-      result_code = mgrvbr->GetChildConfigKey(okey, NULL);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("GetChildConfigKey fail");
-        return result_code;
-      }
-      if (NULL != ctrlr_dom) {
-        SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
-        // SET_USER_DATA_CTRLR(okey, ctrlr_dom->ctrlr);
-      } else {
-        UPLL_LOG_DEBUG("ctrlr null");
-        DELETE_IF_NOT_NULL(okey);
-        return UPLL_RC_ERR_GENERIC;
-      }
-      UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
-      if (okey->get_key_type() == UNC_KT_VBRIDGE) {
-        uuu::upll_strncpy(reinterpret_cast<key_vbr_t *>
-           (okey->get_key())->vbridge_name,
-        reinterpret_cast<val_flowfilter_entry_t *>(ikey->get_cfg_val()->
-           get_val())->redirect_node, (kMaxLenVnodeName + 1));
-
-        UPLL_LOG_DEBUG("redirect node vbr name (%s) (%s)",
-        reinterpret_cast<key_vbr_t *>(okey->get_key())->vbridge_name,
-        reinterpret_cast<val_flowfilter_entry_t *>(ikey->get_cfg_val()->
-           get_val())->redirect_node);
-      } else if (okey->get_key_type() == UNC_KT_VROUTER) {
-        uuu::upll_strncpy(reinterpret_cast<key_vrt_t *>
-            (okey->get_key())->vrouter_name,
-        reinterpret_cast<val_flowfilter_entry_t *>(ikey->get_cfg_val()->
-            get_val())->redirect_node, (kMaxLenVnodeName + 1));
-
-        UPLL_LOG_DEBUG("redirect node vrt name (%s) (%s)",
-        reinterpret_cast<key_vrt_t *>(okey->get_key())->vrouter_name,
-        reinterpret_cast<val_flowfilter_entry_t *>(ikey->get_cfg_val()->
-           get_val())->flowlist_name);
-      }
+            const_cast<MoManager *>(GetMoManager(ktype)));
+        if (!mgrvbr) {
+          UPLL_LOG_DEBUG("mgrvbr failed");
+          return UPLL_RC_ERR_GENERIC;
+        }
 
-      DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr | kOpMatchDomain, kOpInOutFlag };
-      result_code = mgrvbr->ReadConfigDB(okey, dt_type, UNC_OP_READ,
-                                dbop, dmi, RENAMETBL);
-      if (result_code != UPLL_RC_SUCCESS) {
-        if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
-          UPLL_LOG_DEBUG("ReadConfigDB fail");
-          DELETE_IF_NOT_NULL(okey);
+        result_code = mgrvbr->GetChildConfigKey(okey, NULL);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("GetChildConfigKey fail");
           return result_code;
         }
-      }
+        SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
+        UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
+                       ctrlr_dom->domain);
+        if (okey->get_key_type() == UNC_KT_VBRIDGE) {
+          uuu::upll_strncpy(reinterpret_cast<key_vbr_t *>
+                            (okey->get_key())->vbridge_name,
+                            reinterpret_cast<val_flowfilter_entry_t *>
+                            (ikey->get_cfg_val()->
+                             get_val())->redirect_node, (kMaxLenVnodeName + 1));
+
+          UPLL_LOG_DEBUG("redirect node vbr name (%s) (%s)",
+                         reinterpret_cast<key_vbr_t *>
+                         (okey->get_key())->vbridge_name,
+                         reinterpret_cast<val_flowfilter_entry_t *>
+                         (ikey->get_cfg_val()->
+                          get_val())->redirect_node);
+        } else if (okey->get_key_type() == UNC_KT_VROUTER) {
+          uuu::upll_strncpy(reinterpret_cast<key_vrt_t *>
+                            (okey->get_key())->vrouter_name,
+                            reinterpret_cast<val_flowfilter_entry_t *>
+                            (ikey->get_cfg_val()->
+                             get_val())->redirect_node,
+                            (kMaxLenVnodeName + 1));
+
+          UPLL_LOG_DEBUG("redirect node vrt name (%s) (%s)",
+                         reinterpret_cast<key_vrt_t *>
+                         (okey->get_key())->vrouter_name,
+                         reinterpret_cast<val_flowfilter_entry_t *>
+                         (ikey->get_cfg_val()->
+                          get_val())->flowlist_name);
+        }
 
-      if (result_code == UPLL_RC_SUCCESS) {
-        val_rename_vnode *rename_val = NULL;
-        isRedirectVnodeVbridge = true;
-        rename_val = reinterpret_cast<val_rename_vnode *> (GetVal(okey));
-        if (!rename_val) {
-          UPLL_LOG_DEBUG("rename_val NULL.");
-          DELETE_IF_NOT_NULL(okey);
-          return UPLL_RC_ERR_GENERIC;
+        DbSubOp dbop = { kOpReadSingle,
+          kOpMatchCtrlr | kOpMatchDomain,
+          kOpInOutFlag };
+        result_code = mgrvbr->ReadConfigDB(okey, dt_type, UNC_OP_READ,
+                                           dbop, dmi, RENAMETBL);
+        if (result_code != UPLL_RC_SUCCESS) {
+          if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+            UPLL_LOG_DEBUG("ReadConfigDB fail");
+            DELETE_IF_NOT_NULL(okey);
+            return result_code;
+          }
         }
 
-        uuu::upll_strncpy(reinterpret_cast<val_flowfilter_entry_t*>
-             (ikey->get_cfg_val()->get_val())->redirect_node,
-             rename_val->ctrlr_vnode_name, (kMaxLenVtnName + 1));
-      }
-      DELETE_IF_NOT_NULL(okey);
-      if (isRedirectVnodeVbridge)
-        break;
+        if (result_code == UPLL_RC_SUCCESS) {
+          val_rename_vnode *rename_val = NULL;
+          isRedirectVnodeVbridge = true;
+          rename_val = reinterpret_cast<val_rename_vnode *> (GetVal(okey));
+          if (!rename_val) {
+            UPLL_LOG_DEBUG("rename_val NULL.");
+            DELETE_IF_NOT_NULL(okey);
+            return UPLL_RC_ERR_GENERIC;
+          }
+
+          uuu::upll_strncpy(reinterpret_cast<val_flowfilter_entry_t*>
+                            (ikey->get_cfg_val()->get_val())->redirect_node,
+                            rename_val->ctrlr_vnode_name,
+                            (kMaxLenVnodeName + 1));
+        }
+        DELETE_IF_NOT_NULL(okey);
+        if (isRedirectVnodeVbridge)
+          break;
       }
     }
   }
   /* -end*/
-  IsRenamed(ikey, dt_type, dmi, rename);
-  if (!rename) {
-    UPLL_LOG_DEBUG("no renamed");
-    return UPLL_RC_SUCCESS;
-  }
   UPLL_LOG_TRACE("Start... Input ConfigKeyVal %s", ikey->ToStrAll().c_str());
 
-    MoMgrImpl *VbrIfMoMgr = static_cast<MoMgrImpl*>
-    ((const_cast<MoManager*>(GetMoManager(UNC_KT_VBRIDGE))));
-    if (NULL == VbrIfMoMgr) {
-      UPLL_LOG_DEBUG("obj null");
-      return UPLL_RC_ERR_GENERIC;
-    }
-
-    result_code = VbrIfMoMgr->GetChildConfigKey(okey, NULL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetChildConfigKey fail");
-      return result_code;
-    }
-
-    if (NULL != ctrlr_dom) {
-      SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom)
-    }
-    else {
-      UPLL_LOG_DEBUG("ctrlr null");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
-    uuu::upll_strncpy(
-        reinterpret_cast<key_vbr *>(okey->get_key())->vtn_key.vtn_name,
-        reinterpret_cast <key_vbr_if_flowfilter_entry_t*>
-        (ikey->get_key())->flowfilter_key.if_key.vbr_key.vtn_key.vtn_name,
-        (kMaxLenVnodeName + 1));
+  MoMgrImpl *VbrIfMoMgr = static_cast<MoMgrImpl*>
+      ((const_cast<MoManager*>(GetMoManager(UNC_KT_VBRIDGE))));
+  if (NULL == VbrIfMoMgr) {
+    UPLL_LOG_DEBUG("obj null");
+    return UPLL_RC_ERR_GENERIC;
+  }
 
-    UPLL_LOG_DEBUG("vtn name (%s) (%s)",
-        reinterpret_cast<key_vbr *>(okey->get_key())->vtn_key.vtn_name,
-        reinterpret_cast <key_vbr_if_flowfilter_entry_t*>
-        (ikey->get_key())->flowfilter_key.if_key.vbr_key.vtn_key.vtn_name);
+  result_code = VbrIfMoMgr->GetChildConfigKey(okey, NULL);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_DEBUG("GetChildConfigKey fail");
+    return result_code;
+  }
 
-    uuu::upll_strncpy(
-        reinterpret_cast<key_vbr *>(okey->get_key())->vbridge_name,
-        reinterpret_cast <key_vbr_if_flowfilter_entry_t*>
-        (ikey->get_key())->flowfilter_key.if_key.vbr_key.vbridge_name,
-        (kMaxLenVnodeName + 1));
+  SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
 
-    UPLL_LOG_DEBUG("vbr name (%s) (%s)",
-        reinterpret_cast<key_vbr *>(okey->get_key())->vbridge_name,
-        reinterpret_cast <key_vbr_if_flowfilter_entry_t*>
-        (ikey->get_key())->flowfilter_key.if_key.vbr_key.vbridge_name);
+  UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
+                 ctrlr_dom->domain);
+  uuu::upll_strncpy(
+      reinterpret_cast<key_vbr *>(okey->get_key())->vtn_key.vtn_name,
+      reinterpret_cast <key_vbr_if_flowfilter_entry_t*>
+      (ikey->get_key())->flowfilter_key.if_key.vbr_key.vtn_key.vtn_name,
+      (kMaxLenVtnName + 1));
+
+  UPLL_LOG_DEBUG("vtn name (%s) (%s)",
+                 reinterpret_cast<key_vbr *>(okey->get_key())->
+                 vtn_key.vtn_name,
+                 reinterpret_cast <key_vbr_if_flowfilter_entry_t*>
+                 (ikey->get_key())->
+                 flowfilter_key.if_key.vbr_key.vtn_key.vtn_name);
 
-    DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr | kOpMatchDomain, kOpInOutFlag };
-    result_code=  VbrIfMoMgr->ReadConfigDB(okey, dt_type, UNC_OP_READ,
-                                           dbop, dmi, RENAMETBL);
-    if ( result_code != UPLL_RC_SUCCESS ) {
-      if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-        UPLL_LOG_DEBUG("ReadConfigDB no instance");
-        DELETE_IF_NOT_NULL(okey);
-        return UPLL_RC_SUCCESS;
-      }
-     UPLL_LOG_DEBUG("ReadConfigDB fail");
-     DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
+  uuu::upll_strncpy(
+      reinterpret_cast<key_vbr *>(okey->get_key())->vbridge_name,
+      reinterpret_cast <key_vbr_if_flowfilter_entry_t*>
+      (ikey->get_key())->flowfilter_key.if_key.vbr_key.vbridge_name,
+      (kMaxLenVnodeName + 1));
+
+  UPLL_LOG_DEBUG("vbr name (%s) (%s)",
+                 reinterpret_cast<key_vbr *>(okey->get_key())->
+                 vbridge_name,
+                 reinterpret_cast <key_vbr_if_flowfilter_entry_t*>
+                 (ikey->get_key())->
+                 flowfilter_key.if_key.vbr_key.vbridge_name);
+
+  DbSubOp dbop = { kOpReadSingle,
+    kOpMatchCtrlr | kOpMatchDomain,
+    kOpInOutFlag };
+  result_code=  VbrIfMoMgr->ReadConfigDB(okey, dt_type, UNC_OP_READ,
+                                         dbop, dmi, RENAMETBL);
+  if (( result_code != UPLL_RC_SUCCESS ) &&
+      (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
+    UPLL_LOG_DEBUG("ReadConfigDB fail");
+    DELETE_IF_NOT_NULL(okey);
+    return UPLL_RC_ERR_GENERIC;
+  }
+  if (UPLL_RC_SUCCESS == result_code) {
     val_rename_vnode *rename_val =reinterpret_cast <val_rename_vnode *>
         (GetVal(okey));
 
     if (!rename_val) {
-     UPLL_LOG_DEBUG("Vbr Name is not Valid");
-     DELETE_IF_NOT_NULL(okey);
+      UPLL_LOG_DEBUG("Vbr Name is not Valid");
+      DELETE_IF_NOT_NULL(okey);
       return UPLL_RC_ERR_GENERIC;
-   }
+    }
 
-  if (rename & VTN_RENAME_FLAG) {
-    UPLL_LOG_DEBUG("vtn name renamed");
     uuu::upll_strncpy(
-    reinterpret_cast<key_vbr_if_flowfilter_entry_t *>
-    (ikey->get_key())->flowfilter_key.if_key.vbr_key.vtn_key.vtn_name,
-    rename_val->ctrlr_vtn_name,
-    kMaxLenVtnName + 1);
+        reinterpret_cast<key_vbr_if_flowfilter_entry_t *>
+        (ikey->get_key())->flowfilter_key.if_key.vbr_key.vtn_key.vtn_name,
+        rename_val->ctrlr_vtn_name,
+        kMaxLenVtnName + 1);
 
     UPLL_LOG_DEBUG("vtn name (%s) (%s)",
-     reinterpret_cast<key_vbr_if_flowfilter_entry_t *>
-     (ikey->get_key())->flowfilter_key.if_key.vbr_key.vtn_key.vtn_name,
-     rename_val->ctrlr_vtn_name);
-  }
+                   reinterpret_cast<key_vbr_if_flowfilter_entry_t *>
+                   (ikey->get_key())->
+                   flowfilter_key.if_key.vbr_key.vtn_key.vtn_name,
+                   rename_val->ctrlr_vtn_name);
 
-  if (rename & VBR_RENAME_FLAG) {
-    UPLL_LOG_DEBUG("vtn name renamed");
     uuu::upll_strncpy(
         reinterpret_cast<key_vbr_if_flowfilter_entry_t*>
         (ikey->get_key())->flowfilter_key.if_key.vbr_key.vbridge_name,
@@ -1923,259 +1924,64 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::GetRenamedControllerKey(
         kMaxLenVnodeName + 1);
 
     UPLL_LOG_DEBUG("vbr name (%s) (%s)",
-        reinterpret_cast<key_vbr_if_flowfilter_entry_t*>
-        (ikey->get_key())->flowfilter_key.if_key.vbr_key.vbridge_name,
-        rename_val->ctrlr_vnode_name);
+                   reinterpret_cast<key_vbr_if_flowfilter_entry_t*>
+                   (ikey->get_key())->
+                   flowfilter_key.if_key.vbr_key.vbridge_name,
+                   rename_val->ctrlr_vnode_name);
   }
   DELETE_IF_NOT_NULL(okey);
 
   //  flowlist_name
-  if (rename & FLOWLIST_RENAME_FLAG) {
-    UPLL_LOG_DEBUG("flowlist name renamed");
-    MoMgrImpl *mgrflist = static_cast<MoMgrImpl*>
-        ((const_cast<MoManager*> (GetMoManager(UNC_KT_FLOWLIST))));
-    if (mgrflist == NULL) {
+  val_flowfilter_entry_t *val_ffe = reinterpret_cast
+      <val_flowfilter_entry_t *>(GetVal(ikey));
+  if (NULL == val_ffe) {
+    UPLL_LOG_DEBUG("value structure is null");
+    return UPLL_RC_SUCCESS;
+  }
+  if (strlen(reinterpret_cast<char *>
+             (val_ffe->flowlist_name)) == 0) {
+    return UPLL_RC_SUCCESS;
+  }
+  MoMgrImpl *mgrflist = static_cast<MoMgrImpl*>
+      ((const_cast<MoManager*> (GetMoManager(UNC_KT_FLOWLIST))));
+  if (mgrflist == NULL) {
     UPLL_LOG_DEBUG("obj null");
-      return UPLL_RC_ERR_GENERIC;
-    }
-
-    result_code = mgrflist->GetChildConfigKey(okey, NULL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetChildConfigKey fail");
-      return result_code;
-    }
-    if (NULL != ctrlr_dom) {
-      SET_USER_DATA_CTRLR(okey, ctrlr_dom->ctrlr);
-    } else {
-      UPLL_LOG_DEBUG("ctrlr null");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
-    if (!GetVal(ikey)) 
-       return UPLL_RC_SUCCESS;
-    uuu::upll_strncpy(
-        reinterpret_cast<key_flowlist_t *>(okey->get_key())->flowlist_name,
-        reinterpret_cast<val_flowfilter_entry_t*>
-        (ikey->get_cfg_val()->get_val())->flowlist_name,
-        kMaxLenVnodeName + 1);
-    UPLL_LOG_DEBUG("flowlist name (%s) (%s)",
-        reinterpret_cast<key_flowlist_t *>(okey->get_key())->flowlist_name,
-        reinterpret_cast<val_flowfilter_entry_t*>
-        (ikey->get_cfg_val()->get_val())->flowlist_name);
-
-    DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutFlag };
-    /* ctrlr_name */
-    result_code =  mgrflist->ReadConfigDB(okey, dt_type, UNC_OP_READ,
-                                          dbop, dmi, RENAMETBL);
-    if ( result_code != UPLL_RC_SUCCESS ) {
-      if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-        UPLL_LOG_DEBUG("ReadConfigDB no instance");
-        DELETE_IF_NOT_NULL(okey);
-        return UPLL_RC_SUCCESS;
-      }
-      UPLL_LOG_DEBUG("ReadConfigDB fail");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-    // NULL Checks Missing
-    val_rename_flowlist_t *rename_val =reinterpret_cast <val_rename_flowlist_t*>
-        (GetVal(okey));
-    if (!rename_val) {
-      UPLL_LOG_DEBUG("flowlist is not valid");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-    uuu::upll_strncpy(
-        reinterpret_cast<val_flowfilter_entry_t*>
-        (ikey->get_cfg_val()->get_val())->flowlist_name,
-        rename_val->flowlist_newname,
-        (kMaxLenFlowListName + 1));
-    DELETE_IF_NOT_NULL(okey);
+    return UPLL_RC_ERR_GENERIC;
   }
-  UPLL_LOG_TRACE("End... Input ConfigKeyVal %s", ikey->ToStrAll().c_str());
-  UPLL_LOG_DEBUG("Renamed Controller key is sucessfull.");
-  return UPLL_RC_SUCCESS;
-
-#if 0
-  /* Vtn renamed */
-  if (rename & VTN_RENAME_FLAG) {
-    UPLL_LOG_DEBUG("vtn name renamed");
-    MoMgrImpl *mgrvtn = static_cast<MoMgrImpl*>
-       ((const_cast<MoManager*>(GetMoManager(UNC_KT_VTN))));
-    if (mgrvtn == NULL) {
-      UPLL_LOG_DEBUG("obj null");
-      return UPLL_RC_ERR_GENERIC;
-    }
-
-    result_code = mgrvtn->GetChildConfigKey(okey, NULL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetChildConfigKey fail");
-      return result_code;
-    }
-
-    if (ctrlr_dom) {
-      SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
-    } else {
-      UPLL_LOG_DEBUG("ctrlr null");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
-
-    uuu::upll_strncpy(
-    reinterpret_cast<key_vtn *>(okey->get_key())->vtn_name,
-    reinterpret_cast<key_vbr_if_flowfilter_entry_t*>
-    (ikey->get_key())->flowfilter_key.if_key.vbr_key.vtn_key.vtn_name,
-    kMaxLenVtnName + 1);
-
-    UPLL_LOG_DEBUG("vtn name (%s) (%s)",
-    reinterpret_cast<key_vtn *>(okey->get_key())->vtn_name,
-    reinterpret_cast<key_vbr_if_flowfilter_entry_t*>
-    (ikey->get_key())->flowfilter_key.if_key.vbr_key.vtn_key.vtn_name);
-
-    DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutFlag };
-    result_code =  mgrvtn->ReadConfigDB(okey, dt_type,
-                            UNC_OP_READ, dbop, dmi, RENAMETBL);
-    if ( result_code != UPLL_RC_SUCCESS ) {
-      UPLL_LOG_DEBUG("ReadConfigDB fail");
-      DELETE_IF_NOT_NULL(okey);
-       return result_code;
-    }
-    val_rename_vtn *rename_val = reinterpret_cast<val_rename_vtn *>
-                                           (GetVal(okey));
-    if (!rename_val
-      || (rename_val->valid[UPLL_IDX_NEW_NAME_RVTN] != UNC_VF_VALID)) {
-      UPLL_LOG_DEBUG("Vtn Name is not Valid.");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-
-    uuu::upll_strncpy(
-    reinterpret_cast<key_vbr_if_flowfilter_entry_t *>
-    (ikey->get_key())->flowfilter_key.if_key.vbr_key.vtn_key.vtn_name,
-    rename_val->new_name,
-    kMaxLenVtnName + 1);
-    UPLL_LOG_DEBUG("vtn name (%s) (%s)",
-         reinterpret_cast<key_vbr_if_flowfilter_entry_t *>
-        (ikey->get_key())->flowfilter_key.if_key.vbr_key.vtn_key.vtn_name,
-        rename_val->new_name);
-    SET_USER_DATA_FLAGS(ikey, rename);
-    DELETE_IF_NOT_NULL(okey);    
-  }
-  // Vbr Renamed
-  if (rename & VBR_RENAME_FLAG) {
-    UPLL_LOG_DEBUG("vtn name renamed");
-    MoMgrImpl *VbrIfMoMgr = static_cast<MoMgrImpl*>
-    ((const_cast<MoManager*>(GetMoManager(UNC_KT_VBRIDGE))));
-    if (NULL == VbrIfMoMgr) {
-      UPLL_LOG_DEBUG("obj null");
-      return UPLL_RC_ERR_GENERIC;
-    }
-
-    result_code = VbrIfMoMgr->GetChildConfigKey(okey, NULL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetChildConfigKey fail");
-      return result_code;
-    }
-
-    if (NULL != ctrlr_dom) {
-      SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom)
-    }
-    else {
-      UPLL_LOG_DEBUG("ctrlr null");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
-
-    uuu::upll_strncpy(
-        reinterpret_cast<key_vbr *>(okey->get_key())->vbridge_name,
-        reinterpret_cast <key_vbr_if_flowfilter_entry_t*>
-        (ikey->get_key())->flowfilter_key.if_key.vbr_key.vbridge_name,
-        (kMaxLenVnodeName + 1));
-
-    UPLL_LOG_DEBUG("vbr name (%s) (%s)",
-        reinterpret_cast<key_vbr *>(okey->get_key())->vbridge_name,
-        reinterpret_cast <key_vbr_if_flowfilter_entry_t*>
-        (ikey->get_key())->flowfilter_key.if_key.vbr_key.vbridge_name);
-
-    DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutFlag };
-    result_code=  VbrIfMoMgr->ReadConfigDB(okey, dt_type, UNC_OP_READ,
-                                           dbop, dmi, RENAMETBL);
-    if ( result_code != UPLL_RC_SUCCESS ) {
-     UPLL_LOG_DEBUG("ReadConfigDB fail");
-     DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-    val_rename_vbr *rename_val =reinterpret_cast <val_rename_vbr *>
-        (GetVal(okey));
-
-    if (!rename_val
-        || (rename_val->valid[UPLL_IDX_NEW_NAME_RVBR] != UNC_VF_VALID)) {
-     UPLL_LOG_DEBUG("Vbr Name is not Valid");
-     DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-   }
 
-    uuu::upll_strncpy(
-        reinterpret_cast<key_vbr_if_flowfilter_entry_t*>
-        (ikey->get_key())->flowfilter_key.if_key.vbr_key.vbridge_name,
-        rename_val->new_name,
-        kMaxLenVnodeName + 1);
+  result_code = mgrflist->GetChildConfigKey(okey, NULL);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_DEBUG("GetChildConfigKey fail");
+    return result_code;
+  }
+  SET_USER_DATA_CTRLR(okey, ctrlr_dom->ctrlr);
+  UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
+                 ctrlr_dom->domain);
 
-    SET_USER_DATA_FLAGS(ikey, rename);
+  uuu::upll_strncpy(
+      reinterpret_cast<key_flowlist_t *>(okey->get_key())->flowlist_name,
+      reinterpret_cast<val_flowfilter_entry_t*>
+      (ikey->get_cfg_val()->get_val())->flowlist_name,
+      kMaxLenFlowListName + 1);
+  UPLL_LOG_DEBUG("flowlist name (%s) (%s)",
+                 reinterpret_cast<key_flowlist_t *>
+                 (okey->get_key())->flowlist_name,
+                 reinterpret_cast<val_flowfilter_entry_t*>
+                 (ikey->get_cfg_val()->get_val())->flowlist_name);
+
+  DbSubOp dbop1 = { kOpReadSingle, kOpMatchCtrlr, kOpInOutFlag };
+  /* ctrlr_name */
+  result_code =  mgrflist->ReadConfigDB(okey, dt_type, UNC_OP_READ,
+                                        dbop1, dmi, RENAMETBL);
+  if (( result_code != UPLL_RC_SUCCESS ) &&
+      (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
+    UPLL_LOG_DEBUG("ReadConfigDB fail");
     DELETE_IF_NOT_NULL(okey);
+    return UPLL_RC_ERR_GENERIC;
   }
-  //  flowlist_name
-  if (rename & FLOWLIST_RENAME_FLAG) {
-    UPLL_LOG_DEBUG("flowlist name renamed");
-    MoMgrImpl *mgrflist = static_cast<MoMgrImpl*>
-        ((const_cast<MoManager*> (GetMoManager(UNC_KT_FLOWLIST))));
-    if (mgrflist == NULL) {
-    UPLL_LOG_DEBUG("obj null");
-      return UPLL_RC_ERR_GENERIC;
-    }
-
-    result_code = mgrflist->GetChildConfigKey(okey, NULL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetChildConfigKey fail");
-      return result_code;
-    }
-    if (NULL != ctrlr_dom) {
-      SET_USER_DATA_CTRLR(okey, ctrlr_dom->ctrlr);
-    } else {
-      UPLL_LOG_DEBUG("ctrlr null");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
-    uuu::upll_strncpy(
-        reinterpret_cast<key_flowlist_t *>(okey->get_key())->flowlist_name,
-        reinterpret_cast<val_flowfilter_entry_t*>
-        (ikey->get_cfg_val()->get_val())->flowlist_name,
-        kMaxLenVnodeName + 1);
-    UPLL_LOG_DEBUG("flowlist name (%s) (%s)",
-        reinterpret_cast<key_flowlist_t *>(okey->get_key())->flowlist_name,
-        reinterpret_cast<val_flowfilter_entry_t*>
-        (ikey->get_cfg_val()->get_val())->flowlist_name);
-
-    DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutFlag };
-    /* ctrlr_name */
-    result_code =  mgrflist->ReadConfigDB(okey, dt_type, UNC_OP_READ,
-                                          dbop, dmi, RENAMETBL);
-    if ( result_code != UPLL_RC_SUCCESS ) {
-      UPLL_LOG_DEBUG("ReadConfigDB fail");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-    // NULL Checks Missing
-    val_rename_flowlist_t *rename_val =reinterpret_cast <val_rename_flowlist_t*>
+  if (UPLL_RC_SUCCESS == result_code) {
+    val_rename_flowlist_t *rename_val =
+        reinterpret_cast <val_rename_flowlist_t*>
         (GetVal(okey));
     if (!rename_val) {
       UPLL_LOG_DEBUG("flowlist is not valid");
@@ -2187,26 +1993,26 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::GetRenamedControllerKey(
         (ikey->get_cfg_val()->get_val())->flowlist_name,
         rename_val->flowlist_newname,
         (kMaxLenFlowListName + 1));
-    SET_USER_DATA_FLAGS(ikey, rename);
-    DELETE_IF_NOT_NULL(okey);
   }
+  DELETE_IF_NOT_NULL(okey);
+  UPLL_LOG_TRACE("End... Input ConfigKeyVal %s", ikey->ToStrAll().c_str());
   UPLL_LOG_DEBUG("Renamed Controller key is sucessfull.");
   return UPLL_RC_SUCCESS;
-#endif
 }
 
 upll_rc_t VbrIfFlowFilterEntryMoMgr::RenameMo(IpcReqRespHeader *req,
-                                         ConfigKeyVal *ikey, DalDmlIntf *dmi,
-                                         const char *ctrlr_id) {
+                                              ConfigKeyVal *ikey,
+                                              DalDmlIntf *dmi,
+                                              const char *ctrlr_id) {
   UPLL_FUNC_TRACE;
   UPLL_LOG_DEBUG("Implementation Not supported for this KT.");
   return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT;
 }
 
 upll_rc_t VbrIfFlowFilterEntryMoMgr::MergeValidate(unc_key_type_t keytype,
-    const char *ctrlr_id,
-    ConfigKeyVal *ikey,
-    DalDmlIntf *dmi) {
+                                                   const char *ctrlr_id,
+                                                   ConfigKeyVal *ikey,
+                                                   DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
@@ -2222,7 +2028,7 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::MergeValidate(unc_key_type_t keytype,
   }
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutNone};
   result_code = ReadConfigDB(ckval, UPLL_DT_IMPORT,
-              UNC_OP_READ, dbop, dmi, MAINTBL);
+                             UNC_OP_READ, dbop, dmi, MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     DELETE_IF_NOT_NULL(ckval);
     if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
@@ -2234,24 +2040,24 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::MergeValidate(unc_key_type_t keytype,
   ConfigKeyVal *first_ckv = ckval;
   while (NULL != ckval) {
     val_flowfilter_entry_t* val = reinterpret_cast<val_flowfilter_entry_t *>
-    (GetVal(ckval));
+        (GetVal(ckval));
     if ((val->valid[UPLL_IDX_REDIRECT_NODE_FFE] ==
-     UNC_VF_VALID) && 
-     (val->valid[UPLL_IDX_REDIRECT_PORT_FFE] ==
-     UNC_VF_VALID)) {
-       result_code = VerifyRedirectDestination(ckval, dmi, UPLL_DT_IMPORT);
-       if (result_code != UPLL_RC_SUCCESS) {
-          DELETE_IF_NOT_NULL(first_ckv);
-          UPLL_LOG_DEBUG("redirect-destination node/interface doesn't exists");
-          return UPLL_RC_ERR_MERGE_CONFLICT;
-       }
+         UNC_VF_VALID) &&
+        (val->valid[UPLL_IDX_REDIRECT_PORT_FFE] ==
+         UNC_VF_VALID)) {
+      result_code = VerifyRedirectDestination(ckval, dmi, UPLL_DT_IMPORT);
+      if (result_code != UPLL_RC_SUCCESS) {
+        DELETE_IF_NOT_NULL(first_ckv);
+        UPLL_LOG_DEBUG("redirect-destination node/interface doesn't exists");
+        return UPLL_RC_ERR_MERGE_CONFLICT;
+      }
     }
     ckval = ckval->get_next_cfg_key_val();
   }
   DELETE_IF_NOT_NULL(first_ckv);
   MoMgrImpl *mgr =
-    reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-            UNC_KT_VBRIF_FLOWFILTER)));
+      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                  UNC_KT_VBRIF_FLOWFILTER)));
   if (!mgr) {
     UPLL_LOG_DEBUG("Invalid mgr param");
     return UPLL_RC_ERR_GENERIC;
@@ -2263,27 +2069,29 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::MergeValidate(unc_key_type_t keytype,
 }
 
 upll_rc_t VbrIfFlowFilterEntryMoMgr::UpdateAuditConfigStatus(
-                              unc_keytype_configstatus_t cs_status,
-                              uuc::UpdateCtrlrPhase phase,
-                              ConfigKeyVal *&ckv_running) {
+    unc_keytype_configstatus_t cs_status,
+    uuc::UpdateCtrlrPhase phase,
+    ConfigKeyVal *&ckv_running,
+    DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_flowfilter_entry_t *val;
   val = (ckv_running != NULL)?reinterpret_cast<val_flowfilter_entry_t *>
-                              (GetVal(ckv_running)):NULL;
+      (GetVal(ckv_running)):NULL;
   if (NULL == val) {
     return UPLL_RC_ERR_GENERIC;
   }
   if (uuc::kUpllUcpCreate == phase )
     val->cs_row_status = cs_status;
   if ((uuc::kUpllUcpUpdate == phase) &&
-           (val->cs_row_status == UNC_CS_INVALID ||
-            val->cs_row_status == UNC_CS_NOT_APPLIED))
+      (val->cs_row_status == UNC_CS_INVALID ||
+       val->cs_row_status == UNC_CS_NOT_APPLIED))
     val->cs_row_status = cs_status;
   for ( unsigned int loop = 0;
-      loop < sizeof(val->valid)/sizeof(uint8_t); ++loop ) {
+       loop < sizeof(val->valid)/sizeof(uint8_t); ++loop ) {
     if ((cs_status == UNC_CS_INVALID && UNC_VF_VALID == val->valid[loop]) ||
-         cs_status == UNC_CS_APPLIED)
-       val->cs_attr[loop] = cs_status;
+        cs_status == UNC_CS_APPLIED)
+      val->cs_attr[loop] = cs_status;
   }
   UPLL_LOG_DEBUG("UpdateAuditConfigStatus::Success");
   return result_code;
@@ -2311,8 +2119,9 @@ bool VbrIfFlowFilterEntryMoMgr::IsValidKey(void *key,
       break;
     case uudst::vbr_if_flowfilter_entry::kDbiVbrName:
       ret_val = ValidateKey(reinterpret_cast<char *>
-                          (ff_key->flowfilter_key.if_key.vbr_key.vbridge_name),
-                          kMinLenVnodeName, kMaxLenVnodeName);
+                            (ff_key->
+                             flowfilter_key.if_key.vbr_key.vbridge_name),
+                            kMinLenVnodeName, kMaxLenVnodeName);
       if (ret_val != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("VBR Name is not valid(%d)", ret_val);
         return false;
@@ -2353,7 +2162,7 @@ bool VbrIfFlowFilterEntryMoMgr::IsValidKey(void *key,
         return false;
       }
       break;
-   default:
+    default:
       UPLL_LOG_DEBUG("Invalid Key Index");
       return false;
   }
@@ -2370,62 +2179,24 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::UpdateMo(IpcReqRespHeader *req,
   if (NULL == ikey && NULL == req) return UPLL_RC_ERR_GENERIC;
   result_code = ValidateMessage(req, ikey);
   if (UPLL_RC_SUCCESS != result_code)
-     return result_code;
+    return result_code;
 
-  result_code = ValidateVbrIfValStruct(req, ikey, dmi);
+  result_code = ValidateVbrIfValStruct(req, ikey);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("val structure validation failed-Err code(%d)",
-                    result_code);
+                   result_code);
     return result_code;
   }
 
-  /*
-  result_code= ValidateCapability(req, ikey);
-  if (UPLL_RC_SUCCESS != result_code)
-     return result_code;
-  */
-  result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_READ, dmi, MAINTBL);
-
-  if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code)
-     return result_code;
   result_code = ValidateAttribute(ikey, dmi, req);
   if (UPLL_RC_SUCCESS != result_code)
-     return result_code;
+    return result_code;
   // Check and update the flowlist reference count if the flowlist object
   // is referred
   FlowListMoMgr *flowlist_mgr = reinterpret_cast<FlowListMoMgr *>
       (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
   val_flowfilter_entry_t *flowfilter_val =
-    reinterpret_cast<val_flowfilter_entry_t *> (GetVal(ikey));
-  if (UNC_VF_VALID == flowfilter_val->valid[UPLL_IDX_FLOWLIST_NAME_FFE]) {
-    // Check Flowlist object exist or not
-    result_code = flowlist_mgr->GetChildConfigKey(okey, NULL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Recored %d", result_code);
-      return result_code;
-    }
-    key_flowlist_t *key_flowlist = reinterpret_cast<key_flowlist_t*>
-      (okey->get_key());
-    uuu::upll_strncpy(key_flowlist->flowlist_name,
-        flowfilter_val->flowlist_name,
-        (kMaxLenFlowListName +1));
-    result_code = flowlist_mgr->UpdateConfigDB(okey, req->datatype,
-                  UNC_OP_READ, dmi, MAINTBL);
-    if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-      UPLL_LOG_DEBUG("Given FlowList does not exists %d", result_code);
-      delete okey;
-      return result_code;
-    } else if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
-      UPLL_LOG_DEBUG("Instance  Available");
-    } else if (result_code != UPLL_RC_SUCCESS) {
-      delete okey;
-      UPLL_LOG_DEBUG("Error Accesing CANDIDATE DB (%d)", result_code);
-      return result_code;
-    }
-    delete okey;
-    okey = NULL;
-  }
-
+      reinterpret_cast<val_flowfilter_entry_t *> (GetVal(ikey));
   // Get controller id to do capa check
   result_code = GetChildConfigKey(okey, ikey);
   if (UPLL_RC_SUCCESS != result_code) {
@@ -2433,9 +2204,9 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::UpdateMo(IpcReqRespHeader *req,
     return result_code;
   }
   DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
-                   kOpInOutCtrlr|kOpInOutDomain|kOpInOutFlag };
+    kOpInOutCtrlr|kOpInOutDomain|kOpInOutFlag };
   result_code = ReadConfigDB(okey, UPLL_DT_CANDIDATE, UNC_OP_READ, dbop, dmi,
-        MAINTBL);
+                             MAINTBL);
 
   if (UPLL_RC_SUCCESS != result_code) {
     delete okey;
@@ -2445,11 +2216,11 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::UpdateMo(IpcReqRespHeader *req,
 
   GET_USER_DATA_CTRLR(okey, ctrlr_id);
   result_code= ValidateCapability(req, ikey,
-                   reinterpret_cast<const char*>(ctrlr_id));
+                                  reinterpret_cast<const char*>(ctrlr_id));
   if (UPLL_RC_SUCCESS != result_code) {
-     delete okey;
-     UPLL_LOG_DEBUG("ValidateCapability failed %d", result_code);
-     return result_code;
+    delete okey;
+    UPLL_LOG_DEBUG("ValidateCapability failed %d", result_code);
+    return result_code;
   }
 
   uint8_t dbflag = 0;
@@ -2457,65 +2228,66 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::UpdateMo(IpcReqRespHeader *req,
   if (UNC_VF_VALID == flowfilter_val->valid[UPLL_IDX_FLOWLIST_NAME_FFE] ||
       UNC_VF_VALID_NO_VALUE == flowfilter_val->
       valid[UPLL_IDX_FLOWLIST_NAME_FFE]) {
-      if ((dbflag & SET_FLAG_VLINK) || (dbflag & SET_FLAG_PORTMAP)) {
-        val_flowfilter_entry_t *temp_ffe_val = reinterpret_cast
-        <val_flowfilter_entry_t *>(GetVal(okey));
-        UPLL_LOG_DEBUG("flowlist name %s", flowfilter_val->flowlist_name);
-        if ((UNC_VF_VALID == flowfilter_val->valid[UPLL_IDX_FLOWLIST_NAME_VFFE])
-            && (UNC_VF_VALID  == temp_ffe_val->
-          valid[UPLL_IDX_FLOWLIST_NAME_VFFE])) {
-          UPLL_LOG_DEBUG("Update option 1");
-          result_code = flowlist_mgr->AddFlowListToController(
+    if ((dbflag & SET_FLAG_VLINK) || (dbflag & SET_FLAG_PORTMAP)) {
+      val_flowfilter_entry_t *temp_ffe_val = reinterpret_cast
+          <val_flowfilter_entry_t *>(GetVal(okey));
+      UPLL_LOG_DEBUG("flowlist name %s", flowfilter_val->flowlist_name);
+      if ((UNC_VF_VALID == flowfilter_val->valid[UPLL_IDX_FLOWLIST_NAME_VFFE])
+          && (UNC_VF_VALID  == temp_ffe_val->
+              valid[UPLL_IDX_FLOWLIST_NAME_VFFE])) {
+        UPLL_LOG_DEBUG("Update option 1");
+        result_code = flowlist_mgr->AddFlowListToController(
             reinterpret_cast<char *>(temp_ffe_val->flowlist_name), dmi,
             reinterpret_cast<char *>(ctrlr_id), req->datatype, UNC_OP_DELETE);
-          if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("AddFlowListToController failed %d", result_code);
-            delete okey;
-            return result_code;
-          }
-          result_code = flowlist_mgr->AddFlowListToController(
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("AddFlowListToController failed %d", result_code);
+          delete okey;
+          return result_code;
+        }
+        result_code = flowlist_mgr->AddFlowListToController(
             reinterpret_cast<char *>(flowfilter_val->flowlist_name), dmi,
             reinterpret_cast<char *> (ctrlr_id), req->datatype, UNC_OP_CREATE);
-          if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("AddFlowListToController failed %d", result_code);
-            delete okey;
-            return result_code;
-          }
-        } else if (UNC_VF_VALID == flowfilter_val->
-          valid[UPLL_IDX_FLOWLIST_NAME_VFFE] &&
-          (UNC_VF_INVALID == temp_ffe_val->
-           valid[UPLL_IDX_FLOWLIST_NAME_VFFE] || UNC_VF_VALID_NO_VALUE ==
-           temp_ffe_val->valid[UPLL_IDX_FLOWLIST_NAME_VFFE])) {
-            UPLL_LOG_DEBUG("Update option 2");
-            result_code = flowlist_mgr->AddFlowListToController(
-              reinterpret_cast<char *>(flowfilter_val->flowlist_name), dmi,
-              reinterpret_cast<char *>(ctrlr_id),
-                              req->datatype, UNC_OP_CREATE);
-            if (result_code != UPLL_RC_SUCCESS) {
-              UPLL_LOG_DEBUG("AddFlowListToController failed %d", result_code);
-              delete okey;
-              return result_code;
-            }
-        } else if (UNC_VF_VALID_NO_VALUE == flowfilter_val->
-            valid[UPLL_IDX_FLOWLIST_NAME_VFFE] &&
-            UNC_VF_VALID == temp_ffe_val->
-            valid[UPLL_IDX_FLOWLIST_NAME_VFFE]) {
-              UPLL_LOG_DEBUG("Update option 3");
-              result_code = flowlist_mgr->AddFlowListToController(
-              reinterpret_cast<char *>(temp_ffe_val->flowlist_name), dmi,
-              reinterpret_cast<char *>(ctrlr_id) ,
-                              req->datatype, UNC_OP_DELETE);
-              if (result_code != UPLL_RC_SUCCESS) {
-                UPLL_LOG_DEBUG("AddFlowListToController failed %d",
-                                result_code);
-                delete okey;
-                return result_code;
-              }
-          }
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("AddFlowListToController failed %d", result_code);
+          delete okey;
+          return result_code;
+        }
+      } else if (UNC_VF_VALID == flowfilter_val->
+                 valid[UPLL_IDX_FLOWLIST_NAME_VFFE] &&
+                 (UNC_VF_INVALID == temp_ffe_val->
+                  valid[UPLL_IDX_FLOWLIST_NAME_VFFE] ||
+                  UNC_VF_VALID_NO_VALUE ==
+                  temp_ffe_val->valid[UPLL_IDX_FLOWLIST_NAME_VFFE])) {
+        UPLL_LOG_DEBUG("Update option 2");
+        result_code = flowlist_mgr->AddFlowListToController(
+            reinterpret_cast<char *>(flowfilter_val->flowlist_name), dmi,
+            reinterpret_cast<char *>(ctrlr_id),
+            req->datatype, UNC_OP_CREATE);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("AddFlowListToController failed %d", result_code);
+          delete okey;
+          return result_code;
+        }
+      } else if (UNC_VF_VALID_NO_VALUE == flowfilter_val->
+                 valid[UPLL_IDX_FLOWLIST_NAME_VFFE] &&
+                 UNC_VF_VALID == temp_ffe_val->
+                 valid[UPLL_IDX_FLOWLIST_NAME_VFFE]) {
+        UPLL_LOG_DEBUG("Update option 3");
+        result_code = flowlist_mgr->AddFlowListToController(
+            reinterpret_cast<char *>(temp_ffe_val->flowlist_name), dmi,
+            reinterpret_cast<char *>(ctrlr_id) ,
+            req->datatype, UNC_OP_DELETE);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("AddFlowListToController failed %d",
+                         result_code);
+          delete okey;
+          return result_code;
         }
+      }
+    }
   }
 
-  DbSubOp dbop1 = {kOpNotRead, kOpMatchNone, kOpInOutFlag};
+  DbSubOp dbop1 = {kOpNotRead, kOpMatchNone, kOpInOutNone};
   result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_UPDATE, dmi,
                                &dbop1, MAINTBL);
 
@@ -2529,17 +2301,17 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::UpdateMo(IpcReqRespHeader *req,
 
 #if 0
 upll_rc_t VbrIfFlowFilterEntryMoMgr::UpdateConfigStatus(
-  ConfigKeyVal *key, unc_keytype_operation_t op, uint32_t driver_result,
-  ConfigKeyVal *upd_key, DalDmlIntf *dmi, ConfigKeyVal *ctrlr_key) {
+    ConfigKeyVal *key, unc_keytype_operation_t op, uint32_t driver_result,
+    ConfigKeyVal *upd_key, DalDmlIntf *dmi, ConfigKeyVal *ctrlr_key) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_flowfilter_entry_t *vbrflowfilter_entry_val = NULL;
   // val_vbr_st *val_vbrst;
 
   unc_keytype_configstatus_t cs_status =
-    (driver_result == 0) ? UNC_CS_APPLIED : UNC_CS_NOT_APPLIED;
+      (driver_result == 0) ? UNC_CS_APPLIED : UNC_CS_NOT_APPLIED;
   vbrflowfilter_entry_val =reinterpret_cast <val_flowfilter_entry_t*>
-                                  (GetVal(key));
+      (GetVal(key));
   if (vbrflowfilter_entry_val == NULL) {
     UPLL_LOG_DEBUG("vrtif_flowfilter_entry_val is Null");
     return UPLL_RC_ERR_GENERIC;
@@ -2549,23 +2321,23 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::UpdateConfigStatus(
 
   if (op == UNC_OP_CREATE) {
     for (unsigned int loop = 0;
-       loop < sizeof(vbrflowfilter_entry_val->valid); ++loop) {
-       if ((UNC_VF_VALID == vbrflowfilter_entry_val->valid[loop])
-        || (UNC_VF_VALID_NO_VALUE == vbrflowfilter_entry_val->valid[loop]))
-         if (vbrflowfilter_entry_val->cs_attr[loop] != UNC_CS_NOT_SUPPORTED)
-           vbrflowfilter_entry_val->cs_attr[loop] =
-                vbrflowfilter_entry_val->cs_row_status;
-       }
+         loop < sizeof(vbrflowfilter_entry_val->valid); ++loop) {
+      if ((UNC_VF_VALID == vbrflowfilter_entry_val->valid[loop])
+          || (UNC_VF_VALID_NO_VALUE == vbrflowfilter_entry_val->valid[loop]))
+        if (vbrflowfilter_entry_val->cs_attr[loop] != UNC_CS_NOT_SUPPORTED)
+          vbrflowfilter_entry_val->cs_attr[loop] =
+              vbrflowfilter_entry_val->cs_row_status;
+    }
   } else if (op == UNC_OP_UPDATE) {
     void *val =  reinterpret_cast<void *>(vbrflowfilter_entry_val);
     CompareValidValue(val, GetVal(upd_key), true);
     for (unsigned int loop = 0;
-      loop < sizeof(vbrflowfilter_entry_val->valid); ++loop) {
-     if (vbrflowfilter_entry_val->cs_attr[loop] != UNC_CS_NOT_SUPPORTED)
-       if ((UNC_VF_VALID == vbrflowfilter_entry_val->valid[loop])
-          || (UNC_VF_VALID_NO_VALUE == vbrflowfilter_entry_val->valid[loop]))
-         vbrflowfilter_entry_val->cs_attr[loop] =
-         vbrflowfilter_entry_val->cs_row_status;
+         loop < sizeof(vbrflowfilter_entry_val->valid); ++loop) {
+      if (vbrflowfilter_entry_val->cs_attr[loop] != UNC_CS_NOT_SUPPORTED)
+        if ((UNC_VF_VALID == vbrflowfilter_entry_val->valid[loop])
+            || (UNC_VF_VALID_NO_VALUE == vbrflowfilter_entry_val->valid[loop]))
+          vbrflowfilter_entry_val->cs_attr[loop] =
+              vbrflowfilter_entry_val->cs_row_status;
     }
   } else {
     UPLL_LOG_DEBUG("Operation Not Supported.");
@@ -2587,22 +2359,22 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::AllocVal(ConfigVal *&ck_val,
     return UPLL_RC_ERR_GENERIC;
   }
   switch (tbl) {
-  case MAINTBL:
-    val = reinterpret_cast <void *>
-        (ConfigKeyVal::Malloc(sizeof(val_flowfilter_entry_t)));
-    ck_val = new ConfigVal(IpctSt::kIpcStValFlowfilterEntry, val);
-    break;
-  default:
-    val = NULL;
-    return UPLL_RC_ERR_GENERIC;
+    case MAINTBL:
+      val = reinterpret_cast <void *>
+          (ConfigKeyVal::Malloc(sizeof(val_flowfilter_entry_t)));
+      ck_val = new ConfigVal(IpctSt::kIpcStValFlowfilterEntry, val);
+      break;
+    default:
+      val = NULL;
+      return UPLL_RC_ERR_GENERIC;
   }
   UPLL_LOG_DEBUG("AllocVal Success");
   return UPLL_RC_SUCCESS;
 }
 /*Return result of validation*/
 upll_rc_t VbrIfFlowFilterEntryMoMgr::TxVote(unc_key_type_t keytype,
-                            DalDmlIntf *dmi,
-                            ConfigKeyVal **err_ckv) {
+                                            DalDmlIntf *dmi,
+                                            ConfigKeyVal **err_ckv) {
   UPLL_FUNC_TRACE;
   ConfigKeyVal *req = NULL, *nreq = NULL;
   DalResultCode db_result;
@@ -2613,32 +2385,41 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::TxVote(unc_key_type_t keytype,
   // uint8_t *ctrlr_id = NULL;
 
   for (int i = 0; i < nop; i++) {
+    cfg1_cursor = NULL;
     result_code = DiffConfigDB(UPLL_DT_CANDIDATE, UPLL_DT_RUNNING, op[i], req,
                                nreq, &cfg1_cursor, dmi, MAINTBL);
+    if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+      result_code = UPLL_RC_SUCCESS;
+      UPLL_LOG_DEBUG("No more diff found for operation %d", op[i]);
+      DELETE_IF_NOT_NULL(req);
+      DELETE_IF_NOT_NULL(nreq);
+      continue;
+    }
     while (result_code == UPLL_RC_SUCCESS) {
       db_result = dmi->GetNextRecord(cfg1_cursor);
       result_code = DalToUpllResCode(db_result);
       if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
         result_code = UPLL_RC_SUCCESS;
-        UPLL_LOG_DEBUG("No diff found for op %d", op[i]);
+        UPLL_LOG_DEBUG("No more diff found for operation %d", op[i]);
         break;
       }
       val_flowfilter_entry_t* val = reinterpret_cast<val_flowfilter_entry_t *>
-        (GetVal(req));
+          (GetVal(req));
       if ((val->valid[UPLL_IDX_REDIRECT_NODE_FFE] ==
-          UNC_VF_VALID) && 
+           UNC_VF_VALID) &&
           (val->valid[UPLL_IDX_REDIRECT_PORT_FFE] ==
-          UNC_VF_VALID)) {
-          result_code = VerifyRedirectDestination(req, dmi,
-                                                  UPLL_DT_CANDIDATE);
-            if (result_code != UPLL_RC_SUCCESS) {
-              UPLL_LOG_DEBUG("Invalid redirect-destination node/interface");
-              *err_ckv = req;
-              DELETE_IF_NOT_NULL(nreq);
-              dmi->CloseCursor(cfg1_cursor, true);
-              return result_code;
-            }
+           UNC_VF_VALID)) {
+        result_code = VerifyRedirectDestination(req, dmi,
+                                                UPLL_DT_CANDIDATE);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("Invalid redirect-destination node/interface");
+          DEL_USER_DATA(req);  // Delete the controller and domain from req
+          *err_ckv = req;
+          DELETE_IF_NOT_NULL(nreq);
+          dmi->CloseCursor(cfg1_cursor, true);
+          return result_code;
         }
+      }
     }
     dmi->CloseCursor(cfg1_cursor, true);
     if (req) delete req;
@@ -2663,15 +2444,15 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::VerifyRedirectDestination(
   controller_domain ctrlr_dom;
   memset(&ctrlr_dom, 0, sizeof(controller_domain));
   key_vbr_if_flowfilter_entry_t *key_vbrif_ffe =
-    reinterpret_cast<key_vbr_if_flowfilter_entry_t *>(ikey->get_key());
+      reinterpret_cast<key_vbr_if_flowfilter_entry_t *>(ikey->get_key());
 
   /* read val_vtn_flowfilter_entry from ikey*/
   val_flowfilter_entry_t *val_flowfilter_entry =
-    static_cast<val_flowfilter_entry_t *>(
-        ikey->get_cfg_val()->get_val());
+      static_cast<val_flowfilter_entry_t *>(
+          ikey->get_cfg_val()->get_val());
   // Symentic Validation for redirect destination
   if ((val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_NODE_FFE] ==
-        UNC_VF_VALID) &&
+       UNC_VF_VALID) &&
       (val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_PORT_FFE] ==
        UNC_VF_VALID)) {
     DbSubOp dbop_up = { kOpReadExist, kOpMatchCtrlr|kOpMatchDomain,
@@ -2679,17 +2460,17 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::VerifyRedirectDestination(
     result_code = GetControllerDomainID(ikey, dt_type, dmi);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Failed to Get the Controller Domain details, err:%d",
-          result_code);
+                     result_code);
     }
 
     GET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
 
     UPLL_LOG_DEBUG("ctrlrid %s, domainid %s",
-        ctrlr_dom.ctrlr, ctrlr_dom.domain);
+                   ctrlr_dom.ctrlr, ctrlr_dom.domain);
     // Verify whether the vtnnode and interface are exists in DB
     // 1. Check for the vbridge Node
     mgr = reinterpret_cast<MoMgrImpl *>
-      (const_cast<MoManager *>(GetMoManager(UNC_KT_VBR_IF)));
+        (const_cast<MoManager *>(GetMoManager(UNC_KT_VBR_IF)));
     if (NULL == mgr) {
       UPLL_LOG_DEBUG("Unable to get VBRIDGE Interface object");
       return UPLL_RC_ERR_GENERIC;
@@ -2697,41 +2478,42 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::VerifyRedirectDestination(
     result_code = mgr->GetChildConfigKey(okey, NULL);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Memory allocation failed for VBRIDGE key struct - %d",
-          result_code);
+                     result_code);
       return result_code;
     }
     key_vbr_if_t *vbrif_key = static_cast<key_vbr_if_t*>(
         okey->get_key());
     uuu::upll_strncpy(vbrif_key->vbr_key.vtn_key.vtn_name,
-        key_vbrif_ffe->flowfilter_key.if_key.vbr_key.vtn_key.vtn_name,
-        kMaxLenVtnName + 1);
+                      key_vbrif_ffe->
+                      flowfilter_key.if_key.vbr_key.vtn_key.vtn_name,
+                      kMaxLenVtnName + 1);
 
     uuu::upll_strncpy(vbrif_key->vbr_key.vbridge_name,
-        reinterpret_cast<char *>
-        (val_flowfilter_entry->redirect_node),
-        (kMaxLenVnodeName + 1));
+                      reinterpret_cast<char *>
+                      (val_flowfilter_entry->redirect_node),
+                      (kMaxLenVnodeName + 1));
     uuu::upll_strncpy(vbrif_key->if_name,
-        reinterpret_cast<char *>
-        (val_flowfilter_entry->redirect_port),
-        kMaxLenInterfaceName + 1);
+                      reinterpret_cast<char *>
+                      (val_flowfilter_entry->redirect_port),
+                      kMaxLenInterfaceName + 1);
 
     /* Check vtnnode and interface exists in table*/
 
     SET_USER_DATA_CTRLR_DOMAIN(okey, ctrlr_dom);
 
     result_code = mgr->UpdateConfigDB(okey, dt_type,
-        UNC_OP_READ, dmi, &dbop_up, MAINTBL);
+                                      UNC_OP_READ, dmi, &dbop_up, MAINTBL);
 
     if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code) {
       UPLL_LOG_DEBUG("vtn node/interface in val_flowfilter_entry  exists"
-          "in DB");
+                     "in DB");
     } else if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
       DELETE_IF_NOT_NULL(okey);
       // 2. Check for Vrouter Node
 
       // Verify whether the vtnnode and interface are exists in DB
       mgr = reinterpret_cast<MoMgrImpl *>
-        (const_cast<MoManager *>(GetMoManager(UNC_KT_VRT_IF)));
+          (const_cast<MoManager *>(GetMoManager(UNC_KT_VRT_IF)));
       if (NULL == mgr) {
         UPLL_LOG_DEBUG("Unable to get VROUTER Interface object");
         return UPLL_RC_ERR_GENERIC;
@@ -2739,40 +2521,41 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::VerifyRedirectDestination(
       result_code = mgr->GetChildConfigKey(okey, NULL);
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("Memory allocation failed for VROUTER key struct - %d",
-            result_code);
+                       result_code);
         return result_code;
       }
       key_vrt_if_t *vrtif_key = static_cast<key_vrt_if_t*>(
           okey->get_key());
       uuu::upll_strncpy(vrtif_key->vrt_key.vtn_key.vtn_name,
-          key_vbrif_ffe->flowfilter_key.if_key.vbr_key.vtn_key.vtn_name,
-          kMaxLenVtnName + 1);
+                        key_vbrif_ffe->
+                        flowfilter_key.if_key.vbr_key.vtn_key.vtn_name,
+                        kMaxLenVtnName + 1);
 
       uuu::upll_strncpy(vrtif_key->vrt_key.vrouter_name,
-          reinterpret_cast<char *>
-          (val_flowfilter_entry->redirect_node),
-          (kMaxLenVnodeName + 1));
+                        reinterpret_cast<char *>
+                        (val_flowfilter_entry->redirect_node),
+                        (kMaxLenVnodeName + 1));
       uuu::upll_strncpy(vrtif_key->if_name,
-          reinterpret_cast<char *>
-          (val_flowfilter_entry->redirect_port),
-          kMaxLenInterfaceName + 1);
+                        reinterpret_cast<char *>
+                        (val_flowfilter_entry->redirect_port),
+                        kMaxLenInterfaceName + 1);
 
       UPLL_LOG_DEBUG("ctrlrid %s, domainid %s",
-          ctrlr_dom.ctrlr, ctrlr_dom.domain);
+                     ctrlr_dom.ctrlr, ctrlr_dom.domain);
       SET_USER_DATA_CTRLR_DOMAIN(okey, ctrlr_dom);
       /* Check vtnnode and interface exists in table*/
       result_code = mgr->UpdateConfigDB(okey, dt_type,
-          UNC_OP_READ, dmi, &dbop_up, MAINTBL);
+                                        UNC_OP_READ, dmi, &dbop_up, MAINTBL);
       if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
         UPLL_LOG_DEBUG("vtn node/interface in val struct does not exists"
-            "in DB");
+                       "in DB");
         DELETE_IF_NOT_NULL(okey);
         return UPLL_RC_ERR_CFG_SEMANTIC;
       }
     }
     result_code =
-      (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) ? UPLL_RC_SUCCESS :
-      result_code;
+        (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) ? UPLL_RC_SUCCESS :
+        result_code;
     DELETE_IF_NOT_NULL(okey);
   }  // end of Symentic Validation
   return result_code;
@@ -2788,104 +2571,66 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
     UPLL_LOG_DEBUG("input key is null");
     return UPLL_RC_ERR_GENERIC;
   }
+  MoMgrImpl *mgr = NULL;
   key_vbr_if_flowfilter_entry_t *key_vbrif_ffe =
       reinterpret_cast<key_vbr_if_flowfilter_entry_t *>(ikey->get_key());
-  MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>
-      (const_cast<MoManager *>(GetMoManager(UNC_KT_VBRIF_FLOWFILTER)));
-
-  result_code = mgr->GetChildConfigKey(okey, NULL);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("GetChildConfigkey failed - %d", result_code);
-    return result_code;
-  }
-
-  key_vbr_if_flowfilter_t *vbrif_ff_key =
-      reinterpret_cast<key_vbr_if_flowfilter_t *>(okey->get_key());
-
-  uuu::upll_strncpy(vbrif_ff_key->if_key.vbr_key.vtn_key.vtn_name,
-        key_vbrif_ffe->flowfilter_key.if_key.vbr_key.vtn_key.vtn_name,
-        kMaxLenVtnName + 1);
-
-  uuu::upll_strncpy(vbrif_ff_key->if_key.vbr_key.vbridge_name,
-        key_vbrif_ffe->flowfilter_key.if_key.vbr_key.vbridge_name,
-        kMaxLenVnodeName + 1);
-
-  uuu::upll_strncpy(vbrif_ff_key->if_key.if_name,
-        key_vbrif_ffe->flowfilter_key.if_key.if_name,
-        kMaxLenInterfaceName + 1);
-
-  vbrif_ff_key->direction = key_vbrif_ffe->flowfilter_key.direction;
-
-  /* Checks the given vbr_if_flowfilter exists or not */
-  result_code = mgr->UpdateConfigDB(okey, req->datatype, UNC_OP_READ,
-                                    dmi, MAINTBL);
-  if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
-    UPLL_LOG_DEBUG(" Parent VBR_IF_FLOWFILTER key does not exists");
-    delete okey;
-    okey = NULL;
-    return UPLL_RC_ERR_PARENT_DOES_NOT_EXIST;
-  } else {
-    result_code = UPLL_RC_SUCCESS;
-  }
-
-  delete okey;
-  okey = NULL;
 
   /* read val_vtn_flowfilter_entry from ikey*/
   val_flowfilter_entry_t *val_flowfilter_entry =
-    static_cast<val_flowfilter_entry_t *>(
-        ikey->get_cfg_val()->get_val());
+      static_cast<val_flowfilter_entry_t *>(
+          ikey->get_cfg_val()->get_val());
   if (val_flowfilter_entry->valid[UPLL_IDX_FLOWLIST_NAME_FFE]
-        == UNC_VF_VALID) {
-  /* validate flowlist_name in val_flowfilter_entry exists in FLOWLIST table*/
-  mgr = reinterpret_cast<MoMgrImpl *>
-      (const_cast<MoManager *>(GetMoManager(UNC_KT_FLOWLIST)));
+      == UNC_VF_VALID) {
+    /* validate flowlist_name in val_flowfilter_entry exists
+     * in FLOWLIST table*/
+    mgr = reinterpret_cast<MoMgrImpl *>
+        (const_cast<MoManager *>(GetMoManager(UNC_KT_FLOWLIST)));
 
-  if (NULL == mgr) {
-    UPLL_LOG_DEBUG("Unable to get FLOWLIST object");
-    return UPLL_RC_ERR_GENERIC;
-  }
+    if (NULL == mgr) {
+      UPLL_LOG_DEBUG("Unable to get FLOWLIST object");
+      return UPLL_RC_ERR_GENERIC;
+    }
 
-  /** allocate memory for FLOWLIST key_struct */
-  result_code = mgr->GetChildConfigKey(okey, NULL);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Memory allocation failed for FLOWLIST key struct - %d",
-                    result_code);
-    return result_code;
-  }
+    /** allocate memory for FLOWLIST key_struct */
+    result_code = mgr->GetChildConfigKey(okey, NULL);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("Memory allocation failed for FLOWLIST key struct - %d",
+                     result_code);
+      return result_code;
+    }
 
-  /** fill key_flowlist_t from val_flowfilter_entry*/
-  key_flowlist_t *key_flowlist = static_cast<key_flowlist_t*>(
-    okey->get_key());
-  uuu::upll_strncpy(key_flowlist->flowlist_name,
-    val_flowfilter_entry->flowlist_name,
-    kMaxLenFlowListName+1);
+    /** fill key_flowlist_t from val_flowfilter_entry*/
+    key_flowlist_t *key_flowlist = static_cast<key_flowlist_t*>(
+        okey->get_key());
+    uuu::upll_strncpy(key_flowlist->flowlist_name,
+                      val_flowfilter_entry->flowlist_name,
+                      kMaxLenFlowListName+1);
 
-  UPLL_LOG_TRACE("Flowlist name in val_flowfilter_entry %s data type (%d)",
-                 key_flowlist->flowlist_name, req->datatype);
+    UPLL_LOG_TRACE("Flowlist name in val_flowfilter_entry %s data type (%d)",
+                   key_flowlist->flowlist_name, req->datatype);
 
-  /* Check flowlist_name exists in table*/
-  result_code = mgr->UpdateConfigDB(okey, req->datatype,
-                                     UNC_OP_READ, dmi, MAINTBL);
+    /* Check flowlist_name exists in table*/
+    result_code = mgr->UpdateConfigDB(okey, req->datatype,
+                                      UNC_OP_READ, dmi, MAINTBL);
+
+    if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
+      UPLL_LOG_DEBUG("Flowlist name in val_flowfilter_entry does not exists"
+                     "in FLOWLIST table result code (%d)", result_code);
+      delete okey;
+      okey = NULL;
+      return UPLL_RC_ERR_CFG_SEMANTIC;
+    } else {
+      result_code = UPLL_RC_SUCCESS;
+    }
 
-  if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
-    UPLL_LOG_DEBUG("Flowlist name in val_flowfilter_entry does not exists"
-                   "in FLOWLIST table result code (%d)", result_code);
     delete okey;
     okey = NULL;
-    return UPLL_RC_ERR_CFG_SEMANTIC;
-  } else {
-    result_code = UPLL_RC_SUCCESS;
-  }
-
-  delete okey;
-  okey = NULL;
   }
   if (val_flowfilter_entry->valid[UPLL_IDX_NWM_NAME_FFE]
-        == UNC_VF_VALID) {
+      == UNC_VF_VALID) {
     // validate nwm_name in KT_VBR_NWMONITOR table*/
     mgr = reinterpret_cast<MoMgrImpl *>
-       (const_cast<MoManager *>(GetMoManager(UNC_KT_VBR_NWMONITOR)));
+        (const_cast<MoManager *>(GetMoManager(UNC_KT_VBR_NWMONITOR)));
 
     if (NULL == mgr) {
       UPLL_LOG_DEBUG("Unable to get KT_VBR_NWMONITOR object");
@@ -2896,25 +2641,22 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
     result_code = mgr->GetChildConfigKey(okey, NULL);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Memory allocation failed for key_nwm struct - %d",
-                    result_code);
+                     result_code);
       return result_code;
     }
 
     /** fill key_nwm from key/val VBRIF_FLOWFILTER_ENTRY structs*/
     key_nwm_t *key_nwm = static_cast<key_nwm_t*>(
-      okey->get_key());
+        okey->get_key());
 
     uuu::upll_strncpy(key_nwm->nwmonitor_name,
-      val_flowfilter_entry->nwm_name,
-      kMaxLenVnodeName+1);
+                      val_flowfilter_entry->nwm_name,
+                      kMaxLenVnodeName+1);
 
     uuu::upll_strncpy(key_nwm->vbr_key.vtn_key.vtn_name,
-      key_vbrif_ffe->flowfilter_key.if_key.vbr_key.vtn_key.vtn_name,
-      kMaxLenVtnName+1);
-
-    uuu::upll_strncpy(key_nwm->vbr_key.vbridge_name,
-      key_vbrif_ffe->flowfilter_key.if_key.vbr_key.vbridge_name,
-      kMaxLenVnodeName+1);
+                      key_vbrif_ffe->
+                      flowfilter_key.if_key.vbr_key.vtn_key.vtn_name,
+                      kMaxLenVtnName+1);
 
     /* Check nwm_name exists in table*/
     result_code = mgr->UpdateConfigDB(okey, req->datatype, UNC_OP_READ,
@@ -2922,7 +2664,7 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
 
     if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
       UPLL_LOG_DEBUG("NWM name in val_flowfilter_entry does not exists"
-                   "in KT_VBR_NWMONITOR table");
+                     "in KT_VBR_NWMONITOR table");
       delete okey;
       okey = NULL;
       return UPLL_RC_ERR_CFG_SEMANTIC;
@@ -2933,18 +2675,14 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
     delete okey;
     okey = NULL;
   }  // nwm_name is valid
-  result_code = SetRenameFlag(ikey, dmi, req);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("SetRenameFlag failed %d", result_code);
-    return result_code;
-  }
   UPLL_LOG_DEBUG("ValidateAttribute Successfull.");
   return result_code;
 }
 
-upll_rc_t VbrIfFlowFilterEntryMoMgr::IsReferenced(ConfigKeyVal *ikey,
-                                           upll_keytype_datatype_t dt_type,
-                                           DalDmlIntf *dmi) {
+upll_rc_t VbrIfFlowFilterEntryMoMgr::IsReferenced(
+    ConfigKeyVal *ikey,
+    upll_keytype_datatype_t dt_type,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   if (NULL == ikey) return UPLL_RC_ERR_GENERIC;
@@ -2955,13 +2693,13 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::IsReferenced(ConfigKeyVal *ikey,
 }
 
 upll_rc_t VbrIfFlowFilterEntryMoMgr::GetValid(void *val, uint64_t indx,
-                                            uint8_t *&valid,
-                                            upll_keytype_datatype_t dt_type,
-                                            MoMgrTables tbl) {
+                                              uint8_t *&valid,
+                                              upll_keytype_datatype_t dt_type,
+                                              MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
   if (val == NULL) {
     UPLL_LOG_DEBUG("Memory is not Allocated");
-     return UPLL_RC_ERR_GENERIC;
+    return UPLL_RC_ERR_GENERIC;
   }
 
   if (tbl != MAINTBL) {
@@ -2969,38 +2707,38 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::GetValid(void *val, uint64_t indx,
   }
 
   val_flowfilter_entry_t *val_ffe = reinterpret_cast<val_flowfilter_entry_t *>
-                                    (val);
+      (val);
 
   switch (indx) {
     case uudst::vbr_if_flowfilter_entry::kDbiFlowlistName:
-       valid = &val_ffe->valid[UPLL_IDX_FLOWLIST_NAME_FFE];
-       break;
+      valid = &val_ffe->valid[UPLL_IDX_FLOWLIST_NAME_FFE];
+      break;
     case uudst::vbr_if_flowfilter_entry::kDbiAction:
       valid = &val_ffe->valid[UPLL_IDX_ACTION_FFE];
-       break;
+      break;
     case uudst::vbr_if_flowfilter_entry::kDbiRedirectNode:
-        valid = &val_ffe->valid[UPLL_IDX_REDIRECT_NODE_FFE];
-       break;
+      valid = &val_ffe->valid[UPLL_IDX_REDIRECT_NODE_FFE];
+      break;
     case uudst::vbr_if_flowfilter_entry::kDbiRedirectPort:
-       valid = &val_ffe->valid[UPLL_IDX_REDIRECT_PORT_FFE];
-       break;
+      valid = &val_ffe->valid[UPLL_IDX_REDIRECT_PORT_FFE];
+      break;
     case uudst::vbr_if_flowfilter_entry::kDbiModifyDstMac:
-        valid = &val_ffe->valid[UPLL_IDX_MODIFY_DST_MAC_FFE];
-        break;
+      valid = &val_ffe->valid[UPLL_IDX_MODIFY_DST_MAC_FFE];
+      break;
     case uudst::vbr_if_flowfilter_entry::kDbiModifySrcMac:
-        valid = &val_ffe->valid[UPLL_IDX_MODIFY_SRC_MAC_FFE];
-        break;
+      valid = &val_ffe->valid[UPLL_IDX_MODIFY_SRC_MAC_FFE];
+      break;
     case uudst::vbr_if_flowfilter_entry::kDbiNwmName:
-        valid = &val_ffe->valid[UPLL_IDX_NWM_NAME_FFE];
-        break;
+      valid = &val_ffe->valid[UPLL_IDX_NWM_NAME_FFE];
+      break;
     case uudst::vbr_if_flowfilter_entry::kDbiDscp:
-        valid = &val_ffe->valid[UPLL_IDX_DSCP_FFE];
+      valid = &val_ffe->valid[UPLL_IDX_DSCP_FFE];
       break;
     case uudst::vbr_if_flowfilter_entry::kDbiPriority:
-        valid = &val_ffe->valid[UPLL_IDX_PRIORITY_FFE];
-        break;
+      valid = &val_ffe->valid[UPLL_IDX_PRIORITY_FFE];
+      break;
     default:
-       return UPLL_RC_ERR_GENERIC;
+      return UPLL_RC_ERR_GENERIC;
   }
   UPLL_LOG_DEBUG("GetValidAttributte is Succesfull");
   return UPLL_RC_SUCCESS;
@@ -3062,8 +2800,10 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::ReadMo(IpcReqRespHeader *req,
         GET_USER_DATA_CTRLR_DOMAIN(dup_key, ctrlr_dom);
         SET_USER_DATA_CTRLR_DOMAIN(l_key, ctrlr_dom);
 
-        result_code = ValidateCapability(req, ikey,
-                   reinterpret_cast<const char *>(ctrlr_dom.ctrlr));
+        result_code = ValidateCapability(
+            req,
+            ikey,
+            reinterpret_cast<const char *>(ctrlr_dom.ctrlr));
         if (result_code != UPLL_RC_SUCCESS) {
           delete dup_key;
           delete l_key;
@@ -3104,7 +2844,9 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::ReadMo(IpcReqRespHeader *req,
             reinterpret_cast<pfcdrv_val_flowfilter_entry_t *>
             (ConfigKeyVal::Malloc(sizeof(pfcdrv_val_flowfilter_entry_t)));
 
-        result_code = GetVexternalInformation(dup_key, UPLL_DT_CANDIDATE,
+        // For DT_STATE additional information will be returned which is not
+        // required. So, passing UPLL_DT_RUNNING
+        result_code = GetVexternalInformation(dup_key, UPLL_DT_RUNNING,
                                               pfc_val, db_flag, dmi);
 
         if (UPLL_RC_SUCCESS != result_code) {
@@ -3129,10 +2871,10 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::ReadMo(IpcReqRespHeader *req,
         ipc_req.header.datatype = req->datatype;
         ipc_req.ckv_data = l_key;
         if (!IpcUtil::SendReqToDriver(
-                    (const char *)ctrlr_dom.ctrlr,
-                    reinterpret_cast<char *>(ctrlr_dom.domain),
-                    PFCDRIVER_SERVICE_NAME, PFCDRIVER_SVID_LOGICAL,
-                    &ipc_req, true, &ipc_resp)) {
+                (const char *)ctrlr_dom.ctrlr,
+                reinterpret_cast<char *>(ctrlr_dom.domain),
+                PFCDRIVER_SERVICE_NAME, PFCDRIVER_SVID_LOGICAL,
+                &ipc_req, true, &ipc_resp)) {
           UPLL_LOG_DEBUG("SendReqToDriver failed for Key %d controller %s",
                          l_key->get_key_type(),
                          reinterpret_cast<char *>(ctrlr_dom.ctrlr));
@@ -3253,8 +2995,10 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
         GET_USER_DATA_CTRLR_DOMAIN(dup_key, ctrlr_dom);
         SET_USER_DATA_CTRLR_DOMAIN(l_key, ctrlr_dom);
 
-        result_code = ValidateCapability(req, ikey,
-                   reinterpret_cast<const char *>(ctrlr_dom.ctrlr));
+        result_code = ValidateCapability(
+            req,
+            ikey,
+            reinterpret_cast<const char *>(ctrlr_dom.ctrlr));
         if (result_code != UPLL_RC_SUCCESS) {
           delete dup_key;
           delete l_key;
@@ -3288,7 +3032,9 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
             reinterpret_cast<pfcdrv_val_flowfilter_entry_t *>
             (ConfigKeyVal::Malloc(sizeof(pfcdrv_val_flowfilter_entry_t)));
 
-        result_code = GetVexternalInformation(tctrl_key, UPLL_DT_CANDIDATE,
+        // For DT_STATE additional information will be returned which is not
+        // required. So, passing UPLL_DT_RUNNING
+        result_code = GetVexternalInformation(tctrl_key, UPLL_DT_RUNNING,
                                               pfc_val, db_flag, dmi);
 
         if (UPLL_RC_SUCCESS != result_code) {
@@ -3309,7 +3055,7 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
         ipc_req.header.operation = UNC_OP_READ;
         ipc_req.header.option1 = req->option1;
         ipc_req.header.datatype = req->datatype;
-       
+
         tmp_key = tctrl_key;
         while (tmp_key != NULL) {
           reinterpret_cast<key_vbr_if_flowfilter_entry_t*>
@@ -3367,7 +3113,7 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
 }
 
 upll_rc_t VbrIfFlowFilterEntryMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
-                                              ConfigKeyVal *ikey) {
+                                                     ConfigKeyVal *ikey) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
@@ -3379,19 +3125,19 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
   key_rename_vnode_info *key_rename = NULL;
   key_rename = reinterpret_cast<key_rename_vnode_info *> (ikey->get_key());
   key_vbr_if_flowfilter_entry_t * key_vbr_if_ff_entry =
-            reinterpret_cast<key_vbr_if_flowfilter_entry_t*>
-            (ConfigKeyVal::Malloc(sizeof(key_vbr_if_flowfilter_entry_t)));
+      reinterpret_cast<key_vbr_if_flowfilter_entry_t*>
+      (ConfigKeyVal::Malloc(sizeof(key_vbr_if_flowfilter_entry_t)));
 
   if (!strlen(reinterpret_cast<char *> (key_rename->old_unc_vtn_name))) {
     UPLL_LOG_DEBUG("old_unc_vtn_name NULL");
-     if(key_vbr_if_ff_entry) free(key_vbr_if_ff_entry);
-     return UPLL_RC_ERR_GENERIC;
+    if (key_vbr_if_ff_entry) free(key_vbr_if_ff_entry);
+    return UPLL_RC_ERR_GENERIC;
   }
 
   uuu::upll_strncpy(
-       key_vbr_if_ff_entry->flowfilter_key.if_key.vbr_key.vtn_key.vtn_name,
-       key_rename->old_unc_vtn_name,
-       (kMaxLenVtnName + 1));
+      key_vbr_if_ff_entry->flowfilter_key.if_key.vbr_key.vtn_key.vtn_name,
+      key_rename->old_unc_vtn_name,
+      (kMaxLenVtnName + 1));
 
   if (UNC_KT_VBRIDGE == ikey->get_key_type()) {
     if (!strlen(reinterpret_cast<char *>(key_rename->old_unc_vnode_name))) {
@@ -3399,7 +3145,8 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
       free(key_vbr_if_ff_entry);
       return UPLL_RC_ERR_GENERIC;
     }
-    uuu::upll_strncpy(key_vbr_if_ff_entry->flowfilter_key.if_key.vbr_key.vbridge_name,
+    uuu::upll_strncpy(key_vbr_if_ff_entry->
+                      flowfilter_key.if_key.vbr_key.vbridge_name,
                       key_rename->old_unc_vnode_name, (kMaxLenVnodeName + 1));
   } else {
     if (!strlen(reinterpret_cast<char *>(key_rename->new_unc_vnode_name))) {
@@ -3407,7 +3154,8 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
       free(key_vbr_if_ff_entry);
       return UPLL_RC_ERR_GENERIC;
     }
-    uuu::upll_strncpy(key_vbr_if_ff_entry->flowfilter_key.if_key.vbr_key.vbridge_name,
+    uuu::upll_strncpy(key_vbr_if_ff_entry->
+                      flowfilter_key.if_key.vbr_key.vbridge_name,
                       key_rename->new_unc_vnode_name, (kMaxLenVnodeName + 1));
   }
   key_vbr_if_ff_entry->flowfilter_key.direction = 0xFE;
@@ -3423,14 +3171,15 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
   return result_code;
 }
 
-upll_rc_t VbrIfFlowFilterEntryMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
-                                           DalDmlIntf *dmi,
-                                           upll_keytype_datatype_t data_type,
-                                           bool &no_rename) {
+upll_rc_t VbrIfFlowFilterEntryMoMgr::UpdateVnodeVal(
+    ConfigKeyVal *ikey,
+    DalDmlIntf *dmi,
+    upll_keytype_datatype_t data_type,
+    bool &no_rename) {
   UPLL_FUNC_TRACE;
   ConfigKeyVal *okey = NULL;
   ConfigKeyVal *kval = NULL;
-  //ConfigKeyVal *ckval = NULL;
+  // ConfigKeyVal *ckval = NULL;
   controller_domain ctrlr_dom;
   ctrlr_dom.ctrlr = NULL;
   ctrlr_dom.domain = NULL;
@@ -3442,11 +3191,12 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
     return result_code;
   }
   key_rename_vnode_info_t *key_rename =
-             reinterpret_cast<key_rename_vnode_info_t *>(ikey->get_key());
-  
-  //copy the old flowlist name to val_flowfilter_entry
-  val_flowfilter_entry_t *val_ff_entry = reinterpret_cast<val_flowfilter_entry_t *>
-                 (ConfigKeyVal::Malloc(sizeof(val_flowfilter_entry_t)));
+      reinterpret_cast<key_rename_vnode_info_t *>(ikey->get_key());
+
+  // copy the old flowlist name to val_flowfilter_entry
+  val_flowfilter_entry_t *val_ff_entry =
+      reinterpret_cast<val_flowfilter_entry_t *>
+      (ConfigKeyVal::Malloc(sizeof(val_flowfilter_entry_t)));
 
   if (ikey->get_key_type() == UNC_KT_FLOWLIST) {
     if (!strlen(reinterpret_cast<char *>(key_rename->old_flowlist_name))) {
@@ -3455,8 +3205,8 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
       return UPLL_RC_ERR_GENERIC;
     }
     uuu::upll_strncpy(val_ff_entry->flowlist_name,
-      key_rename->old_flowlist_name,
-      (kMaxLenFlowListName + 1));
+                      key_rename->old_flowlist_name,
+                      (kMaxLenFlowListName + 1));
     val_ff_entry->valid[UPLL_IDX_FLOWLIST_NAME_FFE] = UNC_VF_VALID;
     UPLL_LOG_DEBUG("valid and flowlist name (%d) (%s)",
                    val_ff_entry->valid[UPLL_IDX_FLOWLIST_NAME_FFE],
@@ -3468,8 +3218,8 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
       return UPLL_RC_ERR_GENERIC;
     }
     uuu::upll_strncpy(val_ff_entry->redirect_node,
-      key_rename->old_unc_vnode_name,
-      sizeof(val_ff_entry->redirect_node));
+                      key_rename->old_unc_vnode_name,
+                      sizeof(val_ff_entry->redirect_node));
     val_ff_entry->valid[UPLL_IDX_REDIRECT_NODE_FFE] = UNC_VF_VALID;
     UPLL_LOG_DEBUG("valid and vbridge name (%d) (%s)",
                    val_ff_entry->valid[UPLL_IDX_REDIRECT_NODE_FFE],
@@ -3478,21 +3228,24 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
 
   result_code = GetChildConfigKey(okey, NULL);
   if (UPLL_RC_SUCCESS != result_code) {
-     UPLL_LOG_DEBUG("CopyToConfigKey okey  NULL");
-     FREE_IF_NOT_NULL(val_ff_entry);
-     return result_code;
+    UPLL_LOG_DEBUG("CopyToConfigKey okey  NULL");
+    FREE_IF_NOT_NULL(val_ff_entry);
+    return result_code;
   }
 
+
   if (!okey) {
-     UPLL_LOG_DEBUG("CopyToConfigKey okey  NULL");
-     free(val_ff_entry);
-     return UPLL_RC_ERR_GENERIC;
+    UPLL_LOG_DEBUG("CopyToConfigKey okey  NULL");
+    free(val_ff_entry);
+    return UPLL_RC_ERR_GENERIC;
   }
-  okey->SetCfgVal(new ConfigVal(IpctSt::kIpcStValFlowfilterEntry, val_ff_entry));
+  okey->SetCfgVal(new ConfigVal(IpctSt::kIpcStValFlowfilterEntry,
+                                val_ff_entry));
 
 
-  DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutCtrlr|kOpInOutDomain|kOpInOutFlag };
+  DbSubOp dbop = { kOpReadMultiple,
+    kOpMatchNone,
+    kOpInOutCtrlr|kOpInOutDomain|kOpInOutFlag };
 
   // Read the record of key structure and old flowlist name in maintbl
   result_code = ReadConfigDB(okey, data_type, UNC_OP_READ, dbop, dmi,
@@ -3512,47 +3265,48 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
     }
     if (!kval) return UPLL_RC_ERR_GENERIC;
     // Copy the new flowlist name in val_flowfilter_entry
-    val_flowfilter_entry_t *val_ff_entry_new = reinterpret_cast<val_flowfilter_entry_t *>
-                 (ConfigKeyVal::Malloc(sizeof(val_flowfilter_entry_t)));
+    val_flowfilter_entry_t *val_ff_entry_new =
+        reinterpret_cast<val_flowfilter_entry_t *>
+        (ConfigKeyVal::Malloc(sizeof(val_flowfilter_entry_t)));
     if (!val_ff_entry_new) return UPLL_RC_ERR_GENERIC;
 
     if (ikey->get_key_type() == UNC_KT_FLOWLIST) {
-    // New Name NuLL CHECK
-    if (!strlen(reinterpret_cast<char *>(key_rename->new_flowlist_name))) {
-      UPLL_LOG_DEBUG("new_flowlist_name NULL");
-      if (val_ff_entry_new) free(val_ff_entry_new);
-      DELETE_IF_NOT_NULL(kval);
-      DELETE_IF_NOT_NULL(first_ckv);
-      return UPLL_RC_ERR_GENERIC;
-    }
-    // Copy the new flowlist_name into val_flowfilter_entry
-    uuu::upll_strncpy(val_ff_entry_new->flowlist_name,
-                     key_rename->new_flowlist_name,
-                    (kMaxLenFlowListName + 1));
-    val_ff_entry_new->valid[UPLL_IDX_FLOWLIST_NAME_FFE] = UNC_VF_VALID;
-    UPLL_LOG_DEBUG("flowlist name and valid (%d) (%s)",
-                    val_ff_entry_new->valid[UPLL_IDX_FLOWLIST_NAME_FFE],
-                    val_ff_entry_new->flowlist_name);
+      // New Name NuLL CHECK
+      if (!strlen(reinterpret_cast<char *>(key_rename->new_flowlist_name))) {
+        UPLL_LOG_DEBUG("new_flowlist_name NULL");
+        if (val_ff_entry_new) free(val_ff_entry_new);
+        DELETE_IF_NOT_NULL(kval);
+        DELETE_IF_NOT_NULL(first_ckv);
+        return UPLL_RC_ERR_GENERIC;
+      }
+      // Copy the new flowlist_name into val_flowfilter_entry
+      uuu::upll_strncpy(val_ff_entry_new->flowlist_name,
+                        key_rename->new_flowlist_name,
+                        (kMaxLenFlowListName + 1));
+      val_ff_entry_new->valid[UPLL_IDX_FLOWLIST_NAME_FFE] = UNC_VF_VALID;
+      UPLL_LOG_DEBUG("flowlist name and valid (%d) (%s)",
+                     val_ff_entry_new->valid[UPLL_IDX_FLOWLIST_NAME_FFE],
+                     val_ff_entry_new->flowlist_name);
     } else if (ikey->get_key_type() == UNC_KT_VBRIDGE) {
-    // New Name NuLL CHECK
-    if (!strlen(reinterpret_cast<char *>(key_rename->new_unc_vnode_name))) {
-      UPLL_LOG_DEBUG("new_unc_vnode_name NULL");
-      if (val_ff_entry_new) free(val_ff_entry_new);
-      DELETE_IF_NOT_NULL(kval);
-      DELETE_IF_NOT_NULL(first_ckv);
-      return UPLL_RC_ERR_GENERIC;
-    }
-    // Copy the new vbridge name into val_flowfilter_entry
-    uuu::upll_strncpy(val_ff_entry_new->redirect_node,
-                      key_rename->new_unc_vnode_name,
-                      sizeof(val_ff_entry_new->redirect_node));
-    val_ff_entry_new->valid[UPLL_IDX_REDIRECT_NODE_FFE] = UNC_VF_VALID;
-    UPLL_LOG_DEBUG("vbridge name and valid (%d) (%s)",
-                    val_ff_entry_new->valid[UPLL_IDX_FLOWLIST_NAME_FFE],
-                    val_ff_entry_new->redirect_node);
-
+      // New Name NuLL CHECK
+      if (!strlen(reinterpret_cast<char *>(key_rename->new_unc_vnode_name))) {
+        UPLL_LOG_DEBUG("new_unc_vnode_name NULL");
+        if (val_ff_entry_new) free(val_ff_entry_new);
+        DELETE_IF_NOT_NULL(kval);
+        DELETE_IF_NOT_NULL(first_ckv);
+        return UPLL_RC_ERR_GENERIC;
+      }
+      // Copy the new vbridge name into val_flowfilter_entry
+      uuu::upll_strncpy(val_ff_entry_new->redirect_node,
+                        key_rename->new_unc_vnode_name,
+                        sizeof(val_ff_entry_new->redirect_node));
+      val_ff_entry_new->valid[UPLL_IDX_REDIRECT_NODE_FFE] = UNC_VF_VALID;
+      UPLL_LOG_DEBUG("vbridge name and valid (%d) (%s)",
+                     val_ff_entry_new->valid[UPLL_IDX_FLOWLIST_NAME_FFE],
+                     val_ff_entry_new->redirect_node);
     }
-    ConfigVal *cval1 = new ConfigVal(IpctSt::kIpcStValFlowfilterEntry, val_ff_entry_new);
+    ConfigVal *cval1 = new ConfigVal(IpctSt::kIpcStValFlowfilterEntry,
+                                     val_ff_entry_new);
 
     kval->SetCfgVal(cval1);
     memset(&ctrlr_dom, 0, sizeof(controller_domain));
@@ -3574,7 +3328,7 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
       if (!no_rename)
         rename = rename | VBR_RENAME_FLAG;
       else
-        rename = rename & NO_VBR_RENAME_FLAG;      
+        rename = rename & NO_VBR_RENAME_FLAG;
     }
 
     SET_USER_DATA_FLAGS(kval, rename);
@@ -3582,10 +3336,11 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
 
     // Update the new flowlist name in MAINTBL
     result_code = UpdateConfigDB(kval, data_type, UNC_OP_UPDATE, dmi,
-                  MAINTBL);
+                                 MAINTBL);
     if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("Create record Err in vbrflowfilterentrytbl CANDIDATE DB(%d)",
-        result_code);
+      UPLL_LOG_DEBUG("Create record Err in vbrflowfilterentrytbl"
+                     "CANDIDATE DB(%d)",
+                     result_code);
       DELETE_IF_NOT_NULL(kval);
       DELETE_IF_NOT_NULL(first_ckv);
 
@@ -3600,7 +3355,8 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
 }
 
 bool VbrIfFlowFilterEntryMoMgr::CompareValidValue(void *&val1,
-                                                  void *val2, bool copy_to_running) {
+                                                  void *val2,
+                                                  bool copy_to_running) {
   UPLL_FUNC_TRACE;
   bool attr = true;
   val_flowfilter_entry_t *val_ff_entry1 =
@@ -3609,71 +3365,71 @@ bool VbrIfFlowFilterEntryMoMgr::CompareValidValue(void *&val1,
       reinterpret_cast<val_flowfilter_entry_t *>(val2);
 
   for ( unsigned int loop = 0; loop < sizeof(val_ff_entry1->valid); ++loop ) {
-      if ( UNC_VF_INVALID == val_ff_entry1->valid[loop] &&
-                  UNC_VF_VALID == val_ff_entry2->valid[loop])
-        val_ff_entry1->valid[loop] = UNC_VF_VALID_NO_VALUE;
+    if ( UNC_VF_INVALID == val_ff_entry1->valid[loop] &&
+        UNC_VF_VALID == val_ff_entry2->valid[loop])
+      val_ff_entry1->valid[loop] = UNC_VF_VALID_NO_VALUE;
   }
 
   if (val_ff_entry1->valid[UPLL_IDX_FLOWLIST_NAME_FFE] == UNC_VF_VALID &&
-     val_ff_entry2->valid[UPLL_IDX_FLOWLIST_NAME_FFE] == UNC_VF_VALID) {
+      val_ff_entry2->valid[UPLL_IDX_FLOWLIST_NAME_FFE] == UNC_VF_VALID) {
     if (!strcmp(reinterpret_cast<char *>(val_ff_entry1->flowlist_name),
-               reinterpret_cast<char *>(val_ff_entry2->flowlist_name)))
+                reinterpret_cast<char *>(val_ff_entry2->flowlist_name)))
       val_ff_entry1->valid[UPLL_IDX_FLOWLIST_NAME_FFE] = UNC_VF_INVALID;
   }
   if (val_ff_entry1->valid[UPLL_IDX_ACTION_FFE] == UNC_VF_VALID &&
-     val_ff_entry2->valid[UPLL_IDX_ACTION_FFE] == UNC_VF_VALID) {
+      val_ff_entry2->valid[UPLL_IDX_ACTION_FFE] == UNC_VF_VALID) {
     if (val_ff_entry1->action == val_ff_entry2->action)
       val_ff_entry1->valid[UPLL_IDX_ACTION_FFE] = UNC_VF_INVALID;
   }
   if (val_ff_entry1->valid[UPLL_IDX_REDIRECT_NODE_FFE] == UNC_VF_VALID &&
-     val_ff_entry2->valid[UPLL_IDX_REDIRECT_NODE_FFE] == UNC_VF_VALID) {
+      val_ff_entry2->valid[UPLL_IDX_REDIRECT_NODE_FFE] == UNC_VF_VALID) {
     if (!strcmp(reinterpret_cast<char *>(val_ff_entry1->redirect_node),
-              reinterpret_cast<char *>(val_ff_entry2->redirect_node)))
+                reinterpret_cast<char *>(val_ff_entry2->redirect_node)))
       val_ff_entry1->valid[UPLL_IDX_REDIRECT_NODE_FFE] =
-      (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   }
   if (val_ff_entry1->valid[UPLL_IDX_REDIRECT_PORT_FFE] == UNC_VF_VALID &&
-     val_ff_entry2->valid[UPLL_IDX_REDIRECT_PORT_FFE] == UNC_VF_VALID) {
+      val_ff_entry2->valid[UPLL_IDX_REDIRECT_PORT_FFE] == UNC_VF_VALID) {
     if (!strcmp(reinterpret_cast<char *>(val_ff_entry1->redirect_port),
-              reinterpret_cast<char *>(val_ff_entry2->redirect_port)))
+                reinterpret_cast<char *>(val_ff_entry2->redirect_port)))
       val_ff_entry1->valid[UPLL_IDX_REDIRECT_PORT_FFE] =
-      (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   }
   if (val_ff_entry1->valid[UPLL_IDX_MODIFY_DST_MAC_FFE] == UNC_VF_VALID &&
-     val_ff_entry2->valid[UPLL_IDX_MODIFY_DST_MAC_FFE] == UNC_VF_VALID) {
+      val_ff_entry2->valid[UPLL_IDX_MODIFY_DST_MAC_FFE] == UNC_VF_VALID) {
     if (!memcmp(reinterpret_cast<char *>(val_ff_entry1->modify_dstmac),
-              reinterpret_cast<char *>(val_ff_entry2->modify_dstmac),
-              sizeof(val_ff_entry2->modify_dstmac)))
+                reinterpret_cast<char *>(val_ff_entry2->modify_dstmac),
+                sizeof(val_ff_entry2->modify_dstmac)))
       val_ff_entry1->valid[UPLL_IDX_MODIFY_DST_MAC_FFE] =
-      (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   }
   if (val_ff_entry1->valid[UPLL_IDX_MODIFY_SRC_MAC_FFE] == UNC_VF_VALID &&
-     val_ff_entry2->valid[UPLL_IDX_MODIFY_SRC_MAC_FFE] == UNC_VF_VALID) {
+      val_ff_entry2->valid[UPLL_IDX_MODIFY_SRC_MAC_FFE] == UNC_VF_VALID) {
     if (!memcmp(reinterpret_cast<char *>(val_ff_entry1->modify_srcmac),
-              reinterpret_cast<char *>(val_ff_entry2->modify_srcmac),
-       sizeof(val_ff_entry2->modify_srcmac)))
+                reinterpret_cast<char *>(val_ff_entry2->modify_srcmac),
+                sizeof(val_ff_entry2->modify_srcmac)))
       val_ff_entry1->valid[UPLL_IDX_MODIFY_SRC_MAC_FFE] =
-      (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   }
   if (val_ff_entry1->valid[UPLL_IDX_NWM_NAME_FFE] == UNC_VF_VALID &&
-     val_ff_entry2->valid[UPLL_IDX_NWM_NAME_FFE] == UNC_VF_VALID) {
+      val_ff_entry2->valid[UPLL_IDX_NWM_NAME_FFE] == UNC_VF_VALID) {
     if (!strcmp(reinterpret_cast<char *>(val_ff_entry1->nwm_name),
-              reinterpret_cast<char *>(val_ff_entry2->nwm_name)))
+                reinterpret_cast<char *>(val_ff_entry2->nwm_name)))
       val_ff_entry1->valid[UPLL_IDX_NWM_NAME_FFE] = UNC_VF_INVALID;
   }
   if (val_ff_entry1->valid[UPLL_IDX_DSCP_FFE] == UNC_VF_VALID &&
-     val_ff_entry2->valid[UPLL_IDX_DSCP_FFE] == UNC_VF_VALID) {
+      val_ff_entry2->valid[UPLL_IDX_DSCP_FFE] == UNC_VF_VALID) {
     if (val_ff_entry1->dscp == val_ff_entry2->dscp)
       val_ff_entry1->valid[UPLL_IDX_DSCP_FFE] = UNC_VF_INVALID;
   }
   if (val_ff_entry1->valid[UPLL_IDX_PRIORITY_FFE] == UNC_VF_VALID &&
-     val_ff_entry2->valid[UPLL_IDX_PRIORITY_FFE] == UNC_VF_VALID) {
+      val_ff_entry2->valid[UPLL_IDX_PRIORITY_FFE] == UNC_VF_VALID) {
     if (val_ff_entry1->priority == val_ff_entry2->priority)
       val_ff_entry1->valid[UPLL_IDX_PRIORITY_FFE] = UNC_VF_INVALID;
   }
   UPLL_LOG_DEBUG("CompareValidValue : Success");
   for (unsigned int loop = 0;
-      loop < sizeof(val_ff_entry1->valid)/ sizeof(uint8_t); ++loop) {
+       loop < sizeof(val_ff_entry1->valid)/ sizeof(uint8_t); ++loop) {
     if ((UNC_VF_VALID == (uint8_t) val_ff_entry1->valid[loop]) ||
         (UNC_VF_VALID_NO_VALUE == (uint8_t) val_ff_entry1->valid[loop]))
       attr = false;
@@ -3682,13 +3438,14 @@ bool VbrIfFlowFilterEntryMoMgr::CompareValidValue(void *&val1,
 }
 
 
-upll_rc_t VbrIfFlowFilterEntryMoMgr::TxUpdateController(unc_key_type_t keytype,
-                                        uint32_t session_id,
-                                        uint32_t config_id,
-                                        uuc::UpdateCtrlrPhase phase,
-                                        set<string> *affected_ctrlr_set,
-                                        DalDmlIntf *dmi,
-                                        ConfigKeyVal **err_ckv)  {
+upll_rc_t VbrIfFlowFilterEntryMoMgr::TxUpdateController(
+    unc_key_type_t keytype,
+    uint32_t session_id,
+    uint32_t config_id,
+    uuc::UpdateCtrlrPhase phase,
+    set<string> *affected_ctrlr_set,
+    DalDmlIntf *dmi,
+    ConfigKeyVal **err_ckv)  {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *req = NULL, *nreq = NULL, *ck_main = NULL;
@@ -3703,14 +3460,14 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::TxUpdateController(unc_key_type_t keytype,
   uint8_t db_flag_running = 0;
   IpcResponse ipc_resp;
   if (affected_ctrlr_set == NULL)
-      return UPLL_RC_ERR_GENERIC;
+    return UPLL_RC_ERR_GENERIC;
 
   unc_keytype_operation_t op = (phase == uuc::kUpllUcpCreate)?UNC_OP_CREATE:
-               ((phase == uuc::kUpllUcpUpdate)?UNC_OP_UPDATE:
-               ((phase == uuc::kUpllUcpDelete)?UNC_OP_DELETE:UNC_OP_INVALID));
+      ((phase == uuc::kUpllUcpUpdate)?UNC_OP_UPDATE:
+       ((phase == uuc::kUpllUcpDelete)?UNC_OP_DELETE:UNC_OP_INVALID));
 
   result_code = DiffConfigDB(UPLL_DT_CANDIDATE, UPLL_DT_RUNNING,
-                     op, req, nreq, &dal_cursor_handle, dmi, MAINTBL);
+                             op, req, nreq, &dal_cursor_handle, dmi, MAINTBL);
 
   unc_keytype_operation_t op1 = op;
   while (result_code == UPLL_RC_SUCCESS) {
@@ -3727,7 +3484,7 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::TxUpdateController(unc_key_type_t keytype,
     switch (op)   {
       case UNC_OP_CREATE:
       case UNC_OP_UPDATE:
-     /* fall through intended */
+        /* fall through intended */
         op1 = op;
         result_code = DupConfigKeyVal(ck_main, req, MAINTBL);
         if (result_code != UPLL_RC_SUCCESS) {
@@ -3737,22 +3494,22 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::TxUpdateController(unc_key_type_t keytype,
         break;
       case UNC_OP_DELETE:
         {
-         op1 = op;
-         result_code = GetChildConfigKey(ck_main, req);
-         if (result_code != UPLL_RC_SUCCESS) {
-           UPLL_LOG_TRACE("GetChildConfigKey failed %d", result_code);
-           return result_code;
-         }
-      DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutCtrlr};
-       result_code = ReadConfigDB(ck_main, UPLL_DT_RUNNING, UNC_OP_READ,
-                                             dbop, dmi, MAINTBL);
-       if (result_code != UPLL_RC_SUCCESS) {
-         UPLL_LOG_DEBUG("Returning error %d", result_code);
-         DELETE_IF_NOT_NULL(ck_main);
-         return UPLL_RC_ERR_GENERIC;
-       }
+          op1 = op;
+          result_code = GetChildConfigKey(ck_main, req);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_TRACE("GetChildConfigKey failed %d", result_code);
+            return result_code;
+          }
+          DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutCtrlr};
+          result_code = ReadConfigDB(ck_main, UPLL_DT_RUNNING, UNC_OP_READ,
+                                     dbop, dmi, MAINTBL);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("Returning error %d", result_code);
+            DELETE_IF_NOT_NULL(ck_main);
+            return UPLL_RC_ERR_GENERIC;
+          }
         }
-       break;
+        break;
       default:
         UPLL_LOG_DEBUG("TxUpdateController Invalid operation");
         return UPLL_RC_ERR_GENERIC;
@@ -3763,7 +3520,7 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::TxUpdateController(unc_key_type_t keytype,
       return UPLL_RC_ERR_GENERIC;
     }
     UPLL_LOG_DEBUG("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
-                 ctrlr_dom.domain);
+                   ctrlr_dom.domain);
     GET_USER_DATA_FLAGS(ck_main, db_flag);
     ConfigKeyVal *tmp_cfgkeyval = NULL;
 
@@ -3773,68 +3530,68 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::TxUpdateController(unc_key_type_t keytype,
         continue;
       } else {
         result_code = GetChildConfigKey(tmp_cfgkeyval, ck_main);
-          if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("GetChildConfigKey failed err %d", result_code);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("GetChildConfigKey failed err %d", result_code);
+          DELETE_IF_NOT_NULL(ck_main);
+          return result_code;
+        }
+        SET_USER_DATA_CTRLR_DOMAIN(tmp_cfgkeyval, ctrlr_dom);
+        DbSubOp dbop1 = { kOpReadSingle, kOpMatchCtrlr|kOpMatchDomain,
+          kOpInOutFlag };
+        result_code = ReadConfigDB(tmp_cfgkeyval, UPLL_DT_RUNNING,
+                                   UNC_OP_READ, dbop1, dmi, MAINTBL);
+        if (result_code != UPLL_RC_SUCCESS) {
+          if (result_code != UPLL_RC_ERR_INSTANCE_EXISTS) {
+            UPLL_LOG_DEBUG("Unable to read from DB, err: %d", result_code);
             DELETE_IF_NOT_NULL(ck_main);
+            DELETE_IF_NOT_NULL(tmp_cfgkeyval);
             return result_code;
           }
-          SET_USER_DATA_CTRLR_DOMAIN(tmp_cfgkeyval, ctrlr_dom);
-          DbSubOp dbop1 = { kOpReadSingle, kOpMatchCtrlr|kOpMatchDomain,
-            kOpInOutFlag };
-          result_code = ReadConfigDB(tmp_cfgkeyval, UPLL_DT_RUNNING,
-                                     UNC_OP_READ, dbop1, dmi, MAINTBL);
-          if (result_code != UPLL_RC_SUCCESS) {
-             if (result_code != UPLL_RC_ERR_INSTANCE_EXISTS) {
-               UPLL_LOG_DEBUG("Unable to read from DB, err: %d", result_code);
-               DELETE_IF_NOT_NULL(ck_main);
-               DELETE_IF_NOT_NULL(tmp_cfgkeyval);
-               return result_code;
-             }
-          }
-          GET_USER_DATA_FLAGS(tmp_cfgkeyval, db_flag_running);
-          if (!(SET_FLAG_PORTMAP & db_flag_running) &&
-              !(SET_FLAG_VLINK & db_flag_running)) {
-             UPLL_LOG_DEBUG("Portmap flag is not set for vbrifFFEntry");
-             DELETE_IF_NOT_NULL(ck_main);
-             DELETE_IF_NOT_NULL(tmp_cfgkeyval);
-             continue;
-          }
-          op1 = UNC_OP_DELETE;
-          vext_datatype = UPLL_DT_RUNNING;
-          db_flag = db_flag_running;
+        }
+        GET_USER_DATA_FLAGS(tmp_cfgkeyval, db_flag_running);
+        if (!(SET_FLAG_PORTMAP & db_flag_running) &&
+            !(SET_FLAG_VLINK & db_flag_running)) {
+          UPLL_LOG_DEBUG("Portmap flag is not set for vbrifFFEntry");
+          DELETE_IF_NOT_NULL(ck_main);
+          DELETE_IF_NOT_NULL(tmp_cfgkeyval);
+          continue;
+        }
+        op1 = UNC_OP_DELETE;
+        vext_datatype = UPLL_DT_RUNNING;
+        db_flag = db_flag_running;
       }
       DELETE_IF_NOT_NULL(tmp_cfgkeyval);
     } else if (op == UNC_OP_UPDATE) {
-        result_code = GetChildConfigKey(tmp_cfgkeyval, ck_main);
-          if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("GetChildConfigKey failed, err %d", result_code);
-            DELETE_IF_NOT_NULL(ck_main);
-            return result_code;
-          }
-          SET_USER_DATA_CTRLR_DOMAIN(tmp_cfgkeyval, ctrlr_dom);
-          DbSubOp dbop1 = { kOpReadSingle, kOpMatchCtrlr|kOpMatchDomain,
-            kOpInOutFlag};
-          result_code = ReadConfigDB(tmp_cfgkeyval, UPLL_DT_RUNNING,
-                                     UNC_OP_READ, dbop1, dmi, MAINTBL);
-          if (result_code != UPLL_RC_SUCCESS) {
-             if (result_code != UPLL_RC_ERR_INSTANCE_EXISTS) {
-               UPLL_LOG_DEBUG("Unable to read from DB, err: %d", result_code);
-               DELETE_IF_NOT_NULL(ck_main);
-               DELETE_IF_NOT_NULL(tmp_cfgkeyval);
-               return result_code;
-             }
-          }
-          GET_USER_DATA_FLAGS(tmp_cfgkeyval, db_flag_running);
-          if (!(SET_FLAG_PORTMAP & db_flag_running) &&
-              !(SET_FLAG_VLINK & db_flag_running)) {
-             UPLL_LOG_DEBUG("Portmap flag is not set at running");
-             op1 = UNC_OP_CREATE;
-             vext_datatype = UPLL_DT_CANDIDATE;
-          } else {
-            void *main = GetVal(ck_main);
-            void *val_nrec = (nreq) ? GetVal(nreq) : NULL;
-            FilterAttributes(main, val_nrec, false, op);
-          }
+      result_code = GetChildConfigKey(tmp_cfgkeyval, ck_main);
+      if (result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("GetChildConfigKey failed, err %d", result_code);
+        DELETE_IF_NOT_NULL(ck_main);
+        return result_code;
+      }
+      SET_USER_DATA_CTRLR_DOMAIN(tmp_cfgkeyval, ctrlr_dom);
+      DbSubOp dbop1 = { kOpReadSingle, kOpMatchCtrlr|kOpMatchDomain,
+        kOpInOutFlag};
+      result_code = ReadConfigDB(tmp_cfgkeyval, UPLL_DT_RUNNING,
+                                 UNC_OP_READ, dbop1, dmi, MAINTBL);
+      if (result_code != UPLL_RC_SUCCESS) {
+        if (result_code != UPLL_RC_ERR_INSTANCE_EXISTS) {
+          UPLL_LOG_DEBUG("Unable to read from DB, err: %d", result_code);
+          DELETE_IF_NOT_NULL(ck_main);
+          DELETE_IF_NOT_NULL(tmp_cfgkeyval);
+          return result_code;
+        }
+      }
+      GET_USER_DATA_FLAGS(tmp_cfgkeyval, db_flag_running);
+      if (!(SET_FLAG_PORTMAP & db_flag_running) &&
+          !(SET_FLAG_VLINK & db_flag_running)) {
+        UPLL_LOG_DEBUG("Portmap flag is not set at running");
+        op1 = UNC_OP_CREATE;
+        vext_datatype = UPLL_DT_CANDIDATE;
+      } else {
+        void *main = GetVal(ck_main);
+        void *val_nrec = (nreq) ? GetVal(nreq) : NULL;
+        FilterAttributes(main, val_nrec, false, op);
+      }
       DELETE_IF_NOT_NULL(tmp_cfgkeyval);
     }
 
@@ -3864,17 +3621,17 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::TxUpdateController(unc_key_type_t keytype,
       return result_code;
     }
     upll_keytype_datatype_t dt_type = (op1 == UNC_OP_DELETE)?
-             UPLL_DT_RUNNING:UPLL_DT_CANDIDATE;
+        UPLL_DT_RUNNING:UPLL_DT_CANDIDATE;
     result_code = GetRenamedControllerKey(ck_main, dt_type,
                                           dmi, &ctrlr_dom);
 
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG(" GetRenamedControllerKey failed err code(%d)",
-                       result_code);
-        DELETE_IF_NOT_NULL(ck_main);
-        FREE_IF_NOT_NULL(pfc_val);
-        break;
-      }
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG(" GetRenamedControllerKey failed err code(%d)",
+                     result_code);
+      DELETE_IF_NOT_NULL(ck_main);
+      FREE_IF_NOT_NULL(pfc_val);
+      break;
+    }
     if (UNC_OP_DELETE == op1) {
       pfc_val->valid[PFCDRV_IDX_FLOWFILTER_ENTRY_FFE] = UNC_VF_INVALID;
     } else {
@@ -3892,11 +3649,11 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::TxUpdateController(unc_key_type_t keytype,
 
     // Inserting the controller to Set
     affected_ctrlr_set->insert
-      (string(reinterpret_cast<char *>(ctrlr_dom.ctrlr)));
+        (string(reinterpret_cast<char *>(ctrlr_dom.ctrlr)));
 
     result_code = SendIpcReq(session_id, config_id, op1, UPLL_DT_CANDIDATE,
-              ck_main, &ctrlr_dom, &ipc_resp);
-    if (result_code == UPLL_RC_ERR_RESOURCE_DISCONNECTED) {
+                             ck_main, &ctrlr_dom, &ipc_resp);
+    if (result_code == UPLL_RC_ERR_CTR_DISCONNECTED) {
       UPLL_LOG_DEBUG(" driver result code - %d", ipc_resp.header.result_code);
       result_code = UPLL_RC_SUCCESS;
     }
@@ -3920,10 +3677,10 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::TxUpdateController(unc_key_type_t keytype,
 }
 
 upll_rc_t VbrIfFlowFilterEntryMoMgr::SetVlinkPortmapConfiguration(
-                        ConfigKeyVal *ikey,
-                        upll_keytype_datatype_t dt_type,
-                        DalDmlIntf *dmi, InterfacePortMapInfo flags,
-                        unc_keytype_operation_t oper) {
+    ConfigKeyVal *ikey,
+    upll_keytype_datatype_t dt_type,
+    DalDmlIntf *dmi, InterfacePortMapInfo flags,
+    unc_keytype_operation_t oper) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
   if (NULL == ikey || NULL == ikey->get_key()) {
@@ -3933,28 +3690,11 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::SetVlinkPortmapConfiguration(
   uint8_t *ctrlr_id = NULL;
   controller_domain ctrlr_dom;
   memset(&ctrlr_dom, 0, sizeof(ctrlr_dom));
-  result_code = GetChildConfigKey(ckv, NULL);
+  result_code = GetChildConfigKey(ckv, ikey);
   if (UPLL_RC_SUCCESS != result_code) {
     return result_code;
   }
-  key_vbr_if_flowfilter_entry_t *ff_key =
-      reinterpret_cast<key_vbr_if_flowfilter_entry_t *>(ckv->get_key());
-  key_vbr_if_t *vbrif_key = reinterpret_cast<key_vbr_if_t *>(ikey->get_key());
-
-  uuu::upll_strncpy(ff_key->flowfilter_key.if_key.vbr_key.vtn_key.vtn_name,
-                    vbrif_key->vbr_key.vtn_key.vtn_name,
-                    kMaxLenVtnName + 1);
-
-  uuu::upll_strncpy(ff_key->flowfilter_key.if_key.vbr_key.vbridge_name,
-                    vbrif_key->vbr_key.vbridge_name,
-                    kMaxLenVtnName + 1);
-
-  uuu::upll_strncpy(ff_key->flowfilter_key.if_key.if_name,
-                    vbrif_key->if_name,
-                    kMaxLenInterfaceName + 1);
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutFlag };
-
-  ff_key->flowfilter_key.direction = 0xFE;
   result_code = ReadConfigDB(ckv, dt_type ,
                              UNC_OP_READ, dbop, dmi, MAINTBL);
   if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
@@ -3972,7 +3712,7 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::SetVlinkPortmapConfiguration(
   while (ckv) {
     flag_port_map = 0;
     val_flowfilter_entry_t *flowfilter_val =
-      reinterpret_cast<val_flowfilter_entry_t *> (GetVal(ckv));
+        reinterpret_cast<val_flowfilter_entry_t *> (GetVal(ckv));
     GET_USER_DATA_FLAGS(ckv, flag_port_map);
     if (flags & kVlinkConfigured) {
       UPLL_LOG_DEBUG("Vlink for flowfilterentry");
@@ -3987,7 +3727,7 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::SetVlinkPortmapConfiguration(
       flag_port_map &= SET_FLAG_NO_VLINK_PORTMAP;
     }
     SET_USER_DATA_FLAGS(ckv, flag_port_map);
-    
+
     UPLL_LOG_DEBUG("SET_USER_DATA_FLAGS flag_port_map %d", flag_port_map);
     DbSubOp dbop_up = { kOpNotRead, kOpMatchNone, kOpInOutFlag };
     result_code = UpdateConfigDB(ckv, dt_type, UNC_OP_UPDATE,
@@ -4002,30 +3742,30 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::SetVlinkPortmapConfiguration(
       FlowListMoMgr *mgr = reinterpret_cast<FlowListMoMgr *>
           (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
       if ((flag_port_map & SET_FLAG_VLINK) ||
-           (flag_port_map & SET_FLAG_PORTMAP)) {
-          op = UNC_OP_CREATE;
+          (flag_port_map & SET_FLAG_PORTMAP)) {
+        op = UNC_OP_CREATE;
       } else  {
-          op = UNC_OP_DELETE;
+        op = UNC_OP_DELETE;
       }
       result_code = GetControllerDomainID(ikey, dt_type, dmi);
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("Failed to Get the Controller Domain details, err:%d",
-                   result_code);
+                       result_code);
         DELETE_IF_NOT_NULL(ckv);
         return result_code;
       }
       GET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
       UPLL_LOG_DEBUG("ctrlrid %s, domainid %s",
-                 ctrlr_dom.ctrlr, ctrlr_dom.domain);
+                     ctrlr_dom.ctrlr, ctrlr_dom.domain);
       ctrlr_id = ctrlr_dom.ctrlr;
       result_code = mgr->AddFlowListToController(
-           reinterpret_cast<char*>(flowfilter_val->flowlist_name), dmi,
-           reinterpret_cast<char *>(ctrlr_id), dt_type, op);
+          reinterpret_cast<char*>(flowfilter_val->flowlist_name), dmi,
+          reinterpret_cast<char *>(ctrlr_id), dt_type, op);
       if (result_code != UPLL_RC_SUCCESS) {
-         UPLL_LOG_DEBUG(" Send delete request to flowlist failed. err code(%d)",
-                      result_code);
-         DELETE_IF_NOT_NULL(ckv);
-         return result_code;
+        UPLL_LOG_DEBUG(" Send delete request to flowlist failed. err code(%d)",
+                       result_code);
+        DELETE_IF_NOT_NULL(ckv);
+        return result_code;
       }
     }
     ckv = ckv->get_next_cfg_key_val();
@@ -4035,10 +3775,10 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::SetVlinkPortmapConfiguration(
 }
 
 upll_rc_t VbrIfFlowFilterEntryMoMgr::GetVexternalInformation(
-                   ConfigKeyVal* ck_main,
-                   upll_keytype_datatype_t dt_type,
-                   pfcdrv_val_flowfilter_entry_t*& pfc_val,
-                   uint8_t db_flag, DalDmlIntf *dmi) {
+    ConfigKeyVal* ck_main,
+    upll_keytype_datatype_t dt_type,
+    pfcdrv_val_flowfilter_entry_t*& pfc_val,
+    uint8_t db_flag, DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
   InterfacePortMapInfo flags = kVlinkPortMapNotConfigured;
@@ -4046,34 +3786,34 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::GetVexternalInformation(
   if (db_flag & SET_FLAG_PORTMAP) {
     UPLL_LOG_DEBUG("portmap is configured!!");
     VbrIfMoMgr *mgrvbrif =
-      reinterpret_cast<VbrIfMoMgr *>(const_cast<MoManager *>(GetMoManager(
-            UNC_KT_VBR_IF)));
+        reinterpret_cast<VbrIfMoMgr *>(const_cast<MoManager *>(GetMoManager(
+                    UNC_KT_VBR_IF)));
     if (mgrvbrif == NULL) {
       UPLL_LOG_DEBUG("Unable to get the instance of vbrif");
       return result_code;
     }
     result_code = mgrvbrif->GetChildConfigKey(ckv, NULL);
     key_vbr_if_t *vbr_if_key = reinterpret_cast<key_vbr_if_t *>
-                              (ckv->get_key());
+        (ckv->get_key());
     key_vbr_if_flowfilter_entry_t * temp_key =
         reinterpret_cast<key_vbr_if_flowfilter_entry_t *>(ck_main->get_key());
 
     uuu::upll_strncpy(vbr_if_key->vbr_key.vtn_key.vtn_name,
-        temp_key->flowfilter_key.if_key.vbr_key.vtn_key.vtn_name,
-        kMaxLenVtnName + 1);
+                      temp_key->flowfilter_key.if_key.vbr_key.vtn_key.vtn_name,
+                      kMaxLenVtnName + 1);
 
     uuu::upll_strncpy(vbr_if_key->vbr_key.vbridge_name,
-        temp_key->flowfilter_key.if_key.vbr_key.vbridge_name,
-        kMaxLenVtnName + 1);
+                      temp_key->flowfilter_key.if_key.vbr_key.vbridge_name,
+                      kMaxLenVtnName + 1);
 
     uuu::upll_strncpy(vbr_if_key->if_name,
-        temp_key->flowfilter_key.if_key.if_name,
-        kMaxLenInterfaceName + 1);
+                      temp_key->flowfilter_key.if_key.if_name,
+                      kMaxLenInterfaceName + 1);
 
-  uint8_t* vexternal = reinterpret_cast<uint8_t*>
-      (ConfigKeyVal::Malloc(kMaxLenVnodeName + 1));
-  uint8_t* vex_if = reinterpret_cast<uint8_t*>
-      (ConfigKeyVal::Malloc(kMaxLenInterfaceName + 1));
+    uint8_t* vexternal = reinterpret_cast<uint8_t*>
+        (ConfigKeyVal::Malloc(kMaxLenVnodeName + 1));
+    uint8_t* vex_if = reinterpret_cast<uint8_t*>
+        (ConfigKeyVal::Malloc(kMaxLenInterfaceName + 1));
     result_code = mgrvbrif->GetVexternal(ckv, dt_type, dmi, vexternal, vex_if,
                                          flags);
     if (UPLL_RC_SUCCESS != result_code) {
@@ -4088,17 +3828,17 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::GetVexternalInformation(
     pfc_val->val_vbrif_vextif.valid[PFCDRV_IDX_VEXTERNAL_NAME_VBRIF] =
         UNC_VF_VALID;
     uuu::upll_strncpy(pfc_val->val_vbrif_vextif.vexternal_name,
-        vexternal,
-        kMaxLenVnodeName + 1);
+                      vexternal,
+                      kMaxLenVnodeName + 1);
     pfc_val->val_vbrif_vextif.valid[PFCDRV_IDX_VEXT_IF_NAME_VBRIF] =
         UNC_VF_VALID;
     uuu::upll_strncpy(pfc_val->val_vbrif_vextif.vext_if_name,
-        vex_if,
-        kMaxLenInterfaceName + 1);
+                      vex_if,
+                      kMaxLenInterfaceName + 1);
     pfc_val->val_vbrif_vextif.valid[PFCDRV_IDX_INTERFACE_TYPE] = UNC_VF_VALID;
     pfc_val->val_vbrif_vextif.interface_type = PFCDRV_IF_TYPE_VEXTIF;
-  free(vexternal);
-  free(vex_if);
+    free(vexternal);
+    free(vex_if);
   } else if (db_flag & SET_FLAG_VLINK) {
     UPLL_LOG_DEBUG("Vlink is configured");
     pfc_val->valid[PFCDRV_IDX_VAL_VBRIF_VEXTIF_FFE] = UNC_VF_VALID;
@@ -4106,18 +3846,19 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::GetVexternalInformation(
     pfc_val->val_vbrif_vextif.valid[PFCDRV_IDX_INTERFACE_TYPE] = UNC_VF_VALID;
     pfc_val->val_vbrif_vextif.interface_type = PFCDRV_IF_TYPE_VBRIF;
   } else {
-     UPLL_LOG_DEBUG("Portmap/Vlink is not configured");
-     DELETE_IF_NOT_NULL(ckv);
-     return UPLL_RC_ERR_NOT_ALLOWED_AT_THIS_TIME;
+    UPLL_LOG_DEBUG("Portmap/Vlink is not configured");
+    DELETE_IF_NOT_NULL(ckv);
+    return UPLL_RC_ERR_NOT_ALLOWED_AT_THIS_TIME;
   }
 
   DELETE_IF_NOT_NULL(ckv);
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t VbrIfFlowFilterEntryMoMgr::GetControllerDomainID(ConfigKeyVal *ikey,
-                                          upll_keytype_datatype_t dt_type,
-                                          DalDmlIntf *dmi) {
+upll_rc_t VbrIfFlowFilterEntryMoMgr::GetControllerDomainID(
+    ConfigKeyVal *ikey,
+    upll_keytype_datatype_t dt_type,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
@@ -4131,7 +3872,7 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::GetControllerDomainID(ConfigKeyVal *ikey,
   result_code = mgrvbrif->GetChildConfigKey(ckv, NULL);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("Unable to get the ParentConfigKey, resultcode=%d",
-                    result_code);
+                   result_code);
     return result_code;
   }
 
@@ -4167,7 +3908,7 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::GetControllerDomainID(ConfigKeyVal *ikey,
     UPLL_LOG_INFO("GetControllerDomainId error err code(%d)", result_code);
     DELETE_IF_NOT_NULL(ckv);  // Resource Leak Fix
     DELETE_IF_NOT_NULL(vbr_key);  // Resource Leak Fix
-    return UPLL_RC_ERR_GENERIC;
+    return result_code;
   }
 
   UPLL_LOG_DEBUG("ctrlrid %s, domainid %s",
@@ -4187,7 +3928,7 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
     UPLL_LOG_DEBUG(" Input Key is NULL");
     return UPLL_RC_ERR_GENERIC;
   }
-  DELETE_IF_NOT_NULL(okey); 
+  DELETE_IF_NOT_NULL(okey);
   unc_key_type_t ikey_type = ikey->get_key_type();
   if (ikey_type != UNC_KT_VBRIF_FLOWFILTER_ENTRY) {
     UPLL_LOG_DEBUG(" Invalid key type received. Key type - %d", ikey_type);
@@ -4248,12 +3989,12 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::ConstructReadDetailResponse(
 }
 
 upll_rc_t VbrIfFlowFilterEntryMoMgr::DeleteChildrenPOM(
-          ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
-          DalDmlIntf *dmi) {
+    ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   uint8_t *ctrlr_id = NULL;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
-// uint8_t rename = 0;
+  // uint8_t rename = 0;
   if (NULL == ikey && NULL == dmi) return result_code;
 
   ConfigKeyVal *temp_okey = NULL;
@@ -4263,7 +4004,7 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::DeleteChildrenPOM(
     return result_code;
   }
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone,
-                   kOpInOutCtrlr|kOpInOutDomain };
+    kOpInOutCtrlr|kOpInOutDomain|kOpInOutFlag };
   result_code = ReadConfigDB(temp_okey, UPLL_DT_CANDIDATE,
                              UNC_OP_READ, dbop, dmi, MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
@@ -4280,22 +4021,28 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::DeleteChildrenPOM(
   while (NULL != okey) {
     GET_USER_DATA_CTRLR(okey, ctrlr_id);
     val_flowfilter_entry_t *flowfilter_val =
-             reinterpret_cast<val_flowfilter_entry_t *> (GetVal(okey));
+        reinterpret_cast<val_flowfilter_entry_t *> (GetVal(okey));
     if (flowfilter_val->valid[UPLL_IDX_FLOWLIST_NAME_FFE] == UNC_VF_VALID) {
-      FlowListMoMgr *mgr = reinterpret_cast<FlowListMoMgr *>
-          (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
-      result_code = mgr->AddFlowListToController(
-          reinterpret_cast<char*>(flowfilter_val->flowlist_name), dmi,
-          reinterpret_cast<char *>(ctrlr_id), dt_type, UNC_OP_DELETE);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG(" Send delete request to flowlist failed. err code(%d)",
-                       result_code);
-        DELETE_IF_NOT_NULL(temp_okey);
-        return result_code;
+      uint8_t flag_port_map = 0;
+      GET_USER_DATA_FLAGS(okey, flag_port_map);
+      if ((flag_port_map & SET_FLAG_VLINK) ||
+          (flag_port_map & SET_FLAG_PORTMAP)) {
+        FlowListMoMgr *mgr = reinterpret_cast<FlowListMoMgr *>
+            (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
+        result_code = mgr->AddFlowListToController(
+            reinterpret_cast<char*>(flowfilter_val->flowlist_name), dmi,
+            reinterpret_cast<char *>(ctrlr_id), dt_type, UNC_OP_DELETE);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG(" Send delete request to flowlist failed."
+                         "err code(%d)",
+                         result_code);
+          DELETE_IF_NOT_NULL(temp_okey);
+          return result_code;
+        }
       }
     }
     result_code = UpdateConfigDB(okey, dt_type, UNC_OP_DELETE, dmi,
-                               MAINTBL);
+                                 MAINTBL);
     if (result_code != UPLL_RC_SUCCESS) {
       DELETE_IF_NOT_NULL(temp_okey);
       return result_code;
@@ -4315,8 +4062,8 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::SetValidAudit(ConfigKeyVal *&ikey) {
     return UPLL_RC_ERR_GENERIC;
   }
   for (unsigned int loop = 0;
-        loop < sizeof(val->valid) / sizeof(val->valid[0]);
-        ++loop) {
+       loop < sizeof(val->valid) / sizeof(val->valid[0]);
+       ++loop) {
     if (val->valid[loop] == UNC_VF_VALID) {
       val->cs_attr[loop] = UNC_CS_APPLIED;
     } else if (val->valid[loop] == UNC_VF_INVALID) {
@@ -4328,21 +4075,22 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::SetValidAudit(ConfigKeyVal *&ikey) {
 }
 
 bool VbrIfFlowFilterEntryMoMgr::FilterAttributes(void *&val1,
-                                          void *val2,
-                                          bool copy_to_running,
-                                          unc_keytype_operation_t op) {
+                                                 void *val2,
+                                                 bool copy_to_running,
+                                                 unc_keytype_operation_t op) {
   UPLL_FUNC_TRACE;
   if (op != UNC_OP_CREATE)
     return CompareValidValue(val1, val2, copy_to_running);
   return false;
 }
 
-upll_rc_t VbrIfFlowFilterEntryMoMgr::UpdateConfigStatus(ConfigKeyVal *ikey,
-                                       unc_keytype_operation_t op,
-                                       uint32_t driver_result,
-                                       ConfigKeyVal *upd_key,
-                                       DalDmlIntf *dmi,
-                                       ConfigKeyVal *ctrlr_key) {
+upll_rc_t VbrIfFlowFilterEntryMoMgr::UpdateConfigStatus(
+    ConfigKeyVal *ikey,
+    unc_keytype_operation_t op,
+    uint32_t driver_result,
+    ConfigKeyVal *upd_key,
+    DalDmlIntf *dmi,
+    ConfigKeyVal *ctrlr_key) {
   UPLL_FUNC_TRACE;
   ConfigKeyVal * vbr_ffe_run_key = NULL;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
@@ -4358,47 +4106,47 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::UpdateConfigStatus(ConfigKeyVal *ikey,
     result_code = GetChildConfigKey(vbr_ffe_run_key, ikey);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("GetChildConfigKey is failed resultcode=%d",
-                           result_code);
+                     result_code);
       return result_code;
     }
-    DbSubOp dbop_maintbl = { kOpReadSingle, kOpMatchNone, 
-                                          kOpInOutFlag |kOpInOutCs };
+    DbSubOp dbop_maintbl = { kOpReadSingle, kOpMatchNone,
+      kOpInOutFlag |kOpInOutCs };
     result_code = ReadConfigDB(vbr_ffe_run_key, UPLL_DT_RUNNING  ,
-                                     UNC_OP_READ, dbop_maintbl, dmi, MAINTBL);
+                               UNC_OP_READ, dbop_maintbl, dmi, MAINTBL);
     if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("Unable to read configuration from RunningDb");
-      DELETE_IF_NOT_NULL(vbr_ffe_run_key); 
+      UPLL_LOG_DEBUG("Unable to read configuration from RunningDb");
+      DELETE_IF_NOT_NULL(vbr_ffe_run_key);
       return result_code;
     }
     val_main = reinterpret_cast
-           <val_flowfilter_entry_t *>(GetVal(vbr_ffe_run_key));
+        <val_flowfilter_entry_t *>(GetVal(vbr_ffe_run_key));
     for (unsigned int loop = 0; loop < sizeof(val_main->valid)/
-           sizeof(val_main->valid[0]); ++loop) {
-           ffe_val->cs_attr[loop] = val_main->cs_attr[loop];
+         sizeof(val_main->valid[0]); ++loop) {
+      ffe_val->cs_attr[loop] = val_main->cs_attr[loop];
     }
     void *ffeval = reinterpret_cast<void *>(ffe_val);
     CompareValidValue(ffeval, GetVal(upd_key), true);
   } else {
     return UPLL_RC_ERR_GENERIC;
   }
-  UPLL_LOG_TRACE("%s",(ikey->ToStrAll()).c_str());
-  val_flowfilter_entry_t *ffe_val2 = 
-     reinterpret_cast<val_flowfilter_entry_t *>(GetVal(upd_key));
+  UPLL_LOG_TRACE("%s", (ikey->ToStrAll()).c_str());
+  val_flowfilter_entry_t *ffe_val2 =
+      reinterpret_cast<val_flowfilter_entry_t *>(GetVal(upd_key));
   if (UNC_OP_UPDATE == op) {
     UPLL_LOG_TRACE("%s", (upd_key->ToStrAll()).c_str());
     ffe_val->cs_row_status = ffe_val2->cs_row_status;
   }
   for (unsigned int loop = 0;
-    loop < sizeof(ffe_val->valid) / sizeof(ffe_val->valid[0]); ++loop) {
+       loop < sizeof(ffe_val->valid) / sizeof(ffe_val->valid[0]); ++loop) {
     /* Setting CS to the not supported attributes*/
     if (UNC_VF_NOT_SUPPORTED == ffe_val->valid[loop]) {
-        ffe_val->cs_attr[loop] = UNC_CS_NOT_SUPPORTED;
+      ffe_val->cs_attr[loop] = UNC_CS_NOT_SUPPORTED;
     } else if ((UNC_VF_VALID == ffe_val->valid[loop])
-          || (UNC_VF_VALID_NO_VALUE == ffe_val->valid[loop])) {
-        ffe_val->cs_attr[loop] = cs_status;
+               || (UNC_VF_VALID_NO_VALUE == ffe_val->valid[loop])) {
+      ffe_val->cs_attr[loop] = cs_status;
     } else if ((UNC_VF_INVALID == ffe_val->valid[loop]) &&
                (UNC_OP_CREATE == op)) {
-        ffe_val->cs_attr[loop] = UNC_CS_NOT_APPLIED;
+      ffe_val->cs_attr[loop] = UNC_CS_NOT_APPLIED;
     } else if ((UNC_VF_INVALID == ffe_val->valid[loop]) &&
                (UNC_OP_UPDATE == op)) {
       if (val_main->valid[loop] == UNC_VF_VALID) {
@@ -4407,28 +4155,28 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::UpdateConfigStatus(ConfigKeyVal *ikey,
         }
       }
     } else if ((UNC_VF_VALID == ffe_val->valid[loop]) &&
-       (UNC_OP_UPDATE == op)) {
+               (UNC_OP_UPDATE == op)) {
       if (cs_status == UNC_CS_APPLIED) {
         ffe_val->cs_attr[loop] = UNC_CS_APPLIED;
-      }  
-    } 
+      }
+    }
     if ((ffe_val->valid[loop] == UNC_VF_VALID_NO_VALUE)
-       &&(UNC_OP_UPDATE == op)) { 
+        &&(UNC_OP_UPDATE == op)) {
       ffe_val->cs_attr[loop]  = UNC_CS_UNKNOWN;
     }
     UPLL_LOG_TRACE("Value : %d Cs : %d", loop, ffe_val->cs_attr[loop]);
   }
-  DELETE_IF_NOT_NULL(vbr_ffe_run_key); 
+  DELETE_IF_NOT_NULL(vbr_ffe_run_key);
   return result_code;
 }
 
 upll_rc_t VbrIfFlowFilterEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
-    DalDmlIntf *dmi,
-    IpcReqRespHeader *req) {
+                                                   DalDmlIntf *dmi,
+                                                   IpcReqRespHeader *req) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_flowfilter_entry_t *val_ffe = reinterpret_cast
-    <val_flowfilter_entry_t *>(GetVal(ikey));
+      <val_flowfilter_entry_t *>(GetVal(ikey));
   if (!val_ffe) {
     UPLL_LOG_DEBUG("Val is NULL");
     return UPLL_RC_ERR_GENERIC;
@@ -4441,8 +4189,8 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
       return result_code;
     }
     MoMgrImpl *mgr =
-      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_VBRIF_FLOWFILTER)));
+        reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                    UNC_KT_VBRIF_FLOWFILTER)));
     if (!mgr) {
       UPLL_LOG_DEBUG("mgr is NULL");
       DELETE_IF_NOT_NULL(pkey);
@@ -4463,14 +4211,14 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
         ((UNC_OP_CREATE == req->operation))) {
       ConfigKeyVal *fl_ckv = NULL;
       result_code = GetFlowlistConfigKey(reinterpret_cast<const char *>
-          (val_ffe->flowlist_name), fl_ckv, dmi);
+                                         (val_ffe->flowlist_name), fl_ckv, dmi);
       if (UPLL_RC_SUCCESS != result_code) {
         UPLL_LOG_DEBUG("GetFlowlistConfigKey failed %d", result_code);
         return result_code;
       }
       MoMgrImpl *fl_mgr =
-      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_FLOWLIST)));
+          reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                      UNC_KT_FLOWLIST)));
       if (!fl_mgr) {
         UPLL_LOG_DEBUG("fl_mgr is NULL");
         DELETE_IF_NOT_NULL(fl_ckv);
@@ -4499,7 +4247,7 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
     }
     DbSubOp dbop1 = {kOpReadSingle, kOpMatchNone, kOpInOutFlag};
     result_code = ReadConfigDB(dup_ckv, req->datatype, UNC_OP_READ,
-                                     dbop1, dmi, MAINTBL);
+                               dbop1, dmi, MAINTBL);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
       DELETE_IF_NOT_NULL(dup_ckv);
@@ -4510,19 +4258,19 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
     if (UNC_VF_VALID == val_ffe->valid[UPLL_IDX_FLOWLIST_NAME_FFE]) {
       ConfigKeyVal *fl_ckv = NULL;
       result_code = GetFlowlistConfigKey(reinterpret_cast<const char *>
-          (val_ffe->flowlist_name), fl_ckv, dmi);
+                                         (val_ffe->flowlist_name), fl_ckv, dmi);
       if (UPLL_RC_SUCCESS != result_code) {
         UPLL_LOG_DEBUG("GetFlowlistConfigKey failed %d", result_code);
         return result_code;
       }
       MoMgrImpl *fl_mgr =
-      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_FLOWLIST)));
+          reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                      UNC_KT_FLOWLIST)));
       if (!fl_mgr) {
         UPLL_LOG_DEBUG("fl_mgr is NULL");
         DELETE_IF_NOT_NULL(fl_ckv);
         return UPLL_RC_ERR_GENERIC;
-      } 
+      }
       uint8_t fl_rename = 0;
       result_code = fl_mgr->IsRenamed(fl_ckv, req->datatype, dmi, fl_rename);
       if (UPLL_RC_SUCCESS != result_code) {
@@ -4532,7 +4280,7 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
       }
       UPLL_LOG_DEBUG("IsRenamed rename value : %d", rename);
       if (fl_rename & 0x01) {
-        rename |= FLOW_RENAME;  // TODO Check for correct flag value
+        rename |= FLOW_RENAME;  // TODO(upll): Check for correct flag value
         UPLL_LOG_DEBUG("rename value after flowlist : %d", rename);
       } else {
         rename &= NO_FLOWLIST_RENAME;
@@ -4541,7 +4289,9 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
       DELETE_IF_NOT_NULL(fl_ckv);
     } else if (UNC_VF_VALID_NO_VALUE == val_ffe->valid
                [UPLL_IDX_FLOWLIST_NAME_FFE]) {
-       rename &= NO_FLOWLIST_RENAME; // TODO Check for correct flag value. No rename flowlist value should be set
+      rename &= NO_FLOWLIST_RENAME;  // TODO(upll): Check for correct
+      // flag value.
+      // No rename flowlist value should be set
     }
     SET_USER_DATA_FLAGS(ikey, rename);
   }
@@ -4549,13 +4299,13 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
 }
 
 upll_rc_t VbrIfFlowFilterEntryMoMgr::GetFlowlistConfigKey(
-        const char *flowlist_name, ConfigKeyVal *&okey,
-        DalDmlIntf *dmi) {
+    const char *flowlist_name, ConfigKeyVal *&okey,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
   MoMgrImpl *mgr =
       reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_FLOWLIST)));
+                  UNC_KT_FLOWLIST)));
   result_code = mgr->GetChildConfigKey(okey, NULL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("GetChildConfigKey failed %d", result_code);
@@ -4564,8 +4314,8 @@ upll_rc_t VbrIfFlowFilterEntryMoMgr::GetFlowlistConfigKey(
   key_flowlist_t *okey_key = reinterpret_cast<key_flowlist_t *>
       (okey->get_key());
   uuu::upll_strncpy(okey_key->flowlist_name,
-        flowlist_name,
-        (kMaxLenFlowListName+1));
+                    flowlist_name,
+                    (kMaxLenFlowListName+1));
   return UPLL_RC_SUCCESS;
 }
 }  // namespace kt_momgr
index 1419f9063960aa07a6e300d1abbd938c74f6f456..07fa6ed8d3f0df9c164babd5ef8f1546f59f5643 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -21,13 +21,13 @@ namespace upll {
 namespace kt_momgr {
 
 /* This file declares interfaces for keyType KT_VRT_IF_FLOWFILTER */
-/**
- * @brief VbrIfFlowFilterEntryMoMgr class handles all the request
- *  received from service.
- */
+  /**
  * @brief VbrIfFlowFilterEntryMoMgr class handles all the request
  *  received from service.
  */
 
-class VbrIfFlowFilterEntryMoMgr : public MoMgrImpl {
-  private:
+  class VbrIfFlowFilterEntryMoMgr : public MoMgrImpl {
+   private:
     static BindInfo vbr_if_flowfilter_entry_bind_info[];
 
     /**
@@ -39,15 +39,14 @@ class VbrIfFlowFilterEntryMoMgr : public MoMgrImpl {
      * @brief Member Variable for FlowlistRenameBindInfo.
      */
     static BindInfo vbr_if_flowlist_rename_bind_info[];
-    uint32_t cur_instance_count;
 
-  public:
+   public:
     /**
      * @brief  Method used for GetObjectConfigKeyVal  Operation.
 
      * @param[out] okey    This Contains the pointerto the
-                           ConfigKeyVal Class forwhich
-                           fields have to be updated.
+     ConfigKeyVal Class forwhich
+     fields have to be updated.
      * @param[in] ikey     Pointer to ConfigKeyVal Class.
      * @param[in] ObjType  Specifies Flowlist Or N/w Monitor Type .
 
@@ -92,201 +91,203 @@ class VbrIfFlowFilterEntryMoMgr : public MoMgrImpl {
                            DalDmlIntf *dmi);
 
     /**
-    * @brief  Method used for CreateCandidateMo  Operation.
+     * @brief  Method used for CreateCandidateMo  Operation.
 
-    * @param[in] req   Describes RequestResponderHeaderClass.
-    * @param[in] ikey  Pointer to ConfigKeyVal Class.
-    * @param[in] dmi   Pointer to DalDmlIntf Class.
+     * @param[in] req   Describes RequestResponderHeaderClass.
+     * @param[in] ikey  Pointer to ConfigKeyVal Class.
+     * @param[in] dmi   Pointer to DalDmlIntf Class.
 
-    * @retval  UPLL_RC_SUCCESS             Successfull completion.
-    * @retval  UPLL_RC_ERR_INSTANCE_EXISTS Instance does Not exist
-    */
+     * @retval  UPLL_RC_SUCCESS             Successfull completion.
+     * @retval  UPLL_RC_ERR_INSTANCE_EXISTS Instance does Not exist
+     */
     upll_rc_t CreateCandidateMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                                DalDmlIntf *dmi);
+                                DalDmlIntf *dmi, bool restore_flag = false);
     /**
-    * @brief  Method used for DeleteMo  Operation.
+     * @brief  Method used for DeleteMo  Operation.
 
-    * @param[in] req   Describes RequestResponderHeaderClass.
-    * @param[in] ikey  Pointer to ConfigKeyVal Class.
-    * @param[in] dmi   Pointer to DalDmlIntf Class.
+     * @param[in] req   Describes RequestResponderHeaderClass.
+     * @param[in] ikey  Pointer to ConfigKeyVal Class.
+     * @param[in] dmi   Pointer to DalDmlIntf Class.
 
-    * @retval  UPLL_RC_SUCCESS      Successfull completion.
-    * @retval  UPLL_RC_ERR_GENERIC  Reurn Failure
-    */
+     * @retval  UPLL_RC_SUCCESS      Successfull completion.
+     * @retval  UPLL_RC_ERR_GENERIC  Reurn Failure
+     */
 
     upll_rc_t DeleteMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
                        DalDmlIntf *dmi);
     /**
-    * @brief  Method used to fill the CongigKeyVal with the
-              Parent Class Information.
-
-    * @param[out] okey        This Contains the pointerto the
-                              ConfigKeyVal Class forwhich
-                              fields have to be updated
-                              with values from the parent Class.
-    * @param[in]  parent_key  This Contains the pointer to the
-                              ConfigKeyVal Class which is the
-                              Parent Class used to fill the details.
-
-    * @retval UPLL_RC_SUCCESS     Successfull completion.
-    * @retval UPLL_RC_ERR_GENERIC Failure
-    */
+     * @brief  Method used to fill the CongigKeyVal with the
+     Parent Class Information.
+
+     * @param[out] okey        This Contains the pointerto the
+     ConfigKeyVal Class forwhich
+     fields have to be updated
+     with values from the parent Class.
+     * @param[in]  parent_key  This Contains the pointer to the
+     ConfigKeyVal Class which is the
+     Parent Class used to fill the details.
+
+     * @retval UPLL_RC_SUCCESS     Successfull completion.
+     * @retval UPLL_RC_ERR_GENERIC Failure
+     */
 
     upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *parent_key);
-   /**
-    * @brief  Method used for RenamedControllerkey(PfcName).
+    /**
+     * @brief  Method used for RenamedControllerkey(PfcName).
 
-    * @param[out] ikey       Contains the Pointer to ConfigkeyVal
-                             Class and contains the Pfc Name.
-    * @param[in] dt_type     Describes Configiration Information.
-    * @param[in] dmi         Pointer to DalDmlIntf Class.
-    * @param[in] ctrlr_name  Describes the Controller Name.
+     * @param[out] ikey       Contains the Pointer to ConfigkeyVal
+     Class and contains the Pfc Name.
+     * @param[in] dt_type     Describes Configiration Information.
+     * @param[in] dmi         Pointer to DalDmlIntf Class.
+     * @param[in] ctrlr_name  Describes the Controller Name.
 
-    * @retval UPLL_RC_SUCCESS      Successfull completion.
-    * @retval UPLL_RC_ERR_GENERIC  Return Failure
-    */
+     * @retval UPLL_RC_SUCCESS      Successfull completion.
+     * @retval UPLL_RC_ERR_GENERIC  Return Failure
+     */
 
     upll_rc_t GetRenamedControllerKey(ConfigKeyVal *ikey,
                                       upll_keytype_datatype_t dt_type,
                                       DalDmlIntf *dmi,
                                       controller_domain *ctrlr_dom);
     /**
-    * @brief  Method used to get the RenamedUncKey.
-    * @param[out] ikey      This Contains the pointer to
-                            the Class for which fields have
-                            to be updated with values from
-                            the parent Class.
-    * @param[in]  dt_type   Describes Configiration Information.
-    * @param[in]  dmi       Pointer to DalDmlIntf Class.
-    * @param[in]  ctrlr_id  Describes the Controller Name.
-
-    * @retval UPLL_RC_SUCCESS      Successfull completion.
-    * @retval UPLL_RC_ERR_GENERIC  Failure
-    */
+     * @brief  Method used to get the RenamedUncKey.
+     * @param[out] ikey      This Contains the pointer to
+     the Class for which fields have
+     to be updated with values from
+     the parent Class.
+     * @param[in]  dt_type   Describes Configiration Information.
+     * @param[in]  dmi       Pointer to DalDmlIntf Class.
+     * @param[in]  ctrlr_id  Describes the Controller Name.
+
+     * @retval UPLL_RC_SUCCESS      Successfull completion.
+     * @retval UPLL_RC_ERR_GENERIC  Failure
+     */
 
     upll_rc_t GetRenamedUncKey(ConfigKeyVal *ikey,
                                upll_keytype_datatype_t dt_type, DalDmlIntf *dmi,
                                uint8_t *ctrlr_id);
     /**
-    * @brief  Method used to Duplicate the ConfigkeyVal.
+     * @brief  Method used to Duplicate the ConfigkeyVal.
 
-    * @param[out] okey  This Contains the pointer to
-                        the Class for which fields
-                        have to be updated with values
-                        from the Request.
-    * @param[in]  req   This Contains the pointer to the
-                        Class which is used for the Duplication .
+     * @param[out] okey  This Contains the pointer to
+     the Class for which fields
+     have to be updated with values
+     from the Request.
+     * @param[in]  req   This Contains the pointer to the
+     Class which is used for the Duplication .
 
-    * @retval UPLL_RC_SUCCESS      Successfull completion.
-    * @retval UPLL_RC_ERR_GENERIC  Generic failure
-    */
+     * @retval UPLL_RC_SUCCESS      Successfull completion.
+     * @retval UPLL_RC_ERR_GENERIC  Generic failure
+     */
 
     upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
                               MoMgrTables tbl);
     /**
-    * @brief  Method used for Update Operation.
+     * @brief  Method used for Update Operation.
 
-    * @param[in] req   Describes RequestResponderHeaderClass.
-    * @param[in] ikey  Pointer to ConfigKeyVal Class.
-    * @param[in] dmi   Pointer to DalDmlIntf Class.
+     * @param[in] req   Describes RequestResponderHeaderClass.
+     * @param[in] ikey  Pointer to ConfigKeyVal Class.
+     * @param[in] dmi   Pointer to DalDmlIntf Class.
 
-    * @retval UPLL_RC_SUCCESS     Successfull completion.
-    * @retval UPLL_RC_ERR_GENERIC Failure
-    */
+     * @retval UPLL_RC_SUCCESS     Successfull completion.
+     * @retval UPLL_RC_ERR_GENERIC Failure
+     */
 
     upll_rc_t UpdateMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
                        DalDmlIntf *dmi);
     /**
-    * @brief  Method Updates the ConfigStatus for AuditConfigiration.
-    *
-    * @param[out]  ckv_running  This Contains the pointer to the Class
-    *                           for which Audit ConfigStatus is Updated.
-    * @param[in]   cs_status    Describes CsStatus Information.
-    *                           Information.
-    * @param[in]   phase        Describes the Phase of the Operation.
-    *
-    * @retval  UPLL_RC_SUCCESS  Successfull completion.
-    * @retval  UPLL_RC_GENERIC  Returned Generic Error.
-    */
+     * @brief  Method Updates the ConfigStatus for AuditConfigiration.
+     *
+     * @param[out]  ckv_running  This Contains the pointer to the Class
+     *                           for which Audit ConfigStatus is Updated.
+     * @param[in]   cs_status    Describes CsStatus Information.
+     *                           Information.
+     * @param[in]   phase        Describes the Phase of the Operation.
+     * @param[in]   dmi          Pointer to the DalDmlIntf(DB Interface)
+     *
+     * @retval  UPLL_RC_SUCCESS  Successfull completion.
+     * @retval  UPLL_RC_GENERIC  Returned Generic Error.
+     */
     upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
                                       uuc::UpdateCtrlrPhase phase,
-                                      ConfigKeyVal *&ckv_running);
+                                      ConfigKeyVal *&ckv_running,
+                                      DalDmlIntf *dmi);
 
     /**
-    * @brief  Method used for Trasaction Vote Operation.
+     * @brief  Method used for Trasaction Vote Operation.
 
-    * @param[in] key            Pointer to ConfigKeyVal Class.
-    * @param[in] op             Describes the Type of Opeartion.
-    * @param[in] driver_result  Describes the result of Driver Operation.
-    * @param[in] upd_key        Pointer to ConfigKeyVal Class.
-    * @param[in] ctrlr_key      Pointer to ConfigKeyVal Class.
+     * @param[in] key            Pointer to ConfigKeyVal Class.
+     * @param[in] op             Describes the Type of Opeartion.
+     * @param[in] driver_result  Describes the result of Driver Operation.
+     * @param[in] upd_key        Pointer to ConfigKeyVal Class.
+     * @param[in] ctrlr_key      Pointer to ConfigKeyVal Class.
 
-    * @retval  UPLL_RC_SUCCESS      Successfull completion.
-    * @retval  UPLL_RC_ERR_GENERIC  Failure
-    */
+     * @retval  UPLL_RC_SUCCESS      Successfull completion.
+     * @retval  UPLL_RC_ERR_GENERIC  Failure
+     */
 
     upll_rc_t UpdateConfigStatus(ConfigKeyVal *key, unc_keytype_operation_t op,
                                  uint32_t driver_result, ConfigKeyVal *upd_key,
                                  DalDmlIntf *dmi, ConfigKeyVal *ctrlr_key);
     /**
-    * @brief  Method used for Validation before Merge.
+     * @brief  Method used for Validation before Merge.
 
-    * @param[in] ikey      This Contains the pointer to the
-                           Class for which fields have to
-                           be Validated before the Merge.
-    * @param[in] keytype   Describes the keyType Information.
-    * @param[in] dmi       Pointer to DalDmlIntf Class.
-    * @param[in] ctrlr_id  Describes the Controller Name.
+     * @param[in] ikey      This Contains the pointer to the
+     Class for which fields have to
+     be Validated before the Merge.
+     * @param[in] keytype   Describes the keyType Information.
+     * @param[in] dmi       Pointer to DalDmlIntf Class.
+     * @param[in] ctrlr_id  Describes the Controller Name.
 
-    * @retval UPLL_RC_SUCCESS             Successfull completion.
-    * @retval UPLL_RC_ERR_MERGE_CONFLICT  metge Conflict Error
-    */
+     * @retval UPLL_RC_SUCCESS             Successfull completion.
+     * @retval UPLL_RC_ERR_MERGE_CONFLICT  metge Conflict Error
+     */
 
     upll_rc_t MergeValidate(unc_key_type_t keytype, const char *ctrlr_id,
                             ConfigKeyVal *ikey, DalDmlIntf *dmi);
     /**
-    * @brief  Allocates Memory for the Incoming Pointer to the Class.
+     * @brief  Allocates Memory for the Incoming Pointer to the Class.
 
-    * @param[out] ck_val   This Contains the pointer to the Class for
-                           which memory has to be allocated.
-    * @param[in]  dt_type  Describes Configiration Information.
-    * @param[in]  tbl      Describes the Destination table Information.
+     * @param[out] ck_val   This Contains the pointer to the Class for
+     which memory has to be allocated.
+     * @param[in]  dt_type  Describes Configiration Information.
+     * @param[in]  tbl      Describes the Destination table Information.
 
-    * @retval UPLL_RC_SUCCESS       Successfull completion.
-    * @retval  UPLL_RC_ERR_GENERIC  Return Generic Error
-    */
+     * @retval UPLL_RC_SUCCESS       Successfull completion.
+     * @retval  UPLL_RC_ERR_GENERIC  Return Generic Error
+     */
 
     upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
                        MoMgrTables tbl);
     /**
-    * @brief  Allocates Memory for the Incoming Pointer to the Class.
+     * @brief  Allocates Memory for the Incoming Pointer to the Class.
 
-    *@param[out] val      This Contains the pointer to the Class for
-                          which memory has to be allocated.
-    *@param[in]  indx     Describes The Index Value
-    *@param[in]  valid    Describes The Validity Of VrtIfFlowFilterEntryMoMgr
-    *@param[in]  dt_type  Describes Configiration Information.
-    *@param[in]  tbl      Describes the Destination table Information.
+     *@param[out] val      This Contains the pointer to the Class for
+     which memory has to be allocated.
+     *@param[in]  indx     Describes The Index Value
+     *@param[in]  valid    Describes The Validity Of VrtIfFlowFilterEntryMoMgr
+     *@param[in]  dt_type  Describes Configiration Information.
+     *@param[in]  tbl      Describes the Destination table Information.
 
-    * @retval  UPLL_RC_SUCCESS      Successfull completion.
-    * @retval  UPLL_RC_ERR_GENERIC  Failure
-    */
+     * @retval  UPLL_RC_SUCCESS      Successfull completion.
+     * @retval  UPLL_RC_ERR_GENERIC  Failure
+     */
 
     upll_rc_t GetValid(void *val, uint64_t indx, uint8_t *&valid,
                        upll_keytype_datatype_t dt_type, MoMgrTables tbl);
     /**
-    * @brief  Method Updates the ConfigStatus for AuditConfigiration.
+     * @brief  Method Updates the ConfigStatus for AuditConfigiration.
 
-    * @param[out] ckv_db               This Contains the pointer to
-                                       the Class for which ConfigStatus
-                                       is Updated.
-    * @param[in]  ctrlr_commit_status  Describes Commit Control Status Information.
-    * @param[in]  response_code        Describes the Response Code.
-    * @param[in]  dmi                  Pinter to DalDmlIntf Class.
+     * @param[out] ckv_db               This Contains the pointer to
+     the Class for which ConfigStatus
+     is Updated.
+     * @param[in]  ctrlr_commit_status  Describes Commit Control Status Information.
+     * @param[in]  response_code        Describes the Response Code.
+     * @param[in]  dmi                  Pinter to DalDmlIntf Class.
 
-    * @retval UPLL_RC_SUCCESS               Successfull completion.
-    * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE  Return No Such Instance Exist
-    */
+     * @retval UPLL_RC_SUCCESS               Successfull completion.
+     * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE  Return No Such Instance Exist
+     */
 
     upll_rc_t ReadMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
                      DalDmlIntf *dmi);
@@ -319,8 +320,7 @@ class VbrIfFlowFilterEntryMoMgr : public MoMgrImpl {
      * @retval UPLL_RC_ERR_GENERIC           Generic failure.
      */
     upll_rc_t ValidateVbrIfValStruct(IpcReqRespHeader *req,
-                                     ConfigKeyVal *ikey,
-                                     DalDmlIntf *dmi);
+                                     ConfigKeyVal *ikey);
 
 
     /**
@@ -332,8 +332,8 @@ class VbrIfFlowFilterEntryMoMgr : public MoMgrImpl {
      * @retval UPLL_RC_ERR_CFG_SYNTAX  validation failed.
      */
     upll_rc_t ValidateVbrIfFlowfilterEntryKey(
-           key_vbr_if_flowfilter_entry_t* key_vbr_if_flowfilter_entry,
-           unc_keytype_operation_t operation);
+        key_vbr_if_flowfilter_entry_t* key_vbr_if_flowfilter_entry,
+        unc_keytype_operation_t operation);
 
     /**
      * @Brief Checks if the specified key type(KT_VBRIF_FLOWFILTER_ENTRY) and
@@ -401,7 +401,7 @@ class VbrIfFlowFilterEntryMoMgr : public MoMgrImpl {
     bool IsValidKey(void *key,
                     uint64_t index);
 
-     /**
+    /**
      * @brief  Method used for GetParentConfigKey Operation.
      *
      * @param[out]  okey        Pointer to ConfigKeyVal Class.
@@ -434,41 +434,41 @@ class VbrIfFlowFilterEntryMoMgr : public MoMgrImpl {
      *
      * @retval  UPLL_RC_SUCCESS      Successfull completion.
      * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
-     * @retval  UPLL_RC_ERR_INSTANCE_EXISTS       Record already exists 
+     * @retval  UPLL_RC_ERR_INSTANCE_EXISTS       Record already exists
      * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
      */
-     upll_rc_t RestorePOMInCtrlTbl(ConfigKeyVal *ikey,
-                                   upll_keytype_datatype_t dt_type,
-                                   MoMgrTables tbl,
-                                   DalDmlIntf* dmi);
+    upll_rc_t RestorePOMInCtrlTbl(ConfigKeyVal *ikey,
+                                  upll_keytype_datatype_t dt_type,
+                                  MoMgrTables tbl,
+                                  DalDmlIntf* dmi);
 
-     upll_rc_t ReadSiblingMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                             bool begin, DalDmlIntf *dmi);
+    upll_rc_t ReadSiblingMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
+                            bool begin, DalDmlIntf *dmi);
 
-     upll_rc_t RenameMo(IpcReqRespHeader *req,
-                        ConfigKeyVal *key,
-                        DalDmlIntf *dmi,
-                        const char *ctrlr_id);
+    upll_rc_t RenameMo(IpcReqRespHeader *req,
+                       ConfigKeyVal *key,
+                       DalDmlIntf *dmi,
+                       const char *ctrlr_id);
 
     upll_rc_t TxVote(unc_key_type_t keytype,
                      DalDmlIntf *dmi,
                      ConfigKeyVal **err_ckv);
     upll_rc_t TxUpdateController(unc_key_type_t keytype,
-                                        uint32_t session_id,
-                                        uint32_t config_id,
-                                        uuc::UpdateCtrlrPhase phase,
-                                        set<string> *affected_ctrlr_set,
-                                        DalDmlIntf *dmi,
-                                        ConfigKeyVal **err_ckv);
+                                 uint32_t session_id,
+                                 uint32_t config_id,
+                                 uuc::UpdateCtrlrPhase phase,
+                                 set<string> *affected_ctrlr_set,
+                                 DalDmlIntf *dmi,
+                                 ConfigKeyVal **err_ckv);
 
     upll_rc_t ConstructReadDetailResponse(ConfigKeyVal *ikey,
                                           ConfigKeyVal *drv_resp_ckv,
                                           ConfigKeyVal **okey);
 
     upll_rc_t GetVexternalInformation(ConfigKeyVal* ck_main,
-        upll_keytype_datatype_t dt_type,
-        pfcdrv_val_flowfilter_entry_t*& pfc_val,
-       uint8_t db_flag, DalDmlIntf *dmi);
+                                      upll_keytype_datatype_t dt_type,
+                                      pfcdrv_val_flowfilter_entry_t*& pfc_val,
+                                      uint8_t db_flag, DalDmlIntf *dmi);
 
     upll_rc_t SetVlinkPortmapConfiguration(ConfigKeyVal *ikey,
                                            upll_keytype_datatype_t dt_type,
@@ -485,12 +485,13 @@ class VbrIfFlowFilterEntryMoMgr : public MoMgrImpl {
                                 const char *ctrlr_id);
 
     upll_rc_t AuditUpdateController(unc_key_type_t keytype,
-                             const char *ctrlr_id,
-                             uint32_t session_id,
-                             uint32_t config_id,
-                             uuc::UpdateCtrlrPhase phase,
-                             bool *ctrlr_affected,
-                             DalDmlIntf *dmi);
+                                    const char *ctrlr_id,
+                                    uint32_t session_id,
+                                    uint32_t config_id,
+                                    uuc::UpdateCtrlrPhase phase,
+                                    DalDmlIntf *dmi,
+                                    ConfigKeyVal **err_ckv,
+                                    KTxCtrlrAffectedState *ctrlr_affected);
 
     upll_rc_t DeleteChildrenPOM(ConfigKeyVal *ikey,
                                 upll_keytype_datatype_t dt_type,
@@ -509,14 +510,14 @@ class VbrIfFlowFilterEntryMoMgr : public MoMgrImpl {
                           unc_keytype_operation_t op);
 
     upll_rc_t GetFlowlistConfigKey(
-          const char *flowlist_name, ConfigKeyVal *&okey,
-          DalDmlIntf *dmi);
+        const char *flowlist_name, ConfigKeyVal *&okey,
+        DalDmlIntf *dmi);
 
     upll_rc_t SetRenameFlag(ConfigKeyVal *ikey,
-          DalDmlIntf *dmi,
-          IpcReqRespHeader *req);
+                            DalDmlIntf *dmi,
+                            IpcReqRespHeader *req);
 
- public:
  public:
     VbrIfFlowFilterEntryMoMgr();
     ~VbrIfFlowFilterEntryMoMgr() {
       for (int i = 0; i < ntable; i++) {
@@ -526,7 +527,7 @@ class VbrIfFlowFilterEntryMoMgr : public MoMgrImpl {
       }
       delete[] table;
     }
-};
+  };
 }  // namespace kt_momgr
 }  // namespace upll
 }  // namespace unc
index a69a05958398fbcc0a048600203f5b9c9367a7d1..5042a05e3788f38522b421d9ebcf56fe2996a023 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -80,11 +80,13 @@ VbrIfFlowFilterMoMgr::VbrIfFlowFilterMoMgr() : MoMgrImpl() {
   // setting  table indexed for ctrl and rename table to NULL;
   ntable = MAX_MOMGR_TBLS;
   table = new Table *[ntable];
-  cur_instance_count = 0;
   // For Main Table
-  table[MAINTBL] = new Table(uudst::kDbiVbrIfFlowFilterTbl,
-      UNC_KT_VBRIF_FLOWFILTER, vbr_if_flowfilter_bind_info,
-      IpctSt::kIpcStKeyVbrIfFlowfilter, IpctSt::kIpcStValFlowfilter,
+  table[MAINTBL] = new Table(
+      uudst::kDbiVbrIfFlowFilterTbl,
+      UNC_KT_VBRIF_FLOWFILTER,
+      vbr_if_flowfilter_bind_info,
+      IpctSt::kIpcStKeyVbrIfFlowfilter,
+      IpctSt::kIpcStValFlowfilter,
       uudst::vbr_if_flowfilter::kDbiVbrIfFlowFilterNumCols);
   table[RENAMETBL] = NULL;
   table[CTRLRTBL] = NULL;
@@ -93,11 +95,11 @@ VbrIfFlowFilterMoMgr::VbrIfFlowFilterMoMgr() : MoMgrImpl() {
 }
 
 upll_rc_t VbrIfFlowFilterMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey,
-    DalDmlIntf *dmi) {
+                                                  ConfigKeyVal *ikey,
+                                                  DalDmlIntf *dmi,
+                                                  bool restore_flag) {
   UPLL_FUNC_TRACE;
-  ConfigKeyVal *temp_key = NULL;
+
   if (ikey == NULL || req == NULL) {
     return UPLL_RC_ERR_GENERIC;
   }
@@ -106,46 +108,70 @@ upll_rc_t VbrIfFlowFilterMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
 
   if (req->datatype == UPLL_DT_IMPORT) {
     UPLL_LOG_DEBUG("Inside:-%d", req->datatype);
-     if (ikey->get_cfg_val() &&
-            (ikey->get_cfg_val()->get_st_num() ==
-                 IpctSt::kIpcStPfcdrvValVbrifVextif)) {
-        UPLL_LOG_DEBUG("val struct num (%d)",ikey->get_cfg_val()->get_st_num());
-        ikey->SetCfgVal(NULL);
-     }
+    if (ikey->get_cfg_val() &&
+        (ikey->get_cfg_val()->get_st_num() ==
+         IpctSt::kIpcStPfcdrvValVbrifVextif)) {
+      UPLL_LOG_DEBUG("val struct num (%d)", ikey->get_cfg_val()->get_st_num());
+      ikey->SetCfgVal(NULL);
+    }
   }
 
-  // validate syntax and semantics
-  result_code = ValidateMessage(req, ikey);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("ValidateMessage failed, Error - %d", result_code);
-    return result_code;
+  if (!restore_flag) {
+    // validate syntax and semantics
+    result_code = ValidateMessage(req, ikey);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("ValidateMessage failed, Error - %d", result_code);
+      return result_code;
+    }
   }
   result_code = ValidateAttribute(ikey, dmi, req);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("ValidateAttribute failed, Error - %d", result_code);
     return result_code;
   }
-  result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_READ, dmi);
-  if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS
-      || result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-    UPLL_LOG_DEBUG(" An instance of the object exists. err code(%d)",
-                   result_code);
-    return result_code;
-  }
 
-  if (UPLL_DT_CANDIDATE == req->datatype) {
-  result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING,
-                               UNC_OP_READ, dmi, MAINTBL);
-  if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
-    result_code = RestoreChildren(ikey, req->datatype, UPLL_DT_RUNNING, dmi);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("restoring the object failed. err code(%d)",
-                     result_code);
-      return UPLL_RC_ERR_GENERIC;
-    }
-      return result_code;
+  if (!restore_flag) {
+    if (UPLL_DT_CANDIDATE == req->datatype) {
+      result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dmi,
+                                   MAINTBL);
+      if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
+        UPLL_LOG_DEBUG("Key instance exist");
+        if ((ikey)->get_cfg_val()) {
+          UPLL_LOG_DEBUG("Read Key with Value struct");
+          DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
+            kOpInOutFlag | kOpInOutCtrlr | kOpInOutDomain };
+          result_code = ReadConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dbop,
+                                     dmi, MAINTBL);
+          if (UPLL_RC_SUCCESS != result_code &&
+              UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+            UPLL_LOG_DEBUG("ReadConfigDB Failed %d",  result_code);
+          }
+          if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code)  {
+            return UPLL_RC_ERR_CFG_SEMANTIC;
+          }
+        } else  {
+          result_code = UPLL_RC_SUCCESS;
+        }
+        if (UPLL_RC_SUCCESS == result_code) {
+          result_code = RestoreChildren(ikey,
+                                        req->datatype,
+                                        UPLL_DT_RUNNING,
+                                        dmi,
+                                        req);
+          UPLL_LOG_DEBUG("Restore Children returns %d", result_code);
+          return result_code;
+        }
+      } else if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+        UPLL_LOG_DEBUG("UpdateConfigDB Failed %d", result_code);
+        return result_code;
+      }
+    } else {
+      result_code = UPLL_RC_ERR_NO_SUCH_INSTANCE;
     }
+  } else {
+    result_code = UPLL_RC_ERR_NO_SUCH_INSTANCE;
   }
+
   if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
     // create a record in CANDIDATE DB
     VbrIfMoMgr *mgrvbrif =
@@ -178,12 +204,68 @@ upll_rc_t VbrIfFlowFilterMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
         (ConfigKeyVal::Malloc(kMaxLenInterfaceName + 1));
     result_code = mgrvbrif->GetVexternal(ckv, req->datatype, dmi,
                                          vexternal, vex_if, flags);
+    FREE_IF_NOT_NULL(vexternal);
+    FREE_IF_NOT_NULL(vex_if);
+
     if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG("GetVexternal failed %d", result_code);
+      DELETE_IF_NOT_NULL(ckv);
+      return result_code;
+    }
+
+    /* VlanmapOnBoundary: vbr_if_flowfilter is not allowed on
+     * vbr interface of boundary vlink which is SW or SD mapped */
+    VlinkMoMgr *vlink_mgr =
+        reinterpret_cast<VlinkMoMgr *>(const_cast<MoManager*>(GetMoManager(
+                    UNC_KT_VLINK)));
+    if (!vlink_mgr) {
+      UPLL_LOG_DEBUG("vlink_mgr is Null");
+      return UPLL_RC_ERR_GENERIC;
+    }
+    ConfigKeyVal *ck_vlink = NULL;
+    vn_if_type iftype;
+
+    /* Verifies whether the requested vbridge interface is boundary
+     * vlinked with logical port id is SW or SD. If it is part of SW or SD
+     * boundary linked, cannot configure flo-filter in that vbridge interface*/
+    result_code =  vlink_mgr->CheckIfMemberOfVlink(ckv,
+                                                   req->datatype,
+                                                   ck_vlink,
+                                                   dmi,
+                                                   iftype);
+
+    if (result_code == UPLL_RC_SUCCESS) {
+      unc_key_type_t ktype1;
+      if (iftype == kVlinkBoundaryNode1) {
+        UPLL_LOG_DEBUG("iftype is kVlinkBoundaryNode1");
+        ktype1 = vlink_mgr->GetVlinkVnodeIfKeyType(ck_vlink, 0);
+        if (ktype1 == UNC_KT_VBR_VLANMAP) {
+          UPLL_LOG_DEBUG("iftype is kVlinkBoundaryNode1 And "
+                         "ktype is UNC_KT_VBR_VLANMAP");
+          DELETE_IF_NOT_NULL(ckv);
+          DELETE_IF_NOT_NULL(ck_vlink);
+          return UPLL_RC_ERR_CFG_SEMANTIC;
+        }
+      } else if (iftype == kVlinkBoundaryNode2) {
+        UPLL_LOG_DEBUG("iftype is kVlinkBoundaryNode2");
+        ktype1 = vlink_mgr->GetVlinkVnodeIfKeyType(ck_vlink, 1);
+        if (ktype1 == UNC_KT_VBR_VLANMAP) {
+          UPLL_LOG_DEBUG("iftype is kVlinkBoundaryNode2 And "
+                         "ktype is UNC_KT_VBR_VLANMAP");
+          DELETE_IF_NOT_NULL(ckv);
+          DELETE_IF_NOT_NULL(ck_vlink);
+          return UPLL_RC_ERR_CFG_SEMANTIC;
+        }
+      }
+    } else if (result_code != UPLL_RC_SUCCESS &&
+              result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
       DELETE_IF_NOT_NULL(ckv);
-      free(vexternal);
-      free(vex_if);
+      UPLL_LOG_DEBUG("CheckIfMemberOfVlink is Fail");
       return result_code;
     }
+    DELETE_IF_NOT_NULL(ck_vlink);
+    /* If its not member of vlink continue below steps */
+
     DELETE_IF_NOT_NULL(ckv);
     uint8_t flag_port_map = 0;
     GET_USER_DATA_FLAGS(ikey, flag_port_map);
@@ -195,47 +277,33 @@ upll_rc_t VbrIfFlowFilterMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
       flag_port_map = flag_port_map|SET_FLAG_VLINK_PORTMAP;
     }
 
-    free(vexternal);
-    free(vex_if);
     SET_USER_DATA_FLAGS(ikey, flag_port_map);
 
     controller_domain ctrlr_dom;
     memset(&ctrlr_dom, 0, sizeof(controller_domain));
     result_code = GetControllerDomainID(ikey, req->datatype, dmi);
     if (result_code != UPLL_RC_SUCCESS) {
+      if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+        result_code = UPLL_RC_ERR_PARENT_DOES_NOT_EXIST;
+      }
       UPLL_LOG_DEBUG("Failed to Get the Controller Domain details, err:%d",
                      result_code);
+      return result_code;
     }
     GET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
 
     UPLL_LOG_DEBUG("ctrlrid %s, domainid %s",
                    ctrlr_dom.ctrlr, ctrlr_dom.domain);
 
-    result_code = GetChildConfigKey(temp_key, NULL);
-    if(result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetChildConfigKey Failed in  ValidateCapability");
-      return result_code;
-    }
-    result_code = GetInstanceCount(temp_key,
-                                   reinterpret_cast <char*>(ctrlr_dom.ctrlr),
-                                     req->datatype,
-                                     &cur_instance_count,
-                                     dmi,
-                                     MAINTBL);
-    delete temp_key;
-    if(result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetInstanceCount Failed in  ValidateCapability");
-      return result_code;
-    }
-
     result_code = ValidateCapability(req, ikey,
-                   reinterpret_cast<const char *>(ctrlr_dom.ctrlr));
+                                     reinterpret_cast<const char *>
+                                     (ctrlr_dom.ctrlr));
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("validate Capability Failed %d", result_code);
       return result_code;
     }
     DbSubOp dbop1 = {kOpNotRead, kOpMatchNone, kOpInOutCtrlr | kOpInOutDomain |
-                                               kOpInOutFlag};
+      kOpInOutFlag};
     result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_CREATE,
                                  dmi, &dbop1, MAINTBL);
     if (UPLL_RC_SUCCESS != result_code) {
@@ -249,40 +317,39 @@ upll_rc_t VbrIfFlowFilterMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
 }
 
 upll_rc_t VbrIfFlowFilterMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
-                                   DalDmlIntf *dmi,
-                                   const char *ctrlr_id) {
+                                                  DalDmlIntf *dmi,
+                                                  const char *ctrlr_id) {
   UPLL_FUNC_TRACE;
   uint8_t flags = 0;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   UPLL_LOG_TRACE(" ikey is %s", ikey->ToStrAll().c_str());
   uint8_t *controller_id = reinterpret_cast<uint8_t *>(
-                                 const_cast<char *>(ctrlr_id));
+      const_cast<char *>(ctrlr_id));
 
   /* check if object is renamed in the corresponding Rename Tbl
    * if "renamed"  create the object by the UNC name.
    * else - create using the controller name.
    */
   result_code = GetRenamedUncKey(ikey, UPLL_DT_RUNNING, dmi, controller_id);
-  if (result_code != UPLL_RC_SUCCESS && result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+  if (result_code != UPLL_RC_SUCCESS && result_code !=
+      UPLL_RC_ERR_NO_SUCH_INSTANCE) {
     UPLL_LOG_DEBUG("GetRenamedUncKey Failed err_code %d", result_code);
     return result_code;
   }
 
   pfcdrv_val_vbrif_vextif_t *pfc_val =
-    reinterpret_cast<pfcdrv_val_vbrif_vextif_t *> ((GetVal(ikey)));
+      reinterpret_cast<pfcdrv_val_vbrif_vextif_t *> ((GetVal(ikey)));
 
   if (pfc_val == NULL) {
     return UPLL_RC_ERR_GENERIC;
   }
-  
+
   if (pfc_val->interface_type == PFCDRV_IF_TYPE_VBRIF) {
     flags = SET_FLAG_VLINK;
-  }
-  else if (pfc_val->interface_type == PFCDRV_IF_TYPE_VEXTIF) {
+  } else if (pfc_val->interface_type == PFCDRV_IF_TYPE_VEXTIF) {
     flags = SET_FLAG_PORTMAP;
-  }
-  else {
-   flags = 0;
+  } else {
+    flags = 0;
   }
 
 
@@ -309,7 +376,11 @@ upll_rc_t VbrIfFlowFilterMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
                  ctrlr_dom.ctrlr, ctrlr_dom.domain);
 
   // Create a record in AUDIT DB
-  result_code = UpdateConfigDB(okey, UPLL_DT_AUDIT, UNC_OP_CREATE, dmi, MAINTBL);
+  result_code = UpdateConfigDB(okey,
+                               UPLL_DT_AUDIT,
+                               UNC_OP_CREATE,
+                               dmi,
+                               MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("UpdateConfigDB Failed err_code %d", result_code);
   }
@@ -318,13 +389,15 @@ upll_rc_t VbrIfFlowFilterMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
   return result_code;
 }
 
-upll_rc_t VbrIfFlowFilterMoMgr::AuditUpdateController(unc_key_type_t keytype,
-                             const char *ctrlr_id,
-                             uint32_t session_id,
-                             uint32_t config_id,
-                             uuc::UpdateCtrlrPhase phase1,
-                             bool *ctrlr_affected,
-                             DalDmlIntf *dmi) {
+upll_rc_t VbrIfFlowFilterMoMgr::AuditUpdateController(
+    unc_key_type_t keytype,
+    const char *ctrlr_id,
+    uint32_t session_id,
+    uint32_t config_id,
+    uuc::UpdateCtrlrPhase phase1,
+    DalDmlIntf *dmi,
+    ConfigKeyVal **err_ckv,
+    KTxCtrlrAffectedState *ctrlr_affected) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   DalResultCode db_result = uud::kDalRcSuccess;
@@ -340,6 +413,7 @@ upll_rc_t VbrIfFlowFilterMoMgr::AuditUpdateController(unc_key_type_t keytype,
   uint8_t db_flag = 0;
   uint8_t auditdb_flag = 0;
   uint8_t *ctrlr = reinterpret_cast<uint8_t *>(const_cast<char *>(ctrlr_id));
+
   DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutCtrlr | kOpInOutDomain};
   if (phase1 == uuc::kUpllUcpCreate) {
     return result_code;
@@ -355,278 +429,356 @@ upll_rc_t VbrIfFlowFilterMoMgr::AuditUpdateController(unc_key_type_t keytype,
     nop = 1;
   }
   for (int i = 0; i < nop; i++) {
-  /* retreives the delta of running and audit configuration */
-  unc_keytype_operation_t op1 = op[i];
+    /* retreives the delta of running and audit configuration */
+    cursor = NULL;
+    unc_keytype_operation_t op1 = op[i];
     uuc::UpdateCtrlrPhase phase = (op[i] == UNC_OP_UPDATE)?uuc::kUpllUcpUpdate:
-      ((op[i] == UNC_OP_CREATE)?uuc::kUpllUcpCreate:
-       ((op[i] == UNC_OP_DELETE)?uuc::kUpllUcpDelete:uuc::kUpllUcpInvalid));
-  UPLL_LOG_DEBUG("Operation is %d", op[i]); 
-  result_code = DiffConfigDB(UPLL_DT_RUNNING, UPLL_DT_AUDIT, op[i],
-        ckv_running_db, ckv_audit_db,
-        &cursor, dmi, ctrlr, MAINTBL);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("DiffConfigDB failed - %d", result_code);
-    return result_code;
-  }
-  if (cursor == NULL) {
+        ((op[i] == UNC_OP_CREATE)?uuc::kUpllUcpCreate:
+         ((op[i] == UNC_OP_DELETE)?uuc::kUpllUcpDelete:uuc::kUpllUcpInvalid));
+    UPLL_LOG_DEBUG("Operation is %d", op[i]);
+    result_code = DiffConfigDB(UPLL_DT_RUNNING, UPLL_DT_AUDIT, op[i],
+                               ckv_running_db, ckv_audit_db,
+                               &cursor, dmi, ctrlr, MAINTBL);
+    if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+      result_code = UPLL_RC_SUCCESS;
+      UPLL_LOG_DEBUG("No more diff found for operation %d", op[i]);
+      DELETE_IF_NOT_NULL(ckv_running_db);
+      DELETE_IF_NOT_NULL(ckv_audit_db);
+      continue;
+    }
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG("DiffConfigDB failed - %d", result_code);
+      DELETE_IF_NOT_NULL(ckv_running_db);
+      DELETE_IF_NOT_NULL(ckv_audit_db);
+      return result_code;
+    }
+    if (cursor == NULL) {
       UPLL_LOG_DEBUG("cursor is null");
+      DELETE_IF_NOT_NULL(ckv_running_db);
+      DELETE_IF_NOT_NULL(ckv_audit_db);
       return UPLL_RC_ERR_GENERIC;
-  }
-  while (uud::kDalRcSuccess == (db_result = dmi->GetNextRecord(cursor))) {
-    op1 = op[i];
-    if (phase != uuc::kUpllUcpDelete) {
-      uint8_t *db_ctrlr = NULL;
-      GET_USER_DATA_CTRLR(ckv_running_db,db_ctrlr);
-      UPLL_LOG_DEBUG("db ctrl_id and audit ctlr_id are  %s %s",
-                      db_ctrlr, ctrlr_id);
-      // Skipping the controller ID if the controller id in DB and
-      // controller id available for Audit are not the same
-      if (db_ctrlr && strncmp(reinterpret_cast<const char *>(db_ctrlr),
-                           reinterpret_cast<const char *>(ctrlr_id),
-                           strlen(reinterpret_cast<const char *>(ctrlr_id)) + 1)) {
-        continue;
-      }
     }
+    while (uud::kDalRcSuccess == (db_result = dmi->GetNextRecord(cursor))) {
+      op1 = op[i];
+      if (phase != uuc::kUpllUcpDelete) {
+        uint8_t *db_ctrlr = NULL;
+        GET_USER_DATA_CTRLR(ckv_running_db, db_ctrlr);
+        UPLL_LOG_DEBUG("db ctrl_id and audit ctlr_id are  %s %s",
+                       db_ctrlr, ctrlr_id);
+        // Skipping the controller ID if the controller id in DB and
+        // controller id available for Audit are not the same
+        if (db_ctrlr && strncmp(reinterpret_cast<const char *>(db_ctrlr),
+                                reinterpret_cast<const char *>(ctrlr_id),
+                                strlen(reinterpret_cast<const char *>
+                                       (ctrlr_id)) + 1)) {
+          continue;
+        }
+      }
 
-    switch (phase) {
-      case uuc::kUpllUcpDelete:
-        UPLL_LOG_TRACE("Deleted record is %s ",
-                        ckv_running_db->ToStrAll().c_str());
-        result_code = GetChildConfigKey(ckv_driver_req, ckv_running_db);
-        UPLL_LOG_TRACE("ckv_driver_req in delete is %s",
-                        ckv_driver_req->ToStrAll().c_str());
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("GetChildConfigKey failed. err_code & phase %d %d",
+      switch (phase) {
+        case uuc::kUpllUcpDelete:
+          UPLL_LOG_TRACE("Deleted record is %s ",
+                         ckv_running_db->ToStrAll().c_str());
+          result_code = GetChildConfigKey(ckv_driver_req, ckv_running_db);
+          UPLL_LOG_TRACE("ckv_driver_req in delete is %s",
+                         ckv_driver_req->ToStrAll().c_str());
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("GetChildConfigKey failed. err_code & phase %d %d",
                            result_code, phase);
-          dmi->CloseCursor(cursor, true);
-          return result_code;
-        }
-        result_code = ReadConfigDB(ckv_driver_req, UPLL_DT_AUDIT, UNC_OP_READ,
-                                             dbop, dmi, MAINTBL);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("Returning error %d",result_code);
-          DELETE_IF_NOT_NULL(ckv_driver_req);
-          dmi->CloseCursor(cursor, true);
-          return UPLL_RC_ERR_GENERIC;
-        }
-        GET_USER_DATA_FLAGS(ckv_driver_req, auditdb_flag);
-        break;
-      case uuc::kUpllUcpCreate:
+            dmi->CloseCursor(cursor, true);
+            return result_code;
+          }
+          result_code = ReadConfigDB(ckv_driver_req, UPLL_DT_AUDIT, UNC_OP_READ,
+                                     dbop, dmi, MAINTBL);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("Returning error %d", result_code);
+            DELETE_IF_NOT_NULL(ckv_driver_req);
+            dmi->CloseCursor(cursor, true);
+            return UPLL_RC_ERR_GENERIC;
+          }
+          GET_USER_DATA_FLAGS(ckv_driver_req, auditdb_flag);
+          break;
+        case uuc::kUpllUcpCreate:
           UPLL_LOG_TRACE("Created  record is %s ",
-                          ckv_running_db->ToStrAll().c_str());
-          result_code = DupConfigKeyVal(ckv_driver_req, ckv_running_db, MAINTBL);
+                         ckv_running_db->ToStrAll().c_str());
+          result_code = DupConfigKeyVal(ckv_driver_req,
+                                        ckv_running_db,
+                                        MAINTBL);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("DupConfigKeyVal failed. err_code & phase %d %d",
                            result_code, phase);
+            DELETE_IF_NOT_NULL(ckv_running_db);
+            DELETE_IF_NOT_NULL(ckv_audit_db);
             dmi->CloseCursor(cursor, true);
             return result_code;
           }
-         break;
-      case uuc::kUpllUcpUpdate:
+          break;
+        case uuc::kUpllUcpUpdate:
           ckv_audit_dup_db = NULL;
           ckv_driver_req = NULL;
           UPLL_LOG_TRACE("UpdateRecord  record  is %s ",
-                          ckv_running_db->ToStrAll().c_str());
+                         ckv_running_db->ToStrAll().c_str());
           UPLL_LOG_TRACE("UpdateRecord  record  is %s ",
-                          ckv_audit_db->ToStrAll().c_str());
-          result_code = DupConfigKeyVal(ckv_driver_req, ckv_running_db, MAINTBL);
+                         ckv_audit_db->ToStrAll().c_str());
+          result_code = DupConfigKeyVal(ckv_driver_req,
+                                        ckv_running_db,
+                                        MAINTBL);
           if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("DupConfigKeyVal failed for running record. \
-                            err_code & phase %d %d", result_code, phase);
+            UPLL_LOG_DEBUG("DupConfigKeyVal failed for running record."
+                           "err_code & phase %d %d", result_code, phase);
+            DELETE_IF_NOT_NULL(ckv_running_db);
+            DELETE_IF_NOT_NULL(ckv_audit_db);
             dmi->CloseCursor(cursor, true);
             return result_code;
           }
-          result_code = DupConfigKeyVal(ckv_audit_dup_db, ckv_audit_db, MAINTBL);
+          result_code = DupConfigKeyVal(ckv_audit_dup_db,
+                                        ckv_audit_db,
+                                        MAINTBL);
           if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("DupConfigKeyVal failed for audit record. \
-                           err_code & phase %d %d", result_code, phase);
+            UPLL_LOG_DEBUG("DupConfigKeyVal failed for audit record."
+                           "err_code & phase %d %d", result_code, phase);
             DELETE_IF_NOT_NULL(ckv_driver_req);
+            DELETE_IF_NOT_NULL(ckv_running_db);
+            DELETE_IF_NOT_NULL(ckv_audit_db);
             dmi->CloseCursor(cursor, true);
             return result_code;
           }
           GET_USER_DATA_FLAGS(ckv_audit_dup_db, auditdb_flag);
-        break;
-      default:
-        UPLL_LOG_DEBUG("Invalid operation %d", phase);
-        return UPLL_RC_ERR_NO_SUCH_OPERATION;
-        break;
-    }
-    GET_USER_DATA_CTRLR_DOMAIN(ckv_driver_req, ctrlr_dom);
-    if ((NULL == ctrlr_dom.ctrlr) || (NULL == ctrlr_dom.domain)) {
-      UPLL_LOG_INFO("controller id or domain is NULL");
-      DELETE_IF_NOT_NULL(ckv_driver_req);
-      DELETE_IF_NOT_NULL(ckv_audit_dup_db);
-      dmi->CloseCursor(cursor, true);
-      return UPLL_RC_ERR_GENERIC;
-    }
-    UPLL_LOG_DEBUG("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
-                 ctrlr_dom.domain);
-    db_flag = 0;
-    GET_USER_DATA_FLAGS(ckv_driver_req, db_flag);
-    // If portmap/vlink flag is not set at running and the operation is
-    // update then portmap/vlink is deleted in the update phase from UNC
-    // hence flowfilter seq no also should get deleted from controller
-    // hence sending the delete request to the controller driver
-    if ((SET_FLAG_PORTMAP & db_flag) || (SET_FLAG_VLINK & db_flag)) {
-      // Continue the operations
-    } else {
-      if (UNC_OP_UPDATE == op1) {
-        op1 = UNC_OP_DELETE;
-      } else {
-        // NO PortMap/Vlink Configured,
-        // Configuration is  not sento to driver.
+          break;
+        default:
+          UPLL_LOG_DEBUG("Invalid operation %d", phase);
+          return UPLL_RC_ERR_NO_SUCH_OPERATION;
+          break;
+      }
+      GET_USER_DATA_CTRLR_DOMAIN(ckv_driver_req, ctrlr_dom);
+      if ((NULL == ctrlr_dom.ctrlr) || (NULL == ctrlr_dom.domain)) {
+        UPLL_LOG_INFO("controller id or domain is NULL");
         DELETE_IF_NOT_NULL(ckv_driver_req);
         DELETE_IF_NOT_NULL(ckv_audit_dup_db);
-        continue;
+        dmi->CloseCursor(cursor, true);
+        return UPLL_RC_ERR_GENERIC;
+      }
+      UPLL_LOG_DEBUG("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
+                     ctrlr_dom.domain);
+      db_flag = 0;
+      GET_USER_DATA_FLAGS(ckv_driver_req, db_flag);
+      // If portmap/vlink flag is not set at running and the operation is
+      // update then portmap/vlink is deleted in the update phase from UNC
+      // hence flowfilter seq no also should get deleted from controller
+      // hence sending the delete request to the controller driver
+      if ((SET_FLAG_PORTMAP & db_flag) || (SET_FLAG_VLINK & db_flag)) {
+        // Continue the operations
+      } else {
+        if (UNC_OP_UPDATE == op1) {
+          op1 = UNC_OP_DELETE;
+        } else {
+          // NO PortMap/Vlink Configured,
+          // Configuration is  not sento to driver.
+          DELETE_IF_NOT_NULL(ckv_driver_req);
+          DELETE_IF_NOT_NULL(ckv_audit_dup_db);
+          continue;
+        }
       }
-    }
 
-    if (UNC_OP_UPDATE == op1) {    
-      void *running_val = NULL;
-      bool invalid_attr = false;
-      running_val = GetVal(ckv_driver_req);
-      invalid_attr = FilterAttributes(running_val,
-           GetVal(ckv_audit_dup_db), false, UNC_OP_UPDATE);
-      if (invalid_attr) {
-        DELETE_IF_NOT_NULL(ckv_driver_req);
-        DELETE_IF_NOT_NULL(ckv_audit_dup_db);
-        continue;
+      if (UNC_OP_UPDATE == op1) {
+        void *running_val = NULL;
+        bool invalid_attr = false;
+        running_val = GetVal(ckv_driver_req);
+        invalid_attr = FilterAttributes(running_val,
+                                        GetVal(ckv_audit_dup_db),
+                                        false,
+                                        UNC_OP_UPDATE);
+        if (invalid_attr) {
+          DELETE_IF_NOT_NULL(ckv_driver_req);
+          DELETE_IF_NOT_NULL(ckv_audit_dup_db);
+          // Assuming that the diff found only in ConfigStatus
+          // Setting the   value as OnlyCSDiff in the out parameter
+          // ctrlr_affected
+          // The value Configdiff should be given more priority than the value
+          // onlycs .
+          // So  If the out parameter ctrlr_affected has already
+          // value as configdiff
+          //  then dont change the value
+          if (*ctrlr_affected != uuc::kCtrlrAffectedConfigDiff) {
+            UPLL_LOG_INFO("Setting the ctrlr_affected to OnlyCSDiff");
+            *ctrlr_affected = uuc::kCtrlrAffectedOnlyCSDiff;
+          }
+          continue;
+        }
       }
-    }
 
-    DELETE_IF_NOT_NULL(ckv_audit_dup_db);
-    /*pfcdrv_val_flowfilter_entry_t *pfc_val =
+      DELETE_IF_NOT_NULL(ckv_audit_dup_db);
+      /*pfcdrv_val_flowfilter_entry_t *pfc_val =
         reinterpret_cast<pfcdrv_val_flowfilter_entry_t *>
         (ConfigKeyVal::Malloc(sizeof(pfcdrv_val_flowfilter_entry_t)));
 
-    */
-    pfcdrv_val_vbrif_vextif *pfc_val =
-        reinterpret_cast<pfcdrv_val_vbrif_vextif *>
-        (ConfigKeyVal::Malloc(sizeof(pfcdrv_val_vbrif_vextif)));
-    if (op1 == UNC_OP_DELETE) {
-      vext_datatype = UPLL_DT_AUDIT;
-      db_flag = auditdb_flag;
-    } else {
-      vext_datatype = UPLL_DT_RUNNING;
-    }
-    result_code = GetVexternalInformation(ckv_driver_req, vext_datatype,
-                                          pfc_val, db_flag, dmi);
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("GetVexternalInformation failed %d", result_code);
-      DELETE_IF_NOT_NULL(ckv_driver_req);
-      dmi->CloseCursor(cursor, true);
-      return result_code;
-    }
-    upll_keytype_datatype_t dt_type = (op1 == UNC_OP_DELETE)?
-             UPLL_DT_AUDIT:UPLL_DT_RUNNING;
-    result_code = GetRenamedControllerKey(ckv_driver_req, UPLL_DT_RUNNING,
-                                          dmi, &ctrlr_dom);
-    if (result_code != UPLL_RC_SUCCESS) {
-      DELETE_IF_NOT_NULL(ckv_driver_req);
-      UPLL_LOG_DEBUG("GetRenamedControllerKey failed %d", result_code);
-      dmi->CloseCursor(cursor, true);
-      return result_code;
-    }
+*/
+      pfcdrv_val_vbrif_vextif *pfc_val =
+          reinterpret_cast<pfcdrv_val_vbrif_vextif *>
+          (ConfigKeyVal::Malloc(sizeof(pfcdrv_val_vbrif_vextif)));
+      if (op1 == UNC_OP_DELETE) {
+        vext_datatype = UPLL_DT_AUDIT;
+        db_flag = auditdb_flag;
+      } else {
+        vext_datatype = UPLL_DT_RUNNING;
+      }
+      result_code = GetVexternalInformation(ckv_driver_req, vext_datatype,
+                                            pfc_val, db_flag, dmi);
+      if (UPLL_RC_SUCCESS != result_code) {
+        UPLL_LOG_DEBUG("GetVexternalInformation failed %d", result_code);
+        DELETE_IF_NOT_NULL(ckv_driver_req);
+        dmi->CloseCursor(cursor, true);
+        return result_code;
+      }
+      upll_keytype_datatype_t dt_type = (op1 == UNC_OP_DELETE)?
+          UPLL_DT_AUDIT:UPLL_DT_RUNNING;
+      result_code = GetRenamedControllerKey(ckv_driver_req, UPLL_DT_RUNNING,
+                                            dmi, &ctrlr_dom);
+      if (result_code != UPLL_RC_SUCCESS) {
+        DELETE_IF_NOT_NULL(ckv_driver_req);
+        UPLL_LOG_DEBUG("GetRenamedControllerKey failed %d", result_code);
+        dmi->CloseCursor(cursor, true);
+        return result_code;
+      }
 
-    ckv_driver_req->SetCfgVal(new ConfigVal(IpctSt::kIpcStPfcdrvValVbrifVextif,
-                                     pfc_val));
-    UPLL_LOG_DEBUG("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
-                 ctrlr_dom.domain);
-
-
-    IpcResponse ipc_response;
-    memset(&ipc_response, 0, sizeof(IpcResponse));
-    IpcRequest ipc_req;
-    memset(&ipc_req, 0, sizeof(IpcRequest));
-    ipc_req.header.clnt_sess_id = session_id;
-    ipc_req.header.config_id = config_id;
-    ipc_req.header.operation = op1;
-    ipc_req.header.datatype = UPLL_DT_CANDIDATE;
-    ipc_req.ckv_data = ckv_driver_req;
-    if (!IpcUtil::SendReqToDriver((const char *)ctrlr_dom.ctrlr, reinterpret_cast<char *>
-                                  (ctrlr_dom.domain), PFCDRIVER_SERVICE_NAME, 
-                                  PFCDRIVER_SVID_LOGICAL, &ipc_req, true, &ipc_response)) {
-      UPLL_LOG_INFO("Request to driver for Key %d for controller %s failed ",
-                    ckv_driver_req->get_key_type(), reinterpret_cast<char *>(ctrlr_dom.ctrlr));
-      DELETE_IF_NOT_NULL(ckv_driver_req);
-      dmi->CloseCursor(cursor, true);
-      return UPLL_RC_ERR_GENERIC;
-    }
-    if  (ipc_response.header.result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("driver return failure err_code is %d", ipc_response.header.result_code);
-        ConfigKeyVal *resp = NULL;
-        result_code = GetChildConfigKey(resp, ipc_response.ckv_data);
-        if (result_code != UPLL_RC_SUCCESS) {
-           UPLL_LOG_DEBUG("DupConfigKeyVal failed for ipc response ckv err_code %d",
+      ckv_driver_req->SetCfgVal(new ConfigVal(
+              IpctSt::kIpcStPfcdrvValVbrifVextif,
+              pfc_val));
+      UPLL_LOG_DEBUG("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
+                     ctrlr_dom.domain);
+
+
+      IpcResponse ipc_response;
+      memset(&ipc_response, 0, sizeof(IpcResponse));
+      IpcRequest ipc_req;
+      memset(&ipc_req, 0, sizeof(IpcRequest));
+      ipc_req.header.clnt_sess_id = session_id;
+      ipc_req.header.config_id = config_id;
+      ipc_req.header.operation = op1;
+      ipc_req.header.datatype = UPLL_DT_CANDIDATE;
+      ipc_req.ckv_data = ckv_driver_req;
+      if (!IpcUtil::SendReqToDriver((const char *)ctrlr_dom.ctrlr,
+                                    reinterpret_cast<char *>
+                                    (ctrlr_dom.domain),
+                                    PFCDRIVER_SERVICE_NAME,
+                                    PFCDRIVER_SVID_LOGICAL,
+                                    &ipc_req,
+                                    true,
+                                    &ipc_response)) {
+        UPLL_LOG_INFO("Request to driver for Key %d for controller %s failed ",
+                      ckv_driver_req->get_key_type(), reinterpret_cast<char *>
+                      (ctrlr_dom.ctrlr));
+        DELETE_IF_NOT_NULL(ckv_driver_req);
+        dmi->CloseCursor(cursor, true);
+        return UPLL_RC_ERR_GENERIC;
+      }
+      if (ipc_response.header.result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("driver return failure err_code is %d",
+                       ipc_response.header.result_code);
+        *err_ckv = ckv_running_db;
+        if (phase != uuc::kUpllUcpDelete) {
+          ConfigKeyVal *resp = NULL;
+          result_code = GetChildConfigKey(resp, ipc_response.ckv_data);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("DupConfigKeyVal failed for"
+                           "ipc response ckv err_code %d",
                            result_code);
-          delete ipc_response.ckv_data;
-          DELETE_IF_NOT_NULL(ckv_driver_req);
-          dmi->CloseCursor(cursor, true);
-          return result_code;
-        }
-        DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutCs };
-        result_code = ReadConfigDB(resp, dt_type, UNC_OP_READ, dbop,dmi, MAINTBL);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("ReadConfigDB Failed");
-          DELETE_IF_NOT_NULL(ckv_driver_req);
-          DELETE_IF_NOT_NULL(resp);
-          DELETE_IF_NOT_NULL(ipc_response.ckv_data);
-          dmi->CloseCursor(cursor, true);
-          return result_code;
-        }
-   
-        result_code = UpdateAuditConfigStatus(UNC_CS_INVALID, phase, resp);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_TRACE("Update Audit config status failed %d",
-                  result_code);
-          DELETE_IF_NOT_NULL(ckv_driver_req);
-          DELETE_IF_NOT_NULL(resp);
-          DELETE_IF_NOT_NULL(ipc_response.ckv_data);
-          dmi->CloseCursor(cursor, true);
-          return result_code;
-        }
-        DbSubOp dbop1 = { kOpNotRead, kOpMatchNone, kOpInOutCs };
-        result_code = UpdateConfigDB(resp, dt_type, UNC_OP_UPDATE,
+            delete ipc_response.ckv_data;
+            DELETE_IF_NOT_NULL(ckv_driver_req);
+            DELETE_IF_NOT_NULL(ckv_running_db);
+            DELETE_IF_NOT_NULL(ckv_audit_db);
+            *err_ckv = NULL;
+            dmi->CloseCursor(cursor, true);
+            return result_code;
+          }
+          DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutCs };
+          result_code = ReadConfigDB(resp,
+                                     dt_type,
+                                     UNC_OP_READ,
+                                     dbop,
+                                     dmi,
+                                     MAINTBL);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("ReadConfigDB Failed");
+            DELETE_IF_NOT_NULL(ckv_driver_req);
+            DELETE_IF_NOT_NULL(resp);
+            DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+            DELETE_IF_NOT_NULL(ckv_running_db);
+            DELETE_IF_NOT_NULL(ckv_audit_db);
+            *err_ckv = NULL;
+            dmi->CloseCursor(cursor, true);
+            return result_code;
+          }
+
+          result_code = UpdateAuditConfigStatus(UNC_CS_INVALID,
+                                                phase,
+                                                resp,
+                                                dmi);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_TRACE("Update Audit config status failed %d",
+                           result_code);
+            DELETE_IF_NOT_NULL(ckv_driver_req);
+            DELETE_IF_NOT_NULL(resp);
+            DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+            DELETE_IF_NOT_NULL(ckv_running_db);
+            DELETE_IF_NOT_NULL(ckv_audit_db);
+            *err_ckv = NULL;
+            dmi->CloseCursor(cursor, true);
+            return result_code;
+          }
+          DbSubOp dbop1 = { kOpNotRead, kOpMatchNone, kOpInOutCs };
+          result_code = UpdateConfigDB(resp, dt_type, UNC_OP_UPDATE,
                                        dmi, &dbop1, MAINTBL);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("UpdateConfigDB failed for ipc response ckv err_code %d",
-                          result_code);
-          DELETE_IF_NOT_NULL(ckv_driver_req);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("UpdateConfigDB failed for ipc response"
+                           "ckv err_code %d",
+                           result_code);
+            DELETE_IF_NOT_NULL(ckv_driver_req);
+            DELETE_IF_NOT_NULL(resp);
+            DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+            DELETE_IF_NOT_NULL(ckv_running_db);
+            DELETE_IF_NOT_NULL(ckv_audit_db);
+            *err_ckv = NULL;
+            dmi->CloseCursor(cursor, true);
+            return result_code;
+          }
           DELETE_IF_NOT_NULL(resp);
-          DELETE_IF_NOT_NULL(ipc_response.ckv_data);
-          dmi->CloseCursor(cursor, true);
-          return result_code;
-        }  
-        DELETE_IF_NOT_NULL(resp);
+        }
+        return ipc_response.header.result_code;
+      }
+      DELETE_IF_NOT_NULL(ckv_driver_req);
+      DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+      // *ctrlr_affected = true;
+      if (*ctrlr_affected == uuc::kCtrlrAffectedOnlyCSDiff) {
+        UPLL_LOG_INFO("Reset ctrlr state from OnlyCSDiff to ConfigDiff");
+      }
+      UPLL_LOG_DEBUG("Setting the ctrlr_affected to ConfigDiff");
+      *ctrlr_affected = uuc::kCtrlrAffectedConfigDiff;
     }
-    DELETE_IF_NOT_NULL(ckv_driver_req);
-    DELETE_IF_NOT_NULL(ipc_response.ckv_data);
-    *ctrlr_affected = true;
-  }
     dmi->CloseCursor(cursor, true);
     DELETE_IF_NOT_NULL(ckv_running_db);
     DELETE_IF_NOT_NULL(ckv_audit_db);
   }
   if (uud::kDalRcSuccess != db_result) {
-     UPLL_LOG_DEBUG("GetNextRecord from database failed  - %d", db_result);
-     result_code =  DalToUpllResCode(db_result);
+    UPLL_LOG_DEBUG("GetNextRecord from database failed  - %d", db_result);
+    result_code =  DalToUpllResCode(db_result);
   }
   result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)
-                ? UPLL_RC_SUCCESS : result_code;
+      ? UPLL_RC_SUCCESS : result_code;
   return result_code;
 }
 
 
 bool VbrIfFlowFilterMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type,
-                                    BindInfo *&binfo,
-                                    int &nattr,
-                                    MoMgrTables tbl) {
+                                                BindInfo *&binfo,
+                                                int &nattr,
+                                                MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
 
   /* Main Table only update */
   if (MAINTBL == tbl) {
     nattr = sizeof(vbr_if_flowfiltermaintbl_bind_info)/
-            sizeof(vbr_if_flowfiltermaintbl_bind_info[0]);
+        sizeof(vbr_if_flowfiltermaintbl_bind_info[0]);
     binfo = vbr_if_flowfiltermaintbl_bind_info;
   } else {
     return PFC_FALSE;
@@ -637,8 +789,8 @@ bool VbrIfFlowFilterMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type,
 }
 
 upll_rc_t VbrIfFlowFilterMoMgr::ValidateCapability(IpcReqRespHeader *req,
-                                 ConfigKeyVal *ikey,
-                                 const char *ctrlr_name) {
+                                                   ConfigKeyVal *ikey,
+                                                   const char *ctrlr_name) {
   UPLL_FUNC_TRACE;
 
   if ((NULL == req) || (NULL == ikey)) {
@@ -656,8 +808,8 @@ upll_rc_t VbrIfFlowFilterMoMgr::ValidateCapability(IpcReqRespHeader *req,
   }
 
   UPLL_LOG_TRACE("ctrlr_name : (%s)"
-               "operation : (%d)",
-               ctrlr_name, req->operation);
+                 "operation : (%d)",
+                 ctrlr_name, req->operation);
 
   bool result_code = false;
   uint32_t  max_instance_count;
@@ -666,28 +818,27 @@ upll_rc_t VbrIfFlowFilterMoMgr::ValidateCapability(IpcReqRespHeader *req,
 
   switch (req->operation) {
     case UNC_OP_CREATE: {
-      UPLL_LOG_TRACE("Calling GetCreateCapability Operation  %d ", req->operation);
-      result_code = GetCreateCapability(ctrlr_name, ikey->get_key_type(),
-                                        &max_instance_count, &max_attrs, &attrs);
-       if (result_code && cur_instance_count >= max_instance_count && 
-                  cur_instance_count !=0 && max_instance_count != 0) {
-          UPLL_LOG_DEBUG("[%s:%d:%s Instance count %d exceeds %d", __FILE__,
-                      __LINE__, __FUNCTION__, cur_instance_count,
-                      max_instance_count);
-          return UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
-      }
+      UPLL_LOG_TRACE("Calling GetCreateCapability Operation  %d ",
+                     req->operation);
+
+      result_code = GetCreateCapability(ctrlr_name,
+                                        ikey->get_key_type(),
+                                        &max_instance_count,
+                                        &max_attrs,
+                                        &attrs);
       break;
     }
     default: {
       if (req->datatype == UPLL_DT_STATE) {
-        UPLL_LOG_TRACE("Calling GetStateCapability Operation  %d ", req->operation);
+        UPLL_LOG_TRACE("Calling GetStateCapability Operation  %d ",
+                       req->operation);
         result_code = GetStateCapability(ctrlr_name, ikey->get_key_type(),
-                                      &max_attrs, &attrs);
+                                         &max_attrs, &attrs);
       } else {
-        UPLL_LOG_TRACE("Calling GetReadCapability Operation  %d ", req->operation);
+        UPLL_LOG_TRACE("Calling GetReadCapability Operation  %d ",
+                       req->operation);
         result_code = GetReadCapability(ctrlr_name, ikey->get_key_type(),
-                                      &max_attrs, &attrs);
+                                        &max_attrs, &attrs);
       }
     }
   }
@@ -716,35 +867,36 @@ upll_rc_t VbrIfFlowFilterMoMgr::ValidateMessage(IpcReqRespHeader *req,
     return UPLL_RC_ERR_BAD_REQUEST;
   }
   if (key->get_st_num() != IpctSt::kIpcStKeyVbrIfFlowfilter) {
-     UPLL_LOG_DEBUG("Invalid key structure received. received struct num - %d",
-                  key->get_st_num());
+    UPLL_LOG_DEBUG("Invalid key structure received. received struct num - %d",
+                   key->get_st_num());
     return UPLL_RC_ERR_BAD_REQUEST;
   }
-  if(req->option2 != UNC_OPT2_NONE) {
+  if (req->option2 != UNC_OPT2_NONE) {
     UPLL_LOG_DEBUG(" Error: option2 is not NONE");
     return UPLL_RC_ERR_INVALID_OPTION2;
   }
-  if((req->option1 != UNC_OPT1_NORMAL) 
-              &&(req->option1 != UNC_OPT1_DETAIL)) {
-     UPLL_LOG_DEBUG(" Error: option1 is not NORMAL");
-     return UPLL_RC_ERR_INVALID_OPTION1;
-   }
-   if((req->option1 != UNC_OPT1_NORMAL) 
-              &&(req->operation == UNC_OP_READ_SIBLING_COUNT)) {
-     UPLL_LOG_DEBUG(" Error: option1 is not NORMAL for ReadSiblingCount");
-     return UPLL_RC_ERR_INVALID_OPTION1;
-   }
+  if ((req->option1 != UNC_OPT1_NORMAL)
+     &&(req->option1 != UNC_OPT1_DETAIL)) {
+    UPLL_LOG_DEBUG(" Error: option1 is not NORMAL");
+    return UPLL_RC_ERR_INVALID_OPTION1;
+  }
+  if ((req->option1 != UNC_OPT1_NORMAL)
+     &&(req->operation == UNC_OP_READ_SIBLING_COUNT)) {
+    UPLL_LOG_DEBUG(" Error: option1 is not NORMAL for ReadSiblingCount");
+    return UPLL_RC_ERR_INVALID_OPTION1;
+  }
   if ((req->option1 == UNC_OPT1_DETAIL) &&
       (req->datatype != UPLL_DT_STATE)) {
-      UPLL_LOG_DEBUG(" Invalid Datatype(%d)", req->datatype);
-      return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
-  }
-  if ((req->datatype == UPLL_DT_IMPORT) && (req->operation == UNC_OP_READ || 
-       req->operation == UNC_OP_READ_SIBLING ||
-       req->operation == UNC_OP_READ_SIBLING_BEGIN ||
-       req->operation == UNC_OP_READ_NEXT ||
-       req->operation == UNC_OP_READ_BULK ||
-       req->operation == UNC_OP_READ_SIBLING_COUNT)) {
+    UPLL_LOG_DEBUG(" Invalid Datatype(%d)", req->datatype);
+    return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
+  }
+  if ((req->datatype == UPLL_DT_IMPORT) && (
+          req->operation == UNC_OP_READ ||
+          req->operation == UNC_OP_READ_SIBLING ||
+          req->operation == UNC_OP_READ_SIBLING_BEGIN ||
+          req->operation == UNC_OP_READ_NEXT ||
+          req->operation == UNC_OP_READ_BULK ||
+          req->operation == UNC_OP_READ_SIBLING_COUNT)) {
     return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
   }
 
@@ -758,15 +910,15 @@ upll_rc_t VbrIfFlowFilterMoMgr::ValidateMessage(IpcReqRespHeader *req,
     return UPLL_RC_ERR_BAD_REQUEST;
   }
 
-    rt_code = ValidateVbrIfFlowfilterKey(key_vbr_if_flowfilter,
-                                         req->operation);
+  rt_code = ValidateVbrIfFlowfilterKey(key_vbr_if_flowfilter,
+                                       req->operation);
 
-    if (UPLL_RC_SUCCESS != rt_code) {
-      UPLL_LOG_DEBUG(" key_vbrif_flowfilter syntax validation failed :"
-                     "Err Code - %d",
-                     rt_code);
-      return rt_code;
-    }
+  if (UPLL_RC_SUCCESS != rt_code) {
+    UPLL_LOG_DEBUG(" key_vbrif_flowfilter syntax validation failed :"
+                   "Err Code - %d",
+                   rt_code);
+    return rt_code;
+  }
 
   return UPLL_RC_SUCCESS;
 }
@@ -820,66 +972,8 @@ upll_rc_t VbrIfFlowFilterMoMgr::ValidateVbrIfFlowfilterKey(
 upll_rc_t VbrIfFlowFilterMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
                                                   DalDmlIntf *dmi,
                                                   IpcReqRespHeader *req) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-
-  ConfigKeyVal *okey = NULL;
-  if (!ikey || !ikey->get_key()) {
-    UPLL_LOG_DEBUG("input key is null");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  key_vbr_if_flowfilter_t *key_vbrif_ff =
-      reinterpret_cast<key_vbr_if_flowfilter_t *>(ikey->get_key());
-  MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>
-      (const_cast<MoManager *>(GetMoManager(UNC_KT_VBR_IF)));
-
-  result_code = mgr->GetChildConfigKey(okey, NULL);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("GetChildConfigKey failed for KT_VBR_IF key struct - %d",
-                    result_code);
-    return result_code;
-  }
-
-  key_vbr_if_t *vbrif_key =
-      reinterpret_cast<key_vbr_if_t *>(okey->get_key());
-
-  uuu::upll_strncpy(vbrif_key->vbr_key.vtn_key.vtn_name,
-        key_vbrif_ff->if_key.vbr_key.vtn_key.vtn_name,
-        kMaxLenVtnName + 1);
-
-    uuu::upll_strncpy(vbrif_key->vbr_key.vbridge_name,
-        key_vbrif_ff->if_key.vbr_key.vbridge_name,
-        kMaxLenVtnName + 1);
-
-    uuu::upll_strncpy(vbrif_key->if_name,
-        key_vbrif_ff->if_key.if_name,
-        kMaxLenInterfaceName + 1);
-
-  /* Checks the given vbr_if exists or not */
-  result_code = mgr->UpdateConfigDB(okey, req->datatype, UNC_OP_READ,
-                                    dmi, MAINTBL);
-  if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
-    UPLL_LOG_DEBUG(" Parent VBRIF key does not exists");
-    delete okey;
-    okey = NULL;
-    return UPLL_RC_ERR_PARENT_DOES_NOT_EXIST;
-  } else {
-    result_code = UPLL_RC_SUCCESS;
-  }
-
-  delete okey;
-  okey = NULL;
-
-  if (UNC_OP_CREATE == req->operation) {
-    result_code = SetRenameFlag(ikey, dmi, req);
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("SetRenameFlag failed %d", result_code);
-      return result_code;
-    }
-  }
-
-  UPLL_LOG_DEBUG("ValidateAttribute Successfull.");
-  return result_code;
+  // No operation
+  return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t VbrIfFlowFilterMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
@@ -894,8 +988,8 @@ upll_rc_t VbrIfFlowFilterMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
     return result_code;
   }
   MoMgrImpl *mgr =
-    reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-            UNC_KT_VBR_IF)));
+      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                  UNC_KT_VBR_IF)));
   if (!mgr) {
     UPLL_LOG_DEBUG("mgr is NULL");
     DELETE_IF_NOT_NULL(pkey);
@@ -916,8 +1010,8 @@ upll_rc_t VbrIfFlowFilterMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
 
 
 upll_rc_t VbrIfFlowFilterMoMgr::IsReferenced(ConfigKeyVal *ikey,
-                                           upll_keytype_datatype_t dt_type,
-                                           DalDmlIntf *dmi) {
+                                             upll_keytype_datatype_t dt_type,
+                                             DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   if (NULL == ikey) return UPLL_RC_ERR_GENERIC;
@@ -940,9 +1034,9 @@ upll_rc_t VbrIfFlowFilterMoMgr::AllocVal(ConfigVal *&ck_val,
     return UPLL_RC_ERR_GENERIC;
   switch (tbl) {
     case MAINTBL:
-        val = reinterpret_cast<void *>
-            (ConfigKeyVal::Malloc(sizeof(val_flowfilter_t)));
-        ck_val = new ConfigVal(IpctSt::kIpcStValFlowfilter, val);
+      val = reinterpret_cast<void *>
+          (ConfigKeyVal::Malloc(sizeof(val_flowfilter_t)));
+      ck_val = new ConfigVal(IpctSt::kIpcStValFlowfilter, val);
 
       break;
     default:
@@ -960,6 +1054,7 @@ upll_rc_t VbrIfFlowFilterMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   key_vbr_if_flowfilter_t *vbr_if_ff_key;
   void *pkey = NULL;
+  bool cfgval_ctrlr = false;
 
   if (parent_key == NULL) {
     vbr_if_ff_key = reinterpret_cast<key_vbr_if_flowfilter_t*>
@@ -1044,6 +1139,46 @@ upll_rc_t VbrIfFlowFilterMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
           reinterpret_cast<key_vbr_if_flowfilter_t *>
           (pkey)->direction;
       break;
+      /* VlanmapOnBoundary: Added vlink case */
+    case UNC_KT_VLINK:
+      {
+        uint8_t *vnode_name;
+        uint8_t *vnode_if_name;
+        uint8_t flags = 0;
+        val_vlink *vlink_val = reinterpret_cast<val_vlink *>
+            (GetVal(parent_key));
+        if (!vlink_val) {
+          UPLL_LOG_TRACE("ERROR");
+          if (!okey || !(okey->get_key()))
+            FREE_IF_NOT_NULL(vbr_if_ff_key);
+          return UPLL_RC_ERR_GENERIC;
+        }
+
+        GET_USER_DATA_FLAGS(parent_key->get_cfg_val(), flags);
+        flags &=  VLINK_FLAG_NODE_POS;
+        UPLL_LOG_DEBUG("Vlink flag node position %d", flags);
+
+        if (flags == kVlinkVnode2) {
+          cfgval_ctrlr = true;
+          vnode_name = vlink_val->vnode2_name;
+          vnode_if_name = vlink_val->vnode2_ifname;
+        } else {
+          vnode_name = vlink_val->vnode1_name;
+          vnode_if_name = vlink_val->vnode1_ifname;
+        }
+        uuu::upll_strncpy(vbr_if_ff_key->if_key.vbr_key.vtn_key.vtn_name,
+                          reinterpret_cast<key_vlink *>(pkey)->vtn_key.vtn_name,
+                          (kMaxLenVtnName + 1));
+        if (vnode_name)
+          uuu::upll_strncpy(vbr_if_ff_key->if_key.vbr_key.vbridge_name,
+                            vnode_name,
+                            (kMaxLenVnodeName + 1));
+        if (vnode_if_name)
+          uuu::upll_strncpy(vbr_if_ff_key->if_key.if_name, vnode_if_name,
+                            (kMaxLenInterfaceName + 1));
+
+        break;
+      }
     default:
       if (vbr_if_ff_key) free(vbr_if_ff_key);
       return UPLL_RC_ERR_GENERIC;
@@ -1060,7 +1195,15 @@ upll_rc_t VbrIfFlowFilterMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
                             IpctSt::kIpcStKeyVbrIfFlowfilter,
                             vbr_if_ff_key, NULL);
   }
-  SET_USER_DATA(okey, parent_key);
+
+  /* In case of node2 of vlink, set the user_data
+   * from vlink's cfg_val */
+  if (cfgval_ctrlr) {
+    SET_USER_DATA(okey, parent_key->get_cfg_val());
+  } else {
+    SET_USER_DATA(okey, parent_key);
+  }
+
   UPLL_LOG_DEBUG("okey filled Succesfully %d", result_code);
   return result_code;
 }
@@ -1091,13 +1234,13 @@ upll_rc_t VbrIfFlowFilterMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
       val_flowfilter_t *ival = NULL;
       ival = reinterpret_cast<val_flowfilter_t *> (GetVal(req));
       if (NULL != ival) {
-      val_flowfilter_t *vbr_if_flowfilter_val = NULL;
+        val_flowfilter_t *vbr_if_flowfilter_val = NULL;
         vbr_if_flowfilter_val = reinterpret_cast<val_flowfilter_t *>
             (ConfigKeyVal::Malloc(sizeof(val_flowfilter_t)));
         memcpy(vbr_if_flowfilter_val, ival, sizeof(val_flowfilter_t));
         tmp1 = new ConfigVal(IpctSt::kIpcStValFlowfilter,
                              vbr_if_flowfilter_val);
-      tmp1->set_user_data(tmp->get_user_data());
+        tmp1->set_user_data(tmp->get_user_data());
       }
     }
   }
@@ -1108,12 +1251,12 @@ upll_rc_t VbrIfFlowFilterMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
     ikey = reinterpret_cast<key_vbr_if_flowfilter_t *> (tkey);
     key_vbr_if_flowfilter_t *vbr_if_flowfilter =
         reinterpret_cast<key_vbr_if_flowfilter_t*>
-          (ConfigKeyVal::Malloc(sizeof(key_vbr_if_flowfilter_t)));
+        (ConfigKeyVal::Malloc(sizeof(key_vbr_if_flowfilter_t)));
 
     memcpy(vbr_if_flowfilter, ikey, sizeof(key_vbr_if_flowfilter_t));
     okey = new ConfigKeyVal(UNC_KT_VBRIF_FLOWFILTER,
-                          IpctSt::kIpcStKeyVbrIfFlowfilter, vbr_if_flowfilter,
-                          tmp1);
+                            IpctSt::kIpcStKeyVbrIfFlowfilter, vbr_if_flowfilter,
+                            tmp1);
     SET_USER_DATA(okey, req);
 
     UPLL_LOG_DEBUG("DupConfigkeyVal Succesfull.");
@@ -1141,9 +1284,9 @@ upll_rc_t VbrIfFlowFilterMoMgr::RenameMo(IpcReqRespHeader *req,
 }
 
 upll_rc_t VbrIfFlowFilterMoMgr::MergeValidate(unc_key_type_t keytype,
-                                             const char *ctrlr_id,
-                                             ConfigKeyVal *ikey,
-                                             DalDmlIntf *dmi) {
+                                              const char *ctrlr_id,
+                                              ConfigKeyVal *ikey,
+                                              DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *ckval = NULL;
@@ -1162,7 +1305,7 @@ upll_rc_t VbrIfFlowFilterMoMgr::MergeValidate(unc_key_type_t keytype,
 
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutCtrlr|kOpInOutDomain};
   result_code = ReadConfigDB(ckval, UPLL_DT_IMPORT,
-              UNC_OP_READ, dbop, dmi, MAINTBL);
+                             UNC_OP_READ, dbop, dmi, MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     DELETE_IF_NOT_NULL(ckval);
     if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
@@ -1204,20 +1347,20 @@ upll_rc_t VbrIfFlowFilterMoMgr::GetRenamedUncKey(
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutNone };
   UPLL_LOG_TRACE("%s GetRenamedUncKey vbrifff start",
-                  ikey->ToStrAll().c_str());
+                 ikey->ToStrAll().c_str());
   if ((NULL == ikey) || (ctrlr_id == NULL) || (NULL == dmi)) {
     UPLL_LOG_DEBUG("ikey/ctrlr_id dmi NULL");
     return UPLL_RC_ERR_GENERIC;
   }
 
   MoMgrImpl *mgrvbr = reinterpret_cast<MoMgrImpl *>
-             (const_cast<MoManager *> (GetMoManager(UNC_KT_VBRIDGE)));
+      (const_cast<MoManager *> (GetMoManager(UNC_KT_VBRIDGE)));
   if (mgrvbr == NULL) {
     UPLL_LOG_DEBUG("mgrvbr NULL");
     return UPLL_RC_ERR_GENERIC;
   }
   val_rename_vnode *rename_val = reinterpret_cast
-          <val_rename_vnode*>(ConfigKeyVal::Malloc(sizeof(val_rename_vnode)));
+      <val_rename_vnode*>(ConfigKeyVal::Malloc(sizeof(val_rename_vnode)));
   if (!rename_val) {
     UPLL_LOG_DEBUG("rename_val NULL");
     return UPLL_RC_ERR_GENERIC;
@@ -1269,9 +1412,9 @@ upll_rc_t VbrIfFlowFilterMoMgr::GetRenamedUncKey(
     key_vbr_if_flowfilter_t *vbr_if_flowfilter_key =
         reinterpret_cast<key_vbr_if_flowfilter_t *> (unc_key->get_key());
     uuu::upll_strncpy(
-                     ctrlr_key->if_key.vbr_key.vtn_key.vtn_name,
-                     vbr_if_flowfilter_key->if_key.vbr_key.vtn_key.vtn_name,
-                     (kMaxLenVtnName + 1));
+        ctrlr_key->if_key.vbr_key.vtn_key.vtn_name,
+        vbr_if_flowfilter_key->if_key.vbr_key.vtn_key.vtn_name,
+        (kMaxLenVtnName + 1));
 
     uuu::upll_strncpy(ctrlr_key->if_key.vbr_key.vbridge_name,
                       vbr_if_flowfilter_key->if_key.vbr_key.vbridge_name,
@@ -1279,7 +1422,7 @@ upll_rc_t VbrIfFlowFilterMoMgr::GetRenamedUncKey(
   }
 
   UPLL_LOG_TRACE("%s GetRenamedUncKey vbrifff end",
-                  ikey->ToStrAll().c_str());
+                 ikey->ToStrAll().c_str());
   DELETE_IF_NOT_NULL(unc_key);
   mgrvbr = NULL;
   return UPLL_RC_SUCCESS;
@@ -1291,239 +1434,99 @@ upll_rc_t VbrIfFlowFilterMoMgr::GetRenamedControllerKey(
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
   ConfigKeyVal *okey = NULL;
-  uint8_t rename = 0;
-  IsRenamed(ikey, dt_type, dmi, rename);
-  if (!rename) {
-    UPLL_LOG_DEBUG("no renamed");
-    return UPLL_RC_SUCCESS;
-  }
   UPLL_LOG_TRACE("Start Input ConfigKeyval = %s", ikey->ToStrAll().c_str());
 
-    MoMgrImpl *mgrvbr = reinterpret_cast<MoMgrImpl *>
+  MoMgrImpl *mgrvbr = reinterpret_cast<MoMgrImpl *>
       (const_cast<MoManager *> (GetMoManager(UNC_KT_VBRIDGE)));
 
-    if (mgrvbr == NULL) {
-      UPLL_LOG_DEBUG("obj null");
-      return UPLL_RC_ERR_GENERIC;
-    }
-
-    result_code = mgrvbr->GetChildConfigKey(okey, NULL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetChildConfigKey fail");
-      return result_code;
-    }
-
-    if (ctrlr_dom) { 
-      SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
-    }
-    else {
-      UPLL_LOG_DEBUG("ctrlr null");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
-
-    uuu::upll_strncpy(
-            reinterpret_cast<key_vbr *> (okey->get_key())->vtn_key.vtn_name,
-            reinterpret_cast<key_vbr_if_flowfilter_t *>
-            (ikey->get_key())->if_key.vbr_key.vtn_key.vtn_name,
-            (kMaxLenVnodeName + 1));
-
-    uuu::upll_strncpy(
-            reinterpret_cast<key_vbr *> (okey->get_key())->vbridge_name,
-            reinterpret_cast<key_vbr_if_flowfilter_t *>
-            (ikey->get_key())->if_key.vbr_key.vbridge_name,
-            (kMaxLenVnodeName + 1));
-
-    DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr | kOpMatchDomain, kOpInOutFlag };
-    result_code = mgrvbr->ReadConfigDB(okey, dt_type, UNC_OP_READ,
-                                       dbop, dmi, RENAMETBL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-        UPLL_LOG_DEBUG("ReadConfigDB no instance");
-        DELETE_IF_NOT_NULL(okey);
-        return UPLL_RC_SUCCESS;
-      }
-      UPLL_LOG_DEBUG("Unable to Read from DB");
-      DELETE_IF_NOT_NULL(okey);
-      return result_code;
-    }
-
-    val_rename_vnode *rename_val = NULL;
-    rename_val = reinterpret_cast<val_rename_vnode *> (GetVal(okey));
-
-    if (!rename_val) {
-      UPLL_LOG_DEBUG("Vbr Name is not Valid.");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-
-  if (rename & VTN_RENAME_FLAG) {
-    UPLL_LOG_DEBUG("vtn name renamed");
-    uuu::upll_strncpy(reinterpret_cast<key_vbr_if_flowfilter_entry_t *>
-        (ikey->get_key())->flowfilter_key.if_key.vbr_key.vtn_key.vtn_name,
-        rename_val->ctrlr_vtn_name,
-        (kMaxLenVtnName + 1));
-      UPLL_LOG_DEBUG("vtn rename (%s) (%s)",
-         reinterpret_cast<key_vbr_if_flowfilter_entry_t *>
-        (ikey->get_key())->flowfilter_key.if_key.vbr_key.vtn_key.vtn_name,
-        rename_val->ctrlr_vtn_name);
+  if (mgrvbr == NULL) {
+    UPLL_LOG_DEBUG("obj null");
+    return UPLL_RC_ERR_GENERIC;
   }
 
-  if (rename & VBR_RENAME_FLAG) {
-    UPLL_LOG_DEBUG("vbr name renamed");
-    uuu::upll_strncpy(reinterpret_cast<key_vbr_if_flowfilter_entry_t *>
-            (ikey->get_key())->flowfilter_key.if_key.vbr_key.vbridge_name,
-            rename_val->ctrlr_vnode_name,
-            (kMaxLenVnodeName + 1));
-      UPLL_LOG_DEBUG("vtn rename (%s) (%s)",
-            reinterpret_cast<key_vbr_if_flowfilter_entry_t *>
-            (ikey->get_key())->flowfilter_key.if_key.vbr_key.vbridge_name,
-            rename_val->ctrlr_vnode_name);
+  result_code = mgrvbr->GetChildConfigKey(okey, NULL);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_DEBUG("GetChildConfigKey fail");
+    return result_code;
   }
 
-  SET_USER_DATA_FLAGS(ikey, rename);
-  DELETE_IF_NOT_NULL(okey);
-  UPLL_LOG_TRACE("End Input ConfigKeyVal= %s", ikey->ToStrAll().c_str());
-  UPLL_LOG_DEBUG("Renamed Controller key is sucessfull.");
-  return UPLL_RC_SUCCESS;
-#if 0
-  // Vtn renamed
-  if (rename & VTN_RENAME_FLAG) {
-    MoMgrImpl *mgrvtn = reinterpret_cast<MoMgrImpl *>
-      (const_cast<MoManager *> (GetMoManager(UNC_KT_VTN)));
-
-    if (mgrvtn == NULL) {
-      UPLL_LOG_DEBUG("obj null");
-      return UPLL_RC_ERR_GENERIC;
-    }
+  if (ctrlr_dom) {
+    SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
+  } else {
+    UPLL_LOG_DEBUG("ctrlr null");
+    DELETE_IF_NOT_NULL(okey);
+    return UPLL_RC_ERR_GENERIC;
+  }
 
-    result_code = mgrvtn->GetChildConfigKey(okey, NULL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetChildConfigKey fail");
-      return result_code;
-    }
+  UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
+                 ctrlr_dom->domain);
 
-    if (ctrlr_dom) {
-      SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
-    } else {
-      UPLL_LOG_DEBUG("ctrlr null");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
+  uuu::upll_strncpy(
+      reinterpret_cast<key_vbr *> (okey->get_key())->vtn_key.vtn_name,
+      reinterpret_cast<key_vbr_if_flowfilter_t *>
+      (ikey->get_key())->if_key.vbr_key.vtn_key.vtn_name,
+      (kMaxLenVnodeName + 1));
 
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
-
-    uuu::upll_strncpy(reinterpret_cast<key_vtn *>(okey->get_key())->vtn_name,
-                      reinterpret_cast<key_vbr_if_flowfilter_t *>
-                      (ikey->get_key())->if_key.vbr_key.vtn_key.vtn_name,
-                      (kMaxLenVtnName + 1));
-//    UPLL_LOG_DEBUG("vtn name (%s) (%s)", (okey->get_key())->vtn_name,
-//                   (ikey->get_key())->if_key.vbr_key.vtn_key.vtn_name);
-    DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutFlag };
-    result_code =mgrvtn->ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop,
-                                      dmi, RENAMETBL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("ReadConfigDB fail");
-      DELETE_IF_NOT_NULL(okey);
-      return result_code;
-    }
-    val_rename_vtn *rename_val = NULL;
-    rename_val = reinterpret_cast<val_rename_vtn *> (GetVal(okey));
+  uuu::upll_strncpy(
+      reinterpret_cast<key_vbr *> (okey->get_key())->vbridge_name,
+      reinterpret_cast<key_vbr_if_flowfilter_t *>
+      (ikey->get_key())->if_key.vbr_key.vbridge_name,
+      (kMaxLenVnodeName + 1));
 
-    if (!rename_val
-        || (rename_val->valid[UPLL_IDX_NEW_NAME_RVTN] != UNC_VF_VALID)) {
-      UPLL_LOG_DEBUG("Vtn Name is not Valid.");
+  DbSubOp dbop = { kOpReadSingle,
+    kOpMatchCtrlr | kOpMatchDomain,
+    kOpInOutFlag };
+  result_code = mgrvbr->ReadConfigDB(okey, dt_type, UNC_OP_READ,
+                                     dbop, dmi, RENAMETBL);
+  if (result_code != UPLL_RC_SUCCESS) {
+    if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+      UPLL_LOG_DEBUG("ReadConfigDB no instance");
       DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
+      return UPLL_RC_SUCCESS;
     }
-
-    uuu::upll_strncpy(reinterpret_cast<key_vbr_if_flowfilter_entry_t *>
-        (ikey->get_key())->flowfilter_key.if_key.vbr_key.vtn_key.vtn_name,
-        rename_val->new_name,
-        (kMaxLenVtnName + 1));
-    SET_USER_DATA_FLAGS(ikey, rename);
+    UPLL_LOG_DEBUG("Unable to Read from DB");
+    DELETE_IF_NOT_NULL(okey);
+    return result_code;
   }
-  // Vbr Renamed
-  if (rename & VBR_RENAME_FLAG) {
-    UPLL_LOG_DEBUG("vbr name renamed");
-    MoMgrImpl *mgrvbr = reinterpret_cast<MoMgrImpl *>
-      (const_cast<MoManager *> (GetMoManager(UNC_KT_VBRIDGE)));
-
-    if (mgrvbr == NULL) {
-      UPLL_LOG_DEBUG("obj null");
-      return UPLL_RC_ERR_GENERIC;
-    }
-
-    result_code = mgrvbr->GetChildConfigKey(okey, NULL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetChildConfigKey fail");
-      return result_code;
-    }
 
-    if (ctrlr_dom) { 
-      SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
-    }
-    else {
-      UPLL_LOG_DEBUG("ctrlr null");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
+  val_rename_vnode *rename_val = NULL;
+  rename_val = reinterpret_cast<val_rename_vnode *> (GetVal(okey));
 
-    uuu::upll_strncpy(
-            reinterpret_cast<key_vbr *> (okey->get_key())->vbridge_name,
-            reinterpret_cast<key_vbr_if_flowfilter_t *>
-            (ikey->get_key())->if_key.vbr_key.vbridge_name,
-            (kMaxLenVnodeName + 1));
-//    UPLL_LOG_DEBUG("vbr name (%s) (%s)", (okey->get_key())->vbridge_name,
-//                   (ikey->get_key())->if_key.vbr_key.vbridge_name);
-
-    DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutFlag };
-    result_code = mgrvbr->ReadConfigDB(okey, dt_type, UNC_OP_READ,
-                                       dbop, dmi, RENAMETBL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Unable to Read from DB");
-      DELETE_IF_NOT_NULL(okey);
-      return result_code;
-    }
+  if (!rename_val) {
+    UPLL_LOG_DEBUG("Vbr Name is not Valid.");
+    DELETE_IF_NOT_NULL(okey);
+    return UPLL_RC_ERR_GENERIC;
+  }
 
-    val_rename_vbr *rename_val = NULL;
-    rename_val = reinterpret_cast<val_rename_vbr *> (GetVal(okey));
+  uuu::upll_strncpy(
+      reinterpret_cast<key_vbr_if_flowfilter_entry_t *>
+      (ikey->get_key())->flowfilter_key.if_key.vbr_key.vtn_key.vtn_name,
+      rename_val->ctrlr_vtn_name,
+      (kMaxLenVtnName + 1));
 
-    if (!rename_val) {
-      UPLL_LOG_DEBUG("Vbr Name is not Valid.");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
+  uuu::upll_strncpy(
+      reinterpret_cast<key_vbr_if_flowfilter_entry_t *>
+      (ikey->get_key())->flowfilter_key.if_key.vbr_key.vbridge_name,
+      rename_val->ctrlr_vnode_name,
+      (kMaxLenVnodeName + 1));
 
-    uuu::upll_strncpy(reinterpret_cast<key_vbr_if_flowfilter_entry_t *>
-              (ikey->get_key())->flowfilter_key.if_key.vbr_key.vbridge_name,
-                      rename_val->new_name,
-                      (kMaxLenVnodeName + 1));
-    DELETE_IF_NOT_NULL(okey);
-  }
-  UPLL_LOG_TRACE("GetRenamedCtrl vbr_if_ff end %s", ikey->ToStrAll().c_str());
+  DELETE_IF_NOT_NULL(okey);
+  UPLL_LOG_TRACE("End Input ConfigKeyVal= %s", ikey->ToStrAll().c_str());
   UPLL_LOG_DEBUG("Renamed Controller key is sucessfull.");
   return UPLL_RC_SUCCESS;
-#endif
 }
 
 upll_rc_t VbrIfFlowFilterMoMgr::UpdateAuditConfigStatus(
     unc_keytype_configstatus_t cs_status,
     uuc::UpdateCtrlrPhase phase,
-    ConfigKeyVal *&ckv_running) {
+    ConfigKeyVal *&ckv_running,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
   val_flowfilter_t *val = NULL;
   val = (ckv_running != NULL)?
-     reinterpret_cast<val_flowfilter_t *> (GetVal(ckv_running)):NULL;
+      reinterpret_cast<val_flowfilter_t *> (GetVal(ckv_running)):NULL;
 
   if (NULL == val) {
     UPLL_LOG_DEBUG("val strct is empty");
@@ -1532,8 +1535,8 @@ upll_rc_t VbrIfFlowFilterMoMgr::UpdateAuditConfigStatus(
   if (uuc::kUpllUcpCreate == phase )
     val->cs_row_status = cs_status;
   if ((uuc::kUpllUcpUpdate == phase) &&
-           (val->cs_row_status == UNC_CS_INVALID ||
-            val->cs_row_status == UNC_CS_NOT_APPLIED))
+      (val->cs_row_status == UNC_CS_INVALID ||
+       val->cs_row_status == UNC_CS_NOT_APPLIED))
     val->cs_row_status = cs_status;
 
   UPLL_LOG_DEBUG("AuditUpdate Config Status Information %d", result_code);
@@ -1593,9 +1596,10 @@ upll_rc_t VbrIfFlowFilterMoMgr::ReadMo(IpcReqRespHeader *req,
         }
         GET_USER_DATA_CTRLR_DOMAIN(dup_key, ctrlr_dom);
         SET_USER_DATA_CTRLR_DOMAIN(l_key, ctrlr_dom);
-        //Added ValidateCapa
+        // Added ValidateCapa
         result_code = ValidateCapability(req, ikey,
-                   reinterpret_cast<const char *>(ctrlr_dom.ctrlr));
+                                         reinterpret_cast<const char *>
+                                         (ctrlr_dom.ctrlr));
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("validate Capability Failed %d", result_code);
           return result_code;
@@ -1636,7 +1640,9 @@ upll_rc_t VbrIfFlowFilterMoMgr::ReadMo(IpcReqRespHeader *req,
             reinterpret_cast<pfcdrv_val_vbrif_vextif *>
             (ConfigKeyVal::Malloc(sizeof(pfcdrv_val_vbrif_vextif)));
 
-        result_code = GetVexternalInformation(dup_key, UPLL_DT_CANDIDATE,
+        // For DT_STATE additional information will be returned which is not
+        // required. So, passing UPLL_DT_RUNNING
+        result_code = GetVexternalInformation(dup_key, UPLL_DT_RUNNING,
                                               pfc_val, db_flag, dmi);
         if (UPLL_RC_SUCCESS != result_code) {
           DELETE_IF_NOT_NULL(dup_key);
@@ -1674,8 +1680,8 @@ upll_rc_t VbrIfFlowFilterMoMgr::ReadMo(IpcReqRespHeader *req,
         }
         if (ipc_resp.header.result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("Driver response for Key %d controller %s result %d",
-                        l_key->get_key_type(), ctrlr_dom.ctrlr,
-                        ipc_resp.header.result_code);
+                         l_key->get_key_type(), ctrlr_dom.ctrlr,
+                         ipc_resp.header.result_code);
           DELETE_IF_NOT_NULL(dup_key);
           DELETE_IF_NOT_NULL(l_key);
           DELETE_IF_NOT_NULL(flag_key);
@@ -1797,7 +1803,7 @@ upll_rc_t VbrIfFlowFilterMoMgr::UpdateConfigStatus(ConfigKeyVal *key,
 }
 
 upll_rc_t VbrIfFlowFilterMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
-                                              ConfigKeyVal *ikey) {
+                                                ConfigKeyVal *ikey) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
@@ -1841,8 +1847,8 @@ upll_rc_t VbrIfFlowFilterMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
   }
   key_vbr_if->direction = 0xFE;
   okey = new ConfigKeyVal(UNC_KT_VBRIF_FLOWFILTER,
-                           IpctSt::kIpcStKeyVbrIfFlowfilter,
-                           key_vbr_if, NULL);
+                          IpctSt::kIpcStKeyVbrIfFlowfilter,
+                          key_vbr_if, NULL);
   if (!okey) {
     free(key_vbr_if);
     return UPLL_RC_ERR_GENERIC;
@@ -1957,7 +1963,8 @@ upll_rc_t VbrIfFlowFilterMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
         GET_USER_DATA_CTRLR_DOMAIN(dup_key, ctrlr_dom);
         SET_USER_DATA_CTRLR_DOMAIN(l_key, ctrlr_dom);
         result_code = ValidateCapability(req, ikey,
-                   reinterpret_cast<const char *>(ctrlr_dom.ctrlr));
+                                         reinterpret_cast<const char *>
+                                         (ctrlr_dom.ctrlr));
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("validate Capability Failed %d", result_code);
           return result_code;
@@ -2002,7 +2009,9 @@ upll_rc_t VbrIfFlowFilterMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
             reinterpret_cast<pfcdrv_val_vbrif_vextif *>
             (ConfigKeyVal::Malloc(sizeof(pfcdrv_val_vbrif_vextif)));
 
-        result_code = GetVexternalInformation(tctrl_key, UPLL_DT_CANDIDATE,
+        // For DT_STATE additional information will be returned which is not
+        // required. So, passing UPLL_DT_RUNNING
+        result_code = GetVexternalInformation(tctrl_key, UPLL_DT_RUNNING,
                                               pfc_val, db_flag, dmi);
         if (UPLL_RC_SUCCESS != result_code) {
           UPLL_LOG_DEBUG("GetVexternalInformation failed err(%d)", result_code);
@@ -2034,10 +2043,10 @@ upll_rc_t VbrIfFlowFilterMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
               (tmp_key->get_key())->direction;
           ipc_req.ckv_data = l_key;
           if (!IpcUtil::SendReqToDriver(
-                      (const char *)ctrlr_dom.ctrlr,
-                      reinterpret_cast<char *>(ctrlr_dom.domain),
-                      PFCDRIVER_SERVICE_NAME, PFCDRIVER_SVID_LOGICAL,
-                      &ipc_req, true, &ipc_resp)) {
+                  (const char *)ctrlr_dom.ctrlr,
+                  reinterpret_cast<char *>(ctrlr_dom.domain),
+                  PFCDRIVER_SERVICE_NAME, PFCDRIVER_SVID_LOGICAL,
+                  &ipc_req, true, &ipc_resp)) {
             UPLL_LOG_DEBUG("SendReqToDriver failed for Key %d controller %s",
                            l_key->get_key_type(),
                            reinterpret_cast<char *>(ctrlr_dom.ctrlr));
@@ -2051,8 +2060,8 @@ upll_rc_t VbrIfFlowFilterMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
 
           if (ipc_resp.header.result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("Driver response for Key %d controller %s result %d",
-                          l_key->get_key_type(), ctrlr_dom.ctrlr,
-                          ipc_resp.header.result_code);
+                           l_key->get_key_type(), ctrlr_dom.ctrlr,
+                           ipc_resp.header.result_code);
             DELETE_IF_NOT_NULL(l_key);
             DELETE_IF_NOT_NULL(flag_key);
             DELETE_IF_NOT_NULL(tctrl_key);
@@ -2094,13 +2103,14 @@ upll_rc_t VbrIfFlowFilterMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
   return result_code;
 }
 
-upll_rc_t VbrIfFlowFilterMoMgr::TxUpdateController(unc_key_type_t keytype,
-                                        uint32_t session_id,
-                                        uint32_t config_id,
-                                        uuc::UpdateCtrlrPhase phase,
-                                        set<string> *affected_ctrlr_set,
-                                        DalDmlIntf *dmi,
-                                        ConfigKeyVal **err_ckv)  {
+upll_rc_t VbrIfFlowFilterMoMgr::TxUpdateController(
+    unc_key_type_t keytype,
+    uint32_t session_id,
+    uint32_t config_id,
+    uuc::UpdateCtrlrPhase phase,
+    set<string> *affected_ctrlr_set,
+    DalDmlIntf *dmi,
+    ConfigKeyVal **err_ckv)  {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   DalResultCode db_result;
@@ -2113,10 +2123,10 @@ upll_rc_t VbrIfFlowFilterMoMgr::TxUpdateController(unc_key_type_t keytype,
   uint8_t db_flag_running = 0;
   upll_keytype_datatype_t vext_datatype =  UPLL_DT_CANDIDATE;
   if (affected_ctrlr_set == NULL)
-      return UPLL_RC_ERR_GENERIC;
+    return UPLL_RC_ERR_GENERIC;
   unc_keytype_operation_t op = (phase == uuc::kUpllUcpCreate)?UNC_OP_CREATE:
-               ((phase == uuc::kUpllUcpUpdate)?UNC_OP_UPDATE:
-               ((phase == uuc::kUpllUcpDelete)?UNC_OP_DELETE:UNC_OP_INVALID));
+      ((phase == uuc::kUpllUcpUpdate)?UNC_OP_UPDATE:
+       ((phase == uuc::kUpllUcpDelete)?UNC_OP_DELETE:UNC_OP_INVALID));
 
   unc_keytype_operation_t op1 = op;
   if (UNC_OP_UPDATE == op) {
@@ -2126,7 +2136,7 @@ upll_rc_t VbrIfFlowFilterMoMgr::TxUpdateController(unc_key_type_t keytype,
   }
 
   result_code = DiffConfigDB(UPLL_DT_CANDIDATE, UPLL_DT_RUNNING,
-                     op, req, nreq, &dal_cursor_handle, dmi, MAINTBL);
+                             op, req, nreq, &dal_cursor_handle, dmi, MAINTBL);
 
   while (result_code == UPLL_RC_SUCCESS) {
     ck_main = NULL;
@@ -2161,8 +2171,8 @@ upll_rc_t VbrIfFlowFilterMoMgr::TxUpdateController(unc_key_type_t keytype,
 
     GET_USER_DATA_CTRLR_DOMAIN(ck_main, ctrlr_dom);
     if (ctrlr_dom.ctrlr == NULL) {
-        DELETE_IF_NOT_NULL(ck_main);
-        return UPLL_RC_ERR_GENERIC;
+      DELETE_IF_NOT_NULL(ck_main);
+      return UPLL_RC_ERR_GENERIC;
     }
     db_flag = 0;
     GET_USER_DATA_FLAGS(ck_main, db_flag);
@@ -2205,41 +2215,41 @@ upll_rc_t VbrIfFlowFilterMoMgr::TxUpdateController(unc_key_type_t keytype,
       }
       DELETE_IF_NOT_NULL(tmp_cfgkeyval);
     } else if (op1 == UNC_OP_UPDATE) {
-        result_code = GetChildConfigKey(tmp_cfgkeyval, ck_main);
-          if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("GetChildConfigKey failed, err %d", result_code);
-            DELETE_IF_NOT_NULL(ck_main);
-            return result_code;
-          }
-          SET_USER_DATA_CTRLR_DOMAIN(tmp_cfgkeyval, ctrlr_dom);
-          DbSubOp dbop1 = { kOpReadSingle, kOpMatchCtrlr|kOpMatchDomain,
-            kOpInOutFlag};
-          result_code = ReadConfigDB(tmp_cfgkeyval, UPLL_DT_RUNNING,
-                                     UNC_OP_READ, dbop1, dmi, MAINTBL);
-          if (result_code != UPLL_RC_SUCCESS) {
-             if (result_code != UPLL_RC_ERR_INSTANCE_EXISTS) {
-               UPLL_LOG_DEBUG("Unable to read from DB, err: %d", result_code);
-               DELETE_IF_NOT_NULL(ck_main);
-               DELETE_IF_NOT_NULL(tmp_cfgkeyval);
-               return result_code;
-             }
-          }
-          GET_USER_DATA_FLAGS(tmp_cfgkeyval, db_flag_running);
-          if (!(SET_FLAG_PORTMAP & db_flag_running) &&
-              !(SET_FLAG_VLINK & db_flag_running)) {
-             UPLL_LOG_DEBUG("Portmap flag is not set at running");
-             op1 = UNC_OP_CREATE;
-             vext_datatype = UPLL_DT_CANDIDATE;
-          }
+      result_code = GetChildConfigKey(tmp_cfgkeyval, ck_main);
+      if (result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("GetChildConfigKey failed, err %d", result_code);
+        DELETE_IF_NOT_NULL(ck_main);
+        return result_code;
+      }
+      SET_USER_DATA_CTRLR_DOMAIN(tmp_cfgkeyval, ctrlr_dom);
+      DbSubOp dbop1 = { kOpReadSingle, kOpMatchCtrlr|kOpMatchDomain,
+        kOpInOutFlag};
+      result_code = ReadConfigDB(tmp_cfgkeyval, UPLL_DT_RUNNING,
+                                 UNC_OP_READ, dbop1, dmi, MAINTBL);
+      if (result_code != UPLL_RC_SUCCESS) {
+        if (result_code != UPLL_RC_ERR_INSTANCE_EXISTS) {
+          UPLL_LOG_DEBUG("Unable to read from DB, err: %d", result_code);
+          DELETE_IF_NOT_NULL(ck_main);
+          DELETE_IF_NOT_NULL(tmp_cfgkeyval);
+          return result_code;
+        }
+      }
+      GET_USER_DATA_FLAGS(tmp_cfgkeyval, db_flag_running);
+      if (!(SET_FLAG_PORTMAP & db_flag_running) &&
+          !(SET_FLAG_VLINK & db_flag_running)) {
+        UPLL_LOG_DEBUG("Portmap flag is not set at running");
+        op1 = UNC_OP_CREATE;
+        vext_datatype = UPLL_DT_CANDIDATE;
+      }
       DELETE_IF_NOT_NULL(tmp_cfgkeyval);
     }
 
 
     /*pfcdrv_val_flowfilter_entry_t *pfc_val =
-        reinterpret_cast<pfcdrv_val_flowfilter_entry_t *>
-        (ConfigKeyVal::Malloc(sizeof(pfcdrv_val_flowfilter_entry_t)));
+      reinterpret_cast<pfcdrv_val_flowfilter_entry_t *>
+      (ConfigKeyVal::Malloc(sizeof(pfcdrv_val_flowfilter_entry_t)));
 
-    */
+*/
     pfcdrv_val_vbrif_vextif *pfc_val =
         reinterpret_cast<pfcdrv_val_vbrif_vextif *>
         (ConfigKeyVal::Malloc(sizeof(pfcdrv_val_vbrif_vextif)));
@@ -2256,7 +2266,7 @@ upll_rc_t VbrIfFlowFilterMoMgr::TxUpdateController(unc_key_type_t keytype,
       return result_code;
     }
     UPLL_LOG_DEBUG("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
-        ctrlr_dom.domain);
+                   ctrlr_dom.domain);
     ConfigKeyVal *temp_ck_main = NULL;
     result_code = DupConfigKeyVal(temp_ck_main, req, MAINTBL);
     if (UPLL_RC_SUCCESS != result_code) {
@@ -2266,7 +2276,7 @@ upll_rc_t VbrIfFlowFilterMoMgr::TxUpdateController(unc_key_type_t keytype,
       return result_code;
     }
     upll_keytype_datatype_t dt_type = (op1 == UNC_OP_DELETE)?
-             UPLL_DT_RUNNING:UPLL_DT_CANDIDATE;
+        UPLL_DT_RUNNING:UPLL_DT_CANDIDATE;
     result_code = GetRenamedControllerKey(ck_main, dt_type,
                                           dmi, &ctrlr_dom);
     if (result_code != UPLL_RC_SUCCESS) {
@@ -2279,17 +2289,17 @@ upll_rc_t VbrIfFlowFilterMoMgr::TxUpdateController(unc_key_type_t keytype,
     ck_main->SetCfgVal(new ConfigVal(IpctSt::kIpcStPfcdrvValVbrifVextif,
                                      pfc_val));
     UPLL_LOG_DEBUG("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
-                 ctrlr_dom.domain);
+                   ctrlr_dom.domain);
 
     // Inserting the controller to Set
     affected_ctrlr_set->insert
-      (string(reinterpret_cast<char *>(ctrlr_dom.ctrlr)));
+        (string(reinterpret_cast<char *>(ctrlr_dom.ctrlr)));
 
     IpcResponse ipc_resp;
     result_code = SendIpcReq(session_id, config_id, op1, UPLL_DT_CANDIDATE,
-               ck_main, &ctrlr_dom, &ipc_resp);
+                             ck_main, &ctrlr_dom, &ipc_resp);
 
-    if (result_code == UPLL_RC_ERR_RESOURCE_DISCONNECTED) {
+    if (result_code == UPLL_RC_ERR_CTR_DISCONNECTED) {
       UPLL_LOG_DEBUG(" driver result code - %d", result_code);
       result_code = UPLL_RC_SUCCESS;
     }
@@ -2308,7 +2318,7 @@ upll_rc_t VbrIfFlowFilterMoMgr::TxUpdateController(unc_key_type_t keytype,
   DELETE_IF_NOT_NULL(req);
   DELETE_IF_NOT_NULL(nreq);
   result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) ?
-                 UPLL_RC_SUCCESS : result_code;
+      UPLL_RC_SUCCESS : result_code;
   return result_code;
 }
 
@@ -2349,6 +2359,16 @@ upll_rc_t VbrIfFlowFilterMoMgr::SetVlinkPortmapConfiguration(
   // The below statement allows to read the partial key with
   // direction as output only
   ff_key->direction = 0xFE;
+  result_code = UpdateConfigDB(ckv, dt_type, UNC_OP_READ,
+                               dmi, MAINTBL);
+  if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+    UPLL_LOG_DEBUG("No flowfilter object");
+    DELETE_IF_NOT_NULL(ckv);
+    return UPLL_RC_SUCCESS;
+  } else if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
+    UPLL_LOG_DEBUG("UpdateConfigDB failed %d", result_code);
+  }
+  ff_key->direction = 0xFE;
   result_code = ReadConfigDB(ckv, dt_type ,
                              UNC_OP_READ, dbop, dmi, MAINTBL);
   if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
@@ -2367,15 +2387,35 @@ upll_rc_t VbrIfFlowFilterMoMgr::SetVlinkPortmapConfiguration(
     flag_port_map = 0;
     GET_USER_DATA_FLAGS(temp_ckv, flag_port_map);
     if (flags & kVlinkConfigured) {
+      if (flag_port_map & SET_FLAG_VLINK) {
+        UPLL_LOG_DEBUG("vlink flag is already set in DB");
+        DELETE_IF_NOT_NULL(ckv);
+        return UPLL_RC_SUCCESS;
+      }
       UPLL_LOG_DEBUG("only vlink");
       flag_port_map |= SET_FLAG_VLINK;
     } else if (flags & kPortMapConfigured) {
+      if (flag_port_map & SET_FLAG_PORTMAP) {
+        UPLL_LOG_DEBUG("Port-Map flag is already set in DB");
+        DELETE_IF_NOT_NULL(ckv);
+        return UPLL_RC_SUCCESS;
+      }
       UPLL_LOG_DEBUG("only portmap");
       flag_port_map |= SET_FLAG_PORTMAP;
     } else if (flags & kVlinkPortMapConfigured) {
+      if (flag_port_map & SET_FLAG_VLINK_PORTMAP) {
+        UPLL_LOG_DEBUG("Port-Map/vlink flag is already set in DB");
+        DELETE_IF_NOT_NULL(ckv);
+        return UPLL_RC_SUCCESS;
+      }
       UPLL_LOG_DEBUG("portmap with vlink");
       flag_port_map |= SET_FLAG_VLINK_PORTMAP;
     } else {
+      if (flag_port_map & SET_FLAG_NO_VLINK_PORTMAP) {
+        UPLL_LOG_DEBUG("Port-Map/vlink flag is already cleared in DB");
+        DELETE_IF_NOT_NULL(ckv);
+        return UPLL_RC_SUCCESS;
+      }
       flag_port_map &= SET_FLAG_NO_VLINK_PORTMAP;
     }
     SET_USER_DATA_FLAGS(temp_ckv, flag_port_map);
@@ -2396,7 +2436,10 @@ upll_rc_t VbrIfFlowFilterMoMgr::SetVlinkPortmapConfiguration(
       DELETE_IF_NOT_NULL(ckv);
       return UPLL_RC_ERR_GENERIC;
     }
-    result_code = mgr->SetVlinkPortmapConfiguration(ikey, dt_type, dmi, flags,
+    result_code = mgr->SetVlinkPortmapConfiguration(temp_ckv,
+                                                    dt_type,
+                                                    dmi,
+                                                    flags,
                                                     oper);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("update portmap flag for flowfilterentry failed, err %d",
@@ -2410,10 +2453,11 @@ upll_rc_t VbrIfFlowFilterMoMgr::SetVlinkPortmapConfiguration(
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t VbrIfFlowFilterMoMgr::GetVexternalInformation(ConfigKeyVal* ck_main,
-                 upll_keytype_datatype_t dt_type,
-                 pfcdrv_val_vbrif_vextif *& pfc_val,
-                 uint8_t db_flag, DalDmlIntf *dmi) {
+upll_rc_t VbrIfFlowFilterMoMgr::GetVexternalInformation(
+    ConfigKeyVal* ck_main,
+    upll_keytype_datatype_t dt_type,
+    pfcdrv_val_vbrif_vextif *& pfc_val,
+    uint8_t db_flag, DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
   ConfigKeyVal *ckv = NULL;
@@ -2486,16 +2530,17 @@ upll_rc_t VbrIfFlowFilterMoMgr::GetVexternalInformation(ConfigKeyVal* ck_main,
 
     pfc_val->interface_type = PFCDRV_IF_TYPE_VBRIF;
   } else {
-     UPLL_LOG_DEBUG("Portmap/Vlink is not configured");
-     return UPLL_RC_ERR_NOT_ALLOWED_AT_THIS_TIME;
+    UPLL_LOG_DEBUG("Portmap/Vlink is not configured");
+    return UPLL_RC_ERR_NOT_ALLOWED_AT_THIS_TIME;
   }
   UPLL_LOG_DEBUG("GetVExternalInformation returned successfully");
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t VbrIfFlowFilterMoMgr::GetControllerDomainID(ConfigKeyVal *ikey,
-                                          upll_keytype_datatype_t dt_type,
-                                          DalDmlIntf *dmi) {
+upll_rc_t VbrIfFlowFilterMoMgr::GetControllerDomainID(
+    ConfigKeyVal *ikey,
+    upll_keytype_datatype_t dt_type,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
@@ -2509,7 +2554,7 @@ upll_rc_t VbrIfFlowFilterMoMgr::GetControllerDomainID(ConfigKeyVal *ikey,
   result_code = mgrvbrif->GetChildConfigKey(ckv, NULL);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("Unable to get the ParentConfigKey, resultcode=%d",
-                    result_code);
+                   result_code);
     return result_code;
   }
 
@@ -2545,11 +2590,11 @@ upll_rc_t VbrIfFlowFilterMoMgr::GetControllerDomainID(ConfigKeyVal *ikey,
     DELETE_IF_NOT_NULL(ckv);
     DELETE_IF_NOT_NULL(vbr_key);
     UPLL_LOG_DEBUG("GetControllerDomainId error err code(%d)", result_code);
-    return UPLL_RC_ERR_GENERIC;
+    return result_code;
   }
 
   UPLL_LOG_DEBUG("ctrlrid %s, domainid %s",
-                   ctrlr_dom.ctrlr, ctrlr_dom.domain);
+                 ctrlr_dom.ctrlr, ctrlr_dom.domain);
   SET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
 
   DELETE_IF_NOT_NULL(ckv);
@@ -2602,14 +2647,14 @@ upll_rc_t VbrIfFlowFilterMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
 }
 
 upll_rc_t VbrIfFlowFilterMoMgr::DeleteChildrenPOM(
-          ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
-          DalDmlIntf *dmi) {
+    ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
 
   if (NULL == ikey || NULL == dmi) {
-  UPLL_LOG_DEBUG("Delete Operation failed:Bad request");
-  return result_code;
+    UPLL_LOG_DEBUG("Delete Operation failed:Bad request");
+    return result_code;
   }
   // Read the DB get the flowlist value and send the delete request to
   // flowlist momgr if flowlist is configured.
@@ -2620,7 +2665,7 @@ upll_rc_t VbrIfFlowFilterMoMgr::DeleteChildrenPOM(
     return result_code;
   }
   result_code = UpdateConfigDB(tempckv, dt_type, UNC_OP_DELETE, dmi,
-      MAINTBL);
+                               MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     DELETE_IF_NOT_NULL(tempckv);
     if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
@@ -2628,7 +2673,7 @@ upll_rc_t VbrIfFlowFilterMoMgr::DeleteChildrenPOM(
       return UPLL_RC_SUCCESS;
     }
     UPLL_LOG_DEBUG("DeleteMo record Err in vtnpolicingmaptbl (%d)",
-        result_code);
+                   result_code);
     return result_code;
   }
   delete tempckv;
@@ -2639,16 +2684,16 @@ upll_rc_t VbrIfFlowFilterMoMgr::DeleteChildrenPOM(
 upll_rc_t VbrIfFlowFilterMoMgr::SetValidAudit(ConfigKeyVal *&ikey) {
   UPLL_FUNC_TRACE;
   val_flowfilter_t *val = reinterpret_cast<val_flowfilter_t *>
-    (ConfigKeyVal::Malloc(sizeof(val_flowfilter_t)));
+      (ConfigKeyVal::Malloc(sizeof(val_flowfilter_t)));
   val->cs_row_status = UNC_CS_APPLIED;
   ikey->AppendCfgVal(IpctSt::kIpcStValFlowfilter, val);
   return UPLL_RC_SUCCESS;
 }
 
 bool VbrIfFlowFilterMoMgr::FilterAttributes(void *&val1,
-                                          void *val2,
-                                          bool copy_to_running,
-                                          unc_keytype_operation_t op) {
+                                            void *val2,
+                                            bool copy_to_running,
+                                            unc_keytype_operation_t op) {
   UPLL_FUNC_TRACE;
   if (op != UNC_OP_CREATE)
     return true;
index fb0689ee4ac624c8b781ab35b3e0c590db5005e3..c83b8e76a2db007813d168d803405112a7d2aa3f 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -18,12 +18,12 @@ namespace upll {
 namespace kt_momgr {
 
 /*  This file declares interfaces for keyType KT_VBRIF_FLOWFILER */
-/**
- *  @brief  VbrIfFlowFilterMoMgr class handles all the request
- *          received from service.
- */
-class VbrIfFlowFilterMoMgr : public MoMgrImpl {
-  private:
+  /**
  *  @brief  VbrIfFlowFilterMoMgr class handles all the request
  *          received from service.
  */
+  class VbrIfFlowFilterMoMgr : public MoMgrImpl {
+   private:
     static unc_key_type_t vbr_if_flowfilter_child[];
     /**
      * @brief  Member Variable for VbrIfFlowfilterBindInfo.
@@ -34,8 +34,8 @@ class VbrIfFlowFilterMoMgr : public MoMgrImpl {
      * @brief  Member Variable for VbrIfFlowfilterMainTblBindInfo.
      */
     static BindInfo vbr_if_flowfiltermaintbl_bind_info[];
-    uint32_t cur_instance_count;
-  public:
+
+   public:
     /**
      * @brief  VbrIfFlowFilterMoMgr Class Constructor.
      */
@@ -105,26 +105,26 @@ class VbrIfFlowFilterMoMgr : public MoMgrImpl {
      * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
      */
     upll_rc_t ValidateVbrIfFlowfilterKey(
-          key_vbr_if_flowfilter_t* key_vbr_if_flowfilter,
-          unc_keytype_operation_t op);
-
-   /**
-    * @Brief Checks if the specified key type(KT_VBRIF_FLOWFILTER) and
-    *        associated attributes are supported on the given controller,
-    *        based on the valid flag
-    *
-    * @param[in] IpcReqRespHeader  contains first 8 fields of input request
-    *                              structure
-    * @param[in] ConfigKeyVal     contains key and value structure.
-    * @param[in] ctrlr_name       controller name.
-    *
-    * @retval  UPLL_RC_SUCCESS             Validation succeeded.
-    * @retval  UPLL_RC_ERR_GENERIC         Validation failure.
-    * @retval  UPLL_RC_ERR_INVALID_OPTION1 Option1 is not valid.
-    * @retval  UPLL_RC_ERR_INVALID_OPTION2 Option2 is not valid.
-    */
+        key_vbr_if_flowfilter_t* key_vbr_if_flowfilter,
+        unc_keytype_operation_t op);
+
+    /**
+     * @Brief Checks if the specified key type(KT_VBRIF_FLOWFILTER) and
+     *        associated attributes are supported on the given controller,
+     *        based on the valid flag
+     *
+     * @param[in] IpcReqRespHeader  contains first 8 fields of input request
+     *                              structure
+     * @param[in] ConfigKeyVal     contains key and value structure.
+     * @param[in] ctrlr_name       controller name.
+     *
+     * @retval  UPLL_RC_SUCCESS             Validation succeeded.
+     * @retval  UPLL_RC_ERR_GENERIC         Validation failure.
+     * @retval  UPLL_RC_ERR_INVALID_OPTION1 Option1 is not valid.
+     * @retval  UPLL_RC_ERR_INVALID_OPTION2 Option2 is not valid.
+     */
     upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                                   const char* ctrlr_name = NULL);
+                                 const char* ctrlr_name = NULL);
     /**
      * @brief  Allocates Memory for the Incoming Pointer to the Class.
      *
@@ -147,14 +147,15 @@ class VbrIfFlowFilterMoMgr : public MoMgrImpl {
      * @param[in]   cs_status    Describes CsStatus Infomation.
      *                           Information.
      * @param[in]   phase        Describes the Phase of the Operation.
-     * @param[in]   ckv_audit    Pointer to ConfigKeyVal Class.
+     * @param[in]   dmi          Pointer to the DalDmlIntf(DB Interface)
      *
      * @retval  UPLL_RC_SUCCESS      Successfull completion.
      * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
      */
-     upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
-                                       uuc::UpdateCtrlrPhase phase,
-                                       ConfigKeyVal *&ckv_running);
+    upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
+                                      uuc::UpdateCtrlrPhase phase,
+                                      ConfigKeyVal *&ckv_running,
+                                      DalDmlIntf *dmi);
     /**
      * @brief  Method used to fill the CongigKeyVal with the Parent
      *         Class Information.
@@ -317,15 +318,15 @@ class VbrIfFlowFilterMoMgr : public MoMgrImpl {
     upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey,
                               ConfigKeyVal *ikey);
 
-   /**
-    * @brief Method To Compare the Valid Check of Attributes
-    *
-    * @param[out]  val1   Pointer to ConfigKeyVal Class which contains only Valid Attributes
-    * @param[in]   val2   Pointer to ConfigKeyVal Class.
-    * @param[in]   audit  If true,Audit Process.
-    *
-    * @return  Void Function.
-    */
+    /**
+     * @brief Method To Compare the Valid Check of Attributes
+     *
+     * @param[out]  val1   Pointer to ConfigKeyVal Class which contains only Valid Attributes
+     * @param[in]   val2   Pointer to ConfigKeyVal Class.
+     * @param[in]   audit  If true,Audit Process.
+     *
+     * @return  Void Function.
+     */
     bool CompareValidValue(void *&val1, void *val2, bool audit) {
       return false;
     }
@@ -358,13 +359,13 @@ class VbrIfFlowFilterMoMgr : public MoMgrImpl {
      *
      * @retval  UPLL_RC_SUCCESS Successful Completion
      **/
-     upll_rc_t GetValid(void*val,
-                        uint64_t indx,
-                        uint8_t *&valid,
-                        upll_keytype_datatype_t dt_type,
-                        MoMgrTables tbl) {
-     return UPLL_RC_SUCCESS;
-     }
+    upll_rc_t GetValid(void*val,
+                       uint64_t indx,
+                       uint8_t *&valid,
+                       upll_keytype_datatype_t dt_type,
+                       MoMgrTables tbl) {
+      return UPLL_RC_SUCCESS;
+    }
 
     /**
      * @brief  Method used for GetParentConfigKey Operation.
@@ -376,8 +377,8 @@ class VbrIfFlowFilterMoMgr : public MoMgrImpl {
      * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
      */
 
-     upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey,
-                                  ConfigKeyVal *ikey);
+    upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey,
+                                 ConfigKeyVal *ikey);
 
     /**
      * @brief  Method to check validity of Key
@@ -402,59 +403,64 @@ class VbrIfFlowFilterMoMgr : public MoMgrImpl {
                                 uint8_t* ctrlr_id);
 
     upll_rc_t GetVexternalInformation(ConfigKeyVal* ck_main,
-                 upll_keytype_datatype_t dt_type,
-                 pfcdrv_val_vbrif_vextif *& pfc_val,
-                 uint8_t db_flag, DalDmlIntf *dmi);
+                                      upll_keytype_datatype_t dt_type,
+                                      pfcdrv_val_vbrif_vextif *& pfc_val,
+                                      uint8_t db_flag, DalDmlIntf *dmi);
 
     upll_rc_t SetVlinkPortmapConfiguration(ConfigKeyVal *ikey,
-                           upll_keytype_datatype_t dt_type,
-                           DalDmlIntf *dmi, InterfacePortMapInfo flag,
-                           unc_keytype_operation_t oper);
+                                           upll_keytype_datatype_t dt_type,
+                                           DalDmlIntf *dmi,
+                                           InterfacePortMapInfo flag,
+                                           unc_keytype_operation_t oper);
 
     upll_rc_t TxUpdateController(unc_key_type_t keytype,
-                                        uint32_t session_id,
-                                        uint32_t config_id,
-                                        uuc::UpdateCtrlrPhase phase,
-                                        set<string> *affected_ctrlr_set,
-                                        DalDmlIntf *dmi,
-                                        ConfigKeyVal **err_ckv);
+                                 uint32_t session_id,
+                                 uint32_t config_id,
+                                 uuc::UpdateCtrlrPhase phase,
+                                 set<string> *affected_ctrlr_set,
+                                 DalDmlIntf *dmi,
+                                 ConfigKeyVal **err_ckv);
 
     upll_rc_t CreateCandidateMo(IpcReqRespHeader *req,
-                                       ConfigKeyVal *ikey,
-                                       DalDmlIntf *dmi);
+                                ConfigKeyVal *ikey,
+                                DalDmlIntf *dmi,
+                                bool restore_flag = false);
 
     upll_rc_t ConstructReadDetailResponse(ConfigKeyVal *ikey,
-                                         ConfigKeyVal *drv_resp_ckv,
-                                         ConfigKeyVal** okey);
+                                          ConfigKeyVal *drv_resp_ckv,
+                                          ConfigKeyVal** okey);
 
     upll_rc_t GetControllerDomainID(ConfigKeyVal *ikey,
                                     upll_keytype_datatype_t dt_type,
                                     DalDmlIntf *dmi);
 
-   upll_rc_t CreateAuditMoImpl(unc::upll::ipc_util::ConfigKeyVal*, unc::upll::dal::DalDmlIntf*, const char*); 
-   upll_rc_t AuditUpdateController(unc_key_type_t keytype,
-                             const char *ctrlr_id,
-                             uint32_t session_id,
-                             uint32_t config_id,
-                             uuc::UpdateCtrlrPhase phase,
-                             bool *ctrlr_affected,
-                             DalDmlIntf *dmi);
-
-  upll_rc_t DeleteChildrenPOM(ConfigKeyVal *ikey,
-                              upll_keytype_datatype_t dt_type,
-                              DalDmlIntf *dmi);
-
-  upll_rc_t SetValidAudit(ConfigKeyVal *&ikey);
-
-  bool FilterAttributes(void *&val1,
-                        void *val2,
-                        bool copy_to_running,
-                        unc_keytype_operation_t op);
-
-  upll_rc_t SetRenameFlag(ConfigKeyVal *ikey,
-                          DalDmlIntf *dmi,
-                          IpcReqRespHeader *req);
-};
+    upll_rc_t CreateAuditMoImpl(unc::upll::ipc_util::ConfigKeyVal*,
+                                unc::upll::dal::DalDmlIntf*,
+                                const char*);
+    upll_rc_t AuditUpdateController(unc_key_type_t keytype,
+                                    const char *ctrlr_id,
+                                    uint32_t session_id,
+                                    uint32_t config_id,
+                                    uuc::UpdateCtrlrPhase phase,
+                                    DalDmlIntf *dmi,
+                                    ConfigKeyVal **err_ckv,
+                                    KTxCtrlrAffectedState *ctrlr_affected);
+
+    upll_rc_t DeleteChildrenPOM(ConfigKeyVal *ikey,
+                                upll_keytype_datatype_t dt_type,
+                                DalDmlIntf *dmi);
+
+    upll_rc_t SetValidAudit(ConfigKeyVal *&ikey);
+
+    bool FilterAttributes(void *&val1,
+                          void *val2,
+                          bool copy_to_running,
+                          unc_keytype_operation_t op);
+
+    upll_rc_t SetRenameFlag(ConfigKeyVal *ikey,
+                            DalDmlIntf *dmi,
+                            IpcReqRespHeader *req);
+  };
 }  // namespace kt_momgr
 }  // namespace upll
 }  // namespace unc
index 59f36d6915ce7394bb290ad20feac896086b977a..01850768281f889b3ed881a0285acba567fd790f 100644 (file)
@@ -1,18 +1,18 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
+#include <ctype.h>
+#include <sstream>
 #include "vbr_if_momgr.hh"
 #include "vbr_momgr.hh"
 #include "vtn_momgr.hh"
 #include "vlink_momgr.hh"
-#include <ctype.h>
-#include <sstream>
 #if 0
 namespace upll_dal_vbrif unc::upll::dal::schema::table::vbridge_interface;
 #endif
@@ -32,135 +32,138 @@ namespace kt_momgr {
 #define UPLL_VLAN_TAGGED 1
 
 BindInfo VbrIfMoMgr::vbr_if_bind_info[] = {
-    { uudst::vbridge_interface::kDbiVtnName, CFG_KEY, offsetof(
-        key_vbr_if, vbr_key.vtn_key.vtn_name),
-      uud::kDalChar, 32 },
-    { uudst::vbridge_interface::kDbiVbrName, CFG_KEY, offsetof(
-        key_vbr_if, vbr_key.vbridge_name),
-      uud::kDalChar, 32 },
-    { uudst::vbridge_interface::kDbiIfName, CFG_KEY, offsetof(key_vbr_if,
-                                                              if_name),
-      uud::kDalChar, 32 },
-    { uudst::vbridge_interface::kDbiAdminStatus, CFG_VAL, offsetof(
-        val_vbr_if, admin_status),
-      uud::kDalUint8, 1 },
-    { uudst::vbridge_interface::kDbiDesc, CFG_VAL, offsetof(val_vbr_if,
-                                                            description),
-      uud::kDalChar, 128 },
-    { uudst::vbridge_interface::kDbiLogicalPortId, CFG_VAL, offsetof(
-        val_vbr_if, portmap.logical_port_id),
-      uud::kDalChar, 320 },
-    { uudst::vbridge_interface::kDbiVlanId, CFG_VAL, offsetof(val_vbr_if,
-                                                              portmap.vlan_id),
-      uud::kDalUint16, 1 },
-    { uudst::vbridge_interface::kDbiTagged, CFG_VAL, offsetof(val_vbr_if,
-                                                              portmap.tagged),
-      uud::kDalUint8, 1 },
-    { uudst::vbridge_interface::kDbiVexName, CFG_VAL, offsetof(val_drv_vbr_if,
-                                                               vex_name),
-      uud::kDalChar, 32 },
-    { uudst::vbridge_interface::kDbiVexIfName, CFG_VAL, offsetof(val_drv_vbr_if,
-                                                                 vex_if_name),
-      uud::kDalChar, 32 },
-    { uudst::vbridge_interface::kDbiVexLinkName, CFG_VAL, offsetof(
-        val_drv_vbr_if, vex_link_name),
-      uud::kDalChar, 32 },
-    { uudst::vbridge_interface::kDbiOperStatus, ST_VAL, offsetof(
-        val_db_vbr_if_st, vbr_if_val_st.oper_status),
-      uud::kDalUint8, 1 },
-    { uudst::vbridge_interface::kDbiDownCount, ST_VAL, offsetof(
-        val_db_vbr_if_st, down_count),
-      uud::kDalUint32, 1 },
-    { uudst::vbridge_interface::kDbiCtrlrName, CK_VAL, offsetof(
-        key_user_data_t, ctrlr_id), uud::kDalChar, 32 },
-    { uudst::vbridge_interface::kDbiDomainId, CK_VAL, offsetof(
-        key_user_data_t, domain_id), uud::kDalChar, 32 },
-    { uudst::vbridge_interface::kDbiFlags, CK_VAL, offsetof(
-        key_user_data_t, flags),
-      uud::kDalUint8, 1 },
-    { uudst::vbridge_interface::kDbiValidAdminStatus, CFG_DEF_VAL, offsetof(
-        val_vbr_if, valid[UPLL_IDX_ADMIN_STATUS_VBRI]),
-      uud::kDalUint8, 1 },
-    { uudst::vbridge_interface::kDbiValidDesc, CFG_META_VAL, offsetof(
-        val_vbr_if, valid[UPLL_IDX_DESC_VBRI]),
-      uud::kDalUint8, 1 },
-    { uudst::vbridge_interface::kDbiValidPortMap, CFG_META_VAL, offsetof(
-        val_vbr_if, valid[UPLL_IDX_PM_VBRI]),
-      uud::kDalUint8, 1 },
-    { uudst::vbridge_interface::kDbiValidLogicalPortId, CFG_META_VAL, offsetof(
-        val_vbr_if, portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM]),
-      uud::kDalUint8, 1 },
-    { uudst::vbridge_interface::kDbiValidVlanid, CFG_META_VAL, offsetof(
-        val_vbr_if, portmap.valid[UPLL_IDX_VLAN_ID_PM]),
-      uud::kDalUint8, 1 },
-    { uudst::vbridge_interface::kDbiValidTagged, CFG_META_VAL, offsetof(
-        val_vbr_if, portmap.valid[UPLL_IDX_TAGGED_PM]),
-      uud::kDalUint8, 1 },
-    { uudst::vbridge_interface::kDbiValidVexName, CFG_META_VAL, offsetof(
-        val_drv_vbr_if, valid[PFCDRV_IDX_VEXT_NAME_VBRIF]),
-      uud::kDalUint8, 1 },
-    { uudst::vbridge_interface::kDbiValidVexIfName, CFG_META_VAL, offsetof(
-        val_drv_vbr_if, valid[PFCDRV_IDX_VEXTIF_NAME_VBRIF]),
-      uud::kDalUint8, 1 },
-    { uudst::vbridge_interface::kDbiValidVexLinkName, CFG_META_VAL, offsetof(
-        val_drv_vbr_if, valid[PFCDRV_IDX_VLINK_NAME_VBRIF]),
-      uud::kDalUint8, 1 },
-    { uudst::vbridge_interface::kDbiValidOperStatus, ST_META_VAL, offsetof(
-        val_db_vbr_if_st, vbr_if_val_st.valid[UPLL_IDX_OPER_STATUS_VBRS]),
-      uud::kDalUint8, 1 },
-    { uudst::vbridge_interface::kDbiCsAdminStatus, CS_VAL, offsetof(
-        val_vbr_if, cs_attr[UPLL_IDX_ADMIN_STATUS_VBRI]),
-      uud::kDalUint8, 1 },
-    { uudst::vbridge_interface::kDbiCsDesc, CS_VAL, offsetof(
-        val_vbr_if, cs_attr[UPLL_IDX_DESC_VBRI]),
-      uud::kDalUint8, 1 },
-    { uudst::vbridge_interface::kDbiCsPortMap, CS_VAL, offsetof(
-        val_vbr_if, cs_attr[UPLL_IDX_PM_VBRI]),
-      uud::kDalUint8, 1 },
-    { uudst::vbridge_interface::kDbiCsLogicalPortId, CS_VAL, offsetof(
-        val_vbr_if, portmap.cs_attr[UPLL_IDX_LOGICAL_PORT_ID_PM]),
-      uud::kDalUint8, 1 },
-    { uudst::vbridge_interface::kDbiCsVlanid, CS_VAL, offsetof(
-        val_vbr_if, portmap.cs_attr[UPLL_IDX_VLAN_ID_PM]),
-      uud::kDalUint8, 1 },
-    { uudst::vbridge_interface::kDbiCsTagged, CS_VAL, offsetof(
-        val_vbr_if, portmap.cs_attr[UPLL_IDX_TAGGED_PM]),
-      uud::kDalUint8, 1 },
-    { uudst::vbridge_interface::kDbiCsRowstatus, CS_VAL, offsetof(
-        val_vbr_if, cs_row_status),
-      uud::kDalUint8, 1 } };
+  { uudst::vbridge_interface::kDbiVtnName, CFG_KEY, offsetof(
+          key_vbr_if, vbr_key.vtn_key.vtn_name),
+  uud::kDalChar, 32 },
+  { uudst::vbridge_interface::kDbiVbrName, CFG_KEY, offsetof(
+          key_vbr_if, vbr_key.vbridge_name),
+  uud::kDalChar, 32 },
+  { uudst::vbridge_interface::kDbiIfName, CFG_KEY, offsetof(key_vbr_if,
+                                                            if_name),
+  uud::kDalChar, 32 },
+  { uudst::vbridge_interface::kDbiAdminStatus, CFG_VAL, offsetof(
+          val_vbr_if, admin_status),
+  uud::kDalUint8, 1 },
+  { uudst::vbridge_interface::kDbiDesc, CFG_VAL, offsetof(val_vbr_if,
+                                                          description),
+  uud::kDalChar, 128 },
+  { uudst::vbridge_interface::kDbiLogicalPortId, CFG_VAL, offsetof(
+          val_vbr_if, portmap.logical_port_id),
+  uud::kDalChar, 320 },
+  { uudst::vbridge_interface::kDbiVlanId, CFG_VAL, offsetof(val_vbr_if,
+                                                            portmap.vlan_id),
+  uud::kDalUint16, 1 },
+  { uudst::vbridge_interface::kDbiTagged, CFG_VAL, offsetof(val_vbr_if,
+                                                            portmap.tagged),
+  uud::kDalUint8, 1 },
+  { uudst::vbridge_interface::kDbiVexName, CFG_VAL, offsetof(val_drv_vbr_if,
+                                                             vex_name),
+  uud::kDalChar, 32 },
+  { uudst::vbridge_interface::kDbiVexIfName, CFG_VAL, offsetof(val_drv_vbr_if,
+                                                               vex_if_name),
+  uud::kDalChar, 32 },
+  { uudst::vbridge_interface::kDbiVexLinkName, CFG_VAL, offsetof(
+          val_drv_vbr_if, vex_link_name),
+  uud::kDalChar, 32 },
+  { uudst::vbridge_interface::kDbiOperStatus, ST_VAL, offsetof(
+          val_db_vbr_if_st, vbr_if_val_st.oper_status),
+  uud::kDalUint8, 1 },
+  { uudst::vbridge_interface::kDbiDownCount, ST_VAL, offsetof(
+          val_db_vbr_if_st, down_count),
+  uud::kDalUint32, 1 },
+  { uudst::vbridge_interface::kDbiCtrlrName, CK_VAL, offsetof(
+          key_user_data_t, ctrlr_id), uud::kDalChar, 32 },
+  { uudst::vbridge_interface::kDbiDomainId, CK_VAL, offsetof(
+          key_user_data_t, domain_id), uud::kDalChar, 32 },
+  { uudst::vbridge_interface::kDbiFlags, CK_VAL, offsetof(
+          key_user_data_t, flags),
+  uud::kDalUint8, 1 },
+  { uudst::vbridge_interface::kDbiValidAdminStatus, CFG_DEF_VAL, offsetof(
+          val_vbr_if, valid[UPLL_IDX_ADMIN_STATUS_VBRI]),
+  uud::kDalUint8, 1 },
+  { uudst::vbridge_interface::kDbiValidDesc, CFG_META_VAL, offsetof(
+          val_vbr_if, valid[UPLL_IDX_DESC_VBRI]),
+  uud::kDalUint8, 1 },
+  { uudst::vbridge_interface::kDbiValidPortMap, CFG_META_VAL, offsetof(
+          val_vbr_if, valid[UPLL_IDX_PM_VBRI]),
+  uud::kDalUint8, 1 },
+  { uudst::vbridge_interface::kDbiValidLogicalPortId, CFG_META_VAL, offsetof(
+          val_vbr_if, portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM]),
+  uud::kDalUint8, 1 },
+  { uudst::vbridge_interface::kDbiValidVlanid, CFG_META_VAL, offsetof(
+          val_vbr_if, portmap.valid[UPLL_IDX_VLAN_ID_PM]),
+  uud::kDalUint8, 1 },
+  { uudst::vbridge_interface::kDbiValidTagged, CFG_META_VAL, offsetof(
+          val_vbr_if, portmap.valid[UPLL_IDX_TAGGED_PM]),
+  uud::kDalUint8, 1 },
+  { uudst::vbridge_interface::kDbiValidVexName, CFG_META_VAL, offsetof(
+          val_drv_vbr_if, valid[PFCDRV_IDX_VEXT_NAME_VBRIF]),
+  uud::kDalUint8, 1 },
+  { uudst::vbridge_interface::kDbiValidVexIfName, CFG_META_VAL, offsetof(
+          val_drv_vbr_if, valid[PFCDRV_IDX_VEXTIF_NAME_VBRIF]),
+  uud::kDalUint8, 1 },
+  { uudst::vbridge_interface::kDbiValidVexLinkName, CFG_META_VAL, offsetof(
+          val_drv_vbr_if, valid[PFCDRV_IDX_VLINK_NAME_VBRIF]),
+  uud::kDalUint8, 1 },
+  { uudst::vbridge_interface::kDbiValidOperStatus, ST_META_VAL, offsetof(
+          val_db_vbr_if_st, vbr_if_val_st.valid[UPLL_IDX_OPER_STATUS_VBRS]),
+  uud::kDalUint8, 1 },
+  { uudst::vbridge_interface::kDbiCsAdminStatus, CS_VAL, offsetof(
+          val_vbr_if, cs_attr[UPLL_IDX_ADMIN_STATUS_VBRI]),
+  uud::kDalUint8, 1 },
+  { uudst::vbridge_interface::kDbiCsDesc, CS_VAL, offsetof(
+          val_vbr_if, cs_attr[UPLL_IDX_DESC_VBRI]),
+  uud::kDalUint8, 1 },
+  { uudst::vbridge_interface::kDbiCsPortMap, CS_VAL, offsetof(
+          val_vbr_if, cs_attr[UPLL_IDX_PM_VBRI]),
+  uud::kDalUint8, 1 },
+  { uudst::vbridge_interface::kDbiCsLogicalPortId, CS_VAL, offsetof(
+          val_vbr_if, portmap.cs_attr[UPLL_IDX_LOGICAL_PORT_ID_PM]),
+  uud::kDalUint8, 1 },
+  { uudst::vbridge_interface::kDbiCsVlanid, CS_VAL, offsetof(
+          val_vbr_if, portmap.cs_attr[UPLL_IDX_VLAN_ID_PM]),
+  uud::kDalUint8, 1 },
+  { uudst::vbridge_interface::kDbiCsTagged, CS_VAL, offsetof(
+          val_vbr_if, portmap.cs_attr[UPLL_IDX_TAGGED_PM]),
+  uud::kDalUint8, 1 },
+  { uudst::vbridge_interface::kDbiCsRowstatus, CS_VAL, offsetof(
+          val_vbr_if, cs_row_status),
+  uud::kDalUint8, 1 } };
 
 BindInfo VbrIfMoMgr::key_vbr_if_maintbl_bind_info[] = {
-    { uudst::vbridge_interface::kDbiVtnName, CFG_MATCH_KEY, offsetof(
-        key_vbr_if_t, vbr_key.vtn_key.vtn_name),
-      uud::kDalChar, kMaxLenVtnName + 1 },
-    { uudst::vbridge_interface::kDbiVbrName, CFG_MATCH_KEY, offsetof(
-        key_vbr_if_t, vbr_key.vbridge_name),
-      uud::kDalChar, kMaxLenVnodeName + 1 },
-    { uudst::vbridge_interface::kDbiIfName, CFG_MATCH_KEY, offsetof(
-        key_vbr_if_t, if_name),
-      uud::kDalChar, kMaxLenInterfaceName + 1 },
-    { uudst::vbridge_interface::kDbiVtnName, CFG_INPUT_KEY, offsetof(
-        key_rename_vnode_info_t, new_unc_vtn_name),
-      uud::kDalChar, kMaxLenVtnName + 1 },
-    { uudst::vbridge_interface::kDbiVbrName, CFG_INPUT_KEY, offsetof(
-        key_rename_vnode_info_t, new_unc_vnode_name),
-      uud::kDalChar, kMaxLenVnodeName + 1 },
-    { uudst::vbridge_interface::kDbiFlags, CK_VAL, offsetof(
-        key_user_data_t, flags),
-      uud::kDalUint8, 1 } };
+  { uudst::vbridge_interface::kDbiVtnName, CFG_MATCH_KEY, offsetof(
+          key_vbr_if_t, vbr_key.vtn_key.vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1 },
+  { uudst::vbridge_interface::kDbiVbrName, CFG_MATCH_KEY, offsetof(
+          key_vbr_if_t, vbr_key.vbridge_name),
+  uud::kDalChar, kMaxLenVnodeName + 1 },
+  { uudst::vbridge_interface::kDbiIfName, CFG_MATCH_KEY, offsetof(
+          key_vbr_if_t, if_name),
+  uud::kDalChar, kMaxLenInterfaceName + 1 },
+  { uudst::vbridge_interface::kDbiVtnName, CFG_INPUT_KEY, offsetof(
+          key_rename_vnode_info_t, new_unc_vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1 },
+  { uudst::vbridge_interface::kDbiVbrName, CFG_INPUT_KEY, offsetof(
+          key_rename_vnode_info_t, new_unc_vnode_name),
+  uud::kDalChar, kMaxLenVnodeName + 1 },
+  { uudst::vbridge_interface::kDbiFlags, CK_VAL, offsetof(
+          key_user_data_t, flags),
+  uud::kDalUint8, 1 } };
 
 unc_key_type_t VbrIfMoMgr::vbr_if_child[] = { UNC_KT_VBRIF_FLOWFILTER,
-                                              UNC_KT_VBRIF_POLICINGMAP };
+  UNC_KT_VBRIF_POLICINGMAP };
 
 
 VbrIfMoMgr::VbrIfMoMgr() {
   UPLL_FUNC_TRACE;
   ntable = MAX_MOMGR_TBLS;
   table = new Table *[ntable];
-  table[MAINTBL] = new Table(uudst::kDbiVbrIfTbl, UNC_KT_VBR_IF, vbr_if_bind_info,
-                         IpctSt::kIpcStKeyVbrIf, IpctSt::kIpcStValVbrIf,
-                         uudst::vbridge_interface::kDbiVbrIfNumCols);
+  table[MAINTBL] = new Table(uudst::kDbiVbrIfTbl,
+                             UNC_KT_VBR_IF,
+                             vbr_if_bind_info,
+                             IpctSt::kIpcStKeyVbrIf,
+                             IpctSt::kIpcStValVbrIf,
+                             uudst::vbridge_interface::kDbiVbrIfNumCols);
   table[CTRLRTBL] = NULL;
   table[RENAMETBL] = NULL;
   nchild = sizeof(vbr_if_child) / sizeof(*vbr_if_child);
@@ -170,7 +173,8 @@ VbrIfMoMgr::VbrIfMoMgr() {
  * Based on the key type the bind info will pass
  **/
 
-bool VbrIfMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo,
+bool VbrIfMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type,
+                                      BindInfo *&binfo,
                                       int &nattr, MoMgrTables tbl) {
   /* Main Table or rename table only update */
   if (MAINTBL == tbl) {
@@ -185,20 +189,20 @@ bool VbrIfMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo,
 
 
 upll_rc_t VbrIfMoMgr::UpdateMo(IpcReqRespHeader *req,
-                              ConfigKeyVal *ikey,
-                              DalDmlIntf *dmi) {
+                               ConfigKeyVal *ikey,
+                               DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *okey = NULL;
   if (NULL == ikey || NULL == req || !(ikey->get_key())) {
-     UPLL_LOG_ERROR("Given Input is Empty");
-     return UPLL_RC_ERR_GENERIC;
+    UPLL_LOG_ERROR("Given Input is Empty");
+    return UPLL_RC_ERR_GENERIC;
   }
-  UPLL_LOG_ERROR("UpdateMo for %d", ikey->get_key_type());
+  UPLL_LOG_TRACE("UpdateMo for %d", ikey->get_key_type());
   result_code = ValidateMessage(req, ikey);
   if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_ERROR("Validation Message is Failed ");
-      return result_code;
+    UPLL_LOG_ERROR("Validation Message is Failed ");
+    return result_code;
   }
 #if 0
   controller_domain ctrlr_dom;
@@ -227,9 +231,9 @@ upll_rc_t VbrIfMoMgr::UpdateMo(IpcReqRespHeader *req,
     delete temp_ck;
     return result_code;
   }
-  DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutCtrlr|kOpInOutDomain  };
+  DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutCtrlr|kOpInOutDomain };
   result_code = ReadConfigDB(temp_ck, req->datatype, UNC_OP_READ,
-                                  dbop, dmi, MAINTBL);
+                             dbop, dmi, MAINTBL);
   if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
     UPLL_LOG_DEBUG("ReadConfigDB Failed %d", result_code);
     delete temp_ck;
@@ -239,18 +243,18 @@ upll_rc_t VbrIfMoMgr::UpdateMo(IpcReqRespHeader *req,
   SET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
 #endif
   result_code = ValidateCapability(
-                req, ikey, reinterpret_cast<char *>(ctrlr_dom.ctrlr));
+      req, ikey, reinterpret_cast<char *>(ctrlr_dom.ctrlr));
   if (UPLL_RC_SUCCESS  != result_code) {
     UPLL_LOG_DEBUG("Validate Capability is Failed. Error_code : %d",
-                     result_code);
+                   result_code);
     delete temp_ck;
     return result_code;
   }
 #if 0
   result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_READ, dmi, MAINTBL);
   if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
-      UPLL_LOG_ERROR("Record does Not Exists");
-      return result_code;
+    UPLL_LOG_ERROR("Record does Not Exists");
+    return result_code;
   }
 #endif
   delete temp_ck;
@@ -268,19 +272,20 @@ upll_rc_t VbrIfMoMgr::UpdateMo(IpcReqRespHeader *req,
 
   result_code = ValidateAttribute(okey, dmi, req);
   if (UPLL_RC_SUCCESS  != result_code) {
-      delete okey;
-      UPLL_LOG_ERROR("Validate Attribute is Failed");
-      return result_code;
+    delete okey;
+    UPLL_LOG_ERROR("Validate Attribute is Failed");
+    return result_code;
   }
 
   result_code = UpdateConfigVal(okey, req->datatype, dmi);
   if (UPLL_RC_SUCCESS != result_code) {
-      delete okey;
-      UPLL_LOG_DEBUG("UpdateConfigVal is Failed");
-      return result_code;
+    delete okey;
+    UPLL_LOG_DEBUG("UpdateConfigVal is Failed");
+    return result_code;
   }
   DbSubOp dbop1 = { kOpNotRead, kOpMatchNone, kOpInOutNone };
-  UPLL_LOG_DEBUG("The okey Structue before update  %s", (okey->ToStrAll()).c_str());
+  UPLL_LOG_DEBUG("The okey Structue before update  %s",
+                 (okey->ToStrAll()).c_str());
   result_code = UpdateConfigDB(okey, req->datatype, UNC_OP_UPDATE,
                                dmi, &dbop1, MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
@@ -306,13 +311,13 @@ upll_rc_t VbrIfMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey, DalDmlIntf *dmi,
   vn_if_type iftype;
   VlinkMoMgr *mgr =
       reinterpret_cast<VlinkMoMgr *>(const_cast<MoManager*>(GetMoManager(
-       UNC_KT_VLINK)));
+                  UNC_KT_VLINK)));
   if (!mgr) {
     UPLL_LOG_DEBUG("Invalid Mgr");
     return UPLL_RC_ERR_GENERIC;
   }
   result_code = mgr->CheckIfMemberOfVlink(ck_ifkey, UPLL_DT_RUNNING,
-                                             ck_vlink, dmi, iftype);
+                                          ck_vlink, dmi, iftype);
   if ((result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) ||
       ((iftype == kVlinkInternalNode1) || (iftype == kVlinkInternalNode2))) {
     delete ck_ifkey;
@@ -320,53 +325,59 @@ upll_rc_t VbrIfMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey, DalDmlIntf *dmi,
     UPLL_LOG_DEBUG("Internal link interface");
     result_code = VnodeChildMoMgr::CreateAuditMoImpl(ikey, dmi, ctrlr_id);
     if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_INFO("Create Audit Vbrif failed %s", (ikey->ToStrAll()).c_str());
+      UPLL_LOG_INFO("Create Audit Vbrif failed %s",
+                    (ikey->ToStrAll()).c_str());
     }
     return result_code;
   } else if (result_code != UPLL_RC_SUCCESS) {
-     delete ck_ifkey;
-     if (ck_vlink) delete ck_vlink;
-     UPLL_LOG_INFO("Error in reading vlink key %d", result_code);
-     return UPLL_RC_ERR_GENERIC;
+    delete ck_ifkey;
+    if (ck_vlink) delete ck_vlink;
+    UPLL_LOG_INFO("Error in reading vlink key %d", result_code);
+    return UPLL_RC_ERR_GENERIC;
   }
   val_vlink *vlink_val = reinterpret_cast<val_vlink *>(GetVal(ck_vlink));
   if (vlink_val == NULL) return UPLL_RC_ERR_GENERIC;
   uint8_t valid_boundary = vlink_val->valid[UPLL_IDX_BOUNDARY_NAME_VLNK];
-  //store VALID_NO_VAL in running only in case of boundary link
+  // store VALID_NO_VAL in running only in case of boundary link
   if ((valid_boundary == UNC_VF_VALID_NO_VALUE) ||
       (valid_boundary == UNC_VF_VALID)) {
     DbSubOp dbop = {kOpReadSingle, kOpMatchNone, kOpInOutFlag};
     result_code = ReadConfigDB(ck_ifkey, UPLL_DT_RUNNING, UNC_OP_READ,
-                  dbop, dmi, MAINTBL);
+                               dbop, dmi, MAINTBL);
     if (result_code != UPLL_RC_SUCCESS) {
       delete ck_ifkey;
       UPLL_LOG_INFO("Retrieving a Record for VbrIf in RUNNING DB failed");
       return result_code;
     }
-    void *db_val, *drv_val = GetVal(ikey) ;
+    void *db_val, *drv_val = GetVal(ikey);
     db_val =  GetVal(ck_ifkey);
     if (!db_val || !drv_val) {
       delete ck_ifkey;
       return UPLL_RC_ERR_GENERIC;
     }
 
-    //validate params of running against those received from driver
-    val_port_map vbr_db_portmap = (reinterpret_cast<val_drv_vbr_if*>(db_val))->vbr_if_val.portmap;
-    val_port_map *vbr_drv_portmap = &((reinterpret_cast<val_drv_vbr_if*>(drv_val))->vbr_if_val.portmap);
+    // validate params of running against those received from driver
+    val_port_map vbr_db_portmap = (reinterpret_cast<val_drv_vbr_if*>
+                                   (db_val))->vbr_if_val.portmap;
+    val_port_map *vbr_drv_portmap = &((reinterpret_cast<val_drv_vbr_if*>
+                                       (drv_val))->vbr_if_val.portmap);
     bool portid_equal = (vbr_db_portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] ==
                          vbr_drv_portmap->valid[UPLL_IDX_LOGICAL_PORT_ID_PM]);
 
-    // to be uncommented when driver stops translating from no-vlan-id to 65535 as it
-   // cannot distingish between boundary vlinked / regular mapped vbrifs
-   if (vbr_drv_portmap->valid[UPLL_IDX_VLAN_ID_PM] == UNC_VF_INVALID) {
-     vbr_drv_portmap->vlan_id =  0xFFFF;
-     vbr_drv_portmap->valid[UPLL_IDX_VLAN_ID_PM] = UNC_VF_VALID;
-   }
+    // to be uncommented when driver stops translating from no-vlan-id
+    // to 65535 as it
+    // cannot distingish between boundary vlinked / regular mapped vbrifs
+    if (vbr_drv_portmap->valid[UPLL_IDX_VLAN_ID_PM] == UNC_VF_INVALID) {
+      vbr_drv_portmap->vlan_id =  0xFFFF;
+      vbr_drv_portmap->valid[UPLL_IDX_VLAN_ID_PM] = UNC_VF_VALID;
+    }
 
     if (portid_equal &&
         (vbr_db_portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] == UNC_VF_VALID)) {
-       portid_equal = (strcmp(reinterpret_cast<char*>(vbr_db_portmap.logical_port_id),
-                         reinterpret_cast<char*>(vbr_drv_portmap->logical_port_id)) == 0);
+      portid_equal = (strcmp(reinterpret_cast<char*>
+                             (vbr_db_portmap.logical_port_id),
+                             reinterpret_cast<char*>
+                             (vbr_drv_portmap->logical_port_id)) == 0);
     }
     bool vlanid_equal = (vbr_db_portmap.valid[UPLL_IDX_VLAN_ID_PM] ==
                          vbr_drv_portmap->valid[UPLL_IDX_VLAN_ID_PM]);
@@ -378,13 +389,13 @@ upll_rc_t VbrIfMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey, DalDmlIntf *dmi,
                          vbr_drv_portmap->valid[UPLL_IDX_TAGGED_PM]);
     if (tagged_equal &&
         (vbr_db_portmap.valid[UPLL_IDX_TAGGED_PM] == UNC_VF_VALID)) {
-       tagged_equal = (vbr_db_portmap.tagged == vbr_drv_portmap->tagged);
+      tagged_equal = (vbr_db_portmap.tagged == vbr_drv_portmap->tagged);
     }
 
     // create boundary vlink
     if (portid_equal && vlanid_equal && tagged_equal) {
       result_code = mgr->UpdateConfigDB(ck_vlink, UPLL_DT_AUDIT,
-                     UNC_OP_CREATE, dmi, MAINTBL);
+                                        UNC_OP_CREATE, dmi, MAINTBL);
       if (result_code != UPLL_RC_SUCCESS) {
         delete ck_ifkey;
         delete ck_vlink;
@@ -421,9 +432,9 @@ upll_rc_t VbrIfMoMgr::GetVbrIfValfromDB(ConfigKeyVal *ikey,
   return result_code;
 }
 
-upll_rc_t VbrIfMoMgr::updateVbrIf (IpcReqRespHeader *req,
-                                  ConfigKeyVal *ikey,
-                                  DalDmlIntf *dmi) {
+upll_rc_t VbrIfMoMgr::updateVbrIf(IpcReqRespHeader *req,
+                                   ConfigKeyVal *ikey,
+                                   DalDmlIntf *dmi) {
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
   ConfigKeyVal *ck_drv_vbr_if = NULL;
@@ -434,9 +445,9 @@ upll_rc_t VbrIfMoMgr::updateVbrIf (IpcReqRespHeader *req,
   key_vbr_if *temp_vbr_if_key = reinterpret_cast<key_vbr_if *>(ikey->get_key());
 
   key_vbr_if *vbr_if_key = reinterpret_cast<key_vbr_if *>(ConfigKeyVal::Malloc(
-      sizeof(key_vbr_if)));
+          sizeof(key_vbr_if)));
   uuu::upll_strncpy(vbr_if_key->if_name, temp_vbr_if_key->if_name,
-                   (kMaxLenInterfaceName + 1));
+                    (kMaxLenInterfaceName + 1));
   uuu::upll_strncpy(vbr_if_key->vbr_key.vbridge_name,
                     temp_vbr_if_key->vbr_key.vbridge_name,
                     (kMaxLenVnodeName + 1));
@@ -445,7 +456,7 @@ upll_rc_t VbrIfMoMgr::updateVbrIf (IpcReqRespHeader *req,
                     (kMaxLenVtnName + 1));
 
   val_drv_vbr_if *vbr_drv_if_val = reinterpret_cast<val_drv_vbr_if *>
-                                      (ConfigKeyVal::Malloc(sizeof(val_drv_vbr_if)));
+      (ConfigKeyVal::Malloc(sizeof(val_drv_vbr_if)));
   ConfigVal *cv_drv_vbr_if = new ConfigVal(IpctSt::kIpcStValVbrIf,
                                            vbr_drv_if_val);
   ck_drv_vbr_if = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
@@ -459,7 +470,10 @@ upll_rc_t VbrIfMoMgr::updateVbrIf (IpcReqRespHeader *req,
     UPLL_LOG_INFO("Retrieving a record for VbrIf in RUNNING DB failed");
     return result_code;
   }
-  result_code = UpdateConfigDB(ck_drv_vbr_if, UPLL_DT_AUDIT, UNC_OP_CREATE, dmi,
+  result_code = UpdateConfigDB(ck_drv_vbr_if,
+                               UPLL_DT_AUDIT,
+                               UNC_OP_CREATE,
+                               dmi,
                                MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
     delete ck_drv_vbr_if;
@@ -471,42 +485,87 @@ upll_rc_t VbrIfMoMgr::updateVbrIf (IpcReqRespHeader *req,
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t VbrIfMoMgr::ConverttoDriverPortMap(ConfigKeyVal *ck_port_map) {
+upll_rc_t VbrIfMoMgr::ConverttoDriverPortMap(ConfigKeyVal *ck_port_map,
+                                             DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
-  std::string if_name = reinterpret_cast<const char *>(
-                reinterpret_cast<key_vbr_if*>(ck_port_map->get_key())->if_name);
-  if (strlen(if_name.c_str()) >= 10) {
-    if_name.erase(10);
-  }
-
-  struct timeval _timeval;
-  struct timezone _timezone;
-  gettimeofday(&_timeval, &_timezone);
-
-  std::stringstream ss;
-  ss << if_name << _timeval.tv_sec << _timeval.tv_usec;
-  std::string unique_id = ss.str();
-  std::string vex_name("vx_");
-  vex_name += unique_id;
-  std::string vex_if_name("vi_");
-  vex_if_name += unique_id;
-  std::string vex_link_name("vl_");
-  vex_link_name += unique_id;
-
+  ConfigKeyVal *ckv_rvbrif = NULL;;
+  upll_rc_t result_code = GetChildConfigKey(ckv_rvbrif, ck_port_map);
+  if (UPLL_RC_SUCCESS != result_code) {
+    UPLL_LOG_ERROR("GetChilConfigKey Failed");
+    return UPLL_RC_ERR_GENERIC;
+  }
+  DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr | kOpMatchDomain, kOpInOutFlag};
+  result_code = ReadConfigDB(ckv_rvbrif,
+                             UPLL_DT_RUNNING,
+                             UNC_OP_READ,
+                             dbop,
+                             dmi,
+                             MAINTBL);
+  bool port_map_in_run = false;
   val_drv_vbr_if *drv_vbr_if_val = reinterpret_cast<val_drv_vbr_if *>
-                                                (GetVal(ck_port_map));
-  drv_vbr_if_val->valid[PFCDRV_IDX_VAL_VBRIF] = UNC_VF_VALID;
-  drv_vbr_if_val->valid[PFCDRV_IDX_VEXT_NAME_VBRIF] = UNC_VF_VALID;
-  uuu::upll_strncpy(drv_vbr_if_val->vex_name, vex_name.c_str(),
-                  (kMaxLenVnodeName+1));
-
-  drv_vbr_if_val->valid[PFCDRV_IDX_VEXTIF_NAME_VBRIF] = UNC_VF_VALID;
-  uuu::upll_strncpy(drv_vbr_if_val->vex_if_name,  vex_if_name.c_str(),
-                    (kMaxLenVnodeName + 1));
-
-  drv_vbr_if_val->valid[PFCDRV_IDX_VLINK_NAME_VBRIF] = UNC_VF_VALID;
-  uuu::upll_strncpy(drv_vbr_if_val->vex_link_name, vex_link_name.c_str(),
-                    (kMaxLenVnodeName + 1));
+      (GetVal(ck_port_map));
+  if (result_code == UPLL_RC_SUCCESS) {
+    val_drv_vbr_if *drv_rifval = reinterpret_cast<val_drv_vbr_if *>
+        (GetVal(ckv_rvbrif));
+    if (drv_rifval == NULL) {
+      UPLL_LOG_ERROR("val vbr is NULL");
+      DELETE_IF_NOT_NULL(ckv_rvbrif);
+      return UPLL_RC_ERR_GENERIC;
+    }
+    if (drv_rifval->vbr_if_val.valid[UPLL_IDX_PM_VBRI] == UNC_VF_VALID) {
+      port_map_in_run = true;
+      drv_vbr_if_val->vbr_if_val.valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID;
+      drv_vbr_if_val->valid[PFCDRV_IDX_VEXT_NAME_VBRIF] = UNC_VF_VALID;
+      uuu::upll_strncpy(drv_vbr_if_val->vex_name, drv_rifval->vex_name,
+                        kMaxLenVnodeName+1);
+      drv_vbr_if_val->valid[PFCDRV_IDX_VEXTIF_NAME_VBRIF] = UNC_VF_VALID;
+      uuu::upll_strncpy(reinterpret_cast<char *>(drv_vbr_if_val->vex_if_name),
+                        drv_rifval->vex_if_name, kMaxLenInterfaceName+1);
+      drv_vbr_if_val->valid[PFCDRV_IDX_VLINK_NAME_VBRIF] = UNC_VF_VALID;
+      uuu::upll_strncpy(reinterpret_cast<char *>
+                        (drv_vbr_if_val->vex_link_name),
+                        drv_rifval->vex_link_name, kMaxLenVlinkName+1);
+    }
+  } else if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+    UPLL_LOG_ERROR("ReadConfigDB failure %d", result_code);
+    DELETE_IF_NOT_NULL(ckv_rvbrif);
+    return result_code;
+  }
+  DELETE_IF_NOT_NULL(ckv_rvbrif);
+  if (!port_map_in_run || UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+    std::string if_name = reinterpret_cast<const char *>(
+        reinterpret_cast<key_vbr_if*>(ck_port_map->get_key())->if_name);
+    if (strlen(if_name.c_str()) >= 10) {
+      if_name.erase(10);
+    }
+
+    struct timeval _timeval;
+    struct timezone _timezone;
+    gettimeofday(&_timeval, &_timezone);
+
+    std::stringstream ss;
+    ss << if_name << _timeval.tv_sec << _timeval.tv_usec;
+    std::string unique_id = ss.str();
+    std::string vex_name("vx_");
+    vex_name += unique_id;
+    std::string vex_if_name("vi_");
+    vex_if_name += unique_id;
+    std::string vex_link_name("vl_");
+    vex_link_name += unique_id;
+
+    drv_vbr_if_val->valid[PFCDRV_IDX_VAL_VBRIF] = UNC_VF_VALID;
+    drv_vbr_if_val->valid[PFCDRV_IDX_VEXT_NAME_VBRIF] = UNC_VF_VALID;
+    uuu::upll_strncpy(drv_vbr_if_val->vex_name, vex_name.c_str(),
+                      (kMaxLenVnodeName+1));
+
+    drv_vbr_if_val->valid[PFCDRV_IDX_VEXTIF_NAME_VBRIF] = UNC_VF_VALID;
+    uuu::upll_strncpy(drv_vbr_if_val->vex_if_name,  vex_if_name.c_str(),
+                      (kMaxLenVnodeName + 1));
+
+    drv_vbr_if_val->valid[PFCDRV_IDX_VLINK_NAME_VBRIF] = UNC_VF_VALID;
+    uuu::upll_strncpy(drv_vbr_if_val->vex_link_name, vex_link_name.c_str(),
+                      (kMaxLenVnodeName + 1));
+  }
   return UPLL_RC_SUCCESS;
 }
 
@@ -520,7 +579,7 @@ bool VbrIfMoMgr::IsValidKey(void *key, uint64_t index) {
           reinterpret_cast<char *>(if_key->vbr_key.vtn_key.vtn_name),
           kMinLenVtnName, kMaxLenVtnName);
       if (ret_val != UPLL_RC_SUCCESS) {
-        UPLL_LOG_INFO("VTN Name is not valid(%d)", ret_val);
+        UPLL_LOG_TRACE("VTN Name is not valid(%d)", ret_val);
         return false;
       }
       break;
@@ -529,7 +588,7 @@ bool VbrIfMoMgr::IsValidKey(void *key, uint64_t index) {
           reinterpret_cast<char *>(if_key->vbr_key.vbridge_name),
           kMinLenVnodeName, kMaxLenVnodeName);
       if (ret_val != UPLL_RC_SUCCESS) {
-        UPLL_LOG_INFO("VBR Name is not valid(%d)", ret_val);
+        UPLL_LOG_TRACE("VBR Name is not valid(%d)", ret_val);
         return false;
       }
       break;
@@ -537,7 +596,7 @@ bool VbrIfMoMgr::IsValidKey(void *key, uint64_t index) {
       ret_val = ValidateKey(reinterpret_cast<char *>(if_key->if_name),
                             kMinLenInterfaceName, kMaxLenInterfaceName);
       if (ret_val != UPLL_RC_SUCCESS) {
-        UPLL_LOG_INFO("VBR IF Name is not valid(%d)", ret_val);
+        UPLL_LOG_TRACE("VBR IF Name is not valid(%d)", ret_val);
         return false;
       }
       break;
@@ -607,7 +666,7 @@ upll_rc_t VbrIfMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
       uint8_t flags = 0;
       val_vlink *vlink_val = reinterpret_cast<val_vlink *>(GetVal(parent_key));
       if (!vlink_val) {
-        if (!okey || !(okey->get_key())) 
+        if (!okey || !(okey->get_key()))
           free(vbr_key_if);
         return UPLL_RC_ERR_GENERIC;
       }
@@ -632,7 +691,7 @@ upll_rc_t VbrIfMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
         uuu::upll_strncpy(vbr_key_if->if_name, if_name,
                           (kMaxLenInterfaceName + 1));
     }
-    break;
+      break;
     default:
       break;
   }
@@ -668,13 +727,14 @@ upll_rc_t VbrIfMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
       (ikey->get_key());
   if (!pkey) return UPLL_RC_ERR_GENERIC;
   key_vbr *vbr_key = reinterpret_cast<key_vbr *>(ConfigKeyVal::Malloc
-                 (sizeof(key_vbr)));
+                                                 (sizeof(key_vbr)));
   uuu::upll_strncpy(vbr_key->vtn_key.vtn_name,
-          reinterpret_cast<key_vbr_if *>(pkey)->vbr_key.vtn_key.vtn_name,
-          (kMaxLenVtnName+1));
+                    reinterpret_cast<key_vbr_if *>
+                    (pkey)->vbr_key.vtn_key.vtn_name,
+                    (kMaxLenVtnName+1));
   uuu::upll_strncpy(vbr_key->vbridge_name,
-          reinterpret_cast<key_vbr_if *>(pkey)->vbr_key.vbridge_name,
-          (kMaxLenVnodeName+1));
+                    reinterpret_cast<key_vbr_if *>(pkey)->vbr_key.vbridge_name,
+                    (kMaxLenVnodeName+1));
   if (okey) delete okey;
   okey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, vbr_key, NULL);
   if (okey == NULL) {
@@ -696,11 +756,11 @@ upll_rc_t VbrIfMoMgr::AllocVal(ConfigVal *&ck_val,
   switch (tbl) {
     case MAINTBL:
       val = reinterpret_cast<void *>(ConfigKeyVal::Malloc(
-                    sizeof(val_drv_vbr_if)));
+              sizeof(val_drv_vbr_if)));
       ck_val = new ConfigVal(IpctSt::kIpcStPfcdrvValVbrIf, val);
       if (dt_type == UPLL_DT_STATE) {
         val = reinterpret_cast<void *>(ConfigKeyVal::Malloc(
-               sizeof(val_db_vbr_if_st)));
+                sizeof(val_db_vbr_if_st)));
         ConfigVal *ck_nxtval = new ConfigVal(IpctSt::kIpcStValVbrIfSt, val);
         ck_val->AppendCfgVal(ck_nxtval);
       }
@@ -717,7 +777,7 @@ upll_rc_t VbrIfMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
   if (req == NULL) return UPLL_RC_ERR_GENERIC;
   if (okey != NULL) return UPLL_RC_ERR_GENERIC;
   if (req->get_key_type() != UNC_KT_VBR_IF)
-     return UPLL_RC_ERR_GENERIC;
+    return UPLL_RC_ERR_GENERIC;
   ConfigVal *tmp1 = NULL, *tmp = (req)->get_cfg_val();
 
   if (tmp) {
@@ -746,29 +806,29 @@ upll_rc_t VbrIfMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
     if (tbl == MAINTBL) {
       void *ovalst;
       val_db_vbr_if_st *ival =
-            reinterpret_cast<val_db_vbr_if_st *>(tmp->get_val());
+          reinterpret_cast<val_db_vbr_if_st *>(tmp->get_val());
       if (ival == NULL) {
         DELETE_IF_NOT_NULL(tmp1);
         return UPLL_RC_ERR_GENERIC;
       }
       val_db_vbr_if_st *val_vbr_if =
-            reinterpret_cast<val_db_vbr_if_st *>(ConfigKeyVal::Malloc(
-                sizeof(val_db_vbr_if_st)));
+          reinterpret_cast<val_db_vbr_if_st *>(ConfigKeyVal::Malloc(
+                  sizeof(val_db_vbr_if_st)));
       memcpy(val_vbr_if, ival, sizeof(val_db_vbr_if_st));
       ovalst = reinterpret_cast<void *>(val_vbr_if);
       ConfigVal *tmp2 = new ConfigVal(
-        req->get_cfg_val()->get_next_cfg_val()->get_st_num(), ovalst);
+          req->get_cfg_val()->get_next_cfg_val()->get_st_num(), ovalst);
       tmp1->AppendCfgVal(tmp2);
     }
   }
   void *tkey = (req)->get_key();
   key_vbr_if *ikey = reinterpret_cast<key_vbr_if *>(tkey);
   key_vbr_if *vbr_if_key = reinterpret_cast<key_vbr_if *>(ConfigKeyVal::Malloc(
-      sizeof(key_vbr_if)));
+          sizeof(key_vbr_if)));
   if (!vbr_if_key) {
-      UPLL_LOG_DEBUG(" Memory allocation failed");
-      DELETE_IF_NOT_NULL(tmp1);
-      return UPLL_RC_ERR_GENERIC;
+    UPLL_LOG_DEBUG(" Memory allocation failed");
+    DELETE_IF_NOT_NULL(tmp1);
+    return UPLL_RC_ERR_GENERIC;
   }
   memcpy(vbr_if_key, ikey, sizeof(key_vbr_if));
   okey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, vbr_if_key,
@@ -789,7 +849,8 @@ upll_rc_t VbrIfMoMgr::UpdateConfigStatus(ConfigKeyVal *ikey,
                                          DalDmlIntf *dmi,
                                          ConfigKeyVal *ctrlr_key) {
   UPLL_FUNC_TRACE;
-  val_drv_vbr_if_t *vbrif_val = reinterpret_cast<val_drv_vbr_if_t *>(GetVal(ikey));
+  val_drv_vbr_if_t *vbrif_val = reinterpret_cast<val_drv_vbr_if_t *>
+      (GetVal(ikey));
 
   unc_keytype_configstatus_t cs_status =
       (driver_result == UPLL_RC_SUCCESS) ? UNC_CS_APPLIED : UNC_CS_NOT_APPLIED;
@@ -797,77 +858,84 @@ upll_rc_t VbrIfMoMgr::UpdateConfigStatus(ConfigKeyVal *ikey,
   val_vbr_if_t *vbr_if_val = &vbrif_val->vbr_if_val;
   bool port_map_change = false;
   switch (op) {
-  case UNC_OP_UPDATE:
-  {
-    void *val = reinterpret_cast<void *>(vbrif_val);
-    val_drv_vbr_if_t *vbrif_val2 = reinterpret_cast<val_drv_vbr_if_t *>
-                                  (GetVal(upd_key));
+    case UNC_OP_UPDATE:
+      {
+        void *val = reinterpret_cast<void *>(vbrif_val);
+        val_drv_vbr_if_t *vbrif_val2 = reinterpret_cast<val_drv_vbr_if_t *>
+            (GetVal(upd_key));
 #if 0
-    if (vbr_if_val->valid[UPLL_IDX_PM_VBRI] == UNC_VF_VALID
-      && vbrif_val2->vbr_if_val.valid[UPLL_IDX_PM_VBRI] != UNC_VF_VALID)
-      port_map_change = true;
+        if (vbr_if_val->valid[UPLL_IDX_PM_VBRI] == UNC_VF_VALID
+            && vbrif_val2->vbr_if_val.valid[UPLL_IDX_PM_VBRI] != UNC_VF_VALID)
+          port_map_change = true;
 #else
-    if (vbr_if_val->valid[UPLL_IDX_PM_VBRI] !=
-        vbrif_val2->vbr_if_val.valid[UPLL_IDX_PM_VBRI])
-      port_map_change = true;
+        if (vbr_if_val->valid[UPLL_IDX_PM_VBRI] !=
+            vbrif_val2->vbr_if_val.valid[UPLL_IDX_PM_VBRI])
+          port_map_change = true;
 #endif
-    CompareValidValue(val, GetVal(upd_key), true);
-    if (vbr_if_val->valid[UPLL_IDX_ADMIN_STATUS_VBRI] != UNC_VF_INVALID)
-      port_map_change = true;
-    uint8_t cand_flag = 0, run_flag = 0;
-    GET_USER_DATA_FLAGS(ikey, cand_flag);
-    GET_USER_DATA_FLAGS(upd_key, run_flag);
-    if ((cand_flag & VIF_TYPE) != (run_flag & VIF_TYPE))
-      port_map_change = true;
-    UPLL_LOG_DEBUG("ikey flags %d upd_key flags %d %d", cand_flag, run_flag,
-                                                    port_map_change);
-  }
-    /* fall through intended */
-  case UNC_OP_CREATE:
-    if (op == UNC_OP_CREATE) {
-      vbr_if_val->cs_row_status = cs_status;
-      port_map_change = true;
-    }
-    if (port_map_change) {
-      val_db_vbr_if_st *vbr_if_valst = reinterpret_cast<val_db_vbr_if_st *>
-                                      (ConfigKeyVal::Malloc(sizeof(val_db_vbr_if_st)));
-      ikey->AppendCfgVal(IpctSt::kIpcStValVbrIfSt, vbr_if_valst);
-      UPLL_LOG_DEBUG("valid %d  admin %d op %d",
-                        vbr_if_val->valid[UPLL_IDX_ADMIN_STATUS_VBRI],
-                        vbr_if_val->admin_status, op);
-#if 0
-      if (vbr_if_val->valid[UPLL_IDX_ADMIN_STATUS_VBRI] != UNC_VF_INVALID) {
-       val_vbr_if_st *vnif_st = &(reinterpret_cast<val_db_vbr_if_st  *>
-             (GetStateVal(ikey))->vbr_if_val_st);
-       vnif_st->oper_status = UPLL_OPER_STATUS_UNINIT;
+        CompareValidValue(val, GetVal(upd_key), true);
+        if (vbr_if_val->valid[UPLL_IDX_ADMIN_STATUS_VBRI] != UNC_VF_INVALID)
+          port_map_change = true;
+        else if (vbr_if_val->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM]
+                 != UNC_VF_INVALID)
+          port_map_change = true;
+        uint8_t cand_flag = 0, run_flag = 0;
+        GET_USER_DATA_FLAGS(ikey, cand_flag);
+        GET_USER_DATA_FLAGS(upd_key, run_flag);
+        if ((cand_flag & VIF_TYPE) != (run_flag & VIF_TYPE))
+          port_map_change = true;
+        UPLL_LOG_DEBUG("ikey flags %d upd_key flags %d %d", cand_flag, run_flag,
+                       port_map_change);
       }
-      upll_rc_t result_code = InitOperStatus<val_vbr_if_st, val_db_vbr_if_st>
-                            (ikey, vbr_if_val->valid[UPLL_IDX_ADMIN_STATUS_VBRI],
-                             vbr_if_val->admin_status,
-                             vbr_if_val->valid[UPLL_IDX_PM_VBRI],
-                             &vbr_if_val->portmap);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("Error settiing oper status");
-        return UPLL_RC_ERR_GENERIC;
+      /* fall through intended */
+    case UNC_OP_CREATE:
+      if (op == UNC_OP_CREATE) {
+        vbr_if_val->cs_row_status = cs_status;
+        port_map_change = true;
       }
+      if (port_map_change) {
+        val_db_vbr_if_st *vbr_if_valst = reinterpret_cast<val_db_vbr_if_st *>
+            (ConfigKeyVal::Malloc(sizeof(val_db_vbr_if_st)));
+        ikey->AppendCfgVal(IpctSt::kIpcStValVbrIfSt, vbr_if_valst);
+        UPLL_LOG_DEBUG("valid %d  admin %d op %d",
+                       vbr_if_val->valid[UPLL_IDX_ADMIN_STATUS_VBRI],
+                       vbr_if_val->admin_status, op);
+#if 0
+        if (vbr_if_val->valid[UPLL_IDX_ADMIN_STATUS_VBRI] != UNC_VF_INVALID) {
+          val_vbr_if_st *vnif_st = &(reinterpret_cast<val_db_vbr_if_st  *>
+                                     (GetStateVal(ikey))->vbr_if_val_st);
+          vnif_st->oper_status = UPLL_OPER_STATUS_UNINIT;
+        }
+        upll_rc_t result_code = InitOperStatus<val_vbr_if_st, val_db_vbr_if_st>
+            (ikey, vbr_if_val->valid[UPLL_IDX_ADMIN_STATUS_VBRI],
+             vbr_if_val->admin_status,
+             vbr_if_val->valid[UPLL_IDX_PM_VBRI],
+             &vbr_if_val->portmap);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("Error settiing oper status");
+          return UPLL_RC_ERR_GENERIC;
+        }
 #else
-      val_vbr_if_st *vnif_st = &(reinterpret_cast<val_db_vbr_if_st  *>
-             (GetStateVal(ikey))->vbr_if_val_st);
-      vnif_st->oper_status = UPLL_OPER_STATUS_UNINIT;
-      vnif_st->valid[UPLL_IDX_OPER_STATUS_VRTS] = UNC_VF_VALID;
+        val_vbr_if_st *vnif_st = &(reinterpret_cast<val_db_vbr_if_st  *>
+                                   (GetStateVal(ikey))->vbr_if_val_st);
+        vnif_st->oper_status = UPLL_OPER_STATUS_UNINIT;
+#if 0
+        (driver_result == UPLL_RC_ERR_CTR_DISCONNECTED)?
+            UPLL_OPER_STATUS_UNKNOWN:UPLL_OPER_STATUS_UNINIT;
+#endif
+        vnif_st->valid[UPLL_IDX_OPER_STATUS_VRTS] = UNC_VF_VALID;
 #endif
-      if (op == UNC_OP_CREATE)
-             vbr_if_valst->down_count = 0;
-      else {
-        val_db_vbr_if_st *run_vbrifst = reinterpret_cast<val_db_vbr_if_st *>
-                                 (GetStateVal(upd_key));
-        vbr_if_valst->down_count = (run_vbrifst ? run_vbrifst->down_count:0);
+        if (op == UNC_OP_CREATE) {
+          vbr_if_valst->down_count = 0;
+        } else {
+          val_db_vbr_if_st *run_vbrifst = reinterpret_cast<val_db_vbr_if_st *>
+              (GetStateVal(upd_key));
+          vbr_if_valst->down_count = (run_vbrifst ? run_vbrifst->down_count:0);
+        }
       }
-    }
-    break;
-  default:
-    UPLL_LOG_DEBUG("Invalid op %d", op);
-    return UPLL_RC_ERR_GENERIC;
+      break;
+    default:
+      UPLL_LOG_DEBUG("Invalid op %d", op);
+      return UPLL_RC_ERR_GENERIC;
   }
   UPLL_LOG_TRACE("%s", (ikey->ToStrAll()).c_str());
   val_vbr_if *vbr_if_val2 = reinterpret_cast<val_vbr_if *>(GetVal(upd_key));
@@ -894,7 +962,7 @@ upll_rc_t VbrIfMoMgr::UpdateConfigStatus(ConfigKeyVal *ikey,
   }
   val_port_map *pm =  &vbr_if_val->portmap;
   for (unsigned int loop = 0; loop < sizeof(pm->valid) / sizeof(pm->valid[0]);
-                                                                       ++loop) {
+       ++loop) {
     if ((UNC_VF_VALID == (uint8_t) pm->valid[loop])
         || (UNC_VF_VALID_NO_VALUE == (uint8_t) pm->valid[loop])) {
       pm->cs_attr[loop] = cs_status;
@@ -910,35 +978,36 @@ upll_rc_t VbrIfMoMgr::UpdateConfigStatus(ConfigKeyVal *ikey,
 }
 
 upll_rc_t VbrIfMoMgr::UpdateAuditConfigStatus(
-                                      unc_keytype_configstatus_t cs_status,
-                                      uuc::UpdateCtrlrPhase phase,
-                                      ConfigKeyVal *&ckv_running) {
+    unc_keytype_configstatus_t cs_status,
+    uuc::UpdateCtrlrPhase phase,
+    ConfigKeyVal *&ckv_running,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_vbr_if_t *val;
   val =
       (ckv_running != NULL) ? reinterpret_cast<val_vbr_if_t *>(GetVal(
-          ckv_running)) :
-          NULL;
+              ckv_running)) :
+      NULL;
   if (NULL == val) {
     return UPLL_RC_ERR_GENERIC;
   }
   if (uuc::kUpllUcpCreate == phase)
-     val->cs_row_status = cs_status;
+    val->cs_row_status = cs_status;
   if ((uuc::kUpllUcpUpdate == phase) &&
-           (val->cs_row_status == UNC_CS_INVALID ||
-            val->cs_row_status == UNC_CS_NOT_APPLIED))
+      (val->cs_row_status == UNC_CS_INVALID ||
+       val->cs_row_status == UNC_CS_NOT_APPLIED))
     val->cs_row_status = cs_status;
   for (unsigned int loop = 0; loop < sizeof(val->valid) / sizeof(uint8_t);
-      ++loop) {
+       ++loop) {
     if ((cs_status == UNC_CS_INVALID && UNC_VF_VALID == val->valid[loop]) ||
-         cs_status == UNC_CS_APPLIED)
-         val->cs_attr[loop] = cs_status;
+        cs_status == UNC_CS_APPLIED)
+      val->cs_attr[loop] = cs_status;
   }
   for (unsigned int loop = 0;
        loop < sizeof(val->portmap.valid) / sizeof(uint8_t); ++loop) {
     if ((cs_status == UNC_CS_INVALID &&
-                      UNC_VF_VALID == val->portmap.valid[loop])
+         UNC_VF_VALID == val->portmap.valid[loop])
         || cs_status == UNC_CS_APPLIED)
       val->portmap.cs_attr[loop] = cs_status;
   }
@@ -960,7 +1029,7 @@ upll_rc_t VbrIfMoMgr::ValidateMessage(IpcReqRespHeader *req,
   upll_rc_t ret_val = UPLL_RC_SUCCESS;
   if (ikey->get_st_num() != IpctSt::kIpcStKeyVbrIf) {
     UPLL_LOG_DEBUG("Invalid key structure received. received struct - %d",
-                  ikey->get_st_num());
+                   ikey->get_st_num());
     return UPLL_RC_ERR_BAD_REQUEST;
   }
   key_vbr_if *vbr_if_key = reinterpret_cast<key_vbr_if *>(ikey->get_key());
@@ -979,30 +1048,36 @@ upll_rc_t VbrIfMoMgr::ValidateMessage(IpcReqRespHeader *req,
   val_vtn_neighbor *vtn_neighbor = NULL;
 
   if ((ikey->get_cfg_val())
-     && ((ikey->get_cfg_val())->get_st_num() == IpctSt::kIpcStValVbrIf)) {
-    vbr_if_val = reinterpret_cast<val_vbr_if *>(ikey->get_cfg_val()->get_val());
+      && ((ikey->get_cfg_val())->get_st_num() == IpctSt::kIpcStValVbrIf)) {
+    vbr_if_val = reinterpret_cast<val_vbr_if *>
+        (ikey->get_cfg_val()->get_val());
   } else if ((ikey->get_cfg_val()) &&
-       ((ikey->get_cfg_val())->get_st_num() == IpctSt::kIpcStValVtnNeighbor)) {
+             ((ikey->get_cfg_val())->get_st_num() ==
+              IpctSt::kIpcStValVtnNeighbor)) {
     vtn_neighbor =  reinterpret_cast<val_vtn_neighbor *>
-                                          (ikey->get_cfg_val()->get_val());
+        (ikey->get_cfg_val()->get_val());
   } else if ((ikey->get_cfg_val()) &&
-        ((ikey->get_cfg_val())->get_st_num() == IpctSt::kIpcStPfcdrvValVbrIf)) {
+             ((ikey->get_cfg_val())->get_st_num() ==
+              IpctSt::kIpcStPfcdrvValVbrIf)) {
     vbr_if_val = &(reinterpret_cast<val_drv_vbr_if *>(
-                   ikey->get_cfg_val()->get_val())->vbr_if_val);
+            ikey->get_cfg_val()->get_val())->vbr_if_val);
   } else if ((ikey->get_cfg_val()) &&
-       (((ikey->get_cfg_val())->get_st_num() != IpctSt::kIpcStValVbrIf) ||
-       ((ikey->get_cfg_val())->get_st_num() != IpctSt::kIpcStValVtnNeighbor) ||
-       ((ikey->get_cfg_val())->get_st_num() != IpctSt::kIpcStPfcdrvValVbrIf))) {
+             (((ikey->get_cfg_val())->get_st_num() !=
+               IpctSt::kIpcStValVbrIf) ||
+              ((ikey->get_cfg_val())->get_st_num() !=
+               IpctSt::kIpcStValVtnNeighbor) ||
+              ((ikey->get_cfg_val())->get_st_num() !=
+               IpctSt::kIpcStPfcdrvValVbrIf))) {
     UPLL_LOG_DEBUG("Invalid val structure received.received struct - %d",
-                    ikey->get_cfg_val()->get_st_num());
+                   ikey->get_cfg_val()->get_st_num());
     return UPLL_RC_ERR_BAD_REQUEST;
   }
 
   if ((operation == UNC_OP_CREATE) && ((dt_type == UPLL_DT_CANDIDATE)
-        || (UPLL_DT_IMPORT == dt_type))) {
+                                       || (UPLL_DT_IMPORT == dt_type))) {
     if (vbr_if_val == NULL) {
       UPLL_LOG_DEBUG("Val struct Validation is an optional"
-                      "for CREATE operation");
+                     "for CREATE operation");
       return UPLL_RC_SUCCESS;
     }
     ret_val = ValidateVbrIfValue(vbr_if_val, operation);
@@ -1013,7 +1088,8 @@ upll_rc_t VbrIfMoMgr::ValidateMessage(IpcReqRespHeader *req,
     return UPLL_RC_SUCCESS;
   } else if ((operation == UNC_OP_UPDATE) && (dt_type == UPLL_DT_CANDIDATE)) {
     if (vbr_if_val == NULL) {
-      UPLL_LOG_DEBUG("Val struct Validation is Mandatory for UPDATE operation");
+      UPLL_LOG_DEBUG("Val struct Validation is Mandatory"
+                     "for UPDATE operation");
       return UPLL_RC_ERR_BAD_REQUEST;
     }
     ret_val = ValidateVbrIfValue(vbr_if_val, operation);
@@ -1026,55 +1102,57 @@ upll_rc_t VbrIfMoMgr::ValidateMessage(IpcReqRespHeader *req,
               operation == UNC_OP_READ_SIBLING_BEGIN) &&
              (dt_type == UPLL_DT_CANDIDATE || dt_type == UPLL_DT_RUNNING ||
               dt_type == UPLL_DT_STARTUP)) {
-      if (option1 != UNC_OPT1_NORMAL) {
-         UPLL_LOG_DEBUG("Error option1 is not NORMAL");
-         return UPLL_RC_ERR_INVALID_OPTION1;
-      }
-      if (option2 != UNC_OPT2_NONE) {
-        UPLL_LOG_DEBUG("Error option1 is not NONE");
-        return UPLL_RC_ERR_INVALID_OPTION2;
-      }
-      if (vbr_if_val == NULL) {
-        UPLL_LOG_DEBUG("Val struct Validation is an optional for READ operation");
-        return UPLL_RC_SUCCESS;
-      }
-      ret_val = ValidateVbrIfValue(vbr_if_val, operation);
-      if (ret_val != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("Val struct Validation failure for READ operation");
-        return UPLL_RC_ERR_CFG_SYNTAX;
-      }
+    if (option1 != UNC_OPT1_NORMAL) {
+      UPLL_LOG_DEBUG("Error option1 is not NORMAL");
+      return UPLL_RC_ERR_INVALID_OPTION1;
+    }
+    if (option2 != UNC_OPT2_NONE) {
+      UPLL_LOG_DEBUG("Error option1 is not NONE");
+      return UPLL_RC_ERR_INVALID_OPTION2;
+    }
+    if (vbr_if_val == NULL) {
+      UPLL_LOG_DEBUG("Val struct Validation is an optional"
+                     "for READ operation");
       return UPLL_RC_SUCCESS;
+    }
+    ret_val = ValidateVbrIfValue(vbr_if_val, operation);
+    if (ret_val != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("Val struct Validation failure for READ operation");
+      return UPLL_RC_ERR_CFG_SYNTAX;
+    }
+    return UPLL_RC_SUCCESS;
   } else if ((operation == UNC_OP_READ_SIBLING ||
               operation == UNC_OP_READ_SIBLING_BEGIN) &&
              (dt_type == UPLL_DT_STATE)) {
-      if (option1 != UNC_OPT1_NORMAL) {
-         UPLL_LOG_DEBUG("Error option1 is not NORMAL");
-         return UPLL_RC_ERR_INVALID_OPTION1;
-      }
-      if (option2 != UNC_OPT2_NONE) {
-        UPLL_LOG_DEBUG("Error option1 is not NONE");
-        return UPLL_RC_ERR_INVALID_OPTION2;
-      }
-      if (vbr_if_val == NULL) {
-        UPLL_LOG_DEBUG("Val struct Validation is an optional for"
-                       "READ_SIBLING operation");
-        return UPLL_RC_SUCCESS;
-      }
-      ret_val = ValidateVbrIfValue(vbr_if_val, operation);
-      if (ret_val != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("Val struct Validation failure for"
-                       "READ_SIBLING operation");
-        return UPLL_RC_ERR_CFG_SYNTAX;
-      }
+    if (option1 != UNC_OPT1_NORMAL) {
+      UPLL_LOG_DEBUG("Error option1 is not NORMAL");
+      return UPLL_RC_ERR_INVALID_OPTION1;
+    }
+    if (option2 != UNC_OPT2_NONE) {
+      UPLL_LOG_DEBUG("Error option1 is not NONE");
+      return UPLL_RC_ERR_INVALID_OPTION2;
+    }
+    if (vbr_if_val == NULL) {
+      UPLL_LOG_DEBUG("Val struct Validation is an optional for"
+                     "READ_SIBLING operation");
       return UPLL_RC_SUCCESS;
+    }
+    ret_val = ValidateVbrIfValue(vbr_if_val, operation);
+    if (ret_val != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("Val struct Validation failure for"
+                     "READ_SIBLING operation");
+      return UPLL_RC_ERR_CFG_SYNTAX;
+    }
+    return UPLL_RC_SUCCESS;
   } else if ((operation == UNC_OP_READ) && (dt_type == UPLL_DT_STATE)) {
     if (option1 != UNC_OPT1_NORMAL) {
-       UPLL_LOG_DEBUG("Error option1 is not NORMAL");
-       return UPLL_RC_ERR_INVALID_OPTION1;
+      UPLL_LOG_DEBUG("Error option1 is not NORMAL");
+      return UPLL_RC_ERR_INVALID_OPTION1;
     }
     if (option2 == UNC_OPT2_NONE) {
       if (vbr_if_val == NULL) {
-        UPLL_LOG_DEBUG("Val struct Validation is an optional for READ operation");
+        UPLL_LOG_DEBUG("Val struct Validation is an optional"
+                       "for READ operation");
         return UPLL_RC_SUCCESS;
       }
       ret_val = ValidateVbrIfValue(vbr_if_val, operation);
@@ -1087,7 +1165,7 @@ upll_rc_t VbrIfMoMgr::ValidateMessage(IpcReqRespHeader *req,
       if (vtn_neighbor == NULL) {
         UPLL_LOG_DEBUG(
             "Val vtn_neighbor struct Validation is an optional"
-             "for READ operation");
+            "for READ operation");
         return UPLL_RC_SUCCESS;
       }
       ret_val = ValidateVtnNeighborValue(vtn_neighbor, operation);
@@ -1103,15 +1181,14 @@ upll_rc_t VbrIfMoMgr::ValidateMessage(IpcReqRespHeader *req,
     }
   } else if ((operation == UNC_OP_READ_SIBLING_COUNT) &&
              (dt_type == UPLL_DT_CANDIDATE || dt_type == UPLL_DT_RUNNING ||
-             dt_type == UPLL_DT_STARTUP || dt_type == UPLL_DT_STATE)) {
+              dt_type == UPLL_DT_STARTUP || dt_type == UPLL_DT_STATE)) {
     if (option1 != UNC_OPT1_NORMAL) {
-       UPLL_LOG_DEBUG("Error option1 is not NORMAL");
-       return UPLL_RC_ERR_INVALID_OPTION1;
+      UPLL_LOG_DEBUG("Error option1 is not NORMAL");
+      return UPLL_RC_ERR_INVALID_OPTION1;
     }
     if (option2 != UNC_OPT2_NONE) {
       UPLL_LOG_DEBUG("Error option1 is not NONE");
       return UPLL_RC_ERR_INVALID_OPTION2;
-
     }
     if (vbr_if_val == NULL) {
       UPLL_LOG_DEBUG("Val struct Validation is an optional for"
@@ -1126,20 +1203,20 @@ upll_rc_t VbrIfMoMgr::ValidateMessage(IpcReqRespHeader *req,
     }
     return UPLL_RC_SUCCESS;
   } else if ((operation == UNC_OP_DELETE || operation == UNC_OP_READ_NEXT
-      || operation == UNC_OP_READ_BULK)  &&
-      (dt_type == UPLL_DT_CANDIDATE || dt_type == UPLL_DT_RUNNING
-        || dt_type == UPLL_DT_STARTUP)) {
-      UPLL_LOG_DEBUG("value struct is none for this operation - %d", operation);
-      return UPLL_RC_SUCCESS;
+              || operation == UNC_OP_READ_BULK)  &&
+             (dt_type == UPLL_DT_CANDIDATE || dt_type == UPLL_DT_RUNNING
+              || dt_type == UPLL_DT_STARTUP)) {
+    UPLL_LOG_DEBUG("value struct is none for this operation - %d", operation);
+    return UPLL_RC_SUCCESS;
   }
   UPLL_LOG_DEBUG("Error Unsupported datatype (%d) or operation - (%d)",
-                  dt_type, operation);
+                 dt_type, operation);
   return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
 }
 
 
 upll_rc_t VbrIfMoMgr::ValidateVbrifKey(key_vbr_if *vbr_if_key,
-                                      unc_keytype_operation_t operation) {
+                                       unc_keytype_operation_t operation) {
   UPLL_FUNC_TRACE;
   upll_rc_t ret_val = UPLL_RC_SUCCESS;
   ret_val = ValidateKey(
@@ -1163,12 +1240,12 @@ upll_rc_t VbrIfMoMgr::ValidateVbrifKey(key_vbr_if *vbr_if_key,
   if (operation != UNC_OP_READ_SIBLING_COUNT &&
       operation != UNC_OP_READ_SIBLING_BEGIN) {
     ret_val = ValidateKey(
-      reinterpret_cast<char *>(vbr_if_key->if_name), kMinLenInterfaceName,
-      kMaxLenInterfaceName);
+        reinterpret_cast<char *>(vbr_if_key->if_name), kMinLenInterfaceName,
+        kMaxLenInterfaceName);
     if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Interface Name syntax check failed."
-                  "Received if_name - %s",
-                  vbr_if_key->if_name);
+                     "Received if_name - %s",
+                     vbr_if_key->if_name);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else {
@@ -1184,14 +1261,14 @@ upll_rc_t VbrIfMoMgr::ValidateVbrIfValue(val_vbr_if *vbr_if_val,
 
   if (vbr_if_val->valid[UPLL_IDX_DESC_VBRI] == UNC_VF_VALID) {
     if (!ValidateDesc(vbr_if_val->description,
-                           kMinLenDescription, kMaxLenDescription)) {
-       UPLL_LOG_DEBUG("Description syntax check failed."
-                    "Received description - %s",
-                    vbr_if_val->description);
+                      kMinLenDescription, kMaxLenDescription)) {
+      UPLL_LOG_DEBUG("Description syntax check failed."
+                     "Received description - %s",
+                     vbr_if_val->description);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if (vbr_if_val->valid[UPLL_IDX_DESC_VBRI] == UNC_VF_VALID_NO_VALUE
-      && (operation == UNC_OP_UPDATE || operation == UNC_OP_CREATE)) {
+             && (operation == UNC_OP_UPDATE || operation == UNC_OP_CREATE)) {
     uuu::upll_strncpy(vbr_if_val->description, " ", kMaxLenDescription+1);
   }
   if (vbr_if_val->valid[UPLL_IDX_ADMIN_STATUS_VBRI] == UNC_VF_VALID) {
@@ -1199,16 +1276,16 @@ upll_rc_t VbrIfMoMgr::ValidateVbrIfValue(val_vbr_if *vbr_if_val,
                               (uint8_t) UPLL_ADMIN_ENABLE,
                               (uint8_t) UPLL_ADMIN_DISABLE, true, true)) {
       UPLL_LOG_DEBUG("Admin status range check failed."
-                    "Received Admin status - %d",
-                    vbr_if_val->admin_status);
+                     "Received Admin status - %d",
+                     vbr_if_val->admin_status);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if ((vbr_if_val->valid[UPLL_IDX_ADMIN_STATUS_VBRI]
-      == UNC_VF_VALID_NO_VALUE)
-      && (operation == UNC_OP_UPDATE || operation == UNC_OP_CREATE)) {
+              == UNC_VF_VALID_NO_VALUE)
+             && (operation == UNC_OP_UPDATE || operation == UNC_OP_CREATE)) {
     vbr_if_val->admin_status = UPLL_ADMIN_ENABLE;
   } else if ((vbr_if_val->valid[UPLL_IDX_ADMIN_STATUS_VBRI] == UNC_VF_INVALID)
-      && (operation == UNC_OP_CREATE)) {
+             && (operation == UNC_OP_CREATE)) {
     vbr_if_val->admin_status = UPLL_ADMIN_ENABLE;
     vbr_if_val->valid[UPLL_IDX_ADMIN_STATUS_VBRI] = UNC_VF_VALID_NO_VALUE;
   }
@@ -1216,24 +1293,24 @@ upll_rc_t VbrIfMoMgr::ValidateVbrIfValue(val_vbr_if *vbr_if_val,
     if (vbr_if_val->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM]
         == UNC_VF_VALID) {
       if (!ValidateLogicalPortId(
-          reinterpret_cast<char *>(vbr_if_val->portmap.logical_port_id),
-          kMinLenLogicalPortId, kMaxLenLogicalPortId)) {
+              reinterpret_cast<char *>(vbr_if_val->portmap.logical_port_id),
+              kMinLenLogicalPortId, kMaxLenLogicalPortId)) {
         UPLL_LOG_DEBUG("Logical Port id syntax check failed."
-                      "Received Logical Port Id - %s",
-                      vbr_if_val->portmap.logical_port_id);
+                       "Received Logical Port Id - %s",
+                       vbr_if_val->portmap.logical_port_id);
         return UPLL_RC_ERR_CFG_SYNTAX;
-     }
-     if (toupper(vbr_if_val->portmap.logical_port_id[0]) == 'S'
+      }
+      if (toupper(vbr_if_val->portmap.logical_port_id[0]) == 'S'
           && toupper(vbr_if_val->portmap.logical_port_id[1]) == 'W') {
         UPLL_LOG_DEBUG("Invalid logical_port_id - %s",
                        vbr_if_val->portmap.logical_port_id);
         return UPLL_RC_ERR_CFG_SYNTAX;
-     }
+      }
     } else if (vbr_if_val->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] ==
-                 UNC_VF_VALID_NO_VALUE
-        && (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE)) {
+               UNC_VF_VALID_NO_VALUE
+               && (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE)) {
       uuu::upll_strncpy(vbr_if_val->portmap.logical_port_id, " ",
-                            kMaxLenLogicalPortId+1);
+                        kMaxLenLogicalPortId+1);
     }
     if (vbr_if_val->portmap.valid[UPLL_IDX_VLAN_ID_PM] == UNC_VF_VALID) {
       if ((vbr_if_val->portmap.vlan_id != 0xFFFF) &&
@@ -1241,13 +1318,13 @@ upll_rc_t VbrIfMoMgr::ValidateVbrIfValue(val_vbr_if *vbr_if_val,
                                 (uint16_t) kMinVlanId, (uint16_t) kMaxVlanId,
                                 true, true)) {
         UPLL_LOG_DEBUG("Vlan Id Number check failed."
-                      "Received vlan_id - %d",
-                      vbr_if_val->portmap.vlan_id);
+                       "Received vlan_id - %d",
+                       vbr_if_val->portmap.vlan_id);
         return UPLL_RC_ERR_CFG_SYNTAX;
       }
     } else if (vbr_if_val->portmap.valid[UPLL_IDX_VLAN_ID_PM]
-        == UNC_VF_VALID_NO_VALUE
-        && (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE)) {
+               == UNC_VF_VALID_NO_VALUE
+               && (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE)) {
       vbr_if_val->portmap.vlan_id = 0;
     }
     if (vbr_if_val->portmap.valid[UPLL_IDX_TAGGED_PM] == UNC_VF_VALID) {
@@ -1256,15 +1333,15 @@ upll_rc_t VbrIfMoMgr::ValidateVbrIfValue(val_vbr_if *vbr_if_val,
                                 (uint8_t) UPLL_VLAN_UNTAGGED,
                                 (uint8_t) UPLL_VLAN_TAGGED, true, true)) {
         UPLL_LOG_DEBUG("Tagged Numeric range check failed."
-                      "Received Tag - %d",
-                      vbr_if_val->portmap.tagged);
+                       "Received Tag - %d",
+                       vbr_if_val->portmap.tagged);
         return UPLL_RC_ERR_CFG_SYNTAX;
       }
     } else if (((vbr_if_val->portmap.valid[UPLL_IDX_TAGGED_PM]
                  == UNC_VF_VALID_NO_VALUE) ||
                 (vbr_if_val->portmap.valid[UPLL_IDX_TAGGED_PM]
                  == UNC_VF_INVALID))
-        && (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE)) {
+               && (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE)) {
       if (vbr_if_val->portmap.valid[UPLL_IDX_VLAN_ID_PM] == UNC_VF_VALID) {
         vbr_if_val->portmap.tagged = UPLL_VLAN_TAGGED;
       } else {
@@ -1273,15 +1350,16 @@ upll_rc_t VbrIfMoMgr::ValidateVbrIfValue(val_vbr_if *vbr_if_val,
       vbr_if_val->portmap.valid[UPLL_IDX_TAGGED_PM] = UNC_VF_VALID;
     }
   } else if ((vbr_if_val->valid[UPLL_IDX_PM_VBRI] == UNC_VF_VALID_NO_VALUE)
-      && (operation == UNC_OP_UPDATE || operation == UNC_OP_CREATE)) {
+             && (operation == UNC_OP_UPDATE || operation == UNC_OP_CREATE)) {
     memset(&(vbr_if_val->portmap), 0, sizeof(vbr_if_val->portmap));
   }
   return UPLL_RC_SUCCESS;
 }
 
 
-upll_rc_t VbrIfMoMgr::ValidateVtnNeighborValue(val_vtn_neighbor *vtn_neighbor,
-                                               unc_keytype_operation_t operation) {
+upll_rc_t VbrIfMoMgr::ValidateVtnNeighborValue(
+    val_vtn_neighbor *vtn_neighbor,
+    unc_keytype_operation_t operation) {
   UPLL_FUNC_TRACE;
   upll_rc_t ret_val = UPLL_RC_SUCCESS;
 
@@ -1291,13 +1369,13 @@ upll_rc_t VbrIfMoMgr::ValidateVtnNeighborValue(val_vtn_neighbor *vtn_neighbor,
         kMinLenVnodeName, kMaxLenVnodeName);
     if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("connected_vnode_name syntax check failed."
-                    "Received connected_vnode_name - %s",
-                    vtn_neighbor->connected_vnode_name);
+                     "Received connected_vnode_name - %s",
+                     vtn_neighbor->connected_vnode_name);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if (vtn_neighbor->valid[UPLL_IDX_CONN_VNODE_NAME_VN]
-      == UNC_VF_VALID_NO_VALUE
-      && (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE)) {
+             == UNC_VF_VALID_NO_VALUE
+             && (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE)) {
     uuu::upll_strncpy(vtn_neighbor->connected_vnode_name, " ",
                       kMaxLenVnodeName+1);
   }
@@ -1307,13 +1385,13 @@ upll_rc_t VbrIfMoMgr::ValidateVtnNeighborValue(val_vtn_neighbor *vtn_neighbor,
         kMinLenInterfaceName, kMinLenInterfaceName);
     if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("connected_if_name syntax check failed."
-                    "Received connected_if_name - %s",
-                    vtn_neighbor->connected_if_name);
+                     "Received connected_if_name - %s",
+                     vtn_neighbor->connected_if_name);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if (vtn_neighbor->valid[UPLL_IDX_CONN_VNODE_IF_NAME_VN]
-      == UNC_VF_VALID_NO_VALUE
-      && (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE)) {
+             == UNC_VF_VALID_NO_VALUE
+             && (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE)) {
     uuu::upll_strncpy(vtn_neighbor->connected_if_name, " ",
                       kMaxLenInterfaceName+1);
   }
@@ -1323,17 +1401,17 @@ upll_rc_t VbrIfMoMgr::ValidateVtnNeighborValue(val_vtn_neighbor *vtn_neighbor,
         kMinLenVlinkName, kMaxLenVlinkName);
     if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("connected_vlink_name syntax check failed."
-                    "Received connected_vlink_name - %s",
-                    vtn_neighbor->connected_vlink_name);
+                     "Received connected_vlink_name - %s",
+                     vtn_neighbor->connected_vlink_name);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if (vtn_neighbor->valid[UPLL_IDX_CONN_VLINK_NAME_VN]
-      == UNC_VF_VALID_NO_VALUE
-      && (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE)) {
-  uuu::upll_strncpy(vtn_neighbor->connected_vlink_name, " ",
-                          kMaxLenVlinkName+1);
-}
-return UPLL_RC_SUCCESS;
+             == UNC_VF_VALID_NO_VALUE
+             && (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE)) {
+    uuu::upll_strncpy(vtn_neighbor->connected_vlink_name, " ",
+                      kMaxLenVlinkName+1);
+  }
+  return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t VbrIfMoMgr::ValidateCapability(IpcReqRespHeader *req,
@@ -1342,14 +1420,14 @@ upll_rc_t VbrIfMoMgr::ValidateCapability(IpcReqRespHeader *req,
   UPLL_FUNC_TRACE;
   upll_rc_t ret_val = UPLL_RC_ERR_GENERIC;
 
-  if (!ikey || !req ) {
+  if (!ikey || !req) {
     UPLL_LOG_DEBUG("ConfigKeyVal / IpcReqRespHeader is Null");
     return UPLL_RC_ERR_GENERIC;
   }
 
   if (!ctrlr_name) {
     ctrlr_name = reinterpret_cast<char*>((reinterpret_cast<key_user_data_t *>
-                  (ikey->get_user_data()))->ctrlr_id);
+                                          (ikey->get_user_data()))->ctrlr_id);
     if (!ctrlr_name || !strlen(ctrlr_name)) {
       UPLL_LOG_DEBUG("Controller Name is NULL");
       return UPLL_RC_ERR_GENERIC;
@@ -1363,16 +1441,10 @@ upll_rc_t VbrIfMoMgr::ValidateCapability(IpcReqRespHeader *req,
 
   switch (req->operation) {
     case UNC_OP_CREATE:
-      result_code = GetCreateCapability(ctrlr_name, ikey->get_key_type(),
-                                        &max_instance_count, &max_attrs, &attrs);
-      if (result_code && (max_instance_count != 0) &&
-          (cur_instance_count >= max_instance_count)) {
-        UPLL_LOG_INFO("[%s:%d:%s Instance count %d exceeds %d", __FILE__,
-                      __LINE__, __FUNCTION__, cur_instance_count,
-                      max_instance_count);
-        return UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
-      }
-
+      result_code = GetCreateCapability(ctrlr_name,
+                                        ikey->get_key_type(),
+                                        &max_instance_count,
+                                        &max_attrs, &attrs);
       break;
 
     case UNC_OP_UPDATE:
@@ -1432,9 +1504,9 @@ upll_rc_t VbrIfMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
 }
 
 upll_rc_t VbrIfMoMgr::ValVbrIfAttributeSupportCheck(
-          const uint8_t *attrs, ConfigKeyVal *ikey,
-          unc_keytype_operation_t operation,
-          upll_keytype_datatype_t dt_type) {
+    const uint8_t *attrs, ConfigKeyVal *ikey,
+    unc_keytype_operation_t operation,
+    upll_keytype_datatype_t dt_type) {
 
   UPLL_FUNC_TRACE;
   val_vbr_if_t *vbr_if_val = NULL;
@@ -1444,20 +1516,20 @@ upll_rc_t VbrIfMoMgr::ValVbrIfAttributeSupportCheck(
       return UPLL_RC_SUCCESS;
 
     vbr_if_val = &(reinterpret_cast<val_drv_vbr_if *>(
-                  cfg_val->get_val())->vbr_if_val);
+            cfg_val->get_val())->vbr_if_val);
     if (vbr_if_val) {
     }
   } else {
     ConfigVal *cfg_val = ikey->get_cfg_val();
-        if (!cfg_val)
-              return UPLL_RC_SUCCESS;
+    if (!cfg_val)
+      return UPLL_RC_SUCCESS;
 
     vbr_if_val =
-      reinterpret_cast<val_vbr_if_t *>(ikey->get_cfg_val()->get_val());
+        reinterpret_cast<val_vbr_if_t *>(ikey->get_cfg_val()->get_val());
   }
   if (vbr_if_val != NULL) {
     if ((vbr_if_val->valid[UPLL_IDX_DESC_VBRI] == UNC_VF_VALID) ||
-       (vbr_if_val->valid[UPLL_IDX_DESC_VBRI] == UNC_VF_VALID_NO_VALUE)) {
+        (vbr_if_val->valid[UPLL_IDX_DESC_VBRI] == UNC_VF_VALID_NO_VALUE)) {
       if (attrs[unc::capa::vbr_if::kCapDesc] == 0) {
         vbr_if_val->valid[UPLL_IDX_DESC_VBRI] = UNC_VF_INVALID;
         if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
@@ -1480,9 +1552,9 @@ upll_rc_t VbrIfMoMgr::ValVbrIfAttributeSupportCheck(
     if ((vbr_if_val->valid[UPLL_IDX_PM_VBRI] == UNC_VF_VALID) ||
         (vbr_if_val->valid[UPLL_IDX_PM_VBRI] == UNC_VF_VALID_NO_VALUE)) {
       if ((vbr_if_val->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM]
-          == UNC_VF_VALID) ||
-         (vbr_if_val->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM]
-            == UNC_VF_VALID_NO_VALUE)) {
+           == UNC_VF_VALID) ||
+          (vbr_if_val->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM]
+           == UNC_VF_VALID_NO_VALUE)) {
         if (attrs[unc::capa::vbr_if::kCapLogicalPortId] == 0) {
           vbr_if_val->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] =
               UNC_VF_INVALID;
@@ -1495,7 +1567,7 @@ upll_rc_t VbrIfMoMgr::ValVbrIfAttributeSupportCheck(
       }
       if ((vbr_if_val->portmap.valid[UPLL_IDX_VLAN_ID_PM] == UNC_VF_VALID) ||
           (vbr_if_val->portmap.valid[UPLL_IDX_VLAN_ID_PM]
-            == UNC_VF_VALID_NO_VALUE)) {
+           == UNC_VF_VALID_NO_VALUE)) {
         if (attrs[unc::capa::vbr_if::kCapVlanId] == 0) {
           vbr_if_val->portmap.valid[UPLL_IDX_VLAN_ID_PM] = UNC_VF_INVALID;
           if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
@@ -1506,7 +1578,7 @@ upll_rc_t VbrIfMoMgr::ValVbrIfAttributeSupportCheck(
       }
       if ((vbr_if_val->portmap.valid[UPLL_IDX_TAGGED_PM] == UNC_VF_VALID) ||
           (vbr_if_val->portmap.valid[UPLL_IDX_TAGGED_PM]
-            == UNC_VF_VALID_NO_VALUE)) {
+           == UNC_VF_VALID_NO_VALUE)) {
         if (attrs[unc::capa::vbr_if::kCapTagged] == 0) {
           vbr_if_val->portmap.valid[UPLL_IDX_TAGGED_PM] = UNC_VF_INVALID;
           if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
@@ -1524,30 +1596,36 @@ upll_rc_t VbrIfMoMgr::ValVbrIfAttributeSupportCheck(
 }
 
 #if 0
-  } else if (UPLL_DT_IMPORT == dt_type) {
-    val_drv_vbr_if *vbr_if_val =
+else if (UPLL_DT_IMPORT == dt_type) {
+  val_drv_vbr_if *vbr_if_val =
       reinterpret_cast<val_drv_vbr_if *>(ikey->get_cfg_val()->get_val());
   if (vbr_if_val != NULL) {
     if ((vbr_if_val->vbr_if_val.valid[UPLL_IDX_DESC_VBRI] == UNC_VF_VALID)
-        || (vbr_if_val->vbr_if_val.valid[UPLL_IDX_DESC_VBRI] == UNC_VF_VALID_NO_VALUE)) {
+        || (vbr_if_val->vbr_if_val.valid[UPLL_IDX_DESC_VBRI] ==
+            UNC_VF_VALID_NO_VALUE)) {
       if (attrs[unc::capa::vbr_if::kCapDesc] == 0) {
-        vbr_if_val->vbr_if_val.valid[UPLL_IDX_DESC_VBRI] = UNC_VF_NOT_SUPPORTED;
+        vbr_if_val->vbr_if_val.valid[UPLL_IDX_DESC_VBRI] =
+            UNC_VF_NOT_SUPPORTED;
         UPLL_LOG_INFO("Description attr is not supported by ctrlr ");
         return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
       }
     }
-    if ((vbr_if_val->vbr_if_val.valid[UPLL_IDX_ADMIN_STATUS_VBRI] == UNC_VF_VALID)
+    if ((vbr_if_val->vbr_if_val.valid[UPLL_IDX_ADMIN_STATUS_VBRI] ==
+         UNC_VF_VALID)
         ||(vbr_if_val->vbr_if_val.valid[UPLL_IDX_ADMIN_STATUS_VBRI] ==
            UNC_VF_VALID_NO_VALUE)) {
       if (attrs[unc::capa::vbr_if::kCapAdminStatus] == 0) {
-        vbr_if_val->vbr_if_val.valid[UPLL_IDX_DESC_VBRI] = UNC_VF_NOT_SUPPORTED;
+        vbr_if_val->vbr_if_val.valid[UPLL_IDX_DESC_VBRI] =
+            UNC_VF_NOT_SUPPORTED;
         UPLL_LOG_INFO("Admin status attr is not supported by ctrlr ");
         return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
       }
     }
     if ((vbr_if_val->vbr_if_val.valid[UPLL_IDX_PM_VBRI] == UNC_VF_VALID)
-        || (vbr_if_val->vbr_if_val.valid[UPLL_IDX_PM_VBRI] == UNC_VF_VALID_NO_VALUE)) {
-      if ((vbr_if_val->vbr_if_val.portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] == UNC_VF_VALID)
+        || (vbr_if_val->vbr_if_val.valid[UPLL_IDX_PM_VBRI] ==
+            UNC_VF_VALID_NO_VALUE)) {
+      if ((vbr_if_val->vbr_if_val.portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] ==
+           UNC_VF_VALID)
           || (vbr_if_val->vbr_if_val.portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM]
               == UNC_VF_VALID_NO_VALUE)) {
         if (attrs[unc::capa::vbr_if::kCapLogicalPortId] == 0) {
@@ -1557,20 +1635,24 @@ upll_rc_t VbrIfMoMgr::ValVbrIfAttributeSupportCheck(
           return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
         }
       }
-      if ((vbr_if_val->vbr_if_val.portmap.valid[UPLL_IDX_VLAN_ID_PM] == UNC_VF_VALID)
+      if ((vbr_if_val->vbr_if_val.portmap.valid[UPLL_IDX_VLAN_ID_PM] ==
+           UNC_VF_VALID)
           || (vbr_if_val->vbr_if_val.portmap.valid[UPLL_IDX_VLAN_ID_PM]
               == UNC_VF_VALID_NO_VALUE)) {
         if (attrs[unc::capa::vbr_if::kCapVlanId] == 0) {
-          vbr_if_val->vbr_if_val.portmap.valid[UPLL_IDX_VLAN_ID_PM] = UNC_VF_NOT_SUPPORTED;
+          vbr_if_val->vbr_if_val.portmap.valid[UPLL_IDX_VLAN_ID_PM] =
+              UNC_VF_NOT_SUPPORTED;
           UPLL_LOG_INFO("portmap.vlanid attr is not supported by ctrlr ");
           return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
         }
       }
-      if ((vbr_if_val->vbr_if_val.portmap.valid[UPLL_IDX_TAGGED_PM] == UNC_VF_VALID)
+      if ((vbr_if_val->vbr_if_val.portmap.valid[UPLL_IDX_TAGGED_PM] ==
+           UNC_VF_VALID)
           || (vbr_if_val->vbr_if_val.portmap.valid[UPLL_IDX_TAGGED_PM]
               == UNC_VF_VALID_NO_VALUE)) {
         if (attrs[unc::capa::vbr_if::kCapTagged] == 0) {
-          vbr_if_val->vbr_if_val.portmap.valid[UPLL_IDX_TAGGED_PM] = UNC_VF_NOT_SUPPORTED;
+          vbr_if_val->vbr_if_val.portmap.valid[UPLL_IDX_TAGGED_PM] =
+              UNC_VF_NOT_SUPPORTED;
           UPLL_LOG_INFO("portmap.Tagged attr is not supported by ctrlr ");
           return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
         }
@@ -1578,17 +1660,16 @@ upll_rc_t VbrIfMoMgr::ValVbrIfAttributeSupportCheck(
     }
     return UPLL_RC_SUCCESS;
   }
-  }
+}
 #endif
 
 upll_rc_t VbrIfMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
                                       ConfigKeyVal *ikey) {
-
   UPLL_FUNC_TRACE;
   if (!ikey || !(ikey->get_key()))
-       return UPLL_RC_ERR_GENERIC;
+    return UPLL_RC_ERR_GENERIC;
   key_rename_vnode_info *key_rename =
-                     reinterpret_cast<key_rename_vnode_info *>(ikey->get_key());
+      reinterpret_cast<key_rename_vnode_info *>(ikey->get_key());
 
   if (!strlen(reinterpret_cast<char *>(key_rename->old_unc_vtn_name)))
     return UPLL_RC_ERR_GENERIC;
@@ -1624,14 +1705,16 @@ upll_rc_t VbrIfMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
   return UPLL_RC_SUCCESS;
 }
 
-bool VbrIfMoMgr::FilterAttributes(void *&val1, void *val2, bool copy_to_running,
+bool VbrIfMoMgr::FilterAttributes(void *&val1,
+                                  void *val2,
+                                  bool copy_to_running,
                                   unc_keytype_operation_t op) {
   UPLL_FUNC_TRACE;
   val_drv_vbr_if_t *val_vbr_if1 = reinterpret_cast<val_drv_vbr_if_t *>(val1);
   /* No need to configure description in controller. */
   val_vbr_if1->vbr_if_val.valid[UPLL_IDX_DESC_VBRI] = UNC_VF_INVALID;
   if (op != UNC_OP_CREATE)
-     return CompareValidValue(val1, val2, copy_to_running);
+    return CompareValidValue(val1, val2, copy_to_running);
   return false;
 }
 
@@ -1649,14 +1732,14 @@ bool VbrIfMoMgr::CompareValidValue(void *&val1, void *val2,
   val_drv_vbr_if_t *if2 = reinterpret_cast<val_drv_vbr_if_t *>(val2);
   val_vbr_if_t *val_vbr_if2 = &if2->vbr_if_val;
   UPLL_LOG_DEBUG("cand valid_admin %d run valid_admin %d",
-                     val_vbr_if1->valid[UPLL_IDX_ADMIN_STATUS_VBRI],
-                     val_vbr_if2->valid[UPLL_IDX_ADMIN_STATUS_VBRI]);
+                 val_vbr_if1->valid[UPLL_IDX_ADMIN_STATUS_VBRI],
+                 val_vbr_if2->valid[UPLL_IDX_ADMIN_STATUS_VBRI]);
 #endif
   for (unsigned int loop = 0;
        loop < sizeof(val_vbr_if1->valid) / sizeof(uint8_t); ++loop) {
     if (UNC_VF_INVALID == val_vbr_if1->valid[loop]
         && ((UNC_VF_VALID == val_vbr_if2->valid[loop]) ||
-           (UNC_VF_VALID_NO_VALUE == val_vbr_if2->valid[loop])))
+            (UNC_VF_VALID_NO_VALUE == val_vbr_if2->valid[loop])))
       val_vbr_if1->valid[loop] = UNC_VF_VALID_NO_VALUE;
   }
   for (unsigned int loop = 1;
@@ -1668,93 +1751,95 @@ bool VbrIfMoMgr::CompareValidValue(void *&val1, void *val2,
   if ((if1->valid[PFCDRV_IDX_VEXT_NAME_VBRIF] == UNC_VF_VALID_NO_VALUE) &&
       (if1->valid[PFCDRV_IDX_VEXTIF_NAME_VBRIF] == UNC_VF_VALID_NO_VALUE) &&
       (if1->valid[PFCDRV_IDX_VLINK_NAME_VBRIF] == UNC_VF_VALID_NO_VALUE)) {
-    uuu::upll_strncpy(if1->vex_name, if2->vex_name, (kMaxLenVnodeName+1));
-    uuu::upll_strncpy(if1->vex_if_name, if2->vex_if_name, (kMaxLenVnodeName+1));
-    uuu::upll_strncpy(if1->vex_link_name, if2->vex_link_name,
-        (kMaxLenVnodeName+1));
     if1->valid[PFCDRV_IDX_VEXT_NAME_VBRIF] =
-      (copy_to_running)?UNC_VF_VALID_NO_VALUE:UNC_VF_VALID;
+        (copy_to_running)?UNC_VF_VALID_NO_VALUE:UNC_VF_VALID;
     if1->valid[PFCDRV_IDX_VEXTIF_NAME_VBRIF] =
-      (copy_to_running)?UNC_VF_VALID_NO_VALUE:UNC_VF_VALID;
+        (copy_to_running)?UNC_VF_VALID_NO_VALUE:UNC_VF_VALID;
     if1->valid[PFCDRV_IDX_VLINK_NAME_VBRIF] =
-      (copy_to_running)?UNC_VF_VALID_NO_VALUE:UNC_VF_VALID;
+        (copy_to_running)?UNC_VF_VALID_NO_VALUE:UNC_VF_VALID;
   } else {
     if ((UNC_VF_VALID == if1->valid[PFCDRV_IDX_VEXT_NAME_VBRIF])
         && (UNC_VF_VALID == if2->valid[PFCDRV_IDX_VEXT_NAME_VBRIF]))
       if (!strcmp (reinterpret_cast<char *>(if1->vex_name),
-            reinterpret_cast<const char*>(if2->vex_name)))
+                   reinterpret_cast<const char*>(if2->vex_name)))
         if1->valid[PFCDRV_IDX_VEXT_NAME_VBRIF] =
-          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+            (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
     if ((UNC_VF_VALID == if1->valid[PFCDRV_IDX_VEXTIF_NAME_VBRIF])
         && (UNC_VF_VALID == if2->valid[PFCDRV_IDX_VEXTIF_NAME_VBRIF]))
       if (!strcmp (reinterpret_cast<char *>(if1->vex_if_name),
-            reinterpret_cast<const char*>(if2->vex_if_name)))
+                   reinterpret_cast<const char*>(if2->vex_if_name)))
         if1->valid[PFCDRV_IDX_VEXTIF_NAME_VBRIF] =
-          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+            (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
     if ((UNC_VF_VALID == if1->valid[PFCDRV_IDX_VLINK_NAME_VBRIF])
         && (UNC_VF_VALID == if2->valid[PFCDRV_IDX_VLINK_NAME_VBRIF]))
       if (!strcmp (reinterpret_cast<char *>(if1->vex_link_name),
-            reinterpret_cast<const char*>(if2->vex_link_name)))
+                   reinterpret_cast<const char*>(if2->vex_link_name)))
         if1->valid[PFCDRV_IDX_VLINK_NAME_VBRIF] =
-          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+            (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   }
   for (unsigned int loop = 0;
        loop < sizeof(val_vbr_if1->valid) / sizeof(uint8_t); ++loop) {
     if (UNC_VF_INVALID == val_vbr_if1->portmap.valid[loop]
-          && UNC_VF_VALID == val_vbr_if2->portmap.valid[loop])
-        val_vbr_if1->portmap.valid[loop] = UNC_VF_VALID_NO_VALUE;
+        && UNC_VF_VALID == val_vbr_if2->portmap.valid[loop])
+      val_vbr_if1->portmap.valid[loop] = UNC_VF_VALID_NO_VALUE;
   }
   if (UNC_VF_INVALID != val_vbr_if1->valid[UPLL_IDX_DESC_VBRI]) {
     if (!copy_to_running ||
         ((UNC_VF_VALID == val_vbr_if1->valid[UPLL_IDX_DESC_VBRI]) &&
-         (!strcmp (reinterpret_cast<char *>(val_vbr_if1->description),
-            reinterpret_cast<const char*>(val_vbr_if2->description)))))
+         (!strcmp(reinterpret_cast<char *>(val_vbr_if1->description),
+                   reinterpret_cast<const char*>(val_vbr_if2->description)))))
       val_vbr_if1->valid[UPLL_IDX_DESC_VBRI] = UNC_VF_INVALID;
   }
 #if 1
   // admin state val is needed to determine oper status
   if (val_vbr_if1->admin_status == val_vbr_if2->admin_status)
     val_vbr_if1->valid[UPLL_IDX_ADMIN_STATUS_VBRI] =
-     (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+        (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   /* Driver cannot shutdown an unmapped vbrif */
-  if (!copy_to_running && val_vbr_if1->valid[UPLL_IDX_PM_VBRI] == UNC_VF_INVALID)
-     val_vbr_if1->valid[UPLL_IDX_ADMIN_STATUS_VBRI] = UNC_VF_INVALID;
+  if (!copy_to_running && val_vbr_if1->valid[UPLL_IDX_PM_VBRI] ==
+      UNC_VF_INVALID)
+    val_vbr_if1->valid[UPLL_IDX_ADMIN_STATUS_VBRI] = UNC_VF_INVALID;
 #endif
   if (val_vbr_if1->valid[UPLL_IDX_PM_VBRI] == UNC_VF_VALID
       && val_vbr_if2->valid[UPLL_IDX_PM_VBRI] == UNC_VF_VALID) {
     if (memcmp(&(val_vbr_if1->portmap), &(val_vbr_if2->portmap),
-                sizeof(val_port_map_t))) {
-      if (val_vbr_if1->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] == UNC_VF_VALID
+               sizeof(val_port_map_t))) {
+      if (val_vbr_if1->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] ==
+          UNC_VF_VALID
           && val_vbr_if2->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM]
           == UNC_VF_VALID) {
-        if (!strcmp(reinterpret_cast<char *>(val_vbr_if1->portmap.logical_port_id),
-                    reinterpret_cast<char *>(val_vbr_if2->portmap.logical_port_id)))
-         val_vbr_if1->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] =
-           (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+        if (!strcmp(reinterpret_cast<char *>
+                    (val_vbr_if1->portmap.logical_port_id),
+                    reinterpret_cast<char *>
+                    (val_vbr_if2->portmap.logical_port_id)))
+          val_vbr_if1->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] =
+              (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
       }
       if (val_vbr_if1->portmap.valid[UPLL_IDX_VLAN_ID_PM] != UNC_VF_INVALID
-          && val_vbr_if2->portmap.valid[UPLL_IDX_VLAN_ID_PM] != UNC_VF_INVALID) {
+          && val_vbr_if2->portmap.valid[UPLL_IDX_VLAN_ID_PM] !=
+          UNC_VF_INVALID) {
         if (val_vbr_if1->portmap.vlan_id == val_vbr_if2->portmap.vlan_id)
           val_vbr_if1->portmap.valid[UPLL_IDX_VLAN_ID_PM] =
-            (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+              (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
       }
 #if 1
       if (val_vbr_if1->portmap.valid[UPLL_IDX_TAGGED_PM] != UNC_VF_INVALID
-          && val_vbr_if2->portmap.valid[UPLL_IDX_TAGGED_PM] != UNC_VF_INVALID) {
+          && val_vbr_if2->portmap.valid[UPLL_IDX_TAGGED_PM] !=
+          UNC_VF_INVALID) {
         if (val_vbr_if1->portmap.tagged == val_vbr_if2->portmap.tagged)
           val_vbr_if1->portmap.valid[UPLL_IDX_TAGGED_PM] =
-            (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+              (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
       }
 #endif
     } else {
       val_vbr_if1->valid[UPLL_IDX_PM_VBRI] =
-        (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
       val_vbr_if1->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] =
-           (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
       val_vbr_if1->portmap.valid[UPLL_IDX_VLAN_ID_PM] =
-        (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
       val_vbr_if1->portmap.valid[UPLL_IDX_TAGGED_PM] =
-        (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
     }
   }
   if (!copy_to_running)
@@ -1763,12 +1848,13 @@ bool VbrIfMoMgr::CompareValidValue(void *&val1, void *val2,
        loop < sizeof(val_vbr_if1->valid) / sizeof(val_vbr_if1->valid[0]);
        ++loop) {
     if ((UNC_VF_VALID == (uint8_t) val_vbr_if1->valid[loop]) ||
-       (UNC_VF_VALID_NO_VALUE == (uint8_t) val_vbr_if1->valid[loop])) {
+        (UNC_VF_VALID_NO_VALUE == (uint8_t) val_vbr_if1->valid[loop])) {
       if (loop == UPLL_IDX_PM_VBRI) {
         for (unsigned int i = 0;
-          i < sizeof(val_vbr_if1->portmap.valid) / sizeof(uint8_t); ++i) {
+             i < sizeof(val_vbr_if1->portmap.valid) / sizeof(uint8_t); ++i) {
           if ((UNC_VF_VALID == (uint8_t) val_vbr_if1->portmap.valid[i]) ||
-            (UNC_VF_VALID_NO_VALUE == (uint8_t)  val_vbr_if1->portmap.valid[i])) {
+              (UNC_VF_VALID_NO_VALUE == (uint8_t)
+               val_vbr_if1->portmap.valid[i])) {
             invalid_attr = false;
             break;
           }
@@ -1797,20 +1883,20 @@ upll_rc_t VbrIfMoMgr::IsReferenced(ConfigKeyVal *ikey,
   UPLL_FUNC_TRACE;
   ConfigKeyVal *okey = NULL;
   if (NULL == ikey)
-     return UPLL_RC_ERR_GENERIC;
+    return UPLL_RC_ERR_GENERIC;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   result_code = GetChildConfigKey(okey, ikey);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("GetChildConfigKeyFailed %d", result_code);
     return result_code;
   }
-    
+
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutFlag };
   result_code = ReadConfigDB(okey, dt_type, UNC_OP_READ,
-                                       dbop, dmi, MAINTBL);
+                             dbop, dmi, MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
     result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)?
-                    UPLL_RC_SUCCESS:result_code;
+        UPLL_RC_SUCCESS:result_code;
     delete okey;
     return result_code;
   }
@@ -1827,13 +1913,13 @@ upll_rc_t VbrIfMoMgr::IsReferenced(ConfigKeyVal *ikey,
   delete okey;
 #if 0
   MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager*>
-                                                (GetMoManager(UNC_KT_VLINK)));
+                                                 (GetMoManager(UNC_KT_VLINK)));
   if (!mgr) {
     UPLL_LOG_DEBUG("Instance is NULL");
     return UPLL_RC_ERR_GENERIC;
   }
   while (okey) {
-  // check with karthik
+    // check with karthik
     result_code = mgr->CheckVnodeInfo(okey, dt_type, dmi);
     if (UPLL_RC_SUCCESS == result_code)
       return UPLL_RC_ERR_CFG_SEMANTIC;
@@ -1866,7 +1952,8 @@ upll_rc_t VbrIfMoMgr::UpdateConfigVal(ConfigKeyVal *ikey,
     DELETE_IF_NOT_NULL(okey);
     return result_code;
   }
-  val_drv_vbr_if *val_drv_vbr = reinterpret_cast<val_drv_vbr_if *>(GetVal(ikey));
+  val_drv_vbr_if *val_drv_vbr = reinterpret_cast<val_drv_vbr_if *>
+      (GetVal(ikey));
   if (!val_drv_vbr) {
     UPLL_LOG_DEBUG("Val Vbr is Null");
     DELETE_IF_NOT_NULL(okey);
@@ -1875,11 +1962,12 @@ upll_rc_t VbrIfMoMgr::UpdateConfigVal(ConfigKeyVal *ikey,
   uint8_t flag = 0;
   GET_USER_DATA_FLAGS(okey, flag);
   if ((val_drv_vbr->vbr_if_val.valid[UPLL_IDX_PM_VBRI] == UNC_VF_VALID) ||
-      (val_drv_vbr->vbr_if_val.valid[UPLL_IDX_PM_VBRI] == UNC_VF_VALID_NO_VALUE)) {
+      (val_drv_vbr->vbr_if_val.valid[UPLL_IDX_PM_VBRI] ==
+       UNC_VF_VALID_NO_VALUE)) {
     if (flag & VIF_TYPE) {
       DELETE_IF_NOT_NULL(okey);
-      UPLL_LOG_DEBUG("Interface is linked/bounded with Vlink. \
-                      Could not update Portmap");
+      UPLL_LOG_DEBUG("Interface is linked/bounded with Vlink."
+                     "Could not update Portmap");
       return UPLL_RC_ERR_CFG_SEMANTIC;
     }
     result_code = UpdatePortMap(okey, datatype, dmi, ikey);
@@ -1888,46 +1976,54 @@ upll_rc_t VbrIfMoMgr::UpdateConfigVal(ConfigKeyVal *ikey,
   return result_code;
 }
 
-upll_rc_t VbrIfMoMgr::UpdatePortMap( ConfigKeyVal *okey,
-                                     upll_keytype_datatype_t datatype,
-                                     DalDmlIntf *dmi,
-                                     ConfigKeyVal *ikey) {
+upll_rc_t VbrIfMoMgr::UpdatePortMap(ConfigKeyVal *okey,
+                                    upll_keytype_datatype_t datatype,
+                                    DalDmlIntf *dmi,
+                                    ConfigKeyVal *ikey) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(
-                                      GetMoManager(UNC_KT_VBRIF_FLOWFILTER)));
+          GetMoManager(UNC_KT_VBRIF_FLOWFILTER)));
   if (!mgr) {
-      UPLL_LOG_DEBUG("Invalid Instance");
-      return UPLL_RC_ERR_GENERIC;
+    UPLL_LOG_DEBUG("Invalid Instance");
+    return UPLL_RC_ERR_GENERIC;
   }
   MoMgrImpl *pm_mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(
-                                      GetMoManager(UNC_KT_VBRIF_POLICINGMAP)));
+          GetMoManager(UNC_KT_VBRIF_POLICINGMAP)));
   if (!pm_mgr) {
-      UPLL_LOG_DEBUG("Invalid Instance");
-      return UPLL_RC_ERR_GENERIC;
+    UPLL_LOG_DEBUG("Invalid Instance");
+    return UPLL_RC_ERR_GENERIC;
   }
-  val_drv_vbr_if *val_drv_vbr = reinterpret_cast<val_drv_vbr_if *>(GetVal(ikey));
-  bool port_map_status = (val_drv_vbr->vbr_if_val.valid[UPLL_IDX_PM_VBRI] == UNC_VF_VALID)?
-                                    true:false;
+
+  NotifyPOMForPortMapInfo PortMapNotificationVal = kPortMapNoChange;
+  val_drv_vbr_if *val_drv_vbr = reinterpret_cast<val_drv_vbr_if *>
+      (GetVal(ikey));
+  bool port_map_status = (val_drv_vbr->vbr_if_val.valid[UPLL_IDX_PM_VBRI] ==
+                          UNC_VF_VALID)?
+      true:false;
   if (port_map_status) {
-    val_drv_vbr_if *vbr_val_db = reinterpret_cast<val_drv_vbr_if *>(GetVal(okey));
+    val_drv_vbr_if *vbr_val_db = reinterpret_cast<val_drv_vbr_if *>
+        (GetVal(okey));
     if (!vbr_val_db) {
       UPLL_LOG_DEBUG("Invalid param");
       return UPLL_RC_ERR_GENERIC;
     }
     if (vbr_val_db->vbr_if_val.valid[UPLL_IDX_PM_VBRI] == UNC_VF_INVALID) {
       /* portmap getting created for the first time */
-      result_code = ConverttoDriverPortMap(ikey);
+      result_code = ConverttoDriverPortMap(ikey, dmi);
       if (UPLL_RC_SUCCESS != result_code) {
         UPLL_LOG_DEBUG("ConvertToDriverPortMap Failure %d", result_code);
         return result_code;
       }
+      // Set the PortMapNotificationVal Enum status to Portmap Created
+      // Which will be used to Notify the POM
+      PortMapNotificationVal = kPortMapCreated;
     } else {
       /* portmap already exists - only change in vlan/tagged */
       val_drv_vbr->valid[PFCDRV_IDX_VEXT_NAME_VBRIF] = UNC_VF_INVALID;
       val_drv_vbr->valid[PFCDRV_IDX_VEXTIF_NAME_VBRIF] = UNC_VF_INVALID;
       val_drv_vbr->valid[PFCDRV_IDX_VLINK_NAME_VBRIF] = UNC_VF_INVALID;
-      port_map_status = false;
+      PortMapNotificationVal = kPortMapUpdated;
     }
   } else {
 #if 0
@@ -1935,7 +2031,7 @@ upll_rc_t VbrIfMoMgr::UpdatePortMap( ConfigKeyVal *okey,
     port_map_valid_status = true;
     GET_USER_DATA_FLAGS(okey, rename);
     if ((rename & VLINK_VNODE1) || (rename & VLINK_VNODE2)) {
-        return UPLL_RC_ERR_GENERIC;
+      return UPLL_RC_ERR_GENERIC;
     }
 #endif
     val_drv_vbr->valid[PFCDRV_IDX_VAL_VBRIF] = UNC_VF_VALID_NO_VALUE;
@@ -1943,54 +2039,72 @@ upll_rc_t VbrIfMoMgr::UpdatePortMap( ConfigKeyVal *okey,
     val_drv_vbr->valid[PFCDRV_IDX_VEXTIF_NAME_VBRIF] = UNC_VF_VALID_NO_VALUE;
     val_drv_vbr->valid[PFCDRV_IDX_VLINK_NAME_VBRIF] = UNC_VF_VALID_NO_VALUE;
     val_drv_vbr->vbr_if_val.portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] =
-                                             UNC_VF_VALID_NO_VALUE;
+        UNC_VF_VALID_NO_VALUE;
     uuu::upll_strncpy(val_drv_vbr->vbr_if_val.portmap.logical_port_id,
-                                                               "\0", 1);
+                      "\0", 1);
     val_drv_vbr->vbr_if_val.portmap.valid[UPLL_IDX_VLAN_ID_PM] =
-                                             UNC_VF_VALID_NO_VALUE;
+        UNC_VF_VALID_NO_VALUE;
     val_drv_vbr->vbr_if_val.portmap.valid[UPLL_IDX_TAGGED_PM] =
-                                             UNC_VF_VALID_NO_VALUE;
+        UNC_VF_VALID_NO_VALUE;
     val_drv_vbr->vbr_if_val.portmap.tagged = UPLL_VLAN_UNTAGGED;
     val_drv_vbr->vbr_if_val.portmap.vlan_id = 0;
     uuu::upll_strncpy(val_drv_vbr->vex_name, " ", (kMaxLenVnodeName+1));
     uuu::upll_strncpy(val_drv_vbr->vex_if_name, " ", (kMaxLenVnodeName+1));
     uuu::upll_strncpy(val_drv_vbr->vex_link_name, " ", (kMaxLenVnodeName+1));
-     // TODO(karthi): any think inform to POM.. will call it from here
-  /* Info to POM */
+
+    // Set the PortMapNotificationVal Enum status to Portmap Deleted
+    // Which will be used to Notify the POM
+    PortMapNotificationVal = kPortMapDeleted;
+    // TODO(karthi): any think inform to POM.. will call it from here
+    /* Info to POM */
   }
-  if (port_map_status == true ) {
+  // Notify POM only when PortMap is created or Deleted
+  if (PortMapNotificationVal == kPortMapCreated) {
     UPLL_LOG_DEBUG("Portmapstatus-true");
-    result_code = mgr->SetVlinkPortmapConfiguration(okey, datatype, dmi,  kPortMapConfigured,
+    result_code = mgr->SetVlinkPortmapConfiguration(okey,
+                                                    datatype,
+                                                    dmi,
+                                                    kPortMapConfigured,
                                                     UNC_OP_CREATE);
     if (result_code != UPLL_RC_SUCCESS) {
-       UPLL_LOG_DEBUG("SetVlinkPortMapConfiguration Failure %d", result_code);
-       return result_code;
+      UPLL_LOG_DEBUG("SetVlinkPortMapConfiguration Failure %d", result_code);
+      return result_code;
     }
-      result_code = pm_mgr->SetVlinkPortmapConfiguration(okey, datatype, dmi,  kPortMapConfigured,
-                                                      UNC_OP_CREATE);
-      if (result_code != UPLL_RC_SUCCESS) {
-         UPLL_LOG_DEBUG("SetVlinkPortMapConfiguration Failure %d", result_code);
-         delete okey;
-         return result_code;
-      }
-  } else {
-    UPLL_LOG_DEBUG("Portmapstatus-flase");
-    result_code = mgr->SetVlinkPortmapConfiguration(okey, datatype, dmi,  kVlinkPortMapNotConfigured,
+    result_code = pm_mgr->SetVlinkPortmapConfiguration(okey,
+                                                       datatype,
+                                                       dmi,
+                                                       kPortMapConfigured,
+                                                       UNC_OP_CREATE);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("SetVlinkPortMapConfiguration Failure %d", result_code);
+      return result_code;
+    }
+  } else if (PortMapNotificationVal == kPortMapDeleted) {
+    UPLL_LOG_DEBUG("Portmapstatus-false");
+    result_code = mgr->SetVlinkPortmapConfiguration(okey,
+                                                    datatype,
+                                                    dmi,
+                                                    kVlinkPortMapNotConfigured,
                                                     UNC_OP_DELETE);
     if (UPLL_RC_SUCCESS != result_code
         && UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
       UPLL_LOG_DEBUG("SetVlinkPortMapConfiguration Failure %d", result_code);
       return result_code;
-     }
-     result_code = pm_mgr->SetVlinkPortmapConfiguration(okey, datatype, dmi,  kVlinkPortMapNotConfigured,
-                                                      UNC_OP_DELETE);
-     if (UPLL_RC_SUCCESS != result_code
-          && UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
-        UPLL_LOG_DEBUG("SetVlinkPortMapConfiguration Failure %d", result_code);
-        return result_code;
-     }
+    }
+    result_code = pm_mgr->SetVlinkPortmapConfiguration(
+        okey,
+        datatype,
+        dmi,
+        kVlinkPortMapNotConfigured,
+        UNC_OP_DELETE);
+    if (UPLL_RC_SUCCESS != result_code
+        && UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+      UPLL_LOG_DEBUG("SetVlinkPortMapConfiguration Failure %d", result_code);
+      return result_code;
+    }
   }
-  result_code = (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code)?UPLL_RC_SUCCESS:result_code;
+  result_code = (UPLL_RC_ERR_NO_SUCH_INSTANCE ==
+                 result_code)?UPLL_RC_SUCCESS:result_code;
   return result_code;
 }
 
@@ -2006,30 +2120,32 @@ upll_rc_t VbrIfMoMgr::AdaptValToVtnService(ConfigKeyVal *ikey) {
       UPLL_LOG_DEBUG("Config Val is Null");
       return UPLL_RC_ERR_GENERIC;
     }
-    while (cval ) {
+    while (cval) {
       if (IpctSt::kIpcStPfcdrvValVbrIf == cval->get_st_num()) {
-         val_vbr_if_t *vbr_if_val = reinterpret_cast<val_vbr_if_t *>
-                                (ConfigKeyVal::Malloc(sizeof(val_vbr_if_t)));
-         val_drv_vbr_if *vbr_drv_if_val = reinterpret_cast<val_drv_vbr_if *>
-                                     (cval->get_val());
-         memcpy(vbr_if_val, &(vbr_drv_if_val->vbr_if_val),
+        val_vbr_if_t *vbr_if_val = reinterpret_cast<val_vbr_if_t *>
+            (ConfigKeyVal::Malloc(sizeof(val_vbr_if_t)));
+        val_drv_vbr_if *vbr_drv_if_val = reinterpret_cast<val_drv_vbr_if *>
+            (cval->get_val());
+        memcpy(vbr_if_val, &(vbr_drv_if_val->vbr_if_val),
                sizeof(val_vbr_if_t));
-         cval->SetVal(IpctSt::kIpcStValVbrIf, vbr_if_val);
-         /* do not display portmap info if not configured (for boundary)*/
-         uint8_t vlink_flag = 0;
-         GET_USER_DATA_FLAGS(ikey, vlink_flag);
-         UPLL_LOG_DEBUG("Interface type %d", vlink_flag);
-         // set admin status to valid no value
-         if (vbr_if_val->valid[UPLL_IDX_ADMIN_STATUS_VBRI] == UNC_VF_INVALID)
-           vbr_if_val->valid[UPLL_IDX_ADMIN_STATUS_VBRI] = UNC_VF_VALID_NO_VALUE;
-         if (vlink_flag & VIF_TYPE)
-           vbr_if_val->valid[UPLL_IDX_PM_VBRI] = UNC_VF_INVALID;
+        cval->SetVal(IpctSt::kIpcStValVbrIf, vbr_if_val);
+        /* do not display portmap info if not configured (for boundary)*/
+        uint8_t vlink_flag = 0;
+        GET_USER_DATA_FLAGS(ikey, vlink_flag);
+        UPLL_LOG_DEBUG("Interface type %d", vlink_flag);
+        // set admin status to valid no value
+        if (vbr_if_val->valid[UPLL_IDX_ADMIN_STATUS_VBRI] == UNC_VF_INVALID)
+          vbr_if_val->valid[UPLL_IDX_ADMIN_STATUS_VBRI] =
+              UNC_VF_VALID_NO_VALUE;
+        if (vlink_flag & VIF_TYPE)
+          vbr_if_val->valid[UPLL_IDX_PM_VBRI] = UNC_VF_INVALID;
       }
       if (IpctSt::kIpcStValVbrIfSt == cval->get_st_num()) {
         val_vbr_if_st *vbr_if_val_st = reinterpret_cast<val_vbr_if_st *>
-                         (ConfigKeyVal::Malloc(sizeof(val_vbr_if_st)));
-        val_db_vbr_if_st *db_vbr_if_val_st = reinterpret_cast<val_db_vbr_if_st *>
-                                     (cval->get_val());
+            (ConfigKeyVal::Malloc(sizeof(val_vbr_if_st)));
+        val_db_vbr_if_st *db_vbr_if_val_st = reinterpret_cast
+            <val_db_vbr_if_st *>
+            (cval->get_val());
         memcpy(vbr_if_val_st, &(db_vbr_if_val_st->vbr_if_val_st),
                sizeof(val_vbr_if_st));
         cval->SetVal(IpctSt::kIpcStValVbrIfSt, vbr_if_val_st);
@@ -2055,32 +2171,33 @@ upll_rc_t VbrIfMoMgr::GetVexternal(ConfigKeyVal *ikey,
     return UPLL_RC_ERR_GENERIC;
   }
   val_drv_vbr_if *vbr_if_val = reinterpret_cast<val_drv_vbr_if *>
-                   (ConfigKeyVal::Malloc(sizeof(val_drv_vbr_if)));
-  //vbr_if_val->valid[UPLL_IDX_VBR_IF_DRV_PM]  = UNC_VF_VALID;
-  //vbr_if_val->vbr_if_val.valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID;
-  //vbr_if_val->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] = UNC_VF_VALID;
+      (ConfigKeyVal::Malloc(sizeof(val_drv_vbr_if)));
+  // vbr_if_val->valid[UPLL_IDX_VBR_IF_DRV_PM]  = UNC_VF_VALID;
+  // vbr_if_val->vbr_if_val.valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID;
+  // vbr_if_val->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] = UNC_VF_VALID;
   ikey->AppendCfgVal(IpctSt::kIpcStPfcdrvValVbrIf, vbr_if_val);
 
   /* Get the vbridgeIf instance from db */
   DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutFlag };
- switch (dt_type) {
 switch (dt_type) {
     case UPLL_DT_CANDIDATE:
     case UPLL_DT_IMPORT:
     case UPLL_DT_RUNNING:
-           result_code = ReadConfigDB(ikey, dt_type, UNC_OP_READ, dbop,
-                                       dmi, MAINTBL);
-           break;
+    case UPLL_DT_STATE:
+      result_code = ReadConfigDB(ikey, dt_type, UNC_OP_READ, dbop,
+                                 dmi, MAINTBL);
+      break;
     case UPLL_DT_AUDIT:
-           result_code = ReadConfigDB(ikey, dt_type, UNC_OP_READ, dbop,
-                                       dmi, MAINTBL);
-           break;
+      result_code = ReadConfigDB(ikey, dt_type, UNC_OP_READ, dbop,
+                                 dmi, MAINTBL);
+      break;
     default:
-           UPLL_LOG_DEBUG("Invalid Datatype %d", dt_type);
-           return UPLL_RC_ERR_GENERIC;
-           break;
+      UPLL_LOG_DEBUG("Invalid Datatype %d", dt_type);
+      return UPLL_RC_ERR_GENERIC;
+      break;
   }
 
- if (result_code != UPLL_RC_SUCCESS
 if (result_code != UPLL_RC_SUCCESS
       && result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
     UPLL_LOG_DEBUG("ReadConfiDB Failed: %d", result_code);
     return result_code;
@@ -2092,22 +2209,23 @@ upll_rc_t VbrIfMoMgr::GetVexternal(ConfigKeyVal *ikey,
     if (vbrif_flag & VIF_TYPE_BOUNDARY) {
       iftype = kVlinkPortMapConfigured;  // boundary
     } else if (vbrif_flag & VIF_TYPE_LINKED) {
-      iftype = kVlinkConfigured; //linked
+      iftype = kVlinkConfigured;  // linked
     }
-
+    vbr_if_val = reinterpret_cast<val_drv_vbr_if_t *>
+        (GetVal(ikey));
     if (vbr_if_val->vbr_if_val.valid[UPLL_IDX_PM_VBRI] == UNC_VF_VALID) {
       iftype = kPortMapConfigured;
-    if (vbr_if_val->vbr_if_val.portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM]) {
-      if (!strlen(reinterpret_cast<const char *>(vbr_if_val->vex_name)))
-        return UPLL_RC_ERR_GENERIC;
-      uuu::upll_strncpy(vexternal, vbr_if_val->vex_name,
-                        (kMaxLenInterfaceName + 1));
-      if (!strlen(reinterpret_cast<const char *>(vbr_if_val->vex_if_name)))
-        return UPLL_RC_ERR_GENERIC;
-      uuu::upll_strncpy(vex_if, vbr_if_val->vex_if_name,
-                        (kMaxLenInterfaceName + 1));
+      if (vbr_if_val->vbr_if_val.portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM]) {
+        if (!strlen(reinterpret_cast<const char *>(vbr_if_val->vex_name)))
+          return UPLL_RC_ERR_GENERIC;
+        uuu::upll_strncpy(vexternal, vbr_if_val->vex_name,
+                          (kMaxLenInterfaceName + 1));
+        if (!strlen(reinterpret_cast<const char *>(vbr_if_val->vex_if_name)))
+          return UPLL_RC_ERR_GENERIC;
+        uuu::upll_strncpy(vex_if, vbr_if_val->vex_if_name,
+                          (kMaxLenInterfaceName + 1));
+      }
     }
-   }
   } else {
     iftype = kVlinkPortMapNotConfigured;
     vexternal[0] = '\0';
@@ -2117,13 +2235,15 @@ upll_rc_t VbrIfMoMgr::GetVexternal(ConfigKeyVal *ikey,
 }
 
 
-upll_rc_t VbrIfMoMgr::AuditUpdateController(unc_key_type_t keytype,
-                             const char *ctrlr_id,
-                             uint32_t session_id,
-                             uint32_t config_id,
-                             uuc::UpdateCtrlrPhase phase,
-                             bool *ctrlr_affected,
-                             DalDmlIntf *dmi) {
+upll_rc_t VbrIfMoMgr::AuditUpdateController(
+    unc_key_type_t keytype,
+    const char *ctrlr_id,
+    uint32_t session_id,
+    uint32_t config_id,
+    uuc::UpdateCtrlrPhase phase,
+    DalDmlIntf *dmi,
+    ConfigKeyVal **err_ckv,
+    KTxCtrlrAffectedState *ctrlr_affected) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   DalResultCode db_result = uud::kDalRcSuccess;
@@ -2137,34 +2257,42 @@ upll_rc_t VbrIfMoMgr::AuditUpdateController(unc_key_type_t keytype,
   DalCursor *cursor = NULL;
   val_drv_vbr_if *drv_vbr_if = NULL;
   uint8_t *ctrlr = reinterpret_cast<uint8_t *>(const_cast<char *>(ctrlr_id));
+
   DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutNone};
   unc_keytype_operation_t op = (phase == uuc::kUpllUcpCreate)?UNC_OP_CREATE:
-               ((phase == uuc::kUpllUcpUpdate)?UNC_OP_UPDATE:
-               ((phase == uuc::kUpllUcpDelete)?UNC_OP_DELETE:UNC_OP_INVALID));
+      ((phase == uuc::kUpllUcpUpdate)?UNC_OP_UPDATE:
+       ((phase == uuc::kUpllUcpDelete)?UNC_OP_DELETE:UNC_OP_INVALID));
   /* retreives the delta of running and audit configuration */
   UPLL_LOG_DEBUG("Operation is %d", op);
   result_code = DiffConfigDB(UPLL_DT_RUNNING, UPLL_DT_AUDIT, op,
-        ckv_running_db, ckv_audit_db,
-        &cursor, dmi, ctrlr, MAINTBL, true);
+                             ckv_running_db, ckv_audit_db,
+                             &cursor, dmi, ctrlr, MAINTBL, true);
+  if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+    UPLL_LOG_DEBUG("Skipping diff for opertaion %d", op);
+    DELETE_IF_NOT_NULL(ckv_running_db);
+    DELETE_IF_NOT_NULL(ckv_audit_db);
+    return UPLL_RC_SUCCESS;;
+  }
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("DiffConfigDB failed - %d", result_code);
+    DELETE_IF_NOT_NULL(ckv_running_db);
+    DELETE_IF_NOT_NULL(ckv_audit_db);
     return result_code;
   }
-  if (cursor == NULL) {
-      UPLL_LOG_DEBUG("cursor is null");
-      return UPLL_RC_ERR_GENERIC;
-  }
   while (uud::kDalRcSuccess == (db_result = dmi->GetNextRecord(cursor))) {
     UPLL_LOG_DEBUG("Diff Running Record: Operation:  is  %d\n %s\n", op,
-                    ckv_running_db->ToStrAll().c_str());
+                   ckv_running_db->ToStrAll().c_str());
     /* ignore records of another controller for create and update operation */
     if (phase != uuc::kUpllUcpDelete) {
       uint8_t *db_ctrlr = NULL;
       GET_USER_DATA_CTRLR(ckv_running_db, db_ctrlr);
-      UPLL_LOG_DEBUG("db ctrl_id and audit ctlr_id are  %s %s", db_ctrlr, ctrlr_id);
+      UPLL_LOG_DEBUG("db ctrl_id and audit ctlr_id are  %s %s",
+                     db_ctrlr,
+                     ctrlr_id);
       if (db_ctrlr && strncmp(reinterpret_cast<const char *>(db_ctrlr),
-                           reinterpret_cast<const char *>(ctrlr_id),
-                           strlen(reinterpret_cast<const char *>(ctrlr_id)) + 1))
+                              reinterpret_cast<const char *>(ctrlr_id),
+                              strlen(reinterpret_cast<const char *>
+                                     (ctrlr_id)) + 1))
         continue;
     }
     switch (phase) {
@@ -2172,7 +2300,7 @@ upll_rc_t VbrIfMoMgr::AuditUpdateController(unc_key_type_t keytype,
         result_code = GetChildConfigKey(ckv_driver_req, ckv_running_db);
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("GetChildConfigKey failed. err_code & phase %d %d",
-                           result_code, phase);
+                         result_code, phase);
           return result_code;
         }
         if (ckv_driver_req->get_cfg_val()) {
@@ -2180,13 +2308,13 @@ upll_rc_t VbrIfMoMgr::AuditUpdateController(unc_key_type_t keytype,
           return UPLL_RC_ERR_GENERIC;
         }
         result_code = ReadConfigDB(ckv_driver_req, UPLL_DT_AUDIT, UNC_OP_READ,
-                                             dbop, dmi, MAINTBL);
+                                   dbop, dmi, MAINTBL);
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("Returning error %d", result_code);
           return UPLL_RC_ERR_GENERIC;
         }
         drv_vbr_if = reinterpret_cast<val_drv_vbr_if_t *>
-           (GetVal(ckv_driver_req));
+            (GetVal(ckv_driver_req));
         if (!drv_vbr_if) {
           UPLL_LOG_DEBUG("drv_vbr_if is NULL");
           return UPLL_RC_ERR_GENERIC;
@@ -2194,48 +2322,61 @@ upll_rc_t VbrIfMoMgr::AuditUpdateController(unc_key_type_t keytype,
         if (drv_vbr_if->vbr_if_val.valid[UPLL_IDX_PM_VBRI] != UNC_VF_VALID) {
           ckv_driver_req->DeleteCfgVal();
         } else {
-           drv_vbr_if->valid[0] = UNC_VF_INVALID;
-           for (int i=0; i < 3 ; i++) {
-             if (drv_vbr_if->vbr_if_val.valid[i] != UNC_VF_INVALID) {
-               drv_vbr_if->valid[0] = UNC_VF_VALID;
-               break;
+          drv_vbr_if->valid[0] = UNC_VF_INVALID;
+          for (int i = 0; i < 3 ; i++) {
+            if (drv_vbr_if->vbr_if_val.valid[i] != UNC_VF_INVALID) {
+              drv_vbr_if->valid[0] = UNC_VF_VALID;
+              break;
             }
           }
         }
         break;
       case uuc::kUpllUcpCreate:
-          result_code = DupConfigKeyVal(ckv_driver_req, ckv_running_db, MAINTBL);
-          if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("DupConfigKeyVal failed. err_code & phase %d %d",
-                           result_code, phase);
-            return result_code;
-          }
-         break;
+        result_code = DupConfigKeyVal(ckv_driver_req, ckv_running_db, MAINTBL);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("DupConfigKeyVal failed. err_code & phase %d %d",
+                         result_code, phase);
+          return result_code;
+        }
+        break;
       case uuc::kUpllUcpUpdate:
-          UPLL_LOG_DEBUG("Diff audit record  is %s ", ckv_audit_db->ToStrAll().c_str());
-          result_code = DupConfigKeyVal(ckv_driver_req, ckv_running_db, MAINTBL);
-          if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("DupConfigKeyVal failed for running record. \
-                            err_code & phase %d %d", result_code, phase);
-            return result_code;
-          }
-          result_code = DupConfigKeyVal(ckv_audit_dup_db, ckv_audit_db, MAINTBL);
-          if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("DupConfigKeyVal failed for audit record. \
-                           err_code & phase %d %d", result_code, phase);
-            return result_code;
-          }
-          if (GetVal(ckv_driver_req) != NULL &&
+        UPLL_LOG_DEBUG("Diff audit record  is %s ",
+                       ckv_audit_db->ToStrAll().c_str());
+        result_code = DupConfigKeyVal(ckv_driver_req, ckv_running_db, MAINTBL);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("DupConfigKeyVal failed for running record."
+                         "err_code & phase %d %d", result_code, phase);
+          return result_code;
+        }
+        result_code = DupConfigKeyVal(ckv_audit_dup_db, ckv_audit_db, MAINTBL);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("DupConfigKeyVal failed for audit record."
+                         "err_code & phase %d %d", result_code, phase);
+          return result_code;
+        }
+        if (GetVal(ckv_driver_req) != NULL &&
             GetVal(ckv_audit_dup_db) != NULL) {
-            void *val1 = GetVal(ckv_driver_req);
-            if (FilterAttributes(val1, GetVal(ckv_audit_dup_db), false,
-                           UNC_OP_UPDATE)) {
-              delete ckv_driver_req;
-              ckv_driver_req = NULL;
-              delete ckv_audit_dup_db;
-              ckv_audit_dup_db = NULL;
-              continue;
+          void *val1 = GetVal(ckv_driver_req);
+          if (FilterAttributes(val1, GetVal(ckv_audit_dup_db), false,
+                               UNC_OP_UPDATE)) {
+            delete ckv_driver_req;
+            ckv_driver_req = NULL;
+            delete ckv_audit_dup_db;
+            ckv_audit_dup_db = NULL;
+            // Assuming that the diff found only in ConfigStatus
+            // Setting the   value as OnlyCSDiff in the out
+            // parameter ctrlr_affected
+            // The value Configdiff should be given more priority
+            // than the value
+            // onlycs .
+            // So  If the out parameter ctrlr_affected has already value as
+            // configdiff then dont change the value
+            if (*ctrlr_affected != uuc::kCtrlrAffectedConfigDiff) {
+              UPLL_LOG_INFO("Setting the ctrlr_affected to OnlyCSDiff");
+              *ctrlr_affected = uuc::kCtrlrAffectedOnlyCSDiff;
             }
+            continue;
+          }
         }
         break;
       default:
@@ -2243,25 +2384,30 @@ upll_rc_t VbrIfMoMgr::AuditUpdateController(unc_key_type_t keytype,
         return UPLL_RC_ERR_NO_SUCH_OPERATION;
         break;
     }
-   if (phase == uuc::kUpllUcpUpdate || phase == uuc::kUpllUcpCreate) {
-     drv_vbr_if = reinterpret_cast<val_drv_vbr_if_t *>
-     (GetVal(ckv_driver_req));
-     drv_vbr_if->valid[0] = UNC_VF_INVALID;
-     for (int i=0; i < 3 ; i++) {
+    if (phase == uuc::kUpllUcpUpdate || phase == uuc::kUpllUcpCreate) {
+      drv_vbr_if = reinterpret_cast<val_drv_vbr_if_t *>
+          (GetVal(ckv_driver_req));
+      drv_vbr_if->valid[0] = UNC_VF_INVALID;
+      for (int i = 0; i < 3 ; i++) {
         if (drv_vbr_if->vbr_if_val.valid[i] != UNC_VF_INVALID) {
-         drv_vbr_if->valid[0] = UNC_VF_VALID;
-                break;
+          drv_vbr_if->valid[0] = UNC_VF_VALID;
+          break;
         }
-     }
-   }
+      }
+    }
     GET_USER_DATA_CTRLR_DOMAIN(ckv_driver_req, ctrlr_dom);
     if ((NULL == ctrlr_dom.ctrlr) || (NULL == ctrlr_dom.domain)) {
       UPLL_LOG_INFO("controller id or domain is NULL");
+      DELETE_IF_NOT_NULL(ckv_running_db);
+      DELETE_IF_NOT_NULL(ckv_audit_db);
+      DELETE_IF_NOT_NULL(ckv_driver_req);
+      dmi->CloseCursor(cursor, true);
       return UPLL_RC_ERR_GENERIC;
     }
     UPLL_LOG_DEBUG("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
-                 ctrlr_dom.domain);
-    upll_keytype_datatype_t dt_type = UPLL_DT_RUNNING;
+                   ctrlr_dom.domain);
+    upll_keytype_datatype_t dt_type = (op == UNC_OP_DELETE)?
+        UPLL_DT_AUDIT : UPLL_DT_RUNNING;
     result_code = GetRenamedControllerKey(ckv_driver_req, dt_type,
                                           dmi, &ctrlr_dom);
     if (result_code != UPLL_RC_SUCCESS) {
@@ -2283,82 +2429,134 @@ upll_rc_t VbrIfMoMgr::AuditUpdateController(unc_key_type_t keytype,
     ipc_req.header.operation = op;
     ipc_req.header.datatype = UPLL_DT_CANDIDATE;
     ipc_req.ckv_data = ckv_driver_req;
-    if (!IpcUtil::SendReqToDriver((const char *)ctrlr_dom.ctrlr, reinterpret_cast<char *>
-                                  (ctrlr_dom.domain), PFCDRIVER_SERVICE_NAME,
-                                  PFCDRIVER_SVID_LOGICAL, &ipc_req, true, &ipc_response)) {
+    if (!IpcUtil::SendReqToDriver((const char *)ctrlr_dom.ctrlr,
+                                  reinterpret_cast<char *>
+                                  (ctrlr_dom.domain),
+                                  PFCDRIVER_SERVICE_NAME,
+                                  PFCDRIVER_SVID_LOGICAL,
+                                  &ipc_req,
+                                  true,
+                                  &ipc_response)) {
       UPLL_LOG_INFO("Request to driver for Key %d for controller %s failed ",
-                    ckv_driver_req->get_key_type(), reinterpret_cast<char *>(ctrlr_dom.ctrlr));
+                    ckv_driver_req->get_key_type(), reinterpret_cast<char *>
+                    (ctrlr_dom.ctrlr));
+      DELETE_IF_NOT_NULL(ckv_running_db);
+      DELETE_IF_NOT_NULL(ckv_audit_db);
+      DELETE_IF_NOT_NULL(ckv_driver_req);
+      dmi->CloseCursor(cursor, true);
       return UPLL_RC_ERR_GENERIC;
     }
-    if  (ipc_response.header.result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("driver return failure err_code is %d", ipc_response.header.result_code);
+    if (ipc_response.header.result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("driver return failure err_code is %d",
+                     ipc_response.header.result_code);
+      result_code = AdaptValToVtnService(ckv_running_db);
+      if (result_code != UPLL_RC_SUCCESS &&
+          result_code != UPLL_RC_ERR_GENERIC) {
+        UPLL_LOG_DEBUG("AdaptValToVtnService failed result_code %d",
+                       result_code);
+        DELETE_IF_NOT_NULL(ckv_running_db);
+        DELETE_IF_NOT_NULL(ckv_audit_db);
+        DELETE_IF_NOT_NULL(ckv_driver_req);
+        dmi->CloseCursor(cursor, true);
+        delete ipc_response.ckv_data;
+        return result_code;
+      }
+      *err_ckv = ckv_running_db;
+      if (phase != uuc::kUpllUcpDelete) {
         ConfigKeyVal *resp = NULL;
         result_code = DupConfigKeyVal(resp, ipc_response.ckv_data);
         if (result_code != UPLL_RC_SUCCESS) {
-           UPLL_LOG_DEBUG("DupConfigKeyVal failed for ipc response ckv err_code %d",
-                           result_code);
-           delete ipc_response.ckv_data;
-           return result_code;
+          UPLL_LOG_DEBUG("DupConfigKeyVal failed for ipc"
+                         "response ckv err_code %d",
+                         result_code);
+          DELETE_IF_NOT_NULL(ckv_running_db);
+          DELETE_IF_NOT_NULL(ckv_audit_db);
+          DELETE_IF_NOT_NULL(ckv_driver_req);
+          DELETE_IF_NOT_NULL(resp);
+          *err_ckv = NULL;
+          dmi->CloseCursor(cursor, true);
+          delete ipc_response.ckv_data;
+          return result_code;
         }
-        result_code = UpdateAuditConfigStatus(UNC_CS_INVALID, phase, resp);
+        result_code = UpdateAuditConfigStatus(UNC_CS_INVALID,
+                                              phase,
+                                              resp,
+                                              dmi);
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_TRACE("Update Audit config status failed %d",
-                  result_code);
+                         result_code);
           DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+          DELETE_IF_NOT_NULL(ckv_running_db);
+          DELETE_IF_NOT_NULL(ckv_audit_db);
+          DELETE_IF_NOT_NULL(ckv_driver_req);
+          DELETE_IF_NOT_NULL(resp);
+          *err_ckv = NULL;
           return result_code;
         }
         result_code = UpdateConfigDB(resp, UPLL_DT_RUNNING, UNC_OP_UPDATE,
-                                       dmi, MAINTBL);
+                                     dmi, MAINTBL);
         if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("UpdateConfigDB failed for ipc response ckv err_code %d",
-                          result_code);
+          UPLL_LOG_DEBUG("UpdateConfigDB failed for ipc response"
+                         "ckv err_code %d",
+                         result_code);
           DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+          DELETE_IF_NOT_NULL(ckv_running_db);
+          DELETE_IF_NOT_NULL(ckv_audit_db);
+          DELETE_IF_NOT_NULL(ckv_driver_req);
+          DELETE_IF_NOT_NULL(resp);
+          *err_ckv = NULL;
           return result_code;
         }
         if (keytype == UNC_KT_VTN) {
           result_code = SetConsolidatedStatus(resp, dmi);
           if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("SetConsolidatedStatus failed for ipc response ckv err_code %d",
-                            result_code);
+            UPLL_LOG_DEBUG("SetConsolidatedStatus failed for ipc"
+                           "response ckv err_code %d",
+                           result_code);
             DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+            DELETE_IF_NOT_NULL(ckv_running_db);
+            DELETE_IF_NOT_NULL(ckv_audit_db);
+            DELETE_IF_NOT_NULL(ckv_driver_req);
+            DELETE_IF_NOT_NULL(resp);
+            *err_ckv = NULL;
             return result_code;
           }
         }
-        if (resp)
-          delete resp;
+        DELETE_IF_NOT_NULL(resp);
+      }
+      return ipc_response.header.result_code;
     }
     DELETE_IF_NOT_NULL(ipc_response.ckv_data);
-    if (ckv_driver_req)
-      delete ckv_driver_req;
-    ckv_driver_req = NULL;
-    if (ckv_audit_dup_db)
-      delete ckv_audit_dup_db;
-    ckv_audit_dup_db = NULL;
+    DELETE_IF_NOT_NULL(ckv_driver_req);
+    DELETE_IF_NOT_NULL(ckv_audit_dup_db);
 
-    *ctrlr_affected = true;
+    // *ctrlr_affected = true;
+    if (*ctrlr_affected == uuc::kCtrlrAffectedOnlyCSDiff) {
+      UPLL_LOG_INFO("Reset ctrlr state from OnlyCSDiff to ConfigDiff");
+    }
+    UPLL_LOG_DEBUG("Setting the ctrlr_affected to ConfigDiff");
+    *ctrlr_affected = uuc::kCtrlrAffectedConfigDiff;
   }
   dmi->CloseCursor(cursor, true);
   if (uud::kDalRcSuccess != db_result) {
-     UPLL_LOG_DEBUG("GetNextRecord from database failed  - %d", db_result);
-     result_code =  DalToUpllResCode(db_result);
+    UPLL_LOG_DEBUG("GetNextRecord from database failed  - %d", db_result);
+    result_code =  DalToUpllResCode(db_result);
   }
-  if (ckv_running_db)
-     delete ckv_running_db;
-  if (ckv_audit_db)
-      delete ckv_audit_db;
+  DELETE_IF_NOT_NULL(ckv_running_db);
+  DELETE_IF_NOT_NULL(ckv_audit_db);
   result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)
-                ? UPLL_RC_SUCCESS : result_code;
+      ? UPLL_RC_SUCCESS : result_code;
   return result_code;
 }
 
 
 upll_rc_t VbrIfMoMgr::TxUpdateController(unc_key_type_t keytype,
-                                        uint32_t session_id,
-                                        uint32_t config_id,
-                                        uuc::UpdateCtrlrPhase phase,
-                                        set<string> *affected_ctrlr_set,
-                                        DalDmlIntf *dmi,
-                                        ConfigKeyVal **err_ckv)  {
+                                         uint32_t session_id,
+                                         uint32_t config_id,
+                                         uuc::UpdateCtrlrPhase phase,
+                                         set<string> *affected_ctrlr_set,
+                                         DalDmlIntf *dmi,
+                                         ConfigKeyVal **err_ckv)  {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS, driver_result = UPLL_RC_SUCCESS;
   DalResultCode db_result;
@@ -2369,15 +2567,21 @@ upll_rc_t VbrIfMoMgr::TxUpdateController(unc_key_type_t keytype,
   DalCursor *dal_cursor_handle = NULL;
   IpcResponse ipc_resp;
   unc_keytype_operation_t op = (phase == uuc::kUpllUcpCreate)?UNC_OP_CREATE:
-                               ((phase == uuc::kUpllUcpUpdate)?UNC_OP_UPDATE:
-                                           UNC_OP_DELETE);
+      ((phase == uuc::kUpllUcpUpdate)?UNC_OP_UPDATE:
+       UNC_OP_DELETE);
 
   if (affected_ctrlr_set == NULL)
-     return UPLL_RC_ERR_GENERIC;
-  driver_result = DiffConfigDB(UPLL_DT_CANDIDATE, UPLL_DT_RUNNING,
-                     op, req, nreq, &dal_cursor_handle, dmi, MAINTBL);
+    return UPLL_RC_ERR_GENERIC;
+  driver_result = DiffConfigDB(UPLL_DT_CANDIDATE,
+                               UPLL_DT_RUNNING,
+                               op,
+                               req,
+                               nreq,
+                               &dal_cursor_handle,
+                               dmi,
+                               MAINTBL);
   while (driver_result == UPLL_RC_SUCCESS) {
-      //  Get Next Record
+    //  Get Next Record
     db_result = dmi->GetNextRecord(dal_cursor_handle);
     driver_result = DalToUpllResCode(db_result);
     if (driver_result != UPLL_RC_SUCCESS)
@@ -2385,7 +2589,7 @@ upll_rc_t VbrIfMoMgr::TxUpdateController(unc_key_type_t keytype,
     switch (op)   {
       case UNC_OP_CREATE:
       case UNC_OP_UPDATE:
-     /* fall through intended */
+        /* fall through intended */
         result_code = DupConfigKeyVal(ck_main, req);
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_TRACE("DupConfigKeyVal failed %d", result_code);
@@ -2395,16 +2599,16 @@ upll_rc_t VbrIfMoMgr::TxUpdateController(unc_key_type_t keytype,
           return result_code;
         }
         break;
-     case UNC_OP_DELETE:
-       result_code = GetChildConfigKey(ck_main, req);
-       if (result_code != UPLL_RC_SUCCESS) {
-         UPLL_LOG_TRACE("GetChildConfigKey failed %d", result_code);
-         dmi->CloseCursor(dal_cursor_handle, true);
-         delete req;
-         return result_code;
-       }
-     default:
-       break;
+      case UNC_OP_DELETE:
+        result_code = GetChildConfigKey(ck_main, req);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_TRACE("GetChildConfigKey failed %d", result_code);
+          dmi->CloseCursor(dal_cursor_handle, true);
+          delete req;
+          return result_code;
+        }
+      default:
+        break;
     }
     GET_USER_DATA_CTRLR_DOMAIN(ck_main, ctrlr_dom);
     if (ctrlr_dom.ctrlr == NULL) {
@@ -2416,26 +2620,26 @@ upll_rc_t VbrIfMoMgr::TxUpdateController(unc_key_type_t keytype,
     uint8_t bound_vlink = 0;
     GET_USER_DATA_FLAGS(ck_main, bound_vlink);
     if (op == UNC_OP_DELETE) {
-       if (ck_main->get_cfg_val()) {
-         UPLL_LOG_DEBUG("Invalid param");
-         delete ck_main;
-         delete req;
-         return UPLL_RC_ERR_GENERIC;
-       }
-       DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutNone};
-       result_code = ReadConfigDB(ck_main, UPLL_DT_RUNNING, UNC_OP_READ,
-                                             dbop, dmi, MAINTBL);
-       if (result_code != UPLL_RC_SUCCESS) {
-         UPLL_LOG_DEBUG("Returning error %d", result_code);
-         delete ck_main;
-         delete req;
-         return UPLL_RC_ERR_GENERIC;
-       }
-       val_drv_vbr_if_t *val_vbr = reinterpret_cast<val_drv_vbr_if_t *>
+      if (ck_main->get_cfg_val()) {
+        UPLL_LOG_DEBUG("Invalid param");
+        delete ck_main;
+        delete req;
+        return UPLL_RC_ERR_GENERIC;
+      }
+      DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutNone};
+      result_code = ReadConfigDB(ck_main, UPLL_DT_RUNNING, UNC_OP_READ,
+                                 dbop, dmi, MAINTBL);
+      if (result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("Returning error %d", result_code);
+        delete ck_main;
+        delete req;
+        return UPLL_RC_ERR_GENERIC;
+      }
+      val_drv_vbr_if_t *val_vbr = reinterpret_cast<val_drv_vbr_if_t *>
           (GetVal(ck_main));
-       if (val_vbr->vbr_if_val.valid[UPLL_IDX_PM_VBRI] != UNC_VF_VALID) {
-            ck_main->DeleteCfgVal();
-       }
+      if (val_vbr->vbr_if_val.valid[UPLL_IDX_PM_VBRI] != UNC_VF_VALID) {
+        ck_main->DeleteCfgVal();
+      }
     }
     if ((op == UNC_OP_CREATE) || (op == UNC_OP_UPDATE)) {
       void *main = GetVal(ck_main);
@@ -2448,122 +2652,143 @@ upll_rc_t VbrIfMoMgr::TxUpdateController(unc_key_type_t keytype,
       UPLL_LOG_TRACE("%s", ck_main->ToStrAll().c_str());
     }
     val_drv_vbr_if *vbr_ifval = reinterpret_cast<val_drv_vbr_if *>
-      (GetVal(ck_main));
+        (GetVal(ck_main));
     if (vbr_ifval) {
       vbr_ifval->valid[0] = UNC_VF_INVALID;
-      for (int i=0; i < 3 ; i++) {
+      for (int i = 0; i < 3 ; i++) {
         if (vbr_ifval->vbr_if_val.valid[i] != UNC_VF_INVALID) {
           vbr_ifval->valid[0] = UNC_VF_VALID;
           break;
         }
       }
-      //for (int i=1; i < 4 ; i++)
+      // for (int i=1; i < 4 ; i++)
       //  vbr_ifval->valid[i] = vbr_ifval->vbr_if_val.valid[UPLL_IDX_PM_VBRI];
       switch (vbr_ifval->vbr_if_val.valid[UPLL_IDX_PM_VBRI]) {
-      case UNC_VF_VALID_NO_VALUE :
-      {
-        UPLL_LOG_TRACE("entering valid-no-value");
-        val_drv_vbr_if *oval_vbrif = reinterpret_cast<val_drv_vbr_if *>
-                                   (GetVal(nreq));
-        if (!oval_vbrif) {
-          UPLL_LOG_DEBUG("Invalid param");
-          delete req;
-          DELETE_IF_NOT_NULL(nreq);
-          DELETE_IF_NOT_NULL(ck_main);
-          return UPLL_RC_ERR_GENERIC;
-        }
-        vbr_ifval->valid[PFCDRV_IDX_VEXT_NAME_VBRIF] = UNC_VF_VALID;
-        vbr_ifval->valid[PFCDRV_IDX_VEXTIF_NAME_VBRIF] = UNC_VF_VALID;
-        vbr_ifval->valid[PFCDRV_IDX_VLINK_NAME_VBRIF] = UNC_VF_VALID;
-        uuu::upll_strncpy(vbr_ifval->vex_name, oval_vbrif->vex_name,
-                          kMaxLenVnodeName+1);
-        uuu::upll_strncpy(vbr_ifval->vex_if_name, oval_vbrif->vex_if_name,
-                          kMaxLenVnodeName+1);
-        uuu::upll_strncpy(vbr_ifval->vex_link_name, oval_vbrif->vex_link_name,
-                          kMaxLenVnodeName+1);
-        break;
-      }
-      case UNC_VF_VALID:
-      {
-        // if it is update operation where only the logicalport/vlanid/tag is getting updated
-        // set vex/vexif/vexlink to invalid
-       val_drv_vbr_if *db_ifval = NULL;
-       db_ifval = (op != UNC_OP_UPDATE) ?
-               reinterpret_cast<val_drv_vbr_if *>(GetVal(ck_main)):
-               reinterpret_cast<val_drv_vbr_if *>(GetVal(nreq));
-       if (!db_ifval) {
-         UPLL_LOG_TRACE("Invalid param");
-         delete req;
-         DELETE_IF_NOT_NULL(nreq);
-         DELETE_IF_NOT_NULL(ck_main);
-         return UPLL_RC_ERR_GENERIC;
-       }
-       if (op == UNC_OP_DELETE) {
-         if ((db_ifval->vbr_if_val.valid[UPLL_IDX_PM_VBRI] == UNC_VF_VALID) &&
-             (db_ifval->vbr_if_val.portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM]
-                   == UNC_VF_VALID)) {
-            /* portmap is updated - fill in vex, vexlink -
-               vexif set to invalid for portmap update
-             */
+        case UNC_VF_VALID_NO_VALUE :
+          {
+            UPLL_LOG_TRACE("entering valid-no-value");
+            val_drv_vbr_if *oval_vbrif = reinterpret_cast<val_drv_vbr_if *>
+                (GetVal(nreq));
+            if (!oval_vbrif) {
+              UPLL_LOG_DEBUG("Invalid param");
+              delete req;
+              DELETE_IF_NOT_NULL(nreq);
+              DELETE_IF_NOT_NULL(ck_main);
+              return UPLL_RC_ERR_GENERIC;
+            }
             vbr_ifval->valid[PFCDRV_IDX_VEXT_NAME_VBRIF] = UNC_VF_VALID;
-            uuu::upll_strncpy(vbr_ifval->vex_name, db_ifval->vex_name,
-                            kMaxLenVnodeName+1);
-            vbr_ifval->valid[PFCDRV_IDX_VEXTIF_NAME_VBRIF] = UNC_VF_INVALID;
+            vbr_ifval->valid[PFCDRV_IDX_VEXTIF_NAME_VBRIF] = UNC_VF_VALID;
             vbr_ifval->valid[PFCDRV_IDX_VLINK_NAME_VBRIF] = UNC_VF_VALID;
-            uuu::upll_strncpy(vbr_ifval->vex_link_name, db_ifval->vex_link_name,
-                          kMaxLenVnodeName+1);
-            if (vbr_ifval->vbr_if_val.portmap.valid[UPLL_IDX_TAGGED_PM] == UNC_VF_VALID) {
-              if (vbr_ifval->vbr_if_val.portmap.valid[UPLL_IDX_VLAN_ID_PM] == UNC_VF_INVALID) {
-                 vbr_ifval->vbr_if_val.portmap.vlan_id  =  db_ifval->vbr_if_val.portmap.vlan_id;
-                 vbr_ifval->vbr_if_val.portmap.valid[UPLL_IDX_VLAN_ID_PM] = UNC_VF_VALID;
+            uuu::upll_strncpy(vbr_ifval->vex_name, oval_vbrif->vex_name,
+                              kMaxLenVnodeName+1);
+            uuu::upll_strncpy(vbr_ifval->vex_if_name, oval_vbrif->vex_if_name,
+                              kMaxLenVnodeName+1);
+            uuu::upll_strncpy(vbr_ifval->vex_link_name,
+                              oval_vbrif->vex_link_name,
+                              kMaxLenVnodeName+1);
+            break;
+          }
+        case UNC_VF_VALID:
+          {
+            // if it is update operation where only
+            // the logicalport/vlanid/tag is getting updated
+            // set vex/vexif/vexlink to invalid
+            val_drv_vbr_if *db_ifval = NULL;
+            db_ifval = (op != UNC_OP_UPDATE) ?
+                reinterpret_cast<val_drv_vbr_if *>(GetVal(ck_main)):
+                reinterpret_cast<val_drv_vbr_if *>(GetVal(nreq));
+            if (!db_ifval) {
+              UPLL_LOG_TRACE("Invalid param");
+              delete req;
+              DELETE_IF_NOT_NULL(nreq);
+              DELETE_IF_NOT_NULL(ck_main);
+              return UPLL_RC_ERR_GENERIC;
+            }
+            if (op == UNC_OP_DELETE) {
+              if ((db_ifval->vbr_if_val.valid[UPLL_IDX_PM_VBRI] ==
+                   UNC_VF_VALID) &&
+                  (db_ifval->
+                   vbr_if_val.portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM]
+                   == UNC_VF_VALID)) {
+                /* portmap is updated - fill in vex, vexlink -
+                   vexif set to invalid for portmap update
+                   */
+                vbr_ifval->valid[PFCDRV_IDX_VEXT_NAME_VBRIF] = UNC_VF_VALID;
+                uuu::upll_strncpy(vbr_ifval->vex_name, db_ifval->vex_name,
+                                  kMaxLenVnodeName+1);
+                vbr_ifval->valid[PFCDRV_IDX_VEXTIF_NAME_VBRIF] =
+                    UNC_VF_INVALID;
+                vbr_ifval->valid[PFCDRV_IDX_VLINK_NAME_VBRIF] = UNC_VF_VALID;
+                uuu::upll_strncpy(vbr_ifval->vex_link_name,
+                                  db_ifval->vex_link_name,
+                                  kMaxLenVnodeName+1);
+                if (vbr_ifval->vbr_if_val.portmap.valid[UPLL_IDX_TAGGED_PM] ==
+                    UNC_VF_VALID) {
+                  if (vbr_ifval->
+                      vbr_if_val.portmap.valid[UPLL_IDX_VLAN_ID_PM] ==
+                      UNC_VF_INVALID) {
+                    vbr_ifval->vbr_if_val.portmap.vlan_id  =
+                        db_ifval->vbr_if_val.portmap.vlan_id;
+                    vbr_ifval->vbr_if_val.portmap.valid[UPLL_IDX_VLAN_ID_PM] =
+                        UNC_VF_VALID;
+                  }
+                }
               }
             }
-         }
-       }
-       if (op == UNC_OP_UPDATE) {
-         if (vbr_ifval->vbr_if_val.valid[UPLL_IDX_ADMIN_STATUS_VBRI] == UNC_VF_INVALID) {
-            /* set port admin status to disable */
-           if ((db_ifval->vbr_if_val.valid[UPLL_IDX_ADMIN_STATUS_VBRI] == UNC_VF_VALID) &&
-                  (db_ifval->vbr_if_val.admin_status == UPLL_ADMIN_DISABLE)) {
-              vbr_ifval->vbr_if_val.admin_status = UPLL_ADMIN_DISABLE;
-              vbr_ifval->vbr_if_val.valid[UPLL_IDX_ADMIN_STATUS_VBRI] = UNC_VF_VALID;
-           }
-         }
-       }
-       break;
-      }
-      default:
-        break;
+            if (op == UNC_OP_UPDATE) {
+              if (vbr_ifval->vbr_if_val.valid[UPLL_IDX_ADMIN_STATUS_VBRI] ==
+                  UNC_VF_INVALID) {
+                /* set port admin status to disable */
+                if ((db_ifval->vbr_if_val.valid[UPLL_IDX_ADMIN_STATUS_VBRI] ==
+                     UNC_VF_VALID) &&
+                    (db_ifval->vbr_if_val.admin_status ==
+                     UPLL_ADMIN_DISABLE)) {
+                  vbr_ifval->vbr_if_val.admin_status = UPLL_ADMIN_DISABLE;
+                  vbr_ifval->vbr_if_val.valid[UPLL_IDX_ADMIN_STATUS_VBRI] =
+                      UNC_VF_VALID;
+                }
+              }
+            }
+            break;
+          }
+        default:
+          break;
       }
     }
     UPLL_LOG_TRACE("%s", ck_main->ToStrAll().c_str());
+    upll_keytype_datatype_t dt_type = (op == UNC_OP_DELETE)?
+        UPLL_DT_RUNNING:UPLL_DT_CANDIDATE;
     if (!OVERLAY_KT(keytype)) {
-      upll_keytype_datatype_t dt_type = (op == UNC_OP_DELETE)?
-             UPLL_DT_RUNNING:UPLL_DT_CANDIDATE;
       result_code = GetRenamedControllerKey(ck_main, dt_type,
-                                          dmi, &ctrlr_dom);
+                                            dmi, &ctrlr_dom);
       if (result_code != UPLL_RC_SUCCESS)
         break;
     }
     UPLL_LOG_DEBUG("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
-                 ctrlr_dom.domain);
+                   ctrlr_dom.domain);
     // Inserting the controller to Set
     affected_ctrlr_set->insert
-      (string(reinterpret_cast<char *>(ctrlr_dom.ctrlr)));
-    driver_result = SendIpcReq(session_id, config_id, op,
-      UPLL_DT_CANDIDATE, ck_main, &ctrlr_dom, &ipc_resp);
-    if (driver_result == UPLL_RC_ERR_RESOURCE_DISCONNECTED) {
+        (string(reinterpret_cast<char *>(ctrlr_dom.ctrlr)));
+    driver_result = SendIpcReq(session_id,
+                               config_id,
+                               op,
+                               UPLL_DT_CANDIDATE,
+                               ck_main,
+                               &ctrlr_dom,
+                               &ipc_resp);
+    if (driver_result == UPLL_RC_ERR_CTR_DISCONNECTED) {
       driver_result = UPLL_RC_SUCCESS;
       UPLL_LOG_DEBUG("Controller disconnected");
     }
     if (driver_result != UPLL_RC_SUCCESS) {
       ConfigKeyVal *ck_vlink = NULL;
       /* Validating if VbridgeIf is a node for Vlink */
-      if ((bound_vlink & VIF_TYPE_BOUNDARY) == 0x0)
+      if ((bound_vlink & VIF_TYPE_BOUNDARY) == 0x0) {
+        SET_USER_DATA_CTRLR(ipc_resp.ckv_data, ctrlr_dom.ctrlr);
         *err_ckv = ipc_resp.ckv_data;
-      else {
+      else {
         VlinkMoMgr *mgr = reinterpret_cast<VlinkMoMgr *>
-                    (const_cast<MoManager*>(GetMoManager(UNC_KT_VLINK)));
+            (const_cast<MoManager*>(GetMoManager(UNC_KT_VLINK)));
         vn_if_type iftype;
         if (!mgr) {
           UPLL_LOG_DEBUG("Invalid mgr");
@@ -2572,25 +2797,42 @@ upll_rc_t VbrIfMoMgr::TxUpdateController(unc_key_type_t keytype,
           return UPLL_RC_ERR_GENERIC;
         }
         ConfigKeyVal *ck_vif = NULL;
-        result_code = GetChildConfigKey(ck_vif,req);
+        result_code = GetChildConfigKey(ck_vif, req);
         result_code = mgr->CheckIfMemberOfVlink(ck_vif,
-                     UPLL_DT_CANDIDATE, ck_vlink, dmi, iftype);
+                                                UPLL_DT_CANDIDATE,
+                                                ck_vlink,
+                                                dmi,
+                                                iftype);
         DELETE_IF_NOT_NULL(ck_vif);
         if (result_code == UPLL_RC_SUCCESS) {
           delete ipc_resp.ckv_data;
+          SET_USER_DATA_CTRLR(ck_vlink, ctrlr_dom.ctrlr);
           *err_ckv = ck_vlink;
           break;
         } else  {
+          SET_USER_DATA_CTRLR(ipc_resp.ckv_data, ctrlr_dom.ctrlr);
           *err_ckv = ipc_resp.ckv_data;
           if (ck_vlink) delete ck_vlink;
           UPLL_LOG_DEBUG("Failed to map boundary if to vlink");
         }
       }
       if (*err_ckv) {
+        result_code = GetRenamedUncKey(*err_ckv, dt_type, dmi,
+                                       ctrlr_dom.ctrlr);
+        if (result_code != UPLL_RC_SUCCESS &&
+            result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+          UPLL_LOG_DEBUG("GetRenamedUncKey failed %d", result_code);
+          delete req;
+          DELETE_IF_NOT_NULL(nreq);
+          return result_code;
+        }
+
         result_code = AdaptValToVtnService(*err_ckv);
-        if (result_code != UPLL_RC_SUCCESS) {
+        if (result_code != UPLL_RC_SUCCESS &&
+            result_code != UPLL_RC_ERR_GENERIC) {
+          // If no val structure, ignore error
           UPLL_LOG_DEBUG("AdaptValToVtnService failed result_code %d",
-                          result_code);
+                         result_code);
           delete req;
           DELETE_IF_NOT_NULL(nreq);
           return result_code;
@@ -2608,26 +2850,30 @@ upll_rc_t VbrIfMoMgr::TxUpdateController(unc_key_type_t keytype,
     delete req;
   if (nreq)
     delete nreq;
-  driver_result = (driver_result == UPLL_RC_ERR_NO_SUCH_INSTANCE)?UPLL_RC_SUCCESS:driver_result;
+  driver_result = (driver_result ==
+                   UPLL_RC_ERR_NO_SUCH_INSTANCE)?UPLL_RC_SUCCESS:driver_result;
   return driver_result;
 }
 
 upll_rc_t VbrIfMoMgr::PortStatusHandler(const char *ctrlr_name,
-    const char *domain_name, const char *portid,
-    bool oper_status, DalDmlIntf *dmi  ) {
+                                        const char *domain_name,
+                                        const char *portid,
+                                        bool oper_status,
+                                        DalDmlIntf *dmi  ) {
   UPLL_FUNC_TRACE;
-  UPLL_LOG_TRACE("controller_name is : (%s) portid :(%s) domain_id :(%s) oper_status :(%d)",
-      ctrlr_name, portid, domain_name, oper_status);
+  UPLL_LOG_TRACE("controller_name is : (%s) portid :(%s) domain_id"
+                 ":(%s) oper_status :(%d)",
+                 ctrlr_name, portid, domain_name, oper_status);
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   /* Allocate Memory for UNC_KT_VBR_IF key and value structure */
   val_drv_vbr_if *vbrif_val = reinterpret_cast<val_drv_vbr_if*>
-                           (ConfigKeyVal::Malloc(sizeof(val_drv_vbr_if)));
+      (ConfigKeyVal::Malloc(sizeof(val_drv_vbr_if)));
   val_port_map *pm = &vbrif_val->vbr_if_val.portmap;
   (vbrif_val->vbr_if_val).valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID;
 
   /* Copy port_id from input to port_id variable in portmap structure */
   uuu::upll_strncpy(pm->logical_port_id, portid,
-                    (kMaxLenPortName + 1));
+                    (kMaxLenLogicalPortId + 1));
   /* set valid flag as VALID */
   pm->valid[UPLL_IDX_LOGICAL_PORT_ID_PM] = UNC_VF_VALID;
 
@@ -2643,17 +2889,25 @@ upll_rc_t VbrIfMoMgr::PortStatusHandler(const char *ctrlr_name,
   SET_USER_DATA_CTRLR(vbrifkey, ctrlr_name);
   SET_USER_DATA_DOMAIN(vbrifkey, domain_name);
   state_notification notification =
-       (oper_status == UPLL_OPER_STATUS_UP) ? kPortFaultReset : kPortFault;
+      (oper_status == UPLL_OPER_STATUS_UP) ? kPortFaultReset : kPortFault;
   // vlinked interfaces should not be handled
-  result_code = UpdateOperStatus(vbrifkey, dmi, notification, false, false, false);
+  result_code = UpdateOperStatus(vbrifkey,
+                                 dmi,
+                                 notification,
+                                 false,
+                                 false,
+                                 false);
   if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Invalid oper status update %d", result_code);
+    if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)
+      result_code = UPLL_RC_SUCCESS;
+    else
+      UPLL_LOG_DEBUG("Invalid oper status update %d", result_code);
     DELETE_IF_NOT_NULL(vbrifkey);
     return result_code;
   }
   if (notification == kPortFaultReset) {
     VnodeMoMgr *mgr = reinterpret_cast<VnodeMoMgr *>
-                    (const_cast<MoManager *>(GetMoManager(UNC_KT_VBRIDGE)));
+        (const_cast<MoManager *>(GetMoManager(UNC_KT_VBRIDGE)));
     if (!mgr) {
       UPLL_LOG_DEBUG("Returning error\n");
       DELETE_IF_NOT_NULL(vbrifkey);
@@ -2665,9 +2919,9 @@ upll_rc_t VbrIfMoMgr::PortStatusHandler(const char *ctrlr_name,
       DELETE_IF_NOT_NULL(vbrifkey);
       return result_code;
     }
-  
+
     VtnMoMgr *vtn_mgr = reinterpret_cast<VtnMoMgr *>
-                    (const_cast<MoManager *>(GetMoManager(UNC_KT_VTN)));
+        (const_cast<MoManager *>(GetMoManager(UNC_KT_VTN)));
     if (!vtn_mgr) {
       UPLL_LOG_DEBUG("Returning error\n");
       DELETE_IF_NOT_NULL(vbrifkey);
@@ -2695,26 +2949,27 @@ upll_rc_t VbrIfMoMgr::GetVbrIfFromVExternal(uint8_t *vtn_name,
     return UPLL_RC_ERR_GENERIC;
   }
   key_vbr_if_t *key_vbrif = static_cast<key_vbr_if_t *>
-               (ConfigKeyVal::Malloc(sizeof(key_vbr_if_t)));
+      (ConfigKeyVal::Malloc(sizeof(key_vbr_if_t)));
   uuu::upll_strncpy(key_vbrif->vbr_key.vtn_key.vtn_name,
-               vtn_name, (kMaxLenVtnName + 1));
+                    vtn_name, (kMaxLenVtnName + 1));
   val_drv_vbr_if_t *drv_val_vbrif = static_cast<val_drv_vbr_if_t *>
-               (ConfigKeyVal::Malloc(sizeof(val_drv_vbr_if_t)));
+      (ConfigKeyVal::Malloc(sizeof(val_drv_vbr_if_t)));
   drv_val_vbrif->valid[PFCDRV_IDX_VEXT_NAME_VBRIF] = UNC_VF_VALID;
   uuu::upll_strncpy(drv_val_vbrif->vex_name,
-                vext_name, (kMaxLenVnodeName + 1));
+                    vext_name, (kMaxLenVnodeName + 1));
   tmpckv = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key_vbrif,
-              new ConfigVal(IpctSt::kIpcStPfcdrvValVbrIf, drv_val_vbrif));
+                            new ConfigVal(IpctSt::kIpcStPfcdrvValVbrIf,
+                                          drv_val_vbrif));
   if (tmpckv == NULL) {
     free(key_vbrif);
     free(drv_val_vbrif);
     return UPLL_RC_ERR_GENERIC;
   }
   result_code = ReadConfigDB(tmpckv, UPLL_DT_RUNNING,
-                          UNC_OP_READ, dbop, dmi, MAINTBL);
+                             UNC_OP_READ, dbop, dmi, MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("vbrif ReadConfigDB Failed result_code - %d",
-                     result_code);
+                   result_code);
   }
   UPLL_LOG_DEBUG("tmpckv is %s", tmpckv->ToStrAll().c_str());
   return result_code;
@@ -2750,12 +3005,13 @@ upll_rc_t VbrIfMoMgr::IsLogicalPortAndVlanIdInUse(ConfigKeyVal *ikey,
   }
   if (vbrif_val->valid[UPLL_IDX_PM_VBRI] == UNC_VF_VALID) {
     val_drv_vbr_if *drv_if_val = reinterpret_cast<val_drv_vbr_if *>
-      (ConfigKeyVal::Malloc(sizeof(val_drv_vbr_if)));
+        (ConfigKeyVal::Malloc(sizeof(val_drv_vbr_if)));
     val_vbr_if_t *if_val = &drv_if_val->vbr_if_val;
-    if (vbrif_val->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] == UNC_VF_VALID) {
+    if (vbrif_val->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] ==
+        UNC_VF_VALID) {
       uuu::upll_strncpy(if_val->portmap.logical_port_id,
-          vbrif_val->portmap.logical_port_id,
-          kMaxLenLogicalPortId+1);
+                        vbrif_val->portmap.logical_port_id,
+                        kMaxLenLogicalPortId+1);
       if_val->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] = UNC_VF_VALID;
       if_val->valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID;
     }
@@ -2763,34 +3019,34 @@ upll_rc_t VbrIfMoMgr::IsLogicalPortAndVlanIdInUse(ConfigKeyVal *ikey,
     if (vbrif_val->portmap.valid[UPLL_IDX_VLAN_ID_PM] == UNC_VF_VALID) {
       if_val->portmap.vlan_id = vbrif_val->portmap.vlan_id;
       if_val->portmap.valid[UPLL_IDX_VLAN_ID_PM] =
-                      vbrif_val->portmap.valid[UPLL_IDX_VLAN_ID_PM];
+          vbrif_val->portmap.valid[UPLL_IDX_VLAN_ID_PM];
     }
     if ((vbrif_val->portmap.valid[UPLL_IDX_TAGGED_PM] == UNC_VF_VALID) ||
         (vbrif_val->portmap.valid[UPLL_IDX_TAGGED_PM] ==
-                                              UNC_VF_VALID_NO_VALUE)) {
+         UNC_VF_VALID_NO_VALUE)) {
       if_val->portmap.tagged = vbrif_val->portmap.tagged;
       if_val->portmap.valid[UPLL_IDX_TAGGED_PM] =
-                         vbrif_val->portmap.valid[UPLL_IDX_TAGGED_PM];
+          vbrif_val->portmap.valid[UPLL_IDX_TAGGED_PM];
     }
 #endif
     ckv_vbrif->AppendCfgVal(IpctSt::kIpcStPfcdrvValVbrIf, drv_if_val);
     SET_USER_DATA(ckv_vbrif, ikey);
     DbSubOp dbop = { kOpReadMultiple, kOpMatchCtrlr | kOpMatchDomain,
-                     kOpInOutFlag};
+      kOpInOutFlag};
     result_code = ReadConfigDB(ckv_vbrif, UPLL_DT_CANDIDATE, UNC_OP_READ,
                                dbop, dmi, MAINTBL);
     if (result_code == UPLL_RC_SUCCESS) {
       ConfigKeyVal *tmp = ckv_vbrif;
       while (tmp) {
         if (!memcmp(ikey->get_key(), tmp->get_key(),
-              sizeof(key_vbr_if_t))) {
+                    sizeof(key_vbr_if_t))) {
           UPLL_LOG_TRACE("Looking on the Same key");
         } else {
           bool match = false;
           val_vbr_if_t *if_val = &reinterpret_cast<val_drv_vbr_if *>
-                                  (GetVal(tmp))->vbr_if_val;
+              (GetVal(tmp))->vbr_if_val;
           if (vbrif_val->portmap.valid[UPLL_IDX_VLAN_ID_PM]
-                                                         == UNC_VF_VALID) {
+              == UNC_VF_VALID) {
             if (if_val->portmap.vlan_id == vbrif_val->portmap.vlan_id) {
               if (if_val->portmap.tagged == vbrif_val->portmap.tagged)
                 match = true;
@@ -2799,8 +3055,9 @@ upll_rc_t VbrIfMoMgr::IsLogicalPortAndVlanIdInUse(ConfigKeyVal *ikey,
             if (if_val->portmap.valid[UPLL_IDX_VLAN_ID_PM] == UNC_VF_VALID) {
               if (if_val->portmap.tagged == vbrif_val->portmap.tagged)
                 match = true;
-            } else
-                match = true;
+            } else {
+              match = true;
+            }
           }
           if (match) {
             UPLL_LOG_DEBUG("More than one vbridge interface is configured "
@@ -2821,28 +3078,28 @@ upll_rc_t VbrIfMoMgr::IsLogicalPortAndVlanIdInUse(ConfigKeyVal *ikey,
 }
 
 upll_rc_t VbrIfMoMgr::PathFaultHandler(const char *ctrlr_name,
-                                  const char *domain_id,
-                                  std::vector<std::string> &ingress_ports,
-                                  std::vector<std::string> &egress_ports,
-                                  bool alarm_asserted,
-                                  DalDmlIntf *dmi) {
+                                       const char *domain_id,
+                                       std::vector<std::string> &ingress_ports,
+                                       std::vector<std::string> &egress_ports,
+                                       bool alarm_asserted,
+                                       DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   UPLL_LOG_DEBUG("Alarm_asserted is %d", alarm_asserted);
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
   set<key_vnode_type_t, key_vnode_type_compare> sw1_vbridge_set,
-                                                sw2_vbridge_set;
+      sw2_vbridge_set;
   set<key_vnode_type_t, key_vnode_type_compare>::iterator vbridge1set_itr,
-                                                          vbridge2set_itr;
+      vbridge2set_itr;
   set<key_vnode_type_t, key_vnode_type_compare> vnode_set;
   set<key_vnode_type_t, key_vnode_type_compare>::iterator vnodeset_itr;
   set<key_vlink_t, vlink_compare> vlink_set;
   set<key_vnode_if_t, key_vnode_if_compare> boundary_if_set;
   state_notification notification = (alarm_asserted == UPLL_OPER_STATUS_UP) ?
-                                     kPathFault : kPathFaultReset;
+      kPathFault : kPathFaultReset;
 
   std::vector<int>::size_type ingress_size = ingress_ports.size();
-  for (uint8_t port_count = 0; port_count < ingress_size; port_count++) {
+  for (uint32_t port_count = 0; port_count < ingress_size; port_count++) {
     UPLL_LOG_DEBUG("ingress port : %s", ingress_ports[port_count].c_str());
 
     /* Get all the vbridges connected to sw1*/
@@ -2856,7 +3113,7 @@ upll_rc_t VbrIfMoMgr::PathFaultHandler(const char *ctrlr_name,
   }
 
   std::vector<int>::size_type egress_size = egress_ports.size();
-  for (uint8_t port_count = 0; port_count < egress_size; port_count++) {
+  for (uint32_t port_count = 0; port_count < egress_size; port_count++) {
     UPLL_LOG_DEBUG("egress port : %s", egress_ports[port_count].c_str());
 
     /* Get all the vbridges connected to sw2*/
@@ -2871,11 +3128,10 @@ upll_rc_t VbrIfMoMgr::PathFaultHandler(const char *ctrlr_name,
 
   /* Iterating through all the vbridges in the vbridge1 set*/
   for (vbridge1set_itr = sw1_vbridge_set.begin();
-      vbridge1set_itr != sw1_vbridge_set.end(); ) {
-
+       vbridge1set_itr != sw1_vbridge_set.end(); ) {
     /* Get the connected topology of each vbridge in sw1_vbridge set */
     VlinkMoMgr *vlink_mgr = reinterpret_cast<VlinkMoMgr *>
-                         (const_cast<MoManager *>(GetMoManager(UNC_KT_VLINK)));
+        (const_cast<MoManager *>(GetMoManager(UNC_KT_VLINK)));
 
     key_vnode_type temp_vnode_key = *vbridge1set_itr++;
     key_vnode_type src_vnode_key;
@@ -2886,34 +3142,34 @@ upll_rc_t VbrIfMoMgr::PathFaultHandler(const char *ctrlr_name,
 
     /* Iterating through all the vbridges in the vbridge2 set*/
     for (vbridge2set_itr = sw2_vbridge_set.begin();
-        vbridge2set_itr != sw2_vbridge_set.end(); ) {
+         vbridge2set_itr != sw2_vbridge_set.end(); ) {
       /* check if any vbridge in sw2_vbridge set belongs to connected topology
-       of a vbridge in sw1_vbridge set */
+         of a vbridge in sw1_vbridge set */
       key_vnode_type_t vn = *vbridge2set_itr++;
 
       vnodeset_itr = vnode_set.find(vn);
 
       /* If the vbridge in sw2_vbridge set belongs to the connected toplogy
-      of the vbridge in sw1_vbridge set update the path fault status of
-      the corresponding vnodes in the connected topology of the src vbridge
-      in sw1_vbridge set */
+         of the vbridge in sw1_vbridge set update the path fault status of
+         the corresponding vnodes in the connected topology of the src vbridge
+         in sw1_vbridge set */
       if (vnodeset_itr == vnode_set.end())
         continue;
       result_code = vlink_mgr->UpdateVlinkOperStatusUsingVlinkSet(
-                                      &vlink_set, dmi, notification);
-     if (result_code != UPLL_RC_SUCCESS) {
-       UPLL_LOG_DEBUG("Operstatus updation failed");
+          &vlink_set, dmi, notification);
+      if (result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("Operstatus updation failed");
         return result_code;
       }
 
       set<key_vnode_type_t, key_vnode_type_compare>::iterator vnode_set_iter;
       set<key_vnode_type_t, key_vnode_type_compare>::iterator vnode_set_end =
-                                                     vnode_set.end();
+          vnode_set.end();
       for (vnode_set_iter = vnode_set.begin();
            vnode_set_iter != vnode_set_end;
            ++vnode_set_iter) {
-       VnodeChildMoMgr *mgr = reinterpret_cast<VnodeChildMoMgr *>
-           (const_cast<MoManager*>(GetMoManager((*vnode_set_iter).key_type)));
+        VnodeChildMoMgr *mgr = reinterpret_cast<VnodeChildMoMgr *>
+            (const_cast<MoManager*>(GetMoManager((*vnode_set_iter).key_type)));
         result_code = mgr->SetLinkedIfOperStatusforPathFault(*vnode_set_iter,
                                                              notification,
                                                              dmi);
@@ -2924,19 +3180,19 @@ upll_rc_t VbrIfMoMgr::PathFaultHandler(const char *ctrlr_name,
       }
 
       result_code = SetBoundaryIfOperStatusforPathFault(
-                                    boundary_if_set, notification, dmi);
+          boundary_if_set, notification, dmi);
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("Errorin updating Operstatus for Pathfault");
         return result_code;
       }
 
       /*remove the vnodes whose oper status is updated from sw2_vbridge_set and
-       from sw1_vbridge_set*/
+        from sw1_vbridge_set*/
 
       for (vnodeset_itr = vnode_set.begin(); vnodeset_itr != vnode_set_end;) {
         key_vnode_type_t vn = *vnodeset_itr++;
         key_vnode_type_t vn1 = *vbridge2set_itr;
-        if (memcmp(&vn, &vn1 ,sizeof(key_vnode_type_t)) == 0)
+        if (memcmp(&vn, &vn1 , sizeof(key_vnode_type_t)) == 0)
           vbridge2set_itr++;
         sw2_vbridge_set.erase(vn);
         vn1 = *vbridge1set_itr;
@@ -2955,10 +3211,10 @@ upll_rc_t VbrIfMoMgr::PathFaultHandler(const char *ctrlr_name,
 
 /*This function gives the bridges connected to a particular switch log port*/
 upll_rc_t VbrIfMoMgr::GetMappedVbridges(
-            const char *ctrlr_name,
-            const char *domain_id,
-            std::string logportid, DalDmlIntf *dmi,
-            set<key_vnode_type_t, key_vnode_type_compare> *sw_vbridge_set) {
+    const char *ctrlr_name,
+    const char *domain_id,
+    std::string logportid, DalDmlIntf *dmi,
+    set<key_vnode_type_t, key_vnode_type_compare> *sw_vbridge_set) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *ck_vbr_if = NULL;
@@ -2989,13 +3245,17 @@ upll_rc_t VbrIfMoMgr::GetMappedVbridges(
   vbr_if_val->valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID;
   vbr_if_val->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] = UNC_VF_VALID;
   uuu::upll_strncpy(vbr_if_val->portmap.logical_port_id, logportid.c_str(),
-                   (kMaxLenPortName + 1));
+                    (kMaxLenLogicalPortId + 1));
 
   /* Get all the vbridges under the VTN */
   DbSubOp dbop = { kOpReadMultiple,
-                   kOpMatchCtrlr | kOpMatchDomain,
-                   kOpInOutNone };
-  result_code = ReadConfigDB(ck_vbr_if, UPLL_DT_RUNNING, UNC_OP_READ, dbop, dmi,
+    kOpMatchCtrlr | kOpMatchDomain,
+    kOpInOutNone };
+  result_code = ReadConfigDB(ck_vbr_if,
+                             UPLL_DT_RUNNING,
+                             UNC_OP_READ,
+                             dbop,
+                             dmi,
                              MAINTBL);
   if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
     DELETE_IF_NOT_NULL(ck_vbr_if);
@@ -3007,9 +3267,9 @@ upll_rc_t VbrIfMoMgr::GetMappedVbridges(
   }
   /* populate sw_vbridge set with vbridges mapped to the specified switch*/
   key_vbr_if_t *tkey = reinterpret_cast<key_vbr_if_t *>
-                       (ck_vbr_if->get_key());
+      (ck_vbr_if->get_key());
   key_vbr_t *vbr_key = reinterpret_cast<key_vbr_t *>
-                       (ConfigKeyVal::Malloc(sizeof(key_vbr_t)));
+      (ConfigKeyVal::Malloc(sizeof(key_vbr_t)));
   uuu::upll_strncpy(vbr_key->vbridge_name, tkey->vbr_key.vbridge_name,
                     (kMaxLenVnodeName + 1));
   uuu::upll_strncpy(vbr_key->vtn_key.vtn_name,
@@ -3025,13 +3285,13 @@ upll_rc_t VbrIfMoMgr::GetMappedVbridges(
 }
 
 upll_rc_t VbrIfMoMgr::GetBoundaryInterfaces(key_vnode_if_t boundary_if,
-                                          DalDmlIntf *dmi,
-                                          ConfigKeyVal *&iokey) {
+                                            DalDmlIntf *dmi,
+                                            ConfigKeyVal *&iokey) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   GetChildConfigKey(iokey, NULL);
   key_vnode_if *vnode_if_key = reinterpret_cast<key_vnode_if*>
-                                                (iokey->get_key());
+      (iokey->get_key());
   memcpy(vnode_if_key, &boundary_if, sizeof(key_vnode_if));
 
   /* Get all the vbridges under the VTN */
@@ -3042,12 +3302,12 @@ upll_rc_t VbrIfMoMgr::GetBoundaryInterfaces(key_vnode_if_t boundary_if,
 }
 
 upll_rc_t VbrIfMoMgr::SetBoundaryIfOperStatusforPathFault(
-             const set<key_vnode_if_t, key_vnode_if_compare> &boundary_if_set,
-             state_notification notification,
-             DalDmlIntf *dmi) {
+    const set<key_vnode_if_t, key_vnode_if_compare> &boundary_if_set,
+    state_notification notification,
+    DalDmlIntf *dmi) {
   set<key_vnode_if_t, key_vnode_if_compare>::iterator boundary_if_set_iter;
   set<key_vnode_if_t, key_vnode_if_compare>::iterator boundary_if_set_end =
-                                             boundary_if_set.end();
+      boundary_if_set.end();
   ConfigKeyVal *ck_boundary_if = NULL;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
@@ -3063,7 +3323,7 @@ upll_rc_t VbrIfMoMgr::SetBoundaryIfOperStatusforPathFault(
       return result_code;
     }
     while (ck_boundary_if != NULL) {
-      ConfigKeyVal *ckv_tmp = ck_boundary_if;    
+      ConfigKeyVal *ckv_tmp = ck_boundary_if;
       ck_boundary_if = ck_boundary_if->get_next_cfg_key_val();
       result_code = UpdateOperStatus(ckv_tmp, dmi, notification,
                                      true, false, false);
@@ -3089,16 +3349,16 @@ upll_rc_t VbrIfMoMgr::RestoreUnInitOPerStatus(DalDmlIntf *dmi) {
        count++) {
     if (key_type[count] == UNC_KT_VTN) {
       vtn_mgr = reinterpret_cast<VtnMoMgr *>
-                 (const_cast<MoManager *>(GetMoManager(key_type[count])));
+          (const_cast<MoManager *>(GetMoManager(key_type[count])));
       result_code = vtn_mgr->TxUpdateDtState(key_type[count], 0, 0, dmi);
     } else {
       vnode_mgr = reinterpret_cast<VnodeMoMgr *>
-                 (const_cast<MoManager *>(GetMoManager(key_type[count])));
-    result_code = vnode_mgr->TxUpdateDtState(key_type[count], 0, 0, dmi);
+          (const_cast<MoManager *>(GetMoManager(key_type[count])));
+      result_code = vnode_mgr->TxUpdateDtState(key_type[count], 0, 0, dmi);
     }
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("failed to update vnode oper status %d\n", result_code);
-     // DELETE_IF_NOT_NULL(ck_vnode_if);
+      // DELETE_IF_NOT_NULL(ck_vnode_if);
       return result_code;
     }
   }
index f3fc7938ba2045b809abd14b59c27c035181486c..a9b03600e403e5412b6688d08340ab201af5e851 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -13,6 +13,7 @@
 #include <string>
 #include <sstream>
 #include <set>
+#include <vector>
 #include "momgr_impl.hh"
 #include "vnode_child_momgr.hh"
 #include "vlink_momgr.hh"
@@ -21,10 +22,10 @@ namespace upll {
 namespace kt_momgr {
 
 #if 0
-enum vbr_if_numbers {
-  VBR_IF_1 = 0x80,
-  VBR_IF_2 = 0x40
-};
+  enum vbr_if_numbers {
+    VBR_IF_1 = 0x80,
+    VBR_IF_2 = 0x40
+  };
 #endif
 
 
@@ -33,397 +34,398 @@ enum vbr_if_numbers {
 #define INTERFACE_TYPE_BOUNDARY 0xC0
 #define INTERFACE_TYPE_LINKED 0x30
 
-enum if_type {
-  kUnboundInterface = 0x0,
-  kMappedInterface,
-  kBoundaryInterface,
-  kLinkedInterface 
-};
+  enum if_type {
+    kUnboundInterface = 0x0,
+    kMappedInterface,
+    kBoundaryInterface,
+    kLinkedInterface
+  };
 #endif
 
 
-/*TODO remove when including driver header file */
-typedef struct val_drv_vbr_if {
-  val_vbr_if_t            vbr_if_val;
-  uint8_t                 vex_name[32];
-  uint8_t                 vex_if_name[32];
-  uint8_t                 vex_link_name[32];
-  uint8_t                 valid[4];
-} val_drv_vbr_if_t;
-
-
-class VbrIfMoMgr : public VnodeChildMoMgr {
- private:
-  static unc_key_type_t vbr_if_child[];
-  static BindInfo       vbr_if_bind_info[];
-  static BindInfo       key_vbr_if_maintbl_bind_info[];
-
-  /* @brief      Returns admin and portmap information if portmap is 
-   *             valid. Else returns NULL for portmap 
-   *              
-   * @param[in]   ikey     Pointer to ConfigKeyVal
-   * @param[out]  valid_pm portmap is valid 
-   * @param[out]  pm       pointer to portmap informtation if valid_pm
-   *
-   * @retval  UPLL_RC_SUCCESS      Completed successfully.
-   * @retval  UPLL_RC_ERR_GENERIC  Generic failure.
-   * 
-   **/ 
-   virtual upll_rc_t GetPortMap(ConfigKeyVal *ikey, uint8_t &valid_pm,
-                                val_port_map_t *&pm, uint8_t &valid_admin,
-                                uint8_t &admin_status) {
-     UPLL_FUNC_TRACE;
-     if (ikey == NULL) return UPLL_RC_ERR_GENERIC; 
-     val_drv_vbr_if *drv_vbrif = reinterpret_cast<val_drv_vbr_if *>
-                                                (GetVal(ikey));
-     if (!drv_vbrif) {
-       UPLL_LOG_DEBUG("Invalid param");
-       return UPLL_RC_ERR_GENERIC;
-     }
-     val_vbr_if *ifval = &drv_vbrif->vbr_if_val;
-     valid_pm = ifval->valid[UPLL_IDX_PM_VBRI];
-     if (valid_pm == UNC_VF_VALID)
-       pm = &ifval->portmap;
-     else 
-       pm = NULL;
-     valid_admin = ifval->valid[UPLL_IDX_ADMIN_STATUS_VBRI]; 
-     admin_status = ifval->admin_status;
-     return UPLL_RC_SUCCESS;
-   }
-
-  /**
-   * @brief  Gets the valid array position of the variable in the value 
-   *         structure from the table in the specified configuration  
-   *
-   * @param[in]     val      pointer to the value structure 
-   * @param[in]     indx     database index for the variable
-   * @param[out]    valid    position of the variable in the valid array - 
-   *                          NULL if valid does not exist.
-   * @param[in]     dt_type  specifies the configuration
-   * @param[in]     tbl      specifies the table containing the given value 
-   *
-   **/
-   upll_rc_t GetValid(void *val, uint64_t indx, uint8_t *&valid,
-      upll_keytype_datatype_t dt_type, MoMgrTables tbl ) {
-    if (val == NULL) return UPLL_RC_ERR_GENERIC;
-    if (tbl == MAINTBL) {
-      switch (indx) {
-        case uudst::vbridge_interface::kDbiOperStatus:
-          valid = &(reinterpret_cast<val_vbr_if_st *>(val))->
-                                  valid[UPLL_IDX_OPER_STATUS_VBRIS];
-          break;
-        case uudst::vbridge_interface::kDbiDownCount:
-          valid = NULL;
-          break;
-        case uudst::vbridge_interface::kDbiAdminStatus:
-          valid = &(reinterpret_cast<val_vbr_if *>(val))->
-                                  valid[UPLL_IDX_ADMIN_STATUS_VBRI];
-          break;
-        case uudst::vbridge_interface::kDbiDesc:
-          valid = &(reinterpret_cast<val_vbr_if *>(val))->
-                                  valid[UPLL_IDX_DESC_VBRI];
-          break;
-        case uudst::vbridge_interface::kDbiValidPortMap:
-          valid = &(reinterpret_cast<val_vbr_if *>(val))->
-                                  valid[UPLL_IDX_PM_VBRI];
-          break;
-        case uudst::vbridge_interface::kDbiLogicalPortId:
-          valid = &(reinterpret_cast<val_vbr_if *>(val))->portmap.
-                                valid[UPLL_IDX_LOGICAL_PORT_ID_PM];
-          break;
-        case uudst::vbridge_interface::kDbiVlanId:
-          valid = &(reinterpret_cast<val_vbr_if *>(val))->portmap.
-                                valid[UPLL_IDX_VLAN_ID_PM];
-          break;
-        case uudst::vbridge_interface::kDbiTagged:
-          valid = &(reinterpret_cast<val_vbr_if *>(val))->portmap.
-                                valid[UPLL_IDX_TAGGED_PM];
-          break;
-        case uudst::vbridge_interface::kDbiVexName:
+  /*TODO remove when including driver header file */
+  typedef struct val_drv_vbr_if {
+    val_vbr_if_t            vbr_if_val;
+    uint8_t                 vex_name[32];
+    uint8_t                 vex_if_name[32];
+    uint8_t                 vex_link_name[32];
+    uint8_t                 valid[4];
+  } val_drv_vbr_if_t;
+
+
+  class VbrIfMoMgr : public VnodeChildMoMgr {
  private:
+    static unc_key_type_t vbr_if_child[];
+    static BindInfo       vbr_if_bind_info[];
+    static BindInfo       key_vbr_if_maintbl_bind_info[];
+
+    /* @brief      Returns admin and portmap information if portmap is
+     *             valid. Else returns NULL for portmap
+     *
+     * @param[in]   ikey     Pointer to ConfigKeyVal
+     * @param[out]  valid_pm portmap is valid
+     * @param[out]  pm       pointer to portmap informtation if valid_pm
+     *
+     * @retval  UPLL_RC_SUCCESS      Completed successfully.
+     * @retval  UPLL_RC_ERR_GENERIC  Generic failure.
+     *
+     **/
+    virtual upll_rc_t GetPortMap(ConfigKeyVal *ikey, uint8_t &valid_pm,
+                                 val_port_map_t *&pm, uint8_t &valid_admin,
+                                 uint8_t &admin_status) {
+      UPLL_FUNC_TRACE;
+      if (ikey == NULL) return UPLL_RC_ERR_GENERIC;
+      val_drv_vbr_if *drv_vbrif = reinterpret_cast<val_drv_vbr_if *>
+          (GetVal(ikey));
+      if (!drv_vbrif) {
+        UPLL_LOG_DEBUG("Invalid param");
+        return UPLL_RC_ERR_GENERIC;
+      }
+      val_vbr_if *ifval = &drv_vbrif->vbr_if_val;
+      valid_pm = ifval->valid[UPLL_IDX_PM_VBRI];
+      if (valid_pm == UNC_VF_VALID)
+        pm = &ifval->portmap;
+      else
+        pm = NULL;
+      valid_admin = ifval->valid[UPLL_IDX_ADMIN_STATUS_VBRI];
+      admin_status = ifval->admin_status;
+      return UPLL_RC_SUCCESS;
+    }
+
+    /**
+     * @brief  Gets the valid array position of the variable in the value
+     *         structure from the table in the specified configuration
+     *
+     * @param[in]     val      pointer to the value structure
+     * @param[in]     indx     database index for the variable
+     * @param[out]    valid    position of the variable in the valid array -
+     *                          NULL if valid does not exist.
+     * @param[in]     dt_type  specifies the configuration
+     * @param[in]     tbl      specifies the table containing the given value
+     *
+     **/
+    upll_rc_t GetValid(void *val, uint64_t indx, uint8_t *&valid,
+                       upll_keytype_datatype_t dt_type, MoMgrTables tbl ) {
+      if (val == NULL) return UPLL_RC_ERR_GENERIC;
+      if (tbl == MAINTBL) {
+        switch (indx) {
+          case uudst::vbridge_interface::kDbiOperStatus:
+            valid = &(reinterpret_cast<val_vbr_if_st *>(val))->
+                valid[UPLL_IDX_OPER_STATUS_VBRIS];
+            break;
+          case uudst::vbridge_interface::kDbiDownCount:
+            valid = NULL;
+            break;
+          case uudst::vbridge_interface::kDbiAdminStatus:
+            valid = &(reinterpret_cast<val_vbr_if *>(val))->
+                valid[UPLL_IDX_ADMIN_STATUS_VBRI];
+            break;
+          case uudst::vbridge_interface::kDbiDesc:
+            valid = &(reinterpret_cast<val_vbr_if *>(val))->
+                valid[UPLL_IDX_DESC_VBRI];
+            break;
+          case uudst::vbridge_interface::kDbiValidPortMap:
+            valid = &(reinterpret_cast<val_vbr_if *>(val))->
+                valid[UPLL_IDX_PM_VBRI];
+            break;
+          case uudst::vbridge_interface::kDbiLogicalPortId:
+            valid = &(reinterpret_cast<val_vbr_if *>(val))->portmap.
+                valid[UPLL_IDX_LOGICAL_PORT_ID_PM];
+            break;
+          case uudst::vbridge_interface::kDbiVlanId:
+            valid = &(reinterpret_cast<val_vbr_if *>(val))->portmap.
+                valid[UPLL_IDX_VLAN_ID_PM];
+            break;
+          case uudst::vbridge_interface::kDbiTagged:
+            valid = &(reinterpret_cast<val_vbr_if *>(val))->portmap.
+                valid[UPLL_IDX_TAGGED_PM];
+            break;
+          case uudst::vbridge_interface::kDbiVexName:
             valid = &(reinterpret_cast<val_drv_vbr_if_t *>(val))->
-                                valid[PFCDRV_IDX_VEXT_NAME_VBRIF];
-          break;
-        case uudst::vbridge_interface::kDbiVexIfName:
+                valid[PFCDRV_IDX_VEXT_NAME_VBRIF];
+            break;
+          case uudst::vbridge_interface::kDbiVexIfName:
             valid = &(reinterpret_cast<val_drv_vbr_if_t *>(val))->
-                                valid[PFCDRV_IDX_VEXTIF_NAME_VBRIF];
-          break;
-        case uudst::vbridge_interface::kDbiVexLinkName:
+                valid[PFCDRV_IDX_VEXTIF_NAME_VBRIF];
+            break;
+          case uudst::vbridge_interface::kDbiVexLinkName:
             valid = &(reinterpret_cast<val_drv_vbr_if_t *>(val))->
-                                valid[PFCDRV_IDX_VLINK_NAME_VBRIF];
-          break;
-        default:
-          return UPLL_RC_ERR_GENERIC;
+                valid[PFCDRV_IDX_VLINK_NAME_VBRIF];
+            break;
+          default:
+            return UPLL_RC_ERR_GENERIC;
+        }
       }
+      return UPLL_RC_SUCCESS;
     }
-    return UPLL_RC_SUCCESS;
-  }
-
-  /**
-   * @brief  Filters the attributes which need not be sent to controller
-   *
-   * @param[in/out]  val1   first record value instance.
-   * @param[in]      val2   second record value instance.
-   * @param[in]      audit  Not used for VTN
-   * @param[in]      op     Operation to be performed
-   *
-   **/
-  bool FilterAttributes(void *&val1, void *val2, bool audit_status,
-                                unc_keytype_operation_t op);
-  /**
-   * @brief  Compares the valid value between two database records.
-   *        if both the values are same, update the valid flag for 
-   *        corresponding attribute as invalid in the first record. 
-   *
-   * @param[in/out]  val1   first record value instance.
-   * @param[in]      val2   second record value instance.
-   * @param[in]      audit  if true, CompareValidValue called from audit process.
-   *
-   **/
-  bool CompareValidValue(void *&val1, void *val2, bool audit);
-
-  upll_rc_t UpdateConfigStatus(ConfigKeyVal *req,
-                               unc_keytype_operation_t op,
-                               uint32_t driver_result,
-                               ConfigKeyVal *upd_key,
-                               DalDmlIntf   *dmi,
-                               ConfigKeyVal *ctrlr_key = NULL);
-  /**
-   * @Brief  Validates the syntax of the specified key and value structure
-   *         for KT_VBR_IF keytype
-   *
-   * @param[in]  req    This structure contains IpcReqRespHeader
-   *                    (first 8 fields of input request structure).
-   * @param[in]  ikey   ikey contains key and value structure.
-   *
-   * @retval  UPLL_RC_SUCCESS                Successful.
-   * @retval  UPLL_RC_ERR_CFG_SYNTAX         Syntax error.
-   * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE   key_vbr_if is not available.
-   * @retval  UPLL_RC_ERR_GENERIC            Generic failure.
-   * @retval  UPLL_RC_ERR_INVALID_OPTION1    option1 is not valid.
-   * @retval  UPLL_RC_ERR_INVALID_OPTION2    option2 is not valid.
-   */
-
-  upll_rc_t ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *ikey);
-
-   /**
+
+    /**
+     * @brief  Filters the attributes which need not be sent to controller
+     *
+     * @param[in/out]  val1   first record value instance.
+     * @param[in]      val2   second record value instance.
+     * @param[in]      audit  Not used for VTN
+     * @param[in]      op     Operation to be performed
+     *
+     **/
+    bool FilterAttributes(void *&val1, void *val2, bool audit_status,
+                          unc_keytype_operation_t op);
+    /**
+     * @brief  Compares the valid value between two database records.
+     *              if both the values are same, update the valid flag for
+     *              corresponding attribute as invalid in the first record.
+     *
+     * @param[in/out]  val1   first record value instance.
+     * @param[in]      val2   second record value instance.
+     * @param[in]      audit  if true, CompareValidValue called from audit process.
+     *
+     **/
+    bool CompareValidValue(void *&val1, void *val2, bool audit);
+
+    upll_rc_t UpdateConfigStatus(ConfigKeyVal *req,
+                                 unc_keytype_operation_t op,
+                                 uint32_t driver_result,
+                                 ConfigKeyVal *upd_key,
+                                 DalDmlIntf   *dmi,
+                                 ConfigKeyVal *ctrlr_key = NULL);
+    /**
+     * @Brief  Validates the syntax of the specified key and value structure
+     *         for KT_VBR_IF keytype
+     *
+     * @param[in]  req    This structure contains IpcReqRespHeader
+     *                    (first 8 fields of input request structure).
+     * @param[in]  ikey   ikey contains key and value structure.
+     *
+     * @retval  UPLL_RC_SUCCESS                Successful.
+     * @retval  UPLL_RC_ERR_CFG_SYNTAX         Syntax error.
+     * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE   key_vbr_if is not available.
+     * @retval  UPLL_RC_ERR_GENERIC            Generic failure.
+     * @retval  UPLL_RC_ERR_INVALID_OPTION1    option1 is not valid.
+     * @retval  UPLL_RC_ERR_INVALID_OPTION2    option2 is not valid.
+     */
+
+    upll_rc_t ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *ikey);
+
+    /**
      * @brief  Update config status for commit result and vote result.
      *
      * @param[in/out]  ckv_running  ConfigKeyVal instance.
      * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
      * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
+     * @param[in]      dmi          Pointer to the DalDmlIntf(DB Interface)
+     **/
+    upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
+                                      uuc::UpdateCtrlrPhase phase,
+                                      ConfigKeyVal *&ckv_running,
+                                      DalDmlIntf *dmi);
+
+    /**
+     * @Brief  Checks if the specified key type(KT_VBR_IF) and
+     *         associated attributes are supported on the given controller,
+     *         based on the valid flag
+     *
+     * @param[in]  req              This structure contains IpcReqRespHeader
+     *                              (first 8 fields of input request structure).
+     * @param[in]  ikey             ikey contains key and value structure.
+     * @param[in]  ctrlr_name       Controller id associated with ikey.
+     *
+     * @retval  UPLL_RC_SUCCESS        Validation succeeded.
+     * @retval  UPLL_RC_ERR_GENERIC    Validation failure.
+     * @retval  UPLL_RC_ERR_INVALID_OPTION1   Option1 is not valid.
+     * @retval  UPLL_RC_ERR_INVALID_OPTION2   Option2 is not valid.
+     */
+    upll_rc_t ValidateCapability(IpcReqRespHeader *req,
+                                 ConfigKeyVal *ikey, const char *ctrlr_name);
+
+    /**
+     * @Brief  Validates the syntax for KT_VBR_IF keytype value structure.
+     *
+     * @param[in]  val_vbr_if  KT_VBR_IF value structure.
+     * @param[in]  operation  Operation type.
+     *
+     * @retval  UPLL_RC_SUCCESS         validation succeeded.
+     * @retval  UPLL_RC_ERR_CFG_SYNTAX  validation failed.
+     */
+    upll_rc_t  ValidateVbrIfValue(val_vbr_if *vbr_if_val,
+                                  unc_keytype_operation_t operation);
+
+    /**
+     * @Brief  Validates the syntax of the specified value structure
+     *         for KT_VBR_IF keytype
+     * @param[in]  val_vtn_neighbor  vtn neighbor value structure
+     * @param[in]  operation   operation type.
+     *
+     * @retval  UPLL_RC_SUCCESS            Successful.
+     * @retval  UPLL_RC_ERR_CFG_SYNTAX     Syntax error.
+     *
+     */
+    upll_rc_t ValidateVtnNeighborValue(val_vtn_neighbor *vtn_neighbor,
+                                       unc_keytype_operation_t operation);
+
+    /**
+     * @Brief  Checks if the specified key type and
+     *         associated attributes are supported on the given controller,
+     *         based on the valid flag.
+     *
+     * @param[in]  attrs           Pointer to controller attribute.
+     * @param[in]  ikey            Corresponding key and value structure.
+     * @param[in]  operation       Operation name.
+     * @param[in]  dt_type         Data type name
      *
+     * @retval  UPLL_RC_SUCCESS                     validation succeeded.
+     * @retval  UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT  Instance count limit is exceeds.
+     * @retval  UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR  Attribute Not_Supported.
+     * @retval  UPLL_RC_ERR_GENERIC                 Generic failure.
+     */
+    upll_rc_t ValVbrIfAttributeSupportCheck(const uint8_t *attrs,
+                                            ConfigKeyVal *ikey,
+                                            unc_keytype_operation_t operation,
+                                            upll_keytype_datatype_t dt_type);
+
+    /**
+     * @Brief  Checks if the specified key type and
+     *         associated attributes are supported on the given controller,
+     *         based on the valid flag.
+     *
+     * @param[in]  crtlr_name      Controller name.
+     * @param[in]  ikey            Corresponding key and value structure.
+     *
+     * @retval  UPLL_RC_SUCCESS                     validation succeeded.
+     * @retval  UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT  Instance count limit is exceeds.
+     * @retval  UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR  Attribute Not_Supported.
+     * @retval  UPLL_RC_ERR_GENERIC                 Generic failure.
+     */
+    upll_rc_t ValVtnNeighborAttributeSupportCheck(const char *ctrlr_name,
+                                                  ConfigKeyVal *ikey);
+
+    /**
+     * @brief  Perform Semantic Check to check Different vbridges
+     *          contain same switch-id and vlan-id
+     *
+     * @param[in]      ikey        ConfigKeyVal
+     * @param[in]      upll_rc_t   UPLL_RC_ERR_CFG_SEMANTIC on error
+     *                                UPLL_RC_SUCCESS on success
      **/
-  upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
-                                     uuc::UpdateCtrlrPhase phase,
-                                     ConfigKeyVal *&ckv_running);
-
-  /**
-   * @Brief  Checks if the specified key type(KT_VBR_IF) and
-   *         associated attributes are supported on the given controller,
-   *         based on the valid flag
-   *
-   * @param[in]  req              This structure contains IpcReqRespHeader
-   *                              (first 8 fields of input request structure).
-   * @param[in]  ikey             ikey contains key and value structure.
-   * @param[in]  ctrlr_name       Controller id associated with ikey.
-   *
-   * @retval  UPLL_RC_SUCCESS        Validation succeeded.
-   * @retval  UPLL_RC_ERR_GENERIC    Validation failure.
-   * @retval  UPLL_RC_ERR_INVALID_OPTION1   Option1 is not valid.
-   * @retval  UPLL_RC_ERR_INVALID_OPTION2   Option2 is not valid.
-   */
-  upll_rc_t ValidateCapability(IpcReqRespHeader *req,
-               ConfigKeyVal *ikey, const char *ctrlr_name);
-
-  /**
-   * @Brief  Validates the syntax for KT_VBR_IF keytype value structure.
-   *
-   * @param[in]  val_vbr_if  KT_VBR_IF value structure.
-   * @param[in]  operation  Operation type.
-   * 
-   * @retval  UPLL_RC_SUCCESS         validation succeeded.
-   * @retval  UPLL_RC_ERR_CFG_SYNTAX  validation failed.
-   */
-  upll_rc_t  ValidateVbrIfValue(val_vbr_if *vbr_if_val,
-                                unc_keytype_operation_t operation);
-
-  /**
-   * @Brief  Validates the syntax of the specified value structure
-   *         for KT_VBR_IF keytype
-   * @param[in]  val_vtn_neighbor  vtn neighbor value structure
-   * @param[in]  operation   operation type.
-   *
-   * @retval  UPLL_RC_SUCCESS            Successful.
-   * @retval  UPLL_RC_ERR_CFG_SYNTAX     Syntax error.
-   *
-   */
-  upll_rc_t ValidateVtnNeighborValue(val_vtn_neighbor *vtn_neighbor,
-      unc_keytype_operation_t operation);
-
-  /**
-   * @Brief  Checks if the specified key type and
-   *         associated attributes are supported on the given controller,
-   *         based on the valid flag.
-   *
-   * @param[in]  attrs           Pointer to controller attribute.    
-   * @param[in]  ikey            Corresponding key and value structure.
-   * @param[in]  operation       Operation name.
-   * @param[in]  dt_type         Data type name
-   *
-   * @retval  UPLL_RC_SUCCESS                     validation succeeded.
-   * @retval  UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT  Instance count limit is exceeds.
-   * @retval  UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR  Attribute Not_Supported.
-   * @retval  UPLL_RC_ERR_GENERIC                 Generic failure.
-   */
-  upll_rc_t ValVbrIfAttributeSupportCheck(const uint8_t *attrs, 
-                                          ConfigKeyVal *ikey, 
-                                          unc_keytype_operation_t operation,
-                                          upll_keytype_datatype_t dt_type);
-                                                
-  /**
-   * @Brief  Checks if the specified key type and
-   *         associated attributes are supported on the given controller,
-   *         based on the valid flag.
-   *
-   * @param[in]  crtlr_name      Controller name.
-   * @param[in]  ikey            Corresponding key and value structure.
-   *
-   * @retval  UPLL_RC_SUCCESS                     validation succeeded.
-   * @retval  UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT  Instance count limit is exceeds.
-   * @retval  UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR  Attribute Not_Supported.
-   * @retval  UPLL_RC_ERR_GENERIC                 Generic failure.
-   */
-  upll_rc_t ValVtnNeighborAttributeSupportCheck(const char *ctrlr_name,
-      ConfigKeyVal *ikey);
-
-   /**
-   * @brief  Perform Semantic Check to check Different vbridges 
-   *          contain same switch-id and vlan-id
-   *
-   * @param[in]      ikey        ConfigKeyVal
-   * @param[in]      upll_rc_t   UPLL_RC_ERR_CFG_SEMANTIC on error
-   *                                UPLL_RC_SUCCESS on success
-   **/
-    upll_rc_t ValidateAttribute(ConfigKeyVal *kval, 
+    upll_rc_t ValidateAttribute(ConfigKeyVal *kval,
                                 DalDmlIntf *dmi,
                                 IpcReqRespHeader *req = NULL);
-  /**
-     * @brief  Allocates for the specified val in the given configuration in the     * specified table.   
+    /**
+     * @brief  Allocates for the specified val in the given configuration in the     * specified table.
      *
-     * @param[in]  ck_val   Reference pointer to configval structure allocated.      * @param[in]  dt_type  specifies the configuration candidate/running/state 
-     * @param[in]  tbl      specifies if the corresponding table is the  main 
+     * @param[in]  ck_val   Reference pointer to configval structure allocated.      * @param[in]  dt_type  specifies the configuration candidate/running/state
+     * @param[in]  tbl      specifies if the corresponding table is the  main
      *                      table / controller table or rename table.
      *
      * @retval     UPLL_RC_SUCCESS      Successfull completion.
      * @retval     UPLL_RC_ERR_GENERIC  Failure case.
      **/
-  upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
-      MoMgrTables tbl = MAINTBL);
-  /* Rename */
-  bool GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo,
-       int &nattr, MoMgrTables tbl);
-  upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey,
-                            ConfigKeyVal *ikey);
+    upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
+                       MoMgrTables tbl = MAINTBL);
+    /* Rename */
+    bool GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo,
+                              int &nattr, MoMgrTables tbl);
+    upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey,
+                              ConfigKeyVal *ikey);
+
+    /* @brief     To convert the value structure read from DB to
+     *            VTNService during READ operations
+     * @param[in/out] ikey      Pointer to the ConfigKeyVal Structure
+     *
+     * @retval  UPLL_RC_SUCCESS                    Completed successfully.
+     * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
+     *
+     **/
+    upll_rc_t AdaptValToVtnService(ConfigKeyVal *ikey);
+
+   public:
+    VbrIfMoMgr();
+    virtual ~VbrIfMoMgr() {
+      for (int i = 0; i < ntable; i++)
+        if (table[i]) {
+          delete table[i];
+        }
+      delete[] table;
+    }
 
-  /* @brief     To convert the value structure read from DB to 
-   *            VTNService during READ operations
-   * @param[in/out] ikey      Pointer to the ConfigKeyVal Structure             
-   * 
-   * @retval  UPLL_RC_SUCCESS                    Completed successfully.
-   * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
-   *
-   **/
-  upll_rc_t AdaptValToVtnService(ConfigKeyVal *ikey);
-
- public:
-  VbrIfMoMgr();
-  virtual ~VbrIfMoMgr() {
-    for (int i = 0; i < ntable; i++)
-      if (table[i]) {
-        delete table[i];
-      }
-    delete[] table;
-  }
-
-  /* @brief         Updates vbrif structure with vexternal information
-   *                based on valid[PORTMAP] flag.
-   *
-   * @param[in/out] ikey     Pointer to the ConfigKeyVal Structure
-   * @param[in]     datatype DB type.
-   * @param[in]     dmi      Pointer to the DalDmlIntf(DB Interface)
-   *
-   * @retval  UPLL_RC_SUCCESS                    Completed successfully.
-   * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
-   *
-   **/
-  upll_rc_t UpdateConfigVal(ConfigKeyVal *ikey,
-                            upll_keytype_datatype_t datatype,
-                            DalDmlIntf *dmi);
-
-  /* @brief         Updates vbrif portmap structure 
-   *                based on valid[PORTMAP] flag.
-   *
-   * @param[in]     db_key          Pointer to the ConfigKeyVal structure in db
-   * @param[in]     datatype        DB type.
-   * @param[in]     dmi             Pointer to the DalDmlIntf(DB Interface)
-   * @param[in]     ikey            Pointer to input ConfigKeyVal
-   *
-   * @retval  UPLL_RC_SUCCESS                    Completed successfully.
-   * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
-   *
-   **/
-  upll_rc_t UpdatePortMap(ConfigKeyVal *db_key,
+    /* @brief         Updates vbrif structure with vexternal information
+     *                based on valid[PORTMAP] flag.
+     *
+     * @param[in/out] ikey     Pointer to the ConfigKeyVal Structure
+     * @param[in]     datatype DB type.
+     * @param[in]     dmi      Pointer to the DalDmlIntf(DB Interface)
+     *
+     * @retval  UPLL_RC_SUCCESS                    Completed successfully.
+     * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
+     *
+     **/
+    upll_rc_t UpdateConfigVal(ConfigKeyVal *ikey,
+                              upll_keytype_datatype_t datatype,
+                              DalDmlIntf *dmi);
+
+    /* @brief         Updates vbrif portmap structure
+     *                based on valid[PORTMAP] flag.
+     *
+     * @param[in]     db_key          Pointer to the ConfigKeyVal structure in db
+     * @param[in]     datatype        DB type.
+     * @param[in]     dmi             Pointer to the DalDmlIntf(DB Interface)
+     * @param[in]     ikey            Pointer to input ConfigKeyVal
+     *
+     * @retval  UPLL_RC_SUCCESS                    Completed successfully.
+     * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
+     *
+     **/
+    upll_rc_t UpdatePortMap(ConfigKeyVal *db_key,
                             upll_keytype_datatype_t datatype,
                             DalDmlIntf *dmi,
                             ConfigKeyVal *ikey);
 
-  /**
-   * @brief      Method used to Update the Values in the specified key type.
-   *
-   * @param[in]  req                        contains first 8 fields of input request structure
-   * @param[in]  ikey                       key and value structure
-   * @param[in]  dmi                        Pointer to DalDmlIntf Class.
-   *
-   * @retval     UPLL_RC_SUCCESS            Successfull completion.
-   * @retval     UPLL_RC_ERR_GENERIC        Failure case.
-   */
-  upll_rc_t UpdateMo(IpcReqRespHeader *req,
-                             ConfigKeyVal *ikey,
-                             DalDmlIntf *dmi);
-  /**
-    * @brief      Method to check if individual portions of a key are valid
-    *
-    * @param[in/out]  ikey                 pointer to ConfigKeyVal referring to a UNC resource
-    * @param[in]      index                db index associated with the variable
-    *
-    * @retval         true                 input key is valid
-    * @retval         false                input key is invalid.
-    **/
-  bool IsValidKey(void *tkey, uint64_t index);
-
-  upll_rc_t GetVexternal(ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type, 
-     DalDmlIntf *dmi, uint8_t *vexternal, uint8_t *vex_if,
-     InterfacePortMapInfo &flag);
+    /**
+     * @brief      Method used to Update the Values in the specified key type.
+     *
+     * @param[in]  req                        contains first 8 fields of input request structure
+     * @param[in]  ikey                       key and value structure
+     * @param[in]  dmi                        Pointer to DalDmlIntf Class.
+     *
+     * @retval     UPLL_RC_SUCCESS            Successfull completion.
+     * @retval     UPLL_RC_ERR_GENERIC        Failure case.
+     */
+    upll_rc_t UpdateMo(IpcReqRespHeader *req,
+                       ConfigKeyVal *ikey,
+                       DalDmlIntf *dmi);
+    /**
+     * @brief      Method to check if individual portions of a key are valid
+     *
+     * @param[in/out]  ikey                 pointer to ConfigKeyVal referring to a UNC resource
+     * @param[in]      index                db index associated with the variable
+     *
+     * @retval         true                 input key is valid
+     * @retval         false                input key is invalid.
+     **/
+    bool IsValidKey(void *tkey, uint64_t index);
+
+    upll_rc_t GetVexternal(ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
+                           DalDmlIntf *dmi, uint8_t *vexternal, uint8_t *vex_if,
+                           InterfacePortMapInfo &flag);
 #if 0
-  /**
-   * @brief Returns success if member of Boundary vlink
-   *
-   * @param[in]       ck_vbrif         ConfigKeyVal of the vbrif
-   * @param[in]       dt_type        Configuration type 
-   * @param[in/out]   ck_vlink       ConfigKeyVal of the vlink key formed
-   * @param[in]       dmi            DB Connection
-   * @param[out]      upll_rc_t      UPLL_RC_SUCCESS if member
-   *                                 UPLL_RC_ERR_NO_SUCH_INSTANCE if not 
-   *                                 UPLL_RC_SUCCESS on success
-   *
-   */
-  upll_rc_t CheckIfMemberOfBoundaryVlink(ConfigKeyVal *ck_vbrif, 
-                                 upll_keytype_datatype_t dt_type,
-                                 ConfigKeyVal *&ck_vlink,
-                                 DalDmlIntf *dmi);
+    /**
+     * @brief Returns success if member of Boundary vlink
+     *
+     * @param[in]       ck_vbrif         ConfigKeyVal of the vbrif
+     * @param[in]       dt_type        Configuration type
+     * @param[in/out]   ck_vlink       ConfigKeyVal of the vlink key formed
+     * @param[in]       dmi            DB Connection
+     * @param[out]      upll_rc_t      UPLL_RC_SUCCESS if member
+     *                                 UPLL_RC_ERR_NO_SUCH_INSTANCE if not
+     *                                 UPLL_RC_SUCCESS on success
+     *
+     */
+    upll_rc_t CheckIfMemberOfBoundaryVlink(ConfigKeyVal *ck_vbrif,
+                                           upll_keytype_datatype_t dt_type,
+                                           ConfigKeyVal *&ck_vlink,
+                                           DalDmlIntf *dmi);
 #endif
-  /**
-     * @brief  Duplicates the input configkeyval including the key and val.  
+    /**
+     * @brief  Duplicates the input configkeyval including the key and val.
      * based on the tbl specified.
      *
      * @param[in]  okey   Output Configkeyval - allocated within the function
@@ -433,172 +435,178 @@ class VbrIfMoMgr : public VnodeChildMoMgr {
      * @retval         UPLL_RC_SUCCESS      Successfull completion.
      * @retval         UPLL_RC_ERR_GENERIC  Failure case.
      **/
-  upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey,
-      ConfigKeyVal *&req, MoMgrTables tbl = MAINTBL);
-  upll_rc_t GetMappedVbridges(const char* ctrlr_id, const char *domain_id,
-                              std::string logportid, DalDmlIntf *dmi,
-                              set<key_vnode_type_t,key_vnode_type_compare>*sw_vbridge_set);
-  /* create mo has to handle vex creation */
-
-  /**
-   * @Brief  Validates the syntax for KT_VBR_IF Keytype key structure.
-   *
-   * @param[in]  key_vbr_if  KT_VBR_IF key structure.
-   * @param[in]  operation operation type.
-   *
-   * @retval  UPLL_RC_SUCCESS         validation succeeded.
-   * @retval  UPLL_RC_ERR_CFG_SYNTAX  validation failed.
-   */
-  upll_rc_t ValidateVbrifKey(key_vbr_if *vbr_if_key, 
-                           unc_keytype_operation_t operation = UNC_OP_INVALID);
-
-
-  /* @brief         This is semantic check for KEY_VBR_IF key type
-   *                in the update operation.
-   *
-   * @param[in/out] ikey     Pointer to the ConfigKeyVal Structure
-   * @param[in]     datatype DB type.
-   * @param[in]     dmi      Pointer to the DalDmlIntf(DB Interface)
-   *
-   * @retval  UPLL_RC_SUCCESS                    Completed successfully.
-   * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
-   *
-   **/
-
-
-  upll_rc_t IsReferenced(ConfigKeyVal *ikey,
-                         upll_keytype_datatype_t dt_type,
-                         DalDmlIntf *dmi);
-
-  upll_rc_t CreateAuditMoImpl(ConfigKeyVal *ikey,
-                       DalDmlIntf *dmi, const char *ctrlr_id);
-  upll_rc_t updateVbrIf(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey, DalDmlIntf *dmi);
-  upll_rc_t ConverttoDriverPortMap(ConfigKeyVal *ck_port_map);
-/**
-    * @brief      Method to get a configkeyval of a specified keytype from an input configkeyval
-    *
-    * @param[in/out]  okey                 pointer to output ConfigKeyVal 
-    * @param[in]      parent_key           pointer to the configkeyval from which the output 
-    *                                      configkey val is initialized.
-    *
-    * @retval         UPLL_RC_SUCCESS      Successfull completion.
-    * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-    */
-  upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey,
-                      ConfigKeyVal *parent_key);
-
-
-  upll_rc_t GetVbrIfValfromDB(ConfigKeyVal *ikey,
-                              ConfigKeyVal *&ck_drv_vbr_if,
-                              upll_keytype_datatype_t dt_type,
-                              DalDmlIntf *dmi);
-  /**
-   * @brief  update controller candidate configuration with the difference in
-   *      committed configuration between the UNC and the audited controller
-   *
-   * @param[in]  keytype     Specifies the keytype.
-   * @param[in]  ctrlr_id    Specifies the controller Name.
-   * @param[in]  session_id  Ipc client session id.
-   * @param[in]  config_id   Ipc request header config id.
-   * @param[in]  phase       Specifies the Controller name.
-   * @param[in]  dmi         Pointer to DalDmlIntf class.
-   *
-   * @retval  UPLL_RC_SUCCESS                    Request successfully processed.
-   * @retval  UPLL_RC_ERR_GENERIC                Generic error.
-   * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource is diconnected.
-   * @retval  UPLL_RC_ERR_DB_ACCESS              DBMS access failure.
-   * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Instance specified does not exist.
-   * @retval  UPLL_RC_ERR_INSTANCE_EXISTS        Instance specified already exist.
-   */
-  upll_rc_t AuditUpdateController(unc_key_type_t keytype,
-                                          const char *ctrlr_id,
-                                          uint32_t session_id,
-                                          uint32_t config_id,
-                                          uuc::UpdateCtrlrPhase phase,
-                                          bool *ctrlr_affected,
-                                          DalDmlIntf *dmi);
-  
-  upll_rc_t GetVbrIfFromVExternal(uint8_t *vtn_name,
-                                  uint8_t *vext_name,
-                                  ConfigKeyVal *&tmpckv,
-                                  DalDmlIntf *dmi) ;
-
-/**
-   * @brief  Update controller with the new created / updated / deleted configuration
-   *                   between the Candidate and the Running configuration
-   *
-   * @param[in]  keytype                        Specifies the keytype
-   * @param[in]  session_id                     Ipc client session id
-   * @param[in]  config_id                      Ipc request header config id
-   * @param[in]  phase                          Specifies the operation
-   * @param[in]  dmi                            Pointer to DalDmlIntf class.
-   * @param[out] affected_ctrlr_set             Returns the list of controller to
-   *                                             which the command has been delivered.
-   *
-   * @retval  UPLL_RC_SUCCESS                    Request successfully processed.
-   * @retval  UPLL_RC_ERR_GENERIC                Generic error.
-   * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource is diconnected.
-   * @retval  UPLL_RC_ERR_DB_ACCESS              DBMS access failure.
-   * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Instance specified does not exist.
-   * @retval  UPLL_RC_ERR_INSTANCE_EXISTS        Instance specified already exist.
-   */
-   upll_rc_t TxUpdateController(unc_key_type_t keytype,
-                                uint32_t session_id, uint32_t config_id,
-                                uuc::UpdateCtrlrPhase phase,
-                                set<string> *affected_ctrlr_set,
+    upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey,
+                              ConfigKeyVal *&req, MoMgrTables tbl = MAINTBL);
+    upll_rc_t GetMappedVbridges(const char* ctrlr_id,
+                                const char *domain_id,
+                                std::string logportid,
                                 DalDmlIntf *dmi,
-                                ConfigKeyVal **err_ckv);
+                                set<key_vnode_type_t,
+                                key_vnode_type_compare>*sw_vbridge_set);
+    /* create mo has to handle vex creation */
 
-   upll_rc_t PortStatusHandler(const char *ctrlr_name, 
-                               const char *domain_name, 
-                               const char *portid, 
-                               bool oper_status, 
-                               DalDmlIntf *dmi);
+    /**
+     * @Brief  Validates the syntax for KT_VBR_IF Keytype key structure.
+     *
+     * @param[in]  key_vbr_if  KT_VBR_IF key structure.
+     * @param[in]  operation operation type.
+     *
+     * @retval  UPLL_RC_SUCCESS         validation succeeded.
+     * @retval  UPLL_RC_ERR_CFG_SYNTAX  validation failed.
+     */
+    upll_rc_t ValidateVbrifKey(key_vbr_if *vbr_if_key,
+                               unc_keytype_operation_t operation =
+                               UNC_OP_INVALID);
 
-/**
-    * @brief      Method to get a configkeyval of the parent keytype 
-    *
-    * @param[in/out]  okey           pointer to parent ConfigKeyVal 
-    * @param[in]      ikey           pointer to the child configkeyval from 
-    * which the parent configkey val is obtained.
-    *
-    * @retval         UPLL_RC_SUCCESS      Successfull completion.
-    * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-    **/
-  upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey,
-      ConfigKeyVal *parent_key);
-  upll_rc_t IsLogicalPortAndVlanIdInUse(ConfigKeyVal *ckv,
-                                                  DalDmlIntf *dmi,
-                                                  IpcReqRespHeader *req);
-  upll_rc_t PathFaultHandler(const char *ctrlr_name,
-                        const char *domain_id,
-                        std::vector<std::string> &ingress_ports,
-                        std::vector<std::string> &egress_ports,
-                        bool alarm_asserted,
-                        DalDmlIntf *dmi);
-  upll_rc_t GetBoundaryInterfaces(key_vnode_if_t boundary_if,
-                                DalDmlIntf *dmi,
-                                ConfigKeyVal *&ikey);
+
+    /* @brief         This is semantic check for KEY_VBR_IF key type
+     *                in the update operation.
+     *
+     * @param[in/out] ikey     Pointer to the ConfigKeyVal Structure
+     * @param[in]     datatype DB type.
+     * @param[in]     dmi      Pointer to the DalDmlIntf(DB Interface)
+     *
+     * @retval  UPLL_RC_SUCCESS                    Completed successfully.
+     * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
+     *
+     **/
+
+
+    upll_rc_t IsReferenced(ConfigKeyVal *ikey,
+                           upll_keytype_datatype_t dt_type,
+                           DalDmlIntf *dmi);
+
+    upll_rc_t CreateAuditMoImpl(ConfigKeyVal *ikey,
+                                DalDmlIntf *dmi, const char *ctrlr_id);
+    upll_rc_t updateVbrIf(IpcReqRespHeader *req,
+                          ConfigKeyVal *ikey, DalDmlIntf *dmi);
+    upll_rc_t ConverttoDriverPortMap(ConfigKeyVal *ck_port_map,
+                                     DalDmlIntf *dmi);
+    /**
+     * @brief      Method to get a configkeyval of a specified keytype from an input configkeyval
+     *
+     * @param[in/out]  okey                 pointer to output ConfigKeyVal
+     * @param[in]      parent_key           pointer to the configkeyval from which the output
+     *                                      configkey val is initialized.
+     *
+     * @retval         UPLL_RC_SUCCESS      Successfull completion.
+     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+     */
+    upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey,
+                                ConfigKeyVal *parent_key);
+
+
+    upll_rc_t GetVbrIfValfromDB(ConfigKeyVal *ikey,
+                                ConfigKeyVal *&ck_drv_vbr_if,
+                                upll_keytype_datatype_t dt_type,
+                                DalDmlIntf *dmi);
+    /**
+     * @brief  update controller candidate configuration with the difference in
+     *      committed configuration between the UNC and the audited controller
+     *
+     * @param[in]  keytype     Specifies the keytype.
+     * @param[in]  ctrlr_id    Specifies the controller Name.
+     * @param[in]  session_id  Ipc client session id.
+     * @param[in]  config_id   Ipc request header config id.
+     * @param[in]  phase       Specifies the Controller name.
+     * @param[in]  dmi         Pointer to DalDmlIntf class.
+     *
+     * @retval  UPLL_RC_SUCCESS                    Request successfully processed.
+     * @retval  UPLL_RC_ERR_GENERIC                Generic error.
+     * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource is diconnected.
+     * @retval  UPLL_RC_ERR_DB_ACCESS              DBMS access failure.
+     * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Instance specified does not exist.
+     * @retval  UPLL_RC_ERR_INSTANCE_EXISTS        Instance specified already exist.
+     */
+    upll_rc_t AuditUpdateController(unc_key_type_t keytype,
+                                    const char *ctrlr_id,
+                                    uint32_t session_id,
+                                    uint32_t config_id,
+                                    uuc::UpdateCtrlrPhase phase,
+                                    DalDmlIntf *dmi,
+                                    ConfigKeyVal **err_ckv,
+                                    KTxCtrlrAffectedState *ctrlr_affected);
+
+    upll_rc_t GetVbrIfFromVExternal(uint8_t *vtn_name,
+                                    uint8_t *vext_name,
+                                    ConfigKeyVal *&tmpckv,
+                                    DalDmlIntf *dmi);
+
+    /**
+     * @brief  Update controller with the new created / updated / deleted configuration
+     *                   between the Candidate and the Running configuration
+     *
+     * @param[in]  keytype                        Specifies the keytype
+     * @param[in]  session_id                     Ipc client session id
+     * @param[in]  config_id                      Ipc request header config id
+     * @param[in]  phase                          Specifies the operation
+     * @param[in]  dmi                            Pointer to DalDmlIntf class.
+     * @param[out] affected_ctrlr_set             Returns the list of controller to
+     *                                             which the command has been delivered.
+     *
+     * @retval  UPLL_RC_SUCCESS                    Request successfully processed.
+     * @retval  UPLL_RC_ERR_GENERIC                Generic error.
+     * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource is diconnected.
+     * @retval  UPLL_RC_ERR_DB_ACCESS              DBMS access failure.
+     * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Instance specified does not exist.
+     * @retval  UPLL_RC_ERR_INSTANCE_EXISTS        Instance specified already exist.
+     */
+    upll_rc_t TxUpdateController(unc_key_type_t keytype,
+                                 uint32_t session_id, uint32_t config_id,
+                                 uuc::UpdateCtrlrPhase phase,
+                                 set<string> *affected_ctrlr_set,
+                                 DalDmlIntf *dmi,
+                                 ConfigKeyVal **err_ckv);
+
+    upll_rc_t PortStatusHandler(const char *ctrlr_name,
+                                const char *domain_name,
+                                const char *portid,
+                                bool oper_status,
+                                DalDmlIntf *dmi);
 
     /**
-    * @brief      Method to set the operstatus of boundary interfaces
-    *             and corresponding parent elements 
-    *
-    * @param[in]    boundary_if_set  set containing all the boundary interfaces
-    * @param[in]    notification     pathfault/pathfaultreset notification 
-    * @param[in]    dmi              Pointer to DalDmlIntf class 
-    * 
-    *
-    * @retval         UPLL_RC_SUCCESS      Success.
-    * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-    **/
-  upll_rc_t SetBoundaryIfOperStatusforPathFault(
-                        const set<key_vnode_if_t, key_vnode_if_compare> &boundary_if_set,
-                        state_notification notification,
-                        DalDmlIntf *dmi);
-  upll_rc_t RestoreUnInitOPerStatus(DalDmlIntf *dmi);
-};
+     * @brief      Method to get a configkeyval of the parent keytype
+     *
+     * @param[in/out]  okey           pointer to parent ConfigKeyVal
+     * @param[in]      ikey           pointer to the child configkeyval from
+     * which the parent configkey val is obtained.
+     *
+     * @retval         UPLL_RC_SUCCESS      Successfull completion.
+     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+     **/
+    upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey,
+                                 ConfigKeyVal *parent_key);
+    upll_rc_t IsLogicalPortAndVlanIdInUse(ConfigKeyVal *ckv,
+                                          DalDmlIntf *dmi,
+                                          IpcReqRespHeader *req);
+    upll_rc_t PathFaultHandler(const char *ctrlr_name,
+                               const char *domain_id,
+                               std::vector<std::string> &ingress_ports,
+                               std::vector<std::string> &egress_ports,
+                               bool alarm_asserted,
+                               DalDmlIntf *dmi);
+    upll_rc_t GetBoundaryInterfaces(key_vnode_if_t boundary_if,
+                                    DalDmlIntf *dmi,
+                                    ConfigKeyVal *&ikey);
+
+    /**
+     * @brief      Method to set the operstatus of boundary interfaces
+     *             and corresponding parent elements
+     *
+     * @param[in]    boundary_if_set  set containing all the boundary interfaces
+     * @param[in]    notification     pathfault/pathfaultreset notification
+     * @param[in]    dmi              Pointer to DalDmlIntf class
+     *
+     *
+     * @retval         UPLL_RC_SUCCESS      Success.
+     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+     **/
+    upll_rc_t SetBoundaryIfOperStatusforPathFault(
+        const set<key_vnode_if_t, key_vnode_if_compare> &boundary_if_set,
+        state_notification notification,
+        DalDmlIntf *dmi);
+    upll_rc_t RestoreUnInitOPerStatus(DalDmlIntf *dmi);
+  };
 
 }  // namespace kt_momgr
 }  // namespace upll
index 892f8545a444515de63d3cdf6a982466bac81ff4..bb434b7de7b8a0dd3a237986f45f09defac55eb5 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -32,7 +32,7 @@ namespace kt_momgr {
 #define SET_FLAG_PORTMAP 0x20
 #define SET_FLAG_VLINK 0x40
 #define SET_FLAG_VLINK_PORTMAP 0x80
-#define SET_FLAG_NO_VLINK_PORTMAP ~SET_FLAG_VLINK_PORTMAP
+#define SET_FLAG_NO_VLINK_PORTMAP 0x9F
 
 BindInfo VbrIfPolicingMapMoMgr::vbrifpolicingmap_bind_info[] = {
   { uudst::vbr_if_policingmap::kDbiVtnName, CFG_KEY,
@@ -96,9 +96,12 @@ VbrIfPolicingMapMoMgr::VbrIfPolicingMapMoMgr() : MoMgrImpl() {
   table = new Table *[ntable];
 
   // For Main Table
-  table[MAINTBL] = new Table(uudst::kDbiVbrIfPolicingMapTbl,
-      UNC_KT_VBRIF_POLICINGMAP, vbrifpolicingmap_bind_info,
-      IpctSt::kIpcStKeyVbrIf, IpctSt::kIpcStValPolicingmap,
+  table[MAINTBL] = new Table(
+      uudst::kDbiVbrIfPolicingMapTbl,
+      UNC_KT_VBRIF_POLICINGMAP,
+      vbrifpolicingmap_bind_info,
+      IpctSt::kIpcStKeyVbrIf,
+      IpctSt::kIpcStValPolicingmap,
       uudst::vbr_if_policingmap::kDbiVbrIfPolicingMapNumCols);
 
   /* For Rename Table*/
@@ -109,7 +112,6 @@ VbrIfPolicingMapMoMgr::VbrIfPolicingMapMoMgr() : MoMgrImpl() {
 
   nchild = 0;
   child = NULL;
-  cur_instance_count = 0;
 }
 
 upll_rc_t VbrIfPolicingMapMoMgr::RestorePOMInCtrlTbl(
@@ -125,25 +127,25 @@ upll_rc_t VbrIfPolicingMapMoMgr::RestorePOMInCtrlTbl(
     return UPLL_RC_ERR_GENERIC;
   }
   if (tbl != MAINTBL ||
-       (ikey->get_key_type() != UNC_KT_VBRIF_POLICINGMAP)) {
+      (ikey->get_key_type() != UNC_KT_VBRIF_POLICINGMAP)) {
     UPLL_LOG_DEBUG("Ignoring  ktype/Table kt=%d, tbl=%d",
-                    ikey->get_key_type(), tbl);
+                   ikey->get_key_type(), tbl);
     return result_code;
   }
 
   val_policingmap_t *val_pm = reinterpret_cast<val_policingmap_t *>
-    (GetVal(ikey));
+      (GetVal(ikey));
   if (NULL == val_pm) {
     UPLL_LOG_DEBUG(" Value structure is NULL");
     return UPLL_RC_ERR_GENERIC;
   }
   if (UNC_VF_VALID == val_pm->valid[UPLL_IDX_POLICERNAME_PM]) {
     result_code = UpdateRefCountInPPCtrlr(ikey, dt_type, dmi,
-                                        UNC_OP_CREATE);
+                                          UNC_OP_CREATE);
     if (UPLL_RC_SUCCESS != result_code) {
       if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
         UPLL_LOG_DEBUG("Failed to update PolicingProfile in CtrlrTbl err %d",
-          result_code);
+                       result_code);
         return result_code;
       }
     }
@@ -153,7 +155,8 @@ upll_rc_t VbrIfPolicingMapMoMgr::RestorePOMInCtrlTbl(
 
 upll_rc_t VbrIfPolicingMapMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
                                                    ConfigKeyVal *ikey,
-                                                   DalDmlIntf *dmi) {
+                                                   DalDmlIntf *dmi,
+                                                   bool restore_flag) {
   UPLL_FUNC_TRACE;
   if (NULL == ikey || NULL == req || NULL == dmi) {
     UPLL_LOG_DEBUG("CreateCandidateMo Failed. Insufficient input parameters");
@@ -166,26 +169,33 @@ upll_rc_t VbrIfPolicingMapMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
   pfcdrv_val_vbrif_policingmap *pfc_val_import = NULL;
   UPLL_LOG_DEBUG("datatype (%d)", req->datatype);
   if (req->datatype == UPLL_DT_IMPORT) {
-    if (ikey->get_cfg_val() && (ikey->get_cfg_val()->get_st_num() == IpctSt::kIpcStPfcdrvValVbrifPolicingmap)) {
+    if (ikey->get_cfg_val() && (ikey->get_cfg_val()->get_st_num() ==
+                                IpctSt::kIpcStPfcdrvValVbrifPolicingmap)) {
       UPLL_LOG_TRACE("ikey = %s", ikey->ToStrAll().c_str());
-      UPLL_LOG_TRACE("val struct num (%d)",ikey->get_cfg_val()->get_st_num());
-      pfc_val_import = reinterpret_cast<pfcdrv_val_vbrif_policingmap *>(ikey->get_cfg_val()->get_val());
-      if (pfc_val_import->valid[PFCDRV_IDX_VAL_POLICINGMAP_PM] == UNC_VF_VALID) {
+      UPLL_LOG_TRACE("val struct num (%d)", ikey->get_cfg_val()->get_st_num());
+      pfc_val_import = reinterpret_cast<pfcdrv_val_vbrif_policingmap *>
+          (ikey->get_cfg_val()->get_val());
+      if (pfc_val_import->valid[PFCDRV_IDX_VAL_POLICINGMAP_PM] ==
+          UNC_VF_VALID) {
         val_import = reinterpret_cast<val_policingmap_t *>
             (ConfigKeyVal::Malloc(sizeof(val_policingmap_t)));
-        memcpy(val_import, &pfc_val_import->val_policing_map, sizeof(val_policingmap_t));
+        memcpy(val_import, &pfc_val_import->val_policing_map,
+               sizeof(val_policingmap_t));
         UPLL_LOG_DEBUG("policer name (%s)", val_import->policer_name);
         ikey->SetCfgVal(NULL);
-        ikey->SetCfgVal(new ConfigVal(IpctSt::kIpcStValPolicingmap, val_import));
+        ikey->SetCfgVal(new ConfigVal(IpctSt::kIpcStValPolicingmap,
+                                      val_import));
       }
     }
   }
   UPLL_LOG_TRACE("%s ikey PRINT", ikey->ToStrAll().c_str());
-  // validate syntax and semantics
-  result_code = ValidateMessage(req, ikey);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_INFO("ValidateMessage Err (%d)", result_code);
-    return result_code;
+  if (!restore_flag) {
+    // validate syntax and semantics
+    result_code = ValidateMessage(req, ikey);
+    if (result_code != UPLL_RC_SUCCESS) {
+      pfc_log_error("ValidateMessage Err (%d)", result_code);
+      return result_code;
+    }
   }
   result_code = ValidateAttribute(ikey, dmi, req);
   if (result_code != UPLL_RC_SUCCESS) {
@@ -194,41 +204,18 @@ upll_rc_t VbrIfPolicingMapMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
   }
 
   ConfigKeyVal *okey = NULL;
-  ConfigKeyVal *tmp_key = NULL;
 
   result_code = GetControllerId(ikey, okey, req->datatype, dmi);
   if (UPLL_RC_SUCCESS != result_code) {
+    if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+      result_code = UPLL_RC_ERR_PARENT_DOES_NOT_EXIST;
+    }
     UPLL_LOG_DEBUG("GetControllerId failed %d", result_code);
     return result_code;
   }
 
   GET_USER_DATA_CTRLR(okey, ctrlr_id);
-  UPLL_LOG_TRACE("ctrlrid %s", ctrlr_id); 
-
-  result_code = GetChildConfigKey(tmp_key, NULL);
-  if (UPLL_RC_SUCCESS != result_code) {
-    DELETE_IF_NOT_NULL(okey);
-    UPLL_LOG_DEBUG("GetChildConfigKey failed:%d", result_code);
-    return result_code;
-  }
-
-
-  // Check VBRIF object existence in VbrIfPolicingMap CANDIDATE DB
-  // if record exists, return the error code
-  result_code = IsReferenced(ikey, req->datatype, dmi);
-  if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
-    UPLL_LOG_DEBUG("CreateCandidateMo Object exists in CANDIDATE DB (%d)",
-                   result_code);
-    DELETE_IF_NOT_NULL(okey);
-    return result_code;
-  } else if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-    UPLL_LOG_DEBUG("CreateCandidateMo Instance Available");
-  } else if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("CreateCandidateMo Error Accesing CANDIDATE DB (%d)",
-                   result_code);
-    DELETE_IF_NOT_NULL(okey);
-    return result_code;
-  }
+  UPLL_LOG_TRACE("ctrlrid %s", ctrlr_id);
 
   val_policingmap_t *val_pm = reinterpret_cast<val_policingmap_t *>
       (GetVal(ikey));
@@ -252,64 +239,55 @@ upll_rc_t VbrIfPolicingMapMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
     }
   }
 
-  // Check if Object exists in RUNNING DB and move it to CANDIDATE DB
-  if (req->datatype == UPLL_DT_CANDIDATE) {
-    result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dmi,
-                                 MAINTBL);
-    if ((result_code != UPLL_RC_ERR_INSTANCE_EXISTS) &&
-        (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE)) {
-      UPLL_LOG_DEBUG(" Is Exist check operation failed: err code(%d)",
-                   result_code);
-      DELETE_IF_NOT_NULL(okey);
-      return result_code;
-    }
-    if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
-      result_code = RestoreChildren(ikey, req->datatype, UPLL_DT_RUNNING, dmi);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("Restore Operation Failed, err %d", result_code);
-        DELETE_IF_NOT_NULL(okey);
+  if (!restore_flag) {
+    if (UPLL_DT_CANDIDATE == req->datatype) {
+      result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dmi,
+                                   MAINTBL);
+      if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
+        UPLL_LOG_DEBUG("Key instance exist");
+        if ((ikey)->get_cfg_val()) {
+          UPLL_LOG_DEBUG("Read Key with Value struct");
+          DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
+            kOpInOutFlag | kOpInOutCtrlr | kOpInOutDomain };
+          result_code = ReadConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dbop,
+                                     dmi, MAINTBL);
+          if (UPLL_RC_SUCCESS != result_code &&
+              UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+            UPLL_LOG_DEBUG("ReadConfigDB Failed %d",  result_code);
+          }
+          if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code)  {
+            return UPLL_RC_ERR_CFG_SEMANTIC;
+          }
+        } else  {
+          result_code = UPLL_RC_SUCCESS;
+        }
+        if (UPLL_RC_SUCCESS == result_code) {
+          result_code = RestoreChildren(ikey,
+                                        req->datatype,
+                                        UPLL_DT_RUNNING,
+                                        dmi,
+                                        req);
+          UPLL_LOG_DEBUG("Restore Children returns %d", result_code);
+          return result_code;
+        }
+      } else if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+        UPLL_LOG_DEBUG("UpdateConfigDB Failed %d", result_code);
         return result_code;
       }
-    DELETE_IF_NOT_NULL(okey);
-    return result_code;
     }
-  }
-
-  result_code = GetInstanceCount(tmp_key, reinterpret_cast<char*>(ctrlr_id),
-                                 req->datatype,
-                                 &cur_instance_count,
-                                 dmi, MAINTBL);
-  DELETE_IF_NOT_NULL(tmp_key);
-  if(result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("GetInstanceCount Failed:Err code-%d",
-                   result_code);
-    DELETE_IF_NOT_NULL(okey);
-    return result_code;
+  } else {
+    result_code = UPLL_RC_ERR_NO_SUCH_INSTANCE;
   }
 
   // Capability Check
-  result_code = ValidateCapability(req, ikey, reinterpret_cast<char *>(ctrlr_id));
+  result_code = ValidateCapability(req, ikey, reinterpret_cast<char *>
+                                   (ctrlr_id));
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("Key not supported by controller");
     DELETE_IF_NOT_NULL(okey);
     return result_code;
   }
 
-  if (UNC_VF_VALID == val_pm->valid[UPLL_IDX_POLICERNAME_PM]) {
-    // 1)Get vbrif associated ctrlr name and invoke the PP and PPE functions to
-    // check the refcount capability and update the refcount or create the
-    // record in policingprofilectrltbl and policingprofileentryctrltbl.
-    // 2)Create the record in policingprofileentryctrltbl
-    result_code = UpdateRefCountInPPCtrlr(ikey, req->datatype, dmi,
-                                          UNC_OP_CREATE);
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("UpdateRefCountInPPCtrlr Err in CANDIDATE DB(%d)",
-                     result_code);
-      DELETE_IF_NOT_NULL(okey);
-      return result_code;
-    }
-  }
-
   // create a record in vbrifpolicingmap table CANDIDATE DB
   VbrIfMoMgr *mgrvbrif =
       reinterpret_cast<VbrIfMoMgr *>(const_cast<MoManager *>(GetMoManager(
@@ -343,7 +321,6 @@ upll_rc_t VbrIfPolicingMapMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
 
   result_code = mgrvbrif->GetVexternal(ckv, req->datatype, dmi,
                                        vexternal, vex_if, flags);
-  DELETE_IF_NOT_NULL(ckv);
   FREE_IF_NOT_NULL(vexternal);
   FREE_IF_NOT_NULL(vex_if);
   if (UPLL_RC_SUCCESS != result_code) {
@@ -351,6 +328,53 @@ upll_rc_t VbrIfPolicingMapMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
     DELETE_IF_NOT_NULL(okey);
     return result_code;
   }
+
+  /* VlanmapOnBoundary: vbr_if_flowfilter is not allowed on
+   * vbr interface of boundary vlink which is SW or SD mapped */
+  VlinkMoMgr *vlink_mgr =
+      reinterpret_cast<VlinkMoMgr *>(const_cast<MoManager*>(GetMoManager(
+                  UNC_KT_VLINK)));
+  if (!vlink_mgr) {
+    UPLL_LOG_DEBUG("vlink_mgr is Fail");
+    DELETE_IF_NOT_NULL(ckv);
+    return UPLL_RC_ERR_GENERIC;
+  }
+  ConfigKeyVal *ck_vlink = NULL;
+  vn_if_type   iftype;
+  /* Verifies whether the requested vbridge interface is boundary
+   * vlinked with logical port id is SW or SD. If it is part of SW or SD
+   * boundary linked, cannot configure policing map in that vbridge interface*/
+  result_code =  vlink_mgr->CheckIfMemberOfVlink(ckv, req->datatype,
+                                                 ck_vlink, dmi, iftype);
+  if (result_code == UPLL_RC_SUCCESS) {
+    unc_key_type_t ktype1;
+    if (iftype == kVlinkBoundaryNode1) {
+      UPLL_LOG_DEBUG("iftype is kVlinkBoundaryNode1");
+      ktype1 = vlink_mgr->GetVlinkVnodeIfKeyType(ck_vlink, 0);
+      if (ktype1 == UNC_KT_VBR_VLANMAP) {
+        UPLL_LOG_DEBUG("iftype is kVlinkBoundaryNode1 And "
+                       "ktype is UNC_KT_VBR_VLANMAP");
+        DELETE_IF_NOT_NULL(ckv);
+        return UPLL_RC_ERR_CFG_SEMANTIC;
+      }
+    } else if (iftype == kVlinkBoundaryNode2) {
+      UPLL_LOG_DEBUG("iftype is kVlinkBoundaryNode2");
+      ktype1 = vlink_mgr->GetVlinkVnodeIfKeyType(ck_vlink, 1);
+      if (ktype1 == UNC_KT_VBR_VLANMAP) {
+        UPLL_LOG_DEBUG("iftype is kVlinkBoundaryNode2 And "
+                       "ktype is UNC_KT_VBR_VLANMAP");
+        DELETE_IF_NOT_NULL(ckv);
+        return UPLL_RC_ERR_CFG_SEMANTIC;
+      }
+    }
+  } else if (result_code != UPLL_RC_SUCCESS &&
+            result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+    DELETE_IF_NOT_NULL(ckv);
+    UPLL_LOG_DEBUG("CheckIfMemberOfVlink is Fail");
+    return result_code;
+  }
+  /* If its not member of vlink continue below steps */
+  DELETE_IF_NOT_NULL(ckv);
   UPLL_LOG_DEBUG("GetVexternal flag %d", flags);
   uint8_t flag_port_map = 0;
   GET_USER_DATA_FLAGS(ikey, flag_port_map);
@@ -367,6 +391,27 @@ upll_rc_t VbrIfPolicingMapMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
 
   UPLL_LOG_DEBUG("flag_port_map %d", flag_port_map);
   SET_USER_DATA_FLAGS(ikey, flag_port_map);
+
+  if (UNC_VF_VALID == val_pm->valid[UPLL_IDX_POLICERNAME_PM]) {
+    // Update the controller reference count for policing profile if portmap is
+    // configured.
+    // 1)Get vbrif associated ctrlr name and invoke the PP and PPE functions to
+    // check the refcount capability and update the refcount or create the
+    // record in policingprofilectrltbl and policingprofileentryctrltbl.
+    // 2)Create the record in policingprofileentryctrltbl
+
+    if (flag_port_map & SET_FLAG_PORTMAP) {
+      result_code = UpdateRefCountInPPCtrlr(ikey, req->datatype, dmi,
+                                            UNC_OP_CREATE);
+      if (UPLL_RC_SUCCESS != result_code) {
+        UPLL_LOG_DEBUG("Err while updating the policingprofile ctrlr"
+                       "table(%d)",
+                       result_code);
+        DELETE_IF_NOT_NULL(okey);
+        return result_code;
+      }
+    }
+  }
   DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
     kOpInOutFlag|kOpInOutCtrlr|kOpInOutDomain };
   result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_CREATE,
@@ -384,7 +429,8 @@ upll_rc_t VbrIfPolicingMapMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
 }
 
 upll_rc_t VbrIfPolicingMapMoMgr::DeleteMo(IpcReqRespHeader *req,
-                                          ConfigKeyVal *ikey, DalDmlIntf *dmi) {
+                                          ConfigKeyVal *ikey,
+                                          DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
 
@@ -410,7 +456,7 @@ upll_rc_t VbrIfPolicingMapMoMgr::DeleteMo(IpcReqRespHeader *req,
     UPLL_LOG_DEBUG("DeleteMo Instance Available");
   } else if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("DeleteMo IsReferenced Error accessing DB (%d)",
-        result_code);
+                   result_code);
     return result_code;
   }
 
@@ -426,7 +472,7 @@ upll_rc_t VbrIfPolicingMapMoMgr::DeleteMo(IpcReqRespHeader *req,
     return result_code;
   }
   DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
-                   kOpInOutCtrlr | kOpInOutDomain };
+    kOpInOutCtrlr | kOpInOutDomain | kOpInOutFlag};
   result_code = ReadConfigDB(okey, req->datatype, UNC_OP_READ, dbop, dmi,
                              MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
@@ -435,14 +481,18 @@ upll_rc_t VbrIfPolicingMapMoMgr::DeleteMo(IpcReqRespHeader *req,
     return result_code;
   }
   val_policingmap_t *val_pm = reinterpret_cast<val_policingmap_t *>
-    (GetVal(okey));
+      (GetVal(okey));
   if (UNC_VF_VALID == val_pm->valid[UPLL_IDX_POLICERNAME_PM]) {
-    result_code = UpdateRefCountInPPCtrlr(okey, req->datatype, dmi,
-                                          UNC_OP_DELETE);
-    if (UPLL_RC_SUCCESS != result_code) {
-      DELETE_IF_NOT_NULL(okey); 
-      UPLL_LOG_DEBUG("UpdateRefCountInPPCtrlr Error DB (%d)", result_code);
-      return result_code;
+    uint8_t flag_port_map = 0;
+    GET_USER_DATA_FLAGS(okey, flag_port_map);
+    if (flag_port_map & SET_FLAG_PORTMAP) {
+      result_code = UpdateRefCountInPPCtrlr(okey, req->datatype, dmi,
+                                            UNC_OP_DELETE);
+      if (UPLL_RC_SUCCESS != result_code) {
+        DELETE_IF_NOT_NULL(okey);
+        UPLL_LOG_DEBUG("UpdateRefCountInPPCtrlr Error DB (%d)", result_code);
+        return result_code;
+      }
     }
   }
 
@@ -451,17 +501,18 @@ upll_rc_t VbrIfPolicingMapMoMgr::DeleteMo(IpcReqRespHeader *req,
                                MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("DeleteMo Failed. UpdateConfigdb failed to delete - %d",
-                  result_code);
-    DELETE_IF_NOT_NULL(okey); 
+                   result_code);
+    DELETE_IF_NOT_NULL(okey);
     return result_code;
   }
-  DELETE_IF_NOT_NULL(okey); 
+  DELETE_IF_NOT_NULL(okey);
   UPLL_LOG_DEBUG("DeleteMo Success");
   return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t VbrIfPolicingMapMoMgr::UpdateMo(IpcReqRespHeader *req,
-                                          ConfigKeyVal *ikey, DalDmlIntf *dmi) {
+                                          ConfigKeyVal *ikey,
+                                          DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   if (NULL == ikey || NULL == req || NULL == dmi) {
     UPLL_LOG_TRACE("UpdateMo ikey and req NULL");
@@ -476,40 +527,10 @@ upll_rc_t VbrIfPolicingMapMoMgr::UpdateMo(IpcReqRespHeader *req,
     return result_code;
   }
 
-  result_code = SetRenameFlag(ikey, dmi, req);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG(" SetRenameFlag failed %d", result_code);
-    return result_code;
-  }
-
-  ConfigKeyVal *okey = NULL;
-  result_code = GetControllerId(ikey, okey, req->datatype, dmi);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("GetControllerId failed %d", result_code);
-    return result_code;
-  }
-  delete okey;
-  okey = NULL;
-
-  // Check VBRIF object existence in VbrIfPolicingMap CANDIDATE DB
-  // If record not exists, return error
-  result_code = IsReferenced(ikey, req->datatype, dmi);
-  if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-    UPLL_LOG_TRACE("UpdateMo IsReferenced record not available (%d)",
-        result_code);
-    return result_code;
-  } else if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
-    UPLL_LOG_TRACE("UpdateMo IsReferenced record available");
-  } else if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_TRACE("UpdateMo IsReferenced error accessing DB (%d)",
-        result_code);
-    return result_code;
-  }
-
   // Check vbrif Policingmap object exists in PolicingProfileTbl CANDIDATE DB
   // If record not exists, return error code
   val_policingmap_t *val_ival = reinterpret_cast<val_policingmap_t *>
-    (GetVal(ikey));
+      (GetVal(ikey));
   if (UNC_VF_VALID == val_ival->valid[UPLL_IDX_POLICERNAME_PM]) {
     result_code = IsPolicyProfileReferenced(ikey, req->datatype, dmi,
                                             UNC_OP_READ);
@@ -537,9 +558,9 @@ upll_rc_t VbrIfPolicingMapMoMgr::UpdateMo(IpcReqRespHeader *req,
     return result_code;
   }
   DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
-                   kOpInOutCtrlr|kOpInOutDomain };
+    kOpInOutCtrlr|kOpInOutDomain };
   result_code = ReadConfigDB(tmpckv, req->datatype, UNC_OP_READ, dbop, dmi,
-      MAINTBL);
+                             MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     DELETE_IF_NOT_NULL(tmpckv);
     UPLL_LOG_DEBUG("ReadConfigDB failed");
@@ -550,7 +571,8 @@ upll_rc_t VbrIfPolicingMapMoMgr::UpdateMo(IpcReqRespHeader *req,
   SET_USER_DATA_CTRLR(ikey, ctrlr_id);
 
   // Capability Check
-  result_code = ValidateCapability(req, ikey, reinterpret_cast<char*>(ctrlr_id));
+  result_code = ValidateCapability(req, ikey, reinterpret_cast<char*>
+                                   (ctrlr_id));
   if (result_code != UPLL_RC_SUCCESS) {
     DELETE_IF_NOT_NULL(tmpckv);
     UPLL_LOG_DEBUG("Key not supported by controller");
@@ -558,50 +580,50 @@ upll_rc_t VbrIfPolicingMapMoMgr::UpdateMo(IpcReqRespHeader *req,
   }
 
   val_policingmap_t *val_tmp_val = reinterpret_cast<val_policingmap_t *>
-    (GetVal(tmpckv));
+      (GetVal(tmpckv));
   if (UNC_VF_VALID == val_ival->valid[UPLL_IDX_POLICERNAME_PM] &&
       UNC_VF_VALID == val_tmp_val->valid[UPLL_IDX_POLICERNAME_PM]) {
     UPLL_LOG_DEBUG(" Policer name valid in DB and ikey");
     result_code = UpdateRefCountInPPCtrlr(tmpckv, req->datatype, dmi,
-        UNC_OP_DELETE);
+                                          UNC_OP_DELETE);
     if (UPLL_RC_SUCCESS != result_code) {
       DELETE_IF_NOT_NULL(tmpckv);
       UPLL_LOG_DEBUG("UpdateMo UpdateRefCountInPPCtrlr error in delete (%d)",
-          result_code);
+                     result_code);
       return result_code;
     }
 
     result_code = UpdateRefCountInPPCtrlr(ikey, req->datatype, dmi,
-        UNC_OP_CREATE);
+                                          UNC_OP_CREATE);
     if (UPLL_RC_SUCCESS != result_code) {
       DELETE_IF_NOT_NULL(tmpckv);
       UPLL_LOG_DEBUG("UpdateMo UpdateRefCountInPPCtrlr error in create (%d)",
-          result_code);
+                     result_code);
       return result_code;
     }
   } else if ((UNC_VF_VALID_NO_VALUE == val_tmp_val->
-      valid[UPLL_IDX_POLICERNAME_PM] ||
-      UNC_VF_INVALID == val_tmp_val->valid[UPLL_IDX_POLICERNAME_PM])&&
-      UNC_VF_VALID == val_ival->valid[UPLL_IDX_POLICERNAME_PM]) {
+              valid[UPLL_IDX_POLICERNAME_PM] ||
+              UNC_VF_INVALID == val_tmp_val->valid[UPLL_IDX_POLICERNAME_PM])&&
+             UNC_VF_VALID == val_ival->valid[UPLL_IDX_POLICERNAME_PM]) {
     UPLL_LOG_DEBUG(" Policer name valid in ikey and validnovalue in DB");
     result_code = UpdateRefCountInPPCtrlr(ikey, req->datatype, dmi,
-        UNC_OP_CREATE);
+                                          UNC_OP_CREATE);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("UpdateMo UpdateRefCountInPPCtrlr error in create (%d)",
-          result_code);
+                     result_code);
       DELETE_IF_NOT_NULL(tmpckv);
       return result_code;
     }
   } else if (UNC_VF_VALID == val_tmp_val->valid[UPLL_IDX_POLICERNAME_PM] &&
-      UNC_VF_VALID_NO_VALUE == val_ival->
-      valid[UPLL_IDX_POLICERNAME_PM]) {
+             UNC_VF_VALID_NO_VALUE == val_ival->
+             valid[UPLL_IDX_POLICERNAME_PM]) {
     UPLL_LOG_DEBUG(" Policer name validnovalue in ikey and valid in db");
     result_code = UpdateRefCountInPPCtrlr(tmpckv, req->datatype, dmi,
-        UNC_OP_DELETE);
+                                          UNC_OP_DELETE);
     if (UPLL_RC_SUCCESS != result_code) {
       DELETE_IF_NOT_NULL(tmpckv);
       UPLL_LOG_DEBUG("UpdateMo UpdateRefCountInPPCtrlr error in create (%d)",
-          result_code);
+                     result_code);
       return result_code;
     }
   }
@@ -610,12 +632,12 @@ upll_rc_t VbrIfPolicingMapMoMgr::UpdateMo(IpcReqRespHeader *req,
   uint8_t temp_flag = 0;
   GET_USER_DATA_FLAGS(ikey, temp_flag);
   UPLL_LOG_DEBUG("Flag in ikey: %d", temp_flag);
-  DbSubOp dbop1 = {kOpNotRead, kOpMatchNone, kOpInOutFlag};
+  DbSubOp dbop1 = {kOpNotRead, kOpMatchNone, kOpInOutNone};
   result_code = UpdateConfigDB(ikey, req->datatype, req->operation, dmi,
                                &dbop1, MAINTBL);
   DELETE_IF_NOT_NULL(tmpckv);
   UPLL_LOG_TRACE("VtnPolicingMapMoMgr::UpdateMo update record status (%d)",
-                result_code);
+                 result_code);
 
   return result_code;
 }
@@ -629,7 +651,12 @@ upll_rc_t VbrIfPolicingMapMoMgr::IsReferenced(ConfigKeyVal *ikey,
   DbSubOp dbop = { kOpReadExist, kOpMatchNone, kOpInOutNone };
 
   // Check the VBRIF PM object existence in vbrifpolicingmap
-  result_code = UpdateConfigDB(ikey, dt_type, UNC_OP_READ, dmi, &dbop, MAINTBL);
+  result_code = UpdateConfigDB(ikey,
+                               dt_type,
+                               UNC_OP_READ,
+                               dmi,
+                               &dbop,
+                               MAINTBL);
   UPLL_LOG_TRACE("IsReferenced (%d)", result_code);
   return result_code;
 }
@@ -637,60 +664,8 @@ upll_rc_t VbrIfPolicingMapMoMgr::IsReferenced(ConfigKeyVal *ikey,
 upll_rc_t VbrIfPolicingMapMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
                                                    DalDmlIntf *dmi,
                                                    IpcReqRespHeader *req) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-
-  ConfigKeyVal *okey = NULL;
-  if (!ikey || !ikey->get_key()) {
-    UPLL_LOG_DEBUG("input key is null");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  key_vbr_if_t *key_vbrif_pm =
-      reinterpret_cast<key_vbr_if_t *>(ikey->get_key());
-
-  MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>
-      (const_cast<MoManager *>(GetMoManager(UNC_KT_VBR_IF)));
-
-  result_code = mgr->GetChildConfigKey(okey, NULL);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("GetChildConfigKey failed for KT_VBR_IF key struct - %d",
-                    result_code);
-    return result_code;
-  }
-
-  key_vbr_if_t *vbrif_key =
-      reinterpret_cast<key_vbr_if_t *>(okey->get_key());
-
-  uuu::upll_strncpy(vbrif_key->vbr_key.vtn_key.vtn_name,
-        key_vbrif_pm->vbr_key.vtn_key.vtn_name,
-        kMaxLenVtnName + 1);
-
-    uuu::upll_strncpy(vbrif_key->vbr_key.vbridge_name,
-        key_vbrif_pm->vbr_key.vbridge_name,
-        kMaxLenVtnName + 1);
-
-    uuu::upll_strncpy(vbrif_key->if_name,
-        key_vbrif_pm->if_name,
-        kMaxLenInterfaceName + 1);
-
-  /* Checks the given vbr_if exists or not */
-  result_code = mgr->UpdateConfigDB(okey, req->datatype, UNC_OP_READ,
-                                    dmi, MAINTBL);
-  if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
-    UPLL_LOG_DEBUG(" Parent VBRIF key does not exists");
-    result_code = UPLL_RC_ERR_PARENT_DOES_NOT_EXIST;
-  } else {
-    result_code = UPLL_RC_SUCCESS;
-  }
-  delete okey;
-
-  result_code = SetRenameFlag(ikey, dmi, req);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("SetRenameFlag failed %d", result_code);
-    return result_code;
-  }
-  UPLL_LOG_DEBUG("ValidateAttribute Successfull.");
-  return result_code;
+  // No operation
+  return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t VbrIfPolicingMapMoMgr::IsPolicyProfileReferenced(
@@ -703,17 +678,17 @@ upll_rc_t VbrIfPolicingMapMoMgr::IsPolicyProfileReferenced(
   // Get the memory allocated policy profile key structure
   MoMgrImpl *mgr =
       static_cast<MoMgrImpl *>((const_cast<MoManager*>(GetMoManager(
-          UNC_KT_POLICING_PROFILE))));
+                      UNC_KT_POLICING_PROFILE))));
   if (!mgr) {
     UPLL_LOG_TRACE("IsPolicyProfileReferenced pp obj failure (%d)",
-                  result_code);
+                   result_code);
     return UPLL_RC_ERR_GENERIC;
   }
 
   result_code = mgr->GetChildConfigKey(okey, NULL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_TRACE("IsPolicyProfileReferenced GetChildConfigKey (%d)",
-                  result_code);
+                   result_code);
     return result_code;
   }
   if (!okey) return UPLL_RC_ERR_GENERIC;
@@ -732,18 +707,19 @@ upll_rc_t VbrIfPolicingMapMoMgr::IsPolicyProfileReferenced(
   // Check the policingprofile object in policingprofiletbl
   result_code = mgr->UpdateConfigDB(okey, dt_type, op, dmi, &dbop, MAINTBL);
   UPLL_LOG_TRACE("IsPolicyProfileReferenced UpdateConfigDB status (%d)",
-                result_code);
+                 result_code);
   if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
     result_code = UPLL_RC_SUCCESS;
   }
   val_policingmap_t *val_pm = reinterpret_cast<val_policingmap_t*>
       (GetVal(ikey));
   PolicingProfileEntryMoMgr *ppe_mgr =
-    reinterpret_cast<PolicingProfileEntryMoMgr*>
-    (const_cast<MoManager *>(GetMoManager
-                             (UNC_KT_POLICING_PROFILE_ENTRY)));
-  result_code = ppe_mgr->ValidateValidElements(reinterpret_cast
-    <const char *>(val_pm->policer_name), dmi, dt_type);
+      reinterpret_cast<PolicingProfileEntryMoMgr*>
+      (const_cast<MoManager *>(GetMoManager
+                               (UNC_KT_POLICING_PROFILE_ENTRY)));
+  result_code = ppe_mgr->ValidateValidElements(
+      reinterpret_cast
+      <const char *>(val_pm->policer_name), dmi, dt_type);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("ValidateValidElements failed %d", result_code);
     delete okey;
@@ -758,7 +734,6 @@ upll_rc_t VbrIfPolicingMapMoMgr::UpdateRefCountInPPCtrlr(
     unc_keytype_operation_t op) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
-  ConfigKeyVal *okey = NULL;
   uint8_t *ctrlr_id = NULL;
 
   // Get the contorller name from VBR MAINTBL
@@ -767,50 +742,47 @@ upll_rc_t VbrIfPolicingMapMoMgr::UpdateRefCountInPPCtrlr(
   PolicingProfileMoMgr *pp_mgr =
       reinterpret_cast<PolicingProfileMoMgr *>
       (const_cast<MoManager *>(GetMoManager(
-          UNC_KT_POLICING_PROFILE)));
+                  UNC_KT_POLICING_PROFILE)));
   if (!pp_mgr) {
     UPLL_LOG_TRACE("pp_mgr obj failure (%d)", result_code);
-    DELETE_IF_NOT_NULL(okey);
     return result_code;
   }
-  #if 0
+#if 0
   PolicingProfileEntryMoMgr *ppe_mgr =
       reinterpret_cast<PolicingProfileEntryMoMgr *>
       (const_cast<MoManager *>(GetMoManager(
-          UNC_KT_POLICING_PROFILE_ENTRY)));
+                  UNC_KT_POLICING_PROFILE_ENTRY)));
   if (!ppe_mgr) {
     UPLL_LOG_TRACE("ppe_mgr obj failure (%d)", result_code);
     DELETE_IF_NOT_NULL(okey);
     return result_code;
   }
-  #endif
+#endif
 
   val_policingmap_t* val_vtn_policingmap =
       reinterpret_cast<val_policingmap_t *>(GetVal(ikey));
 
   if (NULL == ctrlr_id) {
     UPLL_LOG_DEBUG("UpdateRefCountInPPCtrlr ctrlr_id NULL (%d)",
-        result_code);
-    DELETE_IF_NOT_NULL(okey);
+                   result_code);
     return UPLL_RC_ERR_GENERIC;
   }
 
   /* Check the ref count capability of vbrif associated controller name in
-  policingprofilectrltbl If refcount reached the
-  max capability, then return error.
-  If ref count is less than capability and the record exist in
-  policingprofilectrltbl, based on the operation refcount should be
-  incremented or decremented and update policingprofilectrltbl.
-  create the record with refcount if record not
-  exist in policingprofilectrl tbl for the vbr associated controller name
-  */
+     policingprofilectrltbl If refcount reached the
+     max capability, then return error.
+     If ref count is less than capability and the record exist in
+     policingprofilectrltbl, based on the operation refcount should be
+     incremented or decremented and update policingprofilectrltbl.
+     create the record with refcount if record not
+     exist in policingprofilectrl tbl for the vbr associated controller name
+     */
   result_code = pp_mgr->PolicingProfileCtrlrTblOper(
       reinterpret_cast<const char*>(val_vtn_policingmap->policer_name),
       reinterpret_cast<const char*>(ctrlr_id), dmi, op, dt_type);
 
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("PolicingProfileCtrlrTblOper err (%d)", result_code);
-    DELETE_IF_NOT_NULL(okey);
     return result_code;
   }
 
@@ -818,7 +790,7 @@ upll_rc_t VbrIfPolicingMapMoMgr::UpdateRefCountInPPCtrlr(
   // based on oper
   UPLL_LOG_DEBUG("PPECtrl  profile name(%s)  ctrlr id(%s)",
                  val_vtn_policingmap->policer_name, ctrlr_id);
-  #if 0
+#if 0
   result_code = ppe_mgr->PolicingProfileEntryCtrlrTblOper(
       reinterpret_cast<const char*>(val_vtn_policingmap->policer_name),
       reinterpret_cast<const char*>(ctrlr_id), dmi, op, dt_type);
@@ -827,21 +799,21 @@ upll_rc_t VbrIfPolicingMapMoMgr::UpdateRefCountInPPCtrlr(
     DELETE_IF_NOT_NULL(okey);
     return result_code;
   }
-  #endif
-  DELETE_IF_NOT_NULL(okey);
+#endif
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t VbrIfPolicingMapMoMgr::GetControllerId(ConfigKeyVal *ikey,
-                                                 ConfigKeyVal *&okey,
-                                                 upll_keytype_datatype_t dt_type,
-                                                 DalDmlIntf *dmi) {
+upll_rc_t VbrIfPolicingMapMoMgr::GetControllerId(
+    ConfigKeyVal *ikey,
+    ConfigKeyVal *&okey,
+    upll_keytype_datatype_t dt_type,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
   VbrMoMgr *mgr =
-    reinterpret_cast<VbrMoMgr *>(const_cast<MoManager *>(GetMoManager(
-            UNC_KT_VBRIDGE)));
+      reinterpret_cast<VbrMoMgr *>(const_cast<MoManager *>(GetMoManager(
+                  UNC_KT_VBRIDGE)));
   if (!mgr) {
     UPLL_LOG_TRACE("mgr obj failure (%d)", result_code);
     return UPLL_RC_ERR_GENERIC;
@@ -857,15 +829,15 @@ upll_rc_t VbrIfPolicingMapMoMgr::GetControllerId(ConfigKeyVal *ikey,
   key_vbr_if_t *vbr_if_ikey =  reinterpret_cast
       <key_vbr_if_t *>(ikey->get_key());
   uuu::upll_strncpy(
-    vbr_key->vtn_key.vtn_name,
-    vbr_if_ikey->vbr_key.vtn_key.vtn_name,
-    (kMaxLenVtnName + 1));
+      vbr_key->vtn_key.vtn_name,
+      vbr_if_ikey->vbr_key.vtn_key.vtn_name,
+      (kMaxLenVtnName + 1));
   uuu::upll_strncpy(
-    vbr_key->vbridge_name,
-    vbr_if_ikey->vbr_key.vbridge_name,
-    (kMaxLenVnodeName + 1));
+      vbr_key->vbridge_name,
+      vbr_if_ikey->vbr_key.vbridge_name,
+      (kMaxLenVnodeName + 1));
   DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
-                   kOpInOutCtrlr|kOpInOutDomain };
+    kOpInOutCtrlr|kOpInOutDomain };
   result_code = mgr->ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop,
                                   dmi, MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
@@ -913,9 +885,8 @@ upll_rc_t VbrIfPolicingMapMoMgr::ReadMo(IpcReqRespHeader *req,
             UPLL_LOG_DEBUG(" Read request failed result(%d)", result_code);
           }
         } else if ((UPLL_DT_STATE == req->datatype) &&
-            (req->option1 == UNC_OPT1_DETAIL) &&
-            (req->option2 == UNC_OPT2_NONE)) {
-
+                   (req->option1 == UNC_OPT1_DETAIL) &&
+                   (req->option2 == UNC_OPT2_NONE)) {
           result_code = ReadDetailRecord(req, ikey, dmi);
           UPLL_LOG_DEBUG("ReadDetailRecord result_code (%d)", result_code);
         }
@@ -938,9 +909,9 @@ upll_rc_t VbrIfPolicingMapMoMgr::ReadMo(IpcReqRespHeader *req,
             return result_code;
           }
         } else if ((req->option1 == UNC_OPT1_DETAIL) &&
-            (req->option2 == UNC_OPT2_NONE)) {
+                   (req->option2 == UNC_OPT2_NONE)) {
           UPLL_LOG_DEBUG("ReadRecord ReadConfigDB error (%d) (%d)",
-              req->datatype, req->option1);
+                         req->datatype, req->option1);
           result_code = ReadEntryDetailRecord(req, ikey, dmi);
           if (UPLL_RC_SUCCESS != result_code) {
             UPLL_LOG_DEBUG("ReadEntryDetailRecord failed %d", result_code);
@@ -948,7 +919,7 @@ upll_rc_t VbrIfPolicingMapMoMgr::ReadMo(IpcReqRespHeader *req,
           }
         } else {  // Till here
           UPLL_LOG_DEBUG("ReadRecord ReadConfigDB error (%d) (%d)",
-              req->datatype, req->option1);
+                         req->datatype, req->option1);
           return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
         }
         break;
@@ -972,32 +943,34 @@ upll_rc_t VbrIfPolicingMapMoMgr::GetReadVbrIfKey(ConfigKeyVal *&dup_key,
 
   result_code =  GetChildConfigKey(dup_key, NULL);
   if (result_code != UPLL_RC_SUCCESS) {
-     UPLL_LOG_DEBUG("GetChildConfigKey Error");
-     return result_code;
+    UPLL_LOG_DEBUG("GetChildConfigKey Error");
+    return result_code;
   }
   if (!dup_key) {
-     UPLL_LOG_DEBUG("dup_key NULL");
-     return UPLL_RC_ERR_GENERIC;
+    UPLL_LOG_DEBUG("dup_key NULL");
+    return UPLL_RC_ERR_GENERIC;
   }
   key_vbr_if_t *key = reinterpret_cast<key_vbr_if_t *>(dup_key->get_key());
   key_vbrif_policingmap_entry *key1 =
-    reinterpret_cast<key_vbrif_policingmap_entry *>(ikey->get_key());
+      reinterpret_cast<key_vbrif_policingmap_entry *>(ikey->get_key());
 
   uuu::upll_strncpy(reinterpret_cast<char*>(key->vbr_key.vtn_key.vtn_name),
-          reinterpret_cast<char*>(key1->vbrif_key.vbr_key.vtn_key.vtn_name),
-          (kMaxLenVtnName + 1));
+                    reinterpret_cast<char*>
+                    (key1->vbrif_key.vbr_key.vtn_key.vtn_name),
+                    (kMaxLenVtnName + 1));
   uuu::upll_strncpy(reinterpret_cast<char*>(key->vbr_key.vbridge_name),
-          reinterpret_cast<char*>(key1->vbrif_key.vbr_key.vbridge_name),
-          (kMaxLenVnodeName + 1));
+                    reinterpret_cast<char*>
+                    (key1->vbrif_key.vbr_key.vbridge_name),
+                    (kMaxLenVnodeName + 1));
   uuu::upll_strncpy(reinterpret_cast<char*>(key->if_name),
-          reinterpret_cast<char*>(key1->vbrif_key.if_name),
-          (kMaxLenVnodeName + 1));
+                    reinterpret_cast<char*>(key1->vbrif_key.if_name),
+                    (kMaxLenVnodeName + 1));
 
   return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t VbrIfPolicingMapMoMgr::GetChildEntryConfigKey(ConfigKeyVal *&okey,
-                                                 ConfigKeyVal *ikey) {
+                                                        ConfigKeyVal *ikey) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
   if (NULL == ikey || NULL != okey) {
@@ -1009,7 +982,7 @@ upll_rc_t VbrIfPolicingMapMoMgr::GetChildEntryConfigKey(ConfigKeyVal *&okey,
       reinterpret_cast<key_vbrif_policingmap_entry *>
       (ConfigKeyVal::Malloc(sizeof(key_vbrif_policingmap_entry)));
   key_vbrif_policingmap_entry *key1 =
-    reinterpret_cast<key_vbrif_policingmap_entry *>(ikey->get_key());
+      reinterpret_cast<key_vbrif_policingmap_entry *>(ikey->get_key());
 
   uuu::upll_strncpy(
       reinterpret_cast<char*>(key->vbrif_key.vbr_key.vtn_key.vtn_name),
@@ -1020,11 +993,11 @@ upll_rc_t VbrIfPolicingMapMoMgr::GetChildEntryConfigKey(ConfigKeyVal *&okey,
       reinterpret_cast<char*>(key1->vbrif_key.vbr_key.vbridge_name),
       (kMaxLenVnodeName + 1));
   uuu::upll_strncpy(reinterpret_cast<char*>(key->vbrif_key.if_name),
-          reinterpret_cast<char*>(key1->vbrif_key.if_name),
-          (kMaxLenVnodeName + 1));
+                    reinterpret_cast<char*>(key1->vbrif_key.if_name),
+                    (kMaxLenVnodeName + 1));
   key->sequence_num = key1->sequence_num;
   okey = new ConfigKeyVal(UNC_KT_VBRIF_POLICINGMAP_ENTRY,
-         IpctSt::kIpcStKeyVbrifPolicingmapEntry, key, NULL);
+                          IpctSt::kIpcStKeyVbrifPolicingmapEntry, key, NULL);
 
   return UPLL_RC_SUCCESS;
 }
@@ -1042,7 +1015,8 @@ upll_rc_t VbrIfPolicingMapMoMgr::ConstructVbrIfPolicingmapEntryCkv(
       reinterpret_cast<key_vbrif_policingmap_entry_t *>
       (ConfigKeyVal::Malloc(sizeof(key_vbrif_policingmap_entry_t)));
   uuu::upll_strncpy(
-      reinterpret_cast<char*>(vbrif_pm_key->vbrif_key.vbr_key.vtn_key.vtn_name),
+      reinterpret_cast<char*>(vbrif_pm_key->
+                              vbrif_key.vbr_key.vtn_key.vtn_name),
       reinterpret_cast<char*>(vbr_if_key->vbr_key.vtn_key.vtn_name),
       (kMaxLenVtnName + 1));
   uuu::upll_strncpy(
@@ -1050,11 +1024,13 @@ upll_rc_t VbrIfPolicingMapMoMgr::ConstructVbrIfPolicingmapEntryCkv(
       reinterpret_cast<char*>(vbr_if_key->vbr_key.vbridge_name),
       (kMaxLenVnodeName + 1));
   uuu::upll_strncpy(reinterpret_cast<char*>(vbrif_pm_key->vbrif_key.if_name),
-          reinterpret_cast<char*>(vbr_if_key->if_name),
-          (kMaxLenVnodeName + 1));
+                    reinterpret_cast<char*>(vbr_if_key->if_name),
+                    (kMaxLenVnodeName + 1));
   vbrif_pm_key->sequence_num = sequence_num;
   okey = new ConfigKeyVal(UNC_KT_VBRIF_POLICINGMAP_ENTRY,
-         IpctSt::kIpcStKeyVbrifPolicingmapEntry, vbrif_pm_key, NULL);
+                          IpctSt::kIpcStKeyVbrifPolicingmapEntry,
+                          vbrif_pm_key,
+                          NULL);
   if (NULL == okey) {
     return UPLL_RC_ERR_GENERIC;
   }
@@ -1062,28 +1038,30 @@ upll_rc_t VbrIfPolicingMapMoMgr::ConstructVbrIfPolicingmapEntryCkv(
 }
 
 upll_rc_t VbrIfPolicingMapMoMgr::ConstructPpeCkv(ConfigKeyVal *&okey,
-    const char *ppe_name, uint8_t sequence_num) {
+                                                 const char *ppe_name,
+                                                 uint8_t sequence_num) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
   PolicingProfileEntryMoMgr *mgr = reinterpret_cast
-        <PolicingProfileEntryMoMgr*>
-        (const_cast<MoManager *>(GetMoManager
-                                 (UNC_KT_POLICING_PROFILE_ENTRY)));
+      <PolicingProfileEntryMoMgr*>
+      (const_cast<MoManager *>(GetMoManager
+                               (UNC_KT_POLICING_PROFILE_ENTRY)));
   result_code = mgr->GetChildConfigKey(okey, NULL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("GetChildConfigKey failed");
   }
   key_policingprofile_entry_t *key_ppe = reinterpret_cast
-    <key_policingprofile_entry_t *>(okey->get_key());
+      <key_policingprofile_entry_t *>(okey->get_key());
   uuu::upll_strncpy(key_ppe->policingprofile_key.policingprofile_name,
-      ppe_name, kMaxLenPolicingProfileName + 1);
+                    ppe_name, kMaxLenPolicingProfileName + 1);
   key_ppe->sequence_num = sequence_num;
   return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t VbrIfPolicingMapMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey, bool begin,
-    DalDmlIntf *dmi) {
+                                               ConfigKeyVal *ikey,
+                                               bool begin,
+                                               DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   controller_domain ctrlr_dom;
@@ -1116,8 +1094,8 @@ upll_rc_t VbrIfPolicingMapMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
           UPLL_LOG_DEBUG("Read sibling request success (%d)", result_code);
           return result_code;
         } else if ((req->datatype == UPLL_DT_STATE) &&
-            (req->option1 == UNC_OPT1_DETAIL)&&
-            (req->option2 == UNC_OPT2_NONE)) {
+                   (req->option1 == UNC_OPT1_DETAIL)&&
+                   (req->option2 == UNC_OPT2_NONE)) {
           result_code = ReadDetailRecord(req, ikey, dmi);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("ReadDetailRecord result_code (%d)", result_code);
@@ -1146,7 +1124,7 @@ upll_rc_t VbrIfPolicingMapMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
             return result_code;
           }
           key_vbr_if_t *key_if = reinterpret_cast<key_vbr_if_t *>
-                                  (temp_vbr_if_key->get_key());
+              (temp_vbr_if_key->get_key());
           val_policingmap_t *val_pm = reinterpret_cast
               <val_policingmap_t *>(GetVal(temp_vbr_if_key));
           ConfigKeyVal *ppe_ckv = NULL;
@@ -1187,9 +1165,10 @@ upll_rc_t VbrIfPolicingMapMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
             key_vbrif_policingmap_entry_t *temp_vbrif_pm_key = reinterpret_cast
                 <key_vbrif_policingmap_entry_t *>(temp_vbrif_pm_ckv->get_key());
             temp_vbrif_pm_key->sequence_num = temp_ppe_key->sequence_num;
-            uuu::upll_strncpy(reinterpret_cast<char*>(temp_vbrif_pm_key->vbrif_key.if_name),
-              reinterpret_cast<char*>(key_if->if_name),
-                 (kMaxLenVnodeName + 1));
+            uuu::upll_strncpy(reinterpret_cast<char*>(temp_vbrif_pm_key->
+                                                      vbrif_key.if_name),
+                              reinterpret_cast<char*>(key_if->if_name),
+                              (kMaxLenVnodeName + 1));
             result_code = ReadDTStateNormal(req, temp_vbrif_pm_ckv, dmi);
             if (result_code != UPLL_RC_SUCCESS) {
               UPLL_LOG_DEBUG("ReadDTStateNormal failed");
@@ -1207,12 +1186,12 @@ upll_rc_t VbrIfPolicingMapMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
             ikey->ResetWith(okey);
           }
         } else if ((req->option1 == UNC_OPT1_DETAIL) &&
-            (req->option2 == UNC_OPT2_NONE)) {
+                   (req->option2 == UNC_OPT2_NONE)) {
           UPLL_LOG_DEBUG("ReadRecord ReadConfigDB error (%d) (%d)",
-              req->datatype, req->option1);
+                         req->datatype, req->option1);
           ConfigKeyVal *temp_vbr_if_key = NULL;
           key_vbrif_policingmap_entry_t *vbrif_entry_key = reinterpret_cast
-            <key_vbrif_policingmap_entry_t *>(ikey->get_key());
+              <key_vbrif_policingmap_entry_t *>(ikey->get_key());
           result_code = GetReadVbrIfKey(temp_vbr_if_key, ikey);
           DbSubOp dbop = {kOpReadSingle, kOpMatchNone, kOpInOutNone};
           result_code = ReadConfigDB(temp_vbr_if_key, req->datatype,
@@ -1222,22 +1201,22 @@ upll_rc_t VbrIfPolicingMapMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
             return result_code;
           }
           val_policingmap_t *val_pm = reinterpret_cast
-            <val_policingmap_t *>(GetVal(temp_vbr_if_key));
-         key_vbr_if_t *key_if = reinterpret_cast<key_vbr_if_t *>
-                                (temp_vbr_if_key->get_key());
+              <val_policingmap_t *>(GetVal(temp_vbr_if_key));
+          key_vbr_if_t *key_if = reinterpret_cast<key_vbr_if_t *>
+              (temp_vbr_if_key->get_key());
           ConfigKeyVal *ppe_ckv = NULL;
           result_code = ConstructPpeCkv(ppe_ckv, reinterpret_cast
-              <const char *>(val_pm->policer_name),
-              vbrif_entry_key->sequence_num);
+                                        <const char *>(val_pm->policer_name),
+                                        vbrif_entry_key->sequence_num);
           PolicingProfileEntryMoMgr *mgr = reinterpret_cast
-            <PolicingProfileEntryMoMgr*>
-            (const_cast<MoManager *>(GetMoManager
-                                     (UNC_KT_POLICING_PROFILE_ENTRY)));
+              <PolicingProfileEntryMoMgr*>
+              (const_cast<MoManager *>(GetMoManager
+                                       (UNC_KT_POLICING_PROFILE_ENTRY)));
           if (!mgr) {
             return UPLL_RC_ERR_GENERIC;
           }
           IpcReqRespHeader *temp_req = reinterpret_cast<IpcReqRespHeader *>
-            (ConfigKeyVal::Malloc(sizeof(IpcReqRespHeader)));
+              (ConfigKeyVal::Malloc(sizeof(IpcReqRespHeader)));
           memcpy(temp_req, req, sizeof(IpcReqRespHeader));
           temp_req->option1 = UNC_OPT1_NORMAL;
           // result_code = mgr->ReadInfoFromDB(req, ppe_ckv, dmi, &ctrlr_dom);
@@ -1255,18 +1234,19 @@ upll_rc_t VbrIfPolicingMapMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
           while (NULL != temp_ppe_ckv) {
             ConfigKeyVal *temp_vbrif_pm_ckv = NULL;
             key_policingprofile_entry_t *temp_ppe_key = reinterpret_cast
-              <key_policingprofile_entry_t *>(temp_ppe_ckv->get_key());
+                <key_policingprofile_entry_t *>(temp_ppe_ckv->get_key());
             result_code = GetChildEntryConfigKey(temp_vbrif_pm_ckv, ikey);
             if (UPLL_RC_SUCCESS != result_code) {
               UPLL_LOG_DEBUG("GetChildEntryConfigKey failed");
               return result_code;
             }
             key_vbrif_policingmap_entry_t *temp_vbrif_pm_key = reinterpret_cast
-              <key_vbrif_policingmap_entry_t *>(temp_vbrif_pm_ckv->get_key());
+                <key_vbrif_policingmap_entry_t *>(temp_vbrif_pm_ckv->get_key());
             temp_vbrif_pm_key->sequence_num = temp_ppe_key->sequence_num;
-            uuu::upll_strncpy(reinterpret_cast<char*>(temp_vbrif_pm_key->vbrif_key.if_name),
-              reinterpret_cast<char*>(key_if->if_name),
-                 (kMaxLenVnodeName + 1));
+            uuu::upll_strncpy(reinterpret_cast<char*>(temp_vbrif_pm_key->
+                                                      vbrif_key.if_name),
+                              reinterpret_cast<char*>(key_if->if_name),
+                              (kMaxLenVnodeName + 1));
             UPLL_LOG_DEBUG("vbrifpmentry sequence_num - %d", result_code);
             result_code = ReadEntryDetailRecord(req, temp_vbrif_pm_ckv, dmi);
             if (UPLL_RC_SUCCESS != result_code) {
@@ -1298,8 +1278,8 @@ upll_rc_t VbrIfPolicingMapMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
 }
 
 upll_rc_t VbrIfPolicingMapMoMgr::ReadDetailRecord(IpcReqRespHeader *req,
-                                               ConfigKeyVal *&ikey,
-                                               DalDmlIntf *dmi) {
+                                                  ConfigKeyVal *&ikey,
+                                                  DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   ConfigKeyVal *l_key = NULL;
   ConfigKeyVal *dup_key = NULL;
@@ -1333,7 +1313,8 @@ upll_rc_t VbrIfPolicingMapMoMgr::ReadDetailRecord(IpcReqRespHeader *req,
   SET_USER_DATA_CTRLR_DOMAIN(l_key, ctrlr_dom);
   GET_USER_DATA_FLAGS(dup_key, db_flag);
 
-  result_code = ValidateCapability(req, ikey, reinterpret_cast<char *>(ctrlr_dom.ctrlr));
+  result_code = ValidateCapability(req, ikey, reinterpret_cast<char *>
+                                   (ctrlr_dom.ctrlr));
 
   if (result_code != UPLL_RC_SUCCESS) {
     DELETE_IF_NOT_NULL(dup_key);
@@ -1439,14 +1420,14 @@ bool VbrIfPolicingMapMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type,
   UPLL_FUNC_TRACE;
   UPLL_LOG_DEBUG("GetRenameKeyBindInfo (%d) (%d)", key_type, tbl);
   nattr = sizeof(key_vbrifpm_maintbl_rename_bind_info)/
-          sizeof(key_vbrifpm_maintbl_rename_bind_info[0]);
+      sizeof(key_vbrifpm_maintbl_rename_bind_info[0]);
   binfo = key_vbrifpm_maintbl_rename_bind_info;
   return PFC_TRUE;
 }
 
 // Rename
 upll_rc_t VbrIfPolicingMapMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
-    ConfigKeyVal *ikey) {
+                                                 ConfigKeyVal *ikey) {
   UPLL_FUNC_TRACE;
   if (!ikey || !(ikey->get_key())) {
     UPLL_LOG_DEBUG("CopyToConfigKey ikey NULL");
@@ -1456,9 +1437,9 @@ upll_rc_t VbrIfPolicingMapMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
   key_rename_vnode_info *key_rename =
-  reinterpret_cast<key_rename_vnode_info *>(ikey->get_key());
+      reinterpret_cast<key_rename_vnode_info *>(ikey->get_key());
   key_vbr_if_t *key_vbr_if = reinterpret_cast<key_vbr_if_t *>
-                             (ConfigKeyVal::Malloc(sizeof(key_vbr_if_t)));
+      (ConfigKeyVal::Malloc(sizeof(key_vbr_if_t)));
   if (!strlen(reinterpret_cast<char *>(key_rename->old_unc_vtn_name))) {
     UPLL_LOG_DEBUG("old_unc_vtn_name NULL");
     FREE_IF_NOT_NULL(key_vbr_if);
@@ -1488,7 +1469,7 @@ upll_rc_t VbrIfPolicingMapMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
   }
 
   okey = new ConfigKeyVal(UNC_KT_VBRIF_POLICINGMAP, IpctSt::kIpcStKeyVbrIf,
-             key_vbr_if, NULL);
+                          key_vbr_if, NULL);
   if (!okey) {
     UPLL_LOG_DEBUG("okey NULL");
     FREE_IF_NOT_NULL(key_vbr_if);
@@ -1497,10 +1478,11 @@ upll_rc_t VbrIfPolicingMapMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
   return result_code;
 }
 
-upll_rc_t VbrIfPolicingMapMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
-                                             DalDmlIntf *dmi,
-                                             upll_keytype_datatype_t data_type,
-                                             bool &no_rename) {
+upll_rc_t VbrIfPolicingMapMoMgr::UpdateVnodeVal(
+    ConfigKeyVal *ikey,
+    DalDmlIntf *dmi,
+    upll_keytype_datatype_t data_type,
+    bool &no_rename) {
   UPLL_FUNC_TRACE;
   ConfigKeyVal *okey = NULL;
   ConfigKeyVal *kval = NULL;
@@ -1512,12 +1494,12 @@ upll_rc_t VbrIfPolicingMapMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
   key_rename_vnode_info_t *key_rename =
-  reinterpret_cast<key_rename_vnode_info_t *>(ikey->get_key());
+      reinterpret_cast<key_rename_vnode_info_t *>(ikey->get_key());
 
   UPLL_LOG_DEBUG("CopyToConfigKey datatype (%d)", data_type);
   // Copy the old policer name in val_policingmap
   val_policingmap_t *val = reinterpret_cast<val_policingmap_t *>
-        (ConfigKeyVal::Malloc(sizeof(val_policingmap_t)));
+      (ConfigKeyVal::Malloc(sizeof(val_policingmap_t)));
   if (!val) return UPLL_RC_ERR_GENERIC;
 
   memset(val, 0, sizeof(val_policingmap_t));
@@ -1528,17 +1510,17 @@ upll_rc_t VbrIfPolicingMapMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
   }
 
   uuu::upll_strncpy(val->policer_name,
-      key_rename->old_policingprofile_name,
-      (kMaxLenPolicingProfileName + 1));
+                    key_rename->old_policingprofile_name,
+                    (kMaxLenPolicingProfileName + 1));
   val->valid[UPLL_IDX_POLICERNAME_PM] = UNC_VF_VALID;
   UPLL_LOG_DEBUG("policer name and valid (%d) (%s)",
-                  val->valid[UPLL_IDX_POLICERNAME_PM], val->policer_name);
+                 val->valid[UPLL_IDX_POLICERNAME_PM], val->policer_name);
 
   result_code = GetChildConfigKey(okey, NULL);
   if (UPLL_RC_SUCCESS != result_code) {
-     UPLL_LOG_DEBUG("CopyToConfigKey okey  NULL");
-     FREE_IF_NOT_NULL(val);
-     return result_code;
+    UPLL_LOG_DEBUG("CopyToConfigKey okey  NULL");
+    FREE_IF_NOT_NULL(val);
+    return result_code;
   }
   if (!okey) {
     free(val);
@@ -1546,11 +1528,13 @@ upll_rc_t VbrIfPolicingMapMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
   }
   okey->SetCfgVal(new ConfigVal(IpctSt::kIpcStValPolicingmap, val));
 
-  DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutCtrlr|kOpInOutDomain|kOpInOutFlag };
+  DbSubOp dbop = { kOpReadMultiple,
+    kOpMatchNone,
+    kOpInOutCtrlr|kOpInOutDomain|kOpInOutFlag };
 
-  // Read the record of key structure and old policer name in maintbl   
+  // Read the record of key structure and old policer name in maintbl
   result_code = ReadConfigDB(okey, data_type, UNC_OP_READ, dbop, dmi,
-    MAINTBL);
+                             MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG(" ReadConfigDB failed ");
     DELETE_IF_NOT_NULL(okey);
@@ -1558,7 +1542,7 @@ upll_rc_t VbrIfPolicingMapMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
   }
   ConfigKeyVal *first_ckv = okey;
   while (okey != NULL) {
-     UPLL_LOG_DEBUG("okey not NULL");
+    UPLL_LOG_DEBUG("okey not NULL");
     // Update the new policer name in MAINTBL
     result_code = GetChildConfigKey(kval, okey);
     if (UPLL_RC_SUCCESS != result_code) {
@@ -1569,12 +1553,13 @@ upll_rc_t VbrIfPolicingMapMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
     if (!kval) return UPLL_RC_ERR_GENERIC;
     // Copy the new policer name in val_policingmap
     val_policingmap_t *val1 = reinterpret_cast<val_policingmap_t *>
-          (ConfigKeyVal::Malloc(sizeof(val_policingmap_t)));
+        (ConfigKeyVal::Malloc(sizeof(val_policingmap_t)));
     if (!val1) return UPLL_RC_ERR_GENERIC;
     memset(val1, 0, sizeof(val_policingmap_t));
 
     // New name null check
-    if (!strlen(reinterpret_cast<char *>(key_rename->new_policingprofile_name))) {
+    if (!strlen(reinterpret_cast<char *>
+                (key_rename->new_policingprofile_name))) {
       FREE_IF_NOT_NULL(val1);
       UPLL_LOG_DEBUG("new_policingprofile_name NULL");
       DELETE_IF_NOT_NULL(kval);
@@ -1583,11 +1568,11 @@ upll_rc_t VbrIfPolicingMapMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
     }
     // Copy the new policer name into val_policingmap
     uuu::upll_strncpy(val1->policer_name,
-      key_rename->new_policingprofile_name,
-      (kMaxLenPolicingProfileName + 1));
+                      key_rename->new_policingprofile_name,
+                      (kMaxLenPolicingProfileName + 1));
     val1->valid[UPLL_IDX_POLICERNAME_PM] = UNC_VF_VALID;
     UPLL_LOG_DEBUG("policer name and valid (%d) (%s)",
-                    val1->valid[UPLL_IDX_POLICERNAME_PM], val1->policer_name);
+                   val1->valid[UPLL_IDX_POLICERNAME_PM], val1->policer_name);
     ConfigVal *cval1 = new ConfigVal(IpctSt::kIpcStValPolicingmap, val1);
 
     kval->SetCfgVal(cval1);
@@ -1604,7 +1589,7 @@ upll_rc_t VbrIfPolicingMapMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
     GET_USER_DATA_FLAGS(okey, rename);
 
     UPLL_LOG_DEBUG("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
-        ctrlr_dom.domain);
+                   ctrlr_dom.domain);
 
     UPLL_LOG_DEBUG("okey flag (%d)", rename);
 
@@ -1619,10 +1604,10 @@ upll_rc_t VbrIfPolicingMapMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
     UPLL_LOG_DEBUG("kval flag (%d)", rename);
     // Update the new policer name in MAINTBL
     result_code = UpdateConfigDB(kval, data_type, UNC_OP_UPDATE, dmi,
-                  MAINTBL);
+                                 MAINTBL);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("Create record Err in vtnpolicingmaptbl CANDIDATE DB(%d)",
-        result_code);
+                     result_code);
       DELETE_IF_NOT_NULL(kval);
       DELETE_IF_NOT_NULL(first_ckv);
       return result_code;
@@ -1631,15 +1616,15 @@ upll_rc_t VbrIfPolicingMapMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
     DELETE_IF_NOT_NULL(kval);
 
     okey = okey->get_next_cfg_key_val();
-   }
+  }
   DELETE_IF_NOT_NULL(first_ckv);
   return result_code;
 }
 
 upll_rc_t VbrIfPolicingMapMoMgr::MergeValidate(unc_key_type_t keytype,
-                                             const char *ctrlr_id,
-                                             ConfigKeyVal *ikey,
-                                             DalDmlIntf *dmi) {
+                                               const char *ctrlr_id,
+                                               ConfigKeyVal *ikey,
+                                               DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *ckval = NULL;
@@ -1658,7 +1643,7 @@ upll_rc_t VbrIfPolicingMapMoMgr::MergeValidate(unc_key_type_t keytype,
 
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutCtrlr|kOpInOutDomain};
   result_code = ReadConfigDB(ckval, UPLL_DT_IMPORT,
-              UNC_OP_READ, dbop, dmi, MAINTBL);
+                             UNC_OP_READ, dbop, dmi, MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     DELETE_IF_NOT_NULL(ckval);
     if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
@@ -1700,7 +1685,7 @@ upll_rc_t VbrIfPolicingMapMoMgr::GetRenamedUncKey(
   ConfigKeyVal *unc_key = NULL;
   DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutNone };
   UPLL_LOG_TRACE("%s GetRenamedUncKey vbrifpm start",
-                  ikey->ToStrAll().c_str());
+                 ikey->ToStrAll().c_str());
   if (NULL == ikey || NULL == dmi || NULL == ctrlr_id) {
     UPLL_LOG_DEBUG("GetRenamedUncKey failed. Insufficient input parameters.");
     return UPLL_RC_ERR_GENERIC;
@@ -1731,7 +1716,7 @@ upll_rc_t VbrIfPolicingMapMoMgr::GetRenamedUncKey(
 
   MoMgrImpl *mgr =
       reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-          UNC_KT_VBRIDGE)));
+                  UNC_KT_VBRIDGE)));
   if (NULL == mgr) {
     UPLL_LOG_DEBUG("mgr NULL");
     free(rename_vnode);
@@ -1771,8 +1756,8 @@ upll_rc_t VbrIfPolicingMapMoMgr::GetRenamedUncKey(
         reinterpret_cast<key_vbr_if_t *>(unc_key->get_key());
     if (vbr_if_key) {
       if (strcmp(reinterpret_cast<char *>(ctrlr_key->vbr_key.vtn_key.vtn_name),
-          reinterpret_cast<const char *>
-          (vbr_if_key->vbr_key.vtn_key.vtn_name))) {
+                 reinterpret_cast<const char *>
+                 (vbr_if_key->vbr_key.vtn_key.vtn_name))) {
         uuu::upll_strncpy(
             reinterpret_cast<char *>(ctrlr_key->vbr_key.vtn_key.vtn_name),
             reinterpret_cast<const char *>
@@ -1782,8 +1767,8 @@ upll_rc_t VbrIfPolicingMapMoMgr::GetRenamedUncKey(
       if (strcmp(reinterpret_cast<char *>(ctrlr_key->vbr_key.vbridge_name),
                  reinterpret_cast<char *>(vbr_if_key->vbr_key.vbridge_name))) {
         uuu::upll_strncpy(ctrlr_key->vbr_key.vbridge_name,
-                      vbr_if_key->vbr_key.vbridge_name,
-                      (kMaxLenVnodeName + 1));
+                          vbr_if_key->vbr_key.vbridge_name,
+                          (kMaxLenVnodeName + 1));
       }
     }
   }
@@ -1802,17 +1787,17 @@ upll_rc_t VbrIfPolicingMapMoMgr::GetRenamedUncKey(
   val_policingmap_t *val_policingmap = NULL;
 
   if (ikey->get_cfg_val() &&
-     (ikey->get_cfg_val()->get_st_num() ==
-     IpctSt::kIpcStPfcdrvValVbrifPolicingmap)) {
+      (ikey->get_cfg_val()->get_st_num() ==
+       IpctSt::kIpcStPfcdrvValVbrifPolicingmap)) {
     UPLL_LOG_TRACE("val struct num (%d)", ikey->get_cfg_val()->get_st_num());
     pfc_val_import = reinterpret_cast<pfcdrv_val_vbrif_policingmap *>
-             (ikey->get_cfg_val()->get_val());
+        (ikey->get_cfg_val()->get_val());
     val_policingmap = &pfc_val_import->val_policing_map;
     UPLL_LOG_DEBUG("policer name (%s)", val_policingmap->policer_name);
   } else if (ikey->get_cfg_val() &&
-     (ikey->get_cfg_val()->get_st_num() ==
-     IpctSt:: kIpcStValPolicingmap)) {
-      val_policingmap =
+             (ikey->get_cfg_val()->get_st_num() ==
+              IpctSt:: kIpcStValPolicingmap)) {
+    val_policingmap =
         reinterpret_cast<val_policingmap_t *>(GetVal(ikey));
   }
   if (!val_policingmap) {
@@ -1827,7 +1812,7 @@ upll_rc_t VbrIfPolicingMapMoMgr::GetRenamedUncKey(
   rename_policingprofile->valid[UPLL_IDX_RENAME_PROFILE_RPP] = UNC_VF_VALID;
 
   mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-      UNC_KT_POLICING_PROFILE)));
+              UNC_KT_POLICING_PROFILE)));
   if (NULL == mgr) {
     UPLL_LOG_DEBUG("mgr policing profile NULL");
     free(rename_policingprofile);
@@ -1857,7 +1842,7 @@ upll_rc_t VbrIfPolicingMapMoMgr::GetRenamedUncKey(
   if ((UPLL_RC_SUCCESS != result_code) &&
       (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
     UPLL_LOG_DEBUG("GetRenamedUncKey failed. ReadConfigDB failed to read %d ",
-                  result_code);
+                   result_code);
     DELETE_IF_NOT_NULL(unc_key);
     mgr = NULL;
     return result_code;
@@ -1868,17 +1853,17 @@ upll_rc_t VbrIfPolicingMapMoMgr::GetRenamedUncKey(
         reinterpret_cast<key_policingprofile_t *>(unc_key->get_key());
     if (key_policingprofile) {
       if (strcmp(reinterpret_cast<char *>(val_policingmap->policer_name),
-         reinterpret_cast<const char *>(key_policingprofile
-         ->policingprofile_name))) {
-    uuu::upll_strncpy(
-                      val_policingmap->policer_name,
-                      key_policingprofile->policingprofile_name,
-                      (kMaxLenPolicingProfileName + 1));
+                 reinterpret_cast<const char *>(key_policingprofile
+                                                ->policingprofile_name))) {
+        uuu::upll_strncpy(
+            val_policingmap->policer_name,
+            key_policingprofile->policingprofile_name,
+            (kMaxLenPolicingProfileName + 1));
       }
     }
   }
   UPLL_LOG_TRACE("%s GetRenamedUncKey vbrifpm end",
-                  ikey->ToStrAll().c_str());
+                 ikey->ToStrAll().c_str());
   DELETE_IF_NOT_NULL(unc_key);
   mgr = NULL;
   return UPLL_RC_SUCCESS;
@@ -1889,7 +1874,6 @@ upll_rc_t VbrIfPolicingMapMoMgr::GetRenamedControllerKey(
     controller_domain *ctrlr_dom) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code;
-  uint8_t rename = 0;
   ConfigKeyVal *okey = NULL;
 
   if (NULL == ikey || NULL == dmi || NULL == ctrlr_dom) {
@@ -1897,111 +1881,94 @@ upll_rc_t VbrIfPolicingMapMoMgr::GetRenamedControllerKey(
         "GetRenamedControllerKey failed. Insufficient input resources");
     return UPLL_RC_ERR_GENERIC;
   }
-//  DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutCtrlr };
-  DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr | kOpMatchDomain, kOpInOutCtrlr };
+  DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr | kOpMatchDomain,
+    kOpInOutCtrlr };
 
-  result_code = IsRenamed(ikey, dt_type, dmi, rename);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("GetRenamedControllerKey failed. IsRenamed failed to "
-                  "check rename - %d",
-                  result_code);
-    return result_code;
+  MoMgrImpl *mgr =
+      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                  UNC_KT_VBRIDGE)));
+  if (NULL == mgr) {
+    UPLL_LOG_DEBUG("mgr NULL");
+    return UPLL_RC_ERR_GENERIC;
   }
 
-  if (0 == rename) {
-    UPLL_LOG_DEBUG(
-        "GetRenamedControllerKey No Rename");
-    return UPLL_RC_SUCCESS;
+  result_code = mgr->GetChildConfigKey(okey, NULL);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_DEBUG(" GetRenamedControllerKey failed. "
+                   "GetChildConfigKey failed to create vbr ConfigKey - %d",
+                   result_code);
+    return result_code;
   }
 
-  UPLL_LOG_TRACE("Start Input ConfigKeyVal %s", ikey->ToStrAll().c_str());
-
-  if (rename & VTN_RENAME || rename & VBR_RENAME) {
-    MoMgrImpl *mgr =
-      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-          UNC_KT_VBRIDGE)));
-    if (NULL == mgr) {
-      UPLL_LOG_DEBUG("mgr NULL");
-      return UPLL_RC_ERR_GENERIC;
-    }
-
-    result_code = mgr->GetChildConfigKey(okey, NULL);
-    if (result_code != UPLL_RC_SUCCESS) {
-       UPLL_LOG_DEBUG(" GetRenamedControllerKey failed. "
-                     "GetChildConfigKey failed to create vbr ConfigKey - %d",
-                     result_code);
-       return result_code;
-    }
-    if (!okey) return UPLL_RC_ERR_GENERIC;
-
-    if (NULL != ctrlr_dom) {
-      SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom)
-    }
-    else {
-      UPLL_LOG_DEBUG("ctrlr null");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
+  if (NULL != ctrlr_dom) {
+    SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom)
+  } else {
+    UPLL_LOG_DEBUG("ctrlr null");
+    DELETE_IF_NOT_NULL(okey);
+    return UPLL_RC_ERR_GENERIC;
+  }
 
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
-    if (UNC_KT_VBRIF_POLICINGMAP == ikey->get_key_type()) {
+  UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
+                 ctrlr_dom->domain);
+  if (UNC_KT_VBRIF_POLICINGMAP == ikey->get_key_type()) {
     uuu::upll_strncpy(
-       reinterpret_cast<key_vbr_t *>(okey->get_key())->vtn_key.vtn_name,
-       reinterpret_cast<key_vbr_if_t *>(ikey->get_key())->vbr_key.vtn_key.vtn_name,
-       (kMaxLenVtnName + 1));
+        reinterpret_cast<key_vbr_t *>(okey->get_key())->vtn_key.vtn_name,
+        reinterpret_cast<key_vbr_if_t *>(ikey->get_key())->
+        vbr_key.vtn_key.vtn_name,
+        (kMaxLenVtnName + 1));
 
     UPLL_LOG_DEBUG("vtn name (%s) (%s)",
-        reinterpret_cast<key_vbr *>(okey->get_key())->vtn_key.vtn_name,
-        reinterpret_cast<key_vbr_if_t *>(ikey->get_key())->vbr_key.vtn_key.vtn_name);
+                   reinterpret_cast<key_vbr *>(okey->get_key())->
+                   vtn_key.vtn_name,
+                   reinterpret_cast<key_vbr_if_t *>
+                   (ikey->get_key())->vbr_key.vtn_key.vtn_name);
 
     uuu::upll_strncpy(
-       reinterpret_cast<key_vbr *>(okey->get_key())->vbridge_name,
-       reinterpret_cast<key_vbr_if_t *>(ikey->get_key())->vbr_key.vbridge_name,
-       (kMaxLenVnodeName + 1));
+        reinterpret_cast<key_vbr *>(okey->get_key())->vbridge_name,
+        reinterpret_cast<key_vbr_if_t *>
+        (ikey->get_key())->vbr_key.vbridge_name,
+        (kMaxLenVnodeName + 1));
 
     UPLL_LOG_DEBUG("vbr name (%s) (%s)",
-      reinterpret_cast<key_vbr *>(okey->get_key())->vbridge_name,
-      reinterpret_cast<key_vbr_if_t *>(ikey->get_key())->vbr_key.vbridge_name);
-    } else if (UNC_KT_VBRIF_POLICINGMAP_ENTRY == ikey->get_key_type()) {
+                   reinterpret_cast<key_vbr *>(okey->get_key())->vbridge_name,
+                   reinterpret_cast<key_vbr_if_t *>
+                   (ikey->get_key())->vbr_key.vbridge_name);
+  } else if (UNC_KT_VBRIF_POLICINGMAP_ENTRY == ikey->get_key_type()) {
     uuu::upll_strncpy(
-       reinterpret_cast<key_vbr_t *>(okey->get_key())->vtn_key.vtn_name,
-       reinterpret_cast<key_vbrif_policingmap_entry_t *>
-       (ikey->get_key())->vbrif_key.vbr_key.vtn_key.vtn_name,
-       (kMaxLenVtnName + 1));
+        reinterpret_cast<key_vbr_t *>(okey->get_key())->vtn_key.vtn_name,
+        reinterpret_cast<key_vbrif_policingmap_entry_t *>
+        (ikey->get_key())->vbrif_key.vbr_key.vtn_key.vtn_name,
+        (kMaxLenVtnName + 1));
 
     UPLL_LOG_DEBUG("vtn name (%s) (%s)",
-        reinterpret_cast<key_vbr *>(okey->get_key())->vtn_key.vtn_name,
-        reinterpret_cast<key_vbrif_policingmap_entry_t *>
-        (ikey->get_key())->vbrif_key.vbr_key.vtn_key.vtn_name);
+                   reinterpret_cast<key_vbr *>
+                   (okey->get_key())->vtn_key.vtn_name,
+                   reinterpret_cast<key_vbrif_policingmap_entry_t *>
+                   (ikey->get_key())->vbrif_key.vbr_key.vtn_key.vtn_name);
 
     uuu::upll_strncpy(
-       reinterpret_cast<key_vbr *>(okey->get_key())->vbridge_name,
-       reinterpret_cast<key_vbrif_policingmap_entry_t *>
-       (ikey->get_key())->vbrif_key.vbr_key.vbridge_name,
-       (kMaxLenVnodeName + 1));
+        reinterpret_cast<key_vbr *>(okey->get_key())->vbridge_name,
+        reinterpret_cast<key_vbrif_policingmap_entry_t *>
+        (ikey->get_key())->vbrif_key.vbr_key.vbridge_name,
+        (kMaxLenVnodeName + 1));
 
     UPLL_LOG_DEBUG("vbr name (%s) (%s)",
-      reinterpret_cast<key_vbr *>(okey->get_key())->vbridge_name,
-      reinterpret_cast<key_vbrif_policingmap_entry_t *>
-      (ikey->get_key())->vbrif_key.vbr_key.vbridge_name);
-    }
+                   reinterpret_cast<key_vbr *>(okey->get_key())->vbridge_name,
+                   reinterpret_cast<key_vbrif_policingmap_entry_t *>
+                   (ikey->get_key())->vbrif_key.vbr_key.vbridge_name);
+  }
 
-    /* TODO Commented the below code to fix the compilation issues */
-    result_code = mgr->ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop, dmi,
-                                    RENAMETBL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-        UPLL_LOG_DEBUG("ReadConfigDB no instance");
-        DELETE_IF_NOT_NULL(okey);
-        return UPLL_RC_SUCCESS;
-      }
-      UPLL_LOG_DEBUG("GetRenamedControllerKey failed. ReadConfigDB failed "
-                    "to read vbr renametbl - %d",
-                    result_code);
-      DELETE_IF_NOT_NULL(okey);
-      return result_code;
-    }
+  result_code = mgr->ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop, dmi,
+                                  RENAMETBL);
+  if ((result_code != UPLL_RC_SUCCESS) &&
+      (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
+    UPLL_LOG_DEBUG("GetRenamedControllerKey failed. ReadConfigDB failed "
+                   "to read vbr renametbl - %d",
+                   result_code);
+    DELETE_IF_NOT_NULL(okey);
+    return result_code;
+  }
+  if (UPLL_RC_SUCCESS == result_code) {
     val_rename_vnode_t *rename_val =
         reinterpret_cast<val_rename_vnode_t *>(GetVal(okey));
     if (!rename_val) {
@@ -2009,44 +1976,33 @@ upll_rc_t VbrIfPolicingMapMoMgr::GetRenamedControllerKey(
       DELETE_IF_NOT_NULL(okey);
       return UPLL_RC_ERR_GENERIC;
     }
-    if (rename & VTN_RENAME) {  // vtn renamed
-      UPLL_LOG_DEBUG("vtn name renamed");
-      if (UNC_KT_VBRIF_POLICINGMAP == ikey->get_key_type()) {
-        uuu::upll_strncpy(reinterpret_cast<key_vbr_if_t *>(ikey->get_key())
-              ->vbr_key.vtn_key.vtn_name,
-              rename_val->ctrlr_vtn_name,
-              (kMaxLenVtnName + 1));
-      } else if (UNC_KT_VBRIF_POLICINGMAP_ENTRY == ikey->get_key_type()) {
-        uuu::upll_strncpy(reinterpret_cast<key_vbrif_policingmap_entry_t *>
-              (ikey->get_key())->vbrif_key.vbr_key.vtn_key.vtn_name,
-              rename_val->ctrlr_vtn_name,
-              (kMaxLenVtnName + 1));
-      }
-    }
-
-    if (rename & VBR_RENAME) {  // vnode renamed
-      UPLL_LOG_DEBUG("vbr name renamed");   
-      if (UNC_KT_VBRIF_POLICINGMAP == ikey->get_key_type()) {
+    if (UNC_KT_VBRIF_POLICINGMAP == ikey->get_key_type()) {
       uuu::upll_strncpy(reinterpret_cast<key_vbr_if_t *>(ikey->get_key())
-                    ->vbr_key.vbridge_name,
-                    rename_val->ctrlr_vnode_name,
-                    (kMaxLenVnodeName + 1));
-      } else if (UNC_KT_VBRIF_POLICINGMAP_ENTRY == ikey->get_key_type()) {
-        uuu::upll_strncpy(reinterpret_cast<key_vbrif_policingmap_entry_t *>
-                    (ikey->get_key())->vbrif_key.vbr_key.vbridge_name,
-                    rename_val->ctrlr_vnode_name,
-                    (kMaxLenVnodeName + 1));
-      }
+                        ->vbr_key.vtn_key.vtn_name,
+                        rename_val->ctrlr_vtn_name,
+                        (kMaxLenVtnName + 1));
+      uuu::upll_strncpy(reinterpret_cast<key_vbr_if_t *>(ikey->get_key())
+                        ->vbr_key.vbridge_name,
+                        rename_val->ctrlr_vnode_name,
+                        (kMaxLenVnodeName + 1));
+    } else if (UNC_KT_VBRIF_POLICINGMAP_ENTRY == ikey->get_key_type()) {
+      uuu::upll_strncpy(reinterpret_cast<key_vbrif_policingmap_entry_t *>
+                        (ikey->get_key())->vbrif_key.vbr_key.vtn_key.vtn_name,
+                        rename_val->ctrlr_vtn_name,
+                        (kMaxLenVtnName + 1));
+      uuu::upll_strncpy(reinterpret_cast<key_vbrif_policingmap_entry_t *>
+                        (ikey->get_key())->vbrif_key.vbr_key.vbridge_name,
+                        rename_val->ctrlr_vnode_name,
+                        (kMaxLenVnodeName + 1));
     }
-    DELETE_IF_NOT_NULL(okey);
-    mgr = NULL;
   }
+  DELETE_IF_NOT_NULL(okey);
+  mgr = NULL;
 
   if (UNC_KT_VBRIF_POLICINGMAP == ikey->get_key_type()) {
-  if (rename & POLICINGPROFILE_RENAME) {
-    UPLL_LOG_DEBUG("policing profile name renamed");
-    MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
-             (GetMoManager(UNC_KT_POLICING_PROFILE)));
+    MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>
+        (const_cast<MoManager *>
+         (GetMoManager(UNC_KT_POLICING_PROFILE)));
     if (NULL == mgr) {
       UPLL_LOG_DEBUG("mgr NULL");
       return UPLL_RC_ERR_GENERIC;
@@ -2054,71 +2010,61 @@ upll_rc_t VbrIfPolicingMapMoMgr::GetRenamedControllerKey(
     result_code = mgr->GetChildConfigKey(okey, NULL);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("GetRenamedControllerKey failed. GetChildConfigKey failed "
-                  "to create policingprofile ConfigKey - %d",
-                  result_code);
+                     "to create policingprofile ConfigKey - %d",
+                     result_code);
       return result_code;
     }
     if (!okey) return UPLL_RC_ERR_GENERIC;
 
-    if (NULL != ctrlr_dom) {
-      SET_USER_DATA_CTRLR(okey, ctrlr_dom->ctrlr);
-    } else {
-      UPLL_LOG_DEBUG("ctrlr null");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
+    SET_USER_DATA_CTRLR(okey, ctrlr_dom->ctrlr);
 
     val_policingmap_t *val_policingmap =
-      reinterpret_cast<val_policingmap_t *>(GetVal(ikey));
+        reinterpret_cast<val_policingmap_t *>(GetVal(ikey));
 
-    if (!val_policingmap)
-       return UPLL_RC_SUCCESS;
+    if (NULL == val_policingmap) {
+      DELETE_IF_NOT_NULL(okey);
+      return UPLL_RC_SUCCESS;
+    }
 
     key_policingprofile_t *key_policingprofile =
-      reinterpret_cast<key_policingprofile_t *>(okey->get_key());
+        reinterpret_cast<key_policingprofile_t *>(okey->get_key());
 
-    if (NULL == val_policingmap || NULL == key_policingprofile) {
+    if (NULL == key_policingprofile) {
       UPLL_LOG_DEBUG("val or key struct is NULL");
       DELETE_IF_NOT_NULL(okey);
       return UPLL_RC_ERR_GENERIC;
     }
 
     uuu::upll_strncpy(key_policingprofile->policingprofile_name,
-                    val_policingmap->policer_name,
-                    (kMaxLenPolicingProfileName + 1));
+                      val_policingmap->policer_name,
+                      (kMaxLenPolicingProfileName + 1));
 
-    DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutCtrlr };
-    result_code = mgr->ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop, dmi,
-                                  RENAMETBL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-        UPLL_LOG_DEBUG("ReadConfigDB no instance");
-        DELETE_IF_NOT_NULL(okey);
-        return UPLL_RC_SUCCESS;
-      }
+    DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutCtrlr };
+    result_code = mgr->ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop, dmi,
+                                    RENAMETBL);
+    if ((result_code != UPLL_RC_SUCCESS) &&
+        (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
       UPLL_LOG_DEBUG("GetRenamedControllerKey failed. ReadConfigDB failed "
-                  "to read policingprofile renametbl - %d",
-                  result_code);
+                     "to read policingprofile renametbl - %d",
+                     result_code);
       DELETE_IF_NOT_NULL(okey);
       return result_code;
     }
+    if (UPLL_RC_SUCCESS == result_code) {
+      val_rename_policingprofile_t *rename_policingprofile =
+          reinterpret_cast<val_rename_policingprofile_t *>(GetVal(okey));
+      if (!rename_policingprofile) {
+        UPLL_LOG_DEBUG("rename_policingprofile NULL")
+            DELETE_IF_NOT_NULL(okey);
+        return UPLL_RC_ERR_GENERIC;
+      }
 
-    val_rename_policingprofile_t *rename_policingprofile =
-      reinterpret_cast<val_rename_policingprofile_t *>(GetVal(okey));
-    if (!rename_policingprofile) {
-      UPLL_LOG_DEBUG("rename_policingprofile NULL")
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
+      uuu::upll_strncpy(val_policingmap->policer_name,
+                        rename_policingprofile->policingprofile_newname,
+                        (kMaxLenPolicingProfileName + 1));
     }
-
-    uuu::upll_strncpy(val_policingmap->policer_name,
-                      rename_policingprofile->policingprofile_newname,
-                      (kMaxLenPolicingProfileName + 1));
     DELETE_IF_NOT_NULL(okey);
   }
-  }
   return UPLL_RC_SUCCESS;
 }
 
@@ -2130,23 +2076,27 @@ bool VbrIfPolicingMapMoMgr::CompareValidValue(void *&val1, void *val2,
   val_policingmap_t *val_pm2 = reinterpret_cast<val_policingmap_t *>(val2);
   if (UNC_VF_INVALID == val_pm1->valid[UPLL_IDX_POLICERNAME_PM] &&
       UNC_VF_VALID == val_pm2->valid[UPLL_IDX_POLICERNAME_PM]) {
-      val_pm1->valid[UPLL_IDX_POLICERNAME_PM] = UNC_VF_VALID_NO_VALUE;
-  } else  if (UNC_VF_VALID == val_pm1->valid[UPLL_IDX_POLICERNAME_PM] &&
-      UNC_VF_VALID == val_pm2->valid[UPLL_IDX_POLICERNAME_PM]) {
-      if (!strcmp(reinterpret_cast<char*>(val_pm1->policer_name),
-               reinterpret_cast<char*>(val_pm2->policer_name))) {
-        val_pm1->valid[UPLL_IDX_POLICERNAME_PM] = UNC_VF_INVALID;
-      }
+    val_pm1->valid[UPLL_IDX_POLICERNAME_PM] = UNC_VF_VALID_NO_VALUE;
+  } else {
+    if (UNC_VF_VALID == val_pm1->valid[UPLL_IDX_POLICERNAME_PM] &&
+              UNC_VF_VALID == val_pm2->valid[UPLL_IDX_POLICERNAME_PM]) {
+    if (!strcmp(reinterpret_cast<char*>(val_pm1->policer_name),
+                reinterpret_cast<char*>(val_pm2->policer_name))) {
+      val_pm1->valid[UPLL_IDX_POLICERNAME_PM] = UNC_VF_INVALID;
+    }
+  }
   }
   if ((UNC_VF_VALID == (uint8_t)val_pm1->valid[UPLL_IDX_POLICERNAME_PM]) ||
-    (UNC_VF_VALID_NO_VALUE == (uint8_t)val_pm1->valid[UPLL_IDX_POLICERNAME_PM])) {
-      invalid_attr = false;
+      (UNC_VF_VALID_NO_VALUE == (uint8_t)
+       val_pm1->valid[UPLL_IDX_POLICERNAME_PM])) {
+    invalid_attr = false;
   }
 
   return invalid_attr;
 }
 
-bool VbrIfPolicingMapMoMgr::CompareKey(ConfigKeyVal *key1, ConfigKeyVal *key2) {
+bool VbrIfPolicingMapMoMgr::CompareKey(ConfigKeyVal *key1,
+                                       ConfigKeyVal *key2) {
   UPLL_FUNC_TRACE;
   key_vbr_if_t *vbr_if_key1, *vbr_if_key2;
   bool match = false;
@@ -2160,19 +2110,25 @@ bool VbrIfPolicingMapMoMgr::CompareKey(ConfigKeyVal *key1, ConfigKeyVal *key2) {
     return false;
   }
   if (strncmp(
-      reinterpret_cast<const char *>(vbr_if_key1->vbr_key.vtn_key.vtn_name),
-      reinterpret_cast<const char *>(vbr_if_key2->vbr_key.vtn_key.vtn_name),
-      kMaxLenVtnName + 1) == 0) {
+          reinterpret_cast<const char *>
+          (vbr_if_key1->vbr_key.vtn_key.vtn_name),
+          reinterpret_cast<const char *>
+          (vbr_if_key2->vbr_key.vtn_key.vtn_name),
+          kMaxLenVtnName + 1) == 0) {
     match = true;
-    UPLL_LOG_DEBUG("PolicingProfileEntryMoMgr::CompareKey, Both Keys are same");
+    UPLL_LOG_DEBUG("PolicingProfileEntryMoMgr::CompareKey,"
+                   "Both Keys are same");
   }
   return match;
 }
 
 #if 0
 upll_rc_t VbrIfPolicingMapMoMgr::UpdateConfigStatus(ConfigKeyVal *ckv,
-    unc_keytype_operation_t op, uint32_t driver_result, ConfigKeyVal *nreq,
-    DalDmlIntf *dmi, ConfigKeyVal *ctrlr_key) {
+                                                    unc_keytype_operation_t op,
+                                                    uint32_t driver_result,
+                                                    ConfigKeyVal *nreq,
+                                                    DalDmlIntf *dmi,
+                                                    ConfigKeyVal *ctrlr_key) {
   UPLL_FUNC_TRACE;
   val_policingmap_t *val = NULL;
   unc_keytype_configstatus_t cs_status =
@@ -2197,16 +2153,17 @@ upll_rc_t VbrIfPolicingMapMoMgr::UpdateConfigStatus(ConfigKeyVal *ckv,
 #endif
 
 upll_rc_t VbrIfPolicingMapMoMgr::UpdateAuditConfigStatus(
-                               unc_keytype_configstatus_t cs_status,
-                               uuc::UpdateCtrlrPhase phase,
-                               ConfigKeyVal *&ckv_running) {
+    unc_keytype_configstatus_t cs_status,
+    uuc::UpdateCtrlrPhase phase,
+    ConfigKeyVal *&ckv_running,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   if (NULL == ckv_running)
     return UPLL_RC_ERR_GENERIC;
   val_policingmap_t *val;
   val = reinterpret_cast<val_policingmap_t *>
-                              (GetVal(ckv_running));
+      (GetVal(ckv_running));
   if (NULL == val) {
     UPLL_LOG_DEBUG("vbr_val NULL");
     return UPLL_RC_ERR_GENERIC;
@@ -2214,14 +2171,14 @@ upll_rc_t VbrIfPolicingMapMoMgr::UpdateAuditConfigStatus(
   if (uuc::kUpllUcpCreate == phase )
     val->cs_row_status = cs_status;
   if ((uuc::kUpllUcpUpdate == phase) &&
-           (val->cs_row_status == UNC_CS_INVALID ||
-            val->cs_row_status == UNC_CS_NOT_APPLIED))
+      (val->cs_row_status == UNC_CS_INVALID ||
+       val->cs_row_status == UNC_CS_NOT_APPLIED))
     val->cs_row_status = cs_status;
   for ( unsigned int loop = 0;
-      loop < sizeof(val->valid)/sizeof(uint8_t); ++loop ) {
+       loop < sizeof(val->valid)/sizeof(uint8_t); ++loop ) {
     if ((cs_status == UNC_CS_INVALID && UNC_VF_VALID == val->valid[loop]) ||
-         cs_status == UNC_CS_APPLIED)
-       val->cs_attr[loop] = cs_status;
+        cs_status == UNC_CS_APPLIED)
+      val->cs_attr[loop] = cs_status;
   }
   return result_code;
 }
@@ -2239,7 +2196,7 @@ upll_rc_t VbrIfPolicingMapMoMgr::GetValid(void *val, uint64_t indx,
     switch (indx) {
       case uudst::vbr_if_policingmap::kDbiPolicername:
         valid = &(reinterpret_cast<val_policingmap_t *>
-                (val)->valid[UPLL_IDX_POLICERNAME_PM]);
+                  (val)->valid[UPLL_IDX_POLICERNAME_PM]);
         break;
       default:
         UPLL_LOG_DEBUG("Invalid Index");
@@ -2252,24 +2209,24 @@ upll_rc_t VbrIfPolicingMapMoMgr::GetValid(void *val, uint64_t indx,
 }
 
 upll_rc_t VbrIfPolicingMapMoMgr::AllocVal(ConfigVal *&ck_val,
-                                        upll_keytype_datatype_t dt_type,
-                                        MoMgrTables tbl) {
-UPLL_FUNC_TRACE;
-void *val;
-if (ck_val != NULL) {
-  UPLL_LOG_DEBUG("ck_val is not NULL");
-  return UPLL_RC_ERR_GENERIC;
-}
-switch (tbl) {
-  case MAINTBL:
-    val = reinterpret_cast<void *>
-        (ConfigKeyVal::Malloc(sizeof(val_policingmap_t)));
-    ck_val = new ConfigVal(IpctSt::kIpcStValPolicingmap, val);
-  break;
-  default:
-    UPLL_LOG_DEBUG("AllocVal val_policingmap_t Allocation failure");
-    val = NULL;
-    break;
+                                          upll_keytype_datatype_t dt_type,
+                                          MoMgrTables tbl) {
+  UPLL_FUNC_TRACE;
+  void *val;
+  if (ck_val != NULL) {
+    UPLL_LOG_DEBUG("ck_val is not NULL");
+    return UPLL_RC_ERR_GENERIC;
+  }
+  switch (tbl) {
+    case MAINTBL:
+      val = reinterpret_cast<void *>
+          (ConfigKeyVal::Malloc(sizeof(val_policingmap_t)));
+      ck_val = new ConfigVal(IpctSt::kIpcStValPolicingmap, val);
+      break;
+    default:
+      UPLL_LOG_DEBUG("AllocVal val_policingmap_t Allocation failure");
+      val = NULL;
+      break;
   }
   if (NULL == ck_val) {
     UPLL_LOG_DEBUG("AllocVal ck_val Allocation failure");
@@ -2294,7 +2251,7 @@ upll_rc_t VbrIfPolicingMapMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
   if (tmp) {
     if (tbl == MAINTBL) {
       val_policingmap_t *ival = reinterpret_cast<val_policingmap_t *>(GetVal(
-          req));
+              req));
       if (NULL == ival) {
         UPLL_LOG_DEBUG("DupConfigKeyVal val_policingmap_t alloc failure");
         return UPLL_RC_ERR_GENERIC;
@@ -2313,19 +2270,19 @@ upll_rc_t VbrIfPolicingMapMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
     }
     if (tmp1) {
       tmp1->set_user_data(tmp->get_user_data());
-//      tmp = tmp->get_next_cfg_val();
+      //      tmp = tmp->get_next_cfg_val();
     }
   }
   void *tkey = (req != NULL) ? (req)->get_key() : NULL;
   key_vbr_if_t *ikey = reinterpret_cast<key_vbr_if_t *>(tkey);
   key_vbr_if_t *vbr_if_key = reinterpret_cast<key_vbr_if_t *>
-  (ConfigKeyVal::Malloc(sizeof(key_vbr_if_t)));
+      (ConfigKeyVal::Malloc(sizeof(key_vbr_if_t)));
   memcpy(vbr_if_key, ikey, sizeof(key_vbr_if_t));
   okey = new ConfigKeyVal(UNC_KT_VBRIF_POLICINGMAP, IpctSt::kIpcStKeyVbrIf,
                           vbr_if_key, tmp1);
   if (!okey) {
     if (vbr_if_key) free(vbr_if_key);
-    DELETE_IF_NOT_NULL(tmp1); 
+    DELETE_IF_NOT_NULL(tmp1);
     UPLL_LOG_DEBUG("okey failed");
     return UPLL_RC_ERR_GENERIC;
   }
@@ -2340,6 +2297,8 @@ upll_rc_t VbrIfPolicingMapMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   key_vbr_if_t *vbr_if_key = NULL;
   void *pkey = NULL;
+  bool cfgval_ctrlr = false;
+
 
   if (parent_key == NULL) {
     vbr_if_key = reinterpret_cast<key_vbr_if_t *>
@@ -2364,7 +2323,7 @@ upll_rc_t VbrIfPolicingMapMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
   if ((okey) && (okey->get_key())) {
     vbr_if_key = reinterpret_cast<key_vbr_if_t *>(okey->get_key());
   } else {
-      vbr_if_key = reinterpret_cast<key_vbr_if_t *>
+    vbr_if_key = reinterpret_cast<key_vbr_if_t *>
         (ConfigKeyVal::Malloc(sizeof(key_vbr_if_t)));
   }
   switch (parent_key->get_key_type()) {
@@ -2395,6 +2354,42 @@ upll_rc_t VbrIfPolicingMapMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
                         reinterpret_cast<key_vbr_if *>(pkey)->if_name,
                         (kMaxLenInterfaceName + 1));
       break;
+      /* VlanmapOnBoundary: Added vlink case */
+    case UNC_KT_VLINK: {
+      uint8_t *vnode_name;
+      uint8_t *vnode_ifname;
+      uint8_t flags = 0;
+      val_vlink *vlink_val = reinterpret_cast<val_vlink *>(GetVal(parent_key));
+      if (!vlink_val) {
+        UPLL_LOG_TRACE("ERROR");
+        if (!okey || !(okey->get_key()))
+          FREE_IF_NOT_NULL(vbr_if_key);
+        return UPLL_RC_ERR_GENERIC;
+      }
+
+      GET_USER_DATA_FLAGS(parent_key->get_cfg_val(), flags);
+      flags &=  VLINK_FLAG_NODE_POS;
+      UPLL_LOG_DEBUG("Vlink flag node position %d", flags);
+
+      if (flags == kVlinkVnode2) {
+        cfgval_ctrlr = true;
+        vnode_name = vlink_val->vnode2_name;
+        vnode_ifname = vlink_val->vnode2_ifname;
+      } else {
+        vnode_name = vlink_val->vnode1_name;
+        vnode_ifname = vlink_val->vnode1_ifname;
+      }
+      uuu::upll_strncpy(vbr_if_key->vbr_key.vtn_key.vtn_name,
+                        reinterpret_cast<key_vlink *>(pkey)->vtn_key.vtn_name,
+                        (kMaxLenVtnName + 1));
+      if (vnode_name)
+        uuu::upll_strncpy(vbr_if_key->vbr_key.vbridge_name, vnode_name,
+                          (kMaxLenVnodeName + 1));
+      if (vnode_ifname)
+        uuu::upll_strncpy(vbr_if_key->if_name, vnode_ifname,
+                          (kMaxLenInterfaceName + 1));
+      break;
+    }
     default:
       if (vbr_if_key) free(vbr_if_key);
       return UPLL_RC_ERR_GENERIC;
@@ -2407,10 +2402,18 @@ upll_rc_t VbrIfPolicingMapMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
   }
 
   if (!okey) {
-       okey = new ConfigKeyVal(UNC_KT_VBRIF_POLICINGMAP,
-                IpctSt::kIpcStKeyVbrIf, vbr_if_key, NULL);
+    okey = new ConfigKeyVal(UNC_KT_VBRIF_POLICINGMAP,
+                            IpctSt::kIpcStKeyVbrIf, vbr_if_key, NULL);
   }
-  SET_USER_DATA(okey, parent_key);
+
+  /* In case of node2 of vlink, set the user_data
+   * from vlink's cfg_val */
+  if (cfgval_ctrlr) {
+    SET_USER_DATA(okey, parent_key->get_cfg_val());
+  } else {
+    SET_USER_DATA(okey, parent_key);
+  }
+
   return result_code;
 }
 
@@ -2427,61 +2430,63 @@ upll_rc_t VbrIfPolicingMapMoMgr::ValidateMessage(IpcReqRespHeader *req,
 
   key_vbr_if_t *key_vbrif = NULL;
   key_vbrif_policingmap_entry_t *key_vbrif_policingmap_entry = NULL;
-  if(req->option2 != UNC_OPT2_NONE) {
+  if (req->option2 != UNC_OPT2_NONE) {
     UPLL_LOG_DEBUG(" Error: option2 is not NONE");
     return UPLL_RC_ERR_INVALID_OPTION2;
   }
-  if((req->option1 != UNC_OPT1_NORMAL) 
-              &&(req->option1 != UNC_OPT1_DETAIL)) {
+  if ((req->option1 != UNC_OPT1_NORMAL)
+      &&(req->option1 != UNC_OPT1_DETAIL)) {
     UPLL_LOG_DEBUG(" Error: option1 is not NORMAL");
     return UPLL_RC_ERR_INVALID_OPTION1;
   }
 
-  if((req->option1 != UNC_OPT1_NORMAL) 
-             &&(req->operation == UNC_OP_READ_SIBLING_COUNT)) {
+  if ((req->option1 != UNC_OPT1_NORMAL)
+      &&(req->operation == UNC_OP_READ_SIBLING_COUNT)) {
     UPLL_LOG_DEBUG(" Error: option1 is not NORMAL for ReadSiblingCount");
     return UPLL_RC_ERR_INVALID_OPTION1;
   }
 
   if ((req->option1 == UNC_OPT1_DETAIL) &&
       (req->datatype != UPLL_DT_STATE)) {
-     UPLL_LOG_DEBUG(" Invalid Datatype(%d)", req->datatype);
-     return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
+    UPLL_LOG_DEBUG(" Invalid Datatype(%d)", req->datatype);
+    return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
   }
 
   if (UNC_KT_VBRIF_POLICINGMAP == key->get_key_type()) {
-    if ((req->datatype == UPLL_DT_IMPORT) && (req->operation == UNC_OP_READ || 
-         req->operation == UNC_OP_READ_SIBLING ||
-         req->operation == UNC_OP_READ_SIBLING_BEGIN ||
-         req->operation == UNC_OP_READ_NEXT ||
-         req->operation == UNC_OP_READ_BULK ||
-         req->operation == UNC_OP_READ_SIBLING_COUNT)) {
+    if ((req->datatype == UPLL_DT_IMPORT) && (
+            req->operation == UNC_OP_READ ||
+            req->operation == UNC_OP_READ_SIBLING ||
+            req->operation == UNC_OP_READ_SIBLING_BEGIN ||
+            req->operation == UNC_OP_READ_NEXT ||
+            req->operation == UNC_OP_READ_BULK ||
+            req->operation == UNC_OP_READ_SIBLING_COUNT)) {
       return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
     }
 
     if (key->get_st_num() != IpctSt::kIpcStKeyVbrIf) {
       UPLL_LOG_DEBUG("Invalid key structure received. struct num - %d",
-          key->get_st_num());
+                     key->get_st_num());
       return UPLL_RC_ERR_BAD_REQUEST;
     }
     key_vbrif = reinterpret_cast<key_vbr_if_t *>(key->get_key());
   } else if (UNC_KT_VBRIF_POLICINGMAP_ENTRY == key->get_key_type()) {
-    if ((req->datatype == UPLL_DT_IMPORT) && (req->operation == UNC_OP_READ || 
-         req->operation == UNC_OP_READ_SIBLING ||
-         req->operation == UNC_OP_READ_SIBLING_BEGIN ||
-         req->operation == UNC_OP_READ_NEXT ||
-         req->operation == UNC_OP_READ_BULK ||
-         req->operation == UNC_OP_READ_SIBLING_COUNT)) {
+    if ((req->datatype == UPLL_DT_IMPORT) && (
+            req->operation == UNC_OP_READ ||
+            req->operation == UNC_OP_READ_SIBLING ||
+            req->operation == UNC_OP_READ_SIBLING_BEGIN ||
+            req->operation == UNC_OP_READ_NEXT ||
+            req->operation == UNC_OP_READ_BULK ||
+            req->operation == UNC_OP_READ_SIBLING_COUNT)) {
       return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
     }
 
     if (req->datatype != UPLL_DT_STATE) {
-       UPLL_LOG_DEBUG(" Unsupported Datatype (%d)", req->datatype);
-       return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
+      UPLL_LOG_DEBUG(" Unsupported Datatype (%d)", req->datatype);
+      return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
     }
     if (key->get_st_num() != IpctSt::kIpcStKeyVbrifPolicingmapEntry) {
       UPLL_LOG_DEBUG("Invalid key structure received. struct num - %d",
-          key->get_st_num());
+                     key->get_st_num());
       return UPLL_RC_ERR_BAD_REQUEST;
     }
     key_vbrif_policingmap_entry =
@@ -2501,7 +2506,7 @@ upll_rc_t VbrIfPolicingMapMoMgr::ValidateMessage(IpcReqRespHeader *req,
   /** Use VbrIfMoMgr api to validate key struct */
   VbrIfMoMgr *mgrvbrif =
       reinterpret_cast<VbrIfMoMgr *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_VBR_IF)));
+                  UNC_KT_VBR_IF)));
 
   if (NULL == mgrvbrif) {
     UPLL_LOG_DEBUG("Unable to get VBR_IF object to validate key_vbrif");
@@ -2549,15 +2554,15 @@ upll_rc_t VbrIfPolicingMapMoMgr::ValidateMessage(IpcReqRespHeader *req,
 
   if (UPLL_RC_SUCCESS != rt_code) {
     UPLL_LOG_DEBUG(" PolicierName syntax validation failed :"
-                  "Err Code - %d",
-                  rt_code);
+                   "Err Code - %d",
+                   rt_code);
   }
   return rt_code;
 }
 
 upll_rc_t VbrIfPolicingMapMoMgr::ValidateCapability(IpcReqRespHeader *req,
-                                              ConfigKeyVal *ikey,
-                                              const char *ctrlr_name) {
+                                                    ConfigKeyVal *ikey,
+                                                    const char *ctrlr_name) {
   UPLL_FUNC_TRACE;
 
   upll_rc_t rt_code = UPLL_RC_ERR_GENERIC;
@@ -2580,18 +2585,17 @@ upll_rc_t VbrIfPolicingMapMoMgr::ValidateCapability(IpcReqRespHeader *req,
   const uint8_t *attrs = NULL;
   uint32_t max_attrs = 0;
 
-  UPLL_LOG_TRACE("ctrlr_name (%s),operation : (%d)", ctrlr_name, req->operation);
+  UPLL_LOG_TRACE("ctrlr_name (%s),operation : (%d)",
+                 ctrlr_name,
+                 req->operation);
 
   switch (req->operation) {
     case UNC_OP_CREATE:
-      result_code = GetCreateCapability(ctrlr_name, ikey->get_key_type(),
-                                        &max_instance_count, &max_attrs, &attrs);
-      if (result_code && (max_instance_count != 0) &&
-          (cur_instance_count >= max_instance_count)) {
-        UPLL_LOG_DEBUG("Instance count %d exceeds %d", cur_instance_count,
-                      max_instance_count);
-        return UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
-      }
+      result_code = GetCreateCapability(ctrlr_name,
+                                        ikey->get_key_type(),
+                                        &max_instance_count,
+                                        &max_attrs,
+                                        &attrs);
       break;
     case UNC_OP_UPDATE:
       result_code = GetUpdateCapability(ctrlr_name, ikey->get_key_type(),
@@ -2600,42 +2604,41 @@ upll_rc_t VbrIfPolicingMapMoMgr::ValidateCapability(IpcReqRespHeader *req,
     default:
       if (req->datatype == UPLL_DT_STATE)
         result_code = GetStateCapability(ctrlr_name, ikey->get_key_type(),
-                                      &max_attrs, &attrs);
+                                         &max_attrs, &attrs);
       else
         result_code = GetReadCapability(ctrlr_name, ikey->get_key_type(),
-                                      &max_attrs, &attrs);
+                                        &max_attrs, &attrs);
       break;
   }
 
   if (!result_code) {
     UPLL_LOG_DEBUG("keytype(%d) is not supported by controller(%s)"
-        " for operation(%d)",
-        ikey->get_key_type(), ctrlr_name, req->operation);
+                   " for operation(%d)",
+                   ikey->get_key_type(), ctrlr_name, req->operation);
     return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
   }
-  val_policingmap_t *val_policingmap = reinterpret_cast<val_policingmap_t *>(GetVal(ikey));
-  if (val_policingmap) {
 
-   if (max_attrs > 0) {
-  
-    if ((val_policingmap->valid[UPLL_IDX_POLICERNAME_PM] == UNC_VF_VALID)
-        || (val_policingmap->valid[UPLL_IDX_POLICERNAME_PM]
-          == UNC_VF_VALID_NO_VALUE)) {
-      if (attrs[unc::capa::vtn_policingmap::kCapPolicername] == 0) {
-        val_policingmap->valid[UPLL_IDX_POLICERNAME_PM] =
-          UNC_VF_NOT_SUPPORTED;
-        UPLL_LOG_DEBUG("Policername attr is not supported by ctrlr");
-        return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
+
+  val_policingmap_t *val_policingmap = reinterpret_cast<val_policingmap_t *>
+      (GetVal(ikey));
+  if (val_policingmap) {
+    if (max_attrs > 0) {
+      if ((val_policingmap->valid[UPLL_IDX_POLICERNAME_PM] == UNC_VF_VALID)
+          || (val_policingmap->valid[UPLL_IDX_POLICERNAME_PM]
+              == UNC_VF_VALID_NO_VALUE)) {
+        if (attrs[unc::capa::vtn_policingmap::kCapPolicername] == 0) {
+          val_policingmap->valid[UPLL_IDX_POLICERNAME_PM] =
+              UNC_VF_NOT_SUPPORTED;
+          UPLL_LOG_DEBUG("Policername attr is not supported by ctrlr");
+          return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
+        }
       }
+    } else {
+      UPLL_LOG_DEBUG("Attribute list is empty for operation %d",
+                     req->operation);
+      return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
     }
-  } else {
-    UPLL_LOG_DEBUG("Attribute list is empty for operation %d", req->operation);
-    return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
   }
- } 
   return UPLL_RC_SUCCESS;
 }
 upll_rc_t VbrIfPolicingMapMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
@@ -2652,7 +2655,7 @@ upll_rc_t VbrIfPolicingMapMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
     UPLL_LOG_DEBUG(" Invalid key type received. Key type - %d", ikey_type);
     return UPLL_RC_ERR_GENERIC;
   }
-  DELETE_IF_NOT_NULL(okey); 
+  DELETE_IF_NOT_NULL(okey);
   key_vbr_if_t *pkey = reinterpret_cast<key_vbr_if_t*>(ikey->get_key());
   if (!pkey) {
     UPLL_LOG_DEBUG(" Input vbr if policing map key is NULL ");
@@ -2709,18 +2712,19 @@ bool VbrIfPolicingMapMoMgr::IsValidKey(void *key, uint64_t index) {
 }
 
 upll_rc_t VbrIfPolicingMapMoMgr::SwapKeyVal(ConfigKeyVal *ikey,
-                       ConfigKeyVal *&okey,
-                       DalDmlIntf *dmi, uint8_t *ctrlr) {
+                                            ConfigKeyVal *&okey,
+                                            DalDmlIntf *dmi, uint8_t *ctrlr) {
   return UPLL_RC_SUCCESS;
 }
 upll_rc_t VbrIfPolicingMapMoMgr::IsKeyInUse(upll_keytype_datatype_t dt_type,
-                     const ConfigKeyVal *ckv,
-                     bool *in_use,
-                     DalDmlIntf *dmi) {
-    return UPLL_RC_SUCCESS;
+                                            const ConfigKeyVal *ckv,
+                                            bool *in_use,
+                                            DalDmlIntf *dmi) {
+  return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t VbrIfPolicingMapMoMgr::TxUpdateController(unc_key_type_t keytype,
+upll_rc_t VbrIfPolicingMapMoMgr::TxUpdateController(
+    unc_key_type_t keytype,
     uint32_t session_id,
     uint32_t config_id,
     uuc::UpdateCtrlrPhase phase,
@@ -2747,11 +2751,11 @@ upll_rc_t VbrIfPolicingMapMoMgr::TxUpdateController(unc_key_type_t keytype,
     return UPLL_RC_ERR_GENERIC;
   }
   unc_keytype_operation_t op = (phase == uuc::kUpllUcpCreate)?UNC_OP_CREATE:
-     ((phase == uuc::kUpllUcpUpdate)?UNC_OP_UPDATE:
-     ((phase == uuc::kUpllUcpDelete)?UNC_OP_DELETE:UNC_OP_INVALID));
+      ((phase == uuc::kUpllUcpUpdate)?UNC_OP_UPDATE:
+       ((phase == uuc::kUpllUcpDelete)?UNC_OP_DELETE:UNC_OP_INVALID));
 
   result_code = DiffConfigDB(UPLL_DT_CANDIDATE, UPLL_DT_RUNNING,
-      op, req, nreq, &dal_cursor_handle, dmi, MAINTBL);
+                             op, req, nreq, &dal_cursor_handle, dmi, MAINTBL);
   while (result_code == UPLL_RC_SUCCESS) {
     //  Get Next Record
     ck_main = NULL;
@@ -2879,41 +2883,42 @@ upll_rc_t VbrIfPolicingMapMoMgr::TxUpdateController(unc_key_type_t keytype,
 
     UPLL_LOG_DEBUG("GetVexternalInformation (%d)", vext_datatype);
     result_code = GetVexternalInformation(ck_main, vext_datatype, pfc_val,
-        pfc_val_ext, db_flag, dmi);
+                                          pfc_val_ext, db_flag, dmi);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("GetVexternalInformation fail");
       DELETE_IF_NOT_NULL(ck_main);
-      free (pfc_val_ext);
+      free(pfc_val_ext);
       free(pfc_val);
       return result_code;
     }
     upll_keytype_datatype_t dt_type = (op == UNC_OP_DELETE)?
-      UPLL_DT_RUNNING:UPLL_DT_CANDIDATE;
+        UPLL_DT_RUNNING:UPLL_DT_CANDIDATE;
 
     UPLL_LOG_DEBUG("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
-        ctrlr_dom.domain);
+                   ctrlr_dom.domain);
     ConfigKeyVal *temp_ck_main = NULL;
     result_code = DupConfigKeyVal(temp_ck_main, req, MAINTBL);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("DupConfigKeyVal failed %d", result_code);
       DELETE_IF_NOT_NULL(ck_main);
-      free (pfc_val_ext);
+      free(pfc_val_ext);
       free(pfc_val);
       return result_code;
     }
     result_code = GetRenamedControllerKey(ck_main, dt_type,
-        dmi, &ctrlr_dom);
+                                          dmi, &ctrlr_dom);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("GetRenamedControllerKey fail");
       DELETE_IF_NOT_NULL(ck_main);
-      free (pfc_val_ext);
+      free(pfc_val_ext);
       free(pfc_val);
       break;
     }
     if (UNC_OP_DELETE == op) {
       pfc_val->valid[PFCDRV_IDX_VAL_POLICINGMAP_PM] = UNC_VF_INVALID;
     } else {
-      val_policingmap_t* val = reinterpret_cast<val_policingmap_t *>(GetVal(ck_main)); // req
+      val_policingmap_t* val = reinterpret_cast<val_policingmap_t *>
+          (GetVal(ck_main));  // req
       UPLL_LOG_DEBUG("val_policingmap_t (%s)", val->policer_name);
 
       pfc_val->valid[PFCDRV_IDX_VAL_POLICINGMAP_PM] = UNC_VF_VALID;
@@ -2928,14 +2933,14 @@ upll_rc_t VbrIfPolicingMapMoMgr::TxUpdateController(unc_key_type_t keytype,
                                      pfc_val));
 
     affected_ctrlr_set->insert
-      (string(reinterpret_cast<char *>(ctrlr_dom.ctrlr)));
+        (string(reinterpret_cast<char *>(ctrlr_dom.ctrlr)));
 
     UPLL_LOG_DEBUG("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
-        ctrlr_dom.domain);
+                   ctrlr_dom.domain);
     memset(&ipc_resp, 0, sizeof(IpcResponse));
     result_code = SendIpcReq(session_id, config_id, op, UPLL_DT_CANDIDATE,
-        ck_main, &ctrlr_dom, &ipc_resp);
-    if (result_code == UPLL_RC_ERR_RESOURCE_DISCONNECTED) {
+                             ck_main, &ctrlr_dom, &ipc_resp);
+    if (result_code == UPLL_RC_ERR_CTR_DISCONNECTED) {
       UPLL_LOG_DEBUG("driver result code - %d", result_code);
       result_code = UPLL_RC_SUCCESS;
     }
@@ -2970,7 +2975,7 @@ upll_rc_t VbrIfPolicingMapMoMgr::SetVlinkPortmapConfiguration(
     return result_code;
   }
   if (!flag) {
-//    return UPLL_RC_SUCCESS;
+    //    return UPLL_RC_SUCCESS;
   }
   ConfigKeyVal *ckv = NULL;
   result_code = GetChildConfigKey(ckv, NULL);
@@ -2981,26 +2986,26 @@ upll_rc_t VbrIfPolicingMapMoMgr::SetVlinkPortmapConfiguration(
   key_vbr_if_t *vbrif_key = reinterpret_cast<key_vbr_if_t *>(ikey->get_key());
 
   uuu::upll_strncpy(pp_key->vbr_key.vtn_key.vtn_name,
-      vbrif_key->vbr_key.vtn_key.vtn_name,
-      kMaxLenVtnName + 1);
+                    vbrif_key->vbr_key.vtn_key.vtn_name,
+                    kMaxLenVtnName + 1);
   UPLL_LOG_DEBUG("vtn name (%s)", pp_key->vbr_key.vtn_key.vtn_name);
 
   uuu::upll_strncpy(pp_key->vbr_key.vbridge_name,
-      vbrif_key->vbr_key.vbridge_name,
-      kMaxLenVnodeName + 1);
+                    vbrif_key->vbr_key.vbridge_name,
+                    kMaxLenVnodeName + 1);
   UPLL_LOG_DEBUG("vbr name (%s)", pp_key->vbr_key.vbridge_name);
 
   uuu::upll_strncpy(pp_key->if_name,
-      vbrif_key->if_name,
-      kMaxLenInterfaceName + 1);
+                    vbrif_key->if_name,
+                    kMaxLenInterfaceName + 1);
   UPLL_LOG_DEBUG("vtn name (%s)", pp_key->if_name);
 
 
   UPLL_LOG_DEBUG("dt_type (%d)", dt_type);
 
-  DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutFlag };
+  DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutFlag|kOpInOutCtrlr};
   result_code = ReadConfigDB(ckv, dt_type ,
-      UNC_OP_READ, dbop, dmi, MAINTBL);
+                             UNC_OP_READ, dbop, dmi, MAINTBL);
   if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
     UPLL_LOG_DEBUG("No Recrods in vbr_if_policingmap Table");
     DELETE_IF_NOT_NULL(ckv);
@@ -3013,37 +3018,88 @@ upll_rc_t VbrIfPolicingMapMoMgr::SetVlinkPortmapConfiguration(
   }
   uint8_t  flag_port_map = 0;
   GET_USER_DATA_FLAGS(ckv, flag_port_map);
+  val_policingmap_t *val_pm = reinterpret_cast<val_policingmap_t *>
+      (GetVal(ckv));
   if (flag & VLINK_CONFIGURED) {
+    if (flag_port_map  & SET_FLAG_VLINK) {
+      UPLL_LOG_DEBUG("Vlink Flag is already set in DB");
+      DELETE_IF_NOT_NULL(ckv);
+      return UPLL_RC_SUCCESS;
+    }
     UPLL_LOG_DEBUG("flag & VLINK_CONFIGURED");
     flag_port_map |= SET_FLAG_VLINK;
   } else if (flag & PORTMAP_CONFIGURED) {
+    if (flag_port_map  & SET_FLAG_PORTMAP) {
+      UPLL_LOG_DEBUG("Port-map Flag is already set in DB");
+      DELETE_IF_NOT_NULL(ckv);
+      return UPLL_RC_SUCCESS;
+    }
     UPLL_LOG_DEBUG("flag & PORTMAP_CONFIGURED");
     flag_port_map |= SET_FLAG_PORTMAP;
   } else if (flag & VLINK_PORTMAP_CONFIGURED) {
+    if (flag_port_map  & SET_FLAG_VLINK_PORTMAP) {
+      UPLL_LOG_DEBUG("Port-map Flag is already set in DB");
+      DELETE_IF_NOT_NULL(ckv);
+      return UPLL_RC_SUCCESS;
+    }
     UPLL_LOG_DEBUG("flag & PORTMAP_CONFIGURED");
     flag_port_map |= SET_FLAG_VLINK_PORTMAP;
   } else {
-    UPLL_LOG_DEBUG("default flag_port_map");
-    flag_port_map &= SET_FLAG_NO_VLINK_PORTMAP;
+    if (flag_port_map  & SET_FLAG_NO_VLINK_PORTMAP) {
+      UPLL_LOG_DEBUG("Port-map Flag is already cleared in DB");
+      DELETE_IF_NOT_NULL(ckv);
+      return UPLL_RC_SUCCESS;
+    }
+    UPLL_LOG_DEBUG("default flag_port_map")
+        flag_port_map &= SET_FLAG_NO_VLINK_PORTMAP;
   }
   SET_USER_DATA_FLAGS(ckv, flag_port_map);
   DbSubOp dbop_up = { kOpNotRead, kOpMatchNone, kOpInOutFlag };
   result_code = UpdateConfigDB(ckv, dt_type, UNC_OP_UPDATE,
-      dmi, &dbop_up, MAINTBL);
+                               dmi, &dbop_up, MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("UpdateConfigDB failure %d", result_code);
     DELETE_IF_NOT_NULL(ckv);
     return result_code;
   }
+
+  if (UNC_VF_VALID == val_pm->valid[UPLL_IDX_POLICERNAME_PM]) {
+    // Update the controller reference count for policing profile  based on the
+    // value of  portmap flag
+    // 1)Get vbrif associated ctrlr name and invoke the PP and PPE functions to
+    // check the refcount capability and update the refcount or create the
+    // record in policingprofilectrltbl and policingprofileentryctrltbl.
+    // 2)Create the record in policingprofileentryctrltbl
+    if (flag_port_map & SET_FLAG_PORTMAP) {
+      // If the portmap flag is configured then increment the reference count
+      //  Set the operation as CREATE
+      oper = UNC_OP_CREATE;
+    } else {
+      // If the portmap flag is not configured/cleared then decrement
+      // the reference count
+      // set the operation as DELETE
+      oper = UNC_OP_DELETE;
+    }
+
+    result_code = UpdateRefCountInPPCtrlr(ckv, dt_type, dmi,
+                                          oper);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG("Err while updating the policingprofile ctrlr table(%d)",
+                     result_code);
+      DELETE_IF_NOT_NULL(ckv);
+      return result_code;
+    }
+  }
   DELETE_IF_NOT_NULL(ckv);
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t VbrIfPolicingMapMoMgr::GetVexternalInformation(ConfigKeyVal* ck_main,
-  upll_keytype_datatype_t dt_type,
-  pfcdrv_val_vbrif_policingmap_t *& pfc_val,
-  pfcdrv_val_vbrif_vextif_t *&pfc_val_ext,
-  uint8_t db_flag, DalDmlIntf *dmi) {
+upll_rc_t VbrIfPolicingMapMoMgr::GetVexternalInformation(
+    ConfigKeyVal* ck_main,
+    upll_keytype_datatype_t dt_type,
+    pfcdrv_val_vbrif_policingmap_t *& pfc_val,
+    pfcdrv_val_vbrif_vextif_t *&pfc_val_ext,
+    uint8_t db_flag, DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
   uint8_t* vexternal = reinterpret_cast<uint8_t*>
@@ -3055,36 +3111,36 @@ upll_rc_t VbrIfPolicingMapMoMgr::GetVexternalInformation(ConfigKeyVal* ck_main,
   if ((db_flag & SET_FLAG_PORTMAP) || (db_flag & SET_FLAG_VLINK_PORTMAP)) {
     UPLL_LOG_DEBUG("SET_FLAG_PORTMAP SET_FLAG_VLINK_PORTMAP");
     key_vbr_if_t * temp_key =
-      reinterpret_cast<key_vbr_if_t*>(ck_main->get_key());
+        reinterpret_cast<key_vbr_if_t*>(ck_main->get_key());
 
     VbrIfMoMgr *mgrvbrif =
-      reinterpret_cast<VbrIfMoMgr *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_VBR_IF)));
+        reinterpret_cast<VbrIfMoMgr *>(const_cast<MoManager *>(GetMoManager(
+                    UNC_KT_VBR_IF)));
 
     result_code = mgrvbrif->GetChildConfigKey(ckv, NULL);
 
     key_vbr_if_t *vbr_if_key = reinterpret_cast<key_vbr_if_t*>
-      (ckv->get_key());
+        (ckv->get_key());
 
     uuu::upll_strncpy(vbr_if_key->vbr_key.vtn_key.vtn_name,
-        temp_key->vbr_key.vtn_key.vtn_name,
-        kMaxLenVtnName + 1);
+                      temp_key->vbr_key.vtn_key.vtn_name,
+                      kMaxLenVtnName + 1);
     UPLL_LOG_DEBUG("vtn name from temp_key (%s)",
                    vbr_if_key->vbr_key.vtn_key.vtn_name);
 
     uuu::upll_strncpy(vbr_if_key->vbr_key.vbridge_name,
-        temp_key->vbr_key.vbridge_name,
-        kMaxLenVnodeName + 1);
+                      temp_key->vbr_key.vbridge_name,
+                      kMaxLenVnodeName + 1);
     UPLL_LOG_DEBUG("vbr name from temp_key (%s)",
                    vbr_if_key->vbr_key.vbridge_name);
 
     uuu::upll_strncpy(vbr_if_key->if_name,
-        temp_key->if_name,
-        kMaxLenInterfaceName + 1);
+                      temp_key->if_name,
+                      kMaxLenInterfaceName + 1);
     UPLL_LOG_DEBUG("vbrif name from temp_key (%s)", vbr_if_key->if_name);
 
     result_code = mgrvbrif->GetVexternal(ckv, dt_type, dmi,
-        vexternal, vex_if, flags);
+                                         vexternal, vex_if, flags);
     if (UPLL_RC_SUCCESS != result_code) {
       free(vex_if);
       free(vexternal);
@@ -3093,14 +3149,14 @@ upll_rc_t VbrIfPolicingMapMoMgr::GetVexternalInformation(ConfigKeyVal* ck_main,
     }
 
     uuu::upll_strncpy(pfc_val_ext->vexternal_name,
-        vexternal,
-        kMaxLenVnodeName + 1);
+                      vexternal,
+                      kMaxLenVnodeName + 1);
     pfc_val_ext->valid[PFCDRV_IDX_VEXTERNAL_NAME_VBRIF] = UNC_VF_VALID;
     UPLL_LOG_DEBUG("vexternal name (%s)", pfc_val_ext->vexternal_name);
 
     uuu::upll_strncpy(pfc_val_ext->vext_if_name,
-        vex_if,
-        kMaxLenInterfaceName + 1);
+                      vex_if,
+                      kMaxLenInterfaceName + 1);
     pfc_val_ext->valid[PFCDRV_IDX_VEXT_IF_NAME_VBRIF] = UNC_VF_VALID;
     UPLL_LOG_DEBUG("vex_if (%s)", pfc_val_ext->vext_if_name);
 
@@ -3137,10 +3193,10 @@ upll_rc_t VbrIfPolicingMapMoMgr::ConstructReadDetailResponse(
     return result_code;
   }
   val_policingmap_t *val_policingmap =
-    reinterpret_cast<val_policingmap_t *>(GetVal(ikey));
+      reinterpret_cast<val_policingmap_t *>(GetVal(ikey));
   val_policingmap_t *out_val_policingmap =
-    reinterpret_cast<val_policingmap_t *>
-    (ConfigKeyVal::Malloc(sizeof(val_policingmap_t)));
+      reinterpret_cast<val_policingmap_t *>
+      (ConfigKeyVal::Malloc(sizeof(val_policingmap_t)));
   memcpy(out_val_policingmap, val_policingmap, sizeof(val_policingmap_t));
   tmp_okey->AppendCfgVal(IpctSt::kIpcStValPolicingmap, out_val_policingmap);
   temp_cfg_val =  drv_resp_ckv->get_cfg_val();
@@ -3205,8 +3261,8 @@ upll_rc_t VbrIfPolicingMapMoMgr::ConstructReadDetailResponse(
                              out_val_entry_st);
       tmp_okey->AppendCfgVal(IpctSt::kIpcStValPolicingprofileEntry,
                              out_val_ppe);
-       delete tkey;
-       tkey = NULL;
+      delete tkey;
+      tkey = NULL;
       if ((temp_cfg_val = temp_cfg_val->get_next_cfg_val()) == NULL) {
         UPLL_LOG_DEBUG("No val_policingmap_switch_st in configkeyval");
         continue;
@@ -3225,13 +3281,13 @@ upll_rc_t VbrIfPolicingMapMoMgr::ConstructReadDetailResponse(
         val_policingmap_switch_st_t *drv_val_switch_st =
             reinterpret_cast<val_policingmap_switch_st_t*>
             (temp_cfg_val->get_val());
-        memcpy(val_switch_st, drv_val_switch_st, 
+        memcpy(val_switch_st, drv_val_switch_st,
                sizeof(val_policingmap_switch_st_t));
-        if(drv_val_switch_st->valid[UPLL_IDX_IF_NAME_PMSS] == UNC_VF_VALID) {
+        if (drv_val_switch_st->valid[UPLL_IDX_IF_NAME_PMSS] == UNC_VF_VALID) {
           key_vbr_if_t *vbrif_pm_key =
               reinterpret_cast<key_vbr_if_t*>(ikey->get_key());
           ConfigKeyVal *vbrif_key_val = NULL;
-          unc::upll::kt_momgr::VbrIfMoMgr *vbrifmgr = 
+          unc::upll::kt_momgr::VbrIfMoMgr *vbrifmgr =
               reinterpret_cast<unc::upll::kt_momgr::VbrIfMoMgr *>
               (const_cast<MoManager *>(GetMoManager(UNC_KT_VBR_IF)));
           if (NULL == vbrifmgr) {
@@ -3245,7 +3301,7 @@ upll_rc_t VbrIfPolicingMapMoMgr::ConstructReadDetailResponse(
               vbrif_key_val,
               dmi);
           if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("Get vBridge info failed err code (%d)", 
+            UPLL_LOG_DEBUG("Get vBridge info failed err code (%d)",
                            result_code);
             free(val_switch_st);
             delete tmp_okey;
@@ -3282,9 +3338,9 @@ upll_rc_t VbrIfPolicingMapMoMgr::ConstructReadDetailResponse(
 }
 
 upll_rc_t VbrIfPolicingMapMoMgr::ReadDTStateNormal(
-                  IpcReqRespHeader *req,
-                  ConfigKeyVal *ikey,
-                  DalDmlIntf *dmi) {
+    IpcReqRespHeader *req,
+    ConfigKeyVal *ikey,
+    DalDmlIntf *dmi) {
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *dup_key = NULL;
   DbSubOp dbop = {kOpReadSingle, kOpMatchNone, kOpInOutCtrlr};
@@ -3295,7 +3351,7 @@ upll_rc_t VbrIfPolicingMapMoMgr::ReadDTStateNormal(
     return result_code;
   }
   result_code = ReadConfigDB(dup_key, req->datatype, UNC_OP_READ,
-      dbop, dmi, MAINTBL);
+                             dbop, dmi, MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("GetChildConfigKey failed");
     DELETE_IF_NOT_NULL(dup_key);
@@ -3308,23 +3364,28 @@ upll_rc_t VbrIfPolicingMapMoMgr::ReadDTStateNormal(
     return UPLL_RC_ERR_GENERIC;
   }
   val_policingmap_t *out_pm_val = reinterpret_cast<val_policingmap_t*>
-    (ConfigKeyVal::Malloc(sizeof(val_policingmap_t)));
+      (ConfigKeyVal::Malloc(sizeof(val_policingmap_t)));
   memcpy(out_pm_val, val_pm, sizeof(val_policingmap_t));
 
   ikey->AppendCfgVal(IpctSt::kIpcStValPolicingmap, out_pm_val);
 
   key_vbrif_policingmap_entry *key =
-       reinterpret_cast<key_vbrif_policingmap_entry *>(ikey->get_key());
+      reinterpret_cast<key_vbrif_policingmap_entry *>(ikey->get_key());
 
 
   PolicingProfileEntryMoMgr *mgr = reinterpret_cast<PolicingProfileEntryMoMgr*>
-             (const_cast<MoManager *>(GetMoManager
-             (UNC_KT_POLICING_PROFILE_ENTRY)));
+      (const_cast<MoManager *>(GetMoManager
+                               (UNC_KT_POLICING_PROFILE_ENTRY)));
   GET_USER_DATA_CTRLR(dup_key, ctrlr_id);
   ConfigKeyVal *ppe_ckv = NULL;
-  result_code = mgr->ReadPolicingProfileEntry(reinterpret_cast
-    <const char *>(val_pm->policer_name), key->sequence_num,
-    reinterpret_cast<const char *>(ctrlr_id), dmi, req->datatype, ppe_ckv);
+  result_code = mgr->ReadPolicingProfileEntry(
+      reinterpret_cast
+      <const char *>(val_pm->policer_name),
+      key->sequence_num,
+      reinterpret_cast<const char *>(ctrlr_id),
+      dmi,
+      req->datatype,
+      ppe_ckv);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("ReadPolicingProfileEntry failed %d", result_code);
     return result_code;
@@ -3336,21 +3397,21 @@ upll_rc_t VbrIfPolicingMapMoMgr::ReadDTStateNormal(
       reinterpret_cast<val_policingprofile_entry_t *>
       (ConfigKeyVal::Malloc(sizeof(val_policingprofile_entry_t)));
   memcpy(out_temp_val_policingprofile, temp_val_policingprofile,
-    sizeof(val_policingprofile_entry_t));
+         sizeof(val_policingprofile_entry_t));
   ikey->AppendCfgVal(IpctSt::kIpcStValPolicingprofileEntry,
-                       out_temp_val_policingprofile);
+                     out_temp_val_policingprofile);
   return UPLL_RC_SUCCESS;
 }
 
 
 upll_rc_t VbrIfPolicingMapMoMgr:: ReadSiblingDTsateNormal(
-                  ConfigKeyVal *ikey,
-                  ConfigKeyVal* tctrl_key,
-                  upll_keytype_datatype_t  dt_type,
-                  DbSubOp dbop,
-                  DalDmlIntf *dmi,
-                  ConfigKeyVal **resp_key,
-                  int count) {
+    ConfigKeyVal *ikey,
+    ConfigKeyVal* tctrl_key,
+    upll_keytype_datatype_t  dt_type,
+    DbSubOp dbop,
+    DalDmlIntf *dmi,
+    ConfigKeyVal **resp_key,
+    int count) {
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal* tkey = NULL;
   ConfigKeyVal* okey = NULL;
@@ -3358,8 +3419,8 @@ upll_rc_t VbrIfPolicingMapMoMgr:: ReadSiblingDTsateNormal(
 
   result_code =  DupConfigKeyVal(okey, ikey, MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
-     UPLL_LOG_DEBUG("DupConfigKeyVal Faill in  dup_key");
-          return result_code;
+    UPLL_LOG_DEBUG("DupConfigKeyVal Faill in  dup_key");
+    return result_code;
   }
 
   val_pm = reinterpret_cast<val_policingmap_t*>(GetVal(tctrl_key));
@@ -3369,65 +3430,66 @@ upll_rc_t VbrIfPolicingMapMoMgr:: ReadSiblingDTsateNormal(
     return UPLL_RC_ERR_GENERIC;
   }
   val_policingmap_t *val_polmap =
-    reinterpret_cast<val_policingmap_t *>
-        (ConfigKeyVal::Malloc(sizeof(val_policingmap_t)));
+      reinterpret_cast<val_policingmap_t *>
+      (ConfigKeyVal::Malloc(sizeof(val_policingmap_t)));
   memcpy(val_polmap, val_pm, sizeof(val_policingmap_t));
 
   okey->AppendCfgVal(IpctSt::kIpcStValPolicingmap, val_polmap);
 
   key_vbrif_policingmap_entry *key =
-       reinterpret_cast<key_vbrif_policingmap_entry *>(ikey->get_key());
+      reinterpret_cast<key_vbrif_policingmap_entry *>(ikey->get_key());
 
   key_policingprofile_entry_t *key_policingprofile_entry =
-     reinterpret_cast<key_policingprofile_entry_t *>
-     (ConfigKeyVal::Malloc(sizeof(key_vbrif_policingmap_entry_t)));
+      reinterpret_cast<key_policingprofile_entry_t *>
+      (ConfigKeyVal::Malloc(sizeof(key_vbrif_policingmap_entry_t)));
 
   key_policingprofile_entry->sequence_num = key->sequence_num;
 
   uuu::upll_strncpy(
-     key_policingprofile_entry->policingprofile_key.policingprofile_name,
-                    val_pm->policer_name,
-                    (kMaxLenPolicingProfileName+1));
+      key_policingprofile_entry->policingprofile_key.policingprofile_name,
+      val_pm->policer_name,
+      (kMaxLenPolicingProfileName+1));
 
   tkey = new ConfigKeyVal(UNC_KT_POLICING_PROFILE_ENTRY,
                           IpctSt::kIpcStKeyPolicingprofileEntry,
                           key_policingprofile_entry, NULL);
 
   PolicingProfileEntryMoMgr *mgr = reinterpret_cast<PolicingProfileEntryMoMgr*>
-             (const_cast<MoManager *>(GetMoManager
-             (UNC_KT_POLICING_PROFILE_ENTRY)));
+      (const_cast<MoManager *>(GetMoManager
+                               (UNC_KT_POLICING_PROFILE_ENTRY)));
 
   UPLL_LOG_DEBUG("Policer name and seq num (%s) (%d)",
-        key_policingprofile_entry->policingprofile_key.policingprofile_name,
-        key_policingprofile_entry->sequence_num);
+                 key_policingprofile_entry->
+                 policingprofile_key.policingprofile_name,
+                 key_policingprofile_entry->sequence_num);
 
   result_code = mgr->ReadDetailEntry(
-                   tkey, dt_type,  dbop, dmi);
+      tkey, dt_type,  dbop, dmi);
   if (result_code != UPLL_RC_SUCCESS) {
-     UPLL_LOG_DEBUG("ReadDetailEntry failed");
-     DELETE_IF_NOT_NULL(tkey);
-     delete okey;
-     return result_code;
+    UPLL_LOG_DEBUG("ReadDetailEntry failed");
+    DELETE_IF_NOT_NULL(tkey);
+    delete okey;
+    return result_code;
   }
   if (GetVal(tkey)) {
     val_policingprofile_entry_t *temp_val_policingprofile =
         reinterpret_cast<val_policingprofile_entry_t *>
         (tkey->get_cfg_val()->get_val());
-        val_policingprofile_entry_t* val_pp_entry =
+    val_policingprofile_entry_t* val_pp_entry =
         reinterpret_cast<val_policingprofile_entry_t*>
         (ConfigKeyVal::Malloc(sizeof(val_policingprofile_entry_t)));
-        memcpy(val_pp_entry, temp_val_policingprofile,
-                sizeof(val_policingprofile_entry_t));
+    memcpy(val_pp_entry, temp_val_policingprofile,
+           sizeof(val_policingprofile_entry_t));
     okey->AppendCfgVal(IpctSt::kIpcStValPolicingprofileEntry,
-                         val_pp_entry);
+                       val_pp_entry);
   }
 
   if (!count) {
     UPLL_LOG_DEBUG("count is 0");
     *resp_key = okey;
   } else {
-      UPLL_LOG_DEBUG("AppendCfgKeyVal in resp_key");
-      (*resp_key)->AppendCfgKeyVal(okey);
+    UPLL_LOG_DEBUG("AppendCfgKeyVal in resp_key");
+    (*resp_key)->AppendCfgKeyVal(okey);
   }
   return UPLL_RC_SUCCESS;
 }
@@ -3450,7 +3512,7 @@ upll_rc_t VbrIfPolicingMapMoMgr::ConstructReadEntryDetailResponse(
     return result_code;
   }
   val_policingmap_t *val_policingmap =
-    reinterpret_cast<val_policingmap_t *>(GetVal(ikey));
+      reinterpret_cast<val_policingmap_t *>(GetVal(ikey));
   val_policingmap_t *out_val_policingmap =
       reinterpret_cast<val_policingmap_t *>
       (ConfigKeyVal::Malloc(sizeof(val_policingmap_t)));
@@ -3520,7 +3582,7 @@ upll_rc_t VbrIfPolicingMapMoMgr::ConstructReadEntryDetailResponse(
                              out_val_ppe);
       delete tkey;
       tkey = NULL;
-     
+
       if ((temp_cfg_val = temp_cfg_val->get_next_cfg_val()) == NULL) {
         UPLL_LOG_DEBUG("Next Value structure is null");
         continue;
@@ -3537,13 +3599,13 @@ upll_rc_t VbrIfPolicingMapMoMgr::ConstructReadEntryDetailResponse(
         val_policingmap_switch_st_t *drv_val_switch_st =
             reinterpret_cast<val_policingmap_switch_st_t*>
             (temp_cfg_val->get_val());
-        memcpy(val_switch_st, drv_val_switch_st, 
+        memcpy(val_switch_st, drv_val_switch_st,
                sizeof(val_policingmap_switch_st_t));
-        if(drv_val_switch_st->valid[UPLL_IDX_IF_NAME_PMSS] == UNC_VF_VALID) {
+        if (drv_val_switch_st->valid[UPLL_IDX_IF_NAME_PMSS] == UNC_VF_VALID) {
           key_vbrif_policingmap_entry *vbrif_pme_key =
               reinterpret_cast<key_vbrif_policingmap_entry *>(ikey->get_key());
           ConfigKeyVal *vbrif_key_val = NULL;
-          unc::upll::kt_momgr::VbrIfMoMgr *vbrifmgr = 
+          unc::upll::kt_momgr::VbrIfMoMgr *vbrifmgr =
               reinterpret_cast<unc::upll::kt_momgr::VbrIfMoMgr *>
               (const_cast<MoManager *>(GetMoManager(UNC_KT_VBR_IF)));
           if (NULL == vbrifmgr) {
@@ -3558,7 +3620,7 @@ upll_rc_t VbrIfPolicingMapMoMgr::ConstructReadEntryDetailResponse(
               dmi);
           if ((result_code != UPLL_RC_SUCCESS) &&
               (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE)) {
-            UPLL_LOG_DEBUG("Get vBridge info failed err code (%d)", 
+            UPLL_LOG_DEBUG("Get vBridge info failed err code (%d)",
                            result_code);
             if (val_switch_st) free(val_switch_st);
             DELETE_IF_NOT_NULL(tmp_okey);
@@ -3568,16 +3630,16 @@ upll_rc_t VbrIfPolicingMapMoMgr::ConstructReadEntryDetailResponse(
 
           if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
             key_vbr_if_t *key_vbrif = reinterpret_cast<key_vbr_if_t*>
-              (vbrif_key_val->get_key());
+                (vbrif_key_val->get_key());
             val_switch_st->valid[UPLL_IDX_VBR_NAME_PMSS] = UNC_VF_VALID;
             uuu::upll_strncpy(val_switch_st->vbr_name,
-                            key_vbrif->vbr_key.vbridge_name,
-                            (kMaxLenVnodeName + 1));
+                              key_vbrif->vbr_key.vbridge_name,
+                              (kMaxLenVnodeName + 1));
 
             val_switch_st->valid[UPLL_IDX_IF_NAME_PMSS] = UNC_VF_VALID;
             uuu::upll_strncpy(val_switch_st->if_name,
-                            key_vbrif->if_name,
-                            (kMaxLenInterfaceName + 1));
+                              key_vbrif->if_name,
+                              (kMaxLenInterfaceName + 1));
           }
           DELETE_IF_NOT_NULL(vbrif_key_val);
         }
@@ -3600,8 +3662,8 @@ upll_rc_t VbrIfPolicingMapMoMgr::ConstructReadEntryDetailResponse(
 
 
 upll_rc_t VbrIfPolicingMapMoMgr::ReadEntryDetailRecord(IpcReqRespHeader *req,
-                                               ConfigKeyVal *ikey,
-                                               DalDmlIntf *dmi) {
+                                                       ConfigKeyVal *ikey,
+                                                       DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
   ConfigKeyVal *l_key = NULL;
@@ -3677,7 +3739,8 @@ upll_rc_t VbrIfPolicingMapMoMgr::ReadEntryDetailRecord(IpcReqRespHeader *req,
   }
   GET_USER_DATA_CTRLR_DOMAIN(temp_key, ctrlr_dom);
   SET_USER_DATA_CTRLR_DOMAIN(l_key, ctrlr_dom);
-  result_code = ValidateCapability(req, ikey, reinterpret_cast<char *>(ctrlr_dom.ctrlr));
+  result_code = ValidateCapability(req, ikey, reinterpret_cast<char *>
+                                   (ctrlr_dom.ctrlr));
 
   if (result_code != UPLL_RC_SUCCESS) {
     DELETE_IF_NOT_NULL(dup_key);
@@ -3757,9 +3820,13 @@ upll_rc_t VbrIfPolicingMapMoMgr::ReadEntryDetailRecord(IpcReqRespHeader *req,
     return ipc_response.header.result_code;
   }
   ConfigKeyVal *okey = NULL;
-  result_code = ConstructReadEntryDetailResponse(dup_key, ipc_response.ckv_data,
-                                                 req->datatype, req->operation,
-                                                 dbop, dmi, &okey);
+  result_code = ConstructReadEntryDetailResponse(dup_key,
+                                                 ipc_response.ckv_data,
+                                                 req->datatype,
+                                                 req->operation,
+                                                 dbop,
+                                                 dmi,
+                                                 &okey);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("ReadSiblingDetail Error  (%d)", result_code);
     DELETE_IF_NOT_NULL(dup_key);
@@ -3774,67 +3841,66 @@ upll_rc_t VbrIfPolicingMapMoMgr::ReadEntryDetailRecord(IpcReqRespHeader *req,
 }
 
 upll_rc_t VbrIfPolicingMapMoMgr::ReadSiblingCount(IpcReqRespHeader *req,
-    ConfigKeyVal* ikey,
-    DalDmlIntf *dmi) {
+                                                  ConfigKeyVal* ikey,
+                                                  DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
-    controller_domain ctrlr_dom;
-   result_code = ValidateMessage(req, ikey);
-   if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("ValidateMessage failed result_code %d",
-                      result_code);
-      return result_code;
-   }
+  controller_domain ctrlr_dom;
+  result_code = ValidateMessage(req, ikey);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_DEBUG("ValidateMessage failed result_code %d",
+                   result_code);
+    return result_code;
+  }
 
   if (UNC_KT_VBRIF_POLICINGMAP_ENTRY != ikey->get_key_type()) {
-      if(req->datatype == UPLL_DT_STATE ||
-         req->datatype == UPLL_DT_STARTUP || 
-           req->datatype == UPLL_DT_RUNNING || 
-             req->datatype == UPLL_DT_CANDIDATE ) {
-        result_code = ReadInfoFromDB(req, ikey, dmi, &ctrlr_dom);
-        return result_code;
-      } else {
-        UPLL_LOG_DEBUG("ReadSiblingCount is not Allowed For Such datatype %d",
-        req->datatype);
-        return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
-      }
-
-  }
- if (UNC_KT_VBRIF_POLICINGMAP_ENTRY == ikey->get_key_type())
-    if(req->datatype != UPLL_DT_STATE) {
-    UPLL_LOG_DEBUG("ReadSiblingCount is not Allowed For Such datatype %d",
-       req->datatype);
-    return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
+    if (req->datatype == UPLL_DT_STATE ||
+       req->datatype == UPLL_DT_STARTUP ||
+       req->datatype == UPLL_DT_RUNNING ||
+       req->datatype == UPLL_DT_CANDIDATE ) {
+      result_code = ReadInfoFromDB(req, ikey, dmi, &ctrlr_dom);
+      return result_code;
+    } else {
+      UPLL_LOG_DEBUG("ReadSiblingCount is not Allowed For Such datatype %d",
+                     req->datatype);
+      return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
+    }
   }
+  if (UNC_KT_VBRIF_POLICINGMAP_ENTRY == ikey->get_key_type())
+    if (req->datatype != UPLL_DT_STATE) {
+      UPLL_LOG_DEBUG("ReadSiblingCount is not Allowed For Such datatype %d",
+                     req->datatype);
+      return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
+    }
 
   ConfigKeyVal *temp_vbr_if_key = NULL;
   key_vbrif_policingmap_entry_t *vbrif_entry_key = reinterpret_cast
-    <key_vbrif_policingmap_entry_t *>(ikey->get_key());
+      <key_vbrif_policingmap_entry_t *>(ikey->get_key());
   result_code = GetReadVbrIfKey(temp_vbr_if_key, ikey);
   DbSubOp dbop = {kOpReadSingle, kOpMatchNone, kOpInOutNone};
   result_code = ReadConfigDB(temp_vbr_if_key, req->datatype, UNC_OP_READ,
-      dbop, dmi, MAINTBL);
+                             dbop, dmi, MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
     delete temp_vbr_if_key;
     return result_code;
   }
   val_policingmap_t *val_pm = reinterpret_cast
-    <val_policingmap_t *>(GetVal(temp_vbr_if_key));
+      <val_policingmap_t *>(GetVal(temp_vbr_if_key));
   ConfigKeyVal *ppe_ckv = NULL;
   result_code = ConstructPpeCkv(ppe_ckv, reinterpret_cast
-      <const char *>(val_pm->policer_name),
-      vbrif_entry_key->sequence_num);
+                                <const char *>(val_pm->policer_name),
+                                vbrif_entry_key->sequence_num);
   PolicingProfileEntryMoMgr *mgr = reinterpret_cast
-    <PolicingProfileEntryMoMgr*>
-    (const_cast<MoManager *>(GetMoManager
-                             (UNC_KT_POLICING_PROFILE_ENTRY)));
+      <PolicingProfileEntryMoMgr*>
+      (const_cast<MoManager *>(GetMoManager
+                               (UNC_KT_POLICING_PROFILE_ENTRY)));
   if (!mgr) {
     delete ppe_ckv;
     return UPLL_RC_ERR_GENERIC;
   }
   IpcReqRespHeader *temp_req = reinterpret_cast<IpcReqRespHeader *>
-    (ConfigKeyVal::Malloc(sizeof(IpcReqRespHeader)));
+      (ConfigKeyVal::Malloc(sizeof(IpcReqRespHeader)));
   memcpy(temp_req, req, sizeof(IpcReqRespHeader));
   temp_req->option1 = UNC_OPT1_NORMAL;
   temp_req->operation = UNC_OP_READ_SIBLING_BEGIN;
@@ -3850,8 +3916,8 @@ upll_rc_t VbrIfPolicingMapMoMgr::ReadSiblingCount(IpcReqRespHeader *req,
   ConfigKeyVal *temp_ppe_ckv = ppe_ckv;
   uint8_t sibling_count = 0;
   while (temp_ppe_ckv !=NULL) {
-      sibling_count++;
-      temp_ppe_ckv = temp_ppe_ckv->get_next_cfg_key_val();
+    sibling_count++;
+    temp_ppe_ckv = temp_ppe_ckv->get_next_cfg_key_val();
   }
   uint32_t *sib_count =
       reinterpret_cast<uint32_t*>(ConfigKeyVal::Malloc(sizeof(uint32_t)));
@@ -3862,8 +3928,8 @@ upll_rc_t VbrIfPolicingMapMoMgr::ReadSiblingCount(IpcReqRespHeader *req,
 }
 
 upll_rc_t VbrIfPolicingMapMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
-                                   DalDmlIntf *dmi,
-                                   const char *ctrlr_id) {
+                                                   DalDmlIntf *dmi,
+                                                   const char *ctrlr_id) {
   UPLL_FUNC_TRACE;
   UPLL_LOG_DEBUG("Audit Create for VbrIfPolicingMapMoMgr called!!!");
   if (NULL == ikey || NULL == dmi) {
@@ -3873,7 +3939,7 @@ upll_rc_t VbrIfPolicingMapMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
 
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   uint8_t *controller_id = reinterpret_cast<uint8_t *>(
-                                 const_cast<char *>(ctrlr_id));
+      const_cast<char *>(ctrlr_id));
   result_code = GetRenamedUncKey(ikey, UPLL_DT_RUNNING, dmi,
                                  controller_id);
   if (result_code != UPLL_RC_SUCCESS &&
@@ -3896,11 +3962,11 @@ upll_rc_t VbrIfPolicingMapMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
     return result_code;
   }
   val_policingmap_t *val_pm = reinterpret_cast
-    <val_policingmap_t *>(ConfigKeyVal::Malloc
-    (sizeof(val_policingmap_t)));
+      <val_policingmap_t *>(ConfigKeyVal::Malloc
+                            (sizeof(val_policingmap_t)));
   pfcdrv_val_vbrif_policingmap *pfc_val =
-        reinterpret_cast<pfcdrv_val_vbrif_policingmap *>
-        (GetVal(ikey));
+      reinterpret_cast<pfcdrv_val_vbrif_policingmap *>
+      (GetVal(ikey));
   if (NULL == pfc_val) {
     return UPLL_RC_ERR_GENERIC;
   }
@@ -3948,13 +4014,15 @@ upll_rc_t VbrIfPolicingMapMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
   return result_code;
 }
 
-upll_rc_t VbrIfPolicingMapMoMgr::AuditUpdateController(unc_key_type_t keytype,
+upll_rc_t VbrIfPolicingMapMoMgr::AuditUpdateController(
+    unc_key_type_t keytype,
     const char *ctrlr_id,
     uint32_t session_id,
     uint32_t config_id,
     uuc::UpdateCtrlrPhase phase1,
-    bool *ctrlr_affected,
-    DalDmlIntf *dmi) {
+    DalDmlIntf *dmi,
+    ConfigKeyVal **err_ckv,
+    KTxCtrlrAffectedState *ctrlr_affected) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   DalResultCode db_result = uud::kDalRcSuccess;
@@ -3972,7 +4040,7 @@ upll_rc_t VbrIfPolicingMapMoMgr::AuditUpdateController(unc_key_type_t keytype,
   // Skipping the create phase if it comes as an input.
   // vbr if policingmap should get applied on controller(pfc) if portmap is
   // configured.
-  // The portmap request should come in the update phase so 
+  // The portmap request should come in the update phase so
   // the vbrif policingmap creation should also be applied during update phase.
   if (phase1 == uuc::kUpllUcpCreate) {
     return result_code;
@@ -3988,60 +4056,74 @@ upll_rc_t VbrIfPolicingMapMoMgr::AuditUpdateController(unc_key_type_t keytype,
     nop = 1;
   }
   for (int i = 0; i < nop; i++) {
+    cursor = NULL;
     unc_keytype_operation_t op1 = op[i];
     uuc::UpdateCtrlrPhase phase = (op[i] == UNC_OP_UPDATE)?uuc::kUpllUcpUpdate:
-      ((op[i] == UNC_OP_CREATE)?uuc::kUpllUcpCreate:
-       ((op[i] == UNC_OP_DELETE)?uuc::kUpllUcpDelete:uuc::kUpllUcpInvalid));
+        ((op[i] == UNC_OP_CREATE)?uuc::kUpllUcpCreate:
+         ((op[i] == UNC_OP_DELETE)?uuc::kUpllUcpDelete:uuc::kUpllUcpInvalid));
     /* retreives the delta of running and audit configuration */
-    UPLL_LOG_DEBUG("Operation is %d", op[i]); 
+    UPLL_LOG_DEBUG("Operation is %d", op[i]);
     result_code = DiffConfigDB(UPLL_DT_RUNNING, UPLL_DT_AUDIT, op[i],
-        ckv_running_db, ckv_audit_db,
-        &cursor, dmi, ctrlr, tbl);
+                               ckv_running_db, ckv_audit_db,
+                               &cursor, dmi, ctrlr, tbl);
+    if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+      UPLL_LOG_DEBUG("No Diff found for operation %d", op[i]);
+      DELETE_IF_NOT_NULL(ckv_running_db);
+      DELETE_IF_NOT_NULL(ckv_audit_db);
+      continue;
+    }
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("DiffConfigDB failed - %d", result_code);
+      DELETE_IF_NOT_NULL(ckv_running_db);
+      DELETE_IF_NOT_NULL(ckv_audit_db);
       return result_code;
     }
     if (cursor == NULL) {
       UPLL_LOG_DEBUG("cursor is null");
+      DELETE_IF_NOT_NULL(ckv_running_db);
+      DELETE_IF_NOT_NULL(ckv_audit_db);
       return UPLL_RC_ERR_GENERIC;
     }
     while (uud::kDalRcSuccess == (db_result = dmi->GetNextRecord(cursor))) {
       op1 = op[i];
       if (phase != uuc::kUpllUcpDelete) {
         uint8_t *db_ctrlr = NULL;
-        GET_USER_DATA_CTRLR(ckv_running_db,db_ctrlr);
+        GET_USER_DATA_CTRLR(ckv_running_db, db_ctrlr);
         UPLL_LOG_DEBUG("db ctrl_id and audit ctlr_id are  %s %s",
-                        db_ctrlr, ctrlr_id);
+                       db_ctrlr, ctrlr_id);
         // Skipping the controller ID if the controller id in DB and
         // controller id available for Audit are not the same
-        if (db_ctrlr && strncmp(reinterpret_cast<const char *>(db_ctrlr),
-              reinterpret_cast<const char *>(ctrlr_id),
-              strlen(reinterpret_cast<const char *>(ctrlr_id)))) {
+        if (db_ctrlr && strncmp(
+                reinterpret_cast<const char *>(db_ctrlr),
+                reinterpret_cast<const char *>(ctrlr_id),
+                strlen(reinterpret_cast<const char *>(ctrlr_id)))) {
           continue;
         }
       }
       /* ignore records of another controller for create and update operation */
       UPLL_LOG_DEBUG("Diff Record: Keytype: Operation:  is %d\n %d\n %s\n",
-          keytype, op[i], ckv_running_db->ToStrAll().c_str());
+                     keytype, op[i], ckv_running_db->ToStrAll().c_str());
       switch (phase) {
         case uuc::kUpllUcpDelete:
           UPLL_LOG_TRACE("Deleted record is %s ",
-              ckv_running_db->ToStrAll().c_str());
+                         ckv_running_db->ToStrAll().c_str());
           result_code = GetChildConfigKey(ckv_driver_req, ckv_running_db);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("GetChildConfigKey failed. err_code & phase %d %d",
-                result_code, phase);
+                           result_code, phase);
             dmi->CloseCursor(cursor, true);
             return result_code;
           }
           break;
         case uuc::kUpllUcpCreate:
           UPLL_LOG_TRACE("Created  record is %s ",
-              ckv_running_db->ToStrAll().c_str());
+                         ckv_running_db->ToStrAll().c_str());
           result_code = DupConfigKeyVal(ckv_driver_req, ckv_running_db, tbl);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("DupConfigKeyVal failed. err_code & phase %d %d",
-                result_code, phase);
+                           result_code, phase);
+            DELETE_IF_NOT_NULL(ckv_running_db);
+            DELETE_IF_NOT_NULL(ckv_audit_db);
             dmi->CloseCursor(cursor, true);
             return result_code;
           }
@@ -4050,27 +4132,33 @@ upll_rc_t VbrIfPolicingMapMoMgr::AuditUpdateController(unc_key_type_t keytype,
           ckv_audit_dup_db = NULL;
           ckv_driver_req = NULL;
           UPLL_LOG_TRACE("UpdateRecord  record  is %s ",
-              ckv_running_db->ToStrAll().c_str());
+                         ckv_running_db->ToStrAll().c_str());
           UPLL_LOG_TRACE("UpdateRecord  record  is %s ",
-              ckv_audit_db->ToStrAll().c_str());
+                         ckv_audit_db->ToStrAll().c_str());
           result_code = DupConfigKeyVal(ckv_driver_req, ckv_running_db, tbl);
           if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("DupConfigKeyVal failed for running record. \
-                err_code & phase %d %d", result_code, phase);
+            UPLL_LOG_DEBUG("DupConfigKeyVal failed for running record."
+                           "err_code & phase %d %d", result_code, phase);
+            DELETE_IF_NOT_NULL(ckv_running_db);
+            DELETE_IF_NOT_NULL(ckv_audit_db);
             dmi->CloseCursor(cursor, true);
             return result_code;
           }
           result_code = DupConfigKeyVal(ckv_audit_dup_db, ckv_audit_db, tbl);
           if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("DupConfigKeyVal failed for audit record. \
-                err_code & phase %d %d", result_code, phase);
+            UPLL_LOG_DEBUG("DupConfigKeyVal failed for audit record. "
+                           "err_code & phase %d %d", result_code, phase);
             DELETE_IF_NOT_NULL(ckv_driver_req);
+            DELETE_IF_NOT_NULL(ckv_running_db);
+            DELETE_IF_NOT_NULL(ckv_audit_db);
             dmi->CloseCursor(cursor, true);
             return result_code;
           }
           break;
         default:
           UPLL_LOG_DEBUG("Invalid operation %d", phase);
+          DELETE_IF_NOT_NULL(ckv_running_db);
+          DELETE_IF_NOT_NULL(ckv_audit_db);
           return UPLL_RC_ERR_NO_SUCH_OPERATION;
           break;
       }
@@ -4079,6 +4167,8 @@ upll_rc_t VbrIfPolicingMapMoMgr::AuditUpdateController(unc_key_type_t keytype,
         UPLL_LOG_INFO("controller id or domain is NULL");
         DELETE_IF_NOT_NULL(ckv_driver_req);
         DELETE_IF_NOT_NULL(ckv_audit_dup_db);
+        DELETE_IF_NOT_NULL(ckv_running_db);
+        DELETE_IF_NOT_NULL(ckv_audit_db);
         dmi->CloseCursor(cursor, true);
         return UPLL_RC_ERR_GENERIC;
       }
@@ -4101,43 +4191,62 @@ upll_rc_t VbrIfPolicingMapMoMgr::AuditUpdateController(unc_key_type_t keytype,
           continue;
         }
       }
-      if (UNC_OP_UPDATE == op1) {    
+      if (UNC_OP_UPDATE == op1) {
         void *running_val = NULL;
         bool invalid_attr = false;
         running_val = GetVal(ckv_driver_req);
         invalid_attr = FilterAttributes(running_val,
-            GetVal(ckv_audit_dup_db), false, UNC_OP_UPDATE);
+                                        GetVal(ckv_audit_dup_db),
+                                        false,
+                                        UNC_OP_UPDATE);
         if (invalid_attr) {
           DELETE_IF_NOT_NULL(ckv_driver_req);
           DELETE_IF_NOT_NULL(ckv_audit_dup_db);
+          // Assuming that the diff found only in ConfigStatus
+          // Setting the   value as OnlyCSDiff in the out parameter
+          // ctrlr_affected.
+          // The value Configdiff should be given more priority than the value
+          // onlycs .
+          // So  If the out parameter ctrlr_affected has already value as
+          // configdiff then dont change the value
+          if (*ctrlr_affected != uuc::kCtrlrAffectedConfigDiff) {
+            UPLL_LOG_INFO("Setting the ctrlr_affected to OnlyCSDiff");
+            *ctrlr_affected = uuc::kCtrlrAffectedOnlyCSDiff;
+          }
           continue;
         }
       }
 
       DELETE_IF_NOT_NULL(ckv_audit_dup_db);
       pfcdrv_val_vbrif_policingmap *pfc_val =
-        reinterpret_cast<pfcdrv_val_vbrif_policingmap *>
-        (ConfigKeyVal::Malloc(sizeof(pfcdrv_val_vbrif_policingmap_t)));
+          reinterpret_cast<pfcdrv_val_vbrif_policingmap *>
+          (ConfigKeyVal::Malloc(sizeof(pfcdrv_val_vbrif_policingmap_t)));
       pfcdrv_val_vbrif_vextif *pfc_val_ext =
-        reinterpret_cast<pfcdrv_val_vbrif_vextif *>\
-        (ConfigKeyVal::Malloc(sizeof(pfcdrv_val_vbrif_vextif_t)));
+          reinterpret_cast<pfcdrv_val_vbrif_vextif *>\
+          (ConfigKeyVal::Malloc(sizeof(pfcdrv_val_vbrif_vextif_t)));
       if (UNC_OP_DELETE == op1) {
         vext_datatype = UPLL_DT_AUDIT;
       } else {
         vext_datatype = UPLL_DT_RUNNING;
       }
       UPLL_LOG_DEBUG("GetVexternalInformation (%d)", vext_datatype);
-      result_code = GetVexternalInformation(ckv_driver_req, vext_datatype, pfc_val,
-          pfc_val_ext, db_flag, dmi);
+      result_code = GetVexternalInformation(ckv_driver_req,
+                                            vext_datatype,
+                                            pfc_val,
+                                            pfc_val_ext,
+                                            db_flag, dmi);
       if (UPLL_RC_SUCCESS != result_code) {
         UPLL_LOG_DEBUG("GetVexternalInformation fail");
         DELETE_IF_NOT_NULL(ckv_driver_req);
+        DELETE_IF_NOT_NULL(ckv_running_db);
+        DELETE_IF_NOT_NULL(ckv_audit_db);
         dmi->CloseCursor(cursor, true);
         return result_code;
       }
       UPLL_LOG_DEBUG("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
-          ctrlr_dom.domain);
-      val_policingmap_t* val = reinterpret_cast<val_policingmap_t *>(GetVal(ckv_running_db));
+                     ctrlr_dom.domain);
+      val_policingmap_t* val = reinterpret_cast<val_policingmap_t *>
+          (GetVal(ckv_running_db));
       UPLL_LOG_DEBUG("val_policingmap_t (%s)", val->policer_name);
 
       pfc_val->valid[PFCDRV_IDX_VAL_POLICINGMAP_PM] = UNC_VF_VALID;
@@ -4145,26 +4254,30 @@ upll_rc_t VbrIfPolicingMapMoMgr::AuditUpdateController(unc_key_type_t keytype,
 
       pfc_val->valid[PFCDRV_IDX_VAL_VBRIF_VEXTIF_PM] = UNC_VF_VALID;
       memcpy(&pfc_val->val_vbrif_vextif, pfc_val_ext,
-          sizeof(pfcdrv_val_vbrif_vextif_t));
+             sizeof(pfcdrv_val_vbrif_vextif_t));
 
       ConfigKeyVal::Free(pfc_val_ext);
 
-      ckv_driver_req->SetCfgVal(new ConfigVal(IpctSt::kIpcStPfcdrvValVbrifPolicingmap,
-            pfc_val));
+      ckv_driver_req->SetCfgVal(new ConfigVal(
+              IpctSt::kIpcStPfcdrvValVbrifPolicingmap,
+              pfc_val));
 
       upll_keytype_datatype_t dt_type = (op1 == UNC_OP_DELETE)?
-        UPLL_DT_AUDIT : UPLL_DT_RUNNING;
+          UPLL_DT_AUDIT : UPLL_DT_RUNNING;
       result_code = GetRenamedControllerKey(ckv_driver_req, UPLL_DT_RUNNING,
-          dmi, &ctrlr_dom);
-      if (result_code != UPLL_RC_SUCCESS && result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                                            dmi, &ctrlr_dom);
+      if (result_code != UPLL_RC_SUCCESS && result_code !=
+          UPLL_RC_ERR_NO_SUCH_INSTANCE) {
         UPLL_LOG_DEBUG(" GetRenamedControllerKey failed err code(%d)",
-            result_code);
+                       result_code);
         DELETE_IF_NOT_NULL(ckv_driver_req);
+        DELETE_IF_NOT_NULL(ckv_running_db);
+        DELETE_IF_NOT_NULL(ckv_audit_db);
         dmi->CloseCursor(cursor, true);
         return result_code;
       }
       UPLL_LOG_DEBUG("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
-          ctrlr_dom.domain);
+                     ctrlr_dom.domain);
       IpcResponse ipc_response;
       memset(&ipc_response, 0, sizeof(IpcResponse));
       IpcRequest ipc_req;
@@ -4174,70 +4287,105 @@ upll_rc_t VbrIfPolicingMapMoMgr::AuditUpdateController(unc_key_type_t keytype,
       ipc_req.header.operation = op1;
       ipc_req.header.datatype = UPLL_DT_CANDIDATE;
       ipc_req.ckv_data = ckv_driver_req;
-      if (!uui::IpcUtil::SendReqToDriver((const char *)ctrlr_dom.ctrlr, reinterpret_cast<char *>
-            (ctrlr_dom.domain), PFCDRIVER_SERVICE_NAME, 
-            PFCDRIVER_SVID_LOGICAL, &ipc_req, true, &ipc_response)) {
+      if (!uui::IpcUtil::SendReqToDriver((const char *)ctrlr_dom.ctrlr,
+                                         reinterpret_cast<char *>
+                                         (ctrlr_dom.domain),
+                                         PFCDRIVER_SERVICE_NAME,
+                                         PFCDRIVER_SVID_LOGICAL,
+                                         &ipc_req,
+                                         true,
+                                         &ipc_response)) {
         UPLL_LOG_INFO("Request to driver for Key %d for controller %s failed ",
-            ckv_driver_req->get_key_type(), reinterpret_cast<char *>(ctrlr_dom.ctrlr));
+                      ckv_driver_req->get_key_type(),
+                      reinterpret_cast<char *>(ctrlr_dom.ctrlr));
         DELETE_IF_NOT_NULL(ckv_driver_req);
         DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+        DELETE_IF_NOT_NULL(ckv_running_db);
+        DELETE_IF_NOT_NULL(ckv_audit_db);
         dmi->CloseCursor(cursor, true);
         return UPLL_RC_ERR_GENERIC;
       }
-      if  (ipc_response.header.result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("driver return failure err_code is %d", ipc_response.header.result_code);
-        ConfigKeyVal *resp = NULL;
-        result_code = GetChildConfigKey(resp,ipc_response.ckv_data);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("GetChildConfigKey failed for ipc response ckv err_code %d",
-              result_code);
-          DELETE_IF_NOT_NULL(ipc_response.ckv_data);
-          DELETE_IF_NOT_NULL(ckv_driver_req);
-          dmi->CloseCursor(cursor, true);
-          return result_code;
-        }
-        pfcdrv_val_vbrif_policingmap *pfc_val_out =
-          reinterpret_cast<pfcdrv_val_vbrif_policingmap *>
-          (GetVal(ipc_response.ckv_data));
-        if (NULL == pfc_val_out) {
-          DELETE_IF_NOT_NULL(resp);
-          DELETE_IF_NOT_NULL(ckv_driver_req);
-          DELETE_IF_NOT_NULL(ipc_response.ckv_data);
-          dmi->CloseCursor(cursor, true);
-          return UPLL_RC_ERR_GENERIC;
-        }
-        val_policingmap_t *out_val_pm = reinterpret_cast
-          <val_policingmap_t *>(ConfigKeyVal::Malloc(sizeof
-                (val_policingmap_t)));
-        memcpy(out_val_pm, &pfc_val_out->val_policing_map,
-            sizeof(val_policingmap_t));
-        resp->AppendCfgVal(IpctSt::kIpcStValPolicingmap, out_val_pm);
-        result_code = UpdateAuditConfigStatus(UNC_CS_INVALID, phase, resp);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_TRACE("Update Audit config status failed %d",
-              result_code);
-          DELETE_IF_NOT_NULL(resp);
-          DELETE_IF_NOT_NULL(ckv_driver_req);
-          DELETE_IF_NOT_NULL(ipc_response.ckv_data);
-          dmi->CloseCursor(cursor, true);
-          return result_code;
-        }
-        result_code = UpdateConfigDB(resp, dt_type, UNC_OP_UPDATE,
-            dmi, tbl);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("UpdateConfigDB failed for ipc response ckv err_code %d",
-              result_code);
+      if (ipc_response.header.result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("driver return failure err_code is %d",
+                       ipc_response.header.result_code);
+        *err_ckv = ckv_running_db;
+        if (phase != uuc::kUpllUcpDelete) {
+          ConfigKeyVal *resp = NULL;
+          result_code = GetChildConfigKey(resp, ipc_response.ckv_data);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("GetChildConfigKey failed for"
+                           "ipc response ckv err_code %d",
+                           result_code);
+            DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+            DELETE_IF_NOT_NULL(ckv_driver_req);
+            DELETE_IF_NOT_NULL(ckv_running_db);
+            DELETE_IF_NOT_NULL(ckv_audit_db);
+            dmi->CloseCursor(cursor, true);
+            return result_code;
+          }
+          pfcdrv_val_vbrif_policingmap *pfc_val_out =
+              reinterpret_cast<pfcdrv_val_vbrif_policingmap *>
+              (GetVal(ipc_response.ckv_data));
+          if (NULL == pfc_val_out) {
+            DELETE_IF_NOT_NULL(resp);
+            DELETE_IF_NOT_NULL(ckv_driver_req);
+            DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+            DELETE_IF_NOT_NULL(ckv_running_db);
+            DELETE_IF_NOT_NULL(ckv_audit_db);
+            dmi->CloseCursor(cursor, true);
+            return UPLL_RC_ERR_GENERIC;
+          }
+          val_policingmap_t *out_val_pm = reinterpret_cast
+              <val_policingmap_t *>(ConfigKeyVal::Malloc(sizeof
+                                                         (val_policingmap_t)));
+          memcpy(out_val_pm, &pfc_val_out->val_policing_map,
+                 sizeof(val_policingmap_t));
+          resp->AppendCfgVal(IpctSt::kIpcStValPolicingmap, out_val_pm);
+          result_code = UpdateAuditConfigStatus(UNC_CS_INVALID,
+                                                phase,
+                                                resp,
+                                                dmi);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_TRACE("Update Audit config status failed %d",
+                           result_code);
+            DELETE_IF_NOT_NULL(resp);
+            DELETE_IF_NOT_NULL(ckv_driver_req);
+            DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+            DELETE_IF_NOT_NULL(ckv_running_db);
+            DELETE_IF_NOT_NULL(ckv_audit_db);
+            dmi->CloseCursor(cursor, true);
+            return result_code;
+          }
+          result_code = UpdateConfigDB(resp, dt_type, UNC_OP_UPDATE,
+                                       dmi, tbl);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("UpdateConfigDB failed for ipc"
+                           "response ckv err_code %d",
+                           result_code);
+            DELETE_IF_NOT_NULL(resp);
+            DELETE_IF_NOT_NULL(ckv_driver_req);
+            DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+            DELETE_IF_NOT_NULL(ckv_running_db);
+            DELETE_IF_NOT_NULL(ckv_audit_db);
+            dmi->CloseCursor(cursor, true);
+            return result_code;
+          }
           DELETE_IF_NOT_NULL(resp);
-          DELETE_IF_NOT_NULL(ckv_driver_req);
-          DELETE_IF_NOT_NULL(ipc_response.ckv_data);
-          dmi->CloseCursor(cursor, true);
-          return result_code;
         }
-        DELETE_IF_NOT_NULL(resp);
+        DELETE_IF_NOT_NULL(ckv_driver_req);
+        DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+        DELETE_IF_NOT_NULL(ckv_running_db);
+        DELETE_IF_NOT_NULL(ckv_audit_db);
+        dmi->CloseCursor(cursor, true);
+        return ipc_response.header.result_code;
       }
       DELETE_IF_NOT_NULL(ckv_driver_req);
       DELETE_IF_NOT_NULL(ipc_response.ckv_data);
-      *ctrlr_affected = true;
+      if (*ctrlr_affected == uuc::kCtrlrAffectedOnlyCSDiff) {
+        UPLL_LOG_INFO("Reset ctrlr state from OnlyCSDiff to ConfigDiff");
+      }
+      // *ctrlr_affected = true;
+      *ctrlr_affected = uuc::kCtrlrAffectedConfigDiff;
     }
     dmi->CloseCursor(cursor, true);
     DELETE_IF_NOT_NULL(ckv_running_db);
@@ -4249,12 +4397,14 @@ upll_rc_t VbrIfPolicingMapMoMgr::AuditUpdateController(unc_key_type_t keytype,
     result_code =  DalToUpllResCode(db_result);
   }
   result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)
-    ? UPLL_RC_SUCCESS : result_code;
+      ? UPLL_RC_SUCCESS : result_code;
   return result_code;
 }
 
-upll_rc_t VbrIfPolicingMapMoMgr::DeleteChildrenPOM(ConfigKeyVal *ikey, 
-        upll_keytype_datatype_t dt_type,DalDmlIntf *dmi) {
+upll_rc_t VbrIfPolicingMapMoMgr::DeleteChildrenPOM(
+    ConfigKeyVal *ikey,
+    upll_keytype_datatype_t dt_type,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
 
@@ -4274,8 +4424,8 @@ upll_rc_t VbrIfPolicingMapMoMgr::DeleteChildrenPOM(ConfigKeyVal *ikey,
     UPLL_LOG_DEBUG("GetChildConfigKey failed %d", result_code);
     return result_code;
   }
-  DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
-                   kOpInOutCtrlr | kOpInOutDomain };
+  DbSubOp dbop = { kOpReadMultiple, kOpMatchNone,
+    kOpInOutCtrlr | kOpInOutDomain | kOpInOutFlag};
   result_code = ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop, dmi,
                              MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
@@ -4288,16 +4438,25 @@ upll_rc_t VbrIfPolicingMapMoMgr::DeleteChildrenPOM(ConfigKeyVal *ikey,
     DELETE_IF_NOT_NULL(okey);
     return result_code;
   }
-  val_policingmap_t *val_pm = reinterpret_cast<val_policingmap_t *>
-    (GetVal(okey));
-  if (UNC_VF_VALID == val_pm->valid[UPLL_IDX_POLICERNAME_PM]) {
-    result_code = UpdateRefCountInPPCtrlr(okey, dt_type, dmi,
-                                          UNC_OP_DELETE);
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("UpdateRefCountInPPCtrlr Error DB (%d)", result_code);
-      DELETE_IF_NOT_NULL(okey);
-      return result_code;
+
+  ConfigKeyVal *temp_okey = okey;
+  while (temp_okey != NULL) {
+    val_policingmap_t *val_pm = reinterpret_cast<val_policingmap_t *>
+        (GetVal(temp_okey));
+    if (UNC_VF_VALID == val_pm->valid[UPLL_IDX_POLICERNAME_PM]) {
+      uint8_t flag_port_map = 0;
+      GET_USER_DATA_FLAGS(okey, flag_port_map);
+      if (flag_port_map & SET_FLAG_PORTMAP) {
+        result_code = UpdateRefCountInPPCtrlr(temp_okey, dt_type, dmi,
+                                              UNC_OP_DELETE);
+        if (UPLL_RC_SUCCESS != result_code) {
+          UPLL_LOG_DEBUG("UpdateRefCountInPPCtrlr Error DB (%d)", result_code);
+          DELETE_IF_NOT_NULL(okey);
+          return result_code;
+        }
+      }
     }
+    temp_okey = temp_okey->get_next_cfg_key_val();
   }
   DELETE_IF_NOT_NULL(okey);
   // Delete the record in vbrifpolicingmap table
@@ -4311,7 +4470,7 @@ upll_rc_t VbrIfPolicingMapMoMgr::DeleteChildrenPOM(ConfigKeyVal *ikey,
                                MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("DeleteMo Failed. UpdateConfigdb failed to delete - %d",
-                  result_code);
+                   result_code);
     DELETE_IF_NOT_NULL(temp_ikey);
     return result_code;
   }
@@ -4366,9 +4525,9 @@ upll_rc_t VbrIfPolicingMapMoMgr::SetValidAudit(ConfigKeyVal *&ikey) {
 }
 
 bool VbrIfPolicingMapMoMgr::FilterAttributes(void *&val1,
-                                          void *val2,
-                                          bool copy_to_running,
-                                          unc_keytype_operation_t op) {
+                                             void *val2,
+                                             bool copy_to_running,
+                                             unc_keytype_operation_t op) {
   UPLL_FUNC_TRACE;
   if (op != UNC_OP_CREATE)
     return CompareValidValue(val1, val2, copy_to_running);
@@ -4376,11 +4535,11 @@ bool VbrIfPolicingMapMoMgr::FilterAttributes(void *&val1,
 }
 
 upll_rc_t VbrIfPolicingMapMoMgr::UpdateConfigStatus(ConfigKeyVal *vbrif_key,
-                                       unc_keytype_operation_t op,
-                                       uint32_t driver_result,
-                                       ConfigKeyVal *upd_key,
-                                       DalDmlIntf *dmi,
-                                       ConfigKeyVal *ctrlr_key) {
+                                                    unc_keytype_operation_t op,
+                                                    uint32_t driver_result,
+                                                    ConfigKeyVal *upd_key,
+                                                    DalDmlIntf *dmi,
+                                                    ConfigKeyVal *ctrlr_key) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_policingmap_t *vbr_pm;
@@ -4398,34 +4557,39 @@ upll_rc_t VbrIfPolicingMapMoMgr::UpdateConfigStatus(ConfigKeyVal *vbrif_key,
     return UPLL_RC_ERR_GENERIC;
   }
   UPLL_LOG_TRACE("%s", (vbrif_key->ToStrAll()).c_str());
-  val_policingmap_t *vbr_val2 = reinterpret_cast<val_policingmap_t *>(GetVal(upd_key));
+  val_policingmap_t *vbr_val2 = reinterpret_cast<val_policingmap_t *>
+      (GetVal(upd_key));
   if (UNC_OP_UPDATE == op) {
     UPLL_LOG_TRACE("%s", (upd_key->ToStrAll()).c_str());
     vbr_pm->cs_row_status = vbr_val2->cs_row_status;
   }
   if (UNC_VF_NOT_SUPPORTED == vbr_pm->valid[0]) {
-      vbr_pm->cs_attr[0] = UNC_CS_NOT_SUPPORTED;
+    vbr_pm->cs_attr[0] = UNC_CS_NOT_SUPPORTED;
   } else if ((UNC_VF_VALID == vbr_pm->valid[0])
-        || (UNC_VF_VALID_NO_VALUE == vbr_pm->valid[0])) {
-      vbr_pm->cs_attr[0] = cs_status;
+             || (UNC_VF_VALID_NO_VALUE == vbr_pm->valid[0])) {
+    vbr_pm->cs_attr[0] = cs_status;
   } else if ((UNC_VF_INVALID == vbr_pm->valid[0]) &&
              (UNC_OP_CREATE == op)) {
-      vbr_pm->cs_attr[0] = UNC_CS_NOT_APPLIED;
+    vbr_pm->cs_attr[0] = UNC_CS_NOT_APPLIED;
   } else if ((UNC_VF_INVALID == vbr_pm->valid[0]) &&
              (UNC_OP_UPDATE == op)) {
-      vbr_pm->cs_attr[0] = vbr_val2->cs_attr[0];
+    vbr_pm->cs_attr[0] = vbr_val2->cs_attr[0];
   }
   return result_code;
 }
 
 upll_rc_t VbrIfPolicingMapMoMgr::IsRenamed(ConfigKeyVal *ikey,
-                               upll_keytype_datatype_t dt_type,
-                               DalDmlIntf *dmi,
-                               uint8_t &rename) {
+                                           upll_keytype_datatype_t dt_type,
+                                           DalDmlIntf *dmi,
+                                           uint8_t &rename) {
   UPLL_FUNC_TRACE;
   UPLL_LOG_DEBUG("VbrIfPolicingMapMoMgr IsRenamed");
+  if (NULL == ikey) {
+    UPLL_LOG_DEBUG("ikey NULL");
+    return UPLL_RC_ERR_GENERIC;
+  }
   DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutFlag | kOpInOutCtrlr
-                       | kOpInOutDomain };
+    | kOpInOutDomain };
   ConfigKeyVal *okey = NULL;
   upll_rc_t result_code;
   /* rename is set implies user wants the ikey
@@ -4435,41 +4599,44 @@ upll_rc_t VbrIfPolicingMapMoMgr::IsRenamed(ConfigKeyVal *ikey,
       UPLL_LOG_DEBUG("UNC_KT_VBRIF_POLICINGMAP");
       result_code = GetChildConfigKey(okey, ikey);
       if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_TRACE("Returning error %d",result_code);
+        UPLL_LOG_TRACE("Returning error %d", result_code);
         return result_code;
       }
     } else if (UNC_KT_VBRIF_POLICINGMAP_ENTRY == ikey->get_key_type()) {
       UPLL_LOG_DEBUG("UNC_KT_VBRIF_POLICINGMAP_CONTROLLER");
 
       key_vbr_if_t *out_key = reinterpret_cast<key_vbr_if_t *>
-              (ConfigKeyVal::Malloc(sizeof(key_vbr_if_t)));
+          (ConfigKeyVal::Malloc(sizeof(key_vbr_if_t)));
 
       key_vbrif_policingmap_entry_t *in_key = reinterpret_cast
-        <key_vbrif_policingmap_entry_t *>(ikey->get_key());
+          <key_vbrif_policingmap_entry_t *>(ikey->get_key());
 
       uuu::upll_strncpy(out_key->vbr_key.vtn_key.vtn_name,
-          in_key->vbrif_key.vbr_key.vtn_key.vtn_name,
-          (kMaxLenVtnName + 1));
+                        in_key->vbrif_key.vbr_key.vtn_key.vtn_name,
+                        (kMaxLenVtnName + 1));
       uuu::upll_strncpy(out_key->vbr_key.vbridge_name,
-          in_key->vbrif_key.vbr_key.vbridge_name,
-          (kMaxLenVnodeName + 1));
+                        in_key->vbrif_key.vbr_key.vbridge_name,
+                        (kMaxLenVnodeName + 1));
       uuu::upll_strncpy(out_key->if_name,
-          in_key->vbrif_key.if_name,
-          (kMaxLenVnodeName + 1));
+                        in_key->vbrif_key.if_name,
+                        (kMaxLenVnodeName + 1));
 
       okey = new ConfigKeyVal(UNC_KT_VBRIF_POLICINGMAP,
-                 IpctSt::kIpcStKeyVbrIf,
-                 out_key, NULL);
+                              IpctSt::kIpcStKeyVbrIf,
+                              out_key, NULL);
+    } else {
+      UPLL_LOG_DEBUG("Invalid KeyType");
+      return UPLL_RC_ERR_GENERIC;
     }
   } else {
     okey = ikey;
   }
 
   result_code = ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop, dmi,
-                                       MAINTBL);
+                             MAINTBL);
   if ((result_code != UPLL_RC_SUCCESS) &&
-       (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE))  {
-    UPLL_LOG_DEBUG("Returning error code %d",result_code);
+      (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE))  {
+    UPLL_LOG_DEBUG("Returning error code %d", result_code);
     if (okey != ikey)
       DELETE_IF_NOT_NULL(okey);
     return UPLL_RC_ERR_GENERIC;
@@ -4479,14 +4646,14 @@ upll_rc_t VbrIfPolicingMapMoMgr::IsRenamed(ConfigKeyVal *ikey,
   ctrlr_dom.ctrlr = NULL;
   ctrlr_dom.domain = NULL;
 
-  GET_USER_DATA_CTRLR_DOMAIN(ikey,ctrlr_dom);
-    UPLL_LOG_DEBUG("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
+  GET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
+  UPLL_LOG_DEBUG("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
                  ctrlr_dom.domain);
-  SET_USER_DATA_CTRLR_DOMAIN(okey,ctrlr_dom);
-    UPLL_LOG_DEBUG("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
+  SET_USER_DATA_CTRLR_DOMAIN(okey, ctrlr_dom);
+  UPLL_LOG_DEBUG("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
                  ctrlr_dom.domain);
 
-  SET_USER_DATA(ikey,okey);
+  SET_USER_DATA(ikey, okey);
   rename &= RENAME;
   if (okey != ikey)
     DELETE_IF_NOT_NULL(okey);
@@ -4494,12 +4661,12 @@ upll_rc_t VbrIfPolicingMapMoMgr::IsRenamed(ConfigKeyVal *ikey,
 }
 
 upll_rc_t VbrIfPolicingMapMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
-    DalDmlIntf *dmi,
-    IpcReqRespHeader *req) {
+                                               DalDmlIntf *dmi,
+                                               IpcReqRespHeader *req) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_policingmap_t *val_pm = reinterpret_cast
-    <val_policingmap_t *>(GetVal(ikey));
+      <val_policingmap_t *>(GetVal(ikey));
   if (!val_pm) {
     UPLL_LOG_DEBUG("Val is NULL");
     return UPLL_RC_ERR_GENERIC;
@@ -4512,8 +4679,8 @@ upll_rc_t VbrIfPolicingMapMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
       return result_code;
     }
     MoMgrImpl *mgr =
-      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_VBR_IF)));
+        reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                    UNC_KT_VBR_IF)));
     if (!mgr) {
       UPLL_LOG_DEBUG("mgr is NULL");
       DELETE_IF_NOT_NULL(pkey);
@@ -4534,10 +4701,12 @@ upll_rc_t VbrIfPolicingMapMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
         ((UNC_OP_CREATE == req->operation))) {
       ConfigKeyVal *pp_ckv = NULL;
       result_code = GetPolicingProfileConfigKey(reinterpret_cast<const char *>
-          (val_pm->policer_name), pp_ckv, dmi);
+                                                (val_pm->policer_name),
+                                                pp_ckv,
+                                                dmi);
       MoMgrImpl *pp_mgr =
-      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_POLICING_PROFILE)));
+          reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                      UNC_KT_POLICING_PROFILE)));
       if (NULL == pp_mgr) {
         UPLL_LOG_DEBUG("pp_mgr is NULL");
         DELETE_IF_NOT_NULL(pp_ckv);
@@ -4551,7 +4720,8 @@ upll_rc_t VbrIfPolicingMapMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
         return result_code;
       }
       if (pp_rename & 0x01) {
-        rename |= POLICINGPROFILE_RENAME;  // TODO Check for correct flag value
+        rename |= POLICINGPROFILE_RENAME;  // TODO(upll) : Check for
+        // correct flag value
       }
       DELETE_IF_NOT_NULL(pp_ckv);
     }
@@ -4566,7 +4736,7 @@ upll_rc_t VbrIfPolicingMapMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
     }
     DbSubOp dbop1 = {kOpReadSingle, kOpMatchNone, kOpInOutFlag};
     result_code = ReadConfigDB(dup_ckv, req->datatype, UNC_OP_READ,
-                                     dbop1, dmi, MAINTBL);
+                               dbop1, dmi, MAINTBL);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
       DELETE_IF_NOT_NULL(dup_ckv);
@@ -4576,11 +4746,14 @@ upll_rc_t VbrIfPolicingMapMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
     DELETE_IF_NOT_NULL(dup_ckv);
     if (UNC_VF_VALID == val_pm->valid[UPLL_IDX_POLICERNAME_PM]) {
       ConfigKeyVal *pp_ckv = NULL;
-      result_code = GetPolicingProfileConfigKey(reinterpret_cast<const char *>
-          (val_pm->policer_name), pp_ckv, dmi);
+      result_code = GetPolicingProfileConfigKey(
+          reinterpret_cast<const char *>
+          (val_pm->policer_name),
+          pp_ckv,
+          dmi);
       MoMgrImpl *pp_mgr =
-      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_POLICING_PROFILE)));
+          reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                      UNC_KT_POLICING_PROFILE)));
       if (NULL == pp_mgr) {
         UPLL_LOG_DEBUG("pp_mgr is NULL");
         DELETE_IF_NOT_NULL(pp_ckv);
@@ -4594,14 +4767,16 @@ upll_rc_t VbrIfPolicingMapMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
         return result_code;
       }
       if (pp_rename & 0x01) {
-        rename |= POLICINGPROFILE_RENAME;  // TODO Check for correct flag value
+        rename |= POLICINGPROFILE_RENAME;  // TODO(upll): Check for
+        // correct flag value
       } else {
         rename &= NO_POLICINGPROFILE_RENAME;
       }
       DELETE_IF_NOT_NULL(pp_ckv);
     } else if (UNC_VF_VALID_NO_VALUE == val_pm->valid
                [UPLL_IDX_POLICERNAME_PM]) {
-       rename &= NO_POLICINGPROFILE_RENAME; // TODO Check for correct flag value. No rename flowlist value should be set
+      rename &= NO_POLICINGPROFILE_RENAME;  // TODO(upll): Check for correct
+      // flag value. No rename flowlist value should be set
     }
     SET_USER_DATA_FLAGS(ikey, rename);
   }
@@ -4609,13 +4784,13 @@ upll_rc_t VbrIfPolicingMapMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
 }
 
 upll_rc_t VbrIfPolicingMapMoMgr::GetPolicingProfileConfigKey(
-        const char *pp_name, ConfigKeyVal *&okey,
-        DalDmlIntf *dmi) {
+    const char *pp_name, ConfigKeyVal *&okey,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
   MoMgrImpl *mgr =
       reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_POLICING_PROFILE)));
+                  UNC_KT_POLICING_PROFILE)));
   result_code = mgr->GetChildConfigKey(okey, NULL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("GetChildConfigKey failed %d", result_code);
@@ -4624,10 +4799,10 @@ upll_rc_t VbrIfPolicingMapMoMgr::GetPolicingProfileConfigKey(
   key_policingprofile_t *okey_key = reinterpret_cast<key_policingprofile_t *>
       (okey->get_key());
   uuu::upll_strncpy(okey_key->policingprofile_name,
-        pp_name,
-        (kMaxLenPolicingProfileName+1));
+                    pp_name,
+                    (kMaxLenPolicingProfileName+1));
   return UPLL_RC_SUCCESS;
 }
-}  // kt_momgr
-}  // upll
-}  // unc
+}  // namespace kt_momgr
+}  // namespace upll
+}  // namespace unc
index 4cc3039aac737e0e0174ac5043acae06039ef4fc..134ff3004ef6ada759c042b065cdb53ed984caee 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -34,7 +34,6 @@ class VbrIfPolicingMapMoMgr : public MoMgrImpl {
   static BindInfo vbrifpolicingmap_bind_info[];
   static BindInfo key_vbrifpm_maintbl_rename_bind_info[];
   static BindInfo key_vbrifpm_policyname_maintbl_rename_bind_info[];
-  uint32_t cur_instance_count;
   /**
    * @Brief Validates the syntax of the specified key and value structure
    *        for KT_VBR_POLICINGMAP keytype
@@ -103,7 +102,7 @@ class VbrIfPolicingMapMoMgr : public MoMgrImpl {
    * @retval    UPLL_RC_ERR_GENERIC          Generic Errors.
    */
   upll_rc_t CreateCandidateMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                              DalDmlIntf *dmi);
+                              DalDmlIntf *dmi, bool restore_flag = false);
 
   /**
    * @Brief This API is used to delete the record (VbrIf name with
@@ -360,9 +359,10 @@ class VbrIfPolicingMapMoMgr : public MoMgrImpl {
   /**
    * @Brief This API updates the Configuration status for AuditConfigiration
    *
-   * @param[in]  ctrlr_rslt           Pointer to ConfigkeyVal class.
+   * @param[in]  cs_status            either UNC_CS_INVALID or UNC_CS_APPLIED.
    * @param[in]  phase                Describes the phase of controller.
    * @param[in]  ckv_running          Pointer to ConfigkeyVal.
+   * @param[in]  dmi                  Pointer to the DalDmlIntf(DB Interface)
    *
    * @retval     UPLL_RC_SUCCESS      Successful completion.
    * @retval     UPLL_RC_ERR_GENERIC  Generic Errors.
@@ -370,7 +370,9 @@ class VbrIfPolicingMapMoMgr : public MoMgrImpl {
   upll_rc_t UpdateAuditConfigStatus(
       unc_keytype_configstatus_t cs_status,
       uuc::UpdateCtrlrPhase phase,
-      ConfigKeyVal *&ckv_running);
+      ConfigKeyVal *&ckv_running,
+      DalDmlIntf *dmi);
+
   /**
    * @Brief Method to compare to keys
    *
@@ -465,24 +467,24 @@ class VbrIfPolicingMapMoMgr : public MoMgrImpl {
   upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey,
                                ConfigKeyVal *ikey);
 
-   /**
-    * @brief  Method used for Restoring Profile in the Controller Table
-    *
-    * @param[in]      ikey       Pointer to ConfigKeyVal Class
-    * @param[in]      dt_type    Describes Configiration Information.
-    * @param[in]      tbl        Describe the destination table
-    * @param[in]      dmi        Pointer to DalDmlIntf Class.
-    *
-    * @retval  UPLL_RC_SUCCESS      Successfull completion.
-    * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
-    * @retval  UPLL_RC_ERR_INSTANCE_EXISTS       Record already exists 
-    * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
-    */
-
-   upll_rc_t RestorePOMInCtrlTbl(ConfigKeyVal *ikey,
-                                 upll_keytype_datatype_t dt_type,
-                                 MoMgrTables tbl,
-                                 DalDmlIntf* dmi);
+  /**
+   * @brief  Method used for Restoring Profile in the Controller Table
+   *
+   * @param[in]      ikey       Pointer to ConfigKeyVal Class
+   * @param[in]      dt_type    Describes Configiration Information.
+   * @param[in]      tbl        Describe the destination table
+   * @param[in]      dmi        Pointer to DalDmlIntf Class.
+   *
+   * @retval  UPLL_RC_SUCCESS      Successfull completion.
+   * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
+   * @retval  UPLL_RC_ERR_INSTANCE_EXISTS       Record already exists 
+   * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
+   */
+
+  upll_rc_t RestorePOMInCtrlTbl(ConfigKeyVal *ikey,
+                                upll_keytype_datatype_t dt_type,
+                                MoMgrTables tbl,
+                                DalDmlIntf* dmi);
 
   upll_rc_t ReadDetail(ConfigKeyVal *ikey,
                        ConfigKeyVal *dup_key,
@@ -586,8 +588,9 @@ class VbrIfPolicingMapMoMgr : public MoMgrImpl {
                                   uint32_t session_id,
                                   uint32_t config_id,
                                   uuc::UpdateCtrlrPhase phase,
-                                  bool *ctrlr_affected,
-                                  DalDmlIntf *dmi);
+                                  DalDmlIntf *dmi,
+                                  ConfigKeyVal **err_ckv,
+                                  KTxCtrlrAffectedState *ctrlr_affected);
 
   upll_rc_t CreateAuditMoImpl(ConfigKeyVal *ikey,
                               DalDmlIntf *dmi,
@@ -617,15 +620,15 @@ class VbrIfPolicingMapMoMgr : public MoMgrImpl {
                       uint8_t &rename);
 
   upll_rc_t GetPolicingProfileConfigKey(
-        const char *pp_name, ConfigKeyVal *&okey,
-        DalDmlIntf *dmi);
+      const char *pp_name, ConfigKeyVal *&okey,
+      DalDmlIntf *dmi);
 
   upll_rc_t SetRenameFlag(ConfigKeyVal *ikey,
                           DalDmlIntf *dmi,
                           IpcReqRespHeader *req);
 };
-}  // kt_momgr
-}  // upll
-}  // unc
+}  // namespace kt_momgr
+}  // namespace upll
+}  // namespace unc
 
 #endif  // MODULES_UPLL_VBR_IF_POLICINGMAP_MOMGR_HH_
index aaf9aeb03aa85be08025b490889e9b3c10b65ab2..0f4e7df3a71e3dc9b976890b1fca7ff51819a26a 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -17,145 +17,145 @@ namespace upll {
 namespace kt_momgr {
 
 BindInfo VbrMoMgr::vbr_bind_info[] = { { uudst::vbridge::kDbiVtnName, CFG_KEY,
-                                         offsetof(key_vbr, vtn_key.vtn_name),
-                                         uud::kDalChar, 32 },
-                                       { uudst::vbridge::kDbiVbrName, CFG_KEY,
-                                         offsetof(key_vbr, vbridge_name),
-                                         uud::kDalChar, 32 },
-                                       { uudst::vbridge::kDbiCtrlrName, CFG_VAL,
-                                         offsetof(val_vbr, controller_id),
-                                         uud::kDalChar, 32 },
-                                       { uudst::vbridge::kDbiCtrlrName, CK_VAL,
-                                         offsetof(key_user_data, ctrlr_id),
-                                         uud::kDalChar, 32 },
-                                       { uudst::vbridge::kDbiDomainId, CFG_VAL,
-                                         offsetof(val_vbr, domain_id),
-                                         uud::kDalChar, 32 },
-                                       { uudst::vbridge::kDbiDomainId, CK_VAL,
-                                         offsetof(key_user_data, domain_id),
-                                         uud::kDalChar, 32 },
-                                       { uudst::vbridge::kDbiVbrDesc, CFG_VAL,
-                                         offsetof(val_vbr, vbr_description),
-                                         uud::kDalChar, 128 },
-                                       { uudst::vbridge::kDbiHostAddr, CFG_VAL,
-                                         offsetof(val_vbr, host_addr),
-                                         uud::kDalUint32, 1 },
-                                       { uudst::vbridge::kDbiHostAddrMask,
-                                         CFG_VAL, offsetof(val_vbr,
-                                                           host_addr_prefixlen),
-                                         uud::kDalUint8, 1 },
-                                       { uudst::vbridge::kDbiOperStatus, ST_VAL,
-                                         offsetof(val_db_vbr_st,
-                                                  vbr_val_st.oper_status),
-                                         uud::kDalUint8, 1 },
-                                       { uudst::vbridge::kDbiDownCount, ST_VAL,
-                                         offsetof(val_db_vbr_st, down_count),
-                                         uud::kDalUint32, 1 },
-                                       { uudst::vbridge::kDbiFaultCount, ST_VAL,
-                                         offsetof(val_db_vbr_st, fault_count),
-                                         uud::kDalUint32, 1 },
-                                       { uudst::vbridge::kDbiValidCtrlrName,
-                                         CFG_META_VAL, offsetof(val_vbr,
-                                                                valid[0]),
-                                         uud::kDalUint8, 1 },
-                                       { uudst::vbridge::kDbiValidDomainId,
-                                         CFG_META_VAL, offsetof(val_vbr,
-                                                                valid[1]),
-                                         uud::kDalUint8, 1 },
-                                       { uudst::vbridge::kDbiValidVbrDesc,
-                                         CFG_META_VAL, offsetof(val_vbr,
-                                                                valid[2]),
-                                         uud::kDalUint8, 1 },
-                                       { uudst::vbridge::kDbiValidHostAddr,
-                                         CFG_META_VAL, offsetof(val_vbr,
-                                                                valid[3]),
-                                         uud::kDalUint8, 1 },
-                                       { uudst::vbridge::kDbiValidHostAddrMask,
-                                         CFG_META_VAL, offsetof(val_vbr,
-                                                                valid[4]),
-                                         uud::kDalUint8, 1 },
-                                       { uudst::vbridge::kDbiValidOperStatus,
-                                         ST_META_VAL, offsetof(val_vbr_st,
-                                                               valid[0]),
-                                         uud::kDalUint8, 1 },
-                                       { uudst::vbridge::kDbiCsRowStatus,
-                                         CS_VAL, offsetof(val_vbr,
-                                                          cs_row_status),
-                                         uud::kDalUint8, 1 },
-                                       { uudst::vbridge::kDbiCsCtrlrName,
-                                         CS_VAL, offsetof(val_vbr, cs_attr[0]),
-                                         uud::kDalUint8, 1 },
-                                       { uudst::vbridge::kDbiCsDomainId, CS_VAL,
-                                         offsetof(val_vbr, cs_attr[1]),
-                                         uud::kDalUint8, 1 },
-                                       { uudst::vbridge::kDbiCsVbrDesc, CS_VAL,
-                                         offsetof(val_vbr, cs_attr[2]),
-                                         uud::kDalUint8, 1 },
-                                       { uudst::vbridge::kDbiCsHostAddr, CS_VAL,
-                                         offsetof(val_vbr, cs_attr[3]),
-                                         uud::kDalUint8, 1 },
-                                       { uudst::vbridge::kDbiCsHostAddrMask,
-                                         CS_VAL, offsetof(val_vbr, cs_attr[4]),
-                                         uud::kDalUint8, 1 },
-                                       { uudst::vbridge::kDbiVbrFlags, CK_VAL,
-                                         offsetof(key_user_data_t, flags),
-                                         uud::kDalUint8, 1 } };
+  offsetof(key_vbr, vtn_key.vtn_name),
+  uud::kDalChar, 32 },
+         { uudst::vbridge::kDbiVbrName, CFG_KEY,
+           offsetof(key_vbr, vbridge_name),
+           uud::kDalChar, 32 },
+         { uudst::vbridge::kDbiCtrlrName, CFG_VAL,
+           offsetof(val_vbr, controller_id),
+           uud::kDalChar, 32 },
+         { uudst::vbridge::kDbiCtrlrName, CK_VAL,
+           offsetof(key_user_data, ctrlr_id),
+           uud::kDalChar, 32 },
+         { uudst::vbridge::kDbiDomainId, CFG_VAL,
+           offsetof(val_vbr, domain_id),
+           uud::kDalChar, 32 },
+         { uudst::vbridge::kDbiDomainId, CK_VAL,
+           offsetof(key_user_data, domain_id),
+           uud::kDalChar, 32 },
+         { uudst::vbridge::kDbiVbrDesc, CFG_VAL,
+           offsetof(val_vbr, vbr_description),
+           uud::kDalChar, 128 },
+         { uudst::vbridge::kDbiHostAddr, CFG_VAL,
+           offsetof(val_vbr, host_addr),
+           uud::kDalUint32, 1 },
+         { uudst::vbridge::kDbiHostAddrMask,
+           CFG_VAL, offsetof(val_vbr,
+                             host_addr_prefixlen),
+           uud::kDalUint8, 1 },
+         { uudst::vbridge::kDbiOperStatus, ST_VAL,
+           offsetof(val_db_vbr_st,
+                    vbr_val_st.oper_status),
+           uud::kDalUint8, 1 },
+         { uudst::vbridge::kDbiDownCount, ST_VAL,
+           offsetof(val_db_vbr_st, down_count),
+           uud::kDalUint32, 1 },
+         { uudst::vbridge::kDbiFaultCount, ST_VAL,
+           offsetof(val_db_vbr_st, fault_count),
+           uud::kDalUint32, 1 },
+         { uudst::vbridge::kDbiValidCtrlrName,
+           CFG_META_VAL, offsetof(val_vbr,
+                                  valid[0]),
+           uud::kDalUint8, 1 },
+         { uudst::vbridge::kDbiValidDomainId,
+           CFG_META_VAL, offsetof(val_vbr,
+                                  valid[1]),
+           uud::kDalUint8, 1 },
+         { uudst::vbridge::kDbiValidVbrDesc,
+           CFG_META_VAL, offsetof(val_vbr,
+                                  valid[2]),
+           uud::kDalUint8, 1 },
+         { uudst::vbridge::kDbiValidHostAddr,
+           CFG_META_VAL, offsetof(val_vbr,
+                                  valid[3]),
+           uud::kDalUint8, 1 },
+         { uudst::vbridge::kDbiValidHostAddrMask,
+           CFG_META_VAL, offsetof(val_vbr,
+                                  valid[4]),
+           uud::kDalUint8, 1 },
+         { uudst::vbridge::kDbiValidOperStatus,
+           ST_META_VAL, offsetof(val_vbr_st,
+                                 valid[0]),
+           uud::kDalUint8, 1 },
+         { uudst::vbridge::kDbiCsRowStatus,
+           CS_VAL, offsetof(val_vbr,
+                            cs_row_status),
+           uud::kDalUint8, 1 },
+         { uudst::vbridge::kDbiCsCtrlrName,
+           CS_VAL, offsetof(val_vbr, cs_attr[0]),
+           uud::kDalUint8, 1 },
+         { uudst::vbridge::kDbiCsDomainId, CS_VAL,
+           offsetof(val_vbr, cs_attr[1]),
+           uud::kDalUint8, 1 },
+         { uudst::vbridge::kDbiCsVbrDesc, CS_VAL,
+           offsetof(val_vbr, cs_attr[2]),
+           uud::kDalUint8, 1 },
+         { uudst::vbridge::kDbiCsHostAddr, CS_VAL,
+           offsetof(val_vbr, cs_attr[3]),
+           uud::kDalUint8, 1 },
+         { uudst::vbridge::kDbiCsHostAddrMask,
+           CS_VAL, offsetof(val_vbr, cs_attr[4]),
+           uud::kDalUint8, 1 },
+         { uudst::vbridge::kDbiVbrFlags, CK_VAL,
+           offsetof(key_user_data_t, flags),
+           uud::kDalUint8, 1 } };
 
 BindInfo VbrMoMgr::vbr_rename_bind_info[] = {
-    { uudst::vnode_rename::kDbiUncVtnName, CFG_KEY, offsetof(key_vbr,
-                                                             vtn_key.vtn_name),
-      uud::kDalChar, 32 },
-    { uudst::vnode_rename::kDbiUncvnodeName, CFG_KEY, offsetof(key_vbr,
-                                                               vbridge_name),
-      uud::kDalChar, 32 },
-    { uudst::vnode_rename::kDbiCtrlrName, CK_VAL, offsetof(key_user_data_t,
-                                                           ctrlr_id),
-      uud::kDalChar, 32 },
-    { uudst::vnode_rename::kDbiDomainId, CK_VAL, offsetof(key_user_data_t,
-                                                          domain_id),
-      uud::kDalChar, 32 },
-    { uudst::vnode_rename::kDbiCtrlrVtnName, CFG_VAL, offsetof(val_rename_vnode,
-                                                               ctrlr_vtn_name),
-      uud::kDalChar, 32 },
-    { uudst::vnode_rename::kDbiCtrlrVnodeName, CFG_VAL, offsetof(
-        val_rename_vnode, ctrlr_vnode_name),
-      uud::kDalChar, 32 } };
+  { uudst::vnode_rename::kDbiUncVtnName, CFG_KEY, offsetof(key_vbr,
+                                                           vtn_key.vtn_name),
+  uud::kDalChar, 32 },
+  { uudst::vnode_rename::kDbiUncvnodeName, CFG_KEY, offsetof(key_vbr,
+                                                             vbridge_name),
+  uud::kDalChar, 32 },
+  { uudst::vnode_rename::kDbiCtrlrName, CK_VAL, offsetof(key_user_data_t,
+                                                         ctrlr_id),
+  uud::kDalChar, 32 },
+  { uudst::vnode_rename::kDbiDomainId, CK_VAL, offsetof(key_user_data_t,
+                                                        domain_id),
+  uud::kDalChar, 32 },
+  { uudst::vnode_rename::kDbiCtrlrVtnName, CFG_VAL, offsetof(val_rename_vnode,
+                                                             ctrlr_vtn_name),
+  uud::kDalChar, 32 },
+  { uudst::vnode_rename::kDbiCtrlrVnodeName, CFG_VAL, offsetof(
+          val_rename_vnode, ctrlr_vnode_name),
+  uud::kDalChar, 32 } };
 
 BindInfo VbrMoMgr::key_vbr_maintbl_bind_info[] = {
-    { uudst::vbridge::kDbiVtnName, CFG_MATCH_KEY, offsetof(key_vbr_t,
-                                                           vtn_key.vtn_name),
-      uud::kDalChar, kMaxLenVtnName + 1 },
-    { uudst::vbridge::kDbiVbrName, CFG_MATCH_KEY, offsetof(key_vbr_t,
-                                                           vbridge_name),
-      uud::kDalChar, kMaxLenVnodeName + 1 },
-    { uudst::vbridge::kDbiVtnName, CFG_INPUT_KEY, offsetof(
-        key_rename_vnode_info_t, new_unc_vtn_name),
-      uud::kDalChar, kMaxLenVtnName + 1 },
-    { uudst::vbridge::kDbiVbrName, CFG_INPUT_KEY, offsetof(
-        key_rename_vnode_info_t, new_unc_vnode_name),
-      uud::kDalChar, kMaxLenVnodeName + 1 },
-    { uudst::vbridge::kDbiVbrFlags, CK_VAL, offsetof(key_user_data_t,
-                                                            flags),
-      uud::kDalUint8, 1 } };
+  { uudst::vbridge::kDbiVtnName, CFG_MATCH_KEY, offsetof(key_vbr_t,
+                                                         vtn_key.vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1 },
+  { uudst::vbridge::kDbiVbrName, CFG_MATCH_KEY, offsetof(key_vbr_t,
+                                                         vbridge_name),
+  uud::kDalChar, kMaxLenVnodeName + 1 },
+  { uudst::vbridge::kDbiVtnName, CFG_INPUT_KEY, offsetof(
+          key_rename_vnode_info_t, new_unc_vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1 },
+  { uudst::vbridge::kDbiVbrName, CFG_INPUT_KEY, offsetof(
+          key_rename_vnode_info_t, new_unc_vnode_name),
+  uud::kDalChar, kMaxLenVnodeName + 1 },
+  { uudst::vbridge::kDbiVbrFlags, CK_VAL, offsetof(key_user_data_t,
+                                                   flags),
+  uud::kDalUint8, 1 } };
 
 BindInfo VbrMoMgr::key_vbr_renametbl_update_bind_info[] = {
-    { uudst::vnode_rename::kDbiUncVtnName, CFG_MATCH_KEY, offsetof(
-        key_vbr_t, vtn_key.vtn_name),
-      uud::kDalChar, kMaxLenVtnName + 1 },
-    { uudst::vnode_rename::kDbiUncvnodeName, CFG_MATCH_KEY, offsetof(
-        key_vbr_t, vbridge_name),
-      uud::kDalChar, kMaxLenVtnName + 1 },
-    { uudst::vnode_rename::kDbiUncVtnName, CFG_INPUT_KEY, offsetof(
-        key_rename_vnode_info_t, new_unc_vtn_name),
-      uud::kDalChar, kMaxLenVtnName + 1 },
-    { uudst::vnode_rename::kDbiUncvnodeName, CFG_INPUT_KEY, offsetof(
-        key_rename_vnode_info_t, new_unc_vnode_name),
-      uud::kDalChar, kMaxLenVtnName + 1 }, };
+  { uudst::vnode_rename::kDbiUncVtnName, CFG_MATCH_KEY, offsetof(
+          key_vbr_t, vtn_key.vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1 },
+  { uudst::vnode_rename::kDbiUncvnodeName, CFG_MATCH_KEY, offsetof(
+          key_vbr_t, vbridge_name),
+  uud::kDalChar, kMaxLenVtnName + 1 },
+  { uudst::vnode_rename::kDbiUncVtnName, CFG_INPUT_KEY, offsetof(
+          key_rename_vnode_info_t, new_unc_vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1 },
+  { uudst::vnode_rename::kDbiUncvnodeName, CFG_INPUT_KEY, offsetof(
+          key_rename_vnode_info_t, new_unc_vnode_name),
+  uud::kDalChar, kMaxLenVtnName + 1 }, };
 
 unc_key_type_t VbrMoMgr::vbr_child[] = { UNC_KT_VBR_VLANMAP,
-                                         UNC_KT_VBR_NWMONITOR,
-                                         UNC_KT_VBR_POLICINGMAP,
-                                         UNC_KT_VBR_FLOWFILTER, UNC_KT_VBR_IF };
+  UNC_KT_VBR_NWMONITOR,
+  UNC_KT_VBR_POLICINGMAP,
+  UNC_KT_VBR_FLOWFILTER, UNC_KT_VBR_IF };
 
 
 
@@ -164,12 +164,12 @@ VbrMoMgr::VbrMoMgr() {
   ntable = MAX_MOMGR_TBLS;
   table = new Table *[ntable];
   table[MAINTBL] = new Table(uudst::kDbiVbrTbl, UNC_KT_VBRIDGE, vbr_bind_info,
-                         IpctSt::kIpcStKeyVbr, IpctSt::kIpcStValVbr,
-                         (uudst::vbridge::kDbiVbrNumCols+2));
+                             IpctSt::kIpcStKeyVbr, IpctSt::kIpcStValVbr,
+                             (uudst::vbridge::kDbiVbrNumCols+2));
   table[RENAMETBL] = new Table(uudst::kDbiVNodeRenameTbl, UNC_KT_VBRIDGE,
-                  vbr_rename_bind_info, IpctSt::kIpcInvalidStNum,
-                  IpctSt::kIpcInvalidStNum,
-                  uudst::vnode_rename::kDbiVnodeRenameNumCols);
+                               vbr_rename_bind_info, IpctSt::kIpcInvalidStNum,
+                               IpctSt::kIpcInvalidStNum,
+                               uudst::vnode_rename::kDbiVnodeRenameNumCols);
   table[CTRLRTBL] = NULL;
   nchild = sizeof(vbr_child) / sizeof(*vbr_child);
   child = vbr_child;
@@ -187,8 +187,8 @@ bool VbrMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo,
     nattr = NUM_KEY_RENAME_TBL_;
     binfo = key_vbr_renametbl_update_bind_info;
   } else {
-      UPLL_LOG_TRACE("Invalid table");
-      return false;
+    UPLL_LOG_TRACE("Invalid table");
+    return false;
   }
   return true;
 }
@@ -202,7 +202,7 @@ bool VbrMoMgr::IsValidKey(void *key,
   switch (index) {
     case uudst::vbridge::kDbiVtnName:
     case uudst::vnode_rename::kDbiUncVtnName:
-        ret_val = ValidateKey(reinterpret_cast<char *>(vbr_key->vtn_key.vtn_name),
+      ret_val = ValidateKey(reinterpret_cast<char *>(vbr_key->vtn_key.vtn_name),
                             kMinLenVtnName, kMaxLenVtnName);
       if (ret_val != UPLL_RC_SUCCESS) {
         UPLL_LOG_TRACE("VTN Name is not valid(%d)", ret_val);
@@ -234,18 +234,18 @@ upll_rc_t VbrMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
   key_vbr *vbr_key = NULL;
   if (okey && (okey->get_key())) {
     vbr_key = reinterpret_cast<key_vbr_t *>
-                (okey->get_key());
+        (okey->get_key());
   } else {
     vbr_key = reinterpret_cast<key_vbr *>
-      (ConfigKeyVal::Malloc(sizeof(key_vbr)));
+        (ConfigKeyVal::Malloc(sizeof(key_vbr)));
   }
   void *pkey;
   if (parent_key == NULL) {
-    if (!okey) 
+    if (!okey)
       okey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, vbr_key,
-                            NULL);
+                              NULL);
     else if (okey->get_key() != vbr_key)
-      okey->SetKey(IpctSt::kIpcStKeyVbr,vbr_key);
+      okey->SetKey(IpctSt::kIpcStKeyVbr, vbr_key);
     return UPLL_RC_SUCCESS;
   } else {
     pkey = parent_key->get_key();
@@ -260,9 +260,11 @@ upll_rc_t VbrMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
   switch (parent_key->get_key_type()) {
     case UNC_KT_VBRIDGE:
       uuu::upll_strncpy(vbr_key->vbridge_name, reinterpret_cast<key_vbr *>
-                       (pkey)->vbridge_name, (kMaxLenVnodeName+1));
-      uuu::upll_strncpy(vbr_key->vtn_key.vtn_name,
-             reinterpret_cast<key_vbr *>(pkey)->vtn_key.vtn_name, (kMaxLenVtnName+1));
+                        (pkey)->vbridge_name, (kMaxLenVnodeName+1));
+      uuu::upll_strncpy(
+          vbr_key->vtn_key.vtn_name,
+          reinterpret_cast<key_vbr *>(pkey)->vtn_key.vtn_name,
+          (kMaxLenVtnName+1));
       break;
     case UNC_KT_VLINK: {
       uint8_t *vnode_name;
@@ -274,28 +276,34 @@ upll_rc_t VbrMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
       }
       GET_USER_DATA_FLAGS(parent_key->get_cfg_val(), flags);
       flags &=  VLINK_FLAG_NODE_POS;
-      UPLL_LOG_DEBUG("Vlink flag node position %d",flags);
+      UPLL_LOG_DEBUG("Vlink flag node position %d", flags);
       if (flags == kVlinkVnode2) {
         vnode_name = vlink_val->vnode2_name;
       } else {
         vnode_name = vlink_val->vnode1_name;
       }
       uuu::upll_strncpy(vbr_key->vbridge_name, vnode_name,
-                          (kMaxLenVnodeName + 1));
-      uuu::upll_strncpy(vbr_key->vtn_key.vtn_name, reinterpret_cast<key_vlink *>(
-                        parent_key->get_key())->vtn_key.vtn_name , (kMaxLenVtnName+1));
-     }
-     break;  
+                        (kMaxLenVnodeName + 1));
+      uuu::upll_strncpy(vbr_key->vtn_key.vtn_name,
+                        reinterpret_cast<key_vlink *>(
+              parent_key->get_key())->vtn_key.vtn_name , (kMaxLenVtnName+1));
+    }
+      break;
     case UNC_KT_VTN:
     default:
-      uuu::upll_strncpy(vbr_key->vtn_key.vtn_name,
-             reinterpret_cast<key_vtn *>(pkey)->vtn_name, (kMaxLenVtnName+1));
+      uuu::upll_strncpy(
+          vbr_key->vtn_key.vtn_name,
+          reinterpret_cast<key_vtn *>(pkey)->vtn_name,
+          (kMaxLenVtnName+1));
       *(vbr_key->vbridge_name) = *"";
   }
   if (!okey)
-    okey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, vbr_key, NULL);
+    okey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+                            IpctSt::kIpcStKeyVbr,
+                            vbr_key,
+                            NULL);
   else if (okey->get_key() != vbr_key)
-    okey->SetKey(IpctSt::kIpcStKeyVbr,vbr_key);
+    okey->SetKey(IpctSt::kIpcStKeyVbr, vbr_key);
   if (okey == NULL) {
     free(vbr_key);
     result_code = UPLL_RC_ERR_GENERIC;
@@ -323,7 +331,8 @@ upll_rc_t VbrMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
   key_vtn *vtn_key = reinterpret_cast<key_vtn *>
       (ConfigKeyVal::Malloc(sizeof(key_vtn)));
   uuu::upll_strncpy(vtn_key->vtn_name,
-       reinterpret_cast<key_vbr *>(pkey)->vtn_key.vtn_name, (kMaxLenVtnName+1));
+                    reinterpret_cast<key_vbr *>
+                    (pkey)->vtn_key.vtn_name, (kMaxLenVtnName+1));
   okey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, vtn_key, NULL);
   if (okey == NULL) {
     free(vtn_key);
@@ -346,20 +355,20 @@ upll_rc_t VbrMoMgr::AdaptValToVtnService(ConfigKeyVal *ikey) {
       UPLL_LOG_DEBUG("Config Val is Null");
       return UPLL_RC_ERR_GENERIC;
     }
-    while (cval ) {
+    while (cval) {
       if (IpctSt::kIpcStValVbrSt == cval->get_st_num()) {
         val_vbr_st *vbr_val_st = reinterpret_cast<val_vbr_st *>
-                         (ConfigKeyVal::Malloc(sizeof(val_vbr_st)));
+            (ConfigKeyVal::Malloc(sizeof(val_vbr_st)));
         val_db_vbr_st *db_vbr_val_st = reinterpret_cast<val_db_vbr_st *>
-                                     (cval->get_val());
-        memcpy(vbr_val_st,&(db_vbr_val_st->vbr_val_st),
+            (cval->get_val());
+        memcpy(vbr_val_st, &(db_vbr_val_st->vbr_val_st),
                sizeof(val_vbr_st));
         cval->SetVal(IpctSt::kIpcStValVbrSt, vbr_val_st);
       }
       cval = cval->get_next_cfg_val();
     }
     ikey = ikey->get_next_cfg_key_val();
-  } 
+  }
   UPLL_LOG_DEBUG("Exiting VbrMoMgr::AdaptValToVtnService");
   return UPLL_RC_SUCCESS;
 }
@@ -426,7 +435,7 @@ upll_rc_t VbrMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
       ConfigVal *ck_v = req->get_cfg_val();
       if (ck_v != NULL && ck_v->get_st_num() == IpctSt::kIpcInvalidStNum) {
         val_rename_vnode *ival = reinterpret_cast<val_rename_vnode *>
-                                                          (GetVal(req));
+            (GetVal(req));
         if (ival == NULL) {
           UPLL_LOG_DEBUG("Null Val structure");
           return UPLL_RC_ERR_GENERIC;
@@ -469,7 +478,7 @@ upll_rc_t VbrMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
     DELETE_IF_NOT_NULL(tmp1);
     return UPLL_RC_ERR_GENERIC;
   }
-//  cout << "VbrMoMgr::DupConfigKeyVal";
+  //  cout << "VbrMoMgr::DupConfigKeyVal";
   key_vbr *ikey = reinterpret_cast<key_vbr *>(tkey);
   key_vbr *vbr_key = reinterpret_cast<key_vbr *>
       (ConfigKeyVal::Malloc(sizeof(key_vbr)));
@@ -497,51 +506,56 @@ upll_rc_t VbrMoMgr::GetRenamedUncKey(ConfigKeyVal *ikey,
   rename_vnode->valid[UPLL_CTRLR_VTN_NAME_VALID] = UNC_VF_INVALID;
   rename_vnode->valid[UPLL_CTRLR_VNODE_NAME_VALID] = UNC_VF_INVALID;
   key_vbr *ctrlr_key = reinterpret_cast<key_vbr *>(ikey->get_key());
-  upll_rc_t ret_val = ValidateKey(reinterpret_cast<char *>(ctrlr_key->vtn_key.vtn_name),
-                        kMinLenVtnName, kMaxLenVtnName);
+  upll_rc_t ret_val = ValidateKey(reinterpret_cast<char *>
+                                  (ctrlr_key->vtn_key.vtn_name),
+                                  kMinLenVtnName,
+                                  kMaxLenVtnName);
   if (ret_val == UPLL_RC_SUCCESS)  {
-    uuu::upll_strncpy(rename_vnode->ctrlr_vtn_name, ctrlr_key->vtn_key.vtn_name,
-                   (kMaxLenVtnName+1));
+    uuu::upll_strncpy(rename_vnode->ctrlr_vtn_name,
+                      ctrlr_key->vtn_key.vtn_name,
+                      (kMaxLenVtnName+1));
     rename_vnode->valid[UPLL_CTRLR_VTN_NAME_VALID] = UNC_VF_VALID;
   }
   ret_val = ValidateKey(reinterpret_cast<char *>(ctrlr_key->vbridge_name),
                         kMinLenVnodeName, kMaxLenVnodeName);
   if (ret_val == UPLL_RC_SUCCESS)  {
     uuu::upll_strncpy(rename_vnode->ctrlr_vnode_name, ctrlr_key->vbridge_name,
-                   (kMaxLenVnodeName+1));
+                      (kMaxLenVnodeName+1));
     rename_vnode->valid[UPLL_CTRLR_VNODE_NAME_VALID] = UNC_VF_VALID;
   }
   result_code = GetChildConfigKey(unc_key, NULL);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("GetChildConfigKey Failed with result_code %d",
-                     result_code);
+                   result_code);
     FREE_IF_NOT_NULL(rename_vnode);
     return result_code;
   }
   if (ctrlr_id) {
     SET_USER_DATA_CTRLR(unc_key, ctrlr_id);
-  }else 
+  } else {
     dbop.matchop = kOpMatchNone;
+  }
   unc_key->AppendCfgVal(IpctSt::kIpcStValRenameVtn, rename_vnode);
-//  UPLL_LOG_TRACE("Before Read from Rename Table %s", (unc_key->ToStrAll()).c_str());
+  //  UPLL_LOG_TRACE("Before Read from Rename Table %s",
+  //  (unc_key->ToStrAll()).c_str());
   result_code = ReadConfigDB(unc_key, dt_type, UNC_OP_READ, dbop, dmi,
-                              RENAMETBL);
+                             RENAMETBL);
   if (result_code == UPLL_RC_SUCCESS) {
-//    uint8_t rename  = 0;
+    //    uint8_t rename  = 0;
     key_vbr *vbr_key = reinterpret_cast<key_vbr *>(unc_key->get_key());
     if (strcmp(reinterpret_cast<char *>(ctrlr_key->vtn_key.vtn_name),
                reinterpret_cast<char*>(vbr_key->vtn_key.vtn_name))) {
       UPLL_LOG_DEBUG("Not Same Vtn Name");
       uuu::upll_strncpy(ctrlr_key->vtn_key.vtn_name, vbr_key->vtn_key.vtn_name,
                         (kMaxLenVtnName+1));
-//      rename |= VTN_RENAME;
+      //      rename |= VTN_RENAME;
     }
     if (strcmp(reinterpret_cast<char *>(ctrlr_key->vbridge_name),
                reinterpret_cast<const char *>(vbr_key->vbridge_name))) {
       UPLL_LOG_DEBUG("Not same Vbridge Name");
       uuu::upll_strncpy(ctrlr_key->vbridge_name, vbr_key->vbridge_name,
                         (kMaxLenVnodeName+1));
-//      rename |= VN_RENAME;
+      //      rename |= VN_RENAME;
     }
     SET_USER_DATA(ikey, unc_key);
   }
@@ -573,19 +587,19 @@ upll_rc_t VbrMoMgr::GetRenamedControllerKey(ConfigKeyVal *ikey,
   } else {
     result_code = GetChildConfigKey(dup_key, ikey);
     if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetChildConfigKey Failed %d",result_code);
+      UPLL_LOG_DEBUG("GetChildConfigKey Failed %d", result_code);
       return result_code;
     }
 #endif
     result_code = IsRenamed(ikey, dt_type, dmi, rename);
     if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Returning %d",result_code);
+      UPLL_LOG_DEBUG("Returning %d", result_code);
       return result_code;
     }
     if (!ctrlr_dom->ctrlr ||
-      !strlen(reinterpret_cast<const char *>(ctrlr_dom->ctrlr)) ||
-      !ctrlr_dom->domain ||
-      !strlen(reinterpret_cast<const char *>(ctrlr_dom->domain))) {
+        !strlen(reinterpret_cast<const char *>(ctrlr_dom->ctrlr)) ||
+        !ctrlr_dom->domain ||
+        !strlen(reinterpret_cast<const char *>(ctrlr_dom->domain))) {
       GET_USER_DATA_CTRLR_DOMAIN(ikey, *ctrlr_dom);
     }
 #if 0
@@ -598,7 +612,7 @@ upll_rc_t VbrMoMgr::GetRenamedControllerKey(ConfigKeyVal *ikey,
     SET_USER_DATA(ikey, dup_key);
     GET_USER_DATA_CTRLR_DOMAIN(ikey, *ctrlr_dom);
     if (dup_key)
-     delete dup_key;
+      delete dup_key;
   }
   if (!ctrlr_dom->ctrlr ||
       !strlen(reinterpret_cast<const char *>(ctrlr_dom->ctrlr)) ||
@@ -610,27 +624,27 @@ upll_rc_t VbrMoMgr::GetRenamedControllerKey(ConfigKeyVal *ikey,
       !strlen(reinterpret_cast<const char *>(ctrlr_dom->ctrlr)) ||
       !ctrlr_dom->domain ||
       !strlen(reinterpret_cast<const char *>(ctrlr_dom->domain))) {
-      UPLL_LOG_DEBUG("Invalid Ctrlr/domain");
-      return UPLL_RC_ERR_GENERIC;
+    UPLL_LOG_DEBUG("Invalid Ctrlr/domain");
+    return UPLL_RC_ERR_GENERIC;
   }
 #endif
   if (rename == 0)
     return UPLL_RC_SUCCESS;
   result_code = GetChildConfigKey(okey, ikey);
   if (result_code != UPLL_RC_SUCCESS) {
-     UPLL_LOG_DEBUG("Returning error %d",result_code);
-     return result_code;
+    UPLL_LOG_DEBUG("Returning error %d", result_code);
+    return result_code;
   }
   SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
   DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr | kOpMatchDomain,
-                                  kOpInOutFlag };
+    kOpInOutFlag };
   result_code = ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop, dmi, RENAMETBL);
   if (result_code != UPLL_RC_SUCCESS) {
     DELETE_IF_NOT_NULL(okey);
     return result_code;
   }
   val_rename_vnode *rename_val = reinterpret_cast<val_rename_vnode *>
-                                                         (GetVal(okey));
+      (GetVal(okey));
   if (!rename_val) {
     UPLL_LOG_DEBUG("Val is Empty");
     DELETE_IF_NOT_NULL(okey);
@@ -649,7 +663,7 @@ upll_rc_t VbrMoMgr::GetRenamedControllerKey(ConfigKeyVal *ikey,
   }
   if (rename & VN_RENAME) { /* vnode renamed */
     uuu::upll_strncpy(ctrlr_key->vbridge_name, rename_val->ctrlr_vnode_name,
-                     (kMaxLenVnodeName+1));
+                      (kMaxLenVnodeName+1));
   }
   SET_USER_DATA_FLAGS(ikey, rename);
   DELETE_IF_NOT_NULL(okey);
@@ -669,7 +683,7 @@ upll_rc_t VbrMoMgr::UpdateConfigStatus(ConfigKeyVal *vbr_key,
 
   unc_keytype_configstatus_t cs_status =
       (driver_result == UPLL_RC_SUCCESS) ? UNC_CS_APPLIED
-                                        : UNC_CS_NOT_APPLIED;
+      : UNC_CS_NOT_APPLIED;
   vbr_val = reinterpret_cast<val_vbr *>(GetVal(vbr_key));
   val_vbr *vbr_val2 = reinterpret_cast<val_vbr *>(GetVal(upd_key));
   if (vbr_val == NULL) return UPLL_RC_ERR_GENERIC;
@@ -680,7 +694,9 @@ upll_rc_t VbrMoMgr::UpdateConfigStatus(ConfigKeyVal *vbr_key,
     val_vbrst = reinterpret_cast<val_db_vbr_st *>
         (ConfigKeyVal::Malloc(sizeof(val_db_vbr_st)));
     // val_vbrst->vbr_val_st.oper_status = UPLL_OPER_STATUS_UNINIT;
-    val_vbrst->vbr_val_st.oper_status = UPLL_OPER_STATUS_DOWN;
+    val_vbrst->vbr_val_st.oper_status =
+        (driver_result == UPLL_RC_ERR_CTR_DISCONNECTED)?
+        UPLL_OPER_STATUS_UNKNOWN:UPLL_OPER_STATUS_DOWN;
     val_vbrst->down_count  = 0;
     val_vbrst->fault_count  = 0;
     val_vbrst->vbr_val_st.valid[UPLL_IDX_OPER_STATUS_VBRS] = UNC_VF_VALID;
@@ -694,9 +710,9 @@ upll_rc_t VbrMoMgr::UpdateConfigStatus(ConfigKeyVal *vbr_key,
     return UPLL_RC_ERR_GENERIC;
   }
   for (unsigned int loop = 0;
-    loop < sizeof(vbr_val->valid) / sizeof(vbr_val->valid[0]); ++loop) {
+       loop < sizeof(vbr_val->valid) / sizeof(vbr_val->valid[0]); ++loop) {
     if ((UNC_VF_VALID == vbr_val->valid[loop])
-          || (UNC_VF_VALID_NO_VALUE == vbr_val->valid[loop])) {
+        || (UNC_VF_VALID_NO_VALUE == vbr_val->valid[loop])) {
       // Description is set to APPLIED
       if (loop == UPLL_IDX_DESC_VBR)
         vbr_val->cs_attr[loop] = UNC_CS_APPLIED;
@@ -704,10 +720,10 @@ upll_rc_t VbrMoMgr::UpdateConfigStatus(ConfigKeyVal *vbr_key,
         vbr_val->cs_attr[loop] = cs_status;
     } else if ((UNC_VF_INVALID == vbr_val->valid[loop]) &&
                (UNC_OP_CREATE == op)) {
-        vbr_val->cs_attr[loop] = UNC_CS_APPLIED;
+      vbr_val->cs_attr[loop] = UNC_CS_APPLIED;
     } else if ((UNC_VF_INVALID == vbr_val->valid[loop]) &&
                (UNC_OP_UPDATE == op)) {
-        vbr_val->cs_attr[loop] = vbr_val2->cs_attr[loop];
+      vbr_val->cs_attr[loop] = vbr_val2->cs_attr[loop];
     }
   }
   return result_code;
@@ -733,14 +749,14 @@ upll_rc_t VbrMoMgr::GetControllerDomainId(ConfigKeyVal *ikey,
   if (temp_vbr == NULL
       || temp_vbr->valid[UPLL_IDX_DOMAIN_ID_VBR] != UNC_VF_VALID
       || !strlen(reinterpret_cast<char*>(
-         temp_vbr->domain_id))) {
+              temp_vbr->domain_id))) {
     ctrlr_dom->domain = NULL;
     UPLL_LOG_DEBUG("Domain null");
   } else {
     SET_USER_DATA_DOMAIN(ikey, temp_vbr->domain_id);
     GET_USER_DATA_CTRLR_DOMAIN(ikey, *ctrlr_dom);
   }
-  UPLL_LOG_DEBUG("ctrlr_dom %s %s",ctrlr_dom->ctrlr, ctrlr_dom->domain);
+  UPLL_LOG_DEBUG("ctrlr_dom %s %s", ctrlr_dom->ctrlr, ctrlr_dom->domain);
   return UPLL_RC_SUCCESS;
 }
 
@@ -776,27 +792,32 @@ upll_rc_t VbrMoMgr::SwapKeyVal(ConfigKeyVal *ikey,
   /* The PFC Name and New Name should not be equal */
   if (!strcmp(reinterpret_cast<char *>(tval->new_name),
               reinterpret_cast<char *>(reinterpret_cast<key_vbr_t *>
-              (ikey->get_key())->vbridge_name)))
+                                       (ikey->get_key())->vbridge_name)))
     return UPLL_RC_ERR_GENERIC;
 
   key_vbr_t *key_vbr = reinterpret_cast<key_vbr_t *>
       (ConfigKeyVal::Malloc(sizeof(key_vbr_t)));
 
   if (tval->valid[UPLL_IDX_NEW_NAME_RVBR] == UNC_VF_VALID_NO_VALUE) {
-    uuu::upll_strncpy(key_vbr->vbridge_name, (static_cast<key_vbr_t *>
-                     (ikey->get_key())->vbridge_name), (kMaxLenVnodeName+1));
+    uuu::upll_strncpy(key_vbr->vbridge_name,
+                      (static_cast<key_vbr_t *>
+                       (ikey->get_key())->vbridge_name),
+                      (kMaxLenVnodeName+1));
     no_rename = true;
   } else {
     if (reinterpret_cast<val_rename_vbr_t *>
-       (tval)->valid[UPLL_IDX_NEW_NAME_RVBR] == UNC_VF_VALID) {
+        (tval)->valid[UPLL_IDX_NEW_NAME_RVBR] == UNC_VF_VALID) {
       // checking the string is empty or not
       if (!strlen(reinterpret_cast<char *>(static_cast<val_rename_vbr_t *>
-         (tval)->new_name))) {
+                                           (tval)->new_name))) {
         free(key_vbr);
         return UPLL_RC_ERR_GENERIC;
       }
-      uuu::upll_strncpy(key_vbr->vbridge_name, (static_cast<val_rename_vbr_t *>
-           ((ikey->get_cfg_val())->get_val()))->new_name, (kMaxLenVnodeName+1));
+      uuu::upll_strncpy(
+          key_vbr->vbridge_name,
+          (static_cast<val_rename_vbr_t *>
+           ((ikey->get_cfg_val())->get_val()))->new_name,
+          (kMaxLenVnodeName+1));
     } else {
       free(key_vbr);
       return UPLL_RC_ERR_GENERIC;
@@ -811,7 +832,7 @@ upll_rc_t VbrMoMgr::SwapKeyVal(ConfigKeyVal *ikey,
     return result_code;
   }
   MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
-                                            (GetMoManager(UNC_KT_VTN)));
+                                                 (GetMoManager(UNC_KT_VTN)));
   result_code = mgr->GetRenamedUncKey(pkey, UPLL_DT_IMPORT, dmi, ctrlr);
   if (UPLL_RC_SUCCESS != result_code
       && UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
@@ -821,9 +842,9 @@ upll_rc_t VbrMoMgr::SwapKeyVal(ConfigKeyVal *ikey,
   }
   // use the UNC VTN name if PFC VTN name is renamed;
   if (strlen(reinterpret_cast<char *>(reinterpret_cast<key_vtn_t *>
-                                     (pkey->get_key())->vtn_name)))
+                                      (pkey->get_key())->vtn_name)))
     uuu::upll_strncpy(key_vbr->vtn_key.vtn_name, reinterpret_cast<key_vtn_t *>
-                     (pkey->get_key())->vtn_name, (kMaxLenVtnName+1));
+                      (pkey->get_key())->vtn_name, (kMaxLenVtnName+1));
   delete pkey;
   pkey = NULL;
   okey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key_vbr, NULL);
@@ -831,32 +852,34 @@ upll_rc_t VbrMoMgr::SwapKeyVal(ConfigKeyVal *ikey,
     free(key_vbr);
     return UPLL_RC_ERR_GENERIC;
   }
-//  cout << " SetConfigEnd ";
+  //  cout << " SetConfigEnd ";
   return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t VbrMoMgr::UpdateAuditConfigStatus(
-                                         unc_keytype_configstatus_t cs_status,
-                                         uuc::UpdateCtrlrPhase phase,
-                                         ConfigKeyVal *&ckv_running) {
+    unc_keytype_configstatus_t cs_status,
+    uuc::UpdateCtrlrPhase phase,
+    ConfigKeyVal *&ckv_running,
+    DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_vbr_t *val;
   val = (ckv_running != NULL) ? reinterpret_cast<val_vbr_t *>
-                               (GetVal(ckv_running)) : NULL;
+      (GetVal(ckv_running)) : NULL;
   if (NULL == val) {
     return UPLL_RC_ERR_GENERIC;
   }
   if (uuc::kUpllUcpCreate == phase)
     val->cs_row_status = cs_status;
   if ((uuc::kUpllUcpUpdate == phase) &&
-           (val->cs_row_status == UNC_CS_INVALID ||
-            val->cs_row_status == UNC_CS_NOT_APPLIED))
+      (val->cs_row_status == UNC_CS_INVALID ||
+       val->cs_row_status == UNC_CS_NOT_APPLIED))
     val->cs_row_status = cs_status;
   for (unsigned int loop = 0; loop < sizeof(val->valid) / sizeof(uint8_t);
-      ++loop) {
+       ++loop) {
     if ((cs_status == UNC_CS_INVALID && UNC_VF_VALID == val->valid[loop]) ||
-         cs_status == UNC_CS_APPLIED)
-       val->cs_attr[loop] = cs_status;
+        cs_status == UNC_CS_APPLIED)
+      val->cs_attr[loop] = cs_status;
   }
   return result_code;
 }
@@ -871,7 +894,7 @@ upll_rc_t VbrMoMgr::MergeValidate(unc_key_type_t keytype,
   ConfigKeyVal *tkey = NULL;
 
   if (!ikey || !ikey->get_key() || !(strlen(reinterpret_cast<const char *>
-     (ctrlr_id)))) {
+                                            (ctrlr_id)))) {
     UPLL_LOG_DEBUG("Input is NULL");
     return UPLL_RC_ERR_GENERIC;
   }
@@ -889,7 +912,7 @@ upll_rc_t VbrMoMgr::MergeValidate(unc_key_type_t keytype,
                              MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     if (dup_key) delete dup_key;
-     return result_code;
+    return result_code;
   }
   ConfigKeyVal *travel = dup_key;
   while (travel) {
@@ -905,7 +928,7 @@ upll_rc_t VbrMoMgr::MergeValidate(unc_key_type_t keytype,
       if (dup_key) delete dup_key;
       return result_code;
     }
-   /* Same Name should not present in the vnodes in running*/
+    /* Same Name should not present in the vnodes in running*/
     result_code = VnodeChecks(tkey, UPLL_DT_CANDIDATE, dmi);
     if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code ||
         UPLL_RC_ERR_CFG_SEMANTIC == result_code) {
@@ -918,14 +941,14 @@ upll_rc_t VbrMoMgr::MergeValidate(unc_key_type_t keytype,
     /* Any other DB error */
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("VnodeChecks Failed %d", result_code);
-       if (tkey) delete tkey;
-       if (dup_key) delete dup_key;
+      if (tkey) delete tkey;
+      if (dup_key) delete dup_key;
       return result_code;
     }
 
     val_vbr_t *tval = reinterpret_cast<val_vbr_t *>(GetVal(tkey));
     if (!tval) {
-       UPLL_LOG_DEBUG(" Value Structure is not Available ");
+      UPLL_LOG_DEBUG(" Value Structure is not Available ");
     }
     if (tval &&
         tval->valid[UPLL_IDX_HOST_ADDR_VBR] == UNC_VF_VALID) {
@@ -936,15 +959,19 @@ upll_rc_t VbrMoMgr::MergeValidate(unc_key_type_t keytype,
       tval->valid[UPLL_IDX_CONTROLLER_ID_VBR] = UNC_VF_INVALID;
       tval->valid[UPLL_IDX_DESC_VBR] = UNC_VF_INVALID;
 
-    /*Checsk the hostaddress should not be present same vtn */
-       memset(reinterpret_cast<key_vbr_t *>
-                 (tkey->get_key())->vbridge_name, 0, (kMaxLenVnodeName+1));
-       result_code = ReadConfigDB(tkey, UPLL_DT_CANDIDATE, UNC_OP_READ, dbop, dmi,
-                                   MAINTBL);
+      /*Checsk the hostaddress should not be present same vtn */
+      memset(reinterpret_cast<key_vbr_t *>
+             (tkey->get_key())->vbridge_name, 0, (kMaxLenVnodeName+1));
+      result_code = ReadConfigDB(tkey,
+                                 UPLL_DT_CANDIDATE,
+                                 UNC_OP_READ,
+                                 dbop,
+                                 dmi,
+                                 MAINTBL);
       if (UPLL_RC_SUCCESS == result_code) {
         ikey->ResetWith(tkey);
         if (tkey) delete tkey;
-        if(dup_key) delete dup_key;
+        if (dup_key) delete dup_key;
         UPLL_LOG_DEBUG("VBridge Host Address Conflict");
         return UPLL_RC_ERR_MERGE_CONFLICT;
       }
@@ -958,7 +985,7 @@ upll_rc_t VbrMoMgr::MergeValidate(unc_key_type_t keytype,
     }
     if (tkey) {
       delete tkey;
-      tkey = NULL; 
+      tkey = NULL;
     }
     travel = travel->get_next_cfg_key_val();
   }
@@ -974,7 +1001,7 @@ upll_rc_t VbrMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
   key_rename_vnode_info *key_rename = reinterpret_cast<key_rename_vnode_info *>
-                                                    (ikey->get_key());
+      (ikey->get_key());
   key_vbr_t * key_vbr = reinterpret_cast<key_vbr_t *>
       (ConfigKeyVal::Malloc(sizeof(key_vbr_t)));
   if (!strlen(reinterpret_cast<char *>(key_rename->old_unc_vtn_name))) {
@@ -988,7 +1015,7 @@ upll_rc_t VbrMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
       free(key_vbr);
       return UPLL_RC_ERR_GENERIC;
     }
-  uuu::upll_strncpy(key_vbr->vbridge_name, key_rename->old_unc_vnode_name,
+    uuu::upll_strncpy(key_vbr->vbridge_name, key_rename->old_unc_vnode_name,
                       (kMaxLenVnodeName+1));
   }
   okey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key_vbr, NULL);
@@ -1012,8 +1039,8 @@ upll_rc_t VbrMoMgr::GetRenameInfo(ConfigKeyVal *ikey,
 
   key_vbr_t * vbr_key = NULL;
   key_rename_vnode_info *vbr_rename_info =
-                    reinterpret_cast<key_rename_vnode_info *>
-                    (ConfigKeyVal::Malloc(sizeof(key_rename_vnode_info)));
+      reinterpret_cast<key_rename_vnode_info *>
+      (ConfigKeyVal::Malloc(sizeof(key_rename_vnode_info)));
 
   vbr_key = reinterpret_cast<key_vbr_t *>(ikey->get_key());
   if (!vbr_key) {
@@ -1021,26 +1048,28 @@ upll_rc_t VbrMoMgr::GetRenameInfo(ConfigKeyVal *ikey,
     return UPLL_RC_ERR_GENERIC;
   }
   if (renamed) {
-    if (! reinterpret_cast<val_rename_vnode_t *>(GetVal(ikey)) ||
+    if (!reinterpret_cast<val_rename_vnode_t *>(GetVal(ikey)) ||
         !(strlen(reinterpret_cast<char *>
-               (reinterpret_cast<val_rename_vnode_t *>
-               (GetVal(ikey))->ctrlr_vnode_name)))) {
+                 (reinterpret_cast<val_rename_vnode_t *>
+                  (GetVal(ikey))->ctrlr_vnode_name)))) {
       free(vbr_rename_info);
       return UPLL_RC_ERR_GENERIC;
     }
     uuu::upll_strncpy(vbr_rename_info->ctrlr_vnode_name,
-        reinterpret_cast<val_rename_vnode_t *>(GetVal(ikey))->ctrlr_vnode_name,
-         (kMaxLenVnodeName+1));
-    if (! reinterpret_cast<val_rename_vnode_t *>(GetVal(ikey)) ||
+                      reinterpret_cast<val_rename_vnode_t *>
+                      (GetVal(ikey))->ctrlr_vnode_name,
+                      (kMaxLenVnodeName+1));
+    if (!reinterpret_cast<val_rename_vnode_t *>(GetVal(ikey)) ||
         !(strlen(reinterpret_cast<char *>
-               (reinterpret_cast<val_rename_vnode_t *>
-               (GetVal(ikey))->ctrlr_vtn_name)))) {
+                 (reinterpret_cast<val_rename_vnode_t *>
+                  (GetVal(ikey))->ctrlr_vtn_name)))) {
       free(vbr_rename_info);
       return UPLL_RC_ERR_GENERIC;
     }
     uuu::upll_strncpy(vbr_rename_info->ctrlr_vtn_name,
-          reinterpret_cast<val_rename_vnode_t *>(GetVal(ikey))->ctrlr_vtn_name,
-          (kMaxLenVtnName+1));
+                      reinterpret_cast<val_rename_vnode_t *>
+                      (GetVal(ikey))->ctrlr_vtn_name,
+                      (kMaxLenVtnName+1));
   } else {
     if (strlen(reinterpret_cast<char *>(vbr_key->vbridge_name)) == 0) {
       free(vbr_rename_info);
@@ -1053,7 +1082,7 @@ upll_rc_t VbrMoMgr::GetRenameInfo(ConfigKeyVal *ikey,
       return UPLL_RC_ERR_GENERIC;
     }
     uuu::upll_strncpy(vbr_rename_info->ctrlr_vtn_name,
-         vbr_key->vtn_key.vtn_name, (kMaxLenVtnName+1));
+                      vbr_key->vtn_key.vtn_name, (kMaxLenVtnName+1));
   }
 
   if (strlen(reinterpret_cast<char *>(vbr_key->vbridge_name)) == 0) {
@@ -1067,9 +1096,9 @@ upll_rc_t VbrMoMgr::GetRenameInfo(ConfigKeyVal *ikey,
     return UPLL_RC_ERR_GENERIC;
   }
   uuu::upll_strncpy(vbr_rename_info->new_unc_vtn_name,
-                   vbr_key->vtn_key.vtn_name, (kMaxLenVtnName+1));
+                    vbr_key->vtn_key.vtn_name, (kMaxLenVtnName+1));
   uuu::upll_strncpy(vbr_rename_info->old_unc_vtn_name,
-         vbr_key->vtn_key.vtn_name, (kMaxLenVtnName+1));
+                    vbr_key->vtn_key.vtn_name, (kMaxLenVtnName+1));
 
   vbr_key = reinterpret_cast<key_vbr_t *>(okey->get_key());
   if (!vbr_key) {
@@ -1081,7 +1110,7 @@ upll_rc_t VbrMoMgr::GetRenameInfo(ConfigKeyVal *ikey,
     return UPLL_RC_ERR_GENERIC;
   }
   uuu::upll_strncpy(vbr_rename_info->new_unc_vnode_name,
-         vbr_key->vbridge_name, (kMaxLenVnodeName+1));
+                    vbr_key->vbridge_name, (kMaxLenVnodeName+1));
 
   rename_info = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcInvalidStNum,
                                  vbr_rename_info, NULL);
@@ -1102,13 +1131,15 @@ upll_rc_t VbrMoMgr::GetRenameInfo(ConfigKeyVal *ikey,
         (ConfigKeyVal::Malloc(sizeof(val_rename_vnode_t)));
     ConfigKeyVal *tmp_key = NULL;
     result_code = GetChildConfigKey(tmp_key, ikey);
-    if (UPLL_RC_SUCCESS!=result_code || tmp_key == NULL) {
+    if (UPLL_RC_SUCCESS != result_code || tmp_key == NULL) {
       free(vnode);
       return result_code;
     }
-    DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutCtrlr|kOpInOutDomain};
+    DbSubOp dbop = { kOpReadSingle,
+      kOpMatchNone,
+      kOpInOutCtrlr|kOpInOutDomain};
     result_code = ReadConfigDB(tmp_key, UPLL_DT_IMPORT, UNC_OP_READ, dbop, dmi,
-                                MAINTBL);
+                               MAINTBL);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_INFO("ReadConfigDB Failed %d\n", result_code);
       free(vnode);
@@ -1118,21 +1149,21 @@ upll_rc_t VbrMoMgr::GetRenameInfo(ConfigKeyVal *ikey,
     controller_domain ctrlr_dom;
     result_code = GetControllerDomainId(tmp_key, &ctrlr_dom);
     if (UPLL_RC_SUCCESS != result_code) {
-       UPLL_LOG_INFO("Returning error %d\n",result_code);
-       delete tmp_key;
-       return result_code;
+      UPLL_LOG_INFO("Returning error %d\n", result_code);
+      delete tmp_key;
+      return result_code;
     }
     SET_USER_DATA_CTRLR_DOMAIN(okey, ctrlr_dom);
     uuu::upll_strncpy(vnode->ctrlr_vtn_name, reinterpret_cast<key_vbr_t *>
-                     (ikey->get_key())->vtn_key.vtn_name, (kMaxLenVtnName+1));
+                      (ikey->get_key())->vtn_key.vtn_name, (kMaxLenVtnName+1));
     uuu::upll_strncpy(vnode->ctrlr_vnode_name, reinterpret_cast<key_vbr_t *>
-                     (ikey->get_key())->vbridge_name, (kMaxLenVnodeName+1));
+                      (ikey->get_key())->vbridge_name, (kMaxLenVnodeName+1));
     ConfigVal *rename_val_ = new ConfigVal(IpctSt::kIpcInvalidStNum, vnode);
     okey->SetCfgVal(rename_val_);
     vnode->valid[UPLL_CTRLR_VTN_NAME_VALID] = UNC_VF_VALID;
     vnode->valid[UPLL_CTRLR_VNODE_NAME_VALID] = UNC_VF_VALID;
     UPLL_LOG_TRACE("Before Create entry in rename table %s",
-        (okey->ToStrAll()).c_str());
+                   (okey->ToStrAll()).c_str());
     dbop.readop = kOpNotRead;
     result_code = UpdateConfigDB(okey, UPLL_DT_IMPORT, UNC_OP_CREATE, dmi,
                                  &dbop, RENAMETBL);
@@ -1142,7 +1173,7 @@ upll_rc_t VbrMoMgr::GetRenameInfo(ConfigKeyVal *ikey,
 }
 
 upll_rc_t VbrMoMgr::CtrlrIdAndDomainIdUpdationCheck(ConfigKeyVal *ikey,
-                                                   ConfigKeyVal *okey) {
+                                                    ConfigKeyVal *okey) {
   UPLL_FUNC_TRACE;
   val_vbr *vbr_val = reinterpret_cast<val_vbr *>(GetVal(ikey));
   val_vbr *vbr_val1 = reinterpret_cast<val_vbr *>(GetVal(okey));
@@ -1152,13 +1183,13 @@ upll_rc_t VbrMoMgr::CtrlrIdAndDomainIdUpdationCheck(ConfigKeyVal *ikey,
                 kMaxLenCtrlrId+1)) {
       UPLL_LOG_DEBUG("controller id comparision failed");
       return UPLL_RC_ERR_CFG_SYNTAX;
-    } 
-  } 
+    }
+  }
   if (vbr_val->valid[UPLL_IDX_DOMAIN_ID_VBR] == UNC_VF_VALID) {
     if (strncmp(reinterpret_cast<const char *>(vbr_val->domain_id),
                 reinterpret_cast<const char *>(vbr_val1->domain_id),
                 kMaxLenDomainId+1)) {
-      UPLL_LOG_DEBUG("domain id comparision failed"); 
+      UPLL_LOG_DEBUG("domain id comparision failed");
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   }
@@ -1166,7 +1197,7 @@ upll_rc_t VbrMoMgr::CtrlrIdAndDomainIdUpdationCheck(ConfigKeyVal *ikey,
 }
 
 upll_rc_t VbrMoMgr::ValidateVbrKey(key_vbr *vbr_key,
-                       unc_keytype_operation_t operation) {
+                                   unc_keytype_operation_t operation) {
   UPLL_FUNC_TRACE;
   upll_rc_t ret_val = UPLL_RC_SUCCESS;
   ret_val = ValidateKey(reinterpret_cast<char *>(vbr_key->vtn_key.vtn_name),
@@ -1174,19 +1205,19 @@ upll_rc_t VbrMoMgr::ValidateVbrKey(key_vbr *vbr_key,
                         kMaxLenVtnName);
   if (ret_val != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("vtn name syntax check failed."
-                  "Received vtn_name - %s",
-                  vbr_key->vtn_key.vtn_name);
+                   "Received vtn_name - %s",
+                   vbr_key->vtn_key.vtn_name);
     return UPLL_RC_ERR_CFG_SYNTAX;
   }
-  if (operation != UNC_OP_READ_SIBLING_COUNT && 
+  if (operation != UNC_OP_READ_SIBLING_COUNT &&
       operation != UNC_OP_READ_SIBLING_BEGIN) {
     ret_val = ValidateKey(reinterpret_cast<char *> (vbr_key->vbridge_name),
-                        kMinLenVnodeName,
-                        kMaxLenVnodeName);
+                          kMinLenVnodeName,
+                          kMaxLenVnodeName);
     if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Vbridge name syntax check failed."
-                  "Received vbridge_name - %s",
-                  vbr_key->vbridge_name);
+                     "Received vbridge_name - %s",
+                     vbr_key->vbridge_name);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else {
@@ -1203,12 +1234,12 @@ upll_rc_t VbrMoMgr::ValidateVbrValue(val_vbr *vbr_val,
   // Attribute syntax validation
   for (unsigned int valid_index = 0;
        valid_index < sizeof(vbr_val->valid) / sizeof(vbr_val->valid[0]);
-       valid_index++) { 
+       valid_index++) {
     if (vbr_val->valid[valid_index] == UNC_VF_VALID) {
-      switch(valid_index) {    
+      switch (valid_index) {
         case UPLL_IDX_CONTROLLER_ID_VBR:
           ret_val = ValidateString(vbr_val->controller_id,
-                                   kMinLenCtrlrId, kMaxLenCtrlrId); 
+                                   kMinLenCtrlrId, kMaxLenCtrlrId);
           break;
         case UPLL_IDX_DOMAIN_ID_VBR:
           ret_val = ValidateDefaultStr(vbr_val->domain_id,
@@ -1217,10 +1248,10 @@ upll_rc_t VbrMoMgr::ValidateVbrValue(val_vbr *vbr_val,
         case UPLL_IDX_DESC_VBR:
           ret_val = ValidateDesc(vbr_val->vbr_description,
                                  kMinLenDescription, kMaxLenDescription);
-          break; 
+          break;
         case UPLL_IDX_HOST_ADDR_VBR:
           ret_val = ValidateIpv4Addr(vbr_val->host_addr.s_addr,
-              vbr_val->host_addr_prefixlen);  
+                                     vbr_val->host_addr_prefixlen);
           break;
         case UPLL_IDX_HOST_ADDR_PREFIXLEN_VBR:
           ret_val = ValidateNumericRange(
@@ -1229,7 +1260,7 @@ upll_rc_t VbrMoMgr::ValidateVbrValue(val_vbr *vbr_val,
           break;
       }
       if (!ret_val) {
-        return UPLL_RC_ERR_CFG_SYNTAX; 
+        return UPLL_RC_ERR_CFG_SYNTAX;
       }
     }
   }
@@ -1242,13 +1273,13 @@ upll_rc_t VbrMoMgr::ValidateVbrValue(val_vbr *vbr_val,
     switch (operation) {
       case UNC_OP_CREATE:
         {
-          switch(valid_index) {
+          switch (valid_index) {
             case UPLL_IDX_CONTROLLER_ID_VBR:
             case UPLL_IDX_DOMAIN_ID_VBR:
               if ((flag == UNC_VF_INVALID || flag == UNC_VF_VALID_NO_VALUE)) {
                 UPLL_LOG_DEBUG("controller_id or domain_id flag is invalid"
                                " or valid_no_value");
-                return UPLL_RC_ERR_CFG_SYNTAX; 
+                return UPLL_RC_ERR_CFG_SYNTAX;
               }
               break;
             case UPLL_IDX_DESC_VBR:
@@ -1257,39 +1288,42 @@ upll_rc_t VbrMoMgr::ValidateVbrValue(val_vbr *vbr_val,
               if (vbr_val->valid[UPLL_IDX_HOST_ADDR_VBR] !=
                   vbr_val->valid[UPLL_IDX_HOST_ADDR_PREFIXLEN_VBR]) {
                 UPLL_LOG_DEBUG("Host address and prefix length"
-                    "both do not have same valid flags: %d, %d",
-                    vbr_val->valid[UPLL_IDX_HOST_ADDR_VBR],
-                    vbr_val->valid[UPLL_IDX_HOST_ADDR_PREFIXLEN_VBR]);
-                return UPLL_RC_ERR_CFG_SYNTAX; 
+                               "both do not have same valid flags: %d, %d",
+                               vbr_val->valid[UPLL_IDX_HOST_ADDR_VBR],
+                               vbr_val->
+                               valid[UPLL_IDX_HOST_ADDR_PREFIXLEN_VBR]);
+                return UPLL_RC_ERR_CFG_SYNTAX;
               }
               break;
             case UPLL_IDX_HOST_ADDR_PREFIXLEN_VBR:
-              if ((flag == UNC_VF_INVALID) || (flag == UNC_VF_VALID_NO_VALUE)) {
+              if ((flag == UNC_VF_INVALID) || (flag ==
+                                               UNC_VF_VALID_NO_VALUE)) {
                 vbr_val->host_addr_prefixlen = 0;
               }
               break;
             default:
               break;
           }
-        } 
+        }
         break;
       case UNC_OP_UPDATE:
         {
-          switch(valid_index) {
+          switch (valid_index) {
             case UPLL_IDX_CONTROLLER_ID_VBR:
             case UPLL_IDX_DOMAIN_ID_VBR:
               if (flag == UNC_VF_VALID_NO_VALUE) {
-                UPLL_LOG_DEBUG("controller_id or domain_id flag is valid_no_value");
+                UPLL_LOG_DEBUG("controller_id or domain_id flag"
+                               "is valid_no_value");
                 return UPLL_RC_ERR_CFG_SYNTAX;
               }
-              break; 
+              break;
             case UPLL_IDX_DESC_VBR:
             case UPLL_IDX_HOST_ADDR_VBR:
             case UPLL_IDX_HOST_ADDR_PREFIXLEN_VBR:
             default:
               break;
           }
-        } 
+        }
         break;
     }
   }
@@ -1299,10 +1333,10 @@ upll_rc_t VbrMoMgr::ValidateVbrValue(val_vbr *vbr_val,
        valid_index < sizeof(vbr_val->valid) / sizeof(vbr_val->valid[0]);
        valid_index++) {
     uint8_t flag = vbr_val->valid[valid_index];
-    if (flag != UNC_VF_INVALID && flag != UNC_VF_VALID_NO_VALUE)  
+    if (flag != UNC_VF_INVALID && flag != UNC_VF_VALID_NO_VALUE)
       continue;
-       
-    switch(valid_index) {
+
+    switch (valid_index) {
       case UPLL_IDX_CONTROLLER_ID_VBR:
         StringReset(vbr_val->controller_id);
         break;
@@ -1313,7 +1347,7 @@ upll_rc_t VbrMoMgr::ValidateVbrValue(val_vbr *vbr_val,
         StringReset(vbr_val->vbr_description);
         break;
       case UPLL_IDX_HOST_ADDR_VBR:
-        vbr_val->host_addr.s_addr = 0; 
+        vbr_val->host_addr.s_addr = 0;
         break;
       case UPLL_IDX_HOST_ADDR_PREFIXLEN_VBR:
         vbr_val->host_addr_prefixlen = 0;
@@ -1333,8 +1367,8 @@ upll_rc_t VbrMoMgr::ValidateVbrPingValue(val_ping *ping_val) {
     if ((!bc_check(ping_val->target_addr))
         || (!mc_check(ping_val->target_addr))) {
       UPLL_LOG_DEBUG("Invalid target address received."
-                    "Received Target addr - %d",
-                    ping_val->target_addr);
+                     "Received Target addr - %d",
+                     ping_val->target_addr);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else {
@@ -1344,8 +1378,8 @@ upll_rc_t VbrMoMgr::ValidateVbrPingValue(val_ping *ping_val) {
   if (ping_val->valid[UPLL_IDX_SRC_ADDR_PING] == UNC_VF_VALID) {
     if ((!bc_check(ping_val->src_addr)) || (!mc_check(ping_val->src_addr))) {
       UPLL_LOG_DEBUG("Invalid Source address received."
-                    "Received Source addr - %d",
-                    ping_val->src_addr);
+                     "Received Source addr - %d",
+                     ping_val->src_addr);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   }
@@ -1353,8 +1387,8 @@ upll_rc_t VbrMoMgr::ValidateVbrPingValue(val_ping *ping_val) {
     if (!ValidateNumericRange(ping_val->dfbit, (uint8_t) UPLL_DF_BIT_DISABLE,
                               (uint8_t) UPLL_DF_BIT_ENABLE, true, true)) {
       UPLL_LOG_DEBUG("dfbit syntax check failed."
-                    "received dfbit - %d",
-                    ping_val->dfbit);
+                     "received dfbit - %d",
+                     ping_val->dfbit);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if (ping_val->valid[UPLL_IDX_DF_BIT_PING] == UNC_VF_VALID_NO_VALUE) {
@@ -1365,19 +1399,20 @@ upll_rc_t VbrMoMgr::ValidateVbrPingValue(val_ping *ping_val) {
                               (uint16_t) kMinPingPacketLen,
                               (uint16_t) kMaxPingPacketLen, true, true)) {
       UPLL_LOG_DEBUG("packet_size syntax check failed."
-                    "received packet_size - %d",
-                    ping_val->packet_size);
+                     "received packet_size - %d",
+                     ping_val->packet_size);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
-  } else if (ping_val->valid[UPLL_IDX_PACKET_SIZE_PING] == UNC_VF_VALID_NO_VALUE) {
+  } else if (ping_val->valid[UPLL_IDX_PACKET_SIZE_PING] ==
+             UNC_VF_VALID_NO_VALUE) {
     ping_val->packet_size = 0;
   }
   if (ping_val->valid[UPLL_IDX_COUNT_PING] == UNC_VF_VALID) {
     if (!ValidateNumericRange(ping_val->count, (uint32_t) kMinPingCount,
                               (uint32_t) kMaxPingCount, true, true)) {
       UPLL_LOG_DEBUG("count syntax check failed."
-                    "received count - %d",
-                    ping_val->count);
+                     "received count - %d",
+                     ping_val->count);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if (ping_val->valid[UPLL_IDX_COUNT_PING] == UNC_VF_VALID_NO_VALUE) {
@@ -1387,19 +1422,20 @@ upll_rc_t VbrMoMgr::ValidateVbrPingValue(val_ping *ping_val) {
     if (!ValidateNumericRange(ping_val->interval, (uint8_t) kMinPingInterval,
                               (uint8_t) kMaxPingInterval, true, true)) {
       UPLL_LOG_DEBUG("Interval syntax check failed."
-                    "received interval - %d",
-                    ping_val->interval);
+                     "received interval - %d",
+                     ping_val->interval);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
-  } else if (ping_val->valid[UPLL_IDX_INTERVAL_PING] == UNC_VF_VALID_NO_VALUE) {
+  } else if (ping_val->valid[UPLL_IDX_INTERVAL_PING] ==
+             UNC_VF_VALID_NO_VALUE) {
     ping_val->interval = 0;
   }
   if (ping_val->valid[UPLL_IDX_TIMEOUT_PING] == UNC_VF_VALID) {
     if (!ValidateNumericRange(ping_val->timeout, (uint8_t) kMinPingTimeout,
                               (uint8_t) kMaxPingTimeout, true, true)) {
       UPLL_LOG_DEBUG("Timeout syntax check failed."
-                    "received timeout - %d",
-                    ping_val->timeout);
+                     "received timeout - %d",
+                     ping_val->timeout);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if (ping_val->valid[UPLL_IDX_TIMEOUT_PING] == UNC_VF_VALID_NO_VALUE) {
@@ -1418,8 +1454,8 @@ upll_rc_t VbrMoMgr::ValidateVbrRenameValue(val_rename_vbr *vbr_rename) {
                           kMaxLenVnodeName);
     if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Rename syntax check failed."
-                    "Received new_name - %s",
-                    vbr_rename->new_name);
+                     "Received new_name - %s",
+                     vbr_rename->new_name);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   }
@@ -1436,7 +1472,7 @@ upll_rc_t VbrMoMgr::ValidateMessage(IpcReqRespHeader *req,
   }
   if (ikey->get_st_num() != IpctSt::kIpcStKeyVbr) {
     UPLL_LOG_DEBUG("Invalid key structure received. received struct - %d",
-                  (ikey->get_st_num()));
+                   (ikey->get_st_num()));
     return UPLL_RC_ERR_BAD_REQUEST;
   }
   unc_key_type_t Ktype = ikey->get_key_type();
@@ -1456,63 +1492,64 @@ upll_rc_t VbrMoMgr::ValidateMessage(IpcReqRespHeader *req,
     return UPLL_RC_ERR_CFG_SYNTAX;
   }
 
-  if ((operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) && 
+  if ((operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) &&
       (dt_type == UPLL_DT_CANDIDATE || dt_type == UPLL_DT_IMPORT)) {
-      ConfigVal *cfg_val = ikey->get_cfg_val();
-      if (cfg_val == NULL) {
-        UPLL_LOG_DEBUG("ConfigVal struct is empty");
-        return UPLL_RC_ERR_BAD_REQUEST;
-      }
-      if (cfg_val->get_st_num() != IpctSt::kIpcStValVbr) {
-        UPLL_LOG_DEBUG(
-            "Invalid val structure received.received struct - %d",
-            cfg_val->get_st_num());
-        return UPLL_RC_ERR_BAD_REQUEST;
-      }
-      val_vbr *vbr_val =
-          reinterpret_cast<val_vbr *>(ikey->get_cfg_val()->get_val());
-      if (vbr_val == NULL) {
-        UPLL_LOG_DEBUG("val struct is mandatory for create and update op");
-        return UPLL_RC_ERR_BAD_REQUEST;
-      }
-      ret_val = ValidateVbrValue(vbr_val, operation);
-      if (ret_val != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("syntax check failed for val_vbr structure");
-        return UPLL_RC_ERR_CFG_SYNTAX;
-      }
-      return UPLL_RC_SUCCESS;
+    ConfigVal *cfg_val = ikey->get_cfg_val();
+    if (cfg_val == NULL) {
+      UPLL_LOG_DEBUG("ConfigVal struct is empty");
+      return UPLL_RC_ERR_BAD_REQUEST;
+    }
+    if (cfg_val->get_st_num() != IpctSt::kIpcStValVbr) {
+      UPLL_LOG_DEBUG(
+          "Invalid val structure received.received struct - %d",
+          cfg_val->get_st_num());
+      return UPLL_RC_ERR_BAD_REQUEST;
+    }
+    val_vbr *vbr_val =
+        reinterpret_cast<val_vbr *>(ikey->get_cfg_val()->get_val());
+    if (vbr_val == NULL) {
+      UPLL_LOG_DEBUG("val struct is mandatory for create and update op");
+      return UPLL_RC_ERR_BAD_REQUEST;
+    }
+    ret_val = ValidateVbrValue(vbr_val, operation);
+    if (ret_val != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("syntax check failed for val_vbr structure");
+      return UPLL_RC_ERR_CFG_SYNTAX;
+    }
+    return UPLL_RC_SUCCESS;
   } else if ((operation == UNC_OP_RENAME) && (dt_type == UPLL_DT_IMPORT)) {
-      if (option1 != UNC_OPT1_NORMAL) {
-        UPLL_LOG_DEBUG("Error option1 is not NORMAL");
-        return UPLL_RC_ERR_INVALID_OPTION1;
-      }
-      if (option2 != UNC_OPT2_NONE) {
-        UPLL_LOG_DEBUG("Error option2 is not NONE");
-        return UPLL_RC_ERR_INVALID_OPTION2;
-      }
-      ConfigVal *cfg_val = ikey->get_cfg_val();
-      if (!cfg_val) return UPLL_RC_ERR_CFG_SYNTAX;
-      if (cfg_val->get_st_num() != IpctSt::kIpcStValRenameVbr) {
-        UPLL_LOG_DEBUG(
-            "Invalid val_rename structure received.received struct - %d",
-            cfg_val->get_st_num());
-        return UPLL_RC_ERR_BAD_REQUEST;
-      }
-      val_rename_vbr *vbr_rename =
-          reinterpret_cast<val_rename_vbr *>(cfg_val->get_val());
-      if (vbr_rename == NULL) {
-        UPLL_LOG_DEBUG(
+    if (option1 != UNC_OPT1_NORMAL) {
+      UPLL_LOG_DEBUG("Error option1 is not NORMAL");
+      return UPLL_RC_ERR_INVALID_OPTION1;
+    }
+    if (option2 != UNC_OPT2_NONE) {
+      UPLL_LOG_DEBUG("Error option2 is not NONE");
+      return UPLL_RC_ERR_INVALID_OPTION2;
+    }
+    ConfigVal *cfg_val = ikey->get_cfg_val();
+    if (!cfg_val) return UPLL_RC_ERR_CFG_SYNTAX;
+    if (cfg_val->get_st_num() != IpctSt::kIpcStValRenameVbr) {
+      UPLL_LOG_DEBUG(
+          "Invalid val_rename structure received.received struct - %d",
+          cfg_val->get_st_num());
+      return UPLL_RC_ERR_BAD_REQUEST;
+    }
+    val_rename_vbr *vbr_rename =
+        reinterpret_cast<val_rename_vbr *>(cfg_val->get_val());
+    if (vbr_rename == NULL) {
+      UPLL_LOG_DEBUG(
           "syntax check for val_rename_vbr struct is Mandatory for Rename op");
-        return UPLL_RC_ERR_BAD_REQUEST;
-      }
-      ret_val = ValidateVbrRenameValue(vbr_rename);
-      if (ret_val != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("syntax check failed for val_rename_vbr structure");
-        return UPLL_RC_ERR_CFG_SYNTAX;
-      }
-      return UPLL_RC_SUCCESS;
+      return UPLL_RC_ERR_BAD_REQUEST;
+    }
+    ret_val = ValidateVbrRenameValue(vbr_rename);
+    if (ret_val != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("syntax check failed for val_rename_vbr structure");
+      return UPLL_RC_ERR_CFG_SYNTAX;
+    }
+    return UPLL_RC_SUCCESS;
   } else if ((operation == UNC_OP_READ || operation == UNC_OP_READ_SIBLING
-        || operation == UNC_OP_READ_SIBLING_BEGIN) && (dt_type == UPLL_DT_IMPORT)) { 
+              || operation == UNC_OP_READ_SIBLING_BEGIN) &&
+             (dt_type == UPLL_DT_IMPORT)) {
     if (option1 != UNC_OPT1_NORMAL) {
       UPLL_LOG_DEBUG("Error option1 is not NORMAL");
       return UPLL_RC_ERR_INVALID_OPTION1;
@@ -1530,7 +1567,7 @@ upll_rc_t VbrMoMgr::ValidateMessage(IpcReqRespHeader *req,
       return UPLL_RC_ERR_BAD_REQUEST;
     }
     val_rename_vbr *vbr_rename =
-          reinterpret_cast<val_rename_vbr *>(cfg_val->get_val());
+        reinterpret_cast<val_rename_vbr *>(cfg_val->get_val());
     if (vbr_rename == NULL) {
       UPLL_LOG_DEBUG("syntax check for val_rename_vbr struct is optional");
       return UPLL_RC_SUCCESS;
@@ -1542,91 +1579,90 @@ upll_rc_t VbrMoMgr::ValidateMessage(IpcReqRespHeader *req,
     }
     return UPLL_RC_SUCCESS;
   } else if ((operation == UNC_OP_READ || operation == UNC_OP_READ_SIBLING
-             || operation == UNC_OP_READ_SIBLING_BEGIN) &&
-         (dt_type == UPLL_DT_CANDIDATE || dt_type == UPLL_DT_RUNNING ||
-         dt_type == UPLL_DT_STARTUP)) {
-      if (option1 != UNC_OPT1_NORMAL) {
-        UPLL_LOG_DEBUG("Error option1 is not NORMAL");
-        return UPLL_RC_ERR_INVALID_OPTION1;
-      }
-      if (option2 != UNC_OPT2_NONE) {
-        UPLL_LOG_DEBUG("Error option2 is not NONE");
-        return UPLL_RC_ERR_INVALID_OPTION2;
-      }
-      ConfigVal *cfg_val = ikey->get_cfg_val();
-      if (!cfg_val) return UPLL_RC_SUCCESS;
-      if (cfg_val->get_st_num() != IpctSt::kIpcStValVbr) {
-        UPLL_LOG_DEBUG("value structure matching is invalid. st.num - %d",
-                      cfg_val->get_st_num());
-        return UPLL_RC_ERR_BAD_REQUEST;
-      }
-      val_vbr *vbr_val =
-          reinterpret_cast<val_vbr *>(ikey->get_cfg_val()->get_val());
-      if (vbr_val == NULL) {
-        UPLL_LOG_DEBUG("syntax check for val vbr struct is an optional");
-        return UPLL_RC_SUCCESS;
-      }
-      ret_val = ValidateVbrValue(vbr_val, operation);
-      if (ret_val != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("syntax check failure for val vbr structure");
-        return UPLL_RC_ERR_CFG_SYNTAX;
-      }
+              || operation == UNC_OP_READ_SIBLING_BEGIN) &&
+             (dt_type == UPLL_DT_CANDIDATE || dt_type == UPLL_DT_RUNNING ||
+              dt_type == UPLL_DT_STARTUP)) {
+    if (option1 != UNC_OPT1_NORMAL) {
+      UPLL_LOG_DEBUG("Error option1 is not NORMAL");
+      return UPLL_RC_ERR_INVALID_OPTION1;
+    }
+    if (option2 != UNC_OPT2_NONE) {
+      UPLL_LOG_DEBUG("Error option2 is not NONE");
+      return UPLL_RC_ERR_INVALID_OPTION2;
+    }
+    ConfigVal *cfg_val = ikey->get_cfg_val();
+    if (!cfg_val) return UPLL_RC_SUCCESS;
+    if (cfg_val->get_st_num() != IpctSt::kIpcStValVbr) {
+      UPLL_LOG_DEBUG("value structure matching is invalid. st.num - %d",
+                     cfg_val->get_st_num());
+      return UPLL_RC_ERR_BAD_REQUEST;
+    }
+    val_vbr *vbr_val =
+        reinterpret_cast<val_vbr *>(ikey->get_cfg_val()->get_val());
+    if (vbr_val == NULL) {
+      UPLL_LOG_DEBUG("syntax check for val vbr struct is an optional");
       return UPLL_RC_SUCCESS;
-  } else if ((operation == UNC_OP_READ_SIBLING_COUNT) && 
-            (dt_type == UPLL_DT_CANDIDATE || dt_type == UPLL_DT_RUNNING ||
-             dt_type == UPLL_DT_STARTUP || dt_type == UPLL_DT_STATE)) {
-
-      if (option1 != UNC_OPT1_NORMAL) {
-        UPLL_LOG_DEBUG("Error option1 is not NORMAL");
-        return UPLL_RC_ERR_INVALID_OPTION1;
-      }
-      if (option2 != UNC_OPT2_NONE) {
-        UPLL_LOG_DEBUG("Error option2 is not NONE");
-        return UPLL_RC_ERR_INVALID_OPTION2;
-      }
-      ConfigVal *cfg_val = ikey->get_cfg_val();
-      if (!cfg_val) return UPLL_RC_SUCCESS;
-      if (cfg_val->get_st_num() != IpctSt::kIpcStValVbr) {
-        UPLL_LOG_DEBUG("value structure matching is invalid. st.num - %d",
-                      cfg_val->get_st_num());
-        return UPLL_RC_ERR_BAD_REQUEST;
-      }
-      val_vbr *vbr_val =
-          reinterpret_cast<val_vbr *>(ikey->get_cfg_val()->get_val());
-      if (vbr_val == NULL) {
-        UPLL_LOG_DEBUG("syntax check for val vbr struct is an optional");
-        return UPLL_RC_SUCCESS;
-      }
-      ret_val = ValidateVbrValue(vbr_val, operation);
-      if (ret_val != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("syntax check failure for val vbr structure");
-        return UPLL_RC_ERR_CFG_SYNTAX;
-      }
+    }
+    ret_val = ValidateVbrValue(vbr_val, operation);
+    if (ret_val != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("syntax check failure for val vbr structure");
+      return UPLL_RC_ERR_CFG_SYNTAX;
+    }
+    return UPLL_RC_SUCCESS;
+  } else if ((operation == UNC_OP_READ_SIBLING_COUNT) &&
+             (dt_type == UPLL_DT_CANDIDATE || dt_type == UPLL_DT_RUNNING ||
+              dt_type == UPLL_DT_STARTUP || dt_type == UPLL_DT_STATE)) {
+    if (option1 != UNC_OPT1_NORMAL) {
+      UPLL_LOG_DEBUG("Error option1 is not NORMAL");
+      return UPLL_RC_ERR_INVALID_OPTION1;
+    }
+    if (option2 != UNC_OPT2_NONE) {
+      UPLL_LOG_DEBUG("Error option2 is not NONE");
+      return UPLL_RC_ERR_INVALID_OPTION2;
+    }
+    ConfigVal *cfg_val = ikey->get_cfg_val();
+    if (!cfg_val) return UPLL_RC_SUCCESS;
+    if (cfg_val->get_st_num() != IpctSt::kIpcStValVbr) {
+      UPLL_LOG_DEBUG("value structure matching is invalid. st.num - %d",
+                     cfg_val->get_st_num());
+      return UPLL_RC_ERR_BAD_REQUEST;
+    }
+    val_vbr *vbr_val =
+        reinterpret_cast<val_vbr *>(ikey->get_cfg_val()->get_val());
+    if (vbr_val == NULL) {
+      UPLL_LOG_DEBUG("syntax check for val vbr struct is an optional");
       return UPLL_RC_SUCCESS;
+    }
+    ret_val = ValidateVbrValue(vbr_val, operation);
+    if (ret_val != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("syntax check failure for val vbr structure");
+      return UPLL_RC_ERR_CFG_SYNTAX;
+    }
+    return UPLL_RC_SUCCESS;
   } else if ((operation == UNC_OP_READ || operation == UNC_OP_READ_SIBLING
-             || operation == UNC_OP_READ_SIBLING_BEGIN) &&
-            (dt_type == UPLL_DT_STATE)) {
-      if ((option1 != UNC_OPT1_NORMAL) &&
-          (option1 != UNC_OPT1_COUNT)) {
-        UPLL_LOG_DEBUG("Error option1 is Invalid");
-        return UPLL_RC_ERR_INVALID_OPTION1;
-      }
-      if ((option2 != UNC_OPT2_MAC_ENTRY) &&
-          (option2 != UNC_OPT2_MAC_ENTRY_STATIC) &&
-          (option2 != UNC_OPT2_MAC_ENTRY_DYNAMIC) &&
-          (option2 != UNC_OPT2_L2DOMAIN) &&
-          (option2 != UNC_OPT2_NONE)) {
-        UPLL_LOG_DEBUG("Error option2 is Invalid");
-        return UPLL_RC_ERR_INVALID_OPTION2;
-      }
-      UPLL_LOG_DEBUG("val struct validation is an optional");
-      return UPLL_RC_SUCCESS;
+              || operation == UNC_OP_READ_SIBLING_BEGIN) &&
+             (dt_type == UPLL_DT_STATE)) {
+    if ((option1 != UNC_OPT1_NORMAL) &&
+        (option1 != UNC_OPT1_COUNT)) {
+      UPLL_LOG_DEBUG("Error option1 is Invalid");
+      return UPLL_RC_ERR_INVALID_OPTION1;
+    }
+    if ((option2 != UNC_OPT2_MAC_ENTRY) &&
+        (option2 != UNC_OPT2_MAC_ENTRY_STATIC) &&
+        (option2 != UNC_OPT2_MAC_ENTRY_DYNAMIC) &&
+        (option2 != UNC_OPT2_L2DOMAIN) &&
+        (option2 != UNC_OPT2_NONE)) {
+      UPLL_LOG_DEBUG("Error option2 is Invalid");
+      return UPLL_RC_ERR_INVALID_OPTION2;
+    }
+    UPLL_LOG_DEBUG("val struct validation is an optional");
+    return UPLL_RC_SUCCESS;
   } else if ((operation == UNC_OP_DELETE || operation == UNC_OP_READ_NEXT
-      || operation == UNC_OP_READ_BULK) &&
-      (dt_type == UPLL_DT_CANDIDATE || dt_type == UPLL_DT_RUNNING
-        || dt_type == UPLL_DT_IMPORT || dt_type == UPLL_DT_STARTUP)) {
-      UPLL_LOG_DEBUG("Value structure is none for operation type:%d", operation);
-      return UPLL_RC_SUCCESS;
+              || operation == UNC_OP_READ_BULK) &&
+             (dt_type == UPLL_DT_CANDIDATE || dt_type == UPLL_DT_RUNNING
+              || dt_type == UPLL_DT_IMPORT || dt_type == UPLL_DT_STARTUP)) {
+    UPLL_LOG_DEBUG("Value structure is none for operation type:%d", operation);
+    return UPLL_RC_SUCCESS;
   } else if ((operation == UNC_OP_CONTROL) &&
              (dt_type == UPLL_DT_RUNNING || dt_type == UPLL_DT_STATE)) {
     if (option1 != UNC_OPT1_NORMAL) {
@@ -1657,16 +1693,17 @@ upll_rc_t VbrMoMgr::ValidateMessage(IpcReqRespHeader *req,
       }
       return UPLL_RC_SUCCESS;
 #if 0
-        // TODO(owner): this option is not enabled in key_type.h
-        // remove if 0 once its added
-        } else if (option2 == UNC_OPT2_CLEAR_ARPAGENT) {
-      UPLL_LOG_DEBUG("Value structure is none for operation type:%d", operation);
-        return UPLL_RC_SUCCESS;
+      // TODO(owner): this option is not enabled in key_type.h
+      // remove if 0 once its added
+    } else if (option2 == UNC_OPT2_CLEAR_ARPAGENT) {
+      UPLL_LOG_DEBUG("Value structure is none for operation type:%d",
+                     operation);
+      return UPLL_RC_SUCCESS;
 #endif
-      } else {
-        UPLL_LOG_DEBUG("Error option2 is not matching");
-        return UPLL_RC_ERR_INVALID_OPTION2;
-      }
+    } else {
+      UPLL_LOG_DEBUG("Error option2 is not matching");
+      return UPLL_RC_ERR_INVALID_OPTION2;
+    }
   }
   UPLL_LOG_DEBUG("Error Unsupported Datatype-(%d) or Operation-(%d)", dt_type,
                  operation);
@@ -1674,9 +1711,9 @@ upll_rc_t VbrMoMgr::ValidateMessage(IpcReqRespHeader *req,
 }
 
 upll_rc_t VbrMoMgr::ValVbrAttributeSupportCheck(
-                                       val_vbr_t *vbr_val,
-                                       const uint8_t *attrs,
-                                       unc_keytype_operation_t operation) {
+    val_vbr_t *vbr_val,
+    const uint8_t *attrs,
+    unc_keytype_operation_t operation) {
   UPLL_FUNC_TRACE;
 
   if (vbr_val != NULL) {
@@ -1707,7 +1744,7 @@ upll_rc_t VbrMoMgr::ValVbrAttributeSupportCheck(
         if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
           UPLL_LOG_DEBUG("host_addr attribute is not supported by ctrlr");
           UPLL_LOG_DEBUG("vbr_val->valid[UPLL_IDX_HOST_ADDR_VBR] is %d",
-                    vbr_val->valid[UPLL_IDX_HOST_ADDR_VBR]);  
+                         vbr_val->valid[UPLL_IDX_HOST_ADDR_VBR]);
           return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
         }
       }
@@ -1721,7 +1758,7 @@ upll_rc_t VbrMoMgr::ValVbrAttributeSupportCheck(
           UPLL_LOG_DEBUG(
               "host_addr_prefixlen attribute is not supported by ctrlr");
           return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
-        } 
+        }
       }
     }
   } else {
@@ -1736,14 +1773,14 @@ upll_rc_t VbrMoMgr::ValidateCapability(IpcReqRespHeader *req,
                                        const char *ctrlr_name) {
   UPLL_FUNC_TRACE;
   upll_rc_t ret_val = UPLL_RC_ERR_GENERIC;
-  if (!ikey || !req ) {
-      UPLL_LOG_DEBUG("ConfigKeyVal / IpcReqRespHeader is Null");
-      return ret_val;
+  if (!ikey || !req) {
+    UPLL_LOG_DEBUG("ConfigKeyVal / IpcReqRespHeader is Null");
+    return ret_val;
   }
 
   if (!ctrlr_name) {
     ctrlr_name = reinterpret_cast<char*>((reinterpret_cast<key_user_data_t *>
-                  (ikey->get_user_data()))->ctrlr_id);
+                                          (ikey->get_user_data()))->ctrlr_id);
     if (!ctrlr_name || !strlen(ctrlr_name)) {
       UPLL_LOG_DEBUG("Controller Name is NULL");
       return UPLL_RC_ERR_GENERIC;
@@ -1760,13 +1797,6 @@ upll_rc_t VbrMoMgr::ValidateCapability(IpcReqRespHeader *req,
       result_code = GetCreateCapability(ctrlr_name, ikey->get_key_type(),
                                         &max_instance_count, &max_attrs,
                                         &attrs);
-      if (result_code && (max_instance_count != 0) &&
-          (cur_instance_count >= max_instance_count)) {
-        UPLL_LOG_DEBUG("[%s:%d:%s Instance count %d exceeds %d", __FILE__,
-                      __LINE__, __FUNCTION__, cur_instance_count,
-                      max_instance_count);
-        return UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
-      }
       break;
 
     case UNC_OP_UPDATE:
@@ -1786,22 +1816,23 @@ upll_rc_t VbrMoMgr::ValidateCapability(IpcReqRespHeader *req,
   }
   if (!result_code) {
     UPLL_LOG_DEBUG("key_type - %d is not supported by controller - %s",
-                  ikey->get_key_type(), ctrlr_name);
+                   ikey->get_key_type(), ctrlr_name);
     return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
   }
-  
+
   val_vbr *vbr_val = NULL;
   if (ikey->get_cfg_val() && (ikey->get_cfg_val()->get_st_num() ==
-       IpctSt::kIpcStValVbr)) {
+                              IpctSt::kIpcStValVbr)) {
     vbr_val =
-          reinterpret_cast<val_vbr *>(ikey->get_cfg_val()->get_val());
+        reinterpret_cast<val_vbr *>(ikey->get_cfg_val()->get_val());
   }
   if (vbr_val) {
     if (max_attrs > 0) {
       ret_val = ValVbrAttributeSupportCheck(vbr_val, attrs, req->operation);
       return ret_val;
     } else {
-      UPLL_LOG_DEBUG("Attribute list is empty for operation %d", req->operation);
+      UPLL_LOG_DEBUG("Attribute list is empty for operation %d",
+                     req->operation);
       return UPLL_RC_ERR_GENERIC;
     }
   }
@@ -1819,14 +1850,15 @@ upll_rc_t VbrMoMgr::CreateVnodeConfigKey(ConfigKeyVal *ikey,
   key_vbr * temp_key_vbr = reinterpret_cast<key_vbr *>
       (ConfigKeyVal::Malloc(sizeof(key_vbr)));
   uuu::upll_strncpy(temp_key_vbr->vtn_key.vtn_name,
-         reinterpret_cast<key_vbr*>(ikey->get_key())->vtn_key.vtn_name,
-          (kMaxLenVtnName+1));
+                    reinterpret_cast<key_vbr*>
+                    (ikey->get_key())->vtn_key.vtn_name,
+                    (kMaxLenVtnName+1));
   uuu::upll_strncpy(temp_key_vbr->vbridge_name,
-         reinterpret_cast<key_vbr*>(ikey->get_key())->vbridge_name,
-         (kMaxLenVnodeName+1));
+                    reinterpret_cast<key_vbr*>(ikey->get_key())->vbridge_name,
+                    (kMaxLenVnodeName+1));
 
   okey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr
-                                          ,temp_key_vbr, NULL);
+                          temp_key_vbr, NULL);
   return UPLL_RC_SUCCESS;
 }
 
@@ -1851,33 +1883,34 @@ bool VbrMoMgr::CompareValidValue(void *&val1,
   val_vbr_t *val_vbr1 = reinterpret_cast<val_vbr_t *>(val1);
   val_vbr_t *val_vbr2 = reinterpret_cast<val_vbr_t *>(val2);
   if (!val_vbr2) {
-      UPLL_LOG_TRACE("Invalid param");
-      return UPLL_RC_ERR_GENERIC;
+    UPLL_LOG_TRACE("Invalid param");
+    return UPLL_RC_ERR_GENERIC;
   }
   for (unsigned int loop = 0;
-        loop < sizeof(val_vbr1->valid) / sizeof(uint8_t); ++loop) {
-      if (UNC_VF_INVALID == val_vbr1->valid[loop]
-          && UNC_VF_VALID == val_vbr2->valid[loop]) 
-        val_vbr1->valid[loop] = UNC_VF_VALID_NO_VALUE;
+       loop < sizeof(val_vbr1->valid) / sizeof(uint8_t); ++loop) {
+    if (UNC_VF_INVALID == val_vbr1->valid[loop]
+        && UNC_VF_VALID == val_vbr2->valid[loop])
+      val_vbr1->valid[loop] = UNC_VF_VALID_NO_VALUE;
   }
   /* Specify the configured ip address for
    * PFC to clear the configured IP address
    */
   if (!copy_to_running) {
     if (UNC_VF_VALID_NO_VALUE == val_vbr1->valid[UPLL_IDX_HOST_ADDR_VBR]) {
-       memcpy(&val_vbr1->host_addr, &val_vbr2->host_addr,
-                sizeof(val_vbr2->host_addr));
+      memcpy(&val_vbr1->host_addr, &val_vbr2->host_addr,
+             sizeof(val_vbr2->host_addr));
     }
-    if (UNC_VF_VALID_NO_VALUE == val_vbr1->valid[UPLL_IDX_HOST_ADDR_PREFIXLEN_VBR]) {
+    if (UNC_VF_VALID_NO_VALUE == val_vbr1->
+        valid[UPLL_IDX_HOST_ADDR_PREFIXLEN_VBR]) {
       val_vbr1->host_addr_prefixlen = val_vbr2->host_addr_prefixlen;
     }
   }
   if (UNC_VF_INVALID != val_vbr1->valid[UPLL_IDX_DESC_VBR]) {
-    if (!copy_to_running || 
+    if (!copy_to_running ||
         ((UNC_VF_VALID == val_vbr1->valid[UPLL_IDX_DESC_VBR]) &&
-        !strcmp(reinterpret_cast<char*>(val_vbr1->vbr_description),
-                  reinterpret_cast<char*>(val_vbr2->vbr_description))))
-        val_vbr1->valid[UPLL_IDX_DESC_VBR] = UNC_VF_INVALID;
+         !strcmp(reinterpret_cast<char*>(val_vbr1->vbr_description),
+                 reinterpret_cast<char*>(val_vbr2->vbr_description))))
+      val_vbr1->valid[UPLL_IDX_DESC_VBR] = UNC_VF_INVALID;
   }
   if (UNC_VF_VALID == val_vbr1->valid[UPLL_IDX_CONTROLLER_ID_VBR]
       && UNC_VF_VALID == val_vbr2->valid[UPLL_IDX_CONTROLLER_ID_VBR]) {
@@ -1906,9 +1939,9 @@ bool VbrMoMgr::CompareValidValue(void *&val1,
   if (!copy_to_running)
     val_vbr1->valid[UPLL_IDX_DESC_VBR] = UNC_VF_INVALID;
   for (unsigned int loop = 0;
-      loop < sizeof(val_vbr1->valid) / sizeof(uint8_t); ++loop) {
+       loop < sizeof(val_vbr1->valid) / sizeof(uint8_t); ++loop) {
     if ((UNC_VF_VALID == (uint8_t) val_vbr1->valid[loop]) ||
-       (UNC_VF_VALID_NO_VALUE == (uint8_t) val_vbr1->valid[loop])) {
+        (UNC_VF_VALID_NO_VALUE == (uint8_t) val_vbr1->valid[loop])) {
       invalid_attr = false;
       break;
     }
@@ -1922,19 +1955,21 @@ upll_rc_t VbrMoMgr::IsReferenced(ConfigKeyVal *ikey,
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager*>
-                                                (GetMoManager(UNC_KT_VBR_IF)));
+                                                 (GetMoManager
+                                                  (UNC_KT_VBR_IF)));
   result_code = mgr->IsReferenced(ikey, dt_type, dmi);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code (%d)",
-           result_code);
+                   result_code);
     return result_code;
   }
   UPLL_LOG_DEBUG("IsReferenced result code (%d)", result_code);
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t VbrMoMgr::IsHostAddrAndPrefixLenInUse(ConfigKeyVal *ckv, DalDmlIntf *dmi, 
-                                            IpcReqRespHeader *req) {
+upll_rc_t VbrMoMgr::IsHostAddrAndPrefixLenInUse(ConfigKeyVal *ckv,
+                                                DalDmlIntf *dmi,
+                                                IpcReqRespHeader *req) {
   UPLL_FUNC_TRACE;
   ConfigKeyVal *ckv_vbr = NULL;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
@@ -1956,16 +1991,16 @@ upll_rc_t VbrMoMgr::IsHostAddrAndPrefixLenInUse(ConfigKeyVal *ckv, DalDmlIntf *d
   }
 
   uuu::upll_strncpy(reinterpret_cast<key_vbr*>
-                   (ckv_vbr->get_key())->vtn_key.vtn_name,
+                    (ckv_vbr->get_key())->vtn_key.vtn_name,
                     vbrkey->vtn_key.vtn_name,
                     kMaxLenVtnName+1);
   val_vbr_t *vbrval = reinterpret_cast<val_vbr *>(GetVal(ckv));
 
-  if ((vbrval->valid[UPLL_IDX_HOST_ADDR_VBR] != UNC_VF_VALID) && 
-  (vbrval->valid[UPLL_IDX_HOST_ADDR_PREFIXLEN_VBR] != UNC_VF_VALID)) {
+  if ((vbrval->valid[UPLL_IDX_HOST_ADDR_VBR] != UNC_VF_VALID) &&
+      (vbrval->valid[UPLL_IDX_HOST_ADDR_PREFIXLEN_VBR] != UNC_VF_VALID)) {
     UPLL_LOG_DEBUG("Semantic check not required!");
     free(vbr_val);
-    delete (ckv_vbr); 
+    delete (ckv_vbr);
 
     return UPLL_RC_SUCCESS;
   }
@@ -1974,23 +2009,26 @@ upll_rc_t VbrMoMgr::IsHostAddrAndPrefixLenInUse(ConfigKeyVal *ckv, DalDmlIntf *d
   vbr_val->valid[UPLL_IDX_HOST_ADDR_VBR] = UNC_VF_VALID;
   ckv_vbr->AppendCfgVal(IpctSt::kIpcStValVbr, vbr_val);
 
-  UPLL_LOG_TRACE(" existence check %s",(ckv_vbr->ToStrAll()).c_str());
-  result_code = ReadConfigDB(ckv_vbr, dt_type, UNC_OP_READ, dbop, dmi, MAINTBL);
+  UPLL_LOG_TRACE(" existence check %s", (ckv_vbr->ToStrAll()).c_str());
+  result_code = ReadConfigDB(ckv_vbr,
+                             dt_type,
+                             UNC_OP_READ,
+                             dbop,
+                             dmi,
+                             MAINTBL);
   delete ckv_vbr;
-  
+
   if (UPLL_RC_SUCCESS != result_code &&
       UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
-      UPLL_LOG_DEBUG("ReadConfigDB Failed %d", result_code);
-      return result_code;
+    UPLL_LOG_DEBUG("ReadConfigDB Failed %d", result_code);
+    return result_code;
   }
   if (UPLL_RC_SUCCESS == result_code) {
-      UPLL_LOG_DEBUG("More than one vbridge configured with the same "
-                     "host address and prefix length!");
-      return UPLL_RC_ERR_CFG_SEMANTIC;
+    UPLL_LOG_DEBUG("More than one vbridge configured with the same "
+                   "host address and prefix length!");
+    return UPLL_RC_ERR_CFG_SEMANTIC;
   }
-  result_code = (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code)?
-                                   UPLL_RC_SUCCESS:result_code;
-  return result_code;
+  return UPLL_RC_SUCCESS;
 }
 
 }  // namespace kt_momgr
index d98d1f993a70b6d51609fb3f48a823160c47f136..236d8270e560dcabe4dd067845aa7e7c4b7c6601 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -21,416 +21,418 @@ namespace kt_momgr {
 
 
 class VbrMoMgr : public VnodeMoMgr {
 private:
-    static unc_key_type_t vbr_child[];
-    static BindInfo vbr_bind_info[];
-    static BindInfo vbr_rename_bind_info[];
-    static BindInfo key_vbr_maintbl_bind_info[];
-    static BindInfo key_vbr_renametbl_update_bind_info[];
-    /**
-     * @brief  Gets the valid array position of the variable in the value 
-     *         structure from the table in the specified configuration  
-     *
-     * @param[in]     val      pointer to the value structure 
-     * @param[in]     indx     database index for the variable
-     * @param[out]    valid    position of the variable in the valid array - 
-     *                          NULL if valid does not exist.
-     * @param[in]     dt_type  specifies the configuration
-     * @param[in]     tbl      specifies the table containing the given value 
-     *
-     **/
-    upll_rc_t GetValid(void *val,
-                       uint64_t indx,
-                       uint8_t *&valid,
-                       upll_keytype_datatype_t dt_type,
-                       MoMgrTables tbl) {
-      UPLL_FUNC_TRACE;
-      if (val == NULL) return UPLL_RC_ERR_GENERIC;
-      if (tbl == MAINTBL) {
-        switch (indx) {
-          case uudst::vbridge::kDbiOperStatus:
-            valid = &(reinterpret_cast<val_db_vbr_st *>(val))->
-                                vbr_val_st.valid[UPLL_IDX_OPER_STATUS_VBRS];
-            break;
-          case uudst::vbridge::kDbiDownCount:
-          case uudst::vbridge::kDbiFaultCount:
-            valid = NULL;
-            break;
-          case uudst::vbridge::kDbiCtrlrName:
-            valid = &(reinterpret_cast<val_vbr *>(val))->
-                                valid[UPLL_IDX_CONTROLLER_ID_VBR];
-            break;
-          case uudst::vbridge::kDbiDomainId:
-            valid = &(reinterpret_cast<val_vbr *>(val))->
-                                valid[UPLL_IDX_DOMAIN_ID_VBR];
-            break;
-          case uudst::vbridge::kDbiVbrDesc:
-            valid = &(reinterpret_cast<val_vbr *>(val))->
-                                valid[UPLL_IDX_DESC_VBR];
-            break;
-          case uudst::vbridge::kDbiHostAddr:
-            valid = &(reinterpret_cast<val_vbr *>(val))->
-                                valid[UPLL_IDX_HOST_ADDR_VBR];
-            break;
-          case uudst::vbridge::kDbiHostAddrMask:
-            valid = &(reinterpret_cast<val_vbr *>(val))->
-                                valid[UPLL_IDX_HOST_ADDR_PREFIXLEN_VBR];
-            break;
-          default:
-            return UPLL_RC_ERR_GENERIC;
-        }
-      } else if (tbl == RENAMETBL) {
-        switch(indx){
-          case uudst::vnode_rename::kDbiCtrlrVtnName:
-            valid = &(reinterpret_cast<val_rename_vnode*>
+ private:
+  static unc_key_type_t vbr_child[];
+  static BindInfo vbr_bind_info[];
+  static BindInfo vbr_rename_bind_info[];
+  static BindInfo key_vbr_maintbl_bind_info[];
+  static BindInfo key_vbr_renametbl_update_bind_info[];
+  /**
+   * @brief  Gets the valid array position of the variable in the value
+   *         structure from the table in the specified configuration
+   *
+   * @param[in]     val      pointer to the value structure
+   * @param[in]     indx     database index for the variable
+   * @param[out]    valid    position of the variable in the valid array -
+   *                          NULL if valid does not exist.
+   * @param[in]     dt_type  specifies the configuration
+   * @param[in]     tbl      specifies the table containing the given value
+   *
+   **/
+  upll_rc_t GetValid(void *val,
+                     uint64_t indx,
+                     uint8_t *&valid,
+                     upll_keytype_datatype_t dt_type,
+                     MoMgrTables tbl) {
+    UPLL_FUNC_TRACE;
+    if (val == NULL) return UPLL_RC_ERR_GENERIC;
+    if (tbl == MAINTBL) {
+      switch (indx) {
+        case uudst::vbridge::kDbiOperStatus:
+          valid = &(reinterpret_cast<val_db_vbr_st *>(val))->
+              vbr_val_st.valid[UPLL_IDX_OPER_STATUS_VBRS];
+          break;
+        case uudst::vbridge::kDbiDownCount:
+        case uudst::vbridge::kDbiFaultCount:
+          valid = NULL;
+          break;
+        case uudst::vbridge::kDbiCtrlrName:
+          valid = &(reinterpret_cast<val_vbr *>(val))->
+              valid[UPLL_IDX_CONTROLLER_ID_VBR];
+          break;
+        case uudst::vbridge::kDbiDomainId:
+          valid = &(reinterpret_cast<val_vbr *>(val))->
+              valid[UPLL_IDX_DOMAIN_ID_VBR];
+          break;
+        case uudst::vbridge::kDbiVbrDesc:
+          valid = &(reinterpret_cast<val_vbr *>(val))->
+              valid[UPLL_IDX_DESC_VBR];
+          break;
+        case uudst::vbridge::kDbiHostAddr:
+          valid = &(reinterpret_cast<val_vbr *>(val))->
+              valid[UPLL_IDX_HOST_ADDR_VBR];
+          break;
+        case uudst::vbridge::kDbiHostAddrMask:
+          valid = &(reinterpret_cast<val_vbr *>(val))->
+              valid[UPLL_IDX_HOST_ADDR_PREFIXLEN_VBR];
+          break;
+        default:
+          return UPLL_RC_ERR_GENERIC;
+      }
+    } else if (tbl == RENAMETBL) {
+      switch (indx) {
+        case uudst::vnode_rename::kDbiCtrlrVtnName:
+          valid = &(reinterpret_cast<val_rename_vnode*>
                     (val))->valid[UPLL_CTRLR_VTN_NAME_VALID];
-            break;
-          case  uudst::vnode_rename::kDbiCtrlrVnodeName:
-            valid = &(reinterpret_cast<val_rename_vnode*>
-                    (val))->valid[UPLL_CTRLR_VNODE_NAME_VALID]; 
-            break;
-          default:
-            break;
-        } 
-        return UPLL_RC_SUCCESS;
+          break;
+        case  uudst::vnode_rename::kDbiCtrlrVnodeName:
+          valid = &(reinterpret_cast<val_rename_vnode*>
+                    (val))->valid[UPLL_CTRLR_VNODE_NAME_VALID];
+          break;
+        default:
+          break;
       }
       return UPLL_RC_SUCCESS;
     }
+    return UPLL_RC_SUCCESS;
+  }
 
-    /**
-     * @brief  Filters the attributes which need not be sent to controller
-     *
-     * @param[in/out]  val1   first record value instance.
-     * @param[in]      val2   second record value instance.
-     * @param[in]      audit  Not used for VTN
-     * @param[in]      op     Operation to be performed
-     *
-     **/
-    bool FilterAttributes(void *&val1,
-                          void *val2,
-                          bool audit_status,
-                          unc_keytype_operation_t op);
+  /**
+   * @brief  Filters the attributes which need not be sent to controller
+   *
+   * @param[in/out]  val1   first record value instance.
+   * @param[in]      val2   second record value instance.
+   * @param[in]      audit  Not used for VTN
+   * @param[in]      op     Operation to be performed
+   *
+   **/
+  bool FilterAttributes(void *&val1,
+                        void *val2,
+                        bool audit_status,
+                        unc_keytype_operation_t op);
 
-    /**
-     * @brief  Compares the valid value between two database records.
-     *              if both the values are same, update the valid flag for 
-     *              corresponding attribute as invalid in the first record. 
-     *
-     * @param[in/out]  val1   first record value instance.
-     * @param[in]      val2   second record value instance.
-     * @param[in]      audit  if true, CompareValidValue called from audit 
-     *                             process..
-     *
-     **/
-    bool CompareValidValue(void *&val1,
-                           void *val2,
-                           bool audit);
+  /**
+   * @brief  Compares the valid value between two database records.
+   *        if both the values are same, update the valid flag for
+   *        corresponding attribute as invalid in the first record.
+   *
+   * @param[in/out]  val1   first record value instance.
+   * @param[in]      val2   second record value instance.
+   * @param[in]      audit  if true, CompareValidValue called from audit
+   *                       process..
+   *
+   **/
+  bool CompareValidValue(void *&val1,
+                         void *val2,
+                         bool audit);
 
-    upll_rc_t SwapKeyVal(ConfigKeyVal *ikey,
-                         ConfigKeyVal *&okey,
-                         DalDmlIntf *dmi,
-                         uint8_t *ctrlr,
-                         bool &no_rename);
-    upll_rc_t UpdateConfigStatus(ConfigKeyVal *req,
-                                 unc_keytype_operation_t op,
-                                 uint32_t driver_result,
-                                 ConfigKeyVal *upd_key,
-                                 DalDmlIntf *dmi,
-                                 ConfigKeyVal *ctrlr_key = NULL);
-    /**
-     * @brief  Update config status for commit result and vote result.
-     *
-     * @param[in/out]  ckv_running  ConfigKeyVal instance.
-     * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
-     * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
-     *
-     **/
-    upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
-                                      uuc::UpdateCtrlrPhase phase,
-                                      ConfigKeyVal *&ckv_running);
+  upll_rc_t SwapKeyVal(ConfigKeyVal *ikey,
+                       ConfigKeyVal *&okey,
+                       DalDmlIntf *dmi,
+                       uint8_t *ctrlr,
+                       bool &no_rename);
+  upll_rc_t UpdateConfigStatus(ConfigKeyVal *req,
+                               unc_keytype_operation_t op,
+                               uint32_t driver_result,
+                               ConfigKeyVal *upd_key,
+                               DalDmlIntf *dmi,
+                               ConfigKeyVal *ctrlr_key = NULL);
+  /**
+   * @brief  Update config status for commit result and vote result.
+   *
+   * @param[in/out]  ckv_running  ConfigKeyVal instance.
+   * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
+   * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
+   * @param[in]      dmi          Pointer to the DalDmlIntf(DB Interface)
+   *
+   **/
+  upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
+                                    uuc::UpdateCtrlrPhase phase,
+                                    ConfigKeyVal *&ckv_running,
+                                    DalDmlIntf *dmi);
 
-    /**
-     * @Brief  Checks if the specified key type(KT_VBR) and
-     *         associated attributes are supported on the given controller,
-     *         based on the valid flag
-     *
-     * @param[in]  req               This structure contains IpcReqRespHeader
-     *                               (first 8 fields of input request structure).
-     * @param[in]  ikey              ikey contains key and value structure.
-     * @param[in]  ctrlr_id          Controller id associated with ikey.
-     *  
-     * @retval  UPLL_RC_SUCCESS              Validation succeeded.
-     * @retval  UPLL_RC_ERR_GENERIC          Validation failure.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION1  Option1 is not valid.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION2  Option2 is not valid.
-     **/
-    upll_rc_t ValidateCapability(IpcReqRespHeader *req,
-                                 ConfigKeyVal *ikey,
-                                 const char *ctrlr_id);
+  /**
+   * @Brief  Checks if the specified key type(KT_VBR) and
+   *         associated attributes are supported on the given controller,
+   *         based on the valid flag
+   *
+   * @param[in]  req               This structure contains IpcReqRespHeader
+   *                               (first 8 fields of input request structure).
+   * @param[in]  ikey              ikey contains key and value structure.
+   * @param[in]  ctrlr_id          Controller id associated with ikey.
+   *
+   * @retval  UPLL_RC_SUCCESS              Validation succeeded.
+   * @retval  UPLL_RC_ERR_GENERIC          Validation failure.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION1  Option1 is not valid.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION2  Option2 is not valid.
+   **/
+  upll_rc_t ValidateCapability(IpcReqRespHeader *req,
+                               ConfigKeyVal *ikey,
+                               const char *ctrlr_id);
 
-    /**
-     * @Brief  Validates the syntax of the specified key and value structure
-     *         for KT_VBR keytype
-     *
-     * @param[in]  req    This structure contains IpcReqRespHeader
-     *                    (first 8 fields of input request structure).
-     * @param[in]  ikey   ikey contains key and value structure.
-     *
-     * @retval  UPLL_RC_SUCCESS               Successful.
-     * @retval  UPLL_RC_ERR_CFG_SYNTAX        Syntax error.
-     * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE  key_vbr is not available.
-     * @retval  UPLL_RC_ERR_GENERIC           Generic failure.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION1   option1 is not valid.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION2   option2 is not valid.
-     */
-    upll_rc_t ValidateMessage(IpcReqRespHeader *req,
-                              ConfigKeyVal *ikey);
-    /**
-     * @Brief  compares controller id and domain id before 
-     *         updating the value to DB.
-     *
-     * @param[in]  ikey  ikey contains key and value structure.
-     * @param[in]  okey  okey contains key and value structure.
-     *
-     * @retval  UPLL_RC_SUCCESS            Successful.
-     * @retval  UPLL_RC_ERR_CFG_SYNTAX     Syntax error.
-     */
-    upll_rc_t CtrlrIdAndDomainIdUpdationCheck(ConfigKeyVal *ikey,
-                                              ConfigKeyVal *okey);
+  /**
+   * @Brief  Validates the syntax of the specified key and value structure
+   *         for KT_VBR keytype
+   *
+   * @param[in]  req    This structure contains IpcReqRespHeader
+   *                    (first 8 fields of input request structure).
+   * @param[in]  ikey   ikey contains key and value structure.
+   *
+   * @retval  UPLL_RC_SUCCESS               Successful.
+   * @retval  UPLL_RC_ERR_CFG_SYNTAX        Syntax error.
+   * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE  key_vbr is not available.
+   * @retval  UPLL_RC_ERR_GENERIC           Generic failure.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION1   option1 is not valid.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION2   option2 is not valid.
+   */
+  upll_rc_t ValidateMessage(IpcReqRespHeader *req,
+                            ConfigKeyVal *ikey);
+  /**
+   * @Brief  compares controller id and domain id before
+   *         updating the value to DB.
+   *
+   * @param[in]  ikey  ikey contains key and value structure.
+   * @param[in]  okey  okey contains key and value structure.
+   *
+   * @retval  UPLL_RC_SUCCESS            Successful.
+   * @retval  UPLL_RC_ERR_CFG_SYNTAX     Syntax error.
+   */
+  upll_rc_t CtrlrIdAndDomainIdUpdationCheck(ConfigKeyVal *ikey,
+                                            ConfigKeyVal *okey);
 
-    /**
-     * @Brief  Checks if the specified key type and
-     *         associated attributes are supported on the given controller,
-     *         based on the valid flag.
-     *
-     * @param[in]  vbr_val         KT_VBRIDGE value structure.
-     * @param[in]  attrs           Pointer to controller attribute.
-     * @param[in]  operation       Operation name.
-     *
-     * @retval  UPLL_RC_SUCCESS                     validation succeeded.
-     * @retval  UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT  Instance count limit is exceedes.
-     * @retval  UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR  Attribute NOT_SUPPORTED.
-     * @retval  UPLL_RC_ERR_GENERIC                 Generic failure.
-     */
-    upll_rc_t ValVbrAttributeSupportCheck(val_vbr_t *vbr_val,
-                                          const uint8_t *attrs,
-                                          unc_keytype_operation_t operation);
-    /**
-     * @Brief  Validates the syntax for KT_VBR keytype Rename structure.
-     *
-     * @param[in]  val_rename_vbr  KT_VBR Rename structure.
-     *
-     * @retval  UPLL_RC_SUCCESS         validation succeeded.
-     * @retval  UPLL_RC_ERR_CFG_SYNTAX  validation failed.
-     *
-     */
-    upll_rc_t ValidateVbrRenameValue(val_rename_vbr *vbr_rename);
+  /**
+   * @Brief  Checks if the specified key type and
+   *         associated attributes are supported on the given controller,
+   *         based on the valid flag.
+   *
+   * @param[in]  vbr_val         KT_VBRIDGE value structure.
+   * @param[in]  attrs           Pointer to controller attribute.
+   * @param[in]  operation       Operation name.
+   *
+   * @retval  UPLL_RC_SUCCESS                     validation succeeded.
+   * @retval  UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT  Instance count limit is exceedes.
+   * @retval  UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR  Attribute NOT_SUPPORTED.
+   * @retval  UPLL_RC_ERR_GENERIC                 Generic failure.
+   */
+  upll_rc_t ValVbrAttributeSupportCheck(val_vbr_t *vbr_val,
+                                        const uint8_t *attrs,
+                                        unc_keytype_operation_t operation);
 
-    /**
-     * @Brief  Validates the syntax for KT_VBR keytype val_ping structure.
-     *
-     * @param[in]  val_ping  KT_VBR val_ping structure.
-     *
-     * @retval  UPLL_RC_SUCCESS          validation succeeded.
-     * @retval  UPLL_RC_ERR_CFG_SYNTAX   validation failed.
-     */
-    upll_rc_t ValidateVbrPingValue(val_ping *ping_val);
+  /**
+   * @Brief  Validates the syntax for KT_VBR keytype Rename structure.
+   *
+   * @param[in]  val_rename_vbr  KT_VBR Rename structure.
+   *
+   * @retval  UPLL_RC_SUCCESS         validation succeeded.
+   * @retval  UPLL_RC_ERR_CFG_SYNTAX  validation failed.
+   *
+   */
+  upll_rc_t ValidateVbrRenameValue(val_rename_vbr *vbr_rename);
 
-    /*
-     * @Brief  Validates the syntax for KT_VBR keytype value structure.
-     *
-     * @param[in]  val_vbr  KT_VBR value structure.
-     * @param[in]  operation  Operation type.
-     *
-     * @retval  UPLL_RC_SUCCESS               validation succeeded.
-     * @retval  UPLL_RC_ERR_CFG_SYNTAX        validation failed.
-     */
-    upll_rc_t ValidateVbrValue(val_vbr_t *vbr_val,
-                               uint32_t operation);
+  /**
+   * @Brief  Validates the syntax for KT_VBR keytype val_ping structure.
+   *
+   * @param[in]  val_ping  KT_VBR val_ping structure.
+   *
+   * @retval  UPLL_RC_SUCCESS          validation succeeded.
+   * @retval  UPLL_RC_ERR_CFG_SYNTAX   validation failed.
+   */
+  upll_rc_t ValidateVbrPingValue(val_ping *ping_val);
 
-    /**
-     * @brief  Duplicates the input configkeyval including the key and val.  
-     * based on the tbl specified.
-     *
-     * @param[in]  okey   Output Configkeyval - allocated within the function
-     * @param[in]  req    Input ConfigKeyVal to be duplicated.
-     * @param[in]  tbl    specifies if the val structure belongs to the main 
-     * table/ controller table or rename table.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey,
-                              ConfigKeyVal *&req,
-                              MoMgrTables tbl = MAINTBL);
-    /**
-     * @brief  Allocates for the specified val in the given configuration in the     * specified table.   
-     *
-     * @param[in]  ck_val   Reference pointer to configval structure allocated.      * @param[in]  dt_type  specifies the configuration candidate/running/state 
-     * @param[in]  tbl      specifies if the corresponding table is the  main 
-     *                      table / controller table or rename table.
-     *
-     * @retval     UPLL_RC_SUCCESS      Successfull completion.
-     * @retval     UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t AllocVal(ConfigVal *&ck_val,
-                       upll_keytype_datatype_t dt_type,
-                       MoMgrTables tbl = MAINTBL);
-    /**
-     * @brief      Method to get a configkeyval of the parent keytype 
-     *
-     * @param[in/out]  okey           pointer to parent ConfigKeyVal 
-     * @param[in]      ikey           pointer to the child configkeyval from 
-     * which the parent configkey val is obtained.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey,
-                                 ConfigKeyVal *parent_key);
-    upll_rc_t GetRenamedControllerKey(ConfigKeyVal *ikey,
-                                      upll_keytype_datatype_t dt_type,
-                                      DalDmlIntf *dmi,
-                                      controller_domain *ctrlr_dom);
-    upll_rc_t GetRenamedUncKey(ConfigKeyVal *ctrlr_key,
-                               upll_keytype_datatype_t dt_type,
-                               DalDmlIntf *dmi,
-                               uint8_t *ctrlr_id);
+  /*
+   * @Brief  Validates the syntax for KT_VBR keytype value structure.
+   *
+   * @param[in]  val_vbr  KT_VBR value structure.
+   * @param[in]  operation  Operation type.
+   *
+   * @retval  UPLL_RC_SUCCESS               validation succeeded.
+   * @retval  UPLL_RC_ERR_CFG_SYNTAX        validation failed.
+   */
+  upll_rc_t ValidateVbrValue(val_vbr_t *vbr_val,
+                             uint32_t operation);
 
-    /* Pure virtual from VnodeMoMgrImpl */
-    upll_rc_t GetVnodeName(ConfigKeyVal *ikey,
-                           uint8_t *&vtn_name,
-                           uint8_t *&vnode_name);
-    /* Rename */
-    upll_rc_t GetRenameInfo(ConfigKeyVal *ikey,
-                            ConfigKeyVal *okey,
-                            ConfigKeyVal *&rename_info,
-                            DalDmlIntf *dmi,
-                            const char *ctrlr_id,
-                            bool &renamed);
-    bool GetRenameKeyBindInfo(unc_key_type_t key_type,
-                              BindInfo *&binfo,
-                              int &nattr,
-                              MoMgrTables tbl);
-    upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey,
-                              ConfigKeyVal *ikey);
-  /* @brief     To convert the value structure read from DB to 
+  /**
+   * @brief  Duplicates the input configkeyval including the key and val.
+   * based on the tbl specified.
+   *
+   * @param[in]  okey   Output Configkeyval - allocated within the function
+   * @param[in]  req    Input ConfigKeyVal to be duplicated.
+   * @param[in]  tbl    specifies if the val structure belongs to the main
+   * table/ controller table or rename table.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey,
+                            ConfigKeyVal *&req,
+                            MoMgrTables tbl = MAINTBL);
+  /**
+   * @brief  Allocates for the specified val in the given configuration in the     * specified table.
+   *
+   * @param[in]  ck_val   Reference pointer to configval structure allocated.      * @param[in]  dt_type  specifies the configuration candidate/running/state
+   * @param[in]  tbl      specifies if the corresponding table is the  main
+   *                      table / controller table or rename table.
+   *
+   * @retval     UPLL_RC_SUCCESS      Successfull completion.
+   * @retval     UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t AllocVal(ConfigVal *&ck_val,
+                     upll_keytype_datatype_t dt_type,
+                     MoMgrTables tbl = MAINTBL);
+  /**
+   * @brief      Method to get a configkeyval of the parent keytype
+   *
+   * @param[in/out]  okey           pointer to parent ConfigKeyVal
+   * @param[in]      ikey           pointer to the child configkeyval from
+   * which the parent configkey val is obtained.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey,
+                               ConfigKeyVal *parent_key);
+  upll_rc_t GetRenamedControllerKey(ConfigKeyVal *ikey,
+                                    upll_keytype_datatype_t dt_type,
+                                    DalDmlIntf *dmi,
+                                    controller_domain *ctrlr_dom);
+  upll_rc_t GetRenamedUncKey(ConfigKeyVal *ctrlr_key,
+                             upll_keytype_datatype_t dt_type,
+                             DalDmlIntf *dmi,
+                             uint8_t *ctrlr_id);
+
+  /* Pure virtual from VnodeMoMgrImpl */
+  upll_rc_t GetVnodeName(ConfigKeyVal *ikey,
+                         uint8_t *&vtn_name,
+                         uint8_t *&vnode_name);
+  /* Rename */
+  upll_rc_t GetRenameInfo(ConfigKeyVal *ikey,
+                          ConfigKeyVal *okey,
+                          ConfigKeyVal *&rename_info,
+                          DalDmlIntf *dmi,
+                          const char *ctrlr_id,
+                          bool &renamed);
+  bool GetRenameKeyBindInfo(unc_key_type_t key_type,
+                            BindInfo *&binfo,
+                            int &nattr,
+                            MoMgrTables tbl);
+  upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey,
+                            ConfigKeyVal *ikey);
+
+  /* @brief     To convert the value structure read from DB to
    *            VTNService during READ operations
-   * @param[in/out] ikey      Pointer to the ConfigKeyVal Structure             
-   * 
+   * @param[in/out] ikey      Pointer to the ConfigKeyVal Structure
+   *
    * @retval  UPLL_RC_SUCCESS                    Completed successfully.
    * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
    *
    **/
   upll_rc_t AdaptValToVtnService(ConfigKeyVal *ikey);
 
 public:
-    VbrMoMgr();
-    virtual ~VbrMoMgr() {
-      for (int i = 0; i < ntable; i++)
-        if (table[i]) {
-          delete table[i];
-        }
-      delete[] table;
-    }
-    /**
-     * @brief      Method to check if individual portions of a key are valid
-     *
-     * @param[in/out]  ikey                 pointer to ConfigKeyVal referring to a UNC resource
-     * @param[in]      index                db index associated with the variable
-     *
-     * @retval         true                 input key is valid
-     * @retval         false                input key is invalid.
-     **/
-    bool IsValidKey(void *key,
-                    uint64_t index);
-    /* @brief         This method invoke when the VTN merge hapeening between
-     *                Running and DT import. This will checks the vnode name 
-     *                unique or not and semantic checks like IP Address, Mac 
-     *                Address and network host address. 
-     *              
-     * @param[in]     keytype       UNC KEY TYPE
-     * @param[in/out] ctrlr_id      Controller ID                    
-     * @param[in]     conflict_ckv  key and value structure 
-     * @param[in]     dal    Pointer to the DalDmlIntf(DB Interface)
-     * 
-     * @retval  UPLL_RC_SUCCESS                    Completed successfully.
-     * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
-     * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
-     * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
-     * @retval  UPLL_RC_ERR_MERGE_CONFLICT         Semantic check error.
-     * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist 
-     *
-     **/
+ public:
+  VbrMoMgr();
+  virtual ~VbrMoMgr() {
+    for (int i = 0; i < ntable; i++)
+      if (table[i]) {
+        delete table[i];
+      }
+    delete[] table;
+  }
+  /**
+   * @brief      Method to check if individual portions of a key are valid
+   *
+   * @param[in/out]  ikey                 pointer to ConfigKeyVal referring to a UNC resource
+   * @param[in]      index                db index associated with the variable
+   *
+   * @retval         true                 input key is valid
+   * @retval         false                input key is invalid.
+   **/
+  bool IsValidKey(void *key,
+                  uint64_t index);
+  /* @brief         This method invoke when the VTN merge hapeening between
+   *                Running and DT import. This will checks the vnode name
+   *                unique or not and semantic checks like IP Address, Mac
+   *                Address and network host address.
+   *
+   * @param[in]     keytype       UNC KEY TYPE
+   * @param[in/out] ctrlr_id      Controller ID
+   * @param[in]     conflict_ckv  key and value structure
+   * @param[in]     dal    Pointer to the DalDmlIntf(DB Interface)
+   *
+   * @retval  UPLL_RC_SUCCESS                    Completed successfully.
+   * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
+   * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
+   * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
+   * @retval  UPLL_RC_ERR_MERGE_CONFLICT         Semantic check error.
+   * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist
+   *
+   **/
 
-    upll_rc_t MergeValidate(unc_key_type_t keytype,
-                            const char *ctrlr_id,
-                            ConfigKeyVal *conflict_ckv,
-                            DalDmlIntf *dmi);
-    /*
-     * @Brief  Validates the syntax for KT_VBR Keytype key structure.
-     *
-     * @param[in]  key_vbr  KT_VBR key structure.
-     * @param[in]  operation operation type.
-     *
-     * @retval  UPLL_RC_SUCCESS         validation succeeded.
-     * @retval  UPLL_RC_ERR_CFG_SYNTAX  validation failed.
-     *
-     */
-    upll_rc_t ValidateVbrKey(key_vbr_t *vbr_key,
-                         unc_keytype_operation_t operation = UNC_OP_INVALID);
-    /**
-     * @brief     Method used in Delete opertaion. Its semantic checks
-     *            for the VBR key.
-     *
-     * @param[in]  ikey                        key and value structure.
-     * @param[in]  dt_type                     key  type.
-     * @param[in]  dmi                         Pointer to DalDmlIntf Class.
-     *
-     * @retval     UPLL_RC_SUCCESS             Successfull completion.
-     * @retval     UPLL_RC_ERR_GENERIC         Failure case.
-     * @retval     UPLL_RC_ERR_CFG_SEMANTIC    Failue dueto Semantic.
-     */
+  upll_rc_t MergeValidate(unc_key_type_t keytype,
+                          const char *ctrlr_id,
+                          ConfigKeyVal *conflict_ckv,
+                          DalDmlIntf *dmi);
+  /*
+   * @Brief  Validates the syntax for KT_VBR Keytype key structure.
+   *
+   * @param[in]  key_vbr  KT_VBR key structure.
+   * @param[in]  operation operation type.
+   *
+   * @retval  UPLL_RC_SUCCESS         validation succeeded.
+   * @retval  UPLL_RC_ERR_CFG_SYNTAX  validation failed.
+   *
+   */
+  upll_rc_t ValidateVbrKey(key_vbr_t *vbr_key,
+                           unc_keytype_operation_t operation = UNC_OP_INVALID);
+  /**
+   * @brief     Method used in Delete opertaion. Its semantic checks
+   *            for the VBR key.
+   *
+   * @param[in]  ikey                        key and value structure.
+   * @param[in]  dt_type                     key  type.
+   * @param[in]  dmi                         Pointer to DalDmlIntf Class.
+   *
+   * @retval     UPLL_RC_SUCCESS             Successfull completion.
+   * @retval     UPLL_RC_ERR_GENERIC         Failure case.
+   * @retval     UPLL_RC_ERR_CFG_SEMANTIC    Failue dueto Semantic.
+   */
 
-    upll_rc_t IsReferenced(ConfigKeyVal *ikey,
-                           upll_keytype_datatype_t dt_type,
-                           DalDmlIntf *dmi);
+  upll_rc_t IsReferenced(ConfigKeyVal *ikey,
+                         upll_keytype_datatype_t dt_type,
+                         DalDmlIntf *dmi);
 
-    /**
-     * @brief  create entry in Vnode Rename Table,
-     *         with the renamed VTN details fetched from VTN rename Table
-     *
-     *
-     * @param[in]  ikey       ConfigKeyVal pointer
-     * @param[in]  dt_type    specifies the database type
-     * @param[in]  ctrlr_id   pointer to the controller name
-     * @param[in]  dmi        DalDmlIntf pointer
-     *
-     *
-     * @retval UPLL_RC_SUCCESS      Successful
-     * @retval UPLL_RC_ERR_GENERIC  failed to update the VbrIf
-     */
-    upll_rc_t CreateVnodeConfigKey(ConfigKeyVal *ikey,
-                                   ConfigKeyVal *&okey);
-    /**
-     * @brief      Method to get a configkeyval of a specified keytype from an input configkeyval
-     *
-     * @param[in/out]  okey                 pointer to output ConfigKeyVal 
-     * @param[in]      parent_key           pointer to the configkeyval from 
-     * which the output configkey val is initialized.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     */
-    upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey,
-                                ConfigKeyVal *parent_key);
+  /**
+   * @brief  create entry in Vnode Rename Table,
+   *         with the renamed VTN details fetched from VTN rename Table
+   *
+   *
+   * @param[in]  ikey       ConfigKeyVal pointer
+   * @param[in]  dt_type    specifies the database type
+   * @param[in]  ctrlr_id   pointer to the controller name
+   * @param[in]  dmi        DalDmlIntf pointer
+   *
+   *
+   * @retval UPLL_RC_SUCCESS      Successful
+   * @retval UPLL_RC_ERR_GENERIC  failed to update the VbrIf
+   */
+  upll_rc_t CreateVnodeConfigKey(ConfigKeyVal *ikey,
+                                 ConfigKeyVal *&okey);
+  /**
+   * @brief      Method to get a configkeyval of a specified keytype from an input configkeyval
+   *
+   * @param[in/out]  okey                 pointer to output ConfigKeyVal
+   * @param[in]      parent_key           pointer to the configkeyval from
+   * which the output configkey val is initialized.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   */
+  upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey,
+                              ConfigKeyVal *parent_key);
 
-    upll_rc_t GetControllerDomainId(ConfigKeyVal *ikey,
-                                    controller_domain_t *ctrlr_dom);
-    upll_rc_t IsHostAddrAndPrefixLenInUse(ConfigKeyVal *ckv, DalDmlIntf *dmi, 
-                                            IpcReqRespHeader *req);
+  upll_rc_t GetControllerDomainId(ConfigKeyVal *ikey,
+                                  controller_domain_t *ctrlr_dom);
+  upll_rc_t IsHostAddrAndPrefixLenInUse(ConfigKeyVal *ckv, DalDmlIntf *dmi,
+                                        IpcReqRespHeader *req);
 };
 
 }  // namespace kt_momgr
index 19418fcd93bc2134fdb541dab605c73aa83fe21c..8fb91096a9de33309129db316ab3b86e6d734e08 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -85,9 +85,9 @@ VbrPolicingMapMoMgr::VbrPolicingMapMoMgr() : MoMgrImpl() {
   table = new Table *[ntable];
 
   table[MAINTBL] = new Table(uudst::kDbiVbrPolicingMapTbl,
-      UNC_KT_VBR_POLICINGMAP, vbr_policingmap_bind_info,
-      IpctSt::kIpcStKeyVbr, IpctSt::kIpcStValPolicingmap,
-      uudst::vbr_policingmap::kDbiVbrPolicingMapNumCols);
+                             UNC_KT_VBR_POLICINGMAP, vbr_policingmap_bind_info,
+                             IpctSt::kIpcStKeyVbr, IpctSt::kIpcStValPolicingmap,
+                             uudst::vbr_policingmap::kDbiVbrPolicingMapNumCols);
 
   /* For Rename Table*/
   table[CTRLRTBL] = NULL;
@@ -97,12 +97,12 @@ VbrPolicingMapMoMgr::VbrPolicingMapMoMgr() : MoMgrImpl() {
 
   nchild = 0;
   child = NULL;
-  cur_instance_count = 0;
 }
 
 upll_rc_t VbrPolicingMapMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
                                                  ConfigKeyVal *ikey,
-                                                 DalDmlIntf *dmi) {
+                                                 DalDmlIntf *dmi,
+                                                 bool restore_flag) {
   UPLL_FUNC_TRACE;
   if (NULL == ikey || NULL == req || NULL == dmi) {
     UPLL_LOG_DEBUG(" CreateCandidateMo Failed. Insufficient input parameters");
@@ -111,13 +111,15 @@ upll_rc_t VbrPolicingMapMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
 
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
-  // validate syntax and semantics
-  result_code = ValidateMessage(req, ikey);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("ValidateMessage Err (%d)", result_code);
-    return result_code;
+  if (!restore_flag) {
+    // validate syntax and semantics
+    result_code = ValidateMessage(req, ikey);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("ValidateMessage Err (%d)", result_code);
+      return result_code;
+    }
   }
-  
+
   result_code = ValidateAttribute(ikey, dmi, req);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("ValidateAttribute failed, Error - %d", result_code);
@@ -127,96 +129,81 @@ upll_rc_t VbrPolicingMapMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
   ConfigKeyVal *okey = NULL;
   result_code = GetControllerId(ikey, okey, req->datatype, dmi);
   if (UPLL_RC_SUCCESS != result_code) {
+    if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+      result_code = UPLL_RC_ERR_PARENT_DOES_NOT_EXIST;
+    }
     UPLL_LOG_DEBUG("GetControllerId failed %d", result_code);
     DELETE_IF_NOT_NULL(okey);
     return result_code;
   }
   DELETE_IF_NOT_NULL(okey);
-  
+
   uint8_t *ctrlr_id = NULL;
   GET_USER_DATA_CTRLR(ikey, ctrlr_id);
 
-
-  // Check VBR object existence in VbrPolicingMap CANDIDATE DB
-  // if record exists, return the error code
-  result_code = IsReferenced(ikey, req->datatype, dmi);
-  if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
-    UPLL_LOG_DEBUG("VBR Object exists in CANDIDATE DB (%d)",
-                   result_code);
-    return result_code;
-  } else if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-    UPLL_LOG_DEBUG("VBR Instance not Available");
-  } else if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("CreateCandidateMo Error Accesing CANDIDATE DB (%d)",
-                   result_code);
-    return result_code;
-  }
-#if 0
-  ConfigKeyVal *tmpckv = NULL;
-  result_code = DupConfigKeyVal(tmpckv, ikey, MAINTBL);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("GetChildConfigKey failed");
-    return result_code;
-  }
-#endif
   val_policingmap_t *val_pm = reinterpret_cast<val_policingmap_t *>
-    (GetVal(ikey));
+      (GetVal(ikey));
   if (UNC_VF_VALID == val_pm->valid[UPLL_IDX_POLICERNAME_PM]) {
     // Check Policingmap object exists in PolicingProfileTbl CANDIDATE DB
     // If record not exists, return error code
     result_code = IsPolicyProfileReferenced(ikey, req->datatype, dmi,
-                                          UNC_OP_READ);
+                                            UNC_OP_READ);
     if (UPLL_RC_SUCCESS != result_code) {
       if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
         UPLL_LOG_DEBUG("Profile Object (%d) not available in CANDIDATE DB",
-          result_code);
+                       result_code);
         return UPLL_RC_ERR_CFG_SEMANTIC;
       } else {
         UPLL_LOG_DEBUG("CreateCandidateMo Error Accesing CANDIDATEDB(%d)",
-            result_code);
+                       result_code);
         return result_code;
       }
     }
   }
-
-  // Check if Object exists in RUNNING DB and move it to CANDIDATE DB
-  if (req->datatype == UPLL_DT_CANDIDATE) {
-    result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dmi,
-                                 MAINTBL);
-    if ((result_code != UPLL_RC_ERR_INSTANCE_EXISTS) &&
-        (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE)) {
-      UPLL_LOG_DEBUG(" Is Exist check operation failed: err code(%d)",
-                     result_code);
-      return result_code;
-    }
-    if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
-      result_code = RestoreChildren(ikey, req->datatype, UPLL_DT_RUNNING, dmi);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("RestoreChildren Failed, err %d", result_code);
+  if (!restore_flag) {
+    if (UPLL_DT_CANDIDATE == req->datatype) {
+      result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dmi,
+                                   MAINTBL);
+      if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
+        UPLL_LOG_DEBUG("Key instance exist");
+        if ((ikey)->get_cfg_val()) {
+          UPLL_LOG_DEBUG("Read Key with Value struct");
+          DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
+            kOpInOutFlag | kOpInOutCtrlr | kOpInOutDomain };
+          result_code = ReadConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dbop,
+                                     dmi, MAINTBL);
+          if (UPLL_RC_SUCCESS != result_code &&
+              UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+            UPLL_LOG_DEBUG("ReadConfigDB Failed %d",  result_code);
+          }
+          if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code)  {
+            return UPLL_RC_ERR_CFG_SEMANTIC;
+          }
+        } else  {
+          result_code = UPLL_RC_SUCCESS;
+        }
+        if (UPLL_RC_SUCCESS == result_code) {
+          result_code = RestoreChildren(ikey,
+                                        req->datatype,
+                                        UPLL_DT_RUNNING,
+                                        dmi,
+                                        req);
+          UPLL_LOG_DEBUG("Restore Children returns %d", result_code);
+          return result_code;
+        }
+      } else if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+        UPLL_LOG_DEBUG("UpdateConfigDB Failed %d", result_code);
         return result_code;
       }
-      return result_code;
     }
+  } else {
+    result_code = UPLL_RC_ERR_NO_SUCH_INSTANCE;
   }
 
-  ConfigKeyVal *temp_key = NULL;
-  result_code = GetChildConfigKey(temp_key, NULL);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("GetChildConfigKey failed(%d)",result_code);
-    return result_code;
-  }
-
-  result_code = GetInstanceCount(temp_key, reinterpret_cast<char*>(ctrlr_id),
-                                req->datatype, &cur_instance_count,
-                                dmi, MAINTBL);
-  DELETE_IF_NOT_NULL(temp_key);
-
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("GetInstanceCount failed(%d)",result_code);
-    return result_code;
-  }
-
-  result_code = ValidateCapability(req, ikey, reinterpret_cast<char *>(ctrlr_id));
+  result_code = ValidateCapability(req,
+                                   ikey,
+                                   reinterpret_cast<char *>
+                                   (ctrlr_id));
 
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("Key not supported by controller");
@@ -228,10 +215,10 @@ upll_rc_t VbrPolicingMapMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
     // check the refcount capability and update the refcount or create the
     // record in policingprofilectrltbl and policingprofileentryctrltbl.
     result_code = UpdateRefCountInPPCtrlr(ikey, req->datatype, dmi,
-                                        UNC_OP_CREATE);
+                                          UNC_OP_CREATE);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("UpdateRefCountInPPCtrlr Err in CANDIDATE DB(%d)",
-                   result_code);
+                     result_code);
       return result_code;
     }
   }
@@ -258,21 +245,21 @@ upll_rc_t VbrPolicingMapMoMgr::RestorePOMInCtrlTbl(
     return UPLL_RC_ERR_GENERIC;
   }
   if (tbl != MAINTBL ||
-       (ikey->get_key_type() != UNC_KT_VBR_POLICINGMAP)) {
+      (ikey->get_key_type() != UNC_KT_VBR_POLICINGMAP)) {
     UPLL_LOG_DEBUG("Ignoring  ktype/Table kt=%d, tbl=%d",
-                    ikey->get_key_type(), tbl);
+                   ikey->get_key_type(), tbl);
     return result_code;
   }
 
   val_policingmap_t *val_pm = reinterpret_cast<val_policingmap_t *>
-    (GetVal(ikey));
+      (GetVal(ikey));
   if (NULL == val_pm) {
     UPLL_LOG_DEBUG(" Value structure is NULL");
     return UPLL_RC_ERR_GENERIC;
   }
   if (UNC_VF_VALID == val_pm->valid[UPLL_IDX_POLICERNAME_PM]) {
     result_code = UpdateRefCountInPPCtrlr(ikey, dt_type, dmi,
-                                        UNC_OP_CREATE);
+                                          UNC_OP_CREATE);
     if (UPLL_RC_SUCCESS != result_code) {
       if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
         UPLL_LOG_DEBUG("Failed to update policingprofile in ctrlrTbl Err(%d)",
@@ -327,7 +314,7 @@ upll_rc_t VbrPolicingMapMoMgr::DeleteMo(IpcReqRespHeader *req,
     return result_code;
   }
   DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
-                   kOpInOutCtrlr | kOpInOutDomain };
+    kOpInOutCtrlr | kOpInOutDomain };
   result_code = ReadConfigDB(okey, req->datatype, UNC_OP_READ, dbop, dmi,
                              MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
@@ -336,7 +323,7 @@ upll_rc_t VbrPolicingMapMoMgr::DeleteMo(IpcReqRespHeader *req,
     return result_code;
   }
   val_policingmap_t *val_pm = reinterpret_cast<val_policingmap_t *>
-    (GetVal(okey));
+      (GetVal(okey));
   if (UNC_VF_VALID == val_pm->valid[UPLL_IDX_POLICERNAME_PM]) {
     result_code = UpdateRefCountInPPCtrlr(okey, req->datatype, dmi,
                                           UNC_OP_DELETE);
@@ -375,54 +362,26 @@ upll_rc_t VbrPolicingMapMoMgr::UpdateMo(IpcReqRespHeader *req,
     return result_code;
   }
 
-  result_code = SetRenameFlag(ikey, dmi, req);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG(" SetRenameFlag failed %d", result_code);
-    return result_code;
-  }
-
-  ConfigKeyVal *okey = NULL;
-  result_code = GetControllerId(ikey, okey, req->datatype, dmi);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("GetControllerId failed %d", result_code);
-    DELETE_IF_NOT_NULL(okey);
-    return result_code;
-  }
-  delete okey;
-
-  // Check VBR object existence in VbrPolicingMap CANDIDATE DB
-  // If record not exists, return error
-  result_code = IsReferenced(ikey, req->datatype, dmi);
-  if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-    UPLL_LOG_DEBUG("IsReferenced record not available (%d)", result_code);
-    return result_code;
-  } else if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
-    UPLL_LOG_DEBUG("IsReferenced record available");
-  } else if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("IsReferenced error accessing DB (%d)", result_code);
-    return result_code;
-  }
-
   // Check vbr Policingmap object exists in PolicingProfileTbl CANDIDATE DB
   // If record not exists, return error code
   val_policingmap_t *val_ival = reinterpret_cast<val_policingmap_t *>
-    (GetVal(ikey));
+      (GetVal(ikey));
   if (UNC_VF_VALID == val_ival->valid[UPLL_IDX_POLICERNAME_PM]) {
-  result_code = IsPolicyProfileReferenced(ikey, req->datatype, dmi,
-                                          UNC_OP_READ);
-  if (UPLL_RC_SUCCESS != result_code) {
-    if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-      UPLL_LOG_DEBUG("IsPolicyProfileReferenced record not available (%d)",
-                     result_code);
-      return UPLL_RC_ERR_CFG_SEMANTIC;
-    } else {
-      UPLL_LOG_DEBUG(
-          "IsPolicyProfileReferenced error accessing DB (%d)",
-          result_code);
-      return result_code;
+    result_code = IsPolicyProfileReferenced(ikey, req->datatype, dmi,
+                                            UNC_OP_READ);
+    if (UPLL_RC_SUCCESS != result_code) {
+      if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+        UPLL_LOG_DEBUG("IsPolicyProfileReferenced record not available (%d)",
+                       result_code);
+        return UPLL_RC_ERR_CFG_SEMANTIC;
+      } else {
+        UPLL_LOG_DEBUG(
+            "IsPolicyProfileReferenced error accessing DB (%d)",
+            result_code);
+        return result_code;
+      }
     }
   }
-  }
   // 1)Get vbr associated ctrlr name and invoke the PP and PPE functions to
   // check the refcount capability and update the refcount or create the
   // record in policingprofilectrltbl and policingprofileentryctrltbl.
@@ -433,9 +392,9 @@ upll_rc_t VbrPolicingMapMoMgr::UpdateMo(IpcReqRespHeader *req,
     return result_code;
   }
   DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
-                   kOpInOutCtrlr|kOpInOutDomain };
+    kOpInOutCtrlr|kOpInOutDomain };
   result_code = ReadConfigDB(tmpckv, req->datatype, UNC_OP_READ, dbop, dmi,
-      MAINTBL);
+                             MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     DELETE_IF_NOT_NULL(tmpckv);
     UPLL_LOG_DEBUG("ReadConfigDB failed");
@@ -445,7 +404,8 @@ upll_rc_t VbrPolicingMapMoMgr::UpdateMo(IpcReqRespHeader *req,
   GET_USER_DATA_CTRLR(tmpckv, ctrlr_id);
   SET_USER_DATA_CTRLR(ikey, ctrlr_id);
 
-  result_code = ValidateCapability(req, ikey, reinterpret_cast<char *>(ctrlr_id));
+  result_code = ValidateCapability(req, ikey, reinterpret_cast<char *>
+                                   (ctrlr_id));
 
   if (result_code != UPLL_RC_SUCCESS) {
     DELETE_IF_NOT_NULL(tmpckv);
@@ -454,49 +414,49 @@ upll_rc_t VbrPolicingMapMoMgr::UpdateMo(IpcReqRespHeader *req,
   }
 
   val_policingmap_t *val_tmp_val = reinterpret_cast<val_policingmap_t *>
-    (GetVal(tmpckv));
+      (GetVal(tmpckv));
   if (UNC_VF_VALID == val_ival->valid[UPLL_IDX_POLICERNAME_PM] &&
       UNC_VF_VALID == val_tmp_val->valid[UPLL_IDX_POLICERNAME_PM]) {
     UPLL_LOG_DEBUG(" Policer name valid in DB and ikey");
     result_code = UpdateRefCountInPPCtrlr(tmpckv, req->datatype, dmi,
-        UNC_OP_DELETE);
+                                          UNC_OP_DELETE);
     if (UPLL_RC_SUCCESS != result_code) {
       DELETE_IF_NOT_NULL(tmpckv);
       UPLL_LOG_DEBUG("UpdateMo UpdateRefCountInPPCtrlr error in delete (%d)",
-          result_code);
+                     result_code);
       return result_code;
     }
     result_code = UpdateRefCountInPPCtrlr(ikey, req->datatype, dmi,
-        UNC_OP_CREATE);
+                                          UNC_OP_CREATE);
     if (UPLL_RC_SUCCESS != result_code) {
       DELETE_IF_NOT_NULL(tmpckv);
       UPLL_LOG_DEBUG("UpdateMo UpdateRefCountInPPCtrlr error in create (%d)",
-          result_code);
+                     result_code);
       return result_code;
     }
   } else if ((UNC_VF_VALID_NO_VALUE == val_tmp_val->
-      valid[UPLL_IDX_POLICERNAME_PM] ||
-      UNC_VF_INVALID == val_tmp_val->valid[UPLL_IDX_POLICERNAME_PM])&&
-      UNC_VF_VALID == val_ival->valid[UPLL_IDX_POLICERNAME_PM]) {
+              valid[UPLL_IDX_POLICERNAME_PM] ||
+              UNC_VF_INVALID == val_tmp_val->valid[UPLL_IDX_POLICERNAME_PM])&&
+             UNC_VF_VALID == val_ival->valid[UPLL_IDX_POLICERNAME_PM]) {
     UPLL_LOG_DEBUG(" Policer name valid in ikey and validnovalue in DB");
     result_code = UpdateRefCountInPPCtrlr(ikey, req->datatype, dmi,
-        UNC_OP_CREATE);
+                                          UNC_OP_CREATE);
     if (UPLL_RC_SUCCESS != result_code) {
       DELETE_IF_NOT_NULL(tmpckv);
       UPLL_LOG_DEBUG("UpdateMo UpdateRefCountInPPCtrlr error in create (%d)",
-          result_code);
+                     result_code);
       return result_code;
     }
   } else if (UNC_VF_VALID == val_tmp_val->valid[UPLL_IDX_POLICERNAME_PM] &&
-      UNC_VF_VALID_NO_VALUE == val_ival->
-      valid[UPLL_IDX_POLICERNAME_PM]) {
+             UNC_VF_VALID_NO_VALUE == val_ival->
+             valid[UPLL_IDX_POLICERNAME_PM]) {
     UPLL_LOG_DEBUG(" Policer name validnovalue in ikey and valid in db");
     result_code = UpdateRefCountInPPCtrlr(tmpckv, req->datatype, dmi,
-        UNC_OP_DELETE);
+                                          UNC_OP_DELETE);
     if (UPLL_RC_SUCCESS != result_code) {
       DELETE_IF_NOT_NULL(tmpckv);
       UPLL_LOG_DEBUG("UpdateMo UpdateRefCountInPPCtrlr error in create (%d)",
-          result_code);
+                     result_code);
       return result_code;
     }
   }
@@ -521,7 +481,12 @@ upll_rc_t VbrPolicingMapMoMgr::IsReferenced(ConfigKeyVal *ikey,
   if (NULL == ikey) return UPLL_RC_ERR_GENERIC;
   DbSubOp dbop = { kOpReadExist, kOpMatchNone, kOpInOutNone };
   // Check the VBR PM object existence
-  result_code = UpdateConfigDB(ikey, dt_type, UNC_OP_READ, dmi, &dbop, MAINTBL);
+  result_code = UpdateConfigDB(ikey,
+                               dt_type,
+                               UNC_OP_READ,
+                               dmi,
+                               &dbop,
+                               MAINTBL);
   UPLL_LOG_DEBUG("IsReferenced status (%d)", result_code);
   return result_code;
 }
@@ -536,7 +501,7 @@ upll_rc_t VbrPolicingMapMoMgr::IsPolicyProfileReferenced(
   // Get the memory allocated policy profile key structure
   MoMgrImpl *mgr =
       static_cast<MoMgrImpl *>((const_cast<MoManager*>(GetMoManager(
-          UNC_KT_POLICING_PROFILE))));
+                      UNC_KT_POLICING_PROFILE))));
   result_code = mgr->GetChildConfigKey(okey, NULL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("IsPolicyProfileReferenced GetChildConfigKey (%d)",
@@ -564,11 +529,12 @@ upll_rc_t VbrPolicingMapMoMgr::IsPolicyProfileReferenced(
   val_policingmap_t *val_pm = reinterpret_cast<val_policingmap_t*>
       (GetVal(ikey));
   PolicingProfileEntryMoMgr *ppe_mgr =
-    reinterpret_cast<PolicingProfileEntryMoMgr*>
-    (const_cast<MoManager *>(GetMoManager
-                             (UNC_KT_POLICING_PROFILE_ENTRY)));
-  result_code = ppe_mgr->ValidateValidElements(reinterpret_cast
-    <const char *>(val_pm->policer_name), dmi, dt_type);
+      reinterpret_cast<PolicingProfileEntryMoMgr*>
+      (const_cast<MoManager *>(GetMoManager
+                               (UNC_KT_POLICING_PROFILE_ENTRY)));
+  result_code = ppe_mgr->ValidateValidElements(
+      reinterpret_cast
+      <const char *>(val_pm->policer_name), dmi, dt_type);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("ValidateValidElements failed %d", result_code);
     delete okey;
@@ -583,7 +549,6 @@ upll_rc_t VbrPolicingMapMoMgr::UpdateRefCountInPPCtrlr(
     unc_keytype_operation_t op) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
-  ConfigKeyVal *okey = NULL;
   uint8_t *ctrlr_id = NULL;
 
   GET_USER_DATA_CTRLR(ikey, ctrlr_id);
@@ -591,13 +556,13 @@ upll_rc_t VbrPolicingMapMoMgr::UpdateRefCountInPPCtrlr(
   PolicingProfileMoMgr *pp_mgr =
       reinterpret_cast<PolicingProfileMoMgr *>
       (const_cast<MoManager *>(GetMoManager(
-          UNC_KT_POLICING_PROFILE)));
-  #if 0
+                  UNC_KT_POLICING_PROFILE)));
+#if 0
   PolicingProfileEntryMoMgr *ppe_mgr =
       reinterpret_cast<PolicingProfileEntryMoMgr *>
       (const_cast<MoManager *>(GetMoManager(
-          UNC_KT_POLICING_PROFILE_ENTRY)));
-  #endif
+                  UNC_KT_POLICING_PROFILE_ENTRY)));
+#endif
   val_policingmap_t* val_vtn_policingmap =
       reinterpret_cast<val_policingmap_t *>(GetVal(ikey));
 
@@ -605,40 +570,37 @@ upll_rc_t VbrPolicingMapMoMgr::UpdateRefCountInPPCtrlr(
     UPLL_LOG_DEBUG(
         "VbrPolicingMapMoMgr::UpdateRefCountInPPCtrlr ctrlr_id NULL (%d)",
         result_code);
-    DELETE_IF_NOT_NULL(okey);
     return UPLL_RC_ERR_GENERIC;
   }
 
-/* Check the ref count capability of vbr associated controller name in
-   policingprofilectrltbl If refcount reached the
-   max capability, then return error.
-   If ref count is less than capability and the record exist in
-   policingprofilectrltbl, based on the operation refcount should be
-   incremented or decremented and update policingprofilectrltbl.
-   create the record with refcount if record not
-   exist in policingprofilectrl tbl for the vbr associated controller name
-*/
+  /* Check the ref count capability of vbr associated controller name in
+     policingprofilectrltbl If refcount reached the
+     max capability, then return error.
+     If ref count is less than capability and the record exist in
+     policingprofilectrltbl, based on the operation refcount should be
+     incremented or decremented and update policingprofilectrltbl.
+     create the record with refcount if record not
+     exist in policingprofilectrl tbl for the vbr associated controller name
+     */
   result_code = pp_mgr->PolicingProfileCtrlrTblOper(
       reinterpret_cast<const char *>(val_vtn_policingmap->policer_name),
       reinterpret_cast<const char *>(ctrlr_id), dmi, op, dt_type);
   if (UPLL_RC_SUCCESS != result_code) {
-    DELETE_IF_NOT_NULL(okey);
     return result_code;
   }
 
   // Create/Delete/Update the record in policingprofileentryctrltbl
   // based on oper
-  #if 0
+#if 0
   result_code = ppe_mgr->PolicingProfileEntryCtrlrTblOper(
-                reinterpret_cast<const char*>
-                (val_vtn_policingmap->policer_name),
-                reinterpret_cast<const char*>(ctrlr_id), dmi, op, dt_type);
+      reinterpret_cast<const char*>
+      (val_vtn_policingmap->policer_name),
+      reinterpret_cast<const char*>(ctrlr_id), dmi, op, dt_type);
   if (UPLL_RC_SUCCESS != result_code) {
     DELETE_IF_NOT_NULL(okey);
     return result_code;
   }
-  #endif
-  DELETE_IF_NOT_NULL(okey);
+#endif
   return UPLL_RC_SUCCESS;
 }
 
@@ -650,8 +612,8 @@ upll_rc_t VbrPolicingMapMoMgr::GetControllerId(ConfigKeyVal *ikey,
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
   VbrMoMgr *mgr =
-    reinterpret_cast<VbrMoMgr *>(const_cast<MoManager *>(GetMoManager(
-            UNC_KT_VBRIDGE)));
+      reinterpret_cast<VbrMoMgr *>(const_cast<MoManager *>(GetMoManager(
+                  UNC_KT_VBRIDGE)));
   if (!mgr) {
     UPLL_LOG_DEBUG("GetControllerId GetMoManager failed (%d)", result_code);
     return UPLL_RC_ERR_GENERIC;
@@ -659,7 +621,7 @@ upll_rc_t VbrPolicingMapMoMgr::GetControllerId(ConfigKeyVal *ikey,
   result_code = mgr->GetChildConfigKey(okey, NULL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("GetControllerId GetChildConfigKey failed (%d)",
-               result_code);
+                   result_code);
     return result_code;
   }
   key_vbr_t *vbr_okey = reinterpret_cast<key_vbr_t *>(okey->get_key());
@@ -667,10 +629,10 @@ upll_rc_t VbrPolicingMapMoMgr::GetControllerId(ConfigKeyVal *ikey,
   uuu::upll_strncpy(vbr_okey->vbridge_name, vbr_ikey->vbridge_name,
                     (kMaxLenVnodeName+1));
   uuu::upll_strncpy(vbr_okey->vtn_key.vtn_name, vbr_ikey->vtn_key.vtn_name,
-      (kMaxLenVtnName+1));
+                    (kMaxLenVtnName+1));
 
   DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
-                   kOpInOutCtrlr|kOpInOutDomain };
+    kOpInOutCtrlr|kOpInOutDomain };
   result_code = mgr->ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop,
                                   dmi, MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
@@ -808,17 +770,20 @@ upll_rc_t VbrPolicingMapMoMgr::ReadMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
           SET_USER_DATA_CTRLR_DOMAIN(dup_key1, ctrlr_dom);
 
 
-           result_code = ValidateCapability(req, ikey, reinterpret_cast<char *>(ctrlr_dom.ctrlr));
+          result_code = ValidateCapability(req,
+                                           ikey,
+                                           reinterpret_cast<char *>
+                                           (ctrlr_dom.ctrlr));
 
-           if (result_code != UPLL_RC_SUCCESS) {
-             DELETE_IF_NOT_NULL(dup_key);
-             DELETE_IF_NOT_NULL(dup_key1);
-             UPLL_LOG_DEBUG("Key not supported by controller");
-             return result_code;
-           }
+          if (result_code != UPLL_RC_SUCCESS) {
+            DELETE_IF_NOT_NULL(dup_key);
+            DELETE_IF_NOT_NULL(dup_key1);
+            UPLL_LOG_DEBUG("Key not supported by controller");
+            return result_code;
+          }
 
           // 1.Getting renamed name if renamed
-  // need to uncomment in IMPORT CASE
+          // need to uncomment in IMPORT CASE
           result_code = GetRenamedControllerKey(dup_key1, req->datatype,
                                                 dmi, &ctrlr_dom);
           if (result_code != UPLL_RC_SUCCESS) {
@@ -844,10 +809,10 @@ upll_rc_t VbrPolicingMapMoMgr::ReadMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
 
           memcpy(&(ipc_req.header), req, sizeof(IpcReqRespHeader));
           if (!IpcUtil::SendReqToDriver(
-                      (const char *)ctrlr_dom.ctrlr,
-                      reinterpret_cast<char *>(ctrlr_dom.domain),
-                      PFCDRIVER_SERVICE_NAME, PFCDRIVER_SVID_LOGICAL, &ipc_req,
-                      true, &ipc_resp)) {
+                  (const char *)ctrlr_dom.ctrlr,
+                  reinterpret_cast<char *>(ctrlr_dom.domain),
+                  PFCDRIVER_SERVICE_NAME, PFCDRIVER_SVID_LOGICAL, &ipc_req,
+                  true, &ipc_resp)) {
             UPLL_LOG_DEBUG("SendReqToDriver failed for Key %d controller %s",
                            l_key->get_key_type(),
                            reinterpret_cast<char *>(ctrlr_dom.ctrlr));
@@ -855,9 +820,10 @@ upll_rc_t VbrPolicingMapMoMgr::ReadMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
           }
 
           if (ipc_resp.header.result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("Driver response for Key %d controller %s result %d",
-                          l_key->get_key_type(), ctrlr_dom.ctrlr,
-                          ipc_resp.header.result_code);
+            UPLL_LOG_DEBUG("Driver response for Key %d controller"
+                           "%s result %d",
+                           l_key->get_key_type(), ctrlr_dom.ctrlr,
+                           ipc_resp.header.result_code);
             return ipc_resp.header.result_code;
           }
           result_code = ConstructReadDetailEntryResponse(dup_key1,
@@ -901,7 +867,7 @@ upll_rc_t VbrPolicingMapMoMgr::ReadMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
 }
 
 upll_rc_t VbrPolicingMapMoMgr::GetReadVbrEntryKey(ConfigKeyVal *&dup_key,
-                                             ConfigKeyVal *ikey) {
+                                                  ConfigKeyVal *ikey) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   key_vbr_policingmap_entry* vbr_key =
@@ -914,14 +880,14 @@ upll_rc_t VbrPolicingMapMoMgr::GetReadVbrEntryKey(ConfigKeyVal *&dup_key,
   key_vbr_policingmap_entry *key =
       reinterpret_cast<key_vbr_policingmap_entry *>(dup_key->get_key());
   key_vbr_policingmap_entry *key1 =
-    reinterpret_cast<key_vbr_policingmap_entry *>(ikey->get_key());
+      reinterpret_cast<key_vbr_policingmap_entry *>(ikey->get_key());
 
   uuu::upll_strncpy(reinterpret_cast<char*>(key->vbr_key.vtn_key.vtn_name),
-          reinterpret_cast<char*>(key1->vbr_key.vtn_key.vtn_name),
-          (kMaxLenVtnName + 1));
+                    reinterpret_cast<char*>(key1->vbr_key.vtn_key.vtn_name),
+                    (kMaxLenVtnName + 1));
   uuu::upll_strncpy(reinterpret_cast<char*>(key->vbr_key.vbridge_name),
-          reinterpret_cast<char*>(key1->vbr_key.vbridge_name),
-          (kMaxLenVnodeName + 1));
+                    reinterpret_cast<char*>(key1->vbr_key.vbridge_name),
+                    (kMaxLenVnodeName + 1));
   vbr_key->sequence_num = key1->sequence_num;
   return result_code;
 }
@@ -933,19 +899,19 @@ upll_rc_t VbrPolicingMapMoMgr::GetReadVbrKey(ConfigKeyVal *&dup_key,
 
   result_code =  GetChildConfigKey(dup_key, NULL);
   if (result_code != UPLL_RC_SUCCESS) {
-     return result_code;
+    return result_code;
   }
 
   key_vbr_t *key = reinterpret_cast<key_vbr_t *>(dup_key->get_key());
   key_vbr_policingmap_entry *key1 =
-    reinterpret_cast<key_vbr_policingmap_entry *>(ikey->get_key());
+      reinterpret_cast<key_vbr_policingmap_entry *>(ikey->get_key());
 
   uuu::upll_strncpy(reinterpret_cast<char*>(key->vtn_key.vtn_name),
-          reinterpret_cast<char*>(key1->vbr_key.vtn_key.vtn_name),
-          (kMaxLenVtnName + 1));
+                    reinterpret_cast<char*>(key1->vbr_key.vtn_key.vtn_name),
+                    (kMaxLenVtnName + 1));
   uuu::upll_strncpy(reinterpret_cast<char*>(key->vbridge_name),
-          reinterpret_cast<char*>(key1->vbr_key.vbridge_name),
-          (kMaxLenVnodeName + 1));
+                    reinterpret_cast<char*>(key1->vbr_key.vbridge_name),
+                    (kMaxLenVnodeName + 1));
   return UPLL_RC_SUCCESS;
 }
 
@@ -968,7 +934,7 @@ upll_rc_t VbrPolicingMapMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
     return result_code;
   }
   memset(&ctrlr_dom, 0, sizeof(controller_domain));
-  
+
   if ((UNC_KT_VBR_POLICINGMAP == ikey->get_key_type()) &&
       UNC_OP_READ_SIBLING == req->operation ) {
     /* Since read sibling  not applicable for policingmap*/
@@ -991,7 +957,6 @@ upll_rc_t VbrPolicingMapMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
         } else if ((UPLL_DT_STATE == req->datatype) &&
                    (req->option1 == UNC_OPT1_DETAIL)&&
                    (req->option2 == UNC_OPT2_NONE)) {
-
           result_code = ReadDetailRecord(req, ikey, dmi);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("ReadDetailRecord result_code (%d)", result_code);
@@ -1045,7 +1010,8 @@ upll_rc_t VbrPolicingMapMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
 
           result_code = mgr->ReadSiblingMo(req, tctrl_key, dmi);
           if (UPLL_RC_SUCCESS != result_code) {
-            UPLL_LOG_DEBUG("ReadConfigDb failed for tctrl_key%d ", result_code);
+            UPLL_LOG_DEBUG("ReadConfigDb failed for tctrl_key%d ",
+                           result_code);
             return result_code;
           }
 
@@ -1102,14 +1068,15 @@ upll_rc_t VbrPolicingMapMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
           }
           GET_USER_DATA_CTRLR_DOMAIN(dup_key, ctrlr_dom);
           SET_USER_DATA_CTRLR_DOMAIN(dup_key1, ctrlr_dom);
-          result_code = ValidateCapability(req, ikey, reinterpret_cast<char *>(ctrlr_dom.ctrlr));
+          result_code = ValidateCapability(req, ikey, reinterpret_cast<char *>
+                                           (ctrlr_dom.ctrlr));
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("Not Supported By Controller");
-             return result_code;
+            return result_code;
           }
 
           // 1.Getting renamed name if renamed
-  // need to uncomment for IMPORT case
+          // need to uncomment for IMPORT case
           result_code = GetRenamedControllerKey(dup_key1, req->datatype,
                                                 dmi, &ctrlr_dom);
           if (result_code != UPLL_RC_SUCCESS) {
@@ -1133,7 +1100,8 @@ upll_rc_t VbrPolicingMapMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
 
           val_policingmap_t* val_policingmap =
               reinterpret_cast<val_policingmap_t *>(GetVal(dup_key));
-          l_pp_key->sequence_num =reinterpret_cast < key_vbr_policingmap_entry*>
+          l_pp_key->sequence_num =reinterpret_cast
+              <key_vbr_policingmap_entry*>
               (ikey->get_key())->sequence_num;
           uuu::upll_strncpy(l_pp_key->policingprofile_key.policingprofile_name,
                             val_policingmap->policer_name,
@@ -1157,11 +1125,15 @@ upll_rc_t VbrPolicingMapMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
           memcpy(temp_req, req, sizeof(IpcReqRespHeader));
           temp_req->option1 = UNC_OPT1_NORMAL;
           // result_code = mgr->ReadInfoFromDB(req, ppe_ckv, dmi, &ctrlr_dom);
-          //           result_code = mgr->ReadSiblingMo(temp_req, ppe_ckv, dmi);
+          //           result_code = mgr->ReadSiblingMo(
+          //           temp_req,
+          //           ppe_ckv,
+          //           dmi);
           result_code = mgr->ReadSiblingMo(temp_req, tctrl_key, dmi);
           req->rep_count = temp_req->rep_count;
           if (UPLL_RC_SUCCESS != result_code) {
-            UPLL_LOG_DEBUG("ReadConfigDb failed for tctrl_key%d ", result_code);
+            UPLL_LOG_DEBUG("ReadConfigDb failed for tctrl_key%d ",
+                           result_code);
             ConfigKeyVal::Free(temp_req);
             return result_code;
           }
@@ -1188,8 +1160,8 @@ upll_rc_t VbrPolicingMapMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
 
             if (ipc_resp.header.result_code != UPLL_RC_SUCCESS) {
               UPLL_LOG_DEBUG("Driver response for Key %d ctrlr %s result %d",
-                            dup_key1->get_key_type(), ctrlr_dom.ctrlr,
-                            ipc_resp.header.result_code);
+                             dup_key1->get_key_type(), ctrlr_dom.ctrlr,
+                             ipc_resp.header.result_code);
               DELETE_IF_NOT_NULL(dup_key1);
               DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
               return ipc_resp.header.result_code;
@@ -1241,8 +1213,8 @@ upll_rc_t VbrPolicingMapMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
 }
 
 upll_rc_t VbrPolicingMapMoMgr::ReadDetailRecord(IpcReqRespHeader *req,
-                                               ConfigKeyVal *&ikey,
-                                               DalDmlIntf *dmi) {
+                                                ConfigKeyVal *&ikey,
+                                                DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   ConfigKeyVal *l_key = NULL;
   ConfigKeyVal *dup_key = NULL;
@@ -1273,7 +1245,9 @@ upll_rc_t VbrPolicingMapMoMgr::ReadDetailRecord(IpcReqRespHeader *req,
   GET_USER_DATA_CTRLR_DOMAIN(dup_key, ctrlr_dom);
   SET_USER_DATA_CTRLR_DOMAIN(l_key, ctrlr_dom);
 
-  result_code = ValidateCapability(req, ikey, reinterpret_cast<char *>(ctrlr_dom.ctrlr));
+  result_code = ValidateCapability(req,
+                                   ikey,
+                                   reinterpret_cast<char *>(ctrlr_dom.ctrlr));
 
   if (result_code != UPLL_RC_SUCCESS) {
     DELETE_IF_NOT_NULL(dup_key);
@@ -1344,7 +1318,7 @@ upll_rc_t VbrPolicingMapMoMgr::ReadDetailRecord(IpcReqRespHeader *req,
   DELETE_IF_NOT_NULL(l_key);
   return result_code;
 }
+
 // Rename
 bool VbrPolicingMapMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type,
                                                BindInfo *&binfo, int &nattr,
@@ -1353,7 +1327,7 @@ bool VbrPolicingMapMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type,
   UPLL_LOG_DEBUG("GetRenameKeyBindInfo (%d) (%d)", key_type, tbl);
 
   nattr = sizeof(key_vbrpm_maintbl_rename_bind_info)/
-          sizeof(key_vbrpm_maintbl_rename_bind_info[0]);
+      sizeof(key_vbrpm_maintbl_rename_bind_info[0]);
   binfo = key_vbrpm_maintbl_rename_bind_info;
   return PFC_TRUE;
 }
@@ -1370,7 +1344,7 @@ upll_rc_t VbrPolicingMapMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
   key_rename_vnode_info *key_rename =
-        reinterpret_cast<key_rename_vnode_info *>(ikey->get_key());
+      reinterpret_cast<key_rename_vnode_info *>(ikey->get_key());
   key_vbr_t *key_vbr =
       reinterpret_cast<key_vbr_t *>(ConfigKeyVal::Malloc(sizeof(key_vbr_t)));
 
@@ -1384,7 +1358,7 @@ upll_rc_t VbrPolicingMapMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
                     key_rename->old_unc_vtn_name,
                     (kMaxLenVtnName + 1));
 
-  if (ikey->get_key_type() == table[MAINTBL]->get_key_type()) {
+  if (ikey->get_key_type() == UNC_KT_VBRIDGE) {
     if (!strlen(reinterpret_cast<char *>(key_rename->old_unc_vnode_name))) {
       UPLL_LOG_DEBUG("old_unc_vnode_name NULL");
       FREE_IF_NOT_NULL(key_vbr);
@@ -1392,8 +1366,8 @@ upll_rc_t VbrPolicingMapMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
     }
 
     uuu::upll_strncpy(key_vbr->vbridge_name,
-                    key_rename->old_unc_vnode_name,
-                    (kMaxLenVnodeName + 1));
+                      key_rename->old_unc_vnode_name,
+                      (kMaxLenVnodeName + 1));
   }
 
   okey = new ConfigKeyVal(UNC_KT_VBR_POLICINGMAP, IpctSt::kIpcStKeyVbr,
@@ -1406,10 +1380,11 @@ upll_rc_t VbrPolicingMapMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
   return result_code;
 }
 
-upll_rc_t VbrPolicingMapMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
-                                              DalDmlIntf *dmi,
-                                             upll_keytype_datatype_t data_type,
-                                              bool &no_rename) {
+upll_rc_t VbrPolicingMapMoMgr::UpdateVnodeVal(
+    ConfigKeyVal *ikey,
+    DalDmlIntf *dmi,
+    upll_keytype_datatype_t data_type,
+    bool &no_rename) {
   UPLL_FUNC_TRACE;
   ConfigKeyVal *okey = NULL;
   ConfigKeyVal *kval = NULL;
@@ -1421,12 +1396,12 @@ upll_rc_t VbrPolicingMapMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
   key_rename_vnode_info_t *key_rename =
-  reinterpret_cast<key_rename_vnode_info_t *>(ikey->get_key());
+      reinterpret_cast<key_rename_vnode_info_t *>(ikey->get_key());
 
   UPLL_LOG_DEBUG("CopyToConfigKey datatype (%d)", data_type);
   // Copy the old policer name in val_policingmap
   val_policingmap_t *val = reinterpret_cast<val_policingmap_t *>
-        (ConfigKeyVal::Malloc(sizeof(val_policingmap_t)));
+      (ConfigKeyVal::Malloc(sizeof(val_policingmap_t)));
   if (!val) return UPLL_RC_ERR_GENERIC;
 
   memset(val, 0, sizeof(val_policingmap_t));
@@ -1437,17 +1412,17 @@ upll_rc_t VbrPolicingMapMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
   }
 
   uuu::upll_strncpy(val->policer_name,
-      key_rename->old_policingprofile_name,
-      (kMaxLenPolicingProfileName + 1));
+                    key_rename->old_policingprofile_name,
+                    (kMaxLenPolicingProfileName + 1));
   val->valid[UPLL_IDX_POLICERNAME_PM] = UNC_VF_VALID;
   UPLL_LOG_DEBUG("policer name and valid (%d) (%s)",
-                  val->valid[UPLL_IDX_POLICERNAME_PM], val->policer_name);
+                 val->valid[UPLL_IDX_POLICERNAME_PM], val->policer_name);
 
   result_code = GetChildConfigKey(okey, NULL);
   if (UPLL_RC_SUCCESS != result_code) {
-     UPLL_LOG_DEBUG("CopyToConfigKey okey  NULL");
-     FREE_IF_NOT_NULL(val);
-     return result_code;
+    UPLL_LOG_DEBUG("CopyToConfigKey okey  NULL");
+    FREE_IF_NOT_NULL(val);
+    return result_code;
   }
   if (!okey) {
     FREE_IF_NOT_NULL(val);
@@ -1456,11 +1431,13 @@ upll_rc_t VbrPolicingMapMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
 
   okey->SetCfgVal(new ConfigVal(IpctSt::kIpcStValPolicingmap, val));
 
-  DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutCtrlr|kOpInOutDomain|kOpInOutFlag };
+  DbSubOp dbop = { kOpReadMultiple,
+    kOpMatchNone,
+    kOpInOutCtrlr|kOpInOutDomain|kOpInOutFlag };
 
-  // Read the record of key structure and old policer name in maintbl   
+  // Read the record of key structure and old policer name in maintbl
   result_code = ReadConfigDB(okey, data_type, UNC_OP_READ, dbop, dmi,
-    MAINTBL);
+                             MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG(" ReadConfigDB failed ");
     DELETE_IF_NOT_NULL(okey);
@@ -1478,12 +1455,13 @@ upll_rc_t VbrPolicingMapMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
     if (!kval) return UPLL_RC_ERR_GENERIC;
     // Copy the new policer name in val_policingmap
     val_policingmap_t *val1 = reinterpret_cast<val_policingmap_t *>
-          (ConfigKeyVal::Malloc(sizeof(val_policingmap_t)));
+        (ConfigKeyVal::Malloc(sizeof(val_policingmap_t)));
     if (!val1) return UPLL_RC_ERR_GENERIC;
     memset(val1, 0, sizeof(val_policingmap_t));
 
     // New name null check
-    if (!strlen(reinterpret_cast<char *>(key_rename->new_policingprofile_name))) {
+    if (!strlen(reinterpret_cast<char *>
+                (key_rename->new_policingprofile_name))) {
       FREE_IF_NOT_NULL(val1);
       UPLL_LOG_DEBUG("new_policingprofile_name NULL");
       DELETE_IF_NOT_NULL(kval);
@@ -1492,11 +1470,11 @@ upll_rc_t VbrPolicingMapMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
     }
     // Copy the new policer name into val_policingmap
     uuu::upll_strncpy(val1->policer_name,
-      key_rename->new_policingprofile_name,
-      (kMaxLenPolicingProfileName + 1));
+                      key_rename->new_policingprofile_name,
+                      (kMaxLenPolicingProfileName + 1));
     val1->valid[UPLL_IDX_POLICERNAME_PM] = UNC_VF_VALID;
     UPLL_LOG_DEBUG("policer name and valid (%d) (%s)",
-                    val1->valid[UPLL_IDX_POLICERNAME_PM], val1->policer_name);
+                   val1->valid[UPLL_IDX_POLICERNAME_PM], val1->policer_name);
     ConfigVal *cval1 = new ConfigVal(IpctSt::kIpcStValPolicingmap, val1);
 
     kval->SetCfgVal(cval1);
@@ -1517,10 +1495,10 @@ upll_rc_t VbrPolicingMapMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
     UPLL_LOG_DEBUG("kval flag (%d)", rename);
     // Update the new policer name in MAINTBL
     result_code = UpdateConfigDB(kval, data_type, UNC_OP_UPDATE, dmi,
-                  MAINTBL);
+                                 MAINTBL);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("Create record Err in vtnpolicingmaptbl CANDIDATE DB(%d)",
-        result_code);
+                     result_code);
       DELETE_IF_NOT_NULL(kval);
       DELETE_IF_NOT_NULL(first_ckv);
       return result_code;
@@ -1529,7 +1507,7 @@ upll_rc_t VbrPolicingMapMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
     DELETE_IF_NOT_NULL(kval);
 
     okey = okey->get_next_cfg_key_val();
-   }
+  }
   DELETE_IF_NOT_NULL(first_ckv);
   return result_code;
 }
@@ -1554,9 +1532,11 @@ upll_rc_t VbrPolicingMapMoMgr::MergeValidate(unc_key_type_t keytype,
 
   if (!ckval) return UPLL_RC_ERR_GENERIC;
 
-  DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutCtrlr|kOpInOutDomain};
+  DbSubOp dbop = { kOpReadMultiple,
+    kOpMatchNone,
+    kOpInOutCtrlr|kOpInOutDomain};
   result_code = ReadConfigDB(ckval, UPLL_DT_IMPORT,
-              UNC_OP_READ, dbop, dmi, MAINTBL);
+                             UNC_OP_READ, dbop, dmi, MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     DELETE_IF_NOT_NULL(ckval);
     if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
@@ -1590,16 +1570,17 @@ upll_rc_t VbrPolicingMapMoMgr::MergeValidate(unc_key_type_t keytype,
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t VbrPolicingMapMoMgr::GetRenamedUncKey(ConfigKeyVal *ikey,
-                                                upll_keytype_datatype_t dt_type,
-                                                DalDmlIntf *dmi,
-                                                uint8_t *ctrlr_id) {
+upll_rc_t VbrPolicingMapMoMgr::GetRenamedUncKey(
+    ConfigKeyVal *ikey,
+    upll_keytype_datatype_t dt_type,
+    DalDmlIntf *dmi,
+    uint8_t *ctrlr_id) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code;
   ConfigKeyVal *unc_key = NULL;
   DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutNone };
   UPLL_LOG_TRACE("%s GetRenamedUncKey vbrpm start",
-                  ikey->ToStrAll().c_str());
+                 ikey->ToStrAll().c_str());
   if (NULL == ikey || NULL == dmi || NULL == ctrlr_id) {
     UPLL_LOG_DEBUG(" GetRenamedUncKey failed. Insufficient input parameters.");
     return UPLL_RC_ERR_GENERIC;
@@ -1629,7 +1610,7 @@ upll_rc_t VbrPolicingMapMoMgr::GetRenamedUncKey(ConfigKeyVal *ikey,
 
   MoMgrImpl *mgr =
       reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-          UNC_KT_VBRIDGE)));
+                  UNC_KT_VBRIDGE)));
   if (NULL == mgr) {
     UPLL_LOG_DEBUG("mgr NULL");
     free(rename_vnode);
@@ -1670,17 +1651,17 @@ upll_rc_t VbrPolicingMapMoMgr::GetRenamedUncKey(ConfigKeyVal *ikey,
     key_vbr *vbr_key = reinterpret_cast<key_vbr *>(unc_key->get_key());
     if (vbr_key) {
       if (strcmp(reinterpret_cast<char *>(ctrlr_key->vtn_key.vtn_name),
-                reinterpret_cast<const char *>(vbr_key->vtn_key.vtn_name))) {
-    uuu::upll_strncpy(ctrlr_key->vtn_key.vtn_name,
-                      vbr_key->vtn_key.vtn_name,
-                      (kMaxLenVtnName + 1));
+                 reinterpret_cast<const char *>(vbr_key->vtn_key.vtn_name))) {
+        uuu::upll_strncpy(ctrlr_key->vtn_key.vtn_name,
+                          vbr_key->vtn_key.vtn_name,
+                          (kMaxLenVtnName + 1));
       }
 
       if (strcmp(reinterpret_cast<char *>(ctrlr_key->vbridge_name),
-                reinterpret_cast<const char *>(vbr_key->vbridge_name))) {
-    uuu::upll_strncpy(ctrlr_key->vbridge_name,
-                      vbr_key->vbridge_name,
-                      (kMaxLenVnodeName + 1));
+                 reinterpret_cast<const char *>(vbr_key->vbridge_name))) {
+        uuu::upll_strncpy(ctrlr_key->vbridge_name,
+                          vbr_key->vbridge_name,
+                          (kMaxLenVnodeName + 1));
       }
     }
   }
@@ -1691,7 +1672,7 @@ upll_rc_t VbrPolicingMapMoMgr::GetRenamedUncKey(ConfigKeyVal *ikey,
   /* ********** Get the Renamed Policer name ******* */
   val_rename_policingprofile *rename_policingprofile =
       reinterpret_cast<val_rename_policingprofile *>(ConfigKeyVal::Malloc(
-          sizeof(val_rename_policingprofile)));
+              sizeof(val_rename_policingprofile)));
   if (!rename_policingprofile) {
     UPLL_LOG_DEBUG("rename_policingprofile NULL");
     return UPLL_RC_ERR_GENERIC;
@@ -1713,7 +1694,7 @@ upll_rc_t VbrPolicingMapMoMgr::GetRenamedUncKey(ConfigKeyVal *ikey,
   rename_policingprofile->valid[UPLL_IDX_RENAME_PROFILE_RPP] = UNC_VF_VALID;
 
   mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-      UNC_KT_POLICING_PROFILE)));
+              UNC_KT_POLICING_PROFILE)));
   if (NULL == mgr) {
     UPLL_LOG_DEBUG("mgr policing profile NULL");
     free(rename_policingprofile);
@@ -1757,17 +1738,17 @@ upll_rc_t VbrPolicingMapMoMgr::GetRenamedUncKey(ConfigKeyVal *ikey,
         reinterpret_cast<key_policingprofile_t *>(unc_key->get_key());
     if (key_policingprofile) {
       if (strcmp(reinterpret_cast<char *>(val_policingmap->policer_name),
-         reinterpret_cast<const char *>(key_policingprofile
-         ->policingprofile_name))) {
-    uuu::upll_strncpy(
-        val_policingmap->policer_name,
-        key_policingprofile->policingprofile_name,
-        (kMaxLenPolicingProfileName + 1));
+                 reinterpret_cast<const char *>(key_policingprofile
+                                                ->policingprofile_name))) {
+        uuu::upll_strncpy(
+            val_policingmap->policer_name,
+            key_policingprofile->policingprofile_name,
+            (kMaxLenPolicingProfileName + 1));
       }
     }
   }
   UPLL_LOG_TRACE("%s GetRenamedUncKey vbrpm end",
-                  ikey->ToStrAll().c_str());
+                 ikey->ToStrAll().c_str());
   DELETE_IF_NOT_NULL(unc_key);
   mgr = NULL;
   return UPLL_RC_SUCCESS;
@@ -1778,7 +1759,6 @@ upll_rc_t VbrPolicingMapMoMgr::GetRenamedControllerKey(
     controller_domain *ctrlr_dom) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code;
-  uint8_t rename = 0;
   ConfigKeyVal *okey = NULL;
 
   if (NULL == ikey || NULL == dmi) {
@@ -1787,152 +1767,137 @@ upll_rc_t VbrPolicingMapMoMgr::GetRenamedControllerKey(
     return UPLL_RC_ERR_GENERIC;
   }
 
-  DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr | kOpMatchDomain, kOpInOutCtrlr };
-
-  // Check the rename
-  result_code = IsRenamed(ikey, dt_type, dmi, rename);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("IsRenamed failed (%d)", result_code);
-    return result_code;
-  }
+  DbSubOp dbop = { kOpReadSingle,
+    kOpMatchCtrlr | kOpMatchDomain,
+    kOpInOutCtrlr };
 
-  if (rename == 0) {
-    UPLL_LOG_DEBUG("GetRenamedControllerKey No Rename");
-     return UPLL_RC_SUCCESS;
-  }
   UPLL_LOG_TRACE("Start Input ConfigKeyVal %s", ikey->ToStrAll().c_str());
 
-  if ((rename & VTN_RENAME) || (rename & VBR_RENAME)) {
-    MoMgrImpl *mgr =
+  MoMgrImpl *mgr =
       reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-          UNC_KT_VBRIDGE)));
-    if (NULL == mgr) {
-      UPLL_LOG_DEBUG("mgr NULL");
-      return UPLL_RC_ERR_GENERIC;
-    }
-
-    // Get memory allocated vbr key structure
-    result_code = mgr->GetChildConfigKey(okey, NULL);
-    if (result_code != UPLL_RC_SUCCESS) {
-       UPLL_LOG_DEBUG("GetChildConfigKey failed (%d)", result_code);
-       return result_code;
-    }
-
-    if (!okey) return UPLL_RC_ERR_GENERIC;
+                  UNC_KT_VBRIDGE)));
+  if (NULL == mgr) {
+    UPLL_LOG_DEBUG("mgr NULL");
+    return UPLL_RC_ERR_GENERIC;
+  }
 
-    if (NULL != ctrlr_dom) {
-      SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom)
-    }
-    else {
-      UPLL_LOG_DEBUG("ctrlr null");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
+  // Get memory allocated vbr key structure
+  result_code = mgr->GetChildConfigKey(okey, NULL);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_DEBUG("GetChildConfigKey failed (%d)", result_code);
+    return result_code;
+  }
 
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
-    if (UNC_KT_VBR_POLICINGMAP == ikey->get_key_type()) {
-      UPLL_LOG_DEBUG("UNC_KT_VBR_POLICINGMAP (%d)", ikey->get_key_type());
-      uuu::upll_strncpy(
-       reinterpret_cast<key_vbr_t *>(okey->get_key())->vtn_key.vtn_name,
-       reinterpret_cast<key_vbr_t *>(ikey->get_key())->vtn_key.vtn_name,
-       (kMaxLenVtnName + 1));
+  if (NULL != ctrlr_dom) {
+    SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom)
+  } else {
+    UPLL_LOG_DEBUG("ctrlr null");
+    DELETE_IF_NOT_NULL(okey);
+    return UPLL_RC_ERR_GENERIC;
+  }
 
-      UPLL_LOG_DEBUG("vtn name (%s) (%s)",
-        reinterpret_cast<key_vbr *>(okey->get_key())->vtn_key.vtn_name,
-        reinterpret_cast<key_vbr_t *>(ikey->get_key())->vtn_key.vtn_name);
+  UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
+                 ctrlr_dom->domain);
+  if (UNC_KT_VBR_POLICINGMAP == ikey->get_key_type()) {
+    UPLL_LOG_DEBUG("UNC_KT_VBR_POLICINGMAP (%d)", ikey->get_key_type());
+    uuu::upll_strncpy(
+        reinterpret_cast<key_vbr_t *>(okey->get_key())->vtn_key.vtn_name,
+        reinterpret_cast<key_vbr_t *>(ikey->get_key())->vtn_key.vtn_name,
+        (kMaxLenVtnName + 1));
 
-      uuu::upll_strncpy(
-       reinterpret_cast<key_vbr *>(okey->get_key())->vbridge_name,
-       reinterpret_cast<key_vbr_t *>(ikey->get_key())->vbridge_name,
-       (kMaxLenVnodeName + 1));
+    UPLL_LOG_DEBUG("vtn name (%s) (%s)",
+                   reinterpret_cast<key_vbr *>
+                   (okey->get_key())->vtn_key.vtn_name,
+                   reinterpret_cast<key_vbr_t *>
+                   (ikey->get_key())->vtn_key.vtn_name);
 
-      UPLL_LOG_DEBUG("vbr name (%s) (%s)",
+    uuu::upll_strncpy(
         reinterpret_cast<key_vbr *>(okey->get_key())->vbridge_name,
-        reinterpret_cast<key_vbr_t *>(ikey->get_key())->vbridge_name);
-    } else if (UNC_KT_VBR_POLICINGMAP_ENTRY == ikey->get_key_type()) {
-     UPLL_LOG_DEBUG("UNC_KT_VBR_POLICINGMAP_ENTRY (%d)", ikey->get_key_type());
-      uuu::upll_strncpy(
-       reinterpret_cast<key_vbr_t *>(okey->get_key())->vtn_key.vtn_name,
-       reinterpret_cast<key_vbr_policingmap_entry_t *>
-       (ikey->get_key())->vbr_key.vtn_key.vtn_name,
-       (kMaxLenVtnName + 1));
+        reinterpret_cast<key_vbr_t *>(ikey->get_key())->vbridge_name,
+        (kMaxLenVnodeName + 1));
 
-      UPLL_LOG_DEBUG("vbr_pm_entry vtn name (%s) (%s)",
-        reinterpret_cast<key_vbr *>(okey->get_key())->vtn_key.vtn_name,
+    UPLL_LOG_DEBUG("vbr name (%s) (%s)",
+                   reinterpret_cast<key_vbr *>(okey->get_key())->vbridge_name,
+                   reinterpret_cast<key_vbr_t *>
+                   (ikey->get_key())->vbridge_name);
+  } else if (UNC_KT_VBR_POLICINGMAP_ENTRY == ikey->get_key_type()) {
+    UPLL_LOG_DEBUG("UNC_KT_VBR_POLICINGMAP_ENTRY (%d)", ikey->get_key_type());
+    uuu::upll_strncpy(
+        reinterpret_cast<key_vbr_t *>(okey->get_key())->vtn_key.vtn_name,
         reinterpret_cast<key_vbr_policingmap_entry_t *>
-        (ikey->get_key())->vbr_key.vtn_key.vtn_name);
+        (ikey->get_key())->vbr_key.vtn_key.vtn_name,
+        (kMaxLenVtnName + 1));
 
-      uuu::upll_strncpy(
-        reinterpret_cast<key_vbr *>(okey->get_key())->vbridge_name,
-        reinterpret_cast<key_vbr_policingmap_entry_t *>(ikey->get_key())->vbr_key.vbridge_name,
-       (kMaxLenVnodeName + 1));
+    UPLL_LOG_DEBUG("vbr_pm_entry vtn name (%s) (%s)",
+                   reinterpret_cast<key_vbr *>
+                   (okey->get_key())->vtn_key.vtn_name,
+                   reinterpret_cast<key_vbr_policingmap_entry_t *>
+                   (ikey->get_key())->vbr_key.vtn_key.vtn_name);
 
-      UPLL_LOG_DEBUG("vbr_pm_entry vbr name (%s) (%s)",
+    uuu::upll_strncpy(
         reinterpret_cast<key_vbr *>(okey->get_key())->vbridge_name,
-        reinterpret_cast<key_vbr_policingmap_entry_t *>(ikey->get_key())->vbr_key.vbridge_name);
-    }
+        reinterpret_cast<key_vbr_policingmap_entry_t *>
+        (ikey->get_key())->vbr_key.vbridge_name,
+        (kMaxLenVnodeName + 1));
 
-    // Read the renamed vtn/vbr
-    result_code = mgr->ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop, dmi,
-                                    RENAMETBL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-        UPLL_LOG_DEBUG("ReadConfigDB no instance");
-        DELETE_IF_NOT_NULL(okey);
-        return UPLL_RC_SUCCESS;
-      }
-      UPLL_LOG_DEBUG("ReadConfigDB failed (%d)", result_code);
-      DELETE_IF_NOT_NULL(okey);
-      return result_code;
-    }
+    UPLL_LOG_DEBUG("vbr_pm_entry vbr name (%s) (%s)",
+                   reinterpret_cast<key_vbr *>(okey->get_key())->vbridge_name,
+                   reinterpret_cast<key_vbr_policingmap_entry_t *>
+                   (ikey->get_key())->vbr_key.vbridge_name);
+  }
+
+  // Read the renamed vtn/vbr
+  result_code = mgr->ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop, dmi,
+                                  RENAMETBL);
+  if ((result_code != UPLL_RC_SUCCESS) &&
+      (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
+    UPLL_LOG_DEBUG("ReadConfigDB failed (%d)", result_code);
+    DELETE_IF_NOT_NULL(okey);
+    return result_code;
+  }
+  if (UPLL_RC_SUCCESS == result_code) {
     // Get the key from okey
     val_rename_vnode_t *rename_val =
-      reinterpret_cast<val_rename_vnode_t *>(GetVal(okey));
+        reinterpret_cast<val_rename_vnode_t *>(GetVal(okey));
     if (!rename_val) {
       UPLL_LOG_DEBUG("rename_val NULL");
       DELETE_IF_NOT_NULL(okey);
       return UPLL_RC_ERR_GENERIC;
     }
 
-    if (rename & VTN_RENAME) { /* vtn renamed */
-    UPLL_LOG_DEBUG("vtn name renamed");
-    
-      if (UNC_KT_VBR_POLICINGMAP == ikey->get_key_type()) {
-        uuu::upll_strncpy(reinterpret_cast<key_vbr_t *>
-              (ikey->get_key())->vtn_key.vtn_name,
-              rename_val->ctrlr_vtn_name,
-              (kMaxLenVtnName + 1));
-      } else if (UNC_KT_VBR_POLICINGMAP_ENTRY == ikey->get_key_type()) {
-        uuu::upll_strncpy(reinterpret_cast<key_vbr_policingmap_entry_t *>
-              (ikey->get_key())->vbr_key.vtn_key.vtn_name,
-              rename_val->ctrlr_vtn_name,
-              (kMaxLenVtnName + 1));
-      }
-    }
-    if (rename & VBR_RENAME) { /* vnode renamed */
-    UPLL_LOG_DEBUG("vbr name renamed");
-      if (UNC_KT_VBR_POLICINGMAP == ikey->get_key_type()) {
-         uuu::upll_strncpy(reinterpret_cast<char *>
-         (reinterpret_cast<key_vbr_t *>(ikey->get_key())->vbridge_name),
-         reinterpret_cast<const char *>(rename_val->ctrlr_vnode_name),
-         kMaxLenVnodeName + 1);
-      } else if (UNC_KT_VBR_POLICINGMAP_ENTRY == ikey->get_key_type()) {
-         uuu::upll_strncpy(reinterpret_cast<char *>
-         (reinterpret_cast<key_vbr_policingmap_entry_t *>
-         (ikey->get_key())->vbr_key.vbridge_name),
-         reinterpret_cast<const char *>(rename_val->ctrlr_vnode_name),
-         kMaxLenVnodeName + 1);
-      }
+
+    if (UNC_KT_VBR_POLICINGMAP == ikey->get_key_type()) {
+      uuu::upll_strncpy(reinterpret_cast<key_vbr_t *>
+                        (ikey->get_key())->vtn_key.vtn_name,
+                        rename_val->ctrlr_vtn_name,
+                        (kMaxLenVtnName + 1));
+      uuu::upll_strncpy(reinterpret_cast<char *>
+                        (reinterpret_cast<key_vbr_t *>
+                         (ikey->get_key())->vbridge_name),
+                        reinterpret_cast<const char *>
+                        (rename_val->ctrlr_vnode_name),
+                        kMaxLenVnodeName + 1);
+    } else if (UNC_KT_VBR_POLICINGMAP_ENTRY == ikey->get_key_type()) {
+      uuu::upll_strncpy(reinterpret_cast<key_vbr_policingmap_entry_t *>
+                        (ikey->get_key())->vbr_key.vtn_key.vtn_name,
+                        rename_val->ctrlr_vtn_name,
+                        (kMaxLenVtnName + 1));
+      uuu::upll_strncpy(reinterpret_cast<char *>
+                        (reinterpret_cast<key_vbr_policingmap_entry_t *>
+                         (ikey->get_key())->vbr_key.vbridge_name),
+                        reinterpret_cast<const char *>
+                        (rename_val->ctrlr_vnode_name),
+                        kMaxLenVnodeName + 1);
     }
-    DELETE_IF_NOT_NULL(okey);
   }
+  DELETE_IF_NOT_NULL(okey);
+  mgr = NULL;
 
   if (UNC_KT_VBR_POLICINGMAP == ikey->get_key_type()) {
-  if (rename & POLICINGPROFILE_RENAME) {
     UPLL_LOG_DEBUG("policing profile name renamed");
-    MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
-          (GetMoManager(UNC_KT_POLICING_PROFILE)));
+    MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(
+        const_cast<MoManager *>
+        (GetMoManager(UNC_KT_POLICING_PROFILE)));
     if (NULL == mgr) {
       UPLL_LOG_DEBUG("mgr NULL");
       return UPLL_RC_ERR_GENERIC;
@@ -1943,62 +1908,50 @@ upll_rc_t VbrPolicingMapMoMgr::GetRenamedControllerKey(
       UPLL_LOG_DEBUG("GetChildConfigKey failed (%d)", result_code);
       return result_code;
     }
-    if (!okey) return UPLL_RC_ERR_GENERIC;
-
-    if (NULL != ctrlr_dom) {
-      SET_USER_DATA_CTRLR(okey, ctrlr_dom->ctrlr);
-    } else {
-      UPLL_LOG_DEBUG("ctrlr null");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
+    SET_USER_DATA_CTRLR(okey, ctrlr_dom->ctrlr);
 
     val_policingmap_t *val_policingmap =
-      reinterpret_cast<val_policingmap_t *>(GetVal(ikey));
+        reinterpret_cast<val_policingmap_t *>(GetVal(ikey));
 
-    if (!val_policingmap)
-       return UPLL_RC_SUCCESS;
+    if (!val_policingmap) {
+      DELETE_IF_NOT_NULL(okey);
+      return UPLL_RC_SUCCESS;
+    }
 
     key_policingprofile_t *key_policingprofile =
-      reinterpret_cast<key_policingprofile_t *>(okey->get_key());
+        reinterpret_cast<key_policingprofile_t *>(okey->get_key());
 
     uuu::upll_strncpy(key_policingprofile->policingprofile_name,
-                    val_policingmap->policer_name,
-                    (kMaxLenPolicingProfileName + 1));
+                      val_policingmap->policer_name,
+                      (kMaxLenPolicingProfileName + 1));
 
     DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutCtrlr };
     result_code = mgr->ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop, dmi,
-                                  RENAMETBL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-        UPLL_LOG_DEBUG("ReadConfigDB no instance");
-        DELETE_IF_NOT_NULL(okey);
-        return UPLL_RC_SUCCESS;
-      }
+                                    RENAMETBL);
+    if ((result_code != UPLL_RC_SUCCESS) &&
+        (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
       UPLL_LOG_DEBUG("ReadConfigDB failed (%d)", result_code);
       DELETE_IF_NOT_NULL(okey);
       return result_code;
     }
-    val_rename_policingprofile_t *rename_policingprofile =
-      reinterpret_cast<val_rename_policingprofile_t *>(GetVal(okey));
-    if (!rename_policingprofile) {
-      DELETE_IF_NOT_NULL(okey);
-      UPLL_LOG_DEBUG("profile is not valid");
-      return UPLL_RC_ERR_GENERIC;
-    }
-
-    uuu::upll_strncpy(
-       reinterpret_cast<char *>(val_policingmap->policer_name),
-       reinterpret_cast<const char *>(rename_policingprofile
-       ->policingprofile_newname),
-       (kMaxLenPolicingProfileName + 1));
+    if (UPLL_RC_SUCCESS == result_code) {
+      val_rename_policingprofile_t *rename_policingprofile =
+          reinterpret_cast<val_rename_policingprofile_t *>(GetVal(okey));
+      if (!rename_policingprofile) {
+        DELETE_IF_NOT_NULL(okey);
+        UPLL_LOG_DEBUG("profile is not valid");
+        return UPLL_RC_ERR_GENERIC;
+      }
 
+      uuu::upll_strncpy(
+          reinterpret_cast<char *>(val_policingmap->policer_name),
+          reinterpret_cast<const char *>(rename_policingprofile
+                                         ->policingprofile_newname),
+          (kMaxLenPolicingProfileName + 1));
+    }
     mgr = NULL;
     DELETE_IF_NOT_NULL(okey);
   }
-  }
   UPLL_LOG_TRACE("End Input ConfigKeyVal %s", ikey->ToStrAll().c_str());
   return UPLL_RC_SUCCESS;
 }
@@ -2009,19 +1962,20 @@ bool VbrPolicingMapMoMgr::CompareValidValue(void *&val1, void *val2,
   bool invalid_attr = true;
   val_policingmap_t *val_pm1 = reinterpret_cast<val_policingmap_t *>(val1);
   val_policingmap_t *val_pm2 = reinterpret_cast<val_policingmap_t *>(val2);
-//  if (audit) {
-    if (UNC_VF_INVALID == val_pm1->valid[UPLL_IDX_POLICERNAME_PM] &&
+  //  if (audit) {
+  if (UNC_VF_INVALID == val_pm1->valid[UPLL_IDX_POLICERNAME_PM] &&
       UNC_VF_VALID == val_pm2->valid[UPLL_IDX_POLICERNAME_PM])
-      val_pm1->valid[UPLL_IDX_POLICERNAME_PM] = UNC_VF_VALID_NO_VALUE;
-//  }
+    val_pm1->valid[UPLL_IDX_POLICERNAME_PM] = UNC_VF_VALID_NO_VALUE;
+  //  }
   if (UNC_VF_VALID == val_pm1->valid[UPLL_IDX_POLICERNAME_PM] &&
       UNC_VF_VALID == val_pm2->valid[UPLL_IDX_POLICERNAME_PM]) {
     if (!strcmp(reinterpret_cast<char*>(val_pm1->policer_name),
-               reinterpret_cast<char*>(val_pm2->policer_name)))
-       val_pm1->valid[UPLL_IDX_POLICERNAME_PM] = UNC_VF_INVALID;
+                reinterpret_cast<char*>(val_pm2->policer_name)))
+      val_pm1->valid[UPLL_IDX_POLICERNAME_PM] = UNC_VF_INVALID;
   }
-   if ((UNC_VF_VALID == (uint8_t)val_pm1->valid[UPLL_IDX_POLICERNAME_PM]) ||
-    (UNC_VF_VALID_NO_VALUE == (uint8_t)val_pm1->valid[UPLL_IDX_POLICERNAME_PM]))
+  if ((UNC_VF_VALID == (uint8_t)val_pm1->valid[UPLL_IDX_POLICERNAME_PM]) ||
+      (UNC_VF_VALID_NO_VALUE == (uint8_t)val_pm1->
+       valid[UPLL_IDX_POLICERNAME_PM]))
     invalid_attr = false;
 
   return invalid_attr;
@@ -2029,9 +1983,11 @@ bool VbrPolicingMapMoMgr::CompareValidValue(void *&val1, void *val2,
 
 #if 0
 upll_rc_t VbrPolicingMapMoMgr::UpdateConfigStatus(ConfigKeyVal *ckv,
-    unc_keytype_operation_t op, uint32_t driver_result,
-    ConfigKeyVal *nreq, DalDmlIntf *dmi,
-    ConfigKeyVal *ctrlr_key) {
+                                                  unc_keytype_operation_t op,
+                                                  uint32_t driver_result,
+                                                  ConfigKeyVal *nreq,
+                                                  DalDmlIntf *dmi,
+                                                  ConfigKeyVal *ctrlr_key) {
   UPLL_FUNC_TRACE;
   val_policingmap_t *val = NULL;
   unc_keytype_configstatus_t cs_status =
@@ -2044,9 +2000,9 @@ upll_rc_t VbrPolicingMapMoMgr::UpdateConfigStatus(ConfigKeyVal *ckv,
       val->cs_attr[0] = cs_status;
     }
   } else {
-      UPLL_LOG_DEBUG("Operation Not Supported.");
-      return UPLL_RC_ERR_GENERIC;
-    }
+    UPLL_LOG_DEBUG("Operation Not Supported.");
+    return UPLL_RC_ERR_GENERIC;
+  }
 
   UPLL_LOG_DEBUG("Update Config Status Successfull.");
   return UPLL_RC_SUCCESS;
@@ -2054,9 +2010,10 @@ upll_rc_t VbrPolicingMapMoMgr::UpdateConfigStatus(ConfigKeyVal *ckv,
 #endif
 
 upll_rc_t VbrPolicingMapMoMgr::UpdateAuditConfigStatus(
-                               unc_keytype_configstatus_t cs_status,
-                               uuc::UpdateCtrlrPhase phase,
-                               ConfigKeyVal *&ckv_running) {
+    unc_keytype_configstatus_t cs_status,
+    uuc::UpdateCtrlrPhase phase,
+    ConfigKeyVal *&ckv_running,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   if (NULL == ckv_running)
@@ -2070,14 +2027,14 @@ upll_rc_t VbrPolicingMapMoMgr::UpdateAuditConfigStatus(
   if (uuc::kUpllUcpCreate == phase )
     val->cs_row_status = cs_status;
   if ((uuc::kUpllUcpUpdate == phase) &&
-           (val->cs_row_status == UNC_CS_INVALID ||
-            val->cs_row_status == UNC_CS_NOT_APPLIED))
+      (val->cs_row_status == UNC_CS_INVALID ||
+       val->cs_row_status == UNC_CS_NOT_APPLIED))
     val->cs_row_status = cs_status;
   for ( unsigned int loop = 0;
-      loop < sizeof(val->valid)/sizeof(uint8_t); ++loop ) {
+       loop < sizeof(val->valid)/sizeof(uint8_t); ++loop ) {
     if ((cs_status == UNC_CS_INVALID && UNC_VF_VALID == val->valid[loop]) ||
-         cs_status == UNC_CS_APPLIED)
-       val->cs_attr[loop] = cs_status;
+        cs_status == UNC_CS_APPLIED)
+      val->cs_attr[loop] = cs_status;
   }
   return result_code;
 }
@@ -2085,58 +2042,8 @@ upll_rc_t VbrPolicingMapMoMgr::UpdateAuditConfigStatus(
 upll_rc_t VbrPolicingMapMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
                                                  DalDmlIntf *dmi,
                                                  IpcReqRespHeader *req) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-
-  ConfigKeyVal *okey = NULL;
-  if (!ikey || !ikey->get_key()) {
-    UPLL_LOG_DEBUG("input key is null");
-    return UPLL_RC_ERR_GENERIC;
-  }
-
-  key_vbr_t *vbr_key_pm = reinterpret_cast<key_vbr_t*>(ikey->get_key());
-
-  MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>
-      (const_cast<MoManager *>(GetMoManager(UNC_KT_VBRIDGE)));
-
-  result_code = mgr->GetChildConfigKey(okey, NULL);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Memory allocation failed for KT_VBRIDGE key struct - %d",
-                    result_code);
-    return result_code;
-  }
-
-  key_vbr_t *vbr_key =
-      reinterpret_cast<key_vbr_t *>(okey->get_key());
-
-  uuu::upll_strncpy(vbr_key->vtn_key.vtn_name,
-        vbr_key_pm->vtn_key.vtn_name,
-        kMaxLenVtnName + 1);
-
-  uuu::upll_strncpy(vbr_key->vbridge_name,
-        vbr_key_pm->vbridge_name,
-        kMaxLenVnodeName + 1);
-
-  /* Checks the given key_vbr exists in DB or not */
-  result_code = mgr->UpdateConfigDB(okey, req->datatype, UNC_OP_READ,
-                                    dmi, MAINTBL);
-
-  if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
-    UPLL_LOG_DEBUG(" Parent KT_VBRIDGE key does not exists");
-    result_code = UPLL_RC_ERR_PARENT_DOES_NOT_EXIST;
-  } else {
-    result_code = UPLL_RC_SUCCESS;
-  }
-
-  delete okey;
-
-  result_code = SetRenameFlag(ikey, dmi, req);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("SetRenameFlag failed %d", result_code);
-    return result_code;
-  }
-  UPLL_LOG_DEBUG("ValidateAttribute Successfull.");
-  return result_code;
+  // No operation
+  return UPLL_RC_SUCCESS;
 }
 
 bool VbrPolicingMapMoMgr::CompareKey(void *key1, void *key2) {
@@ -2170,7 +2077,7 @@ upll_rc_t VbrPolicingMapMoMgr::GetValid(void *val, uint64_t indx,
       case uudst::vbr_policingmap::kDbiPolicername:
         valid =
             &(reinterpret_cast<val_policingmap_t *>(val)
-                       ->valid[UPLL_IDX_POLICERNAME_PM]);
+              ->valid[UPLL_IDX_POLICERNAME_PM]);
         break;
       default:
         valid = NULL;
@@ -2184,24 +2091,24 @@ upll_rc_t VbrPolicingMapMoMgr::GetValid(void *val, uint64_t indx,
 upll_rc_t VbrPolicingMapMoMgr::AllocVal(ConfigVal *&ck_val,
                                         upll_keytype_datatype_t dt_type,
                                         MoMgrTables tbl) {
-UPLL_FUNC_TRACE;
-void *val;
-if (ck_val != NULL) {
-  UPLL_LOG_DEBUG("ck_val is not NULL");
-  return UPLL_RC_ERR_GENERIC;
-}
-switch (tbl) {
-  case MAINTBL:
-    val = reinterpret_cast<void *>(ConfigKeyVal::Malloc
-        (sizeof(val_policingmap_t)));
+  UPLL_FUNC_TRACE;
+  void *val;
+  if (ck_val != NULL) {
+    UPLL_LOG_DEBUG("ck_val is not NULL");
+    return UPLL_RC_ERR_GENERIC;
+  }
+  switch (tbl) {
+    case MAINTBL:
+      val = reinterpret_cast<void *>(ConfigKeyVal::Malloc
+                                     (sizeof(val_policingmap_t)));
 
 
-    ck_val = new ConfigVal(IpctSt::kIpcStValPolicingmap, val);
-  break;
-  default:
-    UPLL_LOG_DEBUG("AllocVal val_policingmap_t Allocation failure");
-    val = NULL;
-    break;
+      ck_val = new ConfigVal(IpctSt::kIpcStValPolicingmap, val);
+      break;
+    default:
+      UPLL_LOG_DEBUG("AllocVal val_policingmap_t Allocation failure");
+      val = NULL;
+      break;
   }
   if (NULL == ck_val) {
     UPLL_LOG_DEBUG("AllocVal ck_val Allocation failure");
@@ -2217,7 +2124,7 @@ upll_rc_t VbrPolicingMapMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
                                                MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
   if (req == NULL || okey != NULL || req->get_key_type() !=
-                 UNC_KT_VBR_POLICINGMAP || tbl != MAINTBL) {
+      UNC_KT_VBR_POLICINGMAP || tbl != MAINTBL) {
     UPLL_LOG_DEBUG(" DupConfigKeyVal failed. Input ConfigKeyVal is NULL");
     return UPLL_RC_ERR_GENERIC;
   }
@@ -2228,14 +2135,14 @@ upll_rc_t VbrPolicingMapMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
   if (tmp) {
     if (tbl == MAINTBL) {
       val_policingmap_t *ival = reinterpret_cast<val_policingmap_t *>
-                              (GetVal(req));
+          (GetVal(req));
       if (NULL == ival) {
         UPLL_LOG_DEBUG("DupConfigKeyVal val_policingmap_t alloc failure");
         return UPLL_RC_ERR_GENERIC;
       }
       policingmap_val =
-      reinterpret_cast<val_policingmap_t *>(ConfigKeyVal::Malloc
-          (sizeof(val_policingmap_t)));
+          reinterpret_cast<val_policingmap_t *>(ConfigKeyVal::Malloc
+                                                (sizeof(val_policingmap_t)));
 
       memset(policingmap_val, 0, sizeof(val_policingmap_t));
       memcpy(policingmap_val, ival, sizeof(val_policingmap_t));
@@ -2250,7 +2157,7 @@ upll_rc_t VbrPolicingMapMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
     }
     if (tmp1) {
       tmp1->set_user_data(tmp->get_user_data());
-//      tmp = tmp->get_next_cfg_val();
+      //      tmp = tmp->get_next_cfg_val();
     }
   }
   void *tkey = (req != NULL) ? req->get_key() : NULL;
@@ -2264,7 +2171,7 @@ upll_rc_t VbrPolicingMapMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
                           tmp1);
   if (!okey) {
     if (vbr_key) free(vbr_key);
-    DELETE_IF_NOT_NULL(tmp1); 
+    DELETE_IF_NOT_NULL(tmp1);
     UPLL_LOG_DEBUG("okey failed");
     return UPLL_RC_ERR_GENERIC;
   }
@@ -2350,63 +2257,65 @@ upll_rc_t VbrPolicingMapMoMgr::ValidateMessage(IpcReqRespHeader *req,
 
   key_vbr_t *key_vbr = NULL;
   key_vbr_policingmap_entry_t *key_vbr_policingmap_entry = NULL;
-  if(req->option2 != UNC_OPT2_NONE) {
+  if (req->option2 != UNC_OPT2_NONE) {
     UPLL_LOG_DEBUG(" Error: option2 is not NONE");
     return UPLL_RC_ERR_INVALID_OPTION2;
   }
-  if((req->option1 != UNC_OPT1_NORMAL) 
-              &&(req->option1 != UNC_OPT1_DETAIL)) {
-     UPLL_LOG_DEBUG(" Error: option1 is not NORMAL");
-     return UPLL_RC_ERR_INVALID_OPTION1;
-   }
-   if((req->option1 != UNC_OPT1_NORMAL) 
-              &&(req->operation == UNC_OP_READ_SIBLING_COUNT)) {
-     UPLL_LOG_DEBUG(" Error: option1 is not NORMAL for ReadSiblingCount");
-     return UPLL_RC_ERR_INVALID_OPTION1;
-   }
+  if ((req->option1 != UNC_OPT1_NORMAL)
+     &&(req->option1 != UNC_OPT1_DETAIL)) {
+    UPLL_LOG_DEBUG(" Error: option1 is not NORMAL");
+    return UPLL_RC_ERR_INVALID_OPTION1;
+  }
+  if ((req->option1 != UNC_OPT1_NORMAL)
+     &&(req->operation == UNC_OP_READ_SIBLING_COUNT)) {
+    UPLL_LOG_DEBUG(" Error: option1 is not NORMAL for ReadSiblingCount");
+    return UPLL_RC_ERR_INVALID_OPTION1;
+  }
 
   /** check key type is UNC_KT_VBR_POLICINGMAP */
   if (UNC_KT_VBR_POLICINGMAP == key->get_key_type()) {
-    if ((req->datatype == UPLL_DT_IMPORT) && (req->operation == UNC_OP_READ || 
-         req->operation == UNC_OP_READ_SIBLING ||
-         req->operation == UNC_OP_READ_SIBLING_BEGIN ||
-         req->operation == UNC_OP_READ_NEXT ||
-         req->operation == UNC_OP_READ_BULK ||
-         req->operation == UNC_OP_READ_SIBLING_COUNT)) {
+    if ((req->datatype == UPLL_DT_IMPORT) && (
+            req->operation == UNC_OP_READ ||
+            req->operation == UNC_OP_READ_SIBLING ||
+            req->operation == UNC_OP_READ_SIBLING_BEGIN ||
+            req->operation == UNC_OP_READ_NEXT ||
+            req->operation == UNC_OP_READ_BULK ||
+            req->operation == UNC_OP_READ_SIBLING_COUNT)) {
       return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
     }
 
     if ((req->option1 == UNC_OPT1_DETAIL) &&
         (req->datatype != UPLL_DT_STATE)) {
-       UPLL_LOG_DEBUG(" Invalid Datatype(%d)", req->datatype);
-       return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
+      UPLL_LOG_DEBUG(" Invalid Datatype(%d)", req->datatype);
+      return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
     }
 
     if (key->get_st_num() != IpctSt::kIpcStKeyVbr) {
       UPLL_LOG_DEBUG(" Invalid key structure received. struct num:%d",
-          key->get_st_num());
+                     key->get_st_num());
       return UPLL_RC_ERR_BAD_REQUEST;
     }
     /** Read key structure */
     key_vbr = reinterpret_cast<key_vbr_t *>(key->get_key());
 
   } else if (UNC_KT_VBR_POLICINGMAP_ENTRY == key->get_key_type()) {
-    if ((req->datatype == UPLL_DT_IMPORT) && (req->operation == UNC_OP_READ || 
-         req->operation == UNC_OP_READ_SIBLING ||
-         req->operation == UNC_OP_READ_SIBLING_BEGIN ||
-         req->operation == UNC_OP_READ_NEXT ||
-         req->operation == UNC_OP_READ_BULK ||
-         req->operation == UNC_OP_READ_SIBLING_COUNT)) {
+    if ((req->datatype == UPLL_DT_IMPORT) && (
+            req->operation == UNC_OP_READ ||
+            req->operation == UNC_OP_READ_SIBLING ||
+            req->operation == UNC_OP_READ_SIBLING_BEGIN ||
+            req->operation == UNC_OP_READ_NEXT ||
+            req->operation == UNC_OP_READ_BULK ||
+            req->operation == UNC_OP_READ_SIBLING_COUNT)) {
       return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
     }
 
     if (req->datatype != UPLL_DT_STATE) {
-       UPLL_LOG_DEBUG(" Unsupported Datatype (%d)", req->datatype);
-       return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
+      UPLL_LOG_DEBUG(" Unsupported Datatype (%d)", req->datatype);
+      return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
     }
     if (key->get_st_num() != IpctSt::kIpcStKeyVbrPolicingmapEntry) {
       UPLL_LOG_DEBUG(" Invalid key structure received. struct num:%d",
-          key->get_st_num());
+                     key->get_st_num());
       return UPLL_RC_ERR_BAD_REQUEST;
     }
     key_vbr_policingmap_entry =
@@ -2427,7 +2336,7 @@ upll_rc_t VbrPolicingMapMoMgr::ValidateMessage(IpcReqRespHeader *req,
   /** validate key struct */
   VbrMoMgr *mgrvbr =
       reinterpret_cast<VbrMoMgr *>(const_cast<MoManager*>(GetMoManager(
-          UNC_KT_VBRIDGE)));
+                  UNC_KT_VBRIDGE)));
 
   if (NULL == mgrvbr) {
     UPLL_LOG_DEBUG("unable to get VbrMoMgr object to validate key_vbr");
@@ -2438,8 +2347,8 @@ upll_rc_t VbrPolicingMapMoMgr::ValidateMessage(IpcReqRespHeader *req,
 
   if (UPLL_RC_SUCCESS != rt_code) {
     UPLL_LOG_DEBUG(" Vbr key syntax validation failed :"
-                  "Err Code - %d",
-                  rt_code);
+                   "Err Code - %d",
+                   rt_code);
     return rt_code;
   }
 
@@ -2458,7 +2367,7 @@ upll_rc_t VbrPolicingMapMoMgr::ValidateMessage(IpcReqRespHeader *req,
       key_vbr_policingmap_entry->sequence_num = 0;
     }
 
-  UPLL_LOG_DEBUG(
+    UPLL_LOG_DEBUG(
         "key struct validation is success for UNC_KT_VBR_POLICINGMAP_ENTRY");
     return UPLL_RC_SUCCESS;
   }
@@ -2471,15 +2380,15 @@ upll_rc_t VbrPolicingMapMoMgr::ValidateMessage(IpcReqRespHeader *req,
 
   if (UPLL_RC_SUCCESS != rt_code) {
     UPLL_LOG_DEBUG(" val_policingmap syntax validation failed :"
-                  "Err Code - %d",
-                  rt_code);
+                   "Err Code - %d",
+                   rt_code);
   }
   return rt_code;
 }
 
 upll_rc_t VbrPolicingMapMoMgr::ValidateCapability(IpcReqRespHeader *req,
-                                           ConfigKeyVal *ikey,
-                                           const char *ctrlr_name) {
+                                                  ConfigKeyVal *ikey,
+                                                  const char *ctrlr_name) {
   UPLL_FUNC_TRACE;
 
   upll_rc_t rt_code = UPLL_RC_ERR_GENERIC;
@@ -2502,19 +2411,14 @@ upll_rc_t VbrPolicingMapMoMgr::ValidateCapability(IpcReqRespHeader *req,
   const uint8_t *attrs = NULL;
   uint32_t max_attrs = 0;
 
-  UPLL_LOG_TRACE("Ctrl_name(%s),operation:(%d)", ctrlr_name, req->operation);
+  UPLL_LOG_TRACE("Ctrl_name(%s), operation:(%d)", ctrlr_name, req->operation);
 
   switch (req->operation) {
     case UNC_OP_CREATE:
-      result_code = GetCreateCapability(ctrlr_name, ikey->get_key_type(),
-                                        &max_instance_count, &max_attrs, &attrs);
-
-      if (result_code && (max_instance_count != 0) &&
-          (cur_instance_count >= max_instance_count)) {
-        UPLL_LOG_DEBUG("Instance count %d exceeds %d", cur_instance_count,
-                      max_instance_count);
-        return UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
-      }
+      result_code = GetCreateCapability(ctrlr_name,
+                                        ikey->get_key_type(),
+                                        &max_instance_count,
+                                        &max_attrs, &attrs);
       break;
     case UNC_OP_UPDATE:
       result_code = GetUpdateCapability(ctrlr_name, ikey->get_key_type(),
@@ -2523,39 +2427,41 @@ upll_rc_t VbrPolicingMapMoMgr::ValidateCapability(IpcReqRespHeader *req,
     default:
       if (req->datatype == UPLL_DT_STATE)
         result_code = GetStateCapability(ctrlr_name, ikey->get_key_type(),
-                                      &max_attrs, &attrs);
+                                         &max_attrs, &attrs);
       else
         result_code = GetReadCapability(ctrlr_name, ikey->get_key_type(),
-                                      &max_attrs, &attrs);
+                                        &max_attrs, &attrs);
       break;
   }
 
   if (!result_code) {
     UPLL_LOG_DEBUG("keytype(%d) is not supported by controller(%s)"
-        " for operation(%d)",
-        ikey->get_key_type(), ctrlr_name, req->operation);
+                   " for operation(%d)",
+                   ikey->get_key_type(), ctrlr_name, req->operation);
     return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
   }
 
-  val_policingmap_t *val_policingmap = reinterpret_cast<val_policingmap_t *>(GetVal(ikey));
+  val_policingmap_t *val_policingmap = reinterpret_cast<val_policingmap_t *>
+      (GetVal(ikey));
 
   if (val_policingmap) {
-   if (max_attrs > 0) {
-    if ((val_policingmap->valid[UPLL_IDX_POLICERNAME_PM] == UNC_VF_VALID)
-        || (val_policingmap->valid[UPLL_IDX_POLICERNAME_PM]
-          == UNC_VF_VALID_NO_VALUE)) {
-      if (attrs[unc::capa::vtn_policingmap::kCapPolicername] == 0) {
-        val_policingmap->valid[UPLL_IDX_POLICERNAME_PM] =
-          UNC_VF_NOT_SUPPORTED;
-        UPLL_LOG_DEBUG("Policername attr is not supported by ctrlr");
-        return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
+    if (max_attrs > 0) {
+      if ((val_policingmap->valid[UPLL_IDX_POLICERNAME_PM] == UNC_VF_VALID)
+          || (val_policingmap->valid[UPLL_IDX_POLICERNAME_PM]
+              == UNC_VF_VALID_NO_VALUE)) {
+        if (attrs[unc::capa::vtn_policingmap::kCapPolicername] == 0) {
+          val_policingmap->valid[UPLL_IDX_POLICERNAME_PM] =
+              UNC_VF_NOT_SUPPORTED;
+          UPLL_LOG_DEBUG("Policername attr is not supported by ctrlr");
+          return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
+        }
       }
+    } else {
+      UPLL_LOG_DEBUG("Attribute list is empty for operation %d",
+                     req->operation);
+      return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
     }
-  } else {
-    UPLL_LOG_DEBUG("Attribute list is empty for operation %d", req->operation);
-    return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
   }
-}
   return UPLL_RC_SUCCESS;
 }
 
@@ -2565,7 +2471,8 @@ bool VbrPolicingMapMoMgr::IsValidKey(void *key, uint64_t index) {
   upll_rc_t ret_val = UPLL_RC_SUCCESS;
   switch (index) {
     case uudst::vbridge::kDbiVtnName:
-      ret_val = ValidateKey(reinterpret_cast<char *>(vbr_key->vtn_key.vtn_name),
+      ret_val = ValidateKey(reinterpret_cast<char *>
+                            (vbr_key->vtn_key.vtn_name),
                             kMinLenVtnName, kMaxLenVtnName);
       if (ret_val != UPLL_RC_SUCCESS) {
         UPLL_LOG_TRACE("VTN Name is not valid(%d)", ret_val);
@@ -2573,7 +2480,8 @@ bool VbrPolicingMapMoMgr::IsValidKey(void *key, uint64_t index) {
       }
       break;
     case uudst::vbridge::kDbiVbrName:
-      ret_val = ValidateKey(reinterpret_cast<char *>(vbr_key->vbridge_name),
+      ret_val = ValidateKey(reinterpret_cast<char *>
+                            (vbr_key->vbridge_name),
                             kMinLenVnodeName,
                             kMaxLenVnodeName);
       if (ret_val != UPLL_RC_SUCCESS) {
@@ -2589,20 +2497,20 @@ bool VbrPolicingMapMoMgr::IsValidKey(void *key, uint64_t index) {
 }
 
 upll_rc_t VbrPolicingMapMoMgr::IsKeyInUse(upll_keytype_datatype_t dt_type,
-                     const ConfigKeyVal *ckv,
-                     bool *in_use,
-                     DalDmlIntf *dmi) {
-    return UPLL_RC_SUCCESS;
+                                          const ConfigKeyVal *ckv,
+                                          bool *in_use,
+                                          DalDmlIntf *dmi) {
+  return UPLL_RC_SUCCESS;
 }
 upll_rc_t VbrPolicingMapMoMgr::ConstructReadDetailEntryResponse(
-                                         ConfigKeyVal *ikey,
-                                         ConfigKeyVal *dup_key,
-                                         ConfigKeyVal *drv_resp_ckv,
-                                         upll_keytype_datatype_t dt_type,
-                                         unc_keytype_operation_t op,
-                                         DbSubOp dbop,
-                                         DalDmlIntf *dmi,
-                                         ConfigKeyVal **okey  ) {
+    ConfigKeyVal *ikey,
+    ConfigKeyVal *dup_key,
+    ConfigKeyVal *drv_resp_ckv,
+    upll_keytype_datatype_t dt_type,
+    unc_keytype_operation_t op,
+    DbSubOp dbop,
+    DalDmlIntf *dmi,
+    ConfigKeyVal **okey  ) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *tmp_okey = NULL;
@@ -2707,13 +2615,13 @@ upll_rc_t VbrPolicingMapMoMgr::ConstructReadDetailEntryResponse(
         val_policingmap_switch_st_t *drv_val_switch_st =
             reinterpret_cast<val_policingmap_switch_st_t*>
             (drv_resp_val->get_val());
-        memcpy(val_switch_st, drv_val_switch_st, 
+        memcpy(val_switch_st, drv_val_switch_st,
                sizeof(val_policingmap_switch_st_t));
-        if(drv_val_switch_st->valid[UPLL_IDX_IF_NAME_PMSS] == UNC_VF_VALID) {
+        if (drv_val_switch_st->valid[UPLL_IDX_IF_NAME_PMSS] == UNC_VF_VALID) {
           key_vbr_policingmap_entry *vbr_pme_key =
               reinterpret_cast<key_vbr_policingmap_entry *>(ikey->get_key());
           ConfigKeyVal *vbrif_key_val = NULL;
-          unc::upll::kt_momgr::VbrIfMoMgr *vbrifmgr = 
+          unc::upll::kt_momgr::VbrIfMoMgr *vbrifmgr =
               reinterpret_cast<unc::upll::kt_momgr::VbrIfMoMgr *>
               (const_cast<MoManager *>(GetMoManager(UNC_KT_VBR_IF)));
           if (NULL == vbrifmgr) {
@@ -2728,7 +2636,7 @@ upll_rc_t VbrPolicingMapMoMgr::ConstructReadDetailEntryResponse(
               dmi);
           if ((result_code != UPLL_RC_SUCCESS) &&
               (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE)) {
-            UPLL_LOG_DEBUG("Get vBridge info failed err code (%d)", 
+            UPLL_LOG_DEBUG("Get vBridge info failed err code (%d)",
                            result_code);
             if (val_switch_st) free(val_switch_st);
             DELETE_IF_NOT_NULL(tmp_okey);
@@ -2738,23 +2646,23 @@ upll_rc_t VbrPolicingMapMoMgr::ConstructReadDetailEntryResponse(
 
           if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
             key_vbr_if_t *key_vbrif = reinterpret_cast<key_vbr_if_t*>
-              (vbrif_key_val->get_key());
+                (vbrif_key_val->get_key());
             val_switch_st->valid[UPLL_IDX_VBR_NAME_PMSS] = UNC_VF_VALID;
             uuu::upll_strncpy(val_switch_st->vbr_name,
-                            key_vbrif->vbr_key.vbridge_name,
-                            (kMaxLenVnodeName + 1));
+                              key_vbrif->vbr_key.vbridge_name,
+                              (kMaxLenVnodeName + 1));
 
             val_switch_st->valid[UPLL_IDX_IF_NAME_PMSS] = UNC_VF_VALID;
             uuu::upll_strncpy(val_switch_st->if_name,
-                            key_vbrif->if_name,
-                            (kMaxLenInterfaceName + 1));
+                              key_vbrif->if_name,
+                              (kMaxLenInterfaceName + 1));
           }
           DELETE_IF_NOT_NULL(vbrif_key_val);
         }
 
         tmp_okey->AppendCfgVal(IpctSt::kIpcStValPolicingmapSwitchSt,
                                val_switch_st);
-                               
+
         drv_resp_val = drv_resp_val->get_next_cfg_val();
         if (!drv_resp_val) {
           break;
@@ -2771,13 +2679,13 @@ upll_rc_t VbrPolicingMapMoMgr::ConstructReadDetailEntryResponse(
 }
 
 upll_rc_t VbrPolicingMapMoMgr::ConstructReadDetailResponse(
-                                         ConfigKeyVal *ikey,
-                                         ConfigKeyVal *drv_resp_ckv,
-                                         upll_keytype_datatype_t dt_type,
-                                         unc_keytype_operation_t op,
-                                         DbSubOp dbop,
-                                         DalDmlIntf *dmi,
-                                         ConfigKeyVal **okey  ) {
+    ConfigKeyVal *ikey,
+    ConfigKeyVal *drv_resp_ckv,
+    upll_keytype_datatype_t dt_type,
+    unc_keytype_operation_t op,
+    DbSubOp dbop,
+    DalDmlIntf *dmi,
+    ConfigKeyVal **okey  ) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *tmp_okey = NULL;
@@ -2876,17 +2784,17 @@ upll_rc_t VbrPolicingMapMoMgr::ConstructReadDetailResponse(
         val_policingmap_switch_st_t *drv_val_switch_st =
             reinterpret_cast<val_policingmap_switch_st_t*>
             (drv_resp_val->get_val());
-        memcpy(val_switch_st, drv_val_switch_st, 
+        memcpy(val_switch_st, drv_val_switch_st,
                sizeof(val_policingmap_switch_st_t));
-        if(drv_val_switch_st->valid[UPLL_IDX_IF_NAME_PMSS] == UNC_VF_VALID) {
+        if (drv_val_switch_st->valid[UPLL_IDX_IF_NAME_PMSS] == UNC_VF_VALID) {
           key_vbr_t *vbr_pm_key =
               reinterpret_cast<key_vbr_t*>(ikey->get_key());
           ConfigKeyVal *vbrif_key_val = NULL;
-          unc::upll::kt_momgr::VbrIfMoMgr *vbrifmgr = 
+          unc::upll::kt_momgr::VbrIfMoMgr *vbrifmgr =
               reinterpret_cast<unc::upll::kt_momgr::VbrIfMoMgr *>
               (const_cast<MoManager *>(GetMoManager(UNC_KT_VBR_IF)));
           if (NULL == vbrifmgr) {
-            free(val_switch_st); 
+            free(val_switch_st);
             free(tmp_cont_st);
             delete tmp_okey;
             return UPLL_RC_ERR_GENERIC;
@@ -2897,9 +2805,9 @@ upll_rc_t VbrPolicingMapMoMgr::ConstructReadDetailResponse(
               vbrif_key_val,
               dmi);
           if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("Get vBridge info failed err code (%d)", 
+            UPLL_LOG_DEBUG("Get vBridge info failed err code (%d)",
                            result_code);
-            free(val_switch_st); 
+            free(val_switch_st);
             free(tmp_cont_st);
             delete tmp_okey;
             return result_code;
@@ -2919,7 +2827,7 @@ upll_rc_t VbrPolicingMapMoMgr::ConstructReadDetailResponse(
           DELETE_IF_NOT_NULL(vbrif_key_val);
         }
         tmp_okey->AppendCfgVal(IpctSt::kIpcStValPolicingmapSwitchSt,
-                               val_switch_st); 
+                               val_switch_st);
         drv_resp_val = drv_resp_val->get_next_cfg_val();
         if (!drv_resp_val) {
           break;
@@ -3024,7 +2932,7 @@ upll_rc_t VbrPolicingMapMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
     UPLL_LOG_DEBUG(" Input Key is NULL");
     return UPLL_RC_ERR_GENERIC;
   }
-  DELETE_IF_NOT_NULL(okey); 
+  DELETE_IF_NOT_NULL(okey);
   unc_key_type_t ikey_type = ikey->get_key_type();
   if (ikey_type != UNC_KT_VBR_POLICINGMAP) {
     UPLL_LOG_DEBUG(" Invalid key type received. Key type - %d", ikey_type);
@@ -3046,8 +2954,8 @@ upll_rc_t VbrPolicingMapMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
   return UPLL_RC_SUCCESS;
 }
 upll_rc_t VbrPolicingMapMoMgr::ReadSiblingCount(IpcReqRespHeader *req,
-    ConfigKeyVal* ikey,
-    DalDmlIntf *dmi) {
+                                                ConfigKeyVal* ikey,
+                                                DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   controller_domain ctrlr_dom;
   upll_rc_t result_code  = UPLL_RC_SUCCESS;
@@ -3057,26 +2965,26 @@ upll_rc_t VbrPolicingMapMoMgr::ReadSiblingCount(IpcReqRespHeader *req,
                    result_code);
     return result_code;
   }
-  if (UNC_KT_VBR_POLICINGMAP_ENTRY != ikey->get_key_type()) { 
-      if(req->datatype == UPLL_DT_STATE ||
-         req->datatype == UPLL_DT_STARTUP || 
-           req->datatype == UPLL_DT_RUNNING || 
-             req->datatype == UPLL_DT_CANDIDATE ) {
-        result_code = ReadInfoFromDB(req, ikey, dmi, &ctrlr_dom);
-        return result_code;
-      } else {
-        UPLL_LOG_DEBUG("ReadSiblingCount is not Allowed For Such datatype %d",
-        req->datatype);
-        return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
-      }
-   }
- if (UNC_KT_VBR_POLICINGMAP_ENTRY == ikey->get_key_type())
-    if(req->datatype != UPLL_DT_STATE) {
-    UPLL_LOG_DEBUG("ReadSiblingCount is not Allowed For Such datatype %d",
-       req->datatype);
-    return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
+  if (UNC_KT_VBR_POLICINGMAP_ENTRY != ikey->get_key_type()) {
+    if (req->datatype == UPLL_DT_STATE ||
+       req->datatype == UPLL_DT_STARTUP ||
+       req->datatype == UPLL_DT_RUNNING ||
+       req->datatype == UPLL_DT_CANDIDATE ) {
+      result_code = ReadInfoFromDB(req, ikey, dmi, &ctrlr_dom);
+      return result_code;
+    } else {
+      UPLL_LOG_DEBUG("ReadSiblingCount is not Allowed For Such datatype %d",
+                     req->datatype);
+      return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
+    }
   }
+  if (UNC_KT_VBR_POLICINGMAP_ENTRY == ikey->get_key_type())
+    if (req->datatype != UPLL_DT_STATE) {
+      UPLL_LOG_DEBUG("ReadSiblingCount is not Allowed For Such datatype %d",
+                     req->datatype);
+      return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
+    }
+
   ConfigKeyVal *temp_vbr_key = NULL;
   ConfigKeyVal  *tctrl_key = NULL;
   result_code = GetReadVbrKey(temp_vbr_key, ikey);
@@ -3139,12 +3047,12 @@ upll_rc_t VbrPolicingMapMoMgr::ReadSiblingCount(IpcReqRespHeader *req,
 }
 
 upll_rc_t VbrPolicingMapMoMgr::OnPolicerFullAlarm(
-       string ctrlr_name ,
-       string domain_id,
-       const key_vtn_t &key_vtn,
-       const pfcdrv_policier_alarm_data_t &alarm_data,
-       bool &alarm_raised,
-       DalDmlIntf *dmi ) {
+    string ctrlr_name ,
+    string domain_id,
+    const key_vtn_t &key_vtn,
+    const pfcdrv_policier_alarm_data_t &alarm_data,
+    bool &alarm_raised,
+    DalDmlIntf *dmi ) {
   controller_domain ctrlr_dom;
   ConfigKeyVal *ikey = NULL;
   char *alarm_status = NULL;
@@ -3228,7 +3136,7 @@ upll_rc_t VbrPolicingMapMoMgr::OnPolicerFullAlarm(
 
   if (is_vbr) {
     result_code = GetRenamedControllerKey(ikey, UPLL_DT_RUNNING,
-                                           dmi, &ctrlr_dom);
+                                          dmi, &ctrlr_dom);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("GetRenamedControllerKey failed %d", result_code);
       DELETE_IF_NOT_NULL(ikey);
@@ -3239,7 +3147,7 @@ upll_rc_t VbrPolicingMapMoMgr::OnPolicerFullAlarm(
     vbr_name = reinterpret_cast<char*>(vbr_key->vbridge_name);
   } else {
     result_code =  mgrvtnpom->GetRenamedControllerKey(ikey, UPLL_DT_RUNNING,
-                                                   dmi, &ctrlr_dom);
+                                                      dmi, &ctrlr_dom);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("GetRenamedControllerKey failed %d", result_code);
       DELETE_IF_NOT_NULL(ikey);
@@ -3255,7 +3163,8 @@ upll_rc_t VbrPolicingMapMoMgr::OnPolicerFullAlarm(
     alarm_status = al_cleared;
   }
 
-  UPLL_LOG_INFO("Policer Full alarm : status - %s controller - %s, domain - %s,"
+  UPLL_LOG_INFO("Policer Full alarm : status - %s controller - %s,"
+                "domain - %s, "
                 "vtn - %s, vnode - %s, port - %s, dpid - %"PFC_PFMT_u64,
                 alarm_status, ctrlr_name.c_str(), domain_id.c_str(),
                 vtn_name, vbr_name, reinterpret_cast<char*>
@@ -3266,12 +3175,12 @@ upll_rc_t VbrPolicingMapMoMgr::OnPolicerFullAlarm(
 }
 
 upll_rc_t VbrPolicingMapMoMgr::OnPolicerFailAlarm(
-       string ctrlr_name ,
-       string domain_id,
-       const key_vtn_t &key_vtn,
-       const pfcdrv_policier_alarm_data_t &alarm_data,
-       bool &alarm_raised,
-       DalDmlIntf *dmi ) {
+    string ctrlr_name ,
+    string domain_id,
+    const key_vtn_t &key_vtn,
+    const pfcdrv_policier_alarm_data_t &alarm_data,
+    bool &alarm_raised,
+    DalDmlIntf *dmi ) {
   controller_domain ctrlr_dom;
   ConfigKeyVal *ikey = NULL;
   char *alarm_status = NULL;
@@ -3356,7 +3265,7 @@ upll_rc_t VbrPolicingMapMoMgr::OnPolicerFailAlarm(
 
   if (is_vbr) {
     result_code = GetRenamedControllerKey(ikey, UPLL_DT_RUNNING,
-                                           dmi, &ctrlr_dom);
+                                          dmi, &ctrlr_dom);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("GetRenamedControllerKey failed %d", result_code);
       DELETE_IF_NOT_NULL(ikey);
@@ -3367,7 +3276,7 @@ upll_rc_t VbrPolicingMapMoMgr::OnPolicerFailAlarm(
     vbr_name = reinterpret_cast<char*>(vbr_key->vbridge_name);
   } else {
     result_code =  mgrvtnpom->GetRenamedControllerKey(ikey, UPLL_DT_RUNNING,
-                                                   dmi, &ctrlr_dom);
+                                                      dmi, &ctrlr_dom);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("GetRenamedControllerKey failed %d", result_code);
       DELETE_IF_NOT_NULL(ikey);
@@ -3383,7 +3292,8 @@ upll_rc_t VbrPolicingMapMoMgr::OnPolicerFailAlarm(
     alarm_status = al_cleared;
   }
 
-  UPLL_LOG_INFO("Policer Fail alarm : status - %s controller - %s, domain - %s,"
+  UPLL_LOG_INFO("Policer Fail alarm : status - %s controller - %s,"
+                "domain - %s, "
                 "vtn - %s, vnode - %s, port - %s, dpid - %"PFC_PFMT_u64,
                 alarm_status, ctrlr_name.c_str(), domain_id.c_str(),
                 vtn_name, vbr_name, reinterpret_cast<char*>
@@ -3394,8 +3304,8 @@ upll_rc_t VbrPolicingMapMoMgr::OnPolicerFailAlarm(
 }
 
 upll_rc_t VbrPolicingMapMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
-                                   DalDmlIntf *dmi,
-                                   const char *ctrlr_id) {
+                                                 DalDmlIntf *dmi,
+                                                 const char *ctrlr_id) {
   UPLL_FUNC_TRACE;
   if (NULL == ikey || NULL == dmi ||
       NULL == ctrlr_id) {
@@ -3403,10 +3313,10 @@ upll_rc_t VbrPolicingMapMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
     return UPLL_RC_ERR_GENERIC;
   }
   UPLL_LOG_TRACE("%s Vbr_Pm CreateAuditMoImpl ikey",
-                    ikey->ToStrAll().c_str());
+                 ikey->ToStrAll().c_str());
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   uint8_t *controller_id = reinterpret_cast<uint8_t *>(
-                                 const_cast<char *>(ctrlr_id));
+      const_cast<char *>(ctrlr_id));
   result_code = GetRenamedUncKey(ikey, UPLL_DT_RUNNING, dmi,
                                  controller_id);
   if (result_code != UPLL_RC_SUCCESS &&
@@ -3433,7 +3343,7 @@ upll_rc_t VbrPolicingMapMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
   }
 
   val_policingmap_t *val_pm = reinterpret_cast<val_policingmap_t *>
-    (GetVal(ikey));
+      (GetVal(ikey));
   if (UNC_VF_VALID == val_pm->valid[UPLL_IDX_POLICERNAME_PM]) {
     result_code = UpdateRefCountInPPCtrlr(ikey, UPLL_DT_AUDIT, dmi,
                                           UNC_OP_CREATE);
@@ -3445,17 +3355,19 @@ upll_rc_t VbrPolicingMapMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
   }
 
   //  create a record in vbrpolicingmap table CANDIDATE DB
-/*  result_code = UpdateConfigDB(ikey, UPLL_DT_AUDIT, UNC_OP_CREATE, dmi);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("Create Record failed - %d", result_code);
-    return result_code;
-  }*/
+  /*  result_code = UpdateConfigDB(ikey, UPLL_DT_AUDIT, UNC_OP_CREATE, dmi);
+      if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG("Create Record failed - %d", result_code);
+      return result_code;
+      }*/
   UPLL_LOG_DEBUG("CreateCandidateMo Successful");
   return result_code;
 }
 
-upll_rc_t VbrPolicingMapMoMgr::DeleteChildrenPOM(ConfigKeyVal *ikey,
-                      upll_keytype_datatype_t dt_type, DalDmlIntf *dmi) {
+upll_rc_t VbrPolicingMapMoMgr::DeleteChildrenPOM(
+    ConfigKeyVal *ikey,
+    upll_keytype_datatype_t dt_type,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
 
@@ -3474,8 +3386,8 @@ upll_rc_t VbrPolicingMapMoMgr::DeleteChildrenPOM(ConfigKeyVal *ikey,
     UPLL_LOG_DEBUG("GetChildConfigKey failed %d", result_code);
     return result_code;
   }
-  DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
-                   kOpInOutCtrlr | kOpInOutDomain };
+  DbSubOp dbop = { kOpReadMultiple, kOpMatchNone,
+    kOpInOutCtrlr | kOpInOutDomain };
   result_code = ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop, dmi,
                              MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
@@ -3488,16 +3400,21 @@ upll_rc_t VbrPolicingMapMoMgr::DeleteChildrenPOM(ConfigKeyVal *ikey,
     DELETE_IF_NOT_NULL(okey);
     return result_code;
   }
-  val_policingmap_t *val_pm = reinterpret_cast<val_policingmap_t *>
-    (GetVal(okey));
-  if (UNC_VF_VALID == val_pm->valid[UPLL_IDX_POLICERNAME_PM]) {
-    result_code = UpdateRefCountInPPCtrlr(okey, dt_type, dmi,
-                                          UNC_OP_DELETE);
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("UpdateRefCountInPPCtrlr Error DB (%d)", result_code);
-      DELETE_IF_NOT_NULL(okey);
-      return result_code;
+
+  ConfigKeyVal *temp_okey = okey;
+  while (temp_okey != NULL) {
+    val_policingmap_t *val_pm = reinterpret_cast<val_policingmap_t *>
+        (GetVal(temp_okey));
+    if (UNC_VF_VALID == val_pm->valid[UPLL_IDX_POLICERNAME_PM]) {
+      result_code = UpdateRefCountInPPCtrlr(temp_okey, dt_type, dmi,
+                                            UNC_OP_DELETE);
+      if (UPLL_RC_SUCCESS != result_code) {
+        UPLL_LOG_DEBUG("UpdateRefCountInPPCtrlr Error DB (%d)", result_code);
+        DELETE_IF_NOT_NULL(okey);
+        return result_code;
+      }
     }
+    temp_okey = temp_okey->get_next_cfg_key_val();
   }
   DELETE_IF_NOT_NULL(okey);
   // Delete the record in vbrpolicingmap table
@@ -3565,9 +3482,9 @@ upll_rc_t VbrPolicingMapMoMgr::SetValidAudit(ConfigKeyVal *&ikey) {
 }
 
 bool VbrPolicingMapMoMgr::FilterAttributes(void *&val1,
-                                          void *val2,
-                                          bool copy_to_running,
-                                          unc_keytype_operation_t op) {
+                                           void *val2,
+                                           bool copy_to_running,
+                                           unc_keytype_operation_t op) {
   UPLL_FUNC_TRACE;
   if (op != UNC_OP_CREATE)
     return CompareValidValue(val1, val2, copy_to_running);
@@ -3575,11 +3492,11 @@ bool VbrPolicingMapMoMgr::FilterAttributes(void *&val1,
 }
 
 upll_rc_t VbrPolicingMapMoMgr::UpdateConfigStatus(ConfigKeyVal *vbr_key,
-                                       unc_keytype_operation_t op,
-                                       uint32_t driver_result,
-                                       ConfigKeyVal *upd_key,
-                                       DalDmlIntf *dmi,
-                                       ConfigKeyVal *ctrlr_key) {
+                                                  unc_keytype_operation_t op,
+                                                  uint32_t driver_result,
+                                                  ConfigKeyVal *upd_key,
+                                                  DalDmlIntf *dmi,
+                                                  ConfigKeyVal *ctrlr_key) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_policingmap_t *vbr_pm;
@@ -3598,38 +3515,43 @@ upll_rc_t VbrPolicingMapMoMgr::UpdateConfigStatus(ConfigKeyVal *vbr_key,
     return UPLL_RC_ERR_GENERIC;
   }
   UPLL_LOG_TRACE("%s", (vbr_key->ToStrAll()).c_str());
-  val_policingmap_t *vbr_val2 = reinterpret_cast<val_policingmap_t *>(GetVal(upd_key));
+  val_policingmap_t *vbr_val2 = reinterpret_cast<val_policingmap_t *>
+      (GetVal(upd_key));
   if (UNC_OP_UPDATE == op) {
     UPLL_LOG_TRACE("%s", (upd_key->ToStrAll()).c_str());
     vbr_pm->cs_row_status = vbr_val2->cs_row_status;
   }
   UPLL_LOG_DEBUG("valid after CVV %d", vbr_pm->valid[0]);
   if (UNC_VF_NOT_SUPPORTED == vbr_pm->valid[0]) {
-      vbr_pm->cs_attr[0] = UNC_CS_NOT_SUPPORTED;
+    vbr_pm->cs_attr[0] = UNC_CS_NOT_SUPPORTED;
   } else if ((UNC_VF_VALID == vbr_pm->valid[0])
-        || (UNC_VF_VALID_NO_VALUE == vbr_pm->valid[0])) {
-      vbr_pm->cs_attr[0] = cs_status;
-      UPLL_LOG_DEBUG("cs_attr in V or NV: %d ",vbr_pm->cs_attr[0]);
+             || (UNC_VF_VALID_NO_VALUE == vbr_pm->valid[0])) {
+    vbr_pm->cs_attr[0] = cs_status;
+    UPLL_LOG_DEBUG("cs_attr in V or NV: %d ", vbr_pm->cs_attr[0]);
   } else if ((UNC_VF_INVALID == vbr_pm->valid[0]) &&
              (UNC_OP_CREATE == op)) {
-      vbr_pm->cs_attr[0] = UNC_CS_NOT_APPLIED;
-      UPLL_LOG_DEBUG("cs_attr in IN in C: %d ",vbr_pm->cs_attr[0]);
+    vbr_pm->cs_attr[0] = UNC_CS_NOT_APPLIED;
+    UPLL_LOG_DEBUG("cs_attr in IN in C: %d ", vbr_pm->cs_attr[0]);
   } else if ((UNC_VF_INVALID == vbr_pm->valid[0]) &&
              (UNC_OP_UPDATE == op)) {
-      UPLL_LOG_DEBUG("cs_attr in IN in U: %d ",vbr_pm->cs_attr[0]);
-      vbr_pm->cs_attr[0] = vbr_val2->cs_attr[0];
+    UPLL_LOG_DEBUG("cs_attr in IN in U: %d ", vbr_pm->cs_attr[0]);
+    vbr_pm->cs_attr[0] = vbr_val2->cs_attr[0];
   }
   return result_code;
 }
 
 upll_rc_t VbrPolicingMapMoMgr::IsRenamed(ConfigKeyVal *ikey,
-                               upll_keytype_datatype_t dt_type,
-                               DalDmlIntf *dmi,
-                               uint8_t &rename) {
+                                         upll_keytype_datatype_t dt_type,
+                                         DalDmlIntf *dmi,
+                                         uint8_t &rename) {
   UPLL_FUNC_TRACE;
   UPLL_LOG_DEBUG("VbrPolicingMapMoMgr IsRenamed");
+  if (NULL == ikey) {
+    UPLL_LOG_DEBUG("ikey NULL");
+    return UPLL_RC_ERR_GENERIC;
+  }
   DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutFlag | kOpInOutCtrlr
-                       | kOpInOutDomain };
+    | kOpInOutDomain };
   ConfigKeyVal *okey = NULL;
   upll_rc_t result_code;
   /* rename is set implies user wants the ikey
@@ -3639,38 +3561,41 @@ upll_rc_t VbrPolicingMapMoMgr::IsRenamed(ConfigKeyVal *ikey,
       UPLL_LOG_DEBUG("UNC_KT_VBR_POLICINGMAP");
       result_code = GetChildConfigKey(okey, ikey);
       if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_TRACE("Returning error %d",result_code);
+        UPLL_LOG_TRACE("Returning error %d", result_code);
         return result_code;
       }
     } else if (UNC_KT_VBR_POLICINGMAP_ENTRY == ikey->get_key_type()) {
       UPLL_LOG_DEBUG("UNC_KT_VBR_POLICINGMAP_CONTROLLER");
 
       key_vbr_t *out_key = reinterpret_cast<key_vbr_t *>
-              (ConfigKeyVal::Malloc(sizeof(key_vbr_t)));
+          (ConfigKeyVal::Malloc(sizeof(key_vbr_t)));
 
       key_vbr_policingmap_entry_t *in_key = reinterpret_cast
-        <key_vbr_policingmap_entry_t *>(ikey->get_key());
+          <key_vbr_policingmap_entry_t *>(ikey->get_key());
 
       uuu::upll_strncpy(out_key->vtn_key.vtn_name,
-          in_key->vbr_key.vtn_key.vtn_name,
-          (kMaxLenVtnName + 1));
+                        in_key->vbr_key.vtn_key.vtn_name,
+                        (kMaxLenVtnName + 1));
       uuu::upll_strncpy(out_key->vbridge_name,
-          in_key->vbr_key.vbridge_name,
-          (kMaxLenVnodeName + 1));
+                        in_key->vbr_key.vbridge_name,
+                        (kMaxLenVnodeName + 1));
 
       okey = new ConfigKeyVal(UNC_KT_VBR_POLICINGMAP,
-                 IpctSt::kIpcStKeyVbr,
-                 out_key, NULL);
+                              IpctSt::kIpcStKeyVbr,
+                              out_key, NULL);
+    } else {
+      UPLL_LOG_DEBUG("Invalid KeyType");
+      return UPLL_RC_ERR_GENERIC;
     }
   } else {
     okey = ikey;
   }
 
   result_code = ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop, dmi,
-                                       MAINTBL);
+                             MAINTBL);
   if ((result_code != UPLL_RC_SUCCESS) &&
-       (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE))  {
-    UPLL_LOG_DEBUG("Returning error code %d",result_code);
+      (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE))  {
+    UPLL_LOG_DEBUG("Returning error code %d", result_code);
     if (okey != ikey) delete okey;
     return UPLL_RC_ERR_GENERIC;
   }
@@ -3679,26 +3604,26 @@ upll_rc_t VbrPolicingMapMoMgr::IsRenamed(ConfigKeyVal *ikey,
   ctrlr_dom.ctrlr = NULL;
   ctrlr_dom.domain = NULL;
 
-  GET_USER_DATA_CTRLR_DOMAIN(ikey,ctrlr_dom);
-    UPLL_LOG_DEBUG("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
+  GET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
+  UPLL_LOG_DEBUG("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
                  ctrlr_dom.domain);
-  SET_USER_DATA_CTRLR_DOMAIN(okey,ctrlr_dom);
-    UPLL_LOG_DEBUG("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
+  SET_USER_DATA_CTRLR_DOMAIN(okey, ctrlr_dom);
+  UPLL_LOG_DEBUG("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
                  ctrlr_dom.domain);
 
-  SET_USER_DATA(ikey,okey);
+  SET_USER_DATA(ikey, okey);
   rename &= RENAME;
   if (okey != ikey) delete okey;
   return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t VbrPolicingMapMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
-    DalDmlIntf *dmi,
-    IpcReqRespHeader *req) {
+                                             DalDmlIntf *dmi,
+                                             IpcReqRespHeader *req) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_policingmap_t *val_pm = reinterpret_cast
-    <val_policingmap_t *>(GetVal(ikey));
+      <val_policingmap_t *>(GetVal(ikey));
   if (!val_pm) {
     UPLL_LOG_DEBUG("Val is NULL");
     return UPLL_RC_ERR_GENERIC;
@@ -3711,8 +3636,8 @@ upll_rc_t VbrPolicingMapMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
       return result_code;
     }
     MoMgrImpl *mgr =
-      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_VBRIDGE)));
+        reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                    UNC_KT_VBRIDGE)));
     if (!mgr) {
       UPLL_LOG_DEBUG("mgr is NULL");
       DELETE_IF_NOT_NULL(pkey);
@@ -3733,14 +3658,16 @@ upll_rc_t VbrPolicingMapMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
         ((UNC_OP_CREATE == req->operation))) {
       ConfigKeyVal *pp_ckv = NULL;
       result_code = GetPolicingProfileConfigKey(reinterpret_cast<const char *>
-          (val_pm->policer_name), pp_ckv, dmi);
+                                                (val_pm->policer_name),
+                                                pp_ckv,
+                                                dmi);
       if (UPLL_RC_SUCCESS != result_code) {
         UPLL_LOG_DEBUG("GetPolicingProfileConfigKey failed %d", result_code);
         return result_code;
       }
       MoMgrImpl *pp_mgr =
-      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_POLICING_PROFILE)));
+          reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                      UNC_KT_POLICING_PROFILE)));
       if (NULL == pp_mgr) {
         UPLL_LOG_DEBUG("pp_mgr is NULL");
         DELETE_IF_NOT_NULL(pp_ckv);
@@ -3754,7 +3681,8 @@ upll_rc_t VbrPolicingMapMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
         return result_code;
       }
       if (pp_rename & 0x01) {
-        rename |= POLICINGPROFILE_RENAME;  // TODO Check for correct flag value
+        rename |= POLICINGPROFILE_RENAME;  // TODO(upll): Check for correct
+        // flag value
       }
       DELETE_IF_NOT_NULL(pp_ckv);
     }
@@ -3769,14 +3697,16 @@ upll_rc_t VbrPolicingMapMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
     if (UNC_VF_VALID == val_pm->valid[UPLL_IDX_POLICERNAME_PM]) {
       ConfigKeyVal *pp_ckv = NULL;
       result_code = GetPolicingProfileConfigKey(reinterpret_cast<const char *>
-          (val_pm->policer_name), pp_ckv, dmi);
+                                                (val_pm->policer_name),
+                                                pp_ckv,
+                                                dmi);
       if (UPLL_RC_SUCCESS != result_code) {
         UPLL_LOG_DEBUG("GetPolicingProfileConfigKey failed %d", result_code);
         return result_code;
       }
       MoMgrImpl *pp_mgr =
-      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_POLICING_PROFILE)));
+          reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                      UNC_KT_POLICING_PROFILE)));
       if (NULL == pp_mgr) {
         UPLL_LOG_DEBUG("pp_mgr is NULL");
         DELETE_IF_NOT_NULL(pp_ckv);
@@ -3789,14 +3719,16 @@ upll_rc_t VbrPolicingMapMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
         return result_code;
       }
       if (pp_rename & 0x01) {
-        rename |= POLICINGPROFILE_RENAME;  // TODO Check for correct flag value
+        rename |= POLICINGPROFILE_RENAME;  // TODO(upll): Check for correct
+        // flag value
       } else {
         rename &= NO_POLICINGPROFILE_RENAME;
       }
       DELETE_IF_NOT_NULL(pp_ckv);
     } else if (UNC_VF_VALID_NO_VALUE == val_pm->valid
                [UPLL_IDX_POLICERNAME_PM]) {
-       rename &= NO_POLICINGPROFILE_RENAME; // TODO Check for correct flag value. No rename flowlist value should be set
+      rename &= NO_POLICINGPROFILE_RENAME;  // TODO(upll): Check for correct
+      // flag value. No rename flowlist value should be set
     }
     SET_USER_DATA_FLAGS(ikey, rename);
   }
@@ -3804,13 +3736,13 @@ upll_rc_t VbrPolicingMapMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
 }
 
 upll_rc_t VbrPolicingMapMoMgr::GetPolicingProfileConfigKey(
-        const char *pp_name, ConfigKeyVal *&okey,
-        DalDmlIntf *dmi) {
+    const char *pp_name, ConfigKeyVal *&okey,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
   MoMgrImpl *mgr =
       reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_POLICING_PROFILE)));
+                  UNC_KT_POLICING_PROFILE)));
   result_code = mgr->GetChildConfigKey(okey, NULL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("GetChildConfigKey failed %d", result_code);
@@ -3819,11 +3751,11 @@ upll_rc_t VbrPolicingMapMoMgr::GetPolicingProfileConfigKey(
   key_policingprofile_t *okey_key = reinterpret_cast<key_policingprofile_t *>
       (okey->get_key());
   uuu::upll_strncpy(okey_key->policingprofile_name,
-        pp_name,
-        (kMaxLenPolicingProfileName+1));
+                    pp_name,
+                    (kMaxLenPolicingProfileName+1));
   return UPLL_RC_SUCCESS;
 }
-}  // kt_momgr
-}  // upll
-}  // unc
+}  // namespace kt_momgr
+}  // namespace upll
+}  // namespace unc
 
index 68bb884816c2b0f4945890052121c983272edfdb..c1788060e1912ff2f872880cf92547dddc6f1b98 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -27,563 +27,566 @@ enum vbrpolicingmapMoMgrTables {
  *         received from service.
  */
 class VbrPolicingMapMoMgr : public MoMgrImpl {
-  private:
-    /**
-     * Member Variable for PolicingProfileBindInfo.
-     */
-    static BindInfo vbr_policingmap_bind_info[];
-    static BindInfo key_vbrpm_maintbl_rename_bind_info[];
-    static BindInfo key_vbrpm_policyname_maintbl_rename_bind_info[];
-    uint32_t cur_instance_count;
-  public:
-    /**
-     * @Brief  PolicingProfileMoMgr Class Constructor.
-     */
-    VbrPolicingMapMoMgr();
-    /**
-     * @Brief  PolicingProfileMoMgr Class Destructor.
-     */
-    ~VbrPolicingMapMoMgr() {
-      for (int i = 0; i < ntable; i++) {
-        if (table[i]) {
-          delete table[i];
-        }
+ private:
+  /**
+   * Member Variable for PolicingProfileBindInfo.
+   */
+  static BindInfo vbr_policingmap_bind_info[];
+  static BindInfo key_vbrpm_maintbl_rename_bind_info[];
+  static BindInfo key_vbrpm_policyname_maintbl_rename_bind_info[];
+
+ public:
+  /**
+   * @Brief  PolicingProfileMoMgr Class Constructor.
+   */
+  VbrPolicingMapMoMgr();
+  /**
+   * @Brief  PolicingProfileMoMgr Class Destructor.
+   */
+  ~VbrPolicingMapMoMgr() {
+    for (int i = 0; i < ntable; i++) {
+      if (table[i]) {
+        delete table[i];
       }
-      delete[] table;
     }
+    delete[] table;
+  }
+
+  /**
+   * @Brief This API is used to create the record (Vbr name with
+   * Policer name) in VbrPolicingMap table and Increment the refcount
+   * or insert the record based on the incoming policer name's availability
+   * in policingprofilectrl table
+   *
+   * @param[in] req                          Describes
+   *                                         RequestResponderHeaderClass.
+   * @param[in] ikey                         Pointer to ConfigKeyVal Class.
+   * @param[in] dmi                          Pointer to DalDmlIntf Class.
+   *
+   * @retval    UPLL_RC_ERR_INSTANCE_EXISTS  Policymap Record Already Exists.
+   * @retval    UPLL_RC_ERR_CFG_SEMANTIC     Policy Profile Record not
+   *                                         available.
+   * @retval    UPLL_RC_SUCCESS              Successful completion.
+   * @retval    UPLL_RC_ERR_GENERIC          Generic Errors.
+   */
+  upll_rc_t CreateCandidateMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
+                              DalDmlIntf *dmi, bool restore_flag = false);
+
+  /**
+   * @Brief This API is used to delete the record (Vbr name with
+   * Policer name) in VbrPolicingMap table and decrement the refcount
+   * based on the record availability in policingprofilectrl table
+   *
+   * @param[in] req                           Describes
+   *                                          RequestResponderHeaderClass.
+   * @param[in] ikey                          Pointer to ConfigKeyVal Class.
+   * @param[in] dmi                           Pointer to DalDmlIntf Class.
+   *
+   * @retval    UPLL_RC_ERR_NO_SUCH_INSTANCE  Record Not available.
+   * @retval    UPLL_RC_SUCCESS               Successful completion.
+   * @retval    UPLL_RC_ERR_GENERIC           Generic Errors.
+   */
+  upll_rc_t DeleteMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
+                     DalDmlIntf *dmi);
 
-    /**
-     * @Brief This API is used to create the record (Vbr name with
-     * Policer name) in VbrPolicingMap table and Increment the refcount
-     * or insert the record based on the incoming policer name's availability
-     * in policingprofilectrl table
-     *
-     * @param[in] req                          Describes
-     *                                         RequestResponderHeaderClass.
-     * @param[in] ikey                         Pointer to ConfigKeyVal Class.
-     * @param[in] dmi                          Pointer to DalDmlIntf Class.
-     *
-     * @retval    UPLL_RC_ERR_INSTANCE_EXISTS  Policymap Record Already Exists.
-     * @retval    UPLL_RC_ERR_CFG_SEMANTIC     Policy Profile Record not
-     *                                         available.
-     * @retval    UPLL_RC_SUCCESS              Successful completion.
-     * @retval    UPLL_RC_ERR_GENERIC          Generic Errors.
-     */
-    upll_rc_t CreateCandidateMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                                DalDmlIntf *dmi);
-
-    /**
-     * @Brief This API is used to delete the record (Vbr name with
-     * Policer name) in VbrPolicingMap table and decrement the refcount
-     * based on the record availability in policingprofilectrl table
-     *
-     * @param[in] req                           Describes
-     *                                          RequestResponderHeaderClass.
-     * @param[in] ikey                          Pointer to ConfigKeyVal Class.
-     * @param[in] dmi                           Pointer to DalDmlIntf Class.
-     *
-     * @retval    UPLL_RC_ERR_NO_SUCH_INSTANCE  Record Not available.
-     * @retval    UPLL_RC_SUCCESS               Successful completion.
-     * @retval    UPLL_RC_ERR_GENERIC           Generic Errors.
-     */
-    upll_rc_t DeleteMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                       DalDmlIntf *dmi);
-
-    /**
-     * @Brief This API is used to Update the record (Vbr name with
-     * Policer name) in VbrPolicingMap table and Increment the refcount
-     * or insert the record based on the incoming policer name's availability
-     * in policingprofilectrl table. Get the existing policer name in
-     * vtnpolicingmap table and decrement the refcount in policingprofilectrl
-     * table in respective vtn associated controller name
-     *
-     * @param[in] req                           Describes
-     *                                          RequestResponderHeaderClass.
-     * @param[in] ikey                          Pointer to ConfigKeyVal Class.
-     * @param[in] dmi                           Pointer to DalDmlIntf Class.
-     *
-     * @retval    UPLL_RC_ERR_NO_SUCH_INSTANCE  Record Not available.
-     * @retval    UPLL_RC_ERR_CFG_SEMANTIC      Policy Profile Record not
-     *                                          available.
-     * @retval    UPLL_RC_SUCCESS               Successful completion.
-     * @retval    UPLL_RC_ERR_GENERIC           Generic Errors.
-     */
-    upll_rc_t UpdateMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                       DalDmlIntf *dmi);
+  /**
+   * @Brief This API is used to Update the record (Vbr name with
+   * Policer name) in VbrPolicingMap table and Increment the refcount
+   * or insert the record based on the incoming policer name's availability
+   * in policingprofilectrl table. Get the existing policer name in
+   * vtnpolicingmap table and decrement the refcount in policingprofilectrl
+   * table in respective vtn associated controller name
+   *
+   * @param[in] req                           Describes
+   *                                          RequestResponderHeaderClass.
+   * @param[in] ikey                          Pointer to ConfigKeyVal Class.
+   * @param[in] dmi                           Pointer to DalDmlIntf Class.
+   *
+   * @retval    UPLL_RC_ERR_NO_SUCH_INSTANCE  Record Not available.
+   * @retval    UPLL_RC_ERR_CFG_SEMANTIC      Policy Profile Record not
+   *                                          available.
+   * @retval    UPLL_RC_SUCCESS               Successful completion.
+   * @retval    UPLL_RC_ERR_GENERIC           Generic Errors.
+   */
+  upll_rc_t UpdateMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
+                     DalDmlIntf *dmi);
 
-    /**
-     * @Brief This API is used to check the policymap object availability
-     * in vbrpolicingmaptbl CANDIDATE DB
-     *
-     * @param[in] ikey                          Pointer to ConfigKeyVal Class.
-     * @param[in] dt_type                       Configuration information.
-     * @param[in] dmi                           Pointer to DalDmlIntf Class.
-     *
-     * @retval    UPLL_RC_SUCCESS               Successful completion.
-     * @retval    UPLL_RC_ERR_GENERIC           Generic Error code.
-     * @retval    UPLL_RC_ERR_NO_SUCH_INSTANCE  No Record in DB.
-     * @retval    UPLL_RC_ERR_INSTANCE_EXISTS   Record exists in DB.
-     */
-    upll_rc_t IsReferenced(ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
-                           DalDmlIntf *dmi);
-
-    /**
-     * @Brief This API is used to check the policer name availability
-     * in policingprofiletbl CANDIDATE DB
-     *
-     * @param[in] ikey                          Pointer to ConfigKeyVal Class.
-     * @param[in] dt_type                       Configuration information.
-     * @param[in] dmi                           Pointer to DalDmlIntf Class.
-     * @param[in] op                            Describes the Type of Opeartion.
-     *
-     * @retval    UPLL_RC_SUCCESS               Successful completion.
-     * @retval    UPLL_RC_ERR_GENERIC           Generic Error code.
-     * @retval    UPLL_RC_ERR_NO_SUCH_INSTANCE  No Record in DB.
-     * @retval    UPLL_RC_ERR_INSTANCE_EXISTS   Record exists in DB.
-     */
-    upll_rc_t IsPolicyProfileReferenced(ConfigKeyVal *ikey,
-                                        upll_keytype_datatype_t dt_type,
-                                        DalDmlIntf* dmi,
-                                        unc_keytype_operation_t op);
-
-    /**
-     * @Brief This API is used to get the vbr associated controller name
-     * and update (increment/decrement) the refcount in policingprofilectrlrtbl
-     *
-     * @param[in] ikey                   Pointer to ConfigKeyVal Class.
-     * @param[in] dt_type                Configuration information.
-     * @param[in] dmi                    Pointer to DalDmlIntf Class.
-     * @param[in] op                     Describes the Type of Opeartion.
-     *
-     * @retval    UPLL_RC_SUCCESS        Successful completion.
-     * @retval    UPLL_RC_ERR_GENERIC    Generic Errors.
-     * @retval    UPLL_RC_ERR_DB_ACCESS  Error accessing DB.
-     */
-    upll_rc_t UpdateRefCountInPPCtrlr(ConfigKeyVal *ikey,
+  /**
+   * @Brief This API is used to check the policymap object availability
+   * in vbrpolicingmaptbl CANDIDATE DB
+   *
+   * @param[in] ikey                          Pointer to ConfigKeyVal Class.
+   * @param[in] dt_type                       Configuration information.
+   * @param[in] dmi                           Pointer to DalDmlIntf Class.
+   *
+   * @retval    UPLL_RC_SUCCESS               Successful completion.
+   * @retval    UPLL_RC_ERR_GENERIC           Generic Error code.
+   * @retval    UPLL_RC_ERR_NO_SUCH_INSTANCE  No Record in DB.
+   * @retval    UPLL_RC_ERR_INSTANCE_EXISTS   Record exists in DB.
+   */
+  upll_rc_t IsReferenced(ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
+                         DalDmlIntf *dmi);
+
+  /**
+   * @Brief This API is used to check the policer name availability
+   * in policingprofiletbl CANDIDATE DB
+   *
+   * @param[in] ikey                          Pointer to ConfigKeyVal Class.
+   * @param[in] dt_type                       Configuration information.
+   * @param[in] dmi                           Pointer to DalDmlIntf Class.
+   * @param[in] op                            Describes the Type of Opeartion.
+   *
+   * @retval    UPLL_RC_SUCCESS               Successful completion.
+   * @retval    UPLL_RC_ERR_GENERIC           Generic Error code.
+   * @retval    UPLL_RC_ERR_NO_SUCH_INSTANCE  No Record in DB.
+   * @retval    UPLL_RC_ERR_INSTANCE_EXISTS   Record exists in DB.
+   */
+  upll_rc_t IsPolicyProfileReferenced(ConfigKeyVal *ikey,
                                       upll_keytype_datatype_t dt_type,
-                                      DalDmlIntf *dmi,
+                                      DalDmlIntfdmi,
                                       unc_keytype_operation_t op);
 
-    /**
-     *  @Brief Method used to get ctrlrid .
-     *
-     *  @param[out] okey        Pointer to class ConfigKeyVal
-     *  @param[in]  ikey        Pointer to ConfigKeyVal Class.
-     *  @param[in]  dmi         Pointer to DalDmlIntf Class.
-     *
-     *  @retval     UPLL_RC_SUCCESS  Successfull completion.
-     *  */
-    upll_rc_t GetControllerId(ConfigKeyVal *ikey, ConfigKeyVal *&okey,
-                              upll_keytype_datatype_t dt_type, DalDmlIntf *dmi);
-
-    /**
-     * @Brief This API is used to read the configuration and statistics
-     *
-     * @param[in]  req                           Describes
-     *                                           RequestResponderHeaderClass.
-     * @param[out] ikey                          Pointer to ConfigKeyVal Class.
-     * @param[in]  dmi                           Pointer to DalDmlIntf Class.
-     *
-     * @retval     UPLL_RC_ERR_NO_SUCH_INSTANCE  Record Not available
-     * @retval     UPLL_RC_ERR_CFG_SEMANTIC      Policy Profile Record not
-     *                                           available
-     * @retval     UPLL_RC_SUCCESS               Successful completion.
-     * @retval     UPLL_RC_ERR_GENERIC           Generic Errors.
-     * @retval     UPLL_RC_ERR_DB_ACCESS         Error accessing DB.
-     */
-    upll_rc_t ReadMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                     DalDmlIntf *dmi);
-
-    /**
-     * @Brief This API is used to read the siblings configuration
-     *            and statistics
-     *
-     * @param[in]  req                           Describes
-     *                                           RequestResponderHeaderClass.
-     * @param[out] ikey                          Pointer to ConfigKeyVal Class.
-     * @param[in]  begin                         Describes read from begin or not
-     * @param[in]  dmi                           Pointer to DalDmlIntf Class.
-     *
-     * @retval     UPLL_RC_SUCCESS               Successful completion.
-     * @retval     UPLL_RC_ERR_GENERIC           Generic Errors.
-     * @retval     UPLL_RC_ERR_NO_SUCH_INSTANCE  Record Not available
-     * @retval     UPLL_RC_ERR_CFG_SEMANTIC      PolicyProfile Record not found
-     * @retval     UPLL_RC_ERR_DB_ACCESS         Error accessing DB.
-     */
-    upll_rc_t ReadSiblingMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                            bool begin, DalDmlIntf *dmi);
-
-    /**
-     * @Brief Method used to get the Bind Info Structure for Rename Purpose.
-     *
-     * @param[in] key_type   Describes the KT Information.
-     * @param[in] binfo
-     * @param[in] nattr      Describes the Tbl For which the Operation is
-     *                       Targeted.
-     * @param[in] tbl        Describes the Table Information.
-     *
-     * @retval    pfc_true   Successful Completion.
-     * @retval    pfc_fasle  Failure.
-     */
-    bool GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo,
-                              int &nattr, MoMgrTables tbl);
-
-    /**
-     * @Brief Method to Copy The ConfigkeyVal with the Input Key.
-     *
-     * @param[out]  okey                 Pointer to ConfigKeyVal Class for
-     *                                   which attributes have to be copied.
-     * @param[in]   ikey                 Pointer to ConfigKeyVal Class.
-     *
-     * @retval      UPLL_RC_SUCCESS      Successfull Completion.
-     * @retval      UPLL_RC_ERR_GENERIC  Returned Generic Error.
-     */
-    upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
-
-    /**
-     * @Brief This API is used to read the policing map record in IMPORT's
-     * vbrpolicingmap table and check with CANDIDATES's policingprofile table
-     * If record exists return merge conflict
-     *
-     * @param[in] keytype                     Describes the keyType Information.
-     * @param[in] ctrlr_id                    Describes the Controller Name.
-     * @param[in] ikey                        This Contains the pointer to the
-     *                                        Class for which fields have to be
-     *                                        Validated before the Merge.
-     * @param[in] dmi                         Pointer to DalDmlIntf Class.
-     *
-     * @retval    UPLL_RC_SUCCESS             Successful completion.
-     * @retval    UPLL_RC_ERR_GENERIC         Generic Errors.
-     * @retval    UPLL_RC_ERR_MERGE_CONFLICT  Record already avilable
-     */
-    upll_rc_t MergeValidate(unc_key_type_t keytype, const char *ctrlr_id,
-                            ConfigKeyVal *ikey, DalDmlIntf *dmi);
-
-    /**
-     * @Brief This API is used to get the unc key name
-     * @param[out] ikey                 This Contains the pointer to the Class
-     for which fields have to be updated
-     with values from the parent Class.
-     *
-     * @param[in]  dt_type              Configuration Information.
-     * @param[in]  dmi                  Pointer to DalDmlIntf Class.
-     * @param[in]  ctrlr_id             Controller name.
-     *
-     * @retval     UPLL_RC_SUCCESS      Successful completion.
-     * @retval     UPLL_RC_ERR_GENERIC  Generic Errors.
-     */
-    upll_rc_t GetRenamedUncKey(ConfigKeyVal *ikey,
-                               upll_keytype_datatype_t dt_type, DalDmlIntf *dmi,
-                               uint8_t *ctrlr_id);
-
-    /**
-     * @Brief This API is used to get the renamed Controller's key
-     *
-     * @param[out] ikey                Contains the Pointer to ConfigkeyVal
-     *                                 Class and contains the Pfc Name.
-     * @param[in] dt_type              Configuratin information.
-     * @param[in] dmi                  Pointer to DalDmlIntf Class.
-     * @param[in] ctrlr_name           Controller name.
-     *
-     * @retval    UPLL_RC_SUCCESS      Successful completion.
-     * @retval    UPLL_RC_ERR_GENERIC  Generic Errors.
-     */
-    upll_rc_t GetRenamedControllerKey(ConfigKeyVal *ikey,
-                                      upll_keytype_datatype_t dt_type,
-                                      DalDmlIntf *dmi,
-                                      controller_domain *ctrlr_dom = NULL);
-
-    /**
-     * @Brief Method To Compare the Valid Check of Attributes
-     *
-     * @param[In/out] val1             Pointer to ConfigKeyVal Class which
-     *                                 contains only Valid Attributes.
-     * @param[in]     val2             Pointer to ConfigKeyVal Class.
-     * @param[in]     audit            Audit purpose.
-     *
-     * @retval        UPLL_RC_SUCCESS  Successful completion.
-     */
-    bool CompareValidValue(void *&val1, void *val2, bool audit);
-
-    /**
-     ** @Brief This method used to update the configstatus in Db during
-     **        Trasaction Operation
-     **
-     ** @param[in]  ckv                  Pointer to ConfigkeyVal class.
-     ** @param[in]  op                   Type of operation
-     ** @param[in]  driver_result        Result code from Driver.
-     ** @param[in]  nreq                 Pointer to ConfigkeyVal.
-     ** @param[out] ctrlr_key            Pointer to ConfigkeyVal for controller.
-     **
-     ** @retval     UPLL_RC_SUCCESS      Successful completion.
-     ** @retval     UPLL_RC_ERR_GENERIC  Generic Errors.
-     **/
-     upll_rc_t UpdateConfigStatus(ConfigKeyVal *ckv,
-              unc_keytype_operation_t op, uint32_t driver_result,
-              ConfigKeyVal *nreq, DalDmlIntf *dmi,
-              ConfigKeyVal *ctrlr_key);
-
-    /**
-     * @Brief This API updates the Configuration status for AuditConfigiration todo
-     *
-     * @param[in]  ctrlr_rslt           Pointer to ConfigkeyVal class.
-     * @param[in]  phase                Describes the phase of controller.
-     * @param[in]  ckv_running          Pointer to ConfigkeyVal.
-     * @param[in]  ckv_audit            Pointer to ConfigkeyVal.
-     *
-     * @retval     UPLL_RC_SUCCESS      Successful completion.
-     * @retval     UPLL_RC_ERR_GENERIC  Generic Errors.
-     */
-    upll_rc_t UpdateAuditConfigStatus(
-              unc_keytype_configstatus_t cs_status,
-              uuc::UpdateCtrlrPhase phase,
-              ConfigKeyVal *&ckv_running);
-
-    /**
-     * @Brief Method to compare to keys
-     *
-     * @param[in]  key1  Pointer to key structure for comparision
-     * @param[in]  key2  Pointer to key for comparision
-     *
-     * @return  TRUE   If keys match
-     * @return  FALSE  If keys dont match
-     */
-    bool CompareKey(void *key1, void *key2);
-
-    /**
-     * @Brief This API is used to know the value availability of
-     *         val structure attributes
-     *
-     * @param[in]  val                  pointer to the value structure.
-     * @param[out] valid                reference to the enum containing
-     *                                  the possible values of Valid flag.
-     * @param[in]  indx                 Gives the index of attribute for
-     *                                  validity.
-     * @param[in]  dt_type              configuration for validity check.
-     * @param[in]  tbl                  Table name.
-     *
-     * @retval     UPLL_RC_SUCCESS      Successful completion.
-     * @retval     UPLL_RC_ERR_GENERIC  Generic Errors.
-     */
-    upll_rc_t GetValid(void *val, uint64_t indx, uint8_t *&valid,
-                       upll_keytype_datatype_t dt_type, MoMgrTables tbl);
-
-    /**
-     * @Brief This API is used to allocate the memory for incoming in configval
-     *
-     * @param[out] ck_val               This Contains the pointer to the Class
-     *                                  for which memory has to be allocated.
-     * @param[in]  dt_type              Configuration information.
-     * @param[in]  tbl                  Table name.
-     *
-     * @retval     UPLL_RC_SUCCESS      Successful completion.
-     * @retval     UPLL_RC_ERR_GENERIC  Generic Errors.
-     */
-    upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
-                       MoMgrTables tbl);
-
-    /**
-     * @Brief This API is used to get the duplicate configkeyval
-     *
-     * @param[out] okey                 This Contains the pointer to the Class
-     *                                  for which fields have to be updated
-     *                                  with values from the Request.
-     * @param[in]  req                  This Contains the pointer to the Class
-     *                                  which is used for the Duplication.
-     * @param[in]  tbl                  Table name
-     *
-     * @retval     UPLL_RC_SUCCESS      Successful completion.
-     * @retval     UPLL_RC_ERR_GENERIC  Generic Errors.
-     */
-    upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
-                              MoMgrTables tbl);
-
-    /**
-     * @Brief Method used to fill the CongigKeyVal with the Parent Class
-     *            Information.
-     *
-     * @param[out] okey                This Contains the pointer to the
-     *                                 ConfigKeyVal Class for which fields have
-     *                                 to be updated with values from the
-     *                                 parent Class.
-     * @param[in] parent_key           This Contains the pointer to the
-     *                                 ConfigKeyVal Class which is the
-     *                                 Parent class used to fill the details.
-     *
-     * @retval    UPLL_RC_SUCCESS      Successful completion.
-     * @retval    UPLL_RC_ERR_GENERIC  Generic Errors.
-     */
-    upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *parent_key);
-
-    /**
-     * @Brief Validates the syntax of the specified key and value structure
-     *        for KT_VBR_POLICINGMAP/KT_VBR_POLICINGMAP_ENTRY keytype
-     *
-     * @param[in] IpcReqRespHeader contains first 8 fields of input request structure
-     * @param[in] ConfigKeyVal key and value structure.
-     *
-     * @retval UPLL_RC_SUCCESS               Successful.
-     * @retval UPLL_RC_ERR_CFG_SYNTAX        Syntax error.
-     * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE  key_vbr is not available.
-     * @retval UPLL_RC_ERR_GENERIC           Generic failure.
-     * @retval UPLL_RC_ERR_INVALID_OPTION1   option1 is not valid.
-     * @retval UPLL_RC_ERR_INVALID_OPTION2   option2 is not valid.
-     */
-    upll_rc_t ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *key);
-
-    /**
-     * @Brief Checks if the specified key type(KT_VBR_POLICINGMAP) and
-     *        associated attributes are supported on the given controller,
-     *        based on the valid flag
-     *
-     * @param[in] IpcReqRespHeader  contains first 8 fields of input request structure
-     * @param[in] ConfigKeyVal      contains key and value structure.
-     * @param[in] ctrlr_name        controller name
-     *
-     * @retval  UPLL_RC_SUCCESS              Validation succeeded.
-     * @retval  UPLL_RC_ERR_GENERIC          Validation failure.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION1  Option1 is not valid.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION2  Option2 is not valid.
-     */
-    upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                                 const char *ctrlr_name = NULL);
-    /**
-     * @Brief Method used to fill the CongigKeyVal with the Parent Class
-     *            Information.
-     *
-     * @param[out] okey                This Contains the pointer to the
-     *                                 ConfigKeyVal Class for which fields have
-     *                                 to be updated with values from the
-     *                                 parent Class.
-     * @param[in] parent_key           This Contains the pointer to the
-     *                                 ConfigKeyVal Class which is the
-     *                                 Parent class used to fill the details.
-     *
-     * @retval    UPLL_RC_SUCCESS      Successful completion.
-     * @retval    UPLL_RC_ERR_GENERIC  Generic Errors.
-     */
-    upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey,
-                                 ConfigKeyVal *ikey);
-
-    /**
-     * @brief  Method used for Restoring PolicingProfile in the Controller Table
-     *
-     * @param[in]      ikey       Pointer to ConfigKeyVal Class
-     * @param[in]      dt_type    Describes Configiration Information.
-     * @param[in]      tbl        Describe the destination table
-     * @param[in]      dmi        Pointer to DalDmlIntf Class.
-     *
-     * @retval  UPLL_RC_SUCCESS      Successfull completion.
-     * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
-     * @retval  UPLL_RC_ERR_INSTANCE_EXISTS       Record already exists 
-     * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
-     */
-
-    upll_rc_t RestorePOMInCtrlTbl(ConfigKeyVal *ikey,
-                                  upll_keytype_datatype_t dt_type,
-                                  MoMgrTables tbl,
-                                  DalDmlIntf* dmi);
-
-    upll_rc_t ConstructReadDetailResponse(ConfigKeyVal *ikey,
-                                          ConfigKeyVal *drv_resp_ckv,
-                                          upll_keytype_datatype_t dt_type,
-                                          unc_keytype_operation_t op,
-                                          DbSubOp dbop,
-                                          DalDmlIntf *dmi,
-                                          ConfigKeyVal **okey);
-
-    bool IsValidKey(void *key, uint64_t index);
-
-    upll_rc_t ConstructReadDetailEntryResponse(ConfigKeyVal *ikey,
-                                               ConfigKeyVal *dup_key,
-                                               ConfigKeyVal *drv_resp_ckv,
-                                               upll_keytype_datatype_t dt_type,
-                                               unc_keytype_operation_t op,
-                                               DbSubOp dbop,
-                                               DalDmlIntf *dmi,
-                                               ConfigKeyVal **okey);
-
-    upll_rc_t GetReadVbrEntryKey(ConfigKeyVal *&dup_key,
-                                 ConfigKeyVal *ikey);
-    upll_rc_t SwapKeyVal(ConfigKeyVal *ikey, ConfigKeyVal *&okey,
-                         DalDmlIntf *dmi, uint8_t *ctrlr) {
-      return UPLL_RC_SUCCESS;
-    }
-    upll_rc_t ReadDTsateNormal(ConfigKeyVal *ikey,
-                               ConfigKeyVal* dup_key,
-                               upll_keytype_datatype_t  dt_type,
-                               DbSubOp dbop,
+  /**
+   * @Brief This API is used to get the vbr associated controller name
+   * and update (increment/decrement) the refcount in policingprofilectrlrtbl
+   *
+   * @param[in] ikey                   Pointer to ConfigKeyVal Class.
+   * @param[in] dt_type                Configuration information.
+   * @param[in] dmi                    Pointer to DalDmlIntf Class.
+   * @param[in] op                     Describes the Type of Opeartion.
+   *
+   * @retval    UPLL_RC_SUCCESS        Successful completion.
+   * @retval    UPLL_RC_ERR_GENERIC    Generic Errors.
+   * @retval    UPLL_RC_ERR_DB_ACCESS  Error accessing DB.
+   */
+  upll_rc_t UpdateRefCountInPPCtrlr(ConfigKeyVal *ikey,
+                                    upll_keytype_datatype_t dt_type,
+                                    DalDmlIntf *dmi,
+                                    unc_keytype_operation_t op);
+
+  /**
+   *  @Brief Method used to get ctrlrid .
+   *
+   *  @param[out] okey        Pointer to class ConfigKeyVal
+   *  @param[in]  ikey        Pointer to ConfigKeyVal Class.
+   *  @param[in]  dmi         Pointer to DalDmlIntf Class.
+   *
+   *  @retval     UPLL_RC_SUCCESS  Successfull completion.
+   *  */
+  upll_rc_t GetControllerId(ConfigKeyVal *ikey, ConfigKeyVal *&okey,
+                            upll_keytype_datatype_t dt_type, DalDmlIntf *dmi);
+
+  /**
+   * @Brief This API is used to read the configuration and statistics
+   *
+   * @param[in]  req                           Describes
+   *                                           RequestResponderHeaderClass.
+   * @param[out] ikey                          Pointer to ConfigKeyVal Class.
+   * @param[in]  dmi                           Pointer to DalDmlIntf Class.
+   *
+   * @retval     UPLL_RC_ERR_NO_SUCH_INSTANCE  Record Not available
+   * @retval     UPLL_RC_ERR_CFG_SEMANTIC      Policy Profile Record not
+   *                                           available
+   * @retval     UPLL_RC_SUCCESS               Successful completion.
+   * @retval     UPLL_RC_ERR_GENERIC           Generic Errors.
+   * @retval     UPLL_RC_ERR_DB_ACCESS         Error accessing DB.
+   */
+  upll_rc_t ReadMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
+                   DalDmlIntf *dmi);
+
+  /**
+   * @Brief This API is used to read the siblings configuration
+   *            and statistics
+   *
+   * @param[in]  req                           Describes
+   *                                           RequestResponderHeaderClass.
+   * @param[out] ikey                          Pointer to ConfigKeyVal Class.
+   * @param[in]  begin                         Describes read from begin or not
+   * @param[in]  dmi                           Pointer to DalDmlIntf Class.
+   *
+   * @retval     UPLL_RC_SUCCESS               Successful completion.
+   * @retval     UPLL_RC_ERR_GENERIC           Generic Errors.
+   * @retval     UPLL_RC_ERR_NO_SUCH_INSTANCE  Record Not available
+   * @retval     UPLL_RC_ERR_CFG_SEMANTIC      PolicyProfile Record not found
+   * @retval     UPLL_RC_ERR_DB_ACCESS         Error accessing DB.
+   */
+  upll_rc_t ReadSiblingMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
+                          bool begin, DalDmlIntf *dmi);
+
+  /**
+   * @Brief Method used to get the Bind Info Structure for Rename Purpose.
+   *
+   * @param[in] key_type   Describes the KT Information.
+   * @param[in] binfo
+   * @param[in] nattr      Describes the Tbl For which the Operation is
+   *                       Targeted.
+   * @param[in] tbl        Describes the Table Information.
+   *
+   * @retval    pfc_true   Successful Completion.
+   * @retval    pfc_fasle  Failure.
+   */
+  bool GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo,
+                            int &nattr, MoMgrTables tbl);
+
+  /**
+   * @Brief Method to Copy The ConfigkeyVal with the Input Key.
+   *
+   * @param[out]  okey                 Pointer to ConfigKeyVal Class for
+   *                                   which attributes have to be copied.
+   * @param[in]   ikey                 Pointer to ConfigKeyVal Class.
+   *
+   * @retval      UPLL_RC_SUCCESS      Successfull Completion.
+   * @retval      UPLL_RC_ERR_GENERIC  Returned Generic Error.
+   */
+  upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
+
+  /**
+   * @Brief This API is used to read the policing map record in IMPORT's
+   * vbrpolicingmap table and check with CANDIDATES's policingprofile table
+   * If record exists return merge conflict
+   *
+   * @param[in] keytype                     Describes the keyType Information.
+   * @param[in] ctrlr_id                    Describes the Controller Name.
+   * @param[in] ikey                        This Contains the pointer to the
+   *                                        Class for which fields have to be
+   *                                        Validated before the Merge.
+   * @param[in] dmi                         Pointer to DalDmlIntf Class.
+   *
+   * @retval    UPLL_RC_SUCCESS             Successful completion.
+   * @retval    UPLL_RC_ERR_GENERIC         Generic Errors.
+   * @retval    UPLL_RC_ERR_MERGE_CONFLICT  Record already avilable
+   */
+  upll_rc_t MergeValidate(unc_key_type_t keytype, const char *ctrlr_id,
+                          ConfigKeyVal *ikey, DalDmlIntf *dmi);
+
+  /**
+   * @Brief This API is used to get the unc key name
+   * @param[out] ikey                 This Contains the pointer to the Class
+   for which fields have to be updated
+   with values from the parent Class.
+   *
+   * @param[in]  dt_type              Configuration Information.
+   * @param[in]  dmi                  Pointer to DalDmlIntf Class.
+   * @param[in]  ctrlr_id             Controller name.
+   *
+   * @retval     UPLL_RC_SUCCESS      Successful completion.
+   * @retval     UPLL_RC_ERR_GENERIC  Generic Errors.
+   */
+  upll_rc_t GetRenamedUncKey(ConfigKeyVal *ikey,
+                             upll_keytype_datatype_t dt_type, DalDmlIntf *dmi,
+                             uint8_t *ctrlr_id);
+
+  /**
+   * @Brief This API is used to get the renamed Controller's key
+   *
+   * @param[out] ikey                Contains the Pointer to ConfigkeyVal
+   *                                 Class and contains the Pfc Name.
+   * @param[in] dt_type              Configuratin information.
+   * @param[in] dmi                  Pointer to DalDmlIntf Class.
+   * @param[in] ctrlr_name           Controller name.
+   *
+   * @retval    UPLL_RC_SUCCESS      Successful completion.
+   * @retval    UPLL_RC_ERR_GENERIC  Generic Errors.
+   */
+  upll_rc_t GetRenamedControllerKey(ConfigKeyVal *ikey,
+                                    upll_keytype_datatype_t dt_type,
+                                    DalDmlIntf *dmi,
+                                    controller_domain *ctrlr_dom = NULL);
+
+  /**
+   * @Brief Method To Compare the Valid Check of Attributes
+   *
+   * @param[In/out] val1             Pointer to ConfigKeyVal Class which
+   *                                 contains only Valid Attributes.
+   * @param[in]     val2             Pointer to ConfigKeyVal Class.
+   * @param[in]     audit            Audit purpose.
+   *
+   * @retval        UPLL_RC_SUCCESS  Successful completion.
+   */
+  bool CompareValidValue(void *&val1, void *val2, bool audit);
+
+  /**
+   ** @Brief This method used to update the configstatus in Db during
+   **        Trasaction Operation
+   **
+   ** @param[in]  ckv                  Pointer to ConfigkeyVal class.
+   ** @param[in]  op                   Type of operation
+   ** @param[in]  driver_result        Result code from Driver.
+   ** @param[in]  nreq                 Pointer to ConfigkeyVal.
+   ** @param[out] ctrlr_key            Pointer to ConfigkeyVal for controller.
+   **
+   ** @retval     UPLL_RC_SUCCESS      Successful completion.
+   ** @retval     UPLL_RC_ERR_GENERIC  Generic Errors.
+   **/
+  upll_rc_t UpdateConfigStatus(ConfigKeyVal *ckv,
+                               unc_keytype_operation_t op,
+                               uint32_t driver_result,
+                               ConfigKeyVal *nreq,
                                DalDmlIntf *dmi,
-                               ConfigKeyVal**okey);
+                               ConfigKeyVal *ctrlr_key);
+
+  /**
+   * @Brief This API updates the Configuration status for AuditConfigiration todo
+   *
+   * @param[in]  cs_status            either UNC_CS_INVALID or UNC_CS_APPLIED.
+   * @param[in]  phase                Describes the phase of controller.
+   * @param[in]  ckv_running          Pointer to ConfigkeyVal.
+   * @param[in]  dmi                  Pointer to the DalDmlIntf(DB Interface)
+   *
+   * @retval     UPLL_RC_SUCCESS      Successful completion.
+   * @retval     UPLL_RC_ERR_GENERIC  Generic Errors.
+   */
+  upll_rc_t UpdateAuditConfigStatus(
+      unc_keytype_configstatus_t cs_status,
+      uuc::UpdateCtrlrPhase phase,
+      ConfigKeyVal *&ckv_running,
+      DalDmlIntf *dmi);
+
+  /**
+   * @Brief Method to compare to keys
+   *
+   * @param[in]  key1  Pointer to key structure for comparision
+   * @param[in]  key2  Pointer to key for comparision
+   *
+   * @return  TRUE   If keys match
+   * @return  FALSE  If keys dont match
+   */
+  bool CompareKey(void *key1, void *key2);
+
+  /**
+   * @Brief This API is used to know the value availability of
+   *         val structure attributes
+   *
+   * @param[in]  val                  pointer to the value structure.
+   * @param[out] valid                reference to the enum containing
+   *                                  the possible values of Valid flag.
+   * @param[in]  indx                 Gives the index of attribute for
+   *                                  validity.
+   * @param[in]  dt_type              configuration for validity check.
+   * @param[in]  tbl                  Table name.
+   *
+   * @retval     UPLL_RC_SUCCESS      Successful completion.
+   * @retval     UPLL_RC_ERR_GENERIC  Generic Errors.
+   */
+  upll_rc_t GetValid(void *val, uint64_t indx, uint8_t *&valid,
+                     upll_keytype_datatype_t dt_type, MoMgrTables tbl);
+
+  /**
+   * @Brief This API is used to allocate the memory for incoming in configval
+   *
+   * @param[out] ck_val               This Contains the pointer to the Class
+   *                                  for which memory has to be allocated.
+   * @param[in]  dt_type              Configuration information.
+   * @param[in]  tbl                  Table name.
+   *
+   * @retval     UPLL_RC_SUCCESS      Successful completion.
+   * @retval     UPLL_RC_ERR_GENERIC  Generic Errors.
+   */
+  upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
+                     MoMgrTables tbl);
+
+  /**
+   * @Brief This API is used to get the duplicate configkeyval
+   *
+   * @param[out] okey                 This Contains the pointer to the Class
+   *                                  for which fields have to be updated
+   *                                  with values from the Request.
+   * @param[in]  req                  This Contains the pointer to the Class
+   *                                  which is used for the Duplication.
+   * @param[in]  tbl                  Table name
+   *
+   * @retval     UPLL_RC_SUCCESS      Successful completion.
+   * @retval     UPLL_RC_ERR_GENERIC  Generic Errors.
+   */
+  upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
+                            MoMgrTables tbl);
+
+  /**
+   * @Brief Method used to fill the CongigKeyVal with the Parent Class
+   *            Information.
+   *
+   * @param[out] okey                This Contains the pointer to the
+   *                                 ConfigKeyVal Class for which fields have
+   *                                 to be updated with values from the
+   *                                 parent Class.
+   * @param[in] parent_key           This Contains the pointer to the
+   *                                 ConfigKeyVal Class which is the
+   *                                 Parent class used to fill the details.
+   *
+   * @retval    UPLL_RC_SUCCESS      Successful completion.
+   * @retval    UPLL_RC_ERR_GENERIC  Generic Errors.
+   */
+  upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *parent_key);
+
+  /**
+   * @Brief Validates the syntax of the specified key and value structure
+   *        for KT_VBR_POLICINGMAP/KT_VBR_POLICINGMAP_ENTRY keytype
+   *
+   * @param[in] IpcReqRespHeader contains first 8 fields of input request structure
+   * @param[in] ConfigKeyVal key and value structure.
+   *
+   * @retval UPLL_RC_SUCCESS               Successful.
+   * @retval UPLL_RC_ERR_CFG_SYNTAX        Syntax error.
+   * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE  key_vbr is not available.
+   * @retval UPLL_RC_ERR_GENERIC           Generic failure.
+   * @retval UPLL_RC_ERR_INVALID_OPTION1   option1 is not valid.
+   * @retval UPLL_RC_ERR_INVALID_OPTION2   option2 is not valid.
+   */
+  upll_rc_t ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *key);
+
+  /**
+   * @Brief Checks if the specified key type(KT_VBR_POLICINGMAP) and
+   *        associated attributes are supported on the given controller,
+   *        based on the valid flag
+   *
+   * @param[in] IpcReqRespHeader  contains first 8 fields of input request structure
+   * @param[in] ConfigKeyVal      contains key and value structure.
+   * @param[in] ctrlr_name        controller name
+   *
+   * @retval  UPLL_RC_SUCCESS              Validation succeeded.
+   * @retval  UPLL_RC_ERR_GENERIC          Validation failure.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION1  Option1 is not valid.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION2  Option2 is not valid.
+   */
+  upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *ikey,
+                               const char *ctrlr_name = NULL);
+  /**
+   * @Brief Method used to fill the CongigKeyVal with the Parent Class
+   *            Information.
+   *
+   * @param[out] okey                This Contains the pointer to the
+   *                                 ConfigKeyVal Class for which fields have
+   *                                 to be updated with values from the
+   *                                 parent Class.
+   * @param[in] parent_key           This Contains the pointer to the
+   *                                 ConfigKeyVal Class which is the
+   *                                 Parent class used to fill the details.
+   *
+   * @retval    UPLL_RC_SUCCESS      Successful completion.
+   * @retval    UPLL_RC_ERR_GENERIC  Generic Errors.
+   */
+  upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey,
+                               ConfigKeyVal *ikey);
+
+  /**
+   * @brief  Method used for Restoring PolicingProfile in the Controller Table
+   *
+   * @param[in]      ikey       Pointer to ConfigKeyVal Class
+   * @param[in]      dt_type    Describes Configiration Information.
+   * @param[in]      tbl        Describe the destination table
+   * @param[in]      dmi        Pointer to DalDmlIntf Class.
+   *
+   * @retval  UPLL_RC_SUCCESS      Successfull completion.
+   * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
+   * @retval  UPLL_RC_ERR_INSTANCE_EXISTS       Record already exists
+   * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
+   */
+
+  upll_rc_t RestorePOMInCtrlTbl(ConfigKeyVal *ikey,
+                                upll_keytype_datatype_t dt_type,
+                                MoMgrTables tbl,
+                                DalDmlIntf* dmi);
 
-    upll_rc_t ReadDetailRecord(IpcReqRespHeader *req,
+  upll_rc_t ConstructReadDetailResponse(ConfigKeyVal *ikey,
+                                        ConfigKeyVal *drv_resp_ckv,
+                                        upll_keytype_datatype_t dt_type,
+                                        unc_keytype_operation_t op,
+                                        DbSubOp dbop,
+                                        DalDmlIntf *dmi,
+                                        ConfigKeyVal **okey);
+
+  bool IsValidKey(void *key, uint64_t index);
+
+  upll_rc_t ConstructReadDetailEntryResponse(ConfigKeyVal *ikey,
+                                             ConfigKeyVal *dup_key,
+                                             ConfigKeyVal *drv_resp_ckv,
+                                             upll_keytype_datatype_t dt_type,
+                                             unc_keytype_operation_t op,
+                                             DbSubOp dbop,
+                                             DalDmlIntf *dmi,
+                                             ConfigKeyVal **okey);
+
+  upll_rc_t GetReadVbrEntryKey(ConfigKeyVal *&dup_key,
+                               ConfigKeyVal *ikey);
+  upll_rc_t SwapKeyVal(ConfigKeyVal *ikey, ConfigKeyVal *&okey,
+                       DalDmlIntf *dmi, uint8_t *ctrlr) {
+    return UPLL_RC_SUCCESS;
+  }
+  upll_rc_t ReadDTsateNormal(ConfigKeyVal *ikey,
+                             ConfigKeyVal* dup_key,
+                             upll_keytype_datatype_t  dt_type,
+                             DbSubOp dbop,
+                             DalDmlIntf *dmi,
+                             ConfigKeyVal**okey);
+
+  upll_rc_t ReadDetailRecord(IpcReqRespHeader *req,
                              ConfigKeyVal *&ikey,
                              DalDmlIntf *dmi);
 
-    upll_rc_t ValidateAttribute(ConfigKeyVal *kval,
-                                DalDmlIntf *dmi,
-                                IpcReqRespHeader *req = NULL);
-    upll_rc_t ReadSiblingCount(IpcReqRespHeader *req,
-                               ConfigKeyVal* ikey,
+  upll_rc_t ValidateAttribute(ConfigKeyVal *kval,
+                              DalDmlIntf *dmi,
+                              IpcReqRespHeader *req = NULL);
+  upll_rc_t ReadSiblingCount(IpcReqRespHeader *req,
+                             ConfigKeyVal* ikey,
+                             DalDmlIntf *dmi);
+  upll_rc_t IsKeyInUse(upll_keytype_datatype_t dt_type,
+                       const ConfigKeyVal *ckv,
+                       bool *in_use,
+                       DalDmlIntf *dmi);
+  upll_rc_t GetReadVbrKey(ConfigKeyVal *&dup_key, ConfigKeyVal *ikey);
+
+
+  upll_rc_t OnPolicerFullAlarm(string ctrlr_name ,
+                               string domain_id,
+                               const key_vtn_t &key_vtn,
+                               const pfcdrv_policier_alarm_data_t &alarm_data,
+                               bool &alarm_raised,
                                DalDmlIntf *dmi);
-    upll_rc_t IsKeyInUse(upll_keytype_datatype_t dt_type,
-                     const ConfigKeyVal *ckv,
-                     bool *in_use,
-                     DalDmlIntf *dmi);
-    upll_rc_t GetReadVbrKey(ConfigKeyVal *&dup_key, ConfigKeyVal *ikey);
-
-
-    upll_rc_t OnPolicerFullAlarm(string ctrlr_name ,
-                                 string domain_id,
-                                 const key_vtn_t &key_vtn,
-                                 const pfcdrv_policier_alarm_data_t &alarm_data,
-                                 bool &alarm_raised,
-                                 DalDmlIntf *dmi);
-
-    upll_rc_t OnPolicerFailAlarm(string ctrlr_name ,
-                                 string domain_id,
-                                 const key_vtn_t &key_vtn,
-                                 const pfcdrv_policier_alarm_data_t &alarm_data,
-                                 bool &alarm_raised,
-                                 DalDmlIntf *dmi);
-
-    upll_rc_t CreateAuditMoImpl(ConfigKeyVal *ikey,
-                                 DalDmlIntf *dmi,
-                                 const char *ctrlr_id);
-    upll_rc_t DeleteChildrenPOM(ConfigKeyVal *ikey,
-                                upll_keytype_datatype_t dt_type,
-                                DalDmlIntf *dmi);
 
-    upll_rc_t IsPolicingProfileConfigured(const char* policingprofile_name,
-                                          DalDmlIntf *dmi);
+  upll_rc_t OnPolicerFailAlarm(string ctrlr_name ,
+                               string domain_id,
+                               const key_vtn_t &key_vtn,
+                               const pfcdrv_policier_alarm_data_t &alarm_data,
+                               bool &alarm_raised,
+                               DalDmlIntf *dmi);
 
-    upll_rc_t SetValidAudit(ConfigKeyVal *&ikey);
+  upll_rc_t CreateAuditMoImpl(ConfigKeyVal *ikey,
+                              DalDmlIntf *dmi,
+                              const char *ctrlr_id);
 
-    bool FilterAttributes(void *&val1,
-                          void *val2,
-                          bool copy_to_running,
-                          unc_keytype_operation_t op);
+  upll_rc_t DeleteChildrenPOM(ConfigKeyVal *ikey,
+                              upll_keytype_datatype_t dt_type,
+                              DalDmlIntf *dmi);
 
-    upll_rc_t UpdateVnodeVal(ConfigKeyVal *ikey,
-                             DalDmlIntf *dmi,
-                             upll_keytype_datatype_t data_type,
-                             bool &no_rename);
+  upll_rc_t IsPolicingProfileConfigured(const char* policingprofile_name,
+                                        DalDmlIntf *dmi);
+
+  upll_rc_t SetValidAudit(ConfigKeyVal *&ikey);
+
+  bool FilterAttributes(void *&val1,
+                        void *val2,
+                        bool copy_to_running,
+                        unc_keytype_operation_t op);
+
+  upll_rc_t UpdateVnodeVal(ConfigKeyVal *ikey,
+                           DalDmlIntf *dmi,
+                           upll_keytype_datatype_t data_type,
+                           bool &no_rename);
 
-    upll_rc_t IsRenamed(ConfigKeyVal *ikey,
-                        upll_keytype_datatype_t dt_type,
-                        DalDmlIntf *dmi,
-                        uint8_t &rename);
+  upll_rc_t IsRenamed(ConfigKeyVal *ikey,
+                      upll_keytype_datatype_t dt_type,
+                      DalDmlIntf *dmi,
+                      uint8_t &rename);
 
-    upll_rc_t GetPolicingProfileConfigKey(
-          const char *pp_name, ConfigKeyVal *&okey,
-          DalDmlIntf *dmi);
+  upll_rc_t GetPolicingProfileConfigKey(
+      const char *pp_name, ConfigKeyVal *&okey,
+      DalDmlIntf *dmi);
 
-    upll_rc_t SetRenameFlag(ConfigKeyVal *ikey,
-                            DalDmlIntf *dmi,
-                            IpcReqRespHeader *req);
+  upll_rc_t SetRenameFlag(ConfigKeyVal *ikey,
+                          DalDmlIntf *dmi,
+                          IpcReqRespHeader *req);
 };
-}  // kt_momgr
-}  // upll
-}  // unc
+}  // namespace kt_momgr
+}  // namespace upll
+}  // namespace unc
 #endif  // MODULES_UPLL_VBR_POLICINGMAP_MOMGR_HH_
index ffb1f8896a9bb60b1e7c131d942245909c7ed881..1992aae805956a9bed2b54a8e1ce8170bf36b8df 100644 (file)
@@ -1,14 +1,18 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-#include "vlanmap_momgr.hh"
 #include <ctype.h>
+#include "vlanmap_momgr.hh"
+#include "config_mgr.hh"
+#include "vlink_momgr.hh"
+#include "vbr_if_flowfilter_momgr.hh"
+#include "vbr_if_policingmap_momgr.hh"
 #define NUM_KEY_MAIN_TBL_ 5
 #define INVALID_LOG_PORT_ID_VALID 0xFF
 namespace unc {
@@ -17,66 +21,77 @@ namespace kt_momgr {
 uint16_t VlanMapMoMgr::kVbrVlanMapNumChildKey = 2;
 
 BindInfo VlanMapMoMgr::vlan_map_bind_info[] = {
-    { uudst::vbridge_vlanmap::kDbiVtnName, CFG_KEY, offsetof(
-        key_vlan_map, vbr_key.vtn_key.vtn_name),
-      uud::kDalChar, 32 },
-    { uudst::vbridge_vlanmap::kDbiVbrName, CFG_KEY, offsetof(
-        key_vlan_map, vbr_key.vbridge_name),
-      uud::kDalChar, 32 },
-    { uudst::vbridge_vlanmap::kDbiLogicalPortId, CFG_KEY, offsetof(
-        key_vlan_map, logical_port_id),
-      uud::kDalChar, 320 },
-    { uudst::vbridge_vlanmap::kDbiLogicalPortIdValid, CFG_KEY, offsetof(
-        key_vlan_map, logical_port_id_valid),
-      uud::kDalUint8, 1 },
-    { uudst::vbridge_vlanmap::kDbiVlanid, CFG_VAL, offsetof(val_vlan_map,
-                                                            vlan_id),
-      uud::kDalUint16, 1 },
-    { uudst::vbridge_vlanmap::kDbiCtrlrName, CK_VAL, offsetof(key_user_data_t,
-                                                              ctrlr_id),
-      uud::kDalChar, 32 },
-    { uudst::vbridge_vlanmap::kDbiDomainId, CK_VAL, offsetof(key_user_data_t,
-                                                             domain_id),
-      uud::kDalChar, 32 },
-    { uudst::vbridge_vlanmap::kDbiValidVlanid, CFG_META_VAL, offsetof(
-        val_vlan_map, valid[0]),
-      uud::kDalUint8, 1 },
-    { uudst::vbridge_vlanmap::kDbiCsVlanid, CS_VAL, offsetof(val_vlan_map,
-                                                             cs_attr[0]),
-      uud::kDalUint8, 1 },
-    { uudst::vbridge_vlanmap::kDbiCsRowStatus, CS_VAL, offsetof(val_vlan_map,
-                                                                cs_row_status),
-      uud::kDalUint8, 1 },
-    { uudst::vbridge_vlanmap::kDbiVbrVlanMapFlags, CK_VAL, offsetof(
-        key_user_data_t, flags),
-      uud::kDalUint8, 1 }, };
+  { uudst::vbridge_vlanmap::kDbiVtnName, CFG_KEY, offsetof(
+          key_vlan_map, vbr_key.vtn_key.vtn_name),
+  uud::kDalChar, 32 },
+  { uudst::vbridge_vlanmap::kDbiVbrName, CFG_KEY, offsetof(
+          key_vlan_map, vbr_key.vbridge_name),
+  uud::kDalChar, 32 },
+  { uudst::vbridge_vlanmap::kDbiLogicalPortId, CFG_KEY, offsetof(
+          key_vlan_map, logical_port_id),
+  uud::kDalChar, 320 },
+  { uudst::vbridge_vlanmap::kDbiLogicalPortIdValid, CFG_KEY, offsetof(
+          key_vlan_map, logical_port_id_valid),
+  uud::kDalUint8, 1 },
+  /* VlanmapOnBoundary: New value structure */
+  { uudst::vbridge_vlanmap::kDbiVlanid, CFG_VAL, offsetof(pfcdrv_val_vlan_map,
+                                                          vm.vlan_id),
+  uud::kDalUint16, 1 },
+  { uudst::vbridge_vlanmap::kDbiBdryRefCount, CFG_VAL, offsetof(
+          pfcdrv_val_vlan_map, bdry_ref_count),
+  uud::kDalUint32, 1 },
+  { uudst::vbridge_vlanmap::kDbiCtrlrName, CK_VAL, offsetof(key_user_data_t,
+                                                            ctrlr_id),
+  uud::kDalChar, 32 },
+  { uudst::vbridge_vlanmap::kDbiDomainId, CK_VAL, offsetof(key_user_data_t,
+                                                           domain_id),
+  uud::kDalChar, 32 },
+
+  { uudst::vbridge_vlanmap::kDbiVbrVlanMapFlags, CK_VAL, offsetof(
+          key_user_data_t, flags),
+  uud::kDalUint8, 1 },
+  /* VlanmapOnBoundary: New value structure */
+  { uudst::vbridge_vlanmap::kDbiValidVlanid, CFG_META_VAL, offsetof(
+          pfcdrv_val_vlan_map, vm.valid[0]),
+  uud::kDalUint8, 1 },
+  { uudst::vbridge_vlanmap::kDbiValidBdryRefCount, CFG_META_VAL, offsetof(
+          pfcdrv_val_vlan_map, valid[1]),
+  uud::kDalUint8, 1 },
+
+  { uudst::vbridge_vlanmap::kDbiCsRowStatus, CS_VAL, offsetof(
+          pfcdrv_val_vlan_map,
+          vm.cs_row_status),
+  uud::kDalUint8, 1 },
+  { uudst::vbridge_vlanmap::kDbiCsVlanid, CS_VAL, offsetof(pfcdrv_val_vlan_map,
+                                                           vm.cs_attr[0]),
+  uud::kDalUint8, 1 }, };
 
 BindInfo VlanMapMoMgr::vlan_map_maintbl_update_key_bind_info[] = {
-    { uudst::vbridge_vlanmap::kDbiVtnName, CFG_MATCH_KEY, offsetof(
-        key_vlan_map, vbr_key.vtn_key.vtn_name),
-      uud::kDalChar, (kMaxLenVtnName+1) },
-    { uudst::vbridge_vlanmap::kDbiVbrName, CFG_MATCH_KEY, offsetof(
-        key_vlan_map, vbr_key.vbridge_name),
-      uud::kDalChar, (kMaxLenVnodeName+1) },
-    { uudst::vbridge_vlanmap::kDbiVtnName, CFG_INPUT_KEY, offsetof(
-        key_rename_vnode_info_t, new_unc_vtn_name),
-      uud::kDalChar, (kMaxLenVtnName+1) },
-    { uudst::vbridge_vlanmap::kDbiVbrName, CFG_INPUT_KEY, offsetof(
-        key_rename_vnode_info_t, new_unc_vnode_name),
-      uud::kDalChar, (kMaxLenVnodeName+1) },
-    { uudst::vbridge_vlanmap::kDbiVbrVlanMapFlags, CK_VAL, offsetof(
-        key_user_data_t, flags),
-      uud::kDalUint8, 1 },
+  { uudst::vbridge_vlanmap::kDbiVtnName, CFG_MATCH_KEY, offsetof(
+          key_vlan_map, vbr_key.vtn_key.vtn_name),
+  uud::kDalChar, (kMaxLenVtnName+1) },
+  { uudst::vbridge_vlanmap::kDbiVbrName, CFG_MATCH_KEY, offsetof(
+          key_vlan_map, vbr_key.vbridge_name),
+  uud::kDalChar, (kMaxLenVnodeName+1) },
+  { uudst::vbridge_vlanmap::kDbiVtnName, CFG_INPUT_KEY, offsetof(
+          key_rename_vnode_info_t, new_unc_vtn_name),
+  uud::kDalChar, (kMaxLenVtnName+1) },
+  { uudst::vbridge_vlanmap::kDbiVbrName, CFG_INPUT_KEY, offsetof(
+          key_rename_vnode_info_t, new_unc_vnode_name),
+  uud::kDalChar, (kMaxLenVnodeName+1) },
+  { uudst::vbridge_vlanmap::kDbiVbrVlanMapFlags, CK_VAL, offsetof(
+          key_user_data_t, flags),
+  uud::kDalUint8, 1 },
 };
 
 VlanMapMoMgr::VlanMapMoMgr() {
   UPLL_FUNC_TRACE
-  ntable = MAX_MOMGR_TBLS;
+      ntable = MAX_MOMGR_TBLS;
   table = new Table *[ntable];
   table[MAINTBL] = new Table(uudst::kDbiVbrVlanMapTbl, UNC_KT_VBR_VLANMAP,
-                   vlan_map_bind_info, IpctSt::kIpcStKeyVlanMap,
-                   IpctSt::kIpcStValVlanMap,
-                   uudst::vbridge_vlanmap::kDbiVbrVlanMapNumCols);
+                             vlan_map_bind_info, IpctSt::kIpcStKeyVlanMap,
+                             IpctSt::kIpcStValVlanMap,
+                             uudst::vbridge_vlanmap::kDbiVbrVlanMapNumCols);
   table[RENAMETBL] = NULL;
   table[CTRLRTBL] = NULL;
   nchild = 0;
@@ -109,8 +124,8 @@ bool VlanMapMoMgr::IsValidKey(void *key,
   switch (index) {
     case uudst::vbridge_vlanmap::kDbiVtnName:
       ret_val = ValidateKey(reinterpret_cast<char *>
-                           (vlanmap_key->vbr_key.vtn_key.vtn_name),
-                           kMinLenVtnName, kMaxLenVtnName);
+                            (vlanmap_key->vbr_key.vtn_key.vtn_name),
+                            kMinLenVtnName, kMaxLenVtnName);
       if (ret_val != UPLL_RC_SUCCESS) {
         UPLL_LOG_TRACE(
             "syntax check failure for key_vlan_map->vbr_key.vtn_key.vtn_name");
@@ -119,8 +134,8 @@ bool VlanMapMoMgr::IsValidKey(void *key,
       break;
     case uudst::vbridge_vlanmap::kDbiVbrName:
       ret_val = ValidateKey(reinterpret_cast<char *>
-                           (vlanmap_key->vbr_key.vbridge_name),
-                           kMinLenVnodeName, kMaxLenVnodeName);
+                            (vlanmap_key->vbr_key.vbridge_name),
+                            kMinLenVnodeName, kMaxLenVnodeName);
       if (ret_val != UPLL_RC_SUCCESS) {
         UPLL_LOG_TRACE("VBR Name is not valid(%d)", ret_val);
         return false;
@@ -128,15 +143,15 @@ bool VlanMapMoMgr::IsValidKey(void *key,
       break;
     case uudst::vbridge_vlanmap::kDbiLogicalPortId:
       if (!ValidateLogicalPortId(reinterpret_cast<char *>
-                           (vlanmap_key->logical_port_id),
-                           kMinLenLogicalPortId, kMaxLenLogicalPortId)) {
+                                 (vlanmap_key->logical_port_id),
+                                 kMinLenLogicalPortId, kMaxLenLogicalPortId)) {
         UPLL_LOG_TRACE("Switch ID is not valid");
         return false;
       }
       break;
     case uudst::vbridge_vlanmap::kDbiLogicalPortIdValid:
       if (!ValidateNumericRange(vlanmap_key->logical_port_id_valid, PFC_FALSE,
-                            PFC_TRUE, true, true)) {
+                                PFC_TRUE, true, true)) {
         UPLL_LOG_TRACE("LogicalPortId validis not valid");
         return false;
       }
@@ -154,9 +169,10 @@ upll_rc_t VlanMapMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   key_vlan_map_t *vlanmap_key;
   void *pkey;
+  bool    cfgval_ctrlr = false;
   if (parent_key == NULL) {
     vlanmap_key = reinterpret_cast<key_vlan_map_t *>
-                  (ConfigKeyVal::Malloc(sizeof(key_vlan_map_t)));
+        (ConfigKeyVal::Malloc(sizeof(key_vlan_map_t)));
     vlanmap_key->logical_port_id_valid = INVALID_LOG_PORT_ID_VALID;
     if (okey) delete okey;
     okey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP, IpctSt::kIpcStKeyVlanMap,
@@ -167,46 +183,90 @@ upll_rc_t VlanMapMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
   }
   if (!pkey) return UPLL_RC_ERR_GENERIC;
   if (okey) {
-    if (okey->get_key_type() != UNC_KT_VBR_VLANMAP) 
+    if (okey->get_key_type() != UNC_KT_VBR_VLANMAP)
       return UPLL_RC_ERR_GENERIC;
     vlanmap_key = reinterpret_cast<key_vlan_map_t *>(okey->get_key());
   } else {
     vlanmap_key = reinterpret_cast<key_vlan_map_t *>
-                  (ConfigKeyVal::Malloc(sizeof(key_vlan_map_t)));
+        (ConfigKeyVal::Malloc(sizeof(key_vlan_map_t)));
     vlanmap_key->logical_port_id_valid = INVALID_LOG_PORT_ID_VALID;
   }
   unc_key_type_t keytype = parent_key->get_key_type();
   switch (keytype) {
     case UNC_KT_VTN:
       uuu::upll_strncpy(vlanmap_key->vbr_key.vtn_key.vtn_name,
-              reinterpret_cast<key_vtn *>(pkey)->vtn_name,
-              (kMaxLenVtnName+1));
+                        reinterpret_cast<key_vtn *>(pkey)->vtn_name,
+                        (kMaxLenVtnName+1));
       break;
     case UNC_KT_VBRIDGE:
       uuu::upll_strncpy(vlanmap_key->vbr_key.vtn_key.vtn_name,
-             (reinterpret_cast<key_vbr *>(pkey))->vtn_key.vtn_name,
-             kMaxLenVtnName+1);
+                        (reinterpret_cast<key_vbr *>(pkey))->vtn_key.vtn_name,
+                        kMaxLenVtnName+1);
       uuu::upll_strncpy(vlanmap_key->vbr_key.vbridge_name,
-             (reinterpret_cast<key_vbr *>(pkey))->vbridge_name,
-             kMaxLenVnodeName+1);
+                        (reinterpret_cast<key_vbr *>(pkey))->vbridge_name,
+                        kMaxLenVnodeName+1);
+      break;
+    case UNC_KT_VBR_IF:
+      uuu::upll_strncpy(vlanmap_key->vbr_key.vtn_key.vtn_name,
+                        (reinterpret_cast<key_vbr_if *>
+                         (pkey))->vbr_key.vtn_key.vtn_name,
+                        kMaxLenVtnName+1);
+      uuu::upll_strncpy(vlanmap_key->vbr_key.vbridge_name,
+                        (reinterpret_cast<key_vbr_if *>
+                         (pkey))->vbr_key.vbridge_name,
+                        kMaxLenVnodeName+1);
       break;
     case UNC_KT_VBR_VLANMAP:
       uuu::upll_strncpy(
-           vlanmap_key->vbr_key.vtn_key.vtn_name,
-           (reinterpret_cast<key_vlan_map_t *>(pkey))->vbr_key.vtn_key.vtn_name,
-           kMaxLenVtnName+1);
+          vlanmap_key->vbr_key.vtn_key.vtn_name,
+          (reinterpret_cast<key_vlan_map_t *>(pkey))->vbr_key.vtn_key.vtn_name,
+          kMaxLenVtnName+1);
       uuu::upll_strncpy(vlanmap_key->vbr_key.vbridge_name,
-           (reinterpret_cast<key_vlan_map_t *>(pkey))->vbr_key.vbridge_name,
-           kMaxLenVnodeName+1);
+                        (reinterpret_cast<key_vlan_map_t *>
+                         (pkey))->vbr_key.vbridge_name,
+                        kMaxLenVnodeName+1);
       vlanmap_key->logical_port_id_valid =
           (uint8_t)(reinterpret_cast<key_vlan_map_t *>
-          (pkey))->logical_port_id_valid;
+                    (pkey))->logical_port_id_valid;
       if (vlanmap_key->logical_port_id_valid)
-          uuu::upll_strncpy(vlanmap_key->logical_port_id,
-          (reinterpret_cast<key_vlan_map_t *>(pkey))->logical_port_id,
-          kMaxLenLogicalPortId);
+        uuu::upll_strncpy(vlanmap_key->logical_port_id,
+                          (reinterpret_cast<key_vlan_map_t *>
+                           (pkey))->logical_port_id,
+                          kMaxLenLogicalPortId);
       else
         *vlanmap_key->logical_port_id = '\0';
+      break;
+      /* VlanmapOnBoundary: To handle vlink kt */
+    case UNC_KT_VLINK: {
+      uint8_t *vnode_name;
+      uint8_t flags = 0;
+      val_vlink *vlink_val = reinterpret_cast<val_vlink *>(GetVal(parent_key));
+      if (!vlink_val) {
+        UPLL_LOG_TRACE("ERROR");
+        if (!okey || !(okey->get_key()))
+          FREE_IF_NOT_NULL(vlanmap_key);
+        return UPLL_RC_ERR_GENERIC;
+      }
+
+      GET_USER_DATA_FLAGS(parent_key->get_cfg_val(), flags);
+      flags &=  VLINK_FLAG_NODE_POS;
+      UPLL_LOG_DEBUG("Vlink flag node position %d", flags);
+
+      if (flags == kVlinkVnode2) {
+        cfgval_ctrlr = true;
+        vnode_name = vlink_val->vnode2_name;
+      } else {
+        vnode_name = vlink_val->vnode1_name;
+      }
+      uuu::upll_strncpy(vlanmap_key->vbr_key.vtn_key.vtn_name,
+                        reinterpret_cast<key_vlink *>(pkey)->vtn_key.vtn_name,
+                        (kMaxLenVtnName + 1));
+      if (vnode_name)
+        uuu::upll_strncpy(vlanmap_key->vbr_key.vbridge_name, vnode_name,
+                          (kMaxLenVnodeName + 1));
+
+      break;
+    }
     default:
       break;
   }
@@ -220,7 +280,11 @@ upll_rc_t VlanMapMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
     free(vlanmap_key);
     result_code = UPLL_RC_ERR_GENERIC;
   } else {
-    SET_USER_DATA(okey, parent_key);
+    if (cfgval_ctrlr) {
+      SET_USER_DATA(okey, parent_key->get_cfg_val());
+    } else {
+      SET_USER_DATA(okey, parent_key);
+    }
   }
   return result_code;
 }
@@ -239,13 +303,15 @@ upll_rc_t VlanMapMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
   key_vlan_map_t *pkey = reinterpret_cast<key_vlan_map_t *>(ikey->get_key());
   if (!pkey) return UPLL_RC_ERR_GENERIC;
   key_vbr *vbr_key = reinterpret_cast<key_vbr *>
-    (ConfigKeyVal::Malloc(sizeof(key_vbr)));
+      (ConfigKeyVal::Malloc(sizeof(key_vbr)));
   uuu::upll_strncpy(vbr_key->vtn_key.vtn_name,
-         (reinterpret_cast<key_vlan_map_t *>(pkey))->vbr_key.vtn_key.vtn_name,
-         kMaxLenVtnName+1);
+                    (reinterpret_cast<key_vlan_map_t *>
+                     (pkey))->vbr_key.vtn_key.vtn_name,
+                    kMaxLenVtnName+1);
   uuu::upll_strncpy(vbr_key->vbridge_name,
-         (reinterpret_cast<key_vlan_map_t *>(pkey))->vbr_key.vbridge_name,
-         kMaxLenVnodeName+1);
+                    (reinterpret_cast<key_vlan_map_t *>
+                     (pkey))->vbr_key.vbridge_name,
+                    kMaxLenVnodeName+1);
   okey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, vbr_key, NULL);
   if (okey == NULL) {
     free(vbr_key);
@@ -265,9 +331,10 @@ upll_rc_t VlanMapMoMgr::AllocVal(ConfigVal *&ck_val,
   if (ck_val != NULL) return UPLL_RC_ERR_GENERIC;
   switch (tbl) {
     case MAINTBL:
+      /* VlanmapOnBoundary: Val structre is modified */
       val = reinterpret_cast<void *>(
-                     ConfigKeyVal::Malloc(sizeof(val_vlan_map)));
-      ck_val = new ConfigVal(IpctSt::kIpcStValVlanMap, val);
+          ConfigKeyVal::Malloc(sizeof(pfcdrv_val_vlan_map)));
+      ck_val = new ConfigVal(IpctSt::kIpcStPfcdrvValVlanMap, val);
       break;
     default:
       val = NULL;
@@ -285,22 +352,37 @@ upll_rc_t VlanMapMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
   ConfigVal *tmp1 = NULL, *tmp = (req)->get_cfg_val();
 
   if (tmp) {
+    /* VlanmapOnBoundary: Modified for new val struct */
+    void *oval;
     if (tbl == MAINTBL) {
-      val_vlan_map *ival = reinterpret_cast<val_vlan_map *>(GetVal(req));
-      if (!ival) {
-        UPLL_LOG_DEBUG("Invalid vlanmap");
-        return UPLL_RC_ERR_GENERIC;
+      if ((req->get_cfg_val())->get_st_num() == IpctSt::kIpcStValVlanMap) {
+        val_vlan_map *ival = reinterpret_cast<val_vlan_map *>(GetVal(req));
+        if (!ival) return UPLL_RC_ERR_GENERIC;
+
+        val_vlan_map *vlanmap_val = reinterpret_cast<val_vlan_map *>(
+            ConfigKeyVal::Malloc(sizeof(val_vlan_map)));
+        memcpy(vlanmap_val, ival, sizeof(val_vlan_map));
+        oval = reinterpret_cast<void *>(vlanmap_val);
+      } else {
+        pfcdrv_val_vlan_map *ival =
+            reinterpret_cast<pfcdrv_val_vlan_map *>(GetVal(req));
+        if (!ival) {
+          UPLL_LOG_DEBUG("Invalid vlanmap");
+          return UPLL_RC_ERR_GENERIC;
+        }
+        pfcdrv_val_vlan_map *vlanmap_val =
+            reinterpret_cast<pfcdrv_val_vlan_map *>
+            (ConfigKeyVal::Malloc(sizeof(pfcdrv_val_vlan_map)));
+        memcpy(vlanmap_val, ival, sizeof(pfcdrv_val_vlan_map));
+        oval = reinterpret_cast<void *>(vlanmap_val);
       }
-      val_vlan_map *vlanmap_val = reinterpret_cast<val_vlan_map *>
-                                  (ConfigKeyVal::Malloc(sizeof(val_vlan_map)));
-      memcpy(vlanmap_val, ival, sizeof(val_vlan_map));
-      tmp1 = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+      tmp1 = new ConfigVal(req->get_cfg_val()->get_st_num(), oval);
     }
   };
   void *tkey = (req != NULL) ? (req)->get_key() : NULL;
   key_vlan_map_t *ikey = reinterpret_cast<key_vlan_map_t *>(tkey);
   key_vlan_map_t *vlanmap_key = reinterpret_cast<key_vlan_map_t *>
-                                (ConfigKeyVal::Malloc(sizeof(key_vlan_map_t)));
+      (ConfigKeyVal::Malloc(sizeof(key_vlan_map_t)));
   memcpy(vlanmap_key, ikey, sizeof(key_vlan_map_t));
   okey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP, IpctSt::kIpcStKeyVlanMap,
                           vlanmap_key, tmp1);
@@ -308,6 +390,7 @@ upll_rc_t VlanMapMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
     SET_USER_DATA(okey, req);
   } else {
     delete tmp1;
+    free(vlanmap_key);
   }
   return UPLL_RC_SUCCESS;
 }
@@ -319,19 +402,24 @@ upll_rc_t VlanMapMoMgr::UpdateConfigStatus(ConfigKeyVal *ikey,
                                            DalDmlIntf *dmi,
                                            ConfigKeyVal *ctrlr_key) {
   UPLL_FUNC_TRACE;
-  val_vlan_map_t *vlanmap_val = reinterpret_cast<val_vlan_map_t*>(GetVal(ikey));
+  pfcdrv_val_vlan_map_t *drv_vlanmap_val =
+      reinterpret_cast<pfcdrv_val_vlan_map_t*>(GetVal(ikey));
+  if (drv_vlanmap_val == NULL) return UPLL_RC_ERR_GENERIC;
+  val_vlan_map_t *vlanmap_val = &(drv_vlanmap_val->vm);
 
   unc_keytype_configstatus_t cs_status =
       (driver_result == UPLL_RC_SUCCESS) ? UNC_CS_APPLIED : UNC_CS_NOT_APPLIED;
-  val_vlan_map *vlanmap_val2 = reinterpret_cast<val_vlan_map *>(GetVal(upd_key));
-  UPLL_LOG_TRACE("Key from Candidate %s",(ikey->ToStrAll()).c_str());
-  if (vlanmap_val == NULL) return UPLL_RC_ERR_GENERIC;
+  pfcdrv_val_vlan_map *drv_vlanmap_val2 =
+      reinterpret_cast<pfcdrv_val_vlan_map *>(GetVal(upd_key));
+  val_vlan_map_t      *vlanmap_val2     = &(drv_vlanmap_val2->vm);
+  UPLL_LOG_TRACE("Key from Candidate %s", (ikey->ToStrAll()).c_str());
+
   if (op == UNC_OP_CREATE) {
     vlanmap_val->cs_row_status = cs_status;
   } else if (op == UNC_OP_UPDATE) {
-    void *val = reinterpret_cast<void *>(vlanmap_val);
+    void *val = reinterpret_cast<void *>(drv_vlanmap_val);
     CompareValidValue(val, GetVal(upd_key), true);
-    UPLL_LOG_TRACE("Key from Running %s",(upd_key->ToStrAll()).c_str());
+    UPLL_LOG_TRACE("Key from Running %s", (upd_key->ToStrAll()).c_str());
     vlanmap_val->cs_row_status = vlanmap_val2->cs_row_status;
   } else if (op != UNC_OP_CREATE) {
     return UPLL_RC_ERR_GENERIC;
@@ -344,35 +432,44 @@ upll_rc_t VlanMapMoMgr::UpdateConfigStatus(ConfigKeyVal *ikey,
       vlanmap_val->cs_attr[loop] = cs_status;
     } else if ((UNC_VF_INVALID == vlanmap_val->valid[loop]) &&
                (UNC_OP_CREATE == op)) {
-        vlanmap_val->cs_attr[loop] = UNC_CS_APPLIED;
+      vlanmap_val->cs_attr[loop] = UNC_CS_APPLIED;
     } else if ((UNC_VF_INVALID == vlanmap_val->valid[loop]) &&
                (UNC_OP_UPDATE == op)) {
-        vlanmap_val->cs_attr[loop] = vlanmap_val2->cs_attr[loop];
+      vlanmap_val->cs_attr[loop] = vlanmap_val2->cs_attr[loop];
     }
   }
+  upll_rc_t result_code = UpdateParentOperStatus(ikey, dmi);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_TRACE("Update parent vbridge failed\n");
+  }
   return UPLL_RC_SUCCESS;
 }
 
+
 upll_rc_t VlanMapMoMgr::UpdateAuditConfigStatus(
-                                    unc_keytype_configstatus_t cs_status,
-                                    uuc::UpdateCtrlrPhase phase,
-                                    ConfigKeyVal *&ckv_running) {
+    unc_keytype_configstatus_t cs_status,
+    uuc::UpdateCtrlrPhase phase,
+    ConfigKeyVal *&ckv_running,
+    DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
-  val_vlan_map_t *val;
-  val = (ckv_running != NULL) ? reinterpret_cast<val_vlan_map_t *>
-                                (GetVal(ckv_running)) : NULL;
-  if (NULL == val) {
+  pfcdrv_val_vlan_map_t *drv_val = NULL;
+  val_vlan_map_t        *val     = NULL;
+  drv_val = (ckv_running != NULL) ? reinterpret_cast<pfcdrv_val_vlan_map_t *>
+      (GetVal(ckv_running)) : NULL;
+  if (NULL == drv_val) {
     return UPLL_RC_ERR_GENERIC;
   }
+  val = &(drv_val->vm);
   if (uuc::kUpllUcpCreate == phase) val->cs_row_status = cs_status;
   if ((uuc::kUpllUcpUpdate == phase) &&
-           (val->cs_row_status == UNC_CS_INVALID ||
-            val->cs_row_status == UNC_CS_NOT_APPLIED))
+      (val->cs_row_status == UNC_CS_INVALID ||
+       val->cs_row_status == UNC_CS_NOT_APPLIED))
     val->cs_row_status = cs_status;
   for (unsigned int loop = 0; loop < sizeof(val->valid) / sizeof(uint8_t);
-      ++loop) {
+       ++loop) {
     if ((cs_status == UNC_CS_INVALID &&
-        UNC_VF_VALID == val->valid[loop]) || cs_status == UNC_CS_APPLIED)
+         UNC_VF_VALID == val->valid[loop]) || cs_status == UNC_CS_APPLIED)
       val->cs_attr[loop] = cs_status;
   }
   return result_code;
@@ -385,7 +482,8 @@ uint8_t* VlanMapMoMgr::GetControllerId(ConfigKeyVal *ck_vbr,
   DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutNone };
   if (ck_vbr->get_key_type() != UNC_KT_VBRIDGE) return NULL;
   MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
-                                      (GetMoManager(UNC_KT_VBRIDGE)));
+                                                 (GetMoManager
+                                                  (UNC_KT_VBRIDGE)));
   upll_rc_t result_code = mgr->ReadConfigDB(ck_vbr, dt_type, UNC_OP_READ, dbop,
                                             dmi, MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
@@ -402,24 +500,24 @@ upll_rc_t VlanMapMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
   if (!ikey || !(ikey->get_key())) return UPLL_RC_ERR_GENERIC;
 
   key_rename_vnode_info *key_rename =
-             reinterpret_cast<key_rename_vnode_info *>(ikey->get_key());
+      reinterpret_cast<key_rename_vnode_info *>(ikey->get_key());
   key_vlan_map_t* key_vlan_map = reinterpret_cast<key_vlan_map_t *>
-                      (ConfigKeyVal::Malloc(sizeof(key_vlan_map_t)));
-  key_vlan_map->logical_port_id_valid = INVALID_LOG_PORT_ID_VALID; 
+      (ConfigKeyVal::Malloc(sizeof(key_vlan_map_t)));
+  key_vlan_map->logical_port_id_valid = INVALID_LOG_PORT_ID_VALID;
   if (!strlen(reinterpret_cast<char *>(key_rename->old_unc_vtn_name))) {
     free(key_vlan_map);
     return UPLL_RC_ERR_GENERIC;
   }
   uuu::upll_strncpy(key_vlan_map->vbr_key.vtn_key.vtn_name,
-         key_rename->old_unc_vtn_name,
-         kMaxLenVtnName+1);
+                    key_rename->old_unc_vtn_name,
+                    kMaxLenVtnName+1);
   if (ikey->get_key_type() == UNC_KT_VBRIDGE) {
     if (!strlen(reinterpret_cast<char *>(key_rename->old_unc_vnode_name))) {
       free(key_vlan_map);
       return UPLL_RC_ERR_GENERIC;
     }
     uuu::upll_strncpy(key_vlan_map->vbr_key.vbridge_name,
-            key_rename->old_unc_vnode_name, kMaxLenVnodeName+1);
+                      key_rename->old_unc_vnode_name, kMaxLenVnodeName+1);
   } else {
     if (!strlen(reinterpret_cast<char *>(key_rename->new_unc_vnode_name))) {
       free(key_vlan_map);
@@ -455,11 +553,11 @@ upll_rc_t VlanMapMoMgr::ValidateMessage(IpcReqRespHeader *req,
   upll_rc_t ret_val = UPLL_RC_SUCCESS;
   if (ikey->get_st_num() != IpctSt::kIpcStKeyVlanMap) {
     UPLL_LOG_DEBUG("Invalid Key structure received. received struct - %d",
-             (ikey->get_st_num()));
+                   (ikey->get_st_num()));
     return UPLL_RC_ERR_BAD_REQUEST;
   }
   key_vlan_map *vlan_map_key =
-             reinterpret_cast<key_vlan_map *>((ikey->get_key()));
+      reinterpret_cast<key_vlan_map *>((ikey->get_key()));
 
   unc_key_type_t ktype = ikey->get_key_type();
   if (UNC_KT_VBR_VLANMAP != ktype) {
@@ -472,6 +570,22 @@ upll_rc_t VlanMapMoMgr::ValidateMessage(IpcReqRespHeader *req,
     return UPLL_RC_ERR_CFG_SYNTAX;
   }
 
+  val_vlan_map *vlanmap_val = NULL;
+  ConfigVal *cfg_val = ikey->get_cfg_val();
+  if (ikey->get_cfg_val()) {
+    if (cfg_val->get_st_num() == IpctSt::kIpcStValVlanMap) {
+      vlanmap_val =
+          reinterpret_cast<val_vlan_map *>(cfg_val->get_val());
+    } else if (cfg_val->get_st_num() == IpctSt::kIpcStPfcdrvValVlanMap) {
+      vlanmap_val =
+          &(reinterpret_cast<pfcdrv_val_vlan_map *>(cfg_val->get_val())->vm);
+    } else if ((cfg_val->get_st_num() != IpctSt::kIpcStValVlanMap) ||
+               (cfg_val->get_st_num() != IpctSt::kIpcStPfcdrvValVlanMap)) {
+      UPLL_LOG_DEBUG("Invalid val structure received.received struct - %d",
+                     ikey->get_cfg_val()->get_st_num());
+      return UPLL_RC_ERR_BAD_REQUEST;
+    }
+  }
   if (op == UNC_OP_CREATE || op == UNC_OP_UPDATE) {
     if (dt_type == UPLL_DT_CANDIDATE || UPLL_DT_IMPORT == dt_type) {
       ConfigVal *cfg_val = ikey->get_cfg_val();
@@ -479,20 +593,15 @@ upll_rc_t VlanMapMoMgr::ValidateMessage(IpcReqRespHeader *req,
         UPLL_LOG_DEBUG("Value structure mandatory");
         return UPLL_RC_ERR_BAD_REQUEST;
       }
-      if (cfg_val->get_st_num() != IpctSt::kIpcStValVlanMap) {
-        UPLL_LOG_DEBUG("Invalid Value structure received. received struct - %d",
-                      (cfg_val->get_st_num()));
-        return UPLL_RC_ERR_BAD_REQUEST;
-      }
-      val_vlan_map *vlanmap_val =
-          reinterpret_cast<val_vlan_map *>(cfg_val->get_val());
       if (!vlanmap_val) {
-        UPLL_LOG_DEBUG("val_vlan_map struct is mandatory for Create/update op");
+        UPLL_LOG_DEBUG("val_vlan_map struct is mandatory for"
+                       "Create/update op");
         return UPLL_RC_ERR_BAD_REQUEST;
       }
       ret_val = ValidateVlanmapValue(vlanmap_val, op);
       if (ret_val != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("syntax check failure for val_vlan_map value structure");
+        UPLL_LOG_DEBUG("syntax check failure for val_vlan_map"
+                       "value structure");
         return UPLL_RC_ERR_CFG_SYNTAX;
       }
       return UPLL_RC_SUCCESS;
@@ -501,7 +610,8 @@ upll_rc_t VlanMapMoMgr::ValidateMessage(IpcReqRespHeader *req,
       return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
     }
   } else if (op == UNC_OP_READ || op == UNC_OP_READ_SIBLING
-      || op == UNC_OP_READ_SIBLING_BEGIN || op == UNC_OP_READ_SIBLING_COUNT) {
+             || op == UNC_OP_READ_SIBLING_BEGIN ||
+             op == UNC_OP_READ_SIBLING_COUNT) {
     if (dt_type == UPLL_DT_CANDIDATE || dt_type == UPLL_DT_RUNNING
         || dt_type == UPLL_DT_STARTUP || dt_type == UPLL_DT_STATE) {
       if (opt1 != UNC_OPT1_NORMAL) {
@@ -512,22 +622,15 @@ upll_rc_t VlanMapMoMgr::ValidateMessage(IpcReqRespHeader *req,
         UPLL_LOG_DEBUG("Error option2 is not NONE");
         return UPLL_RC_ERR_INVALID_OPTION2;
       }
-      ConfigVal *cfg_val = ikey->get_cfg_val();
-      if (!cfg_val) return UPLL_RC_SUCCESS;
-      if (cfg_val->get_st_num() != IpctSt::kIpcStValVlanMap) {
-        UPLL_LOG_DEBUG("Invalid Value structure received. received struct - %d",
-                      (cfg_val->get_st_num()));
-        return UPLL_RC_ERR_BAD_REQUEST;
-      }
-      val_vlan_map *vlanmap_val =
-          reinterpret_cast<val_vlan_map *>(cfg_val->get_val());
+
       if (vlanmap_val == NULL) {
         UPLL_LOG_DEBUG("syntax check for val_vlan_map struct is an optional");
         return UPLL_RC_SUCCESS;
       }
       ret_val = ValidateVlanmapValue(vlanmap_val, op);
       if (ret_val != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("syntax check failure for val_vlan_map value structure");
+        UPLL_LOG_DEBUG("syntax check failure for val_vlan_map value"
+                       "structure");
         return UPLL_RC_ERR_CFG_SYNTAX;
       }
       return UPLL_RC_SUCCESS;
@@ -545,7 +648,7 @@ upll_rc_t VlanMapMoMgr::ValidateMessage(IpcReqRespHeader *req,
       return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
     }
   } else if (op == UNC_OP_DELETE) {
-    if(dt_type == UPLL_DT_CANDIDATE) {
+    if (dt_type == UPLL_DT_CANDIDATE) {
       UPLL_LOG_DEBUG("Value structure is none for operation type:%d", op);
       return UPLL_RC_SUCCESS;
     } else {
@@ -565,32 +668,31 @@ upll_rc_t VlanMapMoMgr::ValidateVlanmapValue(val_vlan_map *vlanmap_val,
     return UPLL_RC_ERR_GENERIC;
   }
   if (vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM] == UNC_VF_VALID) {
-    
     if ((vlanmap_val->vlan_id != 0xFFFF) &&
         !ValidateNumericRange(vlanmap_val->vlan_id, (uint16_t) kMinVlanId,
                               (uint16_t) kMaxVlanId, true, true)) {
       UPLL_LOG_DEBUG("Numeric range check failed.  vlan_id - %d",
-                    vlanmap_val->vlan_id);
+                     vlanmap_val->vlan_id);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if (vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM] == UNC_VF_VALID_NO_VALUE
-      && (op == UNC_OP_CREATE || op == UNC_OP_UPDATE)) {
+             && (op == UNC_OP_CREATE || op == UNC_OP_UPDATE)) {
     vlanmap_val->vlan_id = 0;
   }
   return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t VlanMapMoMgr::ValidateVlanmapKey(key_vlan_map *vlan_map_key,
-                                    unc_keytype_operation_t operation) {
+                                           unc_keytype_operation_t operation) {
   UPLL_FUNC_TRACE;
   upll_rc_t ret_val = UPLL_RC_SUCCESS;
   ret_val = ValidateKey(reinterpret_cast<char *>
-                       (vlan_map_key->vbr_key.vtn_key.vtn_name),
-                       kMinLenVnodeName, kMaxLenVnodeName);
+                        (vlan_map_key->vbr_key.vtn_key.vtn_name),
+                        kMinLenVnodeName, kMaxLenVnodeName);
 
   if (ret_val != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("syntax check failed. vtn_name - %s",
-                  vlan_map_key->vbr_key.vtn_key.vtn_name);
+                   vlan_map_key->vbr_key.vtn_key.vtn_name);
     return UPLL_RC_ERR_CFG_SYNTAX;
   }
   ret_val = ValidateKey(reinterpret_cast<char *>
@@ -598,40 +700,40 @@ upll_rc_t VlanMapMoMgr::ValidateVlanmapKey(key_vlan_map *vlan_map_key,
                         kMinLenVnodeName, kMaxLenVnodeName);
   if (ret_val != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("syntax check failed. vbridge_name - %s",
-                  vlan_map_key->vbr_key.vbridge_name);
+                   vlan_map_key->vbr_key.vbridge_name);
     return UPLL_RC_ERR_CFG_SYNTAX;
   }
   if ((operation != UNC_OP_READ_SIBLING_BEGIN) &&
       (operation != UNC_OP_READ_SIBLING_COUNT)) {
     if (vlan_map_key->logical_port_id_valid == PFC_TRUE) {
       if (!ValidateLogicalPortId(
-                 reinterpret_cast<char *>(vlan_map_key->logical_port_id),
-                 kMinLenLogicalPortId, kMaxLenLogicalPortId)) {
+              reinterpret_cast<char *>(vlan_map_key->logical_port_id),
+              kMinLenLogicalPortId, kMaxLenLogicalPortId)) {
         ret_val = UPLL_RC_ERR_CFG_SYNTAX;
       }
-    }   
-    else
+    } else {
       ret_val = UPLL_RC_SUCCESS;
-  if (ret_val != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("syntax check failed. logical_port_id - %s",
-                  vlan_map_key->logical_port_id);
-    return UPLL_RC_ERR_CFG_SYNTAX;
-  }
-  if (toupper(vlan_map_key->logical_port_id[0]) == 'P'
-      && toupper(vlan_map_key->logical_port_id[1]) == 'P') {
-    UPLL_LOG_DEBUG("Invalid starting characters. Logical_port_id - %s",
-                  vlan_map_key->logical_port_id);
-    return UPLL_RC_ERR_CFG_SYNTAX;
-  }
-  if (!ValidateNumericRange(vlan_map_key->logical_port_id_valid, PFC_FALSE,
-                            PFC_TRUE, true, true)) {
-    UPLL_LOG_DEBUG("syntax check failed. swid_valid - %d",
-                  vlan_map_key->logical_port_id_valid);
+    }
+    if (ret_val != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("syntax check failed. logical_port_id - %s",
+                     vlan_map_key->logical_port_id);
+      return UPLL_RC_ERR_CFG_SYNTAX;
+    }
+    if (toupper(vlan_map_key->logical_port_id[0]) == 'P'
+        && toupper(vlan_map_key->logical_port_id[1]) == 'P') {
+      UPLL_LOG_DEBUG("Invalid starting characters. Logical_port_id - %s",
+                     vlan_map_key->logical_port_id);
       return UPLL_RC_ERR_CFG_SYNTAX;
-    } 
+    }
+    if (!ValidateNumericRange(vlan_map_key->logical_port_id_valid, PFC_FALSE,
+                              PFC_TRUE, true, true)) {
+      UPLL_LOG_DEBUG("syntax check failed. swid_valid - %d",
+                     vlan_map_key->logical_port_id_valid);
+      return UPLL_RC_ERR_CFG_SYNTAX;
+    }
   } else {
-    // Poisoning key from request to avoid binding for SIBLING_COUNT
-    // and SIBLING_BEGIN
+    //  Poisoning key from request to avoid binding for SIBLING_COUNT
+    //  and SIBLING_BEGIN
     UPLL_LOG_TRACE("Operation is %d", operation);
     StringReset(vlan_map_key->logical_port_id);
     vlan_map_key->logical_port_id_valid = 2;
@@ -639,7 +741,7 @@ upll_rc_t VlanMapMoMgr::ValidateVlanmapKey(key_vlan_map *vlan_map_key,
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t VlanMapMoMgr::ValidateAttribute(ConfigKeyVal *ikey, 
+upll_rc_t VlanMapMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
                                           DalDmlIntf *dmi,
                                           IpcReqRespHeader *req) {
   UPLL_FUNC_TRACE;
@@ -659,14 +761,14 @@ upll_rc_t VlanMapMoMgr::ValidateCapability(IpcReqRespHeader *req,
                                            const char *ctrlr_name) {
   UPLL_FUNC_TRACE;
   upll_rc_t ret_val = UPLL_RC_ERR_GENERIC;
-  if (!req || !ikey ) {
+  if (!req || !ikey) {
     UPLL_LOG_DEBUG("ConfigKeyVal / IpcReqRespHeader is Null");
     return UPLL_RC_ERR_GENERIC;
   }
 
   if (!ctrlr_name) {
     ctrlr_name = reinterpret_cast<char*>((reinterpret_cast<key_user_data_t *>
-                  (ikey->get_user_data()))->ctrlr_id);
+                                          (ikey->get_user_data()))->ctrlr_id);
     if (!ctrlr_name || !strlen(ctrlr_name)) {
       UPLL_LOG_DEBUG("Controller Name is NULL");
       return UPLL_RC_ERR_GENERIC;
@@ -682,16 +784,6 @@ upll_rc_t VlanMapMoMgr::ValidateCapability(IpcReqRespHeader *req,
       result_code = GetCreateCapability(ctrlr_name, ikey->get_key_type(),
                                         &max_instance_count, &max_attrs,
                                         &attrs);
-      UPLL_LOG_TRACE("The Current Instance is %d", cur_instance_count);
-      UPLL_LOG_TRACE("The Max Instance is %d", max_instance_count);
-
-      if (result_code && (max_instance_count != 0) &&
-         (cur_instance_count >= max_instance_count)) {
-        UPLL_LOG_DEBUG("[%s:%d:%s Instance count %d exceeds %d", __FILE__,
-                      __LINE__, __FUNCTION__, cur_instance_count,
-                      max_instance_count);
-        return UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
-      }
       break;
 
     case UNC_OP_UPDATE:
@@ -711,30 +803,48 @@ upll_rc_t VlanMapMoMgr::ValidateCapability(IpcReqRespHeader *req,
   }
   if (!result_code) {
     UPLL_LOG_DEBUG("key_type - %d is not supported by controller - %s",
-                  ikey->get_key_type(), ctrlr_name);
+                   ikey->get_key_type(), ctrlr_name);
     return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
   }
   val_vlan_map *vlanmap_val = NULL;
-  if ((ikey->get_cfg_val()) && (ikey->get_cfg_val()->get_st_num() ==
-       IpctSt::kIpcStValVlanMap)) {
-    vlanmap_val = reinterpret_cast<val_vlan_map *>
-                              (ikey->get_cfg_val()->get_val());
+
+  if (req->datatype == UPLL_DT_IMPORT) {
+    if ((ikey->get_cfg_val()) && (ikey->get_cfg_val()->get_st_num() ==
+                                  IpctSt::kIpcStPfcdrvValVlanMap)) {
+      vlanmap_val = &(reinterpret_cast<pfcdrv_val_vlan_map *>
+                      (ikey->get_cfg_val()->get_val())->vm);
+    }
+  } else {
+    if ((ikey->get_cfg_val()) && (ikey->get_cfg_val()->get_st_num() ==
+                                  IpctSt::kIpcStValVlanMap)) {
+      vlanmap_val = reinterpret_cast<val_vlan_map *>
+          (ikey->get_cfg_val()->get_val());
+    }
+    if ((ikey->get_cfg_val()) && (ikey->get_cfg_val()->get_st_num() ==
+                                  IpctSt::kIpcStPfcdrvValVlanMap)) {
+      vlanmap_val = &(reinterpret_cast<pfcdrv_val_vlan_map *>
+                      (ikey->get_cfg_val()->get_val())->vm);
+    }
   }
+
   if (vlanmap_val) {
     if (max_attrs > 0) {
-      ret_val = ValVlanmapAttributeSupportCheck(vlanmap_val, attrs, req->operation);
+      ret_val = ValVlanmapAttributeSupportCheck(vlanmap_val, attrs,
+                                                req->operation);
       return ret_val;
     } else {
-      UPLL_LOG_DEBUG("Attribute list is empty for operation %d", req->operation);
+      UPLL_LOG_DEBUG("Attribute list is empty for operation %d",
+                     req->operation);
       return UPLL_RC_ERR_GENERIC;
     }
   }
   return UPLL_RC_SUCCESS;
 }
-upll_rc_t VlanMapMoMgr::ValVlanmapAttributeSupportCheck(val_vlan_map *vlanmap_val,
-                                                        const uint8_t *attrs,
-                                                        unc_keytype_operation_t operation) {
+
+upll_rc_t VlanMapMoMgr::ValVlanmapAttributeSupportCheck(
+    val_vlan_map *vlanmap_val,
+    const uint8_t *attrs,
+    unc_keytype_operation_t operation) {
   UPLL_FUNC_TRACE;
   if (vlanmap_val != NULL) {
     if ((vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM] == UNC_VF_VALID)
@@ -769,10 +879,16 @@ bool VlanMapMoMgr::CompareValidValue(void *&val1,
                                      bool copy_to_running) {
   UPLL_FUNC_TRACE;
   bool invalid_attr = true;
-  val_vlan_map_t *val_vlan_map1 = reinterpret_cast<val_vlan_map_t *>(val1);
-  val_vlan_map_t *val_vlan_map2 = reinterpret_cast<val_vlan_map_t *>(val2);
+
+  pfcdrv_val_vlan_map_t *drv_val_vlan_map1 =
+      reinterpret_cast<pfcdrv_val_vlan_map_t *>(val1);
+  pfcdrv_val_vlan_map_t *drv_val_vlan_map2 =
+      reinterpret_cast<pfcdrv_val_vlan_map_t *>(val2);
+  val_vlan_map_t *val_vlan_map1 = &(drv_val_vlan_map1->vm);
+  val_vlan_map_t *val_vlan_map2 = &(drv_val_vlan_map2->vm);
+
   for (uint8_t loop = 0;
-      loop < sizeof(val_vlan_map1->valid) / sizeof(uint8_t); ++loop) {
+       loop < sizeof(val_vlan_map1->valid) / sizeof(uint8_t); ++loop) {
     if (UNC_VF_INVALID == val_vlan_map1->valid[loop]
         && UNC_VF_VALID == val_vlan_map2->valid[loop])
       val_vlan_map1->valid[loop] = UNC_VF_VALID_NO_VALUE;
@@ -781,14 +897,14 @@ bool VlanMapMoMgr::CompareValidValue(void *&val1,
       && val_vlan_map2->valid[UPLL_IDX_VLAN_ID_VM] == UNC_VF_VALID) {
     if (val_vlan_map1->vlan_id == val_vlan_map2->vlan_id)
       val_vlan_map1->valid[UPLL_IDX_VLAN_ID_VM] =
-        (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED; 
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   }
   for (unsigned int loop = 0;
        loop < sizeof(val_vlan_map1->valid) / sizeof(val_vlan_map1->valid[0]);
        ++loop) {
     if ((UNC_VF_VALID == (uint8_t) val_vlan_map1->valid[loop]) ||
-       (UNC_VF_VALID_NO_VALUE == (uint8_t) val_vlan_map1->valid[loop]))
-        invalid_attr = false;
+        (UNC_VF_VALID_NO_VALUE == (uint8_t) val_vlan_map1->valid[loop]))
+      invalid_attr = false;
   }
   return invalid_attr;
 }
@@ -800,59 +916,76 @@ upll_rc_t VlanMapMoMgr::IsReferenced(ConfigKeyVal *ikey,
 }
 
 upll_rc_t VlanMapMoMgr::IsLogicalPortAndVlanIdInUse(ConfigKeyVal *ckv,
-    DalDmlIntf *dmi,
-    IpcReqRespHeader *req) {
+                                                    DalDmlIntf *dmi,
+                                                    IpcReqRespHeader *req) {
   UPLL_FUNC_TRACE;
   if (!ckv || !(ckv->get_cfg_val()) || !(ckv->get_key()))
     return UPLL_RC_ERR_GENERIC;
 
   upll_rc_t result_code = UPLL_RC_SUCCESS;
+  val_vlan_map_t *vlanmapval = NULL;
+
+  if (req->datatype != UPLL_DT_IMPORT) {
+    pfcdrv_val_vlan_map_t* drv_vlanmapval =
+        reinterpret_cast<pfcdrv_val_vlan_map_t*>(GetVal(ckv));
+    vlanmapval = &(drv_vlanmapval->vm);
+  } else {
+    vlanmapval = reinterpret_cast<val_vlan_map_t*>(GetVal(ckv));
+  }
+
+  if (!vlanmapval) {
+    UPLL_LOG_DEBUG("Returning error\n");
+    return UPLL_RC_ERR_GENERIC;
+  }
 
-  val_vlan_map_t* vlanmapval = reinterpret_cast<val_vlan_map_t*>(GetVal(ckv));
   key_vlan_map_t* vlanmapkey =
-    reinterpret_cast<key_vlan_map_t *>(ckv->get_key());
+      reinterpret_cast<key_vlan_map_t *>(ckv->get_key());
 
   if (vlanmapval->valid[UPLL_IDX_VLAN_ID_VM] == UNC_VF_VALID) {
-
     key_vlan_map_t* key_vlan_map = reinterpret_cast<key_vlan_map_t *>
-      (ConfigKeyVal::Malloc(sizeof(key_vlan_map_t)));
-    val_vlan_map_t* val_vlan_map = static_cast<val_vlan_map_t*>
-      (ConfigKeyVal::Malloc(sizeof(val_vlan_map_t)));
+        (ConfigKeyVal::Malloc(sizeof(key_vlan_map_t)));
+    pfcdrv_val_vlan_map_t* drv_val_vlan_map =
+        static_cast<pfcdrv_val_vlan_map_t*>
+        (ConfigKeyVal::Malloc(sizeof(pfcdrv_val_vlan_map_t)));
+    val_vlan_map_t* val_vlan_map = &(drv_val_vlan_map->vm);
+
     if (vlanmapkey->logical_port_id_valid) {
       uuu::upll_strncpy(key_vlan_map->logical_port_id,
-          vlanmapkey->logical_port_id,
-          kMaxLenLogicalPortId+1);
+                        vlanmapkey->logical_port_id,
+                        kMaxLenLogicalPortId+1);
       key_vlan_map->logical_port_id_valid = vlanmapkey->logical_port_id_valid;
     }
 
-    //Populating key and val of vlanmap
+    // Populating key and val of vlanmap
     val_vlan_map->vlan_id = vlanmapval->vlan_id;
     val_vlan_map->valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
 
-    ConfigKeyVal *ckv_vlanmap = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+    ConfigKeyVal *ckv_vlanmap = new ConfigKeyVal(
+        UNC_KT_VBR_VLANMAP,
         IpctSt::kIpcStKeyVlanMap, key_vlan_map, NULL);
-    ckv_vlanmap->AppendCfgVal(IpctSt::kIpcStValVlanMap, val_vlan_map);
-    //Setting Ctrlr/Domain Id to vlanmap
+    ckv_vlanmap->AppendCfgVal(IpctSt::kIpcStPfcdrvValVlanMap, drv_val_vlan_map);
+
+    // Setting Ctrlr/Domain Id to vlanmap
     SET_USER_DATA(ckv_vlanmap, ckv);
 
     DbSubOp dbop = { kOpReadMultiple, kOpMatchCtrlr | kOpMatchDomain,
       kOpInOutFlag};
-    //Read the Configuration from the MainTable
+    // Read the Configuration from the MainTable
     result_code = ReadConfigDB(ckv_vlanmap, UPLL_DT_CANDIDATE, UNC_OP_READ,
-        dbop, dmi, MAINTBL);
-    //Check LogicalPortId and VlanId in use
+                               dbop, dmi, MAINTBL);
+    // Check LogicalPortId and VlanId in use
     if (result_code == UPLL_RC_SUCCESS) {
       ConfigKeyVal *tmp = ckv_vlanmap;
       key_vlan_map_t* tmp_vlanmapkey =
-        reinterpret_cast<key_vlan_map_t *>(tmp->get_key());
+          reinterpret_cast<key_vlan_map_t *>(tmp->get_key());
       while (tmp) {
         if (!memcmp((const void*)&(vlanmapkey->vbr_key),
-              (const void*) &(tmp_vlanmapkey->vbr_key),
-              sizeof(key_vbr_t))) {
+                    (const void*) &(tmp_vlanmapkey->vbr_key),
+                    sizeof(key_vbr_t))) {
           UPLL_LOG_TRACE("Looking on the Same key");
         } else {
           UPLL_LOG_DEBUG("More than one vlanmap is configured with the"
-              " same logical port id and vlanid!");
+                         " same logical port id and vlanid!");
           DELETE_IF_NOT_NULL(ckv_vlanmap);
           tmp = NULL;
           return UPLL_RC_ERR_CFG_SEMANTIC;
@@ -867,23 +1000,271 @@ upll_rc_t VlanMapMoMgr::IsLogicalPortAndVlanIdInUse(ConfigKeyVal *ckv,
   return result_code;
 }
 
-// Overridden Read Sibling from momgr_impl.
-// This keytype contains 2 child keys and needs special handling.
+upll_rc_t VlanMapMoMgr::ReadSiblingBeginMo(IpcReqRespHeader *header,
+                                           ConfigKeyVal *ikey,
+                                           bool begin,
+                                           DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
+  upll_rc_t result_code = UPLL_RC_SUCCESS;
+  controller_domain ctrlr_dom;
+
+  switch (header->datatype) {
+    case UPLL_DT_IMPORT:
+      return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
+    case UPLL_DT_CANDIDATE:
+    case UPLL_DT_RUNNING:
+    case UPLL_DT_STARTUP:
+    case UPLL_DT_STATE:
+      //  Change the dt_type to Running and finally back to State
+      header->datatype = (header->datatype == UPLL_DT_STATE) ?
+          UPLL_DT_RUNNING : header->datatype;
+      break;
+    default:
+      UPLL_LOG_DEBUG("Invalid Datatype");
+      return UPLL_RC_ERR_GENERIC;
+  }
+
+  result_code = ValidateMessage(header, ikey);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_DEBUG("ValidateMessage failed result_code %d",
+                   result_code);
+    return result_code;
+  }
+  ConfigKeyVal *result_ckv = NULL;
+  ConfigKeyVal *queryckval = NULL;
+  result_code = DupConfigKeyVal(queryckval, ikey, MAINTBL);
+  if (result_code != UPLL_RC_SUCCESS || queryckval == NULL) {
+    DELETE_IF_NOT_NULL(queryckval);
+    UPLL_LOG_INFO("Error while DupConfigKeyVal");
+    return UPLL_RC_ERR_GENERIC;
+  }
+
+  /* when user specified vlanid in the val struct, set to true */
+  bool filter_vlanid = false;
+  /* Covert user val struct to pfc_drv val struct */
+  val_vlan_map *vl = reinterpret_cast<val_vlan_map*>(GetVal(ikey));
+  if (vl != NULL) {
+    pfcdrv_val_vlan_map *val = reinterpret_cast<pfcdrv_val_vlan_map_t *>
+        (ConfigKeyVal::Malloc(sizeof(pfcdrv_val_vlan_map_t)));
+
+    memcpy(&val->vm, vl, sizeof(val_vlan_map_t));
+    val->valid[0] = UNC_VF_VALID;
+    val->valid[1] = UNC_VF_INVALID;
+    (queryckval->get_cfg_val())->SetVal(IpctSt::kIpcStPfcdrvValVlanMap, val);
+    filter_vlanid = true;
+  }
+
+  uint32_t found_count = 0, skip_count = 0, tmp_count = 0, result_count =0;
+  upll_keytype_datatype_t dt_type =  header->datatype;
+
+  do {
+    ConfigKeyVal *new_ckv = NULL;
+    result_code = ReadInfoFromDB(header, queryckval, dmi, &ctrlr_dom);
+    if (result_code == UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("ReadInfoFromDB returns SUCCESS: %s \n",
+                     queryckval->ToStrAll().c_str());
+      if (header->rep_count > 0) {
+        tmp_count = header->rep_count;
+        skip_count = 0;
+        new_ckv = NULL;
+        ConfigKeyVal *tmp = queryckval, *tmp_old = NULL;
+        while (tmp) {
+          uint8_t vlanmap_flag = 0;
+          GET_USER_DATA_FLAGS(tmp, vlanmap_flag);
+          uint8_t is_user_conf = false;
+          is_user_conf = (USER_VLANMAP_FLAG & vlanmap_flag);
+          if (!is_user_conf) {
+            ConfigKeyVal *ck_tmp =tmp;
+            skip_count++;
+            tmp = tmp->get_next_cfg_key_val();
+            if (tmp == NULL) {
+              DELETE_IF_NOT_NULL(new_ckv);
+              if (filter_vlanid == true) {
+                result_code = DupConfigKeyVal(new_ckv, ck_tmp, MAINTBL);
+              } else {
+                result_code = GetChildConfigKey(new_ckv, ck_tmp);
+              }
+              if (result_code != UPLL_RC_SUCCESS || new_ckv == NULL) {
+                UPLL_LOG_ERROR("Error while GetChildConfigKey or "
+                               "DupConfigKeyVal. filter_vlanid: %d",
+                               filter_vlanid);
+                DELETE_IF_NOT_NULL(queryckval);
+                return UPLL_RC_ERR_GENERIC;
+              }
+            }
+            if (ck_tmp == queryckval) {
+              queryckval = ck_tmp->get_next_cfg_key_val();
+            } else {
+              tmp_old->set_next_cfg_key_val(ck_tmp->get_next_cfg_key_val());
+            }
+            ck_tmp->set_next_cfg_key_val(NULL);
+            DELETE_IF_NOT_NULL(ck_tmp);
+            continue;
+
+          } else {
+            tmp_old =tmp;
+            tmp = tmp->get_next_cfg_key_val();
+            if (tmp == NULL) {
+              DELETE_IF_NOT_NULL(new_ckv);
+              if (filter_vlanid == true) {
+                result_code = DupConfigKeyVal(new_ckv, tmp_old, MAINTBL);
+              } else {
+                result_code = GetChildConfigKey(new_ckv, tmp_old);
+              }
+              if (result_code != UPLL_RC_SUCCESS || new_ckv == NULL) {
+                UPLL_LOG_ERROR("Error while GetChildConfigKey or "
+                               "DupConfigKeyVal. filter_vlanid: %d",
+                               filter_vlanid);
+                DELETE_IF_NOT_NULL(queryckval);
+                return UPLL_RC_ERR_GENERIC;
+              }
+            }
+          }
+        }
+        found_count = (tmp_count-skip_count);
+        if (found_count > 0) {
+          //  Collect the data into result_ckv.
+          if (result_ckv == NULL) {
+            result_ckv = queryckval;
+          } else {
+            result_ckv->AppendCfgKeyVal(queryckval);
+          }
+          result_count += (queryckval->size());
+        }
+        if (found_count < tmp_count) {
+          queryckval = new_ckv;
+          if (ResetDataForSibling(
+                  reinterpret_cast<key_vlan_map *>(queryckval->get_key()),
+                  (uudst::vbridge_vlanmap::kVbrVlanMapIndex)3)
+              == false) {}
+          header->operation = UNC_OP_READ_SIBLING;
+          header->rep_count = tmp_count - result_count;
+
+          //  Preparing Child Key data for next Sibling Iteration
+          UPLL_LOG_TRACE("Next Query After Reset: %s",
+                         (queryckval->ToStrAll()).c_str());
+          continue;
+        } else {
+          DELETE_IF_NOT_NULL(new_ckv);
+          break;
+        }
+        //  Used in ReadConfigDB in each Iteration
+      }
+    } else if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+      DELETE_IF_NOT_NULL(queryckval);
+      break;
+    } else {
+      UPLL_LOG_DEBUG("Error in Reading DB");
+      DELETE_IF_NOT_NULL(queryckval);
+      return result_code;
+    }
+  } while (1);
+  if (result_ckv != NULL) {
+    ikey->ResetWith(result_ckv);
+    DELETE_IF_NOT_NULL(result_ckv);
+    header->rep_count = ikey->size();
+  }
+  header->operation = UNC_OP_READ_SIBLING_BEGIN;
+  header->datatype = dt_type;
+
+  /* Convert the valstruct to VTN service val*/
+  upll_rc_t rc = AdaptValToVtnService(ikey);
+  if (rc != UPLL_RC_SUCCESS) {
+    UPLL_LOG_DEBUG("AdaptValToVtnService failed result_code %d", rc);
+    return UPLL_RC_ERR_GENERIC;
+  }
+
+  if (header->rep_count > 0) {
+    result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)
+        ? UPLL_RC_SUCCESS : result_code;
+  } else {
+    return UPLL_RC_ERR_NO_SUCH_INSTANCE;
+  }
+  return result_code;
+}
+
+upll_rc_t VlanMapMoMgr::ReadSiblingCount(IpcReqRespHeader *header,
+                                         ConfigKeyVal *ikey,
+                                         DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
+  upll_rc_t result_code = UPLL_RC_SUCCESS;
+  controller_domain ctrlr_dom;
+
+  result_code = ValidateMessage(header, ikey);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_DEBUG("ValidateMessage failed result_code %d",
+                   result_code);
+    return result_code;
+  }
+  ConfigKeyVal *queryckval = NULL;
+  result_code = DupConfigKeyVal(queryckval, ikey, MAINTBL);
+  if (result_code != UPLL_RC_SUCCESS || queryckval == NULL) {
+    UPLL_LOG_INFO("Error while DupConfigKeyVal");
+    DELETE_IF_NOT_NULL(queryckval);
+    return UPLL_RC_ERR_GENERIC;
+  }
+  /* Convert user val strcut to pfc_drv val struct */
+  val_vlan_map *vl = reinterpret_cast<val_vlan_map*>(GetVal(ikey));
+  if (vl != NULL) {
+    pfcdrv_val_vlan_map *val = reinterpret_cast<pfcdrv_val_vlan_map_t *>
+        (ConfigKeyVal::Malloc(sizeof(pfcdrv_val_vlan_map_t)));
+
+    memcpy(&val->vm, vl, sizeof(val_vlan_map_t));
+    val->valid[0] = UNC_VF_VALID;
+    val->valid[1] = UNC_VF_INVALID;
+    (ikey->get_cfg_val())->SetVal(IpctSt::kIpcStPfcdrvValVlanMap, val);
+  }
+  header->operation = UNC_OP_READ_SIBLING_BEGIN;
+
+  uint32_t found_count = 0;
+  result_code = ReadInfoFromDB(header, ikey, dmi, &ctrlr_dom);
+  if (result_code == UPLL_RC_SUCCESS) {
+    if (header->rep_count > 0) {
+      ConfigKeyVal *tmp = ikey;
+      while (tmp) {
+        uint8_t vlanmap_flag = 0;
+        GET_USER_DATA_FLAGS(tmp, vlanmap_flag);
+        uint8_t is_user_conf = false;
+        is_user_conf = (USER_VLANMAP_FLAG & vlanmap_flag);
+        if (is_user_conf) {
+          found_count++;
+        }
+        tmp = tmp->get_next_cfg_key_val();
+      }
+    }
+  } else if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+    result_code = UPLL_RC_SUCCESS;
+  }
+  header->rep_count = found_count;
+  header->operation = UNC_OP_READ_SIBLING_COUNT;
+  ikey->ResetWith(queryckval);
+
+  /* Read sib count should return val_struct with count value */
+  uint32_t *sib_count = reinterpret_cast<uint32_t*>
+      (ConfigKeyVal::Malloc(sizeof(uint32_t)));
+  *sib_count = found_count;
+  ikey->SetCfgVal(new ConfigVal(IpctSt::kIpcStUint32, sib_count));
+
+  DELETE_IF_NOT_NULL(queryckval);
+  return result_code;
+}
+//  Overridden Read Sibling from momgr_impl.
+//  This keytype contains 2 child keys and needs special handling.
 upll_rc_t VlanMapMoMgr::ReadSiblingMo(IpcReqRespHeader *header,
-                                   ConfigKeyVal *ikey,
-                                   bool begin,
-                                   DalDmlIntf *dmi) {
+                                      ConfigKeyVal *ikey,
+                                      bool begin,
+                                      DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
   uint32_t result_count = 0;
 
   if (begin == true) {
-    return (MoMgrImpl::ReadSiblingMo(header, ikey, begin, dmi));
-    
+    /* VlanmapOnBoundary: Over-ride MoMgrImpl::ReadSiblingBeginMo in Vlanmap */
+    return (ReadSiblingBeginMo(header, ikey, begin, dmi));
   }
-  // Fix it: This function is for READ_SIBLING
+  //  Fix it: This function is for READ_SIBLING
   if ((header->operation != UNC_OP_READ_SIBLING_BEGIN) &&
-      (header->operation != UNC_OP_READ_SIBLING)) { 
+      (header->operation != UNC_OP_READ_SIBLING)) {
     UPLL_LOG_DEBUG("Operation type is not Sibling begin/Sibling");
     return UPLL_RC_ERR_GENERIC;
   }
@@ -900,8 +1281,8 @@ upll_rc_t VlanMapMoMgr::ReadSiblingMo(IpcReqRespHeader *header,
   }
 
   MoMgrTables tbl = MAINTBL;
-  DbSubOp dbop = {kOpReadMultiple, kOpMatchNone, 
-                     kOpInOutCtrlr | kOpInOutDomain | kOpInOutFlag};
+  DbSubOp dbop = {kOpReadMultiple, kOpMatchNone,
+    kOpInOutCtrlr | kOpInOutDomain | kOpInOutFlag};
 
   switch (header->datatype) {
     case UPLL_DT_IMPORT:
@@ -910,108 +1291,239 @@ upll_rc_t VlanMapMoMgr::ReadSiblingMo(IpcReqRespHeader *header,
     case UPLL_DT_RUNNING:
     case UPLL_DT_STARTUP:
     case UPLL_DT_STATE:
-    {
-      // To read the record(s) from DB
-      upll_keytype_datatype_t dt_type = (header->datatype == UPLL_DT_STATE) ?
-                                        UPLL_DT_RUNNING : header->datatype;
-
-      ConfigKeyVal *result_ckv = NULL;
-      // Used in ReadConfigDB in each Iteration
-      ConfigKeyVal *queryckval = NULL;
-      result_code = DupConfigKeyVal(queryckval, ikey, MAINTBL);
-      if (result_code != UPLL_RC_SUCCESS || queryckval == NULL) {
-        UPLL_LOG_INFO("Error while DupConfigKeyVal");
-        return UPLL_RC_ERR_GENERIC;
-      }
+      {
+        //  To read the record(s) from DB
+        upll_keytype_datatype_t dt_type = (header->datatype == UPLL_DT_STATE) ?
+            UPLL_DT_RUNNING : header->datatype;
+        /* ckv that contains final read entries, given to ikey */
+        ConfigKeyVal *result_ckv = NULL;
+        //  Used in ReadConfigDB in each Iteration
+        ConfigKeyVal *queryckval = NULL;
+        result_code = DupConfigKeyVal(queryckval, ikey, MAINTBL);
+        if (result_code != UPLL_RC_SUCCESS || queryckval == NULL) {
+          UPLL_LOG_INFO("Error while DupConfigKeyVal");
+          DELETE_IF_NOT_NULL(queryckval);
+          return UPLL_RC_ERR_GENERIC;
+        }
 
-      for (uint16_t childKeyIndex = uuds::TableNumPkCols(
-               uudst::kDbiVbrVlanMapTbl) - 1;
-           childKeyIndex >= uuds::TableNumPkCols(
-               uudst::kDbiVbrVlanMapTbl) - kVbrVlanMapNumChildKey;
-           childKeyIndex--) {
+        /* Used from 2nd read operations if expected entries are not read */
+        ConfigKeyVal *new_ckv = queryckval;
+        /* when user specified vlanid in the val struct, set to true */
+        bool filter_vlanid = false;
 
-        // For skipping invalid inputs - do not delete
-        if (IsValidKey(queryckval->get_key(), childKeyIndex) == false)
-          continue;
+        /* Convert user val strcut to pfc_drv val struct */
+        val_vlan_map *vl = reinterpret_cast<val_vlan_map*>(GetVal(ikey));
+        if (vl != NULL) {
+          pfcdrv_val_vlan_map *val = reinterpret_cast<pfcdrv_val_vlan_map_t *>
+              (ConfigKeyVal::Malloc(sizeof(pfcdrv_val_vlan_map_t)));
 
-        uint32_t tmp_count = (header->rep_count - result_count);
-        result_code = ReadConfigDB(queryckval, dt_type, header->operation,
-                                   dbop, tmp_count, dmi, tbl);
+          memcpy(&val->vm, vl, sizeof(val_vlan_map_t));
+          val->valid[0] = UNC_VF_VALID;
+          val->valid[1] = UNC_VF_INVALID;
+          (queryckval->get_cfg_val())->SetVal(IpctSt::kIpcStPfcdrvValVlanMap,
+                                              val);
+          filter_vlanid = true;
+        }
+        /* skip_count: No of entries skipped in an iter (not user configured)
+         * found_count: No of entries found in an iter (user configured) */
+        uint8_t skip_count =0, found_count = 0;
+
+        /* Expected entries to be read from db for every iteration */
+        uint32_t expect_count = header->rep_count;
+        /* tmp_childKeyIndex is used in ResetDataForSibling */
+        uint16_t tmp_childKeyIndex = uuds::TableNumPkCols(
+            uudst::kDbiVbrVlanMapTbl) - 1;
+        for (uint16_t childKeyIndex = uuds::TableNumPkCols(
+                uudst::kDbiVbrVlanMapTbl) - 1;
+            childKeyIndex >= uuds::TableNumPkCols(
+                uudst::kDbiVbrVlanMapTbl) - kVbrVlanMapNumChildKey;
+            ) {
+          do {
+            //  For skipping invalid inputs - do not delete
+            //  When log_portid_valid is invalid value, then
+            //  break and continue sibling opern with log_portid
+            if (IsValidKey(queryckval->get_key(), childKeyIndex) == false) {
+              break;
+            }
+
+            uint32_t db_read_count = (header->rep_count - result_count);
+            result_code = ReadConfigDB(queryckval, dt_type, header->operation,
+                                       dbop, db_read_count, dmi, tbl);
+
+            if (result_code == UPLL_RC_SUCCESS) {
+              UPLL_LOG_DEBUG("ReadConfigDB returns SUCCESS: %s \n",
+                             queryckval->ToStrAll().c_str());
+              skip_count = 0;
+              new_ckv = NULL;
+              ConfigKeyVal *tmp = queryckval, *tmp_old = NULL;
+              while (tmp) {
+                uint8_t vlanmap_flag = 0;
+                GET_USER_DATA_FLAGS(tmp, vlanmap_flag);
+                uint8_t is_user_conf = false;
+                is_user_conf = (USER_VLANMAP_FLAG & vlanmap_flag);
+                /* If entry is not user configure. i.e boundary configured */
+                if (!is_user_conf) {
+                  ConfigKeyVal *ck_tmp =tmp;
+                  skip_count++;
+                  /* Move to next ckv */
+                  tmp = tmp->get_next_cfg_key_val();
+                  /* If next ckv is not present & there are skipped entries
+                   * do readconfigdb again with last received ckv */
+                  if (tmp == NULL) {
+                    DELETE_IF_NOT_NULL(new_ckv);
+                    if (filter_vlanid == true) {
+                      result_code = DupConfigKeyVal(new_ckv, ck_tmp, MAINTBL);
+                    } else {
+                      result_code = GetChildConfigKey(new_ckv, ck_tmp);
+                    }
+                    if (result_code != UPLL_RC_SUCCESS || new_ckv == NULL) {
+                      UPLL_LOG_DEBUG("Error while GetChildConfigKey or "
+                                     "DupConfigKeyVal. filter_vlanid: %d",
+                                     filter_vlanid);
+                      DELETE_IF_NOT_NULL(queryckval);
+                      return UPLL_RC_ERR_GENERIC;
+                    }
+                  }
+                  //  if skipped element is 1st element, queryckval should
+                  //  point to next ckv
+                  if (ck_tmp == queryckval) {
+                    queryckval = ck_tmp->get_next_cfg_key_val();
+                    ck_tmp->set_next_cfg_key_val(NULL);
+                  } else {
+                    //  If any intermediate is skipped, removed the same
+                    //  in the list and update tmp_old's next ckv
+                    tmp_old->set_next_cfg_key_val(
+                        ck_tmp->get_next_cfg_key_val());
+                    ck_tmp->set_next_cfg_key_val(NULL);
+                  }
+                  DELETE_IF_NOT_NULL(ck_tmp);
+                  continue;
+
+                } else {
+                  tmp_old =tmp;
+                  tmp = tmp->get_next_cfg_key_val();
+                  if (tmp == NULL && (expect_count !=
+                                      (db_read_count - skip_count))) {
+                    DELETE_IF_NOT_NULL(new_ckv);
+                    if (filter_vlanid == true) {
+                      result_code = DupConfigKeyVal(new_ckv, tmp_old, MAINTBL);
+                    } else {
+                      result_code = GetChildConfigKey(new_ckv, tmp_old);
+                    }
+                    if (result_code != UPLL_RC_SUCCESS || new_ckv == NULL) {
+                      UPLL_LOG_DEBUG("Error while GetChildConfigKey or "
+                                     "DupConfigKeyVal. filter_vlanid: %d",
+                                     filter_vlanid);
+                      return UPLL_RC_ERR_GENERIC;
+                    }
+                  }
+                }
+              }
+              found_count = (db_read_count-skip_count);
+              if (found_count > 0) {
+                //  Collect the data into result_ckv.
+                if (result_ckv == NULL) {
+                  result_ckv = queryckval;
+                } else {
+                  result_ckv->AppendCfgKeyVal(queryckval);
+                }
+                result_count += (queryckval->size());
+                queryckval = NULL;
+              }
+              if (found_count < expect_count) {
+                queryckval = new_ckv;
+                //  Preparing Child Key data for next Sibling Iteration
+                //  log_portid_valid will be set to INVALID and further
+                //  rd_sibling query will be done with > log_portid
+                if (queryckval &&  (ResetDataForSibling(
+                            reinterpret_cast<key_vlan_map *>
+                            (queryckval->get_key()),
+                            (uudst::vbridge_vlanmap::kVbrVlanMapIndex)
+                            tmp_childKeyIndex)
+                        == false)) {
+                  UPLL_LOG_DEBUG("Data Not Reset for the index(%d)",
+                                 childKeyIndex);
+                  delete queryckval;
+                  return UPLL_RC_ERR_GENERIC;
+                }
+
+                UPLL_LOG_TRACE("Next Query After Reset: %s",
+                               (queryckval->ToStrAll()).c_str());
+                expect_count = expect_count - found_count;
+                continue;
+              } else {
+                DELETE_IF_NOT_NULL(new_ckv);
+                break;
+              }
+              //  Used in ReadConfigDB in each Iteration
+            } else if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+              break;
+              //  use queryckval in the next iteration;
+            } else {
+              UPLL_LOG_ERROR("Error while ReadConfigDB");
+              DELETE_IF_NOT_NULL(queryckval);
+              /* Convert the val struct to VTN service */
+              upll_rc_t rc = AdaptValToVtnService(ikey);
+              if (rc != UPLL_RC_SUCCESS) {
+                UPLL_LOG_DEBUG("AdaptValToVtnService failed result_code %d",
+                               rc);
+                return UPLL_RC_ERR_GENERIC;
+              }
+              return result_code;
+            }
+          } while (1);  //   end of do while
 
-        if (result_code == UPLL_RC_SUCCESS) {
-          // Collect the data into result_ckv.
-          if (result_ckv == NULL) {
-            result_ckv = queryckval;
-          } else {
-            result_ckv->AppendCfgKeyVal(queryckval);  // TODO perf
-          }
-          result_count += queryckval->size();
-          queryckval = NULL;
-          
           if (result_count >= header->rep_count) {
-            break;  // break the for loop
+            break;  //  break the for loop
           }
-
-          // Used in ReadConfigDB in each Iteration
-          result_code = DupConfigKeyVal(queryckval, ikey, MAINTBL);
-          if (result_code != UPLL_RC_SUCCESS || queryckval == NULL) {
-            UPLL_LOG_INFO("Error while DupConfigKeyVal");
+          //   Preparing Child Key data for next Sibling Iteration
+          queryckval = new_ckv;  //   added for cnt>max
+          if (queryckval && (ResetDataForSibling(
+                      reinterpret_cast<key_vlan_map *>(queryckval->get_key()),
+                      (uudst::vbridge_vlanmap::kVbrVlanMapIndex)childKeyIndex)
+                  == false)) {
+            UPLL_LOG_DEBUG("Data Not Reset for the index(%d)", childKeyIndex);
+            DELETE_IF_NOT_NULL(queryckval);
             return UPLL_RC_ERR_GENERIC;
           }
-        } else if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-          // use queryckval in the next iteration;
-        } else {
-          UPLL_LOG_INFO("Error while ReadConfigDB");
-          delete queryckval;
-          return result_code;
-        }
-
-        // Preparing Child Key data for next Sibling Iteration
-        if (ResetDataForSibling(
-             reinterpret_cast<key_vlan_map *>(queryckval->get_key()),
-             (uudst::vbridge_vlanmap::kVbrVlanMapIndex)childKeyIndex)
-           == false) {
-          UPLL_LOG_DEBUG("Data Not Reset for the index(%d)", childKeyIndex);
-          delete queryckval;
-          return UPLL_RC_ERR_GENERIC;
+          tmp_childKeyIndex = childKeyIndex;
+          childKeyIndex--;
+          UPLL_LOG_TRACE("Next Query After Reset: %s",
+                         (queryckval->ToStrAll()).c_str());
+        }  //  for
+        DELETE_IF_NOT_NULL(queryckval);
+        header->rep_count = result_count;
+        if (result_ckv) {
+          ikey->ResetWith(result_ckv);
+          DELETE_IF_NOT_NULL(result_ckv);
         }
-        UPLL_LOG_TRACE("Next Query After Reset: %s",
-                       (queryckval->ToStrAll()).c_str());
-      }  // for
-      DELETE_IF_NOT_NULL(queryckval);
-      header->rep_count = result_count;
-      if (result_ckv) {
-        ikey->ResetWith(result_ckv);
-        delete result_ckv;
-      }
-      break;
-    }  // case
+        break;
+      }  //  case
     default:
       return UPLL_RC_ERR_GENERIC;
   }
 
+  upll_rc_t rc = AdaptValToVtnService(ikey);
+  if (rc != UPLL_RC_SUCCESS) {
+    UPLL_LOG_DEBUG("AdaptValToVtnService failed result_code %d", rc);
+    return UPLL_RC_ERR_GENERIC;
+  }
+
   if (header->rep_count > 0) {
     result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)
-                  ? UPLL_RC_SUCCESS : result_code;
-    if (result_code == UPLL_RC_SUCCESS) { 
-      result_code = AdaptValToVtnService(ikey);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("AdaptValToVtnService failed result_code %d",
-                    result_code);
-        return UPLL_RC_ERR_GENERIC;
-      }
-    }
+        ? UPLL_RC_SUCCESS : result_code;
   } else {
     return UPLL_RC_ERR_NO_SUCH_INSTANCE;
   }
   return UPLL_RC_SUCCESS;
-}  // VlanMapMoMgr::ReadSiblingMo
+}  //  VlanMapMoMgr::ReadSiblingMo
 
-// To reset the data available in index to empty
-// Currently implemented only for child index
-bool VlanMapMoMgr::ResetDataForSibling(key_vlan_map *key_vmap,
+//  To reset the data available in index to empty
+//  Currently implemented only for child index
+bool VlanMapMoMgr::ResetDataForSibling(
+    key_vlan_map *key_vmap,
     uudst::vbridge_vlanmap::kVbrVlanMapIndex index) {
-  switch(index) {
+  switch (index) {
     case uudst::vbridge_vlanmap::kDbiLogicalPortId:
       memset(key_vmap->logical_port_id, 0, sizeof(key_vmap->logical_port_id));
     case uudst::vbridge_vlanmap::kDbiLogicalPortIdValid:
@@ -1025,6 +1537,759 @@ bool VlanMapMoMgr::ResetDataForSibling(key_vlan_map *key_vmap,
   return true;
 }
 
-}  // namespace kt_momgr
-}  // namespace upll
-}  // namespace unc
+
+upll_rc_t VlanMapMoMgr::UpdateParentOperStatus(ConfigKeyVal *ikey,
+                                               DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
+  upll_rc_t result_code = UPLL_RC_SUCCESS;
+  if (!ikey) {
+    UPLL_LOG_ERROR("Returning error \n");
+    return UPLL_RC_ERR_GENERIC;
+  }
+  ConfigKeyVal *ck_vn = NULL;
+  result_code = GetParentConfigKey(ck_vn, ikey);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_DEBUG("Returning error %d\n", result_code);
+    return result_code;
+  }
+  VnodeMoMgr *mgr = reinterpret_cast<VnodeMoMgr *>
+      (const_cast<MoManager *>
+       (GetMoManager(ck_vn->get_key_type())));
+  if (!mgr) {
+    UPLL_LOG_DEBUG("Returning error \n");
+    delete ck_vn;
+    return UPLL_RC_ERR_GENERIC;
+  }
+  DbSubOp dbop = {kOpReadSingle, kOpMatchNone, kOpInOutNone};
+  result_code = mgr->ReadConfigDB(ck_vn, UPLL_DT_STATE, UNC_OP_READ,
+                                  dbop, dmi, MAINTBL);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_DEBUG("Returning error %d\n", result_code);
+    delete ck_vn;
+    result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)?
+        UPLL_RC_SUCCESS:result_code;
+    return result_code;
+  }
+  val_db_vbr_st *valst = reinterpret_cast<val_db_vbr_st *>(GetStateVal(ck_vn));
+  if (!valst) {
+    UPLL_LOG_DEBUG("Returning error\n");
+    delete ck_vn;
+    return UPLL_RC_ERR_GENERIC;
+  }
+  if ((valst->down_count == 0) && (valst->fault_count == 0)) {
+    state_notification notification = kAdminStatusEnabled;
+    result_code = mgr->UpdateOperStatus(ck_vn, dmi, notification, true, true);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("Returning error %d\n", result_code);
+    }
+  }
+  delete ck_vn;
+  return result_code;
+}
+
+upll_rc_t VlanMapMoMgr::AdaptValToVtnService(ConfigKeyVal *ikey) {
+  UPLL_FUNC_TRACE;
+  if (!ikey) {
+    UPLL_LOG_DEBUG("Invalid ikey");
+    return UPLL_RC_ERR_GENERIC;
+  }
+  while (ikey) {
+    ConfigVal *cval = ikey->get_cfg_val();
+    while (cval) {
+      if (IpctSt::kIpcStPfcdrvValVlanMap == cval->get_st_num()) {
+        val_vlan_map_t *vlanmap_val = reinterpret_cast<val_vlan_map_t *>
+            (ConfigKeyVal::Malloc(sizeof(val_vlan_map_t)));
+        pfcdrv_val_vlan_map_t *drv_val =
+            reinterpret_cast<pfcdrv_val_vlan_map_t *>(cval->get_val());
+        memcpy(vlanmap_val, &(drv_val->vm), sizeof(val_vlan_map_t));
+        cval->SetVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+        /* do not display portmap info if not configured (for boundary)*/
+        uint8_t vlink_flag = 0;
+        GET_USER_DATA_FLAGS(ikey, vlink_flag);
+        UPLL_LOG_DEBUG("Interface type %d", vlink_flag);
+      }
+      cval = cval->get_next_cfg_val();
+    }
+    ikey = ikey->get_next_cfg_key_val();
+  }
+
+  return UPLL_RC_SUCCESS;
+}
+
+/* This function is over-ridden from momgr_impl.cc */
+upll_rc_t VlanMapMoMgr::UpdateMo(IpcReqRespHeader *req,
+                                 ConfigKeyVal *ikey,
+                                 DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
+
+  upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
+  if (NULL == ikey || NULL == req || !(ikey->get_key())) {
+    UPLL_LOG_ERROR("Given Input is Empty");
+    return UPLL_RC_ERR_GENERIC;
+  }
+
+  UPLL_LOG_INFO("UpdateMo for %d", ikey->get_key_type());
+  /* Validates received request */
+  result_code = ValidateMessage(req, ikey);
+  if (UPLL_RC_SUCCESS != result_code) {
+    UPLL_LOG_ERROR("Validation Message is Failed ");
+    return result_code;
+  }
+
+  controller_domain ctrlr_dom;
+  ctrlr_dom.ctrlr = ctrlr_dom.domain = NULL;
+  ConfigKeyVal      *temp_ck         = NULL;
+
+  result_code = GetChildConfigKey(temp_ck, ikey);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_ERROR("Error in retrieving the Child ConfigKeyVal");
+    if (temp_ck)
+      delete temp_ck;
+    return result_code;
+  }
+
+  DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
+    kOpInOutFlag | kOpInOutCtrlr| kOpInOutDomain};
+  /* Reads vlanmap info based on recieved ikey->key_ */
+  result_code = ReadConfigDB(temp_ck, req->datatype, UNC_OP_READ, dbop,
+                             dmi, MAINTBL);
+  if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+    UPLL_LOG_DEBUG("ReadConfigDB Failed %d", result_code);
+    delete temp_ck;
+    return result_code;
+  }
+  GET_USER_DATA_CTRLR_DOMAIN(temp_ck, ctrlr_dom);
+  SET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
+  uint8_t flags = 0;
+  GET_USER_DATA_FLAGS(temp_ck, flags);
+
+  pfcdrv_val_vlan_map_t *tval = reinterpret_cast<pfcdrv_val_vlan_map_t *>
+      (GetVal(temp_ck));
+  val_vlan_map_t *ival = NULL;
+  if ((ikey->get_cfg_val())->get_st_num() == IpctSt::kIpcStValVlanMap) {
+    ival = reinterpret_cast<val_vlan_map_t *>
+        (GetVal(ikey));
+  } else {
+    pfcdrv_val_vlan_map_t *drv_val = reinterpret_cast<pfcdrv_val_vlan_map_t *>
+        (GetVal(ikey));
+    ival = &(drv_val->vm);
+  }
+
+  UPLL_LOG_TRACE("Vlanmap bdry_ref_count = %u", tval->bdry_ref_count);
+  /* Verifies whether the recived vlanmap is refered with boundary vlink  */
+  if ((tval->bdry_ref_count > 1) ||
+      ((tval->bdry_ref_count > 0) && (flags & USER_VLANMAP_FLAG))) {  //  TO DO
+    if (tval->vm.vlan_id != ival->vlan_id) {
+      UPLL_LOG_DEBUG("Cannot update vlan-id more than one vlan map refered");
+      delete temp_ck;
+      return UPLL_RC_ERR_CFG_SEMANTIC;
+    }
+  }
+
+  if (tval->vm.vlan_id == ival->vlan_id) {
+    UPLL_LOG_ERROR("Already same vlan-id is there in vlanmap entry."
+                   "No need to update");
+    delete temp_ck;
+    return UPLL_RC_SUCCESS;
+  }
+
+  result_code = ValidateCapability(
+      req, ikey, reinterpret_cast<char *>(ctrlr_dom.ctrlr));
+  if (UPLL_RC_SUCCESS  != result_code) {
+    UPLL_LOG_DEBUG("Validate Capability is Failed. Error_code : %d",
+                   result_code);
+    delete temp_ck;
+    return result_code;
+  }
+
+  delete temp_ck;
+
+  ConfigKeyVal *okey = NULL;
+  result_code = DupConfigKeyVal(okey, ikey, MAINTBL);
+  if (UPLL_RC_SUCCESS != result_code) {
+    UPLL_LOG_DEBUG(" DupConfigKeyVal Failed %d", result_code);
+    return result_code;
+  }
+
+  pfcdrv_val_vlan_map_t *val = reinterpret_cast<pfcdrv_val_vlan_map_t *>
+      (ConfigKeyVal::Malloc(sizeof(pfcdrv_val_vlan_map_t)));
+
+  void *valvlanmap = GetVal(ikey);
+  if ((ikey->get_cfg_val())->get_st_num() == IpctSt::kIpcStValVlanMap)
+    memcpy(&(val->vm), valvlanmap, sizeof(val_vlan_map_t));
+  else
+    memcpy(val, valvlanmap, sizeof(pfcdrv_val_vlan_map_t));
+  (okey->get_cfg_val())->SetVal(IpctSt::kIpcStPfcdrvValVlanMap, val);
+
+  //  ValidateAttribute needs Controller Domain
+  result_code = ValidateAttribute(okey, dmi, req);
+  if (UPLL_RC_SUCCESS  != result_code) {
+    UPLL_LOG_ERROR("Validate Attribute is Failed");
+    return result_code;
+  }
+  DbSubOp dbop1 = { kOpNotRead, kOpMatchNone, kOpInOutNone };
+  result_code = UpdateConfigDB(okey, req->datatype, UNC_OP_UPDATE,
+                               dmi, &dbop1, MAINTBL);
+  if (UPLL_RC_SUCCESS != result_code) {
+    UPLL_LOG_ERROR("Updation Failure in DB : %d", result_code);
+    return result_code;
+  }
+  DELETE_IF_NOT_NULL(okey);
+  UPLL_LOG_TRACE("Updated Done Successfully %d", result_code);
+  return result_code;
+}
+
+upll_rc_t VlanMapMoMgr::DeleteMo(IpcReqRespHeader *req,
+                                 ConfigKeyVal *ikey,
+                                 DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
+  upll_rc_t result_code = UPLL_RC_SUCCESS;
+  if (!ikey || !req || !(ikey->get_key())) {
+    UPLL_LOG_ERROR("Given Input is Empty")
+        return UPLL_RC_ERR_GENERIC;
+  }
+
+  result_code = ValidateMessage(req, ikey);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_ERROR("Validate Message is Failed %d ", result_code);
+    return result_code;
+  }
+
+  ConfigKeyVal *dup_ckv = NULL;
+  result_code = GetChildConfigKey(dup_ckv, ikey);
+
+  DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutFlag };
+  result_code = ReadConfigDB(dup_ckv, req->datatype, UNC_OP_READ, dbop,
+                             dmi, MAINTBL);
+  UPLL_LOG_TRACE("Read config DB result code = %u", result_code);
+
+  if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+    UPLL_LOG_ERROR("Record Doesn't Exists in DB ");
+    delete dup_ckv;
+    return result_code;
+  }
+
+  pfcdrv_val_vlan_map_t *drv_val = reinterpret_cast<pfcdrv_val_vlan_map_t *>
+      (GetVal(dup_ckv));
+  uint8_t flags = 0;
+  GET_USER_DATA_FLAGS(dup_ckv, flags);
+
+  UPLL_LOG_TRACE("Vlanmap flag = %u. bdry_ref_count = %u", flags,
+                 drv_val->bdry_ref_count);
+  if ((drv_val->bdry_ref_count > 0) && (flags & USER_VLANMAP_FLAG)) {
+    flags &= ~USER_VLANMAP_FLAG;
+    SET_USER_DATA_FLAGS(dup_ckv, flags);
+    UPLL_LOG_TRACE("Flag to be update = %u", flags);
+
+    DbSubOp dbop1 = { kOpNotRead, kOpMatchNone, kOpInOutFlag };
+    result_code = UpdateConfigDB(dup_ckv, req->datatype, UNC_OP_UPDATE,
+                                 dmi, &dbop1, MAINTBL);
+    delete dup_ckv;
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("Update vlanmap flag is failed");
+      return result_code;
+    }
+    return UPLL_RC_SUCCESS;
+  }
+
+
+  void *valvlanmap = GetVal(ikey);
+  if (ikey->get_cfg_val()) {
+    pfcdrv_val_vlan_map_t *val = reinterpret_cast<pfcdrv_val_vlan_map_t *>
+        (ConfigKeyVal::Malloc(sizeof(pfcdrv_val_vlan_map_t)));
+    if ((ikey->get_cfg_val())->get_st_num() ==
+        IpctSt::kIpcStPfcdrvValVlanMap) {
+      memcpy(val, valvlanmap, sizeof(pfcdrv_val_vlan_map_t));
+    } else {
+      memcpy(&(val->vm), valvlanmap, sizeof(val_vlan_map_t));
+    }
+    (dup_ckv->get_cfg_val())->SetVal(IpctSt::kIpcStPfcdrvValVlanMap, val);
+  } else {
+    dup_ckv->DeleteCfgVal();
+  }
+
+  result_code = DeleteCandidateMo(req, dup_ckv, dmi);
+  if (UPLL_RC_SUCCESS != result_code) {
+    UPLL_LOG_ERROR("Returning Error - %d", result_code);
+  }
+  DELETE_IF_NOT_NULL(dup_ckv);
+  return result_code;
+}
+
+upll_rc_t VlanMapMoMgr::CheckIfFfPmConfigured(IpcReqRespHeader *req,
+                                              ConfigKeyVal *ikey,
+                                              DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
+
+  upll_rc_t result_code = UPLL_RC_SUCCESS;
+  ConfigKeyVal *ckv = NULL;
+
+  /* Verifies vbrif_flowfilter tbl */
+  VbrIfFlowFilterMoMgr *vbrif_ff_mgr = reinterpret_cast<VbrIfFlowFilterMoMgr *>(
+      const_cast<MoManager *>(GetMoManager(UNC_KT_VBRIF_FLOWFILTER)));
+  if (!vbrif_ff_mgr) {
+    UPLL_LOG_DEBUG("Invalid mgr");
+    return UPLL_RC_ERR_GENERIC;
+  }
+
+  result_code = vbrif_ff_mgr->GetChildConfigKey(ckv, ikey);
+  if (result_code != UPLL_RC_SUCCESS) return UPLL_RC_ERR_GENERIC;
+
+  DbSubOp dbop = {kOpReadMultiple, kOpMatchNone, kOpInOutNone};
+  /*Checks the vbrif_flowfilter table*/
+  result_code = vbrif_ff_mgr->ReadConfigDB(ckv, req->datatype, UNC_OP_READ,
+                                           dbop, dmi, MAINTBL);
+  if (result_code != UPLL_RC_SUCCESS &&
+      result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+    UPLL_LOG_ERROR("Failed to read vbrif flowfilter info from DB");
+    delete ckv;
+    return result_code;
+  }
+
+  if (result_code == UPLL_RC_SUCCESS) {
+    UPLL_LOG_ERROR("SD or SW Boundary vlink cannot be configured."
+                   "Flowfilter is present");
+    delete ckv;
+    return UPLL_RC_ERR_CFG_SEMANTIC;
+  }
+  delete ckv;
+  ckv = NULL;
+
+  /* Validates vbrif_policingmap tbl */
+  VbrIfPolicingMapMoMgr *vbrif_pm_mgr =
+      reinterpret_cast<VbrIfPolicingMapMoMgr *>(
+          const_cast<MoManager *>(GetMoManager(UNC_KT_VBRIF_POLICINGMAP)));
+  if (!vbrif_pm_mgr) {
+    UPLL_LOG_DEBUG("Invalid mgr");
+    return UPLL_RC_ERR_GENERIC;
+  }
+
+  result_code = vbrif_pm_mgr->GetChildConfigKey(ckv, ikey);
+  if (result_code != UPLL_RC_SUCCESS) return UPLL_RC_ERR_GENERIC;
+
+  /*Checks the vbrif_flowfilter table*/
+  result_code = vbrif_pm_mgr->ReadConfigDB(ckv, req->datatype, UNC_OP_READ,
+                                           dbop, dmi, MAINTBL);
+  if (result_code != UPLL_RC_SUCCESS &&
+      result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+    UPLL_LOG_ERROR("Failed to read vbrif policingmap info from DB");
+    delete ckv;
+    return result_code;
+  }
+
+  if (result_code == UPLL_RC_SUCCESS) {
+    UPLL_LOG_ERROR("SD or SW Boundary vlink cannot be configured."
+                   "Policingmap is present");
+    delete ckv;
+    return UPLL_RC_ERR_CFG_SEMANTIC;
+  }
+  delete ckv;
+  ckv = NULL;
+  return UPLL_RC_SUCCESS;
+}
+
+upll_rc_t VlanMapMoMgr::BoundaryVlanmapReq(IpcReqRespHeader *req,
+                                           ConfigKeyVal *ikey,
+                                           ConfigKeyVal *db_vlink,
+                                           ConfigKeyVal *vlanmap_ckv,
+                                           DalDmlIntf *dmi) {
+  uint8_t        flags        = 0;
+  upll_rc_t      result_code  = UPLL_RC_SUCCESS;
+
+  if (!req || !ikey || !db_vlink || !vlanmap_ckv || !dmi) {
+    UPLL_LOG_INFO("Cannot perform this request"
+                  "due to insufficient parameters");
+    return UPLL_RC_ERR_GENERIC;
+  }
+
+  val_vlink_t *ival = reinterpret_cast<val_vlink *>(GetVal(ikey));
+
+  val_vlink_t *tval = reinterpret_cast<val_vlink *>(GetVal(db_vlink));
+  if (!ival || !tval) {
+    UPLL_LOG_DEBUG("vlink val structure not present");
+    return UPLL_RC_ERR_GENERIC;
+  }
+
+  /* Get the vnode position */
+  GET_USER_DATA_FLAGS(db_vlink->get_cfg_val(), flags);
+  flags &= VLINK_FLAG_NODE_POS;
+  UPLL_LOG_TRACE("Vnode position flag = %u", flags);
+
+  VlinkMoMgr *vlink_mgr = reinterpret_cast<VlinkMoMgr *>(
+      const_cast<MoManager *>(GetMoManager(UNC_KT_VLINK)));
+  /* ck_boundary ConfigKeyVal contains logical port id info */
+  if (!vlink_mgr->ck_boundary && !GetVal(vlink_mgr->ck_boundary)) {
+    UPLL_LOG_DEBUG("Boundary details is not there");
+    return UPLL_RC_ERR_GENERIC;
+  }
+
+  val_boundary_t *boundary_val = reinterpret_cast<val_boundary_t *>(
+      GetVal(vlink_mgr->ck_boundary));
+  key_vlan_map_t *vlanmap_key  = reinterpret_cast<key_vlan_map_t *>(
+      vlanmap_ckv->get_key());
+
+  uint8_t *logical_port_id = NULL;
+  controller_domain vlanmap_ctrlr_dom;
+  vlanmap_ctrlr_dom.ctrlr = vlanmap_ctrlr_dom.domain = NULL;
+
+  /* Verifies controller_name and domain name and gets
+   * vlanmap logical_port_id */
+  GET_USER_DATA_CTRLR_DOMAIN(vlanmap_ckv, vlanmap_ctrlr_dom);
+  UPLL_LOG_TRACE("ctrlr_name = %s domain_name = %s", vlanmap_ctrlr_dom.ctrlr,
+                 vlanmap_ctrlr_dom.domain);
+
+  /* If controller or domain is NULL, return error */
+  if (!vlanmap_ctrlr_dom.ctrlr || !vlanmap_ctrlr_dom.domain) {
+    UPLL_LOG_ERROR("Controller_name or domain_name is NULL");
+    return UPLL_RC_ERR_GENERIC;
+  }
+
+  if ((!strcmp(reinterpret_cast<char *>(vlanmap_ctrlr_dom.ctrlr),
+              reinterpret_cast<char *>(boundary_val->controller_name1))) &&
+     (!strcmp(reinterpret_cast<char *>(vlanmap_ctrlr_dom.domain),
+              reinterpret_cast<char *>(boundary_val->domain_name1)))) {
+    logical_port_id = boundary_val->logical_port_id1;
+  } else if ((!strcmp(reinterpret_cast<char *>(vlanmap_ctrlr_dom.ctrlr),
+                      reinterpret_cast<char *>
+                      (boundary_val->controller_name2))) &&
+             (!strcmp(reinterpret_cast<char *>(vlanmap_ctrlr_dom.domain),
+                      reinterpret_cast<char *>(boundary_val->domain_name2)))) {
+    logical_port_id = boundary_val->logical_port_id2;
+  } else {
+    UPLL_LOG_ERROR(" Controller and domain match not found");
+    return UPLL_RC_ERR_CFG_SEMANTIC;
+  }
+
+  /* Populate the logcial port id before updating vlanmap tbl */
+  if (logical_port_id) {
+    uuu::upll_strncpy(vlanmap_key->logical_port_id, logical_port_id,
+                      (kMaxLenLogicalPortId + 1));
+    vlanmap_key->logical_port_id_valid = PFC_TRUE;
+  }
+
+  pfcdrv_val_vlan_map_t *val_vlanmap = NULL;
+  /*Checks the existance of vlanmap entry in vlanmap table */
+  DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutFlag };
+  result_code = ReadConfigDB(vlanmap_ckv, req->datatype, UNC_OP_READ, dbop,
+                             dmi, MAINTBL);
+  /* For update config DB changed to kOpNotRead */
+  dbop.readop = kOpNotRead;
+
+  UPLL_LOG_TRACE("Read config DB result code = %u", result_code);
+  if (result_code != UPLL_RC_SUCCESS &&
+      result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+    UPLL_LOG_DEBUG("Failed to read vlanmap info from DB");
+    return UPLL_RC_ERR_CFG_SYNTAX;
+  }
+
+  /* Boundary vlanmap create */
+  if ((tval->valid[UPLL_IDX_BOUNDARY_NAME_VLNK] == UNC_VF_INVALID) &&
+      ival->valid[UPLL_IDX_BOUNDARY_NAME_VLNK] == UNC_VF_VALID) {
+    UPLL_LOG_TRACE("Boundary Vlanmap Create");
+    req->operation = UNC_OP_CREATE;
+
+    if ((ival->valid[UPLL_IDX_VLAN_ID_VLNK] != UNC_VF_VALID) ||
+        (ival->vlan_id == 0xFFFF)) {
+      UPLL_LOG_ERROR("vlan-id is mandatory when boundary port is SW or SD");
+      return UPLL_RC_ERR_CFG_SEMANTIC;
+    }
+
+    val_vlanmap = reinterpret_cast<pfcdrv_val_vlan_map_t *>
+        (GetVal(vlanmap_ckv));
+
+    if (!val_vlanmap) {
+      return UPLL_RC_ERR_GENERIC;
+    }
+
+    /* Vlanmap entry is there in DB */
+    if (result_code == UPLL_RC_SUCCESS) {
+      /* vlan-id in existing entry is different from vlan-id in the request */
+      if (val_vlanmap->vm.vlan_id != ival->vlan_id) {
+        UPLL_LOG_ERROR("vlan-id cannot be modified if vlanmap is "
+                       "referenced by user or boundary");
+        return UPLL_RC_ERR_CFG_SEMANTIC;
+      }
+      /* Increment ref_count */
+      UPLL_LOG_TRACE("Old vlanmap bdry_ref_count:%u",
+                     val_vlanmap->bdry_ref_count);
+
+      /* Already user configured vlan_map exists and its
+       * not referred to any boundary vlink */
+      if (val_vlanmap->bdry_ref_count == 0) {
+        /* Verifies flow filter or policing map configured in the same
+           vbridge interface */
+        result_code = CheckIfFfPmConfigured(req, db_vlink, dmi);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_ERROR("Flow-filter or policing-map configured on "
+                         "vBridge interface of boundary vlanmap");
+          return result_code;
+        }
+      }
+      val_vlanmap->bdry_ref_count++;
+      val_vlanmap->valid[PFCDRV_IDX_BDRY_REF_COUNT] = UNC_VF_VALID;
+
+      /* Set boundary configured bit in vlan_map flag*/
+      GET_USER_DATA_FLAGS(vlanmap_ckv, flags);
+      flags |= BOUNDARY_VLANMAP_FLAG;
+      SET_USER_DATA_FLAGS(vlanmap_ckv, flags);
+
+      result_code = UpdateConfigDB(vlanmap_ckv, req->datatype, UNC_OP_UPDATE,
+                                   dmi, &dbop, MAINTBL);
+      if (UPLL_RC_SUCCESS != result_code) {
+        UPLL_LOG_ERROR("bdry_ref_count update failed");
+        return result_code;
+      }
+      return result_code;
+    }
+    val_vlanmap->vm.vlan_id = ival->vlan_id;
+    val_vlanmap->vm.valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+    val_vlanmap->valid[PFCDRV_IDX_VAL_VLAN_MAP] = UNC_VF_VALID;
+
+    val_vlanmap->bdry_ref_count = 1;
+    val_vlanmap->valid[PFCDRV_IDX_BDRY_REF_COUNT] = UNC_VF_VALID;
+
+    /*Creates boundary vlanmap under vbridge with bdry_ref_count as 1*/
+    SET_USER_DATA_FLAGS(vlanmap_ckv, BOUNDARY_VLANMAP_FLAG);
+
+    UPLL_LOG_TRACE("%s", vlanmap_ckv->ToStrAll().c_str());
+    UPLL_LOG_TRACE("%s", db_vlink->ToStrAll().c_str());
+    /* Verifies flow filter or policing map configured in the same
+       vbridge interface */
+    result_code = CheckIfFfPmConfigured(req, db_vlink, dmi);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_ERROR("Flow-filter or policing-map configured on "
+                     "vBridge interface of boundary vlanmap");
+      return result_code;
+    }
+
+    /* Creates vlanmap entry in vlanmap table */
+    result_code = VnodeChildMoMgr::CreateCandidateMo(req, vlanmap_ckv, dmi);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_ERROR("Boundary vlanmap creation failed");
+      return result_code;
+    }
+    return result_code;
+  }
+
+  /* Boundary vlink vlanmap update */
+  if ((tval->valid[UPLL_IDX_BOUNDARY_NAME_VLNK] == UNC_VF_VALID) &&
+      (ival->valid[UPLL_IDX_BOUNDARY_NAME_VLNK] == UNC_VF_VALID)) {
+    val_vlanmap = reinterpret_cast<pfcdrv_val_vlan_map_t *>
+        (GetVal(vlanmap_ckv));
+    if (result_code == UPLL_RC_SUCCESS) {
+      GET_USER_DATA_FLAGS(vlanmap_ckv, flags);
+
+      UPLL_LOG_TRACE("vlanmap flags = %u. vlanmap bdry_ref_count = %u",
+                     flags, val_vlanmap->bdry_ref_count);
+      /* Update of boundary vlanmap vlan-id is not possible if same
+         vlan map is refered with another vlink or user configured vlanmap */
+      if ((val_vlanmap->vm.vlan_id != ival->vlan_id) &&
+          ((flags & USER_VLANMAP_FLAG) || val_vlanmap->bdry_ref_count > 1)) {
+        UPLL_LOG_ERROR("vlan-id cannot be modified if vlanmap is "
+                       "referenced by user or boundary");
+        return UPLL_RC_ERR_CFG_SEMANTIC;
+      }
+    }
+
+    if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+      UPLL_LOG_ERROR("No vlanmap entry exists for boundary vlanmap update");
+      return UPLL_RC_ERR_CFG_SEMANTIC;
+    }
+
+    /* Updates boundary vlanmap vlan-id */
+    val_vlanmap->vm.vlan_id = ival->vlan_id;
+    val_vlanmap->vm.valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+    req->operation = UNC_OP_UPDATE;
+
+    UPLL_LOG_TRACE("%s", vlanmap_ckv->ToStrAll().c_str());
+    result_code = UpdateMo(req, vlanmap_ckv, dmi);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_ERROR("Boundary vlanmap update failed. error:%u",
+                     result_code);
+      return result_code;
+    }
+
+    return result_code;
+  }
+
+  /* Boundary vlanmap delete */
+  if ((ival->valid[UPLL_IDX_BOUNDARY_NAME_VLNK] == UNC_VF_VALID_NO_VALUE) &&
+      (tval->valid[UPLL_IDX_BOUNDARY_NAME_VLNK] == UNC_VF_VALID)) {
+    req->operation = UNC_OP_DELETE;
+
+    val_vlanmap =
+        reinterpret_cast<pfcdrv_val_vlan_map_t *>(GetVal(vlanmap_ckv));
+
+    if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+      UPLL_LOG_ERROR("Cannot update boundary vlan-id. "
+                     "No entry in vlanmap table");
+      return UPLL_RC_ERR_CFG_SEMANTIC;
+    }
+
+    if (result_code == UPLL_RC_SUCCESS) {
+      GET_USER_DATA_FLAGS(vlanmap_ckv, flags);
+
+      /* If vlan-id in the delete request is different from
+       * the existing vlan-id */
+      if (ival->valid[UPLL_IDX_VLAN_ID_VLNK] == UNC_VF_VALID) {
+        if (val_vlanmap->vm.vlan_id != ival->vlan_id) {
+          UPLL_LOG_ERROR("Vlan-id in the request does not match "
+                         "with the existing vlan-id");
+          return UPLL_RC_ERR_CFG_SEMANTIC;
+        }
+      }
+
+      /* Resets Boundary vlanmap flag in vlanmap entry */
+      if (((flags & USER_VLANMAP_FLAG) && val_vlanmap->bdry_ref_count > 0)||
+          (flags & USER_VLANMAP_FLAG) || val_vlanmap->bdry_ref_count > 1) {
+        UPLL_LOG_TRACE("Boundary ref_count = %u", val_vlanmap->bdry_ref_count);
+        uint8_t flag = 0;
+        if (val_vlanmap->bdry_ref_count == 1) {
+          GET_USER_DATA_FLAGS(vlanmap_ckv, flag);
+          flag &= ~BOUNDARY_VLANMAP_FLAG;
+          SET_USER_DATA_FLAGS(vlanmap_ckv, flag);
+          val_vlanmap->valid[PFCDRV_IDX_BDRY_REF_COUNT] =
+              UNC_VF_VALID_NO_VALUE;
+        }
+        val_vlanmap->bdry_ref_count--;
+
+        /* Decrements */
+        result_code = UpdateConfigDB(vlanmap_ckv, req->datatype, UNC_OP_UPDATE,
+                                     dmi, &dbop, MAINTBL);
+        if (UPLL_RC_SUCCESS != result_code) {
+          UPLL_LOG_ERROR("Ref count DB update failed");
+          return result_code;
+        }
+        return result_code;
+      }
+    }
+
+    /* Deletes vlanmap entry from db */
+    result_code = DeleteMo(req, vlanmap_ckv, dmi);
+    UPLL_LOG_TRACE("%s", vlanmap_ckv->ToStrAll().c_str());
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_ERROR("Failed to boundary vlink");
+      return result_code;
+    }
+    return result_code;
+  }
+  UPLL_LOG_DEBUG("Invalid request received");
+  return UPLL_RC_ERR_GENERIC;
+}
+
+upll_rc_t VlanMapMoMgr::TranslateError(ConfigKeyVal **err_ckv,
+                                       ConfigKeyVal *ckv_running,
+                                       DalDmlIntf *dmi,
+                                       upll_keytype_datatype_t datatype) {
+  UPLL_FUNC_TRACE;
+  upll_rc_t     result_code         = UPLL_RC_SUCCESS;
+  ConfigKeyVal  *ck_vlanmap         = NULL;
+  uint8_t       bound_vlanmap_vlink = 0;
+
+  /* Get duplicate Config key from ckv running*/
+  result_code   = GetChildConfigKey(ck_vlanmap, ckv_running);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_INFO("Error in GetChildConfigKey");
+    return result_code;
+  }
+
+  GET_USER_DATA_FLAGS(ck_vlanmap, bound_vlanmap_vlink);
+
+  ConfigKeyVal *err_ckv2 = NULL;
+  result_code = DupConfigKeyVal(err_ckv2, ckv_running);
+  if (result_code != UPLL_RC_SUCCESS) {
+    DELETE_IF_NOT_NULL(ck_vlanmap);
+    UPLL_LOG_INFO("Error in DupConfigKeyVal");
+    return result_code;
+  }
+  UPLL_LOG_INFO("Flag of failed VLANMAP is %d", bound_vlanmap_vlink);
+
+  /* Checks if it is part of only user configured vlanmap */
+  if ((bound_vlanmap_vlink & BOUNDARY_VLANMAP_FLAG) == 0x0) {
+    *err_ckv = err_ckv2;
+  } else {
+    /* Checks it is part of boundary vlink */
+    if (bound_vlanmap_vlink & BOUNDARY_VLANMAP_FLAG) {
+      VlinkMoMgr *mgr = reinterpret_cast<VlinkMoMgr *>
+          (const_cast<MoManager*>(GetMoManager(UNC_KT_VLINK)));
+      if (!mgr) {
+        UPLL_LOG_DEBUG("Invalid mgr");
+        DELETE_IF_NOT_NULL(ck_vlanmap);
+        DELETE_IF_NOT_NULL(err_ckv2);
+        return UPLL_RC_ERR_GENERIC;
+      }
+      ConfigKeyVal *ck_vlink = NULL;
+
+      result_code = mgr->GetVlinkKeyValFromVlanMap(ck_vlanmap, ck_vlink, dmi,
+                                                   datatype);
+      DELETE_IF_NOT_NULL(ck_vlanmap);
+      if (result_code == UPLL_RC_SUCCESS) {
+        UPLL_LOG_TRACE("Vlinks associated to logical_port_id are retrieved");
+        if (bound_vlanmap_vlink & USER_VLANMAP_FLAG) {
+          result_code = AdaptValToVtnService(err_ckv2);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("AdaptValToVtnService failed result_code %d",
+                           result_code);
+            DELETE_IF_NOT_NULL(err_ckv2);
+            return result_code;
+          }
+          err_ckv2->AppendCfgKeyVal(ck_vlink);
+          *err_ckv = err_ckv2;
+        } else {
+          DELETE_IF_NOT_NULL(err_ckv2);
+          *err_ckv = ck_vlink;
+        }
+        UPLL_LOG_TRACE("%s", (*err_ckv)->ToStrAll().c_str());
+        return result_code;
+      } else  {
+        UPLL_LOG_INFO("Failed to map boundary if to vlink."
+                      "result_code:%d", result_code);
+        /* For errors, no need to update err_ckv */
+        DELETE_IF_NOT_NULL(err_ckv2);
+        if (ck_vlink)
+          delete ck_vlink;
+        return result_code;
+      }
+    }
+  }
+  DELETE_IF_NOT_NULL(ck_vlanmap);
+
+  if (*err_ckv) {
+    result_code = AdaptValToVtnService(*err_ckv);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("AdaptValToVtnService failed result_code %d",
+                     result_code);
+      return result_code;
+    }
+  }
+  return result_code;
+}
+
+upll_rc_t VlanMapMoMgr::CheckIfVnodeisVlanmapped(ConfigKeyVal *ikey,
+                                                 DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
+  ConfigKeyVal *ck_vlanmap = NULL;
+  upll_rc_t result_code = UPLL_RC_SUCCESS;
+  result_code = GetChildConfigKey(ck_vlanmap, ikey);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_DEBUG("Error in GetChildConfigKey");
+    return result_code;
+  }
+  key_vlan_map *vlanmap_key = reinterpret_cast<key_vlan_map*>
+      (ck_vlanmap->get_key());
+  if (vlanmap_key == NULL) {
+    UPLL_LOG_DEBUG("Error in getting key");
+    DELETE_IF_NOT_NULL(ck_vlanmap);
+    return UPLL_RC_ERR_GENERIC;
+  }
+  vlanmap_key->logical_port_id_valid = INVALID_LOG_PORT_ID_VALID;
+
+  DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutNone };
+  result_code = UpdateConfigDB(ck_vlanmap, UPLL_DT_RUNNING, UNC_OP_READ,
+                               dmi, &dbop, MAINTBL);
+  DELETE_IF_NOT_NULL(ck_vlanmap);
+  return result_code;
+}
+}  //  namespace kt_momgr
+}  //  namespace upll
+}  //  namespace unc
index 0d0faf4f8a6e74ed9849a83bdd3df98d371b89a1..93dc96e32efddc130516dd07f41c116fff00f953 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -22,257 +22,264 @@ namespace uuds = unc::upll::dal::schema;
 namespace uudst = unc::upll::dal::schema::table;
 
 class VlanMapMoMgr : public VnodeChildMoMgr {
-  private:
-    static BindInfo vlan_map_bind_info[];
-    static BindInfo vlan_map_maintbl_update_key_bind_info[];
-    /**
-     * @brief  Gets the valid array position of the variable in the value
-     *         structure from the table in the specified configuration
-     *
-     * @param[in]     val      pointer to the value structure
-     * @param[in]     indx     database index for the variable
-     * @param[out]    valid    position of the variable in the valid array -
-     *                          NULL if valid does not exist.
-     * @param[in]     dt_type  specifies the configuration
-     * @param[in]     tbl      specifies the table containing the given value
-     *
-     **/
-    upll_rc_t GetValid(void *val,
-                       uint64_t indx,
-                       uint8_t *&valid,
-                       upll_keytype_datatype_t dt_type,
-                       MoMgrTables tbl) {
-      if (val == NULL) return UPLL_RC_ERR_GENERIC;
-      if (tbl == MAINTBL) {
-        switch (indx) {
-          case uudst::vbridge_vlanmap::kDbiVlanid:
-            valid = &(reinterpret_cast<val_vlan_map *>
-                      (val))->valid[UPLL_IDX_VLAN_ID_VM];
-            break;
-          default:
-            return UPLL_RC_ERR_GENERIC;
-        }
+ private:
+  static BindInfo vlan_map_bind_info[];
+  static BindInfo vlan_map_maintbl_update_key_bind_info[];
+  /**
+   * @brief  Gets the valid array position of the variable in the value
+   *         structure from the table in the specified configuration
+   *
+   * @param[in]     val      pointer to the value structure
+   * @param[in]     indx     database index for the variable
+   * @param[out]    valid    position of the variable in the valid array -
+   *                          NULL if valid does not exist.
+   * @param[in]     dt_type  specifies the configuration
+   * @param[in]     tbl      specifies the table containing the given value
+   *
+   **/
+  upll_rc_t GetValid(void *val,
+                     uint64_t indx,
+                     uint8_t *&valid,
+                     upll_keytype_datatype_t dt_type,
+                     MoMgrTables tbl) {
+    if (val == NULL) return UPLL_RC_ERR_GENERIC;
+    if (tbl == MAINTBL) {
+      switch (indx) {
+        /* VlanmapOnBoundary: New attributes added*/
+        case uudst::vbridge_vlanmap::kDbiVlanid:
+          valid = &(reinterpret_cast<pfcdrv_val_vlan_map *>
+                    (val))->vm.valid[UPLL_IDX_VLAN_ID_VM];
+          break;
+        case uudst::vbridge_vlanmap::kDbiBdryRefCount:
+          valid = &(reinterpret_cast<pfcdrv_val_vlan_map *>
+                    (val))->valid[PFCDRV_IDX_BDRY_REF_COUNT];
+          break;
+        default:
+          return UPLL_RC_ERR_GENERIC;
       }
-      return UPLL_RC_SUCCESS;
     }
+    return UPLL_RC_SUCCESS;
+  }
 
-    upll_rc_t UpdateConfigStatus(ConfigKeyVal *req,
-                                 unc_keytype_operation_t op,
-                                 uint32_t driver_result,
-                                 ConfigKeyVal *upd_key, DalDmlIntf *dmi,
-                                 ConfigKeyVal *ctrlr_key = NULL);
+  /**
+   * @brief  Update parent oper status on delete for Transaction commit
+   *
+   * @param[in]  ikey          ConfigKeyVal instance
+   * @param[in]   dmi           Database connection parameter
 
-    upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
-                                      uuc::UpdateCtrlrPhase phase,
-                                      ConfigKeyVal *&ckv_running);
-    /**
-     * @Brief  Validates the syntax of the specified key and value structure
-     *         for KT_VBR_VLANMAP keytype
-     *
-     * @param[in]  req    This structure contains IpcReqRespHeader
-     *                    (first 8 fields of input request structure).
-     * @param[in]  ikey   ikey contains key and value structure.
-     *
-     * @retval  UPLL_RC_SUCCESS               Successful.
-     * @retval  UPLL_RC_ERR_CFG_SYNTAX        Syntax error.
-     * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE  key_vlan_map is not available.
-     * @retval  UPLL_RC_ERR_GENERIC           Generic failure.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION1   option1 is not valid.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION2   option2 is not valid.
-     */
-    upll_rc_t ValidateMessage(IpcReqRespHeader *req,
-                              ConfigKeyVal *ikey);
+   * @retval  UPLL_RC_SUCCESS      Completed successfully.
+   * @retval  UPLL_RC_ERR_GENERIC  Generic failure.
+   */
+  upll_rc_t UpdateParentOperStatus(ConfigKeyVal *ikey,
+                                   DalDmlIntf *dmi);
 
-    /**
-     * @Brief  Checks if the specified key type(KT_VBR_VLANMAP) and
-     *         associated attributes are supported on the given controller,
-     *         based on the valid flag
-     *
-     * @param[in]  req               This structure contains IpcReqRespHeader
-     *                               (first 8 fields of input request structure).
-     * @param[in]  ikey              ikey contains key and value structure.
-     * @param[in]  ctrlr_id          controller associated with the input ikey.
-     *
-     * @retval  UPLL_RC_SUCCESS              Validation succeeded.
-     * @retval  UPLL_RC_ERR_GENERIC          Validation failure.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION1  Option1 is not valid.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION2  Option2 is not valid.
-     */
-    upll_rc_t ValidateCapability(IpcReqRespHeader *req,
-                                 ConfigKeyVal *ikey,
-                                 const char *ctrlr_name);
+  upll_rc_t UpdateConfigStatus(ConfigKeyVal *req,
+                               unc_keytype_operation_t op,
+                               uint32_t driver_result,
+                               ConfigKeyVal *upd_key, DalDmlIntf *dmi,
+                               ConfigKeyVal *ctrlr_key = NULL);
 
-    /**
-     * @Brief  Checks if the specified key type and
-     *         associated attributes are supported on the given controller,
-     *         based on the valid flag.
-     *
-     * @param[in]  val_vlan_map    KT_VBR_VLANMAP Value structure.
-     * @param[in]  attrs           Pointer to controller attribute.
-     * @param[in]  operation       Operation name.
-     *
-     * @retval  UPLL_RC_SUCCESS                     validation succeeded.
-     * @retval  UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR  Attribute NOT_SUPPORTED.
-     * @retval  UPLL_RC_ERR_GENERIC                 Generic failure.
-     **/
-    upll_rc_t ValVlanmapAttributeSupportCheck(
-        val_vlan_map *vlanmap_val,
-        const uint8_t *attrs,
-        unc_keytype_operation_t operation);
+  upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
+                                    uuc::UpdateCtrlrPhase phase,
+                                    ConfigKeyVal *&ckv_running,
+                                    DalDmlIntf *dmi);
+  /**
+   * @Brief  Validates the syntax of the specified key and value structure
+   *         for KT_VBR_VLANMAP keytype
+   *
+   * @param[in]  req    This structure contains IpcReqRespHeader
+   *                    (first 8 fields of input request structure).
+   * @param[in]  ikey   ikey contains key and value structure.
+   *
+   * @retval  UPLL_RC_SUCCESS               Successful.
+   * @retval  UPLL_RC_ERR_CFG_SYNTAX        Syntax error.
+   * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE  key_vlan_map is not available.
+   * @retval  UPLL_RC_ERR_GENERIC           Generic failure.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION1   option1 is not valid.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION2   option2 is not valid.
+   */
+  upll_rc_t ValidateMessage(IpcReqRespHeader *req,
+                            ConfigKeyVal *ikey);
 
-    /**
-     * @Brief  Validates the syntax for KT_VBR_VLANMAP Keytype key structure.
-     *
-     * @param[in]  key_vlan_map  KT_VBR_VLANMAP key structure.
-     * @param[in]  operation     Operation type.
-     *
-     * @retval  UPLL_RC_SUCCESS        validation succeeded.
-     * @retval  UPLL_RC_ERR_CFG_SYNTAX validation failed.
-     *
-     */
-    upll_rc_t ValidateVlanmapKey(key_vlan_map *vlan_map_key,
-                         unc_keytype_operation_t operation);
+  /**
+   * @Brief  Checks if the specified key type(KT_VBR_VLANMAP) and
+   *         associated attributes are supported on the given controller,
+   *         based on the valid flag
+   *
+   * @param[in]  req               This structure contains IpcReqRespHeader
+   *                               (first 8 fields of input request structure).
+   * @param[in]  ikey              ikey contains key and value structure.
+   * @param[in]  ctrlr_id          controller associated with the input ikey.
+   *
+   * @retval  UPLL_RC_SUCCESS              Validation succeeded.
+   * @retval  UPLL_RC_ERR_GENERIC          Validation failure.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION1  Option1 is not valid.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION2  Option2 is not valid.
+   */
+  upll_rc_t ValidateCapability(IpcReqRespHeader *req,
+                               ConfigKeyVal *ikey,
+                               const char *ctrlr_name);
 
-    /**
-     * @Brief  Validates the syntax for KT_VBR_VLANMAP keytype value structure.
-     *
-     * @param[in]  val_vlan_map   KT_VBR_VLANMAP value structure.
-     * @param[in]  operation      Operation type.
-     *
-     * @retval  UPLL_RC_SUCCESS                validation succeeded.
-     * @retval  UPLL_RC_ERR_CFG_SYNTAX         validation failed.
-     * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE   description field is not available
-     **/
-    upll_rc_t ValidateVlanmapValue(val_vlan_map *vlanmap_val,
-                                   uint32_t op);
+  /**
+   * @Brief  Checks if the specified key type and
+   *         associated attributes are supported on the given controller,
+   *         based on the valid flag.
+   *
+   * @param[in]  val_vlan_map    KT_VBR_VLANMAP Value structure.
+   * @param[in]  attrs           Pointer to controller attribute.
+   * @param[in]  operation       Operation name.
+   *
+   * @retval  UPLL_RC_SUCCESS                     validation succeeded.
+   * @retval  UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR  Attribute NOT_SUPPORTED.
+   * @retval  UPLL_RC_ERR_GENERIC                 Generic failure.
+   **/
+  upll_rc_t ValVlanmapAttributeSupportCheck(
+      val_vlan_map *vlanmap_val,
+      const uint8_t *attrs,
+      unc_keytype_operation_t operation);
 
-    /**
-     * @brief  Perform Semantic Check to check Different vbridges
-     *          contain same switch-id and vlan-id
-     *
-     * @param[in]       ikey        ConfigKeyVal
-     * @param[out]      upll_rc_t   UPLL_RC_ERR_CFG_SEMANTIC on error
-     *                                UPLL_RC_SUCCESS on success
-     **/
-    upll_rc_t ValidateAttribute(ConfigKeyVal *kval,
-                                DalDmlIntf *dmi,
-                                IpcReqRespHeader *req = NULL);
-    /**
-     * @brief  Duplicates the input configkeyval including the key and val.
-     * based on the tbl specified.
-     *
-     * @param[in]  okey   Output Configkeyval - allocated within the function
-     * @param[in]  req    Input ConfigKeyVal to be duplicated.
-     * @param[in]  tbl    specifies if the val structure belongs to the main table/ controller table or rename table.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey,
-                              ConfigKeyVal *&req,
-                              MoMgrTables tbl = MAINTBL);
-    /**
-     * @brief  Allocates for the specified val in the given configuration in the     * specified table.
-     *
-     * @param[in]  ck_val   Reference pointer to configval structure allocated.      * @param[in]  dt_type  specifies the configuration candidate/running/state
-     * @param[in]  tbl      specifies if the corresponding table is the  main
-     *                      table / controller table or rename table.
-     *
-     * @retval     UPLL_RC_SUCCESS      Successfull completion.
-     * @retval     UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t AllocVal(ConfigVal *&ck_val,
-                       upll_keytype_datatype_t dt_type,
-                       MoMgrTables tbl = MAINTBL);
-    /**
-     * @brief      Method to get a configkeyval of a specified keytype from an input configkeyval
-     *
-     * @param[in/out]  okey                 pointer to output ConfigKeyVal
-     * @param[in]      parent_key           pointer to the configkeyval from which the output configkey val is initialized.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     */
-    upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey,
-                                ConfigKeyVal *parent_key);
-    /**
-     * @brief      Method to get a configkeyval of the parent keytype
-     *
-     * @param[in/out]  okey           pointer to parent ConfigKeyVal
-     * @param[in]      ikey           pointer to the child configkeyval from
-     * which the parent configkey val is obtained.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
-    uint8_t* GetControllerId(ConfigKeyVal *ck_vbr,
-                             upll_keytype_datatype_t dt_type,
-                             DalDmlIntf *dmi);
-    /**
-     * @brief  Filters the attributes which need not be sent to controller
-     *
-     * @param[in/out]  val1   first record value instance.
-     * @param[in]      val2   second record value instance.
-     * @param[in]      audit  Not used for VTN
-     * @param[in]      op     Operation to be performed
-     *
-     **/
-    bool FilterAttributes(void *&val1,
-                          void *val2,
-                          bool audit_status,
-                          unc_keytype_operation_t op);
-    /**
-     * @brief  Compares the valid value between two database records.
-     *              if both the values are same, update the valid flag for corresponding
-     *              attribute as invalid in the first record.
-     *
-     * @param[in/out]  val1   first record value instance.
-     * @param[in]      val2   second record value instance.
-     * @param[in]      audit  if true, CompareValidValue called from audit process.
-     *
-     **/
-    bool CompareValidValue(void *&val1,
-                           void *val2,
-                           bool audit);
+  /**
+   * @Brief  Validates the syntax for KT_VBR_VLANMAP Keytype key structure.
+   *
+   * @param[in]  key_vlan_map  KT_VBR_VLANMAP key structure.
+   * @param[in]  operation     Operation type.
+   *
+   * @retval  UPLL_RC_SUCCESS        validation succeeded.
+   * @retval  UPLL_RC_ERR_CFG_SYNTAX validation failed.
+   *
+   */
+  upll_rc_t ValidateVlanmapKey(key_vlan_map *vlan_map_key,
+                               unc_keytype_operation_t operation);
+
+  /**
+   * @Brief  Validates the syntax for KT_VBR_VLANMAP keytype value structure.
+   *
+   * @param[in]  val_vlan_map   KT_VBR_VLANMAP value structure.
+   * @param[in]  operation      Operation type.
+   *
+   * @retval  UPLL_RC_SUCCESS                validation succeeded.
+   * @retval  UPLL_RC_ERR_CFG_SYNTAX         validation failed.
+   * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE   description field is not available
+   **/
+  upll_rc_t ValidateVlanmapValue(val_vlan_map *vlanmap_val,
+                                 uint32_t op);
 
-    /* Rename */
-    bool GetRenameKeyBindInfo(unc_key_type_t key_type,
-                              BindInfo *&binfo,
-                              int &nattr,
-                              MoMgrTables tbl);
-    upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey,
-                              ConfigKeyVal *ikey);
-    upll_rc_t IsReferenced(ConfigKeyVal *ikey,
+  /**
+   * @brief  Perform Semantic Check to check Different vbridges
+   *          contain same switch-id and vlan-id
+   *
+   * @param[in]       ikey        ConfigKeyVal
+   * @param[out]      upll_rc_t   UPLL_RC_ERR_CFG_SEMANTIC on error
+   *                                UPLL_RC_SUCCESS on success
+   **/
+  upll_rc_t ValidateAttribute(ConfigKeyVal *kval,
+                              DalDmlIntf *dmi,
+                              IpcReqRespHeader *req = NULL);
+  /**
+   * @brief  Allocates for the specified val in the given configuration in the     * specified table.
+   *
+   * @param[in]  ck_val   Reference pointer to configval structure allocated.      * @param[in]  dt_type  specifies the configuration candidate/running/state
+   * @param[in]  tbl      specifies if the corresponding table is the  main
+   *                      table / controller table or rename table.
+   *
+   * @retval     UPLL_RC_SUCCESS      Successfull completion.
+   * @retval     UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t AllocVal(ConfigVal *&ck_val,
+                     upll_keytype_datatype_t dt_type,
+                     MoMgrTables tbl = MAINTBL);
+  /**
+   * @brief      Method to get a configkeyval of the parent keytype
+   *
+   * @param[in/out]  okey           pointer to parent ConfigKeyVal
+   * @param[in]      ikey           pointer to the child configkeyval from
+   * which the parent configkey val is obtained.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
+  uint8_t* GetControllerId(ConfigKeyVal *ck_vbr,
                            upll_keytype_datatype_t dt_type,
                            DalDmlIntf *dmi);
-    bool ResetDataForSibling(key_vlan_map *key_vmap,
-                             uudst::vbridge_vlanmap::kVbrVlanMapIndex index);
+  /**
+   * @brief  Filters the attributes which need not be sent to controller
+   *
+   * @param[in/out]  val1   first record value instance.
+   * @param[in]      val2   second record value instance.
+   * @param[in]      audit  Not used for VTN
+   * @param[in]      op     Operation to be performed
+   *
+   **/
+  bool FilterAttributes(void *&val1,
+                        void *val2,
+                        bool audit_status,
+                        unc_keytype_operation_t op);
+  /**
+   * @brief  Compares the valid value between two database records.
+   *        if both the values are same, update the valid flag for corresponding
+   *        attribute as invalid in the first record.
+   *
+   * @param[in/out]  val1   first record value instance.
+   * @param[in]      val2   second record value instance.
+   * @param[in]      audit  if true, CompareValidValue called from audit process.
+   *
+   **/
+  bool CompareValidValue(void *&val1,
+                         void *val2,
+                         bool audit);
 
-    static uint16_t kVbrVlanMapNumChildKey;
+  /* Rename */
+  bool GetRenameKeyBindInfo(unc_key_type_t key_type,
+                            BindInfo *&binfo,
+                            int &nattr,
+                            MoMgrTables tbl);
+  upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey,
+                            ConfigKeyVal *ikey);
+  upll_rc_t IsReferenced(ConfigKeyVal *ikey,
+                         upll_keytype_datatype_t dt_type,
+                         DalDmlIntf *dmi);
+  bool ResetDataForSibling(key_vlan_map *key_vmap,
+                           uudst::vbridge_vlanmap::kVbrVlanMapIndex index);
+  /**
+   * @brief  VlanmapOnBoundary:
+   *         Verifies whether the flow filter or policing map configured
+   *         in the requested boundary vlink request of logical port id
+   *         is SW or SD
+   *
+   * @param[in]   req          This structure contains
+   *                           IpcReqRespHeader(first 8 fields of
+   *                           input request structure).
+   * @param[out]  ikey         ConfigKeyVal instance of vlink.
+   * @param[in]   dmi          pointer to DalDmlIntf
+   **/
+  upll_rc_t CheckIfFfPmConfigured(IpcReqRespHeader *req,
+                                  ConfigKeyVal *ikey, DalDmlIntf *dmi);
 
-  public:
-    VlanMapMoMgr();
-    virtual ~VlanMapMoMgr() {
-      for (int i = 0; i < ntable; i++)
-        if (table[i]) {
-          delete table[i];
-        }
-      delete[] table;
-    }
-    /**
-     * @brief      Method to check if individual portions of a key are valid
-     *
-     * @param[in/out]  ikey                 pointer to ConfigKeyVal referring to a UNC resource
-     * @param[in]      index                db index associated with the variable
-     *
-     * @retval         true                 input key is valid
-     * @retval         false                input key is invalid.
-     **/
-    bool IsValidKey(void *tkey,
-                    uint64_t index);
-    upll_rc_t IsLogicalPortAndVlanIdInUse(ConfigKeyVal *ckv, DalDmlIntf *dmi,
-                                          IpcReqRespHeader *req);
+  static uint16_t kVbrVlanMapNumChildKey;
+
+ public:
+  VlanMapMoMgr();
+  virtual ~VlanMapMoMgr() {
+    for (int i = 0; i < ntable; i++)
+      if (table[i]) {
+        delete table[i];
+      }
+    delete[] table;
+  }
+  /**
+   * @brief      Method to check if individual portions of a key are valid
+   *
+   * @param[in/out]  ikey                 pointer to ConfigKeyVal referring to a UNC resource
+   * @param[in]      index                db index associated with the variable
+   *
+   * @retval         true                 input key is valid
+   * @retval         false                input key is invalid.
+   **/
+  bool IsValidKey(void *tkey,
+                  uint64_t index);
+  upll_rc_t IsLogicalPortAndVlanIdInUse(ConfigKeyVal *ckv, DalDmlIntf *dmi,
+                                        IpcReqRespHeader *req);
 
   /* @brief         READ_SIBLING_BEGIN: Gets the first MO from the sibling group
    *                under the parent
@@ -298,6 +305,67 @@ class VlanMapMoMgr : public VnodeChildMoMgr {
                                   ConfigKeyVal *key,
                                   bool begin,
                                   DalDmlIntf *dal);
+  /**
+   * @brief  VlanmapOnBoundary
+   *         To handles boundary vlink logical port id - SW or SD request
+   *
+   * @param[in]   req          This structure contains
+   *                           IpcReqRespHeader(first 8 fields of
+   *                           input request structure).
+   * @param[out]  ikey         ConfigKeyVal instance of vlink.
+   * @param[out]  db_vlink     ConfigKeyVal instance of vlink read from DB.
+   * @param[out]  vlanmap_ckv  ConfigKeyVal instance of vlanmap.
+   * @param[in]   dmi          pointer to DalDmlIntf
+   **/
+  upll_rc_t BoundaryVlanmapReq(IpcReqRespHeader *req,
+                               ConfigKeyVal *ikey, ConfigKeyVal *db_vlink,
+                               ConfigKeyVal *vlanmap_ckv, DalDmlIntf *dmi);
+
+  upll_rc_t ReadSiblingBeginMo(IpcReqRespHeader *header,
+                               ConfigKeyVal *ikey,
+                               bool begin,
+                               DalDmlIntf *dmi);
+  upll_rc_t ReadSiblingCount(IpcReqRespHeader *header,
+                             ConfigKeyVal *ikey,
+                             DalDmlIntf *dmi);
+  upll_rc_t AdaptValToVtnService(ConfigKeyVal *ikey);
+  upll_rc_t UpdateMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
+                     DalDmlIntf *dmi);
+  upll_rc_t DeleteMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
+                     DalDmlIntf *dmi);
+  upll_rc_t TranslateError(ConfigKeyVal **err_ckv,
+                           ConfigKeyVal *ckv_running,
+                           DalDmlIntf *dmi, upll_keytype_datatype_t datatype);
+  /**
+   * @brief  Duplicates the input configkeyval including the key and val.
+   * based on the tbl specified.
+   *
+   * @param[in]  okey   Output Configkeyval - allocated within the function
+   * @param[in]  req    Input ConfigKeyVal to be duplicated.
+   * @param[in]  tbl    specifies if the val structure belongs to the main
+   *                    table/controller table or rename table.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey,
+                            ConfigKeyVal *&req,
+                            MoMgrTables tbl = MAINTBL);
+  /**
+   * @brief      Method to get a configkeyval of a specified keytype
+   * from an input configkeyval
+   *
+   * @param[in/out]  okey          pointer to output ConfigKeyVal
+   * @param[in]      parent_key    pointer to the configkeyval from which the
+   *                               output configkey val is initialized.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   */
+  upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey,
+                              ConfigKeyVal *parent_key);
+  upll_rc_t CheckIfVnodeisVlanmapped(ConfigKeyVal *ikey,
+                                     DalDmlIntf *dmi);
 };
 
 }  // namespace kt_momgr
index 9fb35bb99c0880c9ec4fb3cd485adddbccf679ae..c90665d52a811ff8d988777d16366a012552989c 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
 #include "vtunnel_if_momgr.hh"
 #include "vtep_if_momgr.hh"
 #include "unc/uppl_common.h"
+#include "config_mgr.hh"
+#include "vlanmap_momgr.hh"
+#include "vbr_if_flowfilter_momgr.hh"
+#include "vbr_if_policingmap_momgr.hh"
 
 #define NUM_KEY_RENAME_TBL_ 4
 #define NUM_KEY_MAIN_TBL_ 5
@@ -29,150 +33,150 @@ namespace upll {
 namespace kt_momgr {
 
 BindInfo VlinkMoMgr::vlink_bind_info[] = {
-    { uudst::vlink::kDbiVtnName, CFG_KEY, offsetof(key_vlink, vtn_key),
-      uud::kDalChar, 32 },
-    { uudst::vlink::kDbiVlinkName, CFG_KEY, offsetof(key_vlink, vlink_name),
-      uud::kDalChar, 32 },
-    { uudst::vlink::kDbiAdminStatus, CFG_VAL, offsetof(val_vlink, admin_status),
-      uud::kDalUint8, 1 },
-    { uudst::vlink::kDbiVnode1Name, CFG_VAL, offsetof(val_vlink, vnode1_name),
-      uud::kDalChar, 32 },
-    { uudst::vlink::kDbiVnode1Ifname, CFG_VAL, offsetof(val_vlink,
-                                                        vnode1_ifname),
-      uud::kDalChar, 32 },
-    { uudst::vlink::kDbiVnode2Name, CFG_VAL, offsetof(val_vlink, vnode2_name),
-      uud::kDalChar, 32 },
-    { uudst::vlink::kDbiVnode2Ifname, CFG_VAL, offsetof(val_vlink,
-                                                        vnode2_ifname),
-      uud::kDalChar, 32 },
-    { uudst::vlink::kDbiBoundaryName, CFG_VAL, offsetof(val_vlink,
-                                                        boundary_name),
-      uud::kDalChar, 32 },
-    { uudst::vlink::kDbiVlanid, CFG_VAL, offsetof(val_vlink, vlan_id),
-      uud::kDalUint16, 1 },
-    { uudst::vlink::kDbiDesc, CFG_VAL, offsetof(val_vlink, description),
-      uud::kDalChar, 128 },
-    { uudst::vlink::kDbiOperStatus, ST_VAL,
-                                          offsetof(val_vlink_st, oper_status),
-      uud::kDalUint8, 1 },
-    { uudst::vlink::kDbiDownCount, ST_VAL,
-                                        offsetof(val_db_vlink_st, down_count),
-      uud::kDalUint32, 1 },
-    { uudst::vlink::kDbiCtrlr1Name, CK_VAL, offsetof(key_user_data, ctrlr_id),
-      uud::kDalChar, 32 },
-    { uudst::vlink::kDbiDomain1Id, CK_VAL, offsetof(key_user_data, domain_id),
-      uud::kDalChar, 32 },
-    { uudst::vlink::kDbiCtrlr2Name, CK_VAL2, offsetof(key_user_data, ctrlr_id),
-      uud::kDalChar, 32 },
-    { uudst::vlink::kDbiDomain2Id, CK_VAL2, offsetof(key_user_data, domain_id),
-      uud::kDalChar, 32 },
-    { uudst::vlink::kDbiValidAdminStatus, CFG_DEF_VAL, offsetof(
-        val_vlink, valid[UPLL_IDX_ADMIN_STATUS_VLNK]),
-      uud::kDalUint8, 1 },
-    { uudst::vlink::kDbiValidVnode1Name, CFG_META_VAL, offsetof(
-        val_vlink, valid[UPLL_IDX_VNODE1_NAME_VLNK]),
-      uud::kDalUint8, 1 },
-    { uudst::vlink::kDbiValidVnode1Ifname, CFG_META_VAL, offsetof(
-        val_vlink, valid[UPLL_IDX_VNODE1_IF_NAME_VLNK]),
-      uud::kDalUint8, 1 },
-    { uudst::vlink::kDbiValidVnode2Name, CFG_META_VAL, offsetof(
-        val_vlink, valid[UPLL_IDX_VNODE2_NAME_VLNK]),
-      uud::kDalUint8, 1 },
-    { uudst::vlink::kDbiValidVnode2Ifname, CFG_META_VAL, offsetof(
-        val_vlink, valid[UPLL_IDX_VNODE2_IF_NAME_VLNK]),
-      uud::kDalUint8, 1 },
-    { uudst::vlink::kDbiValidBoundaryName, CFG_META_VAL, offsetof(
-        val_vlink, valid[UPLL_IDX_BOUNDARY_NAME_VLNK]),
-      uud::kDalUint8, 1 },
-    { uudst::vlink::kDbiValidVlanid, CFG_META_VAL, offsetof(
-        val_vlink, valid[UPLL_IDX_VLAN_ID_VLNK]),
-      uud::kDalUint8, 1 },
-    { uudst::vlink::kDbiValidDesc, CFG_META_VAL, offsetof(
-        val_vlink, valid[UPLL_IDX_DESCRIPTION_VLNK]),
-      uud::kDalUint8, 1 },
-    { uudst::vlink::kDbiValidOperStatus, ST_META_VAL, offsetof(
-        val_vlink_st, valid[UPLL_IDX_OPER_STATUS_VLNKS]),
-      uud::kDalUint8, 1 },
-    { uudst::vlink::kDbiCsAdminStatus, CS_VAL, offsetof(
-        val_vlink, cs_attr[UPLL_IDX_ADMIN_STATUS_VLNK]),
-      uud::kDalUint8, 1 },
-    { uudst::vlink::kDbiCsVnode1Name, CS_VAL, offsetof(
-        val_vlink, cs_attr[UPLL_IDX_VNODE1_NAME_VLNK]),
-      uud::kDalUint8, 1 },
-    { uudst::vlink::kDbiCsVnode1Ifname, CS_VAL, offsetof(
-        val_vlink, cs_attr[UPLL_IDX_VNODE1_IF_NAME_VLNK]),
-      uud::kDalUint8, 1 },
-    { uudst::vlink::kDbiCsVnode2Name, CS_VAL, offsetof(
-        val_vlink, cs_attr[UPLL_IDX_VNODE2_NAME_VLNK]),
-      uud::kDalUint8, 1 },
-    { uudst::vlink::kDbiCsVnode2Ifname, CS_VAL, offsetof(
-        val_vlink, cs_attr[UPLL_IDX_VNODE2_IF_NAME_VLNK]),
-      uud::kDalUint8, 1 },
-    { uudst::vlink::kDbiCsBoundaryName, CS_VAL, offsetof(
-        val_vlink, cs_attr[UPLL_IDX_BOUNDARY_NAME_VLNK]),
-      uud::kDalUint8, 1 },
-    { uudst::vlink::kDbiCsVlanid, CS_VAL, offsetof(
-        val_vlink, cs_attr[UPLL_IDX_VLAN_ID_VLNK]),
-      uud::kDalUint8, 1 },
-    { uudst::vlink::kDbiCsDesc, CS_VAL, offsetof(
-        val_vlink, cs_attr[UPLL_IDX_DESCRIPTION_VLNK]),
-      uud::kDalUint8, 1 },
-    { uudst::vlink::kDbiCsRowstatus, CS_VAL, offsetof(val_vlink, cs_row_status),
-      uud::kDalUint8, 1 },
-    { uudst::vlink::kDbiKeyFlags, CK_VAL, offsetof(key_user_data, flags),
-      uud::kDalUint8, 1 },
-    { uudst::vlink::kDbiValFlags, CK_VAL2, offsetof(key_user_data, flags),
-      uud::kDalUint8, 1 }};
+  { uudst::vlink::kDbiVtnName, CFG_KEY, offsetof(key_vlink, vtn_key),
+    uud::kDalChar, 32 },
+  { uudst::vlink::kDbiVlinkName, CFG_KEY, offsetof(key_vlink, vlink_name),
+    uud::kDalChar, 32 },
+  { uudst::vlink::kDbiAdminStatus, CFG_VAL, offsetof(val_vlink, admin_status),
+    uud::kDalUint8, 1 },
+  { uudst::vlink::kDbiVnode1Name, CFG_VAL, offsetof(val_vlink, vnode1_name),
+    uud::kDalChar, 32 },
+  { uudst::vlink::kDbiVnode1Ifname, CFG_VAL, offsetof(val_vlink,
+                                                      vnode1_ifname),
+  uud::kDalChar, 32 },
+  { uudst::vlink::kDbiVnode2Name, CFG_VAL, offsetof(val_vlink, vnode2_name),
+    uud::kDalChar, 32 },
+  { uudst::vlink::kDbiVnode2Ifname, CFG_VAL, offsetof(val_vlink,
+                                                      vnode2_ifname),
+  uud::kDalChar, 32 },
+  { uudst::vlink::kDbiBoundaryName, CFG_VAL, offsetof(val_vlink,
+                                                      boundary_name),
+  uud::kDalChar, 32 },
+  { uudst::vlink::kDbiVlanid, CFG_VAL, offsetof(val_vlink, vlan_id),
+    uud::kDalUint16, 1 },
+  { uudst::vlink::kDbiDesc, CFG_VAL, offsetof(val_vlink, description),
+    uud::kDalChar, 128 },
+  { uudst::vlink::kDbiOperStatus, ST_VAL,
+    offsetof(val_vlink_st, oper_status),
+    uud::kDalUint8, 1 },
+  { uudst::vlink::kDbiDownCount, ST_VAL,
+    offsetof(val_db_vlink_st, down_count),
+    uud::kDalUint32, 1 },
+  { uudst::vlink::kDbiCtrlr1Name, CK_VAL, offsetof(key_user_data, ctrlr_id),
+    uud::kDalChar, 32 },
+  { uudst::vlink::kDbiDomain1Id, CK_VAL, offsetof(key_user_data, domain_id),
+    uud::kDalChar, 32 },
+  { uudst::vlink::kDbiCtrlr2Name, CK_VAL2, offsetof(key_user_data, ctrlr_id),
+    uud::kDalChar, 32 },
+  { uudst::vlink::kDbiDomain2Id, CK_VAL2, offsetof(key_user_data, domain_id),
+    uud::kDalChar, 32 },
+  { uudst::vlink::kDbiValidAdminStatus, CFG_DEF_VAL, offsetof(
+          val_vlink, valid[UPLL_IDX_ADMIN_STATUS_VLNK]),
+  uud::kDalUint8, 1 },
+  { uudst::vlink::kDbiValidVnode1Name, CFG_META_VAL, offsetof(
+          val_vlink, valid[UPLL_IDX_VNODE1_NAME_VLNK]),
+  uud::kDalUint8, 1 },
+  { uudst::vlink::kDbiValidVnode1Ifname, CFG_META_VAL, offsetof(
+          val_vlink, valid[UPLL_IDX_VNODE1_IF_NAME_VLNK]),
+  uud::kDalUint8, 1 },
+  { uudst::vlink::kDbiValidVnode2Name, CFG_META_VAL, offsetof(
+          val_vlink, valid[UPLL_IDX_VNODE2_NAME_VLNK]),
+  uud::kDalUint8, 1 },
+  { uudst::vlink::kDbiValidVnode2Ifname, CFG_META_VAL, offsetof(
+          val_vlink, valid[UPLL_IDX_VNODE2_IF_NAME_VLNK]),
+  uud::kDalUint8, 1 },
+  { uudst::vlink::kDbiValidBoundaryName, CFG_META_VAL, offsetof(
+          val_vlink, valid[UPLL_IDX_BOUNDARY_NAME_VLNK]),
+  uud::kDalUint8, 1 },
+  { uudst::vlink::kDbiValidVlanid, CFG_META_VAL, offsetof(
+          val_vlink, valid[UPLL_IDX_VLAN_ID_VLNK]),
+  uud::kDalUint8, 1 },
+  { uudst::vlink::kDbiValidDesc, CFG_META_VAL, offsetof(
+          val_vlink, valid[UPLL_IDX_DESCRIPTION_VLNK]),
+  uud::kDalUint8, 1 },
+  { uudst::vlink::kDbiValidOperStatus, ST_META_VAL, offsetof(
+          val_vlink_st, valid[UPLL_IDX_OPER_STATUS_VLNKS]),
+  uud::kDalUint8, 1 },
+  { uudst::vlink::kDbiCsAdminStatus, CS_VAL, offsetof(
+          val_vlink, cs_attr[UPLL_IDX_ADMIN_STATUS_VLNK]),
+  uud::kDalUint8, 1 },
+  { uudst::vlink::kDbiCsVnode1Name, CS_VAL, offsetof(
+          val_vlink, cs_attr[UPLL_IDX_VNODE1_NAME_VLNK]),
+  uud::kDalUint8, 1 },
+  { uudst::vlink::kDbiCsVnode1Ifname, CS_VAL, offsetof(
+          val_vlink, cs_attr[UPLL_IDX_VNODE1_IF_NAME_VLNK]),
+  uud::kDalUint8, 1 },
+  { uudst::vlink::kDbiCsVnode2Name, CS_VAL, offsetof(
+          val_vlink, cs_attr[UPLL_IDX_VNODE2_NAME_VLNK]),
+  uud::kDalUint8, 1 },
+  { uudst::vlink::kDbiCsVnode2Ifname, CS_VAL, offsetof(
+          val_vlink, cs_attr[UPLL_IDX_VNODE2_IF_NAME_VLNK]),
+  uud::kDalUint8, 1 },
+  { uudst::vlink::kDbiCsBoundaryName, CS_VAL, offsetof(
+          val_vlink, cs_attr[UPLL_IDX_BOUNDARY_NAME_VLNK]),
+  uud::kDalUint8, 1 },
+  { uudst::vlink::kDbiCsVlanid, CS_VAL, offsetof(
+          val_vlink, cs_attr[UPLL_IDX_VLAN_ID_VLNK]),
+  uud::kDalUint8, 1 },
+  { uudst::vlink::kDbiCsDesc, CS_VAL, offsetof(
+          val_vlink, cs_attr[UPLL_IDX_DESCRIPTION_VLNK]),
+  uud::kDalUint8, 1 },
+  { uudst::vlink::kDbiCsRowstatus, CS_VAL, offsetof(val_vlink, cs_row_status),
+    uud::kDalUint8, 1 },
+  { uudst::vlink::kDbiKeyFlags, CK_VAL, offsetof(key_user_data, flags),
+    uud::kDalUint8, 1 },
+  { uudst::vlink::kDbiValFlags, CK_VAL2, offsetof(key_user_data, flags),
+    uud::kDalUint8, 1 }};
 
 BindInfo VlinkMoMgr::vlink_rename_bind_info[] = {
-    { uudst::vnode_rename::kDbiUncVtnName, CFG_KEY, offsetof(key_vlink_t,
-                                                          vtn_key.vtn_name),
-      uud::kDalChar, 32 },
-    { uudst::vnode_rename::kDbiUncvnodeName, CFG_KEY, offsetof(key_vlink_t,
-                                                            vlink_name),
-      uud::kDalChar, 32 },
-    { uudst::vnode_rename::kDbiCtrlrName, CK_VAL, offsetof(key_user_data,
-                                                           ctrlr_id),
-      uud::kDalChar, 32 },
-    { uudst::vnode_rename::kDbiDomainId, CK_VAL, offsetof(key_user_data,
-                                                          domain_id),
-      uud::kDalChar, 32 },
-    { uudst::vnode_rename::kDbiCtrlrVtnName, CFG_VAL, offsetof(
-        val_rename_vnode, ctrlr_vtn_name),
-      uud::kDalChar, 32 },
-    { uudst::vnode_rename::kDbiCtrlrVnodeName, CFG_VAL, offsetof(
-        val_rename_vnode, ctrlr_vnode_name),
-      uud::kDalChar, 32 } };
+  { uudst::vnode_rename::kDbiUncVtnName, CFG_KEY, offsetof(key_vlink_t,
+                                                           vtn_key.vtn_name),
+  uud::kDalChar, 32 },
+  { uudst::vnode_rename::kDbiUncvnodeName, CFG_KEY, offsetof(key_vlink_t,
+                                                             vlink_name),
+  uud::kDalChar, 32 },
+  { uudst::vnode_rename::kDbiCtrlrName, CK_VAL, offsetof(key_user_data,
+                                                         ctrlr_id),
+  uud::kDalChar, 32 },
+  { uudst::vnode_rename::kDbiDomainId, CK_VAL, offsetof(key_user_data,
+                                                        domain_id),
+  uud::kDalChar, 32 },
+  { uudst::vnode_rename::kDbiCtrlrVtnName, CFG_VAL, offsetof(
+          val_rename_vnode, ctrlr_vtn_name),
+  uud::kDalChar, 32 },
+  { uudst::vnode_rename::kDbiCtrlrVnodeName, CFG_VAL, offsetof(
+          val_rename_vnode, ctrlr_vnode_name),
+  uud::kDalChar, 32 } };
 
 BindInfo VlinkMoMgr::key_vlink_maintbl_bind_info[] = {
-    { uudst::vlink::kDbiVtnName, CFG_MATCH_KEY, offsetof(key_vlink_t,
-                                                         vtn_key.vtn_name),
-      uud::kDalChar, kMaxLenVtnName + 1 },
-    { uudst::vlink::kDbiVlinkName, CFG_MATCH_KEY, offsetof(key_vlink,
-                                                           vlink_name),
-      uud::kDalChar, kMaxLenVnodeName + 1 },
-    { uudst::vlink::kDbiVtnName, CFG_INPUT_KEY, offsetof(
-        key_rename_vnode_info_t, new_unc_vtn_name),
-      uud::kDalChar, kMaxLenVtnName + 1 },
-    { uudst::vlink::kDbiVlinkName, CFG_INPUT_KEY, offsetof(
-        key_rename_vnode_info_t, new_unc_vnode_name),
-      uud::kDalChar, kMaxLenVnodeName + 1 },
-    { uudst::vlink::kDbiKeyFlags, CK_VAL, offsetof(key_user_data_t, flags),
-      uud::kDalUint8, 1 } };
+  { uudst::vlink::kDbiVtnName, CFG_MATCH_KEY, offsetof(key_vlink_t,
+                                                       vtn_key.vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1 },
+  { uudst::vlink::kDbiVlinkName, CFG_MATCH_KEY, offsetof(key_vlink,
+                                                         vlink_name),
+  uud::kDalChar, kMaxLenVnodeName + 1 },
+  { uudst::vlink::kDbiVtnName, CFG_INPUT_KEY, offsetof(
+          key_rename_vnode_info_t, new_unc_vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1 },
+  { uudst::vlink::kDbiVlinkName, CFG_INPUT_KEY, offsetof(
+          key_rename_vnode_info_t, new_unc_vnode_name),
+  uud::kDalChar, kMaxLenVnodeName + 1 },
+  { uudst::vlink::kDbiKeyFlags, CK_VAL, offsetof(key_user_data_t, flags),
+    uud::kDalUint8, 1 } };
 
 BindInfo VlinkMoMgr::key_vlink_renametbl_update_bind_info[] = {
-    { uudst::vnode_rename::kDbiUncVtnName, CFG_MATCH_KEY, offsetof(
-        key_vlink_t, vtn_key.vtn_name),
-      uud::kDalChar, kMaxLenVtnName + 1 },
-    { uudst::vnode_rename::kDbiUncvnodeName, CFG_MATCH_KEY, offsetof(
-        key_vlink_t, vlink_name),
-      uud::kDalChar, kMaxLenVnodeName + 1 },
-    { uudst::vnode_rename::kDbiUncVtnName, CFG_INPUT_KEY, offsetof(
-        key_rename_vnode_info_t, new_unc_vtn_name),
-      uud::kDalChar, kMaxLenVtnName + 1 },
-    { uudst::vnode_rename::kDbiUncvnodeName, CFG_INPUT_KEY, offsetof(
-        key_rename_vnode_info_t, new_unc_vnode_name),
-      uud::kDalChar, kMaxLenVnodeName + 1 } };
+  { uudst::vnode_rename::kDbiUncVtnName, CFG_MATCH_KEY, offsetof(
+          key_vlink_t, vtn_key.vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1 },
+  { uudst::vnode_rename::kDbiUncvnodeName, CFG_MATCH_KEY, offsetof(
+          key_vlink_t, vlink_name),
+  uud::kDalChar, kMaxLenVnodeName + 1 },
+  { uudst::vnode_rename::kDbiUncVtnName, CFG_INPUT_KEY, offsetof(
+          key_rename_vnode_info_t, new_unc_vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1 },
+  { uudst::vnode_rename::kDbiUncvnodeName, CFG_INPUT_KEY, offsetof(
+          key_rename_vnode_info_t, new_unc_vnode_name),
+  uud::kDalChar, kMaxLenVnodeName + 1 } };
 
 VlinkMoMgr::VlinkMoMgr() {
   UPLL_FUNC_TRACE;
@@ -183,19 +187,19 @@ VlinkMoMgr::VlinkMoMgr() {
                              IpctSt::kIpcStValVlink,
                              (uudst::vlink::kDbiVlinkNumCols));
   table[RENAMETBL] = new Table(uudst::kDbiVlinkRenameTbl, UNC_KT_VLINK,
-                  vlink_rename_bind_info, IpctSt::kIpcInvalidStNum,
-                  IpctSt::kIpcInvalidStNum,
-                  uudst::vlink_rename::kDbiVlinkRenameNumCols);
+                               vlink_rename_bind_info, IpctSt::kIpcInvalidStNum,
+                               IpctSt::kIpcInvalidStNum,
+                               uudst::vlink_rename::kDbiVlinkRenameNumCols);
   table[CTRLRTBL] = NULL;
   nchild = 0;
   child = NULL;
   ck_boundary = NULL;
-//    SetMoManager(UNC_KT_VLINK, (MoMgr *)this);
+  //    SetMoManager(UNC_KT_VLINK, (MoMgr *)this);
 }
 
 upll_rc_t VlinkMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
-                                   DalDmlIntf *dmi,
-                                   const char *ctrlr_id) {
+                                        DalDmlIntf *dmi,
+                                        const char *ctrlr_id) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   if (!ikey || !(ikey->get_key()) || !dmi) {
@@ -203,7 +207,7 @@ upll_rc_t VlinkMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
     return UPLL_RC_ERR_GENERIC;
   }
   uint8_t *controller_id = reinterpret_cast<uint8_t *>(
-                                 const_cast<char *>(ctrlr_id));
+      const_cast<char *>(ctrlr_id));
 
   /* check if object is renamed in the corresponding Rename Tbl
    * if "renamed"  create the object by the UNC name.
@@ -219,32 +223,32 @@ upll_rc_t VlinkMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
   ConfigKeyVal *ckv_rename = NULL;
   DbSubOp op = {kOpReadSingle, kOpMatchCtrlr, kOpInOutCtrlr | kOpInOutDomain};
   key_vtn_t *vtn_key = reinterpret_cast<key_vtn_t *>
-                         (ConfigKeyVal::Malloc(sizeof(key_vtn)));
+      (ConfigKeyVal::Malloc(sizeof(key_vtn)));
   memcpy(vtn_key, &(reinterpret_cast<key_vlink *>(ikey->get_key())->vtn_key),
-                          sizeof(key_vtn_t));
+         sizeof(key_vtn_t));
   ckv_rename = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
                                 vtn_key, NULL);
   SET_USER_DATA_CTRLR(ckv_rename, ctrlr_id);
   MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager*>
-                                      (GetMoManager(UNC_KT_VTN)));
+                                                 (GetMoManager(UNC_KT_VTN)));
   result_code = mgr->ReadConfigDB(ckv_rename, UPLL_DT_RUNNING,
-                                     UNC_OP_READ, op, dmi, RENAMETBL);
+                                  UNC_OP_READ, op, dmi, RENAMETBL);
   if (result_code != UPLL_RC_SUCCESS &&
-                        result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+      result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
     UPLL_LOG_INFO("ReadConfigDB from rename tbl failed err code %d",
-                                                         result_code);
+                  result_code);
     delete ckv_rename;
     return result_code;
   } else if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-      ckv_rename->SetCfgVal(NULL);
-      result_code = mgr->ReadConfigDB(ckv_rename, UPLL_DT_AUDIT,
-                                     UNC_OP_READ, op, dmi, CTRLRTBL);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_INFO("ReadConfigDB from Ctrlr tbl also failed err code %d",
-                       result_code);
-        delete ckv_rename;
-        return result_code;
-      }
+    ckv_rename->SetCfgVal(NULL);
+    result_code = mgr->ReadConfigDB(ckv_rename, UPLL_DT_AUDIT,
+                                    UNC_OP_READ, op, dmi, CTRLRTBL);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_INFO("ReadConfigDB from Ctrlr tbl also failed err code %d",
+                    result_code);
+      delete ckv_rename;
+      return result_code;
+    }
   }
   controller_domain ctrlr_dom;
   ctrlr_dom.ctrlr = NULL;
@@ -253,7 +257,7 @@ upll_rc_t VlinkMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
   SET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
   SET_USER_DATA_CTRLR_DOMAIN(ikey->get_cfg_val(), ctrlr_dom);
   DbSubOp dbop = { kOpNotRead, kOpMatchNone, kOpInOutFlag | kOpInOutDomain
-                       | kOpInOutCtrlr };
+    | kOpInOutCtrlr };
   result_code = UpdateConfigDB(ikey, UPLL_DT_AUDIT, UNC_OP_CREATE,
                                dmi, &dbop, MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
@@ -264,58 +268,31 @@ upll_rc_t VlinkMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
 }
 
 upll_rc_t VlinkMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
-                                        ConfigKeyVal *ikey, DalDmlIntf *dmi) {
+                                        ConfigKeyVal *ikey, DalDmlIntf *dmi,
+                                        bool restore_flag) {
   UPLL_FUNC_TRACE;
   if (ikey == NULL || req == NULL || dmi == NULL) {
     UPLL_LOG_INFO("Cannot perform create operation"
-                   "due to insufficient parameters");
+                  "due to insufficient parameters");
     return UPLL_RC_ERR_GENERIC;
   }
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   controller_domain ctrlr_dom[2] = { { NULL, NULL }, { NULL, NULL } };
   UPLL_LOG_TRACE("VLINK CREATE INPUT %s", (ikey->ToStrAll()).c_str());
-  result_code = ValidateMessage(req, ikey);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_INFO("ValidateMessage Failed : %d", result_code);
-    return result_code;
+  if (!restore_flag) {
+    result_code = ValidateMessage(req, ikey);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_INFO("ValidateMessage Failed : %d", result_code);
+      return result_code;
+    }
   }
   result_code = ValidateAttribute(ikey, dmi, req);
   if (result_code != UPLL_RC_SUCCESS) {
-     UPLL_LOG_INFO("ValidateAttribute returning %d", result_code);
-     return result_code;
-  }
-  // Vnode Existence check in CANDIDATE DB
-  result_code = VnodeChecks(ikey, req->datatype, dmi);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Vnode with the same name already exists %d", result_code);
-    return result_code;
-  }
-  UPLL_LOG_TRACE("VnodeCheck Over, The Result code is %d", result_code);
-  // Parent VTN check
-  result_code = GetParentConfigKey(parent_ck_vtn, ikey);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Error in retrieving the parent VTN ConfigKeyVal");
-    return result_code;
-  }
-  MoMgrImpl *mgr =
-      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-          UNC_KT_VTN)));
-  result_code = mgr->UpdateConfigDB(parent_ck_vtn, req->datatype, UNC_OP_READ,
-                                    dmi, MAINTBL);
-
-  if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-    DELETE_IF_NOT_NULL(parent_ck_vtn);
-    return UPLL_RC_ERR_PARENT_DOES_NOT_EXIST;
-  }
-  if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE && 
-      result_code != UPLL_RC_ERR_INSTANCE_EXISTS) {
-    UPLL_LOG_DEBUG("UpdateConfigDB Failed %d", result_code);
-    DELETE_IF_NOT_NULL(parent_ck_vtn);
+    UPLL_LOG_INFO("ValidateAttribute returning %d", result_code);
     return result_code;
   }
-  DELETE_IF_NOT_NULL(parent_ck_vtn);
   // vbrIf checks are done and respective Vnodes ContollerIds are filled
-  result_code = UpdateVlinkIf(req, ikey, dmi, ctrlr_dom);
+  result_code = UpdateVlinkIf(req, ikey, dmi, ctrlr_dom, restore_flag);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_INFO("Error in checking for Vlink Interfaces. result code %d",
                   result_code);
@@ -339,17 +316,8 @@ upll_rc_t VlinkMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
         return UPLL_RC_ERR_CFG_SEMANTIC;
       }
       UPLL_LOG_TRACE(" The Node 1 interface controller name is %s",
-                       ctrlr_dom[0].ctrlr);
+                     ctrlr_dom[0].ctrlr);
       is_vunk_interface = false;
-      result_code = GetInstanceCount(temp_key,
-                                   reinterpret_cast<char *>(ctrlr_dom[0].ctrlr),
-                                   req->datatype, &cur_instance_count, dmi,
-                                   MAINTBL);
-      if (result_code != UPLL_RC_SUCCESS) {
-        DELETE_IF_NOT_NULL(temp_key);
-        UPLL_LOG_DEBUG(" returns error %d", result_code);
-        return result_code;
-      }
     }
   }
   if (UNC_KT_VUNK_IF != GetVlinkVnodeIfKeyType(ikey, 0)) {
@@ -368,20 +336,14 @@ upll_rc_t VlinkMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
       return UPLL_RC_ERR_CFG_SEMANTIC;
     }
     UPLL_LOG_TRACE(" The Node 2 interface controller name is %s",
-                     ctrlr_dom[1].ctrlr);
+                   ctrlr_dom[1].ctrlr);
     UPLL_LOG_TRACE("The tempKey is %s", temp_key->ToStrAll().c_str());
     if (is_vunk_interface || strncmp((const char *)ctrlr_dom[0].ctrlr,
                                      (const char *)ctrlr_dom[1].ctrlr,
-                                      kMaxLenCtrlrId)) {
-      result_code = GetInstanceCount(temp_key, reinterpret_cast<char *>
-        (ctrlr_dom[1].ctrlr), req->datatype, &cur_instance_count, dmi, MAINTBL);
-      if (result_code != UPLL_RC_SUCCESS) {
-        DELETE_IF_NOT_NULL(temp_key);
-        UPLL_LOG_ERROR(" returns error %d", result_code);
-        return result_code;
-      }
+                                     kMaxLenCtrlrId)) {
       result_code = ValidateCapability(req, ikey,
-                       reinterpret_cast<const char *>(ctrlr_dom[1].ctrlr));
+                                       reinterpret_cast<const char *>
+                                       (ctrlr_dom[1].ctrlr));
       if (result_code != UPLL_RC_SUCCESS) {
         DELETE_IF_NOT_NULL(temp_key);
         UPLL_LOG_DEBUG("ValidateCapability Failed %d", result_code);
@@ -391,7 +353,7 @@ upll_rc_t VlinkMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
   }
   DELETE_IF_NOT_NULL(temp_key);
   SET_USER_DATA_CTRLR_DOMAIN(ikey, *ctrlr_dom);
-  result_code = RestoreVnode(ikey, req, dmi, ctrlr_dom);
+  result_code = RestoreVnode(ikey, req, dmi, ctrlr_dom, restore_flag);
   if (result_code != UPLL_RC_SUCCESS)
     UPLL_LOG_DEBUG("Returning %d", result_code);
   return result_code;
@@ -405,8 +367,8 @@ upll_rc_t VlinkMoMgr::DeleteMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
 }
 
 upll_rc_t VlinkMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
-                                DalDmlIntf *dmi,
-                                IpcReqRespHeader *req) {
+                                        DalDmlIntf *dmi,
+                                        IpcReqRespHeader *req) {
   upll_rc_t result_code;
   if (!ikey || !ikey->get_cfg_val()) {
     UPLL_LOG_DEBUG("Invalid parameter");
@@ -465,7 +427,7 @@ upll_rc_t VlinkMoMgr::RestoreVnode(ConfigKeyVal *ikey,
 #endif
   // create a record in CANDIDATE DB
   DbSubOp dbop = { kOpNotRead, kOpMatchNone, kOpInOutFlag | kOpInOutDomain
-                       | kOpInOutCtrlr };
+    | kOpInOutCtrlr };
   result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_CREATE, dmi, &dbop,
                                MAINTBL);
 
@@ -483,9 +445,9 @@ upll_rc_t VlinkMoMgr::GetNodeType(void *key, bool vnode,
                                   unc_key_type_t &keytype,
                                   ConfigKeyVal *&ck_val, DalDmlIntf *dmi) {
   unc_key_type_t *ktype, if_ktype[] = { UNC_KT_VBR_IF, UNC_KT_VRT_IF,
-                                        UNC_KT_VTEP_IF, UNC_KT_VTUNNEL_IF };
+    UNC_KT_VTEP_IF, UNC_KT_VTUNNEL_IF };
   unc_key_type_t vnode_ktype[] = { UNC_KT_VBRIDGE, UNC_KT_VROUTER, UNC_KT_VTEP,
-                                   UNC_KT_VTUNNEL };
+    UNC_KT_VTUNNEL };
   int numnodes;
 
   if (vnode) {
@@ -499,8 +461,13 @@ upll_rc_t VlinkMoMgr::GetNodeType(void *key, bool vnode,
     keytype = ktype[i];
     MoMgrImpl *mgr =
         (reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-            keytype))));
-    mgr->GetChildConfigKey(ck_val, NULL);
+                        keytype))));
+    upll_rc_t result_code = mgr->GetChildConfigKey(ck_val, NULL);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("GetChildConfigKey Failed result_code %d", result_code);
+      return result_code;
+    }
+
     if (ck_val == NULL) {
       UPLL_LOG_ERROR("Invalid param");
       return UPLL_RC_ERR_GENERIC;
@@ -532,7 +499,7 @@ upll_rc_t VlinkMoMgr::GetNodeType(void *key, bool vnode,
           return UPLL_RC_ERR_GENERIC;
         }
         if (sizeof(reinterpret_cast<key_vbr_if_t *>(key))
-                         != key_stdef->ist_size)
+            != key_stdef->ist_size)
           return UPLL_RC_ERR_GENERIC;
         memcpy(ck_val->get_key(), key, sizeof(key_vbr_if_t));
         break;
@@ -542,9 +509,9 @@ upll_rc_t VlinkMoMgr::GetNodeType(void *key, bool vnode,
         return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT;
     }
     DbSubOp dbop1 = { kOpReadSingle, kOpMatchNone, kOpInOutCtrlr | kOpInOutFlag
-                          | kOpInOutDomain };
-    upll_rc_t result_code = mgr->ReadConfigDB(ck_val, UPLL_DT_STATE,
-                                              UNC_OP_READ, dbop1, dmi, MAINTBL);
+      | kOpInOutDomain };
+    result_code = mgr->ReadConfigDB(ck_val, UPLL_DT_STATE,
+                                    UNC_OP_READ, dbop1, dmi, MAINTBL);
     if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
       continue;
     } else if (result_code != UPLL_RC_SUCCESS) {
@@ -562,17 +529,19 @@ upll_rc_t VlinkMoMgr::CreateVnodeConfigKey(ConfigKeyVal *ikey,
   if (ikey == NULL) return UPLL_RC_ERR_GENERIC;
 
   key_vlink * vlink_key = reinterpret_cast<key_vlink *>
-                                  (ConfigKeyVal::Malloc(sizeof(key_vlink)));
+      (ConfigKeyVal::Malloc(sizeof(key_vlink)));
   uuu::upll_strncpy(vlink_key->vtn_key.vtn_name,
-         reinterpret_cast<key_vlink *>(ikey->get_key())->vtn_key.vtn_name,
-          (kMaxLenVtnName+1));
+                    reinterpret_cast<key_vlink *>
+                    (ikey->get_key())->vtn_key.vtn_name,
+                    (kMaxLenVtnName+1));
   uuu::upll_strncpy(vlink_key->vlink_name,
-         reinterpret_cast<key_vlink*>(ikey->get_key())->vlink_name,
-           (kMaxLenVlinkName+1));
+                    reinterpret_cast<key_vlink*>(ikey->get_key())->vlink_name,
+                    (kMaxLenVlinkName+1));
 
   ConfigKeyVal *ck_vlink = new ConfigKeyVal(UNC_KT_VLINK,
                                             IpctSt::kIpcStKeyVlink,
-                           reinterpret_cast<void *>(vlink_key), NULL);
+                                            reinterpret_cast<void *>
+                                            (vlink_key), NULL);
   if (ck_vlink == NULL) {
     UPLL_LOG_ERROR("Memory Allocation failed for ck_vlink");
     FREE_IF_NOT_NULL(vlink_key);
@@ -587,14 +556,14 @@ upll_rc_t VlinkMoMgr::SwapVnodes(ConfigKeyVal *&ck_vlink) {
   uint8_t temp_swap[32];
   uuu::upll_strncpy(temp_swap, vlink_val->vnode1_name, (kMaxLenVnodeName+1));
   uuu::upll_strncpy(vlink_val->vnode1_name, vlink_val->vnode2_name,
-                   (kMaxLenVnodeName+1));
+                    (kMaxLenVnodeName+1));
   uuu::upll_strncpy(vlink_val->vnode2_name,  temp_swap, (kMaxLenVnodeName+1));
   uuu::upll_strncpy(temp_swap, vlink_val->vnode1_ifname,
-                   (kMaxLenInterfaceName+1));
+                    (kMaxLenInterfaceName+1));
   uuu::upll_strncpy(vlink_val->vnode1_ifname, vlink_val->vnode2_ifname,
                     (kMaxLenInterfaceName+1));
   uuu::upll_strncpy(vlink_val->vnode2_ifname, temp_swap,
-                   (kMaxLenInterfaceName+1));
+                    (kMaxLenInterfaceName+1));
 #if 0
   int rename_flag = 0;
   int temp_flag = 0;
@@ -616,7 +585,133 @@ upll_rc_t VlinkMoMgr::SwapVnodes(ConfigKeyVal *&ck_vlink) {
   return UPLL_RC_SUCCESS;
 }
 
+upll_rc_t VlinkMoMgr::NotifyPOMForPortMapVlinkFlag(
+    upll_keytype_datatype_t dt_type,
+    ConfigKeyVal *ckv_if,
+    DalDmlIntf *dmi,
+    unc_keytype_operation_t op) {
+  UPLL_FUNC_TRACE;
+  MoMgrImpl *pom_mgr =  NULL;
+  MoMgrImpl *vnode_mgr = NULL;
+  ConfigKeyVal *okey = NULL;
+  if (ckv_if->get_key_type() == UNC_KT_VBR_IF) {
+    pom_mgr = reinterpret_cast<MoMgrImpl *>
+        (const_cast<MoManager *>(
+                GetMoManager(UNC_KT_VBRIF_FLOWFILTER)));
+    vnode_mgr = reinterpret_cast<MoMgrImpl *>
+        (const_cast<MoManager *>(
+                GetMoManager(UNC_KT_VBR_IF)));
+  } else if (ckv_if->get_key_type() == UNC_KT_VRT_IF) {
+    pom_mgr = reinterpret_cast<MoMgrImpl *>
+        (const_cast<MoManager *>(
+                GetMoManager(UNC_KT_VRTIF_FLOWFILTER)));
+    vnode_mgr = reinterpret_cast<MoMgrImpl *>
+        (const_cast<MoManager *>(
+                GetMoManager(UNC_KT_VRT_IF)));
+  } else {
+    UPLL_LOG_DEBUG("Do not notify POM since kt is %d",
+                   ckv_if->get_key_type());
+    return UPLL_RC_SUCCESS;
+  }
+
+  if (!pom_mgr || !vnode_mgr) {
+    UPLL_LOG_DEBUG("Instance is NULL");
+    return UPLL_RC_ERR_GENERIC;
+  }
+
+  uint8_t user_data_flags = 0;
+  InterfacePortMapInfo if_info;
+  GET_USER_DATA_FLAGS(ckv_if, user_data_flags);
+  if (user_data_flags & VIF_TYPE_BOUNDARY) {
+    UPLL_LOG_DEBUG("VLINK TYPE --BOUNDRY");
+    if_info = kPortMapConfigured;
+  } else if (user_data_flags & VIF_TYPE_LINKED) {
+    UPLL_LOG_DEBUG("VLINK TYPE --INTERNAL VLINK");
+    if_info = kVlinkConfigured;
+  } else {
+    UPLL_LOG_DEBUG("VLINK TYPE --NO VLINK");
+    if_info = kVlinkPortMapNotConfigured;
+  }
+  upll_rc_t result_code = vnode_mgr->GetChildConfigKey(okey, ckv_if);
+  if (UPLL_RC_SUCCESS != result_code) {
+    UPLL_LOG_DEBUG("GetChilConfigKey Failed");
+    return UPLL_RC_ERR_GENERIC;
+  }
+  if (UNC_OP_DELETE == op) {
+    // Notify the POM Component to clear the vlink flag
+    result_code = pom_mgr->SetVlinkPortmapConfiguration(
+        okey,
+        dt_type,
+        dmi,
+        kVlinkPortMapNotConfigured,
+        op);
+
+    if (okey) {
+      delete okey;
+      okey = NULL;
+    }
+    if (UPLL_RC_SUCCESS != result_code &&
+        UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+      UPLL_LOG_DEBUG("SetVlinkPortMapConfiguration Failure %d",
+                     result_code);
+      return result_code;
+    }
+  } else {
+    // Notify the POM Component to update the vlink or Portmap flag
+    result_code = pom_mgr->SetVlinkPortmapConfiguration(
+        okey,
+        dt_type,
+        dmi,
+        if_info,
+        op);
+
+    if (okey) {
+      delete okey;
+      okey = NULL;
+    }
+    if (UPLL_RC_SUCCESS != result_code &&
+        UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+      UPLL_LOG_DEBUG("SetVlinkPortMapConfiguration Failure %d",
+                     result_code);
+      return result_code;
+    }
+    if ((if_info == kPortMapConfigured) &&
+        (ckv_if->get_key_type() == UNC_KT_VBR_IF)) {
+      pom_mgr = reinterpret_cast<MoMgrImpl *>
+          (const_cast<MoManager *>(
+                  GetMoManager(UNC_KT_VBRIF_POLICINGMAP)));
+      if (!pom_mgr) {
+        UPLL_LOG_DEBUG("Instance is NULL");
+        return UPLL_RC_ERR_GENERIC;
+      }
+      result_code = vnode_mgr->GetChildConfigKey(okey, ckv_if);
+      if (UPLL_RC_SUCCESS != result_code) {
+        UPLL_LOG_DEBUG("GetChilConfigKey Failed");
+        return UPLL_RC_ERR_GENERIC;
+      }
+
+      // Notify the VBR IF PolicingMap Component to update the Portmap flag
+      result_code = pom_mgr->SetVlinkPortmapConfiguration(
+          okey,
+          dt_type,
+          dmi,
+          if_info,
+          op);
+      if (okey) {
+        delete okey;
+        okey = NULL;
+      }
+      if (UPLL_RC_SUCCESS != result_code &&
+          UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+        UPLL_LOG_DEBUG("SetVlinkPortMapConfiguration Failure %d",
+                       result_code);
+        return result_code;
+      }
+    }
+  }
 
+  return UPLL_RC_SUCCESS;
+}
 
 
 upll_rc_t VlinkMoMgr::UpdateVlinkMemIfFlag(upll_keytype_datatype_t dt_type,
@@ -630,7 +725,7 @@ upll_rc_t VlinkMoMgr::UpdateVlinkMemIfFlag(upll_keytype_datatype_t dt_type,
     UPLL_LOG_DEBUG("Invalid param");
     return UPLL_RC_ERR_GENERIC;
   }
-  ConfigKeyVal *okey = NULL;
+  // ConfigKeyVal *okey = NULL;
   ConfigKeyVal *dup_ckvif = NULL;
   upll_rc_t result_code = mgr->DupConfigKeyVal(dup_ckvif, ckv_if, MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
@@ -640,109 +735,50 @@ upll_rc_t VlinkMoMgr::UpdateVlinkMemIfFlag(upll_keytype_datatype_t dt_type,
   DbSubOp dbop = { kOpNotRead, kOpMatchNone, kOpInOutFlag };
   void *if_val = GetVal(dup_ckvif);
   if (!if_val) {
-     UPLL_LOG_DEBUG("Invalid param");
-     if (dup_ckvif) delete dup_ckvif;
-     return UPLL_RC_ERR_GENERIC;
+    UPLL_LOG_DEBUG("Invalid param");
+    if (dup_ckvif) delete dup_ckvif;
+    return UPLL_RC_ERR_GENERIC;
   }
-
   switch (ckv_if->get_key_type()) {
-  case UNC_KT_VBR_IF: {
-      MoMgrImpl *pom_mgr = reinterpret_cast<MoMgrImpl *>
-                                       (const_cast<MoManager *>(
-                                       GetMoManager(UNC_KT_VBRIF_FLOWFILTER)));
-      MoMgrImpl *vbr_mgr = reinterpret_cast<MoMgrImpl *>
-                                       (const_cast<MoManager *>(
-                                       GetMoManager(UNC_KT_VBR_IF)));
-      if (!pom_mgr || !vbr_mgr) {
-        UPLL_LOG_DEBUG("Instance is NULL");
-        if (dup_ckvif) delete dup_ckvif;
-        return UPLL_RC_ERR_GENERIC;
-     }
-     result_code = vbr_mgr->GetChildConfigKey(okey, ckv_if);
-     if (UPLL_RC_SUCCESS != result_code) {
-       UPLL_LOG_DEBUG("GetChilConfigKey Failed");
-       if (dup_ckvif) delete dup_ckvif;
-       return UPLL_RC_ERR_GENERIC;
-     }
-     if (UNC_OP_CREATE == op)
-       result_code = pom_mgr->SetVlinkPortmapConfiguration(okey, dt_type,
-                                              dmi, kVlinkConfigured, op);
-     else if (UNC_OP_DELETE == op)
-       result_code = pom_mgr->SetVlinkPortmapConfiguration(okey, dt_type,
-                                    dmi, kVlinkPortMapNotConfigured, op);
-     if (okey) delete okey;
-     if (UPLL_RC_SUCCESS != result_code &&
-           UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
-           UPLL_LOG_DEBUG("SetVlinkPortMapConfiguration Failure %d",
-                                                        result_code);
-           if (dup_ckvif) delete dup_ckvif;
-           return result_code;
-     }
-     ResetValid(val_vbr_if, &(reinterpret_cast<val_drv_vbr_if *>
-                              (if_val)->vbr_if_val))
-     vnif_type = kVbrIf;
-     break;
-     }
-  case UNC_KT_VRT_IF:
-     {
-      MoMgrImpl *pom_mgr = reinterpret_cast<MoMgrImpl *>
-                                       (const_cast<MoManager *>(
-                                       GetMoManager(UNC_KT_VRTIF_FLOWFILTER)));
-      MoMgrImpl *vrt_mgr = reinterpret_cast<MoMgrImpl *>
-                                       (const_cast<MoManager *>(
-                                       GetMoManager(UNC_KT_VRT_IF)));
-
-       if (!pom_mgr || !vrt_mgr) {
-         UPLL_LOG_DEBUG("Invalid Instance");
-         if (dup_ckvif) delete dup_ckvif;
-         return UPLL_RC_ERR_GENERIC;
-       }
-       result_code = vrt_mgr->GetChildConfigKey(okey, ckv_if);
-       if (UPLL_RC_SUCCESS != result_code) {
-         UPLL_LOG_DEBUG("GetChilConfigKey Failed");
-         if (dup_ckvif) delete dup_ckvif;
-         return UPLL_RC_ERR_GENERIC;
-       }
-       if (UNC_OP_CREATE == op) {
-         result_code = pom_mgr->SetVlinkPortmapConfiguration(okey,
-                                dt_type, dmi, kVlinkConfigured, op);
-       } else if (UNC_OP_DELETE == op) {
-         result_code = pom_mgr->SetVlinkPortmapConfiguration(okey, dt_type,
-                                      dmi, kVlinkPortMapNotConfigured, op);
-       }
-       if (okey) delete okey;
-       if (UPLL_RC_SUCCESS != result_code &&
-           UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
-           UPLL_LOG_DEBUG("SetVlinkPortMapConfiguration Failure %d",
-                                                        result_code);
-           if (dup_ckvif) delete dup_ckvif;
-           return result_code;
-       }
-      ResetValid(val_vrt_if, if_val);
-      vnif_type = kVrtIf;
+    case UNC_KT_VBR_IF: {
+      ResetValid(val_vbr_if, &(reinterpret_cast<val_drv_vbr_if *>
+                               (if_val)->vbr_if_val))
+          vnif_type = kVbrIf;
       break;
     }
-  case UNC_KT_VTEP_IF:
-     ResetValid(val_vtep_if, if_val);
-     vnif_type = kVtepIf;
-     break;
-  case UNC_KT_VTUNNEL_IF:
-     ResetValid(val_vtunnel_if, if_val);
-     vnif_type = kVtunnelIf;
-     break;
-  case UNC_KT_VUNK_IF:
-     ResetValid(val_vunk_if, if_val);
-     vnif_type = kVunkIf;
-     break;
-  default:
-     if (dup_ckvif) delete dup_ckvif;
-     UPLL_LOG_DEBUG("Unsupported keytype %d", ckv_if->get_key_type());
-     return UPLL_RC_ERR_GENERIC;
+    case UNC_KT_VRT_IF:
+      {
+        ResetValid(val_vrt_if, if_val);
+        vnif_type = kVrtIf;
+        break;
+      }
+    case UNC_KT_VTEP_IF:
+      ResetValid(val_vtep_if, if_val);
+      vnif_type = kVtepIf;
+      break;
+    case UNC_KT_VTUNNEL_IF:
+      ResetValid(val_vtunnel_if, if_val);
+      vnif_type = kVtunnelIf;
+      break;
+    case UNC_KT_VUNK_IF:
+      ResetValid(val_vunk_if, if_val);
+      vnif_type = kVunkIf;
+      break;
+      /* VlanmapOnBoundary: vlanmap case added */
+    case UNC_KT_VBR_VLANMAP:
+      ResetValid(val_vlan_map, &(reinterpret_cast<pfcdrv_val_vlan_map_t *>
+                                 (if_val)->vm));
+      vnif_type = kVlanMap;
+      break;
+    default:
+      if (dup_ckvif) delete dup_ckvif;
+      UPLL_LOG_DEBUG("Unsupported keytype %d", ckv_if->get_key_type());
+      return UPLL_RC_ERR_GENERIC;
   }
   UPLL_LOG_TRACE("Updating the Flag value in Interface Table %d",
-                           ckv_if->get_key_type());
+                 ckv_if->get_key_type());
   result_code = mgr->UpdateConfigDB(dup_ckvif, dt_type,
-                      UNC_OP_UPDATE, dmi, &dbop, MAINTBL);
+                                    UNC_OP_UPDATE, dmi, &dbop, MAINTBL);
   if (result_code != UPLL_RC_SUCCESS)
     UPLL_LOG_DEBUG("Returning error %d", result_code);
   if (dup_ckvif) delete dup_ckvif;
@@ -752,7 +788,8 @@ upll_rc_t VlinkMoMgr::UpdateVlinkMemIfFlag(upll_keytype_datatype_t dt_type,
 upll_rc_t VlinkMoMgr::UpdateVlinkIf(IpcReqRespHeader *req,
                                     ConfigKeyVal *ikey,
                                     DalDmlIntf *dmi,
-                                    controller_domain *ctrlr_dom) {
+                                    controller_domain *ctrlr_dom,
+                                    bool restore_flag) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   bool bound_vlink = false;
@@ -764,7 +801,7 @@ upll_rc_t VlinkMoMgr::UpdateVlinkIf(IpcReqRespHeader *req,
   upll_keytype_datatype_t dt_type = req->datatype;
   uint8_t valid_boundary =
       reinterpret_cast<val_vlink *>(GetVal(ikey))->
-                            valid[UPLL_IDX_BOUNDARY_NAME_VLNK];
+      valid[UPLL_IDX_BOUNDARY_NAME_VLNK];
   uint8_t rename_flag = 0;
   uint8_t vnode_rename_flag = 0;
   VlinkNodePosition vnodeif_number = kVlinkVnode1;
@@ -775,12 +812,13 @@ upll_rc_t VlinkMoMgr::UpdateVlinkIf(IpcReqRespHeader *req,
   int i = 0;
   VbrIfMoMgr *mgr =
       static_cast<VbrIfMoMgr *>(const_cast<MoManager *>(GetMoManager(
-          UNC_KT_VBR_IF)));
+                  UNC_KT_VBR_IF)));
   // val is mandatory in vlink structure
   cv_link = ikey->get_cfg_val();
   if (!cv_link) return UPLL_RC_ERR_GENERIC;
   do {
-    GET_USER_DATA_FLAGS(cv_link, rename_flag);
+    if (!restore_flag)
+      GET_USER_DATA_FLAGS(cv_link, rename_flag);
     rename_flag |= (uint8_t)(vnodeif_number & VIF_TYPE);
     SET_USER_DATA_FLAGS(cv_link, rename_flag);
     result_code = mgr->GetChildConfigKey(ck_drv_vbr_if, ikey);
@@ -806,8 +844,9 @@ upll_rc_t VlinkMoMgr::UpdateVlinkIf(IpcReqRespHeader *req,
     else if (vnodeif_number == kVlinkVnode2) if2_type = key_type;
     GET_USER_DATA_CTRLR_DOMAIN(ck_if[i], ctrlr_dom[i]);
     UPLL_LOG_TRACE(" The Controller and Domain Name is %s & %s",
-                     ctrlr_dom[i].ctrlr, ctrlr_dom[i].domain);
-    GET_USER_DATA_FLAGS(ck_if[i], rename_flag);
+                   ctrlr_dom[i].ctrlr, ctrlr_dom[i].domain);
+    if (!restore_flag)
+      GET_USER_DATA_FLAGS(ck_if[i], rename_flag);
     if (rename_flag & VIF_TYPE) {
       UPLL_LOG_DEBUG("Interface is already part of another vlink");
       delete ck_drv_vbr_if;  // COV RESOURCE LEAK
@@ -819,16 +858,16 @@ upll_rc_t VlinkMoMgr::UpdateVlinkIf(IpcReqRespHeader *req,
     if (vnode_rename_flag & 0x02) {
       GET_USER_DATA_FLAGS(cv_link, rename_flag);
       if (vnodeif_number == kVlinkVnode2)
-         vnode_rename_flag = 0x08;
+        vnode_rename_flag = 0x08;
       else
-         vnode_rename_flag = 0x04;
+        vnode_rename_flag = 0x04;
       rename_flag |= vnode_rename_flag;
       SET_USER_DATA_FLAGS(cv_link, rename_flag);
     }
     delete ck_drv_vbr_if;
     ck_drv_vbr_if = NULL;
     vnodeif_number = (vnodeif_number == kVlinkVnode1) ?
-                       kVlinkVnode2 : kVlinkVnode1;
+        kVlinkVnode2 : kVlinkVnode1;
     i++;
   } while (vnodeif_number != kVlinkVnode1);
   if ((if1_type == UNC_KT_VUNK_IF) || (if2_type == UNC_KT_VUNK_IF)) {
@@ -887,23 +926,41 @@ upll_rc_t VlinkMoMgr::UpdateVlinkIf(IpcReqRespHeader *req,
   }
   vnode_if_type vnif_type[2];
   for (int i = 0; i < 2; i++) {
-  // Set the flag - 2 MSB for boundary and next 2 for internal
+    // Set the flag - 2 MSB for boundary and next 2 for internal
     GET_USER_DATA_FLAGS(ck_if[i], rename_flag);
     if (bound_vlink) {
       rename_flag |= (i == 0) ?
-        kVlinkBoundaryNode1 : kVlinkBoundaryNode2;
+          kVlinkBoundaryNode1 : kVlinkBoundaryNode2;
       SET_USER_DATA_FLAGS(ck_if[i], rename_flag);
     } else {
       rename_flag |= (i == 0) ? kVlinkInternalNode1 :
-              kVlinkInternalNode2;
+          kVlinkInternalNode2;
+      // Notify the POM Component to update the Internal Vlink Flag
+
+      SET_USER_DATA_FLAGS(ck_if[i], rename_flag);
+      result_code = NotifyPOMForPortMapVlinkFlag(dt_type,
+                                                 ck_if[i],
+                                                 dmi,
+                                                 UNC_OP_CREATE);
+
+      if (result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("Returning error %d", result_code);
+        for (int i =0; i <2; i++)
+          DELETE_IF_NOT_NULL(ck_if[i]);
+        return result_code;
+      }
     }
-    SET_USER_DATA_FLAGS(ck_if[i], rename_flag);
+    // SET_USER_DATA_FLAGS(ck_if[i], rename_flag);
     key_type = ck_if[i]->get_key_type();
     MoMgrImpl *if_mgr = reinterpret_cast<MoMgrImpl *>
-                 (const_cast<MoManager *>(GetMoManager(key_type)));
-
-    result_code = UpdateVlinkMemIfFlag(dt_type, ck_if[i],
-                               dmi, vnif_type[i], if_mgr, UNC_OP_CREATE);
+        (const_cast<MoManager *>(GetMoManager(key_type)));
+
+    result_code = UpdateVlinkMemIfFlag(dt_type,
+                                       ck_if[i],
+                                       dmi,
+                                       vnif_type[i],
+                                       if_mgr,
+                                       UNC_OP_CREATE);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Returning error %d", result_code);
       for (int i =0; i <2; i++)
@@ -917,10 +974,18 @@ upll_rc_t VlinkMoMgr::UpdateVlinkIf(IpcReqRespHeader *req,
   if (if1_type != UNC_KT_VUNK_IF) {
     SET_USER_DATA_CTRLR_DOMAIN(ikey, *ctrlr_dom);
     GET_USER_DATA_CTRLR_DOMAIN(ikey, *ctrlr_dom);
+  } else {
+    /* For vbypass or unknown, only domain info needs to be copied */
+    SET_USER_DATA_DOMAIN(ikey, ctrlr_dom[0].domain);
+    GET_USER_DATA_DOMAIN(ikey, ctrlr_dom[0].domain);
   }
   if (if2_type != UNC_KT_VUNK_IF) {
     SET_USER_DATA_CTRLR_DOMAIN(ikey->get_cfg_val(), ctrlr_dom[1]);
     GET_USER_DATA_CTRLR_DOMAIN(ikey->get_cfg_val(), ctrlr_dom[1]);
+  } else {
+    /* For vbypass or unknown, only domain info needs to be copied */
+    SET_USER_DATA_DOMAIN(ikey->get_cfg_val(), ctrlr_dom[1].domain);
+    GET_USER_DATA_DOMAIN(ikey->get_cfg_val(), ctrlr_dom[1].domain);
   }
   /* Set the vnode if types in first 6 bits of flag */
   uint8_t flag = 0;
@@ -931,9 +996,85 @@ upll_rc_t VlinkMoMgr::UpdateVlinkIf(IpcReqRespHeader *req,
   flag |= (vnif_type[1] << kVlinkVnodeIf2Type);
   SET_USER_DATA_FLAGS(ikey, flag);
   UPLL_LOG_DEBUG("Flags for vnode1if type %d vnode2if type %d value %d",
-                  vnif_type[0], vnif_type[1], flag);
+                 vnif_type[0], vnif_type[1], flag);
   if (valid_boundary) {
     UPLL_LOG_TRACE("Valid boundary");
+
+    /* VlanmapOnBoundary: In case of boundary vlan-map,
+     * update vnode_if type in vlink flag */
+    ConfigKeyVal *dup_vlink = NULL;
+    result_code = DupConfigKeyVal(dup_vlink, ikey);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("DupConfigKeyVal returns error:%d", result_code);
+      for (int i =0; i <2; i++)
+        DELETE_IF_NOT_NULL(ck_if[i]);
+      return result_code;
+    }
+
+    result_code = UpdateVlinkVlanmapFlag(ikey, dup_vlink);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("UpdateVlinkMemIfFlag returns error:%d", result_code);
+      for (int i =0; i <2; i++)
+        DELETE_IF_NOT_NULL(ck_if[i]);
+      return result_code;
+    }
+
+    VlinkNodePosition vlanmap_vnode_number = kVlinkVnode1;
+    for (int i = 0; i < 2; i++) {
+      /* Get the key type of vnode_if */
+      unc_key_type_t ktype;
+      ktype = GetVlinkVnodeIfKeyType(dup_vlink, i);
+      if (ktype == UNC_KT_VBR_VLANMAP) {
+        MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
+                                                       (GetMoManager(ktype)));
+        if (!mgr) {
+          UPLL_LOG_DEBUG("Vlan-map MoMgr is invalid:%d", ktype);
+          for (int i =0; i <2; i++)
+            DELETE_IF_NOT_NULL(ck_if[i]);
+          delete dup_vlink;
+          return UPLL_RC_ERR_GENERIC;
+        }
+
+        ConfigKeyVal *vlanmap_ckv = NULL;
+        /* Set the flag of cfg_val with vnode_number which will be used in
+         * vbr vlan-map GetChildConfigKey to populate vbr_vlanmap info */
+        SET_USER_DATA_FLAGS(dup_vlink->get_cfg_val(), vlanmap_vnode_number);
+
+        /* Boundary vlink update operation for SW or SD */
+        result_code = mgr->GetChildConfigKey(vlanmap_ckv, dup_vlink);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("Returning %d", result_code);
+          delete dup_vlink;
+          for (int i =0; i <2; i++)
+            DELETE_IF_NOT_NULL(ck_if[i]);
+          return result_code;
+        }
+
+        val_vlink_t *dup_val = reinterpret_cast<val_vlink_t *>
+            (GetVal(dup_vlink));
+
+        /* valid flag of boundary_name is INVALID ->
+         * Boundary vlanmap CREATE req */
+        dup_val->valid[UPLL_IDX_BOUNDARY_NAME_VLNK] = UNC_VF_INVALID;
+        dup_val->valid[UPLL_IDX_VLAN_ID_VLNK]       = UNC_VF_INVALID;
+
+        /* Create request for Boundary vlanmap */
+        result_code = mgr->BoundaryVlanmapReq(req, ikey, dup_vlink,
+                                              vlanmap_ckv, dmi);
+        DELETE_IF_NOT_NULL(vlanmap_ckv);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("BoundaryVlanmapReq returns error: %d", result_code);
+          delete dup_vlink;
+          for (int i =0; i <2; i++)
+            DELETE_IF_NOT_NULL(ck_if[i]);
+          return result_code;
+        }
+      }
+      vlanmap_vnode_number = kVlinkVnode2;
+    }
+    DELETE_IF_NOT_NULL(dup_vlink);
+    /* VlanmapOnBoundary: end */
+
     result_code = UpdateVnodeIf(dt_type, ikey, ck_if, dmi, req->operation);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Returning error %d", result_code);
@@ -957,7 +1098,7 @@ upll_rc_t VlinkMoMgr::ValidateIfType(ConfigKeyVal **vnodeIf) {
         UPLL_LOG_DEBUG("Invalid combination for vlink");
         return UPLL_RC_ERR_CFG_SEMANTIC;
       }
-    break;
+      break;
     case UNC_KT_VRT_IF:
       if ((node2_ktype == UNC_KT_VUNK_IF) || (node2_ktype == UNC_KT_VRT_IF) ||
           (node2_ktype == UNC_KT_VTUNNEL_IF) ||
@@ -965,7 +1106,7 @@ upll_rc_t VlinkMoMgr::ValidateIfType(ConfigKeyVal **vnodeIf) {
         UPLL_LOG_DEBUG("Invalid combination for vlink");
         return UPLL_RC_ERR_CFG_SEMANTIC;
       }
-    break;
+      break;
     case UNC_KT_VTUNNEL_IF:
     case UNC_KT_VTEP_IF:
       if ((node2_ktype == UNC_KT_VRT_IF) || (node2_ktype == UNC_KT_VTEP_IF) ||
@@ -973,7 +1114,7 @@ upll_rc_t VlinkMoMgr::ValidateIfType(ConfigKeyVal **vnodeIf) {
         UPLL_LOG_DEBUG("Invalid combination for vlink");
         return UPLL_RC_ERR_CFG_SEMANTIC;
       }
-    break;
+      break;
     default:
       UPLL_LOG_DEBUG("Valid Combination");
   }
@@ -1014,7 +1155,7 @@ upll_rc_t VlinkMoMgr::ValidateIfType(ConfigKeyVal **vnodeIf) {
 
 /* Pure Virtual functions from MoMgrImpl */
 upll_rc_t VlinkMoMgr::GetControllerDomainId(ConfigKeyVal *ikey,
-                                          controller_domain *ctrlr_dom) {
+                                            controller_domain *ctrlr_dom) {
   UPLL_FUNC_TRACE;
   if (!ikey || !ctrlr_dom) {
     UPLL_LOG_INFO("Illegal parameter");
@@ -1025,7 +1166,7 @@ upll_rc_t VlinkMoMgr::GetControllerDomainId(ConfigKeyVal *ikey,
     if ((ctrlr_dom->ctrlr &&
          !strlen(reinterpret_cast<const char *>(ctrlr_dom->ctrlr))) ||
         (ctrlr_dom->domain &&
-        !strlen(reinterpret_cast<const char *>(ctrlr_dom->domain)))) {
+         !strlen(reinterpret_cast<const char *>(ctrlr_dom->domain)))) {
       UPLL_LOG_DEBUG("Ctrlr domain null");
       return UPLL_RC_ERR_GENERIC;
     }
@@ -1036,36 +1177,35 @@ upll_rc_t VlinkMoMgr::GetControllerDomainId(ConfigKeyVal *ikey,
     if ((ctrlr_dom[1].ctrlr &&
          !strlen(reinterpret_cast<const char *>(ctrlr_dom[1].ctrlr))) ||
         (ctrlr_dom[1].domain &&
-        !strlen(reinterpret_cast<const char *>(ctrlr_dom[1].domain)))) {
+         !strlen(reinterpret_cast<const char *>(ctrlr_dom[1].domain)))) {
       UPLL_LOG_DEBUG("Ctrlr domain null");
       return UPLL_RC_ERR_GENERIC;
     }
     UPLL_LOG_DEBUG("boundary 2nd ctrlr_dom %s %s",
-                    ctrlr_dom[1].ctrlr, ctrlr_dom[1].domain);
+                   ctrlr_dom[1].ctrlr, ctrlr_dom[1].domain);
   }
   return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t VlinkMoMgr::UpdateVnodeIf(upll_keytype_datatype_t dt_type,
-                      ConfigKeyVal *ikey, ConfigKeyVal **vnif,
-                      DalDmlIntf *dmi,
-                      unc_keytype_operation_t op) {
+                                    ConfigKeyVal *ikey, ConfigKeyVal **vnif,
+                                    DalDmlIntf *dmi,
+                                    unc_keytype_operation_t op) {
   UPLL_FUNC_TRACE;
   if (ikey == NULL || dt_type == UPLL_DT_INVALID || dmi == NULL)
     return UPLL_RC_ERR_GENERIC;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   uint8_t valid_boundary =
       reinterpret_cast<val_vlink *>(GetVal(ikey))->
-                                valid[UPLL_IDX_BOUNDARY_NAME_VLNK];
+      valid[UPLL_IDX_BOUNDARY_NAME_VLNK];
   if (valid_boundary == UNC_VF_VALID) {
     for (int i = 0; i < 2; i++) {
-#if 0
-      result_code = CheckPortmapValidandUpdateVbrIf(ikey, vnif[i],
-                                                      dmi, dt_type);
-#else
+      /* VlanmapOnBoundary: for vlanmap continue */
+      if (GetVlinkVnodeIfKeyType(ikey, i) == UNC_KT_VBR_VLANMAP)
+        continue;
+
       UPLL_LOG_TRACE("Before UpdatePortmap %s", (vnif[i]->ToStrAll()).c_str());
       result_code = UpdateVnodeIfPortmap(ikey, vnif[i], dmi, dt_type, op);
-#endif
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("Updation of VnIf Portmap failed %d", result_code);
         return result_code;
@@ -1075,7 +1215,7 @@ upll_rc_t VlinkMoMgr::UpdateVnodeIf(upll_keytype_datatype_t dt_type,
     for (int i = 0; i < 2; i++) {
       unc_key_type_t ktype = vnif[i]->get_key_type();
       MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager*>
-                                              (GetMoManager(ktype)));
+                                                     (GetMoManager(ktype)));
       if (!mgr) {
         UPLL_LOG_DEBUG("Invalid param");
         return UPLL_RC_ERR_GENERIC;
@@ -1087,7 +1227,7 @@ upll_rc_t VlinkMoMgr::UpdateVnodeIf(upll_keytype_datatype_t dt_type,
       SET_USER_DATA_FLAGS(vnif[i], if_flag);
       vnode_if_type vnif_type;
       result_code = UpdateVlinkMemIfFlag(dt_type, vnif[i], dmi,
-                         vnif_type, mgr, UNC_OP_DELETE);
+                                         vnif_type, mgr, UNC_OP_DELETE);
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("Returning error %d", result_code);
         return result_code;
@@ -1095,62 +1235,66 @@ upll_rc_t VlinkMoMgr::UpdateVnodeIf(upll_keytype_datatype_t dt_type,
 #endif
       val_port_map *portmap = NULL;
       switch (ktype) {
-      case UNC_KT_VBR_IF:
-      {
-        val_drv_vbr_if *drv_ifval = reinterpret_cast<val_drv_vbr_if *>
-                                GetVal(vnif[i]);
-        drv_ifval->vbr_if_val.valid[UPLL_IDX_ADMIN_STATUS_VBRI] =
-              UNC_VF_INVALID;
-        drv_ifval->vbr_if_val.valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID_NO_VALUE;
-        result_code = reinterpret_cast<VbrIfMoMgr *>(mgr)->
-                         UpdatePortMap(vnif[i], dt_type, dmi, vnif[i]);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("Clear Portmap failed %d", result_code);
-          return result_code;
-        }
-        break;
-      }
-      case UNC_KT_VTEP_IF:
-      {
-        val_vtep_if *drv_ifval = reinterpret_cast<val_vtep_if *>
-                                GetVal(vnif[i]);
-        drv_ifval->valid[UPLL_IDX_ADMIN_ST_VTEPI] = UNC_VF_INVALID;
-        drv_ifval->valid[UPLL_IDX_PORT_MAP_VTEPI] = UNC_VF_VALID_NO_VALUE;
-        portmap = &drv_ifval->portmap;
-      }
-       /* fall through intended */
-      case UNC_KT_VTUNNEL_IF:
-        if (ktype == UNC_KT_VTUNNEL_IF) {
-          val_vtunnel_if *drv_ifval = reinterpret_cast<val_vtunnel_if *>
-                                   GetVal(vnif[i]);
-          portmap = &drv_ifval->portmap;
-          drv_ifval->valid[UPLL_IDX_ADMIN_ST_VTNL_IF] = UNC_VF_INVALID;
-          drv_ifval->valid[UPLL_IDX_PORT_MAP_VTNL_IF] = UNC_VF_VALID_NO_VALUE;
-        }
-        portmap->valid[UPLL_IDX_LOGICAL_PORT_ID_PM] =
-                                             UNC_VF_VALID_NO_VALUE;
-        uuu::upll_strncpy(portmap->logical_port_id, "\0", 1);
-        portmap->valid[UPLL_IDX_VLAN_ID_PM] = UNC_VF_VALID_NO_VALUE;
-        portmap->valid[UPLL_IDX_TAGGED_PM] = UNC_VF_VALID_NO_VALUE;
-        portmap->tagged = UPLL_VLAN_UNTAGGED;
-        portmap->vlan_id = 0;
-        break;
-      case UNC_KT_VUNK_IF:
-        break;
-      default:
-        UPLL_LOG_DEBUG("Unsupported keytype %d", ktype);
-        return UPLL_RC_ERR_GENERIC;
+        case UNC_KT_VBR_IF:
+          {
+            val_drv_vbr_if *drv_ifval = reinterpret_cast<val_drv_vbr_if *>
+                GetVal(vnif[i]);
+            drv_ifval->vbr_if_val.valid[UPLL_IDX_ADMIN_STATUS_VBRI] =
+                UNC_VF_INVALID;
+            drv_ifval->vbr_if_val.valid[UPLL_IDX_PM_VBRI] =
+                UNC_VF_VALID_NO_VALUE;
+            result_code = reinterpret_cast<VbrIfMoMgr *>(mgr)->
+                UpdatePortMap(vnif[i], dt_type, dmi, vnif[i]);
+            if (result_code != UPLL_RC_SUCCESS) {
+              UPLL_LOG_DEBUG("Clear Portmap failed %d", result_code);
+              return result_code;
+            }
+            break;
+          }
+        case UNC_KT_VTEP_IF:
+          {
+            val_vtep_if *drv_ifval = reinterpret_cast<val_vtep_if *>
+                GetVal(vnif[i]);
+            drv_ifval->valid[UPLL_IDX_ADMIN_ST_VTEPI] = UNC_VF_INVALID;
+            drv_ifval->valid[UPLL_IDX_PORT_MAP_VTEPI] = UNC_VF_VALID_NO_VALUE;
+            portmap = &drv_ifval->portmap;
+          }
+          /* fall through intended */
+        case UNC_KT_VTUNNEL_IF:
+          if (ktype == UNC_KT_VTUNNEL_IF) {
+            val_vtunnel_if *drv_ifval = reinterpret_cast<val_vtunnel_if *>
+                GetVal(vnif[i]);
+            portmap = &drv_ifval->portmap;
+            drv_ifval->valid[UPLL_IDX_ADMIN_ST_VTNL_IF] = UNC_VF_INVALID;
+            drv_ifval->valid[UPLL_IDX_PORT_MAP_VTNL_IF] = UNC_VF_VALID_NO_VALUE;
+          }
+          portmap->valid[UPLL_IDX_LOGICAL_PORT_ID_PM] =
+              UNC_VF_VALID_NO_VALUE;
+          uuu::upll_strncpy(portmap->logical_port_id, "\0", 1);
+          portmap->valid[UPLL_IDX_VLAN_ID_PM] = UNC_VF_VALID_NO_VALUE;
+          portmap->valid[UPLL_IDX_TAGGED_PM] = UNC_VF_VALID_NO_VALUE;
+          portmap->tagged = UPLL_VLAN_UNTAGGED;
+          portmap->vlan_id = 0;
+          break;
+        case UNC_KT_VUNK_IF:
+          break;
+          /* VlanmapOnBoundary: vlanmap case continue */
+        case UNC_KT_VBR_VLANMAP:
+          continue;
+        default:
+          UPLL_LOG_DEBUG("Unsupported keytype %d", ktype);
+          return UPLL_RC_ERR_GENERIC;
       }
       DbSubOp dbop = { kOpNotRead, kOpMatchNone, kOpInOutNone };
       result_code = mgr->UpdateConfigDB(vnif[i], dt_type, UNC_OP_UPDATE,
-                               dmi, &dbop, MAINTBL);
+                                        dmi, &dbop, MAINTBL);
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("Returning %d", result_code);
         return result_code;
       }
     }
   } else {
-      UPLL_LOG_DEBUG("Internal vlink");
+    UPLL_LOG_DEBUG("Internal vlink");
   }
   if (ck_boundary)
     delete ck_boundary;
@@ -1161,20 +1305,21 @@ upll_rc_t VlinkMoMgr::UpdateVnodeIf(upll_keytype_datatype_t dt_type,
 #if 0
 upll_rc_t VlinkMoMgr::CheckPortmapValidandUpdateVbrIf(
     ConfigKeyVal *ikey, ConfigKeyVal *ck_drv_vbr_if, DalDmlIntf *dmi,
-                                     upll_keytype_datatype_t dt_type) {
+    upll_keytype_datatype_t dt_type) {
   UPLL_FUNC_TRACE;
   if (ikey == NULL || ck_boundary == NULL || dmi == NULL
       || ck_drv_vbr_if == NULL || dt_type == UPLL_DT_INVALID)
     return UPLL_RC_ERR_GENERIC;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   VbrIfMoMgr *mgr = reinterpret_cast<VbrIfMoMgr *>(const_cast<MoManager*>
-                                              (GetMoManager(UNC_KT_VBR_IF)));
+                                                   (GetMoManager
+                                                    (UNC_KT_VBR_IF)));
   if (!mgr) {
     UPLL_LOG_DEBUG("Invalid param");
     return UPLL_RC_ERR_GENERIC;
   }
   uint8_t valid_port = reinterpret_cast<val_drv_vbr_if *>
-               (GetVal(ck_drv_vbr_if))->vbr_if_val.valid[UPLL_IDX_PM_DRV_VBRI];
+      (GetVal(ck_drv_vbr_if))->vbr_if_val.valid[UPLL_IDX_PM_DRV_VBRI];
   if (valid_port == UNC_VF_INVALID) {
     result_code = ConverttoDriverPortMap(ck_drv_vbr_if, ikey);
     if (result_code != UPLL_RC_SUCCESS) {
@@ -1183,16 +1328,16 @@ upll_rc_t VlinkMoMgr::CheckPortmapValidandUpdateVbrIf(
     }
     DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutNone };
     result_code = mgr->UpdateConfigDB(ck_drv_vbr_if, dt_type, UNC_OP_UPDATE,
-                         dmi, &dbop, MAINTBL);
+                                      dmi, &dbop, MAINTBL);
     if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("Updation failed %d", result_code);
-        return result_code;
+      UPLL_LOG_DEBUG("Updation failed %d", result_code);
+      return result_code;
     }
   } else if (valid_port == UNC_VF_VALID) {
 #if 0
     if (CompareVbrIfWithPhysicalData(ck_drv_vbr_if, ck_boundary, ikey)) {
-        UPLL_LOG_DEBUG("VbrIf is already configured");
-        return UPLL_RC_ERR_GENERIC;
+      UPLL_LOG_DEBUG("VbrIf is already configured");
+      return UPLL_RC_ERR_GENERIC;
     }
 #endif
   }
@@ -1202,8 +1347,8 @@ upll_rc_t VlinkMoMgr::CheckPortmapValidandUpdateVbrIf(
 
 upll_rc_t VlinkMoMgr::UpdateVnodeIfPortmap(
     ConfigKeyVal *ikey, ConfigKeyVal *ck_vn_if, DalDmlIntf *dmi,
-                                     upll_keytype_datatype_t dt_type,
-                                     unc_keytype_operation_t op) {
+    upll_keytype_datatype_t dt_type,
+    unc_keytype_operation_t op) {
   UPLL_FUNC_TRACE;
   if (ikey == NULL || ck_boundary == NULL || dmi == NULL
       || ck_vn_if == NULL || dt_type == UPLL_DT_INVALID) {
@@ -1215,50 +1360,62 @@ upll_rc_t VlinkMoMgr::UpdateVnodeIfPortmap(
   // val_port_map *port_map_val;
   val_vlink *vlink_val = reinterpret_cast<val_vlink *>(GetVal(ikey));
   MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager*>
-                                              (GetMoManager(ktype)));
+                                                 (GetMoManager(ktype)));
   if (!mgr) {
     UPLL_LOG_DEBUG("Invalid param");
     return UPLL_RC_ERR_GENERIC;
   }
   UPLL_LOG_TRACE("ktype %d", ktype);
-  uint8_t valid_port;
+  uint8_t valid_port = 0;
   void *val_if = GetVal(ck_vn_if);
   switch (ktype) {
-  case UNC_KT_VTEP_IF:
-  {
-    val_vtep_if *vtep_if = reinterpret_cast<val_vtep_if *>(val_if);
-    vtep_if->valid[UPLL_IDX_ADMIN_ST_VTEPI] = UNC_VF_INVALID;
-    valid_port = vtep_if->valid[UPLL_IDX_PORT_MAP_VTEPI];
-   // port_map_val = &vtep_if->portmap;
-    break;
-  }
-  case UNC_KT_VTUNNEL_IF:
-  {
-    val_vtunnel_if *vtunnel_if = reinterpret_cast<val_vtunnel_if *>(val_if);
-    vtunnel_if->valid[UPLL_IDX_ADMIN_ST_VTNL_IF] = UNC_VF_INVALID;
-    valid_port = vtunnel_if->valid[UPLL_IDX_PORT_MAP_VTNL_IF];
-  //  port_map_val = &vtunnel_if->portmap;
-    break;
-  }
-  case UNC_KT_VBR_IF:
-  {
-    val_drv_vbr_if *vbr_if = reinterpret_cast<val_drv_vbr_if *>(val_if);
-    vbr_if->vbr_if_val.valid[UPLL_IDX_ADMIN_STATUS_VBRI] = UNC_VF_INVALID;
-    valid_port = vbr_if->vbr_if_val.valid[UPLL_IDX_PM_VBRI];
- //   port_map_val = &vbr_if->vbr_if_val.portmap;
-    break;
-  }
-  case UNC_KT_VUNK_IF:
-    return UPLL_RC_SUCCESS;
-  default:
-    UPLL_LOG_DEBUG("Unsupported keytype %d", ktype);
-    return UPLL_RC_ERR_CFG_SEMANTIC;
+    case UNC_KT_VTEP_IF:
+      {
+        val_vtep_if *vtep_if = reinterpret_cast<val_vtep_if *>(val_if);
+        vtep_if->valid[UPLL_IDX_ADMIN_ST_VTEPI] = UNC_VF_INVALID;
+        valid_port = vtep_if->valid[UPLL_IDX_PORT_MAP_VTEPI];
+        // port_map_val = &vtep_if->portmap;
+        break;
+      }
+    case UNC_KT_VTUNNEL_IF:
+      {
+        val_vtunnel_if *vtunnel_if = reinterpret_cast<val_vtunnel_if *>(val_if);
+        vtunnel_if->valid[UPLL_IDX_ADMIN_ST_VTNL_IF] = UNC_VF_INVALID;
+        valid_port = vtunnel_if->valid[UPLL_IDX_PORT_MAP_VTNL_IF];
+        //  port_map_val = &vtunnel_if->portmap;
+        break;
+      }
+    case UNC_KT_VBR_IF:
+      {
+        val_drv_vbr_if *vbr_if = reinterpret_cast<val_drv_vbr_if *>(val_if);
+        vbr_if->vbr_if_val.valid[UPLL_IDX_ADMIN_STATUS_VBRI] = UNC_VF_INVALID;
+        valid_port = vbr_if->vbr_if_val.valid[UPLL_IDX_PM_VBRI];
+        result_code = NotifyPOMForPortMapVlinkFlag(dt_type,
+                                                   ck_vn_if,
+                                                   dmi,
+                                                   op);
+
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("Returning error %d", result_code);
+          return result_code;
+        }
+        //   port_map_val = &vbr_if->vbr_if_val.portmap;
+        break;
+      }
+    case UNC_KT_VUNK_IF:
+      break;
+      /* VlanmapOnBoundary: During update: input received is vlanmap */
+    case UNC_KT_VBR_VLANMAP:
+      return UPLL_RC_SUCCESS;
+    default:
+      UPLL_LOG_DEBUG("Unsupported keytype %d", ktype);
+      return UPLL_RC_ERR_CFG_SEMANTIC;
   }
   UPLL_LOG_DEBUG("valid_port %d valid vlanid %d", valid_port,
-                    vlink_val->valid[UPLL_IDX_VLAN_ID_VLNK]);
+                 vlink_val->valid[UPLL_IDX_VLAN_ID_VLNK]);
   if ((valid_port == UNC_VF_INVALID) ||
       ((valid_port == UNC_VF_VALID) && (op != UNC_OP_CREATE))) {
-    result_code = ConverttoDriverPortMap(ck_vn_if, ikey);
+    result_code = ConverttoDriverPortMap(ck_vn_if, ikey, dmi);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Returning error %d", result_code);
       return result_code;
@@ -1267,6 +1424,10 @@ upll_rc_t VlinkMoMgr::UpdateVnodeIfPortmap(
     UPLL_LOG_DEBUG("Vlink of a mapped interface is not allowed");
     return UPLL_RC_ERR_CFG_SEMANTIC;
   }
+
+  if (ktype == UNC_KT_VUNK_IF)
+    return UPLL_RC_SUCCESS;
+
 #if 0
   else if (valid_port == UNC_VF_VALID) {
     if (op == UNC_OP_CREATE) {
@@ -1276,32 +1437,43 @@ upll_rc_t VlinkMoMgr::UpdateVnodeIfPortmap(
     port_map_val->tagged = UPLL_VLAN_TAGGED;
     port_map_val->valid[UPLL_IDX_TAGGED_PM] = UNC_VF_VALID;
     switch (vlink_val->valid[UPLL_IDX_VLAN_ID_VLNK]) {
-    case UNC_VF_VALID:
-      port_map_val->vlan_id = vlink_val->vlan_id;
-      break;
-    case UNC_VF_VALID_NO_VALUE:
-      port_map_val->vlan_id = 0;
-      port_map_val->tagged = UPLL_VLAN_UNTAGGED;
-      break;
-    default:
-      break;
+      case UNC_VF_VALID:
+        port_map_val->vlan_id = vlink_val->vlan_id;
+        break;
+      case UNC_VF_VALID_NO_VALUE:
+        port_map_val->vlan_id = 0;
+        port_map_val->tagged = UPLL_VLAN_UNTAGGED;
+        break;
+      default:
+        break;
     }
     port_map_val->valid[UPLL_IDX_VLAN_ID_PM] =
-                  vlink_val->valid[UPLL_IDX_VLAN_ID_VLNK];
+        vlink_val->valid[UPLL_IDX_VLAN_ID_VLNK];
 #if 0
     if (CompareVbrIfWithPhysicalData(ck_drv_vbr_if, ck_boundary, ikey)) {
-        UPLL_LOG_DEBUG("VbrIf is already configured");
-        return UPLL_RC_ERR_GENERIC;
+      UPLL_LOG_DEBUG("VbrIf is already configured");
+      return UPLL_RC_ERR_GENERIC;
     }
 #endif
   }
 #endif
+  IpcReqRespHeader req;
+  memset(&req, 0, sizeof(IpcReqRespHeader));
+  req.datatype = dt_type;
+  req.operation = op;
+
+  result_code = mgr->IsLogicalPortAndVlanIdInUse(ck_vn_if, dmi, &req);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_DEBUG("LogicalPort VlanId validation failed");
+    return result_code;
+  }
+
   DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutNone };
   result_code = mgr->UpdateConfigDB(ck_vn_if, dt_type, UNC_OP_UPDATE,
-                         dmi, &dbop, MAINTBL);
+                                    dmi, &dbop, MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Updation failed %d", result_code);
-      return result_code;
+    UPLL_LOG_DEBUG("Updation failed %d", result_code);
+    return result_code;
   }
   return result_code;
 }
@@ -1312,143 +1484,206 @@ bool VlinkMoMgr::CompareVbrIfWithPhysicalData(ConfigKeyVal *ck_drv_vbr_if,
   if (ikey == NULL || ck_drv_vbr_if == NULL || ck_boundary_data == NULL)
     return UPLL_RC_ERR_GENERIC;
   val_boundary *boundary_val_data = reinterpret_cast<val_boundary *>
-                                            ((GetVal(ck_boundary_data)));
+      ((GetVal(ck_boundary_data)));
   if (boundary_val_data == NULL) {
     UPLL_LOG_DEBUG("Boundary invalid");
     return UPLL_RC_ERR_GENERIC;
   }
 #if 0
   val_drv_port_map vbr_port_data = reinterpret_cast<val_drv_vbr_if *>(
-                      (GetVal(ck_drv_vbr_if)))->portmap;
+      (GetVal(ck_drv_vbr_if)))->portmap;
   if (*(reinterpret_cast<int*>
-         (ikey->get_cfg_val()->get_user_data())) & kVnode1) {
+        (ikey->get_cfg_val()->get_user_data())) & kVnode1) {
     if (boundary_val_data->valid[kIdxValBoundarySwitchid1] != UNC_VF_VALID &&
-     vbr_port_data.valid[UPLL_IDX_SWITCH_ID_DRV_PM] != UNC_VF_VALID)
-    return false;
+        vbr_port_data.valid[UPLL_IDX_SWITCH_ID_DRV_PM] != UNC_VF_VALID)
+      return false;
     else if (!strcmp(reinterpret_cast<char*>(&boundary_val_data->switch_id_1),
-              reinterpret_cast<char*>&vbr_port_data.switch_id))
-    return false;
+                     reinterpret_cast<char*>&vbr_port_data.switch_id))
+      return false;
     if (boundary_val_data->valid[kIdxValBoundaryPortname1] != UNC_VF_VALID &&
         vbr_port_data.valid[UPLL_IDX_PORT_NAME_DRV_PM] != UNC_VF_VALID)
-    return false;
+      return false;
     else if (!strcmp(reinterpret_cast<char*>(&boundary_val_data->port_name_1),
-           reinterpret_cast<char*>)(&vbr_port_data.port_name)))
-    return false;
+                     reinterpret_cast<char*>)(&vbr_port_data.port_name)))
+                         return false;
 
   } else if (*(reinterpret_cast<int*>(ikey->get_cfg_val()->get_user_data()))
-            & kVnode2) {
+             & kVnode2) {
     if (boundary_val_data->valid[kIdxValBoundarySwitchid2] != UNC_VF_VALID
         && vbr_port_data.valid[UPLL_IDX_SWITCH_ID_PM] != UNC_VF_VALID)
-    return false;
+      return false;
     else if (!strcmp(reinterpret_cast<char*>(boundary_val_data->switch_id_2),
-          reinterpret_cast<char*>(&vbr_port_data.switch_id)))
-    return false;
+                     reinterpret_cast<char*>(&vbr_port_data.switch_id)))
+      return false;
     if (boundary_val_data->valid[kIdxValBoundaryPortname2] != UNC_VF_VALID
-       && vbr_port_data.valid[UPLL_IDX_PORT_NAME_DRV_PM] != UNC_VF_VALID)
-    return false;
+        && vbr_port_data.valid[UPLL_IDX_PORT_NAME_DRV_PM] != UNC_VF_VALID)
+      return false;
     else if (!strcmp(reinterpret_cast<char*>(&boundary_val_data->port_name_2),
-      reinterpret_cast<char*>(&vbr_port_data.port_name)))
-    return false;
+                     reinterpret_cast<char*>(&vbr_port_data.port_name)))
+      return false;
   }
   if (vlan_id != NULL && vbr_port_data.valid[UPLL_IDX_VLAN_ID_DRV_PM]
-         == UNC_VF_VALID )
-  if (vlan_id != vbr_port_data.vlan_id)
-    return false;
+      == UNC_VF_VALID )
+    if (vlan_id != vbr_port_data.vlan_id)
+      return false;
 #endif
   return true;
 }
 
 upll_rc_t VlinkMoMgr::ConverttoDriverPortMap(ConfigKeyVal *iokey,
-                                         ConfigKeyVal *ikey) {
+                                             ConfigKeyVal *ikey,
+                                             DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
+  upll_rc_t result_code = UPLL_RC_SUCCESS;
   if (ikey == NULL || iokey == NULL || ikey->get_cfg_val() == NULL ||
       iokey->get_cfg_val() == NULL) {
     UPLL_LOG_DEBUG("Invalid Input");
     return UPLL_RC_ERR_GENERIC;
   }
   val_boundary *boundary_val_data = reinterpret_cast<val_boundary *>
-                                              (GetVal(ck_boundary));
+      (GetVal(ck_boundary));
   if (boundary_val_data == NULL) {
     UPLL_LOG_DEBUG("Invalid parameter");
     return UPLL_RC_ERR_GENERIC;
   }
   unc_key_type_t ktype = iokey->get_key_type();
-  val_port_map *port_map_val;
+  val_port_map *port_map_val = NULL;
+  UPLL_LOG_DEBUG("ktype %d " , ktype);
   switch (ktype) {
-  case UNC_KT_VBR_IF:
-  {
-    val_drv_vbr_if *drv_ifval = reinterpret_cast<val_drv_vbr_if *>
-                               (GetVal(iokey));
-    if (!drv_ifval) {
-      UPLL_LOG_DEBUG("Invalid param");
-      return UPLL_RC_ERR_GENERIC;
-    }
-    if (drv_ifval->vbr_if_val.valid[UPLL_IDX_PM_VBRI] == UNC_VF_INVALID) {
-      std::string if_name = reinterpret_cast<const char *>
-                  (reinterpret_cast<key_vbr_if*>(iokey->get_key())->if_name);
-      if (strlen(if_name.c_str()) >= 10) {
-        if_name.erase(10);
-      }
-
-      struct timeval _timeval;
-      struct timezone _timezone;
-      gettimeofday(&_timeval, &_timezone);
-
-      std::stringstream ss;
-      ss << if_name << _timeval.tv_sec << _timeval.tv_usec;
-      std::string unique_id = ss.str();
-      std::string vex_name("vx_");
-      vex_name += unique_id;
-      std::string vex_if_name("vi_");
-      vex_if_name += unique_id;
-      std::string vex_link_name("vl_");
-      vex_link_name += unique_id;
-
-      drv_ifval->vbr_if_val.valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID;
-      drv_ifval->valid[PFCDRV_IDX_VEXT_NAME_VBRIF] = UNC_VF_VALID;
-      uuu::upll_strncpy(drv_ifval->vex_name, vex_name.c_str(),
-                                             kMaxLenVnodeName+1);
-
-      drv_ifval->valid[PFCDRV_IDX_VEXTIF_NAME_VBRIF] = UNC_VF_VALID;
-      uuu::upll_strncpy(reinterpret_cast<char *>(drv_ifval->vex_if_name),
-                    vex_if_name.c_str(), kMaxLenInterfaceName+1);
-
-      drv_ifval->valid[PFCDRV_IDX_VLINK_NAME_VBRIF] = UNC_VF_VALID;
-      uuu::upll_strncpy(reinterpret_cast<char *>(drv_ifval->vex_link_name),
-                    vex_link_name.c_str(), kMaxLenVlinkName+1);
-    }
-    port_map_val = &drv_ifval->vbr_if_val.portmap;
-    break;
-  }
-  case UNC_KT_VTEP_IF:
-  {
-    val_vtep_if *drv_ifval = reinterpret_cast<val_vtep_if *>
-                               (GetVal(iokey));
-    if (!drv_ifval) {
-      UPLL_LOG_DEBUG("Invalid param");
-      return UPLL_RC_ERR_GENERIC;
-    }
-    drv_ifval->valid[UPLL_IDX_PORT_MAP_VTEPI] = UNC_VF_VALID;
-    port_map_val = &drv_ifval->portmap;
-    break;
-  }
-  case UNC_KT_VTUNNEL_IF:
-  {
-    val_vtunnel_if *drv_ifval = reinterpret_cast<val_vtunnel_if *>
-                               (GetVal(iokey));
-    if (!drv_ifval) {
-      UPLL_LOG_DEBUG("Invalid param");
-      return UPLL_RC_ERR_GENERIC;
-    }
-    drv_ifval->valid[UPLL_IDX_PORT_MAP_VTNL_IF] = UNC_VF_VALID;
-    port_map_val = &drv_ifval->portmap;
-    break;
-  }
-  case UNC_KT_VUNK_IF:
-    return UPLL_RC_SUCCESS;
-  default:
-    UPLL_LOG_DEBUG("Unsupported keytype %d", ktype);
-    return UPLL_RC_ERR_GENERIC;
+    case UNC_KT_VBR_IF:
+      {
+        val_drv_vbr_if *drv_ifval = reinterpret_cast<val_drv_vbr_if *>
+            (GetVal(iokey));
+        if (!drv_ifval) {
+          UPLL_LOG_DEBUG("Invalid param");
+          return UPLL_RC_ERR_GENERIC;
+        }
+        ConfigKeyVal *okey = NULL;
+        if (drv_ifval->vbr_if_val.valid[UPLL_IDX_PM_VBRI] == UNC_VF_INVALID) {
+          MoMgrImpl *vbrif_mgr = reinterpret_cast<MoMgrImpl *>
+              (const_cast<MoManager *>(GetMoManager(UNC_KT_VBR_IF)));
+          if (!vbrif_mgr) {
+            UPLL_LOG_ERROR("Instance is NULL");
+            return UPLL_RC_ERR_GENERIC;
+          }
+          result_code = vbrif_mgr->GetChildConfigKey(okey, iokey);
+          if (UPLL_RC_SUCCESS != result_code) {
+            UPLL_LOG_ERROR("GetChilConfigKey Failed");
+            return UPLL_RC_ERR_GENERIC;
+          }
+          DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr | kOpMatchDomain,
+            kOpInOutFlag};
+          result_code = vbrif_mgr->ReadConfigDB(okey,
+                                                UPLL_DT_RUNNING,
+                                                UNC_OP_READ,
+                                                dbop,
+                                                dmi,
+                                                MAINTBL);
+          if ((UPLL_RC_SUCCESS != result_code) &&
+              (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
+            UPLL_LOG_ERROR("ReadConfigDB failure %d", result_code);
+            DELETE_IF_NOT_NULL(okey);
+            return result_code;
+          }
+
+          bool port_map_in_run = false;
+          if (result_code == UPLL_RC_SUCCESS) {
+            val_drv_vbr_if *drv_ifval1 = reinterpret_cast<val_drv_vbr_if *>
+                (GetVal(okey));
+            if (drv_ifval1 == NULL) {
+              UPLL_LOG_ERROR("val vbr is NULL");
+              DELETE_IF_NOT_NULL(okey);
+              return UPLL_RC_ERR_GENERIC;
+            }
+            if (drv_ifval1->vbr_if_val.valid[UPLL_IDX_PM_VBRI] ==
+                UNC_VF_VALID) {
+              port_map_in_run = true;
+              drv_ifval->vbr_if_val.valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID;
+              drv_ifval->valid[PFCDRV_IDX_VEXT_NAME_VBRIF] = UNC_VF_VALID;
+              uuu::upll_strncpy(drv_ifval->vex_name, drv_ifval1->vex_name,
+                                kMaxLenVnodeName+1);
+              drv_ifval->valid[PFCDRV_IDX_VEXTIF_NAME_VBRIF] = UNC_VF_VALID;
+              uuu::upll_strncpy(reinterpret_cast<char *>
+                                (drv_ifval->vex_if_name),
+                                drv_ifval1->vex_if_name,
+                                kMaxLenInterfaceName+1);
+              drv_ifval->valid[PFCDRV_IDX_VLINK_NAME_VBRIF] = UNC_VF_VALID;
+              uuu::upll_strncpy(reinterpret_cast<char *>
+                                (drv_ifval->vex_link_name),
+                                drv_ifval1->vex_link_name, kMaxLenVlinkName+1);
+            }
+          }
+          if (!port_map_in_run) {
+            UPLL_LOG_TRACE("Generate vexternal and vexternal if name");
+            std::string if_name = reinterpret_cast<const char *>
+                (reinterpret_cast<key_vbr_if*>(iokey->get_key())->if_name);
+            if (strlen(if_name.c_str()) >= 10) {
+              if_name.erase(10);
+            }
+
+            struct timeval _timeval;
+            struct timezone _timezone;
+            gettimeofday(&_timeval, &_timezone);
+
+            std::stringstream ss;
+            ss << if_name << _timeval.tv_sec << _timeval.tv_usec;
+            std::string unique_id = ss.str();
+            std::string vex_name("vx_");
+            vex_name += unique_id;
+            std::string vex_if_name("vi_");
+            vex_if_name += unique_id;
+            std::string vex_link_name("vl_");
+            vex_link_name += unique_id;
+
+            drv_ifval->vbr_if_val.valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID;
+            drv_ifval->valid[PFCDRV_IDX_VEXT_NAME_VBRIF] = UNC_VF_VALID;
+            uuu::upll_strncpy(drv_ifval->vex_name, vex_name.c_str(),
+                              kMaxLenVnodeName+1);
+
+            drv_ifval->valid[PFCDRV_IDX_VEXTIF_NAME_VBRIF] = UNC_VF_VALID;
+            uuu::upll_strncpy(reinterpret_cast<char *>
+                              (drv_ifval->vex_if_name),
+                              vex_if_name.c_str(), kMaxLenInterfaceName+1);
+
+            drv_ifval->valid[PFCDRV_IDX_VLINK_NAME_VBRIF] = UNC_VF_VALID;
+            uuu::upll_strncpy(reinterpret_cast<char *>
+                              (drv_ifval->vex_link_name),
+                              vex_link_name.c_str(), kMaxLenVlinkName+1);
+          }
+        }
+        port_map_val = &drv_ifval->vbr_if_val.portmap;
+        DELETE_IF_NOT_NULL(okey);
+        break;
+      }
+    case UNC_KT_VTEP_IF:
+      {
+        val_vtep_if *drv_ifval = reinterpret_cast<val_vtep_if *>
+            (GetVal(iokey));
+        if (!drv_ifval) {
+          UPLL_LOG_DEBUG("Invalid param");
+          return UPLL_RC_ERR_GENERIC;
+        }
+        drv_ifval->valid[UPLL_IDX_PORT_MAP_VTEPI] = UNC_VF_VALID;
+        port_map_val = &drv_ifval->portmap;
+        break;
+      }
+    case UNC_KT_VTUNNEL_IF:
+      {
+        val_vtunnel_if *drv_ifval = reinterpret_cast<val_vtunnel_if *>
+            (GetVal(iokey));
+        if (!drv_ifval) {
+          UPLL_LOG_DEBUG("Invalid param");
+          return UPLL_RC_ERR_GENERIC;
+        }
+        drv_ifval->valid[UPLL_IDX_PORT_MAP_VTNL_IF] = UNC_VF_VALID;
+        port_map_val = &drv_ifval->portmap;
+        break;
+      }
+    case UNC_KT_VUNK_IF:
+      break;
+    default:
+      UPLL_LOG_DEBUG("Unsupported keytype %d", ktype);
+      return UPLL_RC_ERR_GENERIC;
   }
   uint8_t rename = 0;
   controller_domain ctrlr_dom[2] = { { NULL, NULL }, { NULL, NULL } };
@@ -1458,7 +1693,7 @@ upll_rc_t VlinkMoMgr::ConverttoDriverPortMap(ConfigKeyVal *iokey,
   uppl_val_boundary_index index = kIdxBoundaryLogicalPortId1;
   GET_USER_DATA_FLAGS(iokey, rename);
 
-  upll_rc_t result_code = GetControllerDomainId(ikey, &ctrlr_dom[0]);
+  result_code = GetControllerDomainId(ikey, &ctrlr_dom[0]);
   if (UPLL_RC_SUCCESS != result_code)
     return result_code;
 
@@ -1469,55 +1704,75 @@ upll_rc_t VlinkMoMgr::ConverttoDriverPortMap(ConfigKeyVal *iokey,
     node_ctrlr = ctrlr_dom[1].ctrlr;
     node_dom = ctrlr_dom[1].domain;
   }
-  if (!node_ctrlr || !node_dom) {
+  if ((!node_ctrlr && (ktype != UNC_KT_VUNK_IF)) || !node_dom) {
     UPLL_LOG_DEBUG("Returning error\n");
     return UPLL_RC_ERR_GENERIC;
   }
-  if (!(strcmp(reinterpret_cast<const char *>(node_ctrlr),
-      reinterpret_cast<const char *>(boundary_val_data->controller_name1))) &&
-      !(strcmp(reinterpret_cast<const char *>(node_dom),
-      reinterpret_cast<const char *>(boundary_val_data->domain_name1)))) {
-      index = kIdxBoundaryLogicalPortId1;
-      port_id = reinterpret_cast<char *>(boundary_val_data->logical_port_id1);
+  if (!node_ctrlr && node_dom && (ktype == UNC_KT_VUNK_IF)) {
+    if (!(strcmp(reinterpret_cast<const char *>(node_dom),
+                 reinterpret_cast<const char *>
+                 (boundary_val_data->domain_name2)))
+        || (!(strcmp(reinterpret_cast<const char *>(node_dom),
+                     reinterpret_cast<const char *>
+                     (boundary_val_data->domain_name1))))) {
+      UPLL_LOG_DEBUG("Controller / Domain Match");
+    } else {
+      UPLL_LOG_DEBUG("Wrong Controller / domain \n");
+      return UPLL_RC_ERR_CFG_SEMANTIC;
+    }
+  } else if (!(strcmp(reinterpret_cast<const char *>(node_ctrlr),
+                      reinterpret_cast<const char *>
+                      (boundary_val_data->controller_name1))) &&
+             !(strcmp(reinterpret_cast<const char *>(node_dom),
+                      reinterpret_cast<const char *>
+                      (boundary_val_data->domain_name1)))) {
+    index = kIdxBoundaryLogicalPortId1;
+    port_id = reinterpret_cast<char *>(boundary_val_data->logical_port_id1);
   } else if (!(strcmp(reinterpret_cast<const char *>(node_ctrlr),
-      reinterpret_cast<const char *>(boundary_val_data->controller_name2))) &&
+                      reinterpret_cast<const char *>
+                      (boundary_val_data->controller_name2))) &&
              !(strcmp(reinterpret_cast<const char *>(node_dom),
-      reinterpret_cast<const char *>(boundary_val_data->domain_name2)))) {
-      index = kIdxBoundaryLogicalPortId2;
-      port_id = reinterpret_cast<char *>(boundary_val_data->logical_port_id2);
+                      reinterpret_cast<const char *>
+                      (boundary_val_data->domain_name2)))) {
+    index = kIdxBoundaryLogicalPortId2;
+    port_id = reinterpret_cast<char *>(boundary_val_data->logical_port_id2);
   } else {
-      UPLL_LOG_DEBUG("Wrong Controller / domain \n");
-      return UPLL_RC_ERR_CFG_SEMANTIC;
+    UPLL_LOG_DEBUG("Wrong Controller / domain \n");
+    return UPLL_RC_ERR_CFG_SEMANTIC;
   }
+  // Return as Vunknown Interface doesnt have portmap
+  if (ktype == UNC_KT_VUNK_IF)
+    return UPLL_RC_SUCCESS;
+
   if (boundary_val_data->valid[index] == UNC_VF_VALID) {
-      port_map_val->valid[UPLL_IDX_LOGICAL_PORT_ID_PM] = UNC_VF_VALID;
-      uuu::upll_strncpy(port_map_val->logical_port_id,
-              port_id, kMaxLenLogicalPortId+1);
+    port_map_val->valid[UPLL_IDX_LOGICAL_PORT_ID_PM] = UNC_VF_VALID;
+    uuu::upll_strncpy(port_map_val->logical_port_id,
+                      port_id, kMaxLenLogicalPortId+1);
   } else if (boundary_val_data->valid[index] == UNC_VF_VALID_NO_VALUE) {
-      port_map_val->valid[UPLL_IDX_LOGICAL_PORT_ID_PM] = UNC_VF_VALID_NO_VALUE;
-      uuu::upll_strncpy(port_map_val->logical_port_id, "\0", 1);
+    port_map_val->valid[UPLL_IDX_LOGICAL_PORT_ID_PM] = UNC_VF_VALID_NO_VALUE;
+    uuu::upll_strncpy(port_map_val->logical_port_id, "\0", 1);
   } else {
-      port_map_val->valid[UPLL_IDX_LOGICAL_PORT_ID_PM] = UNC_VF_INVALID;
+    port_map_val->valid[UPLL_IDX_LOGICAL_PORT_ID_PM] = UNC_VF_INVALID;
   }
   val_vlink *vlink_val = reinterpret_cast<val_vlink *>(GetVal(ikey));
   port_map_val->valid[UPLL_IDX_VLAN_ID_PM] =
-                                 vlink_val->valid[UPLL_IDX_VLAN_ID_VLNK];
+      vlink_val->valid[UPLL_IDX_VLAN_ID_VLNK];
   switch (vlink_val->valid[UPLL_IDX_VLAN_ID_VLNK]) {
-  case UNC_VF_VALID:
-    port_map_val->vlan_id = vlink_val->vlan_id;
-    if (port_map_val->vlan_id == 0xFFFF)
+    case UNC_VF_VALID:
+      port_map_val->vlan_id = vlink_val->vlan_id;
+      if (port_map_val->vlan_id == 0xFFFF)
+        port_map_val->tagged = UPLL_VLAN_UNTAGGED;
+      else
+        port_map_val->tagged = UPLL_VLAN_TAGGED;
+      port_map_val->valid[UPLL_IDX_TAGGED_PM] = UNC_VF_VALID;
+      break;
+    case UNC_VF_VALID_NO_VALUE:
+      port_map_val->vlan_id = 0;
       port_map_val->tagged = UPLL_VLAN_UNTAGGED;
-    else
-      port_map_val->tagged = UPLL_VLAN_TAGGED;
-    port_map_val->valid[UPLL_IDX_TAGGED_PM] = UNC_VF_VALID;
-    break;
-  case UNC_VF_VALID_NO_VALUE:
-    port_map_val->vlan_id = 0;
-    port_map_val->tagged = UPLL_VLAN_UNTAGGED;
-    port_map_val->valid[UPLL_IDX_TAGGED_PM] = UNC_VF_VALID;
-    break;
-  default:
-    break;
+      port_map_val->valid[UPLL_IDX_TAGGED_PM] = UNC_VF_VALID;
+      break;
+    default:
+      break;
   }
   return UPLL_RC_SUCCESS;
 }
@@ -1529,14 +1784,68 @@ upll_rc_t VlinkMoMgr::CheckIfMemberOfVlink(ConfigKeyVal *ck_vnif,
                                            vn_if_type &interface_type) {
   UPLL_FUNC_TRACE;
   uint8_t if_flag = 0;
-  if (!ck_vnif) {
+  upll_rc_t result_code = UPLL_RC_SUCCESS;
+  if (!ck_vnif || !(ck_vnif->get_key())) {
     UPLL_LOG_DEBUG("Invalid ck_vnif");
     return UPLL_RC_ERR_GENERIC;
   }
+  /* Retrive the interface info from vbr_if_tbl(with VTN and vExternal info)
+   * which is required to search in vlink_tbl */
+  if (ck_vnif->get_key_type() == UNC_KT_VBR_IF) {
+    MoMgrImpl *vbr_if_mgr = reinterpret_cast<MoMgrImpl *>
+        (const_cast<MoManager *>(
+                GetMoManager(UNC_KT_VBR_IF)));
+    key_vbr_if *err_key = reinterpret_cast<key_vbr_if *>(ck_vnif->get_key());
+    val_drv_vbr_if *drv_val = reinterpret_cast<val_drv_vbr_if *>
+        GetVal(ck_vnif);
+    if (vbr_if_mgr->IsValidKey(ck_vnif->get_key(),
+                               uudst::vbridge_interface::kDbiVbrName) &&
+        vbr_if_mgr->IsValidKey(ck_vnif->get_key(),
+                               uudst::vbridge_interface::kDbiIfName)) {
+      UPLL_LOG_DEBUG("Key is complete");
+    } else {
+      if (!drv_val) return UPLL_RC_ERR_NO_SUCH_INSTANCE;
+      if (drv_val->valid[PFCDRV_IDX_VEXT_NAME_VBRIF] == UNC_VF_VALID) {
+        ConfigKeyVal *ckv_drv_vbr_if = NULL;
+        result_code = vbr_if_mgr->GetChildConfigKey(ckv_drv_vbr_if, ck_vnif);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("GetChildConfigKey failed");
+          return result_code;
+        }
+        val_drv_vbr_if *valif = reinterpret_cast<val_drv_vbr_if *>
+            (ConfigKeyVal::Malloc(sizeof(val_drv_vbr_if)));
+        uuu::upll_strncpy(valif->vex_name, drv_val->vex_name,
+                          (kMaxLenVnodeName+1));
+        valif->valid[PFCDRV_IDX_VEXT_NAME_VBRIF] = UNC_VF_VALID;
+
+        ConfigVal *ck_val = new ConfigVal(IpctSt::kIpcStPfcdrvValVbrIf, valif);
+        ckv_drv_vbr_if->SetCfgVal(ck_val);
+        DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutFlag};
+        result_code = vbr_if_mgr->ReadConfigDB(ckv_drv_vbr_if,
+                                               dt_type, UNC_OP_READ,
+                                               dbop, dmi, MAINTBL);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("Interface not found");
+          delete ckv_drv_vbr_if;
+          return (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) ?
+              UPLL_RC_ERR_GENERIC : result_code;
+        }
+        key_vbr_if *drv_if_key = reinterpret_cast<key_vbr_if *>
+            (ckv_drv_vbr_if->get_key());
+        uuu::upll_strncpy(err_key->vbr_key.vbridge_name,
+                          drv_if_key->vbr_key.vbridge_name,
+                          kMaxLenVnodeName+1);
+        uuu::upll_strncpy(err_key->if_name,
+                          drv_if_key->if_name,
+                          kMaxLenInterfaceName+1);
+        delete ckv_drv_vbr_if;
+      }
+    }
+  }
   interface_type = kUnlinkedInterface;
   GET_USER_DATA_FLAGS(ck_vnif, if_flag);
   SET_USER_DATA_FLAGS(ck_vnif, kVlinkVnode1);
-  upll_rc_t result_code = GetVlinkKeyVal(ck_vnif, dt_type, ck_vlink, dmi);
+  result_code = GetVlinkKeyVal(ck_vnif, dt_type, ck_vlink, dmi);
   if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
     // check if the vBrIf is the second VnodeIf in VLINK TBL
     SET_USER_DATA_FLAGS(ck_vnif, kVlinkVnode2);
@@ -1550,19 +1859,19 @@ upll_rc_t VlinkMoMgr::CheckIfMemberOfVlink(ConfigKeyVal *ck_vnif,
   }
   /* the interface is not part of a boundary vlink */
   if (result_code != UPLL_RC_SUCCESS) {
-      if (ck_vlink) delete ck_vlink;
-      ck_vlink = NULL;
-      interface_type = kUnlinkedInterface;
+    if (ck_vlink) delete ck_vlink;
+    ck_vlink = NULL;
+    interface_type = kUnlinkedInterface;
   } else {
     if (!ck_vlink) {
-       UPLL_LOG_DEBUG("Invalid param");
-       return UPLL_RC_ERR_GENERIC;
+      UPLL_LOG_DEBUG("Invalid param");
+      return UPLL_RC_ERR_GENERIC;
     }
     uint8_t valid_boundary = reinterpret_cast<val_vlink *>(GetVal(ck_vlink))->
-                            valid[UPLL_IDX_BOUNDARY_NAME_VLNK];
+        valid[UPLL_IDX_BOUNDARY_NAME_VLNK];
     if (interface_type == kUnlinkedInterface) {
       interface_type = (valid_boundary)?
-                       kVlinkBoundaryNode2:kVlinkInternalNode2;
+          kVlinkBoundaryNode2:kVlinkInternalNode2;
     } else if (interface_type == kVlinkInternalNode1) {
       interface_type = (valid_boundary)? kVlinkBoundaryNode1: interface_type;
     } else {
@@ -1575,9 +1884,9 @@ upll_rc_t VlinkMoMgr::CheckIfMemberOfVlink(ConfigKeyVal *ck_vnif,
 
 
 upll_rc_t VlinkMoMgr::GetVlinkKeyVal(ConfigKeyVal *keyVal,
-                          upll_keytype_datatype_t dt_type,
-                                    ConfigKeyVal *&ck_vlink,
-                                          DalDmlIntf *dmi) {
+                                     upll_keytype_datatype_t dt_type,
+                                     ConfigKeyVal *&ck_vlink,
+                                     DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   uint8_t mem_vlink = 0;
   if (!keyVal) {
@@ -1585,40 +1894,73 @@ upll_rc_t VlinkMoMgr::GetVlinkKeyVal(ConfigKeyVal *keyVal,
     return UPLL_RC_ERR_GENERIC;
   }
   val_vlink *link_val = reinterpret_cast<val_vlink *>
-                                  (ConfigKeyVal::Malloc(sizeof(val_vlink)));
+      (ConfigKeyVal::Malloc(sizeof(val_vlink)));
   upll_rc_t res_code = UPLL_RC_SUCCESS;
-  key_vbr_if *vbr_key_if = reinterpret_cast<key_vbr_if *>(keyVal->get_key());
-  if (!vbr_key_if) {
-    UPLL_LOG_ERROR("Invalid key");
-    free(link_val);
-    return UPLL_RC_ERR_GENERIC;
-  }
-  GET_USER_DATA_FLAGS(keyVal, mem_vlink);
-  mem_vlink &= VIF_TYPE;
-  if (mem_vlink & kVlinkVnode2) {
-    uuu::upll_strncpy(link_val->vnode2_name,
-                     vbr_key_if->vbr_key.vbridge_name,
-                    (kMaxLenVnodeName + 1));
-    uuu::upll_strncpy(link_val->vnode2_ifname,
-                     vbr_key_if->if_name, (kMaxLenVnodeName + 1));
-    link_val->valid[UPLL_IDX_VNODE2_NAME_VLNK] = UNC_VF_VALID;
-    link_val->valid[UPLL_IDX_VNODE2_IF_NAME_VLNK] = UNC_VF_VALID;
-    link_val->valid[UPLL_IDX_VNODE1_NAME_VLNK] = UNC_VF_INVALID;
-    link_val->valid[UPLL_IDX_VNODE1_IF_NAME_VLNK] = UNC_VF_INVALID;
-  } else  {
-    uuu::upll_strncpy(link_val->vnode1_name,
-                      vbr_key_if->vbr_key.vbridge_name,
-                    (kMaxLenVnodeName + 1));
-    uuu::upll_strncpy(link_val->vnode1_ifname,
-                      vbr_key_if->if_name, (kMaxLenVnodeName + 1));
-    link_val->valid[UPLL_IDX_VNODE1_NAME_VLNK] = UNC_VF_VALID;
-    link_val->valid[UPLL_IDX_VNODE1_IF_NAME_VLNK] = UNC_VF_VALID;
-    link_val->valid[UPLL_IDX_VNODE2_NAME_VLNK] = UNC_VF_INVALID;
-    link_val->valid[UPLL_IDX_VNODE2_IF_NAME_VLNK] = UNC_VF_INVALID;
+  unc_key_type_t keytype = keyVal->get_key_type();
+
+  /* VlanmapOnBoundary: Added vlanmap check */
+  if (keytype != UNC_KT_VBR_VLANMAP) {
+    key_vbr_if *vbr_key_if = reinterpret_cast<key_vbr_if *>(keyVal->get_key());
+    if (!vbr_key_if) {
+      UPLL_LOG_ERROR("Invalid key");
+      free(link_val);
+      return UPLL_RC_ERR_GENERIC;
+    }
+    GET_USER_DATA_FLAGS(keyVal, mem_vlink);
+    mem_vlink &= VIF_TYPE;
+    if (mem_vlink & 0x50) {
+      uuu::upll_strncpy(link_val->vnode2_name,
+                        vbr_key_if->vbr_key.vbridge_name,
+                        (kMaxLenVnodeName + 1));
+      uuu::upll_strncpy(link_val->vnode2_ifname,
+                        vbr_key_if->if_name, (kMaxLenVnodeName + 1));
+      link_val->valid[UPLL_IDX_VNODE2_NAME_VLNK] = UNC_VF_VALID;
+      link_val->valid[UPLL_IDX_VNODE2_IF_NAME_VLNK] = UNC_VF_VALID;
+      link_val->valid[UPLL_IDX_VNODE1_NAME_VLNK] = UNC_VF_INVALID;
+      link_val->valid[UPLL_IDX_VNODE1_IF_NAME_VLNK] = UNC_VF_INVALID;
+    } else  {
+      uuu::upll_strncpy(link_val->vnode1_name,
+                        vbr_key_if->vbr_key.vbridge_name,
+                        (kMaxLenVnodeName + 1));
+      uuu::upll_strncpy(link_val->vnode1_ifname,
+                        vbr_key_if->if_name, (kMaxLenVnodeName + 1));
+      link_val->valid[UPLL_IDX_VNODE1_NAME_VLNK] = UNC_VF_VALID;
+      link_val->valid[UPLL_IDX_VNODE1_IF_NAME_VLNK] = UNC_VF_VALID;
+      link_val->valid[UPLL_IDX_VNODE2_NAME_VLNK] = UNC_VF_INVALID;
+      link_val->valid[UPLL_IDX_VNODE2_IF_NAME_VLNK] = UNC_VF_INVALID;
+    }
+    /* VlanmapOnBoundary: changes*/
+  } else {
+    key_vlan_map *vlanmap_key = reinterpret_cast<key_vlan_map *>
+        (keyVal->get_key());
+    if (!vlanmap_key) {
+      UPLL_LOG_ERROR("Invalid key");
+      free(link_val);
+      return UPLL_RC_ERR_GENERIC;
+    }
+    GET_USER_DATA_FLAGS(keyVal, mem_vlink);
+    mem_vlink &= VIF_TYPE;
+    if (mem_vlink & kVlinkVnode2) {
+      uuu::upll_strncpy(link_val->vnode2_name,
+                        vlanmap_key->vbr_key.vbridge_name,
+                        (kMaxLenVnodeName + 1));
+      link_val->valid[UPLL_IDX_VNODE2_NAME_VLNK] = UNC_VF_VALID;
+      link_val->valid[UPLL_IDX_VNODE1_NAME_VLNK] = UNC_VF_INVALID;
+      link_val->valid[UPLL_IDX_VNODE1_IF_NAME_VLNK] = UNC_VF_INVALID;
+      link_val->valid[UPLL_IDX_VNODE2_IF_NAME_VLNK] = UNC_VF_INVALID;
+    } else  {
+      uuu::upll_strncpy(link_val->vnode1_name,
+                        vlanmap_key->vbr_key.vbridge_name,
+                        (kMaxLenVnodeName + 1));
+      link_val->valid[UPLL_IDX_VNODE1_NAME_VLNK] = UNC_VF_VALID;
+      link_val->valid[UPLL_IDX_VNODE2_NAME_VLNK] = UNC_VF_INVALID;
+      link_val->valid[UPLL_IDX_VNODE2_IF_NAME_VLNK] = UNC_VF_INVALID;
+      link_val->valid[UPLL_IDX_VNODE2_IF_NAME_VLNK] = UNC_VF_INVALID;
+    }
   }
 
   DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
-                   kOpInOutFlag | kOpInOutCtrlr | kOpInOutDomain };
+    kOpInOutFlag | kOpInOutCtrlr | kOpInOutDomain };
 
   /* get vlink key from if key */
   upll_rc_t result_code = GetChildConfigKey(ck_vlink, keyVal);
@@ -1629,7 +1971,7 @@ upll_rc_t VlinkMoMgr::GetVlinkKeyVal(ConfigKeyVal *keyVal,
   }
   ck_vlink->AppendCfgVal(IpctSt::kIpcStValVlink, link_val);
   res_code = ReadConfigDB(ck_vlink, dt_type, UNC_OP_READ,
-                                       dbop, dmi, MAINTBL);
+                          dbop, dmi, MAINTBL);
   UPLL_LOG_TRACE(" Vlink ReadConfigDB After %d", res_code);
   return res_code;
 }
@@ -1638,8 +1980,10 @@ upll_rc_t VlinkMoMgr::GetVlinkKeyVal(ConfigKeyVal *keyVal,
  *  Based on the key type the bind info will pass
  */
 
-bool VlinkMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo,
-                                      int &nattr, MoMgrTables tbl) {
+bool VlinkMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type,
+                                      BindInfo *&binfo,
+                                      int &nattr,
+                                      MoMgrTables tbl) {
   /* Main Table or rename table only update */
   if (MAINTBL == tbl) {
     nattr = NUM_KEY_MAIN_TBL_;
@@ -1661,60 +2005,60 @@ upll_rc_t VlinkMoMgr::GetValid(void *val,
     switch (indx) {
       case uudst::vlink::kDbiOperStatus:
         valid = &(reinterpret_cast<val_vlink *>(val))->
-                            valid[UPLL_IDX_OPER_STATUS_VLNKS];
-          break;
+            valid[UPLL_IDX_OPER_STATUS_VLNKS];
+        break;
       case uudst::vlink::kDbiDownCount:
         valid = NULL;
-          break;
+        break;
       case uudst::vlink::kDbiAdminStatus:
         valid = &(reinterpret_cast<val_vlink_t *>(val))->
-                            valid[UPLL_IDX_ADMIN_STATUS_VLNK];
+            valid[UPLL_IDX_ADMIN_STATUS_VLNK];
         break;
       case uudst::vlink::kDbiVnode1Name:
         valid = &(reinterpret_cast<val_vlink_t *>(val))->
-                            valid[UPLL_IDX_VNODE1_NAME_VLNK];
+            valid[UPLL_IDX_VNODE1_NAME_VLNK];
         break;
       case uudst::vlink::kDbiVnode1Ifname:
         valid = &(reinterpret_cast<val_vlink_t *>(val))->
-                            valid[UPLL_IDX_VNODE1_IF_NAME_VLNK];
+            valid[UPLL_IDX_VNODE1_IF_NAME_VLNK];
         break;
       case uudst::vlink::kDbiVnode2Name:
         valid = &(reinterpret_cast<val_vlink_t *>(val))->
-                            valid[UPLL_IDX_VNODE2_NAME_VLNK];
+            valid[UPLL_IDX_VNODE2_NAME_VLNK];
         break;
       case uudst::vlink::kDbiVnode2Ifname:
         valid = &(reinterpret_cast<val_vlink_t *>(val))->
-                            valid[UPLL_IDX_VNODE2_IF_NAME_VLNK];
+            valid[UPLL_IDX_VNODE2_IF_NAME_VLNK];
         break;
       case uudst::vlink::kDbiBoundaryName:
         valid = &(reinterpret_cast<val_vlink_t *>(val))->
-                            valid[UPLL_IDX_BOUNDARY_NAME_VLNK];
+            valid[UPLL_IDX_BOUNDARY_NAME_VLNK];
         break;
       case uudst::vlink::kDbiVlanid:
         valid = &(reinterpret_cast<val_vlink_t *>(val))->
-                            valid[UPLL_IDX_VLAN_ID_VLNK];
+            valid[UPLL_IDX_VLAN_ID_VLNK];
         break;
       case uudst::vlink::kDbiDesc:
         valid = &(reinterpret_cast<val_vlink_t *>(val))->
-                            valid[UPLL_IDX_DESCRIPTION_VLNK];
+            valid[UPLL_IDX_DESCRIPTION_VLNK];
         break;
       default:
         return UPLL_RC_ERR_GENERIC;
     }
   } else if (tbl == RENAMETBL) {
     switch (indx) {
-       case uudst::vlink_rename::kDbiCtrlrVtnName:
-         valid = &(reinterpret_cast<val_rename_vnode *>(val))->
-                            valid[UPLL_CTRLR_VTN_NAME_VALID];
-         break;
-       case uudst::vlink_rename::kDbiCtrlrVlinkName:
-         valid = &(reinterpret_cast<val_rename_vnode *>(val))->
-                            valid[UPLL_CTRLR_VNODE_NAME_VALID];
-
-         break;
-       default:
-         break;
-     }
+      case uudst::vlink_rename::kDbiCtrlrVtnName:
+        valid = &(reinterpret_cast<val_rename_vnode *>(val))->
+            valid[UPLL_CTRLR_VTN_NAME_VALID];
+        break;
+      case uudst::vlink_rename::kDbiCtrlrVlinkName:
+        valid = &(reinterpret_cast<val_rename_vnode *>(val))->
+            valid[UPLL_CTRLR_VNODE_NAME_VALID];
+
+        break;
+      default:
+        break;
+    }
   }
   return UPLL_RC_SUCCESS;
 }
@@ -1727,8 +2071,8 @@ bool VlinkMoMgr::IsValidKey(void *key, uint64_t index) {
     case uudst::vlink::kDbiVtnName:
     case uudst::vnode_rename::kDbiUncVtnName:
       ret_val = ValidateKey(
-                          reinterpret_cast<char *>(vlink_key->vtn_key.vtn_name),
-                          kMinLenVtnName, kMaxLenVtnName);
+          reinterpret_cast<char *>(vlink_key->vtn_key.vtn_name),
+          kMinLenVtnName, kMaxLenVtnName);
       if (ret_val != UPLL_RC_SUCCESS) {
         UPLL_LOG_TRACE("VTN Name is not valid(%d)", ret_val);
         return false;
@@ -1757,21 +2101,21 @@ upll_rc_t VlinkMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   key_vlink_t * vlink_key = NULL;
   if (okey && okey->get_key()) {
-     vlink_key = reinterpret_cast<key_vlink_t *>
-                 (okey->get_key());
+    vlink_key = reinterpret_cast<key_vlink_t *>
+        (okey->get_key());
   } else {
-     vlink_key = reinterpret_cast<key_vlink *>
-                          (ConfigKeyVal::Malloc(sizeof(key_vlink)));
+    vlink_key = reinterpret_cast<key_vlink *>
+        (ConfigKeyVal::Malloc(sizeof(key_vlink)));
   }
   unc_key_type_t ktype;
 
   void *pkey;
   if (parent_key == NULL) {
-    if (!okey) 
-    okey = new ConfigKeyVal(UNC_KT_VLINK, IpctSt::kIpcStKeyVlink, vlink_key,
-                            NULL);
+    if (!okey)
+      okey = new ConfigKeyVal(UNC_KT_VLINK, IpctSt::kIpcStKeyVlink, vlink_key,
+                              NULL);
     else if (okey->get_key() != vlink_key)
-      okey->SetKey(IpctSt::kIpcStKeyVlink,vlink_key);
+      okey->SetKey(IpctSt::kIpcStKeyVlink, vlink_key);
     return (okey)?UPLL_RC_SUCCESS:UPLL_RC_ERR_GENERIC;
   } else {
     pkey = parent_key->get_key();
@@ -1785,67 +2129,80 @@ upll_rc_t VlinkMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
   switch (ktype) {
     case UNC_KT_VTN:
       uuu::upll_strncpy(vlink_key->vtn_key.vtn_name,
-             reinterpret_cast<key_vtn *>(pkey)->vtn_name,
-             (kMaxLenVtnName+1) );
+                        reinterpret_cast<key_vtn *>(pkey)->vtn_name,
+                        (kMaxLenVtnName+1) );
       break;
     case UNC_KT_VBRIDGE:
       uuu::upll_strncpy(vlink_key->vtn_key.vtn_name,
-             reinterpret_cast<key_vbr *>(pkey)->vtn_key.vtn_name,
-             (kMaxLenVtnName+1));
+                        reinterpret_cast<key_vbr *>(pkey)->vtn_key.vtn_name,
+                        (kMaxLenVtnName+1));
       break;
     case UNC_KT_VBR_IF:
       uuu::upll_strncpy(vlink_key->vtn_key.vtn_name,
-             reinterpret_cast<key_vbr_if *>(pkey)->vbr_key.vtn_key.vtn_name,
-             (kMaxLenVtnName+1));
+                        reinterpret_cast<key_vbr_if *>(pkey)->
+                        vbr_key.vtn_key.vtn_name,
+                        (kMaxLenVtnName+1));
       break;
     case UNC_KT_VROUTER:
       uuu::upll_strncpy(vlink_key->vtn_key.vtn_name,
-             reinterpret_cast<key_vrt *>(pkey)->vtn_key.vtn_name,
-             (kMaxLenVtnName+1));
+                        reinterpret_cast<key_vrt *>(pkey)->vtn_key.vtn_name,
+                        (kMaxLenVtnName+1));
       break;
     case UNC_KT_VRT_IF:
       uuu::upll_strncpy(vlink_key->vtn_key.vtn_name,
-             reinterpret_cast<key_vrt_if *>(pkey)->vrt_key.vtn_key.vtn_name,
-             (kMaxLenVtnName+1));
+                        reinterpret_cast<key_vrt_if *>
+                        (pkey)->vrt_key.vtn_key.vtn_name,
+                        (kMaxLenVtnName+1));
       break;
     case UNC_KT_VLINK:
       uuu::upll_strncpy(vlink_key->vtn_key.vtn_name,
-             reinterpret_cast<key_vlink *>(pkey)->vtn_key.vtn_name,
-             (kMaxLenVtnName+1));
+                        reinterpret_cast<key_vlink *>(pkey)->vtn_key.vtn_name,
+                        (kMaxLenVtnName+1));
       uuu::upll_strncpy(vlink_key->vlink_name,
-             reinterpret_cast<key_vlink *>(pkey)->vlink_name,
-             (kMaxLenVlinkName+1));
+                        reinterpret_cast<key_vlink *>(pkey)->vlink_name,
+                        (kMaxLenVlinkName+1));
       break;
     case UNC_KT_VTEP:
       uuu::upll_strncpy(vlink_key->vtn_key.vtn_name,
-             reinterpret_cast<key_vtep *>(pkey)->vtn_key.vtn_name,
-             (kMaxLenVtnName+1));
+                        reinterpret_cast<key_vtep *>(pkey)->vtn_key.vtn_name,
+                        (kMaxLenVtnName+1));
       break;
     case UNC_KT_VTEP_IF:
       uuu::upll_strncpy(vlink_key->vtn_key.vtn_name,
-             reinterpret_cast<key_vtep_if *>(pkey)->vtep_key.vtn_key.vtn_name,
-              (kMaxLenVtnName+1));
+                        reinterpret_cast<key_vtep_if *>
+                        (pkey)->vtep_key.vtn_key.vtn_name,
+                        (kMaxLenVtnName+1));
       break;
     case UNC_KT_VTUNNEL:
       uuu::upll_strncpy(vlink_key->vtn_key.vtn_name,
-             reinterpret_cast<key_vtunnel *>(pkey)->vtn_key.vtn_name,
-              (kMaxLenVtnName+1));
+                        reinterpret_cast<key_vtunnel *>
+                        (pkey)->vtn_key.vtn_name,
+                        (kMaxLenVtnName+1));
       break;
     case UNC_KT_VTUNNEL_IF:
       uuu::upll_strncpy(vlink_key->vtn_key.vtn_name,
-             reinterpret_cast<key_vtunnel_if *>
-              (pkey)->vtunnel_key.vtn_key.vtn_name,
-              (kMaxLenVtnName+1));
+                        reinterpret_cast<key_vtunnel_if *>
+                        (pkey)->vtunnel_key.vtn_key.vtn_name,
+                        (kMaxLenVtnName+1));
       break;
     case UNC_KT_VUNKNOWN:
       uuu::upll_strncpy(vlink_key->vtn_key.vtn_name,
-             reinterpret_cast<key_vunknown *>(pkey)->vtn_key.vtn_name,
-              (kMaxLenVtnName+1));
+                        reinterpret_cast<key_vunknown *>
+                        (pkey)->vtn_key.vtn_name,
+                        (kMaxLenVtnName+1));
       break;
     case UNC_KT_VUNK_IF:
       uuu::upll_strncpy(vlink_key->vtn_key.vtn_name,
-             reinterpret_cast<key_vunk_if *>(pkey)->vunk_key.vtn_key.vtn_name,
-              (kMaxLenVtnName+1));
+                        reinterpret_cast<key_vunk_if *>
+                        (pkey)->vunk_key.vtn_key.vtn_name,
+                        (kMaxLenVtnName+1));
+      break;
+      /* VlanmapOnBoundary: Added vlanmap case */
+    case UNC_KT_VBR_VLANMAP:
+      uuu::upll_strncpy(vlink_key->vtn_key.vtn_name,
+                        reinterpret_cast<key_vlan_map_t *>
+                        (pkey)->vbr_key.vtn_key.vtn_name,
+                        (kMaxLenVtnName+1));
       break;
     default:
       if (!okey || !(okey->get_key()))
@@ -1854,14 +2211,14 @@ upll_rc_t VlinkMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
   }
   if (!okey)
     okey = new ConfigKeyVal(UNC_KT_VLINK, IpctSt::kIpcStKeyVlink, vlink_key,
-                          NULL);
+                            NULL);
   else if (okey->get_key() != vlink_key)
-    okey->SetKey(IpctSt::kIpcStKeyVlink,vlink_key);
+    okey->SetKey(IpctSt::kIpcStKeyVlink, vlink_key);
   if (okey == NULL) {
     free(vlink_key);
     result_code = UPLL_RC_ERR_GENERIC;
   } else {
-     SET_USER_DATA(okey, parent_key);
+    SET_USER_DATA(okey, parent_key);
   }
   return result_code;
 }
@@ -1885,16 +2242,17 @@ upll_rc_t VlinkMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
   unc_key_type_t ikey_type = ikey->get_key_type();
 
   if (ikey_type != UNC_KT_VLINK) return UPLL_RC_ERR_GENERIC;
-  void *pkey = (ikey) ? ikey->get_key() : NULL;
+  void *pkey = ikey->get_key();
   if (!pkey) return UPLL_RC_ERR_GENERIC;
   key_vtn *vtn_key = reinterpret_cast<key_vtn *>(
-                 ConfigKeyVal::Malloc(sizeof(key_vtn)));
+      ConfigKeyVal::Malloc(sizeof(key_vtn)));
   uuu::upll_strncpy(vtn_key->vtn_name,
-         reinterpret_cast<key_vlink *>(pkey)->vtn_key.vtn_name,
-          (kMaxLenVtnName+1));
+                    reinterpret_cast<key_vlink *>(pkey)->vtn_key.vtn_name,
+                    (kMaxLenVtnName+1));
   okey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, vtn_key, NULL);
-  if (okey == NULL) result_code = UPLL_RC_ERR_GENERIC;
-  else SET_USER_DATA(okey, ikey);
+  if (okey == NULL) {
+    result_code = UPLL_RC_ERR_GENERIC;
+  } else { SET_USER_DATA(okey, ikey);}
   return result_code;
 }
 
@@ -1915,14 +2273,14 @@ upll_rc_t VlinkMoMgr::AllocVal(ConfigVal *&ck_val,
       }
       if (dt_type == UPLL_DT_STATE) {
         val = reinterpret_cast<void *>(
-              ConfigKeyVal::Malloc(sizeof(val_db_vlink_st)));
+            ConfigKeyVal::Malloc(sizeof(val_db_vlink_st)));
         ConfigVal *ck_nxtval = new ConfigVal(IpctSt::kIpcStValVlinkSt, val);
         ck_val->AppendCfgVal(ck_nxtval);
       }
       break;
     case RENAMETBL:
       val = reinterpret_cast<void *>(
-           ConfigKeyVal::Malloc(sizeof(val_db_rename_vlink)));
+          ConfigKeyVal::Malloc(sizeof(val_db_rename_vlink)));
       ck_val = new ConfigVal(IpctSt::kIpcInvalidStNum, val);
       break;
     default:
@@ -1946,7 +2304,7 @@ upll_rc_t VlinkMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
         return UPLL_RC_ERR_GENERIC;
       }
       val_vlink *vlink_val = reinterpret_cast<val_vlink *>
-                                (ConfigKeyVal::Malloc(sizeof(val_vlink)));
+          (ConfigKeyVal::Malloc(sizeof(val_vlink)));
       memcpy(vlink_val, ival, sizeof(val_vlink));
       tmp1 = new ConfigVal(IpctSt::kIpcStValVlink, vlink_val);
     } else if (tbl == RENAMETBL) {
@@ -1954,16 +2312,16 @@ upll_rc_t VlinkMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
       ConfigVal *ck_v = req->get_cfg_val();
       if (ck_v->get_st_num() == IpctSt::kIpcInvalidStNum) {
         val_db_rename_vlink *ival = reinterpret_cast<val_db_rename_vlink *>
-                                                             (GetVal(req));
+            (GetVal(req));
         rename_val = reinterpret_cast<void *>
-                   (ConfigKeyVal::Malloc(sizeof(val_db_rename_vlink)));
+            (ConfigKeyVal::Malloc(sizeof(val_db_rename_vlink)));
         memcpy(rename_val, ival, sizeof(val_db_rename_vlink));
         tmp1 = new ConfigVal(IpctSt::kIpcInvalidStNum, rename_val);
       } else {
         val_rename_vlink *ival = reinterpret_cast<val_rename_vlink *>
-                                                     (GetVal(req));
+            (GetVal(req));
         rename_val = reinterpret_cast<void *>(
-                 ConfigKeyVal::Malloc(sizeof(val_rename_vlink)));
+            ConfigKeyVal::Malloc(sizeof(val_rename_vlink)));
         memcpy(rename_val, ival, sizeof(val_rename_vlink));
         tmp1 = new ConfigVal(IpctSt::kIpcStValRenameVlink, rename_val);
       }
@@ -1973,9 +2331,9 @@ upll_rc_t VlinkMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
   if (tmp) {
     if (tbl == MAINTBL) {
       val_db_vlink_st *ival = reinterpret_cast<val_db_vlink_st *>
-                                              (tmp->get_val());
+          (tmp->get_val());
       val_db_vlink_st *val_db_vlink = reinterpret_cast<val_db_vlink_st *>
-                       (ConfigKeyVal::Malloc(sizeof(val_db_vlink_st)));
+          (ConfigKeyVal::Malloc(sizeof(val_db_vlink_st)));
       memcpy(val_db_vlink, ival, sizeof(val_db_vlink_st));
       ConfigVal *tmp2 = new ConfigVal(IpctSt::kIpcStValVlinkSt, val_db_vlink);
       tmp1->AppendCfgVal(tmp2);
@@ -1984,7 +2342,7 @@ upll_rc_t VlinkMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
   void *tkey = (req != NULL) ? (req)->get_key() : NULL;
   key_vlink *ikey = reinterpret_cast<key_vlink *>(tkey);
   key_vlink *vlink_key = reinterpret_cast<key_vlink *>
-                                 (ConfigKeyVal::Malloc(sizeof(key_vlink)));
+      (ConfigKeyVal::Malloc(sizeof(key_vlink)));
   memcpy(vlink_key, ikey, sizeof(key_vlink));
   okey = new ConfigKeyVal(UNC_KT_VLINK, IpctSt::kIpcStKeyVlink, vlink_key,
                           tmp1);
@@ -2006,13 +2364,13 @@ upll_rc_t VlinkMoMgr::GetRenamedUncKey(ConfigKeyVal *ikey,
   ConfigKeyVal *unc_key = NULL;
   DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutNone };
   val_db_rename_vlink *rename_vlink = reinterpret_cast<val_db_rename_vlink *>
-                   (ConfigKeyVal::Malloc(sizeof(val_db_rename_vlink)));
+      (ConfigKeyVal::Malloc(sizeof(val_db_rename_vlink)));
   key_vlink *ctrlr_key = reinterpret_cast<key_vlink *>(ikey->get_key());
   rename_vlink->valid[UPLL_CTRLR_VTN_NAME_VALID] = UNC_VF_INVALID;
   rename_vlink->valid[UPLL_CTRLR_VNODE_NAME_VALID] = UNC_VF_INVALID;
   upll_rc_t ret_val = ValidateKey(
-                        reinterpret_cast<char *>(ctrlr_key->vtn_key.vtn_name),
-                        kMinLenVtnName, kMaxLenVtnName);
+      reinterpret_cast<char *>(ctrlr_key->vtn_key.vtn_name),
+      kMinLenVtnName, kMaxLenVtnName);
   if (ret_val == UPLL_RC_SUCCESS)  {
     uuu::upll_strncpy(rename_vlink->ctrlr_vtn_name,
                       ctrlr_key->vtn_key.vtn_name, (kMaxLenVtnName+1));
@@ -2038,21 +2396,21 @@ upll_rc_t VlinkMoMgr::GetRenamedUncKey(ConfigKeyVal *ikey,
 
   unc_key->AppendCfgVal(IpctSt::kIpcInvalidStNum, rename_vlink);
   result_code = ReadConfigDB(unc_key, dt_type, UNC_OP_READ, dbop, dmi,
-                                       RENAMETBL);
+                             RENAMETBL);
   if (result_code == UPLL_RC_SUCCESS) {
     key_vlink *vlink_key = reinterpret_cast<key_vlink *>(unc_key->get_key());
     if (strcmp(reinterpret_cast<const char *>(ctrlr_key->vtn_key.vtn_name),
-              reinterpret_cast<const char *>(vlink_key->vtn_key.vtn_name))) {
+               reinterpret_cast<const char *>(vlink_key->vtn_key.vtn_name))) {
       uuu::upll_strncpy(ctrlr_key->vtn_key.vtn_name,
-             vlink_key->vtn_key.vtn_name, (kMaxLenVtnName+1));
-//      rename |= VTN_RENAME;
+                        vlink_key->vtn_key.vtn_name, (kMaxLenVtnName+1));
+      //      rename |= VTN_RENAME;
     }
     if (strcmp(reinterpret_cast<const char *>(ctrlr_key->vlink_name),
                reinterpret_cast<const char *>(vlink_key->vlink_name))) {
       uuu::upll_strncpy(reinterpret_cast<char *>(ctrlr_key->vlink_name),
-             reinterpret_cast<const char *>(vlink_key->vlink_name),
-              (kMaxLenVtnName+1));
-//      rename |= VN_RENAME;
+                        reinterpret_cast<const char *>(vlink_key->vlink_name),
+                        (kMaxLenVtnName+1));
+      //      rename |= VN_RENAME;
     }
     SET_USER_DATA(ikey, unc_key);
   }
@@ -2067,7 +2425,7 @@ upll_rc_t VlinkMoMgr::GetRenamedControllerKey(ConfigKeyVal *ikey,
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   UPLL_LOG_DEBUG("Test : Controller %s Domain %s",
-                  ctrlr_dom->ctrlr, ctrlr_dom->domain);
+                 ctrlr_dom->ctrlr, ctrlr_dom->domain);
   uint8_t rename = 1, val_rename = 0, vnode_rename = 0;
   ConfigKeyVal *okey = NULL;
   for (int i = 0; i < 2; i++) {
@@ -2091,9 +2449,9 @@ upll_rc_t VlinkMoMgr::GetRenamedControllerKey(ConfigKeyVal *ikey,
   ctrlr_dom_dup.ctrlr = NULL;
   ctrlr_dom_dup.domain = NULL;
   uuu::upll_strncpy(ctrlr_dom_dup.ctrlr, ctrlr_dom->ctrlr,
-                   (kMaxLenCtrlrId + 1));
+                    (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(ctrlr_dom_dup.domain, ctrlr_dom->domain,
-                   (kMaxLenDomainId + 1));
+                    (kMaxLenDomainId + 1));
 #endif
   val_vlink_t *val = reinterpret_cast<val_vlink_t *>(GetVal(ikey));
   if (!val) {
@@ -2105,9 +2463,10 @@ upll_rc_t VlinkMoMgr::GetRenamedControllerKey(ConfigKeyVal *ikey,
   okey = NULL;
   if (val_rename) {
     MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager*>
-                                              (GetMoManager(UNC_KT_VBRIDGE)));
+                                                   (GetMoManager
+                                                    (UNC_KT_VBRIDGE)));
     if (!mgr) {
-     return UPLL_RC_ERR_GENERIC;
+      return UPLL_RC_ERR_GENERIC;
     }
     UPLL_LOG_TRACE("The Vnode RenameFlag is %d", val_rename);
     if (val_rename & 0x04) { /* vnode renamed*/
@@ -2115,19 +2474,19 @@ upll_rc_t VlinkMoMgr::GetRenamedControllerKey(ConfigKeyVal *ikey,
       SET_USER_DATA_FLAGS(ikey->get_cfg_val(), vnode_rename);
       result_code =  mgr->GetChildConfigKey(okey, ikey);
       if (UPLL_RC_SUCCESS != result_code)
-           return result_code;
+        return result_code;
       result_code =  mgr->GetRenamedControllerKey(okey, dt_type,
-                                              dmi, ctrlr_dom);
+                                                  dmi, ctrlr_dom);
       if (UPLL_RC_SUCCESS == result_code) {
         UPLL_LOG_TRACE("The ConfigKey is %s", (okey->ToStrAll()).c_str());
         UPLL_LOG_TRACE("The controller vnode name is %s",
-                          reinterpret_cast<key_vbr_t *>(
-                          okey->get_key())->vbridge_name);
+                       reinterpret_cast<key_vbr_t *>(
+                           okey->get_key())->vbridge_name);
         uuu::upll_strncpy(val->vnode1_name, reinterpret_cast<key_vbr_t *>(
-                          okey->get_key())->vbridge_name, (kMaxLenVnodeName+1));
+                okey->get_key())->vbridge_name, (kMaxLenVnodeName+1));
       } else {
         UPLL_LOG_DEBUG("GetRenamedControllerKey failed. Result : %d",
-                          result_code);
+                       result_code);
         delete okey;
         return result_code;
       }
@@ -2137,32 +2496,33 @@ upll_rc_t VlinkMoMgr::GetRenamedControllerKey(ConfigKeyVal *ikey,
     okey = NULL;
     UPLL_LOG_TRACE("The Vnode RenameFlag is %d", val_rename);
     if (val_rename & 0x08)  {
-       MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager*>
-                                              (GetMoManager(UNC_KT_VROUTER)));
-       if (!mgr) {
-          return UPLL_RC_ERR_GENERIC;
-       }
+      MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager*>
+                                                     (GetMoManager
+                                                      (UNC_KT_VROUTER)));
+      if (!mgr) {
+        return UPLL_RC_ERR_GENERIC;
+      }
       vnode_rename =  0x40;
       SET_USER_DATA_FLAGS(ikey->get_cfg_val(), vnode_rename);
 
       result_code =  mgr->GetChildConfigKey(okey, ikey);
       if (UPLL_RC_SUCCESS != result_code)
-           return result_code;
+        return result_code;
       UPLL_LOG_DEBUG("Test : Controller %s Domain %s",
-                      ctrlr_dom->ctrlr, ctrlr_dom->domain);
+                     ctrlr_dom->ctrlr, ctrlr_dom->domain);
       result_code =  mgr->GetRenamedControllerKey(okey, dt_type,
-                                            dmi, ctrlr_dom);
+                                                  dmi, ctrlr_dom);
       if (UPLL_RC_SUCCESS == result_code) {
-         UPLL_LOG_TRACE("The ConfigKey is %s", (okey->ToStrAll()).c_str());
-         UPLL_LOG_TRACE("The controller vnode name is %s",
-                         reinterpret_cast<key_vrt_t *>(
-                         okey->get_key())->vrouter_name);
-         uuu::upll_strncpy(val->vnode2_name, reinterpret_cast<key_vrt_t *>(
-                           okey->get_key())->vrouter_name,
-                          (kMaxLenVnodeName+1));
+        UPLL_LOG_TRACE("The ConfigKey is %s", (okey->ToStrAll()).c_str());
+        UPLL_LOG_TRACE("The controller vnode name is %s",
+                       reinterpret_cast<key_vrt_t *>(
+                           okey->get_key())->vrouter_name);
+        uuu::upll_strncpy(val->vnode2_name, reinterpret_cast<key_vrt_t *>(
+                okey->get_key())->vrouter_name,
+            (kMaxLenVnodeName+1));
       } else {
         UPLL_LOG_DEBUG("GetRenamedControllerKey failed. Result : %d",
-                          result_code);
+                       result_code);
         delete okey;
         return result_code;
       }
@@ -2193,7 +2553,7 @@ upll_rc_t VlinkMoMgr::GetRenamedControllerKey(ConfigKeyVal *ikey,
     return result_code;
   }
   val_db_rename_vlink *rename_val = reinterpret_cast<val_db_rename_vlink *>
-                                                           (GetVal(okey));
+      (GetVal(okey));
   if (!rename_val) {
     delete okey;
     return UPLL_RC_ERR_GENERIC;
@@ -2205,11 +2565,11 @@ upll_rc_t VlinkMoMgr::GetRenamedControllerKey(ConfigKeyVal *ikey,
   }
   if (rename & 0x01) { /* vtn renamed */
     uuu::upll_strncpy(ctrlr_key->vtn_key.vtn_name, rename_val->ctrlr_vtn_name,
-                     (kMaxLenVtnName+1));
+                      (kMaxLenVtnName+1));
   }
   if (rename & 0x02) { /* vnode renamed */
     uuu::upll_strncpy(ctrlr_key->vlink_name, rename_val->ctrlr_vlink_name,
-                     (kMaxLenVlinkName+1));
+                      (kMaxLenVlinkName+1));
   }
   SET_USER_DATA_FLAGS(ikey, rename);
 
@@ -2219,11 +2579,11 @@ upll_rc_t VlinkMoMgr::GetRenamedControllerKey(ConfigKeyVal *ikey,
 }
 
 upll_rc_t VlinkMoMgr::UpdateConfigStatus(ConfigKeyVal *vlink_key,
-                                       unc_keytype_operation_t op,
-                                       uint32_t driver_result,
-                                       ConfigKeyVal *upd_key,
-                                       DalDmlIntf *dmi,
-                                       ConfigKeyVal *ctrlr_key) {
+                                         unc_keytype_operation_t op,
+                                         uint32_t driver_result,
+                                         ConfigKeyVal *upd_key,
+                                         DalDmlIntf *dmi,
+                                         ConfigKeyVal *ctrlr_key) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_vlink *vlink_val;
@@ -2244,24 +2604,24 @@ upll_rc_t VlinkMoMgr::UpdateConfigStatus(ConfigKeyVal *vlink_key,
     return UPLL_RC_ERR_GENERIC;
   }
   val_db_vlink_st *val_vlinkst = reinterpret_cast<val_db_vlink_st *>
-                           (ConfigKeyVal::Malloc(sizeof(val_db_vlink_st)));
+      (ConfigKeyVal::Malloc(sizeof(val_db_vlink_st)));
   val_vlinkst->vlink_val_st.oper_status = UPLL_OPER_STATUS_UNINIT;
   val_vlinkst->vlink_val_st.valid[UPLL_IDX_OPER_STATUS_VLNKS]
-                                            = UNC_VF_VALID;
+      = UNC_VF_VALID;
   if (op == UNC_OP_CREATE) {
     val_vlinkst->down_count = 0;
   } else {
     val_db_vlink_st *run_vlink_st = reinterpret_cast<val_db_vlink_st *>
-                                 (GetStateVal(upd_key));
+        (GetStateVal(upd_key));
     val_vlinkst->down_count = (run_vlink_st ? run_vlink_st->down_count:0);
   }
   vlink_key->AppendCfgVal(IpctSt::kIpcStValVlinkSt, val_vlinkst);
   UPLL_LOG_TRACE("%s", (vlink_key->ToStrAll()).c_str());
   for ( unsigned int loop = 0;
-        loop < sizeof(vlink_val->valid)/sizeof(vlink_val->valid[0]);
-                                                         ++loop ) {
+       loop < sizeof(vlink_val->valid)/sizeof(vlink_val->valid[0]);
+       ++loop ) {
     if ( (UNC_VF_VALID == vlink_val->valid[loop]) ||
-       (UNC_VF_VALID_NO_VALUE == vlink_val->valid[loop])) {
+        (UNC_VF_VALID_NO_VALUE == vlink_val->valid[loop])) {
       // Description is set to APPLIED
       if (loop == UPLL_IDX_DESCRIPTION_VLNK)
         vlink_val->cs_attr[loop] = UNC_CS_APPLIED;
@@ -2269,10 +2629,10 @@ upll_rc_t VlinkMoMgr::UpdateConfigStatus(ConfigKeyVal *vlink_key,
         vlink_val->cs_attr[loop] = cs_status;
     } else if ((UNC_VF_INVALID == vlink_val->valid[loop]) &&
                (UNC_OP_CREATE == op)) {
-        vlink_val->cs_attr[loop] = UNC_CS_APPLIED;
+      vlink_val->cs_attr[loop] = UNC_CS_APPLIED;
     } else if ((UNC_VF_INVALID == vlink_val->valid[loop]) &&
                (UNC_OP_UPDATE == op)) {
-        vlink_val->cs_attr[loop] = vlink_val2->cs_attr[loop];
+      vlink_val->cs_attr[loop] = vlink_val2->cs_attr[loop];
     }
   }
   SetConsolidatedStatus(vlink_key, op, cs_status, dmi);
@@ -2281,7 +2641,9 @@ upll_rc_t VlinkMoMgr::UpdateConfigStatus(ConfigKeyVal *vlink_key,
 
 #if 0
 upll_rc_t VlinkMoMgr::GetControllerKey(ConfigKeyVal *ikey,
-    ConfigKeyVal *&okey, unc_keytype_datatype_t dt_type, char *ctrlr_name ) {
+                                       ConfigKeyVal *&okey,
+                                       unc_keytype_datatype_t dt_type,
+                                       char *ctrlr_name ) {
   okey = NULL;
   char rename = (uint64_t)(ikey->get_user_data());
   key_vlink_t *key = reinterpret_cast<key_vlink_t *>(ikey->get_key());
@@ -2295,9 +2657,9 @@ upll_rc_t VlinkMoMgr::GetControllerKey(ConfigKeyVal *ikey,
     ConfigKeyVal *ck_vtn = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
                                             vtn_key, NULL);
     //   MoMgrImpl *mgr = (MoMgrImpl *)GetMoManager(UNC_KT_VTN);
-//    mgr->ReadConfigDB(ck_vtn, dt_type, UNC_OP_READ, RENAMETBL);
+    //    mgr->ReadConfigDB(ck_vtn, dt_type, UNC_OP_READ, RENAMETBL);
     val_rename_vtn* rename_val = reinterpret_cast<val_rename_vtn *>
-                                                  (GetVal(ck_vtn));
+        (GetVal(ck_vtn));
     uuu::upll_strncpy(ctrlr_key->vtn_key.vtn_name, rename_val->new_name);
     delete ck_vtn;
   }
@@ -2306,7 +2668,7 @@ upll_rc_t VlinkMoMgr::GetControllerKey(ConfigKeyVal *ikey,
     GetChildConfigKey(okey, ikey);
     //  mgr->ReadConfigDB(okey, dt_type, UNC_OP_READ, RENAMETBL);
     val_rename_vbr *rename_val = reinterpret_cast<val_rename_vbr *>
-                                                          (GetVal(okey));
+        (GetVal(okey));
     uuu::upll_strncpy(ctrlr_key->vtn_key.vtn_name, rename_val->new_name);
     delete okey;
   }
@@ -2326,35 +2688,36 @@ upll_rc_t VlinkMoMgr::SwapKeyVal(ConfigKeyVal *ikey, ConfigKeyVal *&okey,
 
   if (ikey->get_key_type() != UNC_KT_VLINK) return UPLL_RC_ERR_BAD_REQUEST;
   val_rename_vlink_t *tval = reinterpret_cast<val_rename_vlink_t *>
-                             (GetVal(ikey));
+      (GetVal(ikey));
   if (!tval)
     return UPLL_RC_ERR_GENERIC;
 
   /* The PFC Name and New Name should not be equal */
   if (!strcmp(reinterpret_cast<char *>(tval->new_name),
-         reinterpret_cast<char *>(reinterpret_cast<key_vlink_t *>
-         (ikey->get_key())->vlink_name)))
+              reinterpret_cast<char *>(reinterpret_cast<key_vlink_t *>
+                                       (ikey->get_key())->vlink_name)))
     return UPLL_RC_ERR_GENERIC;
   key_vlink_t * key_vlink = reinterpret_cast<key_vlink_t *>
-                            (ConfigKeyVal::Malloc(sizeof(key_vlink_t)));
+      (ConfigKeyVal::Malloc(sizeof(key_vlink_t)));
 
   if (tval->valid[UPLL_IDX_NEW_NAME_RVLNK] == UNC_VF_VALID_NO_VALUE) {
     uuu::upll_strncpy(key_vlink->vlink_name,
-            static_cast<key_vlink_t *>(ikey->get_key())->vlink_name,
-            (kMaxLenVlinkName+1));
+                      static_cast<key_vlink_t *>(ikey->get_key())->vlink_name,
+                      (kMaxLenVlinkName+1));
     no_rename = true;
   } else {
     if ((reinterpret_cast<val_rename_vlink_t *>(tval))->
-            valid[UPLL_IDX_NEW_NAME_RVLNK] == UNC_VF_VALID) {
+        valid[UPLL_IDX_NEW_NAME_RVLNK] == UNC_VF_VALID) {
       /* checking the string is empty or not */
       if (!strlen(reinterpret_cast<char *>
-         (static_cast<val_rename_vlink_t *>(tval)->new_name))) {
+                  (static_cast<val_rename_vlink_t *>(tval)->new_name))) {
         free(key_vlink);
         return UPLL_RC_ERR_GENERIC;
       }
       uuu::upll_strncpy(key_vlink->vlink_name,
-         static_cast<val_rename_vlink_t *>(GetVal(ikey))->new_name,
-         (kMaxLenVlinkName+1));
+                        static_cast<val_rename_vlink_t *>
+                        (GetVal(ikey))->new_name,
+                        (kMaxLenVlinkName+1));
     } else {
       free(key_vlink);
       return UPLL_RC_ERR_GENERIC;
@@ -2368,7 +2731,8 @@ upll_rc_t VlinkMoMgr::SwapKeyVal(ConfigKeyVal *ikey, ConfigKeyVal *&okey,
     return result_code;
   }
   MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager*>
-                                              (GetMoManager(UNC_KT_VTN)));
+                                                 (GetMoManager
+                                                  (UNC_KT_VTN)));
   result_code = mgr->GetRenamedUncKey(pkey, UPLL_DT_IMPORT, dmi, ctrlr);
   if (UPLL_RC_SUCCESS != result_code
       && UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
@@ -2379,12 +2743,12 @@ upll_rc_t VlinkMoMgr::SwapKeyVal(ConfigKeyVal *ikey, ConfigKeyVal *&okey,
   }
   /* use the UNC VTN name if PFC VTN name is renamed; */
   if (strlen(reinterpret_cast<char *>(reinterpret_cast<key_vtn_t *>
-                                              (pkey->get_key())->vtn_name)))
+                                      (pkey->get_key())->vtn_name)))
     uuu::upll_strncpy(key_vlink->vtn_key.vtn_name,
-            reinterpret_cast<key_vtn_t *>(pkey->get_key())->vtn_name,
-            (kMaxLenVtnName+1));
-    delete pkey;
-    pkey = NULL;
+                      reinterpret_cast<key_vtn_t *>(pkey->get_key())->vtn_name,
+                      (kMaxLenVtnName+1));
+  delete pkey;
+  pkey = NULL;
   okey = new ConfigKeyVal(UNC_KT_VLINK, IpctSt::kIpcStKeyVlink, key_vlink,
                           NULL);
   if (NULL == okey) {
@@ -2402,27 +2766,27 @@ upll_rc_t VlinkMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
   key_rename_vnode_info *key_rename = reinterpret_cast<key_rename_vnode_info *>
-                                                      (ikey->get_key());
+      (ikey->get_key());
   key_vlink_t * key_vlink = reinterpret_cast<key_vlink_t *>(
-                              ConfigKeyVal::Malloc(sizeof(key_vlink_t)));
-    UPLL_LOG_TRACE("Table is MainTable ");
-    if (!strlen(reinterpret_cast<char *>(key_rename->old_unc_vtn_name))) {
+      ConfigKeyVal::Malloc(sizeof(key_vlink_t)));
+  UPLL_LOG_TRACE("Table is MainTable ");
+  if (!strlen(reinterpret_cast<char *>(key_rename->old_unc_vtn_name))) {
+    FREE_IF_NOT_NULL(key_vlink);
+    return UPLL_RC_ERR_GENERIC;
+  }
+
+  uuu::upll_strncpy(key_vlink->vtn_key.vtn_name,
+                    key_rename->old_unc_vtn_name, (kMaxLenVtnName+1));
+
+  if (ikey->get_key_type() == table[MAINTBL]->get_key_type()) {
+    UPLL_LOG_TRACE("Current Rename Key type is %d", ikey->get_key_type());
+    if (!strlen(reinterpret_cast<char *>(key_rename->old_unc_vnode_name))) {
       FREE_IF_NOT_NULL(key_vlink);
       return UPLL_RC_ERR_GENERIC;
-     }
-
-    uuu::upll_strncpy(key_vlink->vtn_key.vtn_name,
-                key_rename->old_unc_vtn_name, (kMaxLenVtnName+1));
-
-     if (ikey->get_key_type() == table[MAINTBL]->get_key_type()) {
-       UPLL_LOG_TRACE("Current Rename Key type is %d", ikey->get_key_type());
-       if (!strlen(reinterpret_cast<char *>(key_rename->old_unc_vnode_name))) {
-         FREE_IF_NOT_NULL(key_vlink);
-         return UPLL_RC_ERR_GENERIC;
-       }
-       uuu::upll_strncpy(key_vlink->vlink_name,
-          key_rename->old_unc_vnode_name, (kMaxLenVlinkName+1));
-     }
+    }
+    uuu::upll_strncpy(key_vlink->vlink_name,
+                      key_rename->old_unc_vnode_name, (kMaxLenVlinkName+1));
+  }
   okey = new ConfigKeyVal(UNC_KT_VLINK, IpctSt::kIpcStKeyVlink, key_vlink,
                           NULL);
   if (!okey) {
@@ -2453,66 +2817,69 @@ upll_rc_t VlinkMoMgr::GetRenameInfo(ConfigKeyVal *ikey,
     return UPLL_RC_ERR_GENERIC;
   }
   key_rename_vnode_info_t *vlink_rename_info =
-                        reinterpret_cast<key_rename_vnode_info_t *>
-                        (ConfigKeyVal::Malloc(sizeof(key_rename_vnode_info_t)));
+      reinterpret_cast<key_rename_vnode_info_t *>
+      (ConfigKeyVal::Malloc(sizeof(key_rename_vnode_info_t)));
   if (renamed) {
     if (!strlen(reinterpret_cast<char *>(reinterpret_cast<val_rename_vnode *>
-                                       (GetVal(ikey))->ctrlr_vtn_name))) {
+                                         (GetVal(ikey))->ctrlr_vtn_name))) {
       free(vlink_rename_info);
       return UPLL_RC_ERR_GENERIC;
     }
     uuu::upll_strncpy(vlink_rename_info->ctrlr_vtn_name,
-          reinterpret_cast<val_rename_vnode *>(GetVal(ikey))->ctrlr_vtn_name,
-          (kMaxLenVtnName+1));
+                      reinterpret_cast<val_rename_vnode *>
+                      (GetVal(ikey))->ctrlr_vtn_name,
+                      (kMaxLenVtnName+1));
     if (!strlen(reinterpret_cast<char *>(reinterpret_cast<val_rename_vnode *>
                                          (GetVal(ikey))->ctrlr_vnode_name))) {
       free(vlink_rename_info);
       return UPLL_RC_ERR_GENERIC;
     }
     uuu::upll_strncpy(vlink_rename_info->ctrlr_vnode_name,
-          reinterpret_cast<val_rename_vnode *>(GetVal(ikey))->ctrlr_vnode_name,
-          (kMaxLenVlinkName+1));
+                      reinterpret_cast<val_rename_vnode *>
+                      (GetVal(ikey))->ctrlr_vnode_name,
+                      (kMaxLenVlinkName+1));
   } else {
     if (!strlen(reinterpret_cast<char *>(vlink_key_->vlink_name))) {
-       free(vlink_rename_info);
-       return UPLL_RC_ERR_GENERIC;
+      free(vlink_rename_info);
+      return UPLL_RC_ERR_GENERIC;
     }
     uuu::upll_strncpy(vlink_rename_info->ctrlr_vnode_name,
-           vlink_key_->vlink_name, (kMaxLenVlinkName+1));
+                      vlink_key_->vlink_name, (kMaxLenVlinkName+1));
     if (!strlen(reinterpret_cast<char *>(vlink_key_->vtn_key.vtn_name))) {
       free(vlink_rename_info);
       return UPLL_RC_ERR_GENERIC;
     }
     uuu::upll_strncpy(vlink_rename_info->ctrlr_vtn_name,
-           vlink_key_->vtn_key.vtn_name, (kMaxLenVtnName+1));
+                      vlink_key_->vtn_key.vtn_name, (kMaxLenVtnName+1));
   }
   if (!strlen(reinterpret_cast<char *>(vlink_key_->vlink_name))) {
-       free(vlink_rename_info);
-       return UPLL_RC_ERR_GENERIC;
+    free(vlink_rename_info);
+    return UPLL_RC_ERR_GENERIC;
   }
   uuu::upll_strncpy(vlink_rename_info->old_unc_vnode_name,
-         vlink_key_->vlink_name, (kMaxLenVlinkName+1));
+                    vlink_key_->vlink_name, (kMaxLenVlinkName+1));
   if (!strlen(reinterpret_cast<char *>(vlink_key_->vtn_key.vtn_name))) {
     free(vlink_rename_info);
     return UPLL_RC_ERR_GENERIC;
   }
   uuu::upll_strncpy(vlink_rename_info->new_unc_vtn_name,
-         vlink_key_->vtn_key.vtn_name, (kMaxLenVtnName+1));
+                    vlink_key_->vtn_key.vtn_name, (kMaxLenVtnName+1));
   uuu::upll_strncpy(vlink_rename_info->old_unc_vtn_name,
-         vlink_key_->vtn_key.vtn_name, (kMaxLenVtnName+1));
+                    vlink_key_->vtn_key.vtn_name, (kMaxLenVtnName+1));
 
   if (!(okey->get_key())) {
     free(vlink_rename_info);
     return UPLL_RC_ERR_GENERIC;
   }
   if (!strlen(reinterpret_cast<char *>(reinterpret_cast<key_vlink_t *>
-                                      (okey->get_key())->vlink_name))) {
+                                       (okey->get_key())->vlink_name))) {
     free(vlink_rename_info);
     return UPLL_RC_ERR_GENERIC;
   }
   uuu::upll_strncpy(vlink_rename_info->new_unc_vnode_name,
-       reinterpret_cast<key_vlink_t *>(okey->get_key())->vlink_name,
-       (kMaxLenVlinkName+1));
+                    reinterpret_cast<key_vlink_t *>
+                    (okey->get_key())->vlink_name,
+                    (kMaxLenVlinkName+1));
 
   rename_info = new ConfigKeyVal(UNC_KT_VLINK, IpctSt::kIpcInvalidStNum,
                                  vlink_rename_info, NULL);
@@ -2527,13 +2894,15 @@ upll_rc_t VlinkMoMgr::GetRenameInfo(ConfigKeyVal *ikey,
     ConfigKeyVal *tmp_key = NULL;
     result_code = GetChildConfigKey(tmp_key, ikey);
     if (UPLL_RC_SUCCESS != result_code) {
-       UPLL_LOG_DEBUG("GetChildConfigKey Failed ");
-       free(vnode);  // COV RESOURCE LEAK
-       return result_code;
+      UPLL_LOG_DEBUG("GetChildConfigKey Failed ");
+      free(vnode);  // COV RESOURCE LEAK
+      return result_code;
     }
-    DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutCtrlr|kOpInOutDomain};
+    DbSubOp dbop = { kOpReadSingle,
+      kOpMatchNone,
+      kOpInOutCtrlr|kOpInOutDomain};
     result_code = ReadConfigDB(tmp_key, UPLL_DT_IMPORT, UNC_OP_READ, dbop, dmi,
-                                                 MAINTBL);
+                               MAINTBL);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("ReadConfigDB Failed");
       free(vnode);  // COV RESOURCE LEAK
@@ -2543,8 +2912,8 @@ upll_rc_t VlinkMoMgr::GetRenameInfo(ConfigKeyVal *ikey,
     controller_domain ctrlr_dom;
     result_code = GetControllerDomainId(tmp_key, &ctrlr_dom);
     if (UPLL_RC_SUCCESS != result_code) {
-       delete tmp_key;
-       return result_code;
+      delete tmp_key;
+      return result_code;
     }
     SET_USER_DATA_CTRLR_DOMAIN(okey, ctrlr_dom);
 
@@ -2552,11 +2921,13 @@ upll_rc_t VlinkMoMgr::GetRenameInfo(ConfigKeyVal *ikey,
     vnode->valid[UPLL_CTRLR_VNODE_NAME_VALID] = UNC_VF_VALID;
 
     uuu::upll_strncpy(vnode->ctrlr_vtn_name,
-           reinterpret_cast<key_vlink_t *>(ikey->get_key())->vtn_key.vtn_name,
-            (kMaxLenVtnName+1));
+                      reinterpret_cast<key_vlink_t *>
+                      (ikey->get_key())->vtn_key.vtn_name,
+                      (kMaxLenVtnName+1));
     uuu::upll_strncpy(vnode->ctrlr_vnode_name,
-           reinterpret_cast<key_vlink_t *>(ikey->get_key())->vlink_name,
-          (kMaxLenVlinkName+1));
+                      reinterpret_cast<key_vlink_t *>
+                      (ikey->get_key())->vlink_name,
+                      (kMaxLenVlinkName+1));
     ConfigVal *rename_val_ = new ConfigVal(IpctSt::kIpcInvalidStNum, vnode);
     okey->SetCfgVal(rename_val_);
     dbop.readop = kOpNotRead;
@@ -2576,8 +2947,8 @@ upll_rc_t VlinkMoMgr::UpdateVnodeVal(ConfigKeyVal *rename_info,
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   if (!rename_info) return UPLL_RC_ERR_GENERIC;
   key_rename_vnode_info *rename_info_ =
-                          reinterpret_cast<key_rename_vnode_info *>(
-                          rename_info->get_key());
+      reinterpret_cast<key_rename_vnode_info *>(
+          rename_info->get_key());
   if (!rename_info_) {
     UPLL_LOG_DEBUG("Rename Info is Empty");
     return UPLL_RC_ERR_GENERIC;
@@ -2600,15 +2971,15 @@ upll_rc_t VlinkMoMgr::UpdateVnodeVal(ConfigKeyVal *rename_info,
   okey->SetCfgVal(new ConfigVal(IpctSt::kIpcStValVlink, val_vlink_));
 
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone,
-                   kOpInOutFlag|kOpInOutCtrlr|kOpInOutDomain };
+    kOpInOutFlag|kOpInOutCtrlr|kOpInOutDomain };
 
   key_vlink_ = reinterpret_cast<key_vlink_t *>(okey->get_key());
 
   uuu::upll_strncpy(key_vlink_->vtn_key.vtn_name,
-         rename_info_->new_unc_vtn_name, (kMaxLenVtnName+1));
+                    rename_info_->new_unc_vtn_name, (kMaxLenVtnName+1));
 
   uuu::upll_strncpy(val_vlink_->vnode1_name,
-         rename_info_->old_unc_vnode_name, (kMaxLenVnodeName+1));
+                    rename_info_->old_unc_vnode_name, (kMaxLenVnodeName+1));
 
   val_vlink_->valid[UPLL_IDX_VNODE1_NAME_VLNK] = UNC_VF_VALID;
 
@@ -2619,7 +2990,7 @@ upll_rc_t VlinkMoMgr::UpdateVnodeVal(ConfigKeyVal *rename_info,
     while (okey) {
       val_vlink_ =  reinterpret_cast<val_vlink_t *>(GetVal(okey));
       UPLL_LOG_TRACE("After Read ConfigDB in Vlink %s",
-                                        (okey->ToStrAll()).c_str());
+                     (okey->ToStrAll()).c_str());
 
       GET_USER_DATA_FLAGS(okey->get_cfg_val(), rename);
       UPLL_LOG_TRACE("Rename No Rename %d", no_rename);
@@ -2634,11 +3005,12 @@ upll_rc_t VlinkMoMgr::UpdateVnodeVal(ConfigKeyVal *rename_info,
       SET_USER_DATA_FLAGS(okey->get_cfg_val(), rename);
 
       uuu::upll_strncpy(val_vlink_->vnode1_name,
-             rename_info_->new_unc_vnode_name, (kMaxLenVnodeName+1));
+                        rename_info_->new_unc_vnode_name,
+                        (kMaxLenVnodeName+1));
 
       UPLL_LOG_TRACE("The New vnode name %s", val_vlink_->vnode1_name);
       UPLL_LOG_TRACE("Before Update ConfigDB in Vlink %s",
-                                        (okey->ToStrAll()).c_str());
+                     (okey->ToStrAll()).c_str());
       dbop.readop = kOpNotRead;
       dbop.inoutop =  kOpInOutFlag;
 
@@ -2656,7 +3028,7 @@ upll_rc_t VlinkMoMgr::UpdateVnodeVal(ConfigKeyVal *rename_info,
   val_vlink_ =  reinterpret_cast<val_vlink_t *>(GetVal(okey));
   val_vlink_->valid[UPLL_IDX_VNODE1_NAME_VLNK] = UNC_VF_INVALID;
   uuu::upll_strncpy(val_vlink_->vnode2_name,
-         rename_info_->old_unc_vnode_name, (kMaxLenVnodeName+1));
+                    rename_info_->old_unc_vnode_name, (kMaxLenVnodeName+1));
   val_vlink_->valid[UPLL_IDX_VNODE2_NAME_VLNK] = UNC_VF_VALID;
 
   result_code = ReadConfigDB(okey, data_type, UNC_OP_READ, dbop, dmi, MAINTBL);
@@ -2670,16 +3042,17 @@ upll_rc_t VlinkMoMgr::UpdateVnodeVal(ConfigKeyVal *rename_info,
       UPLL_LOG_TRACE("Before Update Rename flag =%d", rename);
 
       if (!no_rename)
-          rename = rename | VN2_RENAME;
+        rename = rename | VN2_RENAME;
       else
-          rename = rename & NO_VN2_RENAME;
+        rename = rename & NO_VN2_RENAME;
 
       UPLL_LOG_TRACE("After Update Rename flag =%d", rename);
 
       SET_USER_DATA_FLAGS(okey->get_cfg_val(), rename);
 
       uuu::upll_strncpy(val_vlink_->vnode2_name,
-              rename_info_->new_unc_vnode_name, (kMaxLenVnodeName+1));
+                        rename_info_->new_unc_vnode_name,
+                        (kMaxLenVnodeName+1));
       dbop.readop = kOpNotRead;
       dbop.inoutop =  kOpInOutFlag;
       result_code = UpdateConfigDB(okey, data_type, UNC_OP_UPDATE, dmi,
@@ -2704,15 +3077,16 @@ upll_rc_t VlinkMoMgr::ValidateBoundary(uint8_t *boundary_name,
   IpcResponse ipc_resp;
 
   key_boundary *bndrykey = static_cast<key_boundary *>
-         (ConfigKeyVal::Malloc(sizeof(key_boundary)));  // COV NULL RETURN
+      (ConfigKeyVal::Malloc(sizeof(key_boundary)));  // COV NULL RETURN
 
   uuu::upll_strncpy(bndrykey->boundary_id, boundary_name,
-                   (kMaxLenBoundaryName+1));
+                    (kMaxLenBoundaryName+1));
+  DELETE_IF_NOT_NULL(ck_boundary);
   ck_boundary = new ConfigKeyVal(UNC_KT_BOUNDARY, IpctSt::kIpcStKeyBoundary,
                                  bndrykey, NULL);
 
   result_code = SendIpcReq(req->clnt_sess_id, req->config_id, UNC_OP_READ,
-                   UPLL_DT_CANDIDATE, ck_boundary, NULL, &ipc_resp);
+                           UPLL_DT_CANDIDATE, ck_boundary, NULL, &ipc_resp);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("Error in retrieving boundary data %d", result_code);
     delete ck_boundary;
@@ -2736,9 +3110,9 @@ upll_rc_t VlinkMoMgr::IsKeyInUse(upll_keytype_datatype_t dt_type,
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutNone };
   key_vlink_t *vlink_key = reinterpret_cast<key_vlink_t *>
-                                    (ConfigKeyVal::Malloc(sizeof(key_vlink)));
+      (ConfigKeyVal::Malloc(sizeof(key_vlink)));
   val_vlink_t *linkval = static_cast<val_vlink_t *>
-                         (ConfigKeyVal::Malloc(sizeof(val_vlink_t)));
+      (ConfigKeyVal::Malloc(sizeof(val_vlink_t)));
   key_boundary *bndrykey = reinterpret_cast<key_boundary *>(ckv->get_key());
   if (!strlen(reinterpret_cast<const char *>(bndrykey->boundary_id))) {
     free(linkval);
@@ -2749,7 +3123,7 @@ upll_rc_t VlinkMoMgr::IsKeyInUse(upll_keytype_datatype_t dt_type,
                     (kMaxLenBoundaryName+1));
   linkval->valid[UPLL_IDX_BOUNDARY_NAME_VLNK] = UNC_VF_VALID;
   ck_link = new ConfigKeyVal(UNC_KT_LINK, IpctSt::kIpcStKeyVlink, vlink_key,
-                            new ConfigVal(IpctSt::kIpcStValVlink, linkval));
+                             new ConfigVal(IpctSt::kIpcStValVlink, linkval));
   result_code = ReadConfigDB(ck_link, dt_type, UNC_OP_READ, dbop, dmi,
                              MAINTBL);
   delete ck_link;
@@ -2764,30 +3138,41 @@ upll_rc_t VlinkMoMgr::IsKeyInUse(upll_keytype_datatype_t dt_type,
 }
 
 upll_rc_t VlinkMoMgr::UpdateAuditConfigStatus(
-    unc_keytype_configstatus_t cs_status, uuc::UpdateCtrlrPhase phase,
-    ConfigKeyVal *&ckv_running) {
+    unc_keytype_configstatus_t cs_status,
+    uuc::UpdateCtrlrPhase phase,
+    ConfigKeyVal *&ckv_running,
+    DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_vlink_t *val;
   val = (ckv_running != NULL) ? reinterpret_cast<val_vlink_t *>
-                                     (GetVal(ckv_running)) : NULL;
+      (GetVal(ckv_running)) : NULL;
   if (NULL == val) {
     return UPLL_RC_ERR_GENERIC;
   }
   if (uuc::kUpllUcpCreate == phase) val->cs_row_status = cs_status;
   if ((uuc::kUpllUcpUpdate == phase) &&
-           (val->cs_row_status == UNC_CS_INVALID ||
-            val->cs_row_status == UNC_CS_NOT_APPLIED))
+      (val->cs_row_status == UNC_CS_INVALID ||
+       val->cs_row_status == UNC_CS_NOT_APPLIED))
     val->cs_row_status = cs_status;
   for (unsigned int loop = 0; loop < sizeof(val->valid) / sizeof(uint8_t);
-      ++loop) {
+       ++loop) {
     if ((cs_status == UNC_CS_INVALID && UNC_VF_VALID == val->valid[loop]) ||
-         cs_status == UNC_CS_APPLIED)
-           val->cs_attr[loop] = cs_status;
+        cs_status == UNC_CS_APPLIED)
+      val->cs_attr[loop] = cs_status;
   }
+  unc_keytype_operation_t op = (phase == uuc::kUpllUcpCreate)?UNC_OP_CREATE:
+      ((phase == uuc::kUpllUcpUpdate)?UNC_OP_UPDATE:
+       ((phase == uuc::kUpllUcpDelete)?UNC_OP_DELETE:UNC_OP_INVALID));
+
+  result_code = SetConsolidatedStatus(ckv_running, op, cs_status, dmi);
+
   return result_code;
 }
 
-bool VlinkMoMgr::FilterAttributes(void *&val1, void *val2, bool copy_to_running,
+bool VlinkMoMgr::FilterAttributes(void *&val1,
+                                  void *val2,
+                                  bool copy_to_running,
                                   unc_keytype_operation_t op) {
   UPLL_FUNC_TRACE;
   val_vlink_t *val_vlink1 = reinterpret_cast<val_vlink_t *>(val1);
@@ -2804,16 +3189,16 @@ bool VlinkMoMgr::CompareValidValue(void *&val1, void *val2,
   val_vlink_t *val_vlink1 = reinterpret_cast<val_vlink_t *>(val1);
   val_vlink_t *val_vlink2 = reinterpret_cast<val_vlink_t *>(val2);
   for (unsigned int loop = 0;
-      loop < sizeof(val_vlink1->valid) / sizeof(uint8_t); ++loop) {
+       loop < sizeof(val_vlink1->valid) / sizeof(uint8_t); ++loop) {
     if (UNC_VF_INVALID == val_vlink1->valid[loop]
         && UNC_VF_VALID == val_vlink2->valid[loop])
       val_vlink1->valid[loop] = UNC_VF_VALID_NO_VALUE;
   }
-  if (UNC_VF_INVALID != val_vlink1->valid[UPLL_IDX_DESCRIPTION_VLNK]) { 
+  if (UNC_VF_INVALID != val_vlink1->valid[UPLL_IDX_DESCRIPTION_VLNK]) {
     if ((!copy_to_running) ||
         ((UNC_VF_VALID == val_vlink1->valid[UPLL_IDX_DESCRIPTION_VLNK]) &&
          (!strcmp(reinterpret_cast<char*>(val_vlink1->description),
-                reinterpret_cast<char*>(val_vlink2->description)))))
+                  reinterpret_cast<char*>(val_vlink2->description)))))
       val_vlink1->valid[UPLL_IDX_DESCRIPTION_VLNK] = UNC_VF_INVALID;
   }
   if ((val_vlink2->valid[UPLL_IDX_ADMIN_STATUS_VLNK] ==
@@ -2858,17 +3243,17 @@ bool VlinkMoMgr::CompareValidValue(void *&val1, void *val2,
       val_vlink1->valid[UPLL_IDX_VLAN_ID_VLNK] = UNC_VF_INVALID;
   }
   for (unsigned int loop = 0;
-        loop < sizeof(val_vlink1->valid)/sizeof(val_vlink1->valid[0]);
-                                                         ++loop ) {
+       loop < sizeof(val_vlink1->valid)/sizeof(val_vlink1->valid[0]);
+       ++loop ) {
     if ((UNC_VF_VALID == val_vlink1->valid[loop]) ||
-       (UNC_VF_VALID_NO_VALUE == val_vlink1->valid[loop]))
-        invalid_attr = false;
+        (UNC_VF_VALID_NO_VALUE == val_vlink1->valid[loop]))
+      invalid_attr = false;
   }
   return invalid_attr;
 }
 
 upll_rc_t VlinkMoMgr::ValidateMessage(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey) {
+                                      ConfigKeyVal *ikey) {
   UPLL_FUNC_TRACE;
   upll_rc_t ret_val = UPLL_RC_SUCCESS;
   if (!ikey || !req || !(ikey->get_key())) {
@@ -2906,11 +3291,12 @@ upll_rc_t VlinkMoMgr::ValidateMessage(IpcReqRespHeader *req,
   if ((ikey->get_cfg_val())
       && ((ikey->get_cfg_val())->get_st_num() == IpctSt::kIpcStValVlink)) {
     val_vlink =
-      reinterpret_cast<val_vlink_t *>(ikey->get_cfg_val()->get_val());
+        reinterpret_cast<val_vlink_t *>(ikey->get_cfg_val()->get_val());
   } else if ((ikey->get_cfg_val()) &&
-      ((ikey->get_cfg_val())->get_st_num() == IpctSt::kIpcStValRenameVlink)) {
+             ((ikey->get_cfg_val())->get_st_num() ==
+              IpctSt::kIpcStValRenameVlink)) {
     val_rename_vlink =
-      reinterpret_cast<val_rename_vlink_t *>(ikey->get_cfg_val()->get_val());
+        reinterpret_cast<val_rename_vlink_t *>(ikey->get_cfg_val()->get_val());
   }
   if ((operation == UNC_OP_CREATE) &&
       (dt_type == UPLL_DT_CANDIDATE || dt_type == UPLL_DT_IMPORT)) {
@@ -2926,7 +3312,7 @@ upll_rc_t VlinkMoMgr::ValidateMessage(IpcReqRespHeader *req,
     }
     return UPLL_RC_SUCCESS;
   } else if ((operation == UNC_OP_UPDATE) &&
-      (dt_type == UPLL_DT_CANDIDATE)) {
+             (dt_type == UPLL_DT_CANDIDATE)) {
     if (val_vlink == NULL) {
       UPLL_LOG_DEBUG("Value structure is mandatory for UPDATE op");
       return UPLL_RC_ERR_BAD_REQUEST;
@@ -2949,8 +3335,8 @@ upll_rc_t VlinkMoMgr::ValidateMessage(IpcReqRespHeader *req,
     }
     return UPLL_RC_SUCCESS;
   } else if ((operation == UNC_OP_READ || operation == UNC_OP_READ_SIBLING ||
-        operation == UNC_OP_READ_SIBLING_BEGIN) &&
-      (dt_type == UPLL_DT_IMPORT)) {
+              operation == UNC_OP_READ_SIBLING_BEGIN) &&
+             (dt_type == UPLL_DT_IMPORT)) {
     if (option1 != UNC_OPT1_NORMAL) {
       UPLL_LOG_DEBUG("option1 is not matching");
       return UPLL_RC_ERR_INVALID_OPTION1;
@@ -2970,9 +3356,9 @@ upll_rc_t VlinkMoMgr::ValidateMessage(IpcReqRespHeader *req,
     }
     return UPLL_RC_SUCCESS;
   } else if ((operation == UNC_OP_READ || operation == UNC_OP_READ_SIBLING ||
-        operation == UNC_OP_READ_SIBLING_BEGIN) &&
-      (dt_type == UPLL_DT_CANDIDATE || dt_type == UPLL_DT_RUNNING ||
-       dt_type == UPLL_DT_STARTUP || dt_type == UPLL_DT_STATE)) {
+              operation == UNC_OP_READ_SIBLING_BEGIN) &&
+             (dt_type == UPLL_DT_CANDIDATE || dt_type == UPLL_DT_RUNNING ||
+              dt_type == UPLL_DT_STARTUP || dt_type == UPLL_DT_STATE)) {
     if (option1 != UNC_OPT1_NORMAL) {
       UPLL_LOG_DEBUG("option1 is not matching");
       return UPLL_RC_ERR_INVALID_OPTION1;
@@ -2996,11 +3382,11 @@ upll_rc_t VlinkMoMgr::ValidateMessage(IpcReqRespHeader *req,
              (operation == UNC_OP_READ_NEXT) ||
              (operation == UNC_OP_READ_BULK)) {
     UPLL_LOG_DEBUG("Value structure validation is none for this operation :%d"
-               , operation);
+                   , operation);
     return UPLL_RC_SUCCESS;
   }
   UPLL_LOG_DEBUG("Invalid datatype(%d) or operation(%d)", dt_type,
-                  operation);
+                 operation);
   return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
 }
 
@@ -3011,27 +3397,27 @@ upll_rc_t VlinkMoMgr::ValidateVlinkValue(val_vlink_t *val_vlink,
   UPLL_LOG_TRACE("Operation type :(%d)", operation);
 
   if ((operation == UNC_OP_CREATE) &&
-     ((val_vlink->valid[UPLL_IDX_VNODE1_NAME_VLNK] == UNC_VF_INVALID) ||
-      (val_vlink->valid[UPLL_IDX_VNODE1_NAME_VLNK] == UNC_VF_VALID_NO_VALUE)||
-      (val_vlink->valid[UPLL_IDX_VNODE1_IF_NAME_VLNK] == UNC_VF_INVALID) ||
-      (val_vlink->valid[UPLL_IDX_VNODE1_IF_NAME_VLNK] ==
-                                                     UNC_VF_VALID_NO_VALUE) ||
-      (val_vlink->valid[UPLL_IDX_VNODE2_NAME_VLNK] == UNC_VF_INVALID) ||
-      (val_vlink->valid[UPLL_IDX_VNODE2_NAME_VLNK] == UNC_VF_VALID_NO_VALUE) ||
-      (val_vlink->valid[UPLL_IDX_VNODE2_IF_NAME_VLNK] == UNC_VF_INVALID) ||
-      (val_vlink->valid[UPLL_IDX_VNODE2_IF_NAME_VLNK] ==
-                                                     UNC_VF_VALID_NO_VALUE))) {
+      ((val_vlink->valid[UPLL_IDX_VNODE1_NAME_VLNK] == UNC_VF_INVALID) ||
+       (val_vlink->valid[UPLL_IDX_VNODE1_NAME_VLNK] == UNC_VF_VALID_NO_VALUE)||
+       (val_vlink->valid[UPLL_IDX_VNODE1_IF_NAME_VLNK] == UNC_VF_INVALID) ||
+       (val_vlink->valid[UPLL_IDX_VNODE1_IF_NAME_VLNK] ==
+        UNC_VF_VALID_NO_VALUE) ||
+       (val_vlink->valid[UPLL_IDX_VNODE2_NAME_VLNK] == UNC_VF_INVALID) ||
+       (val_vlink->valid[UPLL_IDX_VNODE2_NAME_VLNK] == UNC_VF_VALID_NO_VALUE) ||
+       (val_vlink->valid[UPLL_IDX_VNODE2_IF_NAME_VLNK] == UNC_VF_INVALID) ||
+       (val_vlink->valid[UPLL_IDX_VNODE2_IF_NAME_VLNK] ==
+        UNC_VF_VALID_NO_VALUE))) {
     UPLL_LOG_DEBUG("Vlink node name/If name is mandatory "
-                                               " for Create operation");
+                   " for Create operation");
     return UPLL_RC_ERR_CFG_SYNTAX;
   }
   if ((operation == UNC_OP_UPDATE) &&
-     ((val_vlink->valid[UPLL_IDX_VNODE1_NAME_VLNK] != UNC_VF_INVALID) ||
-     (val_vlink->valid[UPLL_IDX_VNODE1_IF_NAME_VLNK] != UNC_VF_INVALID) ||
-     (val_vlink->valid[UPLL_IDX_VNODE2_NAME_VLNK] != UNC_VF_INVALID) ||
-     (val_vlink->valid[UPLL_IDX_VNODE2_IF_NAME_VLNK]  != UNC_VF_INVALID))) {
+      ((val_vlink->valid[UPLL_IDX_VNODE1_NAME_VLNK] != UNC_VF_INVALID) ||
+       (val_vlink->valid[UPLL_IDX_VNODE1_IF_NAME_VLNK] != UNC_VF_INVALID) ||
+       (val_vlink->valid[UPLL_IDX_VNODE2_NAME_VLNK] != UNC_VF_INVALID) ||
+       (val_vlink->valid[UPLL_IDX_VNODE2_IF_NAME_VLNK]  != UNC_VF_INVALID))) {
     UPLL_LOG_DEBUG("Vlink node name/If name must be invalid "
-                                               " for Update operation");
+                   " for Update operation");
     return UPLL_RC_ERR_CFG_SYNTAX;
   }
   if (val_vlink->valid[UPLL_IDX_ADMIN_STATUS_VLNK] == UNC_VF_VALID) {
@@ -3043,34 +3429,36 @@ upll_rc_t VlinkMoMgr::ValidateVlinkValue(val_vlink_t *val_vlink,
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if ((val_vlink->valid[UPLL_IDX_ADMIN_STATUS_VLNK]
-      == UNC_VF_VALID_NO_VALUE)
-      && ((operation == UNC_OP_UPDATE) || (operation == UNC_OP_CREATE))) {
+              == UNC_VF_VALID_NO_VALUE)
+             && ((operation == UNC_OP_UPDATE) ||
+                 (operation == UNC_OP_CREATE))) {
     val_vlink->admin_status = UPLL_ADMIN_ENABLE;
   } else if ((val_vlink->valid[UPLL_IDX_ADMIN_STATUS_VLNK] == UNC_VF_INVALID)
-      && (operation == UNC_OP_CREATE)) {
+             && (operation == UNC_OP_CREATE)) {
     val_vlink->admin_status = UPLL_ADMIN_ENABLE;
     val_vlink->valid[UPLL_IDX_ADMIN_STATUS_VLNK] = UNC_VF_VALID_NO_VALUE;
   }
   if ((val_vlink->valid[UPLL_IDX_VNODE1_NAME_VLNK] == UNC_VF_VALID) &&
       (!READ_OP(operation))) {
-  if ((val_vlink->vnode1_name[0] == '\0')
-      || (val_vlink->vnode1_ifname[0] == '\0')
-      || (val_vlink->vnode2_name[0] == '\0')
-      || (val_vlink->vnode2_ifname[0] == '\0')) {
-    UPLL_LOG_DEBUG("Vlink node name/If name is empty!!");
-    return UPLL_RC_ERR_CFG_SYNTAX;
-  }
+    if ((val_vlink->vnode1_name[0] == '\0')
+        || (val_vlink->vnode1_ifname[0] == '\0')
+        || (val_vlink->vnode2_name[0] == '\0')
+        || (val_vlink->vnode2_ifname[0] == '\0')) {
+      UPLL_LOG_DEBUG("Vlink node name/If name is empty!!");
+      return UPLL_RC_ERR_CFG_SYNTAX;
+    }
   }
   if (val_vlink->valid[UPLL_IDX_DESCRIPTION_VLNK] == UNC_VF_VALID) {
     if (!ValidateDesc(val_vlink->description,
-                         kMinLenDescription, kMaxLenDescription)) {
+                      kMinLenDescription, kMaxLenDescription)) {
       UPLL_LOG_DEBUG("Syntax check failed. description-  (%s)",
-                    val_vlink->description);
+                     val_vlink->description);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if ((val_vlink->valid[UPLL_IDX_DESCRIPTION_VLNK] ==
               UNC_VF_VALID_NO_VALUE)
-      && ((operation == UNC_OP_UPDATE) || (operation == UNC_OP_CREATE))) {
+             && ((operation == UNC_OP_UPDATE) ||
+                 (operation == UNC_OP_CREATE))) {
     val_vlink->description[0] = ' ';
     val_vlink->description[1] = '\0';
   }
@@ -3079,7 +3467,7 @@ upll_rc_t VlinkMoMgr::ValidateVlinkValue(val_vlink_t *val_vlink,
                           kMinLenVnodeName, kMaxLenVnodeName);
     if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Syntax check failed. vnode1_name- (%s)",
-                    val_vlink->vnode1_name);
+                     val_vlink->vnode1_name);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   }
@@ -3089,7 +3477,7 @@ upll_rc_t VlinkMoMgr::ValidateVlinkValue(val_vlink_t *val_vlink,
 
     if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Syntax check failed. vnode1_ifname- %s",
-                    val_vlink->vnode1_ifname);
+                     val_vlink->vnode1_ifname);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   }
@@ -3099,7 +3487,7 @@ upll_rc_t VlinkMoMgr::ValidateVlinkValue(val_vlink_t *val_vlink,
 
     if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Syntax check failed. vnode2_name- (%s)",
-                    val_vlink->vnode2_name);
+                     val_vlink->vnode2_name);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   }
@@ -3110,8 +3498,8 @@ upll_rc_t VlinkMoMgr::ValidateVlinkValue(val_vlink_t *val_vlink,
 
     if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Syntax check failed."
-                    "vnode2_ifname- (%s)",
-                    val_vlink->vnode2_ifname);
+                     "vnode2_ifname- (%s)",
+                     val_vlink->vnode2_ifname);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   }
@@ -3122,8 +3510,8 @@ upll_rc_t VlinkMoMgr::ValidateVlinkValue(val_vlink_t *val_vlink,
 
     if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Syntax check failed. "
-                    "boundary_name- (%s)",
-                    val_vlink->boundary_name);
+                     "boundary_name- (%s)",
+                     val_vlink->boundary_name);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
 #if 0
@@ -3132,23 +3520,25 @@ upll_rc_t VlinkMoMgr::ValidateVlinkValue(val_vlink_t *val_vlink,
     if (ret_val != UPLL_RC_SUCCESS) return UPLL_RC_ERR_CFG_SEMANTIC;
 #endif
   } else if ((val_vlink->valid[UPLL_IDX_BOUNDARY_NAME_VLNK]
-      == UNC_VF_VALID_NO_VALUE)
-      && ((operation == UNC_OP_UPDATE) || (operation == UNC_OP_CREATE))) {
+              == UNC_VF_VALID_NO_VALUE)
+             && ((operation == UNC_OP_UPDATE) ||
+                 (operation == UNC_OP_CREATE))) {
     val_vlink->boundary_name[0] = ' ';
     val_vlink->boundary_name[1] = '\0';
   }
 
   if (val_vlink->valid[UPLL_IDX_VLAN_ID_VLNK] == UNC_VF_VALID) {
     if ((val_vlink->vlan_id != 0xFFFF) &&
-         !ValidateNumericRange(val_vlink->vlan_id,
-         (uint16_t)(kMinVlanId), (uint16_t)
-         (kMaxVlanId), true, true)) {
+        !ValidateNumericRange(val_vlink->vlan_id,
+                              (uint16_t)(kMinVlanId), (uint16_t)
+                              (kMaxVlanId), true, true)) {
       UPLL_LOG_DEBUG("Syntax check failed. vlan_id- (%d)", val_vlink->vlan_id);
-     return UPLL_RC_ERR_CFG_SYNTAX;
+      return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if ((val_vlink->valid[UPLL_IDX_VLAN_ID_VLNK] == UNC_VF_VALID_NO_VALUE)
-      && ((operation == UNC_OP_UPDATE) || (operation == UNC_OP_CREATE))) {
-     val_vlink->vlan_id = 0;
+             && ((operation == UNC_OP_UPDATE) ||
+                 (operation == UNC_OP_CREATE))) {
+    val_vlink->vlan_id = 0;
   }
   return UPLL_RC_SUCCESS;
 }
@@ -3162,8 +3552,8 @@ upll_rc_t VlinkMoMgr::ValidateRenameVlinkValue(
                           kMinLenVlinkName, kMaxLenVlinkName);
     if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Syntax check failed."
-                    "new_name- (%s)",
-                    val_rename_vlink->new_name);
+                     "new_name- (%s)",
+                     val_rename_vlink->new_name);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   }
@@ -3171,12 +3561,12 @@ upll_rc_t VlinkMoMgr::ValidateRenameVlinkValue(
 }
 
 upll_rc_t VlinkMoMgr::ValidateVlinkKey(key_vlink_t *key_vlink,
-    unc_keytype_operation_t operation) {
+                                       unc_keytype_operation_t operation) {
   UPLL_FUNC_TRACE;
   int ret_val = UPLL_RC_SUCCESS;
   VtnMoMgr *objvtnmgr =
       reinterpret_cast<VtnMoMgr*>(const_cast<MoManager *>(GetMoManager(
-          UNC_KT_VTN)));
+                  UNC_KT_VTN)));
   if (NULL == objvtnmgr) {
     UPLL_LOG_DEBUG("unable to get VtnMoMgr object to validate key_vtn");
     return UPLL_RC_ERR_GENERIC;
@@ -3190,27 +3580,29 @@ upll_rc_t VlinkMoMgr::ValidateVlinkKey(key_vlink_t *key_vlink,
   if ((operation != UNC_OP_READ_SIBLING_BEGIN) &&
       (operation != UNC_OP_READ_SIBLING_COUNT)) {
     ret_val = ValidateKey(reinterpret_cast<char *>(key_vlink->vlink_name),
-        kMinLenVlinkName, kMaxLenVlinkName);
+                          kMinLenVlinkName, kMaxLenVlinkName);
 
     if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Syntax check failed. vlink_name (%s)",
-          key_vlink->vlink_name);
+                     key_vlink->vlink_name);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else {
     UPLL_LOG_TRACE("Operation is %d", operation);
-      StringReset(key_vlink->vlink_name);
+    StringReset(key_vlink->vlink_name);
   }
   UPLL_LOG_TRACE("key structure validation successful for VLINK keytype");
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t VlinkMoMgr::ValVlinkAttributeSupportCheck(val_vlink_t *val_vlink,
-    const uint8_t* attrs, unc_keytype_operation_t operation) {
+upll_rc_t VlinkMoMgr::ValVlinkAttributeSupportCheck(
+    val_vlink_t *val_vlink,
+    const uint8_t* attrs,
+    unc_keytype_operation_t operation) {
   UPLL_FUNC_TRACE;
   if ((val_vlink->valid[UPLL_IDX_ADMIN_STATUS_VLNK] == UNC_VF_VALID)
       || (val_vlink->valid[UPLL_IDX_ADMIN_STATUS_VLNK]
-        == UNC_VF_VALID_NO_VALUE)) {
+          == UNC_VF_VALID_NO_VALUE)) {
     if (attrs[unc::capa::vlink::kCapAdminStatus] == 0) {
       val_vlink->valid[UPLL_IDX_ADMIN_STATUS_VLNK] = UNC_VF_INVALID;
       if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
@@ -3223,7 +3615,7 @@ upll_rc_t VlinkMoMgr::ValVlinkAttributeSupportCheck(val_vlink_t *val_vlink,
 
   if ((val_vlink->valid[UPLL_IDX_VNODE1_NAME_VLNK] == UNC_VF_VALID)
       || (val_vlink->valid[UPLL_IDX_VNODE1_NAME_VLNK] ==
-        UNC_VF_VALID_NO_VALUE)) {
+          UNC_VF_VALID_NO_VALUE)) {
     if (attrs[unc::capa::vlink::kCapVnode1Name] == 0) {
       val_vlink->valid[UPLL_IDX_VNODE1_NAME_VLNK] = UNC_VF_INVALID;
       if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
@@ -3236,7 +3628,7 @@ upll_rc_t VlinkMoMgr::ValVlinkAttributeSupportCheck(val_vlink_t *val_vlink,
 
   if ((val_vlink->valid[UPLL_IDX_VNODE1_IF_NAME_VLNK] == UNC_VF_VALID)
       || (val_vlink->valid[UPLL_IDX_VNODE1_IF_NAME_VLNK]
-        == UNC_VF_VALID_NO_VALUE)) {
+          == UNC_VF_VALID_NO_VALUE)) {
     if (attrs[unc::capa::vlink::kCapVnode1IfName] == 0) {
       val_vlink->valid[UPLL_IDX_VNODE1_IF_NAME_VLNK] = UNC_VF_INVALID;
       if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
@@ -3249,7 +3641,7 @@ upll_rc_t VlinkMoMgr::ValVlinkAttributeSupportCheck(val_vlink_t *val_vlink,
 
   if ((val_vlink->valid[UPLL_IDX_VNODE2_NAME_VLNK] == UNC_VF_VALID)
       || (val_vlink->valid[UPLL_IDX_VNODE2_NAME_VLNK] ==
-        UNC_VF_VALID_NO_VALUE)) {
+          UNC_VF_VALID_NO_VALUE)) {
     if (attrs[unc::capa::vlink::kCapVnode2Name] == 0) {
       val_vlink->valid[UPLL_IDX_VNODE2_NAME_VLNK] = UNC_VF_INVALID;
       if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
@@ -3262,7 +3654,7 @@ upll_rc_t VlinkMoMgr::ValVlinkAttributeSupportCheck(val_vlink_t *val_vlink,
 
   if ((val_vlink->valid[UPLL_IDX_VNODE2_IF_NAME_VLNK] == UNC_VF_VALID)
       || (val_vlink->valid[UPLL_IDX_VNODE2_IF_NAME_VLNK]
-        == UNC_VF_VALID_NO_VALUE)) {
+          == UNC_VF_VALID_NO_VALUE)) {
     if (attrs[unc::capa::vlink::kCapVnode2IfName] == 0) {
       val_vlink->valid[UPLL_IDX_VNODE2_IF_NAME_VLNK] = UNC_VF_INVALID;
       if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
@@ -3275,7 +3667,7 @@ upll_rc_t VlinkMoMgr::ValVlinkAttributeSupportCheck(val_vlink_t *val_vlink,
 
   if ((val_vlink->valid[UPLL_IDX_BOUNDARY_NAME_VLNK] == UNC_VF_VALID)
       || (val_vlink->valid[UPLL_IDX_BOUNDARY_NAME_VLNK]
-        == UNC_VF_VALID_NO_VALUE)) {
+          == UNC_VF_VALID_NO_VALUE)) {
     if (attrs[unc::capa::vlink::kCapBoundaryName] == 0) {
       val_vlink->valid[UPLL_IDX_BOUNDARY_NAME_VLNK] = UNC_VF_INVALID;
       if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
@@ -3298,7 +3690,7 @@ upll_rc_t VlinkMoMgr::ValVlinkAttributeSupportCheck(val_vlink_t *val_vlink,
   }
   if ((val_vlink->valid[UPLL_IDX_DESCRIPTION_VLNK] == UNC_VF_VALID)
       || (val_vlink->valid[UPLL_IDX_DESCRIPTION_VLNK] ==
-                                                UNC_VF_VALID_NO_VALUE)) {
+          UNC_VF_VALID_NO_VALUE)) {
     if (attrs[unc::capa::vlink::kCapDesc] == 0) {
       val_vlink->valid[UPLL_IDX_DESCRIPTION_VLNK] = UNC_VF_INVALID;
       if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
@@ -3313,8 +3705,8 @@ upll_rc_t VlinkMoMgr::ValVlinkAttributeSupportCheck(val_vlink_t *val_vlink,
 }
 
 upll_rc_t VlinkMoMgr::ValidateCapability(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey,
-    const char *ctrlr_name) {
+                                         ConfigKeyVal *ikey,
+                                         const char *ctrlr_name) {
   UPLL_FUNC_TRACE;
   if (!ikey || !req) {
     UPLL_LOG_DEBUG("ConfigKeyVal / IpcReqRespHeader is Null");
@@ -3323,7 +3715,7 @@ upll_rc_t VlinkMoMgr::ValidateCapability(IpcReqRespHeader *req,
 
   if (!ctrlr_name) {
     ctrlr_name = reinterpret_cast<char*>((reinterpret_cast<key_user_data_t *>
-                  (ikey->get_user_data()))->ctrlr_id);
+                                          (ikey->get_user_data()))->ctrlr_id);
     if (!ctrlr_name || !strlen(ctrlr_name)) {
       UPLL_LOG_DEBUG("Controller Name is NULL");
       return UPLL_RC_ERR_GENERIC;
@@ -3331,7 +3723,7 @@ upll_rc_t VlinkMoMgr::ValidateCapability(IpcReqRespHeader *req,
   }
 
   UPLL_LOG_TRACE("ctrlr_name(%s), operation : (%d)",
-      ctrlr_name, req->operation);
+                 ctrlr_name, req->operation);
 
   bool result_code = false;
   uint32_t max_instance_count = 0;
@@ -3342,20 +3734,13 @@ upll_rc_t VlinkMoMgr::ValidateCapability(IpcReqRespHeader *req,
     case UNC_OP_CREATE:
       UPLL_LOG_TRACE(" The Controller Name is %s", ctrlr_name);
       result_code = GetCreateCapability(ctrlr_name, ikey->get_key_type(),
-          &max_instance_count, &max_attrs, &attrs);
-      if (result_code && (max_instance_count != 0) &&
-          (cur_instance_count >= max_instance_count)) {
-        UPLL_LOG_DEBUG("[%s:%d:%s max_instance_count %d exceeds %d", __FILE__,
-            __LINE__, __FUNCTION__, cur_instance_count,
-            max_instance_count);
-        return UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
-      }
-
+                                        &max_instance_count, &max_attrs,
+                                        &attrs);
       break;
 
     case UNC_OP_UPDATE:
       result_code = GetUpdateCapability(ctrlr_name, ikey->get_key_type(),
-          &max_attrs, &attrs);
+                                        &max_attrs, &attrs);
       break;
 
     case UNC_OP_READ:
@@ -3363,7 +3748,7 @@ upll_rc_t VlinkMoMgr::ValidateCapability(IpcReqRespHeader *req,
     case UNC_OP_READ_SIBLING_BEGIN:
     case UNC_OP_READ_SIBLING_COUNT:
       result_code = GetReadCapability(ctrlr_name, ikey->get_key_type(),
-          &max_attrs, &attrs);
+                                      &max_attrs, &attrs);
       break;
 
     default:
@@ -3372,8 +3757,8 @@ upll_rc_t VlinkMoMgr::ValidateCapability(IpcReqRespHeader *req,
   }
   if (!result_code) {
     UPLL_LOG_DEBUG("keytype(%d) is not supported by controller(%s) "
-        "for operation(%d)",
-        ikey->get_key_type(), ctrlr_name, req->operation);
+                   "for operation(%d)",
+                   ikey->get_key_type(), ctrlr_name, req->operation);
     return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT;
   }
   val_vlink_t *val_vlink = NULL;
@@ -3387,7 +3772,7 @@ upll_rc_t VlinkMoMgr::ValidateCapability(IpcReqRespHeader *req,
       return ValVlinkAttributeSupportCheck(val_vlink, attrs, req->operation);
     } else {
       UPLL_LOG_DEBUG("Attribute list is empty for operation %d",
-                                                 req->operation);
+                     req->operation);
       return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
     }
   }
@@ -3410,7 +3795,7 @@ upll_rc_t VlinkMoMgr::CheckVnodeInfo(ConfigKeyVal *ikey,
   }
 
   val_vlink_t *vlink_val = reinterpret_cast<val_vlink_t *>
-                               (ConfigKeyVal::Malloc(sizeof(val_vlink_t)));
+      (ConfigKeyVal::Malloc(sizeof(val_vlink_t)));
   vlink_val->valid[UPLL_IDX_VNODE1_NAME_VLNK] = UNC_VF_VALID;
   vlink_val->valid[UPLL_IDX_VNODE1_IF_NAME_VLNK] = UNC_VF_VALID;
   vlink_val->valid[UPLL_IDX_VNODE2_NAME_VLNK] = UNC_VF_INVALID;
@@ -3420,81 +3805,92 @@ upll_rc_t VlinkMoMgr::CheckVnodeInfo(ConfigKeyVal *ikey,
     case UNC_KT_VBRIDGE:
     case UNC_KT_VBR_IF:
       if (!strlen(reinterpret_cast<char *>(reinterpret_cast<key_vbr_if_t*>
-                                  (ikey->get_key())->vbr_key.vbridge_name))) {
+                                           (ikey->get_key())->
+                                           vbr_key.vbridge_name))) {
         free(vlink_val);  // COV RESOURCE LEAK
         delete okey;
         return UPLL_RC_ERR_GENERIC;
       }
       uuu::upll_strncpy(vlink_val->vnode1_name,
-             reinterpret_cast<key_vbr_if_t*>(ikey->get_key())->
-             vbr_key.vbridge_name, (kMaxLenVnodeName+1));
+                        reinterpret_cast<key_vbr_if_t*>(ikey->get_key())->
+                        vbr_key.vbridge_name, (kMaxLenVnodeName+1));
       if (!strlen(reinterpret_cast<char *>(reinterpret_cast<key_vbr_if_t*>
-                                       (ikey->get_key())->if_name))) {
+                                           (ikey->get_key())->if_name))) {
         free(vlink_val);  // COV RESOURCE LEAK
         delete okey;
         return UPLL_RC_ERR_GENERIC;
       }
       uuu::upll_strncpy(vlink_val->vnode1_ifname,
-             reinterpret_cast<key_vbr_if_t*>(ikey->get_key())->if_name,
-              (kMaxLenInterfaceName+1));
+                        reinterpret_cast<key_vbr_if_t*>
+                        (ikey->get_key())->if_name,
+                        (kMaxLenInterfaceName+1));
       if (!strlen(reinterpret_cast<char *>(reinterpret_cast<key_vbr_if_t*>
-                                  (ikey->get_key())->vbr_key.vbridge_name))) {
+                                           (ikey->get_key())->
+                                           vbr_key.vbridge_name))) {
         free(vlink_val);  // COV RESOURCE LEAK
         delete okey;
         return UPLL_RC_ERR_GENERIC;
       }
       uuu::upll_strncpy(vlink_val->vnode2_name, reinterpret_cast<key_vbr_if_t*>
-                                      (ikey->get_key())->vbr_key.vbridge_name,
-                   (kMaxLenVnodeName+1));
+                        (ikey->get_key())->vbr_key.vbridge_name,
+                        (kMaxLenVnodeName+1));
       if (!strlen(reinterpret_cast<char *>(reinterpret_cast<key_vbr_if_t*>
-                                      (ikey->get_key())->if_name))) {
+                                           (ikey->get_key())->if_name))) {
         free(vlink_val);  // COV RESOURCE LEAK
         delete okey;
         return UPLL_RC_ERR_GENERIC;
       }
       uuu::upll_strncpy(vlink_val->vnode2_ifname,
-             reinterpret_cast<key_vbr_if_t*>(ikey->get_key())->if_name,
-              (kMaxLenInterfaceName+1));
+                        reinterpret_cast<key_vbr_if_t*>(ikey->get_key())->
+                        if_name,
+                        (kMaxLenInterfaceName+1));
 
       break;
     case UNC_KT_VROUTER:
     case UNC_KT_VRT_IF:
       if (!strlen(reinterpret_cast<char *>(reinterpret_cast<key_vrt_if_t*>
-                                  (ikey->get_key())->vrt_key.vrouter_name))) {
+                                           (ikey->get_key())->
+                                           vrt_key.vrouter_name))) {
         free(vlink_val);  // COV RESOURCE LEAK
         delete okey;
         return UPLL_RC_ERR_GENERIC;
       }
       uuu::upll_strncpy(vlink_val->vnode1_name,
-        reinterpret_cast<key_vrt_if_t*>(ikey->get_key())->vrt_key.vrouter_name,
-         (kMaxLenVnodeName+1));
+                        reinterpret_cast<key_vrt_if_t*>(ikey->get_key())->
+                        vrt_key.vrouter_name,
+                        (kMaxLenVnodeName+1));
       if (!strlen(reinterpret_cast<char *>(reinterpret_cast<key_vrt_if_t*>
-                                          (ikey->get_key())->if_name))) {
+                                           (ikey->get_key())->if_name))) {
         free(vlink_val);  // COV RESOURCE LEAK
         delete okey;
         return UPLL_RC_ERR_GENERIC;
       }
       uuu::upll_strncpy(vlink_val->vnode1_ifname,
-             reinterpret_cast<key_vrt_if_t*>(ikey->get_key())->if_name,
-             (kMaxLenInterfaceName+1));
+                        reinterpret_cast<key_vrt_if_t*>
+                        (ikey->get_key())->if_name,
+                        (kMaxLenInterfaceName+1));
       if (!strlen(reinterpret_cast<char *>(reinterpret_cast<key_vrt_if_t*>
-                                  (ikey->get_key())->vrt_key.vrouter_name))) {
+                                           (ikey->get_key())->
+                                           vrt_key.vrouter_name))) {
         free(vlink_val);  // COV RESOURCE LEAK
         delete okey;
         return UPLL_RC_ERR_GENERIC;
       }
       uuu::upll_strncpy(vlink_val->vnode2_name,
-        reinterpret_cast<key_vrt_if_t*>(ikey->get_key())->vrt_key.vrouter_name,
-        (kMaxLenVnodeName+1));
+                        reinterpret_cast<key_vrt_if_t*>
+                        (ikey->get_key())->
+                        vrt_key.vrouter_name,
+                        (kMaxLenVnodeName+1));
       if (!strlen(reinterpret_cast<char *>(reinterpret_cast<key_vrt_if_t*>
-                                          (ikey->get_key())->if_name))) {
+                                           (ikey->get_key())->if_name))) {
         free(vlink_val);  // COV RESOURCE LEAK
         delete okey;
         return UPLL_RC_ERR_GENERIC;
       }
       uuu::upll_strncpy(vlink_val->vnode2_ifname,
-             reinterpret_cast<key_vrt_if_t*>(ikey->get_key())->if_name,
-             (kMaxLenInterfaceName+1));
+                        reinterpret_cast<key_vrt_if_t*>
+                        (ikey->get_key())->if_name,
+                        (kMaxLenInterfaceName+1));
       break;
     default:
       break;
@@ -3536,7 +3932,7 @@ upll_rc_t VlinkMoMgr::IsReferenced(ConfigKeyVal *ikey,
   }
   DbSubOp dbop1 = { kOpReadSingle, kOpMatchNone, kOpInOutFlag};
   result_code = ReadConfigDB(ck_vlink, dt_type, UNC_OP_READ, dbop1,
-                                  dmi, MAINTBL);
+                             dmi, MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("Invalid param %d", result_code);
     delete ck_vlink;
@@ -3546,6 +3942,40 @@ upll_rc_t VlinkMoMgr::IsReferenced(ConfigKeyVal *ikey,
   uint8_t if_flag = 0;
   /* reset the bits of the interfaces constituiing the vlink */
   SET_USER_DATA_FLAGS(ck_vlink->get_cfg_val(), kVlinkVnode1);
+
+  /* In bdry vlanmap case: During vlink delete, get
+   * logical_port_id from UPPL. It is required for updating flag
+   * in correct entry in vlan-map table */
+  if ((GetVlinkVnodeIfKeyType(ck_vlink, 0) == UNC_KT_VBR_VLANMAP) ||
+      (GetVlinkVnodeIfKeyType(ck_vlink, 1) == UNC_KT_VBR_VLANMAP)) {
+    uint32_t session_id = 0;
+    uint32_t config_id  = 0;
+
+    unc::tclib::TcLibModule *tclib =
+        unc::upll::config_momgr::UpllConfigMgr::GetTcLibModule();
+    PFC_ASSERT(tclib != NULL);
+    if (tclib == NULL) {
+      UPLL_LOG_ERROR("Unable to get tclib module");
+      return UPLL_RC_ERR_GENERIC;
+    }
+
+    /* Get current session_id and config_id from TcLib */
+    tclib->GetSessionAttributes(&session_id, &config_id);
+    UPLL_LOG_TRACE("session_id = %u. config_id = %u", session_id, config_id);
+
+    IpcReqRespHeader req;
+    memset(&req, 0, sizeof(IpcReqRespHeader));
+    req.clnt_sess_id = session_id;
+    req.config_id    = config_id;
+
+    val_vlink_t *vlink_val = reinterpret_cast<val_vlink_t *>(GetVal(ck_vlink));
+    /* Get logical_port_id details from physical*/
+    upll_rc_t rc = ValidateBoundary(vlink_val->boundary_name, &req);
+    if (rc != UPLL_RC_SUCCESS) {
+      delete ck_vlink;
+      return UPLL_RC_ERR_CFG_SEMANTIC;
+    }
+  }
   for (int i = 0 ; i < 2; i++) {
     bool executed = false;
     unc_key_type_t ktype;
@@ -3557,7 +3987,7 @@ upll_rc_t VlinkMoMgr::IsReferenced(ConfigKeyVal *ikey,
       return UPLL_RC_ERR_GENERIC;
     }
     MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager*>
-                                        (GetMoManager(ktype)));
+                                                   (GetMoManager(ktype)));
     ConfigKeyVal *ck_vnif = NULL;
     result_code = mgr->GetChildConfigKey(ck_vnif, ck_vlink);
     if (!ck_vnif || result_code != UPLL_RC_SUCCESS) {
@@ -3565,6 +3995,37 @@ upll_rc_t VlinkMoMgr::IsReferenced(ConfigKeyVal *ikey,
       delete ck_vlink;
       return result_code;
     }
+    /* VlanmapOnBoundary: Boundary-vlanmap case: vlink deletion-
+     * Update the flag & ref_count in vlanmap_tbl if ref(user) exists else
+     * delete the entry in vlanmap_tbl */
+    if (ktype == UNC_KT_VBR_VLANMAP) {
+      SET_USER_DATA_FLAGS(ck_vnif, 0);
+
+      uint8_t *logical_port_id = NULL;
+      uint8_t flags = 0;
+
+      GET_USER_DATA_FLAGS(ck_vlink->get_cfg_val(), flags);
+      flags &= VLINK_FLAG_NODE_POS;
+
+      val_boundary_t *boundary_val = reinterpret_cast<val_boundary_t *>(
+          GetVal(ck_boundary));
+
+      if (flags == kVlinkVnode2)
+        logical_port_id = boundary_val->logical_port_id2;
+      else
+        logical_port_id = boundary_val->logical_port_id1;
+
+      key_vlan_map_t *vlanmap_key  = reinterpret_cast<key_vlan_map_t *>(
+          ck_vnif->get_key());
+
+      /* Populate the logcial port id before updating vlanmap tbl */
+      if (logical_port_id) {
+        uuu::upll_strncpy(vlanmap_key->logical_port_id, logical_port_id,
+                          (kMaxLenLogicalPortId + 1));
+        vlanmap_key->logical_port_id_valid = PFC_TRUE;
+      }
+    }
+
     result_code = mgr->ReadConfigDB(ck_vnif, dt_type, UNC_OP_READ,
                                     dbop1, dmi, MAINTBL);
     if (result_code != UPLL_RC_SUCCESS) {
@@ -3573,23 +4034,41 @@ upll_rc_t VlinkMoMgr::IsReferenced(ConfigKeyVal *ikey,
       delete ck_vlink;
       return result_code;
     }
-    GET_USER_DATA_FLAGS(ck_vnif, if_flag);
-    if_flag &= ~VIF_TYPE;
-    SET_USER_DATA_FLAGS(ck_vnif, if_flag);
-    vnode_if_type vnif_type;
-    result_code = UpdateVlinkMemIfFlag(dt_type, ck_vnif, dmi,
-                                           vnif_type, mgr, UNC_OP_DELETE);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Returning error %d", result_code);
-      delete ck_vnif;
-      delete ck_vlink;
-      return result_code;
+
+    /* VlanmapOnBoundary: If kt is vlanmap (bdry vlanmap case):
+     * NotifyPOMForPortMapVlinkFlag is not reqd
+     * UpdateVlinkMemIfFlag will be done inside switch case */
+    if (ktype != UNC_KT_VBR_VLANMAP) {
+      GET_USER_DATA_FLAGS(ck_vnif, if_flag);
+      if_flag &= ~VIF_TYPE;
+      SET_USER_DATA_FLAGS(ck_vnif, if_flag);
+      vnode_if_type vnif_type;
+      result_code = NotifyPOMForPortMapVlinkFlag(dt_type,
+                                                 ck_vnif,
+                                                 dmi,
+                                                 UNC_OP_DELETE);
+
+      if (result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("NotifyPOMForPortMapVlinkFlag returning error %d",
+                       result_code);
+        delete ck_vnif;
+        delete ck_vlink;
+        return result_code;
+      }
+      result_code = UpdateVlinkMemIfFlag(dt_type, ck_vnif, dmi,
+                                         vnif_type, mgr, UNC_OP_DELETE);
+      if (result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("Returning error %d", result_code);
+        delete ck_vnif;
+        delete ck_vlink;
+        return result_code;
+      }
+      UPLL_LOG_DEBUG("Reset bit for iftype %d", vnif_type);
     }
-    UPLL_LOG_DEBUG("Reset bit for iftype %d", vnif_type);
     switch (ktype) {
       case UNC_KT_VBR_IF: {
         val_drv_vbr_if *val_drv_vbr = reinterpret_cast<val_drv_vbr_if *>
-                                  (GetVal(ck_vnif));
+            (GetVal(ck_vnif));
         if (val_drv_vbr == NULL) {
           UPLL_LOG_DEBUG("Invalid param");
           delete ck_vnif;
@@ -3599,11 +4078,11 @@ upll_rc_t VlinkMoMgr::IsReferenced(ConfigKeyVal *ikey,
         if (val_drv_vbr->vbr_if_val.valid[UPLL_IDX_PM_VBRI] == UNC_VF_VALID) {
           executed = true;
           val_drv_vbr->vbr_if_val.valid[UPLL_IDX_PM_VBRI] =
-                                        UNC_VF_VALID_NO_VALUE;
+              UNC_VF_VALID_NO_VALUE;
           val_drv_vbr->vbr_if_val.valid[UPLL_IDX_ADMIN_STATUS_VBRI] =
-                                                           UNC_VF_INVALID;
+              UNC_VF_INVALID;
           result_code = reinterpret_cast<VbrIfMoMgr *>(mgr)->
-                           UpdateConfigVal(ck_vnif, dt_type, dmi);
+              UpdateConfigVal(ck_vnif, dt_type, dmi);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("Returning %d", result_code);
             delete ck_vnif;
@@ -3626,7 +4105,7 @@ upll_rc_t VlinkMoMgr::IsReferenced(ConfigKeyVal *ikey,
           vtepif_val->valid[UPLL_IDX_ADMIN_ST_VTEPI] = UNC_VF_INVALID;
           vtepif_val->valid[UPLL_IDX_PORT_MAP_VTEPI] = UNC_VF_VALID_NO_VALUE;
           result_code = reinterpret_cast<VtepIfMoMgr *>(mgr)->
-                         UpdateConfigVal(ck_vnif, dt_type, dmi);
+              UpdateConfigVal(ck_vnif, dt_type, dmi);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("UpdateConfigVal returned %d", result_code);
             delete ck_vnif;
@@ -3638,7 +4117,7 @@ upll_rc_t VlinkMoMgr::IsReferenced(ConfigKeyVal *ikey,
       }
       case UNC_KT_VTUNNEL_IF: {
         val_vtunnel_if *vtunnelif_val = static_cast<val_vtunnel_if *>
-                                        (GetVal(ck_vnif));
+            (GetVal(ck_vnif));
         if (vtunnelif_val == NULL) {
           UPLL_LOG_DEBUG("Invalid param");
           delete ck_vlink;
@@ -3647,10 +4126,10 @@ upll_rc_t VlinkMoMgr::IsReferenced(ConfigKeyVal *ikey,
         if (vtunnelif_val->valid[UPLL_IDX_PORT_MAP_VTNL_IF] == UNC_VF_VALID) {
           executed = true;
           vtunnelif_val->valid[UPLL_IDX_PORT_MAP_VTNL_IF] =
-                               UNC_VF_VALID_NO_VALUE;
+              UNC_VF_VALID_NO_VALUE;
           vtunnelif_val->valid[UPLL_IDX_ADMIN_ST_VTNL_IF] = UNC_VF_INVALID;
           result_code = reinterpret_cast<VtunnelIfMoMgr *>(mgr)->
-                         UpdateConfigVal(ck_vnif, dt_type, dmi);
+              UpdateConfigVal(ck_vnif, dt_type, dmi);
           if (result_code != UPLL_RC_SUCCESS) {
             delete ck_vnif;
             delete ck_vlink;
@@ -3660,6 +4139,100 @@ upll_rc_t VlinkMoMgr::IsReferenced(ConfigKeyVal *ikey,
         }
         break;
       }
+      /* VlanmapOnBoundary: Added vlanmap case */
+      case UNC_KT_VBR_VLANMAP: {
+        pfcdrv_val_vlan_map_t *vlanmap_val = static_cast
+            <pfcdrv_val_vlan_map_t *> (GetVal(ck_vnif));
+        if (vlanmap_val == NULL) {
+          UPLL_LOG_DEBUG("vlanmap_val is NULL");
+          delete ck_vlink;
+          return UPLL_RC_ERR_GENERIC;
+        }
+        uint8_t flags = 0;
+        GET_USER_DATA_FLAGS(ck_vnif, flags);
+
+        if (vlanmap_val->vm.valid[UPLL_IDX_VLAN_ID_VM] == UNC_VF_VALID) {
+          /* Update only bdry_ref_count or flag if it refered with
+           * other vlink or vlan_map*/
+          if (((flags & USER_VLANMAP_FLAG) &&
+               vlanmap_val->bdry_ref_count > 0)||
+              (flags & USER_VLANMAP_FLAG) ||
+              vlanmap_val->bdry_ref_count > 1) {
+            UPLL_LOG_TRACE("Both user & boundary configured;"
+                           "bdry_ref_count:%u",
+                           vlanmap_val->bdry_ref_count);
+            if (vlanmap_val->bdry_ref_count == 1) {
+              UPLL_LOG_TRACE("Vlanmap Flag before reset = %u", flags);
+              flags &= ~BOUNDARY_VLANMAP_FLAG;
+              SET_USER_DATA_FLAGS(ck_vnif, flags);
+              vlanmap_val->valid[PFCDRV_IDX_BDRY_REF_COUNT] =
+                  UNC_VF_VALID_NO_VALUE;
+            }
+
+            vlanmap_val->bdry_ref_count--;
+            DbSubOp dbop1 = { kOpNotRead, kOpMatchNone, kOpInOutFlag };
+            result_code = mgr->UpdateConfigDB(ck_vnif, dt_type, UNC_OP_UPDATE,
+                                              dmi, &dbop1, MAINTBL);
+            if (UPLL_RC_SUCCESS != result_code) {
+              UPLL_LOG_ERROR("bdry_ref_count update failed:%d", result_code);
+              delete ck_vnif;
+              delete ck_vlink;
+              return result_code;
+            }
+          } else {
+            /* Deletes vlanmap entry*/
+            DbSubOp dbop = { kOpNotRead, kOpMatchNone, kOpInOutNone };
+            result_code = mgr->UpdateConfigDB(ck_vnif, dt_type, UNC_OP_DELETE,
+                                              dmi, &dbop, MAINTBL);
+            if (result_code != UPLL_RC_SUCCESS) {
+              UPLL_LOG_DEBUG("UpdateConfigDB returns error = %d", result_code);
+              delete ck_vnif;
+              delete ck_vlink;
+              return result_code;
+            }
+          }
+        }
+        delete ck_vnif;
+
+        ConfigKeyVal *vbrif_ckv = NULL;
+        MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager*>
+                                                       (GetMoManager
+                                                        (UNC_KT_VBR_IF)));
+        result_code = mgr->GetChildConfigKey(vbrif_ckv, ck_vlink);
+        if (!vbrif_ckv || result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("GetChildConfigKey error = %d", result_code);
+          delete ck_vlink;
+          return result_code;
+        }
+        /* Reads vbr_if info from DB */
+        result_code = mgr->ReadConfigDB(vbrif_ckv, dt_type, UNC_OP_READ,
+                                        dbop1, dmi, MAINTBL);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("ReadConfigDB error = %d", result_code);
+          delete vbrif_ckv;
+          delete ck_vlink;
+          return result_code;
+        }
+
+        /* During no vlink resets vnode interface flag */
+        GET_USER_DATA_FLAGS(vbrif_ckv, if_flag);
+        if_flag &= ~VIF_TYPE;
+        SET_USER_DATA_FLAGS(vbrif_ckv, if_flag);
+        vnode_if_type vnif_type;
+        UPLL_LOG_TRACE("Vlanmap delete vbr_if flag = %u", if_flag);
+
+        result_code = UpdateVlinkMemIfFlag(dt_type, vbrif_ckv, dmi,
+                                           vnif_type, mgr, UNC_OP_DELETE);
+        DELETE_IF_NOT_NULL(vbrif_ckv);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("UpdateVlinkVlanmapFlag error = %d", result_code);
+          delete ck_vlink;
+          return result_code;
+        }
+
+        SET_USER_DATA_FLAGS(ck_vlink->get_cfg_val(), kVlinkVnode2);
+        continue;
+      }
       default:
         UPLL_LOG_TRACE("No Portmap");
     }
@@ -3677,14 +4250,16 @@ upll_rc_t VlinkMoMgr::IsReferenced(ConfigKeyVal *ikey,
     SET_USER_DATA_FLAGS(ck_vlink->get_cfg_val(), kVlinkVnode2);
     delete ck_vnif;
   }
+  DELETE_IF_NOT_NULL(ck_boundary);
   delete ck_vlink;
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t VlinkMoMgr::SetConsolidatedStatus(ConfigKeyVal *vlink,
-                                      unc_keytype_operation_t op,
-                            unc_keytype_configstatus_t cs_status,
-                                                 DalDmlIntf *dmi) {
+upll_rc_t VlinkMoMgr::SetConsolidatedStatus(
+    ConfigKeyVal *vlink,
+    unc_keytype_operation_t op,
+    unc_keytype_configstatus_t cs_status,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_vlink *vlink_val = reinterpret_cast<val_vlink *>(GetVal(vlink));
@@ -3696,21 +4271,27 @@ upll_rc_t VlinkMoMgr::SetConsolidatedStatus(ConfigKeyVal *vlink,
   }
   ConfigKeyVal *vnif[2] = {NULL, NULL};
   unc_keytype_configstatus_t if_cstatus[2],
-                    vlanid_cstatus[2] = {UNC_CS_UNKNOWN, UNC_CS_UNKNOWN};
+                             vlanid_cstatus[2] = {UNC_CS_UNKNOWN,
+                               UNC_CS_UNKNOWN};
   VlinkNodePosition vnode_number = kVlinkVnode1;
   uint8_t rename_flag = 0;
   GET_USER_DATA_FLAGS(vlink->get_cfg_val(), rename_flag);
   for (int i = 0; i < 2; i++) {
     unc_key_type_t ktype = GetVlinkVnodeIfKeyType(vlink, i);
     VnodeChildMoMgr *mgr = reinterpret_cast<VnodeChildMoMgr *>
-                                       (const_cast<MoManager*>
-                                        (GetMoManager(ktype)));
+        (const_cast<MoManager*>
+         (GetMoManager(ktype)));
     if (!mgr) {
       UPLL_LOG_DEBUG("Invalid mgr");
       return UPLL_RC_ERR_GENERIC;
     }
     SET_USER_DATA_FLAGS(vlink->get_cfg_val(), vnode_number);
-    mgr->GetChildConfigKey(vnif[i], vlink);
+    result_code = mgr->GetChildConfigKey(vnif[i], vlink);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("GetChildConfigKey failed result code %d", result_code);
+      return result_code;
+    }
+
     DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutCs };
     result_code = mgr->ReadConfigDB(vnif[i], UPLL_DT_STATE, UNC_OP_READ,
                                     dbop, dmi, MAINTBL);
@@ -3742,68 +4323,99 @@ upll_rc_t VlinkMoMgr::SetConsolidatedStatus(ConfigKeyVal *vlink,
       UPLL_LOG_DEBUG("Invalid param");
       return UPLL_RC_ERR_GENERIC;
     }
-    if (strncmp(reinterpret_cast<char *>(ctrlr1), 
-                reinterpret_cast<char *>(ctrlr2), kMaxLenCtrlrId+1) || 
+    if (strncmp(reinterpret_cast<char *>(ctrlr1),
+                reinterpret_cast<char *>(ctrlr2), kMaxLenCtrlrId+1) ||
         strncmp(reinterpret_cast<char *>(dom1),
-                reinterpret_cast<char *>(dom2),kMaxLenDomainId+1)) 
+                reinterpret_cast<char *>(dom2), kMaxLenDomainId+1))
       bound_vlink = true;
   }
   if ((op == UNC_OP_CREATE) || (op == UNC_OP_UPDATE)) {
-    val_db_vlink_st *val_vlink_st = reinterpret_cast<val_db_vlink_st *>
-                     (GetStateVal(vlink));
-    UPLL_LOG_TRACE("updated vlink %s down_count %x\n",
-                    vlink->ToStrAll().c_str(), val_vlink_st->down_count);
     if (bound_vlink) {
       unc_key_type_t if_ktype = vnif[0]->get_key_type();
       unc_keytype_configstatus_t c_status = UNC_CS_UNKNOWN;
       val_port_map *pm, *pm1, *pm2;
       pm = pm1 = pm2 = NULL;
+
+      val_vlan_map *vlanmap = NULL, *vlanmap1 = NULL, *vlanmap2 = NULL;
       for (int if_type = 0; if_type < 2; if_type++) {
         switch (if_ktype) {
-        case UNC_KT_VBR_IF: {
-          pm = &(reinterpret_cast<val_drv_vbr_if *>
-                             (GetVal(vnif[if_type]))->vbr_if_val.portmap);
-          c_status = (unc_keytype_configstatus_t)
-                     (reinterpret_cast<val_vbr_if *>
-                     (GetVal(vnif[if_type]))->cs_row_status); }
-        break;
-        case UNC_KT_VTEP_IF: {
-          pm = &(reinterpret_cast<val_vtep_if *>
-                             (GetVal(vnif[if_type]))->portmap);
-          c_status = (unc_keytype_configstatus_t)
-                     (reinterpret_cast<val_vtep_if *>
-                     (GetVal(vnif[if_type]))->cs_row_status); }
-        break;
-        case UNC_KT_VTUNNEL_IF: {
-          pm = &(reinterpret_cast<val_vtunnel_if *>
-                             (GetVal(vnif[if_type]))->portmap);
-          c_status = (unc_keytype_configstatus_t)
-                     (reinterpret_cast<val_vtunnel_if *>
-                     (GetVal(vnif[if_type]))->cs_row_status); }
-        break;
-        case UNC_KT_VUNK_IF: {
-          c_status = (unc_keytype_configstatus_t)
-                     (reinterpret_cast<val_vunk_if *>
-                     (GetVal(vnif[if_type]))->cs_row_status); }
-        default:
-        break;
+          case UNC_KT_VBR_IF: {
+            val_vbr_if *vbr_ifval = &(reinterpret_cast<val_drv_vbr_if *>
+                                      (GetVal(vnif[if_type]))->vbr_if_val);
+            pm = &(vbr_ifval->portmap);
+            c_status = (unc_keytype_configstatus_t)
+                (vbr_ifval->cs_row_status); }
+            break;
+            /* VlanmapOnBoundary: Added vlanmap case */
+          case UNC_KT_VBR_VLANMAP: {
+            vlanmap = &(reinterpret_cast<pfcdrv_val_vlan_map *>
+                        (GetVal(vnif[if_type]))->vm);
+            c_status = (unc_keytype_configstatus_t)
+                (reinterpret_cast<pfcdrv_val_vlan_map*>
+                 (GetVal(vnif[if_type]))->vm.cs_row_status); }
+            break;
+          case UNC_KT_VTEP_IF: {
+            pm = &(reinterpret_cast<val_vtep_if *>
+                   (GetVal(vnif[if_type]))->portmap);
+            c_status = (unc_keytype_configstatus_t)
+                (reinterpret_cast<val_vtep_if *>
+                 (GetVal(vnif[if_type]))->cs_row_status); }
+            break;
+          case UNC_KT_VTUNNEL_IF: {
+            pm = &(reinterpret_cast<val_vtunnel_if *>
+                   (GetVal(vnif[if_type]))->portmap);
+            c_status = (unc_keytype_configstatus_t)
+                (reinterpret_cast<val_vtunnel_if *>
+                 (GetVal(vnif[if_type]))->cs_row_status); }
+            break;
+          case UNC_KT_VUNK_IF: {
+            c_status = (unc_keytype_configstatus_t)
+                (reinterpret_cast<val_vunk_if *>
+                 (GetVal(vnif[if_type]))->cs_row_status); }
+          default:
+                               break;
+        }
+        if (if_type == 0) {
+          /* VlanmapOnBoundary: changes */
+          if (if_ktype == UNC_KT_VBR_VLANMAP) {
+            vlanmap1 = vlanmap;
+          } else {
+            pm1 = static_cast<val_port_map *>(pm);
+          }
+        } else {
+          /* VlanmapOnBoundary: changes */
+          if (if_ktype == UNC_KT_VBR_VLANMAP) {
+            vlanmap2 = vlanmap;
+          } else {
+            pm2 = static_cast<val_port_map *>(pm);
+          }
         }
-        if (if_type == 0)
-          pm1 = static_cast<val_port_map *>(pm);
-        else
-          pm2 = static_cast<val_port_map *>(pm);
         // Assign Configstatus
         if_cstatus[if_type] = c_status;
         if_ktype = vnif[1]->get_key_type();
       }
+      /* VlanmapOnBoundary: changes */
+      if (vlanmap1 &&
+          (vlanmap1->valid[UPLL_IDX_VLAN_ID_VM] == UNC_VF_VALID ||
+           vlanmap1->valid[UPLL_IDX_VLAN_ID_VM] == UNC_VF_VALID_NO_VALUE)) {
+        vlanid_cstatus[0] = (unc_keytype_configstatus_t)
+            (vlanmap1->cs_attr[UPLL_IDX_VLAN_ID_VM]);
+      }
+      /* VlanmapOnBoundary: changes */
+      if (vlanmap2 &&
+          (vlanmap2->valid[UPLL_IDX_VLAN_ID_VM] == UNC_VF_VALID ||
+           vlanmap2->valid[UPLL_IDX_VLAN_ID_VM] == UNC_VF_VALID_NO_VALUE)) {
+        vlanid_cstatus[1] = (unc_keytype_configstatus_t)
+            (vlanmap2->cs_attr[UPLL_IDX_VLAN_ID_VM]);
+      }
       if (pm1 && (pm1->valid[UPLL_IDX_VLAN_ID_PM] == UNC_VF_VALID ||
-          pm1->valid[UPLL_IDX_VLAN_ID_PM] == UNC_VF_VALID_NO_VALUE))
+                  pm1->valid[UPLL_IDX_VLAN_ID_PM] == UNC_VF_VALID_NO_VALUE))
         vlanid_cstatus[0] = (unc_keytype_configstatus_t)
-                       (pm1->cs_attr[UPLL_IDX_VLAN_ID_PM]);
-      if (pm2 && (pm1->valid[UPLL_IDX_VLAN_ID_PM] == UNC_VF_VALID ||
-          pm2->valid[UPLL_IDX_VLAN_ID_PM] == UNC_VF_VALID_NO_VALUE))
+            (pm1->cs_attr[UPLL_IDX_VLAN_ID_PM]);
+      if (pm2 && (pm2->valid[UPLL_IDX_VLAN_ID_PM] == UNC_VF_VALID ||
+                  pm2->valid[UPLL_IDX_VLAN_ID_PM] == UNC_VF_VALID_NO_VALUE))
         vlanid_cstatus[1] = (unc_keytype_configstatus_t)
-                        (pm2->cs_attr[UPLL_IDX_VLAN_ID_PM]);
+            (pm2->cs_attr[UPLL_IDX_VLAN_ID_PM]);
       if ((vlanid_cstatus[0] == UNC_CS_APPLIED) &&
           (vlanid_cstatus[1] == UNC_CS_APPLIED))
         vlink_val->cs_attr[UPLL_IDX_VLAN_ID_VLNK] = UNC_CS_APPLIED;
@@ -3814,30 +4426,32 @@ upll_rc_t VlinkMoMgr::SetConsolidatedStatus(ConfigKeyVal *vlink,
                (vlanid_cstatus[1] == UNC_CS_NOT_APPLIED))
         vlink_val->cs_attr[UPLL_IDX_VLAN_ID_VLNK]  = UNC_CS_NOT_APPLIED;
       else {
-        if (node_vunk_if == 1) // If first node is KT_VUNKOWN_IF
+        if (node_vunk_if == 1)  // If first node is KT_VUNKOWN_IF
           vlink_val->cs_attr[UPLL_IDX_VLAN_ID_VLNK] = vlanid_cstatus[1];
         else if (node_vunk_if == 2)  // If second node is KT_VUNKOWN_IF
           vlink_val->cs_attr[UPLL_IDX_VLAN_ID_VLNK] = vlanid_cstatus[0];
         else  // Set Partially Applied for other cases
           vlink_val->cs_attr[UPLL_IDX_VLAN_ID_VLNK] =
-                                          UNC_CS_PARTIALLY_APPLIED;
+              UNC_CS_PARTIALLY_APPLIED;
       }
-    /* update consolidated config status if boundary vlink */
+      /* update consolidated config status if boundary vlink */
       if (op == UNC_OP_CREATE)  {
-      vlink_val->cs_attr[UPLL_IDX_VNODE1_IF_NAME_VLNK] = if_cstatus[0];
-      vlink_val->cs_attr[UPLL_IDX_VNODE2_IF_NAME_VLNK] = if_cstatus[1];
-
-      if ((if_cstatus[0] == UNC_CS_APPLIED) &&
-        (if_cstatus[1] == UNC_CS_APPLIED))
-        vlink_val->cs_row_status = UNC_CS_APPLIED;
-      else if ((if_cstatus[0] == UNC_CS_INVALID) ||
-           (if_cstatus[1] == UNC_CS_INVALID))
-        vlink_val->cs_row_status = UNC_CS_INVALID;
-      else if ((if_cstatus[0] == UNC_CS_NOT_APPLIED) &&
-           (if_cstatus[1] == UNC_CS_NOT_APPLIED))
-        vlink_val->cs_row_status = UNC_CS_NOT_APPLIED;
-      else
-        vlink_val->cs_row_status = UNC_CS_PARTIALLY_APPLIED;
+        vlink_val->cs_attr[UPLL_IDX_VNODE1_NAME_VLNK] = if_cstatus[0];
+        vlink_val->cs_attr[UPLL_IDX_VNODE2_NAME_VLNK] = if_cstatus[1];
+        vlink_val->cs_attr[UPLL_IDX_VNODE1_IF_NAME_VLNK] = if_cstatus[0];
+        vlink_val->cs_attr[UPLL_IDX_VNODE2_IF_NAME_VLNK] = if_cstatus[1];
+
+        if ((if_cstatus[0] == UNC_CS_APPLIED) &&
+            (if_cstatus[1] == UNC_CS_APPLIED))
+          vlink_val->cs_row_status = UNC_CS_APPLIED;
+        else if ((if_cstatus[0] == UNC_CS_INVALID) ||
+                 (if_cstatus[1] == UNC_CS_INVALID))
+          vlink_val->cs_row_status = UNC_CS_INVALID;
+        else if ((if_cstatus[0] == UNC_CS_NOT_APPLIED) &&
+                 (if_cstatus[1] == UNC_CS_NOT_APPLIED))
+          vlink_val->cs_row_status = UNC_CS_NOT_APPLIED;
+        else
+          vlink_val->cs_row_status = UNC_CS_PARTIALLY_APPLIED;
       }
     }
   }
@@ -3850,13 +4464,13 @@ upll_rc_t VlinkMoMgr::SetOperStatus(ConfigKeyVal *ikey, DalDmlIntf *dmi,
                                     state_notification notification,
                                     bool skip) {
   UPLL_FUNC_TRACE;
-//  bool oper_change = false;
+  //  bool oper_change = false;
   if (!ikey) {
     UPLL_LOG_DEBUG("ikey is NULL");
     return UPLL_RC_ERR_GENERIC;
   }
-  UPLL_LOG_DEBUG("notification %d skip %d ikey %s\n",notification,skip,
-                    ikey->ToStrAll().c_str());
+  UPLL_LOG_DEBUG("notification %d skip %d ikey %s\n", notification, skip,
+                 ikey->ToStrAll().c_str());
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   if (!skip) {
     DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutNone };
@@ -3872,8 +4486,8 @@ upll_rc_t VlinkMoMgr::SetOperStatus(ConfigKeyVal *ikey, DalDmlIntf *dmi,
     ConfigVal *tmp =
         (ikey->get_cfg_val()) ? ikey->get_cfg_val()->get_next_cfg_val() : NULL;
     val_db_vlink_st *vlink_db_valst = (tmp != NULL) ?
-                      reinterpret_cast<val_db_vlink_st_t *>
-                      (tmp->get_val()) : NULL;
+        reinterpret_cast<val_db_vlink_st_t *>
+        (tmp->get_val()) : NULL;
     if (vlink_db_valst == NULL) {
       UPLL_LOG_ERROR("Returning error \n");
       return UPLL_RC_ERR_GENERIC;
@@ -3884,23 +4498,28 @@ upll_rc_t VlinkMoMgr::SetOperStatus(ConfigKeyVal *ikey, DalDmlIntf *dmi,
       return UPLL_RC_ERR_GENERIC;
     }
     val_vlink_st_t *vlink_valst = reinterpret_cast<val_vlink_st_t *>
-                                                 (vlink_db_valst);
+        (vlink_db_valst);
 
     /* Update oper status based on notification */
     vlink_valst->valid[UPLL_IDX_OPER_STATUS_VLNKS] = UNC_VF_VALID;
 
     switch (notification) {
-      case kCtrlrReconnectIfUp: 
+      case kCtrlrReconnectIfUp:
       case kCtrlrReconnectIfDown: {
         val_vlink* vlink_val = reinterpret_cast<val_vlink*>(GetVal(ikey));
         if (!vlink_val) {
           UPLL_LOG_DEBUG("val vlink is NULL");
           return UPLL_RC_ERR_GENERIC;
         }
-        if (vlink_valst->oper_status == UPLL_OPER_STATUS_UP ||
-            vlink_valst->oper_status == UPLL_OPER_STATUS_DOWN) {
+        if ((vlink_valst->oper_status == UPLL_OPER_STATUS_UP &&
+             notification == kCtrlrReconnectIfUp)||
+            (vlink_valst->oper_status == UPLL_OPER_STATUS_DOWN)) {
           return result_code;
         }
+        if (vlink_valst->oper_status == UPLL_OPER_STATUS_UP &&
+            notification == kCtrlrReconnectIfDown) {
+          vlink_valst->oper_status = UPLL_OPER_STATUS_DOWN;
+        }
         if (notification == kCtrlrReconnectIfUp &&
             vlink_val->admin_status == UPLL_ADMIN_ENABLE ) {
           vlink_valst->oper_status = UPLL_OPER_STATUS_UP;
@@ -3908,14 +4527,15 @@ upll_rc_t VlinkMoMgr::SetOperStatus(ConfigKeyVal *ikey, DalDmlIntf *dmi,
           vlink_valst->oper_status = UPLL_OPER_STATUS_DOWN;
         }
       }
-      break;
+        break;
       case kCtrlrDisconnect:
+      case kPortUnknown:
         if (vlink_valst->oper_status == UPLL_OPER_STATUS_UNKNOWN) {
           return UPLL_RC_SUCCESS;
         }
         vlink_valst->oper_status = UPLL_OPER_STATUS_UNKNOWN;
         vlink_db_valst->down_count = 0;
-      break;
+        break;
       case kAdminStatusDisabled:
         vlink_valst->oper_status = UPLL_OPER_STATUS_DOWN;
         break;
@@ -3931,10 +4551,10 @@ upll_rc_t VlinkMoMgr::SetOperStatus(ConfigKeyVal *ikey, DalDmlIntf *dmi,
         vlink_db_valst->down_count = (vlink_db_valst->down_count + 1);
         if (vlink_db_valst->down_count == 1) {
           vlink_valst->oper_status = UPLL_OPER_STATUS_DOWN;
-      //    oper_change = true;
+          //    oper_change = true;
         }
       }
-      break;
+        break;
       case kPathFaultReset:
       case kPortFaultReset:
       case kBoundaryFaultReset: {
@@ -3943,12 +4563,19 @@ upll_rc_t VlinkMoMgr::SetOperStatus(ConfigKeyVal *ikey, DalDmlIntf *dmi,
         if (vlink_db_valst->down_count == 0) {
           if (vlink_val->admin_status == UPLL_ADMIN_ENABLE) {
             vlink_valst->oper_status = UPLL_OPER_STATUS_UP;
-          // generate alarm
-     //     oper_change = true;
+            // generate alarm
+            // oper_change = true;
           }
         }
       }
-      break;
+        break;
+      case kBoundaryFaultResetWithAdminDisabled:
+      case kPortFaultResetWithAdminDisabled:
+        vlink_db_valst->down_count = (vlink_db_valst->down_count > 0) ?
+            (vlink_db_valst->down_count - 1) : 0;
+        // oper stays down as admin status of component if is disabled
+        vlink_valst->oper_status = UPLL_OPER_STATUS_DOWN;
+        break;
       default:
         UPLL_LOG_DEBUG("Invalid nofification");
         return UPLL_RC_ERR_GENERIC;
@@ -3957,8 +4584,8 @@ upll_rc_t VlinkMoMgr::SetOperStatus(ConfigKeyVal *ikey, DalDmlIntf *dmi,
     DbSubOp dbop = { kOpNotRead, kOpMatchNone, kOpInOutNone };
     result_code = UpdateConfigDB(ikey, UPLL_DT_STATE, UNC_OP_UPDATE, dmi,
                                  &dbop, MAINTBL);
-  UPLL_LOG_DEBUG("Vlink SetOperstatus for VTN after Update is \n %s",
-                    ikey->ToStrAll().c_str());
+    UPLL_LOG_DEBUG("Vlink SetOperstatus for VTN after Update is \n %s",
+                   ikey->ToStrAll().c_str());
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_ERROR("Error in update oper status");
       return result_code;
@@ -3966,8 +4593,8 @@ upll_rc_t VlinkMoMgr::SetOperStatus(ConfigKeyVal *ikey, DalDmlIntf *dmi,
     if (skip) break;
     ikey = ikey->get_next_cfg_key_val();
   }
-//  if (ikey->get_cfg_val())
-//    delete ikey->get_cfg_val();
+  //  if (ikey->get_cfg_val())
+  //    delete ikey->get_cfg_val();
   return result_code;
 }
 
@@ -3984,7 +4611,7 @@ upll_rc_t VlinkMoMgr::MergeValidate(unc_key_type_t keytype,
   ConfigKeyVal *dup_key = NULL;
   result_code = GetChildConfigKey(dup_key, ikey);
   if (UPLL_RC_SUCCESS != result_code) {
-    if(dup_key) delete dup_key;
+    if (dup_key) delete dup_key;
     UPLL_LOG_DEBUG("GetChildConfigKey Failed");
     return result_code;
   }
@@ -4044,16 +4671,16 @@ upll_rc_t VlinkMoMgr::AdaptValToVtnService(ConfigKeyVal *ikey) {
     }
     while (cval) {
       if (IpctSt::kIpcStValVlink == cval->get_st_num()) {
-         // set admin status to valid no value
-         val_vlink *vlink_val = reinterpret_cast<val_vlink *>GetVal(ikey);
-         if (vlink_val->valid[UPLL_IDX_ADMIN_STATUS_VLNK] == UNC_VF_INVALID)
-           vlink_val->valid[UPLL_IDX_ADMIN_STATUS_VLNK] = UNC_VF_VALID_NO_VALUE;
+        // set admin status to valid no value
+        val_vlink *vlink_val = reinterpret_cast<val_vlink *>GetVal(ikey);
+        if (vlink_val->valid[UPLL_IDX_ADMIN_STATUS_VLNK] == UNC_VF_INVALID)
+          vlink_val->valid[UPLL_IDX_ADMIN_STATUS_VLNK] = UNC_VF_VALID_NO_VALUE;
       }
       if (IpctSt::kIpcStValVlinkSt == cval->get_st_num()) {
         val_vlink_st *vlink_val_st = reinterpret_cast<val_vlink_st *>
-                         (ConfigKeyVal::Malloc(sizeof(val_vlink_st)));
+            (ConfigKeyVal::Malloc(sizeof(val_vlink_st)));
         val_db_vlink_st *db_vlink_val_st = reinterpret_cast<val_db_vlink_st *>
-                                     (cval->get_val());
+            (cval->get_val());
         memcpy(vlink_val_st, &(db_vlink_val_st->vlink_val_st),
                sizeof(val_vlink_st));
         cval->SetVal(IpctSt::kIpcStValVlinkSt, vlink_val_st);
@@ -4062,16 +4689,16 @@ upll_rc_t VlinkMoMgr::AdaptValToVtnService(ConfigKeyVal *ikey) {
         key = ikey->get_key();
         ConfigVal *val = ikey->get_cfg_val();
         val_rename_vlink_t *val_rename_vlink = reinterpret_cast
-           <val_rename_vlink_t *> (ConfigKeyVal::Malloc(
-           sizeof(val_rename_vlink_t)));  // COV NULL RETURN
-         // Getting valid
-         val_rename_vlink->valid[UPLL_IDX_NEW_NAME_RVLNK] = UNC_VF_VALID;
-      // Getting new_name
-         uuu::upll_strncpy(val_rename_vlink->new_name,
-             (reinterpret_cast<key_vlink_t*>(key))->vlink_name,
-             (kMaxLenVlinkName+1));
-         val->SetVal(IpctSt::kIpcStValRenameVlink, val_rename_vlink);
-         ikey->SetCfgVal(val);
+            <val_rename_vlink_t *> (ConfigKeyVal::Malloc(
+                    sizeof(val_rename_vlink_t)));  // COV NULL RETURN
+        // Getting valid
+        val_rename_vlink->valid[UPLL_IDX_NEW_NAME_RVLNK] = UNC_VF_VALID;
+        // Getting new_name
+        uuu::upll_strncpy(val_rename_vlink->new_name,
+                          (reinterpret_cast<key_vlink_t*>(key))->vlink_name,
+                          (kMaxLenVlinkName+1));
+        val->SetVal(IpctSt::kIpcStValRenameVlink, val_rename_vlink);
+        ikey->SetCfgVal(val);
       }
       cval = cval->get_next_cfg_val();
     }
@@ -4083,21 +4710,21 @@ upll_rc_t VlinkMoMgr::AdaptValToVtnService(ConfigKeyVal *ikey) {
 
 
 upll_rc_t VlinkMoMgr::UpdateMo(IpcReqRespHeader *req,
-                              ConfigKeyVal *ikey,
-                              DalDmlIntf *dmi) {
+                               ConfigKeyVal *ikey,
+                               DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   DbSubOp dbop1 = { kOpReadSingle, kOpMatchNone, kOpInOutCtrlr | kOpInOutFlag
-                          | kOpInOutDomain };
+    | kOpInOutDomain };
   if (NULL == ikey || NULL == req || !(ikey->get_key())) {
-     UPLL_LOG_ERROR("Given Input is Empty");
-     return UPLL_RC_ERR_GENERIC;
+    UPLL_LOG_ERROR("Given Input is Empty");
+    return UPLL_RC_ERR_GENERIC;
   }
   UPLL_LOG_ERROR("UpdateMo for %d", ikey->get_key_type());
   result_code = ValidateMessage(req, ikey);
   if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_ERROR("Validation Message is Failed ");
-      return result_code;
+    UPLL_LOG_ERROR("Validation Message is Failed ");
+    return result_code;
   }
   ConfigKeyVal *dup_ckvlink = NULL;
   result_code = GetChildConfigKey(dup_ckvlink, ikey);
@@ -4108,34 +4735,27 @@ upll_rc_t VlinkMoMgr::UpdateMo(IpcReqRespHeader *req,
   result_code = ReadConfigDB(dup_ckvlink, req->datatype, UNC_OP_READ, dbop1,
                              dmi, MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
-      if (dup_ckvlink) delete dup_ckvlink;
-      UPLL_LOG_ERROR("Record does Not Exists");
-      return result_code;
+    if (dup_ckvlink) delete dup_ckvlink;
+    UPLL_LOG_ERROR("Record does Not Exists");
+    return result_code;
   }
   if (dup_ckvlink->get_cfg_val()->get_val()) {
     val_vlink_t *vlink_val = reinterpret_cast<val_vlink_t *>(
-                                             GetVal(dup_ckvlink));
+        GetVal(dup_ckvlink));
     val_vlink_t *vlink_val1 = reinterpret_cast<val_vlink_t *>(
-                                             GetVal(ikey));
+        GetVal(ikey));
 
     if (vlink_val->valid[UPLL_IDX_BOUNDARY_NAME_VLNK] == UNC_VF_VALID &&
         vlink_val1->valid[UPLL_IDX_BOUNDARY_NAME_VLNK] == UNC_VF_VALID) {
       if (strncmp(reinterpret_cast<const char *>(vlink_val->boundary_name),
                   reinterpret_cast<const char *>(vlink_val1->boundary_name),
-                kMaxLenBoundaryName+1)) {
+                  kMaxLenBoundaryName+1)) {
         UPLL_LOG_DEBUG("Vlink boundary name updation not possible");
-        free(dup_ckvlink);
+        DELETE_IF_NOT_NULL(dup_ckvlink);
         return UPLL_RC_ERR_CFG_SEMANTIC;
       }
     }
   }
-#if 0
-  result_code = DupConfigKeyVal(okey, ikey, MAINTBL);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG(" DupConfigKeyVal Failed %d", result_code);
-    return result_code;
-  }
-#endif
 
   controller_domain ctrlr_dom[2] = { { NULL, NULL }, { NULL, NULL } };
 
@@ -4147,16 +4767,18 @@ upll_rc_t VlinkMoMgr::UpdateMo(IpcReqRespHeader *req,
 
   SET_USER_DATA_CTRLR_DOMAIN(ikey, *ctrlr_dom);
   SET_USER_DATA(ikey->get_cfg_val(), dup_ckvlink->get_cfg_val());
+  /* VlanmapOnBoundary: changes */
+  SET_USER_DATA(ikey, dup_ckvlink);
 
   if (ctrlr_dom[0].ctrlr != NULL) {
     result_code = ValidateCapability(
-             req, ikey, reinterpret_cast<const char *>
-                                   (ctrlr_dom[0].ctrlr));
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("ValidateCapability Failed %d", result_code);
-        delete dup_ckvlink;
-        return result_code;
-      }
+        req, ikey, reinterpret_cast<const char *>
+        (ctrlr_dom[0].ctrlr));
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("ValidateCapability Failed %d", result_code);
+      delete dup_ckvlink;
+      return result_code;
+    }
   }
   bool bound_vlink = false;
   if (ctrlr_dom[1].ctrlr != NULL) {
@@ -4165,7 +4787,8 @@ upll_rc_t VlinkMoMgr::UpdateMo(IpcReqRespHeader *req,
                reinterpret_cast<const char *>(ctrlr_dom[1].ctrlr))) {
       bound_vlink = true;
       result_code = ValidateCapability(req, ikey,
-                        reinterpret_cast<const char *>(ctrlr_dom[1].ctrlr));
+                                       reinterpret_cast<const char *>
+                                       (ctrlr_dom[1].ctrlr));
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("ValidateCapability Failed %d", result_code);
         delete dup_ckvlink;
@@ -4173,10 +4796,10 @@ upll_rc_t VlinkMoMgr::UpdateMo(IpcReqRespHeader *req,
       }
     }
   } else {
-      bound_vlink = true;
+    bound_vlink = true;
   }
   if (bound_vlink) {
-   /* boundary vlink */
+    /* boundary vlink */
     val_vlink_t *vlink_val = reinterpret_cast<val_vlink *>(GetVal(ikey));
     if (vlink_val && vlink_val->admin_status == UPLL_ADMIN_DISABLE) {
       UPLL_LOG_ERROR("Boundary vlink cannot be shut\n");
@@ -4190,25 +4813,35 @@ upll_rc_t VlinkMoMgr::UpdateMo(IpcReqRespHeader *req,
     delete dup_ckvlink;
     return UPLL_RC_ERR_GENERIC;
   }
+
   uint8_t valid_boundary = tmp_val->valid[UPLL_IDX_BOUNDARY_NAME_VLNK];
+  uint8_t valid_vlanid = tmp_val->valid[UPLL_IDX_VLAN_ID_VLNK];
+  /* Below flag is used to reset the valid flag of boundary_name
+   * in ikey at the end for only vlan-id update case */
   bool check_boundary_valid = false;
-  if (valid_boundary == UNC_VF_INVALID) {
+
+  /* Only vlan-id update from GUI, below code should be executed */
+  if (valid_boundary == UNC_VF_INVALID &&
+      valid_vlanid != UNC_VF_INVALID) {
     val_vlink_t *val = reinterpret_cast<val_vlink *>(GetVal(dup_ckvlink));
     if (!val) {
       UPLL_LOG_DEBUG("Invalid val");
       delete dup_ckvlink;
       return UPLL_RC_ERR_GENERIC;
     }
+    /* Reset valid_boundary to db value */
     valid_boundary = val->valid[UPLL_IDX_BOUNDARY_NAME_VLNK];
     if (valid_boundary == UNC_VF_VALID) {
       uuu::upll_strncpy(reinterpret_cast<char *>(tmp_val->boundary_name),
-          reinterpret_cast<char *>(val->boundary_name),
-          kMaxLenBoundaryName);
+                        reinterpret_cast<char *>(val->boundary_name),
+                        kMaxLenBoundaryName);
       tmp_val->valid[UPLL_IDX_BOUNDARY_NAME_VLNK] =
-        val->valid[UPLL_IDX_BOUNDARY_NAME_VLNK];
+          val->valid[UPLL_IDX_BOUNDARY_NAME_VLNK];
       check_boundary_valid = true;
     }
   }
+
+  /* Send ipc to UPPL only if boundary_name is VALID */
   result_code = ValidateAttribute(ikey, dmi, req);
   if (UPLL_RC_SUCCESS  != result_code) {
     delete dup_ckvlink;
@@ -4216,6 +4849,29 @@ upll_rc_t VlinkMoMgr::UpdateMo(IpcReqRespHeader *req,
     return result_code;
   }
 
+  /* VlanmapOnBoundary: changes */
+  val_vlink_t *vlink_dbval = reinterpret_cast<val_vlink_t *>(
+      GetVal(dup_ckvlink));
+  val_vlink_t *vlink_ikeyval = reinterpret_cast<val_vlink_t *>(
+      GetVal(ikey));
+  /* Case1: New boundary-map request (all combinations)
+   * Case2: Boundary-map request after no boundary-map:w
+   * Below code should be executed to update the vlink flag */
+  if (((vlink_ikeyval->valid[UPLL_IDX_BOUNDARY_NAME_VLNK] == UNC_VF_VALID) &&
+       (vlink_dbval->valid[UPLL_IDX_BOUNDARY_NAME_VLNK] ==
+        UNC_VF_VALID_NO_VALUE)) ||
+      ((vlink_ikeyval->valid[UPLL_IDX_BOUNDARY_NAME_VLNK] == UNC_VF_VALID) &&
+       (vlink_dbval->valid[UPLL_IDX_BOUNDARY_NAME_VLNK] == UNC_VF_INVALID))) {
+    result_code = UpdateVlinkVlanmapFlag(ikey, dup_ckvlink);
+    if (UPLL_RC_SUCCESS  != result_code) {
+      UPLL_LOG_ERROR("Failed to update vlink ikey flag");
+      delete dup_ckvlink;
+      return result_code;
+    }
+  }
+
+  /* Except description update request,
+   * below code should be executed */
   if (valid_boundary != UNC_VF_INVALID) {
     uint8_t rename_flag = 0;
     VlinkNodePosition vnode_number = kVlinkVnode1;
@@ -4230,7 +4886,7 @@ upll_rc_t VlinkMoMgr::UpdateMo(IpcReqRespHeader *req,
         return UPLL_RC_ERR_CFG_SEMANTIC;
       }
       MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
-                                 (GetMoManager(ktype)));
+                                                     (GetMoManager(ktype)));
       if (!mgr) {
         UPLL_LOG_DEBUG("Invalid Mgr %d", ktype);
         delete dup_ckvlink;
@@ -4243,8 +4899,52 @@ upll_rc_t VlinkMoMgr::UpdateMo(IpcReqRespHeader *req,
         delete dup_ckvlink;
         return result_code;
       }
+      /* VlanmapOnBoundary: Boundary vlink update operation for SW or SD */
+      if (ktype == UNC_KT_VBR_VLANMAP) {
+        UPLL_LOG_DEBUG("Vlink update operation SW or SD boundary");
+
+        /* validateBoundary should be called only once */
+        if (!ck_boundary) {
+          if ((vlink_ikeyval->valid[UPLL_IDX_BOUNDARY_NAME_VLNK] ==
+               UNC_VF_VALID_NO_VALUE) &&
+              (vlink_dbval->valid[UPLL_IDX_BOUNDARY_NAME_VLNK] ==
+               UNC_VF_VALID)) {
+            /* no boundary of logical port id SW or SD. case first gets
+             * the boundary info from uppl and updates the vlink ikey flag */
+            result_code = ValidateBoundary(vlink_dbval->boundary_name, req);
+            if (result_code != UPLL_RC_SUCCESS) {
+              delete dup_ckvlink;
+              delete ck_vnif[i];
+              return UPLL_RC_ERR_CFG_SEMANTIC;
+            }
+            result_code = UpdateVlinkVlanmapFlag(ikey, dup_ckvlink);
+            if (result_code != UPLL_RC_SUCCESS) {
+              delete dup_ckvlink;
+              delete ck_vnif[i];
+              DELETE_IF_NOT_NULL(ck_boundary);
+              return UPLL_RC_ERR_CFG_SEMANTIC;
+            }
+          }
+        }
+
+        SET_USER_DATA_FLAGS(ck_vnif[i], 0);
+        /* Handles boundary vlanmap request */
+        result_code = mgr->BoundaryVlanmapReq(req, ikey, dup_ckvlink,
+                                              ck_vnif[i], dmi);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("Failed to update vlink for SD or SW boundary");
+          /* ck_boundary should be deleted */
+          DELETE_IF_NOT_NULL(ck_boundary);
+          DELETE_IF_NOT_NULL(ck_vnif[i]);
+          delete dup_ckvlink;
+          return result_code;
+        }
+        vnode_number = kVlinkVnode2;
+        continue;
+      }
+
       result_code = mgr->ReadConfigDB(ck_vnif[i], req->datatype,
-                                              UNC_OP_READ, dbop1, dmi, MAINTBL);
+                                      UNC_OP_READ, dbop1, dmi, MAINTBL);
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("Error in reading %d", result_code);
         delete dup_ckvlink;
@@ -4257,9 +4957,9 @@ upll_rc_t VlinkMoMgr::UpdateMo(IpcReqRespHeader *req,
     }
     SET_USER_DATA_FLAGS(dup_ckvlink->get_cfg_val(), rename_flag);
     if (!ck_vnif[0] || !ck_vnif[1]) {
-       UPLL_LOG_DEBUG("Invalid param");
-       delete dup_ckvlink;
-       return UPLL_RC_ERR_CFG_SEMANTIC;
+      UPLL_LOG_DEBUG("Invalid param");
+      delete dup_ckvlink;
+      return UPLL_RC_ERR_CFG_SEMANTIC;
     }
     UPLL_LOG_DEBUG("Before UpdateVnodeIf %s", (ikey->ToStrAll()).c_str());
     result_code = UpdateVnodeIf(req->datatype, ikey, ck_vnif, dmi,
@@ -4272,16 +4972,29 @@ upll_rc_t VlinkMoMgr::UpdateMo(IpcReqRespHeader *req,
       return result_code;
     }
   }
-  DbSubOp dbop = { kOpNotRead, kOpMatchNone, kOpInOutNone };
   UPLL_LOG_DEBUG("The ikey Structue before update  %s",
-                (ikey->ToStrAll()).c_str());
-  result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_UPDATE,
-                               dmi, &dbop, MAINTBL);
+                 (ikey->ToStrAll()).c_str());
+
+  /* VlanmapOnBoundary: Added vlanmap check */
+  if ((GetVlinkVnodeIfKeyType(dup_ckvlink, 0) == UNC_KT_VBR_VLANMAP) ||
+      (GetVlinkVnodeIfKeyType(dup_ckvlink, 1) == UNC_KT_VBR_VLANMAP)) {
+    UPLL_LOG_TRACE("ikey flags update with boundary vlanmap vlink flag");
+    DbSubOp dbop = { kOpNotRead, kOpMatchNone, kOpInOutFlag };
+    result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_UPDATE,
+                                 dmi, &dbop, MAINTBL);
+  } else {
+    DbSubOp dbop = { kOpNotRead, kOpMatchNone, kOpInOutNone };
+    result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_UPDATE,
+                                 dmi, &dbop, MAINTBL);
+  }
+
   if (UPLL_RC_SUCCESS != result_code) {
     delete dup_ckvlink;
     UPLL_LOG_ERROR("Updation Failure in DB : %d", result_code);
     return result_code;
   }
+  /* Resetting valid[BOUNDARY_NAME] in the request(description
+   * update case) */
   if (check_boundary_valid) {
     tmp_val->valid[UPLL_IDX_BOUNDARY_NAME_VLNK] = UNC_VF_INVALID;
   }
@@ -4292,7 +5005,7 @@ upll_rc_t VlinkMoMgr::UpdateMo(IpcReqRespHeader *req,
 /* This function update the vnode operstatus
  * while doing commit
  */
-upll_rc_t VlinkMoMgr::TxUpdateDtState(unc_key_type_t ktype,
+upll_rc_t VlinkMoMgr::TxUpdateDtState(unc_key_type_t keytype,
                                       uint32_t session_id,
                                       uint32_t config_id,
                                       DalDmlIntf *dmi) {
@@ -4302,7 +5015,7 @@ upll_rc_t VlinkMoMgr::TxUpdateDtState(unc_key_type_t ktype,
 
   result_code = GetUninitOperState(ck_vlink, dmi);
   if (!ck_vlink || UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("Returning error %d\n",result_code); 
+    UPLL_LOG_DEBUG("Returning error %d\n", result_code);
     return result_code;
   }
   ConfigKeyVal *tkey = ck_vlink;
@@ -4310,35 +5023,49 @@ upll_rc_t VlinkMoMgr::TxUpdateDtState(unc_key_type_t ktype,
   while (tkey) {
     VnodeChildMoMgr *ktype_mgr[2];
     bool bound_vlink = false;
-    controller_domain_t vlink_ctrlr_dom[] = { {NULL,NULL}, {NULL,NULL}};
+    controller_domain_t vlink_ctrlr_dom[] = { {NULL, NULL}, {NULL, NULL}};
     result_code = BoundaryVlink(tkey, vlink_ctrlr_dom, bound_vlink);
     if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_ERROR("Returning error %d\n",result_code);
+      UPLL_LOG_ERROR("Returning error %d\n", result_code);
       DELETE_IF_NOT_NULL(ck_vlink);
       return result_code;
-    } 
+    }
     /* update consolidated oper status */
     /* get the constituent interfaces */
     ConfigKeyVal *vnif[2] = {NULL, NULL};
+    state_notification notification = kAdminStatusEnabled;
     for (int i = 0; i < 2; i++) {
-      result_code = GetVnodeIfFromVlink(tkey,&vnif[i],dmi,i);
+      result_code = GetVnodeIfFromVlink(tkey, &vnif[i], dmi, i);
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_ERROR("get %d constituent interface of vlink failed %d",
-                       i,result_code);
+                       i, result_code);
         DELETE_IF_NOT_NULL(ck_vlink);
         return result_code;
       }
       unc_key_type_t ktype = vnif[i]->get_key_type();
       ktype_mgr[i] = reinterpret_cast<VnodeChildMoMgr *>
-                      (const_cast<MoManager*>(GetMoManager(ktype)));
-    } 
+          (const_cast<MoManager*>(GetMoManager(ktype)));
+      uint8_t valid_pm, valid_admin, admin_status;
+      val_port_map_t *pm;
+      result_code = ktype_mgr[i]->GetPortMap(vnif[i], valid_pm, pm,
+                                             valid_admin, admin_status);
+      if (result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("GetPortMap failed %d %d\n", i, result_code);
+        DELETE_IF_NOT_NULL(ck_vlink);
+        DELETE_IF_NOT_NULL(vnif[0]);
+        DELETE_IF_NOT_NULL(vnif[1]);
+        return result_code;
+      }
+      if (admin_status == UPLL_ADMIN_DISABLE)
+        notification = kAdminStatusDisabled;
+    }
     val_vlink *vlink_val = reinterpret_cast<val_vlink *>(GetVal(tkey));
     if (!vlink_val) {
       UPLL_LOG_ERROR("Invalid param \n");
       DELETE_IF_NOT_NULL(ck_vlink);
       for (int i = 0; i < 2; i++) {
         DELETE_IF_NOT_NULL(vnif[i]);
-      }      
+      }
       return UPLL_RC_ERR_GENERIC;
     }
     val_db_vbr_if_st *vnif1_st;
@@ -4356,13 +5083,13 @@ upll_rc_t VlinkMoMgr::TxUpdateDtState(unc_key_type_t ktype,
         if (vnif[i]->get_key_type() != UNC_KT_VUNK_IF) {
           vnif1_st = reinterpret_cast<val_db_vbr_if_st *>(GetStateVal(vnif[i]));
           vnif1_st = reinterpret_cast<val_db_vbr_if_st *>(GetStateVal(vnif[i]));
-          vnif1_st->vbr_if_val_st.oper_status = UPLL_OPER_STATUS_DOWN;
-          vnif1_st->vbr_if_val_st.valid[UPLL_IDX_OPER_STATUS_VBRIS]
-                                                    = UNC_VF_VALID;
           result_code = ktype_mgr[i]->UpdateOperStatus(vnif[i], dmi,
-                                        kAdminStatusDisabled, true, true, false);
+                                                       kAdminStatusDisabled,
+                                                       true,
+                                                       true,
+                                                       false);
           if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("Returning error %d\n",result_code);
+            UPLL_LOG_DEBUG("Returning error %d\n", result_code);
             for (int i = 0; i < 2; i++) {
               DELETE_IF_NOT_NULL(vnif[i]);
             }
@@ -4372,7 +5099,7 @@ upll_rc_t VlinkMoMgr::TxUpdateDtState(unc_key_type_t ktype,
         }
       }
     } else if (!bound_vlink) {
-      result_code = SetOperStatus(tkey, dmi, kAdminStatusEnabled, true);
+      result_code = SetOperStatus(tkey, dmi, notification, true);
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("SetOperStatus failed %d", result_code);
         DELETE_IF_NOT_NULL(ck_vlink);
@@ -4383,14 +5110,18 @@ upll_rc_t VlinkMoMgr::TxUpdateDtState(unc_key_type_t ktype,
       }
       for (int i = 0; i < 2; i++) {
         if (vnif[i]->get_key_type() != UNC_KT_VUNK_IF) {
-          vnif1_st = reinterpret_cast<val_db_vbr_if_st *>(GetStateVal(vnif[i]));
+          vnif1_st = reinterpret_cast<val_db_vbr_if_st *>
+              (GetStateVal(vnif[i]));
           vnif1_st->vbr_if_val_st.oper_status = UPLL_OPER_STATUS_UP;
           vnif1_st->vbr_if_val_st.valid[UPLL_IDX_OPER_STATUS_VBRIS]
-                                                    = UNC_VF_VALID;
+              = UNC_VF_VALID;
           result_code = ktype_mgr[i]->UpdateOperStatus(vnif[i], dmi,
-                                        kAdminStatusEnabled, true, true, false);
+                                                       notification,
+                                                       true,
+                                                       true,
+                                                       false);
           if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("Returning error %d\n",result_code);
+            UPLL_LOG_DEBUG("Returning error %d\n", result_code);
             for (int i = 0; i < 2; i++) {
               DELETE_IF_NOT_NULL(vnif[i]);
             }
@@ -4400,30 +5131,52 @@ upll_rc_t VlinkMoMgr::TxUpdateDtState(unc_key_type_t ktype,
         }
       }
     } else {
-      state_notification notification = kCtrlrReconnect; //noop 
+      notification = (notification != kAdminStatusDisabled)?kCtrlrReconnect:
+          notification;  // noop
+      val_db_vlink_st *vlink_valst = reinterpret_cast<val_db_vlink_st *>
+          (GetStateVal(tkey));
+      if (vlink_valst == NULL) {
+        UPLL_LOG_ERROR("Returning error \n");
+        return UPLL_RC_ERR_GENERIC;
+      }
 
       if (vlink_val->valid[UPLL_IDX_BOUNDARY_NAME_VLNK] ==
-                  UNC_VF_VALID) {
-        val_oper_status bound_oper_status;
-      
+          UNC_VF_VALID) {
+        val_oper_status bound_oper_status = UPLL_OPER_STATUS_DOWN;
+
         result_code = GetBoundaryStatusFromPhysical(vlink_val->boundary_name,
-                      vlink_ctrlr_dom, bound_oper_status, session_id, config_id);
+                                                    vlink_ctrlr_dom,
+                                                    bound_oper_status,
+                                                    session_id,
+                                                    config_id);
         if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_ERROR("Returning error %d\n",result_code);
+          UPLL_LOG_ERROR("Returning error %d\n", result_code);
         }
         switch (bound_oper_status) {
-        case  UPLL_OPER_STATUS_DOWN:
-          notification = kPortFault;
-          break;
-        case  UPLL_OPER_STATUS_UNKNOWN:
-          notification = kCtrlrDisconnect;
-          break;
-        case  UPLL_OPER_STATUS_UP:
-          notification = kPortFaultReset;
-          break;
-        default:
-          notification = kPortFault;
-          break;
+          case  UPLL_OPER_STATUS_DOWN:
+            if (vlink_valst->down_count == 0)
+              notification = kPortFault;
+            else
+              notification = kAdminStatusDisabled;
+            break;
+          case  UPLL_OPER_STATUS_UNKNOWN:
+            notification = kPortUnknown;
+            break;
+          case  UPLL_OPER_STATUS_UP:
+            if (vlink_valst->down_count > 0)
+              notification = (notification != kAdminStatusDisabled)?
+                  kPortFaultReset:kAdminStatusDisabled;
+            else
+              notification = (notification != kAdminStatusDisabled)?
+                  kAdminStatusEnabled:kAdminStatusDisabled;
+            break;
+          default:
+            if (vlink_valst->down_count == 0)
+              notification = kPortFault;
+            else
+              notification = (notification != kAdminStatusDisabled)?
+                  kAdminStatusEnabled:kAdminStatusDisabled;
+            break;
         }
       } else {
         notification = kAdminStatusDisabled;
@@ -4439,8 +5192,12 @@ upll_rc_t VlinkMoMgr::TxUpdateDtState(unc_key_type_t ktype,
       }
       for (int i = 0; i < 2; i++) {
         if (vnif[i]->get_key_type() != UNC_KT_VUNK_IF) {
-          result_code = ktype_mgr[i]->UpdateOperStatus(vnif[i], dmi,
-                                        notification, true, true, false);
+          result_code = ktype_mgr[i]->UpdateOperStatus(vnif[i],
+                                                       dmi,
+                                                       notification,
+                                                       true,
+                                                       true,
+                                                       false);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("Error updating oper status %d", result_code);
             for (int i = 0; i < 2; i++) {
@@ -4453,7 +5210,7 @@ upll_rc_t VlinkMoMgr::TxUpdateDtState(unc_key_type_t ktype,
       }
     }
     for (int i = 0; i < 2; i++) {
-      DELETE_IF_NOT_NULL(vnif[i]);   
+      DELETE_IF_NOT_NULL(vnif[i]);
     }
     tkey= tkey->get_next_cfg_key_val();
   }
@@ -4471,26 +5228,39 @@ upll_rc_t VlinkMoMgr::GetVnodeIfFromVlink(ConfigKeyVal *vlink,
   }
   int num = (pos > 1)?2:1;
   VlinkNodePosition vnode_number =
-                (pos == 1) ?kVlinkVnode2:kVlinkVnode1;
+      (pos == 1) ?kVlinkVnode2:kVlinkVnode1;
   uint8_t rename_flag = 0;
   GET_USER_DATA_FLAGS(vlink->get_cfg_val(), rename_flag);
   for (int i = 0; i < num ; i++) {
     int j = (pos > 1)?i:pos;
     unc_key_type_t ktype = GetVlinkVnodeIfKeyType(vlink, j);
+
+    /* VlanmapOnBoundary: In boundary vlan-map case:
+     * Get the vBrIf of vlan-mapped interface */
+    if (ktype == UNC_KT_VBR_VLANMAP)
+      ktype = UNC_KT_VBR_IF;
+
     MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager*>
-                                      (GetMoManager(ktype)));
+                                                   (GetMoManager(ktype)));
     if (!mgr) {
       UPLL_LOG_DEBUG("Invalid mgr for keytype %d", ktype);
       return UPLL_RC_ERR_GENERIC;
     }
+    upll_rc_t result_code = UPLL_RC_SUCCESS;
     SET_USER_DATA_FLAGS(vlink->get_cfg_val(), vnode_number);
-    mgr->GetChildConfigKey(vnif[i], vlink);
-    DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutCs };
-    upll_rc_t result_code = mgr->ReadConfigDB(vnif[i], UPLL_DT_STATE,
-                              UNC_OP_READ, dbop, dmi, MAINTBL);
+    result_code = mgr->GetChildConfigKey(vnif[i], vlink);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("GetChildConfigKey Failed result_code %d", result_code);
+      return result_code;
+    }
+
+    DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutCs|kOpInOutCtrlr|
+      kOpInOutDomain | kOpInOutFlag};
+    result_code = mgr->ReadConfigDB(vnif[i], UPLL_DT_STATE,
+                                    UNC_OP_READ, dbop, dmi, MAINTBL);
     if (result_code != UPLL_RC_SUCCESS) {
-        if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)
-          result_code = UPLL_RC_ERR_GENERIC;
+      if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)
+        result_code = UPLL_RC_ERR_GENERIC;
       DELETE_IF_NOT_NULL(vnif[i]);
       UPLL_LOG_DEBUG("Returning error %d", result_code);
       return result_code;
@@ -4507,23 +5277,23 @@ upll_rc_t VlinkMoMgr::GetVnodeIfFromVlink(ConfigKeyVal *vlink,
 }
 
 upll_rc_t VlinkMoMgr::BoundaryStatusHandler(uint8_t boundary_name[32],
-    bool oper_status, DalDmlIntf *dmi) {
+                                            bool oper_status, DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
 
   UPLL_LOG_DEBUG("Boundary name :(%s) oper_status:(%d)", boundary_name,
-      oper_status);
+                 oper_status);
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   state_notification notification =
-       (oper_status == UPLL_OPER_STATUS_UP) ? kBoundaryFaultReset :
-                                              kBoundaryFault;
+      (oper_status == UPLL_OPER_STATUS_UP) ? kBoundaryFaultReset :
+      kBoundaryFault;
 
   /* Allocating memory for vlink key and value structure */
   val_vlink *vlink_val = reinterpret_cast<val_vlink_t *>
-                           (ConfigKeyVal::Malloc(sizeof(val_vlink_t)));
+      (ConfigKeyVal::Malloc(sizeof(val_vlink_t)));
   /* copy fault boundaryname to vlink value structure */
   uuu::upll_strncpy(reinterpret_cast<char *>(vlink_val->boundary_name),
-      reinterpret_cast<char *>(boundary_name),
-      kMaxLenBoundaryName);
+                    reinterpret_cast<char *>(boundary_name),
+                    kMaxLenBoundaryName);
 
   /* set Boundary flag as valid */
   vlink_val->valid[UPLL_IDX_BOUNDARY_NAME_VLNK] = UNC_VF_VALID;
@@ -4537,20 +5307,100 @@ upll_rc_t VlinkMoMgr::BoundaryStatusHandler(uint8_t boundary_name[32],
   }
   ikey->AppendCfgVal(IpctSt::kIpcStValVlink, vlink_val);
   DbSubOp dbop = {kOpReadMultiple, kOpMatchNone,
-                    kOpInOutFlag | kOpInOutCtrlr | kOpInOutDomain};
+    kOpInOutFlag | kOpInOutCtrlr | kOpInOutDomain};
 
   /* Getting list of Vlinks that have same boundaryname */
   result_code = ReadConfigDB(ikey, UPLL_DT_STATE, UNC_OP_READ, dbop,
-      dmi, MAINTBL);
+                             dmi, MAINTBL);
 
   if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Error in reading %d", result_code);
+    if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)
+      result_code = UPLL_RC_SUCCESS;
+    else
+      UPLL_LOG_DEBUG("Error in reading %d", result_code);
     delete ikey;
     return result_code;
   }
   ConfigKeyVal *tmp = ikey;
   while (tmp != NULL) {
-      /* setting vlink operstatus */
+#if 1
+    /* update consolidated oper status */
+    /* get the constituent interfaces */
+    ConfigKeyVal *vnif[2] = {NULL, NULL};
+    VnodeChildMoMgr *ktype_mgr[2];
+    uint8_t if_oper_status[2] = {UPLL_OPER_STATUS_UNINIT,
+      UPLL_OPER_STATUS_UNINIT};
+    for (int i = 0; i < 2; i++) {
+      result_code = GetVnodeIfFromVlink(tmp, &vnif[i], dmi, i);
+      if (result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_ERROR("get %d constituent interface of vlink failed %d",
+                       i, result_code);
+        DELETE_IF_NOT_NULL(ikey);
+        return result_code;
+      }
+      unc_key_type_t ktype = vnif[i]->get_key_type();
+      if (ktype != UNC_KT_VUNK_IF) {
+        if_oper_status[i] =
+            (reinterpret_cast<val_db_vbr_if_st*>(GetStateVal(vnif[i])))->
+            vbr_if_val_st.oper_status;
+      } else {
+        if_oper_status[i] = UPLL_OPER_STATUS_UP;
+      }
+      ktype_mgr[i] = reinterpret_cast<VnodeChildMoMgr *>
+          (const_cast<MoManager*>(GetMoManager(ktype)));
+    }
+    if (notification == kBoundaryFaultReset) {
+      val_db_vlink_st *vlink_st = reinterpret_cast<val_db_vlink_st *>
+          (GetStateVal(tmp));
+      if (!vlink_st) {
+        UPLL_LOG_TRACE("Returning NULL\n");
+        return UPLL_RC_ERR_GENERIC;
+      }
+      // if down count == 0, change notification to admin enabled
+      // so downcount does not get decremented.
+      if (vlink_st->down_count == 0)
+        notification = kAdminStatusEnabled;
+      uint8_t valid_pm, valid_admin, admin_status;
+      val_port_map_t *pm = NULL;
+      for (int i = 0; i < 2; i++) {
+        result_code = ktype_mgr[i]->GetPortMap(vnif[i], valid_pm, pm,
+                                               valid_admin, admin_status);
+        // if the interface is admin disabled, change notification
+        // to admin disabled.
+        if ((valid_admin == UNC_VF_VALID) &&
+            (admin_status == UPLL_ADMIN_DISABLE)) {
+          notification = (notification == kAdminStatusEnabled)?
+              kAdminStatusDisabled:kBoundaryFaultResetWithAdminDisabled;
+          break;
+        }
+      }
+    }
+    /* setting vlink operstatus */
+    SetOperStatus(tmp, dmi, notification, true);
+    for (int i = 0; i < 2; i++) {
+      if ((notification != kAdminStatusEnabled) ||
+          (if_oper_status[i] == UPLL_OPER_STATUS_UNKNOWN)) {
+        result_code = ktype_mgr[i]->UpdateOperStatus(vnif[i], dmi,
+                                                     notification,
+                                                     true,
+                                                     true,
+                                                     false);
+      }
+      if (result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_ERROR("Updating operstatus of vnode if failed %d\n",
+                       result_code);
+        DELETE_IF_NOT_NULL(ikey);
+        DELETE_IF_NOT_NULL(vnif[0]);
+        DELETE_IF_NOT_NULL(vnif[1]);
+        return result_code;
+      }
+    }
+    for (int i = 0; i < 2; i++) {
+      DELETE_IF_NOT_NULL(vnif[i]);
+    }
+#else
+
+    /* setting vlink operstatus */
     SetOperStatus(tmp, dmi, notification, true);
 
     ConfigKeyVal *if_key = NULL;
@@ -4559,54 +5409,61 @@ upll_rc_t VlinkMoMgr::BoundaryStatusHandler(uint8_t boundary_name[32],
     VlinkNodePosition vnode_number = kVlinkVnode1;
     for (int i = 0; i < 2 ; i++) {
       SET_USER_DATA_FLAGS(tmp->get_cfg_val(), vnode_number);
-      unc_key_type_t ktype = GetVlinkVnodeIfKeyType(tmp,i);  
+      unc_key_type_t ktype = GetVlinkVnodeIfKeyType(tmp, i);
       if (ktype == UNC_KT_VUNK_IF) {
         if (vnode_number == kVlinkVnode1) {
           vnode_number = kVlinkVnode2;
         }
         continue;
+      } else {
+        if (ktype == UNC_KT_VBR_VLANMAP)
+        ktype = UNC_KT_VBR_IF;
       }
       VnodeChildMoMgr *mgr = (reinterpret_cast<VnodeChildMoMgr *>
-                         (const_cast<MoManager *>(GetMoManager(ktype))));
+                              (const_cast<MoManager *>(GetMoManager(ktype))));
       result_code = mgr->GetChildConfigKey(if_key, tmp);
       if (!if_key || result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("GetChildConfigKey failed");
         return UPLL_RC_ERR_GENERIC;
       }
-      result_code = mgr->UpdateOperStatus(if_key, dmi, notification, 
+      result_code = mgr->UpdateOperStatus(if_key, dmi, notification,
                                           false, true, false);
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_ERROR("Updating operstatus of vnode if failed %d\n",
-                        result_code);
+                       result_code);
         return result_code;
       }
       vnode_number = (vnode_number == kVlinkVnode1)?
-           kVlinkVnode2:kVlinkVnode1;
+          kVlinkVnode2:kVlinkVnode1;
       DELETE_IF_NOT_NULL(if_key);
     }
     SET_USER_DATA_FLAGS(tmp->get_cfg_val(), vlink_flag);
+#endif
     tmp = tmp->get_next_cfg_key_val();
   }
   VnodeMoMgr *vn_mgr = reinterpret_cast<VnodeMoMgr *>
-                (const_cast<MoManager *>(GetMoManager(UNC_KT_VBRIDGE)));
+      (const_cast<MoManager *>(GetMoManager(UNC_KT_VBRIDGE)));
   if (!vn_mgr) {
     UPLL_LOG_DEBUG("Returning error\n");
+    DELETE_IF_NOT_NULL(ikey);
     return UPLL_RC_ERR_GENERIC;
   }
-  result_code = vn_mgr->TxUpdateDtState(UNC_KT_VBRIDGE,0,0,dmi);
+  result_code = vn_mgr->TxUpdateDtState(UNC_KT_VBRIDGE, 0, 0, dmi);
   if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("failed to update vnode oper status %d\n",result_code);
+    UPLL_LOG_DEBUG("failed to update vnode oper status %d\n", result_code);
+    DELETE_IF_NOT_NULL(ikey);
     return result_code;
   }
   VtnMoMgr *vtn_mgr = reinterpret_cast<VtnMoMgr *>
-                  (const_cast<MoManager *>(GetMoManager(UNC_KT_VTN)));
+      (const_cast<MoManager *>(GetMoManager(UNC_KT_VTN)));
   if (!vtn_mgr) {
     UPLL_LOG_DEBUG("Returning error\n");
+    DELETE_IF_NOT_NULL(ikey);
     return UPLL_RC_ERR_GENERIC;
   }
-  result_code = vtn_mgr->TxUpdateDtState(UNC_KT_VTN,0,0,dmi);
+  result_code = vtn_mgr->TxUpdateDtState(UNC_KT_VTN, 0, 0, dmi);
   if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("failed to update vtn oper status %d\n",result_code);
+    UPLL_LOG_DEBUG("failed to update vtn oper status %d\n", result_code);
   }
   // ikey->get_cfg_val()->set_user_data(NULL);
   if (ikey != NULL) {
@@ -4617,9 +5474,9 @@ upll_rc_t VlinkMoMgr::BoundaryStatusHandler(uint8_t boundary_name[32],
 }
 
 upll_rc_t VlinkMoMgr::UpdateVlinkOperStatus(uint8_t *ctrlr_id,
-                                          DalDmlIntf *dmi,
-                                          state_notification notification,
-                                          bool skip) {
+                                            DalDmlIntf *dmi,
+                                            state_notification notification,
+                                            bool skip) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *ck_val = NULL;
@@ -4630,9 +5487,11 @@ upll_rc_t VlinkMoMgr::UpdateVlinkOperStatus(uint8_t *ctrlr_id,
     return result_code;
   }
   SET_USER_DATA_CTRLR(ck_val, ctrlr_id);
-  DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutCtrlr | kOpInOutFlag};
+  DbSubOp dbop = { kOpReadMultiple,
+    kOpMatchNone,
+    kOpInOutCtrlr | kOpInOutFlag};
   result_code = ReadConfigDB(ck_val, UPLL_DT_STATE, UNC_OP_READ, dbop, dmi,
-                           MAINTBL);
+                             MAINTBL);
   if (result_code == UPLL_RC_SUCCESS) {
     ConfigKeyVal *tkey = ck_val;
     while (tkey != NULL) {
@@ -4649,68 +5508,70 @@ upll_rc_t VlinkMoMgr::UpdateVlinkOperStatus(uint8_t *ctrlr_id,
         }
         if (ktype[0] != UNC_KT_VUNK_IF && ktype[1] != UNC_KT_VUNK_IF) {
           UPLL_LOG_DEBUG("Empty Controller name recieved.")
-          UPLL_LOG_DEBUG("Controller is empty only for UNKNOWN controllers");
+              UPLL_LOG_DEBUG("Controller is empty only for"
+                             "UNKNOWN controllers");
           return result_code;
         }
       }
       char *ctrlr1 = reinterpret_cast<char*>(vlink_ctrlr_dom[0].ctrlr);
       char *ctrlr2 = reinterpret_cast<char*>(vlink_ctrlr_dom[1].ctrlr);
       if ((ctrlr1 && !strcmp(ctrlr1, reinterpret_cast<char*>(ctrlr_id))) ||
-         (ctrlr2 && !strcmp(ctrlr2, reinterpret_cast<char*>(ctrlr_id)))) {
+          (ctrlr2 && !strcmp(ctrlr2, reinterpret_cast<char*>(ctrlr_id)))) {
         result_code = SetOperStatus(tkey, dmi, notification, true);
       }
       tkey = tkey->get_next_cfg_key_val();
     }
   } else if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-      result_code = UPLL_RC_SUCCESS;
+    result_code = UPLL_RC_SUCCESS;
   }
   DELETE_IF_NOT_NULL(ck_val);
   return result_code;
 }
 
 upll_rc_t VlinkMoMgr::RestoreVlinkOperStatus(ConfigKeyVal *ck_vnif,
-                                       DalDmlIntf *dmi,
-                                       state_notification notification,
-                                       bool skip) {
+                                             DalDmlIntf *dmi,
+                                             state_notification notification,
+                                             bool skip) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *tmp = ck_vnif;
-  while (tmp != NULL) {
-    ConfigKeyVal *ck_vlink = NULL;
-    uint8_t if_flag = 0;
-    GET_USER_DATA_FLAGS(tmp, if_flag);
-    SET_USER_DATA_FLAGS(tmp, kVlinkVnode1);
+  //  while (tmp != NULL) {
+  ConfigKeyVal *ck_vlink = NULL;
+  uint8_t if_flag = 0;
+  GET_USER_DATA_FLAGS(tmp, if_flag);
+  SET_USER_DATA_FLAGS(tmp, kVlinkVnode1);
+  result_code = GetVlinkKeyVal(tmp, UPLL_DT_STATE, ck_vlink, dmi);
+  if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+    // check if the vBrIf is the second VnodeIf in VLINK TBL
+    SET_USER_DATA_FLAGS(tmp, kVlinkVnode2);
+    DELETE_IF_NOT_NULL(ck_vlink);
     result_code = GetVlinkKeyVal(tmp, UPLL_DT_STATE, ck_vlink, dmi);
-    if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-      // check if the vBrIf is the second VnodeIf in VLINK TBL
-      SET_USER_DATA_FLAGS(tmp, kVlinkVnode2);
-      DELETE_IF_NOT_NULL(ck_vlink);
-      result_code = GetVlinkKeyVal(tmp, UPLL_DT_STATE, ck_vlink, dmi);
-    } else if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Failed to Read vlink table");
-      DELETE_IF_NOT_NULL(ck_vlink);
-      return result_code;
-    }
-    if (result_code == UPLL_RC_SUCCESS) {
-     result_code = SetOperStatus(ck_vlink, dmi, notification, true);
-    } else if (result_code != UPLL_RC_SUCCESS &&
-      result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-      DELETE_IF_NOT_NULL(ck_vlink);
-      UPLL_LOG_DEBUG("Error in reading vlink DB");
-      return result_code;
-    }
-    SET_USER_DATA_FLAGS(tmp, if_flag);
+  } else if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_DEBUG("Failed to Read vlink table");
     DELETE_IF_NOT_NULL(ck_vlink);
-    tmp = tmp->get_next_cfg_key_val();
+    return result_code;
   }
+  if (result_code == UPLL_RC_SUCCESS) {
+    result_code = SetOperStatus(ck_vlink, dmi, notification, true);
+  } else if (result_code != UPLL_RC_SUCCESS &&
+             result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+    DELETE_IF_NOT_NULL(ck_vlink);
+    UPLL_LOG_DEBUG("Error in reading vlink DB");
+    return result_code;
+  }
+  SET_USER_DATA_FLAGS(tmp, if_flag);
+  DELETE_IF_NOT_NULL(ck_vlink);
+  //    tmp = tmp->get_next_cfg_key_val();
+  //  }
   return result_code;
 }
 
-upll_rc_t VlinkMoMgr::GetBoundaryStatusFromPhysical(uint8_t *boundary,
-                            controller_domain_t *ctr_domain,
-                            val_oper_status &bound_operStatus,
-                            uint32_t session_id,
-                            uint32_t config_id) {
+upll_rc_t VlinkMoMgr::GetBoundaryStatusFromPhysical(
+    uint8_t *boundary,
+    controller_domain_t *ctr_domain,
+    val_oper_status &bound_operStatus,
+    uint32_t session_id,
+    uint32_t config_id) {
   UPLL_FUNC_TRACE;
   IpcResponse ipc_resp;
   ConfigKeyVal *ck_bound = NULL;
@@ -4720,27 +5581,27 @@ upll_rc_t VlinkMoMgr::GetBoundaryStatusFromPhysical(uint8_t *boundary,
     return UPLL_RC_ERR_GENERIC;
   }
   key_boundary *bound_cfg  = static_cast<key_boundary *>
-                        (ConfigKeyVal::Malloc(sizeof(key_boundary)));
+      (ConfigKeyVal::Malloc(sizeof(key_boundary)));
   uuu::upll_strncpy(bound_cfg->boundary_id,
                     reinterpret_cast<const char *>(boundary),
                     (kMaxLenBoundaryName+1));
   ck_bound = new ConfigKeyVal(UNC_KT_BOUNDARY,
                               IpctSt::kIpcStKeyBoundary, bound_cfg, NULL);
   result_code = SendIpcReq(session_id, config_id, UNC_OP_READ,
-                   UPLL_DT_STATE, ck_bound, NULL, &ipc_resp);
+                           UPLL_DT_STATE, ck_bound, NULL, &ipc_resp);
   if ((result_code != UPLL_RC_SUCCESS) || (!ipc_resp.ckv_data)) {
     delete ck_bound;
     ck_bound = NULL;
     bound_operStatus = UPLL_OPER_STATUS_DOWN;
     DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
-    UPLL_LOG_ERROR("Invalid Boundary %s %d\n", boundary,result_code);
-    return UPLL_RC_ERR_CFG_SEMANTIC;
+    UPLL_LOG_ERROR("Invalid Boundary %s %d\n", boundary, result_code);
+    return UPLL_RC_ERR_GENERIC;
   }
   ck_bound->ResetWith(ipc_resp.ckv_data);
   DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
   val_boundary_st *bound_st = static_cast<val_boundary_st *>
-                                         (GetVal(ck_bound));
-  if (!bound_st || (bound_st->valid[kIdxBoundaryStOperStatus] != 
+      (GetVal(ck_bound));
+  if (!bound_st || (bound_st->valid[kIdxBoundaryStOperStatus] !=
                     UNC_VF_VALID)) {
     UPLL_LOG_DEBUG("Returning error \n");
     return UPLL_RC_ERR_GENERIC;
@@ -4763,19 +5624,19 @@ upll_rc_t VlinkMoMgr::GetBoundaryStatusFromPhysical(uint8_t *boundary,
 }
 
 upll_rc_t VlinkMoMgr::GetRemoteIf(ConfigKeyVal *ck_vnif,
-                      ConfigKeyVal *&ck_remif,
-                      DalDmlIntf *dmi) {
+                                  ConfigKeyVal *&ck_remif,
+                                  DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   uint8_t vif_flag = 0;
-  uint8_t rem_if; 
+  uint8_t rem_if;
   ConfigKeyVal *ck_vlink = NULL;
 
   if (!ck_vnif) {
     UPLL_LOG_DEBUG("Returning error\n");
     return UPLL_RC_ERR_GENERIC;
   }
-  GET_USER_DATA_FLAGS(ck_vnif,vif_flag);
+  GET_USER_DATA_FLAGS(ck_vnif, vif_flag);
   if (vif_flag & 0xA0)
     rem_if = 1;
   else if (vif_flag & 0x50)
@@ -4784,11 +5645,11 @@ upll_rc_t VlinkMoMgr::GetRemoteIf(ConfigKeyVal *ck_vnif,
     return UPLL_RC_ERR_GENERIC;
   result_code = GetVlinkKeyVal(ck_vnif, UPLL_DT_RUNNING, ck_vlink, dmi);
   if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_ERROR("Returning error\n");
+    UPLL_LOG_ERROR("Returning error %d\n", result_code);
     DELETE_IF_NOT_NULL(ck_vlink);
     return UPLL_RC_ERR_GENERIC;
   }
-  result_code = GetVnodeIfFromVlink(ck_vlink,&ck_remif,dmi,rem_if);
+  result_code = GetVnodeIfFromVlink(ck_vlink, &ck_remif, dmi, rem_if);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_ERROR("get remote interface failed %d", result_code);
     DELETE_IF_NOT_NULL(ck_vlink);
@@ -4798,15 +5659,19 @@ upll_rc_t VlinkMoMgr::GetRemoteIf(ConfigKeyVal *ck_vnif,
   return result_code;
 }
 
-upll_rc_t VlinkMoMgr::GetConnected(key_vnode_type_t *src_node,
-            set<key_vnode_type, key_vnode_type_compare> *Vnode_set_obj,
-            set<key_vlink_t,vlink_compare>*Vlink_set_obj,
-            set<key_vnode_if_t, key_vnode_if_compare>* boundary_if_set,
-            DalDmlIntf *dmi) {
+upll_rc_t VlinkMoMgr::GetConnected(
+    key_vnode_type_t *src_node,
+    set<key_vnode_type,
+    key_vnode_type_compare> *Vnode_set_obj,
+    set<key_vlink_t,
+    vlink_compare>*Vlink_set_obj,
+    set<key_vnode_if_t,
+    key_vnode_if_compare>* boundary_if_set,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
-  set<key_vlink_t,vlink_compare>::iterator vlink_itr;
-  std::pair< set<key_vnode_type_t>::iterator,bool > pr;
+  set<key_vlink_t, vlink_compare>::iterator vlink_itr;
+  std::pair< set<key_vnode_type_t>::iterator, bool > pr;
   key_vnode_t vnode_key;
   memset(&vnode_key, 0, sizeof(key_vnode_t));
   /* initialize the vlink key with the vtn name and vlink vnode1 val with
@@ -4821,8 +5686,9 @@ upll_rc_t VlinkMoMgr::GetConnected(key_vnode_type_t *src_node,
       return result_code;
     }
     key_vlink *vlink_key = reinterpret_cast<key_vlink*>(ck_vlink->get_key());
-    uuu::upll_strncpy(vlink_key->vtn_key.vtn_name, src_node->vnode_key.vtn_key.vtn_name,
-                     (kMaxLenVtnName+1));
+    uuu::upll_strncpy(vlink_key->vtn_key.vtn_name,
+                      src_node->vnode_key.vtn_key.vtn_name,
+                      (kMaxLenVtnName+1));
     ConfigVal *cv_vlink = NULL;
     result_code = AllocVal(cv_vlink, UPLL_DT_RUNNING);
     if (result_code != UPLL_RC_SUCCESS) {
@@ -4832,21 +5698,23 @@ upll_rc_t VlinkMoMgr::GetConnected(key_vnode_type_t *src_node,
     }
     ck_vlink->SetCfgVal(cv_vlink);
     val_vlink *vlink_val = reinterpret_cast<val_vlink_t*>
-                             (GetVal(ck_vlink));
+        (GetVal(ck_vlink));
     if (vlink_val == NULL) {
       UPLL_LOG_DEBUG("val vlink is NULL");
       DELETE_IF_NOT_NULL(ck_vlink);
       return UPLL_RC_ERR_GENERIC;
     }
     if (npos == kVnode1) {
-      uuu::upll_strncpy(vlink_val->vnode1_name,src_node->vnode_key.vnode_name, (kMaxLenVnodeName+1));
+      uuu::upll_strncpy(vlink_val->vnode1_name,
+                        src_node->vnode_key.vnode_name,
+                        (kMaxLenVnodeName+1));
       vlink_val->valid[UPLL_IDX_VNODE1_NAME_VLNK] = UNC_VF_VALID;
       vlink_val->valid[UPLL_IDX_VNODE2_NAME_VLNK] = UNC_VF_INVALID;
     }
     if (npos == kVnode2) {
       // check for a match with the given src_vbr as vnode2_name
       uuu::upll_strncpy(vlink_val->vnode2_name,
-                  src_node->vnode_key.vnode_name, (kMaxLenVnodeName+1));
+                        src_node->vnode_key.vnode_name, (kMaxLenVnodeName+1));
       vlink_val->valid[UPLL_IDX_VNODE2_NAME_VLNK] = UNC_VF_VALID;
       vlink_val->valid[UPLL_IDX_VNODE1_NAME_VLNK] = UNC_VF_INVALID;
     }
@@ -4855,15 +5723,15 @@ upll_rc_t VlinkMoMgr::GetConnected(key_vnode_type_t *src_node,
     /* Get all the vlinks with the specified vnode as either vnode1
        or vnode2  under the given VTN.  Populate the corresponding
        vnode and vlink set.  Invoke GetConnected on the inserted vnode
-     */
+       */
     DbSubOp dbop = {kOpReadMultiple, kOpMatchNone,
-                    kOpInOutCtrlr| kOpInOutDomain | kOpInOutFlag};
+      kOpInOutCtrlr| kOpInOutDomain | kOpInOutFlag};
     result_code = ReadConfigDB(ck_vlink, UPLL_DT_RUNNING,
-        UNC_OP_READ, dbop, dmi, MAINTBL);
+                               UNC_OP_READ, dbop, dmi, MAINTBL);
     if (result_code == UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("vlink records are %s\n ",ck_vlink->ToStrAll().c_str());
+      UPLL_LOG_DEBUG("vlink records are %s\n ", ck_vlink->ToStrAll().c_str());
       ConfigKeyVal *tmp = ck_vlink;
-      while(tmp != NULL) {
+      while (tmp != NULL) {
         controller_domain_t vlink_ctrlr_dom[2];
         vlink_ctrlr_dom[0].ctrlr = NULL;
         vlink_ctrlr_dom[0].domain = NULL;
@@ -4895,32 +5763,36 @@ upll_rc_t VlinkMoMgr::GetConnected(key_vnode_type_t *src_node,
         uint8_t boundary_if[kMaxLenInterfaceName+1];
         if (npos == kVnode1) {
           uuu::upll_strncpy(vnode_key.vnode_name,
-                       tmp_vlink_val->vnode2_name, (kMaxLenVnodeName+1));
+                            tmp_vlink_val->vnode2_name, (kMaxLenVnodeName+1));
           if (bound_vlink) {
-          uuu::upll_strncpy(boundary_if,
-                       tmp_vlink_val->vnode2_ifname, (kMaxLenInterfaceName+1));
+            uuu::upll_strncpy(boundary_if,
+                              tmp_vlink_val->vnode2_ifname,
+                              (kMaxLenInterfaceName+1));
           }
           swap_npos = 1;
-          
+
         } else {
           uuu::upll_strncpy(vnode_key.vnode_name,
-                   tmp_vlink_val->vnode1_name, (kMaxLenVnodeName+1));
+                            tmp_vlink_val->vnode1_name, (kMaxLenVnodeName+1));
           if (bound_vlink) {
-          uuu::upll_strncpy(boundary_if,
-                       tmp_vlink_val->vnode1_ifname, (kMaxLenInterfaceName+1));
+            uuu::upll_strncpy(boundary_if,
+                              tmp_vlink_val->vnode1_ifname,
+                              (kMaxLenInterfaceName+1));
           }
           swap_npos = 0;
         }
         uuu::upll_strncpy(vnode_key.vtn_key.vtn_name,
-                   tmp_vlink_key->vtn_key.vtn_name, (kMaxLenVtnName+1));
+                          tmp_vlink_key->vtn_key.vtn_name, (kMaxLenVtnName+1));
         unc_key_type_t tmp_key_type = GetVlinkVnodeIfKeyType(tmp, swap_npos);
         if (bound_vlink) {
           if (tmp_key_type == UNC_KT_VBR_IF) {
             key_vnode_if tmp_boundary_vnode_if;
             tmp_boundary_vnode_if.vnode_key = vnode_key;
-            uuu::upll_strncpy(tmp_boundary_vnode_if.vnode_if_name, boundary_if, (kMaxLenInterfaceName+1));
+            uuu::upll_strncpy(tmp_boundary_vnode_if.vnode_if_name,
+                              boundary_if,
+                              (kMaxLenInterfaceName+1));
             boundary_if_set->insert(tmp_boundary_vnode_if);
-          }      
+          }
           tmp = tmp->get_next_cfg_key_val();
           continue;
         }
@@ -4929,14 +5801,18 @@ upll_rc_t VlinkMoMgr::GetConnected(key_vnode_type_t *src_node,
         vnode_key_type.key_type = tmp_key_type;
         pr = Vnode_set_obj->insert(vnode_key_type);
         if (pr.second == true) {
-          GetConnected(&vnode_key_type, Vnode_set_obj, Vlink_set_obj,boundary_if_set, dmi);
+          GetConnected(&vnode_key_type,
+                       Vnode_set_obj,
+                       Vlink_set_obj,
+                       boundary_if_set,
+                       dmi);
         }
         tmp = tmp->get_next_cfg_key_val();
       }
     } else if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-       UPLL_LOG_DEBUG("Error in reading vlink DB");
-       DELETE_IF_NOT_NULL(ck_vlink);
-       return result_code;
+      UPLL_LOG_DEBUG("Error in reading vlink DB");
+      DELETE_IF_NOT_NULL(ck_vlink);
+      return result_code;
     }
     if (npos == kVnode2) {
       DELETE_IF_NOT_NULL(ck_vlink);
@@ -4957,10 +5833,12 @@ upll_rc_t VlinkMoMgr::UpdateVlinkOperStatusUsingVlinkSet(
   for (set<key_vlink_t>::iterator vlink_itr = vlink_set->begin();
        vlink_itr != vlink_set->end(); ++vlink_itr) {
     key_vlink_t *vlink_key = reinterpret_cast<key_vlink_t *>
-                                      (ConfigKeyVal::Malloc(sizeof(key_vlink_t)));
+        (ConfigKeyVal::Malloc(sizeof(key_vlink_t)));
     *vlink_key = *vlink_itr;
-    ConfigKeyVal *ck_vlink = new ConfigKeyVal(UNC_KT_VLINK, IpctSt::kIpcStKeyVlink,
-                                          vlink_key, NULL);
+    ConfigKeyVal *ck_vlink = new ConfigKeyVal(UNC_KT_VLINK,
+                                              IpctSt::kIpcStKeyVlink,
+                                              vlink_key,
+                                              NULL);
     result_code = SetOperStatus(ck_vlink, dmi, notification);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_INFO("Record updation failed in UPLL_DT_STATE %d",
@@ -4972,7 +5850,307 @@ upll_rc_t VlinkMoMgr::UpdateVlinkOperStatusUsingVlinkSet(
   }
   return result_code;
 }
+
+/* VlanmapOnBoundary changes */
+upll_rc_t VlinkMoMgr::UpdateVlinkVlanmapFlag(ConfigKeyVal *&ikey,
+                                             ConfigKeyVal *&db_vlinkckv) {
+  UPLL_FUNC_TRACE;
+
+  uint8_t flag1        = 0;
+  uint8_t flag2        = 0;
+  uint8_t tmp_flag     = 0;
+
+  val_vlink_t *ival = reinterpret_cast<val_vlink_t *>(GetVal(ikey));
+  val_vlink_t *dbval = reinterpret_cast<val_vlink_t *>(GetVal(db_vlinkckv));
+
+  if (!ival || !dbval) {
+    UPLL_LOG_DEBUG("ival:%p or dbval:%p is NULL", ival, dbval);
+    return UPLL_RC_ERR_GENERIC;
+  }
+
+  /* In case of vLink create req without boundary name */
+  if (ival->valid[UPLL_IDX_BOUNDARY_NAME_VLNK] == UNC_VF_INVALID) {
+    UPLL_LOG_DEBUG("Boundary name is not present");
+    return UPLL_RC_SUCCESS;
+  }
+
+  /* If bdry info from uppl is present */
+  if (ck_boundary && ck_boundary->get_cfg_val()) {
+    controller_domain_t vlink_ctrlr_dom[2];
+    vlink_ctrlr_dom[0].ctrlr = NULL;
+    vlink_ctrlr_dom[0].domain = NULL;
+    vlink_ctrlr_dom[1].ctrlr = NULL;
+    vlink_ctrlr_dom[1].domain = NULL;
+    val_boundary_t  *boundary_val =
+        reinterpret_cast<val_boundary_t *>(GetVal(ck_boundary));
+    upll_rc_t result_code = GetControllerDomainId(ikey, vlink_ctrlr_dom);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("Failed to get vlink controller and domain");
+      return UPLL_RC_SUCCESS;
+    }
+
+    for (int i = 0; i < 2; i++) {
+      uint8_t *bdry_ctr_name = NULL;
+      uint8_t *bdry_domain   = NULL;
+      uint8_t *logical_port_id = NULL;
+
+      if (i == 0) {
+        logical_port_id = boundary_val->logical_port_id1;
+        bdry_ctr_name = boundary_val->controller_name1;
+        bdry_domain   = boundary_val->domain_name1;
+      } else {
+        logical_port_id = boundary_val->logical_port_id2;
+        bdry_ctr_name = boundary_val->controller_name2;
+        bdry_domain   = boundary_val->domain_name2;
+      }
+
+      if ((toupper(logical_port_id[0]) == 'S' &&
+           toupper(logical_port_id[1]) == 'W') ||
+          (toupper(logical_port_id[0]) == 'S' &&
+           toupper(logical_port_id[1]) == 'D')) {
+        for (int index = 0; index <2; index++) {
+          if (!vlink_ctrlr_dom[index].ctrlr) {
+            UPLL_LOG_TRACE("Controller name is empty. controller type"
+                           "is unknown");
+            continue;
+          }
+          if ((!strcmp(reinterpret_cast<char *>(vlink_ctrlr_dom[index].ctrlr),
+                       reinterpret_cast<char *>(bdry_ctr_name))) &&
+              (!strcmp(reinterpret_cast<char *>(vlink_ctrlr_dom[index].domain),
+                       reinterpret_cast<char *>(bdry_domain)))) {
+            if (index == 0) {
+              UPLL_LOG_TRACE("Node1 is SW or SD");
+              flag1 = (uint8_t)(VLINK_FLAG_NODE1_TYPE&
+                                (kVlanMap << kVlinkVnodeIf1Type));
+              if ((ival->valid[UPLL_IDX_BOUNDARY_NAME_VLNK] ==
+                   UNC_VF_VALID_NO_VALUE)
+                  && (dbval->valid[UPLL_IDX_BOUNDARY_NAME_VLNK] ==
+                      UNC_VF_VALID)) {
+                flag1 = (uint8_t)(VLINK_FLAG_NODE1_TYPE&
+                                  (kVbrIf << kVlinkVnodeIf1Type));
+              }
+              /*Set ikey node1 flag */
+              GET_USER_DATA_FLAGS(ikey, tmp_flag);
+              tmp_flag &= ~VLINK_FLAG_NODE1_TYPE;
+              tmp_flag |= flag1;
+              SET_USER_DATA_FLAGS(ikey, tmp_flag);
+            } else {
+              UPLL_LOG_TRACE("Node2 is SW or SD");
+              flag2 = (uint8_t)(VLINK_FLAG_NODE2_TYPE&
+                                (kVlanMap << kVlinkVnodeIf2Type));
+              if ((ival->valid[UPLL_IDX_BOUNDARY_NAME_VLNK] ==
+                   UNC_VF_VALID_NO_VALUE)
+                  && (dbval->valid[UPLL_IDX_BOUNDARY_NAME_VLNK] ==
+                      UNC_VF_VALID)) {
+                flag2 = (uint8_t)(VLINK_FLAG_NODE2_TYPE&
+                                  (kVbrIf << kVlinkVnodeIf2Type));
+              }
+              /*Set ikey node1 flag */
+              GET_USER_DATA_FLAGS(ikey, tmp_flag);
+              tmp_flag &= ~VLINK_FLAG_NODE2_TYPE;
+              tmp_flag |= flag2;
+              SET_USER_DATA_FLAGS(ikey, tmp_flag);
+            }
+          }
+        }
+      }
+    }
+
+    /* During vLink update: no-boundarymap: Dont set the tkey flag */
+    if ((ival->valid[UPLL_IDX_BOUNDARY_NAME_VLNK] == UNC_VF_VALID_NO_VALUE) &&
+        (dbval->valid[UPLL_IDX_BOUNDARY_NAME_VLNK] == UNC_VF_VALID)) {
+      return UPLL_RC_SUCCESS;
+    }
+
+    if (flag1 != 0) {
+      /*Set dbvlink node1 flag */
+      GET_USER_DATA_FLAGS(db_vlinkckv, tmp_flag);
+      tmp_flag &= ~VLINK_FLAG_NODE1_TYPE;
+      tmp_flag |= flag1;
+      SET_USER_DATA_FLAGS(db_vlinkckv, tmp_flag);
+    }
+
+    if (flag2 != 0) {
+      /*Set dbvlink node2 flag */
+      GET_USER_DATA_FLAGS(db_vlinkckv, tmp_flag);
+      tmp_flag &= ~VLINK_FLAG_NODE2_TYPE;
+      tmp_flag |= flag2;
+      SET_USER_DATA_FLAGS(db_vlinkckv, tmp_flag);
+    }
+  } else {
+    UPLL_LOG_DEBUG("ck_boundary is NULL");
+    return UPLL_RC_ERR_GENERIC;
+  }
+  return UPLL_RC_SUCCESS;
+}
+
+upll_rc_t VlinkMoMgr::GetVlinkKeyValFromVlanMap(
+    ConfigKeyVal *vlanmap_ckv,
+    ConfigKeyVal *&vlink_ckv,
+    DalDmlIntf *dmi,
+    upll_keytype_datatype_t datatype) {
+  UPLL_FUNC_TRACE;
+  upll_rc_t result_code = UPLL_RC_SUCCESS;
+  uint32_t  session_id  = 0;
+  uint32_t  config_id   = 0;
+
+  key_vlan_map *vlanmap_key = (vlanmap_ckv->get_key()) ?
+      (reinterpret_cast<key_vlan_map*>(vlanmap_ckv->get_key())):NULL;
+  if (!vlanmap_key) {
+    UPLL_LOG_DEBUG("Error in retrieving key vlan map");
+    return UPLL_RC_ERR_GENERIC;
+  }
+
+  uint8_t *logical_port_id = NULL;
+  if (vlanmap_key->logical_port_id_valid == 1) {
+    logical_port_id = vlanmap_key->logical_port_id;
+    if (logical_port_id == NULL) {
+      UPLL_LOG_DEBUG("Recieved empty logical port id");
+      return UPLL_RC_ERR_GENERIC;
+    }
+  } else {
+    UPLL_LOG_ERROR("Logical port id is not present");
+    return UPLL_RC_ERR_GENERIC;
+  }
+  IpcResponse ipc_resp;
+
+  /* ConfigKeyVal for Boundary
+   * */
+
+  controller_domain ctrlr_dom;
+  ctrlr_dom.ctrlr = ctrlr_dom.domain = NULL;
+  GET_USER_DATA_CTRLR_DOMAIN(vlanmap_ckv, ctrlr_dom);
+
+  unc::tclib::TcLibModule *tclib =
+      unc::upll::config_momgr::UpllConfigMgr::GetTcLibModule();
+  PFC_ASSERT(tclib != NULL);
+  if (tclib == NULL) {
+    UPLL_LOG_ERROR("Unable to get tclib module");
+    return UPLL_RC_ERR_GENERIC;
+  }
+
+  /* Get current session_id and config_id from TcLib */
+  tclib->GetSessionAttributes(&session_id, &config_id);
+  UPLL_LOG_TRACE("session_id = %u. config_id = %u", session_id, config_id);
+
+  key_boundary *bndrykey = static_cast<key_boundary *>
+      (ConfigKeyVal::Malloc(sizeof(key_boundary)));  // COV NULL RETURN
+  val_boundary_t *boundary_val = reinterpret_cast<val_boundary *>(
+      ConfigKeyVal::Malloc(sizeof(val_boundary)));
+  ConfigVal *cv_boundary = new ConfigVal(IpctSt::kIpcStValBoundary,
+                                         boundary_val);
+  uuu::upll_strncpy(boundary_val->logical_port_id2, logical_port_id,
+                    kMaxLenBoundaryName);
+  boundary_val->valid[kIdxBoundaryLogicalPortId2] = UNC_VF_VALID;
+  uuu::upll_strncpy(boundary_val->controller_name2, ctrlr_dom.ctrlr,
+                    kMaxLenCtrlrId);
+  boundary_val->valid[kIdxBoundaryControllerName2] = UNC_VF_VALID;
+  ConfigKeyVal *ck_boundary = new ConfigKeyVal(UNC_KT_BOUNDARY,
+                                               IpctSt::kIpcStKeyBoundary,
+                                               bndrykey, cv_boundary);
+  SET_USER_DATA_CTRLR_DOMAIN(ck_boundary, ctrlr_dom);
+
+  /* Case1: Audit - Always check boundary in RUNNING
+   * Case2: Commit(del) -  check CANDIDATE
+   * Case3: Commit(Cr/upd) - check RUNNING */
+  upll_keytype_datatype_t dt_type = (UPLL_DT_AUDIT == datatype)?
+      UPLL_DT_RUNNING:datatype;
+
+  result_code = SendIpcReq(session_id, config_id, UNC_OP_READ_SIBLING,
+                           dt_type, ck_boundary, NULL, &ipc_resp);
+  if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+    boundary_val = reinterpret_cast<val_boundary_t *>(GetVal(ck_boundary));
+    memset(boundary_val, 0, sizeof(val_boundary_t));
+    uuu::upll_strncpy(boundary_val->logical_port_id1, logical_port_id,
+                      kMaxLenBoundaryName);
+    boundary_val->valid[kIdxBoundaryLogicalPortId1] = UNC_VF_VALID;
+    uuu::upll_strncpy(boundary_val->controller_name1, ctrlr_dom.ctrlr,
+                      kMaxLenCtrlrId);
+    boundary_val->valid[kIdxBoundaryControllerName1] = UNC_VF_VALID;
+    DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
+    result_code = SendIpcReq(session_id, config_id, UNC_OP_READ_SIBLING,
+                             dt_type, ck_boundary, NULL, &ipc_resp);
+  }
+
+  if ((result_code != UPLL_RC_SUCCESS) || (!ipc_resp.ckv_data)) {
+    UPLL_LOG_DEBUG("Error in retrieving boundary info from UPPL");
+    DELETE_IF_NOT_NULL(ck_boundary);
+    return UPLL_RC_ERR_CFG_SEMANTIC;
+  }
+  ck_boundary->ResetWith(ipc_resp.ckv_data);
+  delete ipc_resp.ckv_data;
+
+  ConfigKeyVal *ck_boundary_tmp = ck_boundary;
+  while (ck_boundary_tmp) {
+    uint8_t *boundary_id = ck_boundary_tmp->get_key()?
+        (reinterpret_cast<key_boundary *>
+         (ck_boundary_tmp->get_key()))->boundary_id : NULL;
+    if (boundary_id == NULL) {
+      UPLL_LOG_DEBUG("Boundary key is empty");
+      DELETE_IF_NOT_NULL(ck_boundary);
+      return UPLL_RC_ERR_GENERIC;
+    }
+
+    ConfigKeyVal *ckv_vlink = NULL;
+    result_code = GetChildConfigKey(ckv_vlink, NULL);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("GetChildConfigKey failed for vlink");
+      DELETE_IF_NOT_NULL(ck_boundary);
+      return result_code;
+    }
+    ConfigVal *cv_vlink = NULL;
+    result_code = AllocVal(cv_vlink, datatype, MAINTBL);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("AllocVal failed for vlink");
+      DELETE_IF_NOT_NULL(ck_boundary);
+      return result_code;
+    }
+    ckv_vlink->AppendCfgVal(cv_vlink);
+    val_vlink *vlink_val = reinterpret_cast<val_vlink*>GetVal(ckv_vlink);
+    if (vlink_val == NULL) {
+      UPLL_LOG_DEBUG("val_vlink is NULL");
+      DELETE_IF_NOT_NULL(ckv_vlink);
+      DELETE_IF_NOT_NULL(ck_boundary);
+      return UPLL_RC_ERR_GENERIC;
+    }
+    uuu::upll_strncpy(vlink_val->boundary_name, boundary_id,
+                      kMaxLenBoundaryName+1);
+    vlink_val->valid[UPLL_IDX_BOUNDARY_NAME_VLNK] = UNC_VF_VALID;
+
+    DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutFlag};
+    result_code = ReadConfigDB(ckv_vlink, datatype,
+                               UNC_OP_READ, dbop, dmi, MAINTBL);
+    if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+      ck_boundary_tmp = ck_boundary_tmp->get_next_cfg_key_val();
+      DELETE_IF_NOT_NULL(ckv_vlink);
+      continue;
+    }
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("Failed to read vlink info based on boundary id");
+      DELETE_IF_NOT_NULL(ckv_vlink);
+      DELETE_IF_NOT_NULL(ck_boundary);
+      return UPLL_RC_ERR_GENERIC;
+    }
+
+    if (vlink_ckv == NULL) {
+      vlink_ckv = ckv_vlink;
+    } else {
+      vlink_ckv->AppendCfgKeyVal(ckv_vlink);
+    }
+    UPLL_LOG_TRACE("%s", vlink_ckv->ToStrAll().c_str());
+    ck_boundary_tmp = ck_boundary_tmp->get_next_cfg_key_val();
+  }
+  DELETE_IF_NOT_NULL(ck_boundary);
+
+  /* If vlink_ckv is NULL, do not send SUCCESS */
+  if (!vlink_ckv) {
+    UPLL_LOG_INFO("No vlink found in datatype:%d", datatype);
+    return UPLL_RC_ERR_NO_SUCH_INSTANCE;
+  }
+
+  return UPLL_RC_SUCCESS;
+}
+
 }  // namespace kt_momgr
 }  // namespace upll
 }  // namespace unc
-
index 82ccc4a9875459f260a7bb9cee6a9445a48d6784..b3027bd11776042a73b373757a5eb79a58dbb42a 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -12,6 +12,7 @@
 
 #include <string>
 #include <sstream>
+#include <set>
 #include "vnode_momgr.hh"
 #include "unc/uppl_common.h"
 
@@ -32,51 +33,53 @@ typedef struct key_vnode_if_t {
 
 struct key_vnode_if_compare {
   inline bool operator()(const key_vnode_if &keyvnodeif1,
-                          const key_vnode_if keyvnodeif2) const {
+                         const key_vnode_if keyvnodeif2) const {
     int ret = strcmp((const char *)keyvnodeif1.vnode_key.vtn_key.vtn_name,
                      (const char *)keyvnodeif2.vnode_key.vtn_key.vtn_name);
     if (ret == 0) {
       ret = strcmp((const char *)keyvnodeif1.vnode_key.vnode_name,
-                     (const char*)keyvnodeif2.vnode_key.vnode_name);
+                   (const char*)keyvnodeif2.vnode_key.vnode_name);
       if (ret == 0) {
         return (strcmp((const char *)keyvnodeif1.vnode_if_name,
-                      (const char*)keyvnodeif2.vnode_if_name) < 0);
-      } else 
+                       (const char*)keyvnodeif2.vnode_if_name) < 0);
+      } else {
         return (ret < 0);
-    } else 
+      }
+    } else {
       return (ret < 0);
-    }   
+    }
+  }
 };
 
 typedef struct key_vlink_user_data {
-    key_user_data_t user_data1;
-    key_user_data_t user_data2;
+  key_user_data_t user_data1;
+  key_user_data_t user_data2;
 } key_vlink_user_data_t;
 
 typedef struct val_db_vlink_st {
-        val_vlink_st       vlink_val_st;
-        uint32_t           down_count;
+  val_vlink_st       vlink_val_st;
+  uint32_t           down_count;
 } val_db_vlink_st_t;
 
 #define SET_USER_DATA_CTRLR2(ckey, ctrlr2) { \
   GET_USER_DATA(ckey)      \
   if (ctrlr && strlen(reinterpret_cast<char *>(ctrlr))) { \
-  key_vlink_user_data *user_data = reinterpret_cast<key_vlink_user_data *>\
-                                    (ckey->get_user_data()); \
-  uuu::upll_strncpy(user_data->ctrlr2_id, ctrlr2, (kMaxLenCtrlrId+1)); \
+    key_vlink_user_data *user_data = reinterpret_cast<key_vlink_user_data *>\
+    (ckey->get_user_data()); \
+    uuu::upll_strncpy(user_data->ctrlr2_id, ctrlr2, (kMaxLenCtrlrId+1)); \
   } else {  \
-  return UPLL_RC_ERR_GENERIC; \
+    return UPLL_RC_ERR_GENERIC; \
   }\
 }
 
 #define SET_USER_DATA_DOMAIN2(ckey, domain2) { \
   GET_USER_DATA(ckey)      \
   if ( domain2 && strlen(reinterpret_cast<char *>(domain2))) { \
-  key_vlink_user_data *user_data = reinterpret_cast<key_vlink_user_data *> \
-                                                  (ckey->get_user_data()); \
-  uuu::upll_strncpy(user_data->domain2_id, domain2, (kMaxLenCtrlrId+1)); \
+    key_vlink_user_data *user_data = reinterpret_cast<key_vlink_user_data *> \
+    (ckey->get_user_data()); \
+    uuu::upll_strncpy(user_data->domain2_id, domain2, (kMaxLenCtrlrId+1)); \
   } else { \
-  return UPLL_RC_ERR_GENERIC; \
+    return UPLL_RC_ERR_GENERIC; \
   }\
 }
 
@@ -86,713 +89,746 @@ enum NodePosition {
 };
 
 class VlinkMoMgr : public VnodeMoMgr {
-  private:
-    static unc_key_type_t vlink_child[];
-    static BindInfo vlink_bind_info[];
-    static BindInfo vlink_rename_bind_info[];
-    static BindInfo key_vlink_maintbl_bind_info[];
-    static BindInfo key_vlink_renametbl_update_bind_info[];
-    ConfigKeyVal *ck_boundary;
-
-    /* @brief      Retrieve oper status of boundary port from physical  
-     *              
-     * @param[in]  boundary_name pointer to boundary name 
-     * @param[in]  ctr_domain    pointer to controller and domain id pair
-     * @param[out] bound_operStatus operstatus of boundary 
-     * @param[in]  session_id   transaction session id
-     * @param[in]  config_id    transaction config id
-     *
-     * @retval  UPLL_RC_SUCCESS      Completed successfully.
-     * @retval  UPLL_RC_ERR_GENERIC  Generic failure.
-     * 
-     **/ 
-    upll_rc_t GetBoundaryStatusFromPhysical(uint8_t *boundary_name,
-                                       controller_domain_t *ctr_domain,
-                                       val_oper_status &bound_operStatus,
-                                       uint32_t session_id,
-                                       uint32_t config_id) ;
-
-
-    /**
-     * @brief  Gets the valid array position of the variable in the value 
-     *         structure from the table in the specified configuration  
-     *
-     * @param[in]     val      pointer to the value structure 
-     * @param[in]     indx     database index for the variable
-     * @param[out]    valid    position of the variable in the valid array - 
-     *                          NULL if valid does not exist.
-     * @param[in]     dt_type  specifies the configuration
-     * @param[in]     tbl      specifies the table containing the given value 
-     *
-     **/
-    upll_rc_t GetValid(void *val,
-                       uint64_t indx,
-                       uint8_t *&valid,
-                       upll_keytype_datatype_t dt_type,
-                       MoMgrTables tbl);
-    /**
-     * @Brief Validates the syntax of the specified key and value structure
-     *        for KT_VLINK keytype
-     *
-     * @param[in] req                       This structure contains
-     *                                      IpcReqRespHeader(first 8 fields of input request structure).
-     * @param[in] ikey                      ikey contains key and value structure.
-     *
-     * @retval UPLL_RC_SUCCESS              Successful.
-     * @retval UPLL_RC_ERR_CFG_SYNTAX       Syntax error.
-     * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE key_vlink is not available.
-     * @retval UPLL_RC_ERR_GENERIC          Generic failure.
-     * @retval UPLL_RC_ERR_INVALID_OPTION1  option1 is not valid.
-     * @retval UPLL_RC_ERR_INVALID_OPTION2  option2 is not valid.
-     */
-    upll_rc_t ValidateMessage(IpcReqRespHeader *req,
-                              ConfigKeyVal *ikey);
-    /**
-     * @Brief  compares controller id and domain id before 
-     *         updating the value to DB.
-     *
-     * @param[in]  ikey  ikey contains key and value structure.
-     * @param[in]  okey  okey contains key and value structure.
-     *
-     * @retval  UPLL_RC_SUCCESS            Successful.
-     * @retval  UPLL_RC_ERR_CFG_SYNTAX     Syntax error.
-     */
-    upll_rc_t CtrlrIdAndDomainIdUpdationCheck(ConfigKeyVal *ikey,
-                                              ConfigKeyVal *okey) {
-      UPLL_LOG_TRACE("Not needed for this KT, returning SUCCESS");
-      return UPLL_RC_SUCCESS;
-    }
-
-    /**
-     * @Brief Validates the syntax for KT_VLINK keytype key structure.
-     *
-     * @param[in] key_vlink KT_VLINK key structure.
-     *
-     * @retval UPLL_RC_SUCCESS        validation succeeded.
-     * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
-     */
-    upll_rc_t ValidateVlinkKey(
-        key_vlink_t *key_vlink,
-        unc_keytype_operation_t operation = UNC_OP_INVALID);
-
-    /**
-     * @Brief Validates the syntax for KT_VLINK keytype value structure.
-     *
-     * @param[in] val_vlink KT_VLINK value structure.
-     *
-     * @retval UPLL_RC_ERR_GENERIC    Generic failure.
-     * @retval UPLL_RC_SUCCESS        validation succeeded.
-     * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
-     */
-    upll_rc_t ValidateVlinkValue(val_vlink_t *val_vlink,
-        unc_keytype_operation_t operation =  UNC_OP_INVALID);
-
-    /**
-     * @Brief Checks if the specified key type(KT_VLINK) and
-     *        associated attributes are supported on the given controller,
-     *        based on the valid flag
-     *
-     * @param[in] req               This structure contains
-     *                              IpcReqRespHeader(first 8 fields of input
-     *                              request structure).
-     * @param[in] ikey              ikey contains key and value structure.
-     *
-     * @retval  UPLL_RC_SUCCESS             Validation succeeded.
-     * @retval  UPLL_RC_ERR_GENERIC         Validation failure.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION1 Option1 is not valid.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION2 Option2 is not valid.
-     */
-
-    upll_rc_t ValidateCapability(IpcReqRespHeader *req,
-                                 ConfigKeyVal *ikey,
-                                 const char *ctrlr_name = NULL);
-
-    /**
-     * @Brief Checks if the specified key type and
-     *        associated attributes are supported on the given controller,
-     *        based on the valid flag.
-     *
-     * @param[in] val_vlink         Value Structure.
-     * @param[in] attr            pointer to controller attribute
-     * @param[in] operation       Operation Name
-     *
-     * @retval UPLL_RC_SUCCESS                    validation succeeded.
-     * @retval UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR Attribute NOT_SUPPORTED.
-     * @retval UPLL_RC_ERR_GENERIC                Generic failure.
-     */
-    upll_rc_t ValVlinkAttributeSupportCheck(val_vlink_t *val_vlink,
-    const uint8_t* attrs, unc_keytype_operation_t operation);
-
-    /**
-     * @brief  Get the specific vtn_name and vnode_name from ConfigKeyVal
-     *
-     * @param[in]  ikey        ConfigKeyVal pointer
-     * @param[out] vtn_name    vnode vtn name
-     * @param[out] vnode_name  vnode specific name
-     *
-     * @retval UPLL_RC_SUCCESS      Successful
-     * @retval UPLL_RC_ERR_GENERIC  failed to retrieve the values
-     */
-    upll_rc_t GetVnodeName(ConfigKeyVal *ikey,
-                           uint8_t *&vtn_name,
-                           uint8_t *&vnode_name);
-
-    upll_rc_t UpdateConfigStatus(ConfigKeyVal *req,
-                                 unc_keytype_operation_t op,
-                                 uint32_t driver_result,
-                                 ConfigKeyVal *upd_key, DalDmlIntf *dmi,
-                                 ConfigKeyVal *ctrlr_key = NULL);
-    /**
-     * @brief  Update config status for commit result and vote result.
-     *
-     * @param[in/out]  ckv_running  ConfigKeyVal instance.
-     * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
-     * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
-     *
-     **/
-    upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
-                                      uuc::UpdateCtrlrPhase phase,
-                                      ConfigKeyVal *&ckv_running);
-    /**
-     * @brief  Duplicates the input configkeyval including the key and val.  
-     * based on the tbl specified.
-     *
-     * @param[in]  okey   Output Configkeyval - allocated within the function
-     * @param[in]  req    Input ConfigKeyVal to be duplicated.
-     * @param[in]  tbl    specifies if the val structure belongs to the main table/ controller table or rename table.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
-                              MoMgrTables tbl = MAINTBL);
-    /**
-     * @brief  Allocates for the specified val in the given configuration in the     * specified table.   
-     *
-     * @param[in/out]  ck_val   Reference pointer to configval structure 
-     *                          allocated. 
-     * @param[in]      dt_type  specifies the configuration candidate/running/
-     *                          state 
-     * @param[in]      tbl      specifies if the corresponding table is the  
-     *                          main table / controller table or rename table.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
-                       MoMgrTables tbl = MAINTBL);
-    /**
-     * @brief      Method to get a configkeyval of the parent keytype 
-     *
-     * @param[in/out]  okey           pointer to parent ConfigKeyVal 
-     * @param[in]      ikey           pointer to the child configkeyval from 
-     * which the parent configkey val is obtained.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
-    upll_rc_t GetControllerKey(ConfigKeyVal *ikey, ConfigKeyVal *&okey,
-                               unc_keytype_datatype_t dt_type,
-                               char *ctrlr_name);
-    upll_rc_t SwapVnodes(ConfigKeyVal *&temp_ck_vlink);
-    upll_rc_t SwapKeyVal(ConfigKeyVal *ikey, ConfigKeyVal *&okey,
-                         DalDmlIntf *dmi, uint8_t *ctrlr_id, bool &no_rename);
-    upll_rc_t GetRenamedControllerKey(ConfigKeyVal *ikey,
-                                      upll_keytype_datatype_t dt_type,
-                                      DalDmlIntf *dmi,
-                                      controller_domain *ctrlr_dom);
-    upll_rc_t GetRenamedUncKey(ConfigKeyVal *ctrlr_key,
-                               upll_keytype_datatype_t dt_type, DalDmlIntf *dmi,
-                               uint8_t *ctrlr_id);
-
-    upll_rc_t GetControllerDomainId(ConfigKeyVal *ikey,
-                                    controller_domain_t *ctrlr_dom);
-
-    upll_rc_t ValidateAttribute(ConfigKeyVal *kval, 
-                                DalDmlIntf *dmi,
-                                IpcReqRespHeader *req = NULL); 
-
-    /**
-     * @brief Validate whether the boundary exists in Physical
-     *        -boundary data read from physical is stored in class variable
-     * @param[in]       boundary_name  BoundaryId
-     * @param[out]      upll_rc_t      UPLL_RC_ERR_CFG_SEMANTIC on error
-     *                                    UPLL_RC_SUCCESS on success
-     *
-     * @retval UPLL_RC_SUCCESS      Successful
-     * @retval UPLL_RC_ERR_GENERIC  Failed to fetch Boundary Data
-     */
-    upll_rc_t ValidateBoundary(uint8_t *boundary_name,IpcReqRespHeader *req);
-
-    /* Rename */
-
-    bool GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo,
-                              int &nattr, MoMgrTables tbl);
-    upll_rc_t GetRenameInfo(ConfigKeyVal *ikey,
-                            ConfigKeyVal *okey,
-                            ConfigKeyVal *&rename_info,
-                            DalDmlIntf *dmi,
-                            const char *ctrlr_id,
-                            bool &renamed);
-    upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
-    upll_rc_t UpdateVnodeVal(ConfigKeyVal *rename_info, DalDmlIntf *dmi,
-                             upll_keytype_datatype_t data_type, bool &no_rename);
-    upll_rc_t IsReferenced(ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
-                           DalDmlIntf *dmi);
+ private:
+  static unc_key_type_t vlink_child[];
+  static BindInfo vlink_bind_info[];
+  static BindInfo vlink_rename_bind_info[];
+  static BindInfo key_vlink_maintbl_bind_info[];
+  static BindInfo key_vlink_renametbl_update_bind_info[];
+
+  /* @brief      Retrieve oper status of boundary port from physical
+   *
+   * @param[in]  boundary_name pointer to boundary name
+   * @param[in]  ctr_domain    pointer to controller and domain id pair
+   * @param[out] bound_operStatus operstatus of boundary
+   * @param[in]  session_id   transaction session id
+   * @param[in]  config_id    transaction config id
+   *
+   * @retval  UPLL_RC_SUCCESS      Completed successfully.
+   * @retval  UPLL_RC_ERR_GENERIC  Generic failure.
+   *
+   **/
+  upll_rc_t GetBoundaryStatusFromPhysical(uint8_t *boundary_name,
+                                          controller_domain_t *ctr_domain,
+                                          val_oper_status &bound_operStatus,
+                                          uint32_t session_id,
+                                          uint32_t config_id);
+
+
+  /**
+   * @brief  Gets the valid array position of the variable in the value
+   *         structure from the table in the specified configuration
+   *
+   * @param[in]     val      pointer to the value structure
+   * @param[in]     indx     database index for the variable
+   * @param[out]    valid    position of the variable in the valid array -
+   *                          NULL if valid does not exist.
+   * @param[in]     dt_type  specifies the configuration
+   * @param[in]     tbl      specifies the table containing the given value
+   *
+   **/
+  upll_rc_t GetValid(void *val,
+                     uint64_t indx,
+                     uint8_t *&valid,
+                     upll_keytype_datatype_t dt_type,
+                     MoMgrTables tbl);
+  /**
+   * @Brief Validates the syntax of the specified key and value structure
+   *        for KT_VLINK keytype
+   *
+   * @param[in] req                       This structure contains
+   *                                      IpcReqRespHeader(first 8 fields of input request structure).
+   * @param[in] ikey                      ikey contains key and value structure.
+   *
+   * @retval UPLL_RC_SUCCESS              Successful.
+   * @retval UPLL_RC_ERR_CFG_SYNTAX       Syntax error.
+   * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE key_vlink is not available.
+   * @retval UPLL_RC_ERR_GENERIC          Generic failure.
+   * @retval UPLL_RC_ERR_INVALID_OPTION1  option1 is not valid.
+   * @retval UPLL_RC_ERR_INVALID_OPTION2  option2 is not valid.
+   */
+  upll_rc_t ValidateMessage(IpcReqRespHeader *req,
+                            ConfigKeyVal *ikey);
+  /**
+   * @Brief  compares controller id and domain id before
+   *         updating the value to DB.
+   *
+   * @param[in]  ikey  ikey contains key and value structure.
+   * @param[in]  okey  okey contains key and value structure.
+   *
+   * @retval  UPLL_RC_SUCCESS            Successful.
+   * @retval  UPLL_RC_ERR_CFG_SYNTAX     Syntax error.
+   */
+  upll_rc_t CtrlrIdAndDomainIdUpdationCheck(ConfigKeyVal *ikey,
+                                            ConfigKeyVal *okey) {
+    UPLL_LOG_TRACE("Not needed for this KT, returning SUCCESS");
+    return UPLL_RC_SUCCESS;
+  }
+
+  /**
+   * @Brief Validates the syntax for KT_VLINK keytype key structure.
+   *
+   * @param[in] key_vlink KT_VLINK key structure.
+   *
+   * @retval UPLL_RC_SUCCESS        validation succeeded.
+   * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
+   */
+  upll_rc_t ValidateVlinkKey(
+      key_vlink_t *key_vlink,
+      unc_keytype_operation_t operation = UNC_OP_INVALID);
+
+  /**
+   * @Brief Validates the syntax for KT_VLINK keytype value structure.
+   *
+   * @param[in] val_vlink KT_VLINK value structure.
+   *
+   * @retval UPLL_RC_ERR_GENERIC    Generic failure.
+   * @retval UPLL_RC_SUCCESS        validation succeeded.
+   * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
+   */
+  upll_rc_t ValidateVlinkValue(val_vlink_t *val_vlink,
+                               unc_keytype_operation_t operation
+                               =  UNC_OP_INVALID);
+
+  /**
+   * @Brief Checks if the specified key type(KT_VLINK) and
+   *        associated attributes are supported on the given controller,
+   *        based on the valid flag
+   *
+   * @param[in] req               This structure contains
+   *                              IpcReqRespHeader(first 8 fields of input
+   *                              request structure).
+   * @param[in] ikey              ikey contains key and value structure.
+   *
+   * @retval  UPLL_RC_SUCCESS             Validation succeeded.
+   * @retval  UPLL_RC_ERR_GENERIC         Validation failure.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION1 Option1 is not valid.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION2 Option2 is not valid.
+   */
+
+  upll_rc_t ValidateCapability(IpcReqRespHeader *req,
+                               ConfigKeyVal *ikey,
+                               const char *ctrlr_name = NULL);
+
+  /**
+   * @Brief Checks if the specified key type and
+   *        associated attributes are supported on the given controller,
+   *        based on the valid flag.
+   *
+   * @param[in] val_vlink         Value Structure.
+   * @param[in] attr            pointer to controller attribute
+   * @param[in] operation       Operation Name
+   *
+   * @retval UPLL_RC_SUCCESS                    validation succeeded.
+   * @retval UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR Attribute NOT_SUPPORTED.
+   * @retval UPLL_RC_ERR_GENERIC                Generic failure.
+   */
+  upll_rc_t ValVlinkAttributeSupportCheck(val_vlink_t *val_vlink,
+                                          const uint8_t* attrs,
+                                          unc_keytype_operation_t operation);
+
+  /**
+   * @brief  Get the specific vtn_name and vnode_name from ConfigKeyVal
+   *
+   * @param[in]  ikey        ConfigKeyVal pointer
+   * @param[out] vtn_name    vnode vtn name
+   * @param[out] vnode_name  vnode specific name
+   *
+   * @retval UPLL_RC_SUCCESS      Successful
+   * @retval UPLL_RC_ERR_GENERIC  failed to retrieve the values
+   */
+  upll_rc_t GetVnodeName(ConfigKeyVal *ikey,
+                         uint8_t *&vtn_name,
+                         uint8_t *&vnode_name);
+
+  upll_rc_t UpdateConfigStatus(ConfigKeyVal *req,
+                               unc_keytype_operation_t op,
+                               uint32_t driver_result,
+                               ConfigKeyVal *upd_key, DalDmlIntf *dmi,
+                               ConfigKeyVal *ctrlr_key = NULL);
+  /**
+   * @brief  Update config status for commit result and vote result.
+   *
+   * @param[in/out]  ckv_running  ConfigKeyVal instance.
+   * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
+   * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
+   * @param[in]      dmi          Pointer to the DalDmlIntf(DB Interface)
+   **/
+  upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
+                                    uuc::UpdateCtrlrPhase phase,
+                                    ConfigKeyVal *&ckv_running,
+                                    DalDmlIntf *dmi);
+  /**
+   * @brief  Duplicates the input configkeyval including the key and val.
+   * based on the tbl specified.
+   *
+   * @param[in]  okey   Output Configkeyval - allocated within the function
+   * @param[in]  req    Input ConfigKeyVal to be duplicated.
+   * @param[in]  tbl    specifies if the val structure belongs to the main table/ controller table or rename table.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
+                            MoMgrTables tbl = MAINTBL);
+  /**
+   * @brief  Allocates for the specified val in the given configuration in the     * specified table.
+   *
+   * @param[in/out]  ck_val   Reference pointer to configval structure
+   *                          allocated.
+   * @param[in]      dt_type  specifies the configuration candidate/running/
+   *                          state
+   * @param[in]      tbl      specifies if the corresponding table is the
+   *                          main table / controller table or rename table.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
+                     MoMgrTables tbl = MAINTBL);
+  /**
+   * @brief      Method to get a configkeyval of the parent keytype
+   *
+   * @param[in/out]  okey           pointer to parent ConfigKeyVal
+   * @param[in]      ikey           pointer to the child configkeyval from
+   * which the parent configkey val is obtained.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
+  upll_rc_t GetControllerKey(ConfigKeyVal *ikey, ConfigKeyVal *&okey,
+                             unc_keytype_datatype_t dt_type,
+                             char *ctrlr_name);
+  upll_rc_t SwapVnodes(ConfigKeyVal *&temp_ck_vlink);
+  upll_rc_t SwapKeyVal(ConfigKeyVal *ikey, ConfigKeyVal *&okey,
+                       DalDmlIntf *dmi, uint8_t *ctrlr_id, bool &no_rename);
+  upll_rc_t GetRenamedControllerKey(ConfigKeyVal *ikey,
+                                    upll_keytype_datatype_t dt_type,
+                                    DalDmlIntf *dmi,
+                                    controller_domain *ctrlr_dom);
+  upll_rc_t GetRenamedUncKey(ConfigKeyVal *ctrlr_key,
+                             upll_keytype_datatype_t dt_type, DalDmlIntf *dmi,
+                             uint8_t *ctrlr_id);
+
+  upll_rc_t ValidateAttribute(ConfigKeyVal *kval,
+                              DalDmlIntf *dmi,
+                              IpcReqRespHeader *req = NULL);
+
+  /**
+   * @brief Validate whether the boundary exists in Physical
+   *        -boundary data read from physical is stored in class variable
+   * @param[in]       boundary_name  BoundaryId
+   * @param[out]      upll_rc_t      UPLL_RC_ERR_CFG_SEMANTIC on error
+   *                                    UPLL_RC_SUCCESS on success
+   *
+   * @retval UPLL_RC_SUCCESS      Successful
+   * @retval UPLL_RC_ERR_GENERIC  Failed to fetch Boundary Data
+   */
+  upll_rc_t ValidateBoundary(uint8_t *boundary_name, IpcReqRespHeader *req);
+
+  /* Rename */
+
+  bool GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo,
+                            int &nattr, MoMgrTables tbl);
+  upll_rc_t GetRenameInfo(ConfigKeyVal *ikey,
+                          ConfigKeyVal *okey,
+                          ConfigKeyVal *&rename_info,
+                          DalDmlIntf *dmi,
+                          const char *ctrlr_id,
+                          bool &renamed);
+  upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
+  upll_rc_t UpdateVnodeVal(ConfigKeyVal *rename_info, DalDmlIntf *dmi,
+                           upll_keytype_datatype_t data_type, bool &no_rename);
+  upll_rc_t IsReferenced(ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
+                         DalDmlIntf *dmi);
 
-    /**
-     * @brief Check if Vlink interfaces are unique and update accordingly
-     *
-     * @param[in]  req      IpcReqRespHeader
-     * @param[in]  ikey     pointer to ConfigKeyVal
-     * @param[in]  dmi      pointer to DalDmlIntf  
-     * @param[in]  controller_ids      pointer to array of controller domains 
-     *
-     * @retval UPLL_RC_SUCCESS      Successful
-     * @retval UPLL_RC_ERR_GENERIC  Generic error/Failed to update VbrIf
-     */
-    upll_rc_t UpdateVlinkIf(IpcReqRespHeader *req,
-                              ConfigKeyVal *ikey, DalDmlIntf *dmi,
-                              controller_domain_t *ctrlr_dom);
-    /**
-     * @brief Updates the flag bits of the member interfacs
-     *
-     * @param[in]  dt_type  database type
-     * @param[in]  ckv_if   pointer to member interface ConfigKeyVal
-     * @param[in]  dmi      pointer to DalDmlIntf  
-     * @param[in]  mgr       corresponding if momgr
-     * @param[out] vnif_type  interface type encoded in 6 bits of vlink flag
-     *
-     * @retval UPLL_RC_SUCCESS      Successful
-     * @retval UPLL_RC_ERR_GENERIC  Generic error/Failed to update member if
-     */
-
-     upll_rc_t UpdateVlinkMemIfFlag(upll_keytype_datatype_t dt_type,
-                                   ConfigKeyVal *ckv_if, 
-                                   DalDmlIntf *dmi,
-                                   vnode_if_type &vnif_type,
-                                   MoMgrImpl *mgr,
-                                   unc_keytype_operation_t op);
-    /**
-     * @brief Update the VbrIf ConfigKeyVal with vExternal details fetched from
-     *        physical, if the VbrIf is part of vExternal
-     *
-     * @param[in]  dt_type  database type
-     * @param[in]  ikey     pointer to ConfigKeyVal
-     * @param[in]  ck_vbrif array of pointers to component vbrifs
-     * @param[in]  dmi      pointer to DalDmlIntf  
-     * @param[in]  op       UPLL operation 
-     *
-     * @retval UPLL_RC_SUCCESS      Successful
-     * @retval UPLL_RC_ERR_GENERIC  Generic error/Failed to update VbrIf
-     */
-    upll_rc_t UpdateVnodeIf(upll_keytype_datatype_t dt_type,
-             ConfigKeyVal *ikey, ConfigKeyVal **cv_vbrif, DalDmlIntf *dmi,
-             unc_keytype_operation_t op);
-
-    /**
-     * @brief Check if the Vlink interface is a VbrIf. If it is VbrIf,
-     *        Update portmap if port on switch in not preconfigured
-     with settings different from physical data
-     *
-     * @param[in]  ikey           pointer to vlink ConfigKeyVal
-     * @param[in]  ikey           pointer to vnode interface ConfigKeyVal
-     * @param[in]  dmi            pointer to DalDmlIntf  
-     * @param[in]  dt_type        Data type (candidate/running)    
-     * @param[in]  op             operation  
-     *
-     * @retval UPLL_RC_SUCCESS               Successful
-     * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE  vLink Interface is not a VbrIf Interface
-     * @retval UPLL_RC_ERR_GENERIC           Generic error/Failed to update VbrIfi
-     */
-    upll_rc_t UpdateVnodeIfPortmap(ConfigKeyVal *ikey,
-                                   ConfigKeyVal *ck_drv_vbr_if,
-                                   DalDmlIntf *dmi,
-                                   upll_keytype_datatype_t dt_type,
-                                   unc_keytype_operation_t op);
-
-    bool GetBoundaryData(ConfigKeyVal *ikey,
-                         IpcRequest *ipc_req,
-                         IpcResponse *ipc_resp);
-
-    /**
-     * @brief If portmap is valid, compare the switch_id, port_name and vlan_id 
-     *        of physical boundary data with the existing VbrIf portmap details
-     *        and throw error if mismatch
-     *
-     * @param[in]  req   pointer to IpcReqRespHeader
-     * @param[in]  ikey  pointer to ConfigKeyVal
-     * @param[in]  dmi   pointer to DalDmlIntf  
-     *
-     * @retval true      Successful
-     * @retval false     Failure/MisMatch  
-     */
-    bool CompareVbrIfWithPhysicalData(ConfigKeyVal *ck_drv_vbr_if,
-                                      ConfigKeyVal *ck_boundary_data,
-                                      ConfigKeyVal *ikey);
-
-    /**
-     * @brief Create a Driver port map structure which is filled with data from
-     *                                                     Boundary 
-     *
-     * @param[in]  iokey              pointer to vbrif ConfigKeyVal
-     * @param[in]  ikey               pointer to vlink ConfigKeyVal
-     *
-     */
-    upll_rc_t ConverttoDriverPortMap(ConfigKeyVal *iokey, ConfigKeyVal *ikey);
-
-    upll_rc_t CreateVnodeConfigKey(ConfigKeyVal *ikey,
-                                   ConfigKeyVal *&okey);
-    /* @brief         This method invoke when the VTN merge hapeening between
-     *                Running and DT import. This will checks the vnode name 
-     *                unique or not. 
-     *              
-     * @param[in]     keytype       UNC KEY TYPE
-     * @param[in/out] ctrlr_id      Controller ID                    
-     * @param[in]     conflict_ckv  key and value structure 
-     * @param[in]     dal    Pointer to the DalDmlIntf(DB Interface)
-     * 
-     * @retval  UPLL_RC_SUCCESS                    Completed successfully.
-     * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
-     * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
-     * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
-     * @retval  UPLL_RC_ERR_MERGE_CONFLICT         Semantic check error.
-     * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist 
-     *
-     **/
-    upll_rc_t MergeValidate(unc_key_type_t keytype,
-                            const char *ctrlr_id,
-                            ConfigKeyVal *ikey,
-                            DalDmlIntf *dmi);
+  /**
+   * @brief Check if Vlink interfaces are unique and update accordingly
+   *
+   * @param[in]  req      IpcReqRespHeader
+   * @param[in]  ikey     pointer to ConfigKeyVal
+   * @param[in]  dmi      pointer to DalDmlIntf
+   * @param[in]  controller_ids      pointer to array of controller domains
+   *
+   * @retval UPLL_RC_SUCCESS      Successful
+   * @retval UPLL_RC_ERR_GENERIC  Generic error/Failed to update VbrIf
+   */
+  upll_rc_t UpdateVlinkIf(IpcReqRespHeader *req,
+                          ConfigKeyVal *ikey, DalDmlIntf *dmi,
+                          controller_domain_t *ctrlr_dom,
+                          bool restore_flag);
+  /**
+   * @brief Updates the flag bits of the member interfacs
+   *
+   * @param[in]  dt_type  database type
+   * @param[in]  ckv_if   pointer to member interface ConfigKeyVal
+   * @param[in]  dmi      pointer to DalDmlIntf
+   * @param[in]  mgr       corresponding if momgr
+   * @param[out] vnif_type  interface type encoded in 6 bits of vlink flag
+   *
+   * @retval UPLL_RC_SUCCESS      Successful
+   * @retval UPLL_RC_ERR_GENERIC  Generic error/Failed to update member if
+   */
+
+  upll_rc_t UpdateVlinkMemIfFlag(upll_keytype_datatype_t dt_type,
+                                 ConfigKeyVal *ckv_if,
+                                 DalDmlIntf *dmi,
+                                 vnode_if_type &vnif_type,
+                                 MoMgrImpl *mgr,
+                                 unc_keytype_operation_t op);
+  /**
+   * @brief Update the VbrIf ConfigKeyVal with vExternal details fetched from
+   *        physical, if the VbrIf is part of vExternal
+   *
+   * @param[in]  dt_type  database type
+   * @param[in]  ikey     pointer to ConfigKeyVal
+   * @param[in]  ck_vbrif array of pointers to component vbrifs
+   * @param[in]  dmi      pointer to DalDmlIntf
+   * @param[in]  op       UPLL operation
+   *
+   * @retval UPLL_RC_SUCCESS      Successful
+   * @retval UPLL_RC_ERR_GENERIC  Generic error/Failed to update VbrIf
+   */
+  upll_rc_t UpdateVnodeIf(upll_keytype_datatype_t dt_type,
+                          ConfigKeyVal *ikey,
+                          ConfigKeyVal **cv_vbrif,
+                          DalDmlIntf *dmi,
+                          unc_keytype_operation_t op);
 
-    /* @brief     To convert the value structure read from DB to 
-     *            VTNService during READ operations
-     * @param[in/out] ikey      Pointer to the ConfigKeyVal Structure           
-     * 
-     * @retval  UPLL_RC_SUCCESS                    Completed successfully.
-     * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
-     *
-     **/
-    upll_rc_t AdaptValToVtnService(ConfigKeyVal *ikey);
-    /**
-     * @brief Used to create a vnode entry in CANDIDATE DB and is invoked
-     *         through createMo
-     *
-     * @param[in]  req    IpcRequestresponseHeader pointer
-     * @param[in]  ikey   ConfigKeyVal pointer
-     * @param[in]  dmi    DalDmlIntf pointer
-     *
-     * @retval UPLL_RC_SUCCESS                    Successful
-     * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE       parent vtn is not present in DB
-     * @retval UPLL_RC_ERR_GENERIC                generic error
-     * @retval UPLL_RC_ERR_INSTANCE_EXISTS        entry already exists in DB
-     * @retval UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR Not Supported by controller
-     * @retval UPLL_RC_ERR_INVALID_OPTION1        Invalid option
-     */
-    upll_rc_t CreateCandidateMo(IpcReqRespHeader *req,
-                                ConfigKeyVal *ikey,
-                                DalDmlIntf *dmi);
-    upll_rc_t CreateAuditMoImpl(ConfigKeyVal *ikey,
-                                DalDmlIntf *dmi,
-                                const char *ctrlr_id);
-    /**
-     * @brief  Creates a vnode entry in DB after performing pre-requisite checks
-     *
-     * @param[in]  ikey            ConfigKeyVal pointer
-     * @param[in]  req             IpcReqRespHeader pointer  
-     * @param[in]  dmi             DalDmlIntf pointer
-     * @param[in]  controller_ids  pointer to 
-     *                             array of controller id pointers
-     *
-     * @retval UPLL_RC_SUCCESS                Successful
-     * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE    is not present in DB
-     * @retval UPLL_RC_ERR_GENERIC            generic error
-     * @retval UPLL_RC_ERR_INSTANCE_EXISTS    entry already exists in DB
-     */
+  /**
+   * @brief Check if the Vlink interface is a VbrIf. If it is VbrIf,
+   *        Update portmap if port on switch in not preconfigured
+   with settings different from physical data
+   *
+   * @param[in]  ikey           pointer to vlink ConfigKeyVal
+   * @param[in]  ikey           pointer to vnode interface ConfigKeyVal
+   * @param[in]  dmi            pointer to DalDmlIntf
+   * @param[in]  dt_type        Data type (candidate/running)
+   * @param[in]  op             operation
+   *
+   * @retval UPLL_RC_SUCCESS               Successful
+   * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE  vLink Interface is not a VbrIf Interface
+   * @retval UPLL_RC_ERR_GENERIC           Generic error/Failed to update VbrIfi
+   */
+  upll_rc_t UpdateVnodeIfPortmap(ConfigKeyVal *ikey,
+                                 ConfigKeyVal *ck_drv_vbr_if,
+                                 DalDmlIntf *dmi,
+                                 upll_keytype_datatype_t dt_type,
+                                 unc_keytype_operation_t op);
+
+  bool GetBoundaryData(ConfigKeyVal *ikey,
+                       IpcRequest *ipc_req,
+                       IpcResponse *ipc_resp);
+
+  /**
+   * @brief If portmap is valid, compare the switch_id, port_name and vlan_id
+   *        of physical boundary data with the existing VbrIf portmap details
+   *        and throw error if mismatch
+   *
+   * @param[in]  req   pointer to IpcReqRespHeader
+   * @param[in]  ikey  pointer to ConfigKeyVal
+   * @param[in]  dmi   pointer to DalDmlIntf
+   *
+   * @retval true      Successful
+   * @retval false     Failure/MisMatch
+   */
+  bool CompareVbrIfWithPhysicalData(ConfigKeyVal *ck_drv_vbr_if,
+                                    ConfigKeyVal *ck_boundary_data,
+                                    ConfigKeyVal *ikey);
+
+  /**
+   * @brief Create a Driver port map structure which is filled with data from
+   *                                                     Boundary
+   *
+   * @param[in]  iokey              pointer to vbrif ConfigKeyVal
+   * @param[in]  ikey               pointer to vlink ConfigKeyVal
+   *
+   */
+  upll_rc_t ConverttoDriverPortMap(ConfigKeyVal *iokey, ConfigKeyVal *ikey,
+                                   DalDmlIntf *dmi);
+
+  upll_rc_t CreateVnodeConfigKey(ConfigKeyVal *ikey,
+                                 ConfigKeyVal *&okey);
+  /* @brief         This method invoke when the VTN merge hapeening between
+   *                Running and DT import. This will checks the vnode name
+   *                unique or not.
+   *
+   * @param[in]     keytype       UNC KEY TYPE
+   * @param[in/out] ctrlr_id      Controller ID
+   * @param[in]     conflict_ckv  key and value structure
+   * @param[in]     dal    Pointer to the DalDmlIntf(DB Interface)
+   *
+   * @retval  UPLL_RC_SUCCESS                    Completed successfully.
+   * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
+   * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
+   * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
+   * @retval  UPLL_RC_ERR_MERGE_CONFLICT         Semantic check error.
+   * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist
+   *
+   **/
+  upll_rc_t MergeValidate(unc_key_type_t keytype,
+                          const char *ctrlr_id,
+                          ConfigKeyVal *ikey,
+                          DalDmlIntf *dmi);
+
+  /* @brief     To convert the value structure read from DB to
+   *            VTNService during READ operations
+   * @param[in/out] ikey      Pointer to the ConfigKeyVal Structure
+   *
+   * @retval  UPLL_RC_SUCCESS                    Completed successfully.
+   * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
+   *
+   **/
+  upll_rc_t AdaptValToVtnService(ConfigKeyVal *ikey);
+  /**
+   * @brief Used to create a vnode entry in CANDIDATE DB and is invoked
+   *         through createMo
+   *
+   * @param[in]  req    IpcRequestresponseHeader pointer
+   * @param[in]  ikey   ConfigKeyVal pointer
+   * @param[in]  dmi    DalDmlIntf pointer
+   *
+   * @retval UPLL_RC_SUCCESS                    Successful
+   * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE       parent vtn is not present in DB
+   * @retval UPLL_RC_ERR_GENERIC                generic error
+   * @retval UPLL_RC_ERR_INSTANCE_EXISTS        entry already exists in DB
+   * @retval UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR Not Supported by controller
+   * @retval UPLL_RC_ERR_INVALID_OPTION1        Invalid option
+   */
+  upll_rc_t CreateCandidateMo(IpcReqRespHeader *req,
+                              ConfigKeyVal *ikey,
+                              DalDmlIntf *dmi,
+                              bool restore_flag = false);
+  upll_rc_t CreateAuditMoImpl(ConfigKeyVal *ikey,
+                              DalDmlIntf *dmi,
+                              const char *ctrlr_id);
+  /**
+   * @brief  Creates a vnode entry in DB after performing pre-requisite checks
+   *
+   * @param[in]  ikey            ConfigKeyVal pointer
+   * @param[in]  req             IpcReqRespHeader pointer
+   * @param[in]  dmi             DalDmlIntf pointer
+   * @param[in]  controller_ids  pointer to
+   *                             array of controller id pointers
+   *
+   * @retval UPLL_RC_SUCCESS                Successful
+   * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE    is not present in DB
+   * @retval UPLL_RC_ERR_GENERIC            generic error
+   * @retval UPLL_RC_ERR_INSTANCE_EXISTS    entry already exists in DB
+   */
 #if 0
-    upll_rc_t RestoreVnode(ConfigKeyVal *ikey,
-                           IpcReqRespHeader *req,
-                           DalDmlIntf *dmi,
-                           controller_domain_t ctrlr_domain[]);
+  upll_rc_t RestoreVnode(ConfigKeyVal *ikey,
+                         IpcReqRespHeader *req,
+                         DalDmlIntf *dmi,
+                         controller_domain_t ctrlr_domain[]);
 #endif
-    /**
-     * @brief Set the Consolidated Configstatus of boundary vlink after 
-     *        retreiving the component if status from individual controllers
-     * @param[in]      vlink     ConfigKeyVal pointer
-     * @param[in]      dmi       Pointer to DalDmlIntf Class.
-     *
-     */
-    upll_rc_t SetConsolidatedStatus(ConfigKeyVal *vlink,
-                                    unc_keytype_operation_t op,
-                                    unc_keytype_configstatus_t cs_status,
-                                    DalDmlIntf *dmi);
-
-    /**
-     * @brief  Validate whether its valid Boundary Combination
-     *
-     * @param[in]  node1_ktype                Ketype of first Node
-     * @param[in]  node2_ktype                Ketype of Second Node
-     *
-     * @retval UPLL_RC_SUCCESS                Valid combination
-     * @retval UPLL_RC_ERR_CFG_SEMANTIC       Invalid combination
-     */
-    upll_rc_t ValidateIfType(ConfigKeyVal **vnodeIf);
-
-  public:
-    VlinkMoMgr();
-    virtual ~VlinkMoMgr() {
-      for (int i = 0; i < ntable; i++)
-        if (table[i]) {
-          delete table[i];
-        }
-      delete[] table;
-      if (ck_boundary)
-        delete ck_boundary;
-      ck_boundary = NULL;
-    }
-
-    /**
-     * @brief  Gets the associated config information for the remote interface 
-     *         that constitute the vlink
-     *
-     * @param[in]     ck_vif       ConfigKeyVal pointer to the interface
-     * @param[out]   ck_remif      ConfigKeyVal pointer to the remote interface
-     * @param[in]     dmi          Database connection params
-     *
-     * @retval UPLL_RC_SUCCESS     validation succeeded.
-     * @retval UPLL_RC_ERR_GENERIC Illegal operation/ invalid paramters
-     **/
-    upll_rc_t GetRemoteIf(ConfigKeyVal *ck_vif, 
-                          ConfigKeyVal *&ck_remif,
-                          DalDmlIntf   *dmi);
-    /**
-     * @brief  Gets the associated config and state information for interfaces
-     *         that constitute the vlink
-     *
-     * @param[in]     vlink    ConfigKeyVal pointer to the vlink
-     * @param[out]    vnif     array of pointers to the vlink member interfaces
-     *                         if both interfaces wanted - 
-     * @param[in]     dmi      Database connection params
-     * @param[in]     pos      0 if both interfaces wanted else 
-     *                         kVlinkVnode1/kVlinkVnode2 for that vnode if.
-     *
-     * @retval UPLL_RC_SUCCESS     validation succeeded.
-     * @retval UPLL_RC_ERR_GENERIC Illegal operation/ invalid paramters
-     **/
-    upll_rc_t GetVnodeIfFromVlink(ConfigKeyVal *vlink, 
-                                  ConfigKeyVal **vnif,
-                                  DalDmlIntf   *dmi,
-                                  uint8_t pos = 0) ;
-    /**
-     * @brief      Method to check if individual portions of a key are valid
-     *
-     * @param[in/out]  ikey                 pointer to ConfigKeyVal referring to a UNC resource
-     * @param[in]      index                db index associated with the variable
-     *
-     * @retval         true                 input key is valid
-     * @retval         false                input key is invalid.
-     **/
-    bool IsValidKey(void *tkey,
-                    uint64_t index);
-
-    /**
-     * @brief Exposed to Physical to Verify whether particular Key
-     *                            is in Use in Logical
-     *
-
-     * @param[in/out]   operation      Operation to check if a boundary is referenced 
-     *                                            in UPLL configuration
-     * @param[in]       dt_type        Data Type
-     * @param[in]       key_type       KeyType of the key to be verified
-     * @param[in]       ckv            ConfigKeyVal of the KeyType
-     * @param[out]      in_use         true if key is in use, else false
-     * @param[out]      upll_rc_t      UPLL_RC_ERR_CFG_SEMANTIC on error
-     *                                    UPLL_RC_SUCCESS on success
-     *
-     */
-    upll_rc_t IsKeyInUse(upll_keytype_datatype_t dt_type,
-                         const ConfigKeyVal *ckv, bool *in_use,
-                         DalDmlIntf *dmi);
+  /**
+   * @brief Set the Consolidated Configstatus of boundary vlink after
+   *        retreiving the component if status from individual controllers
+   * @param[in]      vlink     ConfigKeyVal pointer
+   * @param[in]      dmi       Pointer to DalDmlIntf Class.
+   *
+   */
+  upll_rc_t SetConsolidatedStatus(ConfigKeyVal *vlink,
+                                  unc_keytype_operation_t op,
+                                  unc_keytype_configstatus_t cs_status,
+                                  DalDmlIntf *dmi);
+
+  /**
+   * @brief  Validate whether its valid Boundary Combination
+   *
+   * @param[in]  node1_ktype                Ketype of first Node
+   * @param[in]  node2_ktype                Ketype of Second Node
+   *
+   * @retval UPLL_RC_SUCCESS                Valid combination
+   * @retval UPLL_RC_ERR_CFG_SEMANTIC       Invalid combination
+   */
+  upll_rc_t ValidateIfType(ConfigKeyVal **vnodeIf);
+
+ public:
+  VlinkMoMgr();
+  virtual ~VlinkMoMgr() {
+    for (int i = 0; i < ntable; i++)
+      if (table[i]) {
+        delete table[i];
+      }
+    delete[] table;
+    if (ck_boundary)
+      delete ck_boundary;
+    ck_boundary = NULL;
+  }
+
+  /**
+   * @brief  Gets the associated config information for the remote interface
+   *         that constitute the vlink
+   *
+   * @param[in]     ck_vif       ConfigKeyVal pointer to the interface
+   * @param[out]   ck_remif      ConfigKeyVal pointer to the remote interface
+   * @param[in]     dmi          Database connection params
+   *
+   * @retval UPLL_RC_SUCCESS     validation succeeded.
+   * @retval UPLL_RC_ERR_GENERIC Illegal operation/ invalid paramters
+   **/
+  upll_rc_t GetRemoteIf(ConfigKeyVal *ck_vif,
+                        ConfigKeyVal *&ck_remif,
+                        DalDmlIntf   *dmi);
+  /**
+   * @brief  Gets the associated config and state information for interfaces
+   *         that constitute the vlink
+   *
+   * @param[in]     vlink    ConfigKeyVal pointer to the vlink
+   * @param[out]    vnif     array of pointers to the vlink member interfaces
+   *                         if both interfaces wanted -
+   * @param[in]     dmi      Database connection params
+   * @param[in]     pos      0 if both interfaces wanted else
+   *                         kVlinkVnode1/kVlinkVnode2 for that vnode if.
+   *
+   * @retval UPLL_RC_SUCCESS     validation succeeded.
+   * @retval UPLL_RC_ERR_GENERIC Illegal operation/ invalid paramters
+   **/
+  upll_rc_t GetVnodeIfFromVlink(ConfigKeyVal *vlink,
+                                ConfigKeyVal **vnif,
+                                DalDmlIntf   *dmi,
+                                uint8_t pos = 0);
+  /**
+   * @brief      Method to check if individual portions of a key are valid
+   *
+   * @param[in/out]  ikey                 pointer to ConfigKeyVal referring to a UNC resource
+   * @param[in]      index                db index associated with the variable
+   *
+   * @retval         true                 input key is valid
+   * @retval         false                input key is invalid.
+   **/
+  bool IsValidKey(void *tkey,
+                  uint64_t index);
+
+  /**
+   * @brief Exposed to Physical to Verify whether particular Key
+   *                            is in Use in Logical
+   *
+
+   * @param[in/out]   operation      Operation to check if a boundary is referenced
+   *                                            in UPLL configuration
+   * @param[in]       dt_type        Data Type
+   * @param[in]       key_type       KeyType of the key to be verified
+   * @param[in]       ckv            ConfigKeyVal of the KeyType
+   * @param[out]      in_use         true if key is in use, else false
+   * @param[out]      upll_rc_t      UPLL_RC_ERR_CFG_SEMANTIC on error
+   *                                    UPLL_RC_SUCCESS on success
+   *
+   */
+  upll_rc_t IsKeyInUse(upll_keytype_datatype_t dt_type,
+                       const ConfigKeyVal *ckv, bool *in_use,
+                       DalDmlIntf *dmi);
+
+  /**
+   * @brief  Filters the attributes which need not be sent to controller
+   *
+   * @param[in/out]  val1   first record value instance.
+   * @param[in]      val2   second record value instance.
+   * @param[in]      audit  Not used for VTN
+   * @param[in]      op     Operation to be performed
+   *
+   **/
+  bool FilterAttributes(void *&val1,
+                        void *val2,
+                        bool audit_status,
+                        unc_keytype_operation_t op);
+  /**
+   * @brief  Compares the valid value between two database records.
+   *        if both the values are same, update the valid flag for corresponding
+   *        attribute as invalid in the first record.
+   *
+   * @param[in/out]  val1   first record value instance.
+   * @param[in]      val2   second record value instance.
+   * @param[in]      audit  if true, CompareValidValue called from audit process.
+   *
+   **/
+  bool CompareValidValue(void *&val1,
+                         void *val2,
+                         bool audit);
+
+  /**
+   * @brief      Method to get a configkeyval of a specified keytype from an input configkeyval
+   *
+   * @param[in/out]  okey                 pointer to output ConfigKeyVal
+   * @param[in]      parent_key           pointer to the configkeyval from which the output configkey val is initialized.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   */
+  upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *parent_key);
+  upll_rc_t ValidateRenameVlinkValue(val_rename_vlink_t *val);
+  upll_rc_t CheckVnodeInfo(ConfigKeyVal *ikey,
+                           upll_keytype_datatype_t dt_type,
+                           DalDmlIntf *dmi);
 
-    /**
-     * @brief  Filters the attributes which need not be sent to controller
-     *
-     * @param[in/out]  val1   first record value instance.
-     * @param[in]      val2   second record value instance.
-     * @param[in]      audit  Not used for VTN
-     * @param[in]      op     Operation to be performed
-     *
-     **/
-    bool FilterAttributes(void *&val1,
-                          void *val2,
-                          bool audit_status,
-                          unc_keytype_operation_t op);
-    /**
-     * @brief  Compares the valid value between two database records.
-     *              if both the values are same, update the valid flag for corresponding
-     *              attribute as invalid in the first record. 
-     *
-     * @param[in/out]  val1   first record value instance.
-     * @param[in]      val2   second record value instance.
-     * @param[in]      audit  if true, CompareValidValue called from audit process.
-     *
-     **/
-    bool CompareValidValue(void *&val1,
-                           void *val2,
-                           bool audit);
-
-    /**
-     * @brief      Method to get a configkeyval of a specified keytype from an input configkeyval
-     *
-     * @param[in/out]  okey                 pointer to output ConfigKeyVal 
-     * @param[in]      parent_key           pointer to the configkeyval from which the output configkey val is initialized.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     */
-    upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *parent_key);
-    upll_rc_t ValidateRenameVlinkValue(val_rename_vlink_t *val);
-    upll_rc_t CheckVnodeInfo(ConfigKeyVal *ikey,
-                             upll_keytype_datatype_t dt_type,
-                             DalDmlIntf *dmi);
-
-    upll_rc_t SetOperStatus(ConfigKeyVal *ikey,
-                            DalDmlIntf *dmi,
-                            state_notification notification,
-                            bool skip = false);
-
-    upll_rc_t GetNodeType(void *key, bool vnode,
-                          unc_key_type_t &keytype,
-                          ConfigKeyVal *&ck_val, DalDmlIntf *dmi);
-    /**
-     * @brief Returns success if member of Boundary vlink
-     *
-     * @param[in]       ck_vbrif         ConfigKeyVal of the vbrif
-     * @param[in]       dt_type        Configuration type 
-     * @param[in/out]   ck_vlink       ConfigKeyVal of the vlink key formed
-     * @param[in]       dmi            DB Connection
-     * @param[out]      upll_rc_t      UPLL_RC_SUCCESS if member
-     *                                 UPLL_RC_ERR_NO_SUCH_INSTANCE if not 
-     *                                 UPLL_RC_SUCCESS on success
-     *
-     */
-    upll_rc_t CheckIfMemberOfVlink(ConfigKeyVal *ck_vbrif, 
+  upll_rc_t SetOperStatus(ConfigKeyVal *ikey,
+                          DalDmlIntf *dmi,
+                          state_notification notification,
+                          bool skip = false);
+
+  upll_rc_t GetNodeType(void *key, bool vnode,
+                        unc_key_type_t &keytype,
+                        ConfigKeyVal *&ck_val, DalDmlIntf *dmi);
+  /**
+   * @brief Returns success if member of Boundary vlink
+   *
+   * @param[in]       ck_vbrif         ConfigKeyVal of the vbrif
+   * @param[in]       dt_type        Configuration type
+   * @param[in/out]   ck_vlink       ConfigKeyVal of the vlink key formed
+   * @param[in]       dmi            DB Connection
+   * @param[out]      upll_rc_t      UPLL_RC_SUCCESS if member
+   *                                 UPLL_RC_ERR_NO_SUCH_INSTANCE if not
+   *                                 UPLL_RC_SUCCESS on success
+   *
+   */
+  upll_rc_t CheckIfMemberOfVlink(ConfigKeyVal *ck_vbrif,
                                  upll_keytype_datatype_t dt_type,
                                  ConfigKeyVal *&ck_vlink,
                                  DalDmlIntf *dmi,
                                  vn_if_type &if_type);
-    /**
-     * @brief Creates a vlink key from a vbrif key that is a boundary.  
-     *
-     * @param[in]       keyVal         ConfigKeyVal of the vbrif
-     * @param[in]       dt_type        Configuration type 
-     * @param[in/out]   ck_vlink       ConfigKeyVal of the vlink key formed
-     * @param[in]       dmi            DB Connection
-     * @param[out]      upll_rc_t      UPLL_RC_ERR_CFG_SEMANTIC on error
-     *                                    UPLL_RC_SUCCESS on success
-     *
-     */
-    upll_rc_t GetVlinkKeyVal(ConfigKeyVal *keyVal,
+  /**
+   * @brief Creates a vlink key from a vbrif key that is a boundary.
+   *
+   * @param[in]       keyVal         ConfigKeyVal of the vbrif
+   * @param[in]       dt_type        Configuration type
+   * @param[in/out]   ck_vlink       ConfigKeyVal of the vlink key formed
+   * @param[in]       dmi            DB Connection
+   * @param[out]      upll_rc_t      UPLL_RC_ERR_CFG_SEMANTIC on error
+   *                                    UPLL_RC_SUCCESS on success
+   *
+   */
+  upll_rc_t GetVlinkKeyVal(ConfigKeyVal *keyVal,
                            upll_keytype_datatype_t dt_type,
                            ConfigKeyVal *&ck_vlink,
                            DalDmlIntf *dmi);
-    /**
-     * @brief Determines if a given vlink is a boundary 
-     *
-     * @param[in/out]   ck_vlink    ConfigKeyVal of the vlink key with 
-     *                              populated user data
-     * @retval           bool       true if it is aboundary         
-     *                   false      if it is not
-     */
-    inline upll_rc_t BoundaryVlink(ConfigKeyVal        *ck_main,
-                              controller_domain_t *ctrlr_dom,
-                              bool            &bound_vlink) {
-       unc_key_type_t ktype1 = GetVlinkVnodeIfKeyType(ck_main, 0);
-       unc_key_type_t ktype2 = GetVlinkVnodeIfKeyType(ck_main, 1);
-       if ((ktype1 == UNC_KT_VUNK_IF) || (ktype2 == UNC_KT_VUNK_IF)) {
-         bound_vlink = true;
-         return UPLL_RC_SUCCESS;
-       }
-       upll_rc_t result_code = GetControllerDomainId(ck_main, ctrlr_dom);
-       if (result_code != UPLL_RC_SUCCESS) {
-         UPLL_LOG_DEBUG("Returning %d", result_code);
-         return result_code;
-       }
-       if((memcmp(ctrlr_dom[0].ctrlr, ctrlr_dom[1].ctrlr,kMaxLenCtrlrId)) || 
-          (memcmp(ctrlr_dom[0].domain, ctrlr_dom[1].domain,kMaxLenDomainId))) 
-          bound_vlink = true;
-       else
-          bound_vlink = false;
-       return UPLL_RC_SUCCESS;
+  /**
+   * @brief Determines if a given vlink is a boundary
+   *
+   * @param[in/out]   ck_vlink    ConfigKeyVal of the vlink key with
+   *                              populated user data
+   * @retval           bool       true if it is aboundary
+   *                   false      if it is not
+   */
+  inline upll_rc_t BoundaryVlink(ConfigKeyVal        *ck_main,
+                                 controller_domain_t *ctrlr_dom,
+                                 bool            &bound_vlink) {
+    unc_key_type_t ktype1 = GetVlinkVnodeIfKeyType(ck_main, 0);
+    unc_key_type_t ktype2 = GetVlinkVnodeIfKeyType(ck_main, 1);
+    if ((ktype1 == UNC_KT_VUNK_IF) || (ktype2 == UNC_KT_VUNK_IF)) {
+      bound_vlink = true;
+      return UPLL_RC_SUCCESS;
     }
-    upll_rc_t DeleteMo(IpcReqRespHeader *req,
-                               ConfigKeyVal *ikey,
-                               DalDmlIntf *dmi);
-    upll_rc_t UpdateMo(IpcReqRespHeader *req,
-                              ConfigKeyVal *ikey,
-                              DalDmlIntf *dmi);
-    upll_rc_t TxUpdateDtState(unc_key_type_t ktype,
-                              uint32_t session_id,
-                              uint32_t config_id,
-                              DalDmlIntf *dmi);
-    upll_rc_t BoundaryStatusHandler(uint8_t boundary_name[32],
-    bool oper_status, DalDmlIntf *dmi);
-
-    /**
-     * @brief  Gets the keytype of the vlink member interface specified by pos
-     *
-     * @param[in]     ck_vlink    ConfigKeyVal pointer to the vlink
-     * @param[in]     pos         0/1 corresponding to the first/second member 
-     *                            interface
-     *
-     * @retval unc_key_type_t     keytype of the specified member interface
-     *                            KT_ROOT if unsupported iftype.
-     **/
-    unc_key_type_t GetVlinkVnodeIfKeyType(ConfigKeyVal *ck_vlink,
-                                          int pos ) {
-      uint8_t vnif_type;
-      uint8_t vlink_flag = 0;
-      if (!ck_vlink || ck_vlink->get_key_type() != UNC_KT_VLINK) {
-        UPLL_LOG_DEBUG("Invalid param");
-        return UNC_KT_ROOT;
-      }
-      GET_USER_DATA_FLAGS(ck_vlink,vlink_flag);
-      if (pos == 0)
-        vnif_type = GET_VLINK_NODE1_TYPE(vlink_flag);
-      else 
-        vnif_type = GET_VLINK_NODE2_TYPE(vlink_flag);
-      UPLL_LOG_DEBUG("flag %d vnif_type %d pos %d",vlink_flag,vnif_type,pos);
-      unc_key_type_t if_ktype[] = {UNC_KT_ROOT,UNC_KT_VBR_IF, UNC_KT_VRT_IF,
-                             UNC_KT_VUNK_IF, UNC_KT_VTEP_IF,UNC_KT_VTUNNEL_IF};
-      if (vnif_type >= sizeof(if_ktype)/sizeof(if_ktype[0]))
-        return UNC_KT_ROOT;
-      return if_ktype[vnif_type];
+    upll_rc_t result_code = GetControllerDomainId(ck_main, ctrlr_dom);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("Returning %d", result_code);
+      return result_code;
     }
-    upll_rc_t RestoreVlinkOperStatus(ConfigKeyVal *ck_vnif,
-                                     DalDmlIntf *dmi,
-                                     state_notification notification,
-                                     bool skip);
-    upll_rc_t UpdateVlinkOperStatus(uint8_t *ctrlr_id,
-                                    DalDmlIntf *dmi,
-                                    state_notification notification,
-                                    bool skip);
-    upll_rc_t GetConnected(key_vnode_type_t *src_node,
-                         set<key_vnode_type_t,key_vnode_type_compare> *Vnode_set_obj,
-                         set<key_vlink_t,vlink_compare>*Vlink_set_obj,
-                         set<key_vnode_if_t, key_vnode_if_compare>* boundary_vnode_if,
+    if ((memcmp(ctrlr_dom[0].ctrlr, ctrlr_dom[1].ctrlr, kMaxLenCtrlrId)) ||
+       (memcmp(ctrlr_dom[0].domain, ctrlr_dom[1].domain, kMaxLenDomainId)))
+      bound_vlink = true;
+    else
+      bound_vlink = false;
+    return UPLL_RC_SUCCESS;
+  }
+  upll_rc_t DeleteMo(IpcReqRespHeader *req,
+                     ConfigKeyVal *ikey,
+                     DalDmlIntf *dmi);
+  upll_rc_t UpdateMo(IpcReqRespHeader *req,
+                     ConfigKeyVal *ikey,
+                     DalDmlIntf *dmi);
+  upll_rc_t TxUpdateDtState(unc_key_type_t ktype,
+                            uint32_t session_id,
+                            uint32_t config_id,
+                            DalDmlIntf *dmi);
+  upll_rc_t BoundaryStatusHandler(uint8_t boundary_name[32],
+                                  bool oper_status, DalDmlIntf *dmi);
+
+  /**
+   * @brief  Gets the keytype of the vlink member interface specified by pos
+   *
+   * @param[in]     ck_vlink    ConfigKeyVal pointer to the vlink
+   * @param[in]     pos         0/1 corresponding to the first/second member
+   *                            interface
+   *
+   * @retval unc_key_type_t     keytype of the specified member interface
+   *                            KT_ROOT if unsupported iftype.
+   **/
+  unc_key_type_t GetVlinkVnodeIfKeyType(ConfigKeyVal *ck_vlink,
+                                        int pos ) {
+    uint8_t vnif_type;
+    uint8_t vlink_flag = 0;
+    if (!ck_vlink || ck_vlink->get_key_type() != UNC_KT_VLINK) {
+      UPLL_LOG_DEBUG("Invalid param");
+      return UNC_KT_ROOT;
+    }
+    GET_USER_DATA_FLAGS(ck_vlink, vlink_flag);
+    if (pos == 0)
+      vnif_type = GET_VLINK_NODE1_TYPE(vlink_flag);
+    else
+      vnif_type = GET_VLINK_NODE2_TYPE(vlink_flag);
+    UPLL_LOG_DEBUG("flag %d vnif_type %d pos %d", vlink_flag, vnif_type, pos);
+    unc_key_type_t if_ktype[] = {UNC_KT_ROOT, UNC_KT_VBR_IF, UNC_KT_VRT_IF,
+      UNC_KT_VUNK_IF, UNC_KT_VTEP_IF, UNC_KT_VTUNNEL_IF
+          /* VlanmapOnBoundary: vlanmap added */
+          , UNC_KT_VBR_VLANMAP
+    };
+    if (vnif_type >= sizeof(if_ktype)/sizeof(if_ktype[0]))
+      return UNC_KT_ROOT;
+    return if_ktype[vnif_type];
+  }
+  upll_rc_t RestoreVlinkOperStatus(ConfigKeyVal *ck_vnif,
+                                   DalDmlIntf *dmi,
+                                   state_notification notification,
+                                   bool skip);
+  upll_rc_t UpdateVlinkOperStatus(uint8_t *ctrlr_id,
+                                  DalDmlIntf *dmi,
+                                  state_notification notification,
+                                  bool skip);
+  upll_rc_t GetConnected(key_vnode_type_t *src_node,
+                         set<key_vnode_type_t,
+                         key_vnode_type_compare> *Vnode_set_obj,
+                         set<key_vlink_t, vlink_compare>*Vlink_set_obj,
+                         set<key_vnode_if_t,
+                         key_vnode_if_compare>* boundary_vnode_if,
                          DalDmlIntf *dmi);
 
-    upll_rc_t UpdateVlinkOperStatusUsingVlinkSet(
-                            set<key_vlink_t, vlink_compare>*vlink_set,
-                            DalDmlIntf *dmi, state_notification notification);
+  upll_rc_t UpdateVlinkOperStatusUsingVlinkSet(
+      set<key_vlink_t, vlink_compare>*vlink_set,
+      DalDmlIntf *dmi, state_notification notification);
+
+  /**
+   * @brief  VlanmapOnBoundary
+   *         Updates vlink flag with kVbrVlanmap,if the requested boundary
+   *         logical port id SW or SD
+   *
+   * @param[out]  ikey    ConfigKeyVal instance of received ikey from config_mgr.
+   * @param[out]  tkey    ConfigKeyVal instance of vlink read from DB.
+   **/
+  upll_rc_t UpdateVlinkVlanmapFlag(ConfigKeyVal *&ikey, ConfigKeyVal *&tkey);
+
+  upll_rc_t GetVlinkKeyValFromVlanMap(ConfigKeyVal *vlanmap_ckv,
+                                      ConfigKeyVal *&vlink_ckv,
+                                      DalDmlIntf *dmi,
+                                      upll_keytype_datatype_t datatype);
+
+  upll_rc_t GetControllerDomainId(ConfigKeyVal *ikey,
+                                  controller_domain_t *ctrlr_dom);
+  /* VlanmapOnBoundary: Moved to public */
+  ConfigKeyVal *ck_boundary;
 
+  upll_rc_t NotifyPOMForPortMapVlinkFlag(upll_keytype_datatype_t dt_type,
+                                         ConfigKeyVal *ckv_if,
+                                         DalDmlIntf *dmi,
+                                         unc_keytype_operation_t op);
 };
 
 typedef struct val_db_rename_vlink {
-    uint8_t valid[2];
-    uint8_t ctrlr_vtn_name[(kMaxLenVtnName + 1)];
-    uint8_t ctrlr_vlink_name[(kMaxLenVlinkName + 1)];
+  uint8_t valid[2];
+  uint8_t ctrlr_vtn_name[(kMaxLenVtnName + 1)];
+  uint8_t ctrlr_vlink_name[(kMaxLenVlinkName + 1)];
 } val_db_rename_vlink_t;
 
 }  // namespace kt_momgr
index 289fff7c2a20aac551bf018b983064d756e2d71d..35295b5bb77144dafd5589987702840bf27780a8 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -14,6 +14,9 @@
 #include "vtn_momgr.hh"
 #include "vlink_momgr.hh"
 #include "config_mgr.hh"
+#include "vlanmap_momgr.hh"
+
+#define NO_VLINK_FLAG 0x03
 
 namespace unc {
 namespace upll {
@@ -29,7 +32,7 @@ upll_rc_t VnodeChildMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
   ctrlr_dom.domain = NULL;
   ConfigKeyVal *pckv = NULL;
   uint8_t *controller_id = reinterpret_cast<uint8_t *>(
-                                 const_cast<char *>(ctrlr_id));
+      const_cast<char *>(ctrlr_id));
 
   /* check if object is renamed in the corresponding Rename Tbl
    * if "renamed"  create the object by the UNC name.
@@ -44,7 +47,7 @@ upll_rc_t VnodeChildMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
   if ((ikey->get_key_type() == UNC_KT_VTEP_GRP) ||
       (ikey->get_key_type() == UNC_KT_VTEP_GRP_MEMBER)) {
     result_code = GetControllerDomainId(ikey, UPLL_DT_AUDIT,
-                                       &ctrlr_dom, dmi);
+                                        &ctrlr_dom, dmi);
     ctrlr_dom.ctrlr = NULL;
     ctrlr_dom.domain = NULL;
     GET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
@@ -52,18 +55,18 @@ upll_rc_t VnodeChildMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
     result_code = GetParentConfigKey(pckv, ikey);
     if (result_code != UPLL_RC_SUCCESS && pckv == NULL) {
       UPLL_LOG_DEBUG("GetParentConfigKey failed err_code is %d",
-                      result_code);
+                     result_code);
       return result_code;
     }
     result_code = GetControllerDomainId(pckv, UPLL_DT_AUDIT,
-                                       &ctrlr_dom, dmi);
+                                        &ctrlr_dom, dmi);
     ctrlr_dom.ctrlr = NULL;
     ctrlr_dom.domain = NULL;
     GET_USER_DATA_CTRLR_DOMAIN(pckv, ctrlr_dom);
     SET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
     DELETE_IF_NOT_NULL(pckv);
   }
+
   if ((result_code != UPLL_RC_SUCCESS) || (ctrlr_dom.ctrlr == NULL)
       || (ctrlr_dom.domain == NULL)) {
     UPLL_LOG_INFO("GetControllerDomainId failed err_code %d", result_code);
@@ -71,13 +74,13 @@ upll_rc_t VnodeChildMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
     return UPLL_RC_ERR_GENERIC;
   }
   DbSubOp dbop = { kOpNotRead, kOpMatchNone, kOpInOutFlag | kOpInOutDomain
-                       | kOpInOutCtrlr };
+    | kOpInOutCtrlr };
   // SET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
   result_code = UpdateConfigDB(ikey, UPLL_DT_AUDIT, UNC_OP_CREATE,
                                dmi, &dbop, MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_INFO("UpdateConfigDB failed for creating vnode child err_code %d",
-                   result_code);
+                  result_code);
   }
   DELETE_IF_NOT_NULL(pckv);
   return result_code;
@@ -85,45 +88,34 @@ upll_rc_t VnodeChildMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
 
 upll_rc_t VnodeChildMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
                                              ConfigKeyVal *ikey,
-                                             DalDmlIntf *dmi) {
+                                             DalDmlIntf *dmi,
+                                             bool restore_flag) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
-  result_code = ValidateMessage(req, ikey);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Returning error %d", result_code);
-    return result_code;
+  if (!restore_flag) {
+    result_code = ValidateMessage(req, ikey);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("Returning error %d\n", result_code);
+      return result_code;
+    }
+  }
+
+  if (parent_ck_vnode) {
+    UPLL_LOG_DEBUG("parent_ck_vnode has value \n");
+    delete parent_ck_vnode;
+    parent_ck_vnode = NULL;
   }
 
-  // Parent check
-  parent_ck_vnode = NULL;
   result_code = GetParentConfigKey(parent_ck_vnode, ikey);
   if (result_code != UPLL_RC_SUCCESS || parent_ck_vnode == NULL) {
     return result_code;
   }
 
-  unc_key_type_t key_type = parent_ck_vnode->get_key_type();
-  MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager*>
-                                        (GetMoManager(key_type)));
-  result_code = mgr->UpdateConfigDB(parent_ck_vnode, req->datatype, UNC_OP_READ,
-                                    dmi, MAINTBL);
-  if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE
-      || result_code != UPLL_RC_ERR_INSTANCE_EXISTS) {
-    if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-      UPLL_LOG_INFO("Parent doesn't exist in CANDIDATE DB. Error code : %d",
-                  result_code);
-      DELETE_IF_NOT_NULL(parent_ck_vnode);
-      return UPLL_RC_ERR_PARENT_DOES_NOT_EXIST;
-    }else {
-      UPLL_LOG_DEBUG("UpdateConfigDB Failed %d", result_code);
-      DELETE_IF_NOT_NULL(parent_ck_vnode);
-      return result_code;
-    }
-  }
   if ((ikey->get_key_type() == UNC_KT_VTEP_GRP) ||
       (ikey->get_key_type() == UNC_KT_VTEP_GRP_MEMBER)) {
     result_code = GetControllerDomainId(ikey, req->datatype,
-                                      &cntrl_dom, dmi);
+                                        &cntrl_dom, dmi);
     cntrl_dom.ctrlr = NULL;
     if (ikey->get_key_type() != UNC_KT_VTEP_GRP)
       cntrl_dom.domain = NULL;
@@ -132,6 +124,14 @@ upll_rc_t VnodeChildMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
   } else {
     result_code = GetControllerDomainId(parent_ck_vnode, req->datatype,
                                         &cntrl_dom, dmi);
+    if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+      DELETE_IF_NOT_NULL(parent_ck_vnode);
+      return UPLL_RC_ERR_PARENT_DOES_NOT_EXIST;
+    } else if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("Error from GetControllerDomainId");
+      DELETE_IF_NOT_NULL(parent_ck_vnode);
+      return result_code;
+    }
     cntrl_dom.ctrlr = NULL;
     cntrl_dom.domain = NULL;
     GET_USER_DATA_CTRLR_DOMAIN(parent_ck_vnode, cntrl_dom);
@@ -145,136 +145,438 @@ upll_rc_t VnodeChildMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
   }
   ConfigKeyVal *dup_ikey = NULL;
   if (UPLL_DT_IMPORT != req->datatype) {
-      void *ifval = GetVal(ikey);
-      if ((ikey->get_key_type() == UNC_KT_VBR_IF) && ifval) {
-         result_code = GetChildConfigKey(dup_ikey, ikey);
-         if (!dup_ikey || result_code != UPLL_RC_SUCCESS) {
-           DELETE_IF_NOT_NULL(parent_ck_vnode);
-           UPLL_LOG_DEBUG("Returning error %d", result_code);
-           return result_code;
-         }
-         val_drv_vbr_if *valif = reinterpret_cast<val_drv_vbr_if *>
-           (ConfigKeyVal::Malloc(sizeof(val_drv_vbr_if)));
-         memcpy(&(valif->vbr_if_val), ifval, sizeof(val_vbr_if));
-         dup_ikey->AppendCfgVal(IpctSt::kIpcStPfcdrvValVbrIf, valif);
-      } else {
-      dup_ikey = ikey;
+    void *ifval = GetVal(ikey);
+    /* VlanmapOnBoundary: Added vlan-map check */
+    if (((ikey->get_key_type() == UNC_KT_VBR_IF) ||
+         (ikey->get_key_type() == UNC_KT_VBR_VLANMAP))&& ifval) {
+      result_code = GetChildConfigKey(dup_ikey, ikey);
+      if (!dup_ikey || result_code != UPLL_RC_SUCCESS) {
+        DELETE_IF_NOT_NULL(parent_ck_vnode);
+        UPLL_LOG_DEBUG("Returning error %d", result_code);
+        return result_code;
+      }
+
+      /* VlanmapOnBoundary: Added vlan-map check */
+      if (ikey->get_key_type() == UNC_KT_VBR_IF) {
+        val_drv_vbr_if *valif = reinterpret_cast<val_drv_vbr_if *>
+            (ConfigKeyVal::Malloc(sizeof(val_drv_vbr_if)));
+        memcpy(&(valif->vbr_if_val), ifval, sizeof(val_vbr_if));
+        dup_ikey->AppendCfgVal(IpctSt::kIpcStPfcdrvValVbrIf, valif);
+      }
+
+      if (ikey->get_key_type() == UNC_KT_VBR_VLANMAP) {
+        /* Case1: "vlanmap vlan-id" create request is received,
+         * do existence check with value struct containing vlan-id
+         * Case2: "vlanmap log_port_id vlan-id"
+         * If log_port_id_valid is present, do exist check without
+         * vlan-id(no val struct) */
+        if ((!(reinterpret_cast<key_vlan_map_t *>
+               (ikey->get_key())->logical_port_id_valid == PFC_TRUE)) ||
+            restore_flag) {
+          pfcdrv_val_vlan_map_t *val_vlanmap =
+              reinterpret_cast<pfcdrv_val_vlan_map_t *>(
+                  ConfigKeyVal::Malloc(sizeof(pfcdrv_val_vlan_map_t)));
+          if (ikey->get_cfg_val()->get_st_num() ==
+              IpctSt::kIpcStValVlanMap) {
+            /* Copy the value strcuture to do existence check */
+            memcpy(&(val_vlanmap->vm), ifval, sizeof(val_vlan_map_t));
+          } else if (ikey->get_cfg_val()->get_st_num() ==
+                     IpctSt::kIpcStPfcdrvValVlanMap) {
+            /* This case specific to restore of vlanmap */
+            memcpy(val_vlanmap, ifval, sizeof(pfcdrv_val_vlan_map_t));
+          }
+          dup_ikey->AppendCfgVal(IpctSt::kIpcStPfcdrvValVlanMap, val_vlanmap);
+        }
       }
     } else {
       dup_ikey = ikey;
     }
-    UPLL_LOG_DEBUG("%s \n",dup_ikey->ToStrAll().c_str());
+  } else {
+    dup_ikey = ikey;
+  }
+  UPLL_LOG_DEBUG("%s \n", dup_ikey->ToStrAll().c_str());
+
+  /* VlanmapOnBoundary: Added vlan-map check */
+  uint8_t flags = 0;
+  if (dup_ikey->get_key_type() == UNC_KT_VBR_VLANMAP) {
+    /* When the request is received from boundary,
+     * boundary bit is always set in user_data */
+    GET_USER_DATA_FLAGS(dup_ikey, flags);
+
+    /* Set the user-configured bit in vlan-map flag
+     * case1 : All cases of import
+     * case2 : All user configurations (with & without log_port_id) */
+    if (!(flags & BOUNDARY_VLANMAP_FLAG)) {
+      // uint8_t vlanmap_flag = 0;
+      flags |= USER_VLANMAP_FLAG;
+      SET_USER_DATA_FLAGS(dup_ikey, flags);
+    }
+  }
 
-  // Existence check in DB
-  result_code = UpdateConfigDB(dup_ikey, req->datatype, UNC_OP_READ, dmi, MAINTBL);
-  if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS
-      || result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+  if (!restore_flag) {
+    if (ikey->get_key_type() == UNC_KT_VBR_NWMONITOR) {
+      ConfigKeyVal *temp_ikey = NULL;
+      result_code = DupConfigKeyVal(temp_ikey, dup_ikey);
+      if (result_code != UPLL_RC_SUCCESS || temp_ikey == NULL) {
+        UPLL_LOG_DEBUG("Returning %d", result_code);
+        DELETE_IF_NOT_NULL(parent_ck_vnode);
+        return result_code;
+      }
+      key_nwm *key_nwmon =
+          reinterpret_cast<key_nwm *>(temp_ikey->get_key());
+      memset(key_nwmon->vbr_key.vbridge_name, 0,
+             sizeof(key_nwmon->vbr_key.vbridge_name));
+      // Existence check in DB
+      result_code = UpdateConfigDB(temp_ikey, req->datatype,
+                                   UNC_OP_READ, dmi, MAINTBL);
+      if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS
+          || result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+        DELETE_IF_NOT_NULL(parent_ck_vnode);
+        DELETE_IF_NOT_NULL(temp_ikey);
+        return result_code;
+      }
+      DELETE_IF_NOT_NULL(temp_ikey);
+      /* VlanmapOnBoundary: Added vlan-map check */
+    } else if ((dup_ikey->get_key_type() == UNC_KT_VBR_VLANMAP) &&
+               (reinterpret_cast<key_vlan_map_t *>
+                (ikey->get_key())->logical_port_id_valid == PFC_TRUE)) {
+      /* If logical-port-id is specified in the user-request */
+      DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutFlag };
+      result_code = ReadConfigDB(dup_ikey, req->datatype, UNC_OP_READ, dbop,
+                                 dmi, MAINTBL);
+      UPLL_LOG_TRACE("Read config DB result code = %u", result_code);
+      pfcdrv_val_vlan_map_t *val_vlanmap =
+          reinterpret_cast<pfcdrv_val_vlan_map_t *> (GetVal(dup_ikey));
+      /* It is always expected to get value structure from DB */
+      if (!val_vlanmap) {
+        UPLL_LOG_ERROR("Val strcut from DB is NULL");
+        delete dup_ikey;
+        DELETE_IF_NOT_NULL(parent_ck_vnode);
+        return UPLL_RC_ERR_GENERIC;
+      }
+
+      val_vlan_map_t *ival = NULL;
+      if ((ikey->get_cfg_val())->get_st_num() ==
+          IpctSt::kIpcStPfcdrvValVlanMap) {
+        pfcdrv_val_vlan_map_t* drv_ival =
+            reinterpret_cast<pfcdrv_val_vlan_map_t *>(GetVal(ikey));
+        if (drv_ival->valid[PFCDRV_IDX_BDRY_REF_COUNT] == UNC_VF_VALID) {
+          val_vlanmap->bdry_ref_count = drv_ival->bdry_ref_count;
+          val_vlanmap->valid[PFCDRV_IDX_BDRY_REF_COUNT] = UNC_VF_VALID;
+        }
+        ival = &(reinterpret_cast<pfcdrv_val_vlan_map_t *>(GetVal(ikey))->vm);
+      } else {
+        ival = reinterpret_cast<val_vlan_map_t *>(GetVal(ikey));
+      }
+
+      /* result_code is SUCCESS if vlan-map is already
+       * configured via boundary. */
+      if (result_code == UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("%s \n", dup_ikey->ToStrAll().c_str());
+        UPLL_LOG_TRACE("Vlanmap already configured")
+
+            uint8_t vlanmap_flag = 0;
+        GET_USER_DATA_FLAGS(dup_ikey, vlanmap_flag)
+
+            /* Vlan-id should be same as existing since its
+             * referred by boundary */
+            if ((ival->vlan_id != val_vlanmap->vm.vlan_id) &&
+                (vlanmap_flag & BOUNDARY_VLANMAP_FLAG)) {
+              UPLL_LOG_ERROR("Vlan-id cannot be modified since boundary "
+                             "vlanmap with different vlan-id is configured");
+              delete dup_ikey;
+              DELETE_IF_NOT_NULL(parent_ck_vnode);
+              return UPLL_RC_ERR_CFG_SEMANTIC;
+            }
+
+        /* vlanmap create request from user when its
+         * already created by user*/
+        if ((ival->vlan_id == val_vlanmap->vm.vlan_id) &&
+            (vlanmap_flag & USER_VLANMAP_FLAG)) {
+          UPLL_LOG_ERROR("Vlanmap already with the same key exists");
+          delete dup_ikey;
+          DELETE_IF_NOT_NULL(parent_ck_vnode);
+          return UPLL_RC_ERR_INSTANCE_EXISTS;
+        }
+
+        val_vlanmap->vm.vlan_id  = ival->vlan_id;
+        val_vlanmap->vm.valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+
+        /* Update the flag if vlanmap is user configured*/
+        vlanmap_flag |= flags;
+        SET_USER_DATA_FLAGS(dup_ikey, vlanmap_flag);
+
+        DbSubOp dbop1 = { kOpNotRead, kOpMatchNone, kOpInOutFlag };
+        result_code = UpdateConfigDB(dup_ikey, req->datatype, UNC_OP_UPDATE,
+                                     dmi, &dbop1, MAINTBL);
+        DELETE_IF_NOT_NULL(parent_ck_vnode);
+        DELETE_IF_NOT_NULL(dup_ikey);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("Returning error %d", result_code);
+          return result_code;
+        }
+        return UPLL_RC_SUCCESS;
+      }
+      val_vlanmap->vm.vlan_id  = ival->vlan_id;
+      val_vlanmap->vm.valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+
+      UPLL_LOG_DEBUG("%s \n", dup_ikey->ToStrAll().c_str());
+    }
+  }
+  result_code = ValidateCapability(req, ikey);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_TRACE("ValidateCapability failed");
     DELETE_IF_NOT_NULL(parent_ck_vnode);
     if (UPLL_DT_IMPORT != req->datatype) {
-        void *ifval = GetVal(ikey);
-      if ((ikey->get_key_type() == UNC_KT_VBR_IF) && ifval) {
+      void *ifval = GetVal(ikey);
+      if (((ikey->get_key_type() == UNC_KT_VBR_IF) ||
+           (ikey->get_key_type() == UNC_KT_VBR_VLANMAP)) && ifval) {
         DELETE_IF_NOT_NULL(dup_ikey);
-      }    
+      }
     }
     return result_code;
   }
-  ConfigKeyVal *inst_key = NULL;
-  result_code = GetChildConfigKey(inst_key, NULL);
+  SET_USER_DATA_CTRLR_DOMAIN(dup_ikey, cntrl_dom);
+  result_code = ValidateAttribute(dup_ikey, dmi, req);
   if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_INFO("ValidateAttribute semantic check returns error %d",
+                  result_code);
     DELETE_IF_NOT_NULL(parent_ck_vnode);
-    DELETE_IF_NOT_NULL(dup_ikey);
-    UPLL_LOG_DEBUG("Returning error %d", result_code);
+    if (UPLL_DT_IMPORT != req->datatype) {
+      void *ifval = GetVal(ikey);
+      if (((ikey->get_key_type() == UNC_KT_VBR_IF) ||
+           (ikey->get_key_type() == UNC_KT_VBR_VLANMAP)) && ifval) {
+        DELETE_IF_NOT_NULL(dup_ikey);
+      }
+    }
     return result_code;
   }
-  result_code = GetInstanceCount(inst_key, reinterpret_cast<char*>
-           (cntrl_dom.ctrlr), req->datatype, &cur_instance_count, dmi, MAINTBL);
-  if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_INFO("GetInstanceCount error %d", result_code);
-      DELETE_IF_NOT_NULL(dup_ikey);
-      DELETE_IF_NOT_NULL(parent_ck_vnode);
-      DELETE_IF_NOT_NULL(inst_key);
-      return UPLL_RC_ERR_GENERIC;
-  }
-  DELETE_IF_NOT_NULL(inst_key);
-  result_code = ValidateCapability(req, ikey);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_TRACE("ValidateCapability failed");
+  if (restore_flag) {
+    /* Reset the vlink related bits in rename flag */
+    unc_key_type_t kt_type = dup_ikey->get_key_type();
+    if (IS_INTERFACE_KEY(kt_type)) {
+      uint8_t rename = 0;
+      GET_USER_DATA_FLAGS(dup_ikey, rename);
+      /* In case of interfaces (having portmaps) and is part of
+       * boundary vlink, then do not restore port_map info.
+       * It will be restored during vlink restore */
+      if (kt_type != UNC_KT_VRT_IF && kt_type != UNC_KT_VUNK_IF) {
+        /* VRT_IF and VUNK_IF do not have portmaps */
+        if_type vnif_type = kUnboundInterface;
+        upll_rc_t rcode = UPLL_RC_SUCCESS;
+        /* Get the interface type */
+        rcode = GetInterfaceType(dup_ikey, UNC_VF_INVALID, vnif_type);
+        if (rcode != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("GetInterfaceType error %d\n", rcode);
+          DELETE_IF_NOT_NULL(parent_ck_vnode);
+          if (UPLL_DT_IMPORT != req->datatype) {
+            void *ifval = GetVal(ikey);
+            /* VlanmapOnBoundary: Added vlan-map check */
+            if (((ikey->get_key_type() == UNC_KT_VBR_IF) ||
+                 (ikey->get_key_type() == UNC_KT_VBR_VLANMAP)) && ifval) {
+              DELETE_IF_NOT_NULL(dup_ikey);
+            }
+          }
+          return rcode;
+        }
+        /* If boundarymapped, then keep valid_portmap as INVALID */
+        if (kBoundaryInterface == vnif_type) {
+          if (kt_type == UNC_KT_VBR_IF) {
+            /* In bdry vbr_if, set all portmap flags to INVALID */
+            val_drv_vbr_if *val_vbrif = reinterpret_cast<val_drv_vbr_if*>
+                (GetVal(dup_ikey));
+            val_vbrif->valid[PFCDRV_IDX_VEXT_NAME_VBRIF] = UNC_VF_INVALID;
+            val_vbrif->valid[PFCDRV_IDX_VEXTIF_NAME_VBRIF] = UNC_VF_INVALID;
+            val_vbrif->valid[PFCDRV_IDX_VLINK_NAME_VBRIF] = UNC_VF_INVALID;
+            val_vbrif->vbr_if_val.valid[UPLL_IDX_PM_VBRI] = UNC_VF_INVALID;
+          } else if (kt_type == UNC_KT_VTEP_IF) {
+            /* Handle vtep if */
+            val_vtep_if *val_vtepif = reinterpret_cast<val_vtep_if*>
+                (GetVal(dup_ikey));
+            val_vtepif->valid[UPLL_IDX_PORT_MAP_VTEPI] = UNC_VF_INVALID;
+          } else if (kt_type == UNC_KT_VTUNNEL_IF) {
+            /* Handle vtunnel if */
+            val_vtunnel_if *val_vtun_if = reinterpret_cast<val_vtunnel_if*>
+                (GetVal(dup_ikey));
+            val_vtun_if->valid[UPLL_IDX_PORT_MAP_VTNL_IF] = UNC_VF_INVALID;
+          } else {
+            UPLL_LOG_DEBUG("Invalid vnode child keytype");
+            DELETE_IF_NOT_NULL(parent_ck_vnode);
+            if (UPLL_DT_IMPORT != req->datatype) {
+              void *ifval = GetVal(ikey);
+              /* VlanmapOnBoundary: Added vlan-map check */
+              if (((ikey->get_key_type() == UNC_KT_VBR_IF) ||
+                   (ikey->get_key_type() == UNC_KT_VBR_VLANMAP)) && ifval) {
+                DELETE_IF_NOT_NULL(dup_ikey);
+              }
+            }
+            return UPLL_RC_ERR_GENERIC;
+          }
+          UPLL_LOG_DEBUG("Restoring interface which is part of boundary"
+                         " \n %s \n", dup_ikey->ToStrAll().c_str());
+        }  // kBoundaryInterface
+      }
+      if (rename)
+        rename&=NO_VLINK_FLAG;
+      SET_USER_DATA_FLAGS(dup_ikey, rename);
+    }
+    result_code = UpdateConfigDB(dup_ikey,
+                                 req->datatype,
+                                 UNC_OP_CREATE,
+                                 dmi,
+                                 MAINTBL);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_INFO("Failed to create an entry in Candidate DB %d",
+                    result_code);
+    }
     DELETE_IF_NOT_NULL(parent_ck_vnode);
     if (UPLL_DT_IMPORT != req->datatype) {
-        void *ifval = GetVal(ikey);
-      if ((ikey->get_key_type() == UNC_KT_VBR_IF) && ifval) {
+      void *ifval = GetVal(ikey);
+      /* VlanmapOnBoundary: Added vlan-map check */
+      if (((ikey->get_key_type() == UNC_KT_VBR_IF) ||
+           (ikey->get_key_type() == UNC_KT_VBR_VLANMAP)) && ifval) {
         DELETE_IF_NOT_NULL(dup_ikey);
-      }    
+      }
     }
     return result_code;
   }
-  SET_USER_DATA_CTRLR_DOMAIN(dup_ikey, cntrl_dom);
-  result_code = RestoreVnode(dup_ikey, req, dmi);
+
+  result_code = RestoreVnode(dup_ikey, req, dmi, restore_flag);
   DELETE_IF_NOT_NULL(parent_ck_vnode);
-  
+
   if (UPLL_DT_IMPORT != req->datatype) {
-      void *ifval = GetVal(ikey);
-    if ((ikey->get_key_type() == UNC_KT_VBR_IF) && ifval) {
+    void *ifval = GetVal(ikey);
+    /* VlanmapOnBoundary: Added vlan-map check */
+    if (((ikey->get_key_type() == UNC_KT_VBR_IF) ||
+         (ikey->get_key_type() == UNC_KT_VBR_VLANMAP)) && ifval) {
       DELETE_IF_NOT_NULL(dup_ikey);
-    }    
+    }
   }
   return result_code;
 }
 
 upll_rc_t VnodeChildMoMgr::RestoreVnode(ConfigKeyVal *ikey,
                                         IpcReqRespHeader *req,
-                                        DalDmlIntf *dmi) {
+                                        DalDmlIntf *dmi,
+                                        bool restore_flag) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *dup_ikey = NULL;
   upll_keytype_datatype_t dt_type = req->datatype;
 
-  if (UPLL_DT_CANDIDATE == req->datatype) {
-    result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dmi,
-                                 MAINTBL);
-    if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
-      result_code = RestoreChildren(ikey, dt_type, UPLL_DT_RUNNING, dmi);
-      if (result_code != UPLL_RC_SUCCESS) {
-         UPLL_LOG_DEBUG("Returning error %d", result_code);
+  if (!restore_flag) {
+    if (UPLL_DT_CANDIDATE == req->datatype) {
+      result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dmi,
+                                   MAINTBL);
+      if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
+        UPLL_LOG_DEBUG("Key instance exist");
+        if ((ikey)->get_cfg_val()) {
+          UPLL_LOG_DEBUG("Read Key with Value struct");
+          switch (ikey->get_key_type()) {
+            case UNC_KT_VRT_IF: {
+              val_vrt_if *vrt_if_val = reinterpret_cast<val_vrt_if *>
+                  (GetVal(ikey));
+              if (vrt_if_val != NULL) {
+                vrt_if_val->valid[UPLL_IDX_ADMIN_ST_VI] = UNC_VF_INVALID;
+              }
+            }
+            break;
+            case UNC_KT_VBR_IF: {
+              val_drv_vbr_if *vbr_if_val = reinterpret_cast<val_drv_vbr_if *>
+                  (GetVal(ikey));
+              if (vbr_if_val != NULL) {
+                vbr_if_val->vbr_if_val.valid[UPLL_IDX_ADMIN_STATUS_VBRI] =
+                    UNC_VF_INVALID;
+              }
+            }
+            break;
+            case UNC_KT_VBR_NWMONITOR: {
+              val_nwm_t *nwm_val = reinterpret_cast<val_nwm_t *>
+                  (GetVal(ikey));
+              if (nwm_val != NULL) {
+                nwm_val->valid[UPLL_IDX_ADMIN_STATUS_NWM] = UNC_VF_INVALID;
+              }
+            }
+            break;
+            default:
+            UPLL_LOG_DEBUG("Other vnode child keytypes");
+          }
+          DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
+            kOpInOutFlag | kOpInOutCtrlr | kOpInOutDomain };
+          result_code = ReadConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dbop,
+                                     dmi, MAINTBL);
+          if (UPLL_RC_SUCCESS != result_code &&
+              UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+            UPLL_LOG_DEBUG("ReadConfigDB Failed %d",  result_code);
+          }
+          if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code)  {
+            return UPLL_RC_ERR_CFG_SEMANTIC;
+          }
+        } else  {
+          result_code = UPLL_RC_SUCCESS;
+        }
+        if (UPLL_RC_SUCCESS == result_code) {
+          result_code = RestoreChildren(ikey,
+                                        dt_type,
+                                        UPLL_DT_RUNNING,
+                                        dmi,
+                                        req);
+          UPLL_LOG_DEBUG("Restore Children returns %d", result_code);
+          return result_code;
+        }
+      } else if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+        UPLL_LOG_DEBUG("UpdateConfigDB Failed %d", result_code);
         return result_code;
       }
-      return result_code;
-    }
-  }
-  if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE
-            || UPLL_DT_IMPORT == req->datatype) {
-    UPLL_LOG_TRACE("Given Create Record doesn't exists in Running");
-    result_code = DupConfigKeyVal(dup_ikey, ikey);
-    if (result_code != UPLL_RC_SUCCESS || dup_ikey == NULL) {
-      UPLL_LOG_DEBUG("Returning %d", result_code);
-      return result_code;
-    }
-    result_code = ValidateAttribute(dup_ikey, dmi, req);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_INFO("ValidateAttribute semantic check returns error %d",
-                    result_code);
-      return result_code;
+    } else {
+      result_code = UPLL_RC_ERR_NO_SUCH_INSTANCE;
     }
   } else {
-//    std::cout << "Problem in reading RUNNING DB";
-    return result_code;
+    result_code = UPLL_RC_ERR_NO_SUCH_INSTANCE;
   }
-  unc_key_type_t ktype = parent_ck_vnode->get_key_type();
-  if (UPLL_DT_CANDIDATE == req->datatype) {
-    if (ktype == UNC_KT_VBRIDGE || ktype == UNC_KT_VROUTER) {
-      result_code = SetRenameField(dup_ikey);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_INFO("Problem in setting rename field");
+
+  if (!restore_flag) {
+    if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE
+        || UPLL_DT_IMPORT == req->datatype) {
+      UPLL_LOG_TRACE("Given Create Record doesn't exists in Running");
+      result_code = DupConfigKeyVal(dup_ikey, ikey);
+      if (result_code != UPLL_RC_SUCCESS || dup_ikey == NULL) {
+        UPLL_LOG_DEBUG("Returning %d", result_code);
         return result_code;
       }
+    } else {
+      //    std::cout << "Problem in reading RUNNING DB";
+      return result_code;
     }
 
-    if (dup_ikey->get_key_type() == UNC_KT_VBR_IF) {
-      val_drv_vbr_if_t *if_val = reinterpret_cast<val_drv_vbr_if *>
-                                                 (GetVal(dup_ikey));
-      if (if_val != NULL &&
-        if_val->vbr_if_val.valid[UPLL_IDX_PM_VBRI] == UNC_VF_VALID) {
-        ConverttoDriverPortMap(dup_ikey);
+    uint8_t flag = 0;
+    unc_key_type_t ktype = parent_ck_vnode->get_key_type();
+    if (UPLL_DT_CANDIDATE == req->datatype) {
+      if (ktype == UNC_KT_VBRIDGE || ktype == UNC_KT_VROUTER) {
+        GET_USER_DATA_FLAGS(dup_ikey, flag);
+        result_code = SetRenameField(dup_ikey);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_INFO("Problem in setting rename field");
+          return result_code;
+        }
+      }
+
+      if (dup_ikey->get_key_type() == UNC_KT_VBR_IF) {
+        val_drv_vbr_if_t *if_val = reinterpret_cast<val_drv_vbr_if *>
+            (GetVal(dup_ikey));
+        if (if_val != NULL &&
+            if_val->vbr_if_val.valid[UPLL_IDX_PM_VBRI] == UNC_VF_VALID) {
+          ConverttoDriverPortMap(dup_ikey);
+        }
+      }
+
+      /* VlanmapOnBoundary: Added vlan-map check */
+      if (dup_ikey->get_key_type() == UNC_KT_VBR_VLANMAP) {
+        uint8_t dup_flag = 0;
+        GET_USER_DATA_FLAGS(dup_ikey, dup_flag);
+        flag |= dup_flag;
+        SET_USER_DATA_FLAGS(dup_ikey, flag);
+        UPLL_LOG_TRACE("FLAG RESTORE = %u", flag);
       }
     }
   }
@@ -288,22 +590,22 @@ upll_rc_t VnodeChildMoMgr::RestoreVnode(ConfigKeyVal *ikey,
 
 
 upll_rc_t VnodeChildMoMgr::IsReferenced(ConfigKeyVal *ikey,
-                                   upll_keytype_datatype_t dt_type,
-                                   DalDmlIntf *dmi) {
+                                        upll_keytype_datatype_t dt_type,
+                                        DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *okey = NULL;
   if (NULL == ikey) return UPLL_RC_ERR_GENERIC;
 
   switch (ikey->get_key_type()) {
-  case UNC_KT_VBR_IF:
-  case UNC_KT_VRT_IF:
-  case UNC_KT_VTEP_IF:
-  case UNC_KT_VTUNNEL_IF:
-  case UNC_KT_VUNK_IF:
-    break;
-  default:
-    return UPLL_RC_SUCCESS;
+    case UNC_KT_VBR_IF:
+    case UNC_KT_VRT_IF:
+    case UNC_KT_VTEP_IF:
+    case UNC_KT_VTUNNEL_IF:
+    case UNC_KT_VUNK_IF:
+      break;
+    default:
+      return UPLL_RC_SUCCESS;
   }
   result_code = GetChildConfigKey(okey, ikey);
   if (result_code != UPLL_RC_SUCCESS || okey == NULL) {
@@ -312,15 +614,15 @@ upll_rc_t VnodeChildMoMgr::IsReferenced(ConfigKeyVal *ikey,
   }
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutFlag };
   result_code = ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop,
-                dmi, MAINTBL);
+                             dmi, MAINTBL);
   while (okey) {
     uint8_t if_flag = 0;
     GET_USER_DATA_FLAGS(okey, if_flag);
     if_flag &= VIF_TYPE;
     if (if_flag) {
-       UPLL_LOG_DEBUG("Part of a vlink %d", if_flag);
-       result_code = UPLL_RC_ERR_CFG_SEMANTIC;
-       break;
+      UPLL_LOG_DEBUG("Part of a vlink %d", if_flag);
+      result_code = UPLL_RC_ERR_CFG_SEMANTIC;
+      break;
     }
     okey = okey->get_next_cfg_key_val();
   }
@@ -350,11 +652,11 @@ upll_rc_t VnodeChildMoMgr::GetRenamedUncKey(ConfigKeyVal *ikey,
   ctrlr_dom.ctrlr = ctrlr_id;
   ctrlr_dom.domain = NULL;
   if (!OVERLAY_KT(ktype))
-       result_code = GetRenamedKey(ikey, dt_type, dmi,
-                                   &ctrlr_dom,
-                                   UNC_RENAME_KEY);
+    result_code = GetRenamedKey(ikey, dt_type, dmi,
+                                &ctrlr_dom,
+                                UNC_RENAME_KEY);
   else
-     result_code = UPLL_RC_SUCCESS;
+    result_code = UPLL_RC_SUCCESS;
 
   return result_code;
 }
@@ -369,7 +671,7 @@ upll_rc_t VnodeChildMoMgr::GetRenamedControllerKey(
     result_code = GetRenamedKey(ikey, dt_type, dmi,
                                 ctrlr_dom, CTRLR_RENAME_KEY);
     UPLL_LOG_DEBUG("Controller : %s; Domain : %s", ctrlr_dom->ctrlr,
-                 ctrlr_dom->domain);
+                   ctrlr_dom->domain);
   } else {
     result_code = UPLL_RC_SUCCESS;
   }
@@ -388,21 +690,22 @@ upll_rc_t VnodeChildMoMgr::GetRenamedKey(ConfigKeyVal *ikey,
   if (!ck_parent || (result_code != UPLL_RC_SUCCESS)) return result_code;
   unc_key_type_t ktype = ck_parent->get_key_type();
   MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager*>
-                                  (GetMoManager(ktype)));
+                                                 (GetMoManager(ktype)));
   if (flag == UNC_RENAME_KEY) {
     result_code = mgr->GetRenamedUncKey(ck_parent, dt_type, dmi,
-                                         ctrlr_dom->ctrlr);
+                                        ctrlr_dom->ctrlr);
     if (result_code != UPLL_RC_SUCCESS &&
-         result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+        result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
       UPLL_LOG_DEBUG("GetRenamedUncKey failed. Result : %d", result_code);
       DELETE_IF_NOT_NULL(ck_parent);
       return result_code;
     }
   } else {
-       result_code = mgr->GetRenamedControllerKey(ck_parent, dt_type, dmi,
-                                                  ctrlr_dom);
+    result_code = mgr->GetRenamedControllerKey(ck_parent, dt_type, dmi,
+                                               ctrlr_dom);
     if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetRenamedControllerKey failed. Result: %d", result_code);
+      UPLL_LOG_DEBUG("GetRenamedControllerKey failed. Result: %d",
+                     result_code);
       DELETE_IF_NOT_NULL(ck_parent);
       return result_code;
     }
@@ -410,12 +713,12 @@ upll_rc_t VnodeChildMoMgr::GetRenamedKey(ConfigKeyVal *ikey,
   if (result_code == UPLL_RC_SUCCESS) {
     result_code  = GetChildConfigKey(ikey, ck_parent);
     if (UPLL_RC_SUCCESS != result_code) {
-       DELETE_IF_NOT_NULL (ck_parent);
-       UPLL_LOG_DEBUG("GetChildConfigkey Failed");
-       return result_code;
+      DELETE_IF_NOT_NULL(ck_parent);
+      UPLL_LOG_DEBUG("GetChildConfigkey Failed");
+      return result_code;
     }
     SET_USER_DATA(ikey, ck_parent)
-    GET_USER_DATA_CTRLR_DOMAIN(ikey, *ctrlr_dom);
+        GET_USER_DATA_CTRLR_DOMAIN(ikey, *ctrlr_dom);
   }
   delete ck_parent;
   return result_code;
@@ -427,25 +730,25 @@ upll_rc_t VnodeChildMoMgr::ReadMo(IpcReqRespHeader *header, ConfigKeyVal *ikey,
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   unc_key_type_t ktype = ikey->get_key_type();
   switch (ktype) {
-  case UNC_KT_VBR_IF:
-  case UNC_KT_VRT_IF:
-  case UNC_KT_VUNK_IF:
-  case UNC_KT_VTEP_IF:
-  case UNC_KT_VTUNNEL_IF:
-    UPLL_LOG_DEBUG("read request for %d, option 1 %d option2 %d", ktype,
+    case UNC_KT_VBR_IF:
+    case UNC_KT_VRT_IF:
+    case UNC_KT_VUNK_IF:
+    case UNC_KT_VTEP_IF:
+    case UNC_KT_VTUNNEL_IF:
+      UPLL_LOG_DEBUG("read request for %d, option 1 %d option2 %d", ktype,
                      header->option1, header->option2);
-    if (header->option2 == UNC_OPT2_NEIGHBOR) {
-      result_code = ValidateMessage(header, ikey);
-      if (UPLL_RC_SUCCESS != result_code) {
-        UPLL_LOG_DEBUG("ValidateMessage failed result_code %d", result_code);
-        return result_code;
+      if (header->option2 == UNC_OPT2_NEIGHBOR) {
+        result_code = ValidateMessage(header, ikey);
+        if (UPLL_RC_SUCCESS != result_code) {
+          UPLL_LOG_DEBUG("ValidateMessage failed result_code %d", result_code);
+          return result_code;
+        }
+        result_code = PopulateValVtnNeighbor(ikey, dmi);
+        break;
       }
-      result_code = PopulateValVtnNeighbor(ikey, dmi);
-      break;
-    }
-    /* fall through intended */
-  default:
-    result_code = MoMgrImpl::ReadMo(header, ikey, dmi);
+      /* fall through intended */
+    default:
+      result_code = MoMgrImpl::ReadMo(header, ikey, dmi);
   }
   return result_code;
 }
@@ -456,11 +759,11 @@ upll_rc_t VnodeChildMoMgr::GetControllerDomainId(
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutFlag | kOpInOutCtrlr
-                       | kOpInOutDomain };
+    | kOpInOutDomain };
   if (!pckv) return UPLL_RC_ERR_GENERIC;
   unc_key_type_t pktype = pckv->get_key_type();
   VnodeMoMgr *mgr = reinterpret_cast<VnodeMoMgr *>(const_cast<MoManager*>
-                                                  (GetMoManager(pktype)));
+                                                   (GetMoManager(pktype)));
   result_code = mgr->ReadConfigDB(pckv, dt_type, UNC_OP_READ, dbop, dmi,
                                   MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
@@ -472,48 +775,51 @@ upll_rc_t VnodeChildMoMgr::GetControllerDomainId(
 
 
 upll_rc_t VnodeChildMoMgr::PopulateValVtnNeighbor(ConfigKeyVal *&in_ckv,
-                                             DalDmlIntf *dmi) {
+                                                  DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   // Read on the left side of the link
   bool got_left_side = false;
   ConfigKeyVal *vlink_ckv = NULL;
   VlinkMoMgr *vlink_momgr = reinterpret_cast<VlinkMoMgr *>
-                           (const_cast<MoManager*>(GetMoManager(UNC_KT_VLINK)));
+      (const_cast<MoManager*>(GetMoManager(UNC_KT_VLINK)));
   if (!vlink_momgr) {
     UPLL_LOG_DEBUG("Invalid Mgr");
     return UPLL_RC_ERR_GENERIC;
   }
   vn_if_type iftype;
   upll_rc_t result_code = vlink_momgr->CheckIfMemberOfVlink(in_ckv,
-                               UPLL_DT_RUNNING, vlink_ckv, dmi, iftype);
+                                                            UPLL_DT_RUNNING,
+                                                            vlink_ckv,
+                                                            dmi,
+                                                            iftype);
   if (!vlink_ckv || result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
     UPLL_LOG_TRACE("Not found in vlink table");
   } else if (result_code == UPLL_RC_SUCCESS) {
     key_vlink_t *vlink_key = reinterpret_cast<key_vlink_t *>
-                                             (vlink_ckv->get_key());
+        (vlink_ckv->get_key());
     if (!vlink_key) {
       UPLL_LOG_DEBUG("Invalid param");
       if (vlink_ckv) delete vlink_ckv;
       return UPLL_RC_ERR_GENERIC;
     }
     if ((iftype == kVlinkBoundaryNode1) || (iftype == kVlinkInternalNode1))
-     got_left_side = true;
+      got_left_side = true;
     val_vlink_t *vlink_val = reinterpret_cast<val_vlink *>
-                       (GetVal(vlink_ckv));
+        (GetVal(vlink_ckv));
     val_vtn_neighbor_t *val_vtn_neighbor =
-     reinterpret_cast<val_vtn_neighbor_t *>
-      (ConfigKeyVal::Malloc(sizeof(val_vtn_neighbor_t)));
+        reinterpret_cast<val_vtn_neighbor_t *>
+        (ConfigKeyVal::Malloc(sizeof(val_vtn_neighbor_t)));
     memset(val_vtn_neighbor, 0, sizeof(val_vtn_neighbor_t));
     val_vtn_neighbor->valid[UPLL_IDX_CONN_VNODE_NAME_VN] = UNC_VF_VALID;
     val_vtn_neighbor->valid[UPLL_IDX_CONN_VNODE_IF_NAME_VN] = UNC_VF_VALID;
     val_vtn_neighbor->valid[UPLL_IDX_CONN_VLINK_NAME_VN] = UNC_VF_VALID;
     uuu::upll_strncpy(val_vtn_neighbor->connected_vnode_name,
                       ((got_left_side) ? vlink_val->vnode2_name :
-                                         vlink_val->vnode1_name),
+                       vlink_val->vnode1_name),
                       (kMaxLenVnodeName + 1));
     uuu::upll_strncpy(val_vtn_neighbor->connected_if_name,
                       ((got_left_side) ? vlink_val->vnode2_ifname :
-                                         vlink_val->vnode1_ifname),
+                       vlink_val->vnode1_ifname),
                       (kMaxLenInterfaceName + 1));
     uuu::upll_strncpy(val_vtn_neighbor->connected_vlink_name,
                       vlink_key->vlink_name, (kMaxLenVnodeName + 1));
@@ -534,6 +840,7 @@ upll_rc_t VnodeChildMoMgr::InitOperStatus(ConfigKeyVal *ikey,
                                           uint8_t valid_pm,
                                           val_port_map_t *pm) {
   UPLL_FUNC_TRACE;
+  upll_rc_t result_code = UPLL_RC_SUCCESS;
   T2 *vnif_db_st = reinterpret_cast<T2 *>(GetStateVal(ikey));
   if (!vnif_db_st) {
     UPLL_LOG_DEBUG("Invalid param");
@@ -543,67 +850,72 @@ upll_rc_t VnodeChildMoMgr::InitOperStatus(ConfigKeyVal *ikey,
   // vnif_db_st->down_count = 0;
 #if 0
   if ((valid_admin == UNC_VF_VALID) ||
-     (valid_admin == UNC_VF_VALID_NO_VALUE)) 
+      (valid_admin == UNC_VF_VALID_NO_VALUE))
 #endif
     if (vnif_st->oper_status != UPLL_OPER_STATUS_UNINIT) {
       if (admin_status == UPLL_ADMIN_DISABLE) {
-      vnif_st->oper_status = UPLL_OPER_STATUS_DOWN;
+        vnif_st->oper_status = UPLL_OPER_STATUS_DOWN;
       } else if (admin_status == UPLL_ADMIN_ENABLE) {
         if_type vnif_type = kUnboundInterface;
-        GetInterfaceType(ikey, valid_pm, vnif_type);
-        UPLL_LOG_DEBUG("ktype %d vnif_type %d valid_pm %d\n", 
-                    ikey->get_key_type(),vnif_type, valid_pm);
+        result_code = GetInterfaceType(ikey, valid_pm, vnif_type);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("GetInterfaceType error %d\n", result_code);
+          return result_code;
+        }
+
+        UPLL_LOG_DEBUG("ktype %d vnif_type %d valid_pm %d\n",
+                       ikey->get_key_type(), vnif_type, valid_pm);
         switch (vnif_type) {
-         case kBoundaryInterface:
-         case kMappedInterface:
-           if (valid_pm != UNC_VF_VALID)
+          case kBoundaryInterface:
+          case kMappedInterface:
+            if (valid_pm != UNC_VF_VALID)
               vnif_st->oper_status = UPLL_OPER_STATUS_DOWN;
-           else
+            else
               vnif_st->oper_status = UPLL_OPER_STATUS_UNINIT;
-           break;
-         case kLinkedInterface:
-           vnif_st->oper_status = UPLL_OPER_STATUS_UP;
-           break;
-         case kUnboundInterface:
-           vnif_st->oper_status = UPLL_OPER_STATUS_DOWN;
-           break;
+            break;
+          case kLinkedInterface:
+            vnif_st->oper_status = UPLL_OPER_STATUS_UP;
+            break;
+          case kUnboundInterface:
+            vnif_st->oper_status = UPLL_OPER_STATUS_DOWN;
+            break;
         }
       }  else {
         vnif_st->oper_status = UPLL_OPER_STATUS_UNKNOWN;
       }
-  }
+    }
   vnif_st->valid[UPLL_IDX_OPER_STATUS_VRTS] = UNC_VF_VALID;
   return UPLL_RC_SUCCESS;
 }
 
 template upll_rc_t VnodeChildMoMgr::InitOperStatus<val_vrt_if_st,
-                                          val_db_vrt_if_st>(
-                                          ConfigKeyVal *ikey,
-                                          uint8_t valid_admin,
-                                          uint8_t admin_status,
-                                          uint8_t valid_pm,
-                                          val_port_map_t *pm);
+val_db_vrt_if_st>(
+    ConfigKeyVal *ikey,
+    uint8_t valid_admin,
+    uint8_t admin_status,
+    uint8_t valid_pm,
+    val_port_map_t *pm);
 template upll_rc_t VnodeChildMoMgr::InitOperStatus<val_vtep_if_st,
-                                          val_db_vtep_if_st>(
-                                          ConfigKeyVal *ikey,
-                                          uint8_t valid_admin,
-                                          uint8_t admin_status,
-                                          uint8_t valid_pm,
-                                          val_port_map_t *pm);
+val_db_vtep_if_st>(
+    ConfigKeyVal *ikey,
+    uint8_t valid_admin,
+    uint8_t admin_status,
+    uint8_t valid_pm,
+    val_port_map_t *pm);
 template upll_rc_t VnodeChildMoMgr::InitOperStatus<val_vtunnel_if_st,
-                                          val_db_vtunnel_if_st>(
-                                          ConfigKeyVal *ikey,
-                                          uint8_t valid_admin,
-                                          uint8_t admin_status,
-                                          uint8_t valid_pm,
-                                          val_port_map_t *pm);
+val_db_vtunnel_if_st>(
+    ConfigKeyVal *ikey,
+    uint8_t valid_admin,
+    uint8_t admin_status,
+    uint8_t valid_pm,
+    val_port_map_t *pm);
 template upll_rc_t VnodeChildMoMgr::InitOperStatus<val_vbr_if_st,
-                                          val_db_vbr_if_st>(
-                                          ConfigKeyVal *ikey,
-                                          uint8_t valid_admin,
-                                          uint8_t admin_status,
-                                          uint8_t valid_pm,
-                                          val_port_map_t *pm);
+val_db_vbr_if_st>(
+    ConfigKeyVal *ikey,
+    uint8_t valid_admin,
+    uint8_t admin_status,
+    uint8_t valid_pm,
+    val_port_map_t *pm);
 
 upll_rc_t VnodeChildMoMgr::GetInterfaceType(ConfigKeyVal *ck_vnif,
                                             uint8_t valid_pm,
@@ -629,7 +941,7 @@ upll_rc_t VnodeChildMoMgr::GetInterfaceType(ConfigKeyVal *ck_vnif,
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t VnodeChildMoMgr::UpdateParentOperStatus(ConfigKeyVal *ikey, 
+upll_rc_t VnodeChildMoMgr::UpdateParentOperStatus(ConfigKeyVal *ikey,
                                                   DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
@@ -638,32 +950,34 @@ upll_rc_t VnodeChildMoMgr::UpdateParentOperStatus(ConfigKeyVal *ikey,
     return UPLL_RC_ERR_GENERIC;
   }
   unc_key_type_t ktype = ikey->get_key_type();
-  if ((ktype != UNC_KT_VBR_IF) && (ktype != UNC_KT_VRT_IF)) 
+  if ((ktype != UNC_KT_VBR_IF) && (ktype != UNC_KT_VRT_IF))
     return UPLL_RC_SUCCESS;
   DbSubOp dbop = {kOpReadSingle, kOpMatchNone, kOpInOutNone};
   // value not bound during delete - read to get down count / oper status
   result_code = ReadConfigDB(ikey, UPLL_DT_STATE, UNC_OP_READ,
-                                  dbop, dmi, MAINTBL); 
+                             dbop, dmi, MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Returning error %d\n",result_code);
+    UPLL_LOG_DEBUG("Returning error %d\n", result_code);
     return result_code;
   }
-  val_db_vbr_if_st *valst = reinterpret_cast<val_db_vbr_if_st *>(GetStateVal(ikey)); 
+  val_db_vbr_if_st *valst = reinterpret_cast<val_db_vbr_if_st *>
+      (GetStateVal(ikey));
   if (!valst) {
     UPLL_LOG_DEBUG("Returning error\n");
     return UPLL_RC_ERR_GENERIC;
   }
   if (valst->vbr_if_val_st.valid[UPLL_IDX_OPER_STATUS_VBRS] == UNC_VF_VALID) {
     if (valst->vbr_if_val_st.oper_status !=  UPLL_OPER_STATUS_DOWN)
-      return UPLL_RC_SUCCESS; 
+      return UPLL_RC_SUCCESS;
     ConfigKeyVal *ck_vn = NULL;
-    result_code = GetParentConfigKey(ck_vn,ikey);
+    result_code = GetParentConfigKey(ck_vn, ikey);
     if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Returning error %d\n",result_code);
+      UPLL_LOG_DEBUG("Returning error %d\n", result_code);
       return result_code;
     }
-    VnodeMoMgr *mgr = reinterpret_cast<VnodeMoMgr *>(const_cast<MoManager *>
-                            (GetMoManager(ck_vn->get_key_type())));
+    VnodeMoMgr *mgr = reinterpret_cast<VnodeMoMgr *>(
+        const_cast<MoManager *>
+        (GetMoManager(ck_vn->get_key_type())));
     if (!mgr) {
       UPLL_LOG_DEBUG("Returning error \n");
       delete ck_vn;
@@ -671,52 +985,55 @@ upll_rc_t VnodeChildMoMgr::UpdateParentOperStatus(ConfigKeyVal *ikey,
     }
 #if 0
     result_code = mgr->ReadConfigDB(ck_vn, UPLL_DT_STATE, UNC_OP_READ,
-                                    dbop, dmi, MAINTBL); 
+                                    dbop, dmi, MAINTBL);
     if (result_code != UPLL_RC_SUCCESS) {
       if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-        UPLL_LOG_DEBUG("Returning error %d\n",result_code);
-      } else
+        UPLL_LOG_DEBUG("Returning error %d\n", result_code);
+      } else {
         result_code = UPLL_RC_SUCCESS;
+      }
       DELETE_IF_NOT_NULL(ck_vn);
       return result_code;
     }
     val_db_vbr_if_st *vn_valst = reinterpret_cast<val_db_vbr_if_st *>
-                             GetStateVal(ck_vn);
-    if (valst->down_count > 0) { 
+        GetStateVal(ck_vn);
+    if (valst->down_count > 0) {
       vn_valst->down_count--;
     }
-    result_code = mgr->GetCkvUninit(ck_vn,NULL,dmi);
+    result_code = mgr->GetCkvUninit(ck_vn, NULL, dmi);
     if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Returning error %d\n",result_code);
+      UPLL_LOG_DEBUG("Returning error %d\n", result_code);
       DELETE_IF_NOT_NULL(ck_vn);
       return result_code;
     }
     result_code = mgr->UpdateConfigDB(ck_vn, UPLL_DT_STATE, UNC_OP_UPDATE,
-                                 dmi, MAINTBL);
+                                      dmi, MAINTBL);
 #else
-    state_notification notification = (valst->down_count > 0)?kPortFaultReset:kAdminStatusEnabled; 
+    state_notification notification =
+        (valst->down_count > 0)?kPortFaultReset:kAdminStatusEnabled;
     result_code = mgr->UpdateOperStatus(ck_vn, dmi, notification, false, true);
 #endif
     if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Returning error %d\n",result_code);
+      UPLL_LOG_DEBUG("Returning error %d\n", result_code);
       result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)?
-                     UPLL_RC_SUCCESS:result_code;
+          UPLL_RC_SUCCESS:result_code;
     }
     DELETE_IF_NOT_NULL(ck_vn);
   }
-  return result_code; 
+  return result_code;
 }
 
 upll_rc_t VnodeChildMoMgr::UpdateOperStatus(ConfigKeyVal *ikey,
-                                       DalDmlIntf *dmi,
-                                       state_notification notification,
-                                       bool skip, bool upd_if, bool upd_remif,
-                                       bool save_to_db) {
+                                            DalDmlIntf *dmi,
+                                            state_notification notification,
+                                            bool skip, bool upd_if,
+                                            bool upd_remif,
+                                            bool save_to_db) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   if (!skip) {
     DbSubOp dbop = { kOpReadMultiple, kOpMatchCtrlr | kOpMatchDomain,
-                     kOpInOutCtrlr | kOpInOutDomain | kOpInOutFlag };
+      kOpInOutCtrlr | kOpInOutDomain | kOpInOutFlag };
     if (notification == kCtrlrDisconnect || notification == kCtrlrReconnect) {
       dbop.matchop = kOpMatchCtrlr;
       dbop.inoutop = kOpInOutFlag;
@@ -730,84 +1047,99 @@ upll_rc_t VnodeChildMoMgr::UpdateOperStatus(ConfigKeyVal *ikey,
     }
   }
   ConfigKeyVal *tkey = ikey;
-  unc_key_type_t ktype  = ikey->get_key_type(),pktype = UNC_KT_ROOT;
+  unc_key_type_t ktype  = ikey->get_key_type(), pktype = UNC_KT_ROOT;
   while (tkey != NULL) {
-   /* upd_if is set to true ->if operstatus
-    * is updated as part of vlink processing.
-    */
+    /* upd_if is set to true ->if operstatus
+     * is updated as part of vlink processing.
+     */
     if (!upd_if) {
-      if_type vnif_type ; 
-      result_code = GetInterfaceType(tkey,UNC_VF_INVALID,vnif_type);
+      if_type vnif_type;
+      result_code = GetInterfaceType(tkey, UNC_VF_INVALID, vnif_type);
       if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("Returning error %d\n",result_code);
+        UPLL_LOG_DEBUG("Returning error %d\n", result_code);
         return result_code;
       }
       if ((vnif_type == kBoundaryInterface) ||
           (vnif_type == kLinkedInterface)) {
         tkey = tkey->get_next_cfg_key_val();
         continue;
-      } 
+      }
+    }
+    if (notification == kPortFaultReset) {
+      uint8_t valid_pm, valid_admin, admin_status;
+      val_port_map_t *pm = NULL;
+      GetPortMap(ikey, valid_pm, pm, valid_admin, admin_status);
+      if (admin_status == UPLL_ADMIN_DISABLE)
+        notification = kPortFaultResetWithAdminDisabled;
     }
     alarm_status oper_status_change = ALARM_NOT_SET;
     switch (ktype) {
-    case UNC_KT_VBR_IF:
-      pktype = UNC_KT_VBRIDGE;
-      result_code = SetOperStatus
-         <val_vbr_if_st, val_db_vbr_if_st>(tkey, notification, dmi,
-                                           oper_status_change);
-      if (tkey) {
-        val_drv_vbr_if *vbr_if =
-           reinterpret_cast<val_drv_vbr_if *>(GetVal(tkey));
-        if (vbr_if)
-         vbr_if->vbr_if_val.valid[UPLL_IDX_ADMIN_STATUS_VBRI] =
-           UNC_VF_INVALID;
-      }
-      break;
-    case UNC_KT_VRT_IF:
-      pktype = UNC_KT_VROUTER;
-      result_code = SetOperStatus
-         <val_vrt_if_st, val_db_vrt_if_st>(tkey, notification, dmi,
-                                           oper_status_change);
-      if (tkey) {
-        val_vrt_if *vrt_if =
-           reinterpret_cast<val_vrt_if *>(GetVal(tkey));
-        if (vrt_if)
-         vrt_if->valid[UPLL_IDX_ADMIN_ST_VI] = UNC_VF_INVALID;
-      }
-      break;
-    case UNC_KT_VTEP_IF:
-      pktype = UNC_KT_VTEP;
-      result_code = SetOperStatus
-         <val_vtep_if_st, val_db_vtep_if_st>(tkey, notification, dmi,
-                                             oper_status_change);
-      if (tkey) {
-        val_vtep_if *vtep_if =
-           reinterpret_cast<val_vtep_if *>(GetVal(tkey));
-       if (vtep_if)
-         vtep_if->valid[UPLL_IDX_ADMIN_ST_VTEPI] = UNC_VF_INVALID;
-      }
-      break;
-    case UNC_KT_VTUNNEL_IF:
-      pktype = UNC_KT_VTUNNEL;
-      result_code = SetOperStatus
-         <val_vtunnel_if_st, val_db_vtunnel_if_st>(tkey, notification, dmi,
-                                                   oper_status_change);
-      if (tkey) {
-        val_vtunnel_if *vtunnel_if =
-           reinterpret_cast<val_vtunnel_if *>(GetVal(tkey));
-        if (vtunnel_if)
-          vtunnel_if->valid[UPLL_IDX_ADMIN_ST_VTNL_IF] = UNC_VF_INVALID;
-      }
-      break;
-    default:
-      UPLL_LOG_DEBUG("oper status attribute not supported");
-      return UPLL_RC_SUCCESS;
+      case UNC_KT_VBR_IF:
+        pktype = UNC_KT_VBRIDGE;
+        result_code = SetOperStatus
+            <val_vbr_if_st, val_db_vbr_if_st>(tkey, notification, dmi,
+                                              oper_status_change);
+        if (tkey) {
+          val_drv_vbr_if *vbr_if =
+              reinterpret_cast<val_drv_vbr_if *>(GetVal(tkey));
+          if (vbr_if)
+            vbr_if->vbr_if_val.valid[UPLL_IDX_ADMIN_STATUS_VBRI] =
+                UNC_VF_INVALID;
+        }
+        break;
+      case UNC_KT_VRT_IF:
+        pktype = UNC_KT_VROUTER;
+        result_code = SetOperStatus
+            <val_vrt_if_st, val_db_vrt_if_st>(tkey, notification, dmi,
+                                              oper_status_change);
+        if (tkey) {
+          val_vrt_if *vrt_if =
+              reinterpret_cast<val_vrt_if *>(GetVal(tkey));
+          if (vrt_if)
+            vrt_if->valid[UPLL_IDX_ADMIN_ST_VI] = UNC_VF_INVALID;
+        }
+        break;
+      case UNC_KT_VTEP_IF:
+        pktype = UNC_KT_VTEP;
+        result_code = SetOperStatus
+            <val_vtep_if_st, val_db_vtep_if_st>(tkey, notification, dmi,
+                                                oper_status_change);
+        if (tkey) {
+          val_vtep_if *vtep_if =
+              reinterpret_cast<val_vtep_if *>(GetVal(tkey));
+          if (vtep_if)
+            vtep_if->valid[UPLL_IDX_ADMIN_ST_VTEPI] = UNC_VF_INVALID;
+        }
+        break;
+      case UNC_KT_VTUNNEL_IF:
+        pktype = UNC_KT_VTUNNEL;
+        result_code = SetOperStatus
+            <val_vtunnel_if_st, val_db_vtunnel_if_st>(tkey, notification, dmi,
+                                                      oper_status_change);
+        if (tkey) {
+          val_vtunnel_if *vtunnel_if =
+              reinterpret_cast<val_vtunnel_if *>(GetVal(tkey));
+          if (vtunnel_if)
+            vtunnel_if->valid[UPLL_IDX_ADMIN_ST_VTNL_IF] = UNC_VF_INVALID;
+        }
+        break;
+      default:
+        UPLL_LOG_DEBUG("oper status attribute not supported");
+        return UPLL_RC_SUCCESS;
     }
     if (oper_status_change != ALARM_NOT_SET) {
-      if (!EnqueOperStatusNotification(tkey, oper_status_change)) {
-        UPLL_LOG_DEBUG("Alarm Notification failed");
-        return UPLL_RC_ERR_GENERIC;
+      if ((notification != kAdminStatusEnabled) &&
+          (notification != kAdminStatusDisabled) &&
+          (notification != kPortUnknown)) {
+        if (!EnqueOperStatusNotification(tkey, oper_status_change)) {
+          UPLL_LOG_DEBUG("Alarm Notification failed");
+          return UPLL_RC_ERR_GENERIC;
+        }
       }
+    } else  if (notification != kCtrlrReconnectIfUp &&
+                notification != kCtrlrReconnectIfDown) {
+      tkey = tkey->get_next_cfg_key_val();
+      continue;
     }
     if (notification != kCtrlrDisconnect &&
         notification != kCtrlrReconnect) {
@@ -818,16 +1150,20 @@ upll_rc_t VnodeChildMoMgr::UpdateOperStatus(ConfigKeyVal *ikey,
         return UPLL_RC_ERR_GENERIC;
       }
       VnodeMoMgr *mgr = reinterpret_cast<VnodeMoMgr *>
-           (const_cast<MoManager *>(GetMoManager(ck_parent->get_key_type())));
+          (const_cast<MoManager *>(GetMoManager(ck_parent->get_key_type())));
       if (!mgr) {
         UPLL_LOG_DEBUG("Invalid mgr");
         delete ck_parent;
         return UPLL_RC_ERR_GENERIC;
       }
-      result_code = mgr->UpdateOperStatus(ck_parent, dmi, notification, false, save_to_db);
+      result_code = mgr->UpdateOperStatus(ck_parent,
+                                          dmi,
+                                          notification,
+                                          false,
+                                          save_to_db);
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("UpdateOperStatus failed for %d key_type",
-                        ck_parent->get_key_type());
+                       ck_parent->get_key_type());
         delete ck_parent;
         return result_code;
       }
@@ -835,38 +1171,38 @@ upll_rc_t VnodeChildMoMgr::UpdateOperStatus(ConfigKeyVal *ikey,
         delete ck_parent;
     }
     if (upd_if && upd_remif &&
-        notification != kCtrlrDisconnect && 
-        notification != kCtrlrReconnect && 
-        notification != kCtrlrReconnectIfUp && 
-        notification != kCtrlrReconnectIfDown && 
-        notification != kBoundaryFault && 
-        notification != kBoundaryFaultReset) { 
+        notification != kCtrlrDisconnect &&
+        notification != kCtrlrReconnect &&
+        notification != kCtrlrReconnectIfUp &&
+        notification != kCtrlrReconnectIfDown &&
+        notification != kBoundaryFault &&
+        notification != kBoundaryFaultReset) {
       uint8_t vlink_flag = 0;
       uint8_t remote_if = 0;
       ConfigKeyVal *ck_vlink = NULL;
       /* interface is a member of a vlink */
       GET_USER_DATA_FLAGS(ikey, vlink_flag);
       switch (vlink_flag & VIF_TYPE) {
-      case kVlinkBoundaryNode1:
-      case kVlinkInternalNode1:
-        SET_USER_DATA_FLAGS(ikey, kVlinkVnode1);
-        remote_if = 1;
-        break;
-      case kVlinkBoundaryNode2:
-      case kVlinkInternalNode2:
-        SET_USER_DATA_FLAGS(ikey, kVlinkVnode2);
-        remote_if = 0;
-        break;
-      default:
-        if (skip) {
-          UPLL_LOG_DEBUG("Not member of vlink %s",(ikey->ToStr()).c_str());
-          goto flush_db ;
-        }
-        tkey = tkey->get_next_cfg_key_val();
-        continue;
+        case kVlinkBoundaryNode1:
+        case kVlinkInternalNode1:
+          SET_USER_DATA_FLAGS(ikey, kVlinkVnode1);
+          remote_if = 1;
+          break;
+        case kVlinkBoundaryNode2:
+        case kVlinkInternalNode2:
+          SET_USER_DATA_FLAGS(ikey, kVlinkVnode2);
+          remote_if = 0;
+          break;
+        default:
+          if (skip) {
+            UPLL_LOG_DEBUG("Not member of vlink %s", (ikey->ToStr()).c_str());
+            goto flush_db;
+          }
+          tkey = tkey->get_next_cfg_key_val();
+          continue;
       }
       VlinkMoMgr *mgr = reinterpret_cast<VlinkMoMgr *>
-                    (const_cast<MoManager *>(GetMoManager(UNC_KT_VLINK)));
+          (const_cast<MoManager *>(GetMoManager(UNC_KT_VLINK)));
       if (!mgr) {
         UPLL_LOG_DEBUG("Invalid mgr");
         return UPLL_RC_ERR_GENERIC;
@@ -884,7 +1220,7 @@ upll_rc_t VnodeChildMoMgr::UpdateOperStatus(ConfigKeyVal *ikey,
       }
       /* set the status of the remote interface */
       ConfigKeyVal *vnif = NULL;
-      result_code = mgr->GetVnodeIfFromVlink(ck_vlink,&vnif,dmi,remote_if);
+      result_code = mgr->GetVnodeIfFromVlink(ck_vlink, &vnif, dmi, remote_if);
       if (result_code != UPLL_RC_SUCCESS &&
           UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
         UPLL_LOG_DEBUG("get remote interface failed %d", result_code);
@@ -894,17 +1230,17 @@ upll_rc_t VnodeChildMoMgr::UpdateOperStatus(ConfigKeyVal *ikey,
         return UPLL_RC_SUCCESS;
 
       VnodeChildMoMgr *rem_mgr = reinterpret_cast<VnodeChildMoMgr *>
-                  (const_cast<MoManager *>(GetMoManager(vnif->get_key_type())));
+          (const_cast<MoManager *>(GetMoManager(vnif->get_key_type())));
       if (!rem_mgr) {
         UPLL_LOG_DEBUG("Invalid mgr");
         return UPLL_RC_ERR_GENERIC;
       }
       result_code = rem_mgr->UpdateOperStatus(vnif, dmi, notification, true,
-                                          true,false);
+                                              true, false);
       if (vnif) delete vnif;
       if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("Error updating rem interface oper status %d", 
-                        result_code);
+        UPLL_LOG_DEBUG("Error updating rem interface oper status %d",
+                       result_code);
         return result_code;
       }
       if (ck_vlink) delete ck_vlink;
@@ -913,28 +1249,32 @@ upll_rc_t VnodeChildMoMgr::UpdateOperStatus(ConfigKeyVal *ikey,
     tkey = tkey->get_next_cfg_key_val();
   }
   if (pktype == UNC_KT_ROOT)
-   return UPLL_RC_SUCCESS;
-flush_db:
+    return UPLL_RC_ERR_NO_SUCH_INSTANCE;
+ flush_db:
   if (!save_to_db) {
-    map<string ,ConfigKeyVal *>::iterator it;
+    map<string , ConfigKeyVal *>::iterator it;
     VnodeMoMgr *mgr = reinterpret_cast<VnodeMoMgr *>
-             (const_cast<MoManager *>(GetMoManager(pktype)));
+        (const_cast<MoManager *>(GetMoManager(pktype)));
     if (!mgr) {
       UPLL_LOG_DEBUG("Invalid mgr");
       return UPLL_RC_ERR_GENERIC;
     }
-    UPLL_LOG_DEBUG("Flushing vnode to db %d",ktype);
-    for (it = mgr->vnode_oper_map.begin(); it != mgr->vnode_oper_map.end(); it++) {
+    UPLL_LOG_DEBUG("Flushing vnode to db %d", ktype);
+    for (it = mgr->vnode_oper_map.begin();
+         it != mgr->vnode_oper_map.end(); it++) {
       DbSubOp dbop = { kOpNotRead, kOpMatchNone, kOpInOutNone };
       ConfigKeyVal *tckv = it->second;
-      UPLL_LOG_TRACE("%s %p",(it->first).c_str(),it->second);
-      UPLL_LOG_DEBUG("nextvnode %p",tckv);
-      result_code = mgr->UpdateConfigDB(tckv, UPLL_DT_STATE, UNC_OP_UPDATE, dmi,
-                                   &dbop, MAINTBL);
+      UPLL_LOG_TRACE("%s %p", (it->first).c_str(), it->second);
+      UPLL_LOG_DEBUG("nextvnode %p", tckv);
+      result_code = mgr->UpdateConfigDB(tckv,
+                                        UPLL_DT_STATE,
+                                        UNC_OP_UPDATE,
+                                        dmi,
+                                        &dbop, MAINTBL);
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("Error in update oper status %d", result_code);
       }
-       if (tckv) delete tckv;
+      if (tckv) delete tckv;
     }
     mgr->vnode_oper_map.clear();
   }
@@ -943,33 +1283,39 @@ flush_db:
 
 template<typename T1, typename T2>
 upll_rc_t VnodeChildMoMgr::SetOperStatus(ConfigKeyVal *ikey,
-                                  state_notification &notification,
-                                  DalDmlIntf *dmi, alarm_status &oper_change) {
+                                         state_notification &notification,
+                                         DalDmlIntf *dmi,
+                                         alarm_status &oper_change) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   /* update corresponding interface operstatus */
   ConfigVal *tmp = (ikey->get_cfg_val()) ?
-                    ikey->get_cfg_val()->get_next_cfg_val() : NULL;
+      ikey->get_cfg_val()->get_next_cfg_val() : NULL;
   T2 *vn_valst = reinterpret_cast<T2 *>((tmp != NULL) ? tmp->get_val() : NULL);
   if (vn_valst == NULL) return UPLL_RC_ERR_GENERIC;
   T1 *vn_val = reinterpret_cast<T1 *>(vn_valst);
-  
-  UPLL_LOG_DEBUG("notification %d down_count %d ",notification, vn_valst->down_count);
 
-    /* Update oper status based on notification */
-  vn_val->valid[0] = UNC_VF_VALID;
+  UPLL_LOG_DEBUG("notification %d down_count %d ", notification,
+                 vn_valst->down_count)
+
+      /* Update oper status based on notification */
+      vn_val->valid[0] = UNC_VF_VALID;
   switch (notification) {
-  case kCtrlrReconnect: {
-      uint8_t valid_pm,valid_admin,admin_status;
+    case kCtrlrReconnect: {
+      uint8_t valid_pm, valid_admin, admin_status;
       val_port_map_t *pm = NULL;
-      GetPortMap(ikey, valid_pm, pm, valid_admin, admin_status);
+      result_code = GetPortMap(ikey, valid_pm, pm, valid_admin, admin_status);
+      if (result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_ERROR("GetPortMap failed : %d", result_code);
+        return result_code;
+      }
       if_type vnif_type;
       result_code = GetInterfaceType(ikey, valid_pm, vnif_type);
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("Returning error %d", result_code);
         return result_code;
       }
-      UPLL_LOG_DEBUG("vnif_type is %d",vnif_type);
+      UPLL_LOG_DEBUG("vnif_type is %d", vnif_type);
       if (ikey->get_key_type() == UNC_KT_VBR_IF) {
         val_vbr_if *vbr_if_val = reinterpret_cast<val_vbr_if*>(GetVal(ikey));
         if (!vbr_if_val) {
@@ -989,93 +1335,136 @@ upll_rc_t VnodeChildMoMgr::SetOperStatus(ConfigKeyVal *ikey,
         if (admin_status == UPLL_ADMIN_DISABLE) {
           vn_val->oper_status = UPLL_OPER_STATUS_DOWN;
           notification = kCtrlrReconnectIfDown;
+          result_code = UpdateRemoteVlinkIf(ikey, dmi);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("Error in update oper status %d", result_code);
+          }
         } else {
+          if (vn_val->oper_status == UPLL_OPER_STATUS_DOWN) {
+            return UPLL_RC_SUCCESS;
+          }
           vn_val->oper_status = UPLL_OPER_STATUS_UP;
           notification = kCtrlrReconnectIfUp;
-        } 
+        }
         VlinkMoMgr *vlink_mgr =
-           reinterpret_cast<VlinkMoMgr *>(const_cast<MoManager *>
-           (const_cast<MoManager*>(GetMoManager(UNC_KT_VLINK))));
+            reinterpret_cast<VlinkMoMgr *>(const_cast<MoManager *>
+                                           (const_cast<MoManager*>
+                                            (GetMoManager(UNC_KT_VLINK))));
         result_code = vlink_mgr->RestoreVlinkOperStatus(ikey, dmi,
-                                                    notification, false);
+                                                        notification, false);
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("restoring vlink operstatus failed");
           return result_code;
         }
       } else if (vnif_type == kUnboundInterface) {
-          vn_val->oper_status = UPLL_OPER_STATUS_DOWN;
-          notification = kCtrlrReconnectIfDown;
+        vn_val->oper_status = UPLL_OPER_STATUS_DOWN;
+        notification = kCtrlrReconnectIfDown;
       } else {
         return UPLL_RC_SUCCESS;
-      } 
+      }
     }
     break;
-  case kAdminStatusDisabled:
-    vn_val->oper_status = UPLL_OPER_STATUS_DOWN;
+    case kAdminStatusDisabled:
+    if (vn_val->oper_status != UPLL_OPER_STATUS_DOWN) {
+      vn_val->oper_status = UPLL_OPER_STATUS_DOWN;
+      oper_change = ALARM_OPER_DOWN;
+    }
     break;
-  case kAdminStatusEnabled:
+    case kAdminStatusEnabled:
     if (vn_valst->down_count == 0) {
       if_type vnif_type;
-      uint8_t valid_pm,valid_admin,admin_status;
+      uint8_t valid_pm, valid_admin, admin_status;
       val_port_map_t *pm = NULL;
       GetPortMap(ikey, valid_pm, pm, valid_admin, admin_status);
-      upll_rc_t result_code = GetInterfaceType(ikey,valid_pm,vnif_type);
+      upll_rc_t result_code = GetInterfaceType(ikey, valid_pm, vnif_type);
       if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("Returning error %d",result_code);
+        UPLL_LOG_DEBUG("Returning error %d", result_code);
         return result_code;
       }
       if ((vnif_type == kLinkedInterface) || (vnif_type == kMappedInterface) ||
-          (vnif_type == kBoundaryInterface))
+          (vnif_type == kBoundaryInterface)) {
         vn_val->oper_status = UPLL_OPER_STATUS_UP;
-      else if (vnif_type == kUnboundInterface)
+        oper_change = ALARM_OPER_UP;
+      } else {
+        if (vnif_type == kUnboundInterface)
         vn_val->oper_status = UPLL_OPER_STATUS_DOWN;
-    } else 
+      }
+    } else {
       vn_val->oper_status = UPLL_OPER_STATUS_DOWN;
+    }
     break;
-  case kCtrlrDisconnect:
-    vn_val->oper_status = UPLL_OPER_STATUS_UNKNOWN;
+    case kPortUnknown:
+    if (vn_val->oper_status != UPLL_OPER_STATUS_UNKNOWN) {
+      oper_change = ALARM_OPER_DOWN;
+    }
+    /* fall through intended */
+    case kCtrlrDisconnect:
     vn_valst->down_count = 0;
+    vn_val->oper_status = UPLL_OPER_STATUS_UNKNOWN;
     break;
-  case kPortFault:
-  case kPathFault:
-  case kBoundaryFault:
-    if (vn_valst->down_count < 1) 
+    case kPortFault:
+    if (vn_valst->down_count == 1)
+      return UPLL_RC_SUCCESS;
+    case kPathFault:
+    case kBoundaryFault:
+    if (vn_valst->down_count < 1) {
       vn_valst->down_count = (vn_valst->down_count + 1);
-    if (vn_valst->down_count == 1) {
-      vn_val->oper_status = UPLL_OPER_STATUS_DOWN;
-      // generate alarm
-     oper_change = ALARM_OPER_DOWN;
+      if (vn_valst->down_count == 1) {
+        vn_val->oper_status = UPLL_OPER_STATUS_DOWN;
+        // generate alarm
+        oper_change = ALARM_OPER_DOWN;
+      }
     }
     break;
-  case kPortFaultReset:
-  case kPathFaultReset:
-  case kBoundaryFaultReset:
+    case kPortFaultReset:
+    case kPathFaultReset:
+    case kBoundaryFaultReset:
     if (vn_valst->down_count > 0) {
       --vn_valst->down_count;
     }
     if (vn_valst->down_count == 0) {
-        uint8_t valid_pm,valid_admin,admin_status;
-        val_port_map_t *pm = NULL;
-        GetPortMap(ikey, valid_pm, pm, valid_admin, admin_status);
+#if 0
+      uint8_t valid_pm, valid_admin, admin_status;
+      val_port_map_t *pm = NULL;
+      GetPortMap(ikey, valid_pm, pm, valid_admin, admin_status);
+      if (notification != kBoundaryFaultResetWithAdminDisabled) {
         if (admin_status == UPLL_ADMIN_ENABLE) {
           vn_val->oper_status = UPLL_OPER_STATUS_UP;
-         // reset alarm
-          oper_change = ALARM_OPER_UP;
-        } else 
-          vn_val->oper_status = UPLL_OPER_STATUS_UP;
-    } else 
+        } else {
+          vn_val->oper_status = UPLL_OPER_STATUS_DOWN;
+        }
+      } else {
         vn_val->oper_status = UPLL_OPER_STATUS_DOWN;
+      }
+#else
+      vn_val->oper_status = UPLL_OPER_STATUS_UP;
+#endif
+      // reset alarm
+      oper_change = ALARM_OPER_UP;
+    } else {
+      vn_val->oper_status = UPLL_OPER_STATUS_DOWN;
+    }
+    break;
+    case kPortFaultResetWithAdminDisabled:
+    case kBoundaryFaultResetWithAdminDisabled:
+    if (vn_valst->down_count > 0) {
+      --vn_valst->down_count;
+    }
+    /* oper status stays down though down_count == 0
+       as admin is down */
+    vn_val->oper_status = UPLL_OPER_STATUS_DOWN;
+    oper_change = ALARM_OPER_UP;
+    break;
+    default:
+    UPLL_LOG_DEBUG("unsupported notification for operstatus update");
+    return UPLL_RC_ERR_GENERIC;
     break;
-  default:
-      UPLL_LOG_DEBUG("unsupported notification for operstatus update");
-      return UPLL_RC_ERR_GENERIC;
-    break;  
   }
   DbSubOp dbop = { kOpNotRead, kOpMatchNone, kOpInOutNone };
   result_code = UpdateConfigDB(ikey, UPLL_DT_STATE, UNC_OP_UPDATE,
-                           dmi, &dbop, MAINTBL);
+                               dmi, &dbop, MAINTBL);
   UPLL_LOG_TRACE("VnodeChild SetOperstatus for VTN after Update is \n %s",
-                    ikey->ToStrAll().c_str());
+                 ikey->ToStrAll().c_str());
   return result_code;
 }
 
@@ -1087,32 +1476,6 @@ upll_rc_t VnodeChildMoMgr::TxUpdateDtState(unc_key_type_t ktype,
   UPLL_FUNC_TRACE;
   ConfigKeyVal *ck_vn = NULL;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
-#if 0
-  switch (ktype) {
-  case UNC_KT_VRT_IF:
-    result_code = GetUninitOperState<val_vrt_if_st_t, val_db_vrt_if_st_t>
-                                    (ck_vn, dmi);
-    break;
-  case UNC_KT_VUNK_IF:
-    UPLL_LOG_DEBUG("Returning success");
-    return UPLL_RC_SUCCESS;
-  case UNC_KT_VBR_IF:
-    result_code = GetUninitOperState<val_vbr_if_st_t, val_db_vbr_if_st_t>
-                                    (ck_vn, dmi);
-    break;
-  case UNC_KT_VTEP_IF:
-    result_code = GetUninitOperState<val_vtep_if_st_t, val_db_vtep_if_st_t>
-                                    (ck_vn, dmi);
-    break;
-  case UNC_KT_VTUNNEL_IF:
-    result_code = GetUninitOperState<val_vtunnel_if_st_t,
-                                    val_db_vtunnel_if_st_t>(ck_vn, dmi);
-    break;
-  default:
-    UPLL_LOG_DEBUG("Oper status not supported");
-    return UPLL_RC_ERR_GENERIC;
-  }
-#endif
   result_code = GetUninitOperState(ck_vn, dmi);
   if (!ck_vn || result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("UpdateDtState failed %d", result_code);
@@ -1127,133 +1490,158 @@ upll_rc_t VnodeChildMoMgr::TxUpdateDtState(unc_key_type_t ktype,
     tkey = ck_vn;
     ck_vn = ck_vn->get_next_cfg_key_val();
     tkey->set_next_cfg_key_val(NULL);
-    state_notification notification = kCtrlrReconnect; //noop 
-    uint8_t valid_pm,valid_admin,admin_status;
+    state_notification notification = kCtrlrReconnect;  // noop
+    uint8_t valid_pm, valid_admin, admin_status;
     val_port_map_t *pm = NULL;
-    result_code = GetPortMap(tkey, valid_pm, pm,valid_admin,admin_status);
+    result_code = GetPortMap(tkey, valid_pm, pm, valid_admin, admin_status);
     if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Returning error %d\n",result_code);
+      UPLL_LOG_DEBUG("Returning error %d\n", result_code);
+      delete tkey;
+      DELETE_IF_NOT_NULL(ck_vn);
       return result_code;
     }
-    UPLL_LOG_DEBUG("valid_pm %d valid_admin %d admin_status %d", 
-                    valid_pm, valid_admin,admin_status);
+    UPLL_LOG_DEBUG("valid_pm %d valid_admin %d admin_status %d",
+                   valid_pm, valid_admin, admin_status);
     if (valid_admin == UNC_VF_VALID &&
-        admin_status == UPLL_ADMIN_DISABLE) 
-       notification = kAdminStatusDisabled;
-    else if (valid_pm == UNC_VF_VALID) {
-        val_oper_status port_oper_status;
-        GET_USER_DATA_CTRLR_DOMAIN(tkey, ctrlr_dom);
-        result_code = GetPortStatusFromPhysical(pm, ctrlr_dom, port_oper_status,
+        admin_status == UPLL_ADMIN_DISABLE) {
+      notification = kAdminStatusDisabled;
+    else if (valid_pm == UNC_VF_VALID) {
+      val_oper_status port_oper_status;
+      GET_USER_DATA_CTRLR_DOMAIN(tkey, ctrlr_dom);
+      result_code = GetPortStatusFromPhysical(pm, ctrlr_dom, port_oper_status,
                                               session_id, config_id);
-          /* During import Physical don't have the Port status
-           * in the running db so its return no such instance
-           * so here comment this check */
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("Error retrieving port status from physical %d %d",
-                        result_code, port_oper_status);
+      /* During import Physical don't have the Port status
+       * in the running db so its return no such instance
+       * so here comment this check */
+      if (result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("Error retrieving port status from physical %d %d",
+                       result_code, port_oper_status);
         // return result_code;
-        }
-        val_db_vbr_if_st *vbrif_valst = reinterpret_cast<val_db_vbr_if_st *>
-                                         (GetStateVal(tkey));
-        switch (port_oper_status) {
+      }
+      val_db_vbr_if_st *vbrif_valst = reinterpret_cast<val_db_vbr_if_st *>
+          (GetStateVal(tkey));
+      switch (port_oper_status) {
         case  UPLL_OPER_STATUS_DOWN:
           if (vbrif_valst->down_count == 0)
             notification = kPortFault;
           else
-            notification = kAdminStatusEnabled;
+            notification = kAdminStatusDisabled;
           break;
         case  UPLL_OPER_STATUS_UNKNOWN:
-          notification = kCtrlrDisconnect;
+          notification = kPortUnknown;
           break;
         case  UPLL_OPER_STATUS_UP:
-        {
-          if (vbrif_valst->down_count > 0)
-            notification = kPortFaultReset;
-          else
-            notification = kAdminStatusEnabled;
-          break;
-        }
+          {
+            if (vbrif_valst->down_count > 0)
+              notification = kPortFaultReset;
+            else
+              notification = kAdminStatusEnabled;
+            break;
+          }
         default:
           if (vbrif_valst->down_count == 0)
             notification = kPortFault;
           else
             notification = kAdminStatusEnabled;
           break;
-        }
-    } 
-    if (notification == kAdminStatusEnabled || admin_status == UPLL_ADMIN_ENABLE) {
+      }
+    }
+    if ((notification == kAdminStatusEnabled) ||
+        (notification != kPortUnknown &&
+         admin_status == UPLL_ADMIN_ENABLE)) {
       if_type vnif_type;
-      result_code = GetInterfaceType(tkey,valid_pm,vnif_type);
+      result_code = GetInterfaceType(tkey, valid_pm, vnif_type);
       if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("Returning error %d",result_code);
+        UPLL_LOG_DEBUG("Returning error %d", result_code);
+        delete tkey;
+        DELETE_IF_NOT_NULL(ck_vn);
         return result_code;
       }
-      if (vnif_type == kBoundaryInterface) {
-        ConfigKeyVal *ck_remif = NULL;
-        VlinkMoMgr *vlink_mgr = reinterpret_cast<VlinkMoMgr *>
-                      (const_cast<MoManager*>(GetMoManager(UNC_KT_VLINK)));
-        if (!vlink_mgr) {
-          UPLL_LOG_ERROR("Invalid mgr\n");
-          return UPLL_RC_ERR_GENERIC;
-        }
-        result_code = vlink_mgr->GetRemoteIf(tkey,ck_remif, dmi);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_ERROR("Returning error %d\n",result_code);
-          DELETE_IF_NOT_NULL(ck_remif);
-          return result_code;
-        }   
-        result_code = GetPortMap(ck_remif, valid_pm, pm,
-                                valid_admin,admin_status);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("Returning error %d\n",result_code);
-          DELETE_IF_NOT_NULL(ck_remif);
-          return result_code;
-        }
-        if (valid_admin == UNC_VF_VALID && 
-                            admin_status == UPLL_ADMIN_DISABLE) 
+      switch (vnif_type) {
+        case kBoundaryInterface:
+        case kLinkedInterface:
+          {
+            ConfigKeyVal *ck_remif = NULL;
+            VlinkMoMgr *vlink_mgr = reinterpret_cast<VlinkMoMgr *>
+                (const_cast<MoManager*>(GetMoManager(UNC_KT_VLINK)));
+            if (!vlink_mgr) {
+              UPLL_LOG_ERROR("Invalid mgr\n");
+              delete tkey;
+              DELETE_IF_NOT_NULL(ck_vn);
+              return UPLL_RC_ERR_GENERIC;
+            }
+            result_code = vlink_mgr->GetRemoteIf(tkey, ck_remif, dmi);
+            if (result_code != UPLL_RC_SUCCESS) {
+              UPLL_LOG_ERROR("Returning error %d\n", result_code);
+              DELETE_IF_NOT_NULL(ck_remif);
+              delete tkey;
+              DELETE_IF_NOT_NULL(ck_vn);
+              return result_code;
+            }
+            VnodeChildMoMgr *mgr = reinterpret_cast<VnodeChildMoMgr *>
+                (const_cast<MoManager*>
+                 (GetMoManager(ck_remif->get_key_type())));
+            result_code = mgr->GetPortMap(ck_remif, valid_pm, pm,
+                                          valid_admin, admin_status);
+            if (result_code != UPLL_RC_SUCCESS) {
+              UPLL_LOG_DEBUG("Returning error %d\n", result_code);
+              DELETE_IF_NOT_NULL(ck_remif);
+              delete tkey;
+              DELETE_IF_NOT_NULL(ck_vn);
+              return result_code;
+            }
+            if (valid_admin == UNC_VF_VALID &&
+                admin_status == UPLL_ADMIN_DISABLE)
+              notification = kAdminStatusDisabled;
+            else
+              notification = kAdminStatusEnabled;
+            DELETE_IF_NOT_NULL(ck_remif);
+            break;
+          }
+        case kMappedInterface:
+          break;
+        case kUnboundInterface:
+        default:
           notification = kAdminStatusDisabled;
-        else
-          notification = kAdminStatusEnabled;
-        DELETE_IF_NOT_NULL(ck_remif);
-      } else if (vnif_type == kLinkedInterface) {
-        notification = kAdminStatusEnabled;
-      } else if (vnif_type == kUnboundInterface) {
-        notification = kAdminStatusDisabled;
-      } 
+          break;
+      }
     }
     // vlinked interfaces should be handled as part of vlink dt state update
     result_code = UpdateOperStatus(tkey, dmi, notification, true, true, true);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Error updating oper status %d", result_code);
+      delete tkey;
+      DELETE_IF_NOT_NULL(ck_vn);
       return result_code;
     }
 #if 0
-      DbSubOp dbop1 = { kOpNotRead, kOpMatchNone, kOpInOutNone };
-      result_code = UpdateConfigDB(tkey, UPLL_DT_STATE, UNC_OP_UPDATE,
-                                      dmi, &dbop1, MAINTBL);
-      if (result_code != UPLL_RC_SUCCESS) {
-           UPLL_LOG_DEBUG("UpdateConfigDB Executed %d", result_code);
-           break;
-      }
+    DbSubOp dbop1 = { kOpNotRead, kOpMatchNone, kOpInOutNone };
+    result_code = UpdateConfigDB(tkey, UPLL_DT_STATE, UNC_OP_UPDATE,
+                                 dmi, &dbop1, MAINTBL);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("UpdateConfigDB Executed %d", result_code);
+      break;
+    }
 #endif
-     delete tkey;
+    delete tkey;
   }
   return result_code;
 }
 
 
-upll_rc_t VnodeChildMoMgr::GetPortStatusFromPhysical(val_port_map_t *pm,
-                            controller_domain_t ctr_domain,
-                            val_oper_status &logical_port_operStatus,
-                            uint32_t session_id,
-                            uint32_t config_id) {
+upll_rc_t VnodeChildMoMgr::GetPortStatusFromPhysical(
+    val_port_map_t *pm,
+    controller_domain_t ctr_domain,
+    val_oper_status &logical_port_operStatus,
+    uint32_t session_id,
+    uint32_t config_id) {
   UPLL_FUNC_TRACE;
   IpcResponse ipc_resp;
   ConfigKeyVal *log_Port_CK = NULL;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
   key_logical_port *phy_logPort_Key = static_cast<key_logical_port *>
-                        (ConfigKeyVal::Malloc(sizeof(key_logical_port)));
+      (ConfigKeyVal::Malloc(sizeof(key_logical_port)));
   uuu::upll_strncpy(phy_logPort_Key->domain_key.ctr_key.controller_name,
                     reinterpret_cast<const char *>(ctr_domain.ctrlr),
                     (kMaxLenCtrlrId+1));
@@ -1267,16 +1655,17 @@ upll_rc_t VnodeChildMoMgr::GetPortStatusFromPhysical(val_port_map_t *pm,
                                  IpctSt::kIpcStKeyLogicalPort,
                                  phy_logPort_Key, NULL);
   result_code = SendIpcReq(session_id, config_id, UNC_OP_READ,
-                   UPLL_DT_STATE, log_Port_CK, NULL, &ipc_resp);
+                           UPLL_DT_STATE, log_Port_CK, NULL, &ipc_resp);
   if ((result_code != UPLL_RC_SUCCESS) || (!ipc_resp.ckv_data)) {
     delete log_Port_CK;
     log_Port_CK = NULL;
     logical_port_operStatus = UPLL_OPER_STATUS_DOWN;
     if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
       DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
+      logical_port_operStatus = UPLL_OPER_STATUS_UNKNOWN;
       UPLL_LOG_DEBUG("Invalid Logical Port Id");
-//      return UPLL_RC_ERR_CFG_SEMANTIC;
-        return UPLL_RC_SUCCESS;
+      //      return UPLL_RC_ERR_CFG_SEMANTIC;
+      return UPLL_RC_SUCCESS;
     }
     UPLL_LOG_DEBUG("Error in retrieving LogicalPortId data from Physical");
     DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
@@ -1285,7 +1674,7 @@ upll_rc_t VnodeChildMoMgr::GetPortStatusFromPhysical(val_port_map_t *pm,
   log_Port_CK->ResetWith(ipc_resp.ckv_data);
   DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
   val_logical_port_st *phy_logPort_St = static_cast<val_logical_port_st *>
-                                         (GetVal(log_Port_CK));
+      (GetVal(log_Port_CK));
   if (phy_logPort_St)
     switch (phy_logPort_St->oper_status) {
       case UPPL_CONTROLLER_OPER_DOWN:
@@ -1300,14 +1689,14 @@ upll_rc_t VnodeChildMoMgr::GetPortStatusFromPhysical(val_port_map_t *pm,
         break;
       default:
         break;
-  }
+    }
   if (log_Port_CK)
     delete log_Port_CK;
   return result_code;
 }
 
 bool VnodeChildMoMgr::EnqueOperStatusNotification(ConfigKeyVal *ikey,
-                                                   bool oper_status_change) {
+                                                  bool oper_status_change) {
   UPLL_FUNC_TRACE;
   if (!ikey || !ikey->get_key()) {
     UPLL_LOG_DEBUG("Inputs are Invalid");
@@ -1322,34 +1711,34 @@ bool VnodeChildMoMgr::EnqueOperStatusNotification(ConfigKeyVal *ikey,
   switch (ktype) {
     case UNC_KT_VBR_IF:
       vtn_name = reinterpret_cast<key_vbr_if*>
-                   (ikey->get_key())->vbr_key.vtn_key.vtn_name;
+          (ikey->get_key())->vbr_key.vtn_key.vtn_name;
       vnode_name = reinterpret_cast<key_vbr_if*>
-                     (ikey->get_key())->vbr_key.vbridge_name;
+          (ikey->get_key())->vbr_key.vbridge_name;
       vif_name = (reinterpret_cast<key_vbr_if*>(ikey->get_key()))->if_name;
-    break;
+      break;
     case UNC_KT_VRT_IF:
       vtn_name = reinterpret_cast<key_vrt_if*>
-                     (ikey->get_key())->vrt_key.vtn_key.vtn_name;
+          (ikey->get_key())->vrt_key.vtn_key.vtn_name;
       vnode_name = reinterpret_cast<key_vrt_if*>
-                     (ikey->get_key())->vrt_key.vrouter_name;
+          (ikey->get_key())->vrt_key.vrouter_name;
       vif_name = (reinterpret_cast<key_vrt_if*>(ikey->get_key()))->if_name;
-    break;
+      break;
     case UNC_KT_VTUNNEL_IF:
       vtn_name = reinterpret_cast<key_vtunnel_if*>
-                     (ikey->get_key())->vtunnel_key.vtn_key.vtn_name;
+          (ikey->get_key())->vtunnel_key.vtn_key.vtn_name;
       vnode_name = reinterpret_cast<key_vtunnel_if*>
-                     (ikey->get_key())->vtunnel_key.vtunnel_name;
+          (ikey->get_key())->vtunnel_key.vtunnel_name;
       vif_name = reinterpret_cast<key_vtunnel_if*>(ikey->get_key())->if_name;
-    break;
+      break;
     case UNC_KT_VTEP_IF:
       vtn_name = reinterpret_cast<key_vtep_if*>
-                     (ikey->get_key())->vtep_key.vtn_key.vtn_name;
+          (ikey->get_key())->vtep_key.vtn_key.vtn_name;
       vnode_name = reinterpret_cast<key_vtep_if*>
-                     (ikey->get_key())->vtep_key.vtep_name;
+          (ikey->get_key())->vtep_key.vtep_name;
       vif_name = (reinterpret_cast<key_vtep_if*>(ikey->get_key()))->if_name;
-    break;
+      break;
     default:
-       UPLL_LOG_DEBUG("Invalid KeyType");
+      UPLL_LOG_DEBUG("Invalid KeyType");
   }
   return cfg_instance->SendOperStatusAlarm(reinterpret_cast<char*>(vtn_name),
                                            reinterpret_cast<char*>(vnode_name),
@@ -1358,9 +1747,9 @@ bool VnodeChildMoMgr::EnqueOperStatusNotification(ConfigKeyVal *ikey,
 }
 
 upll_rc_t VnodeChildMoMgr::SetLinkedIfOperStatusforPathFault(
-                        const key_vnode_type_t &vnode_key,
-                        state_notification notification,
-                        DalDmlIntf *dmi) {
+    const key_vnode_type_t &vnode_key,
+    state_notification notification,
+    DalDmlIntf *dmi) {
   ConfigKeyVal *ck_vnode_if = NULL;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   result_code = GetMappedInterfaces(vnode_key, dmi, ck_vnode_if);
@@ -1371,27 +1760,38 @@ upll_rc_t VnodeChildMoMgr::SetLinkedIfOperStatusforPathFault(
   }
   ConfigKeyVal *tmp_vnode_if = ck_vnode_if;
   while (tmp_vnode_if != NULL) {
-    result_code = UpdateOperStatus(tmp_vnode_if, dmi, notification, true, false, false);
+    result_code = UpdateOperStatus(tmp_vnode_if,
+                                   dmi,
+                                   notification,
+                                   true,
+                                   false,
+                                   false);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Operstatus updation failed");
       return result_code;
     }
     tmp_vnode_if = tmp_vnode_if->get_next_cfg_key_val();
   }
-  DELETE_IF_NOT_NULL(ck_vnode_if); 
+  DELETE_IF_NOT_NULL(ck_vnode_if);
   return result_code;
 }
 
 /*This function gives the interfaces mapped to a particular vbridge */
-upll_rc_t VnodeChildMoMgr::GetMappedInterfaces(const key_vnode_type_t &vnode_key_type,
-                                          DalDmlIntf *dmi,
-                                          ConfigKeyVal *&iokey) {
+upll_rc_t VnodeChildMoMgr::GetMappedInterfaces(
+    const key_vnode_type_t &vnode_key_type,
+    DalDmlIntf *dmi,
+    ConfigKeyVal *&iokey) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
-  GetChildConfigKey(iokey, NULL);
+  result_code = GetChildConfigKey(iokey, NULL);
+  if (UPLL_RC_SUCCESS != result_code) {
+    UPLL_LOG_DEBUG("GetChildConfigkey Failed");
+    return result_code;
+  }
+
   key_vnode *vnode_key = reinterpret_cast<key_vnode*>(iokey->get_key());
   memcpy(vnode_key, &(vnode_key_type.vnode_key), sizeof(key_vnode));
-  
+
   /* Get all the vbridges under the VTN */
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutNone };
   result_code = ReadConfigDB(iokey, UPLL_DT_STATE, UNC_OP_READ, dbop, dmi,
@@ -1399,32 +1799,135 @@ upll_rc_t VnodeChildMoMgr::GetMappedInterfaces(const key_vnode_type_t &vnode_key
   return result_code;
 }
 
-upll_rc_t VnodeChildMoMgr::UpdateVnodeIf(ConfigKeyVal *ck_if,
-                           DalDmlIntf *dmi,
-                           state_notification notification) {
+upll_rc_t VnodeChildMoMgr::UpdateVnodeIfOperStatus(
+    ConfigKeyVal *ck_vnode,
+    DalDmlIntf *dmi,
+    state_notification notification) {
+  UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
+  ConfigKeyVal *ck_if = NULL;
+  result_code = GetChildConfigKey(ck_if, ck_vnode);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_DEBUG("GetChildConfigKey failed");
+    return UPLL_RC_ERR_GENERIC;
+  }
   DbSubOp dbop = {kOpReadMultiple, kOpMatchNone,
-                  kOpInOutFlag};
+    kOpInOutFlag};
   result_code = ReadConfigDB(ck_if, UPLL_DT_STATE, UNC_OP_READ, dbop, dmi,
-                           MAINTBL);
+                             MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("ReadConfigDB failed with result_code %d",
-                    result_code);
+                   result_code);
+    DELETE_IF_NOT_NULL(ck_if);
     return result_code;
   }
   ConfigKeyVal *tmp = ck_if;
   while (tmp != NULL) {
-    result_code = UpdateOperStatus(tmp, dmi, notification, true, true, 
+    ConfigKeyVal *tmp1 = tmp->get_next_cfg_key_val();
+    tmp->set_next_cfg_key_val(NULL);
+    result_code = UpdateOperStatus(tmp, dmi, notification, true, true,
                                    true, true);
+    DELETE_IF_NOT_NULL(tmp);
     if (result_code != UPLL_RC_SUCCESS) {
-       UPLL_LOG_DEBUG("Error updating oper status %d", result_code);
-       return result_code;
+      DELETE_IF_NOT_NULL(tmp1);
+      UPLL_LOG_DEBUG("Error updating oper status %d", result_code);
+      return result_code;
     }
-    tmp = tmp->get_next_cfg_key_val();
+    tmp = tmp1;
   }
   return result_code;
 }
 
+upll_rc_t VnodeChildMoMgr::UpdateRemoteVlinkIf(ConfigKeyVal *ikey,
+                                               DalDmlIntf *dmi) {
+  ConfigKeyVal *ck_remif = NULL;
+  VlinkMoMgr *vlink_mgr = reinterpret_cast<VlinkMoMgr *>
+      (const_cast<MoManager*>(GetMoManager(UNC_KT_VLINK)));
+  if (!vlink_mgr) {
+    UPLL_LOG_ERROR("Invalid mgr\n");
+    return UPLL_RC_ERR_GENERIC;
+  }
+  upll_rc_t result_code = UPLL_RC_SUCCESS;
+  result_code = vlink_mgr->GetRemoteIf(ikey, ck_remif, dmi);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_ERROR("Returning error %d\n", result_code);
+    DELETE_IF_NOT_NULL(ck_remif);
+    return result_code;
+  }
+
+  ConfigVal *tmp = (ck_remif->get_cfg_val()) ?
+      ck_remif->get_cfg_val()->get_next_cfg_val() : NULL;
+  val_db_vbr_if_st *vn_valst =
+      reinterpret_cast<val_db_vbr_if_st *>
+      ((tmp != NULL) ? tmp->get_val() : NULL);
+  if (vn_valst == NULL) return UPLL_RC_ERR_GENERIC;
+  val_vbr_if_st *vn_val = reinterpret_cast<val_vbr_if_st *>(vn_valst);
+  vn_val->oper_status = UPLL_OPER_STATUS_DOWN;
+  DbSubOp dbop = { kOpNotRead, kOpMatchNone, kOpInOutNone };
+
+  unc_key_type_t ktype = ck_remif->get_key_type();
+  VnodeChildMoMgr *vnode_child_mgr = reinterpret_cast<VnodeChildMoMgr *>
+      (const_cast<MoManager*>(GetMoManager(ktype)));
+  if (!vnode_child_mgr) {
+    DELETE_IF_NOT_NULL(ck_remif);
+    UPLL_LOG_ERROR("Invalid mgr\n");
+    return UPLL_RC_ERR_GENERIC;
+  }
+  result_code = vnode_child_mgr->UpdateConfigDB(ck_remif, UPLL_DT_STATE,
+                                                UNC_OP_UPDATE, dmi,
+                                                &dbop, MAINTBL);
+  if (result_code != UPLL_RC_SUCCESS) {
+    DELETE_IF_NOT_NULL(ck_remif);
+    UPLL_LOG_DEBUG("Errorin Updating OPerStatus");
+    return result_code;
+  }
+  ConfigKeyVal *parent_node = NULL;
+  result_code = vnode_child_mgr->GetParentConfigKey(parent_node, ck_remif);
+  if (result_code != UPLL_RC_SUCCESS) {
+    DELETE_IF_NOT_NULL(ck_remif);
+    UPLL_LOG_DEBUG("Error in retrieving Parent Node Key");
+    return result_code;
+  }
+  unc_key_type_t parent_key_type = parent_node->get_key_type();
+  VnodeMoMgr *vnode_mgr = reinterpret_cast<VnodeMoMgr *>
+      (const_cast<MoManager*>(GetMoManager(parent_key_type)));
+  if (!vnode_mgr) {
+    DELETE_IF_NOT_NULL(ck_remif);
+    DELETE_IF_NOT_NULL(parent_node);
+    UPLL_LOG_ERROR("Invalid mgr\n");
+    return UPLL_RC_ERR_GENERIC;
+  }
+  ConfigVal *cfg_val = NULL;
+  result_code = vnode_mgr->AllocVal(cfg_val, UPLL_DT_STATE, MAINTBL);
+  if (result_code != UPLL_RC_SUCCESS) {
+    DELETE_IF_NOT_NULL(ck_remif);
+    DELETE_IF_NOT_NULL(parent_node);
+    UPLL_LOG_DEBUG("Error in allocating Parent Node cfg val");
+    return result_code;
+  }
+  parent_node->SetCfgVal(cfg_val);
+  ConfigVal *cv_tmp = (parent_node->get_cfg_val()) ?
+      parent_node->get_cfg_val()->get_next_cfg_val() : NULL;
+  val_db_vbr_st *vnode_st = reinterpret_cast<val_db_vbr_st *>
+      ((cv_tmp != NULL) ? cv_tmp->get_val() : NULL);
+  if (vn_valst == NULL) {
+    DELETE_IF_NOT_NULL(ck_remif);
+    DELETE_IF_NOT_NULL(parent_node);
+    return UPLL_RC_ERR_GENERIC;
+  }
+  vnode_st->vbr_val_st.oper_status = UPLL_OPER_STATUS_DOWN;
+  vnode_st->vbr_val_st.valid[0] = UNC_VF_VALID;
+  result_code = vnode_mgr->UpdateConfigDB(parent_node,
+                                          UPLL_DT_STATE,
+                                          UNC_OP_UPDATE,
+                                          dmi,
+                                          &dbop,
+                                          MAINTBL);
+
+  DELETE_IF_NOT_NULL(parent_node);
+  DELETE_IF_NOT_NULL(ck_remif);
+  return result_code;
+}
 }  // namespace kt_momgr
 }  // namespace upll
 }  // namespace unc
index ca16c9e431ee7f1dc7116a83158bf673f3b66328..84dc68aaf79c1ef0d887a98631888a5158b6d774 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -28,254 +28,223 @@ namespace upll {
 namespace kt_momgr {
 
 typedef struct val_db_vbr_if_st {
-        val_vbr_if_st       vbr_if_val_st;
-        uint32_t             down_count;
+  val_vbr_if_st       vbr_if_val_st;
+  uint32_t             down_count;
 } val_db_vbr_if_st_t;
 
 typedef struct val_db_vrt_if_st {
-    val_vrt_if_st vrt_if_val_st;
-    uint32_t down_count;
+  val_vrt_if_st vrt_if_val_st;
+  uint32_t down_count;
 } val_db_vrt_if_st_t;
 
 typedef struct val_db_vtep_if_st {
-    val_vtep_if_st vtep_if_val_st;
-    uint32_t down_count;
+  val_vtep_if_st vtep_if_val_st;
+  uint32_t down_count;
 } val_db_vtep_if_st_t;
 
 typedef struct val_db_vtunnel_if_st {
-    val_vtunnel_if_st vtunnel_if_val_st;
-    uint32_t down_count;
+  val_vtunnel_if_st vtunnel_if_val_st;
+  uint32_t down_count;
 } val_db_vtunnel_if_st_t;
 
 
 
 class VnodeChildMoMgr : public MoMgrImpl {
-    controller_domain cntrl_dom;
-    upll_rc_t RestoreVnode(ConfigKeyVal *ikey, IpcReqRespHeader *req,
-                           DalDmlIntf *dmi);
-    virtual upll_rc_t SetRenameField(ConfigKeyVal *&ikey);
-    virtual upll_rc_t CreateCandidateMo(IpcReqRespHeader *req,
-                                        ConfigKeyVal *ikey, DalDmlIntf *dmi);
-    upll_rc_t GetRenamedKey(ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
-                            DalDmlIntf *dmi, controller_domain *ctrlr_dom,
-                            rename_key flag);
-
-    /* @brief         Read the configuration either from RDBMS and/or from the controller  
-     *              
-     * @param[in]     req    Pointer to IpcResResHeader
-     * @param[in/out] ikey   Pointer to the ConfigKeyVal Structure                    
-     * @param[in]     dmi    Pointer to the DalDmlIntf(DB Interface)
-     * 
-     * @retval  UPLL_RC_SUCCESS                    Completed successfully.
-     * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
-     * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
-     * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
-     * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist 
-     *
-     **/
-    upll_rc_t ReadMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                     DalDmlIntf *dmi);
-
-    /* @brief    Populate val_vtn_neighbor for the READ/READ_SIBLING operations 
-     *              
-     * @param[in/out] key   Pointer to the ConfigKeyVal Structure             
-     * @param[in]     dmi    Pointer to the DalDmlIntf(DB Interface)
-     * 
-     * @retval  UPLL_RC_SUCCESS                    Completed successfully.
-     * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
-     * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
-     * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
-     * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist 
-     *
-     **/
-    upll_rc_t PopulateValVtnNeighbor(ConfigKeyVal *&key,
-                                     DalDmlIntf *dmi);
-
-    /* @brief   Gets the interface type (mapped,boundary,linked,unbound)
-     *          expects the interface key/val to be populated 
-     *              
-     * @param[in]  ck_vnif   Pointer to the ConfigKeyVal Structure             
-     * @param[in]  valid_pm  whether portmap is set to valid  
-     * @param[out] vnif_type type of the interface 
-     * 
-     * @retval  UPLL_RC_SUCCESS      Completed successfully.
-     * @retval  UPLL_RC_ERR_GENERIC  Generic failure.
-     * 
-     **/ 
-    upll_rc_t GetInterfaceType(ConfigKeyVal *ck_vnif,
-                               uint8_t valid_pm,
-                               if_type &vnif_type ) ; 
-
-  protected:
-    ConfigKeyVal *parent_ck_vnode;
-    uint32_t cur_instance_count;
-
-   /**
-    * @brief  Update parent oper status on delete for Transaction commit
-    *
-    * @param[in]  ikey          ConfigKeyVal instance
-    * @param[in]   dmi           Database connection parameter
-
-    * @retval  UPLL_RC_SUCCESS      Completed successfully.
-    * @retval  UPLL_RC_ERR_GENERIC  Generic failure.
-    */
-    virtual upll_rc_t UpdateParentOperStatus(ConfigKeyVal *ikey,
-                                             DalDmlIntf *dmi);
-   
-    /* @brief      Returns portmap information if portmap is valid 
-     *             Else returns NULL for portmap 
-     *              
-     * @param[in]   ikey     Pointer to ConfigKeyVal
-     * @param[out]  valid_pm portmap is valid 
-     * @param[out]  pm       pointer to portmap informtation if valid_pm
-     *
-     * @retval  UPLL_RC_SUCCESS      Completed successfully.
-     * @retval  UPLL_RC_ERR_GENERIC  Generic failure.
-     * 
-     **/ 
-    virtual upll_rc_t GetPortMap(ConfigKeyVal *ikey, uint8_t &valid_pm,
-                                val_port_map_t *&pm, uint8_t &valid_admin,
-                                uint8_t &admin_status) {
-      return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT;
-    }
-
-    virtual upll_rc_t CreateAuditMoImpl(ConfigKeyVal *ikey,
-                                        DalDmlIntf *dmi,
-                                        const char *ctrlr_id);
-    upll_rc_t SwapKeyVal(ConfigKeyVal *ikey, ConfigKeyVal *&okey,
-                         DalDmlIntf *dmi, uint8_t *ctrlr) {
-      return UPLL_RC_ERR_NO_SUCH_OPERATION;
-    }
-    template<typename T1, typename T2>
-    upll_rc_t SetOperStatus(ConfigKeyVal *ikey,
-                       state_notification &notification,
-                       DalDmlIntf *dmi, alarm_status &oper_change = ALARM_NOT_SET);
-
-     /**
-     * @brief          Enqueues oper status notifications
-     *
-     * @param[in]      ikey    pointer to the configkeyval with
-     *                 the changed oper status
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    bool  EnqueOperStatusNotification(ConfigKeyVal *ikey, bool oper_change);
-
-    /* @brief      Retrieve oper status of logical portid from physical  
-     *              
-     * @param[in]  pm            pointer to portmap structure
-     * @param[in]  ctr_domain    holds pointers to controller and domain id
-     * @param[in]  logical_port_operStatus operstatus of logical port 
-     * @param[in]  session_id   transaction session id
-     * @param[in]  config_id    transaction config id
-     *
-     * @retval  UPLL_RC_SUCCESS      Completed successfully.
-     * @retval  UPLL_RC_ERR_GENERIC  Generic failure.
-     * 
-     **/ 
-    upll_rc_t GetPortStatusFromPhysical(val_port_map_t *pm,
-                                       controller_domain_t ctr_domain,
-                                       val_oper_status &logical_port_operStatus,
-                                       uint32_t session_id,
-                                       uint32_t config_id) ;
+  controller_domain cntrl_dom;
+  upll_rc_t RestoreVnode(ConfigKeyVal *ikey, IpcReqRespHeader *req,
+                         DalDmlIntf *dmi, bool restore_flag);
+  virtual upll_rc_t SetRenameField(ConfigKeyVal *&ikey);
+  upll_rc_t GetRenamedKey(ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
+                          DalDmlIntf *dmi, controller_domain *ctrlr_dom,
+                          rename_key flag);
+
+  /* @brief         Read the configuration either from RDBMS and/or from the controller
+   *
+   * @param[in]     req    Pointer to IpcResResHeader
+   * @param[in/out] ikey   Pointer to the ConfigKeyVal Structure
+   * @param[in]     dmi    Pointer to the DalDmlIntf(DB Interface)
+   *
+   * @retval  UPLL_RC_SUCCESS                    Completed successfully.
+   * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
+   * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
+   * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
+   * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist
+   *
+   **/
+  upll_rc_t ReadMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
+                   DalDmlIntf *dmi);
+
+  /* @brief    Populate val_vtn_neighbor for the READ/READ_SIBLING operations
+   *
+   * @param[in/out] key   Pointer to the ConfigKeyVal Structure
+   * @param[in]     dmi    Pointer to the DalDmlIntf(DB Interface)
+   *
+   * @retval  UPLL_RC_SUCCESS                    Completed successfully.
+   * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
+   * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
+   * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
+   * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist
+   *
+   **/
+  upll_rc_t PopulateValVtnNeighbor(ConfigKeyVal *&key,
+                                   DalDmlIntf *dmi);
+
+ protected:
+  ConfigKeyVal *parent_ck_vnode;
+
+  /**
+   * @brief  Update parent oper status on delete for Transaction commit
+   *
+   * @param[in]  ikey          ConfigKeyVal instance
+   * @param[in]   dmi           Database connection parameter
+
+   * @retval  UPLL_RC_SUCCESS      Completed successfully.
+   * @retval  UPLL_RC_ERR_GENERIC  Generic failure.
+   */
+  virtual upll_rc_t UpdateParentOperStatus(ConfigKeyVal *ikey,
+                                           DalDmlIntf *dmi);
+
+
+  virtual upll_rc_t CreateAuditMoImpl(ConfigKeyVal *ikey,
+                                      DalDmlIntf *dmi,
+                                      const char *ctrlr_id);
+  upll_rc_t SwapKeyVal(ConfigKeyVal *ikey, ConfigKeyVal *&okey,
+                       DalDmlIntf *dmi, uint8_t *ctrlr) {
+    return UPLL_RC_ERR_NO_SUCH_OPERATION;
+  }
+  template<typename T1, typename T2>
+upll_rc_t SetOperStatus(ConfigKeyVal *ikey,
+                        state_notification &notification,
+                        DalDmlIntf *dmi, alarm_status &oper_change =
+                        ALARM_NOT_SET);
+
+  /**
+   * @brief          Enqueues oper status notifications
+   *
+   * @param[in]      ikey    pointer to the configkeyval with
+   *                 the changed oper status
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  bool  EnqueOperStatusNotification(ConfigKeyVal *ikey, bool oper_change);
+
+  /* @brief      Retrieve oper status of logical portid from physical
+   *
+   * @param[in]  pm            pointer to portmap structure
+   * @param[in]  ctr_domain    holds pointers to controller and domain id
+   * @param[in]  logical_port_operStatus operstatus of logical port
+   * @param[in]  session_id   transaction session id
+   * @param[in]  config_id    transaction config id
+   *
+   * @retval  UPLL_RC_SUCCESS      Completed successfully.
+   * @retval  UPLL_RC_ERR_GENERIC  Generic failure.
+   *
+   **/
+  upll_rc_t GetPortStatusFromPhysical(val_port_map_t *pm,
+                                      controller_domain_t ctr_domain,
+                                      val_oper_status &logical_port_operStatus,
+                                      uint32_t session_id,
+                                      uint32_t config_id);
 #if 0
-    /* @brief      Gets ports with uninitialized oper status 
-     *             - ports whose status have to be obtained from physical
-     *              
-     * @param[out]  ikey     Pointer to a list of configkeyvals 
-     * @param[in]   dmi      Database connection parameter
-     *
-     * @retval  UPLL_RC_SUCCESS      Completed successfully.
-     * @retval  UPLL_RC_ERR_GENERIC  Generic failure.
-     * 
-     **/ 
-    template<typename T1,typename T2>
-    upll_rc_t GetUninitOperState(ConfigKeyVal *&ck_vn, DalDmlIntf *dmi);
+  /* @brief      Gets ports with uninitialized oper status
+   *             - ports whose status have to be obtained from physical
+   *
+   * @param[out]  ikey     Pointer to a list of configkeyvals
+   * @param[in]   dmi      Database connection parameter
+   *
+   * @retval  UPLL_RC_SUCCESS      Completed successfully.
+   * @retval  UPLL_RC_ERR_GENERIC  Generic failure.
+   *
+   **/
+  template<typename T1, typename T2>
+upll_rc_t GetUninitOperState(ConfigKeyVal *&ck_vn, DalDmlIntf *dmi);
 #endif
 
-    /* @brief   Initializes the oper status on configuring the object
-     *          
-     *              
-     * @param[in]  ikey         Pointer to the ConfigKeyVal Structure           
-     * @param[in]  valid_admin  valid flag corresponding to admin field
-     * @param[in]  admin_status admin field of value structure
-     * @param[in]  valid_pm     valid flag corresponding to portmap field
-     * @param[in]  pm           pointer to portmap field if applicable
-     *
-     * @retval  UPLL_RC_SUCCESS      Completed successfully.
-     * @retval  UPLL_RC_ERR_GENERIC  Generic failure.
-     * 
-     **/ 
-   template<typename T1, typename T2>
-   upll_rc_t InitOperStatus(ConfigKeyVal *ikey,
-                            uint8_t valid_admin,
-                            uint8_t admin_status, 
-                            uint8_t valid_pm,
-                            val_port_map_t *pm = NULL);
-  public:
-    VnodeChildMoMgr() {
-      parent_ck_vnode = NULL;
-      cur_instance_count = 0;
-      memset(&cntrl_dom, 0, sizeof(controller_domain));
-    }
-    virtual ~VnodeChildMoMgr() {
-      if (parent_ck_vnode) delete parent_ck_vnode;
-      parent_ck_vnode = NULL;
-    }
-
-    /* @brief      Called by configmgr to update state information 
-     *             for mapped interfaces 
-     *              
-     * @param[in]  ktype        keytype 
-     * @param[in]  session_id   transaction session_id
-     * @param[in]  config_id    transaction config_id
-     * @param[in]  dmi          database connection paramter
-     *
-     * @retval  UPLL_RC_SUCCESS      Completed successfully.
-     * @retval  UPLL_RC_ERR_GENERIC  Generic failure.
-     *
-     **/
-    upll_rc_t TxUpdateDtState(unc_key_type_t ktype,
-                              uint32_t session_id,
-                              uint32_t config_id,
-                              DalDmlIntf *dmi);
+  /* @brief   Initializes the oper status on configuring the object
+   *
+   *
+   * @param[in]  ikey         Pointer to the ConfigKeyVal Structure
+   * @param[in]  valid_admin  valid flag corresponding to admin field
+   * @param[in]  admin_status admin field of value structure
+   * @param[in]  valid_pm     valid flag corresponding to portmap field
+   * @param[in]  pm           pointer to portmap field if applicable
+   *
+   * @retval  UPLL_RC_SUCCESS      Completed successfully.
+   * @retval  UPLL_RC_ERR_GENERIC  Generic failure.
+   *
+   **/
+  template<typename T1, typename T2>
+upll_rc_t InitOperStatus(ConfigKeyVal *ikey,
+                         uint8_t valid_admin,
+                         uint8_t admin_status,
+                         uint8_t valid_pm,
+                         val_port_map_t *pm = NULL);
 
-    upll_rc_t RenameMo(IpcReqRespHeader *req, ConfigKeyVal *key,
-                       DalDmlIntf *dmi, const char *ctrlr_id) {
-      return UPLL_RC_ERR_NO_SUCH_OPERATION;
-    }
-    upll_rc_t GetRenamedUncKey(ConfigKeyVal *ikey,
-                               upll_keytype_datatype_t dt_type, DalDmlIntf *dmi,
-                               uint8_t *ctrlr_id);
-    upll_rc_t GetRenamedControllerKey(ConfigKeyVal *ikey,
-                                      upll_keytype_datatype_t dt_type,
-                                      DalDmlIntf *dmi,
-                                      controller_domain *ctrlr_dom);
-    virtual upll_rc_t GetControllerDomainId(ConfigKeyVal *ck_vbr,
-                                            upll_keytype_datatype_t dt_type,
-                                            controller_domain *ctrlr_dom,
-                                            DalDmlIntf *dmi);
-
-    /**
-     * @Brief Compare if Vtep member ControllerId and VtepGrp ControllerId are same
-     *        If same throw an error
-     *
-     * @param[in] req                       pointer IpcReqResp header
-     * @param[in] ikey                      ikey contains key and value structure.
-     * @param[in] dt_type                   database type
-     * @param[in] dmi                       pointer to DalDmlIntf
-     *
-     * @retval UPLL_RC_SUCCESS                      Successful.
-     * @retval UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT  Operation not allowed
-     * @retval UPLL_RC_ERR_GENERIC          Generic failure.
-     */
-    upll_rc_t CompareContollers(ConfigKeyVal *ikey,
-                                upll_keytype_datatype_t datatye,
-                                DalDmlIntf *dmi);
-    virtual upll_rc_t ConverttoDriverPortMap(ConfigKeyVal *ck_port_map) {
-     return UPLL_RC_ERR_GENERIC;
-   }
+  public
+      :
+      VnodeChildMoMgr() {
+        parent_ck_vnode = NULL;
+        memset(&cntrl_dom, 0, sizeof(controller_domain));
+      }
+  virtual ~VnodeChildMoMgr() {
+    if (parent_ck_vnode) delete parent_ck_vnode;
+    parent_ck_vnode = NULL;
+  }
+
+
+  /* @brief      Called by configmgr to update state information
+   *             for mapped interfaces
+   *
+   * @param[in]  ktype        keytype
+   * @param[in]  session_id   transaction session_id
+   * @param[in]  config_id    transaction config_id
+   * @param[in]  dmi          database connection paramter
+   *
+   * @retval  UPLL_RC_SUCCESS      Completed successfully.
+   * @retval  UPLL_RC_ERR_GENERIC  Generic failure.
+   *
+   **/
+  upll_rc_t TxUpdateDtState(unc_key_type_t ktype,
+                            uint32_t session_id,
+                            uint32_t config_id,
+                            DalDmlIntf *dmi);
+
+  upll_rc_t RenameMo(IpcReqRespHeader *req, ConfigKeyVal *key,
+                     DalDmlIntf *dmi, const char *ctrlr_id) {
+    return UPLL_RC_ERR_NO_SUCH_OPERATION;
+  }
+  upll_rc_t GetRenamedUncKey(ConfigKeyVal *ikey,
+                             upll_keytype_datatype_t dt_type, DalDmlIntf *dmi,
+                             uint8_t *ctrlr_id);
+  upll_rc_t GetRenamedControllerKey(ConfigKeyVal *ikey,
+                                    upll_keytype_datatype_t dt_type,
+                                    DalDmlIntf *dmi,
+                                    controller_domain *ctrlr_dom);
+  virtual upll_rc_t GetControllerDomainId(ConfigKeyVal *ck_vbr,
+                                          upll_keytype_datatype_t dt_type,
+                                          controller_domain *ctrlr_dom,
+                                          DalDmlIntf *dmi);
+
+  /**
+   * @Brief Compare if Vtep member ControllerId and VtepGrp ControllerId are same
+   *        If same throw an error
+   *
+   * @param[in] req                       pointer IpcReqResp header
+   * @param[in] ikey                      ikey contains key and value structure.
+   * @param[in] dt_type                   database type
+   * @param[in] dmi                       pointer to DalDmlIntf
+   *
+   * @retval UPLL_RC_SUCCESS                      Successful.
+   * @retval UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT  Operation not allowed
+   * @retval UPLL_RC_ERR_GENERIC          Generic failure.
+   */
+  upll_rc_t CompareContollers(ConfigKeyVal *ikey,
+                              upll_keytype_datatype_t datatye,
+                              DalDmlIntf *dmi);
+  virtual upll_rc_t ConverttoDriverPortMap(ConfigKeyVal *ck_port_map) {
+    return UPLL_RC_ERR_GENERIC;
+  }
 
   /* @brief         This is semantic check for KEY_VBR_IF key type
    *                in the update operation.
@@ -289,31 +258,64 @@ class VnodeChildMoMgr : public MoMgrImpl {
    *
    **/
 
-   upll_rc_t IsReferenced(ConfigKeyVal *ikey,
+  upll_rc_t IsReferenced(ConfigKeyVal *ikey,
                          upll_keytype_datatype_t dt_type,
                          DalDmlIntf *dmi);
 
-   virtual upll_rc_t SetVlinkPortmapConfiguration(ConfigKeyVal *ikey,
-                                               upll_keytype_datatype_t dt_type,
-                                               DalDmlIntf *dmi,
-                                               InterfacePortMapInfo flag) {
-      return UPLL_RC_ERR_GENERIC;
-   }
-    upll_rc_t UpdateOperStatus(ConfigKeyVal *ikey, 
-                           DalDmlIntf *dmi, 
-                           state_notification notification,
-                           bool skip, bool upd_if, bool upd_remif,
-                           bool save_to_db = false);
-   virtual upll_rc_t GetMappedInterfaces(const key_vnode_type_t &vnode_key,
-                                         DalDmlIntf *dmi,
-                                         ConfigKeyVal *&iokey);
-   virtual upll_rc_t SetLinkedIfOperStatusforPathFault(
-                           const key_vnode_type_t &vnode_key,
-                           state_notification notification,
-                           DalDmlIntf *dmi);
-   virtual upll_rc_t UpdateVnodeIf(ConfigKeyVal *ck_if,
-                           DalDmlIntf *dmi,
-                           state_notification notification);
+  virtual upll_rc_t SetVlinkPortmapConfiguration(
+      ConfigKeyVal *ikey,
+      upll_keytype_datatype_t dt_type,
+      DalDmlIntf *dmi,
+      InterfacePortMapInfo flag) {
+    return UPLL_RC_ERR_GENERIC;
+  }
+  upll_rc_t UpdateOperStatus(ConfigKeyVal *ikey,
+                             DalDmlIntf *dmi,
+                             state_notification notification,
+                             bool skip, bool upd_if, bool upd_remif,
+                             bool save_to_db = false);
+  virtual upll_rc_t GetMappedInterfaces(const key_vnode_type_t &vnode_key,
+                                        DalDmlIntf *dmi,
+                                        ConfigKeyVal *&iokey);
+  virtual upll_rc_t SetLinkedIfOperStatusforPathFault(
+      const key_vnode_type_t &vnode_key,
+      state_notification notification,
+      DalDmlIntf *dmi);
+  virtual upll_rc_t UpdateVnodeIfOperStatus(ConfigKeyVal *ck_if,
+                                            DalDmlIntf *dmi,
+                                            state_notification notification);
+
+  /* VlanmapOnBoundary change */
+  virtual upll_rc_t CreateCandidateMo(IpcReqRespHeader *req,
+                                      ConfigKeyVal *ikey, DalDmlIntf *dmi,
+                                      bool restore_flag = false);
+
+  /* @brief   Gets the interface type (mapped,boundary,linked,unbound)
+   *          expects the interface key/val to be populated
+   *
+   * @param[in]  ck_vnif   Pointer to the ConfigKeyVal Structure
+   * @param[in]  valid_pm  whether portmap is set to valid
+   * @param[out] vnif_type type of the interface
+   *
+   * @retval  UPLL_RC_SUCCESS      Completed successfully.
+   * @retval  UPLL_RC_ERR_GENERIC  Generic failure.
+   *
+   **/
+  upll_rc_t GetInterfaceType(ConfigKeyVal *ck_vnif,
+                             uint8_t valid_pm,
+                             if_type &vnif_type);
+
+  /* @brief   Updates the remote Interface of Internal Vlink on Controller Reconnect
+   *         based on the interface admin status
+   *
+   * @param[in]  ikey      Pointer to the ConfigKeyVal Structure
+   * @param[in]     dmi      Pointer to the DalDmlIntf(DB Interface)
+   *
+   * @retval  UPLL_RC_SUCCESS      Completed successfully.
+   * @retval  UPLL_RC_ERR_GENERIC  Generic failure.
+   *
+   **/
+  upll_rc_t UpdateRemoteVlinkIf(ConfigKeyVal *ikey, DalDmlIntf *dmi);
 };
 
 }  // namespace kt_momgr
index 0f024fc0c68826abea852c610cef81330d148185..eb7b7f71062b3ede461fe71e2dc9fa889b65e10a 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
 #include "vtn_flowfilter_momgr.hh"
 #include "vtn_flowfilter_entry_momgr.hh"
 #include "vtn_policingmap_momgr.hh"
+#include "config_mgr.hh"
+#include "vlanmap_momgr.hh"
+
 namespace unc {
 namespace upll {
 namespace kt_momgr {
 
 upll_rc_t VnodeMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
                                         ConfigKeyVal *ikey,
-                                        DalDmlIntf *dmi) {
+                                        DalDmlIntf *dmi,
+                                        bool restore_flag) {
   UPLL_FUNC_TRACE;
   if (!ikey || !(ikey->get_key()) || !req || !dmi) {
     UPLL_LOG_DEBUG("Cannot perform create operation");
@@ -29,11 +33,12 @@ upll_rc_t VnodeMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
   }
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   controller_domain ctrlr_dom;
-  ConfigKeyVal *temp_key = NULL;
-  result_code = ValidateMessage(req, ikey);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("ValidateMessage Failed : %d", result_code);
-    return result_code;
+  if (!restore_flag) {
+    result_code = ValidateMessage(req, ikey);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("ValidateMessage Failed : %d", result_code);
+      return result_code;
+    }
   }
   result_code = ValidateAttribute(ikey, dmi, req);
   if (result_code != UPLL_RC_SUCCESS) {
@@ -41,66 +46,22 @@ upll_rc_t VnodeMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
     return result_code;
   }
 
-  // Parent VTN check
-  result_code = GetParentConfigKey(parent_ck_vtn, ikey);
-  if (result_code == UPLL_RC_ERR_GENERIC) {
-    UPLL_LOG_DEBUG(
-        "Error in retrieving the parent VTN ConfigKeyVal. Error code : %d",
-        result_code);
-    return result_code;
-  }
-  MoMgrImpl *mgr =
-      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
-                    (const_cast<MoManager*>(GetMoManager(UNC_KT_VTN))));
-  if (!mgr) {
-    UPLL_LOG_DEBUG("Invalid Mgr");
-    DELETE_IF_NOT_NULL(parent_ck_vtn);
-    return UPLL_RC_ERR_GENERIC;
-  }
-  result_code = mgr->UpdateConfigDB(parent_ck_vtn, req->datatype, UNC_OP_READ,
-                                    dmi, MAINTBL);
-  if (result_code != UPLL_RC_ERR_INSTANCE_EXISTS) {
-    UPLL_LOG_DEBUG("VTN doesn't exist in CANDIDATE DB. Error code : %d",
-                   result_code);
-    DELETE_IF_NOT_NULL(parent_ck_vtn);
-    return UPLL_RC_ERR_PARENT_DOES_NOT_EXIST;
-  }
-  DELETE_IF_NOT_NULL(parent_ck_vtn);
-
   UPLL_LOG_DEBUG("ikey keytype %d", ikey->get_key_type());
-  // Vnode Existence check in CANDIDATE DB
+  //  Vnode Existence check in CANDIDATE DB
   result_code = VnodeChecks(ikey, req->datatype, dmi);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG(
-         "Another Vnode with the same name already exists. Error code : %d",
-         result_code);
+        "Another Vnode with the same name already exists. Error code : %d",
+        result_code);
     return result_code;
   }
 
-  // check for key support on controller and max count
+  //  check for key support on controller and max count
   result_code = GetControllerDomainId(ikey, &ctrlr_dom);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("GetControllerDomainId Failed");
     return result_code;
   }
-  result_code = GetChildConfigKey(temp_key, NULL);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("GetChildConfigKey Failed");
-    return result_code;
-  }
-
-  result_code = GetInstanceCount(temp_key,
-                                 reinterpret_cast<char *>(ctrlr_dom.ctrlr),
-                                 req->datatype, &cur_instance_count, dmi,
-                                 MAINTBL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_INFO("GetInstanceCount error %d", result_code);
-      if (temp_key)
-        delete temp_key;
-      return UPLL_RC_ERR_GENERIC;
-    }
-    if (temp_key)
-      delete temp_key;
 
   result_code = ValidateCapability(req, ikey);
   if (result_code != UPLL_RC_SUCCESS) {
@@ -108,13 +69,13 @@ upll_rc_t VnodeMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
     return result_code;
   }
 
-  result_code = RestoreVnode(ikey, req, dmi, &ctrlr_dom);
+  result_code = RestoreVnode(ikey, req, dmi, &ctrlr_dom, restore_flag);
   return result_code;
 }
 
 upll_rc_t VnodeMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
-                                   DalDmlIntf *dmi,
-                                   const char *ctrlr_id) {
+                                        DalDmlIntf *dmi,
+                                        const char *ctrlr_id) {
   UPLL_FUNC_TRACE;
   if (!ikey || !(ikey->get_key()) || !dmi) {
     UPLL_LOG_DEBUG("Cannot perform create operation");
@@ -123,14 +84,15 @@ upll_rc_t VnodeMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   controller_domain ctrlr_dom;
   uint8_t *controller_id = reinterpret_cast<uint8_t *>(
-                                 const_cast<char *>(ctrlr_id));
+      const_cast<char *>(ctrlr_id));
 
   /* check if object is renamed in the corresponding Rename Tbl
    * if "renamed"  create the object by the UNC name.
    * else - create using the controller name.
    */
   result_code = GetRenamedUncKey(ikey, UPLL_DT_RUNNING, dmi, controller_id);
-  if (result_code != UPLL_RC_SUCCESS && result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+  if (result_code != UPLL_RC_SUCCESS && result_code !=
+      UPLL_RC_ERR_NO_SUCH_INSTANCE) {
     UPLL_LOG_DEBUG("GetRenamedUncKey Failed err_code %d", result_code);
     return result_code;
   }
@@ -142,10 +104,10 @@ upll_rc_t VnodeMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
     return result_code;
   }
   DbSubOp dbop = { kOpNotRead, kOpMatchNone, kOpInOutFlag | kOpInOutDomain
-                       | kOpInOutCtrlr };
+    | kOpInOutCtrlr };
   SET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
   result_code = UpdateConfigDB(ikey, UPLL_DT_AUDIT, UNC_OP_CREATE,
-                 dmi, &dbop, MAINTBL);
+                               dmi, &dbop, MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("Record Creation failed in CANDIDATE DB");
     return result_code;
@@ -160,13 +122,13 @@ upll_rc_t VnodeMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
   result_code = CheckVtnExistenceOnController(ikey, &req, &ctrlr_dom, dmi);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("VTN doesn't exist on controller");
-    return result_code; 
+    return result_code;
   }
   return result_code;
 }
 
 upll_rc_t VnodeMoMgr::CtrlrTypeAndDomainCheck(ConfigKeyVal *ikey,
-                      IpcReqRespHeader *req) {
+                                              IpcReqRespHeader *req) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   controller_domain ctrlr_dom;
@@ -180,7 +142,9 @@ upll_rc_t VnodeMoMgr::CtrlrTypeAndDomainCheck(ConfigKeyVal *ikey,
   unc_keytype_ctrtype_t ctrlrtype;
   uuc::CtrlrMgr *ctrlr_mgr = uuc::CtrlrMgr::GetInstance();
   if (!ctrlr_mgr->GetCtrlrType(
-        reinterpret_cast<char *>(ctrlr_dom.ctrlr), req->datatype, &ctrlrtype)) {
+          reinterpret_cast<char *>(ctrlr_dom.ctrlr),
+          req->datatype,
+          &ctrlrtype)) {
     UPLL_LOG_DEBUG("Specified Controller Doesn't Exist");
     return UPLL_RC_ERR_CFG_SEMANTIC;
   }
@@ -196,8 +160,15 @@ upll_rc_t VnodeMoMgr::ValidateAttribute(ConfigKeyVal *ikey, DalDmlIntf *dmi,
   if (req->operation == UNC_OP_UPDATE) {
     ConfigKeyVal *okey = NULL;
     result_code = GetChildConfigKey(okey, ikey);
-    DbSubOp dbop = {kOpReadSingle, kOpMatchNone, kOpInOutCtrlr | kOpInOutDomain | kOpInOutFlag};
-    result_code = ReadConfigDB(okey, req->datatype, UNC_OP_READ, dbop, dmi, MAINTBL);
+    DbSubOp dbop = {kOpReadSingle,
+      kOpMatchNone,
+      kOpInOutCtrlr | kOpInOutDomain | kOpInOutFlag};
+    result_code = ReadConfigDB(okey,
+                               req->datatype,
+                               UNC_OP_READ,
+                               dbop,
+                               dmi,
+                               MAINTBL);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_ERROR("Record does Not Exists");
       delete okey;
@@ -212,31 +183,32 @@ upll_rc_t VnodeMoMgr::ValidateAttribute(ConfigKeyVal *ikey, DalDmlIntf *dmi,
     }
     result_code = CtrlrTypeAndDomainCheck(okey, req);
     delete okey;
-    } else {
-      result_code = CtrlrTypeAndDomainCheck(ikey, req);
-    }
-    if (UPLL_RC_SUCCESS  != result_code) {
-      UPLL_LOG_ERROR("Controller type and domain check failed");
-      return result_code;
-    }
-  //* other semantic validations *//
+  } else {
+    result_code = CtrlrTypeAndDomainCheck(ikey, req);
+  }
+  if (UPLL_RC_SUCCESS  != result_code) {
+    UPLL_LOG_ERROR("Controller type and domain check failed");
+    return result_code;
+  }
+  // * other semantic validations *//
   if (ikey->get_key_type() == UNC_KT_VBRIDGE) {
     result_code = IsHostAddrAndPrefixLenInUse(ikey, dmi, req);
   }
-  //Commented for #403
+  // Commented for #403
   /*if (ikey->get_key_type() == UNC_KT_VROUTER) {
     result_code = EnableAdminStatus(ikey, dmi, req);
     if (result_code != UPLL_RC_ERR_CFG_SEMANTIC) {
-      return UPLL_RC_SUCCESS;
+    return UPLL_RC_SUCCESS;
     }
-  }*/
+    }*/
   return result_code;
 }
 
 upll_rc_t VnodeMoMgr::RestoreVnode(ConfigKeyVal *ikey,
                                    IpcReqRespHeader *req,
                                    DalDmlIntf *dmi,
-                                   controller_domain_t *ctrlr_dom) {
+                                   controller_domain_t *ctrlr_dom,
+                                   bool restore_flag) {
   UPLL_FUNC_TRACE;
   if (ikey == NULL || dmi == NULL) {
     UPLL_LOG_DEBUG("Create error due to insufficient parameters");
@@ -248,35 +220,74 @@ upll_rc_t VnodeMoMgr::RestoreVnode(ConfigKeyVal *ikey,
    ** if exists : restore to CANDIDATE DB
    ** else : validate the attributes
    */
-  if (UPLL_DT_CANDIDATE  == req->datatype) {
+  if (!restore_flag) {
+    if (UPLL_DT_CANDIDATE == req->datatype) {
       result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dmi,
-                                       MAINTBL);
-    if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
-      result_code = RestoreChildren(ikey, req->datatype, UPLL_DT_RUNNING, dmi);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("Restoring children failed. Error code : %d", result_code);
-        return UPLL_RC_ERR_GENERIC;
-      }
-      if (key_type == UNC_KT_VBRIDGE || key_type == UNC_KT_VROUTER ||
-          key_type == UNC_KT_VTEP || key_type == UNC_KT_VTUNNEL
-                                  || key_type == UNC_KT_VTEP_GRP) {
-        /* check if controller is aware of parent VTN
-         ** and create an entry in VtnCtrlrTbl on failure
-         */
-        result_code = CheckVtnExistenceOnController(ikey, req, ctrlr_dom, dmi);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("VTN doesn't exist on controller");
+                                   MAINTBL);
+      if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
+        UPLL_LOG_DEBUG("Key instance exist");
+        if ((ikey)->get_cfg_val()) {
+          UPLL_LOG_DEBUG("Read Key with Value struct");
+          switch (ikey->get_key_type()) {
+            case UNC_KT_VROUTER: {
+              val_vrt *vrt_val = reinterpret_cast<val_vrt *>
+                  (GetVal(ikey));
+              if (vrt_val != NULL) {
+                vrt_val->valid[UPLL_IDX_DHCP_RELAY_ADMIN_STATUS_VRT] =
+                    UNC_VF_INVALID;
+              }
+            }
+            break;
+            case UNC_KT_VLINK: {
+              val_vlink_t *vlink_val = reinterpret_cast<val_vlink_t *>
+                  (GetVal(ikey));
+              if (vlink_val != NULL) {
+                vlink_val->valid[UPLL_IDX_ADMIN_STATUS_VLNK] = UNC_VF_INVALID;
+              }
+            }
+            break;
+            default:
+            UPLL_LOG_DEBUG("Other vnode child keytypes");
+          }
+          DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
+            kOpInOutFlag | kOpInOutCtrlr | kOpInOutDomain };
+          result_code = ReadConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dbop,
+                                     dmi, MAINTBL);
+          if (UPLL_RC_SUCCESS != result_code &&
+              UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+            UPLL_LOG_DEBUG("ReadConfigDB Failed %d",  result_code);
+          }
+          if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code)  {
+            return UPLL_RC_ERR_CFG_SEMANTIC;
+          }
+        } else  {
+          result_code = UPLL_RC_SUCCESS;
+        }
+        if (UPLL_RC_SUCCESS == result_code) {
+          result_code = RestoreChildren(ikey,
+                                        req->datatype,
+                                        UPLL_DT_RUNNING,
+                                        dmi,
+                                        req);
+          UPLL_LOG_DEBUG("Restore Children returns %d", result_code);
           return result_code;
         }
+      } else if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+        UPLL_LOG_DEBUG("UpdateConfigDB Failed %d", result_code);
+        return result_code;
       }
-      return result_code;
+    } else {
+      result_code = UPLL_RC_ERR_NO_SUCH_INSTANCE;
     }
+  } else {
+    result_code = UPLL_RC_ERR_NO_SUCH_INSTANCE;
   }
+
   if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE ||
-           UPLL_DT_IMPORT == req->datatype) {
+      UPLL_DT_IMPORT == req->datatype) {
     if (key_type == UNC_KT_VTEP || key_type == UNC_KT_VTUNNEL
         || key_type == UNC_KT_VTEP_GRP) {
-      //  create a record in CANDIDATE DB
+      //   create a record in CANDIDATE DB
       DbSubOp dbop = { kOpReadExist, kOpMatchNone, kOpInOutFlag };
       result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_CREATE,
                                    dmi, &dbop, MAINTBL);
@@ -300,22 +311,24 @@ upll_rc_t VnodeMoMgr::RestoreVnode(ConfigKeyVal *ikey,
   /* check if any UNC vtn is renamed as this VTN on the given Controller
    ** if so : throw an error
    */
-  if (UPLL_DT_CANDIDATE == req->datatype ) {
-    if (ikey->get_key_type() != UNC_KT_VLINK) {
-      result_code = CheckRenamedVtnName(ikey, req->datatype, ctrlr_dom, dmi);
-    if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-      if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
-        UPLL_LOG_DEBUG("Specified VTN is already on controller");
-        return UPLL_RC_SUCCESS;
-      } else {
-        UPLL_LOG_DEBUG("Error in Reading DB %d", result_code);
-        return result_code;
-      }
+  if (!restore_flag) {
+    if (UPLL_DT_CANDIDATE == req->datatype) {
+      if (ikey->get_key_type() != UNC_KT_VLINK) {
+        result_code = CheckRenamedVtnName(ikey, req->datatype, ctrlr_dom, dmi);
+        if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+          if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
+            UPLL_LOG_DEBUG("Specified VTN is already on controller");
+            return UPLL_RC_SUCCESS;
+          } else {
+            UPLL_LOG_DEBUG("Error in Reading DB %d", result_code);
+            return result_code;
+          }
+        }
       }
     }
   }
   /* set the controller domain in the ikey */
-  // SET_USER_DATA_CTRLR_DOMAIN(ikey, *ctrlr_dom);
+  //  SET_USER_DATA_CTRLR_DOMAIN(ikey, *ctrlr_dom);
 
 #if 0
   if (ikey->get_key_type() == UNC_KT_VLINK) {
@@ -323,9 +336,9 @@ upll_rc_t VnodeMoMgr::RestoreVnode(ConfigKeyVal *ikey,
     SET_USER_DATA_CTRLR_DOMAIN(ikey->get_cfg_val(), ctrlr_dom[1]);
   }
 #endif
-  // create a record in CANDIDATE DB
+  //  create a record in CANDIDATE DB
   DbSubOp dbop = { kOpNotRead, kOpMatchNone, kOpInOutFlag | kOpInOutDomain
-                       | kOpInOutCtrlr };
+    | kOpInOutCtrlr };
   result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_CREATE, dmi, &dbop,
                                MAINTBL);
 
@@ -344,19 +357,20 @@ upll_rc_t VnodeMoMgr::RestoreVnode(ConfigKeyVal *ikey,
       return result_code;
     }
   }
-  // TODO (karthi) moved here, because after creating the vnode
+  // TODO(karthi): moved here, because after creating the vnode
   // we need to set the rename flag.
 
   /* If parent VTN is renamed, set the renamed flag in Vnode
    ** and create an entry in vnode rename table if VTN is renamed
    */
+  if (!restore_flag) {
     if (UPLL_DT_IMPORT != req->datatype) {
       result_code = SetVnodeRenameFlag(ikey, req->datatype, ctrlr_dom, dmi);
       if (result_code != UPLL_RC_SUCCESS) {
         return result_code;
       }
     }
-
+  }
   return result_code;
 }
 
@@ -378,7 +392,8 @@ upll_rc_t VnodeMoMgr::CheckRenamedVtnName(ConfigKeyVal *ikey,
 
   MoMgrImpl *mgr =
       reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
-                    (const_cast<MoManager*>(GetMoManager(UNC_KT_VTN))));
+                                    (const_cast<MoManager*>
+                                     (GetMoManager(UNC_KT_VTN))));
   if (!mgr) {
     UPLL_LOG_DEBUG("Invalid Mgr");
     delete vtn_key;
@@ -405,7 +420,8 @@ upll_rc_t VnodeMoMgr::SetVnodeRenameFlag(ConfigKeyVal *&ikey,
   /*Check if parent vtn renamed and get the renamed name */
   MoMgrImpl *mgr =
       reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
-                (const_cast<MoManager*>(GetMoManager(UNC_KT_VTN))));
+                                    (const_cast<MoManager*>(
+                                            GetMoManager(UNC_KT_VTN))));
   if (!mgr) {
     UPLL_LOG_DEBUG("Invalid Mgr");
     return UPLL_RC_ERR_GENERIC;
@@ -415,7 +431,7 @@ upll_rc_t VnodeMoMgr::SetVnodeRenameFlag(ConfigKeyVal *&ikey,
     UPLL_LOG_DEBUG("GetParentConfigKey Failed");
     return result_code;
   }
-  // SET_USER_DATA_CTRLR_DOMAIN(parent_ck_vtn, *ctrlr_dom);
+  //  SET_USER_DATA_CTRLR_DOMAIN(parent_ck_vtn, *ctrlr_dom);
   UPLL_LOG_DEBUG("ctrlr dom %p %p %p\n", ctrlr_dom->ctrlr, ctrlr_dom->domain,
                  ikey->get_user_data());
   UPLL_LOG_DEBUG("%p %p %p %p \n", parent_ck_vtn, ikey, ikey->get_user_data(),
@@ -425,7 +441,7 @@ upll_rc_t VnodeMoMgr::SetVnodeRenameFlag(ConfigKeyVal *&ikey,
   if (result_code != UPLL_RC_SUCCESS) {
     DELETE_IF_NOT_NULL(parent_ck_vtn);
     UPLL_LOG_DEBUG("GetRenamedControllerKey failed. Result : %d",
-                          result_code);
+                   result_code);
     return result_code;
   }
   int rename = 0;
@@ -435,28 +451,31 @@ upll_rc_t VnodeMoMgr::SetVnodeRenameFlag(ConfigKeyVal *&ikey,
     return UPLL_RC_SUCCESS;
   }
   // create entry in Vnode Rename Table-parent_ck_vtn contains the renamed name
// TODO (karthi) Here removed CreateVnodeRenameEntry and combined
 // TODO(karthi): Here removed CreateVnodeRenameEntry and combined
   GetVnodeName(ikey, temp_vtn_name, temp_vnode_name);
   if (temp_vtn_name == NULL || temp_vnode_name == NULL)
     return UPLL_RC_ERR_GENERIC;
   key_vnode* key_rename_vnode = reinterpret_cast<key_vnode*>
-                                (ConfigKeyVal::Malloc(sizeof(key_vnode)));
+      (ConfigKeyVal::Malloc(sizeof(key_vnode)));
   uuu::upll_strncpy(key_rename_vnode->vtn_key.vtn_name,
-         temp_vtn_name, (kMaxLenVtnName+1) );
+                    temp_vtn_name, (kMaxLenVtnName+1) );
   uuu::upll_strncpy(key_rename_vnode->vnode_name,
                     temp_vnode_name, (kMaxLenVnodeName+1));
 
   val_rename_vnode_t* val_rename_vnode = reinterpret_cast<val_rename_vnode_t*>
-                            (ConfigKeyVal::Malloc(sizeof(val_rename_vnode_t)));
+      (ConfigKeyVal::Malloc(sizeof(val_rename_vnode_t)));
   uuu::upll_strncpy(val_rename_vnode->ctrlr_vtn_name,
-                   reinterpret_cast<key_vtn_t*>(parent_ck_vtn->get_key())->vtn_name,
-                   (kMaxLenVtnName+1));
+                    reinterpret_cast<key_vtn_t*>
+                    (parent_ck_vtn->get_key())->vtn_name,
+                    (kMaxLenVtnName+1));
   uuu::upll_strncpy(val_rename_vnode->ctrlr_vnode_name,
                     temp_vnode_name, (kMaxLenVnodeName+1));
 
   ck_rename_vnode = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcInvalidStNum,
                                      key_rename_vnode,
-                   new ConfigVal(IpctSt::kIpcInvalidStNum, val_rename_vnode));
+                                     new ConfigVal(
+                                         IpctSt::kIpcInvalidStNum,
+                                         val_rename_vnode));
 
   val_rename_vnode->valid[UPLL_CTRLR_VTN_NAME_VALID] = UNC_VF_VALID;
   val_rename_vnode->valid[UPLL_CTRLR_VNODE_NAME_VALID] = UNC_VF_VALID;
@@ -466,9 +485,13 @@ upll_rc_t VnodeMoMgr::SetVnodeRenameFlag(ConfigKeyVal *&ikey,
   /* Create the Entry in Vnode rename table for vbr and vrt
    * Vlink rename table for vlink key type */
 
-  result_code = UpdateConfigDB(ck_rename_vnode, dt_type, UNC_OP_CREATE, dmi, &dbop,
+  result_code = UpdateConfigDB(ck_rename_vnode,
+                               dt_type,
+                               UNC_OP_CREATE,
+                               dmi,
+                               &dbop,
                                RENAMETBL);
-//  SET_USER_DATA_CTRLR(ck_rename_vnode, ctrlr_id);
+  //   SET_USER_DATA_CTRLR(ck_rename_vnode, ctrlr_id);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("Record Creation failed in %d", result_code);
     DELETE_IF_NOT_NULL(parent_ck_vtn);
@@ -476,7 +499,7 @@ upll_rc_t VnodeMoMgr::SetVnodeRenameFlag(ConfigKeyVal *&ikey,
     return result_code;
   }
   /* Update the Rename Flag for vnode in the main table */
-  DELETE_IF_NOT_NULL (ck_rename_vnode);
+  DELETE_IF_NOT_NULL(ck_rename_vnode);
   rename = 0;
   GET_USER_DATA_FLAGS(ikey, rename);
   rename |= VTN_RENAME;
@@ -490,10 +513,10 @@ upll_rc_t VnodeMoMgr::SetVnodeRenameFlag(ConfigKeyVal *&ikey,
 }
 
 upll_rc_t VnodeMoMgr::CheckVtnExistenceOnController(
-                                      ConfigKeyVal *ikey,
-                                      IpcReqRespHeader *req,
-                                      controller_domain *ctrlr_dom,
-                                      DalDmlIntf *dmi) {
+    ConfigKeyVal *ikey,
+    IpcReqRespHeader *req,
+    controller_domain *ctrlr_dom,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   if (ikey == NULL || dmi == NULL || ctrlr_dom == NULL) {
     UPLL_LOG_ERROR("Create error due to insufficient parameters");
@@ -512,15 +535,15 @@ upll_rc_t VnodeMoMgr::CheckVtnExistenceOnController(
 
   result_code = GetParentConfigKey(ck_domain_vtn, ikey);
   if (result_code != UPLL_RC_SUCCESS) {
-     DELETE_IF_NOT_NULL(ck_vtn_cntrlr);
-     return result_code;
+    DELETE_IF_NOT_NULL(ck_vtn_cntrlr);
+    return result_code;
   }
 
   /* set the controller -id */
   SET_USER_DATA_CTRLR_DOMAIN(ck_vtn_cntrlr, *ctrlr_dom);
   MoMgrImpl *mgr =
       reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-          UNC_KT_VTN)));
+                  UNC_KT_VTN)));
   if (!mgr) {
     UPLL_LOG_DEBUG("Invalid Mgr");
     DELETE_IF_NOT_NULL(ck_vtn_cntrlr);
@@ -538,52 +561,29 @@ upll_rc_t VnodeMoMgr::CheckVtnExistenceOnController(
   DbSubOp dbop = {kOpReadSingle, kOpMatchNone, kOpInOutNone};
 
   result_code = mgr->ReadConfigDB(ck_vtn, req->datatype, UNC_OP_READ,
-                                    dbop, dmi, MAINTBL);
+                                  dbop, dmi, MAINTBL);
   if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
     UPLL_LOG_DEBUG("ReadConfigDB Failed %d", result_code);
-   DELETE_IF_NOT_NULL(ck_vtn);
-   DELETE_IF_NOT_NULL(ck_vtn_cntrlr);
-   DELETE_IF_NOT_NULL(ck_domain_vtn);
-    return result_code;
-  }
-  val_vtn *vtn_val = reinterpret_cast<val_vtn*>
-                                   (GetVal(ck_vtn));
-  if (!vtn_val) {
-      UPLL_LOG_DEBUG("Invalid param");
-      DELETE_IF_NOT_NULL(ck_vtn);
-      DELETE_IF_NOT_NULL(ck_vtn_cntrlr);
-      DELETE_IF_NOT_NULL(ck_domain_vtn);
-      return UPLL_RC_ERR_GENERIC;
-  }
-  uint8_t valid_vtn_desc = vtn_val->valid[UPLL_IDX_DESC_VTN];
-
-  ConfigKeyVal *temp_key = NULL;
-  result_code = mgr->GetChildConfigKey(temp_key, NULL);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("GetChildConfigKey Failed");
     DELETE_IF_NOT_NULL(ck_vtn);
     DELETE_IF_NOT_NULL(ck_vtn_cntrlr);
     DELETE_IF_NOT_NULL(ck_domain_vtn);
     return result_code;
   }
-  result_code = mgr->GetInstanceCount(temp_key,
-                                 reinterpret_cast<char *>(ctrlr_dom->ctrlr),
-                                 req->datatype, &mgr->cur_instance_count, dmi,
-                                 MAINTBL);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_INFO("GetInstanceCount error %d", result_code);
-    DELETE_IF_NOT_NULL(temp_key);
+  val_vtn *vtn_val = reinterpret_cast<val_vtn*>
+      (GetVal(ck_vtn));
+  if (!vtn_val) {
+    UPLL_LOG_DEBUG("Invalid param");
     DELETE_IF_NOT_NULL(ck_vtn);
     DELETE_IF_NOT_NULL(ck_vtn_cntrlr);
     DELETE_IF_NOT_NULL(ck_domain_vtn);
     return UPLL_RC_ERR_GENERIC;
   }
-  DELETE_IF_NOT_NULL(temp_key);
+  uint8_t valid_vtn_desc = vtn_val->valid[UPLL_IDX_DESC_VTN];
 
   if (req->datatype != UPLL_DT_AUDIT) {
     dt_type = req->datatype;
     result_code = mgr->ValidateCapability(
-    req, ck_vtn, reinterpret_cast<char *>(ctrlr_dom->ctrlr));
+        req, ck_vtn, reinterpret_cast<char *>(ctrlr_dom->ctrlr));
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("ValidateCapability Failed %d", result_code);
       DELETE_IF_NOT_NULL(ck_vtn_cntrlr);
@@ -592,160 +592,168 @@ upll_rc_t VnodeMoMgr::CheckVtnExistenceOnController(
       return result_code;
     }
   } else {
-      dt_type = UPLL_DT_AUDIT;
+    dt_type = UPLL_DT_AUDIT;
   }
 
   dbop.matchop = kOpMatchCtrlr|kOpMatchDomain;
   /*Checks VTN exists on the controller and doamin*/
   result_code = mgr->ReadConfigDB(ck_domain_vtn, req->datatype,
-                              UNC_OP_READ, dbop, dmi, CTRLRTBL);
+                                  UNC_OP_READ, dbop, dmi, CTRLRTBL);
   if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code &&
       UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("ReadConfigDB Failed %d", result_code)
+    UPLL_LOG_DEBUG("ReadConfigDB Failed %d", result_code)
+        DELETE_IF_NOT_NULL(ck_vtn);
+    DELETE_IF_NOT_NULL(ck_vtn_cntrlr);
+    DELETE_IF_NOT_NULL(ck_domain_vtn);
+    return result_code;
+  }
+
+  if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+    dbop.matchop = kOpMatchCtrlr;
+    /* If the vtn exists in controller and not in domain
+     * then we have to rename the vtn name */
+    result_code = mgr->ReadConfigDB(ck_vtn_cntrlr, req->datatype,
+                                    UNC_OP_READ, dbop, dmi, CTRLRTBL);
+    if (UPLL_RC_SUCCESS != result_code &&
+        UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+      UPLL_LOG_DEBUG("ReadConfigDB Failed %d", result_code);
       DELETE_IF_NOT_NULL(ck_vtn);
       DELETE_IF_NOT_NULL(ck_vtn_cntrlr);
       DELETE_IF_NOT_NULL(ck_domain_vtn);
       return result_code;
-  }
-
-  if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-
-      dbop.matchop = kOpMatchCtrlr;
-      /* If the vtn exists in controller and not in domain
-       * then we have to rename the vtn name */
-      result_code = mgr->ReadConfigDB(ck_vtn_cntrlr, req->datatype,
-                              UNC_OP_READ, dbop, dmi, CTRLRTBL);
-      if (UPLL_RC_SUCCESS != result_code &&
-          UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
-        UPLL_LOG_DEBUG("ReadConfigDB Failed %d", result_code);
+    }
+    if (UPLL_RC_SUCCESS == result_code) {
+      /* The VTN name is available in the controller
+       * but not in the domain, so we have to create the new name
+       * for the give vtn */
+      std::string domain = reinterpret_cast<const char*>(ctrlr_dom->domain);
+      std::string vtn_name = reinterpret_cast<const char*>
+          (reinterpret_cast<key_vtn_t*>(
+                  ck_domain_vtn->get_key())->vtn_name);
+      if (strlen(vtn_name.c_str()) >= 10) {
+        vtn_name.assign(vtn_name.c_str(), 10);
+      }
+      struct timeval _timeval;
+      struct timezone _timezone;
+      gettimeofday(&_timeval, &_timezone);
+      /* Renaming the VTN name based on the Time and Micro seconds */
+      std::string vtn_domain_name = vtn_name+"_"+
+          static_cast<std::ostringstream*>(
+              &(std::ostringstream() << _timeval.tv_sec))->str() +
+          static_cast<std::ostringstream*>(
+              &(std::ostringstream() << _timeval.tv_usec) )->str();
+      val_rename_vtn_t* rename_vtn = reinterpret_cast<val_rename_vtn_t*>(
+          ConfigKeyVal::Malloc(sizeof(val_rename_vtn)));
+      uuu::upll_strncpy(rename_vtn->new_name, vtn_domain_name.c_str(),
+                        (kMaxLenVtnName+1));
+      rename_vtn->valid[UPLL_IDX_NEW_NAME_RVTN] = UNC_VF_VALID;
+      ck_vtn->SetCfgVal(new ConfigVal(IpctSt::kIpcStValRenameVtn, rename_vtn));
+      SET_USER_DATA(ck_vtn, ck_domain_vtn);
+      dbop.matchop = kOpMatchNone;
+      dbop.inoutop = kOpInOutCtrlr|kOpInOutDomain;
+      /* Create Entry in Rename Table */
+      result_code = mgr->UpdateConfigDB(ck_vtn, req->datatype,
+                                        UNC_OP_CREATE, dmi, &dbop, RENAMETBL);
+      if (UPLL_RC_SUCCESS != result_code) {
+        UPLL_LOG_DEBUG("UpdateconfigDB failed");
         DELETE_IF_NOT_NULL(ck_vtn);
         DELETE_IF_NOT_NULL(ck_vtn_cntrlr);
         DELETE_IF_NOT_NULL(ck_domain_vtn);
-         return result_code;
-      }
-      if (UPLL_RC_SUCCESS == result_code) {
-          /* The VTN name is available in the controller
-           * but not in the domain, so we have to create the new name
-           * for the give vtn */
-          std::string domain = reinterpret_cast<const char*>(ctrlr_dom->domain);
-          std::string vtn_name = reinterpret_cast<const char*>
-                                 (reinterpret_cast<key_vtn_t*>(
-                                  ck_domain_vtn->get_key())->vtn_name);
-          if (strlen(vtn_name.c_str())>=10) {
-              vtn_name.assign(vtn_name.c_str(), 10);
-          }
-          struct timeval _timeval;
-          struct timezone _timezone;
-          gettimeofday(&_timeval, &_timezone);
-          /* Renaming the VTN name based on the Time and Micro seconds */
-          std::string vtn_domain_name = vtn_name+"_"+
-                                      static_cast<std::ostringstream*>(
-                                      &(std::ostringstream() << _timeval.tv_sec))->str() +
-                                      static_cast<std::ostringstream*>(
-                          &(std::ostringstream() << _timeval.tv_usec) )->str();
-          val_rename_vtn_t* rename_vtn = reinterpret_cast<val_rename_vtn_t*>(
-                                 ConfigKeyVal::Malloc(sizeof(val_rename_vtn)));
-          uuu::upll_strncpy(rename_vtn->new_name, vtn_domain_name.c_str(),
-                           (kMaxLenVtnName+1));
-          rename_vtn->valid[UPLL_IDX_NEW_NAME_RVTN] = UNC_VF_VALID;
-         ck_vtn->SetCfgVal(new ConfigVal(IpctSt::kIpcStValRenameVtn, rename_vtn));
-         SET_USER_DATA(ck_vtn, ck_domain_vtn);
-         dbop.matchop = kOpMatchNone;
-         dbop.inoutop = kOpInOutCtrlr|kOpInOutDomain;
-         /* Create Entry in Rename Table */
-         result_code = mgr->UpdateConfigDB(ck_vtn, req->datatype,
-                                     UNC_OP_CREATE, dmi, &dbop, RENAMETBL);
-         if (UPLL_RC_SUCCESS != result_code) {
-           UPLL_LOG_DEBUG("UpdateconfigDB failed");
-           DELETE_IF_NOT_NULL(ck_vtn);
-           DELETE_IF_NOT_NULL(ck_vtn_cntrlr);
-           DELETE_IF_NOT_NULL(ck_domain_vtn);
-           return result_code;
-         }
-         SET_USER_DATA_FLAGS(ck_domain_vtn, VTN_RENAME);
-         SET_USER_DATA_FLAGS(ck_vtn, VTN_RENAME);
-         ck_vtn->SetCfgVal(NULL);
-         /* UpdateRename Flag In VTN Main Table*/
-         dbop.inoutop = kOpInOutFlag;
-         result_code = mgr->UpdateConfigDB(ck_vtn, req->datatype,
-                                      UNC_OP_UPDATE, dmi, &dbop, MAINTBL);
-         if (UPLL_RC_SUCCESS != result_code) {
-            UPLL_LOG_DEBUG("UpdateconfigDB failed");
-            DELETE_IF_NOT_NULL(ck_vtn);
-            DELETE_IF_NOT_NULL(ck_vtn_cntrlr);
-            DELETE_IF_NOT_NULL(ck_domain_vtn);
-            return result_code;
-         }
-         SET_USER_DATA_FLAGS(ikey, VTN_RENAME);
+        return result_code;
       }
-      ctrlr_val = reinterpret_cast<val_vtn_ctrlr *>
-                                     (GetVal(ck_domain_vtn));
-      if (!ctrlr_val) {
-         UPLL_LOG_DEBUG("Val is empty");
-         DELETE_IF_NOT_NULL(ck_vtn_cntrlr);
-         DELETE_IF_NOT_NULL(ck_domain_vtn);
-         DELETE_IF_NOT_NULL(ck_vtn);
-         return UPLL_RC_ERR_GENERIC;
+      SET_USER_DATA_FLAGS(ck_domain_vtn, VTN_RENAME);
+      SET_USER_DATA_FLAGS(ck_vtn, VTN_RENAME);
+      ck_vtn->SetCfgVal(NULL);
+      /* UpdateRename Flag In VTN Main Table*/
+      dbop.inoutop = kOpInOutFlag;
+      result_code = mgr->UpdateConfigDB(ck_vtn, req->datatype,
+                                        UNC_OP_UPDATE, dmi, &dbop, MAINTBL);
+      if (UPLL_RC_SUCCESS != result_code) {
+        UPLL_LOG_DEBUG("UpdateconfigDB failed");
+        DELETE_IF_NOT_NULL(ck_vtn);
+        DELETE_IF_NOT_NULL(ck_vtn_cntrlr);
+        DELETE_IF_NOT_NULL(ck_domain_vtn);
+        return result_code;
       }
-      ctrlr_val->ref_count = 1;
-      ctrlr_val->down_count = 0;
-      ctrlr_val->flags = 0;
-      ctrlr_val->oper_status = UPLL_OPER_STATUS_UNKNOWN;
-      ctrlr_val->alarm_status = UPLL_ALARM_CLEAR;
-      if (valid_vtn_desc  == UNC_VF_NOT_SUPPORTED)
-         ctrlr_val->cs_attr[0] = UNC_CS_NOT_SUPPORTED ;
-      else if (valid_vtn_desc  == UNC_VF_VALID)
-         ctrlr_val->cs_attr[0] = UNC_CS_NOT_APPLIED ;
-      ctrlr_val->cs_row_status  = UNC_CS_NOT_APPLIED;
-      /* Inform to the POM keytypes for the new entry in vtn controller table*/
-      if (! OVERLAY_KT(ikey->get_key_type())) {
-        result_code = IntimatePOMAboutNewController(ikey, ctrlr_dom,
-                                             dmi, UNC_OP_CREATE, dt_type);
-        if (result_code != UPLL_RC_SUCCESS) {
-           UPLL_LOG_DEBUG("Error in updating POM Manager"
-                    " about the addition of a new Controller");
-          DELETE_IF_NOT_NULL(ck_vtn);
-          DELETE_IF_NOT_NULL(ck_vtn_cntrlr);
-          DELETE_IF_NOT_NULL(ck_domain_vtn);
-          return result_code;
-        }
+      SET_USER_DATA_FLAGS(ikey, VTN_RENAME);
+    }
+    ctrlr_val = reinterpret_cast<val_vtn_ctrlr *>
+        (GetVal(ck_domain_vtn));
+    if (!ctrlr_val) {
+      UPLL_LOG_DEBUG("Val is empty");
+      DELETE_IF_NOT_NULL(ck_vtn_cntrlr);
+      DELETE_IF_NOT_NULL(ck_domain_vtn);
+      DELETE_IF_NOT_NULL(ck_vtn);
+      return UPLL_RC_ERR_GENERIC;
+    }
+    ctrlr_val->ref_count = 1;
+    ctrlr_val->down_count = 0;
+    ctrlr_val->flags = 0;
+    ctrlr_val->oper_status = UPLL_OPER_STATUS_UNKNOWN;
+    ctrlr_val->alarm_status = UPLL_ALARM_CLEAR;
+    if (valid_vtn_desc  == UNC_VF_NOT_SUPPORTED)
+      ctrlr_val->cs_attr[0] = UNC_CS_NOT_SUPPORTED;
+    else if (valid_vtn_desc  == UNC_VF_VALID)
+      ctrlr_val->cs_attr[0] = UNC_CS_NOT_APPLIED;
+    ctrlr_val->cs_row_status  = UNC_CS_NOT_APPLIED;
+    /* Inform to the POM keytypes for the new entry in vtn controller table*/
+    if (!OVERLAY_KT(ikey->get_key_type())) {
+      result_code = IntimatePOMAboutNewController(ikey, ctrlr_dom,
+                                                  dmi, UNC_OP_CREATE, dt_type);
+      if (result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("Error in updating POM Manager"
+                       " about the addition of a new Controller");
+        DELETE_IF_NOT_NULL(ck_vtn);
+        DELETE_IF_NOT_NULL(ck_vtn_cntrlr);
+        DELETE_IF_NOT_NULL(ck_domain_vtn);
+        return result_code;
       }
+    }
     op = UNC_OP_CREATE;
   } else if (UPLL_RC_SUCCESS == result_code) {
-      ctrlr_val = reinterpret_cast<val_vtn_ctrlr *>
-                                     (GetVal(ck_domain_vtn));
-      if (!ctrlr_val) {
-         UPLL_LOG_DEBUG("Val is empty");
-         DELETE_IF_NOT_NULL(ck_vtn_cntrlr);
-         DELETE_IF_NOT_NULL(ck_domain_vtn);
-         DELETE_IF_NOT_NULL(ck_vtn);
-         return UPLL_RC_ERR_GENERIC;
-      }
+    ctrlr_val = reinterpret_cast<val_vtn_ctrlr *>
+        (GetVal(ck_domain_vtn));
+    if (!ctrlr_val) {
+      UPLL_LOG_DEBUG("Val is empty");
+      DELETE_IF_NOT_NULL(ck_vtn_cntrlr);
+      DELETE_IF_NOT_NULL(ck_domain_vtn);
+      DELETE_IF_NOT_NULL(ck_vtn);
+      return UPLL_RC_ERR_GENERIC;
+    }
 
-      ctrlr_val->ref_count++;
-      op = UNC_OP_UPDATE;
+    ctrlr_val->ref_count++;
+    op = UNC_OP_UPDATE;
   }
-  // ck_vtn_cntrlr->SetCfgVal(new ConfigVal(IpctSt::kIpcInvalidStNum, ctrlr_val));
+  //  ck_vtn_cntrlr->SetCfgVal(new ConfigVal(IpctSt::kIpcInvalidStNum,
+  //  ctrlr_val));
   /* Create/Update Entry in Controller Table*/
-  // result_code = mgr->UpdateConfigDB(ck_vtn_cntrlr, req->datatype,
-   result_code = mgr->UpdateConfigDB(ck_domain_vtn, req->datatype,
-                                      op, dmi, CTRLRTBL);
+  //  result_code = mgr->UpdateConfigDB(ck_vtn_cntrlr, req->datatype,
+  result_code = mgr->UpdateConfigDB(ck_domain_vtn, req->datatype,
+                                    op, dmi, CTRLRTBL);
   DELETE_IF_NOT_NULL(ck_vtn);
   DELETE_IF_NOT_NULL(ck_vtn_cntrlr);
   DELETE_IF_NOT_NULL(ck_domain_vtn);
   return result_code;
 }
 
-upll_rc_t VnodeMoMgr::IntimatePOMAboutNewController(ConfigKeyVal *ikey,
-                                        controller_domain *ctrlr_dom,
-                                        DalDmlIntf *dmi,
-                                        unc_keytype_operation_t op,
-                                        upll_keytype_datatype_t dt_type) {
+upll_rc_t VnodeMoMgr::IntimatePOMAboutNewController(
+    ConfigKeyVal *ikey,
+    controller_domain *ctrlr_dom,
+    DalDmlIntf *dmi,
+    unc_keytype_operation_t op,
+    upll_keytype_datatype_t dt_type) {
   UPLL_FUNC_TRACE
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
+      upll_rc_t result_code = UPLL_RC_SUCCESS;
+  /* For Audit case, intimate to POM key type not required
+   * because POM key type ctrlr table are populated before
+   * vnodes creation in audit table
+   */
+  if (dt_type == UPLL_DT_AUDIT) {
+    return result_code;
+  }
   unc_key_type_t pom_keys[] = { UNC_KT_VTN_FLOWFILTER,
-                                UNC_KT_VTN_FLOWFILTER_ENTRY,
-                                UNC_KT_VTN_POLICINGMAP};
+    UNC_KT_VTN_FLOWFILTER_ENTRY,
+    UNC_KT_VTN_POLICINGMAP};
   MoMgrImpl *pom_mgr = NULL;
   uint8_t *vtn_name = (reinterpret_cast<key_vtn*>(ikey->get_key()))->vtn_name;
   if (!vtn_name) return UPLL_RC_ERR_GENERIC;
@@ -756,14 +764,19 @@ upll_rc_t VnodeMoMgr::IntimatePOMAboutNewController(ConfigKeyVal *ikey,
   uint8_t flag = 0;
   GET_USER_DATA_FLAGS(ikey, flag);
   for (uint8_t count = 0; count < npom_mgr; count++) {
-    pom_mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager*>(GetMoManager(
-              pom_keys[count])));
+    pom_mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager*>(
+            GetMoManager(
+                pom_keys[count])));
     if (!pom_mgr) {
       UPLL_LOG_DEBUG("error in fetching MoMgr reference");
       return UPLL_RC_ERR_GENERIC;
     }
     result_code = pom_mgr->UpdateControllerTableForVtn(vtn_name,
-                              ctrlr_dom, op, dt_type, dmi, flag);
+                                                       ctrlr_dom,
+                                                       op,
+                                                       dt_type,
+                                                       dmi,
+                                                       flag);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Failed in Intimating POM module of new controller, %d",
                      result_code);
@@ -786,8 +799,10 @@ upll_rc_t VnodeMoMgr::DeleteMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
    * then value is one,
    */
   DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr | kOpMatchDomain,
-                   kOpInOutNone };
-  DbSubOp dbop1 = { kOpReadSingle, kOpMatchNone, kOpInOutCtrlr|kOpInOutDomain };
+    kOpInOutNone };
+  DbSubOp dbop1 = { kOpReadSingle,
+    kOpMatchNone,
+    kOpInOutCtrlr|kOpInOutDomain };
   ConfigKeyVal *parent_key = NULL;
 
   result_code = GetParentConfigKey(parent_key, ikey);
@@ -806,43 +821,46 @@ upll_rc_t VnodeMoMgr::DeleteMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
     return result_code;
   }
   result_code = ReadConfigDB(ck_vbr, req->datatype, UNC_OP_READ, dbop1,
-                                  dmi, MAINTBL);
+                             dmi, MAINTBL);
   if (result_code == UPLL_RC_SUCCESS)
     result_code = GetControllerDomainId(ck_vbr, &ctrlr_dom);
 
   if ((result_code != UPLL_RC_SUCCESS) || (ctrlr_dom.ctrlr == NULL)
       || (ctrlr_dom.domain == NULL)) {
     UPLL_LOG_INFO("Invalid ctrlr/domain");
-    //DELETE_IF_NOT_NULL(parent_key);
+    // DELETE_IF_NOT_NULL(parent_key);
     return UPLL_RC_ERR_GENERIC;
   }
   UPLL_LOG_TRACE("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
                  ctrlr_dom.domain);
   SET_USER_DATA_CTRLR_DOMAIN(parent_key, ctrlr_dom);
-  // delete ck_vbr;
+  //  delete ck_vbr;
   /* GetReference count from vtn controller table */
   MoMgrImpl *mgr =
       reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-          UNC_KT_VTN)));
+                  UNC_KT_VTN)));
   if (!mgr) {
     UPLL_LOG_DEBUG("Invalid Mgr");
     return UPLL_RC_ERR_GENERIC;
   }
-  dbop.matchop = kOpMatchCtrlr | kOpMatchDomain ;
+  dbop.matchop = kOpMatchCtrlr | kOpMatchDomain;
   result_code = mgr->ReadConfigDB(parent_key, req->datatype, UNC_OP_READ, dbop,
                                   dmi, CTRLRTBL);
   if (UPLL_RC_SUCCESS != result_code) return result_code;
   val_vtn_ctrlr *vtn_st_val = reinterpret_cast<val_vtn_ctrlr *>
-                                   (GetVal(parent_key));
+      (GetVal(parent_key));
   if (!vtn_st_val) {
     UPLL_LOG_DEBUG("Val is empty");
     return UPLL_RC_ERR_GENERIC;
   }
 
   if (1 == vtn_st_val->ref_count) {
-    if (! OVERLAY_KT(ikey->get_key_type())) {
-      result_code = IntimatePOMAboutNewController(parent_key, &ctrlr_dom,
-                                                dmi, UNC_OP_DELETE, req->datatype);
+    if (!OVERLAY_KT(ikey->get_key_type())) {
+      result_code = IntimatePOMAboutNewController(parent_key,
+                                                  &ctrlr_dom,
+                                                  dmi,
+                                                  UNC_OP_DELETE,
+                                                  req->datatype);
       if (UPLL_RC_SUCCESS != result_code) {
         UPLL_LOG_DEBUG("IntimatePOMAboutNewController %d", result_code);
         return result_code;
@@ -856,8 +874,8 @@ upll_rc_t VnodeMoMgr::DeleteMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
     result_code = mgr->UpdateConfigDB(parent_key, req->datatype, UNC_OP_DELETE,
                                       dmi, &dbop,  CTRLRTBL);
     if (UPLL_RC_SUCCESS != result_code) {
-       UPLL_LOG_DEBUG("UpdateconfigDB Failed %d", result_code);
-       return result_code;
+      UPLL_LOG_DEBUG("UpdateconfigDB Failed %d", result_code);
+      return result_code;
     }
     parent_key->SetCfgVal(NULL);
     result_code = mgr->UpdateConfigDB(parent_key, req->datatype, UNC_OP_DELETE,
@@ -868,9 +886,9 @@ upll_rc_t VnodeMoMgr::DeleteMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
       return result_code;
     }
     result_code = (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code)?
-                   UPLL_RC_SUCCESS:result_code;
+        UPLL_RC_SUCCESS:result_code;
   } else {
-    // Reduce the ref count if vnode is not last node.
+    //  Reduce the ref count if vnode is not last node.
     vtn_st_val->ref_count--;
     result_code = mgr->UpdateConfigDB(parent_key, req->datatype, UNC_OP_UPDATE,
                                       dmi, &dbop,  CTRLRTBL);
@@ -878,7 +896,7 @@ upll_rc_t VnodeMoMgr::DeleteMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
   delete parent_key;
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("Error in updating/deleting ctrlr table %d result %d",
-                    vtn_st_val->ref_count, result_code);
+                   vtn_st_val->ref_count, result_code);
     return result_code;
   }
   result_code = DeleteCandidateMo(req, ikey, dmi);
@@ -903,7 +921,7 @@ upll_rc_t VnodeMoMgr::ControlMo(IpcReqRespHeader *header, ConfigKeyVal *ikey,
       result_code = ValidateMessage(header, ikey);
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("ValidateMessage failed result_code %d",
-                      result_code);
+                       result_code);
         return result_code;
       }
       ConfigKeyVal *okey = NULL;
@@ -913,19 +931,19 @@ upll_rc_t VnodeMoMgr::ControlMo(IpcReqRespHeader *header, ConfigKeyVal *ikey,
         return result_code;
       }
       result_code = UpdateConfigDB(okey, UPLL_DT_RUNNING, UNC_OP_READ,
-                                      dmi, MAINTBL);
+                                   dmi, MAINTBL);
       DELETE_IF_NOT_NULL(okey);
       if (result_code != UPLL_RC_ERR_INSTANCE_EXISTS) {
         UPLL_LOG_DEBUG("Record doesn't exist in DB. Error code : %d",
-                     result_code);
+                       result_code);
         return result_code;
       }
-      // Getting the controller vtn, vnode name
+      //  Getting the controller vtn, vnode name
       result_code = GetRenamedControllerKey(ikey, UPLL_DT_RUNNING, dmi,
-                                          &ctrlr_dom);
+                                            &ctrlr_dom);
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("GetRenamedControllerKey failed. Result : %d",
-                          result_code);
+                       result_code);
         return result_code;
       }
       GET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
@@ -938,39 +956,46 @@ upll_rc_t VnodeMoMgr::ControlMo(IpcReqRespHeader *header, ConfigKeyVal *ikey,
       memcpy(&(ipc_req.header), header, sizeof(IpcReqRespHeader));
       ipc_req.ckv_data = ikey;
 
-      if (!uui::IpcUtil::SendReqToDriver((const char *)(ctrlr_dom.ctrlr),
-          reinterpret_cast<char *>(ctrlr_dom.domain), PFCDRIVER_SERVICE_NAME,
-          PFCDRIVER_SVID_LOGICAL, &ipc_req, true, &ipc_resp)) {
+      if (!uui::IpcUtil::SendReqToDriver(
+              (const char *)(ctrlr_dom.ctrlr),
+              reinterpret_cast<char *>
+              (ctrlr_dom.domain),
+              PFCDRIVER_SERVICE_NAME,
+              PFCDRIVER_SVID_LOGICAL, &ipc_req, true, &ipc_resp)) {
         UPLL_LOG_INFO("Request to driver for Key %d for controller %s failed ",
-                      ikey->get_key_type(), reinterpret_cast<char *>(ctrlr_dom.ctrlr));
+                      ikey->get_key_type(), reinterpret_cast<char *>
+                      (ctrlr_dom.ctrlr));
         DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
         return UPLL_RC_ERR_GENERIC;
       }
 
-      // Populate ConfigKeyVal and IpcReqRespHeader with the response from driver
+      //  Populate ConfigKeyVal and IpcReqRespHeader with the response
+      //  from driver
       ikey->ResetWith(ipc_resp.ckv_data);
       DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
       result_code = (header->result_code = ipc_resp.header.result_code);
     } else {
-      UPLL_LOG_DEBUG("Control Operation not allowed for %d data type", header->datatype);
+      UPLL_LOG_DEBUG("Control Operation not allowed for %d data type",
+                     header->datatype);
       return UPLL_RC_ERR_CFG_SEMANTIC;
     }
   } else {
-    UPLL_LOG_DEBUG("Control Operation not allowed for %d key type", ikey->get_key_type());
+    UPLL_LOG_DEBUG("Control Operation not allowed for %d key type",
+                   ikey->get_key_type());
     return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT;
   }
   return result_code;
 }
 
 upll_rc_t VnodeMoMgr::GetVnodeType(const void *key, bool vnode,
-                                  unc_key_type_t &keytype,
-                                  ConfigKeyVal *&ck_val, DalDmlIntf *dmi,
-                                  upll_keytype_datatype_t dt_type) {
+                                   unc_key_type_t &keytype,
+                                   ConfigKeyVal *&ck_val, DalDmlIntf *dmi,
+                                   upll_keytype_datatype_t dt_type) {
   unc_key_type_t *ktype, if_ktype[] = { UNC_KT_VBR_IF, UNC_KT_VRT_IF,
-                                        UNC_KT_VUNK_IF, UNC_KT_VTEP_IF,
-                                        UNC_KT_VTUNNEL_IF };
+    UNC_KT_VUNK_IF, UNC_KT_VTEP_IF,
+    UNC_KT_VTUNNEL_IF };
   unc_key_type_t vnode_ktype[] = { UNC_KT_VBRIDGE, UNC_KT_VROUTER, UNC_KT_VTEP,
-                                   UNC_KT_VTUNNEL, UNC_KT_VUNKNOWN };
+    UNC_KT_VTUNNEL, UNC_KT_VUNKNOWN };
   int numnodes;
 
   if (vnode) {
@@ -984,7 +1009,7 @@ upll_rc_t VnodeMoMgr::GetVnodeType(const void *key, bool vnode,
     keytype = ktype[i];
     MoMgrImpl *mgr =
         (reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
-                                  (GetMoManager(keytype))));
+                                       (GetMoManager(keytype))));
     if (!mgr) {
       UPLL_LOG_DEBUG("Invalid param");
       return UPLL_RC_ERR_GENERIC;
@@ -995,7 +1020,7 @@ upll_rc_t VnodeMoMgr::GetVnodeType(const void *key, bool vnode,
       return UPLL_RC_ERR_GENERIC;
     }
     switch (keytype) {
-     case UNC_KT_VBRIDGE:
+      case UNC_KT_VBRIDGE:
       case UNC_KT_VROUTER:
       case UNC_KT_VUNKNOWN:
       case UNC_KT_VTUNNEL:
@@ -1017,7 +1042,7 @@ upll_rc_t VnodeMoMgr::GetVnodeType(const void *key, bool vnode,
         const pfc_ipcstdef_t *key_stdef = IpctSt::GetIpcStdef(
             ck_val->get_st_num());
         if (sizeof(*reinterpret_cast<const key_vbr_if_t *>(key))
-                         != key_stdef->ist_size) {
+            != key_stdef->ist_size) {
           DELETE_IF_NOT_NULL(ck_val);
           return UPLL_RC_ERR_GENERIC;
         }
@@ -1029,9 +1054,9 @@ upll_rc_t VnodeMoMgr::GetVnodeType(const void *key, bool vnode,
         return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
     }
     DbSubOp dbop1 = { kOpReadSingle, kOpMatchNone,
-                      kOpInOutFlag | kOpMatchCtrlr | kOpInOutDomain };
+      kOpInOutFlag | kOpMatchCtrlr | kOpInOutDomain };
     result_code = mgr->ReadConfigDB(ck_val, dt_type,
-                                              UNC_OP_READ, dbop1, dmi, MAINTBL);
+                                    UNC_OP_READ, dbop1, dmi, MAINTBL);
     if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
       DELETE_IF_NOT_NULL(ck_val);
       continue;
@@ -1047,7 +1072,7 @@ upll_rc_t VnodeMoMgr::GetVnodeType(const void *key, bool vnode,
   return UPLL_RC_ERR_CFG_SEMANTIC;
 }
 
-upll_rc_t VnodeMoMgr::UpdateParentOperStatus(ConfigKeyVal *ikey, 
+upll_rc_t VnodeMoMgr::UpdateParentOperStatus(ConfigKeyVal *ikey,
                                              DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
@@ -1056,81 +1081,94 @@ upll_rc_t VnodeMoMgr::UpdateParentOperStatus(ConfigKeyVal *ikey,
     return UPLL_RC_ERR_GENERIC;
   }
   unc_key_type_t ktype = ikey->get_key_type();
-  if ((ktype != UNC_KT_VBRIDGE) && (ktype != UNC_KT_VROUTER)) 
+  if ((ktype != UNC_KT_VBRIDGE) && (ktype != UNC_KT_VROUTER))
     return UPLL_RC_SUCCESS;
   DbSubOp dbop = {kOpReadSingle, kOpMatchNone, kOpInOutCtrlr | kOpInOutDomain};
   result_code = ReadConfigDB(ikey, UPLL_DT_STATE, UNC_OP_READ,
-                                  dbop, dmi, MAINTBL); 
+                             dbop, dmi, MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Returning error %d\n",result_code);
+    UPLL_LOG_DEBUG("Returning error %d\n", result_code);
     return result_code;
   }
-  val_db_vbr_st *valst = reinterpret_cast<val_db_vbr_st *>(GetStateVal(ikey)); 
+  val_db_vbr_st *valst = reinterpret_cast<val_db_vbr_st *>(GetStateVal(ikey));
   if (!valst) {
     UPLL_LOG_DEBUG("Returning error\n");
     return UPLL_RC_ERR_GENERIC;
   }
   if (valst->vbr_val_st.valid[UPLL_IDX_OPER_STATUS_VBRS] == UNC_VF_VALID) {
     if (valst->vbr_val_st.oper_status !=  UPLL_OPER_STATUS_DOWN)
-      return UPLL_RC_SUCCESS; 
+      return UPLL_RC_SUCCESS;
     ConfigKeyVal *ck_vtn = NULL;
-    // decrement the down count in vtn controller table
-    result_code = GetParentConfigKey(ck_vtn,ikey);
+    //  decrement the down count in vtn controller table
+    result_code = GetParentConfigKey(ck_vtn, ikey);
     if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Returning error %d\n",result_code);
+      UPLL_LOG_DEBUG("Returning error %d\n", result_code);
       return result_code;
     }
     MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
-                                 (GetMoManager(UNC_KT_VTN)));
+                                                   (GetMoManager(UNC_KT_VTN)));
     if (!mgr) {
       UPLL_LOG_DEBUG("Returning error \n");
       delete ck_vtn;
       return UPLL_RC_ERR_GENERIC;
     }
-    DbSubOp dbop = {kOpReadSingle, kOpMatchCtrlr | kOpMatchDomain, kOpInOutNone};
+    DbSubOp dbop = {kOpReadSingle,
+      kOpMatchCtrlr | kOpMatchDomain,
+      kOpInOutNone};
     result_code = mgr->ReadConfigDB(ck_vtn, UPLL_DT_STATE, UNC_OP_READ, dbop,
-                                 dmi, CTRLRTBL);
+                                    dmi, CTRLRTBL);
     if (result_code == UPLL_RC_SUCCESS) {
-      val_vtn_ctrlr *vtn_val_st = reinterpret_cast<val_vtn_ctrlr *>(GetVal(ck_vtn));
-      vtn_val_st->down_count--;
+      val_vtn_ctrlr *vtn_val_st = reinterpret_cast<val_vtn_ctrlr *>
+          (GetVal(ck_vtn));
+      vtn_val_st->down_count = (vtn_val_st->down_count > 0)?
+          (vtn_val_st->down_count - 1):0;
+      if (vtn_val_st->down_count == 0)
+        vtn_val_st->oper_status  = UPLL_OPER_STATUS_UP;
       result_code = mgr->UpdateConfigDB(ck_vtn, UPLL_DT_STATE, UNC_OP_UPDATE,
-                                     dmi, CTRLRTBL);
+                                        dmi, CTRLRTBL);
       if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("Returning error %d\n",result_code);
+        UPLL_LOG_DEBUG("Returning error %d\n", result_code);
         delete ck_vtn;
         return result_code;
       }
     } else {
-      UPLL_LOG_DEBUG("Last vnode in ctrlr table %s\n", 
-               (reinterpret_cast<key_vbr *>(ikey->get_key()))->vbridge_name);
+      UPLL_LOG_DEBUG("Last vnode in ctrlr table %s\n",
+                     (reinterpret_cast<key_vbr *>
+                      (ikey->get_key()))->vbridge_name);
     }
-    // initialize parent vtn of main tbl to uninit so oper status gets computed during dt_state
-    DELETE_IF_NOT_NULL(ck_vtn); 
-    result_code = mgr->GetCkvUninit(ck_vtn,NULL,dmi);
+    //  initialize parent vtn of main tbl to uninit so oper status
+    //  gets computed during dt_state
+    ConfigKeyVal *tmp_ckv = ck_vtn;
+    ck_vtn = NULL;
+    // get ck_vtn with oper status uninit.
+    result_code = mgr->GetCkvUninit(ck_vtn, tmp_ckv, dmi);
+    DELETE_IF_NOT_NULL(tmp_ckv);
     if (result_code != UPLL_RC_SUCCESS) {
       if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-        UPLL_LOG_DEBUG("Returning error %d\n",result_code);
-      } else
+        UPLL_LOG_DEBUG("Returning error %d\n", result_code);
+      } else {
         result_code = UPLL_RC_SUCCESS;
+      }
       DELETE_IF_NOT_NULL(ck_vtn);
       return result_code;
     }
     result_code = mgr->UpdateConfigDB(ck_vtn, UPLL_DT_STATE, UNC_OP_UPDATE,
-                                 dmi, MAINTBL);
+                                      dmi, MAINTBL);
     if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Returning error %d\n",result_code);
+      UPLL_LOG_DEBUG("Returning error %d\n", result_code);
       if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)
         result_code = UPLL_RC_SUCCESS;
     }
     DELETE_IF_NOT_NULL(ck_vtn);
   }
-  return result_code; 
+  return result_code;
 }
 
 upll_rc_t VnodeMoMgr::UpdateOperStatus(ConfigKeyVal *ikey,
-                                  DalDmlIntf *dmi,
-                                  state_notification notification, bool skip,
-                                  bool save_to_db) {
+                                       DalDmlIntf *dmi,
+                                       state_notification notification,
+                                       bool skip,
+                                       bool save_to_db) {
   UPLL_FUNC_TRACE;
   bool oper_status_change = false;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
@@ -1145,29 +1183,29 @@ upll_rc_t VnodeMoMgr::UpdateOperStatus(ConfigKeyVal *ikey,
     if (!save_to_db) {
       void *key = ikey->get_key();
       const char *vtn_name = reinterpret_cast<const char *>(
-                              reinterpret_cast<key_vtn *>(key)->vtn_name);  
-      s = string(vtn_name) + 
-                 reinterpret_cast<char *>(
-               reinterpret_cast<char *>(key) + sizeof(struct key_vtn));
-      map<string,ConfigKeyVal *>::const_iterator got
-                                           = vnode_oper_map.find(s);
+          reinterpret_cast<key_vtn *>(key)->vtn_name);
+      s = string(vtn_name) +
+          reinterpret_cast<char *>(
+              reinterpret_cast<char *>(key) + sizeof(struct key_vtn));
+      map<string, ConfigKeyVal *>::const_iterator got
+          = vnode_oper_map.find(s);
       if (got == vnode_oper_map.end())
-        read_db = true; 
+        read_db = true;
     }
     if (read_db || save_to_db) {
       DbSubOp dbop = { kOpReadMultiple, kOpMatchNone,
-                       kOpInOutCtrlr | kOpInOutDomain };
+        kOpInOutCtrlr | kOpInOutDomain };
       result_code = ReadConfigDB(ikey, UPLL_DT_STATE, UNC_OP_READ, dbop, dmi,
-                             MAINTBL);
+                                 MAINTBL);
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_INFO("Error in reading: %d", result_code);
         return result_code;
       }
-    } 
+    }
   } else if (!save_to_db) {
     UPLL_LOG_ERROR("Returning error \n");
     return UPLL_RC_ERR_GENERIC;
-  } 
+  }
   ConfigKeyVal *tkey, *tkey_next = ikey;
   while (tkey_next != NULL) {
     tkey = tkey_next;
@@ -1177,49 +1215,47 @@ upll_rc_t VnodeMoMgr::UpdateOperStatus(ConfigKeyVal *ikey,
     switch (ktype) {
       case UNC_KT_VBRIDGE:
         oper_status_change = SetOperStatus<val_vbr_st_t, val_db_vbr_st_t *>(
-                                        tkey,  dmi, notification, true, save_to_db);
+            tkey,  dmi, notification, true, save_to_db);
         break;
       case UNC_KT_VROUTER:
         oper_status_change = SetOperStatus<val_vrt_st_t, val_db_vrt_st_t *>(
-                                        tkey,  dmi, notification, true, save_to_db);
+            tkey,  dmi, notification, true, save_to_db);
         break;
       case UNC_KT_VTEP:
         oper_status_change = SetOperStatus
-                                 <val_vtep_st_t, val_db_vtep_st_t *>(
-                                        tkey,  dmi, notification, true, save_to_db);
+            <val_vtep_st_t, val_db_vtep_st_t *>(
+                tkey,  dmi, notification, true, save_to_db);
         break;
       case UNC_KT_VTUNNEL:
         oper_status_change = SetOperStatus
-                                 <val_vtunnel_st_t, val_db_vtunnel_st_t *>(
-                                        tkey,  dmi, notification, true, save_to_db);
+            <val_vtunnel_st_t, val_db_vtunnel_st_t *>(
+                tkey,  dmi, notification, true, save_to_db);
         break;
       default:
         UPLL_LOG_DEBUG("Operstatus attribute not supported for this kt %d",
-                          ktype);
+                       ktype);
         break;
     }
-    if ((oper_status_change && notification != kCtrlrDisconnect) ||
-         notification == kCtrlrReconnect ||
-         notification == kCtrlrReconnectIfUp ||
-         notification == kCtrlrReconnectIfDown) {
-       VtnMoMgr *mgr = reinterpret_cast<VtnMoMgr *>
-                    (const_cast<MoManager *>(GetMoManager(UNC_KT_VTN)));
-       if (!mgr) {
-         UPLL_LOG_DEBUG("Invalid mgr");
-         return UPLL_RC_ERR_GENERIC;
-       }
-       ConfigKeyVal *ck_vtn = NULL;
-       upll_rc_t result_code = GetParentConfigKey(ck_vtn, tkey);
-       if (!ck_vtn || result_code != UPLL_RC_SUCCESS) {
-         UPLL_LOG_DEBUG("Returning error %d", result_code);
-         return result_code;
-       }
-       result_code = mgr->UpdateOperStatus(ck_vtn, dmi, notification, false);
-       delete ck_vtn;
-       if (result_code != UPLL_RC_SUCCESS) {
-         UPLL_LOG_DEBUG("VTN UpdateOperStatus failed");
-         return result_code;
-       }
+    //  vishnu
+    if (oper_status_change && (notification != kCtrlrDisconnect)) {
+      VtnMoMgr *mgr = reinterpret_cast<VtnMoMgr *>
+          (const_cast<MoManager *>(GetMoManager(UNC_KT_VTN)));
+      if (!mgr) {
+        UPLL_LOG_DEBUG("Invalid mgr");
+        return UPLL_RC_ERR_GENERIC;
+      }
+      ConfigKeyVal *ck_vtn = NULL;
+      upll_rc_t result_code = GetParentConfigKey(ck_vtn, tkey);
+      if (!ck_vtn || result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("Returning error %d", result_code);
+        return result_code;
+      }
+      result_code = mgr->UpdateOperStatus(ck_vtn, dmi, notification, false);
+      delete ck_vtn;
+      if (result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("VTN UpdateOperStatus failed");
+        return result_code;
+      }
     }
     if (skip)
       break;
@@ -1228,14 +1264,14 @@ upll_rc_t VnodeMoMgr::UpdateOperStatus(ConfigKeyVal *ikey,
   if (!save_to_db) {
     map<void *, ConfigKeyVal *>::const_iterator it;
     VtnMoMgr *mgr = reinterpret_cast<VtnMoMgr *>
-             (const_cast<MoManager *>(GetMoManager(UNC_KT_VTN)));
+        (const_cast<MoManager *>(GetMoManager(UNC_KT_VTN)));
     if (!mgr) {
       UPLL_LOG_DEBUG("Invalid mgr");
       return UPLL_RC_ERR_GENERIC;
     }
     for (it = mgr->vtn_oper_map.begin(); it != mgr->vtn_oper_map.end(); ++it) {
       DbSubOp dbop = { kOpNotRead, kOpMatchCtrlr | kOpMatchDomain,
-                       kOpInOutNone };
+        kOpInOutNone };
       ConfigKeyVal *ck_vtn_main = NULL, *tkey = it->second;
       result_code = mgr->UpdateConfigDB(tkey, UPLL_DT_RUNNING, UNC_OP_UPDATE,
                                         dmi, &dbop, CTRLRTBL);
@@ -1270,8 +1306,8 @@ upll_rc_t VnodeMoMgr::UpdateOperStatus(ConfigKeyVal *ikey,
 
 template<typename T1, typename T2>
 bool VnodeMoMgr::SetOperStatus(ConfigKeyVal *ikey,
-                                    DalDmlIntf *dmi, int notification,
-                                    bool skip, bool save_to_db) {
+                               DalDmlIntf *dmi, int notification,
+                               bool skip, bool save_to_db) {
   /* update corresponding vnode operstatus */
   UPLL_FUNC_TRACE;
   bool oper_change = false;
@@ -1281,19 +1317,19 @@ bool VnodeMoMgr::SetOperStatus(ConfigKeyVal *ikey,
     if (!save_to_db) {
       void *key = ikey->get_key();
       const char *vtn_name = reinterpret_cast<const char *>(
-                             reinterpret_cast<key_vtn *>(key)->vtn_name);
+          reinterpret_cast<key_vtn *>(key)->vtn_name);
       string s = string(vtn_name) +
-               reinterpret_cast<char *>(
-             reinterpret_cast<char *>(key) + sizeof(struct key_vtn));
+          reinterpret_cast<char *>(
+              reinterpret_cast<char *>(key) + sizeof(struct key_vtn));
       map<string, ConfigKeyVal *>::const_iterator got
-                                           = vnode_oper_map.find(s);
+          = vnode_oper_map.find(s);
       if (got == vnode_oper_map.end())
         read_db = true;
     }
-    if ( read_db || save_to_db) {
+    if (read_db || save_to_db) {
       DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutNone };
       result_code = ReadConfigDB(ikey, UPLL_DT_STATE, UNC_OP_READ, dbop, dmi,
-                               MAINTBL);
+                                 MAINTBL);
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_INFO("Error in reading: %d", result_code);
         return oper_change;
@@ -1312,15 +1348,17 @@ bool VnodeMoMgr::SetOperStatus(ConfigKeyVal *ikey,
   /* Update oper status based on notification */
   vn_val->valid[0] = UNC_VF_VALID;
   UPLL_LOG_DEBUG("notification %d down_count %d fault_count %d", notification,
-                  vn_valst->down_count, vn_valst->fault_count);
+                 vn_valst->down_count, vn_valst->fault_count);
   switch (notification) {
     case kCtrlrReconnect:
       return UPLL_RC_SUCCESS;
     case kCtrlrDisconnect:
+    case kPortUnknown:
       oper_change = (vn_val->oper_status != UPLL_OPER_STATUS_UNKNOWN)?
-                     true:false;
+          true:false;
       vn_val->oper_status = UPLL_OPER_STATUS_UNKNOWN;
       vn_valst->down_count = 0;
+      vn_valst->fault_count = 0;
       break;
     case kCtrlrReconnectIfDown:
       vn_val->oper_status = UPLL_OPER_STATUS_DOWN;
@@ -1331,54 +1369,66 @@ bool VnodeMoMgr::SetOperStatus(ConfigKeyVal *ikey,
       }
       vn_val->oper_status = UPLL_OPER_STATUS_UP;
       break;
-//      return false;
+      //       return false;
     case kAdminStatusDisabled:
       oper_change = (vn_val->oper_status != UPLL_OPER_STATUS_DOWN)?true:false;
       vn_val->oper_status = UPLL_OPER_STATUS_DOWN;
       break;
     case kAdminStatusEnabled:
-      if (vn_valst->down_count == 0) {
-        // oper_change = (vn_val->oper_status != UPLL_OPER_STATUS_UNINIT)?true:false;
-        oper_change = (vn_val->oper_status == UPLL_OPER_STATUS_DOWN)?
-                     true:false;
+      if ((vn_valst->down_count == 0) && (vn_valst->fault_count == 0)) {
+        //  oper_change = (vn_val->oper_status != UPLL_OPER_STATUS_UNINIT)?
+        //                 true : false;
+        oper_change = ((vn_val->oper_status == UPLL_OPER_STATUS_DOWN)||
+                       (vn_val->oper_status == UPLL_OPER_STATUS_UNKNOWN))?
+            true:false;
         if (OVERLAY_KT(ktype))
           vn_val->oper_status = UPLL_OPER_STATUS_UP;
         else
           vn_val->oper_status = UPLL_OPER_STATUS_UNINIT;
       } else {
-        vn_val->oper_status = UPLL_OPER_STATUS_DOWN;
         oper_change = (vn_val->oper_status != UPLL_OPER_STATUS_DOWN)?
-                     true:false;
+            true:false;
+        vn_val->oper_status = UPLL_OPER_STATUS_DOWN;
       }
       break;
     case kPathFault:
-      vn_valst->down_count= (vn_valst->down_count + 1);
       vn_valst->fault_count= (vn_valst->fault_count + 1);
-      if (vn_valst->fault_count == 1 || vn_valst->down_count == 1) {
-        oper_change = (vn_val->oper_status != UPLL_OPER_STATUS_DOWN)?true:false;
+      if (vn_valst->fault_count == 1) {
+        oper_change = (vn_val->oper_status !=
+                       UPLL_OPER_STATUS_DOWN)?true:false;
         vn_val->oper_status = UPLL_OPER_STATUS_DOWN;
-        // generate alarm
+        //  generate alarm
+        if (!EnqueOperStatusNotification(ikey, ALARM_OPER_DOWN)) {
+          UPLL_LOG_DEBUG("Alarm Notification failed");
+          return UPLL_RC_ERR_GENERIC;
+        }
       }
       break;
     case kPathFaultReset:
       vn_valst->fault_count = (vn_valst->fault_count > 0) ?
           (vn_valst->fault_count - 1) : 0;
-      vn_valst->down_count = (vn_valst->down_count > 0) ?
-          (vn_valst->down_count - 1) : 0;
-      if (vn_valst->fault_count == 0 || vn_valst->down_count == 0) {
-        oper_change = (vn_val->oper_status == UPLL_OPER_STATUS_DOWN)?true:false;
+      if (vn_valst->fault_count == 0 && vn_valst->down_count == 0) {
+        oper_change = (vn_val->oper_status ==
+                       UPLL_OPER_STATUS_DOWN)?true:false;
         if (OVERLAY_KT(ktype))
           vn_val->oper_status = UPLL_OPER_STATUS_UP;
         else
           vn_val->oper_status = UPLL_OPER_STATUS_UNINIT;
-        // reset alarm
+        //  reset alarm
+        if (vn_valst->fault_count == 0) {
+          if (!EnqueOperStatusNotification(ikey, ALARM_OPER_UP)) {
+            UPLL_LOG_DEBUG("Alarm Notification failed");
+            return UPLL_RC_ERR_GENERIC;
+          }
+        }
       }
       break;
     case kPortFault:
     case kBoundaryFault:
       vn_valst->down_count = (vn_valst->down_count + 1);
       if (vn_valst->down_count == 1) {
-        oper_change = (vn_val->oper_status != UPLL_OPER_STATUS_DOWN)?true:false;
+        oper_change = (vn_val->oper_status !=
+                       UPLL_OPER_STATUS_DOWN)?true:false;
         vn_val->oper_status = UPLL_OPER_STATUS_DOWN;
       }
       break;
@@ -1386,32 +1436,43 @@ bool VnodeMoMgr::SetOperStatus(ConfigKeyVal *ikey,
     case kBoundaryFaultReset:
       vn_valst->down_count = (vn_valst->down_count > 0) ?
           (vn_valst->down_count - 1) : 0;
-      if (vn_valst->down_count == 0) {
-        oper_change = (vn_val->oper_status == UPLL_OPER_STATUS_DOWN)?true:false;
+      /* fall through intentional */
+      if (vn_valst->down_count == 0 && vn_valst->fault_count == 0) {
+        oper_change = ((vn_val->oper_status == UPLL_OPER_STATUS_DOWN) ||
+                       (vn_val->oper_status == UPLL_OPER_STATUS_UNKNOWN))?
+            true:false;
         if (OVERLAY_KT(ktype))
           vn_val->oper_status = UPLL_OPER_STATUS_UP;
         else
           vn_val->oper_status = UPLL_OPER_STATUS_UNINIT;
-        // generate alarm
+        //  generate alarm
       }
       break;
+    case kPortFaultResetWithAdminDisabled:
+    case kBoundaryFaultResetWithAdminDisabled:
+      vn_valst->down_count = (vn_valst->down_count > 0) ?
+          (vn_valst->down_count - 1) : 0;
+      //  oper status stays down irrespective of down_count
+      //  as admin is disabled for one of the child interfaces.
+      vn_val->oper_status = UPLL_OPER_STATUS_DOWN;
+      break;
   }
   if (save_to_db) {
     DbSubOp dbop = { kOpNotRead, kOpMatchNone, kOpInOutNone };
     result_code = UpdateConfigDB(ikey, UPLL_DT_STATE, UNC_OP_UPDATE, dmi,
-                               &dbop, MAINTBL);
-  UPLL_LOG_TRACE("Vnode SetOperstatus for VTN after Update is \n %s",
-                    ikey->ToStrAll().c_str());
+                                 &dbop, MAINTBL);
+    UPLL_LOG_TRACE("Vnode SetOperstatus for VTN after Update is \n %s",
+                   ikey->ToStrAll().c_str());
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Error in update oper status %d", result_code);
     }
   } else {
     void *key = ikey->get_key();
     const char *vtn_name = reinterpret_cast<const char *>(
-                           reinterpret_cast<key_vtn *>(key)->vtn_name) ;
+        reinterpret_cast<key_vtn *>(key)->vtn_name);
     string s = string(vtn_name) +
-               reinterpret_cast<char *>(
-             reinterpret_cast<char *>(key) + sizeof(struct key_vtn));
+        reinterpret_cast<char *>(
+            reinterpret_cast<char *>(key) + sizeof(struct key_vtn));
     vnode_oper_map[s] = ikey;
     if (vnode_oper_map[s] == ikey)
       UPLL_LOG_DEBUG("Storing %s %p", s.c_str(), ikey);
@@ -1434,63 +1495,64 @@ upll_rc_t VnodeMoMgr::TxUpdateDtState(unc_key_type_t ktype,
 
   /* Create Vnode If key */
   switch (ktype) {
-  case UNC_KT_VBRIDGE:
-    child_keytype = UNC_KT_VBR_IF;
-    break;
-  case UNC_KT_VROUTER:
-    child_keytype = UNC_KT_VRT_IF;
-    break;
-  case UNC_KT_VTEP:
-    child_keytype = UNC_KT_VTEP_IF;
-    break;
-  case UNC_KT_VTUNNEL:
-    child_keytype = UNC_KT_VTUNNEL_IF;
-    break;
-  default:
-    UPLL_LOG_DEBUG("Unsupported operation on keytype %d", ktype);
-    return UPLL_RC_ERR_GENERIC;
+    case UNC_KT_VBRIDGE:
+      child_keytype = UNC_KT_VBR_IF;
+      break;
+    case UNC_KT_VROUTER:
+      child_keytype = UNC_KT_VRT_IF;
+      break;
+    case UNC_KT_VTEP:
+      child_keytype = UNC_KT_VTEP_IF;
+      break;
+    case UNC_KT_VTUNNEL:
+      child_keytype = UNC_KT_VTUNNEL_IF;
+      break;
+    default:
+      UPLL_LOG_DEBUG("Unsupported operation on keytype %d", ktype);
+      return UPLL_RC_ERR_GENERIC;
   }
-  result_code = GetUninitOperState(ck_vn, dmi); 
+  result_code = GetUninitOperState(ck_vn, dmi);
   if (UPLL_RC_SUCCESS != result_code || ck_vn == NULL)  {
     return result_code;
   }
   ConfigKeyVal *tkey = ck_vn;
   DbSubOp dbop1 = { kOpNotRead, kOpMatchNone, kOpInOutNone };
   while (ck_vn) {
-    state_notification notification;
+    state_notification notification = kAdminStatusEnabled;
     tkey = ck_vn;
     ck_vn = tkey->get_next_cfg_key_val();
     tkey->set_next_cfg_key_val(NULL);
     /* read the state value */
     val_db_vbr_st * vnode_runst = reinterpret_cast<val_db_vbr_st *>
-                                                (GetStateVal(tkey));
+        (GetStateVal(tkey));
     if (!vnode_runst) {
       UPLL_LOG_DEBUG("Invalid param");
       return UPLL_RC_ERR_GENERIC;
     }
     if ((vnode_runst->down_count == 0) && (vnode_runst->fault_count == 0)) {
-      // get count of vnode ifs down
-      uint32_t cur_instance_count = 0;
+      //  get count of vnode ifs down
       ConfigKeyVal *ck_vnif = NULL;
-       
+
       VnodeChildMoMgr *mgr = reinterpret_cast<VnodeChildMoMgr *>
-                             (const_cast<MoManager *>(GetMoManager(child_keytype)));
+          (const_cast<MoManager *>(GetMoManager(child_keytype)));
       result_code = mgr->GetCkvUninit(ck_vnif, tkey, dmi);
       if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("Returning error %d\n",result_code);
+        UPLL_LOG_DEBUG("Returning error %d\n", result_code);
         return result_code;
       }
       val_db_vbr_st *vnif_stval = reinterpret_cast<val_db_vbr_st *>
-                                                (GetStateVal(ck_vnif));
+          (GetStateVal(ck_vnif));
       vnif_stval->vbr_val_st.oper_status = UPLL_OPER_STATUS_DOWN;
       vnif_stval->vbr_val_st.valid[UPLL_IDX_OPER_STATUS_VBRS] = UNC_VF_VALID;
-      result_code = mgr->GetInstanceCount(ck_vnif, NULL, UPLL_DT_STATE, 
-                                       &cur_instance_count, dmi, MAINTBL);
+#if 0
+      uint32_t cur_instance_count = 0;
+      result_code = mgr->GetInstanceCount(ck_vnif, NULL, UPLL_DT_STATE,
+                                          &cur_instance_count, dmi, MAINTBL);
       if (result_code == UPLL_RC_SUCCESS) {
         if (cur_instance_count == 0) {
           vnode_runst->vbr_val_st.oper_status = UPLL_OPER_STATUS_UP;
           notification = kAdminStatusEnabled;
-        } else { 
+        } else {
           vnode_runst->vbr_val_st.oper_status = UPLL_OPER_STATUS_DOWN;
           notification = kAdminStatusDisabled;
         }
@@ -1498,7 +1560,68 @@ upll_rc_t VnodeMoMgr::TxUpdateDtState(unc_key_type_t ktype,
         vnode_runst->vbr_val_st.oper_status = UPLL_OPER_STATUS_DOWN;
         notification = kAdminStatusDisabled;
       } else {
-        UPLL_LOG_DEBUG("Returning error %d\n",result_code);
+      }
+#else
+        DbSubOp dbop = { kOpReadSingle,
+          kOpMatchNone,
+          kOpInOutFlag | kOpInOutCtrlr
+          | kOpInOutDomain };
+      result_code = mgr->ReadConfigDB(ck_vnif, UPLL_DT_STATE, UNC_OP_READ,
+                                      dbop, dmi, MAINTBL);
+      if (result_code == UPLL_RC_SUCCESS) {
+        // operationally down interface present in the interface table
+        vnode_runst->vbr_val_st.oper_status = UPLL_OPER_STATUS_DOWN;
+        result_code = UPLL_RC_SUCCESS;
+        notification = kAdminStatusDisabled;
+      } else if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+        ck_vnif->SetCfgVal(NULL);
+        result_code = mgr->UpdateConfigDB(ck_vnif, UPLL_DT_STATE, UNC_OP_READ,
+                                          dmi, &dbop, MAINTBL);
+        if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
+          // vnode has no interface that is down
+          vnode_runst->vbr_val_st.oper_status = UPLL_OPER_STATUS_UP;
+          result_code = UPLL_RC_SUCCESS;
+          notification = kAdminStatusEnabled;
+        } else if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+          if (tkey->get_key_type() == UNC_KT_VBRIDGE) {
+            VlanMapMoMgr *vlan_mgr = reinterpret_cast<VlanMapMoMgr *>
+                (const_cast<MoManager *>(GetMoManager(UNC_KT_VBR_VLANMAP)));
+            ConfigKeyVal *ckv_vlanmap = NULL;
+            result_code = vlan_mgr->GetChildConfigKey(ckv_vlanmap, tkey);
+            if (result_code != UPLL_RC_SUCCESS) {
+              UPLL_LOG_DEBUG("GetChildConfigKey failed for vlanmap\n");
+              return result_code;
+            }
+            result_code = vlan_mgr->UpdateConfigDB(ckv_vlanmap,
+                                                   UPLL_DT_STATE,
+                                                   UNC_OP_READ,
+                                                   dmi,
+                                                   &dbop,
+                                                   MAINTBL);
+            if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
+              // vbridge with vlanmap configured
+              vnode_runst->vbr_val_st.oper_status = UPLL_OPER_STATUS_UP;
+              result_code = UPLL_RC_SUCCESS;
+              notification = kAdminStatusEnabled;
+            }
+            DELETE_IF_NOT_NULL(ckv_vlanmap);
+          }
+          if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+            // standalone vnode
+            if (OVERLAY_KT(ktype)) {
+              notification = kAdminStatusEnabled;
+              vnode_runst->vbr_val_st.oper_status = UPLL_OPER_STATUS_UP;
+            } else {
+              notification = kAdminStatusDisabled;
+              vnode_runst->vbr_val_st.oper_status = UPLL_OPER_STATUS_DOWN;
+            }
+            result_code = UPLL_RC_SUCCESS;
+          }
+        }
+      }
+#endif
+      if (result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("Returning error %d\n", result_code);
         delete ck_vnif;
         delete tkey;
         delete ck_vn;
@@ -1506,29 +1629,29 @@ upll_rc_t VnodeMoMgr::TxUpdateDtState(unc_key_type_t ktype,
       }
       DELETE_IF_NOT_NULL(ck_vnif);
       vnode_runst->vbr_val_st.valid[UPLL_IDX_OPER_STATUS_VBRS] = UNC_VF_VALID;
-    } else { 
-      if (vnode_runst->down_count > 0) 
-       notification =  kPortFault;
-      else if (vnode_runst->fault_count > 0) 
-       notification =  kPathFault;
+    } else {
+      if (vnode_runst->down_count > 0)
+        notification =  kPortFault;
+      else if (vnode_runst->fault_count > 0)
+        notification =  kPathFault;
       vnode_runst->vbr_val_st.oper_status = UPLL_OPER_STATUS_DOWN;
       vnode_runst->vbr_val_st.valid[UPLL_IDX_OPER_STATUS_VBRS] = UNC_VF_VALID;
     }
-    result_code = UpdateConfigDB(tkey, UPLL_DT_STATE,UNC_OP_UPDATE,
+    result_code = UpdateConfigDB(tkey, UPLL_DT_STATE, UNC_OP_UPDATE,
                                  dmi, &dbop1, MAINTBL);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("UpdateConfigDB Executed %d", result_code);
       break;
     }
-    // invoked from port status handler
-    // don't propagate as the event is already propagated.
+    //  invoked from port status handler
+    //  don't propagate as the event is already propagated.
     if ((config_id == 0) && (session_id == 0)) {
       delete tkey;
       continue;
     }
     if (notification != kAdminStatusEnabled) {
       VtnMoMgr *mgr = reinterpret_cast<VtnMoMgr *>
-                      (const_cast<MoManager *>(GetMoManager(UNC_KT_VTN)));
+          (const_cast<MoManager *>(GetMoManager(UNC_KT_VTN)));
       if (!mgr) {
         UPLL_LOG_DEBUG("Invalid mgr");
         return UPLL_RC_ERR_GENERIC;
@@ -1554,6 +1677,51 @@ upll_rc_t VnodeMoMgr::TxUpdateDtState(unc_key_type_t ktype,
   return result_code;
 }
 
+bool VnodeMoMgr::EnqueOperStatusNotification(ConfigKeyVal *ikey,
+                                             bool oper_status_change) {
+  UPLL_FUNC_TRACE;
+  if (!ikey || !ikey->get_key()) {
+    UPLL_LOG_DEBUG("Inputs are Invalid");
+    return false;
+  }
+  uuc::UpllConfigMgr *cfg_instance = uuc::UpllConfigMgr::GetUpllConfigMgr();
+  unc_key_type_t ktype  = ikey->get_key_type();
+  uint8_t *vtn_name = NULL;
+  uint8_t *vnode_name = NULL;
+
+  switch (ktype) {
+    case UNC_KT_VBRIDGE:
+      vtn_name = reinterpret_cast<key_vbr*>
+          (ikey->get_key())->vtn_key.vtn_name;
+      vnode_name = reinterpret_cast<key_vbr*>
+          (ikey->get_key())->vbridge_name;
+      break;
+    case UNC_KT_VROUTER:
+      vtn_name = reinterpret_cast<key_vrt*>
+          (ikey->get_key())->vtn_key.vtn_name;
+      vnode_name = reinterpret_cast<key_vrt*>
+          (ikey->get_key())->vrouter_name;
+      break;
+    case UNC_KT_VTUNNEL:
+      vtn_name = reinterpret_cast<key_vtunnel*>
+          (ikey->get_key())->vtn_key.vtn_name;
+      vnode_name = reinterpret_cast<key_vtunnel*>
+          (ikey->get_key())->vtunnel_name;
+      break;
+    case UNC_KT_VTEP:
+      vtn_name = reinterpret_cast<key_vtep*>
+          (ikey->get_key())->vtn_key.vtn_name;
+      vnode_name = reinterpret_cast<key_vtep*>
+          (ikey->get_key())->vtep_name;
+      break;
+    default:
+      UPLL_LOG_DEBUG("Invalid KeyType");
+  }
+  return cfg_instance->SendOperStatusAlarm(reinterpret_cast<char*>(vtn_name),
+                                           reinterpret_cast<char*>(vnode_name),
+                                           reinterpret_cast<char*>(NULL),
+                                           oper_status_change);
+}
 
 #if 0
 upll_rc_t VnodeMoMgr::InitOperStatus(ConfigKeyVal *tkey) {
@@ -1567,34 +1735,34 @@ upll_rc_t VnodeMoMgr::InitOperStatus(ConfigKeyVal *tkey) {
 
   /* read the state value */
   val_db_vbr_st * vnode_runst = reinterpret_cast<val_db_vbr_st *>
-                                                (GetStateVal(tkey));
+      (GetStateVal(tkey));
   if (!vnode_runst) {
     UPLL_LOG_DEBUG("Invalid param");
     return UPLL_RC_ERR_GENERIC;
   }
   if ((vnode_runst->down_count == 0) && (vnode_runst->fault_count == 0)) {
-    // get count of vnode ifs down
+    //  get count of vnode ifs down
     uint32_t cur_instance_count = 0;
     ConfigKeyVal *ck_vnif = NULL;
-       
+
     VnodeChildMoMgr *mgr = reinterpret_cast<VnodeChildMoMgr *>
-                             (const_cast<MoManager *>(GetMoManager(child_keytype)));
+        (const_cast<MoManager *>(GetMoManager(child_keytype)));
     result_code = mgr->GetCkvUninit(ck_vnif, tkey, dmi);
     if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Returning error %d\n",result_code);
+      UPLL_LOG_DEBUG("Returning error %d\n", result_code);
       return result_code;
     }
     val_db_vbr_st *vnif_stval = reinterpret_cast<val_db_vbr_st *>
-                                                (GetStateVal(ck_vnif));
+        (GetStateVal(ck_vnif));
     vnif_stval->vbr_val_st.oper_status = UPLL_OPER_STATUS_DOWN;
     vnif_stval->vbr_val_st.valid[UPLL_IDX_OPER_STATUS_VBRS] = UNC_VF_VALID;
-    result_code = mgr->GetInstanceCount(ck_vnif, NULL, UPLL_DT_STATE, 
-                                       &cur_instance_count, dmi, MAINTBL);
+    result_code = mgr->GetInstanceCount(ck_vnif, NULL, UPLL_DT_STATE,
+                                        &cur_instance_count, dmi, MAINTBL);
     if (result_code == UPLL_RC_SUCCESS) {
       if (cur_instance_count == 0) {
         vnode_runst->vbr_val_st.oper_status = UPLL_OPER_STATUS_UP;
         notification = kAdminStatusEnabled;
-      } else { 
+      } else {
         vnode_runst->vbr_val_st.oper_status = UPLL_OPER_STATUS_DOWN;
         notification = kAdminStatusDisabled;
       }
@@ -1602,7 +1770,7 @@ upll_rc_t VnodeMoMgr::InitOperStatus(ConfigKeyVal *tkey) {
       vnode_runst->vbr_val_st.oper_status = UPLL_OPER_STATUS_DOWN;
       notification = kAdminStatusDisabled;
     } else {
-      UPLL_LOG_DEBUG("Returning error %d\n",result_code);
+      UPLL_LOG_DEBUG("Returning error %d\n", result_code);
       delete ck_vnif;
       delete tkey;
       delete ck_vn;
@@ -1610,23 +1778,23 @@ upll_rc_t VnodeMoMgr::InitOperStatus(ConfigKeyVal *tkey) {
     }
     DELETE_IF_NOT_NULL(ck_vnif);
     vnode_runst->vbr_val_st.valid[UPLL_IDX_OPER_STATUS_VBRS] = UNC_VF_VALID;
-  } else { 
-    if (vnode_runst->down_count > 0) 
-     notification =  kPortFault;
-    else if (vnode_runst->fault_count > 0) 
-     notification =  kPathFault;
+  } else {
+    if (vnode_runst->down_count > 0)
+      notification =  kPortFault;
+    else if (vnode_runst->fault_count > 0)
+      notification =  kPathFault;
     vnode_runst->vbr_val_st.oper_status = UPLL_OPER_STATUS_DOWN;
     vnode_runst->vbr_val_st.valid[UPLL_IDX_OPER_STATUS_VBRS] = UNC_VF_VALID;
   }
   DbSubOp dbop1 = { kOpNotRead, kOpMatchNone, kOpInOutNone };
-  result_code = UpdateConfigDB(tkey, UPLL_DT_STATE,UNC_OP_UPDATE,
+  result_code = UpdateConfigDB(tkey, UPLL_DT_STATE, UNC_OP_UPDATE,
                                dmi, &dbop1, MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("UpdateConfigDB Executed %d", result_code);
     return result_code;
   }
   VtnMoMgr *mgr = reinterpret_cast<VtnMoMgr *>
-                  (const_cast<MoManager *>(GetMoManager(UNC_KT_VTN)));
+      (const_cast<MoManager *>(GetMoManager(UNC_KT_VTN)));
   if (!mgr) {
     UPLL_LOG_DEBUG("Invalid mgr");
     return UPLL_RC_ERR_GENERIC;
@@ -1640,7 +1808,7 @@ upll_rc_t VnodeMoMgr::InitOperStatus(ConfigKeyVal *tkey) {
   result_code = mgr->UpdateOperStatus(ck_vtn, dmi, notification, false);
   delete ck_vtn;
   if (result_code != UPLL_RC_SUCCESS) {
-     UPLL_LOG_DEBUG("VTN UpdateOperStatus failed");
+    UPLL_LOG_DEBUG("VTN UpdateOperStatus failed");
   }
   return result_code;
 }
index ebec343fb026e38cf03b6d0c298bcb40bcd2225a..cdc8377f824247cdc6ba7b6799cb59ac25d51912 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -20,330 +20,342 @@ namespace upll {
 namespace kt_momgr {
 
 typedef struct val_db_vbr_st {
-    val_vbr_st vbr_val_st;
-    uint32_t down_count;
-    uint32_t fault_count;
+  val_vbr_st vbr_val_st;
+  uint32_t down_count;
+  uint32_t fault_count;
 } val_db_vbr_st_t;
 
 typedef struct val_db_vrt_st {
-    val_vrt_st vrt_val_st;
-    uint32_t down_count;
-    uint32_t fault_count;
+  val_vrt_st vrt_val_st;
+  uint32_t down_count;
+  uint32_t fault_count;
 } val_db_vrt_st_t;
 
 typedef struct val_db_vtep_st {
-    val_vtep_st vtep_val_st;
-    uint32_t down_count;
-    uint32_t fault_count;
+  val_vtep_st vtep_val_st;
+  uint32_t down_count;
+  uint32_t fault_count;
 } val_db_vtep_st_t;
 
 typedef struct val_db_vtunnel_st {
-    val_vtunnel_st vtunnel_val_st;
-    uint32_t down_count;
-    uint32_t fault_count;
+  val_vtunnel_st vtunnel_val_st;
+  uint32_t down_count;
+  uint32_t fault_count;
 } val_db_vtunnel_st_t;
 
 class VnodeMoMgr : public MoMgrImpl {
-  public:
-    map<string,ConfigKeyVal *> vnode_oper_map;
-
-    VnodeMoMgr() {
-      parent_ck_vtn = NULL;
-      cntrl_id = NULL;
-    }
-    virtual ~VnodeMoMgr() {
-      if (parent_ck_vtn) delete parent_ck_vtn;
-      parent_ck_vtn = NULL;
-    }
-
-    upll_rc_t UpdateOperStatus(ConfigKeyVal *ck_vn,
-                          DalDmlIntf *dmi,
-                          state_notification notification, bool skip,
-                          bool save_to_db);
-    upll_rc_t CtrlrTypeAndDomainCheck(ConfigKeyVal *ikey, 
-                                              IpcReqRespHeader *req);
-   /**
-    * @Brief  compares controller id and domain id before 
-    *         updating the value to DB.
-    * @param[in]  ikey  ikey contains key and value structure.
-    * @param[in]  okey  okey contains key and value structure.
-    *
-    * @retval  UPLL_RC_SUCCESS            Successful.
-    * @retval  UPLL_RC_ERR_CFG_SYNTAX     Syntax error.
-    */
-    virtual upll_rc_t CtrlrIdAndDomainIdUpdationCheck(ConfigKeyVal *ikey,
-                                              ConfigKeyVal *okey) = 0;
-
-   /**
-     * @brief  Perform Semantic Check to check Different vbridges
-     *          contain same switch-id and vlan-id
-     *
-     * @param[in]       ikey        ConfigKeyVal
-     * @param[out]      dmi         DataBase Interface
-     *
-     * @retval     UPLL_RC_ERR_CFG_SEMANTIC     on error
-     * @retval     UPLL_RC_SUCCESS              on success
-     **/
-    virtual upll_rc_t ValidateAttribute(ConfigKeyVal *kval, 
-                                DalDmlIntf *dmi,
-                                IpcReqRespHeader *req = NULL);
-
-    /**
-     * @Brief This API is to update(Add or delete) the controller
-     *
-     * @param[in] vtn_name     vtn name pointer
-     * @param[in] ctrlr_dom    Controller Domain pointer
-     * @param[in] op           UNC Operation Code
-     * @param[in] dmi          Database Intereface pointer
-     *
-     * @retval UPLL_RC_SUCCESS Successful.
-     * @retval UPLL_RC_ERR_GENERIC Generic error.
-     * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE Record is not available.
-     *
+ public:
+  map<string, ConfigKeyVal *> vnode_oper_map;
+
+  VnodeMoMgr() {
+    parent_ck_vtn = NULL;
+    cntrl_id = NULL;
+  }
+  virtual ~VnodeMoMgr() {
+    if (parent_ck_vtn) delete parent_ck_vtn;
+    parent_ck_vtn = NULL;
+  }
+
+  upll_rc_t UpdateOperStatus(ConfigKeyVal *ck_vn,
+                             DalDmlIntf *dmi,
+                             state_notification notification, bool skip,
+                             bool save_to_db);
+  upll_rc_t CtrlrTypeAndDomainCheck(ConfigKeyVal *ikey,
+                                    IpcReqRespHeader *req);
+  /**
+   * @Brief  compares controller id and domain id before
+   *         updating the value to DB.
+   * @param[in]  ikey  ikey contains key and value structure.
+   * @param[in]  okey  okey contains key and value structure.
+   *
+   * @retval  UPLL_RC_SUCCESS            Successful.
+   * @retval  UPLL_RC_ERR_CFG_SYNTAX     Syntax error.
+   */
+  virtual upll_rc_t CtrlrIdAndDomainIdUpdationCheck(ConfigKeyVal *ikey,
+                                                    ConfigKeyVal *okey) = 0;
+
+  /**
+   * @brief  Perform Semantic Check to check Different vbridges
+   *          contain same switch-id and vlan-id
+   *
+   * @param[in]       ikey        ConfigKeyVal
+   * @param[out]      dmi         DataBase Interface
+   *
+   * @retval     UPLL_RC_ERR_CFG_SEMANTIC     on error
+   * @retval     UPLL_RC_SUCCESS              on success
+   **/
+  virtual upll_rc_t ValidateAttribute(ConfigKeyVal *kval,
+                                      DalDmlIntf *dmi,
+                                      IpcReqRespHeader *req = NULL);
+
+  /**
+   * @Brief This API is to update(Add or delete) the controller
+   *
+   * @param[in] vtn_name     vtn name pointer
+   * @param[in] ctrlr_dom    Controller Domain pointer
+   * @param[in] op           UNC Operation Code
+   * @param[in] dmi          Database Intereface pointer
+   *
+   * @retval UPLL_RC_SUCCESS Successful.
+   * @retval UPLL_RC_ERR_GENERIC Generic error.
+   * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE Record is not available.
+   *
+   */
+  /* upll_rc_t UpdateControllerTableForVtn(uint8_t *vtn_name,
+     controller_domain *ctrlr_dom,
+     unc_keytype_operation_t op,
+     DalDmlIntf *dmi);
      */
-   /* upll_rc_t UpdateControllerTableForVtn(uint8_t *vtn_name,
-                                        controller_domain *ctrlr_dom,
-                                        unc_keytype_operation_t op,
-                                        DalDmlIntf *dmi);
-*/
-    /**
-     * @brief  Imtimate POM modules of new Controller addition
-     *
-     * @param[in]    ikey        ConfigKeyVal
-     * @parm[in]     ctrlr_dom   controller_domain pointer
-     * @parm[in]     dmi         DataBase Interface pointer
-     * @param[in]    op          type of operation
-     *
-     **/
-    upll_rc_t IntimatePOMAboutNewController(ConfigKeyVal *ikey,
-                                        controller_domain *ctrlr_dom,
-                                        DalDmlIntf *dmi,
-                                        unc_keytype_operation_t op,
-                                        upll_keytype_datatype_t dt_type);
-
-    template<typename T1, typename T2>
-    bool SetOperStatus(ConfigKeyVal *ikey,
-                            DalDmlIntf *dmi,
-                            int notification,
-                            bool skip,
-                            bool save_to_db);
-
-    /* @brief     To update oper status of vnode
-     *              
-     * @param[in] ktype         keytype 
-     * @param[in] session_id    session identifier
-     * @param[in] config_id     config identifier 
-     * @param[in] dmi           Pointer to db connection instance
-     * 
-     * @retval  UPLL_RC_SUCCESS                    updated successfully.
-     * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
-     * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
-     *
-     **/
-
-    upll_rc_t TxUpdateDtState(unc_key_type_t ktype,
-                              uint32_t session_id,
-                              uint32_t config_id,
-                              DalDmlIntf *dmi) ;
-  protected:
-    ConfigKeyVal *parent_ck_vtn;
-
-   /**
-    * @brief  Update parent oper status on delete for Transaction commit
-    *
-    * @param[in]  ikey          ConfigKeyVal instance
-    * @param[in]   dmi           Database connection parameter
-
-    * @retval  UPLL_RC_SUCCESS      Completed successfully.
-    * @retval  UPLL_RC_ERR_GENERIC  Generic failure.
-    */
-    virtual upll_rc_t UpdateParentOperStatus(ConfigKeyVal *ikey,
+  /**
+   * @brief  Imtimate POM modules of new Controller addition
+   *
+   * @param[in]    ikey        ConfigKeyVal
+   * @parm[in]     ctrlr_dom   controller_domain pointer
+   * @parm[in]     dmi         DataBase Interface pointer
+   * @param[in]    op          type of operation
+   *
+   **/
+  upll_rc_t IntimatePOMAboutNewController(ConfigKeyVal *ikey,
+                                          controller_domain *ctrlr_dom,
+                                          DalDmlIntf *dmi,
+                                          unc_keytype_operation_t op,
+                                          upll_keytype_datatype_t dt_type);
+
+  template<typename T1, typename T2>
+bool SetOperStatus(ConfigKeyVal *ikey,
+                   DalDmlIntf *dmi,
+                   int notification,
+                   bool skip,
+                   bool save_to_db);
+  /**
+   * @brief          Enqueues oper status notifications
+   *
+   * @param[in]      ikey    pointer to the configkeyval with
+   *                 the changed oper status
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  bool  EnqueOperStatusNotification(ConfigKeyVal *ikey, bool oper_change);
+
+  /* @brief     To update oper status of vnode
+   *
+   * @param[in] ktype         keytype
+   * @param[in] session_id    session identifier
+   * @param[in] config_id     config identifier
+   * @param[in] dmi           Pointer to db connection instance
+   *
+   * @retval  UPLL_RC_SUCCESS                    updated successfully.
+   * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
+   * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
+   *
+   **/
+
+  upll_rc_t TxUpdateDtState(unc_key_type_t ktype,
+                            uint32_t session_id,
+                            uint32_t config_id,
+                            DalDmlIntf *dmi);
+
+ protected:
+  ConfigKeyVal *parent_ck_vtn;
+
+  /**
+   * @brief  Update parent oper status on delete for Transaction commit
+   *
+   * @param[in]  ikey          ConfigKeyVal instance
+   * @param[in]   dmi           Database connection parameter
+
+   * @retval  UPLL_RC_SUCCESS      Completed successfully.
+   * @retval  UPLL_RC_ERR_GENERIC  Generic failure.
+   */
+  virtual upll_rc_t UpdateParentOperStatus(ConfigKeyVal *ikey,
                                            DalDmlIntf *dmi);
 
-    virtual upll_rc_t DeleteMo(IpcReqRespHeader *req,
-                               ConfigKeyVal *ikey,
+  virtual upll_rc_t DeleteMo(IpcReqRespHeader *req,
+                             ConfigKeyVal *ikey,
+                             DalDmlIntf *dmi);
+
+  upll_rc_t GetVnodeType(const void *key, bool vnode,
+                         unc_key_type_t &keytype,
+                         ConfigKeyVal *&ck_val, DalDmlIntf *dmi,
+                         upll_keytype_datatype_t dt_type);
+  /**
+   * @brief   set the renamed flag in Vnode
+   *          and create an entry in vnode rename table if VTN is renamed
+   *
+   *
+   * @param[in]  ikey       ConfigKeyVal pointer
+   * @param[in]  dt_type    specifies the database type
+   * @param[in]  ctrlr_id   pointer to the controller name
+   * @param[in]  dmi        DalDmlIntf pointer
+   *
+   * @retval UPLL_RC_SUCCESS      Successful
+   * @retval UPLL_RC_ERR_GENERIC  failed to update the VbrIf
+   */
+  upll_rc_t SetVnodeRenameFlag(ConfigKeyVal *&ikey,
+                               upll_keytype_datatype_t dt_type,
+                               controller_domain_t *ctrlr_dom,
                                DalDmlIntf *dmi);
-
-    upll_rc_t GetVnodeType(const void *key, bool vnode, 
-                           unc_key_type_t &keytype,
-                          ConfigKeyVal *&ck_val, DalDmlIntf *dmi,
-                          upll_keytype_datatype_t dt_type);
-    /**
-     * @brief   set the renamed flag in Vnode
-     *          and create an entry in vnode rename table if VTN is renamed 
-     *        
-     *
-     * @param[in]  ikey       ConfigKeyVal pointer
-     * @param[in]  dt_type    specifies the database type  
-     * @param[in]  ctrlr_id   pointer to the controller name   
-     * @param[in]  dmi        DalDmlIntf pointer
-     *
-     * @retval UPLL_RC_SUCCESS      Successful
-     * @retval UPLL_RC_ERR_GENERIC  failed to update the VbrIf
-     */
-    upll_rc_t SetVnodeRenameFlag(ConfigKeyVal *&ikey,
-                                 upll_keytype_datatype_t dt_type,
-                                 controller_domain_t *ctrlr_dom,
-                                 DalDmlIntf *dmi);
-    /**
-     * @brief  Creates a vnode entry in DB after performing pre-requisite checks
-     *
-     * @param[in]  ikey            ConfigKeyVal pointer
-     * @param[in]  req             IpcReqRespHeader pointer  
-     * @param[in]  dmi             DalDmlIntf pointer
-     * @param[in]  controller_ids  pointer to 
-     *                             array of controller id pointers
-     *
-     * @retval UPLL_RC_SUCCESS                Successful
-     * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE    is not present in DB
-     * @retval UPLL_RC_ERR_GENERIC            generic error
-     * @retval UPLL_RC_ERR_INSTANCE_EXISTS    entry already exists in DB
-     */
-    upll_rc_t RestoreVnode(ConfigKeyVal *ikey,
-                           IpcReqRespHeader *req,
-                           DalDmlIntf *dmi,
-                           controller_domain_t ctrlr_domain[]);
-
-    /**
-     * @brief  Get the specific vtn_name and vnode_name from ConfigKeyVal
-     *
-     * @param[in]  ikey        ConfigKeyVal pointer
-     * @param[out] vtn_name    vnode vtn name
-     * @param[out] vnode_name  vnode specific name
-     *
-     * @retval UPLL_RC_SUCCESS      Successful
-     * @retval UPLL_RC_ERR_GENERIC  failed to retrieve the values
-     */
-    virtual upll_rc_t GetVnodeName(ConfigKeyVal *ikey,
-                                   uint8_t *&vtn_name,
-                                   uint8_t *&vnode_name) =0;
-
-    /**
-     * @brief  Checks and Updates the VbrIf interfaces associated with the vlink with the 
-     *         information from physical if the VbrIf is part of vExternal
-     *
-     * @param[in]  dt_type            database type
-     * @param[in]  ikey               ConfigKeyVal pointer
-     * @param[in]  dmi                DalDmlIntf pointer
-     * @param[in]  controller_domain  pointer to array of controller and 
-     *                                domain  pointers
-     * @param[in]  req                IpcRequestresponseHeader pointer
-     *
-     * @retval UPLL_RC_SUCCESS      Successful
-     * @retval UPLL_RC_ERR_GENERIC  failed to update the VbrIf
-     */
- /*   virtual upll_rc_t CheckVlinkVbrIf(upll_keytype_datatype_t dt_type,
+  /**
+   * @brief  Creates a vnode entry in DB after performing pre-requisite checks
+   *
+   * @param[in]  ikey            ConfigKeyVal pointer
+   * @param[in]  req             IpcReqRespHeader pointer
+   * @param[in]  dmi             DalDmlIntf pointer
+   * @param[in]  controller_ids  pointer to
+   *                             array of controller id pointers
+   *
+   * @retval UPLL_RC_SUCCESS                Successful
+   * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE    is not present in DB
+   * @retval UPLL_RC_ERR_GENERIC            generic error
+   * @retval UPLL_RC_ERR_INSTANCE_EXISTS    entry already exists in DB
+   */
+  upll_rc_t RestoreVnode(ConfigKeyVal *ikey,
+                         IpcReqRespHeader *req,
+                         DalDmlIntf *dmi,
+                         controller_domain_t ctrlr_domain[],
+                         bool restore_flag);
+
+  /**
+   * @brief  Get the specific vtn_name and vnode_name from ConfigKeyVal
+   *
+   * @param[in]  ikey        ConfigKeyVal pointer
+   * @param[out] vtn_name    vnode vtn name
+   * @param[out] vnode_name  vnode specific name
+   *
+   * @retval UPLL_RC_SUCCESS      Successful
+   * @retval UPLL_RC_ERR_GENERIC  failed to retrieve the values
+   */
+  virtual upll_rc_t GetVnodeName(ConfigKeyVal *ikey,
+                                 uint8_t *&vtn_name,
+                                 uint8_t *&vnode_name) =0;
+
+  /**
+   * @brief  Checks and Updates the VbrIf interfaces associated with the vlink with the
+   *         information from physical if the VbrIf is part of vExternal
+   *
+   * @param[in]  dt_type            database type
+   * @param[in]  ikey               ConfigKeyVal pointer
+   * @param[in]  dmi                DalDmlIntf pointer
+   * @param[in]  controller_domain  pointer to array of controller and
+   *                                domain  pointers
+   * @param[in]  req                IpcRequestresponseHeader pointer
+   *
+   * @retval UPLL_RC_SUCCESS      Successful
+   * @retval UPLL_RC_ERR_GENERIC  failed to update the VbrIf
+   */
+  /*   virtual upll_rc_t CheckVlinkVbrIf(upll_keytype_datatype_t dt_type,
+       ConfigKeyVal *ikey, DalDmlIntf *dmi,
+       controller_domain *ctrlr_dom);*/
+
+  /**
+   * @brief Update the VbrIf ConfigKeyVal with vExternal details fetched from
+   *        physical, if the VbrIf is part of vExternal
+   *
+   * @param[in]  dt_type  database type
+   * @param[in]  ikey     pointer to ConfigKeyVal
+   * @param[in]  dmi      pointer to DalDmlIntf
+   *
+   * @retval UPLL_RC_SUCCESS      Successful
+   * @retval UPLL_RC_ERR_GENERIC  Generic error/Failed to update VbrIf
+   */
+  upll_rc_t UpdateVbrIfExternal(upll_keytype_datatype_t dt_type,
+                                ConfigKeyVal *ikey, DalDmlIntf *dmi);
+
+ private:
+  uint8_t *cntrl_id;
+
+  /**
+   * @brief Used to create a vnode entry in CANDIDATE DB and is invoked
+   *         through createMo
+   *
+   * @param[in]  req    IpcRequestresponseHeader pointer
+   * @param[in]  ikey   ConfigKeyVal pointer
+   * @param[in]  dmi    DalDmlIntf pointer
+   *
+   * @retval UPLL_RC_SUCCESS                    Successful
+   * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE       parent vtn is not present in DB
+   * @retval UPLL_RC_ERR_GENERIC                generic error
+   * @retval UPLL_RC_ERR_INSTANCE_EXISTS        entry already exists in DB
+   * @retval UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR Not Supported by controller
+   * @retval UPLL_RC_ERR_INVALID_OPTION1        Invalid option
+   */
+  virtual upll_rc_t CreateCandidateMo(IpcReqRespHeader *req,
                                       ConfigKeyVal *ikey, DalDmlIntf *dmi,
-                                      controller_domain *ctrlr_dom);*/
-
-    /**
-     * @brief Update the VbrIf ConfigKeyVal with vExternal details fetched from
-     *        physical, if the VbrIf is part of vExternal
-     *
-     * @param[in]  dt_type  database type
-     * @param[in]  ikey     pointer to ConfigKeyVal
-     * @param[in]  dmi      pointer to DalDmlIntf
-     *
-     * @retval UPLL_RC_SUCCESS      Successful
-     * @retval UPLL_RC_ERR_GENERIC  Generic error/Failed to update VbrIf
-     */
-    upll_rc_t UpdateVbrIfExternal(upll_keytype_datatype_t dt_type,
-                                  ConfigKeyVal *ikey, DalDmlIntf *dmi);
-
-  private:
-    uint8_t *cntrl_id;
-
-    /**
-     * @brief Used to create a vnode entry in CANDIDATE DB and is invoked
-     *         through createMo
-     *
-     * @param[in]  req    IpcRequestresponseHeader pointer
-     * @param[in]  ikey   ConfigKeyVal pointer
-     * @param[in]  dmi    DalDmlIntf pointer
-     *
-     * @retval UPLL_RC_SUCCESS                    Successful
-     * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE       parent vtn is not present in DB
-     * @retval UPLL_RC_ERR_GENERIC                generic error
-     * @retval UPLL_RC_ERR_INSTANCE_EXISTS        entry already exists in DB
-     * @retval UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR Not Supported by controller
-     * @retval UPLL_RC_ERR_INVALID_OPTION1        Invalid option
-     */
-    virtual upll_rc_t CreateCandidateMo(IpcReqRespHeader *req,
-                                        ConfigKeyVal *ikey, DalDmlIntf *dmi);
-    virtual upll_rc_t CreateAuditMoImpl(ConfigKeyVal *ikey,
-                                        DalDmlIntf *dmi,
-                                        const char *ctrlr_id);
-
-    /**
-     * @brief  Checks if the parent VTN is already present in the pfc controller
-     *
-     * @param[in]  ikey       ConfigKeyVal pointer
-     * @param[in]  req        IpcReqRespHeader pointer  
-     * @param[in]  ctrlr_dom  pointer to the controller and domain name   
-     * @param[in]  dmi        DalDmlIntf pointer
-     *
-     * @retval UPLL_RC_SUCCESS                Successful
-     * @retval UPLL_RC_ERR_GENERIC            generic error
-     * @retval UPLL_RC_ERR_INSTANCE_EXISTS    VTN already exists in controller
-     */
-    upll_rc_t CheckVtnExistenceOnController(ConfigKeyVal *ikey,
-                                            IpcReqRespHeader *req,
-                                            controller_domain *ctrlr_dom,
-                                            DalDmlIntf *dmi);
-
-    /**
-     * @brief create entry in Vnode Rename Table,
-     *        with the renamed VTN details fetched from VTN rename Table
-     *        
-     *
-     * @param[in]  ikey       ConfigKeyVal pointer
-     * @param[in]  dt_type    specifies the database type  
-     * @param[in]  ctrlr_dom   pointer to the controller and domain name   
-     * @param[in]  dmi        DalDmlIntf pointer
-     *
-     *
-     * @retval UPLL_RC_SUCCESS      Successful
-     * @retval UPLL_RC_ERR_GENERIC  failed to update the VbrIf
-     */
-    upll_rc_t CreateVnodeRenameEntry(ConfigKeyVal *ikey,
-                                     upll_keytype_datatype_t dt_type,
-                                     controller_domain *ctrlr_dom,
-                                     DalDmlIntf *dmi);
-
-
-    /**
-     * @brief  check if any UNC VTN is renamed as this VTN on the given Controller 
-     *         
-     *
-     * @param[in]  ikey       ConfigKeyVal pointer
-     * @param[in]  dt_type    specifies the database type  
-     * @param[in]  ctrlr_dom   pointer to the controller and domain name   
-     * @param[in]  dmi        DalDmlIntf pointer
-     *
-     * @retval UPLL_RC_SUCCESS      Successful
-     * @retval UPLL_RC_ERR_GENERIC  failed to update the VbrIf
-     */
-    upll_rc_t CheckRenamedVtnName(ConfigKeyVal *ikey,
-                                  upll_keytype_datatype_t dt_type,
-                                  controller_domain *ctrlr_dom,
-                                  DalDmlIntf *dmi);
-
-    /* @brief     To control operation on key types 
-     *              
-     * @param[in]     header    Pointer to IpcResResHeader
-     * @param[in/out] ikey      Pointer to the ConfigKeyVal Structure                    
-     * @param[in]     dmi       Pointer to the DalDmlIntf(DB Interface)
-     * 
-     * @retval  UPLL_RC_SUCCESS                    Completed successfully.
-     * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
-     * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
-     * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
-     * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist 
-     *
-     **/
-    upll_rc_t ControlMo(IpcReqRespHeader *header, ConfigKeyVal *ikey,
-                        DalDmlIntf *dmi);
-
+                                      bool restore_flag = false);
+  virtual upll_rc_t CreateAuditMoImpl(ConfigKeyVal *ikey,
+                                      DalDmlIntf *dmi,
+                                      const char *ctrlr_id);
+
+  /**
+   * @brief  Checks if the parent VTN is already present in the pfc controller
+   *
+   * @param[in]  ikey       ConfigKeyVal pointer
+   * @param[in]  req        IpcReqRespHeader pointer
+   * @param[in]  ctrlr_dom  pointer to the controller and domain name
+   * @param[in]  dmi        DalDmlIntf pointer
+   *
+   * @retval UPLL_RC_SUCCESS                Successful
+   * @retval UPLL_RC_ERR_GENERIC            generic error
+   * @retval UPLL_RC_ERR_INSTANCE_EXISTS    VTN already exists in controller
+   */
+  upll_rc_t CheckVtnExistenceOnController(ConfigKeyVal *ikey,
+                                          IpcReqRespHeader *req,
+                                          controller_domain *ctrlr_dom,
+                                          DalDmlIntf *dmi);
+
+  /**
+   * @brief create entry in Vnode Rename Table,
+   *        with the renamed VTN details fetched from VTN rename Table
+   *
+   *
+   * @param[in]  ikey       ConfigKeyVal pointer
+   * @param[in]  dt_type    specifies the database type
+   * @param[in]  ctrlr_dom   pointer to the controller and domain name
+   * @param[in]  dmi        DalDmlIntf pointer
+   *
+   *
+   * @retval UPLL_RC_SUCCESS      Successful
+   * @retval UPLL_RC_ERR_GENERIC  failed to update the VbrIf
+   */
+  upll_rc_t CreateVnodeRenameEntry(ConfigKeyVal *ikey,
+                                   upll_keytype_datatype_t dt_type,
+                                   controller_domain *ctrlr_dom,
+                                   DalDmlIntf *dmi);
+
+
+  /**
+   * @brief  check if any UNC VTN is renamed as this VTN on the given Controller
+   *
+   *
+   * @param[in]  ikey       ConfigKeyVal pointer
+   * @param[in]  dt_type    specifies the database type
+   * @param[in]  ctrlr_dom   pointer to the controller and domain name
+   * @param[in]  dmi        DalDmlIntf pointer
+   *
+   * @retval UPLL_RC_SUCCESS      Successful
+   * @retval UPLL_RC_ERR_GENERIC  failed to update the VbrIf
+   */
+  upll_rc_t CheckRenamedVtnName(ConfigKeyVal *ikey,
+                                upll_keytype_datatype_t dt_type,
+                                controller_domain *ctrlr_dom,
+                                DalDmlIntf *dmi);
+
+  /* @brief     To control operation on key types
+   *
+   * @param[in]     header    Pointer to IpcResResHeader
+   * @param[in/out] ikey      Pointer to the ConfigKeyVal Structure
+   * @param[in]     dmi       Pointer to the DalDmlIntf(DB Interface)
+   *
+   * @retval  UPLL_RC_SUCCESS                    Completed successfully.
+   * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
+   * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
+   * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
+   * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist
+   *
+   **/
+  upll_rc_t ControlMo(IpcReqRespHeader *header, ConfigKeyVal *ikey,
+                      DalDmlIntf *dmi);
 };
 
 }  // namespace kt_momgr
index 7b4dcfa5de419bc4264cae29c5a824aa288a7b3a..16d849fb22dd77e94d8f8dc61ba79d60ac371fc6 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -23,11 +23,11 @@ namespace kt_momgr {
 
 using unc::upll::ipc_util::IpcUtil;
 
-#define FLOWLIST_RENAME_FLAG    0x04  // For 3rd Bit
-#define VTN_RENAME_FLAG         0x01  // For first Bit
-#define VBR_RENAME_FLAG         0x10  // For 2nd Bit
-#define VRT_RENAME_FLAG         0x02  // For 2nd Bit
-#define NO_VRT_RENAME_FLAG      ~VRT_RENAME_FLAG   
+#define FLOWLIST_RENAME_FLAG    0x04  //  For 3rd Bit
+#define VTN_RENAME_FLAG         0x01  //  For first Bit
+#define VBR_RENAME_FLAG         0x10  //  For 2nd Bit
+#define VRT_RENAME_FLAG         0x02  //  For 2nd Bit
+#define NO_VRT_RENAME_FLAG      ~VRT_RENAME_FLAG
 #define VLINK_CONFIGURED 0x01
 #define PORTMAP_CONFIGURED 0x02
 #define VLINK_PORTMAP_CONFIGURED 0x03
@@ -35,7 +35,7 @@ using unc::upll::ipc_util::IpcUtil;
 #define NO_FLAG_VLINK ~SET_FLAG_VLINK
 #define SET_FLAG_PORTMAP 0x20
 #define SET_FLAG_VLINK_PORTMAP 0x80
-#define SET_FLAG_NO_VLINK_PORTMAP ~SET_FLAG_VLINK_PORTMAP
+#define SET_FLAG_NO_VLINK_PORTMAP ~0x9F
 #define FLOW_RENAME             0x04
 #define NO_FLOWLIST_RENAME      ~FLOW_RENAME
 
@@ -61,11 +61,11 @@ BindInfo VrtIfFlowFilterEntryMoMgr::vrt_if_flowfilter_entry_bind_info[] = {
     offsetof(key_user_data_t, ctrlr_id),
     uud::kDalChar, (kMaxLenCtrlrId + 1) },
   { uudst::vrt_if_flowfilter_entry::kDbiDomainId, CK_VAL,
-      offsetof(key_user_data, domain_id),
-      uud::kDalChar, (kMaxLenDomainId + 1) },
+    offsetof(key_user_data, domain_id),
+    uud::kDalChar, (kMaxLenDomainId + 1) },
   { uudst::vrt_if_flowfilter_entry::kDbiFlowlistName, CFG_VAL,
     offsetof(val_flowfilter_entry_t, flowlist_name),
-      uud::kDalChar, (kMaxLenFlowListName + 1) },
+    uud::kDalChar, (kMaxLenFlowListName + 1) },
   { uudst::vrt_if_flowfilter_entry::kDbiAction, CFG_VAL,
     offsetof(val_flowfilter_entry_t, action),
     uud::kDalUint8, 1 },
@@ -177,20 +177,22 @@ BindInfo VrtIfFlowFilterEntryMoMgr::vrt_if_flowfilter_entry_maintbl_bind_info[]
 
 VrtIfFlowFilterEntryMoMgr::VrtIfFlowFilterEntryMoMgr() : MoMgrImpl() {
   UPLL_FUNC_TRACE;
-  // Rename and ctrlr tables not required for this KT
-  // setting  table indexed for ctrl table and rename table to NULL
+  //  Rename and ctrlr tables not required for this KT
+  //  setting  table indexed for ctrl table and rename table to NULL
   ntable = (MAX_MOMGR_TBLS);
   table = new Table *[ntable];
 
-  // For Main Table
-  table[MAINTBL] = new Table(uudst::kDbiVrtIfFlowFilterEntryTbl,
-      UNC_KT_VRTIF_FLOWFILTER_ENTRY, vrt_if_flowfilter_entry_bind_info,
-      IpctSt::kIpcStKeyVrtIfFlowfilterEntry, IpctSt::kIpcStValFlowfilterEntry,
+  //  For Main Table
+  table[MAINTBL] = new Table(
+      uudst::kDbiVrtIfFlowFilterEntryTbl,
+      UNC_KT_VRTIF_FLOWFILTER_ENTRY,
+      vrt_if_flowfilter_entry_bind_info,
+      IpctSt::kIpcStKeyVrtIfFlowfilterEntry,
+      IpctSt::kIpcStValFlowfilterEntry,
       uudst::vrt_if_flowfilter_entry::kDbiVrtIfFlowFilterEntryNumCols);
   table[RENAMETBL] = NULL;
   table[CTRLRTBL] = NULL;
   nchild = 0;
-  cur_instance_count =0;
   child = NULL;
 }
 
@@ -215,7 +217,8 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::DeleteMo(IpcReqRespHeader *req,
   if (UPLL_RC_SUCCESS != result_code) {
     return result_code;
   }
-  DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutCtrlr };
+  DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
+    kOpInOutCtrlr | kOpInOutFlag};
   result_code = ReadConfigDB(okey, req->datatype,
                              UNC_OP_READ, dbop, dmi, MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
@@ -227,14 +230,18 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::DeleteMo(IpcReqRespHeader *req,
   val_flowfilter_entry_t *flowfilter_val =
       reinterpret_cast<val_flowfilter_entry_t *> (GetVal(okey));
   if (flowfilter_val->valid[UPLL_IDX_FLOWLIST_NAME_FFE] == UNC_VF_VALID) {
-    FlowListMoMgr *mgr = reinterpret_cast<FlowListMoMgr *>
-        (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
-    result_code = mgr->AddFlowListToController(
-        reinterpret_cast<char *>(flowfilter_val->flowlist_name), dmi,
-        reinterpret_cast<char *>(ctrlr_id), req->datatype, UNC_OP_DELETE);
-    if (result_code != UPLL_RC_SUCCESS) {
-      DELETE_IF_NOT_NULL(okey);
-      return result_code;
+    uint8_t flag_vlink = 0;
+    GET_USER_DATA_FLAGS(okey, flag_vlink);
+    if (flag_vlink & SET_FLAG_VLINK) {
+      FlowListMoMgr *mgr = reinterpret_cast<FlowListMoMgr *>
+          (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
+      result_code = mgr->AddFlowListToController(
+          reinterpret_cast<char *>(flowfilter_val->flowlist_name), dmi,
+          reinterpret_cast<char *>(ctrlr_id), req->datatype, UNC_OP_DELETE);
+      if (result_code != UPLL_RC_SUCCESS) {
+        DELETE_IF_NOT_NULL(okey);
+        return result_code;
+      }
     }
   }
   DELETE_IF_NOT_NULL(okey);
@@ -245,9 +252,10 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::DeleteMo(IpcReqRespHeader *req,
 }
 
 upll_rc_t VrtIfFlowFilterEntryMoMgr::UpdateAuditConfigStatus(
-                      unc_keytype_configstatus_t cs_status,
-                      uuc::UpdateCtrlrPhase phase,
-                      ConfigKeyVal *&ckv_running) {
+    unc_keytype_configstatus_t cs_status,
+    uuc::UpdateCtrlrPhase phase,
+    ConfigKeyVal *&ckv_running,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
@@ -263,14 +271,14 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::UpdateAuditConfigStatus(
   if (uuc::kUpllUcpCreate == phase )
     val->cs_row_status = cs_status;
   if ((uuc::kUpllUcpUpdate == phase) &&
-           (val->cs_row_status == UNC_CS_INVALID ||
-            val->cs_row_status == UNC_CS_NOT_APPLIED))
+      (val->cs_row_status == UNC_CS_INVALID ||
+       val->cs_row_status == UNC_CS_NOT_APPLIED))
     val->cs_row_status = cs_status;
   for ( unsigned int loop = 0;
-      loop < sizeof(val->valid)/sizeof(uint8_t); ++loop ) {
+       loop < sizeof(val->valid)/sizeof(uint8_t); ++loop ) {
     if ((cs_status == UNC_CS_INVALID && UNC_VF_VALID == val->valid[loop]) ||
-         cs_status == UNC_CS_APPLIED)
-       val->cs_attr[loop] = cs_status;
+        cs_status == UNC_CS_APPLIED)
+      val->cs_attr[loop] = cs_status;
   }
   UPLL_LOG_DEBUG("UpdateAuditConfigStatus::Success");
   return result_code;
@@ -292,73 +300,30 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::UpdateMo(IpcReqRespHeader *req,
     UPLL_LOG_DEBUG("Vallidation is Failed %d", result_code);
     return result_code;
   }
-  result_code = ValidateVrtIfValStruct(req, ikey, dmi);
+  result_code = ValidateVrtIfValStruct(req, ikey);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("ValidateVrtIfValStruct Failed %d", result_code);
     return result_code;
   }
 
-  // Capability Check
-  /*
-  result_code = ValidateCapability(req, ikey);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Key/Attribute not supported by controller");
-    // return result_code;
-  }*/
-  // Check if Object exists in Candidate Configuration or not
-  result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_READ, dmi, MAINTBL);
-
-  if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
-    UPLL_LOG_DEBUG("Recored %d", result_code);
-    return result_code;
-  }
   result_code = ValidateAttribute(ikey, dmi, req);
   if (UPLL_RC_SUCCESS != result_code)
     return result_code;
-  //  Check and update the flowlist reference count
-  // if the flowlist object is referred
+  //   Check and update the flowlist reference count
+  //  if the flowlist object is referred
   FlowListMoMgr *flowlist_mgr = reinterpret_cast<FlowListMoMgr *>
       (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
   val_flowfilter_entry_t *flowfilter_val =
-    reinterpret_cast<val_flowfilter_entry_t *> (GetVal(ikey));
-  if (UNC_VF_VALID == flowfilter_val->valid[UPLL_IDX_FLOWLIST_NAME_FFE]) {
-    // Check Flowlist object exist or not
-    result_code = flowlist_mgr->GetChildConfigKey(okey, NULL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Recored %d", result_code);
-      return result_code;
-    }
-    key_flowlist_t *key_flowlist = reinterpret_cast<key_flowlist_t*>
-      (okey->get_key());
-    uuu::upll_strncpy(key_flowlist->flowlist_name,
-        flowfilter_val->flowlist_name,
-        (kMaxLenFlowListName +1));
-    result_code = flowlist_mgr->UpdateConfigDB(okey, req->datatype,
-                  UNC_OP_READ, dmi, MAINTBL);
-    if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-      UPLL_LOG_DEBUG("Given FlowList does not exists %d", result_code);
-      delete okey;
-      return result_code;
-    } else if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
-      UPLL_LOG_DEBUG("Instance  Available");
-    } else if (result_code != UPLL_RC_SUCCESS) {
-      delete okey;
-      UPLL_LOG_DEBUG("Error Accesing CANDIDATE DB (%d)", result_code);
-      return result_code;
-    }
-    delete okey;
-    okey = NULL;
-  }
-
+      reinterpret_cast<val_flowfilter_entry_t *> (GetVal(ikey));
   result_code = GetChildConfigKey(okey, ikey);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("GetChildConfigKey failed");
-   return result_code;
+    return result_code;
   }
   DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
-                   kOpInOutCtrlr|kOpInOutDomain|kOpInOutFlag };
+    kOpInOutCtrlr|kOpInOutDomain|kOpInOutFlag };
   result_code = ReadConfigDB(okey, UPLL_DT_CANDIDATE, UNC_OP_READ, dbop, dmi,
-        MAINTBL);
+                             MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     delete okey;
     UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
@@ -369,7 +334,7 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::UpdateMo(IpcReqRespHeader *req,
   GET_USER_DATA_FLAGS(okey, dbflag);
   UPLL_LOG_DEBUG("CallingValidatecapanin VRTIF flowfilter ");
   result_code = ValidateCapability(req, ikey,
-                     reinterpret_cast<const char*>(ctrlr_id));
+                                   reinterpret_cast<const char*>(ctrlr_id));
   if (result_code != UPLL_RC_SUCCESS) {
     delete okey;
     UPLL_LOG_DEBUG("Key/Attribute not supported by controller");
@@ -381,7 +346,7 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::UpdateMo(IpcReqRespHeader *req,
       valid[UPLL_IDX_FLOWLIST_NAME_FFE]) {
     if ((SET_FLAG_VLINK & dbflag)) {
       val_flowfilter_entry_t *temp_ffe_val = reinterpret_cast
-        <val_flowfilter_entry_t *>(GetVal(okey));
+          <val_flowfilter_entry_t *>(GetVal(okey));
       UPLL_LOG_DEBUG("flowlist name %s", flowfilter_val->flowlist_name);
       if (UNC_VF_VALID == flowfilter_val->valid[UPLL_IDX_FLOWLIST_NAME_VFFE] &&
           UNC_VF_VALID  == temp_ffe_val->
@@ -403,10 +368,10 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::UpdateMo(IpcReqRespHeader *req,
           return result_code;
         }
       } else if (UNC_VF_VALID == flowfilter_val->
-          valid[UPLL_IDX_FLOWLIST_NAME_VFFE] &&
-          (UNC_VF_INVALID == temp_ffe_val->
-           valid[UPLL_IDX_FLOWLIST_NAME_VFFE] || UNC_VF_VALID_NO_VALUE ==
-           temp_ffe_val->valid[UPLL_IDX_FLOWLIST_NAME_VFFE])) {
+                 valid[UPLL_IDX_FLOWLIST_NAME_VFFE] &&
+                 (UNC_VF_INVALID == temp_ffe_val->
+                  valid[UPLL_IDX_FLOWLIST_NAME_VFFE] || UNC_VF_VALID_NO_VALUE ==
+                  temp_ffe_val->valid[UPLL_IDX_FLOWLIST_NAME_VFFE])) {
         result_code = flowlist_mgr->AddFlowListToController(
             reinterpret_cast<char *>(flowfilter_val->flowlist_name), dmi,
             reinterpret_cast<char *> (ctrlr_id), req->datatype, UNC_OP_CREATE);
@@ -416,9 +381,9 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::UpdateMo(IpcReqRespHeader *req,
           return result_code;
         }
       } else if (UNC_VF_VALID_NO_VALUE == flowfilter_val->
-          valid[UPLL_IDX_FLOWLIST_NAME_VFFE] &&
-          UNC_VF_VALID == temp_ffe_val->
-          valid[UPLL_IDX_FLOWLIST_NAME_VFFE]) {
+                 valid[UPLL_IDX_FLOWLIST_NAME_VFFE] &&
+                 UNC_VF_VALID == temp_ffe_val->
+                 valid[UPLL_IDX_FLOWLIST_NAME_VFFE]) {
         result_code = flowlist_mgr->AddFlowListToController(
             reinterpret_cast<char *>(temp_ffe_val->flowlist_name), dmi,
             reinterpret_cast<char *>(ctrlr_id), req->datatype, UNC_OP_DELETE);
@@ -430,9 +395,9 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::UpdateMo(IpcReqRespHeader *req,
       }
     }
   }
-  DbSubOp dbop1 = {kOpNotRead, kOpMatchNone, kOpInOutFlag};
+  DbSubOp dbop1 = {kOpNotRead, kOpMatchNone, kOpInOutNone};
   result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_UPDATE,
-                dmi, &dbop1, MAINTBL);
+                               dmi, &dbop1, MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("UpdateConfigDB is Failed %d", result_code);
     return result_code;
@@ -442,422 +407,240 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::UpdateMo(IpcReqRespHeader *req,
 }
 
 upll_rc_t VrtIfFlowFilterEntryMoMgr::GetRenamedControllerKey(
-  ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type, DalDmlIntf *dmi,
-  controller_domain *ctrlr_dom) {
+    ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type, DalDmlIntf *dmi,
+    controller_domain *ctrlr_dom) {
   UPLL_FUNC_TRACE
-  ConfigKeyVal *okey = NULL;
+      ConfigKeyVal *okey = NULL;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
-  // ConfigKeyVal *temp_key=ikey;
-  uint8_t rename = 0;
+  //  ConfigKeyVal *temp_key=ikey;
 
   /* Get the controller's redirect node(vbridge/vrt) name -start*/
   val_flowfilter_entry_t *val_flowfilter_entry =
       reinterpret_cast<val_flowfilter_entry_t *> (GetVal(ikey));
-
+  if (NULL == ctrlr_dom) {
+    UPLL_LOG_DEBUG("ctrlr null");
+    return UPLL_RC_ERR_GENERIC;
+  }
   if (val_flowfilter_entry) {
     if ((UNC_VF_VALID ==
-      val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_NODE_FFE]) &&
-      (UNC_VF_VALID ==
-      val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_PORT_FFE])) {
+         val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_NODE_FFE]) &&
+        (UNC_VF_VALID ==
+         val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_PORT_FFE])) {
       unc_key_type_t child_key[]= { UNC_KT_VBRIDGE, UNC_KT_VROUTER };
       bool isRedirectVnodeVbridge = false;
       for (unsigned int i = 0;
-        i < sizeof(child_key)/sizeof(child_key[0]); i++) {
+           i < sizeof(child_key)/sizeof(child_key[0]); i++) {
         const unc_key_type_t ktype = child_key[i];
         MoMgrImpl *mgrvbr = reinterpret_cast<MoMgrImpl *>(
-          const_cast<MoManager *>(GetMoManager(ktype)));
-      if (!mgrvbr) {
-        UPLL_LOG_DEBUG("mgrvbr failed");
-        return UPLL_RC_ERR_GENERIC;
-      }
-
-      result_code = mgrvbr->GetChildConfigKey(okey, NULL);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("GetChildConfigKey fail");
-        return result_code;
-      }
-      if (NULL != ctrlr_dom) {
-        SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
-        // SET_USER_DATA_CTRLR(okey, ctrlr_dom->ctrlr);
-      } else {
-        UPLL_LOG_DEBUG("ctrlr null");
-        DELETE_IF_NOT_NULL(okey);
-        return UPLL_RC_ERR_GENERIC;
-      }
-      UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
-      if (okey->get_key_type() == UNC_KT_VBRIDGE) {
-        uuu::upll_strncpy(reinterpret_cast<key_vbr_t *>
-           (okey->get_key())->vbridge_name,
-        reinterpret_cast<val_flowfilter_entry_t *>(ikey->get_cfg_val()->
-           get_val())->redirect_node, (kMaxLenVnodeName + 1));
-
-        UPLL_LOG_DEBUG("redirect node vbr name (%s) (%s)",
-        reinterpret_cast<key_vbr_t *>(okey->get_key())->vbridge_name,
-        reinterpret_cast<val_flowfilter_entry_t *>(ikey->get_cfg_val()->
-           get_val())->redirect_node);
-      } else if (okey->get_key_type() == UNC_KT_VROUTER) {
-        uuu::upll_strncpy(reinterpret_cast<key_vrt_t *>
-            (okey->get_key())->vrouter_name,
-        reinterpret_cast<val_flowfilter_entry_t *>(ikey->get_cfg_val()->
-            get_val())->redirect_node, (kMaxLenVnodeName + 1));
-
-        UPLL_LOG_DEBUG("redirect node vrt name (%s) (%s)",
-        reinterpret_cast<key_vrt_t *>(okey->get_key())->vrouter_name,
-        reinterpret_cast<val_flowfilter_entry_t *>(ikey->get_cfg_val()->
-           get_val())->flowlist_name);
-      }
+            const_cast<MoManager *>(GetMoManager(ktype)));
+        if (!mgrvbr) {
+          UPLL_LOG_DEBUG("mgrvbr failed");
+          return UPLL_RC_ERR_GENERIC;
+        }
 
-      DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr | kOpMatchDomain, kOpInOutFlag };
-      result_code = mgrvbr->ReadConfigDB(okey, dt_type, UNC_OP_READ,
-                                dbop, dmi, RENAMETBL);
-      if (result_code != UPLL_RC_SUCCESS) {
-        if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
-          UPLL_LOG_DEBUG("ReadConfigDB fail");
-          DELETE_IF_NOT_NULL(okey);
+        result_code = mgrvbr->GetChildConfigKey(okey, NULL);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("GetChildConfigKey fail");
           return result_code;
         }
-      }
+        SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
+        UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
+                       ctrlr_dom->domain);
+        if (okey->get_key_type() == UNC_KT_VBRIDGE) {
+          uuu::upll_strncpy(reinterpret_cast<key_vbr_t *>
+                            (okey->get_key())->vbridge_name,
+                            reinterpret_cast<val_flowfilter_entry_t *>
+                            (ikey->get_cfg_val()->
+                             get_val())->redirect_node, (kMaxLenVnodeName + 1));
+
+          UPLL_LOG_DEBUG("redirect node vbr name (%s) (%s)",
+                         reinterpret_cast<key_vbr_t *>
+                         (okey->get_key())->vbridge_name,
+                         reinterpret_cast<val_flowfilter_entry_t *>
+                         (ikey->get_cfg_val()->
+                          get_val())->redirect_node);
+        } else if (okey->get_key_type() == UNC_KT_VROUTER) {
+          uuu::upll_strncpy(reinterpret_cast<key_vrt_t *>
+                            (okey->get_key())->vrouter_name,
+                            reinterpret_cast<val_flowfilter_entry_t *>
+                            (ikey->get_cfg_val()->
+                             get_val())->redirect_node, (kMaxLenVnodeName + 1));
+
+          UPLL_LOG_DEBUG("redirect node vrt name (%s) (%s)",
+                         reinterpret_cast<key_vrt_t *>
+                         (okey->get_key())->vrouter_name,
+                         reinterpret_cast<val_flowfilter_entry_t *>
+                         (ikey->get_cfg_val()->
+                          get_val())->flowlist_name);
+        }
 
-      if (result_code == UPLL_RC_SUCCESS) {
-        val_rename_vnode *rename_val = NULL;
-        isRedirectVnodeVbridge = true;
-        rename_val = reinterpret_cast<val_rename_vnode *> (GetVal(okey));
-        if (!rename_val) {
-          UPLL_LOG_DEBUG("rename_val NULL.");
-          DELETE_IF_NOT_NULL(okey);
-          return UPLL_RC_ERR_GENERIC;
+        DbSubOp dbop = { kOpReadSingle,
+          kOpMatchCtrlr | kOpMatchDomain,
+          kOpInOutFlag };
+        result_code = mgrvbr->ReadConfigDB(okey, dt_type, UNC_OP_READ,
+                                           dbop, dmi, RENAMETBL);
+        if (result_code != UPLL_RC_SUCCESS) {
+          if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+            UPLL_LOG_DEBUG("ReadConfigDB fail");
+            DELETE_IF_NOT_NULL(okey);
+            return result_code;
+          }
         }
 
-        uuu::upll_strncpy(reinterpret_cast<val_flowfilter_entry_t*>
-             (ikey->get_cfg_val()->get_val())->redirect_node,
-             rename_val->ctrlr_vnode_name, (kMaxLenVtnName + 1));
-      }
-      DELETE_IF_NOT_NULL(okey);
-      if (isRedirectVnodeVbridge)
-        break;
+        if (result_code == UPLL_RC_SUCCESS) {
+          val_rename_vnode *rename_val = NULL;
+          isRedirectVnodeVbridge = true;
+          rename_val = reinterpret_cast<val_rename_vnode *> (GetVal(okey));
+          if (!rename_val) {
+            UPLL_LOG_DEBUG("rename_val NULL.");
+            DELETE_IF_NOT_NULL(okey);
+            return UPLL_RC_ERR_GENERIC;
+          }
+
+          uuu::upll_strncpy(reinterpret_cast<val_flowfilter_entry_t*>
+                            (ikey->get_cfg_val()->get_val())->redirect_node,
+                            rename_val->ctrlr_vnode_name,
+                            (kMaxLenVnodeName + 1));
+        }
+        DELETE_IF_NOT_NULL(okey);
+        if (isRedirectVnodeVbridge)
+          break;
       }
     }
   }
   /* -end*/
-  IsRenamed(ikey, dt_type, dmi, rename);
-  if (!rename) {
-    UPLL_LOG_DEBUG("no rename");
-    return UPLL_RC_SUCCESS;
-  }
   UPLL_LOG_TRACE("%s GetRenamedCtrl vrt_if_ff_entry start",
                  ikey->ToStrAll().c_str());
 
-    if ((rename & VTN_RENAME_FLAG) || (rename & VRT_RENAME_FLAG)) {
-     MoMgrImpl *VrtMoMgr = static_cast<MoMgrImpl*>
-    ((const_cast<MoManager*> (GetMoManager(UNC_KT_VROUTER))));
-    if (VrtMoMgr == NULL) {
-      UPLL_LOG_DEBUG("InValid Reference of VRTIF");
-      return UPLL_RC_ERR_BAD_REQUEST;
-    }
-    result_code = VrtMoMgr->GetChildConfigKey(okey, NULL);
-    if ( result_code != UPLL_RC_SUCCESS ) {
-       UPLL_LOG_DEBUG("GetChildConfigKey fail");
-       return UPLL_RC_ERR_GENERIC;
-    }
-    if (ctrlr_dom)
-      SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
-
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
-
-
-    strncpy(reinterpret_cast<char *>
-            (reinterpret_cast<key_vrt *>(okey->get_key())->vtn_key.vtn_name),
-            reinterpret_cast<const char *>
-            (reinterpret_cast<key_vrt_if_flowfilter_entry_t *>
-            (ikey->get_key())->flowfilter_key.if_key.vrt_key.vtn_key.vtn_name),
-            kMaxLenVtnName + 1);
-    UPLL_LOG_DEBUG("vrt name (%s) (%s)",
-            reinterpret_cast<char *>
-            (reinterpret_cast<key_vrt *>(okey->get_key())->vtn_key.vtn_name),
-            reinterpret_cast<const char *>
-            (reinterpret_cast<key_vrt_if_flowfilter_entry_t *>
-            (ikey->get_key())->flowfilter_key.if_key.vrt_key.vtn_key.vtn_name));
-    strncpy(reinterpret_cast<char *>
-            (reinterpret_cast<key_vrt *>(okey->get_key())->vrouter_name),
-            reinterpret_cast<const char *>
-            (reinterpret_cast<key_vrt_if_flowfilter_entry_t *>
-            (ikey->get_key())->flowfilter_key.if_key.vrt_key.vrouter_name),
-            kMaxLenVtnName + 1);
-    UPLL_LOG_DEBUG("vrt name (%s) (%s)",
-            reinterpret_cast<char *>
-            (reinterpret_cast<key_vrt *>(okey->get_key())->vrouter_name),
-            reinterpret_cast<const char *>
-            (reinterpret_cast<key_vrt_if_flowfilter_entry_t *>
-            (ikey->get_key())->flowfilter_key.if_key.vrt_key.vrouter_name));
-    DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr | kOpMatchDomain, kOpInOutFlag };
-    /* ctrlr_name */
-    result_code =  VrtMoMgr->ReadConfigDB(okey, dt_type, UNC_OP_READ,
-                                         dbop, dmi, RENAMETBL);
-    if ( result_code != UPLL_RC_SUCCESS ) {
-      if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-        UPLL_LOG_DEBUG("ReadConfigDB no instance");
-        DELETE_IF_NOT_NULL(okey);
-        return UPLL_RC_SUCCESS;
-      }
-       UPLL_LOG_DEBUG("ReadConfigDB fail");
-       DELETE_IF_NOT_NULL(okey);
-       return UPLL_RC_ERR_GENERIC;
-    }
-    // NULL Checks Missing
+  MoMgrImpl *VrtMoMgr = static_cast<MoMgrImpl*>
+      ((const_cast<MoManager*> (GetMoManager(UNC_KT_VROUTER))));
+  if (VrtMoMgr == NULL) {
+    UPLL_LOG_DEBUG("InValid Reference of VRTIF");
+    return UPLL_RC_ERR_BAD_REQUEST;
+  }
+  result_code = VrtMoMgr->GetChildConfigKey(okey, NULL);
+  if ( result_code != UPLL_RC_SUCCESS ) {
+    UPLL_LOG_DEBUG("GetChildConfigKey fail");
+    return UPLL_RC_ERR_GENERIC;
+  }
+  SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
+
+  UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
+                 ctrlr_dom->domain);
+
+
+  strncpy(reinterpret_cast<char *>
+          (reinterpret_cast<key_vrt *>(okey->get_key())->vtn_key.vtn_name),
+          reinterpret_cast<const char *>
+          (reinterpret_cast<key_vrt_if_flowfilter_entry_t *>
+           (ikey->get_key())->flowfilter_key.if_key.vrt_key.vtn_key.vtn_name),
+          kMaxLenVtnName + 1);
+  UPLL_LOG_DEBUG("vrt name (%s) (%s)",
+                 reinterpret_cast<char *>
+                 (reinterpret_cast<key_vrt *>
+                  (okey->get_key())->vtn_key.vtn_name),
+                 reinterpret_cast<const char *>
+                 (reinterpret_cast<key_vrt_if_flowfilter_entry_t *>
+                  (ikey->get_key())->
+                  flowfilter_key.if_key.vrt_key.vtn_key.vtn_name));
+  strncpy(reinterpret_cast<char *>
+          (reinterpret_cast<key_vrt *>(okey->get_key())->vrouter_name),
+          reinterpret_cast<const char *>
+          (reinterpret_cast<key_vrt_if_flowfilter_entry_t *>
+           (ikey->get_key())->flowfilter_key.if_key.vrt_key.vrouter_name),
+          kMaxLenVtnName + 1);
+  UPLL_LOG_DEBUG("vrt name (%s) (%s)",
+                 reinterpret_cast<char *>
+                 (reinterpret_cast<key_vrt *>(okey->get_key())->vrouter_name),
+                 reinterpret_cast<const char *>
+                 (reinterpret_cast<key_vrt_if_flowfilter_entry_t *>
+                  (ikey->get_key())->
+                  flowfilter_key.if_key.vrt_key.vrouter_name));
+  DbSubOp dbop = { kOpReadSingle,
+    kOpMatchCtrlr | kOpMatchDomain,
+    kOpInOutFlag };
+  /* ctrlr_name */
+  result_code =  VrtMoMgr->ReadConfigDB(okey, dt_type, UNC_OP_READ,
+                                        dbop, dmi, RENAMETBL);
+  if (( result_code != UPLL_RC_SUCCESS ) &&
+      (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
+    UPLL_LOG_DEBUG("ReadConfigDB fail");
+    DELETE_IF_NOT_NULL(okey);
+    return UPLL_RC_ERR_GENERIC;
+  }
+  if (UPLL_RC_SUCCESS == result_code) {
     val_rename_vnode *rename_val =
-    reinterpret_cast <val_rename_vnode *> (GetVal(okey));
+        reinterpret_cast <val_rename_vnode *> (GetVal(okey));
     if (!rename_val) {
       UPLL_LOG_DEBUG("VRT Name is not Valid.");
       DELETE_IF_NOT_NULL(okey);
       return UPLL_RC_ERR_GENERIC;
     }
 
-  if (rename & VTN_RENAME_FLAG) {
-    UPLL_LOG_DEBUG("vtn renamed");
     uuu::upll_strncpy(
-         reinterpret_cast<key_vrt_if_flowfilter_entry_t*>
-         (ikey->get_key())->flowfilter_key.if_key.vrt_key.vtn_key.vtn_name,
-         rename_val->ctrlr_vtn_name,
-         (kMaxLenVtnName + 1));
+        reinterpret_cast<key_vrt_if_flowfilter_entry_t*>
+        (ikey->get_key())->flowfilter_key.if_key.vrt_key.vtn_key.vtn_name,
+        rename_val->ctrlr_vtn_name,
+        (kMaxLenVtnName + 1));
     UPLL_LOG_DEBUG("vtn rename (%s) (%s)",
-         reinterpret_cast<key_vrt_if_flowfilter_entry_t*>
-         (ikey->get_key())->flowfilter_key.if_key.vrt_key.vtn_key.vtn_name,
-         rename_val->ctrlr_vtn_name);
-  }
+                   reinterpret_cast<key_vrt_if_flowfilter_entry_t*>
+                   (ikey->get_key())->
+                   flowfilter_key.if_key.vrt_key.vtn_key.vtn_name,
+                   rename_val->ctrlr_vtn_name);
 
-  if (rename & VRT_RENAME_FLAG) {
-    UPLL_LOG_DEBUG("vrt renamed");
     uuu::upll_strncpy(
-    reinterpret_cast<key_vrt_if_flowfilter_entry_t*>
-    (ikey->get_key())->flowfilter_key.if_key.vrt_key.vrouter_name,
-    rename_val->ctrlr_vnode_name,
-    (kMaxLenVnodeName + 1));
+        reinterpret_cast<key_vrt_if_flowfilter_entry_t*>
+        (ikey->get_key())->flowfilter_key.if_key.vrt_key.vrouter_name,
+        rename_val->ctrlr_vnode_name,
+        (kMaxLenVnodeName + 1));
     UPLL_LOG_DEBUG("vrt rename (%s) (%s)",
-    reinterpret_cast<key_vrt_if_flowfilter_entry_t*>
-    (ikey->get_key())->flowfilter_key.if_key.vrt_key.vrouter_name,
-    rename_val->ctrlr_vnode_name);
+                   reinterpret_cast<key_vrt_if_flowfilter_entry_t*>
+                   (ikey->get_key())->
+                   flowfilter_key.if_key.vrt_key.vrouter_name,
+                   rename_val->ctrlr_vnode_name);
   }
-
   DELETE_IF_NOT_NULL(okey);
+  //   flowlist_name
+  val_flowfilter_entry_t *val_ffe = reinterpret_cast
+      <val_flowfilter_entry_t *>(GetVal(ikey));
+  if (NULL == val_ffe) {
+    UPLL_LOG_DEBUG("value structure is null");
+    return UPLL_RC_SUCCESS;
   }
-  //  flowlist_name
-  if (rename & FLOWLIST_RENAME_FLAG) {
-    UPLL_LOG_DEBUG("flowlist name renamed");
-    MoMgrImpl *mgrflist = static_cast<MoMgrImpl*>
-    ((const_cast<MoManager*> (GetMoManager(UNC_KT_FLOWLIST))));
-    result_code = mgrflist->GetChildConfigKey(okey, NULL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetChildConfigKey fail");
-      return result_code;
-    }
-    if (NULL != ctrlr_dom) {
-      SET_USER_DATA_CTRLR(okey, ctrlr_dom->ctrlr);
-    } else {
-      UPLL_LOG_DEBUG("ctrlr null");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
-    if (!GetVal(ikey))
-      return UPLL_RC_SUCCESS;
-    DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutFlag };
-    /* ctrlr_name */
-    result_code =  mgrflist->ReadConfigDB(okey, dt_type,
-                                UNC_OP_READ, dbop, dmi, RENAMETBL);
-    if ( result_code != UPLL_RC_SUCCESS ) {
-      if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-        UPLL_LOG_DEBUG("ReadConfigDB no instance");
-        DELETE_IF_NOT_NULL(okey);
-        return UPLL_RC_SUCCESS;
-      }
-      UPLL_LOG_DEBUG("ReadConfigDB fail");
-      DELETE_IF_NOT_NULL(okey);
-       return UPLL_RC_ERR_GENERIC;
-    }
-    val_rename_flowlist_t *rename_val =
-        reinterpret_cast <val_rename_flowlist_t*>(GetVal(okey));
-
-    if (!rename_val) {
-      UPLL_LOG_DEBUG("flowlist is not valid");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-    uuu::upll_strncpy(
-    reinterpret_cast<val_flowfilter_entry_t*>
-    (ikey->get_cfg_val()->get_val())->flowlist_name,
-    rename_val->flowlist_newname,
-    (kMaxLenFlowListName + 1));
-    DELETE_IF_NOT_NULL(okey);
+  if (strlen(reinterpret_cast<char *>
+             (val_ffe->flowlist_name)) == 0) {
+    return UPLL_RC_SUCCESS;
   }
-  UPLL_LOG_TRACE("%s GetRenamedCtrl vrt_if_ff_entry end",
-                  ikey->ToStrAll().c_str());
-  UPLL_LOG_DEBUG("Renamed Controller key is sucessfull.");
-  return UPLL_RC_SUCCESS;
-#if 0
-  /* vtn renamed */
-  if (rename & VTN_RENAME_FLAG) {
-    UPLL_LOG_DEBUG("vtn renamed");
-    MoMgrImpl *mgrvtn =  static_cast<MoMgrImpl*>
-    ((const_cast<MoManager*> (GetMoManager(UNC_KT_VTN))));
-    mgrvtn->GetChildConfigKey(okey, NULL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetChildConfigKey fail");
-      return result_code;
-    }
-
-    if (ctrlr_dom != NULL) {
-      SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
-    } else {
-      UPLL_LOG_DEBUG("ctrlr null");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
-    uuu::upll_strncpy(
-             reinterpret_cast<key_vtn *>(okey->get_key())->vtn_name,
-             reinterpret_cast<key_vrt_if_flowfilter_entry_t *>
-             (ikey->get_key())->flowfilter_key.if_key.vrt_key.vtn_key.vtn_name,
-             (kMaxLenVtnName + 1));
-    UPLL_LOG_DEBUG("vtn name (%s) (%s)",
-             reinterpret_cast<key_vtn *>(okey->get_key())->vtn_name,
-             reinterpret_cast<key_vrt_if_flowfilter_entry_t *>
-             (ikey->get_key())->flowfilter_key.if_key.vrt_key.vtn_key.vtn_name);
-    DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutFlag };
-    /* ctrlr_name */
-    result_code =  mgrvtn->ReadConfigDB(okey, dt_type, UNC_OP_READ,
-                               dbop, dmi, RENAMETBL);
-    if ( result_code != UPLL_RC_SUCCESS ) {
-       UPLL_LOG_DEBUG("ReadConfigDB fail");
-       DELETE_IF_NOT_NULL(okey);
-       return UPLL_RC_ERR_GENERIC;
-    }
-    val_rename_vtn *rename_val = reinterpret_cast <val_rename_vtn *>
-    (GetVal(okey));  // NULL Checks Missing
-    if (!rename_val) {
-      UPLL_LOG_DEBUG("Vtn Name is not Valid.");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-    uuu::upll_strncpy(
-         reinterpret_cast<key_vrt_if_flowfilter_entry_t*>
-         (ikey->get_key())->flowfilter_key.if_key.vrt_key.vtn_key.vtn_name,
-         rename_val->new_name,
-         (kMaxLenVtnName + 1));
-    UPLL_LOG_DEBUG("vtn rename (%s) (%s)",
-         reinterpret_cast<key_vrt_if_flowfilter_entry_t*>
-         (ikey->get_key())->flowfilter_key.if_key.vrt_key.vtn_key.vtn_name,
-         rename_val->new_name);
-    SET_USER_DATA_FLAGS(ikey, rename);
+  MoMgrImpl *mgrflist = static_cast<MoMgrImpl*>
+      ((const_cast<MoManager*> (GetMoManager(UNC_KT_FLOWLIST))));
+  result_code = mgrflist->GetChildConfigKey(okey, NULL);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_DEBUG("GetChildConfigKey fail");
+    return result_code;
+  }
+  SET_USER_DATA_CTRLR(okey, ctrlr_dom->ctrlr);
+  uuu::upll_strncpy(
+      reinterpret_cast<key_flowlist_t *>(okey->get_key())->flowlist_name,
+      reinterpret_cast<val_flowfilter_entry_t*>
+      (ikey->get_cfg_val()->get_val())->flowlist_name,
+      kMaxLenFlowListName + 1);
+  UPLL_LOG_DEBUG("flowlist name (%s) (%s)",
+                 reinterpret_cast<key_flowlist_t *>
+                 (okey->get_key())->flowlist_name,
+                 reinterpret_cast<val_flowfilter_entry_t*>
+                 (ikey->get_cfg_val()->get_val())->flowlist_name);
+
+  DbSubOp dbop1 = { kOpReadSingle, kOpMatchCtrlr, kOpInOutFlag };
+  /* ctrlr_name */
+  result_code =  mgrflist->ReadConfigDB(okey, dt_type,
+                                        UNC_OP_READ, dbop1, dmi, RENAMETBL);
+  if (( result_code != UPLL_RC_SUCCESS ) &&
+      (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
+    UPLL_LOG_DEBUG("ReadConfigDB fail");
     DELETE_IF_NOT_NULL(okey);
+    return UPLL_RC_ERR_GENERIC;
   }
-/*Vrouter_name*/
-  if (rename & VRT_RENAME_FLAG) {
-    UPLL_LOG_DEBUG("vrt renamed");
-     okey = NULL;
-     MoMgrImpl *VrtMoMgr = static_cast<MoMgrImpl*>
-    ((const_cast<MoManager*> (GetMoManager(UNC_KT_VROUTER))));
-    if (VrtMoMgr == NULL) {
-      UPLL_LOG_DEBUG("InValid Reference of VRTIF");
-      return UPLL_RC_ERR_BAD_REQUEST;
-    }
-    result_code = VrtMoMgr->GetChildConfigKey(okey, NULL);
-    if ( result_code != UPLL_RC_SUCCESS ) {
-       UPLL_LOG_DEBUG("GetChildConfigKey fail");
-       return UPLL_RC_ERR_GENERIC;
-    }
-    if (ctrlr_dom)
-      SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
-
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
-
-
-    strncpy(reinterpret_cast<char *>
-            (reinterpret_cast<key_vrt *>(okey->get_key())->vtn_key.vtn_name),
-            reinterpret_cast<const char *>
-            (reinterpret_cast<key_vrt_if_flowfilter_entry_t *>
-            (ikey->get_key())->flowfilter_key.if_key.vrt_key.vtn_key.vtn_name),
-            kMaxLenVtnName + 1);
-    UPLL_LOG_DEBUG("vrt name (%s) (%s)",
-            reinterpret_cast<char *>
-            (reinterpret_cast<key_vrt *>(okey->get_key())->vrouter_name),
-            reinterpret_cast<const char *>
-            (reinterpret_cast<key_vrt_if_flowfilter_entry_t *>
-            (ikey->get_key())->flowfilter_key.if_key.vrt_key.vrouter_name));
-    strncpy(reinterpret_cast<char *>
-            (reinterpret_cast<key_vrt *>(okey->get_key())->vrouter_name),
-            reinterpret_cast<const char *>
-            (reinterpret_cast<key_vrt_if_flowfilter_entry_t *>
-            (ikey->get_key())->flowfilter_key.if_key.vrt_key.vrouter_name),
-            kMaxLenVtnName + 1);
-    UPLL_LOG_DEBUG("vrt name (%s) (%s)",
-            reinterpret_cast<char *>
-            (reinterpret_cast<key_vrt *>(okey->get_key())->vrouter_name),
-            reinterpret_cast<const char *>
-            (reinterpret_cast<key_vrt_if_flowfilter_entry_t *>
-            (ikey->get_key())->flowfilter_key.if_key.vrt_key.vrouter_name));
-    DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutFlag };
-    /* ctrlr_name */
-    result_code =  VrtMoMgr->ReadConfigDB(okey, dt_type, UNC_OP_READ,
-                                         dbop, dmi, RENAMETBL);
-    if ( result_code != UPLL_RC_SUCCESS ) {
-       UPLL_LOG_DEBUG("ReadConfigDB fail");
-       DELETE_IF_NOT_NULL(okey);
-       return UPLL_RC_ERR_GENERIC;
-    }
-    // NULL Checks Missing
-    val_rename_vnode *rename_val =
-    reinterpret_cast <val_rename_vnode *> (GetVal(okey));
-    if (!rename_val) {
-      UPLL_LOG_DEBUG("VRT Name is not Valid.");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-    uuu::upll_strncpy(
-    reinterpret_cast<key_vrt_if_flowfilter_entry_t*>
-    (ikey->get_key())->flowfilter_key.if_key.vrt_key.vrouter_name,
-    rename_val->ctrlr_vnode_name,
-    (kMaxLenVnodeName + 1));
-    UPLL_LOG_DEBUG("vrt rename (%s) (%s)",
-    reinterpret_cast<key_vrt_if_flowfilter_entry_t*>
-    (ikey->get_key())->flowfilter_key.if_key.vrt_key.vrouter_name,
-    rename_val->ctrlr_vnode_name);
-    DELETE_IF_NOT_NULL(okey);    
-  }
-  //  flowlist_name
-  if (rename & FLOWLIST_RENAME_FLAG) {
-    UPLL_LOG_DEBUG("flowlist name renamed");
-    MoMgrImpl *mgrflist = static_cast<MoMgrImpl*>
-    ((const_cast<MoManager*> (GetMoManager(UNC_KT_FLOWLIST))));
-    result_code = mgrflist->GetChildConfigKey(okey, NULL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetChildConfigKey fail");
-      return result_code;
-    }
-    if (NULL != ctrlr_dom) {
-      SET_USER_DATA_CTRLR(okey, ctrlr_dom->ctrlr);
-    } else {
-      UPLL_LOG_DEBUG("ctrlr null");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
-    DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutFlag };
-    /* ctrlr_name */
-    result_code =  mgrflist->ReadConfigDB(okey, dt_type,
-                                UNC_OP_READ, dbop, dmi, RENAMETBL);
-    if ( result_code != UPLL_RC_SUCCESS ) {
-      UPLL_LOG_DEBUG("ReadConfigDB fail");
-      DELETE_IF_NOT_NULL(okey);
-       return UPLL_RC_ERR_GENERIC;
-    }
+  if (UPLL_RC_SUCCESS == result_code) {
     val_rename_flowlist_t *rename_val =
         reinterpret_cast <val_rename_flowlist_t*>(GetVal(okey));
 
@@ -867,26 +650,25 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::GetRenamedControllerKey(
       return UPLL_RC_ERR_GENERIC;
     }
     uuu::upll_strncpy(
-    reinterpret_cast<val_flowfilter_entry_t*>
-    (ikey->get_cfg_val()->get_val())->flowlist_name,
-    rename_val->flowlist_newname,
-    (kMaxLenFlowListName + 1));
-    DELETE_IF_NOT_NULL(okey);
+        reinterpret_cast<val_flowfilter_entry_t*>
+        (ikey->get_cfg_val()->get_val())->flowlist_name,
+        rename_val->flowlist_newname,
+        (kMaxLenFlowListName + 1));
   }
+  DELETE_IF_NOT_NULL(okey);
   UPLL_LOG_TRACE("%s GetRenamedCtrl vrt_if_ff_entry end",
                  ikey->ToStrAll().c_str());
   UPLL_LOG_DEBUG("Renamed Controller key is sucessfull.");
   return UPLL_RC_SUCCESS;
-#endif
 }
 
 upll_rc_t VrtIfFlowFilterEntryMoMgr::GetRenamedUncKey(
-  ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type, DalDmlIntf *dmi,
-  uint8_t *ctrlr_id) {
+    ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type, DalDmlIntf *dmi,
+    uint8_t *ctrlr_id) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   UPLL_LOG_TRACE("%s GetRenamedUncKey vrtifff_entry start",
-                  ikey->ToStrAll().c_str());
+                 ikey->ToStrAll().c_str());
   if ((NULL == ikey) || (ctrlr_id == NULL) || (NULL == dmi)) {
     UPLL_LOG_DEBUG("ikey/ctrlr_id dmi NULL");
     return UPLL_RC_ERR_GENERIC;
@@ -895,29 +677,29 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::GetRenamedUncKey(
   ConfigKeyVal *unc_key = NULL;
   DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutNone };
   MoMgrImpl *VrtIfMoMgr = static_cast<MoMgrImpl*>
-    ((const_cast<MoManager*> (GetMoManager(UNC_KT_VROUTER))));
+      ((const_cast<MoManager*> (GetMoManager(UNC_KT_VROUTER))));
   if (VrtIfMoMgr == NULL) {
     UPLL_LOG_DEBUG("VrtMoMgr NULL");
     return UPLL_RC_ERR_GENERIC;
   }
 
   val_rename_vnode *rename_val = reinterpret_cast<val_rename_vnode*>
-                    (ConfigKeyVal::Malloc(sizeof(val_rename_vnode)));
+      (ConfigKeyVal::Malloc(sizeof(val_rename_vnode)));
   if (!rename_val) {
     UPLL_LOG_DEBUG("VrtMoMgr NULL");
     return UPLL_RC_ERR_GENERIC;
   }
   key_vrt_if_flowfilter_entry_t *ctrlr_key = reinterpret_cast
-  <key_vrt_if_flowfilter_entry_t *> (ikey->get_key());
+      <key_vrt_if_flowfilter_entry_t *> (ikey->get_key());
   if (!ctrlr_key) {
     UPLL_LOG_DEBUG("ctrlr_key NULL");
     free(rename_val);
     return UPLL_RC_ERR_GENERIC;
   }
   uuu::upll_strncpy(
-  rename_val->ctrlr_vtn_name,
-  ctrlr_key->flowfilter_key.if_key.vrt_key.vtn_key.vtn_name,
-  (kMaxLenVtnName + 1));
+      rename_val->ctrlr_vtn_name,
+      ctrlr_key->flowfilter_key.if_key.vrt_key.vtn_key.vtn_name,
+      (kMaxLenVtnName + 1));
   rename_val->valid[UPLL_CTRLR_VTN_NAME_VALID] = UNC_VF_VALID;
 
   uuu::upll_strncpy(rename_val->ctrlr_vnode_name,
@@ -942,18 +724,21 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::GetRenamedUncKey(
   SET_USER_DATA_CTRLR(unc_key, ctrlr_id);
   unc_key->AppendCfgVal(IpctSt::kIpcStValRenameVtn, rename_val);
   result_code = VrtIfMoMgr->ReadConfigDB(unc_key, dt_type,
-  UNC_OP_READ, dbop, dmi, RENAMETBL);
+                                         UNC_OP_READ, dbop, dmi, RENAMETBL);
   if (result_code == UPLL_RC_SUCCESS) {
-    key_vrt_if_flowfilter_entry_t *key_vrt_if_flowfilter_entry =reinterpret_cast
-    <key_vrt_if_flowfilter_entry_t *> (unc_key->get_key());
+    key_vrt_if_flowfilter_entry_t *key_vrt_if_flowfilter_entry =
+        reinterpret_cast
+        <key_vrt_if_flowfilter_entry_t *> (unc_key->get_key());
     uuu::upll_strncpy(
-    ctrlr_key->flowfilter_key.if_key.vrt_key.vtn_key.vtn_name,
-    key_vrt_if_flowfilter_entry->flowfilter_key.if_key.vrt_key.vtn_key.vtn_name,
-    (kMaxLenVtnName + 1));
+        ctrlr_key->flowfilter_key.if_key.vrt_key.vtn_key.vtn_name,
+        key_vrt_if_flowfilter_entry->
+        flowfilter_key.if_key.vrt_key.vtn_key.vtn_name,
+        (kMaxLenVtnName + 1));
     uuu::upll_strncpy(
-    ctrlr_key->flowfilter_key.if_key.vrt_key.vrouter_name,
-    key_vrt_if_flowfilter_entry->flowfilter_key.if_key.vrt_key.vrouter_name,
-    (kMaxLenVnodeName + 1));
+        ctrlr_key->flowfilter_key.if_key.vrt_key.vrouter_name,
+        key_vrt_if_flowfilter_entry->
+        flowfilter_key.if_key.vrt_key.vrouter_name,
+        (kMaxLenVnodeName + 1));
   } else if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
     UPLL_LOG_DEBUG("ReadConfigDB err");
     DELETE_IF_NOT_NULL(unc_key);
@@ -966,18 +751,18 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::GetRenamedUncKey(
   val_flowfilter_entry_t *val_flowfilter_entry = NULL;
   pfcdrv_val_flowfilter_entry_t *pfc_val_import = NULL;
   if (ikey->get_cfg_val() &&
-          (ikey->get_cfg_val()->get_st_num() ==
-          IpctSt::kIpcStPfcdrvValFlowfilterEntry)) {
+      (ikey->get_cfg_val()->get_st_num() ==
+       IpctSt::kIpcStPfcdrvValFlowfilterEntry)) {
     UPLL_LOG_DEBUG("val struct num (%d)", ikey->get_cfg_val()->get_st_num());
     pfc_val_import = reinterpret_cast<pfcdrv_val_flowfilter_entry_t *>
-              (ikey->get_cfg_val()->get_val());
+        (ikey->get_cfg_val()->get_val());
     val_flowfilter_entry = &pfc_val_import->val_ff_entry;
     UPLL_LOG_DEBUG("FLOWLIST name (%s)", val_flowfilter_entry->flowlist_name);
   } else if (ikey->get_cfg_val() &&
-          (ikey->get_cfg_val()->get_st_num() ==
-          IpctSt::kIpcStValFlowfilterEntry)) {
+             (ikey->get_cfg_val()->get_st_num() ==
+              IpctSt::kIpcStValFlowfilterEntry)) {
     val_flowfilter_entry = reinterpret_cast
-                    <val_flowfilter_entry_t *>(GetVal(ikey));
+        <val_flowfilter_entry_t *>(GetVal(ikey));
   }
 
   if (!val_flowfilter_entry) {
@@ -986,71 +771,71 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::GetRenamedUncKey(
   }
 
   if (UNC_VF_VALID == val_flowfilter_entry
-                      ->valid[UPLL_IDX_FLOWLIST_NAME_FFE]) {
-  val_rename_flowlist_t *rename_flowlist =
-      reinterpret_cast<val_rename_flowlist_t*>
-                   (ConfigKeyVal::Malloc(sizeof(val_rename_flowlist_t)));
-  if (!rename_flowlist) {
-    UPLL_LOG_DEBUG("rename_flowlist NULL");
-    free(rename_flowlist);
-    return UPLL_RC_ERR_GENERIC;
-  }
+      ->valid[UPLL_IDX_FLOWLIST_NAME_FFE]) {
+    val_rename_flowlist_t *rename_flowlist =
+        reinterpret_cast<val_rename_flowlist_t*>
+        (ConfigKeyVal::Malloc(sizeof(val_rename_flowlist_t)));
+    if (!rename_flowlist) {
+      UPLL_LOG_DEBUG("rename_flowlist NULL");
+      free(rename_flowlist);
+      return UPLL_RC_ERR_GENERIC;
+    }
 
-  uuu::upll_strncpy(rename_flowlist->flowlist_newname,
-                    val_flowfilter_entry->flowlist_name,
-                    (kMaxLenFlowListName + 1));
-  rename_flowlist->valid[UPLL_IDX_RENAME_FLOWLIST_RFL] = UNC_VF_VALID;
+    uuu::upll_strncpy(rename_flowlist->flowlist_newname,
+                      val_flowfilter_entry->flowlist_name,
+                      (kMaxLenFlowListName + 1));
+    rename_flowlist->valid[UPLL_IDX_RENAME_FLOWLIST_RFL] = UNC_VF_VALID;
 
-  MoMgrImpl* mgr =static_cast<MoMgrImpl*>
-  ((const_cast<MoManager*> (GetMoManager(UNC_KT_FLOWLIST))));
-  if (!mgr) {
-    UPLL_LOG_DEBUG("mgr failed");
-    if (rename_flowlist) free(rename_flowlist);
-    return UPLL_RC_ERR_GENERIC;
-  }
+    MoMgrImpl* mgr =static_cast<MoMgrImpl*>
+        ((const_cast<MoManager*> (GetMoManager(UNC_KT_FLOWLIST))));
+    if (!mgr) {
+      UPLL_LOG_DEBUG("mgr failed");
+      if (rename_flowlist) free(rename_flowlist);
+      return UPLL_RC_ERR_GENERIC;
+    }
 
-  result_code = mgr->GetChildConfigKey(unc_key, NULL);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("GetChildConfigKey fail");
-    free(rename_flowlist);
-    mgr = NULL;
-    return result_code;
-  }
-  if (!unc_key) {
-    UPLL_LOG_DEBUG("unc_key NULL");
-    free(rename_flowlist);
-    mgr = NULL;
-    return result_code;
-  }
-  SET_USER_DATA_CTRLR(unc_key, ctrlr_id);
-  unc_key->AppendCfgVal(IpctSt::kIpcStValRenameFlowlist, rename_flowlist);
-  result_code = mgr->ReadConfigDB(unc_key, dt_type, UNC_OP_READ, dbop, dmi,
-                                RENAMETBL);
-  if (result_code == UPLL_RC_SUCCESS) {
-    key_flowlist_t *key_flowlist = reinterpret_cast <key_flowlist_t *>
-    (unc_key->get_key());
-    uuu::upll_strncpy(val_flowfilter_entry->flowlist_name,
-       key_flowlist->flowlist_name,
-       (kMaxLenFlowListName + 1));
-  } else if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
-    UPLL_LOG_DEBUG("ReadConfigDB err");
+    result_code = mgr->GetChildConfigKey(unc_key, NULL);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG("GetChildConfigKey fail");
+      free(rename_flowlist);
+      mgr = NULL;
+      return result_code;
+    }
+    if (!unc_key) {
+      UPLL_LOG_DEBUG("unc_key NULL");
+      free(rename_flowlist);
+      mgr = NULL;
+      return result_code;
+    }
+    SET_USER_DATA_CTRLR(unc_key, ctrlr_id);
+    unc_key->AppendCfgVal(IpctSt::kIpcStValRenameFlowlist, rename_flowlist);
+    result_code = mgr->ReadConfigDB(unc_key, dt_type, UNC_OP_READ, dbop, dmi,
+                                    RENAMETBL);
+    if (result_code == UPLL_RC_SUCCESS) {
+      key_flowlist_t *key_flowlist = reinterpret_cast <key_flowlist_t *>
+          (unc_key->get_key());
+      uuu::upll_strncpy(val_flowfilter_entry->flowlist_name,
+                        key_flowlist->flowlist_name,
+                        (kMaxLenFlowListName + 1));
+    } else if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+      UPLL_LOG_DEBUG("ReadConfigDB err");
+      DELETE_IF_NOT_NULL(unc_key);
+      mgr = NULL;
+      return result_code;
+    }
+    UPLL_LOG_DEBUG("Key is filled with UncKey Successfully %d", result_code);
     DELETE_IF_NOT_NULL(unc_key);
     mgr = NULL;
-    return result_code;
-  }
-  UPLL_LOG_DEBUG("Key is filled with UncKey Successfully %d", result_code);
-  DELETE_IF_NOT_NULL(unc_key);
-  mgr = NULL;
   }
 
   if ((UNC_VF_VALID ==
-      val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_NODE_FFE]) &&
+       val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_NODE_FFE]) &&
       (UNC_VF_VALID ==
-      val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_PORT_FFE])) {
+       val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_PORT_FFE])) {
     unc_key_type_t child_key[]= { UNC_KT_VBRIDGE, UNC_KT_VROUTER };
     bool isRedirectVnodeVbridge = false;
     for (unsigned int i = 0;
-      i < sizeof(child_key)/sizeof(child_key[0]); i++) {
+         i < sizeof(child_key)/sizeof(child_key[0]); i++) {
       const unc_key_type_t ktype = child_key[i];
       MoMgrImpl *mgrvbr = reinterpret_cast<MoMgrImpl *>(
           const_cast<MoManager *>(GetMoManager(ktype)));
@@ -1059,15 +844,15 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::GetRenamedUncKey(
         return UPLL_RC_ERR_GENERIC;
       }
       val_rename_vnode *rename_val = reinterpret_cast<val_rename_vnode*>
-        (ConfigKeyVal::Malloc(sizeof(val_rename_vnode)));
+          (ConfigKeyVal::Malloc(sizeof(val_rename_vnode)));
       if (!rename_val) {
         UPLL_LOG_TRACE("rename_val NULL");
         return UPLL_RC_ERR_GENERIC;
       }
 
       uuu::upll_strncpy(rename_val->ctrlr_vnode_name,
-                       val_flowfilter_entry->redirect_node,
-                       (kMaxLenVnodeName + 1));
+                        val_flowfilter_entry->redirect_node,
+                        (kMaxLenVnodeName + 1));
       rename_val->valid[UPLL_CTRLR_VNODE_NAME_VALID] = UNC_VF_VALID;
 
       result_code = mgrvbr->GetChildConfigKey(unc_key, NULL);
@@ -1079,10 +864,14 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::GetRenamedUncKey(
       }
       SET_USER_DATA_CTRLR(unc_key, ctrlr_id);
       unc_key->AppendCfgVal(IpctSt::kIpcStValRenameVtn, rename_val);
-      result_code = mgrvbr->ReadConfigDB(unc_key, dt_type, UNC_OP_READ, dbop, dmi,
-        RENAMETBL);
+      result_code = mgrvbr->ReadConfigDB(unc_key,
+                                         dt_type,
+                                         UNC_OP_READ,
+                                         dbop,
+                                         dmi,
+                                         RENAMETBL);
       if ((UPLL_RC_SUCCESS != result_code) &&
-        (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
+          (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
         UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
         DELETE_IF_NOT_NULL(unc_key);
         mgrvbr = NULL;
@@ -1094,13 +883,13 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::GetRenamedUncKey(
           isRedirectVnodeVbridge = true;
           key_vbr *vbr_key = reinterpret_cast<key_vbr *>(unc_key->get_key());
           uuu::upll_strncpy(val_flowfilter_entry->redirect_node,
-                          vbr_key->vbridge_name,
-                          (kMaxLenVnodeName + 1));
+                            vbr_key->vbridge_name,
+                            (kMaxLenVnodeName + 1));
         } else if (unc_key->get_key_type() == UNC_KT_VROUTER) {
           key_vrt *vrt_key = reinterpret_cast<key_vrt *>(unc_key->get_key());
           uuu::upll_strncpy(val_flowfilter_entry->redirect_node,
-                           vrt_key->vrouter_name,
-                          (kMaxLenVnodeName + 1));
+                            vrt_key->vrouter_name,
+                            (kMaxLenVnodeName + 1));
         }
       }
       DELETE_IF_NOT_NULL(unc_key);
@@ -1114,7 +903,7 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::GetRenamedUncKey(
   if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code)
     result_code = UPLL_RC_SUCCESS;
   UPLL_LOG_TRACE("%s GetRenamedUncKey vbrifff_entry end",
-                  ikey->ToStrAll().c_str());
+                 ikey->ToStrAll().c_str());
   return result_code;
 }
 
@@ -1128,7 +917,7 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::GetChildConfigKey(
   if (parent_key == NULL) {
     vrt_if_ffe_key = reinterpret_cast<key_vrt_if_flowfilter_entry_t*>
         (ConfigKeyVal::Malloc(sizeof(key_vrt_if_flowfilter_entry_t)));
-    // If no direction is specified , 0xFE is filled to bind output direction
+    //  If no direction is specified , 0xFE is filled to bind output direction
     vrt_if_ffe_key->flowfilter_key.direction = 0xFE;
     okey = new ConfigKeyVal(UNC_KT_VRTIF_FLOWFILTER_ENTRY,
                             IpctSt::kIpcStKeyVrtIfFlowfilterEntry,
@@ -1151,7 +940,7 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::GetChildConfigKey(
   } else {
     vrt_if_ffe_key = reinterpret_cast<key_vrt_if_flowfilter_entry_t *>
         (ConfigKeyVal::Malloc(sizeof(key_vrt_if_flowfilter_entry_t)));
-    // If no direction is specified , 0xFE is filled to bind output direction
+    //  If no direction is specified , 0xFE is filled to bind output direction
     vrt_if_ffe_key->flowfilter_key.direction = 0xFE;
   }
   switch (parent_key->get_key_type()) {
@@ -1260,9 +1049,9 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::GetChildConfigKey(
 }
 
 upll_rc_t VrtIfFlowFilterEntryMoMgr::MergeValidate(unc_key_type_t keytype,
-    const char *ctrlr_id,
-    ConfigKeyVal *ikey,
-    DalDmlIntf *dmi) {
+                                                   const char *ctrlr_id,
+                                                   ConfigKeyVal *ikey,
+                                                   DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *ckval = NULL;
@@ -1277,7 +1066,7 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::MergeValidate(unc_key_type_t keytype,
   }
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutNone};
   result_code = ReadConfigDB(ckval, UPLL_DT_IMPORT,
-              UNC_OP_READ, dbop, dmi, MAINTBL);
+                             UNC_OP_READ, dbop, dmi, MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     DELETE_IF_NOT_NULL(ckval);
     if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
@@ -1289,26 +1078,26 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::MergeValidate(unc_key_type_t keytype,
 
   while (NULL != ckval) {
     val_flowfilter_entry_t* val = reinterpret_cast<val_flowfilter_entry_t *>
-    (GetVal(ckval));
+        (GetVal(ckval));
     if (val->valid[UPLL_IDX_REDIRECT_NODE_FFE] ==
         UNC_VF_VALID) {
-       if (val->valid[UPLL_IDX_REDIRECT_PORT_FFE] ==
-           UNC_VF_VALID) {
-         result_code = VerifyRedirectDestination(ckval, dmi, UPLL_DT_IMPORT);
-         if (result_code != UPLL_RC_SUCCESS) {
-            DELETE_IF_NOT_NULL(ckval);
-            UPLL_LOG_DEBUG("redirect-destination node/interface doesn't exists");
-            return UPLL_RC_ERR_MERGE_CONFLICT;
-          }
+      if (val->valid[UPLL_IDX_REDIRECT_PORT_FFE] ==
+          UNC_VF_VALID) {
+        result_code = VerifyRedirectDestination(ckval, dmi, UPLL_DT_IMPORT);
+        if (result_code != UPLL_RC_SUCCESS) {
+          DELETE_IF_NOT_NULL(ckval);
+          UPLL_LOG_DEBUG("redirect-destination node/interface doesn't exists");
+          return UPLL_RC_ERR_MERGE_CONFLICT;
         }
+      }
     }
     ckval = ckval->get_next_cfg_key_val();
   }
 
   DELETE_IF_NOT_NULL(ckval);
   MoMgrImpl *mgr =
-    reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-            UNC_KT_VRTIF_FLOWFILTER)));
+      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                  UNC_KT_VRTIF_FLOWFILTER)));
   if (!mgr) {
     UPLL_LOG_DEBUG("Invalid mgr param");
     return UPLL_RC_ERR_GENERIC;
@@ -1332,8 +1121,8 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
     return UPLL_RC_ERR_GENERIC;
   }
   if (req->get_key_type() != UNC_KT_VRTIF_FLOWFILTER_ENTRY) {
-     UPLL_LOG_DEBUG(" DupConfigKeyval Failed.");
-     return UPLL_RC_ERR_GENERIC;
+    UPLL_LOG_DEBUG(" DupConfigKeyval Failed.");
+    return UPLL_RC_ERR_GENERIC;
   }
   ConfigVal *tmp1 = NULL, *tmp = (req)->get_cfg_val();
   if (tmp) {
@@ -1356,13 +1145,13 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
   key_vrt_if_flowfilter_entry_t *ikey =
       reinterpret_cast<key_vrt_if_flowfilter_entry_t *>(tkey);
   key_vrt_if_flowfilter_entry_t *key_vrt_if_ffe =
-     reinterpret_cast<key_vrt_if_flowfilter_entry_t*>
-        (ConfigKeyVal::Malloc(sizeof(key_vrt_if_flowfilter_entry_t)));
+      reinterpret_cast<key_vrt_if_flowfilter_entry_t*>
+      (ConfigKeyVal::Malloc(sizeof(key_vrt_if_flowfilter_entry_t)));
 
   memcpy(key_vrt_if_ffe, ikey, sizeof(key_vrt_if_flowfilter_entry_t));
   okey = new ConfigKeyVal(UNC_KT_VRTIF_FLOWFILTER_ENTRY,
-                        IpctSt::kIpcStKeyVrtIfFlowfilterEntry,
-                        key_vrt_if_ffe, tmp1);
+                          IpctSt::kIpcStKeyVrtIfFlowfilterEntry,
+                          key_vrt_if_ffe, tmp1);
   if (okey) {
     SET_USER_DATA(okey, req);
   }
@@ -1387,7 +1176,7 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::ReadMo(IpcReqRespHeader *req,
 
   memset(&ctrlr_dom, 0, sizeof(controller_domain));
   switch (req->datatype) {
-    // Retrieving config information
+    //  Retrieving config information
     case UPLL_DT_CANDIDATE:
     case UPLL_DT_RUNNING:
     case UPLL_DT_STARTUP:
@@ -1398,7 +1187,7 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::ReadMo(IpcReqRespHeader *req,
           UPLL_LOG_DEBUG(" Read request failed result(%d)", result_code);
           return result_code;
         }
-        // Retrieving state information
+        //  Retrieving state information
       } else if ((req->datatype == UPLL_DT_STATE) &&
                  (req->option1 == UNC_OPT1_DETAIL)&&
                  (req->option2 == UNC_OPT2_NONE)) {
@@ -1423,11 +1212,12 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::ReadMo(IpcReqRespHeader *req,
         }
         GET_USER_DATA_CTRLR_DOMAIN(dup_key, ctrlr_dom);
         SET_USER_DATA_CTRLR_DOMAIN(l_key, ctrlr_dom);
-     
-        //Added CapaCheck
+
+        // Added CapaCheck
         UPLL_LOG_DEBUG("Calling ValidateCapability From ReadMo ");
         result_code = ValidateCapability(req, ikey,
-                   reinterpret_cast<const char *>(ctrlr_dom.ctrlr));
+                                         reinterpret_cast<const char *>
+                                         (ctrlr_dom.ctrlr));
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("validate Capability Failed %d", result_code);
           DELETE_IF_NOT_NULL(dup_key);
@@ -1435,7 +1225,7 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::ReadMo(IpcReqRespHeader *req,
           return result_code;
         }
 
-       // 1.Getting renamed name if renamed
+        //  1.Getting renamed name if renamed
         result_code = GetRenamedControllerKey(l_key, req->datatype,
                                               dmi, &ctrlr_dom);
         if (result_code != UPLL_RC_SUCCESS) {
@@ -1470,7 +1260,7 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::ReadMo(IpcReqRespHeader *req,
         l_key->SetCfgVal(new ConfigVal(IpctSt::kIpcStPfcdrvValFlowfilterEntry,
                                        pfc_val));
 
-        // 2.send request to driver
+        //  2.send request to driver
         IpcResponse ipc_resp;
         memset(&ipc_resp, 0, sizeof(IpcResponse));
         IpcRequest ipc_req;
@@ -1482,10 +1272,10 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::ReadMo(IpcReqRespHeader *req,
         ipc_req.header.datatype = req->datatype;
         ipc_req.ckv_data = l_key;
         if (!IpcUtil::SendReqToDriver(
-                    (const char *)ctrlr_dom.ctrlr,
-                    reinterpret_cast<char *>(ctrlr_dom.domain),
-                    PFCDRIVER_SERVICE_NAME, PFCDRIVER_SVID_LOGICAL,
-                    &ipc_req, true, &ipc_resp)) {
+                (const char *)ctrlr_dom.ctrlr,
+                reinterpret_cast<char *>(ctrlr_dom.domain),
+                PFCDRIVER_SERVICE_NAME, PFCDRIVER_SVID_LOGICAL,
+                &ipc_req, true, &ipc_resp)) {
           UPLL_LOG_DEBUG("SendReqToDriver failed for Key %d controller %s",
                          l_key->get_key_type(),
                          reinterpret_cast<char *>(ctrlr_dom.ctrlr));
@@ -1497,8 +1287,8 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::ReadMo(IpcReqRespHeader *req,
 
         if (ipc_resp.header.result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("Driver response for Key %d controller %s result %d",
-                        l_key->get_key_type(), ctrlr_dom.ctrlr,
-                        ipc_resp.header.result_code);
+                         l_key->get_key_type(), ctrlr_dom.ctrlr,
+                         ipc_resp.header.result_code);
           DELETE_IF_NOT_NULL(ipc_req.ckv_data);
           DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
           DELETE_IF_NOT_NULL(dup_key);
@@ -1556,7 +1346,7 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
 
   memset(&ctrlr_dom, 0, sizeof(controller_domain));
   switch (req->datatype) {
-    // Retrieving config information
+    //  Retrieving config information
     case UPLL_DT_CANDIDATE:
     case UPLL_DT_RUNNING:
     case UPLL_DT_STARTUP:
@@ -1582,7 +1372,8 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
 
         result_code =  DupConfigKeyVal(dup_key, tctrl_key, MAINTBL);
         if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG(" DupConfigKeyVal failed for dup_key%d ", result_code);
+          UPLL_LOG_DEBUG(" DupConfigKeyVal failed for dup_key%d ",
+                         result_code);
           return result_code;
         }
 
@@ -1601,15 +1392,16 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
         }
         GET_USER_DATA_CTRLR_DOMAIN(dup_key, ctrlr_dom);
         SET_USER_DATA_CTRLR_DOMAIN(l_key, ctrlr_dom);
-         //Added CapaCheck
+        // Added CapaCheck
         result_code = ValidateCapability(req, ikey,
-                   reinterpret_cast<const char *>(ctrlr_dom.ctrlr));
+                                         reinterpret_cast<const char *>
+                                         (ctrlr_dom.ctrlr));
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("validate Capability Failed %d", result_code);
           return result_code;
         }
 
-       // 1.Getting renamed name if renamed
+        //  1.Getting renamed name if renamed
         result_code = GetRenamedControllerKey(l_key, req->datatype,
                                               dmi, &ctrlr_dom);
         if (result_code != UPLL_RC_SUCCESS) {
@@ -1652,7 +1444,7 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
 
         l_key->SetCfgVal(new ConfigVal(IpctSt::kIpcStPfcdrvValFlowfilterEntry,
                                        pfc_val));
-        // 2.send request to driver
+        //  2.send request to driver
         IpcResponse ipc_resp;
         memset(&ipc_resp, 0, sizeof(IpcResponse));
         IpcRequest ipc_req;
@@ -1674,10 +1466,10 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
               (tmp_key->get_key())->sequence_num;
           ipc_req.ckv_data = l_key;
           if (!IpcUtil::SendReqToDriver(
-                      (const char *)ctrlr_dom.ctrlr,
-                      reinterpret_cast<char *>(ctrlr_dom.domain),
-                      PFCDRIVER_SERVICE_NAME, PFCDRIVER_SVID_LOGICAL,
-                      &ipc_req, true, &ipc_resp)) {
+                  (const char *)ctrlr_dom.ctrlr,
+                  reinterpret_cast<char *>(ctrlr_dom.domain),
+                  PFCDRIVER_SERVICE_NAME, PFCDRIVER_SVID_LOGICAL,
+                  &ipc_req, true, &ipc_resp)) {
             UPLL_LOG_DEBUG("SendReqToDriver failed for Key %d controller %s",
                            l_key->get_key_type(),
                            reinterpret_cast<char *>(ctrlr_dom.ctrlr));
@@ -1685,7 +1477,8 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
           }
 
           if (ipc_resp.header.result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("Driver response for Key %d controller %s result %d",
+            UPLL_LOG_DEBUG("Driver response for Key %d controller"
+                           "%s result %d",
                            l_key->get_key_type(), ctrlr_dom.ctrlr,
                            ipc_resp.header.result_code);
             return ipc_resp.header.result_code;
@@ -1693,7 +1486,7 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
 
           result_code = ConstructReadDetailResponse(tmp_key,
                                                     ipc_resp.ckv_data,
-                                                     &okey);
+                                                    &okey);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("ConstructReadDetailResponse error code (%d)",
                            result_code);
@@ -1716,17 +1509,17 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
 
 #if 0
 upll_rc_t VrtIfFlowFilterEntryMoMgr::UpdateConfigStatus(
-  ConfigKeyVal *key, unc_keytype_operation_t op, uint32_t driver_result,
-  ConfigKeyVal *upd_key, DalDmlIntf *dmi, ConfigKeyVal *ctrlr_key) {
+    ConfigKeyVal *key, unc_keytype_operation_t op, uint32_t driver_result,
+    ConfigKeyVal *upd_key, DalDmlIntf *dmi, ConfigKeyVal *ctrlr_key) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
   val_flowfilter_entry_t *vrtif_ff_entry_val = NULL;
   unc_keytype_configstatus_t cs_status =
-  (driver_result == 0) ? UNC_CS_APPLIED : UNC_CS_NOT_APPLIED;
+      (driver_result == 0) ? UNC_CS_APPLIED : UNC_CS_NOT_APPLIED;
 
   vrtif_ff_entry_val = reinterpret_cast<val_flowfilter_entry_t *>
-                               (GetVal(key));
+      (GetVal(key));
 
   if (vrtif_ff_entry_val == NULL) {
     UPLL_LOG_DEBUG("vrtif_ff_entry_val is Null");
@@ -1735,34 +1528,34 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::UpdateConfigStatus(
 
   if (op == UNC_OP_CREATE) {
     if (vrtif_ff_entry_val->cs_row_status != UNC_CS_NOT_SUPPORTED)
-        vrtif_ff_entry_val->cs_row_status = cs_status;
-       for (unsigned int loop = 0;
-        loop < (sizeof(vrtif_ff_entry_val->valid)/
-               sizeof(vrtif_ff_entry_val->valid[0])); ++loop) {
-        if ((UNC_VF_VALID == vrtif_ff_entry_val->valid[loop])
-        || (UNC_VF_VALID_NO_VALUE == vrtif_ff_entry_val->valid[loop]))
-          if (vrtif_ff_entry_val->cs_attr[loop] != UNC_CS_NOT_SUPPORTED)
-            vrtif_ff_entry_val->cs_attr[loop] =
-                            vrtif_ff_entry_val->cs_row_status;
-     }
+      vrtif_ff_entry_val->cs_row_status = cs_status;
+    for (unsigned int loop = 0;
+         loop < (sizeof(vrtif_ff_entry_val->valid)/
+                 sizeof(vrtif_ff_entry_val->valid[0])); ++loop) {
+      if ((UNC_VF_VALID == vrtif_ff_entry_val->valid[loop])
+          || (UNC_VF_VALID_NO_VALUE == vrtif_ff_entry_val->valid[loop]))
+        if (vrtif_ff_entry_val->cs_attr[loop] != UNC_CS_NOT_SUPPORTED)
+          vrtif_ff_entry_val->cs_attr[loop] =
+              vrtif_ff_entry_val->cs_row_status;
+    }
   } else if (op == UNC_OP_UPDATE) {
     void *fle_val1 = GetVal(key);
     void *fle_val2 = GetVal(upd_key);
     CompareValidValue(fle_val1, fle_val2, true);
     for (unsigned int loop = 0;
          loop < sizeof(vrtif_ff_entry_val->valid)/
-                sizeof(vrtif_ff_entry_val->valid[0]); ++loop) {
+         sizeof(vrtif_ff_entry_val->valid[0]); ++loop) {
       if (vrtif_ff_entry_val->cs_attr[loop] != UNC_CS_NOT_SUPPORTED)
-      if ((UNC_VF_VALID == vrtif_ff_entry_val->valid[loop])
-        ||(UNC_VF_VALID_NO_VALUE == vrtif_ff_entry_val->valid[loop]))
-         //  if (CompareVal(vrtif_ff_entry_val, upd_key->GetVal()))
-        vrtif_ff_entry_val->cs_attr[loop] =
-        vrtif_ff_entry_val->cs_row_status;
-    }
-    } else {
-      UPLL_LOG_DEBUG("Operation Not Supported.");
-      return UPLL_RC_ERR_GENERIC;
+        if ((UNC_VF_VALID == vrtif_ff_entry_val->valid[loop])
+            ||(UNC_VF_VALID_NO_VALUE == vrtif_ff_entry_val->valid[loop]))
+          //   if (CompareVal(vrtif_ff_entry_val, upd_key->GetVal()))
+          vrtif_ff_entry_val->cs_attr[loop] =
+              vrtif_ff_entry_val->cs_row_status;
     }
+  } else {
+    UPLL_LOG_DEBUG("Operation Not Supported.");
+    return UPLL_RC_ERR_GENERIC;
+  }
   UPLL_LOG_DEBUG("UpdateConfigStatus Success");
   return result_code;
 }
@@ -1790,8 +1583,9 @@ bool VrtIfFlowFilterEntryMoMgr::IsValidKey(void *key,
       break;
     case uudst::vrt_if_flowfilter_entry::kDbiVrtName:
       ret_val = ValidateKey(reinterpret_cast<char *>
-                        (ff_key->flowfilter_key.if_key.vrt_key.vrouter_name),
-                        kMinLenVnodeName, kMaxLenVnodeName);
+                            (ff_key->
+                             flowfilter_key.if_key.vrt_key.vrouter_name),
+                            kMinLenVnodeName, kMaxLenVnodeName);
       if (ret_val != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("VRT Name is not valid(%d)", ret_val);
         return false;
@@ -1808,12 +1602,12 @@ bool VrtIfFlowFilterEntryMoMgr::IsValidKey(void *key,
       break;
     case uudst::vrt_if_flowfilter_entry::kDbiInputDirection:
       if (ff_key->flowfilter_key.direction == 0xFE) {
-        // if operation is read sibling begin or
-        // read sibling count return false
-        // for output binding
+        //  if operation is read sibling begin or
+        //  read sibling count return false
+        //  for output binding
         ff_key->flowfilter_key.direction = 0;
         return false;
-       }
+      }
       if (!ValidateNumericRange(ff_key->flowfilter_key.direction,
                                 (uint8_t) UPLL_FLOWFILTER_DIR_IN,
                                 (uint8_t) UPLL_FLOWFILTER_DIR_OUT,
@@ -1822,7 +1616,7 @@ bool VrtIfFlowFilterEntryMoMgr::IsValidKey(void *key,
         return false;
       }
       break;
-     case uudst::vrt_if_flowfilter_entry::kDbiSequenceNum:
+    case uudst::vrt_if_flowfilter_entry::kDbiSequenceNum:
       if (!ValidateNumericRange(ff_key->sequence_num,
                                 kMinFlowFilterSeqNum,
                                 kMaxFlowFilterSeqNum,
@@ -1840,15 +1634,21 @@ bool VrtIfFlowFilterEntryMoMgr::IsValidKey(void *key,
 }
 
 
-upll_rc_t VrtIfFlowFilterEntryMoMgr::IsReferenced(ConfigKeyVal *ikey,
-                                           upll_keytype_datatype_t dt_type,
-                                           DalDmlIntf *dmi) {
+upll_rc_t VrtIfFlowFilterEntryMoMgr::IsReferenced(
+    ConfigKeyVal *ikey,
+    upll_keytype_datatype_t dt_type,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
   if (NULL == ikey) return UPLL_RC_ERR_BAD_REQUEST;
   DbSubOp dbop = { kOpReadExist, kOpMatchNone, kOpInOutNone };
-  // Check the object existence
-  result_code = UpdateConfigDB(ikey, dt_type, UNC_OP_READ, dmi, &dbop, MAINTBL);
+  //  Check the object existence
+  result_code = UpdateConfigDB(ikey,
+                               dt_type,
+                               UNC_OP_READ,
+                               dmi,
+                               &dbop,
+                               MAINTBL);
   return result_code;
 }
 
@@ -1864,107 +1664,66 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
     UPLL_LOG_DEBUG("input key is null");
     return UPLL_RC_ERR_GENERIC;
   }
-
+  MoMgrImpl *mgr = NULL;
   key_vrt_if_flowfilter_entry_t *key_vrtif_ffe =
       reinterpret_cast<key_vrt_if_flowfilter_entry_t *>(ikey->get_key());
-  MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>
-      (const_cast<MoManager *>(GetMoManager(UNC_KT_VRTIF_FLOWFILTER)));
-
-  result_code = mgr->GetChildConfigKey(okey, NULL);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("GetChildConfigKey failed - %d", result_code);
-    return result_code;
-  }
-
-  key_vrt_if_flowfilter_t *vrtif_ff_key =
-      reinterpret_cast<key_vrt_if_flowfilter_t *>(okey->get_key());
-
-  uuu::upll_strncpy(vrtif_ff_key->if_key.vrt_key.vtn_key.vtn_name,
-        key_vrtif_ffe->flowfilter_key.if_key.vrt_key.vtn_key.vtn_name,
-        kMaxLenVtnName + 1);
-
-  uuu::upll_strncpy(vrtif_ff_key->if_key.vrt_key.vrouter_name,
-        key_vrtif_ffe->flowfilter_key.if_key.vrt_key.vrouter_name,
-        kMaxLenVnodeName + 1);
-
-  uuu::upll_strncpy(vrtif_ff_key->if_key.if_name,
-        key_vrtif_ffe->flowfilter_key.if_key.if_name,
-        kMaxLenInterfaceName + 1);
-
-  vrtif_ff_key->direction = key_vrtif_ffe->flowfilter_key.direction;
-
-  /* Checks the given vrt_if_flowfilter exists in DB or not */
-  result_code = mgr->UpdateConfigDB(okey, req->datatype, UNC_OP_READ,
-                                    dmi, MAINTBL);
-
-  if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
-    UPLL_LOG_DEBUG(" Parent VRT_IF_FLOWFILTER key does not exists");
-    delete okey;
-    okey = NULL;
-    return UPLL_RC_ERR_PARENT_DOES_NOT_EXIST;
-  } else {
-    result_code = UPLL_RC_SUCCESS;
-  }
-
-  delete okey;
-  okey = NULL;
 
   /* read val_flowfilter_entry from ikey*/
   val_flowfilter_entry_t *val_flowfilter_entry =
-    static_cast<val_flowfilter_entry_t *>(
-        ikey->get_cfg_val()->get_val());
+      static_cast<val_flowfilter_entry_t *>(
+          ikey->get_cfg_val()->get_val());
 
   if (val_flowfilter_entry->valid[UPLL_IDX_FLOWLIST_NAME_FFE]
-        == UNC_VF_VALID) {
-  /* validate flowlist_name in val_flowfilter_entry exists in FLOWLIST table*/
-  mgr = reinterpret_cast<MoMgrImpl *>
-      (const_cast<MoManager *>(GetMoManager(UNC_KT_FLOWLIST)));
+      == UNC_VF_VALID) {
+    /* validate flowlist_name in val_flowfilter_entry exists in FLOWLIST table*/
+    mgr = reinterpret_cast<MoMgrImpl *>
+        (const_cast<MoManager *>(GetMoManager(UNC_KT_FLOWLIST)));
 
-  if (NULL == mgr) {
-    UPLL_LOG_DEBUG("Unable to get FLOWLIST object");
-    return UPLL_RC_ERR_GENERIC;
-  }
+    if (NULL == mgr) {
+      UPLL_LOG_DEBUG("Unable to get FLOWLIST object");
+      return UPLL_RC_ERR_GENERIC;
+    }
 
-  /** allocate memory for FLOWLIST key_struct */
-  result_code = mgr->GetChildConfigKey(okey, NULL);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Memory allocation failed for FLOWLIST key struct - %d",
-                    result_code);
-    return result_code;
-  }
+    /** allocate memory for FLOWLIST key_struct */
+    result_code = mgr->GetChildConfigKey(okey, NULL);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("Memory allocation failed for FLOWLIST key struct - %d",
+                     result_code);
+      return result_code;
+    }
 
-  /** fill key_flowlist_t from val_flowfilter_entry*/
-  key_flowlist_t *key_flowlist = static_cast<key_flowlist_t*>(
-    okey->get_key());
-  uuu::upll_strncpy(key_flowlist->flowlist_name,
-    val_flowfilter_entry->flowlist_name,
-    kMaxLenFlowListName+1);
+    /** fill key_flowlist_t from val_flowfilter_entry*/
+    key_flowlist_t *key_flowlist = static_cast<key_flowlist_t*>(
+        okey->get_key());
+    uuu::upll_strncpy(key_flowlist->flowlist_name,
+                      val_flowfilter_entry->flowlist_name,
+                      kMaxLenFlowListName+1);
 
-  UPLL_LOG_TRACE("Flowlist name in val_flowfilter_entry %s",
-                 key_flowlist->flowlist_name);
+    UPLL_LOG_TRACE("Flowlist name in val_flowfilter_entry %s",
+                   key_flowlist->flowlist_name);
 
-  /* Check flowlist_name exists in table*/
-  result_code = mgr->UpdateConfigDB(okey, req->datatype,
-                                     UNC_OP_READ, dmi, MAINTBL);
+    /* Check flowlist_name exists in table*/
+    result_code = mgr->UpdateConfigDB(okey, req->datatype,
+                                      UNC_OP_READ, dmi, MAINTBL);
+
+    if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
+      UPLL_LOG_DEBUG("Flowlist name in val_flowfilter_entry does not exists"
+                     "in FLOWLIST table");
+      delete okey;
+      okey = NULL;
+      return UPLL_RC_ERR_CFG_SEMANTIC;
+    } else {
+      result_code = UPLL_RC_SUCCESS;
+    }
 
-  if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
-    UPLL_LOG_DEBUG("Flowlist name in val_flowfilter_entry does not exists"
-                   "in FLOWLIST table");
     delete okey;
     okey = NULL;
-    return UPLL_RC_ERR_CFG_SEMANTIC;
-  } else {
-    result_code = UPLL_RC_SUCCESS;
-  }
-
-  delete okey;
-  okey = NULL;
   }
   if (val_flowfilter_entry->valid[UPLL_IDX_NWM_NAME_FFE]
-        == UNC_VF_VALID) {
-    // validate nwm_name in KT_VBR_NWMONITOR table
+      == UNC_VF_VALID) {
+    //  validate nwm_name in KT_VBR_NWMONITOR table
     mgr = reinterpret_cast<MoMgrImpl *>
-       (const_cast<MoManager *>(GetMoManager(UNC_KT_VBR_NWMONITOR)));
+        (const_cast<MoManager *>(GetMoManager(UNC_KT_VBR_NWMONITOR)));
 
     if (NULL == mgr) {
       UPLL_LOG_DEBUG("Unable to get KT_VBR_NWMONITOR object");
@@ -1975,30 +1734,31 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
     result_code = mgr->GetChildConfigKey(okey, NULL);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Memory allocation failed for key_nwm struct - %d",
-                    result_code);
+                     result_code);
       return result_code;
     }
 
     /** fill key_nwm from key/val VRTIF_FLOWFILTER_ENTRY structs*/
     key_nwm_t *key_nwm = static_cast<key_nwm_t*>(
-      okey->get_key());
+        okey->get_key());
 
     uuu::upll_strncpy(key_nwm->nwmonitor_name,
-      val_flowfilter_entry->nwm_name,
-      kMaxLenVnodeName+1);
+                      val_flowfilter_entry->nwm_name,
+                      kMaxLenVnodeName+1);
 
     uuu::upll_strncpy(key_nwm->vbr_key.vtn_key.vtn_name,
-      key_vrtif_ffe->flowfilter_key.if_key.vrt_key.vtn_key.vtn_name,
-      kMaxLenVtnName+1);
+                      key_vrtif_ffe->
+                      flowfilter_key.if_key.vrt_key.vtn_key.vtn_name,
+                      kMaxLenVtnName+1);
 
     /* Check nwm_name exists in table*/
     DbSubOp dbop = {kOpReadSingle, kOpMatchNone, kOpInOutNone};
     result_code = mgr->ReadConfigDB(okey, req->datatype, UNC_OP_READ,
-                                     dbop, dmi, MAINTBL);
+                                    dbop, dmi, MAINTBL);
 
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("NWM name in val_flowfilter_entry does not exists"
-                   "in KT_VBR_NWMONITOR table");
+                     "in KT_VBR_NWMONITOR table");
       delete okey;
       okey = NULL;
       return UPLL_RC_ERR_CFG_SEMANTIC;
@@ -2008,12 +1768,7 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
 
     delete okey;
     okey = NULL;
-  }  // nwm_name is valid
-  result_code = SetRenameFlag(ikey, dmi, req);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("SetRenameFlag failed %d", result_code);
-    return result_code;
-  }
+  }  //  nwm_name is valid
   UPLL_LOG_DEBUG("ValidateAttribute Successfull.");
   return result_code;
 }
@@ -2022,7 +1777,7 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::AllocVal(ConfigVal *&ck_val,
                                               upll_keytype_datatype_t dt_type,
                                               MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
-  void *val;  //   *ck_nxtval;
+  void *val;  //    *ck_nxtval;
   if (ck_val != NULL) {
     UPLL_LOG_DEBUG("ck_val Consist the Value");
     return UPLL_RC_ERR_GENERIC;
@@ -2041,9 +1796,9 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::AllocVal(ConfigVal *&ck_val,
 }
 
 upll_rc_t VrtIfFlowFilterEntryMoMgr::GetValid(void *val, uint64_t indx,
-                                            uint8_t *&valid,
-                                            upll_keytype_datatype_t dt_type,
-                                            MoMgrTables tbl) {
+                                              uint8_t *&valid,
+                                              upll_keytype_datatype_t dt_type,
+                                              MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
   if (val == NULL) {
     UPLL_LOG_DEBUG("Memory is not Allocated");
@@ -2099,7 +1854,7 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::GetValid(void *val, uint64_t indx,
   return UPLL_RC_SUCCESS;
 }
 upll_rc_t VrtIfFlowFilterEntryMoMgr::ValidateMessage(IpcReqRespHeader *req,
-                                                        ConfigKeyVal *key) {
+                                                     ConfigKeyVal *key) {
   UPLL_FUNC_TRACE;
 
   upll_rc_t rt_code = UPLL_RC_ERR_GENERIC;
@@ -2114,35 +1869,36 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::ValidateMessage(IpcReqRespHeader *req,
     return UPLL_RC_ERR_BAD_REQUEST;
   }
   if (key->get_st_num() != IpctSt::kIpcStKeyVrtIfFlowfilterEntry) {
-     UPLL_LOG_DEBUG("Invalid key structure received. received struct num - %d",
-                  key->get_st_num());
+    UPLL_LOG_DEBUG("Invalid key structure received. received struct num - %d",
+                   key->get_st_num());
     return UPLL_RC_ERR_BAD_REQUEST;
   }
-  if(req->option2 != UNC_OPT2_NONE) {
+  if (req->option2 != UNC_OPT2_NONE) {
     UPLL_LOG_DEBUG(" Error: option2 is not NONE");
     return UPLL_RC_ERR_INVALID_OPTION2;
   }
-   if((req->option1 != UNC_OPT1_NORMAL) 
-              &&(req->option1 != UNC_OPT1_DETAIL)) {
-     UPLL_LOG_DEBUG(" Error: option1 is not NORMAL");
-     return UPLL_RC_ERR_INVALID_OPTION1;
-   }
-   if((req->option1 != UNC_OPT1_NORMAL) 
-              &&(req->operation == UNC_OP_READ_SIBLING_COUNT)) {
-     UPLL_LOG_DEBUG(" Error: option1 is not NORMAL for ReadSiblingCount");
-     return UPLL_RC_ERR_INVALID_OPTION1;
-   }
+  if ((req->option1 != UNC_OPT1_NORMAL)
+     &&(req->option1 != UNC_OPT1_DETAIL)) {
+    UPLL_LOG_DEBUG(" Error: option1 is not NORMAL");
+    return UPLL_RC_ERR_INVALID_OPTION1;
+  }
+  if ((req->option1 != UNC_OPT1_NORMAL)
+     &&(req->operation == UNC_OP_READ_SIBLING_COUNT)) {
+    UPLL_LOG_DEBUG(" Error: option1 is not NORMAL for ReadSiblingCount");
+    return UPLL_RC_ERR_INVALID_OPTION1;
+  }
   if ((req->option1 == UNC_OPT1_DETAIL) &&
       (req->datatype != UPLL_DT_STATE)) {
-      UPLL_LOG_DEBUG(" Invalid Datatype(%d)", req->datatype);
-      return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
-  }
-  if ((req->datatype == UPLL_DT_IMPORT) && (req->operation == UNC_OP_READ || 
-       req->operation == UNC_OP_READ_SIBLING ||
-       req->operation == UNC_OP_READ_SIBLING_BEGIN ||
-       req->operation == UNC_OP_READ_NEXT ||
-       req->operation == UNC_OP_READ_BULK ||
-       req->operation == UNC_OP_READ_SIBLING_COUNT)) {
+    UPLL_LOG_DEBUG(" Invalid Datatype(%d)", req->datatype);
+    return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
+  }
+  if ((req->datatype == UPLL_DT_IMPORT) && (
+          req->operation == UNC_OP_READ ||
+          req->operation == UNC_OP_READ_SIBLING ||
+          req->operation == UNC_OP_READ_SIBLING_BEGIN ||
+          req->operation == UNC_OP_READ_NEXT ||
+          req->operation == UNC_OP_READ_BULK ||
+          req->operation == UNC_OP_READ_SIBLING_COUNT)) {
     return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
   }
 
@@ -2158,7 +1914,7 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::ValidateMessage(IpcReqRespHeader *req,
   }
 
   rt_code = ValidateVrtIfFlowfilterEntryKey(key_vrt_if_flowfilter_entry,
-                                              req->operation);
+                                            req->operation);
 
   if (UPLL_RC_SUCCESS != rt_code) {
     UPLL_LOG_DEBUG(" key_vrtif_flowfilter syntax validation failed :"
@@ -2170,9 +1926,9 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::ValidateMessage(IpcReqRespHeader *req,
   /* validate value structure*/
   if (!key->get_cfg_val()) {
     if ((req->operation == UNC_OP_UPDATE) ||
-         (req->operation == UNC_OP_CREATE)) {
-       UPLL_LOG_DEBUG("val structure is mandatory");
-       return UPLL_RC_ERR_BAD_REQUEST;
+        (req->operation == UNC_OP_CREATE)) {
+      UPLL_LOG_DEBUG("val structure is mandatory");
+      return UPLL_RC_ERR_BAD_REQUEST;
     } else {
       UPLL_LOG_TRACE("val structure is optional");
       return UPLL_RC_SUCCESS;
@@ -2180,8 +1936,8 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::ValidateMessage(IpcReqRespHeader *req,
   }
 
   if (key->get_cfg_val()->get_st_num() !=
-                             IpctSt::kIpcStValFlowfilterEntry) {
-     UPLL_LOG_DEBUG("Invalid val structure received. struct num - %d",
+      IpctSt::kIpcStValFlowfilterEntry) {
+    UPLL_LOG_DEBUG("Invalid val structure received. struct num - %d",
                    (key->get_cfg_val())->get_st_num());
     return UPLL_RC_ERR_BAD_REQUEST;
   }
@@ -2195,95 +1951,25 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::ValidateMessage(IpcReqRespHeader *req,
     return UPLL_RC_ERR_BAD_REQUEST;
   }
 
-  // UpdateMo invokes val structure validate function
-  // as UPDATE operation requires dmi
+  //  UpdateMo invokes val structure validate function
+  //  as UPDATE operation requires dmi
   if (req->operation == UNC_OP_UPDATE)
     return UPLL_RC_SUCCESS;
 
   return VbrFlowFilterEntryMoMgr::ValidateFlowfilterEntryValue(
-         val_flowfilter_entry, req->operation);
+      val_flowfilter_entry, req->operation);
 }
 
 upll_rc_t VrtIfFlowFilterEntryMoMgr::ValidateVrtIfValStruct(
     IpcReqRespHeader *req,
-    ConfigKeyVal *key,
-    DalDmlIntf *dmi) {
-  upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
+    ConfigKeyVal *key) {
 
   val_flowfilter_entry_t *val_flowfilter_entry =
       reinterpret_cast<val_flowfilter_entry_t *>(
           key->get_cfg_val()->get_val());
-
-  bool db_action_valid = false;
-  bool db_action_redirect = false;
-
-  if ((val_flowfilter_entry->valid[UPLL_IDX_ACTION_FFE]
-       == UNC_VF_INVALID) && (req->operation == UNC_OP_UPDATE)) {
-    /** Read key struct from ConfigKeyVal argument*/
-    key_vrt_if_flowfilter_entry_t *key_vrt_if_ffe =
-        static_cast<key_vrt_if_flowfilter_entry_t*>(key->get_key());
-
-    /** Check whether Action configured or not from DB */
-    ConfigKeyVal *okey = NULL;
-
-    result_code = GetChildConfigKey(okey, NULL);
-
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("okey memory allocation failed- %d", result_code);
-      return result_code;
-    }
-
-    key_vrt_if_flowfilter_entry_t *vrt_if_ffe_key =
-        reinterpret_cast<key_vrt_if_flowfilter_entry_t *>(okey->get_key());
-
-    /* copy key structure into okey key struct */
-    uuu::upll_strncpy(
-        vrt_if_ffe_key->flowfilter_key.if_key.vrt_key.vtn_key.vtn_name,
-        key_vrt_if_ffe->flowfilter_key.if_key.vrt_key.vtn_key.vtn_name,
-        (kMaxLenVtnName+1));
-    uuu::upll_strncpy(
-        vrt_if_ffe_key->flowfilter_key.if_key.vrt_key.vrouter_name,
-        key_vrt_if_ffe->flowfilter_key.if_key.vrt_key.vrouter_name,
-        (kMaxLenVnodeName+1));
-    uuu::upll_strncpy(vrt_if_ffe_key->flowfilter_key.if_key.if_name,
-                      key_vrt_if_ffe->flowfilter_key.if_key.if_name,
-                      (kMaxLenInterfaceName+1));
-    vrt_if_ffe_key->flowfilter_key.direction =
-        key_vrt_if_ffe->flowfilter_key.direction;
-    vrt_if_ffe_key->sequence_num = key_vrt_if_ffe->sequence_num;
-
-    /* Check the action field configured in VBR_FLOWFILTER_ENTRY table*/
-    DbSubOp dbop = {kOpReadSingle, kOpMatchNone, kOpInOutNone};
-    result_code = ReadConfigDB(okey, req->datatype, UNC_OP_READ,
-                               dbop, dmi, MAINTBL);
-
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("ReadConfigDB is failed for VRT_IF_FLOWFILTER_ENTRY");
-      delete okey;
-      okey = NULL;
-      return UPLL_RC_ERR_NO_SUCH_INSTANCE;
-    }
-
-    /* check the action value from the DB data */
-    val_flowfilter_entry_t *val_ffe =
-        reinterpret_cast<val_flowfilter_entry_t *>(
-            okey->get_cfg_val()->get_val());
-
-    if (val_ffe->valid[UPLL_IDX_ACTION_FFE] == UNC_VF_VALID) {
-      db_action_valid = true;
-      if (val_ffe->action == UPLL_FLOWFILTER_ACT_REDIRECT) {
-        db_action_redirect = true;
-      }
-    }
-
-    delete okey;
-    okey = NULL;
-  }
-
   /** validate val_flowfilter_entry value structure */
   return VbrFlowFilterEntryMoMgr::ValidateFlowfilterEntryValue(
-      val_flowfilter_entry, req->operation,
-      db_action_valid, db_action_redirect);
+      val_flowfilter_entry, req->operation);
 }
 
 upll_rc_t VrtIfFlowFilterEntryMoMgr::ValidateVrtIfFlowfilterEntryKey(
@@ -2337,9 +2023,10 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::ValidateVrtIfFlowfilterEntryKey(
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t VrtIfFlowFilterEntryMoMgr::ValidateCapability(IpcReqRespHeader *req,
-                                   ConfigKeyVal *ikey,
-                                   const char* ctrlr_name) {
+upll_rc_t VrtIfFlowFilterEntryMoMgr::ValidateCapability(
+    IpcReqRespHeader *req,
+    ConfigKeyVal *ikey,
+    const char* ctrlr_name) {
   UPLL_FUNC_TRACE;
 
   upll_rc_t rt_code = UPLL_RC_ERR_GENERIC;
@@ -2353,7 +2040,7 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::ValidateCapability(IpcReqRespHeader *req,
     ctrlr_name = static_cast<char *>(ikey->get_user_data());
 
   UPLL_LOG_TRACE("dt_type   : (%d)"
-                "operation : (%d)", req->datatype, req->operation);
+                 "operation : (%d)", req->datatype, req->operation);
 
   bool ret_code = false;
   uint32_t instance_count = 0;
@@ -2362,35 +2049,30 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::ValidateCapability(IpcReqRespHeader *req,
 
   switch (req->operation) {
     case UNC_OP_CREATE: {
-      UPLL_LOG_TRACE("Calling GetCreateCapability Operation  %d ", req->operation);
+      UPLL_LOG_TRACE("Calling GetCreateCapability Operation  %d ",
+                     req->operation);
       ret_code = GetCreateCapability(ctrlr_name, ikey->get_key_type(),
-                                        &instance_count, &max_attrs, &attrs);
-       if (ret_code && cur_instance_count >= instance_count && 
-                  cur_instance_count !=0 && instance_count != 0) {
-          UPLL_LOG_DEBUG("[%s:%d:%s Instance count %d exceeds %d", __FILE__,
-                      __LINE__, __FUNCTION__, cur_instance_count,
-                      instance_count);
-          return UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
-      }
-
-      
+                                     &instance_count, &max_attrs, &attrs);
       break;
     }
     case UNC_OP_UPDATE: {
-      UPLL_LOG_TRACE("Calling GetUpdateCapability Operation  %d ", req->operation);
+      UPLL_LOG_TRACE("Calling GetUpdateCapability Operation  %d ",
+                     req->operation);
       ret_code = GetUpdateCapability(ctrlr_name, ikey->get_key_type(),
-                                        &max_attrs, &attrs);
+                                     &max_attrs, &attrs);
       break;
     }
     default: {
       if (req->datatype == UPLL_DT_STATE) {
-        UPLL_LOG_TRACE("Calling GetStateCapability Operation  %d ", req->operation);
+        UPLL_LOG_TRACE("Calling GetStateCapability Operation  %d ",
+                       req->operation);
         ret_code = GetStateCapability(ctrlr_name, ikey->get_key_type(),
                                       &max_attrs, &attrs);
       } else {
-        UPLL_LOG_TRACE("Calling GetReadCapability Operation  %d ", req->operation);
+        UPLL_LOG_TRACE("Calling GetReadCapability Operation  %d ",
+                       req->operation);
         ret_code = GetReadCapability(ctrlr_name, ikey->get_key_type(),
-                                      &max_attrs, &attrs);
+                                     &max_attrs, &attrs);
       }
       break;
     }
@@ -2398,27 +2080,27 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::ValidateCapability(IpcReqRespHeader *req,
 
   if (!ret_code) {
     UPLL_LOG_DEBUG("keytype(%d) is not supported by controller(%s)",
-        ikey->get_key_type(), ctrlr_name);
+                   ikey->get_key_type(), ctrlr_name);
     return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
   }
   val_flowfilter_entry_t *val_flowfilter_entry =
       reinterpret_cast<val_flowfilter_entry_t *>(GetVal(ikey));
   if (max_attrs > 0) {
-      return VbrFlowFilterEntryMoMgr::ValFlowFilterEntryAttributeSupportCheck(
-                                       val_flowfilter_entry, attrs);
+    return VbrFlowFilterEntryMoMgr::ValFlowFilterEntryAttributeSupportCheck(
+        val_flowfilter_entry, attrs);
   } else {
-      UPLL_LOG_DEBUG("Attribute list is empty for operation %d", req->operation);
-      return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR ;
+    UPLL_LOG_DEBUG("Attribute list is empty for operation %d", req->operation);
+    return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
   }
 }
 bool VrtIfFlowFilterEntryMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type,
-                                    BindInfo *&binfo,
-                                    int &nattr,
-                                    MoMgrTables tbl ) {
+                                                     BindInfo *&binfo,
+                                                     int &nattr,
+                                                     MoMgrTables tbl ) {
   /* Main Table only update */
   if (MAINTBL == tbl) {
     nattr = sizeof(vrt_if_flowfilter_entry_maintbl_bind_info)/
-            sizeof(vrt_if_flowfilter_entry_maintbl_bind_info[0]);
+        sizeof(vrt_if_flowfilter_entry_maintbl_bind_info[0]);
     binfo = vrt_if_flowfilter_entry_maintbl_bind_info;
   }
 
@@ -2426,7 +2108,7 @@ bool VrtIfFlowFilterEntryMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type,
   return PFC_TRUE;
 }
 upll_rc_t VrtIfFlowFilterEntryMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
-                                              ConfigKeyVal *ikey) {
+                                                     ConfigKeyVal *ikey) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
@@ -2436,11 +2118,11 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
   }
 
   key_rename_vnode_info *key_rename = reinterpret_cast<key_rename_vnode_info *>
-                                      (ikey->get_key());
+      (ikey->get_key());
   key_vrt_if_flowfilter_entry_t *key_vrt_if =
       reinterpret_cast<key_vrt_if_flowfilter_entry_t*>
       (ConfigKeyVal::Malloc(sizeof(key_vrt_if_flowfilter_entry_t)));
-  // if (UNC_KT_VRTIF_FLOWFILTER_ENTRY  == ikey->get_key_type()) {
+  //  if (UNC_KT_VRTIF_FLOWFILTER_ENTRY  == ikey->get_key_type()) {
   if (!strlen(reinterpret_cast<char *>(key_rename->old_unc_vtn_name))) {
     UPLL_LOG_DEBUG("String Length not Valid to Perform the Operation");
     free(key_vrt_if);
@@ -2472,8 +2154,8 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
   key_vrt_if->flowfilter_key.direction = 0xFE;
 
   okey = new ConfigKeyVal(UNC_KT_VRTIF_FLOWFILTER_ENTRY, IpctSt::
-                   kIpcStKeyVrtIfFlowfilterEntry, key_vrt_if, NULL);
-  
+                          kIpcStKeyVrtIfFlowfilterEntry, key_vrt_if, NULL);
+
   if (!okey) {
     free(key_vrt_if);
     return UPLL_RC_ERR_GENERIC;
@@ -2481,10 +2163,11 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
   return result_code;
 }
 
-upll_rc_t VrtIfFlowFilterEntryMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
-                                               DalDmlIntf *dmi,
-                                               upll_keytype_datatype_t data_type,
-                                               bool &no_rename) {
+upll_rc_t VrtIfFlowFilterEntryMoMgr::UpdateVnodeVal(
+    ConfigKeyVal *ikey,
+    DalDmlIntf *dmi,
+    upll_keytype_datatype_t data_type,
+    bool &no_rename) {
   UPLL_FUNC_TRACE;
   ConfigKeyVal *okey = NULL;
   ConfigKeyVal *kval = NULL;
@@ -2498,9 +2181,10 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
   key_rename_vnode_info_t *key_rename =
       reinterpret_cast<key_rename_vnode_info_t *>(ikey->get_key());
 
-  //copy the olf flowlist name to val_flowfilter_entry
-  val_flowfilter_entry_t *val_ff_entry = reinterpret_cast<val_flowfilter_entry_t *>
-                 (ConfigKeyVal::Malloc(sizeof(val_flowfilter_entry_t)));
+  // copy the olf flowlist name to val_flowfilter_entry
+  val_flowfilter_entry_t *val_ff_entry =
+      reinterpret_cast<val_flowfilter_entry_t *>
+      (ConfigKeyVal::Malloc(sizeof(val_flowfilter_entry_t)));
 
   if (!val_ff_entry) return UPLL_RC_ERR_GENERIC;
 
@@ -2510,13 +2194,13 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
       return UPLL_RC_ERR_GENERIC;
     }
 
-  uuu::upll_strncpy(val_ff_entry->flowlist_name,
-      key_rename->old_flowlist_name,
-      (kMaxLenFlowListName + 1));
+    uuu::upll_strncpy(val_ff_entry->flowlist_name,
+                      key_rename->old_flowlist_name,
+                      (kMaxLenFlowListName + 1));
     val_ff_entry->valid[UPLL_IDX_FLOWLIST_NAME_FFE] = UNC_VF_VALID;
     UPLL_LOG_DEBUG("valid and flowlist name (%d) (%s)",
-                  val_ff_entry->valid[UPLL_IDX_FLOWLIST_NAME_FFE],
-                  val_ff_entry->flowlist_name);
+                   val_ff_entry->valid[UPLL_IDX_FLOWLIST_NAME_FFE],
+                   val_ff_entry->flowlist_name);
   } else if ((ikey->get_key_type() == UNC_KT_VBRIDGE) ||
              (ikey->get_key_type() == UNC_KT_VROUTER)) {
     if (!strlen(reinterpret_cast<char *>(key_rename->old_unc_vnode_name))) {
@@ -2525,8 +2209,8 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
       return UPLL_RC_ERR_GENERIC;
     }
     uuu::upll_strncpy(val_ff_entry->redirect_node,
-      key_rename->old_unc_vnode_name,
-      sizeof(val_ff_entry->redirect_node));
+                      key_rename->old_unc_vnode_name,
+                      sizeof(val_ff_entry->redirect_node));
     val_ff_entry->valid[UPLL_IDX_REDIRECT_NODE_FFE] = UNC_VF_VALID;
     UPLL_LOG_DEBUG("valid and vbridge name (%d) (%s)",
                    val_ff_entry->valid[UPLL_IDX_REDIRECT_NODE_FFE],
@@ -2535,21 +2219,24 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
 
   result_code = GetChildConfigKey(okey, NULL);
   if (UPLL_RC_SUCCESS != result_code) {
-     UPLL_LOG_DEBUG("CopyToConfigKey okey  NULL");
-     free(val_ff_entry);
-     return result_code;
+    UPLL_LOG_DEBUG("CopyToConfigKey okey  NULL");
+    free(val_ff_entry);
+    return result_code;
   }
   if (!okey) {
     free(val_ff_entry);
     return UPLL_RC_ERR_GENERIC;
   }
 
-  okey->SetCfgVal(new ConfigVal(IpctSt::kIpcStValFlowfilterEntry, val_ff_entry));
+  okey->SetCfgVal(new ConfigVal(IpctSt::kIpcStValFlowfilterEntry,
+                                val_ff_entry));
 
-  DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutCtrlr|kOpInOutDomain|kOpInOutFlag };
+  DbSubOp dbop = { kOpReadMultiple,
+    kOpMatchNone,
+    kOpInOutCtrlr|kOpInOutDomain|kOpInOutFlag };
 
-  // Read the record of key structure and old flowlist name in maintbl
- result_code = ReadConfigDB(okey, data_type, UNC_OP_READ, dbop, dmi,
+  //  Read the record of key structure and old flowlist name in maintbl
 result_code = ReadConfigDB(okey, data_type, UNC_OP_READ, dbop, dmi,
                              MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG(" ReadConfigDB failed (%d)", result_code);
@@ -2566,50 +2253,51 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
     if (!kval) {
       return UPLL_RC_ERR_GENERIC;
     }
-    // Copy the new flowlist name in val_flowfilter_entry
-    val_flowfilter_entry_t *val_ff_entry_new = reinterpret_cast<val_flowfilter_entry_t *>
-                 (ConfigKeyVal::Malloc(sizeof(val_flowfilter_entry_t)));
+    //  Copy the new flowlist name in val_flowfilter_entry
+    val_flowfilter_entry_t *val_ff_entry_new = reinterpret_cast
+        <val_flowfilter_entry_t *>
+        (ConfigKeyVal::Malloc(sizeof(val_flowfilter_entry_t)));
     if (!val_ff_entry_new) return UPLL_RC_ERR_GENERIC;
 
-    if (ikey->get_key_type() == UNC_KT_FLOWLIST) {  
-    // New Name NuLL CHECK
-    if (!strlen(reinterpret_cast<char *>(key_rename->new_flowlist_name))) {
-      if (val_ff_entry_new) free(val_ff_entry_new);
-      UPLL_LOG_DEBUG("new_flowlist_name NULL");
-      DELETE_IF_NOT_NULL(kval);
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-
-    // Copy the new flowlist_name into val_flowfilter_entry
-    uuu::upll_strncpy(val_ff_entry_new->flowlist_name,
-           key_rename->new_flowlist_name,
-           (kMaxLenFlowListName + 1));
-    val_ff_entry_new->valid[UPLL_IDX_FLOWLIST_NAME_FFE] = UNC_VF_VALID;
-    UPLL_LOG_DEBUG("flowlist name and valid (%d) (%s)",
-                    val_ff_entry_new->valid[UPLL_IDX_FLOWLIST_NAME_FFE],
-                    val_ff_entry_new->flowlist_name);
-    } else if ((ikey->get_key_type() == UNC_KT_VBRIDGE) ||
-              (ikey->get_key_type() == UNC_KT_VROUTER)) {
-    // New Name NuLL CHECK
-    if (!strlen(reinterpret_cast<char *>(key_rename->new_unc_vnode_name))) {
-      UPLL_LOG_DEBUG("new_unc_vnode_name NULL");
-      if (val_ff_entry_new) free(val_ff_entry_new);
-      DELETE_IF_NOT_NULL(kval);
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-    // Copy the new vbridge name into val_flowfilter_entry
-    uuu::upll_strncpy(val_ff_entry_new->redirect_node,
-                      key_rename->new_unc_vnode_name,
-                      sizeof(val_ff_entry_new->redirect_node));
-    val_ff_entry_new->valid[UPLL_IDX_REDIRECT_NODE_FFE] = UNC_VF_VALID;
-    UPLL_LOG_DEBUG("vbridge name and valid (%d) (%s)",
-                    val_ff_entry_new->valid[UPLL_IDX_FLOWLIST_NAME_FFE],
-                    val_ff_entry_new->redirect_node);
-
+    if (ikey->get_key_type() == UNC_KT_FLOWLIST) {
+      //  New Name NuLL CHECK
+      if (!strlen(reinterpret_cast<char *>(key_rename->new_flowlist_name))) {
+        if (val_ff_entry_new) free(val_ff_entry_new);
+        UPLL_LOG_DEBUG("new_flowlist_name NULL");
+        DELETE_IF_NOT_NULL(kval);
+        DELETE_IF_NOT_NULL(okey);
+        return UPLL_RC_ERR_GENERIC;
+      }
+
+      //  Copy the new flowlist_name into val_flowfilter_entry
+      uuu::upll_strncpy(val_ff_entry_new->flowlist_name,
+                        key_rename->new_flowlist_name,
+                        (kMaxLenFlowListName + 1));
+      val_ff_entry_new->valid[UPLL_IDX_FLOWLIST_NAME_FFE] = UNC_VF_VALID;
+      UPLL_LOG_DEBUG("flowlist name and valid (%d) (%s)",
+                     val_ff_entry_new->valid[UPLL_IDX_FLOWLIST_NAME_FFE],
+                     val_ff_entry_new->flowlist_name);
+    } else if ((ikey->get_key_type() == UNC_KT_VBRIDGE) ||
+               (ikey->get_key_type() == UNC_KT_VROUTER)) {
+      //  New Name NuLL CHECK
+      if (!strlen(reinterpret_cast<char *>(key_rename->new_unc_vnode_name))) {
+        UPLL_LOG_DEBUG("new_unc_vnode_name NULL");
+        if (val_ff_entry_new) free(val_ff_entry_new);
+        DELETE_IF_NOT_NULL(kval);
+        DELETE_IF_NOT_NULL(okey);
+        return UPLL_RC_ERR_GENERIC;
+      }
+      //  Copy the new vbridge name into val_flowfilter_entry
+      uuu::upll_strncpy(val_ff_entry_new->redirect_node,
+                        key_rename->new_unc_vnode_name,
+                        sizeof(val_ff_entry_new->redirect_node));
+      val_ff_entry_new->valid[UPLL_IDX_REDIRECT_NODE_FFE] = UNC_VF_VALID;
+      UPLL_LOG_DEBUG("vbridge name and valid (%d) (%s)",
+                     val_ff_entry_new->valid[UPLL_IDX_FLOWLIST_NAME_FFE],
+                     val_ff_entry_new->redirect_node);
     }
-    ConfigVal *cval1 = new ConfigVal(IpctSt::kIpcStValFlowfilterEntry, val_ff_entry_new);
+    ConfigVal *cval1 = new ConfigVal(IpctSt::kIpcStValFlowfilterEntry,
+                                     val_ff_entry_new);
 
     kval->SetCfgVal(cval1);
     memset(&ctrlr_dom, 0, sizeof(controller_domain));
@@ -2636,12 +2324,13 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
     SET_USER_DATA_FLAGS(kval, rename);
     SET_USER_DATA_CTRLR_DOMAIN(kval, ctrlr_dom);
 
-    //Update the new flowlist name in MAINTBL
+    // Update the new flowlist name in MAINTBL
     result_code = UpdateConfigDB(kval, data_type, UNC_OP_UPDATE, dmi,
                                  MAINTBL);
     if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("Create record Err in vbrflowfilterentrytbl CANDIDATE DB(%d)",
-        result_code);
+      UPLL_LOG_DEBUG("Create record Err in vbrflowfilterentrytbl"
+                     "CANDIDATE DB(%d)",
+                     result_code);
       DELETE_IF_NOT_NULL(kval);
       DELETE_IF_NOT_NULL(okey);
       return result_code;
@@ -2654,7 +2343,8 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
   return result_code;
 }
 bool  VrtIfFlowFilterEntryMoMgr::CompareValidValue(void *&val1,
-                                                   void *val2, bool copy_to_running) {
+                                                   void *val2,
+                                                   bool copy_to_running) {
   UPLL_FUNC_TRACE;
   bool attr = true;
   val_flowfilter_entry_t *val_ff_entry1 =
@@ -2662,73 +2352,72 @@ bool  VrtIfFlowFilterEntryMoMgr::CompareValidValue(void *&val1,
   val_flowfilter_entry_t *val_ff_entry2 =
       reinterpret_cast<val_flowfilter_entry_t *>(val2);
   for ( unsigned int loop = 0; loop < sizeof(val_ff_entry1->valid); ++loop ) {
-      if (UNC_VF_INVALID == val_ff_entry1->valid[loop] &&
-                  UNC_VF_VALID == val_ff_entry2->valid[loop])
-       val_ff_entry1->valid[loop] = UNC_VF_VALID_NO_VALUE;
-    }
+    if (UNC_VF_INVALID == val_ff_entry1->valid[loop] &&
+        UNC_VF_VALID == val_ff_entry2->valid[loop])
+      val_ff_entry1->valid[loop] = UNC_VF_VALID_NO_VALUE;
+  }
   if (val_ff_entry1->valid[UPLL_IDX_FLOWLIST_NAME_FFE] == UNC_VF_VALID &&
-     val_ff_entry2->valid[UPLL_IDX_FLOWLIST_NAME_FFE] == UNC_VF_VALID) {
+      val_ff_entry2->valid[UPLL_IDX_FLOWLIST_NAME_FFE] == UNC_VF_VALID) {
     if (!strcmp(reinterpret_cast<char *>(val_ff_entry1->flowlist_name),
-               reinterpret_cast<char *>(val_ff_entry2->flowlist_name)))
+                reinterpret_cast<char *>(val_ff_entry2->flowlist_name)))
       val_ff_entry1->valid[UPLL_IDX_FLOWLIST_NAME_FFE] = UNC_VF_INVALID;
   }
   if (val_ff_entry1->valid[UPLL_IDX_ACTION_FFE] == UNC_VF_VALID &&
-     val_ff_entry2->valid[UPLL_IDX_ACTION_FFE] == UNC_VF_VALID) {
+      val_ff_entry2->valid[UPLL_IDX_ACTION_FFE] == UNC_VF_VALID) {
     if (val_ff_entry1->action == val_ff_entry2->action)
       val_ff_entry1->valid[UPLL_IDX_ACTION_FFE] = UNC_VF_INVALID;
   }
   if (val_ff_entry1->valid[UPLL_IDX_REDIRECT_NODE_FFE] == UNC_VF_VALID &&
-     val_ff_entry2->valid[UPLL_IDX_REDIRECT_NODE_FFE] == UNC_VF_VALID) {
+      val_ff_entry2->valid[UPLL_IDX_REDIRECT_NODE_FFE] == UNC_VF_VALID) {
     if (!strcmp(reinterpret_cast<char *>(val_ff_entry1->redirect_node),
-              reinterpret_cast<char *>(val_ff_entry2->redirect_node)))
+                reinterpret_cast<char *>(val_ff_entry2->redirect_node)))
       val_ff_entry1->valid[UPLL_IDX_REDIRECT_NODE_FFE] =
-      (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   }
   if (val_ff_entry1->valid[UPLL_IDX_REDIRECT_PORT_FFE] == UNC_VF_VALID &&
-     val_ff_entry2->valid[UPLL_IDX_REDIRECT_PORT_FFE] == UNC_VF_VALID) {
+      val_ff_entry2->valid[UPLL_IDX_REDIRECT_PORT_FFE] == UNC_VF_VALID) {
     if (!strcmp(reinterpret_cast<char *>(val_ff_entry1->redirect_port),
-              reinterpret_cast<char *>(val_ff_entry2->redirect_port)))
+                reinterpret_cast<char *>(val_ff_entry2->redirect_port)))
       val_ff_entry1->valid[UPLL_IDX_REDIRECT_PORT_FFE] =
-      (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   }
   if (val_ff_entry1->valid[UPLL_IDX_MODIFY_DST_MAC_FFE] == UNC_VF_VALID &&
-     val_ff_entry2->valid[UPLL_IDX_MODIFY_DST_MAC_FFE] == UNC_VF_VALID) {
-
+      val_ff_entry2->valid[UPLL_IDX_MODIFY_DST_MAC_FFE] == UNC_VF_VALID) {
     if (!memcmp(reinterpret_cast<char*>(val_ff_entry1->modify_dstmac),
-        reinterpret_cast<char *>(val_ff_entry2->modify_dstmac),
-        sizeof(val_ff_entry2->modify_dstmac))) {
+                reinterpret_cast<char *>(val_ff_entry2->modify_dstmac),
+                sizeof(val_ff_entry2->modify_dstmac))) {
       val_ff_entry1->valid[UPLL_IDX_MODIFY_DST_MAC_FFE] =
-      (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
     }
   }
   if (val_ff_entry1->valid[UPLL_IDX_MODIFY_SRC_MAC_FFE] == UNC_VF_VALID &&
-     val_ff_entry2->valid[UPLL_IDX_MODIFY_SRC_MAC_FFE] == UNC_VF_VALID) {
+      val_ff_entry2->valid[UPLL_IDX_MODIFY_SRC_MAC_FFE] == UNC_VF_VALID) {
     if (!memcmp(reinterpret_cast<char*>(val_ff_entry1->modify_srcmac),
-         reinterpret_cast<char*>(val_ff_entry2->modify_srcmac),
-         sizeof(val_ff_entry2->modify_srcmac))) {
+                reinterpret_cast<char*>(val_ff_entry2->modify_srcmac),
+                sizeof(val_ff_entry2->modify_srcmac))) {
       val_ff_entry1->valid[UPLL_IDX_MODIFY_SRC_MAC_FFE] =
-      (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
     }
   }
   if (val_ff_entry1->valid[UPLL_IDX_NWM_NAME_FFE] == UNC_VF_VALID &&
-     val_ff_entry2->valid[UPLL_IDX_NWM_NAME_FFE] == UNC_VF_VALID) {
+      val_ff_entry2->valid[UPLL_IDX_NWM_NAME_FFE] == UNC_VF_VALID) {
     if (!strcmp(reinterpret_cast<char *>(val_ff_entry1->nwm_name),
-              reinterpret_cast<char *>(val_ff_entry2->nwm_name)))
+                reinterpret_cast<char *>(val_ff_entry2->nwm_name)))
       val_ff_entry1->valid[UPLL_IDX_NWM_NAME_FFE] = UNC_VF_INVALID;
   }
   if (val_ff_entry1->valid[UPLL_IDX_DSCP_FFE] == UNC_VF_VALID &&
-     val_ff_entry2->valid[UPLL_IDX_DSCP_FFE] == UNC_VF_VALID) {
+      val_ff_entry2->valid[UPLL_IDX_DSCP_FFE] == UNC_VF_VALID) {
     if (val_ff_entry1->dscp == val_ff_entry2->dscp)
       val_ff_entry1->valid[UPLL_IDX_DSCP_FFE] = UNC_VF_INVALID;
   }
   if (val_ff_entry1->valid[UPLL_IDX_PRIORITY_FFE] == UNC_VF_VALID &&
-     val_ff_entry2->valid[UPLL_IDX_PRIORITY_FFE] == UNC_VF_VALID) {
+      val_ff_entry2->valid[UPLL_IDX_PRIORITY_FFE] == UNC_VF_VALID) {
     if (val_ff_entry1->priority == val_ff_entry2->priority)
       val_ff_entry1->valid[UPLL_IDX_PRIORITY_FFE] = UNC_VF_INVALID;
   }
   UPLL_LOG_DEBUG("CompareValidValue :: Success");
   for (unsigned int loop = 0;
-      loop < sizeof(val_ff_entry1->valid)/ sizeof(uint8_t); ++loop) {
+       loop < sizeof(val_ff_entry1->valid)/ sizeof(uint8_t); ++loop) {
     if ((UNC_VF_VALID == (uint8_t) val_ff_entry1->valid[loop]) ||
         (UNC_VF_VALID_NO_VALUE == (uint8_t) val_ff_entry1->valid[loop]))
       attr = false;
@@ -2736,9 +2425,9 @@ bool  VrtIfFlowFilterEntryMoMgr::CompareValidValue(void *&val1,
   return attr;
 }
 upll_rc_t VrtIfFlowFilterEntryMoMgr::VerifyRedirectDestination(
-                                     ConfigKeyVal *ikey,
-                                     DalDmlIntf *dmi,
-                                     upll_keytype_datatype_t dt_type) {
+    ConfigKeyVal *ikey,
+    DalDmlIntf *dmi,
+    upll_keytype_datatype_t dt_type) {
   UPLL_FUNC_TRACE;
   MoMgrImpl *mgr = NULL;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
@@ -2755,121 +2444,122 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::VerifyRedirectDestination(
 
   /* read val_vtn_flowfilter_entry from ikey*/
   val_flowfilter_entry_t *val_flowfilter_entry =
-    static_cast<val_flowfilter_entry_t *>(
-        ikey->get_cfg_val()->get_val());
-  // Symentic Validation for redirect destination
+      static_cast<val_flowfilter_entry_t *>(
+          ikey->get_cfg_val()->get_val());
+  //  Symentic Validation for redirect destination
   if ((val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_NODE_FFE] ==
-     UNC_VF_VALID) &&
-     (val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_PORT_FFE] ==
-     UNC_VF_VALID)) {
-     DbSubOp dbop_up = { kOpReadExist, kOpMatchCtrlr|kOpMatchDomain,
-                         kOpInOutNone };
-     result_code = GetControllerDomainID(ikey, dt_type, dmi);
-     if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("Failed to Get the Controller Domain details, err:%d",
-                   result_code);
-     }
+       UNC_VF_VALID) &&
+      (val_flowfilter_entry->valid[UPLL_IDX_REDIRECT_PORT_FFE] ==
+       UNC_VF_VALID)) {
+    DbSubOp dbop_up = { kOpReadExist, kOpMatchCtrlr|kOpMatchDomain,
+      kOpInOutNone };
+    result_code = GetControllerDomainID(ikey, dt_type, dmi);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("Failed to Get the Controller Domain details, err:%d",
+                     result_code);
+    }
 
-     GET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
+    GET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
 
-     UPLL_LOG_DEBUG("ctrlrid %s, domainid %s",
-                 ctrlr_dom.ctrlr, ctrlr_dom.domain);
-       // Verify whether the vtnnode and interface are exists in DB
-       // 1. Check for the vbridge Node
-     mgr = reinterpret_cast<MoMgrImpl *>
-            (const_cast<MoManager *>(GetMoManager(UNC_KT_VBR_IF)));
-     if (NULL == mgr) {
-        UPLL_LOG_DEBUG("Unable to get VBRIDGE Interface object");
-        return UPLL_RC_ERR_GENERIC;
-     }
-     result_code = mgr->GetChildConfigKey(okey, NULL);
-     if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("Memory allocation failed for VBRIDGE key struct - %d",
-                    result_code);
-          return result_code;
-     }
-     key_vbr_if_t *vbrif_key = static_cast<key_vbr_if_t*>(
-                          okey->get_key());
-     uuu::upll_strncpy(vbrif_key->vbr_key.vtn_key.vtn_name,
-               key_vrtif_ffe->flowfilter_key.if_key.vrt_key.vtn_key.vtn_name,
-               kMaxLenVtnName + 1);
-
-     uuu::upll_strncpy(vbrif_key->vbr_key.vbridge_name,
+    UPLL_LOG_DEBUG("ctrlrid %s, domainid %s",
+                   ctrlr_dom.ctrlr, ctrlr_dom.domain);
+    //  Verify whether the vtnnode and interface are exists in DB
+    //  1. Check for the vbridge Node
+    mgr = reinterpret_cast<MoMgrImpl *>
+        (const_cast<MoManager *>(GetMoManager(UNC_KT_VBR_IF)));
+    if (NULL == mgr) {
+      UPLL_LOG_DEBUG("Unable to get VBRIDGE Interface object");
+      return UPLL_RC_ERR_GENERIC;
+    }
+    result_code = mgr->GetChildConfigKey(okey, NULL);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("Memory allocation failed for VBRIDGE key struct - %d",
+                     result_code);
+      return result_code;
+    }
+    key_vbr_if_t *vbrif_key = static_cast<key_vbr_if_t*>(
+        okey->get_key());
+    uuu::upll_strncpy(vbrif_key->vbr_key.vtn_key.vtn_name,
+                      key_vrtif_ffe->
+                      flowfilter_key.if_key.vrt_key.vtn_key.vtn_name,
+                      kMaxLenVtnName + 1);
+
+    uuu::upll_strncpy(vbrif_key->vbr_key.vbridge_name,
                       reinterpret_cast<char *>
                       (val_flowfilter_entry->redirect_node),
                       (kMaxLenVnodeName + 1));
-     uuu::upll_strncpy(vbrif_key->if_name,
+    uuu::upll_strncpy(vbrif_key->if_name,
                       reinterpret_cast<char *>
                       (val_flowfilter_entry->redirect_port),
                       kMaxLenInterfaceName + 1);
 
-     /* Check vtnnode and interface exists in table*/
+    /* Check vtnnode and interface exists in table*/
 
-     SET_USER_DATA_CTRLR_DOMAIN(okey, ctrlr_dom);
+    SET_USER_DATA_CTRLR_DOMAIN(okey, ctrlr_dom);
 
-     result_code = mgr->UpdateConfigDB(okey, dt_type,
-                                     UNC_OP_READ, dmi, &dbop_up, MAINTBL);
-
-     DELETE_IF_NOT_NULL(okey);
-     if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code) {
-          UPLL_LOG_DEBUG("vtn node/interface in val_flowfilter_entry  exists"
-                         "in DB");
-     } else if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-         // 2. Check for Vrouter Node
-
-       // Verify whether the vtnnode and interface are exists in DB
-       mgr = reinterpret_cast<MoMgrImpl *>
-            (const_cast<MoManager *>(GetMoManager(UNC_KT_VRT_IF)));
-       if (NULL == mgr) {
-          UPLL_LOG_DEBUG("Unable to get VROUTER Interface object");
-          return UPLL_RC_ERR_GENERIC;
-       }
-       result_code = mgr->GetChildConfigKey(okey, NULL);
-       if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("Memory allocation failed for VROUTER key struct - %d",
-                    result_code);
-          return result_code;
-       }
-       key_vrt_if_t *vrtif_key = static_cast<key_vrt_if_t*>(
-                            okey->get_key());
-       uuu::upll_strncpy(vrtif_key->vrt_key.vtn_key.vtn_name,
-            key_vrtif_ffe->flowfilter_key.if_key.vrt_key.vtn_key.vtn_name,
-            kMaxLenVtnName + 1);
+    result_code = mgr->UpdateConfigDB(okey, dt_type,
+                                      UNC_OP_READ, dmi, &dbop_up, MAINTBL);
 
-       uuu::upll_strncpy(vrtif_key->vrt_key.vrouter_name,
+    DELETE_IF_NOT_NULL(okey);
+    if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code) {
+      UPLL_LOG_DEBUG("vtn node/interface in val_flowfilter_entry  exists"
+                     "in DB");
+    } else if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+      //  2. Check for Vrouter Node
+
+      //  Verify whether the vtnnode and interface are exists in DB
+      mgr = reinterpret_cast<MoMgrImpl *>
+          (const_cast<MoManager *>(GetMoManager(UNC_KT_VRT_IF)));
+      if (NULL == mgr) {
+        UPLL_LOG_DEBUG("Unable to get VROUTER Interface object");
+        return UPLL_RC_ERR_GENERIC;
+      }
+      result_code = mgr->GetChildConfigKey(okey, NULL);
+      if (result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("Memory allocation failed for VROUTER key struct - %d",
+                       result_code);
+        return result_code;
+      }
+      key_vrt_if_t *vrtif_key = static_cast<key_vrt_if_t*>(
+          okey->get_key());
+      uuu::upll_strncpy(vrtif_key->vrt_key.vtn_key.vtn_name,
+                        key_vrtif_ffe->
+                        flowfilter_key.if_key.vrt_key.vtn_key.vtn_name,
+                        kMaxLenVtnName + 1);
+
+      uuu::upll_strncpy(vrtif_key->vrt_key.vrouter_name,
                         reinterpret_cast<char *>
                         (val_flowfilter_entry->redirect_node),
                         (kMaxLenVnodeName + 1));
-       uuu::upll_strncpy(vrtif_key->if_name,
+      uuu::upll_strncpy(vrtif_key->if_name,
                         reinterpret_cast<char *>
                         (val_flowfilter_entry->redirect_port),
                         kMaxLenInterfaceName + 1);
 
-       UPLL_LOG_DEBUG("ctrlrid %s, domainid %s",
-                 ctrlr_dom.ctrlr, ctrlr_dom.domain);
-       SET_USER_DATA_CTRLR_DOMAIN(okey, ctrlr_dom);
-       /* Check vtnnode and interface exists in table*/
-       result_code = mgr->UpdateConfigDB(okey, dt_type,
-                                     UNC_OP_READ, dmi, &dbop_up, MAINTBL);
-       DELETE_IF_NOT_NULL(okey);
-       if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
-          UPLL_LOG_DEBUG("vtn node/interface in val struct does not exists"
-                         "in DB");
-          return UPLL_RC_ERR_CFG_SEMANTIC;
-       }
+      UPLL_LOG_DEBUG("ctrlrid %s, domainid %s",
+                     ctrlr_dom.ctrlr, ctrlr_dom.domain);
+      SET_USER_DATA_CTRLR_DOMAIN(okey, ctrlr_dom);
+      /* Check vtnnode and interface exists in table*/
+      result_code = mgr->UpdateConfigDB(okey, dt_type,
+                                        UNC_OP_READ, dmi, &dbop_up, MAINTBL);
+      DELETE_IF_NOT_NULL(okey);
+      if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
+        UPLL_LOG_DEBUG("vtn node/interface in val struct does not exists"
+                       "in DB");
+        return UPLL_RC_ERR_CFG_SEMANTIC;
       }
-     result_code =
-             (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) ? UPLL_RC_SUCCESS :
-                                      result_code;
-  
-  }  // end of Symentic Validation
+    }
+    result_code =
+        (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) ? UPLL_RC_SUCCESS :
+        result_code;
+  }  //  end of Symentic Validation
   return result_code;
 }
 
 /*Return result of validation*/
 upll_rc_t VrtIfFlowFilterEntryMoMgr::TxVote(unc_key_type_t keytype,
-                            DalDmlIntf *dmi,
-                            ConfigKeyVal **err_ckv) {
+                                            DalDmlIntf *dmi,
+                                            ConfigKeyVal **err_ckv) {
   UPLL_FUNC_TRACE;
   ConfigKeyVal *req = NULL, *nreq = NULL;
   DalResultCode db_result;
@@ -2879,38 +2569,47 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::TxVote(unc_key_type_t keytype,
   DalCursor *cfg1_cursor = NULL;
 
   for (int i = 0; i < nop; i++) {
+    cfg1_cursor = NULL;
     result_code = DiffConfigDB(UPLL_DT_CANDIDATE, UPLL_DT_RUNNING, op[i], req,
                                nreq, &cfg1_cursor, dmi, MAINTBL);
+    if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+      result_code = UPLL_RC_SUCCESS;
+      UPLL_LOG_DEBUG("No more diff found for operation %d", op[i]);
+      DELETE_IF_NOT_NULL(req);
+      DELETE_IF_NOT_NULL(nreq);
+      continue;
+    }
     while (result_code == UPLL_RC_SUCCESS) {
       db_result = dmi->GetNextRecord(cfg1_cursor);
       result_code = DalToUpllResCode(db_result);
       if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
         result_code = UPLL_RC_SUCCESS;
-        UPLL_LOG_DEBUG("No diff found for op %d", op[i]);
+        UPLL_LOG_DEBUG("No more diff found for operation %d", op[i]);
         break;
       }
       val_flowfilter_entry_t* val = reinterpret_cast<val_flowfilter_entry_t *>
-        (GetVal(req));
+          (GetVal(req));
       if ((val->valid[UPLL_IDX_REDIRECT_NODE_FFE] ==
-        UNC_VF_VALID) &&
-        (val->valid[UPLL_IDX_REDIRECT_PORT_FFE] ==
-        UNC_VF_VALID)) {
-          result_code = VerifyRedirectDestination(req, dmi,
-                                                  UPLL_DT_CANDIDATE);
-          if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("Invalid redirect-destination node/interface");
-            *err_ckv = req;
-            DELETE_IF_NOT_NULL(nreq);
-            dmi->CloseCursor(cfg1_cursor, true);
-            return result_code;
-          }
+           UNC_VF_VALID) &&
+          (val->valid[UPLL_IDX_REDIRECT_PORT_FFE] ==
+           UNC_VF_VALID)) {
+        result_code = VerifyRedirectDestination(req, dmi,
+                                                UPLL_DT_CANDIDATE);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("Invalid redirect-destination node/interface");
+          DEL_USER_DATA(req);  //  Delete the controller and domain from req
+          *err_ckv = req;
+          DELETE_IF_NOT_NULL(nreq);
+          dmi->CloseCursor(cfg1_cursor, true);
+          return result_code;
         }
       }
-      dmi->CloseCursor(cfg1_cursor, true);
-      if (req) delete req;
-      if (nreq) delete nreq;
     }
-  
+    dmi->CloseCursor(cfg1_cursor, true);
+    if (req) delete req;
+    if (nreq) delete nreq;
+  }
+
   return result_code;
 }
 upll_rc_t VrtIfFlowFilterEntryMoMgr::TxUpdateController(
@@ -3006,7 +2705,7 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::TxUpdateController(
         UPLL_LOG_DEBUG("GetChildConfigKey failed, err %d", result_code);
         return result_code;
       }
-      // SET_USER_DATA_CTRLR_DOMAIN(temp, ctrlr_dom);
+      //  SET_USER_DATA_CTRLR_DOMAIN(temp, ctrlr_dom);
       DbSubOp dbop1 = { kOpReadSingle, kOpMatchCtrlr|kOpMatchDomain,
         kOpInOutFlag};
       result_code = ReadConfigDB(temp, UPLL_DT_RUNNING,
@@ -3064,7 +2763,7 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::TxUpdateController(
         (GetVal(ck_main));
     memcpy(&pfc_val->val_ff_entry, val, sizeof(val_flowfilter_entry_t));
 #endif
-    // Inserting the controller to Set
+    //  Inserting the controller to Set
     affected_ctrlr_set->insert
         (string(reinterpret_cast<char *>(ctrlr_dom.ctrlr)));
     ConfigKeyVal *temp_ck_main = NULL;
@@ -3095,7 +2794,7 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::TxUpdateController(
                                      pfc_val));
     result_code = SendIpcReq(session_id, config_id, op1, UPLL_DT_CANDIDATE,
                              ck_main, &ctrlr_dom, &ipc_resp);
-    if (result_code == UPLL_RC_ERR_RESOURCE_DISCONNECTED) {
+    if (result_code == UPLL_RC_ERR_CTR_DISCONNECTED) {
       UPLL_LOG_DEBUG(" driver result code - %d", result_code);
       result_code = UPLL_RC_SUCCESS;
     }
@@ -3125,10 +2824,10 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::TxUpdateController(
 }
 
 upll_rc_t VrtIfFlowFilterEntryMoMgr::SetVlinkPortmapConfiguration(
-                        ConfigKeyVal *ikey,
-                        upll_keytype_datatype_t dt_type,
-                        DalDmlIntf *dmi, InterfacePortMapInfo flag,
-                        unc_keytype_operation_t oper) {
+    ConfigKeyVal *ikey,
+    upll_keytype_datatype_t dt_type,
+    DalDmlIntf *dmi, InterfacePortMapInfo flag,
+    unc_keytype_operation_t oper) {
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
   controller_domain ctrlr_dom;
   uint8_t *ctrlr_id = NULL;
@@ -3138,26 +2837,10 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::SetVlinkPortmapConfiguration(
   }
   ConfigKeyVal *ckv = NULL;
   memset(&ctrlr_dom, 0, sizeof(controller_domain));
-  result_code = GetChildConfigKey(ckv, NULL);
+  result_code = GetChildConfigKey(ckv, ikey);
   if (UPLL_RC_SUCCESS != result_code) {
     return result_code;
   }
-  key_vrt_if_flowfilter_entry_t *ff_key =
-      reinterpret_cast<key_vrt_if_flowfilter_entry_t *>(ckv->get_key());
-  key_vrt_if_t *vrtif_key = reinterpret_cast<key_vrt_if_t *>(ikey->get_key());
-
-  uuu::upll_strncpy(ff_key->flowfilter_key.if_key.vrt_key.vtn_key.vtn_name,
-                   vrtif_key->vrt_key.vtn_key.vtn_name,
-                   kMaxLenVtnName + 1);
-
-  uuu::upll_strncpy(ff_key->flowfilter_key.if_key.vrt_key.vrouter_name,
-                    vrtif_key->vrt_key.vrouter_name,
-                    kMaxLenVtnName + 1);
-
-  uuu::upll_strncpy(ff_key->flowfilter_key.if_key.if_name,
-                    vrtif_key->if_name,
-                    kMaxLenInterfaceName + 1);
-  ff_key->flowfilter_key.direction = 0xFE;
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutFlag };
   result_code = ReadConfigDB(ckv, dt_type ,
                              UNC_OP_READ, dbop, dmi, MAINTBL);
@@ -3176,15 +2859,14 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::SetVlinkPortmapConfiguration(
   ConfigKeyVal *ckv_first = ckv;
   while (ckv) {
     val_flowfilter_entry_t *flowfilter_val =
-      reinterpret_cast<val_flowfilter_entry_t *> (GetVal(ckv));
+        reinterpret_cast<val_flowfilter_entry_t *> (GetVal(ckv));
     flag_port_map = 0;
     GET_USER_DATA_FLAGS(ckv, flag_port_map);
     if (flag & kVlinkConfigured) {
-      UPLL_LOG_DEBUG("Vlink Flag");  
+      UPLL_LOG_DEBUG("Vlink Flag");
       flag_port_map |= SET_FLAG_VLINK;
     } else {
-
-      UPLL_LOG_DEBUG("No Vlink Flag");  
+      UPLL_LOG_DEBUG("No Vlink Flag");
       flag_port_map &= NO_FLAG_VLINK;
     }
     UPLL_LOG_DEBUG("SET_USER_DATA_FLAGS flag_port_map %d", flag_port_map);
@@ -3194,7 +2876,7 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::SetVlinkPortmapConfiguration(
     result_code = UpdateConfigDB(ckv, dt_type, UNC_OP_UPDATE,
                                  dmi, &dbop_update, MAINTBL);
     if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("Failed to update flag in DB ,err %d", result_code);
+      UPLL_LOG_DEBUG("Failed to update flag in DB , err %d", result_code);
       DELETE_IF_NOT_NULL(ckv);
       return result_code;
     }
@@ -3203,32 +2885,32 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::SetVlinkPortmapConfiguration(
       FlowListMoMgr *mgr = reinterpret_cast<FlowListMoMgr *>
           (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
       if (flag_port_map & SET_FLAG_VLINK) {
-          op = UNC_OP_CREATE;
+        op = UNC_OP_CREATE;
       } else  {
-          op = UNC_OP_DELETE;
+        op = UNC_OP_DELETE;
       }
       result_code = GetControllerDomainID(ikey, dt_type, dmi);
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("Failed to Get the Controller Domain details, err:%d",
-                   result_code);
+                       result_code);
         DELETE_IF_NOT_NULL(ckv);
         return result_code;
       }
       GET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
       UPLL_LOG_DEBUG("ctrlrid %s, domainid %s",
-                 ctrlr_dom.ctrlr, ctrlr_dom.domain);
+                     ctrlr_dom.ctrlr, ctrlr_dom.domain);
       ctrlr_id = ctrlr_dom.ctrlr;
       result_code = mgr->AddFlowListToController(
-           reinterpret_cast<char*>(flowfilter_val->flowlist_name), dmi,
-           reinterpret_cast<char *>(ctrlr_id), dt_type, op);
+          reinterpret_cast<char*>(flowfilter_val->flowlist_name), dmi,
+          reinterpret_cast<char *>(ctrlr_id), dt_type, op);
       if (result_code != UPLL_RC_SUCCESS) {
-         UPLL_LOG_DEBUG(" Send delete request to flowlist failed. err code(%d)",
-                      result_code);
-         DELETE_IF_NOT_NULL(ckv);
-         return result_code;
+        UPLL_LOG_DEBUG(" Send delete request to flowlist failed. err code(%d)",
+                       result_code);
+        DELETE_IF_NOT_NULL(ckv);
+        return result_code;
       }
     }
-  
+
     ckv = ckv->get_next_cfg_key_val();
   }
   DELETE_IF_NOT_NULL(ckv_first);
@@ -3251,9 +2933,9 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::RestorePOMInCtrlTbl(
     return UPLL_RC_ERR_GENERIC;
   }
   if (tbl != MAINTBL ||
-       ikey->get_key_type() != UNC_KT_VRTIF_FLOWFILTER_ENTRY) {
+      ikey->get_key_type() != UNC_KT_VRTIF_FLOWFILTER_ENTRY) {
     UPLL_LOG_DEBUG("Ignoring  ktype/Table kt=%d, tbl=%d",
-                    ikey->get_key_type(), tbl);
+                   ikey->get_key_type(), tbl);
     return result_code;
   }
 
@@ -3268,26 +2950,26 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::RestorePOMInCtrlTbl(
     result_code = GetControllerDomainID(ikey, dt_type, dmi);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Failed to Get the Controller Domain details, err:%d",
-                   result_code);
+                     result_code);
       return result_code;
     }
     GET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
     UPLL_LOG_DEBUG("ctrlrid %s, domainid %s",
-                 ctrlr_dom.ctrlr, ctrlr_dom.domain);
+                   ctrlr_dom.ctrlr, ctrlr_dom.domain);
     ctrlr_id = ctrlr_dom.ctrlr;
 
     mgr = reinterpret_cast<FlowListMoMgr *>
         (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
     result_code = mgr->AddFlowListToController(
-              reinterpret_cast<char *>(flowfilter_val->flowlist_name),
-              dmi,
-              reinterpret_cast<char *>(ctrlr_id),
-              dt_type,
-              UNC_OP_CREATE);
+        reinterpret_cast<char *>(flowfilter_val->flowlist_name),
+        dmi,
+        reinterpret_cast<char *>(ctrlr_id),
+        dt_type,
+        UNC_OP_CREATE);
     if (result_code != UPLL_RC_SUCCESS) {
-       UPLL_LOG_DEBUG("Unable to update the FlowList at ctrlr table.Err %d",
+      UPLL_LOG_DEBUG("Unable to update the FlowList at ctrlr table.Err %d",
                      result_code);
-       return result_code;
+      return result_code;
     }
   }
   return result_code;
@@ -3295,9 +2977,9 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::RestorePOMInCtrlTbl(
 
 upll_rc_t VrtIfFlowFilterEntryMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
                                                        ConfigKeyVal *ikey,
-                                                       DalDmlIntf *dmi) {
+                                                       DalDmlIntf *dmi,
+                                                       bool restore_flag) {
   UPLL_FUNC_TRACE;
-  ConfigKeyVal*  okey = NULL;
   uint8_t *ctrlr_id = NULL;
   controller_domain ctrlr_dom;
   memset(&ctrlr_dom, 0, sizeof(ctrlr_dom));
@@ -3313,25 +2995,30 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
   if (req->datatype == UPLL_DT_IMPORT) {
     UPLL_LOG_DEBUG("Inside %d", req->datatype);
     if (ikey->get_cfg_val() &&
-            (ikey->get_cfg_val()->get_st_num() ==
-                 IpctSt::kIpcStPfcdrvValFlowfilterEntry)) {
-      UPLL_LOG_DEBUG("pran:-val struct num (%d)",ikey->get_cfg_val()->get_st_num());
+        (ikey->get_cfg_val()->get_st_num() ==
+         IpctSt::kIpcStPfcdrvValFlowfilterEntry)) {
+      UPLL_LOG_DEBUG("pran:-val struct num (%d)", ikey->
+                     get_cfg_val()->get_st_num());
       pfc_val_import = reinterpret_cast<pfcdrv_val_flowfilter_entry_t *>
-                (ikey->get_cfg_val()->get_val());
-        val_ff_import = reinterpret_cast<val_flowfilter_entry_t *>
-                          (ConfigKeyVal::Malloc(sizeof(val_flowfilter_entry_t)));
-        memcpy(val_ff_import, &pfc_val_import->val_ff_entry, sizeof(val_flowfilter_entry_t));
-        UPLL_LOG_DEBUG("FLOWLIST name (%s)", val_ff_import->flowlist_name);
-        ikey->SetCfgVal(NULL);
-        ikey->SetCfgVal(new ConfigVal(IpctSt::kIpcStValFlowfilterEntry, val_ff_import));
+          (ikey->get_cfg_val()->get_val());
+      val_ff_import = reinterpret_cast<val_flowfilter_entry_t *>
+          (ConfigKeyVal::Malloc(sizeof(val_flowfilter_entry_t)));
+      memcpy(val_ff_import, &pfc_val_import->val_ff_entry,
+             sizeof(val_flowfilter_entry_t));
+      UPLL_LOG_DEBUG("FLOWLIST name (%s)", val_ff_import->flowlist_name);
+      ikey->SetCfgVal(NULL);
+      ikey->SetCfgVal(new ConfigVal(IpctSt::kIpcStValFlowfilterEntry,
+                                    val_ff_import));
     }
   }
   UPLL_LOG_TRACE("%s vrt_if_ff_entry", ikey->ToStrAll().c_str());
-  // validate syntax and semantics
-  result_code = ValidateMessage(req, ikey);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG(" ValidateMessage failed ");
-    return result_code;
+  if (!restore_flag) {
+    //  validate syntax and semantics
+    result_code = ValidateMessage(req, ikey);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG(" ValidateMessage failed ");
+      return result_code;
+    }
   }
 
   result_code = ValidateAttribute(ikey, dmi, req);
@@ -3340,20 +3027,16 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
     return result_code;
   }
 
-  // Check if Object already exists in CANDIDATE DB
-  result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_READ, dmi);
-  if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS
-      || result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-    UPLL_LOG_DEBUG("Record already exists in Candidate DB");
-    return result_code;
-  }
   val_flowfilter_entry_t *flowfilter_val =
       reinterpret_cast<val_flowfilter_entry_t *> (GetVal(ikey));
-  FlowListMoMgr *mgr = NULL;
   result_code = GetControllerDomainID(ikey, req->datatype, dmi);
   if (result_code != UPLL_RC_SUCCESS) {
+    if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+      result_code = UPLL_RC_ERR_PARENT_DOES_NOT_EXIST;
+    }
     UPLL_LOG_DEBUG("Failed to Get the Controller Domain details, err:%d",
                    result_code);
+    return result_code;
   }
   GET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
 
@@ -3361,88 +3044,55 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
                  ctrlr_dom.ctrlr, ctrlr_dom.domain);
   ctrlr_id = ctrlr_dom.ctrlr;
 
-   ConfigKeyVal *temp_key = NULL;
-   result_code = GetChildConfigKey(temp_key, NULL);
-  if(result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("GetChildConfigKey Failed in  ValidateCapability");
-    return result_code;
-  }
-  result_code = GetInstanceCount(temp_key,
-                                  reinterpret_cast<char*> (ctrlr_id),
-                                     req->datatype,
-                                     &cur_instance_count,
-                                     dmi,
-                                     MAINTBL);
-  DELETE_IF_NOT_NULL(temp_key);
-  if(result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("GetInstanceCount Failed in  ValidateCapability");
-    return result_code;
-  }
-
   result_code = ValidateCapability(req, ikey,
-                   reinterpret_cast<const char *>(ctrlr_id));
+                                   reinterpret_cast<const char *>(ctrlr_id));
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("validate Capability Failed %d", result_code);
     return result_code;
   }
-
-  // Check if Object exists in RUNNING DB and move it to CANDIDATE DB
-  if (UPLL_DT_CANDIDATE == req->datatype) {
-    result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dmi,
-                                 MAINTBL);
-    if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
-      result_code = RestoreChildren(ikey, req->datatype, UPLL_DT_RUNNING, dmi);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("Restore Operation Failed, err %d", result_code);
+  if (!restore_flag) {
+    if (UPLL_DT_CANDIDATE == req->datatype) {
+      result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dmi,
+                                   MAINTBL);
+      if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
+        UPLL_LOG_DEBUG("Key instance exist");
+        if ((ikey)->get_cfg_val()) {
+          UPLL_LOG_DEBUG("Read Key with Value struct");
+          DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
+            kOpInOutFlag | kOpInOutCtrlr | kOpInOutDomain };
+          result_code = ReadConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dbop,
+                                     dmi, MAINTBL);
+          if (UPLL_RC_SUCCESS != result_code &&
+              UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+            UPLL_LOG_DEBUG("ReadConfigDB Failed %d",  result_code);
+          }
+          if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code)  {
+            return UPLL_RC_ERR_CFG_SEMANTIC;
+          }
+        } else  {
+          result_code = UPLL_RC_SUCCESS;
+        }
+        if (UPLL_RC_SUCCESS == result_code) {
+          result_code = RestoreChildren(ikey,
+                                        req->datatype,
+                                        UPLL_DT_RUNNING,
+                                        dmi,
+                                        req);
+          UPLL_LOG_DEBUG("Restore Children returns %d", result_code);
+          return result_code;
+        }
+      } else if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+        UPLL_LOG_DEBUG("UpdateConfigDB Failed %d", result_code);
         return result_code;
       }
-      return result_code;
-    } else if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-      UPLL_LOG_DEBUG(" error reading DB. err code(%d)", result_code);
-      return result_code;
-    } else {
-      UPLL_LOG_DEBUG("Record doesn't exist in reading Running DB ");
-    }
-  }
-  if (flowfilter_val->valid[UPLL_IDX_FLOWLIST_NAME_FFE] == UNC_VF_VALID) {
-    mgr = reinterpret_cast<FlowListMoMgr *>
-        (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
-
-    // Check Flowlist object exist or not
-    result_code = mgr->GetChildConfigKey(okey, NULL);
-    if (!okey || result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Recored %d", result_code);
-      DELETE_IF_NOT_NULL(okey);
-      return result_code;
-    }
-    key_flowlist_t *key_flowlist = reinterpret_cast<key_flowlist_t*>
-        (okey->get_key());
-    uuu::upll_strncpy(key_flowlist->flowlist_name,
-                      flowfilter_val->flowlist_name,
-                      (kMaxLenFlowListName +1));
-
-    result_code = mgr->UpdateConfigDB(okey, req->datatype, UNC_OP_READ,
-                                      dmi, MAINTBL);
-    if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-      UPLL_LOG_DEBUG("Given FlowList does not exists %d", result_code);
-      delete okey;
-      return result_code;
-    } else if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
-      UPLL_LOG_DEBUG("Instance  Available");
-    } else if (result_code != UPLL_RC_SUCCESS) {
-      delete okey;
-      UPLL_LOG_DEBUG("Error Accesing CANDIDATE DB (%d)", result_code);
-      return result_code;
-    } 
-    if (okey) {
-      delete okey;
-      okey = NULL;
     }
+  } else {
+    result_code = UPLL_RC_ERR_NO_SUCH_INSTANCE;
   }
-  // create a record in CANDIDATE DB
+  //  create a record in CANDIDATE DB
   VrtIfMoMgr *vrtifmgr =
       reinterpret_cast<VrtIfMoMgr *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_VRT_IF)));
+                  UNC_KT_VRT_IF)));
   ConfigKeyVal *ckv = NULL;
   InterfacePortMapInfo flags = kVlinkPortMapNotConfigured;
   result_code = vrtifmgr->GetChildConfigKey(ckv, NULL);
@@ -3451,28 +3101,28 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
   key_vrt_if_t *vrtif_key = reinterpret_cast<key_vrt_if_t *>(ckv->get_key());
 
   uuu::upll_strncpy(vrtif_key->vrt_key.vtn_key.vtn_name,
-      ff_key->flowfilter_key.if_key.vrt_key.vtn_key.vtn_name,
-      kMaxLenVtnName + 1);
+                    ff_key->flowfilter_key.if_key.vrt_key.vtn_key.vtn_name,
+                    kMaxLenVtnName + 1);
 
   uuu::upll_strncpy(vrtif_key->vrt_key.vrouter_name,
-      ff_key->flowfilter_key.if_key.vrt_key.vrouter_name,
-      kMaxLenVtnName + 1);
+                    ff_key->flowfilter_key.if_key.vrt_key.vrouter_name,
+                    kMaxLenVtnName + 1);
 
   uuu::upll_strncpy(vrtif_key->if_name,
-       ff_key->flowfilter_key.if_key.if_name,
-       kMaxLenInterfaceName + 1);
+                    ff_key->flowfilter_key.if_key.if_name,
+                    kMaxLenInterfaceName + 1);
 
   uint8_t* vexternal = reinterpret_cast<uint8_t*>
-       (ConfigKeyVal::Malloc(kMaxLenVnodeName + 1));
+      (ConfigKeyVal::Malloc(kMaxLenVnodeName + 1));
   uint8_t* vex_if = reinterpret_cast<uint8_t*>
-       (ConfigKeyVal::Malloc(kMaxLenInterfaceName + 1));
+      (ConfigKeyVal::Malloc(kMaxLenInterfaceName + 1));
   result_code = vrtifmgr->GetVexternal(ckv, req->datatype, dmi,
-       vexternal, vex_if, flags);
+                                       vexternal, vex_if, flags);
   if (UPLL_RC_SUCCESS != result_code) {
-     DELETE_IF_NOT_NULL(ckv);
-     free(vexternal);
-     free(vex_if);
-     return result_code;
+    DELETE_IF_NOT_NULL(ckv);
+    free(vexternal);
+    free(vex_if);
+    return result_code;
   }
   DELETE_IF_NOT_NULL(ckv);
   uint8_t flag_port_map = 0;
@@ -3485,6 +3135,8 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
   SET_USER_DATA_FLAGS(ikey, flag_port_map);
   if (flags & kVlinkConfigured) {
     if (flowfilter_val->valid[UPLL_IDX_FLOWLIST_NAME_FFE] == UNC_VF_VALID) {
+      FlowListMoMgr *mgr = reinterpret_cast<FlowListMoMgr *>
+          (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
       result_code = mgr->AddFlowListToController(
           reinterpret_cast<char *>(flowfilter_val->flowlist_name), dmi,
           reinterpret_cast<char *> (ctrlr_id), req->datatype, UNC_OP_CREATE);
@@ -3505,9 +3157,10 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
   return result_code;
 }
 
-upll_rc_t VrtIfFlowFilterEntryMoMgr::GetControllerDomainID(ConfigKeyVal *ikey,
-                                          upll_keytype_datatype_t dt_type,
-                                          DalDmlIntf *dmi) {
+upll_rc_t VrtIfFlowFilterEntryMoMgr::GetControllerDomainID(
+    ConfigKeyVal *ikey,
+    upll_keytype_datatype_t dt_type,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   controller_domain ctrlr_dom;
@@ -3523,7 +3176,7 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::GetControllerDomainID(ConfigKeyVal *ikey,
   result_code = mgrvrtif->GetChildConfigKey(ckv, NULL);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("Unable to get the ParentConfigKey, resultcode=%d",
-                    result_code);
+                   result_code);
     return result_code;
   }
 
@@ -3559,7 +3212,7 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::GetControllerDomainID(ConfigKeyVal *ikey,
     DELETE_IF_NOT_NULL(vrt_key);
     DELETE_IF_NOT_NULL(ckv);
     UPLL_LOG_INFO("GetControllerDomainId error err code(%d)", result_code);
-    return UPLL_RC_ERR_GENERIC;
+    return result_code;
   }
 
   UPLL_LOG_DEBUG("ctrlrid %s, domainid %s",
@@ -3568,7 +3221,7 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::GetControllerDomainID(ConfigKeyVal *ikey,
   GET_USER_DATA_FLAGS(ikey, temp_flag);
   SET_USER_DATA(ikey, vrt_key);
   SET_USER_DATA_FLAGS(ikey, temp_flag);
-  // SET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
+  //  SET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
 
   DELETE_IF_NOT_NULL(vrt_key);
   DELETE_IF_NOT_NULL(ckv);
@@ -3583,7 +3236,7 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
     UPLL_LOG_DEBUG(" Input Key is NULL");
     return UPLL_RC_ERR_GENERIC;
   }
-  DELETE_IF_NOT_NULL(okey); 
+  DELETE_IF_NOT_NULL(okey);
   unc_key_type_t ikey_type = ikey->get_key_type();
   if (ikey_type != UNC_KT_VRTIF_FLOWFILTER_ENTRY) {
     UPLL_LOG_DEBUG(" Invalid key type received. Key type - %d", ikey_type);
@@ -3645,12 +3298,12 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::ConstructReadDetailResponse(
 }
 
 upll_rc_t VrtIfFlowFilterEntryMoMgr::DeleteChildrenPOM(
-          ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
-          DalDmlIntf *dmi) {
+    ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   uint8_t *ctrlr_id = NULL;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
-// uint8_t rename = 0;
+  //  uint8_t rename = 0;
   if (NULL == ikey && NULL == dmi) return result_code;
 
   ConfigKeyVal *temp_okey = NULL;
@@ -3660,7 +3313,7 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::DeleteChildrenPOM(
     return result_code;
   }
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone,
-                   kOpInOutCtrlr|kOpInOutDomain };
+    kOpInOutCtrlr|kOpInOutDomain|kOpInOutFlag };
   result_code = ReadConfigDB(temp_okey, UPLL_DT_CANDIDATE,
                              UNC_OP_READ, dbop, dmi, MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
@@ -3676,25 +3329,30 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::DeleteChildrenPOM(
   while (NULL != okey) {
     GET_USER_DATA_CTRLR(okey, ctrlr_id);
     val_flowfilter_entry_t *flowfilter_val =
-             reinterpret_cast<val_flowfilter_entry_t *> (GetVal(okey));
+        reinterpret_cast<val_flowfilter_entry_t *> (GetVal(okey));
     if (flowfilter_val->valid[UPLL_IDX_FLOWLIST_NAME_FFE] == UNC_VF_VALID) {
-      FlowListMoMgr *mgr = reinterpret_cast<FlowListMoMgr *>
-          (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
-      result_code = mgr->AddFlowListToController(
-          reinterpret_cast<char*>(flowfilter_val->flowlist_name), dmi,
-          reinterpret_cast<char *>(ctrlr_id), dt_type, UNC_OP_DELETE);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG(" Send delete request to flowlist failed. err code(%d)",
-                       result_code);
-        DELETE_IF_NOT_NULL(temp_okey);
-        return result_code;
+      uint8_t flag_port_map = 0;
+      GET_USER_DATA_FLAGS(okey, flag_port_map);
+      if (flag_port_map & SET_FLAG_VLINK) {
+        FlowListMoMgr *mgr = reinterpret_cast<FlowListMoMgr *>
+            (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
+        result_code = mgr->AddFlowListToController(
+            reinterpret_cast<char*>(flowfilter_val->flowlist_name), dmi,
+            reinterpret_cast<char *>(ctrlr_id), dt_type, UNC_OP_DELETE);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG(" Send delete request to flowlist failed."
+                         "err code(%d)",
+                         result_code);
+          DELETE_IF_NOT_NULL(temp_okey);
+          return result_code;
+        }
       }
     }
     result_code = UpdateConfigDB(okey, dt_type, UNC_OP_DELETE, dmi,
-                               MAINTBL);
+                                 MAINTBL);
     if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Failed to delete the vrt if flowfilter entry ,err %d",
-                     result_code);  
+      UPLL_LOG_DEBUG("Failed to delete the vrt if flowfilter entry , err %d",
+                     result_code);
       DELETE_IF_NOT_NULL(temp_okey);
       return result_code;
     }
@@ -3703,14 +3361,16 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::DeleteChildrenPOM(
   DELETE_IF_NOT_NULL(temp_okey);
   return UPLL_RC_SUCCESS;
 }
-upll_rc_t VrtIfFlowFilterEntryMoMgr::AuditUpdateController(unc_key_type_t keytype,
-                             const char *ctrlr_id,
-                             uint32_t session_id,
-                             uint32_t config_id,
-                             uuc::UpdateCtrlrPhase phase,
-                             bool *ctrlr_affected,
-                             DalDmlIntf *dmi) {
+
+upll_rc_t VrtIfFlowFilterEntryMoMgr::AuditUpdateController(
+    unc_key_type_t keytype,
+    const char *ctrlr_id,
+    uint32_t session_id,
+    uint32_t config_id,
+    uuc::UpdateCtrlrPhase phase,
+    DalDmlIntf *dmi,
+    ConfigKeyVal **err_ckv,
+    KTxCtrlrAffectedState *ctrlr_affected) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   DalResultCode db_result = uud::kDalRcSuccess;
@@ -3727,35 +3387,44 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::AuditUpdateController(unc_key_type_t keytyp
   uint8_t *ctrlr = reinterpret_cast<uint8_t *>(const_cast<char *>(ctrlr_id));
   /* decides whether to retrieve from controller table or main table */
   DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutCtrlr | kOpInOutDomain};
-  //GET_TABLE_TYPE(keytype, tbl);
+  // GET_TABLE_TYPE(keytype, tbl);
   unc_keytype_operation_t op = (phase == uuc::kUpllUcpCreate)?UNC_OP_CREATE:
-               ((phase == uuc::kUpllUcpUpdate)?UNC_OP_UPDATE:
-               ((phase == uuc::kUpllUcpDelete)?UNC_OP_DELETE:UNC_OP_INVALID));
+      ((phase == uuc::kUpllUcpUpdate)?UNC_OP_UPDATE:
+       ((phase == uuc::kUpllUcpDelete)?UNC_OP_DELETE:UNC_OP_INVALID));
 
   unc_keytype_operation_t op1 = op;
   if (phase == uuc::kUpllUcpDelete2)
-     return result_code;
+    return result_code;
   /* retreives the delta of running and audit configuration */
-  UPLL_LOG_DEBUG("Operation is %d", op); 
+  UPLL_LOG_DEBUG("Operation is %d", op);
   result_code = DiffConfigDB(UPLL_DT_RUNNING, UPLL_DT_AUDIT, op,
-        ckv_running_db, ckv_audit_db,
-        &cursor, dmi, ctrlr, tbl);
+                             ckv_running_db, ckv_audit_db,
+                             &cursor, dmi, ctrlr, tbl);
+  if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+    UPLL_LOG_DEBUG("No more diff found for operation %d", op);
+    DELETE_IF_NOT_NULL(ckv_running_db);
+    DELETE_IF_NOT_NULL(ckv_audit_db);
+    return UPLL_RC_SUCCESS;
+  }
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("DiffConfigDB failed - %d", result_code);
+    DELETE_IF_NOT_NULL(ckv_running_db);
+    DELETE_IF_NOT_NULL(ckv_audit_db);
     return result_code;
   }
   while (uud::kDalRcSuccess == (db_result = dmi->GetNextRecord(cursor))) {
     op1 = op;
     if (phase != uuc::kUpllUcpDelete) {
       uint8_t *db_ctrlr = NULL;
-      GET_USER_DATA_CTRLR(ckv_running_db,db_ctrlr);
+      GET_USER_DATA_CTRLR(ckv_running_db, db_ctrlr);
       UPLL_LOG_DEBUG("db ctrl_id and audit ctlr_id are  %s %s",
-                      db_ctrlr, ctrlr_id);
-      // Skipping the controller ID if the controller id in DB and
-      // controller id available for Audit are not the same
+                     db_ctrlr, ctrlr_id);
+      //  Skipping the controller ID if the controller id in DB and
+      //  controller id available for Audit are not the same
       if (db_ctrlr && strncmp(reinterpret_cast<const char *>(db_ctrlr),
-                      reinterpret_cast<const char *>(ctrlr_id),
-                      strlen(reinterpret_cast<const char *>(ctrlr_id)) + 1)) {
+                              reinterpret_cast<const char *>(ctrlr_id),
+                              strlen(reinterpret_cast<const char *>
+                                     (ctrlr_id)) + 1)) {
         continue;
       }
     }
@@ -3763,70 +3432,82 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::AuditUpdateController(unc_key_type_t keytyp
     switch (phase) {
       case uuc::kUpllUcpDelete:
         UPLL_LOG_TRACE("Deleted record is %s ",
-                        ckv_running_db->ToStrAll().c_str());
+                       ckv_running_db->ToStrAll().c_str());
         result_code = GetChildConfigKey(ckv_driver_req, ckv_running_db);
         UPLL_LOG_TRACE("ckv_driver_req in delete is %s",
-                        ckv_driver_req->ToStrAll().c_str());
+                       ckv_driver_req->ToStrAll().c_str());
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("GetChildConfigKey failed. err_code & phase %d %d",
-                           result_code, phase);
+                         result_code, phase);
+          DELETE_IF_NOT_NULL(ckv_running_db);
+          DELETE_IF_NOT_NULL(ckv_audit_db);
           if (cursor)
-             dmi->CloseCursor(cursor, true);
+            dmi->CloseCursor(cursor, true);
           return result_code;
         }
         if (ckv_driver_req->get_cfg_val()) {
           UPLL_LOG_DEBUG("Invalid param");
           DELETE_IF_NOT_NULL(ckv_driver_req);
+          DELETE_IF_NOT_NULL(ckv_running_db);
+          DELETE_IF_NOT_NULL(ckv_audit_db);
           if (cursor)
-             dmi->CloseCursor(cursor, true);
+            dmi->CloseCursor(cursor, true);
           return UPLL_RC_ERR_GENERIC;
         }
         result_code = ReadConfigDB(ckv_driver_req, UPLL_DT_AUDIT, UNC_OP_READ,
-                                             dbop, dmi, MAINTBL);
+                                   dbop, dmi, MAINTBL);
         if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("Returning error %d",result_code);
+          UPLL_LOG_DEBUG("Returning error %d", result_code);
           DELETE_IF_NOT_NULL(ckv_driver_req);
+          DELETE_IF_NOT_NULL(ckv_running_db);
+          DELETE_IF_NOT_NULL(ckv_audit_db);
           if (cursor)
-             dmi->CloseCursor(cursor, true);
+            dmi->CloseCursor(cursor, true);
           return UPLL_RC_ERR_GENERIC;
         }
         break;
       case uuc::kUpllUcpCreate:
-          UPLL_LOG_TRACE("Created  record is %s ",
-                          ckv_running_db->ToStrAll().c_str());
-          result_code = DupConfigKeyVal(ckv_driver_req, ckv_running_db, MAINTBL);
-          if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("DupConfigKeyVal failed. err_code & phase %d %d",
-                           result_code, phase);
-            if (cursor)
-              dmi->CloseCursor(cursor, true);
-            return result_code;
-          }
-         break;
+        UPLL_LOG_TRACE("Created  record is %s ",
+                       ckv_running_db->ToStrAll().c_str());
+        result_code = DupConfigKeyVal(ckv_driver_req, ckv_running_db, MAINTBL);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("DupConfigKeyVal failed. err_code & phase %d %d",
+                         result_code, phase);
+          DELETE_IF_NOT_NULL(ckv_running_db);
+          DELETE_IF_NOT_NULL(ckv_audit_db);
+          if (cursor)
+            dmi->CloseCursor(cursor, true);
+          return result_code;
+        }
+        break;
       case uuc::kUpllUcpUpdate:
-          ckv_audit_dup_db = NULL;
-          ckv_driver_req = NULL;
-          UPLL_LOG_TRACE("UpdateRecord  record  is %s ",
-                          ckv_running_db->ToStrAll().c_str());
-          UPLL_LOG_TRACE("UpdateRecord  record  is %s ",
-                          ckv_audit_db->ToStrAll().c_str());
-          result_code = DupConfigKeyVal(ckv_driver_req, ckv_running_db, MAINTBL);
-          if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("DupConfigKeyVal failed for running record. \
-                            err_code & phase %d %d", result_code, phase);
-            if (cursor)
-              dmi->CloseCursor(cursor, true);
-            return result_code;
-          }
-          result_code = DupConfigKeyVal(ckv_audit_dup_db, ckv_audit_db, MAINTBL);
-          if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("DupConfigKeyVal failed for audit record. \
-                           err_code & phase %d %d", result_code, phase);
-            DELETE_IF_NOT_NULL(ckv_driver_req);
-            if (cursor)
-              dmi->CloseCursor(cursor, true);
-            return result_code;
-          }
+        ckv_audit_dup_db = NULL;
+        ckv_driver_req = NULL;
+        UPLL_LOG_TRACE("UpdateRecord  record  is %s ",
+                       ckv_running_db->ToStrAll().c_str());
+        UPLL_LOG_TRACE("UpdateRecord  record  is %s ",
+                       ckv_audit_db->ToStrAll().c_str());
+        result_code = DupConfigKeyVal(ckv_driver_req, ckv_running_db, MAINTBL);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("DupConfigKeyVal failed for running record."
+                         "err_code & phase %d %d", result_code, phase);
+          DELETE_IF_NOT_NULL(ckv_running_db);
+          DELETE_IF_NOT_NULL(ckv_audit_db);
+          if (cursor)
+            dmi->CloseCursor(cursor, true);
+          return result_code;
+        }
+        result_code = DupConfigKeyVal(ckv_audit_dup_db, ckv_audit_db, MAINTBL);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("DupConfigKeyVal failed for audit record. "
+                         "err_code & phase %d %d", result_code, phase);
+          DELETE_IF_NOT_NULL(ckv_running_db);
+          DELETE_IF_NOT_NULL(ckv_audit_db);
+          DELETE_IF_NOT_NULL(ckv_driver_req);
+          if (cursor)
+            dmi->CloseCursor(cursor, true);
+          return result_code;
+        }
         break;
       default:
         UPLL_LOG_DEBUG("Invalid operation %d", phase);
@@ -3838,59 +3519,81 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::AuditUpdateController(unc_key_type_t keytyp
     if (ctrlr_dom.ctrlr == NULL) {
       DELETE_IF_NOT_NULL(ckv_driver_req);
       DELETE_IF_NOT_NULL(ckv_audit_dup_db);
+      DELETE_IF_NOT_NULL(ckv_running_db);
+      DELETE_IF_NOT_NULL(ckv_audit_db);
       if (cursor)
         dmi->CloseCursor(cursor, true);
       return UPLL_RC_ERR_GENERIC;
     }
 
     GET_USER_DATA_FLAGS(ckv_driver_req, db_flag);
-    // If vlink flag is not set at running and the operation is update
-    // then vlink is deleted in the update phase from UNC
-    // hence flowfilter seq no also should get deleted from controller
-    // hence sending the delete request to the controller driver
+    //  If vlink flag is not set at running and the operation is update
+    //  then vlink is deleted in the update phase from UNC
+    //  hence flowfilter seq no also should get deleted from controller
+    //  hence sending the delete request to the controller driver
     if (SET_FLAG_VLINK & db_flag) {
-      // Continue with further operations
+      //  Continue with further operations
     } else {
       if (UNC_OP_UPDATE == op1) {
         op1 = UNC_OP_DELETE;
       } else {
-        // No Vlink Configured, Configuration is not
-        // sent to driver  
+        //  No Vlink Configured, Configuration is not
+        //  sent to driver
         DELETE_IF_NOT_NULL(ckv_driver_req);
         DELETE_IF_NOT_NULL(ckv_audit_dup_db);
         continue;
       }
     }
 
-    if (UNC_OP_UPDATE == op1) {    
+    if (UNC_OP_UPDATE == op1) {
       void *running_val = NULL;
       bool invalid_attr = false;
       running_val = GetVal(ckv_driver_req);
       invalid_attr = FilterAttributes(running_val,
-           GetVal(ckv_audit_dup_db), false, UNC_OP_UPDATE);
+                                      GetVal(ckv_audit_dup_db),
+                                      false,
+                                      UNC_OP_UPDATE);
       if (invalid_attr) {
         DELETE_IF_NOT_NULL(ckv_driver_req);
         DELETE_IF_NOT_NULL(ckv_audit_dup_db);
+        //  Assuming that the diff found only in ConfigStatus
+        //  Setting the   value as OnlyCSDiff in the out
+        //  parameter ctrlr_affected
+        //  The value Configdiff should be given more
+        //  priority than the value
+        //  onlycs .
+        //  So  If the out parameter ctrlr_affected
+        //  has already value as configdiff
+        //   then dont change the value
+        if (*ctrlr_affected != uuc::kCtrlrAffectedConfigDiff) {
+          UPLL_LOG_INFO("Setting the ctrlr_affected to OnlyCSDiff");
+          *ctrlr_affected = uuc::kCtrlrAffectedOnlyCSDiff;
+        }
         continue;
       }
     }
+
     DELETE_IF_NOT_NULL(ckv_audit_dup_db);
     upll_keytype_datatype_t dt_type = (op1 == UNC_OP_DELETE)?
-      UPLL_DT_AUDIT : UPLL_DT_RUNNING;
+        UPLL_DT_AUDIT : UPLL_DT_RUNNING;
 
     result_code = GetRenamedControllerKey(ckv_driver_req, UPLL_DT_RUNNING,
                                           dmi, &ctrlr_dom);
-    if (result_code != UPLL_RC_SUCCESS && result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+    if (result_code != UPLL_RC_SUCCESS && result_code !=
+        UPLL_RC_ERR_NO_SUCH_INSTANCE) {
       UPLL_LOG_DEBUG(" GetRenamedControllerKey failed err code(%d)",
                      result_code);
       DELETE_IF_NOT_NULL(ckv_driver_req);
+      DELETE_IF_NOT_NULL(ckv_running_db);
+      DELETE_IF_NOT_NULL(ckv_audit_db);
       if (cursor)
         dmi->CloseCursor(cursor, true);
       return result_code;
     }
-   
 
-    pfcdrv_val_flowfilter_entry_t *pfc_val = reinterpret_cast<pfcdrv_val_flowfilter_entry_t *>
+
+    pfcdrv_val_flowfilter_entry_t *pfc_val = reinterpret_cast
+        <pfcdrv_val_flowfilter_entry_t *>
         (ConfigKeyVal::Malloc(sizeof(pfcdrv_val_flowfilter_entry_t)));
 
     pfc_val->valid[PFCDRV_IDX_VAL_VBRIF_VEXTIF_FFE] = UNC_VF_VALID;
@@ -3902,7 +3605,9 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::AuditUpdateController(unc_key_type_t keytyp
         (GetVal(ckv_driver_req));
     memcpy(&pfc_val->val_ff_entry, val, sizeof(val_flowfilter_entry_t));
 
-    ckv_driver_req->SetCfgVal(new ConfigVal(IpctSt::kIpcStPfcdrvValFlowfilterEntry, pfc_val));
+    ckv_driver_req->SetCfgVal(new ConfigVal(
+            IpctSt::kIpcStPfcdrvValFlowfilterEntry,
+            pfc_val));
 
     IpcResponse ipc_response;
     memset(&ipc_response, 0, sizeof(IpcResponse));
@@ -3913,89 +3618,120 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::AuditUpdateController(unc_key_type_t keytyp
     ipc_req.header.operation = op1;
     ipc_req.header.datatype = UPLL_DT_CANDIDATE;
     ipc_req.ckv_data = ckv_driver_req;
-    if (!IpcUtil::SendReqToDriver((const char *)ctrlr_dom.ctrlr, reinterpret_cast<char *>
-                                  (ctrlr_dom.domain), PFCDRIVER_SERVICE_NAME, 
-                                  PFCDRIVER_SVID_LOGICAL, &ipc_req, true, &ipc_response)) {
+    if (!IpcUtil::SendReqToDriver((const char *)ctrlr_dom.ctrlr,
+                                  reinterpret_cast<char *>
+                                  (ctrlr_dom.domain), PFCDRIVER_SERVICE_NAME,
+                                  PFCDRIVER_SVID_LOGICAL,
+                                  &ipc_req, true,
+                                  &ipc_response)) {
       UPLL_LOG_INFO("Request to driver for Key %d for controller %s failed ",
-                    ckv_driver_req->get_key_type(), reinterpret_cast<char *>(ctrlr_dom.ctrlr));
+                    ckv_driver_req->get_key_type(),
+                    reinterpret_cast<char *>(ctrlr_dom.ctrlr));
 
       DELETE_IF_NOT_NULL(ckv_driver_req);
       if (cursor)
         dmi->CloseCursor(cursor, true);
+      DELETE_IF_NOT_NULL(ckv_running_db);
+      DELETE_IF_NOT_NULL(ckv_audit_db);
       return UPLL_RC_ERR_GENERIC;
     }
-    if  (ipc_response.header.result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("driver return failure err_code is %d", ipc_response.header.result_code);
+    if (ipc_response.header.result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("driver return failure err_code is %d",
+                     ipc_response.header.result_code);
+      *err_ckv = ckv_running_db;
+      if (phase != uuc::kUpllUcpDelete) {
         ConfigKeyVal *resp = NULL;
-         
+
         result_code = GetChildConfigKey(resp, ipc_response.ckv_data);
         if (!resp || result_code != UPLL_RC_SUCCESS) {
-           UPLL_LOG_DEBUG("DupConfigKeyVal failed for ipc response ckv err_code %d",
-                           result_code);
-           DELETE_IF_NOT_NULL(ipc_response.ckv_data);
-           DELETE_IF_NOT_NULL(resp);
-           DELETE_IF_NOT_NULL(ckv_driver_req);
-           if (cursor)
-             dmi->CloseCursor(cursor, true);
-           return result_code;
+          UPLL_LOG_DEBUG("DupConfigKeyVal failed for ipc"
+                         "response ckv err_code %d",
+                         result_code);
+          DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+          DELETE_IF_NOT_NULL(resp);
+          DELETE_IF_NOT_NULL(ckv_driver_req);
+          DELETE_IF_NOT_NULL(ckv_running_db);
+          DELETE_IF_NOT_NULL(ckv_audit_db);
+          if (cursor)
+            dmi->CloseCursor(cursor, true);
+          return result_code;
         }
 
-        pfcdrv_val_flowfilter_entry_t *pfc_val_ff = reinterpret_cast<pfcdrv_val_flowfilter_entry_t *>
-                                                    (GetVal(ipc_response.ckv_data));
+        pfcdrv_val_flowfilter_entry_t *pfc_val_ff = reinterpret_cast
+            <pfcdrv_val_flowfilter_entry_t *>
+            (GetVal(ipc_response.ckv_data));
         if (NULL == pfc_val_ff) {
           UPLL_LOG_DEBUG("pfcdrv_val_flowfilter_entry_t is NULL");
           DELETE_IF_NOT_NULL(resp);
           DELETE_IF_NOT_NULL(ckv_driver_req);
           DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+          DELETE_IF_NOT_NULL(ckv_running_db);
+          DELETE_IF_NOT_NULL(ckv_audit_db);
           if (cursor)
             dmi->CloseCursor(cursor, true);
           return UPLL_RC_ERR_GENERIC;
         }
-        val_flowfilter_entry_t* val_ff = reinterpret_cast<val_flowfilter_entry_t *>
+        val_flowfilter_entry_t* val_ff = reinterpret_cast
+            <val_flowfilter_entry_t *>
             (ConfigKeyVal::Malloc(sizeof(val_flowfilter_entry_t)));
-        memcpy(val_ff, &pfc_val_ff->val_ff_entry, sizeof(val_flowfilter_entry_t));
+        memcpy(val_ff, &pfc_val_ff->val_ff_entry,
+               sizeof(val_flowfilter_entry_t));
         resp->AppendCfgVal(IpctSt::kIpcStValFlowfilterEntry, val_ff);
-        result_code = UpdateAuditConfigStatus(UNC_CS_INVALID, phase, resp);
+        result_code = UpdateAuditConfigStatus(UNC_CS_INVALID,
+                                              phase,
+                                              resp,
+                                              dmi);
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_TRACE("Update Audit config status failed %d",
-                  result_code);
+                         result_code);
           DELETE_IF_NOT_NULL(resp);
           DELETE_IF_NOT_NULL(ckv_driver_req);
           DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+          DELETE_IF_NOT_NULL(ckv_running_db);
+          DELETE_IF_NOT_NULL(ckv_audit_db);
           if (cursor)
             dmi->CloseCursor(cursor, true);
           return result_code;
         }
         DbSubOp dbop = { kOpNotRead, kOpMatchNone, kOpInOutCs };
         result_code = UpdateConfigDB(resp, dt_type, UNC_OP_UPDATE,
-                                       dmi, &dbop,tbl);
+                                     dmi, &dbop, tbl);
         if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("UpdateConfigDB failed for ipc response ckv err_code %d",
-                          result_code);
+          UPLL_LOG_DEBUG("UpdateConfigDB failed for ipc response"
+                         "ckv err_code %d",
+                         result_code);
           DELETE_IF_NOT_NULL(resp);
           DELETE_IF_NOT_NULL(ckv_driver_req);
           DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+          DELETE_IF_NOT_NULL(ckv_running_db);
+          DELETE_IF_NOT_NULL(ckv_audit_db);
           if (cursor)
             dmi->CloseCursor(cursor, true);
           return result_code;
-        }  
-      DELETE_IF_NOT_NULL(resp);
-
+        }
+        DELETE_IF_NOT_NULL(resp);
+      }
+      return ipc_response.header.result_code;
     }
     DELETE_IF_NOT_NULL(ckv_driver_req);
     DELETE_IF_NOT_NULL(ipc_response.ckv_data);
-    *ctrlr_affected = true;
+    //  *ctrlr_affected = true;
+    if (*ctrlr_affected == uuc::kCtrlrAffectedOnlyCSDiff) {
+      UPLL_LOG_INFO("Reset ctrlr state from OnlyCSDiff to ConfigDiff");
+    }
+    UPLL_LOG_DEBUG("Setting the ctrlr_affected to ConfigDiff");
+    *ctrlr_affected = uuc::kCtrlrAffectedConfigDiff;
   }
   if (cursor)
-     dmi->CloseCursor(cursor, true);
+    dmi->CloseCursor(cursor, true);
   if (uud::kDalRcSuccess != db_result) {
-     UPLL_LOG_DEBUG("GetNextRecord from database failed  - %d", db_result);
-     result_code =  DalToUpllResCode(db_result);
+    UPLL_LOG_DEBUG("GetNextRecord from database failed  - %d", db_result);
+    result_code =  DalToUpllResCode(db_result);
   }
   DELETE_IF_NOT_NULL(ckv_running_db);
   DELETE_IF_NOT_NULL(ckv_audit_db);
   result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)
-                ? UPLL_RC_SUCCESS : result_code;
+      ? UPLL_RC_SUCCESS : result_code;
   return result_code;
 }
 
@@ -4008,8 +3744,8 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::SetValidAudit(ConfigKeyVal *&ikey) {
     return UPLL_RC_ERR_GENERIC;
   }
   for (unsigned int loop = 0;
-        loop < sizeof(val->valid) / sizeof(val->valid[0]);
-        ++loop) {
+       loop < sizeof(val->valid) / sizeof(val->valid[0]);
+       ++loop) {
     if (val->valid[loop] == UNC_VF_VALID) {
       val->cs_attr[loop] = UNC_CS_APPLIED;
     } else if (val->valid[loop] == UNC_VF_INVALID) {
@@ -4021,36 +3757,36 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::SetValidAudit(ConfigKeyVal *&ikey) {
 }
 
 upll_rc_t VrtIfFlowFilterEntryMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
-                                   DalDmlIntf *dmi,
-                                   const char *ctrlr_id) {
+                                                       DalDmlIntf *dmi,
+                                                       const char *ctrlr_id) {
   UPLL_FUNC_TRACE;
   uint8_t flags = 0;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   UPLL_LOG_TRACE(" ikey is %s", ikey->ToStrAll().c_str());
   uint8_t *controller_id = reinterpret_cast<uint8_t *>(
-                                 const_cast<char *>(ctrlr_id));
+      const_cast<char *>(ctrlr_id));
 
   /* check if object is renamed in the corresponding Rename Tbl
- *    * if "renamed"  create the object by the UNC name.
- *       * else - create using the controller name.
- *          */
  *    * if "renamed"  create the object by the UNC name.
  *       * else - create using the controller name.
  *          */
   result_code = GetRenamedUncKey(ikey, UPLL_DT_RUNNING, dmi, controller_id);
-  if (result_code != UPLL_RC_SUCCESS && result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+  if (result_code != UPLL_RC_SUCCESS && result_code !=
+      UPLL_RC_ERR_NO_SUCH_INSTANCE) {
     UPLL_LOG_DEBUG("GetRenamedUncKey Failed err_code %d", result_code);
     return result_code;
   }
 
   pfcdrv_val_flowfilter_entry_t *pfc_val =
-              reinterpret_cast<pfcdrv_val_flowfilter_entry_t *> (GetVal(ikey));
+      reinterpret_cast<pfcdrv_val_flowfilter_entry_t *> (GetVal(ikey));
   if (pfc_val == NULL) {
     UPLL_LOG_DEBUG("Driver Structure Empty");
     return UPLL_RC_ERR_GENERIC;
   }
 
-  if ( pfc_val->val_vbrif_vextif.interface_type == PFCDRV_IF_TYPE_VBRIF) {
+  if (pfc_val->val_vbrif_vextif.interface_type == PFCDRV_IF_TYPE_VBRIF) {
     flags = SET_FLAG_VLINK;
-  }
-  else {
+  } else {
     flags = 0;
   }
 
@@ -4064,17 +3800,17 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
 
   val_flowfilter_entry_t * val_ff_entry = NULL;
   val_ff_entry = reinterpret_cast<val_flowfilter_entry_t *>
-          (ConfigKeyVal::Malloc(sizeof(val_flowfilter_entry_t)));
+      (ConfigKeyVal::Malloc(sizeof(val_flowfilter_entry_t)));
 
   memcpy(val_ff_entry, &pfc_val->val_ff_entry, sizeof(val_flowfilter_entry_t));
-  okey->AppendCfgVal(IpctSt::kIpcStValFlowfilterEntry, val_ff_entry); 
+  okey->AppendCfgVal(IpctSt::kIpcStValFlowfilterEntry, val_ff_entry);
   SET_USER_DATA_FLAGS(okey, flags);
+
   controller_domain ctrlr_dom;
   memset(&ctrlr_dom, 0, sizeof(ctrlr_dom));
   result_code = GetControllerDomainID(okey, UPLL_DT_AUDIT, dmi);
   if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Failed to Get the Controller Domain details,err:%d",
+    UPLL_LOG_DEBUG("Failed to Get the Controller Domain details, err:%d",
                    result_code);
     DELETE_IF_NOT_NULL(okey);
     return result_code;
@@ -4085,7 +3821,7 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
                  ctrlr_dom.ctrlr, ctrlr_dom.domain);
 
   FlowListMoMgr *mgr = reinterpret_cast<FlowListMoMgr *>
-        (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
+      (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
   if (mgr == NULL) {
     UPLL_LOG_DEBUG("Invalid FlowListMoMgr Instance");
     DELETE_IF_NOT_NULL(okey);
@@ -4093,11 +3829,12 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
   }
 
   if (pfc_val->val_ff_entry.valid[UPLL_IDX_FLOWLIST_NAME_FFE] == UNC_VF_VALID) {
-    result_code = mgr->AddFlowListToController(reinterpret_cast<char *>
-                       (pfc_val->val_ff_entry.flowlist_name), dmi,
-                       reinterpret_cast<char *> (const_cast<char *>(ctrlr_id)),
-                       UPLL_DT_AUDIT,
-                       UNC_OP_CREATE);
+    result_code = mgr->AddFlowListToController(
+        reinterpret_cast<char *>
+        (pfc_val->val_ff_entry.flowlist_name), dmi,
+        reinterpret_cast<char *> (const_cast<char *>(ctrlr_id)),
+        UPLL_DT_AUDIT,
+        UNC_OP_CREATE);
 
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Reference Count Updation Fails %d", result_code);
@@ -4112,7 +3849,11 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
     DELETE_IF_NOT_NULL(okey);
     return result_code;
   }
-  result_code = UpdateConfigDB(okey, UPLL_DT_AUDIT, UNC_OP_CREATE, dmi, MAINTBL);
+  result_code = UpdateConfigDB(okey,
+                               UPLL_DT_AUDIT,
+                               UNC_OP_CREATE,
+                               dmi,
+                               MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("UpdateConfigDB Failed err_code %d", result_code);
     DELETE_IF_NOT_NULL(okey);
@@ -4124,21 +3865,22 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
 
 
 bool VrtIfFlowFilterEntryMoMgr::FilterAttributes(void *&val1,
-                                          void *val2,
-                                          bool copy_to_running,
-                                          unc_keytype_operation_t op) {
+                                                 void *val2,
+                                                 bool copy_to_running,
+                                                 unc_keytype_operation_t op) {
   UPLL_FUNC_TRACE;
   if (op != UNC_OP_CREATE)
     return CompareValidValue(val1, val2, copy_to_running);
   return false;
 }
 
-upll_rc_t VrtIfFlowFilterEntryMoMgr::UpdateConfigStatus(ConfigKeyVal *ikey,
-                                       unc_keytype_operation_t op,
-                                       uint32_t driver_result,
-                                       ConfigKeyVal *upd_key,
-                                       DalDmlIntf *dmi,
-                                       ConfigKeyVal *ctrlr_key) {
+upll_rc_t VrtIfFlowFilterEntryMoMgr::UpdateConfigStatus(
+    ConfigKeyVal *ikey,
+    unc_keytype_operation_t op,
+    uint32_t driver_result,
+    ConfigKeyVal *upd_key,
+    DalDmlIntf *dmi,
+    ConfigKeyVal *ctrlr_key) {
   UPLL_FUNC_TRACE;
   ConfigKeyVal * vrt_ffe_run_key = NULL;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
@@ -4153,47 +3895,47 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::UpdateConfigStatus(ConfigKeyVal *ikey,
     result_code = GetChildConfigKey(vrt_ffe_run_key, ikey);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("GetChildConfigKey is failed resultcode=%d",
-                           result_code);
+                     result_code);
       return result_code;
     }
-    DbSubOp dbop_maintbl = { kOpReadSingle, kOpMatchNone, 
-                                          kOpInOutFlag |kOpInOutCs };
+    DbSubOp dbop_maintbl = { kOpReadSingle, kOpMatchNone,
+      kOpInOutFlag |kOpInOutCs };
     result_code = ReadConfigDB(vrt_ffe_run_key, UPLL_DT_RUNNING  ,
-                                     UNC_OP_READ, dbop_maintbl, dmi, MAINTBL);
+                               UNC_OP_READ, dbop_maintbl, dmi, MAINTBL);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Unable to read configuration from CandidateDb");
-      DELETE_IF_NOT_NULL(vrt_ffe_run_key); 
+      DELETE_IF_NOT_NULL(vrt_ffe_run_key);
       return result_code;
     }
     val_main = reinterpret_cast
-      <val_flowfilter_entry_t *>(GetVal(vrt_ffe_run_key));
+        <val_flowfilter_entry_t *>(GetVal(vrt_ffe_run_key));
     for (unsigned int loop = 0; loop < sizeof(val_main->valid)/
-           sizeof(val_main->valid[0]); ++loop) {
-           ffe_val->cs_attr[loop] = val_main->cs_attr[loop];
+         sizeof(val_main->valid[0]); ++loop) {
+      ffe_val->cs_attr[loop] = val_main->cs_attr[loop];
     }
     void *ffeval = reinterpret_cast<void *>(ffe_val);
     CompareValidValue(ffeval, GetVal(vrt_ffe_run_key), true);
   } else {
     return UPLL_RC_ERR_GENERIC;
   }
-  UPLL_LOG_TRACE("%s",(ikey->ToStrAll()).c_str());
-  val_flowfilter_entry_t *ffe_val2 = 
+  UPLL_LOG_TRACE("%s", (ikey->ToStrAll()).c_str());
+  val_flowfilter_entry_t *ffe_val2 =
       reinterpret_cast<val_flowfilter_entry_t *>(GetVal(upd_key));
   if (UNC_OP_UPDATE == op) {
-    UPLL_LOG_TRACE("%s",(upd_key->ToStrAll()).c_str());
+    UPLL_LOG_TRACE("%s", (upd_key->ToStrAll()).c_str());
     ffe_val->cs_row_status = ffe_val2->cs_row_status;
   }
   for (unsigned int loop = 0;
-    loop < sizeof(ffe_val->valid) / sizeof(ffe_val->valid[0]); ++loop) {
+       loop < sizeof(ffe_val->valid) / sizeof(ffe_val->valid[0]); ++loop) {
     /* Setting CS to the not supported attributes*/
     if (UNC_VF_NOT_SUPPORTED == ffe_val->valid[loop]) {
-        ffe_val->cs_attr[loop] = UNC_CS_NOT_SUPPORTED;
+      ffe_val->cs_attr[loop] = UNC_CS_NOT_SUPPORTED;
     } else if ((UNC_VF_VALID == ffe_val->valid[loop])
-          || (UNC_VF_VALID_NO_VALUE == ffe_val->valid[loop])) {
-        ffe_val->cs_attr[loop] = cs_status;
+               || (UNC_VF_VALID_NO_VALUE == ffe_val->valid[loop])) {
+      ffe_val->cs_attr[loop] = cs_status;
     } else if ((UNC_VF_INVALID == ffe_val->valid[loop]) &&
                (UNC_OP_CREATE == op)) {
-        ffe_val->cs_attr[loop] = UNC_CS_NOT_APPLIED;
+      ffe_val->cs_attr[loop] = UNC_CS_NOT_APPLIED;
     } else if ((UNC_VF_INVALID == ffe_val->valid[loop]) &&
                (UNC_OP_UPDATE == op)) {
       if (val_main->valid[loop] == UNC_VF_VALID) {
@@ -4202,27 +3944,27 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::UpdateConfigStatus(ConfigKeyVal *ikey,
         }
       }
     } else if ((UNC_VF_VALID == ffe_val->valid[loop]) &&
-       (UNC_OP_UPDATE == op)) {
+               (UNC_OP_UPDATE == op)) {
       if (cs_status == UNC_CS_APPLIED) {
         ffe_val->cs_attr[loop] = UNC_CS_APPLIED;
       }
-    } 
-     if ((ffe_val->valid[loop] == UNC_VF_VALID_NO_VALUE) 
-        &&(UNC_OP_UPDATE == op)) { 
-       ffe_val->cs_attr[loop]  = UNC_CS_UNKNOWN;
-     }
+    }
+    if ((ffe_val->valid[loop] == UNC_VF_VALID_NO_VALUE)
+        &&(UNC_OP_UPDATE == op)) {
+      ffe_val->cs_attr[loop]  = UNC_CS_UNKNOWN;
+    }
   }
-  DELETE_IF_NOT_NULL(vrt_ffe_run_key); 
+  DELETE_IF_NOT_NULL(vrt_ffe_run_key);
   return result_code;
 }
 
 upll_rc_t VrtIfFlowFilterEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
-    DalDmlIntf *dmi,
-    IpcReqRespHeader *req) {
+                                                   DalDmlIntf *dmi,
+                                                   IpcReqRespHeader *req) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_flowfilter_entry_t *val_ffe = reinterpret_cast
-    <val_flowfilter_entry_t *>(GetVal(ikey));
+      <val_flowfilter_entry_t *>(GetVal(ikey));
   if (!val_ffe) {
     UPLL_LOG_DEBUG("Val is NULL");
     return UPLL_RC_ERR_GENERIC;
@@ -4235,8 +3977,8 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
       return result_code;
     }
     MoMgrImpl *mgr =
-      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_VRTIF_FLOWFILTER)));
+        reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                    UNC_KT_VRTIF_FLOWFILTER)));
     if (!mgr) {
       UPLL_LOG_DEBUG("mgr is NULL");
       DELETE_IF_NOT_NULL(pkey);
@@ -4251,19 +3993,19 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
     }
     UPLL_LOG_DEBUG("Flag from parent : %d", rename);
     DELETE_IF_NOT_NULL(pkey);
-    // Check flowlist is renamed
+    //  Check flowlist is renamed
     if ((UNC_VF_VALID == val_ffe->valid[UPLL_IDX_FLOWLIST_NAME_FFE]) &&
         ((UNC_OP_CREATE == req->operation))) {
       ConfigKeyVal *fl_ckv = NULL;
       result_code = GetFlowlistConfigKey(reinterpret_cast<const char *>
-          (val_ffe->flowlist_name), fl_ckv, dmi);
+                                         (val_ffe->flowlist_name), fl_ckv, dmi);
       if (UPLL_RC_SUCCESS != result_code) {
         UPLL_LOG_DEBUG("GetFlowlistConfigKey failed %d", result_code);
         return result_code;
       }
       MoMgrImpl *fl_mgr =
-      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_FLOWLIST)));
+          reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                      UNC_KT_FLOWLIST)));
       if (NULL == fl_mgr) {
         UPLL_LOG_DEBUG("fl_mgr is NULL");
         DELETE_IF_NOT_NULL(fl_ckv);
@@ -4277,7 +4019,7 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
         return result_code;
       }
       if (fl_rename & 0x01) {
-        rename |= FLOW_RENAME;  // TODO Check for correct flag value
+        rename |= FLOW_RENAME;  // TODO(upll): Check for correct flag value
       }
       DELETE_IF_NOT_NULL(fl_ckv);
     }
@@ -4292,7 +4034,7 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
     }
     DbSubOp dbop1 = {kOpReadSingle, kOpMatchNone, kOpInOutFlag};
     result_code = ReadConfigDB(dup_ckv, req->datatype, UNC_OP_READ,
-                                     dbop1, dmi, MAINTBL);
+                               dbop1, dmi, MAINTBL);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
       DELETE_IF_NOT_NULL(dup_ckv);
@@ -4303,14 +4045,14 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
     if (UNC_VF_VALID == val_ffe->valid[UPLL_IDX_FLOWLIST_NAME_FFE]) {
       ConfigKeyVal *fl_ckv = NULL;
       result_code = GetFlowlistConfigKey(reinterpret_cast<const char *>
-          (val_ffe->flowlist_name), fl_ckv, dmi);
+                                         (val_ffe->flowlist_name), fl_ckv, dmi);
       if (UPLL_RC_SUCCESS != result_code) {
         UPLL_LOG_DEBUG("GetFlowlistConfigKey failed %d", result_code);
         return result_code;
       }
       MoMgrImpl *fl_mgr =
-      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_FLOWLIST)));
+          reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                      UNC_KT_FLOWLIST)));
       if (NULL == fl_mgr) {
         UPLL_LOG_DEBUG("fl_mgr is NULL");
         DELETE_IF_NOT_NULL(fl_ckv);
@@ -4324,7 +4066,7 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
         return result_code;
       }
       if (fl_rename & 0x01) {
-        rename |= FLOW_RENAME;  // TODO Check for correct flag value
+        rename |= FLOW_RENAME;  // TODO(upll): Check for correct flag value
       } else {
         rename &= NO_FLOWLIST_RENAME;
         /* reset flag*/
@@ -4332,7 +4074,9 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
       DELETE_IF_NOT_NULL(fl_ckv);
     } else if (UNC_VF_VALID_NO_VALUE == val_ffe->valid
                [UPLL_IDX_FLOWLIST_NAME_FFE]) {
-       rename &= NO_FLOWLIST_RENAME; // TODO Check for correct flag value. No rename flowlist value should be set
+      rename &= NO_FLOWLIST_RENAME;  // TODO(upll): Check for correct
+      // flag value.
+      //  No rename flowlist value should be set
     }
     SET_USER_DATA_FLAGS(ikey, rename);
   }
@@ -4340,13 +4084,13 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
 }
 
 upll_rc_t VrtIfFlowFilterEntryMoMgr::GetFlowlistConfigKey(
-        const char *flowlist_name, ConfigKeyVal *&okey,
-        DalDmlIntf *dmi) {
+    const char *flowlist_name, ConfigKeyVal *&okey,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
   MoMgrImpl *mgr =
       reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_FLOWLIST)));
+                  UNC_KT_FLOWLIST)));
   result_code = mgr->GetChildConfigKey(okey, NULL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("GetChildConfigKey failed %d", result_code);
@@ -4355,8 +4099,8 @@ upll_rc_t VrtIfFlowFilterEntryMoMgr::GetFlowlistConfigKey(
   key_flowlist_t *okey_key = reinterpret_cast<key_flowlist_t *>
       (okey->get_key());
   uuu::upll_strncpy(okey_key->flowlist_name,
-        flowlist_name,
-        (kMaxLenFlowListName+1));
+                    flowlist_name,
+                    (kMaxLenFlowListName+1));
   return UPLL_RC_SUCCESS;
 }
 }  // namespace kt_momgr
index 2e5f61bd964a2717887260896a37621a7fffee9a..93f22ba9e9a26d1b781b82c4f8a68bed407b28cb 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -21,13 +21,13 @@ namespace upll {
 namespace kt_momgr {
 
 /* This file declares interfaces for keyType KT_VRT_IF_FLOWFILTER */
-/**
- * @brief VrtIfFlowFilterEntryMoMgr class handles all the request
- *  received from service.
- */
+  /**
  * @brief VrtIfFlowFilterEntryMoMgr class handles all the request
  *  received from service.
  */
 
-class VrtIfFlowFilterEntryMoMgr : public MoMgrImpl {
-  private:
+  class VrtIfFlowFilterEntryMoMgr : public MoMgrImpl {
+   private:
     static BindInfo vrt_if_flowfilter_entry_bind_info[];
     static BindInfo vrt_if_flowfilter_entry_maintbl_bind_info[];
 
@@ -35,82 +35,82 @@ class VrtIfFlowFilterEntryMoMgr : public MoMgrImpl {
      * @Brief  Member variable for VrtIFlowlistRenameBindInfo
      */
     static BindInfo vrt_if_flowlist_rename_bind_info[];
-    uint32_t cur_instance_count;
-    public:
+
+   public:
     /**
-    * @brief  Method used to fill the CongigKeyVal with the
-              Parent Class Information.
-
-    * @param[out] okey        This Contains the pointerto the
-                              ConfigKeyVal Class forwhich
-                              fields have to be updated
-                              with values from the parent Class.
-    * @param[in]  parent_key  This Contains the pointer to the
-                              ConfigKeyVal Class which is the
-                              Parent Class used to fill the details.
-
-    * @retval UPLL_RC_SUCCESS  Successfull completion.
-    * @retval UPLL_RC_ERR_GENERIC Failure
-    */
+     * @brief  Method used to fill the CongigKeyVal with the
+     Parent Class Information.
+
+     * @param[out] okey        This Contains the pointerto the
+     ConfigKeyVal Class forwhich
+     fields have to be updated
+     with values from the parent Class.
+     * @param[in]  parent_key  This Contains the pointer to the
+     ConfigKeyVal Class which is the
+     Parent Class used to fill the details.
+
+     * @retval UPLL_RC_SUCCESS  Successfull completion.
+     * @retval UPLL_RC_ERR_GENERIC Failure
+     */
     upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *parent_key);
 
     /**
-    * @brief  Method used to get the RenamedUncKey.
-    * @param[out] ikey      This Contains the pointer to
-                            the Class for which fields have
-                            to be updated with values from
-                            the parent Class.
-    * @param[in]  dt_type   Describes Configiration Information.
-    * @param[in]  dmi       Pointer to DalDmlIntf Class.
-    * @param[in]  ctrlr_id  Describes the Controller Name.
-
-    * @retval UPLL_RC_SUCCESS  Successfull completion.
-    * @retval UPLL_RC_ERR_GENERIC  Failure
-    */
+     * @brief  Method used to get the RenamedUncKey.
+     * @param[out] ikey      This Contains the pointer to
+     the Class for which fields have
+     to be updated with values from
+     the parent Class.
+     * @param[in]  dt_type   Describes Configiration Information.
+     * @param[in]  dmi       Pointer to DalDmlIntf Class.
+     * @param[in]  ctrlr_id  Describes the Controller Name.
+
+     * @retval UPLL_RC_SUCCESS  Successfull completion.
+     * @retval UPLL_RC_ERR_GENERIC  Failure
+     */
     upll_rc_t GetRenamedUncKey(ConfigKeyVal *ikey,
                                upll_keytype_datatype_t dt_type, DalDmlIntf *dmi,
                                uint8_t *ctrlr_id);
 
     /**
-    * @brief  Method used for RenamedControllerkey(PfcName).
+     * @brief  Method used for RenamedControllerkey(PfcName).
 
-    * @param[out] ikey       Contains the Pointer to ConfigkeyVal
-                             Class and contains the Pfc Name.
-    * @param[in] dt_type     Describes Configiration Information.
-    * @param[in] dmi         Pointer to DalDmlIntf Class.
-    * @param[in] ctrlr_name  Describes the Controller Name.
+     * @param[out] ikey       Contains the Pointer to ConfigkeyVal
+     Class and contains the Pfc Name.
+     * @param[in] dt_type     Describes Configiration Information.
+     * @param[in] dmi         Pointer to DalDmlIntf Class.
+     * @param[in] ctrlr_name  Describes the Controller Name.
 
-    * @retval UPLL_RC_SUCCESS  Successfull completion.
-    * @retval UPLL_RC_ERR_GENERIC  Return Failure
-    */
+     * @retval UPLL_RC_SUCCESS  Successfull completion.
+     * @retval UPLL_RC_ERR_GENERIC  Return Failure
+     */
     upll_rc_t GetRenamedControllerKey(ConfigKeyVal *ikey,
                                       upll_keytype_datatype_t dt_type,
                                       DalDmlIntf *dmi,
                                       controller_domain *ctrlr_dom = NULL);
     /**
-    * @brief  Method used for DeleteMo  Operation.
+     * @brief  Method used for DeleteMo  Operation.
 
-    * @param[in] req   Describes RequestResponderHeaderClass.
-    * @param[in] ikey  Pointer to ConfigKeyVal Class.
-    * @param[in] dmi   Pointer to DalDmlIntf Class.
+     * @param[in] req   Describes RequestResponderHeaderClass.
+     * @param[in] ikey  Pointer to ConfigKeyVal Class.
+     * @param[in] dmi   Pointer to DalDmlIntf Class.
 
-    * @retval  UPLL_RC_SUCCESS  Successfull completion.
-    * @retval  UPLL_RC_ERR_GENERIC  Reurn Failure
-    */
+     * @retval  UPLL_RC_SUCCESS  Successfull completion.
+     * @retval  UPLL_RC_ERR_GENERIC  Reurn Failure
+     */
     upll_rc_t DeleteMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
                        DalDmlIntf *dmi);
     /**
-    * @brief  Method used for GetObjectConfigKeyVal  Operation.
+     * @brief  Method used for GetObjectConfigKeyVal  Operation.
 
-    * @param[out] okey    This Contains the pointerto the
-                          ConfigKeyVal Class forwhich
-                          fields have to be updated.
-    * @param[in] ikey     Pointer to ConfigKeyVal Class.
-    * @param[in] ObjType  Specifies Flowlist Or N/w Monitor Type .
+     * @param[out] okey    This Contains the pointerto the
+     ConfigKeyVal Class forwhich
+     fields have to be updated.
+     * @param[in] ikey     Pointer to ConfigKeyVal Class.
+     * @param[in] ObjType  Specifies Flowlist Or N/w Monitor Type .
 
-    * @retval UPLL_RC_SUCCESS Successfull completion.
-    * @retval UPLL_RC_ERR_GENERIC Generic Error
-    */
+     * @retval UPLL_RC_SUCCESS Successfull completion.
+     * @retval UPLL_RC_ERR_GENERIC Generic Error
+     */
     upll_rc_t GetObjectConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&ikey,
                                     int ObjType);
 
@@ -145,156 +145,158 @@ class VrtIfFlowFilterEntryMoMgr : public MoMgrImpl {
                                 IpcReqRespHeader *req = NULL);
 
     /**
-    * @brief  Method used for createCandidateMo  Operation.
+     * @brief  Method used for createCandidateMo  Operation.
 
-    * @param[in] req   Describes RequestResponderHeaderClass.
-    * @param[in] ikey  Pointer to ConfigKeyVal Class.
-    * @param[in] dmi   Pointer to DalDmlIntf Class.
+     * @param[in] req   Describes RequestResponderHeaderClass.
+     * @param[in] ikey  Pointer to ConfigKeyVal Class.
+     * @param[in] dmi   Pointer to DalDmlIntf Class.
 
-    * @retval  UPLL_RC_SUCCESS  Successfull completion.
-    * @retval  UPLL_RC_ERR_INSTANCE_EXISTS Instance does Not exist
-    */
+     * @retval  UPLL_RC_SUCCESS  Successfull completion.
+     * @retval  UPLL_RC_ERR_INSTANCE_EXISTS Instance does Not exist
+     */
     upll_rc_t CreateCandidateMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                                DalDmlIntf *dmi);
+                                DalDmlIntf *dmi, bool restore_flag = false);
 
     /**
-    * @brief  Method used for Validation before Merge.
-
-    * @param[in] ikey      This Contains the pointer to the
-                           Class for which fields have to
-                           be Validated before the Merge.
-    * @param[in] keytype   Describes the keyType Information.
-    * @param[in] dmi       Pointer to DalDmlIntf Class.
-    * @param[in] ctrlr_id  Describes the Controller Name.
-
-    * @retval UPLL_RC_SUCCESS  Successfull completion.
-    * @retval UPLL_RC_ERR_MERGE_CONFLICT  metge Conflict Error
-    */
+     * @brief  Method used for Validation before Merge.
+
+     * @param[in] ikey      This Contains the pointer to the
+     Class for which fields have to
+     be Validated before the Merge.
+     * @param[in] keytype   Describes the keyType Information.
+     * @param[in] dmi       Pointer to DalDmlIntf Class.
+     * @param[in] ctrlr_id  Describes the Controller Name.
+
+     * @retval UPLL_RC_SUCCESS  Successfull completion.
+     * @retval UPLL_RC_ERR_MERGE_CONFLICT  metge Conflict Error
+     */
     upll_rc_t MergeValidate(unc_key_type_t keytype, const char *ctrlr_id,
                             ConfigKeyVal *ikey, DalDmlIntf *dmi);
 
     /**
-    * @brief  Method used to Duplicate the ConfigkeyVal.
-
-    * @param[out] okey  This Contains the pointer to
-                        the Class for which fields
-                        have to be updated with values
-                        from the Request.
-    * @param[in]  req   This Contains the pointer to the
-                        Class which is used for the Duplication .
-
-    * @retval UPLL_RC_SUCCESS  Successfull completion.
-    * @retval UPLL_RC_ERR_GENERIC  Generic failure
-    */
+     * @brief  Method used to Duplicate the ConfigkeyVal.
+
+     * @param[out] okey  This Contains the pointer to
+     the Class for which fields
+     have to be updated with values
+     from the Request.
+     * @param[in]  req   This Contains the pointer to the
+     Class which is used for the Duplication .
+
+     * @retval UPLL_RC_SUCCESS  Successfull completion.
+     * @retval UPLL_RC_ERR_GENERIC  Generic failure
+     */
     upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
                               MoMgrTables tbl);
 
     /**
-    * @brief  Method Updates the ConfigStatus for AuditConfigiration.
-
-    * @param[out]  ckv_running  This Contains the pointer to the Class
-    *                           for which Audit ConfigStatus is Updated.
-    * @param[in]   cs_status    Describes CsStatus Information.
-                                Information.
-    * @param[in]   phase        Describes the Phase of the Operation.
-    *
-    * @retval  UPLL_RC_SUCCESS  Successfull completion.
-    * @retval  UPLL_RC_GENERIC  Returned Generic Error.
-    */
+     * @brief  Method Updates the ConfigStatus for AuditConfigiration.
+
+     * @param[out]  ckv_running  This Contains the pointer to the Class
+     *                           for which Audit ConfigStatus is Updated.
+     * @param[in]   cs_status    Describes CsStatus Information.
+     Information.
+     * @param[in]   phase        Describes the Phase of the Operation.
+     * @param[in]   dmi          Pointer to the DalDmlIntf(DB Interface)
+     *
+     * @retval  UPLL_RC_SUCCESS  Successfull completion.
+     * @retval  UPLL_RC_GENERIC  Returned Generic Error.
+     */
     upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
                                       uuc::UpdateCtrlrPhase phase,
-                                      ConfigKeyVal *&ckv_running);
+                                      ConfigKeyVal *&ckv_running,
+                                      DalDmlIntf *dmi);
 
     /**
-    * @brief  Method used for Update Operation.
+     * @brief  Method used for Update Operation.
 
-    * @param[in] req   Describes RequestResponderHeaderClass.
-    * @param[in] ikey  Pointer to ConfigKeyVal Class.
-    * @param[in] dmi   Pointer to DalDmlIntf Class.
+     * @param[in] req   Describes RequestResponderHeaderClass.
+     * @param[in] ikey  Pointer to ConfigKeyVal Class.
+     * @param[in] dmi   Pointer to DalDmlIntf Class.
 
-    * @retval UPLL_RC_SUCCESS  Successfull completion.
-    * @retval UPLL_RC_ERR_GENERIC Failure
-    */
+     * @retval UPLL_RC_SUCCESS  Successfull completion.
+     * @retval UPLL_RC_ERR_GENERIC Failure
+     */
     upll_rc_t UpdateMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
                        DalDmlIntf *dmi);
 
     /**
-    * @brief  Method Updates the ConfigStatus for AuditConfigiration.
-
-    * @param[out] ckv_db               This Contains the pointer to
-                                       the Class for which ConfigStatus
-                                       is Updated.
-    * @param[in]  ctrlr_commit_status  Describes Commit Control Status Information.
-    * @param[in]  response_code        Describes the Response Code.
-    * @param[in]  dmi                  Pinter to DalDmlIntf Class.
-
-    * @retval UPLL_RC_SUCCESS  Successfull completion.
-    * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE  No Instance Exist
-    */
+     * @brief  Method Updates the ConfigStatus for AuditConfigiration.
+
+     * @param[out] ckv_db               This Contains the pointer to
+     the Class for which ConfigStatus
+     is Updated.
+     * @param[in]  ctrlr_commit_status  Describes Commit Control Status Information.
+     * @param[in]  response_code        Describes the Response Code.
+     * @param[in]  dmi                  Pinter to DalDmlIntf Class.
+
+     * @retval UPLL_RC_SUCCESS  Successfull completion.
+     * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE  No Instance Exist
+     */
     upll_rc_t ReadMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
                      DalDmlIntf *dmi);
 
     /**
-    * @brief  Method used for Trasaction Vote Operation.
+     * @brief  Method used for Trasaction Vote Operation.
 
-    * @param[in] key            Pointer to ConfigKeyVal Class.
-    * @param[in] op             Describes the Type of Opeartion.
-    * @param[in] driver_result  Describes the result of Driver Operation.
-    * @param[in] upd_key        Pointer to ConfigKeyVal Class.
-    * @param[in] ctrlr_key      Pointer to ConfigKeyVal Class.
+     * @param[in] key            Pointer to ConfigKeyVal Class.
+     * @param[in] op             Describes the Type of Opeartion.
+     * @param[in] driver_result  Describes the result of Driver Operation.
+     * @param[in] upd_key        Pointer to ConfigKeyVal Class.
+     * @param[in] ctrlr_key      Pointer to ConfigKeyVal Class.
 
-    * @retval  UPLL_RC_SUCCESS  Successfull completion.
-    * @retval  UPLL_RC_ERR_GENERIC  Failure
-    */
+     * @retval  UPLL_RC_SUCCESS  Successfull completion.
+     * @retval  UPLL_RC_ERR_GENERIC  Failure
+     */
     upll_rc_t UpdateConfigStatus(ConfigKeyVal *key, unc_keytype_operation_t op,
                                  uint32_t driver_result, ConfigKeyVal *upd_key,
                                  DalDmlIntf *dmi, ConfigKeyVal *ctrlr_key);
 
     /**
-    * @brief  Allocates Memory for the Incoming Pointer to the Class.
+     * @brief  Allocates Memory for the Incoming Pointer to the Class.
 
-    * @param[out] ck_val   This Contains the pointer to the Class for
-                           which memory has to be allocated.
-    * @param[in]  dt_type  Describes Configiration Information.
-    * @param[in]  tbl      Describes the Destination table Information.
+     * @param[out] ck_val   This Contains the pointer to the Class for
+     which memory has to be allocated.
+     * @param[in]  dt_type  Describes Configiration Information.
+     * @param[in]  tbl      Describes the Destination table Information.
 
-    * @retval UPLL_RC_SUCCESS  Successfull completion.
-    * @retval UPLL_RC_ERR_GENERIC  Return Generic Error
-    */
+     * @retval UPLL_RC_SUCCESS  Successfull completion.
+     * @retval UPLL_RC_ERR_GENERIC  Return Generic Error
+     */
     upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
                        MoMgrTables tbl);
 
     /**
-    * @brief  Allocates Memory for the Incoming Pointer to the Class.
+     * @brief  Allocates Memory for the Incoming Pointer to the Class.
 
-    *@param[out] val      This Contains the pointer to the Class for
-                          which memory has to be allocated.
-    *@param[in]  indx     Describes The Index Value
-    *@param[in]  valid    Describes The Validity Of VrtIfFlowFilterEntryMoMgr
-    *@param[in]  dt_type  Describes Configiration Information.
-    *@param[in]  tbl      Describes the Destination table Information.
+     *@param[out] val      This Contains the pointer to the Class for
+     which memory has to be allocated.
+     *@param[in]  indx     Describes The Index Value
+     *@param[in]  valid    Describes The Validity Of VrtIfFlowFilterEntryMoMgr
+     *@param[in]  dt_type  Describes Configiration Information.
+     *@param[in]  tbl      Describes the Destination table Information.
 
-    *@retval  UPLL_RC_SUCCESS  Successfull completion.
-    *@retval  UPLL_RC_ERR_GENERIC  Failure
-    */
+     *@retval  UPLL_RC_SUCCESS  Successfull completion.
+     *@retval  UPLL_RC_ERR_GENERIC  Failure
+     */
 
     upll_rc_t GetValid(void *val, uint64_t indx, uint8_t *&valid,
                        upll_keytype_datatype_t dt_type, MoMgrTables tbl);
 
     /**
-    * @Brief Validates the syntax of the specified key and value structure
-    *        for KT_VRTIF_FLOWFILTER_ENTRY keytype
-    *
-    * @param[in] IpcReqRespHeader  contains first 8 fields of input
-    *                              request structure
-    * @param[in] ConfigKeyVal      key and value structure.
-    *
-    * @retval UPLL_RC_SUCCESS               Successful.
-    * @retval UPLL_RC_ERR_CFG_SYNTAX        Syntax error.
-    * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE  key_vrtif_flowfilter_entry
-    *                                       is not available.
-    * @retval UPLL_RC_ERR_GENERIC           Generic failure.
-    */
+     * @Brief Validates the syntax of the specified key and value structure
+     *        for KT_VRTIF_FLOWFILTER_ENTRY keytype
+     *
+     * @param[in] IpcReqRespHeader  contains first 8 fields of input
+     *                              request structure
+     * @param[in] ConfigKeyVal      key and value structure.
+     *
+     * @retval UPLL_RC_SUCCESS               Successful.
+     * @retval UPLL_RC_ERR_CFG_SYNTAX        Syntax error.
+     * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE  key_vrtif_flowfilter_entry
+     *                                       is not available.
+     * @retval UPLL_RC_ERR_GENERIC           Generic failure.
+     */
     upll_rc_t ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *key);
 
 
@@ -312,41 +314,40 @@ class VrtIfFlowFilterEntryMoMgr : public MoMgrImpl {
      * @retval UPLL_RC_ERR_GENERIC           Generic failure.
      */
     upll_rc_t ValidateVrtIfValStruct(IpcReqRespHeader *req,
-                                     ConfigKeyVal *ikey,
-                                     DalDmlIntf *dmi);
-
-   /**
-    * @Brief Validates the syntax fr KT_VRTIF_FLOWFILTER_ENTRY
-    *        keytype key structure.
-    *
-    * @param[in]  key_vbrif_flowfilter  KT_VRTIF_FLOWFILTER_ENTRY key structure.
-    *
-    * @retval UPLL_RC_SUCCESS        validation succeeded.
-    * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
-    */
+                                     ConfigKeyVal *ikey);
+
+    /**
+     * @Brief Validates the syntax fr KT_VRTIF_FLOWFILTER_ENTRY
+     *        keytype key structure.
+     *
+     * @param[in]  key_vbrif_flowfilter  KT_VRTIF_FLOWFILTER_ENTRY key structure.
+     *
+     * @retval UPLL_RC_SUCCESS        validation succeeded.
+     * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
+     */
     upll_rc_t ValidateVrtIfFlowfilterEntryKey(
-    key_vrt_if_flowfilter_entry_t* key_vrt_if_flowfilter_entry,
-    unc_keytype_operation_t operation);
+        key_vrt_if_flowfilter_entry_t* key_vrt_if_flowfilter_entry,
+        unc_keytype_operation_t operation);
 
     /**
-    * @Brief Checks if the specified key type(KT_VRTIF_FLOWFILTER_ENTRY) and
-    *        associated attributes are supported on the given controller,
-    *        based on the valid flag
-    *
-    * @param[in] IpcReqRespHeader  contains first 8 fields of input
-    *                              request structure
-    * @param[in] ConfigKeyVal      contains key and value structure.
-    * @param[in] ctrlr_name        controller name.
-    *
-    * @retval  UPLL_RC_SUCCESS              Validation succeeded.
-    * @retval  UPLL_RC_ERR_GENERIC          Validation failure.
-    * @retval  UPLL_RC_ERR_INVALID_OPTION1  Option1 is not valid.
-    * @retval  UPLL_RC_ERR_INVALID_OPTION2  Option2 is not valid.
-    */
+     * @Brief Checks if the specified key type(KT_VRTIF_FLOWFILTER_ENTRY) and
+     *        associated attributes are supported on the given controller,
+     *        based on the valid flag
+     *
+     * @param[in] IpcReqRespHeader  contains first 8 fields of input
+     *                              request structure
+     * @param[in] ConfigKeyVal      contains key and value structure.
+     * @param[in] ctrlr_name        controller name.
+     *
+     * @retval  UPLL_RC_SUCCESS              Validation succeeded.
+     * @retval  UPLL_RC_ERR_GENERIC          Validation failure.
+     * @retval  UPLL_RC_ERR_INVALID_OPTION1  Option1 is not valid.
+     * @retval  UPLL_RC_ERR_INVALID_OPTION2  Option2 is not valid.
+     */
     upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                                  const char* ctrlr_name = NULL);
+                                 const char* ctrlr_name = NULL);
 
-     /**
+    /**
      * @Brief Method used to get the Bind Info Structure for Rename Purpose.
      *
      * @param[in]  key_type  Describes the KT Information.
@@ -357,7 +358,7 @@ class VrtIfFlowFilterEntryMoMgr : public MoMgrImpl {
      * @retval  pfc_true   Successful Completion.
      * @retval  pfc_fasle  Failure.
      */
-     bool GetRenameKeyBindInfo(unc_key_type_t key_type,
+    bool GetRenameKeyBindInfo(unc_key_type_t key_type,
                               BindInfo *&binfo,
                               int &nattr,
                               MoMgrTables tbl);
@@ -372,10 +373,10 @@ class VrtIfFlowFilterEntryMoMgr : public MoMgrImpl {
      * @retval  UPLL_RC_SUCCESS      Successfull Completion.
      * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
      */
-     upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey,
+    upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey,
                               ConfigKeyVal *ikey);
 
-     /**
+    /**
      * @brief Method To Compare the Valid Check of Attributes
      *
      * @param[out]  val1   Pointer to ConfigKeyVal Class
@@ -412,7 +413,7 @@ class VrtIfFlowFilterEntryMoMgr : public MoMgrImpl {
     bool IsValidKey(void *key,
                     uint64_t index);
 
-      /**
+    /**
      * @brief  Method used for GetParentConfigKey Operation.
      *
      * @param[out]  okey        Pointer to ConfigKeyVal Class.
@@ -421,8 +422,8 @@ class VrtIfFlowFilterEntryMoMgr : public MoMgrImpl {
      * @retval  UPLL_RC_SUCCESS      Successfull completion.
      * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
      */
-     upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey,
-                                  ConfigKeyVal *ikey);
+    upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey,
+                                 ConfigKeyVal *ikey);
 
 
     /**
@@ -435,13 +436,13 @@ class VrtIfFlowFilterEntryMoMgr : public MoMgrImpl {
      *
      * @retval  UPLL_RC_SUCCESS      Successfull completion.
      * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
-     * @retval  UPLL_RC_ERR_INSTANCE_EXISTS       Record already exists 
+     * @retval  UPLL_RC_ERR_INSTANCE_EXISTS       Record already exists
      * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
      */
-     upll_rc_t RestorePOMInCtrlTbl(ConfigKeyVal *ikey,
-                                   upll_keytype_datatype_t dt_type,
-                                   MoMgrTables tbl,
-                                   DalDmlIntf* dmi);
+    upll_rc_t RestorePOMInCtrlTbl(ConfigKeyVal *ikey,
+                                  upll_keytype_datatype_t dt_type,
+                                  MoMgrTables tbl,
+                                  DalDmlIntf* dmi);
 
     upll_rc_t SetVlinkPortmapConfiguration(ConfigKeyVal *ikey,
                                            upll_keytype_datatype_t dt_type,
@@ -466,8 +467,8 @@ class VrtIfFlowFilterEntryMoMgr : public MoMgrImpl {
                                         upll_keytype_datatype_t dt_type);
 
     upll_rc_t GetControllerDomainID(ConfigKeyVal *ikey,
-                               upll_keytype_datatype_t dt_type,
-                               DalDmlIntf *dmi);
+                                    upll_keytype_datatype_t dt_type,
+                                    DalDmlIntf *dmi);
 
     upll_rc_t ConstructReadDetailResponse(ConfigKeyVal *ikey,
                                           ConfigKeyVal *drv_resp_ckv,
@@ -476,7 +477,7 @@ class VrtIfFlowFilterEntryMoMgr : public MoMgrImpl {
     upll_rc_t DeleteChildrenPOM(ConfigKeyVal *ikey,
                                 upll_keytype_datatype_t dt_type,
                                 DalDmlIntf *dmi);
-    
+
     upll_rc_t SetValidAudit(ConfigKeyVal *&ikey);
 
 
@@ -489,8 +490,9 @@ class VrtIfFlowFilterEntryMoMgr : public MoMgrImpl {
                                     uint32_t session_id,
                                     uint32_t config_id,
                                     uuc::UpdateCtrlrPhase phase,
-                                    bool *ctrlr_affected,
-                                    DalDmlIntf *dmi);
+                                    DalDmlIntf *dmi,
+                                    ConfigKeyVal **err_ckv,
+                                    KTxCtrlrAffectedState *ctrlr_affected);
 
     upll_rc_t UpdateVnodeVal(ConfigKeyVal *ikey,
                              DalDmlIntf *dmi,
@@ -503,12 +505,12 @@ class VrtIfFlowFilterEntryMoMgr : public MoMgrImpl {
                           unc_keytype_operation_t op);
 
     upll_rc_t GetFlowlistConfigKey(
-          const char *flowlist_name, ConfigKeyVal *&okey,
-          DalDmlIntf *dmi);
+        const char *flowlist_name, ConfigKeyVal *&okey,
+        DalDmlIntf *dmi);
 
     upll_rc_t SetRenameFlag(ConfigKeyVal *ikey,
-          DalDmlIntf *dmi,
-          IpcReqRespHeader *req);
+                            DalDmlIntf *dmi,
+                            IpcReqRespHeader *req);
 
     VrtIfFlowFilterEntryMoMgr();
     ~VrtIfFlowFilterEntryMoMgr() {
@@ -519,7 +521,7 @@ class VrtIfFlowFilterEntryMoMgr : public MoMgrImpl {
       }
       delete[] table;
     }
-};
+  };
 }  // namespace kt_momgr
 }  // namespace upll
 }  // namespace unc
index 7676fc6f73aa6b831f8878242f6aad6c1257798f..c651044a9e14a301edff57d4a44d985d3a9bb80e 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -75,93 +75,126 @@ BindInfo VrtIfFlowFilterMoMgr::vrtIfflowfiltermaintbl_bind_info[] = {
 
 unc_key_type_t VrtIfFlowFilterMoMgr::vrt_if_flowfilter_child[] = {
   UNC_KT_VRTIF_FLOWFILTER_ENTRY
-    };
-  VrtIfFlowFilterMoMgr::VrtIfFlowFilterMoMgr() : MoMgrImpl() {
+};
+VrtIfFlowFilterMoMgr::VrtIfFlowFilterMoMgr() : MoMgrImpl() {
   UPLL_FUNC_TRACE;
   // Rename and ctrlr tables not required for this KT
   // setting table index for ctrl and rename table as NULL
   ntable = (MAX_MOMGR_TBLS);
   table = new Table *[ntable];
-  cur_instance_count = 0;
-  table[MAINTBL] = new Table(uudst::kDbiVrtIfFlowFilterTbl,
-      UNC_KT_VRTIF_FLOWFILTER, vrt_if_flowfilter_bind_info,
-      IpctSt::kIpcStKeyVrtIfFlowfilter, IpctSt::kIpcStValFlowfilter,
+  table[MAINTBL] = new Table(
+      uudst::kDbiVrtIfFlowFilterTbl,
+      UNC_KT_VRTIF_FLOWFILTER,
+      vrt_if_flowfilter_bind_info,
+      IpctSt::kIpcStKeyVrtIfFlowfilter,
+      IpctSt::kIpcStValFlowfilter,
       uudst::vrt_if_flowfilter::kDbiVrtIfFlowFilterNumCols);
   table[RENAMETBL] = NULL;
   table[CTRLRTBL] = NULL;
 
-  nchild = sizeof(vrt_if_flowfilter_child) / sizeof(vrt_if_flowfilter_child[0]);
+  nchild = sizeof(vrt_if_flowfilter_child) /
+      sizeof(vrt_if_flowfilter_child[0]);
   child = vrt_if_flowfilter_child;
 }
 
 upll_rc_t VrtIfFlowFilterMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey,
-    DalDmlIntf *dmi) {
+                                                  ConfigKeyVal *ikey,
+                                                  DalDmlIntf *dmi,
+                                                  bool restore_flag) {
   UPLL_FUNC_TRACE;
-  ConfigKeyVal *temp_key = NULL;
+
   if (ikey == NULL || req == NULL) {
     return UPLL_RC_ERR_GENERIC;
   }
   UPLL_LOG_TRACE("InputConfigKeyVal %s", ikey->ToStrAll().c_str());
   upll_rc_t result_code = UPLL_RC_SUCCESS;
-  // validate syntax and semantics
-  result_code = ValidateMessage(req, ikey);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("ValidateMessage failed, Error - %d", result_code);
-    return result_code;
+  if (!restore_flag) {
+    // validate syntax and semantics
+    result_code = ValidateMessage(req, ikey);
+    if (result_code != UPLL_RC_SUCCESS) {
+      pfc_log_debug("ValidateMessage failed, Error - %d", result_code);
+      return result_code;
+    }
   }
   result_code = ValidateAttribute(ikey, dmi, req);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("ValidateAttribute failed, Error - %d", result_code);
     return result_code;
   }
-  result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_READ, dmi);
-  if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS
-      || result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-    return result_code;
-  }
-  if (UPLL_DT_CANDIDATE == req->datatype) {
-  result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING,
-      UNC_OP_READ, dmi, MAINTBL);
-  if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
-    result_code = RestoreChildren(ikey, req->datatype, UPLL_DT_RUNNING, dmi);
-    if (result_code != UPLL_RC_SUCCESS) {
-      return result_code;
+
+  if (!restore_flag) {
+    if (UPLL_DT_CANDIDATE == req->datatype) {
+      result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dmi,
+                                   MAINTBL);
+      if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
+        UPLL_LOG_DEBUG("Key instance exist");
+        if ((ikey)->get_cfg_val()) {
+          UPLL_LOG_DEBUG("Read Key with Value struct");
+          DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
+            kOpInOutFlag | kOpInOutCtrlr | kOpInOutDomain };
+          result_code = ReadConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dbop,
+                                     dmi, MAINTBL);
+          if (UPLL_RC_SUCCESS != result_code &&
+              UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+            UPLL_LOG_DEBUG("ReadConfigDB Failed %d",  result_code);
+          }
+          if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code)  {
+            return UPLL_RC_ERR_CFG_SEMANTIC;
+          }
+        } else  {
+          result_code = UPLL_RC_SUCCESS;
+        }
+        if (UPLL_RC_SUCCESS == result_code) {
+          result_code = RestoreChildren(ikey,
+                                        req->datatype,
+                                        UPLL_DT_RUNNING,
+                                        dmi,
+                                        req);
+          UPLL_LOG_DEBUG("Restore Children returns %d", result_code);
+          return result_code;
+        }
+      } else if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+        UPLL_LOG_DEBUG("UpdateConfigDB Failed %d", result_code);
+        return result_code;
+      }
+    } else {
+      result_code = UPLL_RC_ERR_NO_SUCH_INSTANCE;
     }
+  } else {
+    result_code = UPLL_RC_ERR_NO_SUCH_INSTANCE;
   }
-  }
+
   if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
     // create a record in CANDIDATE DB
     VrtIfMoMgr *mgr =
-      reinterpret_cast<VrtIfMoMgr *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_VRT_IF)));
+        reinterpret_cast<VrtIfMoMgr *>(const_cast<MoManager *>(GetMoManager(
+                    UNC_KT_VRT_IF)));
     ConfigKeyVal *ckv = NULL;
     InterfacePortMapInfo flags = kVlinkPortMapNotConfigured;
 
     result_code = mgr->GetChildConfigKey(ckv, NULL);
     key_vrt_if_flowfilter_entry_t *ff_key = reinterpret_cast
-      <key_vrt_if_flowfilter_entry_t *>(ikey->get_key());
+        <key_vrt_if_flowfilter_entry_t *>(ikey->get_key());
     key_vrt_if_t *vrtif_key = reinterpret_cast<key_vrt_if_t *>(ckv->get_key());
 
     uuu::upll_strncpy(vrtif_key->vrt_key.vtn_key.vtn_name,
-        ff_key->flowfilter_key.if_key.vrt_key.vtn_key.vtn_name,
-        kMaxLenVtnName + 1);
+                      ff_key->flowfilter_key.if_key.vrt_key.vtn_key.vtn_name,
+                      kMaxLenVtnName + 1);
 
     uuu::upll_strncpy(vrtif_key->vrt_key.vrouter_name,
-        ff_key->flowfilter_key.if_key.vrt_key.vrouter_name,
-        kMaxLenVtnName + 1);
+                      ff_key->flowfilter_key.if_key.vrt_key.vrouter_name,
+                      kMaxLenVtnName + 1);
 
     uuu::upll_strncpy(vrtif_key->if_name,
-        ff_key->flowfilter_key.if_key.if_name,
-        kMaxLenInterfaceName + 1);
+                      ff_key->flowfilter_key.if_key.if_name,
+                      kMaxLenInterfaceName + 1);
 
     uint8_t* vexternal = reinterpret_cast<uint8_t*>
         (ConfigKeyVal::Malloc(kMaxLenVnodeName + 1));
     uint8_t* vex_if = reinterpret_cast<uint8_t*>
         (ConfigKeyVal::Malloc(kMaxLenInterfaceName + 1));
     result_code = mgr->GetVexternal(ckv, req->datatype, dmi,
-        vexternal, vex_if, flags);
+                                    vexternal, vex_if, flags);
     if (UPLL_RC_SUCCESS != result_code) {
       DELETE_IF_NOT_NULL(ckv);
       FREE_IF_NOT_NULL(vexternal);
@@ -182,37 +215,26 @@ upll_rc_t VrtIfFlowFilterMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
     memset(&ctrlr_dom, 0, sizeof(controller_domain));
     result_code = GetControllerDomainID(ikey, req->datatype, dmi);
     if (result_code != UPLL_RC_SUCCESS) {
+      if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+        return UPLL_RC_ERR_PARENT_DOES_NOT_EXIST;
+      }
       UPLL_LOG_DEBUG("Failed to Get the Controller Domain details, err:%d",
                      result_code);
+      return result_code;
     }
     GET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
 
     UPLL_LOG_DEBUG("ctrlrid %s, domainid %s",
                    ctrlr_dom.ctrlr, ctrlr_dom.domain);
 
-  result_code = GetChildConfigKey(temp_key, NULL);
-  if(result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("GetChildConfigKey Failed in  ValidateCapability");
-    return result_code;
-  }
-  result_code = GetInstanceCount(temp_key,
-                               reinterpret_cast<char*>(ctrlr_dom.ctrlr),
-                                     req->datatype,
-                                     &cur_instance_count,
-                                     dmi,
-                                     MAINTBL);
-  delete temp_key;
-  if(result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("GetInstanceCount Failed in  ValidateCapability");
-    return result_code;
-  }
-
-  result_code = ValidateCapability(req, ikey,
-                   reinterpret_cast<const char *>(ctrlr_dom.ctrlr));
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("validate Capability Failed %d", result_code);
-    return result_code;
-  }
+    result_code = ValidateCapability(req,
+                                     ikey,
+                                     reinterpret_cast<const char *>
+                                     (ctrlr_dom.ctrlr));
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("validate Capability Failed %d", result_code);
+      return result_code;
+    }
 
     result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_CREATE, dmi);
     return result_code;
@@ -225,14 +247,19 @@ upll_rc_t VrtIfFlowFilterMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
 
 
 upll_rc_t VrtIfFlowFilterMoMgr::IsReferenced(ConfigKeyVal *ikey,
-                                           upll_keytype_datatype_t dt_type,
-                                           DalDmlIntf *dmi) {
+                                             upll_keytype_datatype_t dt_type,
+                                             DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   if (NULL == ikey) return UPLL_RC_ERR_GENERIC;
   DbSubOp dbop = { kOpReadExist, kOpMatchNone, kOpInOutNone };
   // Check the object existence
-  result_code = UpdateConfigDB(ikey, dt_type, UNC_OP_READ, dmi, &dbop, MAINTBL);
+  result_code = UpdateConfigDB(ikey,
+                               dt_type,
+                               UNC_OP_READ,
+                               dmi,
+                               &dbop,
+                               MAINTBL);
   if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
     UPLL_LOG_DEBUG("UpdateConfigDB failed %d ", result_code);
     return result_code;
@@ -244,68 +271,8 @@ upll_rc_t VrtIfFlowFilterMoMgr::IsReferenced(ConfigKeyVal *ikey,
 upll_rc_t VrtIfFlowFilterMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
                                                   DalDmlIntf *dmi,
                                                   IpcReqRespHeader *req) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-
-  ConfigKeyVal *okey = NULL;
-  if (!ikey || !ikey->get_key()) {
-    UPLL_LOG_DEBUG("input key is null");
-    return UPLL_RC_ERR_GENERIC;
-  }
-
-  key_vrt_if_flowfilter_t *key_vrtif_ff =
-      reinterpret_cast<key_vrt_if_flowfilter_t *>(ikey->get_key());
-
-  MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>
-      (const_cast<MoManager *>(GetMoManager(UNC_KT_VRT_IF)));
-
-  result_code = mgr->GetChildConfigKey(okey, NULL);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Memory allocation failed for KT_VRT_IF key struct - %d",
-                    result_code);
-    return result_code;
-  }
-
-  key_vrt_if_t *vrtif_key =
-      reinterpret_cast<key_vrt_if_t *>(okey->get_key());
-
-  uuu::upll_strncpy(vrtif_key->vrt_key.vtn_key.vtn_name,
-        key_vrtif_ff->if_key.vrt_key.vtn_key.vtn_name,
-        kMaxLenVtnName + 1);
-
-  uuu::upll_strncpy(vrtif_key->vrt_key.vrouter_name,
-        key_vrtif_ff->if_key.vrt_key.vrouter_name,
-        kMaxLenVnodeName + 1);
-
-  uuu::upll_strncpy(vrtif_key->if_name,
-        key_vrtif_ff->if_key.if_name,
-        kMaxLenInterfaceName + 1);
-
-  /* Checks the given key_vrt_if exists in DB or not */
-  result_code = mgr->UpdateConfigDB(okey, req->datatype, UNC_OP_READ,
-                                    dmi, MAINTBL);
-
-  if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
-    UPLL_LOG_DEBUG(" Parent KT_VRT_IF key does not exists");
-    delete okey;
-    okey = NULL;
-    return UPLL_RC_ERR_PARENT_DOES_NOT_EXIST;
-  } else {
-    result_code = UPLL_RC_SUCCESS;
-  }
-  if (UNC_OP_CREATE == req->operation) {
-    result_code = SetRenameFlag(ikey, dmi, req);
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("SetRenameFlag failed %d", result_code);
-      return result_code;
-    }
-  }
-
-  delete okey;
-  okey = NULL;
-
-  UPLL_LOG_DEBUG("ValidateAttribute Successfull.");
-  return result_code;
+  // No operation
+  return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t VrtIfFlowFilterMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
@@ -320,8 +287,8 @@ upll_rc_t VrtIfFlowFilterMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
     return result_code;
   }
   MoMgrImpl *mgr =
-    reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-            UNC_KT_VRT_IF)));
+      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                  UNC_KT_VRT_IF)));
   if (!mgr) {
     UPLL_LOG_DEBUG("mgr is NULL");
     DELETE_IF_NOT_NULL(pkey);
@@ -411,254 +378,99 @@ upll_rc_t VrtIfFlowFilterMoMgr::GetRenamedControllerKey(
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *okey = NULL;
-  uint8_t rename = 0;
-  IsRenamed(ikey, dt_type, dmi, rename);
-  if (!rename) {
-    UPLL_LOG_DEBUG("no renamed");
-    return UPLL_RC_SUCCESS;
-  }
-  UPLL_LOG_TRACE("Start... Input ConfigKeyVal %s",
-                  ikey->ToStrAll().c_str());
-
-    MoMgrImpl *VrtMoMgr =  reinterpret_cast<MoMgrImpl*>(const_cast<MoManager*>
-                                             (GetMoManager(UNC_KT_VROUTER)));
-    if (VrtMoMgr == NULL) {
-      UPLL_LOG_DEBUG("obj null");
-      return UPLL_RC_ERR_GENERIC;
-    }
 
-    result_code = VrtMoMgr->GetChildConfigKey(okey, NULL);
-    if ( result_code != UPLL_RC_SUCCESS ) {
-       UPLL_LOG_DEBUG("GetChildConfigKey fail");
-       return UPLL_RC_ERR_GENERIC;
-    }
-    if (ctrlr_dom) {
-      SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
-    }
-    else {
-      UPLL_LOG_DEBUG("ctrlr null");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
-
-    strncpy(reinterpret_cast<char *>
-            (reinterpret_cast<key_vrt *>(okey->get_key())->vtn_key.vtn_name),
-            reinterpret_cast<const char *>
-            (reinterpret_cast<key_vrt_if_flowfilter_t *>
-            (ikey->get_key())->if_key.vrt_key.vtn_key.vtn_name),
-            kMaxLenVtnName + 1);
-    UPLL_LOG_DEBUG("vrt name (%s) (%s)",
-            reinterpret_cast<char *>
-            (reinterpret_cast<key_vrt *>(okey->get_key())->vtn_key.vtn_name),
-            reinterpret_cast<const char *>
-            (reinterpret_cast<key_vrt_if_flowfilter_t *>
-            (ikey->get_key())->if_key.vrt_key.vtn_key.vtn_name));
-
-    strncpy(reinterpret_cast<char *>
-            (reinterpret_cast<key_vrt *>(okey->get_key())->vrouter_name),
-            reinterpret_cast<const char *>
-            (reinterpret_cast<key_vrt_if_flowfilter_t *>
-            (ikey->get_key())->if_key.vrt_key.vrouter_name),
-            kMaxLenVtnName + 1);
-    UPLL_LOG_DEBUG("vrt name (%s) (%s)",
-            reinterpret_cast<char *>
-            (reinterpret_cast<key_vrt *>(okey->get_key())->vrouter_name),
-            reinterpret_cast<const char *>
-            (reinterpret_cast<key_vrt_if_flowfilter_t *>
-            (ikey->get_key())->if_key.vrt_key.vrouter_name));
-    DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr | kOpMatchDomain, kOpInOutFlag }; 
-     /* ctrlr_name */
-    result_code =  VrtMoMgr->ReadConfigDB(okey, dt_type, UNC_OP_READ,
-                                         dbop, dmi, RENAMETBL);
-    if ( result_code != UPLL_RC_SUCCESS ) {
-      if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-        UPLL_LOG_DEBUG("ReadConfigDB no instance");
-        DELETE_IF_NOT_NULL(okey);
-        return UPLL_RC_SUCCESS;
-      }
-     UPLL_LOG_DEBUG("ReadConfigDB fail");
-     DELETE_IF_NOT_NULL(okey);
-       return UPLL_RC_ERR_GENERIC;
-    }
-     // NULL Checks Missing
-    val_rename_vnode *rename_val = reinterpret_cast <val_rename_vnode *>
-                                                  ((GetVal(okey)));
-    if (!rename_val) {
-      UPLL_LOG_DEBUG("vrt Name is not Valid");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-
-  if (rename & VTN_RENAME_FLAG) {
-    UPLL_LOG_DEBUG("vtn name renamed");
-    uuu::upll_strncpy(
-     reinterpret_cast<key_vrt_if_flowfilter_t*>
-     (ikey->get_key())->if_key.vrt_key.vtn_key.vtn_name,
-     rename_val->ctrlr_vtn_name,
-     (kMaxLenVtnName + 1));
+  MoMgrImpl *VrtMoMgr =  reinterpret_cast<MoMgrImpl*>(
+      const_cast<MoManager*>
+      (GetMoManager(UNC_KT_VROUTER)));
+  if (VrtMoMgr == NULL) {
+    UPLL_LOG_DEBUG("obj null");
+    return UPLL_RC_ERR_GENERIC;
   }
 
-  if (rename & VRT_RENAME_FLAG) {
-    UPLL_LOG_DEBUG("vrt name renamed");
-    uuu::upll_strncpy(
-     reinterpret_cast<key_vrt_if_flowfilter_t*>
-     (ikey->get_key())->if_key.vrt_key.vrouter_name,
-     rename_val->ctrlr_vnode_name,
-     (kMaxLenVnodeName + 1));
+  result_code = VrtMoMgr->GetChildConfigKey(okey, NULL);
+  if ( result_code != UPLL_RC_SUCCESS ) {
+    UPLL_LOG_DEBUG("GetChildConfigKey fail");
+    return UPLL_RC_ERR_GENERIC;
   }
-  DELETE_IF_NOT_NULL(okey);
-  UPLL_LOG_TRACE("End ... GetRenamedCtrl InputConfigKeyVal %s",
-                 ikey->ToStrAll().c_str());
-  UPLL_LOG_DEBUG("GetRenamedControllerKey::Success");
-  return UPLL_RC_SUCCESS;
-#if 0
-  /* vtn renamed */
-  if (rename & VTN_RENAME_FLAG) {
-    UPLL_LOG_DEBUG("vtn name renamed");
-    MoMgrImpl *VtnMoMgr = reinterpret_cast<MoMgrImpl*>(const_cast<MoManager*>
-                                    (GetMoManager(UNC_KT_VTN)));
-    if (VtnMoMgr == NULL) {
-      UPLL_LOG_DEBUG("obj null");
-      return UPLL_RC_ERR_GENERIC;
-    }
-
-    VtnMoMgr->GetChildConfigKey(okey, NULL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetChildConfigKey fail");
-      return result_code;
-    }
-
-    if (ctrlr_dom != NULL) {
-      SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
-    } else {
-      UPLL_LOG_DEBUG("ctrlr null");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
-
-    strncpy(reinterpret_cast<char *>
-            (reinterpret_cast<key_vtn *>(okey->get_key())->vtn_name),
-            reinterpret_cast<const char *>
-            (reinterpret_cast<key_vrt_if_flowfilter_t *>
-            (ikey->get_key())->if_key.vrt_key.vtn_key.vtn_name),
-            kMaxLenVtnName + 1);
-    UPLL_LOG_DEBUG("vtn name (%s) (%s)",
-            reinterpret_cast<char *>
-            (reinterpret_cast<key_vtn *>(okey->get_key())->vtn_name),
-            reinterpret_cast<const char *>
-            (reinterpret_cast<key_vrt_if_flowfilter_t *>
-            (ikey->get_key())->if_key.vrt_key.vtn_key.vtn_name));
-    DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutFlag };
-     /* ctrlr_name */
-    result_code =  VtnMoMgr->ReadConfigDB(okey, dt_type, UNC_OP_READ,
-                      dbop, dmi, RENAMETBL);
-    if ( result_code != UPLL_RC_SUCCESS ) {
-      UPLL_LOG_DEBUG("ReadConfigDB fail");
-      DELETE_IF_NOT_NULL(okey);
-       return UPLL_RC_ERR_GENERIC;
-    }
-     // NULL Checks Missing
-    val_rename_vtn *rename_val = reinterpret_cast <val_rename_vtn *>
-                                                    ((GetVal(okey)));
-    if (!rename_val) {
-      UPLL_LOG_DEBUG("Vtn Name is not Valid.");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-    uuu::upll_strncpy(
-     reinterpret_cast<key_vrt_if_flowfilter_t*>
-     (ikey->get_key())->if_key.vrt_key.vtn_key.vtn_name,
-     rename_val->new_name,
-     (kMaxLenVtnName + 1));
-    SET_USER_DATA_FLAGS(ikey, rename);
+  if (ctrlr_dom) {
+    SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
+  } else {
+    UPLL_LOG_DEBUG("ctrlr null");
     DELETE_IF_NOT_NULL(okey);
+    return UPLL_RC_ERR_GENERIC;
   }
-  /*Vrouter_name*/
-  if (rename & VRT_RENAME_FLAG) {
-    UPLL_LOG_DEBUG("vrt name renamed");
-    MoMgrImpl *VrtMoMgr =  reinterpret_cast<MoMgrImpl*>(const_cast<MoManager*>
-                                             (GetMoManager(UNC_KT_VROUTER)));
-    if (VrtMoMgr == NULL) {
-      UPLL_LOG_DEBUG("obj null");
-      return UPLL_RC_ERR_GENERIC;
-    }
 
-    result_code = VrtMoMgr->GetChildConfigKey(okey, ikey);
-    if ( result_code != UPLL_RC_SUCCESS ) {
-       UPLL_LOG_DEBUG("GetChildConfigKey fail");
-       return UPLL_RC_ERR_GENERIC;
-    }
-    if (ctrlr_dom) {
-      SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
-    }
-    else {
-      UPLL_LOG_DEBUG("ctrlr null");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
+  UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
+                 ctrlr_dom->domain);
 
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
-
-    strncpy(reinterpret_cast<char *>
-            (reinterpret_cast<key_vrt *>(okey->get_key())->vtn_key.vtn_name),
-            reinterpret_cast<const char *>
-            (reinterpret_cast<key_vrt_if_flowfilter_t *>
-            (ikey->get_key())->if_key.vrt_key.vtn_key.vtn_name),
-            kMaxLenVtnName + 1);
-    UPLL_LOG_DEBUG("vrt name (%s) (%s)",
-            reinterpret_cast<char *>
-            (reinterpret_cast<key_vrt *>(okey->get_key())->vtn_key.vtn_name),
-            reinterpret_cast<const char *>
-            (reinterpret_cast<key_vrt_if_flowfilter_t *>
-            (ikey->get_key())->if_key.vrt_key.vtn_key.vtn_name));
-
-    strncpy(reinterpret_cast<char *>
-            (reinterpret_cast<key_vrt *>(okey->get_key())->vrouter_name),
-            reinterpret_cast<const char *>
-            (reinterpret_cast<key_vrt_if_flowfilter_t *>
-            (ikey->get_key())->if_key.vrt_key.vrouter_name),
-            kMaxLenVtnName + 1);
-    UPLL_LOG_DEBUG("vrt name (%s) (%s)",
-            reinterpret_cast<char *>
-            (reinterpret_cast<key_vrt *>(okey->get_key())->vrouter_name),
-            reinterpret_cast<const char *>
-            (reinterpret_cast<key_vrt_if_flowfilter_t *>
-            (ikey->get_key())->if_key.vrt_key.vrouter_name));
-    DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutFlag };
-     /* ctrlr_name */
-    result_code =  VrtMoMgr->ReadConfigDB(okey, dt_type, UNC_OP_READ,
-                                         dbop, dmi, RENAMETBL);
-    if ( result_code != UPLL_RC_SUCCESS ) {
-     UPLL_LOG_DEBUG("ReadConfigDB fail");
-     DELETE_IF_NOT_NULL(okey);
-       return UPLL_RC_ERR_GENERIC;
-    }
-     // NULL Checks Missing
-    val_rename_vnode *rename_val = reinterpret_cast <val_rename_vnode *>
-                                                  ((GetVal(okey)));
-    if (!rename_val) {
-      UPLL_LOG_DEBUG("vrt Name is not Valid");
+  strncpy(reinterpret_cast<char *>
+          (reinterpret_cast<key_vrt *>(okey->get_key())->vtn_key.vtn_name),
+          reinterpret_cast<const char *>
+          (reinterpret_cast<key_vrt_if_flowfilter_t *>
+           (ikey->get_key())->if_key.vrt_key.vtn_key.vtn_name),
+          kMaxLenVtnName + 1);
+  UPLL_LOG_DEBUG("vrt name (%s) (%s)",
+                 reinterpret_cast<char *>
+                 (reinterpret_cast<key_vrt *>
+                  (okey->get_key())->vtn_key.vtn_name),
+                 reinterpret_cast<const char *>
+                 (reinterpret_cast<key_vrt_if_flowfilter_t *>
+                  (ikey->get_key())->if_key.vrt_key.vtn_key.vtn_name));
+
+  strncpy(reinterpret_cast<char *>
+          (reinterpret_cast<key_vrt *>(okey->get_key())->vrouter_name),
+          reinterpret_cast<const char *>
+          (reinterpret_cast<key_vrt_if_flowfilter_t *>
+           (ikey->get_key())->if_key.vrt_key.vrouter_name),
+          kMaxLenVnodeName + 1);
+  UPLL_LOG_DEBUG("vrt name (%s) (%s)",
+                 reinterpret_cast<char *>
+                 (reinterpret_cast<key_vrt *>(okey->get_key())->vrouter_name),
+                 reinterpret_cast<const char *>
+                 (reinterpret_cast<key_vrt_if_flowfilter_t *>
+                  (ikey->get_key())->if_key.vrt_key.vrouter_name));
+  DbSubOp dbop = { kOpReadSingle,
+    kOpMatchCtrlr | kOpMatchDomain,
+    kOpInOutFlag };
+  /* ctrlr_name */
+  result_code =  VrtMoMgr->ReadConfigDB(okey, dt_type, UNC_OP_READ,
+                                        dbop, dmi, RENAMETBL);
+  if ( result_code != UPLL_RC_SUCCESS ) {
+    if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+      UPLL_LOG_DEBUG("ReadConfigDB no instance");
       DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
+      return UPLL_RC_SUCCESS;
     }
-    uuu::upll_strncpy(
-     reinterpret_cast<key_vrt_if_flowfilter_t*>
-     (ikey->get_key())->if_key.vrt_key.vrouter_name,
-     rename_val->ctrlr_vnode_name,
-     (kMaxLenVnodeName + 1));
+    UPLL_LOG_DEBUG("ReadConfigDB fail");
     DELETE_IF_NOT_NULL(okey);
+    return UPLL_RC_ERR_GENERIC;
   }
-  UPLL_LOG_TRACE("%s GetRenamedCtrl vrt_if_ff end", ikey->ToStrAll().c_str());
-  UPLL_LOG_DEBUG("GetRenamedControllerKey::GetRenamedControllerKey Success");
+  // NULL Checks Missing
+  val_rename_vnode *rename_val = reinterpret_cast <val_rename_vnode *>
+      ((GetVal(okey)));
+  if (!rename_val) {
+    UPLL_LOG_DEBUG("vrt Name is not Valid");
+    DELETE_IF_NOT_NULL(okey);
+    return UPLL_RC_ERR_GENERIC;
+  }
+
+  uuu::upll_strncpy(
+      reinterpret_cast<key_vrt_if_flowfilter_t*>
+      (ikey->get_key())->if_key.vrt_key.vtn_key.vtn_name,
+      rename_val->ctrlr_vtn_name,
+      (kMaxLenVtnName + 1));
+
+  uuu::upll_strncpy(
+      reinterpret_cast<key_vrt_if_flowfilter_t*>
+      (ikey->get_key())->if_key.vrt_key.vrouter_name,
+      rename_val->ctrlr_vnode_name,
+      (kMaxLenVnodeName + 1));
+
+  DELETE_IF_NOT_NULL(okey);
+  UPLL_LOG_TRACE("End ... GetRenamedCtrl InputConfigKeyVal %s",
+                 ikey->ToStrAll().c_str());
+  UPLL_LOG_DEBUG("GetRenamedControllerKey::Success");
   return UPLL_RC_SUCCESS;
-#endif
 }
 
 upll_rc_t VrtIfFlowFilterMoMgr::GetRenamedUncKey(
@@ -669,14 +481,15 @@ upll_rc_t VrtIfFlowFilterMoMgr::GetRenamedUncKey(
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutNone };
   UPLL_LOG_TRACE("%s GetRenamedUncKey vrtifff start",
-                  ikey->ToStrAll().c_str());
+                 ikey->ToStrAll().c_str());
   if ((NULL == ikey) || (ctrlr_id == NULL) || (NULL == dmi)) {
     UPLL_LOG_DEBUG("ikey/ctrlr_id dmi NULL");
     return UPLL_RC_ERR_GENERIC;
   }
 
-  MoMgrImpl *VrtMoMgr = reinterpret_cast <MoMgrImpl *>(const_cast<MoManager*>
-                                  (GetMoManager(UNC_KT_VROUTER)));
+  MoMgrImpl *VrtMoMgr = reinterpret_cast <MoMgrImpl *>(
+      const_cast<MoManager*>
+      (GetMoManager(UNC_KT_VROUTER)));
   if (VrtMoMgr == NULL) {
     UPLL_LOG_DEBUG("VrtMoMgr NULL");
     return UPLL_RC_ERR_GENERIC;
@@ -688,21 +501,21 @@ upll_rc_t VrtIfFlowFilterMoMgr::GetRenamedUncKey(
     return UPLL_RC_ERR_GENERIC;
   }
   key_vrt_if_flowfilter_t *ctrlr_key =
-          reinterpret_cast <key_vrt_if_flowfilter_t *>
-                           (ikey->get_key());
+      reinterpret_cast <key_vrt_if_flowfilter_t *>
+      (ikey->get_key());
   if (!ctrlr_key) {
     UPLL_LOG_DEBUG("rename_val NULL");
     free(rename_val);
     return UPLL_RC_ERR_GENERIC;
   }
   uuu::upll_strncpy(rename_val->ctrlr_vtn_name,
-          ctrlr_key->if_key.vrt_key.vtn_key.vtn_name,
-         (kMaxLenVtnName + 1));
+                    ctrlr_key->if_key.vrt_key.vtn_key.vtn_name,
+                    (kMaxLenVtnName + 1));
   rename_val->valid[UPLL_CTRLR_VTN_NAME_VALID] = UNC_VF_VALID;
 
   uuu::upll_strncpy(rename_val->ctrlr_vnode_name,
-          ctrlr_key->if_key.vrt_key.vrouter_name,
-          (kMaxLenVnodeName + 1));
+                    ctrlr_key->if_key.vrt_key.vrouter_name,
+                    (kMaxLenVnodeName + 1));
   rename_val->valid[UPLL_CTRLR_VNODE_NAME_VALID] = UNC_VF_VALID;
 
   result_code =  VrtMoMgr->GetChildConfigKey(unc_key, NULL);
@@ -721,15 +534,15 @@ upll_rc_t VrtIfFlowFilterMoMgr::GetRenamedUncKey(
   SET_USER_DATA_CTRLR(unc_key, ctrlr_id);
   unc_key->AppendCfgVal(IpctSt::kIpcStValRenameVtn, rename_val);
   result_code = VrtMoMgr->ReadConfigDB(unc_key, dt_type,
-                                                   UNC_OP_READ, dbop, dmi,
-                                                   RENAMETBL);
+                                       UNC_OP_READ, dbop, dmi,
+                                       RENAMETBL);
   if (result_code == UPLL_RC_SUCCESS) {
     key_vrt_if_flowfilter_t *key_vrt_if_flowfilter =
-       reinterpret_cast <key_vrt_if_flowfilter_t *> (unc_key->get_key());
+        reinterpret_cast <key_vrt_if_flowfilter_t *> (unc_key->get_key());
     uuu::upll_strncpy(
         ctrlr_key->if_key.vrt_key.vtn_key.vtn_name,
-       key_vrt_if_flowfilter->if_key.vrt_key.vtn_key.vtn_name,
-       (kMaxLenVtnName + 1));
+        key_vrt_if_flowfilter->if_key.vrt_key.vtn_key.vtn_name,
+        (kMaxLenVtnName + 1));
     uuu::upll_strncpy(
         ctrlr_key->if_key.vrt_key.vrouter_name,
         key_vrt_if_flowfilter->if_key.vrt_key.vrouter_name,
@@ -737,7 +550,7 @@ upll_rc_t VrtIfFlowFilterMoMgr::GetRenamedUncKey(
   }
 
   UPLL_LOG_TRACE("%s GetRenamedUncKey vbrifff end",
-                  ikey->ToStrAll().c_str());
+                 ikey->ToStrAll().c_str());
   DELETE_IF_NOT_NULL(unc_key);
   VrtMoMgr = NULL;
   if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code)
@@ -913,7 +726,8 @@ upll_rc_t VrtIfFlowFilterMoMgr::ReadMo(IpcReqRespHeader *req,
 
         // Added CapaCheck
         result_code = ValidateCapability(req, ikey,
-                   reinterpret_cast<const char *>(ctrlr_dom.ctrlr));
+                                         reinterpret_cast<const char *>
+                                         (ctrlr_dom.ctrlr));
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("validate Capability Failed %d", result_code);
           delete dup_key;
@@ -921,7 +735,7 @@ upll_rc_t VrtIfFlowFilterMoMgr::ReadMo(IpcReqRespHeader *req,
           return result_code;
         }
 
-       // 1.Getting renamed name if renamed
+        // 1.Getting renamed name if renamed
         result_code = GetRenamedControllerKey(l_key, req->datatype,
                                               dmi, &ctrlr_dom);
         if (result_code != UPLL_RC_SUCCESS) {
@@ -963,10 +777,10 @@ upll_rc_t VrtIfFlowFilterMoMgr::ReadMo(IpcReqRespHeader *req,
         ipc_req.header.datatype = req->datatype;
         ipc_req.ckv_data = l_key;
         if (!IpcUtil::SendReqToDriver(
-                    (const char *)ctrlr_dom.ctrlr,
-                    reinterpret_cast<char *>(ctrlr_dom.domain),
-                    PFCDRIVER_SERVICE_NAME, PFCDRIVER_SVID_LOGICAL, &ipc_req,
-                    true, &ipc_resp)) {
+                (const char *)ctrlr_dom.ctrlr,
+                reinterpret_cast<char *>(ctrlr_dom.domain),
+                PFCDRIVER_SERVICE_NAME, PFCDRIVER_SVID_LOGICAL, &ipc_req,
+                true, &ipc_resp)) {
           UPLL_LOG_DEBUG("SendReqToDriver failed for Key %d controller %s",
                          l_key->get_key_type(),
                          reinterpret_cast<char *>(ctrlr_dom.ctrlr));
@@ -977,8 +791,8 @@ upll_rc_t VrtIfFlowFilterMoMgr::ReadMo(IpcReqRespHeader *req,
 
         if (ipc_resp.header.result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("Driver response for Key %d controller %s result %d",
-                        l_key->get_key_type(), ctrlr_dom.ctrlr,
-                        ipc_resp.header.result_code);
+                         l_key->get_key_type(), ctrlr_dom.ctrlr,
+                         ipc_resp.header.result_code);
           DELETE_IF_NOT_NULL(l_key);
           DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
           return ipc_resp.header.result_code;
@@ -991,8 +805,8 @@ upll_rc_t VrtIfFlowFilterMoMgr::ReadMo(IpcReqRespHeader *req,
         DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
         DELETE_IF_NOT_NULL(dup_key);
         if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("ConstructReadDetailResponse error code (%d)",
-                           result_code);
+          UPLL_LOG_DEBUG("ConstructReadDetailResponse error code (%d)",
+                         result_code);
           return result_code;
         } else {
           if (okey != NULL) {
@@ -1050,7 +864,7 @@ upll_rc_t VrtIfFlowFilterMoMgr::AllocVal(ConfigVal *&ck_val,
       val = reinterpret_cast <void *>
           (ConfigKeyVal::Malloc(sizeof(val_flowfilter_t)));
       ck_val = new ConfigVal(IpctSt::kIpcStValFlowfilter, val);
-        break;
+      break;
     default:
       val = NULL;
       return UPLL_RC_ERR_GENERIC;
@@ -1100,13 +914,14 @@ upll_rc_t VrtIfFlowFilterMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
     key_vrt_if_flowfilter_t *ikey = NULL;
     ikey = reinterpret_cast<key_vrt_if_flowfilter_t *> (tkey);
     key_vrt_if_flowfilter_t *vrt_if_flowfilter =
-      reinterpret_cast<key_vrt_if_flowfilter_t*>
+        reinterpret_cast<key_vrt_if_flowfilter_t*>
         (ConfigKeyVal::Malloc(sizeof(key_vrt_if_flowfilter_t)));
 
     memcpy(vrt_if_flowfilter, ikey, sizeof(key_vrt_if_flowfilter_t));
     okey = new ConfigKeyVal(UNC_KT_VRTIF_FLOWFILTER,
-                          IpctSt::kIpcStKeyVrtIfFlowfilter, vrt_if_flowfilter,
-                          tmp1);
+                            IpctSt::kIpcStKeyVrtIfFlowfilter,
+                            vrt_if_flowfilter,
+                            tmp1);
     SET_USER_DATA(okey, req);
 
     UPLL_LOG_DEBUG("DupConfigkeyVal Succesfull.");
@@ -1122,7 +937,7 @@ upll_rc_t VrtIfFlowFilterMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
 upll_rc_t VrtIfFlowFilterMoMgr::UpdateMo(IpcReqRespHeader *req,
                                          ConfigKeyVal *ikey, DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
-  UPLL_LOG_DEBUG("UpdateMo :: UpdateMo Success ");
+  UPLL_LOG_DEBUG("Operation not allowed for this KT");
   return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT;
 }
 
@@ -1135,9 +950,9 @@ upll_rc_t VrtIfFlowFilterMoMgr::RenameMo(IpcReqRespHeader *req,
 }
 
 upll_rc_t VrtIfFlowFilterMoMgr::MergeValidate(unc_key_type_t keytype,
-                                             const char *ctrlr_id,
-                                             ConfigKeyVal *ikey,
-                                             DalDmlIntf *dmi) {
+                                              const char *ctrlr_id,
+                                              ConfigKeyVal *ikey,
+                                              DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *ckval = NULL;
@@ -1154,9 +969,11 @@ upll_rc_t VrtIfFlowFilterMoMgr::MergeValidate(unc_key_type_t keytype,
 
   if (!ckval) return UPLL_RC_ERR_GENERIC;
 
-  DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutCtrlr|kOpInOutDomain};
+  DbSubOp dbop = { kOpReadMultiple,
+    kOpMatchNone,
+    kOpInOutCtrlr|kOpInOutDomain};
   result_code = ReadConfigDB(ckval, UPLL_DT_IMPORT,
-              UNC_OP_READ, dbop, dmi, MAINTBL);
+                             UNC_OP_READ, dbop, dmi, MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     DELETE_IF_NOT_NULL(ckval);
     if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
@@ -1190,8 +1007,8 @@ upll_rc_t VrtIfFlowFilterMoMgr::MergeValidate(unc_key_type_t keytype,
   return UPLL_RC_SUCCESS;
 }
 upll_rc_t VrtIfFlowFilterMoMgr::ValidateCapability(IpcReqRespHeader *req,
-                                 ConfigKeyVal *ikey,
-                                 const char *ctrlr_name) {
+                                                   ConfigKeyVal *ikey,
+                                                   const char *ctrlr_name) {
   UPLL_FUNC_TRACE;
 
   if ((NULL == req) || (NULL == ikey)) {
@@ -1211,28 +1028,28 @@ upll_rc_t VrtIfFlowFilterMoMgr::ValidateCapability(IpcReqRespHeader *req,
   const uint8_t *attrs = NULL;
   uint32_t max_attrs = 0;
 
-   switch (req->operation) {
+  switch (req->operation) {
     case UNC_OP_CREATE: {
-      result_code = GetCreateCapability(ctrlr_name, ikey->get_key_type(),
-                                        &max_instance_count, &max_attrs, &attrs);
-       if (result_code && cur_instance_count >= max_instance_count && 
-                  cur_instance_count !=0 && max_instance_count != 0) {
-          UPLL_LOG_INFO("[%s:%d:%s Instance count %d exceeds %d", __FILE__,
-                      __LINE__, __FUNCTION__, cur_instance_count,
-                      max_instance_count);
-          return UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
-      }
-    break;
-   } 
-   default : {
+      result_code = GetCreateCapability(ctrlr_name,
+                                        ikey->get_key_type(),
+                                        &max_instance_count,
+                                        &max_attrs,
+                                        &attrs);
+      break;
+    }
+    default : {
       if (req->datatype == UPLL_DT_STATE) {
-        UPLL_LOG_TRACE("Calling GetStateCapability Operation  %d ", req->operation);
-        result_code = GetStateCapability(ctrlr_name, ikey->get_key_type(),
-                                      &max_attrs, &attrs);
+        UPLL_LOG_TRACE("Calling GetStateCapability Operation  %d ",
+                       req->operation);
+        result_code = GetStateCapability(ctrlr_name,
+                                         ikey->get_key_type(),
+                                         &max_attrs,
+                                         &attrs);
       } else {
-        UPLL_LOG_TRACE("Calling GetReadCapability Operation  %d ", req->operation);
+        UPLL_LOG_TRACE("Calling GetReadCapability Operation  %d ",
+                       req->operation);
         result_code = GetReadCapability(ctrlr_name, ikey->get_key_type(),
-                                      &max_attrs, &attrs);
+                                        &max_attrs, &attrs);
       }
     }
   }
@@ -1261,31 +1078,32 @@ upll_rc_t VrtIfFlowFilterMoMgr::ValidateMessage(IpcReqRespHeader* req,
     UPLL_LOG_DEBUG(" Invalid keytype(%d)", key->get_key_type());
     return UPLL_RC_ERR_BAD_REQUEST;
   }
-  if(req->option2 != UNC_OPT2_NONE) {
+  if (req->option2 != UNC_OPT2_NONE) {
     UPLL_LOG_DEBUG(" Error: option2 is not NONE");
     return UPLL_RC_ERR_INVALID_OPTION2;
   }
-  if((req->option1 != UNC_OPT1_NORMAL) 
-              &&(req->option1 != UNC_OPT1_DETAIL)) {
-     UPLL_LOG_DEBUG(" Error: option1 is not NORMAL");
-     return UPLL_RC_ERR_INVALID_OPTION1;
-  }
-    if((req->option1 != UNC_OPT1_NORMAL) 
-              &&(req->operation == UNC_OP_READ_SIBLING_COUNT)) {
-     UPLL_LOG_DEBUG(" Error: option1 is not NORMAL for ReadSiblingCount");
-     return UPLL_RC_ERR_INVALID_OPTION1;
-   }
-    if ((req->option1 == UNC_OPT1_DETAIL) &&
+  if ((req->option1 != UNC_OPT1_NORMAL)
+     &&(req->option1 != UNC_OPT1_DETAIL)) {
+    UPLL_LOG_DEBUG(" Error: option1 is not NORMAL");
+    return UPLL_RC_ERR_INVALID_OPTION1;
+  }
+  if ((req->option1 != UNC_OPT1_NORMAL)
+     &&(req->operation == UNC_OP_READ_SIBLING_COUNT)) {
+    UPLL_LOG_DEBUG(" Error: option1 is not NORMAL for ReadSiblingCount");
+    return UPLL_RC_ERR_INVALID_OPTION1;
+  }
+  if ((req->option1 == UNC_OPT1_DETAIL) &&
       (req->datatype != UPLL_DT_STATE)) {
-      UPLL_LOG_DEBUG(" Invalid Datatype(%d)", req->datatype);
-      return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
-  }
-  if ((req->datatype == UPLL_DT_IMPORT) && (req->operation == UNC_OP_READ ||
-       req->operation == UNC_OP_READ_SIBLING ||
-       req->operation == UNC_OP_READ_SIBLING_BEGIN ||
-       req->operation == UNC_OP_READ_NEXT ||
-       req->operation == UNC_OP_READ_BULK ||
-       req->operation == UNC_OP_READ_SIBLING_COUNT)) {
+    UPLL_LOG_DEBUG(" Invalid Datatype(%d)", req->datatype);
+    return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
+  }
+  if ((req->datatype == UPLL_DT_IMPORT) && (
+          req->operation == UNC_OP_READ ||
+          req->operation == UNC_OP_READ_SIBLING ||
+          req->operation == UNC_OP_READ_SIBLING_BEGIN ||
+          req->operation == UNC_OP_READ_NEXT ||
+          req->operation == UNC_OP_READ_BULK ||
+          req->operation == UNC_OP_READ_SIBLING_COUNT)) {
     return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
   }
 
@@ -1361,20 +1179,20 @@ upll_rc_t VrtIfFlowFilterMoMgr::ValidateVrtIfFlowfilterKey(
   return UPLL_RC_SUCCESS;
 }
 bool VrtIfFlowFilterMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type,
-                                    BindInfo *&binfo,
-                                    int &nattr,
-                                    MoMgrTables tbl ) {
+                                                BindInfo *&binfo,
+                                                int &nattr,
+                                                MoMgrTables tbl ) {
   /* Main Table only update */
   if (MAINTBL == tbl) {
     nattr = sizeof(vrtIfflowfiltermaintbl_bind_info)/
-            sizeof(vrtIfflowfiltermaintbl_bind_info[0]);
+        sizeof(vrtIfflowfiltermaintbl_bind_info[0]);
     binfo = vrtIfflowfiltermaintbl_bind_info;
   }
   UPLL_LOG_DEBUG(" GetRenameKeyBindInfo::Successful Completeion");
   return PFC_TRUE;
 }
 upll_rc_t VrtIfFlowFilterMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
-                                              ConfigKeyVal *ikey) {
+                                                ConfigKeyVal *ikey) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
@@ -1420,7 +1238,7 @@ upll_rc_t VrtIfFlowFilterMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
   key_vrt_if->direction = 0xFE;
 
   okey = new ConfigKeyVal(UNC_KT_VRTIF_FLOWFILTER, IpctSt::
-                   kIpcStKeyVrtIfFlowfilter, key_vrt_if, NULL);
+                          kIpcStKeyVrtIfFlowfilter, key_vrt_if, NULL);
   if (!okey) {
     UPLL_LOG_DEBUG("okey NULL");
     free(key_vrt_if);
@@ -1465,21 +1283,24 @@ upll_rc_t VrtIfFlowFilterMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
       } else if ((req->datatype == UPLL_DT_STATE) &&
                  (req->option1 == UNC_OPT1_DETAIL) &&
                  (req->option2 == UNC_OPT2_NONE)) {
-         result_code =  DupConfigKeyVal(tctrl_key, ikey, MAINTBL);
+        result_code =  DupConfigKeyVal(tctrl_key, ikey, MAINTBL);
         if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("DupConfigKeyVal fail in ReadSiblingMo for tctrl_key");
+          UPLL_LOG_DEBUG("DupConfigKeyVal fail in ReadSiblingMo"
+                         "for tctrl_key");
           return result_code;
         }
         result_code = ReadInfoFromDB(req, tctrl_key, dmi, &ctrlr_dom);
         if (UPLL_RC_SUCCESS != result_code) {
-          UPLL_LOG_DEBUG("ReadConfigDb failed for tctrl_key%d ", result_code);
+          UPLL_LOG_DEBUG("ReadConfigDb failed for tctrl_key%d ",
+                         result_code);
           DELETE_IF_NOT_NULL(tctrl_key);
           return result_code;
         }
 
         result_code =  DupConfigKeyVal(dup_key, tctrl_key, MAINTBL);
         if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG(" DupConfigKeyVal failed for dup_key%d ", result_code);
+          UPLL_LOG_DEBUG(" DupConfigKeyVal failed for dup_key%d ",
+                         result_code);
           DELETE_IF_NOT_NULL(tctrl_key);
           return result_code;
         }
@@ -1504,7 +1325,8 @@ upll_rc_t VrtIfFlowFilterMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
         SET_USER_DATA_CTRLR_DOMAIN(l_key, ctrlr_dom);
         // Adding CapaXheck
         result_code = ValidateCapability(req, ikey,
-                   reinterpret_cast<const char *>(ctrlr_dom.ctrlr));
+                                         reinterpret_cast<const char *>
+                                         (ctrlr_dom.ctrlr));
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("validate Capability Failed %d", result_code);
           DELETE_IF_NOT_NULL(tctrl_key);
@@ -1557,8 +1379,8 @@ upll_rc_t VrtIfFlowFilterMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
         }
 
         pfcdrv_val_vbrif_vextif_t *pfc_val =
-        reinterpret_cast<pfcdrv_val_vbrif_vextif_t *>
-        (ConfigKeyVal::Malloc(sizeof(pfcdrv_val_vbrif_vextif_t)));
+            reinterpret_cast<pfcdrv_val_vbrif_vextif_t *>
+            (ConfigKeyVal::Malloc(sizeof(pfcdrv_val_vbrif_vextif_t)));
 
         pfc_val->valid[PFCDRV_IDX_INTERFACE_TYPE] = UNC_VF_VALID;
         pfc_val->valid[PFCDRV_IDX_VEXTERNAL_NAME_VBRIF] = UNC_VF_INVALID;
@@ -1586,10 +1408,10 @@ upll_rc_t VrtIfFlowFilterMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
               (tmp_key->get_key())->direction;
           ipc_req.ckv_data = l_key;
           if (!IpcUtil::SendReqToDriver(
-                      (const char *)ctrlr_dom.ctrlr,
-                      reinterpret_cast<char *>(ctrlr_dom.domain),
-                      PFCDRIVER_SERVICE_NAME, PFCDRIVER_SVID_LOGICAL,
-                      &ipc_req, true, &ipc_resp)) {
+                  (const char *)ctrlr_dom.ctrlr,
+                  reinterpret_cast<char *>(ctrlr_dom.domain),
+                  PFCDRIVER_SERVICE_NAME, PFCDRIVER_SVID_LOGICAL,
+                  &ipc_req, true, &ipc_resp)) {
             UPLL_LOG_DEBUG("SendReqToDriver failed for Key %d controller %s",
                            l_key->get_key_type(),
                            reinterpret_cast<char *>(ctrlr_dom.ctrlr));
@@ -1602,7 +1424,8 @@ upll_rc_t VrtIfFlowFilterMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
           }
 
           if (ipc_resp.header.result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("Driver response for Key %d controller %s result %d",
+            UPLL_LOG_DEBUG("Driver response for Key %d controller %s"
+                           "result %d",
                            l_key->get_key_type(), ctrlr_dom.ctrlr,
                            ipc_resp.header.result_code);
             DELETE_IF_NOT_NULL(tctrl_key);
@@ -1794,8 +1617,8 @@ upll_rc_t VrtIfFlowFilterMoMgr::TxUpdateController(
     }
 
     pfcdrv_val_vbrif_vextif_t *pfc_val =
-    reinterpret_cast<pfcdrv_val_vbrif_vextif_t *>
-    (ConfigKeyVal::Malloc(sizeof(pfcdrv_val_vbrif_vextif_t)));
+        reinterpret_cast<pfcdrv_val_vbrif_vextif_t *>
+        (ConfigKeyVal::Malloc(sizeof(pfcdrv_val_vbrif_vextif_t)));
 
     pfc_val->valid[PFCDRV_IDX_INTERFACE_TYPE] = UNC_VF_VALID;
     pfc_val->valid[PFCDRV_IDX_VEXTERNAL_NAME_VBRIF] = UNC_VF_INVALID;
@@ -1813,7 +1636,7 @@ upll_rc_t VrtIfFlowFilterMoMgr::TxUpdateController(
 
     result_code = SendIpcReq(session_id, config_id, op1, UPLL_DT_CANDIDATE,
                              ck_main, &ctrlr_dom, &ipc_resp);
-    if (result_code == UPLL_RC_ERR_RESOURCE_DISCONNECTED) {
+    if (result_code == UPLL_RC_ERR_CTR_DISCONNECTED) {
       UPLL_LOG_DEBUG(" driver result code - %d", result_code);
       result_code = UPLL_RC_SUCCESS;
     }
@@ -1852,20 +1675,20 @@ upll_rc_t VrtIfFlowFilterMoMgr::SetVlinkPortmapConfiguration(
     return result_code;
   }
   key_vrt_if_flowfilter_t *ff_key = reinterpret_cast
-    <key_vrt_if_flowfilter_t *>(ckv->get_key());
+      <key_vrt_if_flowfilter_t *>(ckv->get_key());
   key_vrt_if_t *vrtif_key = reinterpret_cast<key_vrt_if_t *>(ikey->get_key());
 
   uuu::upll_strncpy(ff_key->if_key.vrt_key.vtn_key.vtn_name,
-      vrtif_key->vrt_key.vtn_key.vtn_name,
-      kMaxLenVtnName + 1);
+                    vrtif_key->vrt_key.vtn_key.vtn_name,
+                    kMaxLenVtnName + 1);
 
   uuu::upll_strncpy(ff_key->if_key.vrt_key.vrouter_name,
-      vrtif_key->vrt_key.vrouter_name,
-      kMaxLenVnodeName + 1);
+                    vrtif_key->vrt_key.vrouter_name,
+                    kMaxLenVnodeName + 1);
 
   uuu::upll_strncpy(ff_key->if_key.if_name,
-      vrtif_key->if_name,
-      kMaxLenInterfaceName + 1);
+                    vrtif_key->if_name,
+                    kMaxLenInterfaceName + 1);
   ff_key->direction = 0xFE;
 
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutFlag };
@@ -1886,31 +1709,44 @@ upll_rc_t VrtIfFlowFilterMoMgr::SetVlinkPortmapConfiguration(
     flag_port_map = 0;
     GET_USER_DATA_FLAGS(temp_ckv, flag_port_map);
     if (flags & kVlinkConfigured) {
+      if (flag_port_map & SET_FLAG_VLINK) {
+        UPLL_LOG_DEBUG("vlink flag is already set in DB");
+        DELETE_IF_NOT_NULL(ckv);
+        return UPLL_RC_SUCCESS;
+      }
       flag_port_map |= SET_FLAG_VLINK;
     } else {
+      if (flag_port_map & SET_FLAG_NO_VLINK_PORTMAP) {
+        UPLL_LOG_DEBUG("Port-Map/vlink flag is already cleared in DB");
+        DELETE_IF_NOT_NULL(ckv);
+        return UPLL_RC_SUCCESS;
+      }
       flag_port_map &= SET_FLAG_NO_VLINK_PORTMAP;
     }
     SET_USER_DATA_FLAGS(temp_ckv, flag_port_map);
     DbSubOp dbop_update = { kOpReadSingle, kOpMatchNone, kOpInOutFlag };
     result_code = UpdateConfigDB(temp_ckv, dt_type, UNC_OP_UPDATE,
-        dmi, &dbop_update, MAINTBL);
+                                 dmi, &dbop_update, MAINTBL);
     if (UPLL_RC_SUCCESS != result_code) {
       DELETE_IF_NOT_NULL(ckv);
       return result_code;
     }
     VrtIfFlowFilterEntryMoMgr *mgr =
-      reinterpret_cast<VrtIfFlowFilterEntryMoMgr *>
-      (const_cast<MoManager *>(GetMoManager(UNC_KT_VRTIF_FLOWFILTER_ENTRY)));
+        reinterpret_cast<VrtIfFlowFilterEntryMoMgr *>
+        (const_cast<MoManager *>(GetMoManager(UNC_KT_VRTIF_FLOWFILTER_ENTRY)));
     if (mgr == NULL) {
-      DELETE_IF_NOT_NULL(ckv); 
+      DELETE_IF_NOT_NULL(ckv);
       return UPLL_RC_ERR_GENERIC;
     }
     UPLL_LOG_DEBUG("Sending vlink flag=%d for ff entry", flags);
-    result_code = mgr->SetVlinkPortmapConfiguration(ikey, dt_type, dmi, flags,
-        oper);
+    result_code = mgr->SetVlinkPortmapConfiguration(temp_ckv,
+                                                    dt_type,
+                                                    dmi,
+                                                    flags,
+                                                    oper);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("Unable to update vlink flag for flowfilterentry, err %d",
-          result_code);
+                     result_code);
       DELETE_IF_NOT_NULL(ckv);
       return result_code;
     }
@@ -1920,9 +1756,10 @@ upll_rc_t VrtIfFlowFilterMoMgr::SetVlinkPortmapConfiguration(
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t VrtIfFlowFilterMoMgr::GetControllerDomainID(ConfigKeyVal *ikey,
-                                          upll_keytype_datatype_t dt_type,
-                                          DalDmlIntf *dmi) {
+upll_rc_t VrtIfFlowFilterMoMgr::GetControllerDomainID(
+    ConfigKeyVal *ikey,
+    upll_keytype_datatype_t dt_type,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
@@ -1937,7 +1774,7 @@ upll_rc_t VrtIfFlowFilterMoMgr::GetControllerDomainID(ConfigKeyVal *ikey,
   result_code = mgrvrtif->GetChildConfigKey(ckv, NULL);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("Unable to get the ParentConfigKey, resultcode=%d",
-                    result_code);
+                   result_code);
     return result_code;
   }
 
@@ -1973,26 +1810,26 @@ upll_rc_t VrtIfFlowFilterMoMgr::GetControllerDomainID(ConfigKeyVal *ikey,
     UPLL_LOG_INFO("GetControllerDomainId error err code(%d)", result_code);
     DELETE_IF_NOT_NULL(vrt_key);
     DELETE_IF_NOT_NULL(ckv);
-    return UPLL_RC_ERR_GENERIC;
+    return result_code;
   }
 
   SET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
   UPLL_LOG_DEBUG("ctrlrid %s, domainid %s",
-                   ctrlr_dom.ctrlr, ctrlr_dom.domain);
+                 ctrlr_dom.ctrlr, ctrlr_dom.domain);
   DELETE_IF_NOT_NULL(vrt_key);
   DELETE_IF_NOT_NULL(ckv);
   return result_code;
 }
 
 upll_rc_t VrtIfFlowFilterMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
-                                                 ConfigKeyVal *ikey) {
+                                                   ConfigKeyVal *ikey) {
   UPLL_FUNC_TRACE;
 
   if (!ikey) {
     UPLL_LOG_DEBUG(" Input Key is NULL");
     return UPLL_RC_ERR_GENERIC;
   }
-  DELETE_IF_NOT_NULL(okey); 
+  DELETE_IF_NOT_NULL(okey);
   unc_key_type_t ikey_type = ikey->get_key_type();
   if (ikey_type != UNC_KT_VRTIF_FLOWFILTER) {
     UPLL_LOG_DEBUG(" Invalid key type received. Key type - %d", ikey_type);
@@ -2064,14 +1901,14 @@ upll_rc_t VrtIfFlowFilterMoMgr::ConstructReadDetailResponse(
 }
 
 upll_rc_t VrtIfFlowFilterMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
-                                   DalDmlIntf *dmi,
-                                   const char *ctrlr_id) {
+                                                  DalDmlIntf *dmi,
+                                                  const char *ctrlr_id) {
   UPLL_FUNC_TRACE;
   uint8_t flags = 0;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   UPLL_LOG_TRACE(" ikey is %s", ikey->ToStrAll().c_str());
   uint8_t *controller_id = reinterpret_cast<uint8_t *>(
-                                 const_cast<char *>(ctrlr_id));
+      const_cast<char *>(ctrlr_id));
 
   /* check if object is renamed in the corresponding Rename Tbl
    * if "renamed"  create the object by the UNC name.
@@ -2086,18 +1923,17 @@ upll_rc_t VrtIfFlowFilterMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
 
   UPLL_LOG_DEBUG("GetRenamed UncKey Passed");
   pfcdrv_val_vbrif_vextif_t *pfc_val =
-    reinterpret_cast<pfcdrv_val_vbrif_vextif_t *> (GetVal(ikey));
+      reinterpret_cast<pfcdrv_val_vbrif_vextif_t *> (GetVal(ikey));
 
   if (pfc_val == NULL) {
     UPLL_LOG_DEBUG("Val Structure is EWmpty");
     return UPLL_RC_ERR_GENERIC;
   }
-  
+
   if (pfc_val->interface_type == PFCDRV_IF_TYPE_VBRIF) {
     flags = SET_FLAG_VLINK;
-  }
-  else {
-   flags = 0;
+  } else {
+    flags = 0;
   }
 
   ConfigKeyVal *okey = NULL;
@@ -2121,7 +1957,11 @@ upll_rc_t VrtIfFlowFilterMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
                  ctrlr_dom.ctrlr, ctrlr_dom.domain);
 
   // Create a record in AUDIT DB
-  result_code = UpdateConfigDB(okey, UPLL_DT_AUDIT, UNC_OP_CREATE, dmi, MAINTBL);
+  result_code = UpdateConfigDB(okey,
+                               UPLL_DT_AUDIT,
+                               UNC_OP_CREATE,
+                               dmi,
+                               MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("UpdateConfigDB Failed err_code %d", result_code);
     DELETE_IF_NOT_NULL(okey);
@@ -2132,15 +1972,16 @@ upll_rc_t VrtIfFlowFilterMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
 }
 
 upll_rc_t VrtIfFlowFilterMoMgr::UpdateAuditConfigStatus(
-                      unc_keytype_configstatus_t cs_status,
-                      uuc::UpdateCtrlrPhase phase,
-                      ConfigKeyVal *&ckv_running) {
+    unc_keytype_configstatus_t cs_status,
+    uuc::UpdateCtrlrPhase phase,
+    ConfigKeyVal *&ckv_running,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
   val_flowfilter_t *val = NULL;
   val = (ckv_running != NULL)?
-     reinterpret_cast<val_flowfilter_t *> (GetVal(ckv_running)):NULL;
+      reinterpret_cast<val_flowfilter_t *> (GetVal(ckv_running)):NULL;
 
   if (NULL == val) {
     UPLL_LOG_DEBUG("UpdateAuditConfigStatus :: Memory Not Allocated");
@@ -2149,21 +1990,23 @@ upll_rc_t VrtIfFlowFilterMoMgr::UpdateAuditConfigStatus(
   if (uuc::kUpllUcpCreate == phase )
     val->cs_row_status = cs_status;
   if ((uuc::kUpllUcpUpdate == phase) &&
-           (val->cs_row_status == UNC_CS_INVALID ||
-            val->cs_row_status == UNC_CS_NOT_APPLIED))
+      (val->cs_row_status == UNC_CS_INVALID ||
+       val->cs_row_status == UNC_CS_NOT_APPLIED))
     val->cs_row_status = cs_status;
 
   UPLL_LOG_DEBUG("Update  Audit Config Status Successfull");
   return result_code;
 }
 
-upll_rc_t VrtIfFlowFilterMoMgr::AuditUpdateController(unc_key_type_t keytype,
-                             const char *ctrlr_id,
-                             uint32_t session_id,
-                             uint32_t config_id,
-                             uuc::UpdateCtrlrPhase phase,
-                             bool *ctrlr_affected,
-                             DalDmlIntf *dmi) {
+upll_rc_t VrtIfFlowFilterMoMgr::AuditUpdateController(
+    unc_key_type_t keytype,
+    const char *ctrlr_id,
+    uint32_t session_id,
+    uint32_t config_id,
+    uuc::UpdateCtrlrPhase phase,
+    DalDmlIntf *dmi,
+    ConfigKeyVal **err_ckv,
+    KTxCtrlrAffectedState *ctrlr_affected) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   DalResultCode db_result = uud::kDalRcSuccess;
@@ -2174,7 +2017,7 @@ upll_rc_t VrtIfFlowFilterMoMgr::AuditUpdateController(unc_key_type_t keytype,
   ConfigKeyVal  *ckv_running_db = NULL;
   ConfigKeyVal  *ckv_audit_db = NULL;
   ConfigKeyVal  *ckv_driver_req = NULL;
-  ConfigKeyVal  *ckv_audit_dup_db = NULL; 
+  ConfigKeyVal  *ckv_audit_dup_db = NULL;
   DalCursor *cursor = NULL;
   uint8_t db_flag = 0;
   // uint8_t flag = 0;
@@ -2183,33 +2026,42 @@ upll_rc_t VrtIfFlowFilterMoMgr::AuditUpdateController(unc_key_type_t keytype,
   GET_TABLE_TYPE(keytype, tbl);
   DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutCtrlr | kOpInOutDomain};
   unc_keytype_operation_t op = (phase == uuc::kUpllUcpCreate)?UNC_OP_CREATE:
-               ((phase == uuc::kUpllUcpUpdate)?UNC_OP_UPDATE:
-               ((phase == uuc::kUpllUcpDelete)?UNC_OP_DELETE:UNC_OP_INVALID));
+      ((phase == uuc::kUpllUcpUpdate)?UNC_OP_UPDATE:
+       ((phase == uuc::kUpllUcpDelete)?UNC_OP_DELETE:UNC_OP_INVALID));
 
   unc_keytype_operation_t op1 = op;
   if (phase == uuc::kUpllUcpDelete2)
-     return result_code;
+    return result_code;
   /* retreives the delta of running and audit configuration */
-  UPLL_LOG_DEBUG("Operation is %d", op); 
+  UPLL_LOG_DEBUG("Operation is %d", op);
   result_code = DiffConfigDB(UPLL_DT_RUNNING, UPLL_DT_AUDIT, op,
-        ckv_running_db, ckv_audit_db,
-        &cursor, dmi, ctrlr, tbl);
+                             ckv_running_db, ckv_audit_db,
+                             &cursor, dmi, ctrlr, tbl);
+  if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+    UPLL_LOG_DEBUG("No more diff found for operation %d", op);
+    DELETE_IF_NOT_NULL(ckv_running_db);
+    DELETE_IF_NOT_NULL(ckv_audit_db);
+    return UPLL_RC_SUCCESS;
+  }
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("DiffConfigDB failed - %d", result_code);
+    DELETE_IF_NOT_NULL(ckv_running_db);
+    DELETE_IF_NOT_NULL(ckv_audit_db);
     return result_code;
   }
   while (uud::kDalRcSuccess == (db_result = dmi->GetNextRecord(cursor))) {
     op1 = op;
     if (phase != uuc::kUpllUcpDelete) {
       uint8_t *db_ctrlr = NULL;
-      GET_USER_DATA_CTRLR(ckv_running_db,db_ctrlr);
+      GET_USER_DATA_CTRLR(ckv_running_db, db_ctrlr);
       UPLL_LOG_DEBUG("db ctrl_id and audit ctlr_id are  %s %s",
                      db_ctrlr, ctrlr_id);
       // Skipping the controller ID if the controller id in DB and
       // controller id available for Audit are not the same
-      if (db_ctrlr && strncmp(reinterpret_cast<const char *>(db_ctrlr),
-                           reinterpret_cast<const char *>(ctrlr_id),
-                           strlen(reinterpret_cast<const char *>(ctrlr_id)) + 1)) {
+      if (db_ctrlr && strncmp(
+              reinterpret_cast<const char *>(db_ctrlr),
+              reinterpret_cast<const char *>(ctrlr_id),
+              strlen(reinterpret_cast<const char *>(ctrlr_id)) + 1)) {
         continue;
       }
     }
@@ -2217,74 +2069,89 @@ upll_rc_t VrtIfFlowFilterMoMgr::AuditUpdateController(unc_key_type_t keytype,
     switch (phase) {
       case uuc::kUpllUcpDelete:
         UPLL_LOG_TRACE("Deleted record is %s ",
-                        ckv_running_db->ToStrAll().c_str());
+                       ckv_running_db->ToStrAll().c_str());
         result_code = GetChildConfigKey(ckv_driver_req, ckv_running_db);
         if (!ckv_driver_req || result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("GetChildConfigKey failed. err_code & phase %d %d",
-                           result_code, phase);
+                         result_code, phase);
           DELETE_IF_NOT_NULL(ckv_driver_req);
+          DELETE_IF_NOT_NULL(ckv_running_db);
+          DELETE_IF_NOT_NULL(ckv_audit_db);
           if (cursor)
             dmi->CloseCursor(cursor, true);
           return result_code;
         }
         UPLL_LOG_TRACE("ckv_driver_req in delete is %s",
-                        ckv_driver_req->ToStrAll().c_str())
-        if (ckv_driver_req->get_cfg_val()) {
-          UPLL_LOG_DEBUG("Invalid param");
+                       ckv_driver_req->ToStrAll().c_str())
+            if (ckv_driver_req->get_cfg_val()) {
+              UPLL_LOG_DEBUG("Invalid param");
+              DELETE_IF_NOT_NULL(ckv_driver_req);
+              DELETE_IF_NOT_NULL(ckv_running_db);
+              DELETE_IF_NOT_NULL(ckv_audit_db);
+              if (cursor)
+                dmi->CloseCursor(cursor, true);
+              return UPLL_RC_ERR_GENERIC;
+            }
+        result_code = ReadConfigDB(ckv_driver_req, UPLL_DT_AUDIT, UNC_OP_READ,
+                                   dbop, dmi, MAINTBL);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("Returning error %d", result_code);
+          DELETE_IF_NOT_NULL(ckv_driver_req);
+          DELETE_IF_NOT_NULL(ckv_running_db);
+          DELETE_IF_NOT_NULL(ckv_audit_db);
           if (cursor)
             dmi->CloseCursor(cursor, true);
           return UPLL_RC_ERR_GENERIC;
         }
-        result_code = ReadConfigDB(ckv_driver_req, UPLL_DT_AUDIT, UNC_OP_READ,
-                                             dbop, dmi, MAINTBL);
+        break;
+      case uuc::kUpllUcpCreate:
+        UPLL_LOG_TRACE("Created  record is %s ",
+                       ckv_running_db->ToStrAll().c_str());
+        result_code = DupConfigKeyVal(ckv_driver_req, ckv_running_db, MAINTBL);
         if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("Returning error %d",result_code);
+          UPLL_LOG_DEBUG("DupConfigKeyVal failed. err_code & phase %d %d",
+                         result_code, phase);
+          DELETE_IF_NOT_NULL(ckv_running_db);
+          DELETE_IF_NOT_NULL(ckv_audit_db);
           if (cursor)
             dmi->CloseCursor(cursor, true);
-          return UPLL_RC_ERR_GENERIC;
+          return result_code;
         }
         break;
-      case uuc::kUpllUcpCreate:
-          UPLL_LOG_TRACE("Created  record is %s ",
-                          ckv_running_db->ToStrAll().c_str());
-          result_code = DupConfigKeyVal(ckv_driver_req, ckv_running_db, MAINTBL);
-          if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("DupConfigKeyVal failed. err_code & phase %d %d",
-                           result_code, phase);
-            if (cursor)
-              dmi->CloseCursor(cursor, true);
-            return result_code;
-          }
-         break;
       case uuc::kUpllUcpUpdate:
-          ckv_audit_dup_db = NULL;
-          ckv_driver_req = NULL;
-          UPLL_LOG_TRACE("UpdateRecord  running DB record  is %s ",
-                          ckv_running_db->ToStrAll().c_str());
-          UPLL_LOG_TRACE("UpdateRecord  AuditDB record  is %s ",
-                          ckv_audit_db->ToStrAll().c_str());
-          result_code = DupConfigKeyVal(ckv_driver_req, ckv_running_db, MAINTBL);
-          if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("DupConfigKeyVal failed for running record. \
-                            err_code & phase %d %d", result_code, phase);
-            if (cursor)
-              dmi->CloseCursor(cursor, true);
-            return result_code;
-          }
-          result_code = DupConfigKeyVal(ckv_audit_dup_db, ckv_audit_db, MAINTBL);
-          if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("DupConfigKeyVal failed for audit record. \
-                           err_code & phase %d %d", result_code, phase);
-            DELETE_IF_NOT_NULL(ckv_driver_req); 
-            if (cursor)
-              dmi->CloseCursor(cursor, true);
-            return result_code;
-          }
+        ckv_audit_dup_db = NULL;
+        ckv_driver_req = NULL;
+        UPLL_LOG_TRACE("UpdateRecord  running DB record  is %s ",
+                       ckv_running_db->ToStrAll().c_str());
+        UPLL_LOG_TRACE("UpdateRecord  AuditDB record  is %s ",
+                       ckv_audit_db->ToStrAll().c_str());
+        result_code = DupConfigKeyVal(ckv_driver_req, ckv_running_db, MAINTBL);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("DupConfigKeyVal failed for running record."
+                         "err_code & phase %d %d", result_code, phase);
+          DELETE_IF_NOT_NULL(ckv_running_db);
+          DELETE_IF_NOT_NULL(ckv_audit_db);
+          if (cursor)
+            dmi->CloseCursor(cursor, true);
+          return result_code;
+        }
+        result_code = DupConfigKeyVal(ckv_audit_dup_db, ckv_audit_db, MAINTBL);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("DupConfigKeyVal failed for audit record. "
+                         "err_code & phase %d %d", result_code, phase);
+          DELETE_IF_NOT_NULL(ckv_driver_req);
+          DELETE_IF_NOT_NULL(ckv_running_db);
+          DELETE_IF_NOT_NULL(ckv_audit_db);
+          if (cursor)
+            dmi->CloseCursor(cursor, true);
+          return result_code;
+        }
         break;
       default:
         UPLL_LOG_DEBUG("Invalid operation %d", phase);
+        DELETE_IF_NOT_NULL(ckv_running_db);
+        DELETE_IF_NOT_NULL(ckv_audit_db);
         return UPLL_RC_ERR_NO_SUCH_OPERATION;
-        break;
     }
     if (!ckv_driver_req) return UPLL_RC_ERR_GENERIC;
     GET_USER_DATA_CTRLR_DOMAIN(ckv_driver_req, ctrlr_dom);
@@ -2292,12 +2159,14 @@ upll_rc_t VrtIfFlowFilterMoMgr::AuditUpdateController(unc_key_type_t keytype,
       UPLL_LOG_INFO("controller id or domain is NULL");
       DELETE_IF_NOT_NULL(ckv_driver_req);
       DELETE_IF_NOT_NULL(ckv_audit_dup_db);
+      DELETE_IF_NOT_NULL(ckv_running_db);
+      DELETE_IF_NOT_NULL(ckv_audit_db);
       if (cursor)
         dmi->CloseCursor(cursor, true);
       return UPLL_RC_ERR_GENERIC;
     }
     UPLL_LOG_DEBUG("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
-                 ctrlr_dom.domain);
+                   ctrlr_dom.domain);
     db_flag = 0;
     GET_USER_DATA_FLAGS(ckv_driver_req, db_flag);
 
@@ -2318,21 +2187,36 @@ upll_rc_t VrtIfFlowFilterMoMgr::AuditUpdateController(unc_key_type_t keytype,
         continue;
       }
     }
-    if (UNC_OP_UPDATE == op1) {    
+    if (UNC_OP_UPDATE == op1) {
       void *running_val = NULL;
       bool invalid_attr = false;
       running_val = GetVal(ckv_running_db);
       invalid_attr = FilterAttributes(running_val,
-           GetVal(ckv_audit_dup_db), false, UNC_OP_UPDATE);
+                                      GetVal(ckv_audit_dup_db),
+                                      false,
+                                      UNC_OP_UPDATE);
       if (invalid_attr) {
         DELETE_IF_NOT_NULL(ckv_driver_req);
         DELETE_IF_NOT_NULL(ckv_audit_dup_db);
+        // Assuming that the diff found only in ConfigStatus
+        // Setting the   value as OnlyCSDiff in the out parameter
+        // ctrlr_affected
+        // The value Configdiff should be given more priority than the value
+        // onlycs .
+        // So  If the out parameter ctrlr_affected has already value
+        // as configdiff
+        //  then dont change the value
+        if (*ctrlr_affected != uuc::kCtrlrAffectedConfigDiff) {
+          UPLL_LOG_INFO("Setting the ctrlr_affected to OnlyCSDiff");
+          *ctrlr_affected = uuc::kCtrlrAffectedOnlyCSDiff;
+        }
         continue;
       }
     }
+
     DELETE_IF_NOT_NULL(ckv_audit_dup_db);
     upll_keytype_datatype_t dt_type = (op1 == UNC_OP_DELETE)?
-      UPLL_DT_AUDIT : UPLL_DT_RUNNING;
+        UPLL_DT_AUDIT : UPLL_DT_RUNNING;
 
     result_code = GetRenamedControllerKey(ckv_driver_req, UPLL_DT_RUNNING,
                                           dmi, &ctrlr_dom);
@@ -2341,21 +2225,24 @@ upll_rc_t VrtIfFlowFilterMoMgr::AuditUpdateController(unc_key_type_t keytype,
       UPLL_LOG_DEBUG(" GetRenamedControllerKey failed err code(%d)",
                      result_code);
       DELETE_IF_NOT_NULL(ckv_driver_req);
+      DELETE_IF_NOT_NULL(ckv_running_db);
+      DELETE_IF_NOT_NULL(ckv_audit_db);
       if (cursor)
         dmi->CloseCursor(cursor, true);
       return result_code;
     }
-    
+
     pfcdrv_val_vbrif_vextif_t *pfc_val =
-    reinterpret_cast<pfcdrv_val_vbrif_vextif_t *>
-    (ConfigKeyVal::Malloc(sizeof(pfcdrv_val_vbrif_vextif_t)));
+        reinterpret_cast<pfcdrv_val_vbrif_vextif_t *>
+        (ConfigKeyVal::Malloc(sizeof(pfcdrv_val_vbrif_vextif_t)));
 
     pfc_val->valid[PFCDRV_IDX_INTERFACE_TYPE] = UNC_VF_VALID;
     pfc_val->valid[PFCDRV_IDX_VEXTERNAL_NAME_VBRIF] = UNC_VF_INVALID;
     pfc_val->valid[PFCDRV_IDX_VEXT_IF_NAME_VBRIF] = UNC_VF_INVALID;
     pfc_val->interface_type = PFCDRV_IF_TYPE_VBRIF;
 
-    ckv_driver_req->SetCfgVal(new ConfigVal(IpctSt::kIpcStPfcdrvValVbrifVextif, pfc_val));
+    ckv_driver_req->SetCfgVal(new ConfigVal
+                              (IpctSt::kIpcStPfcdrvValVbrifVextif, pfc_val));
 
     IpcResponse ipc_response;
     memset(&ipc_response, 0, sizeof(IpcResponse));
@@ -2366,94 +2253,136 @@ upll_rc_t VrtIfFlowFilterMoMgr::AuditUpdateController(unc_key_type_t keytype,
     ipc_req.header.operation = op1;
     ipc_req.header.datatype = UPLL_DT_CANDIDATE;
     ipc_req.ckv_data = ckv_driver_req;
-    if (!IpcUtil::SendReqToDriver((const char *)ctrlr_dom.ctrlr, reinterpret_cast<char *>
-                                  (ctrlr_dom.domain), PFCDRIVER_SERVICE_NAME, 
-                                  PFCDRIVER_SVID_LOGICAL, &ipc_req, true, &ipc_response)) {
+    if (!IpcUtil::SendReqToDriver((const char *)ctrlr_dom.ctrlr,
+                                  reinterpret_cast<char *>
+                                  (ctrlr_dom.domain), PFCDRIVER_SERVICE_NAME,
+                                  PFCDRIVER_SVID_LOGICAL,
+                                  &ipc_req,
+                                  true,
+                                  &ipc_response)) {
       UPLL_LOG_INFO("Request to driver for Key %d for controller %s failed ",
-                    ckv_driver_req->get_key_type(), reinterpret_cast<char *>(ctrlr_dom.ctrlr));
+                    ckv_driver_req->get_key_type(),
+                    reinterpret_cast<char *>
+                    (ctrlr_dom.ctrlr));
 
       DELETE_IF_NOT_NULL(ckv_driver_req);
+      DELETE_IF_NOT_NULL(ckv_running_db);
+      DELETE_IF_NOT_NULL(ckv_audit_db);
       if (cursor)
         dmi->CloseCursor(cursor, true);
       return UPLL_RC_ERR_GENERIC;
     }
-    if  (ipc_response.header.result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("driver return failure err_code is %d", ipc_response.header.result_code);
+    if (ipc_response.header.result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("driver return failure err_code is %d",
+                     ipc_response.header.result_code);
+      *err_ckv = ckv_running_db;
+
+      if (phase != uuc::kUpllUcpDelete) {
         ConfigKeyVal *resp = NULL;
-         
+
         result_code = GetChildConfigKey(resp, ipc_response.ckv_data);
         if (result_code != UPLL_RC_SUCCESS) {
-           UPLL_LOG_DEBUG("DupConfigKeyVal failed for ipc response ckv err_code %d",
-                           result_code);
-           DELETE_IF_NOT_NULL(ipc_response.ckv_data);
-           DELETE_IF_NOT_NULL(ckv_driver_req);
-           if (cursor)
-              dmi->CloseCursor(cursor, true);
-           return result_code;
+          UPLL_LOG_DEBUG("DupConfigKeyVal failed for ipc response"
+                         "ckv err_code %d",
+                         result_code);
+          DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+          DELETE_IF_NOT_NULL(ckv_driver_req);
+          DELETE_IF_NOT_NULL(ckv_running_db);
+          DELETE_IF_NOT_NULL(ckv_audit_db);
+          *err_ckv = NULL;
+          if (cursor)
+            dmi->CloseCursor(cursor, true);
+          return result_code;
         }
         DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutNone };
-        result_code = ReadConfigDB(resp, dt_type, UNC_OP_READ, dbop,dmi, MAINTBL);
+        result_code = ReadConfigDB(resp,
+                                   dt_type,
+                                   UNC_OP_READ,
+                                   dbop,
+                                   dmi,
+                                   MAINTBL);
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("ReadConfigDB Failed");
           DELETE_IF_NOT_NULL(ckv_driver_req);
           DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+          DELETE_IF_NOT_NULL(ckv_running_db);
+          DELETE_IF_NOT_NULL(ckv_audit_db);
+          *err_ckv = NULL;
           if (cursor)
             dmi->CloseCursor(cursor, true);
           return result_code;
         }
-        result_code = UpdateAuditConfigStatus(UNC_CS_INVALID, phase, resp);
+
+        result_code = UpdateAuditConfigStatus(UNC_CS_INVALID,
+                                              phase,
+                                              resp,
+                                              dmi);
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_TRACE("Update Audit config status failed %d",
-                  result_code);
+                         result_code);
           DELETE_IF_NOT_NULL(ckv_driver_req);
           DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+          DELETE_IF_NOT_NULL(ckv_running_db);
+          DELETE_IF_NOT_NULL(ckv_audit_db);
+          *err_ckv = NULL;
           if (cursor)
             dmi->CloseCursor(cursor, true);
           return result_code;
         }
         DbSubOp dbop1 = { kOpNotRead, kOpMatchNone, kOpInOutCs };
         result_code = UpdateConfigDB(resp, dt_type, UNC_OP_UPDATE,
-                                       dmi, &dbop1, tbl);
+                                     dmi, &dbop1, tbl);
         if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("UpdateConfigDB failed for ipc response ckv err_code %d",
-                          result_code);
+          UPLL_LOG_DEBUG("UpdateConfigDB failed for ipc response"
+                         "ckv err_code %d",
+                         result_code);
           DELETE_IF_NOT_NULL(ckv_driver_req);
           DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+          DELETE_IF_NOT_NULL(ckv_running_db);
+          DELETE_IF_NOT_NULL(ckv_audit_db);
+          *err_ckv = NULL;
           if (cursor)
-             dmi->CloseCursor(cursor, true);
+            dmi->CloseCursor(cursor, true);
           return result_code;
-        }  
+        }
         DELETE_IF_NOT_NULL(resp);
+      }
+      return ipc_response.header.result_code;
     }
     DELETE_IF_NOT_NULL(ckv_driver_req);
     DELETE_IF_NOT_NULL(ipc_response.ckv_data);
-    *ctrlr_affected = true;
+    // *ctrlr_affected = true;
+    if (*ctrlr_affected == uuc::kCtrlrAffectedOnlyCSDiff) {
+      UPLL_LOG_INFO("Reset ctrlr state from OnlyCSDiff to ConfigDiff");
+    }
+    UPLL_LOG_DEBUG("Setting the ctrlr_affected to ConfigDiff");
+    *ctrlr_affected = uuc::kCtrlrAffectedConfigDiff;
   }
 
   if (cursor)
-      dmi->CloseCursor(cursor, true);
+    dmi->CloseCursor(cursor, true);
   if (uud::kDalRcSuccess != db_result) {
-     UPLL_LOG_DEBUG("GetNextRecord from database failed  - %d", db_result);
-     result_code =  DalToUpllResCode(db_result);
+    UPLL_LOG_DEBUG("GetNextRecord from database failed  - %d", db_result);
+    result_code =  DalToUpllResCode(db_result);
   }
-  
+
   DELETE_IF_NOT_NULL(ckv_running_db);
   DELETE_IF_NOT_NULL(ckv_audit_db);
   result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)
-                ? UPLL_RC_SUCCESS : result_code;
+      ? UPLL_RC_SUCCESS : result_code;
   return result_code;
 }
 
-upll_rc_t VrtIfFlowFilterMoMgr::DeleteChildrenPOM(ConfigKeyVal *ikey,
-                                                  upll_keytype_datatype_t dt_type,
-                                                  DalDmlIntf *dmi) {
+upll_rc_t VrtIfFlowFilterMoMgr::DeleteChildrenPOM(
+    ConfigKeyVal *ikey,
+    upll_keytype_datatype_t dt_type,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
 
   if (NULL == ikey || NULL == dmi) {
-  UPLL_LOG_DEBUG("Delete Operation failed:Bad request");
-  return result_code;
+    UPLL_LOG_DEBUG("Delete Operation failed:Bad request");
+    return result_code;
   }
   // Read the DB get the flowlist value and send the delete request to
   // flowlist momgr if flowlist is configured.
@@ -2465,7 +2394,7 @@ upll_rc_t VrtIfFlowFilterMoMgr::DeleteChildrenPOM(ConfigKeyVal *ikey,
     return result_code;
   }
   result_code = UpdateConfigDB(tempckv, dt_type, UNC_OP_DELETE, dmi,
-      MAINTBL);
+                               MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
       UPLL_LOG_DEBUG("UPLL_RC_ERR_NO_SUCH_INSTANCE");
@@ -2473,7 +2402,7 @@ upll_rc_t VrtIfFlowFilterMoMgr::DeleteChildrenPOM(ConfigKeyVal *ikey,
       return UPLL_RC_SUCCESS;
     }
     UPLL_LOG_DEBUG("DeleteMo record Err in vtnpolicingmaptbl (%d)",
-        result_code);
+                   result_code);
     DELETE_IF_NOT_NULL(tempckv);
     return result_code;
   }
@@ -2485,16 +2414,16 @@ upll_rc_t VrtIfFlowFilterMoMgr::DeleteChildrenPOM(ConfigKeyVal *ikey,
 upll_rc_t VrtIfFlowFilterMoMgr::SetValidAudit(ConfigKeyVal *&ikey) {
   UPLL_FUNC_TRACE;
   val_flowfilter_t *val = reinterpret_cast<val_flowfilter_t *>
-    (ConfigKeyVal::Malloc(sizeof(val_flowfilter_t)));
+      (ConfigKeyVal::Malloc(sizeof(val_flowfilter_t)));
   val->cs_row_status = UNC_CS_APPLIED;
   ikey->AppendCfgVal(IpctSt::kIpcStValFlowfilter, val);
   return UPLL_RC_SUCCESS;
 }
 
 bool VrtIfFlowFilterMoMgr::FilterAttributes(void *&val1,
-                                          void *val2,
-                                          bool copy_to_running,
-                                          unc_keytype_operation_t op) {
+                                            void *val2,
+                                            bool copy_to_running,
+                                            unc_keytype_operation_t op) {
   UPLL_FUNC_TRACE;
   if (op != UNC_OP_CREATE)
     return true;
@@ -2502,4 +2431,4 @@ bool VrtIfFlowFilterMoMgr::FilterAttributes(void *&val1,
 }
 }  // namespace kt_momgr
 }  // namespace upll
-}  // namespace eunc
+}  // namespace unc
index 875e21a8565b14716442d98484f523b8c8d8eae1..8968d03ea60caa580718cd8b72f13d7617246f78 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -27,418 +27,421 @@ enum vrtifflowfilterMoMgrTables {
  */
 
 class VrtIfFlowFilterMoMgr : public MoMgrImpl {
-  private:
-    static unc_key_type_t vrt_if_flowfilter_child[];
-    static BindInfo vrt_if_flowfilter_bind_info[];
-    static BindInfo vrtIfflowfiltermaintbl_bind_info[];
-    uint32_t cur_instance_count;
-  public:
-    /**
-    * @brief  Method used to fill the CongigKeyVal with the
-              Parent Class Information.
-
-    * @param[out] okey        This Contains the pointerto the
-                              ConfigKeyVal Class forwhich
-                              fields have to be updated
-                              with values from the parent Class.
-    * @param[in]  parent_key  This Contains the pointer to the
-                              ConfigKeyVal Class which is the
-                              Parent Class used to fill the details.
-
-    * @retval UPLL_RC_SUCCESS     Successfull completion.
-    * @retval UPLL_RC_ERR_GENERIC Failure
-    */
-    upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *parent_key);
-
-    /**
-    * @brief  Method used to get the RenamedUncKey.
-    * @param[out] ikey      This Contains the pointer to
-                            the Class for which fields have
-                            to be updated with values from
-                            the parent Class.
-    * @param[in]  dt_type   Describes Configiration Information.
-    * @param[in]  dmi       Pointer to DalDmlIntf Class.
-    * @param[in]  ctrlr_id  Describes the Controller Name.
-
-    * @retval UPLL_RC_SUCCESS  Successfull completion.
-    * @retval UPLL_RC_ERR_GENERIC  Failure
-    */
-    upll_rc_t GetRenamedUncKey(ConfigKeyVal *ikey,
-                               upll_keytype_datatype_t dt_type, DalDmlIntf *dmi,
-                               uint8_t *ctrlr_id);
-
-    /**
-    * @brief  Method used to get the RenamedUncKey.
-    * @param[out] ikey      This Contains the pointer to
-                            the Class for which fields have
-                            to be updated with values from
-                            the parent Class.
-    * @param[in]  dt_type   Describes Configiration Information.
-    * @param[in]  dmi       Pointer to DalDmlIntf Class.
-    * @param[in]  ctrlr_id  Describes the Controller Name.
-
-    * @retval UPLL_RC_SUCCESS  Successfull completion.
-    * @retval UPLL_RC_ERR_GENERIC  Failure
-    */
-    upll_rc_t GetRenamedControllerKey(ConfigKeyVal *ikey,
-                                      upll_keytype_datatype_t dt_type,
-                                      DalDmlIntf *dmi,
-                                      controller_domain *ctrlr_dom = NULL);
-    /**
-    * @brief  Method Updates the ConfigStatus for AuditConfigiration.
-    *
-    * @param[out]  ckv_running  This Contains the pointer to the Class
-    *                           for which Audit ConfigStatus is Updated.
-    * @param[in]   cs_status    Describes CsStaus Information.
-    *                           Information.
-    * @param[in]   phase        Describes the Phase of the Operation.
-    *
-    * @retval  UPLL_RC_SUCCESS  Successfull completion.
-    * @retval  UPLL_RC_GENERIC  Returned Generic Error.
-    */
-    upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
-                                       uuc::UpdateCtrlrPhase phase,
-                                       ConfigKeyVal *&ckv_running);
-
-    /**
-    * @brief  Method Updates the ConfigStatus for AuditConfigiration.
-
-    * @param[out] ckv_db               This Contains the pointer to
-                                       the Class for which ConfigStatus
-                                       is Updated.
-    * @param[in]  ctrlr_commit_status  Describes Commit Control Status Information.
-    * @param[in]  response_code        Describes the Response Code.
-    * @param[in]  dmi                  Pinter to DalDmlIntf Class.
-
-    * @retval UPLL_RC_SUCCESS  Successfull completion.
-    * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE  No Such Instance Exist
-    */
-    upll_rc_t ReadMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                     DalDmlIntf *dmi);
+ private:
+  static unc_key_type_t vrt_if_flowfilter_child[];
+  static BindInfo vrt_if_flowfilter_bind_info[];
+  static BindInfo vrtIfflowfiltermaintbl_bind_info[];
+
+ public:
+  /**
+   * @brief  Method used to fill the CongigKeyVal with the
+   Parent Class Information.
+
+   * @param[out] okey        This Contains the pointerto the
+   ConfigKeyVal Class forwhich
+   fields have to be updated
+   with values from the parent Class.
+   * @param[in]  parent_key  This Contains the pointer to the
+   ConfigKeyVal Class which is the
+   Parent Class used to fill the details.
+
+   * @retval UPLL_RC_SUCCESS     Successfull completion.
+   * @retval UPLL_RC_ERR_GENERIC Failure
+   */
+  upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *parent_key);
+
+  /**
+   * @brief  Method used to get the RenamedUncKey.
+   * @param[out] ikey      This Contains the pointer to
+   the Class for which fields have
+   to be updated with values from
+   the parent Class.
+   * @param[in]  dt_type   Describes Configiration Information.
+   * @param[in]  dmi       Pointer to DalDmlIntf Class.
+   * @param[in]  ctrlr_id  Describes the Controller Name.
+
+   * @retval UPLL_RC_SUCCESS  Successfull completion.
+   * @retval UPLL_RC_ERR_GENERIC  Failure
+   */
+  upll_rc_t GetRenamedUncKey(ConfigKeyVal *ikey,
+                             upll_keytype_datatype_t dt_type, DalDmlIntf *dmi,
+                             uint8_t *ctrlr_id);
+
+  /**
+   * @brief  Method used to get the RenamedUncKey.
+   * @param[out] ikey      This Contains the pointer to
+   the Class for which fields have
+   to be updated with values from
+   the parent Class.
+   * @param[in]  dt_type   Describes Configiration Information.
+   * @param[in]  dmi       Pointer to DalDmlIntf Class.
+   * @param[in]  ctrlr_id  Describes the Controller Name.
+
+   * @retval UPLL_RC_SUCCESS  Successfull completion.
+   * @retval UPLL_RC_ERR_GENERIC  Failure
+   */
+  upll_rc_t GetRenamedControllerKey(ConfigKeyVal *ikey,
+                                    upll_keytype_datatype_t dt_type,
+                                    DalDmlIntf *dmi,
+                                    controller_domain *ctrlr_dom = NULL);
+  /**
+   * @brief  Method Updates the ConfigStatus for AuditConfigiration.
+   *
+   * @param[out]  ckv_running  This Contains the pointer to the Class
+   *                           for which Audit ConfigStatus is Updated.
+   * @param[in]   cs_status    Describes CsStaus Information.
+   *                           Information.
+   * @param[in]   phase        Describes the Phase of the Operation.
+   *
+   * @retval  UPLL_RC_SUCCESS  Successfull completion.
+   * @retval  UPLL_RC_GENERIC  Returned Generic Error.
+   */
+  upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
+                                    uuc::UpdateCtrlrPhase phase,
+                                    ConfigKeyVal *&ckv_running,
+                                    DalDmlIntf *dmi);
 
-    /**
-    * @brief  Method used for Trasaction Vote Operation.
-
-    * @param[in] key            Pointer to ConfigKeyVal Class.
-    * @param[in] op             Describes the Type of Opeartion.
-    * @param[in] driver_result  Describes the result of Driver Operation.
-    * @param[in] upd_key        Pointer to ConfigKeyVal Class.
-    * @param[in] ctrlr_key      Pointer to ConfigKeyVal Class.
-
-    * @retval  UPLL_RC_SUCCESS  Successfull completion.
-    * @retval  UPLL_RC_ERR_GENERIC  Failure
-    */
-    upll_rc_t UpdateConfigStatus(ConfigKeyVal *key, unc_keytype_operation_t op,
-                                 uint32_t driver_result, ConfigKeyVal *upd_key,
-                                 DalDmlIntf *dmi, ConfigKeyVal *ctrlr_key);
-
-    /**
-    * @brief  Allocates Memory for the Incoming Pointer to the Class.
-
-    * @param[out] ck_val   This Contains the pointer to the Class for
-                           which memory has to be allocated.
-    * @param[in]  dt_type  Describes Configiration Information.
-    * @param[in]  tbl      Describes the Destination table Information.
-
-    * @retval UPLL_RC_SUCCESS  Successfull completion.
-    * @retval  UPLL_RC_ERR_GENERIC  Failure
-    */
-    upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
-                       MoMgrTables tbl);
-
-    /**
-     * @brief  Gets the valid array position of the variable in the value
-     *         structure from the table in the specified configuration
-     *         For this KT this function will always return sucess since
-     *         there is not Valid array associated in the value structure
-     *
-     * @param[in]     val      pointer to the value structure
-     * @param[in]     indx     database index for the variable
-     * @param[out]    valid    position of the variable in the valid array -
-     *                          NULL if valid does not exist.
-     * @param[in]     dt_type  specifies the configuration
-     * @param[in]     tbl      specifies the table containing the given value
-     *
-     * @retval  UPLL_RC_SUCCESS Successful Completion
-     **/
-     upll_rc_t GetValid(void*val,
-                        uint64_t indx,
-                        uint8_t *&valid,
-                        upll_keytype_datatype_t dt_type,
-                        MoMgrTables tbl) {
-     return UPLL_RC_SUCCESS;
-     }
-
-    /**
-     * @Brief This API is used to check the  object availability
-     * in  CANDIDATE DB
-     *
-     * @param[in] ikey                          Pointer to ConfigKeyVal Class.
-     * @param[in] dt_type                       Configuration information.
-     * @param[in] dmi                           Pointer to DalDmlIntf Class.
-     *
-     * @retval    UPLL_RC_SUCCESS               Successful completion.
-     * @retval    UPLL_RC_ERR_GENERIC           Generic Error code.
-     * @retval    UPLL_RC_ERR_NO_SUCH_INSTANCE  No Record in DB.
-     * @retval    UPLL_RC_ERR_INSTANCE_EXISTS   Record exists in DB.
-     */
-    upll_rc_t IsReferenced(ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
-                           DalDmlIntf *dmi);
-
-    /**
-     * @brief  Validates the Attribute of a Particular Class.
-     *
-     * @param[in]  kval  This contains the Class to which the fields
-     *                   have to be validated.
-     * @param[in]  dmi   Pointer to DbInterface
-     *
-     * @retval  UPLL_RC_SUCCESS      Successfull Completion.
-     * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
-     */
-    upll_rc_t ValidateAttribute(ConfigKeyVal *kval,
-                                DalDmlIntf *dmi,
-                                IpcReqRespHeader *req = NULL);
-
-    /**
-    * @brief  Method used to Duplicate the ConfigkeyVal.
-
-    * @param[out] okey  This Contains the pointer to
-                        the Class for which fields
-                        have to be updated with values
-                        from the Request.
-    * @param[in]  req   This Contains the pointer to the
-                        Class which is used for the Duplication .
-
-    * @retval UPLL_RC_SUCCESS  Successfull completion.
-    * @retval UPLL_RC_ERR_GENERIC  Failure
-    */
-    upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
-                              MoMgrTables tbl);
-
-    /**
-    * @brief  Method used for Validation before Merge.
-
-    * @param[in] ikey      This Contains the pointer to the
-                           Class for which fields have to
-                           be Validated before the Merge.
-    * @param[in] keytype   Describes the keyType Information.
-    * @param[in] dmi       Pointer to DalDmlIntf Class.
-    * @param[in] ctrlr_id  Describes the Controller Name.
-
-    * @retval UPLL_RC_SUCCESS  Successfull completion.
-    * @retval UPLL_RC_ERR_MERGE_CONFLICT  MetgeConflict
-    */
-    upll_rc_t MergeValidate(unc_key_type_t keytype, const char *ctrlr_id,
-                            ConfigKeyVal *ikey, DalDmlIntf *dmi);
-
-    /**
-    * @brief  Method used for rename Operation.
-
-    * @param[in] req       Describes RequestResponderHeaderClass.
-    * @param[in] ikey      Pointer to ConfigKeyVal Class.
-    * @param[in] dmi       Pointer to DalDmlIntf Class.
-    * @param[in] ctrlr_id  Describes the Controller Name.
-
-    * @retval UPLL_RC_SUCCESS  Successfull completion.
-    * @retval UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT  No Operation Allowed
-    */
-     upll_rc_t RenameMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                       DalDmlIntf *dmi, const char *ctrlr_id);
-
-    /**
-    * @brief  Method used for Update Operation.
-
-    * @param[in] req   Describes RequestResponderHeaderClass.
-    * @param[in] ikey  Pointer to ConfigKeyVal Class.
-    * @param[in] dmi   Pointer to DalDmlIntf Class.
-
-    * @retval UPLL_RC_SUCCESS Successfull completion.
-    * @retval UPLL_RC_ERR_GENERIC  Generic failure
-    */
-     upll_rc_t UpdateMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
+  /**
+   * @brief  Method Updates the ConfigStatus for AuditConfigiration.
+
+   * @param[out] ckv_db               This Contains the pointer to
+   the Class for which ConfigStatus
+   is Updated.
+   * @param[in]  ctrlr_commit_status  Describes Commit Control Status Information.
+   * @param[in]  response_code        Describes the Response Code.
+   * @param[in]  dmi                  Pinter to DalDmlIntf Class.
+
+   * @retval UPLL_RC_SUCCESS  Successfull completion.
+   * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE  No Such Instance Exist
+   */
+  upll_rc_t ReadMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
+                   DalDmlIntf *dmi);
+
+  /**
+   * @brief  Method used for Trasaction Vote Operation.
+
+   * @param[in] key            Pointer to ConfigKeyVal Class.
+   * @param[in] op             Describes the Type of Opeartion.
+   * @param[in] driver_result  Describes the result of Driver Operation.
+   * @param[in] upd_key        Pointer to ConfigKeyVal Class.
+   * @param[in] ctrlr_key      Pointer to ConfigKeyVal Class.
+
+   * @retval  UPLL_RC_SUCCESS  Successfull completion.
+   * @retval  UPLL_RC_ERR_GENERIC  Failure
+   */
+  upll_rc_t UpdateConfigStatus(ConfigKeyVal *key, unc_keytype_operation_t op,
+                               uint32_t driver_result, ConfigKeyVal *upd_key,
+                               DalDmlIntf *dmi, ConfigKeyVal *ctrlr_key);
+
+  /**
+   * @brief  Allocates Memory for the Incoming Pointer to the Class.
+
+   * @param[out] ck_val   This Contains the pointer to the Class for
+   which memory has to be allocated.
+   * @param[in]  dt_type  Describes Configiration Information.
+   * @param[in]  tbl      Describes the Destination table Information.
+
+   * @retval UPLL_RC_SUCCESS  Successfull completion.
+   * @retval  UPLL_RC_ERR_GENERIC  Failure
+   */
+  upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
+                     MoMgrTables tbl);
+
+  /**
+   * @brief  Gets the valid array position of the variable in the value
+   *         structure from the table in the specified configuration
+   *         For this KT this function will always return sucess since
+   *         there is not Valid array associated in the value structure
+   *
+   * @param[in]     val      pointer to the value structure
+   * @param[in]     indx     database index for the variable
+   * @param[out]    valid    position of the variable in the valid array -
+   *                          NULL if valid does not exist.
+   * @param[in]     dt_type  specifies the configuration
+   * @param[in]     tbl      specifies the table containing the given value
+   *
+   * @retval  UPLL_RC_SUCCESS Successful Completion
+   **/
+  upll_rc_t GetValid(void*val,
+                     uint64_t indx,
+                     uint8_t *&valid,
+                     upll_keytype_datatype_t dt_type,
+                     MoMgrTables tbl) {
+    return UPLL_RC_SUCCESS;
+  }
+
+  /**
+   * @Brief This API is used to check the  object availability
+   * in  CANDIDATE DB
+   *
+   * @param[in] ikey                          Pointer to ConfigKeyVal Class.
+   * @param[in] dt_type                       Configuration information.
+   * @param[in] dmi                           Pointer to DalDmlIntf Class.
+   *
+   * @retval    UPLL_RC_SUCCESS               Successful completion.
+   * @retval    UPLL_RC_ERR_GENERIC           Generic Error code.
+   * @retval    UPLL_RC_ERR_NO_SUCH_INSTANCE  No Record in DB.
+   * @retval    UPLL_RC_ERR_INSTANCE_EXISTS   Record exists in DB.
+   */
+  upll_rc_t IsReferenced(ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
+                         DalDmlIntf *dmi);
+
+  /**
+   * @brief  Validates the Attribute of a Particular Class.
+   *
+   * @param[in]  kval  This contains the Class to which the fields
+   *                   have to be validated.
+   * @param[in]  dmi   Pointer to DbInterface
+   *
+   * @retval  UPLL_RC_SUCCESS      Successfull Completion.
+   * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
+   */
+  upll_rc_t ValidateAttribute(ConfigKeyVal *kval,
+                              DalDmlIntf *dmi,
+                              IpcReqRespHeader *req = NULL);
+
+  /**
+   * @brief  Method used to Duplicate the ConfigkeyVal.
+
+   * @param[out] okey  This Contains the pointer to
+   the Class for which fields
+   have to be updated with values
+   from the Request.
+   * @param[in]  req   This Contains the pointer to the
+   Class which is used for the Duplication .
+
+   * @retval UPLL_RC_SUCCESS  Successfull completion.
+   * @retval UPLL_RC_ERR_GENERIC  Failure
+   */
+  upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
+                            MoMgrTables tbl);
+
+  /**
+   * @brief  Method used for Validation before Merge.
+
+   * @param[in] ikey      This Contains the pointer to the
+   Class for which fields have to
+   be Validated before the Merge.
+   * @param[in] keytype   Describes the keyType Information.
+   * @param[in] dmi       Pointer to DalDmlIntf Class.
+   * @param[in] ctrlr_id  Describes the Controller Name.
+
+   * @retval UPLL_RC_SUCCESS  Successfull completion.
+   * @retval UPLL_RC_ERR_MERGE_CONFLICT  MetgeConflict
+   */
+  upll_rc_t MergeValidate(unc_key_type_t keytype, const char *ctrlr_id,
+                          ConfigKeyVal *ikey, DalDmlIntf *dmi);
+
+  /**
+   * @brief  Method used for rename Operation.
+
+   * @param[in] req       Describes RequestResponderHeaderClass.
+   * @param[in] ikey      Pointer to ConfigKeyVal Class.
+   * @param[in] dmi       Pointer to DalDmlIntf Class.
+   * @param[in] ctrlr_id  Describes the Controller Name.
+
+   * @retval UPLL_RC_SUCCESS  Successfull completion.
+   * @retval UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT  No Operation Allowed
+   */
+  upll_rc_t RenameMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
+                     DalDmlIntf *dmi, const char *ctrlr_id);
+
+  /**
+   * @brief  Method used for Update Operation.
+
+   * @param[in] req   Describes RequestResponderHeaderClass.
+   * @param[in] ikey  Pointer to ConfigKeyVal Class.
+   * @param[in] dmi   Pointer to DalDmlIntf Class.
+
+   * @retval UPLL_RC_SUCCESS Successfull completion.
+   * @retval UPLL_RC_ERR_GENERIC  Generic failure
+   */
+  upll_rc_t UpdateMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
+                     DalDmlIntf *dmi);
+  /**
+   * @Brief Validates the syntax of the specified key and value structure
+   *        for KT_VRTIF_FLOWFILTER keytype
+   *
+   * @param[in] IpcReqRespHeader contains first 8 fields of input request structure
+   * @param[in] ConfigKeyVal key and value structure.
+   *
+   * @retval UPLL_RC_SUCCESS              Successful.
+   * @retval UPLL_RC_ERR_CFG_SYNTAX       Syntax error.
+   * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE key_vrtif_flowfilter is not available.
+   * @retval UPLL_RC_ERR_GENERIC          Generic failure.
+   */
+  upll_rc_t ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *key);
+
+  /**
+   * @Brief Validates the syntax for KT_VRTIF_FLOWFILTER keytype key structure.
+   *
+   * @param[in] key_vbrif_flowfilter KT_VRTIF_FLOWFILTER key structure.
+   *
+   * @retval UPLL_RC_SUCCESS  validation succeeded.
+   * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
+   */
+  upll_rc_t ValidateVrtIfFlowfilterKey(
+      key_vrt_if_flowfilter_t* key_vrt_if_flowfilter,
+      unc_keytype_operation_t op);
+  /**
+   * @Brief Method used to get the Bind Info Structure for Rename Purpose.
+   *
+   * @param[in]  key_type  Describes the KT Information.
+   * @param[in]  nattr     Describes the Tbl For which the Operation is
+   *                       Targeted.
+   * @param[in]  tbl       Describes the Table Information
+   *
+   * @retval  pfc_true  Successful Completion.
+   * @retval  pfc_fasle  Failure.
+   */
+  bool GetRenameKeyBindInfo(unc_key_type_t key_type,
+                            BindInfo *&binfo,
+                            int &nattr,
+                            MoMgrTables tbl);
+  /**
+   * @brief  Method to Copy The ConfigkeyVal with the Input Key.
+   *
+   * @param[out]  okey  Pointer to ConfigKeyVal Class for which attributes
+   *                    have to be copied.
+   * @param[in]   ikey  Pointer to ConfigKeyVal Class.
+   *
+   * @retval  UPLL_RC_SUCCESS  Successfull Completion.
+   * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
+   */
+  upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey,
+                            ConfigKeyVal *ikey);
+  /**
+   * @Brief Checks if the specified key type(KT_VRTIF_FLOWFILTER_ENTRY) and
+   *        associated attributes are supported on the given controller,
+   *        based on the valid flag
+   *
+   * @param[in] IpcReqRespHeader  contains first 8 fields of input
+   *                              request structure
+   * @param[in] ConfigKeyVal      contains key and value structure.
+   * @param[in] ctrlr_name       specifies The Ctrl Name
+   *
+   * @retval  UPLL_RC_SUCCESS              Validation succeeded.
+   * @retval  UPLL_RC_ERR_GENERIC          Validation failure.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION1  Option1 is not valid.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION2  Option2 is not valid.
+   */
+  upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *ikey,
+                               const char* ctrlr_name = NULL);
+
+  /**
+   * @brief Method To Compare the Valid Check of Attributes
+   *
+   * @param[out]  val1   Pointer to ConfigKeyVal Class which contains only Valid Attributes
+   * @param[in]   val2   Pointer to ConfigKeyVal Class.
+   * @param[in]   audit  If true,Audit Process.
+   *
+   * @return Void Function.
+   */
+  bool CompareValidValue(void *&val1, void *val2, bool audit) {
+    return false;
+  }
+
+  /**
+   * @brief  Method to check validity of Key
+   *
+   * @param[in]   ConfigKeyVal  input COnfigKeyVal
+   * @param[out]  index          DB Column Index
+   *
+   * @return  TRUE   Success
+   * @retval  FALSE  Failure
+   **/
+  bool IsValidKey(void *key,
+                  uint64_t index);
+
+  /**
+   * @brief  Method used for GetParentConfigKey Operation.
+   *
+   * @param[out]  okey        Pointer to ConfigKeyVal Class.
+   * @param[in]   parent_key  Pointer to ConfigKeyVal Class.
+   *
+   * @retval  UPLL_RC_SUCCESS      Successfull completion.
+   * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
+   */
+  upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey,
+                               ConfigKeyVal *ikey);
+
+  /**
+   * @brief  Method used for ReadDetail Operation.
+   *
+   * @param[in,out]  ikey       Pointer to ConfigKeyVal Class.
+   * @param[in]      dt_type    Describes Configiration Information.
+   * @param[in]      op         Describes the Type of Opeartion.
+   * @param[in]      dbop       Describes the dbop Type
+   * @param[in]      dmi        Pointer to DalDmlIntf Class.
+   * @param[in]      domain_id  Pointer to domain_id.
+   * @param[in]      dctrlr_id  Pointer to ctrlr_id.
+   *
+   * @retval  UPLL_RC_SUCCESS      Successfull completion.
+   * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
+   */
+
+  upll_rc_t ReadDetail(ConfigKeyVal *ikey,
+                       ConfigKeyVal *dup_key,
+                       IpcResponse *ipc_response,
+                       upll_keytype_datatype_t dt_type,
+                       unc_keytype_operation_t op,
+                       DbSubOp dbop,
                        DalDmlIntf *dmi);
-    /**
-     * @Brief Validates the syntax of the specified key and value structure
-     *        for KT_VRTIF_FLOWFILTER keytype
-     *
-     * @param[in] IpcReqRespHeader contains first 8 fields of input request structure
-     * @param[in] ConfigKeyVal key and value structure.
-     *
-     * @retval UPLL_RC_SUCCESS              Successful.
-     * @retval UPLL_RC_ERR_CFG_SYNTAX       Syntax error.
-     * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE key_vrtif_flowfilter is not available.
-     * @retval UPLL_RC_ERR_GENERIC          Generic failure.
-     */
-     upll_rc_t ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *key);
-
-     /**
-     * @Brief Validates the syntax for KT_VRTIF_FLOWFILTER keytype key structure.
-     *
-     * @param[in] key_vbrif_flowfilter KT_VRTIF_FLOWFILTER key structure.
-     *
-     * @retval UPLL_RC_SUCCESS  validation succeeded.
-     * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
-     */
-     upll_rc_t ValidateVrtIfFlowfilterKey(
-         key_vrt_if_flowfilter_t* key_vrt_if_flowfilter,
-         unc_keytype_operation_t op);
-     /**
-     * @Brief Method used to get the Bind Info Structure for Rename Purpose.
-     *
-     * @param[in]  key_type  Describes the KT Information.
-     * @param[in]  nattr     Describes the Tbl For which the Operation is
-     *                       Targeted.
-     * @param[in]  tbl       Describes the Table Information
-     *
-     * @retval  pfc_true  Successful Completion.
-     * @retval  pfc_fasle  Failure.
-     */
-     bool GetRenameKeyBindInfo(unc_key_type_t key_type,
-                              BindInfo *&binfo,
-                              int &nattr,
-                              MoMgrTables tbl);
-    /**
-     * @brief  Method to Copy The ConfigkeyVal with the Input Key.
-     *
-     * @param[out]  okey  Pointer to ConfigKeyVal Class for which attributes
-     *                    have to be copied.
-     * @param[in]   ikey  Pointer to ConfigKeyVal Class.
-     *
-     * @retval  UPLL_RC_SUCCESS  Successfull Completion.
-     * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
-     */
-    upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey,
-                              ConfigKeyVal *ikey);
-     /**
-    * @Brief Checks if the specified key type(KT_VRTIF_FLOWFILTER_ENTRY) and
-    *        associated attributes are supported on the given controller,
-    *        based on the valid flag
-    *
-    * @param[in] IpcReqRespHeader  contains first 8 fields of input
-    *                              request structure
-    * @param[in] ConfigKeyVal      contains key and value structure.
-    * @param[in] ctrlr_name       specifies The Ctrl Name
-    *
-    * @retval  UPLL_RC_SUCCESS              Validation succeeded.
-    * @retval  UPLL_RC_ERR_GENERIC          Validation failure.
-    * @retval  UPLL_RC_ERR_INVALID_OPTION1  Option1 is not valid.
-    * @retval  UPLL_RC_ERR_INVALID_OPTION2  Option2 is not valid.
-    */
-    upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                                   const char* ctrlr_name = NULL);
-
-   /**
-    * @brief Method To Compare the Valid Check of Attributes
-    *
-    * @param[out]  val1   Pointer to ConfigKeyVal Class which contains only Valid Attributes
-    * @param[in]   val2   Pointer to ConfigKeyVal Class.
-    * @param[in]   audit  If true,Audit Process.
-    *
-    * @return Void Function.
-    */
-    bool CompareValidValue(void *&val1, void *val2, bool audit) {
-      return false;
-    }
-
-    /**
-     * @brief  Method to check validity of Key
-     *
-     * @param[in]   ConfigKeyVal  input COnfigKeyVal
-     * @param[out]  index          DB Column Index
-     *
-     * @return  TRUE   Success
-     * @retval  FALSE  Failure
-     **/
-    bool IsValidKey(void *key,
-                   uint64_t index);
-
-     /**
-     * @brief  Method used for GetParentConfigKey Operation.
-     *
-     * @param[out]  okey        Pointer to ConfigKeyVal Class.
-     * @param[in]   parent_key  Pointer to ConfigKeyVal Class.
-     *
-     * @retval  UPLL_RC_SUCCESS      Successfull completion.
-     * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
-     */
-    upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey,
-                                 ConfigKeyVal *ikey);
-
-     /**
-     * @brief  Method used for ReadDetail Operation.
-     *
-     * @param[in,out]  ikey       Pointer to ConfigKeyVal Class.
-     * @param[in]      dt_type    Describes Configiration Information.
-     * @param[in]      op         Describes the Type of Opeartion.
-     * @param[in]      dbop       Describes the dbop Type
-     * @param[in]      dmi        Pointer to DalDmlIntf Class.
-     * @param[in]      domain_id  Pointer to domain_id.
-     * @param[in]      dctrlr_id  Pointer to ctrlr_id.
-     *
-     * @retval  UPLL_RC_SUCCESS      Successfull completion.
-     * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
-     */
-
-     upll_rc_t ReadDetail(ConfigKeyVal *ikey,
-                          ConfigKeyVal *dup_key,
-                          IpcResponse *ipc_response,
-                          upll_keytype_datatype_t dt_type,
-                          unc_keytype_operation_t op,
-                          DbSubOp dbop,
+  /**
+   * @brief  Method used for ReadSibling Operation.
+   *
+   * @param[in]      req   Describes RequestResponderHeaderClass.
+   * @param[in,out]  ikey  Pointer to ConfigKeyVal Class.
+   * @param[in]      dmi   Pointer to DalDmlIntf Class.
+   *
+   * @retval  UPLL_RC_SUCCESS      Successfull completion.
+   * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
+   */
+
+  upll_rc_t ReadSiblingMo(IpcReqRespHeader *req,
+                          ConfigKeyVal *ikey,
+                          bool begin,
                           DalDmlIntf *dmi);
-     /**
-     * @brief  Method used for ReadSibling Operation.
-     *
-     * @param[in]      req   Describes RequestResponderHeaderClass.
-     * @param[in,out]  ikey  Pointer to ConfigKeyVal Class.
-     * @param[in]      dmi   Pointer to DalDmlIntf Class.
-     *
-     * @retval  UPLL_RC_SUCCESS      Successfull completion.
-     * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
-     */
-
-     upll_rc_t ReadSiblingMo(IpcReqRespHeader *req,
-                             ConfigKeyVal *ikey,
-                             bool begin,
-                             DalDmlIntf *dmi);
-
-    upll_rc_t SetVlinkPortmapConfiguration(ConfigKeyVal *ikey,
-                                           upll_keytype_datatype_t dt_type,
-                                           DalDmlIntf *dmi,
-                                           InterfacePortMapInfo flag,
-                                           unc_keytype_operation_t oper);
-
-    upll_rc_t TxUpdateController(unc_key_type_t keytype,
-                                        uint32_t session_id,
-                                        uint32_t config_id,
-                                        uuc::UpdateCtrlrPhase phase,
-                                        set<string> *affected_ctrlr_set,
-                                        DalDmlIntf *dmi,
-                                        ConfigKeyVal **err_ckv);
-
-    upll_rc_t CreateCandidateMo(IpcReqRespHeader *req,
-                                ConfigKeyVal *ikey,
-                                DalDmlIntf *dmi);
-
-
-    upll_rc_t GetControllerDomainID(ConfigKeyVal *ikey,
-                                    upll_keytype_datatype_t dt_type,
-                                    DalDmlIntf *dmi);
-    upll_rc_t ConstructReadDetailResponse(ConfigKeyVal *ikey,
-                                          ConfigKeyVal *drv_resp_ckv,
-                                          ConfigKeyVal **okey);
-
-   upll_rc_t AuditUpdateController(unc_key_type_t keytype,
-                             const char *ctrlr_id,
-                             uint32_t session_id,
-                             uint32_t config_id,
-                             uuc::UpdateCtrlrPhase phase,
-                             bool *ctrlr_affected,
-                             DalDmlIntf *dmi);
-
-   upll_rc_t CreateAuditMoImpl(ConfigKeyVal *ikey,
-                                   DalDmlIntf *dmi,
-                                   const char *ctrlr_id);
+
+  upll_rc_t SetVlinkPortmapConfiguration(ConfigKeyVal *ikey,
+                                         upll_keytype_datatype_t dt_type,
+                                         DalDmlIntf *dmi,
+                                         InterfacePortMapInfo flag,
+                                         unc_keytype_operation_t oper);
+
+  upll_rc_t TxUpdateController(unc_key_type_t keytype,
+                               uint32_t session_id,
+                               uint32_t config_id,
+                               uuc::UpdateCtrlrPhase phase,
+                               set<string> *affected_ctrlr_set,
+                               DalDmlIntf *dmi,
+                               ConfigKeyVal **err_ckv);
+
+  upll_rc_t CreateCandidateMo(IpcReqRespHeader *req,
+                              ConfigKeyVal *ikey,
+                              DalDmlIntf *dmi,
+                              bool restore_flag = false);
+
+
+  upll_rc_t GetControllerDomainID(ConfigKeyVal *ikey,
+                                  upll_keytype_datatype_t dt_type,
+                                  DalDmlIntf *dmi);
+  upll_rc_t ConstructReadDetailResponse(ConfigKeyVal *ikey,
+                                        ConfigKeyVal *drv_resp_ckv,
+                                        ConfigKeyVal **okey);
+
+  upll_rc_t AuditUpdateController(unc_key_type_t keytype,
+                                  const char *ctrlr_id,
+                                  uint32_t session_id,
+                                  uint32_t config_id,
+                                  uuc::UpdateCtrlrPhase phase,
+                                  DalDmlIntf *dmi,
+                                  ConfigKeyVal **err_ckv,
+                                  KTxCtrlrAffectedState *ctrlr_affected);
+
+  upll_rc_t CreateAuditMoImpl(ConfigKeyVal *ikey,
+                              DalDmlIntf *dmi,
+                              const char *ctrlr_id);
 
   upll_rc_t DeleteChildrenPOM(ConfigKeyVal *ikey,
                               upll_keytype_datatype_t dt_type,
@@ -455,26 +458,26 @@ class VrtIfFlowFilterMoMgr : public MoMgrImpl {
                           DalDmlIntf *dmi,
                           IpcReqRespHeader *req);
 
-  public:
-    VrtIfFlowFilterMoMgr();
-    ~VrtIfFlowFilterMoMgr() {
-      for (int i = 0; i < ntable; i++) {
-        if (table[i]) {
-          delete table[i];
-        }
+ public:
+  VrtIfFlowFilterMoMgr();
+  ~VrtIfFlowFilterMoMgr() {
+    for (int i = 0; i < ntable; i++) {
+      if (table[i]) {
+        delete table[i];
       }
-      delete[] table;
     }
+    delete[] table;
+  }
 };
 typedef struct val_vrt_if_ctrlr {
-    uint8_t valid[2];
-    val_oper_status oper_status;
-    val_alarm_status alarm_status;
-    unc_keytype_configstatus_t cs_row_status;
-    unc_keytype_configstatus_t cs_description;
-    uint8_t flags;
+  uint8_t valid[2];
+  val_oper_status oper_status;
+  val_alarm_status alarm_status;
+  unc_keytype_configstatus_t cs_row_status;
+  unc_keytype_configstatus_t cs_description;
+  uint8_t flags;
 } val_vrt_if_ctrlr_t;
-}  // kt_momgr
-}  // upll
-}  // unc
+}  // namespace kt_momgr
+}  // namespace upll
+}  // namespace unc
 #endif  // MODULES_UPLL_VRT_IF_FLOWFILTER_MOMGR_HH_
index 58161d698ead5035677b69535fa98c2cdbf0080e..df6094348ccb4213e52efc8272f03a26cfd9f0d3 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -17,101 +17,101 @@ namespace upll {
 namespace kt_momgr {
 
 BindInfo VrtIfMoMgr::vrt_if_bind_info[] = {
-    { uudst::vrouter_interface::kDbiVtnName, CFG_KEY, offsetof(
-        key_vrt_if, vrt_key.vtn_key.vtn_name),
-      uud::kDalChar, 32 },
-    { uudst::vrouter_interface::kDbiVrouterName, CFG_KEY, offsetof(
-        key_vrt_if, vrt_key.vrouter_name),
-      uud::kDalChar, 32 },
-    { uudst::vrouter_interface::kDbiIfName, CFG_KEY, offsetof(key_vrt_if,
-                                                              if_name),
-      uud::kDalChar, 32 },
-    { uudst::vrouter_interface::kDbiDesc, CFG_VAL, offsetof(val_vrt_if,
-                                                            description),
-      uud::kDalChar, 128 },
-    { uudst::vrouter_interface::kDbiIpAddr, CFG_VAL, offsetof(val_vrt_if,
-                                                              ip_addr),
-      uud::kDalUint32, 1 },
-    { uudst::vrouter_interface::kDbiMask, CFG_VAL, offsetof(val_vrt_if,
-                                                            prefixlen),
-      uud::kDalUint8, 1 },
-    { uudst::vrouter_interface::kDbiMacAddr, CFG_VAL, offsetof(val_vrt_if,
-                                                               macaddr),
-      uud::kDalUint8, 6 },
-    { uudst::vrouter_interface::kDbiAdminStatus, CFG_VAL, offsetof(
-        val_vrt_if, admin_status),
-      uud::kDalUint8, 1 },
-    { uudst::vrouter_interface::kDbiOperStatus, ST_VAL, offsetof(
-        val_db_vrt_if_st, vrt_if_val_st.oper_status),
-      uud::kDalUint8, 1 },
-    { uudst::vrouter_interface::kDbiDownCount, ST_VAL, offsetof(
-        val_db_vrt_if_st, down_count),
-      uud::kDalUint32, 1 },
-    { uudst::vrouter_interface::kDbiCtrlrName, CK_VAL, offsetof(key_user_data,
-                                                                ctrlr_id),
-      uud::kDalChar, 32 },
-    { uudst::vrouter_interface::kDbiDomainId, CK_VAL, offsetof(key_user_data,
-                                                               domain_id),
-      uud::kDalChar, 32 },
-    { uudst::vrouter_interface::kDbiVrtIfFlags, CK_VAL, offsetof(key_user_data,
-                                                                 flags),
-      uud::kDalUint8, 1 },
-    { uudst::vrouter_interface::kDbiValidDesc, CFG_META_VAL, offsetof(
-        val_vrt_if, valid[UPLL_IDX_DESC_VI]),
-      uud::kDalUint8, 1 },
-    { uudst::vrouter_interface::kDbiValidIpAddr, CFG_META_VAL, offsetof(
-        val_vrt_if, valid[UPLL_IDX_IP_ADDR_VI]),
-      uud::kDalUint8, 1 },
-    { uudst::vrouter_interface::kDbiValidMask, CFG_META_VAL, offsetof(
-        val_vrt_if, valid[UPLL_IDX_PREFIXLEN_VI]),
-      uud::kDalUint8, 1 },
-    { uudst::vrouter_interface::kDbiValidMacAddr, CFG_META_VAL, offsetof(
-        val_vrt_if, valid[UPLL_IDX_MAC_ADDR_VI]),
-      uud::kDalUint8, 1 },
-    { uudst::vrouter_interface::kDbiValidAdminStatus, CFG_DEF_VAL, offsetof(
-        val_vrt_if, valid[UPLL_IDX_ADMIN_ST_VI]),
-      uud::kDalUint8, 1 },
-    { uudst::vrouter_interface::kDbiValidOperStatus, ST_META_VAL, offsetof(
-        val_vrt_if_st, valid[UPLL_IDX_OPER_STATUS_VRTIS]),
-      uud::kDalUint8, 1 },
-    { uudst::vrouter_interface::kDbiCsRowstatus, CS_VAL, offsetof(
-        val_vrt_if, cs_row_status),
-      uud::kDalUint8, 1 },
-    { uudst::vrouter_interface::kDbiCsDesc, CS_VAL, offsetof(
-        val_vrt_if, cs_attr[UPLL_IDX_DESC_VI]),
-      uud::kDalUint8, 1 },
-    { uudst::vrouter_interface::kDbiCsIpAddr, CS_VAL, offsetof(
-        val_vrt_if, cs_attr[UPLL_IDX_IP_ADDR_VI]),
-      uud::kDalUint8, 1 },
-    { uudst::vrouter_interface::kDbiCsMask, CS_VAL, offsetof(
-        val_vrt_if, cs_attr[UPLL_IDX_PREFIXLEN_VI]),
-      uud::kDalUint8, 1 },
-    { uudst::vrouter_interface::kDbiCsMacAddr, CS_VAL, offsetof(
-        val_vrt_if, cs_attr[UPLL_IDX_MAC_ADDR_VI]),
-      uud::kDalUint8, 1 },
-    { uudst::vrouter_interface::kDbiCsAdminStatus, CS_VAL, offsetof(
-        val_vrt_if, cs_attr[UPLL_IDX_ADMIN_ST_VI]),
-      uud::kDalUint8, 1 } };
+  { uudst::vrouter_interface::kDbiVtnName, CFG_KEY, offsetof(
+          key_vrt_if, vrt_key.vtn_key.vtn_name),
+  uud::kDalChar, 32 },
+  { uudst::vrouter_interface::kDbiVrouterName, CFG_KEY, offsetof(
+          key_vrt_if, vrt_key.vrouter_name),
+  uud::kDalChar, 32 },
+  { uudst::vrouter_interface::kDbiIfName, CFG_KEY, offsetof(key_vrt_if,
+                                                            if_name),
+  uud::kDalChar, 32 },
+  { uudst::vrouter_interface::kDbiDesc, CFG_VAL, offsetof(val_vrt_if,
+                                                          description),
+  uud::kDalChar, 128 },
+  { uudst::vrouter_interface::kDbiIpAddr, CFG_VAL, offsetof(val_vrt_if,
+                                                            ip_addr),
+  uud::kDalUint32, 1 },
+  { uudst::vrouter_interface::kDbiMask, CFG_VAL, offsetof(val_vrt_if,
+                                                          prefixlen),
+  uud::kDalUint8, 1 },
+  { uudst::vrouter_interface::kDbiMacAddr, CFG_VAL, offsetof(val_vrt_if,
+                                                             macaddr),
+  uud::kDalUint8, 6 },
+  { uudst::vrouter_interface::kDbiAdminStatus, CFG_VAL, offsetof(
+          val_vrt_if, admin_status),
+  uud::kDalUint8, 1 },
+  { uudst::vrouter_interface::kDbiOperStatus, ST_VAL, offsetof(
+          val_db_vrt_if_st, vrt_if_val_st.oper_status),
+  uud::kDalUint8, 1 },
+  { uudst::vrouter_interface::kDbiDownCount, ST_VAL, offsetof(
+          val_db_vrt_if_st, down_count),
+  uud::kDalUint32, 1 },
+  { uudst::vrouter_interface::kDbiCtrlrName, CK_VAL, offsetof(key_user_data,
+                                                              ctrlr_id),
+  uud::kDalChar, 32 },
+  { uudst::vrouter_interface::kDbiDomainId, CK_VAL, offsetof(key_user_data,
+                                                             domain_id),
+  uud::kDalChar, 32 },
+  { uudst::vrouter_interface::kDbiVrtIfFlags, CK_VAL, offsetof(key_user_data,
+                                                               flags),
+  uud::kDalUint8, 1 },
+  { uudst::vrouter_interface::kDbiValidDesc, CFG_META_VAL, offsetof(
+          val_vrt_if, valid[UPLL_IDX_DESC_VI]),
+  uud::kDalUint8, 1 },
+  { uudst::vrouter_interface::kDbiValidIpAddr, CFG_META_VAL, offsetof(
+          val_vrt_if, valid[UPLL_IDX_IP_ADDR_VI]),
+  uud::kDalUint8, 1 },
+  { uudst::vrouter_interface::kDbiValidMask, CFG_META_VAL, offsetof(
+          val_vrt_if, valid[UPLL_IDX_PREFIXLEN_VI]),
+  uud::kDalUint8, 1 },
+  { uudst::vrouter_interface::kDbiValidMacAddr, CFG_META_VAL, offsetof(
+          val_vrt_if, valid[UPLL_IDX_MAC_ADDR_VI]),
+  uud::kDalUint8, 1 },
+  { uudst::vrouter_interface::kDbiValidAdminStatus, CFG_DEF_VAL, offsetof(
+          val_vrt_if, valid[UPLL_IDX_ADMIN_ST_VI]),
+  uud::kDalUint8, 1 },
+  { uudst::vrouter_interface::kDbiValidOperStatus, ST_META_VAL, offsetof(
+          val_vrt_if_st, valid[UPLL_IDX_OPER_STATUS_VRTIS]),
+  uud::kDalUint8, 1 },
+  { uudst::vrouter_interface::kDbiCsRowstatus, CS_VAL, offsetof(
+          val_vrt_if, cs_row_status),
+  uud::kDalUint8, 1 },
+  { uudst::vrouter_interface::kDbiCsDesc, CS_VAL, offsetof(
+          val_vrt_if, cs_attr[UPLL_IDX_DESC_VI]),
+  uud::kDalUint8, 1 },
+  { uudst::vrouter_interface::kDbiCsIpAddr, CS_VAL, offsetof(
+          val_vrt_if, cs_attr[UPLL_IDX_IP_ADDR_VI]),
+  uud::kDalUint8, 1 },
+  { uudst::vrouter_interface::kDbiCsMask, CS_VAL, offsetof(
+          val_vrt_if, cs_attr[UPLL_IDX_PREFIXLEN_VI]),
+  uud::kDalUint8, 1 },
+  { uudst::vrouter_interface::kDbiCsMacAddr, CS_VAL, offsetof(
+          val_vrt_if, cs_attr[UPLL_IDX_MAC_ADDR_VI]),
+  uud::kDalUint8, 1 },
+  { uudst::vrouter_interface::kDbiCsAdminStatus, CS_VAL, offsetof(
+          val_vrt_if, cs_attr[UPLL_IDX_ADMIN_ST_VI]),
+  uud::kDalUint8, 1 } };
 
 BindInfo VrtIfMoMgr::key_vrt_if_maintbl_update_bind_info[] = {
-    { uudst::vrouter_interface::kDbiVtnName, CFG_MATCH_KEY, offsetof(
-        key_vrt_if, vrt_key.vtn_key.vtn_name),
-      uud::kDalChar, kMaxLenVtnName + 1 },
-    { uudst::vrouter_interface::kDbiVrouterName, CFG_MATCH_KEY, offsetof(
-        key_vrt_if, vrt_key.vrouter_name),
-      uud::kDalChar, kMaxLenVnodeName + 1 },
-    { uudst::vrouter_interface::kDbiIfName, CFG_MATCH_KEY, offsetof(
-        key_vrt_if, if_name),
-      uud::kDalChar, kMaxLenInterfaceName + 1 },
-    { uudst::vrouter_interface::kDbiVtnName, CFG_INPUT_KEY, offsetof(
-        key_rename_vnode_info_t, new_unc_vtn_name),
-      uud::kDalChar, kMaxLenVtnName + 1 },
-    { uudst::vrouter_interface::kDbiVrouterName, CFG_INPUT_KEY, offsetof(
-        key_rename_vnode_info_t, new_unc_vnode_name),
-      uud::kDalChar, kMaxLenVnodeName + 1 },
-    { uudst::vrouter_interface::kDbiVrtIfFlags, CK_VAL, offsetof(
-        key_user_data, flags),
-      uud::kDalUint8, 1 }
+  { uudst::vrouter_interface::kDbiVtnName, CFG_MATCH_KEY, offsetof(
+          key_vrt_if, vrt_key.vtn_key.vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1 },
+  { uudst::vrouter_interface::kDbiVrouterName, CFG_MATCH_KEY, offsetof(
+          key_vrt_if, vrt_key.vrouter_name),
+  uud::kDalChar, kMaxLenVnodeName + 1 },
+  { uudst::vrouter_interface::kDbiIfName, CFG_MATCH_KEY, offsetof(
+          key_vrt_if, if_name),
+  uud::kDalChar, kMaxLenInterfaceName + 1 },
+  { uudst::vrouter_interface::kDbiVtnName, CFG_INPUT_KEY, offsetof(
+          key_rename_vnode_info_t, new_unc_vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1 },
+  { uudst::vrouter_interface::kDbiVrouterName, CFG_INPUT_KEY, offsetof(
+          key_rename_vnode_info_t, new_unc_vnode_name),
+  uud::kDalChar, kMaxLenVnodeName + 1 },
+  { uudst::vrouter_interface::kDbiVrtIfFlags, CK_VAL, offsetof(
+          key_user_data, flags),
+  uud::kDalUint8, 1 }
 };
 unc_key_type_t VrtIfMoMgr::vrt_if_child[] = { UNC_KT_VRTIF_FLOWFILTER };
 
@@ -119,8 +119,12 @@ VrtIfMoMgr::VrtIfMoMgr() {
   UPLL_FUNC_TRACE;
   ntable = MAX_MOMGR_TBLS;
   table = new Table *[ntable];
-  table[MAINTBL] = new Table(uudst::kDbiVrtIfTbl, UNC_KT_VRT_IF,
-      vrt_if_bind_info, IpctSt::kIpcStKeyVrtIf, IpctSt::kIpcStValVrtIf,
+  table[MAINTBL] = new Table(
+      uudst::kDbiVrtIfTbl,
+      UNC_KT_VRT_IF,
+      vrt_if_bind_info,
+      IpctSt::kIpcStKeyVrtIf,
+      IpctSt::kIpcStValVrtIf,
       uudst::vrouter_interface::kDbiVrtIfNumCols);
   table[RENAMETBL] = NULL;
   table[CTRLRTBL] = NULL;
@@ -148,7 +152,7 @@ upll_rc_t VrtIfMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   if (ikey->get_key_type() != UNC_KT_VRT_IF) result_code =
-      UPLL_RC_ERR_CFG_SYNTAX;
+    UPLL_RC_ERR_CFG_SYNTAX;
   return result_code;
 }
 
@@ -159,8 +163,8 @@ bool VrtIfMoMgr::IsValidKey(void *key, uint64_t index) {
   switch (index) {
     case uudst::vrouter_interface::kDbiVtnName:
       ret_val = ValidateKey(reinterpret_cast<char *>
-                    (vrtif_key->vrt_key.vtn_key.vtn_name),
-                     kMinLenVtnName, kMaxLenVtnName);
+                            (vrtif_key->vrt_key.vtn_key.vtn_name),
+                            kMinLenVtnName, kMaxLenVtnName);
       if (ret_val != UPLL_RC_SUCCESS) {
         UPLL_LOG_INFO("VTN Name is not valid(%d)", ret_val);
         return false;
@@ -168,7 +172,7 @@ bool VrtIfMoMgr::IsValidKey(void *key, uint64_t index) {
       break;
     case uudst::vrouter_interface::kDbiVrouterName:
       ret_val = ValidateKey(reinterpret_cast<char *>
-                           (vrtif_key->vrt_key.vrouter_name),
+                            (vrtif_key->vrt_key.vrouter_name),
                             kMinLenVnodeName, kMaxLenVnodeName);
       if (ret_val != UPLL_RC_SUCCESS) {
         UPLL_LOG_TRACE("VRouter Name is not valid(%d)", ret_val);
@@ -177,8 +181,8 @@ bool VrtIfMoMgr::IsValidKey(void *key, uint64_t index) {
       break;
     case uudst::vrouter_interface::kDbiIfName:
       ret_val = ValidateKey(reinterpret_cast<char *>
-                        (vrtif_key->if_name), kMinLenInterfaceName,
-                         kMaxLenInterfaceName);
+                            (vrtif_key->if_name), kMinLenInterfaceName,
+                            kMaxLenInterfaceName);
       if (ret_val != UPLL_RC_SUCCESS) {
         UPLL_LOG_TRACE("VRouterInterface Name is not valid(%d)", ret_val);
         return false;
@@ -200,17 +204,17 @@ upll_rc_t VrtIfMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
   if (parent_key == NULL) {
     vrt_key_if = reinterpret_cast<key_vrt_if *>
         (ConfigKeyVal::Malloc(sizeof(key_vrt_if)));
-    if (okey) delete okey; 
+    if (okey) delete okey;
     okey = new ConfigKeyVal(UNC_KT_VRT_IF, IpctSt::kIpcStKeyVrtIf, vrt_key_if,
                             NULL);
     return UPLL_RC_SUCCESS;
   } else {
-     pkey = parent_key->get_key();
+    pkey = parent_key->get_key();
   }
   if (!pkey) return UPLL_RC_ERR_GENERIC;
   if (okey) {
     if (okey->get_key_type() != UNC_KT_VRT_IF)
-       return UPLL_RC_ERR_GENERIC;
+      return UPLL_RC_ERR_GENERIC;
     vrt_key_if = reinterpret_cast<key_vrt_if *>(okey->get_key());
     if (!vrt_key_if) return UPLL_RC_ERR_GENERIC;
   } else {
@@ -221,71 +225,75 @@ upll_rc_t VrtIfMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
   switch (keytype) {
     case UNC_KT_VTN:
       uuu::upll_strncpy(vrt_key_if->vrt_key.vtn_key.vtn_name,
-           reinterpret_cast<key_vtn *>(pkey)->vtn_name,
-            (kMaxLenVtnName+1));
+                        reinterpret_cast<key_vtn *>(pkey)->vtn_name,
+                        (kMaxLenVtnName+1));
       *(vrt_key_if->vrt_key.vrouter_name) = *"";
       break;
     case UNC_KT_VROUTER:
       uuu::upll_strncpy(vrt_key_if->vrt_key.vtn_key.vtn_name,
-          reinterpret_cast<key_vrt *>(pkey)->vtn_key.vtn_name,
-        (kMaxLenVtnName+1));
+                        reinterpret_cast<key_vrt *>(pkey)->vtn_key.vtn_name,
+                        (kMaxLenVtnName+1));
       uuu::upll_strncpy(vrt_key_if->vrt_key.vrouter_name,
-             reinterpret_cast<key_vrt *>(pkey)->vrouter_name,
-             (kMaxLenVnodeName+1));
+                        reinterpret_cast<key_vrt *>(pkey)->vrouter_name,
+                        (kMaxLenVnodeName+1));
       break;
     case UNC_KT_VRT_IF:
       uuu::upll_strncpy(vrt_key_if->vrt_key.vtn_key.vtn_name,
-             reinterpret_cast<key_vrt_if *>(pkey)->vrt_key.vtn_key.vtn_name,
-              (kMaxLenVtnName+1));
+                        reinterpret_cast<key_vrt_if *>
+                        (pkey)->vrt_key.vtn_key.vtn_name,
+                        (kMaxLenVtnName+1));
       uuu::upll_strncpy(vrt_key_if->vrt_key.vrouter_name,
-             reinterpret_cast<key_vrt_if *>(pkey)->vrt_key.vrouter_name,
-              (kMaxLenVnodeName+1));
+                        reinterpret_cast<key_vrt_if *>
+                        (pkey)->vrt_key.vrouter_name,
+                        (kMaxLenVnodeName+1));
       uuu::upll_strncpy(vrt_key_if->if_name,
-             reinterpret_cast<key_vrt_if *>(pkey)->if_name,
-              (kMaxLenInterfaceName+1));
+                        reinterpret_cast<key_vrt_if *>(pkey)->if_name,
+                        (kMaxLenInterfaceName+1));
       break;
     case UNC_KT_DHCPRELAY_IF:
       uuu::upll_strncpy(vrt_key_if->vrt_key.vtn_key.vtn_name,
-             reinterpret_cast<key_dhcp_relay_if *>(pkey)->vrt_key.vtn_key.vtn_name,
-              (kMaxLenVtnName+1));
+                        reinterpret_cast<key_dhcp_relay_if *>
+                        (pkey)->vrt_key.vtn_key.vtn_name,
+                        (kMaxLenVtnName+1));
       uuu::upll_strncpy(vrt_key_if->vrt_key.vrouter_name,
-             reinterpret_cast<key_dhcp_relay_if *>(pkey)->vrt_key.vrouter_name,
-              (kMaxLenVnodeName+1));
+                        reinterpret_cast<key_dhcp_relay_if *>
+                        (pkey)->vrt_key.vrouter_name,
+                        (kMaxLenVnodeName+1));
       uuu::upll_strncpy(vrt_key_if->if_name,
-             reinterpret_cast<key_dhcp_relay_if *>(pkey)->if_name,
-              (kMaxLenInterfaceName+1));
+                        reinterpret_cast<key_dhcp_relay_if *>(pkey)->if_name,
+                        (kMaxLenInterfaceName+1));
       break;
 
-      case UNC_KT_VLINK: {
-        uint8_t *vnode_name, *if_name;
-        uint8_t flags = 0;
-        val_vlink *vlink_val = reinterpret_cast<val_vlink *>
-                    (GetVal(parent_key));
-        if (!vlink_val) {
-          if (!okey || !(okey->get_key()))
-            free(vrt_key_if);
-          return UPLL_RC_ERR_GENERIC;
-        }
-        GET_USER_DATA_FLAGS(parent_key->get_cfg_val(), flags);
-        flags &= VLINK_FLAG_NODE_POS;
-        if (flags == kVlinkVnode2) {
-          vnode_name = vlink_val->vnode2_name;
-          if_name = vlink_val->vnode2_ifname;
-        } else {
-          vnode_name = vlink_val->vnode1_name;
-          if_name = vlink_val->vnode1_ifname;
-        }
-        uuu::upll_strncpy(vrt_key_if->vrt_key.vtn_key.vtn_name,
+    case UNC_KT_VLINK: {
+      uint8_t *vnode_name, *if_name;
+      uint8_t flags = 0;
+      val_vlink *vlink_val = reinterpret_cast<val_vlink *>
+          (GetVal(parent_key));
+      if (!vlink_val) {
+        if (!okey || !(okey->get_key()))
+          free(vrt_key_if);
+        return UPLL_RC_ERR_GENERIC;
+      }
+      GET_USER_DATA_FLAGS(parent_key->get_cfg_val(), flags);
+      flags &= VLINK_FLAG_NODE_POS;
+      if (flags == kVlinkVnode2) {
+        vnode_name = vlink_val->vnode2_name;
+        if_name = vlink_val->vnode2_ifname;
+      } else {
+        vnode_name = vlink_val->vnode1_name;
+        if_name = vlink_val->vnode1_ifname;
+      }
+      uuu::upll_strncpy(vrt_key_if->vrt_key.vtn_key.vtn_name,
                         reinterpret_cast<key_vlink *>(pkey)->vtn_key.vtn_name,
                         (kMaxLenVtnName + 1));
-        if (vnode_name)
-          uuu::upll_strncpy(vrt_key_if->vrt_key.vrouter_name, vnode_name,
+      if (vnode_name)
+        uuu::upll_strncpy(vrt_key_if->vrt_key.vrouter_name, vnode_name,
                           (kMaxLenVnodeName + 1));
-        if (if_name)
-          uuu::upll_strncpy(vrt_key_if->if_name, if_name,
+      if (if_name)
+        uuu::upll_strncpy(vrt_key_if->if_name, if_name,
                           (kMaxLenInterfaceName + 1));
     }
-    break;
+      break;
     default:
       break;
   }
@@ -299,7 +307,7 @@ upll_rc_t VrtIfMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
     free(vrt_key_if);
     result_code = UPLL_RC_ERR_GENERIC;
   } else {
-     SET_USER_DATA(okey, parent_key);
+    SET_USER_DATA(okey, parent_key);
   }
   return result_code;
 }
@@ -321,11 +329,12 @@ upll_rc_t VrtIfMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
   key_vrt *vrt_key = reinterpret_cast<key_vrt *>
       (ConfigKeyVal::Malloc(sizeof(key_vrt)));
   uuu::upll_strncpy(vrt_key->vtn_key.vtn_name,
-         reinterpret_cast<key_vrt_if *>(pkey)->vrt_key.vtn_key.vtn_name,
-        (kMaxLenVtnName+1));
+                    reinterpret_cast<key_vrt_if *>
+                    (pkey)->vrt_key.vtn_key.vtn_name,
+                    (kMaxLenVtnName+1));
   uuu::upll_strncpy(vrt_key->vrouter_name,
-         reinterpret_cast<key_vrt_if *>(pkey)->vrt_key.vrouter_name,
-        (kMaxLenVnodeName+1));
+                    reinterpret_cast<key_vrt_if *>(pkey)->vrt_key.vrouter_name,
+                    (kMaxLenVnodeName+1));
   okey = new ConfigKeyVal(UNC_KT_VROUTER, IpctSt::kIpcStKeyVrt, vrt_key, NULL);
   if (okey == NULL) {
     free(vrt_key);
@@ -341,7 +350,7 @@ upll_rc_t VrtIfMoMgr::AllocVal(ConfigVal *&ck_val,
                                MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
   void *val;  // , *nxt_val;
-//   ConfigVal *ck_nxtval;
+  //   ConfigVal *ck_nxtval;
 
   if (ck_val != NULL) return UPLL_RC_ERR_GENERIC;
   switch (tbl) {
@@ -382,7 +391,8 @@ upll_rc_t VrtIfMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
   };
   if (tmp) {
     if (tbl == MAINTBL) {
-      val_db_vrt_if_st *ival = reinterpret_cast<val_db_vrt_if_st *>(tmp->get_val());
+      val_db_vrt_if_st *ival = reinterpret_cast<val_db_vrt_if_st *>
+          (tmp->get_val());
       val_db_vrt_if_st *val_vrt_if = reinterpret_cast<val_db_vrt_if_st *>
           (ConfigKeyVal::Malloc(sizeof(val_db_vrt_if_st)));
       memcpy(val_vrt_if, ival, sizeof(val_db_vrt_if_st));
@@ -398,9 +408,9 @@ upll_rc_t VrtIfMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
   okey = new ConfigKeyVal(UNC_KT_VRT_IF, IpctSt::kIpcStKeyVrtIf, vrt_if_key,
                           tmp1);
   if (okey) {
-   SET_USER_DATA(okey, req);
+    SET_USER_DATA(okey, req);
   } else {
-    DELETE_IF_NOT_NULL(tmp1); 
+    DELETE_IF_NOT_NULL(tmp1);
     FREE_IF_NOT_NULL(vrt_if_key);
   }
   return UPLL_RC_SUCCESS;
@@ -418,19 +428,20 @@ upll_rc_t VrtIfMoMgr::AdaptValToVtnService(ConfigKeyVal *ikey) {
       UPLL_LOG_DEBUG("Config Val is Null");
       return UPLL_RC_ERR_GENERIC;
     }
-    while (cval ) {
+    while (cval) {
       if (IpctSt::kIpcStValVrtIf == cval->get_st_num()) {
-         // set admin status to valid no value
-         val_vrt_if *vrt_if_val = reinterpret_cast<val_vrt_if *>GetVal(ikey);
-         if (vrt_if_val->valid[UPLL_IDX_ADMIN_ST_VI] == UNC_VF_INVALID)
-           vrt_if_val->valid[UPLL_IDX_ADMIN_ST_VI] = UNC_VF_VALID_NO_VALUE;
+        // set admin status to valid no value
+        val_vrt_if *vrt_if_val = reinterpret_cast<val_vrt_if *>GetVal(ikey);
+        if (vrt_if_val->valid[UPLL_IDX_ADMIN_ST_VI] == UNC_VF_INVALID)
+          vrt_if_val->valid[UPLL_IDX_ADMIN_ST_VI] = UNC_VF_VALID_NO_VALUE;
       }
       if (IpctSt::kIpcStValVrtIfSt == cval->get_st_num()) {
         val_vrt_if_st *vrt_if_val_st = reinterpret_cast<val_vrt_if_st *>
-                         (ConfigKeyVal::Malloc(sizeof(val_vrt_if_st)));
-        val_db_vrt_if_st *db_vrt_if_val_st = reinterpret_cast<val_db_vrt_if_st *>
-                                     (cval->get_val());
-        memcpy(vrt_if_val_st,&(db_vrt_if_val_st->vrt_if_val_st),
+            (ConfigKeyVal::Malloc(sizeof(val_vrt_if_st)));
+        val_db_vrt_if_st *db_vrt_if_val_st = reinterpret_cast
+            <val_db_vrt_if_st *>
+            (cval->get_val());
+        memcpy(vrt_if_val_st, &(db_vrt_if_val_st->vrt_if_val_st),
                sizeof(val_vrt_if_st));
         cval->SetVal(IpctSt::kIpcStValVrtIfSt, vrt_if_val_st);
       }
@@ -455,58 +466,64 @@ upll_rc_t VrtIfMoMgr::UpdateConfigStatus(ConfigKeyVal *ikey,
   bool oper_status_change = true;
   if (vrt_if_val == NULL) return UPLL_RC_ERR_GENERIC;
   switch (op) {
-  case UNC_OP_UPDATE: 
-  {
-    void *val = reinterpret_cast<void *>(vrt_if_val);
-    CompareValidValue(val, GetVal(upd_key), true);
-    uint8_t cand_flag = 0,run_flag = 0;
-    GET_USER_DATA_FLAGS(ikey,cand_flag);
-    GET_USER_DATA_FLAGS(upd_key,run_flag);
-    if ((cand_flag & VIF_TYPE) == (run_flag & VIF_TYPE))
-      oper_status_change = false;
-  }
-  /* fall through intended */
-  case UNC_OP_CREATE: 
-  {
-    if (op == UNC_OP_CREATE)
-      vrt_if_val->cs_row_status = cs_status;
-    val_db_vrt_if_st *vrt_if_valst = reinterpret_cast<val_db_vrt_if_st *>
-        (ConfigKeyVal::Malloc(sizeof(val_db_vrt_if_st)));
-    ikey->AppendCfgVal(IpctSt::kIpcStValVrtIfSt, vrt_if_valst);
-    break;
-  }
-  default:
-    return UPLL_RC_ERR_GENERIC;
+    case UNC_OP_UPDATE:
+      {
+        void *val = reinterpret_cast<void *>(vrt_if_val);
+        CompareValidValue(val, GetVal(upd_key), true);
+        uint8_t cand_flag = 0, run_flag = 0;
+        GET_USER_DATA_FLAGS(ikey, cand_flag);
+        GET_USER_DATA_FLAGS(upd_key, run_flag);
+        if ((cand_flag & VIF_TYPE) == (run_flag & VIF_TYPE))
+          oper_status_change = false;
+      }
+      /* fall through intended */
+    case UNC_OP_CREATE:
+      {
+        if (op == UNC_OP_CREATE)
+          vrt_if_val->cs_row_status = cs_status;
+        val_db_vrt_if_st *vrt_if_valst = reinterpret_cast<val_db_vrt_if_st *>
+            (ConfigKeyVal::Malloc(sizeof(val_db_vrt_if_st)));
+        ikey->AppendCfgVal(IpctSt::kIpcStValVrtIfSt, vrt_if_valst);
+        break;
+      }
+    default:
+      return UPLL_RC_ERR_GENERIC;
   }
   if (oper_status_change) {
 #if 0
-    rs_code = InitOperStatus<val_vrt_if_st,val_db_vrt_if_st>(ikey,
-      vrt_if_val->valid[UPLL_IDX_ADMIN_ST_VI],
-      vrt_if_val->admin_status,(uint8_t)UNC_VF_INVALID);
+    rs_code = InitOperStatus<val_vrt_if_st, val_db_vrt_if_st>(
+        ikey,
+        vrt_if_val->valid[UPLL_IDX_ADMIN_ST_VI],
+        vrt_if_val->admin_status,
+        (uint8_t)UNC_VF_INVALID);
     if (rs_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Error setting oper status");
       return UPLL_RC_ERR_GENERIC;
     }
 #else
-      val_vrt_if_st *vnif_st = &(reinterpret_cast<val_db_vrt_if_st  *>
-             (GetStateVal(ikey))->vrt_if_val_st);
-      if (!vnif_st) {
-        UPLL_LOG_DEBUG("Returning error\n");
-        return UPLL_RC_ERR_GENERIC;
-      }
-      vnif_st->oper_status = UPLL_OPER_STATUS_UNINIT;
-      vnif_st->valid[UPLL_IDX_OPER_STATUS_VRTS] = UNC_VF_VALID;
+    val_vrt_if_st *vnif_st = &(reinterpret_cast<val_db_vrt_if_st  *>
+                               (GetStateVal(ikey))->vrt_if_val_st);
+    if (!vnif_st) {
+      UPLL_LOG_DEBUG("Returning error\n");
+      return UPLL_RC_ERR_GENERIC;
+    }
+    vnif_st->oper_status = UPLL_OPER_STATUS_UNINIT;
+#if 0
+    (driver_result == UPLL_RC_ERR_CTR_DISCONNECTED)?
+        UPLL_OPER_STATUS_UNKNOWN:UPLL_OPER_STATUS_UNINIT;
+#endif
+    vnif_st->valid[UPLL_IDX_OPER_STATUS_VRTS] = UNC_VF_VALID;
 #endif
   }
-  UPLL_LOG_TRACE("%s",(ikey->ToStrAll()).c_str());
+  UPLL_LOG_TRACE("%s", (ikey->ToStrAll()).c_str());
   val_vrt_if *vrt_if_val2 = reinterpret_cast<val_vrt_if *>(GetVal(upd_key));
   if (UNC_OP_UPDATE == op) {
-    UPLL_LOG_TRACE("%s",(upd_key->ToStrAll()).c_str());
+    UPLL_LOG_TRACE("%s", (upd_key->ToStrAll()).c_str());
     vrt_if_val->cs_row_status = vrt_if_val2->cs_row_status;
   }
-  for (unsigned int loop = 0; loop < 
+  for (unsigned int loop = 0; loop <
        sizeof(vrt_if_val->valid) / sizeof(vrt_if_val->valid[0]); ++loop) {
-    if ((UNC_VF_VALID == (uint8_t) vrt_if_val->valid[loop]) 
+    if ((UNC_VF_VALID == (uint8_t) vrt_if_val->valid[loop])
         || (UNC_VF_VALID_NO_VALUE == (uint8_t) vrt_if_val->valid[loop])) {
       if (loop == UPLL_IDX_DESC_VI)
         vrt_if_val->cs_attr[loop] = UNC_CS_APPLIED;
@@ -514,36 +531,38 @@ upll_rc_t VrtIfMoMgr::UpdateConfigStatus(ConfigKeyVal *ikey,
         vrt_if_val->cs_attr[loop] = cs_status;
     } else if ((UNC_VF_INVALID == vrt_if_val->valid[loop]) &&
                (UNC_OP_CREATE == op)) {
-       vrt_if_val->cs_attr[loop] = UNC_CS_APPLIED;
+      vrt_if_val->cs_attr[loop] = UNC_CS_APPLIED;
     } else if ((UNC_VF_INVALID == vrt_if_val->valid[loop]) &&
                (UNC_OP_UPDATE == op)) {
-       vrt_if_val->cs_attr[loop] = vrt_if_val2->cs_attr[loop];
+      vrt_if_val->cs_attr[loop] = vrt_if_val2->cs_attr[loop];
     }
-
   }
   return rs_code;
 }
 
 upll_rc_t VrtIfMoMgr::UpdateAuditConfigStatus(
-    unc_keytype_configstatus_t cs_status, uuc::UpdateCtrlrPhase phase,
-    ConfigKeyVal *&ckv_running) {
+    unc_keytype_configstatus_t cs_status,
+    uuc::UpdateCtrlrPhase phase,
+    ConfigKeyVal *&ckv_running,
+    DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_vrt_if_t *val;
   val = (ckv_running != NULL) ? reinterpret_cast<val_vrt_if_t *>
-                                 (GetVal(ckv_running)) : NULL;
+      (GetVal(ckv_running)) : NULL;
   if (NULL == val) {
     return UPLL_RC_ERR_GENERIC;
   }
   if (uuc::kUpllUcpCreate == phase) val->cs_row_status = cs_status;
   if ((uuc::kUpllUcpUpdate == phase) &&
-           (val->cs_row_status == UNC_CS_INVALID ||
-            val->cs_row_status == UNC_CS_NOT_APPLIED))
+      (val->cs_row_status == UNC_CS_INVALID ||
+       val->cs_row_status == UNC_CS_NOT_APPLIED))
     val->cs_row_status = cs_status;
   for (unsigned int loop = 0; loop < sizeof(val->valid) / sizeof(uint8_t);
-      ++loop) {
+       ++loop) {
     if ((cs_status == UNC_CS_INVALID && UNC_VF_VALID == val->valid[loop]) ||
-         cs_status == UNC_CS_APPLIED)
-         val->cs_attr[loop] = cs_status;
+        cs_status == UNC_CS_APPLIED)
+      val->cs_attr[loop] = cs_status;
   }
   return result_code;
 }
@@ -554,8 +573,9 @@ uint8_t* VrtIfMoMgr::GetControllerId(ConfigKeyVal *ck_vrt,
   UPLL_FUNC_TRACE;
   if (ck_vrt->get_key_type() != UNC_KT_VROUTER) return NULL;
   DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutNone };
-  MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager*>
-                                        (GetMoManager(UNC_KT_VROUTER)));
+  MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>
+      (const_cast<MoManager*>
+       (GetMoManager(UNC_KT_VROUTER)));
   upll_rc_t result_code = mgr->ReadConfigDB(ck_vrt, dt_type, UNC_OP_READ, dbop,
                                             dmi, MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
@@ -564,9 +584,9 @@ uint8_t* VrtIfMoMgr::GetControllerId(ConfigKeyVal *ck_vrt,
   // val_vrt_t *vrt_val = (val_vrt_t *)(GetVal(ck_vrt));
 #ifdef UNCOMMENT
   if (vrt_val)
-  return (vrt_val->controller_id);
+    return (vrt_val->controller_id);
   else
-  return NULL;
+    return NULL;
 #endif
   return reinterpret_cast<uint8_t *>(const_cast<char*>("pfc"));
 }
@@ -587,7 +607,7 @@ upll_rc_t VrtIfMoMgr::ValidateMessage(IpcReqRespHeader *req,
   upll_rc_t ret_val = UPLL_RC_SUCCESS;
   if (ikey->get_st_num() != IpctSt::kIpcStKeyVrtIf) {
     UPLL_LOG_DEBUG("Invalid key structure received. received struct - %d",
-                  (ikey->get_st_num()));
+                   (ikey->get_st_num()));
     return UPLL_RC_ERR_BAD_REQUEST;
   }
   key_vrt_if *vrt_if_key = reinterpret_cast<key_vrt_if *>(ikey->get_key());
@@ -605,59 +625,79 @@ upll_rc_t VrtIfMoMgr::ValidateMessage(IpcReqRespHeader *req,
   val_vtn_neighbor *vtn_neighbor = NULL;
   if ((ikey->get_cfg_val())
       && ((ikey->get_cfg_val())->get_st_num() == IpctSt::kIpcStValVrtIf)) {
-     vrt_if_val =  reinterpret_cast<val_vrt_if *>
-                                  (ikey->get_cfg_val()->get_val());
+    vrt_if_val =  reinterpret_cast<val_vrt_if *>
+        (ikey->get_cfg_val()->get_val());
   } else if ((ikey->get_cfg_val()) &&
-       ((ikey->get_cfg_val())->get_st_num() == IpctSt::kIpcStValVtnNeighbor)) {
+             ((ikey->get_cfg_val())->get_st_num() ==
+              IpctSt::kIpcStValVtnNeighbor)) {
     vtn_neighbor =  reinterpret_cast<val_vtn_neighbor *>
-                                          (ikey->get_cfg_val()->get_val());
+        (ikey->get_cfg_val()->get_val());
   } else if ((ikey->get_cfg_val()) &&
-       (((ikey->get_cfg_val())->get_st_num() != IpctSt::kIpcStValVrtIf) ||
-       ((ikey->get_cfg_val())->get_st_num() != IpctSt::kIpcStValVtnNeighbor))) {
+             (((ikey->get_cfg_val())->get_st_num() !=
+               IpctSt::kIpcStValVrtIf) ||
+              ((ikey->get_cfg_val())->get_st_num() !=
+               IpctSt::kIpcStValVtnNeighbor))) {
     UPLL_LOG_DEBUG("Invalid val structure received.received struct - %d",
-                    ikey->get_cfg_val()->get_st_num());
+                   ikey->get_cfg_val()->get_st_num());
     return UPLL_RC_ERR_BAD_REQUEST;
   }
 
   if ((op == UNC_OP_CREATE) && ((dt_type == UPLL_DT_CANDIDATE)
-       || UPLL_DT_IMPORT == dt_type)) {
-      if (vrt_if_val == NULL) {
-        UPLL_LOG_DEBUG(
-        "Val struct Validation is an optional for CREATE operation");
-        return UPLL_RC_SUCCESS;
-      }
-      ret_val = ValidateVrtIfValue(vrt_if_val, op);
-      if (ret_val != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("Val struct Validation failure for CREATE operation");
-        return UPLL_RC_ERR_CFG_SYNTAX;
-      }
+                                || UPLL_DT_IMPORT == dt_type)) {
+    if (vrt_if_val == NULL) {
+      UPLL_LOG_DEBUG(
+          "Val struct Validation is an optional for CREATE operation");
       return UPLL_RC_SUCCESS;
+    }
+    ret_val = ValidateVrtIfValue(vrt_if_val, op);
+    if (ret_val != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("Val struct Validation failure for CREATE operation");
+      return UPLL_RC_ERR_CFG_SYNTAX;
+    }
+    return UPLL_RC_SUCCESS;
   } else if ((op == UNC_OP_UPDATE) && (dt_type == UPLL_DT_CANDIDATE)) {
-      if (vrt_if_val == NULL) {
-        UPLL_LOG_DEBUG("Val struct Validation is mandatory for UPDATE op");
-        return UPLL_RC_ERR_BAD_REQUEST;
-      }
-      ret_val = ValidateVrtIfValue(vrt_if_val, op);
-      if (ret_val != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("Val struct Validation failure for UPDATE operation");
-        return UPLL_RC_ERR_CFG_SYNTAX;
-      }
-      return UPLL_RC_SUCCESS;
+    if (vrt_if_val == NULL) {
+      UPLL_LOG_DEBUG("Val struct Validation is mandatory for UPDATE op");
+      return UPLL_RC_ERR_BAD_REQUEST;
+    }
+    ret_val = ValidateVrtIfValue(vrt_if_val, op);
+    if (ret_val != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("Val struct Validation failure for UPDATE operation");
+      return UPLL_RC_ERR_CFG_SYNTAX;
+    }
+    return UPLL_RC_SUCCESS;
   } else if ((op == UNC_OP_READ || op == UNC_OP_READ_SIBLING ||
-             op == UNC_OP_READ_SIBLING_BEGIN) &&
-        (dt_type == UPLL_DT_CANDIDATE || dt_type == UPLL_DT_RUNNING
-        || dt_type == UPLL_DT_STARTUP)) {
-      if (opt1 != UNC_OPT1_NORMAL) {
-        UPLL_LOG_DEBUG("Error option1 is not NORMAL");
-        return UPLL_RC_ERR_INVALID_OPTION1;
-      }
-      if (opt2 != UNC_OPT2_NONE) {
-        UPLL_LOG_DEBUG("Error option2 is not NONE");
-        return UPLL_RC_ERR_INVALID_OPTION2;
-      }
+              op == UNC_OP_READ_SIBLING_BEGIN) &&
+             (dt_type == UPLL_DT_CANDIDATE || dt_type == UPLL_DT_RUNNING
+              || dt_type == UPLL_DT_STARTUP)) {
+    if (opt1 != UNC_OPT1_NORMAL) {
+      UPLL_LOG_DEBUG("Error option1 is not NORMAL");
+      return UPLL_RC_ERR_INVALID_OPTION1;
+    }
+    if (opt2 != UNC_OPT2_NONE) {
+      UPLL_LOG_DEBUG("Error option2 is not NONE");
+      return UPLL_RC_ERR_INVALID_OPTION2;
+    }
+    if (vrt_if_val == NULL) {
+      UPLL_LOG_DEBUG(
+          "Val struct Validation is an optional for READ operation");
+      return UPLL_RC_SUCCESS;
+    }
+    ret_val = ValidateVrtIfValue(vrt_if_val, op);
+    if (ret_val != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("val struct Validation failure for READ operation");
+      return UPLL_RC_ERR_CFG_SYNTAX;
+    }
+    return UPLL_RC_SUCCESS;
+  } else if ((op == UNC_OP_READ) && (dt_type == UPLL_DT_STATE)) {
+    if (opt1 != UNC_OPT1_NORMAL) {
+      UPLL_LOG_DEBUG("Error option1 is not NORMAL");
+      return UPLL_RC_ERR_INVALID_OPTION1;
+    }
+    if (opt2 == UNC_OPT2_NONE) {
       if (vrt_if_val == NULL) {
         UPLL_LOG_DEBUG(
-        "Val struct Validation is an optional for READ operation");
+            "Val struct Validation is an optional for READ operation");
         return UPLL_RC_SUCCESS;
       }
       ret_val = ValidateVrtIfValue(vrt_if_val, op);
@@ -665,96 +705,81 @@ upll_rc_t VrtIfMoMgr::ValidateMessage(IpcReqRespHeader *req,
         UPLL_LOG_DEBUG("val struct Validation failure for READ operation");
         return UPLL_RC_ERR_CFG_SYNTAX;
       }
-      return UPLL_RC_SUCCESS;
-  } else if ((op == UNC_OP_READ) && (dt_type == UPLL_DT_STATE)) {
-      if (opt1 != UNC_OPT1_NORMAL) {
-        UPLL_LOG_DEBUG("Error option1 is not NORMAL");
-        return UPLL_RC_ERR_INVALID_OPTION1;
-      }
-      if (opt2 == UNC_OPT2_NONE) {
-        if (vrt_if_val == NULL) {
-          UPLL_LOG_DEBUG(
-          "Val struct Validation is an optional for READ operation");
-          return UPLL_RC_SUCCESS;
-        }
-        ret_val = ValidateVrtIfValue(vrt_if_val, op);
-        if (ret_val != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("val struct Validation failure for READ operation");
-          return UPLL_RC_ERR_CFG_SYNTAX;
-        }
-        return ret_val;
-      } else if (opt2 == UNC_OPT2_NEIGHBOR) {
-        if (vtn_neighbor == NULL) {
-          UPLL_LOG_DEBUG(
-              "Val vtn_neighbor struct Validation is an optional"
-               "for READ operation");
-          return UPLL_RC_SUCCESS;
-        }
-        ret_val = ValidateVtnNeighborValue(vtn_neighbor, op);
-        if (ret_val != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("Val struct Validation failure for"
-                         "val_vtn_neighbor structure");
-          return UPLL_RC_ERR_CFG_SYNTAX;
-        }
-        return ret_val;
-      } else {
-        UPLL_LOG_DEBUG("Error option2 is not matching");
-        return UPLL_RC_ERR_INVALID_OPTION2;
-      }
-  } else if ((op == UNC_OP_READ_SIBLING_BEGIN ||
-              op == UNC_OP_READ_SIBLING) && (dt_type == UPLL_DT_STATE)) {
-      if (opt1 != UNC_OPT1_NORMAL) {
-        UPLL_LOG_DEBUG("Error option1 is not NORMAL");
-        return UPLL_RC_ERR_INVALID_OPTION1;
-      }
-      if (opt2 != UNC_OPT2_NONE) {
-        UPLL_LOG_DEBUG("Error option2 is not NONE");
-        return UPLL_RC_ERR_INVALID_OPTION2;
-      }
-      if (vrt_if_val == NULL) {
-        UPLL_LOG_DEBUG("Val struct Validation is an optional for"
-                        "READ_SIBLING_COUNT operation");
+      return ret_val;
+    } else if (opt2 == UNC_OPT2_NEIGHBOR) {
+      if (vtn_neighbor == NULL) {
+        UPLL_LOG_DEBUG(
+            "Val vtn_neighbor struct Validation is an optional"
+            "for READ operation");
         return UPLL_RC_SUCCESS;
       }
-      ret_val = ValidateVrtIfValue(vrt_if_val, op);
+      ret_val = ValidateVtnNeighborValue(vtn_neighbor, op);
       if (ret_val != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG(
-        "Val struct Validation failure for READ_SIBLING_COUNT operation");
+        UPLL_LOG_DEBUG("Val struct Validation failure for"
+                       "val_vtn_neighbor structure");
         return UPLL_RC_ERR_CFG_SYNTAX;
       }
+      return ret_val;
+    } else {
+      UPLL_LOG_DEBUG("Error option2 is not matching");
+      return UPLL_RC_ERR_INVALID_OPTION2;
+    }
+  } else if ((op == UNC_OP_READ_SIBLING_BEGIN ||
+              op == UNC_OP_READ_SIBLING) && (dt_type == UPLL_DT_STATE)) {
+    if (opt1 != UNC_OPT1_NORMAL) {
+      UPLL_LOG_DEBUG("Error option1 is not NORMAL");
+      return UPLL_RC_ERR_INVALID_OPTION1;
+    }
+    if (opt2 != UNC_OPT2_NONE) {
+      UPLL_LOG_DEBUG("Error option2 is not NONE");
+      return UPLL_RC_ERR_INVALID_OPTION2;
+    }
+    if (vrt_if_val == NULL) {
+      UPLL_LOG_DEBUG("Val struct Validation is an optional for"
+                     "READ_SIBLING_COUNT operation");
       return UPLL_RC_SUCCESS;
-  } else if ((op == UNC_OP_READ_SIBLING_COUNT) && (dt_type == UPLL_DT_STATE ||
+    }
+    ret_val = ValidateVrtIfValue(vrt_if_val, op);
+    if (ret_val != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG(
+          "Val struct Validation failure for READ_SIBLING_COUNT operation");
+      return UPLL_RC_ERR_CFG_SYNTAX;
+    }
+    return UPLL_RC_SUCCESS;
+  } else if ((op == UNC_OP_READ_SIBLING_COUNT) && (
+          dt_type == UPLL_DT_STATE ||
           dt_type == UPLL_DT_STARTUP || dt_type == UPLL_DT_CANDIDATE ||
           dt_type == UPLL_DT_RUNNING)) {
-      if (opt1 != UNC_OPT1_NORMAL) {
-        UPLL_LOG_DEBUG("Error option1 is not NORMAL");
-        return UPLL_RC_ERR_INVALID_OPTION1;
-      }
-      if (opt2 != UNC_OPT2_NONE) {
-        UPLL_LOG_DEBUG("Error option2 is not NONE");
-        return UPLL_RC_ERR_INVALID_OPTION2;
-      }
-      if (vrt_if_val == NULL) {
-        UPLL_LOG_DEBUG("Val struct Validation is an optional for"
-                        "READ_SIBLING_COUNT operation");
-        return UPLL_RC_SUCCESS;
-      }
-      ret_val = ValidateVrtIfValue(vrt_if_val, op);
-      if (ret_val != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG(
-        "Val struct Validation failure for READ_SIBLING_COUNT operation");
-        return UPLL_RC_ERR_CFG_SYNTAX;
-      }
+    if (opt1 != UNC_OPT1_NORMAL) {
+      UPLL_LOG_DEBUG("Error option1 is not NORMAL");
+      return UPLL_RC_ERR_INVALID_OPTION1;
+    }
+    if (opt2 != UNC_OPT2_NONE) {
+      UPLL_LOG_DEBUG("Error option2 is not NONE");
+      return UPLL_RC_ERR_INVALID_OPTION2;
+    }
+    if (vrt_if_val == NULL) {
+      UPLL_LOG_DEBUG("Val struct Validation is an optional for"
+                     "READ_SIBLING_COUNT operation");
       return UPLL_RC_SUCCESS;
-  } else if ((op == UNC_OP_DELETE || op == UNC_OP_READ_NEXT ||
-      op == UNC_OP_READ_BULK) && (dt_type == UPLL_DT_CANDIDATE ||
-      dt_type == UPLL_DT_RUNNING || dt_type == UPLL_DT_STARTUP)) {
+    }
+    ret_val = ValidateVrtIfValue(vrt_if_val, op);
+    if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG(
+          "Val struct Validation failure for READ_SIBLING_COUNT operation");
+      return UPLL_RC_ERR_CFG_SYNTAX;
+    }
+    return UPLL_RC_SUCCESS;
+  } else if ((op == UNC_OP_DELETE || op == UNC_OP_READ_NEXT ||
+              op == UNC_OP_READ_BULK) && (
+                  dt_type == UPLL_DT_CANDIDATE ||
+                  dt_type == UPLL_DT_RUNNING || dt_type == UPLL_DT_STARTUP)) {
+    UPLL_LOG_DEBUG(
         "Value structure validation is none for this operation."
         " operation - %d", op);
-      return UPLL_RC_SUCCESS;
+    return UPLL_RC_SUCCESS;
   }
-  UPLL_LOG_DEBUG("Unsupported operation %d or datatype %d", op,dt_type);
+  UPLL_LOG_DEBUG("Unsupported operation %d or datatype %d", op, dt_type);
   return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
 }
 
@@ -767,8 +792,8 @@ upll_rc_t VrtIfMoMgr::ValidateVrtIfKey(key_vrt_if *vrt_if_key,
                         kMinLenVtnName, kMaxLenVtnName);
   if (ret_val != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("Vtn name syntax check failed."
-                  "Received vtn_name - %s",
-                  vrt_if_key->vrt_key.vtn_key.vtn_name);
+                   "Received vtn_name - %s",
+                   vrt_if_key->vrt_key.vtn_key.vtn_name);
     return UPLL_RC_ERR_CFG_SYNTAX;
   }
   ret_val = ValidateKey(reinterpret_cast<char *>
@@ -776,18 +801,18 @@ upll_rc_t VrtIfMoMgr::ValidateVrtIfKey(key_vrt_if *vrt_if_key,
                         kMinLenVnodeName, kMaxLenVnodeName);
   if (ret_val != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("vrouter_name syntax check failed. %s",
-                        vrt_if_key->vrt_key.vrouter_name);
+                   vrt_if_key->vrt_key.vrouter_name);
     return UPLL_RC_ERR_CFG_SYNTAX;
   }
   if (operation != UNC_OP_READ_SIBLING_COUNT &&
       operation != UNC_OP_READ_SIBLING_BEGIN) {
     ret_val = ValidateKey(reinterpret_cast<char *>(vrt_if_key->if_name),
-                        kMinLenInterfaceName,
-                        kMaxLenInterfaceName);
+                          kMinLenInterfaceName,
+                          kMaxLenInterfaceName);
     if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Interface Name syntax check failed."
-                  "Received if_name - %s",
-                  vrt_if_key->if_name);
+                     "Received if_name - %s",
+                     vrt_if_key->if_name);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else {
@@ -803,44 +828,45 @@ upll_rc_t VrtIfMoMgr::ValidateVrtIfValue(val_vrt_if *vrt_if_val,
 
   if (vrt_if_val->valid[UPLL_IDX_DESC_VI] == UNC_VF_VALID) {
     if (!ValidateDesc(vrt_if_val->description,
-                          kMinLenDescription,
-                          kMaxLenDescription)) {
+                      kMinLenDescription,
+                      kMaxLenDescription)) {
       UPLL_LOG_DEBUG("Description syntax check failed."
-                    "received Description - %s",
-                    vrt_if_val->description);
+                     "received Description - %s",
+                     vrt_if_val->description);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if (vrt_if_val->valid[UPLL_IDX_DESC_VI] == UNC_VF_VALID_NO_VALUE
-      && (op == UNC_OP_CREATE || op == UNC_OP_UPDATE)) {
+             && (op == UNC_OP_CREATE || op == UNC_OP_UPDATE)) {
     uuu::upll_strncpy(vrt_if_val->description, " ", 2);
   }
 
   if (vrt_if_val->valid[UPLL_IDX_PREFIXLEN_VI] == UNC_VF_VALID) {
-    if (ValidateNumericRange((uint8_t) vrt_if_val->prefixlen, kMinVnodeIpv4Prefix,
+    if (ValidateNumericRange((uint8_t) vrt_if_val->prefixlen,
+                             kMinVnodeIpv4Prefix,
                              kMaxVnodeIpv4Prefix, true, true)) {
       UPLL_LOG_DEBUG("IPV4 prefixlength validation is success");
       if (!ValidateIpv4Addr(vrt_if_val->ip_addr.s_addr,
-                                 vrt_if_val->prefixlen)) {
+                            vrt_if_val->prefixlen)) {
         UPLL_LOG_DEBUG("Ip address Validation failed");
         return UPLL_RC_ERR_CFG_SYNTAX;
       }
     } else {
       UPLL_LOG_DEBUG("prefixlen validation check failed."
-                    "prefixlen - %d",
-                    vrt_if_val->prefixlen);
+                     "prefixlen - %d",
+                     vrt_if_val->prefixlen);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
 
   } else if (vrt_if_val->valid[UPLL_IDX_PREFIXLEN_VI] == UNC_VF_VALID_NO_VALUE
-      && (op == UNC_OP_UPDATE || op == UNC_OP_CREATE)) {
+             && (op == UNC_OP_UPDATE || op == UNC_OP_CREATE)) {
     vrt_if_val->prefixlen = 0;
   }
 
   if (vrt_if_val->valid[UPLL_IDX_MAC_ADDR_VI] == UNC_VF_VALID) {
     if (!ValidateMacAddr(vrt_if_val->macaddr)) {
       UPLL_LOG_DEBUG("Mac Address validation failure for KT_VRT_IF val struct."
-                    " Received  mac_address is - %s",
-                    vrt_if_val->macaddr);
+                     " Received  mac_address is - %s",
+                     vrt_if_val->macaddr);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   }
@@ -854,10 +880,10 @@ upll_rc_t VrtIfMoMgr::ValidateVrtIfValue(val_vrt_if *vrt_if_val,
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if (vrt_if_val->valid[UPLL_IDX_ADMIN_ST_VI] == UNC_VF_VALID_NO_VALUE
-      && (op == UNC_OP_CREATE || op == UNC_OP_UPDATE)) {
+             && (op == UNC_OP_CREATE || op == UNC_OP_UPDATE)) {
     vrt_if_val->admin_status = UPLL_ADMIN_ENABLE;
   } else if ((vrt_if_val->valid[UPLL_IDX_ADMIN_ST_VI] == UNC_VF_INVALID)
-      && (op == UNC_OP_CREATE)) {
+             && (op == UNC_OP_CREATE)) {
     vrt_if_val->admin_status = UPLL_ADMIN_ENABLE;
     vrt_if_val->valid[UPLL_IDX_ADMIN_ST_VI] = UNC_VF_VALID_NO_VALUE;
   }
@@ -865,8 +891,9 @@ upll_rc_t VrtIfMoMgr::ValidateVrtIfValue(val_vrt_if *vrt_if_val,
 }
 
 
-upll_rc_t VrtIfMoMgr::ValidateVtnNeighborValue(val_vtn_neighbor *vtn_neighbor,
-                                               unc_keytype_operation_t operation) {
+upll_rc_t VrtIfMoMgr::ValidateVtnNeighborValue(
+    val_vtn_neighbor *vtn_neighbor,
+    unc_keytype_operation_t operation) {
   UPLL_FUNC_TRACE;
   upll_rc_t ret_val = UPLL_RC_SUCCESS;
 
@@ -876,13 +903,13 @@ upll_rc_t VrtIfMoMgr::ValidateVtnNeighborValue(val_vtn_neighbor *vtn_neighbor,
         kMinLenVnodeName, kMaxLenVnodeName);
     if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("connected_vnode_name syntax check failed."
-                    "Received connected_vnode_name - %s",
-                    vtn_neighbor->connected_vnode_name);
+                     "Received connected_vnode_name - %s",
+                     vtn_neighbor->connected_vnode_name);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if (vtn_neighbor->valid[UPLL_IDX_CONN_VNODE_NAME_VN]
-      == UNC_VF_VALID_NO_VALUE
-      && (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE)) {
+             == UNC_VF_VALID_NO_VALUE
+             && (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE)) {
     uuu::upll_strncpy(vtn_neighbor->connected_vnode_name, " ",
                       kMaxLenVnodeName+1);
   }
@@ -892,13 +919,13 @@ upll_rc_t VrtIfMoMgr::ValidateVtnNeighborValue(val_vtn_neighbor *vtn_neighbor,
         kMinLenInterfaceName, kMinLenInterfaceName);
     if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("connected_if_name syntax check failed."
-                    "Received connected_if_name - %s",
-                    vtn_neighbor->connected_if_name);
+                     "Received connected_if_name - %s",
+                     vtn_neighbor->connected_if_name);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if (vtn_neighbor->valid[UPLL_IDX_CONN_VNODE_IF_NAME_VN]
-      == UNC_VF_VALID_NO_VALUE
-      && (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE)) {
+             == UNC_VF_VALID_NO_VALUE
+             && (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE)) {
     uuu::upll_strncpy(vtn_neighbor->connected_if_name, " ",
                       kMaxLenInterfaceName+1);
   }
@@ -908,15 +935,15 @@ upll_rc_t VrtIfMoMgr::ValidateVtnNeighborValue(val_vtn_neighbor *vtn_neighbor,
         kMinLenVlinkName, kMaxLenVlinkName);
     if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("connected_vlink_name syntax check failed."
-                    "Received connected_vlink_name - %s",
-                    vtn_neighbor->connected_vlink_name);
+                     "Received connected_vlink_name - %s",
+                     vtn_neighbor->connected_vlink_name);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if (vtn_neighbor->valid[UPLL_IDX_CONN_VLINK_NAME_VN]
-      == UNC_VF_VALID_NO_VALUE
-      && (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE)) {
+             == UNC_VF_VALID_NO_VALUE
+             && (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE)) {
     uuu::upll_strncpy(vtn_neighbor->connected_vlink_name, " ",
-                          kMaxLenVlinkName+1);
+                      kMaxLenVlinkName+1);
   }
   return UPLL_RC_SUCCESS;
 }
@@ -926,15 +953,15 @@ upll_rc_t VrtIfMoMgr::ValidateCapability(IpcReqRespHeader *req,
                                          const char *ctrlr_name) {
   UPLL_FUNC_TRACE;
   upll_rc_t ret_val = UPLL_RC_ERR_GENERIC;
-  
-  if (!req || !ikey ) {
+
+  if (!req || !ikey) {
     UPLL_LOG_DEBUG("ConfigKeyVal / IpcReqRespHeader is NULL");
     return UPLL_RC_ERR_GENERIC;
   }
 
   if (!ctrlr_name) {
     ctrlr_name = reinterpret_cast<char*>((reinterpret_cast<key_user_data_t *>
-                  (ikey->get_user_data()))->ctrlr_id);
+                                          (ikey->get_user_data()))->ctrlr_id);
     if (!ctrlr_name || !strlen(ctrlr_name)) {
       UPLL_LOG_DEBUG("Controller Name is NULL");
       return UPLL_RC_ERR_GENERIC;
@@ -951,13 +978,6 @@ upll_rc_t VrtIfMoMgr::ValidateCapability(IpcReqRespHeader *req,
       result_code = GetCreateCapability(ctrlr_name, ikey->get_key_type(),
                                         &max_instance_count, &max_attrs,
                                         &attrs);
-      if (result_code && (max_instance_count != 0) &&
-         (cur_instance_count >= max_instance_count)) {
-        UPLL_LOG_DEBUG("[%s:%d:%s Instance count %d exceeds %d", __FILE__,
-                      __LINE__, __FUNCTION__, cur_instance_count,
-                      max_instance_count);
-        return UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
-      }
       break;
 
     case UNC_OP_UPDATE:
@@ -977,30 +997,34 @@ upll_rc_t VrtIfMoMgr::ValidateCapability(IpcReqRespHeader *req,
   }
   if (!result_code) {
     UPLL_LOG_DEBUG("key_type - %d is not supported by controller - %s",
-                  ikey->get_key_type(), ctrlr_name);
+                   ikey->get_key_type(), ctrlr_name);
     return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
   }
   val_vrt_if *vrt_if_val = NULL;
   if ((ikey->get_cfg_val())
       && ((ikey->get_cfg_val())->get_st_num() == IpctSt::kIpcStValVrtIf)) {
-     vrt_if_val =  reinterpret_cast<val_vrt_if *>
-                                  (ikey->get_cfg_val()->get_val());
+    vrt_if_val =  reinterpret_cast<val_vrt_if *>
+        (ikey->get_cfg_val()->get_val());
   }
   if (vrt_if_val) {
     if (max_attrs > 0) {
-      ret_val = ValVrtIfAttributeSupportCheck(vrt_if_val, attrs, req->operation);
+      ret_val = ValVrtIfAttributeSupportCheck(vrt_if_val,
+                                              attrs,
+                                              req->operation);
       return ret_val;
     } else {
-      UPLL_LOG_DEBUG("Attribute list is empty for operation %d", req->operation);
+      UPLL_LOG_DEBUG("Attribute list is empty for operation %d",
+                     req->operation);
       return UPLL_RC_ERR_GENERIC;
     }
   }
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t VrtIfMoMgr::ValVrtIfAttributeSupportCheck(val_vrt_if *vrt_if_val,
-                                                    const uint8_t *attrs,
-                                                    unc_keytype_operation_t operation) {
+upll_rc_t VrtIfMoMgr::ValVrtIfAttributeSupportCheck(
+    val_vrt_if *vrt_if_val,
+    const uint8_t *attrs,
+    unc_keytype_operation_t operation) {
   UPLL_FUNC_TRACE;
 
   if (vrt_if_val != NULL) {
@@ -1025,7 +1049,8 @@ upll_rc_t VrtIfMoMgr::ValVrtIfAttributeSupportCheck(val_vrt_if *vrt_if_val,
       }
     }
     if ((vrt_if_val->valid[UPLL_IDX_PREFIXLEN_VI] == UNC_VF_VALID)
-       || (vrt_if_val->valid[UPLL_IDX_PREFIXLEN_VI] == UNC_VF_VALID_NO_VALUE)) {
+        || (vrt_if_val->valid[UPLL_IDX_PREFIXLEN_VI] ==
+            UNC_VF_VALID_NO_VALUE)) {
       if (attrs[unc::capa::vrt_if::kCapPrefixlen] == 0) {
         vrt_if_val->valid[UPLL_IDX_PREFIXLEN_VI] = UNC_VF_INVALID;
         if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
@@ -1034,7 +1059,7 @@ upll_rc_t VrtIfMoMgr::ValVrtIfAttributeSupportCheck(val_vrt_if *vrt_if_val,
         }
       }
     }
-  // #if 0  //CHECK
+    // #if 0  //CHECK
     if ((vrt_if_val->valid[UPLL_IDX_MAC_ADDR_VI] == UNC_VF_VALID)
         || (vrt_if_val->valid[UPLL_IDX_MAC_ADDR_VI] == UNC_VF_VALID_NO_VALUE)) {
       if (attrs[unc::capa::vrt_if::kCapMacAddr] == 0) {
@@ -1055,7 +1080,7 @@ upll_rc_t VrtIfMoMgr::ValVrtIfAttributeSupportCheck(val_vrt_if *vrt_if_val,
         }
       }
     }
-// #endif
+    // #endif
   } else {
     UPLL_LOG_DEBUG("Error vrt_if struct is NULL");
     return UPLL_RC_ERR_GENERIC;
@@ -1065,13 +1090,13 @@ upll_rc_t VrtIfMoMgr::ValVrtIfAttributeSupportCheck(val_vrt_if *vrt_if_val,
 
 upll_rc_t VrtIfMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
                                       ConfigKeyVal *ikey) {
-    UPLL_FUNC_TRACE;
+  UPLL_FUNC_TRACE;
   if (!ikey || !(ikey->get_key())) return UPLL_RC_ERR_GENERIC;
 
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
   key_rename_vnode_info *key_rename = reinterpret_cast<key_rename_vnode_info *>
-                                                    (ikey->get_key());
+      (ikey->get_key());
   key_vrt_if_t * key_vrt = reinterpret_cast<key_vrt_if_t *>
       (ConfigKeyVal::Malloc(sizeof(key_vrt_if_t)));
   if (!strlen(reinterpret_cast<char *>(key_rename->old_unc_vtn_name))) {
@@ -1079,21 +1104,21 @@ upll_rc_t VrtIfMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
     return UPLL_RC_ERR_GENERIC;
   }
   uuu::upll_strncpy(key_vrt->vrt_key.vtn_key.vtn_name,
-         key_rename->old_unc_vtn_name, (kMaxLenVtnName+1));
+                    key_rename->old_unc_vtn_name, (kMaxLenVtnName+1));
   if (UNC_KT_VROUTER == ikey->get_key_type()) {
     if (!strlen(reinterpret_cast<char *>(key_rename->old_unc_vnode_name))) {
       FREE_IF_NOT_NULL(key_vrt);
       return UPLL_RC_ERR_GENERIC;
     }
     uuu::upll_strncpy(key_vrt->vrt_key.vrouter_name,
-       key_rename->old_unc_vnode_name, (kMaxLenVnodeName+1));
+                      key_rename->old_unc_vnode_name, (kMaxLenVnodeName+1));
   } else {
     if (!strlen(reinterpret_cast<char *>(key_rename->new_unc_vnode_name))) {
       FREE_IF_NOT_NULL(key_vrt);
       return UPLL_RC_ERR_GENERIC;
     }
     uuu::upll_strncpy(key_vrt->vrt_key.vrouter_name,
-       key_rename->new_unc_vnode_name, (kMaxLenVnodeName+1));
+                      key_rename->new_unc_vnode_name, (kMaxLenVnodeName+1));
   }
   okey = new ConfigKeyVal(UNC_KT_VRT_IF, IpctSt::kIpcStKeyVrtIf, key_vrt, NULL);
   if (!okey) {
@@ -1107,13 +1132,14 @@ bool VrtIfMoMgr::FilterAttributes(void *&val1, void *val2, bool copy_to_running,
                                   unc_keytype_operation_t op) {
   val_vrt_if_t *val_vrt_if1 = reinterpret_cast<val_vrt_if_t *>(val1);
   val_vrt_if1->valid[UPLL_IDX_DESC_VI] = UNC_VF_INVALID;
-  if (op != UNC_OP_CREATE) 
+  if (op != UNC_OP_CREATE)
     return CompareValidValue(val1, val2, copy_to_running);
   return false;
-
 }
 
-bool VrtIfMoMgr::CompareValidValue(void *&val1, void *val2, bool copy_to_running) {
+bool VrtIfMoMgr::CompareValidValue(void *&val1,
+                                   void *val2,
+                                   bool copy_to_running) {
   UPLL_FUNC_TRACE;
   bool invalid_attr = true;
   val_vrt_if_t *val_vrt_if1 = reinterpret_cast<val_vrt_if_t *>(val1);
@@ -1123,10 +1149,10 @@ bool VrtIfMoMgr::CompareValidValue(void *&val1, void *val2, bool copy_to_running
     return UPLL_RC_ERR_GENERIC;
   }
   for (unsigned int loop = 0;
-        loop < sizeof(val_vrt_if1->valid) / sizeof(uint8_t); ++loop) {
-      if (UNC_VF_INVALID == val_vrt_if1->valid[loop]
-          && UNC_VF_VALID == val_vrt_if2->valid[loop])
-        val_vrt_if1->valid[loop] = UNC_VF_VALID_NO_VALUE;
+       loop < sizeof(val_vrt_if1->valid) / sizeof(uint8_t); ++loop) {
+    if (UNC_VF_INVALID == val_vrt_if1->valid[loop]
+        && UNC_VF_VALID == val_vrt_if2->valid[loop])
+      val_vrt_if1->valid[loop] = UNC_VF_VALID_NO_VALUE;
   }
   if (!copy_to_running) {
     if (UNC_VF_VALID_NO_VALUE == val_vrt_if1->valid[UPLL_IDX_IP_ADDR_VI]) {
@@ -1145,8 +1171,8 @@ bool VrtIfMoMgr::CompareValidValue(void *&val1, void *val2, bool copy_to_running
     if (!copy_to_running ||
         ((UNC_VF_VALID == val_vrt_if1->valid[UPLL_IDX_DESC_VI]) &&
          (!strncmp(reinterpret_cast<char*>(val_vrt_if1->description),
-                 reinterpret_cast<char*>(val_vrt_if2->description),
-                 sizeof(val_vrt_if2->description)))))
+                   reinterpret_cast<char*>(val_vrt_if2->description),
+                   sizeof(val_vrt_if2->description)))))
       val_vrt_if1->valid[UPLL_IDX_DESC_VI] = UNC_VF_INVALID;
   }
   if (UNC_VF_VALID == val_vrt_if1->valid[UPLL_IDX_IP_ADDR_VI]
@@ -1162,8 +1188,8 @@ bool VrtIfMoMgr::CompareValidValue(void *&val1, void *val2, bool copy_to_running
   if (UNC_VF_VALID == val_vrt_if1->valid[UPLL_IDX_MAC_ADDR_VI]
       && UNC_VF_VALID == val_vrt_if2->valid[UPLL_IDX_MAC_ADDR_VI]) {
     if (!memcmp(reinterpret_cast<char*>(val_vrt_if1->macaddr),
-          reinterpret_cast<char*>(val_vrt_if2->macaddr),
-          sizeof(val_vrt_if2->macaddr)))
+                reinterpret_cast<char*>(val_vrt_if2->macaddr),
+                sizeof(val_vrt_if2->macaddr)))
       val_vrt_if1->valid[UPLL_IDX_MAC_ADDR_VI] = UNC_VF_INVALID;
   }
   val_vrt_if1->valid[UPLL_IDX_ADMIN_ST_VI] = UNC_VF_INVALID;
@@ -1174,9 +1200,9 @@ bool VrtIfMoMgr::CompareValidValue(void *&val1, void *val2, bool copy_to_running
        loop < sizeof(val_vrt_if1->valid) / sizeof(val_vrt_if1->valid[0]);
        ++loop) {
     if ((UNC_VF_VALID == (uint8_t) val_vrt_if1->valid[loop]) ||
-       (UNC_VF_VALID_NO_VALUE == (uint8_t) val_vrt_if1->valid[loop])) {
-       invalid_attr = false;
-       break;
+        (UNC_VF_VALID_NO_VALUE == (uint8_t) val_vrt_if1->valid[loop])) {
+      invalid_attr = false;
+      break;
     }
   }
   return invalid_attr;
@@ -1188,12 +1214,12 @@ upll_rc_t VrtIfMoMgr::IsReferenced(ConfigKeyVal *ikey,
                                    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
-  ConfigKeyVal *okey = NULL,*ckv_dhcp = NULL;
+  ConfigKeyVal *okey = NULL, *ckv_dhcp = NULL;
   if (!ikey || !ikey->get_key()) return UPLL_RC_ERR_GENERIC;
 
   result_code = GetChildConfigKey(okey, ikey);
   if (result_code != UPLL_RC_SUCCESS || okey == NULL) {
-    UPLL_LOG_DEBUG("Create key returning error %d",result_code);
+    UPLL_LOG_DEBUG("Create key returning error %d", result_code);
     return result_code;
   }
   /* Getting the Full key information with help of read operation */
@@ -1202,7 +1228,7 @@ upll_rc_t VrtIfMoMgr::IsReferenced(ConfigKeyVal *ikey,
   result_code = ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop, dmi, MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
     result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)?
-                   UPLL_RC_SUCCESS:result_code;
+        UPLL_RC_SUCCESS:result_code;
     DELETE_IF_NOT_NULL(okey);
     return result_code;
   }
@@ -1212,7 +1238,7 @@ upll_rc_t VrtIfMoMgr::IsReferenced(ConfigKeyVal *ikey,
     ckv_dhcp = NULL;
 
     // Is interface part of vlink?
-    GET_USER_DATA_FLAGS(temkey,vlink_flag);
+    GET_USER_DATA_FLAGS(temkey, vlink_flag);
     if (vlink_flag & VIF_TYPE) {
       delete okey;
       return UPLL_RC_ERR_CFG_SEMANTIC;
@@ -1220,27 +1246,28 @@ upll_rc_t VrtIfMoMgr::IsReferenced(ConfigKeyVal *ikey,
 
     /* return error if dhcp relay is enabled on interface */
     if (IsValidKey(temkey->get_key(), uudst::vrouter_interface::kDbiIfName)) {
-      MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager*>
-                                   (GetMoManager(UNC_KT_DHCPRELAY_IF)));
+      MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>
+          (const_cast<MoManager*>
+           (GetMoManager(UNC_KT_DHCPRELAY_IF)));
       result_code = mgr->GetChildConfigKey(ckv_dhcp, temkey);
       if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("Create key returning error %d",result_code);
+        UPLL_LOG_DEBUG("Create key returning error %d", result_code);
         delete okey;
         return result_code;
       }
       DbSubOp dbop1 = {kOpReadExist, kOpMatchNone, kOpInOutNone};
       result_code = mgr->UpdateConfigDB(ckv_dhcp, UPLL_DT_CANDIDATE,
-                         UNC_OP_READ, dmi, &dbop1, MAINTBL);
+                                        UNC_OP_READ, dmi, &dbop1, MAINTBL);
       if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
         uint8_t *if_name = reinterpret_cast<key_dhcp_relay_if *>
-                       (ckv_dhcp->get_key())->if_name; 
+            (ckv_dhcp->get_key())->if_name;
         UPLL_LOG_DEBUG("Cannot delete dhcp relay enabled interface %s",
-                         if_name);
+                       if_name);
         delete ckv_dhcp;
         delete okey;
         return UPLL_RC_ERR_CFG_SEMANTIC;
       } else if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-        UPLL_LOG_DEBUG(" Returning error %d",result_code);
+        UPLL_LOG_DEBUG(" Returning error %d", result_code);
         delete ckv_dhcp;
         delete okey;
         return result_code;
@@ -1261,16 +1288,16 @@ upll_rc_t VrtIfMoMgr::MergeValidate(unc_key_type_t keytype,
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *tkey = NULL;
   if (!ikey || !(ikey->get_key())) {
-     UPLL_LOG_DEBUG("Input is NULL");
-     return UPLL_RC_ERR_GENERIC;
-   }
-   ConfigKeyVal *dup_key = NULL;
-   result_code = GetChildConfigKey(dup_key, ikey);
-   if (UPLL_RC_SUCCESS != result_code) {
-     UPLL_LOG_DEBUG("GetChildConfigKey Failed");
-     if (dup_key) delete dup_key;
-     return result_code;
-   }
+    UPLL_LOG_DEBUG("Input is NULL");
+    return UPLL_RC_ERR_GENERIC;
+  }
+  ConfigKeyVal *dup_key = NULL;
+  result_code = GetChildConfigKey(dup_key, ikey);
+  if (UPLL_RC_SUCCESS != result_code) {
+    UPLL_LOG_DEBUG("GetChildConfigKey Failed");
+    if (dup_key) delete dup_key;
+    return result_code;
+  }
   /*
    * Here getting FULL Key (VTN & VRT Name )
    */
@@ -1290,34 +1317,34 @@ upll_rc_t VrtIfMoMgr::MergeValidate(unc_key_type_t keytype,
      * Checks Host address value is available or not in import ckval
      */
     result_code = DupConfigKeyVal(tkey, travel, MAINTBL);
-    if (UPLL_RC_SUCCESS != result_code){
-       UPLL_LOG_DEBUG("DupConfigKeyVal Failed %d", result_code);
-       if (dup_key) delete dup_key;
-       return result_code;
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG("DupConfigKeyVal Failed %d", result_code);
+      if (dup_key) delete dup_key;
+      return result_code;
     }
 
     val_vrt_if_t *tval = reinterpret_cast<val_vrt_if_t *>
-                                          (GetVal(tkey));
+        (GetVal(tkey));
     if (tval) {
       /* This  we have to check if its success */
-//     UPLL_LOG_DEBUG("NO VALUES WHAT TODO ");
+      //     UPLL_LOG_DEBUG("NO VALUES WHAT TODO ");
       if (tval->valid[UPLL_IDX_IP_ADDR_VI] != UNC_VF_VALID
           && tval->valid[UPLL_IDX_MAC_ADDR_VI] != UNC_VF_VALID) {
-          UPLL_LOG_DEBUG(" MAIN VALUES ARE NOT VALID");
+        UPLL_LOG_DEBUG(" MAIN VALUES ARE NOT VALID");
       } else {
         if (tval->valid[UPLL_IDX_IP_ADDR_VI] == UNC_VF_VALID &&
             tval->valid[UPLL_IDX_PREFIXLEN_VI] == UNC_VF_VALID ) {
-        /* Reset the Valid flag to INVALID and check any one attribute is present
-         * in the DT */
+          /* Reset the Valid flag to INVALID and check any one attribute is present
+           * in the DT */
           tvalid1 = 1;
           tval->valid[UPLL_IDX_IP_ADDR_VI] = UNC_VF_INVALID;
-          tval->valid[UPLL_IDX_PREFIXLEN_VI] = UNC_VF_INVALID; 
+          tval->valid[UPLL_IDX_PREFIXLEN_VI] = UNC_VF_INVALID;
         }
         if (tval->valid[UPLL_IDX_MAC_ADDR_VI] == UNC_VF_VALID) {
           tvalid2 = 1;
           tval->valid[UPLL_IDX_MAC_ADDR_VI] = UNC_VF_INVALID;
         }
-      
+
         if (tvalid1) {
           tval->valid[UPLL_IDX_DESC_VI] = UNC_VF_INVALID;
           tval->valid[UPLL_IDX_ADMIN_ST_VI] = UNC_VF_INVALID;
@@ -1325,13 +1352,13 @@ upll_rc_t VrtIfMoMgr::MergeValidate(unc_key_type_t keytype,
           /* The Same VTN should not have the same MAC and IP address so must
            * remove the if_name */
           memset(reinterpret_cast<key_vrt_if_t *>(tkey->get_key())->if_name, 0,
-                                                       kMaxLenInterfaceName);
+                 kMaxLenInterfaceName);
 
           memset(reinterpret_cast<key_vrt_if_t *>(tkey->get_key())->vrt_key.
-                                   vrouter_name, 0, kMaxLenVnodeName);
+                 vrouter_name, 0, kMaxLenVnodeName);
           /* set Valid for IP address */
           tval->valid[UPLL_IDX_IP_ADDR_VI] = UNC_VF_VALID;
-          tval->valid[UPLL_IDX_PREFIXLEN_VI] = UNC_VF_VALID; 
+          tval->valid[UPLL_IDX_PREFIXLEN_VI] = UNC_VF_VALID;
           result_code = ReadConfigDB(tkey, UPLL_DT_CANDIDATE, UNC_OP_READ, dbop,
                                      dmi, MAINTBL);
           if (UPLL_RC_SUCCESS == result_code) {
@@ -1350,43 +1377,48 @@ upll_rc_t VrtIfMoMgr::MergeValidate(unc_key_type_t keytype,
         }
         if (tvalid2) {
           tval = reinterpret_cast<val_vrt_if_t *>
-                                                (GetVal(tkey));
+              (GetVal(tkey));
           if (tval) {
-             tval->valid[UPLL_IDX_DESC_VI] = UNC_VF_INVALID;
-             tval->valid[UPLL_IDX_ADMIN_ST_VI] = UNC_VF_INVALID;
+            tval->valid[UPLL_IDX_DESC_VI] = UNC_VF_INVALID;
+            tval->valid[UPLL_IDX_ADMIN_ST_VI] = UNC_VF_INVALID;
 
             /* The Same VTN should not have the same MAC and IP address so must
              *  remove the if_name */
-              memset(reinterpret_cast<key_vrt_if_t *>(tkey->get_key())->if_name, 0,
-                                                     kMaxLenInterfaceName);
-          
-              memset(reinterpret_cast<key_vrt_if_t *>(tkey->get_key())->vrt_key.
-                                   vrouter_name, 0, kMaxLenVnodeName);
-             /* set Valid for MAC address */
-              if (tvalid1) {
-                tval->valid[UPLL_IDX_IP_ADDR_VI] = UNC_VF_INVALID;
-                tval->valid[UPLL_IDX_PREFIXLEN_VI] = UNC_VF_INVALID; 
-              }
-              tval->valid[UPLL_IDX_MAC_ADDR_VI] = UNC_VF_VALID;
-              result_code = ReadConfigDB(tkey, UPLL_DT_CANDIDATE, UNC_OP_READ, dbop, dmi,
-                                     MAINTBL);
-              if (UPLL_RC_SUCCESS == result_code) {
-                ikey->ResetWith(tkey);
-                delete tkey;
-                delete dup_key;
-                return UPLL_RC_ERR_MERGE_CONFLICT;
-              }
-              if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
-                UPLL_LOG_DEBUG("ReadConfigDB Failed %d", result_code);
-                if (dup_key) delete dup_key;
-                delete tkey;
-                return result_code;
-              }
-          } 
+            memset(reinterpret_cast<key_vrt_if_t *>(tkey->get_key())->if_name,
+                   0,
+                   kMaxLenInterfaceName);
+
+            memset(reinterpret_cast<key_vrt_if_t *>(tkey->get_key())->vrt_key.
+                   vrouter_name, 0, kMaxLenVnodeName);
+            /* set Valid for MAC address */
+            if (tvalid1) {
+              tval->valid[UPLL_IDX_IP_ADDR_VI] = UNC_VF_INVALID;
+              tval->valid[UPLL_IDX_PREFIXLEN_VI] = UNC_VF_INVALID;
+            }
+            tval->valid[UPLL_IDX_MAC_ADDR_VI] = UNC_VF_VALID;
+            result_code = ReadConfigDB(tkey,
+                                       UPLL_DT_CANDIDATE,
+                                       UNC_OP_READ,
+                                       dbop,
+                                       dmi,
+                                       MAINTBL);
+            if (UPLL_RC_SUCCESS == result_code) {
+              ikey->ResetWith(tkey);
+              delete tkey;
+              delete dup_key;
+              return UPLL_RC_ERR_MERGE_CONFLICT;
+            }
+            if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+              UPLL_LOG_DEBUG("ReadConfigDB Failed %d", result_code);
+              if (dup_key) delete dup_key;
+              delete tkey;
+              return result_code;
+            }
+          }
         }
       }
     } else {
-     UPLL_LOG_DEBUG("Vrt_If val is Empty");
+      UPLL_LOG_DEBUG("Vrt_If val is Empty");
     }
     if (tkey) {
       delete tkey;
@@ -1404,8 +1436,8 @@ upll_rc_t VrtIfMoMgr::MergeValidate(unc_key_type_t keytype,
 upll_rc_t VrtIfMoMgr::GetVexternal(ConfigKeyVal *ikey,
                                    upll_keytype_datatype_t data_type,
                                    DalDmlIntf *dmi,
-                          uint8_t *vexternal, uint8_t *vex_if,
-                          InterfacePortMapInfo &iftype) {
+                                   uint8_t *vexternal, uint8_t *vex_if,
+                                   InterfacePortMapInfo &iftype) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   if (!ikey) {
@@ -1413,23 +1445,23 @@ upll_rc_t VrtIfMoMgr::GetVexternal(ConfigKeyVal *ikey,
     return UPLL_RC_ERR_GENERIC;
   }
   MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager*>(
-                                    GetMoManager(UNC_KT_VLINK)));
+          GetMoManager(UNC_KT_VLINK)));
   if (!mgr) {
-     UPLL_LOG_DEBUG("Instance is NULL");
-     return UPLL_RC_ERR_GENERIC;
+    UPLL_LOG_DEBUG("Instance is NULL");
+    return UPLL_RC_ERR_GENERIC;
   }
   switch (data_type) {
     case UPLL_DT_CANDIDATE:
     case UPLL_DT_IMPORT:
-           result_code = mgr->CheckVnodeInfo(ikey, data_type, dmi);
-           break;
+      result_code = mgr->CheckVnodeInfo(ikey, data_type, dmi);
+      break;
     case UPLL_DT_AUDIT:
-           result_code = mgr->CheckVnodeInfo(ikey, UPLL_DT_RUNNING, dmi);
-           break;
+      result_code = mgr->CheckVnodeInfo(ikey, UPLL_DT_RUNNING, dmi);
+      break;
     default:
-           UPLL_LOG_DEBUG("Invalid Datatype %d", data_type);
-           return UPLL_RC_ERR_GENERIC;
-           break;
+      UPLL_LOG_DEBUG("Invalid Datatype %d", data_type);
+      return UPLL_RC_ERR_GENERIC;
+      break;
   }
   if (UPLL_RC_SUCCESS != result_code
       && UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
@@ -1437,14 +1469,14 @@ upll_rc_t VrtIfMoMgr::GetVexternal(ConfigKeyVal *ikey,
     return UPLL_RC_ERR_GENERIC;
   }
   if (UPLL_RC_SUCCESS == result_code) {
-     iftype = kVlinkConfigured;
+    iftype = kVlinkConfigured;
   } else {
-      if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-        iftype = kVlinkPortMapNotConfigured;
-      } else {
-         UPLL_LOG_DEBUG("Error %d", result_code);
-         return result_code;
-     }
+    if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+      iftype = kVlinkPortMapNotConfigured;
+    } else {
+      UPLL_LOG_DEBUG("Error %d", result_code);
+      return result_code;
+    }
   }
   return UPLL_RC_SUCCESS;
 }
index 48781631ab6d9796ec2fa5dd324a5bbfc7cdce14..3e4e71741b6f44bca6065fae6aa534fd3c6dd3be 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -20,347 +20,350 @@ namespace upll {
 namespace kt_momgr {
 
 class VrtIfMoMgr : public VnodeChildMoMgr {
 private:
-    static unc_key_type_t vrt_if_child[];
-    static BindInfo vrt_if_bind_info[];
-    static BindInfo key_vrt_if_maintbl_update_bind_info[];
+ private:
+  static unc_key_type_t vrt_if_child[];
+  static BindInfo vrt_if_bind_info[];
+  static BindInfo key_vrt_if_maintbl_update_bind_info[];
 
-   /* @brief      Returns admin and portmap information if portmap is 
-    *             valid. Else returns NULL for portmap 
-    *              
-    * @param[in]   ikey     Pointer to ConfigKeyVal
-    * @param[out]  valid_pm portmap is valid 
-    * @param[out]  pm       pointer to portmap informtation if valid_pm
-    *
-    * @retval  UPLL_RC_SUCCESS      Completed successfully.
-    * @retval  UPLL_RC_ERR_GENERIC  Generic failure.
-    * 
-    **/ 
-    virtual upll_rc_t GetPortMap(ConfigKeyVal *ikey, uint8_t &valid_pm,
-                                 val_port_map_t *&pm, uint8_t &valid_admin,
-                                 uint8_t &admin_status) {
-      UPLL_FUNC_TRACE;
-      if (ikey == NULL) return UPLL_RC_ERR_GENERIC; 
-      val_vrt_if *ifval = reinterpret_cast<val_vrt_if *>
-                                                 (GetVal(ikey));
-      if (!ifval) {
-        UPLL_LOG_DEBUG("Invalid param");
-        return UPLL_RC_ERR_GENERIC;
-      }
-      valid_pm = UNC_VF_INVALID;
-      pm = NULL;
-      valid_admin = ifval->valid[UPLL_IDX_ADMIN_ST_VI]; 
-      admin_status = ifval->admin_status;
-      return UPLL_RC_SUCCESS;
+  /* @brief      Returns admin and portmap information if portmap is
+   *             valid. Else returns NULL for portmap
+   *
+   * @param[in]   ikey     Pointer to ConfigKeyVal
+   * @param[out]  valid_pm portmap is valid
+   * @param[out]  pm       pointer to portmap informtation if valid_pm
+   *
+   * @retval  UPLL_RC_SUCCESS      Completed successfully.
+   * @retval  UPLL_RC_ERR_GENERIC  Generic failure.
+   *
+   **/
+  virtual upll_rc_t GetPortMap(ConfigKeyVal *ikey, uint8_t &valid_pm,
+                               val_port_map_t *&pm, uint8_t &valid_admin,
+                               uint8_t &admin_status) {
+    UPLL_FUNC_TRACE;
+    if (ikey == NULL) return UPLL_RC_ERR_GENERIC;
+    val_vrt_if *ifval = reinterpret_cast<val_vrt_if *>
+        (GetVal(ikey));
+    if (!ifval) {
+      UPLL_LOG_DEBUG("Invalid param");
+      return UPLL_RC_ERR_GENERIC;
     }
-    /**
-     * @brief  Gets the valid array position of the variable in the value 
-     *         structure from the table in the specified configuration  
-     *
-     * @param[in]     val      pointer to the value structure 
-     * @param[in]     indx     database index for the variable
-     * @param[out]    valid    position of the variable in the valid array - 
-     *                          NULL if valid does not exist.
-     * @param[in]     dt_type  specifies the configuration
-     * @param[in]     tbl      specifies the table containing the given value 
-     *
-     **/
-    upll_rc_t GetValid(void *val, uint64_t indx, uint8_t *&valid,
-                       upll_keytype_datatype_t dt_type, MoMgrTables tbl) {
-      if (val == NULL) return UPLL_RC_ERR_GENERIC;
-      if (tbl == MAINTBL) {
-        switch (indx) {
-          case uudst::vrouter_interface::kDbiOperStatus:
-            valid = &(reinterpret_cast<val_vrt_if_st *>(val))->
-                                    valid[UPLL_IDX_OPER_STATUS_VRTIS];
-            break;
-          case uudst::vrouter_interface::kDbiDownCount:
-            valid = NULL;
-            break;
-          case uudst::vrouter_interface::kDbiAdminStatus:
-            valid = &(reinterpret_cast<val_vrt_if *>(val))->
-                                    valid[UPLL_IDX_ADMIN_ST_VI];
-            break;
-          case uudst::vrouter_interface::kDbiDesc:
-            valid = &(reinterpret_cast<val_vrt_if *>(val))->
-                                    valid[UPLL_IDX_DESC_VI];
-            break;
-          case uudst::vrouter_interface::kDbiIpAddr:
-            valid = &(reinterpret_cast<val_vrt_if *>(val))->
-                                    valid[UPLL_IDX_IP_ADDR_VI];
-            break;
-          case uudst::vrouter_interface::kDbiMask:
-            valid = &(reinterpret_cast<val_vrt_if *>(val))->
-                                    valid[UPLL_IDX_PREFIXLEN_VI];
-            break;
-          case uudst::vrouter_interface::kDbiMacAddr:
-            valid = &(reinterpret_cast<val_vrt_if *>(val))->
-                                    valid[UPLL_IDX_MAC_ADDR_VI];
-            break;
-          default:
-            return UPLL_RC_ERR_GENERIC;
-        }
+    valid_pm = UNC_VF_INVALID;
+    pm = NULL;
+    valid_admin = ifval->valid[UPLL_IDX_ADMIN_ST_VI];
+    admin_status = ifval->admin_status;
+    return UPLL_RC_SUCCESS;
+  }
+
+  /**
+   * @brief  Gets the valid array position of the variable in the value
+   *         structure from the table in the specified configuration
+   *
+   * @param[in]     val      pointer to the value structure
+   * @param[in]     indx     database index for the variable
+   * @param[out]    valid    position of the variable in the valid array -
+   *                          NULL if valid does not exist.
+   * @param[in]     dt_type  specifies the configuration
+   * @param[in]     tbl      specifies the table containing the given value
+   *
+   **/
+  upll_rc_t GetValid(void *val, uint64_t indx, uint8_t *&valid,
+                     upll_keytype_datatype_t dt_type, MoMgrTables tbl) {
+    if (val == NULL) return UPLL_RC_ERR_GENERIC;
+    if (tbl == MAINTBL) {
+      switch (indx) {
+        case uudst::vrouter_interface::kDbiOperStatus:
+          valid = &(reinterpret_cast<val_vrt_if_st *>(val))->
+              valid[UPLL_IDX_OPER_STATUS_VRTIS];
+          break;
+        case uudst::vrouter_interface::kDbiDownCount:
+          valid = NULL;
+          break;
+        case uudst::vrouter_interface::kDbiAdminStatus:
+          valid = &(reinterpret_cast<val_vrt_if *>(val))->
+              valid[UPLL_IDX_ADMIN_ST_VI];
+          break;
+        case uudst::vrouter_interface::kDbiDesc:
+          valid = &(reinterpret_cast<val_vrt_if *>(val))->
+              valid[UPLL_IDX_DESC_VI];
+          break;
+        case uudst::vrouter_interface::kDbiIpAddr:
+          valid = &(reinterpret_cast<val_vrt_if *>(val))->
+              valid[UPLL_IDX_IP_ADDR_VI];
+          break;
+        case uudst::vrouter_interface::kDbiMask:
+          valid = &(reinterpret_cast<val_vrt_if *>(val))->
+              valid[UPLL_IDX_PREFIXLEN_VI];
+          break;
+        case uudst::vrouter_interface::kDbiMacAddr:
+          valid = &(reinterpret_cast<val_vrt_if *>(val))->
+              valid[UPLL_IDX_MAC_ADDR_VI];
+          break;
+        default:
+          return UPLL_RC_ERR_GENERIC;
       }
-      return UPLL_RC_SUCCESS;
     }
-    /**
-     * @brief  Filters the attributes which need not be sent to controller
-     *
-     * @param[in/out]  val1   first record value instance.
-     * @param[in]      val2   second record value instance.
-     * @param[in]      audit  Not used for VTN
-     * @param[in]      op     Operation to be performed
-     *
-     **/
-    bool FilterAttributes(void *&val1,
-                          void *val2,
-                          bool audit_status,
-                          unc_keytype_operation_t op);
-    /**
-     * @brief  Compares the valid value between two database records.
-     *            if both the values are same, update the valid flag for corresponding
-     *              attribute as invalid in the first record. 
-     *
-     * @param[in/out]  val1  first record value instance.
-     * @param[in]      val2  second record value instance.
-     *
-     **/
-    bool CompareValidValue(void *&val1,
-                           void *val2,
-                           bool audit);
+    return UPLL_RC_SUCCESS;
+  }
+  /**
+   * @brief  Filters the attributes which need not be sent to controller
+   *
+   * @param[in/out]  val1   first record value instance.
+   * @param[in]      val2   second record value instance.
+   * @param[in]      audit  Not used for VTN
+   * @param[in]      op     Operation to be performed
+   *
+   **/
+  bool FilterAttributes(void *&val1,
+                        void *val2,
+                        bool audit_status,
+                        unc_keytype_operation_t op);
+  /**
+   * @brief  Compares the valid value between two database records.
+   *      if both the values are same, update the valid flag for corresponding
+   *        attribute as invalid in the first record.
+   *
+   * @param[in/out]  val1  first record value instance.
+   * @param[in]      val2  second record value instance.
+   *
+   **/
+  bool CompareValidValue(void *&val1,
+                         void *val2,
+                         bool audit);
 
-    upll_rc_t UpdateConfigStatus(ConfigKeyVal *req,
-                                 unc_keytype_operation_t op,
-                                 uint32_t driver_result,
-                                 ConfigKeyVal *upd_key,
-                                 DalDmlIntf *dmi,
-                                 ConfigKeyVal *ctrlr_key = NULL);
-    /**
-     * @brief  Update config status for commit result and vote result.
-     *
-     * @param[in/out]  ckv_running  ConfigKeyVal instance.
-     * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
-     * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
-     *
-     **/
-    upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
-                                      uuc::UpdateCtrlrPhase phase,
-                                      ConfigKeyVal *&ckv_running);
+  upll_rc_t UpdateConfigStatus(ConfigKeyVal *req,
+                               unc_keytype_operation_t op,
+                               uint32_t driver_result,
+                               ConfigKeyVal *upd_key,
+                               DalDmlIntf *dmi,
+                               ConfigKeyVal *ctrlr_key = NULL);
+  /**
+   * @brief  Update config status for commit result and vote result.
+   *
+   * @param[in/out]  ckv_running  ConfigKeyVal instance.
+   * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
+   * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
+   * @param[in]      dmi          Pointer to the DalDmlIntf(DB Interface)
+   *
+   **/
+  upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
+                                    uuc::UpdateCtrlrPhase phase,
+                                    ConfigKeyVal *&ckv_running,
+                                    DalDmlIntf *dmi);
 
-    /**
-     * @Brief  Validates the syntax of the specified key and value structure
-     *         for KT_VRT_IF keytype
-     *
-     * @param[in]  req    This structure contains IpcReqRespHeader
-     *                    (first 8 fields of input request structure).
-     * @param[in]  ikey   ikey contains key and value structure.
-     *
-     * @retval  UPLL_RC_SUCCESS               Successful.
-     * @retval  UPLL_RC_ERR_CFG_SYNTAX        Syntax error.
-     * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE  key_vrt_if is not available.
-     * @retval  UPLL_RC_ERR_GENERIC           Generic failure.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION1   option1 is not valid.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION2   option2 is not valid.
-     */
-    upll_rc_t ValidateMessage(IpcReqRespHeader *req,
-                              ConfigKeyVal *ikey);
+  /**
+   * @Brief  Validates the syntax of the specified key and value structure
+   *         for KT_VRT_IF keytype
+   *
+   * @param[in]  req    This structure contains IpcReqRespHeader
+   *                    (first 8 fields of input request structure).
+   * @param[in]  ikey   ikey contains key and value structure.
+   *
+   * @retval  UPLL_RC_SUCCESS               Successful.
+   * @retval  UPLL_RC_ERR_CFG_SYNTAX        Syntax error.
+   * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE  key_vrt_if is not available.
+   * @retval  UPLL_RC_ERR_GENERIC           Generic failure.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION1   option1 is not valid.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION2   option2 is not valid.
+   */
+  upll_rc_t ValidateMessage(IpcReqRespHeader *req,
+                            ConfigKeyVal *ikey);
 
-    /**
-     * @Brief  Checks if the specified key type(KT_VRT_IF) and
-     *         associated attributes are supported on the given controller,
-     *         based on the valid flag
-     *
-     * @param[in]  req               This structure contains IpcReqRespHeader
-     *                              (first 8 fields of input request structure).
-     * @param[in]  ikey              ikey contains key and value structure.
-     * @param[in]  ctrlr_name        Controller name associated with ikey.
-     *
-     * @retval  UPLL_RC_SUCCESS              Validation succeeded.
-     * @retval  UPLL_RC_ERR_GENERIC          Validation failure.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION1  Option1 is not valid.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION2  Option2 is not valid.
-     */
-    upll_rc_t ValidateCapability(IpcReqRespHeader *req,
-                                 ConfigKeyVal *ikey,
-                                 const char *ctrlr_name);
+  /**
+   * @Brief  Checks if the specified key type(KT_VRT_IF) and
+   *         associated attributes are supported on the given controller,
+   *         based on the valid flag
+   *
+   * @param[in]  req               This structure contains IpcReqRespHeader
+   *                              (first 8 fields of input request structure).
+   * @param[in]  ikey              ikey contains key and value structure.
+   * @param[in]  ctrlr_name        Controller name associated with ikey.
+   *
+   * @retval  UPLL_RC_SUCCESS              Validation succeeded.
+   * @retval  UPLL_RC_ERR_GENERIC          Validation failure.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION1  Option1 is not valid.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION2  Option2 is not valid.
+   */
+  upll_rc_t ValidateCapability(IpcReqRespHeader *req,
+                               ConfigKeyVal *ikey,
+                               const char *ctrlr_name);
 
-    /**
-     * @Brief  Validates the syntax for KT_VRT_IF keytype value structure.
-     *
-     * @param[in]  val_vrt_if  KT_VRT_IF value structure.
-     * @param[in]  operation  Operation type.
-     *
-     * @retval  UPLL_RC_SUCCESS         validation succeeded.
-     * @retval  UPLL_RC_ERR_CFG_SYNTAX  validation failed.
-     */
-    upll_rc_t ValidateVrtIfValue(val_vrt_if *vrt_if_val,
-                                 unc_keytype_operation_t op);
+  /**
+   * @Brief  Validates the syntax for KT_VRT_IF keytype value structure.
+   *
+   * @param[in]  val_vrt_if  KT_VRT_IF value structure.
+   * @param[in]  operation  Operation type.
+   *
+   * @retval  UPLL_RC_SUCCESS         validation succeeded.
+   * @retval  UPLL_RC_ERR_CFG_SYNTAX  validation failed.
+   */
+  upll_rc_t ValidateVrtIfValue(val_vrt_if *vrt_if_val,
+                               unc_keytype_operation_t op);
 
-    /**
-     * @Brief  Checks if the specified key type and
-     *         associated attributes are supported on the given controller,
-     *         based on the valid flag.
-     *
-     * @param[in]  vrt_if_val      KT_VRT_IF value structure.
-     * @param[in]  attrs           Pointer to controller attribute.
-     * @param[in]  operation       Operation name.
-     *
-     * @retval  UPLL_RC_SUCCESS                      validation succeeded.
-     * @retval  UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT  Instance count resource
-     *                                              limit is exceeds. 
-     * @retval  UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR   Attribute NOT_SUPPORTED.
-     * @retval  UPLL_RC_ERR_GENERIC                  Generic failure.
-     */
-    upll_rc_t ValVrtIfAttributeSupportCheck(val_vrt_if *vrt_if_val, 
-                                            const uint8_t *attrs,
-                                            unc_keytype_operation_t operation);
+  /**
+   * @Brief  Checks if the specified key type and
+   *         associated attributes are supported on the given controller,
+   *         based on the valid flag.
+   *
+   * @param[in]  vrt_if_val      KT_VRT_IF value structure.
+   * @param[in]  attrs           Pointer to controller attribute.
+   * @param[in]  operation       Operation name.
+   *
+   * @retval  UPLL_RC_SUCCESS                      validation succeeded.
+   * @retval  UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT  Instance count resource
+   *                                              limit is exceeds.
+   * @retval  UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR   Attribute NOT_SUPPORTED.
+   * @retval  UPLL_RC_ERR_GENERIC                  Generic failure.
+   */
+  upll_rc_t ValVrtIfAttributeSupportCheck(val_vrt_if *vrt_if_val,
+                                          const uint8_t *attrs,
+                                          unc_keytype_operation_t operation);
 
-    /**
-     * @Brief  Validates the syntax of the specified value structure
-     *         for KT_VRT_IF keytype
-     * @param[in]  val_vtn_neighbor  vtn neighbor value structure
-     * @param[in]  operation   operation type.
-     *
-     * @retval  UPLL_RC_SUCCESS            Successful.
-     * @retval  UPLL_RC_ERR_CFG_SYNTAX     Syntax error.
-     *
-     */
-    upll_rc_t ValidateVtnNeighborValue(val_vtn_neighbor *vtn_neighbor,
-      unc_keytype_operation_t operation);
+  /**
+   * @Brief  Validates the syntax of the specified value structure
+   *         for KT_VRT_IF keytype
+   * @param[in]  val_vtn_neighbor  vtn neighbor value structure
+   * @param[in]  operation   operation type.
+   *
+   * @retval  UPLL_RC_SUCCESS            Successful.
+   * @retval  UPLL_RC_ERR_CFG_SYNTAX     Syntax error.
+   *
+   */
+  upll_rc_t ValidateVtnNeighborValue(val_vtn_neighbor *vtn_neighbor,
+                                     unc_keytype_operation_t operation);
 
 
-    upll_rc_t ValidateAttribute(ConfigKeyVal *kval, 
-                                DalDmlIntf *dmi,
-                                IpcReqRespHeader *req = NULL);
-    /**
-     * @brief  Duplicates the input configkeyval including the key and val.  
-     * based on the tbl specified.
-     *
-     * @param[in]  okey   Output Configkeyval - allocated within the function
-     * @param[in]  req    Input ConfigKeyVal to be duplicated.
-     * @param[in]  tbl    specifies if the val structure belongs to the main
-     *                     table/ controller table or rename table.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey,
-                              ConfigKeyVal *&req,
-                              MoMgrTables tbl = MAINTBL);
+  upll_rc_t ValidateAttribute(ConfigKeyVal *kval,
+                              DalDmlIntf *dmi,
+                              IpcReqRespHeader *req = NULL);
+  /**
+   * @brief  Duplicates the input configkeyval including the key and val.
+   * based on the tbl specified.
+   *
+   * @param[in]  okey   Output Configkeyval - allocated within the function
+   * @param[in]  req    Input ConfigKeyVal to be duplicated.
+   * @param[in]  tbl    specifies if the val structure belongs to the main
+   *                     table/ controller table or rename table.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey,
+                            ConfigKeyVal *&req,
+                            MoMgrTables tbl = MAINTBL);
 
-    /**
-     * @brief  Allocates for the specified val in the given configuration in the
-     *       specified table.   
-     *
-     * @param[in/out]  ck_val   Reference pointer to configval structure 
-     *                          allocated.      
-     * @param[in]      dt_type  specifies the configuration candidate/running/
-     *                          state 
-     * @param[in]      tbl      specifies if the corresponding table is the  
-     *                          main table / controller table or rename table.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t AllocVal(ConfigVal *&ck_val,
-                       upll_keytype_datatype_t dt_type,
-                       MoMgrTables tbl = MAINTBL);
+  /**
+   * @brief  Allocates for the specified val in the given configuration in the
+   *       specified table.
+   *
+   * @param[in/out]  ck_val   Reference pointer to configval structure
+   *                          allocated.
+   * @param[in]      dt_type  specifies the configuration candidate/running/
+   *                          state
+   * @param[in]      tbl      specifies if the corresponding table is the
+   *                          main table / controller table or rename table.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t AllocVal(ConfigVal *&ck_val,
+                     upll_keytype_datatype_t dt_type,
+                     MoMgrTables tbl = MAINTBL);
 
-  /* @brief     To convert the value structure read from DB to 
+  /* @brief     To convert the value structure read from DB to
    *            VTNService during READ operations
-   * @param[in/out] ikey      Pointer to the ConfigKeyVal Structure             
-   * 
+   * @param[in/out] ikey      Pointer to the ConfigKeyVal Structure
+   *
    * @retval  UPLL_RC_SUCCESS                    Completed successfully.
    * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
    *
    **/
   upll_rc_t AdaptValToVtnService(ConfigKeyVal *ikey);
 
-    
-    /**
-     * @brief      Method to get a configkeyval of the parent keytype 
-     *
-     * @param[in/out]  okey           pointer to parent ConfigKeyVal 
-     * @param[in]      ikey           pointer to the child configkeyval from 
-     * which the parent configkey val is obtained.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    uint8_t* GetControllerId(ConfigKeyVal *ck_vrt,
-                             upll_keytype_datatype_t dt_type, DalDmlIntf *dmi);
 
-    /* Rename */
-    upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey,
-                              ConfigKeyVal *ikey);
-    bool GetRenameKeyBindInfo(unc_key_type_t key_type,
-                              BindInfo *&binfo,
-                              int &nattr,
-                              MoMgrTables tbl);
+  /**
+   * @brief      Method to get a configkeyval of the parent keytype
+   *
+   * @param[in/out]  okey           pointer to parent ConfigKeyVal
+   * @param[in]      ikey           pointer to the child configkeyval from
+   * which the parent configkey val is obtained.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  uint8_t* GetControllerId(ConfigKeyVal *ck_vrt,
+                           upll_keytype_datatype_t dt_type, DalDmlIntf *dmi);
+
+  /* Rename */
+  upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey,
+                            ConfigKeyVal *ikey);
+  bool GetRenameKeyBindInfo(unc_key_type_t key_type,
+                            BindInfo *&binfo,
+                            int &nattr,
+                            MoMgrTables tbl);
 
-  public:
-    VrtIfMoMgr();
-    virtual ~VrtIfMoMgr() {
-      for (int i = 0; i < ntable; i++)
-        if (table[i]) {
-          delete table[i];
-        }
-      delete[] table;
-    }
-    /**
-     * @brief      Method to check if individual portions of a key are valid
-     *
-     * @param[in/out]  ikey                pointer to ConfigKeyVal referring to
-     *                                     a UNC resource
-     * @param[in]      index               db index associated with the variable
-     *
-     * @retval         true                input key is valid
-     * @retval         false               input key is invalid.
-     **/
-    bool IsValidKey(void *tkey,
-                    uint64_t index);
-    /**
-     * @Brief  Validates the syntax for KT_VRT_IF Keytype key structure.
-     *
-     * @param[in]  key_vrt_if  KT_VRT_IF key structure.
-     * @param[in]  operation operation type.
-     *
-     * @retval  UPLL_RC_SUCCESS         validation succeeded.
-     * @retval  UPLL_RC_ERR_CFG_SYNTAX  validation failed.
-     **/
-    upll_rc_t ValidateVrtIfKey(key_vrt_if *vrt_if_key,
-                unc_keytype_operation_t operation = UNC_OP_INVALID);
-    upll_rc_t IsReferenced(ConfigKeyVal *ikey,
-                           upll_keytype_datatype_t dt_type,
-                           DalDmlIntf *dmi);
+ public:
+  VrtIfMoMgr();
+  virtual ~VrtIfMoMgr() {
+    for (int i = 0; i < ntable; i++)
+      if (table[i]) {
+        delete table[i];
+      }
+    delete[] table;
+  }
+  /**
+   * @brief      Method to check if individual portions of a key are valid
+   *
+   * @param[in/out]  ikey                pointer to ConfigKeyVal referring to
+   *                                     a UNC resource
+   * @param[in]      index               db index associated with the variable
+   *
+   * @retval         true                input key is valid
+   * @retval         false               input key is invalid.
+   **/
+  bool IsValidKey(void *tkey,
+                  uint64_t index);
+  /**
+   * @Brief  Validates the syntax for KT_VRT_IF Keytype key structure.
+   *
+   * @param[in]  key_vrt_if  KT_VRT_IF key structure.
+   * @param[in]  operation operation type.
+   *
+   * @retval  UPLL_RC_SUCCESS         validation succeeded.
+   * @retval  UPLL_RC_ERR_CFG_SYNTAX  validation failed.
+   **/
+  upll_rc_t ValidateVrtIfKey(
+      key_vrt_if *vrt_if_key,
+      unc_keytype_operation_t operation = UNC_OP_INVALID);
+  upll_rc_t IsReferenced(ConfigKeyVal *ikey,
+                         upll_keytype_datatype_t dt_type,
+                         DalDmlIntf *dmi);
 
-    upll_rc_t MergeValidate(unc_key_type_t keytype,
-                            const char *ctrlr_id,
-                            ConfigKeyVal *ikey,
-                            DalDmlIntf *dmi);
+  upll_rc_t MergeValidate(unc_key_type_t keytype,
+                          const char *ctrlr_id,
+                          ConfigKeyVal *ikey,
+                          DalDmlIntf *dmi);
 
-    upll_rc_t GetVexternal(ConfigKeyVal *ikey, 
-                           upll_keytype_datatype_t data_type,
-                           DalDmlIntf *dmi,
-                           uint8_t *vexternal, uint8_t *vex_if,
-                           InterfacePortMapInfo &iftype);
-/**
-     * @brief      Method to get a configkeyval of a specified keytype from an
-     *                       input configkeyval
-     *
-     * @param[in/out]  okey                 pointer to output ConfigKeyVal 
-     * @param[in]      parent_key           pointer to the configkeyval from
-     *               which the output configkey val is initialized.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     */
-    upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey,
-                                ConfigKeyVal *parent_key);
+  upll_rc_t GetVexternal(ConfigKeyVal *ikey,
+                         upll_keytype_datatype_t data_type,
+                         DalDmlIntf *dmi,
+                         uint8_t *vexternal, uint8_t *vex_if,
+                         InterfacePortMapInfo &iftype);
+  /**
+   * @brief      Method to get a configkeyval of a specified keytype from an
+   *                       input configkeyval
+   *
+   * @param[in/out]  okey                 pointer to output ConfigKeyVal
+   * @param[in]      parent_key           pointer to the configkeyval from
+   *               which the output configkey val is initialized.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   */
+  upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey,
+                              ConfigKeyVal *parent_key);
 
-    upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey,
-                                 ConfigKeyVal *ikey);
+  upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey,
+                               ConfigKeyVal *ikey);
 };
 
 }  // namespace kt_momgr
index 50694ef142bad4e95fa6f2f9d7804dcec2d1d817..dfb9a6d4a01aaf9062bfab055116fc3f618db9cc 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -16,115 +16,116 @@ namespace upll {
 namespace kt_momgr {
 
 BindInfo VrtMoMgr::vrt_bind_info[] = {
-    { uudst::vrouter::kDbiVtnName, CFG_KEY, offsetof(key_vrt, vtn_key.vtn_name),
-      uud::kDalChar, 32 },
-    { uudst::vrouter::kDbiVrtName, CFG_KEY, offsetof(key_vrt, vrouter_name),
-      uud::kDalChar, 32 },
-    { uudst::vrouter::kDbiCtrlrName, CFG_VAL, offsetof(val_vrt, controller_id),
-      uud::kDalChar, 32 },
-    { uudst::vrouter::kDbiCtrlrName, CK_VAL, offsetof(key_user_data, ctrlr_id),
-      uud::kDalChar, 32 },
-    { uudst::vrouter::kDbiDomainId, CFG_VAL, offsetof(val_vrt, domain_id),
-      uud::kDalChar, 32 },
-    { uudst::vrouter::kDbiDomainId, CK_VAL, offsetof(key_user_data, domain_id),
-      uud::kDalChar, 32 },
-    { uudst::vrouter::kDbiVrtDesc, CFG_VAL, offsetof(val_vrt, vrt_description),
-      uud::kDalChar, 128 },
-    { uudst::vrouter::kDbiDhcprelayAdminstatus, CFG_VAL, offsetof(
-        val_vrt, dhcp_relay_admin_status),
-      uud::kDalUint8, 1 },
-    { uudst::vrouter::kDbiOperStatus, ST_VAL, offsetof(val_db_vrt_st,
-                                                       vrt_val_st.oper_status),
-      uud::kDalUint8, 1 },
-    { uudst::vrouter::kDbiDownCount, ST_VAL, offsetof(val_db_vrt_st,
-                                                      down_count),
-      uud::kDalUint32, 1 },
-    { uudst::vrouter::kDbiValidCtrlrName, CFG_META_VAL, offsetof(
-        val_vrt, valid[UPLL_IDX_CONTROLLER_ID_VRT]),
-      uud::kDalUint8, 1 },
-    { uudst::vrouter::kDbiValidDomainId, CFG_META_VAL, offsetof(
-        val_vrt, valid[UPLL_IDX_DOMAIN_ID_VRT]),
-      uud::kDalUint8, 1 },
-    { uudst::vrouter::kDbiValidDesc, CFG_META_VAL, offsetof(
-        val_vrt, valid[UPLL_IDX_DESC_VRT]),
-      uud::kDalUint8, 1 },
-    { uudst::vrouter::kDbiValidDhcprelayAdminstatus, CFG_META_VAL, offsetof(
-        val_vrt, valid[UPLL_IDX_DHCP_RELAY_ADMIN_STATUS_VRT]),
-      uud::kDalUint8, 1 },
-    { uudst::vrouter::kDbiValidOperStatus, ST_META_VAL, offsetof(
-        val_vrt_st, valid[UPLL_IDX_OPER_STATUS_VRTS]),
-      uud::kDalUint8, 1 },
-    { uudst::vrouter::kDbiCsCtrlrName, CS_VAL, offsetof(
-        val_vrt, cs_attr[UPLL_IDX_CONTROLLER_ID_VRT]),
-      uud::kDalUint8, 1 },
-    { uudst::vrouter::kDbiCsDomainId, CS_VAL, offsetof(
-        val_vrt, cs_attr[UPLL_IDX_DOMAIN_ID_VRT]),
-      uud::kDalUint8, 1 },
-    { uudst::vrouter::kDbiCsVrtDesc, CS_VAL, offsetof(
-        val_vrt, cs_attr[UPLL_IDX_DESC_VRT]),
-      uud::kDalUint8, 1 },
-    { uudst::vrouter::kDbiCsDhcprelayAdminstatus, CS_VAL, offsetof(
-        val_vrt, cs_attr[UPLL_IDX_DHCP_RELAY_ADMIN_STATUS_VRT]),
-      uud::kDalUint8, 1 },
-    { uudst::vrouter::kDbiCsRowstatus, CS_VAL, offsetof(val_vrt, cs_row_status),
-      uud::kDalUint8, 1 },
-    { uudst::vrouter::kDbiVrtFlags, CK_VAL, offsetof(key_user_data_t, flags),
-      uud::kDalUint8, 1 } };
+  { uudst::vrouter::kDbiVtnName, CFG_KEY, offsetof(key_vrt, vtn_key.vtn_name),
+    uud::kDalChar, 32 },
+  { uudst::vrouter::kDbiVrtName, CFG_KEY, offsetof(key_vrt, vrouter_name),
+    uud::kDalChar, 32 },
+  { uudst::vrouter::kDbiCtrlrName, CFG_VAL, offsetof(val_vrt, controller_id),
+    uud::kDalChar, 32 },
+  { uudst::vrouter::kDbiCtrlrName, CK_VAL, offsetof(key_user_data, ctrlr_id),
+    uud::kDalChar, 32 },
+  { uudst::vrouter::kDbiDomainId, CFG_VAL, offsetof(val_vrt, domain_id),
+    uud::kDalChar, 32 },
+  { uudst::vrouter::kDbiDomainId, CK_VAL, offsetof(key_user_data, domain_id),
+    uud::kDalChar, 32 },
+  { uudst::vrouter::kDbiVrtDesc, CFG_VAL, offsetof(val_vrt, vrt_description),
+    uud::kDalChar, 128 },
+  { uudst::vrouter::kDbiDhcprelayAdminstatus, CFG_VAL, offsetof(
+          val_vrt, dhcp_relay_admin_status),
+  uud::kDalUint8, 1 },
+  { uudst::vrouter::kDbiOperStatus, ST_VAL, offsetof(val_db_vrt_st,
+                                                     vrt_val_st.oper_status),
+  uud::kDalUint8, 1 },
+  { uudst::vrouter::kDbiDownCount, ST_VAL, offsetof(val_db_vrt_st,
+                                                    down_count),
+  uud::kDalUint32, 1 },
+  { uudst::vrouter::kDbiValidCtrlrName, CFG_META_VAL, offsetof(
+          val_vrt, valid[UPLL_IDX_CONTROLLER_ID_VRT]),
+  uud::kDalUint8, 1 },
+  { uudst::vrouter::kDbiValidDomainId, CFG_META_VAL, offsetof(
+          val_vrt, valid[UPLL_IDX_DOMAIN_ID_VRT]),
+  uud::kDalUint8, 1 },
+  { uudst::vrouter::kDbiValidDesc, CFG_META_VAL, offsetof(
+          val_vrt, valid[UPLL_IDX_DESC_VRT]),
+  uud::kDalUint8, 1 },
+  { uudst::vrouter::kDbiValidDhcprelayAdminstatus, CFG_META_VAL, offsetof(
+          val_vrt, valid[UPLL_IDX_DHCP_RELAY_ADMIN_STATUS_VRT]),
+  uud::kDalUint8, 1 },
+  { uudst::vrouter::kDbiValidOperStatus, ST_META_VAL, offsetof(
+          val_vrt_st, valid[UPLL_IDX_OPER_STATUS_VRTS]),
+  uud::kDalUint8, 1 },
+  { uudst::vrouter::kDbiCsCtrlrName, CS_VAL, offsetof(
+          val_vrt, cs_attr[UPLL_IDX_CONTROLLER_ID_VRT]),
+  uud::kDalUint8, 1 },
+  { uudst::vrouter::kDbiCsDomainId, CS_VAL, offsetof(
+          val_vrt, cs_attr[UPLL_IDX_DOMAIN_ID_VRT]),
+  uud::kDalUint8, 1 },
+  { uudst::vrouter::kDbiCsVrtDesc, CS_VAL, offsetof(
+          val_vrt, cs_attr[UPLL_IDX_DESC_VRT]),
+  uud::kDalUint8, 1 },
+  { uudst::vrouter::kDbiCsDhcprelayAdminstatus, CS_VAL, offsetof(
+          val_vrt, cs_attr[UPLL_IDX_DHCP_RELAY_ADMIN_STATUS_VRT]),
+  uud::kDalUint8, 1 },
+  { uudst::vrouter::kDbiCsRowstatus, CS_VAL, offsetof(val_vrt, cs_row_status),
+    uud::kDalUint8, 1 },
+  { uudst::vrouter::kDbiVrtFlags, CK_VAL, offsetof(key_user_data_t, flags),
+    uud::kDalUint8, 1 } };
 
 BindInfo VrtMoMgr::vrt_rename_bind_info[] = {
-    { uudst::vnode_rename::kDbiUncVtnName, CFG_KEY, offsetof(key_vrt,
-                                                             vtn_key.vtn_name),
-      uud::kDalChar, 32 },
-    { uudst::vnode_rename::kDbiUncvnodeName, CFG_KEY, offsetof(key_vrt,
-                                                               vrouter_name),
-      uud::kDalChar, 32 },
-    { uudst::vnode_rename::kDbiCtrlrName, CK_VAL, offsetof(key_user_data_t,
-                                                           ctrlr_id),
-      uud::kDalChar, 32 },
-    { uudst::vnode_rename::kDbiDomainId, CK_VAL, offsetof(key_user_data_t,
-                                                          domain_id),
-      uud::kDalChar, 32 },
-    { uudst::vnode_rename::kDbiCtrlrVtnName, CFG_VAL, offsetof(val_rename_vnode,
-                                                               ctrlr_vtn_name),
-      uud::kDalChar, 32 },
-    { uudst::vnode_rename::kDbiCtrlrVnodeName, CFG_VAL, offsetof(
-        val_rename_vnode, ctrlr_vnode_name),
-      uud::kDalChar, 32 } };
+  { uudst::vnode_rename::kDbiUncVtnName, CFG_KEY, offsetof(key_vrt,
+                                                           vtn_key.vtn_name),
+  uud::kDalChar, 32 },
+  { uudst::vnode_rename::kDbiUncvnodeName, CFG_KEY, offsetof(key_vrt,
+                                                             vrouter_name),
+  uud::kDalChar, 32 },
+  { uudst::vnode_rename::kDbiCtrlrName, CK_VAL, offsetof(key_user_data_t,
+                                                         ctrlr_id),
+  uud::kDalChar, 32 },
+  { uudst::vnode_rename::kDbiDomainId, CK_VAL, offsetof(key_user_data_t,
+                                                        domain_id),
+  uud::kDalChar, 32 },
+  { uudst::vnode_rename::kDbiCtrlrVtnName, CFG_VAL, offsetof(val_rename_vnode,
+                                                             ctrlr_vtn_name),
+  uud::kDalChar, 32 },
+  { uudst::vnode_rename::kDbiCtrlrVnodeName, CFG_VAL, offsetof(
+          val_rename_vnode, ctrlr_vnode_name),
+  uud::kDalChar, 32 } };
 
 unc_key_type_t VrtMoMgr::vrt_child[] = { UNC_KT_VRT_IPROUTE,
-                                         UNC_KT_DHCPRELAY_SERVER,
-                                         UNC_KT_DHCPRELAY_IF, UNC_KT_VRT_IF };
+  UNC_KT_VRT_IF,
+  UNC_KT_DHCPRELAY_SERVER,
+  UNC_KT_DHCPRELAY_IF};
 
 BindInfo VrtMoMgr::key_vrt_maintbl_update_bind_info[] = {
-    { uudst::vrouter::kDbiVtnName, CFG_MATCH_KEY, offsetof(key_vrt_t,
-                                                           vtn_key.vtn_name),
-      uud::kDalChar, kMaxLenVtnName + 1 },
-    { uudst::vrouter::kDbiVrtName, CFG_MATCH_KEY, offsetof(key_vrt_t,
-                                                           vrouter_name),
-      uud::kDalChar, kMaxLenVnodeName + 1 },
-    { uudst::vrouter::kDbiVtnName, CFG_INPUT_KEY, offsetof(
-        key_rename_vnode_info_t, new_unc_vtn_name),
-      uud::kDalChar, kMaxLenVtnName + 1 },
-    { uudst::vrouter::kDbiVrtName, CFG_INPUT_KEY, offsetof(
-        key_rename_vnode_info_t, new_unc_vnode_name),
-      uud::kDalChar, kMaxLenVnodeName + 1 },
-    { uudst::vrouter::kDbiVrtFlags, CK_VAL, offsetof(key_user_data_t,
-                                                            flags),
-      uud::kDalUint8, 1 } };
+  { uudst::vrouter::kDbiVtnName, CFG_MATCH_KEY, offsetof(key_vrt_t,
+                                                         vtn_key.vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1 },
+  { uudst::vrouter::kDbiVrtName, CFG_MATCH_KEY, offsetof(key_vrt_t,
+                                                         vrouter_name),
+  uud::kDalChar, kMaxLenVnodeName + 1 },
+  { uudst::vrouter::kDbiVtnName, CFG_INPUT_KEY, offsetof(
+          key_rename_vnode_info_t, new_unc_vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1 },
+  { uudst::vrouter::kDbiVrtName, CFG_INPUT_KEY, offsetof(
+          key_rename_vnode_info_t, new_unc_vnode_name),
+  uud::kDalChar, kMaxLenVnodeName + 1 },
+  { uudst::vrouter::kDbiVrtFlags, CK_VAL, offsetof(key_user_data_t,
+                                                   flags),
+  uud::kDalUint8, 1 } };
 
 BindInfo VrtMoMgr::key_vrt_renametbl_update_bind_info[] = {
-    { uudst::vnode_rename::kDbiUncVtnName, CFG_MATCH_KEY, offsetof(
-        key_vrt_t, vtn_key.vtn_name),
-      uud::kDalChar, kMaxLenVtnName + 1 },
-    { uudst::vnode_rename::kDbiUncvnodeName, CFG_MATCH_KEY, offsetof(
-        key_vrt_t, vrouter_name),
-      uud::kDalChar, kMaxLenVnodeName + 1 },
-    { uudst::vnode_rename::kDbiUncVtnName, CFG_INPUT_KEY, offsetof(
-        key_rename_vnode_info_t, new_unc_vtn_name),
-      uud::kDalChar, kMaxLenVtnName + 1 },
-    { uudst::vnode_rename::kDbiUncvnodeName, CFG_INPUT_KEY, offsetof(
-        key_rename_vnode_info_t, new_unc_vnode_name),
-      uud::kDalChar, kMaxLenVnodeName + 1 }, };
+  { uudst::vnode_rename::kDbiUncVtnName, CFG_MATCH_KEY, offsetof(
+          key_vrt_t, vtn_key.vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1 },
+  { uudst::vnode_rename::kDbiUncvnodeName, CFG_MATCH_KEY, offsetof(
+          key_vrt_t, vrouter_name),
+  uud::kDalChar, kMaxLenVnodeName + 1 },
+  { uudst::vnode_rename::kDbiUncVtnName, CFG_INPUT_KEY, offsetof(
+          key_rename_vnode_info_t, new_unc_vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1 },
+  { uudst::vnode_rename::kDbiUncvnodeName, CFG_INPUT_KEY, offsetof(
+          key_rename_vnode_info_t, new_unc_vnode_name),
+  uud::kDalChar, kMaxLenVnodeName + 1 }, };
 
 /*
  * Based on the key type the bind info will pass
@@ -143,7 +144,7 @@ bool VrtMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo,
     UPLL_LOG_DEBUG("Invalid Table ");
     return PFC_FALSE;
   }
+
   return PFC_TRUE;
 }
 VrtMoMgr::VrtMoMgr() {
@@ -151,12 +152,12 @@ VrtMoMgr::VrtMoMgr() {
   ntable = MAX_MOMGR_TBLS;
   table = new Table *[ntable];
   table[MAINTBL] = new Table(uudst::kDbiVrtTbl, UNC_KT_VROUTER, vrt_bind_info,
-                         IpctSt::kIpcStKeyVrt, IpctSt::kIpcStValVrt,
-                         (uudst::vrouter::kDbiVrtNumCols+2));
+                             IpctSt::kIpcStKeyVrt, IpctSt::kIpcStValVrt,
+                             (uudst::vrouter::kDbiVrtNumCols+2));
   table[RENAMETBL] = new Table(uudst::kDbiVNodeRenameTbl, UNC_KT_VROUTER,
-                  vrt_rename_bind_info, IpctSt::kIpcInvalidStNum,
-                  IpctSt::kIpcInvalidStNum,
-                  uudst::vnode_rename::kDbiVnodeRenameNumCols);
+                               vrt_rename_bind_info, IpctSt::kIpcInvalidStNum,
+                               IpctSt::kIpcInvalidStNum,
+                               uudst::vnode_rename::kDbiVnodeRenameNumCols);
   table[CTRLRTBL] = NULL;
   nchild = sizeof(vrt_child) / sizeof(*vrt_child);
   child = vrt_child;
@@ -172,7 +173,7 @@ bool VrtMoMgr::IsValidKey(void *key, uint64_t index) {
       ret_val = ValidateKey(reinterpret_cast<char *>(vrt_key->vtn_key.vtn_name),
                             kMinLenVtnName, kMaxLenVtnName);
       if (ret_val != UPLL_RC_SUCCESS) {
-        UPLL_LOG_INFO("VTN Name is not valid(%d)", ret_val);
+        UPLL_LOG_TRACE("VTN Name is not valid(%d)", ret_val);
         return false;
       }
       break;
@@ -181,7 +182,7 @@ bool VrtMoMgr::IsValidKey(void *key, uint64_t index) {
       ret_val = ValidateKey(reinterpret_cast<char *>(vrt_key->vrouter_name),
                             kMinLenVnodeName, kMaxLenVnodeName);
       if (ret_val != UPLL_RC_SUCCESS) {
-        UPLL_LOG_INFO("VRouter Name is not valid(%d)", ret_val);
+        UPLL_LOG_TRACE("VRouter Name is not valid(%d)", ret_val);
         return false;
       }
       break;
@@ -199,22 +200,22 @@ upll_rc_t VrtMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   key_vrt *vrt_key = NULL;
   if (okey && (okey->get_key())) {
-    vrt_key = reinterpret_cast<key_vrt_t *> 
-               (okey->get_key());
+    vrt_key = reinterpret_cast<key_vrt_t *>
+        (okey->get_key());
   } else {
     vrt_key = reinterpret_cast<key_vrt_t *>
-                  (ConfigKeyVal::Malloc(sizeof(key_vrt_t)));
+        (ConfigKeyVal::Malloc(sizeof(key_vrt_t)));
   }
   void *pkey;
   if (parent_key == NULL) {
     if (okey == NULL)
       okey = new ConfigKeyVal(UNC_KT_VROUTER, IpctSt::kIpcStKeyVrt, vrt_key,
-                            NULL);
+                              NULL);
     else if (okey->get_key() != vrt_key)
-      okey->SetKey(IpctSt::kIpcStKeyVrt,vrt_key);
+      okey->SetKey(IpctSt::kIpcStKeyVrt, vrt_key);
     return UPLL_RC_SUCCESS;
   } else {
-     pkey = parent_key->get_key();
+    pkey = parent_key->get_key();
   }
   if (!pkey) {
     if (!okey || !(okey->get_key()))
@@ -226,47 +227,52 @@ upll_rc_t VrtMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
   switch (parent_key->get_key_type()) {
     case UNC_KT_VROUTER:
       uuu::upll_strncpy(vrt_key->vrouter_name,
-             reinterpret_cast<key_vrt *>(pkey)->vrouter_name,
-             (kMaxLenVnodeName+1));
+                        reinterpret_cast<key_vrt *>(pkey)->vrouter_name,
+                        (kMaxLenVnodeName+1));
       uuu::upll_strncpy(vrt_key->vtn_key.vtn_name,
-             reinterpret_cast<key_vtn *>(pkey)->vtn_name,
-             (kMaxLenVtnName+1) );
+                        reinterpret_cast<key_vtn *>(pkey)->vtn_name,
+                        (kMaxLenVtnName+1) );
       break;
     case UNC_KT_VLINK:
       {
-      uint8_t *vnode_name;
-      uint8_t flags = 0;
-      val_vlink *vlink_val = reinterpret_cast<val_vlink *>(GetVal(parent_key));
-      if (!vlink_val) {
-        if (!okey || !(okey->get_key()))
-          free(vrt_key);
-        return UPLL_RC_ERR_GENERIC;
-      }
-      GET_USER_DATA_FLAGS(parent_key->get_cfg_val(), flags);
-      flags &=  VLINK_FLAG_NODE_POS;
-      UPLL_LOG_DEBUG("Vlink flag node position %d",flags);
-      if (flags == kVlinkVnode2) {
-        vnode_name = vlink_val->vnode2_name;
-      } else {
-        vnode_name = vlink_val->vnode1_name;
-      }
-      uuu::upll_strncpy(vrt_key->vrouter_name, vnode_name,
+        uint8_t *vnode_name;
+        uint8_t flags = 0;
+        val_vlink *vlink_val = reinterpret_cast<val_vlink *>(
+            GetVal(parent_key));
+        if (!vlink_val) {
+          if (!okey || !(okey->get_key()))
+            free(vrt_key);
+          return UPLL_RC_ERR_GENERIC;
+        }
+        GET_USER_DATA_FLAGS(parent_key->get_cfg_val(), flags);
+        flags &=  VLINK_FLAG_NODE_POS;
+        UPLL_LOG_DEBUG("Vlink flag node position %d", flags);
+        if (flags == kVlinkVnode2) {
+          vnode_name = vlink_val->vnode2_name;
+        } else {
+          vnode_name = vlink_val->vnode1_name;
+        }
+        uuu::upll_strncpy(vrt_key->vrouter_name, vnode_name,
                           (kMaxLenVnodeName + 1));
-      uuu::upll_strncpy(vrt_key->vtn_key.vtn_name, reinterpret_cast<key_vlink *>(
-                        parent_key->get_key())->vtn_key.vtn_name , (kMaxLenVtnName+1));
-     }
-     break;       
+        uuu::upll_strncpy(vrt_key->vtn_key.vtn_name,
+                          reinterpret_cast<key_vlink *>(
+                parent_key->get_key())->vtn_key.vtn_name , (kMaxLenVtnName+1));
+      }
+      break;
     case UNC_KT_VTN:
     default:
       uuu::upll_strncpy(vrt_key->vtn_key.vtn_name,
-             reinterpret_cast<key_vtn *>(pkey)->vtn_name,
-              (kMaxLenVtnName+1));
+                        reinterpret_cast<key_vtn *>(pkey)->vtn_name,
+                        (kMaxLenVtnName+1));
       *(vrt_key->vrouter_name) = *"";
   }
-//  cout << "GetChildConfigKey " << vrt_key->vtn_key.vtn_name << " ";
-//  cout << vrt_key->vrouter_name << "";
+  //  cout << "GetChildConfigKey " << vrt_key->vtn_key.vtn_name << " ";
+  //  cout << vrt_key->vrouter_name << "";
   if (!okey)
-    okey = new ConfigKeyVal(UNC_KT_VROUTER, IpctSt::kIpcStKeyVrt, vrt_key, NULL);
+    okey = new ConfigKeyVal(UNC_KT_VROUTER,
+                            IpctSt::kIpcStKeyVrt,
+                            vrt_key,
+                            NULL);
   else  if (okey->get_key() != vrt_key)
     okey->SetKey(IpctSt::kIpcStKeyVrt, vrt_key);
   if (okey == NULL)
@@ -293,22 +299,23 @@ upll_rc_t VrtMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
   key_vtn *vtn_key = reinterpret_cast<key_vtn *>
       (ConfigKeyVal::Malloc(sizeof(key_vtn)));
   uuu::upll_strncpy(vtn_key->vtn_name,
-         reinterpret_cast<key_vrt *>(pkey)->vtn_key.vtn_name,
-         (kMaxLenVtnName+1));
+                    reinterpret_cast<key_vrt *>(pkey)->vtn_key.vtn_name,
+                    (kMaxLenVtnName+1));
   okey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, vtn_key, NULL);
   if (okey == NULL)
-      result_code = UPLL_RC_ERR_GENERIC;
+    result_code = UPLL_RC_ERR_GENERIC;
   else
-      SET_USER_DATA(okey, ikey);
+    SET_USER_DATA(okey, ikey);
 
   return result_code;
 }
 
 upll_rc_t VrtMoMgr::AllocVal(ConfigVal *&ck_val,
-                             upll_keytype_datatype_t dt_type, MoMgrTables tbl) {
+                             upll_keytype_datatype_t dt_type,
+                             MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
   void *val;  // , *nxt_val;
-//   ConfigVal *ck_nxtval;
+  //   ConfigVal *ck_nxtval;
 
   if (ck_val != NULL) return UPLL_RC_ERR_GENERIC;
   switch (tbl) {
@@ -353,12 +360,13 @@ upll_rc_t VrtMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
       ConfigVal *ck_v = req->get_cfg_val();
       if (ck_v->get_st_num() == IpctSt::kIpcInvalidStNum) {
         val_rename_vnode *ival = reinterpret_cast<val_rename_vnode *>
-                                                     (GetVal(req));
+            (GetVal(req));
         rename_val = reinterpret_cast<void *>
             (ConfigKeyVal::Malloc(sizeof(val_rename_vnode)));
         memcpy(rename_val, ival, sizeof(val_rename_vnode));
       } else {
-        val_rename_vrt *ival = reinterpret_cast<val_rename_vrt *> (GetVal(req));
+        val_rename_vrt *ival = reinterpret_cast<val_rename_vrt *>
+            (GetVal(req));
         rename_val = reinterpret_cast<void *>
             (ConfigKeyVal::Malloc(sizeof(val_rename_vrt)));
         memcpy(rename_val, ival, sizeof(val_rename_vrt));
@@ -405,14 +413,15 @@ upll_rc_t VrtMoMgr::GetRenamedUncKey(ConfigKeyVal *ikey,
 
   DbSubOp dbop = {kOpReadSingle, kOpMatchCtrlr, kOpInOutNone };
   val_rename_vnode *rename_vnode = reinterpret_cast<val_rename_vnode *>
-                                (ConfigKeyVal::Malloc(sizeof(val_rename_vnode)));
+      (ConfigKeyVal::Malloc(sizeof(val_rename_vnode)));
 
   key_vrt *ctrlr_key = reinterpret_cast<key_vrt *>(ikey->get_key());
-  
+
   rename_vnode->valid[UPLL_CTRLR_VTN_NAME_VALID] = UNC_VF_INVALID;
   rename_vnode->valid[UPLL_CTRLR_VNODE_NAME_VALID] = UNC_VF_INVALID;
-  upll_rc_t ret_val = ValidateKey(reinterpret_cast<char *>(ctrlr_key->vtn_key.vtn_name),
-                        kMinLenVtnName, kMaxLenVtnName);
+  upll_rc_t ret_val = ValidateKey(reinterpret_cast<char *>
+                                  (ctrlr_key->vtn_key.vtn_name),
+                                  kMinLenVtnName, kMaxLenVtnName);
   if (ret_val == UPLL_RC_SUCCESS)  {
     uuu::upll_strncpy(rename_vnode->ctrlr_vtn_name,
                       ctrlr_key->vtn_key.vtn_name,
@@ -438,7 +447,7 @@ upll_rc_t VrtMoMgr::GetRenamedUncKey(ConfigKeyVal *ikey,
   }
   if (ctrlr_id) {
     SET_USER_DATA_CTRLR(unc_key, ctrlr_id);
-  }else {
+  } else {
     dbop.matchop = kOpMatchNone;
   }
 
@@ -446,21 +455,21 @@ upll_rc_t VrtMoMgr::GetRenamedUncKey(ConfigKeyVal *ikey,
   unc_key->AppendCfgVal(IpctSt::kIpcStValRenameVtn, rename_vnode);
 
   result_code = ReadConfigDB(unc_key, dt_type, UNC_OP_READ, dbop, dmi,
-                                       RENAMETBL);
+                             RENAMETBL);
   if (result_code == UPLL_RC_SUCCESS) {
- //   uint8_t rename = 0x00;
   //   uint8_t rename = 0x00;
     key_vrt *vrt_key = reinterpret_cast<key_vrt *>(unc_key->get_key());
     if (strcmp((const char *) ctrlr_key->vtn_key.vtn_name,
                (const char *) vrt_key->vtn_key.vtn_name)) {
       uuu::upll_strncpy(ctrlr_key->vtn_key.vtn_name,
-             vrt_key->vtn_key.vtn_name, (kMaxLenVtnName+1));
-//      rename |= VTN_RENAME;
+                        vrt_key->vtn_key.vtn_name, (kMaxLenVtnName+1));
+      //      rename |= VTN_RENAME;
     }
     if (strcmp(reinterpret_cast<const char *>(ctrlr_key->vrouter_name),
-              reinterpret_cast<const char *>(vrt_key->vrouter_name))) {
+               reinterpret_cast<const char *>(vrt_key->vrouter_name))) {
       uuu::upll_strncpy(ctrlr_key->vrouter_name,
-              vrt_key->vrouter_name, (kMaxLenVnodeName+1));
-  //    rename |= VN_RENAME;
+                        vrt_key->vrouter_name, (kMaxLenVnodeName+1));
+      //    rename |= VN_RENAME;
     }
     SET_USER_DATA(ikey, unc_key);
   }
@@ -487,19 +496,19 @@ upll_rc_t VrtMoMgr::GetRenamedControllerKey(ConfigKeyVal *ikey,
   } else {
     result_code = GetChildConfigKey(dup_key, ikey);
     if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetChildConfigKey Failed %d",result_code);
+      UPLL_LOG_DEBUG("GetChildConfigKey Failed %d", result_code);
       return result_code;
     }
 #endif
     result_code = IsRenamed(ikey, dt_type, dmi, rename);
     if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Returning %d",result_code);
+      UPLL_LOG_DEBUG("Returning %d", result_code);
       return result_code;
     }
     if (!ctrlr_dom->ctrlr ||
-      !strlen(reinterpret_cast<const char *>(ctrlr_dom->ctrlr)) ||
-      !ctrlr_dom->domain ||
-      !strlen(reinterpret_cast<const char *>(ctrlr_dom->domain))) {
+        !strlen(reinterpret_cast<const char *>(ctrlr_dom->ctrlr)) ||
+        !ctrlr_dom->domain ||
+        !strlen(reinterpret_cast<const char *>(ctrlr_dom->domain))) {
       GET_USER_DATA_CTRLR_DOMAIN(ikey, *ctrlr_dom);
     }
 #if 0
@@ -512,7 +521,7 @@ upll_rc_t VrtMoMgr::GetRenamedControllerKey(ConfigKeyVal *ikey,
     SET_USER_DATA(ikey, dup_key);
     GET_USER_DATA_CTRLR_DOMAIN(ikey, *ctrlr_dom);
     if (dup_key)
-     delete dup_key;
+      delete dup_key;
   }
   if (!ctrlr_dom->ctrlr ||
       !strlen(reinterpret_cast<const char *>(ctrlr_dom->ctrlr)) ||
@@ -524,26 +533,26 @@ upll_rc_t VrtMoMgr::GetRenamedControllerKey(ConfigKeyVal *ikey,
       !strlen(reinterpret_cast<const char *>(ctrlr_dom->ctrlr)) ||
       !ctrlr_dom->domain ||
       !strlen(reinterpret_cast<const char *>(ctrlr_dom->domain))) {
-      UPLL_LOG_DEBUG("Invalid Ctrlr/domain");
-      return UPLL_RC_ERR_GENERIC;
+    UPLL_LOG_DEBUG("Invalid Ctrlr/domain");
+    return UPLL_RC_ERR_GENERIC;
   }
 #endif
   if (rename == 0) return UPLL_RC_SUCCESS;
   result_code = GetChildConfigKey(okey, ikey);
   if (result_code != UPLL_RC_SUCCESS) {
-     UPLL_LOG_DEBUG("Returning error %d",result_code);
-     return result_code;
+    UPLL_LOG_DEBUG("Returning error %d", result_code);
+    return result_code;
   }
-//  GET_USER_DATA_CTRLR_DOMAIN(ikey, *ctrlr_dom);
-//  if (!ctrlr_dom->ctrlr || !ctrlr_dom->domain) return UPLL_RC_ERR_GENERIC;
+  //  GET_USER_DATA_CTRLR_DOMAIN(ikey, *ctrlr_dom);
+  //  if (!ctrlr_dom->ctrlr || !ctrlr_dom->domain) return UPLL_RC_ERR_GENERIC;
   SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
   DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr | kOpMatchDomain,
-                   kOpInOutFlag };
+    kOpInOutFlag };
   result_code = ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop, dmi,
-                                       RENAMETBL);
+                             RENAMETBL);
   if (result_code != UPLL_RC_SUCCESS) return result_code;
   val_rename_vnode *rename_val = reinterpret_cast<val_rename_vnode *>
-                                  (GetVal(okey));
+      (GetVal(okey));
   if (!rename_val) return UPLL_RC_ERR_GENERIC;
   key_vrt *ctrlr_key = reinterpret_cast<key_vrt *>(ikey->get_key());
   if (!ctrlr_key) {
@@ -558,7 +567,7 @@ upll_rc_t VrtMoMgr::GetRenamedControllerKey(ConfigKeyVal *ikey,
   if (rename & 0x02) { /* vnode renamed */
     UPLL_LOG_TRACE("COntroller Vnode name %s", rename_val->ctrlr_vnode_name);
     uuu::upll_strncpy(ctrlr_key->vrouter_name,
-           rename_val->ctrlr_vnode_name, (kMaxLenVnodeName+1));
+                      rename_val->ctrlr_vnode_name, (kMaxLenVnodeName+1));
   }
   SET_USER_DATA_FLAGS(ikey, rename);
   delete okey;
@@ -591,9 +600,11 @@ upll_rc_t VrtMoMgr::UpdateConfigStatus(ConfigKeyVal *vrt_key,
   if (op == UNC_OP_CREATE) {
     vrt_val->cs_row_status = cs_status;
     val_db_vrtst = reinterpret_cast<val_db_vrt_st *>
-                   (ConfigKeyVal::Malloc(sizeof(val_db_vrt_st)));
+        (ConfigKeyVal::Malloc(sizeof(val_db_vrt_st)));
     val_vrtst = &val_db_vrtst->vrt_val_st;
-    val_vrtst->oper_status = UPLL_OPER_STATUS_DOWN;
+    val_vrtst->oper_status =
+        (driver_result == UPLL_RC_ERR_CTR_DISCONNECTED)?
+        UPLL_OPER_STATUS_UNKNOWN:UPLL_OPER_STATUS_DOWN;
     val_vrtst->valid[UPLL_IDX_OPER_STATUS_VRTS] = UNC_VF_VALID;
     val_db_vrtst->down_count  = 0;
     val_db_vrtst->fault_count = 0;
@@ -612,32 +623,32 @@ upll_rc_t VrtMoMgr::UpdateConfigStatus(ConfigKeyVal *vrt_key,
         || (UNC_VF_VALID_NO_VALUE == (uint8_t) vrt_val->valid[loop])) {
       // Description is set to APPLIED
       if (loop == UPLL_IDX_DESC_VRT)
-       vrt_val->cs_attr[loop] = UNC_CS_APPLIED;
+        vrt_val->cs_attr[loop] = UNC_CS_APPLIED;
       else
-       vrt_val->cs_attr[loop] = cs_status;
+        vrt_val->cs_attr[loop] = cs_status;
     } else if ((UNC_VF_INVALID == vrt_val->valid[loop]) &&
                (UNC_OP_CREATE == op)) {
-        vrt_val->cs_attr[loop] = UNC_CS_APPLIED;
+      vrt_val->cs_attr[loop] = UNC_CS_APPLIED;
     } else if ((UNC_VF_INVALID == vrt_val->valid[loop]) &&
                (UNC_OP_UPDATE == op)) {
-        vrt_val->cs_attr[loop] = vrt_val2->cs_attr[loop];
+      vrt_val->cs_attr[loop] = vrt_val2->cs_attr[loop];
     }
   }
   return result_code;
 }
 
 /*
-uint8_t* VrtMoMgr::GetControllerId(ConfigKeyVal *ikey) {
-  UPLL_FUNC_TRACE;
-  if (!ikey)
-     return NULL;
-  val_vrt * temp_vrt = reinterpret_cast<val_vrt *>(GetVal(ikey));
-  if (temp_vrt->valid[UPLL_IDX_CONTROLLER_ID_VRT] != UNC_VF_VALID
-      || !strlen(reinterpret_cast<const char*>(temp_vrt->controller_id)))
-         return NULL;
-  return temp_vrt->controller_id;
-}
-*/
+   uint8_t* VrtMoMgr::GetControllerId(ConfigKeyVal *ikey) {
+   UPLL_FUNC_TRACE;
+   if (!ikey)
+   return NULL;
+   val_vrt * temp_vrt = reinterpret_cast<val_vrt *>(GetVal(ikey));
+   if (temp_vrt->valid[UPLL_IDX_CONTROLLER_ID_VRT] != UNC_VF_VALID
+   || !strlen(reinterpret_cast<const char*>(temp_vrt->controller_id)))
+   return NULL;
+   return temp_vrt->controller_id;
+   }
+   */
 
 upll_rc_t VrtMoMgr::GetControllerDomainId(ConfigKeyVal *ikey,
                                           controller_domain *ctrlr_dom) {
@@ -658,14 +669,14 @@ upll_rc_t VrtMoMgr::GetControllerDomainId(ConfigKeyVal *ikey,
   if (temp_vrt == NULL
       || temp_vrt->valid[UPLL_IDX_DOMAIN_ID_VRT] != UNC_VF_VALID
       || !strlen(reinterpret_cast<char*>(
-         temp_vrt->domain_id))) {
+              temp_vrt->domain_id))) {
     ctrlr_dom->domain = NULL;
     UPLL_LOG_DEBUG("Ctrlr null");
   } else {
     SET_USER_DATA_DOMAIN(ikey, temp_vrt->domain_id);
     GET_USER_DATA_CTRLR_DOMAIN(ikey, *ctrlr_dom);
   }
-  UPLL_LOG_DEBUG("ctrlr_dom %s %s",ctrlr_dom->ctrlr, ctrlr_dom->domain);
+  UPLL_LOG_DEBUG("ctrlr_dom %s %s", ctrlr_dom->ctrlr, ctrlr_dom->domain);
   return UPLL_RC_SUCCESS;
 }
 
@@ -700,35 +711,37 @@ upll_rc_t VrtMoMgr::SwapKeyVal(ConfigKeyVal *ikey, ConfigKeyVal *&okey,
       (ikey != NULL) ? reinterpret_cast<val_rename_vrt_t *>
       (GetVal(ikey)) : NULL;
   if (!tval) {
-     UPLL_LOG_DEBUG("tval is null");
-     return UPLL_RC_ERR_GENERIC;
+    UPLL_LOG_DEBUG("tval is null");
+    return UPLL_RC_ERR_GENERIC;
   }
 
   /* The PFC Name and New Name should not be equal */
   if (!strcmp(reinterpret_cast<char *>(tval->new_name),
-      reinterpret_cast<char *>(reinterpret_cast<key_vrt_t *>
-      (ikey->get_key())->vrouter_name)))
+              reinterpret_cast<char *>(reinterpret_cast<key_vrt_t *>
+                                       (ikey->get_key())->vrouter_name)))
     return UPLL_RC_ERR_GENERIC;
 
   key_vrt_t *key_vrt = reinterpret_cast<key_vrt_t *>
-                  (ConfigKeyVal::Malloc(sizeof(key_vrt_t)));
+      (ConfigKeyVal::Malloc(sizeof(key_vrt_t)));
   if (tval->valid[UPLL_IDX_NEW_NAME_RVRT] == UNC_VF_VALID_NO_VALUE) {
     uuu::upll_strncpy(key_vrt->vrouter_name,
-            (static_cast<key_vrt_t *>(ikey->get_key())->vrouter_name),
-            (kMaxLenVnodeName+1));
+                      (static_cast<key_vrt_t *>(ikey->get_key())->
+                       vrouter_name),
+                      (kMaxLenVnodeName+1));
     no_rename = true;
   } else {
     if ((reinterpret_cast<val_rename_vrt_t *>(tval)->
-        valid[UPLL_IDX_NEW_NAME_RVRT] == UNC_VF_VALID)) {
+         valid[UPLL_IDX_NEW_NAME_RVRT] == UNC_VF_VALID)) {
       // checking the string is empty or not
       if (!strlen(reinterpret_cast<char *>(static_cast<val_rename_vrt_t *>
-                                                       (tval)->new_name))) {
+                                           (tval)->new_name))) {
         free(key_vrt);
         return UPLL_RC_ERR_GENERIC;
       }
       uuu::upll_strncpy(key_vrt->vrouter_name,
-           (static_cast<val_rename_vrt_t *>(GetVal(ikey)))->new_name,
-            (kMaxLenVnodeName+1));
+                        (static_cast<val_rename_vrt_t *>(GetVal(ikey)))->
+                        new_name,
+                        (kMaxLenVnodeName+1));
     } else {
       free(key_vrt);
       return UPLL_RC_ERR_GENERIC;
@@ -742,26 +755,26 @@ upll_rc_t VrtMoMgr::SwapKeyVal(ConfigKeyVal *ikey, ConfigKeyVal *&okey,
     return result_code;
   }
   MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager*>
-                        (GetMoManager(UNC_KT_VTN)));
+                                                 (GetMoManager(UNC_KT_VTN)));
   result_code = mgr->GetRenamedUncKey(pkey, UPLL_DT_IMPORT, dmi, ctrlr);
-  if (UPLL_RC_SUCCESS != result_code 
+  if (UPLL_RC_SUCCESS != result_code
       && UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
     UPLL_LOG_DEBUG("GetRenamedUncKey failed with result_code %d",
-                                                      result_code);
+                   result_code);
     DELETE_IF_NOT_NULL(pkey);
     free(key_vrt);
     return result_code;
   }
   // use the UNC VTN name if PFC VTN name is renamed;
   if (!strlen(reinterpret_cast<char *>(reinterpret_cast<key_vtn_t *>
-                                     (pkey->get_key())->vtn_name))) {
-     DELETE_IF_NOT_NULL(pkey);
-     free(key_vrt);
-     return UPLL_RC_ERR_GENERIC;
-  }
-    uuu::upll_strncpy(key_vrt->vtn_key.vtn_name,
-           reinterpret_cast<key_vtn_t *>(pkey->get_key())->vtn_name,
-           (kMaxLenVtnName+1));
+                                       (pkey->get_key())->vtn_name))) {
+    DELETE_IF_NOT_NULL(pkey);
+    free(key_vrt);
+    return UPLL_RC_ERR_GENERIC;
+  }
+  uuu::upll_strncpy(key_vrt->vtn_key.vtn_name,
+                    reinterpret_cast<key_vtn_t *>(pkey->get_key())->vtn_name,
+                    (kMaxLenVtnName+1));
   okey = new ConfigKeyVal(UNC_KT_VROUTER, IpctSt::kIpcStKeyVrt, key_vrt, NULL);
 
   delete pkey;
@@ -773,27 +786,28 @@ upll_rc_t VrtMoMgr::SwapKeyVal(ConfigKeyVal *ikey, ConfigKeyVal *&okey,
 }
 
 upll_rc_t VrtMoMgr::UpdateAuditConfigStatus(
-                                unc_keytype_configstatus_t cs_status,
-                                uuc::UpdateCtrlrPhase phase,
-                                ConfigKeyVal *&ckv_running) {
+    unc_keytype_configstatus_t cs_status,
+    uuc::UpdateCtrlrPhase phase,
+    ConfigKeyVal *&ckv_running,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_vrt_t *val;
   val = (ckv_running != NULL) ? reinterpret_cast<val_vrt_t *>
-                                               (GetVal(ckv_running)) : NULL;
+      (GetVal(ckv_running)) : NULL;
   if (NULL == val) {
     return UPLL_RC_ERR_GENERIC;
   }
   if (uuc::kUpllUcpCreate == phase) val->cs_row_status = cs_status;
   if ((uuc::kUpllUcpUpdate == phase) &&
-           (val->cs_row_status == UNC_CS_INVALID ||
-            val->cs_row_status == UNC_CS_NOT_APPLIED))
+      (val->cs_row_status == UNC_CS_INVALID ||
+       val->cs_row_status == UNC_CS_NOT_APPLIED))
     val->cs_row_status = cs_status;
   for (unsigned int loop = 0; loop < sizeof(val->valid) / sizeof(uint8_t);
-      ++loop) {
+       ++loop) {
     if ((cs_status == UNC_CS_INVALID && UNC_VF_VALID == val->valid[loop]) ||
-         cs_status == UNC_CS_APPLIED)
-          val->cs_attr[loop] = cs_status;
+        cs_status == UNC_CS_APPLIED)
+      val->cs_attr[loop] = cs_status;
   }
   return result_code;
 }
@@ -803,7 +817,7 @@ upll_rc_t VrtMoMgr::MergeValidate(unc_key_type_t keytype, const char *ctrlr_id,
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutNone };
-  if (!ikey || !(ikey->get_key())){
+  if (!ikey || !(ikey->get_key())) {
     UPLL_LOG_DEBUG(" Input is NULL ");
     return UPLL_RC_ERR_GENERIC;
   }
@@ -811,7 +825,7 @@ upll_rc_t VrtMoMgr::MergeValidate(unc_key_type_t keytype, const char *ctrlr_id,
   result_code = GetChildConfigKey(dup_key, ikey);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("GetChildConfigKey Failed");
-    if(dup_key) delete dup_key;
+    if (dup_key) delete dup_key;
     return result_code;
   }
   /*
@@ -833,19 +847,19 @@ upll_rc_t VrtMoMgr::MergeValidate(unc_key_type_t keytype, const char *ctrlr_id,
 
     if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code ||
         UPLL_RC_ERR_CFG_SEMANTIC == result_code) {
-        result_code = GetChildConfigKey(ikey, travel);
-        if (dup_key) delete dup_key;
-        if (UPLL_RC_SUCCESS != result_code) {
-          UPLL_LOG_DEBUG("GetChildConfigKey Failed");
-          return result_code;
-        }
-        UPLL_LOG_DEBUG("VRouter Name Conflict %d", result_code);
-        return UPLL_RC_ERR_MERGE_CONFLICT;
+      result_code = GetChildConfigKey(ikey, travel);
+      if (dup_key) delete dup_key;
+      if (UPLL_RC_SUCCESS != result_code) {
+        UPLL_LOG_DEBUG("GetChildConfigKey Failed");
+        return result_code;
+      }
+      UPLL_LOG_DEBUG("VRouter Name Conflict %d", result_code);
+      return UPLL_RC_ERR_MERGE_CONFLICT;
     }
     /* Any other DB error */
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("Vnode Checks Failed %d", result_code);
-      if(dup_key) delete dup_key;
+      if (dup_key) delete dup_key;
       return result_code;
     }
     travel = travel->get_next_cfg_key_val();
@@ -863,26 +877,26 @@ upll_rc_t VrtMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
   key_rename_vnode_info *key_rename = reinterpret_cast<key_rename_vnode_info *>
-                                        (ikey->get_key());
+      (ikey->get_key());
   key_vrt_t * key_vrt = reinterpret_cast<key_vrt_t *>
       (ConfigKeyVal::Malloc(sizeof(key_vrt_t)));
 
-    if (!strlen(reinterpret_cast<char *>(key_rename->old_unc_vtn_name))) {
-     /* Addressed RESOURCE_LEAK */
-      FREE_IF_NOT_NULL(key_vrt);
-      return UPLL_RC_ERR_GENERIC;
-    }
-    uuu::upll_strncpy(key_vrt->vtn_key.vtn_name,
-         key_rename->old_unc_vtn_name, (kMaxLenVtnName+1));
-    if (ikey->get_key_type() == table[MAINTBL]->get_key_type()) {
-      if (!strlen(reinterpret_cast<char *>(key_rename->old_unc_vnode_name))) {
+  if (!strlen(reinterpret_cast<char *>(key_rename->old_unc_vtn_name))) {
+    /* Addressed RESOURCE_LEAK */
+    FREE_IF_NOT_NULL(key_vrt);
+    return UPLL_RC_ERR_GENERIC;
+  }
+  uuu::upll_strncpy(key_vrt->vtn_key.vtn_name,
+                    key_rename->old_unc_vtn_name, (kMaxLenVtnName+1));
+  if (ikey->get_key_type() == table[MAINTBL]->get_key_type()) {
+    if (!strlen(reinterpret_cast<char *>(key_rename->old_unc_vnode_name))) {
       /* Addressed RESOURCE_LEAK */
       FREE_IF_NOT_NULL(key_vrt);
       return UPLL_RC_ERR_GENERIC;
     }
-      uuu::upll_strncpy(key_vrt->vrouter_name,
-           key_rename->old_unc_vnode_name, (kMaxLenVnodeName+1));
-    } 
+    uuu::upll_strncpy(key_vrt->vrouter_name,
+                      key_rename->old_unc_vnode_name, (kMaxLenVnodeName+1));
+  }
   okey = new ConfigKeyVal(UNC_KT_VROUTER, IpctSt::kIpcStKeyVrt, key_vrt, NULL);
   if (!okey) {
     free(key_vrt);
@@ -891,7 +905,7 @@ upll_rc_t VrtMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
   return result_code;
 }
 
-upll_rc_t VrtMoMgr::GetRenameInfo(ConfigKeyVal *ikey, 
+upll_rc_t VrtMoMgr::GetRenameInfo(ConfigKeyVal *ikey,
                                   ConfigKeyVal *okey,
                                   ConfigKeyVal *&rename_info,
                                   DalDmlIntf *dmi,
@@ -904,8 +918,8 @@ upll_rc_t VrtMoMgr::GetRenameInfo(ConfigKeyVal *ikey,
 
   key_vrt_t * vrt_key = NULL;
   key_rename_vnode_info *vrt_rename_info =
-    reinterpret_cast<key_rename_vnode_info *>
-        (ConfigKeyVal::Malloc(sizeof(key_rename_vnode_info)));
+      reinterpret_cast<key_rename_vnode_info *>
+      (ConfigKeyVal::Malloc(sizeof(key_rename_vnode_info)));
 
   vrt_key = reinterpret_cast<key_vrt_t *> (ikey->get_key());
   if (!vrt_key) {
@@ -915,63 +929,65 @@ upll_rc_t VrtMoMgr::GetRenameInfo(ConfigKeyVal *ikey,
   }
   if (renamed) {
     if (!strlen(reinterpret_cast<char *>(reinterpret_cast<val_rename_vnode_t *>
-               (GetVal(ikey))->ctrlr_vnode_name))) {
+                                         (GetVal(ikey))->ctrlr_vnode_name))) {
       FREE_IF_NOT_NULL(vrt_rename_info);
       return UPLL_RC_ERR_GENERIC;
     }
     uuu::upll_strncpy(vrt_rename_info->ctrlr_vnode_name,
-        reinterpret_cast<val_rename_vnode_t *>(GetVal(ikey))->ctrlr_vnode_name,
-        (kMaxLenVnodeName+1));
+                      reinterpret_cast<val_rename_vnode_t *>(GetVal(ikey))->
+                      ctrlr_vnode_name,
+                      (kMaxLenVnodeName+1));
     if (!strlen(reinterpret_cast<char *>(reinterpret_cast<val_rename_vnode_t *>
-             (GetVal(ikey))->ctrlr_vtn_name))) {
+                                         (GetVal(ikey))->ctrlr_vtn_name))) {
       FREE_IF_NOT_NULL(vrt_rename_info);
       return UPLL_RC_ERR_GENERIC;
     }
     uuu::upll_strncpy(vrt_rename_info->ctrlr_vtn_name,
-          reinterpret_cast<val_rename_vnode_t *>(GetVal(ikey))->ctrlr_vtn_name,
-             (kMaxLenVtnName+1));
+                      reinterpret_cast<val_rename_vnode_t *>(GetVal(ikey))->
+                      ctrlr_vtn_name,
+                      (kMaxLenVtnName+1));
   } else {
     if (!strlen(reinterpret_cast<char *>(vrt_key->vrouter_name))) {
       FREE_IF_NOT_NULL(vrt_rename_info);
-       return UPLL_RC_ERR_GENERIC;
+      return UPLL_RC_ERR_GENERIC;
     }
     uuu::upll_strncpy(vrt_rename_info->ctrlr_vnode_name,
-            vrt_key->vrouter_name, (kMaxLenVnodeName+1));
+                      vrt_key->vrouter_name, (kMaxLenVnodeName+1));
     if (!strlen(reinterpret_cast<char *>(vrt_key->vtn_key.vtn_name))) {
       FREE_IF_NOT_NULL(vrt_rename_info);
       return UPLL_RC_ERR_GENERIC;
     }
     uuu::upll_strncpy(vrt_rename_info->ctrlr_vtn_name,
-           vrt_key->vtn_key.vtn_name, (kMaxLenVtnName+1));
+                      vrt_key->vtn_key.vtn_name, (kMaxLenVtnName+1));
   }
 
   if (!strlen(reinterpret_cast<char *>(vrt_key->vrouter_name))) {
-      FREE_IF_NOT_NULL(vrt_rename_info);
-       return UPLL_RC_ERR_GENERIC;
+    FREE_IF_NOT_NULL(vrt_rename_info);
+    return UPLL_RC_ERR_GENERIC;
   }
   uuu::upll_strncpy(vrt_rename_info->old_unc_vnode_name,
-         vrt_key->vrouter_name, (kMaxLenVnodeName+1));
+                    vrt_key->vrouter_name, (kMaxLenVnodeName+1));
   if (!strlen(reinterpret_cast<char *>(vrt_key->vtn_key.vtn_name))) {
-      FREE_IF_NOT_NULL(vrt_rename_info);
-      return UPLL_RC_ERR_GENERIC;
+    FREE_IF_NOT_NULL(vrt_rename_info);
+    return UPLL_RC_ERR_GENERIC;
   }
   uuu::upll_strncpy(vrt_rename_info->new_unc_vtn_name,
-         vrt_key->vtn_key.vtn_name, (kMaxLenVtnName+1));
+                    vrt_key->vtn_key.vtn_name, (kMaxLenVtnName+1));
   uuu::upll_strncpy(vrt_rename_info->old_unc_vtn_name,
-         vrt_key->vtn_key.vtn_name, (kMaxLenVtnName+1));
+                    vrt_key->vtn_key.vtn_name, (kMaxLenVtnName+1));
 
   vrt_key = reinterpret_cast<key_vrt_t *>(okey->get_key());
   if (!vrt_key) {
-     /* Addressed RESOURCE_LEAK */
+    /* Addressed RESOURCE_LEAK */
     FREE_IF_NOT_NULL(vrt_rename_info);
     return UPLL_RC_ERR_GENERIC;
   }
   if (!strlen(reinterpret_cast<char *>(vrt_key->vtn_key.vtn_name))) {
-      FREE_IF_NOT_NULL(vrt_rename_info);
-      return UPLL_RC_ERR_GENERIC;
+    FREE_IF_NOT_NULL(vrt_rename_info);
+    return UPLL_RC_ERR_GENERIC;
   }
   uuu::upll_strncpy(vrt_rename_info->new_unc_vnode_name,
-         vrt_key->vrouter_name, (kMaxLenVnodeName+1));
+                    vrt_key->vrouter_name, (kMaxLenVnodeName+1));
 
   rename_info = new ConfigKeyVal(UNC_KT_VROUTER, IpctSt::kIpcInvalidStNum,
                                  vrt_rename_info, NULL);
@@ -981,7 +997,7 @@ upll_rc_t VrtMoMgr::GetRenameInfo(ConfigKeyVal *ikey,
   }
   if (!renamed) {
     val_rename_vnode_t *vnode = reinterpret_cast<val_rename_vnode_t*>
-                            (ConfigKeyVal::Malloc(sizeof(val_rename_vnode_t)));
+        (ConfigKeyVal::Malloc(sizeof(val_rename_vnode_t)));
 
     ConfigKeyVal *tmp_key = NULL;
     result_code = GetChildConfigKey(tmp_key, ikey);
@@ -990,9 +1006,11 @@ upll_rc_t VrtMoMgr::GetRenameInfo(ConfigKeyVal *ikey,
       FREE_IF_NOT_NULL(vnode);
       return result_code;
     }
-    DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutCtrlr|kOpInOutDomain};
+    DbSubOp dbop = { kOpReadSingle,
+      kOpMatchNone,
+      kOpInOutCtrlr|kOpInOutDomain};
     result_code = ReadConfigDB(tmp_key, UPLL_DT_IMPORT, UNC_OP_READ, dbop, dmi,
-                                MAINTBL);
+                               MAINTBL);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("ReadConfigDB Failed");
       delete tmp_key;
@@ -1002,8 +1020,8 @@ upll_rc_t VrtMoMgr::GetRenameInfo(ConfigKeyVal *ikey,
     controller_domain ctrlr_dom;
     result_code = GetControllerDomainId(tmp_key, &ctrlr_dom);
     if (UPLL_RC_SUCCESS != result_code) {
-       delete tmp_key;
-       return result_code;
+      delete tmp_key;
+      return result_code;
     }
     SET_USER_DATA_CTRLR_DOMAIN(okey, ctrlr_dom);
 
@@ -1011,11 +1029,13 @@ upll_rc_t VrtMoMgr::GetRenameInfo(ConfigKeyVal *ikey,
     vnode->valid[UPLL_CTRLR_VNODE_NAME_VALID] = UNC_VF_VALID;
 
     uuu::upll_strncpy(vnode->ctrlr_vtn_name,
-           reinterpret_cast<key_vrt_t *>(ikey->get_key())->vtn_key.vtn_name,
-            (kMaxLenVtnName+1));
+                      reinterpret_cast<key_vrt_t *>(ikey->get_key())->
+                      vtn_key.vtn_name,
+                      (kMaxLenVtnName+1));
     uuu::upll_strncpy(vnode->ctrlr_vnode_name,
-           reinterpret_cast<key_vrt_t *>(ikey->get_key())->vrouter_name,
-           (kMaxLenVnodeName+1));
+                      reinterpret_cast<key_vrt_t *>(ikey->get_key())->
+                      vrouter_name,
+                      (kMaxLenVnodeName+1));
     ConfigVal *rename_val_ = new ConfigVal(IpctSt::kIpcInvalidStNum, vnode);
     okey->SetCfgVal(rename_val_);
     dbop.readop = kOpNotRead;
@@ -1038,15 +1058,17 @@ bool VrtMoMgr::FilterAttributes(void *&val1, void *val2, bool copy_to_running,
   return false;
 }
 
-bool VrtMoMgr::CompareValidValue(void *&val1, void *val2, bool copy_to_running) {
+bool VrtMoMgr::CompareValidValue(void *&val1,
+                                 void *val2,
+                                 bool copy_to_running) {
   UPLL_FUNC_TRACE;
   bool invalid_attr = true;
   val_vrt_t *val_vrt1 = reinterpret_cast<val_vrt_t *>(val1);
   val_vrt_t *val_vrt2 = reinterpret_cast<val_vrt_t *>(val2);
   for (unsigned int loop = 0;
-      loop < sizeof(val_vrt1->valid) / sizeof(uint8_t); ++loop) {
+       loop < sizeof(val_vrt1->valid) / sizeof(uint8_t); ++loop) {
     if (UNC_VF_INVALID == val_vrt1->valid[loop]
-        && UNC_VF_VALID == val_vrt2->valid[loop]) 
+        && UNC_VF_VALID == val_vrt2->valid[loop])
       val_vrt1->valid[loop] = UNC_VF_VALID_NO_VALUE;
   }
   if (UNC_VF_INVALID != val_vrt1->valid[UPLL_IDX_DESC_VRT]) {
@@ -1054,7 +1076,7 @@ bool VrtMoMgr::CompareValidValue(void *&val1, void *val2, bool copy_to_running)
         ((UNC_VF_VALID == val_vrt1->valid[UPLL_IDX_DESC_VRT]) &&
          !strcmp(reinterpret_cast<char*>(val_vrt1->vrt_description),
                  reinterpret_cast<char*>(val_vrt2->vrt_description))))
-        val_vrt1->valid[UPLL_IDX_DESC_VRT] = UNC_VF_INVALID;
+      val_vrt1->valid[UPLL_IDX_DESC_VRT] = UNC_VF_INVALID;
   }
   if (UNC_VF_VALID == val_vrt1->valid[UPLL_IDX_CONTROLLER_ID_VRT]
       && UNC_VF_VALID == val_vrt2->valid[UPLL_IDX_CONTROLLER_ID_VRT]) {
@@ -1070,12 +1092,12 @@ bool VrtMoMgr::CompareValidValue(void *&val1, void *val2, bool copy_to_running)
   }
   if (UNC_VF_VALID == val_vrt1->valid[UPLL_IDX_DHCP_RELAY_ADMIN_STATUS_VRT]
       && UNC_VF_VALID
-          == val_vrt2->valid[UPLL_IDX_DHCP_RELAY_ADMIN_STATUS_VRT]) {
+      == val_vrt2->valid[UPLL_IDX_DHCP_RELAY_ADMIN_STATUS_VRT]) {
     if (val_vrt1->dhcp_relay_admin_status == val_vrt2->dhcp_relay_admin_status)
       val_vrt1->valid[UPLL_IDX_DHCP_RELAY_ADMIN_STATUS_VRT] = UNC_VF_INVALID;
   }
   if (!copy_to_running)
-        val_vrt1->valid[UPLL_IDX_DESC_VRT] = UNC_VF_INVALID;
+    val_vrt1->valid[UPLL_IDX_DESC_VRT] = UNC_VF_INVALID;
   for (unsigned int loop = 0;
        loop < sizeof(val_vrt1->valid) / sizeof(val_vrt1->valid[0]);
        ++loop) {
@@ -1089,7 +1111,7 @@ bool VrtMoMgr::CompareValidValue(void *&val1, void *val2, bool copy_to_running)
 }
 
 upll_rc_t VrtMoMgr::ValidateVrtKey(key_vrt *vrt_key,
-                               unc_keytype_operation_t operation) {
+                                   unc_keytype_operation_t operation) {
   UPLL_FUNC_TRACE;
   upll_rc_t ret_val = UPLL_RC_SUCCESS;
 
@@ -1105,12 +1127,12 @@ upll_rc_t VrtMoMgr::ValidateVrtKey(key_vrt *vrt_key,
   if ((operation != UNC_OP_READ_SIBLING_COUNT) &&
       (operation != UNC_OP_READ_SIBLING_BEGIN)) {
     ret_val = ValidateKey(reinterpret_cast<char *>(vrt_key->vrouter_name),
-                        kMinLenVnodeName,
-                        kMaxLenVnodeName);
+                          kMinLenVnodeName,
+                          kMaxLenVnodeName);
     if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_INFO("vrouter name syntax check failed."
-                  "Received vrouter name - %s",
-                  vrt_key->vrouter_name);
+                    "Received vrouter name - %s",
+                    vrt_key->vrouter_name);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else {
@@ -1121,7 +1143,7 @@ upll_rc_t VrtMoMgr::ValidateVrtKey(key_vrt *vrt_key,
 }
 
 upll_rc_t VrtMoMgr::CtrlrIdAndDomainIdUpdationCheck(ConfigKeyVal *ikey,
-                                                   ConfigKeyVal *okey) {
+                                                    ConfigKeyVal *okey) {
   UPLL_FUNC_TRACE;
   val_vrt *vrt_val = reinterpret_cast<val_vrt *>(GetVal(ikey));
   val_vrt *vrt_val1 = reinterpret_cast<val_vrt *>(GetVal(okey));
@@ -1131,8 +1153,8 @@ upll_rc_t VrtMoMgr::CtrlrIdAndDomainIdUpdationCheck(ConfigKeyVal *ikey,
                 kMaxLenCtrlrId+1)) {
       UPLL_LOG_DEBUG("controller id comparision failed");
       return UPLL_RC_ERR_CFG_SYNTAX;
-    } 
-  } 
+    }
+  }
   if (vrt_val->valid[UPLL_IDX_DOMAIN_ID_VRT] == UNC_VF_VALID) {
     if (strncmp(reinterpret_cast<const char *>(vrt_val->domain_id),
                 reinterpret_cast<const char *>(vrt_val1->domain_id),
@@ -1153,12 +1175,12 @@ upll_rc_t VrtMoMgr::ValidateVrtValue(val_vrt *vrt_val,
   // Attribute syntax validation
   for (unsigned int valid_index = 0;
        valid_index < sizeof(vrt_val->valid) / sizeof(vrt_val->valid[0]);
-       valid_index++) { 
+       valid_index++) {
     if (vrt_val->valid[valid_index] == UNC_VF_VALID) {
-      switch(valid_index) {    
+      switch (valid_index) {
         case UPLL_IDX_CONTROLLER_ID_VRT:
           ret_val = ValidateString(vrt_val->controller_id,
-                                   kMinLenCtrlrId, kMaxLenCtrlrId); 
+                                   kMinLenCtrlrId, kMaxLenCtrlrId);
           break;
         case UPLL_IDX_DOMAIN_ID_VRT:
           ret_val = ValidateDefaultStr(vrt_val->domain_id,
@@ -1167,16 +1189,16 @@ upll_rc_t VrtMoMgr::ValidateVrtValue(val_vrt *vrt_val,
         case UPLL_IDX_DESC_VRT:
           ret_val = ValidateDesc(vrt_val->vrt_description,
                                  kMinLenDescription, kMaxLenDescription);
-          break; 
+          break;
         case UPLL_IDX_DHCP_RELAY_ADMIN_STATUS_VRT:
           ret_val = ValidateNumericRange(
-                    (uint8_t) vrt_val->dhcp_relay_admin_status,
-                    (uint8_t) UPLL_ADMIN_ENABLE,
-                    (uint8_t) UPLL_ADMIN_DISABLE, true, true);
+              (uint8_t) vrt_val->dhcp_relay_admin_status,
+              (uint8_t) UPLL_ADMIN_ENABLE,
+              (uint8_t) UPLL_ADMIN_DISABLE, true, true);
           break;
       }
       if (!ret_val) {
-        return UPLL_RC_ERR_CFG_SYNTAX; 
+        return UPLL_RC_ERR_CFG_SYNTAX;
       }
     }
   }
@@ -1189,43 +1211,51 @@ upll_rc_t VrtMoMgr::ValidateVrtValue(val_vrt *vrt_val,
     switch (operation) {
       case UNC_OP_CREATE:
         {
-          switch(valid_index) {
+          switch (valid_index) {
             case UPLL_IDX_CONTROLLER_ID_VRT:
             case UPLL_IDX_DOMAIN_ID_VRT:
               if ((flag == UNC_VF_INVALID || flag == UNC_VF_VALID_NO_VALUE)) {
                 UPLL_LOG_INFO("controller_id or domain_id flag is invalid"
-                               " or valid_no_value");
-                return UPLL_RC_ERR_CFG_SYNTAX; 
+                              " or valid_no_value");
+                return UPLL_RC_ERR_CFG_SYNTAX;
               }
               break;
             case UPLL_IDX_DESC_VRT:
               break;
             case UPLL_IDX_DHCP_RELAY_ADMIN_STATUS_VRT:
-              if ((flag == UNC_VF_INVALID) || (flag == UNC_VF_VALID_NO_VALUE)) {
-                vrt_val->dhcp_relay_admin_status = UPLL_ADMIN_ENABLE; // TODO: Admin status reset value
+#if 0  // no default value for dhcp_relay_admin status
+              if ((flag == UNC_VF_INVALID) || (flag ==
+                                               UNC_VF_VALID_NO_VALUE)) {
+                vrt_val->dhcp_relay_admin_status = UPLL_ADMIN_ENABLE;
+              }
+#else
+              if (flag == UNC_VF_VALID_NO_VALUE) {
+                vrt_val->valid[valid_index] = UNC_VF_INVALID;
               }
+#endif
               break;
             default:
               break;
           }
-        } 
+        }
         break;
       case UNC_OP_UPDATE:
         {
-          switch(valid_index) {
+          switch (valid_index) {
             case UPLL_IDX_CONTROLLER_ID_VRT:
             case UPLL_IDX_DOMAIN_ID_VRT:
               if (flag == UNC_VF_VALID_NO_VALUE) {
-                UPLL_LOG_INFO("controller_id or domain_id flag is valid_no_value");
+                UPLL_LOG_INFO("controller_id or domain_id"
+                              "flag is valid_no_value");
                 return UPLL_RC_ERR_CFG_SYNTAX;
               }
-              break; 
+              break;
             case UPLL_IDX_DESC_VRT:
             case UPLL_IDX_DHCP_RELAY_ADMIN_STATUS_VRT:
             default:
               break;
           }
-        } 
+        }
         break;
     }
   }
@@ -1235,10 +1265,10 @@ upll_rc_t VrtMoMgr::ValidateVrtValue(val_vrt *vrt_val,
        valid_index < sizeof(vrt_val->valid) / sizeof(vrt_val->valid[0]);
        valid_index++) {
     uint8_t flag = vrt_val->valid[valid_index];
-    if (flag != UNC_VF_INVALID && flag != UNC_VF_VALID_NO_VALUE)  
+    if (flag != UNC_VF_INVALID && flag != UNC_VF_VALID_NO_VALUE)
       continue;
-       
-    switch(valid_index) {
+
+    switch (valid_index) {
       case UPLL_IDX_CONTROLLER_ID_VRT:
         StringReset(vrt_val->controller_id);
         break;
@@ -1248,15 +1278,16 @@ upll_rc_t VrtMoMgr::ValidateVrtValue(val_vrt *vrt_val,
       case UPLL_IDX_DESC_VRT:
         StringReset(vrt_val->vrt_description);
         break;
-      case UPLL_IDX_DHCP_RELAY_ADMIN_STATUS_VRT:  // TODO: check admin_status is enable or disable when reset
-        vrt_val->dhcp_relay_admin_status = UPLL_ADMIN_ENABLE; 
+      case UPLL_IDX_DHCP_RELAY_ADMIN_STATUS_VRT:  // TODO(upll):
+        // check admin_status is enable or disable when reset
+        vrt_val->dhcp_relay_admin_status = UPLL_ADMIN_ENABLE;
         break;
       default:
         UPLL_LOG_TRACE("Never here");
         break;
     }
   }
-  return UPLL_RC_SUCCESS; 
+  return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t VrtMoMgr::ValidateVrtPingValue(val_ping *ping_val) {
@@ -1300,7 +1331,8 @@ upll_rc_t VrtMoMgr::ValidateVrtPingValue(val_ping *ping_val) {
                     ping_val->packet_size);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
-  } else if (ping_val->valid[UPLL_IDX_PACKET_SIZE_PING] == UNC_VF_VALID_NO_VALUE) {
+  } else if (ping_val->valid[UPLL_IDX_PACKET_SIZE_PING] ==
+             UNC_VF_VALID_NO_VALUE) {
     ping_val->packet_size = 0;
   }
 
@@ -1324,7 +1356,8 @@ upll_rc_t VrtMoMgr::ValidateVrtPingValue(val_ping *ping_val) {
                     ping_val->interval);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
-  } else if (ping_val->valid[UPLL_IDX_INTERVAL_PING] == UNC_VF_VALID_NO_VALUE) {
+  } else if (ping_val->valid[UPLL_IDX_INTERVAL_PING] ==
+             UNC_VF_VALID_NO_VALUE) {
     ping_val->interval = 0;
   }
 
@@ -1359,7 +1392,8 @@ upll_rc_t VrtMoMgr::ValidateVrtRenameValue(val_rename_vrt *vrt_rename_val) {
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t VrtMoMgr::ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *ikey) {
+upll_rc_t VrtMoMgr::ValidateMessage(IpcReqRespHeader *req,
+                                    ConfigKeyVal *ikey) {
   UPLL_FUNC_TRACE;
   upll_rc_t ret_val = UPLL_RC_SUCCESS;
 
@@ -1385,7 +1419,7 @@ upll_rc_t VrtMoMgr::ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *ikey) {
     return UPLL_RC_ERR_BAD_REQUEST;
   }
   key_vrt *vrt_key = reinterpret_cast<key_vrt *>(ikey->get_key());
-  
+
   ret_val = ValidateVrtKey(vrt_key, operation);
   if (ret_val != UPLL_RC_SUCCESS) {
     UPLL_LOG_INFO("syntax check failure for key_vrt struct");
@@ -1398,12 +1432,14 @@ upll_rc_t VrtMoMgr::ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *ikey) {
       ((ikey->get_cfg_val())->get_st_num() == IpctSt::kIpcStValVrt)) {
     vrt_val =  reinterpret_cast<val_vrt *>(ikey->get_cfg_val()->get_val());
   } else if ((ikey->get_cfg_val()) &&
-             ((ikey->get_cfg_val())->get_st_num() == IpctSt::kIpcStValRenameVrt)) {
-    vrt_rename =  reinterpret_cast<val_rename_vrt *>(ikey->get_cfg_val()->get_val());
-  } 
+             ((ikey->get_cfg_val())->get_st_num() ==
+              IpctSt::kIpcStValRenameVrt)) {
+    vrt_rename =  reinterpret_cast<val_rename_vrt *>(
+        ikey->get_cfg_val()->get_val());
+  }
 
   if (((operation == UNC_OP_CREATE) || (operation == UNC_OP_UPDATE))  &&
-     ((dt_type == UPLL_DT_CANDIDATE) || (dt_type == UPLL_DT_IMPORT))) {
+      ((dt_type == UPLL_DT_CANDIDATE) || (dt_type == UPLL_DT_IMPORT))) {
     if (vrt_val == NULL) {
       UPLL_LOG_INFO("Val struct is mandatory for create and update op");
       return UPLL_RC_ERR_BAD_REQUEST;
@@ -1425,7 +1461,7 @@ upll_rc_t VrtMoMgr::ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *ikey) {
     }
     if (vrt_rename == NULL) {
       UPLL_LOG_INFO(
-       "val_rename_vrt struct is Mandatory for Rename op");
+          "val_rename_vrt struct is Mandatory for Rename op");
       return UPLL_RC_ERR_BAD_REQUEST;
     }
     ret_val = ValidateVrtRenameValue(vrt_rename);
@@ -1435,8 +1471,8 @@ upll_rc_t VrtMoMgr::ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *ikey) {
     }
     return UPLL_RC_SUCCESS;
   } else if ((operation == UNC_OP_READ || operation == UNC_OP_READ_SIBLING ||
-              operation == UNC_OP_READ_SIBLING_BEGIN) && 
-                        (dt_type == UPLL_DT_IMPORT)) {
+              operation == UNC_OP_READ_SIBLING_BEGIN) &&
+             (dt_type == UPLL_DT_IMPORT)) {
     if (option1 != UNC_OPT1_NORMAL) {
       UPLL_LOG_INFO("Error option1 is not NORMAL");
       return UPLL_RC_ERR_INVALID_OPTION1;
@@ -1457,7 +1493,7 @@ upll_rc_t VrtMoMgr::ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *ikey) {
     return UPLL_RC_SUCCESS;
   } else if ((operation == UNC_OP_READ || operation == UNC_OP_READ_SIBLING ||
               operation == UNC_OP_READ_SIBLING_BEGIN ||
-              operation == UNC_OP_READ_SIBLING_COUNT) && 
+              operation == UNC_OP_READ_SIBLING_COUNT) &&
              (dt_type == UPLL_DT_CANDIDATE || dt_type == UPLL_DT_RUNNING ||
               dt_type == UPLL_DT_STARTUP)) {
     if (option1 != UNC_OPT1_NORMAL) {
@@ -1479,10 +1515,9 @@ upll_rc_t VrtMoMgr::ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *ikey) {
     }
     return UPLL_RC_SUCCESS;
   } else if ((operation == UNC_OP_READ || operation == UNC_OP_READ_SIBLING ||
-             operation == UNC_OP_READ_SIBLING_BEGIN ||
-             operation == UNC_OP_READ_SIBLING_COUNT)
-            && (dt_type == UPLL_DT_STATE)) {
-
+              operation == UNC_OP_READ_SIBLING_BEGIN ||
+              operation == UNC_OP_READ_SIBLING_COUNT)
+             && (dt_type == UPLL_DT_STATE)) {
     if (option1 == UNC_OPT1_NORMAL) {
       if (option2 == UNC_OPT2_NONE) {
         if (vrt_val == NULL) {
@@ -1495,7 +1530,7 @@ upll_rc_t VrtMoMgr::ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *ikey) {
           return UPLL_RC_ERR_CFG_SYNTAX;
         }
         return UPLL_RC_SUCCESS;
-      } else if (option2 == UNC_OPT2_DHCP_RELAY || 
+      } else if (option2 == UNC_OPT2_DHCP_RELAY ||
                  option2 == UNC_OPT2_IP_ROUTE ||
                  option2 == UNC_OPT2_ARP_ENTRY ||
                  option2 == UNC_OPT2_ARP_ENTRY_STATIC ||
@@ -1505,8 +1540,8 @@ upll_rc_t VrtMoMgr::ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *ikey) {
       } else {
         UPLL_LOG_INFO("Option2 is Invalid");
         return UPLL_RC_ERR_INVALID_OPTION2;
-      }  
-    } else if (option1 == UNC_OPT1_DETAIL) {                                           
+      }
+    } else if (option1 == UNC_OPT1_DETAIL) {
       if (option2 == UNC_OPT2_IP_ROUTE ||
           option2 == UNC_OPT2_DHCP_RELAY) {
         UPLL_LOG_INFO("val struct is optional for this option");
@@ -1529,7 +1564,8 @@ upll_rc_t VrtMoMgr::ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *ikey) {
       UPLL_LOG_INFO("Error option1 is Invalid");
       return UPLL_RC_ERR_INVALID_OPTION1;
     }
-  } else if ((operation == UNC_OP_READ_NEXT || operation == UNC_OP_READ_BULK) &&
+  } else if ((operation == UNC_OP_READ_NEXT ||
+              operation == UNC_OP_READ_BULK) &&
              (dt_type == UPLL_DT_CANDIDATE || dt_type == UPLL_DT_RUNNING ||
               dt_type == UPLL_DT_STARTUP || dt_type == UPLL_DT_IMPORT)) {
     UPLL_LOG_INFO("Value structure is none for operation type:%d", operation);
@@ -1539,39 +1575,39 @@ upll_rc_t VrtMoMgr::ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *ikey) {
     return UPLL_RC_SUCCESS;
   } else if ((operation == UNC_OP_CONTROL) &&
              (dt_type == UPLL_DT_RUNNING || dt_type == UPLL_DT_STATE)) {
-      if (option1 != UNC_OPT1_NORMAL) {
-        UPLL_LOG_INFO("Error option1 is not NORMAL");
-        return UPLL_RC_ERR_INVALID_OPTION1;
-      }
-      if (option2 != UNC_OPT2_PING) {
-        UPLL_LOG_INFO("Error option2 is not PING");
-        return UPLL_RC_ERR_INVALID_OPTION2;
-      }
-      if (NULL == ikey->get_cfg_val()) {
-        UPLL_LOG_TRACE("ConfigVal struct is null");
-        return UPLL_RC_ERR_BAD_REQUEST;
-      }
-      if (ikey->get_cfg_val()->get_st_num() != IpctSt::kIpcStValPing) {
-        UPLL_LOG_INFO(
-            "Expecting val_ping structure. received struct - %d",
-            ikey->get_cfg_val()->get_st_num());
-        return UPLL_RC_ERR_BAD_REQUEST;
-      }
-      val_ping *ping_val =
-          reinterpret_cast<val_ping *>(ikey->get_cfg_val()->get_val());
-      if (ping_val == NULL) {
-        UPLL_LOG_TRACE("val_ping struct is missing");
-        return UPLL_RC_ERR_GENERIC;
-      }
-      ret_val = ValidateVrtPingValue(ping_val);
-      if (ret_val != UPLL_RC_SUCCESS) {
-        UPLL_LOG_INFO("syntax check failure for val_ping value structure");
-        return UPLL_RC_ERR_CFG_SYNTAX;
-      }
-      return UPLL_RC_SUCCESS;
+    if (option1 != UNC_OPT1_NORMAL) {
+      UPLL_LOG_INFO("Error option1 is not NORMAL");
+      return UPLL_RC_ERR_INVALID_OPTION1;
+    }
+    if (option2 != UNC_OPT2_PING) {
+      UPLL_LOG_INFO("Error option2 is not PING");
+      return UPLL_RC_ERR_INVALID_OPTION2;
+    }
+    if (NULL == ikey->get_cfg_val()) {
+      UPLL_LOG_TRACE("ConfigVal struct is null");
+      return UPLL_RC_ERR_BAD_REQUEST;
+    }
+    if (ikey->get_cfg_val()->get_st_num() != IpctSt::kIpcStValPing) {
+      UPLL_LOG_INFO(
+          "Expecting val_ping structure. received struct - %d",
+          ikey->get_cfg_val()->get_st_num());
+      return UPLL_RC_ERR_BAD_REQUEST;
+    }
+    val_ping *ping_val =
+        reinterpret_cast<val_ping *>(ikey->get_cfg_val()->get_val());
+    if (ping_val == NULL) {
+      UPLL_LOG_TRACE("val_ping struct is missing");
+      return UPLL_RC_ERR_GENERIC;
+    }
+    ret_val = ValidateVrtPingValue(ping_val);
+    if (ret_val != UPLL_RC_SUCCESS) {
+      UPLL_LOG_INFO("syntax check failure for val_ping value structure");
+      return UPLL_RC_ERR_CFG_SYNTAX;
+    }
+    return UPLL_RC_SUCCESS;
   }
   UPLL_LOG_INFO("Unsupported datatype-(%d) or operation-(%d)", dt_type,
-                   operation);
+                operation);
   return UPLL_RC_ERR_NO_SUCH_INSTANCE;
 }
 
@@ -1580,15 +1616,15 @@ upll_rc_t VrtMoMgr::ValidateCapability(IpcReqRespHeader *req,
                                        const char *ctrlr_name) {
   UPLL_FUNC_TRACE;
   upll_rc_t ret_val = UPLL_RC_ERR_GENERIC;
-  
-  if (!ikey || !req ) {
+
+  if (!ikey || !req) {
     UPLL_LOG_INFO(" ConfigKeyVal / IpcReqRespHeader is NULL");
     return UPLL_RC_ERR_GENERIC;
   }
 
   if (!ctrlr_name) {
     ctrlr_name = reinterpret_cast<char*>((reinterpret_cast<key_user_data_t *>
-                  (ikey->get_user_data()))->ctrlr_id);
+                                          (ikey->get_user_data()))->ctrlr_id);
     if (!ctrlr_name || !strlen(ctrlr_name)) {
       UPLL_LOG_DEBUG("Controller Name is NULL");
       return UPLL_RC_ERR_GENERIC;
@@ -1605,13 +1641,6 @@ upll_rc_t VrtMoMgr::ValidateCapability(IpcReqRespHeader *req,
       result_code = GetCreateCapability(ctrlr_name, ikey->get_key_type(),
                                         &max_instance_count, &max_attrs,
                                         &attrs);
-      if (result_code && (max_instance_count != 0) &&
-          (cur_instance_count >= max_instance_count)) {
-        UPLL_LOG_INFO("[%s:%d:%s Instance count %d exceeds %d", __FILE__,
-                      __LINE__, __FUNCTION__, cur_instance_count,
-                      max_instance_count);
-        return UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
-      }
       break;
 
     case UNC_OP_UPDATE:
@@ -1623,7 +1652,7 @@ upll_rc_t VrtMoMgr::ValidateCapability(IpcReqRespHeader *req,
     case UNC_OP_READ_SIBLING_BEGIN:
     case UNC_OP_READ_SIBLING_COUNT:
       result_code = GetStateCapability(ctrlr_name, ikey->get_key_type(),
-                                      &max_attrs, &attrs);
+                                       &max_attrs, &attrs);
       break;
     default:
       UPLL_LOG_INFO("Invalid operation code");
@@ -1631,7 +1660,7 @@ upll_rc_t VrtMoMgr::ValidateCapability(IpcReqRespHeader *req,
   }
   if (!result_code) {
     UPLL_LOG_DEBUG("key_type - %d is not supported by controller - %s",
-                  ikey->get_key_type(), ctrlr_name);
+                   ikey->get_key_type(), ctrlr_name);
     return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
   }
 
@@ -1643,19 +1672,22 @@ upll_rc_t VrtMoMgr::ValidateCapability(IpcReqRespHeader *req,
   }
   if (vrt_val) {
     if (max_attrs > 0) {
-      ret_val = ValidateVrtAttributeSupportCheck(vrt_val, attrs, req->operation);
+      ret_val = ValidateVrtAttributeSupportCheck(vrt_val, attrs,
+                                                 req->operation);
       return ret_val;
     } else {
-      UPLL_LOG_DEBUG("Attribute list is empty for operation %d", req->operation);
+      UPLL_LOG_DEBUG("Attribute list is empty for operation %d",
+                     req->operation);
       return UPLL_RC_ERR_GENERIC;
     }
   }
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t VrtMoMgr::ValidateVrtAttributeSupportCheck(val_vrt_t *vrt_val,
-                                                    const uint8_t *attrs,
-                                                     unc_keytype_operation_t operation) {
+upll_rc_t VrtMoMgr::ValidateVrtAttributeSupportCheck(
+    val_vrt_t *vrt_val,
+    const uint8_t *attrs,
+    unc_keytype_operation_t operation) {
   UPLL_FUNC_TRACE;
   if (vrt_val != NULL) {
     if ((vrt_val->valid[UPLL_IDX_DOMAIN_ID_VRT] == UNC_VF_VALID) ||
@@ -1675,7 +1707,7 @@ upll_rc_t VrtMoMgr::ValidateVrtAttributeSupportCheck(val_vrt_t *vrt_val,
         if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
           UPLL_LOG_INFO("Description attr is not supported by pfc ctrlr ");
           return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
-        } 
+        }
       }
     }
     if ((vrt_val->valid[UPLL_IDX_DHCP_RELAY_ADMIN_STATUS_VRT] == UNC_VF_VALID)
@@ -1684,7 +1716,7 @@ upll_rc_t VrtMoMgr::ValidateVrtAttributeSupportCheck(val_vrt_t *vrt_val,
       if (attrs[unc::capa::vrt::kCapDhcpRelayAdminStatus] == 0) {
         vrt_val->valid[UPLL_IDX_DHCP_RELAY_ADMIN_STATUS_VRT] =
             UNC_VF_INVALID;
-        if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {    
+        if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
           UPLL_LOG_INFO("Admin status attr is not supported by pfc ctrlr ");
           return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
         }
@@ -1704,26 +1736,31 @@ upll_rc_t VrtMoMgr::CreateVnodeConfigKey(ConfigKeyVal *ikey,
   key_vrt * temp_key_vrt = reinterpret_cast<key_vrt *>
       (ConfigKeyVal::Malloc(sizeof(key_vrt)));
   if (!strlen(reinterpret_cast<const char*>(reinterpret_cast<key_vrt*>
-                    (ikey->get_key())->vtn_key.vtn_name))) {
+                                            (ikey->get_key())->
+                                            vtn_key.vtn_name))) {
     /* Addressed RESOURCE_LEAK */
     FREE_IF_NOT_NULL(temp_key_vrt);
     return UPLL_RC_ERR_GENERIC;
   }
   uuu::upll_strncpy(temp_key_vrt->vtn_key.vtn_name,
-         reinterpret_cast<key_vrt*>(ikey->get_key())->vtn_key.vtn_name,
-         (kMaxLenVtnName+1));
+                    reinterpret_cast<key_vrt*>(ikey->get_key())->
+                    vtn_key.vtn_name,
+                    (kMaxLenVtnName+1));
   if (!strlen(reinterpret_cast<const char*>( reinterpret_cast<key_vrt*>
-                    (ikey->get_key())->vrouter_name))) {
+                                            (ikey->
+                                             get_key())->vrouter_name))) {
     // RESOURCE_LEAK
     FREE_IF_NOT_NULL(temp_key_vrt);
     return UPLL_RC_ERR_GENERIC;
   }
   uuu::upll_strncpy(temp_key_vrt->vrouter_name,
-         reinterpret_cast<key_vrt*>(ikey->get_key())->vrouter_name,
-         (kMaxLenVnodeName+1));
+                    reinterpret_cast<key_vrt*>(ikey->get_key())->vrouter_name,
+                    (kMaxLenVnodeName+1));
 
   ConfigKeyVal *ck_vrt = new ConfigKeyVal(UNC_KT_VROUTER, IpctSt::kIpcStKeyVrt,
-                                 reinterpret_cast<void *>(temp_key_vrt), NULL);
+                                          reinterpret_cast<void *>
+                                          (temp_key_vrt),
+                                          NULL);
   if (ck_vrt == NULL) return UPLL_RC_ERR_GENERIC;
   okey = ck_vrt;
   return UPLL_RC_SUCCESS;
@@ -1734,12 +1771,13 @@ upll_rc_t VrtMoMgr::IsReferenced(ConfigKeyVal *ikey,
                                  DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
-  MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager*>
-                                          (GetMoManager(UNC_KT_VRT_IF)));
+  MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(
+      const_cast<MoManager*>
+      (GetMoManager(UNC_KT_VRT_IF)));
   result_code = mgr->IsReferenced(ikey, dt_type, dmi);
-  if (UPLL_RC_SUCCESS != result_code) { 
+  if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code (%d)",
-           result_code);
+                   result_code);
     return result_code;
   }
   UPLL_LOG_DEBUG("IsReferenced result code (%d)", result_code);
@@ -1758,12 +1796,12 @@ upll_rc_t VrtMoMgr::AdaptValToVtnService(ConfigKeyVal *ikey) {
       UPLL_LOG_DEBUG("Config Val is Null");
       return UPLL_RC_ERR_GENERIC;
     }
-    while (cval ) {
+    while (cval) {
       if (IpctSt::kIpcStValVrtSt == cval->get_st_num()) {
         val_vrt_st *vrt_val_st = reinterpret_cast<val_vrt_st *>
-                         (ConfigKeyVal::Malloc(sizeof(val_vrt_st)));
+            (ConfigKeyVal::Malloc(sizeof(val_vrt_st)));
         val_db_vrt_st *db_vrt_val_st = reinterpret_cast<val_db_vrt_st *>
-                                     (cval->get_val());
+            (cval->get_val());
         memcpy(vrt_val_st, &(db_vrt_val_st->vrt_val_st),
                sizeof(val_vrt_st));
         cval->SetVal(IpctSt::kIpcStValVrtSt, vrt_val_st);
@@ -1776,8 +1814,8 @@ upll_rc_t VrtMoMgr::AdaptValToVtnService(ConfigKeyVal *ikey) {
 }
 
 upll_rc_t VrtMoMgr::EnableAdminStatus(ConfigKeyVal *ikey,
-                                                DalDmlIntf *dmi,
-                                                IpcReqRespHeader *req) {
+                                      DalDmlIntf *dmi,
+                                      IpcReqRespHeader *req) {
   UPLL_FUNC_TRACE;
   if (ikey->get_key_type() != UNC_KT_VROUTER)
     return UPLL_RC_ERR_CFG_SYNTAX;
@@ -1787,28 +1825,34 @@ upll_rc_t VrtMoMgr::EnableAdminStatus(ConfigKeyVal *ikey,
   string dhcpif_name = "";
 
   val_vrt_t *vrt_val = reinterpret_cast<val_vrt_t *>(GetVal(ikey));
-  if ((vrt_val->valid[UPLL_IDX_DHCP_RELAY_ADMIN_STATUS_VRT] != UNC_VF_VALID) && 
-    (vrt_val->dhcp_relay_admin_status != UPLL_ADMIN_ENABLE)) {
+  if ((vrt_val->valid[UPLL_IDX_DHCP_RELAY_ADMIN_STATUS_VRT] != UNC_VF_VALID) &&
+      (vrt_val->dhcp_relay_admin_status != UPLL_ADMIN_ENABLE)) {
     UPLL_LOG_DEBUG("Semantic check not required!");
     return UPLL_RC_SUCCESS;
-  } 
-   
+  }
+
   UPLL_LOG_DEBUG("Check for dhcp-relay server");
   key_dhcp_relay_server *dhcp_server_key = (key_dhcp_relay_server *)
-                                      ConfigKeyVal::Malloc(sizeof(key_dhcp_relay_server));
-  
+      ConfigKeyVal::Malloc(sizeof(key_dhcp_relay_server));
+
   memcpy(dhcp_server_key, ikey->get_key(), sizeof(key_vrt_t));
-  ConfigKeyVal *ckv_dhcpserver = new ConfigKeyVal(UNC_KT_DHCPRELAY_SERVER,
-                             IpctSt::kIpcStKeyDhcpRelayServer,
-                             dhcp_server_key);
-
-  MoMgrImpl *dhcpserver_mgr = reinterpret_cast<MoMgrImpl*>(const_cast
-                              <MoManager *>(GetMoManager(UNC_KT_DHCPRELAY_SERVER)));
-  upll_rc_t result_code = dhcpserver_mgr->ReadConfigDB(ckv_dhcpserver, 
-                                          UPLL_DT_CANDIDATE, UNC_OP_READ,
-                                          dbop, sibling_count, dmi, MAINTBL);
+  ConfigKeyVal *ckv_dhcpserver = new ConfigKeyVal(
+      UNC_KT_DHCPRELAY_SERVER,
+      IpctSt::kIpcStKeyDhcpRelayServer,
+      dhcp_server_key);
+
+  MoMgrImpl *dhcpserver_mgr = reinterpret_cast<MoMgrImpl*>(
+      const_cast
+      <MoManager *>(GetMoManager(UNC_KT_DHCPRELAY_SERVER)));
+  upll_rc_t result_code = dhcpserver_mgr->ReadConfigDB(ckv_dhcpserver,
+                                                       UPLL_DT_CANDIDATE,
+                                                       UNC_OP_READ,
+                                                       dbop,
+                                                       sibling_count,
+                                                       dmi,
+                                                       MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("dhcp-relay server is not configured!"); 
+    UPLL_LOG_DEBUG("dhcp-relay server is not configured!");
     delete ckv_dhcpserver;
     return UPLL_RC_ERR_CFG_SEMANTIC;
   }
@@ -1816,16 +1860,19 @@ upll_rc_t VrtMoMgr::EnableAdminStatus(ConfigKeyVal *ikey,
   delete ckv_dhcpserver;
   UPLL_LOG_DEBUG("Check for dhcp-relay interface");
   key_dhcp_relay_if *dhcp_if_key = (key_dhcp_relay_if *)
-                                   malloc(sizeof(key_dhcp_relay_if));
+      malloc(sizeof(key_dhcp_relay_if));
   memset(dhcp_if_key, 0, sizeof(key_dhcp_relay_if));
   memcpy(dhcp_if_key, ikey->get_key(), sizeof(key_vrt_t));
   ConfigKeyVal *ckv_dhcpif = new ConfigKeyVal(UNC_KT_DHCPRELAY_IF,
-                             IpctSt::kIpcStKeyDhcpRelayIf,
-                             dhcp_if_key);
-  MoMgrImpl *dhcpif_mgr = reinterpret_cast<MoMgrImpl*>(const_cast<MoManager *>
-                          (GetMoManager(UNC_KT_DHCPRELAY_IF)));
-  result_code = dhcpif_mgr->ReadConfigDB(ckv_dhcpif, UPLL_DT_CANDIDATE, UNC_OP_READ,
-                             dbop, sibling_count, dmi, MAINTBL);
+                                              IpctSt::kIpcStKeyDhcpRelayIf,
+                                              dhcp_if_key);
+  MoMgrImpl *dhcpif_mgr = reinterpret_cast<MoMgrImpl*>(
+      const_cast<MoManager *>
+      (GetMoManager(UNC_KT_DHCPRELAY_IF)));
+  result_code = dhcpif_mgr->ReadConfigDB(ckv_dhcpif,
+                                         UPLL_DT_CANDIDATE,
+                                         UNC_OP_READ,
+                                         dbop, sibling_count, dmi, MAINTBL);
   if (result_code != UPLL_RC_SUCCESS || sibling_count == 0) {
     UPLL_LOG_DEBUG("dhcp-relay interface is not configured!");
     delete ckv_dhcpif;
@@ -1834,7 +1881,7 @@ upll_rc_t VrtMoMgr::EnableAdminStatus(ConfigKeyVal *ikey,
   if (sibling_count > 0) {
     key_dhcp_relay_if *dhcp_if_key= (key_dhcp_relay_if *)ckv_dhcpif->get_key();
     dhcpif_name = (const char *)dhcp_if_key->if_name;
-  } 
+  }
 
   UPLL_LOG_DEBUG("Check for vrouter interface");
   key_vrt_if *vrtifkey = (key_vrt_if *)malloc(sizeof(key_vrt_if));
@@ -1842,17 +1889,22 @@ upll_rc_t VrtMoMgr::EnableAdminStatus(ConfigKeyVal *ikey,
   memcpy(&vrtifkey->vrt_key, ikey->get_key(), sizeof(key_vrt_t));
   memcpy(vrtifkey->if_name, dhcpif_name.c_str(), dhcpif_name.length()+1);
   ConfigKeyVal *ckv_vrtif = new ConfigKeyVal(UNC_KT_VRT_IF,
-                             IpctSt::kIpcStKeyVrtIf,
-                             vrtifkey);
+                                             IpctSt::kIpcStKeyVrtIf,
+                                             vrtifkey);
   DbSubOp dbop2 = {kOpReadSingle, kOpMatchNone, kOpInOutNone};
-  MoMgrImpl *vrtif_mgr = reinterpret_cast<MoMgrImpl*>(const_cast<MoManager *>
-                         (GetMoManager(UNC_KT_VRT_IF)));
-  result_code = vrtif_mgr->ReadConfigDB(ckv_vrtif, UPLL_DT_CANDIDATE, UNC_OP_READ,
-                             dbop2, dmi, MAINTBL);
+  MoMgrImpl *vrtif_mgr = reinterpret_cast<MoMgrImpl*>(
+      const_cast<MoManager *>
+      (GetMoManager(UNC_KT_VRT_IF)));
+  result_code = vrtif_mgr->ReadConfigDB(ckv_vrtif,
+                                        UPLL_DT_CANDIDATE,
+                                        UNC_OP_READ,
+                                        dbop2,
+                                        dmi,
+                                        MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("vrouter interface is not configured!");
     return UPLL_RC_ERR_CFG_SEMANTIC;
-  } 
+  }
   DELETE_IF_NOT_NULL(ckv_vrtif);
   UPLL_LOG_DEBUG("Check for vrouter interface on a vlink");
 
@@ -1863,23 +1915,34 @@ upll_rc_t VrtMoMgr::EnableAdminStatus(ConfigKeyVal *ikey,
 
   val_vlink *vlink_val = (val_vlink *)malloc(sizeof(val_vlink));
   memset(vlink_val, 0, sizeof(val_vlink));
-  memcpy(vlink_val->vnode1_name, vrt_key->vrouter_name, sizeof(vrt_key->vrouter_name));
-  memcpy(vlink_val->vnode1_ifname, dhcpif_name.c_str(), dhcpif_name.length()+1);
-  memcpy(vlink_val->vnode2_name, vrt_key->vrouter_name, sizeof(vrt_key->vrouter_name));
-  memcpy(vlink_val->vnode2_ifname, dhcpif_name.c_str(), dhcpif_name.length()+1);
+  memcpy(vlink_val->vnode1_name, vrt_key->vrouter_name,
+         sizeof(vrt_key->vrouter_name));
+  memcpy(vlink_val->vnode1_ifname, dhcpif_name.c_str(),
+         dhcpif_name.length()+1);
+  memcpy(vlink_val->vnode2_name, vrt_key->vrouter_name,
+         sizeof(vrt_key->vrouter_name));
+  memcpy(vlink_val->vnode2_ifname, dhcpif_name.c_str(),
+         dhcpif_name.length()+1);
   vlink_val->valid[UPLL_IDX_VNODE1_NAME_VLNK] = UNC_VF_VALID;
   vlink_val->valid[UPLL_IDX_VNODE1_IF_NAME_VLNK] = UNC_VF_VALID;
   vlink_val->valid[UPLL_IDX_VNODE2_NAME_VLNK] = UNC_VF_INVALID;
   vlink_val->valid[UPLL_IDX_VNODE2_IF_NAME_VLNK] = UNC_VF_INVALID;
 
   ConfigKeyVal *ckv_vlink = new ConfigKeyVal(UNC_KT_VLINK,
-                             IpctSt::kIpcStKeyVlink,
-                             vlink_key,
-                             new ConfigVal(IpctSt::kIpcStValVlink, vlink_val));
-  MoMgrImpl *vlink_mgr = reinterpret_cast<MoMgrImpl*>(const_cast<MoManager *>
-                         (GetMoManager(UNC_KT_VLINK)));
-  result_code = vlink_mgr->ReadConfigDB(ckv_vlink, UPLL_DT_CANDIDATE, UNC_OP_READ,
-                             dbop, dmi, MAINTBL);
+                                             IpctSt::kIpcStKeyVlink,
+                                             vlink_key,
+                                             new ConfigVal(
+                                                 IpctSt::kIpcStValVlink,
+                                                 vlink_val));
+  MoMgrImpl *vlink_mgr = reinterpret_cast<MoMgrImpl*>(
+      const_cast<MoManager *>
+      (GetMoManager(UNC_KT_VLINK)));
+  result_code = vlink_mgr->ReadConfigDB(ckv_vlink,
+                                        UPLL_DT_CANDIDATE,
+                                        UNC_OP_READ,
+                                        dbop,
+                                        dmi,
+                                        MAINTBL);
   if (result_code == UPLL_RC_SUCCESS) {
     delete ckv_vlink;
     UPLL_LOG_DEBUG("vrouter interface is configured on a vlink!");
@@ -1891,8 +1954,8 @@ upll_rc_t VrtMoMgr::EnableAdminStatus(ConfigKeyVal *ikey,
   vlink_val->valid[UPLL_IDX_VNODE2_NAME_VLNK] = UNC_VF_VALID;
   vlink_val->valid[UPLL_IDX_VNODE2_IF_NAME_VLNK] = UNC_VF_VALID;
 
-  result_code = vlink_mgr->ReadConfigDB(ckv_vlink, UPLL_DT_CANDIDATE, 
-                          UNC_OP_READ, dbop, dmi, MAINTBL);
+  result_code = vlink_mgr->ReadConfigDB(ckv_vlink, UPLL_DT_CANDIDATE,
+                                        UNC_OP_READ, dbop, dmi, MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("vrouter interface is not configured on a vlink!");
     result_code =  UPLL_RC_ERR_CFG_SEMANTIC;
index c16acfce1a5b3c73bc2830cd5db14b2f1f17c040..a68358b342d21c8bf9c12d5a2e70c2e90f96de2d 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -28,15 +28,15 @@ class VrtMoMgr : public VnodeMoMgr {
   static BindInfo key_vrt_maintbl_update_bind_info[];
   static BindInfo key_vrt_renametbl_update_bind_info[];
   /**
-   * @brief  Gets the valid array position of the variable in the value 
-   *         structure from the table in the specified configuration  
+   * @brief  Gets the valid array position of the variable in the value
+   *         structure from the table in the specified configuration
    *
-   * @param[in]     val      pointer to the value structure 
+   * @param[in]     val      pointer to the value structure
    * @param[in]     indx     database index for the variable
-   * @param[out]    valid    position of the variable in the valid array - 
+   * @param[out]    valid    position of the variable in the valid array -
    *                          NULL if valid does not exist.
    * @param[in]     dt_type  specifies the configuration
-   * @param[in]     tbl      specifies the table containing the given value 
+   * @param[in]     tbl      specifies the table containing the given value
    *
    **/
   upll_rc_t GetValid(void *val,
@@ -48,13 +48,13 @@ class VrtMoMgr : public VnodeMoMgr {
       return UPLL_RC_ERR_GENERIC;
     if (tbl == MAINTBL) {
       switch (indx) {
-         case uudst::vrouter::kDbiOperStatus:
-           valid = &(reinterpret_cast<val_vbr_st *>(val))->
-                valid[UPLL_IDX_OPER_STATUS_VRTS];
-           break;
-         case uudst::vrouter::kDbiDownCount:
-            valid = NULL;
-            break;
+        case uudst::vrouter::kDbiOperStatus:
+          valid = &(reinterpret_cast<val_vbr_st *>(val))->
+              valid[UPLL_IDX_OPER_STATUS_VRTS];
+          break;
+        case uudst::vrouter::kDbiDownCount:
+          valid = NULL;
+          break;
         case uudst::vrouter::kDbiCtrlrName:
           valid = &(reinterpret_cast<val_vrt *>(val))->
               valid[UPLL_IDX_CONTROLLER_ID_VRT];
@@ -75,19 +75,18 @@ class VrtMoMgr : public VnodeMoMgr {
           return UPLL_RC_ERR_GENERIC;
       }
     } else if (tbl == RENAMETBL) {
-
-       switch(indx) {
-         case uudst::vnode_rename::kDbiCtrlrVtnName:
-            valid = &(reinterpret_cast<val_rename_vnode *>
+      switch (indx) {
+        case uudst::vnode_rename::kDbiCtrlrVtnName:
+          valid = &(reinterpret_cast<val_rename_vnode *>
                     (val))->valid[UPLL_CTRLR_VTN_NAME_VALID];
-            break;
-         case uudst::vnode_rename::kDbiCtrlrVnodeName:
-            valid = &(reinterpret_cast<val_rename_vnode *>
+          break;
+        case uudst::vnode_rename::kDbiCtrlrVnodeName:
+          valid = &(reinterpret_cast<val_rename_vnode *>
                     (val))->valid[UPLL_CTRLR_VNODE_NAME_VALID];
-            break;
-         default:
-            break;
-       }
+          break;
+        default:
+          break;
+      }
     }
     return UPLL_RC_SUCCESS;
   }
@@ -108,7 +107,7 @@ class VrtMoMgr : public VnodeMoMgr {
   /**
    * @brief  Compares the valid value between two database records.
    *        if both the values are same, update the valid flag for corresponding
-   *        attribute as invalid in the first record. 
+   *        attribute as invalid in the first record.
    *
    * @param[in/out]  val1   first record value instance.
    * @param[in]      val2   second record value instance.
@@ -136,11 +135,13 @@ class VrtMoMgr : public VnodeMoMgr {
    * @param[in/out]  ckv_running  ConfigKeyVal instance.
    * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
    * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
+   * @param[in]      dmi          Pointer to the DalDmlIntf(DB Interface)
    *
    **/
   upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
                                     uuc::UpdateCtrlrPhase phase,
-                                    ConfigKeyVal *&ckv_running);
+                                    ConfigKeyVal *&ckv_running,
+                                    DalDmlIntf *dmi);
   /**
    * @Brief  Validates the syntax of the specified key and value structure
    *         for KT_VRT keytype
@@ -188,7 +189,7 @@ class VrtMoMgr : public VnodeMoMgr {
    * @retval  UPLL_RC_ERR_CFG_SYNTAX   validation failed.
    */
   upll_rc_t ValidateVrtKey(key_vrt *vrt_key,
-                       unc_keytype_operation_t operation = UNC_OP_INVALID);
+                           unc_keytype_operation_t operation = UNC_OP_INVALID);
 
   /**
    * @Brief  Validates the syntax for KT_VRT keytype value structure.
@@ -233,7 +234,7 @@ class VrtMoMgr : public VnodeMoMgr {
    * @param[in]  operation       Operation name.
    *
    * @retval  UPLL_RC_SUCCESS                       validation succeeded.
-   * @retval  UPLL_RC_ERR_EXCEEDS_RESOURSE_LIMIT    Instance count limit is exceeds. 
+   * @retval  UPLL_RC_ERR_EXCEEDS_RESOURSE_LIMIT    Instance count limit is exceeds.
    * @retval  UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR    Attribute NOT_SUPPORTED.
    * @retval  UPLL_RC_ERR_GENERIC                   Generic failure.
    */
@@ -242,7 +243,7 @@ class VrtMoMgr : public VnodeMoMgr {
                                              unc_keytype_operation_t operation);
 
   /**
-   * @brief  Duplicates the input configkeyval including the key and val.  
+   * @brief  Duplicates the input configkeyval including the key and val.
    * based on the tbl specified.
    *
    * @param[in]  okey   Output Configkeyval - allocated within the function
@@ -256,13 +257,13 @@ class VrtMoMgr : public VnodeMoMgr {
                             ConfigKeyVal *&req,
                             MoMgrTables tbl = MAINTBL);
   /**
-   * @brief  Allocates for the specified val in the given configuration in the     * specified table.   
+   * @brief  Allocates for the specified val in the given configuration in the     * specified table.
    *
-   * @param[in/out]  ck_val   Reference pointer to configval structure 
-   *                          allocated.      
+   * @param[in/out]  ck_val   Reference pointer to configval structure
+   *                          allocated.
    * @param[in]      dt_type  specifies the configuration candidate/running/
-   *                          state 
-   * @param[in]      tbl      specifies if the corresponding table is the  
+   *                          state
+   * @param[in]      tbl      specifies if the corresponding table is the
    *                          main table / controller table or rename table.
    *
    * @retval         UPLL_RC_SUCCESS      Successfull completion.
@@ -274,7 +275,7 @@ class VrtMoMgr : public VnodeMoMgr {
   /**
    * @brief      Method to get a configkeyval of a specified keytype from an input configkeyval
    *
-   * @param[in/out]  okey                 pointer to output ConfigKeyVal 
+   * @param[in/out]  okey                 pointer to output ConfigKeyVal
    * @param[in]      parent_key           pointer to the configkeyval from which the output configkey val is initialized.
    *
    * @retval         UPLL_RC_SUCCESS      Successfull completion.
@@ -283,10 +284,10 @@ class VrtMoMgr : public VnodeMoMgr {
   upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey,
                               ConfigKeyVal *parent_key);
   /**
-   * @brief      Method to get a configkeyval of the parent keytype 
+   * @brief      Method to get a configkeyval of the parent keytype
    *
-   * @param[in/out]  okey           pointer to parent ConfigKeyVal 
-   * @param[in]      ikey           pointer to the child configkeyval from 
+   * @param[in/out]  okey           pointer to parent ConfigKeyVal
+   * @param[in]      ikey           pointer to the child configkeyval from
    * which the parent configkey val is obtained.
    *
    * @retval         UPLL_RC_SUCCESS      Successfull completion.
@@ -315,10 +316,10 @@ class VrtMoMgr : public VnodeMoMgr {
                          upll_keytype_datatype_t dt_type,
                          DalDmlIntf *dmi);
 
-  /* @brief     To convert the value structure read from DB to 
+  /* @brief     To convert the value structure read from DB to
    *           VTNService during READ operations
-   * @param[in/out] ikey      Pointer to the ConfigKeyVal Structure                    
-   * 
+   * @param[in/out] ikey      Pointer to the ConfigKeyVal Structure
+   *
    * @retval  UPLL_RC_SUCCESS                    Completed successfully.
    * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
    *
@@ -363,7 +364,7 @@ class VrtMoMgr : public VnodeMoMgr {
   upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey,
                             ConfigKeyVal *ikey);
   /**
-   * @Brief  compares controller id and domain id before 
+   * @Brief  compares controller id and domain id before
    *         updating the value to DB.
    *
    * @param[in]  ikey  ikey contains key and value structure.
@@ -374,7 +375,7 @@ class VrtMoMgr : public VnodeMoMgr {
    */
 
   upll_rc_t CtrlrIdAndDomainIdUpdationCheck(ConfigKeyVal *ikey,
-                                                   ConfigKeyVal *okey);
+                                            ConfigKeyVal *okey);
   /**
    * @brief create entry in Vnode Rename Table,
    *        with the renamed VTN details fetched from VTN rename Table
index b3904d66f704ca7f4ce7e4de035bedc930df9c11..8d591acca23a723d024855813ee0c2eeb5984d2f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -17,34 +17,34 @@ namespace unc {
 namespace upll {
 namespace kt_momgr {
 
-  BindInfo VtepGrpMoMgr::vtep_grp_bind_info[] = {
-    { uudst::vtep_group::kDbiVtnName, CFG_KEY,
-      offsetof(key_vtep_grp, vtn_key.vtn_name), uud::kDalChar,
-      kMaxLenVtnName+1 },
-    { uudst::vtep_group::kDbiVtepgrpName, CFG_KEY,
-      offsetof(key_vtep_grp, vtepgrp_name), uud::kDalChar,
-      kMaxLenVnodeName+1 },
-    { uudst::vtep_group::kDbiCtrlrName, CFG_VAL,
-      offsetof(val_vtep_grp, controller_id), uud::kDalChar, kMaxLenCtrlrId+1},
-    { uudst::vtep_group::kDbiCtrlrName, CK_VAL,
-      offsetof(key_user_data_t, ctrlr_id),
-      uud::kDalChar, kMaxLenCtrlrId+1 },
-    { uudst::vtep_group::kDbiDesc, CFG_VAL, offsetof(val_vtep_grp, description),
-      uud::kDalChar, kMaxLenDescription+1},
-    { uudst::vtep_group::kDbiFlags, CK_VAL, offsetof(key_user_data_t, flags),
-      uud::kDalUint8, 1},
-    { uudst::vtep_group::kDbiValidCtrlrName, CFG_META_VAL,
-      offsetof(val_vtep_grp, valid[0]), uud::kDalUint8, 1},
-    { uudst::vtep_group::kDbiValidDesc, CFG_META_VAL,
-      offsetof(val_vtep_grp, valid[1]), uud::kDalUint8, 1},
-    { uudst::vtep_group::kDbiCsRowstatus, CS_VAL,
-      offsetof(val_vtep_grp, cs_row_status), uud::kDalUint8, 1},
-    { uudst::vtep_group::kDbiCsCtrlrName, CS_VAL, offsetof(val_vtep_grp,
-      cs_attr[0]),
-      uud::kDalUint8, 1},
-    { uudst::vtep_group::kDbiCsDesc, CS_VAL, offsetof(val_vtep_grp, cs_attr[1]),
-      uud::kDalUint8, 1}
-  };
+BindInfo VtepGrpMoMgr::vtep_grp_bind_info[] = {
+  { uudst::vtep_group::kDbiVtnName, CFG_KEY,
+    offsetof(key_vtep_grp, vtn_key.vtn_name), uud::kDalChar,
+    kMaxLenVtnName+1 },
+  { uudst::vtep_group::kDbiVtepgrpName, CFG_KEY,
+    offsetof(key_vtep_grp, vtepgrp_name), uud::kDalChar,
+    kMaxLenVnodeName+1 },
+  { uudst::vtep_group::kDbiCtrlrName, CFG_VAL,
+    offsetof(val_vtep_grp, controller_id), uud::kDalChar, kMaxLenCtrlrId+1},
+  { uudst::vtep_group::kDbiCtrlrName, CK_VAL,
+    offsetof(key_user_data_t, ctrlr_id),
+    uud::kDalChar, kMaxLenCtrlrId+1 },
+  { uudst::vtep_group::kDbiDesc, CFG_VAL, offsetof(val_vtep_grp, description),
+    uud::kDalChar, kMaxLenDescription+1},
+  { uudst::vtep_group::kDbiFlags, CK_VAL, offsetof(key_user_data_t, flags),
+    uud::kDalUint8, 1},
+  { uudst::vtep_group::kDbiValidCtrlrName, CFG_META_VAL,
+    offsetof(val_vtep_grp, valid[0]), uud::kDalUint8, 1},
+  { uudst::vtep_group::kDbiValidDesc, CFG_META_VAL,
+    offsetof(val_vtep_grp, valid[1]), uud::kDalUint8, 1},
+  { uudst::vtep_group::kDbiCsRowstatus, CS_VAL,
+    offsetof(val_vtep_grp, cs_row_status), uud::kDalUint8, 1},
+  { uudst::vtep_group::kDbiCsCtrlrName, CS_VAL, offsetof(val_vtep_grp,
+                                                         cs_attr[0]),
+  uud::kDalUint8, 1},
+  { uudst::vtep_group::kDbiCsDesc, CS_VAL, offsetof(val_vtep_grp, cs_attr[1]),
+    uud::kDalUint8, 1}
+};
 
 unc_key_type_t VtepGrpMoMgr::vtep_grp_child[] = {
   UNC_KT_VTEP_GRP_MEMBER
@@ -53,9 +53,9 @@ unc_key_type_t VtepGrpMoMgr::vtep_grp_child[] = {
 VtepGrpMoMgr::VtepGrpMoMgr() {
   UPLL_FUNC_TRACE;
   Table *tbl = new Table(uudst::kDbiVtepGrpTbl, UNC_KT_VTEP_GRP,
-      vtep_grp_bind_info,
-      IpctSt::kIpcStKeyVtepGrp, IpctSt::kIpcStValVtepGrp,
-      uudst::vtep_group::kDbiVtepGrpNumCols+1);
+                         vtep_grp_bind_info,
+                         IpctSt::kIpcStKeyVtepGrp, IpctSt::kIpcStValVtepGrp,
+                         uudst::vtep_group::kDbiVtepGrpNumCols+1);
   ntable = MAX_MOMGR_TBLS;
   table = new Table *[ntable];
   table[MAINTBL] = tbl;
@@ -115,11 +115,11 @@ bool VtepGrpMoMgr::IsValidKey(void *key, uint64_t index) {
 }
 
 upll_rc_t VtepGrpMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
-    ConfigKeyVal *parent_key) {
+                                          ConfigKeyVal *parent_key) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   key_vtep_grp *vtep_grp_key = static_cast<key_vtep_grp *>
-    (ConfigKeyVal::Malloc(sizeof(key_vtep_grp)));
+      (ConfigKeyVal::Malloc(sizeof(key_vtep_grp)));
   if (vtep_grp_key == NULL) return UPLL_RC_ERR_GENERIC;
   void *pkey;
   if (parent_key == NULL) {
@@ -150,38 +150,38 @@ upll_rc_t VtepGrpMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
   switch (parent_key->get_key_type()) {
     case UNC_KT_VTEP_GRP:
       uuu::upll_strncpy(vtep_grp_key->vtepgrp_name,
-               reinterpret_cast<key_vtep_grp *>(pkey)->vtepgrp_name,
-              (kMaxLenVnodeName+1));
+                        reinterpret_cast<key_vtep_grp *>(pkey)->vtepgrp_name,
+                        (kMaxLenVnodeName+1));
       uuu::upll_strncpy(vtep_grp_key->vtn_key.vtn_name,
-             reinterpret_cast<key_vtep *>(pkey)->vtn_key.vtn_name,
-             (kMaxLenVtnName+1));
+                        reinterpret_cast<key_vtep *>(pkey)->vtn_key.vtn_name,
+                        (kMaxLenVtnName+1));
       break;
     case UNC_KT_VTN:
     default:
       uuu::upll_strncpy(vtep_grp_key->vtn_key.vtn_name,
-             reinterpret_cast<key_vtn *>(pkey)->vtn_name,
-             (kMaxLenVtnName+1));
+                        reinterpret_cast<key_vtn *>(pkey)->vtn_name,
+                        (kMaxLenVtnName+1));
   }
   SET_USER_DATA(okey, parent_key);
   return result_code;
 }
 
 upll_rc_t VtepGrpMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
-    ConfigKeyVal *ikey ) {
+                                           ConfigKeyVal *ikey ) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   key_vtep_grp *pkey = (ikey)?
-    static_cast<key_vtep_grp *>(ikey->get_key()):NULL;
+      static_cast<key_vtep_grp *>(ikey->get_key()):NULL;
   if (!pkey) return UPLL_RC_ERR_GENERIC;
 
   if (ikey->get_key_type() != UNC_KT_VTEP_GRP)
     return UPLL_RC_ERR_GENERIC;
   key_vtn *vtn_key = reinterpret_cast<key_vtn *>
-                     (ConfigKeyVal::Malloc(sizeof(key_vtn)));
+      (ConfigKeyVal::Malloc(sizeof(key_vtn)));
   if (!vtn_key) return UPLL_RC_ERR_GENERIC;
   uuu::upll_strncpy(vtn_key->vtn_name,
-         pkey->vtn_key.vtn_name,
-         (kMaxLenVtnName+1));
+                    pkey->vtn_key.vtn_name,
+                    (kMaxLenVtnName+1));
   DELETE_IF_NOT_NULL(okey);
   okey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, vtn_key, NULL);
   if (okey == NULL) {
@@ -194,14 +194,15 @@ upll_rc_t VtepGrpMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
 }
 
 upll_rc_t VtepGrpMoMgr::AllocVal(ConfigVal *&ck_val,
-    upll_keytype_datatype_t dt_type, MoMgrTables tbl) {
+                                 upll_keytype_datatype_t dt_type,
+                                 MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
   void *val;
   if (ck_val != NULL) return UPLL_RC_ERR_GENERIC;
   switch (tbl) {
     case MAINTBL:
       val = reinterpret_cast<void *>
-            (ConfigKeyVal::Malloc(sizeof(val_vtep_grp)));
+          (ConfigKeyVal::Malloc(sizeof(val_vtep_grp)));
       if (!val) return UPLL_RC_ERR_GENERIC;
       ck_val = new ConfigVal(IpctSt::kIpcStValVtepGrp, val);
       if (!ck_val) {
@@ -223,7 +224,7 @@ upll_rc_t VtepGrpMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
   ctrlr_dom.ctrlr = NULL;
   ctrlr_dom.domain = NULL;
   upll_rc_t result_code = GetControllerDomainId(ikey, UPLL_DT_CANDIDATE,
-                                               &ctrlr_dom, dmi);
+                                                &ctrlr_dom, dmi);
   if ((result_code != UPLL_RC_SUCCESS) || (ctrlr_dom.ctrlr == NULL)) {
     UPLL_LOG_INFO("GetControllerDomainId failed err_code %d", result_code);
     return UPLL_RC_ERR_GENERIC;
@@ -232,7 +233,9 @@ upll_rc_t VtepGrpMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
   unc_keytype_ctrtype_t ctrlrtype;
   uuc::CtrlrMgr *ctrlr_mgr = uuc::CtrlrMgr::GetInstance();
   if (!ctrlr_mgr->GetCtrlrType(
-        reinterpret_cast<char *>(ctrlr_dom.ctrlr), req->datatype, &ctrlrtype)) {
+          reinterpret_cast<char *>(ctrlr_dom.ctrlr),
+          req->datatype,
+          &ctrlrtype)) {
     UPLL_LOG_DEBUG("Specified Controller Doesn't Exist");
     return UPLL_RC_ERR_CFG_SEMANTIC;
   }
@@ -240,9 +243,9 @@ upll_rc_t VtepGrpMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
 }
 
 upll_rc_t VtepGrpMoMgr::GetControllerDomainId(ConfigKeyVal *ikey,
-                                    upll_keytype_datatype_t dt_type,
-                                    controller_domain *ctrlr_dom,
-                                    DalDmlIntf *dmi) {
+                                              upll_keytype_datatype_t dt_type,
+                                              controller_domain *ctrlr_dom,
+                                              DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   ConfigKeyVal *okey = NULL;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
@@ -251,17 +254,17 @@ upll_rc_t VtepGrpMoMgr::GetControllerDomainId(ConfigKeyVal *ikey,
     return UPLL_RC_ERR_GENERIC;
   }
   val_vtep_grp *temp_vtep_grp = reinterpret_cast<val_vtep_grp *>
-                                                (GetVal(ikey));
+      (GetVal(ikey));
   if (temp_vtep_grp->valid[UPLL_IDX_CONTROLLER_ID_VTEPG] != UNC_VF_VALID) {
     temp_vtep_grp = NULL;
     result_code = GetChildConfigKey(okey, ikey);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_ERROR("GetChildConfigKey failed with result_code %d",
-                      result_code);
+                     result_code);
       return result_code;
     }
     DbSubOp dbop = {kOpReadSingle, kOpMatchNone,
-                    kOpInOutCtrlr | kOpInOutDomain | kOpInOutFlag};
+      kOpInOutCtrlr | kOpInOutDomain | kOpInOutFlag};
     result_code = ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop,
                                dmi, MAINTBL);
     if (UPLL_RC_SUCCESS != result_code) {
@@ -294,7 +297,7 @@ upll_rc_t VtepGrpMoMgr::GetControllerDomainId(ConfigKeyVal *ikey,
 }
 
 upll_rc_t VtepGrpMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
-    ConfigKeyVal *&req, MoMgrTables tbl) {
+                                        ConfigKeyVal *&req, MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
   if (req == NULL) return UPLL_RC_ERR_GENERIC;
   if (okey != NULL) return UPLL_RC_ERR_GENERIC;
@@ -305,7 +308,7 @@ upll_rc_t VtepGrpMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
     if (tbl == MAINTBL) {
       val_vtep_grp *ival = reinterpret_cast<val_vtep_grp *>(GetVal(req));
       val_vtep_grp *vtepgrp_val = reinterpret_cast<val_vtep_grp *>
-        (ConfigKeyVal::Malloc(sizeof(val_vtep_grp)));
+          (ConfigKeyVal::Malloc(sizeof(val_vtep_grp)));
       if (!vtepgrp_val) return UPLL_RC_ERR_GENERIC;
       memcpy(vtepgrp_val, ival, sizeof(val_vtep_grp));
       tmp1 = new ConfigVal(IpctSt::kIpcStValVtepGrp, vtepgrp_val);
@@ -318,14 +321,14 @@ upll_rc_t VtepGrpMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
   void *tkey = (req != NULL)?(req)->get_key():NULL;
   key_vtep_grp *ikey = reinterpret_cast<key_vtep_grp *>(tkey);
   key_vtep_grp *vtepgrp_key = reinterpret_cast<key_vtep_grp *>
-    (ConfigKeyVal::Malloc(sizeof(key_vtep_grp)));
+      (ConfigKeyVal::Malloc(sizeof(key_vtep_grp)));
   if (!vtepgrp_key) {
     if (tmp1) delete tmp1;
     return UPLL_RC_ERR_GENERIC;
   }
   memcpy(vtepgrp_key, ikey, sizeof(key_vtep_grp));
   okey = new ConfigKeyVal(UNC_KT_VTEP_GRP, IpctSt::kIpcStKeyVtepGrp,
-      vtepgrp_key, tmp1);
+                          vtepgrp_key, tmp1);
   if (okey) {
     SET_USER_DATA(okey, req);
   } else {
@@ -337,17 +340,17 @@ upll_rc_t VtepGrpMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
 }
 
 upll_rc_t VtepGrpMoMgr::UpdateConfigStatus(ConfigKeyVal *vtepgrp_key,
-    unc_keytype_operation_t op,
-    uint32_t driver_result,
-    ConfigKeyVal *upd_key,
-    DalDmlIntf *dmi,
-    ConfigKeyVal *ctrlr_key) {
+                                           unc_keytype_operation_t op,
+                                           uint32_t driver_result,
+                                           ConfigKeyVal *upd_key,
+                                           DalDmlIntf *dmi,
+                                           ConfigKeyVal *ctrlr_key) {
   UPLL_FUNC_TRACE;
   val_vtep_grp_t *vtepgrp_val = reinterpret_cast<val_vtep_grp_t *>
-                                (GetVal(vtepgrp_key));
+      (GetVal(vtepgrp_key));
 
   unc_keytype_configstatus_t cs_status =
-    (driver_result == UPLL_RC_SUCCESS) ? UNC_CS_APPLIED : UNC_CS_NOT_APPLIED;
+      (driver_result == UPLL_RC_SUCCESS) ? UNC_CS_APPLIED : UNC_CS_NOT_APPLIED;
   val_vtep_grp_t *val_running = static_cast<val_vtep_grp_t *>(GetVal(upd_key));
   if (vtepgrp_val == NULL) return UPLL_RC_ERR_GENERIC;
   if (op == UNC_OP_CREATE) {
@@ -361,8 +364,8 @@ upll_rc_t VtepGrpMoMgr::UpdateConfigStatus(ConfigKeyVal *vtepgrp_key,
     return UPLL_RC_ERR_GENERIC;
   }
   for (unsigned int loop = 0;
-      loop < sizeof(vtepgrp_val->valid) / sizeof(vtepgrp_val->valid[0]);
-      ++loop) {
+       loop < sizeof(vtepgrp_val->valid) / sizeof(vtepgrp_val->valid[0]);
+       ++loop) {
     if ((UNC_VF_VALID == vtepgrp_val->valid[loop])
         || (UNC_VF_VALID_NO_VALUE == vtepgrp_val->valid[loop])) {
       // Description is set to APPLIED
@@ -372,10 +375,10 @@ upll_rc_t VtepGrpMoMgr::UpdateConfigStatus(ConfigKeyVal *vtepgrp_key,
         vtepgrp_val->cs_attr[loop] = cs_status;
     } else if ((vtepgrp_val->valid[loop] == UNC_VF_INVALID) &&
                (UNC_OP_CREATE == op)) {
-        vtepgrp_val->cs_attr[loop] = UNC_CS_APPLIED;
+      vtepgrp_val->cs_attr[loop] = UNC_CS_APPLIED;
     } else if ((vtepgrp_val->valid[loop] == UNC_VF_INVALID) &&
                (UNC_OP_UPDATE == op)) {
-        vtepgrp_val->cs_attr[loop] = val_running->cs_attr[loop];
+      vtepgrp_val->cs_attr[loop] = val_running->cs_attr[loop];
     }
   }
   return UPLL_RC_SUCCESS;
@@ -399,27 +402,27 @@ bool VtepGrpMoMgr::CompareValidValue(void *&val1, void *val2,
   val_vtep_grp_t *val_vtepgrp1 = reinterpret_cast<val_vtep_grp_t *>(val1);
   val_vtep_grp_t *val_vtepgrp2  = reinterpret_cast<val_vtep_grp_t *>(val2);
   for ( unsigned int loop = 0;
-      loop < sizeof(val_vtepgrp1->valid)/sizeof(uint8_t); ++loop ) {
+       loop < sizeof(val_vtepgrp1->valid)/sizeof(uint8_t); ++loop ) {
     if ( UNC_VF_INVALID == val_vtepgrp1->valid[loop]
-      && UNC_VF_VALID == val_vtepgrp2->valid[loop])
+        && UNC_VF_VALID == val_vtepgrp2->valid[loop])
       val_vtepgrp1->valid[loop] = UNC_VF_VALID_NO_VALUE;
   }
   if (UNC_VF_VALID == val_vtepgrp1->valid[UPLL_IDX_DESCRIPTION_VTEPG]
       && UNC_VF_VALID == val_vtepgrp2->valid[UPLL_IDX_DESCRIPTION_VTEPG]) {
     if (!strcmp(reinterpret_cast<char*>(val_vtepgrp1->description),
-          reinterpret_cast<char*>(val_vtepgrp2->description)))
+                reinterpret_cast<char*>(val_vtepgrp2->description)))
       val_vtepgrp1->valid[UPLL_IDX_DESCRIPTION_VTEPG] = UNC_VF_INVALID;
   }
   if (UNC_VF_VALID == val_vtepgrp1->valid[UPLL_IDX_CONTROLLER_ID_VTEPG]
       && UNC_VF_VALID == val_vtepgrp2->valid[UPLL_IDX_CONTROLLER_ID_VTEPG]) {
     if (!strcmp(reinterpret_cast<char*>(val_vtepgrp1->controller_id),
-          reinterpret_cast<char*>(val_vtepgrp2->controller_id)))
+                reinterpret_cast<char*>(val_vtepgrp2->controller_id)))
       val_vtepgrp1->valid[UPLL_IDX_CONTROLLER_ID_VTEPG] = UNC_VF_INVALID;
   }
   if (!copy_to_running)
-     val_vtepgrp1->valid[UPLL_IDX_DESCRIPTION_VTEPG] = UNC_VF_INVALID;
+    val_vtepgrp1->valid[UPLL_IDX_DESCRIPTION_VTEPG] = UNC_VF_INVALID;
   for (unsigned int loop = 0;
-      loop < sizeof(val_vtepgrp1->valid) / sizeof(uint8_t); ++loop) {
+       loop < sizeof(val_vtepgrp1->valid) / sizeof(uint8_t); ++loop) {
     if ((UNC_VF_VALID == (uint8_t) val_vtepgrp1->valid[loop]) ||
         (UNC_VF_VALID_NO_VALUE == (uint8_t) val_vtepgrp1->valid[loop])) {
       invalid_attr = false;
@@ -432,21 +435,23 @@ bool VtepGrpMoMgr::CompareValidValue(void *&val1, void *val2,
 upll_rc_t VtepGrpMoMgr::UpdateAuditConfigStatus(
     unc_keytype_configstatus_t cs_status,
     uuc::UpdateCtrlrPhase phase,
-    ConfigKeyVal *&ckv_running) {
+    ConfigKeyVal *&ckv_running,
+    DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_vtep_grp_t *val = (ckv_running != NULL)?
-    reinterpret_cast<val_vtep_grp_t *>(GetVal(ckv_running)):NULL;
+      reinterpret_cast<val_vtep_grp_t *>(GetVal(ckv_running)):NULL;
   if (NULL == val) {
     return UPLL_RC_ERR_GENERIC;
   }
   if (uuc::kUpllUcpCreate == phase )
     val->cs_row_status = cs_status;
   if ((uuc::kUpllUcpUpdate == phase) &&
-           (val->cs_row_status == UNC_CS_INVALID ||
-            val->cs_row_status == UNC_CS_NOT_APPLIED))
+      (val->cs_row_status == UNC_CS_INVALID ||
+       val->cs_row_status == UNC_CS_NOT_APPLIED))
     val->cs_row_status = cs_status;
   for (unsigned int loop = 0;
-      loop < sizeof(val->valid)/sizeof(uint8_t); ++loop ) {
+       loop < sizeof(val->valid)/sizeof(uint8_t); ++loop ) {
     if ((cs_status == UNC_CS_INVALID &&  UNC_VF_VALID == val->valid[loop]) ||
         cs_status == UNC_CS_APPLIED)
       val->cs_attr[loop] = cs_status;
@@ -455,7 +460,7 @@ upll_rc_t VtepGrpMoMgr::UpdateAuditConfigStatus(
 }
 
 upll_rc_t VtepGrpMoMgr::ValidateMessage(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey) {
+                                        ConfigKeyVal *ikey) {
   UPLL_FUNC_TRACE;
   upll_rc_t ret_val = UPLL_RC_SUCCESS;
   if (!ikey || !req || !(ikey->get_key())) {
@@ -469,17 +474,17 @@ upll_rc_t VtepGrpMoMgr::ValidateMessage(IpcReqRespHeader *req,
   }
   if (ikey->get_st_num() != IpctSt::kIpcStKeyVtepGrp) {
     UPLL_LOG_DEBUG("Invalid struct received.Expected struct-kIpcStKeyVtepGrp,"
-        "received struct -%s ", reinterpret_cast<const char *>
-        (IpctSt::GetIpcStdef(ikey->get_st_num())));
+                   "received struct -%s ", reinterpret_cast<const char *>
+                   (IpctSt::GetIpcStdef(ikey->get_st_num())));
     return UPLL_RC_ERR_BAD_REQUEST;
   }
   key_vtep_grp_t *key_vtep_grp = reinterpret_cast<key_vtep_grp_t *>
-    (ikey->get_key());
+      (ikey->get_key());
   val_vtep_grp_t *val_vtep_grp = NULL;
   if ((ikey->get_cfg_val()) &&
       ((ikey->get_cfg_val())->get_st_num() == IpctSt::kIpcStValVtepGrp)) {
     val_vtep_grp =
-      reinterpret_cast <val_vtep_grp_t *> (ikey->get_cfg_val()->get_val());
+        reinterpret_cast <val_vtep_grp_t *> (ikey->get_cfg_val()->get_val());
   }
   uint32_t dt_type = req->datatype;
   uint32_t operation = req->operation;
@@ -505,13 +510,13 @@ upll_rc_t VtepGrpMoMgr::ValidateMessage(IpcReqRespHeader *req,
       return UPLL_RC_ERR_BAD_REQUEST;
     }
   } else if (((operation == UNC_OP_READ) ||
-        (operation == UNC_OP_READ_SIBLING) ||
-        (operation == UNC_OP_READ_SIBLING_BEGIN) ||
-        (operation == UNC_OP_READ_SIBLING_COUNT)) &&
-      ((dt_type == UPLL_DT_CANDIDATE) ||
-       (dt_type == UPLL_DT_RUNNING) ||
-       (dt_type == UPLL_DT_STARTUP) ||
-       (dt_type == UPLL_DT_STATE))) {
+              (operation == UNC_OP_READ_SIBLING) ||
+              (operation == UNC_OP_READ_SIBLING_BEGIN) ||
+              (operation == UNC_OP_READ_SIBLING_COUNT)) &&
+             ((dt_type == UPLL_DT_CANDIDATE) ||
+              (dt_type == UPLL_DT_RUNNING) ||
+              (dt_type == UPLL_DT_STARTUP) ||
+              (dt_type == UPLL_DT_STATE))) {
     if (option1 == UNC_OPT1_NORMAL) {
       if (option2 == UNC_OPT2_NONE) {
         if (val_vtep_grp != NULL) {
@@ -535,23 +540,23 @@ upll_rc_t VtepGrpMoMgr::ValidateMessage(IpcReqRespHeader *req,
       return UPLL_RC_ERR_INVALID_OPTION1;
     }
   } else if ((operation == UNC_OP_DELETE) ||
-        (((operation == UNC_OP_READ_NEXT) ||
-        (operation == UNC_OP_READ_BULK)) &&
-        ((dt_type == UPLL_DT_CANDIDATE) ||
-          (dt_type == UPLL_DT_RUNNING) ||
-          (dt_type == UPLL_DT_STARTUP)))) {
+             (((operation == UNC_OP_READ_NEXT) ||
+               (operation == UNC_OP_READ_BULK)) &&
+              ((dt_type == UPLL_DT_CANDIDATE) ||
+               (dt_type == UPLL_DT_RUNNING) ||
+               (dt_type == UPLL_DT_STARTUP)))) {
     UPLL_LOG_TRACE("Value structure is none for this operation:%d", operation);
     return UPLL_RC_SUCCESS;
   } else {
     UPLL_LOG_INFO("Invalid datatype(%d) or operation(%d)", dt_type,
-        operation);
+                  operation);
     return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
   }
   return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t VtepGrpMoMgr::ValidateVTepGrpValue(val_vtep_grp_t *val_vtep_grp,
-    uint32_t operation) {
+                                             uint32_t operation) {
   UPLL_FUNC_TRACE;
   bool ret_val =false;
 
@@ -642,7 +647,7 @@ upll_rc_t VtepGrpMoMgr::ValidateVTepGrpValue(val_vtep_grp_t *val_vtep_grp,
 }
 
 upll_rc_t VtepGrpMoMgr::CtrlrIdAndDomainIdUpdationCheck(ConfigKeyVal *ikey,
-                                                   ConfigKeyVal *okey) {
+                                                        ConfigKeyVal *okey) {
   UPLL_FUNC_TRACE;
   val_vtep_grp *vtepg_val = reinterpret_cast<val_vtep_grp *>(GetVal(ikey));
   val_vtep_grp *vtepg_val1 = reinterpret_cast<val_vtep_grp *>(GetVal(okey));
@@ -657,11 +662,11 @@ upll_rc_t VtepGrpMoMgr::CtrlrIdAndDomainIdUpdationCheck(ConfigKeyVal *ikey,
   return UPLL_RC_SUCCESS;
 }
 upll_rc_t VtepGrpMoMgr::ValidateVTepGrpKey(key_vtep_grp_t *key_vtep_grp,
-                        uint32_t operation) {
+                                           uint32_t operation) {
   UPLL_FUNC_TRACE;
   upll_rc_t ret_val = UPLL_RC_SUCCESS;
   ret_val = ValidateKey(
-  reinterpret_cast<char *>(key_vtep_grp->vtn_key.vtn_name),
+      reinterpret_cast<char *>(key_vtep_grp->vtn_key.vtn_name),
       kMinLenVtnName, kMaxLenVtnName);
   if (ret_val != UPLL_RC_SUCCESS) {
     UPLL_LOG_INFO("Vtn Name syntax check failed."
@@ -672,12 +677,12 @@ upll_rc_t VtepGrpMoMgr::ValidateVTepGrpKey(key_vtep_grp_t *key_vtep_grp,
   if ((operation != UNC_OP_READ_SIBLING_BEGIN) &&
       (operation != UNC_OP_READ_SIBLING_COUNT)) {
     UPLL_LOG_TRACE("UNC_KT_VTEP_GRP:vtepgrp_name (%s)",
-                    key_vtep_grp->vtepgrp_name);
+                   key_vtep_grp->vtepgrp_name);
     ret_val = ValidateKey(reinterpret_cast<char *>(key_vtep_grp->vtepgrp_name),
-              kMinLenVnodeName, kMaxLenVnodeName);
+                          kMinLenVnodeName, kMaxLenVnodeName);
     if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Syntax check failed. vtepgrp_name (%s)",
-                      key_vtep_grp->vtepgrp_name);
+                     key_vtep_grp->vtepgrp_name);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else {
@@ -705,7 +710,8 @@ upll_rc_t VtepGrpMoMgr::ValVTepGrpAttributeSupportCheck(
   return UPLL_RC_SUCCESS;
 }
 upll_rc_t VtepGrpMoMgr::ValidateCapability(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey, const char * ctrlr_name) {
+                                           ConfigKeyVal *ikey,
+                                           const char * ctrlr_name) {
   UPLL_FUNC_TRACE;
   if (!ikey || !req) {
     UPLL_LOG_DEBUG("ConfigKeyVal / IpcReqRespHeader is Null");
@@ -714,7 +720,7 @@ upll_rc_t VtepGrpMoMgr::ValidateCapability(IpcReqRespHeader *req,
 
   if (!ctrlr_name) {
     ctrlr_name = reinterpret_cast<char*>((reinterpret_cast<key_user_data_t *>
-                  (ikey->get_user_data()))->ctrlr_id);
+                                          (ikey->get_user_data()))->ctrlr_id);
     if (!ctrlr_name || !strlen(ctrlr_name)) {
       UPLL_LOG_DEBUG("Controller Name is NULL");
       return UPLL_RC_ERR_GENERIC;
@@ -722,7 +728,7 @@ upll_rc_t VtepGrpMoMgr::ValidateCapability(IpcReqRespHeader *req,
   }
 
   UPLL_LOG_TRACE("ctrlr_name(%s), operation : (%d)",
-      ctrlr_name, req->operation);
+                 ctrlr_name, req->operation);
 
   bool result_code = false;
   uint32_t max_instance_count = 0;
@@ -731,25 +737,23 @@ upll_rc_t VtepGrpMoMgr::ValidateCapability(IpcReqRespHeader *req,
   switch (req->operation) {
     case UNC_OP_CREATE:
       result_code = GetCreateCapability(ctrlr_name,
-          ikey->get_key_type(), &max_instance_count, &max_attrs, &attrs);
-      if (result_code && (max_instance_count != 0) &&
-          cur_instance_count >= max_instance_count) {
-        UPLL_LOG_DEBUG("[%s:%d:%s Instance count %d exceeds %d", __FILE__,
-            __LINE__, __FUNCTION__, cur_instance_count, max_instance_count);
-        return UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
-      }
+                                        ikey->get_key_type(),
+                                        &max_instance_count,
+                                        &max_attrs,
+                                        &attrs);
       break;
     case UNC_OP_UPDATE: {
-        result_code = GetUpdateCapability(ctrlr_name,
-            ikey->get_key_type(), &max_attrs, &attrs);
-      }
+      result_code = GetUpdateCapability(ctrlr_name,
+                                        ikey->get_key_type(),
+                                        &max_attrs, &attrs);
+    }
       break;
     case UNC_OP_READ:
     case UNC_OP_READ_SIBLING:
     case UNC_OP_READ_SIBLING_BEGIN:
     case UNC_OP_READ_SIBLING_COUNT:
       result_code = GetReadCapability(ctrlr_name,
-          ikey->get_key_type(), &max_attrs, &attrs);
+                                      ikey->get_key_type(), &max_attrs, &attrs);
       break;
 
     default:
@@ -759,15 +763,15 @@ upll_rc_t VtepGrpMoMgr::ValidateCapability(IpcReqRespHeader *req,
 
   if (!result_code) {
     UPLL_LOG_DEBUG("keytype(%d) is not supported by controller(%s) "
-        "for operation(%d)",
-        ikey->get_key_type(), ctrlr_name, req->operation);
+                   "for operation(%d)",
+                   ikey->get_key_type(), ctrlr_name, req->operation);
     return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
   }
   val_vtep_grp_t *val_vtep_grp = NULL;
   if ((ikey->get_cfg_val()) &&
       ((ikey->get_cfg_val())->get_st_num() == IpctSt::kIpcStValVtepGrp)) {
     val_vtep_grp =
-      reinterpret_cast<val_vtep_grp_t *> (ikey->get_cfg_val()->get_val());
+        reinterpret_cast<val_vtep_grp_t *> (ikey->get_cfg_val()->get_val());
   }
   if (val_vtep_grp) {
     if (max_attrs > 0) {
@@ -783,18 +787,18 @@ upll_rc_t VtepGrpMoMgr::ValidateCapability(IpcReqRespHeader *req,
 }
 
 upll_rc_t VtepGrpMoMgr::CreateVtunnelKey(ConfigKeyVal *ikey,
-    ConfigKeyVal *&okey) {
+                                         ConfigKeyVal *&okey) {
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigVal *tmp;
   if ( NULL == ikey)
     return UPLL_RC_ERR_GENERIC;
   key_vtep_grp *vtepgrp_key = reinterpret_cast<key_vtep_grp *>
-                              (ikey->get_key());
+      (ikey->get_key());
 
   val_vtunnel_t *val_vtunnel = reinterpret_cast<val_vtunnel_t *>
-                               (ConfigKeyVal::Malloc(sizeof(val_vtunnel_t)));
+      (ConfigKeyVal::Malloc(sizeof(val_vtunnel_t)));
   key_vtunnel_t *key_vtunnel = reinterpret_cast<key_vtunnel_t *>
-                               (ConfigKeyVal::Malloc(sizeof(key_vtunnel_t)));
+      (ConfigKeyVal::Malloc(sizeof(key_vtunnel_t)));
 
   if (!val_vtunnel || !key_vtunnel)
     return UPLL_RC_ERR_GENERIC;
@@ -811,10 +815,10 @@ upll_rc_t VtepGrpMoMgr::CreateVtunnelKey(ConfigKeyVal *ikey,
 
   uuu::upll_strncpy(val_vtunnel->vtn_name,
                     vtepgrp_key->vtn_key.vtn_name,
-                   (kMaxLenVtnName+1));
+                    (kMaxLenVtnName+1));
   uuu::upll_strncpy(val_vtunnel->vtep_grp_name,
                     vtepgrp_key->vtepgrp_name,
-                   (kMaxLenVnodeName+1));
+                    (kMaxLenVnodeName+1));
   val_vtunnel->valid[UPLL_IDX_VTN_NAME_VTNL] = UNC_VF_VALID;
   val_vtunnel->valid[UPLL_IDX_VTEP_GRP_NAME_VTNL] = UNC_VF_VALID;
 
@@ -832,15 +836,17 @@ upll_rc_t VtepGrpMoMgr::CreateVtunnelKey(ConfigKeyVal *ikey,
 }
 
 upll_rc_t VtepGrpMoMgr::IsReferenced(ConfigKeyVal *ikey,
-    upll_keytype_datatype_t dt_type, DalDmlIntf *dmi) {
+                                     upll_keytype_datatype_t dt_type,
+                                     DalDmlIntf *dmi) {
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *okey = NULL;
   if ( !ikey || !(ikey->get_key()) || !dmi)
     return UPLL_RC_ERR_GENERIC;
   result_code = CreateVtunnelKey(ikey, okey);
 
-  MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
-                                            (GetMoManager(UNC_KT_VTUNNEL)));
+  MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(
+      const_cast<MoManager *>
+      (GetMoManager(UNC_KT_VTUNNEL)));
   DbSubOp dbop = {kOpReadMultiple, kOpMatchNone, kOpInOutNone};
   result_code = mgr->ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop,
                                   dmi, MAINTBL);
@@ -850,12 +856,12 @@ upll_rc_t VtepGrpMoMgr::IsReferenced(ConfigKeyVal *ikey,
     result_code =  UPLL_RC_ERR_CFG_SEMANTIC;
   }
   result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)?
-                 UPLL_RC_SUCCESS:result_code;
+      UPLL_RC_SUCCESS:result_code;
   DELETE_IF_NOT_NULL(okey);
   return result_code;
 }
 
 
-}  // namespace vtn
+}  // namespace kt_momgr
 }  // namespace upll
 }  // namespace unc
index 68888b04935ce900f92870ce0fc6137a2b69bf17..98f93fc454c2022bc9274774d90bdaa4b0dde44f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -25,289 +25,296 @@ enum VtepGrpMoMgrTables {
 
 
 class VtepGrpMoMgr : public VnodeChildMoMgr {
-  private:
-    static unc_key_type_t vtep_grp_child[];
-    static BindInfo       vtep_grp_bind_info[];
-    //  static BindInfo       key_vtep_grp_maintbl_update_bind_info[];
-    /**
-     * @brief  Gets the valid array position of the variable in the value
-     *         structure from the table in the specified configuration
-     *
-     * @param[in]     val      pointer to the value structure
-     * @param[in]     indx     database index for the variable
-     * @param[out]    valid    position of the variable in the valid array -
-     *                          NULL if valid does not exist.
-     * @param[in]     dt_type  specifies the configuration
-     * @param[in]     tbl      specifies the table containing the given value
-     *
-     **/
-    upll_rc_t GetValid(void *val, uint64_t indx, uint8_t *&valid,
-        upll_keytype_datatype_t dt_type, MoMgrTables tbl ) {
-      UPLL_FUNC_TRACE;
-      if (val == NULL) return UPLL_RC_ERR_GENERIC;
-      if (tbl == MAINTBL) {
-        switch (indx) {
-          case uudst::vtep_group::kDbiCtrlrName:
-            valid = &(reinterpret_cast<val_vtep_grp *>(val)->
-                      valid[UPLL_IDX_CONTROLLER_ID_VTEPG]);
-            break;
-          case uudst::vtep_group::kDbiDesc:
-            valid = &(reinterpret_cast<val_vtep_grp *>(val)->
-                      valid[UPLL_IDX_DESCRIPTION_VTEPG]);
-            break;
-          default:
-            return UPLL_RC_ERR_GENERIC;
-        }
+ private:
+  static unc_key_type_t vtep_grp_child[];
+  static BindInfo       vtep_grp_bind_info[];
+  //  static BindInfo       key_vtep_grp_maintbl_update_bind_info[];
+  /**
+   * @brief  Gets the valid array position of the variable in the value
+   *         structure from the table in the specified configuration
+   *
+   * @param[in]     val      pointer to the value structure
+   * @param[in]     indx     database index for the variable
+   * @param[out]    valid    position of the variable in the valid array -
+   *                          NULL if valid does not exist.
+   * @param[in]     dt_type  specifies the configuration
+   * @param[in]     tbl      specifies the table containing the given value
+   *
+   **/
+  upll_rc_t GetValid(void *val, uint64_t indx, uint8_t *&valid,
+                     upll_keytype_datatype_t dt_type, MoMgrTables tbl ) {
+    UPLL_FUNC_TRACE;
+    if (val == NULL) return UPLL_RC_ERR_GENERIC;
+    if (tbl == MAINTBL) {
+      switch (indx) {
+        case uudst::vtep_group::kDbiCtrlrName:
+          valid = &(reinterpret_cast<val_vtep_grp *>(val)->
+                    valid[UPLL_IDX_CONTROLLER_ID_VTEPG]);
+          break;
+        case uudst::vtep_group::kDbiDesc:
+          valid = &(reinterpret_cast<val_vtep_grp *>(val)->
+                    valid[UPLL_IDX_DESCRIPTION_VTEPG]);
+          break;
+        default:
+          return UPLL_RC_ERR_GENERIC;
       }
-      return UPLL_RC_SUCCESS;
     }
+    return UPLL_RC_SUCCESS;
+  }
 
-    upll_rc_t GetControllerDomainId(ConfigKeyVal *ikey,
-                                    upll_keytype_datatype_t dt_type,
-                                    controller_domain *ctrlr_dom,
-                                    DalDmlIntf *dmi);
+  upll_rc_t GetControllerDomainId(ConfigKeyVal *ikey,
+                                  upll_keytype_datatype_t dt_type,
+                                  controller_domain *ctrlr_dom,
+                                  DalDmlIntf *dmi);
 
-    upll_rc_t UpdateConfigStatus(ConfigKeyVal *vtepgrp_key,
-        unc_keytype_operation_t op,
-        uint32_t result,
-        ConfigKeyVal *upd_key,
-        DalDmlIntf *dmi,
-        ConfigKeyVal *ctrlr_key = NULL);
-    /**
-     * @brief  Update config status for commit result and vote result.
-     *
-     * @param[in/out]  ckv_running  ConfigKeyVal instance.
-     * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
-     * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
-     *
-     **/
-    upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
-        uuc::UpdateCtrlrPhase phase,
-        ConfigKeyVal *&ckv_running);
+  upll_rc_t UpdateConfigStatus(ConfigKeyVal *vtepgrp_key,
+                               unc_keytype_operation_t op,
+                               uint32_t result,
+                               ConfigKeyVal *upd_key,
+                               DalDmlIntf *dmi,
+                               ConfigKeyVal *ctrlr_key = NULL);
+  /**
+   * @brief  Update config status for commit result and vote result.
+   *
+   * @param[in/out]  ckv_running  ConfigKeyVal instance.
+   * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
+   * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
+   * @param[in]      dmi          Pointer to the DalDmlIntf(DB Interface)
+   *
+   **/
+  upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
+                                    uuc::UpdateCtrlrPhase phase,
+                                    ConfigKeyVal *&ckv_running,
+                                    DalDmlIntf *dmi);
 
-    upll_rc_t ValidateMessage(ConfigKeyVal *kval,
-        upll_keytype_datatype_t dt_type,
-        unc_keytype_operation_t op);
+  upll_rc_t ValidateMessage(ConfigKeyVal *kval,
+                            upll_keytype_datatype_t dt_type,
+                            unc_keytype_operation_t op);
 
-    /**
-    * @brief  Perform Semantic Check
-    *
-    * @param[in]      ikey        ConfigKeyVal
-    * @param[in]      upll_rc_t   UPLL_RC_ERR_CFG_SEMANTIC on error
-    *                             UPLL_RC_SUCCESS on success
-    **/
-    upll_rc_t ValidateAttribute(ConfigKeyVal *ikey,
-                                DalDmlIntf *dmi,
-                                IpcReqRespHeader *req);
-    /**
-     * @brief  Duplicates the input configkeyval including the key and val.
-     * based on the tbl specified.
-     *
-     * @param[in]  okey   Output Configkeyval - allocated within the function
-     * @param[in]  req    Input ConfigKeyVal to be duplicated.
-     * @param[in]  tbl    specifies if the val structure belongs to the main table/ controller table or rename table.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey,
-        ConfigKeyVal *&req, MoMgrTables tbl = MAINTBL);
-    /**
-     * @brief  Allocates for the specified val in the given configuration in the     * specified table.
-     *
-     * @param[in/out]  ck_val   Reference pointer to configval structure
-     *                          allocated.
-     * @param[in]      dt_type  specifies the configuration candidate/running/
-     *                          state
-     * @param[in]      tbl      specifies if the corresponding table is the
-     *                          main table / controller table or rename table.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
-        MoMgrTables tbl = MAINTBL);
-    /**
-     * @brief      Method to get a configkeyval of a specified keytype from an input configkeyval
-     *
-     * @param[in/out]  okey                 pointer to output ConfigKeyVal
-     * @param[in]      parent_key           pointer to the configkeyval from which the output configkey val is initialized.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     */
-    upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey,
-        ConfigKeyVal *parent_key);
-    /**
-     * @brief      Method to get a configkeyval of the parent keytype
-     *
-     * @param[in/out]  okey           pointer to parent ConfigKeyVal
-     * @param[in]      ikey           pointer to the child configkeyval from
-     * which the parent configkey val is obtained.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
+  /**
+   * @brief  Perform Semantic Check
+   *
+   * @param[in]      ikey        ConfigKeyVal
+   * @param[in]      upll_rc_t   UPLL_RC_ERR_CFG_SEMANTIC on error
+   *                             UPLL_RC_SUCCESS on success
+   **/
+  upll_rc_t ValidateAttribute(ConfigKeyVal *ikey,
+                              DalDmlIntf *dmi,
+                              IpcReqRespHeader *req);
+  /**
+   * @brief  Duplicates the input configkeyval including the key and val.
+   * based on the tbl specified.
+   *
+   * @param[in]  okey   Output Configkeyval - allocated within the function
+   * @param[in]  req    Input ConfigKeyVal to be duplicated.
+   * @param[in]  tbl    specifies if the val structure belongs to the main table/ controller table or rename table.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey,
+                            ConfigKeyVal *&req, MoMgrTables tbl = MAINTBL);
+  /**
+   * @brief  Allocates for the specified val in the given configuration in the     * specified table.
+   *
+   * @param[in/out]  ck_val   Reference pointer to configval structure
+   *                          allocated.
+   * @param[in]      dt_type  specifies the configuration candidate/running/
+   *                          state
+   * @param[in]      tbl      specifies if the corresponding table is the
+   *                          main table / controller table or rename table.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
+                     MoMgrTables tbl = MAINTBL);
+  /**
+   * @brief      Method to get a configkeyval of a specified keytype from an input configkeyval
+   *
+   * @param[in/out]  okey                 pointer to output ConfigKeyVal
+   * @param[in]      parent_key           pointer to the configkeyval from which the output configkey val is initialized.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   */
+  upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey,
+                              ConfigKeyVal *parent_key);
+  /**
+   * @brief      Method to get a configkeyval of the parent keytype
+   *
+   * @param[in/out]  okey           pointer to parent ConfigKeyVal
+   * @param[in]      ikey           pointer to the child configkeyval from
+   * which the parent configkey val is obtained.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
 
-    /**
-     * @brief  Filters the attributes which need not be sent to controller
-     *
-     * @param[in/out]  val1   first record value instance.
-     * @param[in]      val2   second record value instance.
-     * @param[in]      audit  Not used for VTN
-     * @param[in]      op     Operation to be performed
-     *
-     **/
-    bool FilterAttributes(void *&val1, void *val2, bool copy_to_running,
-        unc_keytype_operation_t op);
-    /**
-     * @brief  Compares the valid value between two database records.
-     *              if both the values are same, update the valid flag for corresponding
-     *              attribute as invalid in the first record.
-     *
-     * @param[in/out]  val1   first record value instance.
-     * @param[in]      val2   second record value instance.
-     * @param[in]      audit  if true, CompareValidValue called from audit process.
-     *
-     **/
-    bool CompareValidValue(void *&val1, void *val2, bool copy_to_running);
+  /**
+   * @brief  Filters the attributes which need not be sent to controller
+   *
+   * @param[in/out]  val1   first record value instance.
+   * @param[in]      val2   second record value instance.
+   * @param[in]      audit  Not used for VTN
+   * @param[in]      op     Operation to be performed
+   *
+   **/
+  bool FilterAttributes(void *&val1, void *val2, bool copy_to_running,
+                        unc_keytype_operation_t op);
+  /**
+   * @brief  Compares the valid value between two database records.
+   *        if both the values are same, update the valid flag for corresponding
+   *        attribute as invalid in the first record.
+   *
+   * @param[in/out]  val1   first record value instance.
+   * @param[in]      val2   second record value instance.
+   * @param[in]      audit  if true, CompareValidValue called from audit process.
+   *
+   **/
+  bool CompareValidValue(void *&val1, void *val2, bool copy_to_running);
 
-    /**
-     * @Brief Validates the syntax of the specified key and value structure
-     *        for KT_VTEP_GRP keytype
-     *
-     * @param[in] req                       This structure contains
-     *                                      IpcReqRespHeader(first 8 fields of input request structure).
-     * @param[in] ikey                      ikey contains key and value structure.
-     *
-     * @retval UPLL_RC_SUCCESS              Successful.
-     * @retval UPLL_RC_ERR_CFG_SYNTAX       Syntax error.
-     * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE key struct is not available.
-     * @retval UPLL_RC_ERR_GENERIC          Generic failure.
-     * @retval UPLL_RC_ERR_INVALID_OPTION1  option1 is not valid.
-     * @retval UPLL_RC_ERR_INVALID_OPTION2  option2 is not valid.
-     */
-    upll_rc_t ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *ikey);
+  /**
+   * @Brief Validates the syntax of the specified key and value structure
+   *        for KT_VTEP_GRP keytype
+   *
+   * @param[in] req                       This structure contains
+   *                                      IpcReqRespHeader(first 8 fields of input request structure).
+   * @param[in] ikey                      ikey contains key and value structure.
+   *
+   * @retval UPLL_RC_SUCCESS              Successful.
+   * @retval UPLL_RC_ERR_CFG_SYNTAX       Syntax error.
+   * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE key struct is not available.
+   * @retval UPLL_RC_ERR_GENERIC          Generic failure.
+   * @retval UPLL_RC_ERR_INVALID_OPTION1  option1 is not valid.
+   * @retval UPLL_RC_ERR_INVALID_OPTION2  option2 is not valid.
+   */
+  upll_rc_t ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *ikey);
 
-    /**
-     * @Brief Validates the syntax for KT_VTEP_GRP keytype value structure.
-     *
-     * @param[in] val_vtep_grp KT_VTEP_GRP value structure.
-     *
-     * @retval UPLL_RC_ERR_GENERIC    Generic failure.
-     * @retval UPLL_RC_SUCCESS        validation succeeded.
-     * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
-     */
-    upll_rc_t ValidateVTepGrpValue(val_vtep_grp_t *val_vtep_grp,
-        uint32_t operation = UNC_OP_INVALID);
+  /**
+   * @Brief Validates the syntax for KT_VTEP_GRP keytype value structure.
+   *
+   * @param[in] val_vtep_grp KT_VTEP_GRP value structure.
+   *
+   * @retval UPLL_RC_ERR_GENERIC    Generic failure.
+   * @retval UPLL_RC_SUCCESS        validation succeeded.
+   * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
+   */
+  upll_rc_t ValidateVTepGrpValue(val_vtep_grp_t *val_vtep_grp,
+                                 uint32_t operation = UNC_OP_INVALID);
 
-    /**
-     * @Brief Checks if the specified key type(KT_VTEP_GRP) and
-     *        associated attributes are supported on the given controller,
-     *        based on the valid flag
-     *
-     * @param[in] req               This structure contains
-     *                              IpcReqRespHeader(first 8 fields of input request structure).
-     * @param[in] ikey              ikey contains key and value structure.
-     * @param[in] crtlr_name        Controller name.
-     *
-     * @retval  UPLL_RC_SUCCESS             Validation succeeded.
-     * @retval  UPLL_RC_ERR_GENERIC         Validation failure.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION1 Option1 is not valid.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION2 Option2 is not valid.
-     */
+  /**
+   * @Brief Checks if the specified key type(KT_VTEP_GRP) and
+   *        associated attributes are supported on the given controller,
+   *        based on the valid flag
+   *
+   * @param[in] req               This structure contains
+   *                              IpcReqRespHeader(first 8 fields of input request structure).
+   * @param[in] ikey              ikey contains key and value structure.
+   * @param[in] crtlr_name        Controller name.
+   *
+   * @retval  UPLL_RC_SUCCESS             Validation succeeded.
+   * @retval  UPLL_RC_ERR_GENERIC         Validation failure.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION1 Option1 is not valid.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION2 Option2 is not valid.
+   */
 
-    upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-        const char * crtlr_name);
-    /**
-     * @Brief Checks if the specified key type and
-     *        associated attributes are supported on the given controller,
-     *        based on the valid flag.
-     *
-     * @param[in] val_vtep_grp         Value Structure.
-     * @param[in] attr                 pointer to controller attribute
-     * @param[in] operation            Operation Name
-     *
-     * @retval UPLL_RC_SUCCESS                    validation succeeded.
-     * @retval UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR Attribute NOT_SUPPORTED.
-     * @retval UPLL_RC_ERR_GENERIC                Generic failure.
-     */
-    upll_rc_t ValVTepGrpAttributeSupportCheck(
-        val_vtep_grp_t *val_vtep_grp,
-  const uint8_t* attrs, unc_keytype_operation_t operation);
+  upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *ikey,
+                               const char * crtlr_name);
+  /**
+   * @Brief Checks if the specified key type and
+   *        associated attributes are supported on the given controller,
+   *        based on the valid flag.
+   *
+   * @param[in] val_vtep_grp         Value Structure.
+   * @param[in] attr                 pointer to controller attribute
+   * @param[in] operation            Operation Name
+   *
+   * @retval UPLL_RC_SUCCESS                    validation succeeded.
+   * @retval UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR Attribute NOT_SUPPORTED.
+   * @retval UPLL_RC_ERR_GENERIC                Generic failure.
+   */
+  upll_rc_t ValVTepGrpAttributeSupportCheck(
+      val_vtep_grp_t *val_vtep_grp,
+      const uint8_t* attrs, unc_keytype_operation_t operation);
 
-    upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey) {
-      return UPLL_RC_SUCCESS;
-    }
-    bool GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo,
-        int &nattr,
-        MoMgrTables tbl ) {
-      return true;
-    }
-    upll_rc_t GetRenamedControllerKey(ConfigKeyVal *ikey,
-        upll_keytype_datatype_t dt_type, DalDmlIntf *dmi,
-        uint8_t *ctrlr_name ) {
-      return UPLL_RC_SUCCESS;
-    }
-    upll_rc_t GetRenamedUncKey(ConfigKeyVal *ctrlr_key,
-        upll_keytype_datatype_t dt_type, DalDmlIntf *dmi, uint8_t *ctrlr_id) {
-      return UPLL_RC_SUCCESS;
-    }
-    upll_rc_t CreateVtunnelKey(ConfigKeyVal *ikey, ConfigKeyVal *&okey);
-    upll_rc_t IsReferenced(ConfigKeyVal *ikey,
-        upll_keytype_datatype_t dt_type, DalDmlIntf *dmi);
-    upll_rc_t GetVnodeName(ConfigKeyVal *ikey,
-        uint8_t *&vtn_name, uint8_t *&vnode_name) {
-      return UPLL_RC_SUCCESS;
-    }
+  upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey) {
+    UPLL_LOG_INFO("Not supported for this keytype. Returning Generic Error");
+    return UPLL_RC_ERR_GENERIC;
+  }
+  bool GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo,
+                            int &nattr,
+                            MoMgrTables tbl ) {
+    return true;
+  }
+  upll_rc_t GetRenamedControllerKey(ConfigKeyVal *ikey,
+                                    upll_keytype_datatype_t dt_type,
+                                    DalDmlIntf *dmi,
+                                    uint8_t *ctrlr_name ) {
+    return UPLL_RC_SUCCESS;
+  }
+  upll_rc_t GetRenamedUncKey(ConfigKeyVal *ctrlr_key,
+                             upll_keytype_datatype_t dt_type,
+                             DalDmlIntf *dmi,
+                             uint8_t *ctrlr_id) {
+    return UPLL_RC_SUCCESS;
+  }
+  upll_rc_t CreateVtunnelKey(ConfigKeyVal *ikey, ConfigKeyVal *&okey);
+  upll_rc_t IsReferenced(ConfigKeyVal *ikey,
+                         upll_keytype_datatype_t dt_type, DalDmlIntf *dmi);
+  upll_rc_t GetVnodeName(ConfigKeyVal *ikey,
+                         uint8_t *&vtn_name, uint8_t *&vnode_name) {
+    return UPLL_RC_SUCCESS;
+  }
 
  public:
-    VtepGrpMoMgr();
-    virtual ~VtepGrpMoMgr() {
-      for (int i = VTEPGRPTBL; i < NVTEPGRPTABLES; i++)
-        if (table[i]) {
-          delete table[i];
-        }
-      delete[] table;
-    }
-    /**
-     * @brief      Method to check if individual portions of a key are valid
-     *
-     * @param[in/out]  ikey                 pointer to ConfigKeyVal referring to a UNC resource
-     * @param[in]      index                db index associated with the variable
-     *
-     * @retval         true                 input key is valid
-     * @retval         false                input key is invalid.
-     **/
-    bool IsValidKey(void *tkey, uint64_t index);
+  VtepGrpMoMgr();
+  virtual ~VtepGrpMoMgr() {
+    for (int i = VTEPGRPTBL; i < NVTEPGRPTABLES; i++)
+      if (table[i]) {
+        delete table[i];
+      }
+    delete[] table;
+  }
+  /**
+   * @brief      Method to check if individual portions of a key are valid
+   *
+   * @param[in/out]  ikey                 pointer to ConfigKeyVal
+   *                                      referring to a UNC resource
+   * @param[in]      index                db index associated with the variable
+   *
+   * @retval         true                 input key is valid
+   * @retval         false                input key is invalid.
+   **/
+  bool IsValidKey(void *tkey, uint64_t index);
 
-    /**
-     * @Brief Validates the syntax for KT_VTEP_GRP keytype key structure.
-     *
-     * @param[in] key_vtep_grp KT_VTEP_GRP key structure.
-     *
-     * @retval UPLL_RC_SUCCESS        validation succeeded.
-     * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
-     */
-    upll_rc_t ValidateVTepGrpKey(key_vtep_grp_t *key_vtep_grp,
-                                 uint32_t operation);
-    /**
-     * @Brief  compares controller id and domain id before
-     *         updating the value to DB.
-     *
-     * @param[in]  ikey  ikey contains key and value structure.
-     * @param[in]  okey  okey contains key and value structure.
-     *
-     * @retval  UPLL_RC_SUCCESS            Successful.
-     * @retval  UPLL_RC_ERR_CFG_SYNTAX     Syntax error.
-     */
-    upll_rc_t CtrlrIdAndDomainIdUpdationCheck(ConfigKeyVal *ikey,
-                                                   ConfigKeyVal *okey);
+  /**
+   * @Brief Validates the syntax for KT_VTEP_GRP keytype key structure.
+   *
+   * @param[in] key_vtep_grp KT_VTEP_GRP key structure.
+   *
+   * @retval UPLL_RC_SUCCESS        validation succeeded.
+   * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
+   */
+  upll_rc_t ValidateVTepGrpKey(key_vtep_grp_t *key_vtep_grp,
+                               uint32_t operation);
+  /**
+   * @Brief  compares controller id and domain id before
+   *         updating the value to DB.
+   *
+   * @param[in]  ikey  ikey contains key and value structure.
+   * @param[in]  okey  okey contains key and value structure.
+   *
+   * @retval  UPLL_RC_SUCCESS            Successful.
+   * @retval  UPLL_RC_ERR_CFG_SYNTAX     Syntax error.
+   */
+  upll_rc_t CtrlrIdAndDomainIdUpdationCheck(ConfigKeyVal *ikey,
+                                            ConfigKeyVal *okey);
 };
 
 
-}  // namespace vtn
+}  // namespace kt_momgr
 }  // namespace upll
 }  // namespace unc
 #endif
index 3b1d69745886ef6c931745eca8e26aff15afd697..c521c75df5e7d965e9470af8f521f1e79b73106a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -15,1342 +15,1391 @@ namespace unc {
 namespace upll {
 namespace kt_momgr {
 
-  BindInfo VtepIfMoMgr::vtep_if_bind_info[] = {
-    { uudst::vtep_interface::kDbiVtnName, CFG_KEY,
-      offsetof(key_vtep_if, vtep_key.vtn_key.vtn_name),
-      uud::kDalChar, kMaxLenVtnName+1 },
-    { uudst::vtep_interface::kDbiVtepName, CFG_KEY,
-      offsetof(key_vtep_if, vtep_key.vtep_name),
-      uud::kDalChar, kMaxLenVnodeName+1 },
-    { uudst::vtep_interface::kDbiIfName, CFG_KEY,
-      offsetof(key_vtep_if, if_name),
-      uud::kDalChar, kMaxLenInterfaceName+1},
-    { uudst::vtep_interface::kDbiDesc, CFG_VAL,
-      offsetof(val_vtep_if, description),
-      uud::kDalChar, kMaxLenDescription+1},
-    { uudst::vtep_interface::kDbiAdminStatus, CFG_VAL,
-      offsetof(val_vtep_if, admin_status), uud::kDalUint8, 1},
-    { uudst::vtep_interface::kDbiLogicalPortId, CFG_VAL,
-      offsetof(val_vtep_if, portmap.logical_port_id),
-      uud::kDalChar, 320},
-    { uudst::vtep_interface::kDbiVlanId, CFG_VAL,
-      offsetof(val_vtep_if, portmap.vlan_id), uud::kDalUint16, 1},
-    { uudst::vtep_interface::kDbiTagged, CFG_VAL,
-      offsetof(val_vtep_if, portmap.tagged), uud::kDalUint8, 1},
-    { uudst::vtep_interface::kDbiOperStatus, ST_VAL,
-      offsetof(val_db_vtep_if_st, vtep_if_val_st.oper_status),
-      uud::kDalUint8, 1},
-    { uudst::vtep_interface::kDbiDownCount, ST_VAL, offsetof(
-      val_db_vtep_if_st, down_count),
-      uud::kDalUint32, 1 },
-    { uudst::vtep_interface::kDbiCtrlrName, CK_VAL,
-      offsetof(key_user_data, ctrlr_id), uud::kDalChar, 32},
-    { uudst::vtep_interface::kDbiDomainId, CK_VAL,
-      offsetof(key_user_data, domain_id), uud::kDalChar, 32},
-    { uudst::vtep_interface::kDbiFlags, CK_VAL,
-      offsetof(key_user_data, flags), uud::kDalUint8, 1},
-    { uudst::vtep_interface::kDbiValidDesc, CFG_META_VAL,
-      offsetof(val_vtep_if, valid[UPLL_IDX_DESC_VTEPI]), uud::kDalUint8, 1},
-    { uudst::vtep_interface::kDbiValidAdminStatus, CFG_DEF_VAL,
-      offsetof(val_vtep_if, valid[UPLL_IDX_ADMIN_ST_VTEPI]), uud::kDalUint8, 1},
-    { uudst::vtep_interface::kDbiValidPortMap, CFG_META_VAL,
-      offsetof(val_vtep_if, valid[UPLL_IDX_PORT_MAP_VTEPI]), uud::kDalUint8, 1},
-    { uudst::vtep_interface::kDbiValidLogicalPortId, CFG_META_VAL, offsetof(
-        val_vtep_if, portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM]),
-    uud::kDalUint8, 1 },
-    { uudst::vtep_interface::kDbiValidVlanid, CFG_META_VAL, offsetof(
-        val_vtep_if, portmap.valid[UPLL_IDX_VLAN_ID_PM]),
-    uud::kDalUint8, 1 },
-    { uudst::vtep_interface::kDbiValidTagged, CFG_META_VAL, offsetof(
-        val_vtep_if, portmap.valid[UPLL_IDX_TAGGED_PM]),
-    uud::kDalUint8, 1 },
-    { uudst::vtep_interface::kDbiValidOperStatus, ST_META_VAL,
-      offsetof(val_db_vtep_if_st,
-      vtep_if_val_st.valid[UPLL_IDX_IF_OPER_STATUS_VTEPIS]),
-      uud::kDalUint8, 1},
-    { uudst::vtep_interface::kDbiCsRowstatus, CS_VAL,
-      offsetof(val_vtep_if, cs_row_status), uud::kDalUint8, 1},
-    { uudst::vtep_interface::kDbiCsDesc, CS_VAL, offsetof(val_vtep_if,
-      cs_attr[UPLL_IDX_DESC_VTEPI]), uud::kDalUint8, 1},
-    { uudst::vtep_interface::kDbiCsAdminStatus, CS_VAL, offsetof(val_vtep_if,
-      cs_attr[UPLL_IDX_ADMIN_ST_VTEPI]), uud::kDalUint8, 1},
-    { uudst::vtep_interface::kDbiCsPortMap, CS_VAL, offsetof(val_vtep_if,
-      cs_attr[UPLL_IDX_PORT_MAP_VTEPI]), uud::kDalUint8, 1},
-    { uudst::vtep_interface::kDbiCsLogicalPortId, CS_VAL, offsetof(
-        val_vtep_if, portmap.cs_attr[UPLL_IDX_LOGICAL_PORT_ID_PM]),
-    uud::kDalUint8, 1 },
-    { uudst::vtep_interface::kDbiCsVlanid, CS_VAL, offsetof(
-        val_vtep_if, portmap.cs_attr[UPLL_IDX_VLAN_ID_PM]),
-    uud::kDalUint8, 1 },
-    { uudst::vtep_interface::kDbiCsTagged, CS_VAL, offsetof(
-        val_vtep_if, portmap.cs_attr[UPLL_IDX_TAGGED_PM]),
-    uud::kDalUint8, 1 }
-  };
+BindInfo VtepIfMoMgr::vtep_if_bind_info[] = {
+  { uudst::vtep_interface::kDbiVtnName, CFG_KEY,
+    offsetof(key_vtep_if, vtep_key.vtn_key.vtn_name),
+    uud::kDalChar, kMaxLenVtnName+1 },
+  { uudst::vtep_interface::kDbiVtepName, CFG_KEY,
+    offsetof(key_vtep_if, vtep_key.vtep_name),
+    uud::kDalChar, kMaxLenVnodeName+1 },
+  { uudst::vtep_interface::kDbiIfName, CFG_KEY,
+    offsetof(key_vtep_if, if_name),
+    uud::kDalChar, kMaxLenInterfaceName+1},
+  { uudst::vtep_interface::kDbiDesc, CFG_VAL,
+    offsetof(val_vtep_if, description),
+    uud::kDalChar, kMaxLenDescription+1},
+  { uudst::vtep_interface::kDbiAdminStatus, CFG_VAL,
+    offsetof(val_vtep_if, admin_status), uud::kDalUint8, 1},
+  { uudst::vtep_interface::kDbiLogicalPortId, CFG_VAL,
+    offsetof(val_vtep_if, portmap.logical_port_id),
+    uud::kDalChar, 320},
+  { uudst::vtep_interface::kDbiVlanId, CFG_VAL,
+    offsetof(val_vtep_if, portmap.vlan_id), uud::kDalUint16, 1},
+  { uudst::vtep_interface::kDbiTagged, CFG_VAL,
+    offsetof(val_vtep_if, portmap.tagged), uud::kDalUint8, 1},
+  { uudst::vtep_interface::kDbiOperStatus, ST_VAL,
+    offsetof(val_db_vtep_if_st, vtep_if_val_st.oper_status),
+    uud::kDalUint8, 1},
+  { uudst::vtep_interface::kDbiDownCount, ST_VAL, offsetof(
+          val_db_vtep_if_st, down_count),
+  uud::kDalUint32, 1 },
+  { uudst::vtep_interface::kDbiCtrlrName, CK_VAL,
+    offsetof(key_user_data, ctrlr_id), uud::kDalChar, 32},
+  { uudst::vtep_interface::kDbiDomainId, CK_VAL,
+    offsetof(key_user_data, domain_id), uud::kDalChar, 32},
+  { uudst::vtep_interface::kDbiFlags, CK_VAL,
+    offsetof(key_user_data, flags), uud::kDalUint8, 1},
+  { uudst::vtep_interface::kDbiValidDesc, CFG_META_VAL,
+    offsetof(val_vtep_if, valid[UPLL_IDX_DESC_VTEPI]), uud::kDalUint8, 1},
+  { uudst::vtep_interface::kDbiValidAdminStatus, CFG_DEF_VAL,
+    offsetof(val_vtep_if, valid[UPLL_IDX_ADMIN_ST_VTEPI]), uud::kDalUint8, 1},
+  { uudst::vtep_interface::kDbiValidPortMap, CFG_META_VAL,
+    offsetof(val_vtep_if, valid[UPLL_IDX_PORT_MAP_VTEPI]), uud::kDalUint8, 1},
+  { uudst::vtep_interface::kDbiValidLogicalPortId, CFG_META_VAL, offsetof(
+          val_vtep_if, portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM]),
+  uud::kDalUint8, 1 },
+  { uudst::vtep_interface::kDbiValidVlanid, CFG_META_VAL, offsetof(
+          val_vtep_if, portmap.valid[UPLL_IDX_VLAN_ID_PM]),
+  uud::kDalUint8, 1 },
+  { uudst::vtep_interface::kDbiValidTagged, CFG_META_VAL, offsetof(
+          val_vtep_if, portmap.valid[UPLL_IDX_TAGGED_PM]),
+  uud::kDalUint8, 1 },
+  { uudst::vtep_interface::kDbiValidOperStatus, ST_META_VAL,
+    offsetof(val_db_vtep_if_st,
+             vtep_if_val_st.valid[UPLL_IDX_IF_OPER_STATUS_VTEPIS]),
+    uud::kDalUint8, 1},
+  { uudst::vtep_interface::kDbiCsRowstatus, CS_VAL,
+    offsetof(val_vtep_if, cs_row_status), uud::kDalUint8, 1},
+  { uudst::vtep_interface::kDbiCsDesc, CS_VAL, offsetof(
+          val_vtep_if,
+          cs_attr[UPLL_IDX_DESC_VTEPI]),
+  uud::kDalUint8, 1},
+  { uudst::vtep_interface::kDbiCsAdminStatus, CS_VAL, offsetof(
+          val_vtep_if,
+          cs_attr[UPLL_IDX_ADMIN_ST_VTEPI]),
+  uud::kDalUint8, 1},
+  { uudst::vtep_interface::kDbiCsPortMap, CS_VAL, offsetof(
+          val_vtep_if,
+          cs_attr[UPLL_IDX_PORT_MAP_VTEPI]),
+  uud::kDalUint8,
+  1},
+  { uudst::vtep_interface::kDbiCsLogicalPortId, CS_VAL, offsetof(
+          val_vtep_if, portmap.cs_attr[UPLL_IDX_LOGICAL_PORT_ID_PM]),
+  uud::kDalUint8, 1 },
+  { uudst::vtep_interface::kDbiCsVlanid, CS_VAL, offsetof(
+          val_vtep_if, portmap.cs_attr[UPLL_IDX_VLAN_ID_PM]),
+  uud::kDalUint8, 1 },
+  { uudst::vtep_interface::kDbiCsTagged, CS_VAL, offsetof(
+          val_vtep_if, portmap.cs_attr[UPLL_IDX_TAGGED_PM]),
+  uud::kDalUint8, 1 }
+};
 
-  VtepIfMoMgr::VtepIfMoMgr() {
-    UPLL_FUNC_TRACE;
-    Table *tbl = new Table(uudst::kDbiVtepIfTbl, UNC_KT_VTEP_IF,
-        vtep_if_bind_info,
-        IpctSt::kIpcStKeyVtepIf, IpctSt::kIpcStValVtepIf,
-        uudst::vtep_interface::kDbiVtepIfNumCols);
-    ntable = MAX_MOMGR_TBLS;
-    table = new Table *[ntable];
-    table[MAINTBL] = tbl;
-    table[RENAMETBL] = NULL;
-    table[CTRLRTBL] = NULL;
-    nchild = 0;
-    child = NULL;
+VtepIfMoMgr::VtepIfMoMgr() {
+  UPLL_FUNC_TRACE;
+  Table *tbl = new Table(uudst::kDbiVtepIfTbl, UNC_KT_VTEP_IF,
+                         vtep_if_bind_info,
+                         IpctSt::kIpcStKeyVtepIf, IpctSt::kIpcStValVtepIf,
+                         uudst::vtep_interface::kDbiVtepIfNumCols);
+  ntable = MAX_MOMGR_TBLS;
+  table = new Table *[ntable];
+  table[MAINTBL] = tbl;
+  table[RENAMETBL] = NULL;
+  table[CTRLRTBL] = NULL;
+  nchild = 0;
+  child = NULL;
 #ifdef _STANDALONE_
-    SetMoManager(UNC_KT_VTEP_IF, reinterpret_cast<MoMgr *>(this));
+  SetMoManager(UNC_KT_VTEP_IF, reinterpret_cast<MoMgr *>(this));
 #endif
-  }
+}
 
-  /*
  *  * Based on the key type the bind info will pass
  *   *
  bool VtepIfMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo, int &nattr,
  MoMgrTables tbl ) {
  if (MAINTBL == tbl) {
  nattr = NUM_KEY_MAIN_TBL_;
  binfo = key_vtep_if_maintbl_update_bind_info;
  }
  return PFC_TRUE;
  }*/
+/*
+ *  * Based on the key type the bind info will pass
+ *   *
+ bool VtepIfMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo, int &nattr,
+ MoMgrTables tbl ) {
+ if (MAINTBL == tbl) {
+ nattr = NUM_KEY_MAIN_TBL_;
+ binfo = key_vtep_if_maintbl_update_bind_info;
+ }
+ return PFC_TRUE;
+ }*/
 
-  upll_rc_t VtepIfMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
-                                           DalDmlIntf *dmi,
-                                           IpcReqRespHeader *req) {
-    UPLL_FUNC_TRACE;
-    upll_rc_t result_code = UPLL_RC_SUCCESS;
-    if (!ikey || (ikey->get_key_type() != UNC_KT_VTEP_IF)
-              || !(ikey->get_cfg_val()))
-      return UPLL_RC_ERR_CFG_SYNTAX;
+upll_rc_t VtepIfMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
+                                         DalDmlIntf *dmi,
+                                         IpcReqRespHeader *req) {
+  UPLL_FUNC_TRACE;
+  upll_rc_t result_code = UPLL_RC_SUCCESS;
+  if (!ikey || (ikey->get_key_type() != UNC_KT_VTEP_IF)
+      || !(ikey->get_cfg_val()))
+    return UPLL_RC_ERR_CFG_SYNTAX;
 
-    val_vtep_if *vtepif_val = static_cast<val_vtep_if *>(GetVal(ikey));
-    if (!vtepif_val) {
+  val_vtep_if *vtepif_val = static_cast<val_vtep_if *>(GetVal(ikey));
+  if (!vtepif_val) {
+    if (req->operation == UNC_OP_CREATE) {
+      UPLL_LOG_DEBUG("Val Structure is Null");
+      return UPLL_RC_SUCCESS;
+    } else {
+      UPLL_LOG_DEBUG("Val structure is must");
       return UPLL_RC_ERR_GENERIC;
     }
-    if (vtepif_val->valid[UPLL_IDX_PORT_MAP_VTEPI] == UNC_VF_VALID) {
-      if (vtepif_val->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] ==
-          UNC_VF_VALID &&
-          vtepif_val->portmap.valid[UPLL_IDX_VLAN_ID_PM] == UNC_VF_VALID) {
-        key_vtep_if *vtep_key_if = static_cast<key_vtep_if *>
-                                 (ConfigKeyVal::Malloc(sizeof(key_vtep_if)));
-        val_vtep_if *vtepif_val_filter = static_cast<val_vtep_if *>
-                    (ConfigKeyVal::Malloc(sizeof(val_vtep_if)));
-        vtepif_val_filter->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] =
-            UNC_VF_VALID;
-        vtepif_val_filter->portmap.valid[UPLL_IDX_VLAN_ID_PM] = UNC_VF_VALID;
-        uuu::upll_strncpy(vtepif_val_filter->portmap.logical_port_id,
-                          vtepif_val->portmap.logical_port_id,
-                          kMaxLenLogicalPortId+1);
-        vtepif_val_filter->portmap.vlan_id = vtepif_val->portmap.vlan_id;
-        ConfigKeyVal *vtepif_ckv = new ConfigKeyVal(UNC_KT_VTEP_IF,
-                                   IpctSt::kIpcStKeyVtepIf, vtep_key_if, NULL);
-        vtepif_ckv->AppendCfgVal(IpctSt::kIpcStValVtepIf, vtepif_val_filter);
+  }
+  result_code = IsLogicalPortAndVlanIdInUse(ikey, dmi, req);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_ERROR("Returning error %d\n", result_code);
+    return result_code;
+  }
+  // PortMap Validation
+  uint32_t operation = req->operation;
+  if (operation == UNC_OP_UPDATE) {
+    result_code = UpdateConfigVal(ikey, UPLL_DT_CANDIDATE, dmi);
+    UPLL_LOG_TRACE("UpdateConfigVal returned %d", result_code);
+  }
+  return result_code;
+}
+
+upll_rc_t VtepIfMoMgr::IsLogicalPortAndVlanIdInUse(ConfigKeyVal *ikey,
+                                                   DalDmlIntf *dmi,
+                                                   IpcReqRespHeader *req) {
+  UPLL_FUNC_TRACE;
+  upll_rc_t result_code = UPLL_RC_SUCCESS;
+  if (!ikey || (ikey->get_key_type() != UNC_KT_VTEP_IF)
+      || !(ikey->get_cfg_val()))
+    return UPLL_RC_ERR_CFG_SYNTAX;
 
-        SET_USER_DATA(vtepif_ckv, ikey);
-        // Read from the DB
-        DbSubOp dbop = { kOpReadMultiple, kOpMatchCtrlr | kOpMatchDomain,
-                                                          kOpInOutFlag};
-        result_code = ReadConfigDB(vtepif_ckv, UPLL_DT_CANDIDATE, UNC_OP_READ,
-                                   dbop, dmi, MAINTBL);
-        if (result_code == UPLL_RC_SUCCESS) {
+  val_vtep_if *vtepif_val = static_cast<val_vtep_if *>(GetVal(ikey));
+  if (!vtepif_val) {
+    return UPLL_RC_ERR_GENERIC;
+  }
+  if (vtepif_val->valid[UPLL_IDX_PORT_MAP_VTEPI] == UNC_VF_VALID) {
+    if (vtepif_val->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] ==
+        UNC_VF_VALID &&
+        vtepif_val->portmap.valid[UPLL_IDX_VLAN_ID_PM] == UNC_VF_VALID) {
+      key_vtep_if *vtep_key_if = static_cast<key_vtep_if *>
+          (ConfigKeyVal::Malloc(sizeof(key_vtep_if)));
+      val_vtep_if *vtepif_val_filter = static_cast<val_vtep_if *>
+          (ConfigKeyVal::Malloc(sizeof(val_vtep_if)));
+      vtepif_val_filter->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] =
+          UNC_VF_VALID;
+      vtepif_val_filter->portmap.valid[UPLL_IDX_VLAN_ID_PM] = UNC_VF_VALID;
+      uuu::upll_strncpy(vtepif_val_filter->portmap.logical_port_id,
+                        vtepif_val->portmap.logical_port_id,
+                        kMaxLenLogicalPortId+1);
+      vtepif_val_filter->portmap.vlan_id = vtepif_val->portmap.vlan_id;
+      ConfigKeyVal *vtepif_ckv = new ConfigKeyVal(UNC_KT_VTEP_IF,
+                                                  IpctSt::kIpcStKeyVtepIf,
+                                                  vtep_key_if, NULL);
+      vtepif_ckv->AppendCfgVal(IpctSt::kIpcStValVtepIf, vtepif_val_filter);
+
+      SET_USER_DATA(vtepif_ckv, ikey);
+      // Read from the DB
+      DbSubOp dbop = { kOpReadMultiple, kOpMatchCtrlr | kOpMatchDomain,
+        kOpInOutFlag};
+      result_code = ReadConfigDB(vtepif_ckv, UPLL_DT_CANDIDATE, UNC_OP_READ,
+                                 dbop, dmi, MAINTBL);
+      if (result_code == UPLL_RC_SUCCESS) {
         // check different interface has the same port and lan id
-          ConfigKeyVal *tmp = vtepif_ckv;
-          while (tmp) {
-            if (!memcmp((ikey->get_key()), (tmp->get_key()),
-                                            sizeof(key_vtep_if))) {
-              UPLL_LOG_TRACE("Looking on the Same key");
-            } else {
-              UPLL_LOG_DEBUG("Same port Id and VlanId is used on different"
-                              " Vtep Interface within same VTN/Controller");
-              delete vtepif_ckv;
-              vtepif_ckv = tmp = NULL;
-              return UPLL_RC_ERR_CFG_SEMANTIC;
-            }
-            tmp = tmp->get_next_cfg_key_val();
+        ConfigKeyVal *tmp = vtepif_ckv;
+        while (tmp) {
+          if (!memcmp((ikey->get_key()), (tmp->get_key()),
+                      sizeof(key_vtep_if))) {
+            UPLL_LOG_TRACE("Looking on the Same key");
+          } else {
+            UPLL_LOG_DEBUG("Same port Id and VlanId is used on different"
+                           " Vtep Interface within same VTN/Controller");
+            delete vtepif_ckv;
+            vtepif_ckv = tmp = NULL;
+            return UPLL_RC_ERR_CFG_SEMANTIC;
           }
-        } else if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-          result_code = UPLL_RC_SUCCESS;
-        } else if (result_code != UPLL_RC_SUCCESS) {
-          delete vtepif_ckv;
-          vtepif_ckv = NULL;
-          return result_code;
+          tmp = tmp->get_next_cfg_key_val();
         }
+      } else if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+        result_code = UPLL_RC_SUCCESS;
+      } else if (result_code != UPLL_RC_SUCCESS) {
         delete vtepif_ckv;
         vtepif_ckv = NULL;
+        return result_code;
       }
+      delete vtepif_ckv;
+      vtepif_ckv = NULL;
     }
-    UPLL_LOG_TRACE("PortId and VlanId is not used on any Vtep Interface");
-    // PortMap Validation
-    uint32_t operation = req->operation;
-    if (operation == UNC_OP_UPDATE) {
-      result_code = UpdateConfigVal(ikey, UPLL_DT_CANDIDATE, dmi);
-      UPLL_LOG_TRACE("UpdateConfigVal returned %d", result_code);
-    }
-    return result_code;
   }
+  UPLL_LOG_TRACE("PortId and VlanId is not used on any Vtunnel Interface");
+  return result_code;
+}
 
-  bool VtepIfMoMgr::IsValidKey(void *key, uint64_t index) {
-    UPLL_FUNC_TRACE;
-    key_vtep_if *if_key = reinterpret_cast<key_vtep_if *>(key);
-    upll_rc_t ret_val = UPLL_RC_SUCCESS;
-    switch (index) {
-      case uudst::vtep_interface::kDbiVtnName:
-        ret_val = ValidateKey(reinterpret_cast<char *>
-                             (if_key->vtep_key.vtn_key.vtn_name),
-                             kMinLenVtnName, kMaxLenVtnName);
-        if (ret_val != UPLL_RC_SUCCESS) {
-          UPLL_LOG_TRACE("VTN Name is not valid(%d)", ret_val);
-          return false;
-        }
-        break;
-      case uudst::vtep_interface::kDbiVtepName:
-        ret_val = ValidateKey(reinterpret_cast<char *>
-                              (if_key->vtep_key.vtep_name),
-                              kMinLenVnodeName, kMaxLenVnodeName);
-        if (ret_val != UPLL_RC_SUCCESS) {
-          UPLL_LOG_TRACE("Vtep Name is not valid(%d)", ret_val);
-          return false;
-        }
-        break;
-      case uudst::vtep_interface::kDbiIfName:
-        ret_val = ValidateKey(reinterpret_cast<char *>(if_key->if_name),
-                              kMinLenInterfaceName,
-                              kMaxLenInterfaceName);
-        if (ret_val != UPLL_RC_SUCCESS) {
-          UPLL_LOG_TRACE("Vtep IF Name is not valid(%d)", ret_val);
-          return false;
-        }
-        break;
-      default:
-        UPLL_LOG_TRACE("Wrong Index");
+bool VtepIfMoMgr::IsValidKey(void *key, uint64_t index) {
+  UPLL_FUNC_TRACE;
+  key_vtep_if *if_key = reinterpret_cast<key_vtep_if *>(key);
+  upll_rc_t ret_val = UPLL_RC_SUCCESS;
+  switch (index) {
+    case uudst::vtep_interface::kDbiVtnName:
+      ret_val = ValidateKey(reinterpret_cast<char *>
+                            (if_key->vtep_key.vtn_key.vtn_name),
+                            kMinLenVtnName, kMaxLenVtnName);
+      if (ret_val != UPLL_RC_SUCCESS) {
+        UPLL_LOG_TRACE("VTN Name is not valid(%d)", ret_val);
         return false;
-    }
-    return true;
+      }
+      break;
+    case uudst::vtep_interface::kDbiVtepName:
+      ret_val = ValidateKey(reinterpret_cast<char *>
+                            (if_key->vtep_key.vtep_name),
+                            kMinLenVnodeName, kMaxLenVnodeName);
+      if (ret_val != UPLL_RC_SUCCESS) {
+        UPLL_LOG_TRACE("Vtep Name is not valid(%d)", ret_val);
+        return false;
+      }
+      break;
+    case uudst::vtep_interface::kDbiIfName:
+      ret_val = ValidateKey(reinterpret_cast<char *>(if_key->if_name),
+                            kMinLenInterfaceName,
+                            kMaxLenInterfaceName);
+      if (ret_val != UPLL_RC_SUCCESS) {
+        UPLL_LOG_TRACE("Vtep IF Name is not valid(%d)", ret_val);
+        return false;
+      }
+      break;
+    default:
+      UPLL_LOG_TRACE("Wrong Index");
+      return false;
   }
+  return true;
+}
 
-  upll_rc_t VtepIfMoMgr::GetValid(void *val,  uint64_t indx, uint8_t *&valid,
-      upll_keytype_datatype_t dt_type, MoMgrTables tbl ) {
-    UPLL_FUNC_TRACE;
-    if (val == NULL) return UPLL_RC_ERR_GENERIC;
-    if (tbl == MAINTBL) {
-      switch (indx) {
-        case  uudst::vtep_interface::kDbiOperStatus:
-          valid = &(reinterpret_cast<val_vtep_if_st *>(val))->
-              valid[UPLL_IDX_IF_OPER_STATUS_VTEPIS];
-          break;
-        case  uudst::vtep_interface::kDbiDownCount:
-          valid = NULL;
-          break;
-        case  uudst::vtep_interface::kDbiAdminStatus:
-          valid = &(reinterpret_cast<val_vtep_if *>(val))->
+upll_rc_t VtepIfMoMgr::GetValid(void *val,
+                                uint64_t indx,
+                                uint8_t *&valid,
+                                upll_keytype_datatype_t dt_type,
+                                MoMgrTables tbl ) {
+  UPLL_FUNC_TRACE;
+  if (val == NULL) return UPLL_RC_ERR_GENERIC;
+  if (tbl == MAINTBL) {
+    switch (indx) {
+      case  uudst::vtep_interface::kDbiOperStatus:
+        valid = &(reinterpret_cast<val_vtep_if_st *>(val))->
+            valid[UPLL_IDX_IF_OPER_STATUS_VTEPIS];
+        break;
+      case  uudst::vtep_interface::kDbiDownCount:
+        valid = NULL;
+        break;
+      case  uudst::vtep_interface::kDbiAdminStatus:
+        valid = &(reinterpret_cast<val_vtep_if *>(val))->
             valid[UPLL_IDX_ADMIN_ST_VTEPI];
-          break;
-        case  uudst::vtep_interface::kDbiDesc:
-          valid = &(reinterpret_cast<val_vtep_if *>(val))->
+        break;
+      case  uudst::vtep_interface::kDbiDesc:
+        valid = &(reinterpret_cast<val_vtep_if *>(val))->
             valid[UPLL_IDX_DESC_VTEPI];
-          break;
-        case uudst::vtep_interface::kDbiValidPortMap:
-          valid = &(reinterpret_cast<val_vtep_if *>(val))->
+        break;
+      case uudst::vtep_interface::kDbiValidPortMap:
+        valid = &(reinterpret_cast<val_vtep_if *>(val))->
             valid[UPLL_IDX_PORT_MAP_VTEPI];
-          break;
-        case uudst::vtep_interface::kDbiLogicalPortId:
-          valid = &(reinterpret_cast<val_vtep_if *>(val))->portmap.
+        break;
+      case uudst::vtep_interface::kDbiLogicalPortId:
+        valid = &(reinterpret_cast<val_vtep_if *>(val))->portmap.
             valid[UPLL_IDX_LOGICAL_PORT_ID_PM];
-          break;
-        case uudst::vtep_interface::kDbiVlanId:
-          valid = &(reinterpret_cast<val_vtep_if *>(val))->portmap.
+        break;
+      case uudst::vtep_interface::kDbiVlanId:
+        valid = &(reinterpret_cast<val_vtep_if *>(val))->portmap.
             valid[UPLL_IDX_VLAN_ID_PM];
-          break;
-        case uudst::vtep_interface::kDbiTagged:
-          valid = &(reinterpret_cast<val_vtep_if *>(val))->portmap.
+        break;
+      case uudst::vtep_interface::kDbiTagged:
+        valid = &(reinterpret_cast<val_vtep_if *>(val))->portmap.
             valid[UPLL_IDX_TAGGED_PM];
-          break;
-        default:
-          return UPLL_RC_ERR_GENERIC;
-      }
+        break;
+      default:
+        return UPLL_RC_ERR_GENERIC;
     }
-    return UPLL_RC_SUCCESS;
   }
+  return UPLL_RC_SUCCESS;
+}
 
-  upll_rc_t VtepIfMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
-      ConfigKeyVal *parent_key) {
-    UPLL_FUNC_TRACE;
-    bool cfgval_ctrlr = false;
-    upll_rc_t result_code = UPLL_RC_SUCCESS;
-    key_vtep_if *vtep_key_if = static_cast<key_vtep_if *>
+upll_rc_t VtepIfMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
+                                         ConfigKeyVal *parent_key) {
+  UPLL_FUNC_TRACE;
+  bool cfgval_ctrlr = false;
+  upll_rc_t result_code = UPLL_RC_SUCCESS;
+  key_vtep_if *vtep_key_if = static_cast<key_vtep_if *>
       (ConfigKeyVal::Malloc(sizeof(key_vtep_if)));
-    if (vtep_key_if == NULL) return UPLL_RC_ERR_GENERIC;
-    void *pkey;
-    if (parent_key == NULL) {
-      if (okey) delete okey;
-      okey = new ConfigKeyVal(UNC_KT_VTEP_IF,
-                              IpctSt::kIpcStKeyVtepIf,
-                              vtep_key_if, NULL);
-      return UPLL_RC_SUCCESS;
-    } else {
-      pkey = parent_key->get_key();
-    }
-    if (!pkey) {
-      FREE_IF_NOT_NULL(vtep_key_if);
+  if (vtep_key_if == NULL) return UPLL_RC_ERR_GENERIC;
+  void *pkey;
+  if (parent_key == NULL) {
+    if (okey) delete okey;
+    okey = new ConfigKeyVal(UNC_KT_VTEP_IF,
+                            IpctSt::kIpcStKeyVtepIf,
+                            vtep_key_if, NULL);
+    return UPLL_RC_SUCCESS;
+  } else {
+    pkey = parent_key->get_key();
+  }
+  if (!pkey) {
+    FREE_IF_NOT_NULL(vtep_key_if);
+    return UPLL_RC_ERR_GENERIC;
+  }
+  if (okey && (okey->get_key())) {
+    FREE_IF_NOT_NULL(vtep_key_if);
+    if (okey->get_key_type() != UNC_KT_VTEP_IF)
       return UPLL_RC_ERR_GENERIC;
-    }
-    if (okey && (okey->get_key())) {
+    vtep_key_if = reinterpret_cast<key_vtep_if *>(okey->get_key());
+  } else {
+    okey = new ConfigKeyVal(UNC_KT_VTEP_IF, IpctSt::kIpcStKeyVtepIf,
+                            vtep_key_if, NULL);
+    if (okey == NULL) {
       FREE_IF_NOT_NULL(vtep_key_if);
-      if (okey->get_key_type() != UNC_KT_VTEP_IF)
-        return UPLL_RC_ERR_GENERIC;
-      vtep_key_if = reinterpret_cast<key_vtep_if *>(okey->get_key());
-    } else {
-      okey = new ConfigKeyVal(UNC_KT_VTEP_IF, IpctSt::kIpcStKeyVtepIf,
-                              vtep_key_if, NULL);
-      if (okey == NULL) {
-        FREE_IF_NOT_NULL(vtep_key_if);
-        return UPLL_RC_ERR_GENERIC;
-      }
+      return UPLL_RC_ERR_GENERIC;
     }
-    unc_key_type_t keytype = parent_key->get_key_type();
-    switch (keytype) {
-      case UNC_KT_VTN:
-        uuu::upll_strncpy(vtep_key_if->vtep_key.vtn_key.vtn_name,
-                          static_cast<key_vtn *>(pkey)->vtn_name,
-                          (kMaxLenVtnName+1));
-        *(vtep_key_if->vtep_key.vtep_name) = *"";
-        break;
-      case UNC_KT_VTEP:
-        uuu::upll_strncpy(vtep_key_if->vtep_key.vtn_key.vtn_name,
-                          static_cast<key_vtep *>(pkey)->vtn_key.vtn_name,
-                          (kMaxLenVtnName+1));
-        uuu::upll_strncpy(vtep_key_if->vtep_key.vtep_name,
-                          static_cast<key_vtep *>(pkey)->vtep_name,
-                          (kMaxLenVnodeName+1));
-        break;
-      case UNC_KT_VTEP_IF:
+  }
+  unc_key_type_t keytype = parent_key->get_key_type();
+  switch (keytype) {
+    case UNC_KT_VTN:
+      uuu::upll_strncpy(vtep_key_if->vtep_key.vtn_key.vtn_name,
+                        static_cast<key_vtn *>(pkey)->vtn_name,
+                        (kMaxLenVtnName+1));
+      *(vtep_key_if->vtep_key.vtep_name) = *"";
+      break;
+    case UNC_KT_VTEP:
+      uuu::upll_strncpy(vtep_key_if->vtep_key.vtn_key.vtn_name,
+                        static_cast<key_vtep *>(pkey)->vtn_key.vtn_name,
+                        (kMaxLenVtnName+1));
+      uuu::upll_strncpy(vtep_key_if->vtep_key.vtep_name,
+                        static_cast<key_vtep *>(pkey)->vtep_name,
+                        (kMaxLenVnodeName+1));
+      break;
+    case UNC_KT_VTEP_IF:
+      uuu::upll_strncpy(vtep_key_if->vtep_key.vtn_key.vtn_name,
+                        static_cast<key_vtep_if *>
+                        (pkey)->vtep_key.vtn_key.vtn_name,
+                        (kMaxLenVtnName+1));
+      uuu::upll_strncpy(vtep_key_if->vtep_key.vtep_name,
+                        static_cast<key_vtep_if *>(pkey)->vtep_key.vtep_name,
+                        (kMaxLenVnodeName+1));
+      uuu::upll_strncpy(vtep_key_if->if_name,
+                        static_cast<key_vtep_if *>(pkey)->if_name,
+                        (kMaxLenInterfaceName+1));
+      break;
+    case UNC_KT_VLINK:
+      {
+        uint8_t *vnode_name, *if_name;
+        val_vlink *vlink_val = reinterpret_cast<val_vlink *>
+            (GetVal(parent_key));
+        if (!vlink_val) {
+          free(vtep_key_if);
+          return UPLL_RC_ERR_GENERIC;
+        }
+        uint8_t flags = 0;
+        GET_USER_DATA_FLAGS(parent_key->get_cfg_val(), flags);
+        flags &=  VLINK_FLAG_NODE_POS;
+        UPLL_LOG_DEBUG("Vlink flag node position %d", flags);
+        if (flags == kVlinkVnode1) {
+          vnode_name =  vlink_val->vnode1_name;
+          if_name = vlink_val->vnode1_ifname;
+        } else {
+          cfgval_ctrlr = true;
+          vnode_name =  vlink_val->vnode2_name;
+          if_name = vlink_val->vnode2_ifname;
+        }
         uuu::upll_strncpy(vtep_key_if->vtep_key.vtn_key.vtn_name,
-                          static_cast<key_vtep_if *>
-                          (pkey)->vtep_key.vtn_key.vtn_name,
+                          static_cast<key_vlink *>(pkey)->vtn_key.vtn_name,
                           (kMaxLenVtnName+1));
-        uuu::upll_strncpy(vtep_key_if->vtep_key.vtep_name,
-                          static_cast<key_vtep_if *>(pkey)->vtep_key.vtep_name,
-                          (kMaxLenVnodeName+1));
-        uuu::upll_strncpy(vtep_key_if->if_name,
-                          static_cast<key_vtep_if *>(pkey)->if_name,
-                          (kMaxLenInterfaceName+1));
-        break;
-      case UNC_KT_VLINK:
-        {
-          uint8_t *vnode_name, *if_name;
-          val_vlink *vlink_val = reinterpret_cast<val_vlink *>
-                                 (GetVal(parent_key));
-          if (!vlink_val) {
-            free(vtep_key_if);
-            return UPLL_RC_ERR_GENERIC;
-          }
-          uint8_t flags = 0;
-          GET_USER_DATA_FLAGS(parent_key->get_cfg_val(), flags);
-          flags &=  VLINK_FLAG_NODE_POS;
-          UPLL_LOG_DEBUG("Vlink flag node position %d", flags);
-          if (flags == kVlinkVnode1) {
-            vnode_name =  vlink_val->vnode1_name;
-            if_name = vlink_val->vnode1_ifname;
-          } else {
-            cfgval_ctrlr = true;
-            vnode_name =  vlink_val->vnode2_name;
-            if_name = vlink_val->vnode2_ifname;
-          }
-          uuu::upll_strncpy(vtep_key_if->vtep_key.vtn_key.vtn_name,
-                            static_cast<key_vlink *>(pkey)->vtn_key.vtn_name,
-                            (kMaxLenVtnName+1));
-          if (vnode_name)
-            uuu::upll_strncpy(vtep_key_if->vtep_key.vtep_name, vnode_name,
-                              (kMaxLenVnodeName+1));
-          if (if_name)
-            uuu::upll_strncpy(vtep_key_if->if_name, if_name,
-                              (kMaxLenInterfaceName+1));
-        }
-      default:
-        break;
-    }
-    if (cfgval_ctrlr) {
-      SET_USER_DATA(okey, parent_key->get_cfg_val());
-    } else {
-      SET_USER_DATA(okey, parent_key);
-    }
-    return result_code;
+        if (vnode_name)
+          uuu::upll_strncpy(vtep_key_if->vtep_key.vtep_name, vnode_name,
+                            (kMaxLenVnodeName+1));
+        if (if_name)
+          uuu::upll_strncpy(vtep_key_if->if_name, if_name,
+                            (kMaxLenInterfaceName+1));
+      }
+    default:
+      break;
+  }
+  if (cfgval_ctrlr) {
+    SET_USER_DATA(okey, parent_key->get_cfg_val());
+  } else {
+    SET_USER_DATA(okey, parent_key);
   }
+  return result_code;
+}
 
-  upll_rc_t VtepIfMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
-      ConfigKeyVal *ikey ) {
-    UPLL_FUNC_TRACE;
-    upll_rc_t result_code = UPLL_RC_SUCCESS;
-    key_vtep_if *pkey = reinterpret_cast<key_vtep_if *>
-                        ((ikey)?ikey->get_key():NULL);
-    if (!pkey) return UPLL_RC_ERR_GENERIC;
+upll_rc_t VtepIfMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
+                                          ConfigKeyVal *ikey ) {
+  UPLL_FUNC_TRACE;
+  upll_rc_t result_code = UPLL_RC_SUCCESS;
+  key_vtep_if *pkey = reinterpret_cast<key_vtep_if *>
+      ((ikey)?ikey->get_key():NULL);
+  if (!pkey) return UPLL_RC_ERR_GENERIC;
 
-    unc_key_type_t ikey_type = ikey->get_key_type();
-    if (ikey_type != UNC_KT_VTEP_IF)
-      return UPLL_RC_ERR_GENERIC;
-    key_vtep *vtep_key = reinterpret_cast<key_vtep *>
-                         (ConfigKeyVal::Malloc(sizeof(key_vtep)));
-    if (!vtep_key) return UPLL_RC_ERR_GENERIC;
-    uuu::upll_strncpy(vtep_key->vtn_key.vtn_name,
-        static_cast<key_vtep_if *>(pkey)->vtep_key.vtn_key.vtn_name,
-        (kMaxLenVtnName+1));
-    uuu::upll_strncpy(vtep_key->vtep_name,
-        static_cast<key_vtep_if *>(pkey)->vtep_key.vtep_name,
-        (kMaxLenVnodeName+1));
-    if (okey) delete okey;
-    okey = new ConfigKeyVal(UNC_KT_VTEP, IpctSt::kIpcStKeyVtep,
-                            vtep_key, NULL);
-    if (okey == NULL) {
-      FREE_IF_NOT_NULL(vtep_key);
-      result_code = UPLL_RC_ERR_GENERIC;
-    } else {
-      SET_USER_DATA(okey, ikey);
-    }
-    return result_code;
+  unc_key_type_t ikey_type = ikey->get_key_type();
+  if (ikey_type != UNC_KT_VTEP_IF)
+    return UPLL_RC_ERR_GENERIC;
+  key_vtep *vtep_key = reinterpret_cast<key_vtep *>
+      (ConfigKeyVal::Malloc(sizeof(key_vtep)));
+  if (!vtep_key) return UPLL_RC_ERR_GENERIC;
+  uuu::upll_strncpy(vtep_key->vtn_key.vtn_name,
+                    static_cast<key_vtep_if *>(pkey)->
+                    vtep_key.vtn_key.vtn_name,
+                    (kMaxLenVtnName+1));
+  uuu::upll_strncpy(vtep_key->vtep_name,
+                    static_cast<key_vtep_if *>(pkey)->vtep_key.vtep_name,
+                    (kMaxLenVnodeName+1));
+  if (okey) delete okey;
+  okey = new ConfigKeyVal(UNC_KT_VTEP, IpctSt::kIpcStKeyVtep,
+                          vtep_key, NULL);
+  if (okey == NULL) {
+    FREE_IF_NOT_NULL(vtep_key);
+    result_code = UPLL_RC_ERR_GENERIC;
+  } else {
+    SET_USER_DATA(okey, ikey);
   }
+  return result_code;
+}
 
 
-  upll_rc_t VtepIfMoMgr::AllocVal(ConfigVal *&ck_val,
-      upll_keytype_datatype_t dt_type, MoMgrTables tbl) {
-    UPLL_FUNC_TRACE;
-    void *val;
-    if (ck_val != NULL) return UPLL_RC_ERR_GENERIC;
-    switch (tbl) {
-      case MAINTBL:
+upll_rc_t VtepIfMoMgr::AllocVal(ConfigVal *&ck_val,
+                                upll_keytype_datatype_t dt_type,
+                                MoMgrTables tbl) {
+  UPLL_FUNC_TRACE;
+  void *val;
+  if (ck_val != NULL) return UPLL_RC_ERR_GENERIC;
+  switch (tbl) {
+    case MAINTBL:
+      val = reinterpret_cast<void *>
+          (ConfigKeyVal::Malloc(sizeof(val_vtep_if)));
+      if (!val) return UPLL_RC_ERR_GENERIC;
+      ck_val = new ConfigVal(IpctSt::kIpcStValVtepIf, val);
+      if (!ck_val) {
+        FREE_IF_NOT_NULL(reinterpret_cast<val_vtep_if *>(val));
+        return UPLL_RC_ERR_GENERIC;
+      }
+      if (dt_type == UPLL_DT_STATE) {
         val = reinterpret_cast<void *>
-              (ConfigKeyVal::Malloc(sizeof(val_vtep_if)));
-        if (!val) return UPLL_RC_ERR_GENERIC;
-        ck_val = new ConfigVal(IpctSt::kIpcStValVtepIf, val);
-        if (!ck_val) {
-          FREE_IF_NOT_NULL(reinterpret_cast<val_vtep_if *>(val));
+            (ConfigKeyVal::Malloc(sizeof(val_db_vtep_if_st)));
+        if (!val) {
+          delete ck_val;
           return UPLL_RC_ERR_GENERIC;
         }
-        if (dt_type == UPLL_DT_STATE) {
-          val = reinterpret_cast<void *>
-                (ConfigKeyVal::Malloc(sizeof(val_db_vtep_if_st)));
-          if (!val) {
-            delete ck_val;
-            return UPLL_RC_ERR_GENERIC;
-          }
-          ConfigVal *ck_nxtval = new ConfigVal(IpctSt::kIpcStValVtepIfSt, val);
-          if (!ck_nxtval) {
-            delete ck_val;
-            FREE_IF_NOT_NULL(reinterpret_cast<val_db_vtep_if_st *>(val));
-            return UPLL_RC_ERR_GENERIC;
-          }
-          ck_val->AppendCfgVal(ck_nxtval);
+        ConfigVal *ck_nxtval = new ConfigVal(IpctSt::kIpcStValVtepIfSt, val);
+        if (!ck_nxtval) {
+          delete ck_val;
+          FREE_IF_NOT_NULL(reinterpret_cast<val_db_vtep_if_st *>(val));
+          return UPLL_RC_ERR_GENERIC;
         }
-        break;
-      default:
-        val = NULL;
-    }
-    return UPLL_RC_SUCCESS;
+        ck_val->AppendCfgVal(ck_nxtval);
+      }
+      break;
+    default:
+      val = NULL;
   }
+  return UPLL_RC_SUCCESS;
+}
 
-  upll_rc_t VtepIfMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
-      ConfigKeyVal *&req, MoMgrTables tbl) {
-    UPLL_FUNC_TRACE;
-    if (req == NULL) return UPLL_RC_ERR_GENERIC;
-    if (okey != NULL) return UPLL_RC_ERR_GENERIC;
-    if (req->get_key_type() != UNC_KT_VTEP_IF)
-      return UPLL_RC_ERR_GENERIC;
-    ConfigVal *tmp1 = NULL, *tmp = (req)->get_cfg_val();
+upll_rc_t VtepIfMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
+                                       ConfigKeyVal *&req, MoMgrTables tbl) {
+  UPLL_FUNC_TRACE;
+  if (req == NULL) return UPLL_RC_ERR_GENERIC;
+  if (okey != NULL) return UPLL_RC_ERR_GENERIC;
+  if (req->get_key_type() != UNC_KT_VTEP_IF)
+    return UPLL_RC_ERR_GENERIC;
+  ConfigVal *tmp1 = NULL, *tmp = (req)->get_cfg_val();
 
-    if (tmp) {
-      if (tbl == MAINTBL) {
-        val_vtep_if *ival = static_cast<val_vtep_if *>(GetVal(req));
-        val_vtep_if *vtep_val_if = static_cast<val_vtep_if *>
-                                   (ConfigKeyVal::Malloc(sizeof(val_vtep_if)));
-        if (!vtep_val_if) return UPLL_RC_ERR_GENERIC;
-        memcpy(vtep_val_if, ival, sizeof(val_vtep_if));
-        tmp1 = new ConfigVal(IpctSt::kIpcStValVtepIf, vtep_val_if);
-        if (!tmp1) {
-          FREE_IF_NOT_NULL(vtep_val_if);
-          return UPLL_RC_ERR_GENERIC;
-        }
+  if (tmp) {
+    if (tbl == MAINTBL) {
+      val_vtep_if *ival = static_cast<val_vtep_if *>(GetVal(req));
+      val_vtep_if *vtep_val_if = static_cast<val_vtep_if *>
+          (ConfigKeyVal::Malloc(sizeof(val_vtep_if)));
+      if (!vtep_val_if) return UPLL_RC_ERR_GENERIC;
+      memcpy(vtep_val_if, ival, sizeof(val_vtep_if));
+      tmp1 = new ConfigVal(IpctSt::kIpcStValVtepIf, vtep_val_if);
+      if (!tmp1) {
+        FREE_IF_NOT_NULL(vtep_val_if);
+        return UPLL_RC_ERR_GENERIC;
       }
-      tmp = tmp->get_next_cfg_val();
-    };
-    if (tmp) {
-      if (tbl == MAINTBL) {
-        val_db_vtep_if_st *ival = static_cast<val_db_vtep_if_st *>
+    }
+    tmp = tmp->get_next_cfg_val();
+  };
+  if (tmp) {
+    if (tbl == MAINTBL) {
+      val_db_vtep_if_st *ival = static_cast<val_db_vtep_if_st *>
           (tmp->get_val());
-        val_db_vtep_if_st *val_vtep_if = static_cast<val_db_vtep_if_st *>
+      val_db_vtep_if_st *val_vtep_if = static_cast<val_db_vtep_if_st *>
           (ConfigKeyVal::Malloc(sizeof(val_db_vtep_if_st)));
-        if (!val_vtep_if) {
-          delete tmp1;
-          return UPLL_RC_ERR_GENERIC;
-        }
-        memcpy(val_vtep_if, ival, sizeof(val_vtep_if_st));
-        ConfigVal *tmp2 = new ConfigVal(IpctSt::kIpcStValVtepIfSt, val_vtep_if);
-        if (!tmp2) {
-          delete tmp1;
-          FREE_IF_NOT_NULL(val_vtep_if);
-          return UPLL_RC_ERR_GENERIC;
-        }
-        tmp1->AppendCfgVal(tmp2);
+      if (!val_vtep_if) {
+        delete tmp1;
+        return UPLL_RC_ERR_GENERIC;
       }
-    };
-    void *tkey = (req != NULL)?(req)->get_key():NULL;
-    key_vtep_if *ikey = static_cast<key_vtep_if *>(tkey);
-    key_vtep_if *vtep_if_key = static_cast<key_vtep_if *>
-      (ConfigKeyVal::Malloc(sizeof(key_vtep_if)));
-    if (!vtep_if_key) {
-      if (tmp1) delete tmp1;
-      return UPLL_RC_ERR_GENERIC;
-    }
-    memcpy(vtep_if_key, ikey, sizeof(key_vtep_if));
-    okey = new ConfigKeyVal(UNC_KT_VTEP_IF, IpctSt::kIpcStKeyVtepIf,
-                            vtep_if_key, tmp1);
-    if (okey) {
-      SET_USER_DATA(okey, req);
-    } else {
-      if (tmp1) delete tmp1;
-      FREE_IF_NOT_NULL(vtep_if_key);
-      return UPLL_RC_ERR_GENERIC;
+      memcpy(val_vtep_if, ival, sizeof(val_vtep_if_st));
+      ConfigVal *tmp2 = new ConfigVal(IpctSt::kIpcStValVtepIfSt, val_vtep_if);
+      if (!tmp2) {
+        delete tmp1;
+        FREE_IF_NOT_NULL(val_vtep_if);
+        return UPLL_RC_ERR_GENERIC;
+      }
+      tmp1->AppendCfgVal(tmp2);
     }
-    return UPLL_RC_SUCCESS;
+  };
+  void *tkey = (req != NULL)?(req)->get_key():NULL;
+  key_vtep_if *ikey = static_cast<key_vtep_if *>(tkey);
+  key_vtep_if *vtep_if_key = static_cast<key_vtep_if *>
+      (ConfigKeyVal::Malloc(sizeof(key_vtep_if)));
+  if (!vtep_if_key) {
+    if (tmp1) delete tmp1;
+    return UPLL_RC_ERR_GENERIC;
+  }
+  memcpy(vtep_if_key, ikey, sizeof(key_vtep_if));
+  okey = new ConfigKeyVal(UNC_KT_VTEP_IF, IpctSt::kIpcStKeyVtepIf,
+                          vtep_if_key, tmp1);
+  if (okey) {
+    SET_USER_DATA(okey, req);
+  } else {
+    if (tmp1) delete tmp1;
+    FREE_IF_NOT_NULL(vtep_if_key);
+    return UPLL_RC_ERR_GENERIC;
   }
+  return UPLL_RC_SUCCESS;
+}
 
-  upll_rc_t VtepIfMoMgr::UpdateConfigVal(ConfigKeyVal *ikey,
-                                      upll_keytype_datatype_t datatype,
-                                      DalDmlIntf *dmi) {
-    UPLL_FUNC_TRACE;
-    upll_rc_t result_code = UPLL_RC_SUCCESS;
-    ConfigKeyVal *okey = NULL;
-    uint8_t flag = 0;
-    if (!ikey || !dmi) {
-      UPLL_LOG_DEBUG("Invalid Input");
-      return UPLL_RC_ERR_GENERIC;
-    }
-    val_vtep_if *vtepif_val = static_cast<val_vtep_if *>(GetVal(ikey));
-    if (!vtepif_val) {
-      UPLL_LOG_DEBUG("Value Structure is Null");
-      return UPLL_RC_ERR_GENERIC;
-    }
-    result_code = GetChildConfigKey(okey, ikey);
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("GetChildConfigKey Failure %d", result_code);
-      return result_code;
-    }
-    DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutFlag };
-    result_code = ReadConfigDB(okey, datatype, UNC_OP_READ, dbop,
-                               dmi, MAINTBL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Read failed %d", result_code);
-      DELETE_IF_NOT_NULL(okey);
-      return result_code;
-    }
-    GET_USER_DATA_FLAGS(okey, flag);
-    if (vtepif_val->valid[UPLL_IDX_PORT_MAP_VTEPI] == UNC_VF_VALID ||
-        vtepif_val->valid[UPLL_IDX_PORT_MAP_VTEPI] == UNC_VF_VALID_NO_VALUE) {
-      if (flag & VIF_TYPE) {
-        DELETE_IF_NOT_NULL(okey);
-        UPLL_LOG_DEBUG("Interface is linked/bounded with Vlink."
-                        " Could not update Portmap");
-        return UPLL_RC_ERR_CFG_SEMANTIC;
-      }
-    }
-    if (vtepif_val->valid[UPLL_IDX_PORT_MAP_VTEPI] == UNC_VF_VALID_NO_VALUE) {
-      vtepif_val->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] =
-                                                 UNC_VF_VALID_NO_VALUE;
-      vtepif_val->portmap.valid[UPLL_IDX_VLAN_ID_PM] = UNC_VF_VALID_NO_VALUE;
-      vtepif_val->portmap.valid[UPLL_IDX_TAGGED_PM] = UNC_VF_VALID_NO_VALUE;
-      uuu::upll_strncpy(vtepif_val->portmap.logical_port_id, "\0", 1);
-      vtepif_val->portmap.vlan_id = 0;
-      vtepif_val->portmap.tagged = UPLL_VLAN_UNTAGGED;
-    }
+upll_rc_t VtepIfMoMgr::UpdateConfigVal(ConfigKeyVal *ikey,
+                                       upll_keytype_datatype_t datatype,
+                                       DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
+  upll_rc_t result_code = UPLL_RC_SUCCESS;
+  ConfigKeyVal *okey = NULL;
+  uint8_t flag = 0;
+  if (!ikey || !dmi) {
+    UPLL_LOG_DEBUG("Invalid Input");
+    return UPLL_RC_ERR_GENERIC;
+  }
+  val_vtep_if *vtepif_val = static_cast<val_vtep_if *>(GetVal(ikey));
+  if (!vtepif_val) {
+    UPLL_LOG_DEBUG("Value Structure is Null");
+    return UPLL_RC_ERR_GENERIC;
+  }
+  result_code = GetChildConfigKey(okey, ikey);
+  if (UPLL_RC_SUCCESS != result_code) {
+    UPLL_LOG_DEBUG("GetChildConfigKey Failure %d", result_code);
+    return result_code;
+  }
+  DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutFlag };
+  result_code = ReadConfigDB(okey, datatype, UNC_OP_READ, dbop,
+                             dmi, MAINTBL);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_DEBUG("Read failed %d", result_code);
     DELETE_IF_NOT_NULL(okey);
     return result_code;
   }
+  GET_USER_DATA_FLAGS(okey, flag);
+  if (vtepif_val->valid[UPLL_IDX_PORT_MAP_VTEPI] == UNC_VF_VALID ||
+      vtepif_val->valid[UPLL_IDX_PORT_MAP_VTEPI] == UNC_VF_VALID_NO_VALUE) {
+    if (flag & VIF_TYPE) {
+      DELETE_IF_NOT_NULL(okey);
+      UPLL_LOG_DEBUG("Interface is linked/bounded with Vlink."
+                     " Could not update Portmap");
+      return UPLL_RC_ERR_CFG_SEMANTIC;
+    }
+  }
+  if (vtepif_val->valid[UPLL_IDX_PORT_MAP_VTEPI] == UNC_VF_VALID_NO_VALUE) {
+    vtepif_val->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] =
+        UNC_VF_VALID_NO_VALUE;
+    vtepif_val->portmap.valid[UPLL_IDX_VLAN_ID_PM] = UNC_VF_VALID_NO_VALUE;
+    vtepif_val->portmap.valid[UPLL_IDX_TAGGED_PM] = UNC_VF_VALID_NO_VALUE;
+    uuu::upll_strncpy(vtepif_val->portmap.logical_port_id, "\0", 1);
+    vtepif_val->portmap.vlan_id = 0;
+    vtepif_val->portmap.tagged = UPLL_VLAN_UNTAGGED;
+  }
+  DELETE_IF_NOT_NULL(okey);
+  return result_code;
+}
 
-  upll_rc_t VtepIfMoMgr::AdaptValToVtnService(ConfigKeyVal *ikey) {
-    UPLL_FUNC_TRACE;
-    if (!ikey) {
-      UPLL_LOG_DEBUG("Invalid ikey");
+upll_rc_t VtepIfMoMgr::AdaptValToVtnService(ConfigKeyVal *ikey) {
+  UPLL_FUNC_TRACE;
+  if (!ikey) {
+    UPLL_LOG_DEBUG("Invalid ikey");
+    return UPLL_RC_ERR_GENERIC;
+  }
+  while (ikey) {
+    ConfigVal *cval = ikey->get_cfg_val();
+    if (!cval) {
+      UPLL_LOG_DEBUG("Config Val is Null");
       return UPLL_RC_ERR_GENERIC;
     }
-    while (ikey) {
-      ConfigVal *cval = ikey->get_cfg_val();
-      if (!cval) {
-        UPLL_LOG_DEBUG("Config Val is Null");
-        return UPLL_RC_ERR_GENERIC;
-      }
-      while (cval) {
-        if (IpctSt::kIpcStValVtepIf == cval->get_st_num()) {
-           // set admin status to valid no value
-          val_vtep_if *vtepif_val = reinterpret_cast<val_vtep_if *>
-                                          (GetVal(ikey));
-          if (vtepif_val->valid[UPLL_IDX_ADMIN_ST_VTEPI] == UNC_VF_INVALID)
-            vtepif_val->valid[UPLL_IDX_ADMIN_ST_VTEPI] = UNC_VF_VALID_NO_VALUE;
+    while (cval) {
+      if (IpctSt::kIpcStValVtepIf == cval->get_st_num()) {
+        // set admin status to valid no value
+        val_vtep_if *vtepif_val = reinterpret_cast<val_vtep_if *>
+            (GetVal(ikey));
+        if (vtepif_val->valid[UPLL_IDX_ADMIN_ST_VTEPI] == UNC_VF_INVALID)
+          vtepif_val->valid[UPLL_IDX_ADMIN_ST_VTEPI] = UNC_VF_VALID_NO_VALUE;
 
-          uint8_t vlink_flag = 0;
-          GET_USER_DATA_FLAGS(ikey, vlink_flag);
-          UPLL_LOG_DEBUG("Interface type %d", vlink_flag);
-          if (vlink_flag & VIF_TYPE)
-            vtepif_val->valid[UPLL_IDX_PORT_MAP_VTEPI] = UNC_VF_INVALID;
-        }
-        if (IpctSt::kIpcStValVtepIfSt == cval->get_st_num()) {
-          val_vtep_if_st *vtepif_stval = reinterpret_cast<val_vtep_if_st *>
-                            (ConfigKeyVal::Malloc(sizeof(val_vtep_if_st)));
-          val_db_vtep_if_st *db_vtepif_stval =
-                             reinterpret_cast<val_db_vtep_if_st *>(
-                                 cval->get_val());
-          memcpy(vtepif_stval, &db_vtepif_stval->vtep_if_val_st,
-                                   sizeof(val_vtep_if_st));
-          cval->SetVal(IpctSt::kIpcStValVtepIfSt, vtepif_stval);
-        }
-        cval = cval->get_next_cfg_val();
+        uint8_t vlink_flag = 0;
+        GET_USER_DATA_FLAGS(ikey, vlink_flag);
+        UPLL_LOG_DEBUG("Interface type %d", vlink_flag);
+        if (vlink_flag & VIF_TYPE)
+          vtepif_val->valid[UPLL_IDX_PORT_MAP_VTEPI] = UNC_VF_INVALID;
+      }
+      if (IpctSt::kIpcStValVtepIfSt == cval->get_st_num()) {
+        val_vtep_if_st *vtepif_stval = reinterpret_cast<val_vtep_if_st *>
+            (ConfigKeyVal::Malloc(sizeof(val_vtep_if_st)));
+        val_db_vtep_if_st *db_vtepif_stval =
+            reinterpret_cast<val_db_vtep_if_st *>(
+                cval->get_val());
+        memcpy(vtepif_stval, &db_vtepif_stval->vtep_if_val_st,
+               sizeof(val_vtep_if_st));
+        cval->SetVal(IpctSt::kIpcStValVtepIfSt, vtepif_stval);
       }
-      ikey = ikey->get_next_cfg_key_val();
+      cval = cval->get_next_cfg_val();
     }
-    return UPLL_RC_SUCCESS;
+    ikey = ikey->get_next_cfg_key_val();
   }
+  return UPLL_RC_SUCCESS;
+}
 
-  bool VtepIfMoMgr::FilterAttributes(void *&val1, void *val2,
-                                     bool copy_to_running,
-                                     unc_keytype_operation_t op) {
-    UPLL_FUNC_TRACE;
-    val_vtep_if_t *val_vtep_if1 = reinterpret_cast<val_vtep_if_t *>(val1);
-    /* No need to configure description in controller. */
-    val_vtep_if1->valid[UPLL_IDX_DESC_VTEPI] = UNC_VF_INVALID;
-    if (op != UNC_OP_CREATE)
-      return CompareValidValue(val1, val2, copy_to_running);
-    return false;
-  }
+bool VtepIfMoMgr::FilterAttributes(void *&val1, void *val2,
+                                   bool copy_to_running,
+                                   unc_keytype_operation_t op) {
+  UPLL_FUNC_TRACE;
+  val_vtep_if_t *val_vtep_if1 = reinterpret_cast<val_vtep_if_t *>(val1);
+  /* No need to configure description in controller. */
+  val_vtep_if1->valid[UPLL_IDX_DESC_VTEPI] = UNC_VF_INVALID;
+  if (op != UNC_OP_CREATE)
+    return CompareValidValue(val1, val2, copy_to_running);
+  return false;
+}
 
-  bool VtepIfMoMgr::CompareValidValue(void *&val1, void *val2,
-                                      bool copy_to_running) {
-    UPLL_FUNC_TRACE;
-    bool invalid_attr = true;
-    val_vtep_if_t *val_vtep_if1 = reinterpret_cast<val_vtep_if_t *>(val1);
-    val_vtep_if_t *val_vtep_if2 = reinterpret_cast<val_vtep_if_t *>(val2);
-    for (unsigned int loop = 0;
-        loop < sizeof(val_vtep_if1->valid)/sizeof(uint8_t); ++loop ) {
-      if ( UNC_VF_INVALID == val_vtep_if1->valid[loop] &&
-          UNC_VF_VALID == val_vtep_if2->valid[loop])
-        val_vtep_if1->valid[loop] = UNC_VF_VALID_NO_VALUE;
-    }
-    if (UNC_VF_VALID == val_vtep_if1->valid[UPLL_IDX_DESC_VTEPI]
-        && UNC_VF_VALID == val_vtep_if2->valid[UPLL_IDX_DESC_VTEPI]) {
-      if (!strcmp(reinterpret_cast<char*>(val_vtep_if1->description),
-            reinterpret_cast<char*>(val_vtep_if2->description)))
-        val_vtep_if1->valid[UPLL_IDX_DESC_VTEPI] = UNC_VF_INVALID;
-    }
-    if (UNC_VF_INVALID != val_vtep_if1->valid[UPLL_IDX_ADMIN_ST_VTEPI]
-        && UNC_VF_INVALID != val_vtep_if2->valid[UPLL_IDX_ADMIN_ST_VTEPI]) {
-      if (val_vtep_if1->admin_status == val_vtep_if2->admin_status)
-        val_vtep_if1->valid[UPLL_IDX_ADMIN_ST_VTEPI] = UNC_VF_INVALID;
-    }
-    for (unsigned int loop = 0;
-        loop < sizeof(val_vtep_if1->portmap.valid)/sizeof(uint8_t); ++loop ) {
-      if (UNC_VF_INVALID == val_vtep_if1->portmap.valid[loop]
-          && UNC_VF_VALID == val_vtep_if2->portmap.valid[loop])
-        val_vtep_if1->portmap.valid[loop] = UNC_VF_VALID_NO_VALUE;
-    }
-    if (val_vtep_if1->valid[UPLL_IDX_PORT_MAP_VTEPI] == UNC_VF_VALID
-        && val_vtep_if2->valid[UPLL_IDX_PORT_MAP_VTEPI] == UNC_VF_VALID) {
-      if (memcmp(&(val_vtep_if1->portmap), &(val_vtep_if2->portmap),
-            sizeof(val_port_map_t))) {
-        if (val_vtep_if1->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] ==
-            UNC_VF_VALID
-            && val_vtep_if2->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM]
-            == UNC_VF_VALID) {
-          if (!strcmp(reinterpret_cast<char *>
-              (val_vtep_if1->portmap.logical_port_id),
-              reinterpret_cast<char *>(val_vtep_if2->portmap.logical_port_id)))
-            val_vtep_if1->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] =
+bool VtepIfMoMgr::CompareValidValue(void *&val1, void *val2,
+                                    bool copy_to_running) {
+  UPLL_FUNC_TRACE;
+  bool invalid_attr = true;
+  val_vtep_if_t *val_vtep_if1 = reinterpret_cast<val_vtep_if_t *>(val1);
+  val_vtep_if_t *val_vtep_if2 = reinterpret_cast<val_vtep_if_t *>(val2);
+  for (unsigned int loop = 0;
+       loop < sizeof(val_vtep_if1->valid)/sizeof(uint8_t); ++loop ) {
+    if ( UNC_VF_INVALID == val_vtep_if1->valid[loop] &&
+        UNC_VF_VALID == val_vtep_if2->valid[loop])
+      val_vtep_if1->valid[loop] = UNC_VF_VALID_NO_VALUE;
+  }
+  if (UNC_VF_VALID == val_vtep_if1->valid[UPLL_IDX_DESC_VTEPI]
+      && UNC_VF_VALID == val_vtep_if2->valid[UPLL_IDX_DESC_VTEPI]) {
+    if (!strcmp(reinterpret_cast<char*>(val_vtep_if1->description),
+                reinterpret_cast<char*>(val_vtep_if2->description)))
+      val_vtep_if1->valid[UPLL_IDX_DESC_VTEPI] = UNC_VF_INVALID;
+  }
+  if (UNC_VF_INVALID != val_vtep_if1->valid[UPLL_IDX_ADMIN_ST_VTEPI]
+      && UNC_VF_INVALID != val_vtep_if2->valid[UPLL_IDX_ADMIN_ST_VTEPI]) {
+    if (val_vtep_if1->admin_status == val_vtep_if2->admin_status)
+      val_vtep_if1->valid[UPLL_IDX_ADMIN_ST_VTEPI] = UNC_VF_INVALID;
+  }
+  for (unsigned int loop = 0;
+       loop < sizeof(val_vtep_if1->portmap.valid)/sizeof(uint8_t); ++loop ) {
+    if (UNC_VF_INVALID == val_vtep_if1->portmap.valid[loop]
+        && UNC_VF_VALID == val_vtep_if2->portmap.valid[loop])
+      val_vtep_if1->portmap.valid[loop] = UNC_VF_VALID_NO_VALUE;
+  }
+  if (val_vtep_if1->valid[UPLL_IDX_PORT_MAP_VTEPI] == UNC_VF_VALID
+      && val_vtep_if2->valid[UPLL_IDX_PORT_MAP_VTEPI] == UNC_VF_VALID) {
+    if (memcmp(&(val_vtep_if1->portmap), &(val_vtep_if2->portmap),
+               sizeof(val_port_map_t))) {
+      if (val_vtep_if1->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] ==
+          UNC_VF_VALID
+          && val_vtep_if2->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM]
+          == UNC_VF_VALID) {
+        if (!strcmp(reinterpret_cast<char *>
+                    (val_vtep_if1->portmap.logical_port_id),
+                    reinterpret_cast<char *>
+                    (val_vtep_if2->portmap.logical_port_id)))
+          val_vtep_if1->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] =
               UNC_VF_INVALID;
-        }
-        if ((val_vtep_if1->portmap.valid[UPLL_IDX_VLAN_ID_PM] ==
-            val_vtep_if2->portmap.valid[UPLL_IDX_VLAN_ID_PM])
-            && val_vtep_if2->portmap.valid[UPLL_IDX_VLAN_ID_PM] !=
-               UNC_VF_INVALID) {
-          if (val_vtep_if1->portmap.vlan_id == val_vtep_if2->portmap.vlan_id)
-            val_vtep_if1->portmap.valid[UPLL_IDX_VLAN_ID_PM] =
-               (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
-        }
-        if ((val_vtep_if1->portmap.valid[UPLL_IDX_TAGGED_PM] ==
-            val_vtep_if2->portmap.valid[UPLL_IDX_TAGGED_PM])
-            && val_vtep_if2->portmap.valid[UPLL_IDX_TAGGED_PM] !=
-               UNC_VF_INVALID) {
-          if (val_vtep_if1->portmap.tagged == val_vtep_if2->portmap.tagged)
-            val_vtep_if1->portmap.valid[UPLL_IDX_TAGGED_PM] =
-               (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
-        }
-      } else {
-        val_vtep_if1->valid[UPLL_IDX_PORT_MAP_VTEPI] = UNC_VF_INVALID;
-        val_vtep_if1->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] =
-            UNC_VF_INVALID;
-        val_vtep_if1->portmap.valid[UPLL_IDX_VLAN_ID_PM] = UNC_VF_INVALID;
-        val_vtep_if1->portmap.valid[UPLL_IDX_TAGGED_PM] = UNC_VF_INVALID;
       }
+      if ((val_vtep_if1->portmap.valid[UPLL_IDX_VLAN_ID_PM] ==
+           val_vtep_if2->portmap.valid[UPLL_IDX_VLAN_ID_PM])
+          && val_vtep_if2->portmap.valid[UPLL_IDX_VLAN_ID_PM] !=
+          UNC_VF_INVALID) {
+        if (val_vtep_if1->portmap.vlan_id == val_vtep_if2->portmap.vlan_id)
+          val_vtep_if1->portmap.valid[UPLL_IDX_VLAN_ID_PM] =
+              (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+      }
+      if ((val_vtep_if1->portmap.valid[UPLL_IDX_TAGGED_PM] ==
+           val_vtep_if2->portmap.valid[UPLL_IDX_TAGGED_PM])
+          && val_vtep_if2->portmap.valid[UPLL_IDX_TAGGED_PM] !=
+          UNC_VF_INVALID) {
+        if (val_vtep_if1->portmap.tagged == val_vtep_if2->portmap.tagged)
+          val_vtep_if1->portmap.valid[UPLL_IDX_TAGGED_PM] =
+              (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+      }
+    } else {
+      val_vtep_if1->valid[UPLL_IDX_PORT_MAP_VTEPI] = UNC_VF_INVALID;
+      val_vtep_if1->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] =
+          UNC_VF_INVALID;
+      val_vtep_if1->portmap.valid[UPLL_IDX_VLAN_ID_PM] = UNC_VF_INVALID;
+      val_vtep_if1->portmap.valid[UPLL_IDX_TAGGED_PM] = UNC_VF_INVALID;
     }
-    if (!copy_to_running)
-      val_vtep_if1->valid[UPLL_IDX_DESC_VTEPI] = UNC_VF_INVALID;
-    for (unsigned int loop = 0;
-        loop < sizeof(val_vtep_if1->valid) / sizeof(uint8_t); ++loop) {
-      if ((UNC_VF_VALID == (uint8_t) val_vtep_if1->valid[loop]) ||
-          (UNC_VF_VALID_NO_VALUE == (uint8_t) val_vtep_if1->valid[loop])) {
-        if (loop == UPLL_IDX_PORT_MAP_VTEPI) {
-          for (unsigned int i = 0;
-            i < sizeof(val_vtep_if1->portmap.valid) / sizeof(uint8_t); ++i) {
-            if ((UNC_VF_VALID == (uint8_t) val_vtep_if1->portmap.valid[i]) ||
-                (UNC_VF_VALID_NO_VALUE ==
-                 (uint8_t) val_vtep_if1->portmap.valid[i])) {
-              invalid_attr = false;
-              break;
-            }
+  }
+  if (!copy_to_running)
+    val_vtep_if1->valid[UPLL_IDX_DESC_VTEPI] = UNC_VF_INVALID;
+  for (unsigned int loop = 0;
+       loop < sizeof(val_vtep_if1->valid) / sizeof(uint8_t); ++loop) {
+    if ((UNC_VF_VALID == (uint8_t) val_vtep_if1->valid[loop]) ||
+        (UNC_VF_VALID_NO_VALUE == (uint8_t) val_vtep_if1->valid[loop])) {
+      if (loop == UPLL_IDX_PORT_MAP_VTEPI) {
+        for (unsigned int i = 0;
+             i < sizeof(val_vtep_if1->portmap.valid) / sizeof(uint8_t); ++i) {
+          if ((UNC_VF_VALID == (uint8_t) val_vtep_if1->portmap.valid[i]) ||
+              (UNC_VF_VALID_NO_VALUE ==
+               (uint8_t) val_vtep_if1->portmap.valid[i])) {
+            invalid_attr = false;
+            break;
           }
-        } else {
-          invalid_attr = false;
         }
-        if (invalid_attr == false) break;
+      } else {
+        invalid_attr = false;
       }
+      if (invalid_attr == false) break;
     }
-    return invalid_attr;
   }
+  return invalid_attr;
+}
 
-  upll_rc_t VtepIfMoMgr::UpdateConfigStatus(ConfigKeyVal *vtepif_keyval,
-                                            unc_keytype_operation_t op,
-                                            uint32_t driver_result,
-                                            ConfigKeyVal *upd_key,
-                                            DalDmlIntf *dmi,
-                                            ConfigKeyVal *ctrlr_key) {
-    UPLL_FUNC_TRACE;
-    val_vtep_if_t *vtepif_val = static_cast<val_vtep_if_t *>
-                                           (GetVal(vtepif_keyval));
-    if (vtepif_val == NULL) return UPLL_RC_ERR_GENERIC;
-    unc_keytype_configstatus_t cs_status = (driver_result == UPLL_RC_SUCCESS)?
-                                            UNC_CS_APPLIED:UNC_CS_NOT_APPLIED;
-    UPLL_LOG_TRACE("DriverResult %d, "
-                   "ConfigStatus %d", driver_result, cs_status);
-    UPLL_LOG_TRACE("%s", (vtepif_keyval->ToStrAll()).c_str());
-    val_vtep_if_t *vtep_if_running = static_cast<val_vtep_if_t *>
-                                         (GetVal(upd_key));
-    if (op == UNC_OP_CREATE) {
-      vtepif_val->cs_row_status = cs_status;
-      val_db_vtep_if_st *vtep_db_valst = static_cast<val_db_vtep_if_st *>
+upll_rc_t VtepIfMoMgr::UpdateConfigStatus(ConfigKeyVal *vtepif_keyval,
+                                          unc_keytype_operation_t op,
+                                          uint32_t driver_result,
+                                          ConfigKeyVal *upd_key,
+                                          DalDmlIntf *dmi,
+                                          ConfigKeyVal *ctrlr_key) {
+  UPLL_FUNC_TRACE;
+  val_vtep_if_t *vtepif_val = static_cast<val_vtep_if_t *>
+      (GetVal(vtepif_keyval));
+  if (vtepif_val == NULL) return UPLL_RC_ERR_GENERIC;
+  unc_keytype_configstatus_t cs_status = (driver_result == UPLL_RC_SUCCESS)?
+      UNC_CS_APPLIED:UNC_CS_NOT_APPLIED;
+  UPLL_LOG_TRACE("DriverResult %d, "
+                 "ConfigStatus %d", driver_result, cs_status);
+  UPLL_LOG_TRACE("%s", (vtepif_keyval->ToStrAll()).c_str());
+  val_vtep_if_t *vtep_if_running = static_cast<val_vtep_if_t *>
+      (GetVal(upd_key));
+  if (op == UNC_OP_CREATE) {
+    vtepif_val->cs_row_status = cs_status;
+    val_db_vtep_if_st *vtep_db_valst = static_cast<val_db_vtep_if_st *>
         (ConfigKeyVal::Malloc(sizeof(val_db_vtep_if_st)));
-      if (vtep_db_valst == NULL) return UPLL_RC_ERR_GENERIC;
-      vtepif_keyval->AppendCfgVal(IpctSt::kIpcStValVtepIfSt, vtep_db_valst);
+    if (vtep_db_valst == NULL) return UPLL_RC_ERR_GENERIC;
+    vtepif_keyval->AppendCfgVal(IpctSt::kIpcStValVtepIfSt, vtep_db_valst);
 #if 0
-      upll_rc_t result_code = InitOperStatus<val_vtep_if_st, val_db_vtep_if_st>
-                                 (vtepif_keyval,
-                                  vtepif_val->valid[UPLL_IDX_ADMIN_ST_VTEPI],
-                                  vtepif_val->admin_status,
-                                  vtepif_val->valid[UPLL_IDX_PORT_MAP_VTEPI],
-                                  &vtepif_val->portmap);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("Error settiing oper status");
-        return UPLL_RC_ERR_GENERIC;
-      }
+    upll_rc_t result_code = InitOperStatus<val_vtep_if_st, val_db_vtep_if_st>
+        (vtepif_keyval,
+         vtepif_val->valid[UPLL_IDX_ADMIN_ST_VTEPI],
+         vtepif_val->admin_status,
+         vtepif_val->valid[UPLL_IDX_PORT_MAP_VTEPI],
+         &vtepif_val->portmap);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("Error settiing oper status");
+      return UPLL_RC_ERR_GENERIC;
+    }
 #else
-      val_vtep_if_st *vnif_st = &vtep_db_valst->vtep_if_val_st;
-      if (!vnif_st) {
-        UPLL_LOG_DEBUG("Returning error\n");
-        return UPLL_RC_ERR_GENERIC;
-      }
-      vnif_st->oper_status = UPLL_OPER_STATUS_UP;
-      vnif_st->valid[UPLL_IDX_IF_OPER_STATUS_VTEPIS] = UNC_VF_VALID;
-#endif
-      vtep_db_valst->down_count = 0;
-    } else if (op == UNC_OP_UPDATE) {
-      void *val = reinterpret_cast<void *>(vtepif_val);
-      CompareValidValue(val, GetVal(upd_key), true);
-      UPLL_LOG_TRACE("%s", (upd_key->ToStrAll()).c_str());
-      vtepif_val->cs_row_status =
-                  vtep_if_running->cs_row_status;
-    } else {
+    val_vtep_if_st *vnif_st = &vtep_db_valst->vtep_if_val_st;
+    if (!vnif_st) {
+      UPLL_LOG_DEBUG("Returning error\n");
       return UPLL_RC_ERR_GENERIC;
     }
-    for (unsigned int loop = 0; loop <
-        sizeof(vtepif_val->valid) / sizeof(vtepif_val->valid[0]);
-        ++loop) {
-      if ((UNC_VF_VALID == (uint8_t) vtepif_val->valid[loop])
-          || (UNC_VF_VALID_NO_VALUE == (uint8_t) vtepif_val->valid[loop])) {
-        // Description is set to APPLIED
-        if (loop == UPLL_IDX_DESC_VTEPI)
-          vtepif_val->cs_attr[loop] = UNC_CS_APPLIED;
-        else
-          vtepif_val->cs_attr[loop] = cs_status;
-      } else if ((UNC_VF_INVALID == vtepif_val->valid[loop]) &&
-               (UNC_OP_CREATE == op)) {
+    vnif_st->oper_status = UPLL_OPER_STATUS_UP;
+    vnif_st->valid[UPLL_IDX_IF_OPER_STATUS_VTEPIS] = UNC_VF_VALID;
+#endif
+    vtep_db_valst->down_count = 0;
+  } else if (op == UNC_OP_UPDATE) {
+    void *val = reinterpret_cast<void *>(vtepif_val);
+    CompareValidValue(val, GetVal(upd_key), true);
+    UPLL_LOG_TRACE("%s", (upd_key->ToStrAll()).c_str());
+    vtepif_val->cs_row_status =
+        vtep_if_running->cs_row_status;
+  } else {
+    return UPLL_RC_ERR_GENERIC;
+  }
+  for (unsigned int loop = 0; loop <
+       sizeof(vtepif_val->valid) / sizeof(vtepif_val->valid[0]);
+       ++loop) {
+    if ((UNC_VF_VALID == (uint8_t) vtepif_val->valid[loop])
+        || (UNC_VF_VALID_NO_VALUE == (uint8_t) vtepif_val->valid[loop])) {
+      // Description is set to APPLIED
+      if (loop == UPLL_IDX_DESC_VTEPI)
         vtepif_val->cs_attr[loop] = UNC_CS_APPLIED;
-      } else if ((UNC_VF_INVALID == vtepif_val->valid[loop]) &&
-             (UNC_OP_UPDATE == op)) {
-          vtepif_val->cs_attr[loop] =
-                     vtep_if_running->cs_attr[loop];
-      }
+      else
+        vtepif_val->cs_attr[loop] = cs_status;
+    } else if ((UNC_VF_INVALID == vtepif_val->valid[loop]) &&
+               (UNC_OP_CREATE == op)) {
+      vtepif_val->cs_attr[loop] = UNC_CS_APPLIED;
+    } else if ((UNC_VF_INVALID == vtepif_val->valid[loop]) &&
+               (UNC_OP_UPDATE == op)) {
+      vtepif_val->cs_attr[loop] =
+          vtep_if_running->cs_attr[loop];
     }
-    for (unsigned int loop = 0;
-         loop < sizeof(vtepif_val->portmap.valid)/
-                sizeof(vtepif_val->portmap.valid[0]); ++loop ) {
-      if ((UNC_VF_VALID == vtepif_val->portmap.valid[loop])
-       || (UNC_VF_VALID_NO_VALUE == vtepif_val->portmap.valid[loop]))
-         vtepif_val->portmap.cs_attr[loop] = cs_status;
-      else if ((UNC_VF_INVALID == vtepif_val->portmap.valid[loop]) &&
-               (UNC_OP_CREATE == op))
-        vtepif_val->portmap.cs_attr[loop] = UNC_CS_APPLIED;
-      else if ((UNC_VF_INVALID == vtepif_val->portmap.valid[loop]) &&
-               (UNC_OP_UPDATE == op))
-        vtepif_val->portmap.cs_attr[loop] =
-                   vtep_if_running->portmap.cs_attr[loop];
-      }
-    return UPLL_RC_SUCCESS;
   }
+  for (unsigned int loop = 0;
+       loop < sizeof(vtepif_val->portmap.valid)/
+       sizeof(vtepif_val->portmap.valid[0]); ++loop ) {
+    if ((UNC_VF_VALID == vtepif_val->portmap.valid[loop])
+        || (UNC_VF_VALID_NO_VALUE == vtepif_val->portmap.valid[loop]))
+      vtepif_val->portmap.cs_attr[loop] = cs_status;
+    else if ((UNC_VF_INVALID == vtepif_val->portmap.valid[loop]) &&
+             (UNC_OP_CREATE == op))
+      vtepif_val->portmap.cs_attr[loop] = UNC_CS_APPLIED;
+    else if ((UNC_VF_INVALID == vtepif_val->portmap.valid[loop]) &&
+             (UNC_OP_UPDATE == op))
+      vtepif_val->portmap.cs_attr[loop] =
+          vtep_if_running->portmap.cs_attr[loop];
+  }
+  return UPLL_RC_SUCCESS;
+}
 
-  upll_rc_t VtepIfMoMgr::UpdateAuditConfigStatus(
-      unc_keytype_configstatus_t cs_status,
-      uuc::UpdateCtrlrPhase phase,
-      ConfigKeyVal *&ckv_running) {
-    upll_rc_t result_code = UPLL_RC_SUCCESS;
-    val_vtep_if_t *val;
-    val = (ckv_running != NULL)?reinterpret_cast<val_vtep_if_t *>
-                                (GetVal(ckv_running)):NULL;
-    if (NULL == val) {
-      return UPLL_RC_ERR_GENERIC;
-    }
-    if (uuc::kUpllUcpCreate == phase )
-      val->cs_row_status = cs_status;
-    if ((uuc::kUpllUcpUpdate == phase) &&
-           (val->cs_row_status == UNC_CS_INVALID ||
-            val->cs_row_status == UNC_CS_NOT_APPLIED))
-      val->cs_row_status = cs_status;
-    for ( unsigned int loop = 0;
-        loop < sizeof(val->valid)/sizeof(uint8_t); ++loop ) {
-      if ((cs_status == UNC_CS_INVALID && UNC_VF_VALID == val->valid[loop]) ||
-          cs_status == UNC_CS_APPLIED)
-        val->cs_attr[loop] = cs_status;
-    }
-    for (unsigned int loop = 0;
-         loop < sizeof(val->portmap.valid) / sizeof(uint8_t); ++loop) {
-      if ((cs_status == UNC_CS_INVALID &&
-                        UNC_VF_VALID == val->portmap.valid[loop])
-           || cs_status == UNC_CS_APPLIED)
-        val->portmap.cs_attr[loop] = cs_status;
-    }
-    return result_code;
+upll_rc_t VtepIfMoMgr::UpdateAuditConfigStatus(
+    unc_keytype_configstatus_t cs_status,
+    uuc::UpdateCtrlrPhase phase,
+    ConfigKeyVal *&ckv_running,
+    DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
+  upll_rc_t result_code = UPLL_RC_SUCCESS;
+  val_vtep_if_t *val;
+  val = (ckv_running != NULL)?reinterpret_cast<val_vtep_if_t *>
+      (GetVal(ckv_running)):NULL;
+  if (NULL == val) {
+    return UPLL_RC_ERR_GENERIC;
+  }
+  if (uuc::kUpllUcpCreate == phase )
+    val->cs_row_status = cs_status;
+  if ((uuc::kUpllUcpUpdate == phase) &&
+      (val->cs_row_status == UNC_CS_INVALID ||
+       val->cs_row_status == UNC_CS_NOT_APPLIED))
+    val->cs_row_status = cs_status;
+  for ( unsigned int loop = 0;
+       loop < sizeof(val->valid)/sizeof(uint8_t); ++loop ) {
+    if ((cs_status == UNC_CS_INVALID && UNC_VF_VALID == val->valid[loop]) ||
+        cs_status == UNC_CS_APPLIED)
+      val->cs_attr[loop] = cs_status;
+  }
+  for (unsigned int loop = 0;
+       loop < sizeof(val->portmap.valid) / sizeof(uint8_t); ++loop) {
+    if ((cs_status == UNC_CS_INVALID &&
+         UNC_VF_VALID == val->portmap.valid[loop])
+        || cs_status == UNC_CS_APPLIED)
+      val->portmap.cs_attr[loop] = cs_status;
   }
+  return result_code;
+}
 
-  upll_rc_t VtepIfMoMgr::ValidateMessage(IpcReqRespHeader *req,
-      ConfigKeyVal *ikey) {
-    UPLL_FUNC_TRACE;
-    upll_rc_t ret_val = UPLL_RC_SUCCESS;
-    if (!ikey || !req || !(ikey->get_key())) {
-      UPLL_LOG_DEBUG("IpcReqRespHeader or ConfigKeyVal is Null");
-      return UPLL_RC_ERR_BAD_REQUEST;
-    }
-    unc_key_type_t keytype = ikey->get_key_type();
-    if (UNC_KT_VTEP_IF != keytype) {
-      UPLL_LOG_DEBUG("Invalid keytype. Keytype- %d", keytype);
-      return UPLL_RC_ERR_BAD_REQUEST;
-    }
-    if (ikey->get_st_num() != IpctSt::kIpcStKeyVtepIf) {
-      UPLL_LOG_DEBUG("Invalid struct received.Expected struct-kIpcStKeyVtepIf,"
-          "received struct -%s ", reinterpret_cast<const char *>
-          (IpctSt::GetIpcStdef(ikey->get_st_num())));
-      return UPLL_RC_ERR_BAD_REQUEST;
-    }
-    key_vtep_if_t *key_vtep_if = reinterpret_cast <key_vtep_if_t *>
+upll_rc_t VtepIfMoMgr::ValidateMessage(IpcReqRespHeader *req,
+                                       ConfigKeyVal *ikey) {
+  UPLL_FUNC_TRACE;
+  upll_rc_t ret_val = UPLL_RC_SUCCESS;
+  if (!ikey || !req || !(ikey->get_key())) {
+    UPLL_LOG_DEBUG("IpcReqRespHeader or ConfigKeyVal is Null");
+    return UPLL_RC_ERR_BAD_REQUEST;
+  }
+  unc_key_type_t keytype = ikey->get_key_type();
+  if (UNC_KT_VTEP_IF != keytype) {
+    UPLL_LOG_DEBUG("Invalid keytype. Keytype- %d", keytype);
+    return UPLL_RC_ERR_BAD_REQUEST;
+  }
+  if (ikey->get_st_num() != IpctSt::kIpcStKeyVtepIf) {
+    UPLL_LOG_DEBUG("Invalid struct received.Expected struct-kIpcStKeyVtepIf,"
+                   "received struct -%s ", reinterpret_cast<const char *>
+                   (IpctSt::GetIpcStdef(ikey->get_st_num())));
+    return UPLL_RC_ERR_BAD_REQUEST;
+  }
+  key_vtep_if_t *key_vtep_if = reinterpret_cast <key_vtep_if_t *>
       (ikey->get_key());
 
-    uint32_t dt_type = req->datatype;
-    uint32_t operation = req->operation;
-    uint32_t option1 = req->option1;
-    uint32_t option2 = req->option2;
+  uint32_t dt_type = req->datatype;
+  uint32_t operation = req->operation;
+  uint32_t option1 = req->option1;
+  uint32_t option2 = req->option2;
 
-    ret_val = ValidateVTepIfKey(key_vtep_if, operation);
-    if (ret_val != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Key struct Validation failed for VTEP_IF");
-      return UPLL_RC_ERR_CFG_SYNTAX;
-    } else {
-      if ((operation == UNC_OP_CREATE) && (dt_type == UPLL_DT_CANDIDATE)) {
-        val_vtep_if_t *val_vtep_if = NULL;
-        if ((ikey->get_cfg_val()) &&
-            ((ikey->get_cfg_val())->get_st_num() == IpctSt::kIpcStValVtepIf)) {
-          val_vtep_if = reinterpret_cast <val_vtep_if_t *>
+  ret_val = ValidateVTepIfKey(key_vtep_if, operation);
+  if (ret_val != UPLL_RC_SUCCESS) {
+    UPLL_LOG_DEBUG("Key struct Validation failed for VTEP_IF");
+    return UPLL_RC_ERR_CFG_SYNTAX;
+  } else {
+    if ((operation == UNC_OP_CREATE) && (dt_type == UPLL_DT_CANDIDATE)) {
+      val_vtep_if_t *val_vtep_if = NULL;
+      if ((ikey->get_cfg_val()) &&
+          ((ikey->get_cfg_val())->get_st_num() == IpctSt::kIpcStValVtepIf)) {
+        val_vtep_if = reinterpret_cast <val_vtep_if_t *>
             (ikey->get_cfg_val()->get_val());
+      }
+      if (val_vtep_if != NULL) {
+        ret_val = ValidateVTepIfValue(val_vtep_if, operation);
+        if (ret_val != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("Val struct Validation failed for CREATE op");
+          return UPLL_RC_ERR_CFG_SYNTAX;
         }
-        if (val_vtep_if != NULL) {
-          ret_val = ValidateVTepIfValue(val_vtep_if, operation);
-          if (ret_val != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("Val struct Validation failed for CREATE op");
-            return UPLL_RC_ERR_CFG_SYNTAX;
-          }
-          return UPLL_RC_SUCCESS;
-        } else {
-          UPLL_LOG_TRACE("Value structure is an optional for CREATE op");
-          return UPLL_RC_SUCCESS;
-        }
-      } else if ((operation == UNC_OP_UPDATE) &&
-                 (dt_type == UPLL_DT_CANDIDATE)) {
-        val_vtep_if_t *val_vtep_if = NULL;
-        if ((ikey->get_cfg_val()) &&
-            ((ikey->get_cfg_val())->get_st_num() == IpctSt::kIpcStValVtepIf)) {
-          val_vtep_if = reinterpret_cast <val_vtep_if_t *>
+        return UPLL_RC_SUCCESS;
+      } else {
+        UPLL_LOG_TRACE("Value structure is an optional for CREATE op");
+        return UPLL_RC_SUCCESS;
+      }
+    } else if ((operation == UNC_OP_UPDATE) &&
+               (dt_type == UPLL_DT_CANDIDATE)) {
+      val_vtep_if_t *val_vtep_if = NULL;
+      if ((ikey->get_cfg_val()) &&
+          ((ikey->get_cfg_val())->get_st_num() == IpctSt::kIpcStValVtepIf)) {
+        val_vtep_if = reinterpret_cast <val_vtep_if_t *>
             (ikey->get_cfg_val()->get_val());
+      }
+      if (val_vtep_if != NULL) {
+        ret_val = ValidateVTepIfValue(val_vtep_if, operation);
+        if (ret_val != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("Val struct Validation failed for UPDATE op");
+          return UPLL_RC_ERR_CFG_SYNTAX;
         }
-        if (val_vtep_if != NULL) {
-          ret_val = ValidateVTepIfValue(val_vtep_if, operation);
-          if (ret_val != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("Val struct Validation failed for UPDATE op");
-            return UPLL_RC_ERR_CFG_SYNTAX;
-          }
-          return UPLL_RC_SUCCESS;
-        } else {
-          UPLL_LOG_DEBUG("Value structure mandatory for UPDATE op");
-          return UPLL_RC_ERR_BAD_REQUEST;
-        }
-      } else if (((operation == UNC_OP_READ) ||
-            (operation == UNC_OP_READ_SIBLING) ||
-            (operation == UNC_OP_READ_SIBLING_BEGIN) ||
-            (operation == UNC_OP_READ_SIBLING_COUNT)) &&
-          ((dt_type == UPLL_DT_CANDIDATE) ||
-           (dt_type == UPLL_DT_RUNNING) ||
-           (dt_type == UPLL_DT_STARTUP) ||
-           (dt_type == UPLL_DT_STATE))) {
-        if (option1 == UNC_OPT1_NORMAL) {
-          if (option2 == UNC_OPT2_NONE) {
-            val_vtep_if_t *val_vtep_if = NULL;
-            if ((ikey->get_cfg_val()) &&
-                ((ikey->get_cfg_val())->get_st_num() ==
-                  IpctSt::kIpcStValVtepIf)) {
-              val_vtep_if = reinterpret_cast <val_vtep_if_t *>
+        return UPLL_RC_SUCCESS;
+      } else {
+        UPLL_LOG_DEBUG("Value structure mandatory for UPDATE op");
+        return UPLL_RC_ERR_BAD_REQUEST;
+      }
+    } else if (((operation == UNC_OP_READ) ||
+                (operation == UNC_OP_READ_SIBLING) ||
+                (operation == UNC_OP_READ_SIBLING_BEGIN) ||
+                (operation == UNC_OP_READ_SIBLING_COUNT)) &&
+               ((dt_type == UPLL_DT_CANDIDATE) ||
+                (dt_type == UPLL_DT_RUNNING) ||
+                (dt_type == UPLL_DT_STARTUP) ||
+                (dt_type == UPLL_DT_STATE))) {
+      if (option1 == UNC_OPT1_NORMAL) {
+        if (option2 == UNC_OPT2_NONE) {
+          val_vtep_if_t *val_vtep_if = NULL;
+          if ((ikey->get_cfg_val()) &&
+              ((ikey->get_cfg_val())->get_st_num() ==
+               IpctSt::kIpcStValVtepIf)) {
+            val_vtep_if = reinterpret_cast <val_vtep_if_t *>
                 (ikey->get_cfg_val()->get_val());
+          }
+          if (val_vtep_if != NULL) {
+            ret_val = ValidateVTepIfValue(val_vtep_if);
+            if (ret_val != UPLL_RC_SUCCESS) {
+              UPLL_LOG_DEBUG("Val struct Validation failed for READ op");
+              return UPLL_RC_ERR_CFG_SYNTAX;
             }
-            if (val_vtep_if != NULL) {
-              ret_val = ValidateVTepIfValue(val_vtep_if);
-              if (ret_val != UPLL_RC_SUCCESS) {
-                UPLL_LOG_DEBUG("Val struct Validation failed for READ op");
-                return UPLL_RC_ERR_CFG_SYNTAX;
-              }
-              return UPLL_RC_SUCCESS;
-            } else {
-              UPLL_LOG_TRACE("Value structure is an optional for READ op");
-              return UPLL_RC_SUCCESS;
-            }
-          } else if ((option2 == UNC_OPT2_NEIGHBOR) &&
-              (dt_type == UPLL_DT_STATE) &&
-              (operation == UNC_OP_READ)) {
-            val_vtn_neighbor_t *val_vtn_neighbor = NULL;
-            if ((ikey->get_cfg_val()) &&
-                ((ikey->get_cfg_val())->get_st_num() ==
-                 IpctSt::kIpcStValVtnNeighbor)) {
-              val_vtn_neighbor =
+            return UPLL_RC_SUCCESS;
+          } else {
+            UPLL_LOG_TRACE("Value structure is an optional for READ op");
+            return UPLL_RC_SUCCESS;
+          }
+        } else if ((option2 == UNC_OPT2_NEIGHBOR) &&
+                   (dt_type == UPLL_DT_STATE) &&
+                   (operation == UNC_OP_READ)) {
+          val_vtn_neighbor_t *val_vtn_neighbor = NULL;
+          if ((ikey->get_cfg_val()) &&
+              ((ikey->get_cfg_val())->get_st_num() ==
+               IpctSt::kIpcStValVtnNeighbor)) {
+            val_vtn_neighbor =
                 reinterpret_cast <val_vtn_neighbor_t *>
                 (ikey->get_cfg_val()->get_val());
+          }
+          if (val_vtn_neighbor != NULL) {
+            ret_val = ValidateVtnNeighborValue(val_vtn_neighbor);
+            if (ret_val != UPLL_RC_SUCCESS) {
+              UPLL_LOG_DEBUG("Val struct Validation failed for READ op");
+              return UPLL_RC_ERR_CFG_SYNTAX;
             }
-            if (val_vtn_neighbor != NULL) {
-              ret_val = ValidateVtnNeighborValue(val_vtn_neighbor);
-              if (ret_val != UPLL_RC_SUCCESS) {
-                UPLL_LOG_DEBUG("Val struct Validation failed for READ op");
-                return UPLL_RC_ERR_CFG_SYNTAX;
-              }
-              return UPLL_RC_SUCCESS;
-            } else {
-              UPLL_LOG_TRACE("value structure is an optional for READ op");
-              return UPLL_RC_SUCCESS;
-            }
+            return UPLL_RC_SUCCESS;
           } else {
-            UPLL_LOG_TRACE("option2 is not matching");
-            return UPLL_RC_ERR_INVALID_OPTION2;
+            UPLL_LOG_TRACE("value structure is an optional for READ op");
+            return UPLL_RC_SUCCESS;
           }
         } else {
-          UPLL_LOG_TRACE("option1 is not matching");
-          return UPLL_RC_ERR_INVALID_OPTION1;
+          UPLL_LOG_TRACE("option2 is not matching");
+          return UPLL_RC_ERR_INVALID_OPTION2;
         }
-      } else if ((operation == UNC_OP_DELETE) ||
-        (((operation == UNC_OP_READ_NEXT) ||
-        (operation == UNC_OP_READ_BULK)) &&
-        ((dt_type == UPLL_DT_CANDIDATE) ||
-          (dt_type == UPLL_DT_RUNNING) ||
-          (dt_type == UPLL_DT_STARTUP)))) {
-        UPLL_LOG_TRACE("Value structure is none for operation type:%d",
-                        operation);
-        return UPLL_RC_SUCCESS;
       } else {
-        UPLL_LOG_DEBUG("Invalid datatype(%d) or operation(%d)", dt_type,
-            operation);
-        return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
+        UPLL_LOG_TRACE("option1 is not matching");
+        return UPLL_RC_ERR_INVALID_OPTION1;
       }
+    } else if ((operation == UNC_OP_DELETE) ||
+               (((operation == UNC_OP_READ_NEXT) ||
+                 (operation == UNC_OP_READ_BULK)) &&
+                ((dt_type == UPLL_DT_CANDIDATE) ||
+                 (dt_type == UPLL_DT_RUNNING) ||
+                 (dt_type == UPLL_DT_STARTUP)))) {
+      UPLL_LOG_TRACE("Value structure is none for operation type:%d",
+                     operation);
+      return UPLL_RC_SUCCESS;
+    } else {
+      UPLL_LOG_DEBUG("Invalid datatype(%d) or operation(%d)", dt_type,
+                     operation);
+      return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
     }
-    return UPLL_RC_SUCCESS;
   }
-  upll_rc_t VtepIfMoMgr::ValidateVTepIfValue(val_vtep_if_t *val_vtep_if,
-      uint32_t operation) {
-    UPLL_FUNC_TRACE;
+  return UPLL_RC_SUCCESS;
+}
+upll_rc_t VtepIfMoMgr::ValidateVTepIfValue(val_vtep_if_t *val_vtep_if,
+                                           uint32_t operation) {
+  UPLL_FUNC_TRACE;
 
-    if (val_vtep_if->valid[UPLL_IDX_DESC_VTEPI] == UNC_VF_VALID) {
-      if (!ValidateDesc(val_vtep_if->description,
-          kMinLenDescription, kMaxLenDescription)) {
-        UPLL_LOG_DEBUG("Syntax check failed. desc -%s",
-                        val_vtep_if->description);
+  if (val_vtep_if->valid[UPLL_IDX_DESC_VTEPI] == UNC_VF_VALID) {
+    if (!ValidateDesc(val_vtep_if->description,
+                      kMinLenDescription, kMaxLenDescription)) {
+      UPLL_LOG_DEBUG("Syntax check failed. desc -%s",
+                     val_vtep_if->description);
+      return UPLL_RC_ERR_CFG_SYNTAX;
+    }
+  } else if ((val_vtep_if->valid[UPLL_IDX_DESC_VTEPI] ==
+              UNC_VF_VALID_NO_VALUE) &&
+             ((operation == UNC_OP_UPDATE) || (operation == UNC_OP_CREATE))) {
+    val_vtep_if->description[0] = '\0';
+  }
+  if (val_vtep_if->valid[UPLL_IDX_ADMIN_ST_VTEPI] == UNC_VF_VALID) {
+    if (!ValidateNumericRange(val_vtep_if->admin_status,
+                              (uint8_t) UPLL_ADMIN_ENABLE,
+                              (uint8_t) UPLL_ADMIN_DISABLE, true, true)) {
+      UPLL_LOG_DEBUG("Syntax check failed. admin_status- %d",
+                     val_vtep_if->admin_status);
+      return UPLL_RC_ERR_CFG_SYNTAX;
+    }
+  } else if ((val_vtep_if->valid[UPLL_IDX_ADMIN_ST_VTEPI] ==
+              UNC_VF_VALID_NO_VALUE)
+             && ((operation == UNC_OP_UPDATE) ||
+                 (operation == UNC_OP_CREATE))) {
+    val_vtep_if->admin_status = UPLL_ADMIN_ENABLE;
+  } else if ((val_vtep_if->valid[UPLL_IDX_ADMIN_ST_VTEPI] == UNC_VF_INVALID)
+             && (operation == UNC_OP_CREATE)) {
+    val_vtep_if->valid[UPLL_IDX_ADMIN_ST_VTEPI] = UNC_VF_VALID_NO_VALUE;
+    val_vtep_if->admin_status = UPLL_ADMIN_ENABLE;
+  }
+  if (val_vtep_if->valid[UPLL_IDX_PORT_MAP_VTEPI] == UNC_VF_VALID) {
+    if (val_vtep_if->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM]
+        == UNC_VF_VALID) {
+      if (!ValidateLogicalPortId(
+              reinterpret_cast<char *>(val_vtep_if->portmap.logical_port_id),
+              kMinLenLogicalPortId, kMaxLenLogicalPortId)) {
+        UPLL_LOG_DEBUG("Logical Port id syntax check failed."
+                       "Received Logical Port Id - %s",
+                       val_vtep_if->portmap.logical_port_id);
         return UPLL_RC_ERR_CFG_SYNTAX;
       }
-    } else if ((val_vtep_if->valid[UPLL_IDX_DESC_VTEPI] ==
-          UNC_VF_VALID_NO_VALUE) &&
-        ((operation == UNC_OP_UPDATE) || (operation == UNC_OP_CREATE))) {
-      val_vtep_if->description[0] = '\0';
-    }
-    if (val_vtep_if->valid[UPLL_IDX_ADMIN_ST_VTEPI] == UNC_VF_VALID) {
-      if (!ValidateNumericRange(val_vtep_if->admin_status,
-            (uint8_t) UPLL_ADMIN_ENABLE,
-            (uint8_t) UPLL_ADMIN_DISABLE, true, true)) {
-        UPLL_LOG_DEBUG("Syntax check failed. admin_status- %d",
-            val_vtep_if->admin_status);
+      if (toupper(val_vtep_if->portmap.logical_port_id[0]) == 'S'
+          && toupper(val_vtep_if->portmap.logical_port_id[1]) == 'W') {
+        UPLL_LOG_DEBUG("Invalid logical_port_id - %s",
+                       val_vtep_if->portmap.logical_port_id);
         return UPLL_RC_ERR_CFG_SYNTAX;
       }
-    } else if ((val_vtep_if->valid[UPLL_IDX_ADMIN_ST_VTEPI] ==
-          UNC_VF_VALID_NO_VALUE)
-        && ((operation == UNC_OP_UPDATE) || (operation == UNC_OP_CREATE))) {
-      val_vtep_if->admin_status = UPLL_ADMIN_ENABLE;
-    } else if ((val_vtep_if->valid[UPLL_IDX_ADMIN_ST_VTEPI] == UNC_VF_INVALID)
-                                             && (operation == UNC_OP_CREATE)) {
-        val_vtep_if->valid[UPLL_IDX_ADMIN_ST_VTEPI] = UNC_VF_VALID_NO_VALUE;
-        val_vtep_if->admin_status = UPLL_ADMIN_ENABLE;
+    } else if (val_vtep_if->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] ==
+               UNC_VF_VALID_NO_VALUE
+               && (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE)) {
+      uuu::upll_strncpy(val_vtep_if->portmap.logical_port_id, " ",
+                        kMaxLenLogicalPortId+1);
     }
-    if (val_vtep_if->valid[UPLL_IDX_PORT_MAP_VTEPI] == UNC_VF_VALID) {
-      if (val_vtep_if->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM]
-          == UNC_VF_VALID) {
-        if (!ValidateLogicalPortId(
-            reinterpret_cast<char *>(val_vtep_if->portmap.logical_port_id),
-            kMinLenLogicalPortId, kMaxLenLogicalPortId)) {
-          UPLL_LOG_DEBUG("Logical Port id syntax check failed."
-              "Received Logical Port Id - %s",
-              val_vtep_if->portmap.logical_port_id);
-          return UPLL_RC_ERR_CFG_SYNTAX;
-        }
-        if (toupper(val_vtep_if->portmap.logical_port_id[0]) == 'S'
-            && toupper(val_vtep_if->portmap.logical_port_id[1]) == 'W') {
-          UPLL_LOG_DEBUG("Invalid logical_port_id - %s",
-              val_vtep_if->portmap.logical_port_id);
-          return UPLL_RC_ERR_CFG_SYNTAX;
-        }
-      } else if (val_vtep_if->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] ==
-          UNC_VF_VALID_NO_VALUE
-          && (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE)) {
-        uuu::upll_strncpy(val_vtep_if->portmap.logical_port_id, " ",
-            kMaxLenLogicalPortId+1);
+    if (val_vtep_if->portmap.valid[UPLL_IDX_VLAN_ID_PM] == UNC_VF_VALID) {
+      if ((val_vtep_if->portmap.vlan_id != 0xFFFF) &&
+          !ValidateNumericRange(val_vtep_if->portmap.vlan_id,
+                                (uint16_t) kMinVlanId, (uint16_t) kMaxVlanId,
+                                true, true)) {
+        UPLL_LOG_DEBUG("Vlan Id Number check failed."
+                       "Received vlan_id - %d",
+                       val_vtep_if->portmap.vlan_id);
+        return UPLL_RC_ERR_CFG_SYNTAX;
       }
-      if (val_vtep_if->portmap.valid[UPLL_IDX_VLAN_ID_PM] == UNC_VF_VALID) {
-        if ((val_vtep_if->portmap.vlan_id != 0xFFFF) &&
-            !ValidateNumericRange(val_vtep_if->portmap.vlan_id,
-              (uint16_t) kMinVlanId, (uint16_t) kMaxVlanId,
-              true, true)) {
-          UPLL_LOG_DEBUG("Vlan Id Number check failed."
-              "Received vlan_id - %d",
-              val_vtep_if->portmap.vlan_id);
-          return UPLL_RC_ERR_CFG_SYNTAX;
-        }
-      } else if (val_vtep_if->portmap.valid[UPLL_IDX_VLAN_ID_PM]
-          == UNC_VF_VALID_NO_VALUE
-          && (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE)) {
-        val_vtep_if->portmap.vlan_id = 0;
+    } else if (val_vtep_if->portmap.valid[UPLL_IDX_VLAN_ID_PM]
+               == UNC_VF_VALID_NO_VALUE
+               && (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE)) {
+      val_vtep_if->portmap.vlan_id = 0;
+    }
+    if (val_vtep_if->portmap.valid[UPLL_IDX_TAGGED_PM] == UNC_VF_VALID) {
+      if (!ValidateNumericRange((uint8_t) val_vtep_if->portmap.tagged,
+                                (uint8_t) UPLL_VLAN_UNTAGGED,
+                                (uint8_t) UPLL_VLAN_TAGGED, true, true)) {
+        UPLL_LOG_DEBUG("Tagged Numeric range check failed."
+                       "Received Tag - %d",
+                       val_vtep_if->portmap.tagged);
+        return UPLL_RC_ERR_CFG_SYNTAX;
       }
-      if (val_vtep_if->portmap.valid[UPLL_IDX_TAGGED_PM] == UNC_VF_VALID) {
-        if (!ValidateNumericRange((uint8_t) val_vtep_if->portmap.tagged,
-              (uint8_t) UPLL_VLAN_UNTAGGED,
-              (uint8_t) UPLL_VLAN_TAGGED, true, true)) {
-          UPLL_LOG_DEBUG("Tagged Numeric range check failed."
-              "Received Tag - %d",
-              val_vtep_if->portmap.tagged);
-          return UPLL_RC_ERR_CFG_SYNTAX;
-        }
-      } else if (((val_vtep_if->portmap.valid[UPLL_IDX_TAGGED_PM]
-          == UNC_VF_VALID_NO_VALUE) ||
+    } else if (((val_vtep_if->portmap.valid[UPLL_IDX_TAGGED_PM]
+                 == UNC_VF_VALID_NO_VALUE) ||
                 (val_vtep_if->portmap.valid[UPLL_IDX_TAGGED_PM]
-          == UNC_VF_INVALID))
-          && (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE)) {
-        if (val_vtep_if->portmap.valid[UPLL_IDX_VLAN_ID_PM] == UNC_VF_VALID)
-          val_vtep_if->portmap.tagged = UPLL_VLAN_TAGGED;
-        else
-          val_vtep_if->portmap.tagged = UPLL_VLAN_UNTAGGED;
-        val_vtep_if->portmap.valid[UPLL_IDX_TAGGED_PM] = UNC_VF_VALID;
-      }
-    } else if ((val_vtep_if->valid[UPLL_IDX_PORT_MAP_VTEPI] ==
-                UNC_VF_VALID_NO_VALUE)
-        && (operation == UNC_OP_UPDATE || operation == UNC_OP_CREATE)) {
-      memset(&(val_vtep_if->portmap), 0, sizeof(val_vtep_if->portmap));
+                 == UNC_VF_INVALID))
+               && (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE)) {
+      if (val_vtep_if->portmap.valid[UPLL_IDX_VLAN_ID_PM] == UNC_VF_VALID)
+        val_vtep_if->portmap.tagged = UPLL_VLAN_TAGGED;
+      else
+        val_vtep_if->portmap.tagged = UPLL_VLAN_UNTAGGED;
+      val_vtep_if->portmap.valid[UPLL_IDX_TAGGED_PM] = UNC_VF_VALID;
     }
-    return UPLL_RC_SUCCESS;
+  } else if ((val_vtep_if->valid[UPLL_IDX_PORT_MAP_VTEPI] ==
+              UNC_VF_VALID_NO_VALUE)
+             && (operation == UNC_OP_UPDATE || operation == UNC_OP_CREATE)) {
+    memset(&(val_vtep_if->portmap), 0, sizeof(val_vtep_if->portmap));
   }
-  upll_rc_t VtepIfMoMgr::ValidateVTepIfKey(key_vtep_if_t *key_vtep_if,
-                         uint32_t operation) {
-    UPLL_FUNC_TRACE;
-    upll_rc_t ret_val = UPLL_RC_SUCCESS;
-    ret_val = ValidateKey(
-        reinterpret_cast<char *>(key_vtep_if->vtep_key.vtn_key.vtn_name),
-        kMinLenVtnName, kMaxLenVtnName);
+  return UPLL_RC_SUCCESS;
+}
+upll_rc_t VtepIfMoMgr::ValidateVTepIfKey(key_vtep_if_t *key_vtep_if,
+                                         uint32_t operation) {
+  UPLL_FUNC_TRACE;
+  upll_rc_t ret_val = UPLL_RC_SUCCESS;
+  ret_val = ValidateKey(
+      reinterpret_cast<char *>(key_vtep_if->vtep_key.vtn_key.vtn_name),
+      kMinLenVtnName, kMaxLenVtnName);
+  if (ret_val != UPLL_RC_SUCCESS) {
+    UPLL_LOG_INFO("Vtn Name syntax check failed."
+                  "Received VTN Name - %s",
+                  key_vtep_if->vtep_key.vtn_key.vtn_name);
+    return UPLL_RC_ERR_CFG_SYNTAX;
+  }
+  ret_val = ValidateKey(
+      reinterpret_cast<char *>(key_vtep_if->vtep_key.vtep_name),
+      kMinLenVnodeName, kMaxLenVnodeName);
+  if (ret_val != UPLL_RC_SUCCESS) {
+    UPLL_LOG_INFO("VTEP Name syntax check failed."
+                  "Received VTEP Name -%s",
+                  key_vtep_if->vtep_key.vtep_name);
+    return UPLL_RC_ERR_CFG_SYNTAX;
+  }
+  if ((operation != UNC_OP_READ_SIBLING_BEGIN) &&
+      (operation != UNC_OP_READ_SIBLING_COUNT)) {
+    ret_val = ValidateKey(reinterpret_cast<char *> (key_vtep_if->if_name),
+                          kMinLenInterfaceName, kMaxLenInterfaceName);
     if (ret_val != UPLL_RC_SUCCESS) {
-      UPLL_LOG_INFO("Vtn Name syntax check failed."
-                    "Received VTN Name - %s",
-                    key_vtep_if->vtep_key.vtn_key.vtn_name);
-      return UPLL_RC_ERR_CFG_SYNTAX;
+      UPLL_LOG_DEBUG("Syntax check failed.if_name(%s)", key_vtep_if->if_name);
+      return ret_val;
     }
+  } else {
+    UPLL_LOG_TRACE("Operation is %d", operation);
+    StringReset(key_vtep_if->if_name);
+  }
+  return UPLL_RC_SUCCESS;
+}
+
+upll_rc_t VtepIfMoMgr::ValidateVtnNeighborValue(
+    val_vtn_neighbor_t *val_vtn_neighbor) {
+  UPLL_FUNC_TRACE;
+  upll_rc_t ret_val = UPLL_RC_SUCCESS;
+
+  if (val_vtn_neighbor->valid[UPLL_IDX_CONN_VNODE_NAME_VN] == UNC_VF_VALID) {
     ret_val = ValidateKey(
-        reinterpret_cast<char *>(key_vtep_if->vtep_key.vtep_name),
+        reinterpret_cast<char *>(val_vtn_neighbor->connected_vnode_name),
         kMinLenVnodeName, kMaxLenVnodeName);
     if (ret_val != UPLL_RC_SUCCESS) {
-      UPLL_LOG_INFO("VTEP Name syntax check failed."
-                  "Received VTEP Name -%s",
-                  key_vtep_if->vtep_key.vtep_name);
+      UPLL_LOG_DEBUG("Syntax check failed.conn_vnode_name-(%s)",
+                     val_vtn_neighbor->connected_vnode_name);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
-    if ((operation != UNC_OP_READ_SIBLING_BEGIN) &&
-        (operation != UNC_OP_READ_SIBLING_COUNT)) {
-      ret_val = ValidateKey(reinterpret_cast<char *> (key_vtep_if->if_name),
-          kMinLenInterfaceName, kMaxLenInterfaceName);
-      if (ret_val != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("Syntax check failed.if_name(%s)", key_vtep_if->if_name);
-        return ret_val;
-      }
-    } else {
-      UPLL_LOG_TRACE("Operation is %d", operation);
-      StringReset(key_vtep_if->if_name);
-    }
-    return UPLL_RC_SUCCESS;
   }
-
-  upll_rc_t VtepIfMoMgr::ValidateVtnNeighborValue(
-      val_vtn_neighbor_t *val_vtn_neighbor) {
-    UPLL_FUNC_TRACE;
-    upll_rc_t ret_val = UPLL_RC_SUCCESS;
-
-    if (val_vtn_neighbor->valid[UPLL_IDX_CONN_VNODE_NAME_VN] == UNC_VF_VALID) {
-      ret_val = ValidateKey(
-          reinterpret_cast<char *>(val_vtn_neighbor->connected_vnode_name),
-          kMinLenVnodeName, kMaxLenVnodeName);
-      if (ret_val != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("Syntax check failed.conn_vnode_name-(%s)",
-            val_vtn_neighbor->connected_vnode_name);
-        return UPLL_RC_ERR_CFG_SYNTAX;
-      }
-    }
-    if (val_vtn_neighbor->valid[UPLL_IDX_CONN_VNODE_IF_NAME_VN]
-        == UNC_VF_VALID) {
-      ret_val = ValidateKey(
-          reinterpret_cast<char *>(val_vtn_neighbor->connected_if_name),
-          kMinLenInterfaceName, kMaxLenInterfaceName);
-      if (ret_val != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("Syntax check failed. connected_if_name-%s",
-            val_vtn_neighbor->connected_if_name);
-        return UPLL_RC_ERR_CFG_SYNTAX;
-      }
+  if (val_vtn_neighbor->valid[UPLL_IDX_CONN_VNODE_IF_NAME_VN]
+      == UNC_VF_VALID) {
+    ret_val = ValidateKey(
+        reinterpret_cast<char *>(val_vtn_neighbor->connected_if_name),
+        kMinLenInterfaceName, kMaxLenInterfaceName);
+    if (ret_val != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("Syntax check failed. connected_if_name-%s",
+                     val_vtn_neighbor->connected_if_name);
+      return UPLL_RC_ERR_CFG_SYNTAX;
     }
-    if (val_vtn_neighbor->valid[UPLL_IDX_CONN_VLINK_NAME_VN] == UNC_VF_VALID) {
-      ret_val = ValidateKey(
-          reinterpret_cast<char *>(val_vtn_neighbor->connected_vlink_name),
-          kMinLenVlinkName, kMaxLenVlinkName);
-      if (ret_val != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("Syntax check failed.connected_vlink_name=%s",
-            val_vtn_neighbor->connected_vlink_name);
-        return UPLL_RC_ERR_CFG_SYNTAX;
-      }
+  }
+  if (val_vtn_neighbor->valid[UPLL_IDX_CONN_VLINK_NAME_VN] == UNC_VF_VALID) {
+    ret_val = ValidateKey(
+        reinterpret_cast<char *>(val_vtn_neighbor->connected_vlink_name),
+        kMinLenVlinkName, kMaxLenVlinkName);
+    if (ret_val != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("Syntax check failed.connected_vlink_name=%s",
+                     val_vtn_neighbor->connected_vlink_name);
+      return UPLL_RC_ERR_CFG_SYNTAX;
     }
-    return UPLL_RC_SUCCESS;
   }
-  upll_rc_t VtepIfMoMgr::ValVTepIfAttributeSupportCheck(
-      val_vtep_if_t *val_vtep_if,
-      const uint8_t* attrs, unc_keytype_operation_t operation) {
-    UPLL_FUNC_TRACE;
-    if ((val_vtep_if->valid[UPLL_IDX_DESC_VTEPI] == UNC_VF_VALID)
-        || (val_vtep_if->valid[UPLL_IDX_DESC_VTEPI] == UNC_VF_VALID_NO_VALUE)) {
-      if (attrs[unc::capa::vtep_if::kCapDesc] == 0) {
-        val_vtep_if->valid[UPLL_IDX_DESC_VTEPI] = UNC_VF_INVALID;
-        if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
-          UPLL_LOG_DEBUG("Attribute Desc not supported in pfc controller");
-          return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
-        }
+  return UPLL_RC_SUCCESS;
+}
+upll_rc_t VtepIfMoMgr::ValVTepIfAttributeSupportCheck(
+    val_vtep_if_t *val_vtep_if,
+    const uint8_t* attrs, unc_keytype_operation_t operation) {
+  UPLL_FUNC_TRACE;
+  if ((val_vtep_if->valid[UPLL_IDX_DESC_VTEPI] == UNC_VF_VALID)
+      || (val_vtep_if->valid[UPLL_IDX_DESC_VTEPI] == UNC_VF_VALID_NO_VALUE)) {
+    if (attrs[unc::capa::vtep_if::kCapDesc] == 0) {
+      val_vtep_if->valid[UPLL_IDX_DESC_VTEPI] = UNC_VF_INVALID;
+      if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
+        UPLL_LOG_DEBUG("Attribute Desc not supported in pfc controller");
+        return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
       }
     }
+  }
 
-    if ((val_vtep_if->valid[UPLL_IDX_ADMIN_ST_VTEPI] == UNC_VF_VALID)
-        || (val_vtep_if->valid[UPLL_IDX_ADMIN_ST_VTEPI]
+  if ((val_vtep_if->valid[UPLL_IDX_ADMIN_ST_VTEPI] == UNC_VF_VALID)
+      || (val_vtep_if->valid[UPLL_IDX_ADMIN_ST_VTEPI]
           == UNC_VF_VALID_NO_VALUE)) {
-      if (attrs[unc::capa::vtep_if::kCapAdminStatus] == 0) {
-        val_vtep_if->valid[UPLL_IDX_ADMIN_ST_VTEPI] = UNC_VF_INVALID;
-        if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
-          UPLL_LOG_DEBUG("Attribute AdminStatus not supported in controller");
-          return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
-        }
+    if (attrs[unc::capa::vtep_if::kCapAdminStatus] == 0) {
+      val_vtep_if->valid[UPLL_IDX_ADMIN_ST_VTEPI] = UNC_VF_INVALID;
+      if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
+        UPLL_LOG_DEBUG("Attribute AdminStatus not supported in controller");
+        return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
       }
     }
-    if ((val_vtep_if->valid[UPLL_IDX_PORT_MAP_VTEPI] == UNC_VF_VALID)
-        || (val_vtep_if->valid[UPLL_IDX_PORT_MAP_VTEPI] ==
+  }
+  if ((val_vtep_if->valid[UPLL_IDX_PORT_MAP_VTEPI] == UNC_VF_VALID)
+      || (val_vtep_if->valid[UPLL_IDX_PORT_MAP_VTEPI] ==
           UNC_VF_VALID_NO_VALUE)) {
-      if ((val_vtep_if->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] ==
-            UNC_VF_VALID)
-          || (val_vtep_if->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM]
+    if ((val_vtep_if->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] ==
+         UNC_VF_VALID)
+        || (val_vtep_if->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM]
             == UNC_VF_VALID_NO_VALUE)) {
-        if (attrs[unc::capa::vtep_if::kCapLogicalPortId] == 0) {
-          val_vtep_if->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] =
+      if (attrs[unc::capa::vtep_if::kCapLogicalPortId] == 0) {
+        val_vtep_if->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] =
             UNC_VF_INVALID;
-          if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
-            UPLL_LOG_DEBUG("portmap.swich_id attr is not supported by ctrlr ");
-            return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
-          }
+        if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
+          UPLL_LOG_DEBUG("portmap.swich_id attr is not supported by ctrlr ");
+          return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
         }
       }
-      if ((val_vtep_if->portmap.valid[UPLL_IDX_VLAN_ID_PM] == UNC_VF_VALID)
-          || (val_vtep_if->portmap.valid[UPLL_IDX_VLAN_ID_PM]
+    }
+    if ((val_vtep_if->portmap.valid[UPLL_IDX_VLAN_ID_PM] == UNC_VF_VALID)
+        || (val_vtep_if->portmap.valid[UPLL_IDX_VLAN_ID_PM]
             == UNC_VF_VALID_NO_VALUE)) {
-        if (attrs[unc::capa::vtep_if::kCapVlanId] == 0) {
-          val_vtep_if->portmap.valid[UPLL_IDX_VLAN_ID_PM] =
+      if (attrs[unc::capa::vtep_if::kCapVlanId] == 0) {
+        val_vtep_if->portmap.valid[UPLL_IDX_VLAN_ID_PM] =
             UNC_VF_INVALID;
-          if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
-            UPLL_LOG_DEBUG("portmap.vlanid attr is not supported by ctrlr ");
-            return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
-          }
+        if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
+          UPLL_LOG_DEBUG("portmap.vlanid attr is not supported by ctrlr ");
+          return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
         }
       }
-      if ((val_vtep_if->portmap.valid[UPLL_IDX_TAGGED_PM] == UNC_VF_VALID)
-          || (val_vtep_if->portmap.valid[UPLL_IDX_TAGGED_PM]
+    }
+    if ((val_vtep_if->portmap.valid[UPLL_IDX_TAGGED_PM] == UNC_VF_VALID)
+        || (val_vtep_if->portmap.valid[UPLL_IDX_TAGGED_PM]
             == UNC_VF_VALID_NO_VALUE)) {
-        if (attrs[unc::capa::vtep_if::kCapTagged] == 0) {
-          val_vtep_if->portmap.valid[UPLL_IDX_TAGGED_PM] = UNC_VF_INVALID;
-          if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
-            UPLL_LOG_DEBUG("portmap.Tagged attr is not supported by ctrlr ");
-            return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
-          }
+      if (attrs[unc::capa::vtep_if::kCapTagged] == 0) {
+        val_vtep_if->portmap.valid[UPLL_IDX_TAGGED_PM] = UNC_VF_INVALID;
+        if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
+          UPLL_LOG_DEBUG("portmap.Tagged attr is not supported by ctrlr ");
+          return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
         }
       }
     }
-    return UPLL_RC_SUCCESS;
   }
+  return UPLL_RC_SUCCESS;
+}
 
-  upll_rc_t VtepIfMoMgr::ValidateCapability(IpcReqRespHeader *req,
-      ConfigKeyVal *ikey, const char * ctrlr_name) {
-    UPLL_FUNC_TRACE;
-    if (!ikey || !req) {
-      UPLL_LOG_DEBUG("ConfigKeyVal / IpcReqRespHeader is Null");
-      return UPLL_RC_ERR_GENERIC;
-    }
+upll_rc_t VtepIfMoMgr::ValidateCapability(IpcReqRespHeader *req,
+                                          ConfigKeyVal *ikey,
+                                          const char * ctrlr_name) {
+  UPLL_FUNC_TRACE;
+  if (!ikey || !req) {
+    UPLL_LOG_DEBUG("ConfigKeyVal / IpcReqRespHeader is Null");
+    return UPLL_RC_ERR_GENERIC;
+  }
 
-    if (!ctrlr_name) {
-      ctrlr_name = reinterpret_cast<char*>((reinterpret_cast<key_user_data_t *>
-                    (ikey->get_user_data()))->ctrlr_id);
-      if (!ctrlr_name || !strlen(ctrlr_name)) {
-        UPLL_LOG_DEBUG("Controller Name is NULL");
-        return UPLL_RC_ERR_GENERIC;
-      }
+  if (!ctrlr_name) {
+    ctrlr_name = reinterpret_cast<char*>((reinterpret_cast<key_user_data_t *>
+                                          (ikey->get_user_data()))->ctrlr_id);
+    if (!ctrlr_name || !strlen(ctrlr_name)) {
+      UPLL_LOG_DEBUG("Controller Name is NULL");
+      return UPLL_RC_ERR_GENERIC;
     }
+  }
 
-    UPLL_LOG_TRACE("ctrlr_name(%s), operation : (%d)",
-        ctrlr_name, req->operation);
+  UPLL_LOG_TRACE("ctrlr_name(%s), operation : (%d)",
+                 ctrlr_name, req->operation);
 
-    bool result_code = false;
-    uint32_t max_instance_count = 0;
-    uint32_t max_attrs = 0;
-    const uint8_t *attrs = NULL;
-    switch (req->operation) {
-      case UNC_OP_CREATE:
-        result_code = GetCreateCapability(ctrlr_name,
-            ikey->get_key_type(), &max_instance_count, &max_attrs, &attrs);
-        if (result_code && (max_instance_count != 0) &&
-            cur_instance_count >= max_instance_count) {
-          UPLL_LOG_DEBUG("[%s:%d:%s Instance count %d exceeds %d", __FILE__,
-              __LINE__, __FUNCTION__, cur_instance_count, max_instance_count);
-          return UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
-        }
-        break;
+  bool result_code = false;
+  uint32_t max_instance_count = 0;
+  uint32_t max_attrs = 0;
+  const uint8_t *attrs = NULL;
+  switch (req->operation) {
+    case UNC_OP_CREATE:
+      result_code = GetCreateCapability(ctrlr_name,
+                                        ikey->get_key_type(),
+                                        &max_instance_count,
+                                        &max_attrs,
+                                        &attrs);
+      break;
 
-      case UNC_OP_UPDATE:
-        result_code = GetUpdateCapability(ctrlr_name,
-            ikey->get_key_type(), &max_attrs, &attrs);
-        break;
+    case UNC_OP_UPDATE:
+      result_code = GetUpdateCapability(ctrlr_name,
+                                        ikey->get_key_type(),
+                                        &max_attrs, &attrs);
+      break;
 
-      case UNC_OP_READ:
-      case UNC_OP_READ_SIBLING:
-      case UNC_OP_READ_SIBLING_BEGIN:
-      case UNC_OP_READ_SIBLING_COUNT:
-        result_code = GetReadCapability(ctrlr_name,
-            ikey->get_key_type(), &max_attrs, &attrs);
-        break;
+    case UNC_OP_READ:
+    case UNC_OP_READ_SIBLING:
+    case UNC_OP_READ_SIBLING_BEGIN:
+    case UNC_OP_READ_SIBLING_COUNT:
+      result_code = GetReadCapability(ctrlr_name,
+                                      ikey->get_key_type(),
+                                      &max_attrs,
+                                      &attrs);
+      break;
 
-      default:
-        UPLL_LOG_DEBUG("Invalid operation");
-        break;
-    }
-    if (!result_code) {
-      UPLL_LOG_DEBUG("keytype(%d) is not supported by controller(%s) "
-          "for operation(%d)",
-          ikey->get_key_type(), ctrlr_name, req->operation);
-      return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
-    }
-    val_vtep_if_t *val_vtep_if = NULL;
-    if ((ikey->get_cfg_val())
-        && ((ikey->get_cfg_val())->get_st_num() == IpctSt::kIpcStValVtepIf)) {
-      val_vtep_if =
+    default:
+      UPLL_LOG_DEBUG("Invalid operation");
+      break;
+  }
+  if (!result_code) {
+    UPLL_LOG_DEBUG("keytype(%d) is not supported by controller(%s) "
+                   "for operation(%d)",
+                   ikey->get_key_type(), ctrlr_name, req->operation);
+    return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
+  }
+  val_vtep_if_t *val_vtep_if = NULL;
+  if ((ikey->get_cfg_val())
+      && ((ikey->get_cfg_val())->get_st_num() == IpctSt::kIpcStValVtepIf)) {
+    val_vtep_if =
         reinterpret_cast<val_vtep_if_t *> (ikey->get_cfg_val()->get_val());
+  }
+  if (val_vtep_if) {
+    if (max_attrs > 0) {
+      return ValVTepIfAttributeSupportCheck(val_vtep_if, attrs,
+                                            req->operation);
+    } else {
+      UPLL_LOG_DEBUG("Attribute list is empty for operation %d",
+                     req->operation);
+      return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
     }
-    if (val_vtep_if) {
-      if (max_attrs > 0) {
-        return ValVTepIfAttributeSupportCheck(val_vtep_if, attrs,
-                                                           req->operation);
-      } else {
-        UPLL_LOG_DEBUG("Attribute list is empty for operation %d",
-                                                            req->operation);
-        return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
-      }
-    }
-    return UPLL_RC_SUCCESS;
   }
+  return UPLL_RC_SUCCESS;
+}
 
-  /*
-     upll_rc_t VtepIfMoMgr::CopyToConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey) {
+/*
+   upll_rc_t VtepIfMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
+   ConfigKeyVal *ikey) {
 
-     if ( !ikey || !(ikey->get_key()) )
-     return UPLL_RC_ERR_GENERIC;
+   if ( !ikey || !(ikey->get_key()) )
+   return UPLL_RC_ERR_GENERIC;
 
-     upll_rc_t result_code = UPLL_RC_SUCCESS;
+   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
-     key_rename_vnode_info *key_rename = (key_rename_vnode_info *)ikey->get_key();
-     key_vtep_if_t *vtep_key = (key_vtep_if_t *) malloc ( sizeof (key_vtep_if_t));
-     if (!vtep_key)
-     return UPLL_RC_ERR_GENERIC;
-     if (!strlen ((char *)key_rename->old_unc_vtn_name))
-     return UPLL_RC_ERR_GENERIC;
-     strcpy ((char *)vtep_key->vtep_key.vtn_key.vtn_name, (char *)key_rename->old_unc_vtn_name);
+   key_rename_vnode_info *key_rename = (key_rename_vnode_info *)ikey->get_key();
+   key_vtep_if_t *vtep_key = (key_vtep_if_t *) malloc ( sizeof (key_vtep_if_t));
+   if (!vtep_key)
+   return UPLL_RC_ERR_GENERIC;
+   if (!strlen ((char *)key_rename->old_unc_vtn_name))
+   return UPLL_RC_ERR_GENERIC;
+   strcpy ((char *)vtep_key->vtep_key.vtn_key.vtn_name,
+   (char *)key_rename->old_unc_vtn_name);
 
-     okey = new ConfigKeyVal (UNC_KT_VTEP_IF, IpctSt::kIpcStKeyVtepIf, vtep_key, NULL);
-     if (!okey) {
-     FREE_IF_NOT_NULL(vtep_key);
-     return UPLL_RC_ERR_GENERIC;
-     }
-     return result_code;
-     }
-     */
+   okey = new ConfigKeyVal (UNC_KT_VTEP_IF, IpctSt::kIpcStKeyVtepIf,
+   vtep_key, NULL);
+   if (!okey) {
+   FREE_IF_NOT_NULL(vtep_key);
+   return UPLL_RC_ERR_GENERIC;
+   }
+   return result_code;
+   }
+   */
 
-  upll_rc_t VtepIfMoMgr::IsReferenced(ConfigKeyVal *ikey,
-      upll_keytype_datatype_t dt_type, DalDmlIntf *dmi) {
-    upll_rc_t result_code = UPLL_RC_SUCCESS;
-    ConfigKeyVal *okey = NULL;
-    if (!ikey || !(ikey->get_key()) ||!dmi )
-      return UPLL_RC_ERR_GENERIC;
-    GetChildConfigKey(okey, ikey);
-    DbSubOp dbop = {kOpReadMultiple, kOpMatchNone, kOpInOutFlag};
-    result_code = ReadConfigDB(okey, dt_type, UNC_OP_READ,
-        dbop, dmi, MAINTBL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      DELETE_IF_NOT_NULL(okey);
-      return result_code;
-    }
-    ConfigKeyVal *tkey = okey;
-    while (okey) {
-      uint8_t vlink_flag = 0;
-      GET_USER_DATA_FLAGS(okey, vlink_flag);
-      if (vlink_flag & VIF_TYPE)
-        return UPLL_RC_ERR_CFG_SEMANTIC;
-      okey = okey->get_next_cfg_key_val();
-    }
-    DELETE_IF_NOT_NULL(tkey);
+upll_rc_t VtepIfMoMgr::IsReferenced(ConfigKeyVal *ikey,
+                                    upll_keytype_datatype_t dt_type,
+                                    DalDmlIntf *dmi) {
+  upll_rc_t result_code = UPLL_RC_SUCCESS;
+  ConfigKeyVal *okey = NULL;
+  if (!ikey || !(ikey->get_key()) ||!dmi )
+    return UPLL_RC_ERR_GENERIC;
+  GetChildConfigKey(okey, ikey);
+  DbSubOp dbop = {kOpReadMultiple, kOpMatchNone, kOpInOutFlag};
+  result_code = ReadConfigDB(okey, dt_type, UNC_OP_READ,
+                             dbop, dmi, MAINTBL);
+  if (result_code != UPLL_RC_SUCCESS) {
+    DELETE_IF_NOT_NULL(okey);
     return result_code;
   }
+  ConfigKeyVal *tkey = okey;
+  while (okey) {
+    uint8_t vlink_flag = 0;
+    GET_USER_DATA_FLAGS(okey, vlink_flag);
+    if (vlink_flag & VIF_TYPE)
+      return UPLL_RC_ERR_CFG_SEMANTIC;
+    okey = okey->get_next_cfg_key_val();
+  }
+  DELETE_IF_NOT_NULL(tkey);
+  return result_code;
+}
 
-}  // namespace vtn
+}  // namespace kt_momgr
 }  // namespace upll
 }  // namespace unc
index 7aa38b2b386d462aea6481e8d0fc49a9a498d2bb..1fa75d5567c6270ba204c00982de276ce5fe3297 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -28,54 +28,54 @@ enum VtepIfMoMgrTables {
 class VtepIfMoMgr : public VnodeChildMoMgr {
  private:
   static BindInfo       vtep_if_bind_info[];
-  /* @brief      Returns admin and portmap information if portmap is 
-   *             valid. Else returns NULL for portmap 
-   *              
+  /* @brief      Returns admin and portmap information if portmap is
+   *             valid. Else returns NULL for portmap
+   *
    * @param[in]   ikey     Pointer to ConfigKeyVal
-   * @param[out]  valid_pm portmap is valid 
+   * @param[out]  valid_pm portmap is valid
    * @param[out]  pm       pointer to portmap informtation if valid_pm
-   * @param[out]  valid_admin admin_status valid value 
+   * @param[out]  valid_admin admin_status valid value
    * @param[out]  admin_status  value of admin_status
    *
    * @retval  UPLL_RC_SUCCESS      Completed successfully.
    * @retval  UPLL_RC_ERR_GENERIC  Generic failure.
-   * 
-   **/ 
+   *
+   **/
   virtual upll_rc_t GetPortMap(ConfigKeyVal *ikey, uint8_t &valid_pm,
-                                val_port_map_t *&pm,
-                                uint8_t &valid_admin,
-                                uint8_t &admin_status) {
-     UPLL_FUNC_TRACE;
-     if (ikey == NULL) return UPLL_RC_ERR_GENERIC;
-     val_vtep_if *ifval = reinterpret_cast<val_vtep_if *>
-                                                (GetVal(ikey));
-     if (!ifval) {
-       UPLL_LOG_DEBUG("Invalid param");
-       return UPLL_RC_ERR_GENERIC;
-     }
-     valid_pm = ifval->valid[UPLL_IDX_PORT_MAP_VTEPI];
-     if (valid_pm == UNC_VF_VALID)
-       pm = &ifval->portmap;
-     else
-       pm = NULL;
-     valid_admin = ifval->valid[UPLL_IDX_ADMIN_ST_VTEPI];
-     admin_status = ifval->admin_status;
-     return UPLL_RC_SUCCESS;
+                               val_port_map_t *&pm,
+                               uint8_t &valid_admin,
+                               uint8_t &admin_status) {
+    UPLL_FUNC_TRACE;
+    if (ikey == NULL) return UPLL_RC_ERR_GENERIC;
+    val_vtep_if *ifval = reinterpret_cast<val_vtep_if *>
+        (GetVal(ikey));
+    if (!ifval) {
+      UPLL_LOG_DEBUG("Invalid param");
+      return UPLL_RC_ERR_GENERIC;
+    }
+    valid_pm = ifval->valid[UPLL_IDX_PORT_MAP_VTEPI];
+    if (valid_pm == UNC_VF_VALID)
+      pm = &ifval->portmap;
+    else
+      pm = NULL;
+    valid_admin = ifval->valid[UPLL_IDX_ADMIN_ST_VTEPI];
+    admin_status = ifval->admin_status;
+    return UPLL_RC_SUCCESS;
   }
   /**
-   * @brief  Gets the valid array position of the variable in the value 
-   *         structure from the table in the specified configuration  
+   * @brief  Gets the valid array position of the variable in the value
+   *         structure from the table in the specified configuration
    *
-   * @param[in]     val      pointer to the value structure 
+   * @param[in]     val      pointer to the value structure
    * @param[in]     indx     database index for the variable
-   * @param[out]    valid    position of the variable in the valid array - 
+   * @param[out]    valid    position of the variable in the valid array -
    *                          NULL if valid does not exist.
    * @param[in]     dt_type  specifies the configuration
-   * @param[in]     tbl      specifies the table containing the given value 
+   * @param[in]     tbl      specifies the table containing the given value
    *
    **/
   upll_rc_t GetValid(void *val,  uint64_t indx, uint8_t *&valid,
-           upll_keytype_datatype_t dt_type, MoMgrTables tbl);
+                     upll_keytype_datatype_t dt_type, MoMgrTables tbl);
   /**
    * @brief  Filters the attributes which need not be sent to controller
    *
@@ -86,11 +86,11 @@ class VtepIfMoMgr : public VnodeChildMoMgr {
    *
    **/
   bool FilterAttributes(void *&val1, void *val2, bool copy_to_running,
-                                unc_keytype_operation_t op);
-   /**
+                        unc_keytype_operation_t op);
+  /**
    * @brief  Compares the valid value between two database records.
    *        if both the values are same, update the valid flag for corresponding
-   *        attribute as invalid in the first record. 
+   *        attribute as invalid in the first record.
    *
    * @param[in/out]  val1   first record value instance.
    * @param[in]      val2   second record value instance.
@@ -100,8 +100,8 @@ class VtepIfMoMgr : public VnodeChildMoMgr {
   bool CompareValidValue(void *&val1, void *val2, bool copy_to_running);
 
   upll_rc_t ValidateMessage(ConfigKeyVal *kval,
-                  upll_keytype_datatype_t dt_type,
-                  unc_keytype_operation_t op);
+                            upll_keytype_datatype_t dt_type,
+                            unc_keytype_operation_t op);
   upll_rc_t UpdateConfigStatus(ConfigKeyVal *vtepif_keyval,
                                unc_keytype_operation_t op,
                                uint32_t result,
@@ -109,32 +109,35 @@ class VtepIfMoMgr : public VnodeChildMoMgr {
                                DalDmlIntf *dmi,
                                ConfigKeyVal *ctrlr_key = NULL);
   /**
-     * @brief  Update config status for commit result and vote result.
-     *
-     * @param[in/out]  ckv_running  ConfigKeyVal instance.
-     * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
-     * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
-     *
-     **/
+   * @brief  Update config status for commit result and vote result.
+   *
+   * @param[in/out]  ckv_running  ConfigKeyVal instance.
+   * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
+   * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
+   * @param[in]      dmi          Pointer to the DalDmlIntf(DB Interface)
+   *
+   **/
   upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
                                     uuc::UpdateCtrlrPhase phase,
-                                    ConfigKeyVal *&ckv_running);
+                                    ConfigKeyVal *&ckv_running,
+                                    DalDmlIntf *dmi);
+
   upll_rc_t ValidateAttribute(ConfigKeyVal *ikey,
-                                        DalDmlIntf *dmi,
-                                        IpcReqRespHeader *req);
+                              DalDmlIntf *dmi,
+                              IpcReqRespHeader *req);
   /**
-     * @brief  Duplicates the input configkeyval including the key and val.  
-     * based on the tbl specified.
-     *
-     * @param[in]  okey   Output Configkeyval - allocated within the function
-     * @param[in]  req    Input ConfigKeyVal to be duplicated.
-     * @param[in]  tbl    specifies if the val structure belongs to the main table/ controller table or rename table.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
+   * @brief  Duplicates the input configkeyval including the key and val.
+   * based on the tbl specified.
+   *
+   * @param[in]  okey   Output Configkeyval - allocated within the function
+   * @param[in]  req    Input ConfigKeyVal to be duplicated.
+   * @param[in]  tbl    specifies if the val structure belongs to the main table/ controller table or rename table.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
   upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey,
-                   ConfigKeyVal *&req, MoMgrTables tbl = MAINTBL);
+                            ConfigKeyVal *&req, MoMgrTables tbl = MAINTBL);
 
   /* @brief     To convert the value structure read from DB to
    *            VTNService during READ operations
@@ -147,43 +150,47 @@ class VtepIfMoMgr : public VnodeChildMoMgr {
   upll_rc_t AdaptValToVtnService(ConfigKeyVal *ikey);
 
   /**
-     * @brief  Allocates for the specified val in the given configuration in the     * specified table.   
-     *
-     * @param[in/out]  ck_val   Reference pointer to configval structure 
-     *                          allocated.      
-     * @param[in]      dt_type  specifies the configuration candidate/running/
-     *                          state 
-     * @param[in]      tbl      specifies if the corresponding table is the  
-     *                          main table / controller table or rename table.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
+   * @brief  Allocates for the specified val in the given configuration in the     * specified table.
+   *
+   * @param[in/out]  ck_val   Reference pointer to configval structure
+   *                          allocated.
+   * @param[in]      dt_type  specifies the configuration candidate/running/
+   *                          state
+   * @param[in]      tbl      specifies if the corresponding table is the
+   *                          main table / controller table or rename table.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
   upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
-          MoMgrTables tbl = MAINTBL);
-/**
-    * @brief      Method to get a configkeyval of a specified keytype from an input configkeyval
-    *
-    * @param[in/out]  okey                 pointer to output ConfigKeyVal 
-    * @param[in]      parent_key           pointer to the configkeyval from which the output configkey val is initialized.
-    *
-    * @retval         UPLL_RC_SUCCESS      Successfull completion.
-    * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-    */
+                     MoMgrTables tbl = MAINTBL);
+  /**
+   * @brief      Method to get a configkeyval of a specified keytype from an input configkeyval
+   *
+   * @param[in/out]  okey                 pointer to output ConfigKeyVal
+   * @param[in]      parent_key           pointer to the configkeyval from which the output configkey val is initialized.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   */
   upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey,
-      ConfigKeyVal *parent_key);
-/**
-    * @brief      Method to get a configkeyval of the parent keytype 
-    *
-    * @param[in/out]  okey           pointer to parent ConfigKeyVal 
-    * @param[in]      ikey           pointer to the child configkeyval from 
-    * which the parent configkey val is obtained.
-    *
-    * @retval         UPLL_RC_SUCCESS      Successfull completion.
-    * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-    **/
+                              ConfigKeyVal *parent_key);
+  /**
+   * @brief      Method to get a configkeyval of the parent keytype
+   *
+   * @param[in/out]  okey           pointer to parent ConfigKeyVal
+   * @param[in]      ikey           pointer to the child configkeyval from
+   * which the parent configkey val is obtained.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
   upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
 
+  upll_rc_t IsLogicalPortAndVlanIdInUse(ConfigKeyVal *ckv,
+                                        DalDmlIntf *dmi,
+                                        IpcReqRespHeader *req);
+
   /**
    * @Brief Validates the syntax of the specified key and value structure
    *        for KT_VTEP_IF keytype
@@ -222,7 +229,7 @@ class VtepIfMoMgr : public VnodeChildMoMgr {
    * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
    */
   upll_rc_t ValidateVTepIfValue(val_vtep_if_t *val_vtep_if,
-      uint32_t operation = UNC_OP_INVALID);
+                                uint32_t operation = UNC_OP_INVALID);
   /**
    * @Brief Validates the syntax for KT_VTEP_IF keytype value structure.
    *
@@ -251,7 +258,7 @@ class VtepIfMoMgr : public VnodeChildMoMgr {
    */
 
   upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-      const char * crtlr_name);
+                               const char * crtlr_name);
   /**
    * @Brief Checks if the specified key type and
    *        associated attributes are supported on the given controller,
@@ -267,7 +274,7 @@ class VtepIfMoMgr : public VnodeChildMoMgr {
    */
   upll_rc_t ValVTepIfAttributeSupportCheck(
       val_vtep_if_t *val_vtep_if,
-  const uint8_t* attrs, unc_keytype_operation_t operation);
+      const uint8_t* attrs, unc_keytype_operation_t operation);
   /**
    * @Brief Checks if the specified key type and
    *        associated attributes are supported on the given controller,
@@ -284,15 +291,16 @@ class VtepIfMoMgr : public VnodeChildMoMgr {
       const char * crtlr_name,
       ConfigKeyVal *ikey);
   bool GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo,
-                                    int &nattr,
-                                    MoMgrTables tbl ) {
+                            int &nattr,
+                            MoMgrTables tbl ) {
     return true;
   }
   upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey) {
-    return UPLL_RC_SUCCESS;
+    UPLL_LOG_INFO("Not supported for this keytype. Returning Generic Error");
+    return UPLL_RC_ERR_GENERIC;
   }
   upll_rc_t IsReferenced(ConfigKeyVal *ikey,
-           upll_keytype_datatype_t dt_type, DalDmlIntf *dmi);
+                         upll_keytype_datatype_t dt_type, DalDmlIntf *dmi);
 
  public:
   VtepIfMoMgr();
@@ -304,14 +312,14 @@ class VtepIfMoMgr : public VnodeChildMoMgr {
     delete[] table;
   }
   /**
-    * @brief      Method to check if individual portions of a key are valid
-    *
-    * @param[in/out]  ikey                 pointer to ConfigKeyVal referring to a UNC resource
-    * @param[in]      index                db index associated with the variable
-    *
-    * @retval         true                 input key is valid
-    * @retval         false                input key is invalid.
-    **/
+   * @brief      Method to check if individual portions of a key are valid
+   *
+   * @param[in/out]  ikey                 pointer to ConfigKeyVal referring to a UNC resource
+   * @param[in]      index                db index associated with the variable
+   *
+   * @retval         true                 input key is valid
+   * @retval         false                input key is invalid.
+   **/
   bool IsValidKey(void *tkey, uint64_t index);
 
   /* @brief         Updates vtepif structure
@@ -330,12 +338,12 @@ class VtepIfMoMgr : public VnodeChildMoMgr {
                             DalDmlIntf *dmi);
 #if 0
   upll_rc_t GetMappedVbridges(uint8_t *swid, DalDmlIntf *dmi,
-             set<key_vnode_t>*sw_vbridge_set);
+                              set<key_vnode_t>*sw_vbridge_set);
   upll_rc_t GetMappedInterfaces(key_vbr_t *vbr_key, DalDmlIntf *dmi,
-             ConfigKeyVal *&ikey);
+                                ConfigKeyVal *&ikey);
 #endif
 };
-}  // namesapce vtn
+}  // namespace kt_momgr
 }  // namespace upll
 }  // namespace unc
 #endif
index 7af8e90f36db332ce95e29b2454ccb338a7948e1..d02f2dc6e41d5d384a4fe8ecb40c527269c535b7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -35,7 +35,8 @@ BindInfo VtepMoMgr::vtep_bind_info[] = {
     offsetof(key_user_data_t, domain_id),
     uud::kDalChar, kMaxLenDomainId+1 },
   { uudst::vtep::kDbiOperStatus, ST_VAL, offsetof(val_db_vtep_st,
-    vtep_val_st.oper_status), uud::kDalUint8, 1},
+                                                  vtep_val_st.oper_status),
+  uud::kDalUint8, 1},
   { uudst::vtep::kDbiDownCount, ST_VAL, offsetof(val_db_vtep_st, down_count),
     uud::kDalUint32, 1},
   { uudst::vtep::kDbiFlags,  CK_VAL, offsetof(key_user_data_t, flags),
@@ -55,7 +56,8 @@ BindInfo VtepMoMgr::vtep_bind_info[] = {
   { uudst::vtep::kDbiCsCtrlrName, CS_VAL, offsetof(val_vtep, cs_attr[1]),
     uud::kDalUint8, 1},
   { uudst::vtep::kDbiCsDomainId, CS_VAL, offsetof(val_vtep,
-    cs_attr[2]), uud::kDalUint8, 1}
+                                                  cs_attr[2]),
+  uud::kDalUint8, 1}
 };
 
 unc_key_type_t VtepMoMgr::vtep_child[] = {
@@ -65,8 +67,8 @@ unc_key_type_t VtepMoMgr::vtep_child[] = {
 VtepMoMgr::VtepMoMgr() {
   UPLL_FUNC_TRACE;
   Table *tbl = new Table(uudst::kDbiVtepTbl, UNC_KT_VTEP, vtep_bind_info,
-      IpctSt::kIpcStKeyVtep, IpctSt::kIpcStValVtep,
-      uudst::vtep::kDbiVtepNumCols+2);
+                         IpctSt::kIpcStKeyVtep, IpctSt::kIpcStValVtep,
+                         uudst::vtep::kDbiVtepNumCols+2);
   ntable = MAX_MOMGR_TBLS;
   table = new Table *[ntable];
   table[MAINTBL] = tbl;
@@ -102,7 +104,9 @@ bool VtepMoMgr::IsValidKey(void *key, uint64_t index) {
   switch (index) {
     case uudst::vtep::kDbiVtnName:
       ret_val = ValidateKey(reinterpret_cast<char *>
-                (vtep_key->vtn_key.vtn_name), kMinLenVtnName, kMaxLenVtnName);
+                            (vtep_key->vtn_key.vtn_name),
+                            kMinLenVtnName,
+                            kMaxLenVtnName);
       if (ret_val != UPLL_RC_SUCCESS) {
         UPLL_LOG_TRACE("VTN Name is not valid(%d)", ret_val);
         return false;
@@ -110,7 +114,9 @@ bool VtepMoMgr::IsValidKey(void *key, uint64_t index) {
       break;
     case uudst::vtep::kDbiVtepName:
       ret_val = ValidateKey(reinterpret_cast<char *>
-                (vtep_key->vtep_name), kMinLenVnodeName, kMaxLenVnodeName);
+                            (vtep_key->vtep_name),
+                            kMinLenVnodeName,
+                            kMaxLenVnodeName);
       if (ret_val != UPLL_RC_SUCCESS) {
         UPLL_LOG_TRACE("Vtep Name is not valid(%d)", ret_val);
         return false;
@@ -124,11 +130,11 @@ bool VtepMoMgr::IsValidKey(void *key, uint64_t index) {
 }
 
 upll_rc_t VtepMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
-    ConfigKeyVal *parent_key) {
+                                       ConfigKeyVal *parent_key) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   key_vtep *vtep_key = static_cast<key_vtep *>
-                       (ConfigKeyVal::Malloc(sizeof(key_vtep)));
+      (ConfigKeyVal::Malloc(sizeof(key_vtep)));
   void *pkey;
   if (parent_key == NULL) {
     if (okey) delete okey;
@@ -154,7 +160,7 @@ upll_rc_t VtepMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
     default:
       uuu::upll_strncpy(vtep_key->vtn_key.vtn_name,
                         reinterpret_cast<key_vtn *>(pkey)->vtn_name,
-          (kMaxLenVtnName+1) );
+                        (kMaxLenVtnName+1) );
       *(vtep_key->vtep_name)  = *"";
   }
   okey = new ConfigKeyVal(UNC_KT_VTEP, IpctSt::kIpcStKeyVtep, vtep_key, NULL);
@@ -169,7 +175,7 @@ upll_rc_t VtepMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
 }
 
 upll_rc_t VtepMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
-    ConfigKeyVal *ikey ) {
+                                        ConfigKeyVal *ikey ) {
   UPLL_FUNC_TRACE;
   if ((ikey == NULL) || (ikey->get_key() == NULL)) {
     UPLL_LOG_DEBUG("Null ikey param");
@@ -182,9 +188,9 @@ upll_rc_t VtepMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
   if (ikey_type != UNC_KT_VTEP)
     return UPLL_RC_ERR_GENERIC;
   key_vtn *vtn_key = static_cast<key_vtn *>
-                     (ConfigKeyVal::Malloc(sizeof(key_vtn)));
+      (ConfigKeyVal::Malloc(sizeof(key_vtn)));
   uuu::upll_strncpy(vtn_key->vtn_name, vtep_key->vtn_key.vtn_name,
-      (kMaxLenVtnName+1));
+                    (kMaxLenVtnName+1));
   DELETE_IF_NOT_NULL(okey);
   okey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, vtn_key, NULL);
   if (okey == NULL) {
@@ -198,7 +204,8 @@ upll_rc_t VtepMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
 
 
 upll_rc_t VtepMoMgr::AllocVal(ConfigVal *&ck_val,
-    upll_keytype_datatype_t dt_type, MoMgrTables tbl) {
+                              upll_keytype_datatype_t dt_type,
+                              MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
   void *val;
 
@@ -213,7 +220,7 @@ upll_rc_t VtepMoMgr::AllocVal(ConfigVal *&ck_val,
       }
       if (dt_type == UPLL_DT_STATE) {
         val = reinterpret_cast<void *>
-          (ConfigKeyVal::Malloc(sizeof(val_db_vtep_st)));
+            (ConfigKeyVal::Malloc(sizeof(val_db_vtep_st)));
         ConfigVal *ck_nxtval = new ConfigVal(IpctSt::kIpcStValVtepSt, val);
         if (!ck_nxtval) {
           delete ck_val;
@@ -230,7 +237,7 @@ upll_rc_t VtepMoMgr::AllocVal(ConfigVal *&ck_val,
 }
 
 upll_rc_t VtepMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
-    ConfigKeyVal *&req, MoMgrTables tbl) {
+                                     ConfigKeyVal *&req, MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
   if (req == NULL) return UPLL_RC_ERR_GENERIC;
   if (okey != NULL) return UPLL_RC_ERR_GENERIC;
@@ -241,7 +248,7 @@ upll_rc_t VtepMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
     if (tbl == MAINTBL) {
       val_vtep *ival = static_cast<val_vtep *>(GetVal(req));
       val_vtep *vtep_val = static_cast<val_vtep *>
-        (ConfigKeyVal::Malloc(sizeof(val_vtep)));
+          (ConfigKeyVal::Malloc(sizeof(val_vtep)));
       memcpy(vtep_val, ival, sizeof(val_vtep));
       tmp1 = new ConfigVal(IpctSt::kIpcStValVtep, vtep_val);
       if (!tmp1) {
@@ -255,7 +262,7 @@ upll_rc_t VtepMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
     if (tbl == MAINTBL) {
       val_db_vtep_st *ival = static_cast<val_db_vtep_st *>(tmp->get_val());
       val_db_vtep_st *vtep_st = static_cast<val_db_vtep_st *>
-                                (ConfigKeyVal::Malloc(sizeof(val_db_vtep_st)));
+          (ConfigKeyVal::Malloc(sizeof(val_db_vtep_st)));
       if (!vtep_st) {
         delete tmp1;
         return UPLL_RC_ERR_GENERIC;
@@ -273,7 +280,7 @@ upll_rc_t VtepMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
   void *tkey = (req != NULL)?(req)->get_key():NULL;
   key_vtep *ikey = static_cast<key_vtep *>(tkey);
   key_vtep *vtep_key = static_cast<key_vtep *>
-                       (ConfigKeyVal::Malloc(sizeof(key_vtep)));
+      (ConfigKeyVal::Malloc(sizeof(key_vtep)));
   if (!vtep_key) {
     if (tmp1) delete tmp1;
     return UPLL_RC_ERR_GENERIC;
@@ -291,15 +298,15 @@ upll_rc_t VtepMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
 }
 
 upll_rc_t VtepMoMgr::UpdateConfigStatus(ConfigKeyVal *vtep_key,
-    unc_keytype_operation_t op,
-    uint32_t driver_result,
-    ConfigKeyVal *upd_key,
-    DalDmlIntf *dmi,
-    ConfigKeyVal *ctrlr_key) {
+                                        unc_keytype_operation_t op,
+                                        uint32_t driver_result,
+                                        ConfigKeyVal *upd_key,
+                                        DalDmlIntf *dmi,
+                                        ConfigKeyVal *ctrlr_key) {
   UPLL_FUNC_TRACE;
   unc_keytype_configstatus_t cs_status =
-                (driver_result == UPLL_RC_SUCCESS)? UNC_CS_APPLIED
-                                                  : UNC_CS_NOT_APPLIED;
+      (driver_result == UPLL_RC_SUCCESS)? UNC_CS_APPLIED
+      : UNC_CS_NOT_APPLIED;
   val_vtep *vtep_val = static_cast<val_vtep *>(GetVal(vtep_key));
   if (vtep_val == NULL) return UPLL_RC_ERR_GENERIC;
   val_vtep *val_running = static_cast<val_vtep *>(GetVal(upd_key));
@@ -307,7 +314,7 @@ upll_rc_t VtepMoMgr::UpdateConfigStatus(ConfigKeyVal *vtep_key,
     vtep_val->cs_row_status = cs_status;
     /* initialize entity/state information */
     val_db_vtep_st *vtep_db_valst = static_cast<val_db_vtep_st *>
-      (ConfigKeyVal::Malloc(sizeof(val_db_vtep_st)));
+        (ConfigKeyVal::Malloc(sizeof(val_db_vtep_st)));
     val_vtep_st *vtepst_val = &vtep_db_valst->vtep_val_st;
     vtepst_val->oper_status = UPLL_OPER_STATUS_UP;
     vtepst_val->valid[UPLL_IDX_OPER_STATUS_VTEPS] = UNC_VF_VALID;
@@ -323,8 +330,8 @@ upll_rc_t VtepMoMgr::UpdateConfigStatus(ConfigKeyVal *vtep_key,
     return UPLL_RC_ERR_GENERIC;
   }
   for (unsigned int loop = 0;
-      loop < sizeof(vtep_val->valid)/sizeof(vtep_val->valid[0]);
-      ++loop ) {
+       loop < sizeof(vtep_val->valid)/sizeof(vtep_val->valid[0]);
+       ++loop ) {
     if ((UNC_VF_VALID == vtep_val->valid[loop]) ||
         (UNC_VF_VALID_NO_VALUE == vtep_val->valid[loop])) {
       // Description is set to APPLIED
@@ -337,7 +344,7 @@ upll_rc_t VtepMoMgr::UpdateConfigStatus(ConfigKeyVal *vtep_key,
       vtep_val->cs_attr[loop] = UNC_CS_APPLIED;
     } else if ((vtep_val->valid[loop] == UNC_VF_INVALID) &&
                (UNC_OP_UPDATE == op)) {
-     vtep_val->cs_attr[loop] = val_running->cs_attr[loop];
+      vtep_val->cs_attr[loop] = val_running->cs_attr[loop];
     }
   }
   return UPLL_RC_SUCCESS;
@@ -362,33 +369,33 @@ bool VtepMoMgr::CompareValidValue(void *&val1, void *val2,
   val_vtep_t *val_vtep1 = reinterpret_cast<val_vtep_t *>(val1);
   val_vtep_t *val_vtep2  = reinterpret_cast<val_vtep_t *>(val2);
   for (unsigned int loop = 0;
-      loop < sizeof(val_vtep1->valid)/sizeof(uint8_t); ++loop ) {
+       loop < sizeof(val_vtep1->valid)/sizeof(uint8_t); ++loop ) {
     if (UNC_VF_INVALID == val_vtep1->valid[loop]
-       && UNC_VF_VALID == val_vtep2->valid[loop])
+        && UNC_VF_VALID == val_vtep2->valid[loop])
       val_vtep1->valid[loop] = UNC_VF_VALID_NO_VALUE;
   }
   if (UNC_VF_VALID == val_vtep1->valid[UPLL_IDX_DESC_VTEP]
       && UNC_VF_VALID == val_vtep2->valid[UPLL_IDX_DESC_VTEP]) {
     if (!strcmp(reinterpret_cast<char*>(val_vtep1->description),
-          reinterpret_cast<char*>(val_vtep2->description)))
+                reinterpret_cast<char*>(val_vtep2->description)))
       val_vtep1->valid[UPLL_IDX_DESC_VTEP] = UNC_VF_INVALID;
   }
   if (UNC_VF_VALID == val_vtep1->valid[UPLL_IDX_CONTROLLER_ID_VTEP]
       && UNC_VF_VALID == val_vtep2->valid[UPLL_IDX_CONTROLLER_ID_VTEP]) {
     if (!strcmp(reinterpret_cast<char*>(val_vtep1->controller_id),
-          reinterpret_cast<char*>(val_vtep2->controller_id)))
+                reinterpret_cast<char*>(val_vtep2->controller_id)))
       val_vtep1->valid[UPLL_IDX_CONTROLLER_ID_VTEP] = UNC_VF_INVALID;
   }
   if (UNC_VF_VALID == val_vtep1->valid[UPLL_IDX_DOMAIN_ID_VTEP]
       && UNC_VF_VALID == val_vtep2->valid[UPLL_IDX_DOMAIN_ID_VTEP]) {
     if (!strcmp(reinterpret_cast<char*>(val_vtep1->domain_id),
-          reinterpret_cast<char*>(val_vtep2->domain_id)))
+                reinterpret_cast<char*>(val_vtep2->domain_id)))
       val_vtep1->valid[UPLL_IDX_DOMAIN_ID_VTEP] = UNC_VF_INVALID;
   }
   if (!copy_to_running)
     val_vtep1->valid[UPLL_IDX_DESC_VTEP] = UNC_VF_INVALID;
   for (unsigned int loop = 0;
-      loop < sizeof(val_vtep1->valid) / sizeof(uint8_t); ++loop) {
+       loop < sizeof(val_vtep1->valid) / sizeof(uint8_t); ++loop) {
     if ((UNC_VF_VALID == (uint8_t) val_vtep1->valid[loop]) ||
         (UNC_VF_VALID_NO_VALUE == (uint8_t) val_vtep1->valid[loop])) {
       invalid_attr = false;
@@ -401,21 +408,23 @@ bool VtepMoMgr::CompareValidValue(void *&val1, void *val2,
 upll_rc_t VtepMoMgr::UpdateAuditConfigStatus(
     unc_keytype_configstatus_t cs_status,
     uuc::UpdateCtrlrPhase phase,
-    ConfigKeyVal *&ckv_running) {
+    ConfigKeyVal *&ckv_running,
+    DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_vtep_t *val = (ckv_running != NULL)?reinterpret_cast<val_vtep_t *>
-    (GetVal(ckv_running)):NULL;
+      (GetVal(ckv_running)):NULL;
   if (NULL == val) {
     return UPLL_RC_ERR_GENERIC;
   }
   if (uuc::kUpllUcpCreate == phase )
     val->cs_row_status = cs_status;
   if ((uuc::kUpllUcpUpdate == phase) &&
-           (val->cs_row_status == UNC_CS_INVALID ||
-            val->cs_row_status == UNC_CS_NOT_APPLIED))
+      (val->cs_row_status == UNC_CS_INVALID ||
+       val->cs_row_status == UNC_CS_NOT_APPLIED))
     val->cs_row_status = cs_status;
   for (unsigned int loop = 0;
-      loop < sizeof(val->valid)/sizeof(uint8_t); ++loop) {
+       loop < sizeof(val->valid)/sizeof(uint8_t); ++loop) {
     if ((cs_status == UNC_CS_INVALID && UNC_VF_VALID == val->valid[loop])
         || cs_status == UNC_CS_APPLIED)
       val->cs_attr[loop] = cs_status;
@@ -425,7 +434,7 @@ upll_rc_t VtepMoMgr::UpdateAuditConfigStatus(
 
 /* Pure Virtual functions from VnodeMoMgr */
 upll_rc_t VtepMoMgr::GetControllerDomainId(ConfigKeyVal *ikey,
-    controller_domain *ctrlr_dom) {
+                                           controller_domain *ctrlr_dom) {
   UPLL_FUNC_TRACE;
   if (!ikey || !ctrlr_dom) {
     UPLL_LOG_INFO("Illegal parameter");
@@ -456,7 +465,7 @@ upll_rc_t VtepMoMgr::GetControllerDomainId(ConfigKeyVal *ikey,
 }
 
 upll_rc_t VtepMoMgr::GetVnodeName(ConfigKeyVal *ikey, uint8_t *&vtn_name,
-    uint8_t *&vnode_name) {
+                                  uint8_t *&vnode_name) {
   UPLL_FUNC_TRACE;
   if (ikey == NULL) {
     UPLL_LOG_DEBUG("ConfigKeyVal is NULL");
@@ -470,7 +479,7 @@ upll_rc_t VtepMoMgr::GetVnodeName(ConfigKeyVal *ikey, uint8_t *&vtn_name,
 }
 
 upll_rc_t VtepMoMgr::ValidateMessage(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey) {
+                                     ConfigKeyVal *ikey) {
   UPLL_FUNC_TRACE;
   upll_rc_t ret_val = UPLL_RC_ERR_GENERIC;
   if (!ikey || !req || !(ikey->get_key())) {
@@ -484,8 +493,8 @@ upll_rc_t VtepMoMgr::ValidateMessage(IpcReqRespHeader *req,
   }
   if (ikey->get_st_num() != IpctSt::kIpcStKeyVtep) {
     UPLL_LOG_DEBUG("Invalid structure received.Expected struct-kIpcStKeyVtep, "
-        "received struct -%s ", reinterpret_cast<const char *>
-        (IpctSt::GetIpcStdef(ikey->get_st_num())));
+                   "received struct -%s ", reinterpret_cast<const char *>
+                   (IpctSt::GetIpcStdef(ikey->get_st_num())));
     return UPLL_RC_ERR_BAD_REQUEST;
   }
   key_vtep_t *key_vtep = reinterpret_cast<key_vtep_t *>(ikey->get_key());
@@ -493,7 +502,7 @@ upll_rc_t VtepMoMgr::ValidateMessage(IpcReqRespHeader *req,
   if ((ikey->get_cfg_val()) &&
       ((ikey->get_cfg_val())->get_st_num() == IpctSt::kIpcStValVtep)) {
     val_vtep =
-      reinterpret_cast<val_vtep_t *> (ikey->get_cfg_val()->get_val());
+        reinterpret_cast<val_vtep_t *> (ikey->get_cfg_val()->get_val());
   }
   uint32_t dt_type = req->datatype;
   uint32_t operation = req->operation;
@@ -505,7 +514,7 @@ upll_rc_t VtepMoMgr::ValidateMessage(IpcReqRespHeader *req,
     return UPLL_RC_ERR_CFG_SYNTAX;
   } else {
     if (((operation == UNC_OP_CREATE) || (operation == UNC_OP_UPDATE)) &&
-         (dt_type == UPLL_DT_CANDIDATE)) {
+        (dt_type == UPLL_DT_CANDIDATE)) {
       if (val_vtep != NULL) {
         ret_val = ValidateVTepValue(val_vtep, operation);
         if (ret_val != UPLL_RC_SUCCESS) {
@@ -518,13 +527,13 @@ upll_rc_t VtepMoMgr::ValidateMessage(IpcReqRespHeader *req,
         return UPLL_RC_ERR_BAD_REQUEST;
       }
     } else if (((operation == UNC_OP_READ) ||
-          (operation == UNC_OP_READ_SIBLING) ||
-          (operation == UNC_OP_READ_SIBLING_BEGIN) ||
-          (operation == UNC_OP_READ_SIBLING_COUNT))
-        && ((dt_type == UPLL_DT_CANDIDATE) ||
-          (dt_type == UPLL_DT_RUNNING) ||
-          (dt_type == UPLL_DT_STARTUP) ||
-          (dt_type == UPLL_DT_STATE))) {
+                (operation == UNC_OP_READ_SIBLING) ||
+                (operation == UNC_OP_READ_SIBLING_BEGIN) ||
+                (operation == UNC_OP_READ_SIBLING_COUNT))
+               && ((dt_type == UPLL_DT_CANDIDATE) ||
+                   (dt_type == UPLL_DT_RUNNING) ||
+                   (dt_type == UPLL_DT_STARTUP) ||
+                   (dt_type == UPLL_DT_STATE))) {
       if (option1 == UNC_OPT1_NORMAL) {
         if (option2 == UNC_OPT2_NONE) {
           if (val_vtep != NULL) {
@@ -547,23 +556,23 @@ upll_rc_t VtepMoMgr::ValidateMessage(IpcReqRespHeader *req,
         return UPLL_RC_ERR_INVALID_OPTION1;
       }
     } else if ((operation == UNC_OP_DELETE) ||
-        (((operation == UNC_OP_READ_NEXT) ||
-        (operation == UNC_OP_READ_BULK)) &&
-        ((dt_type == UPLL_DT_CANDIDATE) ||
-          (dt_type == UPLL_DT_RUNNING) ||
-          (dt_type == UPLL_DT_STARTUP)))) {
+               (((operation == UNC_OP_READ_NEXT) ||
+                 (operation == UNC_OP_READ_BULK)) &&
+                ((dt_type == UPLL_DT_CANDIDATE) ||
+                 (dt_type == UPLL_DT_RUNNING) ||
+                 (dt_type == UPLL_DT_STARTUP)))) {
       UPLL_LOG_TRACE("Value struct is none for operation type:%d", operation);
       return UPLL_RC_SUCCESS;
     } else {
       UPLL_LOG_DEBUG("Invalid datatype(%d) or operation(%d)", dt_type,
-          operation);
+                     operation);
       return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
     }
   }
   return UPLL_RC_SUCCESS;
 }
 upll_rc_t VtepMoMgr::ValidateVTepValue(val_vtep_t *val_vtep,
-    uint32_t operation) {
+                                       uint32_t operation) {
   UPLL_FUNC_TRACE;
   bool ret_val =false;
 
@@ -623,7 +632,7 @@ upll_rc_t VtepMoMgr::ValidateVTepValue(val_vtep_t *val_vtep,
             case UPLL_IDX_DOMAIN_ID_VTEP:
               if (flag == UNC_VF_VALID_NO_VALUE) {
                 UPLL_LOG_DEBUG("controller_id or domain_id flag is"
-                                                 " valid_no_value");
+                               " valid_no_value");
                 return UPLL_RC_ERR_CFG_SYNTAX;
               }
               break;
@@ -663,7 +672,7 @@ upll_rc_t VtepMoMgr::ValidateVTepValue(val_vtep_t *val_vtep,
 }
 
 upll_rc_t VtepMoMgr::CtrlrIdAndDomainIdUpdationCheck(ConfigKeyVal *ikey,
-                                                   ConfigKeyVal *okey) {
+                                                     ConfigKeyVal *okey) {
   UPLL_FUNC_TRACE;
   val_vtep *vtep_val = reinterpret_cast<val_vtep *>(GetVal(ikey));
   val_vtep *vtep_val1 = reinterpret_cast<val_vtep *>(GetVal(okey));
@@ -686,11 +695,11 @@ upll_rc_t VtepMoMgr::CtrlrIdAndDomainIdUpdationCheck(ConfigKeyVal *ikey,
   return UPLL_RC_SUCCESS;
 }
 upll_rc_t VtepMoMgr::ValidateVTepKey(key_vtep_t *key_vtep,
-                     uint32_t operation) {
+                                     uint32_t operation) {
   UPLL_FUNC_TRACE;
   upll_rc_t ret_val = UPLL_RC_SUCCESS;
   ret_val = ValidateKey(
-  reinterpret_cast<char *>(key_vtep->vtn_key.vtn_name),
+      reinterpret_cast<char *>(key_vtep->vtn_key.vtn_name),
       kMinLenVtnName, kMaxLenVtnName);
   if (ret_val != UPLL_RC_SUCCESS) {
     UPLL_LOG_INFO("Vtn Name syntax check failed."
@@ -702,7 +711,7 @@ upll_rc_t VtepMoMgr::ValidateVTepKey(key_vtep_t *key_vtep,
       (operation != UNC_OP_READ_SIBLING_COUNT)) {
     UPLL_LOG_TRACE("UNC_KT_VTEP: vtep_name  (%s)", key_vtep->vtep_name);
     ret_val = ValidateKey(reinterpret_cast<char *>(key_vtep->vtep_name),
-              kMinLenVnodeName, kMaxLenVnodeName);
+                          kMinLenVnodeName, kMaxLenVnodeName);
     if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Syntax check failed.vtep_name-(%s)", key_vtep->vtep_name);
       return ret_val;
@@ -713,8 +722,10 @@ upll_rc_t VtepMoMgr::ValidateVTepKey(key_vtep_t *key_vtep,
   }
   return UPLL_RC_SUCCESS;
 }
-upll_rc_t VtepMoMgr::ValVTepAttributeSupportCheck(val_vtep_t *val_vtep,
-    const uint8_t* attrs, unc_keytype_operation_t operation) {
+upll_rc_t VtepMoMgr::ValVTepAttributeSupportCheck(
+    val_vtep_t *val_vtep,
+    const uint8_t* attrs,
+    unc_keytype_operation_t operation) {
   UPLL_FUNC_TRACE;
   if ((val_vtep->valid[UPLL_IDX_DESC_VTEP] == UNC_VF_VALID)
       || (val_vtep->valid[UPLL_IDX_DESC_VTEP] == UNC_VF_VALID_NO_VALUE)) {
@@ -728,8 +739,10 @@ upll_rc_t VtepMoMgr::ValVTepAttributeSupportCheck(val_vtep_t *val_vtep,
   }
   return UPLL_RC_SUCCESS;
 }
-upll_rc_t VtepMoMgr::ValidateCapability(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey, const char * ctrlr_name) {
+upll_rc_t VtepMoMgr::ValidateCapability(
+    IpcReqRespHeader *req,
+    ConfigKeyVal *ikey,
+    const char * ctrlr_name) {
   UPLL_FUNC_TRACE;
   if (!ikey || !req) {
     UPLL_LOG_DEBUG("ConfigKeyVal / IpcReqRespHeader is Null");
@@ -737,14 +750,14 @@ upll_rc_t VtepMoMgr::ValidateCapability(IpcReqRespHeader *req,
   }
   if (!ctrlr_name) {
     ctrlr_name = reinterpret_cast<char*>((reinterpret_cast<key_user_data_t *>
-                  (ikey->get_user_data()))->ctrlr_id);
+                                          (ikey->get_user_data()))->ctrlr_id);
     if (!ctrlr_name || !strlen(ctrlr_name)) {
       UPLL_LOG_DEBUG("Controller Name is NULL");
       return UPLL_RC_ERR_GENERIC;
     }
   }
   UPLL_LOG_TRACE("ctrlr_name(%s), operation : (%d)",
-      ctrlr_name, req->operation);
+                 ctrlr_name, req->operation);
   bool result_code = false;
   uint32_t max_instance_count = 0;
   uint32_t max_attrs = 0;
@@ -753,18 +766,14 @@ upll_rc_t VtepMoMgr::ValidateCapability(IpcReqRespHeader *req,
   switch (req->operation) {
     case UNC_OP_CREATE:
       result_code = GetCreateCapability(ctrlr_name, ikey->get_key_type(),
-          &max_instance_count, &max_attrs, &attrs);
-      if (result_code && (max_instance_count != 0) &&
-          cur_instance_count >= max_instance_count) {
-        UPLL_LOG_DEBUG("[%s:%d:%s Instance count %d exceeds %d", __FILE__,
-            __LINE__, __FUNCTION__, cur_instance_count, max_instance_count);
-        return UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
-      }
+                                        &max_instance_count,
+                                        &max_attrs,
+                                        &attrs);
       break;
 
     case UNC_OP_UPDATE:
       result_code = GetUpdateCapability(ctrlr_name, ikey->get_key_type(),
-          &max_attrs, &attrs);
+                                        &max_attrs, &attrs);
       break;
 
     case UNC_OP_READ:
@@ -772,7 +781,7 @@ upll_rc_t VtepMoMgr::ValidateCapability(IpcReqRespHeader *req,
     case UNC_OP_READ_SIBLING_BEGIN:
     case UNC_OP_READ_SIBLING_COUNT:
       result_code = GetReadCapability(ctrlr_name, ikey->get_key_type(),
-          &max_attrs, &attrs);
+                                      &max_attrs, &attrs);
       break;
 
     default:
@@ -781,22 +790,22 @@ upll_rc_t VtepMoMgr::ValidateCapability(IpcReqRespHeader *req,
   }
   if (!result_code) {
     UPLL_LOG_DEBUG("keytype(%d) is not supported by controller(%s) "
-        "for operation(%d)",
-        ikey->get_key_type(), ctrlr_name, req->operation);
+                   "for operation(%d)",
+                   ikey->get_key_type(), ctrlr_name, req->operation);
     return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
   }
   val_vtep_t *val_vtep = NULL;
   if ((ikey->get_cfg_val()) &&
       ((ikey->get_cfg_val())->get_st_num() == IpctSt::kIpcStValVtep)) {
     val_vtep =
-      reinterpret_cast<val_vtep_t *>(ikey->get_cfg_val()->get_val());
+        reinterpret_cast<val_vtep_t *>(ikey->get_cfg_val()->get_val());
   }
   if (val_vtep) {
     if (max_attrs > 0) {
       return ValVTepAttributeSupportCheck(val_vtep, attrs, req->operation);
     } else {
       UPLL_LOG_DEBUG("Attribute list is empty for operation %d",
-                                                 req->operation);
+                     req->operation);
       return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
     }
   }
@@ -804,21 +813,21 @@ upll_rc_t VtepMoMgr::ValidateCapability(IpcReqRespHeader *req,
 }
 
 upll_rc_t VtepMoMgr::CreateVnodeConfigKey(ConfigKeyVal *ikey,
-    ConfigKeyVal *&okey) {
+                                          ConfigKeyVal *&okey) {
   UPLL_FUNC_TRACE;
   if (ikey == NULL)
     return UPLL_RC_ERR_GENERIC;
   key_vtep *temp_key_vtep = static_cast<key_vtep *>
-                            (ConfigKeyVal::Malloc(sizeof(key_vtep)));
+      (ConfigKeyVal::Malloc(sizeof(key_vtep)));
   uuu::upll_strncpy(temp_key_vtep->vtn_key.vtn_name,
-      static_cast<key_vtep *>(ikey->get_key())->vtn_key.vtn_name,
-      (kMaxLenVtnName+1));
+                    static_cast<key_vtep *>(ikey->get_key())->vtn_key.vtn_name,
+                    (kMaxLenVtnName+1));
   uuu::upll_strncpy(temp_key_vtep->vtep_name,
-      static_cast<key_vtep *>(ikey->get_key())->vtep_name,
-      (kMaxLenVnodeName+1));
+                    static_cast<key_vtep *>(ikey->get_key())->vtep_name,
+                    (kMaxLenVnodeName+1));
 
   okey = new ConfigKeyVal(UNC_KT_VTEP, IpctSt::kIpcStKeyVtep,
-      reinterpret_cast<void *>(temp_key_vtep), NULL);
+                          reinterpret_cast<void *>(temp_key_vtep), NULL);
   return UPLL_RC_SUCCESS;
 }
 /*
@@ -845,10 +854,10 @@ upll_rc_t VtepMoMgr::CreateVnodeConfigKey(ConfigKeyVal *ikey,
    }
    */
 upll_rc_t VtepMoMgr::CreateVtepGrpConfigKey(ConfigKeyVal *&okey,
-    ConfigKeyVal *ikey) {
+                                            ConfigKeyVal *ikey) {
   UPLL_FUNC_TRACE;
   key_vtep_grp_member_t *vtep_grp_mem_key = static_cast<key_vtep_grp_member_t *>
-    (ConfigKeyVal::Malloc(sizeof(key_vtep_grp_member_t)));
+      (ConfigKeyVal::Malloc(sizeof(key_vtep_grp_member_t)));
   key_vtep *vtep_key = static_cast<key_vtep *>(ikey->get_key());
   if (!vtep_grp_mem_key)
     return UPLL_RC_ERR_GENERIC;
@@ -857,17 +866,19 @@ upll_rc_t VtepMoMgr::CreateVtepGrpConfigKey(ConfigKeyVal *&okey,
     return UPLL_RC_ERR_GENERIC;
   }
   uuu::upll_strncpy(vtep_grp_mem_key->vtepgrp_key.vtn_key.vtn_name,
-      reinterpret_cast<char *>(vtep_key->vtn_key.vtn_name),
-      (kMaxLenVtnName+1));
+                    reinterpret_cast<char *>(vtep_key->vtn_key.vtn_name),
+                    (kMaxLenVtnName+1));
   if (!strlen(reinterpret_cast<char *>(vtep_key->vtep_name))) {
     FREE_IF_NOT_NULL(vtep_grp_mem_key);
     return UPLL_RC_ERR_GENERIC;
   }
   uuu::upll_strncpy(vtep_grp_mem_key->vtepmember_name,
-      reinterpret_cast<char *>(vtep_key->vtep_name),
-      (kMaxLenVnodeName+1));
+                    reinterpret_cast<char *>(vtep_key->vtep_name),
+                    (kMaxLenVnodeName+1));
   okey = new ConfigKeyVal(UNC_KT_VTEP_GRP_MEMBER,
-      IpctSt::kIpcStKeyVtepGrpMember, vtep_grp_mem_key, NULL);
+                          IpctSt::kIpcStKeyVtepGrpMember,
+                          vtep_grp_mem_key,
+                          NULL);
   if (!okey) {
     FREE_IF_NOT_NULL(vtep_grp_mem_key);
     return UPLL_RC_ERR_GENERIC;
@@ -877,19 +888,20 @@ upll_rc_t VtepMoMgr::CreateVtepGrpConfigKey(ConfigKeyVal *&okey,
 
 
 upll_rc_t VtepMoMgr::IsReferenced(ConfigKeyVal *ikey,
-    upll_keytype_datatype_t dt_type,
-    DalDmlIntf *dmi) {
+                                  upll_keytype_datatype_t dt_type,
+                                  DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *okey = NULL;
   if (!ikey || !(ikey->get_key()) || !dmi)
     return UPLL_RC_ERR_GENERIC;
-  MoMgrImpl *mgr1 = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager*>
+  MoMgrImpl *mgr1 = reinterpret_cast<MoMgrImpl *>(
+      const_cast<MoManager*>
       (GetMoManager(UNC_KT_VTEP_IF)));
   if (!mgr1) return UPLL_RC_ERR_GENERIC;
   result_code = mgr1->IsReferenced(ikey, dt_type, dmi);
   result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)?
-                    UPLL_RC_SUCCESS:result_code;
+      UPLL_RC_SUCCESS:result_code;
   UPLL_LOG_DEBUG("Interface IsReferenced returned: (%d)", result_code);
   if (UPLL_RC_SUCCESS != result_code)
     return result_code;
@@ -897,7 +909,8 @@ upll_rc_t VtepMoMgr::IsReferenced(ConfigKeyVal *ikey,
   if (UPLL_RC_SUCCESS != result_code) {
     return result_code;
   }
-  MoMgrImpl *mgr2 = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager*>
+  MoMgrImpl *mgr2 = reinterpret_cast<MoMgrImpl *>(
+      const_cast<MoManager*>
       (GetMoManager(UNC_KT_VTEP_GRP_MEMBER)));
   if (!mgr2) {
     DELETE_IF_NOT_NULL(okey);
@@ -908,7 +921,7 @@ upll_rc_t VtepMoMgr::IsReferenced(ConfigKeyVal *ikey,
     return UPLL_RC_ERR_CFG_SEMANTIC;
 
   result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)?
-         UPLL_RC_SUCCESS:result_code;
+      UPLL_RC_SUCCESS:result_code;
   DELETE_IF_NOT_NULL(okey);
   return result_code;
 }
@@ -950,6 +963,6 @@ upll_rc_t VtepMoMgr::IsReferenced(ConfigKeyVal *ikey,
  }
  */
 
-}  // namespace vtn
+}  // namespace kt_momgr
 }  // namespace upll
 }  // namespace unc
index 663e43df870ea48a4c5b1fe85e5e7fb38cdf2ceb..8d1cba20a68d1a41742bd5beb4e899ce061d09fc 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -29,50 +29,50 @@ class VtepMoMgr : public VnodeMoMgr {
   static unc_key_type_t vtep_child[];
   static BindInfo       vtep_bind_info[];
   /**
-   * @brief  Gets the valid array position of the variable in the value 
-   *         structure from the table in the specified configuration  
+   * @brief  Gets the valid array position of the variable in the value
+   *         structure from the table in the specified configuration
    *
-   * @param[in]     val      pointer to the value structure 
+   * @param[in]     val      pointer to the value structure
    * @param[in]     indx     database index for the variable
-   * @param[out]    valid    position of the variable in the valid array - 
+   * @param[out]    valid    position of the variable in the valid array -
    *                          NULL if valid does not exist.
    * @param[in]     dt_type  specifies the configuration
-   * @param[in]     tbl      specifies the table containing the given value 
+   * @param[in]     tbl      specifies the table containing the given value
    *
    **/
   upll_rc_t GetValid(void *val,
-                      uint64_t indx,
-                      uint8_t *&valid,
-                      upll_keytype_datatype_t dt_type,
-                      MoMgrTables tbl) {
-     UPLL_FUNC_TRACE;
-       if (val == NULL) return UPLL_RC_ERR_GENERIC;
-       if (tbl == MAINTBL) {
-         switch (indx) {
-          case uudst::vtep::kDbiOperStatus:
-            valid = &(reinterpret_cast<val_db_vtep_st *>(val)->
-                      vtep_val_st.valid[UPLL_IDX_OPER_STATUS_VTEPS]);
-            break;
-          case uudst::vtep::kDbiDownCount:
-            valid = NULL;
-            break;
-         case uudst::vtep::kDbiDesc:
-           valid = &(reinterpret_cast<val_vtep *>(val)->
-                 valid[UPLL_IDX_DESC_VTEP]);
-           break;
-         case uudst::vtep::kDbiCtrlrName:
-           valid = &(reinterpret_cast<val_vtep *>(val)->
-                 valid[UPLL_IDX_CONTROLLER_ID_VTEP]);
-           break;
-         case uudst::vtep::kDbiDomainId:
-           valid = &(reinterpret_cast<val_vtep *>(val)->
-                 valid[UPLL_IDX_DOMAIN_ID_VTEP]);
-           break;
-         default:
-           return UPLL_RC_ERR_GENERIC;
-         }
-       }
-       return UPLL_RC_SUCCESS;
+                     uint64_t indx,
+                     uint8_t *&valid,
+                     upll_keytype_datatype_t dt_type,
+                     MoMgrTables tbl) {
+    UPLL_FUNC_TRACE;
+    if (val == NULL) return UPLL_RC_ERR_GENERIC;
+    if (tbl == MAINTBL) {
+      switch (indx) {
+        case uudst::vtep::kDbiOperStatus:
+          valid = &(reinterpret_cast<val_db_vtep_st *>(val)->
+                    vtep_val_st.valid[UPLL_IDX_OPER_STATUS_VTEPS]);
+          break;
+        case uudst::vtep::kDbiDownCount:
+          valid = NULL;
+          break;
+        case uudst::vtep::kDbiDesc:
+          valid = &(reinterpret_cast<val_vtep *>(val)->
+                    valid[UPLL_IDX_DESC_VTEP]);
+          break;
+        case uudst::vtep::kDbiCtrlrName:
+          valid = &(reinterpret_cast<val_vtep *>(val)->
+                    valid[UPLL_IDX_CONTROLLER_ID_VTEP]);
+          break;
+        case uudst::vtep::kDbiDomainId:
+          valid = &(reinterpret_cast<val_vtep *>(val)->
+                    valid[UPLL_IDX_DOMAIN_ID_VTEP]);
+          break;
+        default:
+          return UPLL_RC_ERR_GENERIC;
+      }
+    }
+    return UPLL_RC_SUCCESS;
   }
   upll_rc_t UpdateConfigStatus(ConfigKeyVal *vtep_key,
                                unc_keytype_operation_t op,
@@ -82,63 +82,68 @@ class VtepMoMgr : public VnodeMoMgr {
                                ConfigKeyVal *ctrlr_key = NULL);
 
   /**
-    * @brief  Update config status for commit result and vote result.
-    *
-    * @param[in/out]  ckv_running  ConfigKeyVal instance.
-    * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
-    * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
-    *
-    **/
+   * @brief  Update config status for commit result and vote result.
+   *
+   * @param[in/out]  ckv_running  ConfigKeyVal instance.
+   * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
+   * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
+   * @param[in]      dmi          Pointer to the DalDmlIntf(DB Interface)
+   *
+   **/
   upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
-                                     uuc::UpdateCtrlrPhase phase,
-                                     ConfigKeyVal *&ckv_running);
+                                    uuc::UpdateCtrlrPhase phase,
+                                    ConfigKeyVal *&ckv_running,
+                                    DalDmlIntf *dmi);
 
   /**
-     * @brief  Duplicates the input configkeyval including the key and val.  
-     * based on the tbl specified.
-     *
-     * @param[in]  okey   Output Configkeyval - allocated within the function
-     * @param[in]  req    Input ConfigKeyVal to be duplicated.
-     * @param[in]  tbl    specifies if the val structure belongs to the main table/ controller table or rename table.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
+   * @brief  Duplicates the input configkeyval including the key and val.
+   * based on the tbl specified.
+   *
+   * @param[in]  okey   Output Configkeyval - allocated within the function
+   * @param[in]  req    Input ConfigKeyVal to be duplicated.
+   * @param[in]  tbl    specifies if the val structure belongs to the main table/ controller table or rename table.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
   upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey,
                             ConfigKeyVal *&req, MoMgrTables tbl = MAINTBL);
   /**
-     * @brief  Allocates for the specified val in the given configuration in the     * specified table.   
-     *
-     * @param[in/out]  ck_val   Reference pointer to configval structure 
-     *                          allocated.      
-     * @param[in]      dt_type  specifies the configuration candidate/running/
-     *                          state 
-     * @param[in]      tbl      specifies if the corresponding table is the  
-     *                          main table / controller table or rename table.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
+   * @brief  Allocates for the specified val in the given configuration in the     * specified table.
+   *
+   * @param[in/out]  ck_val   Reference pointer to configval structure
+   *                          allocated.
+   * @param[in]      dt_type  specifies the configuration candidate/running/
+   *                          state
+   * @param[in]      tbl      specifies if the corresponding table is the
+   *                          main table / controller table or rename table.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
   upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
-                                         MoMgrTables tbl = MAINTBL);
-/**
-    * @brief      Method to get a configkeyval of a specified keytype from an input configkeyval
-    *
-    * @param[in/out]  okey                 pointer to output ConfigKeyVal 
-    * @param[in]      parent_key           pointer to the configkeyval from which the output configkey val is initialized.
-    *
-    * @retval         UPLL_RC_SUCCESS      Successfull completion.
-    * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-    */
+                     MoMgrTables tbl = MAINTBL);
+  /**
+   * @brief      Method to get a configkeyval of a specified keytype from an input configkeyval
+   *
+   * @param[in/out]  okey                 pointer to output ConfigKeyVal
+   * @param[in]      parent_key           pointer to the configkeyval from which the output configkey val is initialized.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   */
   upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey,
-              ConfigKeyVal *parent_key);
+                              ConfigKeyVal *parent_key);
   upll_rc_t GetRenamedControllerKey(ConfigKeyVal *ikey,
-         upll_keytype_datatype_t dt_type, DalDmlIntf *dmi,
-         uint8_t *ctrlr_name ) {
+                                    upll_keytype_datatype_t dt_type,
+                                    DalDmlIntf *dmi,
+                                    uint8_t *ctrlr_name ) {
     return UPLL_RC_SUCCESS;
   }
   upll_rc_t GetRenamedUncKey(ConfigKeyVal *ctrlr_key,
-         upll_keytype_datatype_t dt_type, DalDmlIntf *dmi, uint8_t *ctrlr_id) {
+                             upll_keytype_datatype_t dt_type,
+                             DalDmlIntf *dmi,
+                             uint8_t *ctrlr_id) {
     return UPLL_RC_SUCCESS;
   }
 
@@ -146,7 +151,7 @@ class VtepMoMgr : public VnodeMoMgr {
   upll_rc_t GetControllerDomainId(ConfigKeyVal *ikey,
                                   controller_domain *ctrlr_dom);
   upll_rc_t GetVnodeName(ConfigKeyVal *ikey,
-                      uint8_t *&vtn_name, uint8_t *&vnode_name);
+                         uint8_t *&vtn_name, uint8_t *&vnode_name);
 
   /**
    * @brief  Filters the attributes which need not be sent to controller
@@ -163,7 +168,7 @@ class VtepMoMgr : public VnodeMoMgr {
   /**
    * @brief  Compares the valid value between two database records.
    *        if both the values are same, update the valid flag for corresponding
-   *        attribute as invalid in the first record. 
+   *        attribute as invalid in the first record.
    *
    * @param[in/out]  val1   first record value instance.
    * @param[in]      val2   second record value instance.
@@ -197,7 +202,7 @@ class VtepMoMgr : public VnodeMoMgr {
    * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
    */
   upll_rc_t ValidateVTepValue(val_vtep_t *val_vtep, uint32_t operation =
-      UNC_OP_INVALID);
+                              UNC_OP_INVALID);
   /**
    * @Brief Checks if the specified key type(KT_VTEP) and
    *        associated attributes are supported on the given controller,
@@ -215,7 +220,7 @@ class VtepMoMgr : public VnodeMoMgr {
    */
 
   upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-      const char * crtlr_name);
+                               const char * crtlr_name);
   /**
    * @Brief Checks if the specified key type and
    *        associated attributes are supported on the given controller,
@@ -231,7 +236,7 @@ class VtepMoMgr : public VnodeMoMgr {
    */
   upll_rc_t ValVTepAttributeSupportCheck(
       val_vtep_t *val_vtep,
-  const uint8_t* attrs, unc_keytype_operation_t operation);
+      const uint8_t* attrs, unc_keytype_operation_t operation);
   bool GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo,
                             int &nattr,
                             MoMgrTables tbl) {
@@ -243,11 +248,12 @@ class VtepMoMgr : public VnodeMoMgr {
    *
    */
   upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey) {
-    return UPLL_RC_SUCCESS;
+    UPLL_LOG_INFO("Not supported for this keytype. Returning Generic Error");
+    return UPLL_RC_ERR_GENERIC;
   }
 
   upll_rc_t IsReferenced(ConfigKeyVal *ikey,
-           upll_keytype_datatype_t dt_type, DalDmlIntf *dmi);
+                         upll_keytype_datatype_t dt_type, DalDmlIntf *dmi);
 
  public:
   VtepMoMgr();
@@ -259,7 +265,7 @@ class VtepMoMgr : public VnodeMoMgr {
     delete[] table;
   }
   /**
-   * @Brief  compares controller id and domain id before 
+   * @Brief  compares controller id and domain id before
    *         updating the value to DB.
    *
    * @param[in]  ikey  ikey contains key and value structure.
@@ -271,14 +277,14 @@ class VtepMoMgr : public VnodeMoMgr {
   upll_rc_t CtrlrIdAndDomainIdUpdationCheck(ConfigKeyVal *ikey,
                                             ConfigKeyVal *okey);
   /**
-    * @brief      Method to check if individual portions of a key are valid
-    *
-    * @param[in/out]  ikey                 pointer to ConfigKeyVal referring to a UNC resource
-    * @param[in]      index                db index associated with the variable
-    *
-    * @retval         true                 input key is valid
-    * @retval         false                input key is invalid.
-    **/
+   * @brief      Method to check if individual portions of a key are valid
+   *
+   * @param[in/out]  ikey                 pointer to ConfigKeyVal referring to a UNC resource
+   * @param[in]      index                db index associated with the variable
+   *
+   * @retval         true                 input key is valid
+   * @retval         false                input key is invalid.
+   **/
   bool IsValidKey(void *tkey, uint64_t index);
   /**
    * @Brief Validates the syntax for KT_VTEP keytype key structure.
@@ -302,61 +308,61 @@ class VtepMoMgr : public VnodeMoMgr {
    */
   upll_rc_t CreateVnodeConfigKey(ConfigKeyVal *ikey, ConfigKeyVal *&okey);
 
-/**
-    * @brief      Method to get a configkeyval of the parent keytype 
-    *
-    * @param[in/out]  okey           pointer to parent ConfigKeyVal 
-    * @param[in]      ikey           pointer to the child configkeyval from 
-    * which the parent configkey val is obtained.
-    *
-    * @retval         UPLL_RC_SUCCESS      Successfull completion.
-    * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-    **/
+  /**
+   * @brief      Method to get a configkeyval of the parent keytype
+   *
+   * @param[in/out]  okey           pointer to parent ConfigKeyVal
+   * @param[in]      ikey           pointer to the child configkeyval from
+   * which the parent configkey val is obtained.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
   upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
 
-  /* @brief           This method invoke when the VTEP Delete operation 
-     *                thie function creates the configkey for vtepgrpmember
-     *                 
-     *              
-     * @param[in/out] okey           key and value structure
-     * @param[in]     ikey           key and value structure                   
-     *
-     * @retval  UPLL_RC_SUCCESS                    Completed successfully.
-     * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
-     * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
-     * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
-     * @retval  UPLL_RC_ERR_SEMANTIC               Semantic check error.
-     * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist 
-     *
-     **/
+  /* @brief           This method invoke when the VTEP Delete operation
+   *                thie function creates the configkey for vtepgrpmember
+   *
+   *
+   * @param[in/out] okey           key and value structure
+   * @param[in]     ikey           key and value structure
+   *
+   * @retval  UPLL_RC_SUCCESS                    Completed successfully.
+   * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
+   * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
+   * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
+   * @retval  UPLL_RC_ERR_SEMANTIC               Semantic check error.
+   * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist
+   *
+   **/
   upll_rc_t CreateVtepGrpConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
   /* @brief         This method invoke when the VTN merge hapeening between
-     *                Running and DT import. This will checks the vnode name 
-     *                unique or not. 
-     *              
-     * @param[in]     keytype       UNC KEY TYPE
-     * @param[in/out] ctrlr_id      Controller ID                    
-     * @param[in]     conflict_ckv  key and value structure 
-     * @param[in]     dal    Pointer to the DalDmlIntf(DB Interface)
-     * 
-     * @retval  UPLL_RC_SUCCESS                    Completed successfully.
-     * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
-     * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
-     * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
-     * @retval  UPLL_RC_ERR_MERGE_CONFLICT         Semantic check error.
-     * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist 
-     *
-     **/
+   *                Running and DT import. This will checks the vnode name
+   *                unique or not.
+   *
+   * @param[in]     keytype       UNC KEY TYPE
+   * @param[in/out] ctrlr_id      Controller ID
+   * @param[in]     conflict_ckv  key and value structure
+   * @param[in]     dal    Pointer to the DalDmlIntf(DB Interface)
+   *
+   * @retval  UPLL_RC_SUCCESS                    Completed successfully.
+   * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
+   * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
+   * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
+   * @retval  UPLL_RC_ERR_MERGE_CONFLICT         Semantic check error.
+   * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist
+   *
+   **/
   upll_rc_t MergeValidate(unc_key_type_t keytype, const char *ctrlr_id,
-                     ConfigKeyVal *ikey, DalDmlIntf *dmi) {
-     return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT;
+                          ConfigKeyVal *ikey, DalDmlIntf *dmi) {
+    return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT;
   }
 };
 
 
 
 
-}  // namespace vtn
+}  // namespace kt_momgr
 }  // namespace upll
 }  // namespace unc
 #endif
index 7ed5598518354abe4db72bcd2476b817f1ea8221..f338c67d48a83948a055b45c22d9c62c88abfc06 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -36,9 +36,9 @@ BindInfo VtepGrpMemMoMgr::vtepgrp_mem_bind_info[] = {
 VtepGrpMemMoMgr::VtepGrpMemMoMgr() {
   UPLL_FUNC_TRACE;
   Table *tbl = new Table(uudst::kDbiVtepGrpMemTbl, UNC_KT_VTEP_GRP_MEMBER,
-      vtepgrp_mem_bind_info, IpctSt::kIpcStKeyVtepGrpMember,
-      IpctSt::kIpcStValVtepGrpMember,
-      uudst::vtep_groupmember::kDbiVtepGrpMemNumCols);
+                         vtepgrp_mem_bind_info, IpctSt::kIpcStKeyVtepGrpMember,
+                         IpctSt::kIpcStValVtepGrpMember,
+                         uudst::vtep_groupmember::kDbiVtepGrpMemNumCols);
   ntable = MAX_MOMGR_TBLS;
   table = new Table *[ntable];
   table[MAINTBL] = tbl;
@@ -54,7 +54,7 @@ VtepGrpMemMoMgr::VtepGrpMemMoMgr() {
 /*
  * Based on the key type the bind info will pass
  *
- bool VtepGrpMemMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo, int &nattr, 
+ bool VtepGrpMemMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo, int &nattr,
  MoMgrTables tbl ) {
  if (MAINTBL == tbl) {
 
@@ -67,13 +67,13 @@ VtepGrpMemMoMgr::VtepGrpMemMoMgr() {
 bool VtepGrpMemMoMgr::IsValidKey(void *key, uint64_t index) {
   UPLL_FUNC_TRACE;
   key_vtep_grp_member *vtep_grp_mem_key = reinterpret_cast
-                                          <key_vtep_grp_member *>(key);
+      <key_vtep_grp_member *>(key);
   upll_rc_t ret_val = UPLL_RC_SUCCESS;
   switch (index) {
     case uudst::vtep_groupmember::kDbiVtnName:
       ret_val = ValidateKey(reinterpret_cast<char *>
-                (vtep_grp_mem_key->vtepgrp_key.vtn_key.vtn_name),
-                kMinLenVtnName, kMaxLenVtnName);
+                            (vtep_grp_mem_key->vtepgrp_key.vtn_key.vtn_name),
+                            kMinLenVtnName, kMaxLenVtnName);
       if (ret_val != UPLL_RC_SUCCESS) {
         UPLL_LOG_TRACE("VTN Name is not valid(%d)", ret_val);
         return false;
@@ -81,8 +81,8 @@ bool VtepGrpMemMoMgr::IsValidKey(void *key, uint64_t index) {
       break;
     case uudst::vtep_groupmember::kDbiVtepgrpName:
       ret_val = ValidateKey(reinterpret_cast<char *>
-                    (vtep_grp_mem_key->vtepgrp_key.vtepgrp_name),
-                    kMinLenVnodeName, kMaxLenVnodeName);
+                            (vtep_grp_mem_key->vtepgrp_key.vtepgrp_name),
+                            kMinLenVnodeName, kMaxLenVnodeName);
       if (ret_val != UPLL_RC_SUCCESS) {
         UPLL_LOG_TRACE("VtepGroup Name is not valid(%d)", ret_val);
         return false;
@@ -90,8 +90,8 @@ bool VtepGrpMemMoMgr::IsValidKey(void *key, uint64_t index) {
       break;
     case uudst::vtep_groupmember::kDbiVtepgrpMemberName:
       ret_val = ValidateKey(reinterpret_cast<char *>
-                    (vtep_grp_mem_key->vtepmember_name),
-                    kMinLenVnodeName, kMaxLenVnodeName);
+                            (vtep_grp_mem_key->vtepmember_name),
+                            kMinLenVnodeName, kMaxLenVnodeName);
       if (ret_val != UPLL_RC_SUCCESS) {
         UPLL_LOG_TRACE("VtepGroup Name is not valid(%d)", ret_val);
         return false;
@@ -105,12 +105,12 @@ bool VtepGrpMemMoMgr::IsValidKey(void *key, uint64_t index) {
 }
 
 upll_rc_t VtepGrpMemMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
-    ConfigKeyVal *parent_key) {
+                                             ConfigKeyVal *parent_key) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   void *pkey;
   key_vtep_grp_member *vtep_key = static_cast<key_vtep_grp_member *>
-    (ConfigKeyVal::Malloc(sizeof(key_vtep_grp_member)));
+      (ConfigKeyVal::Malloc(sizeof(key_vtep_grp_member)));
   if (vtep_key == NULL) return UPLL_RC_ERR_GENERIC;
   if (parent_key == NULL) {
     okey = new ConfigKeyVal(UNC_KT_VTEP_GRP_MEMBER,
@@ -140,46 +140,49 @@ upll_rc_t VtepGrpMemMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
   switch (parent_key->get_key_type()) {
     case UNC_KT_VTEP_GRP_MEMBER:
       uuu::upll_strncpy(vtep_key->vtepmember_name,
-             reinterpret_cast<key_vtep_grp_member *>(pkey)->vtepmember_name,
-             (kMaxLenVnodeName+1));
+                        reinterpret_cast<key_vtep_grp_member *>
+                        (pkey)->vtepmember_name,
+                        (kMaxLenVnodeName+1));
       /* fall through intended */
     case UNC_KT_VTEP_GRP:
       uuu::upll_strncpy(vtep_key->vtepgrp_key.vtepgrp_name,
-             reinterpret_cast<key_vtep_grp *>(pkey)->vtepgrp_name,
-             (kMaxLenVnodeName+1));
+                        reinterpret_cast<key_vtep_grp *>(pkey)->vtepgrp_name,
+                        (kMaxLenVnodeName+1));
       uuu::upll_strncpy(vtep_key->vtepgrp_key.vtn_key.vtn_name,
-             reinterpret_cast<key_vtep_grp *>(pkey)->vtn_key.vtn_name,
-             (kMaxLenVtnName+1));
+                        reinterpret_cast<key_vtep_grp *>
+                        (pkey)->vtn_key.vtn_name,
+                        (kMaxLenVtnName+1));
       break;
     case UNC_KT_VTN:
     default:
       uuu::upll_strncpy(vtep_key->vtepgrp_key.vtn_key.vtn_name,
-             reinterpret_cast<key_vtn *>(pkey)->vtn_name, (kMaxLenVtnName+1));
+                        reinterpret_cast<key_vtn *>(pkey)->vtn_name,
+                        (kMaxLenVtnName+1));
   }
   SET_USER_DATA(okey, parent_key);
   return result_code;
 }
 
 upll_rc_t VtepGrpMemMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
-    ConfigKeyVal *ikey ) {
+                                              ConfigKeyVal *ikey ) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   key_vtep_grp_member *pkey = (ikey)?
-    static_cast<key_vtep_grp_member *>(ikey->get_key()):NULL;
+      static_cast<key_vtep_grp_member *>(ikey->get_key()):NULL;
   if (!pkey) return UPLL_RC_ERR_GENERIC;
   if (ikey->get_key_type() != UNC_KT_VTEP_GRP_MEMBER)
     return UPLL_RC_ERR_GENERIC;
   key_vtep_grp *vtepgrp_key = reinterpret_cast<key_vtep_grp *>
-    (ConfigKeyVal::Malloc(sizeof(key_vtep_grp)));
+      (ConfigKeyVal::Malloc(sizeof(key_vtep_grp)));
   uuu::upll_strncpy(vtepgrp_key->vtn_key.vtn_name,
-         reinterpret_cast<key_vtep_grp_member *>(pkey)->
-         vtepgrp_key.vtn_key.vtn_name, (kMaxLenVtnName+1));
+                    reinterpret_cast<key_vtep_grp_member *>(pkey)->
+                    vtepgrp_key.vtn_key.vtn_name, (kMaxLenVtnName+1));
   uuu::upll_strncpy(vtepgrp_key->vtepgrp_name,
-         reinterpret_cast<key_vtep_grp_member *>(pkey)->
-         vtepgrp_key.vtepgrp_name, (kMaxLenVnodeName+1));
+                    reinterpret_cast<key_vtep_grp_member *>(pkey)->
+                    vtepgrp_key.vtepgrp_name, (kMaxLenVnodeName+1));
   DELETE_IF_NOT_NULL(okey);
   okey = new ConfigKeyVal(UNC_KT_VTEP_GRP, IpctSt::kIpcStKeyVtepGrp,
-         vtepgrp_key, NULL);
+                          vtepgrp_key, NULL);
   if (okey == NULL) {
     free(vtepgrp_key);
     result_code = UPLL_RC_ERR_GENERIC;
@@ -191,7 +194,8 @@ upll_rc_t VtepGrpMemMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
 
 
 upll_rc_t VtepGrpMemMoMgr::AllocVal(ConfigVal *&ck_val,
-    upll_keytype_datatype_t dt_type, MoMgrTables tbl) {
+                                    upll_keytype_datatype_t dt_type,
+                                    MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
   void *val;
   if (ck_val != NULL) return UPLL_RC_ERR_GENERIC;
@@ -213,7 +217,8 @@ upll_rc_t VtepGrpMemMoMgr::AllocVal(ConfigVal *&ck_val,
 }
 
 upll_rc_t VtepGrpMemMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
-    ConfigKeyVal *&req, MoMgrTables tbl) {
+                                           ConfigKeyVal *&req,
+                                           MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
   if (req == NULL) return UPLL_RC_ERR_GENERIC;
   if (okey != NULL) return UPLL_RC_ERR_GENERIC;
@@ -223,7 +228,7 @@ upll_rc_t VtepGrpMemMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
   if (tmp) {
     if (tbl == MAINTBL) {
       val_vtep_grp_member *ival = reinterpret_cast
-                                  <val_vtep_grp_member *>(GetVal(req));
+          <val_vtep_grp_member *>(GetVal(req));
       val_vtep_grp_member *vtep_val = reinterpret_cast<val_vtep_grp_member *>
           (ConfigKeyVal::Malloc(sizeof(val_vtep_grp_member)));
       if (!vtep_val) return UPLL_RC_ERR_GENERIC;
@@ -238,7 +243,7 @@ upll_rc_t VtepGrpMemMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
   void *tkey = (req != NULL)?(req)->get_key():NULL;
   key_vtep_grp_member *ikey = reinterpret_cast<key_vtep_grp_member *>(tkey);
   key_vtep_grp_member *vtep_key = reinterpret_cast<key_vtep_grp_member *>
-     (ConfigKeyVal::Malloc(sizeof(key_vtep_grp_member)));
+      (ConfigKeyVal::Malloc(sizeof(key_vtep_grp_member)));
   if (!vtep_key) {
     if (tmp1) delete tmp1;
     return UPLL_RC_ERR_GENERIC;
@@ -266,20 +271,20 @@ upll_rc_t VtepGrpMemMoMgr::UpdateConfigStatus(ConfigKeyVal *vtepgrpmem_key,
   UPLL_FUNC_TRACE;
   val_vtep_grp_member *vtep_grp_member_val;
   unc_keytype_configstatus_t cs_status =
-           (driver_result == UPLL_RC_SUCCESS)?UNC_CS_APPLIED
-                                             :UNC_CS_NOT_APPLIED;
+      (driver_result == UPLL_RC_SUCCESS)?UNC_CS_APPLIED
+      :UNC_CS_NOT_APPLIED;
   vtep_grp_member_val = reinterpret_cast<val_vtep_grp_member *>
-                                        (GetVal(vtepgrpmem_key));
+      (GetVal(vtepgrpmem_key));
   if (vtep_grp_member_val == NULL) return UPLL_RC_ERR_GENERIC;
   if (op == UNC_OP_CREATE) {
     vtep_grp_member_val->cs_row_status = cs_status;
   } else if (op == UNC_OP_UPDATE) {
-  val_vtep_grp_member *grp_mem_val_run =
-                        reinterpret_cast<val_vtep_grp_member *>
-                                        (GetVal(upd_key));
-  UPLL_LOG_TRACE("%s", (upd_key->ToStrAll()).c_str());
-  vtep_grp_member_val->cs_row_status =
-                          grp_mem_val_run->cs_row_status;
+    val_vtep_grp_member *grp_mem_val_run =
+        reinterpret_cast<val_vtep_grp_member *>
+        (GetVal(upd_key));
+    UPLL_LOG_TRACE("%s", (upd_key->ToStrAll()).c_str());
+    vtep_grp_member_val->cs_row_status =
+        grp_mem_val_run->cs_row_status;
   }
   return UPLL_RC_SUCCESS;
 }
@@ -287,25 +292,26 @@ upll_rc_t VtepGrpMemMoMgr::UpdateConfigStatus(ConfigKeyVal *vtepgrpmem_key,
 upll_rc_t VtepGrpMemMoMgr::UpdateAuditConfigStatus(
     unc_keytype_configstatus_t cs_status,
     uuc::UpdateCtrlrPhase phase,
-    ConfigKeyVal *&ckv_running) {
+    ConfigKeyVal *&ckv_running,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   val_vtep_grp_member_t *vtepgrpmem_val = (ckv_running != NULL)?
-    reinterpret_cast<val_vtep_grp_member_t *>
-    (GetVal(ckv_running)):NULL;
+      reinterpret_cast<val_vtep_grp_member_t *>
+      (GetVal(ckv_running)):NULL;
   if (NULL == vtepgrpmem_val) {
     return UPLL_RC_ERR_GENERIC;
   }
   if (uuc::kUpllUcpCreate == phase )
     vtepgrpmem_val->cs_row_status = cs_status;
   if ((uuc::kUpllUcpUpdate == phase) &&
-           (vtepgrpmem_val->cs_row_status == UNC_CS_INVALID ||
-            vtepgrpmem_val->cs_row_status == UNC_CS_NOT_APPLIED))
+      (vtepgrpmem_val->cs_row_status == UNC_CS_INVALID ||
+       vtepgrpmem_val->cs_row_status == UNC_CS_NOT_APPLIED))
     vtepgrpmem_val->cs_row_status = cs_status;
   return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t VtepGrpMemMoMgr::ValidateMessage(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey) {
+                                           ConfigKeyVal *ikey) {
   UPLL_FUNC_TRACE;
   upll_rc_t ret_val = UPLL_RC_ERR_GENERIC;
   if (!ikey || !req || !(ikey->get_key())) {
@@ -324,13 +330,13 @@ upll_rc_t VtepGrpMemMoMgr::ValidateMessage(IpcReqRespHeader *req,
 
   if (ikey->get_st_num() != IpctSt::kIpcStKeyVtepGrpMember) {
     UPLL_LOG_DEBUG("Invalid structure received.Expected struct-"
-        "kIpcStKeyVtepGrpMember, received struct -%s ",
-        reinterpret_cast<const char *>
-        (IpctSt::GetIpcStdef(ikey->get_st_num())));
+                   "kIpcStKeyVtepGrpMember, received struct -%s ",
+                   reinterpret_cast<const char *>
+                   (IpctSt::GetIpcStdef(ikey->get_st_num())));
     return UPLL_RC_ERR_BAD_REQUEST;
   }
   key_vtep_grp_member_t *key_vtep_grp_member =
-    reinterpret_cast <key_vtep_grp_member_t *> (ikey->get_key());
+      reinterpret_cast <key_vtep_grp_member_t *> (ikey->get_key());
 
   ret_val = ValidateVTepGrpMemberKey(key_vtep_grp_member, operation);
   if (ret_val != UPLL_RC_SUCCESS) {
@@ -339,31 +345,31 @@ upll_rc_t VtepGrpMemMoMgr::ValidateMessage(IpcReqRespHeader *req,
   } else {
     if (((operation == UNC_OP_CREATE) || (operation == UNC_OP_UPDATE) ||
          (operation == UNC_OP_DELETE)) &&
-         (dt_type == UPLL_DT_CANDIDATE)) {
+        (dt_type == UPLL_DT_CANDIDATE)) {
       UPLL_LOG_TRACE("Value structure validation is none");
       return UPLL_RC_SUCCESS;
     } else if (((operation == UNC_OP_READ) ||
-          (operation == UNC_OP_READ_SIBLING) ||
-          (operation == UNC_OP_READ_SIBLING_BEGIN) ||
-          (operation == UNC_OP_READ_SIBLING_COUNT) ||
-          (operation == UNC_OP_READ_NEXT) ||
-          (operation == UNC_OP_READ_BULK))
-        && ((dt_type == UPLL_DT_CANDIDATE) ||
-          (dt_type == UPLL_DT_RUNNING) ||
-          (dt_type == UPLL_DT_STARTUP) ||
-          (dt_type == UPLL_DT_STATE))) {
+                (operation == UNC_OP_READ_SIBLING) ||
+                (operation == UNC_OP_READ_SIBLING_BEGIN) ||
+                (operation == UNC_OP_READ_SIBLING_COUNT) ||
+                (operation == UNC_OP_READ_NEXT) ||
+                (operation == UNC_OP_READ_BULK))
+               && ((dt_type == UPLL_DT_CANDIDATE) ||
+                   (dt_type == UPLL_DT_RUNNING) ||
+                   (dt_type == UPLL_DT_STARTUP) ||
+                   (dt_type == UPLL_DT_STATE))) {
       if (option1 == UNC_OPT1_NORMAL) {
         if (option2 == UNC_OPT2_NONE) {
-       UPLL_LOG_TRACE("Value structure validation is none");
-       return UPLL_RC_SUCCESS;
-     }  else {
-       UPLL_LOG_DEBUG("option2 is not matching");
-       return UPLL_RC_ERR_INVALID_OPTION2;
-     }
-     } else {
-      UPLL_LOG_DEBUG("option1 is not matching");
-      return UPLL_RC_ERR_INVALID_OPTION1;
-     }
+          UPLL_LOG_TRACE("Value structure validation is none");
+          return UPLL_RC_SUCCESS;
+        }  else {
+          UPLL_LOG_DEBUG("option2 is not matching");
+          return UPLL_RC_ERR_INVALID_OPTION2;
+        }
+      } else {
+        UPLL_LOG_DEBUG("option1 is not matching");
+        return UPLL_RC_ERR_INVALID_OPTION1;
+      }
     } else {
       UPLL_LOG_DEBUG("Invalid datatype(%d) and operation(%d)", dt_type,
                      operation);
@@ -374,17 +380,17 @@ upll_rc_t VtepGrpMemMoMgr::ValidateMessage(IpcReqRespHeader *req,
 }
 
 upll_rc_t VtepGrpMemMoMgr::ValidateAttribute(ConfigKeyVal *kval,
-                            DalDmlIntf *dmi,
-                            IpcReqRespHeader *req) {
+                                             DalDmlIntf *dmi,
+                                             IpcReqRespHeader *req) {
   UPLL_FUNC_TRACE;
   ConfigKeyVal *ck_vtep = NULL;
   upll_rc_t result_code = GetVtepConfigValData(kval, ck_vtep,
-                                       UPLL_DT_CANDIDATE, dmi);
+                                               UPLL_DT_CANDIDATE, dmi);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("Error in fetching the Vtep data from DB %d",
                    result_code);
     result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)?
-                   UPLL_RC_ERR_CFG_SEMANTIC:result_code;
+        UPLL_RC_ERR_CFG_SEMANTIC:result_code;
   }
   DELETE_IF_NOT_NULL(ck_vtep);
   return result_code;
@@ -411,7 +417,7 @@ upll_rc_t VtepGrpMemMoMgr::ValidateCapability(
 
   if (!ctrlr_name) {
     ctrlr_name = reinterpret_cast<char*>((reinterpret_cast<key_user_data_t *>
-                  (ikey->get_user_data()))->ctrlr_id);
+                                          (ikey->get_user_data()))->ctrlr_id);
     if (!ctrlr_name || !strlen(ctrlr_name)) {
       UPLL_LOG_DEBUG("Controller Name is NULL");
       return UPLL_RC_ERR_GENERIC;
@@ -424,23 +430,16 @@ upll_rc_t VtepGrpMemMoMgr::ValidateCapability(
   uint32_t option2 = req->option2;
 
   UPLL_LOG_DEBUG("dt_type   : (%d)"
-               "operation : (%d)"
-               "option1   : (%d)"
-               "option2   : (%d)",
-               dt_type, operation, option1, option2);
+                 "operation : (%d)"
+                 "option1   : (%d)"
+                 "option2   : (%d)",
+                 dt_type, operation, option1, option2);
 
   switch (operation) {
     case UNC_OP_CREATE: {
       result_code = GetCreateCapability(ctrlr_name, ikey->get_key_type(),
                                         &max_instance_count,
                                         &max_attrs, &attrs);
-      if (result_code && (max_instance_count != 0) &&
-          (cur_instance_count >= max_instance_count)) {
-        UPLL_LOG_DEBUG("[%s:%d:%s Instance count %d exceeds %d", __FILE__,
-                      __LINE__, __FUNCTION__, cur_instance_count,
-                      max_instance_count);
-        return UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
-      }
       break;
     }
     case UNC_OP_UPDATE: {
@@ -477,7 +476,8 @@ upll_rc_t VtepGrpMemMoMgr::ValidateVTepGrpMemberKey(
   UPLL_FUNC_TRACE;
   upll_rc_t ret_val = UPLL_RC_SUCCESS;
   ret_val = ValidateKey(
-  reinterpret_cast<char *>(key_vtep_grp_member->vtepgrp_key.vtn_key.vtn_name),
+      reinterpret_cast<char *>(key_vtep_grp_member->
+                               vtepgrp_key.vtn_key.vtn_name),
       kMinLenVtnName, kMaxLenVtnName);
   if (ret_val != UPLL_RC_SUCCESS) {
     UPLL_LOG_INFO("Vtn Name syntax check failed."
@@ -490,18 +490,18 @@ upll_rc_t VtepGrpMemMoMgr::ValidateVTepGrpMemberKey(
       kMinLenVnodeName, kMaxLenVnodeName);
   if (ret_val != UPLL_RC_SUCCESS) {
     UPLL_LOG_INFO("VtepGrpName syntax check failed."
-                "Received VtepGrpName -%s",
-                key_vtep_grp_member->vtepgrp_key.vtepgrp_name);
+                  "Received VtepGrpName -%s",
+                  key_vtep_grp_member->vtepgrp_key.vtepgrp_name);
     return UPLL_RC_ERR_CFG_SYNTAX;
   }
   if ((operation != UNC_OP_READ_SIBLING_BEGIN) &&
       (operation != UNC_OP_READ_SIBLING_COUNT)) {
     ret_val = ValidateKey(reinterpret_cast<char *>
-        (key_vtep_grp_member->vtepmember_name),
-        kMinLenVnodeName, kMaxLenVnodeName);
+                          (key_vtep_grp_member->vtepmember_name),
+                          kMinLenVnodeName, kMaxLenVnodeName);
     if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_INFO("Syntax check failed. vtepmember_name-%s",
-          key_vtep_grp_member->vtepmember_name);
+                    key_vtep_grp_member->vtepmember_name);
       return ret_val;
     }
   } else {
@@ -511,23 +511,24 @@ upll_rc_t VtepGrpMemMoMgr::ValidateVTepGrpMemberKey(
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t VtepGrpMemMoMgr::GetControllerDomainId(ConfigKeyVal *ikey,
-                                       upll_keytype_datatype_t dt_type,
-                                       controller_domain_t *ctrlr_dom,
-                                       DalDmlIntf *dmi) {
+upll_rc_t VtepGrpMemMoMgr::GetControllerDomainId(
+    ConfigKeyVal *ikey,
+    upll_keytype_datatype_t dt_type,
+    controller_domain_t *ctrlr_dom,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   ConfigKeyVal *ck_vtep = NULL;
   upll_rc_t result_code = GetVtepConfigValData(ikey, ck_vtep,
-                                       UPLL_DT_CANDIDATE, dmi);
+                                               UPLL_DT_CANDIDATE, dmi);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("Error in fetching the Vtep data from DB %d",
                    result_code);
     result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)?
-                   UPLL_RC_ERR_CFG_SEMANTIC:result_code;
+        UPLL_RC_ERR_CFG_SEMANTIC:result_code;
     return result_code;
   }
   MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
-                                            (GetMoManager(UNC_KT_VTEP)));
+                                                 (GetMoManager(UNC_KT_VTEP)));
   if (!mgr) return UPLL_RC_ERR_GENERIC;
   result_code = mgr->GetControllerDomainId(ck_vtep, ctrlr_dom);
   if (result_code != UPLL_RC_SUCCESS)
@@ -545,8 +546,8 @@ upll_rc_t VtepGrpMemMoMgr::GetControllerDomainId(ConfigKeyVal *ikey,
 }
 
 upll_rc_t VtepGrpMemMoMgr::CompareControllers(ConfigKeyVal *ikey,
-    upll_keytype_datatype_t dt_type,
-    DalDmlIntf *dmi) {
+                                              upll_keytype_datatype_t dt_type,
+                                              DalDmlIntf *dmi) {
   ConfigKeyVal *parent_grp_key = NULL;
   controller_domain *ctrlr_dom[2] = { NULL, NULL };
   upll_rc_t result_code = UPLL_RC_SUCCESS;
@@ -578,23 +579,23 @@ upll_rc_t VtepGrpMemMoMgr::CompareControllers(ConfigKeyVal *ikey,
 }
 
 upll_rc_t VtepGrpMemMoMgr::GetVtepConfigValData(ConfigKeyVal *ikey,
-    ConfigKeyVal *&okey,
-    upll_keytype_datatype_t dt_type,
-    DalDmlIntf *dmi) {
+                                                ConfigKeyVal *&okey,
+                                                upll_keytype_datatype_t dt_type,
+                                                DalDmlIntf *dmi) {
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
-                                            (GetMoManager(UNC_KT_VTEP)));
+                                                 (GetMoManager(UNC_KT_VTEP)));
   if (!mgr) return UPLL_RC_ERR_GENERIC;
   key_vtep *vtep_key = reinterpret_cast<key_vtep *>
-                       (ConfigKeyVal::Malloc(sizeof(key_vtep)));
+      (ConfigKeyVal::Malloc(sizeof(key_vtep)));
   if (!vtep_key) return UPLL_RC_ERR_GENERIC;
   uuu::upll_strncpy(vtep_key->vtep_name,
-         reinterpret_cast<key_vtep_grp_member *>
-         (ikey->get_key())->vtepmember_name, (kMaxLenVnodeName+1));
+                    reinterpret_cast<key_vtep_grp_member *>
+                    (ikey->get_key())->vtepmember_name, (kMaxLenVnodeName+1));
   uuu::upll_strncpy(vtep_key->vtn_key.vtn_name,
-          reinterpret_cast<key_vtep_grp_member *>
-         (ikey->get_key())->vtepgrp_key.vtn_key.vtn_name,
-         (kMaxLenVtnName+1));
+                    reinterpret_cast<key_vtep_grp_member *>
+                    (ikey->get_key())->vtepgrp_key.vtn_key.vtn_name,
+                    (kMaxLenVtnName+1));
   okey = new ConfigKeyVal(UNC_KT_VTEP, IpctSt::kIpcStKeyVtep, vtep_key, NULL);
 
   if (okey == NULL) {
@@ -602,7 +603,7 @@ upll_rc_t VtepGrpMemMoMgr::GetVtepConfigValData(ConfigKeyVal *ikey,
     return UPLL_RC_ERR_GENERIC;
   } else {
     DbSubOp dbop = {kOpReadSingle, kOpMatchNone,
-                    kOpInOutCtrlr | kOpInOutDomain | kOpInOutFlag};
+      kOpInOutCtrlr | kOpInOutDomain | kOpInOutFlag};
     result_code = mgr->ReadConfigDB(okey, dt_type, UNC_OP_READ,
                                     dbop, dmi, MAINTBL);
     if (UPLL_RC_SUCCESS != result_code) {
@@ -637,6 +638,6 @@ upll_rc_t VtepGrpMemMoMgr::GetVtepConfigValData(ConfigKeyVal *ikey,
    }
    */
 
-}  // namespace vtn
+}  // namespace kt_momgr
 }  // namespace upll
 }  // namespace unc
index d65c0f961013477b852d90b8b889341cf6b902af..99b29f42f82f594bb55e7ce510903b903041a6b3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -28,21 +28,21 @@ enum VtepGrpMemMoMgrTables {
 class VtepGrpMemMoMgr : public VnodeChildMoMgr {
  private:
   static BindInfo       vtepgrp_mem_bind_info[];
-//  static BindInfo       key_vtepgrp_mem_maintbl_update_bind_info[];
+  //  static BindInfo       key_vtepgrp_mem_maintbl_update_bind_info[];
   /**
-   * @brief  Gets the valid array position of the variable in the value 
-   *         structure from the table in the specified configuration  
+   * @brief  Gets the valid array position of the variable in the value
+   *         structure from the table in the specified configuration
    *
-   * @param[in]     val      pointer to the value structure 
+   * @param[in]     val      pointer to the value structure
    * @param[in]     indx     database index for the variable
-   * @param[out]    valid    position of the variable in the valid array - 
+   * @param[out]    valid    position of the variable in the valid array -
    *                          NULL if valid does not exist.
    * @param[in]     dt_type  specifies the configuration
-   * @param[in]     tbl      specifies the table containing the given value 
+   * @param[in]     tbl      specifies the table containing the given value
    *
    **/
   upll_rc_t GetValid(void *val, uint64_t indx, uint8_t *&valid,
-      upll_keytype_datatype_t dt_type, MoMgrTables tbl ) {
+                     upll_keytype_datatype_t dt_type, MoMgrTables tbl ) {
     UPLL_FUNC_TRACE;
     valid = NULL;
     return UPLL_RC_SUCCESS;
@@ -53,10 +53,12 @@ class VtepGrpMemMoMgr : public VnodeChildMoMgr {
                                ConfigKeyVal *upd_key,
                                DalDmlIntf *dmi,
                                ConfigKeyVal *ctrlr_key = NULL);
-  upll_rc_t UpdateAuditConfigStatus(
-                     unc_keytype_configstatus_t cs_status,
-                     uuc::UpdateCtrlrPhase phase,
-                     ConfigKeyVal *&ckv_running);
+
+  upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
+                                    uuc::UpdateCtrlrPhase phase,
+                                    ConfigKeyVal *&ckv_running,
+                                    DalDmlIntf *dmi);
+
   bool CompareValidValue(void *&val1, void *val2, bool audit) {
     return true;
   }
@@ -70,58 +72,58 @@ class VtepGrpMemMoMgr : public VnodeChildMoMgr {
                               DalDmlIntf *dmi,
                               IpcReqRespHeader *req = NULL);
   /**
-     * @brief  Duplicates the input configkeyval including the key and val.  
-     * based on the tbl specified.
-     *
-     * @param[in]  okey   Output Configkeyval - allocated within the function
-     * @param[in]  req    Input ConfigKeyVal to be duplicated.
-     * @param[in]  tbl    specifies if the val structure belongs to the main table/ controller table or rename table.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
+   * @brief  Duplicates the input configkeyval including the key and val.
+   * based on the tbl specified.
+   *
+   * @param[in]  okey   Output Configkeyval - allocated within the function
+   * @param[in]  req    Input ConfigKeyVal to be duplicated.
+   * @param[in]  tbl    specifies if the val structure belongs to the main table/ controller table or rename table.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
   upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey,
-                   ConfigKeyVal *&req, MoMgrTables tbl = MAINTBL);
+                            ConfigKeyVal *&req, MoMgrTables tbl = MAINTBL);
   /**
-     * @brief  Allocates for the specified val in the given configuration in the     * specified table.   
-     *
-     * @param[in/out]  ck_val   Reference pointer to configval structure 
-     *                          allocated.      
-     * @param[in]      dt_type  specifies the configuration candidate/running/
-     *                          state 
-     * @param[in]      tbl      specifies if the corresponding table is the  
-     *                          main table / controller table or rename table.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
+   * @brief  Allocates for the specified val in the given configuration in the     * specified table.
+   *
+   * @param[in/out]  ck_val   Reference pointer to configval structure
+   *                          allocated.
+   * @param[in]      dt_type  specifies the configuration candidate/running/
+   *                          state
+   * @param[in]      tbl      specifies if the corresponding table is the
+   *                          main table / controller table or rename table.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
   upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
-          MoMgrTables tbl = MAINTBL);
-/**
-    * @brief      Method to get a configkeyval of a specified keytype from an input configkeyval
-    *
-    * @param[in/out]  okey                 pointer to output ConfigKeyVal 
-    * @param[in]      parent_key           pointer to the configkeyval from which the output configkey val is initialized.
-    *
-    * @retval         UPLL_RC_SUCCESS      Successfull completion.
-    * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-    */
+                     MoMgrTables tbl = MAINTBL);
+  /**
+   * @brief      Method to get a configkeyval of a specified keytype from an input configkeyval
+   *
+   * @param[in/out]  okey                 pointer to output ConfigKeyVal
+   * @param[in]      parent_key           pointer to the configkeyval from which the output configkey val is initialized.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   */
   upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey,
-              ConfigKeyVal *parent_key);
-/**
-    * @brief      Method to get a configkeyval of the parent keytype 
-    *
-    * @param[in/out]  okey           pointer to parent ConfigKeyVal 
-    * @param[in]      ikey           pointer to the child configkeyval from 
-    * which the parent configkey val is obtained.
-    *
-    * @retval         UPLL_RC_SUCCESS      Successfull completion.
-    * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-    **/
+                              ConfigKeyVal *parent_key);
+  /**
+   * @brief      Method to get a configkeyval of the parent keytype
+   *
+   * @param[in/out]  okey           pointer to parent ConfigKeyVal
+   * @param[in]      ikey           pointer to the child configkeyval from
+   * which the parent configkey val is obtained.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
   upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
 
   /**
-   * @Brief Get the VtepConfigKeyVal from VtepTbl 
+   * @Brief Get the VtepConfigKeyVal from VtepTbl
    *
    * @param[in] ikey                      ikey contains key and value structure.
    * @param[in] okey                      okey contains key and value structure.
@@ -133,8 +135,8 @@ class VtepGrpMemMoMgr : public VnodeChildMoMgr {
    * @retval UPLL_RC_ERR_GENERIC          Generic failure.
    */
   upll_rc_t GetVtepConfigValData(ConfigKeyVal *ikey, ConfigKeyVal *&okey,
-                                              upll_keytype_datatype_t dt_type,
-                                              DalDmlIntf *dmi);
+                                 upll_keytype_datatype_t dt_type,
+                                 DalDmlIntf *dmi);
   /**
    * @Brief Validates the syntax of the specified key and value structure
    *        for KT_VTEP_GRP_MEMBER keytype
@@ -180,18 +182,19 @@ class VtepGrpMemMoMgr : public VnodeChildMoMgr {
    */
 
   upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-      const char * crtlr_name);
+                               const char * crtlr_name);
 
   upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey) {
-    return UPLL_RC_SUCCESS;
+    UPLL_LOG_INFO("Not supported for this keytype. Returning Generic Error");
+    return UPLL_RC_ERR_GENERIC;
   }
   bool GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo,
-                                    int &nattr,
-                                    MoMgrTables tbl ) {
+                            int &nattr,
+                            MoMgrTables tbl ) {
     return true;
   }
   upll_rc_t IsReferenced(ConfigKeyVal *ikey,
-           upll_keytype_datatype_t dt_type, DalDmlIntf *dmi) {
+                         upll_keytype_datatype_t dt_type, DalDmlIntf *dmi) {
     return UPLL_RC_SUCCESS;
   }
 
@@ -205,14 +208,14 @@ class VtepGrpMemMoMgr : public VnodeChildMoMgr {
     delete[] table;
   }
   /**
-    * @brief      Method to check if individual portions of a key are valid
-    *
-    * @param[in/out]  ikey                 pointer to ConfigKeyVal referring to a UNC resource
-    * @param[in]      index                db index associated with the variable
-    *
-    * @retval         true                 input key is valid
-    * @retval         false                input key is invalid.
-    **/
+   * @brief      Method to check if individual portions of a key are valid
+   *
+   * @param[in/out]  ikey                 pointer to ConfigKeyVal referring to a UNC resource
+   * @param[in]      index                db index associated with the variable
+   *
+   * @retval         true                 input key is valid
+   * @retval         false                input key is invalid.
+   **/
   bool IsValidKey(void *tkey, uint64_t index);
 
   /**
@@ -229,12 +232,12 @@ class VtepGrpMemMoMgr : public VnodeChildMoMgr {
    * @retval UPLL_RC_ERR_GENERIC          Generic failure.
    */
   upll_rc_t CompareControllers(ConfigKeyVal *ikey,
-                           upll_keytype_datatype_t dt_type,
-                           DalDmlIntf *dmi);
+                               upll_keytype_datatype_t dt_type,
+                               DalDmlIntf *dmi);
 };
 
 
-}  // namespace vtn
+}  // namespace kt_momgr
 }  // namespace upll
 }  // namespace unc
 #endif
diff --git a/coordinator/modules/upll/vtn_dataflow_momgr.cc b/coordinator/modules/upll/vtn_dataflow_momgr.cc
new file mode 100644 (file)
index 0000000..d59cc7a
--- /dev/null
@@ -0,0 +1,1288 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+#include "vbr_if_momgr.hh"
+#include "vtn_momgr.hh"
+#include "vnode_child_momgr.hh"
+#include "ipc_client_handler.hh"
+
+#include "vtn_dataflow_momgr.hh"
+
+using unc::upll::ipc_util::IpcUtil;
+using unc::upll::ipc_util::IpcClientHandler;
+
+namespace unc {
+namespace upll {
+namespace kt_momgr {
+
+
+upll_rc_t VtnDataflowMoMgr::ValidateMessage(IpcReqRespHeader *req,
+                                            ConfigKeyVal *ikey) {
+  UPLL_FUNC_TRACE;
+  if (!req || !ikey || !(ikey->get_key())) {
+    UPLL_LOG_INFO("ConfigKeyVal / IpcReqRespHeader is Null");
+    return UPLL_RC_ERR_BAD_REQUEST;
+  }
+  if (req->operation != UNC_OP_READ) {
+    UPLL_LOG_INFO("Unsupported Operation for VTN Dataflow - %d",
+                  req->operation);
+    return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT;
+  }
+  if (req->datatype != UPLL_DT_STATE) {
+    UPLL_LOG_INFO("Unsupported datatype for VTN Dataflow - %d",
+                  req->datatype);
+    return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
+  }
+  if (req->option1 != UNC_OPT1_NORMAL) {
+    UPLL_LOG_INFO("Invalid option1 for VTN Dataflow - %d", req->option1);
+    return UPLL_RC_ERR_INVALID_OPTION1;
+  }
+  if (req->option2 != UNC_OPT2_NONE) {
+    UPLL_LOG_INFO("Invalid option2 for VTN Dataflow - %d", req->option2);
+    return UPLL_RC_ERR_INVALID_OPTION2;
+  }
+  if (UNC_KT_VTN_DATAFLOW != ikey->get_key_type()) {
+    UPLL_LOG_INFO("Invalid KeyType in the request (%d)",
+                  ikey->get_key_type());
+    return UPLL_RC_ERR_BAD_REQUEST;
+  }
+  if (ikey->get_st_num() != IpctSt::kIpcStKeyVtnDataflow) {
+    UPLL_LOG_INFO("Invalid Key structure received. received struct - %d",
+                  (ikey->get_st_num()));
+    return UPLL_RC_ERR_BAD_REQUEST;
+  }
+  if (ikey->get_cfg_val()) {
+    UPLL_LOG_INFO("Value structure is not NULL for VTN Dataflow");
+    return UPLL_RC_ERR_BAD_REQUEST;
+  }
+  key_vtn_dataflow *vtn_df_key = reinterpret_cast<key_vtn_dataflow *>
+      (ikey->get_key());
+  return(ValidateVtnDataflowKey(vtn_df_key));
+}
+
+upll_rc_t VtnDataflowMoMgr::ValidateVtnDataflowKey(
+    key_vtn_dataflow *vtn_df_key) {
+  UPLL_FUNC_TRACE;
+  upll_rc_t ret_val = UPLL_RC_SUCCESS;
+  ret_val = ValidateKey(reinterpret_cast<char *>(vtn_df_key->vtn_key.vtn_name),
+                        kMinLenVtnName, kMaxLenVtnName);
+  if (ret_val != UPLL_RC_SUCCESS) {
+    UPLL_LOG_INFO("vtn name syntax check failed for Vtn Dataflow."
+                  "Received vtn name - %s",
+                  vtn_df_key->vtn_key.vtn_name);
+    return ret_val;
+  }
+  ret_val = ValidateKey(reinterpret_cast<char *>(vtn_df_key->vnode_id),
+                        kMinLenVnodeName, kMaxLenVnodeName);
+  if (ret_val != UPLL_RC_SUCCESS) {
+    UPLL_LOG_INFO("vnode name syntax check failed for Vtn Dataflow."
+                  "Received vnode name - %s",
+                  vtn_df_key->vnode_id);
+    return ret_val;
+  }
+  if ((vtn_df_key->vlanid != 0xFFFF) &&
+      !ValidateNumericRange(vtn_df_key->vlanid,
+                            kMinVlanId, kMaxVlanId,
+                            true, true)) {
+    UPLL_LOG_INFO("Vlan Id Number check failed for Vtn Dataflow."
+                  "Received vlan_id - %d",
+                  vtn_df_key->vlanid);
+    return UPLL_RC_ERR_CFG_SYNTAX;
+  }
+  // TODO(rev): What kind of MAC validation need to be done for VTN Dataflow?
+  if (!ValidateMacAddr(vtn_df_key->src_mac_address)) {
+    UPLL_LOG_INFO("Mac Address validation failure for Vtn Dataflow."
+                  " Received  mac_address is - %s",
+                  vtn_df_key->src_mac_address);
+    return UPLL_RC_ERR_CFG_SYNTAX;
+  }
+  return UPLL_RC_SUCCESS;
+}
+
+upll_rc_t VtnDataflowMoMgr::ValidateControllerCapability(
+    const char *ctrlr_name, bool is_first_ctrlr,
+    unc_keytype_ctrtype_t *ctrlr_type) {
+  UPLL_FUNC_TRACE;
+
+  if (!is_first_ctrlr) {
+    if (!uuc::CtrlrMgr::GetInstance()->GetCtrlrType(
+            ctrlr_name, UPLL_DT_RUNNING, ctrlr_type)) {
+      UPLL_LOG_INFO("GetCtrlrType failed for ctrlr %s", ctrlr_name);
+      return UPLL_RC_ERR_GENERIC;
+    }
+    UPLL_LOG_TRACE("Controller type is  %d", *ctrlr_type);
+    if (*ctrlr_type != UNC_CT_PFC) {
+      return UPLL_RC_SUCCESS;
+    }
+  }
+
+  uint32_t max_attrs = 0;
+  const uint8_t *attrs = NULL;
+  if (!GetReadCapability(ctrlr_name, UNC_KT_VTN_DATAFLOW,
+                         &max_attrs, &attrs, UPLL_DT_RUNNING)) {
+    UPLL_LOG_DEBUG("Read vtn_dataflow is not supported by controller %s",
+                   ctrlr_name);
+    return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
+  }
+
+  return UPLL_RC_SUCCESS;
+}
+
+upll_rc_t VtnDataflowMoMgr::FillCtrlrDomCountMap(uint8_t *vtn_name,
+                                                 uint32_t  &ctrlr_dom_count,
+                                                 DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
+  upll_rc_t result_code = UPLL_RC_SUCCESS;
+  ConfigKeyVal *tmp_ckv = NULL;
+  VtnMoMgr *vtnmgr = static_cast<VtnMoMgr *>((const_cast<MoManager *>
+                                              (GetMoManager(UNC_KT_VTN))));
+  result_code = vtnmgr->GetChildConfigKey(tmp_ckv, NULL);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_INFO("GetChildConfigKey failed result_code %d", result_code);
+    return result_code;
+  }
+  uuu::upll_strncpy(reinterpret_cast<key_vtn *>(
+          tmp_ckv->get_key())->vtn_name,
+      vtn_name, (kMaxLenVtnName + 1));
+  result_code = vtnmgr->GetInstanceCount(tmp_ckv, NULL,
+                                         UPLL_DT_RUNNING,
+                                         &ctrlr_dom_count,
+                                         dmi,
+                                         CTRLRTBL);
+  if (result_code != UPLL_RC_SUCCESS) {
+    delete tmp_ckv;
+    return result_code;
+  }
+  delete tmp_ckv;
+  return result_code;
+}
+
+upll_rc_t VtnDataflowMoMgr::ConvertVexternaltoVbr(const uint8_t *vtn_name,
+                                                  uint8_t *vex_name,
+                                                  uint8_t *vex_if_name,
+                                                  DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
+  upll_rc_t result_code = UPLL_RC_SUCCESS;
+  MoMgrImpl *vbrif_mgr = static_cast<MoMgrImpl *>(
+      (const_cast<MoManager*>
+       (GetMoManager(UNC_KT_VBR_IF))));
+  if (!vbrif_mgr) {
+    UPLL_LOG_DEBUG("Instance is NULL");
+    return UPLL_RC_ERR_GENERIC;
+  }
+  ConfigKeyVal *ckv_if = NULL;
+  result_code = vbrif_mgr->GetChildConfigKey(ckv_if, NULL);
+  if (UPLL_RC_SUCCESS != result_code) {
+    UPLL_LOG_DEBUG("GetChildConfigKey Failed");
+    return result_code;
+  }
+  key_vbr_if *if_key = reinterpret_cast<key_vbr_if *>(ckv_if->get_key());
+  val_drv_vbr_if *if_val = reinterpret_cast<val_drv_vbr_if *>
+      (ConfigKeyVal::
+       Malloc(sizeof(val_drv_vbr_if)));
+  if_val->valid[PFCDRV_IDX_VEXT_NAME_VBRIF] = UNC_VF_VALID;
+  ckv_if->SetCfgVal(new ConfigVal(IpctSt::kIpcStPfcdrvValVbrIf, if_val));
+  uuu::upll_strncpy(if_key->vbr_key.vtn_key.vtn_name, vtn_name,
+                    (kMaxLenVtnName + 1));
+  uuu::upll_strncpy(if_val->vex_name, vex_name, (kMaxLenVnodeName+1));
+  DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutFlag };
+  result_code = vbrif_mgr->ReadConfigDB(ckv_if, UPLL_DT_RUNNING, UNC_OP_READ,
+                                        dbop, dmi, MAINTBL);
+  if (UPLL_RC_SUCCESS != result_code &&
+      UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+    delete ckv_if;
+    return result_code;
+  }
+  if (UPLL_RC_SUCCESS == result_code) {
+    uuu::upll_strncpy(vex_name, if_key->vbr_key.vbridge_name,
+                      (kMaxLenVnodeName+1));
+    uuu::upll_strncpy(vex_if_name, if_key->if_name, (kMaxLenInterfaceName+1));
+  }
+  delete ckv_if;
+  return UPLL_RC_SUCCESS;
+}
+
+upll_rc_t VtnDataflowMoMgr::MapCtrlrNameToUncName(
+    const uint8_t *vtn_name,
+    val_vtn_dataflow_path_info *path_info,
+    uint8_t *ctrlr_id,
+    DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
+  ConfigKeyVal *ckv_vn = NULL;
+  upll_rc_t result_code = UPLL_RC_SUCCESS;
+  if (!path_info) {
+    return UPLL_RC_ERR_GENERIC;
+  }
+  MoMgrImpl *vbr_mgr = static_cast<MoMgrImpl *>(
+      (const_cast<MoManager *>
+       (GetMoManager(UNC_KT_VBRIDGE))));
+  result_code = vbr_mgr->GetChildConfigKey(ckv_vn, NULL);
+  if (UPLL_RC_SUCCESS != result_code) {
+    UPLL_LOG_DEBUG("GetChildConfigKey Failed");
+    return result_code;
+  }
+  key_vbr_t *vbr_key = reinterpret_cast<key_vbr_t*>(ckv_vn->get_key());
+
+  uuu::upll_strncpy(vbr_key->vtn_key.vtn_name,
+                    vtn_name, (kMaxLenVtnName + 1));
+
+  for (int iter = 0 ; iter < 2 ; iter++) {
+    uint32_t indx = (iter == 0)?UPLL_IDX_IN_VNODE_VVDPI:
+        UPLL_IDX_OUT_VNODE_VVDPI;
+    uint32_t if_indx = (iter == 0)?UPLL_IDX_IN_VIF_VVDPI:
+        UPLL_IDX_OUT_VIF_VVDPI;
+    uint8_t *node_name =(iter == 0)?path_info->in_vnode:path_info->out_vnode;
+    uint8_t *node_if_name =(iter == 0)?path_info->in_vif:path_info->out_vif;
+
+    if (path_info->valid[indx] == UNC_VF_INVALID ||
+        path_info->valid[if_indx] == UNC_VF_INVALID) {
+      UPLL_LOG_DEBUG("Vnode or Vnode interface is invalid in path"
+                     "info %d", iter);
+      continue;
+    }
+    uuu::upll_strncpy(vbr_key->vbridge_name,
+                      node_name, (kMaxLenVnodeName + 1));
+    result_code = vbr_mgr->GetRenamedUncKey(ckv_vn, UPLL_DT_RUNNING, dmi,
+                                            ctrlr_id);
+    if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+      // search in vbr_if table by node name in vex
+      result_code = UPLL_RC_SUCCESS;
+      if (!path_info->vlink_flag &&
+          path_info->valid[UPLL_IDX_VLINK_FLAG_VVDPI] == UNC_VF_VALID) {
+        /*
+         * Converting redirect vexternal to vbr and interface
+         */
+        result_code = ConvertVexternaltoVbr(vtn_name,
+                                            node_name,
+                                            node_if_name, dmi);
+        if (UPLL_RC_SUCCESS != result_code) {
+          UPLL_LOG_DEBUG("ConvertVexternalToVbr Failed %d", result_code);
+          delete ckv_vn;
+          return result_code;
+        }
+      }
+
+    } else if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG("GetRenamedUncKey Failed %d", result_code);
+      delete ckv_vn;
+      return result_code;
+    } else {
+      if (path_info->valid[indx] == UNC_VF_VALID) {
+        uuu::upll_strncpy(node_name, vbr_key->vbridge_name,
+                          (kMaxLenVnodeName + 1));
+      }
+    }
+  }
+  delete ckv_vn;
+  return result_code;
+}
+
+upll_rc_t VtnDataflowMoMgr::UpdatePathInfoInterfaces(
+    DataflowCmn *df_cmn,
+    const uint8_t *vtn_name,
+    DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
+  upll_rc_t result_code = UPLL_RC_SUCCESS;
+  uint32_t path_info_count;
+  // NULL check for df_cmn/df_segment done in calling functino
+  if ((path_info_count =
+       df_cmn->df_segment->vtn_df_common->path_info_count) == 0) {
+    UPLL_LOG_TRACE("Path count is zero");
+    return UPLL_RC_SUCCESS;
+  }
+  if (path_info_count != df_cmn->df_segment->vtn_path_infos.size()) {
+    UPLL_LOG_INFO("Path info size not consistent vtn_cmn path count = %d "
+                  "and path_info size = %" PFC_PFMT_SIZE_T "",
+                  path_info_count, df_cmn->df_segment->vtn_path_infos.size());
+    return UPLL_RC_ERR_GENERIC;
+  }
+  if (!vtn_name) {
+    UPLL_LOG_INFO("Invalid vtn name \n");
+    return UPLL_RC_ERR_GENERIC;
+  }
+  // Convert ingress and egress vex/vexif if vlink_flag is reset (redirected).
+  val_vtn_dataflow_path_info *path_info =
+      df_cmn->df_segment->vtn_path_infos[0];
+  uint32_t node_indx = UPLL_IDX_IN_VNODE_VVDPI;
+  uint32_t nodeif_indx = UPLL_IDX_IN_VIF_VVDPI;
+  bool dynamic = false;
+  int iter = 0;
+  // convert/rename first and last path_info
+  while (path_info) {
+    dynamic = false;
+    UPLL_LOG_TRACE("ConvertVexternaltoVbr ");
+    UPLL_LOG_TRACE("node:%s",
+                   DataflowCmn::get_string(*path_info).c_str());
+    uint8_t *node_name =(iter == 0)?path_info->in_vnode:path_info->out_vnode;
+    uint8_t *node_if_name =(iter == 0)?path_info->in_vif:path_info->out_vif;
+    uint8_t *df_node_name =(iter == 0)?
+        df_cmn->df_segment->vtn_df_common->ingress_vnode:
+        df_cmn->df_segment->vtn_df_common->egress_vnode;
+    uint8_t *df_node_if_name =(iter == 0)?
+        df_cmn->df_segment->vtn_df_common->ingress_vinterface:
+        df_cmn->df_segment->vtn_df_common->egress_vinterface;
+    UPLL_LOG_TRACE("vlink flag and dynamic %d:%d", path_info->vlink_flag,
+                   dynamic);
+    if ((path_info->valid[node_indx] == UNC_VF_VALID) &&
+        (path_info->valid[nodeif_indx] == UNC_VF_VALID)) {
+      // if the vnode name has not been translated, it is a dynamic interface.
+      if (!strcmp(reinterpret_cast<const char *>(df_node_name),
+                  reinterpret_cast<const char *>(node_name))) {
+        dynamic = true;
+      }
+      if (!dynamic && !path_info->vlink_flag) {
+        uuu::upll_strncpy(node_name, df_node_name,
+                          (kMaxLenVnodeName+1));
+        uuu::upll_strncpy(node_if_name, df_node_if_name,
+                          (kMaxLenInterfaceName+1));
+      } else {
+        if ((!iter) ||
+            ((df_cmn->df_segment->vtn_df_common->
+              valid[UPLL_IDX_EGRESS_VNODE_VVDC]
+              == UNC_VF_VALID && df_cmn->df_segment->vtn_df_common->
+              valid[UPLL_IDX_EGRESS_VINTERFACE_VVDC] == UNC_VF_VALID))) {
+          path_info->valid[node_indx] = UNC_VF_INVALID;
+          path_info->valid[nodeif_indx] = UNC_VF_INVALID;
+        }
+      }
+    }
+    if ((node_indx == UPLL_IDX_OUT_VNODE_VVDPI) ||
+        (path_info_count == 1)) {
+      path_info = NULL;
+    } else {
+      node_indx = UPLL_IDX_OUT_VNODE_VVDPI;
+      nodeif_indx = UPLL_IDX_OUT_VIF_VVDPI;
+      path_info =  df_cmn->df_segment->vtn_path_infos[path_info_count - 1];
+    }
+    iter++;
+  }
+
+  // rename intermediate nodes (they can be vexternal too)
+  for (unsigned int iter = 1;
+       iter < (df_cmn->df_segment->vtn_path_infos.size()-1); iter++) {
+    path_info = df_cmn->df_segment->vtn_path_infos[iter];
+    result_code = MapCtrlrNameToUncName(
+        vtn_name,
+        path_info,
+        df_cmn->df_segment->vtn_df_common->controller_id,
+        dmi);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG("MapCtrlrNameToUncName failed %d", result_code);
+      return result_code;
+    }
+  }
+  return UPLL_RC_SUCCESS;
+}
+
+
+upll_rc_t VtnDataflowMoMgr::MapVexternalToVbridge(
+    const ConfigKeyVal *ckv_df,
+    DataflowCmn *df_cmn,
+    bool *is_vnode_match,
+    DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
+  const key_vtn_dataflow_t *vtn_df_key = reinterpret_cast
+      <const key_vtn_dataflow_t *>
+      (ckv_df->get_key());
+  if (!vtn_df_key || !df_cmn) {
+    UPLL_LOG_DEBUG("Input key is NULL");
+    return UPLL_RC_ERR_GENERIC;
+  }
+  controller_domain ctrlr_dom = {NULL, NULL};
+  GET_USER_DATA_CTRLR_DOMAIN(ckv_df, ctrlr_dom);
+  UPLL_LOG_TRACE("In and Out Domain %s", ctrlr_dom.domain);
+  upll_rc_t result_code = UPLL_RC_SUCCESS;
+  VbrIfMoMgr *vbrif_mgr = static_cast<VbrIfMoMgr *>(
+      (const_cast<MoManager *>
+       (GetMoManager(UNC_KT_VBR_IF))));
+  if (!vbrif_mgr) {
+    UPLL_LOG_DEBUG("Instance is NULL");
+    return UPLL_RC_ERR_GENERIC;
+  }
+  if (df_cmn->df_segment->flow_traversed == 0) {
+    if (ctrlr_dom.domain &&
+        strlen(reinterpret_cast<const char*>(ctrlr_dom.domain))) {
+      uuu::upll_strncpy(df_cmn->df_segment->vtn_df_common->ingress_domain,
+                        ctrlr_dom.domain, kMaxLenDomainId+1);
+      df_cmn->df_segment->vtn_df_common->valid[UPLL_IDX_INGRESS_DOMAIN_VVDC] =
+          UNC_VF_VALID;
+      if (df_cmn->df_segment->vtn_df_common->
+          valid[UPLL_IDX_EGRESS_VINTERFACE_VVDC]
+          == UNC_VF_VALID) {
+        uuu::upll_strncpy(df_cmn->df_segment->vtn_df_common->egress_domain,
+                          ctrlr_dom.domain, kMaxLenDomainId+1);
+        df_cmn->df_segment->vtn_df_common->valid[UPLL_IDX_EGRESS_DOMAIN_VVDC] =
+            UNC_VF_VALID;
+      }
+    }
+    const uint8_t *vtn_name = vtn_df_key->vtn_key.vtn_name;
+    UPLL_LOG_TRACE("node:%s",
+                   DataflowCmn::get_string(
+                       *df_cmn->df_segment->vtn_df_common).c_str());
+    bool dynamic[2] = {false, false };
+    ConfigKeyVal *ckv_vbrif[2] = {NULL, NULL};
+    // Do the loop twice, once for ingress and once for egress
+    for (int iter = 0; iter < 2 ; ++iter) {
+      uint8_t *vnode = NULL, *vnode_if = NULL;
+      uint8_t valid[2];
+      key_vbr_if_t *key_vbrif;
+      if (iter == 0) {
+        valid[0] =
+            df_cmn->df_segment->vtn_df_common->
+            valid[UPLL_IDX_INGRESS_VNODE_VVDC];
+        valid[1] = df_cmn->df_segment->
+            vtn_df_common->valid[UPLL_IDX_INGRESS_VINTERFACE_VVDC];
+        vnode = df_cmn->df_segment->vtn_df_common->ingress_vnode;
+        vnode_if = df_cmn->df_segment->vtn_df_common->ingress_vinterface;
+      } else {
+        valid[0] =
+            df_cmn->df_segment->vtn_df_common->
+            valid[UPLL_IDX_EGRESS_VNODE_VVDC];
+        valid[1] = df_cmn->df_segment->
+            vtn_df_common->valid[UPLL_IDX_EGRESS_VINTERFACE_VVDC];
+        vnode = df_cmn->df_segment->vtn_df_common->egress_vnode;
+        vnode_if = df_cmn->df_segment->vtn_df_common->egress_vinterface;
+      }
+      if (valid[0] != UNC_VF_VALID && valid[1] != UNC_VF_VALID) {
+        UPLL_LOG_INFO("Ingress/Egress vNode/vInterface is not valid");
+        result_code =  UPLL_RC_ERR_NO_SUCH_INSTANCE;
+        break;
+      } else {
+        result_code = vbrif_mgr->GetChildConfigKey(ckv_vbrif[iter], NULL);
+        if (UPLL_RC_SUCCESS != result_code) {
+          UPLL_LOG_DEBUG("GetChildConfigKey Failed");
+          return result_code;
+        }
+        key_vbrif = static_cast<key_vbr_if_t *>(ckv_vbrif[iter]->get_key());
+        val_drv_vbr_if_t *drv_val_vbrif = static_cast<val_drv_vbr_if_t *>
+            (ConfigKeyVal::Malloc(sizeof(val_drv_vbr_if_t)));
+        ckv_vbrif[iter]->SetCfgVal(
+            new ConfigVal(IpctSt::kIpcStPfcdrvValVbrIf, drv_val_vbrif));
+        uuu::upll_strncpy(key_vbrif->vbr_key.vtn_key.vtn_name,
+                          vtn_df_key->vtn_key.vtn_name, (kMaxLenVtnName + 1));
+        uuu::upll_strncpy(drv_val_vbrif->vex_name,
+                          vnode, (kMaxLenVnodeName + 1));
+        uuu::upll_strncpy(drv_val_vbrif->vex_if_name,
+                          vnode_if, (kMaxLenInterfaceName + 1));
+        drv_val_vbrif->valid[PFCDRV_IDX_VEXT_NAME_VBRIF] = UNC_VF_VALID;
+        drv_val_vbrif->valid[PFCDRV_IDX_VEXT_IF_NAME_VBRIF] = UNC_VF_VALID;
+        DbSubOp dbop = { kOpReadSingle,
+          kOpMatchNone,
+          kOpInOutFlag | kOpInOutCtrlr |
+          kOpInOutDomain };
+        result_code = vbrif_mgr->ReadConfigDB(ckv_vbrif[iter], UPLL_DT_RUNNING,
+                                              UNC_OP_READ, dbop, dmi, MAINTBL);
+      }
+      if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+        UPLL_LOG_INFO("Dynamic interface result_code"
+                      " %d", result_code);
+        dynamic[iter] = true;
+        result_code = UPLL_RC_SUCCESS;
+      } else if (result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_INFO("vbrif ReadConfigDB Failed err code - %d",
+                      result_code);
+        DELETE_IF_NOT_NULL(ckv_vbrif[0]);
+        DELETE_IF_NOT_NULL(ckv_vbrif[1]);
+        return result_code;
+      } else {
+        key_vbrif = reinterpret_cast<key_vbr_if_t *>
+            (ckv_vbrif[iter]->get_key());
+        uuu::upll_strncpy(vnode, key_vbrif->vbr_key.vbridge_name,
+                          (kMaxLenVnodeName + 1));
+        uuu::upll_strncpy(vnode_if, key_vbrif->if_name,
+                          (kMaxLenInterfaceName + 1));
+      }
+      if (iter == 1)
+        df_cmn->df_segment->ckv_egress = ckv_vbrif[iter];
+    }
+    upll_rc_t upd_path_result_code = UpdatePathInfoInterfaces(df_cmn,
+                                                              vtn_name,
+                                                              dmi);
+    if (UPLL_RC_SUCCESS != upd_path_result_code) {
+      UPLL_LOG_TRACE("UpdatePathInfoInterface Failed %d", result_code);
+      DELETE_IF_NOT_NULL(ckv_vbrif[0]);
+      DELETE_IF_NOT_NULL(ckv_vbrif[1]);
+      result_code = upd_path_result_code;
+    }
+    if (dynamic[0]) {
+      UPLL_LOG_DEBUG("Ingress interface is dynamic");
+      val_vtn_dataflow_path_info *path_info =
+          df_cmn->df_segment->vtn_path_infos[0];
+      path_info->valid[UPLL_IDX_IN_VIF_VVDPI] = UNC_VF_INVALID;
+      path_info->valid[UPLL_IDX_OUT_VIF_VVDPI] = UNC_VF_INVALID;
+      df_cmn->df_segment->vtn_df_common->
+          valid[UPLL_IDX_INGRESS_VINTERFACE_VVDC]
+          = UNC_VF_INVALID;
+      if (UNC_VF_VALID == path_info->valid[UPLL_IDX_OUT_VNODE_VVDPI]) {
+        uuu::upll_strncpy(df_cmn->df_segment->vtn_df_common->ingress_vnode,
+                          path_info->out_vnode, kMaxLenVnodeName+1);
+      }
+    }
+    if (dynamic[1]) {
+      UPLL_LOG_DEBUG("Egress interface is dynamic");
+      val_vtn_dataflow_path_info *last_path_info =
+          (df_cmn->df_segment->vtn_path_infos).back();
+      last_path_info->valid[UPLL_IDX_IN_VIF_VVDPI] = UNC_VF_INVALID;
+      last_path_info->valid[UPLL_IDX_OUT_VIF_VVDPI] = UNC_VF_INVALID;
+      df_cmn->df_segment->vtn_df_common->valid[UPLL_IDX_EGRESS_VINTERFACE_VVDC]
+          = UNC_VF_INVALID;
+      if (UNC_VF_VALID == last_path_info->valid[UPLL_IDX_IN_VNODE_VVDPI]) {
+        uuu::upll_strncpy(df_cmn->df_segment->vtn_df_common->egress_vnode,
+                          last_path_info->in_vnode, kMaxLenVnodeName+1);
+      }
+    }
+    DELETE_IF_NOT_NULL(ckv_vbrif[0]);
+    df_cmn->df_segment->flow_traversed++;
+  }
+  key_vtn_dataflow *key_df = reinterpret_cast
+      <key_vtn_dataflow*>(ckv_df->get_key());
+  *is_vnode_match = (0 ==
+                     strcmp(reinterpret_cast<const char *>
+                            (df_cmn->df_segment->vtn_df_common->ingress_vnode),
+                            reinterpret_cast<const char *>(key_df->vnode_id)));
+  // If the given dataflow ingress vnode does not match the given vnode,
+  //       // we need to filter the dataflow.
+  UPLL_LOG_TRACE(" The Status of is_vnode_match %d", *is_vnode_match);
+  if (!(*is_vnode_match)) {
+    return UPLL_RC_SUCCESS;
+  }
+  return result_code;
+}
+
+upll_rc_t VtnDataflowMoMgr::PopulateVnpOrVbypassBoundaryInfo(
+    ConfigKeyVal *&ckv_inif,
+    ConfigKeyVal *&ckv_egress,
+    DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
+  upll_rc_t result_code = UPLL_RC_SUCCESS;
+  MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(
+      const_cast<MoManager *>(GetMoManager(ckv_inif->get_key_type())));
+  if (!mgr) {
+    UPLL_LOG_INFO("Invalid mgr param");
+    return UPLL_RC_ERR_GENERIC;
+  }
+  result_code = mgr->GetChildConfigKey(ckv_egress, ckv_inif);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_INFO("Error in retrieving the Child ConfigKeyVal");
+    return result_code;
+  }
+  uint8_t *ifname = reinterpret_cast <key_vnode_if *>
+      (ckv_egress->get_key())->vnode_if_name;
+  memset(ifname, 0, kMaxLenInterfaceName);
+  DbSubOp dbop = {kOpReadMultiple, kOpMatchNone, kOpInOutCtrlr |
+    kOpInOutDomain | kOpInOutFlag};
+  /* Get the list interfaces for given parent keytype */
+  result_code = mgr->ReadConfigDB(ckv_egress, UPLL_DT_RUNNING, UNC_OP_READ,
+                                  dbop, dmi, MAINTBL);
+  /* Any other DB error */
+  if (UPLL_RC_SUCCESS != result_code) {
+    UPLL_LOG_INFO("ReadConfigDB failed %d", result_code);
+    DELETE_IF_NOT_NULL(ckv_egress);
+    return result_code;
+  }
+  return result_code;
+}
+
+
+upll_rc_t
+VtnDataflowMoMgr::ReadMo(IpcReqRespHeader *header,
+                         ConfigKeyVal *ckv_in,
+                         DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
+  DataflowUtil df_util;
+  upll_rc_t result_code = UPLL_RC_SUCCESS;
+  result_code = ValidateMessage(header, ckv_in);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_INFO("ValidateMessage failed result_code %d",
+                  result_code);
+    return result_code;
+  }
+  pfc::core::ipc::ServerSession *sess = reinterpret_cast
+      <pfc::core::ipc::ServerSession *>(ckv_in->get_user_data());
+  if (!sess) {
+    UPLL_LOG_INFO("Empty session");
+    return UPLL_RC_ERR_GENERIC;
+  }
+  ConfigKeyVal *ckv_req = NULL;
+  result_code = GetChildConfigKey(ckv_req, ckv_in);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_INFO("GetChildConfigKey failed result_code %d",
+                  result_code);
+    return result_code;
+  }
+  key_vtn_dataflow_t *vtn_df_key = reinterpret_cast<key_vtn_dataflow_t *>
+      (ckv_req->get_key());
+  ConfigKeyVal *ckv_vbr = NULL;
+  VnodeMoMgr *vnmgr = static_cast<VnodeMoMgr *>(
+      (const_cast<MoManager *>(GetMoManager(UNC_KT_VBRIDGE))));
+  result_code = vnmgr->GetChildConfigKey(ckv_vbr, NULL);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_INFO("GetChildConfigKey failed result_code %d", result_code);
+    delete ckv_req;
+    return result_code;
+  }
+  key_vbr *vbr_key = reinterpret_cast<key_vbr *>(ckv_vbr->get_key());
+  uuu::upll_strncpy(vbr_key->vtn_key.vtn_name,
+                    vtn_df_key->vtn_key.vtn_name, (kMaxLenVtnName+1));
+  uuu::upll_strncpy(vbr_key->vbridge_name, vtn_df_key->vnode_id,
+                    (kMaxLenVnodeName+1));
+  DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutCtrlr
+    |kOpInOutDomain|kOpInOutFlag };
+  /* Get the controller domain using this read operation */
+  result_code = vnmgr->ReadConfigDB(ckv_vbr, UPLL_DT_RUNNING, UNC_OP_READ,
+                                    dbop, dmi, MAINTBL);
+  if (UPLL_RC_SUCCESS != result_code) {
+    UPLL_LOG_INFO("ReadConfigDB failed %d", result_code);
+    delete ckv_vbr;
+    delete ckv_req;
+    return result_code;
+  }
+  /* Set the controller and domain name in ckv*/
+  SET_USER_DATA(ckv_req, ckv_vbr);
+  delete ckv_vbr;
+  unc_keytype_ctrtype_t ctrlr_type = UNC_CT_UNKNOWN;
+  uint8_t *ctrlr_id = NULL;
+  GET_USER_DATA_CTRLR(ckv_req, ctrlr_id);
+  result_code = ValidateControllerCapability((const char *)(ctrlr_id), true,
+                                             &ctrlr_type);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_INFO("ValidateControllerCapability failed result_code %d",
+                  result_code);
+    delete ckv_req;
+    return result_code;
+  }
+  uint32_t ctrlr_dom_count = 0;
+  result_code = FillCtrlrDomCountMap(vtn_df_key->vtn_key.vtn_name,
+                                     ctrlr_dom_count, dmi);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_INFO("Unable to get max controller domain count\n");
+    delete ckv_req;
+    return result_code;
+  }
+  df_util.ctrlr_dom_count_map["nvtnctrlrdom"] = ctrlr_dom_count;
+  result_code = TraversePFCController(ckv_req, header, NULL, NULL,
+                                      &df_util, dmi, true);
+  delete ckv_req;
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_INFO("TraversePFCController failed %d", result_code);
+    return result_code;
+  } else {
+    if (!IpcUtil::WriteKtResponse(sess, *header, ckv_in)) {
+      UPLL_LOG_INFO("Failed to send response to key tree request");
+      return UPLL_RC_ERR_GENERIC;
+    }
+    df_util.sessOutDataflows(*sess);
+  }
+  return UPLL_RC_SUCCESS;
+}
+
+
+upll_rc_t
+VtnDataflowMoMgr::TraversePFCController(ConfigKeyVal *ckv_df,
+                                        IpcReqRespHeader *header,
+                                        DataflowCmn *currentnode,
+                                        DataflowCmn *lastPfcNode,
+                                        DataflowUtil *df_util,
+                                        DalDmlIntf *dmi,
+                                        bool is_first_ctrlr)   {
+  UPLL_FUNC_TRACE;
+  upll_rc_t result_code = UPLL_RC_SUCCESS;
+  key_vtn_dataflow_t *vtn_df_key = reinterpret_cast<key_vtn_dataflow_t *>
+      (ckv_df->get_key());
+  if (!is_first_ctrlr) {
+    /**
+     * Reset the VlanID and Source Mac Address from the output matches
+     * in the key structure while
+     * retreiving flow segments
+     **/
+
+    map <UncDataflowFlowMatchType, void *>::iterator output_matches_iter;
+    output_matches_iter = lastPfcNode->output_matches.find(UNC_MATCH_VLAN_ID);
+    if (output_matches_iter != lastPfcNode->output_matches.end()) {
+      val_df_flow_match_vlan_id_t *prev =
+          reinterpret_cast<val_df_flow_match_vlan_id_t *>
+          ((*output_matches_iter).second);
+      vtn_df_key->vlanid =  prev->vlan_id;
+    }
+    output_matches_iter = lastPfcNode->output_matches.find(UNC_MATCH_DL_SRC);
+    if (output_matches_iter != lastPfcNode->output_matches.end()) {
+      val_df_flow_match_dl_addr_t *prev =
+          reinterpret_cast<val_df_flow_match_dl_addr_t *>
+          ((*output_matches_iter).second);
+      memcpy(vtn_df_key->src_mac_address, prev->dl_addr,
+             sizeof(vtn_df_key->src_mac_address));
+    }
+  }
+  controller_domain ctrlr_dom = {NULL, NULL};
+  GET_USER_DATA_CTRLR_DOMAIN(ckv_df, ctrlr_dom);
+  if (!ctrlr_dom.ctrlr || !ctrlr_dom.domain) {
+    UPLL_LOG_INFO("ctrlr_dom controller or domain is NULL");
+    return UPLL_RC_ERR_GENERIC;
+  }
+  key_vtn_ctrlr_dataflow vtn_ctrlr_df_key(vtn_df_key,
+                                          ctrlr_dom.ctrlr, ctrlr_dom.domain);
+  vector<DataflowDetail *> pfc_flows;
+  std::map<key_vtn_ctrlr_dataflow, vector<DataflowDetail *> >::iterator iter =
+      df_util->upll_pfc_flows.begin();
+  for (; iter != df_util->upll_pfc_flows.end(); iter ++) {
+    if (DataflowCmn::Compare((*iter).first, vtn_ctrlr_df_key)) {
+      UPLL_LOG_DEBUG("Maching the key");
+      break;
+    }
+  }
+  if (iter == df_util->upll_pfc_flows.end()) {
+    ConfigKeyVal *ckv_dupdf = NULL;
+    result_code = GetChildConfigKey(ckv_dupdf, ckv_df);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_INFO("GetChildConfigKey failed");
+      return result_code;
+    }
+    uint8_t rename_flag = 0;
+    GET_USER_DATA_FLAGS(ckv_df, rename_flag);
+    if (rename_flag & VTN_RENAME) {
+      ConfigKeyVal *ckv_vtn = NULL;
+      MoMgrImpl *vtn_mgr = reinterpret_cast<MoMgrImpl *>
+          (const_cast<MoManager*>(GetMoManager(UNC_KT_VTN)));
+      if (!vtn_mgr) {
+        UPLL_LOG_INFO("Invalid Momgr");
+        delete ckv_dupdf;
+        return UPLL_RC_ERR_GENERIC;
+      }
+      result_code = vtn_mgr->GetChildConfigKey(ckv_vtn, ckv_df);
+      if (UPLL_RC_SUCCESS != result_code) {
+        UPLL_LOG_INFO("GetChildConfigKey failed");
+        delete ckv_dupdf;
+        return result_code;
+      }
+      result_code = vtn_mgr->GetRenamedControllerKey(ckv_vtn,
+                                                     UPLL_DT_RUNNING,
+                                                     dmi,
+                                                     &ctrlr_dom);
+      if (UPLL_RC_SUCCESS != result_code) {
+        UPLL_LOG_INFO("GetRenamedControllerKey Failed %d",
+                      result_code);
+
+        delete ckv_vtn;
+        delete ckv_dupdf;
+        return result_code;
+      }
+      key_vtn_t *vtn_key = reinterpret_cast<key_vtn_t*>
+          (ckv_vtn->get_key());
+      key_vtn_dataflow *dup_dfkey =
+          reinterpret_cast<key_vtn_dataflow_t *>(ckv_dupdf->get_key());
+      uuu::upll_strncpy(dup_dfkey->vtn_key.vtn_name,
+                        vtn_key->vtn_name, (kMaxLenVtnName+1));
+      delete ckv_vtn;
+    }
+    IpcClientHandler  ipc_client;
+    IpcRequest  ipc_req;
+    memset(&ipc_req, 0, sizeof(ipc_req));
+    memcpy(&(ipc_req.header), header, sizeof(IpcReqRespHeader));
+    ipc_req.ckv_data = ckv_dupdf;
+    IpcResponse *ipc_resp = &(ipc_client.ipc_resp);
+    if (!ipc_client.SendReqToDriver(reinterpret_cast<const char *>
+                                    (ctrlr_dom.ctrlr),
+                                    (reinterpret_cast<char *>
+                                     (ctrlr_dom.domain)),
+                                    &ipc_req)) {
+      UPLL_LOG_INFO("SendReqToDriver failed");
+      delete ckv_dupdf;
+      return ipc_resp->header.result_code;
+    }
+    if (ipc_resp->header.result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_INFO("Read from driver failed err code %d",
+                    ipc_resp->header.result_code);
+      delete ckv_dupdf;
+      return ipc_resp->header.result_code;
+    }
+    uint32_t    arg = ipc_client.arg;
+    UPLL_LOG_TRACE(" The Argument is %d", arg);
+    pfc::core::ipc::ClientSession *cl_sess = ipc_client.cl_sess;
+    uint32_t tot_flow_count = 0;
+    int err = 0;
+    if (0 != (err = cl_sess->getResponse(arg++, tot_flow_count))) {
+      UPLL_LOG_TRACE("Failed to get total flow count field #%u."
+                     " Err=%d", arg, err);
+      if (is_first_ctrlr) {
+        UPLL_LOG_TRACE("Inside if (is_head_node) and returning");
+        delete ckv_dupdf;
+        return UPLL_RC_ERR_GENERIC;
+      } else {
+        currentnode->addl_data->reason = UNC_DF_RES_SYSTEM_ERROR;
+        UPLL_LOG_TRACE("Inside else and returning UNC_RC_SUCCESS");
+        delete ckv_dupdf;
+        return UPLL_RC_SUCCESS;
+      }
+    }
+    UPLL_LOG_TRACE("Total flow count is %d", tot_flow_count);
+    for (uint32_t i = 0; i < tot_flow_count; i++) {
+      pfc_log_info("Reading flow %d from driver ", i);
+      DataflowDetail *df_segm = new DataflowDetail(kidx_val_vtn_dataflow_cmn);
+      df_segm->sessReadDataflow(*cl_sess, arg);
+      pfc_flows.push_back(df_segm);
+    }
+    df_util->upll_pfc_flows.insert(std::pair<key_vtn_ctrlr_dataflow,
+                                   vector<DataflowDetail *> >
+                                   (vtn_ctrlr_df_key, pfc_flows));
+    pfc_log_info("Got upll_pfc_flows from driver. flows.size=%" PFC_PFMT_SIZE_T
+                 "", pfc_flows.size());
+    delete ckv_dupdf;
+  } else {
+    pfc_flows = iter->second;
+    pfc_log_info("Got pfc_flows from map. flows.size=%" PFC_PFMT_SIZE_T "",
+                 pfc_flows.size());
+  }
+  for (uint32_t i = 0; i < pfc_flows.size(); i++) {
+    DataflowDetail *df_segm = pfc_flows[i];
+    bool is_vnode_match = false;
+    DataflowCmn *df_cmn = new DataflowCmn(is_first_ctrlr, df_segm);
+    if (!is_first_ctrlr) {
+      bool match_result = df_cmn->check_match_condition
+          (lastPfcNode->output_matches);
+      if (!match_result) {
+        UPLL_LOG_DEBUG("2nd flow (id=%" PFC_PFMT_u64
+                       ") is not matching with 1st flow (id=%" PFC_PFMT_u64
+                       ") so ignoring", df_cmn->df_segment->
+                       vtn_df_common->flow_id,
+                       currentnode->df_segment->vtn_df_common->flow_id);
+        delete df_cmn;
+        continue;
+      }
+    }
+    result_code = MapVexternalToVbridge(ckv_df,
+                                        df_cmn, &is_vnode_match, dmi);
+    if (result_code == UPLL_RC_SUCCESS && !is_vnode_match) {
+      UPLL_LOG_INFO("Ingress vnode does not match with filter vnode");
+      delete df_cmn;
+      continue;
+    } else if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+      UPLL_LOG_INFO("Either ingress/Egress is a dynamic interface");
+      UpdateReason(df_cmn, result_code);
+    } else if (UPLL_RC_SUCCESS != result_code) {
+      delete df_cmn;
+      return result_code;
+    }
+    if (is_first_ctrlr) {
+      df_cmn->apply_action();
+      uint32_t ret = df_util->appendFlow(df_cmn);
+      if (ret != 0) {
+        delete df_cmn;
+        UPLL_LOG_INFO("appendFlow failed");
+        return UPLL_RC_ERR_GENERIC;
+      }
+    } else {
+      UPLL_LOG_DEBUG("2nd flow (id=%" PFC_PFMT_u64
+                     ") is matching with 1st flow (id=%" PFC_PFMT_u64  ")",
+                     df_cmn->df_segment->vtn_df_common->flow_id,
+                     currentnode->df_segment->vtn_df_common->flow_id);
+      df_cmn->apply_action();
+      currentnode->appendFlow(df_cmn, *(df_util->get_ctrlr_dom_count_map()));
+      if (currentnode->addl_data->reason == UNC_DF_RES_EXCEEDS_HOP_LIMIT) {
+        UPLL_LOG_DEBUG("flow reached max hop limit");
+        delete df_cmn;
+        continue;
+      }
+    }
+  }
+  vector<DataflowCmn* >* firstCtrlrFlows = df_util->get_firstCtrlrFlows();
+  if (is_first_ctrlr) {
+    if (firstCtrlrFlows->size() == 0) {
+      return UPLL_RC_ERR_NO_SUCH_INSTANCE;
+    }
+  } else {
+    if (currentnode->next.size() == 0 && currentnode->addl_data->reason ==
+        UNC_DF_RES_SUCCESS) {  // Preserving old reason
+      if (currentnode->df_segment->vtn_df_common->controller_type ==
+          UNC_CT_PFC) {
+        //  if parentnode is PFC type
+        currentnode->addl_data->reason = UNC_DF_RES_FLOW_NOT_FOUND;
+      } else {
+        currentnode->addl_data->reason = UNC_DF_RES_DST_NOT_REACHED;
+      }
+      return UPLL_RC_SUCCESS;
+    }
+  }
+  if (is_first_ctrlr) {
+    vector<DataflowCmn *>::iterator iter_flow = firstCtrlrFlows->begin();
+    while (iter_flow != firstCtrlrFlows->end()) {
+      // Checking the particular flow is traversed
+      DataflowCmn *traverse_flow_cmn =
+          reinterpret_cast<DataflowCmn *>(*iter_flow);
+      UPLL_LOG_TRACE("node:%s",
+                     DataflowCmn::get_string(
+                         *traverse_flow_cmn->
+                         df_segment->vtn_df_common).c_str());
+      if (traverse_flow_cmn->addl_data->reason !=
+          UNC_DF_RES_EXCEEDS_FLOW_LIMIT) {
+        result_code = CheckBoundaryAndTraverse(ckv_df, header,
+                                               traverse_flow_cmn,
+                                               traverse_flow_cmn,
+                                               df_util,
+                                               dmi);
+        if (UPLL_RC_SUCCESS != result_code) {
+          UPLL_LOG_TRACE("CheckBoundaryAndTraverse Failed %d\n",
+                         result_code);
+          return result_code;
+        }
+        vector<DataflowCmn *>::iterator match_flow = iter_flow + 1;
+        unsigned int no_of_dataflow = 1;
+        while (match_flow != firstCtrlrFlows->end()) {
+          DataflowCmn *traverse_match_flow_cmn =
+              reinterpret_cast<DataflowCmn *>(*match_flow);
+          if ((traverse_flow_cmn->next.size() > 0) &&
+              (traverse_match_flow_cmn->addl_data->reason !=
+               UNC_DF_RES_EXCEEDS_FLOW_LIMIT)) {
+            UPLL_LOG_DEBUG("Inside first ctrlr, if traversed == false");
+            if (traverse_match_flow_cmn->
+                CompareVtnDataflow(traverse_flow_cmn) == true)  {
+              no_of_dataflow++;
+              UPLL_LOG_DEBUG("CompareVtnDataflow returns true, no of df ="
+                             "%d max_dataflow_traverse_count %d",
+                             no_of_dataflow, upll_max_dataflow_traversal_);
+              if (no_of_dataflow > upll_max_dataflow_traversal_) {
+                UPLL_LOG_DEBUG("Setting flow limit to %p",
+                               traverse_match_flow_cmn);
+                traverse_match_flow_cmn->addl_data->reason =
+                    UNC_DF_RES_EXCEEDS_FLOW_LIMIT;
+                traverse_match_flow_cmn->addl_data->controller_count = 1;
+              }
+            }
+          }
+          match_flow++;
+        }
+      }
+      iter_flow++;
+      bypass_dom_set.clear();
+    }
+  } else {
+    vector<DataflowCmn *>::iterator iter_flow = currentnode->next.begin();
+    while (iter_flow != currentnode->next.end()) {
+      // Checking the particular flow is traversed
+      DataflowCmn *traverse_flow_cmn =
+          reinterpret_cast<DataflowCmn *>(*iter_flow);
+      UPLL_LOG_TRACE("node:%s",
+                     DataflowCmn::get_string(*traverse_flow_cmn->
+                                             df_segment->
+                                             vtn_df_common).c_str());
+      if (traverse_flow_cmn->addl_data->reason !=
+          UNC_DF_RES_EXCEEDS_FLOW_LIMIT) {
+        result_code = CheckBoundaryAndTraverse(ckv_df,
+                                               header,
+                                               *iter_flow,
+                                               *iter_flow,
+                                               df_util,
+                                               dmi);
+        UPLL_LOG_TRACE("CheckBoundaryAndTraverse nohead returned %d\n",
+                       result_code);
+        vector<DataflowCmn *>::iterator match_flow = iter_flow + 1;
+        unsigned int no_of_dataflow = 1;
+        while (match_flow != currentnode->next.end()) {
+          DataflowCmn *traverse_match_flow_cmn =
+              reinterpret_cast<DataflowCmn *>(*match_flow);
+          if ((traverse_flow_cmn->next.size() > 0) &&
+              (traverse_match_flow_cmn->addl_data->reason !=
+               UNC_DF_RES_EXCEEDS_FLOW_LIMIT)) {
+            UPLL_LOG_DEBUG("Inside if traversed = false if headnode\n");
+            if (traverse_match_flow_cmn->CompareVtnDataflow(traverse_flow_cmn)
+                == true) {
+              no_of_dataflow++;
+              UPLL_LOG_DEBUG("CompareVtndataflow returns true, node max_df "
+                             "%d:%d\n",
+                             no_of_dataflow,
+                             upll_max_dataflow_traversal_);
+              if (no_of_dataflow > upll_max_dataflow_traversal_) {
+                traverse_match_flow_cmn->addl_data->reason =
+                    UNC_DF_RES_EXCEEDS_FLOW_LIMIT;
+              }
+            }
+          }
+          match_flow++;
+        }
+      }
+      iter_flow++;
+    }
+  }
+  return UPLL_RC_SUCCESS;
+}
+
+upll_rc_t VtnDataflowMoMgr::UpdateReason(DataflowCmn *source_node,
+                                         upll_rc_t result_code) {
+  UPLL_FUNC_TRACE;
+  if (result_code != UPLL_RC_SUCCESS) {
+    switch (result_code) {
+      case UPLL_RC_ERR_NO_SUCH_INSTANCE:
+        if (source_node->df_segment->vtn_df_common->controller_type  ==
+            UNC_CT_PFC)
+          source_node->addl_data->reason = UNC_DF_RES_FLOW_NOT_FOUND;
+        else
+          source_node->addl_data->reason = UNC_DF_RES_DST_NOT_REACHED;
+        break;
+      case UPLL_RC_ERR_RESOURCE_DISCONNECTED:
+      case UPLL_RC_ERR_CTR_DISCONNECTED:
+        source_node->addl_data->reason = UNC_DF_RES_CTRLR_DISCONNECTED;
+        break;
+      case UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR:
+        source_node->addl_data->reason = UNC_DF_RES_OPERATION_NOT_SUPPORTED;
+        break;
+      default:
+        source_node->addl_data->reason = UNC_DF_RES_SYSTEM_ERROR;
+    }
+  }
+  return result_code;
+}
+
+upll_rc_t
+VtnDataflowMoMgr::CheckBoundaryAndTraverse(ConfigKeyVal *ckv_df,
+                                           IpcReqRespHeader *header,
+                                           DataflowCmn *source_node,
+                                           DataflowCmn *lastPfcNode,
+                                           DataflowUtil *df_util,
+                                           DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
+  upll_rc_t result_code = UPLL_RC_SUCCESS;
+  ConfigKeyVal *ckv_remif = NULL;
+  if_type vnif_type;
+  if (!source_node || !lastPfcNode) {
+    UPLL_LOG_DEBUG("DataflowCmn is Null");
+    return UPLL_RC_ERR_GENERIC;
+  }
+  key_vtn_dataflow *vtn_df_key = reinterpret_cast<key_vtn_dataflow *>
+      (ckv_df->get_key());
+  ConfigKeyVal *ckv_ingress =
+      reinterpret_cast<ConfigKeyVal *>(source_node->df_segment->ckv_egress);
+  if (!ckv_ingress) {
+    //    source_node->addl_data->reason = UNC_DF_RES_SUCCESS;
+    UPLL_LOG_DEBUG("Egress interface not specified");
+    return  UPLL_RC_SUCCESS;
+  }
+  VnodeChildMoMgr *vnif_mgr = reinterpret_cast<VnodeChildMoMgr *>(
+      const_cast<MoManager *>(GetMoManager(ckv_ingress->get_key_type())));
+  if (!vnif_mgr) {
+    UPLL_LOG_ERROR("Invalid mgr\n");
+    return UPLL_RC_ERR_GENERIC;
+  }
+  result_code = vnif_mgr->GetInterfaceType(ckv_ingress,
+                                           UNC_VF_INVALID, vnif_type);
+  if (result_code != UPLL_RC_SUCCESS) {
+    return result_code;
+  }
+  if (vnif_type == kBoundaryInterface) {
+    VlinkMoMgr *vlink_mgr = reinterpret_cast<VlinkMoMgr *>
+        (const_cast<MoManager*>(GetMoManager(UNC_KT_VLINK)));
+    if (!vlink_mgr) {
+      UPLL_LOG_ERROR("Invalid mgr\n");
+      return UPLL_RC_ERR_GENERIC;
+    }
+    result_code = vlink_mgr->GetRemoteIf(ckv_ingress, ckv_remif, dmi);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UpdateReason(source_node, UPLL_RC_ERR_GENERIC);
+      DELETE_IF_NOT_NULL(ckv_remif);
+      return  UPLL_RC_SUCCESS;
+    }
+  } else {
+    source_node->addl_data->reason = UNC_DF_RES_SUCCESS;
+    UPLL_LOG_DEBUG("Egress interface is not boundary mapped");
+    return  UPLL_RC_SUCCESS;
+  }
+
+  uint8_t *ctrlr_id = NULL;
+  unc_keytype_ctrtype_t ctrlr_type = UNC_CT_UNKNOWN;
+  GET_USER_DATA_CTRLR(ckv_remif, ctrlr_id);
+  if (UNC_KT_VUNK_IF != ckv_remif->get_key_type()) {
+    result_code = ValidateControllerCapability((const char *)(ctrlr_id),
+                                               false, &ctrlr_type);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UpdateReason(source_node, result_code);
+      delete ckv_remif;
+      return UPLL_RC_SUCCESS;
+    }
+  }
+  if (ctrlr_type == UNC_CT_PFC) {
+    uuu::upll_strncpy(vtn_df_key->vnode_id,
+                      reinterpret_cast<key_vbr_if_t *>(ckv_remif->get_key())->
+                      vbr_key.vbridge_name, (kMaxLenVnodeName + 1));
+    SET_USER_DATA(ckv_df, ckv_remif);
+    delete ckv_remif;
+    result_code = TraversePFCController(ckv_df, header, source_node,
+                                        lastPfcNode, df_util, dmi);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UpdateReason(source_node, result_code);
+      return UPLL_RC_SUCCESS;
+    }
+  } else {
+    // Get the egress interfaces of the boundary(ies)
+    // leading out of the vnp/vbypass domain
+    // into the next neighboring controller domain.
+    // (Karthi)  The Lisf of vnp/vbypass boundary information
+    // available in the ckv_egress.
+    // the Ingress for the PFC to VNP/Vbypass availbe in
+    // ckv_remif first iteration.
+    ConfigKeyVal *ckv_egress = NULL;
+    bool found_inif = false;
+    if_type vnif_type = kUnboundInterface;
+    result_code = PopulateVnpOrVbypassBoundaryInfo(ckv_remif,
+                                                   ckv_egress, dmi);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_ERROR("Retrieval of boundary info failed\n %d\n", result_code);
+      UpdateReason(source_node, UPLL_RC_ERR_GENERIC);
+      return UPLL_RC_SUCCESS;
+    }
+    ConfigKeyVal *nxt_ckv = NULL;
+    uint8_t *bypass_domain[2] = {NULL, NULL};
+    std::pair<std::set<std::string>::iterator, bool> ret;
+    GET_USER_DATA_DOMAIN(ckv_remif, bypass_domain[0]);
+    ConfigKeyVal *ckv_tmp_nxt_ckv = NULL;
+    nxt_ckv = ckv_egress;
+    while (nxt_ckv) {
+      ckv_tmp_nxt_ckv =  nxt_ckv->get_next_cfg_key_val();
+      nxt_ckv->set_next_cfg_key_val(NULL);
+      if (!found_inif && !strncmp(reinterpret_cast<char *>
+                                  (reinterpret_cast<key_vnode_if_t *>
+                                   (ckv_remif->get_key())->vnode_if_name),
+                                  reinterpret_cast<char *>
+                                  (reinterpret_cast<key_vnode_if_t *>
+                                   (nxt_ckv->get_key())->vnode_if_name),
+                                  kMaxLenInterfaceName + 1)) {
+        found_inif = true;
+        delete nxt_ckv;
+        nxt_ckv = ckv_tmp_nxt_ckv;
+        continue;
+      }
+      GET_USER_DATA_DOMAIN(nxt_ckv, bypass_domain[1]);
+      if (ctrlr_type == UNC_CT_UNKNOWN) {
+        ret = bypass_dom_set.insert(
+            (string(reinterpret_cast<char *>(bypass_domain[1]))));
+        UPLL_LOG_DEBUG("bypass egress domain %s", bypass_domain[1]);
+        if (ret.second == false) {
+          UPLL_LOG_INFO("bypass egress domain in loop %s", bypass_domain[1]);
+          source_node->addl_data->reason = UNC_DF_RES_EXCEEDS_HOP_LIMIT;
+          delete nxt_ckv;
+          delete ckv_tmp_nxt_ckv;
+          break;
+        }
+      }
+      DataflowDetail *df_segment =
+          new DataflowDetail(kidx_val_vtn_dataflow_cmn, ctrlr_type);
+      DataflowCmn *df_cmn = new DataflowCmn(false, df_segment);
+      uuu::upll_strncpy(
+          df_cmn->df_segment->vtn_df_common->ingress_domain,
+          bypass_domain[0], (kMaxLenDomainId + 1));
+      uuu::upll_strncpy(
+          df_cmn->df_segment->vtn_df_common->egress_domain,
+          bypass_domain[1], (kMaxLenDomainId + 1));
+      uuu::upll_strncpy(
+          df_cmn->df_segment->vtn_df_common->controller_id,
+          ctrlr_id, (kMaxLenCtrlrId + 1));
+      df_cmn->df_segment->vtn_df_common->controller_type = ctrlr_type;
+      uuu::upll_strncpy(df_cmn->df_segment->vtn_df_common->ingress_vnode,
+                        reinterpret_cast<key_vnode_if_t *>
+                        (ckv_remif->get_key())->vnode_key.vnode_name,
+                        (kMaxLenVnodeName + 1));
+      uuu::upll_strncpy(df_cmn->df_segment->vtn_df_common->
+                        ingress_vinterface, reinterpret_cast<key_vnode_if_t *>
+                        (ckv_remif->get_key())->vnode_if_name,
+                        (kMaxLenInterfaceName + 1));
+      uuu::upll_strncpy(df_cmn->df_segment->vtn_df_common->egress_vnode,
+                        reinterpret_cast<key_vnode_if_t *>
+                        (nxt_ckv->get_key())->vnode_key.vnode_name,
+                        (kMaxLenVnodeName + 1));
+      uuu::upll_strncpy(df_cmn->df_segment->vtn_df_common->egress_vinterface,
+                        reinterpret_cast<key_vnode_if_t *>
+                        (nxt_ckv->get_key())->vnode_if_name,
+                        (kMaxLenInterfaceName + 1));
+      source_node->appendFlow(df_cmn, *(df_util->get_ctrlr_dom_count_map()));
+      result_code =  vnif_mgr->GetInterfaceType(nxt_ckv,
+                                                UNC_VF_INVALID, vnif_type);
+      if (vnif_type != kBoundaryInterface) {
+        delete nxt_ckv;
+        nxt_ckv = ckv_tmp_nxt_ckv;
+        continue;
+      }
+      df_cmn->df_segment->ckv_egress = nxt_ckv;
+      SET_USER_DATA(ckv_df, nxt_ckv);
+      // Traverse the VNP/Vbypass boundary nodes.
+      result_code = CheckBoundaryAndTraverse(ckv_df,
+                                             header,
+                                             df_cmn,
+                                             lastPfcNode,
+                                             df_util,
+                                             dmi);
+      if (result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_ERROR("Retrieval of boundary info failed\n %d\n",
+                       result_code);
+        UpdateReason(source_node, result_code);
+        DELETE_IF_NOT_NULL(ckv_remif);
+        DELETE_IF_NOT_NULL(ckv_tmp_nxt_ckv);
+        return UPLL_RC_SUCCESS;
+      }
+      nxt_ckv = ckv_tmp_nxt_ckv;
+    }
+    delete ckv_remif;
+  }
+  return result_code;
+}
+
+upll_rc_t VtnDataflowMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
+                                              ConfigKeyVal *parent_key) {
+  UPLL_FUNC_TRACE;
+  upll_rc_t result_code = UPLL_RC_SUCCESS;
+  key_vtn_dataflow *vtn_dfkey = NULL;
+  if (okey && okey->get_key()) {
+    vtn_dfkey = reinterpret_cast<key_vtn_dataflow *>(
+        okey->get_key());
+  } else {
+    vtn_dfkey = reinterpret_cast<key_vtn_dataflow *>(
+        ConfigKeyVal::Malloc(sizeof(key_vtn_dataflow)));
+  }
+  void *pkey;
+  if (parent_key == NULL) {
+    if (!okey)
+      okey = new ConfigKeyVal(UNC_KT_VTN_DATAFLOW,
+                              IpctSt::kIpcStKeyVtnDataflow, vtn_dfkey, NULL);
+    else if (okey->get_key() != vtn_dfkey)
+      okey->SetKey(IpctSt::kIpcStKeyVtnDataflow, vtn_dfkey);
+    return UPLL_RC_SUCCESS;
+  } else {
+    pkey = parent_key->get_key();
+  }
+  if (!pkey) {
+    if (!okey || !(okey->get_key()))
+      ConfigKeyVal::Free(vtn_dfkey);
+    return UPLL_RC_ERR_GENERIC;
+  }
+  switch (parent_key->get_key_type()) {
+    case UNC_KT_ROOT:
+      break;
+    case UNC_KT_VTN_DATAFLOW:
+      memcpy(vtn_dfkey, reinterpret_cast<key_vtn_dataflow *>(pkey),
+             sizeof(key_vtn_dataflow));
+      break;
+    case UNC_KT_VTN:
+      uuu::upll_strncpy(vtn_dfkey->vtn_key.vtn_name,
+                        reinterpret_cast<key_vtn *>(pkey)->vtn_name,
+                        (kMaxLenVtnName+1));
+      break;
+    default:
+      if (!okey || !(okey->get_key())) {
+        ConfigKeyVal::Free(vtn_dfkey);
+      }
+      return UPLL_RC_ERR_GENERIC;
+  }
+  if (!okey)
+    okey = new ConfigKeyVal(UNC_KT_VTN_DATAFLOW,
+                            IpctSt::kIpcStKeyVtnDataflow, vtn_dfkey, NULL);
+  else if (okey->get_key() != vtn_dfkey)
+    okey->SetKey(IpctSt::kIpcStKeyVtnDataflow, vtn_dfkey);
+  SET_USER_DATA(okey, parent_key);
+  return result_code;
+}
+
+}  // namespace kt_momgr
+}  // namespace upll
+}  // namespace unc
diff --git a/coordinator/modules/upll/vtn_dataflow_momgr.hh b/coordinator/modules/upll/vtn_dataflow_momgr.hh
new file mode 100644 (file)
index 0000000..41d4ee8
--- /dev/null
@@ -0,0 +1,282 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+#ifndef UNC_UPLL_VTN_DATAFLOW_MOMGR_H
+#define UNC_UPLL_VTN_DATAFLOW_MOMGR_H
+
+#include <uncxx/dataflow.hh>
+#include <string>
+#include <set>
+#include "momgr_impl.hh"
+
+
+namespace unc {
+namespace upll {
+namespace kt_momgr {
+
+// using unc::upll::config_momgr::CtrlrCommitStatus;
+// using unc::upll::config_momgr::CtrlrVoteStatus;
+
+using namespace dataflow;
+
+// using unc::dataflow::DataflowCmn;
+// using unc::dataflow::DataflowUtil;
+// using unc::dataflow::IpctStructNum;
+using unc::upll::dal::DalBindInfo;
+using unc::upll::dal::DalDmlIntf;
+using unc::upll::dal::DalCursor;
+using unc::upll::dal::DalCDataType;
+using unc::upll::ipc_util::IpctSt;
+
+
+class VtnDataflowMoMgr : public MoMgrImpl {
+ public:
+  VtnDataflowMoMgr() {
+    upll_max_dataflow_traversal_ = 0;
+    max_dataflow_traverse_count_ = 0;
+    ReadConfigFile();
+  }
+  virtual ~VtnDataflowMoMgr() {
+  }
+  upll_rc_t ReadMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
+                   DalDmlIntf *dmi);
+  /** Variable to hold max dataflow traversal count to verify during dataflow
+   *  traversal, dataflow traversal is limited by this count value
+   **/
+  uint32_t upll_max_dataflow_traversal_;
+
+  /* This function is used to convert the vexternal name to
+   * vbridge name in the path info structure.
+   */
+  upll_rc_t ConvertVexternaltoVbr(const uint8_t *vtn_name,
+                                  uint8_t *vex_name,
+                                  uint8_t *vex_if_name,
+                                  DalDmlIntf *dmi);
+
+  upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey,
+                              ConfigKeyVal *ikey);
+
+ private:
+  /**
+   * @Description : This function reads config from file
+   * @param[in] :
+   **/
+  inline upll_rc_t ReadConfigFile() {
+    UPLL_FUNC_TRACE;
+    pfc::core::ModuleConfBlock ipcblock("vtn_dataflow");
+    upll_max_dataflow_traversal_ = ipcblock.getUint32(
+        "upll_max_dataflowtraversal", 1000);
+    UPLL_LOG_DEBUG("upll_max_dataflow_traversal_ - red from upll.conf = %d",
+                   upll_max_dataflow_traversal_);
+    return UPLL_RC_SUCCESS;
+  }
+
+  /**
+   * @Brief   Validates the syntax of the specified key and value structure
+   *          for KT_VTN keytype
+   *
+   * @param[in]  req    This structure contains
+   *                     IpcReqRespHeader(first 8 fields of
+   *                     input request structure).
+   * @param[in]  ikey   ikey contains key and value structure.
+   *
+   * @retval   UPLL_RC_SUCCESS                       Successful.
+   * @retval   UPLL_RC_ERR_GENERIC                   Generic failure.
+   * @retval   UPLL_RC_ERR_BAD_REQUEST               key/value struct is
+   *                                                 not valid.
+   * @retval   UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT   operation not allowed.
+   * @retval   UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT   Datatype not allowed.
+   * @retval   UPLL_RC_ERR_INVALID_OPTION1           option1 is not valid.
+   * @retval   UPLL_RC_ERR_INVALID_OPTION2           option2 is not valid.
+   **/
+  upll_rc_t ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *kval);
+
+  /**
+   * @Brief Validates the syntax for KT_VTN Keytype Key structure.
+   *
+   * @param[in]  val_vtn  KT_VTN key structure.
+   *
+   * @retval  UPLL_RC_SUCCESS         validation succeeded.
+   * @retval  UPLL_RC_ERR_CFG_SYNTAX  validation failed.
+   *
+   **/
+  upll_rc_t ValidateVtnDataflowKey(key_vtn_dataflow *vtndataflow);
+
+  /**
+   * @Brief Validates the controller capability for VTN dataflow
+   *
+   * @param[in]  ctrlr_name      controller name.
+   * @param[in]  is_first_ctrlr  flag to  specify  ingress controller or not.
+   * @param[out] ctrlr_type      specifies the controller type.
+   *
+   * @retval  UPLL_RC_SUCCESS                      Success.
+   * @retval  UPLL_RC_ERR_GENERIC                  Generic Error.
+   * @retval  UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR   controller not supported.
+   *
+   **/
+  upll_rc_t ValidateControllerCapability(const char *ctrlr_name,
+                                         bool is_first_ctrlr,
+                                         unc_keytype_ctrtype_t *ctrlr_type);
+
+  /**
+   * @Brief Get the controller and domain id from the specified vtn and
+   *        vnode id
+   *
+   * @param[in]   vtn_id     vtn name.
+   * @param[in]   vnode_id   vnode_name.
+   * @param[out]  ctrlr_dom  controller domain pointer.
+   * @param[out]  dmi         Dal interface pointer.
+   *
+   * @retval  UPLL_RC_SUCCESS               Success.
+   * @retval  UPLL_RC_ERR_GENERIC           Generic Error.
+   * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE  No specified instance in database.
+   *
+   **/
+  upll_rc_t GetVnodeControllerDomain(uint8_t *vtn_id, uint8_t *vnode_id,
+                                     std::string &ctrlr, std::string &domain,
+                                     DalDmlIntf *dmi);
+
+  upll_rc_t UpdatePathInfoInterfaces(DataflowCmn *df_cmn,
+                                     const uint8_t  *vtn_name,
+                                     DalDmlIntf *dmi);
+  upll_rc_t MapVexternalToVbridge(const ConfigKeyVal *ckv_df,
+                                  DataflowCmn *df_cmn,
+                                  bool *is_vnode_match,
+                                  DalDmlIntf *dmi);
+  upll_rc_t FillCtrlrDomCountMap(uint8_t *vtn_name,
+                                 uint32_t  &ctrlr_dom_count,
+                                 DalDmlIntf *dmi);
+
+  upll_rc_t CheckBoundaryAndTraverse(ConfigKeyVal *ckv_df,
+                                     IpcReqRespHeader *header,
+                                     DataflowCmn *source_node,
+                                     DataflowCmn *lastPfcNode,
+                                     DataflowUtil *df_util,
+                                     DalDmlIntf *dmi);
+
+  upll_rc_t GetNeighborInfo(uint8_t *vtn_name,
+                            DataflowCmn  *df_cmn,
+                            ConfigKeyVal *&ckv_inif,
+                            ConfigKeyVal *&ckv_remif,
+                            DalDmlIntf *dmi);
+
+  upll_rc_t TraversePFCController(ConfigKeyVal *ckv_df,
+                                  IpcReqRespHeader *header,
+                                  DataflowCmn *source_node,
+                                  DataflowCmn *lastPfcNode,
+                                  DataflowUtil *df_util,
+                                  DalDmlIntf *dmi,
+                                  bool is_first_ctrlr = false);
+  upll_rc_t PopulateVnpOrVbypassBoundaryInfo(ConfigKeyVal *&ckv_inif,
+                                             ConfigKeyVal *&ckv_remif,
+                                             DalDmlIntf *dmi);
+
+  upll_rc_t MapCtrlrNameToUncName(
+      const uint8_t *vtn_name,
+      val_vtn_dataflow_path_info *out_path_info,
+      uint8_t *ctrlr_id,
+      DalDmlIntf *dmi);
+  upll_rc_t UpdateReason(DataflowCmn *source_node, upll_rc_t result_code);
+
+
+  upll_rc_t GetParentConfigKey(ConfigKeyVal*&okey, ConfigKeyVal *ikey) {
+    return UPLL_RC_SUCCESS;
+  }
+  upll_rc_t UpdateConfigStatus(ConfigKeyVal *ckv1,
+                               unc_keytype_operation_t op,
+                               uint32_t count,
+                               ConfigKeyVal *ckv2,
+                               DalDmlIntf *dmi,
+                               ConfigKeyVal *ckv3) {
+    UPLL_FUNC_TRACE;
+    return UPLL_RC_SUCCESS;
+  }
+  upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t st,
+                                    uuc::UpdateCtrlrPhase up,
+                                    ConfigKeyVal*&ckv,
+                                    DalDmlIntf *dmi) {
+    UPLL_FUNC_TRACE;
+    return UPLL_RC_SUCCESS;
+  }
+  upll_rc_t ValidateAttribute(ConfigKeyVal*ikey,
+                              DalDmlIntf *dmi,
+                              IpcReqRespHeader *header) {
+    UPLL_FUNC_TRACE;
+    return UPLL_RC_SUCCESS;
+  }
+  upll_rc_t GetValid(void *v1,
+                     uint64_t u,
+                     uint8_t*& ui,
+                     upll_keytype_datatype_t dt,
+                     MoMgrTables tbl) {
+    UPLL_FUNC_TRACE;
+    return UPLL_RC_SUCCESS;
+  }
+  upll_rc_t ValidateCapability(IpcReqRespHeader *header,
+                               ConfigKeyVal*ikey,
+                               const char* ctrkr) {
+    UPLL_FUNC_TRACE;
+    return UPLL_RC_SUCCESS;
+  }
+  upll_rc_t DupConfigKeyVal(ConfigKeyVal*&okey,
+                            ConfigKeyVal*&ikey,
+                            MoMgrTables tbl) {
+    UPLL_FUNC_TRACE;
+    return UPLL_RC_SUCCESS;
+  }
+  bool IsValidKey(void*v , uint64_t t) {
+    UPLL_FUNC_TRACE;
+    return true;
+  }
+  bool CompareValidValue(void*&v1, void*v2, bool b) {
+    UPLL_FUNC_TRACE;
+    return true;
+  }
+  upll_rc_t GetRenamedUncKey(ConfigKeyVal* ikey,
+                             upll_keytype_datatype_t dt,
+                             DalDmlIntf *dmi,
+                             uint8_t *ctrlr) {
+    UPLL_FUNC_TRACE;
+    return UPLL_RC_SUCCESS;
+  }
+  bool GetRenameKeyBindInfo(unc_key_type_t dt,
+                            BindInfo*& binfo,
+                            int&count,
+                            MoMgrTables tbl) {
+    UPLL_FUNC_TRACE;
+    return true;
+  }
+  upll_rc_t CopyToConfigKey(ConfigKeyVal*&okey, ConfigKeyVal*ikey) {
+    UPLL_FUNC_TRACE;
+    UPLL_LOG_INFO("Not implemented. Returning Generic Error");
+    return UPLL_RC_ERR_GENERIC;
+  }
+  upll_rc_t IsReferenced(ConfigKeyVal *ikey,
+                         upll_keytype_datatype_t dt,
+                         DalDmlIntf *dmi) {
+    UPLL_FUNC_TRACE;
+    return UPLL_RC_SUCCESS;
+  }
+  upll_rc_t AllocVal(ConfigVal *&ckv1,
+                     upll_keytype_datatype_t dt,
+                     MoMgrTables tbl) {
+    UPLL_FUNC_TRACE;
+    return UPLL_RC_SUCCESS;
+  }
+
+  uint32_t max_dataflow_traverse_count_;
+  std::set<std::string> bypass_dom_set;
+};
+
+
+}  // namespace kt_momgr
+}  // namespace upll
+}  // namespace unc
+#endif
+
index 21401cb9fb65bc054e07a9880c380227cec6f923..4ec179a3be83d8c2bc74fa91b529e88749732a78 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -23,14 +23,14 @@ using std::set;
 using std::map;
 using unc::upll::ipc_util::IpcUtil;
 #define GET_VALID_MAINCTRL(tbl, l_val_ctrl_ff, l_val_ff, en) \
-  (tbl == MAINTBL) ? &(l_val_ff->valid[en]) : &(l_val_ctrl_ff->valid[en])
+    (tbl == MAINTBL) ? &(l_val_ff->valid[en]) : &(l_val_ctrl_ff->valid[en])
 namespace unc {
 namespace upll {
 namespace kt_momgr {
 
 #define FLOWLIST_RENAME    0x02
 #define NO_FLOWLIST_RENAME ~FLOWLIST_RENAME
-// VTN FlowFilter Entry Main Table
+//  VTN FlowFilter Entry Main Table
 BindInfo VtnFlowFilterEntryMoMgr::vtn_flowfilter_entry_bind_info[] = {
   { uudst::vtn_flowfilter_entry::kDbiVtnName, CFG_KEY,
     offsetof(key_vtn_flowfilter_entry_t, flowfilter_key.vtn_key.vtn_name),
@@ -93,7 +93,7 @@ BindInfo VtnFlowFilterEntryMoMgr::vtn_flowfilter_entry_bind_info[] = {
     offsetof(val_vtn_flowfilter_entry_t, cs_attr[4]),
     uud::kDalUint8, 1 } };
 
-// VTN FlowFilter Entry Controller Table
+//  VTN FlowFilter Entry Controller Table
 BindInfo VtnFlowFilterEntryMoMgr::vtn_flowfilter_entry_ctrlr_bind_info[] = {
   { uudst::vtn_flowfilter_entry_ctrlr::kDbiVtnName, CFG_KEY,
     offsetof(key_vtn_flowfilter_entry_t, flowfilter_key.vtn_key.vtn_name),
@@ -112,19 +112,19 @@ BindInfo VtnFlowFilterEntryMoMgr::vtn_flowfilter_entry_ctrlr_bind_info[] = {
     uud::kDalChar, (kMaxLenDomainId + 1) },
   { uudst::vtn_flowfilter_entry_ctrlr::kDbiFlags, CK_VAL,
     offsetof(key_user_data_t, flags),
-      uud::kDalUint8, 1 },
+    uud::kDalUint8, 1 },
   { uudst::vtn_flowfilter_entry_ctrlr::kDbiValidFlowlistName, CFG_META_VAL,
     offsetof(val_vtn_flowfilter_entry_ctrlr, valid[0]),
     uud::kDalUint8, 1 },
   { uudst::vtn_flowfilter_entry_ctrlr::kDbiValidAction, CFG_META_VAL,
     offsetof(val_vtn_flowfilter_entry_ctrlr, valid[1]),
-      uud::kDalUint8, 1 },
+    uud::kDalUint8, 1 },
   { uudst::vtn_flowfilter_entry_ctrlr::kDbiValidNwnName, CFG_META_VAL,
     offsetof(val_vtn_flowfilter_entry_ctrlr, valid[2]),
-      uud::kDalUint8, 1 },
+    uud::kDalUint8, 1 },
   { uudst::vtn_flowfilter_entry_ctrlr::kDbiValidDscp, CFG_META_VAL,
     offsetof(val_vtn_flowfilter_entry_ctrlr, valid[3]),
-      uud::kDalUint8, 1 },
+    uud::kDalUint8, 1 },
   { uudst::vtn_flowfilter_entry_ctrlr::kDbiValidPriority, CFG_META_VAL,
     offsetof(val_vtn_flowfilter_entry_ctrlr, valid[4]),
     uud::kDalUint8, 1 },
@@ -150,27 +150,26 @@ BindInfo VtnFlowFilterEntryMoMgr::vtn_flowfilter_entry_ctrlr_bind_info[] = {
 
 BindInfo VtnFlowFilterEntryMoMgr::vtnflowfilterentrymaintbl_bind_info[] = {
   {uudst::vtn_flowfilter_entry::kDbiVtnName, CFG_MATCH_KEY, offsetof(
-    key_vtn_flowfilter_entry_t, flowfilter_key.vtn_key.vtn_name),
-    uud::kDalChar, kMaxLenVtnName + 1},
+          key_vtn_flowfilter_entry_t, flowfilter_key.vtn_key.vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1},
   {uudst::vtn_flowfilter_entry::kDbiVtnName, CFG_INPUT_KEY, offsetof(
-    key_rename_vnode_info_t, new_unc_vtn_name),
-    uud::kDalChar, kMaxLenVtnName + 1},
+          key_rename_vnode_info_t, new_unc_vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1},
   {uudst::vtn_flowfilter_entry::kDbiFlags, CK_VAL, offsetof(
-    key_user_data_t, flags),
-    uud::kDalUint8, 1}
+          key_user_data_t, flags),
+  uud::kDalUint8, 1}
 };
 
 BindInfo VtnFlowFilterEntryMoMgr::vtnflowfilterentryctrlrtbl_bind_info[] = {
   {uudst::vtn_flowfilter_entry_ctrlr::kDbiVtnName, CFG_MATCH_KEY, offsetof(
-    key_vtn_flowfilter_t, vtn_key.vtn_name),
-    uud::kDalChar, kMaxLenVtnName + 1},
+          key_vtn_flowfilter_t, vtn_key.vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1},
   {uudst::vtn_flowfilter_entry_ctrlr::kDbiVtnName, CFG_INPUT_KEY, offsetof(
-    key_rename_vnode_info_t, new_unc_vtn_name),
-    uud::kDalChar, kMaxLenVtnName + 1},
+          key_rename_vnode_info_t, new_unc_vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1},
   {uudst::vtn_flowfilter_entry_ctrlr::kDbiFlags, CK_VAL, offsetof(
-    key_user_data_t, flags),
-    uud::kDalUint8, 1}
-
+          key_user_data_t, flags),
+  uud::kDalUint8, 1}
 };
 
 VtnFlowFilterEntryMoMgr::VtnFlowFilterEntryMoMgr() :MoMgrImpl() {
@@ -180,32 +179,37 @@ VtnFlowFilterEntryMoMgr::VtnFlowFilterEntryMoMgr() :MoMgrImpl() {
   ntable = MAX_MOMGR_TBLS;
   table = new Table *[ntable];
   // Construct  Main Table
-  table[MAINTBL] = new Table(uudst::kDbiVtnFlowFilterEntryTbl,
-      UNC_KT_VTN_FLOWFILTER_ENTRY, vtn_flowfilter_entry_bind_info,
-      IpctSt::kIpcStKeyVtnFlowfilterEntry, IpctSt::kIpcStValVtnFlowfilterEntry,
+  table[MAINTBL] = new Table(
+      uudst::kDbiVtnFlowFilterEntryTbl,
+      UNC_KT_VTN_FLOWFILTER_ENTRY,
+      vtn_flowfilter_entry_bind_info,
+      IpctSt::kIpcStKeyVtnFlowfilterEntry,
+      IpctSt::kIpcStValVtnFlowfilterEntry,
       uudst::vtn_flowfilter_entry::kDbiVtnFlowFilterEntryNumCols);
   table[RENAMETBL] = NULL;
   // Construct CONTROLLER Table
-  table[CTRLRTBL] = new Table(uudst::kDbiVtnFlowFilterEntryCtrlrTbl,
-      UNC_KT_VTN_FLOWFILTER_ENTRY, vtn_flowfilter_entry_ctrlr_bind_info,
-      IpctSt::kIpcStKeyVtnFlowfilterEntry, IpctSt::kIpcInvalidStNum,
+  table[CTRLRTBL] = new Table(
+      uudst::kDbiVtnFlowFilterEntryCtrlrTbl,
+      UNC_KT_VTN_FLOWFILTER_ENTRY,
+      vtn_flowfilter_entry_ctrlr_bind_info,
+      IpctSt::kIpcStKeyVtnFlowfilterEntry,
+      IpctSt::kIpcInvalidStNum,
       uudst::vtn_flowfilter_entry_ctrlr::kDbiVtnFlowFilterEntryCtrlrNumCols);
 
-  // VTN FlowFilter Entry Does not have any child
+  //  VTN FlowFilter Entry Does not have any child
   nchild = 0;
   child = NULL;
-  cur_instance_count = 0;
 }
 
 upll_rc_t VtnFlowFilterEntryMoMgr::IsReferenced(
-                                               ConfigKeyVal *ikey,
-                                               upll_keytype_datatype_t dt_type,
-                                               DalDmlIntf *dmi) {
+    ConfigKeyVal *ikey,
+    upll_keytype_datatype_t dt_type,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   if (NULL == ikey) return UPLL_RC_ERR_GENERIC;
   DbSubOp dbop = { kOpReadExist, kOpMatchNone, kOpInOutNone };
-  // Check the exixtence in Maintable
+  //  Check the exixtence in Maintable
   result_code = UpdateConfigDB(ikey, dt_type, UNC_OP_READ, dmi, &dbop, MAINTBL);
   return result_code;
 }
@@ -218,7 +222,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::GetControllerKeyval(
   ConfigVal *ctrlcv = NULL;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
   key_vtn_flowfilter_entry_t *vtn_ff_ctrl_key =
-           reinterpret_cast<key_vtn_flowfilter_entry_t*>(ikey->get_key());
+      reinterpret_cast<key_vtn_flowfilter_entry_t*>(ikey->get_key());
   if (vtn_ff_ctrl_key == NULL) {
     return UPLL_RC_ERR_GENERIC;
   }
@@ -228,8 +232,8 @@ upll_rc_t VtnFlowFilterEntryMoMgr::GetControllerKeyval(
     return result_code;
   }
   val_vtn_flowfilter_entry_t *val_vtn_ff_entry =
-                     reinterpret_cast<val_vtn_flowfilter_entry_t*>
-                     (ikey->get_cfg_val()->get_val());
+      reinterpret_cast<val_vtn_flowfilter_entry_t*>
+      (ikey->get_cfg_val()->get_val());
   if (val_vtn_ff_entry == NULL) {
     return UPLL_RC_ERR_GENERIC;
   }
@@ -237,11 +241,11 @@ upll_rc_t VtnFlowFilterEntryMoMgr::GetControllerKeyval(
       reinterpret_cast<val_vtn_flowfilter_entry_ctrlr*>
       (ConfigKeyVal::Malloc(sizeof(val_vtn_flowfilter_entry_ctrlr)));
   for (unsigned int loop = 0; loop <
-      sizeof(val_vtn_ff_entry->valid) /sizeof(val_vtn_ff_entry->valid[0]);
-      loop++) {
-     if (val_vtn_ff_entry->valid[loop] == UNC_VF_VALID) {
-        val_ff_ctrl->valid[loop] = UNC_VF_VALID;
-     }
+       sizeof(val_vtn_ff_entry->valid) /sizeof(val_vtn_ff_entry->valid[0]);
+       loop++) {
+    if (val_vtn_ff_entry->valid[loop] == UNC_VF_VALID) {
+      val_ff_ctrl->valid[loop] = UNC_VF_VALID;
+    }
   }
   ctrlcv = new ConfigVal(IpctSt::kIpcInvalidStNum, val_ff_ctrl);
   ctrlckv->AppendCfgVal(ctrlcv);
@@ -250,12 +254,12 @@ upll_rc_t VtnFlowFilterEntryMoMgr::GetControllerKeyval(
 }
 
 upll_rc_t VtnFlowFilterEntryMoMgr::UpdateControllerTableForVtn(
-                                                 uint8_t* vtn_name,
-                                                 controller_domain *ctrlr_dom,
-                                                 unc_keytype_operation_t op,
-                                                 upll_keytype_datatype_t dt_type,
-                                                 DalDmlIntf *dmi,
-                                                 uint8_t flag) {
+    uint8_t* vtn_name,
+    controller_domain *ctrlr_dom,
+    unc_keytype_operation_t op,
+    upll_keytype_datatype_t dt_type,
+    DalDmlIntf *dmi,
+    uint8_t flag) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *ikey = NULL;
@@ -275,12 +279,12 @@ upll_rc_t VtnFlowFilterEntryMoMgr::UpdateControllerTableForVtn(
       (ikey->get_key());
   uuu::upll_strncpy(vtn_ff_key->flowfilter_key.vtn_key.vtn_name,
                     vtn_name, (kMaxLenVtnName+1));
-  // set this value so that the direction
-  // can be bound for output instead of match
+  //  set this value so that the direction
+  //  can be bound for output instead of match
   vtn_ff_key->flowfilter_key.input_direction = 0xFE;
 
   DbSubOp dbop = {kOpReadMultiple, kOpMatchNone, kOpInOutNone};
-  // Read the Configuration from the MainTable
+  //  Read the Configuration from the MainTable
   result_code = ReadConfigDB(ikey, dt_type,
                              UNC_OP_READ, dbop, dmi, MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
@@ -313,7 +317,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::UpdateControllerTableForVtn(
       UPLL_LOG_DEBUG("temp_flag in UpdateControllerTableForVtn %d", temp_flag);
       DbSubOp dbop1 = {kOpNotRead, kOpMatchNone, kOpInOutCs | kOpInOutFlag};
       result_code = UpdateConfigDB(flag_ikey, dt_type, UNC_OP_UPDATE,
-          dmi, &dbop1, MAINTBL);
+                                   dmi, &dbop1, MAINTBL);
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("UpdateConfigDB failed %d", result_code);
         DELETE_IF_NOT_NULL(ikey);
@@ -336,9 +340,9 @@ upll_rc_t VtnFlowFilterEntryMoMgr::UpdateControllerTableForVtn(
     if (result_code != UPLL_RC_SUCCESS) {
       if ((result_code == UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT) ||
           (result_code == UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR)) {
-         UPLL_LOG_DEBUG("ValidateCapability failed");
-         DELETE_IF_NOT_NULL(ikey);
-         return result_code;
+        UPLL_LOG_DEBUG("ValidateCapability failed");
+        DELETE_IF_NOT_NULL(ikey);
+        return result_code;
       }
       if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
         UPLL_LOG_DEBUG("No instance in UpdateControllerTable");
@@ -348,12 +352,12 @@ upll_rc_t VtnFlowFilterEntryMoMgr::UpdateControllerTableForVtn(
       UPLL_LOG_DEBUG("create in ctrlr tbl failed: error code (%d)",
                      result_code);
     }
-    // Notify the flowlistmomgr is flowlist is configured.
+    //  Notify the flowlistmomgr is flowlist is configured.
     //
     val_vtn_flowfilter_entry_t *val_vtn_ffe =
         reinterpret_cast<val_vtn_flowfilter_entry_t *> (GetVal(new_ikey));
-    // if Flowlist name is configured in the flowfilter
-    // send controller add/delete request to flowlist momgr.
+    //  if Flowlist name is configured in the flowfilter
+    //  send controller add/delete request to flowlist momgr.
     if (UNC_VF_VALID == val_vtn_ffe->valid[UPLL_IDX_FLOWLIST_NAME_VFFE]) {
       result_code = flowlist_mgr->AddFlowListToController(
           reinterpret_cast<char *>(val_vtn_ffe->flowlist_name), dmi,
@@ -374,9 +378,10 @@ upll_rc_t VtnFlowFilterEntryMoMgr::UpdateControllerTableForVtn(
 
 upll_rc_t VtnFlowFilterEntryMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
                                                      ConfigKeyVal *ikey,
-                                                     DalDmlIntf *dmi) {
+                                                     DalDmlIntf *dmi,
+                                                     bool restore_flag) {
   UPLL_FUNC_TRACE;
-  // ConfigKeyVal *okey = NULL;
+  //  ConfigKeyVal *okey = NULL;
   if (ikey == NULL || req == NULL) {
     UPLL_LOG_TRACE(
         "Cannot perform create operation due to insufficient parameters");
@@ -384,11 +389,13 @@ upll_rc_t VtnFlowFilterEntryMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
   }
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   upll_rc_t vtn_ctrlr_span_rt_code = UPLL_RC_SUCCESS;
-  // validate syntax and semantics
-  result_code = ValidateMessage(req, ikey);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("ValidateMessage failed result code=%d", result_code);
-    return result_code;
+  if (!restore_flag) {
+    //  validate syntax and semantics
+    result_code = ValidateMessage(req, ikey);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("ValidateMessage failed result code=%d", result_code);
+      return result_code;
+    }
   }
 
   result_code = ValidateAttribute(ikey, dmi, req);
@@ -396,46 +403,52 @@ upll_rc_t VtnFlowFilterEntryMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
     UPLL_LOG_DEBUG("ValidateAttribute failed: err code(%d)", result_code);
     return result_code;
   }
-  /*
-  result_code = ValidateCapability(req, ikey);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("ValidateCapability failed result code=%d", result_code);
-    return result_code;
-  }
-  */
-  // Check if Object already exists in CANDIDATE DB
-  result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_READ, dmi);
-  if ((result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) &&
-      (result_code != UPLL_RC_ERR_INSTANCE_EXISTS)) {
-    UPLL_LOG_DEBUG(" UpdateConfigDB() error (%d)", result_code);
-    return result_code;
-  }
-  if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-    UPLL_LOG_DEBUG("Record already exists in Candidate DB: err code(%d)",
-                   result_code);
-    return result_code;
-  }
-  // Check if Object exists in RUNNING DB and move it to CANDIDATE DB
-  if (req->datatype == UPLL_DT_CANDIDATE) {
-    result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dmi,
-                                 MAINTBL);
-    if ((result_code != UPLL_RC_ERR_INSTANCE_EXISTS) &&
-        (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE)) {
-      UPLL_LOG_DEBUG(" Is Exist check operation failed: err code(%d)",
-                     result_code);
-      return result_code;
-    }
-    if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
-      result_code = RestoreChildren(ikey, req->datatype, UPLL_DT_RUNNING, dmi);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("Restore Operation Failed, err %d", result_code);
+
+  if (!restore_flag) {
+    if (UPLL_DT_CANDIDATE == req->datatype) {
+      result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dmi,
+                                   MAINTBL);
+      if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
+        UPLL_LOG_DEBUG("Key instance exist");
+        if ((ikey)->get_cfg_val()) {
+          UPLL_LOG_DEBUG("Read Key with Value struct");
+          DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
+            kOpInOutFlag | kOpInOutCtrlr | kOpInOutDomain };
+          result_code = ReadConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dbop,
+                                     dmi, MAINTBL);
+          if (UPLL_RC_SUCCESS != result_code &&
+              UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+            UPLL_LOG_DEBUG("ReadConfigDB Failed %d",  result_code);
+          }
+          if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code)  {
+            return UPLL_RC_ERR_CFG_SEMANTIC;
+          }
+        } else  {
+          result_code = UPLL_RC_SUCCESS;
+        }
+        if (UPLL_RC_SUCCESS == result_code) {
+          result_code = RestoreChildren(ikey,
+                                        req->datatype,
+                                        UPLL_DT_RUNNING,
+                                        dmi,
+                                        req);
+          UPLL_LOG_DEBUG("Restore Children returns %d", result_code);
+          return result_code;
+        }
+      } else if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+        UPLL_LOG_DEBUG("UpdateConfigDB Failed %d", result_code);
         return result_code;
       }
-      return result_code;
     }
+  } else {
+    result_code = UPLL_RC_ERR_NO_SUCH_INSTANCE;
   }
+
   std::list<controller_domain_t> list_ctrlr_dom;
-  vtn_ctrlr_span_rt_code = GetVtnControllerSpan(ikey, req->datatype, dmi, list_ctrlr_dom);
+  vtn_ctrlr_span_rt_code = GetVtnControllerSpan(ikey,
+                                                req->datatype,
+                                                dmi,
+                                                list_ctrlr_dom);
   if ((vtn_ctrlr_span_rt_code != UPLL_RC_SUCCESS) &&
       (vtn_ctrlr_span_rt_code != UPLL_RC_ERR_NO_SUCH_INSTANCE)) {
     UPLL_LOG_DEBUG(" GetVtnControllerSpan  error code (%d)",
@@ -447,12 +460,12 @@ upll_rc_t VtnFlowFilterEntryMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
     for (std::list<controller_domain_t>::iterator it= list_ctrlr_dom.begin();
          it != list_ctrlr_dom.end(); ++it) {
       /*result_code = ValidateCapability(
-          req, ikey,
-          reinterpret_cast<const char *>(it->ctrlr));
-      if (result_code != UPLL_RC_SUCCESS) {
+        req, ikey,
+        reinterpret_cast<const char *>(it->ctrlr));
+        if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("Key not supported by controller");
         return result_code;
-      }*/
+        }*/
     }
   } else if (UPLL_RC_ERR_NO_SUCH_INSTANCE != vtn_ctrlr_span_rt_code) {
     UPLL_LOG_DEBUG(" GetVtnControllerSpan failed . Resultcode %d ",
@@ -460,16 +473,16 @@ upll_rc_t VtnFlowFilterEntryMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
     return vtn_ctrlr_span_rt_code;
   }
 
-  // create a record in CANDIDATE DB
+  //  create a record in CANDIDATE DB
   result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_CREATE,
                                dmi, MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
-    // delete okey;
+    //  delete okey;
     FREE_LIST_CTRLR(list_ctrlr_dom);
     return result_code;
   }
 
-// create a record in CANDIDATE DB for controller Table
+  //  create a record in CANDIDATE DB for controller Table
   if (vtn_ctrlr_span_rt_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
     result_code = UpdateControllerTable(ikey, UNC_OP_CREATE,
                                         req->datatype, dmi,
@@ -478,8 +491,11 @@ upll_rc_t VtnFlowFilterEntryMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("create in ctrlr tbl failed: error code (%d)",
                      result_code);
-      upll_rc_t del_result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_DELETE,
-                                   dmi, MAINTBL);
+      upll_rc_t del_result_code = UpdateConfigDB(ikey,
+                                                 req->datatype,
+                                                 UNC_OP_DELETE,
+                                                 dmi,
+                                                 MAINTBL);
       if (del_result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("delete in CandidateDB failed: err code(%d) ",
                        del_result_code);
@@ -489,9 +505,12 @@ upll_rc_t VtnFlowFilterEntryMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
     }
   }
   val_vtn_flowfilter_entry_t *val_vtn_ffe = reinterpret_cast
-    <val_vtn_flowfilter_entry_t *>(GetVal(ikey));
+      <val_vtn_flowfilter_entry_t *>(GetVal(ikey));
   if (UNC_VF_VALID == val_vtn_ffe->valid[UPLL_IDX_FLOWLIST_NAME_VFFE]) {
-    result_code = UpdateFlowListInCtrl(ikey, req->datatype, UNC_OP_CREATE, dmi);
+    result_code = UpdateFlowListInCtrl(ikey,
+                                       req->datatype,
+                                       UNC_OP_CREATE,
+                                       dmi);
     if (result_code != UPLL_RC_SUCCESS) {
       if (vtn_ctrlr_span_rt_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
         FREE_LIST_CTRLR(list_ctrlr_dom);
@@ -503,7 +522,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
   if (vtn_ctrlr_span_rt_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
     FREE_LIST_CTRLR(list_ctrlr_dom);
   }
-  // delete okey;
+  //  delete okey;
   return result_code;
 }
 
@@ -520,9 +539,9 @@ upll_rc_t VtnFlowFilterEntryMoMgr::RestorePOMInCtrlTbl(
     return UPLL_RC_ERR_GENERIC;
   }
   if (tbl != MAINTBL ||
-       (ikey->get_key_type() != UNC_KT_VTN_FLOWFILTER_ENTRY)) {
+      (ikey->get_key_type() != UNC_KT_VTN_FLOWFILTER_ENTRY)) {
     UPLL_LOG_DEBUG("Ignoring  ktype/Table kt=%d, tbl=%d",
-                    ikey->get_key_type(), tbl);
+                   ikey->get_key_type(), tbl);
     return result_code;
   }
   val_vtn_flowfilter_entry_t *flowfilter_val =
@@ -536,17 +555,17 @@ upll_rc_t VtnFlowFilterEntryMoMgr::RestorePOMInCtrlTbl(
     result_code = UpdateFlowListInCtrl(ikey, dt_type, UNC_OP_CREATE, dmi);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Unable to update flowlist in ctrlr table, err %d",
-                    result_code);
+                     result_code);
       return result_code;
     }
   }
   return result_code;
 }
 upll_rc_t VtnFlowFilterEntryMoMgr::UpdateFlowListInCtrl(
-                                   ConfigKeyVal *ikey,
-                                   upll_keytype_datatype_t dt_type,
-                                   unc_keytype_operation_t op,
-                                   DalDmlIntf* dmi) {
+    ConfigKeyVal *ikey,
+    upll_keytype_datatype_t dt_type,
+    unc_keytype_operation_t op,
+    DalDmlIntf* dmi) {
   UPLL_FUNC_TRACE;
   ConfigKeyVal *vtn_okey = NULL;
   uint8_t* ctrlr_id;
@@ -554,24 +573,24 @@ upll_rc_t VtnFlowFilterEntryMoMgr::UpdateFlowListInCtrl(
 
   VtnMoMgr *vtnmgr =
       static_cast<VtnMoMgr *>((const_cast<MoManager *>
-      (GetMoManager(UNC_KT_VTN))));
+                               (GetMoManager(UNC_KT_VTN))));
   result_code = vtnmgr->GetChildConfigKey(vtn_okey, NULL);
   if (result_code != UPLL_RC_SUCCESS) {
     return result_code;
   }
   FlowListMoMgr *flowlist_mgr = reinterpret_cast<FlowListMoMgr *>
-  (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
+      (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
   val_vtn_flowfilter_entry_t *flowfilter_val =
-           reinterpret_cast<val_vtn_flowfilter_entry_t *> (GetVal(ikey));
+      reinterpret_cast<val_vtn_flowfilter_entry_t *> (GetVal(ikey));
 
-  // For Controllers in VTN Span
-  // Update the Flowlist details of the FlowlistController Table
+  //  For Controllers in VTN Span
+  //  Update the Flowlist details of the FlowlistController Table
   key_vtn_t *vtn_key = reinterpret_cast<key_vtn*>(vtn_okey->get_key());
   key_vtn_flowfilter_entry_t *ff_entry_key =
-                 reinterpret_cast<key_vtn_flowfilter_entry_t*>(ikey->get_key());
+      reinterpret_cast<key_vtn_flowfilter_entry_t*>(ikey->get_key());
   uuu::upll_strncpy(vtn_key->vtn_name,
-                   ff_entry_key->flowfilter_key.vtn_key.vtn_name,
-                   (kMaxLenVtnName + 1));
+                    ff_entry_key->flowfilter_key.vtn_key.vtn_name,
+                    (kMaxLenVtnName + 1));
   result_code = vtnmgr->GetControllerDomainSpan(vtn_okey, dt_type,
                                                 dmi);
   if (result_code != UPLL_RC_SUCCESS &&
@@ -596,8 +615,9 @@ upll_rc_t VtnFlowFilterEntryMoMgr::UpdateFlowListInCtrl(
       DELETE_IF_NOT_NULL(vtn_okey);
       return UPLL_RC_ERR_GENERIC;
     }
-    UPLL_LOG_TRACE("flowlist name %s length %zu", flowfilter_val->flowlist_name,
-                    strlen((const char *)flowfilter_val->flowlist_name));
+    UPLL_LOG_TRACE("flowlist name %s length %zu",
+                   flowfilter_val->flowlist_name,
+                   strlen((const char *)flowfilter_val->flowlist_name));
     if (UNC_OP_CREATE == op || UNC_OP_DELETE == op) {
       result_code = flowlist_mgr->AddFlowListToController(
           reinterpret_cast<char *>(flowfilter_val->flowlist_name), dmi,
@@ -629,7 +649,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::UpdateFlowListInCtrl(
           <val_vtn_flowfilter_entry_t *>(GetVal(tempckv));
       if (UNC_VF_VALID == vtn_ffe_val->valid[UPLL_IDX_FLOWLIST_NAME_VFFE] &&
           UNC_VF_VALID  == temp_ffe_val->
-              valid[UPLL_IDX_FLOWLIST_NAME_VFFE]) {
+          valid[UPLL_IDX_FLOWLIST_NAME_VFFE]) {
         result_code = flowlist_mgr->AddFlowListToController(
             reinterpret_cast<char *>(temp_ffe_val->flowlist_name), dmi,
             reinterpret_cast<char *> (ctrlr_id), dt_type, UNC_OP_DELETE);
@@ -649,8 +669,9 @@ upll_rc_t VtnFlowFilterEntryMoMgr::UpdateFlowListInCtrl(
       } else if (UNC_VF_VALID == vtn_ffe_val->
                  valid[UPLL_IDX_FLOWLIST_NAME_VFFE] &&
                  (UNC_VF_INVALID == temp_ffe_val->
-              valid[UPLL_IDX_FLOWLIST_NAME_VFFE] || UNC_VF_VALID_NO_VALUE ==
-              temp_ffe_val->valid[UPLL_IDX_FLOWLIST_NAME_VFFE])) {
+                  valid[UPLL_IDX_FLOWLIST_NAME_VFFE] ||
+                  UNC_VF_VALID_NO_VALUE ==
+                  temp_ffe_val->valid[UPLL_IDX_FLOWLIST_NAME_VFFE])) {
         result_code = flowlist_mgr->AddFlowListToController(
             reinterpret_cast<char *>(vtn_ffe_val->flowlist_name), dmi,
             reinterpret_cast<char *> (ctrlr_id), dt_type, UNC_OP_CREATE);
@@ -662,7 +683,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::UpdateFlowListInCtrl(
       } else if (UNC_VF_VALID_NO_VALUE == vtn_ffe_val->
                  valid[UPLL_IDX_FLOWLIST_NAME_VFFE] &&
                  UNC_VF_VALID == temp_ffe_val->
-              valid[UPLL_IDX_FLOWLIST_NAME_VFFE]) {
+                 valid[UPLL_IDX_FLOWLIST_NAME_VFFE]) {
         result_code = flowlist_mgr->AddFlowListToController(
             reinterpret_cast<char *>(temp_ffe_val->flowlist_name), dmi,
             reinterpret_cast<char *> (ctrlr_id), dt_type, UNC_OP_DELETE);
@@ -687,19 +708,19 @@ upll_rc_t VtnFlowFilterEntryMoMgr::DeleteMo(IpcReqRespHeader *req,
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
 
   if (NULL == ikey || NULL == req) {
-  UPLL_LOG_DEBUG("Delete Operation failed:Bad request");
-  return result_code;
+    UPLL_LOG_DEBUG("Delete Operation failed:Bad request");
+    return result_code;
   }
   result_code = ValidateMessage(req, ikey);
   if (result_code != UPLL_RC_SUCCESS)
-     return result_code;
+    return result_code;
 
 #if 0
   result_code = ValidateCapability(req, ikey);
 
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("ValidateCapability failed resultcode=%d",
-                      result_code);
+                   result_code);
     return result_code;
   }
 #endif
@@ -709,8 +730,8 @@ upll_rc_t VtnFlowFilterEntryMoMgr::DeleteMo(IpcReqRespHeader *req,
     UPLL_LOG_DEBUG("Delete Operation Failed: No Record found in DB");
     return result_code;
   }
-  // Read the DB get the flowlist value and send the delete request to
-  // flowlist momgr if flowlist is configured.
+  //  Read the DB get the flowlist value and send the delete request to
+  //  flowlist momgr if flowlist is configured.
 
   ConfigKeyVal *okey = NULL;
   result_code = GetChildConfigKey(okey, ikey);
@@ -726,9 +747,12 @@ upll_rc_t VtnFlowFilterEntryMoMgr::DeleteMo(IpcReqRespHeader *req,
     return result_code;
   }
   val_vtn_flowfilter_entry_t *vtn_ffe_val = reinterpret_cast
-          <val_vtn_flowfilter_entry_t *>(GetVal(okey));
+      <val_vtn_flowfilter_entry_t *>(GetVal(okey));
   if (UNC_VF_VALID == vtn_ffe_val->valid[UPLL_IDX_FLOWLIST_NAME_VFFE]) {
-    result_code = UpdateFlowListInCtrl(okey, req->datatype, UNC_OP_DELETE, dmi);
+    result_code = UpdateFlowListInCtrl(okey,
+                                       req->datatype,
+                                       UNC_OP_DELETE,
+                                       dmi);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Unable to update flowlist in ctrlr table");
       DELETE_IF_NOT_NULL(okey);
@@ -741,27 +765,27 @@ upll_rc_t VtnFlowFilterEntryMoMgr::DeleteMo(IpcReqRespHeader *req,
     UPLL_LOG_DEBUG("Delete Operation Failed DB Error (%d)", result_code);
     return result_code;
   }
-/*
-  delete okey;
-  okey = NULL;
-
-  DbSubOp dbop = {kOpNotRead, kOpMatchNone, kOpInOutNone};
-  result_code = UpdateConfigDB(ikey, UPLL_DT_CANDIDATE, UNC_OP_DELETE, dmi,
-                                &dbop, MAINTBL);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Delete Operation Failed: err code (%d)", result_code);
-    return result_code;
-  }
-  result_code = UpdateConfigDB(ikey, UPLL_DT_CANDIDATE, UNC_OP_DELETE, dmi,
-                               &dbop, CTRLRTBL);
-  if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-    UPLL_LOG_DEBUG("Delete : No matching record in ctrlrtbl:DB Error");
-    return UPLL_RC_SUCCESS;
-  }else if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Delete Operation Failed in ctrlrtbl:DB Error");
-    return result_code;
-  }
-  */
+  /*
+     delete okey;
+     okey = NULL;
+
+     DbSubOp dbop = {kOpNotRead, kOpMatchNone, kOpInOutNone};
+     result_code = UpdateConfigDB(ikey, UPLL_DT_CANDIDATE, UNC_OP_DELETE, dmi,
+     &dbop, MAINTBL);
+     if (result_code != UPLL_RC_SUCCESS) {
+     UPLL_LOG_DEBUG("Delete Operation Failed: err code (%d)", result_code);
+     return result_code;
+     }
+     result_code = UpdateConfigDB(ikey, UPLL_DT_CANDIDATE, UNC_OP_DELETE, dmi,
+     &dbop, CTRLRTBL);
+     if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+     UPLL_LOG_DEBUG("Delete : No matching record in ctrlrtbl:DB Error");
+     return UPLL_RC_SUCCESS;
+     }else if (result_code != UPLL_RC_SUCCESS) {
+     UPLL_LOG_DEBUG("Delete Operation Failed in ctrlrtbl:DB Error");
+     return result_code;
+     }
+     */
   return  UPLL_RC_SUCCESS;
 }
 
@@ -795,31 +819,13 @@ upll_rc_t VtnFlowFilterEntryMoMgr::UpdateMo(IpcReqRespHeader *req,
     return result_code;
   }
 
-  /*
-     result_code = ValidateCapability(req, ikey);
-     if (UPLL_RC_SUCCESS != result_code) {
-     UPLL_LOG_DEBUG("Validation of Message failed in UpdateMo");
-     return result_code;
-     }
-     */
-  result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_READ, dmi, MAINTBL);
-
-  if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-    UPLL_LOG_DEBUG("UpdateMo  record not available (%d)",
-                   result_code);
-    return result_code;
-  } else if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
-    UPLL_LOG_DEBUG("UpdateMo  record available");
-  } else if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("UpdateMo  error accessing DB (%d)",
-                   result_code);
-    return result_code;
-  }
-
   val_vtn_flowfilter_entry_t *vtn_ffe_val = reinterpret_cast
       <val_vtn_flowfilter_entry_t *>(GetVal(ikey));
   std::list<controller_domain_t> list_ctrlr_dom;
-  vtn_ctrlr_span_rt_code = GetVtnControllerSpan(ikey, req->datatype, dmi, list_ctrlr_dom);
+  vtn_ctrlr_span_rt_code = GetVtnControllerSpan(ikey,
+                                                req->datatype,
+                                                dmi,
+                                                list_ctrlr_dom);
   if ((vtn_ctrlr_span_rt_code != UPLL_RC_SUCCESS) &&
       (vtn_ctrlr_span_rt_code != UPLL_RC_ERR_NO_SUCH_INSTANCE)) {
     UPLL_LOG_DEBUG(" GetVtnControllerSpan  error code (%d)",
@@ -843,7 +849,8 @@ upll_rc_t VtnFlowFilterEntryMoMgr::UpdateMo(IpcReqRespHeader *req,
                    vtn_ctrlr_span_rt_code);
     return vtn_ctrlr_span_rt_code;
   }
-  /* TODO Is Reference and GetChildConfigKey APis of NWM are declared as private
+  /* TODO(upll) : Is Reference and GetChildConfigKey APis of NWM are
+   * declared as private
    *   Commented the below code to avoid compilation error of access violation
    *   nwm_momgr.cc code must be corrected */
 #if 0
@@ -853,12 +860,12 @@ upll_rc_t VtnFlowFilterEntryMoMgr::UpdateMo(IpcReqRespHeader *req,
     return result_code;
   }
 #endif
-  // result_code = ValidateAttribute(ikey);
+  //  result_code = ValidateAttribute(ikey);
 
-  // if (UPLL_RC_SUCCESS != result_code) return result_code;
+  //  if (UPLL_RC_SUCCESS != result_code) return result_code;
 
-  // Check and update the flowlist reference count if the flowlist object
-  // is referred
+  //  Check and update the flowlist reference count if the flowlist object
+  //  is referred
 
   result_code = DupConfigKeyVal(ctrl_key, ikey, MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
@@ -868,27 +875,34 @@ upll_rc_t VtnFlowFilterEntryMoMgr::UpdateMo(IpcReqRespHeader *req,
       free(it->ctrlr);
       free(it->domain);
     }
+    DELETE_IF_NOT_NULL(ctrl_key);
     return result_code;
   }
   if (UNC_VF_VALID == vtn_ffe_val->valid[UPLL_IDX_FLOWLIST_NAME_VFFE] ||
-        UNC_VF_VALID_NO_VALUE == vtn_ffe_val->valid[UPLL_IDX_FLOWLIST_NAME_VFFE] ) {
-      result_code = UpdateFlowListInCtrl(ikey, req->datatype, UNC_OP_UPDATE, dmi);
+      UNC_VF_VALID_NO_VALUE ==
+      vtn_ffe_val->valid[UPLL_IDX_FLOWLIST_NAME_VFFE] ) {
+    result_code = UpdateFlowListInCtrl(ikey,
+                                       req->datatype,
+                                       UNC_OP_UPDATE,
+                                       dmi);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Unable to update flowlist in ctrlr table");
       if (vtn_ctrlr_span_rt_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-        for (std::list<controller_domain_t>::iterator it= list_ctrlr_dom.begin();
-         it != list_ctrlr_dom.end(); ++it) {
+        for (std::list<controller_domain_t>::iterator it =
+             list_ctrlr_dom.begin();
+             it != list_ctrlr_dom.end(); ++it) {
           free(it->ctrlr);
           free(it->domain);
         }
       }
+      DELETE_IF_NOT_NULL(ctrl_key);
       return result_code;
     }
   }
   DbSubOp dbop1 = {kOpNotRead, kOpMatchNone, kOpInOutFlag};
   uint8_t temp_flag = 0;
   GET_USER_DATA_FLAGS(ikey, temp_flag);
-  UPLL_LOG_DEBUG("GET_USER_DATA_FLAGS in Update %d", temp_flag); 
+  UPLL_LOG_DEBUG("GET_USER_DATA_FLAGS in Update %d", temp_flag);
   result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_UPDATE, dmi,
                                &dbop1, MAINTBL);
 
@@ -896,14 +910,15 @@ upll_rc_t VtnFlowFilterEntryMoMgr::UpdateMo(IpcReqRespHeader *req,
     UPLL_LOG_DEBUG("UpdateMo:Failed UpdateConfigDB ");
     if (vtn_ctrlr_span_rt_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
       for (std::list<controller_domain_t>::iterator it= list_ctrlr_dom.begin();
-         it != list_ctrlr_dom.end(); ++it) {
+           it != list_ctrlr_dom.end(); ++it) {
         free(it->ctrlr);
         free(it->domain);
       }
     }
+    DELETE_IF_NOT_NULL(ctrl_key);
     return result_code;
   }
-  // Update a record in CANDIDATE DB for controller Table
+  //  Update a record in CANDIDATE DB for controller Table
   if (vtn_ctrlr_span_rt_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
     result_code = UpdateControllerTable(ctrl_key, UNC_OP_UPDATE,
                                         req->datatype, dmi,
@@ -933,18 +948,16 @@ upll_rc_t VtnFlowFilterEntryMoMgr::UpdateMo(IpcReqRespHeader *req,
   return result_code;
 }
 
-upll_rc_t VtnFlowFilterEntryMoMgr::MergeImportToCandidate(unc_key_type_t keytype,
-                                            const char *ctrlr_name,
-                                            DalDmlIntf *dmi) {
+upll_rc_t VtnFlowFilterEntryMoMgr::MergeImportToCandidate(
+    unc_key_type_t keytype,
+    const char *ctrlr_name,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
-
   ConfigKeyVal *ckval = NULL;
-  ConfigKeyVal *ckey = NULL;
-
-  controller_domain ctrlr_dom;
-  ctrlr_dom.ctrlr = NULL;
-  ctrlr_dom.domain = NULL;
+  ConfigKeyVal *ffe_imkey = NULL, *ffe_cdkey = NULL;
+  ConfigVal *ctrlcv = NULL;
+  ConfigKeyVal  *ckv_import = NULL, *ckv_cand = NULL;
   uint8_t flag = 0;
 
   if (NULL == ctrlr_name) {
@@ -952,124 +965,505 @@ upll_rc_t VtnFlowFilterEntryMoMgr::MergeImportToCandidate(unc_key_type_t keytype
     return UPLL_RC_ERR_GENERIC;
   }
 
-  result_code = GetChildConfigKey(ckval, NULL);
+  VtnMoMgr *vtnmgr =
+      static_cast<VtnMoMgr *>((const_cast<MoManager *>
+                               (GetMoManager(UNC_KT_VTN))));
+  result_code = vtnmgr->GetChildConfigKey(ckval, NULL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("GetChildConfigKey ckval NULL");
     return result_code;
   }
 
-  if (!ckval) return UPLL_RC_ERR_GENERIC;
-
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutFlag };
-  // Read vtn ff from import main
-  result_code = ReadConfigDB(ckval, UPLL_DT_IMPORT,
-              UNC_OP_READ, dbop, dmi, MAINTBL);
+  /* Read all vtn from VTN main table in import database and check with
+   * Candidate database */
+  result_code = vtnmgr->ReadConfigDB(ckval, UPLL_DT_IMPORT,
+                                     UNC_OP_READ, dbop, dmi, MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
-    DELETE_IF_NOT_NULL(ckval);
     UPLL_LOG_DEBUG("ReadConfigDB ckval NULL (%d)", result_code);
-    if(result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-      UPLL_LOG_DEBUG("ReadConfigDB ckval NULL (%d)", result_code);
-      return result_code;
+    if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+      UPLL_LOG_DEBUG("NO record in vtn tbl (%d)", result_code);
+      result_code = UPLL_RC_SUCCESS;
     }
-    return UPLL_RC_SUCCESS;
+    DELETE_IF_NOT_NULL(ckval);
+    return result_code;
   }
-
-  UPLL_LOG_DEBUG("ReadConfigDB ckval NULL (%d)", result_code);
   ConfigKeyVal *tmp_ckval = ckval;
-  while (NULL != ckval) {
-    // Check the VTN already configured in UNC
-    VtnMoMgr *vtnmgr =
-      static_cast<VtnMoMgr *>((const_cast<MoManager *>
-          (GetMoManager(UNC_KT_VTN))));
-    result_code = vtnmgr->GetChildConfigKey(ckey, NULL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetChildConfigKey error (%d)", result_code);
+  while (ckval != NULL) {
+    /* Get the instance count from vtn ctrl table in candidate.
+     * If refcount is more than 1,
+     *    which means that the imported vtn is already exists in candidate
+     * If refcount is zero or 1,
+     *    which means that the imported vtn is not exists in candidate
+     */
+    uint32_t imp_instance_count, cand_instance_count;
+    /* Get the instance count from vtn ctrl tbl from import db*/
+    result_code = vtnmgr->GetChildConfigKey(ckv_import, ckval);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG("GetChildConfigKey failed %d", result_code);
       DELETE_IF_NOT_NULL(tmp_ckval);
       return result_code;
     }
-    key_vtn_t *vtn_okey = reinterpret_cast<key_vtn_t *>(ckey->get_key());
-    key_vtn_flowfilter_entry *vtn_ikey = reinterpret_cast<key_vtn_flowfilter_entry_t *>(ckval->get_key());
-    uuu::upll_strncpy(vtn_okey->vtn_name, vtn_ikey->flowfilter_key.vtn_key.vtn_name,
-                    kMaxLenVtnName+1);
-    DbSubOp dbop1 = { kOpReadExist, kOpMatchNone, kOpInOutNone };
-    // Check the vtn already exist in vtn tbl
-    result_code = vtnmgr->UpdateConfigDB(ckey, UPLL_DT_RUNNING, UNC_OP_READ, dmi,
-                               &dbop1, MAINTBL);
-    if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code) {
-      UPLL_LOG_DEBUG("vtn already exists");
-      DELETE_IF_NOT_NULL(ckey);
-      ckval = ckval->get_next_cfg_key_val();
-      continue;
-    } else if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
-      DELETE_IF_NOT_NULL(ckey);
+    result_code = vtnmgr->GetInstanceCount(ckv_import,
+                                           NULL,
+                                           UPLL_DT_IMPORT,
+                                           &imp_instance_count,
+                                           dmi,
+                                           CTRLRTBL);
+    DELETE_IF_NOT_NULL(ckv_import);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG("GetInstanceCount failed %d", result_code);
       DELETE_IF_NOT_NULL(tmp_ckval);
       return result_code;
     }
 
-    // If not same vtn, then merge the vtn ff to candidate tbl
-    result_code = UpdateConfigDB(ckval, UPLL_DT_CANDIDATE, UNC_OP_CREATE,
-                               dmi, MAINTBL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("create in CandidateDB failed: err code(%d) ",
-                   result_code);
-      DELETE_IF_NOT_NULL(ckey);
+    /* Get the instance count from vtn ctrl tbl from candidate db*/
+    result_code = vtnmgr->GetChildConfigKey(ckv_cand, ckval);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG("GetChildConfigKey failed %d", result_code);
+      DELETE_IF_NOT_NULL(tmp_ckval);
+      return result_code;
+    }
+    result_code = vtnmgr->GetInstanceCount(ckv_cand,
+                                           NULL,
+                                           UPLL_DT_CANDIDATE,
+                                           &cand_instance_count,
+                                           dmi,
+                                           CTRLRTBL);
+    DELETE_IF_NOT_NULL(ckv_cand);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG("GetInstanceCount failed %d", result_code);
       DELETE_IF_NOT_NULL(tmp_ckval);
       return result_code;
     }
+    UPLL_LOG_TRACE("Import count (%d) Candidate count (%d)",
+                   imp_instance_count, cand_instance_count);
+    if (imp_instance_count == cand_instance_count) {
+      /* If imported ctrlr's VTN not exists in Candidate, then check the
+         existence of imported ctrlr's VTN flow-filter entry
+         1)If the imported ctrlr VTN does not have flow-filter entry, then
+         continue with the next VTN in imported db
+         2)If the imported ctrlr VTN has flow-filter entry, then create this
+         flow-filter entry into candidate db
+         */
+      UPLL_LOG_DEBUG("VTN not exists in candidate(%d)", result_code);
+
+      //  Get the imported ctrl VTN's flow-filter entry from Import database
+      key_vtn_t *vtn_ikey = reinterpret_cast<key_vtn_t *>(ckval->get_key());
+      key_vtn_flowfilter_entry_t *vtn_ffe_imkey = reinterpret_cast
+          <key_vtn_flowfilter_entry_t*>(ConfigKeyVal::Malloc
+                                        (sizeof(key_vtn_flowfilter_entry_t)));
+      uuu::upll_strncpy(vtn_ffe_imkey->flowfilter_key.vtn_key.vtn_name,
+                        vtn_ikey->vtn_name, kMaxLenVtnName+1);
+      vtn_ffe_imkey->flowfilter_key.input_direction = 0xFE;
+      ffe_imkey = new ConfigKeyVal(UNC_KT_VTN_FLOWFILTER_ENTRY,
+                                   IpctSt::kIpcStKeyVtnFlowfilterEntry,
+                                   vtn_ffe_imkey, NULL);
+
+      upll_rc_t result_import = ReadConfigDB(ffe_imkey, UPLL_DT_IMPORT,
+                                             UNC_OP_READ, dbop, dmi, MAINTBL);
+      if (result_import != UPLL_RC_SUCCESS &&
+          result_import != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+        DELETE_IF_NOT_NULL(ffe_imkey);
+        DELETE_IF_NOT_NULL(tmp_ckval);
+        return result_code;
+      }
+
+      if (result_import == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+        /* If the imported ctrlr VTN does not have flow-filter entry,
+         * then continue
+         * with the next VTN in imported db */
+        UPLL_LOG_DEBUG("FF_Entry not exists in import(%d)", result_code);
+        DELETE_IF_NOT_NULL(ffe_imkey);
+        ckval = ckval->get_next_cfg_key_val();
+        continue;
+      } else if (result_import == UPLL_RC_SUCCESS) {
+        /* If imported ctrlr VTN has flow-filter entry, then create this
+         * flow-filter entry into candidate db */
+
+        /* Get the list of this VTN associated ctrlr and domain */
+        std::list<controller_domain_t> list_ctrlr_dom;
+        upll_rc_t vtn_ctrlr_span_rt_code = GetVtnControllerSpan(
+            ffe_imkey,
+            UPLL_DT_IMPORT,
+            dmi,
+            list_ctrlr_dom);
+        if (vtn_ctrlr_span_rt_code != UPLL_RC_SUCCESS) {
+          DELETE_IF_NOT_NULL(ffe_imkey);
+          if (vtn_ctrlr_span_rt_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+            UPLL_LOG_DEBUG("GetVtnControllerSpan  error code (%d)",
+                           vtn_ctrlr_span_rt_code);
+            DELETE_IF_NOT_NULL(tmp_ckval);
+            return result_code;
+          }
+          /* If ctrl and domain name not exist in VTN ctrl tbl, then
+             continue with the next VTN in import db */
+          ckval = ckval->get_next_cfg_key_val();
+          continue;
+        }
+
+        ConfigKeyVal *tmp_ffe_imkey = ffe_imkey;
+        while (ffe_imkey != NULL) {
+          /* Create the record in flow-filter entry main tbl */
+          result_code = UpdateConfigDB(ffe_imkey, UPLL_DT_CANDIDATE,
+                                       UNC_OP_CREATE, dmi, MAINTBL);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("create in CandidateDB failed (%d) ", result_code);
+            DELETE_IF_NOT_NULL(tmp_ffe_imkey);
+            DELETE_IF_NOT_NULL(tmp_ckval);
+            return result_code;
+          }
+
+          std::list<controller_domain_t>::iterator it= list_ctrlr_dom.begin();
+          while (it != list_ctrlr_dom.end()) {
+            /* Create the record in flow-filter entry ctrlr table with ctrlr
+             * and domain */
+            ConfigKeyVal *ctrlckv = NULL;
+            GET_USER_DATA_FLAGS(ffe_imkey, flag);
+            UPLL_LOG_DEBUG("flag (%d)", flag);
+
+            key_vtn_flowfilter_entry_t *vtn_ffe_key =
+                reinterpret_cast<key_vtn_flowfilter_entry_t*>
+                (ConfigKeyVal::Malloc(sizeof(key_vtn_flowfilter_entry_t)));
+            memcpy(vtn_ffe_key, reinterpret_cast<key_vtn_flowfilter_entry_t*>
+                   (ffe_imkey->get_key()), sizeof(key_vtn_flowfilter_entry_t));
+
+            val_vtn_flowfilter_entry_t *vtn_ffe_val = reinterpret_cast
+                <val_vtn_flowfilter_entry_t *>(GetVal(ffe_imkey));
+
+            val_vtn_flowfilter_entry_ctrlr_t *ctrlr_val = reinterpret_cast
+                <val_vtn_flowfilter_entry_ctrlr_t *>(
+                    ConfigKeyVal::Malloc(sizeof
+                                         (val_vtn_flowfilter_entry_ctrlr_t)));
+            /* Get the VALID from main table record and update into ctrl tbl*/
+            for (unsigned int loop = 0;
+                 loop < (sizeof(ctrlr_val->valid)/sizeof(ctrlr_val->valid[0]));
+                 loop++) {
+              if (UNC_VF_NOT_SUPPORTED == vtn_ffe_val->valid[loop]) {
+                ctrlr_val->valid[loop] = UNC_VF_INVALID;
+              } else {
+                ctrlr_val->valid[loop] = vtn_ffe_val->valid[loop];
+              }
+            }
+
+            ctrlcv = new ConfigVal(IpctSt::kIpcInvalidStNum, ctrlr_val);
+            ctrlckv = new ConfigKeyVal(UNC_KT_VTN_FLOWFILTER_ENTRY,
+                                       IpctSt::kIpcStKeyVtnFlowfilterEntry,
+                                       vtn_ffe_key, ctrlcv);
+
+            SET_USER_DATA_CTRLR_DOMAIN(ctrlckv, *it);
+            SET_USER_DATA_FLAGS(ctrlckv, flag);
+            UPLL_LOG_DEBUG("flag (%d)", flag);
+
+            //  Create a record in ctrlr tbl in candidate db
+            result_code = UpdateConfigDB(ctrlckv, UPLL_DT_CANDIDATE,
+                                         UNC_OP_CREATE, dmi, CTRLRTBL);
+            if (result_code != UPLL_RC_SUCCESS) {
+              UPLL_LOG_DEBUG("Err during inser the record in ctrlr table (%d)",
+                             result_code);
+              DELETE_IF_NOT_NULL(ctrlckv);
+              DELETE_IF_NOT_NULL(tmp_ffe_imkey);
+              DELETE_IF_NOT_NULL(tmp_ckval);
+              return result_code;
+            }
+            DELETE_IF_NOT_NULL(ctrlckv);
+            ++it;
+          }
+          ffe_imkey = ffe_imkey->get_next_cfg_key_val();
+        }
+        DELETE_IF_NOT_NULL(ffe_imkey);
+        FREE_LIST_CTRLR(list_ctrlr_dom);
+      }
+    } else if (imp_instance_count < cand_instance_count) {
+      /* If vtn exists in both db, then check the flow-filter entry existence
+         from import and candidate database */
+      UPLL_LOG_DEBUG("VTN exists in candidate(%d)", result_code);
+
+      FlowListMoMgr *flowlist_mgr = reinterpret_cast<FlowListMoMgr *>
+          (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
+      if (NULL == flowlist_mgr) {
+        UPLL_LOG_DEBUG("flowlist_mgr is NULL");
+        DELETE_IF_NOT_NULL(tmp_ckval);
+        return UPLL_RC_ERR_GENERIC;
+      }
+
+      //  Get the flow-filter entries from Import database
+      ffe_imkey = NULL;
+      key_vtn_t *vtn_ikey = reinterpret_cast<key_vtn_t *>(ckval->get_key());
+      key_vtn_flowfilter_entry_t *vtn_ffe_imkey = reinterpret_cast
+          <key_vtn_flowfilter_entry_t*>(ConfigKeyVal::Malloc
+                                        (sizeof(key_vtn_flowfilter_entry_t)));
+      uuu::upll_strncpy(vtn_ffe_imkey->flowfilter_key.vtn_key.vtn_name,
+                        vtn_ikey->vtn_name, kMaxLenVtnName+1);
+      vtn_ffe_imkey->flowfilter_key.input_direction = 0xFE;
+      ffe_imkey = new ConfigKeyVal(UNC_KT_VTN_FLOWFILTER_ENTRY,
+                                   IpctSt::kIpcStKeyVtnFlowfilterEntry,
+                                   vtn_ffe_imkey, NULL);
+
+      upll_rc_t result_import = ReadConfigDB(ffe_imkey, UPLL_DT_IMPORT,
+                                             UNC_OP_READ, dbop, dmi, MAINTBL);
+      if (result_import != UPLL_RC_SUCCESS &&
+          result_import != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+        DELETE_IF_NOT_NULL(ffe_imkey);
+        DELETE_IF_NOT_NULL(tmp_ckval);
+        return result_code;
+      }
+
+      /* Get the flow-filter entry from candidate database */
+      ffe_cdkey = NULL;
+      key_vtn_flowfilter_entry_t *vtn_ffe_cdkey = reinterpret_cast
+          <key_vtn_flowfilter_entry_t*>(ConfigKeyVal::Malloc
+                                        (sizeof(key_vtn_flowfilter_entry_t)));
+      uuu::upll_strncpy(vtn_ffe_cdkey->flowfilter_key.vtn_key.vtn_name,
+                        vtn_ikey->vtn_name, kMaxLenVtnName+1);
+      vtn_ffe_cdkey->flowfilter_key.input_direction = 0xFE;
+      ffe_cdkey = new ConfigKeyVal(UNC_KT_VTN_FLOWFILTER_ENTRY,
+                                   IpctSt::kIpcStKeyVtnFlowfilterEntry,
+                                   vtn_ffe_cdkey, NULL);
+
+      upll_rc_t result_cand = ReadConfigDB(ffe_cdkey, UPLL_DT_CANDIDATE,
+                                           UNC_OP_READ, dbop, dmi, MAINTBL);
+      if (result_cand != UPLL_RC_SUCCESS &&
+          result_cand != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+        DELETE_IF_NOT_NULL(ffe_imkey);
+        DELETE_IF_NOT_NULL(ffe_cdkey);
+        DELETE_IF_NOT_NULL(tmp_ckval);
+        return result_code;
+      }
+
+      if ((result_import == UPLL_RC_ERR_NO_SUCH_INSTANCE ||
+           result_import == UPLL_RC_SUCCESS) &&
+          result_cand == UPLL_RC_SUCCESS) {
+        /* If the UNC has flow-filter entries, then ignore the imported ctrlr's
+         * flowfilter entry if exists and apply the unc's flow-filter entries
+         * to imported ctrlr */
+
+        if (result_import == UPLL_RC_SUCCESS) {
+          /* If both VTN's are same,
+           * skip the imported ctrl's flow-filter entry, when UNC
+           * has flow-filter entry.
+           * Then get the flowlist name from incoming key and decremet the
+           * refcount in FLCTRL tbl in UNC candidate ff ctrl tbl. so that the
+           * imported ctrl's flowlist and entries will not be applied into
+           * PFC during Audit */
+          ConfigKeyVal *tmp_ffe_imkey = ffe_imkey;
+          result_code = DecRefCountInFLCtrlTbl(ffe_imkey, dmi);
+          DELETE_IF_NOT_NULL(tmp_ffe_imkey);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("Err in DecRefCountInFLCtrl (%d)", result_code);
+            DELETE_IF_NOT_NULL(ffe_cdkey);
+            DELETE_IF_NOT_NULL(tmp_ckval);
+            return result_code;
+          }
+        }
+
+        /* Get the list of this VTN associated ctrlr and domain */
+        std::list<controller_domain_t> list_ctrlr_dom;
+        upll_rc_t vtn_ctrlr_span_rt_code = GetVtnControllerSpan(
+            ffe_cdkey,
+            UPLL_DT_IMPORT,
+            dmi,
+            list_ctrlr_dom);
+        if (vtn_ctrlr_span_rt_code != UPLL_RC_SUCCESS) {
+          DELETE_IF_NOT_NULL(ffe_cdkey);
+          if (vtn_ctrlr_span_rt_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+            UPLL_LOG_DEBUG("GetVtnControllerSpan  error code (%d)",
+                           vtn_ctrlr_span_rt_code);
+            DELETE_IF_NOT_NULL(tmp_ckval);
+            return result_code;
+          }
+          /* If ctrl and domain name not exist in VTN ctrl tbl, then
+             continue with the next VTN in import db */
+          ckval = ckval->get_next_cfg_key_val();
+          continue;
+        }
+
+        ConfigKeyVal *tmp_ffe_cdkey = ffe_cdkey;
+        while (ffe_cdkey != NULL) {
+          std::list<controller_domain_t>::iterator it= list_ctrlr_dom.begin();
+          while (it != list_ctrlr_dom.end()) {
+            //  Create the entry in ctrlr table with as per the ctrlr and domain
+            ConfigKeyVal *ctrlckv = NULL;
+            GET_USER_DATA_FLAGS(ffe_cdkey, flag);
+            UPLL_LOG_DEBUG("flag (%d)", flag);
+
+            key_vtn_flowfilter_entry_t *vtn_ffe_key =
+                reinterpret_cast<key_vtn_flowfilter_entry_t*>
+                (ConfigKeyVal::Malloc(sizeof(key_vtn_flowfilter_entry_t)));
+            memcpy(vtn_ffe_key, reinterpret_cast<key_vtn_flowfilter_entry_t*>
+                   (ffe_cdkey->get_key()), sizeof(key_vtn_flowfilter_entry_t));
+
+            val_vtn_flowfilter_entry_t *vtn_ffe_val = reinterpret_cast
+                <val_vtn_flowfilter_entry_t *>(GetVal(ffe_cdkey));
+
+            val_vtn_flowfilter_entry_ctrlr_t *ctrlr_val = reinterpret_cast
+                <val_vtn_flowfilter_entry_ctrlr_t *>(
+                    ConfigKeyVal::Malloc(sizeof
+                                         (val_vtn_flowfilter_entry_ctrlr_t)));
+
+            /* Get the VALID from main table record and update into ctrl tbl*/
+            for (unsigned int loop = 0;
+                 loop < (sizeof(ctrlr_val->valid)/sizeof(ctrlr_val->valid[0]));
+                 loop++) {
+              if (UNC_VF_NOT_SUPPORTED == vtn_ffe_val->valid[loop]) {
+                ctrlr_val->valid[loop] = UNC_VF_INVALID;
+              } else {
+                ctrlr_val->valid[loop] = vtn_ffe_val->valid[loop];
+              }
+            }
+
+            ctrlcv = new ConfigVal(IpctSt::kIpcInvalidStNum, ctrlr_val);
+            ctrlckv = new ConfigKeyVal(UNC_KT_VTN_FLOWFILTER_ENTRY,
+                                       IpctSt::kIpcStKeyVtnFlowfilterEntry,
+                                       vtn_ffe_key, ctrlcv);
+
+            SET_USER_DATA_CTRLR_DOMAIN(ctrlckv, *it);
+            SET_USER_DATA_FLAGS(ctrlckv, flag);
+            UPLL_LOG_DEBUG("flag (%d)", flag);
+
+            /* When apply the UNC's flowfilter entry to imported ctrlr,
+             * create the record in flctrl tbl(with the flowlist which get
+             * it from incoming value structure, increment the refcount and
+             * controller name of imported ctrl). So that the flowlist will
+             * be apllied into imported ctrl during Audit. Domain name is not
+             * required in flctrl tbl */
+            result_code = flowlist_mgr->AddFlowListToController(
+                reinterpret_cast<char *>(vtn_ffe_val->flowlist_name), dmi,
+                reinterpret_cast<char *>(it->ctrlr), UPLL_DT_CANDIDATE,
+                UNC_OP_CREATE);
+            if (result_code != UPLL_RC_SUCCESS) {
+              UPLL_LOG_DEBUG("AddFlowListToController failed err code(%d)",
+                             result_code);
+              DELETE_IF_NOT_NULL(tmp_ckval);
+              DELETE_IF_NOT_NULL(tmp_ffe_cdkey);
+              DELETE_IF_NOT_NULL(ctrlckv);
+              FREE_LIST_CTRLR(list_ctrlr_dom);
+              return result_code;
+            }
+
+            //  Create a record in vtn flow-filter entry ctrl tbl
+            result_code = UpdateConfigDB(ctrlckv, UPLL_DT_CANDIDATE,
+                                         UNC_OP_CREATE, dmi, CTRLRTBL);
+            if (result_code != UPLL_RC_SUCCESS) {
+              UPLL_LOG_DEBUG("Err while inserting in ctrlr table(%d)",
+                             result_code);
+              DELETE_IF_NOT_NULL(ctrlckv);
+              DELETE_IF_NOT_NULL(tmp_ffe_cdkey);
+              DELETE_IF_NOT_NULL(tmp_ckval);
+              FREE_LIST_CTRLR(list_ctrlr_dom);
+              return result_code;
+            }
+            DELETE_IF_NOT_NULL(ctrlckv);
+            ++it;
+          }
+          //  IsRecordCreatedInFLCtrlrTbl = false;
+          ffe_cdkey = ffe_cdkey->get_next_cfg_key_val();
+        }
+        FREE_LIST_CTRLR(list_ctrlr_dom);
+        DELETE_IF_NOT_NULL(tmp_ffe_cdkey);
+      } else if (result_import == UPLL_RC_SUCCESS &&
+                 result_cand == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+        /* If candidate does not have flow-filter entry, then skip the imported
+           ctrlr's flow-filter entries */
+
+        /* If both VTN's are same and the candidate not have the flow-filter entry,
+         * skip the imported ctrl's flow-filter entry
+         * Then get the flowlist name from incoming key and decremet the
+         * refcount in FLCTRL tbl. so that the imported ctrl's flowlist and entries will
+         * not be applied into PFC during Audit */
+        ConfigKeyVal *tmp_ffe_imkey = ffe_imkey;
+        result_code = DecRefCountInFLCtrlTbl(ffe_imkey, dmi);
+        DELETE_IF_NOT_NULL(tmp_ffe_imkey);
+        DELETE_IF_NOT_NULL(ffe_cdkey);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("Err in DecRefCountInFLCtrl (%d)", result_code);
+          DELETE_IF_NOT_NULL(tmp_ckval);
+          return result_code;
+        }
+        UPLL_LOG_DEBUG("DecRefCountInFLCtrlTbl success (%d)", result_code);
+      } else if (result_import == UPLL_RC_ERR_NO_SUCH_INSTANCE &&
+                 result_cand == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+        DELETE_IF_NOT_NULL(ffe_imkey);
+        DELETE_IF_NOT_NULL(ffe_cdkey);
+      }
+    }
+    ckval = ckval->get_next_cfg_key_val();
+  }
+  DELETE_IF_NOT_NULL(tmp_ckval);
+  return UPLL_RC_SUCCESS;
+}
+
+upll_rc_t VtnFlowFilterEntryMoMgr::DecRefCountInFLCtrlTbl(
+    ConfigKeyVal *ffe_imkey, DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
+  upll_rc_t result_code = UPLL_RC_SUCCESS;
+  ConfigKeyVal *ckval_dom = NULL;
+  uint8_t *ctrlr_id = NULL;
 
-  result_code = vtnmgr->GetControllerDomainSpan(ckey, UPLL_DT_IMPORT, dmi);
+  VtnMoMgr *vtnmgr =
+      static_cast<VtnMoMgr *>((const_cast<MoManager *>
+                               (GetMoManager(UNC_KT_VTN))));
+
+  FlowListMoMgr *flowlist_mgr = reinterpret_cast<FlowListMoMgr *>
+      (const_cast<MoManager *> (GetMoManager(UNC_KT_FLOWLIST)));
+  if ((NULL == vtnmgr) || (NULL == flowlist_mgr)) {
+    UPLL_LOG_DEBUG("vtnmgr/flowlist_mgr is NULL");
+    return UPLL_RC_ERR_GENERIC;
+  }
+  /* Get the VTN associated ctrl name */
+  result_code = vtnmgr->GetChildConfigKey(ckval_dom, NULL);
+  if (UPLL_RC_SUCCESS != result_code) {
+    UPLL_LOG_DEBUG("GetChildConfigKey ckval_dom NULL");
+    return result_code;
+  }
+
+  key_vtn_t *vtn_okey = reinterpret_cast<key_vtn_t *>
+      (ckval_dom->get_key());
+  key_vtn_flowfilter_entry_t *vtn_ikey = reinterpret_cast
+      <key_vtn_flowfilter_entry_t *>(ffe_imkey->get_key());
+  uuu::upll_strncpy(vtn_okey->vtn_name,
+                    vtn_ikey->flowfilter_key.vtn_key.vtn_name,
+                    kMaxLenVtnName+1);
+  DbSubOp dbop2 = {kOpReadSingle, kOpMatchNone, kOpInOutCtrlr};
+  result_code = vtnmgr->ReadConfigDB(ckval_dom, UPLL_DT_IMPORT,
+                                     UNC_OP_READ, dbop2, dmi, CTRLRTBL);
   if (result_code != UPLL_RC_SUCCESS) {
-    if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-      UPLL_LOG_DEBUG("GetControllerSpan  no instance/error (%d)", result_code);
-      DELETE_IF_NOT_NULL(ckey);
-      continue;
-    } 
-  }
-  ConfigKeyVal *tmp_ckey = ckey;
-  while (ckey != NULL) {
-    ConfigKeyVal *ctrlckv = NULL;
-    GET_USER_DATA_CTRLR_DOMAIN(ckey, ctrlr_dom);
-    GET_USER_DATA_FLAGS(ckval, flag);
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom.ctrlr,
-                    ctrlr_dom.domain);
-    
-    UPLL_LOG_DEBUG("flag (%d)", flag);
-
-    GetChildConfigKey(ctrlckv, ckval);
-    SET_USER_DATA_CTRLR_DOMAIN(ctrlckv, ctrlr_dom);
-    SET_USER_DATA_FLAGS(ctrlckv, flag);
-
-    UPLL_LOG_DEBUG("flag (%d)", flag);
-
-    // Create/Update/Delete a record in CANDIDATE DB
-    result_code = UpdateConfigDB(ctrlckv, UPLL_DT_CANDIDATE, UNC_OP_CREATE, dmi, CTRLRTBL);
+    UPLL_LOG_DEBUG("VTN ctrltbl read failure (%d)", result_code);
+    DELETE_IF_NOT_NULL(ckval_dom);
+    return result_code;
+  }
+
+  GET_USER_DATA_CTRLR(ckval_dom, ctrlr_id);
+  while (ffe_imkey != NULL) {
+    UPLL_LOG_DEBUG("flow-filter not exists in candidate");
+
+    val_vtn_flowfilter_entry_t *vtn_ffe_val = reinterpret_cast
+        <val_vtn_flowfilter_entry_t *>(GetVal(ffe_imkey));
+
+    result_code = flowlist_mgr->AddFlowListToController(
+        reinterpret_cast<char *>(vtn_ffe_val->flowlist_name), dmi,
+        reinterpret_cast<char *>(ctrlr_id), UPLL_DT_CANDIDATE, UNC_OP_DELETE);
     if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Err while inserting in ctrlr table for candidateDb(%d)",
+      UPLL_LOG_DEBUG("AddFlowListToController failed err code(%d)",
                      result_code);
-      DELETE_IF_NOT_NULL(tmp_ckey);
-      DELETE_IF_NOT_NULL(tmp_ckval);
-      DELETE_IF_NOT_NULL(ctrlckv);
+      DELETE_IF_NOT_NULL(ckval_dom);
       return result_code;
     }
-    DELETE_IF_NOT_NULL(ctrlckv);    
-    ckey = ckey->get_next_cfg_key_val();
+    ffe_imkey = ffe_imkey->get_next_cfg_key_val();
   }
-  DELETE_IF_NOT_NULL(tmp_ckey);
-  ckval = ckval->get_next_cfg_key_val();
-}
-  DELETE_IF_NOT_NULL(tmp_ckval);
+  DELETE_IF_NOT_NULL(ckval_dom);
   return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t VtnFlowFilterEntryMoMgr::MergeValidate(unc_key_type_t keytype,
-    const char *ctrlr_id,
-    ConfigKeyVal *ikey,
-    DalDmlIntf *dmi) {
+                                                 const char *ctrlr_id,
+                                                 ConfigKeyVal *ikey,
+                                                 DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   MoMgrImpl *mgr =
-    reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-            UNC_KT_VTN_FLOWFILTER)));
+      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                  UNC_KT_VTN_FLOWFILTER)));
   if (!mgr) {
     UPLL_LOG_DEBUG("Invalid mgr param");
     return UPLL_RC_ERR_GENERIC;
@@ -1081,14 +1475,16 @@ upll_rc_t VtnFlowFilterEntryMoMgr::MergeValidate(unc_key_type_t keytype,
 }
 
 upll_rc_t VtnFlowFilterEntryMoMgr::RenameMo(IpcReqRespHeader *req,
-                                            ConfigKeyVal *ikey, DalDmlIntf *dmi,
+                                            ConfigKeyVal *ikey,
+                                            DalDmlIntf *dmi,
                                             const char *ctrlr_id) {
   UPLL_FUNC_TRACE;
   return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT;
 }
 
-upll_rc_t VtnFlowFilterEntryMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
-                                                     ConfigKeyVal *parent_key) {
+upll_rc_t VtnFlowFilterEntryMoMgr::GetChildConfigKey(
+    ConfigKeyVal *&okey,
+    ConfigKeyVal *parent_key) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   key_vtn_flowfilter_entry_t *vtn_ffe_key;
@@ -1096,7 +1492,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
   if (parent_key == NULL) {
     vtn_ffe_key = reinterpret_cast <key_vtn_flowfilter_entry_t*>
         (ConfigKeyVal::Malloc(sizeof(key_vtn_flowfilter_entry_t)));
-    // If no direction is specified , 0xFE is filled to bind output direction
+    //  If no direction is specified , 0xFE is filled to bind output direction
     vtn_ffe_key->flowfilter_key.input_direction = 0xFE;
     okey = new ConfigKeyVal(UNC_KT_VTN_FLOWFILTER_ENTRY,
                             IpctSt::kIpcStKeyVtnFlowfilterEntry,
@@ -1120,7 +1516,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
   } else {
     vtn_ffe_key = reinterpret_cast<key_vtn_flowfilter_entry_t *>
         (ConfigKeyVal::Malloc(sizeof(key_vtn_flowfilter_entry_t)));
-    // If no direction is specified , 0xFE is filled to bind output direction
+    //  If no direction is specified , 0xFE is filled to bind output direction
     vtn_ffe_key->flowfilter_key.input_direction = 0xFE;
   }
   switch (parent_key->get_key_type()) {
@@ -1161,7 +1557,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
       if (vtn_ffe_key) free(vtn_ffe_key);
       return UPLL_RC_ERR_GENERIC;
   }
-  
+
   if ((okey) && !(okey->get_key())) {
     UPLL_LOG_DEBUG("okey not null and flow list name updated");
     okey->SetKey(IpctSt::kIpcStKeyVtnFlowfilterEntry, vtn_ffe_key);
@@ -1184,12 +1580,12 @@ upll_rc_t VtnFlowFilterEntryMoMgr::GetRenamedControllerKey(
   upll_rc_t result_code;
 
   UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-      ctrlr_dom->domain);
+                 ctrlr_dom->domain);
   UPLL_LOG_TRACE("Start Input ConfigKeyVal %s", ikey->ToStrAll().c_str());
 
   if (UNC_KT_VTN_FLOWFILTER_CONTROLLER == ikey->get_key_type()) {
-    UPLL_LOG_DEBUG("vtn_pm_ctrl vtn name renamed");
-    MoMgrImpl *vtn_mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
+    MoMgrImpl *vtn_mgr = reinterpret_cast<MoMgrImpl *>(
+        const_cast<MoManager *>
         (GetMoManager(UNC_KT_VTN)));
     if (NULL == vtn_mgr) {
       UPLL_LOG_DEBUG("mgr NULL");
@@ -1201,10 +1597,9 @@ upll_rc_t VtnFlowFilterEntryMoMgr::GetRenamedControllerKey(
       UPLL_LOG_DEBUG("GetChildConfigKey fail (%d)", result_code);
       return result_code;
     }
-    if (!okey) return UPLL_RC_ERR_GENERIC;
 
     DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr | kOpMatchDomain,
-                     kOpInOutFlag };
+      kOpInOutFlag };
 
     if (ctrlr_dom) {
       SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
@@ -1215,20 +1610,20 @@ upll_rc_t VtnFlowFilterEntryMoMgr::GetRenamedControllerKey(
     }
 
     UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
+                   ctrlr_dom->domain);
     uuu::upll_strncpy(
-                      reinterpret_cast<key_vtn *>(okey->get_key())->vtn_name,
-                      reinterpret_cast<key_vtn_flowfilter_controller_t *>
-                      (ikey->get_key())->vtn_key.vtn_name,
-                      (kMaxLenVtnName + 1));
+        reinterpret_cast<key_vtn *>(okey->get_key())->vtn_name,
+        reinterpret_cast<key_vtn_flowfilter_controller_t *>
+        (ikey->get_key())->vtn_key.vtn_name,
+        (kMaxLenVtnName + 1));
 
     UPLL_LOG_DEBUG("vtn name (%s) (%s)",
-                    reinterpret_cast<key_vtn *>(okey->get_key())->vtn_name,
-                    reinterpret_cast<key_vtn_flowfilter_controller_t *>
-                    (ikey->get_key())->vtn_key.vtn_name);
+                   reinterpret_cast<key_vtn *>(okey->get_key())->vtn_name,
+                   reinterpret_cast<key_vtn_flowfilter_controller_t *>
+                   (ikey->get_key())->vtn_key.vtn_name);
 
     result_code = vtn_mgr->ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop, dmi,
-        RENAMETBL);
+                                        RENAMETBL);
     if (UPLL_RC_SUCCESS != result_code &&
         UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
       UPLL_LOG_DEBUG("GetRenamedControllerKey ReadConfigDB error");
@@ -1237,7 +1632,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::GetRenamedControllerKey(
     }
     if (UPLL_RC_SUCCESS == result_code) {
       val_rename_vtn *rename_val =
-        reinterpret_cast<val_rename_vtn *>(GetVal(okey));
+          reinterpret_cast<val_rename_vtn *>(GetVal(okey));
       if (!rename_val) {
         UPLL_LOG_DEBUG("rename_val NULL");
         DELETE_IF_NOT_NULL(okey);
@@ -1251,19 +1646,19 @@ upll_rc_t VtnFlowFilterEntryMoMgr::GetRenamedControllerKey(
           kMaxLenVtnName + 1);
 
       UPLL_LOG_DEBUG("renamed vtn_pm_ctrl  vtn name (%s) (%s)",
-          reinterpret_cast<key_vtn_flowfilter_controller_t*>
-          (ikey->get_key())->vtn_key.vtn_name,
-          rename_val->new_name);
+                     reinterpret_cast<key_vtn_flowfilter_controller_t*>
+                     (ikey->get_key())->vtn_key.vtn_name,
+                     rename_val->new_name);
     }
     DELETE_IF_NOT_NULL(okey);
     vtn_mgr = NULL;
     return UPLL_RC_SUCCESS;
   }
 
-  // Check if VTN is renamed on the controller by getting VTN object
+  //  Check if VTN is renamed on the controller by getting VTN object
   MoMgrImpl *mgr =  static_cast<MoMgrImpl*>
-    ((const_cast<MoManager*>
-      (GetMoManager(UNC_KT_VTN))));
+      ((const_cast<MoManager*>
+        (GetMoManager(UNC_KT_VTN))));
   result_code = mgr->GetChildConfigKey(okey, NULL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("GetRenamedControllerKey:GetChildConfigKey returns error");
@@ -1278,9 +1673,9 @@ upll_rc_t VtnFlowFilterEntryMoMgr::GetRenamedControllerKey(
   SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
 
   UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-      ctrlr_dom->domain);
+                 ctrlr_dom->domain);
 
-  // Copy the input VTN Name into the Okey and send it for rename check IN db
+  //  Copy the input VTN Name into the Okey and send it for rename check IN db
   uuu::upll_strncpy(
       reinterpret_cast<key_vtn *>(okey->get_key())->vtn_name,
       reinterpret_cast<key_vtn_flowfilter_entry_t *>
@@ -1288,22 +1683,25 @@ upll_rc_t VtnFlowFilterEntryMoMgr::GetRenamedControllerKey(
       (kMaxLenVtnName + 1));
 
   UPLL_LOG_DEBUG("vtn name (%s) (%s)",
-      reinterpret_cast<key_vtn *>(okey->get_key())->vtn_name,
-      reinterpret_cast<key_vtn_flowfilter_entry_t *>
-      (ikey->get_key())->flowfilter_key.vtn_key.vtn_name)
+                 reinterpret_cast<key_vtn *>(okey->get_key())->vtn_name,
+                 reinterpret_cast<key_vtn_flowfilter_entry_t *>
+                 (ikey->get_key())->flowfilter_key.vtn_key.vtn_name)
 
-    DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr | kOpMatchDomain, kOpInOutFlag };
+      DbSubOp dbop = { kOpReadSingle,
+        kOpMatchCtrlr | kOpMatchDomain,
+        kOpInOutFlag };
   result_code = mgr->ReadConfigDB(okey,
-      dt_type,
-      UNC_OP_READ, dbop, dmi, RENAMETBL);
-  if (UPLL_RC_SUCCESS != result_code && UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+                                  dt_type,
+                                  UNC_OP_READ, dbop, dmi, RENAMETBL);
+  if (UPLL_RC_SUCCESS != result_code &&
+      UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
     UPLL_LOG_DEBUG("GetRenamedControllerKey:Read Configuration Error");
     DELETE_IF_NOT_NULL(okey);
     return result_code;
   }
   if (UPLL_RC_SUCCESS == result_code) {
     val_rename_vtn *rename_val =reinterpret_cast <val_rename_vtn *>
-      (GetVal(okey));
+        (GetVal(okey));
     if (!rename_val) {
       UPLL_LOG_DEBUG("Rename structure for VTN is not available");
       DELETE_IF_NOT_NULL(okey);
@@ -1318,75 +1716,70 @@ upll_rc_t VtnFlowFilterEntryMoMgr::GetRenamedControllerKey(
   }
   DELETE_IF_NOT_NULL(okey);
   val_vtn_flowfilter_entry_t *val_vtn_flofilter_entry =reinterpret_cast
-    <val_vtn_flowfilter_entry_t *>(GetVal(ikey));
-  if (val_vtn_flofilter_entry) {
-    if (UNC_VF_VALID == val_vtn_flofilter_entry
-        ->valid[UPLL_IDX_FLOWLIST_NAME_VFFE]) {
-      // Flowlist is Renamed
-      MoMgrImpl *mgr_flowlist =  static_cast<MoMgrImpl*>
-        ((const_cast<MoManager*> (GetMoManager(UNC_KT_FLOWLIST))));
-
-      result_code = mgr_flowlist->GetChildConfigKey(okey, NULL);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("GetChildConfigKey fail"); 
-        return result_code;
-      }
+      <val_vtn_flowfilter_entry_t *>(GetVal(ikey));
 
-      if (NULL != ctrlr_dom) {
-        SET_USER_DATA_CTRLR(okey, ctrlr_dom->ctrlr);
-      } else {
-        UPLL_LOG_DEBUG("ctrlr null");
-        DELETE_IF_NOT_NULL(okey);
-        return UPLL_RC_ERR_GENERIC;
-      }
+  if (NULL == val_vtn_flofilter_entry) {
+    return UPLL_RC_SUCCESS;
+  }
+  if (strlen(reinterpret_cast<char *>
+             (val_vtn_flofilter_entry->flowlist_name)) == 0) {
+    return UPLL_RC_SUCCESS;
+  }
+  MoMgrImpl *mgr_flowlist =  static_cast<MoMgrImpl*>
+      ((const_cast<MoManager*> (GetMoManager(UNC_KT_FLOWLIST))));
 
-      UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-          ctrlr_dom->domain);
-      if (!GetVal(ikey))
-        return UPLL_RC_SUCCESS;
-      uuu::upll_strncpy(
-          reinterpret_cast<key_flowlist_t *>
-          (okey->get_key())->flowlist_name,
-          reinterpret_cast<val_vtn_flowfilter_entry_t *> (ikey->get_cfg_val()->
-            get_val())->flowlist_name,
-          (kMaxLenFlowListName + 1));
-      UPLL_LOG_DEBUG("flowlist name (%s) (%s)",
-          reinterpret_cast<key_flowlist_t *>
-          (okey->get_key())->flowlist_name,
-          reinterpret_cast<val_vtn_flowfilter_entry_t *> (ikey->get_cfg_val()->
-            get_val())->flowlist_name);
-      DbSubOp dbop1 = { kOpReadSingle, kOpMatchCtrlr, kOpInOutFlag };
-      result_code = mgr_flowlist->ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop1, dmi,
-          RENAMETBL); /* ctrlr_name */
-      if (UPLL_RC_SUCCESS != result_code && UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
-        UPLL_LOG_DEBUG("GetRenamedControllerKey:Read Configuration Error");
-        DELETE_IF_NOT_NULL(okey);
-        return result_code;
-      }
-      if (UPLL_RC_SUCCESS == result_code) {
-        val_rename_flowlist *rename_val =reinterpret_cast <val_rename_flowlist *>
-          (GetVal(okey));
-        if (!rename_val) {
-          UPLL_LOG_DEBUG("flowlist is not valid");
-          DELETE_IF_NOT_NULL(okey);
-          return UPLL_RC_ERR_GENERIC;
-        }
+  result_code = mgr_flowlist->GetChildConfigKey(okey, NULL);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_DEBUG("GetChildConfigKey fail");
+    return result_code;
+  }
 
-        uuu::upll_strncpy(
-            reinterpret_cast<val_vtn_flowfilter_entry_t*>
-            (ikey->get_cfg_val()->get_val())->flowlist_name,
-            rename_val->flowlist_newname,
-            (kMaxLenFlowListName + 1));
-        //SET_USER_DATA_FLAGS(ikey, rename);
-      }
+  SET_USER_DATA_CTRLR(okey, ctrlr_dom->ctrlr);
+
+  uuu::upll_strncpy(
+      reinterpret_cast<key_flowlist_t *>
+      (okey->get_key())->flowlist_name,
+      reinterpret_cast<val_vtn_flowfilter_entry_t *> (ikey->get_cfg_val()->
+                                                      get_val())->flowlist_name,
+      (kMaxLenFlowListName + 1));
+  UPLL_LOG_DEBUG("flowlist name (%s) (%s)",
+                 reinterpret_cast<key_flowlist_t *>
+                 (okey->get_key())->flowlist_name,
+                 reinterpret_cast<val_vtn_flowfilter_entry_t *>
+                 (ikey->get_cfg_val()->
+                  get_val())->flowlist_name);
+  DbSubOp dbop1 = { kOpReadSingle, kOpMatchCtrlr, kOpInOutFlag };
+  result_code = mgr_flowlist->ReadConfigDB(okey, dt_type, UNC_OP_READ,
+                                           dbop1, dmi, RENAMETBL);
+  /* ctrlr_name */
+  if (UPLL_RC_SUCCESS != result_code &&
+      UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+    UPLL_LOG_DEBUG("GetRenamedControllerKey:Read Configuration Error");
+    DELETE_IF_NOT_NULL(okey);
+    return result_code;
+  }
+  if (UPLL_RC_SUCCESS == result_code) {
+    val_rename_flowlist *rename_val =reinterpret_cast <val_rename_flowlist *>
+        (GetVal(okey));
+    if (!rename_val) {
+      UPLL_LOG_DEBUG("flowlist is not valid");
+      DELETE_IF_NOT_NULL(okey);
+      return UPLL_RC_ERR_GENERIC;
     }
+
+    uuu::upll_strncpy(
+        reinterpret_cast<val_vtn_flowfilter_entry_t*>
+        (ikey->get_cfg_val()->get_val())->flowlist_name,
+        rename_val->flowlist_newname,
+        (kMaxLenFlowListName + 1));
   }
   DELETE_IF_NOT_NULL(okey);
   UPLL_LOG_TRACE("End Input ConfigKeyVal %s",
-      ikey->ToStrAll().c_str());
+                 ikey->ToStrAll().c_str());
   return UPLL_RC_SUCCESS;
 }
 
+
 upll_rc_t VtnFlowFilterEntryMoMgr::GetRenamedUncKey(
     ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type, DalDmlIntf *dmi,
     uint8_t *ctrlr_id) {
@@ -1395,13 +1788,13 @@ upll_rc_t VtnFlowFilterEntryMoMgr::GetRenamedUncKey(
   ConfigKeyVal *unc_key = NULL;
   DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutNone };
   UPLL_LOG_TRACE("%s GetRenamedUncKey vtnffentry start",
-                  ikey->ToStrAll().c_str());
+                 ikey->ToStrAll().c_str());
   if ((ikey == NULL) || (ctrlr_id == NULL) || (dmi == NULL)) {
     UPLL_LOG_DEBUG("ikey/ctrlr_id dmi NULL");
     return UPLL_RC_ERR_GENERIC;
   }
   val_rename_vtn *rename_vtn_key  = reinterpret_cast <val_rename_vtn*>
-                                (ConfigKeyVal::Malloc(sizeof(val_rename_vtn)));
+      (ConfigKeyVal::Malloc(sizeof(val_rename_vtn)));
 
   if (!rename_vtn_key) {
     UPLL_LOG_DEBUG("rename_vtn_key NULL");
@@ -1421,8 +1814,8 @@ upll_rc_t VtnFlowFilterEntryMoMgr::GetRenamedUncKey(
   rename_vtn_key->valid[UPLL_IDX_NEW_NAME_RVTN] = UNC_VF_VALID;
 
   MoMgrImpl *mgr = static_cast<MoMgrImpl*>
-    ((const_cast<MoManager*>
-    (GetMoManager(UNC_KT_VTN))));
+      ((const_cast<MoManager*>
+        (GetMoManager(UNC_KT_VTN))));
   if (!mgr) {
     UPLL_LOG_TRACE("mgr failed");
     if (rename_vtn_key) free(rename_vtn_key);
@@ -1444,7 +1837,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::GetRenamedUncKey(
   SET_USER_DATA_CTRLR(unc_key, ctrlr_id);
   unc_key->AppendCfgVal(IpctSt::kIpcStValRenameVtn, rename_vtn_key);
   result_code = mgr->ReadConfigDB(unc_key, dt_type, UNC_OP_READ, dbop,
-                                            dmi, RENAMETBL);
+                                  dmi, RENAMETBL);
   if ((UPLL_RC_SUCCESS != result_code) &&
       (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
     UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
@@ -1462,7 +1855,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::GetRenamedUncKey(
   mgr = NULL;
   DELETE_IF_NOT_NULL(unc_key);
   val_rename_flowlist *rename_fl =reinterpret_cast<val_rename_flowlist*>
-                 (ConfigKeyVal::Malloc(sizeof(val_rename_flowlist)));
+      (ConfigKeyVal::Malloc(sizeof(val_rename_flowlist)));
   if (!rename_fl) {
     UPLL_LOG_DEBUG("rename_fl NULL");
     return UPLL_RC_ERR_GENERIC;
@@ -1475,7 +1868,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::GetRenamedUncKey(
     return UPLL_RC_SUCCESS;
   }
   if (UNC_VF_VALID != val_vtn_flofilter_entry
-                      ->valid[UPLL_IDX_FLOWLIST_NAME_VFFE]) {
+      ->valid[UPLL_IDX_FLOWLIST_NAME_VFFE]) {
     UPLL_LOG_DEBUG("flowlist invalid");
     free(rename_fl);
     return UPLL_RC_SUCCESS;
@@ -1486,8 +1879,8 @@ upll_rc_t VtnFlowFilterEntryMoMgr::GetRenamedUncKey(
   rename_fl->valid[UPLL_IDX_RENAME_FLOWLIST_RFL] = UNC_VF_VALID;
 
   mgr = static_cast<MoMgrImpl*>
-    ((const_cast<MoManager*>
-      (GetMoManager(UNC_KT_FLOWLIST))));
+      ((const_cast<MoManager*>
+        (GetMoManager(UNC_KT_FLOWLIST))));
   if (!mgr) {
     UPLL_LOG_TRACE("mgr failed");
     if (rename_fl) free(rename_fl);
@@ -1519,14 +1912,14 @@ upll_rc_t VtnFlowFilterEntryMoMgr::GetRenamedUncKey(
   }
 
   if (result_code == UPLL_RC_SUCCESS) {
-  key_flowlist_t *key_flowlist = reinterpret_cast
-  <key_flowlist_t *>(unc_key->get_key());
+    key_flowlist_t *key_flowlist = reinterpret_cast
+        <key_flowlist_t *>(unc_key->get_key());
     uuu::upll_strncpy(val_vtn_flofilter_entry->flowlist_name,
                       key_flowlist->flowlist_name,
                       (kMaxLenFlowListName + 1));
   }
   UPLL_LOG_TRACE("%s GetRenamedUncKey vtnffentry end",
-                  ikey->ToStrAll().c_str());
+                 ikey->ToStrAll().c_str());
   DELETE_IF_NOT_NULL(unc_key);
   mgr = NULL;
   return UPLL_RC_SUCCESS;
@@ -1537,27 +1930,27 @@ upll_rc_t VtnFlowFilterEntryMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
                                                    MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
   if (req == NULL) {
-  UPLL_LOG_DEBUG(" DupConfigKeyVal failed. Input ConfigKeyVal is NULL");
-  return UPLL_RC_ERR_GENERIC;
+    UPLL_LOG_DEBUG(" DupConfigKeyVal failed. Input ConfigKeyVal is NULL");
+    return UPLL_RC_ERR_GENERIC;
   }
   if (okey != NULL) {
-  UPLL_LOG_DEBUG(" DupConfigKeyVal failed. Output ConfigKeyVal is NULL");
-  return UPLL_RC_ERR_GENERIC;
+    UPLL_LOG_DEBUG(" DupConfigKeyVal failed. Output ConfigKeyVal is NULL");
+    return UPLL_RC_ERR_GENERIC;
   }
   if ((req->get_key_type() != UNC_KT_VTN_FLOWFILTER_ENTRY )&&
-        (req->get_key_type() != UNC_KT_VTN_FLOWFILTER_CONTROLLER)) {
-  UPLL_LOG_DEBUG("Invalid keytype");
-  return UPLL_RC_ERR_GENERIC;
+      (req->get_key_type() != UNC_KT_VTN_FLOWFILTER_CONTROLLER)) {
+    UPLL_LOG_DEBUG("Invalid keytype");
+    return UPLL_RC_ERR_GENERIC;
   }
   ConfigVal *tmp1 = NULL, *tmp = (req)->get_cfg_val();
 
   if (tmp) {
     if (tbl == MAINTBL) {
       val_vtn_flowfilter_entry_t *ival = reinterpret_cast
-        <val_vtn_flowfilter_entry_t *>(GetVal(req));
+          <val_vtn_flowfilter_entry_t *>(GetVal(req));
       if (NULL != ival) {
         val_vtn_flowfilter_entry_t *flowfilter_val =reinterpret_cast
-             <val_vtn_flowfilter_entry_t*>
+            <val_vtn_flowfilter_entry_t*>
             (ConfigKeyVal::Malloc(sizeof(val_vtn_flowfilter_entry_t)));
         memcpy(flowfilter_val, ival, sizeof(val_vtn_flowfilter_entry_t));
 
@@ -1567,11 +1960,12 @@ upll_rc_t VtnFlowFilterEntryMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
     }
     if (tbl == CTRLRTBL) {
       val_vtn_flowfilter_entry_ctrlr_t *ival = reinterpret_cast
-        <val_vtn_flowfilter_entry_ctrlr_t *>(GetVal(req));
+          <val_vtn_flowfilter_entry_ctrlr_t *>(GetVal(req));
       if (NULL != ival) {
         val_vtn_flowfilter_entry_ctrlr_t *flowfilter_val =reinterpret_cast
-               <val_vtn_flowfilter_entry_ctrlr_t* >(ConfigKeyVal::Malloc(sizeof
-                                         (val_vtn_flowfilter_entry_ctrlr_t)));
+            <val_vtn_flowfilter_entry_ctrlr_t* >(
+                ConfigKeyVal::Malloc(sizeof
+                                     (val_vtn_flowfilter_entry_ctrlr_t)));
         memcpy(flowfilter_val, ival, sizeof(val_vtn_flowfilter_entry_ctrlr_t));
 
         tmp1 = new ConfigVal(IpctSt::kIpcInvalidStNum,
@@ -1581,7 +1975,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
   }
   if (tmp1) {
     tmp1->set_user_data(tmp->get_user_data());
-    //  tmp = tmp->get_next_cfg_val();// COV UNUSED
+    //   tmp = tmp->get_next_cfg_val();//  COV UNUSED
   }
   void *tkey = (req)->get_key();
   if (!tkey) {
@@ -1589,7 +1983,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
     return UPLL_RC_ERR_GENERIC;
   }
   key_vtn_flowfilter_entry_t *ikey =reinterpret_cast
-           <key_vtn_flowfilter_entry_t *>(tkey);
+      <key_vtn_flowfilter_entry_t *>(tkey);
   key_vtn_flowfilter_entry_t *vtn_flowfilterentrykey =reinterpret_cast
       <key_vtn_flowfilter_entry_t*>
       (ConfigKeyVal::Malloc(sizeof(key_vtn_flowfilter_entry_t(*ikey))));
@@ -1598,7 +1992,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
                           IpctSt::kIpcStKeyVtnFlowfilterEntry,
                           vtn_flowfilterentrykey, tmp1);
   SET_USER_DATA(okey, req);
-  // delete okey;
+  //  delete okey;
   return UPLL_RC_SUCCESS;
 }
 
@@ -1612,7 +2006,9 @@ upll_rc_t VtnFlowFilterEntryMoMgr::TxCopyCandidateToRunning(
     UNC_OP_UPDATE };
   int nop = sizeof(op) / sizeof(op[0]);
   ConfigKeyVal *vtn_ffe_key = NULL, *req = NULL, *nreq = NULL ,
-      *vtn_ffe_run_key = NULL , *vtn_ffe_run_ctrl_key = NULL, *vtn_ck_run= NULL;
+               *vtn_ffe_run_key = NULL ,
+               *vtn_ffe_run_ctrl_key = NULL,
+               *vtn_ck_run= NULL;
   DalCursor *cfg1_cursor = NULL;
   uint8_t *ctrlr_id = NULL;
 
@@ -1620,37 +2016,34 @@ upll_rc_t VtnFlowFilterEntryMoMgr::TxCopyCandidateToRunning(
   CtrlrCommitStatusList::iterator ccsListItr;
   CtrlrCommitStatus *ccStatusPtr;
 
-  if ((ctrlr_commit_status == NULL) || (dmi == NULL)) {
-    UPLL_LOG_DEBUG(
-        "TxCopy:ctrlr_commit_status is NULL");
-
-    return UPLL_RC_ERR_GENERIC;
-  }
-  for (ccsListItr = ctrlr_commit_status->begin();
-       ccsListItr != ctrlr_commit_status->end(); ++ccsListItr) {
-    ccStatusPtr = *ccsListItr;
-    // ctrlr_id = reinterpret_cast<uint8_t* >((const_cast<char*>
+  if (ctrlr_commit_status != NULL) {
+    for (ccsListItr = ctrlr_commit_status->begin();
+         ccsListItr != ctrlr_commit_status->end(); ++ccsListItr) {
+      ccStatusPtr = *ccsListItr;
+      // ctrlr_id = reinterpret_cast<uint8_t* >((const_cast<char*>
       //                                      (ccStatusPtr->ctrlr_id.c_str())));
-    ctrlr_id = reinterpret_cast<uint8_t *>(&ccStatusPtr->ctrlr_id);
-    ctrlr_result[ccStatusPtr->ctrlr_id] = ccStatusPtr->upll_ctrlr_result;
-    if (ccStatusPtr->upll_ctrlr_result != UPLL_RC_SUCCESS) {
-      for (ConfigKeyVal *ck_err = ccStatusPtr->err_ckv; ck_err != NULL; ck_err =
-           ck_err->get_next_cfg_key_val()) {
-        if (ck_err->get_key_type() != keytype) continue;
-        result_code = GetRenamedUncKey(ck_err, UPLL_DT_CANDIDATE, dmi,
-                                       ctrlr_id);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG(
-              "TxCopy:GetRenamedUncKey is failed, resultcode= %d",
-              result_code);
+      ctrlr_id = reinterpret_cast<uint8_t *>(&ccStatusPtr->ctrlr_id);
+      ctrlr_result[ccStatusPtr->ctrlr_id] = ccStatusPtr->upll_ctrlr_result;
+      if (ccStatusPtr->upll_ctrlr_result != UPLL_RC_SUCCESS) {
+        for (ConfigKeyVal *ck_err = ccStatusPtr->err_ckv; ck_err != NULL;
+             ck_err =
+             ck_err->get_next_cfg_key_val()) {
+          if (ck_err->get_key_type() != keytype) continue;
+          result_code = GetRenamedUncKey(ck_err, UPLL_DT_CANDIDATE, dmi,
+                                         ctrlr_id);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG(
+                "TxCopy:GetRenamedUncKey is failed, resultcode= %d",
+                result_code);
 
-          return result_code;
+            return result_code;
+          }
         }
       }
     }
   }
-
   for (int i = 0; i < nop; i++) {
+    cfg1_cursor = NULL;
     if (op[i] != UNC_OP_UPDATE) {
       result_code = DiffConfigDB(UPLL_DT_CANDIDATE, UPLL_DT_RUNNING, op[i], req,
                                  nreq, &cfg1_cursor, dmi, NULL, MAINTBL, true);
@@ -1659,7 +2052,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::TxCopyCandidateToRunning(
         result_code = DalToUpllResCode(db_result);
         if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
           result_code = UPLL_RC_SUCCESS;
-          UPLL_LOG_DEBUG("No diff found for op %d", op[i]);
+          UPLL_LOG_DEBUG("No more diff found for operation %d", op[i]);
           break;
         }
         result_code = UpdateMainTbl(req, op[i], UPLL_RC_SUCCESS,
@@ -1667,7 +2060,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::TxCopyCandidateToRunning(
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("Updating Main table Error %d", result_code);
           if (cfg1_cursor)
-               dmi->CloseCursor(cfg1_cursor, true);
+            dmi->CloseCursor(cfg1_cursor, true);
           DELETE_IF_NOT_NULL(req);
           DELETE_IF_NOT_NULL(nreq);
           return result_code;
@@ -1683,6 +2076,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::TxCopyCandidateToRunning(
   }
 
   for (int i = 0; i < nop; i++) {
+    cfg1_cursor = NULL;
     MoMgrTables tbl = (op[i] == UNC_OP_UPDATE)?MAINTBL:CTRLRTBL;
     result_code = DiffConfigDB(UPLL_DT_CANDIDATE, UPLL_DT_RUNNING, op[i], req,
                                nreq, &cfg1_cursor, dmi, NULL, tbl, true);
@@ -1692,7 +2086,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::TxCopyCandidateToRunning(
       result_code = DalToUpllResCode(db_result);
       if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
         result_code = UPLL_RC_SUCCESS;
-        UPLL_LOG_DEBUG("!!! No diff found for op %d", op[i]);
+        UPLL_LOG_DEBUG("No more diff found for operation %d", op[i]);
         break;
       }
       if (op[i] == UNC_OP_UPDATE) {
@@ -1703,12 +2097,12 @@ upll_rc_t VtnFlowFilterEntryMoMgr::TxCopyCandidateToRunning(
           UPLL_LOG_DEBUG("GetChildConfigKey is failed resultcode=%d",
                          result_code);
           if (cfg1_cursor)
-               dmi->CloseCursor(cfg1_cursor, true);
+            dmi->CloseCursor(cfg1_cursor, true);
           DELETE_IF_NOT_NULL(req);
           DELETE_IF_NOT_NULL(nreq);
           return result_code;
         }
-        result_code = ReadConfigDB(vtn_ffe_ctrlr_key,UPLL_DT_CANDIDATE,
+        result_code = ReadConfigDB(vtn_ffe_ctrlr_key, UPLL_DT_CANDIDATE,
                                    UNC_OP_READ, dbop, dmi, CTRLRTBL);
         if (result_code != UPLL_RC_SUCCESS) {
           delete vtn_ffe_ctrlr_key;
@@ -1723,7 +2117,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::TxCopyCandidateToRunning(
             }
           } else  {
             if (cfg1_cursor)
-               dmi->CloseCursor(cfg1_cursor, true);
+              dmi->CloseCursor(cfg1_cursor, true);
             DELETE_IF_NOT_NULL(req);
             DELETE_IF_NOT_NULL(nreq);
             return result_code;
@@ -1734,21 +2128,21 @@ upll_rc_t VtnFlowFilterEntryMoMgr::TxCopyCandidateToRunning(
           GET_USER_DATA_CTRLR(tmp, ctrlr_id);
           string controller(reinterpret_cast<char *> (ctrlr_id));
           UPLL_LOG_DEBUG("Controller ID =%s", controller.c_str());
-          DbSubOp dbop_maintbl = { kOpReadSingle, kOpMatchNone, 
-                                          kOpInOutFlag |kOpInOutCs };
+          DbSubOp dbop_maintbl = { kOpReadSingle, kOpMatchNone,
+            kOpInOutFlag |kOpInOutCs };
           DbSubOp dbop_ctrtbl = { kOpReadSingle, kOpMatchCtrlr |
-                         kOpMatchDomain, kOpInOutFlag | kOpInOutCs };
+            kOpMatchDomain, kOpInOutFlag | kOpInOutCs };
           result_code = GetChildConfigKey(vtn_ffe_key, req);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("GetChildConfigKey is failed resultcode=%d",
                            result_code);
             if (cfg1_cursor)
-               dmi->CloseCursor(cfg1_cursor, true);
+              dmi->CloseCursor(cfg1_cursor, true);
             DELETE_IF_NOT_NULL(req);
             DELETE_IF_NOT_NULL(nreq);
             return result_code;
           }
-          result_code = ReadConfigDB(vtn_ffe_key,UPLL_DT_CANDIDATE ,
+          result_code = ReadConfigDB(vtn_ffe_key, UPLL_DT_CANDIDATE ,
                                      UNC_OP_READ, dbop_maintbl, dmi, MAINTBL);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("Unable to read configuration from CandidateDb");
@@ -1762,14 +2156,14 @@ upll_rc_t VtnFlowFilterEntryMoMgr::TxCopyCandidateToRunning(
           static_cast<val_vtn_flowfilter_entry_t *>
               (GetVal(vtn_ffe_key))->cs_row_status =
               static_cast<val_vtn_flowfilter_entry_t *>
-                      (GetVal(nreq))->cs_row_status;
-          // For Reading The Main table for config status
+              (GetVal(nreq))->cs_row_status;
+          //  For Reading The Main table for config status
           result_code = GetChildConfigKey(vtn_ffe_run_key, req);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("GetChildConfigKey is failed resultcode=%d",
                            result_code);
             if (cfg1_cursor)
-               dmi->CloseCursor(cfg1_cursor, true);
+              dmi->CloseCursor(cfg1_cursor, true);
             DELETE_IF_NOT_NULL(req);
             DELETE_IF_NOT_NULL(nreq);
             return result_code;
@@ -1778,21 +2172,21 @@ upll_rc_t VtnFlowFilterEntryMoMgr::TxCopyCandidateToRunning(
                                      UNC_OP_READ, dbop_maintbl, dmi, MAINTBL);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("Unable to read configuration from RunningDB");
-            DELETE_IF_NOT_NULL(vtn_ffe_key); 
+            DELETE_IF_NOT_NULL(vtn_ffe_key);
             DELETE_IF_NOT_NULL(vtn_ffe_run_key);
             if (cfg1_cursor)
-               dmi->CloseCursor(cfg1_cursor, true);
+              dmi->CloseCursor(cfg1_cursor, true);
             DELETE_IF_NOT_NULL(req);
             DELETE_IF_NOT_NULL(nreq);
             return result_code;
           }
-          // For Reading The controller table for config status
+          //  For Reading The controller table for config status
           result_code = GetChildConfigKey(vtn_ffe_run_ctrl_key, tmp);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("GetChildConfigKey is failed resultcode=%d",
                            result_code);
             if (cfg1_cursor)
-               dmi->CloseCursor(cfg1_cursor, true);
+              dmi->CloseCursor(cfg1_cursor, true);
             DELETE_IF_NOT_NULL(req);
             DELETE_IF_NOT_NULL(nreq);
             return result_code;
@@ -1801,8 +2195,8 @@ upll_rc_t VtnFlowFilterEntryMoMgr::TxCopyCandidateToRunning(
                                      UNC_OP_READ, dbop_ctrtbl, dmi, CTRLRTBL);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("Unable to read configuration from RunningDb");
-            DELETE_IF_NOT_NULL(vtn_ffe_key); 
-            DELETE_IF_NOT_NULL(vtn_ffe_run_key); 
+            DELETE_IF_NOT_NULL(vtn_ffe_key);
+            DELETE_IF_NOT_NULL(vtn_ffe_run_key);
             DELETE_IF_NOT_NULL(vtn_ffe_run_ctrl_key);
             if (cfg1_cursor)
               dmi->CloseCursor(cfg1_cursor, true);
@@ -1811,35 +2205,42 @@ upll_rc_t VtnFlowFilterEntryMoMgr::TxCopyCandidateToRunning(
             return result_code;
           }
           val_vtn_flowfilter_entry_ctrlr *val_ctrlr_can = reinterpret_cast
-           <val_vtn_flowfilter_entry_ctrlr *>(GetVal(tmp));
+              <val_vtn_flowfilter_entry_ctrlr *>(GetVal(tmp));
           val_vtn_flowfilter_entry_ctrlr *val_ctrlr_run = reinterpret_cast
-            <val_vtn_flowfilter_entry_ctrlr *>(GetVal(vtn_ffe_run_ctrl_key));
+              <val_vtn_flowfilter_entry_ctrlr *>(GetVal(vtn_ffe_run_ctrl_key));
           val_ctrlr_can->cs_row_status =val_ctrlr_run->cs_row_status;
 
           for (unsigned int loop = 0; loop < sizeof(val_ctrlr_run->valid)/
-           sizeof(val_ctrlr_run->valid[0]); ++loop) {
-           val_ctrlr_can->cs_attr[loop] = val_ctrlr_run->cs_attr[loop];
+               sizeof(val_ctrlr_run->valid[0]); ++loop) {
+            val_ctrlr_can->cs_attr[loop] = val_ctrlr_run->cs_attr[loop];
           }
-          // End Reading The controller table for config status
+          //  End Reading The controller table for config status
           val_vtn_flowfilter_entry_t *val_main_can = reinterpret_cast
-           <val_vtn_flowfilter_entry_t *>(GetVal(vtn_ffe_key));
+              <val_vtn_flowfilter_entry_t *>(GetVal(vtn_ffe_key));
           val_vtn_flowfilter_entry_t *val_main = reinterpret_cast
-           <val_vtn_flowfilter_entry_t *>(GetVal(vtn_ffe_run_key));
+              <val_vtn_flowfilter_entry_t *>(GetVal(vtn_ffe_run_key));
 
           for (unsigned int loop = 0; loop < sizeof(val_main->valid)/
-            sizeof(val_main->valid[0]); ++loop) {
+               sizeof(val_main->valid[0]); ++loop) {
             val_main_can->cs_attr[loop] = val_main->cs_attr[loop];
           }
           DELETE_IF_NOT_NULL(vtn_ffe_run_ctrl_key);
-          result_code = UpdateConfigStatus(vtn_ffe_key, op[i],
-                                           ctrlr_result[controller],
-                                           nreq, dmi, tmp);
+          if (ctrlr_result.empty()) {
+            UPLL_LOG_TRACE("ctrlr_commit_status is NULL");
+            result_code = UpdateConfigStatus(vtn_ffe_key, op[i],
+                                             UPLL_RC_ERR_CTR_DISCONNECTED,
+                                             nreq, dmi, tmp);
+          } else {
+            result_code = UpdateConfigStatus(vtn_ffe_key, op[i],
+                                             ctrlr_result[controller],
+                                             nreq, dmi, tmp);
+          }
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("UpdateConfigStatus failed, err %d", result_code);
             break;
           }
-          DELETE_IF_NOT_NULL(vtn_ffe_run_key); 
-          DELETE_IF_NOT_NULL(vtn_ffe_run_ctrl_key); 
+          DELETE_IF_NOT_NULL(vtn_ffe_run_key);
+          DELETE_IF_NOT_NULL(vtn_ffe_run_ctrl_key);
           void *vtnffe_ctrlval = GetVal(tmp);
           CompareValidVal(vtnffe_ctrlval, GetVal(nreq), GetVal(req), false);
           result_code = UpdateConfigDB(tmp, UPLL_DT_RUNNING,
@@ -1867,12 +2268,12 @@ upll_rc_t VtnFlowFilterEntryMoMgr::TxCopyCandidateToRunning(
           }
           EnqueCfgNotification(op[i], UPLL_DT_RUNNING,
                                vtn_ffe_key);
-          DELETE_IF_NOT_NULL(vtn_ffe_key); 
+          DELETE_IF_NOT_NULL(vtn_ffe_key);
         }
       } else {
-        if (op[i] == UNC_OP_CREATE ) {
-          DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutFlag 
-                                                   | kOpInOutCs };
+        if (op[i] == UNC_OP_CREATE) {
+          DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutFlag
+            | kOpInOutCs };
           result_code = GetChildConfigKey(vtn_ffe_key, req);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("GetChildConfigKey is failed resultcode=%d",
@@ -1885,8 +2286,8 @@ upll_rc_t VtnFlowFilterEntryMoMgr::TxCopyCandidateToRunning(
           }
           result_code = ReadConfigDB(vtn_ffe_key, UPLL_DT_RUNNING ,
                                      UNC_OP_READ, dbop, dmi, MAINTBL);
-          if (result_code != UPLL_RC_SUCCESS && 
-               result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE ) {
+          if (result_code != UPLL_RC_SUCCESS &&
+              result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE ) {
             UPLL_LOG_DEBUG("Unable to read configuration from CandidateDb");
             if (cfg1_cursor)
               dmi->CloseCursor(cfg1_cursor, true);
@@ -1897,7 +2298,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::TxCopyCandidateToRunning(
           result_code = DupConfigKeyVal(vtn_ffe_ctrlr_key, req, tbl);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("Failed to create duplicate ConfigKeyVal Err (%d)",
-                         result_code);
+                           result_code);
             delete vtn_ffe_key;
             if (cfg1_cursor)
               dmi->CloseCursor(cfg1_cursor, true);
@@ -1905,23 +2306,31 @@ upll_rc_t VtnFlowFilterEntryMoMgr::TxCopyCandidateToRunning(
             DELETE_IF_NOT_NULL(nreq);
             return result_code;
           }
-          //  set consolidated config status to UNKNOWN to init vtn cs_status
-          //  to the cs_status of first controller
+          //   set consolidated config status to UNKNOWN to init vtn cs_status
+          //   to the cs_status of first controller
           uint32_t cur_instance_count;
           result_code = GetInstanceCount(vtn_ffe_key, NULL,
-                                   UPLL_DT_CANDIDATE, &cur_instance_count,
-                                   dmi, CTRLRTBL);
+                                         UPLL_DT_CANDIDATE, &cur_instance_count,
+                                         dmi, CTRLRTBL);
           if ((result_code == UPLL_RC_SUCCESS) && (cur_instance_count == 1))
             reinterpret_cast<val_vtn_flowfilter_entry*>
-                    (GetVal(vtn_ffe_key))->cs_row_status = UNC_CS_UNKNOWN ;
+                (GetVal(vtn_ffe_key))->cs_row_status = UNC_CS_UNKNOWN;
           GET_USER_DATA_CTRLR(vtn_ffe_ctrlr_key, ctrlr_id);
           string controller(reinterpret_cast<char *> (ctrlr_id));
-          result_code = UpdateConfigStatus(vtn_ffe_key, op[i],
-                                           ctrlr_result[controller], nreq ,
-                                           dmi,vtn_ffe_ctrlr_key );
+          if (ctrlr_result.empty()) {
+            UPLL_LOG_TRACE("ctrlr_commit_status is NULL");
+            result_code = UpdateConfigStatus(vtn_ffe_key, op[i],
+                                             UPLL_RC_ERR_CTR_DISCONNECTED,
+                                             nreq ,
+                                             dmi, vtn_ffe_ctrlr_key);
+          } else {
+            result_code = UpdateConfigStatus(vtn_ffe_key, op[i],
+                                             ctrlr_result[controller], nreq ,
+                                             dmi, vtn_ffe_ctrlr_key);
+          }
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("Error in updating configstatus, resultcode=%d",
-                           result_code); 
+                           result_code);
             DELETE_IF_NOT_NULL(vtn_ffe_ctrlr_key);
             if (cfg1_cursor)
               dmi->CloseCursor(cfg1_cursor, true);
@@ -1929,34 +2338,34 @@ upll_rc_t VtnFlowFilterEntryMoMgr::TxCopyCandidateToRunning(
           }
 
         } else if (op[i] == UNC_OP_DELETE) {
-          // Reading Main Running DB for delete op
-           DbSubOp dbop1 = { kOpReadSingle, kOpMatchNone, kOpInOutFlag 
-                                                        | kOpInOutCs };
-           result_code = GetChildConfigKey(vtn_ck_run, req);
-           if (result_code != UPLL_RC_SUCCESS) {
-             UPLL_LOG_DEBUG("GetChildConfigKey is failed resultcode=%d",
-                         result_code);
-             if (cfg1_cursor)
-               dmi->CloseCursor(cfg1_cursor, true);
-             return result_code;
-           }
-           result_code = ReadConfigDB(vtn_ck_run, UPLL_DT_RUNNING,
-                                   UNC_OP_READ, dbop1, dmi, MAINTBL);
-           if (result_code != UPLL_RC_SUCCESS && 
-                 result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-             UPLL_LOG_DEBUG("Unable to read configuration from CandidateDb");
-             DELETE_IF_NOT_NULL(vtn_ck_run);
-             if (cfg1_cursor)
-               dmi->CloseCursor(cfg1_cursor, true);
-             return result_code;
-           }
+          //  Reading Main Running DB for delete op
+          DbSubOp dbop1 = { kOpReadSingle, kOpMatchNone, kOpInOutFlag
+            | kOpInOutCs };
+          result_code = GetChildConfigKey(vtn_ck_run, req);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("GetChildConfigKey is failed resultcode=%d",
+                           result_code);
+            if (cfg1_cursor)
+              dmi->CloseCursor(cfg1_cursor, true);
+            return result_code;
+          }
+          result_code = ReadConfigDB(vtn_ck_run, UPLL_DT_RUNNING,
+                                     UNC_OP_READ, dbop1, dmi, MAINTBL);
+          if (result_code != UPLL_RC_SUCCESS &&
+              result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+            UPLL_LOG_DEBUG("Unable to read configuration from CandidateDb");
+            DELETE_IF_NOT_NULL(vtn_ck_run);
+            if (cfg1_cursor)
+              dmi->CloseCursor(cfg1_cursor, true);
+            return result_code;
+          }
           GET_USER_DATA_CTRLR(req, ctrlr_id);
           if (result_code == UPLL_RC_SUCCESS) {
-            result_code = SetVtnFFEntryConsolidatedStatus(vtn_ck_run, 
+            result_code = SetVtnFFEntryConsolidatedStatus(vtn_ck_run,
                                                           ctrlr_id, dmi);
             if (result_code != UPLL_RC_SUCCESS) {
-              UPLL_LOG_DEBUG("Could not set consolidated status %d", 
-                                                   result_code);
+              UPLL_LOG_DEBUG("Could not set consolidated status %d",
+                             result_code);
               DELETE_IF_NOT_NULL(vtn_ck_run);
               if (cfg1_cursor)
                 dmi->CloseCursor(cfg1_cursor, true);
@@ -1964,8 +2373,8 @@ upll_rc_t VtnFlowFilterEntryMoMgr::TxCopyCandidateToRunning(
               DELETE_IF_NOT_NULL(nreq);
               return result_code;
             }
-           }
-           DELETE_IF_NOT_NULL(vtn_ck_run);
+          }
+          DELETE_IF_NOT_NULL(vtn_ck_run);
           result_code = GetChildConfigKey(vtn_ffe_ctrlr_key, req);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("Error in getting the configkey, resultcode=%d",
@@ -1984,7 +2393,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::TxCopyCandidateToRunning(
           UPLL_LOG_DEBUG("DB Error while updating controller table. err:%d",
                          result_code);
           if (cfg1_cursor)
-              dmi->CloseCursor(cfg1_cursor, true);
+            dmi->CloseCursor(cfg1_cursor, true);
           DELETE_IF_NOT_NULL(vtn_ck_run);
           DELETE_IF_NOT_NULL(req);
           DELETE_IF_NOT_NULL(nreq);
@@ -2009,7 +2418,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::TxCopyCandidateToRunning(
         EnqueCfgNotification(op[i], UPLL_DT_RUNNING,
                              vtn_ffe_key);
       }
-      // delete vtn_flowfilter_entry_ctrlr_key;
+      //  delete vtn_flowfilter_entry_ctrlr_key;
       if (vtn_ffe_key) delete vtn_ffe_key;
       DELETE_IF_NOT_NULL(vtn_ffe_ctrlr_key);
       vtn_ffe_key = vtn_ffe_ctrlr_key = NULL;
@@ -2026,11 +2435,11 @@ upll_rc_t VtnFlowFilterEntryMoMgr::TxCopyCandidateToRunning(
   UPLL_LOG_DEBUG("TxCopy returned with resultcode %d", result_code);
   return result_code;
 }
-  
-  upll_rc_t
-  VtnFlowFilterEntryMoMgr::SetVtnFFEntryConsolidatedStatus(ConfigKeyVal *ikey,
-                                   uint8_t *ctrlr_id,
-                                   DalDmlIntf *dmi)  {
+
+upll_rc_t
+VtnFlowFilterEntryMoMgr::SetVtnFFEntryConsolidatedStatus(ConfigKeyVal *ikey,
+                                                         uint8_t *ctrlr_id,
+                                                         DalDmlIntf *dmi)  {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *ctrlr_ckv = NULL;
@@ -2039,7 +2448,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::TxCopyCandidateToRunning(
   bool applied = false, not_applied = false, invalid = false;
   unc_keytype_configstatus_t c_status = UNC_CS_NOT_APPLIED;
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone,
-                   kOpInOutCtrlr | kOpInOutDomain | kOpInOutCs };
+    kOpInOutCtrlr | kOpInOutDomain | kOpInOutCs };
   if (!ikey || !dmi) {
     UPLL_LOG_DEBUG("Invalid Input");
     return UPLL_RC_ERR_GENERIC;
@@ -2049,9 +2458,9 @@ upll_rc_t VtnFlowFilterEntryMoMgr::TxCopyCandidateToRunning(
     UPLL_LOG_DEBUG("GetChildConfigKey failed err code %d", result_code);
     return result_code;
   }
-  result_code = ReadConfigDB(ctrlr_ckv, UPLL_DT_RUNNING, 
-                                 UNC_OP_READ, dbop, dmi,
-                                 CTRLRTBL);
+  result_code = ReadConfigDB(ctrlr_ckv, UPLL_DT_RUNNING,
+                             UNC_OP_READ, dbop, dmi,
+                             CTRLRTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("ReadConfigDB from ctrltbl failed err code %d",
                    result_code);
@@ -2060,10 +2469,9 @@ upll_rc_t VtnFlowFilterEntryMoMgr::TxCopyCandidateToRunning(
   }
 
   for (ConfigKeyVal *tmp = ctrlr_ckv; tmp != NULL;
-                     tmp = tmp->get_next_cfg_key_val()) {
-
+       tmp = tmp->get_next_cfg_key_val()) {
     ctrlr_val = reinterpret_cast<val_vtn_flowfilter_entry_ctrlr *>
-                          (GetVal(tmp));
+        (GetVal(tmp));
     if (!ctrlr_val) {
       UPLL_LOG_DEBUG("Controller Value is empty");
       tmp = NULL;
@@ -2074,22 +2482,22 @@ upll_rc_t VtnFlowFilterEntryMoMgr::TxCopyCandidateToRunning(
     UPLL_LOG_DEBUG("Controllername from DB %s", vtn_ffe_exist_on_ctrlr);
     if (!strcmp(reinterpret_cast<char *>(vtn_ffe_exist_on_ctrlr),
                 reinterpret_cast<char *>(ctrlr_id)))
-      continue;  // skipping entry of deleted controller
+      continue;  //  skipping entry of deleted controller
 
     switch (ctrlr_val->cs_row_status) {
       case UNC_CS_APPLIED:
         applied = true;
-      break;
+        break;
       case UNC_CS_NOT_APPLIED:
         not_applied = true;
-      break;
+        break;
       case UNC_CS_INVALID:
         invalid = true;
-      break;
+        break;
       default:
         UPLL_LOG_DEBUG("Invalid status");
         DELETE_IF_NOT_NULL(ctrlr_ckv);
-        // return UPLL_RC_ERR_GENERIC;
+        //  return UPLL_RC_ERR_GENERIC;
     }
     vtn_ffe_exist_on_ctrlr = NULL;
   }
@@ -2105,51 +2513,52 @@ upll_rc_t VtnFlowFilterEntryMoMgr::TxCopyCandidateToRunning(
     c_status = UNC_CS_APPLIED;
   }
   applied = not_applied = false;
-  // Set cs_status
-  val_vtn_flowfilter_entry_t *vtn_ffe_val = 
-     static_cast<val_vtn_flowfilter_entry_t *>(GetVal(ikey));
+  //  Set cs_status
+  val_vtn_flowfilter_entry_t *vtn_ffe_val =
+      static_cast<val_vtn_flowfilter_entry_t *>(GetVal(ikey));
   vtn_ffe_val->cs_row_status = c_status;
   for (unsigned int loop = 0; loop < sizeof(vtn_ffe_val->valid)/
-           sizeof(vtn_ffe_val->valid[0]); ++loop) {  
+       sizeof(vtn_ffe_val->valid[0]); ++loop) {
     for (ConfigKeyVal *tmp = ctrlr_ckv; tmp != NULL;
-                     tmp = tmp->get_next_cfg_key_val()) {
-      ctrlr_val = reinterpret_cast<val_vtn_flowfilter_entry_ctrlr *>(GetVal(tmp));
+         tmp = tmp->get_next_cfg_key_val()) {
+      ctrlr_val = reinterpret_cast<val_vtn_flowfilter_entry_ctrlr *>
+          (GetVal(tmp));
 
       GET_USER_DATA_CTRLR(tmp, vtn_ffe_exist_on_ctrlr);
       if (!strcmp(reinterpret_cast<char *>(vtn_ffe_exist_on_ctrlr),
-                reinterpret_cast<char *>(ctrlr_id)))
-        continue;  // skipping entry of deleted controller
-       if (ctrlr_val->valid[loop] == UNC_VF_VALID) {
+                  reinterpret_cast<char *>(ctrlr_id)))
+        continue;  //  skipping entry of deleted controller
+      if (ctrlr_val->valid[loop] == UNC_VF_VALID) {
         switch (ctrlr_val->cs_attr[loop]) {
           case UNC_CS_APPLIED:
             applied = true;
-        break;
-        case UNC_CS_NOT_APPLIED:
-          not_applied = true;
-        break;
-        case UNC_CS_INVALID:
-          invalid = true;
-        break;
-        default:
-          UPLL_LOG_DEBUG("Invalid status %d", ctrlr_val->cs_attr[loop]);
+            break;
+          case UNC_CS_NOT_APPLIED:
+            not_applied = true;
+            break;
+          case UNC_CS_INVALID:
+            invalid = true;
+            break;
+          default:
+            UPLL_LOG_DEBUG("Invalid status %d", ctrlr_val->cs_attr[loop]);
         }
       }
     }
     if (invalid) {
       c_status = UNC_CS_INVALID;
     } else if (applied && !not_applied) {
-        c_status = UNC_CS_APPLIED;
+      c_status = UNC_CS_APPLIED;
     } else if (!applied && not_applied) {
-        c_status = UNC_CS_NOT_APPLIED;
+      c_status = UNC_CS_NOT_APPLIED;
     } else if (applied && not_applied) {
-        c_status = UNC_CS_PARTIALLY_APPLIED;
+      c_status = UNC_CS_PARTIALLY_APPLIED;
     } else {
-        c_status = UNC_CS_APPLIED;
+      c_status = UNC_CS_APPLIED;
     }
     vtn_ffe_val->cs_attr[loop] = c_status;
     applied = not_applied =false;
   }
-  
+
 
   DbSubOp dbop_update = {kOpNotRead, kOpMatchNone, kOpInOutCs};
   result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_UPDATE, dmi,
@@ -2170,20 +2579,20 @@ upll_rc_t VtnFlowFilterEntryMoMgr::UpdateConfigStatus(
   val_vtn_flowfilter_entry_t *vtn_ff_entry_val = reinterpret_cast
       <val_vtn_flowfilter_entry_t *> (GetVal(vtn_flow_filter_entry_key));
   val_vtn_flowfilter_entry_ctrlr *ctrlr_val_ff_entry =
-  reinterpret_cast<val_vtn_flowfilter_entry_ctrlr *> (GetVal(ctrlr_key));
+      reinterpret_cast<val_vtn_flowfilter_entry_ctrlr *> (GetVal(ctrlr_key));
   if ((vtn_ff_entry_val == NULL)
       || (ctrlr_val_ff_entry == NULL)) {
-  UPLL_LOG_DEBUG("Memory Allocation failed for Valstructure");
-  return UPLL_RC_ERR_GENERIC;
+    UPLL_LOG_DEBUG("Memory Allocation failed for Valstructure");
+    return UPLL_RC_ERR_GENERIC;
   }
 
   if (op == UNC_OP_CREATE) {
-   /* for (unsigned int ctrl_attr = 0; ctrl_attr <
-      sizeof(ctrlr_val_ff_entry->valid) / sizeof(ctrlr_val_ff_entry->valid[0]);
-        ++ctrl_attr) {
-      ctrlr_val_ff_entry->valid[ctrl_attr] = UNC_VF_INVALID;
-      }
-*/
+    /* for (unsigned int ctrl_attr = 0; ctrl_attr <
+       sizeof(ctrlr_val_ff_entry->valid) / sizeof(ctrlr_val_ff_entry->valid[0]);
+       ++ctrl_attr) {
+       ctrlr_val_ff_entry->valid[ctrl_attr] = UNC_VF_INVALID;
+       }
+       */
     /* update the vtn status in main tbl */
     switch (vtn_ff_entry_val->cs_row_status) {
       case UNC_CS_UNKNOWN:
@@ -2192,7 +2601,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::UpdateConfigStatus(
       case UNC_CS_PARTIALLY_APPLIED:
         if (ctrlr_val_ff_entry->cs_row_status
             == UNC_CS_NOT_APPLIED) {
-          // if this vtn has caused it then to change to applied.
+          //  if this vtn has caused it then to change to applied.
         }
         break;
       case UNC_CS_APPLIED:
@@ -2205,8 +2614,8 @@ upll_rc_t VtnFlowFilterEntryMoMgr::UpdateConfigStatus(
     }
     vtn_ff_entry_val->cs_row_status = status;
     for (unsigned int loop = 0; loop <
-      sizeof(vtn_ff_entry_val->valid) /sizeof(vtn_ff_entry_val->valid[0]);
-      ++loop) {
+         sizeof(vtn_ff_entry_val->valid) /sizeof(vtn_ff_entry_val->valid[0]);
+         ++loop) {
       if (UNC_VF_NOT_SUPPORTED == vtn_ff_entry_val->valid[loop]) {
         vtn_ff_entry_val->cs_attr[loop] = UNC_CS_NOT_SUPPORTED;
         continue;
@@ -2216,11 +2625,11 @@ upll_rc_t VtnFlowFilterEntryMoMgr::UpdateConfigStatus(
         continue;
       }
       if ((UNC_VF_VALID == vtn_ff_entry_val->valid[loop]) ||
-         (UNC_VF_VALID_NO_VALUE == vtn_ff_entry_val->valid[loop]))
+          (UNC_VF_VALID_NO_VALUE == vtn_ff_entry_val->valid[loop]))
         if (ctrlr_val_ff_entry->valid[loop] != UNC_VF_NOT_SUPPORTED) {
           ctrlr_val_ff_entry->cs_attr[loop] = cs_status;
           vtn_ff_entry_val->cs_attr[loop] =
-            static_cast<uint8_t>(vtn_ff_entry_val->cs_row_status);
+              static_cast<uint8_t>(vtn_ff_entry_val->cs_row_status);
         }
     }
   } else if (op == UNC_OP_UPDATE) {
@@ -2228,16 +2637,16 @@ upll_rc_t VtnFlowFilterEntryMoMgr::UpdateConfigStatus(
     CompareValidValue(vtnffval, GetVal(nreq), false);
 
     for (unsigned int loop = 0;
-        loop < sizeof(ctrlr_val_ff_entry->valid) / sizeof(
-                                                 ctrlr_val_ff_entry->valid[0]);
-        ++loop) {
+         loop < sizeof(ctrlr_val_ff_entry->valid) / sizeof(
+             ctrlr_val_ff_entry->valid[0]);
+         ++loop) {
       if (ctrlr_val_ff_entry->valid[loop] != UNC_VF_NOT_SUPPORTED) {
         ctrlr_val_ff_entry->cs_attr[loop] = cs_status;
       } else {
         ctrlr_val_ff_entry->cs_attr[loop] = UNC_CS_NOT_SUPPORTED;
         vtn_ff_entry_val->cs_attr[loop] =
-        static_cast<uint8_t>(vtn_ff_entry_val->cs_row_status);
-     }
+            static_cast<uint8_t>(vtn_ff_entry_val->cs_row_status);
+      }
     }
   }
   return result_code;
@@ -2245,28 +2654,30 @@ upll_rc_t VtnFlowFilterEntryMoMgr::UpdateConfigStatus(
 #endif
 
 upll_rc_t VtnFlowFilterEntryMoMgr::UpdateAuditConfigStatus(
-                                         unc_keytype_configstatus_t cs_status,
-                                         uuc::UpdateCtrlrPhase phase,
-                                         ConfigKeyVal *&ckv_running) {
+    unc_keytype_configstatus_t cs_status,
+    uuc::UpdateCtrlrPhase phase,
+    ConfigKeyVal *&ckv_running,
+    DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_vtn_flowfilter_entry_ctrlr *val;
   val = (ckv_running != NULL)?
-        reinterpret_cast<val_vtn_flowfilter_entry_ctrlr *>
-        (GetVal(ckv_running)):NULL;
+      reinterpret_cast<val_vtn_flowfilter_entry_ctrlr *>
+      (GetVal(ckv_running)):NULL;
   if (NULL == val) {
     return UPLL_RC_ERR_GENERIC;
   }
   if (uuc::kUpllUcpCreate == phase )
     val->cs_row_status = cs_status;
   if ((uuc::kUpllUcpUpdate == phase) &&
-           (val->cs_row_status == UNC_CS_INVALID ||
-            val->cs_row_status == UNC_CS_NOT_APPLIED))
+      (val->cs_row_status == UNC_CS_INVALID ||
+       val->cs_row_status == UNC_CS_NOT_APPLIED))
     val->cs_row_status = cs_status;
   for (unsigned int loop = 0;
-      loop < sizeof(val->valid)/sizeof(uint8_t); ++loop) {
+       loop < sizeof(val->valid)/sizeof(uint8_t); ++loop) {
     if ((cs_status == UNC_CS_INVALID && UNC_VF_VALID == val->valid[loop]) ||
-         cs_status == UNC_CS_APPLIED)
-       val->cs_attr[loop] = cs_status;
+        cs_status == UNC_CS_APPLIED)
+      val->cs_attr[loop] = cs_status;
   }
   return result_code;
 }
@@ -2292,28 +2703,28 @@ upll_rc_t VtnFlowFilterEntryMoMgr::SetConsolidatedStatus(ConfigKeyVal *ikey,
   std::list< unc_keytype_configstatus_t > list_cs_attr;
   val_vtn_flowfilter_entry_ctrlr *val;
   for (unsigned int loop = 0; loop < sizeof(val->valid)/sizeof(val->valid[0]);
-      ++loop) {
+       ++loop) {
     std::list< unc_keytype_configstatus_t > list_attr;
     vec_attr.push_back(list_attr);
   }
   ConfigKeyVal *temp_ckv = ckv;
   for (; temp_ckv != NULL; temp_ckv =  temp_ckv->get_next_cfg_key_val()) {
-      val = reinterpret_cast<val_vtn_flowfilter_entry_ctrlr*>
-            (GetVal(temp_ckv));
-      list_cs_row.push_back((unc_keytype_configstatus_t)val->cs_row_status);
-      for (unsigned int loop = 0;
-            loop < sizeof(val->valid)/sizeof(val->valid[0]);
-        ++loop) {
-        vec_attr[loop].push_back(
-                      (unc_keytype_configstatus_t)val->cs_attr[loop]);
+    val = reinterpret_cast<val_vtn_flowfilter_entry_ctrlr*>
+        (GetVal(temp_ckv));
+    list_cs_row.push_back((unc_keytype_configstatus_t)val->cs_row_status);
+    for (unsigned int loop = 0;
+         loop < sizeof(val->valid)/sizeof(val->valid[0]);
+         ++loop) {
+      vec_attr[loop].push_back(
+          (unc_keytype_configstatus_t)val->cs_attr[loop]);
     }
   }
   DELETE_IF_NOT_NULL(ckv);
   val_vtn_flowfilter_entry_t *val_temp =
-  reinterpret_cast<val_vtn_flowfilter_entry_t *>(GetVal(ikey));
+      reinterpret_cast<val_vtn_flowfilter_entry_t *>(GetVal(ikey));
   val_temp->cs_row_status = GetConsolidatedCsStatus(list_cs_row);
   for (unsigned int loop = 0; loop < sizeof(val->valid)/sizeof(val->valid[0]);
-      ++loop) {
+       ++loop) {
     val_temp->cs_attr[loop] = GetConsolidatedCsStatus(vec_attr[loop]);
   }
   result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING,
@@ -2334,46 +2745,15 @@ upll_rc_t VtnFlowFilterEntryMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
     UPLL_LOG_DEBUG("input key is null");
     return UPLL_RC_ERR_GENERIC;
   }
-  key_vtn_flowfilter_entry_t *key_vtn_ffe =
-      reinterpret_cast<key_vtn_flowfilter_entry_t *>(ikey->get_key());
-  MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>
-      (const_cast<MoManager *>(GetMoManager(UNC_KT_VTN_FLOWFILTER)));
-
-  result_code = mgr->GetChildConfigKey(okey, NULL);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Key not supported - %d", result_code);
-    return result_code;
-  }
-
-  key_vtn_flowfilter_t *vtn_ff_key =
-      reinterpret_cast<key_vtn_flowfilter_t *>(okey->get_key());
-  uuu::upll_strncpy(vtn_ff_key->vtn_key.vtn_name,
-                    key_vtn_ffe->flowfilter_key.vtn_key.vtn_name,
-                    (kMaxLenVtnName+1));
-  vtn_ff_key->input_direction = key_vtn_ffe->flowfilter_key.input_direction;
-
-  /* Checks the given vtn exists or not */
-  result_code = mgr->UpdateConfigDB(okey, req->datatype, UNC_OP_READ,
-                                    dmi, MAINTBL);
-  if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
-    UPLL_LOG_DEBUG(" Parent VTN flowfilter key does not exists");
-    delete okey;
-    okey = NULL;
-    return UPLL_RC_ERR_PARENT_DOES_NOT_EXIST;
-  } else {
-    result_code = UPLL_RC_SUCCESS;
-  }
-
-  delete okey;
-  okey = NULL;
+  MoMgrImpl *mgr = NULL;
 
-  // read val_vtn_flowfilter_entry from ikey
+  //  read val_vtn_flowfilter_entry from ikey
   val_vtn_flowfilter_entry_t *val_vtn_flowfilter_entry =
       static_cast<val_vtn_flowfilter_entry_t *>(
           ikey->get_cfg_val()->get_val());
   if (val_vtn_flowfilter_entry->valid[UPLL_IDX_FLOWLIST_NAME_VFFE]
       == UNC_VF_VALID) {
-    // validate flowlist_name in in FLOWLIST table
+    //  validate flowlist_name in in FLOWLIST table
     mgr = reinterpret_cast<MoMgrImpl *>
         (const_cast<MoManager *>(GetMoManager(UNC_KT_FLOWLIST)));
 
@@ -2420,7 +2800,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
 
   if (val_vtn_flowfilter_entry->valid[UPLL_IDX_NWN_NAME_VFFE]
       == UNC_VF_VALID) {
-    // validate nwm_name in KT_VBR_NWMONITOR table
+    //  validate nwm_name in KT_VBR_NWMONITOR table
     mgr = reinterpret_cast<MoMgrImpl *>
         (const_cast<MoManager *>(GetMoManager(UNC_KT_VBR_NWMONITOR)));
 
@@ -2471,12 +2851,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
 
     delete okey;
     okey = NULL;
-  }  // nwm_name is valid
-  result_code = SetRenameFlag(ikey, dmi, req);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("SetRenameFlag failed %d", result_code);
-    return result_code;
-  }
+  }  //  nwm_name is valid
   UPLL_LOG_DEBUG("ValidateAttribute Successfull.");
   return result_code;
 }
@@ -2485,7 +2860,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::AllocVal(ConfigVal *&ck_val,
                                             upll_keytype_datatype_t dt_type,
                                             MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
-  void *val;  //  *ck_nxtval;
+  void *val;  //   *ck_nxtval;
   if (ck_val != NULL) {
     UPLL_LOG_DEBUG("Memory is already allocated for configval pointer");
     return UPLL_RC_ERR_GENERIC;
@@ -2497,9 +2872,9 @@ upll_rc_t VtnFlowFilterEntryMoMgr::AllocVal(ConfigVal *&ck_val,
       ck_val = new ConfigVal(IpctSt::kIpcStValVtnFlowfilterEntry, val);
       break;
     case CTRLRTBL:
-     val = ConfigKeyVal::Malloc(sizeof(val_vtn_flowfilter_entry_ctrlr_t));
-     ck_val = new ConfigVal(IpctSt::kIpcInvalidStNum, val);
-     break;
+      val = ConfigKeyVal::Malloc(sizeof(val_vtn_flowfilter_entry_ctrlr_t));
+      ck_val = new ConfigVal(IpctSt::kIpcInvalidStNum, val);
+      break;
     default:
       val = NULL;
       return UPLL_RC_ERR_GENERIC;
@@ -2565,21 +2940,21 @@ upll_rc_t VtnFlowFilterEntryMoMgr::ReadFlowFilterController(
       (kMaxLenVtnName +1));
 
   key_vtn_ffe_ctrl->flowfilter_key.input_direction = 0xFE;
-  // vtn is not configured in vtn_ff_entry main tbl
-  // only vtn/vbr is configured and commited
+  //  vtn is not configured in vtn_ff_entry main tbl
+  //  only vtn/vbr is configured and commited
   result_code = UpdateConfigDB(dup_ckmain, req->datatype,
                                UNC_OP_READ, dmi, &dbop1, MAINTBL);
   if (result_code != UPLL_RC_ERR_INSTANCE_EXISTS) {
     UPLL_LOG_DEBUG("Requested Vtn is Not Configured in"
-           "flowfilterEntryMain Table in Candidate %d", result_code);
+                   "flowfilterEntryMain Table in Candidate %d", result_code);
     DELETE_IF_NOT_NULL(dup_ckmain);
     return result_code;
   }
-  // vtn is not configured in vtn_ff_entry ctrlr tbl  
-  // vtn/ff/entry is configured but no vbr is configured
+  //  vtn is not configured in vtn_ff_entry ctrlr tbl
+  //  vtn/ff/entry is configured but no vbr is configured
 
-  // Setting direction again to 0XFE 
-  // because it will be set to 0 in updateconfigDB
+  //  Setting direction again to 0XFE
+  //  because it will be set to 0 in updateconfigDB
   key_vtn_ffe_ctrl->flowfilter_key.input_direction = 0xFE;
   result_code = UpdateConfigDB(dup_ckmain, req->datatype,
                                UNC_OP_READ, dmi, &dbop1, CTRLRTBL);
@@ -2614,8 +2989,10 @@ upll_rc_t VtnFlowFilterEntryMoMgr::ReadFlowFilterController(
         uuu::upll_strncpy(ctrlr_dom.domain,
                           key_vtn_flowfilter_ctrl->domain_id,
                           (kMaxLenDomainId + 1));
-        result_code = ValidateCapability(req, ikey,
-                       reinterpret_cast<char *>(ctrlr_dom.ctrlr));
+        result_code = ValidateCapability(
+            req,
+            ikey,
+            reinterpret_cast<char *>(ctrlr_dom.ctrlr));
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("Key not supported by controller ReadMo ");
           FREE_IF_NOT_NULL(ctrlr_dom.ctrlr);
@@ -2645,38 +3022,38 @@ upll_rc_t VtnFlowFilterEntryMoMgr::ReadFlowFilterController(
             UNC_KT_VTN_FLOWFILTER_CONTROLLER,
             IpctSt::kIpcStKeyVtnFlowfilterController,
             l_key_vtn_flowfilter_ctrl, tmp1);
-        // verifying given reuest is existing in vtn_ff_entry_tbl or not
+        //  verifying given reuest is existing in vtn_ff_entry_tbl or not
         key_vtn_flowfilter_entry_t *key_ctrl =
-        reinterpret_cast <key_vtn_flowfilter_entry_t*>
-         (ConfigKeyVal::Malloc(sizeof(key_vtn_flowfilter_entry_t)));
+            reinterpret_cast <key_vtn_flowfilter_entry_t*>
+            (ConfigKeyVal::Malloc(sizeof(key_vtn_flowfilter_entry_t)));
         ConfigKeyVal *dup_ckmain = new ConfigKeyVal(
-         UNC_KT_VTN_FLOWFILTER_ENTRY,
-         IpctSt::kIpcStKeyVtnFlowfilterEntry,
-           key_ctrl, NULL);
-         uuu::upll_strncpy(
-         key_ctrl->flowfilter_key.vtn_key.vtn_name,
-         key_vtn_flowfilter_ctrl->vtn_key.vtn_name,
-          (kMaxLenVtnName +1));
-       if ((ival->valid[UPLL_IDX_SEQ_NUM_FFC] == UNC_VF_VALID) ||
-                 (ival->valid[UPLL_IDX_DIRECTION_FFC] == UNC_VF_VALID)) {
-         if (ival->valid[UPLL_IDX_SEQ_NUM_FFC] == UNC_VF_VALID) {
-           key_ctrl->sequence_num = ival->sequence_num;
-         }
-         if (ival->valid[UPLL_IDX_DIRECTION_FFC] == UNC_VF_VALID) {
-           key_ctrl->flowfilter_key.input_direction = ival->direction;
-         }
-         result_code = UpdateConfigDB(dup_ckmain, req->datatype,
-                               UNC_OP_READ, dmi, &dbop1, MAINTBL);
-         if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-           UPLL_LOG_DEBUG("Requested Configuration is not Configured in"
-                   "VtnflowfilterEntry Table %d", result_code);
-           DELETE_IF_NOT_NULL(dup_ckmain);
-           DELETE_IF_NOT_NULL(l_key);
-           FREE_IF_NOT_NULL(ctrlr_dom.ctrlr);
-           FREE_IF_NOT_NULL(ctrlr_dom.domain);
-           return result_code;
-         }
-       }
+            UNC_KT_VTN_FLOWFILTER_ENTRY,
+            IpctSt::kIpcStKeyVtnFlowfilterEntry,
+            key_ctrl, NULL);
+        uuu::upll_strncpy(
+            key_ctrl->flowfilter_key.vtn_key.vtn_name,
+            key_vtn_flowfilter_ctrl->vtn_key.vtn_name,
+            (kMaxLenVtnName +1));
+        if ((ival->valid[UPLL_IDX_SEQ_NUM_FFC] == UNC_VF_VALID) ||
+            (ival->valid[UPLL_IDX_DIRECTION_FFC] == UNC_VF_VALID)) {
+          if (ival->valid[UPLL_IDX_SEQ_NUM_FFC] == UNC_VF_VALID) {
+            key_ctrl->sequence_num = ival->sequence_num;
+          }
+          if (ival->valid[UPLL_IDX_DIRECTION_FFC] == UNC_VF_VALID) {
+            key_ctrl->flowfilter_key.input_direction = ival->direction;
+          }
+          result_code = UpdateConfigDB(dup_ckmain, req->datatype,
+                                       UNC_OP_READ, dmi, &dbop1, MAINTBL);
+          if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+            UPLL_LOG_DEBUG("Requested Configuration is not Configured in"
+                           "VtnflowfilterEntry Table %d", result_code);
+            DELETE_IF_NOT_NULL(dup_ckmain);
+            DELETE_IF_NOT_NULL(l_key);
+            FREE_IF_NOT_NULL(ctrlr_dom.ctrlr);
+            FREE_IF_NOT_NULL(ctrlr_dom.domain);
+            return result_code;
+          }
+        }
         DELETE_IF_NOT_NULL(dup_ckmain);
         result_code = GetRenamedControllerKey(l_key, req->datatype, dmi,
                                               &ctrlr_dom);
@@ -2687,56 +3064,56 @@ upll_rc_t VtnFlowFilterEntryMoMgr::ReadFlowFilterController(
           FREE_IF_NOT_NULL(ctrlr_dom.domain);
           return result_code;
         }
-          // Sending the request to driver
-          IpcResponse ipc_resp;
-          memset(&ipc_resp, 0, sizeof(IpcResponse));
-          IpcRequest ipc_req;
-          memset(&ipc_req, 0, sizeof(IpcRequest));
-          ipc_req.header.clnt_sess_id = req->clnt_sess_id;
-          ipc_req.header.config_id = req->config_id;
-          ipc_req.header.operation = UNC_OP_READ;
-          ipc_req.header.option1 = req->option1;
-          ipc_req.header.datatype = req->datatype;
-
-          ipc_req.ckv_data = l_key;
-          if (!IpcUtil::SendReqToDriver(
-                  (const char *)ctrlr_dom.ctrlr,
-                  reinterpret_cast<char *>(ctrlr_dom.domain),
-                  PFCDRIVER_SERVICE_NAME, PFCDRIVER_SVID_LOGICAL,
-                  &ipc_req, true, &ipc_resp)) {
-            UPLL_LOG_DEBUG("SendReqToDriver failed for Key %d controller %s",
-                           l_key->get_key_type(),
-                           reinterpret_cast<char *>(ctrlr_dom.ctrlr));
-            DELETE_IF_NOT_NULL(l_key);
-            DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
-            FREE_IF_NOT_NULL(ctrlr_dom.ctrlr);
-            FREE_IF_NOT_NULL(ctrlr_dom.domain);
-            return UPLL_RC_ERR_GENERIC;
-          }
+        //  Sending the request to driver
+        IpcResponse ipc_resp;
+        memset(&ipc_resp, 0, sizeof(IpcResponse));
+        IpcRequest ipc_req;
+        memset(&ipc_req, 0, sizeof(IpcRequest));
+        ipc_req.header.clnt_sess_id = req->clnt_sess_id;
+        ipc_req.header.config_id = req->config_id;
+        ipc_req.header.operation = UNC_OP_READ;
+        ipc_req.header.option1 = req->option1;
+        ipc_req.header.datatype = req->datatype;
+
+        ipc_req.ckv_data = l_key;
+        if (!IpcUtil::SendReqToDriver(
+                (const char *)ctrlr_dom.ctrlr,
+                reinterpret_cast<char *>(ctrlr_dom.domain),
+                PFCDRIVER_SERVICE_NAME, PFCDRIVER_SVID_LOGICAL,
+                &ipc_req, true, &ipc_resp)) {
+          UPLL_LOG_DEBUG("SendReqToDriver failed for Key %d controller %s",
+                         l_key->get_key_type(),
+                         reinterpret_cast<char *>(ctrlr_dom.ctrlr));
+          DELETE_IF_NOT_NULL(l_key);
+          DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
+          FREE_IF_NOT_NULL(ctrlr_dom.ctrlr);
+          FREE_IF_NOT_NULL(ctrlr_dom.domain);
+          return UPLL_RC_ERR_GENERIC;
+        }
 
-          if (ipc_resp.header.result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_INFO("Request for Key %d failed in %s with error %d",
-                          l_key->get_key_type(), ctrlr_dom.ctrlr,
-                          ipc_resp.header.result_code);
-            DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
-            DELETE_IF_NOT_NULL(l_key);
-            FREE_IF_NOT_NULL(ctrlr_dom.ctrlr);
-            FREE_IF_NOT_NULL(ctrlr_dom.domain);
-            return ipc_resp.header.result_code;
-          }
-          result_code = ReadControllerStateDetail(ikey,
-                                                  ipc_resp.ckv_data,
-                                                  &ctrlr_dom, &okey);
-          if (result_code!= UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("ReadControllerStateDetail Fail err code (%d)",
-                           result_code);
-            DELETE_IF_NOT_NULL(okey);
-            DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
-            DELETE_IF_NOT_NULL(l_key);
-            FREE_IF_NOT_NULL(ctrlr_dom.ctrlr);
-            FREE_IF_NOT_NULL(ctrlr_dom.domain);
-            return result_code;
-          }
+        if (ipc_resp.header.result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_INFO("Request for Key %d failed in %s with error %d",
+                        l_key->get_key_type(), ctrlr_dom.ctrlr,
+                        ipc_resp.header.result_code);
+          DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
+          DELETE_IF_NOT_NULL(l_key);
+          FREE_IF_NOT_NULL(ctrlr_dom.ctrlr);
+          FREE_IF_NOT_NULL(ctrlr_dom.domain);
+          return ipc_resp.header.result_code;
+        }
+        result_code = ReadControllerStateDetail(ikey,
+                                                ipc_resp.ckv_data,
+                                                &ctrlr_dom, &okey);
+        if (result_code!= UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("ReadControllerStateDetail Fail err code (%d)",
+                         result_code);
+          DELETE_IF_NOT_NULL(okey);
+          DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
+          DELETE_IF_NOT_NULL(l_key);
+          FREE_IF_NOT_NULL(ctrlr_dom.ctrlr);
+          FREE_IF_NOT_NULL(ctrlr_dom.domain);
+          return result_code;
+        }
         if (okey != NULL) {
           ikey->ResetWith(okey);
           DELETE_IF_NOT_NULL(okey);
@@ -2759,7 +3136,7 @@ bool VtnFlowFilterEntryMoMgr::IsValidKey(void *key,
                                          uint64_t index) {
   UPLL_FUNC_TRACE;
   key_vtn_flowfilter_entry_t *vtn_ff_key =
-    reinterpret_cast<key_vtn_flowfilter_entry_t*> (key);
+      reinterpret_cast<key_vtn_flowfilter_entry_t*> (key);
   upll_rc_t ret_val;
   switch (index) {
     case uudst::vtn_flowfilter_entry::kDbiVtnName:
@@ -2771,16 +3148,16 @@ bool VtnFlowFilterEntryMoMgr::IsValidKey(void *key,
         UPLL_LOG_DEBUG("VTN Name is not valid(%d)", ret_val);
         return false;
       }
-    break;
+      break;
     case uudst::vtn_flowfilter_entry::kDbiInputDirection:
       if (vtn_ff_key->flowfilter_key.input_direction == 0xFE) {
-        // if operation is read sibling begin or
-        // read sibling count return false
-        // for output binding
+        //  if operation is read sibling begin or
+        //  read sibling count return false
+        //  for output binding
         vtn_ff_key->flowfilter_key.input_direction = 0;
         return false;
       } else {
-        // do normal validation.
+        //  do normal validation.
         if (!ValidateNumericRange(vtn_ff_key->flowfilter_key.input_direction,
                                   (uint8_t) UPLL_FLOWFILTER_DIR_IN,
                                   (uint8_t) UPLL_FLOWFILTER_DIR_OUT,
@@ -2789,15 +3166,16 @@ bool VtnFlowFilterEntryMoMgr::IsValidKey(void *key,
           return false;
         }
       }
-    break;
+      break;
     case uudst::vtn_flowfilter_entry::kDbiSequenceNum:
       if (!ValidateNumericRange(vtn_ff_key->sequence_num,
-                            kMinFlowFilterSeqNum, kMaxFlowFilterSeqNum, true,
-                            true)) {
-         UPLL_LOG_DEBUG(" Sequence Number syntax validation failed ");
-         return false;
-     }
-     break;
+                                kMinFlowFilterSeqNum, kMaxFlowFilterSeqNum,
+                                true,
+                                true)) {
+        UPLL_LOG_DEBUG(" Sequence Number syntax validation failed ");
+        return false;
+      }
+      break;
   }
   return true;
 }
@@ -2809,34 +3187,37 @@ bool VtnFlowFilterEntryMoMgr::CompareKey(void *key1, void *key2) {
   key1_vtn_flowfilter = reinterpret_cast<key_vtn_flowfilter_entry_t*>(key1);
   key2_vtn_flowfilter = reinterpret_cast<key_vtn_flowfilter_entry_t *>(key2);
   if (key1_vtn_flowfilter == key2_vtn_flowfilter) {
-  match =true;
+    match =true;
   }
   if ((!key1_vtn_flowfilter) || (!key2_vtn_flowfilter)) {
-  match = false;
-  } else {  // COV FORWARD NULL
-  if (strncmp(reinterpret_cast<const char *>
-             (key1_vtn_flowfilter->flowfilter_key.vtn_key.vtn_name),
-              reinterpret_cast<const char *>
-                         (key2_vtn_flowfilter->flowfilter_key.vtn_key.vtn_name),
-              32) == 0) {
-    match =true;
+    match = false;
+  } else {  //  COV FORWARD NULL
+    if (strncmp(reinterpret_cast<const char *>
+                (key1_vtn_flowfilter->flowfilter_key.vtn_key.vtn_name),
+                reinterpret_cast<const char *>
+                (key2_vtn_flowfilter->flowfilter_key.vtn_key.vtn_name),
+                32) == 0) {
+      match =true;
     }
   }
   return match;
 }
 
-upll_rc_t VtnFlowFilterEntryMoMgr::TxUpdateProcess(ConfigKeyVal *ck_main,
-                                               IpcResponse *ipc_resp,
-                                               unc_keytype_operation_t op,
-                                               DalDmlIntf *dmi,
-                                               controller_domain *ctrlr_dom) {
+upll_rc_t VtnFlowFilterEntryMoMgr::TxUpdateProcess(
+    ConfigKeyVal *ck_main,
+    IpcResponse *ipc_resp,
+    unc_keytype_operation_t op,
+    DalDmlIntf *dmi,
+    controller_domain *ctrlr_dom,
+    set<string> *affected_ctrlr_set,
+    bool *driver_resp) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code;
-/* read from main table */
+  /* read from main table */
   ConfigKeyVal *dup_ckmain = NULL;
 
   UPLL_LOG_DEBUG("ctrlr : %s; domain : %s op = %d", ctrlr_dom->ctrlr,
-                     ctrlr_dom->domain, op);
+                 ctrlr_dom->domain, op);
   if (op == UNC_OP_CREATE) {
     result_code = GetChildConfigKey(dup_ckmain, ck_main);
     if (result_code != UPLL_RC_SUCCESS) {
@@ -2848,28 +3229,27 @@ upll_rc_t VtnFlowFilterEntryMoMgr::TxUpdateProcess(ConfigKeyVal *ck_main,
                                UNC_OP_READ, dbop, dmi, MAINTBL);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_TRACE("%s Flowfilter entry read failed err %d",
-                    dup_ckmain->ToStrAll().c_str(), result_code);
+                     dup_ckmain->ToStrAll().c_str(), result_code);
       DELETE_IF_NOT_NULL(dup_ckmain);
       return result_code;
     }
   } else if (op == UNC_OP_UPDATE) {
-
-      result_code = DupConfigKeyVal(dup_ckmain, ck_main, MAINTBL);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("DupConfigkeyval Failed, err %d", result_code);
-        return result_code;
-      }
+    result_code = DupConfigKeyVal(dup_ckmain, ck_main, MAINTBL);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("DupConfigkeyval Failed, err %d", result_code);
+      return result_code;
+    }
   } else {
-      dup_ckmain = ck_main;
+    dup_ckmain = ck_main;
   }
 
   /* Get renamed key if key is renamed */
   if (op == UNC_OP_DELETE)
     result_code = GetRenamedControllerKey(dup_ckmain, UPLL_DT_RUNNING,
-                                              dmi, ctrlr_dom);
+                                          dmi, ctrlr_dom);
   else
     result_code = GetRenamedControllerKey(dup_ckmain, UPLL_DT_CANDIDATE,
-                                         dmi, ctrlr_dom);
+                                          dmi, ctrlr_dom);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("GetRenamedControllerKey failed, err %d", result_code);
     if (op == UNC_OP_UPDATE || op == UNC_OP_CREATE) {
@@ -2880,16 +3260,19 @@ upll_rc_t VtnFlowFilterEntryMoMgr::TxUpdateProcess(ConfigKeyVal *ck_main,
   result_code = SendIpcReq(ipc_resp->header.clnt_sess_id,
                            ipc_resp->header.config_id, op, UPLL_DT_CANDIDATE,
                            dup_ckmain, ctrlr_dom, ipc_resp);
-  if (result_code == UPLL_RC_ERR_RESOURCE_DISCONNECTED) {
+  if (result_code == UPLL_RC_ERR_CTR_DISCONNECTED) {
     UPLL_LOG_DEBUG("Controller disconnected");
     result_code = UPLL_RC_SUCCESS;
   }
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("IpcSend failed %d", result_code);
+    *driver_resp = true;
   }
+  affected_ctrlr_set->insert((const char *)ctrlr_dom->ctrlr);
   if (op == UNC_OP_UPDATE || op == UNC_OP_CREATE) {
-      DELETE_IF_NOT_NULL(dup_ckmain);
+    DELETE_IF_NOT_NULL(dup_ckmain);
   }
+  UPLL_LOG_TRACE("Driver response received %d", *driver_resp);
   return result_code;
 }
 
@@ -2906,14 +3289,14 @@ upll_rc_t VtnFlowFilterEntryMoMgr::TxUpdateController(
   controller_domain ctrlr_dom;
   ctrlr_dom.ctrlr = NULL;
   ctrlr_dom.domain = NULL;
-  DalCursor *dal_cursor_handle;
+  DalCursor *dal_cursor_handle = NULL;
   IpcResponse resp;
   memset(&resp, 0, sizeof(IpcResponse));
 
   unc_keytype_operation_t op = (phase == uuc::kUpllUcpCreate) ? UNC_OP_CREATE :
       ((phase == uuc::kUpllUcpUpdate) ? UNC_OP_UPDATE :
        ((phase == uuc::kUpllUcpDelete) ?UNC_OP_DELETE:UNC_OP_INVALID));
+
   switch (op) {
     case UNC_OP_CREATE:
     case UNC_OP_DELETE:
@@ -2936,11 +3319,12 @@ upll_rc_t VtnFlowFilterEntryMoMgr::TxUpdateController(
     if (result_code != UPLL_RC_SUCCESS)
       break;
     ck_main = NULL;
+    bool driver_resp = false;
     if ((op == UNC_OP_CREATE) || (op == UNC_OP_DELETE)) {
       result_code = GetChildConfigKey(ck_main, req);
       if (result_code != UPLL_RC_SUCCESS) {
-         UPLL_LOG_DEBUG("GetChildConfiKey Failed, err %d", result_code);
-         return result_code;
+        UPLL_LOG_DEBUG("GetChildConfiKey Failed, err %d", result_code);
+        return result_code;
       }
       GET_USER_DATA_CTRLR_DOMAIN(req, ctrlr_dom);
       UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom.ctrlr,
@@ -2950,14 +3334,19 @@ upll_rc_t VtnFlowFilterEntryMoMgr::TxUpdateController(
         DELETE_IF_NOT_NULL(ck_main);
         return UPLL_RC_ERR_GENERIC;
       }
-      result_code = TxUpdateProcess(ck_main, &resp,
-                                    op, dmi, &ctrlr_dom);
-      if (result_code != UPLL_RC_SUCCESS) {
+      result_code = TxUpdateProcess(ck_main,
+                                    &resp,
+                                    op,
+                                    dmi,
+                                    &ctrlr_dom,
+                                    affected_ctrlr_set,
+                                    &driver_resp);
+      if (result_code != UPLL_RC_SUCCESS && driver_resp) {
         UPLL_LOG_DEBUG("TxUpdateProcess Returns error %d", result_code);
         upll_keytype_datatype_t dt_type = (UNC_OP_DELETE == op)?
             UPLL_DT_RUNNING:UPLL_DT_CANDIDATE;
         upll_rc_t local_rc = GetRenamedUncKey(resp.ckv_data, dt_type, dmi,
-                                       ctrlr_dom.ctrlr);
+                                              ctrlr_dom.ctrlr);
         if (UPLL_RC_SUCCESS != local_rc &&
             UPLL_RC_ERR_NO_SUCH_INSTANCE != local_rc) {
           UPLL_LOG_DEBUG("GetRenamedUncKey failed %d", local_rc);
@@ -2966,12 +3355,16 @@ upll_rc_t VtnFlowFilterEntryMoMgr::TxUpdateController(
           result_code = UPLL_RC_ERR_GENERIC;
           break;
         }
+        SET_USER_DATA_CTRLR(resp.ckv_data, ctrlr_dom.ctrlr);
         *err_ckv = resp.ckv_data;
         DELETE_IF_NOT_NULL(ck_main);
         break;
+      } else if (result_code != UPLL_RC_SUCCESS) {
+        DELETE_IF_NOT_NULL(ck_main);
+        DELETE_IF_NOT_NULL(resp.ckv_data);
+        break;
       }
       DELETE_IF_NOT_NULL(resp.ckv_data);
-      affected_ctrlr_set->insert((const char *)ctrlr_dom.ctrlr);
     } else if (op == UNC_OP_UPDATE) {
       ConfigKeyVal *ck_ctrlr = NULL;
       result_code = DupConfigKeyVal(ck_main, req, MAINTBL);
@@ -2993,6 +3386,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::TxUpdateController(
       CompareValidValue(main, val_nrec, false);
       for (ConfigKeyVal *tmp = ck_ctrlr; tmp != NULL;
            tmp = tmp->get_next_cfg_key_val()) {
+        driver_resp = false;
         GET_USER_DATA_CTRLR_DOMAIN(tmp, ctrlr_dom);
         if (ctrlr_dom.ctrlr == NULL || (ctrlr_dom.domain == NULL)) {
           UPLL_LOG_DEBUG("Invalid controller");
@@ -3008,21 +3402,28 @@ upll_rc_t VtnFlowFilterEntryMoMgr::TxUpdateController(
           DELETE_IF_NOT_NULL(ck_main);
           return result_code;
         }
-        result_code = TxUpdateProcess(ck_main, &resp, op, dmi, &ctrlr_dom);
-        if (result_code != UPLL_RC_SUCCESS) {
+        result_code = TxUpdateProcess(ck_main, &resp, op, dmi, &ctrlr_dom,
+                                      affected_ctrlr_set, &driver_resp);
+        if (result_code != UPLL_RC_SUCCESS && driver_resp) {
           UPLL_LOG_DEBUG("TxUpdate Process returns with %d", result_code);
           *err_ckv = temp_ck_main;
           DELETE_IF_NOT_NULL(resp.ckv_data);
           DELETE_IF_NOT_NULL(ck_main);
           DELETE_IF_NOT_NULL(ck_ctrlr);
           break;
+        } else if (result_code != UPLL_RC_SUCCESS) {
+          DELETE_IF_NOT_NULL(resp.ckv_data);
+          DELETE_IF_NOT_NULL(temp_ck_main);
+          DELETE_IF_NOT_NULL(ck_main);
+          DELETE_IF_NOT_NULL(ck_ctrlr);
+          break;
         }
-        affected_ctrlr_set->insert(reinterpret_cast<const char *>
-                                   (ctrlr_dom.ctrlr));
         DELETE_IF_NOT_NULL(temp_ck_main);
         DELETE_IF_NOT_NULL(resp.ckv_data);
       }
       DELETE_IF_NOT_NULL(ck_ctrlr);
+      if (driver_resp || result_code != UPLL_RC_SUCCESS)
+        break;
     }
     DELETE_IF_NOT_NULL(ck_main);
   }
@@ -3044,42 +3445,42 @@ upll_rc_t VtnFlowFilterEntryMoMgr::GetValid(void *val,
   val_vtn_flowfilter_entry_t* l_val_ff = NULL;
   val_vtn_flowfilter_entry_ctrlr *l_val_ctrl_ff = NULL;
   if (val == NULL) {
-  UPLL_LOG_DEBUG("Value structure cannot be null");
-  return UPLL_RC_ERR_GENERIC;
+    UPLL_LOG_DEBUG("Value structure cannot be null");
+    return UPLL_RC_ERR_GENERIC;
   }
   if (tbl != MAINTBL &&  tbl != CTRLRTBL) {
     valid = NULL;
     return UPLL_RC_ERR_GENERIC;
   }
 
-    l_val_ff = reinterpret_cast
-                       <val_vtn_flowfilter_entry_t*>(val);
-    l_val_ctrl_ff = reinterpret_cast
-                       <val_vtn_flowfilter_entry_ctrlr*>(val);
-    switch (indx) {
-      case uudst::vtn_flowfilter_entry::kDbiFlowlistName:
+  l_val_ff = reinterpret_cast
+      <val_vtn_flowfilter_entry_t*>(val);
+  l_val_ctrl_ff = reinterpret_cast
+      <val_vtn_flowfilter_entry_ctrlr*>(val);
+  switch (indx) {
+    case uudst::vtn_flowfilter_entry::kDbiFlowlistName:
       valid  = GET_VALID_MAINCTRL(tbl, l_val_ctrl_ff, l_val_ff,
-                                   UPLL_IDX_FLOWLIST_NAME_VFFE);
-        break;
-      case uudst::vtn_flowfilter_entry::kDbiNwnName:
+                                  UPLL_IDX_FLOWLIST_NAME_VFFE);
+      break;
+    case uudst::vtn_flowfilter_entry::kDbiNwnName:
       valid  = GET_VALID_MAINCTRL(tbl, l_val_ctrl_ff, l_val_ff,
-                                   UPLL_IDX_NWN_NAME_VFFE);
-        break;
-      case uudst::vtn_flowfilter_entry::kDbiAction:
+                                  UPLL_IDX_NWN_NAME_VFFE);
+      break;
+    case uudst::vtn_flowfilter_entry::kDbiAction:
       valid  = GET_VALID_MAINCTRL(tbl, l_val_ctrl_ff, l_val_ff,
-                                   UPLL_IDX_ACTION_VFFE);
-        break;
-      case uudst::vtn_flowfilter_entry::kDbiDscp:
+                                  UPLL_IDX_ACTION_VFFE);
+      break;
+    case uudst::vtn_flowfilter_entry::kDbiDscp:
       valid  = GET_VALID_MAINCTRL(tbl, l_val_ctrl_ff, l_val_ff,
-                                   UPLL_IDX_DSCP_VFFE);
-        break;
-      case uudst::vtn_flowfilter_entry::kDbiPriority:
+                                  UPLL_IDX_DSCP_VFFE);
+      break;
+    case uudst::vtn_flowfilter_entry::kDbiPriority:
       valid  = GET_VALID_MAINCTRL(tbl, l_val_ctrl_ff, l_val_ff,
-                                   UPLL_IDX_PRIORITY_VFFE);
-        break;
-      default:
-        return UPLL_RC_ERR_GENERIC;
-    }
+                                  UPLL_IDX_PRIORITY_VFFE);
+      break;
+    default:
+      return UPLL_RC_ERR_GENERIC;
+  }
   return UPLL_RC_SUCCESS;
 }
 
@@ -3091,7 +3492,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::ValidateVtnFlowfilterEntryKey(
   upll_rc_t rt_code = UPLL_RC_ERR_GENERIC;
   /** Validate vtn_key structure */
   VtnMoMgr *mgrvtn = reinterpret_cast<VtnMoMgr *>(
-    const_cast<MoManager*>(GetMoManager(UNC_KT_VTN)));
+      const_cast<MoManager*>(GetMoManager(UNC_KT_VTN)));
 
   if (NULL == mgrvtn) {
     UPLL_LOG_DEBUG("unable to get VtnMoMgr object to validate key_vtn");
@@ -3103,17 +3504,18 @@ upll_rc_t VtnFlowFilterEntryMoMgr::ValidateVtnFlowfilterEntryKey(
 
   if (UPLL_RC_SUCCESS != rt_code) {
     UPLL_LOG_DEBUG(" Vtn name syntax validation failed :"
-                  "Err Code - %d",
-                  rt_code);
+                   "Err Code - %d",
+                   rt_code);
     return rt_code;
   }
 
   /* Validate inputdirection is in the range specified in
-   enum FlowFilter_Direction */
+     enum FlowFilter_Direction */
   if (!ValidateNumericRange(
-      key_vtn_flowfilter_entry->flowfilter_key.input_direction,
-      (uint8_t) UPLL_FLOWFILTER_DIR_IN, (uint8_t) UPLL_FLOWFILTER_DIR_OUT, true,
-      true)) {
+          key_vtn_flowfilter_entry->flowfilter_key.input_direction,
+          (uint8_t) UPLL_FLOWFILTER_DIR_IN, (uint8_t) UPLL_FLOWFILTER_DIR_OUT,
+          true,
+          true)) {
     UPLL_LOG_DEBUG(" input direction syntax validation failed ");
     return UPLL_RC_ERR_CFG_SYNTAX;
   }
@@ -3122,8 +3524,8 @@ upll_rc_t VtnFlowFilterEntryMoMgr::ValidateVtnFlowfilterEntryKey(
       (operation != UNC_OP_READ_SIBLING_BEGIN)) {
     /** validate seq_num */
     if (!ValidateNumericRange(key_vtn_flowfilter_entry->sequence_num,
-                            kMinFlowFilterSeqNum, kMaxFlowFilterSeqNum, true,
-                            true)) {
+                              kMinFlowFilterSeqNum, kMaxFlowFilterSeqNum, true,
+                              true)) {
       UPLL_LOG_DEBUG(" Sequence Number syntax validation failed ");
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
@@ -3167,7 +3569,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::ValidateVtnFlowfilterEntryValue(
              sizeof(val_vtn_flowfilter_entry->flowlist_name));
     }
 
-#if 0 // action_field_notconfigured is set, but not used
+#if 0  //  action_field_notconfigured is set, but not used
     bool action_field_notconfigured = true;
 #endif
 
@@ -3178,7 +3580,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::ValidateVtnFlowfilterEntryValue(
                        val_vtn_flowfilter_entry->action);
         return UPLL_RC_ERR_CFG_SYNTAX;
       }
-#if 0 // action_field_notconfigured is set, but not used
+#if 0  //  action_field_notconfigured is set, but not used
       action_field_notconfigured = false;
 #endif
     } else if ((val_vtn_flowfilter_entry->valid[UPLL_IDX_ACTION_VFFE]
@@ -3234,7 +3636,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::ValidateVtnFlowfilterEntryValue(
       if ((val_vtn_ffe->valid[UPLL_IDX_ACTION_VFFE] == UNC_VF_VALID) &&
           (val_vtn_ffe->action == UPLL_FLOWFILTER_ACT_PASS)) {
         UPLL_LOG_TRACE("Action is configured in DB with value as PASS");
-#if 0 // action_field_notconfigured is set, but not used
+#if 0  //  action_field_notconfigured is set, but not used
         action_field_notconfigured = false;
 #endif
       }
@@ -3302,7 +3704,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::ValidateVtnFlowfilterEntryValue(
       UPLL_LOG_TRACE("Reset Prirority");
       val_vtn_flowfilter_entry->priority = 0;
     }
-  }  // end val_vtn_flowfilter_entry != NULL
+  }  //  end val_vtn_flowfilter_entry != NULL
   return UPLL_RC_SUCCESS;
 }
 
@@ -3312,12 +3714,12 @@ upll_rc_t VtnFlowFilterEntryMoMgr::ValVtnFlowfilterEntryAttributeSupportCheck(
   UPLL_FUNC_TRACE;
 
   if ((val_vtn_flowfilter_entry->valid[UPLL_IDX_FLOWLIST_NAME_VFFE]
-        == UNC_VF_VALID)
+       == UNC_VF_VALID)
       || (val_vtn_flowfilter_entry->valid[UPLL_IDX_FLOWLIST_NAME_VFFE]
-        == UNC_VF_VALID_NO_VALUE)) {
+          == UNC_VF_VALID_NO_VALUE)) {
     if (attrs[unc::capa::vtn_flowfilter_entry::kCapFlowlistName] == 0) {
       val_vtn_flowfilter_entry->valid[UPLL_IDX_FLOWLIST_NAME_VFFE] =
-        UNC_VF_NOT_SUPPORTED;
+          UNC_VF_NOT_SUPPORTED;
 
       UPLL_LOG_DEBUG("FlowlistName attr is not supported by ctrlr");
     }
@@ -3325,43 +3727,43 @@ upll_rc_t VtnFlowFilterEntryMoMgr::ValVtnFlowfilterEntryAttributeSupportCheck(
 
   if ((val_vtn_flowfilter_entry->valid[UPLL_IDX_ACTION_VFFE] == UNC_VF_VALID)
       || (val_vtn_flowfilter_entry->valid[UPLL_IDX_ACTION_VFFE]
-        == UNC_VF_VALID_NO_VALUE)) {
+          == UNC_VF_VALID_NO_VALUE)) {
     if (attrs[unc::capa::vtn_flowfilter_entry::kCapAction] == 0) {
       val_vtn_flowfilter_entry->valid[UPLL_IDX_ACTION_VFFE] =
-        UNC_VF_NOT_SUPPORTED;
+          UNC_VF_NOT_SUPPORTED;
 
       UPLL_LOG_DEBUG("Action attr is not supported by ctrlr");
     }
   }
   if ((val_vtn_flowfilter_entry->valid[UPLL_IDX_NWN_NAME_VFFE] ==
-        UNC_VF_VALID)
+       UNC_VF_VALID)
       || (val_vtn_flowfilter_entry->valid[UPLL_IDX_NWN_NAME_VFFE]
-        == UNC_VF_VALID_NO_VALUE)) {
+          == UNC_VF_VALID_NO_VALUE)) {
     if (attrs[unc::capa::vtn_flowfilter_entry::kCapNwnName] == 0) {
       val_vtn_flowfilter_entry->valid[UPLL_IDX_NWN_NAME_VFFE] =
-        UNC_VF_NOT_SUPPORTED;
+          UNC_VF_NOT_SUPPORTED;
 
       UPLL_LOG_DEBUG("Nwm name attr is not supported by ctrlr");
     }
   }
   if ((val_vtn_flowfilter_entry->valid[UPLL_IDX_DSCP_VFFE] == UNC_VF_VALID)
       || (val_vtn_flowfilter_entry->valid[UPLL_IDX_DSCP_VFFE]
-        == UNC_VF_VALID_NO_VALUE)) {
+          == UNC_VF_VALID_NO_VALUE)) {
     if (attrs[unc::capa::vtn_flowfilter_entry::kCapDscp] == 0) {
       val_vtn_flowfilter_entry->valid[UPLL_IDX_DSCP_VFFE] =
-        UNC_VF_NOT_SUPPORTED;
+          UNC_VF_NOT_SUPPORTED;
 
       UPLL_LOG_DEBUG("Dscp attr is not supported by ctrlr");
     }
   }
 
   if ((val_vtn_flowfilter_entry->valid[UPLL_IDX_PRIORITY_VFFE] ==
-        UNC_VF_VALID)
+       UNC_VF_VALID)
       || (val_vtn_flowfilter_entry->valid[UPLL_IDX_PRIORITY_VFFE]
-        == UNC_VF_VALID_NO_VALUE)) {
+          == UNC_VF_VALID_NO_VALUE)) {
     if (attrs[unc::capa::vtn_flowfilter_entry::kCapPriority] == 0) {
       val_vtn_flowfilter_entry->valid[UPLL_IDX_PRIORITY_VFFE] =
-        UNC_VF_NOT_SUPPORTED;
+          UNC_VF_NOT_SUPPORTED;
 
       UPLL_LOG_DEBUG("Priority attr is not supported by ctrlr");
     }
@@ -3376,17 +3778,17 @@ bool VtnFlowFilterEntryMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type,
   /* Main Table only update */
   if (MAINTBL == tbl) {
     nattr = sizeof(vtnflowfilterentrymaintbl_bind_info)/
-            sizeof(vtnflowfilterentrymaintbl_bind_info[0]);
+        sizeof(vtnflowfilterentrymaintbl_bind_info[0]);
     binfo = vtnflowfilterentrymaintbl_bind_info;
   } else if (CTRLRTBL == tbl) {
     nattr = sizeof(vtnflowfilterentryctrlrtbl_bind_info)/
-            sizeof(vtnflowfilterentryctrlrtbl_bind_info[0]);
+        sizeof(vtnflowfilterentryctrlrtbl_bind_info[0]);
     binfo = vtnflowfilterentryctrlrtbl_bind_info;
   } else {
     UPLL_LOG_DEBUG("Invalid Table, table type %d", tbl);
     return PFC_FALSE;
   }
-    
+
   UPLL_LOG_DEBUG("Successful Completeion");
   return PFC_TRUE;
 }
@@ -3418,7 +3820,7 @@ upll_rc_t  VtnFlowFilterEntryMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
   key_vtn->flowfilter_key.input_direction = 0xFE;
 
   okey = new ConfigKeyVal(UNC_KT_VTN_FLOWFILTER_ENTRY, IpctSt::
-                            kIpcStKeyVtnFlowfilterEntry, key_vtn, NULL);
+                          kIpcStKeyVtnFlowfilterEntry, key_vtn, NULL);
   if (!okey) {
     FREE_IF_NOT_NULL(key_vtn);
     return UPLL_RC_ERR_GENERIC;
@@ -3426,29 +3828,30 @@ upll_rc_t  VtnFlowFilterEntryMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
   return result_code;
 }
 
-upll_rc_t VtnFlowFilterEntryMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
-                                              DalDmlIntf *dmi,
-                                             upll_keytype_datatype_t data_type,
-                                              bool &no_rename) {
+upll_rc_t VtnFlowFilterEntryMoMgr::UpdateVnodeVal(
+    ConfigKeyVal *ikey,
+    DalDmlIntf *dmi,
+    upll_keytype_datatype_t data_type,
+    bool &no_rename) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *okey = NULL;
   ConfigKeyVal *kval = NULL;
   ConfigKeyVal *ckey = NULL;
   ConfigKeyVal *ctrlr_val = NULL;
-  // key_vtn_flowfilter_entry_t *vtn_ffe_key = NULL;
+  //  key_vtn_flowfilter_entry_t *vtn_ffe_key = NULL;
   controller_domain ctrlr_dom;
   ctrlr_dom.ctrlr = NULL;
   ctrlr_dom.domain = NULL;
   uint8_t rename = 0;
 
   key_rename_vnode_info_t *key_rename =
-  reinterpret_cast<key_rename_vnode_info_t *>(ikey->get_key());
+      reinterpret_cast<key_rename_vnode_info_t *>(ikey->get_key());
 
-  // Copy the old flowlist name in val_vtn_flowfilter_entry
+  //  Copy the old flowlist name in val_vtn_flowfilter_entry
   val_vtn_flowfilter_entry_t *val =
-              reinterpret_cast<val_vtn_flowfilter_entry_t *>
-              (ConfigKeyVal::Malloc(sizeof(val_vtn_flowfilter_entry_t)));
+      reinterpret_cast<val_vtn_flowfilter_entry_t *>
+      (ConfigKeyVal::Malloc(sizeof(val_vtn_flowfilter_entry_t)));
   if (!strlen(reinterpret_cast<char *>(key_rename->old_flowlist_name))) {
     if (val) free(val);
     return UPLL_RC_ERR_GENERIC;
@@ -3464,23 +3867,25 @@ upll_rc_t VtnFlowFilterEntryMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
   }
 
   uuu::upll_strncpy(val->flowlist_name,
-      key_rename->old_flowlist_name,
-      (kMaxLenFlowListName + 1));
+                    key_rename->old_flowlist_name,
+                    (kMaxLenFlowListName + 1));
   val->valid[UPLL_IDX_FLOWLIST_NAME_VFFE] = UNC_VF_VALID;
   UPLL_LOG_DEBUG("FlowList name and valid (%d) (%s)",
-                  val->valid[UPLL_IDX_FLOWLIST_NAME_VFFE], val->flowlist_name);
+                 val->valid[UPLL_IDX_FLOWLIST_NAME_VFFE], val->flowlist_name);
 
-  // Construct ConfigKeyVal
-//  ConfigVal *cval = new ConfigVal(IpctSt::kIpcStKeyVtnFlowfilterEntry, val);
-  okey->SetCfgVal(new ConfigVal (IpctSt::kIpcStValVtnFlowfilterEntry, val));
+  //  Construct ConfigKeyVal
+  //   ConfigVal *cval = new ConfigVal(IpctSt::kIpcStKeyVtnFlowfilterEntry,
+  //   val);
+  okey->SetCfgVal(new ConfigVal(IpctSt::kIpcStValVtnFlowfilterEntry, val));
 
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutFlag };
 #if 0
-  vtn_ffe_key = reinterpret_cast<key_vtn_flowfilter_entry_t*>(okey->get_key());
+  vtn_ffe_key = reinterpret_cast<key_vtn_flowfilter_entry_t*>
+      (okey->get_key());
 
   vtn_ffe_key->flowfilter_key.input_direction = 0xFE;
 #endif
-  // Read the record of key structure and old Flowlist name in maintbl
+  //  Read the record of key structure and old Flowlist name in maintbl
   result_code = ReadConfigDB(okey, data_type, UNC_OP_READ, dbop, dmi,
                              MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
@@ -3490,7 +3895,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
   }
   ConfigKeyVal *tmp_okey = okey;
   while (okey != NULL) {
-    // Update the new flowlist name in MAINTBL
+    //  Update the new flowlist name in MAINTBL
     result_code = GetChildConfigKey(kval, okey);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("GetChildConfigKey kval NULL");
@@ -3498,11 +3903,12 @@ upll_rc_t VtnFlowFilterEntryMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
       return result_code;
     }
     if (!kval) return UPLL_RC_ERR_GENERIC;
-    // Copy the new flowlist in val structure
-    val_vtn_flowfilter_entry_t *val1 = reinterpret_cast<val_vtn_flowfilter_entry_t *>
-                              (ConfigKeyVal::Malloc
-                               (sizeof(val_vtn_flowfilter_entry_t)));
-    // New name null check
+    //  Copy the new flowlist in val structure
+    val_vtn_flowfilter_entry_t *val1 = reinterpret_cast
+        <val_vtn_flowfilter_entry_t *>
+        (ConfigKeyVal::Malloc
+         (sizeof(val_vtn_flowfilter_entry_t)));
+    //  New name null check
     if (!strlen(reinterpret_cast<char *>(key_rename->new_flowlist_name))) {
       UPLL_LOG_DEBUG("new_flowlist_name NULL");
       FREE_IF_NOT_NULL(val1);
@@ -3510,18 +3916,20 @@ upll_rc_t VtnFlowFilterEntryMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
       DELETE_IF_NOT_NULL(kval);
       return UPLL_RC_ERR_GENERIC;
     }
-    // Copy the new flowlist name into val_vtn_flowfilter_entry
+    //  Copy the new flowlist name into val_vtn_flowfilter_entry
     uuu::upll_strncpy(val1->flowlist_name,
-      key_rename->new_flowlist_name,
-      (kMaxLenPolicingProfileName + 1));
+                      key_rename->new_flowlist_name,
+                      (kMaxLenPolicingProfileName + 1));
     val1->valid[UPLL_IDX_FLOWLIST_NAME_VFFE] = UNC_VF_VALID;
     UPLL_LOG_DEBUG("flowlist name and valid (%d) (%s)",
-                    val1->valid[UPLL_IDX_FLOWLIST_NAME_VFFE], val1->flowlist_name);
-    ConfigVal *cval1 = new ConfigVal(IpctSt::kIpcStValVtnFlowfilterEntry, val1);
+                   val1->valid[UPLL_IDX_FLOWLIST_NAME_VFFE],
+                   val1->flowlist_name);
+    ConfigVal *cval1 = new ConfigVal(IpctSt::kIpcStValVtnFlowfilterEntry,
+                                     val1);
 
     kval->SetCfgVal(cval1);
 
-    //GET_USER_DATA_CTRLR_DOMAIN(okey, ctrlr_dom);
+    // GET_USER_DATA_CTRLR_DOMAIN(okey, ctrlr_dom);
     GET_USER_DATA_FLAGS(okey, rename);
 
     if (!no_rename)
@@ -3530,91 +3938,97 @@ upll_rc_t VtnFlowFilterEntryMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
       rename = rename & NO_FLOWLIST_RENAME;
 
     SET_USER_DATA_FLAGS(kval, rename);
-    //SET_USER_DATA_CTRLR_DOMAIN(kval, ctrlr_dom);
-    // Update the new flowlist name  in MAINTBL
-  result_code = UpdateConfigDB(kval, data_type, UNC_OP_UPDATE, dmi,
-                  MAINTBL);
-  if (UPLL_RC_SUCCESS != result_code) {
+    // SET_USER_DATA_CTRLR_DOMAIN(kval, ctrlr_dom);
+    //  Update the new flowlist name  in MAINTBL
+    result_code = UpdateConfigDB(kval, data_type, UNC_OP_UPDATE, dmi,
+                                 MAINTBL);
+    if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("Update record Err in vtnff entry tbl CANDIDATE DB(%d)",
-        result_code);
+                     result_code);
       DELETE_IF_NOT_NULL(okey);
       DELETE_IF_NOT_NULL(kval);
       return result_code;
     }
 
-// Get the momory alloctaed vtn key structure
-  VtnMoMgr *vtnmgr =
-    static_cast<VtnMoMgr *>((const_cast<MoManager *>
-          (GetMoManager(UNC_KT_VTN))));
-  result_code = vtnmgr->GetChildConfigKey(ckey, NULL);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("UpdateRefCountInPPCtrlr GetChildConfigKey error (%d)",
-        result_code);
-    DELETE_IF_NOT_NULL(okey);
-    DELETE_IF_NOT_NULL(kval);
-    return result_code;
-  }
-  if (!ckey) return UPLL_RC_ERR_GENERIC;
-
-  key_vtn_t *vtn_okey = reinterpret_cast<key_vtn_t *>(ckey->get_key());
-  key_vtn_flowfilter_entry *vtn_ikey = reinterpret_cast<key_vtn_flowfilter_entry *>(okey->get_key());
-  uuu::upll_strncpy(vtn_okey->vtn_name, vtn_ikey->flowfilter_key.vtn_key.vtn_name,
-      kMaxLenVtnName+1);
-
-  UPLL_LOG_DEBUG("vtn name ckey (%s) okey (%s)", vtn_okey->vtn_name, vtn_ikey->flowfilter_key.vtn_key.vtn_name);
-  result_code = vtnmgr->GetControllerDomainSpan(ckey, data_type, dmi);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("GetControllerSpan  no instance/error (%d)", result_code);
-    if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+    //  Get the momory alloctaed vtn key structure
+    VtnMoMgr *vtnmgr =
+        static_cast<VtnMoMgr *>((const_cast<MoManager *>
+                                 (GetMoManager(UNC_KT_VTN))));
+    result_code = vtnmgr->GetChildConfigKey(ckey, NULL);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("UpdateRefCountInPPCtrlr GetChildConfigKey error (%d)",
+                     result_code);
       DELETE_IF_NOT_NULL(okey);
       DELETE_IF_NOT_NULL(kval);
-      DELETE_IF_NOT_NULL(ckey);
       return result_code;
     }
-    DELETE_IF_NOT_NULL(kval);
-    DELETE_IF_NOT_NULL(ckey);
-    continue;
-  }
-    
-  //Update Rename flag in the controller span
-  ConfigKeyVal *tmp_ckey = ckey;
-  while (ckey != NULL) {
-    GET_USER_DATA_CTRLR_DOMAIN(ckey, ctrlr_dom);
-
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom.ctrlr,
-                    ctrlr_dom.domain);
+    if (!ckey) return UPLL_RC_ERR_GENERIC;
 
-    result_code = GetChildConfigKey(ctrlr_val, okey);
-    if (result_code != UPLL_RC_SUCCESS)
-     return result_code;
+    key_vtn_t *vtn_okey = reinterpret_cast<key_vtn_t *>(ckey->get_key());
+    key_vtn_flowfilter_entry *vtn_ikey = reinterpret_cast
+        <key_vtn_flowfilter_entry *>(okey->get_key());
+    uuu::upll_strncpy(vtn_okey->vtn_name, vtn_ikey->
+                      flowfilter_key.vtn_key.vtn_name,
+                      kMaxLenVtnName+1);
 
-    val_vtn_flowfilter_entry_ctrlr  *vtnffe_ctrlr_val =
-        reinterpret_cast<val_vtn_flowfilter_entry_ctrlr *>
-        (ConfigKeyVal::Malloc(sizeof(val_vtn_flowfilter_entry_ctrlr)));
-    // Copy the new policer name into val_vtnpolicingmap_ctrl 
-    vtnffe_ctrlr_val->valid[UPLL_IDX_FLOWLIST_NAME_VFFE] = UNC_VF_VALID;
-    ConfigVal *cval2 = new ConfigVal(IpctSt::kIpcInvalidStNum, vtnffe_ctrlr_val);
-    ctrlr_val->SetCfgVal(cval2);
-    SET_USER_DATA_CTRLR_DOMAIN(ctrlr_val, ctrlr_dom);
-    SET_USER_DATA_FLAGS(ctrlr_val, rename);
-    // Update the new policer name in CTRLTBL
-    result_code = UpdateConfigDB(ctrlr_val, data_type, UNC_OP_UPDATE, dmi,
-                  CTRLRTBL);
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("Update record Err in vtnff entry CANDIDATE DB(%d)",
-        result_code);
-      DELETE_IF_NOT_NULL(okey);
+    UPLL_LOG_DEBUG("vtn name ckey (%s) okey (%s)",
+                   vtn_okey->vtn_name,
+                   vtn_ikey->flowfilter_key.vtn_key.vtn_name);
+    result_code = vtnmgr->GetControllerDomainSpan(ckey, data_type, dmi);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("GetControllerSpan  no instance/error (%d)",
+                     result_code);
+      if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+        DELETE_IF_NOT_NULL(okey);
+        DELETE_IF_NOT_NULL(kval);
+        DELETE_IF_NOT_NULL(ckey);
+        return result_code;
+      }
       DELETE_IF_NOT_NULL(kval);
       DELETE_IF_NOT_NULL(ckey);
+      continue;
+    }
+
+    // Update Rename flag in the controller span
+    ConfigKeyVal *tmp_ckey = ckey;
+    while (ckey != NULL) {
+      GET_USER_DATA_CTRLR_DOMAIN(ckey, ctrlr_dom);
+
+      UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom.ctrlr,
+                     ctrlr_dom.domain);
+
+      result_code = GetChildConfigKey(ctrlr_val, okey);
+      if (result_code != UPLL_RC_SUCCESS)
+        return result_code;
+
+      val_vtn_flowfilter_entry_ctrlr  *vtnffe_ctrlr_val =
+          reinterpret_cast<val_vtn_flowfilter_entry_ctrlr *>
+          (ConfigKeyVal::Malloc(sizeof(val_vtn_flowfilter_entry_ctrlr)));
+      //  Copy the new policer name into val_vtnpolicingmap_ctrl
+      vtnffe_ctrlr_val->valid[UPLL_IDX_FLOWLIST_NAME_VFFE] = UNC_VF_VALID;
+      ConfigVal *cval2 = new ConfigVal(IpctSt::kIpcInvalidStNum,
+                                       vtnffe_ctrlr_val);
+      ctrlr_val->SetCfgVal(cval2);
+      SET_USER_DATA_CTRLR_DOMAIN(ctrlr_val, ctrlr_dom);
+      SET_USER_DATA_FLAGS(ctrlr_val, rename);
+      //  Update the new policer name in CTRLTBL
+      result_code = UpdateConfigDB(ctrlr_val, data_type, UNC_OP_UPDATE, dmi,
+                                   CTRLRTBL);
+      if (UPLL_RC_SUCCESS != result_code) {
+        UPLL_LOG_DEBUG("Update record Err in vtnff entry CANDIDATE DB(%d)",
+                       result_code);
+        DELETE_IF_NOT_NULL(okey);
+        DELETE_IF_NOT_NULL(kval);
+        DELETE_IF_NOT_NULL(ckey);
+        DELETE_IF_NOT_NULL(ctrlr_val);
+        return result_code;
+      }
       DELETE_IF_NOT_NULL(ctrlr_val);
-      return result_code;
+      ckey = ckey->get_next_cfg_key_val();
     }
-    DELETE_IF_NOT_NULL(ctrlr_val);
-    ckey = ckey->get_next_cfg_key_val();
-  }
-  DELETE_IF_NOT_NULL(kval);
-  DELETE_IF_NOT_NULL(tmp_ckey);
-  okey = okey->get_next_cfg_key_val();
+    DELETE_IF_NOT_NULL(kval);
+    DELETE_IF_NOT_NULL(tmp_ckey);
+    okey = okey->get_next_cfg_key_val();
   }
   DELETE_IF_NOT_NULL(tmp_okey);
   return result_code;
@@ -3629,15 +4043,15 @@ bool  VtnFlowFilterEntryMoMgr::CompareValidValue(void *&val1,
   val_vtn_flowfilter_entry_t *val_ff_entry2 =
       reinterpret_cast<val_vtn_flowfilter_entry_t *>(val2);
 
-  // if (audit) {
-    for ( unsigned int loop = 0;
-          loop < sizeof(val_ff_entry1->valid)/sizeof(val_ff_entry1->valid[0]);
-          ++loop ) {
-      if ( UNC_VF_INVALID == val_ff_entry1->valid[loop] &&
-                  UNC_VF_VALID == val_ff_entry2->valid[loop])
-        val_ff_entry1->valid[loop] = UNC_VF_VALID_NO_VALUE;
-      }
-  // }
+  //  if (audit) {
+  for ( unsigned int loop = 0;
+       loop < sizeof(val_ff_entry1->valid)/sizeof(val_ff_entry1->valid[0]);
+       ++loop ) {
+    if ( UNC_VF_INVALID == val_ff_entry1->valid[loop] &&
+        UNC_VF_VALID == val_ff_entry2->valid[loop])
+      val_ff_entry1->valid[loop] = UNC_VF_VALID_NO_VALUE;
+  }
+  //  }
 
   if (val_ff_entry1->valid[UPLL_IDX_FLOWLIST_NAME_VFFE] == UNC_VF_VALID &&
       val_ff_entry2->valid[UPLL_IDX_FLOWLIST_NAME_VFFE] == UNC_VF_VALID) {
@@ -3671,10 +4085,10 @@ bool  VtnFlowFilterEntryMoMgr::CompareValidValue(void *&val1,
       val_ff_entry1->valid[UPLL_IDX_PRIORITY_VFFE] = UNC_VF_INVALID;
   }
   for (unsigned int loop = 0;
-      loop < sizeof(val_ff_entry1->valid) / sizeof(uint8_t); ++loop) {
+       loop < sizeof(val_ff_entry1->valid) / sizeof(uint8_t); ++loop) {
     if ((UNC_VF_VALID == (uint8_t) val_ff_entry1->valid[loop]) ||
-       (UNC_VF_VALID_NO_VALUE == (uint8_t) val_ff_entry1->valid[loop]))
-        invalid_attr = false;
+        (UNC_VF_VALID_NO_VALUE == (uint8_t) val_ff_entry1->valid[loop]))
+      invalid_attr = false;
   }
   return invalid_attr;
 }
@@ -3690,15 +4104,15 @@ bool  VtnFlowFilterEntryMoMgr::CompareValidVal(void *&val1, void *val2,
   val_vtn_flowfilter_entry_t *val_ff_entry3 =
       reinterpret_cast<val_vtn_flowfilter_entry_t *>(val3);
 
-  // if (audit) {
-    for ( unsigned int loop = 0;
-          loop < sizeof(val_ff_entry1->valid)/sizeof(val_ff_entry1->valid[0]);
-          ++loop ) {
-      if ( UNC_VF_INVALID == val_ff_entry1->valid[loop] &&
-                  UNC_VF_VALID == val_ff_entry2->valid[loop])
-        val_ff_entry1->valid[loop] = UNC_VF_VALID_NO_VALUE;
-      }
-  // }
+  //  if (audit) {
+  for ( unsigned int loop = 0;
+       loop < sizeof(val_ff_entry1->valid)/sizeof(val_ff_entry1->valid[0]);
+       ++loop ) {
+    if ( UNC_VF_INVALID == val_ff_entry1->valid[loop] &&
+        UNC_VF_VALID == val_ff_entry2->valid[loop])
+      val_ff_entry1->valid[loop] = UNC_VF_VALID_NO_VALUE;
+  }
+  //  }
 
   if (val_ff_entry1->valid[UPLL_IDX_FLOWLIST_NAME_VFFE] == UNC_VF_VALID &&
       val_ff_entry2->valid[UPLL_IDX_FLOWLIST_NAME_VFFE] == UNC_VF_VALID) {
@@ -3732,10 +4146,10 @@ bool  VtnFlowFilterEntryMoMgr::CompareValidVal(void *&val1, void *val2,
       val_ff_entry1->valid[UPLL_IDX_PRIORITY_VFFE] = UNC_VF_INVALID;
   }
   for (unsigned int loop = 0;
-      loop < sizeof(val_ff_entry1->valid) / sizeof(uint8_t); ++loop) {
+       loop < sizeof(val_ff_entry1->valid) / sizeof(uint8_t); ++loop) {
     if ((UNC_VF_VALID == (uint8_t) val_ff_entry1->valid[loop]) ||
-       (UNC_VF_VALID_NO_VALUE == (uint8_t) val_ff_entry1->valid[loop]))
-        invalid_attr = false;
+        (UNC_VF_VALID_NO_VALUE == (uint8_t) val_ff_entry1->valid[loop]))
+      invalid_attr = false;
   }
   return invalid_attr;
 }
@@ -3797,21 +4211,21 @@ upll_rc_t VtnFlowFilterEntryMoMgr::ReadSiblingFlowFilterController(
       key_vtn_ff_ctrl->vtn_key.vtn_name,
       (kMaxLenVtnName +1));
   key_ctrl->flowfilter_key.input_direction = 0xFE;
-  // vtn is not configured in vtn_ff_entry main tbl
-  // only vtn/vbr is configured and commited
+  //  vtn is not configured in vtn_ff_entry main tbl
+  //  only vtn/vbr is configured and commited
   result_code = UpdateConfigDB(dup_ckmain, req->datatype,
                                UNC_OP_READ, dmi, &dbop1, MAINTBL);
   if (result_code != UPLL_RC_ERR_INSTANCE_EXISTS) {
     UPLL_LOG_DEBUG("Requested Vtn is Not Configured in"
-           "flowfilterEntryMain Table in Candidate %d", result_code);
+                   "flowfilterEntryMain Table in Candidate %d", result_code);
     DELETE_IF_NOT_NULL(dup_ckmain);
     return result_code;
   }
-  // vtn is not configured in vtn_ff_entry ctrlr tbl
-  // vtn/ff/entry is configured but no vbr is configured
+  //  vtn is not configured in vtn_ff_entry ctrlr tbl
+  //  vtn/ff/entry is configured but no vbr is configured
 
-  // Setting direction again to 0XFE 
-  // because it will be set to 0 in updateconfigDB
+  //  Setting direction again to 0XFE
+  //  because it will be set to 0 in updateconfigDB
   key_ctrl->flowfilter_key.input_direction = 0xFE;
   result_code = UpdateConfigDB(dup_ckmain, req->datatype,
                                UNC_OP_READ, dmi, &dbop1, CTRLRTBL);
@@ -3862,10 +4276,10 @@ upll_rc_t  VtnFlowFilterEntryMoMgr::ReadSiblingControllerStateNormal(
   ConfigKeyVal *tctrl_key = NULL, *okey = NULL, *tmp_key = NULL;
   ConfigKeyVal* tmp_okey = NULL;
   controller_domain ctrlr_dom, tmp_ctrlr_dom;
-  // ReadSibling Operation Get The Multiple Key
+  //  ReadSibling Operation Get The Multiple Key
   key_vtn_flowfilter_controller_t *key_vtn_ff_ctrl =
       reinterpret_cast<key_vtn_flowfilter_controller_t*>(ikey->get_key());
-  // Extracting The VAl of KT_VTN_FF_Ctrl
+  //  Extracting The VAl of KT_VTN_FF_Ctrl
   val_flowfilter_controller_t* val_ff_ctrl =
       reinterpret_cast<val_flowfilter_controller_t*>(GetVal(ikey));
 
@@ -3880,7 +4294,7 @@ upll_rc_t  VtnFlowFilterEntryMoMgr::ReadSiblingControllerStateNormal(
                     (kMaxLenVtnName +1));
   uuu::upll_strncpy(ctrlr_dom.domain, key_vtn_ff_ctrl->domain_id,
                     (kMaxLenVtnName +1));
-  // Allocating The Key of KT_VTN_FF_Entry
+  //  Allocating The Key of KT_VTN_FF_Entry
   if (req->operation == UNC_OP_READ_SIBLING) {
     std::list<controller_domain_t> list_ctrlr_dom;
     vtn_ctrlr_span_rt_code = GetVtnControllerSpan(ikey, req->datatype, dmi,
@@ -3898,16 +4312,16 @@ upll_rc_t  VtnFlowFilterEntryMoMgr::ReadSiblingControllerStateNormal(
                              reinterpret_cast<const char *>(it->ctrlr));
       int dom_len =  strcmp((const char*)(ctrlr_dom.domain),
                             reinterpret_cast<const char *>(it->domain));
-      if ((ctrl_len < 0) || ((ctrl_len == 0) && (dom_len < 0))) { 
-
+      if ((ctrl_len < 0) || ((ctrl_len == 0) && (dom_len < 0))) {
         key_vtn_flowfilter_entry_t *key_vtn_ffe_ctrl =
             reinterpret_cast <key_vtn_flowfilter_entry_t*>
             (ConfigKeyVal::Malloc(sizeof(key_vtn_flowfilter_entry_t)));
-        // Allocating CKV tctrl_key
+        //  Allocating CKV tctrl_key
         tctrl_key = new ConfigKeyVal(UNC_KT_VTN_FLOWFILTER_ENTRY,
                                      IpctSt::kIpcStKeyVtnFlowfilterEntry,
                                      key_vtn_ffe_ctrl, NULL);
-        // Copying The seqno, i/p dir, Vtn_Name to The Above Key of CKV tctrl_key
+        //  Copying The seqno, i/p dir, Vtn_Name to The Above Key of
+        //  CKV tctrl_key
         uuu::upll_strncpy(key_vtn_ffe_ctrl->flowfilter_key.vtn_key.vtn_name,
                           key_vtn_ff_ctrl->vtn_key.vtn_name,
                           (kMaxLenVtnName +1));
@@ -3917,15 +4331,24 @@ upll_rc_t  VtnFlowFilterEntryMoMgr::ReadSiblingControllerStateNormal(
           key_vtn_ffe_ctrl->sequence_num = 0;
         }
         if (val_ff_ctrl->valid[UPLL_IDX_DIRECTION_FFC] == UNC_VF_VALID) {
-          key_vtn_ffe_ctrl->flowfilter_key.input_direction = val_ff_ctrl->direction;
+          key_vtn_ffe_ctrl->flowfilter_key.input_direction =
+              val_ff_ctrl->direction;
         }  else {
           key_vtn_ffe_ctrl->flowfilter_key.input_direction = 0xFE;
         }
-        SET_USER_DATA_CTRLR(tctrl_key, reinterpret_cast<const char *>(it->ctrlr));
-        SET_USER_DATA_DOMAIN(tctrl_key, reinterpret_cast<const char *>(it->domain));
-        DbSubOp dbop = {kOpReadMultiple, kOpMatchCtrlr|kOpMatchDomain, kOpInOutNone};
-        result_code = ReadConfigDB(tctrl_key, UPLL_DT_STATE, UNC_OP_READ,
-                                   dbop, dmi, CTRLRTBL);
+        SET_USER_DATA_CTRLR(tctrl_key,
+                            reinterpret_cast<const char *>(it->ctrlr));
+        SET_USER_DATA_DOMAIN(tctrl_key,
+                             reinterpret_cast<const char *>(it->domain));
+        DbSubOp dbop = {kOpReadMultiple,
+          kOpMatchCtrlr|kOpMatchDomain,
+          kOpInOutNone};
+        result_code = ReadConfigDB(tctrl_key,
+                                   UPLL_DT_STATE,
+                                   UNC_OP_READ,
+                                   dbop,
+                                   dmi,
+                                   CTRLRTBL);
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("Unable to read vtn configuration from CTRL DB %d",
                          result_code);
@@ -3971,7 +4394,7 @@ upll_rc_t  VtnFlowFilterEntryMoMgr::ReadSiblingControllerStateNormal(
           tmp_key = tmp_key->get_next_cfg_key_val();
         }
         DELETE_IF_NOT_NULL(tctrl_key);
-        ifokey == NULL) {
+        if (okey == NULL) {
           okey = tmp_okey;
         } else {
           okey->AppendCfgKeyVal(tmp_okey);
@@ -3992,7 +4415,10 @@ upll_rc_t  VtnFlowFilterEntryMoMgr::ReadSiblingControllerStateNormal(
     }
   } else if (req->operation == UNC_OP_READ_SIBLING_BEGIN) {
     std::list<controller_domain_t> list_ctrlr_dom;
-    vtn_ctrlr_span_rt_code = GetVtnControllerSpan(ikey, req->datatype, dmi, list_ctrlr_dom);
+    vtn_ctrlr_span_rt_code = GetVtnControllerSpan(ikey,
+                                                  req->datatype,
+                                                  dmi,
+                                                  list_ctrlr_dom);
     if ((vtn_ctrlr_span_rt_code != UPLL_RC_SUCCESS) &&
         (vtn_ctrlr_span_rt_code != UPLL_RC_ERR_NO_SUCH_INSTANCE)) {
       UPLL_LOG_DEBUG(" GetVtnControllerSpan  error code (%d)",
@@ -4010,27 +4436,31 @@ upll_rc_t  VtnFlowFilterEntryMoMgr::ReadSiblingControllerStateNormal(
       key_vtn_flowfilter_entry_t *key_vtn_ffe_ctrl =
           reinterpret_cast <key_vtn_flowfilter_entry_t*>
           (ConfigKeyVal::Malloc(sizeof(key_vtn_flowfilter_entry_t)));
-      // Allocating CKV tctrl_key
+      //  Allocating CKV tctrl_key
       tctrl_key = new ConfigKeyVal(UNC_KT_VTN_FLOWFILTER_ENTRY,
                                    IpctSt::kIpcStKeyVtnFlowfilterEntry,
                                    key_vtn_ffe_ctrl, NULL);
-      // Copying The seqno, i/p dir, Vtn_Name to The Above Key of CKV tctrl_key
+      //  Copying The seqno, i/p dir, Vtn_Name to The Above Key of CKV tctrl_key
       uuu::upll_strncpy(key_vtn_ffe_ctrl->flowfilter_key.vtn_key.vtn_name,
-                        key_vtn_ff_ctrl->vtn_key.vtn_name, (kMaxLenVtnName +1));
+                        key_vtn_ff_ctrl->vtn_key.vtn_name,
+                        (kMaxLenVtnName +1));
       if (val_ff_ctrl->valid[UPLL_IDX_SEQ_NUM_FFC] == UNC_VF_VALID) {
         key_vtn_ffe_ctrl->sequence_num = val_ff_ctrl->sequence_num;
       } else {
         key_vtn_ffe_ctrl->sequence_num = 0;
       }
       if (val_ff_ctrl->valid[UPLL_IDX_DIRECTION_FFC] == UNC_VF_VALID) {
-        key_vtn_ffe_ctrl->flowfilter_key.input_direction = val_ff_ctrl->direction;
+        key_vtn_ffe_ctrl->flowfilter_key.input_direction =
+            val_ff_ctrl->direction;
       } else {
         key_vtn_ffe_ctrl->flowfilter_key.input_direction = 0xFE;
       }
-      SET_USER_DATA_CTRLR(tctrl_key, reinterpret_cast<const char *>(it->ctrlr));
-      SET_USER_DATA_DOMAIN(tctrl_key, reinterpret_cast<const char *>(it->domain));
+      SET_USER_DATA_CTRLR(tctrl_key,
+                          reinterpret_cast<const char *>(it->ctrlr));
+      SET_USER_DATA_DOMAIN(tctrl_key,
+                           reinterpret_cast<const char *>(it->domain));
       DbSubOp dbop = {kOpReadMultiple, kOpMatchCtrlr|
-        kOpInOutDomain,kOpInOutDomain};
+        kOpInOutDomain, kOpInOutDomain};
       result_code = ReadConfigDB(tctrl_key, UPLL_DT_STATE, UNC_OP_READ,
                                  dbop, dmi, CTRLRTBL);
       if (result_code != UPLL_RC_SUCCESS) {
@@ -4050,9 +4480,11 @@ upll_rc_t  VtnFlowFilterEntryMoMgr::ReadSiblingControllerStateNormal(
       uuu::upll_strncpy(tmp_ff_ctrl->vtn_key.vtn_name,
                         key_vtn_ffe->flowfilter_key.vtn_key.vtn_name,
                         (kMaxLenVtnName +1));
-      uuu::upll_strncpy(tmp_ff_ctrl->controller_name,reinterpret_cast<const char *>(it->ctrlr),
+      uuu::upll_strncpy(tmp_ff_ctrl->controller_name,
+                        reinterpret_cast<const char *>(it->ctrlr),
                         (kMaxLenCtrlrId +1));
-      uuu::upll_strncpy(tmp_ff_ctrl->domain_id, reinterpret_cast<const char *>(it->domain),
+      uuu::upll_strncpy(tmp_ff_ctrl->domain_id,
+                        reinterpret_cast<const char *>(it->domain),
                         (kMaxLenDomainId +1));
       tmp_okey = new ConfigKeyVal(UNC_KT_VTN_FLOWFILTER_CONTROLLER,
                                   IpctSt::kIpcStKeyVtnFlowfilterController,
@@ -4073,7 +4505,7 @@ upll_rc_t  VtnFlowFilterEntryMoMgr::ReadSiblingControllerStateNormal(
         tmp_key = tmp_key->get_next_cfg_key_val();
       }
       DELETE_IF_NOT_NULL(tctrl_key);
-      ifokey == NULL) {
+      if (okey == NULL) {
         okey = tmp_okey;
       } else {
         okey->AppendCfgKeyVal(tmp_okey);
@@ -4105,7 +4537,7 @@ upll_rc_t  VtnFlowFilterEntryMoMgr::ReadSiblingControllerStateDetail(
 
   key_vtn_flowfilter_controller_t *key_vtn_ff_ctrl =
       reinterpret_cast<key_vtn_flowfilter_controller_t*>(ikey->get_key());
-  // Extracting The VAl of KT_VTN_FF_Ctrl
+  //  Extracting The VAl of KT_VTN_FF_Ctrl
   val_flowfilter_controller_t* val_ff_ctrl =
       reinterpret_cast<val_flowfilter_controller_t*>(GetVal(ikey));
 
@@ -4154,7 +4586,7 @@ upll_rc_t  VtnFlowFilterEntryMoMgr::ReadSiblingControllerStateDetail(
   l_key = new ConfigKeyVal(UNC_KT_VTN_FLOWFILTER_CONTROLLER, IpctSt::
                            kIpcStKeyVtnFlowfilterController,
                            l_key_vtn_ff_ctrl, tmp1);
-  // verifying given reuest is existing in vtn_ff_entry_tbl or not
+  //  verifying given reuest is existing in vtn_ff_entry_tbl or not
   key_vtn_flowfilter_entry_t *key_ctrl =
       reinterpret_cast <key_vtn_flowfilter_entry_t*>
       (ConfigKeyVal::Malloc(sizeof(key_vtn_flowfilter_entry_t)));
@@ -4168,7 +4600,7 @@ upll_rc_t  VtnFlowFilterEntryMoMgr::ReadSiblingControllerStateDetail(
       key_vtn_ff_ctrl->vtn_key.vtn_name,
       (kMaxLenVtnName +1));
   if ((val_ff_ctrl->valid[UPLL_IDX_SEQ_NUM_FFC] == UNC_VF_VALID) ||
-           (val_ff_ctrl->valid[UPLL_IDX_DIRECTION_FFC] == UNC_VF_VALID)) {
+      (val_ff_ctrl->valid[UPLL_IDX_DIRECTION_FFC] == UNC_VF_VALID)) {
     if (val_ff_ctrl->valid[UPLL_IDX_SEQ_NUM_FFC] == UNC_VF_VALID) {
       key_ctrl->sequence_num = val_ff_ctrl->sequence_num;
     }
@@ -4176,10 +4608,10 @@ upll_rc_t  VtnFlowFilterEntryMoMgr::ReadSiblingControllerStateDetail(
       key_ctrl->flowfilter_key.input_direction = val_ff_ctrl->direction;
     }
     result_code = UpdateConfigDB(dup_ckmain, req->datatype,
-                               UNC_OP_READ, dmi, &dbop1, MAINTBL);
+                                 UNC_OP_READ, dmi, &dbop1, MAINTBL);
     if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
       UPLL_LOG_DEBUG("Requested Configuration is not Configured in"
-                   "VtnflowfilterEntry Table %d", result_code);
+                     "VtnflowfilterEntry Table %d", result_code);
       DELETE_IF_NOT_NULL(dup_ckmain);
       DELETE_IF_NOT_NULL(l_key);
       ConfigKeyVal::Free(ctrlr_dom.ctrlr);
@@ -4190,25 +4622,27 @@ upll_rc_t  VtnFlowFilterEntryMoMgr::ReadSiblingControllerStateDetail(
     }
   }
   DELETE_IF_NOT_NULL(dup_ckmain);
-  // Extracting The Val from CKV tctrl_key
+  //  Extracting The Val from CKV tctrl_key
   uint32_t tmp_sib_count = 0;
   if (req->operation == UNC_OP_READ_SIBLING) {
-// ====Adding VtnControllerDomainSpan
-  std::list<controller_domain_t> list_ctrlr_dom;
-  vtn_ctrlr_span_rt_code = GetVtnControllerSpan(ikey,
-                       req->datatype, dmi, list_ctrlr_dom);
-  if ((vtn_ctrlr_span_rt_code != UPLL_RC_SUCCESS) &&
-      (vtn_ctrlr_span_rt_code != UPLL_RC_ERR_NO_SUCH_INSTANCE)) {
-    UPLL_LOG_DEBUG(" GetVtnControllerSpan  error code (%d)",
-                   vtn_ctrlr_span_rt_code);
-    DELETE_IF_NOT_NULL(l_key);
-    FREE_LIST_CTRLR(list_ctrlr_dom);
-    ConfigKeyVal::Free(ctrlr_dom.ctrlr);
-    ConfigKeyVal::Free(ctrlr_dom.domain);
-    ConfigKeyVal::Free(tmp_ctrlr_dom.ctrlr);
-    ConfigKeyVal::Free(tmp_ctrlr_dom.domain);
-    return vtn_ctrlr_span_rt_code;
-  }
+    //  ====Adding VtnControllerDomainSpan
+    std::list<controller_domain_t> list_ctrlr_dom;
+    vtn_ctrlr_span_rt_code = GetVtnControllerSpan(ikey,
+                                                  req->datatype,
+                                                  dmi,
+                                                  list_ctrlr_dom);
+    if ((vtn_ctrlr_span_rt_code != UPLL_RC_SUCCESS) &&
+        (vtn_ctrlr_span_rt_code != UPLL_RC_ERR_NO_SUCH_INSTANCE)) {
+      UPLL_LOG_DEBUG(" GetVtnControllerSpan  error code (%d)",
+                     vtn_ctrlr_span_rt_code);
+      DELETE_IF_NOT_NULL(l_key);
+      FREE_LIST_CTRLR(list_ctrlr_dom);
+      ConfigKeyVal::Free(ctrlr_dom.ctrlr);
+      ConfigKeyVal::Free(ctrlr_dom.domain);
+      ConfigKeyVal::Free(tmp_ctrlr_dom.ctrlr);
+      ConfigKeyVal::Free(tmp_ctrlr_dom.domain);
+      return vtn_ctrlr_span_rt_code;
+    }
 
     for (std::list<controller_domain_t>::iterator it= list_ctrlr_dom.begin();
          it != list_ctrlr_dom.end(); ++it) {
@@ -4219,7 +4653,8 @@ upll_rc_t  VtnFlowFilterEntryMoMgr::ReadSiblingControllerStateDetail(
                             reinterpret_cast<const char *>(it->domain));
       if ((ctrl_len < 0) || ((ctrl_len == 0) && (dom_len < 0))) {
         result_code = ValidateCapability(req, ikey,
-                         reinterpret_cast<const char *>(it->ctrlr));
+                                         reinterpret_cast
+                                         <const char *>(it->ctrlr));
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("Key not supported by controller IN ReadSibling");
           FREE_LIST_CTRLR(list_ctrlr_dom);
@@ -4232,116 +4667,116 @@ upll_rc_t  VtnFlowFilterEntryMoMgr::ReadSiblingControllerStateDetail(
           return result_code;
         }
 
-       key_vtn_flowfilter_controller_t *tmp_ff_ctrl =
-       reinterpret_cast <key_vtn_flowfilter_controller_t*>
-       (ConfigKeyVal::Malloc(sizeof(key_vtn_flowfilter_controller_t)));
-       uuu::upll_strncpy(tmp_ff_ctrl->vtn_key.vtn_name,
-                    key_vtn_ff_ctrl->vtn_key.vtn_name,
-                    (kMaxLenVtnName +1));
-       uuu::upll_strncpy(tmp_ff_ctrl->controller_name,
-                   reinterpret_cast<const char *>(it->ctrlr),
-                    (kMaxLenCtrlrId +1));
-       uuu::upll_strncpy(tmp_ff_ctrl->domain_id,
-                     reinterpret_cast<const char *>(it->domain),
-                    (kMaxLenDomainId +1));
-       tmp_okey = new ConfigKeyVal(UNC_KT_VTN_FLOWFILTER_CONTROLLER,
-                              IpctSt::kIpcStKeyVtnFlowfilterController,
-                              tmp_ff_ctrl, NULL);
-
-       val_flowfilter_controller_t* tmp_val_ff_ctrl =
-        reinterpret_cast <val_flowfilter_controller_t*>
-        (ConfigKeyVal::Malloc(sizeof(val_flowfilter_controller_t)));
-       memcpy(tmp_val_ff_ctrl, val_ff_ctrl,
-         sizeof(val_flowfilter_controller_t));
-       tmp_okey->AppendCfgVal(IpctSt::kIpcStValFlowfilterController,
-                         tmp_val_ff_ctrl);
-       uuu::upll_strncpy(tmp_ctrlr_dom.ctrlr,
-                    reinterpret_cast<const char *>(it->ctrlr),
-                    (kMaxLenCtrlrId +1));
-       uuu::upll_strncpy(tmp_ctrlr_dom.domain,
-                    reinterpret_cast<const char *>(it->domain),
-           (kMaxLenDomainId +1));
-       uuu::upll_strncpy(l_key_vtn_ff_ctrl->controller_name,
+        key_vtn_flowfilter_controller_t *tmp_ff_ctrl =
+            reinterpret_cast <key_vtn_flowfilter_controller_t*>
+            (ConfigKeyVal::Malloc(sizeof(key_vtn_flowfilter_controller_t)));
+        uuu::upll_strncpy(tmp_ff_ctrl->vtn_key.vtn_name,
+                          key_vtn_ff_ctrl->vtn_key.vtn_name,
+                          (kMaxLenVtnName +1));
+        uuu::upll_strncpy(tmp_ff_ctrl->controller_name,
+                          reinterpret_cast<const char *>(it->ctrlr),
+                          (kMaxLenCtrlrId +1));
+        uuu::upll_strncpy(tmp_ff_ctrl->domain_id,
+                          reinterpret_cast<const char *>(it->domain),
+                          (kMaxLenDomainId +1));
+        tmp_okey = new ConfigKeyVal(UNC_KT_VTN_FLOWFILTER_CONTROLLER,
+                                    IpctSt::kIpcStKeyVtnFlowfilterController,
+                                    tmp_ff_ctrl, NULL);
+
+        val_flowfilter_controller_t* tmp_val_ff_ctrl =
+            reinterpret_cast <val_flowfilter_controller_t*>
+            (ConfigKeyVal::Malloc(sizeof(val_flowfilter_controller_t)));
+        memcpy(tmp_val_ff_ctrl, val_ff_ctrl,
+               sizeof(val_flowfilter_controller_t));
+        tmp_okey->AppendCfgVal(IpctSt::kIpcStValFlowfilterController,
+                               tmp_val_ff_ctrl);
+        uuu::upll_strncpy(tmp_ctrlr_dom.ctrlr,
+                          reinterpret_cast<const char *>(it->ctrlr),
+                          (kMaxLenCtrlrId +1));
+        uuu::upll_strncpy(tmp_ctrlr_dom.domain,
+                          reinterpret_cast<const char *>(it->domain),
+                          (kMaxLenDomainId +1));
+        uuu::upll_strncpy(l_key_vtn_ff_ctrl->controller_name,
                           tmp_ctrlr_dom.ctrlr, (kMaxLenCtrlrId +1));
-       uuu::upll_strncpy(l_key_vtn_ff_ctrl->domain_id,
+        uuu::upll_strncpy(l_key_vtn_ff_ctrl->domain_id,
                           tmp_ctrlr_dom.domain, (kMaxLenDomainId +1));
 
-       IpcResponse ipc_resp;
-       memset(&ipc_resp, 0, sizeof(IpcResponse));
-       IpcRequest ipc_req;
-       memset(&ipc_req, 0, sizeof(IpcRequest));
-       ipc_req.header.clnt_sess_id = req->clnt_sess_id;
-       ipc_req.header.config_id = req->config_id;
-       ipc_req.header.operation = UNC_OP_READ;
-       ipc_req.header.option1 = req->option1;
-       ipc_req.header.datatype = req->datatype;
-       // Added "GetRenamedControllerKey"
-       UPLL_LOG_DEBUG("Calling GetRenamedControllerKeyin ReadSibling");
-       result_code = GetRenamedControllerKey(l_key, req->datatype, dmi,
-                                       &tmp_ctrlr_dom);
-       if (result_code != UPLL_RC_SUCCESS) {
-         UPLL_LOG_DEBUG("GetRenamedControllerKey Failed %d", result_code);
-         FREE_LIST_CTRLR(list_ctrlr_dom);
-         DELETE_IF_NOT_NULL(l_key);
-         DELETE_IF_NOT_NULL(tmp_okey);
-         DELETE_IF_NOT_NULL(okey);
-         ConfigKeyVal::Free(ctrlr_dom.ctrlr);
-         ConfigKeyVal::Free(ctrlr_dom.domain);
-         ConfigKeyVal::Free(tmp_ctrlr_dom.ctrlr);
-         ConfigKeyVal::Free(tmp_ctrlr_dom.domain);
-         return result_code;
-       }
-       ipc_req.ckv_data = l_key;
-       if (!IpcUtil::SendReqToDriver(
+        IpcResponse ipc_resp;
+        memset(&ipc_resp, 0, sizeof(IpcResponse));
+        IpcRequest ipc_req;
+        memset(&ipc_req, 0, sizeof(IpcRequest));
+        ipc_req.header.clnt_sess_id = req->clnt_sess_id;
+        ipc_req.header.config_id = req->config_id;
+        ipc_req.header.operation = UNC_OP_READ;
+        ipc_req.header.option1 = req->option1;
+        ipc_req.header.datatype = req->datatype;
+        //  Added "GetRenamedControllerKey"
+        UPLL_LOG_DEBUG("Calling GetRenamedControllerKeyin ReadSibling");
+        result_code = GetRenamedControllerKey(l_key, req->datatype, dmi,
+                                              &tmp_ctrlr_dom);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("GetRenamedControllerKey Failed %d", result_code);
+          FREE_LIST_CTRLR(list_ctrlr_dom);
+          DELETE_IF_NOT_NULL(l_key);
+          DELETE_IF_NOT_NULL(tmp_okey);
+          DELETE_IF_NOT_NULL(okey);
+          ConfigKeyVal::Free(ctrlr_dom.ctrlr);
+          ConfigKeyVal::Free(ctrlr_dom.domain);
+          ConfigKeyVal::Free(tmp_ctrlr_dom.ctrlr);
+          ConfigKeyVal::Free(tmp_ctrlr_dom.domain);
+          return result_code;
+        }
+        ipc_req.ckv_data = l_key;
+        if (!IpcUtil::SendReqToDriver(
                 (const char *)tmp_ctrlr_dom.ctrlr,
                 reinterpret_cast<char *>(tmp_ctrlr_dom.domain),
                 PFCDRIVER_SERVICE_NAME, PFCDRIVER_SVID_LOGICAL,
                 &ipc_req, true, &ipc_resp)) {
-         UPLL_LOG_DEBUG("SendReqToDriver failed for Key %d controller %s",
+          UPLL_LOG_DEBUG("SendReqToDriver failed for Key %d controller %s",
                          l_key->get_key_type(),
                          reinterpret_cast<char *>(tmp_ctrlr_dom.ctrlr));
-         DELETE_IF_NOT_NULL(tmp_okey);
-         FREE_LIST_CTRLR(list_ctrlr_dom);
-         DELETE_IF_NOT_NULL(l_key);
-         DELETE_IF_NOT_NULL(okey);
-         DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
-         ConfigKeyVal::Free(ctrlr_dom.ctrlr);
-         ConfigKeyVal::Free(ctrlr_dom.domain);
-         ConfigKeyVal::Free(tmp_ctrlr_dom.ctrlr);
-         ConfigKeyVal::Free(tmp_ctrlr_dom.domain);
-         return UPLL_RC_ERR_GENERIC;
-       }
-       if (ipc_resp.header.result_code != UPLL_RC_SUCCESS) {
-         UPLL_LOG_DEBUG("Driver response for Key %d controller %s result %d",
+          DELETE_IF_NOT_NULL(tmp_okey);
+          FREE_LIST_CTRLR(list_ctrlr_dom);
+          DELETE_IF_NOT_NULL(l_key);
+          DELETE_IF_NOT_NULL(okey);
+          DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
+          ConfigKeyVal::Free(ctrlr_dom.ctrlr);
+          ConfigKeyVal::Free(ctrlr_dom.domain);
+          ConfigKeyVal::Free(tmp_ctrlr_dom.ctrlr);
+          ConfigKeyVal::Free(tmp_ctrlr_dom.domain);
+          return UPLL_RC_ERR_GENERIC;
+        }
+        if (ipc_resp.header.result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("Driver response for Key %d controller %s result %d",
                          l_key->get_key_type(), tmp_ctrlr_dom.ctrlr,
                          ipc_resp.header.result_code);
-         DELETE_IF_NOT_NULL(tmp_okey);
-         FREE_LIST_CTRLR(list_ctrlr_dom);
-         DELETE_IF_NOT_NULL(l_key);
-         DELETE_IF_NOT_NULL(okey);
-         DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
-         ConfigKeyVal::Free(ctrlr_dom.ctrlr);
-         ConfigKeyVal::Free(ctrlr_dom.domain);
-         ConfigKeyVal::Free(tmp_ctrlr_dom.ctrlr);
-         ConfigKeyVal::Free(tmp_ctrlr_dom.domain);
-         return ipc_resp.header.result_code;
-       }
+          DELETE_IF_NOT_NULL(tmp_okey);
+          FREE_LIST_CTRLR(list_ctrlr_dom);
+          DELETE_IF_NOT_NULL(l_key);
+          DELETE_IF_NOT_NULL(okey);
+          DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
+          ConfigKeyVal::Free(ctrlr_dom.ctrlr);
+          ConfigKeyVal::Free(ctrlr_dom.domain);
+          ConfigKeyVal::Free(tmp_ctrlr_dom.ctrlr);
+          ConfigKeyVal::Free(tmp_ctrlr_dom.domain);
+          return ipc_resp.header.result_code;
+        }
 
-       tmp_okey->AppendCfgVal((ipc_resp.ckv_data)->GetCfgValAndUnlink());
-       DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
-       tmp_sib_count++;
-       if (okey == NULL) {
-         okey = tmp_okey;
-       } else {
-         okey->AppendCfgKeyVal(tmp_okey);
-      }
-      if (tmp_sib_count == req->rep_count)
+        tmp_okey->AppendCfgVal((ipc_resp.ckv_data)->GetCfgValAndUnlink());
+        DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
+        tmp_sib_count++;
+        if (okey == NULL) {
+          okey = tmp_okey;
+        } else {
+          okey->AppendCfgKeyVal(tmp_okey);
+        }
+        if (tmp_sib_count == req->rep_count)
           break;
       } else {
-       result_code = UPLL_RC_ERR_NO_SUCH_INSTANCE;
-     }
-     if (tmp_sib_count == req->rep_count)
-         break;
+        result_code = UPLL_RC_ERR_NO_SUCH_INSTANCE;
+      }
+      if (tmp_sib_count == req->rep_count)
+        break;
     }
     if ((okey != NULL) && (result_code == UPLL_RC_SUCCESS)) {
       ikey->ResetWith(okey);
@@ -4352,11 +4787,13 @@ upll_rc_t  VtnFlowFilterEntryMoMgr::ReadSiblingControllerStateDetail(
   } else if (req->operation == UNC_OP_READ_SIBLING_BEGIN) {
     std::list<controller_domain_t> list_ctrlr_dom;
     vtn_ctrlr_span_rt_code = GetVtnControllerSpan(ikey,
-                      req->datatype, dmi, list_ctrlr_dom);
+                                                  req->datatype,
+                                                  dmi,
+                                                  list_ctrlr_dom);
     if ((vtn_ctrlr_span_rt_code != UPLL_RC_SUCCESS) &&
-      (vtn_ctrlr_span_rt_code != UPLL_RC_ERR_NO_SUCH_INSTANCE)) {
+        (vtn_ctrlr_span_rt_code != UPLL_RC_ERR_NO_SUCH_INSTANCE)) {
       UPLL_LOG_DEBUG(" GetVtnControllerSpan  error code (%d)",
-                   vtn_ctrlr_span_rt_code);
+                     vtn_ctrlr_span_rt_code);
       DELETE_IF_NOT_NULL(l_key);
       FREE_LIST_CTRLR(list_ctrlr_dom);
       ConfigKeyVal::Free(ctrlr_dom.ctrlr);
@@ -4367,126 +4804,128 @@ upll_rc_t  VtnFlowFilterEntryMoMgr::ReadSiblingControllerStateDetail(
     }
     for (std::list<controller_domain_t>::iterator it= list_ctrlr_dom.begin();
          it != list_ctrlr_dom.end(); ++it) {
-    result_code = ValidateCapability(req, ikey,
-                  reinterpret_cast<const char *>(it->ctrlr));
-    if (result_code != UPLL_RC_SUCCESS) {
-       UPLL_LOG_DEBUG("Key not supported by controller IN ReadSibling");
-       DELETE_IF_NOT_NULL(l_key);
-       FREE_LIST_CTRLR(list_ctrlr_dom);
-       ConfigKeyVal::Free(ctrlr_dom.ctrlr);
-       ConfigKeyVal::Free(ctrlr_dom.domain);
-       ConfigKeyVal::Free(tmp_ctrlr_dom.ctrlr);
-       ConfigKeyVal::Free(tmp_ctrlr_dom.domain);
-       return result_code;
-    }
-    key_vtn_flowfilter_controller_t *tmp_ff_ctrl =
-      reinterpret_cast <key_vtn_flowfilter_controller_t*>
-      (ConfigKeyVal::Malloc(sizeof(key_vtn_flowfilter_controller_t)));
-    uuu::upll_strncpy(tmp_ff_ctrl->vtn_key.vtn_name,
-                     key_vtn_ff_ctrl->vtn_key.vtn_name,
-                    (kMaxLenVtnName +1));
-    uuu::upll_strncpy(tmp_ff_ctrl->controller_name,
-                     reinterpret_cast<const char *>(it->ctrlr),
-                    (kMaxLenCtrlrId +1));
-    uuu::upll_strncpy(tmp_ff_ctrl->domain_id,
-                   reinterpret_cast<const char *>(it->domain),
-                    (kMaxLenDomainId +1));
-    tmp_okey = new ConfigKeyVal(UNC_KT_VTN_FLOWFILTER_CONTROLLER,
-                              IpctSt::kIpcStKeyVtnFlowfilterController,
-                              tmp_ff_ctrl, NULL);
+      result_code = ValidateCapability(req,
+                                       ikey,
+                                       reinterpret_cast
+                                       <const char *>(it->ctrlr));
+      if (result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("Key not supported by controller IN ReadSibling");
+        DELETE_IF_NOT_NULL(l_key);
+        FREE_LIST_CTRLR(list_ctrlr_dom);
+        ConfigKeyVal::Free(ctrlr_dom.ctrlr);
+        ConfigKeyVal::Free(ctrlr_dom.domain);
+        ConfigKeyVal::Free(tmp_ctrlr_dom.ctrlr);
+        ConfigKeyVal::Free(tmp_ctrlr_dom.domain);
+        return result_code;
+      }
+      key_vtn_flowfilter_controller_t *tmp_ff_ctrl =
+          reinterpret_cast <key_vtn_flowfilter_controller_t*>
+          (ConfigKeyVal::Malloc(sizeof(key_vtn_flowfilter_controller_t)));
+      uuu::upll_strncpy(tmp_ff_ctrl->vtn_key.vtn_name,
+                        key_vtn_ff_ctrl->vtn_key.vtn_name,
+                        (kMaxLenVtnName +1));
+      uuu::upll_strncpy(tmp_ff_ctrl->controller_name,
+                        reinterpret_cast<const char *>(it->ctrlr),
+                        (kMaxLenCtrlrId +1));
+      uuu::upll_strncpy(tmp_ff_ctrl->domain_id,
+                        reinterpret_cast<const char *>(it->domain),
+                        (kMaxLenDomainId +1));
+      tmp_okey = new ConfigKeyVal(UNC_KT_VTN_FLOWFILTER_CONTROLLER,
+                                  IpctSt::kIpcStKeyVtnFlowfilterController,
+                                  tmp_ff_ctrl, NULL);
 
-    val_flowfilter_controller_t* tmp_val_ff_ctrl =
-           reinterpret_cast <val_flowfilter_controller_t*>
-           (ConfigKeyVal::Malloc(sizeof(val_flowfilter_controller_t)));
-    memcpy(tmp_val_ff_ctrl, val_ff_ctrl, sizeof(val_flowfilter_controller_t));
-    tmp_okey->AppendCfgVal(IpctSt::kIpcStValFlowfilterController,
-                         tmp_val_ff_ctrl);
-    uuu::upll_strncpy(ctrlr_dom.ctrlr,
-                    reinterpret_cast<const char *>(it->ctrlr),
-                    (kMaxLenCtrlrId +1));
-    uuu::upll_strncpy(ctrlr_dom.domain,
-                    reinterpret_cast<const char *>(it->domain),
-                    (kMaxLenDomainId +1));
-    uuu::upll_strncpy(l_key_vtn_ff_ctrl->controller_name,
+      val_flowfilter_controller_t* tmp_val_ff_ctrl =
+          reinterpret_cast <val_flowfilter_controller_t*>
+          (ConfigKeyVal::Malloc(sizeof(val_flowfilter_controller_t)));
+      memcpy(tmp_val_ff_ctrl, val_ff_ctrl, sizeof(val_flowfilter_controller_t));
+      tmp_okey->AppendCfgVal(IpctSt::kIpcStValFlowfilterController,
+                             tmp_val_ff_ctrl);
+      uuu::upll_strncpy(ctrlr_dom.ctrlr,
+                        reinterpret_cast<const char *>(it->ctrlr),
+                        (kMaxLenCtrlrId +1));
+      uuu::upll_strncpy(ctrlr_dom.domain,
+                        reinterpret_cast<const char *>(it->domain),
+                        (kMaxLenDomainId +1));
+      uuu::upll_strncpy(l_key_vtn_ff_ctrl->controller_name,
                         ctrlr_dom.ctrlr, (kMaxLenCtrlrId +1));
-    uuu::upll_strncpy(l_key_vtn_ff_ctrl->domain_id,
+      uuu::upll_strncpy(l_key_vtn_ff_ctrl->domain_id,
                         ctrlr_dom.domain, (kMaxLenDomainId +1));
 
-    IpcResponse ipc_resp;
-    memset(&ipc_resp, 0, sizeof(IpcResponse));
-    IpcRequest ipc_req;
-    memset(&ipc_req, 0, sizeof(IpcRequest));
-    ipc_req.header.clnt_sess_id = req->clnt_sess_id;
-    ipc_req.header.config_id = req->config_id;
-    ipc_req.header.operation = UNC_OP_READ;
-    ipc_req.header.option1 = req->option1;
-    ipc_req.header.datatype = req->datatype;
-    // Added "GetRenamedControllerKey"
-    UPLL_LOG_INFO("Calling GetRenamedControllerKeyin ReadSibling");
-    result_code = GetRenamedControllerKey(l_key, req->datatype, dmi,
-                                       &ctrlr_dom);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetRenamedControllerKey Failed %d", result_code);
-      DELETE_IF_NOT_NULL(l_key);
-      DELETE_IF_NOT_NULL(tmp_okey);
-      FREE_LIST_CTRLR(list_ctrlr_dom);
-      ConfigKeyVal::Free(ctrlr_dom.ctrlr);
-      ConfigKeyVal::Free(ctrlr_dom.domain);
-      ConfigKeyVal::Free(tmp_ctrlr_dom.ctrlr);
-      ConfigKeyVal::Free(tmp_ctrlr_dom.domain);
-      return result_code;
-    }
-    ipc_req.ckv_data = l_key;
-    if (!IpcUtil::SendReqToDriver(
+      IpcResponse ipc_resp;
+      memset(&ipc_resp, 0, sizeof(IpcResponse));
+      IpcRequest ipc_req;
+      memset(&ipc_req, 0, sizeof(IpcRequest));
+      ipc_req.header.clnt_sess_id = req->clnt_sess_id;
+      ipc_req.header.config_id = req->config_id;
+      ipc_req.header.operation = UNC_OP_READ;
+      ipc_req.header.option1 = req->option1;
+      ipc_req.header.datatype = req->datatype;
+      //  Added "GetRenamedControllerKey"
+      UPLL_LOG_INFO("Calling GetRenamedControllerKeyin ReadSibling");
+      result_code = GetRenamedControllerKey(l_key, req->datatype, dmi,
+                                            &ctrlr_dom);
+      if (result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("GetRenamedControllerKey Failed %d", result_code);
+        DELETE_IF_NOT_NULL(l_key);
+        DELETE_IF_NOT_NULL(tmp_okey);
+        FREE_LIST_CTRLR(list_ctrlr_dom);
+        ConfigKeyVal::Free(ctrlr_dom.ctrlr);
+        ConfigKeyVal::Free(ctrlr_dom.domain);
+        ConfigKeyVal::Free(tmp_ctrlr_dom.ctrlr);
+        ConfigKeyVal::Free(tmp_ctrlr_dom.domain);
+        return result_code;
+      }
+      ipc_req.ckv_data = l_key;
+      if (!IpcUtil::SendReqToDriver(
               (const char *)ctrlr_dom.ctrlr,
               reinterpret_cast<char *>(ctrlr_dom.domain),
               PFCDRIVER_SERVICE_NAME, PFCDRIVER_SVID_LOGICAL, &ipc_req,
               true, &ipc_resp)) {
-       UPLL_LOG_DEBUG("SendReqToDriver failed for Key %d controller %s",
+        UPLL_LOG_DEBUG("SendReqToDriver failed for Key %d controller %s",
                        l_key->get_key_type(),
                        reinterpret_cast<char *>(ctrlr_dom.ctrlr));
-       DELETE_IF_NOT_NULL(l_key);
-       DELETE_IF_NOT_NULL(tmp_okey);
-       DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
-       FREE_LIST_CTRLR(list_ctrlr_dom);
-       ConfigKeyVal::Free(ctrlr_dom.ctrlr);
-       ConfigKeyVal::Free(ctrlr_dom.domain);
-       ConfigKeyVal::Free(tmp_ctrlr_dom.ctrlr);
-       ConfigKeyVal::Free(tmp_ctrlr_dom.domain);
-       return UPLL_RC_ERR_GENERIC;
-    }
-    if (ipc_resp.header.result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Driver response for Key %d controller %s result %d",
+        DELETE_IF_NOT_NULL(l_key);
+        DELETE_IF_NOT_NULL(tmp_okey);
+        DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
+        FREE_LIST_CTRLR(list_ctrlr_dom);
+        ConfigKeyVal::Free(ctrlr_dom.ctrlr);
+        ConfigKeyVal::Free(ctrlr_dom.domain);
+        ConfigKeyVal::Free(tmp_ctrlr_dom.ctrlr);
+        ConfigKeyVal::Free(tmp_ctrlr_dom.domain);
+        return UPLL_RC_ERR_GENERIC;
+      }
+      if (ipc_resp.header.result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("Driver response for Key %d controller %s result %d",
                        l_key->get_key_type(), ctrlr_dom.ctrlr,
                        ipc_resp.header.result_code);
-      DELETE_IF_NOT_NULL(l_key);
-      DELETE_IF_NOT_NULL(tmp_okey);
+        DELETE_IF_NOT_NULL(l_key);
+        DELETE_IF_NOT_NULL(tmp_okey);
+        DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
+        FREE_LIST_CTRLR(list_ctrlr_dom);
+        ConfigKeyVal::Free(ctrlr_dom.ctrlr);
+        ConfigKeyVal::Free(ctrlr_dom.domain);
+        ConfigKeyVal::Free(tmp_ctrlr_dom.ctrlr);
+        ConfigKeyVal::Free(tmp_ctrlr_dom.domain);
+        return ipc_resp.header.result_code;
+      }
+      tmp_okey->AppendCfgVal((ipc_resp.ckv_data)->GetCfgValAndUnlink());
       DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
-      FREE_LIST_CTRLR(list_ctrlr_dom);
-      ConfigKeyVal::Free(ctrlr_dom.ctrlr);
-      ConfigKeyVal::Free(ctrlr_dom.domain);
-      ConfigKeyVal::Free(tmp_ctrlr_dom.ctrlr);
-      ConfigKeyVal::Free(tmp_ctrlr_dom.domain);
-      return ipc_resp.header.result_code;
-    }
-    tmp_okey->AppendCfgVal((ipc_resp.ckv_data)->GetCfgValAndUnlink());
-    DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
-    if (okey == NULL) {
-       okey = tmp_okey;
-    } else {
-    okey->AppendCfgKeyVal(tmp_okey);
-  }
+      if (okey == NULL) {
+        okey = tmp_okey;
+      } else {
+        okey->AppendCfgKeyVal(tmp_okey);
+      }
 
-    tmp_sib_count++;
-    if (tmp_sib_count == req->rep_count)
-      break;
+      tmp_sib_count++;
+      if (tmp_sib_count == req->rep_count)
+        break;
     }
     if ((okey != NULL) && (result_code == UPLL_RC_SUCCESS)) {
       ikey->ResetWith(okey);
       req->rep_count = tmp_sib_count;
       DELETE_IF_NOT_NULL(okey);
     }
-   FREE_LIST_CTRLR(list_ctrlr_dom);
+    FREE_LIST_CTRLR(list_ctrlr_dom);
   } else {
     result_code = UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
   }
@@ -4511,7 +4950,7 @@ upll_rc_t  VtnFlowFilterEntryMoMgr::ReadControllerStateDetail(
       reinterpret_cast <key_vtn_flowfilter_controller_t*>
       (ikey->get_key());
   val_flowfilter_controller_t *ival = reinterpret_cast
-            <val_flowfilter_controller_t *>(GetVal(ikey));
+      <val_flowfilter_controller_t *>(GetVal(ikey));
 
   if (*okey == NULL) {
     key_vtn_flowfilter_controller_t *tmp_ff_ctrl =
@@ -4528,12 +4967,12 @@ upll_rc_t  VtnFlowFilterEntryMoMgr::ReadControllerStateDetail(
                              IpctSt::kIpcStKeyVtnFlowfilterController,
                              tmp_ff_ctrl, NULL);
     val_flowfilter_controller_t* tmp_val_ff_ctrl =
-      reinterpret_cast <val_flowfilter_controller_t*>
-      (ConfigKeyVal::Malloc(sizeof(val_flowfilter_controller_t)));
+        reinterpret_cast <val_flowfilter_controller_t*>
+        (ConfigKeyVal::Malloc(sizeof(val_flowfilter_controller_t)));
 
     memcpy(tmp_val_ff_ctrl, ival, sizeof(val_flowfilter_controller_t));
     (*okey)->AppendCfgVal(IpctSt::kIpcStValFlowfilterController,
-       tmp_val_ff_ctrl);
+                          tmp_val_ff_ctrl);
   }
   ConfigKeyVal *tmp_okey = *okey;
   tmp_okey->AppendCfgVal(drv_resp_ckv->GetCfgValAndUnlink());
@@ -4550,49 +4989,50 @@ upll_rc_t  VtnFlowFilterEntryMoMgr::ConstructReadSiblingNormalResponse(
   controller_domain ctrlr_dom;
   memset(&ctrlr_dom, 0, sizeof(controller_domain));
   GET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
-  // Allocating The Key of KT_VTN_FF_Entry
-  // Allocating CKV tctrl_key
-  // Reading The  Entry_Ctrl_Table
-  // Extracting The Val from CKV tctrl_key
-
-    val_flowfilter_controller_t* l_val_ff_ctrl =
-        reinterpret_cast<val_flowfilter_controller_t *>
-        (ConfigKeyVal::Malloc(sizeof(val_flowfilter_controller_t)));
-
-    val_vtn_flowfilter_entry_ctrlr_t* val_vtn_ffe_ctrlr =
-        reinterpret_cast<val_vtn_flowfilter_entry_ctrlr_t*>(GetVal(ikey));
-
-    key_vtn_flowfilter_entry_t *l_key_vtn_ffe =
-        reinterpret_cast<key_vtn_flowfilter_entry_t *> (ikey->get_key());
-    l_val_ff_ctrl->valid[UPLL_IDX_DIRECTION_FFC] = UNC_VF_VALID;
-    l_val_ff_ctrl->direction = l_key_vtn_ffe->flowfilter_key.input_direction;
-    l_val_ff_ctrl->valid[UPLL_IDX_SEQ_NUM_FFC] = UNC_VF_VALID;
-    l_val_ff_ctrl->sequence_num = l_key_vtn_ffe->sequence_num;
-
-    (*okey)->AppendCfgVal(IpctSt::kIpcStValFlowfilterController,
-                           l_val_ff_ctrl);
+  //  Allocating The Key of KT_VTN_FF_Entry
+  //  Allocating CKV tctrl_key
+  //  Reading The  Entry_Ctrl_Table
+  //  Extracting The Val from CKV tctrl_key
 
-    val_vtn_flowfilter_entry_t *op_val_vtn_ffe =
-        reinterpret_cast<val_vtn_flowfilter_entry_t *>
-        (ConfigKeyVal::Malloc(sizeof(val_vtn_flowfilter_entry_t)));
+  val_flowfilter_controller_t* l_val_ff_ctrl =
+      reinterpret_cast<val_flowfilter_controller_t *>
+      (ConfigKeyVal::Malloc(sizeof(val_flowfilter_controller_t)));
 
-    result_code = GetCtrlFlowFilterEntry(l_key_vtn_ffe,
-                                         val_vtn_ffe_ctrlr,
-                                         dt_type,
-                                         dmi,
-                                         op_val_vtn_ffe,
-                   reinterpret_cast<const char*>(ctrlr_dom.ctrlr));
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetCtrlFlowFilterEntry error code (%d)", result_code);
-      free(op_val_vtn_ffe);
-      return result_code;
-    }
-    (*okey)->AppendCfgVal(IpctSt::kIpcStValVtnFlowfilterEntry, op_val_vtn_ffe);
+  val_vtn_flowfilter_entry_ctrlr_t* val_vtn_ffe_ctrlr =
+      reinterpret_cast<val_vtn_flowfilter_entry_ctrlr_t*>(GetVal(ikey));
+
+  key_vtn_flowfilter_entry_t *l_key_vtn_ffe =
+      reinterpret_cast<key_vtn_flowfilter_entry_t *> (ikey->get_key());
+  l_val_ff_ctrl->valid[UPLL_IDX_DIRECTION_FFC] = UNC_VF_VALID;
+  l_val_ff_ctrl->direction = l_key_vtn_ffe->flowfilter_key.input_direction;
+  l_val_ff_ctrl->valid[UPLL_IDX_SEQ_NUM_FFC] = UNC_VF_VALID;
+  l_val_ff_ctrl->sequence_num = l_key_vtn_ffe->sequence_num;
+
+  (*okey)->AppendCfgVal(IpctSt::kIpcStValFlowfilterController,
+                        l_val_ff_ctrl);
+
+  val_vtn_flowfilter_entry_t *op_val_vtn_ffe =
+      reinterpret_cast<val_vtn_flowfilter_entry_t *>
+      (ConfigKeyVal::Malloc(sizeof(val_vtn_flowfilter_entry_t)));
+
+  result_code = GetCtrlFlowFilterEntry(l_key_vtn_ffe,
+                                       val_vtn_ffe_ctrlr,
+                                       dt_type,
+                                       dmi,
+                                       op_val_vtn_ffe,
+                                       reinterpret_cast
+                                       <const char*>(ctrlr_dom.ctrlr));
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_DEBUG("GetCtrlFlowFilterEntry error code (%d)", result_code);
+    free(op_val_vtn_ffe);
+    return result_code;
+  }
+  (*okey)->AppendCfgVal(IpctSt::kIpcStValVtnFlowfilterEntry, op_val_vtn_ffe);
 
   return UPLL_RC_SUCCESS;
 }
 
-// Added
+//  Added
 upll_rc_t VtnFlowFilterEntryMoMgr::ValidateMessage(IpcReqRespHeader *req,
                                                    ConfigKeyVal *key) {
   UPLL_FUNC_TRACE;
@@ -4625,12 +5065,13 @@ upll_rc_t VtnFlowFilterEntryMoMgr::ValidateMessage(IpcReqRespHeader *req,
     UPLL_LOG_DEBUG(" Invalid keytype(%d)", key->get_key_type());
     return UPLL_RC_ERR_BAD_REQUEST;
   }
-  if ((req->datatype == UPLL_DT_IMPORT) && (req->operation == UNC_OP_READ ||
-       req->operation == UNC_OP_READ_SIBLING ||
-       req->operation == UNC_OP_READ_SIBLING_BEGIN ||
-       req->operation == UNC_OP_READ_NEXT ||
-       req->operation == UNC_OP_READ_BULK ||
-       req->operation == UNC_OP_READ_SIBLING_COUNT)) {
+  if ((req->datatype == UPLL_DT_IMPORT) && (
+          req->operation == UNC_OP_READ ||
+          req->operation == UNC_OP_READ_SIBLING ||
+          req->operation == UNC_OP_READ_SIBLING_BEGIN ||
+          req->operation == UNC_OP_READ_NEXT ||
+          req->operation == UNC_OP_READ_BULK ||
+          req->operation == UNC_OP_READ_SIBLING_COUNT)) {
     return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
   }
   return rt_code;
@@ -4707,9 +5148,9 @@ upll_rc_t VtnFlowFilterEntryMoMgr::ValidateMessageForVtnFlowFilterEntry(
   return ValidateVtnFlowfilterEntryValue(key, req);
 }
 
-upll_rc_t VtnFlowFilterEntryMoMgr::ValidateMessageForVtnFlowFilterController
-                                                   (IpcReqRespHeader *req,
-                                                   ConfigKeyVal *key) {
+upll_rc_t VtnFlowFilterEntryMoMgr::ValidateMessageForVtnFlowFilterController(
+    IpcReqRespHeader *req,
+    ConfigKeyVal *key) {
   UPLL_FUNC_TRACE;
   upll_rc_t rt_code = UPLL_RC_ERR_GENERIC;
 
@@ -4724,30 +5165,30 @@ upll_rc_t VtnFlowFilterEntryMoMgr::ValidateMessageForVtnFlowFilterController
     return UPLL_RC_ERR_INVALID_OPTION2;
   }
   if ((req->operation == UNC_OP_READ_SIBLING_COUNT) &&
-     (req->option1 != UNC_OPT1_NORMAL)) {
+      (req->option1 != UNC_OPT1_NORMAL)) {
     UPLL_LOG_DEBUG(" Invalid request(%d)", req->option1);
     return UPLL_RC_ERR_INVALID_OPTION1;
   }
 
   if (req->datatype != UPLL_DT_STATE) {
-      UPLL_LOG_DEBUG(" Invalid Datatype(%d)", req->datatype);
-      return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
+    UPLL_LOG_DEBUG(" Invalid Datatype(%d)", req->datatype);
+    return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
   }
 
   if (key->get_st_num() != IpctSt::kIpcStKeyVtnFlowfilterController) {
-      UPLL_LOG_DEBUG("Invalid key structure received. received struct num - %d",
-                     key->get_st_num());
-      return UPLL_RC_ERR_BAD_REQUEST;
+    UPLL_LOG_DEBUG("Invalid key structure received. received struct num - %d",
+                   key->get_st_num());
+    return UPLL_RC_ERR_BAD_REQUEST;
   }
 
   key_vtn_flowfilter_controller_t *key_vtn_flowfilter_controller =
-    reinterpret_cast<key_vtn_flowfilter_controller_t *>(key->get_key());
+      reinterpret_cast<key_vtn_flowfilter_controller_t *>(key->get_key());
   if (NULL == key_vtn_flowfilter_controller) {
-      UPLL_LOG_DEBUG("Key structure is empty!!");
-      return UPLL_RC_ERR_BAD_REQUEST;
+    UPLL_LOG_DEBUG("Key structure is empty!!");
+    return UPLL_RC_ERR_BAD_REQUEST;
   }
   VtnMoMgr *mgrvtn = reinterpret_cast<VtnMoMgr *>(
-    const_cast<MoManager*>(GetMoManager(UNC_KT_VTN)));
+      const_cast<MoManager*>(GetMoManager(UNC_KT_VTN)));
   if (NULL == mgrvtn) {
     UPLL_LOG_DEBUG("Unable to get KT_VTN object for key_vtn syntax validation");
     return UPLL_RC_ERR_GENERIC;
@@ -4755,25 +5196,25 @@ upll_rc_t VtnFlowFilterEntryMoMgr::ValidateMessageForVtnFlowFilterController
 
   rt_code = mgrvtn->ValidateVtnKey((&(key_vtn_flowfilter_controller->vtn_key)));
   if (UPLL_RC_SUCCESS != rt_code) {
-      UPLL_LOG_DEBUG(" Vtn name syntax validation failed :"
-                  "Err Code - %d",
-                  rt_code);
-      return rt_code;
+    UPLL_LOG_DEBUG(" Vtn name syntax validation failed :"
+                   "Err Code - %d",
+                   rt_code);
+    return rt_code;
   }
 
   if ((req->operation != UNC_OP_READ_SIBLING_COUNT) &&
       (req->operation != UNC_OP_READ_SIBLING_BEGIN)) {
     rt_code = ValidateKey(reinterpret_cast<char*>(
-      key_vtn_flowfilter_controller->controller_name),
+            key_vtn_flowfilter_controller->controller_name),
         kMinLenCtrlrId, kMaxLenCtrlrId);
 
     if (rt_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Controllername syntax validation failed: Err code-%d",
-                    rt_code);
+                     rt_code);
       return rt_code;
     }
     if (!ValidateDefaultStr(key_vtn_flowfilter_controller->domain_id,
-        kMinLenDomainId, kMaxLenDomainId)) {
+                            kMinLenDomainId, kMaxLenDomainId)) {
       UPLL_LOG_DEBUG("DomainId syntax validation failed:");
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
@@ -4788,8 +5229,8 @@ upll_rc_t VtnFlowFilterEntryMoMgr::ValidateMessageForVtnFlowFilterController
 
   if (!key->get_cfg_val()) {
     if (req->operation == UNC_OP_READ_SIBLING_COUNT) {
-       UPLL_LOG_TRACE("val stucture is optional");
-       return UPLL_RC_SUCCESS;
+      UPLL_LOG_TRACE("val stucture is optional");
+      return UPLL_RC_SUCCESS;
     } else {
       UPLL_LOG_DEBUG(" val structure is mandatory");
       return UPLL_RC_ERR_BAD_REQUEST;
@@ -4805,7 +5246,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::ValidateMessageForVtnFlowFilterController
 
   val_flowfilter_controller_t *val_ff_ctrlr =
       static_cast<val_flowfilter_controller_t *>(
-         key->get_cfg_val()->get_val());
+          key->get_cfg_val()->get_val());
 
   if (NULL == val_ff_ctrlr) {
     UPLL_LOG_DEBUG("KT_VTN_FLOWFILTER_CONTROLLER val structure is null");
@@ -4815,7 +5256,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::ValidateMessageForVtnFlowFilterController
 
 
   return ValidateVtnFlowfilterControllerValue(
-                val_ff_ctrlr, req->operation);
+      val_ff_ctrlr, req->operation);
 }
 
 upll_rc_t VtnFlowFilterEntryMoMgr::ValidateVtnFlowfilterControllerValue(
@@ -4857,15 +5298,15 @@ upll_rc_t VtnFlowFilterEntryMoMgr::ValidateVtnFlowfilterControllerValue(
 }
 
 upll_rc_t VtnFlowFilterEntryMoMgr::ValidateCapability(IpcReqRespHeader *req,
-                                   ConfigKeyVal *ikey,
-                                   const char* ctrlr_name) {
+                                                      ConfigKeyVal *ikey,
+                                                      const char* ctrlr_name) {
   UPLL_FUNC_TRACE;
 
-  
+
   upll_rc_t rt_code = UPLL_RC_ERR_GENERIC;
 
   if ((NULL == req) || (NULL == ikey)) {
-   UPLL_LOG_DEBUG("IpcReqRespHeader/ConfigKeyval is NULL");
+    UPLL_LOG_DEBUG("IpcReqRespHeader/ConfigKeyval is NULL");
     return rt_code;
   }
 
@@ -4874,15 +5315,15 @@ upll_rc_t VtnFlowFilterEntryMoMgr::ValidateCapability(IpcReqRespHeader *req,
   } else if (UNC_KT_VTN_FLOWFILTER_CONTROLLER == ikey->get_key_type()) {
     return ValidateCapabilityForVtnFlowFilterController(req, ikey, ctrlr_name);
   } else {
-    // Invalid key_type trace
+    //  Invalid key_type trace
     return UPLL_RC_ERR_GENERIC;
   }
 }
 
 upll_rc_t VtnFlowFilterEntryMoMgr::
-     ValidateCapabilityForVtnFlowFilterEntry(IpcReqRespHeader *req,
-                                   ConfigKeyVal *ikey,
-                                   const char* ctrlr_name) {
+ValidateCapabilityForVtnFlowFilterEntry(IpcReqRespHeader *req,
+                                        ConfigKeyVal *ikey,
+                                        const char* ctrlr_name) {
   UPLL_FUNC_TRACE;
 
   if (!ctrlr_name)
@@ -4898,18 +5339,12 @@ upll_rc_t VtnFlowFilterEntryMoMgr::
   switch (req->operation) {
     case UNC_OP_CREATE: {
       ret_code = GetCreateCapability(ctrlr_name, ikey->get_key_type(),
-                                        &max_instance_count, &max_attrs, &attrs);
-      if (ret_code && (max_instance_count != 0) &&
-          (cur_instance_count >= max_instance_count)) {
-        UPLL_LOG_DEBUG("Instance count %d exceeds %d", cur_instance_count,
-                      max_instance_count);
-        return UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
-      }
+                                     &max_instance_count, &max_attrs, &attrs);
       break;
     }
     case UNC_OP_UPDATE: {
       ret_code = GetUpdateCapability(ctrlr_name, ikey->get_key_type(),
-                                        &max_attrs, &attrs);
+                                     &max_attrs, &attrs);
       break;
     }
     default: {
@@ -4920,7 +5355,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::
       } else {
         UPLL_LOG_DEBUG("Calling the GetReadCapability");
         ret_code = GetReadCapability(ctrlr_name, ikey->get_key_type(),
-                                      &max_attrs, &attrs);
+                                     &max_attrs, &attrs);
       }
     }
   }
@@ -4936,13 +5371,14 @@ upll_rc_t VtnFlowFilterEntryMoMgr::
       reinterpret_cast<val_vtn_flowfilter_entry_t *>(GetVal(ikey));
 
   if (val_vtn_flowfilter_entry) {
-     if (max_attrs > 0) {
-        return ValVtnFlowfilterEntryAttributeSupportCheck(
-           val_vtn_flowfilter_entry, attrs);
-     } else {
-        UPLL_LOG_DEBUG("Attribute list is empty for operation %d", req->operation);
-        return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
-     }
+    if (max_attrs > 0) {
+      return ValVtnFlowfilterEntryAttributeSupportCheck(
+          val_vtn_flowfilter_entry, attrs);
+    } else {
+      UPLL_LOG_DEBUG("Attribute list is empty for operation %d",
+                     req->operation);
+      return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
+    }
   }
   return UPLL_RC_SUCCESS;
 }
@@ -4967,8 +5403,8 @@ upll_rc_t VtnFlowFilterEntryMoMgr::ValidateCapabilityForVtnFlowFilterController(
 
   if (req->datatype == UPLL_DT_STATE) {
     UPLL_LOG_DEBUG("Calling the GetStateCapability");
-     result_code = GetStateCapability(ctrlr_name, ikey->get_key_type(),
-                                    &max_attrs, &attrs);
+    result_code = GetStateCapability(ctrlr_name, ikey->get_key_type(),
+                                     &max_attrs, &attrs);
   } else {
     UPLL_LOG_DEBUG("Calling the GetReadCapability");
     result_code = GetReadCapability(ctrlr_name, ikey->get_key_type(),
@@ -4981,44 +5417,45 @@ upll_rc_t VtnFlowFilterEntryMoMgr::ValidateCapabilityForVtnFlowFilterController(
   }
 
   val_flowfilter_controller_t *val_ff_ctrlr =
-        reinterpret_cast<val_flowfilter_controller_t *>(GetVal(ikey));
+      reinterpret_cast<val_flowfilter_controller_t *>(GetVal(ikey));
 
-   if (val_ff_ctrlr) {
-      if (max_attrs > 0) {
-        return ValVtnFlowfilterCtrlAttributeSupportCheck(
-             val_ff_ctrlr, attrs);
-      } else {
-          UPLL_LOG_DEBUG("Attribute list is empty for operation %d", req->operation);
-          return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
-      }
+  if (val_ff_ctrlr) {
+    if (max_attrs > 0) {
+      return ValVtnFlowfilterCtrlAttributeSupportCheck(
+          val_ff_ctrlr, attrs);
+    } else {
+      UPLL_LOG_DEBUG("Attribute list is empty for operation %d",
+                     req->operation);
+      return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
     }
-   return UPLL_RC_SUCCESS;
+  }
+  return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t VtnFlowFilterEntryMoMgr::ValVtnFlowfilterCtrlAttributeSupportCheck(
-  val_flowfilter_controller_t *val_ff_ctrlr,
-  const uint8_t* attrs) {
+    val_flowfilter_controller_t *val_ff_ctrlr,
+    const uint8_t* attrs) {
   UPLL_FUNC_TRACE;
 
   if ((val_ff_ctrlr->valid[UPLL_IDX_DIRECTION_FFC] ==
-        UNC_VF_VALID) ||
+       UNC_VF_VALID) ||
       (val_ff_ctrlr->valid[UPLL_IDX_DIRECTION_FFC] ==
-          UNC_VF_VALID_NO_VALUE)) {
+       UNC_VF_VALID_NO_VALUE)) {
     if (attrs[unc::capa::vtn_flowfilter_controller::kCapDirection]== 0) {
       val_ff_ctrlr->valid[UPLL_IDX_DIRECTION_FFC] =
-        UNC_VF_NOT_SUPPORTED;
+          UNC_VF_NOT_SUPPORTED;
 
       UPLL_LOG_DEBUG("Direction attr is not supported by ctrlr");
     }
   }
 
   if ((val_ff_ctrlr->valid[UPLL_IDX_SEQ_NUM_FFC] ==
-        UNC_VF_VALID) ||
+       UNC_VF_VALID) ||
       (val_ff_ctrlr->valid[UPLL_IDX_SEQ_NUM_FFC] ==
-        UNC_VF_VALID_NO_VALUE)) {
+       UNC_VF_VALID_NO_VALUE)) {
     if (attrs[unc::capa::vtn_flowfilter_controller::kCapSeqNum]== 0) {
       val_ff_ctrlr->valid[UPLL_IDX_SEQ_NUM_FFC] =
-        UNC_VF_NOT_SUPPORTED;
+          UNC_VF_NOT_SUPPORTED;
 
       UPLL_LOG_DEBUG("SeqNum attr is not supported by ctrlr");
     }
@@ -5033,19 +5470,19 @@ upll_rc_t  VtnFlowFilterEntryMoMgr::ReadControllerStateNormal(
     DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
-  // Extracting The Key of KT_VTN_FF_Ctrl
+  //  Extracting The Key of KT_VTN_FF_Ctrl
   key_vtn_flowfilter_controller_t *key_vtn_ff_ctrl =
       reinterpret_cast<key_vtn_flowfilter_controller_t*>(ikey->get_key());
-  // Extracting The VAl of KT_VTN_FF_Ctrl
+  //  Extracting The VAl of KT_VTN_FF_Ctrl
   val_flowfilter_controller_t* val_ff_ctrl =
       reinterpret_cast<val_flowfilter_controller_t*>(GetVal(ikey));
 
-  // Allocating The Key of KT_VTN_FF_Entry
+  //  Allocating The Key of KT_VTN_FF_Entry
   key_vtn_flowfilter_entry_t *key_vtn_ffe_ctrl =
       reinterpret_cast <key_vtn_flowfilter_entry_t*>
       (ConfigKeyVal::Malloc(sizeof(key_vtn_flowfilter_entry_t)));
 
-  // Copying The seqno, i/p dir, Vtn_Name to The Above Key of CKV tctrl_key
+  //  Copying The seqno, i/p dir, Vtn_Name to The Above Key of CKV tctrl_key
   uuu::upll_strncpy(
       key_vtn_ffe_ctrl->flowfilter_key.vtn_key.vtn_name,
       key_vtn_ff_ctrl->vtn_key.vtn_name,
@@ -5064,12 +5501,13 @@ upll_rc_t  VtnFlowFilterEntryMoMgr::ReadControllerStateNormal(
   ikey->DeleteCfgVal();
   val_ff_ctrl = NULL;
 
-  // Allocating CKV tctrl_key
-  ConfigKeyVal *tctrl_key = new ConfigKeyVal(UNC_KT_VTN_FLOWFILTER_ENTRY,
-                                             IpctSt::kIpcStKeyVtnFlowfilterEntry,
-                                             key_vtn_ffe_ctrl, NULL);
+  //  Allocating CKV tctrl_key
+  ConfigKeyVal *tctrl_key = new ConfigKeyVal(
+      UNC_KT_VTN_FLOWFILTER_ENTRY,
+      IpctSt::kIpcStKeyVtnFlowfilterEntry,
+      key_vtn_ffe_ctrl, NULL);
 
-  // Reading The  Entry_Ctrl_Table
+  //  Reading The  Entry_Ctrl_Table
   SET_USER_DATA_CTRLR(tctrl_key, key_vtn_ff_ctrl->controller_name);
   SET_USER_DATA_DOMAIN(tctrl_key, key_vtn_ff_ctrl->domain_id);
   DbSubOp dbop1 = { kOpReadMultiple, kOpMatchCtrlr|kOpMatchDomain,
@@ -5082,7 +5520,7 @@ upll_rc_t  VtnFlowFilterEntryMoMgr::ReadControllerStateNormal(
     return result_code;
   }
 
-  // Extracting The Val from CKV tctrl_key
+  //  Extracting The Val from CKV tctrl_key
   ConfigKeyVal *tmp_key = tctrl_key;
   while (tmp_key != NULL) {
     val_flowfilter_controller_t *l_val_ff_ctrl =
@@ -5104,12 +5542,13 @@ upll_rc_t  VtnFlowFilterEntryMoMgr::ReadControllerStateNormal(
         reinterpret_cast<val_vtn_flowfilter_entry_t *>
         (ConfigKeyVal::Malloc(sizeof(val_vtn_flowfilter_entry_t)));
 
-    result_code = GetCtrlFlowFilterEntry(l_key_vtn_ffe,
-                                         val_vtn_ffe_ctrlr,
-                                         dt_type,
-                                         dmi,
-                                         op_val_vtn_ffe,
-              reinterpret_cast<const char*>(key_vtn_ff_ctrl->controller_name));
+    result_code = GetCtrlFlowFilterEntry(
+        l_key_vtn_ffe,
+        val_vtn_ffe_ctrlr,
+        dt_type,
+        dmi,
+        op_val_vtn_ffe,
+        reinterpret_cast<const char*>(key_vtn_ff_ctrl->controller_name));
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("GetCtrlFlowFilterEntry error code (%d)", result_code);
       return result_code;
@@ -5127,8 +5566,8 @@ upll_rc_t VtnFlowFilterEntryMoMgr::GetCtrlFlowFilterEntry(
     upll_keytype_datatype_t dt_type,
     DalDmlIntf *dmi,
     val_vtn_flowfilter_entry_t *&op_val_vtn_ffe,
-   const char* ctrlr_name,
-   unc_keytype_option1_t opt1) {
+    const char* ctrlr_name,
+    unc_keytype_option1_t opt1) {
 
   UPLL_FUNC_TRACE;
   const uint8_t *attrs = NULL;
@@ -5142,7 +5581,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::GetCtrlFlowFilterEntry(
   tkey = new ConfigKeyVal(UNC_KT_VTN_FLOWFILTER_ENTRY,
                           IpctSt::kIpcStKeyVtnFlowfilterEntry,
                           key_vtn_ffe, NULL);
-  // Now Matching Seq NO, Dir, VTNNAME To KEY of CKV tkey
+  //  Now Matching Seq NO, Dir, VTNNAME To KEY of CKV tkey
 
   memcpy(key_vtn_ffe, l_key_vtn_ffe, sizeof(key_vtn_flowfilter_entry_t));
 
@@ -5154,11 +5593,11 @@ upll_rc_t VtnFlowFilterEntryMoMgr::GetCtrlFlowFilterEntry(
     delete tkey;
     return result_code;
   }
-  // NOW Extract The Val From THe tkey Which Consist
-  // Value+CS+Valid Attr.of VTN_FF_ENTRY_TBL
+  //  NOW Extract The Val From THe tkey Which Consist
+  //  Value+CS+Valid Attr.of VTN_FF_ENTRY_TBL
   val_vtn_flowfilter_entry_t *temp_val_vtn_ffe =
       reinterpret_cast<val_vtn_flowfilter_entry_t*>(GetVal(tkey));
-  // Checking The Valid And Cs Attribute
+  //  Checking The Valid And Cs Attribute
   size_t tmp_size = (sizeof(val_vtn_ffe_ctrlr->valid) /
                      sizeof(val_vtn_ffe_ctrlr->valid[0]));
 
@@ -5169,26 +5608,27 @@ upll_rc_t VtnFlowFilterEntryMoMgr::GetCtrlFlowFilterEntry(
   memcpy(temp_val_vtn_ffe->cs_attr, val_vtn_ffe_ctrlr->cs_attr, tmp_size);
 
   temp_val_vtn_ffe->cs_row_status = (uint8_t)val_vtn_ffe_ctrlr->cs_row_status;
-  //Adding capaCheck for controller  
+  // Adding capaCheck for controller
   bool ret_code = false;
 
   if ((opt1 == UNC_OPT1_DETAIL) && (dt_type == UPLL_DT_STATE)) {
     ret_code = GetStateCapability(ctrlr_name, UNC_KT_VTN_FLOWFILTER_ENTRY,
-                                      &max_attrs, &attrs);
-    if(!ret_code ) {
-      UPLL_LOG_DEBUG("GetStateCapability Is failed in GetCtrlFlowFilterEntry %d",
-                  ret_code);
-     return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
-  }
+                                  &max_attrs, &attrs);
+    if (!ret_code) {
+      UPLL_LOG_DEBUG("GetStateCapability Is failed in"
+                     "GetCtrlFlowFilterEntry %d",
+                     ret_code);
+      return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
+    }
 
-  if(max_attrs>0) {
-   result_code =  ValVtnFlowfilterEntryAttributeSupportCheck(
-                                   temp_val_vtn_ffe, attrs);
-   if(result_code != UPLL_RC_SUCCESS) {
-     UPLL_LOG_DEBUG("ERR result_code %d", result_code );
-     return result_code;
-   }  
-  }
+    if (max_attrs > 0) {
+      result_code =  ValVtnFlowfilterEntryAttributeSupportCheck(
+          temp_val_vtn_ffe, attrs);
+      if (result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("ERR result_code %d", result_code);
+        return result_code;
+      }
+    }
   }
 
   if (temp_val_vtn_ffe->valid[UPLL_IDX_FLOWLIST_NAME_VFFE] != UNC_VF_VALID) {
@@ -5225,30 +5665,28 @@ upll_rc_t VtnFlowFilterEntryMoMgr::GetVtnControllerSpan(
   ConfigKeyVal *okey = NULL;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   VtnMoMgr *mgr = static_cast<VtnMoMgr*>(const_cast<MoManager*>
-                                           (GetMoManager(UNC_KT_VTN)));
+                                         (GetMoManager(UNC_KT_VTN)));
   result_code = mgr->GetChildConfigKey(okey, NULL);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("Key not supported by controller");
     return result_code;
   }
   key_vtn_t *vtn_key = reinterpret_cast<key_vtn*>(okey->get_key());
-
   if (ikey->get_key_type() == UNC_KT_VTN_FLOWFILTER_CONTROLLER) {
-
     key_vtn_flowfilter_controller_t *key_vtn_ff_ctrl =
-      reinterpret_cast<key_vtn_flowfilter_controller_t*>(ikey->get_key());
+        reinterpret_cast<key_vtn_flowfilter_controller_t*>(ikey->get_key());
     uuu::upll_strncpy(vtn_key->vtn_name,
-                    key_vtn_ff_ctrl->vtn_key.vtn_name,
-                    (kMaxLenVtnName+1));
-   
+                      key_vtn_ff_ctrl->vtn_key.vtn_name,
+                      (kMaxLenVtnName+1));
+
   } else {
     key_vtn_flowfilter_entry_t *ffe_key =
-      reinterpret_cast<key_vtn_flowfilter_entry_t*>(ikey->get_key());
+        reinterpret_cast<key_vtn_flowfilter_entry_t*>(ikey->get_key());
     uuu::upll_strncpy(vtn_key->vtn_name,
-                    ffe_key->flowfilter_key.vtn_key.vtn_name,
-                    (kMaxLenVtnName+1));
-  } 
-  
+                      ffe_key->flowfilter_key.vtn_key.vtn_name,
+                      (kMaxLenVtnName+1));
+  }
+
   result_code = mgr->GetControllerDomainSpan(okey, dt_type,
                                              dmi,
                                              list_ctrlr_dom);
@@ -5263,8 +5701,8 @@ upll_rc_t VtnFlowFilterEntryMoMgr::GetVtnControllerSpan(
 }
 
 upll_rc_t VtnFlowFilterEntryMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
-                                   DalDmlIntf *dmi,
-                                   const char *ctrlr_id) {
+                                                     DalDmlIntf *dmi,
+                                                     const char *ctrlr_id) {
   UPLL_FUNC_TRACE;
   if (ikey == NULL || dmi == NULL) {
     UPLL_LOG_TRACE(
@@ -5274,45 +5712,175 @@ upll_rc_t VtnFlowFilterEntryMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   upll_rc_t vtn_ctrlr_span_rt_code = UPLL_RC_SUCCESS;
   uint8_t *controller_id = reinterpret_cast<uint8_t *>(
-                                 const_cast<char *>(ctrlr_id));
+      const_cast<char *>(ctrlr_id));
+  key_vtn_flowfilter_entry_t *vtn_ffe_key =
+      reinterpret_cast<key_vtn_flowfilter_entry_t *>(ikey->get_key());
+  if (!vtn_ffe_key) {
+    UPLL_LOG_DEBUG("vtn_ffe_key NULL");
+    return UPLL_RC_ERR_GENERIC;
+  }
+  uint8_t old_vtn_name[kMaxLenVtnName + 1], new_vtn_name[kMaxLenVtnName + 1];
+  memset(old_vtn_name, 0, sizeof(old_vtn_name));
+  memset(new_vtn_name, 0, sizeof(new_vtn_name));
+  uuu::upll_strncpy(old_vtn_name, vtn_ffe_key->flowfilter_key.vtn_key.vtn_name,
+                    kMaxLenVtnName+1);
+
   UPLL_LOG_TRACE("%s Vtn_FFE CreateAuditMoImpl ikey",
-                    ikey->ToStrAll().c_str());
+                 ikey->ToStrAll().c_str());
   result_code = GetRenamedUncKey(ikey, UPLL_DT_RUNNING, dmi, controller_id);
   if (result_code != UPLL_RC_SUCCESS &&
       result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
     UPLL_LOG_DEBUG("GetRenamedUncKey Failed err_code %d", result_code);
     return result_code;
   }
+  uuu::upll_strncpy(new_vtn_name, vtn_ffe_key->flowfilter_key.vtn_key.vtn_name,
+                    kMaxLenVtnName+1);
   DbSubOp dbop1 = { kOpReadExist, kOpMatchNone, kOpInOutNone };
 
   result_code = UpdateConfigDB(ikey, UPLL_DT_AUDIT, UNC_OP_READ, dmi,
-      &dbop1, MAINTBL);
+                               &dbop1, MAINTBL);
   if (result_code != UPLL_RC_ERR_INSTANCE_EXISTS &&
       result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
     UPLL_LOG_DEBUG("Update record Err in vtnffentry MainTbl(%d)",
-        result_code);
+                   result_code);
     return result_code;
   }
 
   if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-
     result_code = UpdateConfigDB(ikey, UPLL_DT_AUDIT, UNC_OP_CREATE,
-        dmi, MAINTBL);
+                                 dmi, MAINTBL);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Update record Err in vtnffentry MainTbl(%d)",
-        result_code);
+                     result_code);
       return result_code;
     }
   }
 
   std::list<controller_domain_t> list_ctrlr_dom;
-  vtn_ctrlr_span_rt_code = GetVtnControllerSpan(ikey, UPLL_DT_AUDIT, dmi, list_ctrlr_dom);
-  if ((vtn_ctrlr_span_rt_code != UPLL_RC_SUCCESS) &&
-      (vtn_ctrlr_span_rt_code != UPLL_RC_ERR_NO_SUCH_INSTANCE)) {
-    UPLL_LOG_DEBUG(" GetVtnControllerSpan  error code (%d)",
-                   vtn_ctrlr_span_rt_code);
-    FREE_LIST_CTRLR(list_ctrlr_dom);
-    return result_code;
+  MoMgrImpl *mgr = static_cast<MoMgrImpl*>((const_cast<MoManager*>(
+              GetMoManager(
+                  UNC_KT_VTN))));
+  UPLL_LOG_DEBUG(" old vtn name (%s), new vtn name (%s)", old_vtn_name,
+                 new_vtn_name);
+  if (!(strcmp(reinterpret_cast<const char *>(old_vtn_name),
+               reinterpret_cast<const char *>(new_vtn_name)))) {
+    std::list<controller_domain_t> tmp_list_ctrlr_dom;
+    vtn_ctrlr_span_rt_code = GetVtnControllerSpan(ikey,
+                                                  UPLL_DT_AUDIT,
+                                                  dmi,
+                                                  tmp_list_ctrlr_dom);
+    if ((vtn_ctrlr_span_rt_code != UPLL_RC_SUCCESS) &&
+        (vtn_ctrlr_span_rt_code != UPLL_RC_ERR_NO_SUCH_INSTANCE)) {
+      UPLL_LOG_DEBUG(" GetVtnControllerSpan  error code (%d)",
+                     vtn_ctrlr_span_rt_code);
+      FREE_LIST_CTRLR(list_ctrlr_dom);
+      return vtn_ctrlr_span_rt_code;
+    }
+    if (vtn_ctrlr_span_rt_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+      ConfigKeyVal *unc_key = NULL;
+      result_code = mgr->GetChildConfigKey(unc_key, NULL);
+      if (result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("GetChildConfigKey fail");
+        return result_code;
+      }
+      val_rename_vtn *rename_vtn_key = reinterpret_cast<val_rename_vtn*>
+          (ConfigKeyVal::Malloc(sizeof(val_rename_vtn)));
+      if (!rename_vtn_key) {
+        UPLL_LOG_DEBUG("rename_vtn_key NULL");
+        DELETE_IF_NOT_NULL(unc_key);
+        return UPLL_RC_ERR_GENERIC;
+      }
+      uuu::upll_strncpy(rename_vtn_key->new_name,
+                        old_vtn_name,
+                        (kMaxLenVtnName + 1));
+      rename_vtn_key->valid[UPLL_IDX_NEW_NAME_RVTN] = UNC_VF_VALID;
+      unc_key->AppendCfgVal(IpctSt::kIpcStValRenameVtn, rename_vtn_key);
+      DbSubOp dbop = { kOpReadSingle,
+        kOpMatchCtrlr|kOpMatchDomain,
+        kOpInOutNone };
+      std::list<controller_domain_t>::iterator it;
+      for (it = tmp_list_ctrlr_dom.begin();
+           it != tmp_list_ctrlr_dom.end(); it++) {
+        SET_USER_DATA_CTRLR_DOMAIN(unc_key, *it);
+        result_code = mgr->ReadConfigDB(unc_key,
+                                        UPLL_DT_RUNNING,
+                                        UNC_OP_READ,
+                                        dbop,
+                                        dmi,
+                                        RENAMETBL);
+        if ((UPLL_RC_SUCCESS != result_code) &&
+            (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
+          UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
+          DELETE_IF_NOT_NULL(unc_key);
+          mgr = NULL;
+          return result_code;
+        }
+        if (UPLL_RC_SUCCESS == result_code) {
+          continue;
+        }
+        list_ctrlr_dom.push_back(*it);
+        tmp_list_ctrlr_dom.clear();
+        break;
+      }
+      DELETE_IF_NOT_NULL(unc_key);
+    }
+  } else {
+    controller_domain_t tmp_ctrlr_dom, ctrlr_dom;
+    tmp_ctrlr_dom.ctrlr = NULL;
+    tmp_ctrlr_dom.domain = NULL;
+    ctrlr_dom.ctrlr = NULL;
+    ctrlr_dom.domain = NULL;
+    ConfigKeyVal *unc_key = NULL;
+    DbSubOp dbop = { kOpReadSingle,
+      kOpMatchCtrlr,
+      kOpInOutDomain|kOpInOutCtrlr };
+    MoMgrImpl *mgr = static_cast<MoMgrImpl*>
+        ((const_cast<MoManager*>(GetMoManager(
+                    UNC_KT_VTN))));
+    result_code = mgr->GetChildConfigKey(unc_key, NULL);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("GetChildConfigKey fail");
+      return result_code;
+    }
+    val_rename_vtn *rename_vtn_key = reinterpret_cast<val_rename_vtn*>
+        (ConfigKeyVal::Malloc(sizeof(val_rename_vtn)));
+    if (!rename_vtn_key) {
+      UPLL_LOG_DEBUG("rename_vtn_key NULL");
+      DELETE_IF_NOT_NULL(unc_key);
+      return UPLL_RC_ERR_GENERIC;
+    }
+    uuu::upll_strncpy(rename_vtn_key->new_name,
+                      old_vtn_name,
+                      (kMaxLenVtnName + 1));
+    rename_vtn_key->valid[UPLL_IDX_NEW_NAME_RVTN] = UNC_VF_VALID;
+
+    SET_USER_DATA_CTRLR(unc_key, ctrlr_id);
+    unc_key->AppendCfgVal(IpctSt::kIpcStValRenameVtn, rename_vtn_key);
+    result_code = mgr->ReadConfigDB(unc_key, UPLL_DT_RUNNING, UNC_OP_READ, dbop,
+                                    dmi, RENAMETBL);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
+      DELETE_IF_NOT_NULL(unc_key);
+      mgr = NULL;
+      return result_code;
+    }
+
+    ctrlr_dom.ctrlr = reinterpret_cast<uint8_t *>
+        (ConfigKeyVal::Malloc((kMaxLenCtrlrId + 1)));
+    ctrlr_dom.domain = reinterpret_cast<uint8_t *>
+        (ConfigKeyVal::Malloc((kMaxLenDomainId + 1)));
+
+    GET_USER_DATA_CTRLR_DOMAIN(unc_key, tmp_ctrlr_dom);
+    uuu::upll_strncpy(ctrlr_dom.ctrlr, tmp_ctrlr_dom.ctrlr,
+                      (kMaxLenCtrlrId + 1));
+    uuu::upll_strncpy(ctrlr_dom.domain, tmp_ctrlr_dom.domain,
+                      (kMaxLenDomainId + 1));
+
+    UPLL_LOG_TRACE(" ctrlr = %s, dom = %s ", ctrlr_dom.ctrlr,
+                   ctrlr_dom.domain);
+    list_ctrlr_dom.push_back(ctrlr_dom);
+    vtn_ctrlr_span_rt_code = UPLL_RC_SUCCESS;
+    DELETE_IF_NOT_NULL(unc_key);
   }
 
   result_code = SetValidAudit(ikey);
@@ -5320,7 +5888,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
     FREE_LIST_CTRLR(list_ctrlr_dom);
     return result_code;
   }
-  // create a record in CANDIDATE DB for controller Table
+  //  create a record in CANDIDATE DB for controller Table
   if (vtn_ctrlr_span_rt_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
     result_code = UpdateControllerTable(ikey, UNC_OP_CREATE,
                                         UPLL_DT_AUDIT, dmi,
@@ -5332,9 +5900,12 @@ upll_rc_t VtnFlowFilterEntryMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
     }
   }
   val_vtn_flowfilter_entry_t *val_vtn_ffe = reinterpret_cast
-    <val_vtn_flowfilter_entry_t *>(GetVal(ikey));
+      <val_vtn_flowfilter_entry_t *>(GetVal(ikey));
   if (UNC_VF_VALID == val_vtn_ffe->valid[UPLL_IDX_FLOWLIST_NAME_VFFE]) {
-    result_code = UpdateFlowListInCtrl(ikey, UPLL_DT_AUDIT, UNC_OP_CREATE, dmi);
+    result_code = UpdateFlowListInCtrl(ikey,
+                                       UPLL_DT_AUDIT,
+                                       UNC_OP_CREATE,
+                                       dmi);
     if (result_code != UPLL_RC_SUCCESS) {
       return result_code;
     }
@@ -5366,61 +5937,39 @@ upll_rc_t VtnFlowFilterEntryMoMgr::UpdateControllerTable(
         <val_vtn_flowfilter_entry_t *>(GetVal(ikey));
 
     if ((op == UNC_OP_CREATE) || (op == UNC_OP_UPDATE)) {
-      if (op == UNC_OP_CREATE) {
-        //capability check
-
-        ConfigKeyVal *temp_key = NULL;
-        result_code = GetChildConfigKey(temp_key, NULL);
-        if (UPLL_RC_SUCCESS != result_code) {
-          free(vtn_ffe_key);
-          UPLL_LOG_DEBUG("GetChildConfigKey failed(%d)",result_code);
-          return result_code;
-        }
-
-        result_code = GetInstanceCount(temp_key,
-                                       reinterpret_cast<char*>(it->ctrlr),
-                                       UPLL_DT_CANDIDATE,
-                                       &cur_instance_count,
-                                       dmi, CTRLRTBL);
-
-        if (UPLL_RC_SUCCESS != result_code) {
-          free(vtn_ffe_key);
-          DELETE_IF_NOT_NULL(temp_key);
-          UPLL_LOG_DEBUG("GetInstanceCount failed(%d)",result_code);
-          return result_code;
-        }
-        DELETE_IF_NOT_NULL(temp_key);
-      }
       IpcReqRespHeader *req_header = reinterpret_cast<IpcReqRespHeader*>
-               (ConfigKeyVal::Malloc(sizeof(IpcReqRespHeader)));
+          (ConfigKeyVal::Malloc(sizeof(IpcReqRespHeader)));
 
       req_header->operation = op;
       req_header->datatype = dt_type;
 
-      // Validate whether the attributes supported by controller or not
+      //  Validate whether the attributes supported by controller or not
       result_code = ValidateCapability(
-        req_header, ikey, reinterpret_cast<char*>(it->ctrlr));
+          req_header, ikey, reinterpret_cast<char*>(it->ctrlr));
       free(req_header);
 
       if (result_code != UPLL_RC_SUCCESS) {
-        // VTN FlowfilterEntry is not supported for other than PFC Controller
-        // so skip adding entry for such sontroller in ctrlr table
+        //  VTN FlowfilterEntry is not supported for other than PFC Controller
+        //  so skip adding entry for such sontroller in ctrlr table
         free(vtn_ffe_key);
         if ((!ctrlr_mgr->GetCtrlrType(reinterpret_cast<char *>(it->ctrlr),
-                       dt_type, &ctrlrtype)) || (ctrlrtype != UNC_CT_PFC)) {
-            result_code = UPLL_RC_SUCCESS; 
-            UPLL_LOG_DEBUG("Controller type is  %d", ctrlrtype);
-            ++it;
-            continue;
+                                      dt_type,
+                                      &ctrlrtype)) ||
+            (ctrlrtype != UNC_CT_PFC)) {
+          result_code = UPLL_RC_SUCCESS;
+          UPLL_LOG_DEBUG("Controller type is  %d", ctrlrtype);
+          ++it;
+          continue;
         }
         UPLL_LOG_DEBUG("ValidateCapability Failed: result_code=%d",
-              result_code);
+                       result_code);
         return result_code;
-     }
+      }
     }
     val_vtn_flowfilter_entry_ctrlr_t *ctrlr_val = reinterpret_cast
-        <val_vtn_flowfilter_entry_ctrlr_t *>(ConfigKeyVal::Malloc(sizeof
-        (val_vtn_flowfilter_entry_ctrlr_t)));
+        <val_vtn_flowfilter_entry_ctrlr_t *>
+        (ConfigKeyVal::Malloc(sizeof
+                              (val_vtn_flowfilter_entry_ctrlr_t)));
     for (unsigned int loop = 0;
          loop < (sizeof(ctrlr_val->valid)/sizeof(ctrlr_val->valid[0]));
          loop++) {
@@ -5435,13 +5984,13 @@ upll_rc_t VtnFlowFilterEntryMoMgr::UpdateControllerTable(
                                IpctSt::kIpcStKeyVtnFlowfilterEntry,
                                vtn_ffe_key, ctrlcv);
     if (!ctrlckv) return UPLL_RC_ERR_GENERIC;
-    // ctrlckv->AppendCfgVal(IpctSt::kIpcInvalidStNum, ctrlr_val);
+    //  ctrlckv->AppendCfgVal(IpctSt::kIpcInvalidStNum, ctrlr_val);
     SET_USER_DATA_CTRLR_DOMAIN(ctrlckv, *it);
     if (UNC_OP_CREATE == op) {
       DbSubOp dbop1 = { kOpReadExist, kOpMatchCtrlr |
         kOpMatchDomain, kOpInOutNone };
       result_code = UpdateConfigDB(ctrlckv, dt_type, UNC_OP_READ, dmi, &dbop1,
-          CTRLRTBL);
+                                   CTRLRTBL);
       if (result_code != UPLL_RC_ERR_INSTANCE_EXISTS &&
           result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
         UPLL_LOG_DEBUG("UpdateConfigDB Failed err_code %d", result_code);
@@ -5454,7 +6003,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::UpdateControllerTable(
         continue;
       }
     }
-    // Create/Update/Delete a record in CANDIDATE DB
+    //  Create/Update/Delete a record in CANDIDATE DB
     result_code = UpdateConfigDB(ctrlckv, dt_type, op, dmi, CTRLRTBL);
     DELETE_IF_NOT_NULL(ctrlckv);
     if (result_code != UPLL_RC_SUCCESS) {
@@ -5468,9 +6017,10 @@ upll_rc_t VtnFlowFilterEntryMoMgr::UpdateControllerTable(
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t VtnFlowFilterEntryMoMgr::UpdateMainTbl(ConfigKeyVal *vtn_ffe_key,
-      unc_keytype_operation_t op, uint32_t driver_result,
-      ConfigKeyVal *nreq, DalDmlIntf *dmi) {
+upll_rc_t VtnFlowFilterEntryMoMgr::UpdateMainTbl(
+    ConfigKeyVal *vtn_ffe_key,
+    unc_keytype_operation_t op, uint32_t driver_result,
+    ConfigKeyVal *nreq, DalDmlIntf *dmi) {
   ConfigKeyVal *ck_vtn_ffe = NULL;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_vtn_flowfilter_entry_t *vtn_ffe_val = NULL;
@@ -5510,7 +6060,8 @@ upll_rc_t VtnFlowFilterEntryMoMgr::UpdateMainTbl(ConfigKeyVal *vtn_ffe_key,
       }
       CompareValidValue(ffeval, nffeval, false);
       vtn_ffe_val->cs_row_status =
-             reinterpret_cast<val_vtn_flowfilter_entry_t *>(GetVal(nreq))->cs_row_status;
+          reinterpret_cast<val_vtn_flowfilter_entry_t *>
+          (GetVal(nreq))->cs_row_status;
       break;
     case UNC_OP_DELETE:
       break;
@@ -5528,20 +6079,21 @@ upll_rc_t VtnFlowFilterEntryMoMgr::UpdateMainTbl(ConfigKeyVal *vtn_ffe_key,
   return result_code;
 }
 
-upll_rc_t VtnFlowFilterEntryMoMgr::GetControllerDomainSpan(ConfigKeyVal *ikey,
-      upll_keytype_datatype_t dt_type,
-      DalDmlIntf *dmi) {
-    UPLL_FUNC_TRACE;
-    upll_rc_t result_code;
-    DbSubOp dbop = {kOpReadExist|kOpReadMultiple, kOpMatchNone,
-      kOpInOutCtrlr|kOpInOutDomain};
-    result_code = ReadConfigDB(ikey, dt_type, UNC_OP_READ, dbop, dmi, CTRLRTBL);
-    return result_code;
-  }
+upll_rc_t VtnFlowFilterEntryMoMgr::GetControllerDomainSpan(
+    ConfigKeyVal *ikey,
+    upll_keytype_datatype_t dt_type,
+    DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
+  upll_rc_t result_code;
+  DbSubOp dbop = {kOpReadExist|kOpReadMultiple, kOpMatchNone,
+    kOpInOutCtrlr|kOpInOutDomain};
+  result_code = ReadConfigDB(ikey, dt_type, UNC_OP_READ, dbop, dmi, CTRLRTBL);
+  return result_code;
+}
 
 upll_rc_t VtnFlowFilterEntryMoMgr::DeleteChildMo(IpcReqRespHeader *req,
-                        ConfigKeyVal *ikey,
-                        DalDmlIntf *dmi) {
+                                                 ConfigKeyVal *ikey,
+                                                 DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
   ConfigKeyVal *tempckv = NULL;
@@ -5566,9 +6118,12 @@ upll_rc_t VtnFlowFilterEntryMoMgr::DeleteChildMo(IpcReqRespHeader *req,
   ConfigKeyVal *iter_ckv = tempckv;
   while (NULL != iter_ckv) {
     val_vtn_flowfilter_entry_t *vtn_ffe_val = reinterpret_cast
-            <val_vtn_flowfilter_entry_t *>(GetVal(iter_ckv));
+        <val_vtn_flowfilter_entry_t *>(GetVal(iter_ckv));
     if (UNC_VF_VALID == vtn_ffe_val->valid[UPLL_IDX_FLOWLIST_NAME_VFFE]) {
-      result_code = UpdateFlowListInCtrl(iter_ckv, req->datatype, UNC_OP_DELETE, dmi);
+      result_code = UpdateFlowListInCtrl(iter_ckv,
+                                         req->datatype,
+                                         UNC_OP_DELETE,
+                                         dmi);
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("Unable to update flowlist in ctrlr table");
         DELETE_IF_NOT_NULL(tempckv);
@@ -5579,17 +6134,17 @@ upll_rc_t VtnFlowFilterEntryMoMgr::DeleteChildMo(IpcReqRespHeader *req,
   }
   DELETE_IF_NOT_NULL(tempckv);
   result_code = UpdateConfigDB(ikey, req->datatype, req->operation, dmi,
-      MAINTBL);
+                               MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("DeleteMo record Err in vtnpolicingmaptbl (%d)",
-        result_code);
+                   result_code);
     return result_code;
   }
   result_code = UpdateConfigDB(ikey, req->datatype, req->operation, dmi,
-      CTRLRTBL);
+                               CTRLRTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("DeleteMo record Err in vtnpolicingmaptbl (%d)",
-        result_code);
+                   result_code);
     return result_code;
   }
   return UPLL_RC_SUCCESS;
@@ -5606,16 +6161,17 @@ upll_rc_t VtnFlowFilterEntryMoMgr::IsFlowListConfigured(
   }
   if (!ckv) return UPLL_RC_ERR_GENERIC;
   val_vtn_flowfilter_entry_t *ffe_val = reinterpret_cast
-    <val_vtn_flowfilter_entry_t *>(ConfigKeyVal::Malloc(sizeof
-          (val_vtn_flowfilter_entry_t)));
+      <val_vtn_flowfilter_entry_t *>
+      (ConfigKeyVal::Malloc(sizeof
+                            (val_vtn_flowfilter_entry_t)));
   uuu::upll_strncpy(ffe_val->flowlist_name, flowlist_name,
-      (kMaxLenFlowListName + 1));
+                    (kMaxLenFlowListName + 1));
   ffe_val->valid[UPLL_IDX_FLOWLIST_NAME_VFFE] = UNC_VF_VALID;
   ckv->AppendCfgVal(IpctSt::kIpcStValVtnFlowfilterEntry, ffe_val);
   DbSubOp dbop = {kOpReadMultiple, kOpMatchNone, kOpInOutNone};
-  // Read the Configuration from the MainTable
+  //  Read the Configuration from the MainTable
   result_code = ReadConfigDB(ckv, UPLL_DT_CANDIDATE,
-                                UNC_OP_READ, dbop, dmi, MAINTBL);
+                             UNC_OP_READ, dbop, dmi, MAINTBL);
   delete ckv;
   return result_code;
 }
@@ -5628,7 +6184,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
     UPLL_LOG_DEBUG(" Input Key is NULL");
     return UPLL_RC_ERR_GENERIC;
   }
-  DELETE_IF_NOT_NULL(okey); 
+  DELETE_IF_NOT_NULL(okey);
   unc_key_type_t ikey_type = ikey->get_key_type();
   if (ikey_type != UNC_KT_VTN_FLOWFILTER_ENTRY) {
     UPLL_LOG_DEBUG(" Invalid key type received. Key type - %d", ikey_type);
@@ -5650,7 +6206,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
                     (pkey)->flowfilter_key.vtn_key.vtn_name,
                     (kMaxLenVtnName + 1));
   vtn_ff_key->input_direction =reinterpret_cast<key_vtn_flowfilter_entry_t*>
-                    (pkey)->flowfilter_key.input_direction;
+      (pkey)->flowfilter_key.input_direction;
   okey = new ConfigKeyVal(UNC_KT_VTN_FLOWFILTER,
                           IpctSt::kIpcStKeyVtnFlowfilter, vtn_ff_key, NULL);
   SET_USER_DATA(okey, ikey);
@@ -5672,25 +6228,25 @@ upll_rc_t  VtnFlowFilterEntryMoMgr::ReadSiblingCount(
     return result_code;
   }
   if (ikey->get_key_type() == UNC_KT_VTN_FLOWFILTER_ENTRY) {
-     if(req->datatype == UPLL_DT_STATE ||
-         req->datatype == UPLL_DT_STARTUP || 
-           req->datatype == UPLL_DT_RUNNING || 
-             req->datatype == UPLL_DT_CANDIDATE ) {
-        result_code = ReadInfoFromDB(req, ikey, dmi, &ctrlr_dom);
-        return result_code;
-      } else {
-        UPLL_LOG_DEBUG("ReadSiblingCount is not Allowed For Such datatype %d",
-        req->datatype);
-        return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
-      }
+    if (req->datatype == UPLL_DT_STATE ||
+        req->datatype == UPLL_DT_STARTUP ||
+        req->datatype == UPLL_DT_RUNNING ||
+        req->datatype == UPLL_DT_CANDIDATE ) {
+      result_code = ReadInfoFromDB(req, ikey, dmi, &ctrlr_dom);
+      return result_code;
+    } else {
+      UPLL_LOG_DEBUG("ReadSiblingCount is not Allowed For Such datatype %d",
+                     req->datatype);
+      return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
+    }
 
   } else if (ikey->get_key_type() == UNC_KT_VTN_FLOWFILTER_CONTROLLER) {
     if ((req->datatype == UPLL_DT_STATE) && (req->option1 == UNC_OPT1_NORMAL) &&
         (req->option2 == UNC_OPT2_NONE)) {
-      // ReadSibling Operation Get The Multiple Key
+      //  ReadSibling Operation Get The Multiple Key
       key_vtn_flowfilter_controller_t *key_vtn_ff_ctrl =
           reinterpret_cast<key_vtn_flowfilter_controller_t*>(ikey->get_key());
-      // Extracting The VAl of KT_VTN_FF_Ctrl
+      //  Extracting The VAl of KT_VTN_FF_Ctrl
       val_flowfilter_controller_t* val_ff_ctrl =
           reinterpret_cast<val_flowfilter_controller_t*>(GetVal(ikey));
 
@@ -5705,15 +6261,15 @@ upll_rc_t  VtnFlowFilterEntryMoMgr::ReadSiblingCount(
                         (kMaxLenVtnName +1));
       uuu::upll_strncpy(ctrlr_dom.domain, key_vtn_ff_ctrl->domain_id,
                         (kMaxLenVtnName +1));
-      // Allocating The Key of KT_VTN_FF_Entry
+      //  Allocating The Key of KT_VTN_FF_Entry
       key_vtn_flowfilter_entry_t *key_vtn_ffe_ctrl =
           reinterpret_cast <key_vtn_flowfilter_entry_t*>
           (ConfigKeyVal::Malloc(sizeof(key_vtn_flowfilter_entry_t)));
-      // Allocating CKV tctrl_key
+      //  Allocating CKV tctrl_key
       tctrl_key = new ConfigKeyVal(UNC_KT_VTN_FLOWFILTER_ENTRY,
                                    IpctSt::kIpcStKeyVtnFlowfilterEntry,
                                    key_vtn_ffe_ctrl, NULL);
-      // Copying The seqno, i/p dir, Vtn_Name to The Above Key of CKV tctrl_key
+      //  Copying The seqno, i/p dir, Vtn_Name to The Above Key of CKV tctrl_key
       uuu::upll_strncpy(key_vtn_ffe_ctrl->flowfilter_key.vtn_key.vtn_name,
                         key_vtn_ff_ctrl->vtn_key.vtn_name,
                         (kMaxLenVtnName +1));
@@ -5723,7 +6279,7 @@ upll_rc_t  VtnFlowFilterEntryMoMgr::ReadSiblingCount(
         key_vtn_ffe_ctrl->sequence_num = 0;
       }
       key_vtn_ffe_ctrl->flowfilter_key.input_direction = val_ff_ctrl->direction;
-      // Reading The  Entry_Ctrl_Table
+      //  Reading The  Entry_Ctrl_Table
       DbSubOp dbop = {kOpReadMultiple, kOpMatchNone,
         kOpInOutCtrlr|kOpInOutDomain};
       result_code = ReadConfigDB(tctrl_key, UPLL_DT_STATE, UNC_OP_READ,
@@ -5764,8 +6320,8 @@ upll_rc_t VtnFlowFilterEntryMoMgr::DeleteChildrenPOM(
     UPLL_LOG_DEBUG("Delete Operation failed:Bad request");
     return result_code;
   }
-  // Read the DB get the flowlist value and send the delete request to
-  // flowlist momgr if flowlist is configured.
+  //  Read the DB get the flowlist value and send the delete request to
+  //  flowlist momgr if flowlist is configured.
 
   ConfigKeyVal *okey = NULL;
   ConfigKeyVal *temp_okey = NULL;
@@ -5775,12 +6331,12 @@ upll_rc_t VtnFlowFilterEntryMoMgr::DeleteChildrenPOM(
   }
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutFlag };
   result_code = ReadConfigDB(temp_okey, UPLL_DT_CANDIDATE,
-      UNC_OP_READ, dbop, dmi, MAINTBL);
+                             UNC_OP_READ, dbop, dmi, MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
     if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
       UPLL_LOG_DEBUG("UPLL_RC_ERR_NO_SUCH_INSTANCE");
       DELETE_IF_NOT_NULL(temp_okey);
-      return UPLL_RC_SUCCESS;  
+      return UPLL_RC_SUCCESS;
     }
     UPLL_LOG_DEBUG("Unable to read configuration from CandidateDb");
     DELETE_IF_NOT_NULL(temp_okey);
@@ -5789,7 +6345,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::DeleteChildrenPOM(
   okey = temp_okey;
   while (NULL != okey) {
     val_vtn_flowfilter_entry_t *vtn_ffe_val = reinterpret_cast
-      <val_vtn_flowfilter_entry_t *>(GetVal(okey));
+        <val_vtn_flowfilter_entry_t *>(GetVal(okey));
     if (UNC_VF_VALID == vtn_ffe_val->valid[UPLL_IDX_FLOWLIST_NAME_VFFE]) {
       result_code = UpdateFlowListInCtrl(okey, dt_type, UNC_OP_DELETE, dmi);
       if (result_code != UPLL_RC_SUCCESS) {
@@ -5808,11 +6364,11 @@ upll_rc_t VtnFlowFilterEntryMoMgr::DeleteChildrenPOM(
     return result_code;
   }
   result_code = UpdateConfigDB(temp_ikey, dt_type, UNC_OP_DELETE, dmi,
-      MAINTBL);
+                               MAINTBL);
   if ((UPLL_RC_SUCCESS != result_code) &&
       (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
     UPLL_LOG_DEBUG("DeleteMo record Err in vtnpolicingmaptbl (%d)",
-        result_code);
+                   result_code);
     DELETE_IF_NOT_NULL(temp_ikey);
     return result_code;
   }
@@ -5825,12 +6381,12 @@ upll_rc_t VtnFlowFilterEntryMoMgr::DeleteChildrenPOM(
   }
   DbSubOp dbop1 = {kOpNotRead, kOpMatchNone, kOpInOutNone};
   result_code = UpdateConfigDB(ctrlr_ikey, dt_type, UNC_OP_DELETE, dmi,
-      &dbop1, CTRLRTBL);
+                               &dbop1, CTRLRTBL);
   UPLL_LOG_DEBUG("UpdateConfigDB for entry ctrlr tbl %d", result_code);
   if ((UPLL_RC_SUCCESS != result_code) &&
       (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
     UPLL_LOG_DEBUG("DeleteMo record Err in vtnpolicingmaptbl (%d)",
-        result_code);
+                   result_code);
     DELETE_IF_NOT_NULL(ctrlr_ikey);
     return result_code;
   }
@@ -5847,8 +6403,8 @@ upll_rc_t VtnFlowFilterEntryMoMgr::SetValidAudit(ConfigKeyVal *&ikey) {
     return UPLL_RC_ERR_GENERIC;
   }
   for (unsigned int loop = 0;
-        loop < sizeof(val->valid) / sizeof(val->valid[0]);
-        ++loop) {
+       loop < sizeof(val->valid) / sizeof(val->valid[0]);
+       ++loop) {
     val->cs_attr[loop] = UNC_CS_APPLIED;
     val->cs_attr[loop] = UNC_CS_NOT_APPLIED;
   }
@@ -5867,75 +6423,79 @@ bool VtnFlowFilterEntryMoMgr::FilterAttributes(void *&val1,
   return false;
 }
 
-upll_rc_t VtnFlowFilterEntryMoMgr::UpdateConfigStatus(ConfigKeyVal *main_ckv,
-                                       unc_keytype_operation_t op,
-                                       uint32_t driver_result,
-                                       ConfigKeyVal *upd_key,
-                                       DalDmlIntf *dmi,
-                                       ConfigKeyVal *ctrlr_key) {
+upll_rc_t VtnFlowFilterEntryMoMgr::UpdateConfigStatus(
+    ConfigKeyVal *main_ckv,
+    unc_keytype_operation_t op,
+    uint32_t driver_result,
+    ConfigKeyVal *upd_key,
+    DalDmlIntf *dmi,
+    ConfigKeyVal *ctrlr_key) {
   UPLL_FUNC_TRACE;
   val_vtn_flowfilter_entry_ctrlr_t *ctrlr_val;
   val_vtn_flowfilter_entry_t *val_main = reinterpret_cast
       <val_vtn_flowfilter_entry_t *>(GetVal(main_ckv));
   unc_keytype_configstatus_t  ctrlr_status;
-  uint8_t cs_status; 
-  ctrlr_status = (driver_result == UPLL_RC_SUCCESS) ? 
-                  UNC_CS_APPLIED : UNC_CS_NOT_APPLIED;
+  uint8_t cs_status;
+  ctrlr_status = (driver_result == UPLL_RC_SUCCESS) ?
+      UNC_CS_APPLIED : UNC_CS_NOT_APPLIED;
   ctrlr_val = reinterpret_cast
-    <val_vtn_flowfilter_entry_ctrlr_t *>(GetVal(ctrlr_key));
+      <val_vtn_flowfilter_entry_ctrlr_t *>(GetVal(ctrlr_key));
   if ((val_main == NULL) || (ctrlr_val == NULL))
     return UPLL_RC_ERR_GENERIC;
   cs_status = (val_main->cs_row_status);
   UPLL_LOG_TRACE("cs_status %d ctrlr_status %d\n", cs_status, ctrlr_status);
   if (op == UNC_OP_CREATE) {
     ctrlr_val->cs_row_status = ctrlr_status;
-  if (val_main->cs_row_status == UNC_CS_UNKNOWN) {
-    /* first entry in ctrlr table */
-    cs_status = ctrlr_status;
+    if (val_main->cs_row_status == UNC_CS_UNKNOWN) {
+      /* first entry in ctrlr table */
+      cs_status = ctrlr_status;
 
-  } else if (val_main->cs_row_status == UNC_CS_INVALID) {
-    cs_status = UNC_CS_INVALID;
-  } else if (val_main->cs_row_status == UNC_CS_APPLIED) {
+    } else if (val_main->cs_row_status == UNC_CS_INVALID) {
+      cs_status = UNC_CS_INVALID;
+    } else if (val_main->cs_row_status == UNC_CS_APPLIED) {
       if (ctrlr_status == UNC_CS_NOT_APPLIED) {
         cs_status = UNC_CS_PARTIALLY_APPLIED;
       }
     } else if (val_main->cs_row_status == UNC_CS_NOT_APPLIED) {
-        if (ctrlr_status == UNC_CS_APPLIED) {
-          cs_status =  UNC_CS_PARTIALLY_APPLIED;
-        }
-      } else {
-        cs_status = UNC_CS_PARTIALLY_APPLIED;
-     }
+      if (ctrlr_status == UNC_CS_APPLIED) {
+        cs_status =  UNC_CS_PARTIALLY_APPLIED;
+      }
+    } else {
+      cs_status = UNC_CS_PARTIALLY_APPLIED;
+    }
+
+    UPLL_LOG_TRACE("cs_status for main tbl %d\n", cs_status);
     val_main->cs_row_status = cs_status;
   }
-  // Updating the Controller cs_row_status
-  val_vtn_flowfilter_entry_ctrlr *run_ctrlr_val = 
-          reinterpret_cast<val_vtn_flowfilter_entry_ctrlr *>
-                                               (GetVal(upd_key));
+  //  Updating the Controller cs_row_status
+  val_vtn_flowfilter_entry_ctrlr *run_ctrlr_val =
+      reinterpret_cast<val_vtn_flowfilter_entry_ctrlr *>
+      (GetVal(upd_key));
   if ((op == UNC_OP_UPDATE) && (run_ctrlr_val != NULL)) {
     void *valmain = reinterpret_cast<void *>(val_main);
     CompareValidValue(valmain, (GetVal(upd_key)), true);
     for (unsigned int loop = 0; loop < sizeof(val_main->valid)/
-      sizeof(val_main->valid[0]); ++loop) {
-      if ((val_main->valid[loop] != UNC_VF_INVALID) && 
-                (val_main->valid[loop]!= UNC_VF_VALID_NO_VALUE)) {
+         sizeof(val_main->valid[0]); ++loop) {
+      if ((val_main->valid[loop] != UNC_VF_INVALID) &&
+          (val_main->valid[loop]!= UNC_VF_VALID_NO_VALUE)) {
         if (ctrlr_status == UNC_CS_APPLIED) {
-          if(ctrlr_val->valid[loop] == UNC_VF_VALID) {
+          if (ctrlr_val->valid[loop] == UNC_VF_VALID) {
             ctrlr_val->cs_attr[loop] = UNC_CS_APPLIED;
           }
           if (val_main->cs_attr[loop] == UNC_CS_UNKNOWN) {
             cs_status = UNC_CS_APPLIED;
           } else if (val_main->cs_attr[loop] == UNC_CS_NOT_APPLIED) {
-            cs_status = UNC_CS_PARTIALLY_APPLIED ;
+            cs_status = UNC_CS_PARTIALLY_APPLIED;
           } else if (val_main->cs_attr[loop] == UNC_CS_INVALID) {
             cs_status = UNC_CS_INVALID;
           }
         } else if (ctrlr_status == UNC_CS_NOT_APPLIED) {
           ctrlr_val->cs_attr[loop] = UNC_CS_NOT_APPLIED;
           if (val_main->cs_attr[loop] == UNC_CS_UNKNOWN) {
-           cs_status = UNC_CS_NOT_APPLIED;
-          } if (val_main->cs_attr[loop] == UNC_CS_APPLIED) {
-              cs_status = UNC_CS_PARTIALLY_APPLIED ;
+            cs_status = UNC_CS_NOT_APPLIED;
+          }
+          if (val_main->cs_attr[loop] == UNC_CS_APPLIED) {
+            cs_status = UNC_CS_PARTIALLY_APPLIED;
           } else if (val_main->cs_attr[loop] == UNC_CS_INVALID) {
             cs_status = UNC_CS_INVALID;
           }
@@ -5947,70 +6507,75 @@ upll_rc_t VtnFlowFilterEntryMoMgr::UpdateConfigStatus(ConfigKeyVal *main_ckv,
         if (ctrlr_status == UNC_CS_APPLIED) {
           if (run_ctrlr_val->valid[loop] == UNC_VF_VALID) {
             if (val_main->cs_attr[loop] == UNC_CS_PARTIALLY_APPLIED) {
-              val_main->cs_attr[loop] = UNC_CS_PARTIALLY_APPLIED;         
-            } else if (val_main->cs_attr[loop] == UNC_CS_NOT_APPLIED) { 
-               val_main->cs_attr[loop] = UNC_CS_NOT_APPLIED;
+              val_main->cs_attr[loop] = UNC_CS_PARTIALLY_APPLIED;
+            } else if (val_main->cs_attr[loop] == UNC_CS_NOT_APPLIED) {
+              val_main->cs_attr[loop] = UNC_CS_NOT_APPLIED;
             } else if (val_main->cs_attr[loop] == UNC_CS_INVALID) {
               val_main->cs_attr[loop] = UNC_CS_INVALID;
             } else {
-               val_main->cs_attr[loop]  = ctrlr_status;      
+              val_main->cs_attr[loop]  = ctrlr_status;
             }
           }
           if (ctrlr_val->cs_attr[loop] == UNC_CS_APPLIED) {
             ctrlr_val->cs_attr[loop] = ctrlr_status;
-          }  
+          }
         } else if (ctrlr_status == UNC_CS_NOT_APPLIED) {
           if (run_ctrlr_val->valid[loop] == UNC_VF_VALID) {
             if (val_main->cs_attr[loop] == UNC_CS_PARTIALLY_APPLIED) {
               val_main->cs_attr[loop]  = UNC_CS_PARTIALLY_APPLIED;
             } else if (val_main->cs_attr[loop] == UNC_CS_NOT_APPLIED) {
-               val_main->cs_attr[loop]  = UNC_CS_NOT_APPLIED;
+              val_main->cs_attr[loop]  = UNC_CS_NOT_APPLIED;
             } else if (val_main->cs_attr[loop] == UNC_CS_INVALID) {
               val_main->cs_attr[loop] = UNC_CS_INVALID;
+            } else if (val_main->cs_attr[loop] == UNC_CS_UNKNOWN) {
+              val_main->cs_attr[loop]  = UNC_CS_NOT_APPLIED;
             } else {
-              val_main->cs_attr[loop]  = UNC_CS_PARTIALLY_APPLIED;      
-            } 
+              val_main->cs_attr[loop]  = UNC_CS_PARTIALLY_APPLIED;
+            }
           }
-        } 
+        }
       }
-      if (val_main->valid[loop] == UNC_VF_VALID_NO_VALUE) { 
+      if (val_main->valid[loop] == UNC_VF_VALID_NO_VALUE) {
         ctrlr_val->cs_attr[loop] = UNC_CS_UNKNOWN;
         val_main->cs_attr[loop]  = UNC_CS_UNKNOWN;
       }
-    } 
-  }
-  if (op == UNC_OP_CREATE ) {
-   for (unsigned int loop = 0; loop < sizeof(val_main->valid)/
-      sizeof(val_main->valid[0]); ++loop) {
-    if (val_main->valid[loop] != UNC_VF_INVALID) {
-      if (ctrlr_val->cs_attr[loop] != UNC_CS_NOT_SUPPORTED) 
-        ctrlr_val->cs_attr[loop] = ctrlr_status;
-      else
-       ctrlr_val->cs_attr[loop] = UNC_CS_NOT_SUPPORTED;
-
-      if (val_main->cs_attr[loop] == ctrlr_status) {
-        cs_status = ctrlr_status;
-      } else if (ctrlr_status == UNC_CS_APPLIED) {
-        if (val_main->cs_attr[loop] == UNC_CS_UNKNOWN) {
+    }
+  }
+  if (op == UNC_OP_CREATE) {
+    for (unsigned int loop = 0; loop < sizeof(val_main->valid)/
+         sizeof(val_main->valid[0]); ++loop) {
+      if (val_main->valid[loop] != UNC_VF_INVALID) {
+        if (ctrlr_val->cs_attr[loop] != UNC_CS_NOT_SUPPORTED)
+          ctrlr_val->cs_attr[loop] = ctrlr_status;
+        else
+          ctrlr_val->cs_attr[loop] = UNC_CS_NOT_SUPPORTED;
+
+        if (val_main->cs_attr[loop] == ctrlr_status) {
           cs_status = ctrlr_status;
-        } else if (val_main->cs_attr[loop] == UNC_CS_NOT_APPLIED) {
-          cs_status = UNC_CS_PARTIALLY_APPLIED;
-        } else if (val_main->cs_attr[loop] == UNC_CS_INVALID) {
-          cs_status = UNC_CS_INVALID;
-        }else {
-          cs_status = val_main->cs_attr[loop];
-        }
-      } else if(ctrlr_status == UNC_CS_NOT_APPLIED) {
-        if(val_main->cs_attr[loop] == UNC_CS_NOT_APPLIED) {
-          cs_status =  UNC_CS_NOT_APPLIED;
-        } else if (val_main->cs_attr[loop] == UNC_CS_APPLIED) {
-          cs_status = UNC_CS_PARTIALLY_APPLIED;
-        } else if (val_main->cs_attr[loop] == UNC_CS_INVALID) {
-          cs_status = UNC_CS_INVALID;
+        } else if (ctrlr_status == UNC_CS_APPLIED) {
+          if (val_main->cs_attr[loop] == UNC_CS_UNKNOWN) {
+            cs_status = ctrlr_status;
+          } else if (val_main->cs_attr[loop] == UNC_CS_NOT_APPLIED) {
+            cs_status = UNC_CS_PARTIALLY_APPLIED;
+          } else if (val_main->cs_attr[loop] == UNC_CS_INVALID) {
+            cs_status = UNC_CS_INVALID;
+          } else {
+            cs_status = val_main->cs_attr[loop];
+          }
+        } else if (ctrlr_status == UNC_CS_NOT_APPLIED) {
+          if (val_main->cs_attr[loop] == UNC_CS_NOT_APPLIED) {
+            cs_status =  UNC_CS_NOT_APPLIED;
+          } else if (val_main->cs_attr[loop] == UNC_CS_APPLIED) {
+            cs_status = UNC_CS_PARTIALLY_APPLIED;
+          } else if (val_main->cs_attr[loop] == UNC_CS_INVALID) {
+            cs_status = UNC_CS_INVALID;
+          } else if (val_main->cs_attr[loop] == UNC_CS_UNKNOWN) {
+            cs_status =  UNC_CS_NOT_APPLIED;
+          }
+        } else {
+          cs_status =  UNC_CS_PARTIALLY_APPLIED;
         }
-      } else {
-        cs_status =  UNC_CS_PARTIALLY_APPLIED;
-      }
+
         val_main->cs_attr[loop]  = cs_status;
         UPLL_LOG_DEBUG("Main tbl cs_attr : %d", val_main->cs_attr[loop]);
       }
@@ -6031,9 +6596,9 @@ upll_rc_t VtnFlowFilterEntryMoMgr::Get_Tx_Consolidated_Status(
       break;
     case UNC_CS_PARTIALLY_APPLIED:
       if (current_ctrlr_cs == UNC_CS_NOT_APPLIED) {
-        // Todo: if this vtn has caused it then to change to applied.
+        //  Todo: if this vtn has caused it then to change to applied.
         status = (drv_result_status != UNC_CS_APPLIED) ?
-          UNC_CS_PARTIALLY_APPLIED : drv_result_status;
+            UNC_CS_PARTIALLY_APPLIED : drv_result_status;
       }
       break;
     case UNC_CS_APPLIED:
@@ -6041,21 +6606,25 @@ upll_rc_t VtnFlowFilterEntryMoMgr::Get_Tx_Consolidated_Status(
     case UNC_CS_INVALID:
     default:
       status = (drv_result_status == UNC_CS_NOT_APPLIED)?
-        UNC_CS_PARTIALLY_APPLIED:
-        (status == UNC_CS_UNKNOWN)?drv_result_status:status;
+          UNC_CS_PARTIALLY_APPLIED:
+          (status == UNC_CS_UNKNOWN)?drv_result_status:status;
       break;
   }
   return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t VtnFlowFilterEntryMoMgr::IsRenamed(ConfigKeyVal *ikey,
-                               upll_keytype_datatype_t dt_type,
-                               DalDmlIntf *dmi,
-                               uint8_t &rename) {
+                                             upll_keytype_datatype_t dt_type,
+                                             DalDmlIntf *dmi,
+                                             uint8_t &rename) {
   UPLL_FUNC_TRACE;
-  UPLL_LOG_DEBUG("VtnFlowFilterEntryMoMgr IsRenamed");
+  if (ikey == NULL) {
+    UPLL_LOG_DEBUG("Input ConfigKey cannot be NULL");
+    return UPLL_RC_ERR_GENERIC;
+  }
+
   DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutFlag | kOpInOutCtrlr
-                       | kOpInOutDomain };
+    | kOpInOutDomain };
   ConfigKeyVal *okey = NULL;
   upll_rc_t result_code;
   /* rename is set implies user wants the ikey
@@ -6065,68 +6634,70 @@ upll_rc_t VtnFlowFilterEntryMoMgr::IsRenamed(ConfigKeyVal *ikey,
       UPLL_LOG_DEBUG("UNC_KT_VTN_FLOWFILTER_ENTRY");
       result_code = GetChildConfigKey(okey, ikey);
       if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_TRACE("Returning error %d",result_code);
+        UPLL_LOG_TRACE("Returning error %d", result_code);
         return result_code;
       }
     } else if (UNC_KT_VTN_FLOWFILTER_CONTROLLER == ikey->get_key_type()) {
       UPLL_LOG_DEBUG("UNC_KT_VTN_FLOWFILTER_CONTROLLER");
 
       key_vtn_flowfilter_entry *out_key =
-           reinterpret_cast<key_vtn_flowfilter_entry *>
-           (ConfigKeyVal::Malloc(sizeof(key_vtn_flowfilter_entry)));
+          reinterpret_cast<key_vtn_flowfilter_entry *>
+          (ConfigKeyVal::Malloc(sizeof(key_vtn_flowfilter_entry)));
       key_vtn_flowfilter_controller *in_key = reinterpret_cast
-        <key_vtn_flowfilter_controller_t *>(ikey->get_key());
+          <key_vtn_flowfilter_controller_t *>(ikey->get_key());
       val_flowfilter_controller_t *ival = reinterpret_cast
-         <val_flowfilter_controller_t *>(GetVal(ikey));
+          <val_flowfilter_controller_t *>(GetVal(ikey));
 
       uuu::upll_strncpy(out_key->flowfilter_key.vtn_key.vtn_name,
-          in_key->vtn_key.vtn_name,
-          (kMaxLenVtnName + 1));
+                        in_key->vtn_key.vtn_name,
+                        (kMaxLenVtnName + 1));
 
       out_key->flowfilter_key.input_direction = ival->direction;
       out_key->sequence_num = ival->sequence_num;
 
       okey = new ConfigKeyVal(UNC_KT_VTN_FLOWFILTER_ENTRY,
-                 IpctSt::kIpcStKeyVtnFlowfilterEntry,
-                 out_key, NULL);
-  }
+                              IpctSt::kIpcStKeyVtnFlowfilterEntry,
+                              out_key, NULL);
+    } else {
+      return UPLL_RC_ERR_GENERIC;
+    }
   } else {
     okey = ikey;
   }
   result_code = ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop, dmi,
-                                       MAINTBL);
+                             MAINTBL);
   if ((result_code != UPLL_RC_SUCCESS) &&
-       (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE))  {
-    UPLL_LOG_DEBUG("Returning error code %d",result_code);
+      (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE))  {
+    UPLL_LOG_DEBUG("Returning error code %d", result_code);
     if (okey != ikey) delete okey;
     return UPLL_RC_ERR_GENERIC;
   }
   GET_USER_DATA_FLAGS(okey, rename);
-  UPLL_LOG_DEBUG("rename flag %d",rename);
+  UPLL_LOG_DEBUG("rename flag %d", rename);
   controller_domain_t ctrlr_dom;
   ctrlr_dom.ctrlr = NULL;
   ctrlr_dom.domain = NULL;
 
-  GET_USER_DATA_CTRLR_DOMAIN(ikey,ctrlr_dom);
-    UPLL_LOG_DEBUG("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
+  GET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
+  UPLL_LOG_DEBUG("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
                  ctrlr_dom.domain);
-  SET_USER_DATA_CTRLR_DOMAIN(okey,ctrlr_dom);
-    UPLL_LOG_DEBUG("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
+  SET_USER_DATA_CTRLR_DOMAIN(okey, ctrlr_dom);
+  UPLL_LOG_DEBUG("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
                  ctrlr_dom.domain);
 
-  SET_USER_DATA(ikey,okey);
+  SET_USER_DATA(ikey, okey);
   rename &= RENAME;
   if (okey != ikey) delete okey;
   return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t VtnFlowFilterEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
-    DalDmlIntf *dmi,
-    IpcReqRespHeader *req) {
+                                                 DalDmlIntf *dmi,
+                                                 IpcReqRespHeader *req) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_vtn_flowfilter_entry_t *val_ffe = reinterpret_cast
-    <val_vtn_flowfilter_entry_t *>(GetVal(ikey));
+      <val_vtn_flowfilter_entry_t *>(GetVal(ikey));
   if (!val_ffe) {
     UPLL_LOG_DEBUG("Val is NULL");
     return UPLL_RC_ERR_GENERIC;
@@ -6139,8 +6710,8 @@ upll_rc_t VtnFlowFilterEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
       return result_code;
     }
     MoMgrImpl *mgr =
-      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_VTN_FLOWFILTER)));
+        reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                    UNC_KT_VTN_FLOWFILTER)));
     if (!mgr) {
       UPLL_LOG_DEBUG("mgr is NULL");
       DELETE_IF_NOT_NULL(pkey);
@@ -6155,19 +6726,19 @@ upll_rc_t VtnFlowFilterEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
     }
     UPLL_LOG_DEBUG("Flag from parent : %d", rename);
     DELETE_IF_NOT_NULL(pkey);
-    // Check flowlist is renamed
+    //  Check flowlist is renamed
     if ((UNC_VF_VALID == val_ffe->valid[UPLL_IDX_FLOWLIST_NAME_VFFE]) &&
         ((UNC_OP_CREATE == req->operation))) {
       ConfigKeyVal *fl_ckv = NULL;
       result_code = GetFlowlistConfigKey(reinterpret_cast<const char *>
-          (val_ffe->flowlist_name), fl_ckv, dmi);
+                                         (val_ffe->flowlist_name), fl_ckv, dmi);
       if (UPLL_RC_SUCCESS != result_code) {
         UPLL_LOG_DEBUG("GetFlowlistConfigKey failed %d", result_code);
         return result_code;
       }
       MoMgrImpl *fl_mgr =
-      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_FLOWLIST)));
+          reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                      UNC_KT_FLOWLIST)));
       if (NULL == fl_mgr) {
         UPLL_LOG_DEBUG("fl_mgr is NULL");
         DELETE_IF_NOT_NULL(fl_ckv);
@@ -6182,7 +6753,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
         return result_code;
       }
       if (fl_rename & 0x01) {
-        rename |= FLOWLIST_RENAME;  // TODO Check for correct flag value
+        rename |= FLOWLIST_RENAME;  // TODO(upll): Check for correct flag value
       }
       DELETE_IF_NOT_NULL(fl_ckv);
     }
@@ -6197,14 +6768,14 @@ upll_rc_t VtnFlowFilterEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
     if (UNC_VF_VALID == val_ffe->valid[UPLL_IDX_FLOWLIST_NAME_VFFE]) {
       ConfigKeyVal *fl_ckv = NULL;
       result_code = GetFlowlistConfigKey(reinterpret_cast<const char *>
-          (val_ffe->flowlist_name), fl_ckv, dmi);
+                                         (val_ffe->flowlist_name), fl_ckv, dmi);
       if (UPLL_RC_SUCCESS != result_code) {
         UPLL_LOG_DEBUG("GetFlowlistConfigKey failed %d", result_code);
         return result_code;
       }
       MoMgrImpl *fl_mgr =
-      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_FLOWLIST)));
+          reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                      UNC_KT_FLOWLIST)));
       if (NULL == fl_mgr) {
         UPLL_LOG_DEBUG("fl_mgr is NULL");
         DELETE_IF_NOT_NULL(fl_ckv);
@@ -6219,7 +6790,7 @@ upll_rc_t VtnFlowFilterEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
       }
       if (fl_rename & 0x01) {
         UPLL_LOG_DEBUG("rename flag in flowlist %d", fl_rename);
-        rename |= FLOWLIST_RENAME;  // TODO Check for correct flag value
+        rename |= FLOWLIST_RENAME;  // TODO(upll): Check for correct flag value
       } else {
         rename &= NO_FLOWLIST_RENAME;
         /* reset flag*/
@@ -6227,7 +6798,9 @@ upll_rc_t VtnFlowFilterEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
       DELETE_IF_NOT_NULL(fl_ckv);
     } else if (UNC_VF_VALID_NO_VALUE == val_ffe->valid
                [UPLL_IDX_FLOWLIST_NAME_VFFE]) {
-       rename &= NO_FLOWLIST_RENAME; // TODO Check for correct flag value. No rename flowlist value should be set
+      rename &= NO_FLOWLIST_RENAME;  // TODO(upll): Check for
+      // correct flag value.
+      //  No rename flowlist value should be set
     }
     UPLL_LOG_DEBUG("Setting flag in update %d", rename);
     SET_USER_DATA_FLAGS(ikey, rename);
@@ -6236,13 +6809,13 @@ upll_rc_t VtnFlowFilterEntryMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
 }
 
 upll_rc_t VtnFlowFilterEntryMoMgr::GetFlowlistConfigKey(
-        const char *flowlist_name, ConfigKeyVal *&okey,
-        DalDmlIntf *dmi) {
+    const char *flowlist_name, ConfigKeyVal *&okey,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
   MoMgrImpl *mgr =
       reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_FLOWLIST)));
+                  UNC_KT_FLOWLIST)));
   result_code = mgr->GetChildConfigKey(okey, NULL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("GetChildConfigKey failed %d", result_code);
@@ -6251,8 +6824,8 @@ upll_rc_t VtnFlowFilterEntryMoMgr::GetFlowlistConfigKey(
   key_flowlist_t *okey_key = reinterpret_cast<key_flowlist_t *>
       (okey->get_key());
   uuu::upll_strncpy(okey_key->flowlist_name,
-        flowlist_name,
-        (kMaxLenFlowListName+1));
+                    flowlist_name,
+                    (kMaxLenFlowListName+1));
   return UPLL_RC_SUCCESS;
 }
 }  // namespace kt_momgr
index bc0cbd6715b6f0be5ddfb9d754951fdecde1bc89..2f62f7b1eaaa0164adeae2ea8f25a5ecbbd96e25 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -27,204 +27,204 @@ namespace kt_momgr {
 
 #define FREE_LIST_CTRLR(list_ctrlr_dom) { \
   for (std::list<controller_domain_t>::iterator it= list_ctrlr_dom.begin(); \
-    it != list_ctrlr_dom.end(); ++it) { \
+       it != list_ctrlr_dom.end(); ++it) { \
     FREE_IF_NOT_NULL(it->ctrlr); \
     FREE_IF_NOT_NULL(it->domain); \
   } \
 }
 
 typedef struct val_vtn_flowfilter_entry_ctrlr {
-        uint8_t                    valid[5];
-        unc_keytype_configstatus_t cs_row_status;
-        unc_keytype_configstatus_t cs_attr[5];
-        uint8_t                    flags;
+  uint8_t                    valid[5];
+  unc_keytype_configstatus_t cs_row_status;
+  unc_keytype_configstatus_t cs_attr[5];
+  uint8_t                    flags;
 } val_vtn_flowfilter_entry_ctrlr_t;
 
 class VtnFlowFilterEntryMoMgr: public MoMgrImpl {
   /*Private Declaration Section*/
 private:
-    /* @brief Enumerator for VTN FlowFilter Entry Child(dependent) Objects */
-    static unc_key_type_t Vtn_FlowFilter_entry_child[];
-    /* @brief vtnflowfilter bindinfo Array, Binding to MAINTBL */
-    static BindInfo       vtn_flowfilter_entry_bind_info[];
-    static BindInfo       vtnflowfilterentrymaintbl_bind_info[];
-    static BindInfo       vtnflowfilterentryctrlrtbl_bind_info[];
-    /* @brief vtnflowfilter controllerbindinfo array, Binding to CTRLRTBL */
-    static BindInfo       vtn_flowfilter_entry_ctrlr_bind_info[];
-
-    /**
-     * @brief  Member Variable for FlowListRenameBindInfo.
-     */
-    static BindInfo vtn_flowlist_rename_bind_info[];
+ private:
+  /* @brief Enumerator for VTN FlowFilter Entry Child(dependent) Objects */
+  static unc_key_type_t Vtn_FlowFilter_entry_child[];
+  /* @brief vtnflowfilter bindinfo Array, Binding to MAINTBL */
+  static BindInfo       vtn_flowfilter_entry_bind_info[];
+  static BindInfo       vtnflowfilterentrymaintbl_bind_info[];
+  static BindInfo       vtnflowfilterentryctrlrtbl_bind_info[];
+  /* @brief vtnflowfilter controllerbindinfo array, Binding to CTRLRTBL */
+  static BindInfo       vtn_flowfilter_entry_ctrlr_bind_info[];
+
+  /**
+   * @brief  Member Variable for FlowListRenameBindInfo.
+   */
+  static BindInfo vtn_flowlist_rename_bind_info[];
 
-    uint32_t cur_instance_count;
 
  public:
-    /**
-    * @brief  This API is used to verify the existance of
-             object  in Candidate configuration
-
-    * @param[in] ikey     Pointer to ConfigKeyVal Class.
-    * @param[in] dt_type  Configuration information
-    * @param[in] dmi      Pointer to DalDmlIntf Class.
-    *                     for flowlist or NetworkMonitor
-    *
-    * @retval  UPLL_RC_SUCCESS  Successful completion.
-    * @retval  UPLL_RC_ERR      Specific Error code.
-    * */
-    upll_rc_t IsReferenced(ConfigKeyVal *ikey,
-                        upll_keytype_datatype_t dt_type,
-                        DalDmlIntf *dmi);
-    /**
-     * @brief  Method to compare to keys
-     *
-     * @param[in]  key1  Pointer to key structure for comparision
-     * @param[in]  key2  Pointer to key for comparision
-     *
-     * @return     TRUE  Successfull completion.
-     */
-
-    bool CompareKey(void *key1, void *key2);
-
-
-    /**
-     * @brief     Methods Used for  Validating Attribute.
-     * @param[in]  kval     The pointer to the ConfigKeyVal class
-     *
-     * @param[in]  dmi      Pointer to the Database Interface.
-     *
-     * @retval  UPLL_RC_SUCCESS      Validation succeeded.
-     * @retval  UPLL_RC_ERR_GENERIC  Validation failure.
-     * */
-     upll_rc_t ValidateAttribute(ConfigKeyVal *kval,
-                                 DalDmlIntf *dmi,
-                                 IpcReqRespHeader *req = NULL);
-
-    /**
-     * @brief  Method to check validity of Key
-     *
-     * @param[in]   ConfigKeyVal  input COnfigKeyVal
-     * @param[out]  index          DB Column Index
-     *
-     * @return  TRUE   Success
-     * @retval  FALSE  Failure
-     **/
-    bool IsValidKey(void *key,
-                    uint64_t index);
-    /**
-    * @Brief Validates the syntax of the specified key and value structure
-    *        for KT_VTN_FLOWFILTER_ENTRY keytype
-    *
-    * @param[in] IpcReqRespHeader contains first 8 fields of input request structure
-    * @param[in] ConfigKeyVal key and value structure.
-    *
-    * @retval UPLL_RC_SUCCESS              Successful.
-    * @retval UPLL_RC_ERR_CFG_SYNTAX       Syntax error.
-    * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE key_vtn_flowfilter_entry is not available.
-    * @retval UPLL_RC_ERR_GENERIC          Generic failure.
-    * @retval UPLL_RC_ERR_INVALID_OPTION1  option1 is not valid.
-    * @retval UPLL_RC_ERR_INVALID_OPTION2  option2 is not valid.
-    */
-    upll_rc_t ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *key);
-
-    /**
-    * @Brief Validates the syntax for KT_VTN_FLOWFILTER_ENTRY keytype key structure.
-    *
-    * @param[in] key_vtn_flowfilter_entry KT_VTN_FLOWFILTER_ENTRY key structure.
-    * @param[in] operation                operation type.
-    *
-    * @retval UPLL_RC_SUCCESS        validation succeeded.
-    * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
-    */
-    upll_rc_t ValidateVtnFlowfilterEntryKey(
+  /**
+   * @brief  This API is used to verify the existance of
+   object  in Candidate configuration
+
+   * @param[in] ikey     Pointer to ConfigKeyVal Class.
+   * @param[in] dt_type  Configuration information
+   * @param[in] dmi      Pointer to DalDmlIntf Class.
+   *                     for flowlist or NetworkMonitor
+   *
+   * @retval  UPLL_RC_SUCCESS  Successful completion.
+   * @retval  UPLL_RC_ERR      Specific Error code.
+   * */
+  upll_rc_t IsReferenced(ConfigKeyVal *ikey,
+                         upll_keytype_datatype_t dt_type,
+                         DalDmlIntf *dmi);
+  /**
+   * @brief  Method to compare to keys
+   *
+   * @param[in]  key1  Pointer to key structure for comparision
+   * @param[in]  key2  Pointer to key for comparision
+   *
+   * @return     TRUE  Successfull completion.
+   */
+
+  bool CompareKey(void *key1, void *key2);
+
+
+  /**
+   * @brief     Methods Used for  Validating Attribute.
+   * @param[in]  kval     The pointer to the ConfigKeyVal class
+   *
+   * @param[in]  dmi      Pointer to the Database Interface.
+   *
+   * @retval  UPLL_RC_SUCCESS      Validation succeeded.
+   * @retval  UPLL_RC_ERR_GENERIC  Validation failure.
+   * */
+  upll_rc_t ValidateAttribute(ConfigKeyVal *kval,
+                              DalDmlIntf *dmi,
+                              IpcReqRespHeader *req = NULL);
+
+  /**
+   * @brief  Method to check validity of Key
+   *
+   * @param[in]   ConfigKeyVal  input COnfigKeyVal
+   * @param[out]  index          DB Column Index
+   *
+   * @return  TRUE   Success
+   * @retval  FALSE  Failure
+   **/
+  bool IsValidKey(void *key,
+                  uint64_t index);
+  /**
+   * @Brief Validates the syntax of the specified key and value structure
+   *        for KT_VTN_FLOWFILTER_ENTRY keytype
+   *
+   * @param[in] IpcReqRespHeader contains first 8 fields of input request structure
+   * @param[in] ConfigKeyVal key and value structure.
+   *
+   * @retval UPLL_RC_SUCCESS              Successful.
+   * @retval UPLL_RC_ERR_CFG_SYNTAX       Syntax error.
+   * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE key_vtn_flowfilter_entry is not available.
+   * @retval UPLL_RC_ERR_GENERIC          Generic failure.
+   * @retval UPLL_RC_ERR_INVALID_OPTION1  option1 is not valid.
+   * @retval UPLL_RC_ERR_INVALID_OPTION2  option2 is not valid.
+   */
+  upll_rc_t ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *key);
+
+  /**
+   * @Brief Validates the syntax for KT_VTN_FLOWFILTER_ENTRY keytype key structure.
+   *
+   * @param[in] key_vtn_flowfilter_entry KT_VTN_FLOWFILTER_ENTRY key structure.
+   * @param[in] operation                operation type.
+   *
+   * @retval UPLL_RC_SUCCESS        validation succeeded.
+   * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
+   */
+  upll_rc_t ValidateVtnFlowfilterEntryKey(
       key_vtn_flowfilter_entry_t *key_vtn_flowfilter_entry,
       unc_keytype_operation_t operation);
 
-    /**
-    * @Brief Validates the syntax for KT_VTN_FLOWFILTER_ENTRY key structure.
-    *
-    * @param[in] ConfigKeyVal      contains key and value structure.
-    * @param[in] IpcReqRespHeader  contains first 8 fields of input.
-    *
-    * @retval UPLL_RC_SUCCESS        validation succeeded.
-    * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
-    */
-    upll_rc_t ValidateVtnFlowfilterEntryValue(ConfigKeyVal *key,
-                                              IpcReqRespHeader *req,
-                                              DalDmlIntf *dmi = NULL);
-
-    /**
-    * @Brief Checks if the specified key type(KT_VTN_FLOWFILTER_ENTRY) and
-    *        associated attributes are supported on the given controller,
-    *        based on the valid flag
-    *
-    * @param[in] IpcReqRespHeader  contains first 8 fields of input
-    *                              request structure
-    * @param[in]  ConfigKeyVal     contains key and value structure.
-    * @param[in] crtlr_name        Controller name.
-    *
-    * @retval  UPLL_RC_SUCCESS             Validation succeeded.
-    * @retval  UPLL_RC_ERR_GENERIC         Validation failure.
-    * @retval  UPLL_RC_ERR_INVALID_OPTION1 Option1 is not valid.
-    * @retval  UPLL_RC_ERR_INVALID_OPTION2 Option2 is not valid.
-    */
-    upll_rc_t ValidateCapability(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey, const char* ctrlr_name = NULL);
-    /**
-    * @Brief Checks if the specified key type and
-    *        associated attributes are supported on the given controller,
-    *        based on the valid flag.
-    *
-    * @param[in] val_vtn_flowfilter_entry_t KT_FLOWFILTER_ENTRY value structure.
-    * @param[in] attrs                      pointer to controller attribute
-    *
-    * @retval UPLL_RC_SUCCESS                    validation succeeded.
-    * @retval UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR Attribute NOT_SUPPORTED.
-    * @retval UPLL_RC_ERR_GENERIC                Generic failure.
-    */
-    upll_rc_t ValVtnFlowfilterEntryAttributeSupportCheck(
+  /**
+   * @Brief Validates the syntax for KT_VTN_FLOWFILTER_ENTRY key structure.
+   *
+   * @param[in] ConfigKeyVal      contains key and value structure.
+   * @param[in] IpcReqRespHeader  contains first 8 fields of input.
+   *
+   * @retval UPLL_RC_SUCCESS        validation succeeded.
+   * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
+   */
+  upll_rc_t ValidateVtnFlowfilterEntryValue(ConfigKeyVal *key,
+                                            IpcReqRespHeader *req,
+                                            DalDmlIntf *dmi = NULL);
+
+  /**
+   * @Brief Checks if the specified key type(KT_VTN_FLOWFILTER_ENTRY) and
+   *        associated attributes are supported on the given controller,
+   *        based on the valid flag
+   *
+   * @param[in] IpcReqRespHeader  contains first 8 fields of input
+   *                              request structure
+   * @param[in]  ConfigKeyVal     contains key and value structure.
+   * @param[in] crtlr_name        Controller name.
+   *
+   * @retval  UPLL_RC_SUCCESS             Validation succeeded.
+   * @retval  UPLL_RC_ERR_GENERIC         Validation failure.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION1 Option1 is not valid.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION2 Option2 is not valid.
+   */
+  upll_rc_t ValidateCapability(IpcReqRespHeader *req,
+                               ConfigKeyVal *ikey,
+                               const char* ctrlr_name = NULL);
+  /**
+   * @Brief Checks if the specified key type and
+   *        associated attributes are supported on the given controller,
+   *        based on the valid flag.
+   *
+   * @param[in] val_vtn_flowfilter_entry_t KT_FLOWFILTER_ENTRY value structure.
+   * @param[in] attrs                      pointer to controller attribute
+   *
+   * @retval UPLL_RC_SUCCESS                    validation succeeded.
+   * @retval UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR Attribute NOT_SUPPORTED.
+   * @retval UPLL_RC_ERR_GENERIC                Generic failure.
+   */
+  upll_rc_t ValVtnFlowfilterEntryAttributeSupportCheck(
       val_vtn_flowfilter_entry_t *val_vtn_flowfilter_entry,
       const uint8_t* attrs);
 
-    /**
-    * @Brief Method used to get the Bind Info Structure for Rename Purpose.
-    *
-    * @param[in]  key_type  Describes the KT Information.
-    * @param[in]  nattr     Describes the Tbl For which the Operation is
-    *                       Targeted.
-    * @param[in]  tbl       Describes the Table Information
-    *
-    * @retval  pfc_true   Successful Completion.
-    * @retval  pfc_fasle  Failure.
-    */
-    bool GetRenameKeyBindInfo(unc_key_type_t key_type,
-                              BindInfo *&binfo,
-                              int &nattr,
-                              MoMgrTables tbl);
-   /**
-    * @brief  Method to Copy The ConfigkeyVal with the Input Key.
-    *
-    * @param[out]  okey  Pointer to ConfigKeyVal Class for which attributes
-    *                    have to be copied.
-    * @param[in]   ikey  Pointer to ConfigKeyVal Class.
-    *
-    * @retval  UPLL_RC_SUCCESS      Successfull Completion.
-    * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
-    */
-     upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey,
-                              ConfigKeyVal *ikey);
-    /**
-     * @brief Method To Compare the Valid Check of Attributes
-     *
-     * @param[out]  val1   Pointer to ConfigKeyVal Class which
-     *                     contains only Valid Attributes
-     * @param[in]   val2   Pointer to ConfigKeyVal Class.
-     * @param[in]   audit  If true,Audit Process
-     *
-     * @retval UPLL_RC_SUCCESS;
-     */
-     bool  CompareValidValue(void *&val1, void *val2, bool audit);
-     upll_rc_t SetConsolidatedStatus(ConfigKeyVal *ikey, DalDmlIntf *dmi);
+  /**
+   * @Brief Method used to get the Bind Info Structure for Rename Purpose.
+   *
+   * @param[in]  key_type  Describes the KT Information.
+   * @param[in]  nattr     Describes the Tbl For which the Operation is
+   *                       Targeted.
+   * @param[in]  tbl       Describes the Table Information
+   *
+   * @retval  pfc_true   Successful Completion.
+   * @retval  pfc_fasle  Failure.
+   */
+  bool GetRenameKeyBindInfo(unc_key_type_t key_type,
+                            BindInfo *&binfo,
+                            int &nattr,
+                            MoMgrTables tbl);
+  /**
+   * @brief  Method to Copy The ConfigkeyVal with the Input Key.
+   *
+   * @param[out]  okey  Pointer to ConfigKeyVal Class for which attributes
+   *                    have to be copied.
+   * @param[in]   ikey  Pointer to ConfigKeyVal Class.
+   *
+   * @retval  UPLL_RC_SUCCESS      Successfull Completion.
+   * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
+   */
+  upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey,
+                            ConfigKeyVal *ikey);
+  /**
+   * @brief Method To Compare the Valid Check of Attributes
+   *
+   * @param[out]  val1   Pointer to ConfigKeyVal Class which
+   *                     contains only Valid Attributes
+   * @param[in]   val2   Pointer to ConfigKeyVal Class.
+   * @param[in]   audit  If true,Audit Process
+   *
+   * @retval UPLL_RC_SUCCESS;
+   */
+  bool  CompareValidValue(void *&val1, void *val2, bool audit);
+  upll_rc_t SetConsolidatedStatus(ConfigKeyVal *ikey, DalDmlIntf *dmi);
 
  public:
   /* @brief Constructor*/
@@ -240,309 +240,317 @@ class VtnFlowFilterEntryMoMgr: public MoMgrImpl {
     delete[] table;
   }
 
-    upll_rc_t CreateAuditMoImpl(ConfigKeyVal *ikey,
-                                   DalDmlIntf *dmi,
-                                   const char *ctrlr_id);
-    /**
-    * @brief  This API is used to retrive the configuration details.
-    *
-    * @param[in] req        Pointer to IpcReqResponderHeader Class.
-    * @param[in,out] ikey   Pointer to ConfigKeyVal Class.
-    * @param[in] dmi        Pointer to DalDmlIntf Class.
-    *
-    * @retval  UPLL_RC_SUCCESS  Successfull completion.
-    * @retval  UPLL_RC_ERR_GENERIC   Failure.
-    *  * */
-
-    upll_rc_t ReadMo(IpcReqRespHeader *req,
-                     ConfigKeyVal *ikey, DalDmlIntf *dmi);
-    /**
-    *  @brief     Method used for ReadSibling Operation.
-    *
-    *  @param[in] req    Describes RequestResponderHeaderClass.
-    *  @param[in] key    Pointer to ConfigKeyVal Class.
-    *  @param[in] begin  boolean variable to decide whether to
-    *                    retrieve siblings from the begin or not
-    *  @param[in] dmi    Pointer to DalDmlIntf Class.
-    *
-    *  @retval    UPLL_RC_SUCCESS  Successfull completion.
-    *  **/
-
-    upll_rc_t ReadSiblingMo(IpcReqRespHeader *req, ConfigKeyVal *key,
-                               bool begin, DalDmlIntf *dmi);
-    /**
-    * @brief  This API is used to create the record  in Vtnflowfilterentry
-    *         tableand also Increment the refcount or insert the record for
-    *         flowlist based on the the availability in DB
-    *
-    * @param[in] req   Pointer to the IpcRequestResponderHeaderClass.
-    * @param[in] ikey  Pointer to ConfigKeyVal Class.
-    * @param[in] dmi   Pointer to DalDmlIntf(DB) Interface .
-    *
-    * @retval  UPLL_RC_ERR_INSTANCE_EXISTS  Record Already Exists
-    * @retval  UPLL_RC_SUCCESS              Successful completion.
-    * @retval  UPLL_RC_ERR_GENERIC          Generic Errors.
-    * **/
-    upll_rc_t CreateCandidateMo(IpcReqRespHeader *req,
-              ConfigKeyVal *ikey, DalDmlIntf *dmi);
-
-    /**
-    * @brief     This API is used to delete the record from DB
-    *            and decrement the refcount of Flowlist(if it is
-    *            referred)based on the record availability in DB
-    *
-    * @param[in] req      Pointer to IpcRequestResponderHeader Class.
-    * @param[in] ikey     Pointer to ConfigKeyVal Class.
-    * @param[in] dmi      Pointer to DalDmlIntf Class.
-    *
-    * @retval    UPLL_RC_ERR_NO_SUCH_INSTANCE Record Not available
-    * @retval    UPLL_RC_SUCCESS              Successful completion.
-    * @retval    UPLL_RC_ERR_GENERIC          Generic Errors.
-    * **/
-    upll_rc_t DeleteMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                           DalDmlIntf *dmi);
-
-    /**
-    *  @brief  This API used to Update the record  in Db.
-    *
-    *  @param[in] req   Pointer to IpcRequestResponderHeader Class.
-    *  @param[in] ikey  Pointer to ConfigKeyVal Class.
-    *  @param[in] dmi   Pointer to DalDmlIntf Class(DB Interface).
-    *
-    *  @retval UPLL_RC_SUCCESS  Successfull completion.
-    * **/
-
-    upll_rc_t UpdateMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                           DalDmlIntf *dmi);
-    /**
-    * @brief     Method used for Validation before Merge.
-    *
-    * @param[in] ikey      Pointer to the Class for which
-    *                      fields have to be Validated before the Merge.
-    * @param[in] keytype   The keyType Information.
-    * @param[in] dmi       Pointer to DalDmlIntf Class.
-    * @param[in] ctrlr_id  Controller Name.
-    *
-    * @return code UPLL_RC_SUCCESS  Successfull completion.
-    * @retval  UPLL_RC_ERR_MERGE_CONFLICT Failure(Incase if same record
-    *                                     exist in Candidate Configuration)
-    *  **/
-    upll_rc_t MergeValidate(unc_key_type_t keytype,
+  upll_rc_t CreateAuditMoImpl(ConfigKeyVal *ikey,
+                              DalDmlIntf *dmi,
+                              const char *ctrlr_id);
+  /**
+   * @brief  This API is used to retrive the configuration details.
+   *
+   * @param[in] req        Pointer to IpcReqResponderHeader Class.
+   * @param[in,out] ikey   Pointer to ConfigKeyVal Class.
+   * @param[in] dmi        Pointer to DalDmlIntf Class.
+   *
+   * @retval  UPLL_RC_SUCCESS  Successfull completion.
+   * @retval  UPLL_RC_ERR_GENERIC   Failure.
+   *  * */
+
+  upll_rc_t ReadMo(IpcReqRespHeader *req,
+                   ConfigKeyVal *ikey, DalDmlIntf *dmi);
+  /**
+   *  @brief     Method used for ReadSibling Operation.
+   *
+   *  @param[in] req    Describes RequestResponderHeaderClass.
+   *  @param[in] key    Pointer to ConfigKeyVal Class.
+   *  @param[in] begin  boolean variable to decide whether to
+   *                    retrieve siblings from the begin or not
+   *  @param[in] dmi    Pointer to DalDmlIntf Class.
+   *
+   *  @retval    UPLL_RC_SUCCESS  Successfull completion.
+   *  **/
+
+  upll_rc_t ReadSiblingMo(IpcReqRespHeader *req, ConfigKeyVal *key,
+                          bool begin, DalDmlIntf *dmi);
+  /**
+   * @brief  This API is used to create the record  in Vtnflowfilterentry
+   *         tableand also Increment the refcount or insert the record for
+   *         flowlist based on the the availability in DB
+   *
+   * @param[in] req   Pointer to the IpcRequestResponderHeaderClass.
+   * @param[in] ikey  Pointer to ConfigKeyVal Class.
+   * @param[in] dmi   Pointer to DalDmlIntf(DB) Interface .
+   *
+   * @retval  UPLL_RC_ERR_INSTANCE_EXISTS  Record Already Exists
+   * @retval  UPLL_RC_SUCCESS              Successful completion.
+   * @retval  UPLL_RC_ERR_GENERIC          Generic Errors.
+   * **/
+  upll_rc_t CreateCandidateMo(IpcReqRespHeader *req,
+                              ConfigKeyVal *ikey,
+                              DalDmlIntf *dmi,
+                              bool restore_flag = false);
+
+  /**
+   * @brief     This API is used to delete the record from DB
+   *            and decrement the refcount of Flowlist(if it is
+   *            referred)based on the record availability in DB
+   *
+   * @param[in] req      Pointer to IpcRequestResponderHeader Class.
+   * @param[in] ikey     Pointer to ConfigKeyVal Class.
+   * @param[in] dmi      Pointer to DalDmlIntf Class.
+   *
+   * @retval    UPLL_RC_ERR_NO_SUCH_INSTANCE Record Not available
+   * @retval    UPLL_RC_SUCCESS              Successful completion.
+   * @retval    UPLL_RC_ERR_GENERIC          Generic Errors.
+   * **/
+  upll_rc_t DeleteMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
+                     DalDmlIntf *dmi);
+
+  /**
+   *  @brief  This API used to Update the record  in Db.
+   *
+   *  @param[in] req   Pointer to IpcRequestResponderHeader Class.
+   *  @param[in] ikey  Pointer to ConfigKeyVal Class.
+   *  @param[in] dmi   Pointer to DalDmlIntf Class(DB Interface).
+   *
+   *  @retval UPLL_RC_SUCCESS  Successfull completion.
+   * **/
+
+  upll_rc_t UpdateMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
+                     DalDmlIntf *dmi);
+  /**
+   * @brief     Method used for Validation before Merge.
+   *
+   * @param[in] ikey      Pointer to the Class for which
+   *                      fields have to be Validated before the Merge.
+   * @param[in] keytype   The keyType Information.
+   * @param[in] dmi       Pointer to DalDmlIntf Class.
+   * @param[in] ctrlr_id  Controller Name.
+   *
+   * @return code UPLL_RC_SUCCESS  Successfull completion.
+   * @retval  UPLL_RC_ERR_MERGE_CONFLICT Failure(Incase if same record
+   *                                     exist in Candidate Configuration)
+   *  **/
+  upll_rc_t MergeValidate(unc_key_type_t keytype,
                           const char *ctrlr_id,
                           ConfigKeyVal *ikey,
                           DalDmlIntf *dmi);
-    upll_rc_t MergeImportToCandidate(unc_key_type_t keytype,
-                                    const char *ctrlr_name,
-                                    DalDmlIntf *dmi);
-   /* @brief The Rename Operation is not allowed for the Key type KT_VTN_FLOWFILTER_ENTRY
-    *
+  upll_rc_t MergeImportToCandidate(unc_key_type_t keytype,
+                                   const char *ctrlr_name,
+                                   DalDmlIntf *dmi);
+  /* @brief The Rename Operation is not allowed for the Key type KT_VTN_FLOWFILTER_ENTRY
+   *
    *  @return code UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT. Rename operation is not allowed for
    *                                                   this keytype
    * * */
-    upll_rc_t RenameMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                   DalDmlIntf *dmi, const char *ctrlr_id);
-    /**
-    * @brief  Populate the configKeyVal with the Parent Class
-    *         Information.
-    *
-    * @param[out] okey       This Contains the pointer to the ConfigKeyVal Class
-    *                        for which fields have to be updated with values
-    *                        from the parent Class.
-    * @param[in] parent_key  This Contains the pointer to the ConfigKeyVal Class
-    *                        which is the Parent Key  used to fill the details.
-    *
-    * @retval  UPLL_RC_SUCCESS  Successful completion.
-    * @retval  UPLL_RC_ERR_GENERIC Generic Errors.
-    * **/
-
-    upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey,
-                             ConfigKeyVal *parent_key);
-    /**
-    * @brief  This Method is used to get the duplicate configkeyval
-    *
-    * @param[out] okey  Pointer to the Class for which
-    *                   fields have to be updated with values from the Request.
-    * @param[in]  req   Pointer to the Class which is
-    *                   used for the generating the Duplicate KeyVal.
-    * @param[in]  tbl   Enumerator member for Table name
-    *
-    * @retval  UPLL_RC_SUCCESS      Successful completion.
-    * @retval  UPLL_RC_ERR_GENERIC  Generic Errors.
-    *  **/
-
-    upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
-                                         MoMgrTables tbl);
-    /**
-    * @brief  This API is used to get the renamed controller key
-    *         for vtn and FlowList if it is renamed.
-    *
-    * @param[out] ikey      The pointer to the ConfigKeyVal Class
-    *                       which contain the PFC NAME in the KEY Structure
-    * @param[in] data_type  Upll Configuration information
-    *
-    * @retval  UPLL_RC_SUCCESS  Successful completion.
-    * @retval  UPLL_RC_ERR_GENERIC  Generic Errors.
-    * **/
-
-     upll_rc_t GetRenamedControllerKey(ConfigKeyVal *ikey,
+  upll_rc_t RenameMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
+                     DalDmlIntf *dmi, const char *ctrlr_id);
+  /**
+   * @brief  Populate the configKeyVal with the Parent Class
+   *         Information.
+   *
+   * @param[out] okey       This Contains the pointer to the ConfigKeyVal Class
+   *                        for which fields have to be updated with values
+   *                        from the parent Class.
+   * @param[in] parent_key  This Contains the pointer to the ConfigKeyVal Class
+   *                        which is the Parent Key  used to fill the details.
+   *
+   * @retval  UPLL_RC_SUCCESS  Successful completion.
+   * @retval  UPLL_RC_ERR_GENERIC Generic Errors.
+   * **/
+
+  upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey,
+                              ConfigKeyVal *parent_key);
+  /**
+   * @brief  This Method is used to get the duplicate configkeyval
+   *
+   * @param[out] okey  Pointer to the Class for which
+   *                   fields have to be updated with values from the Request.
+   * @param[in]  req   Pointer to the Class which is
+   *                   used for the generating the Duplicate KeyVal.
+   * @param[in]  tbl   Enumerator member for Table name
+   *
+   * @retval  UPLL_RC_SUCCESS      Successful completion.
+   * @retval  UPLL_RC_ERR_GENERIC  Generic Errors.
+   *  **/
+
+  upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
+                            MoMgrTables tbl);
+  /**
+   * @brief  This API is used to get the renamed controller key
+   *         for vtn and FlowList if it is renamed.
+   *
+   * @param[out] ikey      The pointer to the ConfigKeyVal Class
+   *                       which contain the PFC NAME in the KEY Structure
+   * @param[in] data_type  Upll Configuration information
+   *
+   * @retval  UPLL_RC_SUCCESS  Successful completion.
+   * @retval  UPLL_RC_ERR_GENERIC  Generic Errors.
+   * **/
+
+  upll_rc_t GetRenamedControllerKey(ConfigKeyVal *ikey,
                                     upll_keytype_datatype_t dt_type,
                                     DalDmlIntf *dmi,
                                     controller_domain *ctrlr_dom = NULL);
-    /**
-    * @brief This API is used to get the unc key name
-    *
-    * @param[in/out]] ikey  Pointer to the Class for which fields have to be
-    *                       updated with values from the parent Class.
-    * @param[in] dt_type    Configuration Information.
-    * @param[in] dmi        Pointer to DalDmlIntf(DB Interface)
-    * @param[in] ctrlr_id   Controller name.
-    *
-    * @retval UPLL_RC_SUCCESS  Successful completion.
-    * @retval UPLL_RC_ERR_GENERIC  Generic Errors.
-    * **/
-
-    upll_rc_t GetRenamedUncKey(ConfigKeyVal *ikey,
-     upll_keytype_datatype_t dt_type, DalDmlIntf *dmi, uint8_t *ctrlr_id);
-
-    /**
-    * @brief  This API is used to Copy the configuration from Candidate
-    *         DB to Running DB
-    *
-    * @param[in]  keytype               Defines the keytype for which operation
-    *                                   has to be carried out.
-    * @param[in]  ctrlr_commit_status   List describes Commit Control Status
-    *                                   Information.
-    * @param[in]  dmi                   Pointer to DalDmlIntf(DB Interface).
-    *
-    * @retval  UPLL_RC_SUCCESS  Successfull completion.
-    * * */
-    upll_rc_t TxCopyCandidateToRunning(unc_key_type_t keytype,
-                                  CtrlrCommitStatusList *ctrlr_commit_status,
-                                  DalDmlIntf *dmi);
-
-    /**
-    * @brief  This method used to update the configstatus in Db during
-    *          Trasaction Operation.
-    *
-    * @param[in] vtn_flowfilter_key   Pointer to ConfigKeyVal Class.
-    * @param[in] op                   Upll Opeartion Type.
-    * @param[in] driver_result        Result code from Driver.
-    * @param[in] nreq                 Pointer to ConfigKeyVal Class.
-    * @param[in] ctrlr_key            Pointer to ConfigKeyVal Class.
-    *
-    * @retval    UPLL_RC_SUCCESS    Successfull completion.
-    *  **/
-
-    upll_rc_t UpdateConfigStatus(ConfigKeyVal *vtn_flow_filter_entry_key,
-                                                 unc_keytype_operation_t op,
-                                                 uint32_t driver_result,
-                                                 ConfigKeyVal *nreq,
-                                                 DalDmlIntf *dmi,
-                                                 ConfigKeyVal *ctrlr_key);
-    /**
-    * @brief  Allocates Memory for the Incoming Pointer to the Class.
-
-    * @param[out] ck_val   This Contains the pointer to the Class for
-                           which memory has to be allocated.
-    * @param[in]  dt_type  Describes Configiration Information.
-    * @param[in]  tbl      Describes the Destination table Information.
-
-    * @retval UPLL_RC_SUCCESS  Successfull completion.
-    * @retval UPLL_RC_ERR_GENERIC  Return Generic Error
-    */
-
-    upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
-              MoMgrTables tbl);
-    /**
-    * @brief  This API updates the Configuration status for AuditConfigiration.
-    *
-    * @param[out] ckv_db                Pointer to the Class for which
-    *                                   ConfigStatus is Updated.
-    * @param[in]  ctrlr_commit_status   Pointer to Commit Control Status structure.
-    * @param[in]  response_code         Response Code.
-    * @param[in]  dmi                   Pointer DalDmlIntf(DB) Interface.
-    *
-    * @retval  UPLL_RC_SUCCESS Successfull completion.
-    * **/
-    upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
-                                      uuc::UpdateCtrlrPhase phase,
-                                      ConfigKeyVal *&ckv_running);
-   /**
-    * @brief  Method for TxUpdateController for updating the controller .
-    *
-    * @param[in]  keytype             Contains respective keytype of Api.
-    * @param[in]  session_id          Describes session information id .
-    * @param[in]  config_id           Describes the configuartion id .
-    * @param[in]  phase               Describes the phase of controller.
-    * @param[in]  affected_ctrlr_set  Describes the resp controller list.
-    * @param[in]  dmi                 Describes Pointer to DalDmlIntf class.
-    *
-    * @retval  UPLL_RT_SUCCESS      Successfull completion.
-    * @retval  UPLL_RC_ERR_GENERIC  Failure.
-    */
-
-    upll_rc_t TxUpdateController(unc_key_type_t keytype,
-                                 uint32_t session_id,
-                                 uint32_t config_id,
-                                 uuc::UpdateCtrlrPhase phase,
-                                 set<string> *affected_ctrlr_set,
-                                 DalDmlIntf *dmi,
-                                 ConfigKeyVal **err_ckv);
-     /**
-     * @brief  Method TxUpdateProcess .
-     *
-     * @param[out]  ck_main   Contains the Pointer to ConfigkeyVal Class
-     *                         and contains the Pfc Name.
-     * @param[in]   ipc_req   Describes Pointer variable for IpcRequest Class.
-     * @param[in]   ipc_resp  Describes Pointer variable for IpcResponse Class.
-     * @param[in]   op        Decribes the resp operation .
-     * @param[in]   dmi       Describes Pointer to DalDmlIntf Class.
-     * @param[in]   ctrlr_id  Describes Controller name
-     *
-     * @retval  UPLL_RT_SUCCESS      Successfull completion.
-     * @retval  UPLL_RC_ERR_GENERIC  Failure.
-     */
+  /**
+   * @brief This API is used to get the unc key name
+   *
+   * @param[in/out]] ikey  Pointer to the Class for which fields have to be
+   *                       updated with values from the parent Class.
+   * @param[in] dt_type    Configuration Information.
+   * @param[in] dmi        Pointer to DalDmlIntf(DB Interface)
+   * @param[in] ctrlr_id   Controller name.
+   *
+   * @retval UPLL_RC_SUCCESS  Successful completion.
+   * @retval UPLL_RC_ERR_GENERIC  Generic Errors.
+   * **/
+
+  upll_rc_t GetRenamedUncKey(ConfigKeyVal *ikey,
+                             upll_keytype_datatype_t dt_type,
+                             DalDmlIntf *dmi,
+                             uint8_t *ctrlr_id);
+
+  /**
+   * @brief  This API is used to Copy the configuration from Candidate
+   *         DB to Running DB
+   *
+   * @param[in]  keytype               Defines the keytype for which operation
+   *                                   has to be carried out.
+   * @param[in]  ctrlr_commit_status   List describes Commit Control Status
+   *                                   Information.
+   * @param[in]  dmi                   Pointer to DalDmlIntf(DB Interface).
+   *
+   * @retval  UPLL_RC_SUCCESS  Successfull completion.
+   * * */
+  upll_rc_t TxCopyCandidateToRunning(
+      unc_key_type_t keytype,
+      CtrlrCommitStatusList *ctrlr_commit_status,
+      DalDmlIntf *dmi);
 
-    upll_rc_t TxUpdateProcess(ConfigKeyVal *ck_main,
-                              IpcResponse *ipc_resp,
-                              unc_keytype_operation_t op,
-                              DalDmlIntf *dmi,
-                              controller_domain *ctrlr_dom);
-
-    /**
-    * @brief  This API is used to know the value availability of
-    *         val structure attributes
-    *
-    * @param[out] valid    This will contain the output of validity of the
-    *                       specified attribute
-    * @param[in]  val      This contains the value structure
-    * @param[in]  indx     Gives the index of attribute for validity
-    * @param[in]  dt_type  configuration for validity check
-    * @param[in]  tbl      Table name
-    *
-    * @retval[out] UPLL_RC_SUCCESS  Successful completion.
-    * @retval[out] UPLL_RC_ERR_GENERIC  Generic Errors.
-    **  */
-    upll_rc_t GetValid(void *val, uint64_t indx, uint8_t *&valid,
-                                        upll_keytype_datatype_t dt_type,
-                                        MoMgrTables tbl);
-     /**
-     * @brief  Method used for UpdateControllerTable Operation.
-     *
-     * @param[in,out]  ikey       Pointer to ConfigKeyVal Class.
-     * @param[in]      op         Describes the Type of Opeartion.
-     * @param[in]      dt_type    Describes Configiration Information.
-     * @param[in]      dmi        Pointer to DalDmlIntf Class.
-     *
-     * @retval  UPLL_RC_SUCCESS      Successfull completion.
-     * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
-     */
-/*
-    upll_rc_t UpdateControllerTable(ConfigKeyVal *ikey,
-                                    unc_keytype_operation_t op,
-                                    upll_keytype_datatype_t dt_type,
+  /**
+   * @brief  This method used to update the configstatus in Db during
+   *          Trasaction Operation.
+   *
+   * @param[in] vtn_flowfilter_key   Pointer to ConfigKeyVal Class.
+   * @param[in] op                   Upll Opeartion Type.
+   * @param[in] driver_result        Result code from Driver.
+   * @param[in] nreq                 Pointer to ConfigKeyVal Class.
+   * @param[in] ctrlr_key            Pointer to ConfigKeyVal Class.
+   *
+   * @retval    UPLL_RC_SUCCESS    Successfull completion.
+   *  **/
+
+  upll_rc_t UpdateConfigStatus(ConfigKeyVal *vtn_flow_filter_entry_key,
+                               unc_keytype_operation_t op,
+                               uint32_t driver_result,
+                               ConfigKeyVal *nreq,
+                               DalDmlIntf *dmi,
+                               ConfigKeyVal *ctrlr_key);
+  /**
+   * @brief  Allocates Memory for the Incoming Pointer to the Class.
+
+   * @param[out] ck_val   This Contains the pointer to the Class for
+   which memory has to be allocated.
+   * @param[in]  dt_type  Describes Configiration Information.
+   * @param[in]  tbl      Describes the Destination table Information.
+
+   * @retval UPLL_RC_SUCCESS  Successfull completion.
+   * @retval UPLL_RC_ERR_GENERIC  Return Generic Error
+   */
+
+  upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
+                     MoMgrTables tbl);
+  /**
+   * @brief  This API updates the Configuration status for AuditConfigiration.
+   *
+   * @param[out] ckv_db                Pointer to the Class for which
+   *                                   ConfigStatus is Updated.
+   * @param[in]  ctrlr_commit_status   Pointer to Commit Control Status structure.
+   * @param[in]  response_code         Response Code.
+   * @param[in]  dmi                   Pointer DalDmlIntf(DB) Interface.
+   *
+   * @retval  UPLL_RC_SUCCESS Successfull completion.
+   * **/
+  upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
+                                    uuc::UpdateCtrlrPhase phase,
+                                    ConfigKeyVal *&ckv_running,
                                     DalDmlIntf *dmi);
-  */   /**
+  /**
+   * @brief  Method for TxUpdateController for updating the controller .
+   *
+   * @param[in]  keytype             Contains respective keytype of Api.
+   * @param[in]  session_id          Describes session information id .
+   * @param[in]  config_id           Describes the configuartion id .
+   * @param[in]  phase               Describes the phase of controller.
+   * @param[in]  affected_ctrlr_set  Describes the resp controller list.
+   * @param[in]  dmi                 Describes Pointer to DalDmlIntf class.
+   *
+   * @retval  UPLL_RT_SUCCESS      Successfull completion.
+   * @retval  UPLL_RC_ERR_GENERIC  Failure.
+   */
+
+  upll_rc_t TxUpdateController(unc_key_type_t keytype,
+                               uint32_t session_id,
+                               uint32_t config_id,
+                               uuc::UpdateCtrlrPhase phase,
+                               set<string> *affected_ctrlr_set,
+                               DalDmlIntf *dmi,
+                               ConfigKeyVal **err_ckv);
+  /**
+   * @brief  Method TxUpdateProcess .
+   *
+   * @param[out]  ck_main   Contains the Pointer to ConfigkeyVal Class
+   *                         and contains the Pfc Name.
+   * @param[in]   ipc_req   Describes Pointer variable for IpcRequest Class.
+   * @param[in]   ipc_resp  Describes Pointer variable for IpcResponse Class.
+   * @param[in]   op        Decribes the resp operation .
+   * @param[in]   dmi       Describes Pointer to DalDmlIntf Class.
+   * @param[in]   ctrlr_id  Describes Controller name
+   *
+   * @retval  UPLL_RT_SUCCESS      Successfull completion.
+   * @retval  UPLL_RC_ERR_GENERIC  Failure.
+   */
+
+  upll_rc_t TxUpdateProcess(ConfigKeyVal *ck_main,
+                            IpcResponse *ipc_resp,
+                            unc_keytype_operation_t op,
+                            DalDmlIntf *dmi,
+                            controller_domain *ctrlr_dom,
+                            set<string> *affected_ctrlr_set,
+                            bool *driver_resp);
+
+  /**
+   * @brief  This API is used to know the value availability of
+   *         val structure attributes
+   *
+   * @param[out] valid    This will contain the output of validity of the
+   *                       specified attribute
+   * @param[in]  val      This contains the value structure
+   * @param[in]  indx     Gives the index of attribute for validity
+   * @param[in]  dt_type  configuration for validity check
+   * @param[in]  tbl      Table name
+   *
+   * @retval[out] UPLL_RC_SUCCESS  Successful completion.
+   * @retval[out] UPLL_RC_ERR_GENERIC  Generic Errors.
+   **  */
+  upll_rc_t GetValid(void *val, uint64_t indx, uint8_t *&valid,
+                     upll_keytype_datatype_t dt_type,
+                     MoMgrTables tbl);
+  /**
+   * @brief  Method used for UpdateControllerTable Operation.
+   *
+   * @param[in,out]  ikey       Pointer to ConfigKeyVal Class.
+   * @param[in]      op         Describes the Type of Opeartion.
+   * @param[in]      dt_type    Describes Configiration Information.
+   * @param[in]      dmi        Pointer to DalDmlIntf Class.
+   *
+   * @retval  UPLL_RC_SUCCESS      Successfull completion.
+   * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
+   */
+  /*
+     upll_rc_t UpdateControllerTable(ConfigKeyVal *ikey,
+     unc_keytype_operation_t op,
+     upll_keytype_datatype_t dt_type,
+     DalDmlIntf *dmi);
+     */   /**
      * @brief  Method used for GetControllerKeyval Operation.
      *
      * @param[in]  ctrlckv           Pointer to ConfigKeyVal Class.
@@ -553,109 +561,110 @@ class VtnFlowFilterEntryMoMgr: public MoMgrImpl {
      * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
      */
 
-     upll_rc_t GetControllerKeyval(ConfigKeyVal *&ctrlckv,
-                                  ConfigKeyVal *&ikey,
-                                  controller_domain *ctrlr_id);
-     /**
-     * @brief  Method used for UpdateControllerTableForVtn Operation.
-     *
-     * @param[in]      vtn_name   Pointer to vtn_name
-     * @param[in]      op         Describes the Type of Opeartion.
-     * @param[in]      dmi        Pointer to DalDmlIntf Class.
-     * @param[in]      ctrlr_id   Pointer to ctrlr_id.
-     *
-     * @retval  UPLL_RC_SUCCESS      Successfull completion.
-     * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
-     */
-
-     upll_rc_t UpdateControllerTableForVtn(
-                                        uint8_t* vtn_name,
-                                        controller_domain *ctrlr_dom,
-                                        unc_keytype_operation_t op,
-                                        upll_keytype_datatype_t dt_type,
-                                        DalDmlIntf *dmi,
-                                        uint8_t flag);
-     /**
-     * @brief  Method used for GetParentConfigKey Operation.
-     *
-     * @param[out]  okey        Pointer to ConfigKeyVal Class.
-     * @param[in]   parent_key  Pointer to ConfigKeyVal Class.
-     *
-     * @retval  UPLL_RC_SUCCESS      Successfull completion.
-     * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
-     */
-    upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey,
-                                 ConfigKeyVal *ikey);
-    /**
-     * @brief  Method used for Restoring FlowList in the Controller Table
-     *
-     * @param[in]      ikey       Pointer to ConfigKeyVal Class
-     * @param[in]      dt_type    Describes Configiration Information.
-     * @param[in]      tbl        Describe the destination table
-     * @param[in]      dmi        Pointer to DalDmlIntf Class.
-     *
-     * @retval  UPLL_RC_SUCCESS      Successfull completion.
-     * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
-     * @retval  UPLL_RC_ERR_INSTANCE_EXISTS       Record already exists 
-     * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
-     */
-
-    upll_rc_t RestorePOMInCtrlTbl(ConfigKeyVal *ikey,
-                                  upll_keytype_datatype_t dt_type,
-                                  MoMgrTables tbl,
-                                  DalDmlIntf* dmi);
+  upll_rc_t GetControllerKeyval(ConfigKeyVal *&ctrlckv,
+                                ConfigKeyVal *&ikey,
+                                controller_domain *ctrlr_id);
+  /**
+   * @brief  Method used for UpdateControllerTableForVtn Operation.
+   *
+   * @param[in]      vtn_name   Pointer to vtn_name
+   * @param[in]      op         Describes the Type of Opeartion.
+   * @param[in]      dmi        Pointer to DalDmlIntf Class.
+   * @param[in]      ctrlr_id   Pointer to ctrlr_id.
+   *
+   * @retval  UPLL_RC_SUCCESS      Successfull completion.
+   * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
+   */
+
+  upll_rc_t UpdateControllerTableForVtn(
+      uint8_t* vtn_name,
+      controller_domain *ctrlr_dom,
+      unc_keytype_operation_t op,
+      upll_keytype_datatype_t dt_type,
+      DalDmlIntf *dmi,
+      uint8_t flag);
+  /**
+   * @brief  Method used for GetParentConfigKey Operation.
+   *
+   * @param[out]  okey        Pointer to ConfigKeyVal Class.
+   * @param[in]   parent_key  Pointer to ConfigKeyVal Class.
+   *
+   * @retval  UPLL_RC_SUCCESS      Successfull completion.
+   * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
+   */
+  upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey,
+                               ConfigKeyVal *ikey);
+  /**
+   * @brief  Method used for Restoring FlowList in the Controller Table
+   *
+   * @param[in]      ikey       Pointer to ConfigKeyVal Class
+   * @param[in]      dt_type    Describes Configiration Information.
+   * @param[in]      tbl        Describe the destination table
+   * @param[in]      dmi        Pointer to DalDmlIntf Class.
+   *
+   * @retval  UPLL_RC_SUCCESS      Successfull completion.
+   * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
+   * @retval  UPLL_RC_ERR_INSTANCE_EXISTS       Record already exists
+   * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
+   */
+
+  upll_rc_t RestorePOMInCtrlTbl(ConfigKeyVal *ikey,
+                                upll_keytype_datatype_t dt_type,
+                                MoMgrTables tbl,
+                                DalDmlIntf* dmi);
   upll_rc_t UpdateFlowListInCtrl(ConfigKeyVal *ikey,
                                  upll_keytype_datatype_t dt_type,
                                  unc_keytype_operation_t op,
                                  DalDmlIntf* dmi);
   upll_rc_t IsNWMReferenced(ConfigKeyVal *ikey,
-                         DalDmlIntf *dmi);
+                            DalDmlIntf *dmi);
 
 
   upll_rc_t GetControllerDomainSpan(ConfigKeyVal *ikey,
-      upll_keytype_datatype_t dt_type, DalDmlIntf *dmi);
+                                    upll_keytype_datatype_t dt_type,
+                                    DalDmlIntf *dmi);
   upll_rc_t ValidateMessageForVtnFlowFilterController
-                                  (IpcReqRespHeader *req,
-                                    ConfigKeyVal *key);
+      (IpcReqRespHeader *req,
+       ConfigKeyVal *key);
   upll_rc_t ValidateMessageForVtnFlowFilterEntry
-                                   (IpcReqRespHeader *req,
-                                       ConfigKeyVal *key);
+      (IpcReqRespHeader *req,
+       ConfigKeyVal *key);
   upll_rc_t
-     ValidateCapabilityForVtnFlowFilterEntry(IpcReqRespHeader *req,
-                                   ConfigKeyVal *ikey,
-                                   const char* ctrlr_name);
+      ValidateCapabilityForVtnFlowFilterEntry(IpcReqRespHeader *req,
+                                              ConfigKeyVal *ikey,
+                                              const char* ctrlr_name);
   upll_rc_t ValidateCapabilityForVtnFlowFilterController
-                                   (IpcReqRespHeader *req,
-                                   ConfigKeyVal *ikey,
-                                   const char* ctrlr_name);
+      (IpcReqRespHeader *req,
+       ConfigKeyVal *ikey,
+       const char* ctrlr_name);
   upll_rc_t ValVtnFlowfilterCtrlAttributeSupportCheck(
-  val_flowfilter_controller_t *val_flowfilter_controller,
-  const uint8_t* attrs);
+      val_flowfilter_controller_t *val_flowfilter_controller,
+      const uint8_t* attrs);
   upll_rc_t ValidateVtnFlowfilterControllerValue(
-    val_flowfilter_controller_t *val_flowfilter_controller,
-    uint32_t operation);
+      val_flowfilter_controller_t *val_flowfilter_controller,
+      uint32_t operation);
 
   upll_rc_t ReadFlowFilterController(IpcReqRespHeader *req,
                                      ConfigKeyVal *ikey,
                                      DalDmlIntf *dmi);
 
   upll_rc_t  ReadControllerStateNormal(ConfigKeyVal *ikey ,
-                              upll_keytype_datatype_t dt_type,
-                              unc_keytype_operation_t op,
-                              DalDmlIntf *dmi);
+                                       upll_keytype_datatype_t dt_type,
+                                       unc_keytype_operation_t op,
+                                       DalDmlIntf *dmi);
 
   upll_rc_t ReadControllerStateDetail(ConfigKeyVal *ikey ,
                                       ConfigKeyVal *drv_resp_ckv,
                                       controller_domain *ctrlr_dom,
                                       ConfigKeyVal **okey);
   upll_rc_t GetCtrlFlowFilterEntry(
-     key_vtn_flowfilter_entry *l_key_vtn_ffe,
-     val_vtn_flowfilter_entry_ctrlr_t *val_vtn_ffe_ctrlr,
-     upll_keytype_datatype_t dt_type,
-     DalDmlIntf *dmi,
-     val_vtn_flowfilter_entry_t *&op_val_vtn_ffe,
-     const char* ctrlr_name,
-     unc_keytype_option1_t opt1 = UNC_OPT1_NORMAL);
+      key_vtn_flowfilter_entry *l_key_vtn_ffe,
+      val_vtn_flowfilter_entry_ctrlr_t *val_vtn_ffe_ctrlr,
+      upll_keytype_datatype_t dt_type,
+      DalDmlIntf *dmi,
+      val_vtn_flowfilter_entry_t *&op_val_vtn_ffe,
+      const char* ctrlr_name,
+      unc_keytype_option1_t opt1 = UNC_OPT1_NORMAL);
 
   upll_rc_t  ReadSiblingCount(IpcReqRespHeader *req,
                               ConfigKeyVal *ikey,
@@ -674,10 +683,10 @@ class VtnFlowFilterEntryMoMgr: public MoMgrImpl {
                                              DalDmlIntf *dmi);
 
   upll_rc_t ConstructReadSiblingNormalResponse(
-    ConfigKeyVal *ikey,
-    upll_keytype_datatype_t dt_type,
-    DalDmlIntf *dmi,
-    ConfigKeyVal **okey);
+      ConfigKeyVal *ikey,
+      upll_keytype_datatype_t dt_type,
+      DalDmlIntf *dmi,
+      ConfigKeyVal **okey);
 
   upll_rc_t GetVtnControllerSpan(
       ConfigKeyVal *ikey,
@@ -685,19 +694,19 @@ class VtnFlowFilterEntryMoMgr: public MoMgrImpl {
       DalDmlIntf *dmi,
       std::list<controller_domain_t> &list_ctrlr_dom);
 
-upll_rc_t UpdateControllerTable(
-    ConfigKeyVal *ikey, unc_keytype_operation_t op,
-    upll_keytype_datatype_t dt_type,
-    DalDmlIntf *dmi,
-    std::list<controller_domain_t> list_ctrlr_dom);
+  upll_rc_t UpdateControllerTable(
+      ConfigKeyVal *ikey, unc_keytype_operation_t op,
+      upll_keytype_datatype_t dt_type,
+      DalDmlIntf *dmi,
+      std::list<controller_domain_t> list_ctrlr_dom);
 
-upll_rc_t UpdateMainTbl(ConfigKeyVal *vtn_ffe_key,
-      unc_keytype_operation_t op, uint32_t driver_result,
-      ConfigKeyVal *nreq, DalDmlIntf *dmi);
+  upll_rc_t UpdateMainTbl(ConfigKeyVal *vtn_ffe_key,
+                          unc_keytype_operation_t op, uint32_t driver_result,
+                          ConfigKeyVal *nreq, DalDmlIntf *dmi);
 
   upll_rc_t DeleteChildMo(IpcReqRespHeader *req,
-                        ConfigKeyVal *ikey,
-                        DalDmlIntf *dmi);
+                          ConfigKeyVal *ikey,
+                          DalDmlIntf *dmi);
 
   upll_rc_t IsFlowListConfigured(
       const char* flowlist_name, DalDmlIntf *dmi);
@@ -710,7 +719,7 @@ upll_rc_t UpdateMainTbl(ConfigKeyVal *vtn_ffe_key,
   upll_rc_t UpdateVnodeVal(ConfigKeyVal *ikey,
                            DalDmlIntf *dmi,
                            upll_keytype_datatype_t data_type,
-                            bool &no_rename);
+                           bool &no_rename);
 
   bool FilterAttributes(void *&val1,
                         void *val2,
@@ -723,25 +732,26 @@ upll_rc_t UpdateMainTbl(ConfigKeyVal *vtn_ffe_key,
       unc_keytype_configstatus_t current_cs,
       unc_keytype_configstatus_t current_ctrlr_cs);
 
-   upll_rc_t IsRenamed(ConfigKeyVal *ikey,
-                     upll_keytype_datatype_t dt_type,
-                     DalDmlIntf *dmi,
-                     uint8_t &rename);
-   upll_rc_t
-   SetVtnFFEntryConsolidatedStatus(ConfigKeyVal *ikey,
-                                   uint8_t *ctrlr_id,
-                                   DalDmlIntf *dmi);  
-
-    upll_rc_t GetFlowlistConfigKey(
-          const char *flowlist_name, ConfigKeyVal *&okey,
-          DalDmlIntf *dmi);
-
-    upll_rc_t SetRenameFlag(ConfigKeyVal *ikey,
-          DalDmlIntf *dmi,
-          IpcReqRespHeader *req);
-
-   bool CompareValidVal(void *&val1, void *val2,
-                        void *val3, bool audit);
+  upll_rc_t IsRenamed(ConfigKeyVal *ikey,
+                      upll_keytype_datatype_t dt_type,
+                      DalDmlIntf *dmi,
+                      uint8_t &rename);
+  upll_rc_t
+      SetVtnFFEntryConsolidatedStatus(ConfigKeyVal *ikey,
+                                      uint8_t *ctrlr_id,
+                                      DalDmlIntf *dmi);
+
+  upll_rc_t GetFlowlistConfigKey(
+      const char *flowlist_name, ConfigKeyVal *&okey,
+      DalDmlIntf *dmi);
+
+  upll_rc_t SetRenameFlag(ConfigKeyVal *ikey,
+                          DalDmlIntf *dmi,
+                          IpcReqRespHeader *req);
+
+  bool CompareValidVal(void *&val1, void *val2,
+                       void *val3, bool audit);
+  upll_rc_t DecRefCountInFLCtrlTbl(ConfigKeyVal *ffe_imkey, DalDmlIntf *dmi);
 };
 
 }  // namespace kt_momgr
index 3005a4e0c5afccf7fd57ae9b6983794565b2dc0c..7b60cbecab5d3e5ad65af78fd403f6ed01bffc31 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -64,30 +64,30 @@ BindInfo VtnFlowFilterMoMgr::vtn_flowfilter_ctrl_bind_info[] = {
 
 BindInfo VtnFlowFilterMoMgr::vtn_flowfilter_maintbl_rename_bindinfo[] = {
   { uudst::vtn_flowfilter::kDbiVtnName, CFG_MATCH_KEY, offsetof(
-    key_vtn_flowfilter_t, vtn_key.vtn_name),
-    uud::kDalChar, kMaxLenVtnName + 1 },
+          key_vtn_flowfilter_t, vtn_key.vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1 },
   { uudst::vtn_flowfilter::kDbiVtnName, CFG_INPUT_KEY, offsetof(
-    key_rename_vnode_info_t, new_unc_vtn_name),
-    uud::kDalChar, kMaxLenVtnName + 1 },
+          key_rename_vnode_info_t, new_unc_vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1 },
   { uudst::vtn_flowfilter::kDbiFlags, CK_VAL, offsetof(
-    key_user_data_t, flags),
-    uud::kDalUint8, 1 }
+          key_user_data_t, flags),
+  uud::kDalUint8, 1 }
 };
 
 BindInfo VtnFlowFilterMoMgr::vtn_flowfilter_ctrlrtbl_rename_bindinfo[] = {
   { uudst::vtn_flowfilter_ctrlr::kDbiVtnName, CFG_MATCH_KEY, offsetof(
-    key_vtn_flowfilter_t, vtn_key.vtn_name),
-    uud::kDalChar, kMaxLenVtnName + 1 },
+          key_vtn_flowfilter_t, vtn_key.vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1 },
   { uudst::vtn_flowfilter_ctrlr::kDbiVtnName, CFG_INPUT_KEY, offsetof(
-    key_rename_vnode_info_t, new_unc_vtn_name),
-    uud::kDalChar, kMaxLenVtnName + 1 },
+          key_rename_vnode_info_t, new_unc_vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1 },
   { uudst::vtn_flowfilter_ctrlr::kDbiFlags, CK_VAL, offsetof(
-    key_user_data_t, flags),
-    uud::kDalUint8, 1 }
+          key_user_data_t, flags),
+  uud::kDalUint8, 1 }
 };
 
 unc_key_type_t VtnFlowFilterMoMgr::vtn_flowfilter_child[] = {
-    UNC_KT_VTN_FLOWFILTER_ENTRY
+  UNC_KT_VTN_FLOWFILTER_ENTRY
 };
 
 VtnFlowFilterMoMgr::VtnFlowFilterMoMgr() : MoMgrImpl() {
@@ -99,27 +99,29 @@ VtnFlowFilterMoMgr::VtnFlowFilterMoMgr() : MoMgrImpl() {
 
   // For Main Table
   table[MAINTBL] = new Table(uudst::kDbiVtnFlowFilterTbl,
-      UNC_KT_VTN_FLOWFILTER, vtn_flowfilter_bind_info,
-      IpctSt::kIpcStKeyVtnFlowfilter, IpctSt::kIpcStValFlowfilter,
-      uudst::vtn_flowfilter::kDbiVtnFlowFilterNumCols);
+                             UNC_KT_VTN_FLOWFILTER,
+                             vtn_flowfilter_bind_info,
+                             IpctSt::kIpcStKeyVtnFlowfilter,
+                             IpctSt::kIpcStValFlowfilter,
+                             uudst::vtn_flowfilter::kDbiVtnFlowFilterNumCols);
   table[RENAMETBL] = NULL;
   // for ctrlr table
-  table[CTRLRTBL] = new Table(uudst::kDbiVtnFlowFilterCtrlrTbl,
-                  UNC_KT_VTN_FLOWFILTER,
-                  vtn_flowfilter_ctrl_bind_info,
-                  IpctSt::kIpcStKeyVtnFlowfilter,
-                  IpctSt::kIpcInvalidStNum,
-                  uudst::vtn_flowfilter_ctrlr::kDbiVtnFlowFilterCtrlrNumCols);
+  table[CTRLRTBL] = new Table(
+      uudst::kDbiVtnFlowFilterCtrlrTbl,
+      UNC_KT_VTN_FLOWFILTER,
+      vtn_flowfilter_ctrl_bind_info,
+      IpctSt::kIpcStKeyVtnFlowfilter,
+      IpctSt::kIpcInvalidStNum,
+      uudst::vtn_flowfilter_ctrlr::kDbiVtnFlowFilterCtrlrNumCols);
 
   nchild = sizeof(vtn_flowfilter_child) / sizeof(vtn_flowfilter_child[0]);
   child = vtn_flowfilter_child;
-  cur_instance_count = 0;
 }
 
 upll_rc_t VtnFlowFilterMoMgr::MergeValidate(unc_key_type_t keytype,
-                                             const char *ctrlr_id,
-                                             ConfigKeyVal *ikey,
-                                             DalDmlIntf *dmi) {
+                                            const char *ctrlr_id,
+                                            ConfigKeyVal *ikey,
+                                            DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *ckval = NULL;
@@ -141,7 +143,7 @@ upll_rc_t VtnFlowFilterMoMgr::MergeValidate(unc_key_type_t keytype,
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutNone };
 
   result_code = ReadConfigDB(ckval, UPLL_DT_IMPORT,
-              UNC_OP_READ, dbop, dmi, MAINTBL);
+                             UNC_OP_READ, dbop, dmi, MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     DELETE_IF_NOT_NULL(ckval);
     if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
@@ -154,8 +156,8 @@ upll_rc_t VtnFlowFilterMoMgr::MergeValidate(unc_key_type_t keytype,
   while (NULL != ckval) {
     // Check the VTN already configured in UNC
     VtnMoMgr *vtnmgr =
-      static_cast<VtnMoMgr *>((const_cast<MoManager *>
-          (GetMoManager(UNC_KT_VTN))));
+        static_cast<VtnMoMgr *>((const_cast<MoManager *>
+                                 (GetMoManager(UNC_KT_VTN))));
     result_code = vtnmgr->GetChildConfigKey(ckey, NULL);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("GetChildConfigKey error (%d)", result_code);
@@ -165,13 +167,18 @@ upll_rc_t VtnFlowFilterMoMgr::MergeValidate(unc_key_type_t keytype,
     if (!ckey) return UPLL_RC_ERR_GENERIC;
 
     key_vtn_t *vtn_okey = reinterpret_cast<key_vtn_t *>(ckey->get_key());
-    key_vtn_flowfilter_t *vtn_ikey = reinterpret_cast<key_vtn_flowfilter_t *>(ckval->get_key());
+    key_vtn_flowfilter_t *vtn_ikey = reinterpret_cast<key_vtn_flowfilter_t *>
+        (ckval->get_key());
     uuu::upll_strncpy(vtn_okey->vtn_name, vtn_ikey->vtn_key.vtn_name,
-                    kMaxLenVtnName+1);
+                      kMaxLenVtnName+1);
     DbSubOp dbop1 = { kOpReadExist, kOpMatchNone, kOpInOutNone };
     // Check the vtn already exist in vtn tbl
-    result_code = vtnmgr->UpdateConfigDB(ckey, UPLL_DT_RUNNING, UNC_OP_READ, dmi,
-                               &dbop1, MAINTBL);
+    result_code = vtnmgr->UpdateConfigDB(ckey,
+                                         UPLL_DT_RUNNING,
+                                         UNC_OP_READ,
+                                         dmi,
+                                         &dbop1,
+                                         MAINTBL);
     if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code) {
       UPLL_LOG_DEBUG("vtn already exists");
       DELETE_IF_NOT_NULL(ckey);
@@ -180,10 +187,10 @@ upll_rc_t VtnFlowFilterMoMgr::MergeValidate(unc_key_type_t keytype,
     }
 
     DELETE_IF_NOT_NULL(ckey);
-    // If already vtn not configured, then do merge validation 
+    // If already vtn not configured, then do merge validation
     DbSubOp dbop2 = { kOpReadExist, kOpMatchNone, kOpInOutNone };
     result_code = UpdateConfigDB(ckval, UPLL_DT_RUNNING, UNC_OP_READ, dmi,
-                              &dbop2, MAINTBL);
+                                 &dbop2, MAINTBL);
     if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code) {
       UPLL_LOG_DEBUG("Merge Conflict");
       result_code = DupConfigKeyVal(ikey, ckval, MAINTBL);
@@ -206,17 +213,13 @@ upll_rc_t VtnFlowFilterMoMgr::MergeValidate(unc_key_type_t keytype,
 }
 
 upll_rc_t VtnFlowFilterMoMgr::MergeImportToCandidate(unc_key_type_t keytype,
-                                            const char *ctrlr_name,
-                                            DalDmlIntf *dmi) {
+                                                     const char *ctrlr_name,
+                                                     DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
-
   ConfigKeyVal *ckval = NULL;
-  ConfigKeyVal *ckey = NULL;
-
-  controller_domain ctrlr_dom;
-  ctrlr_dom.ctrlr = NULL;
-  ctrlr_dom.domain = NULL;
+  ConfigKeyVal *ff_imkey = NULL, *ff_cdkey = NULL;
+  ConfigKeyVal *ckv_import = NULL, *ckv_cand = NULL;
   uint8_t flag = 0;
 
   if (NULL == ctrlr_name) {
@@ -224,208 +227,347 @@ upll_rc_t VtnFlowFilterMoMgr::MergeImportToCandidate(unc_key_type_t keytype,
     return UPLL_RC_ERR_GENERIC;
   }
 
-  result_code = GetChildConfigKey(ckval, NULL);
+  VtnMoMgr *vtnmgr =
+      static_cast<VtnMoMgr *>((const_cast<MoManager *>
+                               (GetMoManager(UNC_KT_VTN))));
+  result_code = vtnmgr->GetChildConfigKey(ckval, NULL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("GetChildConfigKey ckval NULL");
     return result_code;
   }
 
-
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutFlag };
-  // Read vtn ff from import main
-  result_code = ReadConfigDB(ckval, UPLL_DT_IMPORT,
-              UNC_OP_READ, dbop, dmi, MAINTBL);
+  /* Read all vtn from VTN main table in import database and check with
+   * Candidate database */
+  result_code = vtnmgr->ReadConfigDB(ckval, UPLL_DT_IMPORT,
+                                     UNC_OP_READ, dbop, dmi, MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
-    DELETE_IF_NOT_NULL(ckval);
     UPLL_LOG_DEBUG("ReadConfigDB ckval NULL (%d)", result_code);
-    if(result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-      UPLL_LOG_DEBUG("ReadConfigDB ckval NULL (%d)", result_code);
-      return result_code;
+    if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+      UPLL_LOG_DEBUG("NO record in vtn tbl (%d)", result_code);
+      result_code = UPLL_RC_SUCCESS;
     }
-    return UPLL_RC_SUCCESS;
+    DELETE_IF_NOT_NULL(ckval);
+    return result_code;
   }
-
-  UPLL_LOG_DEBUG("ReadConfigDB ckval NULL (%d)", result_code);
-  ConfigKeyVal *tmp_ckval1 = ckval;
-  while (NULL != ckval) {
-    // Check the VTN already configured in UNC
-    VtnMoMgr *vtnmgr =
-      static_cast<VtnMoMgr *>((const_cast<MoManager *>
-          (GetMoManager(UNC_KT_VTN))));
-    result_code = vtnmgr->GetChildConfigKey(ckey, NULL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetChildConfigKey error (%d)", result_code);
-      DELETE_IF_NOT_NULL(ckval);
+  ConfigKeyVal *tmp_ckval = ckval;
+  while (ckval != NULL) {
+    /* Get the instance count from vtn ctrl table in candidate.
+     * If refcount is more than 1,
+     *    which means that the vtn is already exists in candidate
+     * If refcount is zero or 1,
+     *    which means that the imported vtn is not exists in candidate
+     */
+    uint32_t imp_instance_count, cand_instance_count;
+    /* Get the instance count from vtn ctrl tbl from import db*/
+    result_code = vtnmgr->GetChildConfigKey(ckv_import, ckval);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG("GetChildConfigKey failed %d", result_code);
+      DELETE_IF_NOT_NULL(tmp_ckval);
       return result_code;
     }
-    if (!ckey) return UPLL_RC_ERR_GENERIC;
-
-    key_vtn_t *vtn_okey = reinterpret_cast<key_vtn_t *>(ckey->get_key());
-    key_vtn_flowfilter *vtn_ikey = reinterpret_cast<key_vtn_flowfilter_t *>(ckval->get_key());
-    uuu::upll_strncpy(vtn_okey->vtn_name, vtn_ikey->vtn_key.vtn_name,
-                    kMaxLenVtnName+1);
-    DbSubOp dbop1 = { kOpReadExist, kOpMatchNone, kOpInOutNone };
-    // Check the vtn already exist in vtn tbl
-    result_code = vtnmgr->UpdateConfigDB(ckey, UPLL_DT_RUNNING, UNC_OP_READ, dmi,
-                               &dbop1, MAINTBL);
-    if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code) {
-      UPLL_LOG_DEBUG("vtn already exists");
-      DELETE_IF_NOT_NULL(ckey);
-      ckval = ckval->get_next_cfg_key_val();
-      continue;
-    } else if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
-      DELETE_IF_NOT_NULL(ckey);
-      DELETE_IF_NOT_NULL(ckval);
+    result_code = vtnmgr->GetInstanceCount(ckv_import, NULL,
+                                           UPLL_DT_IMPORT,
+                                           &imp_instance_count,
+                                           dmi,
+                                           CTRLRTBL);
+    DELETE_IF_NOT_NULL(ckv_import);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG("GetInstanceCount failed %d", result_code);
+      DELETE_IF_NOT_NULL(tmp_ckval);
       return result_code;
     }
 
-    // If not same vtn, then merge the vtn ff to candidate tbl
-    result_code = UpdateConfigDB(ckval, UPLL_DT_CANDIDATE, UNC_OP_CREATE,
-                               dmi, MAINTBL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("create in CandidateDB failed: err code(%d) ",
-                   result_code);
-      DELETE_IF_NOT_NULL(ckey);
-      DELETE_IF_NOT_NULL(ckval);
+    /* Get the instance count from vtn ctrl tbl from candidate db*/
+    result_code = vtnmgr->GetChildConfigKey(ckv_cand, ckval);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG("GetChildConfigKey failed %d", result_code);
+      DELETE_IF_NOT_NULL(tmp_ckval);
       return result_code;
     }
-
-  result_code = vtnmgr->GetControllerDomainSpan(ckey, UPLL_DT_IMPORT, dmi);
-  if (result_code != UPLL_RC_SUCCESS) {
-    if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-      UPLL_LOG_DEBUG("GetControllerSpan  no instance/error (%d)", result_code);
-      DELETE_IF_NOT_NULL(ckey);
-      continue;
-    } 
-  }
-  ConfigKeyVal *tmp_ckey1 = ckey;
-  while (ckey != NULL) {
-    ConfigKeyVal *ctrlckv = NULL;
-    GET_USER_DATA_CTRLR_DOMAIN(ckey, ctrlr_dom);
-    GET_USER_DATA_FLAGS(ckval, flag);
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom.ctrlr,
-                    ctrlr_dom.domain);
-    
-    UPLL_LOG_DEBUG("flag (%d)", flag);
-
-    key_vtn_flowfilter_t *vtn_ff_key = reinterpret_cast<key_vtn_flowfilter_t*>
-        (ConfigKeyVal::Malloc(sizeof(key_vtn_flowfilter_t)));
-    memcpy(vtn_ff_key, reinterpret_cast<key_vtn_flowfilter_t*>(ckval->get_key()),
-           sizeof(key_vtn_flowfilter_t));
-    
-    ctrlckv = new ConfigKeyVal(UNC_KT_VTN_FLOWFILTER, IpctSt::kIpcInvalidStNum,
-                               vtn_ff_key, NULL);
-    SET_USER_DATA_CTRLR_DOMAIN(ctrlckv, ctrlr_dom);
-    SET_USER_DATA_FLAGS(ctrlckv, flag);
-
-    UPLL_LOG_DEBUG("flag (%d)", flag);
-
-    // Create/Update/Delete a record in CANDIDATE DB
-    result_code = UpdateConfigDB(ctrlckv, UPLL_DT_CANDIDATE, UNC_OP_CREATE, dmi, CTRLRTBL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Err while inserting in ctrlr table for candidateDb(%d)",
-                     result_code);
-      DELETE_IF_NOT_NULL(ckey);
-      DELETE_IF_NOT_NULL(ckval);
-      DELETE_IF_NOT_NULL(ctrlckv);
+    result_code = vtnmgr->GetInstanceCount(ckv_cand, NULL,
+                                           UPLL_DT_CANDIDATE,
+                                           &cand_instance_count,
+                                           dmi,
+                                           CTRLRTBL);
+    DELETE_IF_NOT_NULL(ckv_cand);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG("GetInstanceCount failed %d", result_code);
+      DELETE_IF_NOT_NULL(tmp_ckval);
       return result_code;
     }
-    DELETE_IF_NOT_NULL(ctrlckv);    
-    ckey = ckey->get_next_cfg_key_val();
-  }
-  DELETE_IF_NOT_NULL(tmp_ckey1);
-  ckval = ckval->get_next_cfg_key_val();
-}
+    UPLL_LOG_TRACE("Import count (%d) Candidate count (%d)",
+                   imp_instance_count, cand_instance_count);
+    if (imp_instance_count == cand_instance_count) {
+      /* If imported ctrlr's VTN not exists in Candidate,
+       * then check the existence
+         of imported ctrlr's VTN flow-filter
+         1)If the imported ctrlr VTN does not have flow-filter, then continue
+         with the next VTN in imported db
+         2)If the imported ctrlr VTN has flow-filter,
+         then merge this flow-filter
+         into candidate db
+         */
+      UPLL_LOG_DEBUG("VTN not exists in candidate(%d)", result_code);
+
+      // Check the imported ctrl VTN's flow-filter existence in Import db
+      key_vtn_t *vtn_ikey = reinterpret_cast<key_vtn_t *>(ckval->get_key());
+      key_vtn_flowfilter_t *vtn_ff_imkey = reinterpret_cast
+          <key_vtn_flowfilter_t*>(ConfigKeyVal::Malloc
+                                  (sizeof(key_vtn_flowfilter_t)));
+      uuu::upll_strncpy(vtn_ff_imkey->vtn_key.vtn_name, vtn_ikey->vtn_name,
+                        kMaxLenVtnName+1);
+      vtn_ff_imkey->input_direction = 0xFE;
+      ff_imkey = new ConfigKeyVal(UNC_KT_VTN_FLOWFILTER,
+                                  IpctSt::kIpcStKeyVtnFlowfilter,
+                                  vtn_ff_imkey, NULL);
+
+      upll_rc_t result_import = ReadConfigDB(ff_imkey, UPLL_DT_IMPORT,
+                                             UNC_OP_READ, dbop, dmi, MAINTBL);
+      if (result_import != UPLL_RC_SUCCESS &&
+          result_import != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+        DELETE_IF_NOT_NULL(ff_imkey);
+        DELETE_IF_NOT_NULL(tmp_ckval);
+        return result_code;
+      }
 
-  DELETE_IF_NOT_NULL(tmp_ckval1);
-  return UPLL_RC_SUCCESS;
-#if 0
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  ConfigKeyVal *ctrlr_key = NULL, *req = NULL, *nreq = NULL;
-  DalCursor *cfg1_cursor = NULL;
-  DalResultCode db_result;
+      if (result_import == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+        /* If the imported ctrlr VTN does not have flow-filter, then continue
+           with the next VTN in imported db */
+        UPLL_LOG_DEBUG("flow-filter not exists in import(%d)", result_code);
+        DELETE_IF_NOT_NULL(ff_imkey);
+        ckval = ckval->get_next_cfg_key_val();
+        continue;
+      } else if (result_import == UPLL_RC_SUCCESS) {
+        // If imported ctrlr's VTN has flow-filter, then merge this flow-filter
+        // into candidate db
+
+        /* Get the list of this VTN associated ctrlr and domain */
+        std::list<controller_domain_t> list_ctrlr_dom;
+        upll_rc_t vtn_ctrlr_span_rt_code = GetVtnControllerSpan(ff_imkey,
+                                                                UPLL_DT_IMPORT,
+                                                                dmi,
+                                                                list_ctrlr_dom);
+        if (vtn_ctrlr_span_rt_code != UPLL_RC_SUCCESS) {
+          DELETE_IF_NOT_NULL(ff_imkey);
+          if (vtn_ctrlr_span_rt_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+            UPLL_LOG_DEBUG("GetVtnControllerSpan  error code (%d)",
+                           vtn_ctrlr_span_rt_code);
+            DELETE_IF_NOT_NULL(tmp_ckval);
+            return result_code;
+          }
+          /* If ctrl and domain name not exist in VTN ctrl tbl, then
+             continue with the next VTN in import db */
+          ckval = ckval->get_next_cfg_key_val();
+          continue;
+        }
 
-  //Get the created records on import configuration which are not available
-  // at running configuration of UNC
-  result_code = DiffConfigDB(UPLL_DT_IMPORT, UPLL_DT_RUNNING, UNC_OP_CREATE, req,
-                                 nreq, &cfg1_cursor, dmi, MAINTBL);
-  while (result_code == UPLL_RC_SUCCESS) {
-    db_result = dmi->GetNextRecord(cfg1_cursor);
-    result_code = DalToUpllResCode(db_result);
-    if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-        result_code = UPLL_RC_SUCCESS;
-        break;
-    }
-  
-    // Update the record in the main table
-    result_code = UpdateConfigDB(req, UPLL_DT_CANDIDATE, UNC_OP_CREATE,
-                                  dmi, MAINTBL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Unable to update the main tbl,DB err %d", result_code);
-      if (cfg1_cursor) {
-      dmi->CloseCursor(cfg1_cursor, true);
-      cfg1_cursor = NULL;
+        ConfigKeyVal *tmp_ff_imkey = ff_imkey;
+        while (ff_imkey != NULL) {
+          // Create the flow-filter in main tbl
+          result_code = UpdateConfigDB(ff_imkey,
+                                       UPLL_DT_CANDIDATE,
+                                       UNC_OP_CREATE,
+                                       dmi,
+                                       MAINTBL);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("create in CandidateDB failed (%d) ", result_code);
+            DELETE_IF_NOT_NULL(tmp_ff_imkey);
+            DELETE_IF_NOT_NULL(tmp_ckval);
+            return result_code;
+          }
+
+          std::list<controller_domain_t>::iterator it= list_ctrlr_dom.begin();
+          while (it != list_ctrlr_dom.end()) {
+            // Create the entry in ctrlr table with as per the ctrlr and domain
+            ConfigKeyVal *ctrlckv = NULL;
+            GET_USER_DATA_FLAGS(ff_imkey, flag);
+            UPLL_LOG_DEBUG("flag (%d)", flag);
+
+            key_vtn_flowfilter_t *vtn_ff_key = reinterpret_cast
+                <key_vtn_flowfilter_t*>(ConfigKeyVal::Malloc
+                                        (sizeof(key_vtn_flowfilter_t)));
+            memcpy(vtn_ff_key, reinterpret_cast<key_vtn_flowfilter_t*>
+                   (ff_imkey->get_key()), sizeof(key_vtn_flowfilter_t));
+
+            ctrlckv = new ConfigKeyVal(UNC_KT_VTN_FLOWFILTER,
+                                       IpctSt::kIpcInvalidStNum,
+                                       vtn_ff_key,
+                                       NULL);
+            SET_USER_DATA_CTRLR_DOMAIN(ctrlckv, *it);
+            SET_USER_DATA_FLAGS(ctrlckv, flag);
+            UPLL_LOG_DEBUG("flag (%d)", flag);
+
+            // Create a record in ctrlr tbl in candidate db
+            result_code = UpdateConfigDB(ctrlckv, UPLL_DT_CANDIDATE,
+                                         UNC_OP_CREATE, dmi, CTRLRTBL);
+            if (result_code != UPLL_RC_SUCCESS) {
+              UPLL_LOG_DEBUG("Err while inserting in ctrlr table (%d)",
+                             result_code);
+              DELETE_IF_NOT_NULL(ctrlckv);
+              DELETE_IF_NOT_NULL(tmp_ff_imkey);
+              DELETE_IF_NOT_NULL(tmp_ckval);
+              return result_code;
+            }
+            DELETE_IF_NOT_NULL(ctrlckv);
+            ++it;
+          }
+          ff_imkey = ff_imkey->get_next_cfg_key_val();
+        }
+        FREE_LIST_CTRLR(list_ctrlr_dom);
+        DELETE_IF_NOT_NULL(ff_imkey);
+      }
+    } else if (imp_instance_count < cand_instance_count) {
+      // If vtn exists in both db, then check the flow-filter existence
+      // from import and candidate database
+      UPLL_LOG_DEBUG("VTN exists in candidate(%d)", result_code);
+
+      // Check the flow-filter existence in Import db
+      key_vtn_t *vtn_ikey = reinterpret_cast<key_vtn_t *>(ckval->get_key());
+      key_vtn_flowfilter_t *vtn_ff_imkey = reinterpret_cast
+          <key_vtn_flowfilter_t*>(ConfigKeyVal::Malloc
+                                  (sizeof(key_vtn_flowfilter_t)));
+      uuu::upll_strncpy(vtn_ff_imkey->vtn_key.vtn_name, vtn_ikey->vtn_name,
+                        kMaxLenVtnName+1);
+      vtn_ff_imkey->input_direction = 0xFE;
+      ff_imkey = new ConfigKeyVal(UNC_KT_VTN_FLOWFILTER,
+                                  IpctSt::kIpcStKeyVtnFlowfilter,
+                                  vtn_ff_imkey, NULL);
+
+      upll_rc_t result_import = ReadConfigDB(ff_imkey, UPLL_DT_IMPORT,
+                                             UNC_OP_READ, dbop, dmi, MAINTBL);
+      if (result_import != UPLL_RC_SUCCESS &&
+          result_import != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+        DELETE_IF_NOT_NULL(ff_imkey);
+        DELETE_IF_NOT_NULL(tmp_ckval);
+        return result_code;
       }
-      delete req;
-      req = NULL;
-      return result_code;
-    }
-    //Update Controller Table
-    DbSubOp dbop = {kOpReadMultiple, kOpMatchCtrlr,
-      kOpInOutCtrlr|kOpInOutDomain};
-    result_code = DupConfigKeyVal(ctrlr_key, req, MAINTBL);
-    if (result_code != UPLL_RC_SUCCESS) {
-       UPLL_LOG_DEBUG("DupConfigKeyVal is failed result_code = %d",
-                      result_code);
-       return result_code;
-    }
-    SET_USER_DATA_CTRLR(ctrlr_key, ctrlr_name);
 
-    result_code = ReadConfigDB(ctrlr_key, UPLL_DT_IMPORT, UNC_OP_READ,
-                               dbop, dmi, CTRLRTBL);
-    if ((result_code != UPLL_RC_SUCCESS) &&
-        (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE)) {
-      UPLL_LOG_DEBUG("Error in ReadConfigDb (%d)", result_code);
-      return result_code;
-    }  
-    // create a record in CANDIDATE DB
-    result_code = UpdateConfigDB(ctrlr_key, UPLL_DT_CANDIDATE, UNC_OP_CREATE,
-                                  dmi, CTRLRTBL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Unable to update ctrl table,  DB err %d", result_code);
-      if (cfg1_cursor) {
-      dmi->CloseCursor(cfg1_cursor, true);
-      cfg1_cursor = NULL;
+      // Check the flow-filter existence in candidate db
+      key_vtn_flowfilter_t *vtn_ff_cdkey = reinterpret_cast
+          <key_vtn_flowfilter_t*>
+          (ConfigKeyVal::Malloc(sizeof(key_vtn_flowfilter_t)));
+      uuu::upll_strncpy(vtn_ff_cdkey->vtn_key.vtn_name, vtn_ikey->vtn_name,
+                        kMaxLenVtnName+1);
+      vtn_ff_cdkey->input_direction = 0xFE;
+      ff_cdkey = new ConfigKeyVal(UNC_KT_VTN_FLOWFILTER,
+                                  IpctSt::kIpcStKeyVtnFlowfilter,
+                                  vtn_ff_cdkey, NULL);
+
+      upll_rc_t result_cand = ReadConfigDB(ff_cdkey, UPLL_DT_CANDIDATE,
+                                           UNC_OP_READ, dbop, dmi, MAINTBL);
+      if (result_cand != UPLL_RC_SUCCESS &&
+          result_cand != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+        DELETE_IF_NOT_NULL(ff_imkey);
+        DELETE_IF_NOT_NULL(ff_cdkey);
+        DELETE_IF_NOT_NULL(tmp_ckval);
+        return result_code;
+      }
+
+      if ((result_import == UPLL_RC_ERR_NO_SUCH_INSTANCE ||
+           result_import == UPLL_RC_SUCCESS) &&
+          result_cand == UPLL_RC_SUCCESS) {
+        /* If the imported ctrr's vtn does not have the flow-filter and if the UNC
+         * has flow-filter, then apply this flow-filter(in/out) to imported
+         * ctrlr's VTN */
+        /* If the imported ctrr's vtn hsa the flow-filter and if the UNC
+         * has flow-filter, then skip the imported ctrl vtn's flow-filter and
+         * apply the UNC flow-filter(in/out) to imported ctrlr's VTN */
+
+        /* Get the list of this VTN associated ctrlr and domain */
+        std::list<controller_domain_t> list_ctrlr_dom;
+        upll_rc_t vtn_ctrlr_span_rt_code = GetVtnControllerSpan(ff_cdkey,
+                                                                UPLL_DT_IMPORT,
+                                                                dmi,
+                                                                list_ctrlr_dom);
+        if (vtn_ctrlr_span_rt_code != UPLL_RC_SUCCESS) {
+          DELETE_IF_NOT_NULL(ff_imkey);
+          DELETE_IF_NOT_NULL(ff_cdkey);
+          if (vtn_ctrlr_span_rt_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+            UPLL_LOG_DEBUG("GetVtnControllerSpan  error code (%d)",
+                           vtn_ctrlr_span_rt_code);
+            DELETE_IF_NOT_NULL(tmp_ckval);
+            return result_code;
+          }
+          /* If ctrl and domain name not exist in VTN ctrl tbl, then
+             continue with the next VTN in import db */
+          ckval = ckval->get_next_cfg_key_val();
+          continue;
+        }
+
+        ConfigKeyVal *tmp_ff_cdkey = ff_cdkey;
+        while (ff_cdkey != NULL) {
+          std::list<controller_domain_t>::iterator it= list_ctrlr_dom.begin();
+          while (it != list_ctrlr_dom.end()) {
+            // Create the entry in ctrlr table with as per the ctrlr and domain
+            ConfigKeyVal *ctrlckv = NULL;
+            GET_USER_DATA_FLAGS(ff_cdkey, flag);
+            UPLL_LOG_DEBUG("flag (%d)", flag);
+
+            key_vtn_flowfilter_t *vtn_ff_key = reinterpret_cast
+                <key_vtn_flowfilter_t*>
+                (ConfigKeyVal::Malloc(sizeof(key_vtn_flowfilter_t)));
+            memcpy(vtn_ff_key, reinterpret_cast<key_vtn_flowfilter_t*>
+                   (ff_cdkey->get_key()), sizeof(key_vtn_flowfilter_t));
+
+            ctrlckv = new ConfigKeyVal(UNC_KT_VTN_FLOWFILTER,
+                                       IpctSt::kIpcInvalidStNum,
+                                       vtn_ff_key,
+                                       NULL);
+            SET_USER_DATA_CTRLR_DOMAIN(ctrlckv, *it);
+            SET_USER_DATA_FLAGS(ctrlckv, flag);
+            UPLL_LOG_DEBUG("flag (%d)", flag);
+
+            // Create a record in CANDIDATE DB
+            result_code = UpdateConfigDB(ctrlckv, UPLL_DT_CANDIDATE,
+                                         UNC_OP_CREATE, dmi, CTRLRTBL);
+            if (result_code != UPLL_RC_SUCCESS) {
+              UPLL_LOG_DEBUG("Err while inserting in ctrlr table (%d)",
+                             result_code);
+              DELETE_IF_NOT_NULL(ctrlckv);
+              DELETE_IF_NOT_NULL(ff_imkey);
+              DELETE_IF_NOT_NULL(tmp_ff_cdkey);
+              DELETE_IF_NOT_NULL(tmp_ckval);
+              return result_code;
+            }
+            DELETE_IF_NOT_NULL(ctrlckv);
+            ++it;
+          }
+          ff_cdkey = ff_cdkey->get_next_cfg_key_val();
+        }
+        FREE_LIST_CTRLR(list_ctrlr_dom);
+        DELETE_IF_NOT_NULL(tmp_ff_cdkey);
+      } else if (result_import == UPLL_RC_SUCCESS &&
+                 result_cand == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+        /* If candidate does not have flow-filter, then skip the imported
+           ctrlr's flow-filter */
+        UPLL_LOG_DEBUG("flow-filter not exists in candidate");
+        DELETE_IF_NOT_NULL(ff_imkey);
+        DELETE_IF_NOT_NULL(ff_cdkey);
+      } else if (result_import == UPLL_RC_ERR_NO_SUCH_INSTANCE &&
+                 result_cand == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+        UPLL_LOG_DEBUG("Import and candidate does not have flow-filter");
+        DELETE_IF_NOT_NULL(ff_imkey);
+        DELETE_IF_NOT_NULL(ff_cdkey);
       }
-      delete req;
-      req = NULL;
-      return result_code;
     }
-    delete ctrlr_key;
-    ctrlr_key = NULL;
-  }
-  if (cfg1_cursor) {
-      dmi->CloseCursor(cfg1_cursor, true);
-      cfg1_cursor = NULL;
-  }
-  if (req) {
-    delete req;
-    req = NULL;
+    ckval = ckval->get_next_cfg_key_val();
   }
-  return result_code;
-#endif
+  DELETE_IF_NOT_NULL(tmp_ckval);
+  return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t VtnFlowFilterMoMgr::UpdateMo(IpcReqRespHeader *req,
                                        ConfigKeyVal *ikey, DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
-  UPLL_LOG_DEBUG(" UpdateMo  Success ");
+  UPLL_LOG_DEBUG(" Update operation not allowed ");
   return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT;
 }
 
 upll_rc_t VtnFlowFilterMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
                                                 ConfigKeyVal *ikey,
-                                                DalDmlIntf *dmi) {
+                                                DalDmlIntf *dmi,
+                                                bool restore_flag) {
   UPLL_FUNC_TRACE;
   if (ikey == NULL && req == NULL) {
     UPLL_LOG_DEBUG("Insufficient parameters");
@@ -433,11 +575,13 @@ upll_rc_t VtnFlowFilterMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
   }
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   upll_rc_t vtn_ctrlr_span_rt_code = UPLL_RC_SUCCESS;
-  // validate syntax and semantics
-  result_code = ValidateMessage(req, ikey);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("ValidateMessage failed: err code(%d)", result_code);
-    return result_code;
+  if (!restore_flag) {
+    // validate syntax and semantics
+    result_code = ValidateMessage(req, ikey);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("ValidateMessage failed: err code(%d)", result_code);
+      return result_code;
+    }
   }
 
   result_code = ValidateAttribute(ikey, dmi, req);
@@ -446,46 +590,57 @@ upll_rc_t VtnFlowFilterMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
     return result_code;
   }
 
-  // Check if VTN Flowfilter already exists in CANDIDATE DB
-  result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_READ, dmi);
-  if ((result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) &&
-      (result_code != UPLL_RC_ERR_INSTANCE_EXISTS)) {
-    UPLL_LOG_DEBUG(" UpdateConfigDB() error (%d)", result_code);
-    return result_code;
-  }
-  if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-    UPLL_LOG_DEBUG("Record already exists in Candidate DB: err code(%d)",
-                   result_code);
-    return result_code;
-  }
-  // Check if VTN flowfilter exists in RUNNING DB and move it to CANDIDATE DB
-  if (UPLL_DT_CANDIDATE == req->datatype) {
-  result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ,
-                               dmi, MAINTBL);
-  if ((result_code != UPLL_RC_ERR_INSTANCE_EXISTS) &&
-      (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE)) {
-    UPLL_LOG_DEBUG(" Is Exist check operation failed: err code(%d)",
-                   result_code);
-    return result_code;
-  }
-  if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
-    result_code = RestoreChildren(ikey, req->datatype, UPLL_DT_RUNNING, dmi);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Failed to Restore the configuration: err code(%d)",
-                     result_code);
-      return UPLL_RC_ERR_GENERIC;
+  if (!restore_flag) {
+    if (UPLL_DT_CANDIDATE == req->datatype) {
+      result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dmi,
+                                   MAINTBL);
+      if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
+        UPLL_LOG_DEBUG("Key instance exist");
+        if ((ikey)->get_cfg_val()) {
+          UPLL_LOG_DEBUG("Read Key with Value struct");
+          DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
+            kOpInOutFlag | kOpInOutCtrlr | kOpInOutDomain };
+          result_code = ReadConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dbop,
+                                     dmi, MAINTBL);
+          if (UPLL_RC_SUCCESS != result_code &&
+              UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+            UPLL_LOG_DEBUG("ReadConfigDB Failed %d",  result_code);
+          }
+          if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code)  {
+            return UPLL_RC_ERR_CFG_SEMANTIC;
+          }
+        } else  {
+          result_code = UPLL_RC_SUCCESS;
+        }
+        if (UPLL_RC_SUCCESS == result_code) {
+          result_code = RestoreChildren(ikey,
+                                        req->datatype,
+                                        UPLL_DT_RUNNING,
+                                        dmi,
+                                        req);
+          UPLL_LOG_DEBUG("Restore Children returns %d", result_code);
+          return result_code;
+        }
+      } else if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+        UPLL_LOG_DEBUG("UpdateConfigDB Failed %d", result_code);
+        return result_code;
+      }
     }
-    return result_code;
-  }
+  } else {
+    result_code = UPLL_RC_ERR_NO_SUCH_INSTANCE;
   }
 
   std::list<controller_domain_t> list_ctrlr_dom;
-  vtn_ctrlr_span_rt_code = GetVtnControllerSpan(ikey, req->datatype, dmi, list_ctrlr_dom);
+  vtn_ctrlr_span_rt_code = GetVtnControllerSpan(ikey,
+                                                req->datatype,
+                                                dmi,
+                                                list_ctrlr_dom);
   if ((vtn_ctrlr_span_rt_code != UPLL_RC_SUCCESS) &&
       (vtn_ctrlr_span_rt_code != UPLL_RC_ERR_NO_SUCH_INSTANCE)) {
     UPLL_LOG_DEBUG(" GetVtnControllerSpan  error code (%d)",
                    vtn_ctrlr_span_rt_code);
-    return result_code;
+    FREE_LIST_CTRLR(list_ctrlr_dom);
+    return vtn_ctrlr_span_rt_code;
   }
 
   // create a record in CANDIDATE DB for Main Table
@@ -494,6 +649,7 @@ upll_rc_t VtnFlowFilterMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("create in CandidateDB failed: err code(%d) ",
                    result_code);
+    FREE_LIST_CTRLR(list_ctrlr_dom);
     return result_code;
   }
   // create a record in CANDIDATE DB for controller Table
@@ -505,22 +661,18 @@ upll_rc_t VtnFlowFilterMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("create in ctrlr tbl failed: error code (%d)",
                      result_code);
-      #if 0
+#if 0
       result_code = UpdateConfigDB(ikey, req->datatype, UNC_OP_DELETE,
                                    dmi, MAINTBL);
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("delete in CandidateDB failed: err code(%d) ",
                        result_code);
       }
-      #endif
+#endif
     }
   }
+  FREE_LIST_CTRLR(list_ctrlr_dom);
 
-  for (std::list<controller_domain_t>::iterator it= list_ctrlr_dom.begin();
-       it != list_ctrlr_dom.end(); ++it) {
-    free(it->ctrlr);
-    free(it->domain);
-  }
   return result_code;
 }
 
@@ -537,29 +689,8 @@ upll_rc_t VtnFlowFilterMoMgr::UpdateControllerTable(
   std::list<controller_domain_t>::iterator it= list_ctrlr_dom.begin();
   while (it != list_ctrlr_dom.end()) {
     if ((op == UNC_OP_CREATE) || (op == UNC_OP_UPDATE)) {
-      if (op == UNC_OP_CREATE) {
-        //capability check
-        ConfigKeyVal *temp_key = NULL;
-        result_code = GetChildConfigKey(temp_key, NULL);
-        if (UPLL_RC_SUCCESS != result_code) {
-          UPLL_LOG_DEBUG("GetChildConfigKey failed(%d)",result_code);
-          return result_code;
-        }
-
-        result_code = GetInstanceCount(temp_key, reinterpret_cast<char*>(it->ctrlr),
-                                       UPLL_DT_CANDIDATE,
-                                       &cur_instance_count,
-                                       dmi, CTRLRTBL);
-
-        if (UPLL_RC_SUCCESS != result_code) {
-          DELETE_IF_NOT_NULL(temp_key);
-          UPLL_LOG_DEBUG("GetInstanceCount failed(%d)",result_code);
-          return result_code;
-        }
-        DELETE_IF_NOT_NULL(temp_key);
-      } 
       IpcReqRespHeader *req_header = reinterpret_cast<IpcReqRespHeader*>
-               (ConfigKeyVal::Malloc(sizeof(IpcReqRespHeader)));
+          (ConfigKeyVal::Malloc(sizeof(IpcReqRespHeader)));
 
       req_header->operation = op;
       req_header->datatype = dt_type;
@@ -572,21 +703,22 @@ upll_rc_t VtnFlowFilterMoMgr::UpdateControllerTable(
 
       if (result_code != UPLL_RC_SUCCESS) {
         if ((!ctrlr_mgr->GetCtrlrType(reinterpret_cast<char *>(it->ctrlr),
-             dt_type, &ctrlrtype)) || (ctrlrtype != UNC_CT_PFC)) {
-        
-           UPLL_LOG_DEBUG("Controller type is  %d", ctrlrtype);
-           result_code = UPLL_RC_SUCCESS;
-           ++it;
-           continue;
+                                      dt_type, &ctrlrtype)) ||
+            (ctrlrtype != UNC_CT_PFC)) {
+          UPLL_LOG_DEBUG("Controller type is  %d", ctrlrtype);
+          result_code = UPLL_RC_SUCCESS;
+          ++it;
+          continue;
         }
         UPLL_LOG_DEBUG("ValidateCapability Failed: result_code=%d",
-            result_code);
+                       result_code);
         return result_code;
       }
     }
     key_vtn_flowfilter_t *vtn_ff_key = reinterpret_cast<key_vtn_flowfilter_t*>
         (ConfigKeyVal::Malloc(sizeof(key_vtn_flowfilter_t)));
-    memcpy(vtn_ff_key, reinterpret_cast<key_vtn_flowfilter_t*>(ikey->get_key()),
+    memcpy(vtn_ff_key, reinterpret_cast<key_vtn_flowfilter_t*>
+           (ikey->get_key()),
            sizeof(key_vtn_flowfilter_t));
     ctrlckv = new ConfigKeyVal(UNC_KT_VTN_FLOWFILTER, IpctSt::kIpcInvalidStNum,
                                vtn_ff_key, NULL);
@@ -596,7 +728,7 @@ upll_rc_t VtnFlowFilterMoMgr::UpdateControllerTable(
       DbSubOp dbop1 = { kOpReadExist, kOpMatchCtrlr |
         kOpMatchDomain, kOpInOutNone };
       result_code = UpdateConfigDB(ctrlckv, dt_type, UNC_OP_READ, dmi, &dbop1,
-          CTRLRTBL);
+                                   CTRLRTBL);
       if (result_code != UPLL_RC_ERR_INSTANCE_EXISTS &&
           result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
         DELETE_IF_NOT_NULL(ctrlckv);
@@ -622,12 +754,13 @@ upll_rc_t VtnFlowFilterMoMgr::UpdateControllerTable(
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t VtnFlowFilterMoMgr::UpdateControllerTableForVtn(uint8_t* vtn_name,
-                                                  controller_domain *ctrlr_dom,
-                                                  unc_keytype_operation_t op,
-                                                  upll_keytype_datatype_t dt_type,
-                                                  DalDmlIntf *dmi,
-                                                  uint8_t flag) {
+upll_rc_t VtnFlowFilterMoMgr::UpdateControllerTableForVtn(
+    uint8_t* vtn_name,
+    controller_domain *ctrlr_dom,
+    unc_keytype_operation_t op,
+    upll_keytype_datatype_t dt_type,
+    DalDmlIntf *dmi,
+    uint8_t flag) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *ctrlckv = NULL, *ikey = NULL;
@@ -643,7 +776,7 @@ upll_rc_t VtnFlowFilterMoMgr::UpdateControllerTableForVtn(uint8_t* vtn_name,
                  ctrlr_dom->domain);
 
   key_vtn_flowfilter *vtn_ff_key = reinterpret_cast<key_vtn_flowfilter_t*>
-                                   (ikey->get_key());
+      (ikey->get_key());
   uuu::upll_strncpy(vtn_ff_key->vtn_key.vtn_name,
                     vtn_name, (kMaxLenVtnName+1));
   // set this value so that the direction
@@ -683,7 +816,7 @@ upll_rc_t VtnFlowFilterMoMgr::UpdateControllerTableForVtn(uint8_t* vtn_name,
       SET_USER_DATA_FLAGS(flag_ikey, flag);
       DbSubOp dbop1 = {kOpNotRead, kOpMatchNone, kOpInOutCs | kOpInOutFlag};
       result_code = UpdateConfigDB(flag_ikey, dt_type, UNC_OP_UPDATE,
-          dmi, &dbop1, MAINTBL);
+                                   dmi, &dbop1, MAINTBL);
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("UpdateConfigDB failed %d", result_code);
         DELETE_IF_NOT_NULL(ikey);
@@ -702,69 +835,42 @@ upll_rc_t VtnFlowFilterMoMgr::UpdateControllerTableForVtn(uint8_t* vtn_name,
       DELETE_IF_NOT_NULL(ikey);
       return UPLL_RC_ERR_GENERIC;
     }
-  
-    if ((op == UNC_OP_CREATE) || (op == UNC_OP_UPDATE)) {
-      if (op == UNC_OP_CREATE) {
-        //capability check
-        ConfigKeyVal *temp_key = NULL;
-        result_code = GetChildConfigKey(temp_key, NULL);
-        if (UPLL_RC_SUCCESS != result_code) {
-          DELETE_IF_NOT_NULL(ikey);
-          DELETE_IF_NOT_NULL(ctrlckv);
-          UPLL_LOG_DEBUG("GetChildConfigKey failed(%d)",result_code);
-          return result_code;
-        }
-
-        key_vtn_flowfilter *vtn_ff_capakey = reinterpret_cast<key_vtn_flowfilter_t*>
-                                   (temp_key->get_key());
-        vtn_ff_capakey->input_direction = 0xFE;
-
-        result_code = GetInstanceCount(temp_key, reinterpret_cast<char*>(ctrlr_dom->ctrlr),
-                                       UPLL_DT_CANDIDATE,
-                                       &cur_instance_count,
-                                       dmi, CTRLRTBL);
-
-        DELETE_IF_NOT_NULL(temp_key);
-
-        if (UPLL_RC_SUCCESS != result_code) {
-          DELETE_IF_NOT_NULL(ikey);
-          DELETE_IF_NOT_NULL(ctrlckv);
-          UPLL_LOG_DEBUG("GetInstanceCount failed(%d)",result_code);
-          return result_code;
-        }
-      }
 
+    if ((op == UNC_OP_CREATE) || (op == UNC_OP_UPDATE)) {
       IpcReqRespHeader *req_header = reinterpret_cast<IpcReqRespHeader*>
-               (ConfigKeyVal::Malloc(sizeof(IpcReqRespHeader)));
-       req_header->operation = op;
+          (ConfigKeyVal::Malloc(sizeof(IpcReqRespHeader)));
+      req_header->operation = op;
       req_header->datatype = dt_type;
 
       // Validate whether the attributes supported by controller or not
       result_code = ValidateCapability(
-                        req_header, temp_ikey,
-                        reinterpret_cast<char*>(ctrlr_dom->ctrlr));
+          req_header, temp_ikey,
+          reinterpret_cast<char*>(ctrlr_dom->ctrlr));
       free(req_header);
 
       if (result_code != UPLL_RC_SUCCESS) {
         // VTN Flowfilter is not supported for other than PFC Controller
         // so skip adding entry for such sontroller in ctrlr table
-        if ((!ctrlr_mgr->GetCtrlrType(reinterpret_cast<char *>(ctrlr_dom->ctrlr),
-              dt_type, &ctrlrtype)) || (ctrlrtype != UNC_CT_PFC)) {
-           result_code = UPLL_RC_SUCCESS; 
-           UPLL_LOG_DEBUG("Controller type is  %d", ctrlrtype);
-           temp_ikey = temp_ikey->get_next_cfg_key_val();
-           DELETE_IF_NOT_NULL(ctrlckv);
-           continue;
+        if ((!ctrlr_mgr->GetCtrlrType(reinterpret_cast<char *>
+                                      (ctrlr_dom->ctrlr),
+                                      dt_type, &ctrlrtype)) ||
+            (ctrlrtype != UNC_CT_PFC)) {
+          result_code = UPLL_RC_SUCCESS;
+          UPLL_LOG_DEBUG("Controller type is  %d", ctrlrtype);
+          temp_ikey = temp_ikey->get_next_cfg_key_val();
+          DELETE_IF_NOT_NULL(ctrlckv);
+          continue;
         }
         UPLL_LOG_DEBUG("ValidateCapability Failed: result_code=%d",
-          result_code);
+                       result_code);
         DELETE_IF_NOT_NULL(ikey);
         DELETE_IF_NOT_NULL(ctrlckv);
         return result_code;
-     }
+      }
     }
     if (UPLL_DT_AUDIT == dt_type) {
-      val_vtn_flowfilter_ctrlr_t *val = reinterpret_cast<val_vtn_flowfilter_ctrlr_t *>
+      val_vtn_flowfilter_ctrlr_t *val =
+          reinterpret_cast<val_vtn_flowfilter_ctrlr_t *>
           (ConfigKeyVal::Malloc(sizeof(val_vtn_flowfilter_ctrlr_t)));
       val->cs_row_status = UNC_CS_APPLIED;
       ctrlckv->AppendCfgVal(IpctSt::kIpcInvalidStNum, val);
@@ -772,11 +878,11 @@ upll_rc_t VtnFlowFilterMoMgr::UpdateControllerTableForVtn(uint8_t* vtn_name,
     // Create/Update/Delete a record in CANDIDATE DB
     result_code = UpdateConfigDB(ctrlckv, dt_type, op, dmi, CTRLRTBL);
     if (UPLL_RC_SUCCESS != result_code) {
-        UPLL_LOG_DEBUG("Err while updating in ctrlr table for candidateDb(%d)",
-                       result_code);
-       DELETE_IF_NOT_NULL(ikey);
-       DELETE_IF_NOT_NULL(ctrlckv);
-       return result_code;
+      UPLL_LOG_DEBUG("Err while updating in ctrlr table for candidateDb(%d)",
+                     result_code);
+      DELETE_IF_NOT_NULL(ikey);
+      DELETE_IF_NOT_NULL(ctrlckv);
+      return result_code;
     } else {
       DELETE_IF_NOT_NULL(ctrlckv);
     }
@@ -788,8 +894,8 @@ upll_rc_t VtnFlowFilterMoMgr::UpdateControllerTableForVtn(uint8_t* vtn_name,
 }
 
 upll_rc_t VtnFlowFilterMoMgr::GetControllerKeyval(ConfigKeyVal *&ctrlckv,
-                                               ConfigKeyVal *&ikey,
-                                               controller_domain *ctrlrdom) {
+                                                  ConfigKeyVal *&ikey,
+                                                  controller_domain *ctrlrdom) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
   result_code = GetChildConfigKey(ctrlckv, ikey);
@@ -803,8 +909,8 @@ upll_rc_t VtnFlowFilterMoMgr::GetControllerKeyval(ConfigKeyVal *&ctrlckv,
 }
 
 upll_rc_t VtnFlowFilterMoMgr::IsReferenced(ConfigKeyVal *ikey,
-                                            upll_keytype_datatype_t dt_type,
-                                            DalDmlIntf *dmi) {
+                                           upll_keytype_datatype_t dt_type,
+                                           DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   // no reference check is required for this function
   return UPLL_RC_SUCCESS;
@@ -813,51 +919,8 @@ upll_rc_t VtnFlowFilterMoMgr::IsReferenced(ConfigKeyVal *ikey,
 upll_rc_t VtnFlowFilterMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
                                                 DalDmlIntf *dmi,
                                                 IpcReqRespHeader *req) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  ConfigKeyVal *okey = NULL;
-  if (!ikey || !ikey->get_key()) {
-    UPLL_LOG_DEBUG("input key is null");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  key_vtn_flowfilter_t *key_vtn_ff =
-      reinterpret_cast<key_vtn_flowfilter_t *>(ikey->get_key());
-  MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>
-      (const_cast<MoManager *>(GetMoManager(UNC_KT_VTN)));
-
-  result_code = mgr->GetChildConfigKey(okey, NULL);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Key not supported result - %d", result_code);
-    return result_code;
-  }
-
-  key_vtn_t *vtn_key = reinterpret_cast<key_vtn_t *>(okey->get_key());
-  uuu::upll_strncpy(vtn_key->vtn_name, key_vtn_ff->vtn_key.vtn_name,
-                    (kMaxLenVtnName+1));
-
-  /* Checks the given vtn exists or not */
-  result_code = mgr->UpdateConfigDB(okey, req->datatype, UNC_OP_READ,
-                                    dmi, MAINTBL);
-  if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
-    UPLL_LOG_DEBUG(" Parent VTN key does not exists");
-    delete okey;
-    return UPLL_RC_ERR_PARENT_DOES_NOT_EXIST;
-  } else {
-    result_code = UPLL_RC_SUCCESS;
-  }
-
-  delete okey;
-
-  if (UNC_OP_CREATE == req->operation) {
-    result_code = SetRenameFlag(ikey, dmi, req);
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("SetRenameFlag failed %d", result_code);
-      return result_code;
-    }
-  }
-
-  UPLL_LOG_DEBUG("ValidateAttribute Successfull.");
-  return result_code;
+  // No operation
+  return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t VtnFlowFilterMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
@@ -872,8 +935,8 @@ upll_rc_t VtnFlowFilterMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
     return result_code;
   }
   MoMgrImpl *mgr =
-    reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-            UNC_KT_VTN)));
+      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                  UNC_KT_VTN)));
   if (!mgr) {
     UPLL_LOG_DEBUG("mgr is NULL");
     DELETE_IF_NOT_NULL(pkey);
@@ -984,38 +1047,38 @@ upll_rc_t VtnFlowFilterMoMgr::GetRenamedControllerKey(
 
   UPLL_LOG_TRACE("Start... Input ConfigKeyVal %s", ikey->ToStrAll().c_str());
   MoMgrImpl *mgr = static_cast<MoMgrImpl*>((const_cast<MoManager*>
-        (GetMoManager(UNC_KT_VTN))));
+                                            (GetMoManager(UNC_KT_VTN))));
   result_code = mgr->GetChildConfigKey(okey, NULL);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("GetChildConfigKey fail");
     return result_code;
   }
   if (ctrlr_dom) {
-      SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
+    SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
   } else {
     UPLL_LOG_DEBUG("ctrlr_dom null");
     DELETE_IF_NOT_NULL(okey);
     return result_code;
   }
+
   UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                  ctrlr_dom->domain);
+                 ctrlr_dom->domain);
 
-   // Copy the input VTN Name into the Okey and send it for rename check IN db
-    uuu::upll_strncpy(
-                      reinterpret_cast<key_vtn *>(okey->get_key())->vtn_name,
-                      reinterpret_cast<key_vtn_flowfilter_t *>
-                      (ikey->get_key())->vtn_key.vtn_name,
-                      (kMaxLenVtnName + 1));
-    UPLL_LOG_DEBUG("vtn name (%s) (%s)",
-                      reinterpret_cast<key_vtn *>(okey->get_key())->vtn_name,
-                      reinterpret_cast<key_vtn_flowfilter_t *>
-                      (ikey->get_key())->vtn_key.vtn_name);
-    DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr |
+  // Copy the input VTN Name into the Okey and send it for rename check IN db
+  uuu::upll_strncpy(
+      reinterpret_cast<key_vtn *>(okey->get_key())->vtn_name,
+      reinterpret_cast<key_vtn_flowfilter_t *>
+      (ikey->get_key())->vtn_key.vtn_name,
+      (kMaxLenVtnName + 1));
+  UPLL_LOG_DEBUG("vtn name (%s) (%s)",
+                 reinterpret_cast<key_vtn *>(okey->get_key())->vtn_name,
+                 reinterpret_cast<key_vtn_flowfilter_t *>
+                 (ikey->get_key())->vtn_key.vtn_name);
+  DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr |
     kOpMatchDomain, kOpInOutFlag };
   /* ctrlr_name */
   result_code = mgr->ReadConfigDB(okey, dt_type, UNC_OP_READ,
-      dbop, dmi, RENAMETBL);
+                                  dbop, dmi, RENAMETBL);
   if (result_code != UPLL_RC_SUCCESS &&
       UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
     UPLL_LOG_DEBUG("ReadConfigDB null");
@@ -1025,17 +1088,17 @@ upll_rc_t VtnFlowFilterMoMgr::GetRenamedControllerKey(
   // NULL Checks Missing
   if (result_code == UPLL_RC_SUCCESS) {
     val_rename_vtn *rename_val = reinterpret_cast <val_rename_vtn *>
-                     (GetVal(okey));
+        (GetVal(okey));
     if (!rename_val) {
       UPLL_LOG_DEBUG("Vtn Name is not Valid.");
       DELETE_IF_NOT_NULL(okey);
       return UPLL_RC_ERR_GENERIC;
     }
     uuu::upll_strncpy(
-                      reinterpret_cast<key_vtn_flowfilter_t*>
-                      (ikey->get_key())->vtn_key.vtn_name,
-                      rename_val->new_name,
-                      (kMaxLenVtnName + 1));
+        reinterpret_cast<key_vtn_flowfilter_t*>
+        (ikey->get_key())->vtn_key.vtn_name,
+        rename_val->new_name,
+        (kMaxLenVtnName + 1));
   }
   DELETE_IF_NOT_NULL(okey);
   UPLL_LOG_TRACE("End... Input ConfigKeyVal %s", ikey->ToStrAll().c_str());
@@ -1051,7 +1114,7 @@ upll_rc_t VtnFlowFilterMoMgr::GetRenamedUncKey(ConfigKeyVal *ikey,
   ConfigKeyVal *unc_key = NULL;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   UPLL_LOG_TRACE("%s GetRenamedUncKey vtnff start",
-                  ikey->ToStrAll().c_str());
+                 ikey->ToStrAll().c_str());
   if ((ikey == NULL) || (ctrlr_id == NULL) || (dmi == NULL)) {
     UPLL_LOG_DEBUG("ikey/ctrlr_id dmi NULL");
     return UPLL_RC_ERR_GENERIC;
@@ -1076,7 +1139,7 @@ upll_rc_t VtnFlowFilterMoMgr::GetRenamedUncKey(ConfigKeyVal *ikey,
   rename_vtn_key->valid[UPLL_IDX_NEW_NAME_RVTN] = UNC_VF_VALID;
 
   MoMgrImpl *mgr = static_cast<MoMgrImpl*>((const_cast<MoManager*>(GetMoManager(
-      UNC_KT_VTN))));
+                  UNC_KT_VTN))));
   result_code = mgr->GetChildConfigKey(unc_key, NULL);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("GetChildConfigKey fail");
@@ -1092,7 +1155,7 @@ upll_rc_t VtnFlowFilterMoMgr::GetRenamedUncKey(ConfigKeyVal *ikey,
   SET_USER_DATA_CTRLR(unc_key, ctrlr_id);
   unc_key->AppendCfgVal(IpctSt::kIpcStValRenameVtn, rename_vtn_key);
   result_code = mgr->ReadConfigDB(unc_key, dt_type, UNC_OP_READ, dbop,
-                                            dmi, RENAMETBL);
+                                  dmi, RENAMETBL);
   if ((UPLL_RC_SUCCESS != result_code) &&
       (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
     UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
@@ -1108,7 +1171,7 @@ upll_rc_t VtnFlowFilterMoMgr::GetRenamedUncKey(ConfigKeyVal *ikey,
                       (kMaxLenVtnName + 1));
   }
   UPLL_LOG_TRACE("%s GetRenamedUncKey vtnff end",
-                  ikey->ToStrAll().c_str());
+                 ikey->ToStrAll().c_str());
   DELETE_IF_NOT_NULL(unc_key);
   mgr = NULL;
   return UPLL_RC_SUCCESS;
@@ -1129,17 +1192,18 @@ upll_rc_t VtnFlowFilterMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
   }
   if (req->get_key_type() != UNC_KT_VTN_FLOWFILTER) {
     UPLL_LOG_DEBUG(" Invalid KeyType.");
-  return UPLL_RC_ERR_GENERIC;
+    return UPLL_RC_ERR_GENERIC;
   }
   ConfigVal *tmp1 = NULL, *tmp = (req)->get_cfg_val();
 
   if (tmp) {
     if (tbl == MAINTBL) {
-      val_flowfilter_t *ival = reinterpret_cast<val_flowfilter_t*>(GetVal(req));
+      val_flowfilter_t *ival = reinterpret_cast<val_flowfilter_t*>
+          (GetVal(req));
       if (NULL != ival) {
-           flowfilter_val =
-           reinterpret_cast<val_flowfilter_t *>
-           (ConfigKeyVal::Malloc(sizeof(val_flowfilter_t)));
+        flowfilter_val =
+            reinterpret_cast<val_flowfilter_t *>
+            (ConfigKeyVal::Malloc(sizeof(val_flowfilter_t)));
         memcpy(flowfilter_val, ival, sizeof(val_flowfilter_t));
         tmp1 = new ConfigVal(IpctSt::kIpcStValFlowfilter, flowfilter_val);
       }
@@ -1149,8 +1213,8 @@ upll_rc_t VtnFlowFilterMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
       if (NULL != ival) {
         val_vtn_flowfilter_ctrlr_t *flowfilter_ctrlr_val = NULL;
         flowfilter_ctrlr_val =
-           reinterpret_cast<val_vtn_flowfilter_ctrlr_t *>
-           (ConfigKeyVal::Malloc(sizeof(val_vtn_flowfilter_ctrlr_t)));
+            reinterpret_cast<val_vtn_flowfilter_ctrlr_t *>
+            (ConfigKeyVal::Malloc(sizeof(val_vtn_flowfilter_ctrlr_t)));
         memcpy(flowfilter_ctrlr_val, ival, sizeof(val_vtn_flowfilter_ctrlr_t));
         tmp1 = new ConfigVal(IpctSt::kIpcStValFlowfilter,
                              flowfilter_ctrlr_val);
@@ -1166,10 +1230,11 @@ upll_rc_t VtnFlowFilterMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
   key_vtn_flowfilter_t *ikey = reinterpret_cast<key_vtn_flowfilter_t *>(tkey);
 
   key_vtn_flowfilter_t *vtn_flowfilterkey =
-        reinterpret_cast<key_vtn_flowfilter_t*>
-        (ConfigKeyVal::Malloc(sizeof(key_vtn_flowfilter_t)));
+      reinterpret_cast<key_vtn_flowfilter_t*>
+      (ConfigKeyVal::Malloc(sizeof(key_vtn_flowfilter_t)));
   memcpy(vtn_flowfilterkey, ikey, sizeof(key_vtn_flowfilter_t));
-  okey = new ConfigKeyVal(UNC_KT_VTN_FLOWFILTER, IpctSt::kIpcStKeyVtnFlowfilter,
+  okey = new ConfigKeyVal(UNC_KT_VTN_FLOWFILTER,
+                          IpctSt::kIpcStKeyVtnFlowfilter,
                           vtn_flowfilterkey, tmp1);
   SET_USER_DATA(okey, req);
   UPLL_LOG_DEBUG(" Creation of Duplicate ConfigKeyVal is Successful ");
@@ -1198,12 +1263,12 @@ upll_rc_t VtnFlowFilterMoMgr::SetConsolidatedStatus(ConfigKeyVal *ikey,
   val_vtn_flowfilter_ctrlr_t *val;
   ConfigKeyVal *temp_ckv = ckv;
   for ( ; temp_ckv != NULL ; temp_ckv = temp_ckv->get_next_cfg_key_val()) {
-      val = reinterpret_cast<val_vtn_flowfilter_ctrlr_t *>(GetVal(temp_ckv));
-      list_cs_row.push_back((unc_keytype_configstatus_t)val->cs_row_status);
+    val = reinterpret_cast<val_vtn_flowfilter_ctrlr_t *>(GetVal(temp_ckv));
+    list_cs_row.push_back((unc_keytype_configstatus_t)val->cs_row_status);
   }
   DELETE_IF_NOT_NULL(ckv);
   val_flowfilter_t *val_temp =
-                   reinterpret_cast<val_flowfilter_t *>(GetVal(ikey));
+      reinterpret_cast<val_flowfilter_t *>(GetVal(ikey));
   val_temp->cs_row_status = GetConsolidatedCsStatus(list_cs_row);
   result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING,
                                UNC_OP_UPDATE, dmi, MAINTBL);
@@ -1213,22 +1278,23 @@ upll_rc_t VtnFlowFilterMoMgr::SetConsolidatedStatus(ConfigKeyVal *ikey,
   return result_code;
 }
 upll_rc_t VtnFlowFilterMoMgr::UpdateAuditConfigStatus(
-                    unc_keytype_configstatus_t cs_status,
-                    uuc::UpdateCtrlrPhase phase,
-                    ConfigKeyVal *&ckv_running) {
+    unc_keytype_configstatus_t cs_status,
+    uuc::UpdateCtrlrPhase phase,
+    ConfigKeyVal *&ckv_running,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_vtn_flowfilter_ctrlr *val;
   val = (ckv_running != NULL)?
-        reinterpret_cast<val_vtn_flowfilter_ctrlr *>(GetVal(ckv_running)):NULL;
+      reinterpret_cast<val_vtn_flowfilter_ctrlr *>(GetVal(ckv_running)):NULL;
   if (NULL == val) {
     return UPLL_RC_ERR_GENERIC;
   }
   if (uuc::kUpllUcpCreate == phase )
     val->cs_row_status = cs_status;
   if ((uuc::kUpllUcpUpdate == phase) &&
-           (val->cs_row_status == UNC_CS_INVALID ||
-            val->cs_row_status == UNC_CS_NOT_APPLIED))
+      (val->cs_row_status == UNC_CS_INVALID ||
+       val->cs_row_status == UNC_CS_NOT_APPLIED))
     val->cs_row_status = cs_status;
   return result_code;
 }
@@ -1239,10 +1305,10 @@ upll_rc_t VtnFlowFilterMoMgr::UpdateConfigStatus(
     ConfigKeyVal *ctrlr_key) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
-  unc_keytype_configstatus_t ctrlr_status ;
-  uint8_t cs_status ; 
+  unc_keytype_configstatus_t ctrlr_status;
+  uint8_t cs_status;
   ctrlr_status = (driver_result == UPLL_RC_SUCCESS) ?
-                  UNC_CS_APPLIED : UNC_CS_NOT_APPLIED;
+      UNC_CS_APPLIED : UNC_CS_NOT_APPLIED;
   val_flowfilter_t *vtn_flowfilter_val =
       reinterpret_cast<val_flowfilter_t *>(GetVal(vtn_flow_filter_key));
   val_vtn_flowfilter_ctrlr *ctrlr_val_vtn_flowfilter =
@@ -1250,43 +1316,43 @@ upll_rc_t VtnFlowFilterMoMgr::UpdateConfigStatus(
 
   if ((vtn_flowfilter_val == NULL) || (ctrlr_val_vtn_flowfilter == NULL)) {
     UPLL_LOG_DEBUG("vtn_flowfilter &"
-                  "ctrlr_val_vtn_flowfilter is Null");
-  return UPLL_RC_ERR_GENERIC;
+                   "ctrlr_val_vtn_flowfilter is Null");
+    return UPLL_RC_ERR_GENERIC;
   }
 
   cs_status = vtn_flowfilter_val->cs_row_status;
   UPLL_LOG_TRACE("cs_status %d ctrlr_status %d\n", cs_status, ctrlr_status);
   if (op == UNC_OP_CREATE) {
     ctrlr_val_vtn_flowfilter->cs_row_status = ctrlr_status;
-   /* update the vtn status in main tbl */
+    /* update the vtn status in main tbl */
     if (vtn_flowfilter_val->cs_row_status == UNC_CS_UNKNOWN) {
-        /* first entry in ctrlr table */
+      /* first entry in ctrlr table */
       cs_status = ctrlr_status;
     } else if (vtn_flowfilter_val->cs_row_status == UNC_CS_INVALID) {
       cs_status = UNC_CS_INVALID;
     } else if (vtn_flowfilter_val->cs_row_status == UNC_CS_APPLIED) {
-        if (ctrlr_status == UNC_CS_NOT_APPLIED) {
-          cs_status = UNC_CS_PARTIALLY_APPLIED;
-        }
+      if (ctrlr_status == UNC_CS_NOT_APPLIED) {
+        cs_status = UNC_CS_PARTIALLY_APPLIED;
+      }
     } else if (vtn_flowfilter_val->cs_row_status == UNC_CS_NOT_APPLIED) {
-        if (ctrlr_status == UNC_CS_APPLIED) {
-          cs_status =  UNC_CS_PARTIALLY_APPLIED;
-        }
+      if (ctrlr_status == UNC_CS_APPLIED) {
+        cs_status =  UNC_CS_PARTIALLY_APPLIED;
+      }
     } else {
-        cs_status = UNC_CS_PARTIALLY_APPLIED;
+      cs_status = UNC_CS_PARTIALLY_APPLIED;
     }
     vtn_flowfilter_val->cs_row_status = cs_status;
   }
   // Updating the Controller cs_row_status
   if ((op == UNC_OP_UPDATE) && (nreq != NULL)) {
-     val_vtn_flowfilter_ctrlr *run_ctrlr_val = 
-              reinterpret_cast<val_vtn_flowfilter_ctrlr*>
-                                            (GetVal(nreq));
-   if (run_ctrlr_val != NULL)
-     ctrlr_val_vtn_flowfilter->cs_row_status = run_ctrlr_val->cs_row_status;
-   }
-   UPLL_LOG_DEBUG("UpdateConfigStatus is  Successfull");
-   return result_code;
+    val_vtn_flowfilter_ctrlr *run_ctrlr_val =
+        reinterpret_cast<val_vtn_flowfilter_ctrlr*>
+        (GetVal(nreq));
+    if (run_ctrlr_val != NULL)
+      ctrlr_val_vtn_flowfilter->cs_row_status = run_ctrlr_val->cs_row_status;
+  }
+  UPLL_LOG_DEBUG("UpdateConfigStatus is  Successfull");
+  return result_code;
 }
 upll_rc_t
 VtnFlowFilterMoMgr::SetVtnFFConsolidatedStatus(ConfigKeyVal *ikey,
@@ -1300,7 +1366,7 @@ VtnFlowFilterMoMgr::SetVtnFFConsolidatedStatus(ConfigKeyVal *ikey,
   bool applied = false, not_applied = false, invalid = false;
   unc_keytype_configstatus_t c_status = UNC_CS_NOT_APPLIED;
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone,
-                   kOpInOutCtrlr | kOpInOutDomain | kOpInOutCs };
+    kOpInOutCtrlr | kOpInOutDomain | kOpInOutCs };
   if (!ikey || !dmi) {
     UPLL_LOG_DEBUG("Invalid Input");
     return UPLL_RC_ERR_GENERIC;
@@ -1310,7 +1376,7 @@ VtnFlowFilterMoMgr::SetVtnFFConsolidatedStatus(ConfigKeyVal *ikey,
     UPLL_LOG_DEBUG("GetChildConfigKey failed err code %d", result_code);
     return result_code;
   }
-  result_code = ReadConfigDB(ctrlr_ckv, UPLL_DT_RUNNING, 
+  result_code = ReadConfigDB(ctrlr_ckv, UPLL_DT_RUNNING,
                              UNC_OP_READ, dbop, dmi,
                              CTRLRTBL);
   if (UPLL_RC_SUCCESS != result_code) {
@@ -1321,7 +1387,7 @@ VtnFlowFilterMoMgr::SetVtnFFConsolidatedStatus(ConfigKeyVal *ikey,
   }
 
   for (ConfigKeyVal *tmp = ctrlr_ckv; tmp != NULL;
-                     tmp = tmp->get_next_cfg_key_val()) {
+       tmp = tmp->get_next_cfg_key_val()) {
     ctrlr_val = reinterpret_cast<val_vtn_flowfilter_ctrlr_t *>(GetVal(tmp));
     if (!ctrlr_val) {
       UPLL_LOG_DEBUG("Controller Value is empty");
@@ -1337,17 +1403,17 @@ VtnFlowFilterMoMgr::SetVtnFFConsolidatedStatus(ConfigKeyVal *ikey,
     switch (ctrlr_val->cs_row_status) {
       case UNC_CS_APPLIED:
         applied = true;
-      break;
+        break;
       case UNC_CS_NOT_APPLIED:
         not_applied = true;
-      break;
+        break;
       case UNC_CS_INVALID:
         invalid = true;
-      break;
+        break;
       default:
         UPLL_LOG_DEBUG("Invalid status");
         DELETE_IF_NOT_NULL(ctrlr_ckv);
-        // return UPLL_RC_ERR_GENERIC; 
+        // return UPLL_RC_ERR_GENERIC;
     }
     vtn_exist_on_ctrlr = NULL;
   }
@@ -1373,11 +1439,12 @@ VtnFlowFilterMoMgr::SetVtnFFConsolidatedStatus(ConfigKeyVal *ikey,
 }
 
 upll_rc_t VtnFlowFilterMoMgr::GetDiffRecord(ConfigKeyVal *ckv_running,
-                                   ConfigKeyVal *ckv_audit,
-                                   uuc::UpdateCtrlrPhase phase, MoMgrTables tbl,
-                                   ConfigKeyVal *&okey,
-                                   DalDmlIntf *dmi,
-                                   bool &invalid_attr) {
+                                            ConfigKeyVal *ckv_audit,
+                                            uuc::UpdateCtrlrPhase phase,
+                                            MoMgrTables tbl,
+                                            ConfigKeyVal *&okey,
+                                            DalDmlIntf *dmi,
+                                            bool &invalid_attr) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *ckv_dup = NULL;
@@ -1385,99 +1452,100 @@ upll_rc_t VtnFlowFilterMoMgr::GetDiffRecord(ConfigKeyVal *ckv_running,
   DbSubOp dbop = {kOpReadSingle, kOpMatchNone, kOpInOutCs};
   switch (phase) {
     case uuc::kUpllUcpDelete:
-      UPLL_LOG_TRACE("Deleted record is %s ",ckv_running->ToStrAll().c_str());
+      UPLL_LOG_TRACE("Deleted record is %s ", ckv_running->ToStrAll().c_str());
       result_code = GetChildConfigKey(okey, ckv_running);
       if (result_code != UPLL_RC_SUCCESS) {
-         UPLL_LOG_DEBUG("GetChildConfigKey failed. err_code & phase %d %d",
-                           result_code, phase);
-         return result_code;
+        UPLL_LOG_DEBUG("GetChildConfigKey failed. err_code & phase %d %d",
+                       result_code, phase);
+        return result_code;
       }
-    break;
+      break;
     case uuc::kUpllUcpCreate:
       if (tbl == CTRLRTBL) {
         UPLL_LOG_TRACE("Created  record fot ctrlr_tbl is %s ",
-                        ckv_running->ToStrAll().c_str());
+                       ckv_running->ToStrAll().c_str());
         result_code = GetChildConfigKey(okey, ckv_running);
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("GetChildConfigKey failed. err_code & phase %d %d",
-                           result_code, phase);
+                         result_code, phase);
           return result_code;
         }
         result_code = ReadConfigDB(okey, UPLL_DT_RUNNING,
-                                     UNC_OP_READ, dbop, dmi, MAINTBL);
+                                   UNC_OP_READ, dbop, dmi, MAINTBL);
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("ReadConfigDB failed. err_code & phase %d %d",
-                           result_code, phase);
+                         result_code, phase);
           return result_code;
         }
       } else {
-          UPLL_LOG_TRACE("Created  record is %s ",ckv_running->ToStrAll().c_str());
-          result_code = DupConfigKeyVal(okey, ckv_running, tbl);
-          if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("DupConfigKeyVal failed. err_code & phase %d %d",
-                           result_code, phase);
-            return result_code;
-          }
+        UPLL_LOG_TRACE("Created  record is %s ",
+                       ckv_running->ToStrAll().c_str());
+        result_code = DupConfigKeyVal(okey, ckv_running, tbl);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("DupConfigKeyVal failed. err_code & phase %d %d",
+                         result_code, phase);
+          return result_code;
+        }
       }
-    break;
+      break;
     case uuc::kUpllUcpUpdate:
       if (tbl == CTRLRTBL) {
         UPLL_LOG_TRACE("UpdateRecord  record for Ctrlr_tbl is %s ",
-                        ckv_running->ToStrAll().c_str());
+                       ckv_running->ToStrAll().c_str());
         UPLL_LOG_TRACE("UpdateRecord  record for Ctrlr_tbl is %s ",
-                        ckv_audit->ToStrAll().c_str());
+                       ckv_audit->ToStrAll().c_str());
         result_code = GetChildConfigKey(okey, ckv_running);
         if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("GetChildConfigKey for running record failed. \
-                         err_code & phase %d %d", result_code, phase);
+          UPLL_LOG_DEBUG("GetChildConfigKey for running record failed."
+                         "err_code & phase %d %d", result_code, phase);
           return result_code;
         }
         result_code = ReadConfigDB(okey, UPLL_DT_RUNNING,
-                                     UNC_OP_READ, dbop, dmi, MAINTBL);
+                                   UNC_OP_READ, dbop, dmi, MAINTBL);
         if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("ReadConfigDB from running failed. \
-                           err_code & phase %d %d", result_code, phase);
+          UPLL_LOG_DEBUG("ReadConfigDB from running failed. "
+                         "err_code & phase %d %d", result_code, phase);
           return result_code;
         }
         result_code = GetChildConfigKey(ckv_dup, ckv_audit);
         if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("GetChildConfigKey for audit record failed. \
-                            err_code & phase %d %d", result_code, phase);
+          UPLL_LOG_DEBUG("GetChildConfigKey for audit record failed. "
+                         "err_code & phase %d %d", result_code, phase);
           return result_code;
         }
         result_code = ReadConfigDB(ckv_dup, UPLL_DT_AUDIT,
-                                     UNC_OP_READ, dbop, dmi, MAINTBL);
+                                   UNC_OP_READ, dbop, dmi, MAINTBL);
         if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("ReadConfigDB from audit failed. \
-                           err_code & phase %d %d", result_code, phase);
+          UPLL_LOG_DEBUG("ReadConfigDB from audit failed. "
+                         "err_code & phase %d %d", result_code, phase);
           return result_code;
         }
       } else {
-          UPLL_LOG_TRACE("UpdateRecord  record  is %s ",
-                          ckv_running->ToStrAll().c_str());
-          UPLL_LOG_TRACE("UpdateRecord  record  is %s ",
-                          ckv_audit->ToStrAll().c_str());
-          result_code = DupConfigKeyVal(okey, ckv_running, tbl);
-          if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("DupConfigKeyVal failed for running record. \
-                            err_code & phase %d %d", result_code, phase);
-            return result_code;
-          }
-          result_code = DupConfigKeyVal(ckv_dup, ckv_audit, tbl);
-          if (!ckv_dup || result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("DupConfigKeyVal failed for audit record. \
-                           err_code & phase %d %d", result_code, phase);
-            DELETE_IF_NOT_NULL(ckv_dup);
-            return result_code;
-          }
+        UPLL_LOG_TRACE("UpdateRecord  record  is %s ",
+                       ckv_running->ToStrAll().c_str());
+        UPLL_LOG_TRACE("UpdateRecord  record  is %s ",
+                       ckv_audit->ToStrAll().c_str());
+        result_code = DupConfigKeyVal(okey, ckv_running, tbl);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("DupConfigKeyVal failed for running record. "
+                         "err_code & phase %d %d", result_code, phase);
+          return result_code;
+        }
+        result_code = DupConfigKeyVal(ckv_dup, ckv_audit, tbl);
+        if (!ckv_dup || result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("DupConfigKeyVal failed for audit record. "
+                         "err_code & phase %d %d", result_code, phase);
+          DELETE_IF_NOT_NULL(ckv_dup);
+          return result_code;
+        }
       }
       if (GetVal(okey) != NULL &&
           GetVal(ckv_dup) != NULL) {
         void *val1 = GetVal(okey);
         invalid_attr = FilterAttributes(val1, GetVal(ckv_dup), true,
-                         UNC_OP_UPDATE);
+                                        UNC_OP_UPDATE);
       }
-    break;
+      break;
     default:
       UPLL_LOG_DEBUG("Invalid operation %d", phase);
       return UPLL_RC_ERR_NO_SUCH_OPERATION;
@@ -1487,13 +1555,14 @@ upll_rc_t VtnFlowFilterMoMgr::GetDiffRecord(ConfigKeyVal *ckv_running,
   return result_code;
 }
 
-upll_rc_t VtnFlowFilterMoMgr::TxUpdateController(unc_key_type_t keytype,
-                                                uint32_t session_id,
-                                                uint32_t config_id,
-                                                uuc::UpdateCtrlrPhase phase,
-                                                set<string> *affected_ctrlr_set,
-                                                DalDmlIntf *dmi,
-                                                ConfigKeyVal **err_ckv) {
+upll_rc_t VtnFlowFilterMoMgr::TxUpdateController(
+    unc_key_type_t keytype,
+    uint32_t session_id,
+    uint32_t config_id,
+    uuc::UpdateCtrlrPhase phase,
+    set<string> *affected_ctrlr_set,
+    DalDmlIntf *dmi,
+    ConfigKeyVal **err_ckv) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   DalResultCode dal_result = uud::kDalRcSuccess;
@@ -1548,15 +1617,15 @@ upll_rc_t VtnFlowFilterMoMgr::TxUpdateController(unc_key_type_t keytype,
         DELETE_IF_NOT_NULL(ck_main);
         break;
       }
-      result_code = TxUpdateProcess(ck_main, &resp, op, dmi, &ctrlr_dom);
-      if (result_code == UPLL_RC_SUCCESS) {
-        affected_ctrlr_set->insert((const char *)ctrlr_dom.ctrlr);
-      } else {
+      bool driver_resp = false;
+      result_code = TxUpdateProcess(ck_main, &resp, op, dmi, &ctrlr_dom,
+                                    affected_ctrlr_set, &driver_resp);
+      if (result_code != UPLL_RC_SUCCESS && driver_resp) {
         UPLL_LOG_DEBUG("TxUpdateProcess error %d", result_code);
         upll_keytype_datatype_t dt_type = (UNC_OP_DELETE == op)?
             UPLL_DT_RUNNING:UPLL_DT_CANDIDATE;
         upll_rc_t local_rc = GetRenamedUncKey(resp.ckv_data, dt_type, dmi,
-                                       ctrlr_dom.ctrlr);
+                                              ctrlr_dom.ctrlr);
         if (UPLL_RC_SUCCESS != local_rc &&
             UPLL_RC_ERR_NO_SUCH_INSTANCE != local_rc) {
           UPLL_LOG_DEBUG("GetRenamedUncKey failed %d", local_rc);
@@ -1565,9 +1634,14 @@ upll_rc_t VtnFlowFilterMoMgr::TxUpdateController(unc_key_type_t keytype,
           result_code = UPLL_RC_ERR_GENERIC;
           break;
         }
+        SET_USER_DATA_CTRLR(resp.ckv_data, ctrlr_dom.ctrlr);
         *err_ckv = resp.ckv_data;
         DELETE_IF_NOT_NULL(ck_main);
         break;
+      } else if (result_code != UPLL_RC_SUCCESS) {
+        DELETE_IF_NOT_NULL(ck_main);
+        DELETE_IF_NOT_NULL(resp.ckv_data);
+        break;
       }
       DELETE_IF_NOT_NULL(resp.ckv_data);
     }
@@ -1588,7 +1662,9 @@ upll_rc_t VtnFlowFilterMoMgr::TxUpdateProcess(ConfigKeyVal *ck_main,
                                               IpcResponse *ipc_resp,
                                               unc_keytype_operation_t op,
                                               DalDmlIntf *dmi,
-                                              controller_domain *ctrlr_dom) {
+                                              controller_domain *ctrlr_dom,
+                                              set<string> *affected_ctrlr_set,
+                                              bool *driver_resp) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code;
   /* read from main table */
@@ -1614,10 +1690,10 @@ upll_rc_t VtnFlowFilterMoMgr::TxUpdateProcess(ConfigKeyVal *ck_main,
   /* Get renamed key if key is renamed */
   if (op == UNC_OP_DELETE)
     result_code = GetRenamedControllerKey(dup_ckmain, UPLL_DT_RUNNING,
-                                              dmi, ctrlr_dom);
+                                          dmi, ctrlr_dom);
   else
     result_code =  GetRenamedControllerKey(dup_ckmain, UPLL_DT_CANDIDATE,
-                                         dmi, ctrlr_dom);
+                                           dmi, ctrlr_dom);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("Failed to get the Renamed ControllerKey");
     return result_code;
@@ -1627,17 +1703,20 @@ upll_rc_t VtnFlowFilterMoMgr::TxUpdateProcess(ConfigKeyVal *ck_main,
                            UPLL_DT_CANDIDATE,
                            dup_ckmain, ctrlr_dom, ipc_resp);
 
-  if (result_code == UPLL_RC_ERR_RESOURCE_DISCONNECTED) {
+  if (result_code == UPLL_RC_ERR_CTR_DISCONNECTED) {
     result_code = UPLL_RC_SUCCESS;
     UPLL_LOG_DEBUG("controller disconnected error proceed with commit");
   }
   if (result_code != UPLL_RC_SUCCESS) {
+    *driver_resp = true;
     UPLL_LOG_DEBUG("IpcSend failed %d", result_code);
   }
+  affected_ctrlr_set->insert((const char *)ctrlr_dom->ctrlr);
   if ((op == UNC_OP_CREATE) && dup_ckmain) {
     delete dup_ckmain;
     dup_ckmain = NULL;
   }
+  UPLL_LOG_TRACE("Driver response received %d", *driver_resp);
   return result_code;
 }
 
@@ -1652,44 +1731,50 @@ upll_rc_t VtnFlowFilterMoMgr::TxCopyCandidateToRunning(
   unc_keytype_operation_t op[] = { UNC_OP_DELETE, UNC_OP_CREATE };
 
   int nop = sizeof(op) / sizeof(op[0]);
-  ConfigKeyVal *vtn_flowfilter_key = NULL, *req = NULL, 
-    *nreq = NULL, *vtn_ck_run = NULL;
+  ConfigKeyVal *vtn_flowfilter_key = NULL, *req = NULL,
+               *nreq = NULL, *vtn_ck_run = NULL;
   DalCursor *cfg1_cursor;
   uint8_t *ctrlr_id =NULL;
   map<string, int> ctrlr_result;
   CtrlrCommitStatusList::iterator ccsListItr;
   CtrlrCommitStatus *ccStatusPtr;
 
-  if ((ctrlr_commit_status == NULL) || (dmi == NULL)) {
-    result_code = UPLL_RC_ERR_GENERIC;
-    UPLL_LOG_DEBUG("Insufficient inputs:result_code %d", result_code);
-    return result_code;
-  }
-  for (ccsListItr = ctrlr_commit_status->begin();
-      ccsListItr != ctrlr_commit_status->end(); ++ccsListItr) {
-    ccStatusPtr = *ccsListItr;
-    ctrlr_id = reinterpret_cast<uint8_t* >(const_cast<char*>
-                               (ccStatusPtr->ctrlr_id.c_str()));
-    ctrlr_result[ccStatusPtr->ctrlr_id] = ccStatusPtr->upll_ctrlr_result;
-    if (ccStatusPtr->upll_ctrlr_result != UPLL_RC_SUCCESS) {
-      for (ConfigKeyVal *ck_err = ccStatusPtr->err_ckv; ck_err != NULL;
-           ck_err = ck_err->get_next_cfg_key_val()) {
-        if (ck_err->get_key_type() != keytype) continue;
-        result_code = GetRenamedUncKey(ck_err, UPLL_DT_CANDIDATE, dmi,
-                                       ctrlr_id);
-        if (result_code != UPLL_RC_SUCCESS) {
-         UPLL_LOG_DEBUG("Unable to get the Renamed Unc Key, resultcode=%d",
-                        result_code);
-          return result_code;
+  if (ctrlr_commit_status != NULL) {
+    for (ccsListItr = ctrlr_commit_status->begin();
+         ccsListItr != ctrlr_commit_status->end(); ++ccsListItr) {
+      ccStatusPtr = *ccsListItr;
+      ctrlr_id = reinterpret_cast<uint8_t* >(const_cast<char*>
+                                             (ccStatusPtr->ctrlr_id.c_str()));
+      ctrlr_result[ccStatusPtr->ctrlr_id] = ccStatusPtr->upll_ctrlr_result;
+      if (ccStatusPtr->upll_ctrlr_result != UPLL_RC_SUCCESS) {
+        for (ConfigKeyVal *ck_err = ccStatusPtr->err_ckv; ck_err != NULL;
+             ck_err = ck_err->get_next_cfg_key_val()) {
+          if (ck_err->get_key_type() != keytype) continue;
+          result_code = GetRenamedUncKey(ck_err, UPLL_DT_CANDIDATE, dmi,
+                                         ctrlr_id);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("Unable to get the Renamed Unc Key, resultcode=%d",
+                           result_code);
+            return result_code;
+          }
         }
       }
     }
   }
 
   for (int i = 0; i < nop; i++) {
+    cfg1_cursor = NULL;
     // Update the Main table
-    result_code = DiffConfigDB(UPLL_DT_CANDIDATE, UPLL_DT_RUNNING, op[i],
-                               req, nreq, &cfg1_cursor, dmi,NULL, MAINTBL,true);
+    result_code = DiffConfigDB(UPLL_DT_CANDIDATE,
+                               UPLL_DT_RUNNING,
+                               op[i],
+                               req,
+                               nreq,
+                               &cfg1_cursor,
+                               dmi,
+                               NULL,
+                               MAINTBL,
+                               true);
     while (result_code == UPLL_RC_SUCCESS) {
       db_result = dmi->GetNextRecord(cfg1_cursor);
       result_code = DalToUpllResCode(db_result);
@@ -1701,8 +1786,8 @@ upll_rc_t VtnFlowFilterMoMgr::TxCopyCandidateToRunning(
                                   nreq, dmi);
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("Updating Main table Error %d", result_code);
-        if (cfg1_cursor) 
-            dmi->CloseCursor(cfg1_cursor, true);
+        if (cfg1_cursor)
+          dmi->CloseCursor(cfg1_cursor, true);
         DELETE_IF_NOT_NULL(req);
         DELETE_IF_NOT_NULL(nreq);
         return result_code;
@@ -1720,9 +1805,10 @@ upll_rc_t VtnFlowFilterMoMgr::TxCopyCandidateToRunning(
   }
 
   for (int i = 0; i < nop; i++) {
+    cfg1_cursor = NULL;
     // Update the controller table
     result_code = DiffConfigDB(UPLL_DT_CANDIDATE, UPLL_DT_RUNNING, op[i], req,
-                  nreq, &cfg1_cursor, dmi, NULL, CTRLRTBL, true);
+                               nreq, &cfg1_cursor, dmi, NULL, CTRLRTBL, true);
     ConfigKeyVal *vtn_ff_ctrlr_key = NULL;
     while (result_code == UPLL_RC_SUCCESS) {
       db_result = dmi->GetNextRecord(cfg1_cursor);
@@ -1732,13 +1818,13 @@ upll_rc_t VtnFlowFilterMoMgr::TxCopyCandidateToRunning(
         break;
       }
       if (op[i] == UNC_OP_CREATE) {
-        DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutFlag 
-                          | kOpInOutCs };
+        DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutFlag
+          | kOpInOutCs };
         result_code = GetChildConfigKey(vtn_flowfilter_key, req);
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("GetChildConfigKey is failed resultcode=%d",
                          result_code);
-          if (cfg1_cursor) 
+          if (cfg1_cursor)
             dmi->CloseCursor(cfg1_cursor, true);
           DELETE_IF_NOT_NULL(req);
           DELETE_IF_NOT_NULL(nreq);
@@ -1746,10 +1832,10 @@ upll_rc_t VtnFlowFilterMoMgr::TxCopyCandidateToRunning(
         }
         result_code = ReadConfigDB(vtn_flowfilter_key, UPLL_DT_RUNNING,
                                    UNC_OP_READ, dbop, dmi, MAINTBL);
-        if (result_code != UPLL_RC_SUCCESS && 
-                   result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+        if (result_code != UPLL_RC_SUCCESS &&
+            result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
           UPLL_LOG_DEBUG("Unable to read configuration from CandidateDb");
-          if (cfg1_cursor) 
+          if (cfg1_cursor)
             dmi->CloseCursor(cfg1_cursor, true);
           DELETE_IF_NOT_NULL(vtn_flowfilter_key);
           DELETE_IF_NOT_NULL(req);
@@ -1773,18 +1859,24 @@ upll_rc_t VtnFlowFilterMoMgr::TxCopyCandidateToRunning(
         // to the cs_status of first controller
         uint32_t cur_instance_count;
         result_code = GetInstanceCount(vtn_flowfilter_key, NULL,
-                                   UPLL_DT_CANDIDATE, &cur_instance_count,
-                                   dmi, CTRLRTBL);
+                                       UPLL_DT_CANDIDATE, &cur_instance_count,
+                                       dmi, CTRLRTBL);
         if ((result_code == UPLL_RC_SUCCESS) && (cur_instance_count == 1))
-            reinterpret_cast<val_flowfilter *>(GetVal(vtn_flowfilter_key))->\
-                               cs_row_status = UNC_CS_UNKNOWN ;
+          reinterpret_cast<val_flowfilter *>(GetVal(vtn_flowfilter_key))->\
+              cs_row_status = UNC_CS_UNKNOWN;
         GET_USER_DATA_CTRLR(vtn_ff_ctrlr_key, ctrlr_id);
 
         string controller(reinterpret_cast<char *> (ctrlr_id));
-
-        result_code = UpdateConfigStatus(vtn_flowfilter_key, op[i],
-                                         ctrlr_result[controller], nreq,
-                                         dmi, vtn_ff_ctrlr_key);
+        if (ctrlr_result.empty()) {
+          UPLL_LOG_TRACE("ctrlr_commit_status is NULL");
+          result_code = UpdateConfigStatus(vtn_flowfilter_key, op[i],
+                                           UPLL_RC_ERR_CTR_DISCONNECTED, nreq,
+                                           dmi, vtn_ff_ctrlr_key);
+        } else {
+          result_code = UpdateConfigStatus(vtn_flowfilter_key, op[i],
+                                           ctrlr_result[controller], nreq,
+                                           dmi, vtn_ff_ctrlr_key);
+        }
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("Error in updating configstatus, resultcode=%d",
                          result_code);
@@ -1794,8 +1886,8 @@ upll_rc_t VtnFlowFilterMoMgr::TxCopyCandidateToRunning(
         }
       } else if (op[i] == UNC_OP_DELETE) {
         // Reading Main Running DB for delete op
-        DbSubOp dbop1 = { kOpReadSingle, kOpMatchNone, kOpInOutFlag 
-                                                  | kOpInOutCs };
+        DbSubOp dbop1 = { kOpReadSingle, kOpMatchNone, kOpInOutFlag
+          | kOpInOutCs };
         result_code = GetChildConfigKey(vtn_ck_run, req);
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("GetChildConfigKey is failed resultcode=%d",
@@ -1808,8 +1900,8 @@ upll_rc_t VtnFlowFilterMoMgr::TxCopyCandidateToRunning(
         }
         result_code = ReadConfigDB(vtn_ck_run, UPLL_DT_RUNNING,
                                    UNC_OP_READ, dbop1, dmi, MAINTBL);
-        if (result_code != UPLL_RC_SUCCESS &&  
-               result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE ) {
+        if (result_code != UPLL_RC_SUCCESS &&
+            result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE ) {
           UPLL_LOG_DEBUG("Unable to read configuration from CandidateDb");
           DELETE_IF_NOT_NULL(vtn_ck_run);
           if (cfg1_cursor)
@@ -1817,12 +1909,12 @@ upll_rc_t VtnFlowFilterMoMgr::TxCopyCandidateToRunning(
           DELETE_IF_NOT_NULL(req);
           DELETE_IF_NOT_NULL(nreq);
           return result_code;
-        } 
+        }
         if (result_code == UPLL_RC_SUCCESS) {
           result_code = SetVtnFFConsolidatedStatus(vtn_ck_run, ctrlr_id, dmi);
           if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("Could not set consolidated status %d", 
-                                                  result_code);
+            UPLL_LOG_DEBUG("Could not set consolidated status %d",
+                           result_code);
             DELETE_IF_NOT_NULL(vtn_ck_run);
             if (cfg1_cursor)
               dmi->CloseCursor(cfg1_cursor, true);
@@ -1830,7 +1922,7 @@ upll_rc_t VtnFlowFilterMoMgr::TxCopyCandidateToRunning(
             DELETE_IF_NOT_NULL(nreq);
             return result_code;
           }
-         }
+        }
         DELETE_IF_NOT_NULL(vtn_ck_run);
         result_code = GetChildConfigKey(vtn_ff_ctrlr_key, req);
         if (result_code != UPLL_RC_SUCCESS) {
@@ -1848,18 +1940,18 @@ upll_rc_t VtnFlowFilterMoMgr::TxCopyCandidateToRunning(
                                    op[i], dmi, CTRLRTBL);
       if (result_code != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("DB Error while updating controller table. err code:%d",
-                       result_code); 
+                       result_code);
         DELETE_IF_NOT_NULL(vtn_ff_ctrlr_key);
         if (cfg1_cursor)
-            dmi->CloseCursor(cfg1_cursor, true);
+          dmi->CloseCursor(cfg1_cursor, true);
         DELETE_IF_NOT_NULL(req);
         DELETE_IF_NOT_NULL(nreq);
         return result_code;
       }
       // update the consolidated config status in the Main Table
       if (op[i] != UNC_OP_DELETE) {
-            result_code = UpdateConfigDB(vtn_flowfilter_key, UPLL_DT_RUNNING,
-                UNC_OP_UPDATE, dmi, MAINTBL);
+        result_code = UpdateConfigDB(vtn_flowfilter_key, UPLL_DT_RUNNING,
+                                     UNC_OP_UPDATE, dmi, MAINTBL);
         if (result_code != UPLL_RC_SUCCESS) {
           if (cfg1_cursor)
             dmi->CloseCursor(cfg1_cursor, true);
@@ -1923,9 +2015,9 @@ upll_rc_t VtnFlowFilterMoMgr::ReadMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
   controller_domain ctrlr_dom;
   result_code = ValidateMessage(req, ikey);
   if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("ValidateMessage failed result_code %d",
-                    result_code);
-      return result_code;
+    UPLL_LOG_DEBUG("ValidateMessage failed result_code %d",
+                   result_code);
+    return result_code;
   }
   result_code = ReadInfoFromDB(req, ikey, dmi, &ctrlr_dom);
   if (result_code != UPLL_RC_SUCCESS) {
@@ -1988,9 +2080,9 @@ upll_rc_t VtnFlowFilterMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
   controller_domain ctrlr_dom;
   result_code = ValidateMessage(req, key);
   if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("ValidateMessage failed result_code %d",
-                    result_code);
-      return result_code;
+    UPLL_LOG_DEBUG("ValidateMessage failed result_code %d",
+                   result_code);
+    return result_code;
   }
   result_code = ReadInfoFromDB(req, key, dmi, &ctrlr_dom);
   if (result_code != UPLL_RC_SUCCESS) {
@@ -2003,19 +2095,19 @@ upll_rc_t VtnFlowFilterMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
 }
 
 bool VtnFlowFilterMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type,
-                                    BindInfo *&bindinfo,
-                                    int &nattr,
-                                    MoMgrTables tbl ) {
+                                              BindInfo *&bindinfo,
+                                              int &nattr,
+                                              MoMgrTables tbl ) {
   /* Main Table only update */
   UPLL_FUNC_TRACE;
   if (MAINTBL == tbl) {
     nattr = sizeof(vtn_flowfilter_maintbl_rename_bindinfo)/
-            sizeof(vtn_flowfilter_maintbl_rename_bindinfo[0]); 
+        sizeof(vtn_flowfilter_maintbl_rename_bindinfo[0]);
     bindinfo = vtn_flowfilter_maintbl_rename_bindinfo;
   } else if (CTRLRTBL ==tbl) {
     nattr = sizeof(vtn_flowfilter_ctrlrtbl_rename_bindinfo)/
-            sizeof(vtn_flowfilter_ctrlrtbl_rename_bindinfo[0]);
-     bindinfo = vtn_flowfilter_ctrlrtbl_rename_bindinfo;
+        sizeof(vtn_flowfilter_ctrlrtbl_rename_bindinfo[0]);
+    bindinfo = vtn_flowfilter_ctrlrtbl_rename_bindinfo;
   }
   UPLL_LOG_DEBUG("Successful Completeion");
   return PFC_TRUE;
@@ -2024,7 +2116,7 @@ bool VtnFlowFilterMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type,
 bool VtnFlowFilterMoMgr::IsValidKey(void *key, uint64_t index) {
   UPLL_FUNC_TRACE;
   key_vtn_flowfilter_t *vtn_ff_key =
-    reinterpret_cast<key_vtn_flowfilter_t*> (key);
+      reinterpret_cast<key_vtn_flowfilter_t*> (key);
   upll_rc_t ret_val;
   switch (index) {
     case uudst::vtn_flowfilter::kDbiVtnName:
@@ -2036,7 +2128,7 @@ bool VtnFlowFilterMoMgr::IsValidKey(void *key, uint64_t index) {
         UPLL_LOG_DEBUG("VTN Name is not valid(%d)", ret_val);
         return false;
       }
-    break;
+      break;
     case uudst::vtn_flowfilter::kDbiInputDirection:
       if (vtn_ff_key->input_direction == 0xFE) {
         // if operation is read sibling begin or
@@ -2054,14 +2146,14 @@ bool VtnFlowFilterMoMgr::IsValidKey(void *key, uint64_t index) {
           return false;
         }
       }
-    break;
+      break;
     default:
-    break;
+      break;
   }
   return true;
 }
 upll_rc_t  VtnFlowFilterMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
-                                              ConfigKeyVal *ikey) {
+                                               ConfigKeyVal *ikey) {
   UPLL_FUNC_TRACE;
   if (!ikey || !(ikey->get_key())) {
     UPLL_LOG_DEBUG("Input Key Not Valid");
@@ -2071,10 +2163,10 @@ upll_rc_t  VtnFlowFilterMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
   key_rename_vnode_info *key_rename = reinterpret_cast<key_rename_vnode_info *>
-                                      (ikey->get_key());
+      (ikey->get_key());
   key_vtn_flowfilter_t *key_vtn =
-               reinterpret_cast<key_vtn_flowfilter_t*>
-               (ConfigKeyVal::Malloc(sizeof(key_vtn_flowfilter_t)));
+      reinterpret_cast<key_vtn_flowfilter_t*>
+      (ConfigKeyVal::Malloc(sizeof(key_vtn_flowfilter_t)));
 
   if (!strlen(reinterpret_cast<char *>(key_rename->old_unc_vtn_name))) {
     UPLL_LOG_DEBUG("String Length not Valid to Perform the Operation");
@@ -2087,7 +2179,7 @@ upll_rc_t  VtnFlowFilterMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
   key_vtn->input_direction = 0xFE;
 
   okey = new ConfigKeyVal(UNC_KT_VTN_FLOWFILTER, IpctSt::
-                   kIpcStKeyVtnFlowfilter, key_vtn, NULL);
+                          kIpcStKeyVtnFlowfilter, key_vtn, NULL);
   if (!okey)
     return UPLL_RC_ERR_GENERIC;
   return result_code;
@@ -2116,12 +2208,13 @@ upll_rc_t VtnFlowFilterMoMgr::ValidateMessage(IpcReqRespHeader *req,
     UPLL_LOG_DEBUG(" invalid option2(%d)", req->option2);
     return UPLL_RC_ERR_INVALID_OPTION2;
   }
-  if ((req->datatype == UPLL_DT_IMPORT) && (req->operation == UNC_OP_READ ||
-       req->operation == UNC_OP_READ_SIBLING ||
-       req->operation == UNC_OP_READ_SIBLING_BEGIN ||
-       req->operation == UNC_OP_READ_NEXT ||
-       req->operation == UNC_OP_READ_BULK ||
-       req->operation == UNC_OP_READ_SIBLING_COUNT)) {
+  if ((req->datatype == UPLL_DT_IMPORT) && (
+          req->operation == UNC_OP_READ ||
+          req->operation == UNC_OP_READ_SIBLING ||
+          req->operation == UNC_OP_READ_SIBLING_BEGIN ||
+          req->operation == UNC_OP_READ_NEXT ||
+          req->operation == UNC_OP_READ_BULK ||
+          req->operation == UNC_OP_READ_SIBLING_COUNT)) {
     return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
   }
 
@@ -2171,8 +2264,8 @@ upll_rc_t VtnFlowFilterMoMgr::ValidateMessage(IpcReqRespHeader *req,
 }
 
 upll_rc_t VtnFlowFilterMoMgr::ValidateCapability(IpcReqRespHeader *req,
-                                   ConfigKeyVal *ikey,
-                                   const char* ctrlr_name) {
+                                                 ConfigKeyVal *ikey,
+                                                 const char* ctrlr_name) {
   UPLL_FUNC_TRACE;
   if ((NULL == req) || (NULL == ikey)) {
     UPLL_LOG_DEBUG("IpcReqRespHeader/ConfigKeyval is NULL");
@@ -2195,13 +2288,7 @@ upll_rc_t VtnFlowFilterMoMgr::ValidateCapability(IpcReqRespHeader *req,
   switch (req->operation) {
     case UNC_OP_CREATE: {
       ret_code = GetCreateCapability(ctrlr_name, ikey->get_key_type(),
-                                        &max_instance_count, &max_attrs, &attrs);
-      if (ret_code && (max_instance_count != 0) &&
-          (cur_instance_count >= max_instance_count)) {
-        UPLL_LOG_DEBUG("Instance count %d exceeds %d", cur_instance_count,
-                      max_instance_count);
-        return UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
-      }
+                                     &max_instance_count, &max_attrs, &attrs);
       break;
     }
     default: {
@@ -2210,7 +2297,7 @@ upll_rc_t VtnFlowFilterMoMgr::ValidateCapability(IpcReqRespHeader *req,
                                       &max_attrs, &attrs);
       else
         ret_code = GetReadCapability(ctrlr_name, ikey->get_key_type(),
-                                      &max_attrs, &attrs);
+                                     &max_attrs, &attrs);
     }
     break;
   }
@@ -2230,10 +2317,14 @@ upll_rc_t VtnFlowFilterMoMgr::GetVtnControllerSpan(
     DalDmlIntf *dmi,
     std::list<controller_domain_t> &list_ctrlr_dom) {
   UPLL_FUNC_TRACE;
+  if (NULL == ikey) {
+    UPLL_LOG_DEBUG("iKey NULL");
+    return UPLL_RC_ERR_GENERIC;
+  }
   ConfigKeyVal *okey = NULL;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   VtnMoMgr *mgr = static_cast<VtnMoMgr*>(const_cast<MoManager*>
-                                           (GetMoManager(UNC_KT_VTN)));
+                                         (GetMoManager(UNC_KT_VTN)));
   result_code = mgr->GetChildConfigKey(okey, NULL);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("Key not supported by controller");
@@ -2258,8 +2349,10 @@ upll_rc_t VtnFlowFilterMoMgr::GetVtnControllerSpan(
 }
 
 upll_rc_t VtnFlowFilterMoMgr::UpdateMainTbl(ConfigKeyVal *vtn_ff_key,
-      unc_keytype_operation_t op, uint32_t driver_result,
-      ConfigKeyVal *nreq, DalDmlIntf *dmi) {
+                                            unc_keytype_operation_t op,
+                                            uint32_t driver_result,
+                                            ConfigKeyVal *nreq,
+                                            DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   ConfigKeyVal *ck_vtn_ff = NULL;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
@@ -2288,27 +2381,27 @@ upll_rc_t VtnFlowFilterMoMgr::UpdateMainTbl(ConfigKeyVal *vtn_ff_key,
       }
       break;
     default:
-          UPLL_LOG_DEBUG("Inalid operation");
+      UPLL_LOG_DEBUG("Inalid operation");
       return UPLL_RC_ERR_GENERIC;
   }
   DbSubOp dbop = {kOpNotRead, kOpMatchNone, kOpInOutNone};
   dbop.inoutop = kOpInOutCs | kOpInOutFlag;
   result_code = UpdateConfigDB(ck_vtn_ff, UPLL_DT_STATE, op, dmi, &dbop,
-      MAINTBL);
+                               MAINTBL);
   EnqueCfgNotification(op, UPLL_DT_RUNNING, vtn_ff_key);
   delete ck_vtn_ff;
   return result_code;
 }
 
 upll_rc_t VtnFlowFilterMoMgr::DeleteMo(IpcReqRespHeader *req,
-                                  ConfigKeyVal *ikey,
-                                  DalDmlIntf *dmi) {
+                                       ConfigKeyVal *ikey,
+                                       DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
 
   if (NULL == ikey || NULL == req) {
-  UPLL_LOG_DEBUG("Delete Operation failed:Bad request");
-  return result_code;
+    UPLL_LOG_DEBUG("Delete Operation failed:Bad request");
+    return result_code;
   }
 
   result_code = UpdateConfigDB(ikey, UPLL_DT_CANDIDATE, UNC_OP_READ, dmi);
@@ -2318,7 +2411,7 @@ upll_rc_t VtnFlowFilterMoMgr::DeleteMo(IpcReqRespHeader *req,
     return result_code;
   }
   VtnFlowFilterEntryMoMgr *mgr = reinterpret_cast<VtnFlowFilterEntryMoMgr *>
-    (const_cast<MoManager *> (GetMoManager(UNC_KT_VTN_FLOWFILTER_ENTRY)));
+      (const_cast<MoManager *> (GetMoManager(UNC_KT_VTN_FLOWFILTER_ENTRY)));
   if (NULL == mgr) {
     UPLL_LOG_DEBUG("VtnFlowFilterEntryMoMgr mgr is NULL");
     return result_code;
@@ -2329,13 +2422,13 @@ upll_rc_t VtnFlowFilterMoMgr::DeleteMo(IpcReqRespHeader *req,
     return result_code;
   }
   key_vtn_flowfilter_t *vtn_ff_key =
-    reinterpret_cast<key_vtn_flowfilter_t*>(ikey->get_key());
+      reinterpret_cast<key_vtn_flowfilter_t*>(ikey->get_key());
   key_vtn_flowfilter_entry_t *vtn_ffe_key =
-    reinterpret_cast<key_vtn_flowfilter_entry_t*>(vtn_ffe_ckv->get_key());
+      reinterpret_cast<key_vtn_flowfilter_entry_t*>(vtn_ffe_ckv->get_key());
   uuu::upll_strncpy(vtn_ffe_key->flowfilter_key.vtn_key.vtn_name,
-      vtn_ff_key->vtn_key.vtn_name, kMaxLenVtnName+1);
+                    vtn_ff_key->vtn_key.vtn_name, kMaxLenVtnName+1);
   vtn_ffe_key->flowfilter_key.input_direction =
-    vtn_ff_key->input_direction;
+      vtn_ff_key->input_direction;
   result_code = mgr->DeleteChildMo(req, vtn_ffe_ckv, dmi);
   if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
     result_code = UPLL_RC_SUCCESS;
@@ -2347,22 +2440,22 @@ upll_rc_t VtnFlowFilterMoMgr::DeleteMo(IpcReqRespHeader *req,
   }
   DbSubOp dbop = {kOpNotRead, kOpMatchNone, kOpInOutNone};
   result_code = UpdateConfigDB(ikey, UPLL_DT_CANDIDATE,
-           UNC_OP_DELETE, dmi, &dbop, MAINTBL);
+                               UNC_OP_DELETE, dmi, &dbop, MAINTBL);
   // result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)?
   //               UPLL_RC_SUCCESS:result_code;
   if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_ERROR("Delete Operation fails with %d", result_code);
-      DELETE_IF_NOT_NULL(vtn_ffe_ckv);
-      return result_code;
+    UPLL_LOG_ERROR("Delete Operation fails with %d", result_code);
+    DELETE_IF_NOT_NULL(vtn_ffe_ckv);
+    return result_code;
   }
   result_code = UpdateConfigDB(ikey, UPLL_DT_CANDIDATE,
-           UNC_OP_DELETE, dmi, &dbop, CTRLRTBL);
+                               UNC_OP_DELETE, dmi, &dbop, CTRLRTBL);
   result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)?
-                UPLL_RC_SUCCESS:result_code;
+      UPLL_RC_SUCCESS:result_code;
   if (UPLL_RC_SUCCESS != result_code) {
-     UPLL_LOG_ERROR("Delete Operation fails with %d", result_code);
-     DELETE_IF_NOT_NULL(vtn_ffe_ckv);
-     return result_code;
+    UPLL_LOG_ERROR("Delete Operation fails with %d", result_code);
+    DELETE_IF_NOT_NULL(vtn_ffe_ckv);
+    return result_code;
   }
 
   DELETE_IF_NOT_NULL(vtn_ffe_ckv);
@@ -2377,7 +2470,7 @@ upll_rc_t VtnFlowFilterMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
     UPLL_LOG_DEBUG(" Input Key is NULL");
     return UPLL_RC_ERR_GENERIC;
   }
-  DELETE_IF_NOT_NULL(okey); 
+  DELETE_IF_NOT_NULL(okey);
   unc_key_type_t ikey_type = ikey->get_key_type();
   if (ikey_type != UNC_KT_VTN_FLOWFILTER) {
     UPLL_LOG_DEBUG(" Invalid key type received. Key type - %d", ikey_type);
@@ -2404,40 +2497,31 @@ upll_rc_t VtnFlowFilterMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
 }
 
 upll_rc_t VtnFlowFilterMoMgr::DeleteChildrenPOM(
-          ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
-          DalDmlIntf *dmi) {
+    ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
 
   if (NULL == ikey || NULL == dmi) {
-  UPLL_LOG_DEBUG("Delete Operation failed:Bad request");
-  return result_code;
+    UPLL_LOG_DEBUG("Delete Operation failed:Bad request");
+    return result_code;
   }
   // Read the DB get the flowlist value and send the delete request to
   // flowlist momgr if flowlist is configured.
-
-  ConfigKeyVal *tempckv = NULL;
-  result_code = GetChildConfigKey(tempckv, ikey);
-  if (!tempckv || UPLL_RC_SUCCESS != result_code) {
-    DELETE_IF_NOT_NULL(tempckv);
-    return result_code;
-  }
   ConfigKeyVal *temp_ikey = NULL;
   result_code = GetChildConfigKey(temp_ikey, ikey);
   if (!temp_ikey || UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("GetChildConfigKey failed");
-    DELETE_IF_NOT_NULL(tempckv);
     DELETE_IF_NOT_NULL(temp_ikey);
     return result_code;
   }
   result_code = UpdateConfigDB(temp_ikey, dt_type, UNC_OP_DELETE, dmi,
-      MAINTBL);
+                               MAINTBL);
   if ((UPLL_RC_SUCCESS != result_code) &&
       (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
     UPLL_LOG_DEBUG("DeleteMo record Err in vtnpolicingmaptbl (%d)",
-        result_code);
+                   result_code);
     DELETE_IF_NOT_NULL(temp_ikey);
-    DELETE_IF_NOT_NULL(tempckv);
     return result_code;
   }
   ConfigKeyVal *ctrlr_ikey = NULL;
@@ -2446,21 +2530,18 @@ upll_rc_t VtnFlowFilterMoMgr::DeleteChildrenPOM(
     UPLL_LOG_DEBUG("GetChildConfigKey failed");
     DELETE_IF_NOT_NULL(temp_ikey);
     return result_code;
-  }  
+  }
   DbSubOp dbop = {kOpNotRead, kOpMatchNone, kOpInOutNone};
   result_code = UpdateConfigDB(ctrlr_ikey, dt_type, UNC_OP_DELETE, dmi,
-      &dbop, CTRLRTBL);
+                               &dbop, CTRLRTBL);
   UPLL_LOG_DEBUG("UpdateConfigDB failed for ctrlrtbl %d", result_code);
   if ((UPLL_RC_SUCCESS != result_code) &&
       (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
     UPLL_LOG_DEBUG("DeleteMo record Err in vtnpolicingmaptbl (%d)",
-        result_code);
+                   result_code);
     DELETE_IF_NOT_NULL(temp_ikey);
     return result_code;
   }
-  if (tempckv)
-    delete tempckv;
-  tempckv = NULL;
   if (temp_ikey)
     delete temp_ikey;
   temp_ikey = NULL;
@@ -2474,7 +2555,7 @@ upll_rc_t VtnFlowFilterMoMgr::DeleteChildrenPOM(
 upll_rc_t VtnFlowFilterMoMgr::SetValidAudit(ConfigKeyVal *&ikey) {
   UPLL_FUNC_TRACE;
   val_flowfilter_t *val = reinterpret_cast<val_flowfilter_t *>
-    (ConfigKeyVal::Malloc(sizeof(val_flowfilter_t)));
+      (ConfigKeyVal::Malloc(sizeof(val_flowfilter_t)));
   val->cs_row_status = UNC_CS_APPLIED;
   ikey->AppendCfgVal(IpctSt::kIpcStValFlowfilter, val);
   return UPLL_RC_SUCCESS;
@@ -2497,7 +2578,18 @@ upll_rc_t VtnFlowFilterMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   UPLL_LOG_TRACE(" ikey is %s", ikey->ToStrAll().c_str());
   uint8_t *controller_id = reinterpret_cast<uint8_t *>(
-                                 const_cast<char *>(ctrlr_id));
+      const_cast<char *>(ctrlr_id));
+  key_vtn_flowfilter_t *vtn_ff_key =
+      reinterpret_cast<key_vtn_flowfilter_t *>(ikey->get_key());
+  if (!vtn_ff_key) {
+    UPLL_LOG_DEBUG("vtn_ff_key NULL");
+    return UPLL_RC_ERR_GENERIC;
+  }
+  uint8_t old_vtn_name[kMaxLenVtnName + 1], new_vtn_name[kMaxLenVtnName + 1];
+  memset(old_vtn_name, 0, sizeof(old_vtn_name));
+  memset(new_vtn_name, 0, sizeof(new_vtn_name));
+  uuu::upll_strncpy(old_vtn_name, vtn_ff_key->vtn_key.vtn_name,
+                    kMaxLenVtnName+1);
 
   /* check if object is renamed in the corresponding Rename Tbl
    * if "renamed"  create the object by the UNC name.
@@ -2510,6 +2602,8 @@ upll_rc_t VtnFlowFilterMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
     return result_code;
   }
   UPLL_LOG_TRACE("ikey After GetRenamedUncKey %s", ikey->ToStrAll().c_str());
+  uuu::upll_strncpy(new_vtn_name, vtn_ff_key->vtn_key.vtn_name,
+                    kMaxLenVtnName+1);
 
   result_code = SetValidAudit(ikey);
   if (UPLL_RC_SUCCESS != result_code) {
@@ -2522,13 +2616,17 @@ upll_rc_t VtnFlowFilterMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
                                dmi, &dbop1, MAINTBL);
   if (result_code != UPLL_RC_ERR_INSTANCE_EXISTS &&
       result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-     UPLL_LOG_DEBUG("Update record Err in vtnff MainTbl(%d)",
-        result_code);
+    UPLL_LOG_DEBUG("Update record Err in vtnff MainTbl(%d)",
+                   result_code);
     return result_code;
   }
 
   if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-    result_code = UpdateConfigDB(ikey, UPLL_DT_AUDIT, UNC_OP_CREATE, dmi, MAINTBL);
+    result_code = UpdateConfigDB(ikey,
+                                 UPLL_DT_AUDIT,
+                                 UNC_OP_CREATE,
+                                 dmi,
+                                 MAINTBL);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("UpdateConfigDB Failed err_code %d", result_code);
       return result_code;
@@ -2536,64 +2634,180 @@ upll_rc_t VtnFlowFilterMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
   }
 
   std::list<controller_domain_t> list_ctrlr_dom;
-  upll_rc_t vtn_ctrlr_span_rt_code = GetVtnControllerSpan(ikey, UPLL_DT_AUDIT, dmi, list_ctrlr_dom);
-  if ((vtn_ctrlr_span_rt_code != UPLL_RC_SUCCESS) &&
-      (vtn_ctrlr_span_rt_code != UPLL_RC_ERR_NO_SUCH_INSTANCE)) {
-    UPLL_LOG_DEBUG(" GetVtnControllerSpan  error code (%d)",
-                   vtn_ctrlr_span_rt_code);
-    for (std::list<controller_domain_t>::iterator it= list_ctrlr_dom.begin();
-       it != list_ctrlr_dom.end(); ++it) {
-      free(it->ctrlr);
-      free(it->domain);
+  upll_rc_t vtn_ctrlr_span_rt_code;
+  MoMgrImpl *mgr = static_cast<MoMgrImpl*>((const_cast<MoManager*>(GetMoManager(
+                  UNC_KT_VTN))));
+  UPLL_LOG_DEBUG(" old vtn name (%s), new vtn name (%s)", old_vtn_name,
+                 new_vtn_name);
+  if (!(strcmp(reinterpret_cast<const char *>(old_vtn_name),
+               reinterpret_cast<const char *>(new_vtn_name)))) {
+    std::list<controller_domain_t> tmp_list_ctrlr_dom;
+    vtn_ctrlr_span_rt_code = GetVtnControllerSpan(ikey,
+                                                  UPLL_DT_AUDIT,
+                                                  dmi,
+                                                  tmp_list_ctrlr_dom);
+    if ((vtn_ctrlr_span_rt_code != UPLL_RC_SUCCESS) &&
+        (vtn_ctrlr_span_rt_code != UPLL_RC_ERR_NO_SUCH_INSTANCE)) {
+      UPLL_LOG_DEBUG(" GetVtnControllerSpan  error code (%d)",
+                     vtn_ctrlr_span_rt_code);
+      FREE_LIST_CTRLR(list_ctrlr_dom);
+      return vtn_ctrlr_span_rt_code;
+    }
+    if (vtn_ctrlr_span_rt_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+      ConfigKeyVal *unc_key = NULL;
+      result_code = mgr->GetChildConfigKey(unc_key, NULL);
+      if (result_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("GetChildConfigKey fail");
+        return result_code;
+      }
+      val_rename_vtn *rename_vtn_key = reinterpret_cast<val_rename_vtn*>
+          (ConfigKeyVal::Malloc(sizeof(val_rename_vtn)));
+      if (!rename_vtn_key) {
+        UPLL_LOG_DEBUG("rename_vtn_key NULL");
+        DELETE_IF_NOT_NULL(unc_key);
+        return UPLL_RC_ERR_GENERIC;
+      }
+      uuu::upll_strncpy(rename_vtn_key->new_name,
+                        old_vtn_name,
+                        (kMaxLenVtnName + 1));
+      rename_vtn_key->valid[UPLL_IDX_NEW_NAME_RVTN] = UNC_VF_VALID;
+      unc_key->AppendCfgVal(IpctSt::kIpcStValRenameVtn, rename_vtn_key);
+      DbSubOp dbop = { kOpReadSingle,
+        kOpMatchCtrlr|kOpMatchDomain,
+        kOpInOutNone };
+      std::list<controller_domain_t>::iterator it;
+
+      for (it = tmp_list_ctrlr_dom.begin();
+           it != tmp_list_ctrlr_dom.end(); it++) {
+        SET_USER_DATA_CTRLR_DOMAIN(unc_key, *it);
+        result_code = mgr->ReadConfigDB(unc_key,
+                                        UPLL_DT_RUNNING,
+                                        UNC_OP_READ,
+                                        dbop,
+                                        dmi,
+                                        RENAMETBL);
+        if ((UPLL_RC_SUCCESS != result_code) &&
+            (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
+          UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
+          DELETE_IF_NOT_NULL(unc_key);
+          mgr = NULL;
+          return result_code;
+        }
+        if (UPLL_RC_SUCCESS == result_code) {
+          continue;
+        }
+        list_ctrlr_dom.push_back(*it);
+        tmp_list_ctrlr_dom.clear();
+        break;
+      }
+      DELETE_IF_NOT_NULL(unc_key);
+    }
+  } else {
+    controller_domain_t tmp_ctrlr_dom, ctrlr_dom;
+    tmp_ctrlr_dom.ctrlr = NULL;
+    tmp_ctrlr_dom.domain = NULL;
+    ctrlr_dom.ctrlr = NULL;
+    ctrlr_dom.domain = NULL;
+    ConfigKeyVal *unc_key = NULL;
+    DbSubOp dbop = { kOpReadSingle,
+      kOpMatchCtrlr,
+      kOpInOutDomain|kOpInOutCtrlr };
+    MoMgrImpl *mgr = static_cast<MoMgrImpl*>
+        ((const_cast<MoManager*>(GetMoManager(
+                    UNC_KT_VTN))));
+    result_code = mgr->GetChildConfigKey(unc_key, NULL);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("GetChildConfigKey fail");
+      return result_code;
+    }
+    val_rename_vtn *rename_vtn_key = reinterpret_cast<val_rename_vtn*>
+        (ConfigKeyVal::Malloc(sizeof(val_rename_vtn)));
+    if (!rename_vtn_key) {
+      UPLL_LOG_DEBUG("rename_vtn_key NULL");
+      DELETE_IF_NOT_NULL(unc_key);
+      return UPLL_RC_ERR_GENERIC;
+    }
+    uuu::upll_strncpy(rename_vtn_key->new_name,
+                      old_vtn_name,
+                      (kMaxLenVtnName + 1));
+    rename_vtn_key->valid[UPLL_IDX_NEW_NAME_RVTN] = UNC_VF_VALID;
+
+    SET_USER_DATA_CTRLR(unc_key, ctrlr_id);
+    unc_key->AppendCfgVal(IpctSt::kIpcStValRenameVtn, rename_vtn_key);
+    result_code = mgr->ReadConfigDB(unc_key,
+                                    UPLL_DT_RUNNING,
+                                    UNC_OP_READ,
+                                    dbop,
+                                    dmi,
+                                    RENAMETBL);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
+      DELETE_IF_NOT_NULL(unc_key);
+      mgr = NULL;
+      return result_code;
     }
-    return vtn_ctrlr_span_rt_code;
-  }
 
+    ctrlr_dom.ctrlr = reinterpret_cast<uint8_t *>
+        (ConfigKeyVal::Malloc((kMaxLenCtrlrId + 1)));
+    ctrlr_dom.domain = reinterpret_cast<uint8_t *>
+        (ConfigKeyVal::Malloc((kMaxLenDomainId + 1)));
+
+    GET_USER_DATA_CTRLR_DOMAIN(unc_key, tmp_ctrlr_dom);
+    uuu::upll_strncpy(ctrlr_dom.ctrlr, tmp_ctrlr_dom.ctrlr,
+                      (kMaxLenCtrlrId + 1));
+    uuu::upll_strncpy(ctrlr_dom.domain, tmp_ctrlr_dom.domain,
+                      (kMaxLenDomainId + 1));
+
+    UPLL_LOG_TRACE(" ctrlr = %s, dom = %s ", ctrlr_dom.ctrlr,
+                   ctrlr_dom.domain);
+    list_ctrlr_dom.push_back(ctrlr_dom);
+    vtn_ctrlr_span_rt_code = UPLL_RC_SUCCESS;
+    DELETE_IF_NOT_NULL(unc_key);
+  }
   // create a record in CANDIDATE DB for controller Table
   if (vtn_ctrlr_span_rt_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
     result_code = UpdateControllerTable(ikey, UNC_OP_CREATE,
                                         UPLL_DT_AUDIT, dmi,
                                         list_ctrlr_dom);
-
-  }
-  for (std::list<controller_domain_t>::iterator it= list_ctrlr_dom.begin();
-      it != list_ctrlr_dom.end(); ++it) {
-    free(it->ctrlr);
-    free(it->domain);
   }
+  FREE_LIST_CTRLR(list_ctrlr_dom);
   return result_code;
 }
 
-upll_rc_t VtnFlowFilterMoMgr::CopyVtnFlowFilterControllerCkv(ConfigKeyVal *ikey,
-                               ConfigKeyVal *&okey) {
+upll_rc_t VtnFlowFilterMoMgr::CopyVtnFlowFilterControllerCkv(
+    ConfigKeyVal *ikey,
+    ConfigKeyVal *&okey) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
   // controller_domain ctrlr_dom;
   key_vtn_flowfilter_t *key_tmp =
-          reinterpret_cast<key_vtn_flowfilter_t *>(ikey->get_key());
+      reinterpret_cast<key_vtn_flowfilter_t *>(ikey->get_key());
   if (!key_tmp)
-     return result_code;
+    return result_code;
 
   key_vtn_flowfilter_t *vtn_flowfilterkey =
-        reinterpret_cast<key_vtn_flowfilter_t*>
-        (ConfigKeyVal::Malloc(sizeof(key_vtn_flowfilter_t)));
+      reinterpret_cast<key_vtn_flowfilter_t*>
+      (ConfigKeyVal::Malloc(sizeof(key_vtn_flowfilter_t)));
   memcpy(vtn_flowfilterkey, key_tmp, sizeof(key_vtn_flowfilter_t));
 
   ConfigVal *tmp1 = NULL;
-  val_vtn_flowfilter_ctrlr_t *ival = reinterpret_cast<val_vtn_flowfilter_ctrlr_t *>
-                                              (GetVal(ikey));
-  if (!ival)
-     return UPLL_RC_SUCCESS;
-
-  val_vtn_flowfilter_ctrlr_t *val_tmp = reinterpret_cast<val_vtn_flowfilter_ctrlr_t *>
-   (ConfigKeyVal::Malloc(sizeof(val_vtn_flowfilter_ctrlr_t)));
+  val_vtn_flowfilter_ctrlr_t *ival = reinterpret_cast
+      <val_vtn_flowfilter_ctrlr_t *>
+      (GetVal(ikey));
+  if (!ival) {
+    FREE_IF_NOT_NULL(vtn_flowfilterkey);  // Addressed coverity RESOURCE_LEAK
+    return UPLL_RC_SUCCESS;
+  }
+  val_vtn_flowfilter_ctrlr_t *val_tmp = reinterpret_cast
+      <val_vtn_flowfilter_ctrlr_t *>
+      (ConfigKeyVal::Malloc(sizeof(val_vtn_flowfilter_ctrlr_t)));
 
   memcpy(val_tmp, ival, sizeof(val_vtn_flowfilter_ctrlr_t));
   tmp1 = new ConfigVal(IpctSt::kIpcInvalidStNum, val_tmp);
 
-  okey = new ConfigKeyVal(UNC_KT_VTN_FLOWFILTER, IpctSt::kIpcStKeyVtnFlowfilter,
-                           vtn_flowfilterkey, tmp1);
+  okey = new ConfigKeyVal(UNC_KT_VTN_FLOWFILTER,
+                          IpctSt::kIpcStKeyVtnFlowfilter,
+                          vtn_flowfilterkey, tmp1);
   SET_USER_DATA(okey, ikey);
 
   return UPLL_RC_SUCCESS;
index 5722e1374564b47cdb3a78cb62c5cd524d8333ee..5a0fbb5cd3b77c8fa9bc6bb3ad6b795b09aaac5a 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -20,77 +20,77 @@ namespace upll {
 namespace kt_momgr {
 
 /* This file declares interfaces for keyType KT_VRT_IF_FLOWFILTER */
-/**
- * @brief  VrtIfFlowFilterMoMgr class handles all the request
- *         received from service.
- */
+  /**
  * @brief  VrtIfFlowFilterMoMgr class handles all the request
  *         received from service.
  */
 
-class VtnFlowFilterMoMgr : public MoMgrImpl {
-  private:
-    uint32_t cur_instance_count;
+  class VtnFlowFilterMoMgr : public MoMgrImpl {
+   private:
     static unc_key_type_t vtn_flowfilter_child[];
     static BindInfo vtn_flowfilter_bind_info[];
     static BindInfo vtn_flowfilter_ctrl_bind_info[];
     static BindInfo vtn_flowfilter_maintbl_rename_bindinfo[];
     static BindInfo vtn_flowfilter_ctrlrtbl_rename_bindinfo[];
     /**
-    * @Brief Validates the syntax of the specified key and value structure
-    *        for KT_VTN_FLOWFILTER/KT_VTN_FLOWFILTER_CONTROLLER keytype
-    *
-    * @param[in] IpcReqRespHeader contains first 8 fields of input request
-    *                             structure
-    * @param[in] ConfigKeyVal key and value structure.
-    *
-    * @retval UPLL_RC_SUCCESS              Successful.
-    * @retval UPLL_RC_ERR_CFG_SYNTAX       Syntax error.
-    * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE key_vtn_flowfilter is not available.
-    * @retval UPLL_RC_ERR_GENERIC          Generic failure.
-    */
+     * @Brief Validates the syntax of the specified key and value structure
+     *        for KT_VTN_FLOWFILTER/KT_VTN_FLOWFILTER_CONTROLLER keytype
+     *
+     * @param[in] IpcReqRespHeader contains first 8 fields of input request
+     *                             structure
+     * @param[in] ConfigKeyVal key and value structure.
+     *
+     * @retval UPLL_RC_SUCCESS              Successful.
+     * @retval UPLL_RC_ERR_CFG_SYNTAX       Syntax error.
+     * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE key_vtn_flowfilter is not available.
+     * @retval UPLL_RC_ERR_GENERIC          Generic failure.
+     */
     upll_rc_t ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *key);
     /**
-    * @Brief Checks if the specified key type and
-    *        associated attributes are supported on the given controller,
-    *        based on the valid flag.
-    *
-    * @param[in] val_flowfilter_controller  KT_FLOWFILTER_CONTROLLER value structure.
-    * @param[in] attrs         pointer to controller attribute
-    *
-    * @retval UPLL_RC_SUCCESS                    validation succeeded.
-    * @retval UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR Attribute NOT_SUPPORTED.
-    * @retval UPLL_RC_ERR_GENERIC                Generic failure.
-    */
+     * @Brief Checks if the specified key type and
+     *        associated attributes are supported on the given controller,
+     *        based on the valid flag.
+     *
+     * @param[in] val_flowfilter_controller  KT_FLOWFILTER_CONTROLLER value structure.
+     * @param[in] attrs         pointer to controller attribute
+     *
+     * @retval UPLL_RC_SUCCESS                    validation succeeded.
+     * @retval UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR Attribute NOT_SUPPORTED.
+     * @retval UPLL_RC_ERR_GENERIC                Generic failure.
+     */
     upll_rc_t ValVtnFlowfilterAttributeSupportCheck(
         val_flowfilter_controller_t *val_flowfilter_controller,
         const uint8_t* attrs);
     /**
-    * @Brief Checks if the specified key type(KT_VTN_FLOWFILTER_CONTROLLER) and
-    *        associated attributes are supported on the given controller,
-    *        based on the valid flag
-    *
-    * @param[in] IpcReqRespHeader  contains first 8 fields of input request
-    *                              structure
-    * @param[in] ConfigKeyVal      contains key and value structure.
-    * @param[in] ctrlr_name        controller_name
-    *
-    * @retval  UPLL_RC_SUCCESS             Validation succeeded.
-    * @retval  UPLL_RC_ERR_GENERIC         Validation failure.
-    * @retval  UPLL_RC_ERR_INVALID_OPTION1 Option1 is not valid.
-    * @retval  UPLL_RC_ERR_INVALID_OPTION2 Option2 is not valid.
-    */
+     * @Brief Checks if the specified key type(KT_VTN_FLOWFILTER_CONTROLLER) and
+     *        associated attributes are supported on the given controller,
+     *        based on the valid flag
+     *
+     * @param[in] IpcReqRespHeader  contains first 8 fields of input request
+     *                              structure
+     * @param[in] ConfigKeyVal      contains key and value structure.
+     * @param[in] ctrlr_name        controller_name
+     *
+     * @retval  UPLL_RC_SUCCESS             Validation succeeded.
+     * @retval  UPLL_RC_ERR_GENERIC         Validation failure.
+     * @retval  UPLL_RC_ERR_INVALID_OPTION1 Option1 is not valid.
+     * @retval  UPLL_RC_ERR_INVALID_OPTION2 Option2 is not valid.
+     */
     upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                                   const char* ctrlr_name = NULL);
+                                 const char* ctrlr_name = NULL);
 
     /**
-    * @Brief Validates the syntax for KT_VTN_FLOWFILTER_CONTROLLER key structure.
-    *
-    * @param[in] key_vtn_flowfilter_controller
-    *                       KT_VTN_FLOWFILTER_CONTROLLER key structure.
-    *
-    * @retval UPLL_RC_SUCCESS        validation succeeded.
-    * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
-    */
+     * @Brief Validates the syntax for KT_VTN_FLOWFILTER_CONTROLLER key structure.
+     *
+     * @param[in] key_vtn_flowfilter_controller
+     *                       KT_VTN_FLOWFILTER_CONTROLLER key structure.
+     *
+     * @retval UPLL_RC_SUCCESS        validation succeeded.
+     * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
+     */
     upll_rc_t ValidateVtnFlowfilterControllerValue(
-    val_flowfilter_controller_t *val_flowfilter_controller, uint32_t operation);
+        val_flowfilter_controller_t *val_flowfilter_controller,
+        uint32_t operation);
 
     upll_rc_t UpdateMainTbl(ConfigKeyVal *vtn_ff_key,
                             unc_keytype_operation_t op,
@@ -98,7 +98,7 @@ class VtnFlowFilterMoMgr : public MoMgrImpl {
                             ConfigKeyVal *nreq,
                             DalDmlIntf *dmi);
 
-  public:
+   public:
     VtnFlowFilterMoMgr();
 
     ~VtnFlowFilterMoMgr() {
@@ -125,7 +125,7 @@ class VtnFlowFilterMoMgr : public MoMgrImpl {
 
     upll_rc_t ReadMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
                      DalDmlIntf *dmi);
-     /**
+    /**
      * @brief  Method used for ReadSiblingMo.
      *
      * @param[in]       req     Describes RequestResponderHeaderClass.
@@ -144,7 +144,7 @@ class VtnFlowFilterMoMgr : public MoMgrImpl {
      * @brief  Method used for Validation before Merge.
      *
      * @param[in]  ikey      This Contains the pointer to the Class for which
-                             fields have to be Validated before the Merge.
+     fields have to be Validated before the Merge.
      * @param[in]  keytype   Describes the keyType Information.
      * @param[in]  dmi       Pointer to DalDmlIntf Class.
      * @param[in]  ctrlr_id  Describes the Controller Name.
@@ -176,8 +176,9 @@ class VtnFlowFilterMoMgr : public MoMgrImpl {
      **/
 
     upll_rc_t CreateCandidateMo(IpcReqRespHeader *req,
-                                                ConfigKeyVal *ikey,
-                                                DalDmlIntf *dmi);
+                                ConfigKeyVal *ikey,
+                                DalDmlIntf *dmi,
+                                bool restore_flag = false);
 
     /**
      * @brief  Method used for Update Operation.
@@ -230,9 +231,9 @@ class VtnFlowFilterMoMgr : public MoMgrImpl {
      * @brief  Method used to Duplicate the ConfigkeyVal.
      *
      * @param[out]  okey  This Contains the pointer to the Class for which
-                          fields have to be updated with values from the Request.
+     fields have to be updated with values from the Request.
      * @param[in]   req   This Contains the pointer to the Class which is
-                          used for the Duplication .
+     used for the Duplication .
 
      * @retval  UPLL_RC_SUCCESS      Successfull completion.
      * @retval  UPLL_RC_ERR_GENERIC  Failure
@@ -250,7 +251,7 @@ class VtnFlowFilterMoMgr : public MoMgrImpl {
      * @retval  UPLL_RC_SUCCESS      Validation succeeded.
      * @retval  UPLL_RC_ERR_GENERIC  Validation failure.
      * */
-     upll_rc_t ValidateAttribute(ConfigKeyVal *kval,
+    upll_rc_t ValidateAttribute(ConfigKeyVal *kval,
                                 DalDmlIntf *dmi,
                                 IpcReqRespHeader *req = NULL);
 
@@ -269,22 +270,22 @@ class VtnFlowFilterMoMgr : public MoMgrImpl {
      *
      * @retval  UPLL_RC_SUCCESS Successful Completion
      **/
-     upll_rc_t GetValid(void*val,
-                        uint64_t indx,
-                        uint8_t *&valid,
-                        upll_keytype_datatype_t dt_type,
-                        MoMgrTables tbl) {
-       UPLL_FUNC_TRACE;
-       // no valid parameter
-       valid = NULL;
-       return UPLL_RC_SUCCESS;
-     }
+    upll_rc_t GetValid(void*val,
+                       uint64_t indx,
+                       uint8_t *&valid,
+                       upll_keytype_datatype_t dt_type,
+                       MoMgrTables tbl) {
+      UPLL_FUNC_TRACE;
+      // no valid parameter
+      valid = NULL;
+      return UPLL_RC_SUCCESS;
+    }
 
     /**
      * @brief  Method used for RenamedControllerkey(PfcName).
      *
      * @param[out]  ikey         Contains the Pointer to ConfigkeyVal
-                                 Class and contains the Pfc Name.
+     Class and contains the Pfc Name.
      * @param[in]   dt_type      Describes Configiration Information.
      * @param[in]   dmi          Pointer to DalDmlIntf Class.
      * @param[in]   ctrlr__name  Describes the Controller Name.
@@ -304,9 +305,9 @@ class VtnFlowFilterMoMgr : public MoMgrImpl {
      * @brief  Method used to get the RenamedUncKey.
      *
      * @param[out]  ikey      This Contains the pointer to
-                              the Class for which fields have
-                              to be updated with values from
-                              the parent Class.
+     the Class for which fields have
+     to be updated with values from
+     the parent Class.
      * @param[in]   dt_type   Describes Configiration Information.
      * @param[in]   dmi       Pointer to DalDmlIntf Class.
      * @param[in]   ctrlr_id  Describes the Controller Name.
@@ -327,17 +328,18 @@ class VtnFlowFilterMoMgr : public MoMgrImpl {
      * @param[in/out]  ckv_running  ConfigKeyVal instance.
      * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
      * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
+     * @param[in]      dmi          Pointer to the DalDmlIntf(DB Interface)
      *
      * @retval  UPLL_RC_SUCCESS  Successfull completion.
      * @retval  UPLL_RC_GENERIC  Returned Generic Error.
      **/
-     upll_rc_t UpdateAuditConfigStatus(
-                                       unc_keytype_configstatus_t cs_status,
-                                       uuc::UpdateCtrlrPhase phase,
-                                       ConfigKeyVal *&ckv_running);
+    upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
+                                      uuc::UpdateCtrlrPhase phase,
+                                      ConfigKeyVal *&ckv_running,
+                                      DalDmlIntf *dmi);
 
-     upll_rc_t SetConsolidatedStatus(ConfigKeyVal *ikey,
-                                     DalDmlIntf *dmi);
+    upll_rc_t SetConsolidatedStatus(ConfigKeyVal *ikey,
+                                    DalDmlIntf *dmi);
     /**
      * @brief  Method used for Trasaction Vote Operation.
      *
@@ -371,7 +373,7 @@ class VtnFlowFilterMoMgr : public MoMgrImpl {
     upll_rc_t TxCopyCandidateToRunning(
         unc_key_type_t keytype, CtrlrCommitStatusList *ctrlr_commit_status,
         DalDmlIntf *dmi);
-     /**
+    /**
      * @brief  Method to Update the controller details .
      *
      * @param[out]  ck_main   Contains the Pointer to ConfigkeyVal Class
@@ -390,7 +392,9 @@ class VtnFlowFilterMoMgr : public MoMgrImpl {
                               IpcResponse *ipc_resp,
                               unc_keytype_operation_t op,
                               DalDmlIntf *dmi,
-                              controller_domain *ctrlr_dom);
+                              controller_domain *ctrlr_domi,
+                              set<string> *affected_ctrlr_set,
+                              bool *driver_resp);
     /**
      * @brief  Update controller with the new created / updated / deleted
      *         configuration between the Candidate and the Running
@@ -424,7 +428,7 @@ class VtnFlowFilterMoMgr : public MoMgrImpl {
      * @brief  Allocates Memory for the Incoming Pointer to the Class.
      *
      * @param[out]  ck_val   This Contains the pointer to the Class for
-                             which memory has to be allocated.
+     which memory has to be allocated.
      * @param[in]   dt_type  Describes Configiration Information.
      * @param[in]   tbl      Describes the Destination table Information.
      *
@@ -451,7 +455,7 @@ class VtnFlowFilterMoMgr : public MoMgrImpl {
 
     upll_rc_t ReadRecord(IpcReqRespHeader *req, ConfigKeyVal *ikey,
                          DalDmlIntf *dmi);
-     /**
+    /**
      * @Brief Method used to get the Bind Info Structure for Rename Purpose.
      *
      * @param[in]  key_type  Describes the KT Information.
@@ -462,7 +466,7 @@ class VtnFlowFilterMoMgr : public MoMgrImpl {
      * @retval  true   Successful Completion.
      * @retval  false  Failure.
      */
-     bool GetRenameKeyBindInfo(unc_key_type_t key_type,
+    bool GetRenameKeyBindInfo(unc_key_type_t key_type,
                               BindInfo *&binfo,
                               int &nattr,
                               MoMgrTables tbl);
@@ -476,7 +480,7 @@ class VtnFlowFilterMoMgr : public MoMgrImpl {
      * @retval  UPLL_RC_SUCCESS      Successfull Completion.
      * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
      */
-     upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey,
+    upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey,
                               ConfigKeyVal *ikey);
 
     /**
@@ -533,12 +537,12 @@ class VtnFlowFilterMoMgr : public MoMgrImpl {
      *
      */
     upll_rc_t UpdateControllerTableForVtn(
-                                          uint8_t* vtn_name,
-                                          controller_domain *ctrlr_dom,
-                                          unc_keytype_operation_t op,
-                                          upll_keytype_datatype_t dt_type,
-                                          DalDmlIntf *dmi,
-                                          uint8_t flag);
+        uint8_t* vtn_name,
+        controller_domain *ctrlr_dom,
+        unc_keytype_operation_t op,
+        upll_keytype_datatype_t dt_type,
+        DalDmlIntf *dmi,
+        uint8_t flag);
 
     upll_rc_t UpdateControllerTable(
         ConfigKeyVal *ikey,
@@ -564,18 +568,18 @@ class VtnFlowFilterMoMgr : public MoMgrImpl {
                        DalDmlIntf *dmi);
 
     upll_rc_t GetDiffRecord(ConfigKeyVal *ckv_running,
-                                   ConfigKeyVal *ckv_audit,
-                                   uuc::UpdateCtrlrPhase phase, MoMgrTables tbl,
-                                   ConfigKeyVal *&ckv_driver_req,
-                                   DalDmlIntf *dmi,
-                                   bool &invalid_attr);
+                            ConfigKeyVal *ckv_audit,
+                            uuc::UpdateCtrlrPhase phase, MoMgrTables tbl,
+                            ConfigKeyVal *&ckv_driver_req,
+                            DalDmlIntf *dmi,
+                            bool &invalid_attr);
 
     upll_rc_t DeleteChildrenPOM(ConfigKeyVal *ikey,
                                 upll_keytype_datatype_t dt_type,
                                 DalDmlIntf *dmi);
     upll_rc_t  SetVtnFFConsolidatedStatus(ConfigKeyVal *ikey,
                                           uint8_t *ctrlr_id,
-                                          DalDmlIntf *dmi); 
+                                          DalDmlIntf *dmi);
     upll_rc_t SetValidAudit(ConfigKeyVal *&ikey);
 
     bool FilterAttributes(void *&val1,
@@ -584,23 +588,23 @@ class VtnFlowFilterMoMgr : public MoMgrImpl {
                           unc_keytype_operation_t op);
 
     upll_rc_t CreateAuditMoImpl(ConfigKeyVal *ikey,
-                                                DalDmlIntf *dmi,
-                                                const char *ctrlr_id);
+                                DalDmlIntf *dmi,
+                                const char *ctrlr_id);
 
     upll_rc_t SetRenameFlag(ConfigKeyVal *ikey,
-                          DalDmlIntf *dmi,
-                          IpcReqRespHeader *req);
+                            DalDmlIntf *dmi,
+                            IpcReqRespHeader *req);
 
     upll_rc_t CopyVtnFlowFilterControllerCkv(ConfigKeyVal *ikey,
-                           ConfigKeyVal *&okey);
-};
+                                             ConfigKeyVal *&okey);
+  };
 
-typedef struct val_vtn_flowfilter_ctrlr {
+  typedef struct val_vtn_flowfilter_ctrlr {
     uint8_t valid[1];
-//    uint8_t input_direction;
+    //    uint8_t input_direction;
     unc_keytype_configstatus_t cs_row_status;
     uint8_t flags;
-} val_vtn_flowfilter_ctrlr_t;
+  } val_vtn_flowfilter_ctrlr_t;
 }  // namespace kt_momgr
 }  // namespace upll
 }  // namespace unc
index 48d4ae9f02359a8b790b045b6c8ee2883a241d13..f7ac642beb44aab20d8d89892dc8c2b14c846a74 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -11,6 +11,7 @@
 #include "vbr_if_momgr.hh"
 #include "vnode_momgr.hh"
 #include "vlink_momgr.hh"
+#include "vlanmap_momgr.hh"
 
 #define  NUM_KEY_COL 3
 
@@ -21,4609 +22,5821 @@ namespace upll {
 namespace kt_momgr {
 
 BindInfo VtnMoMgr::vtn_bind_info[] = { { uudst::vtn::kDbiVtnName, CFG_KEY,
-                                         offsetof(key_vtn_t, vtn_name),
-                                         uud::kDalChar, 32 },
-                                       { uudst::vtn::kDbiVtnDesc, CFG_VAL,
-                                         offsetof(val_vtn, description),
-                                         uud::kDalChar, 128 },
-                                       { uudst::vtn::kDbiVtnOperStatus, ST_VAL,
-                                         offsetof(val_vtn_st, oper_status),
-                                         uud::kDalUint8, 1 },
-                                       { uudst::vtn::kDbiVtnAlarmStatus, ST_VAL,
-                                         offsetof(val_vtn_st, alarm_status),
-                                         uud::kDalUint8, 1 },
-                                       { uudst::vtn::kDbiDownCount, ST_VAL,
-                                          offsetof(val_db_vtn_st, down_count),
-                                         uud::kDalUint32, 1 },
-                                       { uudst::vtn::kDbiVtnCreationTime,
-                                         ST_VAL,
-                                         offsetof(val_vtn_st, creation_time),
-                                         uud::kDalUint64, 1 },
-                                       { uudst::vtn::kDbiVtnLastUpdatedTime,
-                                         ST_VAL, offsetof(val_vtn_st,
-                                                          last_updated_time),
-                                         uud::kDalUint64, 1 },
-                                       { uudst::vtn::kDbiVtnFlags, CK_VAL,
-                                         offsetof(key_user_data_t, flags),
-                                         uud::kDalUint8, 1 },
-                                       { uudst::vtn::kDbiValidVtnDesc,
-                                         CFG_META_VAL, offsetof(val_vtn,
-                                                                valid[0]),
-                                         uud::kDalUint8, 1 },
-                                       { uudst::vtn::kDbiValidVtnOperStatus,
-                                         ST_META_VAL, offsetof(val_vtn_st,
-                                                               valid[0]),
-                                         uud::kDalUint8, 1 },
-                                       { uudst::vtn::kDbiValidVtnAlarmStatus,
-                                         ST_META_VAL, offsetof(val_vtn_st,
-                                                               valid[1]),
-                                         uud::kDalUint8, 1 },
-                                       { uudst::vtn::kDbiValidVtnCreationTime,
-                                         ST_META_VAL, offsetof(val_vtn_st,
-                                                               valid[2]),
-                                         uud::kDalUint8, 1 },
-                                       { uudst::vtn::
-                                         kDbiValidVtnLastUpdatedTime,
-                                         ST_META_VAL, offsetof(val_vtn_st,
-                                                               valid[3]),
-                                         uud::kDalUint8, 1 },
-                                       { uudst::vtn::kDbiVtnCsRowStatus, CS_VAL,
-                                         offsetof(val_vtn, cs_row_status),
-                                         uud::kDalChar, 1 },
-                                       { uudst::vtn::kDbiVtnCsDesc, CS_VAL,
-                                         offsetof(val_vtn, cs_attr),
-                                         uud::kDalUint8, 1 } };
+  offsetof(key_vtn_t, vtn_name),
+  uud::kDalChar, 32 },
+         { uudst::vtn::kDbiVtnDesc, CFG_VAL,
+           offsetof(val_vtn, description),
+           uud::kDalChar, 128 },
+         { uudst::vtn::kDbiVtnOperStatus, ST_VAL,
+           offsetof(val_vtn_st, oper_status),
+           uud::kDalUint8, 1 },
+         { uudst::vtn::kDbiVtnAlarmStatus, ST_VAL,
+           offsetof(val_vtn_st, alarm_status),
+           uud::kDalUint8, 1 },
+         { uudst::vtn::kDbiDownCount, ST_VAL,
+           offsetof(val_db_vtn_st, down_count),
+           uud::kDalUint32, 1 },
+         { uudst::vtn::kDbiVtnCreationTime,
+           ST_VAL,
+           offsetof(val_vtn_st, creation_time),
+           uud::kDalUint64, 1 },
+         { uudst::vtn::kDbiVtnLastUpdatedTime,
+           ST_VAL, offsetof(val_vtn_st,
+                            last_updated_time),
+           uud::kDalUint64, 1 },
+         { uudst::vtn::kDbiVtnFlags, CK_VAL,
+           offsetof(key_user_data_t, flags),
+           uud::kDalUint8, 1 },
+         { uudst::vtn::kDbiValidVtnDesc,
+           CFG_META_VAL, offsetof(val_vtn,
+                                  valid[0]),
+           uud::kDalUint8, 1 },
+         { uudst::vtn::kDbiValidVtnOperStatus,
+           ST_META_VAL, offsetof(val_vtn_st,
+                                 valid[0]),
+           uud::kDalUint8, 1 },
+         { uudst::vtn::kDbiValidVtnAlarmStatus,
+           ST_META_VAL, offsetof(val_vtn_st,
+                                 valid[1]),
+           uud::kDalUint8, 1 },
+         { uudst::vtn::kDbiValidVtnCreationTime,
+           ST_META_VAL, offsetof(val_vtn_st,
+                                 valid[2]),
+           uud::kDalUint8, 1 },
+         { uudst::vtn::
+           kDbiValidVtnLastUpdatedTime,
+           ST_META_VAL, offsetof(val_vtn_st,
+                                 valid[3]),
+           uud::kDalUint8, 1 },
+         { uudst::vtn::kDbiVtnCsRowStatus, CS_VAL,
+           offsetof(val_vtn, cs_row_status),
+           uud::kDalChar, 1 },
+         { uudst::vtn::kDbiVtnCsDesc, CS_VAL,
+           offsetof(val_vtn, cs_attr),
+           uud::kDalUint8, 1 } };
 
 BindInfo VtnMoMgr::vtn_rename_bind_info[] = { { uudst::vtn_rename::
-                                                kDbiUncVtnName,
-                                                CFG_KEY, offsetof(key_vtn,
-                                                                  vtn_name),
-                                                uud::kDalChar, 32 },
-                                              { uudst::vtn_rename::
-                                                kDbiControllerName,
-                                                CK_VAL, offsetof(
-                                                    key_user_data_t, ctrlr_id),
-                                                uud::kDalChar, 32 },
-                                              { uudst::vtn_rename::kDbiDomainId,
-                                                CK_VAL, offsetof(
-                                                    key_user_data_t, domain_id),
-                                                uud::kDalChar, 32 },
-                                              { uudst::vtn_rename::
-                                                kDbiCtrlrVtnName,
-                                                CFG_VAL, offsetof(
-                                                    val_rename_vtn, new_name),
-                                                uud::kDalChar, 32 } };
-
-BindInfo VtnMoMgr::vtn_controller_bind_info[] = {
-    { uudst::vtn_controller::kDbiVtnName, CFG_KEY, offsetof(key_vtn, vtn_name),
+  kDbiUncVtnName,
+      CFG_KEY, offsetof(key_vtn,
+                        vtn_name),
       uud::kDalChar, 32 },
-    { uudst::vtn_controller::kDbiControllerName, CK_VAL,
-      offsetof(key_user_data_t, ctrlr_id),
-      uud::kDalChar, 32 },
-    { uudst::vtn_controller::kDbiDomainId, CK_VAL, offsetof(key_user_data_t,
-                                                     domain_id),
-      uud::kDalChar, 32 },
-    { uudst::vtn_controller::kDbiOperStatus, CFG_ST_VAL, offsetof(val_vtn_ctrlr,
-                                                        oper_status),
-      uud::kDalUint8, 1 },
-    { uudst::vtn_controller::kDbiAlarmStatus, CFG_ST_VAL,
-      offsetof(val_vtn_ctrlr, alarm_status),
-      uud::kDalUint8, 1 },
-    { uudst::vtn_controller::kDbiDownCount, CFG_ST_VAL, offsetof(val_vtn_ctrlr,
-                                                       down_count),
-      uud::kDalUint32, 1 },
-    { uudst::vtn_controller::kDbiRefCount, CFG_VAL, offsetof(val_vtn_ctrlr,
-      ref_count), uud::kDalUint32, 1 },
-    { uudst::vtn_controller::kDbiValidOperStatus, CFG_ST_META_VAL,
-      offsetof(val_vtn_ctrlr, valid[0]),
-      uud::kDalUint8, 1 },
-    { uudst::vtn_controller::kDbiValidAlarmStatus, CFG_ST_META_VAL, offsetof(
-        val_vtn_ctrlr, valid[1]),
-      uud::kDalUint8, 1 },
-    { uudst::vtn_controller::kDbiCsDesc, CS_VAL, offsetof(val_vtn_ctrlr,
-      cs_attr[0]),
-      uud::kDalUint8, 1 },
-    { uudst::vtn_controller::kDbiCsRowstatus, CS_VAL, offsetof(val_vtn_ctrlr,
-                                                        cs_row_status),
-      uud::kDalUint8, 1 },
-    { uudst::vtn_controller::kDbiVtnCtrlrFlags, CK_VAL,
-      offsetof(key_user_data_t, flags),
-      uud::kDalUint8, 1 } };
-
-BindInfo VtnMoMgr::key_vtn_maintbl_bind_info[] = {
-    { uudst::vtn::kDbiVtnName, CFG_MATCH_KEY, offsetof(key_vtn_t, vtn_name),
-      uud::kDalChar, kMaxLenVtnName + 1 },
-    { uudst::vtn::kDbiVtnName, CFG_INPUT_KEY, offsetof(key_rename_vnode_info_t,
-                                                     new_unc_vtn_name),
-      uud::kDalChar, kMaxLenVtnName + 1 },
-    { uudst::vtn::kDbiVtnFlags, CK_VAL, offsetof(key_user_data_t, flags),
-      uud::kDalUint8, 1 }
-};
-
-BindInfo VtnMoMgr::key_vtn_ctrlrtbl_bind_info[] = {
-    { uudst::vtn_controller::kDbiVtnName, CFG_MATCH_KEY, offsetof(key_vtn_t,
-                                                                vtn_name),
-      uud::kDalChar, kMaxLenVtnName + 1 },
-    { uudst::vtn_controller::kDbiVtnName, CFG_INPUT_KEY, offsetof(
-        key_rename_vnode_info_t, new_unc_vtn_name),
-      uud::kDalChar, kMaxLenVtnName + 1 },
-    { uudst::vtn_controller::kDbiVtnCtrlrFlags, CK_VAL, offsetof(
-        key_user_data_t, flags),
-      uud::kDalUint8, 1 } };
-BindInfo VtnMoMgr::key_vtn_renametbl_bind_info[] = {
-    { uudst::vtn_rename::kDbiUncVtnName, CFG_MATCH_KEY, offsetof(key_vtn_t,
-                                                               vtn_name),
-      uud::kDalChar, kMaxLenVtnName + 1 },
-    { uudst::vtn_rename::kDbiUncVtnName, CFG_INPUT_KEY, offsetof(
-        key_rename_vnode_info_t, new_unc_vtn_name),
-      uud::kDalChar, kMaxLenVtnName + 1 }, };
-
-unc_key_type_t VtnMoMgr::vtn_child[] = { UNC_KT_VLINK, UNC_KT_VBRIDGE,
-                                         UNC_KT_VROUTER, UNC_KT_VUNKNOWN,
-                                         UNC_KT_VTEP_GRP,
-                                         UNC_KT_VTEP, UNC_KT_VTUNNEL,
-                                         UNC_KT_VTN_FLOWFILTER,
-                                         UNC_KT_VTN_POLICINGMAP };
-  VtnMoMgr::VtnMoMgr() : MoMgrImpl() {
-  UPLL_FUNC_TRACE;
-  ntable = MAX_MOMGR_TBLS;
-  table = new Table *[ntable];
-  table[MAINTBL] = new Table(uudst::kDbiVtnTbl, UNC_KT_VTN, vtn_bind_info,
-      IpctSt::kIpcStKeyVtn, IpctSt::kIpcStValVtn,
-      uudst::vtn::kDbiVtnNumCols);
-  table[RENAMETBL] = new Table(uudst::kDbiVtnRenameTbl, UNC_KT_VTN,
-      vtn_rename_bind_info, IpctSt::kIpcStKeyVtn, IpctSt::kIpcStValRenameVtn,
-      uudst::vtn_rename::kDbiVtnRenameNumCols);
-  table[CTRLRTBL] = new Table(uudst::kDbiVtnCtrlrTbl, UNC_KT_VTN,
-      vtn_controller_bind_info, IpctSt::kIpcStKeyVtn, IpctSt::kIpcInvalidStNum,
-      uudst::vtn_controller::kDbiVtnCtrlrNumCols);
-  nchild = sizeof(vtn_child) / sizeof(*vtn_child);
-  child = vtn_child;
-}
-
-
-/*
- * Based on the key type the bind info will pass
- */
-
-bool VtnMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type,
-                                    BindInfo *&binfo,
-                                    int &nattr,
-                                    MoMgrTables tbl) {
-  UPLL_FUNC_TRACE;
-  nattr = NUM_KEY_COL;
-  if (MAINTBL == tbl)
-    binfo = key_vtn_maintbl_bind_info;
-  if (CTRLRTBL == tbl)
-    binfo = key_vtn_ctrlrtbl_bind_info;
-  if (RENAMETBL == tbl) {
-    nattr = 2;
-    binfo = key_vtn_renametbl_bind_info;
-  }
-  return PFC_TRUE;
-}
-
-
-upll_rc_t VtnMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
-                                      DalDmlIntf *dmi,
-                                      IpcReqRespHeader *req) {
-  UPLL_FUNC_TRACE;
-  if (ikey == NULL) return UPLL_RC_ERR_GENERIC;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  if (ikey->get_key_type() != UNC_KT_VTN) return UPLL_RC_ERR_GENERIC;
-  return result_code;
-}
-
-bool VtnMoMgr::IsValidKey(void *key,
-                          uint64_t index) {
-  UPLL_FUNC_TRACE;
-  key_vtn *vtn_key = reinterpret_cast<key_vtn *>(key);
-  upll_rc_t ret_val = UPLL_RC_SUCCESS;
-
-  ret_val = ValidateKey(reinterpret_cast<char *>(vtn_key->vtn_name),
-                        kMinLenVtnName, kMaxLenVtnName);
-
-  if (ret_val != UPLL_RC_SUCCESS) {
-    UPLL_LOG_TRACE("VTN Name is not valid(%d)", ret_val);
-    return false;
-  }
-  return true;
-}
-
-upll_rc_t VtnMoMgr::GetValid(void *val,
-                             uint64_t indx,
-                             uint8_t *&valid,
-                             upll_keytype_datatype_t dt_type,
-                             MoMgrTables tbl) {
-  UPLL_FUNC_TRACE;
-  if (val == NULL) return UPLL_RC_ERR_GENERIC;
-  if (tbl == MAINTBL) {
-    switch (indx) {
-      case uudst::vtn::kDbiVtnOperStatus:
-        valid = &(reinterpret_cast<val_vtn_st *>
-            (val))->valid[UPLL_IDX_OPER_STATUS_VS];
-        break;
-      case uudst::vtn::kDbiVtnAlarmStatus:
-        valid = &(reinterpret_cast<val_vtn_st *>
-            (val))->valid[UPLL_IDX_ALARM_STATUS_VS];
-        break;
-      case uudst::vtn::kDbiDownCount:
-        valid = NULL;
-        break;
-      case uudst::vtn::kDbiVtnCreationTime:
-        UPLL_LOG_DEBUG("Valid calling fro VtnCreation time ");
-        valid = &(reinterpret_cast<val_vtn_st *>
-            (val))->valid[UPLL_IDX_CREATION_TIME_VS];
-        break;
-      case uudst::vtn::kDbiVtnLastUpdatedTime:
-        valid = &(reinterpret_cast<val_vtn_st *>
-            (val))->valid[UPLL_IDX_LAST_UPDATE_TIME_VS];
-        break;
-      case uudst::vtn::kDbiVtnDesc:
-        valid = &(reinterpret_cast<val_vtn *>
-            (val))->valid[UPLL_IDX_DESC_VTN];
-        break;
-      default:
-        return UPLL_RC_ERR_GENERIC;
-    }
-  } else if (tbl == RENAMETBL) {
-      switch (indx) {
-      case uudst::vtn_rename::kDbiCtrlrVtnName:
-         valid = &(reinterpret_cast<val_rename_vtn *>
-                 (val))->valid[UPLL_IDX_NEW_NAME_RVTN];
-         break;
-      default:
-         break;
-     }
-  } else if (tbl == CTRLRTBL) {
-    valid = (reinterpret_cast<val_vtn_ctrlr *>(val))->valid;
-    switch (indx) {
-      case uudst::vtn_controller::kDbiAlarmStatus:
-        valid = &(reinterpret_cast<val_vtn_ctrlr *>
-            (val))->valid[UPLL_IDX_ALARM_STATUS_VS];
-        break;
-      case uudst::vtn_controller::kDbiOperStatus:
-        valid = &(reinterpret_cast<val_vtn_ctrlr *>
-            (val))->valid[UPLL_IDX_OPER_STATUS_VS];
-        break;
-      case uudst::vtn_controller::kDbiDownCount:
-      case uudst::vtn_controller::kDbiRefCount:
-        valid = NULL;
-        break;
-      default:
-        return UPLL_RC_ERR_GENERIC;
-    }
-  } else {
-    valid = NULL;
-  }
-  return UPLL_RC_SUCCESS;
-}
-
-upll_rc_t VtnMoMgr::AllocVal(ConfigVal *&ck_val,
-                             upll_keytype_datatype_t dt_type,
-                             MoMgrTables tbl) {
-  void *val;  //  *ck_nxtval;
-  if (ck_val != NULL) return UPLL_RC_ERR_GENERIC;
-  switch (tbl) {
-    case MAINTBL:
-      val = ConfigKeyVal::Malloc(sizeof(val_vtn));
-      ck_val = new ConfigVal(IpctSt::kIpcStValVtn, val);
-      if (dt_type == UPLL_DT_STATE) {
-        val = ConfigKeyVal::Malloc(sizeof(val_db_vtn_st));
-        ConfigVal *ck_nxtval = new ConfigVal(IpctSt::kIpcStValVtnSt, val);
-        ck_val->AppendCfgVal(ck_nxtval);
-      }
-      break;
-    case RENAMETBL:
-      val = ConfigKeyVal::Malloc(sizeof(val_rename_vtn));
-      ck_val = new ConfigVal(IpctSt::kIpcStValRenameVtn, val);
-      break;
-    case CTRLRTBL:
-      val = ConfigKeyVal::Malloc(sizeof(val_vtn_ctrlr));
-      ck_val = new ConfigVal(IpctSt::kIpcInvalidStNum, val);
-      break;
-    default:
-      val = NULL;
-      break;
-  }
-  return UPLL_RC_SUCCESS;
-}
-
-upll_rc_t VtnMoMgr::DupConfigKeyValVtnMapping(ConfigKeyVal *&okey,
-                                              ConfigKeyVal *req) {
-  UPLL_FUNC_TRACE;
-  void *tkey = req ? (req)->get_key() : NULL;
-  if (tkey == NULL) {
-    UPLL_LOG_INFO("Input Configkeyval or key is Null");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  if (okey != NULL) {
-    UPLL_LOG_INFO("okey is Not Null");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  ConfigVal *tmp1 = NULL, *tmp = (req)->get_cfg_val();
-  val_vtn_mapping_controller_st_t *vtn_map = NULL;
-  if (tmp) {
-    val_vtn_mapping_controller_st_t *ival =
-         reinterpret_cast<val_vtn_mapping_controller_st_t *>(GetVal(req));
-    vtn_map = reinterpret_cast<val_vtn_mapping_controller_st_t *>(
-          ConfigKeyVal::Malloc(sizeof(val_vtn_mapping_controller_st_t)));
-    memcpy(reinterpret_cast<char *>(vtn_map), reinterpret_cast<char *>(ival),
-             sizeof(val_vtn_mapping_controller_st_t));
-    tmp1 = new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, vtn_map);
-  }
-  key_vtn_controller *ikey = reinterpret_cast<key_vtn_controller *>(tkey);
-  key_vtn_controller *key = reinterpret_cast<key_vtn_controller *>(
-      ConfigKeyVal::Malloc(sizeof(key_vtn_controller)));
-  memcpy(reinterpret_cast<char *>(key), reinterpret_cast<char *>(ikey),
-         sizeof(key_vtn_controller));
-  okey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
-                   IpctSt::kIpcStKeyVtnController, key, tmp1);
-  SET_USER_DATA(okey, req)
-  return UPLL_RC_SUCCESS;
-}
-
-upll_rc_t VtnMoMgr::DupConfigKeyValVtnStation(ConfigKeyVal *&okey,
-                                 ConfigKeyVal *req) {
-  UPLL_FUNC_TRACE;
-  void *tkey = req ? (req)->get_key() : NULL;
-  if (tkey == NULL) {
-    UPLL_LOG_INFO("Input Configkeyval or key is Null");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  if (okey != NULL) {
-    UPLL_LOG_INFO("okey is Not Null");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  ConfigVal *tmp1 = NULL, *tmp = req->get_cfg_val();
-  val_vtnstation_controller_st *vtnstation = NULL;
-  void *val_nxt = NULL;
-  for (; tmp ; tmp = tmp->get_next_cfg_val()) {
-    if (tmp->get_st_num() == IpctSt::kIpcStValVtnstationControllerSt) {
-      val_vtnstation_controller_st *ival =
-         reinterpret_cast<val_vtnstation_controller_st *>(GetVal(req));
-      vtnstation = reinterpret_cast<val_vtnstation_controller_st *>(
-          ConfigKeyVal::Malloc(sizeof(val_vtnstation_controller_st)));
-      memcpy(reinterpret_cast<char *>(vtnstation), reinterpret_cast<char *>
-            (ival), sizeof(val_vtnstation_controller_st));
-      if (!tmp1)
-        tmp1 = new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, vtnstation);
-    } else if (tmp->get_st_num() == IpctSt::kIpcStIpv4) {
-      val_nxt = reinterpret_cast<struct in_addr *>
-                                (ConfigKeyVal::Malloc(sizeof(struct in_addr)));
-      memcpy(val_nxt, reinterpret_cast<struct in_addr *>(tmp->get_val()),
-           sizeof(struct in_addr));
-      if (!tmp1) {
-        UPLL_LOG_ERROR("val_vtnstation_controller_st is Null");
-        ConfigKeyVal::Free(val_nxt);
-        return UPLL_RC_ERR_BAD_REQUEST;
-      }
-      tmp1->AppendCfgVal(new ConfigVal(IpctSt::kIpcStIpv4, val_nxt));
-    } else if (tmp->get_st_num() == IpctSt::kIpcStIpv6) {
-      val_nxt = reinterpret_cast<struct in6_addr* >
-                                (ConfigKeyVal::Malloc(sizeof(struct in6_addr)));
-      memcpy(val_nxt, reinterpret_cast<struct in6_addr *>(tmp->get_val()),
-           sizeof(struct in6_addr));
-      if (!tmp1) {
-        UPLL_LOG_ERROR("val_vtnstation_controller_st is Null");
-        ConfigKeyVal::Free(val_nxt);
-        return UPLL_RC_ERR_BAD_REQUEST;
-      }
-      tmp1->AppendCfgVal(new ConfigVal(IpctSt::kIpcStIpv6, val_nxt));
-    }
-  }
-  key_vtnstation_controller *ikey =
+         { uudst::vtn_rename::
+           kDbiControllerName,
+           CK_VAL, offsetof(
+               key_user_data_t, ctrlr_id),
+           uud::kDalChar, 32 },
+         { uudst::vtn_rename::kDbiDomainId,
+           CK_VAL, offsetof(
+               key_user_data_t, domain_id),
+           uud::kDalChar, 32 },
+         { uudst::vtn_rename::
+           kDbiCtrlrVtnName,
+           CFG_VAL, offsetof(
+               val_rename_vtn, new_name),
+           uud::kDalChar, 32 } };
+
+           BindInfo VtnMoMgr::vtn_controller_bind_info[] = {
+             { uudst::vtn_controller::kDbiVtnName,
+               CFG_KEY,
+               offsetof(key_vtn, vtn_name),
+               uud::kDalChar, 32 },
+             { uudst::vtn_controller::kDbiControllerName, CK_VAL,
+               offsetof(key_user_data_t, ctrlr_id),
+               uud::kDalChar, 32 },
+             { uudst::vtn_controller::kDbiDomainId,
+               CK_VAL,
+               offsetof(key_user_data_t,
+                        domain_id),
+               uud::kDalChar, 32 },
+             { uudst::vtn_controller::kDbiOperStatus,
+               CFG_ST_VAL, offsetof(val_vtn_ctrlr,
+                                    oper_status),
+               uud::kDalUint8, 1 },
+             { uudst::vtn_controller::kDbiAlarmStatus, CFG_ST_VAL,
+               offsetof(val_vtn_ctrlr, alarm_status),
+               uud::kDalUint8, 1 },
+             { uudst::vtn_controller::kDbiDownCount,
+               CFG_ST_VAL, offsetof(val_vtn_ctrlr,
+                                    down_count),
+               uud::kDalUint32, 1 },
+             { uudst::vtn_controller::kDbiRefCount,
+               CFG_VAL, offsetof(val_vtn_ctrlr,
+                                 ref_count),
+               uud::kDalUint32, 1 },
+             { uudst::vtn_controller::kDbiValidOperStatus,
+               CFG_ST_META_VAL,
+               offsetof(val_vtn_ctrlr, valid[0]),
+               uud::kDalUint8, 1 },
+             { uudst::vtn_controller::kDbiValidAlarmStatus,
+               CFG_ST_META_VAL,
+               offsetof(
+                   val_vtn_ctrlr,
+                   valid[1]),
+               uud::kDalUint8, 1 },
+             { uudst::vtn_controller::kDbiCsDesc,
+               CS_VAL, offsetof(val_vtn_ctrlr,
+                                cs_attr[0]),
+               uud::kDalUint8, 1 },
+             { uudst::vtn_controller::kDbiCsRowstatus,
+               CS_VAL, offsetof(val_vtn_ctrlr,
+                                cs_row_status),
+               uud::kDalUint8, 1 },
+             { uudst::vtn_controller::kDbiVtnCtrlrFlags,
+               CK_VAL,
+               offsetof(key_user_data_t,
+                        flags),
+               uud::kDalUint8, 1 } };
+
+           BindInfo VtnMoMgr::key_vtn_maintbl_bind_info[] = {
+             { uudst::vtn::kDbiVtnName,
+               CFG_MATCH_KEY,
+               offsetof(key_vtn_t,
+                        vtn_name),
+               uud::kDalChar, kMaxLenVtnName + 1 },
+             { uudst::vtn::kDbiVtnName,
+               CFG_INPUT_KEY,
+               offsetof(key_rename_vnode_info_t,
+                        new_unc_vtn_name),
+               uud::kDalChar, kMaxLenVtnName + 1 },
+             { uudst::vtn::kDbiVtnFlags,
+               CK_VAL,
+               offsetof(key_user_data_t, flags),
+               uud::kDalUint8, 1 }
+           };
+
+           BindInfo VtnMoMgr::key_vtn_ctrlrtbl_bind_info[] = {
+             { uudst::vtn_controller::kDbiVtnName,
+               CFG_MATCH_KEY,
+               offsetof(key_vtn_t,
+                        vtn_name),
+               uud::kDalChar, kMaxLenVtnName + 1 },
+             { uudst::vtn_controller::kDbiVtnName, CFG_INPUT_KEY, offsetof(
+                     key_rename_vnode_info_t, new_unc_vtn_name),
+             uud::kDalChar, kMaxLenVtnName + 1 },
+             { uudst::vtn_controller::kDbiVtnCtrlrFlags, CK_VAL, offsetof(
+                     key_user_data_t, flags),
+             uud::kDalUint8, 1 } };
+           BindInfo VtnMoMgr::key_vtn_renametbl_bind_info[] = {
+             { uudst::vtn_rename::kDbiUncVtnName,
+               CFG_MATCH_KEY, offsetof(key_vtn_t,
+                                       vtn_name),
+               uud::kDalChar, kMaxLenVtnName + 1 },
+             { uudst::vtn_rename::kDbiUncVtnName, CFG_INPUT_KEY, offsetof(
+                     key_rename_vnode_info_t, new_unc_vtn_name),
+             uud::kDalChar, kMaxLenVtnName + 1 }, };
+
+           unc_key_type_t VtnMoMgr::vtn_child[] = { UNC_KT_VBRIDGE,
+             UNC_KT_VROUTER, UNC_KT_VUNKNOWN,
+             /* For restore case: keeping VTEP before VTEP_GRP */
+             UNC_KT_VTEP, UNC_KT_VTEP_GRP,
+             UNC_KT_VTUNNEL,
+             UNC_KT_VLINK,
+             UNC_KT_VTN_FLOWFILTER,
+             UNC_KT_VTN_POLICINGMAP };
+           VtnMoMgr::VtnMoMgr() : MoMgrImpl() {
+             UPLL_FUNC_TRACE;
+             ntable = MAX_MOMGR_TBLS;
+             table = new Table *[ntable];
+             table[MAINTBL] = new Table(uudst::kDbiVtnTbl,
+                                        UNC_KT_VTN,
+                                        vtn_bind_info,
+                                        IpctSt::kIpcStKeyVtn,
+                                        IpctSt::kIpcStValVtn,
+                                        uudst::vtn::kDbiVtnNumCols);
+             table[RENAMETBL] = new Table(
+                 uudst::kDbiVtnRenameTbl,
+                 UNC_KT_VTN,
+                 vtn_rename_bind_info,
+                 IpctSt::kIpcStKeyVtn,
+                 IpctSt::kIpcStValRenameVtn,
+                 uudst::vtn_rename::kDbiVtnRenameNumCols);
+             table[CTRLRTBL] = new Table(
+                 uudst::kDbiVtnCtrlrTbl, UNC_KT_VTN,
+                 vtn_controller_bind_info,
+                 IpctSt::kIpcStKeyVtn,
+                 IpctSt::kIpcInvalidStNum,
+                 uudst::vtn_controller::kDbiVtnCtrlrNumCols);
+             nchild = sizeof(vtn_child) / sizeof(*vtn_child);
+             child = vtn_child;
+           }
+
+
+           /*
+            * Based on the key type the bind info will pass
+            */
+
+           bool VtnMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type,
+                                               BindInfo *&binfo,
+                                               int &nattr,
+                                               MoMgrTables tbl) {
+             UPLL_FUNC_TRACE;
+             nattr = NUM_KEY_COL;
+             if (MAINTBL == tbl)
+               binfo = key_vtn_maintbl_bind_info;
+             if (CTRLRTBL == tbl)
+               binfo = key_vtn_ctrlrtbl_bind_info;
+             if (RENAMETBL == tbl) {
+              nattr = 2;
+               binfo = key_vtn_renametbl_bind_info;
+             }
+             return PFC_TRUE;
+           }
+
+
+           upll_rc_t VtnMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
+                                                 DalDmlIntf *dmi,
+                                                 IpcReqRespHeader *req) {
+             UPLL_FUNC_TRACE;
+             if (ikey == NULL) return UPLL_RC_ERR_GENERIC;
+             upll_rc_t result_code = UPLL_RC_SUCCESS;
+             if (ikey->get_key_type() != UNC_KT_VTN) return UPLL_RC_ERR_GENERIC;
+             return result_code;
+           }
+
+           bool VtnMoMgr::IsValidKey(void *key,
+                                     uint64_t index) {
+             UPLL_FUNC_TRACE;
+             key_vtn *vtn_key = reinterpret_cast<key_vtn *>(key);
+             upll_rc_t ret_val = UPLL_RC_SUCCESS;
+
+             switch (index) {
+               case uudst::vtn::kDbiVtnName:
+               case uudst::vtn_rename::kDbiUncVtnName:
+                 ret_val = ValidateKey(
+                     reinterpret_cast<char *>(vtn_key->vtn_name),
+                     kMinLenVtnName, kMaxLenVtnName);
+                 break;
+               default:
+                 ret_val = UPLL_RC_ERR_GENERIC;
+             }
+
+             if (ret_val != UPLL_RC_SUCCESS) {
+               UPLL_LOG_TRACE("index %"PFC_PFMT_u64" is not valid(%d)",
+                              index,
+                              ret_val);
+               return false;
+             }
+             return true;
+           }
+
+           upll_rc_t VtnMoMgr::GetValid(void *val,
+                                        uint64_t indx,
+                                        uint8_t *&valid,
+                                        upll_keytype_datatype_t dt_type,
+                                        MoMgrTables tbl) {
+             UPLL_FUNC_TRACE;
+             if (val == NULL) return UPLL_RC_ERR_GENERIC;
+             if (tbl == MAINTBL) {
+               switch (indx) {
+                 case uudst::vtn::kDbiVtnOperStatus:
+                   valid = &(reinterpret_cast<val_vtn_st *>
+                             (val))->valid[UPLL_IDX_OPER_STATUS_VS];
+                   break;
+                 case uudst::vtn::kDbiVtnAlarmStatus:
+                   valid = &(reinterpret_cast<val_vtn_st *>
+                             (val))->valid[UPLL_IDX_ALARM_STATUS_VS];
+                   break;
+                 case uudst::vtn::kDbiDownCount:
+                   valid = NULL;
+                   break;
+                 case uudst::vtn::kDbiVtnCreationTime:
+                   UPLL_LOG_DEBUG("Valid calling fro VtnCreation time ");
+                   valid = &(reinterpret_cast<val_vtn_st *>
+                             (val))->valid[UPLL_IDX_CREATION_TIME_VS];
+                   break;
+                 case uudst::vtn::kDbiVtnLastUpdatedTime:
+                   valid = &(reinterpret_cast<val_vtn_st *>
+                             (val))->valid[UPLL_IDX_LAST_UPDATE_TIME_VS];
+                   break;
+                 case uudst::vtn::kDbiVtnDesc:
+                   valid = &(reinterpret_cast<val_vtn *>
+                             (val))->valid[UPLL_IDX_DESC_VTN];
+                   break;
+                 default:
+                   return UPLL_RC_ERR_GENERIC;
+               }
+             } else if (tbl == RENAMETBL) {
+               switch (indx) {
+                 case uudst::vtn_rename::kDbiCtrlrVtnName:
+                   valid = &(reinterpret_cast<val_rename_vtn *>
+                             (val))->valid[UPLL_IDX_NEW_NAME_RVTN];
+                   break;
+                 default:
+                   break;
+               }
+             } else if (tbl == CTRLRTBL) {
+               valid = (reinterpret_cast<val_vtn_ctrlr *>(val))->valid;
+               switch (indx) {
+                 case uudst::vtn_controller::kDbiAlarmStatus:
+                   valid = &(reinterpret_cast<val_vtn_ctrlr *>
+                             (val))->valid[UPLL_IDX_ALARM_STATUS_VS];
+                   break;
+                 case uudst::vtn_controller::kDbiOperStatus:
+                   valid = &(reinterpret_cast<val_vtn_ctrlr *>
+                             (val))->valid[UPLL_IDX_OPER_STATUS_VS];
+                   break;
+                 case uudst::vtn_controller::kDbiDownCount:
+                 case uudst::vtn_controller::kDbiRefCount:
+                   valid = NULL;
+                   break;
+                 default:
+                   return UPLL_RC_ERR_GENERIC;
+               }
+             } else {
+               valid = NULL;
+             }
+             return UPLL_RC_SUCCESS;
+           }
+
+           upll_rc_t VtnMoMgr::AllocVal(ConfigVal *&ck_val,
+                                        upll_keytype_datatype_t dt_type,
+                                        MoMgrTables tbl) {
+             void *val;  //   *ck_nxtval;
+             if (ck_val != NULL) return UPLL_RC_ERR_GENERIC;
+             switch (tbl) {
+               case MAINTBL:
+                 val = ConfigKeyVal::Malloc(sizeof(val_vtn));
+                 ck_val = new ConfigVal(IpctSt::kIpcStValVtn, val);
+                 if (dt_type == UPLL_DT_STATE) {
+                   val = ConfigKeyVal::Malloc(sizeof(val_db_vtn_st));
+                   ConfigVal *ck_nxtval = new ConfigVal(IpctSt::kIpcStValVtnSt,
+                                                        val);
+                   ck_val->AppendCfgVal(ck_nxtval);
+                 }
+                 break;
+               case RENAMETBL:
+                 val = ConfigKeyVal::Malloc(sizeof(val_rename_vtn));
+                 ck_val = new ConfigVal(IpctSt::kIpcStValRenameVtn, val);
+                 break;
+               case CTRLRTBL:
+                 val = ConfigKeyVal::Malloc(sizeof(val_vtn_ctrlr));
+                 ck_val = new ConfigVal(IpctSt::kIpcInvalidStNum, val);
+                 break;
+               default:
+                 val = NULL;
+                 break;
+             }
+             return UPLL_RC_SUCCESS;
+           }
+
+           upll_rc_t VtnMoMgr::DupConfigKeyValVtnMapping(ConfigKeyVal *&okey,
+                                                         ConfigKeyVal *req) {
+             UPLL_FUNC_TRACE;
+             void *tkey = req ? (req)->get_key() : NULL;
+             if (tkey == NULL) {
+               UPLL_LOG_INFO("Input Configkeyval or key is Null");
+               return UPLL_RC_ERR_GENERIC;
+             }
+             if (okey != NULL) {
+               UPLL_LOG_INFO("okey is Not Null");
+               return UPLL_RC_ERR_GENERIC;
+             }
+             ConfigVal *tmp1 = NULL, *tmp = (req)->get_cfg_val();
+             val_vtn_mapping_controller_st_t *vtn_map = NULL;
+             if (tmp) {
+               val_vtn_mapping_controller_st_t *ival =
+                   reinterpret_cast<val_vtn_mapping_controller_st_t *>
+                   (GetVal(req));
+               vtn_map = reinterpret_cast<val_vtn_mapping_controller_st_t *>(
+                   ConfigKeyVal::Malloc(sizeof
+                                        (val_vtn_mapping_controller_st_t)));
+               memcpy(reinterpret_cast<char *>(vtn_map),
+                      reinterpret_cast<char *>(ival),
+                      sizeof(val_vtn_mapping_controller_st_t));
+               tmp1 = new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt,
+                                    vtn_map);
+             }
+             key_vtn_controller *ikey =
+                 reinterpret_cast<key_vtn_controller *>(tkey);
+             key_vtn_controller *key = reinterpret_cast<key_vtn_controller *>(
+                 ConfigKeyVal::Malloc(sizeof(key_vtn_controller)));
+             memcpy(reinterpret_cast<char *>(key),
+                    reinterpret_cast<char *>(ikey),
+                    sizeof(key_vtn_controller));
+             okey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+                                     IpctSt::kIpcStKeyVtnController,
+                                     key,
+                                     tmp1);
+             SET_USER_DATA(okey, req)
+                 return UPLL_RC_SUCCESS;
+           }
+
+           upll_rc_t VtnMoMgr::DupConfigKeyValVtnStation(ConfigKeyVal *&okey,
+                                                         ConfigKeyVal *req) {
+             UPLL_FUNC_TRACE;
+             void *tkey = req ? (req)->get_key() : NULL;
+             if (tkey == NULL) {
+               UPLL_LOG_INFO("Input Configkeyval or key is Null");
+               return UPLL_RC_ERR_GENERIC;
+             }
+             if (okey != NULL) {
+               UPLL_LOG_INFO("okey is Not Null");
+               return UPLL_RC_ERR_GENERIC;
+             }
+             ConfigVal *tmp1 = NULL, *tmp = req->get_cfg_val();
+             val_vtnstation_controller_st *vtnstation = NULL;
+             void *val_nxt = NULL;
+             for (; tmp ; tmp = tmp->get_next_cfg_val()) {
+               if (tmp->get_st_num() ==
+                   IpctSt::kIpcStValVtnstationControllerSt) {
+                 val_vtnstation_controller_st *ival =
+                     reinterpret_cast<val_vtnstation_controller_st *>
+                     (GetVal(req));
+                 vtnstation = reinterpret_cast
+                     <val_vtnstation_controller_st *>(
+                     ConfigKeyVal::Malloc(sizeof
+                                          (val_vtnstation_controller_st)));
+                 memcpy(reinterpret_cast<char *>(vtnstation),
+                        reinterpret_cast<char *>
+                        (ival), sizeof(val_vtnstation_controller_st));
+                 if (!tmp1) {
+                   tmp1 = new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt,
+                                        vtnstation);
+                 } else {
+                   UPLL_LOG_ERROR("val_vtnstation_controller_st is not Null");
+                   ConfigKeyVal::Free(vtnstation);
+                   delete tmp1;
+                   return UPLL_RC_ERR_BAD_REQUEST;
+                 }
+               } else if (tmp->get_st_num() == IpctSt::kIpcStIpv4) {
+                 val_nxt = reinterpret_cast<struct in_addr *>
+                     (ConfigKeyVal::Malloc(sizeof(struct in_addr)));
+                 memcpy(val_nxt, reinterpret_cast
+                        <struct in_addr *>(tmp->get_val()),
+                        sizeof(struct in_addr));
+                 if (!tmp1) {
+                   UPLL_LOG_ERROR("val_vtnstation_controller_st is Null");
+                   ConfigKeyVal::Free(val_nxt);
+                   return UPLL_RC_ERR_BAD_REQUEST;
+                 }
+                 tmp1->AppendCfgVal(new ConfigVal(IpctSt::kIpcStIpv4,
+                                                  val_nxt));
+               } else if (tmp->get_st_num() == IpctSt::kIpcStIpv6) {
+                 val_nxt = reinterpret_cast<struct in6_addr* >
+                     (ConfigKeyVal::Malloc(sizeof(struct in6_addr)));
+                 memcpy(val_nxt, reinterpret_cast<struct in6_addr *>
+                        (tmp->get_val()),
+                        sizeof(struct in6_addr));
+                 if (!tmp1) {
+                   UPLL_LOG_ERROR("val_vtnstation_controller_st is Null");
+                   ConfigKeyVal::Free(val_nxt);
+                   return UPLL_RC_ERR_BAD_REQUEST;
+                 }
+                 tmp1->AppendCfgVal(new ConfigVal(IpctSt::kIpcStIpv6, val_nxt));
+               }
+             }
+             key_vtnstation_controller *ikey =
                  reinterpret_cast<key_vtnstation_controller *>(tkey);
-  key_vtnstation_controller *key =
+             key_vtnstation_controller *key =
                  reinterpret_cast<key_vtnstation_controller *>
                  (ConfigKeyVal::Malloc(sizeof(key_vtnstation_controller)));
-  memcpy(reinterpret_cast<char *>(key), reinterpret_cast<char *>(ikey),
-         sizeof(key_vtnstation_controller));
-  okey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
-                   IpctSt::kIpcStKeyVtnstationController, key, tmp1);
-  return UPLL_RC_SUCCESS;
-}
-
-upll_rc_t VtnMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
-                                    ConfigKeyVal *&req,
-                                    MoMgrTables tbl) {
-  UPLL_FUNC_TRACE;
-  if (req == NULL) return UPLL_RC_ERR_GENERIC;
-  if (okey != NULL) return UPLL_RC_ERR_GENERIC;
-  if (req->get_key_type() != UNC_KT_VTN) return UPLL_RC_ERR_GENERIC;
-  ConfigVal *tmp1 = NULL, *tmp = (req)->get_cfg_val();
-  val_vtn *vtn_val = NULL;
-  val_rename_vtn *rename_val = NULL;
-  val_vtn_ctrlr *ctrlr_val = NULL;
-
-  if (tmp) {
-    if (tbl == MAINTBL) {
-      val_vtn *ival = reinterpret_cast<val_vtn *>(GetVal(req));
-
-      vtn_val = reinterpret_cast<val_vtn *>(
-          ConfigKeyVal::Malloc(sizeof(val_vtn)));
-      memcpy(reinterpret_cast<char *>(vtn_val), reinterpret_cast<char *>(ival),
-             sizeof(val_vtn));
-      tmp1 = new ConfigVal(IpctSt::kIpcStValVtn, vtn_val);
-    } else if (tbl == RENAMETBL) {
-      val_rename_vtn *ival = reinterpret_cast<val_rename_vtn *>(GetVal(req));
-      rename_val = reinterpret_cast<val_rename_vtn *>(
-          ConfigKeyVal::Malloc(sizeof(val_rename_vtn)));
-      memcpy(reinterpret_cast<char *>(rename_val),
-             reinterpret_cast<char *>(ival), sizeof(val_rename_vtn));
-      tmp1 = new ConfigVal(IpctSt::kIpcStValRenameVtn, rename_val);
-    } else if (tbl ==  CTRLRTBL) {
-      val_vtn_ctrlr *ival = reinterpret_cast<val_vtn_ctrlr *>(GetVal(req));
-      ctrlr_val = reinterpret_cast<val_vtn_ctrlr *>(
-          ConfigKeyVal::Malloc(sizeof(val_vtn_ctrlr)));
-      memcpy(reinterpret_cast<char *>(ctrlr_val),
-             reinterpret_cast<char *>(ival), sizeof(val_vtn_ctrlr));
-      tmp1 = new ConfigVal(IpctSt::kIpcInvalidStNum, ctrlr_val);
-    }
-    if (!tmp1) {
-      UPLL_LOG_ERROR("Memory Allocation failed for tmp1");
-      FREE_IF_NOT_NULL(vtn_val);
-      FREE_IF_NOT_NULL(rename_val);
-      FREE_IF_NOT_NULL(ctrlr_val);
-      return UPLL_RC_ERR_GENERIC;
-    }
-    //  error user data nneds to be copied
-    SET_USER_DATA(tmp1, tmp)
-    tmp = tmp->get_next_cfg_val();
-  };
-  if (tmp) {
-    if (tbl == MAINTBL) {
-      val_db_vtn_st *ival = reinterpret_cast<val_db_vtn_st *>(tmp->get_val());
-      val_db_vtn_st *val_vtn = reinterpret_cast<val_db_vtn_st *>(
-          ConfigKeyVal::Malloc(sizeof(val_db_vtn_st)));
-      memset(reinterpret_cast<void *>(val_vtn), 0, sizeof(val_db_vtn_st));
-      memcpy(reinterpret_cast<char *>(val_vtn), reinterpret_cast<char *>(ival),
-             sizeof(val_db_vtn_st));
-      ConfigVal *tmp2 = new ConfigVal(IpctSt::kIpcStValVtnSt, val_vtn);
-      tmp1->AppendCfgVal(tmp2);
-    }
-  };
-  void *tkey = (req != NULL) ? (req)->get_key() : NULL;
-  key_vtn *ikey = reinterpret_cast<key_vtn *>(tkey);
-  key_vtn *vtn_key = reinterpret_cast<key_vtn *>(
-      ConfigKeyVal::Malloc(sizeof(key_vtn)));
-  memcpy(reinterpret_cast<char *>(vtn_key), reinterpret_cast<char *>(ikey),
-         sizeof(key_vtn));
-  okey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, vtn_key, tmp1);
-  SET_USER_DATA(okey, req)
-  return UPLL_RC_SUCCESS;
-}
-
-upll_rc_t VtnMoMgr::AdaptValToVtnService(ConfigKeyVal *ikey) {
-  UPLL_FUNC_TRACE;
-  if (!ikey) {
-    UPLL_LOG_DEBUG("Invalid ikey");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  while (ikey) {
-    ConfigVal *cval = ikey->get_cfg_val();
-    if (!cval) {
-      UPLL_LOG_DEBUG("Config Val is Null");
-      return UPLL_RC_ERR_GENERIC;
-    }
-    while (cval) {
-      if (IpctSt::kIpcStValVtnSt == cval->get_st_num()) {
-        val_vtn_st *vtn_val_st = reinterpret_cast<val_vtn_st *>
-                         (ConfigKeyVal::Malloc(sizeof(val_vtn_st)));
-        val_db_vtn_st *db_vtn_val_st = reinterpret_cast<val_db_vtn_st *>
-                                     (cval->get_val());
-        if (!db_vtn_val_st) {
-          FREE_IF_NOT_NULL(vtn_val_st);
-          return UPLL_RC_ERR_GENERIC;
-        }
-        memcpy(vtn_val_st, &(db_vtn_val_st->vtn_val_st),
-               sizeof(val_vtn_st));
-        cval->SetVal(IpctSt::kIpcStValVtnSt, vtn_val_st);
-      }
-      cval = cval->get_next_cfg_val();
-    }
-    ikey = ikey->get_next_cfg_key_val();
-  }
-  UPLL_LOG_DEBUG("Exiting VtnMoMgr::AdaptValToVtnService");
-  return UPLL_RC_SUCCESS;
-}
-
-upll_rc_t VtnMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
-                                      ConfigKeyVal *parent_key) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  key_vtn_t *vtn_key = NULL;
-  if (okey && okey->get_key()) {
-    vtn_key = reinterpret_cast<key_vtn_t *>(
-                    okey->get_key());
-  } else {
-    vtn_key = reinterpret_cast<key_vtn_t *>(
-      ConfigKeyVal::Malloc(sizeof(key_vtn)));
-  }
-  void *pkey;
-  if (parent_key == NULL) {
-    if (!okey) 
-      okey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, vtn_key, NULL);
-    else if (okey->get_key() != vtn_key)
-      okey->SetKey(IpctSt::kIpcStKeyVtn,vtn_key);
-    return UPLL_RC_SUCCESS;
-  } else {
-    pkey = parent_key->get_key();
-  }
-  if (!pkey) {
-    if (!okey || !(okey->get_key()))
-      ConfigKeyVal::Free(vtn_key);
-    return UPLL_RC_ERR_GENERIC;
-  }
-  switch (parent_key->get_key_type()) {
-    case UNC_KT_ROOT:
-      break;
-    case UNC_KT_VTN:
-      uuu::upll_strncpy(vtn_key->vtn_name,
-          reinterpret_cast<key_vtn *>(pkey)->vtn_name,
-          (kMaxLenVtnName+1));
-      break;
-    case UNC_KT_VTN_MAPPING_CONTROLLER:
-      uuu::upll_strncpy(vtn_key->vtn_name,
-          reinterpret_cast<key_vtn_controller *>(pkey)->vtn_key.vtn_name,
-          (kMaxLenVtnName+1));
-      break;
-    default:
-      if (!okey || !(okey->get_key())) {
-        ConfigKeyVal::Free(vtn_key);
-      }
-      return UPLL_RC_ERR_GENERIC;
-  }
-  if (!okey)
-    okey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, vtn_key, NULL);
-  else if (okey->get_key() != vtn_key)
-    okey->SetKey(IpctSt::kIpcStKeyVtn, vtn_key);
-  SET_USER_DATA(okey, parent_key);
-  return result_code;
-}
-
-upll_rc_t VtnMoMgr::GetRenamedUncKey(ConfigKeyVal *ctrlr_key,
-                                     upll_keytype_datatype_t dt_type,
-                                     DalDmlIntf *dmi,
-                                     uint8_t *ctrlr_id) {
-  UPLL_FUNC_TRACE;
-  if (!ctrlr_key || !(ctrlr_key->get_key()) ) return UPLL_RC_ERR_GENERIC;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  key_vtn *ctrlr_vtn_key = reinterpret_cast<key_vtn *>(ctrlr_key->get_key());
-  DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutNone };
-  ConfigKeyVal *unc_key = NULL;
-  val_rename_vtn *rename_vtn = reinterpret_cast<val_rename_vtn *>(
-      ConfigKeyVal::Malloc(sizeof(val_rename_vtn)));
-  uuu::upll_strncpy(reinterpret_cast<char*>(rename_vtn->new_name),
-                  reinterpret_cast<char*>(ctrlr_vtn_key->vtn_name),
-                  kMaxLenVtnName+1);
-  rename_vtn->valid[UPLL_IDX_NEW_NAME_RVTN] = UNC_VF_VALID;
-  result_code = GetChildConfigKey(unc_key, NULL);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG(" GetChildConfigKey Failed with result_code %d",
-                        result_code);
-    ConfigKeyVal::Free(rename_vtn);
-    return UPLL_RC_ERR_GENERIC;
-  }
-  unc_key->AppendCfgVal(IpctSt::kIpcStValRenameVtn, rename_vtn);
-  if (ctrlr_id) {
-    SET_USER_DATA_CTRLR(unc_key, ctrlr_id);
-  } else  {
-    dbop.matchop = kOpMatchNone;
-  }
-  result_code = ReadConfigDB(unc_key, dt_type, UNC_OP_READ, dbop, dmi,
-                             RENAMETBL);
-  if (result_code == UPLL_RC_SUCCESS) {
-    key_vtn *vtn_key = reinterpret_cast<key_vtn *>(unc_key->get_key());
-    if (strcmp(reinterpret_cast<char*>(ctrlr_vtn_key->vtn_name),
-               reinterpret_cast<char*>(vtn_key->vtn_name))) {
-      uuu::upll_strncpy(ctrlr_vtn_key->vtn_name,
-              vtn_key->vtn_name,
-              (kMaxLenVtnName+ 1));
-      SET_USER_DATA_FLAGS(ctrlr_key, VTN_RENAME);
-    }
-  }
-  delete unc_key;
-  return result_code;
-}
-
-upll_rc_t VtnMoMgr::GetRenamedControllerKey(ConfigKeyVal *ikey,
-                              upll_keytype_datatype_t dt_type,
-                              DalDmlIntf *dmi,
-                              controller_domain *ctrlr_dom) {
-    UPLL_FUNC_TRACE;
-    upll_rc_t result_code = UPLL_RC_SUCCESS;
-    ConfigKeyVal *okey = NULL;
-    uint8_t rename = 0;
-    key_vtn *ctrlr_key = NULL;
-    result_code = IsRenamed(ikey, dt_type, dmi, rename);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("IsRenamed failed. Result : %d", result_code);
-      return result_code;
-    }
-    if (!rename) return UPLL_RC_SUCCESS;
-
-    /* vtn renamed */
-    if (rename & 0x01) {
-      GET_USER_DATA_CTRLR_DOMAIN(ikey, *ctrlr_dom);
-      if (!ctrlr_dom->ctrlr || !ctrlr_dom->domain) {
-        UPLL_LOG_ERROR("Illegal controller domain");
-        return UPLL_RC_ERR_GENERIC;
-      }
-      result_code = GetChildConfigKey(okey, ikey);
-      if (result_code != UPLL_RC_SUCCESS || !okey) {
-        UPLL_LOG_DEBUG("GetChildConfigKey failed");
-        return result_code;
-      }
-      // SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
-      DbSubOp dbop = {kOpReadSingle, kOpMatchCtrlr | kOpMatchDomain,
-        kOpInOutFlag};
-      result_code = ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop, dmi,
-                       RENAMETBL);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("ReadConfigDB failed with result_code %d",
-                           result_code);
-        return result_code;
-      }
-      val_rename_vtn *rename_val = reinterpret_cast<val_rename_vtn *>
-      (GetVal(okey));
-      if (!rename_val) {
-         UPLL_LOG_DEBUG("Rename Val is Empty");
-         return UPLL_RC_ERR_GENERIC;
-      }
-      ctrlr_key = reinterpret_cast<key_vtn *>(ikey->get_key());
-      if (!ctrlr_key) return UPLL_RC_ERR_GENERIC;
-      memset(ctrlr_key, 0, sizeof(key_vtn));
-      uuu::upll_strncpy(ctrlr_key->vtn_name, rename_val->new_name,
-                        (kMaxLenVtnName + 1));
-      SET_USER_DATA_FLAGS(ikey, VTN_RENAME);
-      delete okey;
-    }
-    return UPLL_RC_SUCCESS;
-}
-
-upll_rc_t
-VtnMoMgr::GetControllerDomainSpan(ConfigKeyVal *ikey,
-    upll_keytype_datatype_t dt_type,
-    DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code;
-  DbSubOp dbop = {kOpReadMultiple, kOpMatchNone,
-    kOpInOutCtrlr|kOpInOutDomain};
-  result_code = ReadConfigDB(ikey, dt_type, UNC_OP_READ, dbop, dmi, CTRLRTBL);
-  return result_code;
-}
-
-upll_rc_t
-VtnMoMgr::GetControllerDomainSpan(ConfigKeyVal *ikey,
-    upll_keytype_datatype_t dt_type,
-    DalDmlIntf *dmi,
-    std::list<controller_domain_t> &list_ctrlr_dom) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code;
-  ConfigKeyVal *tmp_ikey = NULL;
-  controller_domain ctrlr_dom;
-  ctrlr_dom.ctrlr = NULL;
-  ctrlr_dom.domain = NULL;
-  DbSubOp dbop = {kOpReadMultiple, kOpMatchNone,
-    kOpInOutCtrlr|kOpInOutDomain};
-  result_code = ReadConfigDB(ikey, dt_type, UNC_OP_READ, dbop, dmi, CTRLRTBL);
-  if ((result_code != UPLL_RC_SUCCESS) &&
-      (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE)) {
-    UPLL_LOG_DEBUG("Error in ReadConfigDb (%d)", result_code);
-    return result_code;
-  }
-  if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-    UPLL_LOG_DEBUG(" Vtn not yet associated with controller ");
-    return result_code;
-  }
-
-  tmp_ikey = ikey;
-  while (NULL != tmp_ikey) {
-    ctrlr_dom.ctrlr = reinterpret_cast<uint8_t *>
-        (ConfigKeyVal::Malloc((kMaxLenCtrlrId + 1)));
-    ctrlr_dom.domain = reinterpret_cast<uint8_t *>
-        (ConfigKeyVal::Malloc((kMaxLenDomainId + 1)));
-    controller_domain_t tmp_ctrlr_dom;
-    tmp_ctrlr_dom.ctrlr = NULL;
-    tmp_ctrlr_dom.domain = NULL;
-    GET_USER_DATA_CTRLR_DOMAIN(tmp_ikey, tmp_ctrlr_dom);
-    UPLL_LOG_TRACE(" ctrlr = %s, dom = %s ", tmp_ctrlr_dom.ctrlr,
-                                              tmp_ctrlr_dom.domain);
-    uuu::upll_strncpy(ctrlr_dom.ctrlr, tmp_ctrlr_dom.ctrlr,
-                        (kMaxLenCtrlrId + 1));
-    uuu::upll_strncpy(ctrlr_dom.domain, tmp_ctrlr_dom.domain,
-                        (kMaxLenDomainId + 1));
-    list_ctrlr_dom.push_back(ctrlr_dom);
-    tmp_ikey = tmp_ikey->get_next_cfg_key_val();
-  }
-  return result_code;
-}
-
-upll_rc_t
-VtnMoMgr::UpdateVtnConfigStatus(ConfigKeyVal *vtn_key,
-    unc_keytype_operation_t op, uint32_t driver_result,
-    ConfigKeyVal *nreq, DalDmlIntf *dmi) {
-  ConfigKeyVal *ck_vtn = NULL;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  val_vtn_t *vtn_val = NULL;
-  val_vtn_st *val_vtnst= NULL;
-  void *vtnval = NULL;
-  void *nvtnval = NULL;
-  val_db_vtn_st *vtn_val_db_st = NULL, *nreq_vtnst = NULL;
-
-  UPLL_FUNC_TRACE;
-  if (op != UNC_OP_DELETE) {
-    result_code = DupConfigKeyVal(ck_vtn, vtn_key, MAINTBL);
-    if (!ck_vtn || result_code != UPLL_RC_SUCCESS) {
-       UPLL_LOG_DEBUG("Returning error %d", result_code);
-       return UPLL_RC_ERR_GENERIC;
-    }
-    vtn_val = reinterpret_cast<val_vtn_t *>(GetVal(ck_vtn));
-    if (!vtn_val) {
-       UPLL_LOG_DEBUG("invalid val ");
-       return UPLL_RC_ERR_GENERIC;
-    }
-    vtn_val_db_st =  reinterpret_cast<val_db_vtn_st *>(
-        ConfigKeyVal::Malloc(sizeof(val_db_vtn_st)));
-    val_vtnst = &(vtn_val_db_st->vtn_val_st);
-  } else {
-    result_code = GetChildConfigKey(ck_vtn, vtn_key);
-    if (!ck_vtn || result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Returning error %d", result_code);
-      return UPLL_RC_ERR_GENERIC;
-    }
-  }
-  switch (op) {
-  case UNC_OP_CREATE:
-    vtn_val->cs_row_status = UNC_CS_APPLIED;
-    val_vtnst->creation_time = time(NULL);
-    val_vtnst->last_updated_time = val_vtnst->creation_time;
-    val_vtnst->valid[UPLL_IDX_CREATION_TIME_VS] = UNC_VF_VALID;
-    val_vtnst->valid[UPLL_IDX_LAST_UPDATE_TIME_VS] = UNC_VF_VALID;
-    val_vtnst->oper_status = UPLL_OPER_STATUS_DOWN;
-    val_vtnst->alarm_status = UPLL_ALARM_CLEAR;
-    val_vtnst->valid[UPLL_IDX_OPER_STATUS_VS] = UNC_VF_VALID;
-    val_vtnst->valid[UPLL_IDX_ALARM_STATUS_VS] = UNC_VF_VALID;
-    vtn_val_db_st->down_count = 0;
-    ck_vtn->AppendCfgVal(IpctSt::kIpcStValVtnSt, vtn_val_db_st);
-    break;
-  case UNC_OP_UPDATE:
-    vtnval = reinterpret_cast<void *>(vtn_val);
-    nvtnval = (nreq)?GetVal(nreq):NULL;
-    if (!nvtnval) {
-      UPLL_LOG_DEBUG("Invalid param");
-      return UPLL_RC_ERR_GENERIC;
-    }
-    CompareValidValue(vtnval, nvtnval, true);
-
-    vtn_val->cs_row_status =
-             reinterpret_cast<val_vtn_t *>(GetVal(nreq))->cs_row_status;
-
-    val_vtnst->last_updated_time = time(NULL);
-    val_vtnst->valid[UPLL_IDX_LAST_UPDATE_TIME_VS] = UNC_VF_VALID;
-    val_vtnst->valid[UPLL_IDX_OPER_STATUS_VS] = UNC_VF_INVALID;
-    val_vtnst->valid[UPLL_IDX_ALARM_STATUS_VS] = UNC_VF_INVALID;
-    nreq_vtnst = reinterpret_cast<val_db_vtn_st *>(GetStateVal(nreq));
-    if (!nreq_vtnst) {
-      UPLL_LOG_DEBUG("Invalid param");
-      return UPLL_RC_ERR_GENERIC;
-    }
-    vtn_val_db_st->down_count = nreq_vtnst->down_count;
-    ck_vtn->AppendCfgVal(IpctSt::kIpcStValVtnSt, val_vtnst);
-    break;
-  case UNC_OP_DELETE:
+             memcpy(reinterpret_cast<char *>(key),
+                    reinterpret_cast<char *>(ikey),
+                    sizeof(key_vtnstation_controller));
+             okey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+                                     IpctSt::kIpcStKeyVtnstationController,
+                                     key,
+                                     tmp1);
+             return UPLL_RC_SUCCESS;
+           }
+
+           upll_rc_t VtnMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
+                                               ConfigKeyVal *&req,
+                                               MoMgrTables tbl) {
+             UPLL_FUNC_TRACE;
+             if (req == NULL) return UPLL_RC_ERR_GENERIC;
+             if (okey != NULL) return UPLL_RC_ERR_GENERIC;
+             if (req->get_key_type() != UNC_KT_VTN) return UPLL_RC_ERR_GENERIC;
+             ConfigVal *tmp1 = NULL, *tmp = (req)->get_cfg_val();
+             val_vtn *vtn_val = NULL;
+             val_rename_vtn *rename_val = NULL;
+             val_vtn_ctrlr *ctrlr_val = NULL;
+
+             if (tmp) {
+               if (tbl == MAINTBL) {
+                 val_vtn *ival = reinterpret_cast<val_vtn *>(GetVal(req));
+
+                 vtn_val = reinterpret_cast<val_vtn *>(
+                     ConfigKeyVal::Malloc(sizeof(val_vtn)));
+                 memcpy(reinterpret_cast<char *>(vtn_val),
+                        reinterpret_cast<char *>(ival),
+                        sizeof(val_vtn));
+                 tmp1 = new ConfigVal(IpctSt::kIpcStValVtn, vtn_val);
+               } else if (tbl == RENAMETBL) {
+                 val_rename_vtn *ival = reinterpret_cast<val_rename_vtn *>
+                     (GetVal(req));
+                 rename_val = reinterpret_cast<val_rename_vtn *>(
+                     ConfigKeyVal::Malloc(sizeof(val_rename_vtn)));
+                 memcpy(reinterpret_cast<char *>(rename_val),
+                        reinterpret_cast<char *>(ival), sizeof(val_rename_vtn));
+                 tmp1 = new ConfigVal(IpctSt::kIpcStValRenameVtn, rename_val);
+               } else if (tbl ==  CTRLRTBL) {
+                 val_vtn_ctrlr *ival = reinterpret_cast<val_vtn_ctrlr *>
+                     (GetVal(req));
+                 ctrlr_val = reinterpret_cast<val_vtn_ctrlr *>(
+                     ConfigKeyVal::Malloc(sizeof(val_vtn_ctrlr)));
+                 memcpy(reinterpret_cast<char *>(ctrlr_val),
+                        reinterpret_cast<char *>(ival), sizeof(val_vtn_ctrlr));
+                 tmp1 = new ConfigVal(IpctSt::kIpcInvalidStNum, ctrlr_val);
+               }
+               if (!tmp1) {
+                 UPLL_LOG_ERROR("Memory Allocation failed for tmp1");
+                 FREE_IF_NOT_NULL(vtn_val);
+                 FREE_IF_NOT_NULL(rename_val);
+                 FREE_IF_NOT_NULL(ctrlr_val);
+                 return UPLL_RC_ERR_GENERIC;
+               }
+               //   error user data nneds to be copied
+               SET_USER_DATA(tmp1, tmp)
+                   tmp = tmp->get_next_cfg_val();
+             };
+             if (tmp) {
+               if (tbl == MAINTBL) {
+                 val_db_vtn_st *ival = reinterpret_cast<val_db_vtn_st *>
+                     (tmp->get_val());
+                 val_db_vtn_st *val_vtn = reinterpret_cast<val_db_vtn_st *>(
+                     ConfigKeyVal::Malloc(sizeof(val_db_vtn_st)));
+                 memset(reinterpret_cast<void *>(val_vtn), 0,
+                        sizeof(val_db_vtn_st));
+                 memcpy(reinterpret_cast<char *>(val_vtn),
+                        reinterpret_cast<char *>(ival),
+                        sizeof(val_db_vtn_st));
+                 ConfigVal *tmp2 = new ConfigVal(IpctSt::kIpcStValVtnSt,
+                                                 val_vtn);
+                 tmp1->AppendCfgVal(tmp2);
+               }
+             };
+             void *tkey = (req != NULL) ? (req)->get_key() : NULL;
+             key_vtn *ikey = reinterpret_cast<key_vtn *>(tkey);
+             key_vtn *vtn_key = reinterpret_cast<key_vtn *>(
+                 ConfigKeyVal::Malloc(sizeof(key_vtn)));
+             memcpy(reinterpret_cast<char *>(vtn_key),
+                    reinterpret_cast<char *>(ikey),
+                    sizeof(key_vtn));
+             okey = new ConfigKeyVal(UNC_KT_VTN,
+                                     IpctSt::kIpcStKeyVtn,
+                                     vtn_key,
+                                     tmp1);
+             SET_USER_DATA(okey, req)
+                 return UPLL_RC_SUCCESS;
+           }
+
+           upll_rc_t VtnMoMgr::AdaptValToVtnService(ConfigKeyVal *ikey) {
+             UPLL_FUNC_TRACE;
+             if (!ikey) {
+               UPLL_LOG_DEBUG("Invalid ikey");
+               return UPLL_RC_ERR_GENERIC;
+             }
+             while (ikey) {
+               ConfigVal *cval = ikey->get_cfg_val();
+               if (!cval) {
+                 UPLL_LOG_DEBUG("Config Val is Null");
+                 return UPLL_RC_ERR_GENERIC;
+               }
+               while (cval) {
+                 if (IpctSt::kIpcStValVtnSt == cval->get_st_num()) {
+                   val_vtn_st *vtn_val_st = reinterpret_cast<val_vtn_st *>
+                       (ConfigKeyVal::Malloc(sizeof(val_vtn_st)));
+                   val_db_vtn_st *db_vtn_val_st =
+                       reinterpret_cast<val_db_vtn_st *>
+                       (cval->get_val());
+                   if (!db_vtn_val_st) {
+                     FREE_IF_NOT_NULL(vtn_val_st);
+                     return UPLL_RC_ERR_GENERIC;
+                   }
+                   memcpy(vtn_val_st, &(db_vtn_val_st->vtn_val_st),
+                          sizeof(val_vtn_st));
+                   cval->SetVal(IpctSt::kIpcStValVtnSt, vtn_val_st);
+                 }
+                 cval = cval->get_next_cfg_val();
+               }
+               ikey = ikey->get_next_cfg_key_val();
+             }
+             UPLL_LOG_DEBUG("Exiting VtnMoMgr::AdaptValToVtnService");
+             return UPLL_RC_SUCCESS;
+           }
+
+           upll_rc_t VtnMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
+                                                 ConfigKeyVal *parent_key) {
+             UPLL_FUNC_TRACE;
+             upll_rc_t result_code = UPLL_RC_SUCCESS;
+             key_vtn_t *vtn_key = NULL;
+             if (okey && okey->get_key()) {
+               vtn_key = reinterpret_cast<key_vtn_t *>(
+                   okey->get_key());
+             } else {
+               vtn_key = reinterpret_cast<key_vtn_t *>(
+                   ConfigKeyVal::Malloc(sizeof(key_vtn)));
+             }
+             void *pkey;
+             if (parent_key == NULL) {
+               if (!okey)
+                 okey = new ConfigKeyVal(UNC_KT_VTN,
+                                         IpctSt::kIpcStKeyVtn,
+                                         vtn_key,
+                                         NULL);
+               else if (okey->get_key() != vtn_key)
+                 okey->SetKey(IpctSt::kIpcStKeyVtn, vtn_key);
+               return UPLL_RC_SUCCESS;
+             } else {
+               pkey = parent_key->get_key();
+             }
+             if (!pkey) {
+               if (!okey || !(okey->get_key()))
+                 ConfigKeyVal::Free(vtn_key);
+               return UPLL_RC_ERR_GENERIC;
+             }
+             switch (parent_key->get_key_type()) {
+               case UNC_KT_ROOT:
+                 break;
+               case UNC_KT_VTN_DATAFLOW:
+                 uuu::upll_strncpy(vtn_key->vtn_name,
+                                   reinterpret_cast<key_vtn_dataflow *>
+                                   (pkey)->vtn_key.vtn_name,
+                                   (kMaxLenVtnName+1));
+                 break;
+               case UNC_KT_VTN:
+                 uuu::upll_strncpy(vtn_key->vtn_name,
+                                   reinterpret_cast<key_vtn *>(pkey)->vtn_name,
+                                   (kMaxLenVtnName+1));
+                 break;
+               case UNC_KT_VTN_MAPPING_CONTROLLER:
+                 uuu::upll_strncpy(vtn_key->vtn_name,
+                                   reinterpret_cast<key_vtn_controller *>
+                                   (pkey)->vtn_key.vtn_name,
+                                   (kMaxLenVtnName+1));
+                 break;
+               default:
+                 if (!okey || !(okey->get_key())) {
+                   ConfigKeyVal::Free(vtn_key);
+                 }
+                 return UPLL_RC_ERR_GENERIC;
+             }
+             if (!okey)
+               okey = new ConfigKeyVal(UNC_KT_VTN,
+                                       IpctSt::kIpcStKeyVtn,
+                                       vtn_key,
+                                       NULL);
+             else if (okey->get_key() != vtn_key)
+               okey->SetKey(IpctSt::kIpcStKeyVtn, vtn_key);
+             SET_USER_DATA(okey, parent_key);
+             return result_code;
+           }
+
+           upll_rc_t VtnMoMgr::GetRenamedUncKey(
+               ConfigKeyVal *ctrlr_key,
+               upll_keytype_datatype_t dt_type,
+               DalDmlIntf *dmi,
+               uint8_t *ctrlr_id) {
+             UPLL_FUNC_TRACE;
+             if (!ctrlr_key || !(ctrlr_key->get_key()) )
+               return UPLL_RC_ERR_GENERIC;
+             upll_rc_t result_code = UPLL_RC_SUCCESS;
+             key_vtn *ctrlr_vtn_key = reinterpret_cast<key_vtn *>
+                 (ctrlr_key->get_key());
+             DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutNone };
+             ConfigKeyVal *unc_key = NULL;
+             val_rename_vtn *rename_vtn = reinterpret_cast<val_rename_vtn *>(
+                 ConfigKeyVal::Malloc(sizeof(val_rename_vtn)));
+             uuu::upll_strncpy(reinterpret_cast<char*>(rename_vtn->new_name),
+                               reinterpret_cast<char*>
+                               (ctrlr_vtn_key->vtn_name),
+                               kMaxLenVtnName+1);
+             rename_vtn->valid[UPLL_IDX_NEW_NAME_RVTN] = UNC_VF_VALID;
+             result_code = GetChildConfigKey(unc_key, NULL);
+             if (result_code != UPLL_RC_SUCCESS) {
+               UPLL_LOG_DEBUG(" GetChildConfigKey Failed with result_code %d",
+                              result_code);
+               ConfigKeyVal::Free(rename_vtn);
+               return UPLL_RC_ERR_GENERIC;
+             }
+             unc_key->AppendCfgVal(IpctSt::kIpcStValRenameVtn, rename_vtn);
+             if (ctrlr_id) {
+               SET_USER_DATA_CTRLR(unc_key, ctrlr_id);
+             } else  {
+               dbop.matchop = kOpMatchNone;
+             }
+             result_code = ReadConfigDB(unc_key,
+                                        dt_type,
+                                        UNC_OP_READ,
+                                        dbop,
+                                        dmi,
+                                        RENAMETBL);
+             if (result_code == UPLL_RC_SUCCESS) {
+               key_vtn *vtn_key = reinterpret_cast<key_vtn *>
+                   (unc_key->get_key());
+               if (strcmp(reinterpret_cast<char*>(ctrlr_vtn_key->vtn_name),
+                          reinterpret_cast<char*>(vtn_key->vtn_name))) {
+                 uuu::upll_strncpy(ctrlr_vtn_key->vtn_name,
+                                   vtn_key->vtn_name,
+                                   (kMaxLenVtnName+ 1));
+                 SET_USER_DATA_FLAGS(ctrlr_key, VTN_RENAME);
+               }
+             }
+             delete unc_key;
+             return result_code;
+           }
+
+           upll_rc_t VtnMoMgr::GetRenamedControllerKey(
+               ConfigKeyVal *ikey,
+               upll_keytype_datatype_t dt_type,
+               DalDmlIntf *dmi,
+               controller_domain *ctrlr_dom) {
+             UPLL_FUNC_TRACE;
+             upll_rc_t result_code = UPLL_RC_SUCCESS;
+             ConfigKeyVal *okey = NULL;
+             uint8_t rename = 0;
+             key_vtn *ctrlr_key = NULL;
+             result_code = IsRenamed(ikey, dt_type, dmi, rename);
+             if (result_code != UPLL_RC_SUCCESS) {
+               UPLL_LOG_DEBUG("IsRenamed failed. Result : %d", result_code);
+               return result_code;
+             }
+             if (!rename) return UPLL_RC_SUCCESS;
+
+             /* vtn renamed */
+             if (rename & 0x01) {
+               //       GET_USER_DATA_CTRLR_DOMAIN(ikey, *ctrlr_dom);
+               if (!ctrlr_dom->ctrlr || !ctrlr_dom->domain) {
+                 UPLL_LOG_ERROR("Illegal controller domain");
+                 return UPLL_RC_ERR_GENERIC;
+               }
+               result_code = GetChildConfigKey(okey, ikey);
+               if (result_code != UPLL_RC_SUCCESS || !okey) {
+                 UPLL_LOG_DEBUG("GetChildConfigKey failed");
+                 return result_code;
+               }
+               //  SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
+               DbSubOp dbop = {kOpReadSingle, kOpMatchCtrlr | kOpMatchDomain,
+                 kOpInOutFlag};
+               result_code = ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop, dmi,
+                                          RENAMETBL);
+               if (result_code != UPLL_RC_SUCCESS) {
+                 UPLL_LOG_DEBUG("ReadConfigDB failed with result_code %d",
+                                result_code);
+                 return result_code;
+               }
+               val_rename_vtn *rename_val = reinterpret_cast<val_rename_vtn *>
+                   (GetVal(okey));
+               if (!rename_val) {
+                 UPLL_LOG_DEBUG("Rename Val is Empty");
+                 return UPLL_RC_ERR_GENERIC;
+               }
+               ctrlr_key = reinterpret_cast<key_vtn *>(ikey->get_key());
+               if (!ctrlr_key) return UPLL_RC_ERR_GENERIC;
+               memset(ctrlr_key, 0, sizeof(key_vtn));
+               uuu::upll_strncpy(ctrlr_key->vtn_name, rename_val->new_name,
+                                 (kMaxLenVtnName + 1));
+               SET_USER_DATA_FLAGS(ikey, VTN_RENAME);
+               delete okey;
+             }
+             return UPLL_RC_SUCCESS;
+           }
+
+           upll_rc_t
+               VtnMoMgr::GetControllerDomainSpan(
+                   ConfigKeyVal *ikey,
+                   upll_keytype_datatype_t dt_type,
+                   DalDmlIntf *dmi) {
+                 UPLL_FUNC_TRACE;
+                 upll_rc_t result_code;
+                 DbSubOp dbop = {kOpReadMultiple, kOpMatchNone,
+                   kOpInOutCtrlr|kOpInOutDomain};
+                 result_code = ReadConfigDB(ikey,
+                                            dt_type,
+                                            UNC_OP_READ,
+                                            dbop,
+                                            dmi,
+                                            CTRLRTBL);
+                 return result_code;
+               }
+
+           upll_rc_t
+               VtnMoMgr::GetControllerDomainSpan(
+                   ConfigKeyVal *ikey,
+                   upll_keytype_datatype_t dt_type,
+                   DalDmlIntf *dmi,
+                   std::list<controller_domain_t> &list_ctrlr_dom) {
+                 UPLL_FUNC_TRACE;
+                 upll_rc_t result_code;
+                 ConfigKeyVal *tmp_ikey = NULL;
+                 controller_domain ctrlr_dom;
+                 ctrlr_dom.ctrlr = NULL;
+                 ctrlr_dom.domain = NULL;
+                 DbSubOp dbop = {kOpReadMultiple, kOpMatchNone,
+                   kOpInOutCtrlr|kOpInOutDomain};
+                 result_code = ReadConfigDB(ikey,
+                                            dt_type,
+                                            UNC_OP_READ,
+                                            dbop,
+                                            dmi,
+                                            CTRLRTBL);
+                 if ((result_code != UPLL_RC_SUCCESS) &&
+                     (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE)) {
+                   UPLL_LOG_DEBUG("Error in ReadConfigDb (%d)", result_code);
+                   return result_code;
+                 }
+                 if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                   UPLL_LOG_DEBUG(" Vtn not yet associated with controller ");
+                   return result_code;
+                 }
+
+                 tmp_ikey = ikey;
+                 while (NULL != tmp_ikey) {
+                   ctrlr_dom.ctrlr = reinterpret_cast<uint8_t *>
+                       (ConfigKeyVal::Malloc((kMaxLenCtrlrId + 1)));
+                   ctrlr_dom.domain = reinterpret_cast<uint8_t *>
+                       (ConfigKeyVal::Malloc((kMaxLenDomainId + 1)));
+                   controller_domain_t tmp_ctrlr_dom;
+                   tmp_ctrlr_dom.ctrlr = NULL;
+                   tmp_ctrlr_dom.domain = NULL;
+                   GET_USER_DATA_CTRLR_DOMAIN(tmp_ikey, tmp_ctrlr_dom);
+                   UPLL_LOG_TRACE(" ctrlr = %s, dom = %s ", tmp_ctrlr_dom.ctrlr,
+                                  tmp_ctrlr_dom.domain);
+                   uuu::upll_strncpy(ctrlr_dom.ctrlr, tmp_ctrlr_dom.ctrlr,
+                                     (kMaxLenCtrlrId + 1));
+                   uuu::upll_strncpy(ctrlr_dom.domain, tmp_ctrlr_dom.domain,
+                                     (kMaxLenDomainId + 1));
+                   list_ctrlr_dom.push_back(ctrlr_dom);
+                   tmp_ikey = tmp_ikey->get_next_cfg_key_val();
+                 }
+                 return result_code;
+               }
+
+           upll_rc_t
+               VtnMoMgr::UpdateVtnConfigStatus(ConfigKeyVal *vtn_key,
+                                               unc_keytype_operation_t op,
+                                               uint32_t driver_result,
+                                               ConfigKeyVal *nreq,
+                                               DalDmlIntf *dmi) {
+                 ConfigKeyVal *ck_vtn = NULL;
+                 upll_rc_t result_code = UPLL_RC_SUCCESS;
+                 val_vtn_t *vtn_val = NULL;
+                 val_vtn_st *val_vtnst= NULL;
+                 void *vtnval = NULL;
+                 void *nvtnval = NULL;
+                 val_db_vtn_st *vtn_val_db_st = NULL, *nreq_vtnst = NULL;
+
+                 UPLL_FUNC_TRACE;
+                 if (op != UNC_OP_DELETE) {
+                   result_code = DupConfigKeyVal(ck_vtn, vtn_key, MAINTBL);
+                   if (!ck_vtn || result_code != UPLL_RC_SUCCESS) {
+                     UPLL_LOG_DEBUG("Returning error %d", result_code);
+                     return UPLL_RC_ERR_GENERIC;
+                   }
+                   vtn_val = reinterpret_cast<val_vtn_t *>(GetVal(ck_vtn));
+                   if (!vtn_val) {
+                     UPLL_LOG_DEBUG("invalid val ");
+                     return UPLL_RC_ERR_GENERIC;
+                   }
+                   vtn_val_db_st =  reinterpret_cast<val_db_vtn_st *>(
+                       ConfigKeyVal::Malloc(sizeof(val_db_vtn_st)));
+                   val_vtnst = &(vtn_val_db_st->vtn_val_st);
+                 } else {
+                   result_code = GetChildConfigKey(ck_vtn, vtn_key);
+                   if (!ck_vtn || result_code != UPLL_RC_SUCCESS) {
+                     UPLL_LOG_DEBUG("Returning error %d", result_code);
+                     return UPLL_RC_ERR_GENERIC;
+                   }
+                 }
+                 switch (op) {
+                   case UNC_OP_CREATE:
+                     vtn_val->cs_row_status = UNC_CS_APPLIED;
+                     val_vtnst->creation_time = time(NULL);
+                     val_vtnst->last_updated_time = val_vtnst->creation_time;
+                     val_vtnst->valid[UPLL_IDX_CREATION_TIME_VS] =
+                         UNC_VF_VALID;
+                     val_vtnst->valid[UPLL_IDX_LAST_UPDATE_TIME_VS] =
+                         UNC_VF_VALID;
+                     val_vtnst->oper_status = UPLL_OPER_STATUS_DOWN;
+                     val_vtnst->alarm_status = UPLL_ALARM_CLEAR;
+                     val_vtnst->valid[UPLL_IDX_OPER_STATUS_VS] = UNC_VF_VALID;
+                     val_vtnst->valid[UPLL_IDX_ALARM_STATUS_VS] = UNC_VF_VALID;
+                     vtn_val_db_st->down_count = 0;
+                     ck_vtn->AppendCfgVal(IpctSt::kIpcStValVtnSt,
+                                          vtn_val_db_st);
+                     break;
+                   case UNC_OP_UPDATE:
+                     vtnval = reinterpret_cast<void *>(vtn_val);
+                     nvtnval = (nreq)?GetVal(nreq):NULL;
+                     if (!nvtnval) {
+                       UPLL_LOG_DEBUG("Invalid param");
+                       return UPLL_RC_ERR_GENERIC;
+                     }
+                     CompareValidValue(vtnval, nvtnval, true);
+
+                     vtn_val->cs_row_status =
+                         reinterpret_cast<val_vtn_t *>
+                         (GetVal(nreq))->cs_row_status;
+
+                     val_vtnst->last_updated_time = time(NULL);
+                     val_vtnst->valid[UPLL_IDX_LAST_UPDATE_TIME_VS] =
+                         UNC_VF_VALID;
+                     val_vtnst->valid[UPLL_IDX_OPER_STATUS_VS] = UNC_VF_INVALID;
+                     val_vtnst->valid[UPLL_IDX_ALARM_STATUS_VS] =
+                         UNC_VF_INVALID;
+                     nreq_vtnst = reinterpret_cast<val_db_vtn_st *>
+                         (GetStateVal(nreq));
+                     if (!nreq_vtnst) {
+                       UPLL_LOG_DEBUG("Invalid param");
+                       return UPLL_RC_ERR_GENERIC;
+                     }
+                     vtn_val_db_st->down_count = nreq_vtnst->down_count;
+                     ck_vtn->AppendCfgVal(IpctSt::kIpcStValVtnSt, val_vtnst);
+                     break;
+                   case UNC_OP_DELETE:
 #if 0
-    result_code = UpdateConfigDB(ck_vtn, UPLL_DT_CANDIDATE, UNC_OP_READ,
-                  dmi, CTRLRTBL);
-    if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
-      string s(ck_vtn->ToStr());
-      UPLL_LOG_DEBUG("Instance exists in ctrlr table - not deleted %s",
-                      s.c_str());
-      delete ck_vtn;
-      return UPLL_RC_SUCCESS;
-    } else if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-      string s(ck_vtn->ToStr());
-      UPLL_LOG_DEBUG("Ctrlr table exists read failed- %s", s.c_str());
-      delete ck_vtn;
-      return result_code;
-    }
+                     result_code = UpdateConfigDB(ck_vtn,
+                                                  UPLL_DT_CANDIDATE,
+                                                  UNC_OP_READ,
+                                                  dmi, CTRLRTBL);
+                     if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
+                       string s(ck_vtn->ToStr());
+                       UPLL_LOG_DEBUG("Instance exists in ctrlr table -"
+                                      "not deleted %s",
+                                      s.c_str());
+                       delete ck_vtn;
+                       return UPLL_RC_SUCCESS;
+                     } else if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                       string s(ck_vtn->ToStr());
+                       UPLL_LOG_DEBUG("Ctrlr table exists read failed- %s",
+                                      s.c_str());
+                       delete ck_vtn;
+                       return result_code;
+                     }
 #endif
-    break;
-  default:
-    UPLL_LOG_DEBUG("Invalid operation");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  if ((op != UNC_OP_DELETE) &&
-      (vtn_val->valid[UPLL_IDX_DESC_VTN] != UNC_VF_INVALID)) {
-    vtn_val->cs_attr[UPLL_IDX_DESC_VTN] = UNC_CS_APPLIED;
-  }
-  DbSubOp dbop = {kOpNotRead, kOpMatchNone, kOpInOutFlag | kOpInOutCs};
-  result_code = UpdateConfigDB(ck_vtn, UPLL_DT_STATE, op, dmi, &dbop, MAINTBL);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("UpdateConfigDB Failed %d", result_code);
-    return result_code;
-  }
-  result_code = EnqueCfgNotification(op, UPLL_DT_RUNNING, ck_vtn);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("EnqueCfgNotification Failed %d", result_code);
-    return result_code;
-  }
-  delete ck_vtn;
-  return result_code;
-}
-
-upll_rc_t
-VtnMoMgr::UpdateConfigStatus(ConfigKeyVal *vtn_run,
-    unc_keytype_operation_t op, uint32_t driver_result, ConfigKeyVal *ctrlr_can,
-    DalDmlIntf *dmi, ConfigKeyVal *ctrlr_run) {
-  UPLL_FUNC_TRACE;
-  unc_keytype_configstatus_t ctrlr_status;
-  uint8_t cs_status;
-  bool attribute_change = false;
-  ctrlr_status = (driver_result == UPLL_RC_SUCCESS)?
-                 UNC_CS_APPLIED: UNC_CS_NOT_APPLIED;
-  val_vtn_t *vtn_val = reinterpret_cast<val_vtn_t *>(GetVal(vtn_run));
-  val_vtn_ctrlr *ctrlr_val_vtn = NULL;
-  if (ctrlr_can == NULL) {
-    attribute_change = true;
-  } else {
-  ctrlr_val_vtn = reinterpret_cast<val_vtn_ctrlr *>
-                                                 (GetVal(ctrlr_can));
-  }
-  if (vtn_val == NULL)
-    return UPLL_RC_ERR_GENERIC;
-  cs_status = vtn_val->cs_row_status;
-  UPLL_LOG_TRACE("cs_status %d ctrlr_status %d\n", cs_status, ctrlr_status);
-  uuc::CtrlrMgr *ctrlr_mgr = uuc::CtrlrMgr::GetInstance();
-  unc_keytype_ctrtype_t ctrlrtype = UNC_CT_UNKNOWN;
-  if (ctrlr_can && ctrlr_mgr) {
-    uint8_t *ctrlr_id = NULL;
-    GET_USER_DATA_CTRLR(ctrlr_can, ctrlr_id);
-    if (!ctrlr_id) {
-      UPLL_LOG_DEBUG("Returning error\n");
-      return UPLL_RC_ERR_GENERIC;
-    }
-    ctrlr_mgr->GetCtrlrType(reinterpret_cast<char *>(ctrlr_id),
-                            UPLL_DT_CANDIDATE, &ctrlrtype);
-  } 
-  if (op == UNC_OP_CREATE) {
-    if (ctrlr_val_vtn == NULL) return UPLL_RC_ERR_GENERIC;
-    ctrlr_val_vtn->oper_status = UPLL_OPER_STATUS_UP;
-    ctrlr_val_vtn->alarm_status = UPLL_ALARM_CLEAR;
-    ctrlr_val_vtn->valid[0] = UNC_VF_VALID;
-    ctrlr_val_vtn->valid[1] = UNC_VF_VALID;
-    ctrlr_val_vtn->down_count = 0;
-    if (ctrlrtype == UNC_CT_PFC) {
-        ctrlr_val_vtn->oper_status = UPLL_OPER_STATUS_DOWN;
-        ctrlr_val_vtn->down_count = ctrlr_val_vtn->ref_count;
-    }
-    ctrlr_val_vtn->cs_row_status = ctrlr_status;
-
-    /* update the vtn status in main tbl */
-    switch (vtn_val->cs_row_status) {
-    case UNC_CS_APPLIED: {
-      cs_status = (ctrlr_status == UNC_CS_NOT_APPLIED) ?
-                   UNC_CS_PARTIALLY_APPLIED : ctrlr_status;
-      }
-      break;
-    case UNC_CS_NOT_APPLIED: {
-      cs_status = (ctrlr_status == UNC_CS_APPLIED) ?
-                   UNC_CS_PARTIALLY_APPLIED : ctrlr_status;
-      }
-      break;
-    case UNC_CS_PARTIALLY_APPLIED:
-      cs_status = UNC_CS_PARTIALLY_APPLIED;
-      break;
-    case UNC_CS_INVALID:
-      cs_status = UNC_CS_INVALID;
-      break;
-    case UNC_CS_UNKNOWN:
-    default:
-        /* first entry in ctrlr table */
-      cs_status = ctrlr_status;
-    }
-    vtn_val->cs_row_status = cs_status;
-  }
-  // description is always applied
-  vtn_val->cs_attr[UPLL_IDX_DESC_VTN] = UNC_CS_APPLIED;
-
-  // Updating the Controller cs_row_status
-  // Main tbl update, pass ctrlr_run = NULL
-  val_vtn_ctrlr *run_ctrlr_val = reinterpret_cast<val_vtn_ctrlr *>
-                                                 (GetVal(ctrlr_run));
-  if ((op == UNC_OP_UPDATE) && (run_ctrlr_val != NULL)) {
-    if (attribute_change) {
-      cs_status = run_ctrlr_val->cs_row_status;
-      run_ctrlr_val->cs_row_status = unc_keytype_configstatus_t(cs_status);
-      if (vtn_val->valid[UPLL_IDX_DESC_VTN] != UNC_VF_INVALID) {
-        if (run_ctrlr_val->cs_attr[UPLL_IDX_DESC_VTN] != UNC_CS_NOT_SUPPORTED)
-          run_ctrlr_val->cs_attr[UPLL_IDX_DESC_VTN] = UNC_CS_APPLIED;
-        else
-          run_ctrlr_val->cs_attr[UPLL_IDX_DESC_VTN] = UNC_CS_NOT_SUPPORTED;
-      }
-      return UPLL_RC_SUCCESS;
-    } else {
-      ctrlr_val_vtn->cs_row_status = run_ctrlr_val->cs_row_status;
-      ctrlr_val_vtn->down_count = 0;
-      ctrlr_val_vtn->oper_status = UPLL_OPER_STATUS_UP;
-      ctrlr_val_vtn->valid[0] = UNC_VF_VALID;
-      // down count incremented only for create of vnode 
-     // down count decrement handled during deletion of vnode, if needed.
-      if (ctrlrtype == UNC_CT_PFC) {
-        int diff = ctrlr_val_vtn->ref_count - run_ctrlr_val->ref_count;
-        if (diff > 0)
-          ctrlr_val_vtn->down_count = (run_ctrlr_val->down_count + diff);
-        else if (diff == 0)
-          ctrlr_val_vtn->down_count = (run_ctrlr_val->down_count + 1);
-        ctrlr_val_vtn->oper_status = UPLL_OPER_STATUS_DOWN;
-      }
-    }
-  }
-  val_db_vtn_st *vtn_val_db_st = reinterpret_cast<val_db_vtn_st *>
-                                                     (GetStateVal(vtn_run)); 
-  if (!vtn_val_db_st) {
-     UPLL_LOG_DEBUG("Returning error %d\n",UPLL_RC_ERR_GENERIC);
-     return UPLL_RC_ERR_GENERIC;
-  }
-  // initialize the main table vtn oper status to be recomputed.
-  val_vtn_st *val_vtnst = &(vtn_val_db_st->vtn_val_st);
-  val_vtnst->oper_status = UPLL_OPER_STATUS_UNINIT;
-  val_vtnst->valid[UPLL_IDX_OPER_STATUS_VS] = UNC_VF_VALID;
-  if (vtn_val->valid[UPLL_IDX_DESC_VTN] != UNC_VF_INVALID) {
-    if (ctrlr_val_vtn->cs_attr[UPLL_IDX_DESC_VTN] != UNC_CS_NOT_SUPPORTED)
-      ctrlr_val_vtn->cs_attr[UPLL_IDX_DESC_VTN] =
-           (ctrlr_status == UNC_CS_UNKNOWN)?UNC_CS_APPLIED:ctrlr_status;
-    else
-      ctrlr_val_vtn->cs_attr[UPLL_IDX_DESC_VTN] = UNC_CS_NOT_SUPPORTED;
-  }
-  return UPLL_RC_SUCCESS;
-}
-
-upll_rc_t
-VtnMoMgr::TxCopyCandidateToRunning(unc_key_type_t keytype,
-                                   CtrlrCommitStatusList *ctrlr_commit_status,
-                                   DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  DalResultCode db_result;
-  unc_keytype_operation_t op[] = {UNC_OP_DELETE,
-                                  UNC_OP_CREATE,
-                                  UNC_OP_UPDATE };
-  int nop = sizeof(op) / sizeof(op[0]);
-  ConfigKeyVal *vtn_ck_run = NULL, *req = NULL, *nreq = NULL;
-  DalCursor *cfg1_cursor;
-  uint8_t *ctrlr_id = NULL;
-  map<string, int> ctrlr_result;
-  CtrlrCommitStatusList::iterator ccsListItr;
-  CtrlrCommitStatus *ccStatusPtr;
-
-  if ((ctrlr_commit_status == NULL) || (dmi == NULL))
-  return UPLL_RC_ERR_GENERIC;
-  for (ccsListItr = ctrlr_commit_status->begin();
-      ccsListItr != ctrlr_commit_status->end(); ++ccsListItr) {
-    ccStatusPtr = *ccsListItr;
-    ctrlr_id = reinterpret_cast<uint8_t*>
-    (const_cast<char*>(ccStatusPtr->ctrlr_id.c_str()));
-    ctrlr_result[ccStatusPtr->ctrlr_id] = ccStatusPtr->upll_ctrlr_result;
-    if (ccStatusPtr->upll_ctrlr_result != UPLL_RC_SUCCESS) {
-      for (ConfigKeyVal *ck_err = ccStatusPtr->err_ckv; ck_err != NULL;
-          ck_err = ck_err->get_next_cfg_key_val()) {
-        if (ck_err->get_key_type() != keytype) continue;
-        result_code = GetRenamedUncKey(ck_err, UPLL_DT_CANDIDATE,
-                                       dmi, ctrlr_id);
-        if (result_code != UPLL_RC_SUCCESS &&
-            result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-          UPLL_LOG_DEBUG("GetRenamedUncKey failed. Result : %d",
-                         result_code);
-          return result_code;
-        }
-      }
-    }
-  }
-
-  for (int i = 0; i < nop; i++) {
-    cfg1_cursor = NULL;
-    result_code = DiffConfigDB(UPLL_DT_CANDIDATE, UPLL_DT_RUNNING, op[i],
-                          req, nreq, &cfg1_cursor, dmi, NULL, MAINTBL, true);
-    if (result_code != UPLL_RC_SUCCESS || cfg1_cursor == NULL) {
-      UPLL_LOG_DEBUG("Cursor not populated");
-      return result_code;
-    }
-    ConfigKeyVal *vtn_ctrlr_key = NULL;
-    while (result_code == UPLL_RC_SUCCESS) {
-      vtn_ctrlr_key = NULL;
-      bool upd_ctrlr = false;
-      db_result = dmi->GetNextRecord(cfg1_cursor);
-      result_code = DalToUpllResCode(db_result);
-      if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-        result_code = UPLL_RC_SUCCESS;
-        break;
-      }
-      if (op[i] == UNC_OP_UPDATE) {
-        DbSubOp dbop = {kOpReadMultiple, kOpMatchNone,
-                        kOpInOutCtrlr | kOpInOutDomain | kOpInOutCs };
-        result_code = GetChildConfigKey(vtn_ctrlr_key, req);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("GetChildConfigKey Failed");
-          return result_code;
-        }
-        result_code = ReadConfigDB(vtn_ctrlr_key, UPLL_DT_RUNNING,
-                                   UNC_OP_READ, dbop, dmi, CTRLRTBL);
-        if (result_code == UPLL_RC_SUCCESS) {
-          upd_ctrlr = true;
-        } else {
-          DELETE_IF_NOT_NULL(vtn_ctrlr_key);
-          if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-            if (cfg1_cursor)
-              dmi->CloseCursor(cfg1_cursor, true);
-            delete req;
-            delete nreq;
-            return result_code;
-          }
-        }
-      }
-      result_code = UpdateVtnConfigStatus(req, op[i], UPLL_RC_SUCCESS,
-                                          nreq, dmi);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("Error updating vtn config status %d",
-                        result_code);
-        if (cfg1_cursor)
-          dmi->CloseCursor(cfg1_cursor, true);
-        delete req;
-        DELETE_IF_NOT_NULL(vtn_ctrlr_key);
-        if (nreq) delete nreq;
-        return result_code;
-      }
-      if (upd_ctrlr) {
-        result_code = DupConfigKeyVal(vtn_ck_run, req, MAINTBL);
-        if (result_code != UPLL_RC_SUCCESS) {
-          if (cfg1_cursor)
-            dmi->CloseCursor(cfg1_cursor, true);
-          delete req;
-          delete nreq;
-          DELETE_IF_NOT_NULL(vtn_ctrlr_key);
-          return result_code;
-        }
-        // Assigning cs_row_status from existing controller
-        static_cast<val_vtn *>(GetVal(vtn_ck_run))->cs_row_status =
-              static_cast<val_vtn *>(GetVal(nreq))->cs_row_status;
-        for (ConfigKeyVal *tmp = vtn_ctrlr_key, *tmp_nxt; tmp!= NULL;
-             tmp = tmp_nxt) {
-          tmp_nxt = tmp->get_next_cfg_key_val(); 
-          tmp->set_next_cfg_key_val(NULL);
-          GET_USER_DATA_CTRLR(tmp, ctrlr_id);
-          string controller(reinterpret_cast<char *>(ctrlr_id));
-          result_code = UpdateConfigStatus(vtn_ck_run, op[i],
-                        ctrlr_result[controller], NULL, dmi, tmp);
-          if (result_code != UPLL_RC_SUCCESS)
-            break;
-          result_code = UpdateConfigDB(tmp, UPLL_DT_RUNNING, op[i],
-                                       dmi, CTRLRTBL);
-          if (result_code != UPLL_RC_SUCCESS) {
-            if (cfg1_cursor)
-              dmi->CloseCursor(cfg1_cursor, true);
-            delete req;
-            delete nreq;
-            delete tmp;
-            delete tmp_nxt;
-            DELETE_IF_NOT_NULL(vtn_ck_run);
-            return result_code;
-          }
-          delete tmp;
-        }
-        vtn_ctrlr_key = NULL;
-        result_code = UpdateConfigDB(vtn_ck_run, UPLL_DT_RUNNING, op[i],
-              dmi, MAINTBL);
-        if (result_code != UPLL_RC_SUCCESS) {
-          if (cfg1_cursor)
-            dmi->CloseCursor(cfg1_cursor, true);
-          delete req;
-          delete nreq;
-          DELETE_IF_NOT_NULL(vtn_ck_run);
-          return result_code;
-        }
-        DELETE_IF_NOT_NULL(vtn_ck_run);
-      }
-    }
-    if (cfg1_cursor)
-      dmi->CloseCursor(cfg1_cursor, true);
-    if (req)
-      delete req;
-    if (nreq) delete nreq;
-    req = nreq = NULL;
-  }
-  for (int i = 0; i < nop; i++) {
-    cfg1_cursor = NULL;
-    result_code = DiffConfigDB(UPLL_DT_CANDIDATE, UPLL_DT_RUNNING, op[i], req,
-                               nreq, &cfg1_cursor, dmi, NULL, CTRLRTBL, true);
-    if (result_code != UPLL_RC_SUCCESS || cfg1_cursor == NULL) {
-      UPLL_LOG_DEBUG("Cursor not populated");
-      return result_code;
-    }
-    ConfigKeyVal *vtn_ctrlr_key = NULL;
-    while (result_code == UPLL_RC_SUCCESS) {
-      db_result = dmi->GetNextRecord(cfg1_cursor);
-      result_code = DalToUpllResCode(db_result);
-      if (result_code != UPLL_RC_SUCCESS) {
-        break;
-      }
-      DbSubOp dbop = {kOpReadSingle, kOpMatchNone, kOpInOutFlag | kOpInOutCs};
-      result_code = GetChildConfigKey(vtn_ck_run, req);
-      result_code = ReadConfigDB(vtn_ck_run, UPLL_DT_STATE, UNC_OP_READ,
-                                 dbop, dmi, MAINTBL);
-      if (result_code != UPLL_RC_SUCCESS) {
-        if ((op[i] != UNC_OP_DELETE) &&
-           (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE)) {
-          if (cfg1_cursor)
-            dmi->CloseCursor(cfg1_cursor, true);
-          delete req;
-          return result_code;
-        }
-      }
-      if (op[i] == UNC_OP_CREATE) {
-        /* set consolidated config status to UNKNOWN to init vtn cs_status
-       * to the cs_status of first controller
-       */
-        uint32_t cur_instance_count;
-        result_code = GetInstanceCount(vtn_ck_run, NULL,
-                                 UPLL_DT_CANDIDATE, &cur_instance_count,
-                                 dmi, CTRLRTBL);
-        if ((result_code == UPLL_RC_SUCCESS) && (cur_instance_count == 1))
-          reinterpret_cast<val_vtn *>(GetVal(vtn_ck_run))->cs_row_status =
-                                      UNC_CS_UNKNOWN;
-      }
-      if ((op[i] == UNC_OP_CREATE) || (op[i] == UNC_OP_UPDATE)) {
-        result_code = DupConfigKeyVal(vtn_ctrlr_key, req, CTRLRTBL);
-        if (result_code != UPLL_RC_SUCCESS || vtn_ctrlr_key == NULL) {
-          if (cfg1_cursor)
-            dmi->CloseCursor(cfg1_cursor, true);
-          delete req;
-          return result_code;
-        }
-        GET_USER_DATA_CTRLR(vtn_ctrlr_key, ctrlr_id);
-        string controller(reinterpret_cast<char *>(ctrlr_id));
-        // Passing vtn_ck_run instead of nreq
-        result_code = UpdateConfigStatus(vtn_ck_run, op[i],
-                       ctrlr_result[controller], vtn_ctrlr_key, dmi, nreq);
-      } else if (op[i] == UNC_OP_DELETE) {
-        if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-          GET_USER_DATA_CTRLR(req, ctrlr_id);
-          result_code = SetVtnConsolidatedStatus(vtn_ck_run, ctrlr_id, dmi);
-          if (result_code != UPLL_RC_SUCCESS) {
-            UPLL_LOG_DEBUG("Could not set consolidated status %d", result_code);
-            return result_code;
-          }
-        }
-        result_code = GetChildConfigKey(vtn_ctrlr_key, req);
-      }
-      if (result_code != UPLL_RC_SUCCESS) {
-        if (cfg1_cursor)
-          dmi->CloseCursor(cfg1_cursor, true);
-        delete req;
-        return result_code;
-      }
-      result_code = UpdateConfigDB(vtn_ctrlr_key, UPLL_DT_STATE, op[i],
-                                   dmi, CTRLRTBL);
-      if (result_code != UPLL_RC_SUCCESS) {
-        if (cfg1_cursor)
-          dmi->CloseCursor(cfg1_cursor, true);
-        delete req;
-        return result_code;
-      }
-      if (op[i] != UNC_OP_DELETE) {
-        DbSubOp dbop_update = {kOpNotRead, kOpMatchNone, kOpInOutCs};
-        result_code = UpdateConfigDB(vtn_ck_run, UPLL_DT_STATE,
-            UNC_OP_UPDATE, dmi, &dbop_update, MAINTBL);
-        if (result_code != UPLL_RC_SUCCESS) {
-          if (cfg1_cursor)
-            dmi->CloseCursor(cfg1_cursor, true);
-          delete req;
-          return result_code;
-        }
-      }
-      EnqueCfgNotification(op[i], UPLL_DT_RUNNING, vtn_ck_run);
+                     break;
+                   default:
+                     UPLL_LOG_DEBUG("Invalid operation");
+                     return UPLL_RC_ERR_GENERIC;
+                 }
+                 if ((op != UNC_OP_DELETE) &&
+                     (vtn_val->valid[UPLL_IDX_DESC_VTN] != UNC_VF_INVALID)) {
+                   vtn_val->cs_attr[UPLL_IDX_DESC_VTN] = UNC_CS_APPLIED;
+                 }
+                 DbSubOp dbop = {kOpNotRead,
+                   kOpMatchNone,
+                   kOpInOutFlag | kOpInOutCs};
+                 result_code = UpdateConfigDB(ck_vtn,
+                                              UPLL_DT_STATE,
+                                              op,
+                                              dmi,
+                                              &dbop,
+                                              MAINTBL);
+                 if (UPLL_RC_SUCCESS != result_code) {
+                   UPLL_LOG_DEBUG("UpdateConfigDB Failed %d", result_code);
+                   return result_code;
+                 }
+                 result_code = EnqueCfgNotification(op,
+                                                    UPLL_DT_RUNNING,
+                                                    ck_vtn);
+                 if (UPLL_RC_SUCCESS != result_code) {
+                   UPLL_LOG_DEBUG("EnqueCfgNotification Failed %d",
+                                  result_code);
+                   return result_code;
+                 }
+                 delete ck_vtn;
+                 return result_code;
+               }
+
+           upll_rc_t
+               VtnMoMgr::UpdateConfigStatus(ConfigKeyVal *vtn_run,
+                                            unc_keytype_operation_t op,
+                                            uint32_t driver_result,
+                                            ConfigKeyVal *ctrlr_can,
+                                            DalDmlIntf *dmi,
+                                            ConfigKeyVal *ctrlr_run) {
+                 UPLL_FUNC_TRACE;
+                 unc_keytype_configstatus_t ctrlr_status;
+                 uint8_t cs_status;
+                 bool attribute_change = false;
+                 ctrlr_status = (driver_result == UPLL_RC_SUCCESS)?
+                     UNC_CS_APPLIED: UNC_CS_NOT_APPLIED;
+                 val_vtn_t *vtn_val = reinterpret_cast<val_vtn_t *>
+                     (GetVal(vtn_run));
+                 val_vtn_ctrlr *ctrlr_val_vtn = NULL;
+                 if (ctrlr_can == NULL) {
+                   attribute_change = true;
+                 } else {
+                   ctrlr_val_vtn = reinterpret_cast<val_vtn_ctrlr *>
+                       (GetVal(ctrlr_can));
+                 }
+                 if (vtn_val == NULL)
+                   return UPLL_RC_ERR_GENERIC;
+                 cs_status = vtn_val->cs_row_status;
+                 UPLL_LOG_TRACE("cs_status %d ctrlr_status %d\n",
+                                cs_status,
+                                ctrlr_status);
+                 uuc::CtrlrMgr *ctrlr_mgr = uuc::CtrlrMgr::GetInstance();
+                 unc_keytype_ctrtype_t ctrlrtype = UNC_CT_UNKNOWN;
+                 if (ctrlr_can && ctrlr_mgr) {
+                   uint8_t *ctrlr_id = NULL;
+                   GET_USER_DATA_CTRLR(ctrlr_can, ctrlr_id);
+                   if (!ctrlr_id) {
+                     UPLL_LOG_DEBUG("Returning error\n");
+                     return UPLL_RC_ERR_GENERIC;
+                   }
+                   bool return_value = ctrlr_mgr->GetCtrlrType(
+                       reinterpret_cast<char *>(ctrlr_id),
+                       UPLL_DT_CANDIDATE, &ctrlrtype);
+                   if (false == return_value) {
+                     UPLL_LOG_DEBUG("Unknown Controller Type\n");
+                     return UPLL_RC_ERR_GENERIC;
+                   }
+                 }
+                 if (op == UNC_OP_CREATE) {
+                   if (ctrlr_val_vtn == NULL) return UPLL_RC_ERR_GENERIC;
+                   ctrlr_val_vtn->oper_status =
+                       (driver_result == UPLL_RC_ERR_CTR_DISCONNECTED)?
+                       UPLL_OPER_STATUS_UNKNOWN:UPLL_OPER_STATUS_UP;
+                   ctrlr_val_vtn->alarm_status = UPLL_ALARM_CLEAR;
+                   ctrlr_val_vtn->valid[0] = UNC_VF_VALID;
+                   ctrlr_val_vtn->valid[1] = UNC_VF_VALID;
+                   ctrlr_val_vtn->down_count = 0;
+                   if (ctrlrtype == UNC_CT_PFC) {
+                     ctrlr_val_vtn->oper_status =
+                         (driver_result == UPLL_RC_ERR_CTR_DISCONNECTED)?
+                         UPLL_OPER_STATUS_UNKNOWN:UPLL_OPER_STATUS_DOWN;
+                     ctrlr_val_vtn->down_count = ctrlr_val_vtn->ref_count;
+                   }
+                   ctrlr_val_vtn->cs_row_status = ctrlr_status;
+
+                   /* update the vtn status in main tbl */
+                   switch (vtn_val->cs_row_status) {
+                     case UNC_CS_APPLIED: {
+                       cs_status = (ctrlr_status == UNC_CS_NOT_APPLIED) ?
+                           UNC_CS_PARTIALLY_APPLIED : ctrlr_status;
+                     }
+                     break;
+                     case UNC_CS_NOT_APPLIED: {
+                       cs_status = (ctrlr_status == UNC_CS_APPLIED) ?
+                           UNC_CS_PARTIALLY_APPLIED : ctrlr_status;
+                     }
+                     break;
+                     case UNC_CS_PARTIALLY_APPLIED:
+                     cs_status = UNC_CS_PARTIALLY_APPLIED;
+                     break;
+                     case UNC_CS_INVALID:
+                     cs_status = UNC_CS_INVALID;
+                     break;
+                     case UNC_CS_UNKNOWN:
+                     default:
+                     /* first entry in ctrlr table */
+                     cs_status = ctrlr_status;
+                   }
+                   vtn_val->cs_row_status = cs_status;
+                 }
+                 //  description is always applied
+                 vtn_val->cs_attr[UPLL_IDX_DESC_VTN] = UNC_CS_APPLIED;
+
+                 //  Updating the Controller cs_row_status
+                 //  Main tbl update, pass ctrlr_run = NULL
+                 val_vtn_ctrlr *run_ctrlr_val =
+                     reinterpret_cast<val_vtn_ctrlr *>
+                     (GetVal(ctrlr_run));
+                 if ((op == UNC_OP_UPDATE) && (run_ctrlr_val != NULL)) {
+                   if (attribute_change) {
+                     cs_status = run_ctrlr_val->cs_row_status;
+                     run_ctrlr_val->cs_row_status =
+                         unc_keytype_configstatus_t(cs_status);
+                     if (vtn_val->valid[UPLL_IDX_DESC_VTN] != UNC_VF_INVALID) {
+                       if (run_ctrlr_val->cs_attr[UPLL_IDX_DESC_VTN] !=
+                           UNC_CS_NOT_SUPPORTED)
+                         run_ctrlr_val->cs_attr[UPLL_IDX_DESC_VTN] =
+                             UNC_CS_APPLIED;
+                       else
+                         run_ctrlr_val->cs_attr[UPLL_IDX_DESC_VTN] =
+                             UNC_CS_NOT_SUPPORTED;
+                     }
+                     return UPLL_RC_SUCCESS;
+                   } else {
+                     ctrlr_val_vtn->cs_row_status =
+                         run_ctrlr_val->cs_row_status;
+                     ctrlr_val_vtn->oper_status =
+                         (driver_result == UPLL_RC_ERR_CTR_DISCONNECTED)?
+                         UPLL_OPER_STATUS_UNKNOWN:UPLL_OPER_STATUS_UP;
+                     ctrlr_val_vtn->valid[0] = UNC_VF_VALID;
+                     ctrlr_val_vtn->down_count = run_ctrlr_val->down_count;
+                     //  down count incremented only for create of vnode
+                     //  down count decrement handled during deletion of
+                     //  vnode, if needed.
+                     if (ctrlrtype == UNC_CT_PFC) {
+                       int diff =
+                           ctrlr_val_vtn->ref_count - run_ctrlr_val->ref_count;
+                       if (diff > 0)
+                         ctrlr_val_vtn->down_count =
+                             (run_ctrlr_val->down_count + diff);
+                       else if (diff == 0)
+                         ctrlr_val_vtn->down_count =
+                             (run_ctrlr_val->down_count + 1);
+                       ctrlr_val_vtn->oper_status =
+                           (driver_result == UPLL_RC_ERR_CTR_DISCONNECTED)?
+                           UPLL_OPER_STATUS_UNKNOWN:UPLL_OPER_STATUS_DOWN;
+                     }
+                   }
+                 }
+                 val_db_vtn_st *vtn_val_db_st =
+                     reinterpret_cast<val_db_vtn_st *>
+                     (GetStateVal(vtn_run));
+                 if (!vtn_val_db_st) {
+                   UPLL_LOG_DEBUG("Returning error %d\n", UPLL_RC_ERR_GENERIC);
+                   return UPLL_RC_ERR_GENERIC;
+                 }
+                 //  initialize the main table vtn oper status to be recomputed.
+                 val_vtn_st *val_vtnst = &(vtn_val_db_st->vtn_val_st);
+                 val_vtnst->oper_status =
+                     (driver_result == UPLL_RC_ERR_CTR_DISCONNECTED)?
+                     UPLL_OPER_STATUS_UNKNOWN:UPLL_OPER_STATUS_UNINIT;
+                 val_vtnst->valid[UPLL_IDX_OPER_STATUS_VS] = UNC_VF_VALID;
+                 if (ctrlr_val_vtn && (vtn_val->valid[UPLL_IDX_DESC_VTN] !=
+                                       UNC_VF_INVALID)) {
+                   if (ctrlr_val_vtn->cs_attr[UPLL_IDX_DESC_VTN] !=
+                       UNC_CS_NOT_SUPPORTED)
+                     ctrlr_val_vtn->cs_attr[UPLL_IDX_DESC_VTN] = ctrlr_status;
+                   else
+                     ctrlr_val_vtn->cs_attr[UPLL_IDX_DESC_VTN] =
+                         UNC_CS_NOT_SUPPORTED;
+                 }
+                 return UPLL_RC_SUCCESS;
+               }
+
+           upll_rc_t
+               VtnMoMgr::TxCopyCandidateToRunning(
+                   unc_key_type_t keytype,
+                   CtrlrCommitStatusList *ctrlr_commit_status,
+                   DalDmlIntf *dmi) {
+                 UPLL_FUNC_TRACE;
+                 upll_rc_t result_code = UPLL_RC_SUCCESS;
+                 DalResultCode db_result;
+                 unc_keytype_operation_t op[] = {UNC_OP_DELETE,
+                   UNC_OP_CREATE,
+                   UNC_OP_UPDATE };
+                 int nop = sizeof(op) / sizeof(op[0]);
+                 ConfigKeyVal *vtn_ck_run = NULL, *req = NULL, *nreq = NULL;
+                 DalCursor *cfg1_cursor;
+                 uint8_t *ctrlr_id = NULL;
+                 map<string, int> ctrlr_result;
+                 CtrlrCommitStatusList::iterator ccsListItr;
+                 CtrlrCommitStatus *ccStatusPtr;
+
+                 if (ctrlr_commit_status != NULL) {
+                   for (ccsListItr = ctrlr_commit_status->begin();
+                        ccsListItr != ctrlr_commit_status->end();
+                        ++ccsListItr) {
+                     ccStatusPtr = *ccsListItr;
+                     ctrlr_id = reinterpret_cast<uint8_t*>
+                         (const_cast<char*>(ccStatusPtr->ctrlr_id.c_str()));
+                     ctrlr_result[ccStatusPtr->ctrlr_id] =
+                         ccStatusPtr->upll_ctrlr_result;
+                     if (ccStatusPtr->upll_ctrlr_result != UPLL_RC_SUCCESS) {
+                       for (ConfigKeyVal *ck_err = ccStatusPtr->err_ckv;
+                            ck_err != NULL;
+                            ck_err = ck_err->get_next_cfg_key_val()) {
+                         if (ck_err->get_key_type() != keytype) continue;
+                         result_code = GetRenamedUncKey(ck_err,
+                                                        UPLL_DT_CANDIDATE,
+                                                        dmi,
+                                                        ctrlr_id);
+                         if (result_code != UPLL_RC_SUCCESS &&
+                             result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                           UPLL_LOG_DEBUG("GetRenamedUncKey failed."
+                                          "Result : %d",
+                                          result_code);
+                           return result_code;
+                         }
+                       }
+                     }
+                   }
+                 }
+
+                 for (int i = 0; i < nop; i++) {
+                   cfg1_cursor = NULL;
+                   result_code = DiffConfigDB(UPLL_DT_CANDIDATE,
+                                              UPLL_DT_RUNNING,
+                                              op[i],
+                                              req,
+                                              nreq,
+                                              &cfg1_cursor,
+                                              dmi,
+                                              NULL,
+                                              MAINTBL,
+                                              true);
+                   if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                     result_code = UPLL_RC_SUCCESS;
+                     UPLL_LOG_DEBUG("Diff Skipped for op %d", op[i]);
+                     DELETE_IF_NOT_NULL(req);
+                     DELETE_IF_NOT_NULL(nreq);
+                     continue;
+                   }
+                   if (result_code != UPLL_RC_SUCCESS || cfg1_cursor == NULL) {
+                     UPLL_LOG_DEBUG("Cursor not populated");
+                     DELETE_IF_NOT_NULL(req);
+                     DELETE_IF_NOT_NULL(nreq);
+                     return result_code;
+                   }
+                   ConfigKeyVal *vtn_ctrlr_key = NULL;
+                   while (result_code == UPLL_RC_SUCCESS) {
+                     vtn_ctrlr_key = NULL;
+                     bool upd_ctrlr = false;
+                     db_result = dmi->GetNextRecord(cfg1_cursor);
+                     result_code = DalToUpllResCode(db_result);
+                     if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                       result_code = UPLL_RC_SUCCESS;
+                       break;
+                     }
+                     if (op[i] == UNC_OP_UPDATE) {
+                       DbSubOp dbop = {kOpReadMultiple, kOpMatchNone,
+                         kOpInOutCtrlr | kOpInOutDomain | kOpInOutCs };
+                       result_code = GetChildConfigKey(vtn_ctrlr_key, req);
+                       if (result_code != UPLL_RC_SUCCESS) {
+                         UPLL_LOG_DEBUG("GetChildConfigKey Failed");
+                         return result_code;
+                       }
+                       result_code = ReadConfigDB(vtn_ctrlr_key,
+                                                  UPLL_DT_RUNNING,
+                                                  UNC_OP_READ,
+                                                  dbop,
+                                                  dmi,
+                                                  CTRLRTBL);
+                       if (result_code == UPLL_RC_SUCCESS) {
+                         upd_ctrlr = true;
+                       } else {
+                         DELETE_IF_NOT_NULL(vtn_ctrlr_key);
+                         if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                           if (cfg1_cursor)
+                             dmi->CloseCursor(cfg1_cursor, true);
+                           delete req;
+                           delete nreq;
+                           return result_code;
+                         }
+                       }
+                     }
+                     result_code = UpdateVtnConfigStatus(req, op[i],
+                                                         UPLL_RC_SUCCESS,
+                                                         nreq,
+                                                         dmi);
+                     if (result_code != UPLL_RC_SUCCESS) {
+                       UPLL_LOG_DEBUG("Error updating vtn config status %d",
+                                      result_code);
+                       if (cfg1_cursor)
+                         dmi->CloseCursor(cfg1_cursor, true);
+                       delete req;
+                       DELETE_IF_NOT_NULL(vtn_ctrlr_key);
+                       if (nreq) delete nreq;
+                       return result_code;
+                     }
+                     if (upd_ctrlr) {
+                       result_code = DupConfigKeyVal(vtn_ck_run, req, MAINTBL);
+                       if (result_code != UPLL_RC_SUCCESS) {
+                         if (cfg1_cursor)
+                           dmi->CloseCursor(cfg1_cursor, true);
+                         delete req;
+                         delete nreq;
+                         DELETE_IF_NOT_NULL(vtn_ctrlr_key);
+                         return result_code;
+                       }
+                       //  Assigning cs_row_status from existing controller
+                       static_cast<val_vtn *>(
+                           GetVal(vtn_ck_run))->cs_row_status =
+                           static_cast<val_vtn *>(GetVal(nreq))->cs_row_status;
+                       for (ConfigKeyVal *tmp = vtn_ctrlr_key, *tmp_nxt;
+                            tmp!= NULL;
+                            tmp = tmp_nxt) {
+                         tmp_nxt = tmp->get_next_cfg_key_val();
+                         tmp->set_next_cfg_key_val(NULL);
+                         GET_USER_DATA_CTRLR(tmp, ctrlr_id);
+                         string controller(reinterpret_cast<char *>(ctrlr_id));
+                         if (ctrlr_result.empty()) {
+                           UPLL_LOG_TRACE("ctrlr_commit_status is NULL.");
+                           result_code = UpdateConfigStatus(
+                               vtn_ck_run,
+                               op[i],
+                               UPLL_RC_ERR_CTR_DISCONNECTED,
+                               NULL,
+                               dmi,
+                               tmp);
+                           if (result_code != UPLL_RC_SUCCESS)
+                             break;
+                         } else {
+                           result_code = UpdateConfigStatus(
+                               vtn_ck_run,
+                               op[i],
+                               ctrlr_result[controller],
+                               NULL,
+                               dmi,
+                               tmp);
+                           if (result_code != UPLL_RC_SUCCESS)
+                             break;
+                         }
+                         DbSubOp dbop_update = {kOpNotRead,
+                           kOpMatchCtrlr | kOpMatchDomain,
+                           kOpInOutCs};
+                         result_code = UpdateConfigDB(tmp,
+                                                      UPLL_DT_RUNNING,
+                                                      op[i],
+                                                      dmi,
+                                                      &dbop_update,
+                                                      CTRLRTBL);
+                         if (result_code != UPLL_RC_SUCCESS) {
+                           if (cfg1_cursor)
+                             dmi->CloseCursor(cfg1_cursor, true);
+                           delete req;
+                           delete nreq;
+                           delete tmp;
+                           delete tmp_nxt;
+                           DELETE_IF_NOT_NULL(vtn_ck_run);
+                           return result_code;
+                         }
+                         delete tmp;
+                       }
+                       vtn_ctrlr_key = NULL;
+                       result_code = UpdateConfigDB(vtn_ck_run,
+                                                    UPLL_DT_RUNNING,
+                                                    op[i],
+                                                    dmi,
+                                                    MAINTBL);
+                       if (result_code != UPLL_RC_SUCCESS) {
+                         if (cfg1_cursor)
+                           dmi->CloseCursor(cfg1_cursor, true);
+                         delete req;
+                         delete nreq;
+                         DELETE_IF_NOT_NULL(vtn_ck_run);
+                         return result_code;
+                       }
+                       DELETE_IF_NOT_NULL(vtn_ck_run);
+                     }
+                   }
+                   if (cfg1_cursor)
+                     dmi->CloseCursor(cfg1_cursor, true);
+                   if (req)
+                     delete req;
+                   if (nreq) delete nreq;
+                   req = nreq = NULL;
+                 }
+                 for (int i = 0; i < nop; i++) {
+                   cfg1_cursor = NULL;
+                   result_code = DiffConfigDB(UPLL_DT_CANDIDATE,
+                                              UPLL_DT_RUNNING,
+                                              op[i],
+                                              req,
+                                              nreq,
+                                              &cfg1_cursor,
+                                              dmi,
+                                              NULL,
+                                              CTRLRTBL,
+                                              true);
+                   if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                     result_code = UPLL_RC_SUCCESS;
+                     UPLL_LOG_DEBUG("Diff Skipped for op %d", op[i]);
+                     DELETE_IF_NOT_NULL(req);
+                     DELETE_IF_NOT_NULL(nreq);
+                     continue;
+                   }
+                   if (result_code != UPLL_RC_SUCCESS || cfg1_cursor == NULL) {
+                     UPLL_LOG_DEBUG("Cursor not populated");
+                     return result_code;
+                   }
+                   ConfigKeyVal *vtn_ctrlr_key = NULL;
+                   while (result_code == UPLL_RC_SUCCESS) {
+                     db_result = dmi->GetNextRecord(cfg1_cursor);
+                     result_code = DalToUpllResCode(db_result);
+                     if (result_code != UPLL_RC_SUCCESS) {
+                       break;
+                     }
+                     DbSubOp dbop = {kOpReadSingle,
+                       kOpMatchNone,
+                       kOpInOutFlag | kOpInOutCs};
+                     result_code = GetChildConfigKey(vtn_ck_run, req);
+                     result_code = ReadConfigDB(vtn_ck_run,
+                                                UPLL_DT_STATE,
+                                                UNC_OP_READ,
+                                                dbop,
+                                                dmi,
+                                                MAINTBL);
+                     if (result_code != UPLL_RC_SUCCESS) {
+                       if ((op[i] != UNC_OP_DELETE) &&
+                           (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE)) {
+                         if (cfg1_cursor)
+                           dmi->CloseCursor(cfg1_cursor, true);
+                         delete req;
+                         return result_code;
+                       }
+                     }
+                     if (op[i] == UNC_OP_CREATE) {
+                       /* set consolidated config status to UNKNOWN
+                        * to init vtn cs_status
+                        * to the cs_status of first controller
+                        */
+                       uint32_t cur_instance_count;
+                       result_code = GetInstanceCount(vtn_ck_run, NULL,
+                                                      UPLL_DT_CANDIDATE,
+                                                      &cur_instance_count,
+                                                      dmi, CTRLRTBL);
+                       if ((result_code == UPLL_RC_SUCCESS) &&
+                           (cur_instance_count == 1))
+                         reinterpret_cast<val_vtn *>(GetVal(vtn_ck_run))->
+                             cs_row_status =
+                             UNC_CS_UNKNOWN;
+                     }
+                     if ((op[i] == UNC_OP_CREATE) ||
+                         (op[i] == UNC_OP_UPDATE)) {
+                       result_code = DupConfigKeyVal(vtn_ctrlr_key,
+                                                     req,
+                                                     CTRLRTBL);
+                       if (result_code != UPLL_RC_SUCCESS ||
+                           vtn_ctrlr_key == NULL) {
+                         if (cfg1_cursor)
+                           dmi->CloseCursor(cfg1_cursor, true);
+                         delete req;
+                         return result_code;
+                       }
+                       GET_USER_DATA_CTRLR(vtn_ctrlr_key, ctrlr_id);
+                       string controller(reinterpret_cast<char *>(ctrlr_id));
+                       //  Passing vtn_ck_run instead of nreq
+                       if (ctrlr_result.empty()) {
+                         UPLL_LOG_TRACE("ctrlr_commit_status is NULL.");
+                         result_code = UpdateConfigStatus(
+                             vtn_ck_run,
+                             op[i],
+                             UPLL_RC_ERR_CTR_DISCONNECTED,
+                             vtn_ctrlr_key,
+                             dmi,
+                             nreq);
+                       } else {
+                         result_code = UpdateConfigStatus(
+                             vtn_ck_run,
+                             op[i],
+                             ctrlr_result[controller],
+                             vtn_ctrlr_key,
+                             dmi,
+                             nreq);
+                       }
+                     } else if (op[i] == UNC_OP_DELETE) {
+                       if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                         GET_USER_DATA_CTRLR(req, ctrlr_id);
+                         result_code = SetVtnConsolidatedStatus(vtn_ck_run,
+                                                                ctrlr_id,
+                                                                dmi);
+                         if (result_code != UPLL_RC_SUCCESS) {
+                           UPLL_LOG_DEBUG("Could not set consolidated"
+                                          "status %d",
+                                          result_code);
+                           return result_code;
+                         }
+                       }
+                       result_code = GetChildConfigKey(vtn_ctrlr_key, req);
+                     }
+                     if (result_code != UPLL_RC_SUCCESS) {
+                       if (cfg1_cursor)
+                         dmi->CloseCursor(cfg1_cursor, true);
+                       delete req;
+                       return result_code;
+                     }
+                     result_code = UpdateConfigDB(vtn_ctrlr_key,
+                                                  UPLL_DT_STATE,
+                                                  op[i],
+                                                  dmi,
+                                                  CTRLRTBL);
+                     if (result_code != UPLL_RC_SUCCESS) {
+                       if (cfg1_cursor)
+                         dmi->CloseCursor(cfg1_cursor, true);
+                       delete req;
+                       return result_code;
+                     }
+                     if (op[i] != UNC_OP_DELETE) {
+                       DbSubOp dbop_update = {kOpNotRead,
+                         kOpMatchNone,
+                         kOpInOutCs};
+                       result_code = UpdateConfigDB(vtn_ck_run,
+                                                    UPLL_DT_STATE,
+                                                    UNC_OP_UPDATE,
+                                                    dmi,
+                                                    &dbop_update,
+                                                    MAINTBL);
+                       if (result_code != UPLL_RC_SUCCESS) {
+                         if (cfg1_cursor)
+                           dmi->CloseCursor(cfg1_cursor, true);
+                         delete req;
+                         return result_code;
+                       }
+                     }
+                     EnqueCfgNotification(op[i], UPLL_DT_RUNNING, vtn_ck_run);
 #if 1
-      if (vtn_ctrlr_key)
-        delete vtn_ctrlr_key;
+                     if (vtn_ctrlr_key)
+                       delete vtn_ctrlr_key;
 #endif
-      if (vtn_ck_run)
-        delete vtn_ck_run;
-      vtn_ck_run = vtn_ctrlr_key = NULL;
-      result_code = DalToUpllResCode(db_result);
-    }
-    if (cfg1_cursor)
-      dmi->CloseCursor(cfg1_cursor, true);
-    if (req)
-      delete req;
-    if (nreq) delete nreq;
-    req = nreq = NULL;
-    // Copying Rename Table to Running
-    UPLL_LOG_DEBUG("keytype is %d", keytype);
-    result_code = TxCopyRenameTableFromCandidateToRunning(keytype,
-                                                          op[i], dmi);
-    UPLL_LOG_DEBUG("TxCopyRenameTableFromCandidateToRunning returned %d",
-                                                          result_code);
-  }
-  result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)?
-                                UPLL_RC_SUCCESS:result_code;
-  return result_code;
-}
-
-
-upll_rc_t VtnMoMgr::ReadSingleCtlrlVtnMapping(IpcReqRespHeader *header,
-                                              ConfigKeyVal *ikey,
-                                              DalDmlIntf *dmi,
-                                              uint32_t *ckv_count) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-
-  if (*ckv_count >= header->rep_count) {
-    return result_code;
-  }
-  controller_domain ctrlr_dom_in;
-  ctrlr_dom_in.ctrlr = NULL;
-  ctrlr_dom_in.domain = NULL;
-
-  IpcRequest ipc_req;
-  memset(&ipc_req, 0, sizeof(ipc_req));
-  memcpy(&(ipc_req.header), header, sizeof(IpcReqRespHeader));
-  ipc_req.header.operation = UNC_OP_READ;
-
-  ConfigKeyVal *ckv_domain = NULL, *ckv_all_domain = NULL;
-  ConfigKeyVal *ckv_drv = NULL;
-  DbSubOp op = {kOpReadMultiple, kOpMatchCtrlr, kOpInOutCtrlr | kOpInOutDomain};
-
-  GET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom_in);
-  key_vtn_t *vtnkey = reinterpret_cast<key_vtn_t *>
-      (ConfigKeyVal::Malloc(sizeof(key_vtn_t)));
-  uuu::upll_strncpy(vtnkey->vtn_name, reinterpret_cast<key_vtn_controller *>(
-          ikey->get_key())->vtn_key.vtn_name, (kMaxLenVtnName + 1));
-  ckv_all_domain = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
-                                    vtnkey, NULL);
-  SET_USER_DATA_CTRLR(ckv_all_domain, ctrlr_dom_in.ctrlr);
-  result_code = ReadConfigDB(ckv_all_domain, UPLL_DT_RUNNING,
-                             UNC_OP_READ, op, dmi, CTRLRTBL);
-  if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-    DELETE_IF_NOT_NULL(ckv_all_domain);
-    return result_code;
-  }
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_INFO("ReadConfigDB from rename tbl failed. Error code : %d",
-                   result_code);
-    DELETE_IF_NOT_NULL(ckv_all_domain);
-    return result_code;
-  }
-
-  ConfigKeyVal *result_ckv  = NULL;
-  for (ckv_domain = ckv_all_domain; ckv_domain;
-       ckv_domain = ckv_domain->get_next_cfg_key_val()) {
-    controller_domain ctrlr_dom_db;
-    ctrlr_dom_db.ctrlr = NULL;
-    ctrlr_dom_db.domain = NULL;
-    GET_USER_DATA_CTRLR_DOMAIN(ckv_domain, ctrlr_dom_db);
-    if (strncmp(reinterpret_cast<const char *>(ctrlr_dom_in.domain),
-                reinterpret_cast<const char *>(ctrlr_dom_db.domain),
-                kMaxLenDomainId +1) >= 0) {
-      UPLL_LOG_TRACE("ctrlr_dom_in.domain %s > ctrlr_dom_db.domain %s",
-                     ctrlr_dom_in.domain, ctrlr_dom_db.domain);
-      continue;
-    }
-    UPLL_LOG_TRACE("ckv_domain in loop is \n %s",
-                    ckv_domain->ToStrAll().c_str());
-    result_code = DupConfigKeyValVtnMapping(ckv_drv, ikey);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("DupConfigKeyValVtnStation failed err code %d",
-                      result_code);
-      delete ckv_all_domain;
-      return result_code;
-    }
-    ckv_domain->SetCfgVal(NULL);
-    key_vtn_t *vtn_key = &(reinterpret_cast<key_vtn_controller *>
-                          (ckv_drv->get_key())->vtn_key);
-    result_code = GetRenamedControllerKey(ckv_domain, UPLL_DT_RUNNING,
-                                          dmi, &ctrlr_dom_db);
-    if (result_code != UPLL_RC_SUCCESS &&
-        result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-      UPLL_LOG_INFO("GetRenamedControllerKey failed err code %d", result_code);
-      delete ckv_all_domain;
-      delete ckv_drv;
-      return result_code;
-    }
-    uuu::upll_strncpy(vtn_key->vtn_name, reinterpret_cast<key_vtn_t *>
-                      (ckv_domain->get_key())->vtn_name,
-                        (kMaxLenVtnName + 1));
-    UPLL_LOG_TRACE("Controller id and domain id are %s %s", ctrlr_dom_db.ctrlr,
-                   ctrlr_dom_db.domain);
-    uuu::upll_strncpy(reinterpret_cast<key_vtn_controller *>
-                      (ckv_drv->get_key())->domain_id,
-                      ctrlr_dom_db.domain, kMaxLenDomainId+1);
-    ipc_req.ckv_data = ckv_drv;
-    IpcResponse ipc_resp;
-    memset(&ipc_resp, 0, sizeof(IpcResponse));
-    if (!IpcUtil::SendReqToDriver((const char *)(ctrlr_dom_db.ctrlr),
-          reinterpret_cast<char *>(ctrlr_dom_db.domain), PFCDRIVER_SERVICE_NAME,
-          PFCDRIVER_SVID_LOGICAL, &ipc_req, true, &ipc_resp)) {
-      UPLL_LOG_INFO("Request to driver for Key %d for controller %s failed ",
-                    ikey->get_key_type(),
-                    reinterpret_cast<char *>(ctrlr_dom_db.ctrlr));
-      delete ckv_all_domain;
-      delete ckv_drv;
-      DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
-      return ipc_resp.header.result_code;
-    }
-    if (ipc_resp.header.result_code != UPLL_RC_SUCCESS
-        && ipc_resp.header.result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-      UPLL_LOG_INFO("Read from driver failed err code %d",
-                    ipc_resp.header.result_code);
-      delete ckv_all_domain;
-      delete ckv_drv;
-      DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
-      return ipc_resp.header.result_code;
-    } else if (ipc_resp.header.result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-      UPLL_LOG_DEBUG("Record Not found for domain %s", ctrlr_dom_db.domain);
-      delete ckv_drv;
-      ckv_drv = NULL;
-      DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
-      continue;
-    } else if (ipc_resp.header.result_code == UPLL_RC_SUCCESS) {
-      if (ipc_resp.ckv_data == NULL) {
-        // NOTE: Is this still happening: ipc is successfull and no ckv_data?
-        delete ckv_all_domain;
-        delete ckv_drv;
-        UPLL_LOG_DEBUG("Ipc Response ckv_data is NUll %d",
-                       ipc_resp.header.result_code);
-        return UPLL_RC_ERR_GENERIC;
-      }
-      ckv_drv->ResetWith(ipc_resp.ckv_data);
-      DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
-      uint32_t rec_count_dummy = 0;
-      uint32_t *rcd = &rec_count_dummy;
-      result_code = MappingvExtTovBr(ckv_drv, header, dmi, rcd);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("MappingvExtTovBr failed result_code - %d", result_code);
-        DELETE_IF_NOT_NULL(ckv_drv);
-        return UPLL_RC_ERR_GENERIC;
-      }
-      if (result_ckv == NULL) {
-        result_ckv = ckv_drv;
-      } else {
-        result_ckv->AppendCfgKeyVal(ckv_drv);
-      }
-      (*ckv_count)++;
-      ckv_drv = NULL;
-    }
-    if (*ckv_count >= header->rep_count) {
-      break;
-    }
-  }
-  delete ckv_all_domain;
-  if (result_ckv) {
-    ikey->ResetWith(result_ckv);
-    DELETE_IF_NOT_NULL(result_ckv);
-    result_code = UPLL_RC_SUCCESS;
-  } else {
-    result_code = UPLL_RC_ERR_NO_SUCH_INSTANCE;
-  }
-
-  return result_code;
-}
-
-upll_rc_t VtnMoMgr::ReadSingleCtlrlStation(IpcReqRespHeader *header,
-                                             ConfigKeyVal *ikey,
-                                             DalDmlIntf *dmi,
-                                             uint32_t *rec_count) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  controller_domain ctrlr_dom;
-  ctrlr_dom.ctrlr = NULL;
-  ctrlr_dom.domain = NULL;
-  DbSubOp op = {kOpNotRead, kOpMatchCtrlr, kOpInOutCtrlr | kOpInOutDomain};
-  IpcRequest ipc_req;
-  memset(&ipc_req, 0, sizeof(ipc_req));
-  memcpy(&(ipc_req.header), header, sizeof(IpcReqRespHeader));
-  ipc_req.header.operation = UNC_OP_READ;
-  val_vtnstation_controller_st_t *in_valst = NULL;
-  val_vtnstation_controller_st_t *valst = NULL;
-  val_rename_vtn *rename_valst = NULL;
-  ConfigKeyVal *ckv_drv = NULL;
-  ConfigKeyVal *ckv_rename = NULL;
-  ConfigKeyVal *okey = NULL;
-  ConfigKeyVal *ckv_vbrif = NULL;
-  bool renamed = false;
-  IpcResponse ipc_resp;
-  UPLL_LOG_DEBUG("Input ikey is %s", ikey->ToStrAll().c_str());
-  result_code = DupConfigKeyValVtnStation(okey, ikey);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("DupConfigKeyValVtnStation failed err code %d", result_code);
-    return result_code;
-  }
-  ikey->SetCfgVal(NULL);
-  ctrlr_dom.ctrlr =  reinterpret_cast<key_vtnstation_controller *>
-                     (okey->get_key())->controller_name;
-  ckv_rename = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, NULL, NULL);
-  if (!(okey->get_cfg_val())) {
-    UPLL_LOG_TRACE("val_vtnstation_controller_st is NULL");
-  } else if (okey->get_cfg_val()->get_st_num() ==
-             IpctSt::kIpcStValVtnstationControllerSt) {
-    in_valst = reinterpret_cast<val_vtnstation_controller_st_t *>(GetVal(okey));
-    if (!in_valst) {
-      UPLL_LOG_INFO("Input val_vtnstation_controller_st in Null");
-      DELETE_IF_NOT_NULL(ckv_rename);
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-    if ((in_valst->valid[UPLL_IDX_VTN_NAME_VSCS] == UNC_VF_VALID) &&
-       (in_valst->valid[UPLL_IDX_VBR_NAME_VSCS] == UNC_VF_VALID) &&
-       (in_valst->valid[UPLL_IDX_VBR_IF_NAME_VSCS] == UNC_VF_VALID)) {
-       key_vbr_if_t *vbrif_key = reinterpret_cast<key_vbr_if_t *>
-                                 (ConfigKeyVal::Malloc(sizeof(key_vbr_if_t)));
-       uuu::upll_strncpy(vbrif_key->vbr_key.vtn_key.vtn_name,
-                         in_valst->vtn_name, (kMaxLenVtnName + 1));
-       uuu::upll_strncpy(vbrif_key->vbr_key.vbridge_name, in_valst->vbr_name,
-                         (kMaxLenVnodeName + 1));
-       uuu::upll_strncpy(vbrif_key->if_name, in_valst->vbrif_name,
-                         (kMaxLenInterfaceName + 1));
-       ckv_vbrif = new ConfigKeyVal(UNC_KT_VBR_IF,
-                                     IpctSt::kIpcStKeyVbrIf,
-                                     vbrif_key, NULL);
-       SET_USER_DATA_CTRLR(ckv_vbrif, ctrlr_dom.ctrlr);
-       MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
-                        (GetMoManager(UNC_KT_VBR_IF)));
-
-       DbSubOp dbop = {kOpReadSingle, kOpMatchCtrlr,
-                       kOpInOutCtrlr | kOpInOutDomain};
-       result_code = mgr->ReadConfigDB(ckv_vbrif, UPLL_DT_RUNNING,
-                                     UNC_OP_READ, dbop, dmi, MAINTBL);
-       if (result_code != UPLL_RC_SUCCESS) {
-         UPLL_LOG_INFO("ReadConfigDB from VbrIf tbl failed errcode %d",
-                       result_code);
-         DELETE_IF_NOT_NULL(ckv_vbrif);
-         DELETE_IF_NOT_NULL(ckv_rename);
-         DELETE_IF_NOT_NULL(okey);
-         return result_code;
-       }
-       val_drv_vbr_if_t *val = reinterpret_cast<val_drv_vbr_if_t *>
-                                               (GetVal(ckv_vbrif));
-       if (val && (val->valid[PFCDRV_IDX_VEXT_NAME_VBRIF] == UNC_VF_VALID)) {
-         uuu::upll_strncpy(in_valst->vbrif_name, val->vex_name,
-                           (kMaxLenInterfaceName + 1));
-       } else {
-           UPLL_LOG_INFO("Port Map not configured");
-           DELETE_IF_NOT_NULL(ckv_vbrif);
-           DELETE_IF_NOT_NULL(ckv_rename);
-           DELETE_IF_NOT_NULL(okey);
-           return UPLL_RC_ERR_NO_SUCH_INSTANCE;
-       }
-       GET_USER_DATA_DOMAIN(ckv_vbrif, ctrlr_dom.domain);
-       ckv_vbrif->SetCfgVal(NULL);
-       result_code = mgr->GetRenamedControllerKey(ckv_vbrif, UPLL_DT_RUNNING,
-                      dmi, &ctrlr_dom);
-       if (result_code != UPLL_RC_SUCCESS &&
-           result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-         UPLL_LOG_DEBUG("GetRenamedControllerKey failed. Result : %d",
-                          result_code);
-         DELETE_IF_NOT_NULL(ckv_vbrif);
-         DELETE_IF_NOT_NULL(ckv_rename);
-         DELETE_IF_NOT_NULL(okey);
-         return result_code;
-       }
-       uuu::upll_strncpy(in_valst->vtn_name,
-                         vbrif_key->vbr_key.vtn_key.vtn_name,
-                         (kMaxLenVtnName + 1));
-       uuu::upll_strncpy(in_valst->vbr_name, vbrif_key->vbr_key.vbridge_name,
-                         (kMaxLenVnodeName + 1));
-    } else if (in_valst->valid[UPLL_IDX_VTN_NAME_VSCS] == UNC_VF_VALID) {
-      key_vtn_t *vtn_key = reinterpret_cast<key_vtn_t *>
-                         (ConfigKeyVal::Malloc(sizeof(key_vtn)));
-      uuu::upll_strncpy(vtn_key->vtn_name, in_valst->vtn_name,
-                       (kMaxLenVtnName + 1));
-      op.readop = kOpReadMultiple;
-      if (in_valst->valid[UPLL_IDX_DOMAIN_ID_VSCS] == UNC_VF_VALID) {
-        ctrlr_dom.domain = in_valst->domain_id;
-        op.matchop  = kOpMatchCtrlr | kOpMatchDomain;
-        op.readop  = kOpReadSingle;
-      }
-      ckv_rename->SetKey(IpctSt::kIpcStKeyVtn, vtn_key);
-      SET_USER_DATA_CTRLR_DOMAIN(ckv_rename, ctrlr_dom);
-      result_code = ReadConfigDB(ckv_rename, UPLL_DT_RUNNING,
-                                     UNC_OP_READ, op, dmi, RENAMETBL);
-      if (result_code != UPLL_RC_SUCCESS &&
-          result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-        UPLL_LOG_INFO("ReadConfigDB from rename tbl failed err code %d",
-                       result_code);
-        DELETE_IF_NOT_NULL(ckv_rename);
-        DELETE_IF_NOT_NULL(okey);
-        return result_code;
-      } else if (result_code == UPLL_RC_SUCCESS) {
-        renamed = true;
-      }
-    }
-  }
-  ConfigKeyVal *temp = ckv_rename;
-  for (; ckv_rename; ckv_rename = ckv_rename->get_next_cfg_key_val()) {
-    UPLL_LOG_TRACE("ckv_rename in loop is \n %s",
-                    ckv_rename->ToStrAll().c_str());
-    memset(&(ipc_resp), 0, sizeof(IpcResponse));
-    result_code = DupConfigKeyValVtnStation(ckv_drv, okey);
-    if (result_code != UPLL_RC_SUCCESS) {
-      DELETE_IF_NOT_NULL(temp);
-      DELETE_IF_NOT_NULL(okey);
-      DELETE_IF_NOT_NULL(ckv_vbrif);
-      UPLL_LOG_DEBUG("DupConfigKeyValVtnStation failed. err : %d", result_code);
-      return result_code;
-    }
-    valst = reinterpret_cast<val_vtnstation_controller_st *>(GetVal(ckv_drv));
-    rename_valst = reinterpret_cast<val_rename_vtn *>(GetVal(ckv_rename));
-    if (renamed && (valst != NULL) && (rename_valst != NULL)) {
-      uuu::upll_strncpy(valst->vtn_name, rename_valst->new_name,
-                        (kMaxLenVtnName + 1));
-    }
-    ipc_req.ckv_data = ckv_drv;
-    UPLL_LOG_DEBUG("Controller id and domain id are %s %s", ctrlr_dom.ctrlr,
-                    ctrlr_dom.domain);
-    if (!IpcUtil::SendReqToDriver((const char *)(ctrlr_dom.ctrlr),
-         reinterpret_cast<char *>(ctrlr_dom.domain), PFCDRIVER_SERVICE_NAME,
-          PFCDRIVER_SVID_LOGICAL, &ipc_req, true, &ipc_resp)) {
-      UPLL_LOG_INFO("Request to driver for Key %d for controller %s failed ",
-             ikey->get_key_type(), reinterpret_cast<char *>(ctrlr_dom.ctrlr));
-      DELETE_IF_NOT_NULL(ckv_drv);
-      DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
-      DELETE_IF_NOT_NULL(okey);
-      DELETE_IF_NOT_NULL(ckv_vbrif);
-      DELETE_IF_NOT_NULL(temp);
-      return ipc_resp.header.result_code;
-    }
-    if (ipc_resp.header.result_code != UPLL_RC_SUCCESS
-      && ipc_resp.header.result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-      UPLL_LOG_INFO("Read from driver failed err code %d",
-      ipc_resp.header.result_code);
-      DELETE_IF_NOT_NULL(ckv_drv);
-      DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
-      DELETE_IF_NOT_NULL(okey);
-      DELETE_IF_NOT_NULL(ckv_vbrif);
-      DELETE_IF_NOT_NULL(temp);
-      return ipc_resp.header.result_code;
-    } else if (ipc_resp.header.result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-      UPLL_LOG_DEBUG("Record Not found for domain %s", ctrlr_dom.domain);
-      result_code = ipc_resp.header.result_code;
-      DELETE_IF_NOT_NULL(ckv_drv);
-      DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
-      continue;
-    } else if (ipc_resp.header.result_code == UPLL_RC_SUCCESS) {
-      if (ipc_resp.ckv_data == NULL) {
-        UPLL_LOG_DEBUG("Ipc Response ckv_data is NUll %d",
-        ipc_resp.header.result_code);
-        DELETE_IF_NOT_NULL(ckv_drv);
-        DELETE_IF_NOT_NULL(okey);
-        DELETE_IF_NOT_NULL(ckv_vbrif);
-        DELETE_IF_NOT_NULL(temp);
-        return UPLL_RC_ERR_GENERIC;
-      }
-      ckv_drv->ResetWith(ipc_resp.ckv_data);
-      DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
-      result_code = MappingvExtTovBr(ckv_drv, header, dmi, rec_count);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("MappingvExtTovBr failed result_code - %d", result_code);
-        DELETE_IF_NOT_NULL(ckv_drv);
-        DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
-        DELETE_IF_NOT_NULL(okey);
-        DELETE_IF_NOT_NULL(ckv_vbrif);
-        DELETE_IF_NOT_NULL(temp);
-        return result_code;
-      }
-      UPLL_LOG_TRACE("record count is %d", *rec_count);
-      ikey->AppendCfgVal(ckv_drv->GetCfgValAndUnlink());
-    }
-    DELETE_IF_NOT_NULL(ckv_drv);
-  }
-  DELETE_IF_NOT_NULL(ckv_vbrif);
-  DELETE_IF_NOT_NULL(okey);
-  DELETE_IF_NOT_NULL(temp);
-  return result_code;
-}
-
-bool
-VtnMoMgr::IsAllInvalidAttributes(const val_vtnstation_controller_st *val_stn) {
-  for (uint16_t iter = 0;
-       iter < sizeof(val_stn->valid)/sizeof(val_stn->valid[0]);
-       iter++) {
-    if (val_stn->valid[iter] != UNC_VF_INVALID) {
-      return false;
-    }
-  }
-  return true;
-}
-
-upll_rc_t
-VtnMoMgr::ReadMo(IpcReqRespHeader * header,
-                 ConfigKeyVal * ikey,
-                 DalDmlIntf * dmi)  {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  controller_domain ctrlr_dom;
-  ctrlr_dom.ctrlr = NULL;
-  ctrlr_dom.domain = NULL;
-  key_vtn_controller *mkey = NULL;
-  ConfigKeyVal *ck_ctrlr = NULL;
-  DbSubOp op = {kOpReadMultiple, kOpMatchCtrlr,
-                kOpInOutCtrlr | kOpInOutDomain};
-  if ((ikey->get_key_type() == UNC_KT_VTN_MAPPING_CONTROLLER) ||
-      (ikey->get_key_type() == UNC_KT_VTNSTATION_CONTROLLER)) {
-    result_code = ValidateMessage(header, ikey);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("ValidateMessage failed result_code %d",
-                  result_code);
-      return result_code;
-    }
-  }
-  uint32_t rec_count = 0;
-  uint32_t *tmp_count;
-  switch (ikey->get_key_type()) {
-    case UNC_KT_VTN:
-      result_code = MoMgrImpl::ReadMo(header, ikey, dmi);
-      return result_code;
-      break;
-    case UNC_KT_VTNSTATION_CONTROLLER:
-      if (header->option1 == UNC_OPT1_NORMAL ||
-          header->option1 == UNC_OPT1_DETAIL) {
-        result_code = ReadSingleCtlrlStation(header, ikey,
-                                            dmi, &rec_count);
-      } else if (header->option1 == UNC_OPT1_COUNT &&
-         (GetVal(ikey) != NULL) && !IsAllInvalidAttributes(
-           reinterpret_cast<val_vtnstation_controller_st *>
-           (const_cast<void *>(GetVal(ikey))))) {
-       header->option1 = UNC_OPT1_NORMAL;
-       result_code = ReadSingleCtlrlStation(header, ikey,
-                                            dmi, &rec_count);
-       result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) ?
-                     UPLL_RC_SUCCESS : result_code;
-       header->option1 = UNC_OPT1_COUNT;
-       uint32_t *count =
-          reinterpret_cast<uint32_t*>(ConfigKeyVal::Malloc(sizeof(uint32_t)));
-       *count = rec_count;
-       ikey->SetCfgVal(new ConfigVal(IpctSt::kIpcStUint32, count));
-      } else if (header->option1 == UNC_OPT1_COUNT) {
-         IpcRequest ipc_req;
-         memset(&ipc_req, 0, sizeof(ipc_req));
-         memcpy(&(ipc_req.header), header, sizeof(IpcReqRespHeader));
-         IpcResponse ipc_resp;
-         memset(&ipc_resp, 0, sizeof(IpcResponse));
-         ipc_req.ckv_data = ikey;
-         ctrlr_dom.ctrlr = reinterpret_cast<key_vtnstation_controller *>
-                           (ikey->get_key())->controller_name;
-         if (!IpcUtil::SendReqToDriver((const char *)(ctrlr_dom.ctrlr),
-            reinterpret_cast<char *>(ctrlr_dom.domain), PFCDRIVER_SERVICE_NAME,
-                           PFCDRIVER_SVID_LOGICAL, &ipc_req, true, &ipc_resp)) {
-           UPLL_LOG_INFO("Request to driver for Key %d on controller %s failed",
-               ikey->get_key_type(), reinterpret_cast<char *>(ctrlr_dom.ctrlr));
-           return ipc_resp.header.result_code;
-         }
-         if (ipc_resp.header.result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_INFO("Read from driver failed err code %d",
-                             ipc_resp.header.result_code);
-          DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
-          return ipc_resp.header.result_code;
-        }
-        if (ipc_resp.ckv_data == NULL) {
-          UPLL_LOG_DEBUG("Ipc Response ckv_data is NUll %d",
-                    ipc_resp.header.result_code);
-          return UPLL_RC_ERR_GENERIC;
-        }
-        ikey->ResetWith(ipc_resp.ckv_data);
-        DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
-      }
-      break;
-    case UNC_KT_VTN_MAPPING_CONTROLLER:
-      IpcRequest ipc_req;
-      memset(&ipc_req, 0, sizeof(ipc_req));
-      memcpy(&(ipc_req.header), header, sizeof(IpcReqRespHeader));
-      IpcResponse ipc_resp;
-      memset(&ipc_resp, 0, sizeof(IpcResponse));
-      mkey = reinterpret_cast<key_vtn_controller *>(ikey->get_key());
-      ctrlr_dom.ctrlr = mkey->controller_name;
-      ctrlr_dom.domain = mkey->domain_id;
-      result_code = GetChildConfigKey(ck_ctrlr, ikey);
-      if (result_code != UPLL_RC_SUCCESS) {
-        DELETE_IF_NOT_NULL(ck_ctrlr);
-        UPLL_LOG_INFO("GetChildConfigKey failed err code %d", result_code);
-        return result_code;
-      }
-      SET_USER_DATA_CTRLR_DOMAIN(ck_ctrlr, ctrlr_dom);
-      result_code = UpdateConfigDB(ck_ctrlr, UPLL_DT_RUNNING,
-            UNC_OP_READ, dmi, &op, CTRLRTBL);
-      if (result_code != UPLL_RC_ERR_INSTANCE_EXISTS) {
-        UPLL_LOG_DEBUG("ReadConfigDB Failed result_code - %d", result_code);
-        DELETE_IF_NOT_NULL(ck_ctrlr);
-        return result_code;
-      }
-      result_code = GetRenamedControllerKey(ck_ctrlr, UPLL_DT_RUNNING, dmi,
-                                          &ctrlr_dom);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("GetRenamedControllerKey Failed result_code - %d",
-                       result_code);
-        DELETE_IF_NOT_NULL(ck_ctrlr);
-        return result_code;
-      }
-      uuu::upll_strncpy(mkey->vtn_key.vtn_name,
-                reinterpret_cast<key_vtn *>(ck_ctrlr->get_key())->vtn_name,
-                (kMaxLenVtnName + 1));
-      ipc_req.ckv_data = ikey;
-      if (!IpcUtil::SendReqToDriver((const char *)(ctrlr_dom.ctrlr),
-            reinterpret_cast<char *>(ctrlr_dom.domain), PFCDRIVER_SERVICE_NAME,
-            PFCDRIVER_SVID_LOGICAL, &ipc_req, true, &ipc_resp)) {
-        UPLL_LOG_INFO("Request to driver for Key %d for controller %s failed ",
-               ikey->get_key_type(), reinterpret_cast<char *>(ctrlr_dom.ctrlr));
-        return ipc_resp.header.result_code;
-      }
-      if (ipc_resp.header.result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_INFO("Read from driver failed err code %d",
-                             ipc_resp.header.result_code);
-        return ipc_resp.header.result_code;
-      }
-      if (ipc_resp.ckv_data == NULL) {
-        UPLL_LOG_DEBUG("Ipc Response ckv_data is NUll %d",
-                    ipc_resp.header.result_code);
-        DELETE_IF_NOT_NULL(ck_ctrlr);
-        return UPLL_RC_ERR_GENERIC;
-      }
-      ikey->ResetWith(ipc_resp.ckv_data);
-      tmp_count  = &rec_count;
-      result_code = MappingvExtTovBr(ikey, header, dmi, tmp_count);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("MappingvExtTovBr failed result_code - %d", result_code);
-        return result_code;
-      }
-      // header->rep_count = *tmp_count;
-      break;
-    default:
-      UPLL_LOG_INFO("Invalid KeyType %d", ikey->get_key_type());
-      DELETE_IF_NOT_NULL(ck_ctrlr);
-      return UPLL_RC_ERR_GENERIC;
-  }
-  return result_code;
-}
-
-upll_rc_t VtnMoMgr::ReadSiblingCount(IpcReqRespHeader *header,
-                                      ConfigKeyVal* ikey,
-                                      DalDmlIntf *dmi) {
-    UPLL_FUNC_TRACE;
-    upll_rc_t result_code = UPLL_RC_SUCCESS;
-    uint32_t *count;
-    switch (ikey->get_key_type()) {
-      case UNC_KT_VTN:
-        result_code = MoMgrImpl::ReadSiblingCount(header, ikey, dmi);
-        return result_code;
-        break;
-      case UNC_KT_VTNSTATION_CONTROLLER:
-        header->operation = UNC_OP_READ_SIBLING;
-        header->rep_count = UINT32_MAX;
-        result_code = ReadSiblingMo(header, ikey, false, dmi);
-        header->operation = UNC_OP_READ_SIBLING_COUNT;
-        count =
-            reinterpret_cast<uint32_t*>(ConfigKeyVal::Malloc(sizeof(uint32_t)));
-         *count = header->rep_count;
-         ikey->SetCfgVal(new ConfigVal(IpctSt::kIpcStUint32, count));
-        break;
-      default:
-        break;
-    }
-    return result_code;
-}
-upll_rc_t
-VtnMoMgr::ReadSiblingMo(IpcReqRespHeader *header,
-                        ConfigKeyVal *ikey,
-                        bool begin,
-                        DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  controller_domain ctrlr_dom;
-  ctrlr_dom.ctrlr = NULL;
-  ctrlr_dom.domain = NULL;
-  ConfigKeyVal *next_ckv = NULL;
-  if ((ikey->get_key_type() == UNC_KT_VTN_MAPPING_CONTROLLER) ||
-      (ikey->get_key_type() == UNC_KT_VTNSTATION_CONTROLLER)) {
-    result_code = ValidateMessage(header, ikey);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("ValidateMessage failed result_code %d",
-                  result_code);
-      return result_code;
-    }
-  }
-  key_vtn_controller *mkey = NULL;
-  ConfigKeyVal *ck_ctrlr = NULL;
-  uint32_t rec_count = 0;
-  uint32_t count = 0;
-  IpcResponse ipc_resp;
-  memset(&ipc_resp, 0, sizeof(IpcResponse));
-  IpcRequest ipc_req;
-  memset(&ipc_req, 0, sizeof(ipc_req));
-  memcpy(&(ipc_req.header), header, sizeof(IpcReqRespHeader));
-  ipc_req.ckv_data = ikey;
-  uuc::CtrlrMgr *ctrlr_mgr = uuc::CtrlrMgr::GetInstance();
-  string ctrlr_id;
-  unc_keytype_ctrtype_t ctrlrtype = UNC_CT_UNKNOWN;
-  ConfigKeyVal *okey = NULL;
-  key_vtnstation_controller *vtn_stkey = NULL;
-  key_vtn_controller *vtnkey = NULL;
-  DbSubOp op = {kOpReadExist, kOpMatchNone, kOpInOutCtrlr | kOpInOutDomain};
-  switch (ikey->get_key_type()) {
-    case UNC_KT_VTN:
-      result_code = MoMgrImpl::ReadSiblingMo(header, ikey, false, dmi);
-      return result_code;
-      break;
-    case UNC_KT_VTNSTATION_CONTROLLER:
-      result_code = DupConfigKeyValVtnStation(okey, ikey);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("DupConfigKeyValVtnStation failed err code %d",
-                        result_code);
-        return result_code;
-      }
-      if (header->operation == UNC_OP_READ_SIBLING_BEGIN) {
-        result_code = ctrlr_mgr->GetFirstCtrlrName(UPLL_DT_RUNNING,
-                                                   &ctrlr_id);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_INFO("GetFirstCtrlrName failed err code %d", result_code);
-          return result_code;
-        }
-        ctrlr_dom.ctrlr = reinterpret_cast<uint8_t *>(
-                const_cast<char *>(ctrlr_id.c_str()));
-        UPLL_LOG_DEBUG("ControllerId and DomainId are %s %s", ctrlr_dom.ctrlr,
-                          ctrlr_dom.domain);
-        if ((!ctrlr_mgr->GetCtrlrType(reinterpret_cast<char *>
-             (ctrlr_dom.ctrlr), UPLL_DT_RUNNING, &ctrlrtype)) ||
-            (ctrlrtype != UNC_CT_PFC)) {
-          UPLL_LOG_INFO("Controller type is  %d", ctrlrtype);
-        } else {
-          uuu::upll_strncpy(reinterpret_cast<key_vtnstation_controller *>
-            (okey->get_key())->controller_name, ctrlr_dom.ctrlr,
-            (kMaxLenCtrlrId + 1));
-          result_code = ReadSingleCtlrlStation(header, okey,
-                                            dmi, &rec_count);
-          if (result_code == UPLL_RC_SUCCESS)
-            count++;
-          }
-      } else {
-          ctrlr_id = reinterpret_cast<char *>
-                      (reinterpret_cast<key_vtnstation_controller *>
-                      (okey->get_key())->controller_name);
-      }
-      UPLL_LOG_DEBUG("Input Controller Id is %s", ctrlr_id.c_str());
-      while ((UPLL_RC_SUCCESS == ctrlr_mgr->GetNextCtrlrName(ctrlr_id,
-              UPLL_DT_RUNNING, &ctrlr_id)) &&
-              (count <= header->rep_count)) {
-        UPLL_LOG_DEBUG("sibling Controller Id is %s", ctrlr_id.c_str());
-        ctrlr_dom.ctrlr = reinterpret_cast<uint8_t *>(
-                  const_cast<char *>(ctrlr_id.c_str()));
-        if ((!ctrlr_mgr->GetCtrlrType(reinterpret_cast<char *>
-            (ctrlr_dom.ctrlr), UPLL_DT_RUNNING, &ctrlrtype)) ||
-            (ctrlrtype != UNC_CT_PFC)) {
-          UPLL_LOG_INFO("Controller type is  %d", ctrlrtype);
-          continue;
-        }
-        result_code = DupConfigKeyValVtnStation(next_ckv, ikey);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("DupConfigKeyValVtnStation failed err code %d",
-                          result_code);
-          return result_code;
-        }
-        vtn_stkey = reinterpret_cast<key_vtnstation_controller *>
-                                     (next_ckv->get_key());
-        uuu::upll_strncpy(vtn_stkey->controller_name, ctrlr_dom.ctrlr,
-                          (kMaxLenCtrlrId + 1));
-          result_code = ReadSingleCtlrlStation(header, next_ckv,
-                                            dmi, &rec_count);
-          if (result_code != UPLL_RC_SUCCESS &&
-              result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-            next_ckv = NULL;
-            continue;
-          }
-          count++;
-          okey->AppendCfgKeyVal(next_ckv);
-          next_ckv = NULL;
-      }
-      header->rep_count = count;
-      ikey->ResetWith(okey);
-    break;
-    case UNC_KT_VTN_MAPPING_CONTROLLER:
-    {
-      mkey = reinterpret_cast<key_vtn_controller *>(ikey->get_key());
-      ctrlr_dom.ctrlr = mkey->controller_name;
-      ctrlr_dom.domain = mkey->domain_id;
-      result_code = GetChildConfigKey(ck_ctrlr, ikey);
-
-      /* Addressed coverity REVERSE_INULL issue */
-      if (!ck_ctrlr || result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_INFO("GetChildConfigKey failed err code %d", result_code);
-        DELETE_IF_NOT_NULL(ck_ctrlr);
-        return result_code;
-      }
-      SET_USER_DATA_CTRLR_DOMAIN(ck_ctrlr, ctrlr_dom);
-      #if 0
-      if (header->operation == UNC_OP_READ_SIBLING_BEGIN)
-        op.matchop = kOpMatchNone;
-      #endif
-      result_code = UpdateConfigDB(ck_ctrlr, UPLL_DT_RUNNING,
-            UNC_OP_READ, dmi, &op, CTRLRTBL);
-      if (result_code != UPLL_RC_ERR_INSTANCE_EXISTS) {
-        UPLL_LOG_DEBUG("ReadConfigDB Failed result_code - %d", result_code);
-        DELETE_IF_NOT_NULL(ck_ctrlr);
-        return result_code;
-      }
-      DELETE_IF_NOT_NULL(ck_ctrlr);
-      // SET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
-      result_code = DupConfigKeyValVtnMapping(okey, ikey);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("DupConfigKeyValVtnMapping failed err code %d",
-                        result_code);
-        DELETE_IF_NOT_NULL(okey);
-        return result_code;
-      }
-      bool okey_mapped = false;
-      if (header->operation == UNC_OP_READ_SIBLING_BEGIN) {
-        result_code = ctrlr_mgr->GetFirstCtrlrName(
-                                 UPLL_DT_RUNNING, &ctrlr_id);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_INFO("GetFirstCtrlrName failed err code %d", result_code);
-          DELETE_IF_NOT_NULL(okey);
-          return result_code;
-        }
-        ctrlr_dom.ctrlr = reinterpret_cast<uint8_t *>(
-                const_cast<char *>(ctrlr_id.c_str()));
-        ctrlr_dom.domain = reinterpret_cast<uint8_t *>
-                               (const_cast<char *>(" "));
-        SET_USER_DATA_CTRLR_DOMAIN(okey, ctrlr_dom);
-        UPLL_LOG_TRACE("ControllerId and DomainId are %s %s", ctrlr_dom.ctrlr,
-                          ctrlr_dom.domain);
-        if ((ctrlr_mgr->GetCtrlrType(reinterpret_cast<char *>
-                          (ctrlr_dom.ctrlr), UPLL_DT_RUNNING, &ctrlrtype)) &&
-                          (ctrlrtype == UNC_CT_PFC)) {
-          uuu::upll_strncpy(reinterpret_cast<key_vtn_controller *>
-            (okey->get_key())->controller_name, ctrlr_dom.ctrlr,
-            (kMaxLenCtrlrId + 1));
-          result_code = ReadSingleCtlrlVtnMapping(header, okey,
-                                                  dmi, &rec_count);
-          if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE &&
-            result_code != UPLL_RC_SUCCESS) {
-            delete okey;
-            return result_code;
-          } else if (result_code == UPLL_RC_SUCCESS) {
-            okey_mapped = true;
-          }
-        }
-      } else {
-          // check if user given controller can be used.
-          ctrlr_id = reinterpret_cast<char *>
-                     (reinterpret_cast<key_vtn_controller *>
-                     (okey->get_key())->controller_name);
-          UPLL_LOG_TRACE("Controller Name is %s", ctrlr_id.c_str());
-          ctrlr_dom.ctrlr = reinterpret_cast<uint8_t *>(
-                  const_cast<char *>(ctrlr_id.c_str()));
-
-          if ((ctrlr_mgr->GetCtrlrType(reinterpret_cast<char *>
-              (ctrlr_dom.ctrlr), UPLL_DT_RUNNING, &ctrlrtype)) &&
-              (ctrlrtype == UNC_CT_PFC)) {
-             UPLL_LOG_INFO("Controller type is  %d", ctrlrtype);
-             // return UPLL_RC_ERR_GENERIC;
-            ctrlr_dom.domain = reinterpret_cast<key_vtn_controller *>
-                                 (okey->get_key())->domain_id;
-            UPLL_LOG_TRACE("Domain name is %s", ctrlr_dom.domain);
-            SET_USER_DATA_CTRLR_DOMAIN(okey, ctrlr_dom);
-
-            result_code = ReadSingleCtlrlVtnMapping(header, okey,
-                                                    dmi, &rec_count);
-            if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE &&
-              result_code != UPLL_RC_SUCCESS) {
-              delete okey;
-              return result_code;
-            } else if (result_code == UPLL_RC_SUCCESS) {
-              okey_mapped = true;
-            }
-         }
-      }
-      UPLL_LOG_DEBUG("Input controller id is %s", ctrlr_id.c_str());
-      while ((UPLL_RC_SUCCESS == ctrlr_mgr->GetNextCtrlrName(ctrlr_id,
-                                          UPLL_DT_RUNNING, &ctrlr_id)) &&
-                                          (rec_count < header->rep_count)) {
-        UPLL_LOG_DEBUG("Sibling controller id is %s", ctrlr_id.c_str());
-        ctrlr_dom.ctrlr = reinterpret_cast<uint8_t *>(
-                  const_cast<char *>(ctrlr_id.c_str()));
-        if (!ctrlr_mgr->GetCtrlrType(reinterpret_cast<char*>(ctrlr_dom.ctrlr),
-                     UPLL_DT_RUNNING, &ctrlrtype)) {
-          continue;
-        }
-        if (ctrlrtype != UNC_CT_PFC) {
-          UPLL_LOG_INFO("Controller type is  %d", ctrlrtype);
-          continue;
-        }
-        ctrlr_dom.domain = reinterpret_cast<uint8_t *>
-                           (const_cast<char *>(" "));
-        SET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
-        result_code = DupConfigKeyValVtnMapping(next_ckv, ikey);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("DupConfigKeyValVtnStation failed"
-                         " err code %d", result_code);
-          delete okey;
-          DELETE_IF_NOT_NULL(next_ckv);
-          return result_code;
-        }
-        vtnkey = reinterpret_cast<key_vtn_controller *>(next_ckv->get_key());
-        uuu::upll_strncpy(vtnkey->controller_name, ctrlr_dom.ctrlr,
-                          (kMaxLenCtrlrId + 1));
-        uuu::upll_strncpy(vtnkey->domain_id, ctrlr_dom.domain,
-                          (kMaxLenDomainId + 1));
-        result_code = ReadSingleCtlrlVtnMapping(header, next_ckv, dmi,
-                                                &rec_count);
-        if (result_code != UPLL_RC_SUCCESS &&
-            result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-          delete okey;
-          DELETE_IF_NOT_NULL(next_ckv);
-          return result_code;
-        } else if (result_code == UPLL_RC_SUCCESS) {
-          if (!okey_mapped) {
-             /* This recent ReadSingleCtlrlVtnMapping gave result,
-             ** but not the previous ones
-             */
+                     if (vtn_ck_run)
+                       delete vtn_ck_run;
+                     vtn_ck_run = vtn_ctrlr_key = NULL;
+                     result_code = DalToUpllResCode(db_result);
+                   }
+                   if (cfg1_cursor)
+                     dmi->CloseCursor(cfg1_cursor, true);
+                   if (req)
+                     delete req;
+                   if (nreq) delete nreq;
+                   req = nreq = NULL;
+                   //  Copying Rename Table to Running
+                   UPLL_LOG_DEBUG("keytype is %d", keytype);
+                   result_code = TxCopyRenameTableFromCandidateToRunning(
+                       keytype,
+                       op[i],
+                       dmi);
+                   UPLL_LOG_DEBUG("TxCopyRenameTableFromCandidateToRunning"
+                                  "returned %d",
+                                  result_code);
+                 }
+                 result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)?
+                     UPLL_RC_SUCCESS:result_code;
+                 return result_code;
+               }
+
+
+           upll_rc_t VtnMoMgr::ReadSingleCtlrlVtnMapping(
+               IpcReqRespHeader *header,
+               ConfigKeyVal *ikey,
+               DalDmlIntf *dmi,
+               uint32_t *ckv_count) {
+             UPLL_FUNC_TRACE;
+             upll_rc_t result_code = UPLL_RC_SUCCESS;
+
+             if (*ckv_count >= header->rep_count) {
+               return result_code;
+             }
+             controller_domain ctrlr_dom_in;
+             ctrlr_dom_in.ctrlr = NULL;
+             ctrlr_dom_in.domain = NULL;
+
+             IpcRequest ipc_req;
+             memset(&ipc_req, 0, sizeof(ipc_req));
+             memcpy(&(ipc_req.header), header, sizeof(IpcReqRespHeader));
+             ipc_req.header.operation = UNC_OP_READ;
+
+             ConfigKeyVal *ckv_domain = NULL, *ckv_all_domain = NULL;
+             ConfigKeyVal *ckv_drv = NULL;
+             DbSubOp op = {kOpReadMultiple,
+               kOpMatchCtrlr,
+               kOpInOutCtrlr | kOpInOutDomain};
+
+             GET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom_in);
+             key_vtn_t *vtnkey = reinterpret_cast<key_vtn_t *>
+                 (ConfigKeyVal::Malloc(sizeof(key_vtn_t)));
+             uuu::upll_strncpy(vtnkey->vtn_name, reinterpret_cast
+                               <key_vtn_controller *>(
+                                   ikey->get_key())->vtn_key.vtn_name,
+                               (kMaxLenVtnName + 1));
+             ckv_all_domain = new ConfigKeyVal(UNC_KT_VTN,
+                                               IpctSt::kIpcStKeyVtn,
+                                               vtnkey, NULL);
+             SET_USER_DATA_CTRLR(ckv_all_domain, ctrlr_dom_in.ctrlr);
+             result_code = ReadConfigDB(ckv_all_domain, UPLL_DT_RUNNING,
+                                        UNC_OP_READ, op, dmi, CTRLRTBL);
+             if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+               DELETE_IF_NOT_NULL(ckv_all_domain);
+               return result_code;
+             }
+             if (result_code != UPLL_RC_SUCCESS) {
+               UPLL_LOG_INFO("ReadConfigDB from rename tbl failed."
+                             "Error code : %d",
+                             result_code);
+               DELETE_IF_NOT_NULL(ckv_all_domain);
+               return result_code;
+             }
+
+             ConfigKeyVal *result_ckv  = NULL;
+             for (ckv_domain = ckv_all_domain; ckv_domain;
+                  ckv_domain = ckv_domain->get_next_cfg_key_val()) {
+               controller_domain ctrlr_dom_db;
+               ctrlr_dom_db.ctrlr = NULL;
+               ctrlr_dom_db.domain = NULL;
+               GET_USER_DATA_CTRLR_DOMAIN(ckv_domain, ctrlr_dom_db);
+               if (strncmp(reinterpret_cast<const char *>(ctrlr_dom_in.domain),
+                           reinterpret_cast<const char *>(ctrlr_dom_db.domain),
+                           kMaxLenDomainId +1) >= 0) {
+                 UPLL_LOG_TRACE("ctrlr_dom_in.domain %s > ctrlr"
+                                "_dom_db.domain %s",
+                                ctrlr_dom_in.domain, ctrlr_dom_db.domain);
+                 continue;
+               }
+               UPLL_LOG_TRACE("ckv_domain in loop is \n %s",
+                              ckv_domain->ToStrAll().c_str());
+               result_code = DupConfigKeyValVtnMapping(ckv_drv, ikey);
+               if (result_code != UPLL_RC_SUCCESS) {
+                 UPLL_LOG_DEBUG("DupConfigKeyValVtnStation failed err code %d",
+                                result_code);
+                 delete ckv_all_domain;
+                 return result_code;
+               }
+               ckv_domain->SetCfgVal(NULL);
+               key_vtn_t *vtn_key = &(reinterpret_cast<key_vtn_controller *>
+                                      (ckv_drv->get_key())->vtn_key);
+               result_code = GetRenamedControllerKey(ckv_domain,
+                                                     UPLL_DT_RUNNING,
+                                                     dmi, &ctrlr_dom_db);
+               if (result_code != UPLL_RC_SUCCESS &&
+                   result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                 UPLL_LOG_INFO("GetRenamedControllerKey failed err code %d",
+                               result_code);
+                 delete ckv_all_domain;
+                 delete ckv_drv;
+                 return result_code;
+               }
+               uuu::upll_strncpy(vtn_key->vtn_name, reinterpret_cast
+                                 <key_vtn_t *>
+                                 (ckv_domain->get_key())->vtn_name,
+                                 (kMaxLenVtnName + 1));
+               UPLL_LOG_TRACE("Controller id and domain id are %s %s",
+                              ctrlr_dom_db.ctrlr,
+                              ctrlr_dom_db.domain);
+               uuu::upll_strncpy(reinterpret_cast<key_vtn_controller *>
+                                 (ckv_drv->get_key())->domain_id,
+                                 ctrlr_dom_db.domain, kMaxLenDomainId+1);
+               ipc_req.ckv_data = ckv_drv;
+               IpcResponse ipc_resp;
+               memset(&ipc_resp, 0, sizeof(IpcResponse));
+               if (!IpcUtil::SendReqToDriver(
+                       (const char *)(ctrlr_dom_db.ctrlr),
+                       reinterpret_cast<char *>(ctrlr_dom_db.domain),
+                       PFCDRIVER_SERVICE_NAME,
+                       PFCDRIVER_SVID_LOGICAL, &ipc_req, true, &ipc_resp)) {
+                 UPLL_LOG_INFO("Request to driver for Key %d for"
+                               "controller %s failed ",
+                               ikey->get_key_type(),
+                               reinterpret_cast<char *>(ctrlr_dom_db.ctrlr));
+                 delete ckv_all_domain;
+                 delete ckv_drv;
+                 DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
+                 return ipc_resp.header.result_code;
+               }
+               if (ipc_resp.header.result_code != UPLL_RC_SUCCESS
+                   && ipc_resp.header.result_code !=
+                   UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                 UPLL_LOG_INFO("Read from driver failed err code %d",
+                               ipc_resp.header.result_code);
+                 DELETE_IF_NOT_NULL(result_ckv);
+                 DELETE_IF_NOT_NULL(ckv_all_domain);
+                 DELETE_IF_NOT_NULL(ckv_drv);
+                 DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
+                 if (ipc_resp.header.result_code ==
+                     UPLL_RC_ERR_CTR_DISCONNECTED) {
+                   ipc_resp.header.result_code = UPLL_RC_ERR_NO_SUCH_INSTANCE;
+                 }
+                 return ipc_resp.header.result_code;
+               } else if (ipc_resp.header.result_code ==
+                          UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                 UPLL_LOG_DEBUG("Record Not found for domain %s",
+                                ctrlr_dom_db.domain);
+                 delete ckv_drv;
+                 ckv_drv = NULL;
+                 DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
+                 continue;
+               } else if (ipc_resp.header.result_code == UPLL_RC_SUCCESS) {
+                 if (ipc_resp.ckv_data == NULL) {
+                   //  NOTE: Is this still happening: ipc is
+                   //  successfull and no ckv_data?
+                   delete ckv_all_domain;
+                   delete ckv_drv;
+                   UPLL_LOG_DEBUG("Ipc Response ckv_data is NUll %d",
+                                  ipc_resp.header.result_code);
+                   return UPLL_RC_ERR_GENERIC;
+                 }
+                 ckv_drv->ResetWith(ipc_resp.ckv_data);
+                 DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
+                 uint32_t rec_count_dummy = 0;
+                 uint32_t *rcd = &rec_count_dummy;
+                 result_code = MappingvExtTovBr(ckv_drv, header, dmi, rcd);
+                 if (result_code != UPLL_RC_SUCCESS) {
+                   UPLL_LOG_DEBUG("MappingvExtTovBr failed result_code - %d",
+                                  result_code);
+                   DELETE_IF_NOT_NULL(ckv_drv);
+                   return UPLL_RC_ERR_GENERIC;
+                 }
+                 if (result_ckv == NULL) {
+                   result_ckv = ckv_drv;
+                 } else {
+                   result_ckv->AppendCfgKeyVal(ckv_drv);
+                 }
+                 (*ckv_count)++;
+                 ckv_drv = NULL;
+               }
+               if (*ckv_count >= header->rep_count) {
+                 break;
+               }
+             }
+             delete ckv_all_domain;
+             if (result_ckv) {
+               ikey->ResetWith(result_ckv);
+               DELETE_IF_NOT_NULL(result_ckv);
+               result_code = UPLL_RC_SUCCESS;
+             } else {
+               result_code = UPLL_RC_ERR_NO_SUCH_INSTANCE;
+             }
+
+             return result_code;
+           }
+
+           upll_rc_t VtnMoMgr::ReadSingleCtlrlStation(IpcReqRespHeader *header,
+                                                      ConfigKeyVal *ikey,
+                                                      DalDmlIntf *dmi,
+                                                      uint32_t *rec_count) {
+             UPLL_FUNC_TRACE;
+             upll_rc_t result_code = UPLL_RC_SUCCESS;
+             controller_domain ctrlr_dom;
+             ctrlr_dom.ctrlr = NULL;
+             ctrlr_dom.domain = NULL;
+             DbSubOp op = {kOpNotRead,
+               kOpMatchCtrlr,
+               kOpInOutCtrlr | kOpInOutDomain};
+             IpcRequest ipc_req;
+             memset(&ipc_req, 0, sizeof(ipc_req));
+             memcpy(&(ipc_req.header), header, sizeof(IpcReqRespHeader));
+             ipc_req.header.operation = UNC_OP_READ;
+             val_vtnstation_controller_st_t *in_valst = NULL;
+             val_vtnstation_controller_st_t *valst = NULL;
+             val_rename_vtn *rename_valst = NULL;
+             ConfigKeyVal *ckv_drv = NULL;
+             ConfigKeyVal *ckv_rename = NULL;
+             ConfigKeyVal *okey = NULL;
+             ConfigKeyVal *ckv_vbrif = NULL;
+             bool renamed = false;
+             IpcResponse ipc_resp;
+             UPLL_LOG_DEBUG("Input ikey is %s", ikey->ToStrAll().c_str());
+             result_code = DupConfigKeyValVtnStation(okey, ikey);
+             if (result_code != UPLL_RC_SUCCESS) {
+               UPLL_LOG_DEBUG("DupConfigKeyValVtnStation failed err code %d",
+                              result_code);
+               return result_code;
+             }
+             ikey->SetCfgVal(NULL);
+             ctrlr_dom.ctrlr =  reinterpret_cast<key_vtnstation_controller *>
+                 (okey->get_key())->controller_name;
+             ckv_rename = new ConfigKeyVal(UNC_KT_VTN,
+                                           IpctSt::kIpcStKeyVtn,
+                                           NULL,
+                                           NULL);
+             if (!(okey->get_cfg_val())) {
+               UPLL_LOG_TRACE("val_vtnstation_controller_st is NULL");
+             } else if (okey->get_cfg_val()->get_st_num() ==
+                        IpctSt::kIpcStValVtnstationControllerSt) {
+               in_valst = reinterpret_cast<val_vtnstation_controller_st_t *>
+                   (GetVal(okey));
+               if (!in_valst) {
+                 UPLL_LOG_INFO("Input val_vtnstation_controller_st in Null");
+                 DELETE_IF_NOT_NULL(ckv_rename);
+                 DELETE_IF_NOT_NULL(okey);
+                 return UPLL_RC_ERR_GENERIC;
+               }
+               if ((in_valst->valid[UPLL_IDX_VTN_NAME_VSCS] == UNC_VF_VALID) &&
+                   (in_valst->valid[UPLL_IDX_VBR_NAME_VSCS] == UNC_VF_VALID) &&
+                   (in_valst->valid[UPLL_IDX_VBR_IF_NAME_VSCS] ==
+                    UNC_VF_VALID)) {
+                 key_vbr_if_t *vbrif_key = reinterpret_cast<key_vbr_if_t *>
+                     (ConfigKeyVal::Malloc(sizeof(key_vbr_if_t)));
+                 uuu::upll_strncpy(vbrif_key->vbr_key.vtn_key.vtn_name,
+                                   in_valst->vtn_name, (kMaxLenVtnName + 1));
+                 uuu::upll_strncpy(vbrif_key->vbr_key.vbridge_name,
+                                   in_valst->vbr_name,
+                                   (kMaxLenVnodeName + 1));
+                 uuu::upll_strncpy(vbrif_key->if_name, in_valst->vbrif_name,
+                                   (kMaxLenInterfaceName + 1));
+                 ckv_vbrif = new ConfigKeyVal(UNC_KT_VBR_IF,
+                                              IpctSt::kIpcStKeyVbrIf,
+                                              vbrif_key, NULL);
+                 SET_USER_DATA_CTRLR(ckv_vbrif, ctrlr_dom.ctrlr);
+                 MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(
+                     const_cast<MoManager *>
+                     (GetMoManager(UNC_KT_VBR_IF)));
+
+                 DbSubOp dbop = {kOpReadSingle, kOpMatchCtrlr,
+                   kOpInOutCtrlr | kOpInOutDomain};
+                 result_code = mgr->ReadConfigDB(ckv_vbrif,
+                                                 UPLL_DT_RUNNING,
+                                                 UNC_OP_READ,
+                                                 dbop,
+                                                 dmi,
+                                                 MAINTBL);
+                 if (result_code != UPLL_RC_SUCCESS) {
+                   UPLL_LOG_INFO("ReadConfigDB from VbrIf tbl failed"
+                                 "errcode %d",
+                                 result_code);
+                   DELETE_IF_NOT_NULL(ckv_vbrif);
+                   DELETE_IF_NOT_NULL(ckv_rename);
+                   DELETE_IF_NOT_NULL(okey);
+                   return result_code;
+                 }
+                 val_drv_vbr_if_t *val = reinterpret_cast<val_drv_vbr_if_t *>
+                     (GetVal(ckv_vbrif));
+                 if (val && (val->valid[PFCDRV_IDX_VEXT_NAME_VBRIF] ==
+                             UNC_VF_VALID)) {
+                   uuu::upll_strncpy(in_valst->vbrif_name, val->vex_name,
+                                     (kMaxLenInterfaceName + 1));
+                 } else {
+                   UPLL_LOG_INFO("Port Map not configured");
+                   DELETE_IF_NOT_NULL(ckv_vbrif);
+                   DELETE_IF_NOT_NULL(ckv_rename);
+                   DELETE_IF_NOT_NULL(okey);
+                   return UPLL_RC_ERR_NO_SUCH_INSTANCE;
+                 }
+                 GET_USER_DATA_DOMAIN(ckv_vbrif, ctrlr_dom.domain);
+                 ckv_vbrif->SetCfgVal(NULL);
+                 result_code = mgr->GetRenamedControllerKey(ckv_vbrif,
+                                                            UPLL_DT_RUNNING,
+                                                            dmi,
+                                                            &ctrlr_dom);
+                 if (result_code != UPLL_RC_SUCCESS &&
+                     result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                   UPLL_LOG_DEBUG("GetRenamedControllerKey failed. Result : %d",
+                                  result_code);
+                   DELETE_IF_NOT_NULL(ckv_vbrif);
+                   DELETE_IF_NOT_NULL(ckv_rename);
+                   DELETE_IF_NOT_NULL(okey);
+                   return result_code;
+                 }
+                 uuu::upll_strncpy(in_valst->vtn_name,
+                                   vbrif_key->vbr_key.vtn_key.vtn_name,
+                                   (kMaxLenVtnName + 1));
+                 uuu::upll_strncpy(in_valst->vbr_name, vbrif_key->
+                                   vbr_key.vbridge_name,
+                                   (kMaxLenVnodeName + 1));
+               } else if (in_valst->valid[UPLL_IDX_VTN_NAME_VSCS] ==
+                          UNC_VF_VALID) {
+                 key_vtn_t *vtn_key = reinterpret_cast<key_vtn_t *>
+                     (ConfigKeyVal::Malloc(sizeof(key_vtn)));
+                 uuu::upll_strncpy(vtn_key->vtn_name, in_valst->vtn_name,
+                                   (kMaxLenVtnName + 1));
+                 op.readop = kOpReadMultiple;
+                 if (in_valst->valid[UPLL_IDX_DOMAIN_ID_VSCS] ==
+                     UNC_VF_VALID) {
+                   ctrlr_dom.domain = in_valst->domain_id;
+                   op.matchop  = kOpMatchCtrlr | kOpMatchDomain;
+                   op.readop  = kOpReadSingle;
+                 }
+                 ckv_rename->SetKey(IpctSt::kIpcStKeyVtn, vtn_key);
+                 SET_USER_DATA_CTRLR_DOMAIN(ckv_rename, ctrlr_dom);
+                 result_code = ReadConfigDB(ckv_rename, UPLL_DT_RUNNING,
+                                            UNC_OP_READ, op, dmi, RENAMETBL);
+                 if (result_code != UPLL_RC_SUCCESS &&
+                     result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                   UPLL_LOG_INFO("ReadConfigDB from rename tbl failed"
+                                 "err code %d",
+                                 result_code);
+                   DELETE_IF_NOT_NULL(ckv_rename);
+                   DELETE_IF_NOT_NULL(okey);
+                   return result_code;
+                 } else if (result_code == UPLL_RC_SUCCESS) {
+                   renamed = true;
+                 }
+               }
+             }
+             ConfigKeyVal *temp = ckv_rename;
+             for (; ckv_rename; ckv_rename = ckv_rename->
+                  get_next_cfg_key_val()) {
+               UPLL_LOG_TRACE("ckv_rename in loop is \n %s",
+                              ckv_rename->ToStrAll().c_str());
+               memset(&(ipc_resp), 0, sizeof(IpcResponse));
+               result_code = DupConfigKeyValVtnStation(ckv_drv, okey);
+               if (result_code != UPLL_RC_SUCCESS) {
+                 DELETE_IF_NOT_NULL(temp);
+                 DELETE_IF_NOT_NULL(okey);
+                 DELETE_IF_NOT_NULL(ckv_vbrif);
+                 UPLL_LOG_DEBUG("DupConfigKeyValVtnStation failed. err : %d",
+                                result_code);
+                 return result_code;
+               }
+               valst = reinterpret_cast<val_vtnstation_controller_st *>
+                   (GetVal(ckv_drv));
+               rename_valst = reinterpret_cast<val_rename_vtn *>
+                   (GetVal(ckv_rename));
+               if (renamed && (valst != NULL) && (rename_valst != NULL)) {
+                 uuu::upll_strncpy(valst->vtn_name, rename_valst->new_name,
+                                   (kMaxLenVtnName + 1));
+               }
+               ipc_req.ckv_data = ckv_drv;
+               UPLL_LOG_DEBUG("Controller id and domain id are %s %s",
+                              ctrlr_dom.ctrlr,
+                              ctrlr_dom.domain);
+               if (!IpcUtil::SendReqToDriver((const char *)(ctrlr_dom.ctrlr),
+                                             reinterpret_cast<char *>
+                                             (ctrlr_dom.domain),
+                                             PFCDRIVER_SERVICE_NAME,
+                                             PFCDRIVER_SVID_LOGICAL,
+                                             &ipc_req,
+                                             true,
+                                             &ipc_resp)) {
+                 UPLL_LOG_INFO("Request to driver for Key %d for"
+                               "controller %s failed ",
+                               ikey->get_key_type(),
+                               reinterpret_cast<char *>(ctrlr_dom.ctrlr));
+                 DELETE_IF_NOT_NULL(ckv_drv);
+                 DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
+                 DELETE_IF_NOT_NULL(okey);
+                 DELETE_IF_NOT_NULL(ckv_vbrif);
+                 DELETE_IF_NOT_NULL(temp);
+                 return ipc_resp.header.result_code;
+               }
+               if (ipc_resp.header.result_code != UPLL_RC_SUCCESS
+                   && ipc_resp.header.result_code !=
+                   UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                 UPLL_LOG_INFO("Read from driver failed err code %d",
+                               ipc_resp.header.result_code);
+                 DELETE_IF_NOT_NULL(ckv_drv);
+                 DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
+                 DELETE_IF_NOT_NULL(okey);
+                 DELETE_IF_NOT_NULL(ckv_vbrif);
+                 DELETE_IF_NOT_NULL(temp);
+                 return ipc_resp.header.result_code;
+               } else if (ipc_resp.header.result_code ==
+                          UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                 UPLL_LOG_DEBUG("Record Not found for domain %s",
+                                ctrlr_dom.domain);
+                 result_code = ipc_resp.header.result_code;
+                 DELETE_IF_NOT_NULL(ckv_drv);
+                 DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
+                 continue;
+               } else if (ipc_resp.header.result_code ==
+                          UPLL_RC_SUCCESS) {
+                 if (ipc_resp.ckv_data == NULL) {
+                   UPLL_LOG_DEBUG("Ipc Response ckv_data is NUll %d",
+                                  ipc_resp.header.result_code);
+                   DELETE_IF_NOT_NULL(ckv_drv);
+                   DELETE_IF_NOT_NULL(okey);
+                   DELETE_IF_NOT_NULL(ckv_vbrif);
+                   DELETE_IF_NOT_NULL(temp);
+                   return UPLL_RC_ERR_GENERIC;
+                 }
+                 ckv_drv->ResetWith(ipc_resp.ckv_data);
+                 DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
+                 result_code = MappingvExtTovBr(ckv_drv,
+                                                header,
+                                                dmi,
+                                                rec_count);
+                 if (result_code != UPLL_RC_SUCCESS) {
+                   UPLL_LOG_DEBUG("MappingvExtTovBr failed result_code - %d",
+                                  result_code);
+                   DELETE_IF_NOT_NULL(ckv_drv);
+                   DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
+                   DELETE_IF_NOT_NULL(okey);
+                   DELETE_IF_NOT_NULL(ckv_vbrif);
+                   DELETE_IF_NOT_NULL(temp);
+                   return result_code;
+                 }
+                 UPLL_LOG_TRACE("record count is %d", *rec_count);
+                 ikey->AppendCfgVal(ckv_drv->GetCfgValAndUnlink());
+               }
+               DELETE_IF_NOT_NULL(ckv_drv);
+             }
+             DELETE_IF_NOT_NULL(ckv_vbrif);
              DELETE_IF_NOT_NULL(okey);
-             okey = next_ckv;
-             okey_mapped = true;
-          } else {
-              okey->AppendCfgKeyVal(next_ckv);
-          }
-        }
-        next_ckv = NULL;
-      }
-      if (rec_count != 0) {
-        header->rep_count = rec_count;
-        ikey->ResetWith(okey);
-        DELETE_IF_NOT_NULL(okey);
-        result_code = UPLL_RC_SUCCESS;
-      } else {
-        DELETE_IF_NOT_NULL(okey);
-        DELETE_IF_NOT_NULL(next_ckv);
-        if (result_code == UPLL_RC_SUCCESS ||
-            result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-          result_code = UPLL_RC_ERR_NO_SUCH_INSTANCE;
-        }
-      }
-      break;
-    }
-    default:
-      return UPLL_RC_ERR_GENERIC;
-      break;
-  }
-
-  return result_code;
-}
-
-upll_rc_t
-VtnMoMgr::MappingvExtTovBr(ConfigKeyVal * ikey,
-                           IpcReqRespHeader * req,
-                           DalDmlIntf * dmi, uint32_t *&rec_count)  {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutNone };
-  MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>
-                   (const_cast<MoManager *>(GetMoManager(UNC_KT_VBR_IF)));
-  val_vtnstation_controller_st *valst = NULL;
-  val_vtn_mapping_controller_st *val_map = NULL;
-  key_vbr_if_t *key_vbrif = NULL;
-  ConfigKeyVal *tmpckv = NULL;
-  if ((GetVal(ikey)) == NULL) {
-     UPLL_LOG_DEBUG("Val struct is not present from driver response");
-     return UPLL_RC_ERR_GENERIC;
-  }
-  ConfigVal *tmp_cval = NULL;
-  UPLL_LOG_DEBUG("ikey in MappingvExtTovBr is %s", ikey->ToStrAll().c_str());
-  for (tmp_cval = ikey->get_cfg_val(); tmp_cval;
-       tmp_cval = tmp_cval->get_next_cfg_val()) {
-  if (UNC_KT_VTNSTATION_CONTROLLER == ikey->get_key_type()) {
-    UPLL_LOG_DEBUG("KetType Matched  %d", ikey->get_key_type());
-    if (IpctSt::kIpcStValVtnstationControllerSt ==
-        tmp_cval->get_st_num()) {
-      (*rec_count)++;
-      UPLL_LOG_DEBUG("record count is %d", *rec_count);
-      valst = reinterpret_cast<val_vtnstation_controller_st_t *>(
-         tmp_cval->get_val());
-      if (!valst) {
-        UPLL_LOG_DEBUG("val_vtnstation_controller_st is NULL");
-        ConfigKeyVal::Free(key_vbrif);
-        return UPLL_RC_ERR_GENERIC;
-      }
-      if (valst->map_type == UPLL_IF_VLAN_MAP)
-        continue;
-      if ((valst->valid[UPLL_IDX_VTN_NAME_VSCS] != UNC_VF_VALID) &&
-         (valst->valid[UPLL_IDX_VBR_IF_NAME_VSCS] != UNC_VF_VALID)) {
-        UPLL_LOG_DEBUG("valid flag of vtn_name/vbrif_name is invalid");
-        ConfigKeyVal::Free(key_vbrif);
-        return UPLL_RC_ERR_GENERIC;
-      }
-      uint8_t *ctrlr_id =  reinterpret_cast<key_vtnstation_controller *>
+             DELETE_IF_NOT_NULL(temp);
+             return result_code;
+           }
+
+           bool
+               VtnMoMgr::IsAllInvalidAttributes(
+                   const val_vtnstation_controller_st *val_stn) {
+                 for (uint16_t iter = 0;
+                      iter < sizeof(val_stn->valid)/sizeof(val_stn->valid[0]);
+                      iter++) {
+                   if (val_stn->valid[iter] != UNC_VF_INVALID) {
+                     return false;
+                   }
+                 }
+                 return true;
+               }
+
+           upll_rc_t
+               VtnMoMgr::ReadMo(IpcReqRespHeader * header,
+                                ConfigKeyVal * ikey,
+                                DalDmlIntf * dmi)  {
+                 UPLL_FUNC_TRACE;
+                 upll_rc_t result_code = UPLL_RC_SUCCESS;
+                 controller_domain ctrlr_dom;
+                 ctrlr_dom.ctrlr = NULL;
+                 ctrlr_dom.domain = NULL;
+                 key_vtn_controller *mkey = NULL;
+                 ConfigKeyVal *ck_ctrlr = NULL;
+                 DbSubOp op = {kOpReadMultiple, kOpMatchCtrlr,
+                   kOpInOutCtrlr | kOpInOutDomain};
+                 if ((ikey->get_key_type() == UNC_KT_VTN_MAPPING_CONTROLLER) ||
+                     (ikey->get_key_type() == UNC_KT_VTNSTATION_CONTROLLER)) {
+                   result_code = ValidateMessage(header, ikey);
+                   if (result_code != UPLL_RC_SUCCESS) {
+                     UPLL_LOG_DEBUG("ValidateMessage failed result_code %d",
+                                    result_code);
+                     return result_code;
+                   }
+                 }
+                 uint32_t rec_count = 0;
+                 uint32_t *tmp_count;
+                 switch (ikey->get_key_type()) {
+                   case UNC_KT_VTN:
+                     result_code = MoMgrImpl::ReadMo(header, ikey, dmi);
+                     return result_code;
+                     break;
+                   case UNC_KT_VTNSTATION_CONTROLLER:
+                     if (header->option1 == UNC_OPT1_NORMAL ||
+                         header->option1 == UNC_OPT1_DETAIL) {
+                       result_code = ReadSingleCtlrlStation(header, ikey,
+                                                            dmi, &rec_count);
+                     } else if (header->option1 == UNC_OPT1_COUNT &&
+                                (GetVal(ikey) != NULL) &&
+                                !IsAllInvalidAttributes(
+                                    reinterpret_cast
+                                    <val_vtnstation_controller_st *>
+                                    (const_cast<void *>(GetVal(ikey))))) {
+                       header->option1 = UNC_OPT1_NORMAL;
+                       result_code = ReadSingleCtlrlStation(header, ikey,
+                                                            dmi, &rec_count);
+                       result_code = (result_code ==
+                                      UPLL_RC_ERR_NO_SUCH_INSTANCE) ?
+                           UPLL_RC_SUCCESS : result_code;
+                       header->option1 = UNC_OPT1_COUNT;
+                       uint32_t *count =
+                           reinterpret_cast<uint32_t*>
+                           (ConfigKeyVal::Malloc(sizeof(uint32_t)));
+                       *count = rec_count;
+                       ikey->SetCfgVal(new ConfigVal(IpctSt::kIpcStUint32,
+                                                     count));
+                     } else if (header->option1 == UNC_OPT1_COUNT) {
+                       IpcRequest ipc_req;
+                       memset(&ipc_req, 0, sizeof(ipc_req));
+                       memcpy(&(ipc_req.header),
+                              header,
+                              sizeof(IpcReqRespHeader));
+                       IpcResponse ipc_resp;
+                       memset(&ipc_resp, 0, sizeof(IpcResponse));
+                       ipc_req.ckv_data = ikey;
+                       ctrlr_dom.ctrlr =
+                           reinterpret_cast<key_vtnstation_controller *>
                            (ikey->get_key())->controller_name;
-      key_vtn_t *vtnkey = reinterpret_cast<key_vtn_t *>
-                   (ConfigKeyVal::Malloc(sizeof(key_vtn_t)));
-      uuu::upll_strncpy(vtnkey->vtn_name,
-                        valst->vtn_name, (kMaxLenVtnName + 1));
-      ConfigKeyVal *ckv_rename = new ConfigKeyVal(UNC_KT_VTN,
-                                 IpctSt::kIpcStKeyVtn, vtnkey, NULL);
-      result_code = GetRenamedUncKey(ckv_rename, UPLL_DT_RUNNING,
-                                     dmi, ctrlr_id);
-      if (result_code != UPLL_RC_SUCCESS &&
-          result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-        UPLL_LOG_INFO("GetRenamedUncKey failed error code %d", result_code);
-        if (ckv_rename) delete ckv_rename;
-        return UPLL_RC_ERR_GENERIC;
-      }
-      uuu::upll_strncpy(valst->vtn_name, reinterpret_cast<key_vtn_t *>
-                       (ckv_rename->get_key())->vtn_name,
-                       (kMaxLenVtnName + 1));
-      key_vbrif = static_cast<key_vbr_if_t *>
-        (ConfigKeyVal::Malloc(sizeof(key_vbr_if_t)));
-      uuu::upll_strncpy(key_vbrif->vbr_key.vtn_key.vtn_name,
-                       valst->vtn_name, (kMaxLenVtnName + 1));
-      val_drv_vbr_if_t *drv_val_vbrif = static_cast<val_drv_vbr_if_t *>
-        (ConfigKeyVal::Malloc(sizeof(val_drv_vbr_if_t)));
-      drv_val_vbrif->valid[PFCDRV_IDX_VEXT_NAME_VBRIF] = UNC_VF_VALID;
-      uuu::upll_strncpy(drv_val_vbrif->vex_name,
-                  valst->vbrif_name, (kMaxLenInterfaceName + 1));
-      tmpckv = new
-        ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key_vbrif,
-           new ConfigVal(IpctSt::kIpcStPfcdrvValVbrIf, drv_val_vbrif));
-      UPLL_LOG_DEBUG("tmpckv is %s", tmpckv->ToStrAll().c_str());
-      result_code = mgr->ReadConfigDB(tmpckv, req->datatype,
-                       UNC_OP_READ, dbop, dmi, MAINTBL);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("vbrif ReadConfigDB Failed result_code - %d",
-                  result_code);
-        delete tmpckv;
-        delete ckv_rename;
-        return UPLL_RC_ERR_GENERIC;
-      }
-      key_vbr_if_t *vbrif_key = reinterpret_cast<key_vbr_if_t *>
-        (tmpckv->get_key());
-      if (vbrif_key) {
-        valst->valid[UPLL_IDX_VBR_NAME_VSCS] = UNC_VF_VALID;
-        uuu::upll_strncpy(valst->vbr_name, vbrif_key->vbr_key.vbridge_name,
-        (kMaxLenVnodeName + 1));
-        uuu::upll_strncpy(valst->vbrif_name, vbrif_key->if_name,
-        (kMaxLenInterfaceName + 1));
-      }
-      delete tmpckv;
-      delete ckv_rename;
-      key_vbrif = NULL;
-      tmpckv = NULL;
-    }
-  } else if (UNC_KT_VTN_MAPPING_CONTROLLER == ikey->get_key_type()) {
-       UPLL_LOG_DEBUG("KetType Matched  %d", ikey->get_key_type());
-       if (IpctSt::kIpcStValVtnMappingControllerSt ==
-        tmp_cval->get_st_num()) {
-         val_map = reinterpret_cast<val_vtn_mapping_controller_st_t *>
-          (tmp_cval->get_val());
-         if (!val_map) {
-           UPLL_LOG_DEBUG("val_vtn_mapping_controller_st is NULL");
-           ConfigKeyVal::Free(key_vbrif);
-           return UPLL_RC_ERR_GENERIC;
-         }
-         if (val_map->map_type == UPLL_IF_VLAN_MAP)
-           continue;
-         // Valid flag check before accessing the driver reponse val
-         if (val_map->valid[UPLL_IDX_VBR_IF_NAME_VMCS] != UNC_VF_VALID) {
-           UPLL_LOG_DEBUG("valid flag of vbrif_name is invalid");
-           ConfigKeyVal::Free(key_vbrif);
-           return UPLL_RC_ERR_GENERIC;
-         }
-         (*rec_count)++;
-         UPLL_LOG_DEBUG("record count is %d", *rec_count);
-         key_vbrif = static_cast<key_vbr_if_t *>
-           (ConfigKeyVal::Malloc(sizeof(key_vbr_if_t)));
-         uint8_t *ctrlr_id =  reinterpret_cast<key_vtn_controller *>
-                            (ikey->get_key())->controller_name;
-         key_vtn_t *vtnkey = reinterpret_cast<key_vtn_t *>
-                    (ConfigKeyVal::Malloc(sizeof(key_vtn_t)));
-         uuu::upll_strncpy(vtnkey->vtn_name,
-                           reinterpret_cast<key_vtn_controller *>
-                           (ikey->get_key())->vtn_key.vtn_name,
-                           (kMaxLenVtnName + 1));
-         ConfigKeyVal *ckv_rename = new ConfigKeyVal(UNC_KT_VTN,
-                                  IpctSt::kIpcStKeyVtn, vtnkey, NULL);
-         result_code = GetRenamedUncKey(ckv_rename, UPLL_DT_RUNNING,
-                                        dmi, ctrlr_id);
-         if (result_code != UPLL_RC_SUCCESS &&
-             result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-           UPLL_LOG_INFO("GetRenamedUncKey failed. Error : %d", result_code);
-           if (ckv_rename) delete ckv_rename;
-           return UPLL_RC_ERR_GENERIC;
-         }
-         uuu::upll_strncpy(reinterpret_cast<key_vtn_controller *>
-                           (ikey->get_key())->vtn_key.vtn_name,
-                           reinterpret_cast<key_vtn_t *>
-                           (ckv_rename->get_key())->vtn_name,
-                           (kMaxLenVtnName + 1));
-         uuu::upll_strncpy(key_vbrif->vbr_key.vtn_key.vtn_name,
-                        reinterpret_cast<key_vtn_controller *>
-                          (ikey->get_key())->vtn_key.vtn_name,
-                        (kMaxLenVtnName + 1));
-         val_drv_vbr_if_t *drv_val_vbrif = static_cast<val_drv_vbr_if_t *>
-           (ConfigKeyVal::Malloc(sizeof(val_drv_vbr_if_t)));
-         drv_val_vbrif->valid[PFCDRV_IDX_VEXT_NAME_VBRIF] = UNC_VF_VALID;
-         uuu::upll_strncpy(drv_val_vbrif->vex_name,
-                     val_map->vbrif_name, (kMaxLenInterfaceName + 1));
-         tmpckv = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
-                                   key_vbrif,
-                                   new ConfigVal(IpctSt::kIpcStPfcdrvValVbrIf,
-                                                 drv_val_vbrif));
-         result_code = mgr->ReadConfigDB(tmpckv, req->datatype,
-                          UNC_OP_READ, dbop, dmi, MAINTBL);
-         if (result_code != UPLL_RC_SUCCESS) {
-           UPLL_LOG_DEBUG("vbrif ReadConfigDB Failed result_code - %d",
-                     result_code);
-           delete ckv_rename;
-           delete tmpckv;
-           return UPLL_RC_ERR_GENERIC;
-         }
-         UPLL_LOG_DEBUG("tmpckv value is %s", tmpckv->ToStrAll().c_str());
-         key_vbr_if_t *vbrif_key = reinterpret_cast<key_vbr_if_t *>
-         (tmpckv->get_key());
-         if (vbrif_key) {
-           val_map->valid[UPLL_IDX_VBR_NAME_VMCS] = UNC_VF_VALID;
-           uuu::upll_strncpy(val_map->vbr_name,
-                             vbrif_key->vbr_key.vbridge_name,
-                             (kMaxLenVnodeName + 1));
-           uuu::upll_strncpy(val_map->vbrif_name, vbrif_key->if_name,
-           (kMaxLenInterfaceName + 1));
-         }
-         delete tmpckv;
-         delete ckv_rename;
-         key_vbrif = NULL;
-         tmpckv = NULL;
-      }
-    }
-  }
-  return result_code;
-}
-
-/* Semantic check for the VTN Delete operation */
-upll_rc_t
-VtnMoMgr::IsReferenced(ConfigKeyVal *ikey,
-                       upll_keytype_datatype_t dt_type,
-                       DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  ConfigKeyVal *okey = NULL;
-  if (NULL == ikey || !dmi)
-    return UPLL_RC_ERR_GENERIC;
-  /* Create the Vtunnel Configkey for checking vtn is underlay vtn or not */
-  result_code = CreateVtunnelKey(ikey, okey);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Could not Create VtunnelKey %d", result_code);
-    return result_code;
-  }
-  MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>
-         (const_cast<MoManager *>(GetMoManager(UNC_KT_VTUNNEL)));
-  if (!mgr) {
-    UPLL_LOG_DEBUG("Instance is Null");
-    delete okey;
-    return UPLL_RC_ERR_GENERIC;
-  }
-  DbSubOp dbop = {kOpReadMultiple, kOpMatchNone, kOpInOutNone};
-  /* Checks the given vtn is exists or not */
-  result_code = mgr->ReadConfigDB(okey, dt_type, UNC_OP_READ,
-                                   dbop, dmi, MAINTBL);
-  if (UPLL_RC_SUCCESS == result_code) {
-    UPLL_LOG_DEBUG("Could not delete an Underlay Vtn referenced to "
-                   " an Overlay Vtn");
-    delete okey;
-    return UPLL_RC_ERR_CFG_SEMANTIC;
-  }
-  result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)?
-                 UPLL_RC_SUCCESS:result_code;
-  DELETE_IF_NOT_NULL(okey);
-  return result_code;
-}
-
-/* This function creates the configkey for the vtunnel
- * This funciton take the vtn name and addit into the Vtunnel
- * value structure
- */
-upll_rc_t
-VtnMoMgr::CreateVtunnelKey(ConfigKeyVal *ikey,
-                           ConfigKeyVal *&okey) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  ConfigVal *tmp;
-  if (!ikey || !(ikey->get_key()))
-    return UPLL_RC_ERR_GENERIC;
-
-  key_vtunnel_t *vtunnel_key = reinterpret_cast<key_vtunnel_t *>
-      (ConfigKeyVal::Malloc(sizeof(key_vtunnel_t)));
-  val_vtunnel_t *vtn_val_vtunnel = reinterpret_cast<val_vtunnel_t *>
-      (ConfigKeyVal::Malloc(sizeof(val_vtunnel_t)));
-  /* validate message taken care of vtn lengh checking*/
-  uuu::upll_strncpy(
-      vtn_val_vtunnel->vtn_name,
-      reinterpret_cast<key_vtn_t *>
-      (ikey->get_key())->vtn_name, (kMaxLenVtnName+1));
-  vtn_val_vtunnel->valid[UPLL_IDX_VTN_NAME_VTNL] = UNC_VF_VALID;
-
-  tmp = new ConfigVal(IpctSt::kIpcStValVtunnel, vtn_val_vtunnel);
-  if (!tmp) {
-    UPLL_LOG_ERROR("Memory Allocation failed for tmp1");
-    FREE_IF_NOT_NULL(vtunnel_key);
-    FREE_IF_NOT_NULL(vtn_val_vtunnel);
-    return UPLL_RC_ERR_GENERIC;
-  }
-  okey = new ConfigKeyVal(UNC_KT_VTUNNEL, IpctSt::kIpcStKeyVtunnel,
-                          vtunnel_key, tmp);
-  if (!okey) {
-    delete tmp;
-    FREE_IF_NOT_NULL(vtunnel_key);
-    return UPLL_RC_ERR_GENERIC;
-  }
-  SET_USER_DATA(okey, ikey);
-  return result_code;
-}
-
-upll_rc_t
-VtnMoMgr::SwapKeyVal(ConfigKeyVal *ikey,
-                     ConfigKeyVal *&okey,
-                     DalDmlIntf *dmi,
-                     uint8_t *ctrlr,
-                     bool &no_rename) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  //  ConfigVal *tmp1;
-  okey = NULL;
-  if (!ikey || !(ikey->get_key()) || !(strlen(reinterpret_cast<const char *>
-  (ctrlr)))) {
-     UPLL_LOG_DEBUG("Input is NULL");
-     return UPLL_RC_ERR_GENERIC;
-  }
-  if (ikey->get_key_type() != UNC_KT_VTN) {
-    UPLL_LOG_DEBUG("Bad Request");
-    return UPLL_RC_ERR_BAD_REQUEST;
-  }
-  ConfigVal *cfg_val = ikey->get_cfg_val();
-  if (cfg_val == NULL) {
-    UPLL_LOG_DEBUG("Configval is NULL");
-    return UPLL_RC_ERR_BAD_REQUEST;
-  }
-  val_rename_vtn_t *tval =  reinterpret_cast<val_rename_vtn_t *>
-                            (cfg_val->get_val());
-  if (!tval) {
-    UPLL_LOG_DEBUG("Val is NULL");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  key_vtn_t *key_vtn = reinterpret_cast<key_vtn_t *>
-      (ConfigKeyVal::Malloc(sizeof(key_vtn_t)));
-  /* No rename */
-  if (tval->valid[UPLL_IDX_NEW_NAME_RVTN] == UNC_VF_VALID_NO_VALUE) {
-    no_rename = true;
-    uuu::upll_strncpy(key_vtn->vtn_name,
-     ((reinterpret_cast<key_vtn_t*>(ikey->get_key()))->vtn_name),
-     (kMaxLenVtnName + 1));
-    UPLL_LOG_DEBUG("No Rename Operation %d", no_rename);
-  } else {
-    if ( tval->valid[UPLL_IDX_NEW_NAME_RVTN] == UNC_VF_VALID ) {
-      //  checking the string is empty or not
-      if (!strlen(reinterpret_cast<char *>(tval->new_name))) {
-        ConfigKeyVal::Free(key_vtn);
-        return UPLL_RC_ERR_GENERIC;
-      }
-      uuu::upll_strncpy(key_vtn->vtn_name, tval->new_name,
-                        (kMaxLenVtnName + 1));
-      //  copy the new UNC name to KeyVtn
-      /* The New Name and PFC name should not be same name */
-      if (!strcmp(reinterpret_cast<char *>
-        ((reinterpret_cast<key_vtn_t *>(ikey->get_key()))->vtn_name),
-         reinterpret_cast<char *>(tval->new_name))) {
-        ConfigKeyVal::Free(key_vtn);
-        return UPLL_RC_ERR_GENERIC;
-      }
-    } else {
-      UPLL_LOG_DEBUG("Invalid Input");
-      ConfigKeyVal::Free(key_vtn);
-      return UPLL_RC_ERR_GENERIC;
-    }
-  }
-  okey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key_vtn, NULL);
-  return result_code;
-}
-
-bool VtnMoMgr::FilterAttributes(void *&val1,
-                                void *val2,
-                                bool copy_to_running,
-                                unc_keytype_operation_t op) {
-  val_vtn_t *val_vtn1 = reinterpret_cast<val_vtn_t *>(val1);
-  val_vtn1->valid[UPLL_IDX_DESC_VTN] = UNC_VF_INVALID;
-  // to be uncommented when vtn supports other attributes
-  // other than description
+                       if (!IpcUtil::SendReqToDriver(
+                               (const char *)(ctrlr_dom.ctrlr),
+                               reinterpret_cast<char *>(ctrlr_dom.domain),
+                               PFCDRIVER_SERVICE_NAME,
+                               PFCDRIVER_SVID_LOGICAL,
+                               &ipc_req,
+                               true,
+                               &ipc_resp)) {
+                         UPLL_LOG_INFO("Request to driver for Key %d on"
+                                       "controller %s failed",
+                                       ikey->get_key_type(),
+                                       reinterpret_cast<char *>
+                                       (ctrlr_dom.ctrlr));
+                         return ipc_resp.header.result_code;
+                       }
+                       if (ipc_resp.header.result_code != UPLL_RC_SUCCESS) {
+                         UPLL_LOG_INFO("Read from driver failed err code %d",
+                                       ipc_resp.header.result_code);
+                         DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
+                         return ipc_resp.header.result_code;
+                       }
+                       if (ipc_resp.ckv_data == NULL) {
+                         UPLL_LOG_DEBUG("Ipc Response ckv_data is NUll %d",
+                                        ipc_resp.header.result_code);
+                         return UPLL_RC_ERR_GENERIC;
+                       }
+                       ikey->ResetWith(ipc_resp.ckv_data);
+                       DELETE_IF_NOT_NULL(ipc_resp.ckv_data);
+                     }
+                     break;
+                   case UNC_KT_VTN_MAPPING_CONTROLLER:
+                     IpcRequest ipc_req;
+                     memset(&ipc_req, 0, sizeof(ipc_req));
+                     memcpy(&(ipc_req.header),
+                            header,
+                            sizeof(IpcReqRespHeader));
+                     IpcResponse ipc_resp;
+                     memset(&ipc_resp, 0, sizeof(IpcResponse));
+                     mkey = reinterpret_cast<key_vtn_controller *>
+                         (ikey->get_key());
+                     ctrlr_dom.ctrlr = mkey->controller_name;
+                     ctrlr_dom.domain = mkey->domain_id;
+                     result_code = GetChildConfigKey(ck_ctrlr, ikey);
+                     if (result_code != UPLL_RC_SUCCESS) {
+                       DELETE_IF_NOT_NULL(ck_ctrlr);
+                       UPLL_LOG_INFO("GetChildConfigKey failed err code %d",
+                                     result_code);
+                       return result_code;
+                     }
+                     SET_USER_DATA_CTRLR_DOMAIN(ck_ctrlr, ctrlr_dom);
+                     result_code = UpdateConfigDB(ck_ctrlr, UPLL_DT_RUNNING,
+                                                  UNC_OP_READ,
+                                                  dmi,
+                                                  &op,
+                                                  CTRLRTBL);
+                     if (result_code != UPLL_RC_ERR_INSTANCE_EXISTS) {
+                       UPLL_LOG_DEBUG("ReadConfigDB Failed result_code - %d",
+                                      result_code);
+                       DELETE_IF_NOT_NULL(ck_ctrlr);
+                       return result_code;
+                     }
+                     result_code = GetRenamedControllerKey(ck_ctrlr,
+                                                           UPLL_DT_RUNNING,
+                                                           dmi,
+                                                           &ctrlr_dom);
+                     if (result_code != UPLL_RC_SUCCESS) {
+                       UPLL_LOG_DEBUG("GetRenamedControllerKey Failed"
+                                      "result_code - %d",
+                                      result_code);
+                       DELETE_IF_NOT_NULL(ck_ctrlr);
+                       return result_code;
+                     }
+                     uuu::upll_strncpy(mkey->vtn_key.vtn_name,
+                                       reinterpret_cast<key_vtn *>
+                                       (ck_ctrlr->get_key())->vtn_name,
+                                       (kMaxLenVtnName + 1));
+                     ipc_req.ckv_data = ikey;
+                     if (!IpcUtil::SendReqToDriver(
+                             (const char *)(ctrlr_dom.ctrlr),
+                             reinterpret_cast<char *>(ctrlr_dom.domain),
+                             PFCDRIVER_SERVICE_NAME,
+                             PFCDRIVER_SVID_LOGICAL,
+                             &ipc_req,
+                             true,
+                             &ipc_resp)) {
+                       UPLL_LOG_INFO("Request to driver for Key %d for"
+                                     "controller %s failed ",
+                                     ikey->get_key_type(),
+                                     reinterpret_cast<char *>
+                                     (ctrlr_dom.ctrlr));
+                       return ipc_resp.header.result_code;
+                     }
+                     if (ipc_resp.header.result_code != UPLL_RC_SUCCESS) {
+                       UPLL_LOG_INFO("Read from driver failed err code %d",
+                                     ipc_resp.header.result_code);
+                       return ipc_resp.header.result_code;
+                     }
+                     if (ipc_resp.ckv_data == NULL) {
+                       UPLL_LOG_DEBUG("Ipc Response ckv_data is NUll %d",
+                                      ipc_resp.header.result_code);
+                       DELETE_IF_NOT_NULL(ck_ctrlr);
+                       return UPLL_RC_ERR_GENERIC;
+                     }
+                     ikey->ResetWith(ipc_resp.ckv_data);
+                     tmp_count  = &rec_count;
+                     result_code = MappingvExtTovBr(ikey,
+                                                    header,
+                                                    dmi,
+                                                    tmp_count);
+                     if (result_code != UPLL_RC_SUCCESS) {
+                       UPLL_LOG_DEBUG("MappingvExtTovBr failed result"
+                                      "_code - %d",
+                                      result_code);
+                       return result_code;
+                     }
+                     //  header->rep_count = *tmp_count;
+                     break;
+                   default:
+                     UPLL_LOG_INFO("Invalid KeyType %d", ikey->get_key_type());
+                     DELETE_IF_NOT_NULL(ck_ctrlr);
+                     return UPLL_RC_ERR_GENERIC;
+                 }
+                 return result_code;
+               }
+
+           upll_rc_t VtnMoMgr::ReadSiblingCount(IpcReqRespHeader *header,
+                                                ConfigKeyVal* ikey,
+                                                DalDmlIntf *dmi) {
+             UPLL_FUNC_TRACE;
+             upll_rc_t result_code = UPLL_RC_SUCCESS;
+             uint32_t *count;
+             switch (ikey->get_key_type()) {
+               case UNC_KT_VTN:
+                 result_code = MoMgrImpl::ReadSiblingCount(header, ikey, dmi);
+                 return result_code;
+                 break;
+               case UNC_KT_VTNSTATION_CONTROLLER:
+                 header->operation = UNC_OP_READ_SIBLING;
+                 header->rep_count = UINT32_MAX;
+                 result_code = ReadSiblingMo(header, ikey, false, dmi);
+                 header->operation = UNC_OP_READ_SIBLING_COUNT;
+                 count =
+                     reinterpret_cast<uint32_t*>(
+                         ConfigKeyVal::Malloc(sizeof(uint32_t)));
+                 *count = header->rep_count;
+                 ikey->SetCfgVal(new ConfigVal(IpctSt::kIpcStUint32, count));
+                 break;
+               default:
+                 break;
+             }
+             return result_code;
+           }
+           upll_rc_t
+               VtnMoMgr::ReadSiblingMo(IpcReqRespHeader *header,
+                                       ConfigKeyVal *ikey,
+                                       bool begin,
+                                       DalDmlIntf *dmi) {
+                 UPLL_FUNC_TRACE;
+                 upll_rc_t result_code = UPLL_RC_SUCCESS;
+                 controller_domain ctrlr_dom;
+                 ctrlr_dom.ctrlr = NULL;
+                 ctrlr_dom.domain = NULL;
+                 ConfigKeyVal *next_ckv = NULL;
+                 if ((ikey->get_key_type() == UNC_KT_VTN_MAPPING_CONTROLLER) ||
+                     (ikey->get_key_type() == UNC_KT_VTNSTATION_CONTROLLER)) {
+                   result_code = ValidateMessage(header, ikey);
+                   if (result_code != UPLL_RC_SUCCESS) {
+                     UPLL_LOG_DEBUG("ValidateMessage failed result_code %d",
+                                    result_code);
+                     return result_code;
+                   }
+                 }
+                 key_vtn_controller *mkey = NULL;
+                 ConfigKeyVal *ck_ctrlr = NULL;
+                 uint32_t rec_count = 0;
+                 uint32_t count = 0;
+                 IpcResponse ipc_resp;
+                 memset(&ipc_resp, 0, sizeof(IpcResponse));
+                 IpcRequest ipc_req;
+                 memset(&ipc_req, 0, sizeof(ipc_req));
+                 memcpy(&(ipc_req.header), header, sizeof(IpcReqRespHeader));
+                 ipc_req.ckv_data = ikey;
+                 uuc::CtrlrMgr *ctrlr_mgr = uuc::CtrlrMgr::GetInstance();
+                 string ctrlr_id;
+                 unc_keytype_ctrtype_t ctrlrtype = UNC_CT_UNKNOWN;
+                 ConfigKeyVal *okey = NULL;
+                 key_vtnstation_controller *vtn_stkey = NULL;
+                 key_vtn_controller *vtnkey = NULL;
+                 DbSubOp op = {kOpReadExist,
+                   kOpMatchNone,
+                   kOpInOutCtrlr | kOpInOutDomain};
+                 switch (ikey->get_key_type()) {
+                   case UNC_KT_VTN:
+                     result_code = MoMgrImpl::ReadSiblingMo(header,
+                                                            ikey,
+                                                            false,
+                                                            dmi);
+                     return result_code;
+                     break;
+                   case UNC_KT_VTNSTATION_CONTROLLER:
+                     result_code = DupConfigKeyValVtnStation(okey, ikey);
+                     if (result_code != UPLL_RC_SUCCESS) {
+                       UPLL_LOG_DEBUG("DupConfigKeyValVtnStation failed"
+                                      "err code %d",
+                                      result_code);
+                       return result_code;
+                     }
+                     if (header->operation == UNC_OP_READ_SIBLING_BEGIN) {
+                       result_code = ctrlr_mgr->GetFirstCtrlrName(
+                           UPLL_DT_RUNNING,
+                           &ctrlr_id);
+                       if (result_code != UPLL_RC_SUCCESS) {
+                         UPLL_LOG_INFO("GetFirstCtrlrName failed err code %d",
+                                       result_code);
+                         return result_code;
+                       }
+                       ctrlr_dom.ctrlr = reinterpret_cast<uint8_t *>(
+                           const_cast<char *>(ctrlr_id.c_str()));
+                       UPLL_LOG_DEBUG("ControllerId and DomainId are %s %s",
+                                      ctrlr_dom.ctrlr,
+                                      ctrlr_dom.domain);
+                       if ((!ctrlr_mgr->GetCtrlrType(reinterpret_cast<char *>
+                                                     (ctrlr_dom.ctrlr),
+                                                     UPLL_DT_RUNNING,
+                                                     &ctrlrtype)) ||
+                           (ctrlrtype != UNC_CT_PFC)) {
+                         UPLL_LOG_INFO("Controller type is  %d", ctrlrtype);
+                       } else {
+                         uuu::upll_strncpy(
+                             reinterpret_cast<key_vtnstation_controller *>
+                             (okey->get_key())->controller_name,
+                             ctrlr_dom.ctrlr,
+                             (kMaxLenCtrlrId + 1));
+                         result_code = ReadSingleCtlrlStation(header, okey,
+                                                              dmi, &rec_count);
+                         if (result_code == UPLL_RC_SUCCESS)
+                           count++;
+                       }
+                     } else {
+                       ctrlr_id = reinterpret_cast<char *>
+                           (reinterpret_cast<key_vtnstation_controller *>
+                            (okey->get_key())->controller_name);
+                     }
+                     UPLL_LOG_DEBUG("Input Controller Id is %s",
+                                    ctrlr_id.c_str());
+                     while ((UPLL_RC_SUCCESS == ctrlr_mgr->GetNextCtrlrName(
+                                 ctrlr_id,
+                                 UPLL_DT_RUNNING,
+                                 &ctrlr_id)) &&
+                         (count <= header->rep_count)) {
+                       UPLL_LOG_DEBUG("sibling Controller Id is %s",
+                                      ctrlr_id.c_str());
+                       ctrlr_dom.ctrlr = reinterpret_cast<uint8_t *>(
+                           const_cast<char *>(ctrlr_id.c_str()));
+                       if ((!ctrlr_mgr->GetCtrlrType(reinterpret_cast<char *>
+                                                     (ctrlr_dom.ctrlr),
+                                                     UPLL_DT_RUNNING,
+                                                     &ctrlrtype)) ||
+                           (ctrlrtype != UNC_CT_PFC)) {
+                         UPLL_LOG_INFO("Controller type is  %d", ctrlrtype);
+                         continue;
+                       }
+                       result_code = DupConfigKeyValVtnStation(next_ckv, ikey);
+                       if (result_code != UPLL_RC_SUCCESS) {
+                         UPLL_LOG_DEBUG("DupConfigKeyValVtnStation failed"
+                                        "err code %d",
+                                        result_code);
+                         return result_code;
+                       }
+                       vtn_stkey = reinterpret_cast<key_vtnstation_controller *>
+                           (next_ckv->get_key());
+                       uuu::upll_strncpy(vtn_stkey->controller_name,
+                                         ctrlr_dom.ctrlr,
+                                         (kMaxLenCtrlrId + 1));
+                       result_code = ReadSingleCtlrlStation(header, next_ckv,
+                                                            dmi, &rec_count);
+                       if (result_code != UPLL_RC_SUCCESS &&
+                           result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                         next_ckv = NULL;
+                         continue;
+                       }
+                       count++;
+                       okey->AppendCfgKeyVal(next_ckv);
+                       next_ckv = NULL;
+                     }
+                     header->rep_count = count;
+                     ikey->ResetWith(okey);
+                     break;
+                   case UNC_KT_VTN_MAPPING_CONTROLLER:
+                     {
+                       mkey = reinterpret_cast<key_vtn_controller *>
+                           (ikey->get_key());
+                       ctrlr_dom.ctrlr = mkey->controller_name;
+                       ctrlr_dom.domain = mkey->domain_id;
+                       result_code = GetChildConfigKey(ck_ctrlr, ikey);
+
+                       /* Addressed coverity REVERSE_INULL issue */
+                       if (!ck_ctrlr || result_code != UPLL_RC_SUCCESS) {
+                         UPLL_LOG_INFO("GetChildConfigKey failed err code %d",
+                                       result_code);
+                         DELETE_IF_NOT_NULL(ck_ctrlr);
+                         return result_code;
+                       }
+                       SET_USER_DATA_CTRLR_DOMAIN(ck_ctrlr, ctrlr_dom);
 #if 0
-  val_vtn_ctrlr *ctrlr_val = reinterpret_cast<val_vtn_ctrlr_t *>(val2);
-  for (unsigned int loop = 0;
-       loop < sizeof(val_vtn1->valid)/sizeof(val_vtn1->valid[0]);
-       ++loop) {
-    if (ctrlr_val->cs_attr[loop] == UNC_CS_NOT_SUPPORTED)
-      val_vtn1->valid[loop] = UNC_VF_INVALID;
-  }
-  if (op != UNC_OP_CREATE)
-    return CompareValidValue(val1, val2, copy_to_running);
+                       if (header->operation == UNC_OP_READ_SIBLING_BEGIN)
+                         op.matchop = kOpMatchNone;
 #endif
-  return false;
-}
-
-bool VtnMoMgr::CompareValidValue(void *&val1, void *val2,
-                                 bool copy_to_running) {
-  UPLL_FUNC_TRACE;
-  bool invalid_attr = true;
-  val_vtn_t *val_vtn1 = reinterpret_cast<val_vtn_t *>(val1);
-  val_vtn_t *val_vtn2 = reinterpret_cast<val_vtn_t *>(val2);
-  val_vtn_index vtn_description = UPLL_IDX_DESC_VTN;
-  if (UNC_VF_INVALID == val_vtn1->valid[vtn_description] &&
-                        UNC_VF_VALID == val_vtn2->valid[vtn_description])
-    val_vtn1->valid[vtn_description] = UNC_VF_VALID_NO_VALUE;
-  if  (UNC_VF_INVALID != val_vtn1->valid[vtn_description]) { 
-    if (!copy_to_running ||
-        ((UNC_VF_VALID == val_vtn1->valid[vtn_description]) &&
-         (!strcmp(reinterpret_cast<char*>(val_vtn1->description),
-               reinterpret_cast<char*>(val_vtn2->description)) )))
-      val_vtn1->valid[vtn_description] = UNC_VF_INVALID;
-  }
-  /* filters the attributes from being sent to the controller */
-  for (unsigned int loop = 0;
-       loop < sizeof(val_vtn1->valid)/sizeof(val_vtn1->valid[0]);
-       ++loop) {
-    if ((UNC_VF_VALID == val_vtn1->valid[loop]) ||
-        (UNC_VF_VALID_NO_VALUE == val_vtn1->valid[loop])) {
-      invalid_attr = false;
-      break;
-    }
-  }
-  return invalid_attr;
-}
-
-upll_rc_t VtnMoMgr::UpdateCtrlrConfigStatus(
-                            unc_keytype_configstatus_t cs_status,
-                            uuc::UpdateCtrlrPhase phase,
-                            ConfigKeyVal *&ckv_running) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  val_vtn_ctrlr_t *val;
-  val = (ckv_running != NULL)?
-        reinterpret_cast<val_vtn_ctrlr_t *>(GetVal(ckv_running)):NULL;
-  if (NULL == val) {
-    return UPLL_RC_ERR_GENERIC;
-  }
-  if (uuc::kUpllUcpCreate == phase )
-  val->cs_row_status = cs_status;
-  if ((uuc::kUpllUcpUpdate == phase) &&
-           (val->cs_row_status == UNC_CS_INVALID ||
-            val->cs_row_status == UNC_CS_NOT_APPLIED))
-    val->cs_row_status = cs_status;
-  if ((cs_status == UNC_CS_INVALID &&
-       UNC_VF_VALID == val->valid[UPLL_IDX_DESC_VTN]) ||
-       cs_status == UNC_CS_APPLIED)
-    val->cs_attr[UPLL_IDX_DESC_VTN] = cs_status;
-  return result_code;
-}
-
-upll_rc_t
-VtnMoMgr::UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
-                                  uuc::UpdateCtrlrPhase phase,
-                                  ConfigKeyVal *&ckv_running) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  val_vtn_t *val;
-  val = (ckv_running != NULL)?
-        reinterpret_cast<val_vtn_t *>(GetVal(ckv_running)):NULL;
-  if (NULL == val) {
-    return UPLL_RC_ERR_GENERIC;
-  }
-  if (uuc::kUpllUcpCreate == phase )
-  val->cs_row_status = cs_status;
-  for ( unsigned int loop = 0;
-           loop < sizeof(val->valid)/sizeof(uint8_t); ++loop ) {
-    if ((cs_status == UNC_CS_INVALID && UNC_VF_VALID == val->valid[loop]) ||
-        cs_status == UNC_CS_APPLIED)
-    val->cs_attr[loop] = cs_status;
-  }
-  return result_code;
-}
-
-upll_rc_t
-VtnMoMgr::SetVtnConsolidatedStatus(ConfigKeyVal *ikey,
-                                   uint8_t *ctrlr_id,
-                                   DalDmlIntf *dmi)  {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  ConfigKeyVal *ctrlr_ckv = NULL;
-  val_vtn_ctrlr *ctrlr_val = NULL;
-  uint8_t *vtn_exist_on_ctrlr = NULL;
-  bool applied = false, not_applied = false, invalid = false;
-  unc_keytype_configstatus_t c_status = UNC_CS_NOT_APPLIED;
-  DbSubOp dbop = { kOpReadMultiple, kOpMatchNone,
-                   kOpInOutCtrlr | kOpInOutDomain | kOpInOutCs };
-  if (!ikey || !dmi || !ctrlr_id) {
-    UPLL_LOG_DEBUG("Invalid Input");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  result_code = GetChildConfigKey(ctrlr_ckv, ikey);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("GetChildConfigKey failed err code %d", result_code);
-    return result_code;
-  }
-  result_code = ReadConfigDB(ctrlr_ckv, UPLL_DT_RUNNING, UNC_OP_READ, dbop, dmi,
-                             CTRLRTBL);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("ReadConfigDB from ctrltbl failed err code %d",
-                   result_code);
-    delete ctrlr_ckv;
-    return result_code;
-  }
-
-  for (ConfigKeyVal *tmp = ctrlr_ckv; tmp != NULL;
-                     tmp = tmp->get_next_cfg_key_val()) {
-    ctrlr_val = reinterpret_cast<val_vtn_ctrlr *>(GetVal(tmp));
-    if (!ctrlr_val) {
-      UPLL_LOG_DEBUG("Controller Value is empty");
-      tmp = NULL;
-      delete ctrlr_ckv;
-      return UPLL_RC_ERR_GENERIC;
-    }
-    GET_USER_DATA_CTRLR(tmp, vtn_exist_on_ctrlr);
-    if (!strcmp(reinterpret_cast<char *>(vtn_exist_on_ctrlr),
-                reinterpret_cast<char *>(ctrlr_id)))
-      continue;  // skipping entry of deleted controller
-
-    switch (ctrlr_val->cs_row_status) {
-      case UNC_CS_APPLIED:
-        applied = true;
-      break;
-      case UNC_CS_NOT_APPLIED:
-      case UNC_CS_NOT_SUPPORTED:
-        not_applied = true;
-      break;
-      case UNC_CS_INVALID:
-        invalid = true;
-      break;
-      default:
-        UPLL_LOG_DEBUG("Invalid status");
-    }
-    vtn_exist_on_ctrlr = NULL;
-  }
-  if (invalid)
-    c_status = UNC_CS_INVALID;
-  else if (applied && !not_applied)
-    c_status = UNC_CS_APPLIED;
-  else if (!applied && not_applied)
-    c_status = UNC_CS_NOT_APPLIED;
-  else if (applied && not_applied)
-    c_status = UNC_CS_PARTIALLY_APPLIED;
-  else
-    c_status = UNC_CS_APPLIED;
-  // Set cs_status
-  val_vtn_t *vtnval = static_cast<val_vtn_t *>(GetVal(ikey));
-  vtnval->cs_row_status = c_status;
-  vtnval->cs_attr[0] = UNC_CS_APPLIED;
-  DbSubOp dbop_update = {kOpNotRead, kOpMatchNone, kOpInOutCs};
-  result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_UPDATE, dmi,
-                               &dbop_update, MAINTBL);
-  delete ctrlr_ckv;
-  return result_code;
-}
-
-upll_rc_t
-VtnMoMgr::SetConsolidatedStatus(ConfigKeyVal * ikey,
-                                DalDmlIntf * dmi)  {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  ConfigKeyVal *ckv = NULL;
-  DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutCs };
-  result_code = GetChildConfigKey(ckv, ikey);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_INFO("GetChildConfigKey failed err code %d", result_code);
-    return result_code;
-  }
-  result_code = ReadConfigDB(ckv, UPLL_DT_RUNNING, UNC_OP_READ, dbop, dmi,
-                             CTRLRTBL);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_INFO("ReadConfigDB from ctrltbl failed err code %d",
-                   result_code);
-    delete(ckv);
-    return result_code;
-  }
-  list < unc_keytype_configstatus_t > list_cs_row;
-  val_vtn_ctrlr *val;
-  ConfigKeyVal *tmp = ckv;
-  for (; tmp != NULL; tmp = tmp->get_next_cfg_key_val()) {
-    val = reinterpret_cast<val_vtn_ctrlr *>(GetVal(tmp));
-    list_cs_row.push_back(static_cast<unc_keytype_configstatus_t>(val->cs_row_status));
-  }
-  DELETE_IF_NOT_NULL(ckv);
-  val_vtn_t *val_temp = reinterpret_cast<val_vtn_t *>(GetVal(ikey));
-  val_temp->cs_row_status = GetConsolidatedCsStatus(list_cs_row);
-  result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_UPDATE, dmi,
-                               MAINTBL);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("SetConsolidatedStatus failed. UpdateConfigDB Failed"
-                   " Result Code - %d", result_code);
-  }
-  return result_code;
-}
-
-upll_rc_t
-VtnMoMgr::MergeValidateChildren(ConfigKeyVal *import_ckval,
-                                const char *ctrlr_id,
-                                ConfigKeyVal *ikey,
-                                DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  if (!import_ckval || !(import_ckval->get_key())) {
-    UPLL_LOG_DEBUG("Invalid Input");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  ConfigKeyVal *ckval = NULL;
-  unc_key_type_t child_key[]= {
-                         UNC_KT_VBRIDGE, UNC_KT_VROUTER, 
-                         UNC_KT_VRT_IF, UNC_KT_VLINK
-                              };
-  while (import_ckval) {
-    for (unsigned int i = 0;
-             i < sizeof(child_key)/sizeof(child_key[0]); i++) {
-      const unc_key_type_t ktype = child_key[i];
-      MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(
-          const_cast<MoManager *>(GetMoManager(ktype)));
-      if (!mgr) {
-        UPLL_LOG_DEBUG("Instance is NULL");
-        return UPLL_RC_ERR_GENERIC;
-      }
-      result_code = mgr->GetChildConfigKey(ckval, import_ckval);
-      if (UPLL_RC_SUCCESS != result_code) {
-        if (ckval) {
-          delete ckval;
-          ckval = NULL;
-        }
-        UPLL_LOG_DEBUG("GetChildConfigKey Failed %d", result_code);
-        return result_code;
-      }
-      result_code = mgr->MergeValidate(child_key[i], ctrlr_id, ckval, dmi);
-      UPLL_LOG_TRACE("Result code is %d key type %d", result_code, ktype);
-
-      if (UPLL_RC_SUCCESS != result_code &&
-          UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
-        if (UPLL_RC_ERR_MERGE_CONFLICT == result_code) {
-            UPLL_LOG_DEBUG(" Merge Conflict %d", result_code);
-            ikey->ResetWith(ckval);
-            if (ikey)
-              UPLL_LOG_DEBUG("Conflict detail %s", ikey->ToStrAll().c_str());
-        } else {
-          UPLL_LOG_DEBUG("Merge Validate Failed %d", result_code);
-        }
-        if (NULL != ckval) {
-          delete ckval;
-        ckval = NULL;
-        }
-        return result_code;
-      }
-      if (ckval)
-        delete ckval;
-      ckval = NULL;
-    }
-    import_ckval = import_ckval->get_next_cfg_key_val();
-  }
-  result_code = (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) ?
-                 UPLL_RC_SUCCESS : result_code;
-  return result_code;
-}
-
-upll_rc_t
-VtnMoMgr::MergeValidate(unc_key_type_t keytype,
-                        const char *ctrlr_id,
-                        ConfigKeyVal *ikey,
-                        DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
-  // Import Controller Name Not needed so checks is missing.
-  ConfigKeyVal *import_ckval = NULL;
-  result_code = GetChildConfigKey(import_ckval, NULL);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("GetChildConfig Failed ");
-    return result_code;
-  }
-  DbSubOp dbop = {kOpReadMultiple, kOpMatchNone, kOpInOutNone};
-  result_code = ReadConfigDB(import_ckval, UPLL_DT_IMPORT, UNC_OP_READ,
-                dbop, dmi, MAINTBL);
-  if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-    UPLL_LOG_DEBUG("No Records in the Import DB");
-    DELETE_IF_NOT_NULL(import_ckval);
-    return UPLL_RC_SUCCESS;
-  }
-
-  /* Other than  UPLL_RC_ERR_NO_SUCH_INSTANCE AND UPLL_RC_SUCCESS */
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG(" ReadConfigDB Failed %d", result_code);
-    DELETE_IF_NOT_NULL(import_ckval);
-    return result_code;
-  }
-  ConfigKeyVal *start_ckv = import_ckval;
-  result_code = MergeValidateChildren(import_ckval, ctrlr_id, ikey, dmi);
-  DELETE_IF_NOT_NULL(start_ckv);  // check with Karthik
-
-  if (UPLL_RC_SUCCESS == result_code) {
-    ConfigKeyVal *req = NULL;
-    ConfigKeyVal *nreq = NULL;
-    DalCursor *dal_cursor_handle  = NULL;
-    UPLL_LOG_TRACE("Create Entry in candidate");
-    result_code = DiffConfigDB(UPLL_DT_IMPORT, UPLL_DT_CANDIDATE,
-                  UNC_OP_CREATE, req, nreq, &dal_cursor_handle, dmi, MAINTBL);
-    while (UPLL_RC_SUCCESS == result_code) {
-      result_code = DalToUpllResCode(dmi->GetNextRecord(dal_cursor_handle));
-      if (UPLL_RC_SUCCESS != result_code
-          && UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
-         UPLL_LOG_DEBUG("GetNextRecord Failed ");
-         DELETE_IF_NOT_NULL(req);
-         DELETE_IF_NOT_NULL(nreq);
-         if (dal_cursor_handle)
-           dmi->CloseCursor(dal_cursor_handle, true);
-         return result_code;
-      }
-      if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-        DELETE_IF_NOT_NULL(req);
-        DELETE_IF_NOT_NULL(nreq);
-        if (dal_cursor_handle)
-          dmi->CloseCursor(dal_cursor_handle, true);
-        return UPLL_RC_SUCCESS;
-      }
-      dbop.inoutop = kOpInOutFlag | kOpInOutCtrlr | kOpInOutDomain;
-      result_code = UpdateConfigDB(req, UPLL_DT_CANDIDATE, UNC_OP_CREATE,
-                                    dmi, &dbop, MAINTBL);
-      if (UPLL_RC_SUCCESS != result_code) {
-       DELETE_IF_NOT_NULL(req);
-       DELETE_IF_NOT_NULL(nreq);
-       if (dal_cursor_handle)
-         dmi->CloseCursor(dal_cursor_handle, true);
-       UPLL_LOG_DEBUG("UpdateConfigDB Failed");
-        return result_code;
-      }
-    }
-    DELETE_IF_NOT_NULL(req);
-    DELETE_IF_NOT_NULL(nreq);
-    if (dal_cursor_handle)
-      dmi->CloseCursor(dal_cursor_handle, true);
-  }
-  result_code = (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code)?
-                UPLL_RC_SUCCESS : result_code;
-  return result_code;
-}
-
-upll_rc_t
-VtnMoMgr::TxUpdateController(unc_key_type_t keytype,
-                             uint32_t session_id,
-                             uint32_t config_id,
-                             uuc::UpdateCtrlrPhase phase,
-                             set<string> *affected_ctrlr_set,
-                             DalDmlIntf *dmi,
-                             ConfigKeyVal **err_ckv) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  DalResultCode dal_result = uud::kDalRcSuccess;
-  ConfigKeyVal *req = NULL, *nreq = NULL, *ck_main = NULL;
-  controller_domain ctrlr_dom;
-  DalCursor *dal_cursor_handle;
-  IpcResponse resp;
-  memset(&resp, 0, sizeof(resp));
-  unc_keytype_operation_t op = (phase == uuc::kUpllUcpCreate)?UNC_OP_CREATE:
-        ((phase == uuc::kUpllUcpUpdate)?UNC_OP_UPDATE:
-        ((phase == uuc::kUpllUcpDelete)?UNC_OP_DELETE:UNC_OP_INVALID));
-  ctrlr_dom.ctrlr = NULL;
-  ctrlr_dom.domain = NULL;
-  MoMgrTables tbl = (op != UNC_OP_UPDATE)?CTRLRTBL:MAINTBL;
-  result_code = DiffConfigDB(UPLL_DT_CANDIDATE, UPLL_DT_RUNNING,
-                  op, req, nreq, &dal_cursor_handle, dmi, tbl);
-  resp.header.clnt_sess_id = session_id;
-  resp.header.config_id = config_id;
-  while (result_code == UPLL_RC_SUCCESS) {
-    // Get Next Record
-    dal_result = dmi->GetNextRecord(dal_cursor_handle);
-    result_code = DalToUpllResCode(dal_result);
-    if (result_code != UPLL_RC_SUCCESS)
-      break;
-    ck_main = NULL;
-    if (op != UNC_OP_UPDATE) {
-      if (op == UNC_OP_CREATE)
-        result_code = DupConfigKeyVal(ck_main, req, tbl);
-      else
-        result_code = GetChildConfigKey(ck_main, req);
-      if (!ck_main || result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("Returning error %d", result_code);
-        if (ck_main)
-          delete ck_main;
-        return result_code;
-      }
-      GET_USER_DATA_CTRLR_DOMAIN(ck_main, ctrlr_dom);
-      UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom.ctrlr,
-                     ctrlr_dom.domain);
-      if ((ctrlr_dom.ctrlr == NULL) || (ctrlr_dom.domain == NULL)) {
-        UPLL_LOG_INFO("Invalid controller/domain");
-        delete ck_main;
-        return UPLL_RC_ERR_GENERIC;
-      }
-      result_code = TxUpdateProcess(ck_main, &resp,
-                                    op, dmi, &ctrlr_dom);
-      affected_ctrlr_set->insert((const char *)ctrlr_dom.ctrlr);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("Returns error %d", result_code);
-        *err_ckv = resp.ckv_data;
-        break;
-      }
-      DELETE_IF_NOT_NULL(resp.ckv_data);
-    } else {
-      ConfigKeyVal *ck_ctrlr = NULL;
-      result_code = DupConfigKeyVal(ck_main, req, tbl);
-      if (!ck_main || result_code != UPLL_RC_SUCCESS) {
-        DELETE_IF_NOT_NULL(ck_main);
-        return result_code;
-      }
+                       result_code = UpdateConfigDB(ck_ctrlr,
+                                                    UPLL_DT_RUNNING,
+                                                    UNC_OP_READ,
+                                                    dmi,
+                                                    &op,
+                                                    CTRLRTBL);
+                       if (result_code != UPLL_RC_ERR_INSTANCE_EXISTS) {
+                         UPLL_LOG_DEBUG("ReadConfigDB Failed result_code - %d",
+                                        result_code);
+                         DELETE_IF_NOT_NULL(ck_ctrlr);
+                         return result_code;
+                       }
+                       DELETE_IF_NOT_NULL(ck_ctrlr);
+                       //  SET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
+                       result_code = DupConfigKeyValVtnMapping(okey, ikey);
+                       if (result_code != UPLL_RC_SUCCESS) {
+                         UPLL_LOG_DEBUG("DupConfigKeyValVtnMapping failed"
+                                        "err code %d",
+                                        result_code);
+                         DELETE_IF_NOT_NULL(okey);
+                         return result_code;
+                       }
+                       bool okey_mapped = false;
+                       if (header->operation == UNC_OP_READ_SIBLING_BEGIN) {
+                         result_code = ctrlr_mgr->GetFirstCtrlrName(
+                             UPLL_DT_RUNNING, &ctrlr_id);
+                         if (result_code != UPLL_RC_SUCCESS) {
+                           UPLL_LOG_INFO("GetFirstCtrlrName failed err code %d",
+                                         result_code);
+                           DELETE_IF_NOT_NULL(okey);
+                           return result_code;
+                         }
+                         ctrlr_dom.ctrlr = reinterpret_cast<uint8_t *>(
+                             const_cast<char *>(ctrlr_id.c_str()));
+                         ctrlr_dom.domain = reinterpret_cast<uint8_t *>
+                             (const_cast<char *>(" "));
+                         SET_USER_DATA_CTRLR_DOMAIN(okey, ctrlr_dom);
+                         UPLL_LOG_TRACE("ControllerId and DomainId are %s %s",
+                                        ctrlr_dom.ctrlr,
+                                        ctrlr_dom.domain);
+                         if ((ctrlr_mgr->GetCtrlrType(reinterpret_cast<char *>
+                                                      (ctrlr_dom.ctrlr),
+                                                      UPLL_DT_RUNNING,
+                                                      &ctrlrtype)) &&
+                             (ctrlrtype == UNC_CT_PFC)) {
+                           uuu::upll_strncpy(
+                               reinterpret_cast<key_vtn_controller *>
+                               (okey->get_key())->controller_name,
+                               ctrlr_dom.ctrlr,
+                               (kMaxLenCtrlrId + 1));
+                           result_code = ReadSingleCtlrlVtnMapping(header,
+                                                                   okey,
+                                                                   dmi,
+                                                                   &rec_count);
+                           if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE &&
+                               result_code != UPLL_RC_SUCCESS) {
+                             delete okey;
+                             return result_code;
+                           } else if (result_code == UPLL_RC_SUCCESS) {
+                             okey_mapped = true;
+                           }
+                         }
+                       } else {
+                         //  check if user given controller can be used.
+                         ctrlr_id = reinterpret_cast<char *>
+                             (reinterpret_cast<key_vtn_controller *>
+                              (okey->get_key())->controller_name);
+                         UPLL_LOG_TRACE("Controller Name is %s",
+                                        ctrlr_id.c_str());
+                         ctrlr_dom.ctrlr = reinterpret_cast<uint8_t *>(
+                             const_cast<char *>(ctrlr_id.c_str()));
+
+                         if ((ctrlr_mgr->GetCtrlrType(
+                                     reinterpret_cast<char *>
+                                     (ctrlr_dom.ctrlr),
+                                     UPLL_DT_RUNNING,
+                                     &ctrlrtype)) &&
+                             (ctrlrtype == UNC_CT_PFC)) {
+                           UPLL_LOG_INFO("Controller type is  %d", ctrlrtype);
+                           //  return UPLL_RC_ERR_GENERIC;
+                           ctrlr_dom.domain =
+                               reinterpret_cast<key_vtn_controller *>
+                               (okey->get_key())->domain_id;
+                           UPLL_LOG_TRACE("Domain name is %s",
+                                          ctrlr_dom.domain);
+                           SET_USER_DATA_CTRLR_DOMAIN(okey, ctrlr_dom);
+
+                           result_code = ReadSingleCtlrlVtnMapping(header,
+                                                                   okey,
+                                                                   dmi,
+                                                                   &rec_count);
+                           if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE &&
+                               result_code != UPLL_RC_SUCCESS) {
+                             delete okey;
+                             return result_code;
+                           } else if (result_code == UPLL_RC_SUCCESS) {
+                             okey_mapped = true;
+                           }
+                         }
+                       }
+                       UPLL_LOG_DEBUG("Input controller id is %s",
+                                      ctrlr_id.c_str());
+                       while ((UPLL_RC_SUCCESS == ctrlr_mgr->GetNextCtrlrName(
+                                   ctrlr_id,
+                                   UPLL_DT_RUNNING, &ctrlr_id)) &&
+                           (rec_count < header->rep_count)) {
+                         UPLL_LOG_DEBUG("Sibling controller id is %s",
+                                        ctrlr_id.c_str());
+                         ctrlr_dom.ctrlr = reinterpret_cast<uint8_t *>(
+                             const_cast<char *>(ctrlr_id.c_str()));
+                         if (!ctrlr_mgr->GetCtrlrType(
+                                 reinterpret_cast<char*>(ctrlr_dom.ctrlr),
+                                 UPLL_DT_RUNNING, &ctrlrtype)) {
+                           continue;
+                         }
+                         if (ctrlrtype != UNC_CT_PFC) {
+                           UPLL_LOG_INFO("Controller type is  %d", ctrlrtype);
+                           continue;
+                         }
+                         ctrlr_dom.domain = reinterpret_cast<uint8_t *>
+                             (const_cast<char *>(" "));
+                         SET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
+                         next_ckv = NULL;
+                         result_code = DupConfigKeyValVtnMapping(next_ckv,
+                                                                 ikey);
+                         if (result_code != UPLL_RC_SUCCESS) {
+                           UPLL_LOG_DEBUG("DupConfigKeyValVtnStation failed"
+                                          " err code %d", result_code);
+                           delete okey;
+                           DELETE_IF_NOT_NULL(next_ckv);
+                           return result_code;
+                         }
+                         vtnkey = reinterpret_cast<key_vtn_controller *>
+                             (next_ckv->get_key());
+                         uuu::upll_strncpy(vtnkey->controller_name,
+                                           ctrlr_dom.ctrlr,
+                                           (kMaxLenCtrlrId + 1));
+                         uuu::upll_strncpy(vtnkey->domain_id, ctrlr_dom.domain,
+                                           (kMaxLenDomainId + 1));
+                         result_code = ReadSingleCtlrlVtnMapping(header,
+                                                                 next_ckv,
+                                                                 dmi,
+                                                                 &rec_count);
+                         if (result_code != UPLL_RC_SUCCESS &&
+                             result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                           delete okey;
+                           DELETE_IF_NOT_NULL(next_ckv);
+                           return result_code;
+                         } else if (result_code == UPLL_RC_SUCCESS) {
+                           if (!okey_mapped) {
+                             /* This recent ReadSingleCtlrlVtnMapping gave result,
+                              ** but not the previous ones
+                              */
+                             DELETE_IF_NOT_NULL(okey);
+                             okey = next_ckv;
+                             okey_mapped = true;
+                           } else {
+                             okey->AppendCfgKeyVal(next_ckv);
+                           }
+                         } else {
+                           DELETE_IF_NOT_NULL(next_ckv);
+                         }
+                       }
+                       if (rec_count != 0) {
+                         header->rep_count = rec_count;
+                         ikey->ResetWith(okey);
+                         DELETE_IF_NOT_NULL(okey);
+                         result_code = UPLL_RC_SUCCESS;
+                       } else {
+                         DELETE_IF_NOT_NULL(okey);
+                         DELETE_IF_NOT_NULL(next_ckv);
+                         if (result_code == UPLL_RC_SUCCESS ||
+                             result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                           result_code = UPLL_RC_ERR_NO_SUCH_INSTANCE;
+                         }
+                       }
+                       break;
+                     }
+                   default:
+                     return UPLL_RC_ERR_GENERIC;
+                     break;
+                 }
+
+                 return result_code;
+               }
+
+           upll_rc_t
+               VtnMoMgr::MappingvExtTovBr(ConfigKeyVal * ikey,
+                                          IpcReqRespHeader * req,
+                                          DalDmlIntf * dmi,
+                                          uint32_t *&rec_count)  {
+                 UPLL_FUNC_TRACE;
+                 upll_rc_t result_code = UPLL_RC_SUCCESS;
+                 DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutNone };
+                 MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>
+                     (const_cast<MoManager *>(GetMoManager(UNC_KT_VBR_IF)));
+                 val_vtnstation_controller_st *valst = NULL;
+                 val_vtn_mapping_controller_st *val_map = NULL;
+                 key_vbr_if_t *key_vbrif = NULL;
+                 ConfigKeyVal *tmpckv = NULL;
+                 if ((GetVal(ikey)) == NULL) {
+                   UPLL_LOG_DEBUG("Val struct is not present"
+                                  "from driver response");
+                   return UPLL_RC_ERR_GENERIC;
+                 }
+                 ConfigVal *tmp_cval = NULL;
+                 UPLL_LOG_DEBUG("ikey in MappingvExtTovBr is %s",
+                                ikey->ToStrAll().c_str());
+                 for (tmp_cval = ikey->get_cfg_val(); tmp_cval;
+                      tmp_cval = tmp_cval->get_next_cfg_val()) {
+                   if (UNC_KT_VTNSTATION_CONTROLLER == ikey->get_key_type()) {
+                     UPLL_LOG_DEBUG("KetType Matched  %d",
+                                    ikey->get_key_type());
+                     if (IpctSt::kIpcStValVtnstationControllerSt ==
+                         tmp_cval->get_st_num()) {
+                       (*rec_count)++;
+                       UPLL_LOG_DEBUG("record count is %d", *rec_count);
+                       valst =
+                           reinterpret_cast<val_vtnstation_controller_st_t *>(
+                           tmp_cval->get_val());
+                       if (!valst) {
+                         UPLL_LOG_DEBUG("val_vtnstation_controller"
+                                        "_st is NULL");
+                         ConfigKeyVal::Free(key_vbrif);
+                         return UPLL_RC_ERR_GENERIC;
+                       }
+                       if (valst->map_type == UPLL_IF_VLAN_MAP)
+                         continue;
+                       if ((valst->valid[UPLL_IDX_VTN_NAME_VSCS] !=
+                            UNC_VF_VALID) &&
+                           (valst->valid[UPLL_IDX_VBR_IF_NAME_VSCS] !=
+                            UNC_VF_VALID)) {
+                         UPLL_LOG_DEBUG("valid flag of vtn_name/vbrif_name"
+                                        "is invalid");
+                         ConfigKeyVal::Free(key_vbrif);
+                         return UPLL_RC_ERR_GENERIC;
+                       }
+                       uint8_t *ctrlr_id =
+                           reinterpret_cast<key_vtnstation_controller *>
+                           (ikey->get_key())->controller_name;
+                       key_vtn_t *vtnkey = reinterpret_cast<key_vtn_t *>
+                           (ConfigKeyVal::Malloc(sizeof(key_vtn_t)));
+                       uuu::upll_strncpy(vtnkey->vtn_name,
+                                         valst->vtn_name,
+                                         (kMaxLenVtnName + 1));
+                       ConfigKeyVal *ckv_rename = new ConfigKeyVal(
+                           UNC_KT_VTN,
+                           IpctSt::kIpcStKeyVtn, vtnkey, NULL);
+                       result_code = GetRenamedUncKey(ckv_rename,
+                                                      UPLL_DT_RUNNING,
+                                                      dmi, ctrlr_id);
+                       if (result_code != UPLL_RC_SUCCESS &&
+                           result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                         UPLL_LOG_INFO("GetRenamedUncKey failed error code %d",
+                                       result_code);
+                         if (ckv_rename) delete ckv_rename;
+                         return UPLL_RC_ERR_GENERIC;
+                       }
+                       uuu::upll_strncpy(valst->vtn_name,
+                                         reinterpret_cast<key_vtn_t *>
+                                         (ckv_rename->get_key())->vtn_name,
+                                         (kMaxLenVtnName + 1));
+                       key_vbrif = static_cast<key_vbr_if_t *>
+                           (ConfigKeyVal::Malloc(sizeof(key_vbr_if_t)));
+                       uuu::upll_strncpy(key_vbrif->vbr_key.vtn_key.vtn_name,
+                                         valst->vtn_name,
+                                         (kMaxLenVtnName + 1));
+                       val_drv_vbr_if_t *drv_val_vbrif =
+                           static_cast<val_drv_vbr_if_t *>
+                           (ConfigKeyVal::Malloc(sizeof(val_drv_vbr_if_t)));
+                       drv_val_vbrif->valid[PFCDRV_IDX_VEXT_NAME_VBRIF] =
+                           UNC_VF_VALID;
+                       uuu::upll_strncpy(drv_val_vbrif->vex_name,
+                                         valst->vbrif_name,
+                                         (kMaxLenInterfaceName + 1));
+                       tmpckv = new
+                           ConfigKeyVal(UNC_KT_VBR_IF,
+                                        IpctSt::kIpcStKeyVbrIf,
+                                        key_vbrif,
+                                        new ConfigVal(
+                                            IpctSt::kIpcStPfcdrvValVbrIf,
+                                            drv_val_vbrif));
+                       UPLL_LOG_DEBUG("tmpckv is %s",
+                                      tmpckv->ToStrAll().c_str());
+                       result_code = mgr->ReadConfigDB(tmpckv,
+                                                       req->datatype,
+                                                       UNC_OP_READ,
+                                                       dbop,
+                                                       dmi,
+                                                       MAINTBL);
+                       if (result_code != UPLL_RC_SUCCESS) {
+                         UPLL_LOG_DEBUG("vbrif ReadConfigDB Failed"
+                                        "result_code - %d",
+                                        result_code);
+                         delete tmpckv;
+                         delete ckv_rename;
+                         return UPLL_RC_ERR_GENERIC;
+                       }
+                       key_vbr_if_t *vbrif_key =
+                           reinterpret_cast<key_vbr_if_t *>
+                           (tmpckv->get_key());
+                       if (vbrif_key) {
+                         valst->valid[UPLL_IDX_VBR_NAME_VSCS] = UNC_VF_VALID;
+                         uuu::upll_strncpy(valst->vbr_name,
+                                           vbrif_key->vbr_key.vbridge_name,
+                                           (kMaxLenVnodeName + 1));
+                         uuu::upll_strncpy(valst->vbrif_name,
+                                           vbrif_key->if_name,
+                                           (kMaxLenInterfaceName + 1));
+                       }
+                       delete tmpckv;
+                       delete ckv_rename;
+                       key_vbrif = NULL;
+                       tmpckv = NULL;
+                     }
+                   } else if (UNC_KT_VTN_MAPPING_CONTROLLER ==
+                              ikey->get_key_type()) {
+                     UPLL_LOG_DEBUG("KetType Matched  %d",
+                                    ikey->get_key_type());
+                     if (IpctSt::kIpcStValVtnMappingControllerSt ==
+                         tmp_cval->get_st_num()) {
+                       val_map =
+                           reinterpret_cast<val_vtn_mapping_controller_st_t *>
+                           (tmp_cval->get_val());
+                       if (!val_map) {
+                         UPLL_LOG_DEBUG("val_vtn_mapping_controller"
+                                        "_st is NULL");
+                         ConfigKeyVal::Free(key_vbrif);
+                         return UPLL_RC_ERR_GENERIC;
+                       }
+                       if (val_map->map_type == UPLL_IF_VLAN_MAP)
+                         continue;
+                       //  Valid flag check before accessing
+                       //  the driver reponse val
+                       if (val_map->valid[UPLL_IDX_VBR_IF_NAME_VMCS] !=
+                           UNC_VF_VALID) {
+                         UPLL_LOG_DEBUG("valid flag of vbrif_name is invalid");
+                         ConfigKeyVal::Free(key_vbrif);
+                         return UPLL_RC_ERR_GENERIC;
+                       }
+                       (*rec_count)++;
+                       UPLL_LOG_DEBUG("record count is %d", *rec_count);
+                       key_vbrif = static_cast<key_vbr_if_t *>
+                           (ConfigKeyVal::Malloc(sizeof(key_vbr_if_t)));
+                       uint8_t *ctrlr_id =
+                           reinterpret_cast<key_vtn_controller *>
+                           (ikey->get_key())->controller_name;
+                       key_vtn_t *vtnkey = reinterpret_cast<key_vtn_t *>
+                           (ConfigKeyVal::Malloc(sizeof(key_vtn_t)));
+                       uuu::upll_strncpy(vtnkey->vtn_name,
+                                         reinterpret_cast<key_vtn_controller *>
+                                         (ikey->get_key())->vtn_key.vtn_name,
+                                         (kMaxLenVtnName + 1));
+                       ConfigKeyVal *ckv_rename = new ConfigKeyVal(
+                           UNC_KT_VTN,
+                           IpctSt::kIpcStKeyVtn,
+                           vtnkey,
+                           NULL);
+                       result_code = GetRenamedUncKey(ckv_rename,
+                                                      UPLL_DT_RUNNING,
+                                                      dmi,
+                                                      ctrlr_id);
+                       if (result_code != UPLL_RC_SUCCESS &&
+                           result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                         UPLL_LOG_INFO("GetRenamedUncKey failed. Error : %d",
+                                       result_code);
+                         if (ckv_rename) delete ckv_rename;
+                         return UPLL_RC_ERR_GENERIC;
+                       }
+                       uuu::upll_strncpy(reinterpret_cast<key_vtn_controller *>
+                                         (ikey->get_key())->vtn_key.vtn_name,
+                                         reinterpret_cast<key_vtn_t *>
+                                         (ckv_rename->get_key())->vtn_name,
+                                         (kMaxLenVtnName + 1));
+                       uuu::upll_strncpy(key_vbrif->vbr_key.vtn_key.vtn_name,
+                                         reinterpret_cast<key_vtn_controller *>
+                                         (ikey->get_key())->vtn_key.vtn_name,
+                                         (kMaxLenVtnName + 1));
+                       val_drv_vbr_if_t *drv_val_vbrif =
+                           static_cast<val_drv_vbr_if_t *>
+                           (ConfigKeyVal::Malloc(sizeof(val_drv_vbr_if_t)));
+                       drv_val_vbrif->valid[PFCDRV_IDX_VEXT_NAME_VBRIF] =
+                           UNC_VF_VALID;
+                       uuu::upll_strncpy(drv_val_vbrif->vex_name,
+                                         val_map->vbrif_name,
+                                         (kMaxLenInterfaceName + 1));
+                       tmpckv = new ConfigKeyVal(
+                           UNC_KT_VBR_IF,
+                           IpctSt::kIpcStKeyVbrIf,
+                           key_vbrif,
+                           new ConfigVal(
+                               IpctSt::kIpcStPfcdrvValVbrIf,
+                               drv_val_vbrif));
+                       result_code = mgr->ReadConfigDB(tmpckv,
+                                                       req->datatype,
+                                                       UNC_OP_READ,
+                                                       dbop,
+                                                       dmi,
+                                                       MAINTBL);
+                       if (result_code != UPLL_RC_SUCCESS) {
+                         UPLL_LOG_DEBUG("vbrif ReadConfigDB Failed"
+                                        "result_code - %d",
+                                        result_code);
+                         delete ckv_rename;
+                         delete tmpckv;
+                         return UPLL_RC_ERR_GENERIC;
+                       }
+                       UPLL_LOG_DEBUG("tmpckv value is %s",
+                                      tmpckv->ToStrAll().c_str());
+                       key_vbr_if_t *vbrif_key =
+                           reinterpret_cast<key_vbr_if_t *>
+                           (tmpckv->get_key());
+                       if (vbrif_key) {
+                         val_map->valid[UPLL_IDX_VBR_NAME_VMCS] = UNC_VF_VALID;
+                         uuu::upll_strncpy(val_map->vbr_name,
+                                           vbrif_key->vbr_key.vbridge_name,
+                                           (kMaxLenVnodeName + 1));
+                         uuu::upll_strncpy(val_map->vbrif_name,
+                                           vbrif_key->if_name,
+                                           (kMaxLenInterfaceName + 1));
+                       }
+                       delete tmpckv;
+                       delete ckv_rename;
+                       key_vbrif = NULL;
+                       tmpckv = NULL;
+                     }
+                   }
+                 }
+                 return result_code;
+               }
+
+           /* Semantic check for the VTN Delete operation */
+           upll_rc_t
+               VtnMoMgr::IsReferenced(ConfigKeyVal *ikey,
+                                      upll_keytype_datatype_t dt_type,
+                                      DalDmlIntf *dmi) {
+                 UPLL_FUNC_TRACE;
+                 upll_rc_t result_code = UPLL_RC_SUCCESS;
+                 ConfigKeyVal *okey = NULL;
+                 if (NULL == ikey || !dmi)
+                   return UPLL_RC_ERR_GENERIC;
+                 /* Create the Vtunnel Configkey for
+                  * checking vtn is underlay vtn or not */
+                 result_code = CreateVtunnelKey(ikey, okey);
+                 if (result_code != UPLL_RC_SUCCESS) {
+                   UPLL_LOG_DEBUG("Could not Create VtunnelKey %d",
+                                  result_code);
+                   return result_code;
+                 }
+                 MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>
+                     (const_cast<MoManager *>(GetMoManager(UNC_KT_VTUNNEL)));
+                 if (!mgr) {
+                   UPLL_LOG_DEBUG("Instance is Null");
+                   delete okey;
+                   return UPLL_RC_ERR_GENERIC;
+                 }
+                 DbSubOp dbop = {kOpReadMultiple, kOpMatchNone, kOpInOutNone};
+                 /* Checks the given vtn is exists or not */
+                 result_code = mgr->ReadConfigDB(okey, dt_type, UNC_OP_READ,
+                                                 dbop, dmi, MAINTBL);
+                 if (UPLL_RC_SUCCESS == result_code) {
+                   UPLL_LOG_DEBUG("Could not delete an Underlay"
+                                  "Vtn referenced to "
+                                  " an Overlay Vtn");
+                   delete okey;
+                   return UPLL_RC_ERR_CFG_SEMANTIC;
+                 }
+                 result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)?
+                     UPLL_RC_SUCCESS:result_code;
+                 DELETE_IF_NOT_NULL(okey);
+                 return result_code;
+               }
+
+           /* This function creates the configkey for the vtunnel
+            * This funciton take the vtn name and addit into the Vtunnel
+            * value structure
+            */
+           upll_rc_t
+               VtnMoMgr::CreateVtunnelKey(ConfigKeyVal *ikey,
+                                          ConfigKeyVal *&okey) {
+                 UPLL_FUNC_TRACE;
+                 upll_rc_t result_code = UPLL_RC_SUCCESS;
+                 ConfigVal *tmp;
+                 if (!ikey || !(ikey->get_key()))
+                   return UPLL_RC_ERR_GENERIC;
+
+                 key_vtunnel_t *vtunnel_key = reinterpret_cast<key_vtunnel_t *>
+                     (ConfigKeyVal::Malloc(sizeof(key_vtunnel_t)));
+                 val_vtunnel_t *vtn_val_vtunnel =
+                     reinterpret_cast<val_vtunnel_t *>
+                     (ConfigKeyVal::Malloc(sizeof(val_vtunnel_t)));
+                 /* validate message taken care of vtn lengh checking*/
+                 uuu::upll_strncpy(
+                     vtn_val_vtunnel->vtn_name,
+                     reinterpret_cast<key_vtn_t *>
+                     (ikey->get_key())->vtn_name, (kMaxLenVtnName+1));
+                 vtn_val_vtunnel->valid[UPLL_IDX_VTN_NAME_VTNL] = UNC_VF_VALID;
+
+                 tmp = new ConfigVal(IpctSt::kIpcStValVtunnel, vtn_val_vtunnel);
+                 if (!tmp) {
+                   UPLL_LOG_ERROR("Memory Allocation failed for tmp1");
+                   FREE_IF_NOT_NULL(vtunnel_key);
+                   FREE_IF_NOT_NULL(vtn_val_vtunnel);
+                   return UPLL_RC_ERR_GENERIC;
+                 }
+                 okey = new ConfigKeyVal(UNC_KT_VTUNNEL,
+                                         IpctSt::kIpcStKeyVtunnel,
+                                         vtunnel_key,
+                                         tmp);
+                 if (!okey) {
+                   delete tmp;
+                   FREE_IF_NOT_NULL(vtunnel_key);
+                   return UPLL_RC_ERR_GENERIC;
+                 }
+                 SET_USER_DATA(okey, ikey);
+                 return result_code;
+               }
+
+           upll_rc_t
+               VtnMoMgr::SwapKeyVal(ConfigKeyVal *ikey,
+                                    ConfigKeyVal *&okey,
+                                    DalDmlIntf *dmi,
+                                    uint8_t *ctrlr,
+                                    bool &no_rename) {
+                 UPLL_FUNC_TRACE;
+                 upll_rc_t result_code = UPLL_RC_SUCCESS;
+                 //   ConfigVal *tmp1;
+                 okey = NULL;
+                 if (!ikey || !(ikey->get_key()) ||
+                     !(strlen(reinterpret_cast<const char *>
+                              (ctrlr)))) {
+                   UPLL_LOG_DEBUG("Input is NULL");
+                   return UPLL_RC_ERR_GENERIC;
+                 }
+                 if (ikey->get_key_type() != UNC_KT_VTN) {
+                   UPLL_LOG_DEBUG("Bad Request");
+                   return UPLL_RC_ERR_BAD_REQUEST;
+                 }
+                 ConfigVal *cfg_val = ikey->get_cfg_val();
+                 if (cfg_val == NULL) {
+                   UPLL_LOG_DEBUG("Configval is NULL");
+                   return UPLL_RC_ERR_BAD_REQUEST;
+                 }
+                 val_rename_vtn_t *tval =  reinterpret_cast<val_rename_vtn_t *>
+                     (cfg_val->get_val());
+                 if (!tval) {
+                   UPLL_LOG_DEBUG("Val is NULL");
+                   return UPLL_RC_ERR_GENERIC;
+                 }
+                 key_vtn_t *key_vtn = reinterpret_cast<key_vtn_t *>
+                     (ConfigKeyVal::Malloc(sizeof(key_vtn_t)));
+                 /* No rename */
+                 if (tval->valid[UPLL_IDX_NEW_NAME_RVTN] ==
+                     UNC_VF_VALID_NO_VALUE) {
+                   no_rename = true;
+                   uuu::upll_strncpy(key_vtn->vtn_name,
+                                     ((reinterpret_cast<key_vtn_t*>
+                                       (ikey->get_key()))->vtn_name),
+                                     (kMaxLenVtnName + 1));
+                   UPLL_LOG_DEBUG("No Rename Operation %d", no_rename);
+                 } else {
+                   if ( tval->valid[UPLL_IDX_NEW_NAME_RVTN] == UNC_VF_VALID ) {
+                     //   checking the string is empty or not
+                     if (!strlen(reinterpret_cast<char *>(tval->new_name))) {
+                       ConfigKeyVal::Free(key_vtn);
+                       return UPLL_RC_ERR_GENERIC;
+                     }
+                     uuu::upll_strncpy(key_vtn->vtn_name, tval->new_name,
+                                       (kMaxLenVtnName + 1));
+                     //   copy the new UNC name to KeyVtn
+                     /* The New Name and PFC name should not be same name */
+                     if (!strcmp(reinterpret_cast<char *>
+                                 ((reinterpret_cast<key_vtn_t *>
+                                   (ikey->get_key()))->vtn_name),
+                                 reinterpret_cast<char *>(tval->new_name))) {
+                       ConfigKeyVal::Free(key_vtn);
+                       return UPLL_RC_ERR_GENERIC;
+                     }
+                   } else {
+                     UPLL_LOG_DEBUG("Invalid Input");
+                     ConfigKeyVal::Free(key_vtn);
+                     return UPLL_RC_ERR_GENERIC;
+                   }
+                 }
+                 okey = new ConfigKeyVal(UNC_KT_VTN,
+                                         IpctSt::kIpcStKeyVtn,
+                                         key_vtn,
+                                         NULL);
+                 return result_code;
+               }
+
+           bool VtnMoMgr::FilterAttributes(void *&val1,
+                                           void *val2,
+                                           bool copy_to_running,
+                                           unc_keytype_operation_t op) {
+             val_vtn_t *val_vtn1 = reinterpret_cast<val_vtn_t *>(val1);
+             val_vtn1->valid[UPLL_IDX_DESC_VTN] = UNC_VF_INVALID;
+             //  to be uncommented when vtn supports other attributes
+             //  other than description
 #if 0
-      result_code = ValidateCapability(&(ipc_req.header), ck_main);
-      if (result_code != UPLL_RC_SUCCESS) {
-        DELETE_IF_NOT_NULL(ck_main);
-        return result_code;
-      }
+             val_vtn_ctrlr *ctrlr_val =
+                 reinterpret_cast<val_vtn_ctrlr_t *>(val2);
+             for (unsigned int loop = 0;
+                  loop < sizeof(val_vtn1->valid)/sizeof(val_vtn1->valid[0]);
+                  ++loop) {
+               if (ctrlr_val->cs_attr[loop] == UNC_CS_NOT_SUPPORTED)
+                 val_vtn1->valid[loop] = UNC_VF_INVALID;
+             }
+             if (op != UNC_OP_CREATE)
+               return CompareValidValue(val1, val2, copy_to_running);
 #endif
-      result_code = GetChildConfigKey(ck_ctrlr, ck_main);
-      if (!ck_ctrlr || result_code != UPLL_RC_SUCCESS) {
-        DELETE_IF_NOT_NULL(ck_main);
-        DELETE_IF_NOT_NULL(ck_ctrlr);
-        return result_code;
-      }
-      if (GetControllerDomainSpan(ck_ctrlr, UPLL_DT_CANDIDATE, dmi) ==
-          UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-        delete ck_ctrlr;
-        ck_ctrlr = NULL;
-        delete ck_main;
-        ck_main = NULL;
-        continue;
-      }
-      void *main = GetVal(ck_main);
-      void *val_nrec = (nreq) ? GetVal(nreq) : NULL;
-      if (FilterAttributes(main, val_nrec, false, op)) {
-        delete ck_ctrlr;
-        ck_ctrlr = NULL;
-        continue;
-      }
-      for (ConfigKeyVal *tmp = ck_ctrlr; tmp != NULL;
-          tmp = tmp->get_next_cfg_key_val()) {
-        GET_USER_DATA_CTRLR_DOMAIN(tmp, ctrlr_dom);
-        if ((ctrlr_dom.ctrlr == NULL) || (ctrlr_dom.domain == NULL)) {
-          DELETE_IF_NOT_NULL(ck_main);
-          UPLL_LOG_INFO("Invalid controller/domain");
-          return UPLL_RC_ERR_GENERIC;
-        }
-        result_code = TxUpdateProcess(ck_main, &resp,
-                                      op, dmi, &ctrlr_dom);
-        affected_ctrlr_set->insert((const char *)ctrlr_dom.ctrlr);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("TxUpdate Process returns with %d", result_code);
-          *err_ckv = resp.ckv_data;
-          break;
-        }
-        DELETE_IF_NOT_NULL(resp.ckv_data);
-      }
-      delete ck_ctrlr;
-    }
-    delete ck_main;
-  }
-  if (nreq)
-  delete nreq;
-  if (req)
-  delete req;
-  if (dal_cursor_handle)
-    dmi->CloseCursor(dal_cursor_handle, true);
-  result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)?
-                                UPLL_RC_SUCCESS:result_code;
-  return result_code;
-}
-
-upll_rc_t
-VtnMoMgr::TxUpdateProcess(ConfigKeyVal *ck_main,
-                          IpcResponse *ipc_resp,
-                          unc_keytype_operation_t op,
-                          DalDmlIntf *dmi,
-                          controller_domain *ctrlr_dom) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code;
-  controller_domain ctrlr_dom_dup;
-  ctrlr_dom_dup.ctrlr = NULL;
-  ctrlr_dom_dup.domain = NULL;
-  /* read from main table */
-  ConfigKeyVal *dup_ckmain = ck_main;
-  if (op == UNC_OP_CREATE) {
-    dup_ckmain = NULL;
-    result_code = GetChildConfigKey(dup_ckmain, ck_main);
-    if (result_code != UPLL_RC_SUCCESS || dup_ckmain == NULL) {
-      UPLL_LOG_DEBUG("Returning error %d", result_code);
-      delete dup_ckmain;
-      return result_code;
-    }
-    DbSubOp dbop = {kOpReadSingle, kOpMatchNone, kOpInOutNone};
-    result_code = ReadConfigDB(dup_ckmain, UPLL_DT_CANDIDATE,
-        UNC_OP_READ, dbop, dmi, MAINTBL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_INFO("%s Vtn read failed %d", (dup_ckmain->ToStrAll()).c_str(),
-                     result_code);
-      if (dup_ckmain) delete dup_ckmain;
-      return result_code;
-    }
-    /* To filter the attributes to be sent to controller */
-    void *val = (ck_main) ? GetVal(ck_main) : NULL;
-    void *dup_val = (dup_ckmain) ? GetVal(dup_ckmain) : NULL;
-    if (FilterAttributes(dup_val, val, false, op)) {
-     if (dup_ckmain) delete dup_ckmain;
-     return UPLL_RC_SUCCESS;
-    }
-  } else if (op == UNC_OP_UPDATE) {
-    UPLL_LOG_INFO("UPDATE to VTN is not supported at driver. so return..");
-    return UPLL_RC_SUCCESS;
-  }
-  /* Get renamed key if key is renamed */
-  /* For Delete operation we have to get info
-   * from running db
-   */
-  if (op == UNC_OP_DELETE)
-     result_code = GetRenamedControllerKey(dup_ckmain, UPLL_DT_RUNNING,
-                                            dmi, ctrlr_dom);
-  else {
-     if (op == UNC_OP_CREATE) {
-       ctrlr_dom_dup.ctrlr = NULL;
-       ctrlr_dom_dup.domain = NULL;
-       GET_USER_DATA_CTRLR_DOMAIN(dup_ckmain, ctrlr_dom_dup);
-     }
-     result_code = GetRenamedControllerKey(dup_ckmain, UPLL_DT_CANDIDATE,
-                                            dmi, &ctrlr_dom_dup);
-  }
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("GetRenamedControllerKey failed. Result : %d",
-                        result_code);
-    if ((op == UNC_OP_CREATE) && dup_ckmain)
-      delete dup_ckmain;
-    return result_code;
-  }
-  // ipc_req->ckv_data = ck_main;
-  result_code = SendIpcReq(ipc_resp->header.clnt_sess_id,
-                           ipc_resp->header.config_id, op, UPLL_DT_CANDIDATE,
-                           dup_ckmain, ctrlr_dom, ipc_resp);
-  if (result_code == UPLL_RC_ERR_RESOURCE_DISCONNECTED) {
-    UPLL_LOG_DEBUG("Controller disconnected");
-    result_code = UPLL_RC_SUCCESS;
-  }
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("IpcSend failed %d", result_code);
-  }
-  if ((op == UNC_OP_CREATE) && dup_ckmain)
-      delete dup_ckmain;
-  return result_code;
-}
-
-upll_rc_t
-VtnMoMgr::CopyToConfigKey(ConfigKeyVal * &okey,
-                          ConfigKeyVal * ikey)  {
-  if (!ikey || !(ikey->get_key())) return UPLL_RC_ERR_GENERIC;
-
-  key_vtn_t *key_vtn = reinterpret_cast<key_vtn_t *>
+             return false;
+           }
+
+           bool VtnMoMgr::CompareValidValue(void *&val1, void *val2,
+                                            bool copy_to_running) {
+             UPLL_FUNC_TRACE;
+             bool invalid_attr = true;
+             val_vtn_t *val_vtn1 = reinterpret_cast<val_vtn_t *>(val1);
+             val_vtn_t *val_vtn2 = reinterpret_cast<val_vtn_t *>(val2);
+             val_vtn_index vtn_description = UPLL_IDX_DESC_VTN;
+             if (UNC_VF_INVALID == val_vtn1->valid[vtn_description] &&
+                 UNC_VF_VALID == val_vtn2->valid[vtn_description])
+               val_vtn1->valid[vtn_description] = UNC_VF_VALID_NO_VALUE;
+             if  (UNC_VF_INVALID != val_vtn1->valid[vtn_description]) {
+               if (!copy_to_running ||
+                   ((UNC_VF_VALID == val_vtn1->valid[vtn_description]) &&
+                    (!strcmp(reinterpret_cast<char*>(val_vtn1->description),
+                             reinterpret_cast<char*>
+                             (val_vtn2->description)) )))
+                 val_vtn1->valid[vtn_description] = UNC_VF_INVALID;
+             }
+             /* filters the attributes from being sent to the controller */
+             for (unsigned int loop = 0;
+                  loop < sizeof(val_vtn1->valid)/sizeof(val_vtn1->valid[0]);
+                  ++loop) {
+               if ((UNC_VF_VALID == val_vtn1->valid[loop]) ||
+                   (UNC_VF_VALID_NO_VALUE == val_vtn1->valid[loop])) {
+                 invalid_attr = false;
+                 break;
+               }
+             }
+             return invalid_attr;
+           }
+
+           upll_rc_t VtnMoMgr::UpdateCtrlrConfigStatus(
+               unc_keytype_configstatus_t cs_status,
+               uuc::UpdateCtrlrPhase phase,
+               ConfigKeyVal *&ckv_running) {
+             UPLL_FUNC_TRACE;
+             upll_rc_t result_code = UPLL_RC_SUCCESS;
+             val_vtn_ctrlr_t *val;
+             val = (ckv_running != NULL)?
+                 reinterpret_cast<val_vtn_ctrlr_t *>(GetVal(ckv_running)):NULL;
+             if (NULL == val) {
+               return UPLL_RC_ERR_GENERIC;
+             }
+             if (uuc::kUpllUcpCreate == phase )
+               val->cs_row_status = cs_status;
+             if ((uuc::kUpllUcpUpdate == phase) &&
+                 (val->cs_row_status == UNC_CS_INVALID ||
+                  val->cs_row_status == UNC_CS_NOT_APPLIED))
+               val->cs_row_status = cs_status;
+             if ((cs_status == UNC_CS_INVALID &&
+                  UNC_VF_VALID == val->valid[UPLL_IDX_DESC_VTN]) ||
+                 cs_status == UNC_CS_APPLIED)
+               val->cs_attr[UPLL_IDX_DESC_VTN] = cs_status;
+             return result_code;
+           }
+
+           upll_rc_t
+               VtnMoMgr::UpdateAuditConfigStatus(
+                   unc_keytype_configstatus_t cs_status,
+                   uuc::UpdateCtrlrPhase phase,
+                   ConfigKeyVal *&ckv_running,
+                   DalDmlIntf *dmi) {
+                 UPLL_FUNC_TRACE;
+                 upll_rc_t result_code = UPLL_RC_SUCCESS;
+                 val_vtn_t *val;
+                 val = (ckv_running != NULL)?
+                     reinterpret_cast<val_vtn_t *>(GetVal(ckv_running)):NULL;
+                 if (NULL == val) {
+                   return UPLL_RC_ERR_GENERIC;
+                 }
+                 if (uuc::kUpllUcpCreate == phase )
+                   val->cs_row_status = cs_status;
+                 for ( unsigned int loop = 0;
+                      loop < sizeof(val->valid)/sizeof(uint8_t); ++loop ) {
+                   if ((cs_status == UNC_CS_INVALID &&
+                        UNC_VF_VALID == val->valid[loop]) ||
+                       cs_status == UNC_CS_APPLIED)
+                     val->cs_attr[loop] = cs_status;
+                 }
+                 return result_code;
+               }
+
+           upll_rc_t
+               VtnMoMgr::SetVtnConsolidatedStatus(ConfigKeyVal *ikey,
+                                                  uint8_t *ctrlr_id,
+                                                  DalDmlIntf *dmi)  {
+                 UPLL_FUNC_TRACE;
+                 upll_rc_t result_code = UPLL_RC_SUCCESS;
+                 ConfigKeyVal *ctrlr_ckv = NULL;
+                 val_vtn_ctrlr *ctrlr_val = NULL;
+                 uint8_t *vtn_exist_on_ctrlr = NULL;
+                 bool applied = false, not_applied = false, invalid = false;
+                 unc_keytype_configstatus_t c_status = UNC_CS_NOT_APPLIED;
+                 DbSubOp dbop = { kOpReadMultiple, kOpMatchNone,
+                   kOpInOutCtrlr | kOpInOutDomain | kOpInOutCs };
+                 if (!ikey || !dmi || !ctrlr_id) {
+                   UPLL_LOG_DEBUG("Invalid Input");
+                   return UPLL_RC_ERR_GENERIC;
+                 }
+                 result_code = GetChildConfigKey(ctrlr_ckv, ikey);
+                 if (UPLL_RC_SUCCESS != result_code) {
+                   UPLL_LOG_DEBUG("GetChildConfigKey failed err code %d",
+                                  result_code);
+                   return result_code;
+                 }
+                 result_code = ReadConfigDB(ctrlr_ckv,
+                                            UPLL_DT_RUNNING,
+                                            UNC_OP_READ,
+                                            dbop,
+                                            dmi,
+                                            CTRLRTBL);
+                 if (UPLL_RC_SUCCESS != result_code) {
+                   UPLL_LOG_DEBUG("ReadConfigDB from ctrltbl failed"
+                                  "err code %d",
+                                  result_code);
+                   delete ctrlr_ckv;
+                   return result_code;
+                 }
+
+                 for (ConfigKeyVal *tmp = ctrlr_ckv; tmp != NULL;
+                      tmp = tmp->get_next_cfg_key_val()) {
+                   ctrlr_val = reinterpret_cast<val_vtn_ctrlr *>(GetVal(tmp));
+                   if (!ctrlr_val) {
+                     UPLL_LOG_DEBUG("Controller Value is empty");
+                     tmp = NULL;
+                     delete ctrlr_ckv;
+                     return UPLL_RC_ERR_GENERIC;
+                   }
+                   GET_USER_DATA_CTRLR(tmp, vtn_exist_on_ctrlr);
+                   if (!strcmp(reinterpret_cast<char *>(vtn_exist_on_ctrlr),
+                               reinterpret_cast<char *>(ctrlr_id)))
+                     continue;  //  skipping entry of deleted controller
+
+                   switch (ctrlr_val->cs_row_status) {
+                     case UNC_CS_APPLIED:
+                       applied = true;
+                       break;
+                     case UNC_CS_NOT_APPLIED:
+                     case UNC_CS_NOT_SUPPORTED:
+                       not_applied = true;
+                       break;
+                     case UNC_CS_INVALID:
+                       invalid = true;
+                       break;
+                     default:
+                       UPLL_LOG_DEBUG("Invalid status");
+                   }
+                   vtn_exist_on_ctrlr = NULL;
+                 }
+                 if (invalid)
+                   c_status = UNC_CS_INVALID;
+                 else if (applied && !not_applied)
+                   c_status = UNC_CS_APPLIED;
+                 else if (!applied && not_applied)
+                   c_status = UNC_CS_NOT_APPLIED;
+                 else if (applied && not_applied)
+                   c_status = UNC_CS_PARTIALLY_APPLIED;
+                 else
+                   c_status = UNC_CS_APPLIED;
+                 //  Set cs_status
+                 val_vtn_t *vtnval = static_cast<val_vtn_t *>(GetVal(ikey));
+                 vtnval->cs_row_status = c_status;
+                 vtnval->cs_attr[0] = UNC_CS_APPLIED;
+                 //  initialize the main table vtn oper status to be recomputed.
+                 val_db_vtn_st *val_vtnst = reinterpret_cast<val_db_vtn_st *>
+                     (GetStateVal(ikey));
+                 if (!val_vtnst) {
+                   UPLL_LOG_DEBUG("Returning error %d\n", UPLL_RC_ERR_GENERIC);
+                   return UPLL_RC_ERR_GENERIC;
+                 }
+                 val_vtnst->vtn_val_st.oper_status = UPLL_OPER_STATUS_UNINIT;
+                 val_vtnst->vtn_val_st.valid[UPLL_IDX_OPER_STATUS_VS] =
+                     UNC_VF_VALID;
+                 DbSubOp dbop_update = {kOpNotRead, kOpMatchNone, kOpInOutCs};
+                 result_code = UpdateConfigDB(ikey,
+                                              UPLL_DT_STATE,
+                                              UNC_OP_UPDATE,
+                                              dmi,
+                                              &dbop_update,
+                                              MAINTBL);
+                 delete ctrlr_ckv;
+                 return result_code;
+               }
+
+           upll_rc_t
+               VtnMoMgr::SetConsolidatedStatus(ConfigKeyVal * ikey,
+                                               DalDmlIntf * dmi)  {
+                 UPLL_FUNC_TRACE;
+                 upll_rc_t result_code = UPLL_RC_SUCCESS;
+                 ConfigKeyVal *ckv = NULL;
+                 DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutCs };
+                 result_code = GetChildConfigKey(ckv, ikey);
+                 if (UPLL_RC_SUCCESS != result_code) {
+                   UPLL_LOG_INFO("GetChildConfigKey failed err code %d",
+                                 result_code);
+                   return result_code;
+                 }
+                 result_code = ReadConfigDB(ckv,
+                                            UPLL_DT_RUNNING,
+                                            UNC_OP_READ,
+                                            dbop,
+                                            dmi,
+                                            CTRLRTBL);
+                 if (UPLL_RC_SUCCESS != result_code) {
+                   UPLL_LOG_INFO("ReadConfigDB from ctrltbl failed"
+                                 "err code %d",
+                                 result_code);
+                   delete(ckv);
+                   return result_code;
+                 }
+                 list < unc_keytype_configstatus_t > list_cs_row;
+                 val_vtn_ctrlr *val;
+                 ConfigKeyVal *tmp = ckv;
+                 for (; tmp != NULL; tmp = tmp->get_next_cfg_key_val()) {
+                   val = reinterpret_cast<val_vtn_ctrlr *>(GetVal(tmp));
+                   list_cs_row.push_back(
+                       static_cast<unc_keytype_configstatus_t>(
+                           val->cs_row_status));
+                 }
+                 DELETE_IF_NOT_NULL(ckv);
+                 val_vtn_t *val_temp = reinterpret_cast<val_vtn_t *>
+                     (GetVal(ikey));
+                 val_temp->cs_row_status = GetConsolidatedCsStatus(
+                     list_cs_row);
+                 result_code = UpdateConfigDB(ikey,
+                                              UPLL_DT_RUNNING,
+                                              UNC_OP_UPDATE,
+                                              dmi,
+                                              MAINTBL);
+                 if (UPLL_RC_SUCCESS != result_code) {
+                   UPLL_LOG_DEBUG("SetConsolidatedStatus failed."
+                                  "UpdateConfigDB Failed"
+                                  " Result Code - %d", result_code);
+                 }
+                 return result_code;
+               }
+
+           upll_rc_t
+               VtnMoMgr::MergeValidateChildren(ConfigKeyVal *import_ckval,
+                                               const char *ctrlr_id,
+                                               ConfigKeyVal *ikey,
+                                               DalDmlIntf *dmi) {
+                 UPLL_FUNC_TRACE;
+                 upll_rc_t result_code = UPLL_RC_SUCCESS;
+                 if (!import_ckval || !(import_ckval->get_key())) {
+                   UPLL_LOG_DEBUG("Invalid Input");
+                   return UPLL_RC_ERR_GENERIC;
+                 }
+                 ConfigKeyVal *ckval = NULL;
+                 unc_key_type_t child_key[]= {
+                   UNC_KT_VBRIDGE, UNC_KT_VBR_NWMONITOR, UNC_KT_VROUTER,
+                   UNC_KT_VRT_IF, UNC_KT_VLINK
+                 };
+                 while (import_ckval) {
+                   for (unsigned int i = 0;
+                        i < sizeof(child_key)/sizeof(child_key[0]); i++) {
+                     const unc_key_type_t ktype = child_key[i];
+                     MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(
+                         const_cast<MoManager *>(GetMoManager(ktype)));
+                     if (!mgr) {
+                       UPLL_LOG_DEBUG("Instance is NULL");
+                       return UPLL_RC_ERR_GENERIC;
+                     }
+                     result_code = mgr->GetChildConfigKey(ckval, import_ckval);
+                     if (UPLL_RC_SUCCESS != result_code) {
+                       if (ckval) {
+                         delete ckval;
+                         ckval = NULL;
+                       }
+                       UPLL_LOG_DEBUG("GetChildConfigKey Failed %d",
+                                      result_code);
+                       return result_code;
+                     }
+                     result_code = mgr->MergeValidate(child_key[i],
+                                                      ctrlr_id,
+                                                      ckval,
+                                                      dmi);
+                     UPLL_LOG_TRACE("Result code is %d key type %d",
+                                    result_code,
+                                    ktype);
+
+                     if (UPLL_RC_SUCCESS != result_code &&
+                         UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+                       if (UPLL_RC_ERR_MERGE_CONFLICT == result_code) {
+                         UPLL_LOG_DEBUG(" Merge Conflict %d", result_code);
+                         if (ikey) {
+                           ikey->ResetWith(ckval);
+                           UPLL_LOG_DEBUG("Conflict detail %s",
+                                          ikey->ToStrAll().c_str());
+                         }
+                       } else {
+                         UPLL_LOG_DEBUG("Merge Validate Failed %d",
+                                        result_code);
+                       }
+                       if (NULL != ckval) {
+                         delete ckval;
+                         ckval = NULL;
+                       }
+                       return result_code;
+                     }
+                     if (ckval)
+                       delete ckval;
+                     ckval = NULL;
+                   }
+                   import_ckval = import_ckval->get_next_cfg_key_val();
+                 }
+                 result_code = (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) ?
+                     UPLL_RC_SUCCESS : result_code;
+                 return result_code;
+               }
+
+           upll_rc_t
+               VtnMoMgr::MergeValidate(unc_key_type_t keytype,
+                                       const char *ctrlr_id,
+                                       ConfigKeyVal *ikey,
+                                       DalDmlIntf *dmi) {
+                 UPLL_FUNC_TRACE;
+                 upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
+                 //  Import Controller Name Not needed so checks is missing.
+                 ConfigKeyVal *import_ckval = NULL;
+                 result_code = GetChildConfigKey(import_ckval, NULL);
+                 if (UPLL_RC_SUCCESS != result_code) {
+                   UPLL_LOG_DEBUG("GetChildConfig Failed ");
+                   return result_code;
+                 }
+                 DbSubOp dbop = {kOpReadMultiple, kOpMatchNone, kOpInOutNone};
+                 result_code = ReadConfigDB(import_ckval,
+                                            UPLL_DT_IMPORT,
+                                            UNC_OP_READ,
+                                            dbop,
+                                            dmi,
+                                            MAINTBL);
+                 if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+                   UPLL_LOG_DEBUG("No Records in the Import DB");
+                   DELETE_IF_NOT_NULL(import_ckval);
+                   return UPLL_RC_SUCCESS;
+                 }
+
+                 /* Other than  UPLL_RC_ERR_NO_SUCH_INSTANCE AND
+                  * UPLL_RC_SUCCESS */
+                 if (UPLL_RC_SUCCESS != result_code) {
+                   UPLL_LOG_DEBUG(" ReadConfigDB Failed %d", result_code);
+                   DELETE_IF_NOT_NULL(import_ckval);
+                   return result_code;
+                 }
+                 ConfigKeyVal *start_ckv = import_ckval;
+                 result_code = MergeValidateChildren(import_ckval,
+                                                     ctrlr_id,
+                                                     ikey,
+                                                     dmi);
+                 DELETE_IF_NOT_NULL(start_ckv);
+                 if (UPLL_RC_SUCCESS == result_code) {
+                   ConfigKeyVal *req = NULL;
+                   ConfigKeyVal *nreq = NULL;
+                   DalCursor *dal_cursor_handle  = NULL;
+                   UPLL_LOG_TRACE("Create Entry in candidate");
+                   result_code = DiffConfigDB(UPLL_DT_IMPORT,
+                                              UPLL_DT_CANDIDATE,
+                                              UNC_OP_CREATE,
+                                              req, nreq,
+                                              &dal_cursor_handle,
+                                              dmi,
+                                              MAINTBL);
+                   while (UPLL_RC_SUCCESS == result_code) {
+                     result_code = DalToUpllResCode(dmi->
+                                                    GetNextRecord(
+                                                        dal_cursor_handle));
+                     if (UPLL_RC_SUCCESS != result_code
+                         && UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+                       UPLL_LOG_DEBUG("GetNextRecord Failed ");
+                       DELETE_IF_NOT_NULL(req);
+                       DELETE_IF_NOT_NULL(nreq);
+                       if (dal_cursor_handle)
+                         dmi->CloseCursor(dal_cursor_handle, true);
+                       return result_code;
+                     }
+                     if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+                       DELETE_IF_NOT_NULL(req);
+                       DELETE_IF_NOT_NULL(nreq);
+                       if (dal_cursor_handle)
+                         dmi->CloseCursor(dal_cursor_handle, true);
+                       return UPLL_RC_SUCCESS;
+                     }
+                     dbop.inoutop =
+                         kOpInOutFlag | kOpInOutCtrlr | kOpInOutDomain;
+                     result_code = UpdateConfigDB(req,
+                                                  UPLL_DT_CANDIDATE,
+                                                  UNC_OP_CREATE,
+                                                  dmi,
+                                                  &dbop,
+                                                  MAINTBL);
+                     if (UPLL_RC_SUCCESS != result_code) {
+                       DELETE_IF_NOT_NULL(req);
+                       DELETE_IF_NOT_NULL(nreq);
+                       if (dal_cursor_handle)
+                         dmi->CloseCursor(dal_cursor_handle, true);
+                       UPLL_LOG_DEBUG("UpdateConfigDB Failed");
+                       return result_code;
+                     }
+                   }
+                   DELETE_IF_NOT_NULL(req);
+                   DELETE_IF_NOT_NULL(nreq);
+                   if (dal_cursor_handle)
+                     dmi->CloseCursor(dal_cursor_handle, true);
+                 }
+                 result_code = (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code)?
+                     UPLL_RC_SUCCESS : result_code;
+                 return result_code;
+               }
+
+           //  Not used anywhere currently in the source
+           upll_rc_t
+               VtnMoMgr::MergeVtnMainTable(DalDmlIntf *dmi) {
+                 UPLL_FUNC_TRACE;
+                 upll_rc_t result_code = UPLL_RC_SUCCESS;
+                 ConfigKeyVal *req = NULL;
+                 ConfigKeyVal *nreq = NULL;
+                 DalCursor *dal_cursor_handle  = NULL;
+                 UPLL_LOG_TRACE("Create Entry in candidate");
+                 result_code = DiffConfigDB(UPLL_DT_IMPORT, UPLL_DT_CANDIDATE,
+                                            UNC_OP_CREATE,
+                                            req,
+                                            nreq,
+                                            &dal_cursor_handle,
+                                            dmi,
+                                            MAINTBL);
+                 while (UPLL_RC_SUCCESS == result_code) {
+                   result_code = DalToUpllResCode(dmi->
+                                                  GetNextRecord(
+                                                      dal_cursor_handle));
+                   if (UPLL_RC_SUCCESS != result_code
+                       && UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+                     UPLL_LOG_DEBUG("GetNextRecord Failed ");
+                     DELETE_IF_NOT_NULL(req);
+                     DELETE_IF_NOT_NULL(nreq);
+                     if (dal_cursor_handle)
+                       dmi->CloseCursor(dal_cursor_handle, true);
+                     return result_code;
+                   }
+                   if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+                     DELETE_IF_NOT_NULL(req);
+                     DELETE_IF_NOT_NULL(nreq);
+                     if (dal_cursor_handle)
+                       dmi->CloseCursor(dal_cursor_handle, true);
+                     return UPLL_RC_SUCCESS;
+                   }
+                   DbSubOp dbop = {kOpReadMultiple,
+                     kOpMatchNone,
+                     kOpInOutFlag};
+                   result_code = UpdateConfigDB(req,
+                                                UPLL_DT_CANDIDATE,
+                                                UNC_OP_CREATE,
+                                                dmi,
+                                                &dbop,
+                                                MAINTBL);
+                   if (UPLL_RC_SUCCESS != result_code) {
+                     DELETE_IF_NOT_NULL(req);
+                     DELETE_IF_NOT_NULL(nreq);
+                     if (dal_cursor_handle)
+                       dmi->CloseCursor(dal_cursor_handle, true);
+                     UPLL_LOG_DEBUG("UpdateConfigDB Failed");
+                     return result_code;
+                   }
+                 }
+                 DELETE_IF_NOT_NULL(req);
+                 DELETE_IF_NOT_NULL(nreq);
+                 if (dal_cursor_handle)
+                   dmi->CloseCursor(dal_cursor_handle, true);
+                 return result_code;
+               }
+
+           upll_rc_t
+               VtnMoMgr::TxUpdateController(unc_key_type_t keytype,
+                                            uint32_t session_id,
+                                            uint32_t config_id,
+                                            uuc::UpdateCtrlrPhase phase,
+                                            set<string> *affected_ctrlr_set,
+                                            DalDmlIntf *dmi,
+                                            ConfigKeyVal **err_ckv) {
+                 UPLL_FUNC_TRACE;
+                 upll_rc_t result_code = UPLL_RC_SUCCESS;
+                 DalResultCode dal_result = uud::kDalRcSuccess;
+                 ConfigKeyVal *req = NULL, *nreq = NULL, *ck_main = NULL;
+                 controller_domain ctrlr_dom;
+                 DalCursor *dal_cursor_handle = NULL;
+                 unc_keytype_operation_t op =
+                     (phase ==
+                      uuc::kUpllUcpCreate)?UNC_OP_CREATE:
+                     ((phase == uuc::kUpllUcpUpdate)?UNC_OP_UPDATE:
+                      ((phase == uuc::kUpllUcpDelete)?UNC_OP_DELETE:
+                       UNC_OP_INVALID));
+                 ctrlr_dom.ctrlr = NULL;
+                 ctrlr_dom.domain = NULL;
+                 MoMgrTables tbl = (op != UNC_OP_UPDATE)?CTRLRTBL:MAINTBL;
+                 result_code = DiffConfigDB(UPLL_DT_CANDIDATE,
+                                            UPLL_DT_RUNNING,
+                                            op,
+                                            req,
+                                            nreq,
+                                            &dal_cursor_handle,
+                                            dmi,
+                                            tbl);
+                 while (result_code == UPLL_RC_SUCCESS) {
+                   //  Get Next Record
+                   dal_result = dmi->GetNextRecord(dal_cursor_handle);
+                   result_code = DalToUpllResCode(dal_result);
+                   if (result_code != UPLL_RC_SUCCESS)
+                     break;
+                   ck_main = NULL;
+                   IpcResponse resp;
+                   memset(&resp, 0, sizeof(resp));
+
+                   resp.header.clnt_sess_id = session_id;
+                   resp.header.config_id = config_id;
+                   if (op != UNC_OP_UPDATE) {
+                     if (op == UNC_OP_CREATE)
+                       result_code = DupConfigKeyVal(ck_main, req, tbl);
+                     else
+                       result_code = GetChildConfigKey(ck_main, req);
+                     if (!ck_main || result_code != UPLL_RC_SUCCESS) {
+                       UPLL_LOG_DEBUG("Returning error %d", result_code);
+                       DELETE_IF_NOT_NULL(ck_main);
+                       break;
+                     }
+                     GET_USER_DATA_CTRLR_DOMAIN(ck_main, ctrlr_dom);
+                     UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom.ctrlr,
+                                    ctrlr_dom.domain);
+                     if ((ctrlr_dom.ctrlr == NULL) ||
+                         (ctrlr_dom.domain == NULL)) {
+                       UPLL_LOG_INFO("Invalid controller/domain");
+                       DELETE_IF_NOT_NULL(ck_main);
+                       result_code = UPLL_RC_ERR_GENERIC;
+                       break;
+                     }
+
+                     bool driver_resp = false;
+                     result_code = TxUpdateProcess(ck_main,
+                                                   &resp,
+                                                   op,
+                                                   dmi,
+                                                   &ctrlr_dom,
+                                                   affected_ctrlr_set,
+                                                   &driver_resp);
+                     if (result_code != UPLL_RC_SUCCESS && driver_resp) {
+                       UPLL_LOG_DEBUG("Returns error %d", result_code);
+                       SET_USER_DATA_CTRLR(resp.ckv_data, ctrlr_dom.ctrlr);
+                       *err_ckv = resp.ckv_data;
+                       DELETE_IF_NOT_NULL(ck_main);
+                       break;
+                     } else if (result_code != UPLL_RC_SUCCESS) {
+                       DELETE_IF_NOT_NULL(resp.ckv_data);
+                       DELETE_IF_NOT_NULL(ck_main);
+                       break;
+                     }
+                     DELETE_IF_NOT_NULL(resp.ckv_data);
+                   }
+                   DELETE_IF_NOT_NULL(ck_main);
+                 }
+                 DELETE_IF_NOT_NULL(nreq);
+                 DELETE_IF_NOT_NULL(req);
+
+                 if (dal_cursor_handle)
+                   dmi->CloseCursor(dal_cursor_handle, true);
+
+                 result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)?
+                     UPLL_RC_SUCCESS:result_code;
+                 return result_code;
+               }
+
+           upll_rc_t
+               VtnMoMgr::TxUpdateProcess(ConfigKeyVal *ck_main,
+                                         IpcResponse *ipc_resp,
+                                         unc_keytype_operation_t op,
+                                         DalDmlIntf *dmi,
+                                         controller_domain *ctrlr_dom,
+                                         set<string> *affected_ctrlr_set,
+                                         bool *driver_resp) {
+                 UPLL_FUNC_TRACE;
+                 upll_rc_t result_code;
+                 controller_domain ctrlr_dom_dup;
+                 ctrlr_dom_dup.ctrlr = NULL;
+                 ctrlr_dom_dup.domain = NULL;
+                 /* read from main table */
+                 ConfigKeyVal *dup_ckmain = ck_main;
+                 if (op == UNC_OP_CREATE) {
+                   dup_ckmain = NULL;
+                   result_code = GetChildConfigKey(dup_ckmain, ck_main);
+                   if (result_code != UPLL_RC_SUCCESS || dup_ckmain == NULL) {
+                     UPLL_LOG_DEBUG("Returning error %d", result_code);
+                     delete dup_ckmain;
+                     return result_code;
+                   }
+                   DbSubOp dbop = {kOpReadSingle, kOpMatchNone, kOpInOutNone};
+                   result_code = ReadConfigDB(dup_ckmain, UPLL_DT_CANDIDATE,
+                                              UNC_OP_READ, dbop, dmi, MAINTBL);
+                   if (result_code != UPLL_RC_SUCCESS) {
+                     UPLL_LOG_INFO("%s Vtn read failed %d",
+                                   (dup_ckmain->ToStrAll()).c_str(),
+                                   result_code);
+                     if (dup_ckmain) delete dup_ckmain;
+                     return result_code;
+                   }
+                   /* To filter the attributes to be sent to controller */
+                   void *val = (ck_main) ? GetVal(ck_main) : NULL;
+                   void *dup_val = (dup_ckmain) ? GetVal(dup_ckmain) : NULL;
+                   if (FilterAttributes(dup_val, val, false, op)) {
+                     if (dup_ckmain) delete dup_ckmain;
+                     return UPLL_RC_SUCCESS;
+                   }
+                 } else if (op == UNC_OP_UPDATE) {
+                   UPLL_LOG_INFO("UPDATE to VTN is not supported"
+                                 "at driver. so return..");
+                   return UPLL_RC_SUCCESS;
+                 }
+                 /* Get renamed key if key is renamed */
+                 /* For Delete operation we have to get info
+                  * from running db
+                  */
+                 if (op == UNC_OP_DELETE) {
+                   result_code = GetRenamedControllerKey(dup_ckmain,
+                                                         UPLL_DT_RUNNING,
+                                                         dmi,
+                                                         ctrlr_dom);
+                 } else {
+                   if (op == UNC_OP_CREATE) {
+                     ctrlr_dom_dup.ctrlr = NULL;
+                     ctrlr_dom_dup.domain = NULL;
+                     GET_USER_DATA_CTRLR_DOMAIN(dup_ckmain, ctrlr_dom_dup);
+                   }
+                   result_code = GetRenamedControllerKey(dup_ckmain,
+                                                         UPLL_DT_CANDIDATE,
+                                                         dmi,
+                                                         &ctrlr_dom_dup);
+                 }
+                 if (result_code != UPLL_RC_SUCCESS) {
+                   UPLL_LOG_DEBUG("GetRenamedControllerKey failed. Result : %d",
+                                  result_code);
+                   if ((op == UNC_OP_CREATE) && dup_ckmain)
+                     delete dup_ckmain;
+                   return result_code;
+                 }
+                 //  ipc_req->ckv_data = ck_main;
+                 result_code = SendIpcReq(ipc_resp->header.clnt_sess_id,
+                                          ipc_resp->header.config_id,
+                                          op,
+                                          UPLL_DT_CANDIDATE,
+                                          dup_ckmain,
+                                          ctrlr_dom,
+                                          ipc_resp);
+                 if (result_code == UPLL_RC_ERR_CTR_DISCONNECTED) {
+                   UPLL_LOG_DEBUG("Controller disconnected");
+                   result_code = UPLL_RC_SUCCESS;
+                 }
+                 if (result_code != UPLL_RC_SUCCESS) {
+                   *driver_resp = true;
+                   UPLL_LOG_DEBUG("IpcSend failed %d", result_code);
+                 }
+
+                 affected_ctrlr_set->insert((const char *)ctrlr_dom->ctrlr);
+                 if ((op == UNC_OP_CREATE) && dup_ckmain)
+                   delete dup_ckmain;
+                 UPLL_LOG_TRACE("Driver response received %d", *driver_resp);
+                 return result_code;
+               }
+
+           upll_rc_t
+               VtnMoMgr::CopyToConfigKey(ConfigKeyVal * &okey,
+                                         ConfigKeyVal * ikey)  {
+                 if (!ikey || !(ikey->get_key())) return UPLL_RC_ERR_GENERIC;
+
+                 key_vtn_t *key_vtn = reinterpret_cast<key_vtn_t *>
                      (ConfigKeyVal::Malloc(sizeof(key_vtn_t)));
 
-  key_rename_vnode_info *key_rename =
-          reinterpret_cast<key_rename_vnode_info *>(ikey->get_key());
-
-  if (!strlen(reinterpret_cast<char *>(key_rename->old_unc_vtn_name))) {
-    ConfigKeyVal::Free(key_vtn);
-    return UPLL_RC_ERR_GENERIC;
-  }
-  uuu::upll_strncpy(key_vtn->vtn_name, key_rename->old_unc_vtn_name,
-                       (kMaxLenVtnName + 1));
-
-  okey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key_vtn, NULL);
-  SET_USER_DATA(okey, ikey);
-  return UPLL_RC_SUCCESS;
-}
-
-/* This function will call doing the Rename Operation
- * This functions gets the Old Unc, New Unc and controller
- * names from the ikey, okey and store it in local structure
- * and creates the rename_info configkeyval
- */
-
-upll_rc_t
-VtnMoMgr:: GetRenameInfo(ConfigKeyVal *ikey,
-                         ConfigKeyVal *okey,
-                         ConfigKeyVal *&rename_info,
-                         DalDmlIntf *dmi,
-                         const char *ctrlr_id,
-                         bool &renamed) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  if (!ikey || !okey || NULL != rename_info
-      || !(ikey->get_key()) || !(okey->get_key())) {
-      UPLL_LOG_DEBUG("Input is NULL");
-      return UPLL_RC_ERR_GENERIC;
-  }
-  /* allocate memory for struct to store all the details */
-  key_rename_vnode_info *vtn_rename_info =
-      reinterpret_cast<key_rename_vnode_info *>
-          (ConfigKeyVal::Malloc(sizeof(key_rename_vnode_info)));
-
-  key_vtn_t *vtn_key = NULL;
-  vtn_key = reinterpret_cast<key_vtn_t *>(ikey->get_key());
-  if (vtn_key == NULL) {
-    UPLL_LOG_DEBUG("No VTN Key");
-    ConfigKeyVal::Free(vtn_rename_info);
-    return UPLL_RC_ERR_GENERIC;
-  }
-  /* Checks the vtn is already renamed or not */
-  if (renamed) {
-    /* if already renamed store the controller name */
-    if (!strlen(reinterpret_cast<char *>(
-         (reinterpret_cast<val_rename_vtn_t *>(GetVal(ikey)))->new_name))) {
-      ConfigKeyVal::Free(vtn_rename_info);
-      return UPLL_RC_ERR_GENERIC;
-    }
-    uuu::upll_strncpy(vtn_rename_info->ctrlr_vtn_name,
-         reinterpret_cast<val_rename_vtn_t *>(GetVal(ikey))->new_name,
-         (kMaxLenVtnName + 1));
-  } else {
-    /* if not renamed the ikey contains the controller name */
-    if (!strlen(reinterpret_cast<char *>(vtn_key->vtn_name))) {
-      ConfigKeyVal::Free(vtn_rename_info);
-      return UPLL_RC_ERR_GENERIC;
-    }
-    uuu::upll_strncpy(vtn_rename_info->ctrlr_vtn_name, vtn_key->vtn_name,
-                      (kMaxLenVtnName + 1));
-  }
-  /* Store the old UNC VTN  name */
-  if (!strlen(reinterpret_cast<char *>(vtn_key->vtn_name))) {
-    ConfigKeyVal::Free(vtn_rename_info);
-    return UPLL_RC_ERR_GENERIC;
-  }
-  uuu::upll_strncpy(vtn_rename_info->old_unc_vtn_name, vtn_key->vtn_name,
-                      (kMaxLenVtnName + 1));
-
-  vtn_key = reinterpret_cast<key_vtn_t *>(okey->get_key());
-  /* store the new UNC VTN NAME */
-  if (!strlen(reinterpret_cast<char *>(vtn_key->vtn_name))) {
-    ConfigKeyVal::Free(vtn_rename_info);
-    return UPLL_RC_ERR_GENERIC;
-  }
-  uuu::upll_strncpy(vtn_rename_info->new_unc_vtn_name, vtn_key->vtn_name,
-                      (kMaxLenVtnName + 1));
-
-  rename_info = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcInvalidStNum,
-                                   vtn_rename_info, NULL);
-  DbSubOp dbop = {kOpReadMultiple, kOpMatchNone, kOpInOutCtrlr|kOpInOutDomain};
-  result_code = ReadConfigDB(ikey, UPLL_DT_IMPORT,
-                            UNC_OP_READ, dbop, dmi, CTRLRTBL);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("ReadConfigDB Error");
-    return result_code;
-  }
-  SET_USER_DATA(rename_info, ikey);
-  if (!rename_info) {
-    ConfigKeyVal::Free(vtn_rename_info);
-    return UPLL_RC_ERR_GENERIC;
-  }
+                 key_rename_vnode_info *key_rename =
+                     reinterpret_cast<key_rename_vnode_info *>
+                     (ikey->get_key());
+
+                 if (!strlen(reinterpret_cast<char *>
+                             (key_rename->old_unc_vtn_name))) {
+                   ConfigKeyVal::Free(key_vtn);
+                   return UPLL_RC_ERR_GENERIC;
+                 }
+                 uuu::upll_strncpy(key_vtn->vtn_name,
+                                   key_rename->old_unc_vtn_name,
+                                   (kMaxLenVtnName + 1));
+
+                 okey = new ConfigKeyVal(UNC_KT_VTN,
+                                         IpctSt::kIpcStKeyVtn,
+                                         key_vtn,
+                                         NULL);
+                 SET_USER_DATA(okey, ikey);
+                 return UPLL_RC_SUCCESS;
+               }
+
+           /* This function will call doing the Rename Operation
+            * This functions gets the Old Unc, New Unc and controller
+            * names from the ikey, okey and store it in local structure
+            * and creates the rename_info configkeyval
+            */
+
+           upll_rc_t
+               VtnMoMgr:: GetRenameInfo(ConfigKeyVal *ikey,
+                                        ConfigKeyVal *okey,
+                                        ConfigKeyVal *&rename_info,
+                                        DalDmlIntf *dmi,
+                                        const char *ctrlr_id,
+                                        bool &renamed) {
+                 UPLL_FUNC_TRACE;
+                 uint8_t no_rename = false;
+                 upll_rc_t result_code = UPLL_RC_SUCCESS;
+                 if (!ikey || !okey || NULL != rename_info
+                     || !(ikey->get_key()) || !(okey->get_key())) {
+                   UPLL_LOG_DEBUG("Input is NULL");
+                   return UPLL_RC_ERR_GENERIC;
+                 }
+                 /* allocate memory for struct to store all the details */
+                 key_rename_vnode_info *vtn_rename_info =
+                     reinterpret_cast<key_rename_vnode_info *>
+                     (ConfigKeyVal::Malloc(sizeof(key_rename_vnode_info)));
+
+                 key_vtn_t *vtn_key = NULL;
+                 vtn_key = reinterpret_cast<key_vtn_t *>(ikey->get_key());
+                 if (vtn_key == NULL) {
+                   UPLL_LOG_DEBUG("No VTN Key");
+                   ConfigKeyVal::Free(vtn_rename_info);
+                   return UPLL_RC_ERR_GENERIC;
+                 }
+                 GET_USER_DATA_FLAGS(okey, no_rename);
+                 /* Checks the vtn is already renamed or not */
+                 if (renamed) {
+                   /* if already renamed store the controller name */
+                   if (!strlen(reinterpret_cast<char *>(
+                               (reinterpret_cast<val_rename_vtn_t *>
+                                (GetVal(ikey)))->new_name))) {
+                     ConfigKeyVal::Free(vtn_rename_info);
+                     return UPLL_RC_ERR_GENERIC;
+                   }
+                   uuu::upll_strncpy(vtn_rename_info->ctrlr_vtn_name,
+                                     reinterpret_cast<val_rename_vtn_t *>
+                                     (GetVal(ikey))->new_name,
+                                     (kMaxLenVtnName + 1));
+                 } else {
+                   /* if not renamed the ikey contains the controller name */
+                   if (!strlen(reinterpret_cast<char *>(vtn_key->vtn_name))) {
+                     ConfigKeyVal::Free(vtn_rename_info);
+                     return UPLL_RC_ERR_GENERIC;
+                   }
+                   uuu::upll_strncpy(vtn_rename_info->ctrlr_vtn_name,
+                                     vtn_key->vtn_name,
+                                     (kMaxLenVtnName + 1));
+                 }
+                 /* Store the old UNC VTN  name */
+                 if (!strlen(reinterpret_cast<char *>(vtn_key->vtn_name))) {
+                   ConfigKeyVal::Free(vtn_rename_info);
+                   return UPLL_RC_ERR_GENERIC;
+                 }
+                 uuu::upll_strncpy(vtn_rename_info->old_unc_vtn_name,
+                                   vtn_key->vtn_name,
+                                   (kMaxLenVtnName + 1));
+
+                 vtn_key = reinterpret_cast<key_vtn_t *>(okey->get_key());
+                 /* store the new UNC VTN NAME */
+                 if (!strlen(reinterpret_cast<char *>(vtn_key->vtn_name))) {
+                   ConfigKeyVal::Free(vtn_rename_info);
+                   return UPLL_RC_ERR_GENERIC;
+                 }
+                 uuu::upll_strncpy(vtn_rename_info->new_unc_vtn_name,
+                                   vtn_key->vtn_name,
+                                   (kMaxLenVtnName + 1));
+
+                 rename_info = new ConfigKeyVal(UNC_KT_VTN,
+                                                IpctSt::kIpcInvalidStNum,
+                                                vtn_rename_info,
+                                                NULL);
+                 DbSubOp dbop = {kOpReadMultiple,
+                   kOpMatchNone,
+                   kOpInOutCtrlr|kOpInOutDomain|kOpInOutFlag};
+                 result_code = ReadConfigDB(ikey,
+                                            UPLL_DT_IMPORT,
+                                            UNC_OP_READ,
+                                            dbop,
+                                            dmi,
+                                            CTRLRTBL);
+                 if (UPLL_RC_SUCCESS != result_code) {
+                   UPLL_LOG_DEBUG("ReadConfigDB Error");
+                   return result_code;
+                 }
+                 SET_USER_DATA(rename_info, ikey);
+                 if (!rename_info) {
+                   ConfigKeyVal::Free(vtn_rename_info);
+                   return UPLL_RC_ERR_GENERIC;
+                 }
+                 /* Vtn Merge with Existing VTN name in
+                  * IMPORT Table
+                  */
+                 ConfigKeyVal *temp_key = NULL;
+                 result_code = GetChildConfigKey(temp_key, okey);
+                 if (UPLL_RC_SUCCESS != result_code) {
+                   UPLL_LOG_DEBUG("GetChildConfigKey Failed");
+                   return result_code;
+                 }
+                 result_code = UpdateConfigDB(temp_key,
+                                              UPLL_DT_IMPORT,
+                                              UNC_OP_READ,
+                                              dmi,
+                                              &dbop,
+                                              MAINTBL);
+                 if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code &&
+                     UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+                   UPLL_LOG_DEBUG("UpdateConfigDB failed %d", result_code);
+                   DELETE_IF_NOT_NULL(temp_key);
+                   return result_code;
+                 }
+                 if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code) {
+                   /* Invoked VtnRenameMerge function during vtn renamed to existing
+                    * vtn name for validation/Merge of POM key type from renamed VTN
+                    */
+                   result_code = VtnRenameMerge(ikey, okey, dmi);
+                   if (UPLL_RC_SUCCESS != result_code) {
+                     UPLL_LOG_DEBUG("RenameMerge failed %d", result_code);
+                     return result_code;
+                   }
+                   SET_USER_DATA_FLAGS(temp_key, VTN_RENAME);
+                   /* New Name available in the IMPORT, then
+                    * we have to update the rename flag in Main Table */
+                   result_code = UpdateConfigDB(temp_key,
+                                                UPLL_DT_IMPORT,
+                                                UNC_OP_UPDATE,
+                                                dmi,
+                                                &dbop,
+                                                MAINTBL);
+                   if (UPLL_RC_SUCCESS != result_code) {
+                     UPLL_LOG_DEBUG("UpdateConfigDB failed %d", result_code);
+                     DELETE_IF_NOT_NULL(temp_key);
+                     return result_code;
+                   }
+                   DELETE_IF_NOT_NULL(temp_key);
+
+                   result_code = GetChildConfigKey(temp_key, ikey);
+                   if (UPLL_RC_SUCCESS != result_code) {
+                     UPLL_LOG_DEBUG("GetChildConfigKey Failed");
+                     return result_code;
+                   }
+                   /* Remove the Current VTN name from the Main table*/
+                   result_code = UpdateConfigDB(temp_key,
+                                                UPLL_DT_IMPORT,
+                                                UNC_OP_DELETE,
+                                                dmi,
+                                                &dbop,
+                                                MAINTBL);
+                   if (UPLL_RC_SUCCESS != result_code) {
+                     UPLL_LOG_DEBUG("UpdateConfigDB failed %d", result_code);
+                     DELETE_IF_NOT_NULL(temp_key);
+                     return result_code;
+                   }
+                 }
+                 /* The new name not available then create an
+                  * entry in main table */
+                 if (UPLL_RC_ERR_NO_SUCH_INSTANCE ==
+                     result_code && !no_rename) {
+                   result_code =  GetChildConfigKey(temp_key, okey);
+                   if (UPLL_RC_SUCCESS != result_code) {
+                     UPLL_LOG_DEBUG("GetChildConfigKey Failed %d", result_code);
+                     return result_code;
+                   }
+                   SET_USER_DATA_FLAGS(temp_key, VTN_RENAME);
+                   /*Create an entry in main table */
+                   result_code = UpdateConfigDB(temp_key,
+                                                UPLL_DT_IMPORT,
+                                                UNC_OP_CREATE,
+                                                dmi,
+                                                &dbop,
+                                                MAINTBL);
+                   if (UPLL_RC_SUCCESS != result_code) {
+                     UPLL_LOG_DEBUG("UpdateConfigDB failed %d", result_code);
+                     DELETE_IF_NOT_NULL(temp_key);
+                     return result_code;
+                   }
+                   DELETE_IF_NOT_NULL(temp_key);
+                   result_code =  GetChildConfigKey(temp_key, ikey);
+                   if (UPLL_RC_SUCCESS != result_code) {
+                     UPLL_LOG_DEBUG("GetChildConfigKey Failed %d",
+                                    result_code);
+                     return result_code;
+                   }
+                   /* Remove the current name from the main table */
+                   result_code = UpdateConfigDB(temp_key,
+                                                UPLL_DT_IMPORT,
+                                                UNC_OP_DELETE,
+                                                dmi,
+                                                &dbop,
+                                                MAINTBL);
+                   if (UPLL_RC_SUCCESS != result_code) {
+                     UPLL_LOG_DEBUG("UpdateConfigDB failed %d", result_code);
+                     DELETE_IF_NOT_NULL(temp_key);
+                     return result_code;
+                   }
+                 }
+                 DELETE_IF_NOT_NULL(temp_key);
+                 if (no_rename) {
+                   /* This is called during no rename function */
+                   UPLL_LOG_TRACE("Calling No Rename");
+                   UPLL_LOG_TRACE("Ikey is %s", ikey->ToStrAll().c_str());
+                   UPLL_LOG_TRACE("Okey is %s", okey->ToStrAll().c_str());
+                   uint32_t ref_count = 0;
+                   SET_USER_DATA_FLAGS(okey, NO_RENAME);
+                   result_code = GetChildConfigKey(temp_key, okey);
+                   if (UPLL_RC_SUCCESS != result_code) {
+                     UPLL_LOG_DEBUG("GetChildConfigKey Failed %d", result_code);
+                     return result_code;
+                   }
+                   /* Create an entry with old name */
+                   result_code = UpdateConfigDB(temp_key,
+                                                UPLL_DT_IMPORT,
+                                                UNC_OP_CREATE,
+                                                dmi,
+                                                MAINTBL);
+                   if (UPLL_RC_SUCCESS != result_code) {
+                     UPLL_LOG_DEBUG("UpdateConfigDB failed %d", result_code);
+                     DELETE_IF_NOT_NULL(temp_key);
+                     return result_code;
+                   }
+                   DELETE_IF_NOT_NULL(temp_key);
+                   result_code = GetChildConfigKey(temp_key, ikey);
+                   if (UPLL_RC_SUCCESS != result_code) {
+                     UPLL_LOG_DEBUG("GetChildConfigKey Failed %d",
+                                    result_code);
+                     return result_code;
+                   }
+                   /* Check the count for the Renamed UNC name */
+                   result_code = GetInstanceCount(temp_key,
+                                                  const_cast<char *>(ctrlr_id),
+                                                  UPLL_DT_IMPORT,
+                                                  &ref_count,
+                                                  dmi,
+                                                  RENAMETBL);
+                   if (UPLL_RC_SUCCESS != result_code) {
+                     UPLL_LOG_DEBUG("GetInstanceCoutn is Failed %d",
+                                    result_code);
+                     return result_code;
+                   }
+                   if (ref_count == 1) {
+                     temp_key->SetCfgVal(NULL);
+                     /* if the count is one then remove the Renamed UNC name
+                      * from the MAIN TABLE
+                      */
+                     SET_USER_DATA_FLAGS(temp_key, NO_RENAME);
+                     result_code = UpdateConfigDB(temp_key,
+                                                  UPLL_DT_IMPORT,
+                                                  UNC_OP_DELETE,
+                                                  dmi,
+                                                  MAINTBL);
+                     if (UPLL_RC_SUCCESS != result_code) {
+                       UPLL_LOG_DEBUG("UpdateConfigDB failed %d", result_code);
+                       DELETE_IF_NOT_NULL(temp_key);
+                       return result_code;
+                     }
+                   }
+                 }
+                 DELETE_IF_NOT_NULL(temp_key);
+                 /* Set the Controller Id*/
+                 SET_USER_DATA_CTRLR(rename_info, ctrlr_id);
+                 if (!renamed) {
+                   val_rename_vtn_t *vtn = reinterpret_cast<val_rename_vtn_t *>
+                       (ConfigKeyVal::Malloc(sizeof(val_rename_vtn)));
+                   uuu::upll_strncpy(vtn->new_name, vtn_rename_info->
+                                     ctrlr_vtn_name,
+                                     (kMaxLenCtrlrId + 1));
+                   ConfigVal *cfg_val = new ConfigVal(
+                       IpctSt::kIpcStValRenameVtn,
+                       vtn);
+                   vtn->valid[UPLL_IDX_NEW_NAME_RVTN] = UNC_VF_VALID;
+                   okey->SetCfgVal(cfg_val);
+                   SET_USER_DATA(okey, ikey);
+                   dbop.readop = kOpNotRead;
+                   result_code = UpdateConfigDB(okey,
+                                                UPLL_DT_IMPORT,
+                                                UNC_OP_CREATE,
+                                                dmi,
+                                                &dbop,
+                                                RENAMETBL);
+                 }
+                 return result_code;
+               }
+
+           upll_rc_t
+               VtnMoMgr::ValidateVtnKey(key_vtn * vtn_key)  {
+                 UPLL_FUNC_TRACE;
+                 upll_rc_t ret_val = UPLL_RC_SUCCESS;
+                 ret_val = ValidateKey(reinterpret_cast<char *>
+                                       (vtn_key->vtn_name),
+                                       kMinLenVtnName, kMaxLenVtnName);
+                 if (ret_val != UPLL_RC_SUCCESS) {
+                   UPLL_LOG_INFO("vtn name syntax check failed."
+                                 "Received vtn name - %s",
+                                 vtn_key->vtn_name);
+                   return UPLL_RC_ERR_CFG_SYNTAX;
+                 }
+                 return UPLL_RC_SUCCESS;
+               }
+
+           upll_rc_t
+               VtnMoMgr::ValidateVtnValue(val_vtn *vtn_val,
+                                          uint32_t operation) {
+                 UPLL_FUNC_TRACE;
+                 if (vtn_val->valid[UPLL_IDX_DESC_VTN] == UNC_VF_VALID) {
+                   if (!ValidateDesc(vtn_val->description,
+                                     kMinLenDescription, kMaxLenDescription)) {
+                     UPLL_LOG_INFO("Description syntax check failed."
+                                   "Received Description - %s",
+                                   vtn_val->description);
+                     return UPLL_RC_ERR_CFG_SYNTAX;
+                   }
+                 } else if (vtn_val->valid[UPLL_IDX_DESC_VTN] ==
+                            UNC_VF_VALID_NO_VALUE &&
+                            (operation == UNC_OP_UPDATE ||
+                             operation == UNC_OP_CREATE)) {
+                   uuu::upll_strncpy(reinterpret_cast<char *>
+                                     (vtn_val->description), " ", 2);
+                 }
+                 return UPLL_RC_SUCCESS;
+               }
+
+           upll_rc_t
+               VtnMoMgr::ValidateVtnRenameValue(val_rename_vtn * vtn_rename) {
+                 UPLL_FUNC_TRACE;
+                 upll_rc_t ret_val = UPLL_RC_SUCCESS;
+                 if (vtn_rename->valid[UPLL_IDX_NEW_NAME_RVTN] ==
+                     UNC_VF_VALID) {
+                   ret_val = ValidateKey(reinterpret_cast<char *>
+                                         (vtn_rename->new_name),
+                                         kMinLenVtnName, kMaxLenVtnName);
+                   if (ret_val != UPLL_RC_SUCCESS) {
+                     UPLL_LOG_INFO("Rename syntax check failed."
+                                   "Received  vtn_rename - %s",
+                                   vtn_rename->new_name);
+                     return UPLL_RC_ERR_CFG_SYNTAX;
+                   }
+                 }
+                 return UPLL_RC_SUCCESS;
+               }
+
+           upll_rc_t
+               VtnMoMgr::ValidateMessage(IpcReqRespHeader * req,
+                                         ConfigKeyVal * ikey)  {
+                 UPLL_FUNC_TRACE;
+                 upll_rc_t ret_val = UPLL_RC_SUCCESS;
+                 if (!ikey || !req || !(ikey->get_key())) {
+                   UPLL_LOG_INFO("ConfigKeyVal / IpcReqRespHeader is Null");
+                   return UPLL_RC_ERR_GENERIC;
+                 }
+                 if (ikey->get_key_type() == UNC_KT_VTNSTATION_CONTROLLER)
+                   return (ValidateMessageForVtnStnCtrlr(req, ikey));
+
+                 if (ikey->get_key_type() == UNC_KT_VTN_MAPPING_CONTROLLER)
+                   return (ValidateMessageForVtnMapCtrlr(req, ikey));
+
+                 if (ikey->get_st_num() != IpctSt::kIpcStKeyVtn) {
+                   UPLL_LOG_INFO("Invalid Key structure received."
+                                 "received struct - %d",
+                                 (ikey->get_st_num()));
+                   return UPLL_RC_ERR_BAD_REQUEST;
+                 }
+                 key_vtn *vtn_key = reinterpret_cast<key_vtn *>
+                     (ikey->get_key());
+
+                 unc_key_type_t ktype = ikey->get_key_type();
+                 if (UNC_KT_VTN != ktype) {
+                   UPLL_LOG_INFO("Invalid keytype received."
+                                 "received keytype - %d", ktype);
+                   return UPLL_RC_ERR_BAD_REQUEST;
+                 }
+                 upll_keytype_datatype_t dt_type = req->datatype;
+                 unc_keytype_operation_t operation = req->operation;
+                 unc_keytype_option1_t option1 = req->option1;
+                 unc_keytype_option2_t option2 = req->option2;
+                 if ((operation != UNC_OP_READ_SIBLING_COUNT) &&
+                     (operation != UNC_OP_READ_SIBLING_BEGIN)) {
+                   ret_val = ValidateVtnKey(vtn_key);
+                   if (ret_val != UPLL_RC_SUCCESS) {
+                     UPLL_LOG_INFO("syntax check failed for key_vtn struct");
+                     return UPLL_RC_ERR_CFG_SYNTAX;
+                   }
+                 } else {
+                   UPLL_LOG_TRACE("Operation is %d", operation);
+                   StringReset(vtn_key->vtn_name);
+                 }
+                 if ((operation == UNC_OP_CREATE ||
+                      operation == UNC_OP_UPDATE) &&
+                     (dt_type == UPLL_DT_CANDIDATE|| UPLL_DT_IMPORT ==
+                      dt_type)) {
+                   ConfigVal *cfg_val = ikey->get_cfg_val();
+                   switch (operation) {
+                     case UNC_OP_CREATE:
+                       if (cfg_val == NULL)
+                         return UPLL_RC_SUCCESS;
+                       /* fall through intended */
+                     case UNC_OP_UPDATE:
+                       {
+                         if (!cfg_val)
+                           return UPLL_RC_ERR_CFG_SYNTAX;
+                         if (cfg_val->get_st_num() != IpctSt::kIpcStValVtn) {
+                           UPLL_LOG_INFO(
+                               "Invalid Value structure received."
+                               "received struct - %d",
+                               (ikey->get_st_num()));
+                           return UPLL_RC_ERR_BAD_REQUEST;
+                         }
+                         val_vtn *vtn_val = reinterpret_cast<val_vtn *>(
+                             GetVal(ikey));
+                         if (vtn_val == NULL) {
+                           UPLL_LOG_INFO("syntax check for"
+                                         "vtn_val struct is an optional");
+                           return UPLL_RC_SUCCESS;
+                         }
+                         ret_val = ValidateVtnValue(vtn_val, operation);
+                         if (ret_val != UPLL_RC_SUCCESS) {
+                           UPLL_LOG_INFO("syntax check failure for"
+                                         "val_vtn structure");
+                           return UPLL_RC_ERR_CFG_SYNTAX;
+                         }
+                         return UPLL_RC_SUCCESS;
+                       }
+                     default:
+                       UPLL_LOG_INFO("Invalid operation ");
+                       return UPLL_RC_ERR_CFG_SYNTAX;
+                   }
+                 } else if ((operation == UNC_OP_RENAME ||
+                             operation == UNC_OP_READ ||
+                             operation == UNC_OP_READ_SIBLING ||
+                             operation == UNC_OP_READ_SIBLING_BEGIN) &&
+                            (dt_type == UPLL_DT_IMPORT)) {
+                   if (option1 != UNC_OPT1_NORMAL) {
+                     UPLL_LOG_INFO("Error: option1 is not NORMAL");
+                     return UPLL_RC_ERR_INVALID_OPTION1;
+                   }
+                   if (option2 != UNC_OPT2_NONE) {
+                     UPLL_LOG_INFO("Error: option2 is not NONE");
+                     return UPLL_RC_ERR_INVALID_OPTION2;
+                   }
+                   ConfigVal *cfg_val = ikey->get_cfg_val();
+                   switch (operation) {
+                     case UNC_OP_READ:
+                     case UNC_OP_READ_SIBLING:
+                     case UNC_OP_READ_SIBLING_BEGIN:
+                       if (cfg_val == NULL)
+                         return UPLL_RC_SUCCESS;
+                     case UNC_OP_RENAME:
+                       {
+                         if (!cfg_val)
+                           return UPLL_RC_ERR_CFG_SYNTAX;
+                         if (cfg_val->get_st_num() !=
+                             IpctSt::kIpcStValRenameVtn) {
+                           UPLL_LOG_INFO(
+                               "Invalid val_rename structure received."
+                               "received struct - %d",
+                               (ikey->get_cfg_val())->get_st_num());
+                           return UPLL_RC_ERR_BAD_REQUEST;
+                         }
+                         val_rename_vtn *vtn_rename =
+                             reinterpret_cast<val_rename_vtn *>
+                             (ikey->get_cfg_val()->get_val());
+
+                         if (vtn_rename == NULL && operation ==
+                             UNC_OP_RENAME) {
+                           UPLL_LOG_INFO(
+                               "val_rename_vtn struct is"
+                               "Mandatory for Rename operation");
+                           return UPLL_RC_ERR_BAD_REQUEST;
+                         } else if (vtn_rename == NULL) {
+                           UPLL_LOG_DEBUG(
+                               "syntax check for val_rename"
+                               "_vtn struct is optional");
+                           return UPLL_RC_SUCCESS;
+                         }
+                         ret_val = ValidateVtnRenameValue(vtn_rename);
+                         if (ret_val != UPLL_RC_SUCCESS) {
+                           UPLL_LOG_INFO("syntax check failure for"
+                                         "val_rename_vtn structure");
+                           return UPLL_RC_ERR_CFG_SYNTAX;
+                         }
+                         return UPLL_RC_SUCCESS;
+                       }
+                     default:
+                       UPLL_LOG_INFO("Invalid operation ");
+                       return UPLL_RC_ERR_CFG_SYNTAX;
+                   }
+                 } else if ((operation == UNC_OP_READ ||
+                             operation == UNC_OP_READ_SIBLING ||
+                             operation == UNC_OP_READ_SIBLING_BEGIN ||
+                             operation == UNC_OP_READ_SIBLING_COUNT) &&
+                            (dt_type == UPLL_DT_CANDIDATE ||
+                             dt_type == UPLL_DT_RUNNING ||
+                             dt_type == UPLL_DT_STARTUP ||
+                             dt_type == UPLL_DT_STATE)) {
+                   if (option1 != UNC_OPT1_NORMAL) {
+                     UPLL_LOG_INFO("Error: option1 is not NORMAL");
+                     return UPLL_RC_ERR_INVALID_OPTION1;
+                   }
+                   if (option2 != UNC_OPT2_NONE) {
+                     UPLL_LOG_INFO("Error: option2 is not NONE");
+                     return UPLL_RC_ERR_INVALID_OPTION2;
+                   }
+                   ConfigVal *cfg_val = ikey->get_cfg_val();
+                   if (cfg_val == NULL)
+                     return UPLL_RC_SUCCESS;
+                   if (cfg_val->get_st_num() != IpctSt::kIpcStValVtn) {
+                     UPLL_LOG_INFO(
+                         "Invalid Value structure received."
+                         "received struct - %d",
+                         (cfg_val->get_st_num()));
+                     return UPLL_RC_ERR_BAD_REQUEST;
+                   }
+                   val_vtn *vtn_val = reinterpret_cast<val_vtn *>
+                       (ikey->get_cfg_val()->get_val());
+                   if (vtn_val == NULL) {
+                     UPLL_LOG_DEBUG("syntax check for vtn struct"
+                                    "is an optional");
+                     return UPLL_RC_SUCCESS;
+                   }
+                   ret_val = ValidateVtnValue(vtn_val, operation);
+                   if (ret_val != UPLL_RC_SUCCESS) {
+                     UPLL_LOG_INFO("Base Validation failure for"
+                                   "val_vtn  structure");
+                     return UPLL_RC_ERR_CFG_SYNTAX;
+                   }
+                   return UPLL_RC_SUCCESS;
+                 } else if ((operation == UNC_OP_READ_NEXT ||
+                             operation == UNC_OP_READ_BULK) &&
+                            (dt_type == UPLL_DT_CANDIDATE
+                             || dt_type == UPLL_DT_STARTUP ||
+                             dt_type == UPLL_DT_RUNNING ||
+                             dt_type == UPLL_DT_IMPORT)) {
+                   UPLL_LOG_TRACE("Value structure is none for"
+                                  "operation type:%d",
+                                  operation);
+                   return UPLL_RC_SUCCESS;
+                 } else if ((operation == UNC_OP_DELETE) &&
+                            (dt_type == UPLL_DT_CANDIDATE ||
+                             UPLL_DT_IMPORT == dt_type)) {
+                   UPLL_LOG_TRACE("Value structure is none for"
+                                  "operation type:%d",
+                                  operation);
+                   return UPLL_RC_SUCCESS;
+                 }
+                 UPLL_LOG_INFO("Error Unsupported datatype(%d)"
+                               "or operation(%d)",
+                               dt_type, operation);
+                 return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
+               }
+
+           upll_rc_t
+               VtnMoMgr::ValVtnAttributeSupportCheck(val_vtn_t *vtn_val,
+                                                     const uint8_t *attrs,
+                                                     uint32_t operation) {
+                 UPLL_FUNC_TRACE;
+
+                 if (NULL != vtn_val) {
+                   if ((vtn_val->valid[UPLL_IDX_DESC_VTN] == UNC_VF_VALID) ||
+                       (vtn_val->valid[UPLL_IDX_DESC_VTN] ==
+                        UNC_VF_VALID_NO_VALUE)) {
+                     if (attrs[unc::capa::vtn::kCapDesc] == 0) {
+                       vtn_val->valid[UPLL_IDX_DESC_VTN] = UNC_VF_INVALID;
+                       if (operation == UNC_OP_CREATE ||
+                           operation == UNC_OP_UPDATE) {
+                         UPLL_LOG_INFO("Description attr is not"
+                                       "supported by ctrlr");
+                         return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
+                       }
+                     }
+                   }
+                 }
+                 return UPLL_RC_SUCCESS;
+               }
+
+           upll_rc_t
+               VtnMoMgr::ValidateCapability(IpcReqRespHeader * req,
+                                            ConfigKeyVal * ikey,
+                                            const char *ctrlr_name)  {
+                 UPLL_FUNC_TRACE;
+                 upll_rc_t ret_val = UPLL_RC_ERR_GENERIC;
+                 if (!ikey || !req) {
+                   UPLL_LOG_DEBUG("ConfigKeyVal / IpcReqRespHeader is Null");
+                   return ret_val;
+                 }
+
+                 if (!ctrlr_name) {
+                   ctrlr_name = reinterpret_cast<char*>(
+                       (reinterpret_cast<key_user_data_t *>
+                        (ikey->get_user_data()))->ctrlr_id);
+                   if (!ctrlr_name || !strlen(ctrlr_name)) {
+                     UPLL_LOG_DEBUG("Controller Name is NULL");
+                     return UPLL_RC_ERR_GENERIC;
+                   }
+                 }
+
+                 bool result_code = false;
+                 uint32_t max_attrs = 0;
+                 uint32_t max_instance_count = 0;
+                 const uint8_t *attrs = NULL;
+                 switch (req->operation) {
+                   case UNC_OP_CREATE:
+                     result_code = GetCreateCapability(
+                         ctrlr_name,
+                         ikey->get_key_type(),
+                         &max_instance_count,
+                         &max_attrs,
+                         &attrs);
+                     break;
+
+                   case UNC_OP_UPDATE:
+                     result_code = GetUpdateCapability(
+                         ctrlr_name,
+                         ikey->get_key_type(),
+                         &max_attrs,
+                         &attrs);
+                     break;
+                   case UNC_OP_READ:
+                   case UNC_OP_READ_SIBLING:
+                   case UNC_OP_READ_SIBLING_BEGIN:
+                   case UNC_OP_READ_SIBLING_COUNT:
+                     result_code = GetReadCapability(ctrlr_name,
+                                                     ikey->get_key_type(),
+                                                     &max_attrs,
+                                                     &attrs);
+                     break;
+                   default:
+                     UPLL_LOG_INFO("Invalid operation code(%d)",
+                                   req->operation);
+                     return UPLL_RC_ERR_GENERIC;
+                 }
+                 if (!result_code) {
+                   UPLL_LOG_INFO("key_type - %d is not supported by"
+                                 "controller - %s",
+                                 ikey->get_key_type(),
+                                 ctrlr_name);
+                   return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
+                 }
+                 val_vtn *vtn_val = NULL;
+                 if (ikey->get_cfg_val() && (ikey->get_cfg_val()->
+                                             get_st_num() ==
+                                             IpctSt::kIpcStValVtn)) {
+                   vtn_val =
+                       reinterpret_cast<val_vtn *>
+                       (ikey->get_cfg_val()->get_val());
+                 }
+                 if (vtn_val) {
+                   if (max_attrs > 0) {
+                     ret_val = ValVtnAttributeSupportCheck(vtn_val,
+                                                           attrs,
+                                                           req->operation);
+                     return ret_val;
+                   } else {
+                     UPLL_LOG_DEBUG("Attribute list is empty for operation %d",
+                                    req->operation);
+                     return UPLL_RC_ERR_GENERIC;
+                   }
+                 }
+                 return UPLL_RC_SUCCESS;
+               }
+
+           upll_rc_t VtnMoMgr::IsKeyInUse(upll_keytype_datatype_t dt_type,
+                                          const ConfigKeyVal *ckv,
+                                          bool *in_use,
+                                          DalDmlIntf *dmi) {
+             UPLL_FUNC_TRACE;
+             ConfigKeyVal *ck_ctrlr = NULL;
+             upll_rc_t result_code = UPLL_RC_SUCCESS;
+             DbSubOp dbop = {kOpReadExist, kOpMatchCtrlr, kOpInOutNone};
+             key_ctr *ctr = reinterpret_cast<key_ctr *>(ckv->get_key());
+
+             if (!ctr || !strlen(reinterpret_cast<char *>
+                                 (ctr->controller_name))) {
+               UPLL_LOG_DEBUG("Controller Name invalid");
+               return UPLL_RC_ERR_GENERIC;
+             }
+             uint8_t *controllerName = reinterpret_cast<uint8_t *>(
+                 new char[kMaxLenCtrlrId+1]);
+             uuu::upll_strncpy(controllerName, ctr->controller_name,
+                               (kMaxLenCtrlrId + 1));
+             result_code = GetChildConfigKey(ck_ctrlr, NULL);
+             if (!ck_ctrlr || result_code != UPLL_RC_SUCCESS) {
+               delete[] controllerName;
+               UPLL_LOG_DEBUG("Controller key allocation failed");
+               return UPLL_RC_ERR_GENERIC;
+             }
+             SET_USER_DATA_CTRLR(ck_ctrlr, controllerName);
+
+             //  result_code = ReadConfigDB(ck_ctrlr, UPLL_DT_RUNNING,
+             //    UNC_OP_READ, dbop, dmi, CTRLRTBL);
+             result_code = UpdateConfigDB(ck_ctrlr, dt_type, UNC_OP_READ,
+                                          dmi, &dbop, CTRLRTBL);
+             *in_use = (result_code ==
+                        UPLL_RC_ERR_INSTANCE_EXISTS) ? true : false;
+             delete ck_ctrlr;
+             delete []controllerName;
+             UPLL_LOG_DEBUG("Returning %d", result_code);
+             return ((result_code == UPLL_RC_ERR_INSTANCE_EXISTS ||
+                      result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)
+                     ? UPLL_RC_SUCCESS : result_code);
+           }
+
+           upll_rc_t
+               VtnMoMgr::ValidateMessageForVtnStnCtrlr(
+                   IpcReqRespHeader * req,
+                   ConfigKeyVal * ikey)  {
+                 UPLL_FUNC_TRACE;
+                 upll_rc_t ret_val = UPLL_RC_SUCCESS;
+                 if (!req || !ikey || !(ikey->get_key())) {
+                   UPLL_LOG_INFO("ConfigKeyVal / IpcReqRespHeader is Null");
+                   return UPLL_RC_ERR_GENERIC;
+                 }
+                 if (ikey->get_st_num() !=
+                     IpctSt::kIpcStKeyVtnstationController) {
+                   UPLL_LOG_INFO("Invalid Key structure received."
+                                 "received struct - %d",
+                                 (ikey->get_st_num()));
+                   return UPLL_RC_ERR_CFG_SYNTAX;
+                 }
+                 key_vtnstation_controller *vtn_ctrlr_key =
+                     reinterpret_cast<key_vtnstation_controller *>
+                     (ikey->get_key());
+
+                 if ((req->operation == UNC_OP_READ) ||
+                     (req->operation == UNC_OP_READ_SIBLING) ||
+                     (req->operation == UNC_OP_READ_SIBLING_BEGIN) ||
+                     (req->operation == UNC_OP_READ_SIBLING_COUNT)) {
+                   if (req->datatype == UPLL_DT_STATE) {
+                     if ((req->option1 != UNC_OPT1_NORMAL) &&
+                         (req->option1 != UNC_OPT1_DETAIL) &&
+                         (req->option1 != UNC_OPT1_COUNT)) {
+                       UPLL_LOG_INFO(" Error: option1 is invalid");
+                       return UPLL_RC_ERR_INVALID_OPTION1;
+                     }
+                     if (req->option2 != UNC_OPT2_NONE) {
+                       UPLL_LOG_INFO(" Error: option2 is not NONE");
+                       return UPLL_RC_ERR_INVALID_OPTION2;
+                     }
+                     ret_val = ValidateVtnStnCtrlrKey(vtn_ctrlr_key,
+                                                      req->operation);
+                     if (ret_val != UPLL_RC_SUCCESS) {
+                       UPLL_LOG_INFO("vtn_stn_ctrlr_key syntax check failed.");
+                       return UPLL_RC_ERR_CFG_SYNTAX;
+                     }
+                     return UPLL_RC_SUCCESS;
+                   } else {
+                     UPLL_LOG_INFO("Error Unsupported datatype (%d)",
+                                   req->datatype);
+                     return UPLL_RC_ERR_NO_SUCH_INSTANCE;
+                   }
+                 }
+                 UPLL_LOG_INFO("Error Unsupported Operation (%d)",
+                               req->operation);
+                 return UPLL_RC_ERR_NO_SUCH_INSTANCE;
+               }
+
+           upll_rc_t
+               VtnMoMgr::ValidateMessageForVtnMapCtrlr(IpcReqRespHeader * req,
+                                                       ConfigKeyVal * ikey) {
+                 UPLL_FUNC_TRACE;
+                 if (!req || !ikey || !(ikey->get_key())) {
+                   UPLL_LOG_INFO("ConfigKeyVal / IpcReqRespHeader is Null");
+                   return UPLL_RC_ERR_GENERIC;
+                 }
+                 upll_keytype_datatype_t dt_type = req->datatype;
+                 unc_keytype_operation_t operation = req->operation;
+                 unc_keytype_option1_t option1 = req->option1;
+                 unc_keytype_option2_t option2 = req->option2;
+
+                 upll_rc_t ret_val = UPLL_RC_SUCCESS;
+                 if (ikey->get_st_num() != IpctSt::kIpcStKeyVtnController) {
+                   UPLL_LOG_INFO("Invalid key structure received."
+                                 "received struct - %d",
+                                 (ikey->get_st_num()));
+                   return UPLL_RC_ERR_CFG_SYNTAX;
+                 }
+                 key_vtn_controller *vtn_ctrlr_key =
+                     reinterpret_cast<key_vtn_controller *>
+                     (ikey->get_key());
+
+                 if (operation == UNC_OP_READ || operation ==
+                     UNC_OP_READ_SIBLING
+                     || operation == UNC_OP_READ_SIBLING_BEGIN) {
+                   if (dt_type == UPLL_DT_STATE) {
+                     if (option1 != UNC_OPT1_NORMAL) {
+                       UPLL_LOG_INFO(" Error: option1 is not NORMAL");
+                       return UPLL_RC_ERR_INVALID_OPTION1;
+                     }
+                     if (option2 != UNC_OPT2_NONE) {
+                       UPLL_LOG_INFO(" Error: option2 is not NONE");
+                       return UPLL_RC_ERR_INVALID_OPTION2;
+                     }
+                     ret_val = ValidateVtnMapCtrlrKey(vtn_ctrlr_key,
+                                                      operation);
+                     if (ret_val != UPLL_RC_SUCCESS) {
+                       UPLL_LOG_INFO("syntax check for key_vtn"
+                                     "_ctrlr struct is failed");
+                       return UPLL_RC_ERR_CFG_SYNTAX;
+                     }
+                     UPLL_LOG_TRACE("value struct validation is none"
+                                    "for this keytype");
+                     return UPLL_RC_SUCCESS;
+                   } else {
+                     UPLL_LOG_INFO("Error Unsupported datatype (%d)", dt_type);
+                     return UPLL_RC_ERR_NO_SUCH_INSTANCE;
+                   }
+                 }
+                 UPLL_LOG_INFO("Error Unsupported operation(%d)", operation);
+                 return UPLL_RC_ERR_NO_SUCH_INSTANCE;
+               }
+
+           upll_rc_t
+               VtnMoMgr::ValidateVtnMapCtrlrKey(
+                   key_vtn_controller * vtn_ctrlr_key,
+                   unc_keytype_operation_t operation) {
+                 UPLL_FUNC_TRACE;
+
+                 if (!ValidateString(
+                         vtn_ctrlr_key->vtn_key.vtn_name,
+                         kMinLenVtnName, kMaxLenVtnName)) {
+                   UPLL_LOG_INFO("vtn name syntax check failed."
+                                 "Received vtn_Name - %s",
+                                 vtn_ctrlr_key->vtn_key.vtn_name);
+                   return UPLL_RC_ERR_CFG_SYNTAX;
+                 }
+                 if ((operation != UNC_OP_READ_SIBLING_COUNT) &&
+                     (operation != UNC_OP_READ_SIBLING_BEGIN)) {
+                   if (!ValidateString(
+                           vtn_ctrlr_key->controller_name,
+                           kMinLenCtrlrId, kMaxLenCtrlrId)) {
+                     UPLL_LOG_INFO("controller_name syntax check failed."
+                                   "Received controller_name - %s",
+                                   vtn_ctrlr_key->controller_name);
+                     return UPLL_RC_ERR_CFG_SYNTAX;
+                   }
+                   if (!ValidateDefaultStr(vtn_ctrlr_key->domain_id,
+                                           kMinLenDomainId, kMaxLenDomainId)) {
+                     UPLL_LOG_INFO("Domain_id syntax check failed."
+                                   "Received Domain_id - %s",
+                                   vtn_ctrlr_key->domain_id);
+                     return UPLL_RC_ERR_CFG_SYNTAX;
+                   }
+                 } else {
+                   UPLL_LOG_TRACE("Operation is %d", operation);
+                   StringReset(vtn_ctrlr_key->controller_name);
+                   StringReset(vtn_ctrlr_key->domain_id);
+                 }
+                 return UPLL_RC_SUCCESS;
+               }
+           upll_rc_t
+               VtnMoMgr::ValidateVtnStnCtrlrKey(
+                   key_vtnstation_controller * vtn_ctrlr_key,
+                   unc_keytype_operation_t operation)  {
+                 UPLL_FUNC_TRACE;
+                 if ((operation != UNC_OP_READ_SIBLING_COUNT) &&
+                     (operation != UNC_OP_READ_SIBLING_BEGIN)) {
+                   if (!ValidateString(vtn_ctrlr_key->controller_name,
+                                       kMinLenCtrlrId, kMaxLenCtrlrId)) {
+                     UPLL_LOG_INFO("controller_name syntax check failed."
+                                   "Received controller_name - %s",
+                                   vtn_ctrlr_key->controller_name);
+                     return UPLL_RC_ERR_CFG_SYNTAX;
+                   }
+                 } else {
+                   UPLL_LOG_TRACE("Operation is %d", operation);
+                   StringReset(vtn_ctrlr_key->controller_name);
+                 }
+                 return UPLL_RC_SUCCESS;
+               }
+
+           upll_rc_t VtnMoMgr::SetOperStatus(ConfigKeyVal *ikey,
+                                             state_notification notification,
+                                             DalDmlIntf *dmi) {
+             UPLL_FUNC_TRACE;
+             upll_rc_t result_code = UPLL_RC_SUCCESS;
+             if (!ikey) {
+               UPLL_LOG_DEBUG("Invalid param");
+               return UPLL_RC_ERR_GENERIC;
+             }
+             ConfigVal *tmp = (ikey->get_cfg_val()) ?
+                 ikey->get_cfg_val()->get_next_cfg_val() : NULL;
+             val_db_vtn_st_t *vtn_valst = reinterpret_cast<val_db_vtn_st_t *>
+                 ((tmp != NULL) ? tmp->get_val() : NULL);
+             if (vtn_valst == NULL) {
+               UPLL_LOG_DEBUG("Invalid param");
+               return UPLL_RC_ERR_GENERIC;
+             }
+             val_vtn_st_t *vtn_val = reinterpret_cast<val_vtn_st_t *>
+                 (vtn_valst);
+
+             /* Update oper status based on notification */
 #if 0
-  /* Vtn Merge with Existing VTN name in
-   * IMPORT Table
-   */
-  ConfigKeyVal *temp_key = NULL;
-  result_code = GetChildConfigKey(temp_key, okey);
-  if (UPLL_RC_SUCCESS != result_code) {
-     UPLL_LOG_DEBUG("GetChildConfigKey Failed");
-     return result_code;
-  }
-  result_code = UpdateConfigDB(temp_key, UPLL_DT_IMPORT, UNC_OP_READ, dmi,
-                               &dbop, MAINTBL);
-  if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code &&
-      UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
-    UPLL_LOG_DEBUG("UpdateConfigDB failed %d", result_code);
-    DELETE_IF_NOT_NULL(temp_key);
-    return result_code;
-  }
-  if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code) {
-    SET_USER_DATA_FLAGS(temp_key, VTN_RENAME);
-    /* New Name available in the IMPORT, then
-     * we have to update the rename flag in Main Table */
-    result_code = UpdateConfigDB(temp_key, UPLL_DT_IMPORT,
-                                 UNC_OP_UPDATE, dmi, &dbop, MAINTBL);
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("UpdateConfigDB failed %d", result_code);
-      DELETE_IF_NOT_NULL(temp_key);
-      return result_code;
-    }
-    DELETE_IF_NOT_NULL(temp_key);
-
-    result_code = GetChildConfigKey(temp_key, ikey);
-    if (UPLL_RC_SUCCESS != result_code) {
-     UPLL_LOG_DEBUG("GetChildConfigKey Failed");
-     return result_code;
-  }
-    /* Remove the Current VTN name from the Main table*/
-    result_code = UpdateConfigDB(temp_key, UPLL_DT_IMPORT,
-                                UNC_OP_DELETE, dmi, &dbop, MAINTBL);
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("UpdateConfigDB failed %d", result_code);
-      DELETE_IF_NOT_NULL(temp_key);
-      return result_code;
-    }
-  }
-  /* The new name not available then create an entry in main table */
-  if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code && !no_rename) {
-    result_code =  GetChildConfigKey(temp_key, okey);
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("GetChildConfigKey Failed %d", result_code);
-      return result_code;
-    }
-    SET_USER_DATA_FLAGS(temp_key, VTN_RENAME);
-     /*Create an entry in main table */
-    result_code = UpdateConfigDB(temp_key, UPLL_DT_IMPORT,
-                                 UNC_OP_CREATE, dmi, &dbop, MAINTBL);
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("UpdateConfigDB failed %d", result_code);
-      DELETE_IF_NOT_NULL(temp_key);
-      return result_code;
-    }
-    DELETE_IF_NOT_NULL(temp_key);
-    result_code =  GetChildConfigKey(temp_key, ikey);
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("GetChildConfigKey Failed %d", result_code);
-      return result_code;
-    }
-    /* Remove the current name from the main table */
-    result_code = UpdateConfigDB(temp_key, UPLL_DT_IMPORT,
-                                UNC_OP_DELETE, dmi, &dbop, MAINTBL);
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("UpdateConfigDB failed %d", result_code);
-      DELETE_IF_NOT_NULL(temp_key);
-      return result_code;
-    }
-  }
-  DELETE_IF_NOT_NULL(temp_key);
-  if (no_rename) {
-    /* This is called during no rename function */
-    UPLL_LOG_TRACE("Calling No Rename");
-    UPLL_LOG_TRACE("Ikey is %s", ikey->ToStrAll().c_str());
-    UPLL_LOG_TRACE("Okey is %s", okey->ToStrAll().c_str());
-    uint32_t ref_count = 0;
-    SET_USER_DATA_FLAGS(okey, NO_RENAME);
-    result_code = GetChildConfigKey(temp_key, okey);
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("GetChildConfigKey Failed %d", result_code);
-      return result_code;
-    }
-    /* Create an entry with old name */
-    result_code = UpdateConfigDB(temp_key, UPLL_DT_IMPORT, UNC_OP_CREATE, dmi,
-                                 MAINTBL);
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("UpdateConfigDB failed %d", result_code);
-      DELETE_IF_NOT_NULL(temp_key);
-      return result_code;
-    }
-    DELETE_IF_NOT_NULL(temp_key);
-    result_code = GetChildConfigKey(temp_key, ikey);
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("GetChildConfigKey Failed %d", result_code);
-      return result_code;
-    }
-    /* Check the count for the Renamed UNC name */
-    result_code = GetInstanceCount(temp_key, const_cast<char *>(ctrlr_id),
-                                   UPLL_DT_IMPORT, &ref_count, dmi, RENAMETBL);
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("GetInstanceCoutn is Failed %d", result_code);
-      return result_code;
-    }
-    if (ref_count == 1) {
-      temp_key->SetCfgVal(NULL);
-      /* if the count is one then remove the Renamed UNC name
-       * from the MAIN TABLE
-       */
-      SET_USER_DATA_FLAGS(temp_key, NO_RENAME);
-      result_code = UpdateConfigDB(temp_key, UPLL_DT_IMPORT, UNC_OP_DELETE, dmi,
-                                  MAINTBL);
-      if (UPLL_RC_SUCCESS != result_code) {
-        UPLL_LOG_DEBUG("UpdateConfigDB failed %d", result_code);
-        DELETE_IF_NOT_NULL(temp_key);
-        return result_code;
-      }
-    }
-  }
-  DELETE_IF_NOT_NULL(temp_key);
+             if ((notification == kAdminStatusDisabled) &&
+                 (vtn_val->oper_status == UPLL_OPER_STATUS_UNKNOWN)) {
+               return result_code;
+             }
 #endif
-  /* Set the Controller Id*/
-  SET_USER_DATA_CTRLR(rename_info, ctrlr_id);
-  if (!renamed) {
-      val_rename_vtn_t *vtn = reinterpret_cast<val_rename_vtn_t *>
-          (ConfigKeyVal::Malloc(sizeof(val_rename_vtn)));
-      uuu::upll_strncpy(vtn->new_name, vtn_rename_info->ctrlr_vtn_name,
-                      (kMaxLenCtrlrId + 1));
-      ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcStValRenameVtn, vtn);
-      vtn->valid[UPLL_IDX_NEW_NAME_RVTN] = UNC_VF_VALID;
-      okey->SetCfgVal(cfg_val);
-      SET_USER_DATA(okey, ikey);
-      dbop.readop = kOpNotRead;
-      result_code = UpdateConfigDB(okey, UPLL_DT_IMPORT, UNC_OP_CREATE,
-                                    dmi, &dbop, RENAMETBL);
-  }
-  return result_code;
-}
-
-upll_rc_t
-VtnMoMgr::ValidateVtnKey(key_vtn * vtn_key)  {
-  UPLL_FUNC_TRACE;
-  upll_rc_t ret_val = UPLL_RC_SUCCESS;
-  ret_val = ValidateKey(reinterpret_cast<char *>(vtn_key->vtn_name),
-                         kMinLenVtnName, kMaxLenVtnName);
-  if (ret_val != UPLL_RC_SUCCESS) {
-    UPLL_LOG_INFO("vtn name syntax check failed."
-                  "Received vtn name - %s",
-                  vtn_key->vtn_name);
-    return UPLL_RC_ERR_CFG_SYNTAX;
-  }
-  return UPLL_RC_SUCCESS;
-}
-
-upll_rc_t
-VtnMoMgr::ValidateVtnValue(val_vtn *vtn_val,
-                           uint32_t operation) {
-  UPLL_FUNC_TRACE;
-  if (vtn_val->valid[UPLL_IDX_DESC_VTN] == UNC_VF_VALID) {
-    if (!ValidateDesc(vtn_val->description,
-        kMinLenDescription, kMaxLenDescription)) {
-      UPLL_LOG_INFO("Description syntax check failed."
-          "Received Description - %s", vtn_val->description);
-      return UPLL_RC_ERR_CFG_SYNTAX;
-    }
-  } else if (vtn_val->valid[UPLL_IDX_DESC_VTN] == UNC_VF_VALID_NO_VALUE &&
-      (operation == UNC_OP_UPDATE || operation == UNC_OP_CREATE)) {
-    uuu::upll_strncpy(reinterpret_cast<char *>(vtn_val->description), " ", 2);
-  }
-  return UPLL_RC_SUCCESS;
-}
-
-upll_rc_t
-VtnMoMgr::ValidateVtnRenameValue(val_rename_vtn * vtn_rename) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t ret_val = UPLL_RC_SUCCESS;
-  if (vtn_rename->valid[UPLL_IDX_NEW_NAME_RVTN] == UNC_VF_VALID) {
-    ret_val = ValidateKey(reinterpret_cast<char *>(vtn_rename->new_name),
-                          kMinLenVtnName, kMaxLenVtnName);
-    if (ret_val != UPLL_RC_SUCCESS) {
-      UPLL_LOG_INFO("Rename syntax check failed."
-                    "Received  vtn_rename - %s",
-                    vtn_rename->new_name);
-      return UPLL_RC_ERR_CFG_SYNTAX;
-    }
-  }
-  return UPLL_RC_SUCCESS;
-}
-
-upll_rc_t
-VtnMoMgr::ValidateMessage(IpcReqRespHeader * req,
-                          ConfigKeyVal * ikey)  {
-  UPLL_FUNC_TRACE;
-  upll_rc_t ret_val = UPLL_RC_SUCCESS;
-  if (!ikey || !req || !(ikey->get_key())) {
-    UPLL_LOG_INFO("ConfigKeyVal / IpcReqRespHeader is Null");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  if (ikey->get_key_type() == UNC_KT_VTNSTATION_CONTROLLER)
-    return (ValidateMessageForVtnStnCtrlr(req, ikey));
-
-  if (ikey->get_key_type() == UNC_KT_VTN_MAPPING_CONTROLLER)
-    return (ValidateMessageForVtnMapCtrlr(req, ikey));
-
-  if (ikey->get_st_num() != IpctSt::kIpcStKeyVtn) {
-    UPLL_LOG_INFO("Invalid Key structure received. received struct - %d",
-                  (ikey->get_st_num()));
-    return UPLL_RC_ERR_BAD_REQUEST;
-  }
-  key_vtn *vtn_key = reinterpret_cast<key_vtn *>(ikey->get_key());
-
-  unc_key_type_t ktype = ikey->get_key_type();
-  if (UNC_KT_VTN != ktype) {
-    UPLL_LOG_INFO("Invalid keytype received. received keytype - %d", ktype);
-    return UPLL_RC_ERR_BAD_REQUEST;
-  }
-  upll_keytype_datatype_t dt_type = req->datatype;
-  unc_keytype_operation_t operation = req->operation;
-  unc_keytype_option1_t option1 = req->option1;
-  unc_keytype_option2_t option2 = req->option2;
-  if ((operation != UNC_OP_READ_SIBLING_COUNT) &&
-      (operation != UNC_OP_READ_SIBLING_BEGIN)) {
-    ret_val = ValidateVtnKey(vtn_key);
-    if (ret_val != UPLL_RC_SUCCESS) {
-      UPLL_LOG_INFO("syntax check failed for key_vtn struct");
-      return UPLL_RC_ERR_CFG_SYNTAX;
-    }
-  } else {
-    UPLL_LOG_TRACE("Operation is %d", operation);
-    StringReset(vtn_key->vtn_name);
-  }
-  if ((operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) &&
-     (dt_type == UPLL_DT_CANDIDATE|| UPLL_DT_IMPORT == dt_type)) {
-      ConfigVal *cfg_val = ikey->get_cfg_val();
-      switch (operation) {
-      case UNC_OP_CREATE:
-        if (cfg_val == NULL)
-          return UPLL_RC_SUCCESS;
-        /* fall through intended */
-      case UNC_OP_UPDATE:
-      {
-        if (!cfg_val)
-          return UPLL_RC_ERR_CFG_SYNTAX;
-        if (cfg_val->get_st_num() != IpctSt::kIpcStValVtn) {
-          UPLL_LOG_INFO(
-            "Invalid Value structure received. received struct - %d",
-            (ikey->get_st_num()));
-          return UPLL_RC_ERR_BAD_REQUEST;
-        }
-        val_vtn *vtn_val = reinterpret_cast<val_vtn *>(GetVal(ikey));
-        if (vtn_val == NULL) {
-          UPLL_LOG_INFO("syntax check for vtn_val struct is an optional");
-          return UPLL_RC_SUCCESS;
-        }
-        ret_val = ValidateVtnValue(vtn_val, operation);
-        if (ret_val != UPLL_RC_SUCCESS) {
-          UPLL_LOG_INFO("syntax check failure for val_vtn structure");
-          return UPLL_RC_ERR_CFG_SYNTAX;
-        }
-        return UPLL_RC_SUCCESS;
-      }
-      default:
-          UPLL_LOG_INFO("Invalid operation ");
-          return UPLL_RC_ERR_CFG_SYNTAX;
-      }
-  } else if ((operation == UNC_OP_RENAME || operation == UNC_OP_READ ||
-       operation == UNC_OP_READ_SIBLING ||
-       operation == UNC_OP_READ_SIBLING_BEGIN) &&
-       (dt_type == UPLL_DT_IMPORT)) {
-      if (option1 != UNC_OPT1_NORMAL) {
-        UPLL_LOG_INFO("Error: option1 is not NORMAL");
-        return UPLL_RC_ERR_INVALID_OPTION1;
-      }
-      if (option2 != UNC_OPT2_NONE) {
-        UPLL_LOG_INFO("Error: option2 is not NONE");
-        return UPLL_RC_ERR_INVALID_OPTION2;
-      }
-      ConfigVal *cfg_val = ikey->get_cfg_val();
-      switch (operation) {
-      case UNC_OP_READ:
-      case UNC_OP_READ_SIBLING:
-      case UNC_OP_READ_SIBLING_BEGIN:
-        if (cfg_val == NULL)
-          return UPLL_RC_SUCCESS;
-      case UNC_OP_RENAME:
-      {
-        if (!cfg_val)
-          return UPLL_RC_ERR_CFG_SYNTAX;
-        if (cfg_val->get_st_num() != IpctSt::kIpcStValRenameVtn) {
-          UPLL_LOG_INFO(
-            "Invalid val_rename structure received. received struct - %d",
-            (ikey->get_cfg_val())->get_st_num());
-          return UPLL_RC_ERR_BAD_REQUEST;
-        }
-        val_rename_vtn *vtn_rename =
-           reinterpret_cast<val_rename_vtn *>(ikey->get_cfg_val()->get_val());
-
-        if (vtn_rename == NULL && operation == UNC_OP_RENAME) {
-          UPLL_LOG_INFO(
-            "val_rename_vtn struct is Mandatory for Rename operation");
-          return UPLL_RC_ERR_BAD_REQUEST;
-        } else if (vtn_rename == NULL) {
-          UPLL_LOG_DEBUG(
-            "syntax check for val_rename_vtn struct is optional");
-          return UPLL_RC_SUCCESS;
-        }
-        ret_val = ValidateVtnRenameValue(vtn_rename);
-        if (ret_val != UPLL_RC_SUCCESS) {
-          UPLL_LOG_INFO("syntax check failure for val_rename_vtn structure");
-          return UPLL_RC_ERR_CFG_SYNTAX;
-        }
-        return UPLL_RC_SUCCESS;
-      }
-      default:
-          UPLL_LOG_INFO("Invalid operation ");
-          return UPLL_RC_ERR_CFG_SYNTAX;
-      }
-  } else if ((operation == UNC_OP_READ || operation == UNC_OP_READ_SIBLING ||
-         operation == UNC_OP_READ_SIBLING_BEGIN ||
-         operation == UNC_OP_READ_SIBLING_COUNT) &&
-         (dt_type == UPLL_DT_CANDIDATE || dt_type == UPLL_DT_RUNNING ||
-          dt_type == UPLL_DT_STARTUP || dt_type == UPLL_DT_STATE)) {
-      if (option1 != UNC_OPT1_NORMAL) {
-        UPLL_LOG_INFO("Error: option1 is not NORMAL");
-        return UPLL_RC_ERR_INVALID_OPTION1;
-      }
-      if (option2 != UNC_OPT2_NONE) {
-        UPLL_LOG_INFO("Error: option2 is not NONE");
-        return UPLL_RC_ERR_INVALID_OPTION2;
-      }
-      ConfigVal *cfg_val = ikey->get_cfg_val();
-      if (cfg_val == NULL)
-        return UPLL_RC_SUCCESS;
-      if (cfg_val->get_st_num() != IpctSt::kIpcStValVtn) {
-        UPLL_LOG_INFO(
-            "Invalid Value structure received. received struct - %d",
-            (cfg_val->get_st_num()));
-        return UPLL_RC_ERR_BAD_REQUEST;
-      }
-      val_vtn *vtn_val = reinterpret_cast<val_vtn *>
-                                 (ikey->get_cfg_val()->get_val());
-      if (vtn_val == NULL) {
-        UPLL_LOG_DEBUG("syntax check for vtn struct is an optional");
-        return UPLL_RC_SUCCESS;
-      }
-      ret_val = ValidateVtnValue(vtn_val, operation);
-      if (ret_val != UPLL_RC_SUCCESS) {
-        UPLL_LOG_INFO("Base Validation failure for val_vtn  structure");
-        return UPLL_RC_ERR_CFG_SYNTAX;
-      }
-      return UPLL_RC_SUCCESS;
-  } else if ((operation == UNC_OP_READ_NEXT ||
-             operation == UNC_OP_READ_BULK) && (dt_type == UPLL_DT_CANDIDATE
-             || dt_type == UPLL_DT_STARTUP || dt_type == UPLL_DT_RUNNING ||
-             dt_type == UPLL_DT_IMPORT)) {
-      UPLL_LOG_TRACE("Value structure is none for operation type:%d",
-                    operation);
-      return UPLL_RC_SUCCESS;
-  } else if ((operation == UNC_OP_DELETE) &&
-             (dt_type == UPLL_DT_CANDIDATE || UPLL_DT_IMPORT == dt_type)) {
-      UPLL_LOG_TRACE("Value structure is none for operation type:%d",
-                    operation);
-      return UPLL_RC_SUCCESS;
-  }
-  UPLL_LOG_INFO("Error Unsupported datatype(%d) or operation(%d)",
-                dt_type, operation);
-  return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
-}
-
-upll_rc_t 
-VtnMoMgr::ValVtnAttributeSupportCheck(val_vtn_t *vtn_val,
-                                      const uint8_t *attrs,
-                                      uint32_t operation) {
-  UPLL_FUNC_TRACE;
-
-  if (NULL != vtn_val) {
-    if ((vtn_val->valid[UPLL_IDX_DESC_VTN] == UNC_VF_VALID) ||
-       (vtn_val->valid[UPLL_IDX_DESC_VTN] == UNC_VF_VALID_NO_VALUE)) {
-      if (attrs[unc::capa::vtn::kCapDesc] == 0) {
-         vtn_val->valid[UPLL_IDX_DESC_VTN] = UNC_VF_INVALID;
-        if (operation == UNC_OP_CREATE ||
-            operation == UNC_OP_UPDATE) {
-          UPLL_LOG_INFO("Description attr is not supported by ctrlr");
-          return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
-        }
-      }
-    }
-  }
-  return UPLL_RC_SUCCESS;
-}
-
-
-upll_rc_t
-VtnMoMgr::ValidateCapability(IpcReqRespHeader * req,
-                             ConfigKeyVal * ikey,
-                             const char *ctrlr_name)  {
-  UPLL_FUNC_TRACE;
-  upll_rc_t ret_val = UPLL_RC_ERR_GENERIC;
-  if (!ikey || !req ) {
-      UPLL_LOG_DEBUG("ConfigKeyVal / IpcReqRespHeader is Null");
-      return ret_val;
-  }
-
-  if (!ctrlr_name) {
-    ctrlr_name = reinterpret_cast<char*>((reinterpret_cast<key_user_data_t *>
-                 (ikey->get_user_data()))->ctrlr_id);
-    if (!ctrlr_name || !strlen(ctrlr_name)) {
-      UPLL_LOG_DEBUG("Controller Name is NULL");
-      return UPLL_RC_ERR_GENERIC;
-    }
-  }
-
-  bool result_code = false;
-  uint32_t max_attrs = 0;
-  uint32_t max_instance_count = 0;
-  const uint8_t *attrs = NULL;
-  switch (req->operation) {
-    case UNC_OP_CREATE:
-      result_code = GetCreateCapability(ctrlr_name, ikey->get_key_type(),
-                                        &max_instance_count, &max_attrs,
-                                        &attrs);
-      if (result_code && (max_instance_count != 0) &&
-          (cur_instance_count > max_instance_count)) {
-        UPLL_LOG_DEBUG("[%s:%d:%s Instance count %d exceeds %d", __FILE__,
-                      __LINE__, __FUNCTION__, cur_instance_count,
-                      max_instance_count);
-        return UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
-      }
-    break;
-
-    case UNC_OP_UPDATE:
-      result_code = GetUpdateCapability(ctrlr_name, ikey->get_key_type(),
-                                        &max_attrs, &attrs);
-    break;
-    case UNC_OP_READ:
-    case UNC_OP_READ_SIBLING:
-    case UNC_OP_READ_SIBLING_BEGIN:
-    case UNC_OP_READ_SIBLING_COUNT:
-      result_code = GetReadCapability(ctrlr_name, ikey->get_key_type(),
-                                      &max_attrs, &attrs);
-    break;
-    default:
-      UPLL_LOG_INFO("Invalid operation code(%d)", req->operation);
-      return UPLL_RC_ERR_GENERIC;
-  }
-  if (!result_code) {
-    UPLL_LOG_INFO("key_type - %d is not supported by controller - %s",
-        ikey->get_key_type(), ctrlr_name);
-    return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
-  }
-  val_vtn *vtn_val = NULL;
-  if (ikey->get_cfg_val() && (ikey->get_cfg_val()->get_st_num() ==
-       IpctSt::kIpcStValVtn)) {
-    vtn_val =
-          reinterpret_cast<val_vtn *>(ikey->get_cfg_val()->get_val());
-  }
-  if (vtn_val) {
-    if (max_attrs > 0) {
-      ret_val = ValVtnAttributeSupportCheck(vtn_val, attrs, req->operation);
-      return ret_val;
-    } else {
-      UPLL_LOG_DEBUG("Attribute list is empty for operation %d", req->operation);
-      return UPLL_RC_ERR_GENERIC;
-    }
-  } 
-  return UPLL_RC_SUCCESS;
-}
-
-upll_rc_t VtnMoMgr::IsKeyInUse(upll_keytype_datatype_t dt_type,
-                       const ConfigKeyVal *ckv,
-                       bool *in_use,
-                       DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-  ConfigKeyVal *ck_ctrlr = NULL;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  DbSubOp dbop = {kOpReadExist, kOpMatchCtrlr, kOpInOutNone};
-  key_ctr *ctr = reinterpret_cast<key_ctr *>(ckv->get_key());
-
-  if (!ctr || !strlen(reinterpret_cast<char *>(ctr->controller_name))) {
-    UPLL_LOG_DEBUG("Controller Name invalid");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  uint8_t *controllerName = reinterpret_cast<uint8_t *>(
-                              new char[kMaxLenCtrlrId+1]);
-  uuu::upll_strncpy(controllerName, ctr->controller_name,
-                    (kMaxLenCtrlrId + 1));
-  result_code = GetChildConfigKey(ck_ctrlr, NULL);
-  if (!ck_ctrlr || result_code != UPLL_RC_SUCCESS) {
-    delete[] controllerName;
-    UPLL_LOG_DEBUG("Controller key allocation failed");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  SET_USER_DATA_CTRLR(ck_ctrlr, controllerName);
-
-  // result_code = ReadConfigDB(ck_ctrlr, UPLL_DT_RUNNING,
-    //   UNC_OP_READ, dbop, dmi, CTRLRTBL);
-  result_code = UpdateConfigDB(ck_ctrlr, dt_type, UNC_OP_READ,
-                                dmi, &dbop, CTRLRTBL);
-  *in_use = (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) ? true : false;
-  delete ck_ctrlr;
-  delete []controllerName;
-  UPLL_LOG_DEBUG("Returning %d", result_code);
-  return ((result_code == UPLL_RC_ERR_INSTANCE_EXISTS ||
-           result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)
-           ? UPLL_RC_SUCCESS : result_code);
-}
-
-upll_rc_t
-VtnMoMgr::ValidateMessageForVtnStnCtrlr(IpcReqRespHeader * req,
-                                        ConfigKeyVal * ikey)  {
-  UPLL_FUNC_TRACE;
-  upll_rc_t ret_val = UPLL_RC_SUCCESS;
-  if (!req || !ikey || !(ikey->get_key())) {
-    UPLL_LOG_INFO("ConfigKeyVal / IpcReqRespHeader is Null");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  if (ikey->get_st_num() != IpctSt::kIpcStKeyVtnstationController) {
-    UPLL_LOG_INFO("Invalid Key structure received. received struct - %d",
-                  (ikey->get_st_num()));
-    return UPLL_RC_ERR_CFG_SYNTAX;
-  }
-  key_vtnstation_controller *vtn_ctrlr_key =
-      reinterpret_cast<key_vtnstation_controller *> (ikey->get_key());
-
-  if ((req->operation == UNC_OP_READ) ||
-      (req->operation == UNC_OP_READ_SIBLING) ||
-      (req->operation == UNC_OP_READ_SIBLING_BEGIN) ||
-      (req->operation == UNC_OP_READ_SIBLING_COUNT)) {
-    if (req->datatype == UPLL_DT_STATE) {
-      if ((req->option1 != UNC_OPT1_NORMAL) &&
-          (req->option1 != UNC_OPT1_DETAIL) &&
-          (req->option1 != UNC_OPT1_COUNT)) {
-        UPLL_LOG_INFO(" Error: option1 is invalid");
-        return UPLL_RC_ERR_INVALID_OPTION1;
-      }
-      if (req->option2 != UNC_OPT2_NONE) {
-        UPLL_LOG_INFO(" Error: option2 is not NONE");
-        return UPLL_RC_ERR_INVALID_OPTION2;
-      }
-      ret_val = ValidateVtnStnCtrlrKey(vtn_ctrlr_key, req->operation);
-      if (ret_val != UPLL_RC_SUCCESS) {
-        UPLL_LOG_INFO("vtn_stn_ctrlr_key syntax check failed.");
-        return UPLL_RC_ERR_CFG_SYNTAX;
-      }
-      return UPLL_RC_SUCCESS;
-    } else {
-      UPLL_LOG_INFO("Error Unsupported datatype (%d)", req->datatype);
-      return UPLL_RC_ERR_NO_SUCH_INSTANCE;
-    }
-  }
-  UPLL_LOG_INFO("Error Unsupported Operation (%d)", req->operation);
-  return UPLL_RC_ERR_NO_SUCH_INSTANCE;
-}
-
-upll_rc_t
-VtnMoMgr::ValidateMessageForVtnMapCtrlr(IpcReqRespHeader * req,
-                                        ConfigKeyVal * ikey) {
-  UPLL_FUNC_TRACE;
-  if (!req || !ikey || !(ikey->get_key())) {
-    UPLL_LOG_INFO("ConfigKeyVal / IpcReqRespHeader is Null");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  upll_keytype_datatype_t dt_type = req->datatype;
-  unc_keytype_operation_t operation = req->operation;
-  unc_keytype_option1_t option1 = req->option1;
-  unc_keytype_option2_t option2 = req->option2;
-
-  upll_rc_t ret_val = UPLL_RC_SUCCESS;
-  if (ikey->get_st_num() != IpctSt::kIpcStKeyVtnController) {
-    UPLL_LOG_INFO("Invalid key structure received. received struct - %d",
-                  (ikey->get_st_num()));
-    return UPLL_RC_ERR_CFG_SYNTAX;
-  }
-  key_vtn_controller *vtn_ctrlr_key =
-                  reinterpret_cast<key_vtn_controller *> (ikey->get_key());
-
-  if (operation == UNC_OP_READ || operation == UNC_OP_READ_SIBLING
-      || operation == UNC_OP_READ_SIBLING_BEGIN) {
-    if (dt_type == UPLL_DT_STATE) {
-      if (option1 != UNC_OPT1_NORMAL) {
-        UPLL_LOG_INFO(" Error: option1 is not NORMAL");
-        return UPLL_RC_ERR_INVALID_OPTION1;
-      }
-      if (option2 != UNC_OPT2_NONE) {
-        UPLL_LOG_INFO(" Error: option2 is not NONE");
-        return UPLL_RC_ERR_INVALID_OPTION2;
-      }
-      ret_val = ValidateVtnMapCtrlrKey(vtn_ctrlr_key, operation);
-      if (ret_val != UPLL_RC_SUCCESS) {
-        UPLL_LOG_INFO("syntax check for key_vtn_ctrlr struct is failed");
-        return UPLL_RC_ERR_CFG_SYNTAX;
-      }
-      UPLL_LOG_TRACE("value struct validation is none for this keytype");
-      return UPLL_RC_SUCCESS;
-    } else {
-      UPLL_LOG_INFO("Error Unsupported datatype (%d)", dt_type);
-      return UPLL_RC_ERR_NO_SUCH_INSTANCE;
-    }
-  }
-  UPLL_LOG_INFO("Error Unsupported operation(%d)", operation);
-  return UPLL_RC_ERR_NO_SUCH_INSTANCE;
-}
-
-upll_rc_t
-VtnMoMgr::ValidateVtnMapCtrlrKey(key_vtn_controller * vtn_ctrlr_key,
-                                 unc_keytype_operation_t operation) {
-  UPLL_FUNC_TRACE;
-
-  if (!ValidateString(
-      vtn_ctrlr_key->vtn_key.vtn_name,
-      kMinLenVtnName, kMaxLenVtnName)) {
-    UPLL_LOG_INFO("vtn name syntax check failed."
-                  "Received vtn_Name - %s",
-                  vtn_ctrlr_key->vtn_key.vtn_name);
-    return UPLL_RC_ERR_CFG_SYNTAX;
-  }
-  if ((operation != UNC_OP_READ_SIBLING_COUNT) &&
-     (operation != UNC_OP_READ_SIBLING_BEGIN)) {
-    if (!ValidateString(
-        vtn_ctrlr_key->controller_name,
-        kMinLenCtrlrId, kMaxLenCtrlrId)) {
-      UPLL_LOG_INFO("controller_name syntax check failed."
-                    "Received controller_name - %s",
-                    vtn_ctrlr_key->controller_name);
-      return UPLL_RC_ERR_CFG_SYNTAX;
-    }
-    if (!ValidateDefaultStr(vtn_ctrlr_key->domain_id,
-        kMinLenDomainId, kMaxLenDomainId)) {
-      UPLL_LOG_INFO("Domain_id syntax check failed."
-                    "Received Domain_id - %s",
-                    vtn_ctrlr_key->domain_id);
-      return UPLL_RC_ERR_CFG_SYNTAX;
-    }
-  } else {
-    UPLL_LOG_TRACE("Operation is %d", operation);
-    StringReset(vtn_ctrlr_key->controller_name);
-    StringReset(vtn_ctrlr_key->domain_id);
-  }
-  return UPLL_RC_SUCCESS;
-}
-upll_rc_t
-VtnMoMgr::ValidateVtnStnCtrlrKey(key_vtnstation_controller * vtn_ctrlr_key,
-                                 unc_keytype_operation_t operation)  {
-  UPLL_FUNC_TRACE;
-  if ((operation != UNC_OP_READ_SIBLING_COUNT) &&
-     (operation != UNC_OP_READ_SIBLING_BEGIN)) {
-    if (!ValidateString(vtn_ctrlr_key->controller_name,
-        kMinLenCtrlrId, kMaxLenCtrlrId)) {
-      UPLL_LOG_INFO("controller_name syntax check failed."
-                  "Received controller_name - %s",
-                  vtn_ctrlr_key->controller_name);
-      return UPLL_RC_ERR_CFG_SYNTAX;
-    }
-  } else {
-    UPLL_LOG_TRACE("Operation is %d", operation);
-    StringReset(vtn_ctrlr_key->controller_name);
-  }
-  return UPLL_RC_SUCCESS;
-}
-
-upll_rc_t VtnMoMgr::SetOperStatus(ConfigKeyVal *ikey,
-                             state_notification notification,
-                             DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  if (!ikey) {
-    UPLL_LOG_DEBUG("Invalid param");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  ConfigVal *tmp = (ikey->get_cfg_val()) ?
-                    ikey->get_cfg_val()->get_next_cfg_val() : NULL;
-  val_db_vtn_st_t *vtn_valst = reinterpret_cast<val_db_vtn_st_t *>
-                               ((tmp != NULL) ? tmp->get_val() : NULL);
-  if (vtn_valst == NULL) {
-    UPLL_LOG_DEBUG("Invalid param");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  val_vtn_st_t *vtn_val = reinterpret_cast<val_vtn_st_t *>(vtn_valst);
-
-    /* Update oper status based on notification */
-  if (((notification != kCtrlrReconnectIfUp) &&
-       (notification != kCtrlrReconnectIfDown) &&
-       (notification != kCtrlrReconnect)) &&
-      (vtn_val->oper_status == UPLL_OPER_STATUS_UNKNOWN)) {
-    return result_code;
-  }
-  vtn_val->valid[0] = UNC_VF_VALID;
-  switch (notification) {
-  case kCtrlrReconnectIfUp:
-    if (vtn_val->oper_status == UPLL_OPER_STATUS_DOWN) {
-      return UPLL_RC_SUCCESS;
-    }
-    vtn_val->oper_status = UPLL_OPER_STATUS_UP;
-    break;
-  case kCtrlrReconnectIfDown:
-    vtn_val->oper_status = UPLL_OPER_STATUS_DOWN;
-    break;
-  case kCtrlrReconnect:
-    vtn_val->oper_status = UPLL_OPER_STATUS_DOWN;
-    break;
-  case kAdminStatusEnabled:
-    if (vtn_valst->down_count == 0) {
-      vtn_val->oper_status = UPLL_OPER_STATUS_UNINIT;
-      // reset alarm
-    } else
-      vtn_val->oper_status = UPLL_OPER_STATUS_DOWN;
-    break;
-  case kAdminStatusDisabled:
-    vtn_val->oper_status = UPLL_OPER_STATUS_DOWN;
-    break;
-  case kCtrlrDisconnect:
-    vtn_val->oper_status = UPLL_OPER_STATUS_UNKNOWN;
-    break;
-  case kPortFault:
-  case kPathFault:
-  case kBoundaryFault:
-    vtn_valst->down_count = (vtn_valst->down_count + 1);
-    if (vtn_valst->down_count == 1) {
-      vtn_val->oper_status = UPLL_OPER_STATUS_DOWN;
-      // generate alarm
-    }
-    break;
-  case kPortFaultReset:
-  case kPathFaultReset:
-  case kBoundaryFaultReset:
-    vtn_valst->down_count = (vtn_valst->down_count > 0) ?
-                            (vtn_valst->down_count - 1) : 0;
-    if (vtn_valst->down_count == 0) {
-      vtn_val->oper_status = UPLL_OPER_STATUS_UNINIT;
-      // reset alarm
-    }
-    break;
-  }
-
-  DbSubOp dbop = { kOpNotRead, kOpMatchNone, kOpInOutNone };
-  result_code = UpdateConfigDB(ikey, UPLL_DT_STATE, UNC_OP_UPDATE,
-                           dmi, &dbop, MAINTBL);
-  UPLL_LOG_DEBUG("SetOperstatus for VTN after Update is \n %s",
-                    ikey->ToStrAll().c_str());
-  return result_code;
-}
-
-upll_rc_t VtnMoMgr::SetCtrlrOperStatus(ConfigKeyVal *ikey,
-                             state_notification notification,
-                             DalDmlIntf *dmi, bool &oper_change) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  if (!ikey) {
-    UPLL_LOG_DEBUG("ikey is NULL");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  val_vtn_ctrlr *ctrlr_val = reinterpret_cast<val_vtn_ctrlr *>(GetVal(ikey));
-  if (!ctrlr_val) {
-    UPLL_LOG_DEBUG("val_vtn_ctrlr struct is NULL");
-    return UPLL_RC_ERR_GENERIC;
-  }
-
-  /* Update oper status based on notification */
-  switch (notification) {
-  case kCtrlrReconnectIfUp:
-    if (ctrlr_val->oper_status == UPLL_OPER_STATUS_DOWN) {
-      return UPLL_RC_SUCCESS;
-    }
-    oper_change = (ctrlr_val->oper_status != UPLL_OPER_STATUS_UP)?
-                   true:false;
-    ctrlr_val->oper_status = UPLL_OPER_STATUS_UP;
-    break;
-  case kCtrlrReconnectIfDown:
-    oper_change = (ctrlr_val->oper_status != UPLL_OPER_STATUS_DOWN)?
-                   true:false;
-    ctrlr_val->oper_status = UPLL_OPER_STATUS_DOWN;
-    break;
-  case kCtrlrReconnect:
-    oper_change = (ctrlr_val->oper_status != UPLL_OPER_STATUS_DOWN)?
-                   true:false;
-    ctrlr_val->oper_status = UPLL_OPER_STATUS_DOWN;
-    break;
-  case kCtrlrDisconnect:
-    oper_change = (ctrlr_val->oper_status != UPLL_OPER_STATUS_UNKNOWN)?
-                   true:false;
-    ctrlr_val->oper_status = UPLL_OPER_STATUS_UNKNOWN;
-    ctrlr_val->down_count = 0;
-    break;
-  case kAdminStatusDisabled:
-  case kPortFault:
-  case kPathFault:
-  case kBoundaryFault:
-    ctrlr_val->down_count = (ctrlr_val->down_count + 1);
-    oper_change = (ctrlr_val->oper_status != UPLL_OPER_STATUS_DOWN)?
-                   true:false;
-    if (ctrlr_val->down_count == 1) {
-      ctrlr_val->oper_status = UPLL_OPER_STATUS_DOWN;
-      // generate alarm
-    }
-    break;
-  case kAdminStatusEnabled:
-  case kPortFaultReset:
-  case kPathFaultReset:
-  case kBoundaryFaultReset:
-    if (ctrlr_val->oper_status == UPLL_OPER_STATUS_UP) {
-      oper_change = false;
-      UPLL_LOG_DEBUG("SetCtrlrOperstatus status already up\n %s",
-                    ikey->ToStrAll().c_str());
-      return UPLL_RC_SUCCESS;
-    }
-    ctrlr_val->down_count = (ctrlr_val->down_count > 0) ?
-                            (ctrlr_val->down_count - 1) : 0;
-    if (ctrlr_val->down_count == 0) {
-      oper_change = (ctrlr_val->oper_status != UPLL_OPER_STATUS_UP)?
+             vtn_val->valid[0] = UNC_VF_VALID;
+             switch (notification) {
+               case kCtrlrReconnectIfUp:
+                 if (vtn_val->oper_status == UPLL_OPER_STATUS_DOWN) {
+                   return UPLL_RC_SUCCESS;
+                 }
+                 vtn_val->oper_status = UPLL_OPER_STATUS_UP;
+                 break;
+               case kCtrlrReconnectIfDown:
+                 if (vtn_val->oper_status == UPLL_OPER_STATUS_DOWN) {
+                   return UPLL_RC_SUCCESS;
+                 }
+                 vtn_val->oper_status = UPLL_OPER_STATUS_DOWN;
+                 break;
+               case kCtrlrReconnect:
+                 vtn_val->oper_status = UPLL_OPER_STATUS_DOWN;
+                 break;
+               case kCtrlrDisconnect:
+               case kPortUnknown:
+                 vtn_val->oper_status = UPLL_OPER_STATUS_UNKNOWN;
+                 vtn_valst->down_count = 0;
+                 break;
+               case kAdminStatusDisabled:
+               case kPortFault:
+               case kPathFault:
+               case kBoundaryFault:
+                 vtn_valst->down_count = (vtn_valst->down_count + 1);
+                 if (vtn_valst->down_count == 1) {
+                   vtn_val->oper_status = UPLL_OPER_STATUS_DOWN;
+                   //  generate alarm
+                 }
+                 break;
+               case kAdminStatusEnabled:
+               case kPortFaultReset:
+               case kPathFaultReset:
+               case kBoundaryFaultReset:
+               case kBoundaryFaultResetWithAdminDisabled:
+                 vtn_valst->down_count = (vtn_valst->down_count > 0) ?
+                     (vtn_valst->down_count - 1) : 0;
+                 if (notification != kBoundaryFaultResetWithAdminDisabled &&
+                     vtn_valst->down_count == 0) {
+                   vtn_val->oper_status = UPLL_OPER_STATUS_UNINIT;
+                   //  reset alarm
+                 }
+                 break;
+               default:
+                 UPLL_LOG_TRACE("Received unexpected notification %d\n",
+                                notification);
+                 break;
+             }
+
+             DbSubOp dbop = { kOpNotRead, kOpMatchNone, kOpInOutNone };
+             result_code = UpdateConfigDB(ikey, UPLL_DT_STATE, UNC_OP_UPDATE,
+                                          dmi, &dbop, MAINTBL);
+             UPLL_LOG_DEBUG("SetOperstatus for VTN after Update is \n %s",
+                            ikey->ToStrAll().c_str());
+             return result_code;
+           }
+
+           upll_rc_t VtnMoMgr::SetCtrlrOperStatus(
+               ConfigKeyVal *ikey,
+               state_notification notification,
+               DalDmlIntf *dmi,
+               bool &oper_change) {
+             UPLL_FUNC_TRACE;
+             upll_rc_t result_code = UPLL_RC_SUCCESS;
+             if (!ikey) {
+               UPLL_LOG_DEBUG("ikey is NULL");
+               return UPLL_RC_ERR_GENERIC;
+             }
+             val_vtn_ctrlr *ctrlr_val = reinterpret_cast<val_vtn_ctrlr *>
+                 (GetVal(ikey));
+             if (!ctrlr_val) {
+               UPLL_LOG_DEBUG("val_vtn_ctrlr struct is NULL");
+               return UPLL_RC_ERR_GENERIC;
+             }
+
+             /* Update oper status based on notification */
+             switch (notification) {
+               case kCtrlrReconnectIfUp:
+                 if (ctrlr_val->oper_status == UPLL_OPER_STATUS_DOWN) {
+                   return UPLL_RC_SUCCESS;
+                 }
+                 oper_change = (ctrlr_val->oper_status != UPLL_OPER_STATUS_UP)?
                      true:false;
-      ctrlr_val->oper_status = UPLL_OPER_STATUS_UP;
-      // reset alarm
-    } else 
-      ctrlr_val->oper_status = UPLL_OPER_STATUS_DOWN;
-    break;
-  }
-  DbSubOp dbop = { kOpNotRead, kOpMatchCtrlr | kOpMatchDomain, kOpInOutNone };
-  if (notification == kCtrlrDisconnect ||
-      notification == kCtrlrReconnectIfUp ||
-      notification == kCtrlrReconnectIfDown)
-    dbop.matchop = kOpMatchCtrlr;
-  result_code = UpdateConfigDB(ikey, UPLL_DT_STATE, UNC_OP_UPDATE,
-                                 dmi, &dbop, CTRLRTBL);
-  UPLL_LOG_DEBUG("SetCtrlrOperstatus for VTN after Update is \n %s",
-                    ikey->ToStrAll().c_str());
-  if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Error in update oper status %d", result_code);
-  }
-  return result_code;
-}
-
-upll_rc_t VtnMoMgr::UpdateOperStatus(ConfigKeyVal *ck_vtn,
-                                       DalDmlIntf *dmi,
-                                       state_notification notification,
-                                       bool skip) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  if (!skip) {
-      DbSubOp dbop = { kOpReadMultiple,
-                       kOpMatchCtrlr | kOpMatchDomain, kOpInOutNone };
-      if (notification == kCtrlrDisconnect ||
-          notification == kCtrlrReconnectIfUp ||
-          notification == kCtrlrReconnectIfDown )
-        dbop.matchop = kOpMatchCtrlr;
-
-      result_code = ReadConfigDB(ck_vtn, UPLL_DT_STATE, UNC_OP_READ, dbop,
-                                 dmi, CTRLRTBL);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("Error in reading: %d", result_code);
-        return result_code;
-      }
-  }
-  ConfigKeyVal *tkey = ck_vtn;
-  ConfigKeyVal *ck_vtn_main = NULL;
-  while (tkey != NULL) {
-    bool oper_change = false;
-    result_code = SetCtrlrOperStatus(tkey, notification, dmi, oper_change);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("SetCtrlrOperStatus failed.Result code : %d", result_code);
-      return result_code;
-    }
-    if (oper_change) {
-      result_code = GetChildConfigKey(ck_vtn_main, tkey);
-      if (!ck_vtn_main || result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("Invalid param");
-        DELETE_IF_NOT_NULL(ck_vtn_main);
-        return result_code;
-      }
-      DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutNone };
-      result_code = ReadConfigDB(ck_vtn_main, UPLL_DT_STATE, UNC_OP_READ,
-                         dbop, dmi, MAINTBL);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("Error in reading: %d", result_code);
-        DELETE_IF_NOT_NULL(ck_vtn_main);
-        return result_code;
-      }
-      SetOperStatus(ck_vtn_main, notification, dmi);
-      if (ck_vtn_main)
-        delete ck_vtn_main;
-      ck_vtn_main = NULL;
-    }
-    if ( skip ) break;
-    tkey = tkey->get_next_cfg_key_val();
-  }
-  return result_code;
-}
-
-
-/* SetOperStatus of VTN to unknown on a controller disconnect */
-bool VtnMoMgr::VtnSetOperStatus(uint8_t *vtn_name_o,
-                                DalDmlIntf *dmi,
-                                state_notification notification) {
-  UPLL_FUNC_TRACE;
-  bool res = false;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  key_vtn_t *vtn_key = reinterpret_cast<key_vtn_t *>(
-      ConfigKeyVal::Malloc(sizeof(key_vtn_t)));
-  ConfigKeyVal *ck_vtn = new ConfigKeyVal(UNC_KT_VTN,
-                          IpctSt::kIpcStKeyVtn, vtn_key, NULL);
-  result_code = UpdateOperStatus(ck_vtn, dmi, notification, false);
-
-  if (result_code != UPLL_RC_SUCCESS) {
-    delete ck_vtn;
-    UPLL_LOG_DEBUG("Returning error : %d", result_code);
-    return false;
-  }
-  delete ck_vtn;
-  return res;
-}
-
-upll_rc_t VtnMoMgr::TxUpdateDtState(unc_key_type_t ktype,
-                                      uint32_t session_id,
-                                      uint32_t config_id,
-                                      DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  ConfigKeyVal *ck_vtn = NULL;
-
-  /* Create Vnode If key */
-  switch (ktype) {
-  case UNC_KT_VTN:
-    result_code = GetUninitOperState(ck_vtn, dmi);
-    break;
-  default:
-    UPLL_LOG_DEBUG("Unsupported operation on keytype %d", ktype);
-    return UPLL_RC_ERR_GENERIC;
-  }
-  if (UPLL_RC_SUCCESS != result_code)  {
-    return result_code;
-  }
-  ConfigKeyVal *tkey = ck_vtn, *ck_ctrlr;
-  DbSubOp dbop1 = { kOpNotRead, kOpMatchNone, kOpInOutNone };
-  while (ck_vtn) {
-    ck_ctrlr = NULL;
-    tkey = ck_vtn;
-    ck_vtn = tkey->get_next_cfg_key_val();
-    tkey->set_next_cfg_key_val(NULL);
-   
-    val_db_vtn_st *vtn_st = reinterpret_cast<val_db_vtn_st *>
-                                                (GetStateVal(tkey));
-    // get count of vnodes down
-    uint32_t cur_instance_count = 0;
-    result_code = GetChildConfigKey(ck_ctrlr, tkey);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Returning error %d\n",result_code);
-      return result_code;
-    }
-    val_vtn_ctrlr *ctrlr_val = reinterpret_cast<val_vtn_ctrlr *>
-                               (ConfigKeyVal::Malloc(sizeof(val_vtn_ctrlr)));
-    ctrlr_val->valid[UPLL_IDX_OPER_STATUS_VS] = UNC_VF_VALID;
-    ctrlr_val->oper_status = UPLL_OPER_STATUS_DOWN;
-    ck_ctrlr->AppendCfgVal(IpctSt::kIpcInvalidStNum, ctrlr_val);
-    result_code = GetInstanceCount(ck_ctrlr, NULL, UPLL_DT_STATE, 
-                    &cur_instance_count, dmi, CTRLRTBL);
-    if (result_code == UPLL_RC_SUCCESS) {
-      if (cur_instance_count == 0) {
-        vtn_st->vtn_val_st.oper_status = UPLL_OPER_STATUS_UP;
-      } else 
-        vtn_st->vtn_val_st.oper_status = UPLL_OPER_STATUS_DOWN;
-    } else if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-      vtn_st->vtn_val_st.oper_status = UPLL_OPER_STATUS_DOWN;
-    } else {
-      UPLL_LOG_DEBUG("Returning error %d\n",result_code);
-      delete tkey;
-      delete ck_vtn;
-      delete ck_ctrlr;
-      return result_code;
-    }
-    vtn_st->vtn_val_st.valid[UPLL_IDX_OPER_STATUS_VS] = UNC_VF_VALID;
-    result_code = UpdateConfigDB(tkey, UPLL_DT_STATE,
-                     UNC_OP_UPDATE, dmi, &dbop1, MAINTBL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("UpdateConfigDB Executed %d", result_code);
-      delete tkey;
-      delete ck_vtn;
-      delete ck_ctrlr;
-      break;
-    }
-    delete tkey;
-    delete ck_ctrlr;
-  }
-  return result_code;
-}
-
-upll_rc_t VtnMoMgr::ControllerStatusHandler(uint8_t *ctrlr_id,
+                 ctrlr_val->oper_status = UPLL_OPER_STATUS_UP;
+                 break;
+               case kCtrlrReconnectIfDown:
+                 oper_change = (ctrlr_val->oper_status !=
+                                UPLL_OPER_STATUS_DOWN)?
+                     true:false;
+                 ctrlr_val->oper_status = UPLL_OPER_STATUS_DOWN;
+                 break;
+               case kCtrlrReconnect:
+                 oper_change = (ctrlr_val->oper_status !=
+                                UPLL_OPER_STATUS_DOWN)?
+                     true:false;
+                 ctrlr_val->oper_status = UPLL_OPER_STATUS_DOWN;
+                 break;
+               case kCtrlrDisconnect:
+               case kPortUnknown:
+                 oper_change = (ctrlr_val->oper_status !=
+                                UPLL_OPER_STATUS_UNKNOWN)?
+                     true:false;
+                 ctrlr_val->oper_status = UPLL_OPER_STATUS_UNKNOWN;
+                 ctrlr_val->down_count = 0;
+                 break;
+               case kAdminStatusDisabled:
+               case kPortFault:
+               case kPathFault:
+               case kBoundaryFault:
+                 ctrlr_val->down_count = (ctrlr_val->down_count + 1);
+                 oper_change = (ctrlr_val->oper_status !=
+                                UPLL_OPER_STATUS_DOWN)?
+                     true:false;
+                 if (ctrlr_val->down_count == 1) {
+                   ctrlr_val->oper_status = UPLL_OPER_STATUS_DOWN;
+                   //  generate alarm
+                 }
+                 break;
+               case kAdminStatusEnabled:
+               case kPortFaultReset:
+               case kPathFaultReset:
+               case kBoundaryFaultReset:
+                 if (ctrlr_val->oper_status == UPLL_OPER_STATUS_UP) {
+                   oper_change = false;
+                   UPLL_LOG_DEBUG("SetCtrlrOperstatus status already up\n %s",
+                                  ikey->ToStrAll().c_str());
+                   return UPLL_RC_SUCCESS;
+                 }
+                 ctrlr_val->down_count = (ctrlr_val->down_count > 0) ?
+                     (ctrlr_val->down_count - 1) : 0;
+                 if (ctrlr_val->down_count == 0) {
+                   oper_change = (ctrlr_val->oper_status !=
+                                  UPLL_OPER_STATUS_UP)?
+                       true:false;
+                   ctrlr_val->oper_status = UPLL_OPER_STATUS_UP;
+                   //  reset alarm
+                 } else {
+                   ctrlr_val->oper_status = UPLL_OPER_STATUS_DOWN;
+                 }
+                 break;
+               default:
+                 UPLL_LOG_TRACE("Received unexpected notification %d\n",
+                                notification);
+                 break;
+             }
+             DbSubOp dbop = { kOpNotRead,
+               kOpMatchCtrlr | kOpMatchDomain,
+               kOpInOutNone };
+             if (notification == kCtrlrDisconnect ||
+                 notification == kCtrlrReconnectIfUp ||
+                 notification == kCtrlrReconnectIfDown)
+               dbop.matchop = kOpMatchCtrlr;
+             result_code = UpdateConfigDB(ikey, UPLL_DT_STATE, UNC_OP_UPDATE,
+                                          dmi, &dbop, CTRLRTBL);
+             UPLL_LOG_DEBUG("SetCtrlrOperstatus for VTN after Update is \n %s",
+                            ikey->ToStrAll().c_str());
+             if (result_code != UPLL_RC_SUCCESS) {
+               UPLL_LOG_DEBUG("Error in update oper status %d", result_code);
+             }
+             return result_code;
+           }
+
+           upll_rc_t VtnMoMgr::UpdateOperStatus(ConfigKeyVal *ck_vtn,
                                                 DalDmlIntf *dmi,
-                                                bool operstatus) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  state_notification notification = kCtrlrDisconnect;
-  if (operstatus) {
-    notification = kCtrlrReconnect;
-  }
-  if (notification == kCtrlrDisconnect) {
-    result_code = RestoreVtnCtrlrOperStatus(ctrlr_id, dmi, notification);
-    if (result_code != UPLL_RC_SUCCESS &&
-        result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-      UPLL_LOG_DEBUG("vtn controller operstatus disconnect update failed");
-      return result_code;
-    }
-    result_code = UpdateVnodeOperStatus(ctrlr_id, dmi, notification, false);
-    if (result_code != UPLL_RC_SUCCESS &&
-        result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-      UPLL_LOG_DEBUG("Error in updating node operstatus");
-      return result_code;
-    }
-    VlinkMoMgr *vlink_mgr =
-       reinterpret_cast<VlinkMoMgr *>(const_cast<MoManager *>
-                 (const_cast<MoManager*>(GetMoManager(UNC_KT_VLINK))));
-    vlink_mgr->UpdateVlinkOperStatus(ctrlr_id, dmi, notification, false);
-    if (result_code != UPLL_RC_SUCCESS &&
-        result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-      UPLL_LOG_DEBUG("vlink operstatus update failed");
-      return result_code;
-    }
-  } else {
-    result_code = RestoreVnodeOperStatus(ctrlr_id, dmi, notification, false);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Error in Updating Operstatus on Controller ReConnect");
-      return result_code;
-    }
-  }
-  return result_code;
-}
-
-upll_rc_t VtnMoMgr::UpdateVnodeOperStatus(uint8_t *ctrlr_id,
-                                       DalDmlIntf *dmi,
-                                       state_notification notification,
-                                       bool skip) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  unc_key_type_t node_key_type[]= {UNC_KT_VBRIDGE, UNC_KT_VROUTER,
-                                   UNC_KT_VTEP, UNC_KT_VTUNNEL};
-  ConfigKeyVal *ck_val = NULL;
-  for (int vnode_count = 0;
-       vnode_count < static_cast<int>
-         (sizeof(node_key_type)/sizeof(unc_key_type_t));
-       vnode_count++) {
-    const unc_key_type_t ktype = node_key_type[vnode_count];
-
-    VnodeMoMgr *mgr =
-        reinterpret_cast<VnodeMoMgr *>(const_cast<MoManager *>
-                    (const_cast<MoManager*>(GetMoManager(ktype))));
-
-    result_code = mgr->GetChildConfigKey(ck_val, NULL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Invalid param");
-      return result_code;
-    }
-
-    SET_USER_DATA_CTRLR(ck_val, ctrlr_id);
-    ConfigVal *cfg_val = NULL;
-    mgr->AllocVal(cfg_val, UPLL_DT_STATE, MAINTBL);
-    ck_val->SetCfgVal(cfg_val);
-    switch (ktype) {
-      case UNC_KT_VBRIDGE: {
-        ConfigVal *tmp =
-         (ck_val->get_cfg_val()) ? ck_val->get_cfg_val()->get_next_cfg_val() :
-                                   NULL;
-          val_db_vbr_st* vbr_dt_val =  reinterpret_cast<val_db_vbr_st *>
-                            ((tmp != NULL) ? tmp->get_val() : NULL);
-          if (vbr_dt_val == NULL) {
-            UPLL_LOG_DEBUG("Invalid param");
-            DELETE_IF_NOT_NULL(ck_val);
-            return UPLL_RC_ERR_GENERIC;
-          }
-          vbr_dt_val->vbr_val_st.valid[0] = UNC_VF_VALID;
-          vbr_dt_val->vbr_val_st.oper_status = UPLL_OPER_STATUS_UNKNOWN;
-        }
-        break;
-      case UNC_KT_VROUTER: {
-        ConfigVal *tmp =
-         (ck_val->get_cfg_val()) ? ck_val->get_cfg_val()->get_next_cfg_val() :
-                                   NULL;
-          val_db_vrt_st* vrt_dt_val =  reinterpret_cast<val_db_vrt_st *>
-                            ((tmp != NULL) ? tmp->get_val() : NULL);
-          if (vrt_dt_val == NULL) {
-            UPLL_LOG_DEBUG("Invalid param");
-            DELETE_IF_NOT_NULL(ck_val);
-            return UPLL_RC_ERR_GENERIC;
-          }
-          vrt_dt_val->vrt_val_st.valid[0] = UNC_VF_VALID;
-          vrt_dt_val->vrt_val_st.oper_status = UPLL_OPER_STATUS_UNKNOWN;
-        }
-        break;
-      case UNC_KT_VTEP: {
-        ConfigVal *tmp =
-         (ck_val->get_cfg_val()) ? ck_val->get_cfg_val()->get_next_cfg_val() :
-                                   NULL;
-          val_db_vtep_st* vtep_dt_val =  reinterpret_cast<val_db_vtep_st *>
-                            ((tmp != NULL) ? tmp->get_val() : NULL);
-          if (vtep_dt_val == NULL) {
-            UPLL_LOG_DEBUG("Invalid param");
-            DELETE_IF_NOT_NULL(ck_val);
-            return UPLL_RC_ERR_GENERIC;
-          }
-          vtep_dt_val->vtep_val_st.valid[0] = UNC_VF_VALID;
-          vtep_dt_val->vtep_val_st.oper_status = UPLL_OPER_STATUS_UNKNOWN;
-        }
-        break;
-      case UNC_KT_VTUNNEL: {
-        ConfigVal *tmp =
-         (ck_val->get_cfg_val()) ? ck_val->get_cfg_val()->get_next_cfg_val() :
-                                   NULL;
-          val_db_vtunnel_st* vtunnel_dt_val = 
-                                       reinterpret_cast<val_db_vtunnel_st *>
-                                       ((tmp != NULL) ? tmp->get_val() : NULL);
-          if (vtunnel_dt_val == NULL) {
-            UPLL_LOG_DEBUG("Invalid param");
-            DELETE_IF_NOT_NULL(ck_val);
-            return UPLL_RC_ERR_GENERIC;
-          }
-          vtunnel_dt_val->vtunnel_val_st.valid[0] = UNC_VF_VALID;
-          vtunnel_dt_val->vtunnel_val_st.oper_status = UPLL_OPER_STATUS_UNKNOWN;
-        }
-        break;
-      default:
-        UPLL_LOG_DEBUG("OperStatus not supported for this data type");
-        DELETE_IF_NOT_NULL(ck_val);
-        return UPLL_RC_ERR_GENERIC;
-        break;
-    }
-
-    if (notification == kCtrlrDisconnect) {
-      DbSubOp dbop = { kOpNotRead, kOpMatchCtrlr, kOpInOutNone };
-      result_code = mgr->UpdateConfigDB(ck_val, UPLL_DT_STATE, UNC_OP_UPDATE,
-                                   dmi, &dbop, MAINTBL);
-      if (result_code == UPLL_RC_SUCCESS) {
-        result_code = UpdateVnodeIfOperStatus(ck_val, dmi, notification,
-                                              false, vnode_count);
-        if (result_code != UPLL_RC_SUCCESS &&
-            result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-          UPLL_LOG_DEBUG("Error in Updating operstatus");
-          DELETE_IF_NOT_NULL(ck_val);
-          return result_code;
-        }
-      } else if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-        UPLL_LOG_DEBUG("Error in Updating operstatus");
-        DELETE_IF_NOT_NULL(ck_val);
-        return result_code;
-      }
-    }
-    DELETE_IF_NOT_NULL(ck_val);
-  }
-  return UPLL_RC_SUCCESS;
-}
-
-upll_rc_t VtnMoMgr::UpdateVnodeIfOperStatus(ConfigKeyVal *ck_vtn,
-                                       DalDmlIntf *dmi,
-                                       state_notification notification,
-                                       bool skip, int if_type) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  unc_key_type_t if_node_key_type[]= {UNC_KT_VBR_IF, UNC_KT_VRT_IF,
-                                      UNC_KT_VTEP_IF, UNC_KT_VTUNNEL_IF};
-  ConfigKeyVal *ck_val = NULL;
-    /*  Populating vtnset with vtn names connected to given controller name */
-    const unc_key_type_t ktype = if_node_key_type[if_type];
-
-  VnodeChildMoMgr *mgr =
-      reinterpret_cast<VnodeChildMoMgr *>(const_cast<MoManager *>
-                  (const_cast<MoManager*>(GetMoManager(ktype))));
-
-  result_code = mgr->GetChildConfigKey(ck_val, ck_vtn);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("GetChildConfigKEy failed");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  ConfigVal *cfg_val = NULL;
-  mgr->AllocVal(cfg_val, UPLL_DT_STATE, MAINTBL);
-  ck_val->SetCfgVal(cfg_val);
-
-  switch (ktype) {
-    case UNC_KT_VBR_IF: {
-      ConfigVal *tmp =
-       (ck_val->get_cfg_val()) ? ck_val->get_cfg_val()->get_next_cfg_val() :
-                                 NULL;
-      val_db_vbr_if_st* vbr_if_dt_val =  reinterpret_cast<val_db_vbr_if_st *>
-                          ((tmp != NULL) ? tmp->get_val() : NULL);
-      if (vbr_if_dt_val == NULL) {
-        UPLL_LOG_DEBUG("Invalid param");
-        DELETE_IF_NOT_NULL(ck_val);
-        return UPLL_RC_ERR_GENERIC;
-      }
-      vbr_if_dt_val->vbr_if_val_st.valid[0] = UNC_VF_VALID;
-      vbr_if_dt_val->vbr_if_val_st.oper_status = UPLL_OPER_STATUS_UNKNOWN;
-    }
-    break;
-    case UNC_KT_VRT_IF: {
-      ConfigVal *tmp =
-       (ck_val->get_cfg_val()) ? ck_val->get_cfg_val()->get_next_cfg_val() :
-                                 NULL;
-      val_db_vrt_if_st* vrt_if_dt_val =  reinterpret_cast<val_db_vrt_if_st *>
-                        ((tmp != NULL) ? tmp->get_val() : NULL);
-      if (vrt_if_dt_val == NULL) {
-        UPLL_LOG_DEBUG("Invalid param");
-        DELETE_IF_NOT_NULL(ck_val);
-        return UPLL_RC_ERR_GENERIC;
-      }
-      vrt_if_dt_val->vrt_if_val_st.valid[0] = UNC_VF_VALID;
-      vrt_if_dt_val->vrt_if_val_st.oper_status = UPLL_OPER_STATUS_UNKNOWN;
-    }
-    break;
-    case UNC_KT_VTEP_IF: {
-      ConfigVal *tmp =
-       (ck_val->get_cfg_val()) ? ck_val->get_cfg_val()->get_next_cfg_val() :
-                                 NULL;
-      val_db_vtep_if_st* vtep_if_dt_val =  reinterpret_cast<val_db_vtep_if_st *>
-                        ((tmp != NULL) ? tmp->get_val() : NULL);
-      if (vtep_if_dt_val == NULL) {
-        UPLL_LOG_DEBUG("Invalid param");
-        DELETE_IF_NOT_NULL(ck_val);
-        return UPLL_RC_ERR_GENERIC;
-      }
-      vtep_if_dt_val->vtep_if_val_st.valid[0] = UNC_VF_VALID;
-      vtep_if_dt_val->vtep_if_val_st.oper_status = UPLL_OPER_STATUS_UNKNOWN;
-    }
-    break;
-    case UNC_KT_VTUNNEL_IF: {
-      ConfigVal *tmp =
-       (ck_val->get_cfg_val()) ? ck_val->get_cfg_val()->get_next_cfg_val() :
-                                 NULL;
-      val_db_vtunnel_if_st* vtunnel_if_dt_val =
-                                   reinterpret_cast<val_db_vtunnel_if_st *>
-                                   ((tmp != NULL) ? tmp->get_val() : NULL);
-      if (vtunnel_if_dt_val == NULL) {
-        UPLL_LOG_DEBUG("Invalid param");
-        DELETE_IF_NOT_NULL(ck_val);
-        return UPLL_RC_ERR_GENERIC;
-      }
-      vtunnel_if_dt_val->vtunnel_if_val_st.valid[0] = UNC_VF_VALID;
-      vtunnel_if_dt_val->vtunnel_if_val_st.oper_status = UPLL_OPER_STATUS_UNKNOWN;
-    }
-    break;
-    default:
-      UPLL_LOG_DEBUG("OperStatus not supported for this data type");
-      DELETE_IF_NOT_NULL(ck_val);
-      return UPLL_RC_ERR_GENERIC;
-    break;
-  }
-  DbSubOp dbop = { kOpNotRead, kOpMatchCtrlr, kOpInOutNone };
-  result_code = mgr->UpdateConfigDB(ck_val, UPLL_DT_STATE, UNC_OP_UPDATE,
-                               dmi, &dbop, MAINTBL);
-  if (result_code != UPLL_RC_SUCCESS &&
-      result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-    UPLL_LOG_DEBUG("Error in Updating interface operstatus");
-    DELETE_IF_NOT_NULL(ck_val);
-    return result_code;
-  }
-  DELETE_IF_NOT_NULL(ck_val);
-  return result_code;
-}
-
-upll_rc_t VtnMoMgr::RestoreVtnOperStatus(ConfigKeyVal *ck_val,
-                                       DalDmlIntf *dmi,
-                                       state_notification notification) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-
-  ConfigKeyVal *ck_vtn = NULL;
-  result_code = GetChildConfigKey(ck_vtn, ck_val);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("GetChildConfigKEy failed");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  DbSubOp dbop = {kOpReadSingle, kOpMatchNone,
-                  kOpInOutNone};
-  result_code = ReadConfigDB(ck_vtn, UPLL_DT_STATE, UNC_OP_READ, dbop, dmi,
-                             MAINTBL);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("ReadConfigDB failed with result_code %d",
-                    result_code);
-    DELETE_IF_NOT_NULL(ck_vtn);
-    return result_code;
-  }
-  ConfigVal *tmp = (ck_vtn->get_cfg_val()) ?
-                    ck_vtn->get_cfg_val()->get_next_cfg_val() : NULL;
-  val_db_vtn_st_t *vtn_valst = reinterpret_cast<val_db_vtn_st_t *>
-                               ((tmp != NULL) ? tmp->get_val() : NULL);
-  if (vtn_valst == NULL) {
-    UPLL_LOG_DEBUG("Invalid param");
-    DELETE_IF_NOT_NULL(ck_vtn);
-    return UPLL_RC_ERR_GENERIC;
-  }
-  if (notification == kCtrlrDisconnect) {
-    vtn_valst->vtn_val_st.oper_status = UPLL_OPER_STATUS_UNKNOWN;
-  } else {
-    if (vtn_valst->vtn_val_st.oper_status != UPLL_OPER_STATUS_UP) {
-      vtn_valst->vtn_val_st.oper_status = UPLL_OPER_STATUS_DOWN;
-    }
-  }
-  result_code = UpdateConfigDB(ck_vtn, UPLL_DT_STATE, UNC_OP_UPDATE,
-                               dmi, MAINTBL);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Error in Updating VTN entries");
-    DELETE_IF_NOT_NULL(ck_vtn);
-    return result_code;
-  }
-  DELETE_IF_NOT_NULL(ck_vtn);
-  return result_code;
-}
-
-upll_rc_t VtnMoMgr::RestoreVtnCtrlrOperStatus(uint8_t *ctrlr_name,
-                                       DalDmlIntf *dmi,
-                                       state_notification notification) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  ConfigKeyVal *ck_vtn = NULL;
-  result_code = GetChildConfigKey(ck_vtn, NULL);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("GetChildConfigKey failed");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  SET_USER_DATA_CTRLR(ck_vtn, ctrlr_name);
-  DbSubOp dbop = {kOpReadMultiple, kOpMatchCtrlr,
-                  kOpInOutNone};
-  result_code = ReadConfigDB(ck_vtn, UPLL_DT_STATE, UNC_OP_READ, dbop, dmi,
-                             CTRLRTBL);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("ReadConfigDB failed with result_code %d",
-                    result_code);
-    DELETE_IF_NOT_NULL(ck_vtn);
-    return result_code;
-  }
-  ConfigKeyVal *tmp = ck_vtn;
-  while (ck_vtn != NULL) {
-    val_vtn_ctrlr *ctrlr_val = reinterpret_cast<val_vtn_ctrlr *>
-                                               (GetVal(ck_vtn));
-    if (!ctrlr_val) {
-      UPLL_LOG_DEBUG("val_vtn_ctrlr struct is NULL");
-      DELETE_IF_NOT_NULL(tmp);
-      return UPLL_RC_ERR_GENERIC;
-    }
-    if (notification == kCtrlrDisconnect) {
-      ctrlr_val->oper_status = UPLL_OPER_STATUS_UNKNOWN;
-      ctrlr_val->down_count = 0;
-    } else {
-      if (ctrlr_val->oper_status != UPLL_OPER_STATUS_UP) {
-        ctrlr_val->oper_status = UPLL_OPER_STATUS_DOWN;
-      }
-    }
-    DbSubOp dbop = { kOpNotRead, kOpMatchCtrlr, kOpInOutNone };
-    result_code = UpdateConfigDB(ck_vtn, UPLL_DT_STATE, UNC_OP_UPDATE,
-                                 dmi, &dbop, CTRLRTBL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Error in Updating VTN entries");
-      DELETE_IF_NOT_NULL(tmp);
-      return result_code;
-    }
-    RestoreVtnOperStatus(ck_vtn, dmi, notification);
-    ck_vtn = ck_vtn->get_next_cfg_key_val();
-  }
-  DELETE_IF_NOT_NULL(tmp);
-  return result_code;
-}
-
-upll_rc_t VtnMoMgr::RestoreVnodeOperStatus(uint8_t *ctrlr_id,
+                                                state_notification notification,
+                                                bool skip) {
+             UPLL_FUNC_TRACE;
+             upll_rc_t result_code = UPLL_RC_SUCCESS;
+             if (!skip) {
+               DbSubOp dbop = { kOpReadMultiple,
+                 kOpMatchCtrlr | kOpMatchDomain, kOpInOutNone };
+               if (notification == kCtrlrDisconnect ||
+                   notification == kCtrlrReconnectIfUp ||
+                   notification == kCtrlrReconnectIfDown )
+                 dbop.matchop = kOpMatchCtrlr;
+
+               result_code = ReadConfigDB(ck_vtn,
+                                          UPLL_DT_STATE,
+                                          UNC_OP_READ,
+                                          dbop,
+                                          dmi,
+                                          CTRLRTBL);
+               if (result_code != UPLL_RC_SUCCESS) {
+                 UPLL_LOG_DEBUG("Error in reading: %d", result_code);
+                 return result_code;
+               }
+             }
+             ConfigKeyVal *tkey = ck_vtn;
+             ConfigKeyVal *ck_vtn_main = NULL;
+             while (tkey != NULL) {
+               bool oper_change = false;
+               result_code = SetCtrlrOperStatus(tkey,
+                                                notification,
+                                                dmi,
+                                                oper_change);
+               if (result_code != UPLL_RC_SUCCESS) {
+                 UPLL_LOG_DEBUG("SetCtrlrOperStatus failed.Result code : %d",
+                                result_code);
+                 return result_code;
+               }
+               if (oper_change) {
+                 result_code = GetChildConfigKey(ck_vtn_main, tkey);
+                 if (!ck_vtn_main || result_code != UPLL_RC_SUCCESS) {
+                   UPLL_LOG_DEBUG("Invalid param");
+                   DELETE_IF_NOT_NULL(ck_vtn_main);
+                   return result_code;
+                 }
+                 DbSubOp dbop = { kOpReadMultiple,
+                   kOpMatchNone,
+                   kOpInOutNone };
+                 result_code = ReadConfigDB(ck_vtn_main,
+                                            UPLL_DT_STATE,
+                                            UNC_OP_READ,
+                                            dbop,
+                                            dmi,
+                                            MAINTBL);
+                 if (result_code != UPLL_RC_SUCCESS) {
+                   UPLL_LOG_DEBUG("Error in reading: %d", result_code);
+                   DELETE_IF_NOT_NULL(ck_vtn_main);
+                   return result_code;
+                 }
+                 SetOperStatus(ck_vtn_main, notification, dmi);
+                 if (ck_vtn_main)
+                   delete ck_vtn_main;
+                 ck_vtn_main = NULL;
+               }
+               if ( skip ) break;
+               tkey = tkey->get_next_cfg_key_val();
+             }
+             return result_code;
+           }
+
+
+           /* SetOperStatus of VTN to unknown on a controller disconnect */
+           bool VtnMoMgr::VtnSetOperStatus(uint8_t *vtn_name_o,
                                            DalDmlIntf *dmi,
-                                           state_notification notification,
-                                           bool skip) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  uint32_t down_count = 0;
-  result_code =  RestoreVnodeIfAndVtnCtrlr(ctrlr_id, dmi, notification,
-                                             down_count);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Error in Updating OperStatus");
-    return result_code;
-  }
-  ConfigKeyVal *ck_vtn_ctrlr = NULL;
-  result_code = GetChildConfigKey(ck_vtn_ctrlr, NULL);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("GetChildConfigKey failed");
-    return result_code;
-  }
-  SET_USER_DATA_CTRLR(ck_vtn_ctrlr, ctrlr_id);
-  ConfigVal *cv_ctrlr = NULL;
-  AllocVal(cv_ctrlr, UPLL_DT_RUNNING, CTRLRTBL);
-  ck_vtn_ctrlr->SetCfgVal(cv_ctrlr);
-  val_vtn_ctrlr *tmp_ctrlr = reinterpret_cast<val_vtn_ctrlr*>
-                              (GetVal(ck_vtn_ctrlr));
-  if (tmp_ctrlr == NULL) {
-    UPLL_LOG_DEBUG("Error in retrieving ctrlr val struct");
-    DELETE_IF_NOT_NULL(ck_vtn_ctrlr);
-    return UPLL_RC_ERR_GENERIC;
-  }
-  tmp_ctrlr->down_count = down_count;
-  DbSubOp dbop = { kOpNotRead, kOpMatchCtrlr, kOpInOutNone };
-  result_code = UpdateConfigDB(ck_vtn_ctrlr, UPLL_DT_STATE, UNC_OP_UPDATE,
-                               dmi, &dbop, CTRLRTBL);
-  DELETE_IF_NOT_NULL(ck_vtn_ctrlr);
-  return result_code;
-}
-
-upll_rc_t VtnMoMgr::RestoreVnodeIfAndVtnCtrlr(uint8_t *ctrlr_id,
-                           DalDmlIntf *dmi,
-                           state_notification notification,
-                           uint32_t &down_count) {
-  upll_rc_t result_code = UPLL_RC_SUCCESS; 
-  unc_key_type_t node_key_type[]= {UNC_KT_VBRIDGE, UNC_KT_VROUTER};
-  for (int node_count = 0;
-       node_count < static_cast<int>
-       (sizeof(node_key_type)/sizeof(unc_key_type_t));
-       node_count++) {
-    const unc_key_type_t ktype = node_key_type[node_count];
-    ConfigKeyVal *ck_vnode = NULL;
-
-    VnodeMoMgr *mgr =
-        reinterpret_cast<VnodeMoMgr *>(const_cast<MoManager *>
-                    (const_cast<MoManager*>(GetMoManager(ktype))));
-
-    result_code = mgr->GetChildConfigKey(ck_vnode, NULL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetChildConfigKey failed");
-      return UPLL_RC_ERR_GENERIC;
-    }
-    SET_USER_DATA_CTRLR(ck_vnode, ctrlr_id);
-    DbSubOp dbop = {kOpReadMultiple, kOpMatchCtrlr,
-                  kOpInOutNone};
-    result_code = mgr->ReadConfigDB(ck_vnode, UPLL_DT_STATE, UNC_OP_READ, dbop, dmi,
-                             MAINTBL);
-    if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-      DELETE_IF_NOT_NULL(ck_vnode);
-      continue;
-    } else if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("ReadConfigDB failed with result_code %d",
-                      result_code);
-      DELETE_IF_NOT_NULL(ck_vnode);
-      return result_code;
-    }
-    unc_key_type_t node_key_type[]= {UNC_KT_VBR_IF, UNC_KT_VRT_IF};
-    while (ck_vnode != NULL) {
-      ConfigKeyVal *ckv_tmp = ck_vnode->get_next_cfg_key_val();
-      ck_vnode->set_next_cfg_key_val(NULL);
-      ConfigKeyVal *ck_if = NULL;
-      VnodeChildMoMgr *if_mgr =
-          reinterpret_cast<VnodeChildMoMgr *>(const_cast<MoManager *>
-          (const_cast<MoManager*>(GetMoManager(node_key_type[node_count]))));
-      result_code = if_mgr->GetChildConfigKey(ck_if, ck_vnode);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("GetChildConfigKey failed");
-        DELETE_IF_NOT_NULL(ckv_tmp);
-        DELETE_IF_NOT_NULL(ck_vnode);
-        return UPLL_RC_ERR_GENERIC;
-      }
-      VnodeMoMgr *node_mgr =
-        reinterpret_cast<VnodeMoMgr *>(const_cast<MoManager *>
-        (const_cast<MoManager*>(GetMoManager(ck_vnode->get_key_type()))));
-      result_code = if_mgr->UpdateVnodeIf(ck_if, dmi, notification);
-      DELETE_IF_NOT_NULL(ck_if);
-      if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-        result_code = node_mgr->UpdateOperStatus(ck_vnode, dmi, kCtrlrReconnectIfDown, true, true);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("Error in Upodating OperStatus");
-          DELETE_IF_NOT_NULL(ckv_tmp);
-          DELETE_IF_NOT_NULL(ck_vnode);
-          return result_code;
-        }
-        DELETE_IF_NOT_NULL(ckv_tmp);
-        DELETE_IF_NOT_NULL(ck_vnode);
-        down_count = down_count + 1;
-        return UPLL_RC_SUCCESS;
-      } else if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("ReadConfigDB failed with result_code %d",
-                    result_code);
-        DELETE_IF_NOT_NULL(ckv_tmp);
-        DELETE_IF_NOT_NULL(ck_vnode);
-        return result_code;
-      }
-      uint32_t cur_instance_count = 0;
-      ConfigKeyVal *ck_vnode_tmp = NULL;
-
-      result_code = node_mgr->GetCkvUninit(ck_vnode_tmp, ck_vnode, dmi);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("Returning error %d\n",result_code);
-        DELETE_IF_NOT_NULL(ckv_tmp);
-        DELETE_IF_NOT_NULL(ck_vnode);
-        return result_code;
-      }
-      val_db_vbr_st *vnode_stval = reinterpret_cast<val_db_vbr_st *>
-                                            (GetStateVal(ck_vnode_tmp));
-      if (vnode_stval == NULL) {
-        UPLL_LOG_DEBUG("Error in fetching in state structure");
-        DELETE_IF_NOT_NULL(ck_vnode_tmp);
-        DELETE_IF_NOT_NULL(ckv_tmp);
-        DELETE_IF_NOT_NULL(ck_vnode);
-        return UPLL_RC_ERR_GENERIC; 
-      }
-      vnode_stval->vbr_val_st.oper_status = UPLL_OPER_STATUS_DOWN;
-      vnode_stval->vbr_val_st.valid[UPLL_IDX_OPER_STATUS_VBRS] = UNC_VF_VALID;
-
-      result_code = node_mgr->GetInstanceCount(ck_vnode_tmp, NULL, UPLL_DT_STATE,
-                                      &cur_instance_count, dmi, MAINTBL);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("GetInstanceCount failed : %d\n",result_code);
-        DELETE_IF_NOT_NULL(ck_vnode_tmp);
-        DELETE_IF_NOT_NULL(ckv_tmp);
-        DELETE_IF_NOT_NULL(ck_vnode);
-        return result_code;
-      }
-      down_count += cur_instance_count;
-      DELETE_IF_NOT_NULL(ck_vnode_tmp);
-      DELETE_IF_NOT_NULL(ck_vnode);
-      ck_vnode = ckv_tmp;
-    }
-  }
-  return result_code;
-}
+                                           state_notification notification) {
+             UPLL_FUNC_TRACE;
+             bool res = false;
+             upll_rc_t result_code = UPLL_RC_SUCCESS;
+             key_vtn_t *vtn_key = reinterpret_cast<key_vtn_t *>(
+                 ConfigKeyVal::Malloc(sizeof(key_vtn_t)));
+             ConfigKeyVal *ck_vtn = new ConfigKeyVal(UNC_KT_VTN,
+                                                     IpctSt::kIpcStKeyVtn,
+                                                     vtn_key,
+                                                     NULL);
+             result_code = UpdateOperStatus(ck_vtn,
+                                            dmi,
+                                            notification,
+                                            false);
+
+             if (result_code != UPLL_RC_SUCCESS) {
+               delete ck_vtn;
+               UPLL_LOG_DEBUG("Returning error : %d", result_code);
+               return false;
+             }
+             delete ck_vtn;
+             return res;
+           }
+
+           upll_rc_t VtnMoMgr::TxUpdateDtState(unc_key_type_t ktype,
+                                               uint32_t session_id,
+                                               uint32_t config_id,
+                                               DalDmlIntf *dmi) {
+             UPLL_FUNC_TRACE;
+             upll_rc_t result_code = UPLL_RC_SUCCESS;
+             ConfigKeyVal *ck_vtn = NULL;
+
+             /* Create Vnode If key */
+             switch (ktype) {
+               case UNC_KT_VTN:
+                 result_code = GetUninitOperState(ck_vtn, dmi);
+                 break;
+               default:
+                 UPLL_LOG_DEBUG("Unsupported operation on keytype %d", ktype);
+                 return UPLL_RC_ERR_GENERIC;
+             }
+             if (UPLL_RC_SUCCESS != result_code)  {
+               return result_code;
+             }
+             ConfigKeyVal *tkey = ck_vtn, *ck_ctrlr;
+             DbSubOp dbop1 = { kOpNotRead, kOpMatchNone, kOpInOutNone };
+             while (ck_vtn) {
+               ck_ctrlr = NULL;
+               tkey = ck_vtn;
+               ck_vtn = tkey->get_next_cfg_key_val();
+               tkey->set_next_cfg_key_val(NULL);
+
+               val_db_vtn_st *vtn_st = reinterpret_cast<val_db_vtn_st *>
+                   (GetStateVal(tkey));
+               result_code = GetChildConfigKey(ck_ctrlr, tkey);
+               if (result_code != UPLL_RC_SUCCESS) {
+                 UPLL_LOG_DEBUG("Returning error %d\n", result_code);
+                 return result_code;
+               }
+               val_vtn_ctrlr *ctrlr_val = reinterpret_cast<val_vtn_ctrlr *>
+                   (ConfigKeyVal::Malloc(sizeof(val_vtn_ctrlr)));
+               ctrlr_val->valid[UPLL_IDX_OPER_STATUS_VS] = UNC_VF_VALID;
+               ctrlr_val->oper_status = UPLL_OPER_STATUS_DOWN;
+               ck_ctrlr->AppendCfgVal(IpctSt::kIpcInvalidStNum, ctrlr_val);
+               DbSubOp dbop = { kOpReadSingle,
+                 kOpMatchNone,
+                 kOpInOutFlag | kOpInOutCtrlr
+                 | kOpInOutDomain };
+               result_code = ReadConfigDB(ck_ctrlr, UPLL_DT_STATE, UNC_OP_READ,
+                                          dbop, dmi, CTRLRTBL);
+               if (result_code == UPLL_RC_SUCCESS) {
+                 vtn_st->vtn_val_st.oper_status = UPLL_OPER_STATUS_DOWN;
+                 result_code = UPLL_RC_SUCCESS;
+               } else if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                 // no instance with oper down
+                 ck_ctrlr->SetCfgVal(NULL);
+                 result_code = UpdateConfigDB(ck_ctrlr, UPLL_DT_STATE,
+                                              UNC_OP_READ,
+                                              dmi, &dbop, CTRLRTBL);
+                 if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
+                   vtn_st->vtn_val_st.oper_status = UPLL_OPER_STATUS_UP;
+                   result_code = UPLL_RC_SUCCESS;
+                 } else if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                   vtn_st->vtn_val_st.oper_status = UPLL_OPER_STATUS_DOWN;
+                   result_code = UPLL_RC_SUCCESS;
+                 }
+               }
+               if (result_code != UPLL_RC_SUCCESS) {
+                 UPLL_LOG_DEBUG("Returning error %d\n", result_code);
+                 delete tkey;
+                 delete ck_vtn;
+                 delete ck_ctrlr;
+                 return result_code;
+               }
+               vtn_st->vtn_val_st.valid[UPLL_IDX_OPER_STATUS_VS] =
+                   UNC_VF_VALID;
+               result_code = UpdateConfigDB(tkey,
+                                            UPLL_DT_STATE,
+                                            UNC_OP_UPDATE,
+                                            dmi,
+                                            &dbop1,
+                                            MAINTBL);
+               if (result_code != UPLL_RC_SUCCESS) {
+                 UPLL_LOG_DEBUG("UpdateConfigDB Executed %d",
+                                result_code);
+                 delete tkey;
+                 delete ck_vtn;
+                 delete ck_ctrlr;
+                 break;
+               }
+               delete tkey;
+               delete ck_ctrlr;
+             }
+             return result_code;
+           }
+
+           upll_rc_t VtnMoMgr::ControllerStatusHandler(uint8_t *ctrlr_id,
+                                                       DalDmlIntf *dmi,
+                                                       bool operstatus) {
+             UPLL_FUNC_TRACE;
+             upll_rc_t result_code = UPLL_RC_SUCCESS;
+             state_notification notification = kCtrlrDisconnect;
+             if (operstatus) {
+               notification = kCtrlrReconnect;
+             }
+             if (notification == kCtrlrDisconnect) {
+               result_code = RestoreVtnCtrlrOperStatus(ctrlr_id,
+                                                       dmi,
+                                                       notification);
+               if (result_code != UPLL_RC_SUCCESS &&
+                   result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                 UPLL_LOG_DEBUG("vtn controller operstatus disconnect"
+                                "update failed");
+                 return result_code;
+               }
+               result_code = UpdateVnodeOperStatus(ctrlr_id,
+                                                   dmi,
+                                                   notification,
+                                                   false);
+               if (result_code != UPLL_RC_SUCCESS &&
+                   result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                 UPLL_LOG_DEBUG("Error in updating node operstatus");
+                 return result_code;
+               }
+               VlinkMoMgr *vlink_mgr =
+                   reinterpret_cast<VlinkMoMgr *>(const_cast<MoManager *>
+                                                  (const_cast<MoManager*>(
+                                                          GetMoManager(
+                                                              UNC_KT_VLINK))));
+               vlink_mgr->UpdateVlinkOperStatus(ctrlr_id,
+                                                dmi,
+                                                notification,
+                                                false);
+               if (result_code != UPLL_RC_SUCCESS &&
+                   result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                 UPLL_LOG_DEBUG("vlink operstatus update failed");
+                 return result_code;
+               }
+             } else {
+               result_code = RestoreVtnCtrlrOperStatus(ctrlr_id,
+                                                       dmi,
+                                                       notification);
+               if (result_code != UPLL_RC_SUCCESS &&
+                   result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                 UPLL_LOG_DEBUG("Error in Updating Operstatus on"
+                                "Controller ReConnect");
+                 return result_code;
+               }
+             }
+             return result_code;
+           }
+
+           upll_rc_t VtnMoMgr::UpdateVnodeOperStatus(
+               uint8_t *ctrlr_id,
+               DalDmlIntf *dmi,
+               state_notification notification,
+               bool skip) {
+             UPLL_FUNC_TRACE;
+             upll_rc_t result_code = UPLL_RC_SUCCESS;
+             unc_key_type_t node_key_type[]= {UNC_KT_VBRIDGE, UNC_KT_VROUTER,
+               UNC_KT_VTEP, UNC_KT_VTUNNEL};
+             ConfigKeyVal *ck_val = NULL;
+             for (int vnode_count = 0;
+                  vnode_count < static_cast<int>
+                  (sizeof(node_key_type)/sizeof(unc_key_type_t));
+                  vnode_count++) {
+               const unc_key_type_t ktype = node_key_type[vnode_count];
+
+               VnodeMoMgr *mgr =
+                   reinterpret_cast<VnodeMoMgr *>(
+                       const_cast<MoManager *>
+                       (const_cast<MoManager*>(GetMoManager(ktype))));
+
+               result_code = mgr->GetChildConfigKey(ck_val, NULL);
+               if (result_code != UPLL_RC_SUCCESS) {
+                 UPLL_LOG_DEBUG("Invalid param");
+                 return result_code;
+               }
+
+               SET_USER_DATA_CTRLR(ck_val, ctrlr_id);
+               ConfigVal *cfg_val = NULL;
+               mgr->AllocVal(cfg_val, UPLL_DT_STATE, MAINTBL);
+               ck_val->SetCfgVal(cfg_val);
+               switch (ktype) {
+                 case UNC_KT_VBRIDGE: {
+                   ConfigVal *tmp =
+                       (ck_val->get_cfg_val()) ? ck_val->get_cfg_val()->
+                       get_next_cfg_val() :
+                       NULL;
+                   val_db_vbr_st* vbr_dt_val =
+                       reinterpret_cast<val_db_vbr_st *>
+                       ((tmp != NULL) ? tmp->get_val() : NULL);
+                   if (vbr_dt_val == NULL) {
+                     UPLL_LOG_DEBUG("Invalid param");
+                     DELETE_IF_NOT_NULL(ck_val);
+                     return UPLL_RC_ERR_GENERIC;
+                   }
+                   vbr_dt_val->vbr_val_st.valid[0] = UNC_VF_VALID;
+                   vbr_dt_val->vbr_val_st.oper_status =
+                       UPLL_OPER_STATUS_UNKNOWN;
+                 }
+                 break;
+                 case UNC_KT_VROUTER: {
+                   ConfigVal *tmp =
+                       (ck_val->get_cfg_val()) ? ck_val->get_cfg_val()->
+                       get_next_cfg_val() :
+                       NULL;
+                   val_db_vrt_st* vrt_dt_val =
+                       reinterpret_cast<val_db_vrt_st *>
+                       ((tmp != NULL) ? tmp->get_val() : NULL);
+                   if (vrt_dt_val == NULL) {
+                     UPLL_LOG_DEBUG("Invalid param");
+                     DELETE_IF_NOT_NULL(ck_val);
+                     return UPLL_RC_ERR_GENERIC;
+                   }
+                   vrt_dt_val->vrt_val_st.valid[0] = UNC_VF_VALID;
+                   vrt_dt_val->vrt_val_st.oper_status =
+                       UPLL_OPER_STATUS_UNKNOWN;
+                 }
+                 break;
+                 case UNC_KT_VTEP: {
+                   ConfigVal *tmp =
+                       (ck_val->get_cfg_val()) ? ck_val->get_cfg_val()->
+                       get_next_cfg_val() :
+                       NULL;
+                   val_db_vtep_st* vtep_dt_val =
+                       reinterpret_cast<val_db_vtep_st *>
+                       ((tmp != NULL) ? tmp->get_val() : NULL);
+                   if (vtep_dt_val == NULL) {
+                     UPLL_LOG_DEBUG("Invalid param");
+                     DELETE_IF_NOT_NULL(ck_val);
+                     return UPLL_RC_ERR_GENERIC;
+                   }
+                   vtep_dt_val->vtep_val_st.valid[0] = UNC_VF_VALID;
+                   vtep_dt_val->vtep_val_st.oper_status =
+                       UPLL_OPER_STATUS_UNKNOWN;
+                 }
+                 break;
+                 case UNC_KT_VTUNNEL: {
+                   ConfigVal *tmp =
+                       (ck_val->get_cfg_val()) ? ck_val->get_cfg_val()->
+                       get_next_cfg_val() :
+                       NULL;
+                   val_db_vtunnel_st* vtunnel_dt_val =
+                       reinterpret_cast<val_db_vtunnel_st *>
+                       ((tmp != NULL) ? tmp->get_val() : NULL);
+                   if (vtunnel_dt_val == NULL) {
+                     UPLL_LOG_DEBUG("Invalid param");
+                     DELETE_IF_NOT_NULL(ck_val);
+                     return UPLL_RC_ERR_GENERIC;
+                   }
+                   vtunnel_dt_val->vtunnel_val_st.valid[0] = UNC_VF_VALID;
+                   vtunnel_dt_val->vtunnel_val_st.oper_status =
+                       UPLL_OPER_STATUS_UNKNOWN;
+                 }
+                 break;
+                 default:
+                 UPLL_LOG_DEBUG("OperStatus not supported for this data type");
+                 DELETE_IF_NOT_NULL(ck_val);
+                 return UPLL_RC_ERR_GENERIC;
+                 break;
+               }
+
+               if (notification == kCtrlrDisconnect) {
+                 DbSubOp dbop = { kOpNotRead, kOpMatchCtrlr, kOpInOutNone };
+                 result_code = mgr->UpdateConfigDB(ck_val,
+                                                   UPLL_DT_STATE,
+                                                   UNC_OP_UPDATE,
+                                                   dmi,
+                                                   &dbop,
+                                                   MAINTBL);
+                 if (result_code == UPLL_RC_SUCCESS) {
+                   result_code = UpdateVnodeIfOperStatus(ck_val,
+                                                         dmi,
+                                                         notification,
+                                                         false,
+                                                         vnode_count);
+                   if (result_code != UPLL_RC_SUCCESS &&
+                       result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                     UPLL_LOG_DEBUG("Error in Updating operstatus");
+                     DELETE_IF_NOT_NULL(ck_val);
+                     return result_code;
+                   }
+                 } else if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                   UPLL_LOG_DEBUG("Error in Updating operstatus");
+                   DELETE_IF_NOT_NULL(ck_val);
+                   return result_code;
+                 }
+               }
+               DELETE_IF_NOT_NULL(ck_val);
+             }
+             return UPLL_RC_SUCCESS;
+           }
+
+           upll_rc_t VtnMoMgr::UpdateVnodeIfOperStatus(
+               ConfigKeyVal *ck_vtn,
+               DalDmlIntf *dmi,
+               state_notification notification,
+               bool skip, int if_type) {
+             UPLL_FUNC_TRACE;
+             upll_rc_t result_code = UPLL_RC_SUCCESS;
+             unc_key_type_t if_node_key_type[]= {UNC_KT_VBR_IF, UNC_KT_VRT_IF,
+               UNC_KT_VTEP_IF, UNC_KT_VTUNNEL_IF};
+             ConfigKeyVal *ck_val = NULL;
+             /*  Populating vtnset with vtn names connected
+              *  to given controller name */
+             const unc_key_type_t ktype = if_node_key_type[if_type];
+
+             VnodeChildMoMgr *mgr =
+                 reinterpret_cast<VnodeChildMoMgr *>(
+                     const_cast<MoManager *>
+                     (const_cast<MoManager*>(GetMoManager(ktype))));
+
+             result_code = mgr->GetChildConfigKey(ck_val, ck_vtn);
+             if (result_code != UPLL_RC_SUCCESS) {
+               UPLL_LOG_DEBUG("GetChildConfigKEy failed");
+               return UPLL_RC_ERR_GENERIC;
+             }
+             ConfigVal *cfg_val = NULL;
+             mgr->AllocVal(cfg_val, UPLL_DT_STATE, MAINTBL);
+             ck_val->SetCfgVal(cfg_val);
+
+             switch (ktype) {
+               case UNC_KT_VBR_IF: {
+                 ConfigVal *tmp =
+                     (ck_val->get_cfg_val()) ? ck_val->get_cfg_val()->
+                     get_next_cfg_val() :
+                     NULL;
+                 val_db_vbr_if_st* vbr_if_dt_val =
+                     reinterpret_cast<val_db_vbr_if_st *>
+                     ((tmp != NULL) ? tmp->get_val() : NULL);
+                 if (vbr_if_dt_val == NULL) {
+                   UPLL_LOG_DEBUG("Invalid param");
+                   DELETE_IF_NOT_NULL(ck_val);
+                   return UPLL_RC_ERR_GENERIC;
+                 }
+                 vbr_if_dt_val->vbr_if_val_st.valid[0] = UNC_VF_VALID;
+                 vbr_if_dt_val->vbr_if_val_st.oper_status =
+                     UPLL_OPER_STATUS_UNKNOWN;
+               }
+               break;
+               case UNC_KT_VRT_IF: {
+                 ConfigVal *tmp =
+                     (ck_val->get_cfg_val()) ? ck_val->get_cfg_val()->
+                     get_next_cfg_val() :
+                     NULL;
+                 val_db_vrt_if_st* vrt_if_dt_val =
+                     reinterpret_cast<val_db_vrt_if_st *>
+                     ((tmp != NULL) ? tmp->get_val() : NULL);
+                 if (vrt_if_dt_val == NULL) {
+                   UPLL_LOG_DEBUG("Invalid param");
+                   DELETE_IF_NOT_NULL(ck_val);
+                   return UPLL_RC_ERR_GENERIC;
+                 }
+                 vrt_if_dt_val->vrt_if_val_st.valid[0] = UNC_VF_VALID;
+                 vrt_if_dt_val->vrt_if_val_st.oper_status =
+                     UPLL_OPER_STATUS_UNKNOWN;
+               }
+               break;
+               case UNC_KT_VTEP_IF: {
+                 ConfigVal *tmp =
+                     (ck_val->get_cfg_val()) ? ck_val->get_cfg_val()->
+                     get_next_cfg_val() :
+                     NULL;
+                 val_db_vtep_if_st* vtep_if_dt_val =
+                     reinterpret_cast<val_db_vtep_if_st *>
+                     ((tmp != NULL) ? tmp->get_val() : NULL);
+                 if (vtep_if_dt_val == NULL) {
+                   UPLL_LOG_DEBUG("Invalid param");
+                   DELETE_IF_NOT_NULL(ck_val);
+                   return UPLL_RC_ERR_GENERIC;
+                 }
+                 vtep_if_dt_val->vtep_if_val_st.valid[0] =
+                     UNC_VF_VALID;
+                 vtep_if_dt_val->vtep_if_val_st.oper_status =
+                     UPLL_OPER_STATUS_UNKNOWN;
+               }
+               break;
+               case UNC_KT_VTUNNEL_IF: {
+                 ConfigVal *tmp =
+                     (ck_val->get_cfg_val()) ? ck_val->get_cfg_val()->
+                     get_next_cfg_val() :
+                     NULL;
+                 val_db_vtunnel_if_st* vtunnel_if_dt_val =
+                     reinterpret_cast<val_db_vtunnel_if_st *>
+                     ((tmp != NULL) ? tmp->get_val() : NULL);
+                 if (vtunnel_if_dt_val == NULL) {
+                   UPLL_LOG_DEBUG("Invalid param");
+                   DELETE_IF_NOT_NULL(ck_val);
+                   return UPLL_RC_ERR_GENERIC;
+                 }
+                 vtunnel_if_dt_val->vtunnel_if_val_st.valid[0] =
+                     UNC_VF_VALID;
+                 vtunnel_if_dt_val->vtunnel_if_val_st.oper_status =
+                     UPLL_OPER_STATUS_UNKNOWN;
+               }
+               break;
+               default:
+               UPLL_LOG_DEBUG("OperStatus not supported for this data type");
+               DELETE_IF_NOT_NULL(ck_val);
+               return UPLL_RC_ERR_GENERIC;
+               break;
+             }
+             DbSubOp dbop = { kOpNotRead, kOpMatchCtrlr, kOpInOutNone };
+             result_code = mgr->UpdateConfigDB(ck_val,
+                                               UPLL_DT_STATE,
+                                               UNC_OP_UPDATE,
+                                               dmi,
+                                               &dbop,
+                                               MAINTBL);
+             if (result_code != UPLL_RC_SUCCESS &&
+                 result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+               UPLL_LOG_DEBUG("Error in Updating interface operstatus");
+               DELETE_IF_NOT_NULL(ck_val);
+               return result_code;
+             }
+             DELETE_IF_NOT_NULL(ck_val);
+             return result_code;
+           }
+
+           upll_rc_t VtnMoMgr::RestoreVtnOperStatus(
+               ConfigKeyVal *ck_val,
+               DalDmlIntf *dmi,
+               state_notification notification) {
+             UPLL_FUNC_TRACE;
+             upll_rc_t result_code = UPLL_RC_SUCCESS;
+
+             ConfigKeyVal *ck_vtn = NULL;
+             result_code = GetChildConfigKey(ck_vtn, ck_val);
+             if (result_code != UPLL_RC_SUCCESS) {
+               UPLL_LOG_DEBUG("GetChildConfigKEy failed");
+               return UPLL_RC_ERR_GENERIC;
+             }
+             DbSubOp dbop = {kOpReadSingle, kOpMatchNone,
+               kOpInOutNone};
+             result_code = ReadConfigDB(ck_vtn,
+                                        UPLL_DT_STATE,
+                                        UNC_OP_READ,
+                                        dbop,
+                                        dmi,
+                                        MAINTBL);
+             if (result_code != UPLL_RC_SUCCESS) {
+               UPLL_LOG_DEBUG("ReadConfigDB failed with result_code %d",
+                              result_code);
+               DELETE_IF_NOT_NULL(ck_vtn);
+               return result_code;
+             }
+             result_code = SetOperStatus(ck_vtn, notification, dmi);
+             DELETE_IF_NOT_NULL(ck_vtn);
+             return result_code;
+           }
+
+           upll_rc_t VtnMoMgr::RestoreVtnCtrlrOperStatus(
+               uint8_t *ctrlr_name,
+               DalDmlIntf *dmi,
+               state_notification notification) {
+             UPLL_FUNC_TRACE;
+             upll_rc_t result_code = UPLL_RC_SUCCESS;
+             ConfigKeyVal *ck_vtn = NULL;
+             result_code = GetChildConfigKey(ck_vtn, NULL);
+             if (result_code != UPLL_RC_SUCCESS) {
+               UPLL_LOG_DEBUG("GetChildConfigKey failed");
+               return UPLL_RC_ERR_GENERIC;
+             }
+             SET_USER_DATA_CTRLR(ck_vtn, ctrlr_name);
+             DbSubOp dbop = {kOpReadMultiple, kOpMatchCtrlr,
+               kOpInOutDomain};
+             result_code = ReadConfigDB(ck_vtn,
+                                        UPLL_DT_STATE,
+                                        UNC_OP_READ,
+                                        dbop,
+                                        dmi,
+                                        CTRLRTBL);
+             if (result_code != UPLL_RC_SUCCESS) {
+               UPLL_LOG_DEBUG("ReadConfigDB failed with result_code %d",
+                              result_code);
+               DELETE_IF_NOT_NULL(ck_vtn);
+               return result_code;
+             }
+             while (ck_vtn != NULL) {
+               ConfigKeyVal *ck_vtn1 = ck_vtn->get_next_cfg_key_val();
+               ck_vtn->set_next_cfg_key_val(NULL);
+               val_vtn_ctrlr *ctrlr_val = reinterpret_cast<val_vtn_ctrlr *>
+                   (GetVal(ck_vtn));
+               if (!ctrlr_val) {
+                 UPLL_LOG_DEBUG("val_vtn_ctrlr struct is NULL");
+                 DELETE_IF_NOT_NULL(ck_vtn);
+                 DELETE_IF_NOT_NULL(ck_vtn1);
+                 return UPLL_RC_ERR_GENERIC;
+               }
+               if (notification == kCtrlrDisconnect) {
+                 ctrlr_val->oper_status = UPLL_OPER_STATUS_UNKNOWN;
+                 ctrlr_val->down_count = 0;
+               } else {
+                 if (ctrlr_val->oper_status != UPLL_OPER_STATUS_UNKNOWN) {
+                   DELETE_IF_NOT_NULL(ck_vtn);
+                   ck_vtn = ck_vtn1;
+                   continue;
+                 }
+                 result_code = RestoreVnodeOperStatus(ctrlr_name,
+                                                      ck_vtn,
+                                                      dmi,
+                                                      notification,
+                                                      false);
+                 if (result_code != UPLL_RC_SUCCESS) {
+                   UPLL_LOG_DEBUG("Error in Updating Operstatus on"
+                                  "Controller ReConnect");
+                   DELETE_IF_NOT_NULL(ck_vtn);
+                   DELETE_IF_NOT_NULL(ck_vtn1);
+                   return result_code;
+                 }
+                 result_code = GetVbridgeUnKnownInstance(ck_vtn,
+                                                         ctrlr_name ,
+                                                         dmi);
+                 if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
+                   ctrlr_val->oper_status = UPLL_OPER_STATUS_UNKNOWN;
+                 } else if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                   UPLL_LOG_DEBUG("Error in GetVbridgeUnKnownInstance");
+                   DELETE_IF_NOT_NULL(ck_vtn);
+                   DELETE_IF_NOT_NULL(ck_vtn1);
+                   return result_code;
+                 }
+                 switch (ctrlr_val->oper_status) {
+                   case UPLL_OPER_STATUS_UNKNOWN:
+                     notification = kCtrlrDisconnect;
+                     break;
+                   case UPLL_OPER_STATUS_DOWN:
+                     notification = kCtrlrReconnectIfDown;
+                     break;
+                   case UPLL_OPER_STATUS_UP:
+                     notification = kCtrlrReconnectIfUp;
+                     break;
+                   default:
+                     UPLL_LOG_DEBUG("Unexpected OperStatus");
+                     DELETE_IF_NOT_NULL(ck_vtn);
+                     DELETE_IF_NOT_NULL(ck_vtn1);
+                     return UPLL_RC_ERR_GENERIC;
+                 }
+               }
+               UPLL_LOG_DEBUG("ck_vtn %s\n", ck_vtn->ToStrAll().c_str());
+               DbSubOp dbop = { kOpNotRead,
+                 kOpMatchCtrlr | kOpMatchDomain ,
+                 kOpInOutNone };
+               result_code = UpdateConfigDB(ck_vtn,
+                                            UPLL_DT_STATE,
+                                            UNC_OP_UPDATE,
+                                            dmi,
+                                            &dbop,
+                                            CTRLRTBL);
+               if (result_code != UPLL_RC_SUCCESS) {
+                 UPLL_LOG_DEBUG("Error in Updating VTN entries");
+                 DELETE_IF_NOT_NULL(ck_vtn);
+                 DELETE_IF_NOT_NULL(ck_vtn1);
+                 return result_code;
+               }
+               UPLL_LOG_DEBUG("ck_vtn %s\n", ck_vtn->ToStrAll().c_str());
+               result_code = RestoreVtnOperStatus(ck_vtn, dmi, notification);
+               if (result_code != UPLL_RC_SUCCESS) {
+                 UPLL_LOG_DEBUG("Returning error %d\n", result_code);
+                 DELETE_IF_NOT_NULL(ck_vtn);
+                 DELETE_IF_NOT_NULL(ck_vtn1);
+                 break;
+               }
+               DELETE_IF_NOT_NULL(ck_vtn);
+               ck_vtn = ck_vtn1;
+             }
+             return result_code;
+           }
+
+           upll_rc_t VtnMoMgr::RestoreVnodeOperStatus(
+               uint8_t *ctrlr_id,
+               ConfigKeyVal *ck_vtn_ctrlr,
+               DalDmlIntf *dmi,
+               state_notification notification,
+               bool skip) {
+             UPLL_FUNC_TRACE;
+             upll_rc_t result_code = UPLL_RC_SUCCESS;
+             uint32_t down_count = 0;
+
+             result_code =  RestoreVnodeIfAndVtnCtrlr(ctrlr_id,
+                                                      ck_vtn_ctrlr,
+                                                      dmi,
+                                                      notification,
+                                                      down_count);
+             if (result_code != UPLL_RC_SUCCESS) {
+               UPLL_LOG_DEBUG("Error in Updating OperStatus");
+               return result_code;
+             }
+             val_vtn_ctrlr *tmp_ctrlr = reinterpret_cast<val_vtn_ctrlr*>
+                 (GetVal(ck_vtn_ctrlr));
+             if (tmp_ctrlr == NULL) {
+               UPLL_LOG_DEBUG("Error in retrieving ctrlr val struct");
+               return UPLL_RC_ERR_GENERIC;
+             }
+             tmp_ctrlr->down_count = down_count;
+             tmp_ctrlr->oper_status = (down_count > 0)?UPLL_OPER_STATUS_DOWN:
+                 UPLL_OPER_STATUS_UP;
+#if 0
+             DbSubOp dbop = { kOpNotRead, kOpMatchCtrlr, kOpInOutNone };
+             result_code = UpdateConfigDB(ck_vtn_ctrlr,
+                                          UPLL_DT_STATE,
+                                          UNC_OP_UPDATE,
+                                          dmi,
+                                          &dbop,
+                                          CTRLRTBL);
+             DELETE_IF_NOT_NULL(ck_vtn_ctrlr);
+#endif
+             return result_code;
+           }
+
+           upll_rc_t VtnMoMgr::RestoreVnodeIfAndVtnCtrlr(
+               uint8_t *ctrlr_id,
+               ConfigKeyVal *ck_vtn,
+               DalDmlIntf *dmi,
+               state_notification notifn,
+               uint32_t &down_count) {
+             UPLL_FUNC_TRACE;
+             upll_rc_t result_code = UPLL_RC_SUCCESS;
+             unc_key_type_t node_key_type[]= {UNC_KT_VBRIDGE, UNC_KT_VROUTER};
+             for (int node_count = 0;
+                  node_count < static_cast<int>
+                  (sizeof(node_key_type)/sizeof(unc_key_type_t));
+                  node_count++) {
+               const unc_key_type_t ktype = node_key_type[node_count];
+               ConfigKeyVal *ck_vnode = NULL;
+
+               VnodeMoMgr *mgr =
+                   reinterpret_cast<VnodeMoMgr *>(
+                       const_cast<MoManager *>
+                       (const_cast<MoManager*>(GetMoManager(ktype))));
+
+               result_code = mgr->GetChildConfigKey(ck_vnode, ck_vtn);
+               if (result_code != UPLL_RC_SUCCESS) {
+                 UPLL_LOG_DEBUG("GetChildConfigKey failed");
+                 return UPLL_RC_ERR_GENERIC;
+               }
+               SET_USER_DATA_CTRLR(ck_vnode, ctrlr_id);
+               DbSubOp dbop = {kOpReadMultiple, kOpMatchCtrlr,
+                 kOpInOutNone};
+               result_code = mgr->ReadConfigDB(ck_vnode,
+                                               UPLL_DT_STATE,
+                                               UNC_OP_READ,
+                                               dbop,
+                                               dmi,
+                                               MAINTBL);
+               if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                 result_code = UPLL_RC_SUCCESS;
+                 DELETE_IF_NOT_NULL(ck_vnode);
+                 continue;
+               } else if (result_code != UPLL_RC_SUCCESS) {
+                 UPLL_LOG_DEBUG("ReadConfigDB failed with result_code %d",
+                                result_code);
+                 DELETE_IF_NOT_NULL(ck_vnode);
+                 return result_code;
+               }
+               unc_key_type_t node_key_type[]= {UNC_KT_VBR_IF, UNC_KT_VRT_IF};
+               while (ck_vnode != NULL) {
+                 ConfigKeyVal *ckv_tmp = ck_vnode->get_next_cfg_key_val();
+                 ck_vnode->set_next_cfg_key_val(NULL);
+                 VnodeMoMgr *node_mgr =
+                     reinterpret_cast<VnodeMoMgr *>(
+                         const_cast<MoManager *>
+                         (const_cast<MoManager*>(
+                                 GetMoManager(ck_vnode->get_key_type()))));
+                 VnodeChildMoMgr *if_mgr =
+                     reinterpret_cast<VnodeChildMoMgr *>(
+                         const_cast<MoManager *>
+                         (const_cast<MoManager*>(
+                                 GetMoManager(node_key_type[node_count]))));
+#if 0
+                 result_code = if_mgr->GetChildConfigKey(ck_if, ck_vnode);
+                 if (result_code != UPLL_RC_SUCCESS) {
+                   UPLL_LOG_DEBUG("GetChildConfigKey failed");
+                   DELETE_IF_NOT_NULL(ckv_tmp);
+                   DELETE_IF_NOT_NULL(ck_vnode);
+                   return UPLL_RC_ERR_GENERIC;
+                 }
+                 result_code = if_mgr->UpdateVnodeIfOperStatus(ck_if,
+                                                               dmi,
+                                                               notifn);
+                 DELETE_IF_NOT_NULL(ck_if);
+#else
+                 result_code = if_mgr->UpdateVnodeIfOperStatus(ck_vnode,
+                                                               dmi,
+                                                               notifn);
+#endif
+                 if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                   /* if key_type is VBRIDGE and it is a stand alone vbridge,
+                    * then check if that VBRIDGE has default
+                    * vlanmap configured under it */
+                   state_notification notification = kCtrlrReconnectIfDown;
+                   if (ck_vnode->get_key_type() == UNC_KT_VBRIDGE) {
+                     VlanMapMoMgr *vlan_mgr =
+                         reinterpret_cast<VlanMapMoMgr *>(
+                             const_cast<MoManager *>
+                             (const_cast<MoManager*>(
+                                     GetMoManager(UNC_KT_VBR_VLANMAP))));
+                     result_code = vlan_mgr->CheckIfVnodeisVlanmapped(ck_vnode,
+                                                                      dmi);
+                     if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
+                       //  if stand alone VBRIDGE has default vlan configured,
+                       //  then operstatus of that VBRIDGE is UP
+                       notification = kCtrlrReconnectIfUp;
+                     } else if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                       UPLL_LOG_DEBUG("Error in Reading VlanMap DB");
+                       DELETE_IF_NOT_NULL(ck_vnode);
+                       DELETE_IF_NOT_NULL(ckv_tmp);
+                       return result_code;
+                     }
+                   }
+                   result_code = node_mgr->UpdateOperStatus(ck_vnode,
+                                                            dmi,
+                                                            notification,
+                                                            true,
+                                                            true);
+                   if (result_code != UPLL_RC_SUCCESS) {
+                     UPLL_LOG_DEBUG("Error in Updating OperStatus");
+                     DELETE_IF_NOT_NULL(ckv_tmp);
+                     DELETE_IF_NOT_NULL(ck_vnode);
+                     return result_code;
+                   }
+                   DELETE_IF_NOT_NULL(ck_vnode);
+                   ck_vnode = ckv_tmp;
+                   down_count = down_count + 1;
+                   result_code = UPLL_RC_SUCCESS;
+                   continue;
+                 } else if (result_code != UPLL_RC_SUCCESS) {
+                   UPLL_LOG_DEBUG("UpdateVnodeIfOperStatus failed "
+                                  "with result_code %d",
+                                  result_code);
+                   DELETE_IF_NOT_NULL(ckv_tmp);
+                   DELETE_IF_NOT_NULL(ck_vnode);
+                   return result_code;
+                 }
+                 uint32_t cur_instance_count = 0;
+                 ConfigKeyVal *ck_vnode_tmp = NULL;
+
+                 result_code = node_mgr->GetCkvUninit(ck_vnode_tmp,
+                                                      ck_vnode,
+                                                      dmi);
+                 if (result_code != UPLL_RC_SUCCESS) {
+                   UPLL_LOG_DEBUG("Returning error %d\n", result_code);
+                   DELETE_IF_NOT_NULL(ckv_tmp);
+                   DELETE_IF_NOT_NULL(ck_vnode);
+                   return result_code;
+                 }
+                 val_db_vbr_st *vnode_stval =
+                     reinterpret_cast<val_db_vbr_st *>
+                     (GetStateVal(ck_vnode_tmp));
+                 if (vnode_stval == NULL) {
+                   UPLL_LOG_DEBUG("Error in fetching in state structure");
+                   DELETE_IF_NOT_NULL(ck_vnode_tmp);
+                   DELETE_IF_NOT_NULL(ckv_tmp);
+                   DELETE_IF_NOT_NULL(ck_vnode);
+                   return UPLL_RC_ERR_GENERIC;
+                 }
+                 vnode_stval->vbr_val_st.oper_status = UPLL_OPER_STATUS_DOWN;
+                 vnode_stval->vbr_val_st.valid[UPLL_IDX_OPER_STATUS_VBRS] =
+                     UNC_VF_VALID;
+
+                 result_code = node_mgr->GetInstanceCount(ck_vnode_tmp, NULL,
+                                                          UPLL_DT_STATE,
+                                                          &cur_instance_count,
+                                                          dmi,
+                                                          MAINTBL);
+                 if (result_code != UPLL_RC_SUCCESS) {
+                   UPLL_LOG_DEBUG("GetInstanceCount failed : %d\n",
+                                  result_code);
+                   DELETE_IF_NOT_NULL(ck_vnode_tmp);
+                   DELETE_IF_NOT_NULL(ckv_tmp);
+                   DELETE_IF_NOT_NULL(ck_vnode);
+                   return result_code;
+                 }
+                 down_count += cur_instance_count;
+                 if (ck_vnode->get_key_type() == UNC_KT_VBRIDGE) {
+                   result_code = UpdateVbridgeIfUnKnownInstance(ck_vnode,
+                                                                ctrlr_id,
+                                                                dmi);
+                   if (result_code != UPLL_RC_SUCCESS) {
+                     UPLL_LOG_DEBUG("Error in UpdateVbridgeIfUnKnownInstance");
+                     DELETE_IF_NOT_NULL(ck_vnode_tmp);
+                     DELETE_IF_NOT_NULL(ckv_tmp);
+                     DELETE_IF_NOT_NULL(ck_vnode);
+                     return result_code;
+                   }
+                 }
+                 DELETE_IF_NOT_NULL(ck_vnode_tmp);
+                 DELETE_IF_NOT_NULL(ck_vnode);
+                 ck_vnode = ckv_tmp;
+               }
+             }
+             return result_code;
+           }
+
+           upll_rc_t
+               VtnMoMgr:: VtnRenameMerge(ConfigKeyVal *ikey,
+                                         ConfigKeyVal *okey,
+                                         DalDmlIntf *dmi) {
+                 UPLL_FUNC_TRACE;
+                 upll_rc_t result_code = UPLL_RC_SUCCESS;
+                 ConfigKeyVal *temp_key = NULL;
+                 ConfigKeyVal *tkey = NULL;
+                 if (!ikey || !okey
+                     || !(ikey->get_key()) || !(okey->get_key())) {
+                   UPLL_LOG_DEBUG("Input is NULL");
+                   return UPLL_RC_ERR_GENERIC;
+                 }
+                 DbSubOp dbop = {kOpReadMultiple, kOpMatchNone, kOpInOutNone};
+                 unc_key_type_t key[]= {UNC_KT_VTN_FLOWFILTER,
+                   UNC_KT_VTN_FLOWFILTER_ENTRY,
+                   UNC_KT_VTN_POLICINGMAP };
+                 /* Remove flow filter and
+                  * policing map from renaming VTN
+                  */
+                 for (unsigned int index = 0;
+                      index < sizeof(key)/sizeof(key[0]); index++) {
+                   const unc_key_type_t ktype = key[index];
+                   MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(
+                       const_cast<MoManager *>(GetMoManager(ktype)));
+                   if (!mgr) {
+                     UPLL_LOG_DEBUG("Instance is NULL");
+                     return UPLL_RC_ERR_GENERIC;
+                   }
+                   result_code = mgr->GetChildConfigKey(temp_key, ikey);
+                   if (UPLL_RC_SUCCESS != result_code) {
+                     UPLL_LOG_DEBUG("GetChildConfigKey Failed");
+                     return result_code;
+                   }
+                   result_code = mgr->ReadConfigDB(temp_key,
+                                                   UPLL_DT_IMPORT,
+                                                   UNC_OP_READ,
+                                                   dbop,
+                                                   dmi,
+                                                   MAINTBL);
+                   if (UPLL_RC_SUCCESS != result_code) {
+                     if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+                       UPLL_LOG_DEBUG("ReadConfigDB fail (%d)", result_code);
+                       DELETE_IF_NOT_NULL(temp_key);
+                       return result_code;
+                     } else {
+                       DELETE_IF_NOT_NULL(temp_key);
+                       continue;
+                     }
+                   }
+                   ConfigKeyVal *start_ptr = temp_key;
+                   while (start_ptr) {
+                     if (ktype == UNC_KT_VTN_POLICINGMAP) {
+                       UPLL_LOG_DEBUG("Renamed VTN has policingmap"
+                                      ":RenameMerge Failed");
+                       DELETE_IF_NOT_NULL(temp_key);
+                       return UPLL_RC_ERR_MERGE_CONFLICT;
+                     }
+                     result_code = mgr->GetChildConfigKey(tkey, start_ptr);
+                     if (UPLL_RC_SUCCESS != result_code) {
+                       UPLL_LOG_DEBUG("GetChildConfigKey Failed");
+                       DELETE_IF_NOT_NULL(temp_key);
+                       return result_code;
+                     }
+                     /* Remove the old VTN name matching entry from vtn
+                      * flowfilter or vtn policingmap Main table
+                      */
+                     result_code = mgr->UpdateConfigDB(tkey,
+                                                       UPLL_DT_IMPORT,
+                                                       UNC_OP_DELETE,
+                                                       dmi,
+                                                       &dbop,
+                                                       MAINTBL);
+                     if (UPLL_RC_SUCCESS != result_code) {
+                       UPLL_LOG_DEBUG("UpdateConfigDB failed %d", result_code);
+                       DELETE_IF_NOT_NULL(tkey);
+                       DELETE_IF_NOT_NULL(temp_key);
+                       return result_code;
+                     }
+                     DELETE_IF_NOT_NULL(tkey);
+                     start_ptr = start_ptr->get_next_cfg_key_val();
+                   }
+                   DELETE_IF_NOT_NULL(temp_key);
+                 }
+                 return UPLL_RC_SUCCESS;
+               }
+           upll_rc_t VtnMoMgr::UpdateVbridgeIfUnKnownInstance(
+               ConfigKeyVal *ck_vnode,
+               uint8_t *ctrlr_id,
+               DalDmlIntf *dmi) {
+             UPLL_FUNC_TRACE;
+             ConfigKeyVal *ck_vnode_if = NULL;
+             upll_rc_t result_code = UPLL_RC_SUCCESS;
+             VnodeChildMoMgr *node_if_mgr =
+                 reinterpret_cast<VnodeChildMoMgr *>(
+                     const_cast<MoManager *>
+                     (const_cast<MoManager*>(
+                             GetMoManager(UNC_KT_VBR_IF))));
+             result_code = node_if_mgr->GetCkvUninit(ck_vnode_if,
+                                                     ck_vnode,
+                                                     dmi);
+             SET_USER_DATA_CTRLR(ck_vnode_if, ctrlr_id);
+             if (result_code != UPLL_RC_SUCCESS) {
+               UPLL_LOG_DEBUG("Returning error %d\n", result_code);
+               return result_code;
+             }
+             val_db_vbr_if_st *vnode_if_stval =
+                 reinterpret_cast<val_db_vbr_if_st *>
+                 (GetStateVal(ck_vnode_if));
+             if (vnode_if_stval == NULL) {
+               UPLL_LOG_DEBUG("Error in fetching in state structure");
+               DELETE_IF_NOT_NULL(ck_vnode_if);
+               return UPLL_RC_ERR_GENERIC;
+             }
+             vnode_if_stval->vbr_if_val_st.oper_status =
+                 UPLL_OPER_STATUS_UNKNOWN;
+             vnode_if_stval->vbr_if_val_st.valid[UPLL_IDX_OPER_STATUS_VBRIS] =
+                 UNC_VF_VALID;
+
+             DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutNone };
+             result_code = node_if_mgr->UpdateConfigDB(ck_vnode_if,
+                                                       UPLL_DT_STATE,
+                                                       UNC_OP_READ,
+                                                       dmi,
+                                                       &dbop,
+                                                       MAINTBL);
+             DELETE_IF_NOT_NULL(ck_vnode_if);
+             if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
+               VnodeMoMgr *node_mgr =
+                   reinterpret_cast<VnodeMoMgr *>(
+                       const_cast<MoManager *>
+                       (const_cast<MoManager*>(
+                               GetMoManager(UNC_KT_VBRIDGE))));
+               val_db_vbr_st *vnode_stval = reinterpret_cast<val_db_vbr_st *>
+                   (GetStateVal(ck_vnode));
+               if (vnode_stval == NULL) {
+                 UPLL_LOG_DEBUG("Error in fetching in state structure");
+                 return UPLL_RC_ERR_GENERIC;
+               }
+               vnode_stval->vbr_val_st.oper_status = UPLL_OPER_STATUS_UNKNOWN;
+               vnode_stval->vbr_val_st.valid[UPLL_IDX_OPER_STATUS_VBRS] =
+                   UNC_VF_VALID;
+
+               result_code = node_mgr->UpdateConfigDB(ck_vnode,
+                                                      UPLL_DT_STATE,
+                                                      UNC_OP_UPDATE,
+                                                      dmi,
+                                                      &dbop,
+                                                      MAINTBL);
+               if (result_code != UPLL_RC_SUCCESS) {
+                 UPLL_LOG_DEBUG("Error in Updating Vbridge DB");
+                 return result_code;
+               }
+             }
+             return (result_code ==
+                     UPLL_RC_ERR_NO_SUCH_INSTANCE? UPLL_RC_SUCCESS:
+                     result_code);
+           }
+           upll_rc_t VtnMoMgr::GetVbridgeUnKnownInstance(
+               ConfigKeyVal *ck_vtn,
+               uint8_t *ctrlr_id,
+               DalDmlIntf *dmi) {
+             UPLL_FUNC_TRACE;
+             ConfigKeyVal *ck_vnode = NULL;
+             upll_rc_t result_code = UPLL_RC_SUCCESS;
+             VnodeMoMgr *node_mgr =
+                 reinterpret_cast<VnodeMoMgr *>(
+                     const_cast<MoManager *>
+                     (const_cast<MoManager*>(
+                             GetMoManager(UNC_KT_VBRIDGE))));
+             result_code = node_mgr->GetCkvUninit(ck_vnode, ck_vtn, dmi);
+             SET_USER_DATA_CTRLR(ck_vnode, ctrlr_id);
+             if (result_code != UPLL_RC_SUCCESS) {
+               UPLL_LOG_DEBUG("Returning error %d\n", result_code);
+               return result_code;
+             }
+             val_db_vbr_st *vnode_stval = reinterpret_cast<val_db_vbr_st *>
+                 (GetStateVal(ck_vnode));
+             if (vnode_stval == NULL) {
+               UPLL_LOG_DEBUG("Error in fetching in state structure");
+               DELETE_IF_NOT_NULL(ck_vnode);
+               return UPLL_RC_ERR_GENERIC;
+             }
+             vnode_stval->vbr_val_st.oper_status = UPLL_OPER_STATUS_UNKNOWN;
+             vnode_stval->vbr_val_st.valid[UPLL_IDX_OPER_STATUS_VBRS] =
+                 UNC_VF_VALID;
+
+             DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr, kOpInOutNone };
+             result_code = node_mgr->UpdateConfigDB(ck_vnode,
+                                                    UPLL_DT_STATE,
+                                                    UNC_OP_READ,
+                                                    dmi,
+                                                    &dbop,
+                                                    MAINTBL);
+             DELETE_IF_NOT_NULL(ck_vnode);
+             return result_code;
+           }
 
 }  // namespace kt_momgr
 }  // namespace upll
index 24dd70754ffad49a6faec060a88334bdae05e595..f7e687389a55d42e85d7b09934dc57e90fb2abbb 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -12,6 +12,7 @@
 
 #include <string>
 #include <set>
+#include <list>
 #include "momgr_impl.hh"
 
 namespace unc {
@@ -28,597 +29,615 @@ using unc::upll::ipc_util::IpctSt;
 
 
 class VtnMoMgr : public MoMgrImpl {
-  private:
-    static unc_key_type_t vtn_child[];
-    static BindInfo vtn_bind_info[];
-    static BindInfo vtn_rename_bind_info[];
-    static BindInfo vtn_controller_bind_info[];
-    static BindInfo key_vtn_ctrlrtbl_bind_info[];
-    static BindInfo key_vtn_maintbl_bind_info[];
-    static BindInfo key_vtn_renametbl_bind_info[];
-
-    upll_rc_t ValidateAttribute(ConfigKeyVal *kval, 
-                                DalDmlIntf *dmi,
-                                IpcReqRespHeader *req = NULL);
-    /**
-     * @brief      Method to check if individual portions of a key are valid
-     *
-     * @param[in/out]  ikey                 pointer to ConfigKeyVal referring to a UNC resource
-     * @param[in]      index                db index associated with the variable
-     *
-     * @retval         true                 input key is valid
-     * @retval         false                input key is invalid.
-     **/
-    bool IsValidKey(void *key, uint64_t index);
-
-    /**
-     * @brief  Filters the attributes which need not be sent to controller
-     *
-     * @param[in/out]  val1   first record value instance.
-     * @param[in]      val2   second record value instance.
-     * @param[in]      audit  Not used for VTN
-     * @param[in]      op     Operation to be performed
-     *
-     **/
-    bool FilterAttributes(void *&val1, void *val2, bool audit_status,
-                          unc_keytype_operation_t op);
-    bool IsAllInvalidAttributes(const val_vtnstation_controller_st *val);
-
-    /** Not used for VTN **/
-    bool CompareValidValue(void *&val1, void *val2, bool audit);
-    /*
-     * @brief      Method to get a configkeyval of the parent keytype 
-     *
-     * @param[in/out]  pkey           pointer to parent ConfigKeyVal 
-     * @param[in]      ck_vtn         pointer to the child configkeyval from 
-     * which the parent configkey val is obtained.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t GetParentConfigKey(ConfigKeyVal *&pkey, ConfigKeyVal *ck_vtn) {
-      return UPLL_RC_ERR_GENERIC;
-    }
-    upll_rc_t SwapKeyVal(ConfigKeyVal *ikey, ConfigKeyVal *&okey,
-                         DalDmlIntf *dmi, uint8_t *ctrlr, bool &no_rename);
-    upll_rc_t UpdateVtnConfigStatus(ConfigKeyVal *vtn_key,
-                         unc_keytype_operation_t op, uint32_t driver_result,
-                         ConfigKeyVal *nreq,DalDmlIntf *dmi);
-    upll_rc_t UpdateConfigStatus(ConfigKeyVal *req, unc_keytype_operation_t op,
-                                 uint32_t driver_result, ConfigKeyVal *upd_key,
-                                 DalDmlIntf *dmi, ConfigKeyVal *ctrlr_key);
-    /**
-     * @brief  Update config status for commit result and vote result.
-     *
-     * @param[in/out]  ckv_running  ConfigKeyVal instance.
-     * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
-     * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
-     *
-     **/
-    upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
-                                      uuc::UpdateCtrlrPhase phase,
-                                      ConfigKeyVal *&ckv_running);
-    upll_rc_t UpdateCtrlrConfigStatus(unc_keytype_configstatus_t cs_status,
-                                      uuc::UpdateCtrlrPhase phase,
-                                      ConfigKeyVal *&ckv_running);
-    upll_rc_t TxUpdateProcess(ConfigKeyVal *ck_main, IpcResponse *resp, 
-                              unc_keytype_operation_t op,
-                              DalDmlIntf *dmi, controller_domain *ctrlr_dom);
-    /**
-     * @brief  Allocates for the specified val in the given configuration in the     * specified table.   
-     *
-     * @param[in/out]  ck_val   Reference pointer to configval structure 
-     *                          allocated.      
-     * @param[in]      dt_type  specifies the configuration candidate/running/
-     *                          state 
-     * @param[in]      tbl      specifies if the corresponding table is the  
-     *                          main table / controller table or rename table.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
-                       MoMgrTables tbl = MAINTBL);
-    /**
-     * @brief  Gets the valid array position of the variable in the value 
-     *         structure from the table in the specified configuration  
-     *
-     * @param[in]     val      pointer to the value structure 
-     * @param[in]     indx     database index for the variable
-     * @param[out]    valid    position of the variable in the valid array - 
-     *                          NULL if valid does not exist.
-     * @param[in]     dt_type  specifies the configuration
-     * @param[in]     tbl      specifies the table containing the given value 
-     *
-     **/
-    upll_rc_t GetValid(void *val, uint64_t indx, uint8_t *&valid,
-                       upll_keytype_datatype_t dt_type, MoMgrTables tbl);
-    /**
-     * @brief  Duplicates the input configkeyval including the key and val.  
-     * based on the tbl specified.
-     *
-     * @param[in]  okey   Output Configkeyval - allocated within the function
-     * @param[in]  req    Input ConfigKeyVal to be duplicated.
-     * @param[in]  tbl    specifies if the val structure belongs to the main table/ controller table or rename table.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
-                              MoMgrTables tbl = MAINTBL);
-    upll_rc_t MappingvExtTovBr(ConfigKeyVal *ikey, IpcReqRespHeader *req,
-                               DalDmlIntf *dmi, uint32_t *&count);
-
-    upll_rc_t ReadSingleCtlrlStation(IpcReqRespHeader *header,
-                                             ConfigKeyVal *ikey,
-                                              DalDmlIntf *dmi,
-                                              uint32_t *count);
-    upll_rc_t ReadSingleCtlrlVtnMapping(IpcReqRespHeader *header,
-                                             ConfigKeyVal *ikey,
-                                              DalDmlIntf *dmi,
-                                              uint32_t *count);
-    /**
-     * @brief     Method used in Delete opertaion. Its semantic checks
-     *            for the VTN key.
-     *
-     * @param[in]  ikey                        key and value structure.
-     * @param[in]  dt_type                     key  type.
-     * @param[in]  dmi                         Pointer to DalDmlIntf Class.
-     *
-     * @retval     UPLL_RC_SUCCESS             Successfull completion.
-     * @retval     UPLL_RC_ERR_GENERIC         Failure case.
-     * @retval     UPLL_RC_ERR_CFG_SEMANTIC    Failue dueto Semantic.
-     */
-    upll_rc_t IsReferenced(ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
-                           DalDmlIntf *dmi);
-    /**
-     * @brief     Method used in Delete opertaion. Its Create the Vtunnel 
-     *            Configkey and copy the VTN name from the ikey to Vtunnel
-     *            Value structure.
-     *
-     * @param[in]  ikey                        key and value structure.
-     * @param[in]  dt_type                     key  type.
-     * @param[in]  dmi                         Pointer to DalDmlIntf Class.
-     *
-     * @retval     UPLL_RC_SUCCESS             Successfull completion.
-     * @retval     UPLL_RC_ERR_GENERIC         Failure case.
-     * @retval     UPLL_RC_ERR_CFG_SEMANTIC    Failue dueto Semantic.
-     */
-
-    upll_rc_t CreateVtunnelKey(ConfigKeyVal *ikey, ConfigKeyVal *&okey);
-
-    /**
-     * @Brief   Validates the syntax of the specified key and value structure
-     *          for KT_VTN keytype
-     *
-     * @param[in]  req    This structure contains
-     *                     IpcReqRespHeader(first 8 fields of
-     *                     input request structure).
-     * @param[in]  ikey   ikey contains key and value structure.
-     *
-     * @retval   UPLL_RC_SUCCESS               Successful.
-     * @retval   UPLL_RC_ERR_CFG_SYNTAX        Syntax error.
-     * @retval   UPLL_RC_ERR_NO_SUCH_INSTANCE  key_vtn is not available.
-     * @retval   UPLL_RC_ERR_GENERIC           Generic failure.
-     * @retval   UPLL_RC_ERR_INVALID_OPTION1   option1 is not valid.
-     * @retval   UPLL_RC_ERR_INVALID_OPTION2   option2 is not valid.
-     */
-    upll_rc_t ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *kval);
-
-    /**
-     * @Brief  Checks if the specified key type(KT_VTN) and
-     *         associated attributes are supported on the given controller,
-     *         based on the valid flag
-     *
-     * @param[in]  req               This structure contains IpcReqRespHeader
-     *                               (first 8 fields of input request structure).
-     * @param[in]  ikey              ikey contains key and value structure.
-     *
-     * @retval   UPLL_RC_SUCCESS               Validation succeeded.
-     * @retval   UPLL_RC_ERR_GENERIC           Validation failure.
-     * @retval   UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR  Attribute not supported.
-     */
-    upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                                  const char *cntrl_id = NULL);
-
-    /**
-     * @Brief  Checks if the specified key type and
-     *         associated attributes are supported on the given controller,
-     *         based on the valid flag.
-     *
-     * @param[in]  vtn_val         KEY_VTN value structure.
-     * @param[in]  attrs           List of supported attribute from CAPA API.
-     * @param[in]  operation       Operation name.
-     *
-     * @retval  UPLL_RC_SUCCESS                      validation succeeded.
-     * @retval  UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR   Attribute not supported.
-     * @retval  UPLL_RC_ERR_GENERIC                  Generic failure.
-     */
-    upll_rc_t ValVtnAttributeSupportCheck(val_vtn_t *vtn_val,
-                                          const uint8_t *attrs,
-                                          uint32_t operation);
-
-    /**
-     * @Brief  Validates the syntax for KT_VTN keytype value structure.
-     *
-     * @param[in]  val_vtn  KT_VTN value structure.
-     * @param[in]  operation  Operation type.
-     *
-     * @retval  UPLL_RC_SUCCESS               validation succeeded.
-     * @retval  UPLL_RC_ERR_CFG_SYNTAX        validation failed.
-     */
-    upll_rc_t ValidateVtnValue(val_vtn_t *vtn_val, uint32_t operation);
-
-    /**
-     * @Brief  Validates the syntax for KT_VTN Rename structure.
-     *
-     * @param[in]  val_vtn  KT_VTN Rename structure.
-     *
-     * @retval  UPLL_RC_SUCCESS         validation succeeded.
-     * @retval  UPLL_RC_ERR_CFG_SYNTAX  validation failed.
-     */
-    upll_rc_t ValidateVtnRenameValue(val_rename_vtn *vtn_rename);
-
-    /**
-     * @Brief  Validates the syntax of the specified key and value structure
-     *        for KT_VTNSTATION_CONTROLLER keytype
-     *
-     * @param[in]  req    This structure contains IpcReqRespHeader
-     *                    (first 8 fields of input request structure).
-     * @param[in]  ikey   ikey contains key and value structure.
-     *
-     * @retval  UPLL_RC_SUCCESS               Successful.
-     * @retval  UPLL_RC_ERR_CFG_SYNTAX        Syntax error.
-     * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE  key_vtnstation_controller
-     *                                        is not available.
-     * @retval  UPLL_RC_ERR_GENERIC           Generic failure.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION1   option1 is not valid.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION2   option2 is not valid.
-     **/
-    upll_rc_t ValidateMessageForVtnStnCtrlr(IpcReqRespHeader *req,
-                                            ConfigKeyVal *ikey);
-
-    /**
-     * @Brief  Validates the syntax of the specified key and value structure
-     *         for KT_VTN_MAPPING_CONTROLLER keytype
-     *
-     * @param[in]  req    This structure contains IpcReqRespHeader
-     *                    (first 8 fields of input request structure).
-     * @param[in]  ikey   ikey contains key and value structure.
-     *
-     * @retval  UPLL_RC_SUCCESS               Successful.
-     * @retval  UPLL_RC_ERR_CFG_SYNTAX        Syntax error.
-     * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE  key_vtn_mapping_controller 
-     *                                        is not available.
-     * @retval  UPLL_RC_ERR_GENERIC           Generic failure.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION1   option1 is not valid.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION2   option2 is not valid.
-     **/
-    upll_rc_t ValidateMessageForVtnMapCtrlr(IpcReqRespHeader *req,
-                                            ConfigKeyVal *ikey);
-
-    /*
-     * @Brief  Validates the syntax for KT_VTNSTATION_CONTROLLER 
-     *         Keytype Key structure.
-     *
-     * @param[in]  val_vtn  KT_VTN key structure.
-     * @param[in]  operation operation type.
-     *
-     * @retval  UPLL_RC_SUCCESS         validation succeeded.
-     * @retval  UPLL_RC_ERR_CFG_SYNTAX  validation failed.
-     *
-     **/
-    upll_rc_t ValidateVtnStnCtrlrKey(key_vtnstation_controller *vtn_ctrlr_key,
-                                     unc_keytype_operation_t operation);
-
-    /*
-     * @Brief  Validates the syntax for KT_VTN_MAPPING_CONTROLLER Keytype Key structure.
-     *
-     * @param[in]  val_vtn  KT_VTN_MAPPING_CONTROLLER key structure.
-     * @param[in]  operation Operation type.
-     *
-     * @retval  UPLL_RC_SUCCESS         validation succeeded.
-     * @retval  UPLL_RC_ERR_CFG_SYNTAX  validation failed.
-     *
-     **/
-    upll_rc_t ValidateVtnMapCtrlrKey(key_vtn_controller *vtn_ctrlr_key,
-                                     unc_keytype_operation_t operation);
-
-  protected:
-    /* @brief         This method invoke when the VTN merge hapeening between
-     *                Running and DT import. This will checks the vnode name 
-     *                unique or not and semantic checks like IP Address, Mac 
-     *                Address and network host address. 
-     *              
-     * @param[in]     keytype       UNC KEY TYPE
-     * @param[in/out] ctrlr_id      Controller ID                    
-     * @param[in]     conflict_ckv  key and value structure 
-     * @param[in]     dal    Pointer to the DalDmlIntf(DB Interface)
-     * 
-     * @retval  UPLL_RC_SUCCESS                    Completed successfully.
-     * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
-     * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
-     * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
-     * @retval  UPLL_RC_ERR_MERGE_CONFLICT         Semantic check error.
-     * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist 
-     *
-     **/
-    upll_rc_t MergeValidateChildren(ConfigKeyVal *import_ckval,
+ private:
+  static unc_key_type_t vtn_child[];
+  static BindInfo vtn_bind_info[];
+  static BindInfo vtn_rename_bind_info[];
+  static BindInfo vtn_controller_bind_info[];
+  static BindInfo key_vtn_ctrlrtbl_bind_info[];
+  static BindInfo key_vtn_maintbl_bind_info[];
+  static BindInfo key_vtn_renametbl_bind_info[];
+
+  upll_rc_t ValidateAttribute(ConfigKeyVal *kval,
+                              DalDmlIntf *dmi,
+                              IpcReqRespHeader *req = NULL);
+  /**
+   * @brief      Method to check if individual portions of a key are valid
+   *
+   * @param[in/out]  ikey                 pointer to ConfigKeyVal referring to a UNC resource
+   * @param[in]      index                db index associated with the variable
+   *
+   * @retval         true                 input key is valid
+   * @retval         false                input key is invalid.
+   **/
+  bool IsValidKey(void *key, uint64_t index);
+
+  /**
+   * @brief  Filters the attributes which need not be sent to controller
+   *
+   * @param[in/out]  val1   first record value instance.
+   * @param[in]      val2   second record value instance.
+   * @param[in]      audit  Not used for VTN
+   * @param[in]      op     Operation to be performed
+   *
+   **/
+  bool FilterAttributes(void *&val1, void *val2, bool audit_status,
+                        unc_keytype_operation_t op);
+  bool IsAllInvalidAttributes(const val_vtnstation_controller_st *val);
+
+  /** Not used for VTN **/
+  bool CompareValidValue(void *&val1, void *val2, bool audit);
+  /*
+   * @brief      Method to get a configkeyval of the parent keytype
+   *
+   * @param[in/out]  pkey           pointer to parent ConfigKeyVal
+   * @param[in]      ck_vtn         pointer to the child configkeyval from
+   * which the parent configkey val is obtained.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t GetParentConfigKey(ConfigKeyVal *&pkey, ConfigKeyVal *ck_vtn) {
+    return UPLL_RC_ERR_GENERIC;
+  }
+  upll_rc_t SwapKeyVal(ConfigKeyVal *ikey, ConfigKeyVal *&okey,
+                       DalDmlIntf *dmi, uint8_t *ctrlr, bool &no_rename);
+  upll_rc_t UpdateVtnConfigStatus(ConfigKeyVal *vtn_key,
+                                  unc_keytype_operation_t op,
+                                  uint32_t driver_result,
+                                  ConfigKeyVal *nreq, DalDmlIntf *dmi);
+  upll_rc_t UpdateConfigStatus(ConfigKeyVal *req, unc_keytype_operation_t op,
+                               uint32_t driver_result, ConfigKeyVal *upd_key,
+                               DalDmlIntf *dmi, ConfigKeyVal *ctrlr_key);
+  /**
+   * @brief  Update config status for commit result and vote result.
+   *
+   * @param[in/out]  ckv_running  ConfigKeyVal instance.
+   * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
+   * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
+   * @param[in]      dmi          Pointer to the DalDmlIntf(DB Interface)
+   *
+   **/
+  upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
+                                    uuc::UpdateCtrlrPhase phase,
+                                    ConfigKeyVal *&ckv_running,
+                                    DalDmlIntf *dmi);
+  upll_rc_t UpdateCtrlrConfigStatus(unc_keytype_configstatus_t cs_status,
+                                    uuc::UpdateCtrlrPhase phase,
+                                    ConfigKeyVal *&ckv_running);
+  upll_rc_t TxUpdateProcess(ConfigKeyVal *ck_main, IpcResponse *resp,
+                            unc_keytype_operation_t op,
+                            DalDmlIntf *dmi, controller_domain *ctrlr_dom,
+                            set<string> *affected_ctrlr_set, bool *driver_resp);
+  /**
+   * @brief  Allocates for the specified val in the given configuration in the     * specified table.
+   *
+   * @param[in/out]  ck_val   Reference pointer to configval structure
+   *                          allocated.
+   * @param[in]      dt_type  specifies the configuration candidate/running/
+   *                          state
+   * @param[in]      tbl      specifies if the corresponding table is the
+   *                          main table / controller table or rename table.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
+                     MoMgrTables tbl = MAINTBL);
+  /**
+   * @brief  Gets the valid array position of the variable in the value
+   *         structure from the table in the specified configuration
+   *
+   * @param[in]     val      pointer to the value structure
+   * @param[in]     indx     database index for the variable
+   * @param[out]    valid    position of the variable in the valid array -
+   *                          NULL if valid does not exist.
+   * @param[in]     dt_type  specifies the configuration
+   * @param[in]     tbl      specifies the table containing the given value
+   *
+   **/
+  upll_rc_t GetValid(void *val, uint64_t indx, uint8_t *&valid,
+                     upll_keytype_datatype_t dt_type, MoMgrTables tbl);
+  /**
+   * @brief  Duplicates the input configkeyval including the key and val.
+   * based on the tbl specified.
+   *
+   * @param[in]  okey   Output Configkeyval - allocated within the function
+   * @param[in]  req    Input ConfigKeyVal to be duplicated.
+   * @param[in]  tbl    specifies if the val structure belongs to the main table/ controller table or rename table.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
+                            MoMgrTables tbl = MAINTBL);
+  upll_rc_t MappingvExtTovBr(ConfigKeyVal *ikey, IpcReqRespHeader *req,
+                             DalDmlIntf *dmi, uint32_t *&count);
+
+  upll_rc_t ReadSingleCtlrlStation(IpcReqRespHeader *header,
+                                   ConfigKeyVal *ikey,
+                                   DalDmlIntf *dmi,
+                                   uint32_t *count);
+  upll_rc_t ReadSingleCtlrlVtnMapping(IpcReqRespHeader *header,
+                                      ConfigKeyVal *ikey,
+                                      DalDmlIntf *dmi,
+                                      uint32_t *count);
+  /**
+   * @brief     Method used in Delete opertaion. Its semantic checks
+   *            for the VTN key.
+   *
+   * @param[in]  ikey                        key and value structure.
+   * @param[in]  dt_type                     key  type.
+   * @param[in]  dmi                         Pointer to DalDmlIntf Class.
+   *
+   * @retval     UPLL_RC_SUCCESS             Successfull completion.
+   * @retval     UPLL_RC_ERR_GENERIC         Failure case.
+   * @retval     UPLL_RC_ERR_CFG_SEMANTIC    Failue dueto Semantic.
+   */
+  upll_rc_t IsReferenced(ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
+                         DalDmlIntf *dmi);
+  /**
+   * @brief     Method used in Delete opertaion. Its Create the Vtunnel
+   *            Configkey and copy the VTN name from the ikey to Vtunnel
+   *            Value structure.
+   *
+   * @param[in]  ikey                        key and value structure.
+   * @param[in]  dt_type                     key  type.
+   * @param[in]  dmi                         Pointer to DalDmlIntf Class.
+   *
+   * @retval     UPLL_RC_SUCCESS             Successfull completion.
+   * @retval     UPLL_RC_ERR_GENERIC         Failure case.
+   * @retval     UPLL_RC_ERR_CFG_SEMANTIC    Failue dueto Semantic.
+   */
+
+  upll_rc_t CreateVtunnelKey(ConfigKeyVal *ikey, ConfigKeyVal *&okey);
+
+  /**
+   * @Brief   Validates the syntax of the specified key and value structure
+   *          for KT_VTN keytype
+   *
+   * @param[in]  req    This structure contains
+   *                     IpcReqRespHeader(first 8 fields of
+   *                     input request structure).
+   * @param[in]  ikey   ikey contains key and value structure.
+   *
+   * @retval   UPLL_RC_SUCCESS               Successful.
+   * @retval   UPLL_RC_ERR_CFG_SYNTAX        Syntax error.
+   * @retval   UPLL_RC_ERR_NO_SUCH_INSTANCE  key_vtn is not available.
+   * @retval   UPLL_RC_ERR_GENERIC           Generic failure.
+   * @retval   UPLL_RC_ERR_INVALID_OPTION1   option1 is not valid.
+   * @retval   UPLL_RC_ERR_INVALID_OPTION2   option2 is not valid.
+   */
+  upll_rc_t ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *kval);
+
+  /**
+   * @Brief  Checks if the specified key type(KT_VTN) and
+   *         associated attributes are supported on the given controller,
+   *         based on the valid flag
+   *
+   * @param[in]  req               This structure contains IpcReqRespHeader
+   *                               (first 8 fields of input request structure).
+   * @param[in]  ikey              ikey contains key and value structure.
+   *
+   * @retval   UPLL_RC_SUCCESS               Validation succeeded.
+   * @retval   UPLL_RC_ERR_GENERIC           Validation failure.
+   * @retval   UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR  Attribute not supported.
+   */
+  upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *ikey,
+                               const char *cntrl_id = NULL);
+
+  /**
+   * @Brief  Checks if the specified key type and
+   *         associated attributes are supported on the given controller,
+   *         based on the valid flag.
+   *
+   * @param[in]  vtn_val         KEY_VTN value structure.
+   * @param[in]  attrs           List of supported attribute from CAPA API.
+   * @param[in]  operation       Operation name.
+   *
+   * @retval  UPLL_RC_SUCCESS                      validation succeeded.
+   * @retval  UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR   Attribute not supported.
+   * @retval  UPLL_RC_ERR_GENERIC                  Generic failure.
+   */
+  upll_rc_t ValVtnAttributeSupportCheck(val_vtn_t *vtn_val,
+                                        const uint8_t *attrs,
+                                        uint32_t operation);
+
+  /**
+   * @Brief  Validates the syntax for KT_VTN keytype value structure.
+   *
+   * @param[in]  val_vtn  KT_VTN value structure.
+   * @param[in]  operation  Operation type.
+   *
+   * @retval  UPLL_RC_SUCCESS               validation succeeded.
+   * @retval  UPLL_RC_ERR_CFG_SYNTAX        validation failed.
+   */
+  upll_rc_t ValidateVtnValue(val_vtn_t *vtn_val, uint32_t operation);
+
+  /**
+   * @Brief  Validates the syntax for KT_VTN Rename structure.
+   *
+   * @param[in]  val_vtn  KT_VTN Rename structure.
+   *
+   * @retval  UPLL_RC_SUCCESS         validation succeeded.
+   * @retval  UPLL_RC_ERR_CFG_SYNTAX  validation failed.
+   */
+  upll_rc_t ValidateVtnRenameValue(val_rename_vtn *vtn_rename);
+
+  /**
+   * @Brief  Validates the syntax of the specified key and value structure
+   *        for KT_VTNSTATION_CONTROLLER keytype
+   *
+   * @param[in]  req    This structure contains IpcReqRespHeader
+   *                    (first 8 fields of input request structure).
+   * @param[in]  ikey   ikey contains key and value structure.
+   *
+   * @retval  UPLL_RC_SUCCESS               Successful.
+   * @retval  UPLL_RC_ERR_CFG_SYNTAX        Syntax error.
+   * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE  key_vtnstation_controller
+   *                                        is not available.
+   * @retval  UPLL_RC_ERR_GENERIC           Generic failure.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION1   option1 is not valid.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION2   option2 is not valid.
+   **/
+  upll_rc_t ValidateMessageForVtnStnCtrlr(IpcReqRespHeader *req,
+                                          ConfigKeyVal *ikey);
+
+  /**
+   * @Brief  Validates the syntax of the specified key and value structure
+   *         for KT_VTN_MAPPING_CONTROLLER keytype
+   *
+   * @param[in]  req    This structure contains IpcReqRespHeader
+   *                    (first 8 fields of input request structure).
+   * @param[in]  ikey   ikey contains key and value structure.
+   *
+   * @retval  UPLL_RC_SUCCESS               Successful.
+   * @retval  UPLL_RC_ERR_CFG_SYNTAX        Syntax error.
+   * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE  key_vtn_mapping_controller
+   *                                        is not available.
+   * @retval  UPLL_RC_ERR_GENERIC           Generic failure.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION1   option1 is not valid.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION2   option2 is not valid.
+   **/
+  upll_rc_t ValidateMessageForVtnMapCtrlr(IpcReqRespHeader *req,
+                                          ConfigKeyVal *ikey);
+
+  /*
+   * @Brief  Validates the syntax for KT_VTNSTATION_CONTROLLER
+   *         Keytype Key structure.
+   *
+   * @param[in]  val_vtn  KT_VTN key structure.
+   * @param[in]  operation operation type.
+   *
+   * @retval  UPLL_RC_SUCCESS         validation succeeded.
+   * @retval  UPLL_RC_ERR_CFG_SYNTAX  validation failed.
+   *
+   **/
+  upll_rc_t ValidateVtnStnCtrlrKey(key_vtnstation_controller *vtn_ctrlr_key,
+                                   unc_keytype_operation_t operation);
+
+  /*
+   * @Brief  Validates the syntax for KT_VTN_MAPPING_CONTROLLER Keytype Key structure.
+   *
+   * @param[in]  val_vtn  KT_VTN_MAPPING_CONTROLLER key structure.
+   * @param[in]  operation Operation type.
+   *
+   * @retval  UPLL_RC_SUCCESS         validation succeeded.
+   * @retval  UPLL_RC_ERR_CFG_SYNTAX  validation failed.
+   *
+   **/
+  upll_rc_t ValidateVtnMapCtrlrKey(key_vtn_controller *vtn_ctrlr_key,
+                                   unc_keytype_operation_t operation);
+
+ protected:
+  /* @brief         This method invoke when the VTN merge hapeening between
+   *                Running and DT import. This will checks the vnode name
+   *                unique or not and semantic checks like IP Address, Mac
+   *                Address and network host address.
+   *
+   * @param[in]     keytype       UNC KEY TYPE
+   * @param[in/out] ctrlr_id      Controller ID
+   * @param[in]     conflict_ckv  key and value structure
+   * @param[in]     dal    Pointer to the DalDmlIntf(DB Interface)
+   *
+   * @retval  UPLL_RC_SUCCESS                    Completed successfully.
+   * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
+   * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
+   * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
+   * @retval  UPLL_RC_ERR_MERGE_CONFLICT         Semantic check error.
+   * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist
+   *
+   **/
+  upll_rc_t MergeValidateChildren(ConfigKeyVal *import_ckval,
                                   const char *ctrlr_id,
                                   ConfigKeyVal *ikey,
                                   DalDmlIntf *dmi);
 
-    upll_rc_t SetCtrlrOperStatus(ConfigKeyVal *ikey,
-                            state_notification notification,
-                            DalDmlIntf *dmi, bool &oper_change) ;
-
-    upll_rc_t SetOperStatus(ConfigKeyVal *ikey,
-                       state_notification notification,
-                       DalDmlIntf *dmi) ;
-    upll_rc_t DupConfigKeyValVtnStation(ConfigKeyVal *&okey,
-                                 ConfigKeyVal *req);
-    upll_rc_t DupConfigKeyValVtnMapping(ConfigKeyVal *&okey,
-                                 ConfigKeyVal *req);
-  public:
-    VtnMoMgr();
-    virtual ~VtnMoMgr() {
-      for (int i = 0; i < ntable; i++)
-        if (table[i]) {
-          delete table[i];
-        }
-      delete[] table;
-    }
-    /**
-     * @brief Set vtn oper status
-     *
-     * @param[in]   vtn_name_o     Vtn name 
-     * @param[in]   dmi            Database connection parameter
-     * @param[in]   notification   notification causing change in oper status 
-     * @param[out]  bool           true oper status set successfully
-     */
-    bool VtnSetOperStatus(uint8_t *vtn_name_o,
-                          DalDmlIntf *dmi, 
-                          state_notification notification) ;
-
-
-    upll_rc_t UpdateOperStatus(ConfigKeyVal *ck_vtn,
-                               DalDmlIntf *dmi,
+  upll_rc_t SetCtrlrOperStatus(ConfigKeyVal *ikey,
                                state_notification notification,
-                               bool skip) ;
-    /**
-     * @brief Exposed to Physical to Verify whether particular Key
-     *                            is in Use in Logical
-     *
-     * @param[in/out]   operation      Operation to check if the Controller is referenced
-     *                                            in UPLL configuration
-     * @param[in]       dt_type        Data Type
-     * @param[in]       key_type       KeyType of the key to be verified
-     * @param[in]       ckv            ConfigKeyVal of the KeyType
-     * @param[out]      in_use         true if key is in use, else false
-     * @param[out]      upll_rc_t      UPLL_RC_ERR_CFG_SEMANTIC on error
-     *                                    UPLL_RC_SUCCESS on success
-     *
-     */
-    upll_rc_t IsKeyInUse(upll_keytype_datatype_t dt_type,
-                         const ConfigKeyVal *ckv, bool *in_use,
-                         DalDmlIntf *dmi);
-    /**
-     * @brief      Method to get a configkeyval of a specified keytype from an input configkeyval
-     *
-     * @param[in/out]  okey                 pointer to output ConfigKeyVal 
-     * @param[in]      parent_key           pointer to the configkeyval from which the output configkey val is initialized.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     */
-    upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *parent_key);
-    upll_rc_t GetControllerDomainSpan(ConfigKeyVal *ikey,
-                                upll_keytype_datatype_t dt_type,
-                                DalDmlIntf *dmi,
-                                std::list<controller_domain_t> &list_ctrlr_dom);
-    upll_rc_t GetControllerDomainSpan(ConfigKeyVal *ikey,
-                                      upll_keytype_datatype_t dt_type,
-                                      DalDmlIntf *dmi);
-    upll_rc_t TxCopyCandidateToRunning(
-        unc_key_type_t keytype, CtrlrCommitStatusList *ctrlr_commit_status,
-        DalDmlIntf *dmi);
-    upll_rc_t TxUpdateController(unc_key_type_t keytype, uint32_t session_id,
-                                uint32_t config_id, uuc::UpdateCtrlrPhase phase,
-                                set<string> *affected_ctrlr_set,
-                                DalDmlIntf *dmi,
-                                ConfigKeyVal **err_ckv);
-
-    /* @brief         Set Consolidated config status when controller
-     *                                        table entry is deleted
-     *
-     * @param[in]     ikey            Vtn Main Table Key
-     * @param[in]     ctrlr_id        Controller Name which is deleted
-     * @param[in]     dmi             Database object
-     *
-     */
-    upll_rc_t SetVtnConsolidatedStatus(ConfigKeyVal *ikey, uint8_t *ctrlr_id,
-                                       DalDmlIntf *dmi);
-    /* @brief         Read the configuration either from RDBMS and/or from the
-     *             controller  
-     *              
-     * @param[in]     req    Pointer to IpcResResHeader
-     * @param[in/out] ikey   Pointer to the ConfigKeyVal Structure              
-     * @param[in]     dmi    Pointer to the DalDmlIntf(DB Interface)
-     * 
-     * @retval  UPLL_RC_SUCCESS                    Completed successfully.
-     * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
-     * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
-     * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
-     * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist 
-     *
-     **/
-    upll_rc_t ReadMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                     DalDmlIntf *dmi);
-
-    /* @brief         READ_SIBLING_BEGIN: Gets the first MO from the sibling group under the parent 
-     *                specified in the key from the specified UNC database 
-     *                READ_SIBLING: Gets the next MO from the sibling group under the parent 
-     *                specified in the key from the specified UNC database
-     *              
-     * @param[in]     req    Pointer to IpcResResHeader
-     * @param[in/out] key    Pointer to the ConfigKeyVal Structure                    
-     * @param[in]     begin  boolean variable to decide the sibling operation 
-     * @param[in]     dal    Pointer to the DalDmlIntf(DB Interface)
-     * 
-     * @retval  UPLL_RC_SUCCESS                    Completed successfully.
-     * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
-     * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
-     * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
-     * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist 
-     *
-     **/
-    upll_rc_t ReadSiblingMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                            bool begin, DalDmlIntf *dmi);
-
-    /* @brief         This method invoke when the VTN merge hapeening between
-     *                Running and DT import. This will checks the vnode name 
-     *                unique or not and semantic checks like IP Address, Mac 
-     *                Address and network host address. 
-     *              
-     * @param[in]     keytype       UNC KEY TYPE
-     * @param[in/out] ctrlr_id      Controller ID                    
-     * @param[in]     conflict_ckv  key and value structure 
-     * @param[in]     dal    Pointer to the DalDmlIntf(DB Interface)
-     * 
-     * @retval  UPLL_RC_SUCCESS                    Completed successfully.
-     * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
-     * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
-     * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
-     * @retval  UPLL_RC_ERR_MERGE_CONFLICT         Semantic check error.
-     * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist 
-     *
-     **/
-    upll_rc_t ReadSiblingCount(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                                DalDmlIntf *dmi);
-
-    upll_rc_t MergeValidate(unc_key_type_t keytype, const char *ctrlr_id,
-                            ConfigKeyVal *conflict_ckv, DalDmlIntf *dmi);
-    /* Rename */
-
-    /**
-     * @brief     Method create configkey for the VTN.
-     *            Allocates the memory for the okey and 
-     *            Copy the old name from the rename_info into okey.
-     *     
-     * @param[in]  okey                        key and value structure.
-     * @param[in]  rename_info                 key and value structure. 
-     *
-     * @retval     UPLL_RC_SUCCESS             Successfull completion.
-     * @retval     UPLL_RC_ERR_GENERIC         Failure case.
-     */
-    upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
-
-    /**
-     * @brief     Method used in Rename Operation. 
-     *            This function collects the Unc new name from okey, Unc old name and 
-     *            Ctrlr name  from the ikey and creats the rename_info 
-     *            ConfigKeyVal
-     *
-     * @param[in]  ikey                        key and value structure.
-     * @param[in]  okey                        key and value structure. 
-     * @param[out] rename_info                key and value structure.
-     * @param[in]  dmi                         Pointer to DalDmlIntf Class.
-     * @param[in]  ctrlr_id                    Controller Id.
-     * @param[in]  renamed                     Flag for Already renamed or not.
-     *
-     * @retval     UPLL_RC_SUCCESS             Successfull completion.
-     * @retval     UPLL_RC_ERR_GENERIC         Failure case.
-     */
-    upll_rc_t GetRenameInfo(ConfigKeyVal *ikey, ConfigKeyVal *okey,
-                            ConfigKeyVal *&rename_info, DalDmlIntf *dmi,
-                            const char *ctrlr_id, bool &renamed);
-
-    /**
-     * @brief     Method used in rename opertaion while update the new name into the tables
-     *            to Gets the bindinfo detail for the VTN key. 
-     *     
-     * @param[in]  key_type                    unc key type.
-     * @param[out] binfo                       Bindinfo details.
-     * @param[out] nattr                       Number of Attributes. 
-     * @param[in]  tbl                         Table Name.
-     *
-     * @retval     PFC_TRUE                    Successfull completion.
-     */
-    bool GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo,
-                              int &nattr, MoMgrTables tbl);
-    /*
-     * @Brief Validates the syntax for KT_VTN Keytype Key structure.
-     *
-     * @param[in]  val_vtn  KT_VTN key structure.
-     *
-     * @retval  UPLL_RC_SUCCESS         validation succeeded.
-     * @retval  UPLL_RC_ERR_CFG_SYNTAX  validation failed.
-     *
-     */
-    upll_rc_t ValidateVtnKey(key_vtn_t *vtn_key);
-
-   /* @brief     To convert the value structure read from DB to 
-    *            VTNService during READ operations
-    * @param[in/out] ikey      Pointer to the ConfigKeyVal Structure             
-    * 
-    * @retval  UPLL_RC_SUCCESS                    Completed successfully.
-    * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
-    *
-    **/
-   upll_rc_t AdaptValToVtnService(ConfigKeyVal *ikey);
-
-    upll_rc_t SetConsolidatedStatus(ConfigKeyVal *ikey, DalDmlIntf *dmi);
-
-    /* @brief     To update oper status of vnode
-     *              
-     * @param[in] ktype         keytype 
-     * @param[in] session_id    session identifier
-     * @param[in] config_id     config identifier 
-     * @param[in] dmi           Pointer to db connection instance
-     * 
-     * @retval  UPLL_RC_SUCCESS                    updated successfully.
-     * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
-     * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
-     *
-     **/
-
-    upll_rc_t TxUpdateDtState(unc_key_type_t ktype,
-                              uint32_t session_id,
-                              uint32_t config_id,
-                              DalDmlIntf *dmi) ;
-    upll_rc_t ControllerStatusHandler(uint8_t *ctrlr_name,
-                                          DalDmlIntf *dmi,
-                                          bool operstatus);
-    upll_rc_t UpdateVnodeIfOperStatus(ConfigKeyVal *ck_vtn,
-                                       DalDmlIntf *dmi,
-                                       state_notification notification,
-                                       bool skip,
-                                       int if_type);
-    upll_rc_t UpdateVnodeOperStatus(uint8_t *ctrlr_name,
+                               DalDmlIntf *dmi, bool &oper_change);
+
+  upll_rc_t SetOperStatus(ConfigKeyVal *ikey,
+                          state_notification notification,
+                          DalDmlIntf *dmi);
+  upll_rc_t DupConfigKeyValVtnStation(ConfigKeyVal *&okey,
+                                      ConfigKeyVal *req);
+  upll_rc_t DupConfigKeyValVtnMapping(ConfigKeyVal *&okey,
+                                      ConfigKeyVal *req);
+
+ public:
+  VtnMoMgr();
+  virtual ~VtnMoMgr() {
+    for (int i = 0; i < ntable; i++)
+      if (table[i]) {
+        delete table[i];
+      }
+    delete[] table;
+  }
+  /**
+   * @brief Set vtn oper status
+   *
+   * @param[in]   vtn_name_o     Vtn name
+   * @param[in]   dmi            Database connection parameter
+   * @param[in]   notification   notification causing change in oper status
+   * @param[out]  bool           true oper status set successfully
+   */
+  bool VtnSetOperStatus(uint8_t *vtn_name_o,
+                        DalDmlIntf *dmi,
+                        state_notification notification);
+
+
+  upll_rc_t UpdateOperStatus(ConfigKeyVal *ck_vtn,
+                             DalDmlIntf *dmi,
+                             state_notification notification,
+                             bool skip);
+  /**
+   * @brief Exposed to Physical to Verify whether particular Key
+   *                            is in Use in Logical
+   *
+   * @param[in/out]   operation      Operation to check if the Controller is referenced
+   *                                            in UPLL configuration
+   * @param[in]       dt_type        Data Type
+   * @param[in]       key_type       KeyType of the key to be verified
+   * @param[in]       ckv            ConfigKeyVal of the KeyType
+   * @param[out]      in_use         true if key is in use, else false
+   * @param[out]      upll_rc_t      UPLL_RC_ERR_CFG_SEMANTIC on error
+   *                                    UPLL_RC_SUCCESS on success
+   *
+   */
+  upll_rc_t IsKeyInUse(upll_keytype_datatype_t dt_type,
+                       const ConfigKeyVal *ckv, bool *in_use,
+                       DalDmlIntf *dmi);
+  /**
+   * @brief      Method to get a configkeyval of a specified keytype from an input configkeyval
+   *
+   * @param[in/out]  okey                 pointer to output ConfigKeyVal
+   * @param[in]      parent_key           pointer to the configkeyval from which the output configkey val is initialized.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   */
+  upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *parent_key);
+  upll_rc_t GetControllerDomainSpan(
+      ConfigKeyVal *ikey,
+      upll_keytype_datatype_t dt_type,
+      DalDmlIntf *dmi,
+      std::list<controller_domain_t> &list_ctrlr_dom);
+  upll_rc_t GetControllerDomainSpan(ConfigKeyVal *ikey,
+                                    upll_keytype_datatype_t dt_type,
+                                    DalDmlIntf *dmi);
+  upll_rc_t TxCopyCandidateToRunning(
+      unc_key_type_t keytype, CtrlrCommitStatusList *ctrlr_commit_status,
+      DalDmlIntf *dmi);
+  upll_rc_t TxUpdateController(unc_key_type_t keytype, uint32_t session_id,
+                               uint32_t config_id, uuc::UpdateCtrlrPhase phase,
+                               set<string> *affected_ctrlr_set,
+                               DalDmlIntf *dmi,
+                               ConfigKeyVal **err_ckv);
+
+  /* @brief         Set Consolidated config status when controller
+   *                                        table entry is deleted
+   *
+   * @param[in]     ikey            Vtn Main Table Key
+   * @param[in]     ctrlr_id        Controller Name which is deleted
+   * @param[in]     dmi             Database object
+   *
+   */
+  upll_rc_t SetVtnConsolidatedStatus(ConfigKeyVal *ikey, uint8_t *ctrlr_id,
+                                     DalDmlIntf *dmi);
+  /* @brief         Read the configuration either from RDBMS and/or from the
+   *             controller
+   *
+   * @param[in]     req    Pointer to IpcResResHeader
+   * @param[in/out] ikey   Pointer to the ConfigKeyVal Structure
+   * @param[in]     dmi    Pointer to the DalDmlIntf(DB Interface)
+   *
+   * @retval  UPLL_RC_SUCCESS                    Completed successfully.
+   * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
+   * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
+   * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
+   * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist
+   *
+   **/
+  upll_rc_t ReadMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
+                   DalDmlIntf *dmi);
+
+  /* @brief         READ_SIBLING_BEGIN: Gets the first MO from the sibling group under the parent
+   *                specified in the key from the specified UNC database
+   *                READ_SIBLING: Gets the next MO from the sibling group under the parent
+   *                specified in the key from the specified UNC database
+   *
+   * @param[in]     req    Pointer to IpcResResHeader
+   * @param[in/out] key    Pointer to the ConfigKeyVal Structure
+   * @param[in]     begin  boolean variable to decide the sibling operation
+   * @param[in]     dal    Pointer to the DalDmlIntf(DB Interface)
+   *
+   * @retval  UPLL_RC_SUCCESS                    Completed successfully.
+   * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
+   * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
+   * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
+   * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist
+   *
+   **/
+  upll_rc_t ReadSiblingMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
+                          bool begin, DalDmlIntf *dmi);
+
+  /* @brief         This method invoke when the VTN merge hapeening between
+   *                Running and DT import. This will checks the vnode name
+   *                unique or not and semantic checks like IP Address, Mac
+   *                Address and network host address.
+   *
+   * @param[in]     keytype       UNC KEY TYPE
+   * @param[in/out] ctrlr_id      Controller ID
+   * @param[in]     conflict_ckv  key and value structure
+   * @param[in]     dal    Pointer to the DalDmlIntf(DB Interface)
+   *
+   * @retval  UPLL_RC_SUCCESS                    Completed successfully.
+   * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
+   * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
+   * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
+   * @retval  UPLL_RC_ERR_MERGE_CONFLICT         Semantic check error.
+   * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist
+   *
+   **/
+  upll_rc_t ReadSiblingCount(IpcReqRespHeader *req, ConfigKeyVal *ikey,
+                             DalDmlIntf *dmi);
+
+  upll_rc_t MergeValidate(unc_key_type_t keytype, const char *ctrlr_id,
+                          ConfigKeyVal *conflict_ckv, DalDmlIntf *dmi);
+  /* Rename */
+
+  /**
+   * @brief     Method create configkey for the VTN.
+   *            Allocates the memory for the okey and
+   *            Copy the old name from the rename_info into okey.
+   *
+   * @param[in]  okey                        key and value structure.
+   * @param[in]  rename_info                 key and value structure.
+   *
+   * @retval     UPLL_RC_SUCCESS             Successfull completion.
+   * @retval     UPLL_RC_ERR_GENERIC         Failure case.
+   */
+  upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
+
+  /**
+   * @brief     Method used in Rename Operation.
+   *            This function collects the Unc new name from okey, Unc old name and
+   *            Ctrlr name  from the ikey and creats the rename_info
+   *            ConfigKeyVal
+   *
+   * @param[in]  ikey                        key and value structure.
+   * @param[in]  okey                        key and value structure.
+   * @param[out] rename_info                key and value structure.
+   * @param[in]  dmi                         Pointer to DalDmlIntf Class.
+   * @param[in]  ctrlr_id                    Controller Id.
+   * @param[in]  renamed                     Flag for Already renamed or not.
+   *
+   * @retval     UPLL_RC_SUCCESS             Successfull completion.
+   * @retval     UPLL_RC_ERR_GENERIC         Failure case.
+   */
+  upll_rc_t GetRenameInfo(ConfigKeyVal *ikey, ConfigKeyVal *okey,
+                          ConfigKeyVal *&rename_info, DalDmlIntf *dmi,
+                          const char *ctrlr_id, bool &renamed);
+
+  /**
+   * @brief     Method used in rename opertaion while update the new name into the tables
+   *            to Gets the bindinfo detail for the VTN key.
+   *
+   * @param[in]  key_type                    unc key type.
+   * @param[out] binfo                       Bindinfo details.
+   * @param[out] nattr                       Number of Attributes.
+   * @param[in]  tbl                         Table Name.
+   *
+   * @retval     PFC_TRUE                    Successfull completion.
+   */
+  bool GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo,
+                            int &nattr, MoMgrTables tbl);
+  /*
+   * @Brief Validates the syntax for KT_VTN Keytype Key structure.
+   *
+   * @param[in]  val_vtn  KT_VTN key structure.
+   *
+   * @retval  UPLL_RC_SUCCESS         validation succeeded.
+   * @retval  UPLL_RC_ERR_CFG_SYNTAX  validation failed.
+   *
+   */
+  upll_rc_t ValidateVtnKey(key_vtn_t *vtn_key);
+
+  /* @brief     To convert the value structure read from DB to
+   *            VTNService during READ operations
+   * @param[in/out] ikey      Pointer to the ConfigKeyVal Structure
+   *
+   * @retval  UPLL_RC_SUCCESS                    Completed successfully.
+   * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
+   *
+   **/
+  upll_rc_t AdaptValToVtnService(ConfigKeyVal *ikey);
+
+  upll_rc_t SetConsolidatedStatus(ConfigKeyVal *ikey, DalDmlIntf *dmi);
+
+  /* @brief     To update oper status of vnode
+   *
+   * @param[in] ktype         keytype
+   * @param[in] session_id    session identifier
+   * @param[in] config_id     config identifier
+   * @param[in] dmi           Pointer to db connection instance
+   *
+   * @retval  UPLL_RC_SUCCESS                    updated successfully.
+   * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
+   * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
+   *
+   **/
+
+  upll_rc_t TxUpdateDtState(unc_key_type_t ktype,
+                            uint32_t session_id,
+                            uint32_t config_id,
+                            DalDmlIntf *dmi);
+  upll_rc_t ControllerStatusHandler(uint8_t *ctrlr_name,
+                                    DalDmlIntf *dmi,
+                                    bool operstatus);
+  upll_rc_t UpdateVnodeIfOperStatus(ConfigKeyVal *ck_vtn,
                                     DalDmlIntf *dmi,
                                     state_notification notification,
-                                    bool skip);
-    upll_rc_t RestoreVtnOperStatus(ConfigKeyVal *ck_vtn,
+                                    bool skip,
+                                    int if_type);
+  upll_rc_t UpdateVnodeOperStatus(uint8_t *ctrlr_name,
+                                  DalDmlIntf *dmi,
+                                  state_notification notification,
+                                  bool skip);
+  upll_rc_t RestoreVtnOperStatus(ConfigKeyVal *ck_vtn,
+                                 DalDmlIntf *dmi,
+                                 state_notification notification);
+  upll_rc_t RestoreVtnCtrlrOperStatus(uint8_t *ctrlr_name,
+                                      DalDmlIntf *dmi,
+                                      state_notification notification);
+  upll_rc_t GetRenamedControllerKey(ConfigKeyVal *ikey,
+                                    upll_keytype_datatype_t dt_type,
+                                    DalDmlIntf *dmi,
+                                    controller_domain *ctrlr_dom);
+  upll_rc_t GetRenamedUncKey(ConfigKeyVal *ctrlr_key,
+                             upll_keytype_datatype_t dt_type, DalDmlIntf *dmi,
+                             uint8_t *ctrlr_id);
+  upll_rc_t RestoreVnodeOperStatus(uint8_t *ctrlr_id,
+                                   ConfigKeyVal *ck_vtn,
                                    DalDmlIntf *dmi,
-                                   state_notification notification);
-    upll_rc_t RestoreVtnCtrlrOperStatus(uint8_t *ctrlr_name,
-                                        DalDmlIntf *dmi,
-                                        state_notification notification);
-    upll_rc_t GetRenamedControllerKey(ConfigKeyVal *ikey,
-                                      upll_keytype_datatype_t dt_type,
+                                   state_notification notification,
+                                   bool skip);
+  upll_rc_t RestoreVnodeIfAndVtnCtrlr(uint8_t *ctrlr_id,
+                                      ConfigKeyVal *ck_vtn,
                                       DalDmlIntf *dmi,
-                                      controller_domain *ctrlr_dom);
-    upll_rc_t GetRenamedUncKey(ConfigKeyVal *ctrlr_key,
-                               upll_keytype_datatype_t dt_type, DalDmlIntf *dmi,
-                               uint8_t *ctrlr_id);
-    upll_rc_t RestoreVnodeOperStatus(uint8_t *ctrlr_id,
-                                     DalDmlIntf *dmi,
-                                     state_notification notification,
-                                     bool skip);
-    upll_rc_t RestoreVnodeIfAndVtnCtrlr(uint8_t *ctrlr_id,
-                                        DalDmlIntf *dmi,
-                                        state_notification notification,
-                                        uint32_t &down_count);
+                                      state_notification notification,
+                                      uint32_t &down_count);
+  upll_rc_t VtnRenameMerge(ConfigKeyVal *ikey,
+                           ConfigKeyVal *okey,
+                           DalDmlIntf *dmi);
+  upll_rc_t MergeVtnMainTable(DalDmlIntf *dmi);
+  upll_rc_t GetVbridgeUnKnownInstance(ConfigKeyVal *ck_vtn,
+                                      uint8_t *ctrlr_id,
+                                      DalDmlIntf *dmi);
+  upll_rc_t UpdateVbridgeIfUnKnownInstance(ConfigKeyVal *ck_vnode,
+                                           uint8_t *ctrlr_id,
+                                           DalDmlIntf *dmi);
 };
 
 typedef struct val_db_vtn_st {
@@ -627,14 +646,14 @@ typedef struct val_db_vtn_st {
 } val_db_vtn_st_t;
 
 typedef struct val_vtn_ctrlr {
-    uint8_t valid[2];
-    val_oper_status oper_status;
-    val_alarm_status alarm_status;
-    unc_keytype_configstatus_t cs_attr[1];
-    unc_keytype_configstatus_t cs_row_status;
-    uint32_t down_count;
-    uint32_t ref_count;
-    uint8_t flags;
+  uint8_t valid[2];
+  val_oper_status oper_status;
+  val_alarm_status alarm_status;
+  unc_keytype_configstatus_t cs_attr[1];
+  unc_keytype_configstatus_t cs_row_status;
+  uint32_t down_count;
+  uint32_t ref_count;
+  uint8_t flags;
 } val_vtn_ctrlr_t;
 }  // namespace kt_momgr
 }  // namespace upll
index 07279db448d40e0db5b1107549afb49aaf786f93..01e013ff88bdebb59033a9c6dc79e8f0682e4f5f 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -26,7 +26,7 @@ namespace kt_momgr {
 #define POLICINGPROFILE_RENAME 0x02
 #define NO_POLICINGPROFILE_RENAME 0xFD
 
-// VtnPolicingmap Table (Main Table)
+//  VtnPolicingmap Table (Main Table)
 BindInfo VtnPolicingMapMoMgr::vtnpolicingmap_bind_info[] = {
   { uudst::vtn_policingmap::kDbiVtnName, CFG_KEY,
     offsetof(key_vtn_t, vtn_name),
@@ -48,7 +48,7 @@ BindInfo VtnPolicingMapMoMgr::vtnpolicingmap_bind_info[] = {
     uud::kDalUint8, 1 }
 };
 
-// Vtn PolicingmapCtrlr Table (Ctrlr Table)
+//  Vtn PolicingmapCtrlr Table (Ctrlr Table)
 BindInfo VtnPolicingMapMoMgr::vtnpolicingmap_controller_bind_info[] = {
   { uudst::vtn_policingmap_ctrlr::kDbiVtnName, CFG_KEY,
     offsetof(key_vtn_t, vtn_name),
@@ -76,7 +76,7 @@ BindInfo VtnPolicingMapMoMgr::vtnpolicingmap_controller_bind_info[] = {
     uud::kDalUint8, 1 }
 };
 
-// Rename VTN name MAINTBL
+//  Rename VTN name MAINTBL
 BindInfo VtnPolicingMapMoMgr::key_vtnpm_vtn_maintbl_rename_bind_info[] = {
   { uudst::vtn_policingmap::kDbiVtnName, CFG_MATCH_KEY,
     offsetof(key_vtn_t, vtn_name),
@@ -89,7 +89,7 @@ BindInfo VtnPolicingMapMoMgr::key_vtnpm_vtn_maintbl_rename_bind_info[] = {
     uud::kDalUint8, 1 }
 };
 
-// Rename VTN name CTRLRTBL
+//  Rename VTN name CTRLRTBL
 BindInfo VtnPolicingMapMoMgr::key_vtnpm_vtn_ctrlrtbl_rename_bind_info[] = {
   { uudst::vtn_policingmap_ctrlr::kDbiVtnName, CFG_MATCH_KEY,
     offsetof(key_vtn_t, vtn_name),
@@ -103,23 +103,24 @@ BindInfo VtnPolicingMapMoMgr::key_vtnpm_vtn_ctrlrtbl_rename_bind_info[] = {
 };
 
 
-// Constructor
+//  Constructor
 VtnPolicingMapMoMgr::VtnPolicingMapMoMgr() : MoMgrImpl() {
   UPLL_FUNC_TRACE;
-  // Rename operation is not support for this KT
-  // setting max tables to 2
+  //  Rename operation is not support for this KT
+  //  setting max tables to 2
   ntable = MAX_MOMGR_TBLS;
   table = new Table *[ntable];
 
   table[MAINTBL] = new Table(uudst::kDbiVtnPolicingMapTbl,
-      UNC_KT_VTN_POLICINGMAP, vtnpolicingmap_bind_info,
-      IpctSt::kIpcStKeyVtn, IpctSt::kIpcStValPolicingmap,
-      uudst::vtn_policingmap::kDbiVtnPolicingMapNumCols);
+                             UNC_KT_VTN_POLICINGMAP, vtnpolicingmap_bind_info,
+                             IpctSt::kIpcStKeyVtn, IpctSt::kIpcStValPolicingmap,
+                             uudst::vtn_policingmap::kDbiVtnPolicingMapNumCols);
 
   table[RENAMETBL] = NULL;
 
   /* For Controller Table */
-  table[CTRLRTBL] = new Table(uudst::kDbiVtnPolicingMapCtrlrTbl,
+  table[CTRLRTBL] = new Table(
+      uudst::kDbiVtnPolicingMapCtrlrTbl,
       UNC_KT_VTN_POLICINGMAP, vtnpolicingmap_controller_bind_info,
       IpctSt::kIpcStKeyVtnPolicingmapController,
       IpctSt::kIpcStValPolicingmapController,
@@ -127,7 +128,6 @@ VtnPolicingMapMoMgr::VtnPolicingMapMoMgr() : MoMgrImpl() {
 
   nchild = 0;
   child = NULL;
-  cur_instance_count = 0;
 }
 
 upll_rc_t VtnPolicingMapMoMgr::RestorePOMInCtrlTbl(
@@ -143,14 +143,14 @@ upll_rc_t VtnPolicingMapMoMgr::RestorePOMInCtrlTbl(
     return UPLL_RC_ERR_GENERIC;
   }
   if (tbl != CTRLRTBL ||
-       (ikey->get_key_type() != UNC_KT_VTN_POLICINGMAP)) {
+      (ikey->get_key_type() != UNC_KT_VTN_POLICINGMAP)) {
     UPLL_LOG_DEBUG("Ignoring  ktype/Table kt=%d, tbl=%d",
                    ikey->get_key_type(), tbl);
     return result_code;
   }
 
   val_policingmap_t *val_pm = reinterpret_cast<val_policingmap_t *>
-    (GetVal(ikey));
+      (GetVal(ikey));
   if (NULL == val_pm) {
     UPLL_LOG_DEBUG(" Value structure is NULL");
     return UPLL_RC_ERR_GENERIC;
@@ -169,8 +169,9 @@ upll_rc_t VtnPolicingMapMoMgr::RestorePOMInCtrlTbl(
   return result_code;
 }
 upll_rc_t VtnPolicingMapMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey,
-    DalDmlIntf *dmi) {
+                                                 ConfigKeyVal *ikey,
+                                                 DalDmlIntf *dmi,
+                                                 bool restore_flag) {
   UPLL_FUNC_TRACE;
   if (NULL == ikey || NULL == req || NULL == dmi) {
     UPLL_LOG_DEBUG("ikey or req or dmi NULL");
@@ -180,12 +181,13 @@ upll_rc_t VtnPolicingMapMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
   bool ctrl_instance = true;
 
   UPLL_LOG_DEBUG("Data Check (%d) (%d)", req->operation, req->datatype);
-
-  // validate syntax and semantics
-  result_code = ValidateMessage(req, ikey);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("ValidateMessage Err (%d)", result_code);
-    return result_code;
+  if (!restore_flag) {
+    //  validate syntax and semantics
+    result_code = ValidateMessage(req, ikey);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("ValidateMessage Err (%d)", result_code);
+      return result_code;
+    }
   }
 
   result_code = ValidateAttribute(ikey, dmi, req);
@@ -194,41 +196,21 @@ upll_rc_t VtnPolicingMapMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
     return result_code;
   }
 
-  // Capability Check
-#if 0
-  result_code = ValidateCapability(req, ikey);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Key not supported by controller");
-    return result_code;
-  }
-#endif
-
-  // Check VTNPM object already exists in VtnPolicingMap tbl CANDIDATE DB
-  // if record exists, return the error code
-  result_code = IsReferenced(ikey, req->datatype, dmi);
-  if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
-    UPLL_LOG_DEBUG("Object exists in CANDIDATE DB (%d)", result_code);
-    return result_code;
-  } else if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-    UPLL_LOG_DEBUG("Instance not Available");
-    return result_code;
-  }
-
-  // Check Policingmap object exists in PolicingProfileTbl CANDIDATE DB
-  // If record not exists, return error code
+  //  Check Policingmap object exists in PolicingProfileTbl CANDIDATE DB
+  //  If record not exists, return error code
   val_policingmap_t *val_pm = reinterpret_cast<val_policingmap_t *>
-    (GetVal(ikey));
+      (GetVal(ikey));
   if (NULL == val_pm) {
     UPLL_LOG_DEBUG(" Value structure is NULL");
     return UPLL_RC_ERR_GENERIC;
   }
   if (UNC_VF_VALID == val_pm->valid[UPLL_IDX_POLICERNAME_PM]) {
     result_code = IsPolicyProfileReferenced(ikey, req->datatype, dmi,
-        UNC_OP_READ);
+                                            UNC_OP_READ);
     if (UPLL_RC_SUCCESS != result_code) {
       if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
         UPLL_LOG_DEBUG("IsPolicyProfileReferenced record not available (%d)",
-            result_code);
+                       result_code);
         return UPLL_RC_ERR_CFG_SEMANTIC;
       } else {
         UPLL_LOG_DEBUG(
@@ -239,64 +221,84 @@ upll_rc_t VtnPolicingMapMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
     }
   }
 
-  // Check if Object exists in RUNNING DB and move it to CANDIDATE DB
-  if (req->datatype == UPLL_DT_CANDIDATE) {
-    result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dmi,
-                               MAINTBL);
-    if ((result_code != UPLL_RC_ERR_INSTANCE_EXISTS) &&
-        (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE)) {
-      UPLL_LOG_DEBUG(" Is Exist check operation failed: err code(%d)",
-                   result_code);
-      return result_code;
-     }
-    if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
-      result_code = RestoreChildren(ikey, req->datatype, UPLL_DT_RUNNING, dmi);
-      if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("Restore Operation Failed, err %d", result_code);
+  if (!restore_flag) {
+    if (UPLL_DT_CANDIDATE == req->datatype) {
+      result_code = UpdateConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dmi,
+                                   MAINTBL);
+      if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
+        UPLL_LOG_DEBUG("Key instance exist");
+        if ((ikey)->get_cfg_val()) {
+          UPLL_LOG_DEBUG("Read Key with Value struct");
+          DbSubOp dbop = { kOpReadSingle, kOpMatchNone,
+            kOpInOutFlag | kOpInOutCtrlr | kOpInOutDomain };
+          result_code = ReadConfigDB(ikey, UPLL_DT_RUNNING, UNC_OP_READ, dbop,
+                                     dmi, MAINTBL);
+          if (UPLL_RC_SUCCESS != result_code &&
+              UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+            UPLL_LOG_DEBUG("ReadConfigDB Failed %d",  result_code);
+          }
+          if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code)  {
+            return UPLL_RC_ERR_CFG_SEMANTIC;
+          }
+        } else  {
+          result_code = UPLL_RC_SUCCESS;
+        }
+        if (UPLL_RC_SUCCESS == result_code) {
+          result_code = RestoreChildren(ikey,
+                                        req->datatype,
+                                        UPLL_DT_RUNNING,
+                                        dmi,
+                                        req);
+          UPLL_LOG_DEBUG("Restore Children returns %d", result_code);
+          return result_code;
+        }
+      } else if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
+        UPLL_LOG_DEBUG("UpdateConfigDB Failed %d", result_code);
         return result_code;
       }
-      return result_code;
     }
+  } else {
+    result_code = UPLL_RC_ERR_NO_SUCH_INSTANCE;
   }
-    // 1)Check the ref count capability of vtn associated controller name in
-    // policingprofilectrltbl If any of one refcount reached the
-    // max capability, then return error
-    // If all the ref count is less than capability
-    // then increment and update the refcount if record exist in
-    // policingprofilectrltbl and create the record with refcount if record not
-    // exist in policingprofilectrl tbl for the vtn associated controller name
+  //  1)Check the ref count capability of vtn associated controller name in
+  //  policingprofilectrltbl If any of one refcount reached the
+  //  max capability, then return error
+  //  If all the ref count is less than capability
+  //  then increment and update the refcount if record exist in
+  //  policingprofilectrltbl and create the record with refcount if record not
+  //  exist in policingprofilectrl tbl for the vtn associated controller name
 
-    // 2)Create the record in policingprofileentryctrltbl
+  //  2)Create the record in policingprofileentryctrltbl
 
   if (UNC_VF_VALID == val_pm->valid[UPLL_IDX_POLICERNAME_PM]) {
     result_code = UpdateRefCountInPPCtrlr(ikey, req->datatype, dmi,
-        UNC_OP_CREATE);
+                                          UNC_OP_CREATE);
     if (UPLL_RC_SUCCESS != result_code) {
       if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
         UPLL_LOG_DEBUG("UpdateRefCountInPPCtrlr Err in CANDIDATE DB(%d)",
-          result_code);
+                       result_code);
         return result_code;
       }
       ctrl_instance = false;
     }
   }
-  // create a record in vtnpolicingmap CANDIDATE DB
+  //  create a record in vtnpolicingmap CANDIDATE DB
   result_code = UpdateConfigDB(ikey, req->datatype, req->operation, dmi,
-      MAINTBL);
+                               MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("Create record Err in vtnpolicingmaptbl CANDIDATE DB(%d)",
-        result_code);
+                   result_code);
     return result_code;
   }
   key_vtn_t *tmp_key = reinterpret_cast<key_vtn_t *>(ikey->get_key());
   UPLL_LOG_DEBUG("vtn name in createcand %s", tmp_key->vtn_name);
-  // Create the record in vtnpolicingmapctrltbl
+  //  Create the record in vtnpolicingmapctrltbl
   if (ctrl_instance) {
     result_code = UpdateRecordInVtnPmCtrlr(ikey, req->datatype, UNC_OP_CREATE,
-      dmi);
+                                           dmi);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("Create record Err in vtnpolicingmaptbl CANDIDATE DB(%d)",
-        result_code);
+                     result_code);
       return result_code;
     }
   }
@@ -304,7 +306,7 @@ upll_rc_t VtnPolicingMapMoMgr::CreateCandidateMo(IpcReqRespHeader *req,
 }
 
 upll_rc_t VtnPolicingMapMoMgr::DeleteMo(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey, DalDmlIntf *dmi) {
+                                        ConfigKeyVal *ikey, DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   if (NULL == ikey || NULL == req || NULL == dmi) {
     UPLL_LOG_DEBUG("DeleteMo ikey and req NULL");
@@ -312,15 +314,15 @@ upll_rc_t VtnPolicingMapMoMgr::DeleteMo(IpcReqRespHeader *req,
   }
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
-  // validate syntax and semantics
+  //  validate syntax and semantics
   result_code = ValidateMessage(req, ikey);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("ValidateMessage Err (%d)", result_code);
     return result_code;
   }
 
-  // Check VTNPM object already exists in VtnPolicingMap CANDIDATE DB
-  // If record not exists, return error
+  //  Check VTNPM object already exists in VtnPolicingMap CANDIDATE DB
+  //  If record not exists, return error
   result_code = IsReferenced(ikey, req->datatype, dmi);
   if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
     UPLL_LOG_DEBUG("DeleteMo Instance not Available (%d)", result_code);
@@ -333,11 +335,11 @@ upll_rc_t VtnPolicingMapMoMgr::DeleteMo(IpcReqRespHeader *req,
     return result_code;
   }
 
-  // 1)Decerment the refcount and check if the refcount as 0 then remove
-  // the record and if refcount is not 0, then update the refcount in
-  // policingprofilectrltbl
+  //  1)Decerment the refcount and check if the refcount as 0 then remove
+  //  the record and if refcount is not 0, then update the refcount in
+  //  policingprofilectrltbl
 
-  // 2)Delete the record in policingprofileentryctrltbl
+  //  2)Delete the record in policingprofileentryctrltbl
   ConfigKeyVal *tempckv = NULL;
   result_code = GetChildConfigKey(tempckv, ikey);
   if (UPLL_RC_SUCCESS != result_code) {
@@ -346,44 +348,44 @@ upll_rc_t VtnPolicingMapMoMgr::DeleteMo(IpcReqRespHeader *req,
   }
   DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutNone };
   result_code = ReadConfigDB(tempckv, req->datatype, UNC_OP_READ, dbop, dmi,
-      MAINTBL);
+                             MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG(" ReadConfigDB failed ");
     DELETE_IF_NOT_NULL(tempckv);
     return result_code;
   }
   val_policingmap_t *val_pm = reinterpret_cast<val_policingmap_t *>
-    (GetVal(tempckv));
+      (GetVal(tempckv));
   if (UNC_VF_VALID == val_pm->valid[UPLL_IDX_POLICERNAME_PM]) {
     result_code = UpdateRefCountInPPCtrlr(tempckv, req->datatype, dmi,
-        UNC_OP_DELETE);
+                                          UNC_OP_DELETE);
     if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
       result_code = UPLL_RC_SUCCESS;
     } else if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("DeleteMo UpdateRefCountInPPCtrlr Error DB (%d)",
-          result_code);
+                     result_code);
       DELETE_IF_NOT_NULL(tempckv);
       return result_code;
     }
   }
-  // Delete a record in vtnpolicingmap CANDIDATE DB
+  //  Delete a record in vtnpolicingmap CANDIDATE DB
   result_code = UpdateConfigDB(ikey, req->datatype, req->operation, dmi,
-      MAINTBL);
+                               MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("DeleteMo record Err in vtnpolicingmaptbl (%d)",
-        result_code);
+                   result_code);
     DELETE_IF_NOT_NULL(tempckv);
     return result_code;
   }
 
-  // Delete the record in vtnpolicingmapctrltbl
+  //  Delete the record in vtnpolicingmapctrltbl
   result_code = UpdateRecordInVtnPmCtrlr(tempckv, req->datatype, UNC_OP_DELETE,
-      dmi);
+                                         dmi);
   if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
     result_code = UPLL_RC_SUCCESS;
   } else if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("DeleteMo record Err in vtnpolicingmapctrltbl (%d)",
-        result_code);
+                   result_code);
     DELETE_IF_NOT_NULL(tempckv);
     return result_code;
   }
@@ -393,7 +395,7 @@ upll_rc_t VtnPolicingMapMoMgr::DeleteMo(IpcReqRespHeader *req,
 }
 
 upll_rc_t VtnPolicingMapMoMgr::UpdateMo(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey, DalDmlIntf *dmi) {
+                                        ConfigKeyVal *ikey, DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   if (NULL == ikey || NULL == req || NULL == dmi) {
     UPLL_LOG_DEBUG("UpdateMo ikey and req NULL");
@@ -403,54 +405,24 @@ upll_rc_t VtnPolicingMapMoMgr::UpdateMo(IpcReqRespHeader *req,
 
   ConfigKeyVal *tmp_key = NULL;
 
-  // validate syntax and semantics
+  //  validate syntax and semantics
   result_code = ValidateMessage(req, ikey);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("UpdateMo ValidateMessage Err  (%d)", result_code);
     return result_code;
   }
 
-  result_code = SetRenameFlag(ikey, dmi, req);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG(" SetRenameFlag failed %d", result_code);
-    return result_code;
-  }
-
-  // Capability Check
-#if 0
-  result_code = ValidateCapability(req, ikey);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Key not supported by controller");
-    return result_code;
-  }
-#endif
-
-  // Check if VTNPM object exists in VtnPolicingMap CANDIDATE DB
-  // If record not exists, return error
-  result_code = IsReferenced(ikey, req->datatype, dmi);
-  if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-    UPLL_LOG_DEBUG("UpdateMo IsReferenced record not available (%d)",
-        result_code);
-    return result_code;
-  } else if (result_code == UPLL_RC_ERR_INSTANCE_EXISTS) {
-    UPLL_LOG_DEBUG("UpdateMo IsReferenced record available");
-  } else if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("UpdateMo IsReferenced error accessing DB (%d)",
-        result_code);
-    return result_code;
-  }
-
-  // Check Policingmap object exists in PolicingProfileTbl CANDIDATE DB
-  // If record not exists, return error code
+  //  Check Policingmap object exists in PolicingProfileTbl CANDIDATE DB
+  //  If record not exists, return error code
   val_policingmap_t *val_ival = reinterpret_cast<val_policingmap_t *>
-    (GetVal(ikey));
+      (GetVal(ikey));
   if (UNC_VF_VALID == val_ival->valid[UPLL_IDX_POLICERNAME_PM]) {
     result_code = IsPolicyProfileReferenced(ikey, req->datatype, dmi,
-        UNC_OP_READ);
+                                            UNC_OP_READ);
     if (UPLL_RC_SUCCESS != result_code) {
       if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
         UPLL_LOG_DEBUG("IsPolicyProfileReferenced record not available (%d)",
-            result_code);
+                       result_code);
         return UPLL_RC_ERR_CFG_SEMANTIC;
       } else {
         UPLL_LOG_DEBUG(
@@ -477,63 +449,63 @@ upll_rc_t VtnPolicingMapMoMgr::UpdateMo(IpcReqRespHeader *req,
   }
   DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutNone };
   result_code = ReadConfigDB(tmpckv, req->datatype, UNC_OP_READ, dbop, dmi,
-      MAINTBL);
+                             MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     DELETE_IF_NOT_NULL(tmpckv);
     UPLL_LOG_DEBUG("ReadConfigDB failed");
     return result_code;
   }
   val_policingmap_t *val_tmp_val = reinterpret_cast<val_policingmap_t *>
-    (GetVal(tmpckv));
+      (GetVal(tmpckv));
   if (UNC_VF_VALID == val_ival->valid[UPLL_IDX_POLICERNAME_PM] &&
       UNC_VF_VALID == val_tmp_val->valid[UPLL_IDX_POLICERNAME_PM]) {
     UPLL_LOG_DEBUG(" Policer name valid in DB and ikey");
     result_code = UpdateRefCountInPPCtrlr(tmpckv, req->datatype, dmi,
-        UNC_OP_DELETE);
+                                          UNC_OP_DELETE);
     if (UPLL_RC_SUCCESS != result_code) {
       if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
         DELETE_IF_NOT_NULL(tmpckv);
         UPLL_LOG_DEBUG("UpdateMo UpdateRefCountInPPCtrlr error in delete (%d)",
-          result_code);
+                       result_code);
         return result_code;
       }
     }
     result_code = UpdateRefCountInPPCtrlr(ikey, req->datatype, dmi,
-        UNC_OP_CREATE);
+                                          UNC_OP_CREATE);
     if (UPLL_RC_SUCCESS != result_code) {
       if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
         DELETE_IF_NOT_NULL(tmpckv);
         UPLL_LOG_DEBUG("UpdateMo UpdateRefCountInPPCtrlr error in create (%d)",
-            result_code);
+                       result_code);
         return result_code;
       }
     }
   } else if ((UNC_VF_VALID_NO_VALUE == val_tmp_val->
-      valid[UPLL_IDX_POLICERNAME_PM] ||
-      UNC_VF_INVALID == val_tmp_val->valid[UPLL_IDX_POLICERNAME_PM])&&
-      UNC_VF_VALID == val_ival->valid[UPLL_IDX_POLICERNAME_PM]) {
+              valid[UPLL_IDX_POLICERNAME_PM] ||
+              UNC_VF_INVALID == val_tmp_val->valid[UPLL_IDX_POLICERNAME_PM])&&
+             UNC_VF_VALID == val_ival->valid[UPLL_IDX_POLICERNAME_PM]) {
     UPLL_LOG_DEBUG(" Policer name valid in ikey and validnovalue in DB");
     result_code = UpdateRefCountInPPCtrlr(ikey, req->datatype, dmi,
-        UNC_OP_CREATE);
+                                          UNC_OP_CREATE);
     if (UPLL_RC_SUCCESS != result_code) {
       if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
         DELETE_IF_NOT_NULL(tmpckv);
         UPLL_LOG_DEBUG("UpdateMo UpdateRefCountInPPCtrlr error in create (%d)",
-            result_code);
+                       result_code);
         return result_code;
       }
     }
   } else if (UNC_VF_VALID == val_tmp_val->valid[UPLL_IDX_POLICERNAME_PM] &&
-      UNC_VF_VALID_NO_VALUE == val_ival->
-      valid[UPLL_IDX_POLICERNAME_PM]) {
+             UNC_VF_VALID_NO_VALUE == val_ival->
+             valid[UPLL_IDX_POLICERNAME_PM]) {
     UPLL_LOG_DEBUG(" Policer name validnovalue in ikey and valid in db");
     result_code = UpdateRefCountInPPCtrlr(tmpckv, req->datatype, dmi,
-        UNC_OP_DELETE);
+                                          UNC_OP_DELETE);
     if (UPLL_RC_SUCCESS != result_code) {
       if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
         DELETE_IF_NOT_NULL(tmpckv);
         UPLL_LOG_DEBUG("UpdateMo UpdateRefCountInPPCtrlr error in delete (%d)",
-            result_code);
+                       result_code);
         return result_code;
       }
     }
@@ -544,24 +516,24 @@ upll_rc_t VtnPolicingMapMoMgr::UpdateMo(IpcReqRespHeader *req,
   UPLL_LOG_DEBUG("Flag in ikey: %d", temp_flag);
   DbSubOp dbop1 = {kOpNotRead, kOpMatchNone, kOpInOutFlag};
   result_code = UpdateConfigDB(ikey, req->datatype, req->operation, dmi,
-      &dbop1, MAINTBL);
+                               &dbop1, MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     DELETE_IF_NOT_NULL(tmp_key);
     UPLL_LOG_DEBUG("Create record Err in vtnpolicingmaptbl CANDIDATE DB(%d)",
-        result_code);
+                   result_code);
     DELETE_IF_NOT_NULL(tmpckv);
     return result_code;
   }
 
   /* Update the record in vtnpolicingmapctrltbl */
   result_code = UpdateRecordInVtnPmCtrlr(ikey, req->datatype, UNC_OP_UPDATE,
-      dmi);
+                                         dmi);
   if (UPLL_RC_SUCCESS != result_code) {
     if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
       DELETE_IF_NOT_NULL(tmp_key);
       DELETE_IF_NOT_NULL(tmpckv);
       UPLL_LOG_DEBUG("Create record Err in vtnpolicingmaptbl CANDIDATE DB(%d)",
-          result_code);
+                     result_code);
       return result_code;
     }
   }
@@ -571,16 +543,21 @@ upll_rc_t VtnPolicingMapMoMgr::UpdateMo(IpcReqRespHeader *req,
 }
 
 upll_rc_t VtnPolicingMapMoMgr::IsReferenced(ConfigKeyVal *ikey,
-    upll_keytype_datatype_t dt_type,
-    DalDmlIntf *dmi) {
+                                            upll_keytype_datatype_t dt_type,
+                                            DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
   if (NULL == ikey) return UPLL_RC_ERR_GENERIC;
   DbSubOp dbop = { kOpReadExist, kOpMatchNone, kOpInOutNone };
 
-  // Check the exixtence in vtnpolicingmaptbl
-  result_code = UpdateConfigDB(ikey, dt_type, UNC_OP_READ, dmi, &dbop, MAINTBL);
+  //  Check the exixtence in vtnpolicingmaptbl
+  result_code = UpdateConfigDB(ikey,
+                               dt_type,
+                               UNC_OP_READ,
+                               dmi,
+                               &dbop,
+                               MAINTBL);
   UPLL_LOG_DEBUG("VtnPolicingMapMoMgr::IsReferenced IsReferenced status");
 
   return result_code;
@@ -594,10 +571,10 @@ upll_rc_t VtnPolicingMapMoMgr::IsPolicyProfileReferenced(
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
   ConfigKeyVal *okey = NULL;
-  // Get the memory allocated policy profile key structure
+  //  Get the memory allocated policy profile key structure
   MoMgrImpl *mgr =
-    reinterpret_cast<MoMgrImpl *>((const_cast<MoManager*>(GetMoManager(
-              UNC_KT_POLICING_PROFILE))));
+      reinterpret_cast<MoMgrImpl *>((const_cast<MoManager*>(GetMoManager(
+                      UNC_KT_POLICING_PROFILE))));
   if (!mgr) {
     UPLL_LOG_DEBUG("IsPolicyProfileReferenced mgr NULL");
     return UPLL_RC_ERR_GENERIC;
@@ -605,11 +582,11 @@ upll_rc_t VtnPolicingMapMoMgr::IsPolicyProfileReferenced(
   result_code = mgr->GetChildConfigKey(okey, NULL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("IsPolicyProfileReferenced GetChildConfigKey (%d)",
-        result_code);
+                   result_code);
     return result_code;
   }
   if (!okey) return UPLL_RC_ERR_GENERIC;
-  // Get the policer name and fill in policingprofile key structure
+  //  Get the policer name and fill in policingprofile key structure
   uuu::upll_strncpy(
       reinterpret_cast<key_policingprofile_t *>
       (okey->get_key())->policingprofile_name,
@@ -618,7 +595,7 @@ upll_rc_t VtnPolicingMapMoMgr::IsPolicyProfileReferenced(
       (kMaxLenPolicingProfileName + 1));
   DbSubOp dbop = { kOpReadExist, kOpMatchNone, kOpInOutNone };
 
-  // Check the existence in policingprofiletbl
+  //  Check the existence in policingprofiletbl
   result_code = mgr->UpdateConfigDB(okey, dt_type, op, dmi, &dbop, MAINTBL);
   if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
     UPLL_LOG_DEBUG("UpdateConfigDB failed %d", result_code);
@@ -628,11 +605,12 @@ upll_rc_t VtnPolicingMapMoMgr::IsPolicyProfileReferenced(
   val_policingmap_t *val_pm = reinterpret_cast<val_policingmap_t*>
       (GetVal(ikey));
   PolicingProfileEntryMoMgr *ppe_mgr =
-    reinterpret_cast<PolicingProfileEntryMoMgr*>
-    (const_cast<MoManager *>(GetMoManager
-                             (UNC_KT_POLICING_PROFILE_ENTRY)));
-  result_code = ppe_mgr->ValidateValidElements(reinterpret_cast
-    <const char *>(val_pm->policer_name), dmi, dt_type);
+      reinterpret_cast<PolicingProfileEntryMoMgr*>
+      (const_cast<MoManager *>(GetMoManager
+                               (UNC_KT_POLICING_PROFILE_ENTRY)));
+  result_code = ppe_mgr->ValidateValidElements(
+      reinterpret_cast
+      <const char *>(val_pm->policer_name), dmi, dt_type);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("ValidateValidElements failed %d", result_code);
     return result_code;
@@ -650,22 +628,22 @@ upll_rc_t VtnPolicingMapMoMgr::UpdateRefCountInPPCtrlr(
   ConfigKeyVal *okey = NULL;
   uint8_t *ctrlr_id = NULL;
 
-  // Get the momory alloctaed vtn key structure
+  //  Get the momory alloctaed vtn key structure
   VtnMoMgr *vtnmgr =
-    static_cast<VtnMoMgr *>((const_cast<MoManager *>
-          (GetMoManager(UNC_KT_VTN))));
+      static_cast<VtnMoMgr *>((const_cast<MoManager *>
+                               (GetMoManager(UNC_KT_VTN))));
   result_code = vtnmgr->GetChildConfigKey(okey, NULL);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("UpdateRefCountInPPCtrlr GetChildConfigKey error (%d)",
-        result_code);
+                   result_code);
     return result_code;
   }
   if (!okey) return UPLL_RC_ERR_GENERIC;
-  // To get the vtn associated controller name
+  //  To get the vtn associated controller name
   key_vtn_t *vtn_okey = reinterpret_cast<key_vtn_t *>(okey->get_key());
   key_vtn_t *vtn_ikey = reinterpret_cast<key_vtn_t *>(ikey->get_key());
   uuu::upll_strncpy(vtn_okey->vtn_name, vtn_ikey->vtn_name,
-      kMaxLenVtnName+1);
+                    kMaxLenVtnName+1);
   result_code = vtnmgr->GetControllerDomainSpan(okey, dt_type, dmi);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("GetControllerSpan  no instance/error (%d)", result_code);
@@ -674,21 +652,21 @@ upll_rc_t VtnPolicingMapMoMgr::UpdateRefCountInPPCtrlr(
   }
 
   PolicingProfileMoMgr *pp_mgr =
-    reinterpret_cast<PolicingProfileMoMgr *>
-    (const_cast<MoManager *>(GetMoManager(UNC_KT_POLICING_PROFILE)));
+      reinterpret_cast<PolicingProfileMoMgr *>
+      (const_cast<MoManager *>(GetMoManager(UNC_KT_POLICING_PROFILE)));
   /*
-  PolicingProfileEntryMoMgr *ppe_mgr =
-    reinterpret_cast<PolicingProfileEntryMoMgr *>
-    (const_cast<MoManager *>(GetMoManager(
-                                          UNC_KT_POLICING_PROFILE_ENTRY)));*/
+     PolicingProfileEntryMoMgr *ppe_mgr =
+     reinterpret_cast<PolicingProfileEntryMoMgr *>
+     (const_cast<MoManager *>(GetMoManager(
+     UNC_KT_POLICING_PROFILE_ENTRY)));*/
 
   val_policingmap_t* val_vtn_policingmap =
-    reinterpret_cast<val_policingmap_t *>(GetVal(ikey));
+      reinterpret_cast<val_policingmap_t *>(GetVal(ikey));
 
-  // Vtn Associated ctrl name
+  //  Vtn Associated ctrl name
   ConfigKeyVal *tmp_ckv = okey;
   while (NULL != okey) {
-    // Get the controller name
+    //  Get the controller name
     GET_USER_DATA_CTRLR(okey, ctrlr_id);
 
     if (NULL == ctrlr_id) {
@@ -697,17 +675,17 @@ upll_rc_t VtnPolicingMapMoMgr::UpdateRefCountInPPCtrlr(
       return UPLL_RC_ERR_GENERIC;
     }
 
-    // Check the ref count capability of vtn associated controller name in
-    // policingprofilectrltbl If any of one refcount reached the
-    // max capability, then return error
-    // If all the ref count is less than capability
-    // then increment and update the refcount if record exist in
-    // policingprofilectrltbl and create the record with refcount if record not
-    // exist in policingprofilectrl tbl for the vtn associated controller name
+    //  Check the ref count capability of vtn associated controller name in
+    //  policingprofilectrltbl If any of one refcount reached the
+    //  max capability, then return error
+    //  If all the ref count is less than capability
+    //  then increment and update the refcount if record exist in
+    //  policingprofilectrltbl and create the record with refcount if record not
+    //  exist in policingprofilectrl tbl for the vtn associated controller name
     UPLL_LOG_DEBUG("PP name in GetPolicingProfileCtrlrKeyval %s",
-        val_vtn_policingmap->policer_name);
+                   val_vtn_policingmap->policer_name);
     UPLL_LOG_DEBUG("Ctrlrid in GetPolicingProfileCtrlrKeyval %s",
-        ctrlr_id);
+                   ctrlr_id);
     result_code = pp_mgr->PolicingProfileCtrlrTblOper(
         reinterpret_cast<const char *>(val_vtn_policingmap->policer_name),
         reinterpret_cast<const char *>(ctrlr_id), dmi, op, dt_type);
@@ -715,8 +693,8 @@ upll_rc_t VtnPolicingMapMoMgr::UpdateRefCountInPPCtrlr(
       DELETE_IF_NOT_NULL(okey);
       return result_code;
     }
-    // Create the record in policingprofileentryctrltbl
-    #if 0
+    //  Create the record in policingprofileentryctrltbl
+#if 0
     result_code = ppe_mgr->PolicingProfileEntryCtrlrTblOper(
         reinterpret_cast<const char *>(val_vtn_policingmap->policer_name),
         reinterpret_cast<const char *>(ctrlr_id), dmi, op, dt_type);
@@ -724,7 +702,7 @@ upll_rc_t VtnPolicingMapMoMgr::UpdateRefCountInPPCtrlr(
       DELETE_IF_NOT_NULL(okey);
       return result_code;
     }
-    #endif
+#endif
     okey = okey->get_next_cfg_key_val();
   }
   DELETE_IF_NOT_NULL(tmp_ckv);
@@ -743,13 +721,13 @@ upll_rc_t VtnPolicingMapMoMgr::UpdateRecordInVtnPmCtrlr(
     return UPLL_RC_ERR_GENERIC;
   }
   VtnMoMgr *vtnmgr =
-    static_cast<VtnMoMgr *>((const_cast<MoManager *>
-          (GetMoManager(UNC_KT_VTN))));
-  // Get the memory allocated vtn key structure
+      static_cast<VtnMoMgr *>((const_cast<MoManager *>
+                               (GetMoManager(UNC_KT_VTN))));
+  //  Get the memory allocated vtn key structure
   result_code = vtnmgr->GetChildConfigKey(temp_okey, NULL);
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG(" GetChildConfigKey error (%d)",
-        result_code);
+                   result_code);
     return result_code;
   }
   key_vtn_t *vtn_okey = reinterpret_cast<key_vtn_t *>(temp_okey->get_key());
@@ -759,9 +737,9 @@ upll_rc_t VtnPolicingMapMoMgr::UpdateRecordInVtnPmCtrlr(
     return UPLL_RC_ERR_GENERIC;
   }
   uuu::upll_strncpy(vtn_okey->vtn_name, vtn_key->vtn_name,
-      kMaxLenVtnName+1);
+                    kMaxLenVtnName+1);
   UPLL_LOG_DEBUG(" vtn_name %s", vtn_okey->vtn_name);
-  // Get the vtn associated controller name
+  //  Get the vtn associated controller name
   result_code = vtnmgr->GetControllerDomainSpan(temp_okey, dt_type, dmi);
   if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
     UPLL_LOG_DEBUG(" No entry in vtn ctrlr tbl");
@@ -770,7 +748,7 @@ upll_rc_t VtnPolicingMapMoMgr::UpdateRecordInVtnPmCtrlr(
   }
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("GetControllerSpan error (%d)",
-        result_code);
+                   result_code);
     DELETE_IF_NOT_NULL(temp_okey);
     return result_code;
   }
@@ -783,103 +761,69 @@ upll_rc_t VtnPolicingMapMoMgr::UpdateRecordInVtnPmCtrlr(
     result_code = GetPMCtrlKeyval(ctrlckv, ikey, &ctrlr_dom);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("CheckRefCountCapability GetPMCtrlKeyval error (%d)",
-          result_code);
+                     result_code);
       DELETE_IF_NOT_NULL(temp_okey);
       return result_code;
     }
     if ((op == UNC_OP_CREATE) || (op ==UNC_OP_UPDATE)) {
-      if (op == UNC_OP_CREATE) {
-        DbSubOp dbop = {kOpReadExist, kOpMatchCtrlr | kOpMatchDomain,
-                        kOpInOutNone};
-        result_code = UpdateConfigDB(ctrlckv, dt_type, UNC_OP_READ, dmi,
-                                     &dbop, CTRLRTBL);
-        if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
-          if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code) {
-            UPLL_LOG_DEBUG("UpdateConfigDB failed %d", result_code);
-            DELETE_IF_NOT_NULL(ctrlckv);
-            okey = okey->get_next_cfg_key_val();
-            continue;
-          }
-          UPLL_LOG_DEBUG("UpdateConfigDB failed %d", result_code);
-          DELETE_IF_NOT_NULL(temp_okey);
-          DELETE_IF_NOT_NULL(ctrlckv);
-          return result_code;
-        }
-        ConfigKeyVal *temp_key = NULL;
-
-        result_code = GetChildConfigKey(temp_key, NULL);
-        if (UPLL_RC_SUCCESS != result_code) {
-          DELETE_IF_NOT_NULL(temp_okey);
-          DELETE_IF_NOT_NULL(ctrlckv);
-          UPLL_LOG_DEBUG("GetChildConfigKey failed(%d)",result_code);
-          return result_code;
-        }
-
-        result_code = GetInstanceCount(temp_key, reinterpret_cast<char*>(ctrlr_dom.ctrlr),
-                                     dt_type,
-                                     &cur_instance_count,
-                                     dmi, CTRLRTBL);
-        UPLL_LOG_INFO("cur_instance_count = %d", cur_instance_count);
-        DELETE_IF_NOT_NULL(temp_key);
-         
-        if (UPLL_RC_SUCCESS != result_code) {
-          DELETE_IF_NOT_NULL(temp_okey);
-          DELETE_IF_NOT_NULL(ctrlckv);
-          UPLL_LOG_DEBUG("GetInstanceCount failed(%d)",result_code);
-          return result_code;
-        }
-      }
       IpcReqRespHeader *temp_req = reinterpret_cast<IpcReqRespHeader *>
-                 (ConfigKeyVal::Malloc(sizeof(IpcReqRespHeader)));
+          (ConfigKeyVal::Malloc(sizeof(IpcReqRespHeader)));
 
       temp_req->datatype = dt_type;
       temp_req->operation = op;
-    
+
       result_code = ValidateCapability(
-        temp_req, ikey, reinterpret_cast<char *>(ctrlr_dom.ctrlr));
-    
+          temp_req, ikey, reinterpret_cast<char *>(ctrlr_dom.ctrlr));
+
       free(temp_req);
-      
+
       unc_keytype_ctrtype_t ctrlrtype = UNC_CT_UNKNOWN;
       uuc::CtrlrMgr *ctrlr_mgr = uuc::CtrlrMgr::GetInstance();
       if (result_code != UPLL_RC_SUCCESS) {
-         DELETE_IF_NOT_NULL(ctrlckv);
-         // VTN PolicingMap is not supported for other than PFC Controller
-         // so skip adding entry for such sontroller in ctrlr table
-         if ((!ctrlr_mgr->GetCtrlrType(reinterpret_cast<char *>(ctrlr_dom.ctrlr),
-                       dt_type, &ctrlrtype)) || (ctrlrtype != UNC_CT_PFC)) {
-            result_code = UPLL_RC_SUCCESS; 
-            UPLL_LOG_DEBUG("Controller type is  %d", ctrlrtype);
-            okey = okey->get_next_cfg_key_val();
-            continue;
-         }
-          DELETE_IF_NOT_NULL(okey);
-          UPLL_LOG_DEBUG("Key not supported by controller");
-          return result_code;
+        DELETE_IF_NOT_NULL(ctrlckv);
+        //  VTN PolicingMap is not supported for other than PFC Controller
+        //  so skip adding entry for such sontroller in ctrlr table
+        if ((!ctrlr_mgr->GetCtrlrType(
+                    reinterpret_cast<char *>(ctrlr_dom.ctrlr),
+                    dt_type, &ctrlrtype)) || (ctrlrtype != UNC_CT_PFC)) {
+          result_code = UPLL_RC_SUCCESS;
+          UPLL_LOG_DEBUG("Controller type is  %d", ctrlrtype);
+          okey = okey->get_next_cfg_key_val();
+          continue;
+        }
+        DELETE_IF_NOT_NULL(okey);
+        UPLL_LOG_DEBUG("Key not supported by controller");
+        return result_code;
       }
       val_policingmap_t *val_policingmap =
-        reinterpret_cast<val_policingmap_t*>(GetVal(ikey));
-     val_vtnpolicingmap_ctrl *val_vtnpmap_ctrl = static_cast<
-              val_vtnpolicingmap_ctrl*>(GetVal(ctrlckv));
+          reinterpret_cast<val_policingmap_t*>(GetVal(ikey));
+      val_vtnpolicingmap_ctrl *val_vtnpmap_ctrl = static_cast<
+          val_vtnpolicingmap_ctrl*>(GetVal(ctrlckv));
       for ( unsigned int loop = 0;
-              loop < sizeof
-              (val_vtnpmap_ctrl->valid)/sizeof(val_vtnpmap_ctrl->valid[0]);
-              ++loop ) {
-         if (val_policingmap->valid[loop] == UNC_VF_NOT_SUPPORTED)
-           val_vtnpmap_ctrl->valid[loop] = UNC_VF_INVALID;
-         else
-           val_vtnpmap_ctrl->valid[loop] =
-                val_policingmap->valid[loop];
+           loop < sizeof
+           (val_vtnpmap_ctrl->valid)/sizeof(val_vtnpmap_ctrl->valid[0]);
+           ++loop ) {
+        if (val_policingmap->valid[loop] == UNC_VF_NOT_SUPPORTED)
+          val_vtnpmap_ctrl->valid[loop] = UNC_VF_INVALID;
+        else
+          val_vtnpmap_ctrl->valid[loop] =
+              val_policingmap->valid[loop];
       }
     }
 
-    // Create/Update/Delete a record in CANDIDATE DB
+    //  Create/Update/Delete a record in CANDIDATE DB
     result_code = UpdateConfigDB(ctrlckv, dt_type, op, dmi, CTRLRTBL);
     if (UPLL_RC_SUCCESS != result_code) {
+      if ((UNC_OP_CREATE == op) &&
+          (UPLL_RC_ERR_INSTANCE_EXISTS == result_code)) {
+        DELETE_IF_NOT_NULL(ctrlckv);
+        okey = okey->get_next_cfg_key_val();
+        continue;
+      }
       DELETE_IF_NOT_NULL(temp_okey);
       DELETE_IF_NOT_NULL(ctrlckv);
       UPLL_LOG_DEBUG("Create record Err in vtnpolicingmapctrlrtbl CAN DB(%d)",
-          result_code);
+                     result_code);
       return result_code;
     }
     DELETE_IF_NOT_NULL(ctrlckv);
@@ -911,9 +855,9 @@ upll_rc_t VtnPolicingMapMoMgr::UpdateControllerTableForVtn(
       (ikey->get_key());
   uuu::upll_strncpy(vtn_key->vtn_name, vtn_name, kMaxLenVtnName+1);
   DbSubOp dbop = {kOpReadSingle, kOpMatchNone, kOpInOutCs | kOpInOutFlag};
-  // Read the Configuration from the MainTable
+  //  Read the Configuration from the MainTable
   result_code = ReadConfigDB(ikey, dt_type,
-      UNC_OP_READ, dbop, dmi, MAINTBL);
+                             UNC_OP_READ, dbop, dmi, MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
     if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
       UPLL_LOG_DEBUG("No Records in main table to be created in ctrlr tbl");
@@ -926,11 +870,11 @@ upll_rc_t VtnPolicingMapMoMgr::UpdateControllerTableForVtn(
   if (flag != 0) {
     uint8_t temp_flag = 0;
     GET_USER_DATA_FLAGS(ikey, temp_flag);
-    flag = flag | temp_flag; 
+    flag = flag | temp_flag;
     SET_USER_DATA_FLAGS(ikey, flag);
     DbSubOp dbop1 = {kOpNotRead, kOpMatchNone, kOpInOutCs | kOpInOutFlag};
     result_code = UpdateConfigDB(ikey, dt_type, UNC_OP_UPDATE,
-        dmi, &dbop1, MAINTBL);
+                                 dmi, &dbop1, MAINTBL);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("UpdateConfigDB failed %d", result_code);
       return result_code;
@@ -950,109 +894,96 @@ upll_rc_t VtnPolicingMapMoMgr::UpdateControllerTableForVtn(
     }
 
     if (op == UNC_OP_CREATE) {
-      ConfigKeyVal *temp_key = NULL;
-
-      result_code = GetChildConfigKey(temp_key, NULL);
-      if (UPLL_RC_SUCCESS != result_code) {
-        DELETE_IF_NOT_NULL(ikey);
-        DELETE_IF_NOT_NULL(ctrlckv);
-        UPLL_LOG_DEBUG("GetChildConfigKey failed(%d)",result_code);
-        return result_code;
-      }
-
-      result_code = GetInstanceCount(temp_key, reinterpret_cast<char*>(ctrlr_dom->ctrlr),
-                                   dt_type,
-                                   &cur_instance_count,
-                                   dmi, CTRLRTBL);
-      DELETE_IF_NOT_NULL(temp_key);
-
-      if (result_code != UPLL_RC_SUCCESS) {
-        DELETE_IF_NOT_NULL(ikey);
-        DELETE_IF_NOT_NULL(ctrlckv);
-        UPLL_LOG_DEBUG("GetInstanceCount failed(%d)",result_code);
-        return result_code;
-      }
-
       IpcReqRespHeader *temp_req = reinterpret_cast<IpcReqRespHeader *>
-                (ConfigKeyVal::Malloc(sizeof(IpcReqRespHeader)));
+          (ConfigKeyVal::Malloc(sizeof(IpcReqRespHeader)));
       temp_req->datatype = UPLL_DT_CANDIDATE;
       temp_req->operation = op;
-    
-      result_code = ValidateCapability(temp_req, ikey, reinterpret_cast<char *>(ctrlr_dom->ctrlr));
+
+      result_code = ValidateCapability(
+          temp_req,
+          ikey,
+          reinterpret_cast<char *>(ctrlr_dom->ctrlr));
 
       free(temp_req);
 
       if (result_code != UPLL_RC_SUCCESS) {
-         DELETE_IF_NOT_NULL(ctrlckv);
-         DELETE_IF_NOT_NULL(ikey);
-         // VTN PolicingMap is not supported for other than PFC Controller
-         // so skip adding entry for such sontroller in ctrlr table
-         if ((!ctrlr_mgr->GetCtrlrType(reinterpret_cast<char *>(ctrlr_dom->ctrlr),
-                       dt_type, &ctrlrtype)) || (ctrlrtype != UNC_CT_PFC)) {
-            result_code = UPLL_RC_SUCCESS; 
-            UPLL_LOG_DEBUG("Controller type is  %d", ctrlrtype);
-            return result_code;
-         }
-         UPLL_LOG_DEBUG("Key not supported by controller");
-         return result_code;
+        DELETE_IF_NOT_NULL(ctrlckv);
+        DELETE_IF_NOT_NULL(ikey);
+        //  VTN PolicingMap is not supported for other than PFC Controller
+        //  so skip adding entry for such sontroller in ctrlr table
+        if ((!ctrlr_mgr->GetCtrlrType(
+                    reinterpret_cast<char *>(ctrlr_dom->ctrlr),
+                    dt_type, &ctrlrtype)) || (ctrlrtype != UNC_CT_PFC)) {
+          result_code = UPLL_RC_SUCCESS;
+          UPLL_LOG_DEBUG("Controller type is  %d", ctrlrtype);
+          return result_code;
+        }
+        UPLL_LOG_DEBUG("Key not supported by controller");
+        return result_code;
       }
 
-      val_policingmap_t *val_policingmap = reinterpret_cast<val_policingmap_t*>(GetVal(ikey));
-  
-      val_vtnpolicingmap_ctrl *val_vtnpmap_ctrl = reinterpret_cast<val_vtnpolicingmap_ctrl*>
-              (GetVal(ctrlckv));
+      val_policingmap_t *val_policingmap =
+          reinterpret_cast<val_policingmap_t*>(GetVal(ikey));
+
+      val_vtnpolicingmap_ctrl *val_vtnpmap_ctrl =
+          reinterpret_cast<val_vtnpolicingmap_ctrl*>
+          (GetVal(ctrlckv));
       for ( unsigned int loop = 0; loop < sizeof
-                (val_vtnpmap_ctrl->valid)/sizeof(val_vtnpmap_ctrl->valid[0]);
-                ++loop ) {
-         if (val_policingmap->valid[loop] == UNC_VF_NOT_SUPPORTED)
-           val_vtnpmap_ctrl->valid[loop] = UNC_VF_INVALID;
-         else
-           val_vtnpmap_ctrl->valid[loop] =
-                  val_policingmap->valid[loop];
+           (val_vtnpmap_ctrl->valid)/sizeof(val_vtnpmap_ctrl->valid[0]);
+           ++loop ) {
+        if (val_policingmap->valid[loop] == UNC_VF_NOT_SUPPORTED)
+          val_vtnpmap_ctrl->valid[loop] = UNC_VF_INVALID;
+        else
+          val_vtnpmap_ctrl->valid[loop] =
+              val_policingmap->valid[loop];
       }
     }
-    // Create the entry in VTNPMCtrl table
+    //  Create the entry in VTNPMCtrl table
     if (UPLL_DT_AUDIT == dt_type && UNC_OP_CREATE == op) {
       val_vtnpolicingmap_ctrl_t *valvtnctrlr = reinterpret_cast
-        <val_vtnpolicingmap_ctrl_t *>(GetVal(ctrlckv));
+          <val_vtnpolicingmap_ctrl_t *>(GetVal(ctrlckv));
       val_policingmap_t *valvtn = reinterpret_cast
-        <val_policingmap_t *>(GetVal(ikey));
+          <val_policingmap_t *>(GetVal(ikey));
       valvtnctrlr->cs_attr[0] = valvtn->cs_attr[0];
       valvtnctrlr->cs_row_status = valvtn->cs_row_status;
-      UPLL_LOG_DEBUG("Setting cs for ctrlr tbl in vtnpm cs %d row %d", valvtnctrlr->cs_attr[0], valvtnctrlr->cs_row_status );
-      UPLL_LOG_DEBUG("Setting cs for main tbl in vtnpm cs %d row %d", valvtn->cs_attr[0], valvtn->cs_row_status );
+      UPLL_LOG_DEBUG("Setting cs for ctrlr tbl in vtnpm cs %d row %d",
+                     valvtnctrlr->cs_attr[0],
+                     valvtnctrlr->cs_row_status);
+      UPLL_LOG_DEBUG("Setting cs for main tbl in vtnpm cs %d row %d",
+                     valvtn->cs_attr[0],
+                     valvtn->cs_row_status);
     }
     result_code = UpdateConfigDB(ctrlckv, dt_type, op,
-        dmi, CTRLRTBL);
+                                 dmi, CTRLRTBL);
     if (UPLL_RC_SUCCESS != result_code) {
       DELETE_IF_NOT_NULL(ctrlckv);
       DELETE_IF_NOT_NULL(ikey);
       UPLL_LOG_DEBUG("Err while updating in ctrlr table for candidateDb(%d)",
-          result_code);
+                     result_code);
       return result_code;
     }
 
     PolicingProfileMoMgr *pp_mgr =
-      reinterpret_cast<PolicingProfileMoMgr *>
-      (const_cast<MoManager *>(GetMoManager(UNC_KT_POLICING_PROFILE)));
+        reinterpret_cast<PolicingProfileMoMgr *>
+        (const_cast<MoManager *>(GetMoManager(UNC_KT_POLICING_PROFILE)));
 
     val_policingmap_t* val_vtn_policingmap =
-      reinterpret_cast<val_policingmap_t *>(GetVal(ikey));
+        reinterpret_cast<val_policingmap_t *>(GetVal(ikey));
 
     UPLL_LOG_DEBUG("PP name in GetPolicingProfileCtrlrKeyval %s",
-        val_vtn_policingmap->policer_name);
+                   val_vtn_policingmap->policer_name);
     UPLL_LOG_DEBUG("Ctrlrid in GetPolicingProfileCtrlrKeyval %s",
-        ctrlr_dom->ctrlr);
+                   ctrlr_dom->ctrlr);
 
-    // Cretae the entry in PPCtrl table
+    //  Cretae the entry in PPCtrl table
     result_code = pp_mgr->PolicingProfileCtrlrTblOper(
         reinterpret_cast<const char *>(val_vtn_policingmap->policer_name),
         reinterpret_cast<const char *>(ctrlr_dom->ctrlr),
         dmi, op, dt_type);
     if (UPLL_RC_SUCCESS != result_code) {
-       DELETE_IF_NOT_NULL(ctrlckv);
-       DELETE_IF_NOT_NULL(ikey);
-       return result_code;
+      DELETE_IF_NOT_NULL(ctrlckv);
+      DELETE_IF_NOT_NULL(ikey);
+      return result_code;
     }
 
     DELETE_IF_NOT_NULL(ikey);
@@ -1063,38 +994,39 @@ upll_rc_t VtnPolicingMapMoMgr::UpdateControllerTableForVtn(
 }
 
 upll_rc_t VtnPolicingMapMoMgr::GetPMCtrlKeyval(ConfigKeyVal *&ctrlckv,
-    ConfigKeyVal *&ikey,
-    controller_domain *ctrlr_dom) {
+                                               ConfigKeyVal *&ikey,
+                                               controller_domain *ctrlr_dom) {
   UPLL_FUNC_TRACE;
   ConfigVal *ctrlcv = NULL;
 
   key_vtn_t *key_vtnpmctrlr =
-    reinterpret_cast<key_vtn_t *>(ConfigKeyVal::Malloc(sizeof(key_vtn_t)));
-  // Get the vtn name and ctrlr id and fill it with
-  // key_vtn_policingmap_controller_t structure
+      reinterpret_cast<key_vtn_t *>(ConfigKeyVal::Malloc(sizeof(key_vtn_t)));
+  //  Get the vtn name and ctrlr id and fill it with
+  //  key_vtn_policingmap_controller_t structure
   uuu::upll_strncpy(
       key_vtnpmctrlr->vtn_name,
       reinterpret_cast<key_vtn_t*>
       (ikey->get_key())->vtn_name,
       (kMaxLenVtnName + 1));
 
-  // Get the policer name and fill it with val_vtnpolicingmap_ctrl_t structure
+  //  Get the policer name and fill it with val_vtnpolicingmap_ctrl_t structure
   val_vtnpolicingmap_ctrl_t *valvtnctrlr =
-    reinterpret_cast<val_vtnpolicingmap_ctrl_t *>
-    (ConfigKeyVal::Malloc(sizeof(val_vtnpolicingmap_ctrl_t)));
+      reinterpret_cast<val_vtnpolicingmap_ctrl_t *>
+      (ConfigKeyVal::Malloc(sizeof(val_vtnpolicingmap_ctrl_t)));
 
   if (NULL != GetVal(ikey)) {
     UPLL_LOG_DEBUG("ikey with val structure");
     valvtnctrlr->valid[UPLL_IDX_POLICERNAME_PM] =
-      reinterpret_cast<val_policingmap_t*>(ikey->get_cfg_val()->get_val())
-      ->valid[UPLL_IDX_POLICERNAME_PM];
+        reinterpret_cast<val_policingmap_t*>(ikey->get_cfg_val()->get_val())
+        ->valid[UPLL_IDX_POLICERNAME_PM];
     if (UNC_VF_VALID == valvtnctrlr->valid[UPLL_IDX_POLICERNAME_PM]) {
       uuu::upll_strncpy(
           reinterpret_cast<char *>(valvtnctrlr->policer_name),
-          reinterpret_cast<const char*>(reinterpret_cast<val_policingmap_t*>
-            (ikey->get_cfg_val()->get_val())->policer_name),
+          reinterpret_cast<const char*>(
+              reinterpret_cast<val_policingmap_t*>
+              (ikey->get_cfg_val()->get_val())->policer_name),
           kMaxLenPolicingProfileName + 1);
-    }    
+    }
   } else {
     UPLL_LOG_DEBUG("ikey with no val structure");
     free(valvtnctrlr);
@@ -1104,8 +1036,8 @@ upll_rc_t VtnPolicingMapMoMgr::GetPMCtrlKeyval(ConfigKeyVal *&ctrlckv,
 
   ctrlcv = new ConfigVal(IpctSt::kIpcInvalidStNum, valvtnctrlr);
   ctrlckv = new ConfigKeyVal(UNC_KT_VTN_POLICINGMAP,
-      IpctSt::kIpcStKeyVtn,
-      key_vtnpmctrlr, ctrlcv);
+                             IpctSt::kIpcStKeyVtn,
+                             key_vtnpmctrlr, ctrlcv);
 
   if (ctrlckv == NULL) {
     UPLL_LOG_DEBUG("GetPMCtrlKeyval error ");
@@ -1128,14 +1060,14 @@ upll_rc_t VtnPolicingMapMoMgr::IsPolicingProfileConfigured(
   }
   if (!ckv) return UPLL_RC_ERR_GENERIC;
   val_policingmap_t *pm_val = reinterpret_cast
-    < val_policingmap_t *>(ConfigKeyVal::Malloc(sizeof(val_policingmap_t)));
+      < val_policingmap_t *>(ConfigKeyVal::Malloc(sizeof(val_policingmap_t)));
   uuu::upll_strncpy(pm_val->policer_name, policingprofile_name,
-      (kMaxLenPolicingProfileName + 1));
+                    (kMaxLenPolicingProfileName + 1));
   pm_val->valid[UPLL_IDX_POLICERNAME_PM] = UNC_VF_VALID;
   ckv->AppendCfgVal(IpctSt::kIpcStValPolicingmap, pm_val);
   DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutNone };
   result_code = ReadConfigDB(ckv, UPLL_DT_CANDIDATE, UNC_OP_READ, dbop,
-              dmi, MAINTBL);
+                             dmi, MAINTBL);
   DELETE_IF_NOT_NULL(ckv);
   if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
     return UPLL_RC_SUCCESS;
@@ -1146,8 +1078,8 @@ upll_rc_t VtnPolicingMapMoMgr::IsPolicingProfileConfigured(
 }
 
 upll_rc_t VtnPolicingMapMoMgr::ReadMo(IpcReqRespHeader *req,
-                                          ConfigKeyVal *ikey,
-                                          DalDmlIntf *dmi) {
+                                      ConfigKeyVal *ikey,
+                                      DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   controller_domain ctrlr_dom;
@@ -1201,56 +1133,56 @@ upll_rc_t VtnPolicingMapMoMgr::ReadVtnPolicingMapController(
       } else if ((req->datatype == UPLL_DT_STATE)&&
                  ((req->option1 == UNC_OPT1_DETAIL) &&
                   (req->option2 == UNC_OPT2_NONE))) {
-          IpcResponse ipc_response;
-          memset(&ipc_response, 0, sizeof(IpcResponse));
-          result_code = SendIpcrequestToDriver(
-             ikey, req, &ipc_response, dmi);
-          if (UPLL_RC_SUCCESS != result_code) {
-            UPLL_LOG_DEBUG("SendIpcrequestToDriver failed %d", result_code);
-            DELETE_IF_NOT_NULL(ipc_response.ckv_data);  
-            return result_code;
-          }
-          ConfigKeyVal *temp_key = NULL;
-          result_code = CopyVtnControllerCkv(ikey, temp_key);
-          if (UPLL_RC_SUCCESS != result_code) {
-            UPLL_LOG_DEBUG("CopyVtnControllerCkv failed %d", result_code);
-            delete temp_key;
-            DELETE_IF_NOT_NULL(ipc_response.ckv_data);  
-            return result_code;
-          }
-
-          DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutNone };
-          result_code = ReadConfigDB(temp_key, req->datatype, UNC_OP_READ, dbop,
-              dmi, MAINTBL);
-          if (UPLL_RC_SUCCESS != result_code) {
-            UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
-            delete temp_key;
-            DELETE_IF_NOT_NULL(ipc_response.ckv_data);  
-            return result_code;
-          }
+        IpcResponse ipc_response;
+        memset(&ipc_response, 0, sizeof(IpcResponse));
+        result_code = SendIpcrequestToDriver(
+            ikey, req, &ipc_response, dmi);
+        if (UPLL_RC_SUCCESS != result_code) {
+          UPLL_LOG_DEBUG("SendIpcrequestToDriver failed %d", result_code);
+          DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+          return result_code;
+        }
+        ConfigKeyVal *temp_key = NULL;
+        result_code = CopyVtnControllerCkv(ikey, temp_key);
+        if (UPLL_RC_SUCCESS != result_code) {
+          UPLL_LOG_DEBUG("CopyVtnControllerCkv failed %d", result_code);
+          delete temp_key;
+          DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+          return result_code;
+        }
 
-          result_code = ReadControllerStateDetail(ikey, temp_key, 
-                                                  &ipc_response, req->datatype,
-                                                  req->operation, dmi);
+        DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutNone };
+        result_code = ReadConfigDB(temp_key, req->datatype, UNC_OP_READ, dbop,
+                                   dmi, MAINTBL);
+        if (UPLL_RC_SUCCESS != result_code) {
+          UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
+          delete temp_key;
           DELETE_IF_NOT_NULL(ipc_response.ckv_data);
-          DELETE_IF_NOT_NULL(temp_key);
-          if (result_code != UPLL_RC_SUCCESS) {
-            return result_code;
-          }
-        } else {
-          UPLL_LOG_DEBUG(
-              "ReadConfigDB error (%d) (%d)",
-              req->datatype, req->option1);
-          return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
+          return result_code;
         }
-        break;
-      default:
+
+        result_code = ReadControllerStateDetail(ikey, temp_key,
+                                                &ipc_response, req->datatype,
+                                                req->operation, dmi);
+        DELETE_IF_NOT_NULL(ipc_response.ckv_data);
+        DELETE_IF_NOT_NULL(temp_key);
+        if (result_code != UPLL_RC_SUCCESS) {
+          return result_code;
+        }
+      } else {
         UPLL_LOG_DEBUG(
             "ReadConfigDB error (%d) (%d)",
             req->datatype, req->option1);
         return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
-        break;
-   }
+      }
+      break;
+    default:
+      UPLL_LOG_DEBUG(
+          "ReadConfigDB error (%d) (%d)",
+          req->datatype, req->option1);
+      return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
+      break;
+  }
   return result_code;
 }
 
@@ -1268,7 +1200,8 @@ upll_rc_t VtnPolicingMapMoMgr::ReadSiblingMo(IpcReqRespHeader *req,
   }
   result_code = ValidateReadAttribute(ikey, dmi, req);
   if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("ReadSiblingMo ValidateReadAttribute Err  (%d)", result_code);
+    UPLL_LOG_DEBUG("ReadSiblingMo ValidateReadAttribute Err  (%d)",
+                   result_code);
     return result_code;
   }
 
@@ -1300,7 +1233,7 @@ upll_rc_t VtnPolicingMapMoMgr::ReadSiblingPolicingMapController(
     ConfigKeyVal *ikey,
     DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
- upll_rc_t  result_code = UPLL_RC_SUCCESS;
 upll_rc_t  result_code = UPLL_RC_SUCCESS;
   switch (req->datatype) {
     case UPLL_DT_STATE:
       if ((req->option1 == UNC_OPT1_NORMAL) &&
@@ -1338,8 +1271,8 @@ upll_rc_t  VtnPolicingMapMoMgr::ReadSiblingControllerStateNormal(
   UPLL_FUNC_TRACE;
   controller_domain ctrlr_dom;
   upll_rc_t  result_code = UPLL_RC_SUCCESS;
-  // ConfigKeyVal *l_key = NULL;
-  //  ConfigKeyVal *dup_key = NULL;
+  //  ConfigKeyVal *l_key = NULL;
+  //   ConfigKeyVal *dup_key = NULL;
   ctrlr_dom.ctrlr = NULL;
   ctrlr_dom.domain = NULL;
   int ctrl_len = 0;
@@ -1370,7 +1303,7 @@ upll_rc_t  VtnPolicingMapMoMgr::ReadSiblingControllerStateNormal(
   DbSubOp dbop = {kOpReadMultiple, kOpMatchNone,
     kOpInOutCtrlr | kOpInOutDomain};
   result_code = ReadConfigDB(temp_vtn_pm_ckv, req->datatype,
-                             UNC_OP_READ, dbop,req->rep_count,dmi, CTRLRTBL);
+                             UNC_OP_READ, dbop, req->rep_count, dmi, CTRLRTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
     DELETE_IF_NOT_NULL(temp_vtn_pm_ckv);
@@ -1441,7 +1374,7 @@ upll_rc_t  VtnPolicingMapMoMgr::ReadSiblingControllerStateNormal(
       DELETE_IF_NOT_NULL(okey);
     } else {
       UPLL_LOG_DEBUG("ReadSiblingControllerStateNormal failed %d",
-                      result_code);
+                     result_code);
       DELETE_IF_NOT_NULL(okey);
     }
   } else if (req->operation == UNC_OP_READ_SIBLING_BEGIN) {
@@ -1687,8 +1620,12 @@ upll_rc_t  VtnPolicingMapMoMgr::ReadSiblingControllerStateDetail(
         DELETE_IF_NOT_NULL(okey);
         return result_code;
       }
-      result_code = ReadControllerStateDetail(dup_ckv, temp_key, &ipc_response,
-                                              req->datatype, req->operation, dmi);
+      result_code = ReadControllerStateDetail(dup_ckv,
+                                              temp_key,
+                                              &ipc_response,
+                                              req->datatype,
+                                              req->operation,
+                                              dmi);
 
       DELETE_IF_NOT_NULL(ipc_response.ckv_data);
       if (result_code != UPLL_RC_SUCCESS) {
@@ -1715,8 +1652,7 @@ upll_rc_t  VtnPolicingMapMoMgr::ReadSiblingControllerStateDetail(
       DELETE_IF_NOT_NULL(okey);
       req->rep_count = tmp_sib_count;
     }
-  }
-  else {
+  } else {
     result_code = UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
   }
   DELETE_IF_NOT_NULL(temp_vtn_pm_ckv);
@@ -1726,27 +1662,28 @@ upll_rc_t  VtnPolicingMapMoMgr::ReadSiblingControllerStateDetail(
 }
 
 bool VtnPolicingMapMoMgr::GetRenameKeyBindInfo(unc_key_type_t key_type,
-    BindInfo *&binfo, int &nattr,
-    MoMgrTables tbl) {
+                                               BindInfo *&binfo,
+                                               int &nattr,
+                                               MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
   UPLL_LOG_DEBUG("GetRenameKeyBindInfo (%d) (%d)", key_type, tbl);
   if (MAINTBL == tbl) {
     nattr = sizeof(key_vtnpm_vtn_maintbl_rename_bind_info)/
-            sizeof(key_vtnpm_vtn_maintbl_rename_bind_info[0]);
+        sizeof(key_vtnpm_vtn_maintbl_rename_bind_info[0]);
     binfo = key_vtnpm_vtn_maintbl_rename_bind_info;
   } else if (CTRLRTBL == tbl) {
     nattr = sizeof(key_vtnpm_vtn_ctrlrtbl_rename_bind_info)/
-            sizeof(key_vtnpm_vtn_ctrlrtbl_rename_bind_info[0]);
-     binfo = key_vtnpm_vtn_ctrlrtbl_rename_bind_info;
+        sizeof(key_vtnpm_vtn_ctrlrtbl_rename_bind_info[0]);
+    binfo = key_vtnpm_vtn_ctrlrtbl_rename_bind_info;
   } else {
-     UPLL_LOG_DEBUG("GetRenameKeyBindInfo Invalid Tbl (%d)", tbl);
-      return PFC_FALSE;
+    UPLL_LOG_DEBUG("GetRenameKeyBindInfo Invalid Tbl (%d)", tbl);
+    return PFC_FALSE;
   }
   return PFC_TRUE;
 }
 
 upll_rc_t VtnPolicingMapMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
-    ConfigKeyVal *ikey) {
+                                               ConfigKeyVal *ikey) {
   UPLL_FUNC_TRACE;
   if (!ikey || !(ikey->get_key())) {
     UPLL_LOG_DEBUG("CopyToConfigKey ikey NULL");
@@ -1756,9 +1693,9 @@ upll_rc_t VtnPolicingMapMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
   key_rename_vnode_info_t *key_rename =
-    reinterpret_cast<key_rename_vnode_info_t *>(ikey->get_key());
+      reinterpret_cast<key_rename_vnode_info_t *>(ikey->get_key());
   key_vtn_t *key_vtn = reinterpret_cast<key_vtn_t *>
-    (ConfigKeyVal::Malloc(sizeof(key_vtn_t)));
+      (ConfigKeyVal::Malloc(sizeof(key_vtn_t)));
 
   if (!strlen(reinterpret_cast<char *>(key_rename->old_unc_vtn_name))) {
     UPLL_LOG_DEBUG("CopyToConfigKey key_rename->old_unc_vtn_name NULL");
@@ -1767,8 +1704,8 @@ upll_rc_t VtnPolicingMapMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
   }
 
   uuu::upll_strncpy(key_vtn->vtn_name,
-      key_rename->old_unc_vtn_name,
-      (kMaxLenVtnName + 1));
+                    key_rename->old_unc_vtn_name,
+                    (kMaxLenVtnName + 1));
 
   okey = new ConfigKeyVal(UNC_KT_VTN_POLICINGMAP,
                           IpctSt::kIpcStKeyVtn, key_vtn, NULL);
@@ -1780,10 +1717,11 @@ upll_rc_t VtnPolicingMapMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
   return result_code;
 }
 
-upll_rc_t VtnPolicingMapMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
-                                              DalDmlIntf *dmi,
-                                             upll_keytype_datatype_t data_type,
-                                              bool &no_rename) {
+upll_rc_t VtnPolicingMapMoMgr::UpdateVnodeVal(
+    ConfigKeyVal *ikey,
+    DalDmlIntf *dmi,
+    upll_keytype_datatype_t data_type,
+    bool &no_rename) {
   UPLL_FUNC_TRACE;
   ConfigKeyVal *okey = NULL;
   ConfigKeyVal *kval = NULL;
@@ -1799,44 +1737,45 @@ upll_rc_t VtnPolicingMapMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
   UPLL_LOG_DEBUG("CopyToConfigKey datatype (%d)", data_type);
 
   key_rename_vnode_info_t *key_rename =
-  reinterpret_cast<key_rename_vnode_info_t *>(ikey->get_key());
+      reinterpret_cast<key_rename_vnode_info_t *>(ikey->get_key());
 
-  // Copy the old policer name in val_policingmap
+  //  Copy the old policer name in val_policingmap
   val_policingmap_t *val = reinterpret_cast<val_policingmap_t *>
-          (ConfigKeyVal::Malloc(sizeof(val_policingmap_t)));
+      (ConfigKeyVal::Malloc(sizeof(val_policingmap_t)));
   if (!val) return UPLL_RC_ERR_GENERIC;
 
   memset(val, 0, sizeof(val_policingmap_t));
-  if (!strlen(reinterpret_cast<char *>(key_rename->old_policingprofile_name))) {
+  if (!strlen(reinterpret_cast<char *>
+              (key_rename->old_policingprofile_name))) {
     FREE_IF_NOT_NULL(val);
     return UPLL_RC_ERR_GENERIC;
   }
 
   uuu::upll_strncpy(val->policer_name,
-      key_rename->old_policingprofile_name,
-      (kMaxLenPolicingProfileName + 1));
+                    key_rename->old_policingprofile_name,
+                    (kMaxLenPolicingProfileName + 1));
   val->valid[UPLL_IDX_POLICERNAME_PM] = UNC_VF_VALID;
   UPLL_LOG_DEBUG("policer name and valid (%d) (%s)",
-                  val->valid[UPLL_IDX_POLICERNAME_PM], val->policer_name);
-//  ConfigVal *cval = new ConfigVal(IpctSt::kIpcStValPolicingmap, val);
+                 val->valid[UPLL_IDX_POLICERNAME_PM], val->policer_name);
+  //   ConfigVal *cval = new ConfigVal(IpctSt::kIpcStValPolicingmap, val);
 
   result_code = GetChildConfigKey(okey, NULL);
   if (UPLL_RC_SUCCESS != result_code) {
-     UPLL_LOG_DEBUG("CopyToConfigKey okey  NULL");
-     FREE_IF_NOT_NULL(val);
-     return result_code;
+    UPLL_LOG_DEBUG("CopyToConfigKey okey  NULL");
+    FREE_IF_NOT_NULL(val);
+    return result_code;
   }
   if (!okey) {
     FREE_IF_NOT_NULL(val);
     return UPLL_RC_ERR_GENERIC;
   }
-  okey->SetCfgVal(new ConfigVal(IpctSt::kIpcStValPolicingmap, val));  
+  okey->SetCfgVal(new ConfigVal(IpctSt::kIpcStValPolicingmap, val));
 
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutFlag };
 
-  // Read the record of key structure and old policer name in maintbl   
+  //  Read the record of key structure and old policer name in maintbl
   result_code = ReadConfigDB(okey, data_type, UNC_OP_READ, dbop, dmi,
-    MAINTBL);
+                             MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG(" ReadConfigDB failed ");
     DELETE_IF_NOT_NULL(okey);
@@ -1844,7 +1783,7 @@ upll_rc_t VtnPolicingMapMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
   }
   ConfigKeyVal *tmp_okey = okey;
   while (okey != NULL) {
-    // Update the new policer name in MAINTBL
+    //  Update the new policer name in MAINTBL
     result_code = GetChildConfigKey(kval, okey);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("GetChildConfigKey kval NULL");
@@ -1853,27 +1792,28 @@ upll_rc_t VtnPolicingMapMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
     }
     if (!kval) return UPLL_RC_ERR_GENERIC;
 
-    // Copy the new policer name in val_policingmap
+    //  Copy the new policer name in val_policingmap
     val_policingmap_t *val1 = reinterpret_cast<val_policingmap_t *>
         (ConfigKeyVal::Malloc(sizeof(val_policingmap_t)));
     if (!val1) return UPLL_RC_ERR_GENERIC;
     memset(val1, 0, sizeof(val_policingmap_t));
 
-    // New name null check
-    if (!strlen(reinterpret_cast<char *>(key_rename->new_policingprofile_name))) {
+    //  New name null check
+    if (!strlen(reinterpret_cast<char *>
+                (key_rename->new_policingprofile_name))) {
       FREE_IF_NOT_NULL(val1);
       UPLL_LOG_DEBUG("new_policingprofile_name NULL");
       DELETE_IF_NOT_NULL(kval);
       DELETE_IF_NOT_NULL(okey);
       return UPLL_RC_ERR_GENERIC;
     }
-    // Copy the new policer name into val_policingmap
+    //  Copy the new policer name into val_policingmap
     uuu::upll_strncpy(val1->policer_name,
-      key_rename->new_policingprofile_name,
-      (kMaxLenPolicingProfileName + 1));
+                      key_rename->new_policingprofile_name,
+                      (kMaxLenPolicingProfileName + 1));
     val1->valid[UPLL_IDX_POLICERNAME_PM] = UNC_VF_VALID;
     UPLL_LOG_DEBUG("policer name and valid (%d) (%s)",
-                    val1->valid[UPLL_IDX_POLICERNAME_PM], val1->policer_name);
+                   val1->valid[UPLL_IDX_POLICERNAME_PM], val1->policer_name);
     ConfigVal *cval1 = new ConfigVal(IpctSt::kIpcStValPolicingmap, val1);
 
     kval->SetCfgVal(cval1);
@@ -1889,106 +1829,110 @@ upll_rc_t VtnPolicingMapMoMgr::UpdateVnodeVal(ConfigKeyVal *ikey,
     SET_USER_DATA_FLAGS(kval, rename);
     UPLL_LOG_DEBUG("kval flag (%d)", rename);
 
-    // Update the new policer name in MAINTBL
+    //  Update the new policer name in MAINTBL
     result_code = UpdateConfigDB(kval, data_type, UNC_OP_UPDATE, dmi,
-                  MAINTBL);
+                                 MAINTBL);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("Create record Err in vtnpolicingmaptbl CANDIDATE DB(%d)",
-        result_code);
+                     result_code);
       DELETE_IF_NOT_NULL(kval);
       DELETE_IF_NOT_NULL(okey);
       return result_code;
     }
 
-  // Get the momory alloctaed vtn key structure
-  VtnMoMgr *vtnmgr =
-    static_cast<VtnMoMgr *>((const_cast<MoManager *>
-          (GetMoManager(UNC_KT_VTN))));
-  result_code = vtnmgr->GetChildConfigKey(ckey, NULL);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("UpdateRefCountInPPCtrlr GetChildConfigKey error (%d)",
-        result_code);
-    return result_code;
-  }
-  if (!ckey) return UPLL_RC_ERR_GENERIC;
-  // To get the vtn associated controller name
-  key_vtn_t *vtn_okey = reinterpret_cast<key_vtn_t *>(ckey->get_key());
-  key_vtn_t *vtn_ikey = reinterpret_cast<key_vtn_t *>(okey->get_key());
-  uuu::upll_strncpy(vtn_okey->vtn_name, vtn_ikey->vtn_name,
-      kMaxLenVtnName+1);
-
-  UPLL_LOG_DEBUG("vtn name ckey (%s) okey (%s)", vtn_okey->vtn_name, vtn_ikey->vtn_name);
-  result_code = vtnmgr->GetControllerDomainSpan(ckey, data_type, dmi);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("GetControllerSpan  no instance/error (%d)", result_code);
-    if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-    DELETE_IF_NOT_NULL(kval);
-    DELETE_IF_NOT_NULL(okey);
-    DELETE_IF_NOT_NULL(ckey);
-    return result_code;
+    //  Get the momory alloctaed vtn key structure
+    VtnMoMgr *vtnmgr =
+        static_cast<VtnMoMgr *>((const_cast<MoManager *>
+                                 (GetMoManager(UNC_KT_VTN))));
+    result_code = vtnmgr->GetChildConfigKey(ckey, NULL);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("UpdateRefCountInPPCtrlr GetChildConfigKey error (%d)",
+                     result_code);
+      return result_code;
     }
-    DELETE_IF_NOT_NULL(kval);
-    DELETE_IF_NOT_NULL(ckey);
-    continue;
-  }
-  ConfigKeyVal *tmp_ckey = ckey;
-  while (ckey != NULL) {
-    GET_USER_DATA_CTRLR_DOMAIN(ckey, ctrlr_dom);
-
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom.ctrlr,
-                    ctrlr_dom.domain);
+    if (!ckey) return UPLL_RC_ERR_GENERIC;
+    //  To get the vtn associated controller name
+    key_vtn_t *vtn_okey = reinterpret_cast<key_vtn_t *>(ckey->get_key());
+    key_vtn_t *vtn_ikey = reinterpret_cast<key_vtn_t *>(okey->get_key());
+    uuu::upll_strncpy(vtn_okey->vtn_name, vtn_ikey->vtn_name,
+                      kMaxLenVtnName+1);
 
-    // Update the new policer name in CTRLTBL
-    result_code = GetChildConfigKey(ckval, okey);
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("GetChildConfigKey ckval NULL");
+    UPLL_LOG_DEBUG("vtn name ckey (%s) okey (%s)",
+                   vtn_okey->vtn_name,
+                   vtn_ikey->vtn_name);
+    result_code = vtnmgr->GetControllerDomainSpan(ckey, data_type, dmi);
+    if (result_code != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG("GetControllerSpan  no instance/error (%d)", result_code);
+      if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+        DELETE_IF_NOT_NULL(kval);
+        DELETE_IF_NOT_NULL(okey);
+        DELETE_IF_NOT_NULL(ckey);
+        return result_code;
+      }
       DELETE_IF_NOT_NULL(kval);
-      DELETE_IF_NOT_NULL(okey);
       DELETE_IF_NOT_NULL(ckey);
-      return result_code;
+      continue;
     }
-    if (!ckval) return UPLL_RC_ERR_GENERIC;
+    ConfigKeyVal *tmp_ckey = ckey;
+    while (ckey != NULL) {
+      GET_USER_DATA_CTRLR_DOMAIN(ckey, ctrlr_dom);
 
-    val_vtnpolicingmap_ctrl  *policingmap_ctrlr_val =
-        reinterpret_cast<val_vtnpolicingmap_ctrl *>
-        (ConfigKeyVal::Malloc(sizeof(val_vtnpolicingmap_ctrl)));
+      UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom.ctrlr,
+                     ctrlr_dom.domain);
 
-    // Copy the new policer name into val_vtnpolicingmap_ctrl 
-    uuu::upll_strncpy(policingmap_ctrlr_val->policer_name,
-      key_rename->new_policingprofile_name,
-      (kMaxLenPolicingProfileName + 1));
-    policingmap_ctrlr_val->valid[UPLL_IDX_POLICERNAME_PM] = UNC_VF_VALID;
-    UPLL_LOG_DEBUG("policer name and valid (%d) (%s)",
-                    policingmap_ctrlr_val->valid[UPLL_IDX_POLICERNAME_PM],
-                    policingmap_ctrlr_val->policer_name);
+      //  Update the new policer name in CTRLTBL
+      result_code = GetChildConfigKey(ckval, okey);
+      if (UPLL_RC_SUCCESS != result_code) {
+        UPLL_LOG_DEBUG("GetChildConfigKey ckval NULL");
+        DELETE_IF_NOT_NULL(kval);
+        DELETE_IF_NOT_NULL(okey);
+        DELETE_IF_NOT_NULL(ckey);
+        return result_code;
+      }
+      if (!ckval) return UPLL_RC_ERR_GENERIC;
 
-    SET_USER_DATA_CTRLR_DOMAIN(ckval, ctrlr_dom);
-    ckval->SetCfgVal(new ConfigVal(IpctSt::kIpcInvalidStNum, policingmap_ctrlr_val));
+      val_vtnpolicingmap_ctrl  *policingmap_ctrlr_val =
+          reinterpret_cast<val_vtnpolicingmap_ctrl *>
+          (ConfigKeyVal::Malloc(sizeof(val_vtnpolicingmap_ctrl)));
 
-    SET_USER_DATA_FLAGS(ckval, rename);
+      //  Copy the new policer name into val_vtnpolicingmap_ctrl
+      uuu::upll_strncpy(policingmap_ctrlr_val->policer_name,
+                        key_rename->new_policingprofile_name,
+                        (kMaxLenPolicingProfileName + 1));
+      policingmap_ctrlr_val->valid[UPLL_IDX_POLICERNAME_PM] = UNC_VF_VALID;
+      UPLL_LOG_DEBUG("policer name and valid (%d) (%s)",
+                     policingmap_ctrlr_val->valid[UPLL_IDX_POLICERNAME_PM],
+                     policingmap_ctrlr_val->policer_name);
 
-    UPLL_LOG_TRACE("ckval %s", ckval->ToStrAll().c_str());
+      SET_USER_DATA_CTRLR_DOMAIN(ckval, ctrlr_dom);
+      ckval->SetCfgVal(new ConfigVal(IpctSt::kIpcInvalidStNum,
+                                     policingmap_ctrlr_val));
 
-    // Update the new policer name in CTRLTBL
-    result_code = UpdateConfigDB(ckval, data_type, UNC_OP_UPDATE, dmi,
-                  CTRLRTBL);
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("Create record Err in vtnpolicingmaptbl CANDIDATE DB(%d)",
-        result_code);
+      SET_USER_DATA_FLAGS(ckval, rename);
+
+      UPLL_LOG_TRACE("ckval %s", ckval->ToStrAll().c_str());
+
+      //  Update the new policer name in CTRLTBL
+      result_code = UpdateConfigDB(ckval, data_type, UNC_OP_UPDATE, dmi,
+                                   CTRLRTBL);
+      if (UPLL_RC_SUCCESS != result_code) {
+        UPLL_LOG_DEBUG("Create record Err in vtnpolicingmaptbl "
+                       "CANDIDATE DB(%d)",
+                       result_code);
         DELETE_IF_NOT_NULL(kval);
         DELETE_IF_NOT_NULL(ckval);
         DELETE_IF_NOT_NULL(okey);
         return result_code;
-    }
+      }
 
-    DELETE_IF_NOT_NULL(ckval);
+      DELETE_IF_NOT_NULL(ckval);
 
-    ckey = ckey->get_next_cfg_key_val();
+      ckey = ckey->get_next_cfg_key_val();
     }
     DELETE_IF_NOT_NULL(kval);
     DELETE_IF_NOT_NULL(tmp_ckey);
     okey = okey->get_next_cfg_key_val();
-   }
+  }
   DELETE_IF_NOT_NULL(tmp_okey);
   return result_code;
 }
@@ -2018,7 +1962,7 @@ upll_rc_t VtnPolicingMapMoMgr::MergeValidate(unc_key_type_t keytype,
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutNone };
 
   result_code = ReadConfigDB(ckval, UPLL_DT_IMPORT,
-              UNC_OP_READ, dbop, dmi, MAINTBL);
+                             UNC_OP_READ, dbop, dmi, MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     DELETE_IF_NOT_NULL(ckval);
     if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
@@ -2029,10 +1973,10 @@ upll_rc_t VtnPolicingMapMoMgr::MergeValidate(unc_key_type_t keytype,
   }
   ConfigKeyVal *tmp_ckval = ckval;
   while (NULL != ckval) {
-    // Check the VTN already configured in UNC
+    //  Check the VTN already configured in UNC
     VtnMoMgr *vtnmgr =
-      static_cast<VtnMoMgr *>((const_cast<MoManager *>
-          (GetMoManager(UNC_KT_VTN))));
+        static_cast<VtnMoMgr *>((const_cast<MoManager *>
+                                 (GetMoManager(UNC_KT_VTN))));
     result_code = vtnmgr->GetChildConfigKey(ckey, NULL);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("GetChildConfigKey error (%d)", result_code);
@@ -2044,11 +1988,15 @@ upll_rc_t VtnPolicingMapMoMgr::MergeValidate(unc_key_type_t keytype,
     key_vtn_t *vtn_okey = reinterpret_cast<key_vtn_t *>(ckey->get_key());
     key_vtn_t *vtn_ikey = reinterpret_cast<key_vtn_t *>(ckval->get_key());
     uuu::upll_strncpy(vtn_okey->vtn_name, vtn_ikey->vtn_name,
-                    kMaxLenVtnName+1);
+                      kMaxLenVtnName+1);
     DbSubOp dbop1 = { kOpReadExist, kOpMatchNone, kOpInOutNone };
-    // Check the vtn already exist in vtn tbl
-    result_code = vtnmgr->UpdateConfigDB(ckey, UPLL_DT_RUNNING, UNC_OP_READ, dmi,
-                               &dbop1, MAINTBL);
+    //  Check the vtn already exist in vtn tbl
+    result_code = vtnmgr->UpdateConfigDB(ckey,
+                                         UPLL_DT_RUNNING,
+                                         UNC_OP_READ,
+                                         dmi,
+                                         &dbop1,
+                                         MAINTBL);
     if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code) {
       UPLL_LOG_DEBUG("vtn already exists");
       DELETE_IF_NOT_NULL(ckey);
@@ -2057,9 +2005,9 @@ upll_rc_t VtnPolicingMapMoMgr::MergeValidate(unc_key_type_t keytype,
     }
 
     DELETE_IF_NOT_NULL(ckey);
-    // If already vtn not configured, then do merge validation 
+    //  If already vtn not configured, then do merge validation
     result_code = UpdateConfigDB(ckval, UPLL_DT_RUNNING, UNC_OP_READ, dmi,
-                               MAINTBL);
+                                 MAINTBL);
     if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code) {
       UPLL_LOG_DEBUG("Merge Conflict");
       result_code = DupConfigKeyVal(ikey, ckval, MAINTBL);
@@ -2080,242 +2028,550 @@ upll_rc_t VtnPolicingMapMoMgr::MergeValidate(unc_key_type_t keytype,
   DELETE_IF_NOT_NULL(tmp_ckval);
   return UPLL_RC_SUCCESS;
 }
-#if 0
-upll_rc_t VtnPolicingMapMoMgr::MergeImportToCandidate(unc_key_type_t keytype,
-                                            const char *ctrlr_name,
-                                            DalDmlIntf *dmi) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  ConfigKeyVal *ctrlr_key = NULL, *req = NULL, *nreq = NULL;
-  DalCursor *cfg1_cursor = NULL;
-  DalResultCode db_result;
 
-  //Get the created records on import configuration which are not available
-  // at running configuration of UNC
-  result_code = DiffConfigDB(UPLL_DT_IMPORT, UPLL_DT_RUNNING, UNC_OP_CREATE, req,
-                                 nreq, &cfg1_cursor, dmi, MAINTBL);
-  while (result_code == UPLL_RC_SUCCESS) {
-    db_result = dmi->GetNextRecord(cfg1_cursor);
-    result_code = DalToUpllResCode(db_result);
-    if (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-        result_code = UPLL_RC_SUCCESS;
-        break;
-    }
-  
-    // Update the record in the main table
-    result_code = UpdateConfigDB(req, UPLL_DT_CANDIDATE, UNC_OP_CREATE,
-                                  dmi, MAINTBL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Unable to update the main tbl,DB err %d", result_code);
-      if (cfg1_cursor) {
-      dmi->CloseCursor(cfg1_cursor, true);
-      cfg1_cursor = NULL;
-      }
-      delete req;
-      req = NULL;
-      return result_code;
-    }
-    //Update Controller Table
-    DbSubOp dbop = {kOpReadMultiple, kOpMatchCtrlr,
-      kOpInOutCtrlr|kOpInOutDomain};
-    result_code = DupConfigKeyVal(ctrlr_key, req, MAINTBL);
-    if (result_code != UPLL_RC_SUCCESS) {
-       UPLL_LOG_DEBUG("DupConfigKeyVal is failed result_code = %d",
-                      result_code);
-       return result_code;
-    }
-    SET_USER_DATA_CTRLR(ctrlr_key, ctrlr_name);
-
-    result_code = ReadConfigDB(ctrlr_key, UPLL_DT_IMPORT, UNC_OP_READ,
-                               dbop, dmi, CTRLRTBL);
-    if ((result_code != UPLL_RC_SUCCESS) &&
-        (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE)) {
-      UPLL_LOG_DEBUG("Error in ReadConfigDb (%d)", result_code);
-      return result_code;
-    }  
-    // create a record in CANDIDATE DB
-    result_code = UpdateConfigDB(ctrlr_key, UPLL_DT_CANDIDATE, UNC_OP_CREATE,
-                                  dmi, CTRLRTBL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Unable to update ctrl table,  DB err %d", result_code);
-      if (cfg1_cursor) {
-      dmi->CloseCursor(cfg1_cursor, true);
-      cfg1_cursor = NULL;
-      }
-      delete req;
-      req = NULL;
-      return result_code;
-    }
-    delete ctrlr_key;
-    ctrlr_key = NULL;
-  }
-  if (cfg1_cursor) {
-      dmi->CloseCursor(cfg1_cursor, true);
-      cfg1_cursor = NULL;
-  }
-  if (req) {
-    delete req;
-    req = NULL;
-  }
-  return result_code;
-}
-#endif
 upll_rc_t VtnPolicingMapMoMgr::MergeImportToCandidate(unc_key_type_t keytype,
-                                            const char *ctrlr_name,
-                                            DalDmlIntf *dmi) {
+                                                      const char *ctrlr_name,
+                                                      DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
-
   ConfigKeyVal *ckval = NULL;
-  ConfigKeyVal *ckey = NULL;
-
+  ConfigKeyVal *pm_imkey = NULL, *pm_cdkey = NULL, *ckval_dom = NULL;
+  ConfigKeyVal *ckv_import = NULL, *ckv_cand = NULL;
   controller_domain ctrlr_dom;
   ctrlr_dom.ctrlr = NULL;
   ctrlr_dom.domain = NULL;
   uint8_t flag = 0;
+  uint8_t *ctrlr_id = NULL;
 
   if (NULL == ctrlr_name) {
     UPLL_LOG_DEBUG("MergeValidate ctrlr_id NULL");
     return UPLL_RC_ERR_GENERIC;
   }
 
-  result_code = GetChildConfigKey(ckval, NULL);
+  VtnMoMgr *vtnmgr =
+      static_cast<VtnMoMgr *>((const_cast<MoManager *>
+                               (GetMoManager(UNC_KT_VTN))));
+  result_code = vtnmgr->GetChildConfigKey(ckval, NULL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("GetChildConfigKey ckval NULL");
     return result_code;
   }
 
-
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutFlag };
-  // Read vtn ff from import main
-  result_code = ReadConfigDB(ckval, UPLL_DT_IMPORT,
-              UNC_OP_READ, dbop, dmi, MAINTBL);
+  /* Read all vtn from VTN main table in import database and check with
+   * Candidate database */
+  result_code = vtnmgr->ReadConfigDB(ckval, UPLL_DT_IMPORT,
+                                     UNC_OP_READ, dbop, dmi, MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
-    DELETE_IF_NOT_NULL(ckval);
     UPLL_LOG_DEBUG("ReadConfigDB ckval NULL (%d)", result_code);
-    if(result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
-      UPLL_LOG_DEBUG("ReadConfigDB ckval NULL (%d)", result_code);
-      return result_code;
+    if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+      UPLL_LOG_DEBUG("NO record in vtn tbl (%d)", result_code);
+      result_code = UPLL_RC_SUCCESS;
     }
-    return UPLL_RC_SUCCESS;
+    DELETE_IF_NOT_NULL(ckval);
+    return result_code;
   }
-
-  UPLL_LOG_DEBUG("ReadConfigDB ckval NULL (%d)", result_code);
   ConfigKeyVal *tmp_ckval = ckval;
-  while (NULL != ckval) {
-    // Check the VTN already configured in UNC
-    VtnMoMgr *vtnmgr =
-      static_cast<VtnMoMgr *>((const_cast<MoManager *>
-          (GetMoManager(UNC_KT_VTN))));
-    result_code = vtnmgr->GetChildConfigKey(ckey, NULL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetChildConfigKey error (%d)", result_code);
-      DELETE_IF_NOT_NULL(ckval);
+  while (ckval != NULL) {
+    /* Get the instance count from vtn ctrl table in candidate.
+     * If refcount is more than 1,
+     *    which means that the vtn is already exists in candidate
+     * If refcount is zero or 1,
+     *    which means that the imported vtn is not exists in candidate
+     */
+    uint32_t imp_instance_count, cand_instance_count;
+    /* Get the instance count from vtn ctrl tbl from import db*/
+    result_code = vtnmgr->GetChildConfigKey(ckv_import, ckval);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG("GetChildConfigKey failed %d", result_code);
+      DELETE_IF_NOT_NULL(tmp_ckval);
       return result_code;
     }
-    if (!ckey) return UPLL_RC_ERR_GENERIC;
-
-    key_vtn_t *vtn_okey = reinterpret_cast<key_vtn_t *>(ckey->get_key());
-    key_vtn_flowfilter *vtn_ikey = reinterpret_cast<key_vtn_flowfilter_t *>(ckval->get_key());
-    uuu::upll_strncpy(vtn_okey->vtn_name, vtn_ikey->vtn_key.vtn_name,
-                    kMaxLenVtnName+1);
-    DbSubOp dbop1 = { kOpReadExist, kOpMatchNone, kOpInOutNone };
-    // Check the vtn already exist in vtn tbl
-    result_code = vtnmgr->UpdateConfigDB(ckey, UPLL_DT_RUNNING, UNC_OP_READ, dmi,
-                               &dbop1, MAINTBL);
-    if (UPLL_RC_ERR_INSTANCE_EXISTS == result_code) {
-      UPLL_LOG_DEBUG("vtn already exists");
-      DELETE_IF_NOT_NULL(ckey);
-      ckval = ckval->get_next_cfg_key_val();
-      continue;
-    } else if (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
-      DELETE_IF_NOT_NULL(ckey);
-      DELETE_IF_NOT_NULL(ckval);
+    result_code = vtnmgr->GetInstanceCount(ckv_import,
+                                           NULL,
+                                           UPLL_DT_IMPORT,
+                                           &imp_instance_count,
+                                           dmi,
+                                           CTRLRTBL);
+    DELETE_IF_NOT_NULL(ckv_import);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG("GetInstanceCount failed %d", result_code);
+      DELETE_IF_NOT_NULL(tmp_ckval);
       return result_code;
     }
 
-    // If not same vtn, then merge the vtn ff to candidate tbl
-    result_code = UpdateConfigDB(ckval, UPLL_DT_CANDIDATE, UNC_OP_CREATE,
-                               dmi, MAINTBL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("create in CandidateDB failed: err code(%d) ",
-                   result_code);
-      DELETE_IF_NOT_NULL(ckey);
-      DELETE_IF_NOT_NULL(ckval);
+    /* Get the instance count from vtn ctrl tbl from candidate db*/
+    result_code = vtnmgr->GetChildConfigKey(ckv_cand, ckval);
+    if (UPLL_RC_SUCCESS != result_code) {
+      UPLL_LOG_DEBUG("GetChildConfigKey failed %d", result_code);
+      DELETE_IF_NOT_NULL(tmp_ckval);
       return result_code;
     }
-
-  result_code = vtnmgr->GetControllerDomainSpan(ckey, UPLL_DT_IMPORT, dmi);
-  if (result_code != UPLL_RC_SUCCESS) {
-    if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-      UPLL_LOG_DEBUG("GetControllerSpan  no instance/error (%d)", result_code);
-      DELETE_IF_NOT_NULL(ckey);
-      continue;
-    } 
-  }
-  ConfigKeyVal *tmp_ckey = ckey;
-  while (ckey != NULL) {
-    ConfigKeyVal *ctrlckv = NULL;
-    GET_USER_DATA_CTRLR_DOMAIN(ckey, ctrlr_dom);
-    GET_USER_DATA_FLAGS(ckval, flag);
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom.ctrlr,
-                    ctrlr_dom.domain);
-    
-    UPLL_LOG_DEBUG("flag (%d)", flag);
-
-    result_code = GetChildConfigKey(ctrlckv, ckval);
+    result_code = vtnmgr->GetInstanceCount(ckv_cand,
+                                           NULL,
+                                           UPLL_DT_CANDIDATE,
+                                           &cand_instance_count,
+                                           dmi,
+                                           CTRLRTBL);
+    DELETE_IF_NOT_NULL(ckv_cand);
     if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("GetChildConfigKey ckval NULL");
-      DELETE_IF_NOT_NULL(ckval);
-      DELETE_IF_NOT_NULL(ckey);
+      UPLL_LOG_DEBUG("GetInstanceCount failed %d", result_code);
+      DELETE_IF_NOT_NULL(tmp_ckval);
       return result_code;
     }
-    val_policingmap_t *val2 = reinterpret_cast<val_policingmap_t *>(GetVal(ckval));
-    val_vtnpolicingmap_ctrl  *policingmap_ctrlr_val =
-        reinterpret_cast<val_vtnpolicingmap_ctrl *>
-        (ConfigKeyVal::Malloc(sizeof(val_vtnpolicingmap_ctrl)));
-    uuu::upll_strncpy(policingmap_ctrlr_val->policer_name, val2->policer_name,
-        (kMaxLenPolicingProfileName + 1));    
-
-    policingmap_ctrlr_val->valid[UPLL_IDX_POLICERNAME_PM] = UNC_VF_VALID;
-    UPLL_LOG_DEBUG("policer_name (%s) valid (%d)", policingmap_ctrlr_val->policer_name,
-                      policingmap_ctrlr_val->valid[UPLL_IDX_POLICERNAME_PM]);
-    SET_USER_DATA_CTRLR_DOMAIN(ctrlckv, ctrlr_dom);
-    SET_USER_DATA_FLAGS(ctrlckv, flag);
-      UPLL_LOG_DEBUG("GetChildConfigKey ckval NULL");
-    ctrlckv->SetCfgVal(new ConfigVal(IpctSt::kIpcInvalidStNum, policingmap_ctrlr_val));
-    UPLL_LOG_DEBUG("flag (%d)", flag);
-
-    // Create/Update/Delete a record in CANDIDATE DB
-    result_code = UpdateConfigDB(ctrlckv, UPLL_DT_CANDIDATE, UNC_OP_CREATE, dmi, CTRLRTBL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Err while inserting in ctrlr table for candidateDb(%d)",
-                     result_code);
-      DELETE_IF_NOT_NULL(ckey);
-      DELETE_IF_NOT_NULL(ckval);
-      DELETE_IF_NOT_NULL(ctrlckv);
-      return result_code;
+    UPLL_LOG_TRACE("Import count (%d) Candidate count (%d)",
+                   imp_instance_count, cand_instance_count);
+    if (imp_instance_count == cand_instance_count) {
+      /* If imported ctrlr's VTN not exists in Candidate,
+       * then check the existence
+         of imported ctrlr's policingmap
+         1)If the imported ctrlr VTN does not have policingmap, then continue
+         with the next VTN in imported db
+         2)If the imported ctrlr VTN has policingmap,
+         then merge this policingmap
+         into candidate db
+         */
+      UPLL_LOG_DEBUG("VTN not exists in candidate(%d)", result_code);
+
+      /* Check the imported ctrl VTN's policingmap existence in Import db */
+      key_vtn_t *vtn_ikey = reinterpret_cast<key_vtn_t *>(ckval->get_key());
+      key_vtn_t *vtn_pm_imkey = reinterpret_cast<key_vtn_t*>
+          (ConfigKeyVal::Malloc(sizeof(key_vtn_t)));
+      uuu::upll_strncpy(vtn_pm_imkey->vtn_name, vtn_ikey->vtn_name,
+                        kMaxLenVtnName+1);
+      pm_imkey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+                                  vtn_pm_imkey, NULL);
+
+      DbSubOp dbop1 = { kOpReadSingle, kOpMatchNone, kOpInOutFlag };
+      upll_rc_t result_import = ReadConfigDB(pm_imkey, UPLL_DT_IMPORT,
+                                             UNC_OP_READ, dbop1, dmi, MAINTBL);
+      if (result_import != UPLL_RC_SUCCESS &&
+          result_import != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+        DELETE_IF_NOT_NULL(pm_imkey);
+        DELETE_IF_NOT_NULL(tmp_ckval);
+        return result_code;
+      }
+
+      if (result_import == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+        /* If the imported ctrlr VTN does not have policingmap, then continue
+         * with the next VTN in imported db */
+        UPLL_LOG_DEBUG("policingmap not exists in import(%d)", result_code);
+        DELETE_IF_NOT_NULL(pm_imkey);
+        ckval = ckval->get_next_cfg_key_val();
+        continue;
+      } else if (result_import == UPLL_RC_SUCCESS) {
+        /* If imported ctrlr VTN has policingmap, then merge this policingmap
+         * into candidate db */
+
+        /* Create the policingmap in main tbl in candidate database */
+        result_code = UpdateConfigDB(pm_imkey, UPLL_DT_CANDIDATE, UNC_OP_CREATE,
+                                     dmi, MAINTBL);
+        if (result_code != UPLL_RC_SUCCESS) {
+          UPLL_LOG_DEBUG("create in CandidateDB failed (%d) ", result_code);
+          DELETE_IF_NOT_NULL(pm_imkey);
+          DELETE_IF_NOT_NULL(tmp_ckval);
+          return result_code;
+        }
+
+        //  Get the VTN across domain
+        result_code = vtnmgr->GetChildConfigKey(ckval_dom, NULL);
+        if (UPLL_RC_SUCCESS != result_code) {
+          UPLL_LOG_DEBUG("GetChildConfigKey ckval NULL");
+          DELETE_IF_NOT_NULL(pm_imkey);
+          DELETE_IF_NOT_NULL(tmp_ckval);
+          return result_code;
+        }
+
+        key_vtn_t *vtn_okey = reinterpret_cast<key_vtn_t *>
+            (ckval_dom->get_key());
+        key_vtn_t *vtn_ikey = reinterpret_cast<key_vtn_t *>
+            (pm_imkey->get_key());
+        uuu::upll_strncpy(vtn_okey->vtn_name, vtn_ikey->vtn_name,
+                          kMaxLenVtnName+1);
+
+        result_code = vtnmgr->GetControllerDomainSpan(ckval_dom,
+                                                      UPLL_DT_IMPORT, dmi);
+        if (result_code != UPLL_RC_SUCCESS) {
+          if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+            UPLL_LOG_DEBUG("GetControllerSpan no instance/error (%d)",
+                           result_code);
+            DELETE_IF_NOT_NULL(pm_imkey);
+            ckval = ckval->get_next_cfg_key_val();
+            continue;
+          }
+        }
+
+        ConfigKeyVal *tmp_ckval_dom = ckval_dom;
+        while (ckval_dom != NULL) {
+          /* Create the record in vtn policingmap ctrlr table with as per the
+           * ctrlr and domain */
+          ConfigKeyVal *ctrlckv = NULL;
+          GET_USER_DATA_CTRLR_DOMAIN(ckval_dom, ctrlr_dom);
+          GET_USER_DATA_FLAGS(pm_imkey, flag);
+          UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom.ctrlr,
+                         ctrlr_dom.domain);
+          UPLL_LOG_DEBUG("flag (%d)", flag);
+
+          result_code = GetChildConfigKey(ctrlckv, pm_imkey);
+          if (UPLL_RC_SUCCESS != result_code) {
+            UPLL_LOG_DEBUG("GetChildConfigKey ckval NULL");
+            DELETE_IF_NOT_NULL(tmp_ckval_dom);
+            DELETE_IF_NOT_NULL(pm_imkey);
+            DELETE_IF_NOT_NULL(tmp_ckval);
+            return result_code;
+          }
+
+          val_policingmap_t *val2 = reinterpret_cast<val_policingmap_t *>
+              (GetVal(pm_imkey));
+          val_vtnpolicingmap_ctrl  *policingmap_ctrlr_val =
+              reinterpret_cast<val_vtnpolicingmap_ctrl *>
+              (ConfigKeyVal::Malloc(sizeof(val_vtnpolicingmap_ctrl)));
+          uuu::upll_strncpy(policingmap_ctrlr_val->policer_name,
+                            val2->policer_name,
+                            (kMaxLenPolicingProfileName + 1));
+
+          policingmap_ctrlr_val->valid[UPLL_IDX_POLICERNAME_PM] = UNC_VF_VALID;
+          UPLL_LOG_DEBUG("policer_name (%s) valid (%d)",
+                         policingmap_ctrlr_val->policer_name,
+                         policingmap_ctrlr_val->
+                         valid[UPLL_IDX_POLICERNAME_PM]);
+          SET_USER_DATA_CTRLR_DOMAIN(ctrlckv, ctrlr_dom);
+          SET_USER_DATA_FLAGS(ctrlckv, flag);
+          UPLL_LOG_DEBUG("flag (%d)", flag);
+          ctrlckv->SetCfgVal(new ConfigVal(IpctSt::kIpcInvalidStNum,
+                                           policingmap_ctrlr_val));
+
+          /* Create a record in ctrlr tbl in candidate db */
+          result_code = UpdateConfigDB(ctrlckv, UPLL_DT_CANDIDATE,
+                                       UNC_OP_CREATE, dmi, CTRLRTBL);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("Err while inserting in ctrlr table (%d)",
+                           result_code);
+            DELETE_IF_NOT_NULL(ctrlckv);
+            DELETE_IF_NOT_NULL(tmp_ckval_dom);
+            DELETE_IF_NOT_NULL(pm_imkey);
+            DELETE_IF_NOT_NULL(tmp_ckval);
+            return result_code;
+          }
+          DELETE_IF_NOT_NULL(ctrlckv);
+          ckval_dom = ckval_dom->get_next_cfg_key_val();
+        }
+        DELETE_IF_NOT_NULL(tmp_ckval_dom);
+      }
+      DELETE_IF_NOT_NULL(pm_imkey);
+    } else if (imp_instance_count < cand_instance_count) {
+      /* If imported ctrlr's VTN exists in Candidate, then check the existence
+         of imported ctrlr VTN's policingmap and UNC VTN's policingmap
+         1)If the imported ctrlr VTN does not have policingmap, then apply the
+         UNC VTN's policingmap to imported ctrl VTN also in candidate db
+         2)If the imported ctrlr VTN has policingmap,
+         then return MERGE_CONFLICT
+         error, because of PFC limitation
+         */
+      UPLL_LOG_DEBUG("VTN exists in candidate(%d)", result_code);
+
+      /* Check the policingmap existence in Import db */
+      key_vtn_t *vtn_ikey = reinterpret_cast<key_vtn_t *>(ckval->get_key());
+      key_vtn_t *vtn_pm_imkey = reinterpret_cast<key_vtn_t*>
+          (ConfigKeyVal::Malloc(sizeof(key_vtn_t)));
+      uuu::upll_strncpy(vtn_pm_imkey->vtn_name, vtn_ikey->vtn_name,
+                        kMaxLenVtnName+1);
+      pm_imkey = new ConfigKeyVal(UNC_KT_VTN,
+                                  IpctSt::kIpcStKeyVtn,
+                                  vtn_pm_imkey, NULL);
+
+      DbSubOp dbop1 = { kOpReadSingle, kOpMatchNone, kOpInOutFlag };
+      upll_rc_t result_import = ReadConfigDB(pm_imkey, UPLL_DT_IMPORT,
+                                             UNC_OP_READ, dbop1, dmi, MAINTBL);
+      if (result_import != UPLL_RC_SUCCESS &&
+          result_import != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+        DELETE_IF_NOT_NULL(pm_imkey);
+        DELETE_IF_NOT_NULL(tmp_ckval);
+        return result_code;
+      }
+
+      /* Check the policingmap existence in candidate db */
+      key_vtn_t *vtn_pm_cdkey = reinterpret_cast<key_vtn_t*>
+          (ConfigKeyVal::Malloc(sizeof(key_vtn_t)));
+      uuu::upll_strncpy(vtn_pm_cdkey->vtn_name, vtn_ikey->vtn_name,
+                        kMaxLenVtnName+1);
+      pm_cdkey = new ConfigKeyVal(UNC_KT_VTN,
+                                  IpctSt::kIpcStKeyVtn,
+                                  vtn_pm_cdkey, NULL);
+
+      upll_rc_t result_cand = ReadConfigDB(pm_cdkey, UPLL_DT_CANDIDATE,
+                                           UNC_OP_READ, dbop1, dmi, MAINTBL);
+      if (result_cand != UPLL_RC_SUCCESS &&
+          result_cand != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+        DELETE_IF_NOT_NULL(pm_imkey);
+        DELETE_IF_NOT_NULL(pm_cdkey);
+        DELETE_IF_NOT_NULL(tmp_ckval);
+        return result_code;
+      }
+
+      if ((result_import == UPLL_RC_ERR_NO_SUCH_INSTANCE ||
+           result_import == UPLL_RC_SUCCESS) &&
+          result_cand == UPLL_RC_SUCCESS) {
+        /*1)If the imported ctrlr VTN does not have policingmap, then apply the
+          UNC VTN's policingmap to imported ctrl VTN also in candidate db
+          2)If the imported ctrlr VTN has policingmap,
+          then return MERGE_CONFLICT
+          error, because of PFC limitation */
+
+        /* The below code can be uncommented, once the PFC limitation issue got
+           solved
+           PFC Limitation :
+           Simultaneous execution of policing-profile deletion and policing-map
+           modification
+           If imported ctrl has policingmap,
+         *    Ignore this policing map and decrement the
+         *    refcount of PPCTRL tbl,
+         *    so that this impoted ctrl's policing profile and matched flowlist
+         *    will not applied into imported ctrl during AUDIT
+         if (result_import == UPLL_RC_SUCCESS) {
+         result_code = DecRefCountInPPCtrlTbl(pm_imkey, dmi);
+         DELETE_IF_NOT_NULL(pm_imkey);
+         if (result_code != UPLL_RC_SUCCESS) {
+         UPLL_LOG_DEBUG("Err in DecRefCountInPPCtrl (%d)", result_code);
+         DELETE_IF_NOT_NULL(tmp_ckval);
+         return result_code;
+         }
+         }
+         UPLL_LOG_DEBUG("DecRefCountInPMCtrlTbl success (%d)", result_code);
+         */
+
+        /* If imported ctrl also has policingmap,
+         * Return MERGE_CONFLICT, because limitation on PFC */
+        if (result_import == UPLL_RC_SUCCESS) {
+          UPLL_LOG_ERROR("IM & CAND has PM, return MERGE CONFLICT, PFC limit");
+          DELETE_IF_NOT_NULL(pm_imkey);
+          DELETE_IF_NOT_NULL(pm_cdkey);
+          DELETE_IF_NOT_NULL(tmp_ckval);
+          return UPLL_RC_ERR_MERGE_CONFLICT;
+        }
+
+        DELETE_IF_NOT_NULL(pm_imkey);
+        result_code = vtnmgr->GetChildConfigKey(ckval_dom, NULL);
+        if (UPLL_RC_SUCCESS != result_code) {
+          UPLL_LOG_DEBUG("GetChildConfigKey ckval NULL");
+          DELETE_IF_NOT_NULL(pm_cdkey);
+          DELETE_IF_NOT_NULL(tmp_ckval);
+          return result_code;
+        }
+
+        key_vtn_t *vtn_okey = reinterpret_cast<key_vtn_t *>
+            (ckval_dom->get_key());
+        key_vtn *vtn_ikey = reinterpret_cast<key_vtn_t *>(pm_cdkey->get_key());
+        uuu::upll_strncpy(vtn_okey->vtn_name, vtn_ikey->vtn_name,
+                          kMaxLenVtnName+1);
+
+        result_code = vtnmgr->GetControllerDomainSpan(ckval_dom,
+                                                      UPLL_DT_IMPORT, dmi);
+        if (result_code != UPLL_RC_SUCCESS) {
+          if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
+            UPLL_LOG_DEBUG("GetControllerSpan no instance/error (%d)",
+                           result_code);
+            DELETE_IF_NOT_NULL(pm_cdkey);
+            ckval = ckval->get_next_cfg_key_val();
+            continue;
+          }
+        }
+        PolicingProfileMoMgr *pp_mgr =
+            reinterpret_cast<PolicingProfileMoMgr *>
+            (const_cast<MoManager *>(GetMoManager(UNC_KT_POLICING_PROFILE)));
+
+        ConfigKeyVal *tmp_ckval_dom = ckval_dom;
+        while (ckval_dom != NULL) {
+          //  Create the entry in ctrlr table with as per the ctrlr and domain
+          ConfigKeyVal *ctrlckv = NULL;
+          GET_USER_DATA_CTRLR_DOMAIN(ckval_dom, ctrlr_dom);
+          GET_USER_DATA_FLAGS(pm_cdkey, flag);
+          UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom.ctrlr,
+                         ctrlr_dom.domain);
+          UPLL_LOG_DEBUG("flag (%d)", flag);
+
+          result_code = GetChildConfigKey(ctrlckv, pm_cdkey);
+          if (UPLL_RC_SUCCESS != result_code) {
+            UPLL_LOG_DEBUG("GetChildConfigKey ckval NULL");
+            DELETE_IF_NOT_NULL(tmp_ckval_dom);
+            DELETE_IF_NOT_NULL(pm_cdkey);
+            DELETE_IF_NOT_NULL(tmp_ckval);
+            return result_code;
+          }
+
+          val_policingmap_t *val2 = reinterpret_cast<val_policingmap_t *>
+              (GetVal(pm_cdkey));
+          val_vtnpolicingmap_ctrl  *policingmap_ctrlr_val =
+              reinterpret_cast<val_vtnpolicingmap_ctrl *>
+              (ConfigKeyVal::Malloc(sizeof(val_vtnpolicingmap_ctrl)));
+          uuu::upll_strncpy(policingmap_ctrlr_val->policer_name,
+                            val2->policer_name,
+                            (kMaxLenPolicingProfileName + 1));
+
+          policingmap_ctrlr_val->valid[UPLL_IDX_POLICERNAME_PM] =
+              UNC_VF_VALID;
+
+          GET_USER_DATA_CTRLR(ckval_dom, ctrlr_id);
+
+          result_code = pp_mgr->PolicingProfileCtrlrTblOper(
+              reinterpret_cast<const char *>(val2->policer_name),
+              reinterpret_cast<const char *>(ctrlr_id), dmi, UNC_OP_CREATE,
+              UPLL_DT_CANDIDATE);
+          if (UPLL_RC_SUCCESS != result_code) {
+            UPLL_LOG_DEBUG("Error in PolicingProfileCtrlrTblOper");
+            DELETE_IF_NOT_NULL(ctrlckv);
+            DELETE_IF_NOT_NULL(tmp_ckval_dom);
+            DELETE_IF_NOT_NULL(pm_cdkey);
+            DELETE_IF_NOT_NULL(tmp_ckval);
+            return result_code;
+          }
+
+          UPLL_LOG_DEBUG("policer_name (%s) valid (%d)",
+                         policingmap_ctrlr_val->policer_name,
+                         policingmap_ctrlr_val->
+                         valid[UPLL_IDX_POLICERNAME_PM]);
+          SET_USER_DATA_CTRLR_DOMAIN(ctrlckv, ctrlr_dom);
+          SET_USER_DATA_FLAGS(ctrlckv, flag);
+          UPLL_LOG_DEBUG("flag (%d)", flag);
+          ctrlckv->SetCfgVal(new ConfigVal(IpctSt::kIpcInvalidStNum,
+                                           policingmap_ctrlr_val));
+
+          //  Create a record in CANDIDATE DB
+          result_code = UpdateConfigDB(ctrlckv, UPLL_DT_CANDIDATE,
+                                       UNC_OP_CREATE, dmi, CTRLRTBL);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("Err while inserting in ctrlr table (%d)",
+                           result_code);
+            DELETE_IF_NOT_NULL(ctrlckv);
+            DELETE_IF_NOT_NULL(tmp_ckval_dom);
+            DELETE_IF_NOT_NULL(pm_cdkey);
+            DELETE_IF_NOT_NULL(tmp_ckval);
+            return result_code;
+          }
+          DELETE_IF_NOT_NULL(ctrlckv);
+          ckval_dom = ckval_dom->get_next_cfg_key_val();
+        }
+        DELETE_IF_NOT_NULL(tmp_ckval_dom);
+        DELETE_IF_NOT_NULL(pm_cdkey);
+      } else if (result_import == UPLL_RC_SUCCESS &&
+                 result_cand == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+        UPLL_LOG_DEBUG("policingmap not exists in candidate");
+        /* The below code can be uncommented, once the PFC limitation issue
+           got solved
+           PFC Limitation :
+           Simultaneous execution of policing-profile deletion and policing-map
+           modification
+           If imported ctrl has policingmap and UNC doesn't have policingmap,
+           Ignore this policing map and decrement the refcount of PPCTRL tbl,
+           so that this impoted ctrl's policing profile and matched flowlist
+           will not applied into imported ctrl during AUDIT
+           result_code = DecRefCountInPPCtrlTbl(pm_imkey, dmi);
+           DELETE_IF_NOT_NULL(pm_cdkey);
+           DELETE_IF_NOT_NULL(pm_imkey);
+           if (result_code != UPLL_RC_SUCCESS) {
+           UPLL_LOG_DEBUG("Err in DecRefCountInPPCtrl (%d)", result_code);
+           DELETE_IF_NOT_NULL(tmp_ckval);
+           return result_code;
+           }
+           UPLL_LOG_DEBUG("DecRefCountInFLCtrlTbl success (%d)", result_code);
+           */
+        /* If imported ctrl has policingmap and candidate does not
+         * have policingmap,
+         * Return MERGE_CONFLICT, because limitation on PFC */
+        UPLL_LOG_ERROR("IMPORT DB has PM, ret MERGE CONFLICT, PFC limit");
+        DELETE_IF_NOT_NULL(pm_imkey);
+        DELETE_IF_NOT_NULL(pm_cdkey);
+        DELETE_IF_NOT_NULL(tmp_ckval);
+        return UPLL_RC_ERR_MERGE_CONFLICT;
+      } else if (result_import == UPLL_RC_ERR_NO_SUCH_INSTANCE &&
+                 result_cand == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
+        DELETE_IF_NOT_NULL(pm_imkey);
+        DELETE_IF_NOT_NULL(pm_cdkey);
+      }
     }
-    DELETE_IF_NOT_NULL(ctrlckv);    
-    ckey = ckey->get_next_cfg_key_val();
+    ckval = ckval->get_next_cfg_key_val();
   }
-  DELETE_IF_NOT_NULL(tmp_ckey);
-  ckval = ckval->get_next_cfg_key_val();
-}
-
   DELETE_IF_NOT_NULL(tmp_ckval);
   return UPLL_RC_SUCCESS;
 }
 
+/* The below function can be uncommented, once the PFC limitation issue
+   got solved
+   PFC Limitation :
+   Simultaneous execution of policing-profile deletion and policing-map
+   modification
+   upll_rc_t VtnPolicingMapMoMgr::DecRefCountInPPCtrlTbl(
+   ConfigKeyVal *pm_imkey, DalDmlIntf *dmi) {
+   UPLL_FUNC_TRACE;
+   upll_rc_t result_code = UPLL_RC_SUCCESS;
+   ConfigKeyVal *ckval_dom = NULL;
+   uint8_t *ctrlr_id = NULL;
+
+   VtnMoMgr *vtnmgr =
+   static_cast<VtnMoMgr *>((const_cast<MoManager *>
+   (GetMoManager(UNC_KT_VTN))));
+
+   PolicingProfileMoMgr *pp_mgr =
+   reinterpret_cast<PolicingProfileMoMgr *>
+   (const_cast<MoManager *>(GetMoManager(UNC_KT_POLICING_PROFILE)));
+
+   if ((NULL == vtnmgr) || (NULL == pp_mgr)) {
+   UPLL_LOG_DEBUG("GetChildConfigKey ckval_dom NULL");
+   return result_code;
+   }
+
+//  Get the VTN associated ctrl name
+result_code = vtnmgr->GetChildConfigKey(ckval_dom, NULL);
+if (UPLL_RC_SUCCESS != result_code) {
+UPLL_LOG_DEBUG("GetChildConfigKey ckval_dom NULL");
+return result_code;
+}
+
+key_vtn_t *vtn_okey = reinterpret_cast<key_vtn_t *>
+(ckval_dom->get_key());
+key_vtn_t *vtn_ikey = reinterpret_cast
+<key_vtn_t *>(pm_imkey->get_key());
+uuu::upll_strncpy(vtn_okey->vtn_name,
+vtn_ikey->vtn_name, kMaxLenVtnName+1);
+DbSubOp dbop2 = {kOpReadSingle, kOpMatchNone, kOpInOutCtrlr};
+result_code = vtnmgr->ReadConfigDB(ckval_dom, UPLL_DT_IMPORT,
+UNC_OP_READ, dbop2, dmi, CTRLRTBL);
+if (result_code != UPLL_RC_SUCCESS) {
+UPLL_LOG_DEBUG("VTN ctrltbl read failure (%d)", result_code);
+DELETE_IF_NOT_NULL(ckval_dom);
+return result_code;
+}
+
+GET_USER_DATA_CTRLR(ckval_dom, ctrlr_id);
+UPLL_LOG_DEBUG("flow-filter not exists in candidate");
+
+val_policingmap_t *vtn_pm_val = reinterpret_cast
+<val_policingmap_t *>(GetVal(pm_imkey));
+
+result_code = pp_mgr->PolicingProfileCtrlrTblOper(
+reinterpret_cast<const char *>(vtn_pm_val->policer_name),
+reinterpret_cast<const char *>(ctrlr_id), dmi, UNC_OP_DELETE,
+UPLL_DT_CANDIDATE);
+
+if (result_code != UPLL_RC_SUCCESS) {
+UPLL_LOG_DEBUG("AddFlowListToController failed err code(%d)",
+result_code);
+DELETE_IF_NOT_NULL(ckval_dom);
+return result_code;
+}
+DELETE_IF_NOT_NULL(ckval_dom);
+return UPLL_RC_SUCCESS;
+}*/
+
 upll_rc_t VtnPolicingMapMoMgr::GetRenamedUncKey(ConfigKeyVal *ctrlr_key,
-    upll_keytype_datatype_t dt_type,
-    DalDmlIntf *dmi,
-    uint8_t *ctrlr_id) {
+                                                upll_keytype_datatype_t dt_type,
+                                                DalDmlIntf *dmi,
+                                                uint8_t *ctrlr_id) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code;
   ConfigKeyVal *unc_key = NULL;
   UPLL_LOG_TRACE("%s GetRenamedUncKey vtnpm start",
-                  ctrlr_key->ToStrAll().c_str());
+                 ctrlr_key->ToStrAll().c_str());
   if (NULL == ctrlr_key || NULL == dmi || ctrlr_id[0] == '\0') {
     UPLL_LOG_DEBUG("GetRenamedUncKey failed. Insufficient input parameters.");
     return UPLL_RC_ERR_GENERIC;
@@ -2335,13 +2591,13 @@ upll_rc_t VtnPolicingMapMoMgr::GetRenamedUncKey(ConfigKeyVal *ctrlr_key,
     return UPLL_RC_ERR_GENERIC;
   }
   uuu::upll_strncpy(rename_vtn->new_name, ctrlr_vtn_key->vtn_name,
-      (kMaxLenVtnName + 1));
+                    (kMaxLenVtnName + 1));
 
   rename_vtn->valid[UPLL_IDX_NEW_NAME_RVTN] = UNC_VF_VALID;
 
   MoMgrImpl *mgr =
-    reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-            UNC_KT_VTN)));
+      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                  UNC_KT_VTN)));
   if (NULL == mgr) {
     UPLL_LOG_DEBUG("mgr NULL");
     free(rename_vtn);
@@ -2368,7 +2624,7 @@ upll_rc_t VtnPolicingMapMoMgr::GetRenamedUncKey(ConfigKeyVal *ctrlr_key,
   SET_USER_DATA_CTRLR(unc_key, ctrlr_id);
 
   result_code = mgr->ReadConfigDB(unc_key, dt_type, UNC_OP_READ, dbop, dmi,
-      RENAMETBL);
+                                  RENAMETBL);
   if ((UPLL_RC_SUCCESS != result_code) &&
       (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
     UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
@@ -2382,10 +2638,10 @@ upll_rc_t VtnPolicingMapMoMgr::GetRenamedUncKey(ConfigKeyVal *ctrlr_key,
     key_vtn *vtn_key = reinterpret_cast<key_vtn *>(unc_key->get_key());
     if (vtn_key) {
       if (strcmp(reinterpret_cast<const char *>(ctrlr_vtn_key->vtn_name),
-            reinterpret_cast<const char *>(vtn_key->vtn_name))) {
+                 reinterpret_cast<const char *>(vtn_key->vtn_name))) {
         uuu::upll_strncpy(ctrlr_vtn_key->vtn_name,
-            vtn_key->vtn_name,
-            (kMaxLenVtnName + 1));
+                          vtn_key->vtn_name,
+                          (kMaxLenVtnName + 1));
       }
     }
   }
@@ -2394,21 +2650,21 @@ upll_rc_t VtnPolicingMapMoMgr::GetRenamedUncKey(ConfigKeyVal *ctrlr_key,
   DELETE_IF_NOT_NULL(unc_key);
 
   val_rename_policingprofile *rename_policingprofile =
-    reinterpret_cast<val_rename_policingprofile *>
-    (ConfigKeyVal::Malloc(sizeof(val_rename_policingprofile)));
+      reinterpret_cast<val_rename_policingprofile *>
+      (ConfigKeyVal::Malloc(sizeof(val_rename_policingprofile)));
   if (!rename_policingprofile) {
     UPLL_LOG_DEBUG("rename_policingprofile NULL");
     return UPLL_RC_ERR_GENERIC;
   }
   val_policingmap_t *val_policingmap =
-    reinterpret_cast<val_policingmap_t *>(GetVal(ctrlr_key));
+      reinterpret_cast<val_policingmap_t *>(GetVal(ctrlr_key));
   if (!val_policingmap) {
     free(rename_policingprofile);
     return UPLL_RC_SUCCESS;
   }
 
   memset(rename_policingprofile->policingprofile_newname, '\0',
-      sizeof(rename_policingprofile->policingprofile_newname));
+         sizeof(rename_policingprofile->policingprofile_newname));
   uuu::upll_strncpy(
       rename_policingprofile->policingprofile_newname,
       val_policingmap->policer_name,
@@ -2417,8 +2673,8 @@ upll_rc_t VtnPolicingMapMoMgr::GetRenamedUncKey(ConfigKeyVal *ctrlr_key,
   rename_policingprofile->valid[UPLL_IDX_RENAME_PROFILE_RPP] = UNC_VF_VALID;
 
   MoMgrImpl *pp_mgr =
-    reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-            UNC_KT_POLICING_PROFILE)));
+      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                  UNC_KT_POLICING_PROFILE)));
   if (NULL == pp_mgr) {
     UPLL_LOG_DEBUG("mgr NULL");
     if (rename_policingprofile) free(rename_policingprofile);
@@ -2443,7 +2699,7 @@ upll_rc_t VtnPolicingMapMoMgr::GetRenamedUncKey(ConfigKeyVal *ctrlr_key,
   unc_key->SetCfgVal(p_config_val);
   SET_USER_DATA_CTRLR(unc_key, ctrlr_id);
   result_code = pp_mgr->ReadConfigDB(unc_key, dt_type, UNC_OP_READ, dbop, dmi,
-      RENAMETBL);
+                                     RENAMETBL);
   if ((UPLL_RC_SUCCESS != result_code) &&
       (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
     UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
@@ -2454,14 +2710,14 @@ upll_rc_t VtnPolicingMapMoMgr::GetRenamedUncKey(ConfigKeyVal *ctrlr_key,
 
   if (result_code == UPLL_RC_SUCCESS) {
     key_policingprofile_t *key_policingprofile =
-      reinterpret_cast<key_policingprofile_t *>(unc_key->get_key());
+        reinterpret_cast<key_policingprofile_t *>(unc_key->get_key());
     uuu::upll_strncpy(
         val_policingmap->policer_name,
         key_policingprofile->policingprofile_name,
         (kMaxLenPolicingProfileName + 1));
   }
   UPLL_LOG_TRACE("%s GetRenamedUncKey vtnpm end",
-                  ctrlr_key->ToStrAll().c_str());
+                 ctrlr_key->ToStrAll().c_str());
   DELETE_IF_NOT_NULL(unc_key);
   pp_mgr = NULL;
   return UPLL_RC_SUCCESS;
@@ -2477,7 +2733,7 @@ upll_rc_t VtnPolicingMapMoMgr::TxUpdateController(
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   DalResultCode dal_result = uud::kDalRcSuccess;
   ConfigKeyVal *req = NULL, *nreq = NULL, *ck_main = NULL;
-  controller_domain ctrlr_dom;  // UNINIT
+  controller_domain ctrlr_dom;  //  UNINIT
   ctrlr_dom.ctrlr = NULL;
   ctrlr_dom.domain = NULL;
   DalCursor *dal_cursor_handle = NULL;
@@ -2510,6 +2766,7 @@ upll_rc_t VtnPolicingMapMoMgr::TxUpdateController(
     if (result_code != UPLL_RC_SUCCESS)
       break;
     ck_main = NULL;
+    bool driver_resp = false;
     if ( (op == UNC_OP_CREATE) || (op == UNC_OP_DELETE) ) {
       result_code = DupConfigKeyVal(ck_main, req, MAINTBL);
       if (result_code != UPLL_RC_SUCCESS) {
@@ -2532,14 +2789,19 @@ upll_rc_t VtnPolicingMapMoMgr::TxUpdateController(
       }
       UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom.ctrlr,
                      ctrlr_dom.domain);
-      result_code = TxUpdateProcess(ck_main, &resp,
-                                    op, dmi, &ctrlr_dom);
-      if (result_code != UPLL_RC_SUCCESS) {
+      result_code = TxUpdateProcess(ck_main,
+                                    &resp,
+                                    op,
+                                    dmi,
+                                    &ctrlr_dom,
+                                    affected_ctrlr_set,
+                                    &driver_resp);
+      if (result_code != UPLL_RC_SUCCESS && driver_resp) {
         UPLL_LOG_DEBUG("TxUpdateProcess Returns error %d", result_code);
         upll_keytype_datatype_t dt_type = (UNC_OP_DELETE == op)?
             UPLL_DT_RUNNING:UPLL_DT_CANDIDATE;
         upll_rc_t local_rc = GetRenamedUncKey(resp.ckv_data, dt_type, dmi,
-                                       ctrlr_dom.ctrlr);
+                                              ctrlr_dom.ctrlr);
         if (UPLL_RC_SUCCESS != local_rc &&
             UPLL_RC_ERR_NO_SUCH_INSTANCE != local_rc) {
           UPLL_LOG_DEBUG("GetRenamedUncKey failed %d", local_rc);
@@ -2548,12 +2810,16 @@ upll_rc_t VtnPolicingMapMoMgr::TxUpdateController(
           result_code = UPLL_RC_ERR_GENERIC;
           break;
         }
+        SET_USER_DATA_CTRLR(resp.ckv_data, ctrlr_dom.ctrlr);
         *err_ckv = resp.ckv_data;
         DELETE_IF_NOT_NULL(ck_main);
         break;
+      } else if (result_code != UPLL_RC_SUCCESS) {
+        DELETE_IF_NOT_NULL(ck_main);
+        DELETE_IF_NOT_NULL(resp.ckv_data);
+        break;
       }
       DELETE_IF_NOT_NULL(resp.ckv_data);
-      affected_ctrlr_set->insert((const char *)ctrlr_dom.ctrlr);
     } else if (op == UNC_OP_UPDATE) {
       ConfigKeyVal *ck_ctrlr = NULL;
       result_code = DupConfigKeyVal(ck_main, req, MAINTBL);
@@ -2589,8 +2855,9 @@ upll_rc_t VtnPolicingMapMoMgr::TxUpdateController(
         DELETE_IF_NOT_NULL(ck_ctrlr);
         continue;
       }
-     for (ConfigKeyVal *tmp = ck_ctrlr; tmp != NULL;
+      for (ConfigKeyVal *tmp = ck_ctrlr; tmp != NULL;
            tmp = tmp->get_next_cfg_key_val()) {
+        driver_resp = false;
         GET_USER_DATA_CTRLR_DOMAIN(tmp, ctrlr_dom);
         if (ctrlr_dom.ctrlr == NULL || (ctrlr_dom.domain == NULL)) {
           UPLL_LOG_DEBUG("Invalid controller");
@@ -2600,7 +2867,7 @@ upll_rc_t VtnPolicingMapMoMgr::TxUpdateController(
           DELETE_IF_NOT_NULL(nreq);
           DELETE_IF_NOT_NULL(ck_main);
           DELETE_IF_NOT_NULL(ck_ctrlr);
-         return UPLL_RC_ERR_GENERIC;
+          return UPLL_RC_ERR_GENERIC;
         }
         ConfigKeyVal *temp_ck_main = NULL;
         result_code = DupConfigKeyVal(temp_ck_main, ck_main, MAINTBL);
@@ -2614,20 +2881,25 @@ upll_rc_t VtnPolicingMapMoMgr::TxUpdateController(
           DELETE_IF_NOT_NULL(ck_main);
           return result_code;
         }
-        result_code = TxUpdateProcess(ck_main, &resp, op, dmi, &ctrlr_dom);
-        if (result_code != UPLL_RC_SUCCESS) {
+        result_code = TxUpdateProcess(ck_main, &resp, op, dmi, &ctrlr_dom,
+                                      affected_ctrlr_set, &driver_resp);
+        if (result_code != UPLL_RC_SUCCESS && driver_resp) {
           UPLL_LOG_DEBUG("TxUpdate Process returns with %d", result_code);
           *err_ckv = temp_ck_main;
           DELETE_IF_NOT_NULL(resp.ckv_data);
           DELETE_IF_NOT_NULL(ck_main);
           DELETE_IF_NOT_NULL(ck_ctrlr);
           break;
+        } else if (result_code != UPLL_RC_SUCCESS) {
+          DELETE_IF_NOT_NULL(ck_main);
+          DELETE_IF_NOT_NULL(ck_ctrlr);
+          break;
         }
         DELETE_IF_NOT_NULL(temp_ck_main);
-        affected_ctrlr_set->insert(reinterpret_cast<const char *>
-                                   (ctrlr_dom.ctrlr));
       }
       DELETE_IF_NOT_NULL(ck_ctrlr);
+      if (driver_resp || result_code != UPLL_RC_SUCCESS)
+        break;
     }
     DELETE_IF_NOT_NULL(ck_main);
   }
@@ -2643,10 +2915,12 @@ upll_rc_t VtnPolicingMapMoMgr::TxUpdateController(
 }
 
 upll_rc_t VtnPolicingMapMoMgr::TxUpdateProcess(ConfigKeyVal *ck_main,
-    IpcResponse *ipc_resp,
-    unc_keytype_operation_t op,
-    DalDmlIntf *dmi,
-    controller_domain *ctrlr_dom) {
+                                               IpcResponse *ipc_resp,
+                                               unc_keytype_operation_t op,
+                                               DalDmlIntf *dmi,
+                                               controller_domain *ctrlr_dom,
+                                               set<string> *affected_ctrlr_set,
+                                               bool *driver_resp) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code;
   /* read from main table */
@@ -2663,7 +2937,7 @@ upll_rc_t VtnPolicingMapMoMgr::TxUpdateProcess(ConfigKeyVal *ck_main,
                                UNC_OP_READ, dbop, dmi, MAINTBL);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_TRACE("%s Policingprofile read failed %d",
-                    dup_ckmain->ToStrAll().c_str(), result_code);
+                     dup_ckmain->ToStrAll().c_str(), result_code);
       DELETE_IF_NOT_NULL(dup_ckmain);
       return result_code;
     }
@@ -2671,10 +2945,10 @@ upll_rc_t VtnPolicingMapMoMgr::TxUpdateProcess(ConfigKeyVal *ck_main,
   /* Get renamed key if key is renamed */
   if (op == UNC_OP_DELETE) {
     result_code = GetRenamedControllerKey(dup_ckmain, UPLL_DT_RUNNING,
-                                              dmi, ctrlr_dom);
+                                          dmi, ctrlr_dom);
   } else  {
     result_code = GetRenamedControllerKey(dup_ckmain, UPLL_DT_CANDIDATE,
-                                         dmi, ctrlr_dom);
+                                          dmi, ctrlr_dom);
   }
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("GetRenamedControllerKey failed %d", result_code);
@@ -2685,7 +2959,7 @@ upll_rc_t VtnPolicingMapMoMgr::TxUpdateProcess(ConfigKeyVal *ck_main,
   result_code = SendIpcReq(ipc_resp->header.clnt_sess_id,
                            ipc_resp->header.config_id, op, UPLL_DT_CANDIDATE,
                            dup_ckmain, ctrlr_dom, ipc_resp);
-  if (result_code == UPLL_RC_ERR_RESOURCE_DISCONNECTED) {
+  if (result_code == UPLL_RC_ERR_CTR_DISCONNECTED) {
     UPLL_LOG_DEBUG("Controller disconnected");
     if (op == UNC_OP_CREATE)
       DELETE_IF_NOT_NULL(dup_ckmain);
@@ -2693,10 +2967,14 @@ upll_rc_t VtnPolicingMapMoMgr::TxUpdateProcess(ConfigKeyVal *ck_main,
   }
   if (result_code != UPLL_RC_SUCCESS) {
     UPLL_LOG_DEBUG("IpcSend failed %d", result_code);
+    *driver_resp = true;
   }
+  affected_ctrlr_set->insert(reinterpret_cast<const char *>
+                             (ctrlr_dom->ctrlr));
   if ((op == UNC_OP_CREATE)) {
     DELETE_IF_NOT_NULL(dup_ckmain);
   }
+  UPLL_LOG_TRACE("Driver response received %d", *driver_resp);
   return result_code;
 }
 
@@ -2705,7 +2983,7 @@ upll_rc_t VtnPolicingMapMoMgr::GetControllerDomainSpan(
   UPLL_FUNC_TRACE;
   upll_rc_t result_code;
   DbSubOp dbop = { kOpReadExist, kOpMatchNone,
-          kOpInOutCtrlr|kOpInOutDomain};
+    kOpInOutCtrlr|kOpInOutDomain};
 
   result_code = ReadConfigDB(ikey, dt_type, UNC_OP_READ, dbop, dmi, CTRLRTBL);
   UPLL_LOG_DEBUG("GetControllerDomainSpan successful:- %d", result_code);
@@ -2713,9 +2991,12 @@ upll_rc_t VtnPolicingMapMoMgr::GetControllerDomainSpan(
 }
 
 
-upll_rc_t VtnPolicingMapMoMgr::UpdateMainTbl(ConfigKeyVal *vtn_key,
-      unc_keytype_operation_t op, uint32_t driver_result,
-      ConfigKeyVal *nreq, DalDmlIntf *dmi) {
+upll_rc_t VtnPolicingMapMoMgr::UpdateMainTbl(
+    ConfigKeyVal *vtn_key,
+    unc_keytype_operation_t op,
+    uint32_t driver_result,
+    ConfigKeyVal *nreq,
+    DalDmlIntf *dmi) {
   ConfigKeyVal *ck_vtn = NULL;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_policingmap_t *pm_val = NULL;
@@ -2756,8 +3037,8 @@ upll_rc_t VtnPolicingMapMoMgr::UpdateMainTbl(ConfigKeyVal *vtn_key,
       }
       CompareValidValue(pmval, npmval, false);
       pm_val->cs_row_status =
-             reinterpret_cast<val_policingmap_t *>
-                       (GetVal(nreq))->cs_row_status;
+          reinterpret_cast<val_policingmap_t *>
+          (GetVal(nreq))->cs_row_status;
       break;
     case UNC_OP_DELETE:
       break;
@@ -2781,30 +3062,18 @@ upll_rc_t VtnPolicingMapMoMgr::GetRenamedControllerKey(
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *okey = NULL;
-  uint8_t rename = 0;
 
   if (NULL == ikey || NULL == dmi) {
     UPLL_LOG_DEBUG("Insufficient input resources");
     return UPLL_RC_ERR_GENERIC;
   }
-
-  result_code = IsRenamed(ikey, dt_type, dmi, rename);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG("IsRenamed failed (%d)", result_code);
-    return result_code;
-  }
-
-  if (rename == 0) {
-    UPLL_LOG_DEBUG("Name not renamed");
-    return UPLL_RC_SUCCESS;
-  }
   UPLL_LOG_TRACE("Start .. InputConfigKeyVal %s", ikey->ToStrAll().c_str());
 
   if (UNC_KT_VTN_POLICINGMAP_CONTROLLER == ikey->get_key_type()) {
-  if (rename & VTN_RENAME) {
     UPLL_LOG_DEBUG("vtn_pm_ctrl vtn name renamed");
-    MoMgrImpl *vtn_mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
-        (GetMoManager(UNC_KT_VTN)));
+    MoMgrImpl *vtn_mgr = reinterpret_cast<MoMgrImpl *>
+        (const_cast<MoManager *>
+         (GetMoManager(UNC_KT_VTN)));
     if (NULL == vtn_mgr) {
       UPLL_LOG_DEBUG("mgr NULL");
       return UPLL_RC_ERR_GENERIC;
@@ -2817,7 +3086,8 @@ upll_rc_t VtnPolicingMapMoMgr::GetRenamedControllerKey(
     }
     if (!okey) return UPLL_RC_ERR_GENERIC;
 
-    DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr | kOpMatchDomain, kOpInOutFlag };
+    DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr | kOpMatchDomain,
+      kOpInOutFlag };
 
     if (ctrlr_dom) {
       SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
@@ -2828,21 +3098,21 @@ upll_rc_t VtnPolicingMapMoMgr::GetRenamedControllerKey(
     }
 
     UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
+                   ctrlr_dom->domain);
 
     uuu::upll_strncpy(
-                      reinterpret_cast<key_vtn *>(okey->get_key())->vtn_name,
-                      reinterpret_cast<key_vtn_policingmap_controller_t *>
-                      (ikey->get_key())->vtn_key.vtn_name,
-                      (kMaxLenVtnName + 1));
+        reinterpret_cast<key_vtn *>(okey->get_key())->vtn_name,
+        reinterpret_cast<key_vtn_policingmap_controller_t *>
+        (ikey->get_key())->vtn_key.vtn_name,
+        (kMaxLenVtnName + 1));
 
     UPLL_LOG_DEBUG("vtn name (%s) (%s)",
-                    reinterpret_cast<key_vtn *>(okey->get_key())->vtn_name,
-                    reinterpret_cast<key_vtn_policingmap_controller_t *>
-                    (ikey->get_key())->vtn_key.vtn_name);
+                   reinterpret_cast<key_vtn *>(okey->get_key())->vtn_name,
+                   reinterpret_cast<key_vtn_policingmap_controller_t *>
+                   (ikey->get_key())->vtn_key.vtn_name);
 
     result_code = vtn_mgr->ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop, dmi,
-        RENAMETBL);
+                                        RENAMETBL);
     if (UPLL_RC_SUCCESS != result_code) {
       if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
         UPLL_LOG_DEBUG("ReadConfigDB no instance");
@@ -2855,7 +3125,7 @@ upll_rc_t VtnPolicingMapMoMgr::GetRenamedControllerKey(
     }
 
     val_rename_vtn *rename_val =
-      reinterpret_cast<val_rename_vtn *>(GetVal(okey));
+        reinterpret_cast<val_rename_vtn *>(GetVal(okey));
     if (!rename_val) {
       UPLL_LOG_DEBUG("rename_val NULL");
       DELETE_IF_NOT_NULL(okey);
@@ -2863,76 +3133,72 @@ upll_rc_t VtnPolicingMapMoMgr::GetRenamedControllerKey(
     }
 
     uuu::upll_strncpy(
-       reinterpret_cast<key_vtn_policingmap_controller_t*>
-       (ikey->get_key())->vtn_key.vtn_name,
-       rename_val->new_name,
-       kMaxLenVtnName + 1);
+        reinterpret_cast<key_vtn_policingmap_controller_t*>
+        (ikey->get_key())->vtn_key.vtn_name,
+        rename_val->new_name,
+        kMaxLenVtnName + 1);
 
     UPLL_LOG_DEBUG("renamed vtn_pm_ctrl  vtn name (%s) (%s)",
-       reinterpret_cast<key_vtn_policingmap_controller_t*>
-       (ikey->get_key())->vtn_key.vtn_name,
-       rename_val->new_name);
+                   reinterpret_cast<key_vtn_policingmap_controller_t*>
+                   (ikey->get_key())->vtn_key.vtn_name,
+                   rename_val->new_name);
 
-    SET_USER_DATA_FLAGS(ikey, rename);
     DELETE_IF_NOT_NULL(okey);
     vtn_mgr = NULL;
-    return UPLL_RC_SUCCESS; 
+    return UPLL_RC_SUCCESS;
   }
-  }  
-  if (rename & VTN_RENAME) {
-    UPLL_LOG_DEBUG("vtn name renamed");
-    MoMgrImpl *vtn_mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
-        (GetMoManager(UNC_KT_VTN)));
-    if (NULL == vtn_mgr) {
-      UPLL_LOG_DEBUG("mgr NULL");
-      return UPLL_RC_ERR_GENERIC;
-    }
 
-    result_code = vtn_mgr->GetChildConfigKey(okey, NULL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("GetChildConfigKey fail (%d)", result_code);
-      return result_code;
-    }
-    if (!okey) return UPLL_RC_ERR_GENERIC;
+  //  Getting controller name for UNC_KT_VTN_POLICINGMAP
+  MoMgrImpl *vtn_mgr = reinterpret_cast<MoMgrImpl *>
+      (const_cast<MoManager *>
+       (GetMoManager(UNC_KT_VTN)));
+  if (NULL == vtn_mgr) {
+    UPLL_LOG_DEBUG("mgr NULL");
+    return UPLL_RC_ERR_GENERIC;
+  }
 
-    DbSubOp dbop = { kOpReadSingle, kOpMatchCtrlr | kOpMatchDomain, kOpInOutFlag };
+  result_code = vtn_mgr->GetChildConfigKey(okey, NULL);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_DEBUG("GetChildConfigKey fail (%d)", result_code);
+    return result_code;
+  }
 
-    if (ctrlr_dom) {
-      SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
-    } else {
-      UPLL_LOG_DEBUG("ctrlr_dom null");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
+  DbSubOp dbop = { kOpReadSingle,
+    kOpMatchCtrlr | kOpMatchDomain,
+    kOpInOutFlag };
 
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
+  if (ctrlr_dom) {
+    SET_USER_DATA_CTRLR_DOMAIN(okey, *ctrlr_dom);
+  } else {
+    UPLL_LOG_DEBUG("ctrlr_dom null");
+    DELETE_IF_NOT_NULL(okey);
+    return UPLL_RC_ERR_GENERIC;
+  }
 
-    uuu::upll_strncpy(
-                      reinterpret_cast<key_vtn *>(okey->get_key())->vtn_name,
-                      reinterpret_cast<key_vtn_t *>
-                      (ikey->get_key())->vtn_name,
-                      (kMaxLenVtnName + 1));
+  UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
+                 ctrlr_dom->domain);
 
-    UPLL_LOG_DEBUG("vtn name (%s) (%s)",
-                    reinterpret_cast<key_vtn *>(okey->get_key())->vtn_name,
-                    reinterpret_cast<key_vtn_t *>(ikey->get_key())->vtn_name);
+  uuu::upll_strncpy(
+      reinterpret_cast<key_vtn *>(okey->get_key())->vtn_name,
+      reinterpret_cast<key_vtn_t *>
+      (ikey->get_key())->vtn_name,
+      (kMaxLenVtnName + 1));
 
-    result_code = vtn_mgr->ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop, dmi,
-        RENAMETBL);
-    if (UPLL_RC_SUCCESS != result_code) {
-      if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-        UPLL_LOG_DEBUG("ReadConfigDB no instance");
-        DELETE_IF_NOT_NULL(okey);
-        return UPLL_RC_SUCCESS;
-      }
-      UPLL_LOG_DEBUG("GetRenamedControllerKey ReadConfigDB error");
-      DELETE_IF_NOT_NULL(okey);
-      return result_code;
-    }
+  UPLL_LOG_DEBUG("vtn name (%s) (%s)",
+                 reinterpret_cast<key_vtn *>(okey->get_key())->vtn_name,
+                 reinterpret_cast<key_vtn_t *>(ikey->get_key())->vtn_name);
 
+  result_code = vtn_mgr->ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop, dmi,
+                                      RENAMETBL);
+  if ((UPLL_RC_SUCCESS != result_code) &&
+      (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
+    UPLL_LOG_DEBUG("GetRenamedControllerKey ReadConfigDB error");
+    DELETE_IF_NOT_NULL(okey);
+    return result_code;
+  }
+  if (UPLL_RC_SUCCESS == result_code) {
     val_rename_vtn *rename_val =
-      reinterpret_cast<val_rename_vtn *>(GetVal(okey));
+        reinterpret_cast<val_rename_vtn *>(GetVal(okey));
     if (!rename_val) {
       UPLL_LOG_DEBUG("rename_val NULL");
       DELETE_IF_NOT_NULL(okey);
@@ -2940,75 +3206,60 @@ upll_rc_t VtnPolicingMapMoMgr::GetRenamedControllerKey(
     }
 
     uuu::upll_strncpy(
-       reinterpret_cast<key_vtn_t*>(ikey->get_key())->vtn_name,
-       rename_val->new_name,
-       kMaxLenVtnName + 1);
-
-    DELETE_IF_NOT_NULL(okey);
-    vtn_mgr = NULL;
+        reinterpret_cast<key_vtn_t*>(ikey->get_key())->vtn_name,
+        rename_val->new_name,
+        kMaxLenVtnName + 1);
+  }
+  DELETE_IF_NOT_NULL(okey);
+  vtn_mgr = NULL;
+  UPLL_LOG_DEBUG("vtn name renamed");
+  MoMgrImpl *pp_mgr = reinterpret_cast<MoMgrImpl *>
+      (const_cast<MoManager *>
+       (GetMoManager(UNC_KT_POLICING_PROFILE)));
+  if (NULL == pp_mgr) {
+    UPLL_LOG_DEBUG("mgr NULL");
+    return UPLL_RC_ERR_GENERIC;
   }
 
-  if (rename & POLICINGPROFILE_RENAME) {
-    UPLL_LOG_DEBUG("vtn name renamed");
-    MoMgrImpl *pp_mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
-        (GetMoManager(UNC_KT_POLICING_PROFILE)));
-    if (NULL == pp_mgr) {
-      UPLL_LOG_DEBUG("mgr NULL");
-      return UPLL_RC_ERR_GENERIC;
-    }
-
-    result_code = pp_mgr->GetChildConfigKey(okey, NULL);
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG(" GetRenamedControllerKey failed. GetChildConfigKey failed"
-          "to create policingprofile ConfigKey - %d",
-          result_code);
-      return result_code;
-    }
-    if (!okey) return UPLL_RC_ERR_GENERIC;
-
-    if (NULL != ctrlr_dom) {
-      SET_USER_DATA_CTRLR(okey, ctrlr_dom->ctrlr);
-    } else {
-      UPLL_LOG_DEBUG("ctrlr null");
-      DELETE_IF_NOT_NULL(okey);
-      return UPLL_RC_ERR_GENERIC;
-    }
-
-    UPLL_LOG_DEBUG("ctrlr : %s; domain : %s", ctrlr_dom->ctrlr,
-                    ctrlr_dom->domain);
+  result_code = pp_mgr->GetChildConfigKey(okey, NULL);
+  if (UPLL_RC_SUCCESS != result_code) {
+    UPLL_LOG_DEBUG(" GetRenamedControllerKey failed. GetChildConfigKey failed"
+                   "to create policingprofile ConfigKey - %d",
+                   result_code);
+    return result_code;
+  }
+  SET_USER_DATA_CTRLR(okey, ctrlr_dom->ctrlr);
 
-    val_policingmap_t *val_policingmap =
+  val_policingmap_t *val_policingmap =
       reinterpret_cast<val_policingmap_t *>(GetVal(ikey));
 
-    if (!val_policingmap)
-      return UPLL_RC_SUCCESS;
-
-    key_policingprofile_t *key_policingprofile =
-      reinterpret_cast<key_policingprofile_t *>(okey->get_key());
+  if (!val_policingmap) {
+    DELETE_IF_NOT_NULL(okey);
+    return UPLL_RC_SUCCESS;
+  }
 
-    uuu::upll_strncpy(key_policingprofile->policingprofile_name,
-        val_policingmap->policer_name,
-        (kMaxLenPolicingProfileName + 1));
+  key_policingprofile_t *key_policingprofile =
+      reinterpret_cast<key_policingprofile_t *>(okey->get_key());
 
-    UPLL_LOG_DEBUG("policer name (%s) (%s)", val_policingmap->policer_name,
-                      key_policingprofile->policingprofile_name);
+  uuu::upll_strncpy(key_policingprofile->policingprofile_name,
+                    val_policingmap->policer_name,
+                    (kMaxLenPolicingProfileName + 1));
 
-    DbSubOp dbop1 = { kOpReadSingle, kOpMatchCtrlr, kOpInOutFlag };
-    result_code = pp_mgr->ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop1, dmi,
-        RENAMETBL);
-    if (result_code != UPLL_RC_SUCCESS) {
-      if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-        UPLL_LOG_DEBUG("ReadConfigDB no instance");
-        DELETE_IF_NOT_NULL(okey);
-        return UPLL_RC_SUCCESS;
-      }
-      UPLL_LOG_DEBUG("ReadConfigDB fail (%d)", result_code);
-      DELETE_IF_NOT_NULL(okey);
-      return result_code;
-    }
+  UPLL_LOG_DEBUG("policer name (%s) (%s)", val_policingmap->policer_name,
+                 key_policingprofile->policingprofile_name);
 
+  DbSubOp dbop1 = { kOpReadSingle, kOpMatchCtrlr, kOpInOutFlag };
+  result_code = pp_mgr->ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop1, dmi,
+                                     RENAMETBL);
+  if ((result_code != UPLL_RC_SUCCESS) &&
+      (UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code)) {
+    UPLL_LOG_DEBUG("ReadConfigDB fail (%d)", result_code);
+    DELETE_IF_NOT_NULL(okey);
+    return result_code;
+  }
+  if (UPLL_RC_SUCCESS == result_code) {
     val_rename_policingprofile_t *rename_policingprofile =
-      reinterpret_cast<val_rename_policingprofile_t *>(GetVal(okey));
+        reinterpret_cast<val_rename_policingprofile_t *>(GetVal(okey));
     if (!rename_policingprofile) {
       DELETE_IF_NOT_NULL(okey);
       UPLL_LOG_DEBUG("rename_policingprofile NULL");
@@ -3022,15 +3273,13 @@ upll_rc_t VtnPolicingMapMoMgr::GetRenamedControllerKey(
         (kMaxLenPolicingProfileName + 1));
 
     UPLL_LOG_DEBUG("policer rename (%s) (%s)",
-        reinterpret_cast<char *>(val_policingmap->policer_name),
-        reinterpret_cast<const char *>
-        (rename_policingprofile->policingprofile_newname));
-
-    pp_mgr = NULL;
+                   reinterpret_cast<char *>(val_policingmap->policer_name),
+                   reinterpret_cast<const char *>
+                   (rename_policingprofile->policingprofile_newname));
   }
+  pp_mgr = NULL;
 
   DELETE_IF_NOT_NULL(okey);
-  UPLL_LOG_TRACE("End .. Input ConfigKeyVal %s", ikey->ToStrAll().c_str());
   return UPLL_RC_SUCCESS;
 }
 
@@ -3054,33 +3303,32 @@ upll_rc_t VtnPolicingMapMoMgr::TxCopyCandidateToRunning(
   CtrlrCommitStatusList::iterator ccsListItr;
   CtrlrCommitStatus *ccStatusPtr;
 
-  if ((ctrlr_commit_status == NULL) || (dmi == NULL)) {
-    return UPLL_RC_ERR_GENERIC;
-  }
-
-  for (ccsListItr = ctrlr_commit_status->begin();
-      ccsListItr != ctrlr_commit_status->end(); ++ccsListItr) {
-    ccStatusPtr = *ccsListItr;
-    ctrlr_id = reinterpret_cast<uint8_t *>(&ccStatusPtr->ctrlr_id);
-    ctrlr_result[ccStatusPtr->ctrlr_id] = ccStatusPtr->upll_ctrlr_result;
-    if (ccStatusPtr->upll_ctrlr_result != UPLL_RC_SUCCESS) {
-      for (ConfigKeyVal *ck_err = ccStatusPtr->err_ckv; ck_err != NULL;
-          ck_err = ck_err->get_next_cfg_key_val()) {
-        if (ck_err->get_key_type() != keytype) continue;
-        result_code = GetRenamedUncKey(ck_err, UPLL_DT_CANDIDATE, dmi,
-            ctrlr_id);
-        if (result_code != UPLL_RC_SUCCESS) {
-          UPLL_LOG_DEBUG("GetRenamedControllerKey error(%d)", result_code);
-          return result_code;
+  if (ctrlr_commit_status != NULL) {
+    for (ccsListItr = ctrlr_commit_status->begin();
+         ccsListItr != ctrlr_commit_status->end(); ++ccsListItr) {
+      ccStatusPtr = *ccsListItr;
+      ctrlr_id = reinterpret_cast<uint8_t *>(&ccStatusPtr->ctrlr_id);
+      ctrlr_result[ccStatusPtr->ctrlr_id] = ccStatusPtr->upll_ctrlr_result;
+      if (ccStatusPtr->upll_ctrlr_result != UPLL_RC_SUCCESS) {
+        for (ConfigKeyVal *ck_err = ccStatusPtr->err_ckv; ck_err != NULL;
+             ck_err = ck_err->get_next_cfg_key_val()) {
+          if (ck_err->get_key_type() != keytype) continue;
+          result_code = GetRenamedUncKey(ck_err, UPLL_DT_CANDIDATE, dmi,
+                                         ctrlr_id);
+          if (result_code != UPLL_RC_SUCCESS) {
+            UPLL_LOG_DEBUG("GetRenamedControllerKey error(%d)", result_code);
+            return result_code;
+          }
         }
       }
     }
   }
 
   for (int i = 0; i < nop; i++) {
+    cfg1_cursor = NULL;
     if (op[i] != UNC_OP_UPDATE) {
       result_code = DiffConfigDB(UPLL_DT_CANDIDATE, UPLL_DT_RUNNING, op[i], req,
-          nreq, &cfg1_cursor, dmi, NULL, MAINTBL, true);
+                                 nreq, &cfg1_cursor, dmi, NULL, MAINTBL, true);
       while (result_code == UPLL_RC_SUCCESS) {
         db_result = dmi->GetNextRecord(cfg1_cursor);
         result_code = DalToUpllResCode(db_result);
@@ -3111,6 +3359,7 @@ upll_rc_t VtnPolicingMapMoMgr::TxCopyCandidateToRunning(
   }
 
   for (int i = 0; i < nop; i++) {
+    cfg1_cursor = NULL;
     MoMgrTables tbl = (op[i] == UNC_OP_UPDATE)?MAINTBL:CTRLRTBL;
     result_code = DiffConfigDB(UPLL_DT_CANDIDATE, UPLL_DT_RUNNING, op[i], req,
                                nreq, &cfg1_cursor, dmi, NULL, tbl, true);
@@ -3129,11 +3378,11 @@ upll_rc_t VtnPolicingMapMoMgr::TxCopyCandidateToRunning(
       }
       if (op[i] == UNC_OP_UPDATE) {
         DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutCtrlr |
-                         kOpInOutDomain | kOpInOutCs };
+          kOpInOutDomain | kOpInOutCs };
         result_code = GetChildConfigKey(vtn_ctrlr_key, req);
         if (result_code != UPLL_RC_SUCCESS) {
           UPLL_LOG_DEBUG("GetChildConfigKey is failed resultcode=%d",
-              result_code);
+                         result_code);
           DELETE_IF_NOT_NULL(req);
           DELETE_IF_NOT_NULL(nreq);
           dmi->CloseCursor(cfg1_cursor, true);
@@ -3162,7 +3411,7 @@ upll_rc_t VtnPolicingMapMoMgr::TxCopyCandidateToRunning(
             }
           } else  {
             UPLL_LOG_DEBUG("DB err while reading records from ctrlrtbl, err %d",
-                result_code);
+                           result_code);
             DELETE_IF_NOT_NULL(req);
             DELETE_IF_NOT_NULL(nreq);
             dmi->CloseCursor(cfg1_cursor, true);
@@ -3172,7 +3421,6 @@ upll_rc_t VtnPolicingMapMoMgr::TxCopyCandidateToRunning(
 
         for (ConfigKeyVal *tmp = vtn_ctrlr_key; tmp != NULL; tmp =
              tmp->get_next_cfg_key_val()) {
-
           GET_USER_DATA_CTRLR(tmp, ctrlr_id);
           string controller(reinterpret_cast<char *> (ctrlr_id));
 
@@ -3181,7 +3429,7 @@ upll_rc_t VtnPolicingMapMoMgr::TxCopyCandidateToRunning(
           result_code = GetChildConfigKey(vtn_key, req);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("GetChildConfigKey is failed resultcode=%d",
-                result_code);
+                           result_code);
             DELETE_IF_NOT_NULL(req);
             DELETE_IF_NOT_NULL(nreq);
             dmi->CloseCursor(cfg1_cursor, true);
@@ -3197,9 +3445,16 @@ upll_rc_t VtnPolicingMapMoMgr::TxCopyCandidateToRunning(
             dmi->CloseCursor(cfg1_cursor, true);
             return result_code;
           }
-          result_code = UpdateConfigStatus(vtn_key, op[i],
-                                           ctrlr_result[controller], nreq,
-                                           dmi, tmp);
+          if (ctrlr_result.empty()) {
+            UPLL_LOG_TRACE("ctrlr_commit_status is NULL");
+            result_code = UpdateConfigStatus(vtn_key, op[i],
+                                             UPLL_RC_ERR_CTR_DISCONNECTED, nreq,
+                                             dmi, tmp);
+          } else {
+            result_code = UpdateConfigStatus(vtn_key, op[i],
+                                             ctrlr_result[controller], nreq,
+                                             dmi, tmp);
+          }
           if (result_code != UPLL_RC_SUCCESS) break;
 
           result_code = UpdateConfigDB(tmp,
@@ -3223,18 +3478,20 @@ upll_rc_t VtnPolicingMapMoMgr::TxCopyCandidateToRunning(
             DELETE_IF_NOT_NULL(nreq);
             dmi->CloseCursor(cfg1_cursor, true);
             return result_code;
-          }  // COV UNREACHABLE
+          }  //  COV UNREACHABLE
 #if 0
           EnqueCfgNotification(op[i], UPLL_DT_RUNNING,
                                vtn_ctrlr_key);
 #endif
           EnqueCfgNotification(op[i], UPLL_DT_RUNNING,
                                vtn_key);
-          DELETE_IF_NOT_NULL(vtn_key); 
+          DELETE_IF_NOT_NULL(vtn_key);
         }
       } else {
         if (op[i] == UNC_OP_CREATE) {
-          DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutFlag |kOpInOutCs };
+          DbSubOp dbop = { kOpReadSingle,
+            kOpMatchNone,
+            kOpInOutFlag |kOpInOutCs };
           result_code = GetChildConfigKey(vtn_key, req);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("GetChildConfigKey is failed -%d", result_code);
@@ -3243,8 +3500,9 @@ upll_rc_t VtnPolicingMapMoMgr::TxCopyCandidateToRunning(
             dmi->CloseCursor(cfg1_cursor, true);
             return result_code;
           }
-          result_code = ReadConfigDB(vtn_key,UPLL_DT_RUNNING /*UPLL_DT_CANDIDATE*/,
-              UNC_OP_READ, dbop, dmi, MAINTBL);
+          result_code = ReadConfigDB(vtn_key, UPLL_DT_RUNNING
+                                     /*UPLL_DT_CANDIDATE*/,
+                                     UNC_OP_READ, dbop, dmi, MAINTBL);
           if ((result_code != UPLL_RC_SUCCESS) &&
               (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE)) {
             UPLL_LOG_DEBUG("ReadConfigDB is failed -%d", result_code);
@@ -3259,8 +3517,9 @@ upll_rc_t VtnPolicingMapMoMgr::TxCopyCandidateToRunning(
            */
           uint32_t cur_instance_count;
           result_code = GetInstanceCount(vtn_key, NULL,
-              UPLL_DT_CANDIDATE, &cur_instance_count,
-              dmi, CTRLRTBL);
+                                         UPLL_DT_CANDIDATE,
+                                         &cur_instance_count,
+                                         dmi, CTRLRTBL);
           if (UPLL_RC_SUCCESS != result_code) {
             UPLL_LOG_DEBUG("GetInstanceCount failed %d", result_code);
             DELETE_IF_NOT_NULL(vtn_key);
@@ -3270,8 +3529,8 @@ upll_rc_t VtnPolicingMapMoMgr::TxCopyCandidateToRunning(
             return result_code;
           }
           if (cur_instance_count == 1)
-            reinterpret_cast<val_policingmap*>(GetVal(vtn_key))->cs_row_status 
-              = UNC_CS_UNKNOWN ;
+            reinterpret_cast<val_policingmap*>(GetVal(vtn_key))->cs_row_status
+                = UNC_CS_UNKNOWN;
 
           /* Capability check
            * req_header->operation = op[i];
@@ -3290,9 +3549,17 @@ upll_rc_t VtnPolicingMapMoMgr::TxCopyCandidateToRunning(
 
           GET_USER_DATA_CTRLR(vtn_ctrlr_key, ctrlr_id);
           string controller(reinterpret_cast<char *>(ctrlr_id));
-          result_code = UpdateConfigStatus(vtn_key, op[i],
-              ctrlr_result[controller], nreq,
-              dmi, vtn_ctrlr_key);
+          if (ctrlr_result.empty()) {
+            UPLL_LOG_TRACE("ctrlr_commit_status is NULL");
+            result_code = UpdateConfigStatus(vtn_key, op[i],
+                                             UPLL_RC_ERR_CTR_DISCONNECTED,
+                                             nreq,
+                                             dmi, vtn_ctrlr_key);
+          } else {
+            result_code = UpdateConfigStatus(vtn_key, op[i],
+                                             ctrlr_result[controller], nreq,
+                                             dmi, vtn_ctrlr_key);
+          }
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("Error in updating configstatus, resultcode=%d",
                            result_code);
@@ -3304,19 +3571,21 @@ upll_rc_t VtnPolicingMapMoMgr::TxCopyCandidateToRunning(
             return result_code;
           }
         } else if (op[i] == UNC_OP_DELETE) {
-          //Reading Main Running DB for delete op
-          DbSubOp dbop1 = { kOpReadSingle, kOpMatchNone, kOpInOutFlag | kOpInOutCs };
+          // Reading Main Running DB for delete op
+          DbSubOp dbop1 = { kOpReadSingle,
+            kOpMatchNone,
+            kOpInOutFlag | kOpInOutCs };
           result_code = GetChildConfigKey(vtn_ck_run, req);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("GetChildConfigKey is failed resultcode=%d",
-                result_code);
+                           result_code);
             DELETE_IF_NOT_NULL(req);
             DELETE_IF_NOT_NULL(nreq);
             dmi->CloseCursor(cfg1_cursor, true);
             return result_code;
           }
           result_code = ReadConfigDB(vtn_ck_run, UPLL_DT_RUNNING,
-              UNC_OP_READ, dbop1, dmi, MAINTBL);
+                                     UNC_OP_READ, dbop1, dmi, MAINTBL);
           if (result_code != UPLL_RC_SUCCESS &&
               result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
             UPLL_LOG_DEBUG("Unable to read configuration from Running");
@@ -3328,9 +3597,12 @@ upll_rc_t VtnPolicingMapMoMgr::TxCopyCandidateToRunning(
           }
           if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
             GET_USER_DATA_CTRLR(req, ctrlr_id);
-            result_code = SetVtnPmConsolidatedStatus(vtn_ck_run, ctrlr_id, dmi);
+            result_code = SetVtnPmConsolidatedStatus(vtn_ck_run,
+                                                     ctrlr_id,
+                                                     dmi);
             if (result_code != UPLL_RC_SUCCESS) {
-              UPLL_LOG_DEBUG("Could not set consolidated status %d", result_code);
+              UPLL_LOG_DEBUG("Could not set consolidated status %d",
+                             result_code);
               DELETE_IF_NOT_NULL(vtn_ck_run);
               DELETE_IF_NOT_NULL(req);
               DELETE_IF_NOT_NULL(nreq);
@@ -3342,7 +3614,7 @@ upll_rc_t VtnPolicingMapMoMgr::TxCopyCandidateToRunning(
           result_code = GetChildConfigKey(vtn_ctrlr_key, req);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("Error in getting the configkey, resultcode=%d",
-                result_code);
+                           result_code);
             DELETE_IF_NOT_NULL(req);
             DELETE_IF_NOT_NULL(nreq);
             dmi->CloseCursor(cfg1_cursor, true);
@@ -3365,7 +3637,7 @@ upll_rc_t VtnPolicingMapMoMgr::TxCopyCandidateToRunning(
                                        UNC_OP_UPDATE, dmi, MAINTBL);
           if (result_code != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("UpdateConfigDB in main tbl is failed -%d",
-                result_code);
+                           result_code);
             DELETE_IF_NOT_NULL(req);
             DELETE_IF_NOT_NULL(nreq);
             DELETE_IF_NOT_NULL(vtn_key);
@@ -3388,22 +3660,23 @@ upll_rc_t VtnPolicingMapMoMgr::TxCopyCandidateToRunning(
     DELETE_IF_NOT_NULL(req);
   }
   result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) ?
-    UPLL_RC_SUCCESS : result_code;
+      UPLL_RC_SUCCESS : result_code;
   UPLL_LOG_DEBUG("TxcopyCandidatetoRunning is successful -%d", result_code);
   return result_code;
 }
 
-upll_rc_t VtnPolicingMapMoMgr::UpdateConfigStatus(ConfigKeyVal *ckv,
+upll_rc_t VtnPolicingMapMoMgr::UpdateConfigStatus(
+    ConfigKeyVal *ckv,
     unc_keytype_operation_t op, uint32_t driver_result, ConfigKeyVal *nreq,
     DalDmlIntf *dmi, ConfigKeyVal *ctrlr_key) {
   UPLL_FUNC_TRACE;
   unc_keytype_configstatus_t  ctrlr_status;
-  uint8_t cs_status; 
+  uint8_t cs_status;
   ctrlr_status = (driver_result == 0)?UNC_CS_APPLIED: UNC_CS_NOT_APPLIED;
   val_policingmap_t *pm_val =
-    reinterpret_cast<val_policingmap_t *>(GetVal(ckv));
+      reinterpret_cast<val_policingmap_t *>(GetVal(ckv));
   val_vtnpolicingmap_ctrl_t *ctrlr_val_pm =
-    reinterpret_cast<val_vtnpolicingmap_ctrl_t *>(GetVal(ctrlr_key));
+      reinterpret_cast<val_vtnpolicingmap_ctrl_t *>(GetVal(ctrlr_key));
   if ((pm_val == NULL) || (ctrlr_val_pm == NULL)) {
     UPLL_LOG_DEBUG("Memory Allocation failed for Valstructure");
     return UPLL_RC_ERR_GENERIC;
@@ -3415,29 +3688,29 @@ upll_rc_t VtnPolicingMapMoMgr::UpdateConfigStatus(ConfigKeyVal *ckv,
     ctrlr_val_pm->cs_attr[0] = ctrlr_status;
     /* update the vtn status in main tbl */
     if (pm_val->cs_row_status == UNC_CS_UNKNOWN) {
-        /* first entry in ctrlr table */
+      /* first entry in ctrlr table */
       cs_status = ctrlr_status;
     } else if (pm_val->cs_row_status == UNC_CS_INVALID) {
       cs_status = UNC_CS_INVALID;
     } else if (pm_val->cs_row_status == UNC_CS_APPLIED) {
-        if (ctrlr_status == UNC_CS_NOT_APPLIED) {
-          cs_status = UNC_CS_PARTIALLY_APPLIED;
-        }
+      if (ctrlr_status == UNC_CS_NOT_APPLIED) {
+        cs_status = UNC_CS_PARTIALLY_APPLIED;
+      }
     } else if (pm_val->cs_row_status == UNC_CS_NOT_APPLIED) {
-        if (ctrlr_status == UNC_CS_APPLIED) {
-          cs_status =  UNC_CS_PARTIALLY_APPLIED;
-        }
+      if (ctrlr_status == UNC_CS_APPLIED) {
+        cs_status =  UNC_CS_PARTIALLY_APPLIED;
+      }
     } else {
-        cs_status = UNC_CS_PARTIALLY_APPLIED;
+      cs_status = UNC_CS_PARTIALLY_APPLIED;
     }
     pm_val->cs_row_status = cs_status;
     pm_val->cs_attr[0] = cs_status;
   }
-  // Updating the Controller cs_row_status
+  //  Updating the Controller cs_row_status
   if ((op == UNC_OP_UPDATE) && (nreq != NULL)) {
-      val_vtnpolicingmap_ctrl *run_ctrlr_val = 
-                   reinterpret_cast<val_vtnpolicingmap_ctrl*>
-                                       (GetVal(nreq));
+    val_vtnpolicingmap_ctrl *run_ctrlr_val =
+        reinterpret_cast<val_vtnpolicingmap_ctrl*>
+        (GetVal(nreq));
     if (run_ctrlr_val != NULL)
       ctrlr_val_pm->cs_row_status = run_ctrlr_val->cs_row_status;
   }
@@ -3445,8 +3718,8 @@ upll_rc_t VtnPolicingMapMoMgr::UpdateConfigStatus(ConfigKeyVal *ckv,
 }
 
 upll_rc_t VtnPolicingMapMoMgr::ValidateReadAttribute(ConfigKeyVal *ikey,
-    DalDmlIntf *dmi,
-    IpcReqRespHeader *req) {
+                                                     DalDmlIntf *dmi,
+                                                     IpcReqRespHeader *req) {
   UPLL_FUNC_TRACE;
   ConfigKeyVal* vtnkey = NULL;
   upll_rc_t result_code;
@@ -3456,7 +3729,7 @@ upll_rc_t VtnPolicingMapMoMgr::ValidateReadAttribute(ConfigKeyVal *ikey,
        UNC_OP_READ_SIBLING_BEGIN == req->operation)) {
     ConfigKeyVal *okey = NULL;
     if (UNC_KT_VTN_POLICINGMAP_CONTROLLER == ikey->get_key_type()) {
-      key_vtn_policingmap_controller *l_key = 
+      key_vtn_policingmap_controller *l_key =
           reinterpret_cast<key_vtn_policingmap_controller*>(ikey->get_key());
 
       key_vtn_t *vtn_key = reinterpret_cast<key_vtn_t *>
@@ -3465,32 +3738,25 @@ upll_rc_t VtnPolicingMapMoMgr::ValidateReadAttribute(ConfigKeyVal *ikey,
                         l_key->vtn_key.vtn_name,
                         (kMaxLenVtnName+1));
 
-      vtnkey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, vtn_key, NULL);
-
-      VtnMoMgr *mgrvtn = reinterpret_cast<VtnMoMgr *>(
-          const_cast<MoManager*>(GetMoManager(UNC_KT_VTN)));
-
-      if (NULL == mgrvtn) {
-        UPLL_LOG_DEBUG("unable to get VtnMoMgr object to validate key_vtn");
-        DELETE_IF_NOT_NULL(vtnkey); 
-        return UPLL_RC_ERR_GENERIC;
-      }
-
+      vtnkey = new ConfigKeyVal(UNC_KT_VTN,
+                                IpctSt::kIpcStKeyVtn,
+                                vtn_key,
+                                NULL);
       DbSubOp dbop1 = { kOpReadExist, kOpMatchNone, kOpInOutNone};
-      result_code = mgrvtn->UpdateConfigDB(vtnkey, req->datatype,
-                                           UNC_OP_READ, dmi, &dbop1, MAINTBL);
+      result_code = UpdateConfigDB(vtnkey, req->datatype,
+                                   UNC_OP_READ, dmi, &dbop1, MAINTBL);
       if (result_code != UPLL_RC_ERR_INSTANCE_EXISTS) {
-        UPLL_LOG_DEBUG("Requested Vtn is Not Configured in"
-                       "vtnmaintbl Table %d", result_code);
-        DELETE_IF_NOT_NULL(vtnkey); 
+        UPLL_LOG_DEBUG("PolicingMap does not exists in main table -%d",
+                       result_code);
+        DELETE_IF_NOT_NULL(vtnkey);
         return result_code;
       }
-      DELETE_IF_NOT_NULL(vtnkey); 
+      DELETE_IF_NOT_NULL(vtnkey);
 
       result_code = CopyVtnControllerCkv(ikey, okey);
       if (UPLL_RC_SUCCESS != result_code) {
         UPLL_LOG_DEBUG("CopyVtnControllerCkv failed %d", result_code);
-        DELETE_IF_NOT_NULL(okey); 
+        DELETE_IF_NOT_NULL(okey);
         return result_code;
       }
     } else if (UNC_KT_VTN_POLICINGMAP == ikey->get_key_type()) {
@@ -3512,77 +3778,41 @@ upll_rc_t VtnPolicingMapMoMgr::ValidateReadAttribute(ConfigKeyVal *ikey,
       DELETE_IF_NOT_NULL(okey);
       return result_code;
     }
-    DELETE_IF_NOT_NULL(okey); 
+    DELETE_IF_NOT_NULL(okey);
   }
   return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t VtnPolicingMapMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
-    DalDmlIntf *dmi,
-    IpcReqRespHeader *req) {
-  UPLL_FUNC_TRACE;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  ConfigKeyVal *okey = NULL;
-  if (!ikey || !ikey->get_key()) {
-    UPLL_LOG_DEBUG("input key is null");
-    return UPLL_RC_ERR_GENERIC;
-  }
-  key_vtn_t *key_vtn_pm =
-      reinterpret_cast<key_vtn_t *>(ikey->get_key());
-  MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>
-      (const_cast<MoManager *>(GetMoManager(UNC_KT_VTN)));
-
-  result_code = mgr->GetChildConfigKey(okey, NULL);
-  if (result_code != UPLL_RC_SUCCESS) {
-    UPLL_LOG_DEBUG("Key not supported result - %d", result_code);
-    return result_code;
-  }
-
-  key_vtn_t *vtn_key = reinterpret_cast<key_vtn_t *>(okey->get_key());
-  uuu::upll_strncpy(vtn_key->vtn_name, key_vtn_pm->vtn_name,
-                    (kMaxLenVtnName+1));
-
-  /* Checks the given vtn exists or not */
-  result_code = mgr->UpdateConfigDB(okey, req->datatype, UNC_OP_READ,
-                                    dmi, MAINTBL);
-  if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code) {
-    UPLL_LOG_DEBUG(" Parent VTN key does not exists");
-    result_code = UPLL_RC_ERR_PARENT_DOES_NOT_EXIST;
-  } else {
-    result_code = UPLL_RC_SUCCESS;
-  }
-  delete okey;
-
-  result_code = SetRenameFlag(ikey, dmi, req);
-  if (UPLL_RC_SUCCESS != result_code) {
-    UPLL_LOG_DEBUG(" SetRenameFlag failed %d", result_code);
-    return result_code;
-  }
-  return result_code;
+                                                 DalDmlIntf *dmi,
+                                                 IpcReqRespHeader *req) {
+  //  No operation
+  return UPLL_RC_SUCCESS;
 }
 
 bool VtnPolicingMapMoMgr::CompareValidValue(void *&val1, void *val2,
-    bool audit) {
+                                            bool audit) {
   UPLL_FUNC_TRACE;
   bool invalid_attr = true;
   val_policingmap_t *val_pm1 = reinterpret_cast<val_policingmap_t *>(val1);
   val_policingmap_t *val_pm2 = reinterpret_cast<val_policingmap_t *>(val2);
 
-//  if (audit) {
-    if (UNC_VF_INVALID == val_pm1->valid[UPLL_IDX_POLICERNAME_PM] &&
-        UNC_VF_VALID == val_pm2->valid[UPLL_IDX_POLICERNAME_PM]) {
-      val_pm1->valid[UPLL_IDX_POLICERNAME_PM] = UNC_VF_VALID_NO_VALUE;
-    }
// }
+  //   if (audit) {
+  if (UNC_VF_INVALID == val_pm1->valid[UPLL_IDX_POLICERNAME_PM] &&
+      UNC_VF_VALID == val_pm2->valid[UPLL_IDX_POLICERNAME_PM]) {
+    val_pm1->valid[UPLL_IDX_POLICERNAME_PM] = UNC_VF_VALID_NO_VALUE;
+  }
 //  }
 
   if (UNC_VF_VALID == val_pm1->valid[UPLL_IDX_POLICERNAME_PM]
       && UNC_VF_VALID == val_pm2->valid[UPLL_IDX_POLICERNAME_PM]) {
     if (!strcmp(reinterpret_cast<char*>(val_pm1->policer_name),
-          reinterpret_cast<char*>(val_pm2->policer_name)))
+                reinterpret_cast<char*>(val_pm2->policer_name)))
       val_pm1->valid[UPLL_IDX_POLICERNAME_PM] = UNC_VF_INVALID;
   }
   if ((UNC_VF_VALID == (uint8_t)val_pm1->valid[UPLL_IDX_POLICERNAME_PM]) ||
-    (UNC_VF_VALID_NO_VALUE == (uint8_t)val_pm1->valid[UPLL_IDX_POLICERNAME_PM]))
+      (UNC_VF_VALID_NO_VALUE ==
+       (uint8_t)val_pm1->valid[UPLL_IDX_POLICERNAME_PM]))
     invalid_attr = false;
   return invalid_attr;
 }
@@ -3590,37 +3820,40 @@ bool VtnPolicingMapMoMgr::CompareValidValue(void *&val1, void *val2,
 upll_rc_t VtnPolicingMapMoMgr::UpdateAuditConfigStatus(
     unc_keytype_configstatus_t cs_status,
     uuc::UpdateCtrlrPhase phase,
-    ConfigKeyVal *&ckv_running) {
+    ConfigKeyVal *&ckv_running,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_vtnpolicingmap_ctrl *val;
   val =
-    (ckv_running != NULL) ? reinterpret_cast<val_vtnpolicingmap_ctrl *>(GetVal(
-          ckv_running)) :
-    NULL;
+      (ckv_running != NULL) ? reinterpret_cast
+      <val_vtnpolicingmap_ctrl *>(GetVal(
+              ckv_running)) :
+      NULL;
   if (NULL == val) {
-    UPLL_LOG_DEBUG("UpdateAuditConfigStatus vtn_pm_val NULL (%d)", result_code);
+    UPLL_LOG_DEBUG("UpdateAuditConfigStatus vtn_pm_val NULL (%d)",
+                   result_code);
     return UPLL_RC_ERR_GENERIC;
   }
   if (uuc::kUpllUcpCreate == phase )
     val->cs_row_status = cs_status;
   if ((uuc::kUpllUcpUpdate == phase) &&
-           (val->cs_row_status == UNC_CS_INVALID ||
-            val->cs_row_status == UNC_CS_NOT_APPLIED))
+      (val->cs_row_status == UNC_CS_INVALID ||
+       val->cs_row_status == UNC_CS_NOT_APPLIED))
     val->cs_row_status = cs_status;
   for ( unsigned int loop = 0;
-      loop < sizeof(val->valid)/sizeof(uint8_t); ++loop ) {
+       loop < sizeof(val->valid)/sizeof(uint8_t); ++loop ) {
     if ((cs_status == UNC_CS_INVALID && UNC_VF_VALID == val->valid[loop]) ||
-         cs_status == UNC_CS_APPLIED)
-       val->cs_attr[loop] = cs_status;
+        cs_status == UNC_CS_APPLIED)
+      val->cs_attr[loop] = cs_status;
   }
   return result_code;
 }
 
 upll_rc_t VtnPolicingMapMoMgr::GetValid(void *val, uint64_t indx,
-    uint8_t *&valid,
-    upll_keytype_datatype_t dt_type,
-    MoMgrTables tbl) {
+                                        uint8_t *&valid,
+                                        upll_keytype_datatype_t dt_type,
+                                        MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
   if (val == NULL) {
     UPLL_LOG_DEBUG("GetValid val NULL");
@@ -3632,8 +3865,8 @@ upll_rc_t VtnPolicingMapMoMgr::GetValid(void *val, uint64_t indx,
     switch (indx) {
       case uudst::vtn_policingmap::kDbiPolicername:
         valid =
-          &(reinterpret_cast<val_policingmap_t *>(val))
-          ->valid[UPLL_IDX_POLICERNAME_PM];
+            &(reinterpret_cast<val_policingmap_t *>(val))
+            ->valid[UPLL_IDX_POLICERNAME_PM];
         break;
       default:
         return UPLL_RC_ERR_GENERIC;
@@ -3642,8 +3875,8 @@ upll_rc_t VtnPolicingMapMoMgr::GetValid(void *val, uint64_t indx,
     switch (indx) {
       case uudst::vtn_policingmap_ctrlr::kDbiPolicername:
         valid =
-          &(reinterpret_cast<val_policingmap_controller_t *>(val))
-          ->valid[UPLL_IDX_POLICERNAME_PM];
+            &(reinterpret_cast<val_policingmap_controller_t *>(val))
+            ->valid[UPLL_IDX_POLICERNAME_PM];
         break;
       default:
         return UPLL_RC_ERR_GENERIC;
@@ -3655,8 +3888,8 @@ upll_rc_t VtnPolicingMapMoMgr::GetValid(void *val, uint64_t indx,
 }
 
 upll_rc_t VtnPolicingMapMoMgr::AllocVal(ConfigVal *&ck_val,
-    upll_keytype_datatype_t dt_type,
-    MoMgrTables tbl) {
+                                        upll_keytype_datatype_t dt_type,
+                                        MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
   void *val;
   if (ck_val != NULL) {
@@ -3689,8 +3922,8 @@ upll_rc_t VtnPolicingMapMoMgr::AllocVal(ConfigVal *&ck_val,
 }
 
 upll_rc_t VtnPolicingMapMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
-    ConfigKeyVal *&req,
-    MoMgrTables tbl) {
+                                               ConfigKeyVal *&req,
+                                               MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
 
   if (req == NULL || okey != NULL) {
@@ -3758,11 +3991,11 @@ upll_rc_t VtnPolicingMapMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
 
     if (tmp1) {
       tmp1->set_user_data(tmp->get_user_data());
-      //    tmp = tmp->get_next_cfg_val();
+      //     tmp = tmp->get_next_cfg_val();
     }
   }
 
-  void *tkey = (req)->get_key();  // COV FORWARD NULL
+  void *tkey = (req)->get_key();  //  COV FORWARD NULL
   if (tbl == MAINTBL || tbl == CTRLRTBL) {
     key_vtn *ikey = reinterpret_cast<key_vtn *>(tkey);
     key_vtn *vtn_key = reinterpret_cast<key_vtn *>
@@ -3787,7 +4020,7 @@ upll_rc_t VtnPolicingMapMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
 }
 
 upll_rc_t VtnPolicingMapMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
-    ConfigKeyVal *parent_key) {
+                                                 ConfigKeyVal *parent_key) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   key_vtn_t *vtn_key;
@@ -3797,7 +4030,7 @@ upll_rc_t VtnPolicingMapMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
     vtn_key = reinterpret_cast<key_vtn_t *>
         (ConfigKeyVal::Malloc(sizeof(key_vtn_t)));
     okey = new ConfigKeyVal(UNC_KT_VTN_POLICINGMAP, IpctSt::kIpcStKeyVtn,
-        vtn_key, NULL);
+                            vtn_key, NULL);
     UPLL_LOG_DEBUG("GetChildConfigKey parent key with NULL");
     return UPLL_RC_SUCCESS;
   } else {
@@ -3823,8 +4056,8 @@ upll_rc_t VtnPolicingMapMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
     case UNC_KT_VTN:
     case UNC_KT_VTN_POLICINGMAP:
       uuu::upll_strncpy(vtn_key->vtn_name,
-          reinterpret_cast<key_vtn *>(pkey)->vtn_name,
-          (kMaxLenVtnName + 1));
+                        reinterpret_cast<key_vtn *>(pkey)->vtn_name,
+                        (kMaxLenVtnName + 1));
       break;
     default:
       if (vtn_key) free(vtn_key);
@@ -3838,7 +4071,7 @@ upll_rc_t VtnPolicingMapMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
 
   if (!okey) {
     okey = new ConfigKeyVal(UNC_KT_VTN_POLICINGMAP, IpctSt::kIpcStKeyVtn,
-        vtn_key, NULL);
+                            vtn_key, NULL);
   }
   SET_USER_DATA(okey, parent_key);
   UPLL_LOG_DEBUG("GetChildConfigKey Allocation Successful");
@@ -3861,33 +4094,33 @@ upll_rc_t VtnPolicingMapMoMgr::GetChildControllerConfigKey(
       ikey->get_key_type()) {
     UPLL_LOG_DEBUG("UNC_KT_VTN_POLICINGMAP_CONTROLLER");
     key_vtn_policingmap_controller_t *in_key = reinterpret_cast
-      <key_vtn_policingmap_controller_t *>(ikey->get_key());
+        <key_vtn_policingmap_controller_t *>(ikey->get_key());
     uuu::upll_strncpy(out_key->vtn_key.vtn_name,
-          in_key->vtn_key.vtn_name,
-          (kMaxLenVtnName + 1));
+                      in_key->vtn_key.vtn_name,
+                      (kMaxLenVtnName + 1));
     uuu::upll_strncpy(out_key->controller_name,
-                    in_key->controller_name,
-                    (kMaxLenCtrlrId + 1));
+                      in_key->controller_name,
+                      (kMaxLenCtrlrId + 1));
     uuu::upll_strncpy(out_key->domain_id,
-                    in_key->domain_id,
-                    (kMaxLenDomainId + 1));
+                      in_key->domain_id,
+                      (kMaxLenDomainId + 1));
   }  else if (UNC_KT_VTN_POLICINGMAP == ikey->get_key_type()) {
     UPLL_LOG_DEBUG("parent kt - UNC_KT_VTN_POLICINGMAP");
     key_vtn_t *in_key = reinterpret_cast
-      <key_vtn_t *>(ikey->get_key());
+        <key_vtn_t *>(ikey->get_key());
     uuu::upll_strncpy(out_key->vtn_key.vtn_name,
-          in_key->vtn_name,
-          (kMaxLenVtnName + 1));
+                      in_key->vtn_name,
+                      (kMaxLenVtnName + 1));
     uuu::upll_strncpy(out_key->controller_name,
-                    ctrlr_dom->ctrlr,
-                    (kMaxLenCtrlrId + 1));
+                      ctrlr_dom->ctrlr,
+                      (kMaxLenCtrlrId + 1));
     uuu::upll_strncpy(out_key->domain_id,
-                    ctrlr_dom->domain,
-                    (kMaxLenDomainId + 1));
+                      ctrlr_dom->domain,
+                      (kMaxLenDomainId + 1));
   }
   okey = new ConfigKeyVal(UNC_KT_VTN_POLICINGMAP_CONTROLLER,
-        IpctSt::kIpcStKeyVtnPolicingmapController,
-        out_key, NULL);
+                          IpctSt::kIpcStKeyVtnPolicingmapController,
+                          out_key, NULL);
   if (NULL == okey) {
     UPLL_LOG_DEBUG("Okey is NULL");
     return UPLL_RC_ERR_GENERIC;
@@ -3896,7 +4129,7 @@ upll_rc_t VtnPolicingMapMoMgr::GetChildControllerConfigKey(
 }
 
 upll_rc_t VtnPolicingMapMoMgr::ValidateMessage(IpcReqRespHeader *req,
-    ConfigKeyVal *key) {
+                                               ConfigKeyVal *key) {
   UPLL_FUNC_TRACE;
 
   upll_rc_t rt_code = UPLL_RC_ERR_GENERIC;
@@ -3911,38 +4144,40 @@ upll_rc_t VtnPolicingMapMoMgr::ValidateMessage(IpcReqRespHeader *req,
   key_vtn_policingmap_controller_t *key_vtn_policingmap_controller = NULL;
 
   if (UNC_KT_VTN_POLICINGMAP == key->get_key_type()) {
-    if ((req->datatype == UPLL_DT_IMPORT) && (req->operation == UNC_OP_READ || 
-         req->operation == UNC_OP_READ_SIBLING ||
-         req->operation == UNC_OP_READ_SIBLING_BEGIN ||
-         req->operation == UNC_OP_READ_NEXT ||
-         req->operation == UNC_OP_READ_BULK ||
-         req->operation == UNC_OP_READ_SIBLING_COUNT)) {
+    if ((req->datatype == UPLL_DT_IMPORT) && (
+            req->operation == UNC_OP_READ ||
+            req->operation == UNC_OP_READ_SIBLING ||
+            req->operation == UNC_OP_READ_SIBLING_BEGIN ||
+            req->operation == UNC_OP_READ_NEXT ||
+            req->operation == UNC_OP_READ_BULK ||
+            req->operation == UNC_OP_READ_SIBLING_COUNT)) {
       return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
     }
 
-   if (req->option1 != UNC_OPT1_NORMAL) {
-    UPLL_LOG_DEBUG(" Invalid option1(%d)", req->option1);
-    return UPLL_RC_ERR_INVALID_OPTION1;
-  }
+    if (req->option1 != UNC_OPT1_NORMAL) {
+      UPLL_LOG_DEBUG(" Invalid option1(%d)", req->option1);
+      return UPLL_RC_ERR_INVALID_OPTION1;
+    }
 
-  if (req->option2 != UNC_OPT2_NONE) {
-    UPLL_LOG_DEBUG(" Invalid option2(%d)", req->option2);
-    return UPLL_RC_ERR_INVALID_OPTION2;
-  }
-   
-  if (key->get_st_num() != IpctSt::kIpcStKeyVtn) {
-    UPLL_LOG_DEBUG("Invalid key structure received. struct num - %d",
-                   key->get_st_num());
+    if (req->option2 != UNC_OPT2_NONE) {
+      UPLL_LOG_DEBUG(" Invalid option2(%d)", req->option2);
+      return UPLL_RC_ERR_INVALID_OPTION2;
+    }
+
+    if (key->get_st_num() != IpctSt::kIpcStKeyVtn) {
+      UPLL_LOG_DEBUG("Invalid key structure received. struct num - %d",
+                     key->get_st_num());
       return UPLL_RC_ERR_BAD_REQUEST;
     }
     key_vtn = reinterpret_cast<key_vtn_t *>(key->get_key());
   } else if (UNC_KT_VTN_POLICINGMAP_CONTROLLER == key->get_key_type()) {
-    if ((req->datatype == UPLL_DT_IMPORT) && (req->operation == UNC_OP_READ || 
-         req->operation == UNC_OP_READ_SIBLING ||
-         req->operation == UNC_OP_READ_SIBLING_BEGIN ||
-         req->operation == UNC_OP_READ_NEXT ||
-         req->operation == UNC_OP_READ_BULK ||
-         req->operation == UNC_OP_READ_SIBLING_COUNT)) {
+    if ((req->datatype == UPLL_DT_IMPORT) && (
+            req->operation == UNC_OP_READ ||
+            req->operation == UNC_OP_READ_SIBLING ||
+            req->operation == UNC_OP_READ_SIBLING_BEGIN ||
+            req->operation == UNC_OP_READ_NEXT ||
+            req->operation == UNC_OP_READ_BULK ||
+            req->operation == UNC_OP_READ_SIBLING_COUNT)) {
       return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
     }
 
@@ -3952,9 +4187,9 @@ upll_rc_t VtnPolicingMapMoMgr::ValidateMessage(IpcReqRespHeader *req,
     }
 
     if ((req->option1 != UNC_OPT1_NORMAL) &&
-      (req->option1 != UNC_OPT1_DETAIL)) {
+        (req->option1 != UNC_OPT1_DETAIL)) {
       UPLL_LOG_DEBUG(" invalid option1(%d)", req->option1);
-       return UPLL_RC_ERR_INVALID_OPTION1;
+      return UPLL_RC_ERR_INVALID_OPTION1;
     }
 
     if (req->option2 != UNC_OPT2_NONE) {
@@ -3962,7 +4197,7 @@ upll_rc_t VtnPolicingMapMoMgr::ValidateMessage(IpcReqRespHeader *req,
       return UPLL_RC_ERR_INVALID_OPTION2;
     }
     if ((req->operation == UNC_OP_READ_SIBLING_COUNT) &&
-      (req->option1 != UNC_OPT1_NORMAL)) {
+        (req->option1 != UNC_OPT1_NORMAL)) {
       UPLL_LOG_DEBUG(" Invalid request(%d)", req->option1);
       return UPLL_RC_ERR_INVALID_OPTION1;
     }
@@ -3972,34 +4207,37 @@ upll_rc_t VtnPolicingMapMoMgr::ValidateMessage(IpcReqRespHeader *req,
           " Invalid structure received expected struct -"
           "kIpcStKeyVtnPolicingmapController, received struct - %s ",
           reinterpret_cast<const char *> (IpctSt::GetIpcStdef(
-              key->get_st_num())));
+                  key->get_st_num())));
       return UPLL_RC_ERR_BAD_REQUEST;
     }
 
     key_vtn_policingmap_controller =
-      reinterpret_cast<key_vtn_policingmap_controller_t *>(key->get_key());
-    key_vtn =  reinterpret_cast< key_vtn_t*>(&(key_vtn_policingmap_controller->vtn_key));
-
-  if ((req->operation != UNC_OP_READ_SIBLING_COUNT) &&
-      (req->operation != UNC_OP_READ_SIBLING_BEGIN)) {
-    rt_code = ValidateKey(reinterpret_cast<char*>(
-      key_vtn_policingmap_controller->controller_name),
-        kMinLenCtrlrId, kMaxLenCtrlrId);
-
-    if (rt_code != UPLL_RC_SUCCESS) {
-      UPLL_LOG_DEBUG("Controllername syntax validation failed: Err code-%d",
-                    rt_code);
-      return rt_code;
-    }
-    if (!ValidateDefaultStr(key_vtn_policingmap_controller->domain_id,
-        kMinLenDomainId, kMaxLenDomainId)) {
-      UPLL_LOG_DEBUG("DomainId syntax validation failed:");
-      return UPLL_RC_ERR_CFG_SYNTAX;
+        reinterpret_cast<key_vtn_policingmap_controller_t *>(key->get_key());
+    key_vtn =  reinterpret_cast< key_vtn_t*>
+        (&(key_vtn_policingmap_controller->vtn_key));
+
+    if ((req->operation != UNC_OP_READ_SIBLING_COUNT) &&
+        (req->operation != UNC_OP_READ_SIBLING_BEGIN)) {
+      rt_code = ValidateKey(reinterpret_cast<char*>(
+              key_vtn_policingmap_controller->controller_name),
+          kMinLenCtrlrId, kMaxLenCtrlrId);
+
+      if (rt_code != UPLL_RC_SUCCESS) {
+        UPLL_LOG_DEBUG("Controllername syntax validation failed: Err code-%d",
+                       rt_code);
+        return rt_code;
+      }
+      if (!ValidateDefaultStr(key_vtn_policingmap_controller->domain_id,
+                              kMinLenDomainId, kMaxLenDomainId)) {
+        UPLL_LOG_DEBUG("DomainId syntax validation failed:");
+        return UPLL_RC_ERR_CFG_SYNTAX;
+      }
+    } else {
+      memset(key_vtn_policingmap_controller->controller_name,
+             0,
+             kMaxLenCtrlrId);
+      memset(key_vtn_policingmap_controller->domain_id, 0, kMaxLenDomainId);
     }
-  } else {
-    memset(key_vtn_policingmap_controller->controller_name, 0, kMaxLenCtrlrId);
-    memset(key_vtn_policingmap_controller->domain_id, 0, kMaxLenDomainId);
-  }
 
   } else {
     UPLL_LOG_DEBUG(" Invalid keytype(%d)", key->get_key_type());
@@ -4013,8 +4251,8 @@ upll_rc_t VtnPolicingMapMoMgr::ValidateMessage(IpcReqRespHeader *req,
 
   /** validate key struct */
   VtnMoMgr *mgrvtn =
-    reinterpret_cast<VtnMoMgr *>(const_cast<MoManager*>(GetMoManager(
-            UNC_KT_VTN)));
+      reinterpret_cast<VtnMoMgr *>(const_cast<MoManager*>(GetMoManager(
+                  UNC_KT_VTN)));
 
   if (NULL == mgrvtn) {
     UPLL_LOG_DEBUG("unable to get VtnMoMgr object to validate key_vtn");
@@ -4024,8 +4262,8 @@ upll_rc_t VtnPolicingMapMoMgr::ValidateMessage(IpcReqRespHeader *req,
   rt_code = mgrvtn->ValidateVtnKey(key_vtn);
 
   if (UPLL_RC_SUCCESS != rt_code) {
-      UPLL_LOG_DEBUG(" Vtn name syntax validation failed Err Code - %d",
-                     rt_code);
+    UPLL_LOG_DEBUG(" Vtn name syntax validation failed Err Code - %d",
+                   rt_code);
     return rt_code;
   }
 
@@ -4038,7 +4276,7 @@ upll_rc_t VtnPolicingMapMoMgr::ValidateMessage(IpcReqRespHeader *req,
   /** Validate UNC_KT_VTN_POLICINGMAP_CONTROLLER key, val structure */
 
   return ValidateVtnPolicingMapControllerValue(
-         key, req);
+      key, req);
 }
 
 upll_rc_t VtnPolicingMapMoMgr::ValidatePolicingMapValue(
@@ -4056,10 +4294,10 @@ upll_rc_t VtnPolicingMapMoMgr::ValidatePolicingMapValue(
       return UPLL_RC_SUCCESS;
     }
   }
+
   if (key->get_cfg_val()->get_st_num() != IpctSt::kIpcStValPolicingmap) {
     UPLL_LOG_DEBUG("Invalid val structure received. struct num - %d",
-                 (key->get_cfg_val())->get_st_num());
+                   (key->get_cfg_val())->get_st_num());
     return UPLL_RC_ERR_BAD_REQUEST;
   }
 
@@ -4080,17 +4318,17 @@ upll_rc_t VtnPolicingMapMoMgr::ValidatePolicingMapValue(
   if (val_policingmap->valid[UPLL_IDX_POLICERNAME_PM] == UNC_VF_VALID) {
     /* validate name range is between 1 and 32 */
     if (ValidateKey(reinterpret_cast<char *>(val_policingmap->policer_name),
-          kMinLenPolicingProfileName, kMaxLenPolicingProfileName + 1)
-          != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG(" Syntax range check failed for name ");
-        return UPLL_RC_ERR_CFG_SYNTAX;
+                    kMinLenPolicingProfileName, kMaxLenPolicingProfileName + 1)
+        != UPLL_RC_SUCCESS) {
+      UPLL_LOG_DEBUG(" Syntax range check failed for name ");
+      return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if (val_policingmap->valid[UPLL_IDX_POLICERNAME_PM] ==
-        UNC_VF_VALID_NO_VALUE &&
-        (operation == UNC_OP_UPDATE || operation == UNC_OP_CREATE)) {
+             UNC_VF_VALID_NO_VALUE &&
+             (operation == UNC_OP_UPDATE || operation == UNC_OP_CREATE)) {
     UPLL_LOG_TRACE("Reset Policingname");
     memset(val_policingmap->policer_name, 0,
-        sizeof(val_policingmap->policer_name));
+           sizeof(val_policingmap->policer_name));
   }
   return UPLL_RC_SUCCESS;
 }
@@ -4103,13 +4341,13 @@ upll_rc_t VtnPolicingMapMoMgr::ValidateVtnPolicingMapControllerValue(
     UPLL_LOG_TRACE("val stucture is optional");
     return UPLL_RC_SUCCESS;
   }
-  
+
   if (key->get_cfg_val()->get_st_num() !=
       IpctSt::kIpcStValPolicingmapController) {
     UPLL_LOG_DEBUG("Invalid val structure received. struct num - %d",
                    (key->get_cfg_val())->get_st_num());
     return UPLL_RC_ERR_BAD_REQUEST;
-  } 
+  }
 
   val_policingmap_controller_t *val_policingmap_controller =
       reinterpret_cast<val_policingmap_controller_t *>
@@ -4131,7 +4369,7 @@ upll_rc_t VtnPolicingMapMoMgr::ValidateVtnPolicingMapControllerValue(
   }
 
   if ((req->option1 != UNC_OPT1_NORMAL) &&
-       ((req->option1 == UNC_OPT1_DETAIL)
+      ((req->option1 == UNC_OPT1_DETAIL)
        && (req->operation == UNC_OP_READ_SIBLING_COUNT))) {
     UPLL_LOG_DEBUG(" Error: option1 is not NORMAL/DETAIL");
     return UPLL_RC_ERR_INVALID_OPTION1;
@@ -4141,14 +4379,15 @@ upll_rc_t VtnPolicingMapMoMgr::ValidateVtnPolicingMapControllerValue(
       (req->operation == UNC_OP_READ_SIBLING) ||
       (req->operation == UNC_OP_READ_SIBLING_COUNT) ||
       (req->operation == UNC_OP_READ_SIBLING_BEGIN)) {
     /** Validate sequence number*/
     if (val_policingmap_controller->valid[UPLL_IDX_SEQ_NUM_PMC]
         == UNC_VF_VALID) {
       /* validate name range is between 1 and 32 */
       if (!ValidateNumericRange(val_policingmap_controller->sequence_num,
-            (uint8_t)kMinPolicingProfileSeqNum,
-            (uint8_t)kMaxPolicingProfileSeqNum, true, true)) {
+                                (uint8_t)kMinPolicingProfileSeqNum,
+                                (uint8_t)kMaxPolicingProfileSeqNum,
+                                true,
+                                true)) {
         UPLL_LOG_DEBUG(" Syntax range check failed for seq_num ");
         return UPLL_RC_ERR_CFG_SYNTAX;
       }
@@ -4158,7 +4397,8 @@ upll_rc_t VtnPolicingMapMoMgr::ValidateVtnPolicingMapControllerValue(
 }
 
 upll_rc_t VtnPolicingMapMoMgr::ValidateCapability(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey, const char * ctrlr_name) {
+                                                  ConfigKeyVal *ikey,
+                                                  const char * ctrlr_name) {
   UPLL_FUNC_TRACE;
   if ((NULL == req) || (NULL == ikey)) {
     UPLL_LOG_DEBUG("IpcReqRespHeader/ConfigKeyval is NULL");
@@ -4179,21 +4419,15 @@ upll_rc_t VtnPolicingMapMoMgr::ValidateCapability(IpcReqRespHeader *req,
   uint32_t max_attrs = 0;
 
   UPLL_LOG_TRACE("ctrlr_name(%s), datatype : (%d)",
-               ctrlr_name, req->datatype);
+                 ctrlr_name, req->datatype);
 
   switch (req->operation) {
     case UNC_OP_CREATE:
-      result_code = GetCreateCapability(ctrlr_name, ikey->get_key_type(),
-                                        &max_instance_count, &max_attrs, &attrs);
-
-      UPLL_LOG_INFO("cur_instance_count = %d, max_count= %d", cur_instance_count,
-                     max_instance_count);
-      if (result_code && (max_instance_count != 0) &&
-          (cur_instance_count >= max_instance_count)) {
-        UPLL_LOG_DEBUG("Instance count %d exceeds %d", cur_instance_count,
-                      max_instance_count);
-        return UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
-      }
+      result_code = GetCreateCapability(ctrlr_name,
+                                        ikey->get_key_type(),
+                                        &max_instance_count,
+                                        &max_attrs,
+                                        &attrs);
       break;
     case UNC_OP_UPDATE:
       result_code = GetUpdateCapability(ctrlr_name, ikey->get_key_type(),
@@ -4201,28 +4435,28 @@ upll_rc_t VtnPolicingMapMoMgr::ValidateCapability(IpcReqRespHeader *req,
       break;
     default:
       if (req->datatype == UPLL_DT_STATE)
-         result_code = GetStateCapability(ctrlr_name, ikey->get_key_type(),
-                                      &max_attrs, &attrs);
+        result_code = GetStateCapability(ctrlr_name, ikey->get_key_type(),
+                                         &max_attrs, &attrs);
       else
         result_code = GetReadCapability(ctrlr_name, ikey->get_key_type(),
-                                      &max_attrs, &attrs);
+                                        &max_attrs, &attrs);
       break;
   }
 
   if (!result_code) {
     UPLL_LOG_DEBUG("keytype(%d) is not supported by controller(%s)"
-        " for operation(%d)",
-        ikey->get_key_type(), ctrlr_name, req->operation);
+                   " for operation(%d)",
+                   ikey->get_key_type(), ctrlr_name, req->operation);
     return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
   }
 
-   if (max_attrs > 0) {
-      return ValVtnPolicingMapAttributeSupportCheck(ikey,
-              attrs);
-   } else {
-     UPLL_LOG_DEBUG("Attribute list is empty for operation %d", req->operation);
-     return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
-   }
+  if (max_attrs > 0) {
+    return ValVtnPolicingMapAttributeSupportCheck(ikey,
+                                                  attrs);
+  } else {
+    UPLL_LOG_DEBUG("Attribute list is empty for operation %d", req->operation);
+    return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
+  }
 }
 
 upll_rc_t VtnPolicingMapMoMgr::ValVtnPolicingMapAttributeSupportCheck(
@@ -4230,18 +4464,16 @@ upll_rc_t VtnPolicingMapMoMgr::ValVtnPolicingMapAttributeSupportCheck(
   UPLL_FUNC_TRACE;
 
   if (UNC_KT_VTN_POLICINGMAP_CONTROLLER == ikey->get_key_type()) {
-
     val_policingmap_controller_t *val_policingmap_controller =
-      reinterpret_cast<val_policingmap_controller_t *>(GetVal(ikey));
-
+        reinterpret_cast<val_policingmap_controller_t *>(GetVal(ikey));
     if (val_policingmap_controller) {
       if ((val_policingmap_controller->valid[UPLL_IDX_SEQ_NUM_PMC]
-            == UNC_VF_VALID)
+           == UNC_VF_VALID)
           || (val_policingmap_controller->valid[UPLL_IDX_SEQ_NUM_PMC]
-            == UNC_VF_VALID_NO_VALUE)) {
+              == UNC_VF_VALID_NO_VALUE)) {
         if (attrs[unc::capa::vtn_policingmap_controller::kCapSeqNum] == 0) {
           val_policingmap_controller->valid[UPLL_IDX_SEQ_NUM_PMC] =
-            UNC_VF_NOT_SUPPORTED;
+              UNC_VF_NOT_SUPPORTED;
           UPLL_LOG_DEBUG("SeqNum attr is not supported by ctrlr");
         }
       }
@@ -4249,16 +4481,16 @@ upll_rc_t VtnPolicingMapMoMgr::ValVtnPolicingMapAttributeSupportCheck(
     return UPLL_RC_SUCCESS;
   }
 
-  val_policingmap_t *val_policingmap = 
-    reinterpret_cast<val_policingmap_t *>(GetVal(ikey));
+  val_policingmap_t *val_policingmap =
+      reinterpret_cast<val_policingmap_t *>(GetVal(ikey));
 
   if (val_policingmap) {
     if ((val_policingmap->valid[UPLL_IDX_POLICERNAME_PM] == UNC_VF_VALID)
         || (val_policingmap->valid[UPLL_IDX_POLICERNAME_PM]
-          == UNC_VF_VALID_NO_VALUE)) {
+            == UNC_VF_VALID_NO_VALUE)) {
       if (attrs[unc::capa::vtn_policingmap::kCapPolicername] == 0) {
         val_policingmap->valid[UPLL_IDX_POLICERNAME_PM] =
-          UNC_VF_NOT_SUPPORTED;
+            UNC_VF_NOT_SUPPORTED;
 
         UPLL_LOG_DEBUG("Policername attr is not supported by ctrlr");
       }
@@ -4275,7 +4507,7 @@ upll_rc_t VtnPolicingMapMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
     UPLL_LOG_DEBUG(" Input Key is NULL");
     return UPLL_RC_ERR_GENERIC;
   }
-  DELETE_IF_NOT_NULL(okey); 
+  DELETE_IF_NOT_NULL(okey);
   unc_key_type_t ikey_type = ikey->get_key_type();
   if (ikey_type != UNC_KT_VTN_POLICINGMAP) {
     UPLL_LOG_DEBUG(" Invalid key type received. Key type - %d", ikey_type);
@@ -4312,14 +4544,15 @@ bool VtnPolicingMapMoMgr::IsValidKey(void *key, uint64_t index) {
   return true;
 }
 upll_rc_t VtnPolicingMapMoMgr::IsKeyInUse(upll_keytype_datatype_t dt_type,
-    const ConfigKeyVal *ckv,
-    bool *in_use,
-    DalDmlIntf *dmi) {
+                                          const ConfigKeyVal *ckv,
+                                          bool *in_use,
+                                          DalDmlIntf *dmi) {
   return UPLL_RC_SUCCESS;
 }
 
 
-upll_rc_t VtnPolicingMapMoMgr::ReadControllerStateDetail(ConfigKeyVal *&ikey,
+upll_rc_t VtnPolicingMapMoMgr::ReadControllerStateDetail(
+    ConfigKeyVal *&ikey,
     ConfigKeyVal *vtn_dup_key,
     IpcResponse *ipc_response,
     upll_keytype_datatype_t dt_type,
@@ -4344,7 +4577,7 @@ upll_rc_t VtnPolicingMapMoMgr::ReadControllerStateDetail(ConfigKeyVal *&ikey,
       (ConfigKeyVal::Malloc(sizeof(val_policingmap_t)));
   memcpy(out_val_policingmap, val_policingmap, sizeof(val_policingmap_t));
   ikey->AppendCfgVal(IpctSt::kIpcStValPolicingmap, out_val_policingmap);
// delete vtn_dup_key;
 //  delete vtn_dup_key;
 #if 0
   val_policingmap_controller_t* val_policingmap_controller =
       reinterpret_cast<val_policingmap_controller_t *>(GetVal(ikey));
@@ -4387,14 +4620,14 @@ upll_rc_t VtnPolicingMapMoMgr::ReadControllerStateDetail(ConfigKeyVal *&ikey,
         return result_code;
       }
       val_policingmap_controller_st *val_ppe_st =
-            reinterpret_cast<val_policingmap_controller_st *>
-            (ConfigKeyVal::Malloc(sizeof(val_policingmap_controller_st)));
+          reinterpret_cast<val_policingmap_controller_st *>
+          (ConfigKeyVal::Malloc(sizeof(val_policingmap_controller_st)));
       memcpy(val_ppe_st, val_entry_st,
-               sizeof(val_policingmap_controller_st));
+             sizeof(val_policingmap_controller_st));
       ikey->AppendCfgVal(IpctSt::kIpcStValPolicingmapControllerSt,
                          val_ppe_st);
 
-      // val_policingmap_controller->sequence_num = val_entry_st->sequence_num;
+      //  val_policingmap_controller->sequence_num = val_entry_st->sequence_num;
 
       if (ppe_ckv) {
         val_policingprofile_entry_t *temp_val_policingprofile =
@@ -4431,11 +4664,11 @@ upll_rc_t VtnPolicingMapMoMgr::ReadControllerStateDetail(ConfigKeyVal *&ikey,
         val_policingmap_switch_st_t *drv_val_switch_st =
             reinterpret_cast<val_policingmap_switch_st_t*>
             (temp_cfg_val->get_val());
-        memcpy(val_switch_st, drv_val_switch_st, 
+        memcpy(val_switch_st, drv_val_switch_st,
                sizeof(val_policingmap_switch_st_t));
-        if(drv_val_switch_st->valid[UPLL_IDX_IF_NAME_PMSS] == UNC_VF_VALID) {
+        if (drv_val_switch_st->valid[UPLL_IDX_IF_NAME_PMSS] == UNC_VF_VALID) {
           ConfigKeyVal *vbrif_key_val = NULL;
-          unc::upll::kt_momgr::VbrIfMoMgr *vbrifmgr = 
+          unc::upll::kt_momgr::VbrIfMoMgr *vbrifmgr =
               reinterpret_cast<unc::upll::kt_momgr::VbrIfMoMgr *>
               (const_cast<MoManager *>(GetMoManager(UNC_KT_VBR_IF)));
           if (NULL == vbrifmgr) {
@@ -4449,7 +4682,7 @@ upll_rc_t VtnPolicingMapMoMgr::ReadControllerStateDetail(ConfigKeyVal *&ikey,
               dmi);
           if ((result_code != UPLL_RC_SUCCESS) &&
               (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE)) {
-            UPLL_LOG_DEBUG("Get vBridge info failed err code (%d)", 
+            UPLL_LOG_DEBUG("Get vBridge info failed err code (%d)",
                            result_code);
             if (val_switch_st) free(val_switch_st);
             DELETE_IF_NOT_NULL(vbrif_key_val);
@@ -4457,16 +4690,16 @@ upll_rc_t VtnPolicingMapMoMgr::ReadControllerStateDetail(ConfigKeyVal *&ikey,
           }
           if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
             key_vbr_if_t *key_vbrif = reinterpret_cast<key_vbr_if_t*>
-              (vbrif_key_val->get_key());
+                (vbrif_key_val->get_key());
             val_switch_st->valid[UPLL_IDX_VBR_NAME_PMSS] = UNC_VF_VALID;
             uuu::upll_strncpy(val_switch_st->vbr_name,
-                            key_vbrif->vbr_key.vbridge_name,
-                            (kMaxLenVnodeName + 1));
+                              key_vbrif->vbr_key.vbridge_name,
+                              (kMaxLenVnodeName + 1));
 
             val_switch_st->valid[UPLL_IDX_IF_NAME_PMSS] = UNC_VF_VALID;
             uuu::upll_strncpy(val_switch_st->if_name,
-                            key_vbrif->if_name,
-                            (kMaxLenInterfaceName + 1));
+                              key_vbrif->if_name,
+                              (kMaxLenInterfaceName + 1));
           }
           DELETE_IF_NOT_NULL(vbrif_key_val);
         }
@@ -4481,7 +4714,8 @@ upll_rc_t VtnPolicingMapMoMgr::ReadControllerStateDetail(ConfigKeyVal *&ikey,
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t VtnPolicingMapMoMgr::ReadSibDTStateNormal(ConfigKeyVal *ikey,
+upll_rc_t VtnPolicingMapMoMgr::ReadSibDTStateNormal(
+    ConfigKeyVal *ikey,
     ConfigKeyVal *vtn_dup_key,
     ConfigKeyVal *tctrl_key,
     upll_keytype_datatype_t dt_type,
@@ -4494,21 +4728,21 @@ upll_rc_t VtnPolicingMapMoMgr::ReadSibDTStateNormal(ConfigKeyVal *ikey,
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
   val_policingmap_t *val_policingmap =
-    reinterpret_cast<val_policingmap_t *>(GetVal(vtn_dup_key));
+      reinterpret_cast<val_policingmap_t *>(GetVal(vtn_dup_key));
 
   ikey->AppendCfgVal(IpctSt::kIpcStValPolicingmap, val_policingmap);
 
   val_policingmap_controller_t *val_policingmap_controller =
-    reinterpret_cast<val_policingmap_controller_t *>(GetVal(ikey));
+      reinterpret_cast<val_policingmap_controller_t *>(GetVal(ikey));
 
   key_policingprofile_entry_t* key_policingprofile_entry =
-    reinterpret_cast<key_policingprofile_entry_t *>(tctrl_key->get_key());
+      reinterpret_cast<key_policingprofile_entry_t *>(tctrl_key->get_key());
 
   val_policingmap_controller->sequence_num =
-    key_policingprofile_entry->sequence_num;
+      key_policingprofile_entry->sequence_num;
 
   ikey->AppendCfgVal(IpctSt::kIpcStValPolicingmapController,
-      val_policingmap_controller);
+                     val_policingmap_controller);
 
   ConfigKeyVal *tkey = NULL;
 
@@ -4520,7 +4754,7 @@ upll_rc_t VtnPolicingMapMoMgr::ReadSibDTStateNormal(ConfigKeyVal *ikey,
   }
 
   PolicingProfileEntryMoMgr *mgr = reinterpret_cast<PolicingProfileEntryMoMgr*>
-    (const_cast<MoManager *>(GetMoManager(UNC_KT_POLICING_PROFILE_ENTRY)));
+      (const_cast<MoManager *>(GetMoManager(UNC_KT_POLICING_PROFILE_ENTRY)));
 
   result_code = mgr->ReadPolicingProfileEntry(
       (const char*)(policingprofile_name),
@@ -4534,20 +4768,20 @@ upll_rc_t VtnPolicingMapMoMgr::ReadSibDTStateNormal(ConfigKeyVal *ikey,
   }
   if (tkey) {
     val_policingprofile_entry_t *temp_val_policingprofile =
-      reinterpret_cast<val_policingprofile_entry_t *>
-      (tkey->get_cfg_val()->get_val());
+        reinterpret_cast<val_policingprofile_entry_t *>
+        (tkey->get_cfg_val()->get_val());
 
     ikey->AppendCfgVal(IpctSt::kIpcStValPolicingprofileEntry,
-        temp_val_policingprofile);
+                       temp_val_policingprofile);
   }
   return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t VtnPolicingMapMoMgr::CopyVtnControllerCkv(ConfigKeyVal *ikey,
-                               ConfigKeyVal *&okey) {
+                                                    ConfigKeyVal *&okey) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
-  // controller_domain ctrlr_dom;
+  //  controller_domain ctrlr_dom;
   key_vtn_policingmap_controller_t *key_pm_ctrlr = reinterpret_cast
       <key_vtn_policingmap_controller_t *>(ikey->get_key());
   result_code = GetChildConfigKey(okey, NULL);
@@ -4558,16 +4792,18 @@ upll_rc_t VtnPolicingMapMoMgr::CopyVtnControllerCkv(ConfigKeyVal *ikey,
   key_vtn_t *key_pm_vtn = reinterpret_cast
       <key_vtn_t *>(okey->get_key());
   uuu::upll_strncpy(key_pm_vtn->vtn_name,
-          key_pm_ctrlr->vtn_key.vtn_name,
-          (kMaxLenVtnName + 1));
+                    key_pm_ctrlr->vtn_key.vtn_name,
+                    (kMaxLenVtnName + 1));
   SET_USER_DATA_CTRLR(okey, key_pm_ctrlr->controller_name);
   SET_USER_DATA_DOMAIN(okey, key_pm_ctrlr->domain_id);
-  // SET_USER_DATA_CTRLR_DOMAIN(okey, ctrlr_dom);
+  //  SET_USER_DATA_CTRLR_DOMAIN(okey, ctrlr_dom);
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t VtnPolicingMapMoMgr::ReadControllerStateNormal(ConfigKeyVal *&ikey,
-    upll_keytype_datatype_t dt_type, unc_keytype_operation_t op,
+upll_rc_t VtnPolicingMapMoMgr::ReadControllerStateNormal(
+    ConfigKeyVal *&ikey,
+    upll_keytype_datatype_t dt_type,
+    unc_keytype_operation_t op,
     DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
@@ -4607,7 +4843,8 @@ upll_rc_t VtnPolicingMapMoMgr::ReadControllerStateNormal(ConfigKeyVal *&ikey,
   val_policingmap_t *val_main = reinterpret_cast<val_policingmap_t *>
       (ConfigKeyVal::Malloc(sizeof(val_policingmap_t)));
   memcpy(val_main, tmp_val_main, sizeof(val_policingmap_t));
-  val_vtnpolicingmap_ctrl *val_ctrlr = reinterpret_cast<val_vtnpolicingmap_ctrl *>
+  val_vtnpolicingmap_ctrl *val_ctrlr = reinterpret_cast
+      <val_vtnpolicingmap_ctrl *>
       (GetVal(ctrlr_ckv));
   val_main->valid[UPLL_IDX_POLICERNAME_PM] =
       val_ctrlr->valid[UPLL_IDX_POLICERNAME_PM];
@@ -4672,8 +4909,10 @@ upll_rc_t VtnPolicingMapMoMgr::ReadControllerStateNormal(ConfigKeyVal *&ikey,
 }
 
 
-upll_rc_t VtnPolicingMapMoMgr::ConstructReadSiblingNormalResponse(ConfigKeyVal *&ikey,
-    upll_keytype_datatype_t dt_type, DalDmlIntf *dmi,
+upll_rc_t VtnPolicingMapMoMgr::ConstructReadSiblingNormalResponse(
+    ConfigKeyVal *&ikey,
+    upll_keytype_datatype_t dt_type,
+    DalDmlIntf *dmi,
     ConfigKeyVal *ctrlr_ckv, ConfigKeyVal *&resp_ckv) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
@@ -4693,9 +4932,9 @@ upll_rc_t VtnPolicingMapMoMgr::ConstructReadSiblingNormalResponse(ConfigKeyVal *
   }
 
   val_policingmap_t *val_main = reinterpret_cast<val_policingmap_t *>
-        (GetVal(main_ckv));
+      (GetVal(main_ckv));
   val_policingmap_t *val_ctrlr = reinterpret_cast<val_policingmap_t *>
-        (GetVal(ctrlr_ckv));
+      (GetVal(ctrlr_ckv));
   val_main->valid[UPLL_IDX_POLICERNAME_PM] =
       val_ctrlr->valid[UPLL_IDX_POLICERNAME_PM];
   val_main->cs_attr[UPLL_IDX_POLICERNAME_PM] =
@@ -4703,12 +4942,12 @@ upll_rc_t VtnPolicingMapMoMgr::ConstructReadSiblingNormalResponse(ConfigKeyVal *
   val_main->cs_row_status = val_ctrlr->cs_row_status;
 
   val_policingmap_controller_t *in_val_vtn_ctrlr_pm = reinterpret_cast
-    <val_policingmap_controller_t *>(GetVal(ikey));
+      <val_policingmap_controller_t *>(GetVal(ikey));
   val_policingmap_controller_t *out_val_vtn_ctrlr_pm =
       reinterpret_cast<val_policingmap_controller_t *>
-    (ConfigKeyVal::Malloc(sizeof(val_policingmap_controller_t)));
+      (ConfigKeyVal::Malloc(sizeof(val_policingmap_controller_t)));
   memcpy(out_val_vtn_ctrlr_pm, in_val_vtn_ctrlr_pm,
-      sizeof(val_policingmap_controller_t));
+         sizeof(val_policingmap_controller_t));
   ConfigKeyVal *okey = NULL;
   result_code = GetChildVtnCtrlrKey(okey, ikey);
   if (!okey || UPLL_RC_SUCCESS != result_code) {
@@ -4718,9 +4957,9 @@ upll_rc_t VtnPolicingMapMoMgr::ConstructReadSiblingNormalResponse(ConfigKeyVal *
     return result_code;
   }
   okey->AppendCfgVal(IpctSt::kIpcStValPolicingmap,
-      val_main);
+                     val_main);
   okey->AppendCfgVal(IpctSt::kIpcStValPolicingmapController,
-      out_val_vtn_ctrlr_pm);
+                     out_val_vtn_ctrlr_pm);
   uint8_t *ctrlr_id = NULL;
   GET_USER_DATA_CTRLR(ctrlr_ckv, ctrlr_id);
   ConfigKeyVal *ppe_ckv = NULL, *temp_ppe_ckv = NULL;
@@ -4729,12 +4968,17 @@ upll_rc_t VtnPolicingMapMoMgr::ConstructReadSiblingNormalResponse(ConfigKeyVal *
   }
   UPLL_LOG_DEBUG("Sequence number - %d", out_val_vtn_ctrlr_pm->sequence_num);
   PolicingProfileEntryMoMgr *ppe_mgr =
-    reinterpret_cast<PolicingProfileEntryMoMgr*>
-    (const_cast<MoManager *>(GetMoManager
-                             (UNC_KT_POLICING_PROFILE_ENTRY)));
-  result_code = ppe_mgr->ReadPolicingProfileEntry(reinterpret_cast
-    <const char *>(val_main->policer_name), out_val_vtn_ctrlr_pm->sequence_num,
-    reinterpret_cast<const char *>(ctrlr_id), dmi, dt_type, ppe_ckv);
+      reinterpret_cast<PolicingProfileEntryMoMgr*>
+      (const_cast<MoManager *>(GetMoManager
+                               (UNC_KT_POLICING_PROFILE_ENTRY)));
+  result_code = ppe_mgr->ReadPolicingProfileEntry(
+      reinterpret_cast
+      <const char *>(val_main->policer_name),
+      out_val_vtn_ctrlr_pm->sequence_num,
+      reinterpret_cast<const char *>(ctrlr_id),
+      dmi,
+      dt_type,
+      ppe_ckv);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("ReadPolicingProfileEntry failed %d", result_code);
     DELETE_IF_NOT_NULL(okey);
@@ -4743,7 +4987,7 @@ upll_rc_t VtnPolicingMapMoMgr::ConstructReadSiblingNormalResponse(ConfigKeyVal *
   temp_ppe_ckv = ppe_ckv;
   while (NULL != temp_ppe_ckv) {
     val_policingprofile_entry_t *val_ppe = reinterpret_cast
-      <val_policingprofile_entry_t *>(GetVal(temp_ppe_ckv));
+        <val_policingprofile_entry_t *>(GetVal(temp_ppe_ckv));
     val_policingprofile_entry_t *in_val_ppe =
         reinterpret_cast<val_policingprofile_entry_t *>
         (ConfigKeyVal::Malloc(sizeof(val_policingprofile_entry_t)));
@@ -4772,7 +5016,7 @@ upll_rc_t VtnPolicingMapMoMgr::GetChildVtnCtrlrKey(
     return UPLL_RC_ERR_GENERIC;
   }
   key_vtn_policingmap_controller_t *vtn_pm_ctrlr_key = reinterpret_cast
-    <key_vtn_policingmap_controller_t *>(ikey->get_key());
+      <key_vtn_policingmap_controller_t *>(ikey->get_key());
   key_vtn_policingmap_controller_t *out_key =
       reinterpret_cast<key_vtn_policingmap_controller_t *>
       (ConfigKeyVal::Malloc(sizeof(key_vtn_policingmap_controller_t)));
@@ -4789,8 +5033,8 @@ upll_rc_t VtnPolicingMapMoMgr::GetChildVtnCtrlrKey(
       vtn_pm_ctrlr_key->domain_id,
       (kMaxLenVtnName +1));
   okey = new ConfigKeyVal(UNC_KT_VTN_POLICINGMAP_CONTROLLER,
-      IpctSt::kIpcStKeyVtnPolicingmapController,
-      out_key, NULL);
+                          IpctSt::kIpcStKeyVtnPolicingmapController,
+                          out_key, NULL);
   if (!okey) {
     UPLL_LOG_DEBUG("GetChildVtnCtrlrKey failed. okey is null");
     return UPLL_RC_ERR_GENERIC;
@@ -4805,19 +5049,19 @@ upll_rc_t VtnPolicingMapMoMgr::SendIpcrequestToDriver(
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
   controller_domain ctrlr_dom;
   key_vtn_policingmap_controller_t *vtn_pm_ctrlr_key = reinterpret_cast
-    <key_vtn_policingmap_controller_t *>(ikey->get_key());
+      <key_vtn_policingmap_controller_t *>(ikey->get_key());
   ctrlr_dom.ctrlr = reinterpret_cast <uint8_t*>
       (ConfigKeyVal::Malloc(kMaxLenCtrlrId + 1));
   ctrlr_dom.domain = reinterpret_cast <uint8_t*>
       (ConfigKeyVal::Malloc(kMaxLenDomainId + 1));
   uuu::upll_strncpy(ctrlr_dom.ctrlr, vtn_pm_ctrlr_key->controller_name,
-      kMaxLenCtrlrId + 1);
+                    kMaxLenCtrlrId + 1);
   uuu::upll_strncpy(ctrlr_dom.domain, vtn_pm_ctrlr_key->domain_id,
-      kMaxLenDomainId + 1);
+                    kMaxLenDomainId + 1);
   ConfigVal *tmp1 = NULL;
   val_policingmap_controller_t *val_pm_ctrlr = reinterpret_cast
-    <val_policingmap_controller_t *>(GetVal(ikey));
-  ConfigKeyVal *temp_ckv = NULL ,*capa_key = NULL;
+      <val_policingmap_controller_t *>(GetVal(ikey));
+  ConfigKeyVal *temp_ckv = NULL , *capa_key = NULL;
   result_code = GetChildVtnCtrlrKey(temp_ckv, ikey);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("GetChildVtnCtrlrKey failed %d", result_code);
@@ -4829,22 +5073,22 @@ upll_rc_t VtnPolicingMapMoMgr::SendIpcrequestToDriver(
       reinterpret_cast<val_policingmap_controller_t *>
       (ConfigKeyVal::Malloc(sizeof(val_policingmap_controller_t)));
   memcpy(out_val_pm_ctrlr, val_pm_ctrlr,
-      sizeof(val_policingmap_controller_t));
+         sizeof(val_policingmap_controller_t));
   tmp1 = new ConfigVal(IpctSt::kIpcStValPolicingmapController,
-      out_val_pm_ctrlr);
+                       out_val_pm_ctrlr);
   temp_ckv->AppendCfgVal(tmp1);
-  // Adding GetUncControllerKey
-   result_code = GetRenamedControllerKey(temp_ckv, req->datatype, dmi,
-                                              &ctrlr_dom);
-   if (result_code != UPLL_RC_SUCCESS) {
-     UPLL_LOG_DEBUG("GetRenamedControllerKey Failed %d", result_code);
-     DELETE_IF_NOT_NULL(temp_ckv);
-     FREE_IF_NOT_NULL(ctrlr_dom.ctrlr);
-     FREE_IF_NOT_NULL(ctrlr_dom.domain);
-     return result_code;
-   }
+  //  Adding GetUncControllerKey
+  result_code = GetRenamedControllerKey(temp_ckv, req->datatype, dmi,
+                                        &ctrlr_dom);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_DEBUG("GetRenamedControllerKey Failed %d", result_code);
+    DELETE_IF_NOT_NULL(temp_ckv);
+    FREE_IF_NOT_NULL(ctrlr_dom.ctrlr);
+    FREE_IF_NOT_NULL(ctrlr_dom.domain);
+    return result_code;
+  }
 
-  //Adding capa for Read/ReadSibling/ReadSiblingBegin Commonly Here
+  // Adding capa for Read/ReadSibling/ReadSiblingBegin Commonly Here
   result_code = GetChildVtnCtrlrKey(capa_key, ikey);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("GetChildVtnCtrlrKey  failed for capa_key %d", result_code);
@@ -4858,18 +5102,19 @@ upll_rc_t VtnPolicingMapMoMgr::SendIpcrequestToDriver(
       reinterpret_cast<val_policingmap_controller_t *>
       (ConfigKeyVal::Malloc(sizeof(val_policingmap_controller_t)));
   memcpy(capa_val_ctrlr, val_pm_ctrlr,
-      sizeof(val_policingmap_controller_t));
+         sizeof(val_policingmap_controller_t));
   capa_tmp = new ConfigVal(IpctSt::kIpcStValPolicingmapController,
-      capa_val_ctrlr);
+                           capa_val_ctrlr);
   capa_key->AppendCfgVal(capa_tmp);
-  result_code = ValidateCapability(req, capa_key, reinterpret_cast<const char *>(ctrlr_dom.ctrlr));
+  result_code = ValidateCapability(req, capa_key, reinterpret_cast
+                                   <const char *>(ctrlr_dom.ctrlr));
   if (result_code != UPLL_RC_SUCCESS) {
-     UPLL_LOG_DEBUG("Key not supported by controller IN ReadSibling");
-     DELETE_IF_NOT_NULL(capa_key);
-     DELETE_IF_NOT_NULL(temp_ckv);
-     FREE_IF_NOT_NULL(ctrlr_dom.ctrlr);
-     FREE_IF_NOT_NULL(ctrlr_dom.domain);
-     return result_code;
+    UPLL_LOG_DEBUG("Key not supported by controller IN ReadSibling");
+    DELETE_IF_NOT_NULL(capa_key);
+    DELETE_IF_NOT_NULL(temp_ckv);
+    FREE_IF_NOT_NULL(ctrlr_dom.ctrlr);
+    FREE_IF_NOT_NULL(ctrlr_dom.domain);
+    return result_code;
   }
   IpcRequest ipc_req;
   memset(&ipc_req, 0, sizeof(ipc_req));
@@ -4904,7 +5149,7 @@ upll_rc_t VtnPolicingMapMoMgr::SendIpcrequestToDriver(
     FREE_IF_NOT_NULL(ctrlr_dom.domain);
     return ipc_response->header.result_code;
   }
-  // Check with Rakesh
+  //  Check with Rakesh
   DELETE_IF_NOT_NULL(capa_key);
   DELETE_IF_NOT_NULL(temp_ckv);
   FREE_IF_NOT_NULL(ctrlr_dom.ctrlr);
@@ -4913,51 +5158,51 @@ upll_rc_t VtnPolicingMapMoMgr::SendIpcrequestToDriver(
 }
 
 upll_rc_t VtnPolicingMapMoMgr::ReadSiblingCount(IpcReqRespHeader *req,
-    ConfigKeyVal* ikey,
-    DalDmlIntf *dmi) {
+                                                ConfigKeyVal* ikey,
+                                                DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code;
   controller_domain ctrlr_dom;
   result_code = ValidateMessage(req, ikey);
   if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_DEBUG("ValidateMessage failed result_code %d",
-                      result_code);
-        return result_code;
+    UPLL_LOG_DEBUG("ValidateMessage failed result_code %d",
+                   result_code);
+    return result_code;
   }
   if (UNC_KT_VTN_POLICINGMAP == ikey->get_key_type()) {
-      if(req->datatype == UPLL_DT_STATE ||
-         req->datatype == UPLL_DT_STARTUP || 
-           req->datatype == UPLL_DT_RUNNING || 
-             req->datatype == UPLL_DT_CANDIDATE ) {
-        result_code = ReadInfoFromDB(req, ikey, dmi, &ctrlr_dom);
-        return result_code;
-      } else {
-        UPLL_LOG_DEBUG("ReadSiblingCount is not Allowed For Such datatype %d",
-        req->datatype);
-        return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
-      }
-  }
- if (UNC_KT_VTN_POLICINGMAP_CONTROLLER == ikey->get_key_type())
-    if(req->datatype != UPLL_DT_STATE) {
-    UPLL_LOG_DEBUG("ReadSiblingCount is not Allowed For Such datatype %d",
-       req->datatype);
-    return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
+    if (req->datatype == UPLL_DT_STATE ||
+       req->datatype == UPLL_DT_STARTUP ||
+       req->datatype == UPLL_DT_RUNNING ||
+       req->datatype == UPLL_DT_CANDIDATE ) {
+      result_code = ReadInfoFromDB(req, ikey, dmi, &ctrlr_dom);
+      return result_code;
+    } else {
+      UPLL_LOG_DEBUG("ReadSiblingCount is not Allowed For Such datatype %d",
+                     req->datatype);
+      return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
+    }
   }
+  if (UNC_KT_VTN_POLICINGMAP_CONTROLLER == ikey->get_key_type())
+    if (req->datatype != UPLL_DT_STATE) {
+      UPLL_LOG_DEBUG("ReadSiblingCount is not Allowed For Such datatype %d",
+                     req->datatype);
+      return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
+    }
 
   ConfigKeyVal *temp_vtn_pm_ckv = NULL;
   ConfigKeyVal *vtn_pm_ckv = NULL;
   key_vtn_policingmap_controller_t *vtn_pm_ctrlr_key = reinterpret_cast
-    <key_vtn_policingmap_controller_t *>(ikey->get_key());
+      <key_vtn_policingmap_controller_t *>(ikey->get_key());
   ctrlr_dom.ctrlr = reinterpret_cast <uint8_t*>
-    (ConfigKeyVal::Malloc(kMaxLenCtrlrId + 1));
+      (ConfigKeyVal::Malloc(kMaxLenCtrlrId + 1));
   ctrlr_dom.domain = reinterpret_cast <uint8_t*>
-    (ConfigKeyVal::Malloc(kMaxLenDomainId + 1));
+      (ConfigKeyVal::Malloc(kMaxLenDomainId + 1));
   uuu::upll_strncpy(ctrlr_dom.ctrlr,
-      vtn_pm_ctrlr_key->controller_name,
-      (kMaxLenCtrlrId + 1));
+                    vtn_pm_ctrlr_key->controller_name,
+                    (kMaxLenCtrlrId + 1));
   uuu::upll_strncpy(ctrlr_dom.domain,
-      vtn_pm_ctrlr_key->domain_id,
-      (kMaxLenDomainId + 1));
+                    vtn_pm_ctrlr_key->domain_id,
+                    (kMaxLenDomainId + 1));
   result_code = CopyVtnControllerCkv(ikey, temp_vtn_pm_ckv);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("CopyVtnControllerCkv failed");
@@ -4966,7 +5211,7 @@ upll_rc_t VtnPolicingMapMoMgr::ReadSiblingCount(IpcReqRespHeader *req,
   DbSubOp dbop = {kOpReadMultiple, kOpMatchNone,
     kOpInOutCtrlr | kOpInOutDomain};
   result_code = ReadConfigDB(temp_vtn_pm_ckv, req->datatype,
-      UNC_OP_READ, dbop, dmi, CTRLRTBL);
+                             UNC_OP_READ, dbop, dmi, CTRLRTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
     delete temp_vtn_pm_ckv;
@@ -4986,8 +5231,8 @@ upll_rc_t VtnPolicingMapMoMgr::ReadSiblingCount(IpcReqRespHeader *req,
 }
 
 upll_rc_t VtnPolicingMapMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
-                                   DalDmlIntf *dmi,
-                                   const char *ctrlr_id) {
+                                                 DalDmlIntf *dmi,
+                                                 const char *ctrlr_id) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   if (NULL == ikey || NULL == dmi) {
@@ -4995,9 +5240,9 @@ upll_rc_t VtnPolicingMapMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
     return UPLL_RC_ERR_GENERIC;
   }
   UPLL_LOG_TRACE("%s Vtn_Pm CreateAuditMoImpl ikey",
-                    ikey->ToStrAll().c_str());
+                 ikey->ToStrAll().c_str());
   uint8_t *controller_id = reinterpret_cast<uint8_t *>(
-                                 const_cast<char *>(ctrlr_id));
+      const_cast<char *>(ctrlr_id));
   result_code = GetRenamedUncKey(ikey, UPLL_DT_RUNNING, dmi,
                                  controller_id);
   if (result_code != UPLL_RC_SUCCESS &&
@@ -5005,28 +5250,28 @@ upll_rc_t VtnPolicingMapMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
     UPLL_LOG_DEBUG("GetRenamedUncKey Failed err_code %d", result_code);
     return result_code;
   }
-  // bool ctrl_instance = true;
+  //  bool ctrl_instance = true;
 
 
-  // Check Policingmap object exists in PolicingProfileTbl CANDIDATE DB
-  // If record not exists, return error code
+  //  Check Policingmap object exists in PolicingProfileTbl CANDIDATE DB
+  //  If record not exists, return error code
   val_policingmap_t *val_pm = reinterpret_cast<val_policingmap_t *>
-    (GetVal(ikey));
+      (GetVal(ikey));
   if (NULL == val_pm) {
     UPLL_LOG_DEBUG(" Value structure is NULL");
     return UPLL_RC_ERR_GENERIC;
   }
-  
+
   if (UNC_VF_VALID == val_pm->valid[UPLL_IDX_POLICERNAME_PM]) {
     result_code = UpdateRefCountInPPCtrlr(ikey, UPLL_DT_AUDIT, dmi,
-        UNC_OP_CREATE);
+                                          UNC_OP_CREATE);
     if (UPLL_RC_SUCCESS != result_code) {
       if (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE) {
         UPLL_LOG_DEBUG("UpdateRefCountInPPCtrlr Err in CANDIDATE DB(%d)",
-          result_code);
+                       result_code);
         return result_code;
       }
-      // ctrl_instance = false;
+      //  ctrl_instance = false;
     }
   }
 
@@ -5034,43 +5279,45 @@ upll_rc_t VtnPolicingMapMoMgr::CreateAuditMoImpl(ConfigKeyVal *ikey,
   if (UPLL_RC_SUCCESS != result_code) {
     return result_code;
   }
-  DbSubOp dbop = { kOpReadExist, kOpMatchNone, kOpInOutNone }; 
+  DbSubOp dbop = { kOpReadExist, kOpMatchNone, kOpInOutNone };
   result_code = UpdateConfigDB(ikey, UPLL_DT_AUDIT, UNC_OP_READ, dmi, &dbop,
-     MAINTBL);
+                               MAINTBL);
   if (UPLL_RC_ERR_INSTANCE_EXISTS != result_code &&
       UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code) {
     UPLL_LOG_DEBUG("UpdateConfigDB failed ");
     return result_code;
   }
   if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-  // create a record in vtnpolicingmap CANDIDATE DB
+    //  create a record in vtnpolicingmap CANDIDATE DB
     result_code = UpdateConfigDB(ikey, UPLL_DT_AUDIT, UNC_OP_CREATE, dmi,
-       MAINTBL);
+                                 MAINTBL);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("Create record Err in vtnpolicingmaptbl CANDIDATE DB(%d)",
-          result_code);
+                     result_code);
       return result_code;
     }
   }
   key_vtn_t *tmp_key = reinterpret_cast<key_vtn_t *>(ikey->get_key());
   UPLL_LOG_DEBUG("vtn name in createcand %s", tmp_key->vtn_name);
-  // Create the record in vtnpolicingmapctrltbl
-  
-  //if (ctrl_instance) {
-    result_code = UpdateRecordInVtnPmCtrlr(ikey, UPLL_DT_AUDIT, UNC_OP_CREATE,
-      dmi);
-    if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("Create record Err in vtnpolicingmaptbl CANDIDATE DB(%d)",
-        result_code);
-      return result_code;
-    }
-  //}
-  
+  //  Create the record in vtnpolicingmapctrltbl
+
+  // if (ctrl_instance) {
+  result_code = UpdateRecordInVtnPmCtrlr(ikey, UPLL_DT_AUDIT, UNC_OP_CREATE,
+                                         dmi);
+  if (UPLL_RC_SUCCESS != result_code) {
+    UPLL_LOG_DEBUG("Create record Err in vtnpolicingmaptbl CANDIDATE DB(%d)",
+                   result_code);
+    return result_code;
+  }
+  // }
+
   return result_code;
 }
 
-upll_rc_t VtnPolicingMapMoMgr::DeleteChildrenPOM(ConfigKeyVal *ikey, 
-   upll_keytype_datatype_t dt_type, DalDmlIntf *dmi) {
+upll_rc_t VtnPolicingMapMoMgr::DeleteChildrenPOM(
+    ConfigKeyVal *ikey,
+    upll_keytype_datatype_t dt_type,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   if (NULL == ikey || NULL == dmi) {
     UPLL_LOG_DEBUG("DeleteMo ikey and req NULL");
@@ -5078,11 +5325,11 @@ upll_rc_t VtnPolicingMapMoMgr::DeleteChildrenPOM(ConfigKeyVal *ikey,
   }
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
-  // 1)Decerment the refcount and check if the refcount as 0 then remove
-  // the record and if refcount is not 0, then update the refcount in
-  // policingprofilectrltbl
+  //  1)Decerment the refcount and check if the refcount as 0 then remove
+  //  the record and if refcount is not 0, then update the refcount in
+  //  policingprofilectrltbl
 
-  // 2)Delete the record in policingprofileentryctrltbl
+  //  2)Delete the record in policingprofileentryctrltbl
   ConfigKeyVal *tempckv = NULL;
   result_code = GetChildConfigKey(tempckv, ikey);
   if (UPLL_RC_SUCCESS != result_code) {
@@ -5091,7 +5338,7 @@ upll_rc_t VtnPolicingMapMoMgr::DeleteChildrenPOM(ConfigKeyVal *ikey,
   }
   DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutNone };
   result_code = ReadConfigDB(tempckv, dt_type, UNC_OP_READ, dbop, dmi,
-      MAINTBL);
+                             MAINTBL);
   if (UPLL_RC_SUCCESS != result_code) {
     if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
       UPLL_LOG_DEBUG("UPLL_RC_ERR_NO_SUCH_INSTANCE");
@@ -5103,50 +5350,49 @@ upll_rc_t VtnPolicingMapMoMgr::DeleteChildrenPOM(ConfigKeyVal *ikey,
     return result_code;
   }
   val_policingmap_t *val_pm = reinterpret_cast<val_policingmap_t *>
-    (GetVal(tempckv));
+      (GetVal(tempckv));
   if (UNC_VF_VALID == val_pm->valid[UPLL_IDX_POLICERNAME_PM]) {
     result_code = UpdateRefCountInPPCtrlr(tempckv, dt_type, dmi,
-        UNC_OP_DELETE);
+                                          UNC_OP_DELETE);
     if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
       result_code = UPLL_RC_SUCCESS;
     } else if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("DeleteMo returns (%d)",
-          result_code);
+                     result_code);
       DELETE_IF_NOT_NULL(tempckv);
       return result_code;
     }
   }
-  DELETE_IF_NOT_NULL(tempckv);
   ConfigKeyVal *temp_ikey = NULL;
   result_code = GetChildConfigKey(temp_ikey, ikey);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("GetChildConfigKey failed");
+    DELETE_IF_NOT_NULL(tempckv);
     return result_code;
   }
-  // Delete a record in vtnpolicingmap CANDIDATE DB
+  //  Delete a record in vtnpolicingmap CANDIDATE DB
   result_code = UpdateConfigDB(temp_ikey, dt_type, UNC_OP_DELETE, dmi,
-      MAINTBL);
+                               MAINTBL);
+  DELETE_IF_NOT_NULL(temp_ikey);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("DeleteMo record Err in vtnpolicingmaptbl (%d)",
-        result_code);
-    DELETE_IF_NOT_NULL(temp_ikey);
+                   result_code);
+    DELETE_IF_NOT_NULL(tempckv);
     return result_code;
   }
 
-  // Delete the record in vtnpolicingmapctrltbl
-  result_code = UpdateRecordInVtnPmCtrlr(temp_ikey, dt_type, UNC_OP_DELETE,
-      dmi);
+  //  Delete the record in vtnpolicingmapctrltbl
+  result_code = UpdateRecordInVtnPmCtrlr(tempckv, dt_type, UNC_OP_DELETE,
+                                         dmi);
+  DELETE_IF_NOT_NULL(tempckv);
   if (UPLL_RC_ERR_NO_SUCH_INSTANCE == result_code) {
-    DELETE_IF_NOT_NULL(temp_ikey);
     result_code = UPLL_RC_SUCCESS;
   } else if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("DeleteMo record Err in vtnpolicingmapctrltbl (%d)",
-        result_code);
-    DELETE_IF_NOT_NULL(temp_ikey);
+                   result_code);
     return result_code;
   }
 
-  DELETE_IF_NOT_NULL(temp_ikey);
   return result_code;
 }
 
@@ -5168,22 +5414,26 @@ upll_rc_t VtnPolicingMapMoMgr::SetValidAudit(ConfigKeyVal *&ikey) {
 }
 
 bool VtnPolicingMapMoMgr::FilterAttributes(void *&val1,
-                                          void *val2,
-                                          bool copy_to_running,
-                                          unc_keytype_operation_t op) {
+                                           void *val2,
+                                           bool copy_to_running,
+                                           unc_keytype_operation_t op) {
   UPLL_FUNC_TRACE;
   if (op != UNC_OP_CREATE)
     return CompareValidValue(val1, val2, copy_to_running);
   return false;
 }
 upll_rc_t VtnPolicingMapMoMgr::IsRenamed(ConfigKeyVal *ikey,
-                               upll_keytype_datatype_t dt_type,
-                               DalDmlIntf *dmi,
-                               uint8_t &rename) {
+                                         upll_keytype_datatype_t dt_type,
+                                         DalDmlIntf *dmi,
+                                         uint8_t &rename) {
   UPLL_FUNC_TRACE;
   UPLL_LOG_DEBUG("VtnPolicingMapMoMgr IsRenamed");
   DbSubOp dbop = { kOpReadSingle, kOpMatchNone, kOpInOutFlag | kOpInOutCtrlr
-                       | kOpInOutDomain };
+    | kOpInOutDomain };
+  if (NULL == ikey) {
+    UPLL_LOG_DEBUG("ikey NULL");
+    return UPLL_RC_ERR_GENERIC;
+  }
   ConfigKeyVal *okey = NULL;
   upll_rc_t result_code;
   /* rename is set implies user wants the ikey
@@ -5193,35 +5443,38 @@ upll_rc_t VtnPolicingMapMoMgr::IsRenamed(ConfigKeyVal *ikey,
       UPLL_LOG_DEBUG("UNC_KT_VTN_POLICINGMAP");
       result_code = GetChildConfigKey(okey, ikey);
       if (result_code != UPLL_RC_SUCCESS) {
-        UPLL_LOG_TRACE("Returning error %d",result_code);
+        UPLL_LOG_TRACE("Returning error %d", result_code);
         return result_code;
       }
     } else if (UNC_KT_VTN_POLICINGMAP_CONTROLLER == ikey->get_key_type()) {
       UPLL_LOG_DEBUG("UNC_KT_VTN_POLICINGMAP_CONTROLLER");
 
       key_vtn_t *out_key = reinterpret_cast<key_vtn_t *>
-                   (ConfigKeyVal::Malloc(sizeof(key_vtn_t)));
+          (ConfigKeyVal::Malloc(sizeof(key_vtn_t)));
 
       key_vtn_policingmap_controller_t *in_key = reinterpret_cast
-        <key_vtn_policingmap_controller_t *>(ikey->get_key());
+          <key_vtn_policingmap_controller_t *>(ikey->get_key());
 
       uuu::upll_strncpy(out_key->vtn_name,
-          in_key->vtn_key.vtn_name,
-          (kMaxLenVtnName + 1));
+                        in_key->vtn_key.vtn_name,
+                        (kMaxLenVtnName + 1));
 
       okey = new ConfigKeyVal(UNC_KT_VTN_POLICINGMAP,
-                 IpctSt::kIpcStKeyVtn,
-                 out_key, NULL);
+                              IpctSt::kIpcStKeyVtn,
+                              out_key, NULL);
+    } else {
+      UPLL_LOG_DEBUG("Invalid KeyType");
+      return UPLL_RC_ERR_GENERIC;
     }
   } else {
     okey = ikey;
   }
 
   result_code = ReadConfigDB(okey, dt_type, UNC_OP_READ, dbop, dmi,
-                                       MAINTBL);
+                             MAINTBL);
   if ((result_code != UPLL_RC_SUCCESS) &&
-       (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE))  {
-    UPLL_LOG_DEBUG("Returning error code %d",result_code);
+      (result_code != UPLL_RC_ERR_NO_SUCH_INSTANCE))  {
+    UPLL_LOG_DEBUG("Returning error code %d", result_code);
     if (okey != ikey) delete okey;
     return UPLL_RC_ERR_GENERIC;
   }
@@ -5230,26 +5483,26 @@ upll_rc_t VtnPolicingMapMoMgr::IsRenamed(ConfigKeyVal *ikey,
   ctrlr_dom.ctrlr = NULL;
   ctrlr_dom.domain = NULL;
 
-  GET_USER_DATA_CTRLR_DOMAIN(ikey,ctrlr_dom);
-    UPLL_LOG_DEBUG("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
+  GET_USER_DATA_CTRLR_DOMAIN(ikey, ctrlr_dom);
+  UPLL_LOG_DEBUG("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
                  ctrlr_dom.domain);
-  SET_USER_DATA_CTRLR_DOMAIN(okey,ctrlr_dom);
-    UPLL_LOG_DEBUG("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
+  SET_USER_DATA_CTRLR_DOMAIN(okey, ctrlr_dom);
+  UPLL_LOG_DEBUG("Controller : %s; Domain : %s", ctrlr_dom.ctrlr,
                  ctrlr_dom.domain);
 
-  SET_USER_DATA(ikey,okey);
+  SET_USER_DATA(ikey, okey);
   rename &= RENAME;
   if (okey != ikey) delete okey;
   return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t VtnPolicingMapMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
-    DalDmlIntf *dmi,
-    IpcReqRespHeader *req) {
+                                             DalDmlIntf *dmi,
+                                             IpcReqRespHeader *req) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_policingmap_t *val_pm = reinterpret_cast
-    <val_policingmap_t *>(GetVal(ikey));
+      <val_policingmap_t *>(GetVal(ikey));
   if (!val_pm) {
     UPLL_LOG_DEBUG("Val is NULL");
     return UPLL_RC_ERR_GENERIC;
@@ -5262,8 +5515,8 @@ upll_rc_t VtnPolicingMapMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
       return result_code;
     }
     MoMgrImpl *mgr =
-      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_VTN)));
+        reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                    UNC_KT_VTN)));
     if (!mgr) {
       UPLL_LOG_DEBUG("mgr is NULL");
       DELETE_IF_NOT_NULL(pkey);
@@ -5272,7 +5525,7 @@ upll_rc_t VtnPolicingMapMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
     uint8_t rename = 0;
     DbSubOp dbop = {kOpReadSingle, kOpMatchNone, kOpInOutFlag};
     result_code = mgr->ReadConfigDB(pkey, req->datatype,
-                                  UNC_OP_READ, dbop, dmi, MAINTBL);
+                                    UNC_OP_READ, dbop, dmi, MAINTBL);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_DEBUG("ReadConfigDB failed %d", result_code);
       DELETE_IF_NOT_NULL(pkey);
@@ -5280,19 +5533,20 @@ upll_rc_t VtnPolicingMapMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
     }
     GET_USER_DATA_FLAGS(pkey, rename);
     DELETE_IF_NOT_NULL(pkey);
-    // Check policingprofile is renamed
+    //  Check policingprofile is renamed
     if ((UNC_VF_VALID == val_pm->valid[UPLL_IDX_POLICERNAME_PM]) &&
         ((UNC_OP_CREATE == req->operation))) {
       ConfigKeyVal *pp_ckv = NULL;
-      result_code = GetPolicingProfileConfigKey(reinterpret_cast<const char *>
+      result_code = GetPolicingProfileConfigKey(
+          reinterpret_cast<const char *>
           (val_pm->policer_name), pp_ckv, dmi);
       if (UPLL_RC_SUCCESS != result_code) {
         UPLL_LOG_DEBUG("GetPolicingProfileConfigKey failed %d", result_code);
         return result_code;
       }
       MoMgrImpl *pp_mgr =
-      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_POLICING_PROFILE)));
+          reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                      UNC_KT_POLICING_PROFILE)));
       if (NULL == pp_mgr) {
         UPLL_LOG_DEBUG("pp_mgr is NULL");
         DELETE_IF_NOT_NULL(pp_ckv);
@@ -5306,7 +5560,8 @@ upll_rc_t VtnPolicingMapMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
         return result_code;
       }
       if (pp_rename & 0x01) {
-        rename |= POLICINGPROFILE_RENAME;  // TODO Check for correct flag value
+        rename |= POLICINGPROFILE_RENAME;  // TODO(upll): Check for
+        // correct flag value
       }
       DELETE_IF_NOT_NULL(pp_ckv);
     }
@@ -5321,14 +5576,16 @@ upll_rc_t VtnPolicingMapMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
     if (UNC_VF_VALID == val_pm->valid[UPLL_IDX_POLICERNAME_PM]) {
       ConfigKeyVal *pp_ckv = NULL;
       result_code = GetPolicingProfileConfigKey(reinterpret_cast<const char *>
-          (val_pm->policer_name), pp_ckv, dmi);
+                                                (val_pm->policer_name),
+                                                pp_ckv,
+                                                dmi);
       if (UPLL_RC_SUCCESS != result_code) {
         UPLL_LOG_DEBUG("GetPolicingProfileConfigKey failed %d", result_code);
         return result_code;
       }
       MoMgrImpl *pp_mgr =
-      reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_POLICING_PROFILE)));
+          reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
+                      UNC_KT_POLICING_PROFILE)));
       if (NULL == pp_mgr) {
         UPLL_LOG_DEBUG("pp_mgr is NULL");
         DELETE_IF_NOT_NULL(pp_ckv);
@@ -5342,7 +5599,8 @@ upll_rc_t VtnPolicingMapMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
         return result_code;
       }
       if (pp_rename & 0x01) {
-        rename |= POLICINGPROFILE_RENAME;  // TODO Check for correct flag value
+        rename |= POLICINGPROFILE_RENAME;  // TODO(upll): Check for correct
+        // flag value
       } else {
         UPLL_LOG_DEBUG(" In else part rename %d ", rename);
         rename = rename & NO_POLICINGPROFILE_RENAME;
@@ -5350,7 +5608,7 @@ upll_rc_t VtnPolicingMapMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
       DELETE_IF_NOT_NULL(pp_ckv);
     } else if (UNC_VF_VALID_NO_VALUE == val_pm->valid
                [UPLL_IDX_POLICERNAME_PM]) {
-       rename = rename & NO_POLICINGPROFILE_RENAME;
+      rename = rename & NO_POLICINGPROFILE_RENAME;
     }
     SET_USER_DATA_FLAGS(ikey, rename);
   }
@@ -5358,13 +5616,13 @@ upll_rc_t VtnPolicingMapMoMgr::SetRenameFlag(ConfigKeyVal *ikey,
 }
 
 upll_rc_t VtnPolicingMapMoMgr::GetPolicingProfileConfigKey(
-        const char *pp_name, ConfigKeyVal *&okey,
-        DalDmlIntf *dmi) {
+    const char *pp_name, ConfigKeyVal *&okey,
+    DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_ERR_GENERIC;
   MoMgrImpl *mgr =
       reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>(GetMoManager(
-              UNC_KT_POLICING_PROFILE)));
+                  UNC_KT_POLICING_PROFILE)));
   result_code = mgr->GetChildConfigKey(okey, NULL);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("GetChildConfigKey failed %d", result_code);
@@ -5373,8 +5631,8 @@ upll_rc_t VtnPolicingMapMoMgr::GetPolicingProfileConfigKey(
   key_policingprofile_t *okey_key = reinterpret_cast<key_policingprofile_t *>
       (okey->get_key());
   uuu::upll_strncpy(okey_key->policingprofile_name,
-        pp_name,
-        (kMaxLenPolicingProfileName+1));
+                    pp_name,
+                    (kMaxLenPolicingProfileName+1));
   return UPLL_RC_SUCCESS;
 }
 
@@ -5389,7 +5647,7 @@ upll_rc_t VtnPolicingMapMoMgr::SetVtnPmConsolidatedStatus(ConfigKeyVal *ikey,
   bool applied = false, not_applied = false, invalid = false;
   unc_keytype_configstatus_t c_status = UNC_CS_NOT_APPLIED;
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone,
-                   kOpInOutCtrlr | kOpInOutDomain | kOpInOutCs };
+    kOpInOutCtrlr | kOpInOutDomain | kOpInOutCs };
   if (!ikey || !dmi) {
     UPLL_LOG_DEBUG("Invalid Input");
     return UPLL_RC_ERR_GENERIC;
@@ -5409,7 +5667,7 @@ upll_rc_t VtnPolicingMapMoMgr::SetVtnPmConsolidatedStatus(ConfigKeyVal *ikey,
   }
 
   for (ConfigKeyVal *tmp = ctrlr_ckv; tmp != NULL;
-                     tmp = tmp->get_next_cfg_key_val()) {
+       tmp = tmp->get_next_cfg_key_val()) {
     ctrlr_val = reinterpret_cast<val_vtnpolicingmap_ctrl_t *>(GetVal(tmp));
     if (!ctrlr_val) {
       UPLL_LOG_DEBUG("Controller Value is empty");
@@ -5420,21 +5678,22 @@ upll_rc_t VtnPolicingMapMoMgr::SetVtnPmConsolidatedStatus(ConfigKeyVal *ikey,
     GET_USER_DATA_CTRLR(tmp, vtn_exist_on_ctrlr);
     if (!strcmp(reinterpret_cast<char *>(vtn_exist_on_ctrlr),
                 reinterpret_cast<char *>(ctrlr_id)))
-      continue;  // skipping entry of deleted controller
+      continue;  //  skipping entry of deleted controller
 
     switch (ctrlr_val->cs_row_status) {
       case UNC_CS_APPLIED:
         applied = true;
-      break;
+        break;
       case UNC_CS_NOT_APPLIED:
         not_applied = true;
-      break;
+        break;
       case UNC_CS_INVALID:
         invalid = true;
+        break;  //  Addressed coverity MISSSING_BREAK
       default:
         UPLL_LOG_DEBUG("Invalid status");
         DELETE_IF_NOT_NULL(ctrlr_ckv);
-        // return result_code;
+        //  return result_code;
     }
     vtn_exist_on_ctrlr = NULL;
   }
@@ -5449,9 +5708,9 @@ upll_rc_t VtnPolicingMapMoMgr::SetVtnPmConsolidatedStatus(ConfigKeyVal *ikey,
   } else {
     c_status = UNC_CS_APPLIED;
   }
-  // Set cs_status
+  //  Set cs_status
   val_vtnpolicingmap_ctrl_t *val = static_cast<val_vtnpolicingmap_ctrl_t *>
-                                  (GetVal(ikey));
+      (GetVal(ikey));
   val->cs_row_status = c_status;
   val->cs_attr[0] = c_status;
   DbSubOp dbop_update = {kOpNotRead, kOpMatchNone, kOpInOutCs};
@@ -5462,7 +5721,7 @@ upll_rc_t VtnPolicingMapMoMgr::SetVtnPmConsolidatedStatus(ConfigKeyVal *ikey,
 }
 
 upll_rc_t VtnPolicingMapMoMgr::SetConsolidatedStatus(ConfigKeyVal *ikey,
-                                               DalDmlIntf *dmi) {
+                                                     DalDmlIntf *dmi) {
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *ckv = NULL;
   DbSubOp dbop = {kOpReadMultiple, kOpMatchNone, kOpInOutCs};
@@ -5487,12 +5746,13 @@ upll_rc_t VtnPolicingMapMoMgr::SetConsolidatedStatus(ConfigKeyVal *ikey,
   val_vtnpolicingmap_ctrl_t *val;
   ConfigKeyVal *temp_ckv = ckv;
   for ( ; temp_ckv != NULL ; temp_ckv = temp_ckv->get_next_cfg_key_val()) {
-      val = reinterpret_cast<val_vtnpolicingmap_ctrl_t *>(GetVal(temp_ckv));
-      list_cs_row.push_back((unc_keytype_configstatus_t)val->cs_row_status);
-      list_cs_attr.push_back((unc_keytype_configstatus_t)val->cs_attr[0]);
+    val = reinterpret_cast<val_vtnpolicingmap_ctrl_t *>(GetVal(temp_ckv));
+    list_cs_row.push_back((unc_keytype_configstatus_t)val->cs_row_status);
+    list_cs_attr.push_back((unc_keytype_configstatus_t)val->cs_attr[0]);
   }
   DELETE_IF_NOT_NULL(ckv);
-  val_policingmap_t *val_temp = reinterpret_cast<val_policingmap_t *>(GetVal(ikey));
+  val_policingmap_t *val_temp = reinterpret_cast<val_policingmap_t *>
+      (GetVal(ikey));
   val_temp->cs_row_status = GetConsolidatedCsStatus(list_cs_row);
   val_temp->cs_attr[0] = GetConsolidatedCsStatus(list_cs_attr);
   result_code = UpdateConfigDB(ikey,
@@ -5503,6 +5763,6 @@ upll_rc_t VtnPolicingMapMoMgr::SetConsolidatedStatus(ConfigKeyVal *ikey,
   }
   return result_code;
 }
-}  // kt_momgr
-}  // upll
-}  // unc
+}  // namespace kt_momgr
+}  // namespace upll
+}  // namespace unc
index 0ae85ee8d4a7f7ed1fbdb5c5fbd466e44c670e36..273a4790c8404f0b56ccd8a84e9254e99138953b 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -35,7 +35,7 @@ class VtnPolicingMapMoMgr : public MoMgrImpl {
   static BindInfo key_vtnpm_vtn_ctrlrtbl_rename_bind_info[];
   static BindInfo key_vtnpm_Policyname_maintbl_rename_bind_info[];
   static BindInfo key_vtnpm_Policyname_ctrlrtbl_rename_bind_info[];
-  uint32_t cur_instance_count;
+
  public:
   /**
    * @Brief VtnPolicingMapMoMgr Class Constructor.
@@ -71,7 +71,7 @@ class VtnPolicingMapMoMgr : public MoMgrImpl {
    * @retval    UPLL_RC_ERR_GENERIC          Generic Errors.
    */
   upll_rc_t CreateCandidateMo(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                              DalDmlIntf *dmi);
+                              DalDmlIntf *dmi, bool restore_flag = false);
 
   /**
    * @Brief This API is used to delete the record (Vtn name with
@@ -336,7 +336,8 @@ class VtnPolicingMapMoMgr : public MoMgrImpl {
    */
   upll_rc_t TxUpdateProcess(ConfigKeyVal *ck_main, IpcResponse *ipc_resp,
                             unc_keytype_operation_t op,
-                            DalDmlIntf *dmi, controller_domain *ctrlr_dom);
+                            DalDmlIntf *dmi, controller_domain *ctrlr_dom,
+                            set<string> *affected_ctrlr_set, bool *driver_resp);
 
   /**
    * @Brief This API is used to get the renamed Controller's key
@@ -391,10 +392,10 @@ class VtnPolicingMapMoMgr : public MoMgrImpl {
   /**
    * @Brief This API updates the Configuration status for AuditConfigiration todo
    *
-   * @param[in]  ctrlr_rslt           Pointer to ConfigkeyVal class.
    * @param[in]  phase                Describes the phase of controller.
+   * @param[in]  cs_status            either UNC_CS_INVALID or UNC_CS_APPLIED.
    * @param[in]  ckv_running          Pointer to ConfigkeyVal.
-   * @param[in]  ckv_audit            Pointer to ConfigkeyVal.
+   * @param[in]  dmi                  Pointer to the DalDmlIntf(DB Interface)
    *
    * @retval     UPLL_RC_SUCCESS      Successful completion.
    * @retval     UPLL_RC_ERR_GENERIC  Generic Errors.
@@ -403,7 +404,8 @@ class VtnPolicingMapMoMgr : public MoMgrImpl {
   upll_rc_t UpdateAuditConfigStatus(
       unc_keytype_configstatus_t cs_status,
       uuc::UpdateCtrlrPhase phase,
-      ConfigKeyVal *&ckv_running);
+      ConfigKeyVal *&ckv_running,
+      DalDmlIntf *dmi);
 
   /**
    * @Brief Method To Compare the Valid Check of Attributes
@@ -548,7 +550,7 @@ class VtnPolicingMapMoMgr : public MoMgrImpl {
    * @retval    UPLL_RC_ERR_INVALID_OPTION2   option2 is not valid.
    */
   static upll_rc_t ValidatePolicingMapValue(ConfigKeyVal *key,
-                                        uint32_t operation);
+                                            uint32_t operation);
 
   /**
    * @Brief Method is used to validate the policingmap controller value
@@ -641,7 +643,7 @@ class VtnPolicingMapMoMgr : public MoMgrImpl {
    *
    * @retval  UPLL_RC_SUCCESS      Successfull completion.
    * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
-   * @retval  UPLL_RC_ERR_INSTANCE_EXISTS       Record already exists 
+   * @retval  UPLL_RC_ERR_INSTANCE_EXISTS       Record already exists
    * @retval  UPLL_RC_ERR_GENERIC  Returned Generic Error.
    */
 
@@ -656,7 +658,7 @@ class VtnPolicingMapMoMgr : public MoMgrImpl {
   upll_rc_t ReadSiblingPolicingMapController(
       IpcReqRespHeader *req,
       ConfigKeyVal *ikey,
-      DalDmlIntf *dmi); 
+      DalDmlIntf *dmi);
   upll_rc_t ReadControllerStateDetail(ConfigKeyVal *&ikey,
                                       ConfigKeyVal *vtn_dup_key,
                                       IpcResponse *ipc_response,
@@ -712,7 +714,7 @@ class VtnPolicingMapMoMgr : public MoMgrImpl {
   upll_rc_t  ReadSiblingControllerStateNormal(
       ConfigKeyVal *ikey,
       IpcReqRespHeader *req,
-      DalDmlIntf *dmi); 
+      DalDmlIntf *dmi);
   upll_rc_t  ReadSiblingControllerStateDetail(
       ConfigKeyVal *ikey,
       IpcReqRespHeader *req,
@@ -751,9 +753,9 @@ class VtnPolicingMapMoMgr : public MoMgrImpl {
                            bool &no_rename);
 
   bool FilterAttributes(void *&val1,
-                          void *val2,
-                          bool copy_to_running,
-                          unc_keytype_operation_t op);
+                        void *val2,
+                        bool copy_to_running,
+                        unc_keytype_operation_t op);
 
   upll_rc_t MergeImportToCandidate(unc_key_type_t keytype,
                                    const char *ctrlr_name,
@@ -765,8 +767,8 @@ class VtnPolicingMapMoMgr : public MoMgrImpl {
                       uint8_t &rename);
 
   upll_rc_t GetPolicingProfileConfigKey(
-        const char *pp_name, ConfigKeyVal *&okey,
-        DalDmlIntf *dmi);
+      const char *pp_name, ConfigKeyVal *&okey,
+      DalDmlIntf *dmi);
 
   upll_rc_t SetRenameFlag(ConfigKeyVal *ikey,
                           DalDmlIntf *dmi,
@@ -778,15 +780,17 @@ class VtnPolicingMapMoMgr : public MoMgrImpl {
 
   upll_rc_t SetConsolidatedStatus(ConfigKeyVal *ikey,
                                   DalDmlIntf *dmi);
+  /*  upll_rc_t DecRefCountInPPCtrlTbl(ConfigKeyVal *pm_imkey,
+      DalDmlIntf *dmi);*/
 };
 
 typedef struct val_vtnpolicingmap_ctrl {
-    uint8_t valid[1];
-    uint8_t cs_row_status;
-    uint8_t cs_attr[1];
-    uint8_t policer_name[33];
+  uint8_t valid[1];
+  uint8_t cs_row_status;
+  uint8_t cs_attr[1];
+  uint8_t policer_name[33];
 } val_vtnpolicingmap_ctrl_t;
-}  // kt_momgr
-}  // upll
-}  // unc
+}  // namespace kt_momgr
+}  // namespace upll
+}  // namespace unc
 #endif  // MODULES_UPLL_VTN_POLICINGMAP_MOMGR_HH_
index 2f0e70586715e778db6b0e9d4919103c6feb53d0..cf85b6266adf7459403293be68d1bca3526c02dd 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -19,82 +19,109 @@ namespace unc {
 namespace upll {
 namespace kt_momgr {
 
-  BindInfo VtunnelIfMoMgr::vtunnel_if_bind_info[] = {
-    { uudst::vtunnel_interface::kDbiVtnName, CFG_KEY, offsetof(key_vtunnel_if,
-        vtunnel_key.vtn_key.vtn_name), uud::kDalChar, kMaxLenVtnName+1},
-    { uudst::vtunnel_interface::kDbiVtunnelName, CFG_KEY,
-        offsetof(key_vtunnel_if,
-        vtunnel_key.vtunnel_name), uud::kDalChar, kMaxLenVnodeName+1},
-    { uudst::vtunnel_interface::kDbiIfName, CFG_KEY, offsetof(key_vtunnel_if,
-        if_name), uud::kDalChar, kMaxLenInterfaceName+1},
+BindInfo VtunnelIfMoMgr::vtunnel_if_bind_info[] = {
+  { uudst::vtunnel_interface::kDbiVtnName, CFG_KEY, offsetof(
+          key_vtunnel_if,
+          vtunnel_key.vtn_key.vtn_name),
+  uud::kDalChar, kMaxLenVtnName+1},
+  { uudst::vtunnel_interface::kDbiVtunnelName, CFG_KEY,
+    offsetof(key_vtunnel_if,
+             vtunnel_key.vtunnel_name), uud::kDalChar, kMaxLenVnodeName+1},
+    { uudst::vtunnel_interface::kDbiIfName, CFG_KEY, offsetof(
+            key_vtunnel_if,
+            if_name), uud::kDalChar, kMaxLenInterfaceName+1},
     { uudst::vtunnel_interface::kDbiDesc, CFG_VAL, offsetof(
-        val_vtunnel_if, description), uud::kDalChar, 128},
+            val_vtunnel_if, description), uud::kDalChar, 128},
     { uudst::vtunnel_interface::kDbiAdminStatus, CFG_VAL, offsetof(
-        val_vtunnel_if, admin_status), uud::kDalUint8, 1},
+            val_vtunnel_if, admin_status), uud::kDalUint8, 1},
     { uudst::vtunnel_interface::kDbiLogicalPortId, CFG_VAL, offsetof(
-        val_vtunnel_if, portmap.logical_port_id), uud::kDalChar, 320},
+            val_vtunnel_if, portmap.logical_port_id), uud::kDalChar, 320},
     { uudst::vtunnel_interface::kDbiVlanId, CFG_VAL, offsetof(
-        val_vtunnel_if, portmap.vlan_id), uud::kDalUint16, 1},
+            val_vtunnel_if, portmap.vlan_id), uud::kDalUint16, 1},
     { uudst::vtunnel_interface::kDbiTagged, CFG_VAL, offsetof(
-        val_vtunnel_if, portmap.tagged), uud::kDalUint8, 1},
+            val_vtunnel_if, portmap.tagged), uud::kDalUint8, 1},
     { uudst::vtunnel_interface::kDbiOperStatus, ST_VAL,
+      offsetof(val_db_vtunnel_if_st,
+               vtunnel_if_val_st.oper_status), uud::kDalUint8, 1},
+      { uudst::vtunnel_interface::kDbiDownCount, ST_VAL,
         offsetof(val_db_vtunnel_if_st,
-        vtunnel_if_val_st.oper_status), uud::kDalUint8, 1},
-    { uudst::vtunnel_interface::kDbiDownCount, ST_VAL,
-        offsetof(val_db_vtunnel_if_st,
-        down_count), uud::kDalUint32, 1 },
-    { uudst::vtunnel_interface::kDbiCtrlrName, CK_VAL, offsetof(key_user_data,
-        ctrlr_id), uud::kDalChar, 32},
-    { uudst::vtunnel_interface::kDbiDomainId, CK_VAL, offsetof(key_user_data,
-        domain_id), uud::kDalChar, 32},
-    { uudst::vtunnel_interface::kDbiFlags, CK_VAL, offsetof(key_user_data,
-        flags), uud::kDalUint8, 1},
-    { uudst::vtunnel_interface::kDbiValidDesc, CFG_META_VAL, offsetof(
-        val_vtunnel_if, valid[UPLL_IDX_DESC_VTNL_IF]), uud::kDalUint8, 1},
-    { uudst::vtunnel_interface::kDbiValidAdminStatus, CFG_DEF_VAL, offsetof(
-        val_vtunnel_if, valid[UPLL_IDX_ADMIN_ST_VTNL_IF]), uud::kDalUint8, 1},
-    { uudst::vtunnel_interface::kDbiValidPortMap, CFG_META_VAL, offsetof(
-        val_vtunnel_if, valid[UPLL_IDX_PORT_MAP_VTNL_IF]), uud::kDalUint8, 1},
-    { uudst::vtunnel_interface::kDbiValidLogicalPortId, CFG_META_VAL, offsetof
-      (val_vtunnel_if, portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM]),
-      uud::kDalUint8, 1},
-    { uudst::vtunnel_interface::kDbiValidVlanid, CFG_META_VAL, offsetof(
-        val_vtunnel_if, portmap.valid[UPLL_IDX_VLAN_ID_PM]),
-    uud::kDalUint8, 1},
-    { uudst::vtunnel_interface::kDbiValidTagged, CFG_META_VAL, offsetof(
-        val_vtunnel_if, portmap.valid[UPLL_IDX_TAGGED_PM]),
-    uud::kDalUint8, 1 },
-    { uudst::vtunnel_interface::kDbiValidOperStatus, ST_META_VAL, offsetof(
-        val_db_vtunnel_if_st,
-        vtunnel_if_val_st.valid[UPLL_IDX_IF_OPER_STATUS_VTNLI]),
-    uud::kDalUint8, 1 },
-    { uudst::vtunnel_interface::kDbiCsRowstatus, CS_VAL,
-        offsetof(val_vtunnel_if,
-        cs_row_status), uud::kDalUint8, 1},
-    { uudst::vtunnel_interface::kDbiCsDesc, CS_VAL, offsetof(val_vtunnel_if,
-        cs_attr[UPLL_IDX_DESC_VTNL_IF]), uud::kDalUint8, 1},
-    { uudst::vtunnel_interface::kDbiCsAdminStatus, CS_VAL,
-        offsetof(val_vtunnel_if,
-        cs_attr[UPLL_IDX_ADMIN_ST_VTNL_IF]), uud::kDalUint8, 1},
-    { uudst::vtunnel_interface::kDbiCsPortMap, CS_VAL, offsetof(val_vtunnel_if,
-        cs_attr[UPLL_IDX_PORT_MAP_VTNL_IF]), uud::kDalUint8, 1},
-    { uudst::vtunnel_interface::kDbiCsLogicalPortId, CS_VAL, offsetof(
-        val_vtunnel_if, portmap.cs_attr[UPLL_IDX_LOGICAL_PORT_ID_PM]),
-    uud::kDalUint8, 1 },
-    { uudst::vtunnel_interface::kDbiCsVlanid, CS_VAL, offsetof(
-        val_vtunnel_if, portmap.cs_attr[UPLL_IDX_VLAN_ID_PM]),
-    uud::kDalUint8, 1 },
-    { uudst::vtunnel_interface::kDbiCsTagged, CS_VAL, offsetof(
-        val_vtunnel_if, portmap.cs_attr[UPLL_IDX_TAGGED_PM]),
-    uud::kDalUint8, 1 }
-  };
+                 down_count), uud::kDalUint32, 1 },
+        { uudst::vtunnel_interface::kDbiCtrlrName,
+          CK_VAL,
+          offsetof(key_user_data,
+                   ctrlr_id),
+          uud::kDalChar, 32},
+        { uudst::vtunnel_interface::kDbiDomainId,
+          CK_VAL,
+          offsetof(key_user_data,
+                   domain_id),
+          uud::kDalChar, 32},
+        { uudst::vtunnel_interface::kDbiFlags, CK_VAL, offsetof(key_user_data,
+                                                                flags),
+        uud::kDalUint8, 1},
+        { uudst::vtunnel_interface::kDbiValidDesc, CFG_META_VAL, offsetof(
+                val_vtunnel_if, valid[UPLL_IDX_DESC_VTNL_IF]),
+        uud::kDalUint8, 1},
+        { uudst::vtunnel_interface::kDbiValidAdminStatus,
+          CFG_DEF_VAL,
+          offsetof(
+              val_vtunnel_if, valid[UPLL_IDX_ADMIN_ST_VTNL_IF]),
+          uud::kDalUint8, 1},
+        { uudst::vtunnel_interface::kDbiValidPortMap,
+          CFG_META_VAL, offsetof(
+              val_vtunnel_if, valid[UPLL_IDX_PORT_MAP_VTNL_IF]),
+          uud::kDalUint8, 1},
+        { uudst::vtunnel_interface::kDbiValidLogicalPortId,
+          CFG_META_VAL,
+          offsetof
+              (val_vtunnel_if, portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM]),
+          uud::kDalUint8, 1},
+        { uudst::vtunnel_interface::kDbiValidVlanid, CFG_META_VAL, offsetof(
+                val_vtunnel_if, portmap.valid[UPLL_IDX_VLAN_ID_PM]),
+        uud::kDalUint8, 1},
+        { uudst::vtunnel_interface::kDbiValidTagged, CFG_META_VAL, offsetof(
+                val_vtunnel_if, portmap.valid[UPLL_IDX_TAGGED_PM]),
+        uud::kDalUint8, 1 },
+        { uudst::vtunnel_interface::kDbiValidOperStatus,
+          ST_META_VAL,
+          offsetof(
+              val_db_vtunnel_if_st,
+              vtunnel_if_val_st.valid[UPLL_IDX_IF_OPER_STATUS_VTNLI]),
+          uud::kDalUint8, 1 },
+        { uudst::vtunnel_interface::kDbiCsRowstatus, CS_VAL,
+          offsetof(val_vtunnel_if,
+                   cs_row_status), uud::kDalUint8, 1},
+          { uudst::vtunnel_interface::kDbiCsDesc, CS_VAL, offsetof(
+                  val_vtunnel_if,
+                  cs_attr[UPLL_IDX_DESC_VTNL_IF]),
+          uud::kDalUint8,
+          1},
+          { uudst::vtunnel_interface::kDbiCsAdminStatus, CS_VAL,
+            offsetof(val_vtunnel_if,
+                     cs_attr[UPLL_IDX_ADMIN_ST_VTNL_IF]), uud::kDalUint8, 1},
+            { uudst::vtunnel_interface::kDbiCsPortMap, CS_VAL, offsetof(
+                    val_vtunnel_if,
+                    cs_attr[UPLL_IDX_PORT_MAP_VTNL_IF]),
+            uud::kDalUint8,
+            1},
+            { uudst::vtunnel_interface::kDbiCsLogicalPortId, CS_VAL, offsetof(
+                    val_vtunnel_if,
+                    portmap.cs_attr[UPLL_IDX_LOGICAL_PORT_ID_PM]),
+            uud::kDalUint8, 1 },
+            { uudst::vtunnel_interface::kDbiCsVlanid, CS_VAL, offsetof(
+                    val_vtunnel_if, portmap.cs_attr[UPLL_IDX_VLAN_ID_PM]),
+            uud::kDalUint8, 1 },
+            { uudst::vtunnel_interface::kDbiCsTagged, CS_VAL, offsetof(
+                    val_vtunnel_if, portmap.cs_attr[UPLL_IDX_TAGGED_PM]),
+            uud::kDalUint8, 1 }
+};
 
 VtunnelIfMoMgr::VtunnelIfMoMgr() {
   UPLL_FUNC_TRACE;
   Table *tbl = new Table(uudst::kDbiVtunnelIfTbl, UNC_KT_VTUNNEL_IF,
-      vtunnel_if_bind_info,
-      IpctSt::kIpcStKeyVtunnelIf, IpctSt::kIpcStValVtunnelIf,
-      uudst::vtunnel_interface::kDbiVtunnelIfNumCols);
+                         vtunnel_if_bind_info,
+                         IpctSt::kIpcStKeyVtunnelIf, IpctSt::kIpcStValVtunnelIf,
+                         uudst::vtunnel_interface::kDbiVtunnelIfNumCols);
   ntable = MAX_MOMGR_TBLS;
   table = new Table *[ntable];
   table[MAINTBL] = tbl;
@@ -108,12 +135,44 @@ VtunnelIfMoMgr::VtunnelIfMoMgr() {
 }
 
 upll_rc_t VtunnelIfMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
-    DalDmlIntf *dmi,
-    IpcReqRespHeader *req) {
+                                            DalDmlIntf *dmi,
+                                            IpcReqRespHeader *req) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   if (!ikey || (ikey->get_key_type() != UNC_KT_VTUNNEL_IF)
-            || !(ikey->get_cfg_val()))
+      || !(ikey->get_cfg_val()))
+    return UPLL_RC_ERR_CFG_SYNTAX;
+  val_vtunnel_if *vtunnelif_val = static_cast<val_vtunnel_if *>(GetVal(ikey));
+  if (!vtunnelif_val) {
+    if (req->operation == UNC_OP_CREATE) {
+      UPLL_LOG_DEBUG("Val Structure is Null");
+      return UPLL_RC_SUCCESS;
+    } else {
+      UPLL_LOG_DEBUG("Val structure is must");
+      return UPLL_RC_ERR_GENERIC;
+    }
+  }
+  result_code = IsLogicalPortAndVlanIdInUse(ikey, dmi, req);
+  if (result_code != UPLL_RC_SUCCESS) {
+    UPLL_LOG_ERROR("Returning error %d\n", result_code);
+    return result_code;
+  }
+  // PortMap Validation
+  uint32_t operation = req->operation;
+  if (operation == UNC_OP_UPDATE) {
+    result_code = UpdateConfigVal(ikey, UPLL_DT_CANDIDATE, dmi);
+    UPLL_LOG_TRACE("UpdateConfigVal returned %d", result_code);
+  }
+  return result_code;
+}
+
+upll_rc_t VtunnelIfMoMgr::IsLogicalPortAndVlanIdInUse(ConfigKeyVal *ikey,
+                                                      DalDmlIntf *dmi,
+                                                      IpcReqRespHeader *req) {
+  UPLL_FUNC_TRACE;
+  upll_rc_t result_code = UPLL_RC_SUCCESS;
+  if (!ikey || (ikey->get_key_type() != UNC_KT_VTUNNEL_IF)
+      || !(ikey->get_cfg_val()))
     return UPLL_RC_ERR_CFG_SYNTAX;
   val_vtunnel_if *vtunnelif_val = static_cast<val_vtunnel_if *>(GetVal(ikey));
   if (!vtunnelif_val) {
@@ -121,36 +180,38 @@ upll_rc_t VtunnelIfMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
   }
   if (vtunnelif_val->valid[UPLL_IDX_PORT_MAP_VTNL_IF] == UNC_VF_VALID) {
     if (vtunnelif_val->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM]
-                                                          == UNC_VF_VALID &&
+        == UNC_VF_VALID &&
         vtunnelif_val->portmap.valid[UPLL_IDX_VLAN_ID_PM] == UNC_VF_VALID) {
       key_vtunnel_if *vtunnel_key_if = static_cast<key_vtunnel_if *>
-                 (ConfigKeyVal::Malloc(sizeof(key_vtunnel_if)));
+          (ConfigKeyVal::Malloc(sizeof(key_vtunnel_if)));
       val_vtunnel_if *vtunnelif_val_filter = static_cast<val_vtunnel_if *>
-                  (ConfigKeyVal::Malloc(sizeof(val_vtunnel_if)));
+          (ConfigKeyVal::Malloc(sizeof(val_vtunnel_if)));
       vtunnelif_val_filter->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] =
-                                                                UNC_VF_VALID;
+          UNC_VF_VALID;
       vtunnelif_val_filter->portmap.valid[UPLL_IDX_VLAN_ID_PM] = UNC_VF_VALID;
       uuu::upll_strncpy(vtunnelif_val_filter->portmap.logical_port_id,
                         vtunnelif_val->portmap.logical_port_id,
                         kMaxLenLogicalPortId+1);
       vtunnelif_val_filter->portmap.vlan_id = vtunnelif_val->portmap.vlan_id;
       ConfigKeyVal *vtunnelif_ckv = new ConfigKeyVal(UNC_KT_VTUNNEL_IF,
-                              IpctSt::kIpcStKeyVtunnelIf, vtunnel_key_if, NULL);
+                                                     IpctSt::kIpcStKeyVtunnelIf,
+                                                     vtunnel_key_if,
+                                                     NULL);
       vtunnelif_ckv->AppendCfgVal(IpctSt::kIpcStValVtunnelIf,
-                                                   vtunnelif_val_filter);
+                                  vtunnelif_val_filter);
 
       SET_USER_DATA(vtunnelif_ckv, ikey);
       // Read from the DB
       DbSubOp dbop = { kOpReadMultiple, kOpMatchCtrlr | kOpMatchDomain,
-                                                        kOpInOutFlag};
+        kOpInOutFlag};
       result_code = ReadConfigDB(vtunnelif_ckv, UPLL_DT_CANDIDATE, UNC_OP_READ,
                                  dbop, dmi, MAINTBL);
       if (result_code == UPLL_RC_SUCCESS) {
-      // check different interface has the same port and lan id
+        // check different interface has the same port and lan id
         ConfigKeyVal *tmp = vtunnelif_ckv;
         while (tmp) {
           if (!memcmp((ikey->get_key()), (tmp->get_key()),
-                                          sizeof(key_vtunnel_if))) {
+                      sizeof(key_vtunnel_if))) {
             UPLL_LOG_TRACE("Looking on the Same key");
           } else {
             UPLL_LOG_DEBUG("Same port Id and VlanId is used on different "
@@ -173,12 +234,6 @@ upll_rc_t VtunnelIfMoMgr::ValidateAttribute(ConfigKeyVal *ikey,
     }
   }
   UPLL_LOG_TRACE("PortId and VlanId is not used on any Vtunnel Interface");
-  // PortMap Validation
-  uint32_t operation = req->operation;
-  if (operation == UNC_OP_UPDATE) {
-    result_code = UpdateConfigVal(ikey, UPLL_DT_CANDIDATE, dmi);
-    UPLL_LOG_TRACE("UpdateConfigVal returned %d", result_code);
-  }
   return result_code;
 }
 
@@ -189,8 +244,8 @@ bool VtunnelIfMoMgr::IsValidKey(void *key, uint64_t index) {
   switch (index) {
     case uudst::vtunnel_interface::kDbiVtnName:
       ret_val = ValidateKey(reinterpret_cast<char *>
-          (if_key->vtunnel_key.vtn_key.vtn_name),
-          kMinLenVtnName, kMaxLenVtnName);
+                            (if_key->vtunnel_key.vtn_key.vtn_name),
+                            kMinLenVtnName, kMaxLenVtnName);
       if (ret_val != UPLL_RC_SUCCESS) {
         UPLL_LOG_TRACE("VTN Name is not valid(%d)", ret_val);
         return false;
@@ -198,8 +253,8 @@ bool VtunnelIfMoMgr::IsValidKey(void *key, uint64_t index) {
       break;
     case uudst::vtunnel_interface::kDbiVtunnelName:
       ret_val = ValidateKey(reinterpret_cast<char *>
-          (if_key->vtunnel_key.vtunnel_name),
-          kMinLenVnodeName, kMaxLenVnodeName);
+                            (if_key->vtunnel_key.vtunnel_name),
+                            kMinLenVnodeName, kMaxLenVnodeName);
       if (ret_val != UPLL_RC_SUCCESS) {
         UPLL_LOG_TRACE("Vtunnel Name is not valid(%d)", ret_val);
         return false;
@@ -207,8 +262,8 @@ bool VtunnelIfMoMgr::IsValidKey(void *key, uint64_t index) {
       break;
     case uudst::vtunnel_interface::kDbiIfName:
       ret_val = ValidateKey(reinterpret_cast<char *>
-          (if_key->if_name),
-          kMinLenInterfaceName, kMaxLenInterfaceName);
+                            (if_key->if_name),
+                            kMinLenInterfaceName, kMaxLenInterfaceName);
       if (ret_val != UPLL_RC_SUCCESS) {
         UPLL_LOG_TRACE("Vtunnel IF Name is not valid(%d)", ret_val);
         return false;
@@ -222,42 +277,43 @@ bool VtunnelIfMoMgr::IsValidKey(void *key, uint64_t index) {
 }
 
 upll_rc_t VtunnelIfMoMgr::GetValid(void *val, uint64_t indx,
-    uint8_t *&valid,
-    upll_keytype_datatype_t dt_type, MoMgrTables tbl ) {
+                                   uint8_t *&valid,
+                                   upll_keytype_datatype_t dt_type,
+                                   MoMgrTables tbl ) {
   UPLL_FUNC_TRACE;
   if (val == NULL) return UPLL_RC_ERR_GENERIC;
   if (tbl == MAINTBL) {
     switch (indx) {
       case uudst::vtunnel_interface::kDbiOperStatus:
         valid = &(reinterpret_cast<val_vtunnel_if_st *>(val))->
-                valid[UPLL_IDX_IF_OPER_STATUS_VTNLI];
+            valid[UPLL_IDX_IF_OPER_STATUS_VTNLI];
         break;
       case uudst::vtunnel_interface::kDbiDownCount:
         valid = NULL;
         break;
       case uudst::vtunnel_interface::kDbiAdminStatus:
         valid = &(reinterpret_cast<val_vtunnel_if *>(val))->
-                valid[UPLL_IDX_ADMIN_ST_VTNL_IF];
+            valid[UPLL_IDX_ADMIN_ST_VTNL_IF];
         break;
       case uudst::vtunnel_interface::kDbiDesc:
         valid = &(reinterpret_cast<val_vtunnel_if *>(val))->
-                valid[UPLL_IDX_DESC_VTNL_IF];
+            valid[UPLL_IDX_DESC_VTNL_IF];
         break;
       case uudst::vtunnel_interface::kDbiValidPortMap:
         valid = &(reinterpret_cast<val_vtunnel_if *>(val))->
-          valid[UPLL_IDX_PORT_MAP_VTNL_IF];
+            valid[UPLL_IDX_PORT_MAP_VTNL_IF];
         break;
       case uudst::vtunnel_interface::kDbiLogicalPortId:
         valid = &(reinterpret_cast<val_vtunnel_if *>(val))->portmap.
-          valid[UPLL_IDX_LOGICAL_PORT_ID_PM];
+            valid[UPLL_IDX_LOGICAL_PORT_ID_PM];
         break;
       case uudst::vtunnel_interface::kDbiVlanId:
         valid = &(reinterpret_cast<val_vtunnel_if *>(val))->portmap.
-          valid[UPLL_IDX_VLAN_ID_PM];
+            valid[UPLL_IDX_VLAN_ID_PM];
         break;
       case uudst::vtunnel_interface::kDbiTagged:
         valid = &(reinterpret_cast<val_vtunnel_if *>(val))->portmap.
-          valid[UPLL_IDX_TAGGED_PM];
+            valid[UPLL_IDX_TAGGED_PM];
         break;
       default:
         return UPLL_RC_ERR_GENERIC;
@@ -267,18 +323,18 @@ upll_rc_t VtunnelIfMoMgr::GetValid(void *val, uint64_t indx,
 }
 
 upll_rc_t VtunnelIfMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
-    ConfigKeyVal *parent_key) {
+                                            ConfigKeyVal *parent_key) {
   UPLL_FUNC_TRACE;
   bool cfgval_ctrlr = false;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   key_vtunnel_if *vtunnel_key_if = static_cast<key_vtunnel_if *>
-    (ConfigKeyVal::Malloc(sizeof(key_vtunnel_if)));
+      (ConfigKeyVal::Malloc(sizeof(key_vtunnel_if)));
   if (vtunnel_key_if == NULL) return UPLL_RC_ERR_GENERIC;
   void *pkey;
   if (parent_key == NULL) {
     if (okey) delete okey;
     okey = new ConfigKeyVal(UNC_KT_VTUNNEL_IF, IpctSt::kIpcStKeyVtunnelIf,
-        vtunnel_key_if, NULL);
+                            vtunnel_key_if, NULL);
     return UPLL_RC_SUCCESS;
   } else {
     pkey = parent_key->get_key();
@@ -294,7 +350,7 @@ upll_rc_t VtunnelIfMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
     vtunnel_key_if = static_cast<key_vtunnel_if *>(okey->get_key());
   } else {
     okey = new ConfigKeyVal(UNC_KT_VTUNNEL_IF, IpctSt::kIpcStKeyVtunnelIf,
-        vtunnel_key_if, NULL);
+                            vtunnel_key_if, NULL);
     if (okey == NULL) {
       FREE_IF_NOT_NULL(vtunnel_key_if);
       return UPLL_RC_ERR_GENERIC;
@@ -304,17 +360,18 @@ upll_rc_t VtunnelIfMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
   switch (keytype) {
     case UNC_KT_VTN:
       uuu::upll_strncpy(vtunnel_key_if->vtunnel_key.vtn_key.vtn_name,
-          static_cast<key_vtn *>(pkey)->vtn_name, (kMaxLenVtnName+1));
+                        static_cast<key_vtn *>(pkey)->vtn_name,
+                        (kMaxLenVtnName+1));
       *(vtunnel_key_if->vtunnel_key.vtunnel_name) = *"";
       break;
     case UNC_KT_VTUNNEL:
       uuu::upll_strncpy(vtunnel_key_if->vtunnel_key.vtn_key.vtn_name,
-          static_cast<key_vtunnel *>
-          (pkey)->vtn_key.vtn_name,
-          (kMaxLenVtnName+1));
+                        static_cast<key_vtunnel *>
+                        (pkey)->vtn_key.vtn_name,
+                        (kMaxLenVtnName+1));
       uuu::upll_strncpy(vtunnel_key_if->vtunnel_key.vtunnel_name,
-          static_cast<key_vtunnel *>(pkey)->vtunnel_name,
-          (kMaxLenVnodeName+1));
+                        static_cast<key_vtunnel *>(pkey)->vtunnel_name,
+                        (kMaxLenVnodeName+1));
       break;
     case UNC_KT_VTUNNEL_IF:
       uuu::upll_strncpy(vtunnel_key_if->vtunnel_key.vtn_key.vtn_name,
@@ -357,7 +414,7 @@ upll_rc_t VtunnelIfMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
                             vnode_name, (kMaxLenVnodeName+1));
         if (if_name)
           uuu::upll_strncpy(vtunnel_key_if->if_name, if_name,
-                           (kMaxLenInterfaceName+1));
+                            (kMaxLenInterfaceName+1));
       }
     default:
       break;
@@ -371,21 +428,21 @@ upll_rc_t VtunnelIfMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
 }
 
 upll_rc_t VtunnelIfMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
-    ConfigKeyVal *ikey) {
+                                             ConfigKeyVal *ikey) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   key_vtunnel_if *pkey = reinterpret_cast<key_vtunnel_if *>
-                         ((ikey)?ikey->get_key():NULL);
+      ((ikey)?ikey->get_key():NULL);
   if (!pkey) return UPLL_RC_ERR_GENERIC;
 
   if (ikey->get_key_type() != UNC_KT_VTUNNEL_IF)
     return UPLL_RC_ERR_GENERIC;
   key_vtunnel *vtunnel_key = reinterpret_cast<key_vtunnel *>
-                             (ConfigKeyVal::Malloc(sizeof(key_vtunnel)));
+      (ConfigKeyVal::Malloc(sizeof(key_vtunnel)));
   if (!vtunnel_key) return UPLL_RC_ERR_GENERIC;
   uuu::upll_strncpy(vtunnel_key->vtn_key.vtn_name,
-                   (pkey)->vtunnel_key.vtn_key.vtn_name,
-                   (kMaxLenVtnName+1));
+                    (pkey)->vtunnel_key.vtn_key.vtn_name,
+                    (kMaxLenVtnName+1));
   uuu::upll_strncpy(vtunnel_key->vtunnel_name, (pkey)->vtunnel_key.vtunnel_name,
                     (kMaxLenVnodeName+1));
   if (okey) delete okey;
@@ -402,14 +459,15 @@ upll_rc_t VtunnelIfMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
 
 
 upll_rc_t VtunnelIfMoMgr::AllocVal(ConfigVal *&ck_val,
-    upll_keytype_datatype_t dt_type, MoMgrTables tbl) {
+                                   upll_keytype_datatype_t dt_type,
+                                   MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
   void *val;
   if (ck_val != NULL) return UPLL_RC_ERR_GENERIC;
   switch (tbl) {
     case MAINTBL:
       val = reinterpret_cast<void *>(ConfigKeyVal::Malloc
-            (sizeof(val_vtunnel_if)));
+                                     (sizeof(val_vtunnel_if)));
       if (!val) return UPLL_RC_ERR_GENERIC;
       ck_val = new ConfigVal(IpctSt::kIpcStValVtunnelIf, val);
       if (!ck_val) {
@@ -418,7 +476,7 @@ upll_rc_t VtunnelIfMoMgr::AllocVal(ConfigVal *&ck_val,
       }
       if (dt_type == UPLL_DT_STATE) {
         val = reinterpret_cast<void *>(ConfigKeyVal::Malloc
-              (sizeof(val_db_vtunnel_if_st)));
+                                       (sizeof(val_db_vtunnel_if_st)));
         if (!val) {
           delete ck_val;
           return UPLL_RC_ERR_GENERIC;
@@ -439,7 +497,7 @@ upll_rc_t VtunnelIfMoMgr::AllocVal(ConfigVal *&ck_val,
 }
 
 upll_rc_t VtunnelIfMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
-    ConfigKeyVal *&req, MoMgrTables tbl) {
+                                          ConfigKeyVal *&req, MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
   if (req == NULL) return UPLL_RC_ERR_GENERIC;
   if (okey != NULL) return UPLL_RC_ERR_GENERIC;
@@ -463,10 +521,11 @@ upll_rc_t VtunnelIfMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
     tmp = tmp->get_next_cfg_val();
   };
   if (tmp) {
-   if (tbl == MAINTBL) {
+    if (tbl == MAINTBL) {
       val_db_vtunnel_if_st *ival = reinterpret_cast<val_db_vtunnel_if_st *>
-                                (tmp->get_val());
-      val_db_vtunnel_if_st *val_db_vtunnel_if = reinterpret_cast<val_db_vtunnel_if_st *>
+          (tmp->get_val());
+      val_db_vtunnel_if_st *val_db_vtunnel_if =
+          reinterpret_cast<val_db_vtunnel_if_st *>
           (ConfigKeyVal::Malloc(sizeof(val_db_vtunnel_if_st)));
       if (!val_db_vtunnel_if) {
         delete tmp1;
@@ -501,8 +560,8 @@ upll_rc_t VtunnelIfMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
 }
 
 upll_rc_t VtunnelIfMoMgr::UpdateConfigVal(ConfigKeyVal *ikey,
-                                      upll_keytype_datatype_t datatype,
-                                      DalDmlIntf *dmi) {
+                                          upll_keytype_datatype_t datatype,
+                                          DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   ConfigKeyVal *okey = NULL;
@@ -512,7 +571,7 @@ upll_rc_t VtunnelIfMoMgr::UpdateConfigVal(ConfigKeyVal *ikey,
     return UPLL_RC_ERR_GENERIC;
   }
   val_vtunnel_if *vtunnelif_val = static_cast<val_vtunnel_if *>
-                                             (GetVal(ikey));
+      (GetVal(ikey));
   if (!vtunnelif_val) {
     UPLL_LOG_DEBUG("Value Structure is Null");
     return UPLL_RC_ERR_GENERIC;
@@ -533,7 +592,7 @@ upll_rc_t VtunnelIfMoMgr::UpdateConfigVal(ConfigKeyVal *ikey,
   GET_USER_DATA_FLAGS(okey, flag);
   if (vtunnelif_val->valid[UPLL_IDX_PORT_MAP_VTNL_IF] == UNC_VF_VALID ||
       vtunnelif_val->valid[UPLL_IDX_PORT_MAP_VTNL_IF]
-                                                 == UNC_VF_VALID_NO_VALUE) {
+      == UNC_VF_VALID_NO_VALUE) {
     if (flag & VIF_TYPE) {
       DELETE_IF_NOT_NULL(okey);
       UPLL_LOG_DEBUG("Interface is linked/bounded with Vlink. "
@@ -542,9 +601,9 @@ upll_rc_t VtunnelIfMoMgr::UpdateConfigVal(ConfigKeyVal *ikey,
     }
   }
   if (vtunnelif_val->valid[UPLL_IDX_PORT_MAP_VTNL_IF] ==
-                           UNC_VF_VALID_NO_VALUE) {
+      UNC_VF_VALID_NO_VALUE) {
     vtunnelif_val->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] =
-                                               UNC_VF_VALID_NO_VALUE;
+        UNC_VF_VALID_NO_VALUE;
     vtunnelif_val->portmap.valid[UPLL_IDX_VLAN_ID_PM] = UNC_VF_VALID_NO_VALUE;
     vtunnelif_val->portmap.valid[UPLL_IDX_TAGGED_PM] = UNC_VF_VALID_NO_VALUE;
     uuu::upll_strncpy(vtunnelif_val->portmap.logical_port_id, "\0", 1);
@@ -569,12 +628,12 @@ upll_rc_t VtunnelIfMoMgr::AdaptValToVtnService(ConfigKeyVal *ikey) {
     }
     while (cval) {
       if (IpctSt::kIpcStValVtunnelIf == cval->get_st_num()) {
-         // set admin status to valid no value
+        // set admin status to valid no value
         val_vtunnel_if *vtunnelif_val = reinterpret_cast<val_vtunnel_if *>
-                                        (GetVal(ikey));
+            (GetVal(ikey));
         if (vtunnelif_val->valid[UPLL_IDX_ADMIN_ST_VTNL_IF] == UNC_VF_INVALID)
           vtunnelif_val->valid[UPLL_IDX_ADMIN_ST_VTNL_IF] =
-                                                 UNC_VF_VALID_NO_VALUE;
+              UNC_VF_VALID_NO_VALUE;
 
         uint8_t vlink_flag = 0;
         GET_USER_DATA_FLAGS(ikey, vlink_flag);
@@ -584,12 +643,12 @@ upll_rc_t VtunnelIfMoMgr::AdaptValToVtnService(ConfigKeyVal *ikey) {
       }
       if (IpctSt::kIpcStValVtunnelIfSt == cval->get_st_num()) {
         val_vtunnel_if_st *vtunnelif_stval =
-                          reinterpret_cast<val_vtunnel_if_st *>
-                          (ConfigKeyVal::Malloc(sizeof(val_vtunnel_if_st)));
+            reinterpret_cast<val_vtunnel_if_st *>
+            (ConfigKeyVal::Malloc(sizeof(val_vtunnel_if_st)));
         val_db_vtunnel_if_st *db_vtunnelif_stval =
-                     reinterpret_cast<val_db_vtunnel_if_st *>(cval->get_val());
+            reinterpret_cast<val_db_vtunnel_if_st *>(cval->get_val());
         memcpy(vtunnelif_stval, &db_vtunnelif_stval->vtunnel_if_val_st,
-                                 sizeof(val_vtunnel_if_st));
+               sizeof(val_vtunnel_if_st));
         cval->SetVal(IpctSt::kIpcStValVtunnelIfSt, vtunnelif_stval);
       }
       cval = cval->get_next_cfg_val();
@@ -618,7 +677,7 @@ bool VtunnelIfMoMgr::CompareValidValue(void *&val1, void *val2,
   val_vtunnel_if_t *val_vtunnelif1 = reinterpret_cast<val_vtunnel_if_t *>(val1);
   val_vtunnel_if_t *val_vtunnelif2 = reinterpret_cast<val_vtunnel_if_t *>(val2);
   for (unsigned int loop = 0;
-      loop < sizeof(val_vtunnelif1->valid)/sizeof(uint8_t); ++loop ) {
+       loop < sizeof(val_vtunnelif1->valid)/sizeof(uint8_t); ++loop ) {
     if (UNC_VF_INVALID == val_vtunnelif1->valid[loop]
         && UNC_VF_VALID == val_vtunnelif2->valid[loop])
       val_vtunnelif1->valid[loop] = UNC_VF_VALID_NO_VALUE;
@@ -626,18 +685,18 @@ bool VtunnelIfMoMgr::CompareValidValue(void *&val1, void *val2,
   if (UNC_VF_VALID == val_vtunnelif1->valid[UPLL_IDX_DESC_VTNL_IF]
       && UNC_VF_VALID == val_vtunnelif2->valid[UPLL_IDX_DESC_VTNL_IF]) {
     if (!strcmp(reinterpret_cast<char*>(val_vtunnelif1->description),
-          reinterpret_cast<char*>(val_vtunnelif2->description)))
+                reinterpret_cast<char*>(val_vtunnelif2->description)))
       val_vtunnelif1->valid[UPLL_IDX_DESC_VTNL_IF] = UNC_VF_INVALID;
   }
   if (UNC_VF_INVALID != val_vtunnelif1->valid[UPLL_IDX_ADMIN_ST_VTNL_IF]
-       && UNC_VF_INVALID != val_vtunnelif2->valid[UPLL_IDX_ADMIN_ST_VTNL_IF]) {
+      && UNC_VF_INVALID != val_vtunnelif2->valid[UPLL_IDX_ADMIN_ST_VTNL_IF]) {
     if (val_vtunnelif1->admin_status == val_vtunnelif2->admin_status)
       val_vtunnelif1->valid[UPLL_IDX_ADMIN_ST_VTNL_IF] =
-                                           (copy_to_running)?UNC_VF_INVALID:
-                                            UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:
+          UNC_VF_VALUE_NOT_MODIFIED;
   }
   for (unsigned int loop = 0;
-      loop < sizeof(val_vtunnelif1->portmap.valid)/sizeof(uint8_t); ++loop ) {
+       loop < sizeof(val_vtunnelif1->portmap.valid)/sizeof(uint8_t); ++loop ) {
     if (UNC_VF_INVALID == val_vtunnelif1->portmap.valid[loop]
         && UNC_VF_VALID == val_vtunnelif2->portmap.valid[loop])
       val_vtunnelif1->portmap.valid[loop] = UNC_VF_VALID_NO_VALUE;
@@ -645,18 +704,18 @@ bool VtunnelIfMoMgr::CompareValidValue(void *&val1, void *val2,
   if (val_vtunnelif1->valid[UPLL_IDX_PORT_MAP_VTNL_IF] == UNC_VF_VALID
       && val_vtunnelif2->valid[UPLL_IDX_PORT_MAP_VTNL_IF] == UNC_VF_VALID) {
     if (memcmp(&(val_vtunnelif1->portmap), &(val_vtunnelif2->portmap),
-          sizeof(val_port_map_t))) {
+               sizeof(val_port_map_t))) {
       if (val_vtunnelif1->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] ==
           UNC_VF_VALID
           && val_vtunnelif2->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM]
           == UNC_VF_VALID) {
         if (!strcmp(reinterpret_cast<char *>
-              (val_vtunnelif1->portmap.logical_port_id),
-              reinterpret_cast<char *>
-              (val_vtunnelif2->portmap.logical_port_id)))
+                    (val_vtunnelif1->portmap.logical_port_id),
+                    reinterpret_cast<char *>
+                    (val_vtunnelif2->portmap.logical_port_id)))
           val_vtunnelif1->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] =
-                                           (copy_to_running)?UNC_VF_INVALID:
-                                            UNC_VF_VALUE_NOT_MODIFIED;
+              (copy_to_running)?UNC_VF_INVALID:
+              UNC_VF_VALUE_NOT_MODIFIED;
       }
       if (val_vtunnelif1->portmap.valid[UPLL_IDX_VLAN_ID_PM] !=
           UNC_VF_INVALID
@@ -664,8 +723,8 @@ bool VtunnelIfMoMgr::CompareValidValue(void *&val1, void *val2,
           UNC_VF_INVALID) {
         if (val_vtunnelif1->portmap.vlan_id == val_vtunnelif2->portmap.vlan_id)
           val_vtunnelif1->portmap.valid[UPLL_IDX_VLAN_ID_PM] =
-                                           (copy_to_running)?UNC_VF_INVALID:
-                                            UNC_VF_VALUE_NOT_MODIFIED;
+              (copy_to_running)?UNC_VF_INVALID:
+              UNC_VF_VALUE_NOT_MODIFIED;
       }
       if (val_vtunnelif1->portmap.valid[UPLL_IDX_TAGGED_PM] !=
           UNC_VF_INVALID
@@ -673,36 +732,36 @@ bool VtunnelIfMoMgr::CompareValidValue(void *&val1, void *val2,
           UNC_VF_INVALID) {
         if (val_vtunnelif1->portmap.tagged == val_vtunnelif2->portmap.tagged)
           val_vtunnelif1->portmap.valid[UPLL_IDX_TAGGED_PM] =
-                                           (copy_to_running)?UNC_VF_INVALID:
-                                            UNC_VF_VALUE_NOT_MODIFIED;
+              (copy_to_running)?UNC_VF_INVALID:
+              UNC_VF_VALUE_NOT_MODIFIED;
       }
     } else {
       val_vtunnelif1->valid[UPLL_IDX_PORT_MAP_VTNL_IF] =
-                                           (copy_to_running)?UNC_VF_INVALID:
-                                            UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:
+          UNC_VF_VALUE_NOT_MODIFIED;
       val_vtunnelif1->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] =
-                                           (copy_to_running)?UNC_VF_INVALID:
-                                            UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:
+          UNC_VF_VALUE_NOT_MODIFIED;
       val_vtunnelif1->portmap.valid[UPLL_IDX_VLAN_ID_PM] =
-                                           (copy_to_running)?UNC_VF_INVALID:
-                                            UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:
+          UNC_VF_VALUE_NOT_MODIFIED;
       val_vtunnelif1->portmap.valid[UPLL_IDX_TAGGED_PM] =
-                                           (copy_to_running)?UNC_VF_INVALID:
-                                            UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:
+          UNC_VF_VALUE_NOT_MODIFIED;
     }
   }
   if (!copy_to_running)
     val_vtunnelif1->valid[UPLL_IDX_DESC_VTNL_IF] = UNC_VF_INVALID;
   for (unsigned int loop = 0;
-      loop < sizeof(val_vtunnelif1->valid) / sizeof(uint8_t); ++loop) {
+       loop < sizeof(val_vtunnelif1->valid) / sizeof(uint8_t); ++loop) {
     if ((UNC_VF_VALID == (uint8_t) val_vtunnelif1->valid[loop]) ||
         (UNC_VF_VALID_NO_VALUE == (uint8_t) val_vtunnelif1->valid[loop])) {
       if (loop == UPLL_IDX_PORT_MAP_VTNL_IF) {
         for (unsigned int i = 0;
-          i < sizeof(val_vtunnelif1->portmap.valid) / sizeof(uint8_t); ++i) {
+             i < sizeof(val_vtunnelif1->portmap.valid) / sizeof(uint8_t); ++i) {
           if ((UNC_VF_VALID == (uint8_t) val_vtunnelif1->portmap.valid[i]) ||
-            (UNC_VF_VALID_NO_VALUE ==
-                            (uint8_t) val_vtunnelif1->portmap.valid[i])) {
+              (UNC_VF_VALID_NO_VALUE ==
+               (uint8_t) val_vtunnelif1->portmap.valid[i])) {
             invalid_attr = false;
             break;
           }
@@ -717,48 +776,48 @@ bool VtunnelIfMoMgr::CompareValidValue(void *&val1, void *val2,
 }
 
 upll_rc_t VtunnelIfMoMgr::UpdateConfigStatus(ConfigKeyVal *vtunnelif_keyval,
-    unc_keytype_operation_t op,
-    uint32_t driver_result,
-    ConfigKeyVal *upd_key,
-    DalDmlIntf *dmi,
-    ConfigKeyVal *ctrlr_key) {
+                                             unc_keytype_operation_t op,
+                                             uint32_t driver_result,
+                                             ConfigKeyVal *upd_key,
+                                             DalDmlIntf *dmi,
+                                             ConfigKeyVal *ctrlr_key) {
   UPLL_FUNC_TRACE;
   val_vtunnel_if_t *vtunnel_if_val =
-    static_cast<val_vtunnel_if_t *>(GetVal(vtunnelif_keyval));
+      static_cast<val_vtunnel_if_t *>(GetVal(vtunnelif_keyval));
   if (vtunnel_if_val == NULL) return UPLL_RC_ERR_GENERIC;
   unc_keytype_configstatus_t cs_status = (driver_result == UPLL_RC_SUCCESS)?
-                                          UNC_CS_APPLIED:UNC_CS_NOT_APPLIED;
+      UNC_CS_APPLIED:UNC_CS_NOT_APPLIED;
   UPLL_LOG_TRACE("DriverResult %d, ConfigStatus %d", driver_result, cs_status);
   UPLL_LOG_TRACE("%s", (vtunnelif_keyval->ToStrAll()).c_str());
   val_vtunnel_if_t *val_running = static_cast<val_vtunnel_if_t *>
-                                      (GetVal(upd_key));
+      (GetVal(upd_key));
   if (op == UNC_OP_CREATE) {
     vtunnel_if_val->cs_row_status = cs_status;
     val_db_vtunnel_if_st *vtunnel_db_valst = static_cast<val_db_vtunnel_if_st *>
-      (ConfigKeyVal::Malloc(sizeof(val_db_vtunnel_if_st)));
+        (ConfigKeyVal::Malloc(sizeof(val_db_vtunnel_if_st)));
     if (vtunnel_db_valst == NULL) return UPLL_RC_ERR_GENERIC;
     vtunnelif_keyval->AppendCfgVal(IpctSt::kIpcStValVtunnelIfSt,
-                                                        vtunnel_db_valst);
+                                   vtunnel_db_valst);
 #if 0
     upll_rc_t result_code = InitOperStatus<val_vtunnel_if_st,
-                              val_db_vtunnel_if_st>
-                             (vtunnelif_keyval,
-                              vtunnel_if_val->valid[UPLL_IDX_ADMIN_ST_VTNL_IF],
-                              vtunnel_if_val->admin_status,
-                              vtunnel_if_val->valid[UPLL_IDX_PORT_MAP_VTNL_IF],
-                              &vtunnel_if_val->portmap);
+              val_db_vtunnel_if_st>
+                  (vtunnelif_keyval,
+                   vtunnel_if_val->valid[UPLL_IDX_ADMIN_ST_VTNL_IF],
+                   vtunnel_if_val->admin_status,
+                   vtunnel_if_val->valid[UPLL_IDX_PORT_MAP_VTNL_IF],
+                   &vtunnel_if_val->portmap);
     if (result_code != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Error settiing oper status");
       return UPLL_RC_ERR_GENERIC;
     }
 #else
-      val_vtunnel_if_st *vnif_st = &vtunnel_db_valst->vtunnel_if_val_st;
-      if (!vnif_st) {
-        UPLL_LOG_DEBUG("Returning error\n");
-        return UPLL_RC_ERR_GENERIC;
-      }
-      vnif_st->oper_status = UPLL_OPER_STATUS_UP;
-      vnif_st->valid[UPLL_IDX_IF_OPER_STATUS_VTEPIS] = UNC_VF_VALID;
+    val_vtunnel_if_st *vnif_st = &vtunnel_db_valst->vtunnel_if_val_st;
+    if (!vnif_st) {
+      UPLL_LOG_DEBUG("Returning error\n");
+      return UPLL_RC_ERR_GENERIC;
+    }
+    vnif_st->oper_status = UPLL_OPER_STATUS_UP;
+    vnif_st->valid[UPLL_IDX_IF_OPER_STATUS_VTEPIS] = UNC_VF_VALID;
 #endif
     vtunnel_db_valst->down_count = 0;
   } else if (op == UNC_OP_UPDATE) {
@@ -766,13 +825,13 @@ upll_rc_t VtunnelIfMoMgr::UpdateConfigStatus(ConfigKeyVal *vtunnelif_keyval,
     CompareValidValue(val, GetVal(upd_key), true);
     UPLL_LOG_TRACE("%s", (upd_key->ToStrAll()).c_str());
     vtunnel_if_val->cs_row_status =
-                    val_running->cs_row_status;
+        val_running->cs_row_status;
   } else {
     return UPLL_RC_ERR_GENERIC;
   }
   for (unsigned int loop = 0; loop <
-      sizeof(vtunnel_if_val->valid) / sizeof(vtunnel_if_val->valid[0]);
-      ++loop) {
+       sizeof(vtunnel_if_val->valid) / sizeof(vtunnel_if_val->valid[0]);
+       ++loop) {
     if ((UNC_VF_VALID == (uint8_t) vtunnel_if_val->valid[loop])
         || (UNC_VF_VALID_NO_VALUE == (uint8_t) vtunnel_if_val->valid[loop])) {
       if (loop == UPLL_IDX_DESC_VTNL_IF)
@@ -781,18 +840,18 @@ upll_rc_t VtunnelIfMoMgr::UpdateConfigStatus(ConfigKeyVal *vtunnelif_keyval,
         vtunnel_if_val->cs_attr[loop] = cs_status;
     } else if ((UNC_VF_INVALID == vtunnel_if_val->valid[loop]) &&
                (UNC_OP_CREATE == op)) {
-        vtunnel_if_val->cs_attr[loop] = UNC_CS_APPLIED;
+      vtunnel_if_val->cs_attr[loop] = UNC_CS_APPLIED;
     } else if ((vtunnel_if_val->valid[loop] == UNC_VF_INVALID) &&
-             (UNC_OP_UPDATE == op)) {
+               (UNC_OP_UPDATE == op)) {
       vtunnel_if_val->cs_attr[loop] =
-                     val_running->cs_attr[loop];
+          val_running->cs_attr[loop];
     }
   }
   for (unsigned int loop = 0;
        loop < sizeof(vtunnel_if_val->portmap.valid)/
-              sizeof(vtunnel_if_val->portmap.valid[0]); ++loop ) {
+       sizeof(vtunnel_if_val->portmap.valid[0]); ++loop ) {
     if ((UNC_VF_VALID == vtunnel_if_val->portmap.valid[loop])
-     || (UNC_VF_VALID_NO_VALUE == vtunnel_if_val->portmap.valid[loop]))
+        || (UNC_VF_VALID_NO_VALUE == vtunnel_if_val->portmap.valid[loop]))
       vtunnel_if_val->portmap.cs_attr[loop] = cs_status;
     else if ((UNC_VF_INVALID == vtunnel_if_val->portmap.valid[loop]) &&
              (UNC_OP_CREATE == op))
@@ -800,7 +859,7 @@ upll_rc_t VtunnelIfMoMgr::UpdateConfigStatus(ConfigKeyVal *vtunnelif_keyval,
     else if ((UNC_VF_INVALID == vtunnel_if_val->portmap.valid[loop]) &&
              (UNC_OP_UPDATE == op))
       vtunnel_if_val->portmap.cs_attr[loop] =
-                     val_running->portmap.cs_attr[loop];
+          val_running->portmap.cs_attr[loop];
   }
   return UPLL_RC_SUCCESS;
 }
@@ -808,30 +867,32 @@ upll_rc_t VtunnelIfMoMgr::UpdateConfigStatus(ConfigKeyVal *vtunnelif_keyval,
 upll_rc_t VtunnelIfMoMgr::UpdateAuditConfigStatus(
     unc_keytype_configstatus_t cs_status,
     uuc::UpdateCtrlrPhase phase,
-    ConfigKeyVal *&ckv_running) {
+    ConfigKeyVal *&ckv_running,
+    DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_vtunnel_if_t *val;
   val = (ckv_running != NULL)?reinterpret_cast<val_vtunnel_if_t *>
-    (GetVal(ckv_running)):NULL;
+      (GetVal(ckv_running)):NULL;
   if (NULL == val) {
     return UPLL_RC_ERR_GENERIC;
   }
   if (uuc::kUpllUcpCreate == phase )
     val->cs_row_status = cs_status;
   if ((uuc::kUpllUcpUpdate == phase) &&
-           (val->cs_row_status == UNC_CS_INVALID ||
-            val->cs_row_status == UNC_CS_NOT_APPLIED))
+      (val->cs_row_status == UNC_CS_INVALID ||
+       val->cs_row_status == UNC_CS_NOT_APPLIED))
     val->cs_row_status = cs_status;
   for (unsigned int loop = 0; loop < sizeof(val->valid)/sizeof(uint8_t);
-      ++loop ) {
+       ++loop ) {
     if ((cs_status == UNC_CS_INVALID && UNC_VF_VALID == val->valid[loop]) ||
-         cs_status == UNC_CS_APPLIED)
+        cs_status == UNC_CS_APPLIED)
       val->cs_attr[loop] = cs_status;
   }
   for (unsigned int loop = 0;
        loop < sizeof(val->portmap.valid) / sizeof(uint8_t); ++loop) {
     if ((cs_status == UNC_CS_INVALID &&
-                      UNC_VF_VALID == val->portmap.valid[loop])
+         UNC_VF_VALID == val->portmap.valid[loop])
         || cs_status == UNC_CS_APPLIED)
       val->portmap.cs_attr[loop] = cs_status;
   }
@@ -839,7 +900,7 @@ upll_rc_t VtunnelIfMoMgr::UpdateAuditConfigStatus(
 }
 
 upll_rc_t VtunnelIfMoMgr::ValidateMessage(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey) {
+                                          ConfigKeyVal *ikey) {
   UPLL_FUNC_TRACE;
 
   upll_rc_t ret_val = UPLL_RC_ERR_GENERIC;
@@ -854,13 +915,13 @@ upll_rc_t VtunnelIfMoMgr::ValidateMessage(IpcReqRespHeader *req,
   }
   if (ikey->get_st_num() != IpctSt::kIpcStKeyVtunnelIf) {
     UPLL_LOG_DEBUG("Invalid structure received.Expected struct-"
-        "kIpcStKeyVtunnelIf, received struct -%s ",
-        reinterpret_cast<const char *>
-        (IpctSt::GetIpcStdef(ikey->get_st_num())));
+                   "kIpcStKeyVtunnelIf, received struct -%s ",
+                   reinterpret_cast<const char *>
+                   (IpctSt::GetIpcStdef(ikey->get_st_num())));
     return UPLL_RC_ERR_BAD_REQUEST;
   }
   key_vtunnel_if_t *key_vtunnel_if = reinterpret_cast<key_vtunnel_if_t *>
-    (ikey->get_key());
+      (ikey->get_key());
 
   uint32_t dt_type = req->datatype;
   uint32_t operation = req->operation;
@@ -877,7 +938,8 @@ upll_rc_t VtunnelIfMoMgr::ValidateMessage(IpcReqRespHeader *req,
       if ((ikey->get_cfg_val()) &&
           (ikey->get_cfg_val()->get_st_num() == IpctSt::kIpcStValVtunnelIf)) {
         val_vtunnel_if =
-          reinterpret_cast<val_vtunnel_if_t *> (ikey->get_cfg_val()->get_val());
+            reinterpret_cast<val_vtunnel_if_t *>
+            (ikey->get_cfg_val()->get_val());
       }
       if (val_vtunnel_if != NULL) {
         ret_val = ValidateVTunnelIfValue(val_vtunnel_if, operation);
@@ -891,12 +953,13 @@ upll_rc_t VtunnelIfMoMgr::ValidateMessage(IpcReqRespHeader *req,
         return UPLL_RC_ERR_BAD_REQUEST;
       }
     } else if ((operation == UNC_OP_CREATE) &&
-        (dt_type == UPLL_DT_CANDIDATE)) {
+               (dt_type == UPLL_DT_CANDIDATE)) {
       val_vtunnel_if_t *val_vtunnel_if = NULL;
       if ((ikey->get_cfg_val()) &&
           (ikey->get_cfg_val()->get_st_num() == IpctSt::kIpcStValVtunnelIf)) {
         val_vtunnel_if =
-          reinterpret_cast<val_vtunnel_if_t *> (ikey->get_cfg_val()->get_val());
+            reinterpret_cast<val_vtunnel_if_t *>
+            (ikey->get_cfg_val()->get_val());
       }
       if (val_vtunnel_if != NULL) {
         ret_val = ValidateVTunnelIfValue(val_vtunnel_if, operation);
@@ -910,13 +973,13 @@ upll_rc_t VtunnelIfMoMgr::ValidateMessage(IpcReqRespHeader *req,
         return UPLL_RC_SUCCESS;
       }
     } else if (((operation == UNC_OP_READ) ||
-          (operation == UNC_OP_READ_SIBLING) ||
-          (operation == UNC_OP_READ_SIBLING_BEGIN) ||
-          (operation == UNC_OP_READ_SIBLING_COUNT)) &&
-        ((dt_type == UPLL_DT_CANDIDATE) ||
-         ((dt_type == UPLL_DT_RUNNING) ||
-          (dt_type == UPLL_DT_STARTUP) ||
-          (dt_type == UPLL_DT_STATE)))) {
+                (operation == UNC_OP_READ_SIBLING) ||
+                (operation == UNC_OP_READ_SIBLING_BEGIN) ||
+                (operation == UNC_OP_READ_SIBLING_COUNT)) &&
+               ((dt_type == UPLL_DT_CANDIDATE) ||
+                ((dt_type == UPLL_DT_RUNNING) ||
+                 (dt_type == UPLL_DT_STARTUP) ||
+                 (dt_type == UPLL_DT_STATE)))) {
       if (option1 == UNC_OPT1_NORMAL) {
         if (option2 == UNC_OPT2_NONE) {
           val_vtunnel_if_t *val_vtunnel_if = NULL;
@@ -924,8 +987,8 @@ upll_rc_t VtunnelIfMoMgr::ValidateMessage(IpcReqRespHeader *req,
               (ikey->get_cfg_val()->get_st_num() ==
                IpctSt::kIpcStValVtunnelIf)) {
             val_vtunnel_if =
-              reinterpret_cast<val_vtunnel_if_t *>
-              (ikey->get_cfg_val()->get_val());
+                reinterpret_cast<val_vtunnel_if_t *>
+                (ikey->get_cfg_val()->get_val());
           }
           if (val_vtunnel_if != NULL) {
             ret_val = ValidateVTunnelIfValue(val_vtunnel_if);
@@ -939,13 +1002,13 @@ upll_rc_t VtunnelIfMoMgr::ValidateMessage(IpcReqRespHeader *req,
             return UPLL_RC_SUCCESS;
           }
         } else if ((option2 == UNC_OPT2_NEIGHBOR) &&
-            (operation == UNC_OP_READ) &&
-            (dt_type == UPLL_DT_STATE)) {
+                   (operation == UNC_OP_READ) &&
+                   (dt_type == UPLL_DT_STATE)) {
           val_vtn_neighbor_t *val_vtn_neighbor = NULL;
           if ((ikey->get_cfg_val()) && ((ikey->get_cfg_val())->get_st_num() ==
-                IpctSt::kIpcStValVtnNeighbor)) {
+                                        IpctSt::kIpcStValVtnNeighbor)) {
             val_vtn_neighbor = reinterpret_cast <val_vtn_neighbor_t *>
-              (ikey->get_cfg_val()->get_val());
+                (ikey->get_cfg_val()->get_val());
           }
           if (val_vtn_neighbor != NULL) {
             ret_val = ValidateVtnNeighborValue(val_vtn_neighbor);
@@ -968,18 +1031,18 @@ upll_rc_t VtunnelIfMoMgr::ValidateMessage(IpcReqRespHeader *req,
       }
 
     } else if ((operation == UNC_OP_DELETE) ||
-        (operation == UNC_OP_READ_SIBLING_COUNT) ||
-        (((operation == UNC_OP_READ_NEXT) ||
-        (operation == UNC_OP_READ_BULK)) &&
-        ((dt_type == UPLL_DT_CANDIDATE) ||
-          (dt_type == UPLL_DT_RUNNING) ||
-          (dt_type == UPLL_DT_STARTUP)))) {
+               (operation == UNC_OP_READ_SIBLING_COUNT) ||
+               (((operation == UNC_OP_READ_NEXT) ||
+                 (operation == UNC_OP_READ_BULK)) &&
+                ((dt_type == UPLL_DT_CANDIDATE) ||
+                 (dt_type == UPLL_DT_RUNNING) ||
+                 (dt_type == UPLL_DT_STARTUP)))) {
       UPLL_LOG_TRACE("Value structure is none for this operation:%d",
-          operation);
+                     operation);
       return UPLL_RC_SUCCESS;
     } else {
       UPLL_LOG_DEBUG("Invalid datatype(%d) and operation(%d)", dt_type,
-          operation);
+                     operation);
       return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
     }
   }
@@ -992,87 +1055,87 @@ upll_rc_t VtunnelIfMoMgr::ValidateVTunnelIfValue(
   upll_rc_t ret_val = UPLL_RC_SUCCESS;
   if (val_vtunnel_if->valid[UPLL_IDX_DESC_VTNL_IF] == UNC_VF_VALID) {
     if (!ValidateDesc(val_vtunnel_if->description,
-        kMinLenDescription, kMaxLenDescription)) {
+                      kMinLenDescription, kMaxLenDescription)) {
       UPLL_LOG_DEBUG(
           "Syntax check failed.Desc- (%s)", val_vtunnel_if->description);
       return ret_val;
     }
   } else if ((val_vtunnel_if->valid[UPLL_IDX_DESC_VTNL_IF] ==
-        UNC_VF_VALID_NO_VALUE) &&
-      ((operation == UNC_OP_UPDATE) || (operation == UNC_OP_CREATE))) {
+              UNC_VF_VALID_NO_VALUE) &&
+             ((operation == UNC_OP_UPDATE) || (operation == UNC_OP_CREATE))) {
     val_vtunnel_if->description[0] = '\0';
   }
 
   if (val_vtunnel_if->valid[UPLL_IDX_ADMIN_ST_VTNL_IF] == UNC_VF_VALID) {
     if (!ValidateNumericRange(val_vtunnel_if->admin_status,
-          (uint8_t) UPLL_ADMIN_ENABLE,
-          (uint8_t) UPLL_ADMIN_DISABLE, true, true)) {
+                              (uint8_t) UPLL_ADMIN_ENABLE,
+                              (uint8_t) UPLL_ADMIN_DISABLE, true, true)) {
       UPLL_LOG_DEBUG(
           "Syntax check failed.Admin_status- %d", val_vtunnel_if->admin_status);
       return ret_val;
     }
   } else if ((val_vtunnel_if->valid[UPLL_IDX_ADMIN_ST_VTNL_IF] ==
-        UNC_VF_VALID_NO_VALUE) &&
-      ((operation == UNC_OP_UPDATE) || (operation == UNC_OP_CREATE))) {
+              UNC_VF_VALID_NO_VALUE) &&
+             ((operation == UNC_OP_UPDATE) || (operation == UNC_OP_CREATE))) {
     val_vtunnel_if->admin_status = UPLL_ADMIN_ENABLE;
   } else if (
-         (val_vtunnel_if->valid[UPLL_IDX_ADMIN_ST_VTNL_IF] == UNC_VF_INVALID)
-                                             && (operation == UNC_OP_CREATE)) {
-      val_vtunnel_if->valid[UPLL_IDX_ADMIN_ST_VTNL_IF] = UNC_VF_VALID_NO_VALUE;
-      val_vtunnel_if->admin_status = UPLL_ADMIN_ENABLE;
+      (val_vtunnel_if->valid[UPLL_IDX_ADMIN_ST_VTNL_IF] == UNC_VF_INVALID)
+      && (operation == UNC_OP_CREATE)) {
+    val_vtunnel_if->valid[UPLL_IDX_ADMIN_ST_VTNL_IF] = UNC_VF_VALID_NO_VALUE;
+    val_vtunnel_if->admin_status = UPLL_ADMIN_ENABLE;
   }
   if (val_vtunnel_if->valid[UPLL_IDX_PORT_MAP_VTNL_IF] == UNC_VF_VALID) {
     if (val_vtunnel_if->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM]
         == UNC_VF_VALID) {
       if (!ValidateStringRange(
-            reinterpret_cast<char *>(val_vtunnel_if->portmap.logical_port_id),
-            kMinLenLogicalPortId, kMaxLenLogicalPortId)) {
+              reinterpret_cast<char *>(val_vtunnel_if->portmap.logical_port_id),
+              kMinLenLogicalPortId, kMaxLenLogicalPortId)) {
         UPLL_LOG_DEBUG("Logical Port id syntax check failed."
-            "Received Logical Port Id - %s",
-            val_vtunnel_if->portmap.logical_port_id);
+                       "Received Logical Port Id - %s",
+                       val_vtunnel_if->portmap.logical_port_id);
         return UPLL_RC_ERR_CFG_SYNTAX;
       }
       if (toupper(val_vtunnel_if->portmap.logical_port_id[0]) == 'S'
           && toupper(val_vtunnel_if->portmap.logical_port_id[1]) == 'W') {
         UPLL_LOG_DEBUG("Invalid logical_port_id - %s",
-            val_vtunnel_if->portmap.logical_port_id);
+                       val_vtunnel_if->portmap.logical_port_id);
         return UPLL_RC_ERR_CFG_SYNTAX;
       }
     } else if (val_vtunnel_if->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] ==
-        UNC_VF_VALID_NO_VALUE
-        && (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE)) {
+               UNC_VF_VALID_NO_VALUE
+               && (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE)) {
       uuu::upll_strncpy(val_vtunnel_if->portmap.logical_port_id, " ",
-          kMaxLenLogicalPortId+1);
+                        kMaxLenLogicalPortId+1);
     }
     if (val_vtunnel_if->portmap.valid[UPLL_IDX_VLAN_ID_PM] == UNC_VF_VALID) {
       if ((val_vtunnel_if->portmap.vlan_id != 0xFFFF) &&
           !ValidateNumericRange(val_vtunnel_if->portmap.vlan_id,
-            (uint16_t) kMinVlanId, (uint16_t) kMaxVlanId,
-            true, true)) {
+                                (uint16_t) kMinVlanId, (uint16_t) kMaxVlanId,
+                                true, true)) {
         UPLL_LOG_DEBUG("Vlan Id Number check failed."
-            "Received vlan_id - %d",
-            val_vtunnel_if->portmap.vlan_id);
+                       "Received vlan_id - %d",
+                       val_vtunnel_if->portmap.vlan_id);
         return UPLL_RC_ERR_CFG_SYNTAX;
       }
     } else if (val_vtunnel_if->portmap.valid[UPLL_IDX_VLAN_ID_PM]
-        == UNC_VF_VALID_NO_VALUE
-        && (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE)) {
+               == UNC_VF_VALID_NO_VALUE
+               && (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE)) {
       val_vtunnel_if->portmap.vlan_id = 0;
     }
     if (val_vtunnel_if->portmap.valid[UPLL_IDX_TAGGED_PM] == UNC_VF_VALID) {
       if (!ValidateNumericRange((uint8_t) val_vtunnel_if->portmap.tagged,
-            (uint8_t) UPLL_VLAN_UNTAGGED,
-            (uint8_t) UPLL_VLAN_TAGGED, true, true)) {
+                                (uint8_t) UPLL_VLAN_UNTAGGED,
+                                (uint8_t) UPLL_VLAN_TAGGED, true, true)) {
         UPLL_LOG_DEBUG("Tagged Numeric range check failed."
-            "Received Tag - %d",
-            val_vtunnel_if->portmap.tagged);
+                       "Received Tag - %d",
+                       val_vtunnel_if->portmap.tagged);
         return UPLL_RC_ERR_CFG_SYNTAX;
       }
     } else if (((val_vtunnel_if->portmap.valid[UPLL_IDX_TAGGED_PM]
-        == UNC_VF_VALID_NO_VALUE) ||
-              (val_vtunnel_if->portmap.valid[UPLL_IDX_TAGGED_PM]
-        == UNC_VF_INVALID))
-        && (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE)) {
+                 == UNC_VF_VALID_NO_VALUE) ||
+                (val_vtunnel_if->portmap.valid[UPLL_IDX_TAGGED_PM]
+                 == UNC_VF_INVALID))
+               && (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE)) {
       if (val_vtunnel_if->portmap.valid[UPLL_IDX_VLAN_ID_PM] == UNC_VF_VALID)
         val_vtunnel_if->portmap.tagged = UPLL_VLAN_TAGGED;
       else
@@ -1080,9 +1143,9 @@ upll_rc_t VtunnelIfMoMgr::ValidateVTunnelIfValue(
       val_vtunnel_if->portmap.valid[UPLL_IDX_TAGGED_PM] = UNC_VF_VALID;
     }
   } else if ((val_vtunnel_if->valid[UPLL_IDX_PORT_MAP_VTNL_IF] ==
-        UNC_VF_VALID_NO_VALUE)
-      && (operation == UNC_OP_UPDATE || operation == UNC_OP_CREATE)) {
-      memset(&(val_vtunnel_if->portmap), 0, sizeof(val_vtunnel_if->portmap));
+              UNC_VF_VALID_NO_VALUE)
+             && (operation == UNC_OP_UPDATE || operation == UNC_OP_CREATE)) {
+    memset(&(val_vtunnel_if->portmap), 0, sizeof(val_vtunnel_if->portmap));
   }
 
   return UPLL_RC_SUCCESS;
@@ -1093,7 +1156,7 @@ upll_rc_t VtunnelIfMoMgr::ValidateVTunnelIfKey(
   UPLL_FUNC_TRACE;
   upll_rc_t ret_val = UPLL_RC_SUCCESS;
   ret_val = ValidateKey(
-  reinterpret_cast<char *>(key_vtunnel_if->vtunnel_key.vtn_key.vtn_name),
+      reinterpret_cast<char *>(key_vtunnel_if->vtunnel_key.vtn_key.vtn_name),
       kMinLenVtnName, kMaxLenVtnName);
   if (ret_val != UPLL_RC_SUCCESS) {
     UPLL_LOG_INFO("Vtn Name syntax check failed."
@@ -1106,17 +1169,17 @@ upll_rc_t VtunnelIfMoMgr::ValidateVTunnelIfKey(
       kMinLenVnodeName, kMaxLenVnodeName);
   if (ret_val != UPLL_RC_SUCCESS) {
     UPLL_LOG_INFO("Vtunnel Name syntax check failed."
-                "Received Vtunnel Name -%s",
-                key_vtunnel_if->vtunnel_key.vtunnel_name);
+                  "Received Vtunnel Name -%s",
+                  key_vtunnel_if->vtunnel_key.vtunnel_name);
     return UPLL_RC_ERR_CFG_SYNTAX;
   }
   if ((operation != UNC_OP_READ_SIBLING_BEGIN) &&
       (operation != UNC_OP_READ_SIBLING_COUNT)) {
     ret_val = ValidateKey(reinterpret_cast<char *>(key_vtunnel_if->if_name),
-              kMinLenInterfaceName, kMaxLenInterfaceName);
+                          kMinLenInterfaceName, kMaxLenInterfaceName);
     if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG(
-        "Syntax check failed.if_name- (%s)", key_vtunnel_if->if_name);
+          "Syntax check failed.if_name- (%s)", key_vtunnel_if->if_name);
       return ret_val;
     }
   } else {
@@ -1137,7 +1200,7 @@ upll_rc_t VtunnelIfMoMgr::ValidateVtnNeighborValue(
         kMinLenVnodeName, kMaxLenVnodeName);
     if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Syntax check failed.conn_vnode_name-(%s)",
-          val_vtn_neighbor->connected_vnode_name);
+                     val_vtn_neighbor->connected_vnode_name);
       return ret_val;
     }
   }
@@ -1148,7 +1211,7 @@ upll_rc_t VtunnelIfMoMgr::ValidateVtnNeighborValue(
         kMinLenInterfaceName, kMaxLenInterfaceName);
     if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Syntax check failed. connected_if_name-%s",
-          val_vtn_neighbor->connected_if_name);
+                     val_vtn_neighbor->connected_if_name);
       return ret_val;
     }
   }
@@ -1158,7 +1221,7 @@ upll_rc_t VtunnelIfMoMgr::ValidateVtnNeighborValue(
         kMinLenVlinkName, kMaxLenVlinkName);
     if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Syntax check failed.connected_vlink_name=%s",
-          val_vtn_neighbor->connected_vlink_name);
+                     val_vtn_neighbor->connected_vlink_name);
       return ret_val;
     }
   }
@@ -1171,7 +1234,7 @@ upll_rc_t VtunnelIfMoMgr::ValVTunnelIfAttributeSupportCheck(
   UPLL_FUNC_TRACE;
   if ((val_vtunnel_if->valid[UPLL_IDX_DESC_VTNL_IF] == UNC_VF_VALID)
       || (val_vtunnel_if->valid[UPLL_IDX_DESC_VTNL_IF]
-        == UNC_VF_VALID_NO_VALUE)) {
+          == UNC_VF_VALID_NO_VALUE)) {
     if (attrs[unc::capa::vtunnel_if::kCapDesc] == 0) {
       val_vtunnel_if->valid[UPLL_IDX_DESC_VTNL_IF] = UNC_VF_INVALID;
       if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
@@ -1182,10 +1245,10 @@ upll_rc_t VtunnelIfMoMgr::ValVTunnelIfAttributeSupportCheck(
   }
   if ((val_vtunnel_if->valid[UPLL_IDX_ADMIN_ST_VTNL_IF] == UNC_VF_VALID)
       || (val_vtunnel_if->valid[UPLL_IDX_ADMIN_ST_VTNL_IF]
-        == UNC_VF_VALID_NO_VALUE)) {
+          == UNC_VF_VALID_NO_VALUE)) {
     if (attrs[unc::capa::vtunnel_if::kCapAdminStatus] == 0) {
       val_vtunnel_if->valid[UPLL_IDX_ADMIN_ST_VTNL_IF] =
-        UNC_VF_INVALID;
+          UNC_VF_INVALID;
       if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
         UPLL_LOG_DEBUG("AdminStatus not supported in pfc controller");
         return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
@@ -1196,12 +1259,12 @@ upll_rc_t VtunnelIfMoMgr::ValVTunnelIfAttributeSupportCheck(
       (val_vtunnel_if->valid[UPLL_IDX_PORT_MAP_VTNL_IF] ==
        UNC_VF_VALID_NO_VALUE)) {
     if ((val_vtunnel_if->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] ==
-          UNC_VF_VALID)
+         UNC_VF_VALID)
         || (val_vtunnel_if->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM]
-          == UNC_VF_VALID_NO_VALUE)) {
+            == UNC_VF_VALID_NO_VALUE)) {
       if (attrs[unc::capa::vtunnel_if::kCapLogicalPortId] == 0) {
         val_vtunnel_if->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] =
-          UNC_VF_INVALID;
+            UNC_VF_INVALID;
         if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
           UPLL_LOG_DEBUG("portmap.swich_id attr is not supported by ctrlr ");
           return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
@@ -1210,10 +1273,10 @@ upll_rc_t VtunnelIfMoMgr::ValVTunnelIfAttributeSupportCheck(
     }
     if ((val_vtunnel_if->portmap.valid[UPLL_IDX_VLAN_ID_PM] == UNC_VF_VALID)
         || (val_vtunnel_if->portmap.valid[UPLL_IDX_VLAN_ID_PM]
-          == UNC_VF_VALID_NO_VALUE)) {
+            == UNC_VF_VALID_NO_VALUE)) {
       if (attrs[unc::capa::vtunnel_if::kCapVlanId] == 0) {
         val_vtunnel_if->portmap.valid[UPLL_IDX_VLAN_ID_PM] =
-          UNC_VF_INVALID;
+            UNC_VF_INVALID;
         if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
           UPLL_LOG_DEBUG("portmap.vlanid attr is not supported by ctrlr ");
           return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
@@ -1222,10 +1285,10 @@ upll_rc_t VtunnelIfMoMgr::ValVTunnelIfAttributeSupportCheck(
     }
     if ((val_vtunnel_if->portmap.valid[UPLL_IDX_TAGGED_PM] == UNC_VF_VALID)
         || (val_vtunnel_if->portmap.valid[UPLL_IDX_TAGGED_PM]
-          == UNC_VF_VALID_NO_VALUE)) {
+            == UNC_VF_VALID_NO_VALUE)) {
       if (attrs[unc::capa::vtunnel_if::kCapTagged] == 0) {
         val_vtunnel_if->portmap.valid[UPLL_IDX_TAGGED_PM] =
-          UNC_VF_INVALID;
+            UNC_VF_INVALID;
         if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
           UPLL_LOG_DEBUG("portmap.Tagged attr is not supported by ctrlr ");
           return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
@@ -1236,7 +1299,8 @@ upll_rc_t VtunnelIfMoMgr::ValVTunnelIfAttributeSupportCheck(
   return UPLL_RC_SUCCESS;
 }
 upll_rc_t VtunnelIfMoMgr::ValidateCapability(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey, const char *ctrlr_name) {
+                                             ConfigKeyVal *ikey,
+                                             const char *ctrlr_name) {
   UPLL_FUNC_TRACE;
   if (!ikey || !req) {
     UPLL_LOG_DEBUG("ConfigKeyVal / IpcReqRespHeader is Null");
@@ -1245,7 +1309,7 @@ upll_rc_t VtunnelIfMoMgr::ValidateCapability(IpcReqRespHeader *req,
 
   if (!ctrlr_name) {
     ctrlr_name = reinterpret_cast<char*>((reinterpret_cast<key_user_data_t *>
-                  (ikey->get_user_data()))->ctrlr_id);
+                                          (ikey->get_user_data()))->ctrlr_id);
     if (!ctrlr_name || !strlen(ctrlr_name)) {
       UPLL_LOG_DEBUG("Controller Name is NULL");
       return UPLL_RC_ERR_GENERIC;
@@ -1253,7 +1317,7 @@ upll_rc_t VtunnelIfMoMgr::ValidateCapability(IpcReqRespHeader *req,
   }
 
   UPLL_LOG_TRACE("ctrlr_name(%s), operation : (%d)",
-      ctrlr_name, req->operation);
+                 ctrlr_name, req->operation);
 
   bool result_code = false;
   uint32_t max_instance_count = 0;
@@ -1263,18 +1327,17 @@ upll_rc_t VtunnelIfMoMgr::ValidateCapability(IpcReqRespHeader *req,
   switch (req->operation) {
     case UNC_OP_CREATE:
       result_code = GetCreateCapability(ctrlr_name,
-          ikey->get_key_type(), &max_instance_count, &max_attrs, &attrs);
-      if (result_code && (max_instance_count != 0) &&
-          cur_instance_count >= max_instance_count) {
-        UPLL_LOG_DEBUG("[%s:%d:%s Instance count %d exceeds %d", __FILE__,
-            __LINE__, __FUNCTION__, cur_instance_count, max_instance_count);
-        return UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
-      }
+                                        ikey->get_key_type(),
+                                        &max_instance_count,
+                                        &max_attrs,
+                                        &attrs);
       break;
 
     case UNC_OP_UPDATE:
       result_code = GetUpdateCapability(ctrlr_name,
-          ikey->get_key_type(), &max_attrs, &attrs);
+                                        ikey->get_key_type(),
+                                        &max_attrs,
+                                        &attrs);
       break;
 
     case UNC_OP_READ:
@@ -1282,7 +1345,7 @@ upll_rc_t VtunnelIfMoMgr::ValidateCapability(IpcReqRespHeader *req,
     case UNC_OP_READ_SIBLING_BEGIN:
     case UNC_OP_READ_SIBLING_COUNT:
       result_code = GetReadCapability(ctrlr_name,
-          ikey->get_key_type(), &max_attrs, &attrs);
+                                      ikey->get_key_type(), &max_attrs, &attrs);
       break;
 
     default:
@@ -1292,15 +1355,15 @@ upll_rc_t VtunnelIfMoMgr::ValidateCapability(IpcReqRespHeader *req,
 
   if (!result_code) {
     UPLL_LOG_DEBUG("keytype(%d) is not supported by controller(%s) "
-        "for operation(%d)",
-        ikey->get_key_type(), ctrlr_name, req->operation);
+                   "for operation(%d)",
+                   ikey->get_key_type(), ctrlr_name, req->operation);
     return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
   }
   val_vtunnel_if_t *val_vtunnel_if = NULL;
   if ((ikey->get_cfg_val()) &&
       (ikey->get_cfg_val()->get_st_num() == IpctSt::kIpcStValVtunnelIf)) {
     val_vtunnel_if =
-      reinterpret_cast<val_vtunnel_if_t *> (ikey->get_cfg_val()->get_val());
+        reinterpret_cast<val_vtunnel_if_t *> (ikey->get_cfg_val()->get_val());
   }
 
   if (val_vtunnel_if) {
@@ -1309,7 +1372,7 @@ upll_rc_t VtunnelIfMoMgr::ValidateCapability(IpcReqRespHeader *req,
                                                req->operation);
     } else {
       UPLL_LOG_DEBUG("Attribute list is empty for operation %d",
-                                                req->operation);
+                     req->operation);
       return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
     }
   }
@@ -1317,7 +1380,8 @@ upll_rc_t VtunnelIfMoMgr::ValidateCapability(IpcReqRespHeader *req,
 }
 
 upll_rc_t VtunnelIfMoMgr::IsReferenced(ConfigKeyVal *ikey,
-    upll_keytype_datatype_t dt_type, DalDmlIntf *dmi) {
+                                       upll_keytype_datatype_t dt_type,
+                                       DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   ConfigKeyVal *okey = NULL;
   if (!ikey || !(ikey->get_key()) ||!dmi )
@@ -1344,9 +1408,10 @@ upll_rc_t VtunnelIfMoMgr::IsReferenced(ConfigKeyVal *ikey,
   return result_code;
 }
 
-upll_rc_t VtunnelIfMoMgr::PopulateDriverDeleteCkv(ConfigKeyVal *&vnpCkv,
-                                        DalDmlIntf *dmi,
-                                        upll_keytype_datatype_t dt_type) {
+upll_rc_t VtunnelIfMoMgr::PopulateDriverDeleteCkv(
+    ConfigKeyVal *&vnpCkv,
+    DalDmlIntf *dmi,
+    upll_keytype_datatype_t dt_type) {
   UPLL_FUNC_TRACE;
   upll_rc_t result = UPLL_RC_SUCCESS;
   ConfigKeyVal *vtunnelCkv = NULL;
@@ -1354,8 +1419,8 @@ upll_rc_t VtunnelIfMoMgr::PopulateDriverDeleteCkv(ConfigKeyVal *&vnpCkv,
     return UPLL_RC_ERR_GENERIC;
   }
   VtunnelMoMgr *vtunnelObj = reinterpret_cast<VtunnelMoMgr*>
-    (const_cast<MoManager *>(GetMoManager(UNC_KT_VTUNNEL)));
-  if (NULL == vtunnelObj) { 
+      (const_cast<MoManager *>(GetMoManager(UNC_KT_VTUNNEL)));
+  if (NULL == vtunnelObj) {
     UPLL_LOG_DEBUG("Unable to get UNC_KT_VTUNNEL object");
     return UPLL_RC_ERR_GENERIC;
   }
@@ -1375,13 +1440,13 @@ upll_rc_t VtunnelIfMoMgr::PopulateDriverDeleteCkv(ConfigKeyVal *&vnpCkv,
   result = vtunnelObj->ReadConfigDB(vtunnelCkv, dt_type, UNC_OP_READ,
                                     dbop, dmi, MAINTBL);
   if ((result != UPLL_RC_SUCCESS) || (!vtunnelCkv)
-                                  || (!(vtunnelCkv->get_cfg_val()))) {
+      || (!(vtunnelCkv->get_cfg_val()))) {
     UPLL_LOG_TRACE("Could not retrieve Vtunnel data. DB returned %d", result);
     DELETE_IF_NOT_NULL(vtunnelCkv);
     return UPLL_RC_ERR_GENERIC;
   }
   vnpdrv_val_vtunnel_if *vnp_vtunnel_if = static_cast<vnpdrv_val_vtunnel_if *>
-               (ConfigKeyVal::Malloc(sizeof(vnpdrv_val_vtunnel_if)));
+      (ConfigKeyVal::Malloc(sizeof(vnpdrv_val_vtunnel_if)));
   val_vtunnel *vtunnel_val = static_cast<val_vtunnel *>(GetVal(vtunnelCkv));
   vnp_vtunnel_if->label = vtunnel_val->label;
   vnp_vtunnel_if->valid[VNPDRV_IDX_LABEL_VTNL_IF] = UNC_VF_VALID;
@@ -1395,6 +1460,6 @@ upll_rc_t VtunnelIfMoMgr::PopulateDriverDeleteCkv(ConfigKeyVal *&vnpCkv,
   return result;
 }
 
-}  // namesapce vtn
+}  // namespace kt_momgr
 }  // namespace upll
 }  // namespace unc
index 9da5659ccff9e5878dc2aca732cc98622962dc7b..b9298c82b96789e52877642787e0a581dc8f288e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -29,62 +29,63 @@ class VtunnelIfMoMgr : public VnodeChildMoMgr {
  private:
   static BindInfo       vtunnel_if_bind_info[];
 
-  /* @brief      Returns admin and portmap information if portmap is 
-   *             valid. Else returns NULL for portmap 
-   *              
+  /* @brief      Returns admin and portmap information if portmap is
+   *             valid. Else returns NULL for portmap
+   *
    * @param[in]   ikey     Pointer to ConfigKeyVal
-   * @param[out]  valid_pm portmap is valid 
+   * @param[out]  valid_pm portmap is valid
    * @param[out]  pm       pointer to portmap informtation if valid_pm
-   * @param[out]  valid_admin admin_status valid value 
+   * @param[out]  valid_admin admin_status valid value
    * @param[out]  admin_status  value of admin_status
    *
    * @retval  UPLL_RC_SUCCESS      Completed successfully.
    * @retval  UPLL_RC_ERR_GENERIC  Generic failure.
-   * 
-   **/ 
+   *
+   **/
   virtual upll_rc_t GetPortMap(ConfigKeyVal *ikey, uint8_t &valid_pm,
-                                val_port_map_t *&pm,
-                                uint8_t &valid_admin,
-                                uint8_t &admin_status) {
-     UPLL_FUNC_TRACE;
-     if (ikey == NULL) return UPLL_RC_ERR_GENERIC;
-     val_vtunnel_if *ifval = reinterpret_cast<val_vtunnel_if *>
-                                                (GetVal(ikey));
-     if (!ifval) {
-       UPLL_LOG_DEBUG("Invalid param");
-       return UPLL_RC_ERR_GENERIC;
-     }
-     valid_pm = ifval->valid[UPLL_IDX_PORT_MAP_VTNL_IF];
-     if (valid_pm == UNC_VF_VALID)
-       pm = &ifval->portmap;
-     else
-       pm = NULL;
-     valid_admin = ifval->valid[UPLL_IDX_ADMIN_ST_VTNL_IF];
-     admin_status = ifval->admin_status;
-     return UPLL_RC_SUCCESS;
+                               val_port_map_t *&pm,
+                               uint8_t &valid_admin,
+                               uint8_t &admin_status) {
+    UPLL_FUNC_TRACE;
+    if (ikey == NULL) return UPLL_RC_ERR_GENERIC;
+    val_vtunnel_if *ifval = reinterpret_cast<val_vtunnel_if *>
+        (GetVal(ikey));
+    if (!ifval) {
+      UPLL_LOG_DEBUG("Invalid param");
+      return UPLL_RC_ERR_GENERIC;
+    }
+    valid_pm = ifval->valid[UPLL_IDX_PORT_MAP_VTNL_IF];
+    if (valid_pm == UNC_VF_VALID)
+      pm = &ifval->portmap;
+    else
+      pm = NULL;
+    valid_admin = ifval->valid[UPLL_IDX_ADMIN_ST_VTNL_IF];
+    admin_status = ifval->admin_status;
+    return UPLL_RC_SUCCESS;
   }
 
   /**
-   * @brief  Gets the valid array position of the variable in the value 
-   *         structure from the table in the specified configuration  
+   * @brief  Gets the valid array position of the variable in the value
+   *         structure from the table in the specified configuration
    *
-   * @param[in]     val      pointer to the value structure 
+   * @param[in]     val      pointer to the value structure
    * @param[in]     indx     database index for the variable
-   * @param[out]    valid    position of the variable in the valid array - 
+   * @param[out]    valid    position of the variable in the valid array -
    *                          NULL if valid does not exist.
    * @param[in]     dt_type  specifies the configuration
-   * @param[in]     tbl      specifies the table containing the given value 
+   * @param[in]     tbl      specifies the table containing the given value
    *
    **/
   upll_rc_t GetValid(void *val, uint64_t indx, uint8_t *&valid,
-           upll_keytype_datatype_t dt_type, MoMgrTables tbl);
+                     upll_keytype_datatype_t dt_type, MoMgrTables tbl);
 
   upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey) {
-    return UPLL_RC_SUCCESS;
+    UPLL_LOG_INFO("Not supported for this keytype. Returning Generic Error");
+    return UPLL_RC_ERR_GENERIC;
   }
   bool GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo,
-                                    int &nattr,
-                                    MoMgrTables tbl) {
+                            int &nattr,
+                            MoMgrTables tbl) {
     return true;
   }
   /**
@@ -97,12 +98,12 @@ class VtunnelIfMoMgr : public VnodeChildMoMgr {
    *
    **/
   bool FilterAttributes(void *&val1, void *val2, bool copy_to_running,
-                                unc_keytype_operation_t op);
+                        unc_keytype_operation_t op);
 
   /**
    * @brief  Compares the valid value between two database records.
    *        if both the values are same, update the valid flag for corresponding
-   *        attribute as invalid in the first record. 
+   *        attribute as invalid in the first record.
    *
    * @param[in/out]  val1   first record value instance.
    * @param[in]      val2   second record value instance.
@@ -115,18 +116,18 @@ class VtunnelIfMoMgr : public VnodeChildMoMgr {
                               DalDmlIntf *dmi,
                               IpcReqRespHeader *req);
   /**
-     * @brief  Duplicates the input configkeyval including the key and val.  
-     * based on the tbl specified.
-     *
-     * @param[in]  okey   Output Configkeyval - allocated within the function
-     * @param[in]  req    Input ConfigKeyVal to be duplicated.
-     * @param[in]  tbl    specifies if the val structure belongs to the main table/ controller table or rename table.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
+   * @brief  Duplicates the input configkeyval including the key and val.
+   * based on the tbl specified.
+   *
+   * @param[in]  okey   Output Configkeyval - allocated within the function
+   * @param[in]  req    Input ConfigKeyVal to be duplicated.
+   * @param[in]  tbl    specifies if the val structure belongs to the main table/ controller table or rename table.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
   upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey,
-                   ConfigKeyVal *&req, MoMgrTables tbl = MAINTBL);
+                            ConfigKeyVal *&req, MoMgrTables tbl = MAINTBL);
 
   /* @brief     To convert the value structure read from DB to
    *            VTNService during READ operations
@@ -139,53 +140,57 @@ class VtunnelIfMoMgr : public VnodeChildMoMgr {
   upll_rc_t AdaptValToVtnService(ConfigKeyVal *ikey);
 
   /**
-     * @brief  Allocates for the specified val in the given configuration in the     * specified table.   
-     *
-     * @param[in/out]  ck_val   Reference pointer to configval structure 
-     *                          allocated.      
-     * @param[in]      dt_type  specifies the configuration candidate/running/
-     *                          state 
-     * @param[in]      tbl      specifies if the corresponding table is the  
-     *                          main table / controller table or rename table.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
+   * @brief  Allocates for the specified val in the given configuration in the     * specified table.
+   *
+   * @param[in/out]  ck_val   Reference pointer to configval structure
+   *                          allocated.
+   * @param[in]      dt_type  specifies the configuration candidate/running/
+   *                          state
+   * @param[in]      tbl      specifies if the corresponding table is the
+   *                          main table / controller table or rename table.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
   upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
-          MoMgrTables tbl = MAINTBL);
-/**
-    * @brief      Method to get a configkeyval of a specified keytype from an input configkeyval
-    *
-    * @param[in/out]  okey                 pointer to output ConfigKeyVal 
-    * @param[in]      parent_key           pointer to the configkeyval from which the output configkey val is initialized.
-    *
-    * @retval         UPLL_RC_SUCCESS      Successfull completion.
-    * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-    */
+                     MoMgrTables tbl = MAINTBL);
+  /**
+   * @brief      Method to get a configkeyval of a specified keytype from an input configkeyval
+   *
+   * @param[in/out]  okey                 pointer to output ConfigKeyVal
+   * @param[in]      parent_key           pointer to the configkeyval from which the output configkey val is initialized.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   */
   upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey,
-      ConfigKeyVal *parent_key);
-/**
-    * @brief      Method to get a configkeyval of the parent keytype 
-    *
-    * @param[in/out]  okey           pointer to parent ConfigKeyVal 
-    * @param[in]      ikey           pointer to the child configkeyval from 
-    * which the parent configkey val is obtained.
-    *
-    * @retval         UPLL_RC_SUCCESS      Successfull completion.
-    * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-    **/
+                              ConfigKeyVal *parent_key);
+  /**
+   * @brief      Method to get a configkeyval of the parent keytype
+   *
+   * @param[in/out]  okey           pointer to parent ConfigKeyVal
+   * @param[in]      ikey           pointer to the child configkeyval from
+   * which the parent configkey val is obtained.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
   upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
 
-  /* @brief         Populate val_vtn_neighbor for the READ/READ_SIBLING operations  
-   *              
-   * @param[in/out] key   Pointer to the ConfigKeyVal Structure                    
+  upll_rc_t IsLogicalPortAndVlanIdInUse(ConfigKeyVal *ckv,
+                                        DalDmlIntf *dmi,
+                                        IpcReqRespHeader *req);
+
+  /* @brief         Populate val_vtn_neighbor for the READ/READ_SIBLING operations
+   *
+   * @param[in/out] key   Pointer to the ConfigKeyVal Structure
    * @param[in]     dmi    Pointer to the DalDmlIntf(DB Interface)
-   * 
+   *
    * @retval  UPLL_RC_SUCCESS                    Completed successfully.
    * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
    * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
    * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
-   * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist 
+   * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist
    *
    **/
   upll_rc_t PopulateDriverDeleteCkv(ConfigKeyVal *&vnpCkv,
@@ -193,16 +198,19 @@ class VtunnelIfMoMgr : public VnodeChildMoMgr {
                                     upll_keytype_datatype_t dt_type);
 
   /**
-     * @brief  Update config status for commit result and vote result.
-     *
-     * @param[in/out]  ckv_running  ConfigKeyVal instance.
-     * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
-     * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
-     *
-     **/
+   * @brief  Update config status for commit result and vote result.
+   *
+   * @param[in/out]  ckv_running  ConfigKeyVal instance.
+   * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
+   * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
+   * @param[in]      dmi          Pointer to the DalDmlIntf(DB Interface)
+   *
+   **/
   upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
-                                     uuc::UpdateCtrlrPhase phase,
-                                         ConfigKeyVal *&ckv_running);
+                                    uuc::UpdateCtrlrPhase phase,
+                                    ConfigKeyVal *&ckv_running,
+                                    DalDmlIntf *dmi);
+
   upll_rc_t UpdateConfigStatus(ConfigKeyVal *vtunnelif_keyval,
                                unc_keytype_operation_t op,
                                uint32_t result,
@@ -248,7 +256,7 @@ class VtunnelIfMoMgr : public VnodeChildMoMgr {
    * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
    */
   upll_rc_t ValidateVTunnelIfValue(val_vtunnel_if_t *val_vtunnel_if,
-      uint32_t operation = UNC_OP_INVALID);
+                                   uint32_t operation = UNC_OP_INVALID);
 
   /**
    * @Brief Validates the syntax for KT_VTUNNEL_IF keytype value structure.
@@ -278,7 +286,7 @@ class VtunnelIfMoMgr : public VnodeChildMoMgr {
    */
 
   upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-      const char * crtlr_name);
+                               const char * crtlr_name);
 
   /**
    * @Brief Checks if the specified key type and
@@ -295,7 +303,7 @@ class VtunnelIfMoMgr : public VnodeChildMoMgr {
    */
   upll_rc_t ValVTunnelIfAttributeSupportCheck(
       val_vtunnel_if_t *val_vtunnel_if,
-  const uint8_t* attrs, unc_keytype_operation_t operation);
+      const uint8_t* attrs, unc_keytype_operation_t operation);
 
   /* @brief         This is semantic check for KEY_VTUNNEL_IF key type
    *                in the update operation.
@@ -322,14 +330,14 @@ class VtunnelIfMoMgr : public VnodeChildMoMgr {
     delete[] table;
   }
   /**
-    * @brief      Method to check if individual portions of a key are valid
-    *
-    * @param[in/out]  ikey                 pointer to ConfigKeyVal referring to a UNC resource
-    * @param[in]      index                db index associated with the variable
-    *
-    * @retval         true                 input key is valid
-    * @retval         false                input key is invalid.
-    **/
+   * @brief      Method to check if individual portions of a key are valid
+   *
+   * @param[in/out]  ikey                 pointer to ConfigKeyVal referring to a UNC resource
+   * @param[in]      index                db index associated with the variable
+   *
+   * @retval         true                 input key is valid
+   * @retval         false                input key is invalid.
+   **/
   bool IsValidKey(void *tkey, uint64_t index);
 
   /* @brief         Updates vtunnelif structure
@@ -347,7 +355,7 @@ class VtunnelIfMoMgr : public VnodeChildMoMgr {
                             upll_keytype_datatype_t datatype,
                             DalDmlIntf *dmi);
 };
-}  // namesapce vtn
+}  // namespace kt_momgr
 }  // namespace upll
 }  // namespace unc
 #endif
index d0aab4f206ac03a05e2860bcac9c20a5b94f494c..aa3e75507963a1f21bdd4e3884b52a8c92dc90e1 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -47,7 +47,7 @@ BindInfo VtunnelMoMgr::vtunnel_bind_info[] = {
     offsetof(val_vtunnel, label), uud::kDalUint32, 1},
   { uudst::vtunnel::kDbiOperStatus, ST_VAL,
     offsetof(val_db_vtunnel_st,
-        vtunnel_val_st.oper_status),
+             vtunnel_val_st.oper_status),
     uud::kDalUint8, 1},
   { uudst::vtunnel::kDbiDownCount, ST_VAL,
     offsetof(val_db_vtunnel_st, down_count),
@@ -86,15 +86,15 @@ BindInfo VtunnelMoMgr::vtunnel_bind_info[] = {
 };
 
 unc_key_type_t VtunnelMoMgr::vtunnel_child[] = {
-    UNC_KT_VTUNNEL_IF
+  UNC_KT_VTUNNEL_IF
 };
 
 VtunnelMoMgr::VtunnelMoMgr() {
   UPLL_FUNC_TRACE;
   Table *tbl = new Table(uudst::kDbiVtunnelTbl, UNC_KT_VTUNNEL,
-      vtunnel_bind_info,
-      IpctSt::kIpcStKeyVtunnel, IpctSt::kIpcStValVtunnel,
-      uudst::vtunnel::kDbiVtunnelNumCols+2);
+                         vtunnel_bind_info,
+                         IpctSt::kIpcStKeyVtunnel, IpctSt::kIpcStValVtunnel,
+                         uudst::vtunnel::kDbiVtunnelNumCols+2);
   ntable = MAX_MOMGR_TBLS;
   table = new Table *[ntable];
   table[MAINTBL] = tbl;
@@ -114,8 +114,8 @@ bool VtunnelMoMgr::IsValidKey(void *key, uint64_t index) {
   switch (index) {
     case uudst::vtunnel::kDbiVtnName:
       ret_val = ValidateKey(reinterpret_cast<char *>
-          (vtun_key->vtn_key.vtn_name),
-          kMinLenVtnName, kMaxLenVtnName);
+                            (vtun_key->vtn_key.vtn_name),
+                            kMinLenVtnName, kMaxLenVtnName);
       if (ret_val != UPLL_RC_SUCCESS) {
         UPLL_LOG_TRACE("VTN Name is not valid(%d)", ret_val);
         return false;
@@ -123,7 +123,7 @@ bool VtunnelMoMgr::IsValidKey(void *key, uint64_t index) {
       break;
     case uudst::vtunnel::kDbiVtunnelName:
       ret_val = ValidateKey(reinterpret_cast<char *>(vtun_key->vtunnel_name),
-          kMinLenVnodeName, kMaxLenVnodeName);
+                            kMinLenVnodeName, kMaxLenVnodeName);
       if (ret_val != UPLL_RC_SUCCESS) {
         UPLL_LOG_TRACE("Vtunnel Name is not valid(%d)", ret_val);
         return false;
@@ -142,7 +142,7 @@ upll_rc_t VtunnelMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   void *pkey;
   key_vtunnel *vtunnel_key = static_cast<key_vtunnel *>
-               (ConfigKeyVal::Malloc(sizeof(key_vtunnel)));
+      (ConfigKeyVal::Malloc(sizeof(key_vtunnel)));
   if (vtunnel_key == NULL) return UPLL_RC_ERR_GENERIC;
   if (parent_key == NULL) {
     if (okey) delete okey;
@@ -163,7 +163,7 @@ upll_rc_t VtunnelMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
     vtunnel_key = static_cast<key_vtunnel *>(okey->get_key());
   } else {
     okey = new ConfigKeyVal(UNC_KT_VTUNNEL, IpctSt::kIpcStKeyVtunnel,
-        vtunnel_key, NULL);
+                            vtunnel_key, NULL);
     if (okey == NULL) {
       FREE_IF_NOT_NULL(vtunnel_key);
       return UPLL_RC_ERR_GENERIC;
@@ -173,17 +173,17 @@ upll_rc_t VtunnelMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
   switch (parent_key->get_key_type()) {
     case UNC_KT_VTUNNEL:
       uuu::upll_strncpy(vtunnel_key->vtunnel_name,
-          static_cast<key_vtunnel *>
-          (pkey)->vtunnel_name, (kMaxLenVnodeName+1));
+                        static_cast<key_vtunnel *>
+                        (pkey)->vtunnel_name, (kMaxLenVnodeName+1));
       uuu::upll_strncpy(vtunnel_key->vtn_key.vtn_name,
-          static_cast<key_vtunnel *>(pkey)->vtn_key.vtn_name,
-          (kMaxLenVtnName+1));
+                        static_cast<key_vtunnel *>(pkey)->vtn_key.vtn_name,
+                        (kMaxLenVtnName+1));
       break;
     case UNC_KT_VTN:
     default:
       uuu::upll_strncpy(vtunnel_key->vtn_key.vtn_name,
-          reinterpret_cast<key_vtn *>(pkey)->vtn_name,
-          (kMaxLenVtnName+1));
+                        reinterpret_cast<key_vtn *>(pkey)->vtn_name,
+                        (kMaxLenVtnName+1));
       *(vtunnel_key->vtunnel_name) = ' ';
       vtunnel_key->vtunnel_name[1] = '\0';
   }
@@ -192,7 +192,7 @@ upll_rc_t VtunnelMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
 }
 
 upll_rc_t VtunnelMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
-                             ConfigKeyVal *ikey ) {
+                                           ConfigKeyVal *ikey ) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
 
@@ -200,18 +200,18 @@ upll_rc_t VtunnelMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
   if (!pkey) return UPLL_RC_ERR_GENERIC;
   unc_key_type_t ikey_type = ikey->get_key_type();
   if (ikey_type != UNC_KT_VTUNNEL)
-     return UPLL_RC_ERR_GENERIC;
+    return UPLL_RC_ERR_GENERIC;
   key_vtn *vtn_key = static_cast<key_vtn *>
-                     (ConfigKeyVal::Malloc(sizeof(key_vtn)));
+      (ConfigKeyVal::Malloc(sizeof(key_vtn)));
   if (!vtn_key) return UPLL_RC_ERR_GENERIC;
   uuu::upll_strncpy(vtn_key->vtn_name,
-       reinterpret_cast<key_vtunnel *>(pkey)->vtn_key.vtn_name,
-       (kMaxLenVtnName+1));
+                    reinterpret_cast<key_vtunnel *>(pkey)->vtn_key.vtn_name,
+                    (kMaxLenVtnName+1));
   DELETE_IF_NOT_NULL(okey);
   okey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, vtn_key, NULL);
   if (okey == NULL) {
-     FREE_IF_NOT_NULL(vtn_key);
-     result_code = UPLL_RC_ERR_GENERIC;
+    FREE_IF_NOT_NULL(vtn_key);
+    result_code = UPLL_RC_ERR_GENERIC;
   } else {
     SET_USER_DATA(okey, ikey);
   }
@@ -220,7 +220,8 @@ upll_rc_t VtunnelMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
 
 
 upll_rc_t VtunnelMoMgr::AllocVal(ConfigVal *&ck_val,
-    upll_keytype_datatype_t dt_type, MoMgrTables tbl) {
+                                 upll_keytype_datatype_t dt_type,
+                                 MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
   void *val;
 
@@ -228,7 +229,7 @@ upll_rc_t VtunnelMoMgr::AllocVal(ConfigVal *&ck_val,
   switch (tbl) {
     case MAINTBL:
       val = reinterpret_cast<void *>
-        (ConfigKeyVal::Malloc(sizeof(val_vtunnel)));
+          (ConfigKeyVal::Malloc(sizeof(val_vtunnel)));
       if (!val) return UPLL_RC_ERR_GENERIC;
       ck_val = new ConfigVal(IpctSt::kIpcStValVtunnel, val);
       if (!ck_val) {
@@ -237,7 +238,7 @@ upll_rc_t VtunnelMoMgr::AllocVal(ConfigVal *&ck_val,
       }
       if (dt_type == UPLL_DT_STATE) {
         val = reinterpret_cast<void *>
-          (ConfigKeyVal::Malloc(sizeof(val_db_vtunnel_st)));
+            (ConfigKeyVal::Malloc(sizeof(val_db_vtunnel_st)));
         ConfigVal *ck_nxtval = new ConfigVal(IpctSt::kIpcStValVtunnelSt, val);
         if (!ck_nxtval) {
           delete ck_val;
@@ -253,60 +254,60 @@ upll_rc_t VtunnelMoMgr::AllocVal(ConfigVal *&ck_val,
 }
 
 upll_rc_t VtunnelMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
-                   ConfigKeyVal *&req, MoMgrTables tbl) {
+                                        ConfigKeyVal *&req, MoMgrTables tbl) {
   UPLL_FUNC_TRACE;
   if (req == NULL) return UPLL_RC_ERR_GENERIC;
   if (okey != NULL) return UPLL_RC_ERR_GENERIC;
   if (req->get_key_type() != UNC_KT_VTUNNEL)
-     return UPLL_RC_ERR_GENERIC;
+    return UPLL_RC_ERR_GENERIC;
   ConfigVal *tmp1 = NULL, *tmp = (req)->get_cfg_val();
 
   if (tmp) {
-      if (tbl == MAINTBL) {
-        val_vtunnel *ival = reinterpret_cast<val_vtunnel *>(GetVal(req));
-        val_vtunnel *vtunnel_val = reinterpret_cast<val_vtunnel *>
-                                   (ConfigKeyVal::Malloc(sizeof(val_vtunnel)));
-        memcpy(vtunnel_val, ival, sizeof(val_vtunnel));
-        tmp1 = new ConfigVal(IpctSt::kIpcStValVtunnel, vtunnel_val);
-        if (!tmp1) {
-          FREE_IF_NOT_NULL(vtunnel_val);
-          return UPLL_RC_ERR_GENERIC;
-        }
+    if (tbl == MAINTBL) {
+      val_vtunnel *ival = reinterpret_cast<val_vtunnel *>(GetVal(req));
+      val_vtunnel *vtunnel_val = reinterpret_cast<val_vtunnel *>
+          (ConfigKeyVal::Malloc(sizeof(val_vtunnel)));
+      memcpy(vtunnel_val, ival, sizeof(val_vtunnel));
+      tmp1 = new ConfigVal(IpctSt::kIpcStValVtunnel, vtunnel_val);
+      if (!tmp1) {
+        FREE_IF_NOT_NULL(vtunnel_val);
+        return UPLL_RC_ERR_GENERIC;
       }
-      tmp = tmp->get_next_cfg_val();
+    }
+    tmp = tmp->get_next_cfg_val();
   };
   if (tmp) {
-      if (tbl == MAINTBL) {
-        val_db_vtunnel_st *ival = static_cast<val_db_vtunnel_st *>
-                                  (tmp->get_val());
-        val_db_vtunnel_st *vtunnel_st = static_cast<val_db_vtunnel_st *>
-                           (ConfigKeyVal::Malloc(sizeof(val_db_vtunnel_st)));
-        if (!vtunnel_st) {
-          delete tmp1;
-          return UPLL_RC_ERR_GENERIC;
-        }
-        memcpy(vtunnel_st, ival, sizeof(val_db_vtunnel_st));
-        ConfigVal *tmp2 = new ConfigVal(IpctSt::kIpcStValVtunnelSt,
-                                        vtunnel_st);
-        if (!tmp2) {
-          delete tmp1;
-          FREE_IF_NOT_NULL(vtunnel_st);
-          return UPLL_RC_ERR_GENERIC;
-        }
-        tmp1->AppendCfgVal(tmp2);
+    if (tbl == MAINTBL) {
+      val_db_vtunnel_st *ival = static_cast<val_db_vtunnel_st *>
+          (tmp->get_val());
+      val_db_vtunnel_st *vtunnel_st = static_cast<val_db_vtunnel_st *>
+          (ConfigKeyVal::Malloc(sizeof(val_db_vtunnel_st)));
+      if (!vtunnel_st) {
+        delete tmp1;
+        return UPLL_RC_ERR_GENERIC;
       }
+      memcpy(vtunnel_st, ival, sizeof(val_db_vtunnel_st));
+      ConfigVal *tmp2 = new ConfigVal(IpctSt::kIpcStValVtunnelSt,
+                                      vtunnel_st);
+      if (!tmp2) {
+        delete tmp1;
+        FREE_IF_NOT_NULL(vtunnel_st);
+        return UPLL_RC_ERR_GENERIC;
+      }
+      tmp1->AppendCfgVal(tmp2);
+    }
   };
   void *tkey = (req != NULL)?(req)->get_key():NULL;
   key_vtunnel *ikey = static_cast<key_vtunnel *>(tkey);
   key_vtunnel *vtunnel_key = static_cast<key_vtunnel *>
-                             (ConfigKeyVal::Malloc(sizeof(key_vtunnel)));
+      (ConfigKeyVal::Malloc(sizeof(key_vtunnel)));
   if (!vtunnel_key) {
     delete tmp1;
     return UPLL_RC_ERR_GENERIC;
   }
   memcpy(vtunnel_key, ikey, sizeof(key_vtunnel));
   okey = new ConfigKeyVal(UNC_KT_VTUNNEL, IpctSt::kIpcStKeyVtunnel,
-         vtunnel_key, tmp1);
+                          vtunnel_key, tmp1);
   if (okey) {
     SET_USER_DATA(okey, req);
   } else {
@@ -318,15 +319,15 @@ upll_rc_t VtunnelMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
 }
 
 upll_rc_t VtunnelMoMgr::UpdateConfigStatus(ConfigKeyVal *vtunnel_key,
-                                       unc_keytype_operation_t op,
-                                       uint32_t driver_result,
-                                       ConfigKeyVal *upd_key,
-                                       DalDmlIntf *dmi,
-                                       ConfigKeyVal *ctrlr_key) {
+                                           unc_keytype_operation_t op,
+                                           uint32_t driver_result,
+                                           ConfigKeyVal *upd_key,
+                                           DalDmlIntf *dmi,
+                                           ConfigKeyVal *ctrlr_key) {
   UPLL_FUNC_TRACE;
   val_db_vtunnel_st *vtunnelst_val;
   unc_keytype_configstatus_t cs_status =
-     (driver_result == UPLL_RC_SUCCESS) ? UNC_CS_APPLIED : UNC_CS_NOT_APPLIED;
+      (driver_result == UPLL_RC_SUCCESS) ? UNC_CS_APPLIED : UNC_CS_NOT_APPLIED;
   UPLL_LOG_TRACE("DriverResult %d, ConfigStatus %d", driver_result, cs_status);
   val_vtunnel *vtunnel_val = static_cast<val_vtunnel *>(GetVal(vtunnel_key));
   if (vtunnel_val == NULL) return UPLL_RC_ERR_GENERIC;
@@ -335,7 +336,7 @@ upll_rc_t VtunnelMoMgr::UpdateConfigStatus(ConfigKeyVal *vtunnel_key,
   if (op == UNC_OP_CREATE) {
     vtunnel_val->cs_row_status = cs_status;
     vtunnelst_val = reinterpret_cast<val_db_vtunnel_st *>
-                    (ConfigKeyVal::Malloc(sizeof(val_db_vtunnel_st)));
+        (ConfigKeyVal::Malloc(sizeof(val_db_vtunnel_st)));
     vtunnelst_val->vtunnel_val_st.oper_status = UPLL_OPER_STATUS_UP;
     vtunnelst_val->vtunnel_val_st.valid[UPLL_IDX_OPER_STATUS_VTNLS] =
         UNC_VF_VALID;
@@ -354,16 +355,16 @@ upll_rc_t VtunnelMoMgr::UpdateConfigStatus(ConfigKeyVal *vtunnel_key,
        loop < sizeof(vtunnel_val->valid)/sizeof(vtunnel_val->valid[0]);
        ++loop ) {
     if ((UNC_VF_VALID == vtunnel_val->valid[loop]) ||
-           (UNC_VF_VALID_NO_VALUE == vtunnel_val->valid[loop])) {
+        (UNC_VF_VALID_NO_VALUE == vtunnel_val->valid[loop])) {
       if (loop == UPLL_IDX_DESC_VTNL)
         vtunnel_val->cs_attr[loop] = UNC_CS_APPLIED;
       else
         vtunnel_val->cs_attr[loop] = cs_status;
     } else if ((vtunnel_val->valid[loop] == UNC_VF_INVALID) &&
-             (UNC_OP_CREATE == op)) {
+               (UNC_OP_CREATE == op)) {
       vtunnel_val->cs_attr[loop] = UNC_CS_APPLIED;
     } else if ((vtunnel_val->valid[loop] == UNC_VF_INVALID) &&
-             (UNC_OP_UPDATE == op)) {
+               (UNC_OP_UPDATE == op)) {
       vtunnel_val->cs_attr[loop] = val_running->cs_attr[loop];
     }
   }
@@ -395,10 +396,10 @@ bool VtunnelMoMgr::CompareValidValue(void *&val1, void *val2,
       valtunnel1->valid[loop] = UNC_VF_VALID_NO_VALUE;
   }
   if (UNC_VF_VALID == valtunnel1->valid[UPLL_IDX_DESC_VTNL] &&
-       UNC_VF_VALID == valtunnel2->valid[UPLL_IDX_DESC_VTNL]) {
+      UNC_VF_VALID == valtunnel2->valid[UPLL_IDX_DESC_VTNL]) {
     if (!strcmp(reinterpret_cast<char*>(valtunnel1->description),
                 reinterpret_cast<char*>(valtunnel2->description)))
-       valtunnel1->valid[UPLL_IDX_DESC_VTNL] = UNC_VF_INVALID;
+      valtunnel1->valid[UPLL_IDX_DESC_VTNL] = UNC_VF_INVALID;
   }
   if (UNC_VF_VALID == valtunnel1->valid[UPLL_IDX_CONTROLLER_ID_VTNL]
       && UNC_VF_VALID == valtunnel2->valid[UPLL_IDX_CONTROLLER_ID_VTNL]) {
@@ -417,29 +418,29 @@ bool VtunnelMoMgr::CompareValidValue(void *&val1, void *val2,
     if (!strcmp(reinterpret_cast<char*>(valtunnel1->vtn_name),
                 reinterpret_cast<char*>(valtunnel2->vtn_name)))
       valtunnel1->valid[UPLL_IDX_VTN_NAME_VTNL] =
-                                           (copy_to_running)?UNC_VF_INVALID:
-                                            UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:
+          UNC_VF_VALUE_NOT_MODIFIED;
   }
   if (UNC_VF_VALID == valtunnel1->valid[UPLL_IDX_VTEP_GRP_NAME_VTNL] &&
       UNC_VF_VALID == valtunnel2->valid[UPLL_IDX_VTEP_GRP_NAME_VTNL]) {
     if (!strcmp(reinterpret_cast<char*>(valtunnel1->vtep_grp_name),
                 reinterpret_cast<char*>(valtunnel2->vtep_grp_name)))
       valtunnel1->valid[UPLL_IDX_VTEP_GRP_NAME_VTNL] =
-                                           (copy_to_running)?UNC_VF_INVALID:
-                                            UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:
+          UNC_VF_VALUE_NOT_MODIFIED;
   }
   if (UNC_VF_VALID == valtunnel1->valid[UPLL_IDX_LABEL_VTNL] &&
       UNC_VF_VALID == valtunnel2->valid[UPLL_IDX_LABEL_VTNL]) {
     if (valtunnel1->label == valtunnel2->label)
       valtunnel1->valid[UPLL_IDX_LABEL_VTNL] =
-                                           (copy_to_running)?UNC_VF_INVALID:
-                                            UNC_VF_VALUE_NOT_MODIFIED;
+          (copy_to_running)?UNC_VF_INVALID:
+          UNC_VF_VALUE_NOT_MODIFIED;
   }
   if (!copy_to_running) valtunnel1->valid[UPLL_IDX_DESC_VTNL] = UNC_VF_INVALID;
   for (unsigned int loop = 0;
-      loop < sizeof(valtunnel1->valid) / sizeof(uint8_t); ++loop) {
+       loop < sizeof(valtunnel1->valid) / sizeof(uint8_t); ++loop) {
     if ((UNC_VF_VALID == (uint8_t) valtunnel1->valid[loop]) ||
-       (UNC_VF_VALID_NO_VALUE == (uint8_t) valtunnel1->valid[loop])) {
+        (UNC_VF_VALID_NO_VALUE == (uint8_t) valtunnel1->valid[loop])) {
       invalid_attr = false;
       break;
     }
@@ -450,24 +451,26 @@ bool VtunnelMoMgr::CompareValidValue(void *&val1, void *val2,
 upll_rc_t VtunnelMoMgr::UpdateAuditConfigStatus(
     unc_keytype_configstatus_t cs_status,
     uuc::UpdateCtrlrPhase phase,
-    ConfigKeyVal *&ckv_running) {
+    ConfigKeyVal *&ckv_running,
+    DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   val_vtunnel_t *val = (ckv_running != NULL)?
-                   reinterpret_cast<val_vtunnel_t *>
-                       ((GetVal(ckv_running))):NULL;
+      reinterpret_cast<val_vtunnel_t *>
+      ((GetVal(ckv_running))):NULL;
   if (NULL == val) {
     return UPLL_RC_ERR_GENERIC;
   }
   if (uuc::kUpllUcpCreate == phase )
-     val->cs_row_status = cs_status;
+    val->cs_row_status = cs_status;
   if ((uuc::kUpllUcpUpdate == phase) &&
-           (val->cs_row_status == UNC_CS_INVALID ||
-            val->cs_row_status == UNC_CS_NOT_APPLIED))
+      (val->cs_row_status == UNC_CS_INVALID ||
+       val->cs_row_status == UNC_CS_NOT_APPLIED))
     val->cs_row_status = cs_status;
   for (unsigned int loop = 0;
        loop < sizeof(val->valid)/sizeof(uint8_t); ++loop ) {
     if ((cs_status == UNC_CS_INVALID &&  UNC_VF_VALID == val->valid[loop]) ||
-         cs_status == UNC_CS_APPLIED)
+        cs_status == UNC_CS_APPLIED)
       val->cs_attr[loop] = cs_status;
   }
   return result_code;
@@ -475,7 +478,7 @@ upll_rc_t VtunnelMoMgr::UpdateAuditConfigStatus(
 
 /* Pure Virtual functions from MoMgrImpl */
 upll_rc_t VtunnelMoMgr::GetControllerDomainId(ConfigKeyVal *ikey,
-                                             controller_domain *ctrlr_dom) {
+                                              controller_domain *ctrlr_dom) {
   UPLL_FUNC_TRACE;
   if (!ikey || !ctrlr_dom) {
     UPLL_LOG_INFO("Illegal parameter");
@@ -506,14 +509,14 @@ upll_rc_t VtunnelMoMgr::GetControllerDomainId(ConfigKeyVal *ikey,
 }
 
 upll_rc_t VtunnelMoMgr::GetVnodeName(ConfigKeyVal *ikey, uint8_t *&vtn_name,
-                                uint8_t *&vnode_name) {
+                                     uint8_t *&vnode_name) {
   UPLL_FUNC_TRACE;
   if (ikey == NULL) {
     UPLL_LOG_DEBUG("ConfigKeyVal is NULL");
     return UPLL_RC_ERR_GENERIC;
   }
   key_vtunnel_t *vtunnel_key = static_cast<key_vtunnel_t *>
-                               (ikey->get_key());
+      (ikey->get_key());
   if (vtunnel_key == NULL)
     return UPLL_RC_ERR_GENERIC;
   vtn_name = vtunnel_key->vtn_key.vtn_name;
@@ -522,7 +525,7 @@ upll_rc_t VtunnelMoMgr::GetVnodeName(ConfigKeyVal *ikey, uint8_t *&vtn_name,
 }
 
 upll_rc_t VtunnelMoMgr::ValidateMessage(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey) {
+                                        ConfigKeyVal *ikey) {
   UPLL_FUNC_TRACE;
   upll_rc_t ret_val = UPLL_RC_ERR_GENERIC;
   if (!ikey || !req || !(ikey->get_key())) {
@@ -536,17 +539,17 @@ upll_rc_t VtunnelMoMgr::ValidateMessage(IpcReqRespHeader *req,
   }
   if (ikey->get_st_num() != IpctSt::kIpcStKeyVtunnel) {
     UPLL_LOG_DEBUG("Invalid struct received.Expected struct-kIpcStKeyVtunnel, "
-        "received struct -%s ", reinterpret_cast<const char *>
-        (IpctSt::GetIpcStdef(ikey->get_st_num())));
+                   "received struct -%s ", reinterpret_cast<const char *>
+                   (IpctSt::GetIpcStdef(ikey->get_st_num())));
     return UPLL_RC_ERR_BAD_REQUEST;
   }
   key_vtunnel_t *key_vtunnel = reinterpret_cast<key_vtunnel_t *>
-    (ikey->get_key());
+      (ikey->get_key());
   val_vtunnel_t *val_vtunnel = NULL;
   if ((ikey->get_cfg_val()) &&
       ((ikey->get_cfg_val())->get_st_num() == IpctSt::kIpcStValVtunnel)) {
     val_vtunnel = reinterpret_cast<val_vtunnel_t *>
-      (ikey->get_cfg_val()->get_val());
+        (ikey->get_cfg_val()->get_val());
   }
   uint32_t dt_type   = req->datatype;
   uint32_t operation = req->operation;
@@ -573,10 +576,11 @@ upll_rc_t VtunnelMoMgr::ValidateMessage(IpcReqRespHeader *req,
         return UPLL_RC_ERR_BAD_REQUEST;
       }
     } else if (((operation == UNC_OP_READ) ||
-          (operation == UNC_OP_READ_SIBLING) ||
-          (operation == UNC_OP_READ_SIBLING_BEGIN)) &&
-        ((dt_type == UPLL_DT_CANDIDATE) || (dt_type == UPLL_DT_RUNNING) ||
-         (dt_type == UPLL_DT_STARTUP) || (dt_type == UPLL_DT_STATE))) {
+                (operation == UNC_OP_READ_SIBLING) ||
+                (operation == UNC_OP_READ_SIBLING_BEGIN)) &&
+               ((dt_type == UPLL_DT_CANDIDATE) ||
+                (dt_type == UPLL_DT_RUNNING) ||
+                (dt_type == UPLL_DT_STARTUP) || (dt_type == UPLL_DT_STATE))) {
       if (option1 == UNC_OPT1_NORMAL) {
         if (option2 == UNC_OPT2_NONE) {
           if (val_vtunnel != NULL) {
@@ -599,18 +603,18 @@ upll_rc_t VtunnelMoMgr::ValidateMessage(IpcReqRespHeader *req,
         return UPLL_RC_ERR_INVALID_OPTION1;
       }
     } else if ((operation == UNC_OP_DELETE) ||
-        (operation == UNC_OP_READ_SIBLING_COUNT) ||
-        (((operation == UNC_OP_READ_NEXT) ||
-        (operation == UNC_OP_READ_BULK)) &&
-        ((dt_type == UPLL_DT_CANDIDATE) ||
-          (dt_type == UPLL_DT_RUNNING) ||
-          (dt_type == UPLL_DT_STARTUP)))) {
+               (operation == UNC_OP_READ_SIBLING_COUNT) ||
+               (((operation == UNC_OP_READ_NEXT) ||
+                 (operation == UNC_OP_READ_BULK)) &&
+                ((dt_type == UPLL_DT_CANDIDATE) ||
+                 (dt_type == UPLL_DT_RUNNING) ||
+                 (dt_type == UPLL_DT_STARTUP)))) {
       UPLL_LOG_TRACE("Value structure is none for operation type:%d",
-                      operation);
+                     operation);
       return UPLL_RC_SUCCESS;
     } else {
       UPLL_LOG_DEBUG("Invalid datatype(%d) and operation(%d)", dt_type,
-          operation);
+                     operation);
       return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
     }
   }
@@ -618,7 +622,7 @@ upll_rc_t VtunnelMoMgr::ValidateMessage(IpcReqRespHeader *req,
 }
 
 upll_rc_t VtunnelMoMgr::ValidateAttribute(ConfigKeyVal *ikey, DalDmlIntf *dmi,
-                                        IpcReqRespHeader *req) {
+                                          IpcReqRespHeader *req) {
   UPLL_FUNC_TRACE;
   upll_rc_t r_code = UPLL_RC_SUCCESS;
   if (!ikey || !(ikey->get_cfg_val()) ||
@@ -630,12 +634,12 @@ upll_rc_t VtunnelMoMgr::ValidateAttribute(ConfigKeyVal *ikey, DalDmlIntf *dmi,
   if (!val_vtunnel) return UPLL_RC_ERR_GENERIC;
   // Validating Underlay VTN
   MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
-                                            (GetMoManager(UNC_KT_VTN)));
+                                                 (GetMoManager(UNC_KT_VTN)));
   if (!mgr) return UPLL_RC_ERR_GENERIC;
   if (val_vtunnel->valid[UPLL_IDX_VTN_NAME_VTNL] == UNC_VF_VALID) {
     // Validating Underlay Vtn is same as Overlay Vtn
     key_vtunnel_t *vtunnel_key = reinterpret_cast<key_vtunnel_t *>
-                                                  (ikey->get_key());
+        (ikey->get_key());
     if (!strcmp(reinterpret_cast<char*>(vtunnel_key->vtn_key.vtn_name),
                 reinterpret_cast<char*>(val_vtunnel->vtn_name))) {
       UPLL_LOG_DEBUG("UnderLay VTN is same as Overlay VTN");
@@ -643,29 +647,29 @@ upll_rc_t VtunnelMoMgr::ValidateAttribute(ConfigKeyVal *ikey, DalDmlIntf *dmi,
     }
     // Existence of Underlay VTN
     key_vtn *vtnkey = static_cast<key_vtn *>
-                     (ConfigKeyVal::Malloc(sizeof(key_vtn)));
+        (ConfigKeyVal::Malloc(sizeof(key_vtn)));
     uuu::upll_strncpy(vtnkey->vtn_name,
                       val_vtunnel->vtn_name,
-                     (kMaxLenVtnName+1));
+                      (kMaxLenVtnName+1));
     ConfigKeyVal *vtn_ck = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
-                           vtnkey,  NULL);
+                                            vtnkey,  NULL);
     if (vtn_ck == NULL) {
       FREE_IF_NOT_NULL(vtnkey);
       return UPLL_RC_ERR_GENERIC;
     }
     r_code = mgr->UpdateConfigDB(vtn_ck, UPLL_DT_CANDIDATE, UNC_OP_READ,
-                                      dmi, MAINTBL);
+                                 dmi, MAINTBL);
     if (UPLL_RC_ERR_INSTANCE_EXISTS != r_code) {
       UPLL_LOG_DEBUG("UpdateConfigDB Return Failure = %d ", r_code);
       if (r_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)
         UPLL_LOG_DEBUG("UnderLay Vtn does not exist");
       delete vtn_ck;
       r_code = (r_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)?
-                          UPLL_RC_ERR_CFG_SEMANTIC:r_code;
+          UPLL_RC_ERR_CFG_SEMANTIC:r_code;
       return r_code;
     } else {
-        r_code = UPLL_RC_SUCCESS;
-        delete vtn_ck;
+      r_code = UPLL_RC_SUCCESS;
+      delete vtn_ck;
     }
   } else {
     if (val_vtunnel->valid[UPLL_IDX_VTEP_GRP_NAME_VTNL] == UNC_VF_VALID) {
@@ -683,10 +687,10 @@ upll_rc_t VtunnelMoMgr::ValidateAttribute(ConfigKeyVal *ikey, DalDmlIntf *dmi,
       if (r_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)
         UPLL_LOG_DEBUG("VtepGroup does not exist");
       r_code = (r_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)?
-                          UPLL_RC_ERR_CFG_SEMANTIC:r_code;
+          UPLL_RC_ERR_CFG_SEMANTIC:r_code;
       return r_code;
     } else {
-        r_code = UPLL_RC_SUCCESS;
+      r_code = UPLL_RC_SUCCESS;
     }
   }
   UPLL_LOG_TRACE("Vtunnel ValidateAttribute returned %d", r_code);
@@ -700,11 +704,12 @@ upll_rc_t VtunnelMoMgr::GetVtepGroup(val_vtunnel_t *vtunnelVal,
                                      DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
-  MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager *>
-                                            (GetMoManager(UNC_KT_VTEP_GRP)));
+  MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(
+      const_cast<MoManager *>
+      (GetMoManager(UNC_KT_VTEP_GRP)));
   if (!mgr) return UPLL_RC_ERR_GENERIC;
   key_vtep_grp *vtepgrp_key = reinterpret_cast<key_vtep_grp *>
-                               (ConfigKeyVal::Malloc(sizeof(key_vtep_grp)));
+      (ConfigKeyVal::Malloc(sizeof(key_vtep_grp)));
   uuu::upll_strncpy(vtepgrp_key->vtn_key.vtn_name,
                     vtunnelVal->vtn_name,
                     (kMaxLenVtnName+1));
@@ -712,8 +717,8 @@ upll_rc_t VtunnelMoMgr::GetVtepGroup(val_vtunnel_t *vtunnelVal,
                     vtunnelVal->vtep_grp_name,
                     (kMaxLenVnodeName+1));
   ConfigKeyVal *vtepgrp_ckv = new ConfigKeyVal(UNC_KT_VTEP_GRP,
-                              IpctSt::kIpcStKeyVtepGrp,
-                              vtepgrp_key, NULL);
+                                               IpctSt::kIpcStKeyVtepGrp,
+                                               vtepgrp_key, NULL);
   if (vtepgrp_ckv == NULL) {
     FREE_IF_NOT_NULL(vtepgrp_key);
     return UPLL_RC_ERR_GENERIC;
@@ -731,7 +736,7 @@ upll_rc_t VtunnelMoMgr::GetVtepGroup(val_vtunnel_t *vtunnelVal,
 }
 
 upll_rc_t VtunnelMoMgr::ValidateVTunnelValue(val_vtunnel_t *val_vtunnel,
-    uint32_t operation) {
+                                             uint32_t operation) {
   UPLL_FUNC_TRACE;
   bool ret_val = false;
 
@@ -751,7 +756,7 @@ upll_rc_t VtunnelMoMgr::ValidateVTunnelValue(val_vtunnel_t *val_vtunnel,
           break;
         case   UPLL_IDX_VTN_NAME_VTNL:
           ret_val = ValidateString(val_vtunnel->vtn_name,
-                                 kMinLenVtnName, kMaxLenVtnName);
+                                   kMinLenVtnName, kMaxLenVtnName);
           break;
         case UPLL_IDX_DESC_VTNL:
           ret_val = ValidateDesc(val_vtunnel->description,
@@ -860,7 +865,7 @@ upll_rc_t VtunnelMoMgr::ValidateVTunnelValue(val_vtunnel_t *val_vtunnel,
 
 
 upll_rc_t VtunnelMoMgr::CtrlrIdAndDomainIdUpdationCheck(ConfigKeyVal *ikey,
-                                                   ConfigKeyVal *okey) {
+                                                        ConfigKeyVal *okey) {
   UPLL_FUNC_TRACE;
   val_vtunnel *vtun_val = reinterpret_cast<val_vtunnel *>(GetVal(ikey));
   val_vtunnel *vtun_val1 = reinterpret_cast<val_vtunnel *>(GetVal(okey));
@@ -883,11 +888,11 @@ upll_rc_t VtunnelMoMgr::CtrlrIdAndDomainIdUpdationCheck(ConfigKeyVal *ikey,
   return UPLL_RC_SUCCESS;
 }
 upll_rc_t VtunnelMoMgr::ValidateVTunnelKey(key_vtunnel_t *key_vtunnel,
-                        uint32_t operation) {
+                                           uint32_t operation) {
   UPLL_FUNC_TRACE;
   upll_rc_t ret_val = UPLL_RC_SUCCESS;
   ret_val = ValidateKey(
-  reinterpret_cast<char *>(key_vtunnel->vtn_key.vtn_name),
+      reinterpret_cast<char *>(key_vtunnel->vtn_key.vtn_name),
       kMinLenVtnName, kMaxLenVtnName);
   if (ret_val != UPLL_RC_SUCCESS) {
     UPLL_LOG_INFO("Vtn Name syntax check failed."
@@ -898,12 +903,12 @@ upll_rc_t VtunnelMoMgr::ValidateVTunnelKey(key_vtunnel_t *key_vtunnel,
   if ((operation != UNC_OP_READ_SIBLING_BEGIN) &&
       (operation != UNC_OP_READ_SIBLING_COUNT)) {
     UPLL_LOG_TRACE("UNC_KT_VTUNNEL: vtunnel_name (%s)",
-                    key_vtunnel->vtunnel_name);
+                   key_vtunnel->vtunnel_name);
     ret_val = ValidateKey(reinterpret_cast<char *>(key_vtunnel->vtunnel_name),
-              kMinLenVnodeName, kMaxLenVnodeName);
+                          kMinLenVnodeName, kMaxLenVnodeName);
     if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG(
-        "Syntax check failed.vtunnel_name- %s", key_vtunnel->vtunnel_name);
+          "Syntax check failed.vtunnel_name- %s", key_vtunnel->vtunnel_name);
       return ret_val;
     }
   } else {
@@ -931,7 +936,7 @@ upll_rc_t VtunnelMoMgr::ValVTunnelAttributeSupportCheck(
      */
   if ((val_vtunnel->valid[UPLL_IDX_VTN_NAME_VTNL] == UNC_VF_VALID)
       || (val_vtunnel->valid[UPLL_IDX_VTN_NAME_VTNL]
-        == UNC_VF_VALID_NO_VALUE)) {
+          == UNC_VF_VALID_NO_VALUE)) {
     if (attrs[unc::capa::vtunnel::kCapVtepName] == 0) {
       val_vtunnel->valid[UPLL_IDX_VTN_NAME_VTNL] = UNC_VF_INVALID;
       if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
@@ -942,10 +947,10 @@ upll_rc_t VtunnelMoMgr::ValVTunnelAttributeSupportCheck(
   }
   if ((val_vtunnel->valid[UPLL_IDX_VTEP_GRP_NAME_VTNL] == UNC_VF_VALID)
       || (val_vtunnel->valid[UPLL_IDX_VTEP_GRP_NAME_VTNL]
-        == UNC_VF_VALID_NO_VALUE)) {
+          == UNC_VF_VALID_NO_VALUE)) {
     if (attrs[unc::capa::vtunnel::kCapVtepGrpName] == 0) {
       val_vtunnel->valid[UPLL_IDX_VTEP_GRP_NAME_VTNL] =
-        UNC_VF_INVALID;
+          UNC_VF_INVALID;
       if (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE) {
         UPLL_LOG_INFO("VtepGrpName is not supported for PFC Controller");
         return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
@@ -966,7 +971,8 @@ upll_rc_t VtunnelMoMgr::ValVTunnelAttributeSupportCheck(
 }
 
 upll_rc_t VtunnelMoMgr::ValidateCapability(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey, const char *ctrlr_name) {
+                                           ConfigKeyVal *ikey,
+                                           const char *ctrlr_name) {
   UPLL_FUNC_TRACE;
   if (!ikey || !req) {
     UPLL_LOG_DEBUG("ConfigKeyVal / IpcReqRespHeader is Null");
@@ -974,14 +980,14 @@ upll_rc_t VtunnelMoMgr::ValidateCapability(IpcReqRespHeader *req,
   }
   if (!ctrlr_name) {
     ctrlr_name = reinterpret_cast<char*>((reinterpret_cast<key_user_data_t *>
-                  (ikey->get_user_data()))->ctrlr_id);
+                                          (ikey->get_user_data()))->ctrlr_id);
     if (!ctrlr_name || !strlen(ctrlr_name)) {
       UPLL_LOG_DEBUG("Controller Name is NULL");
       return UPLL_RC_ERR_GENERIC;
     }
   }
   UPLL_LOG_TRACE("ctrlr_name(%s), operation : (%d)",
-               ctrlr_name, req->operation);
+                 ctrlr_name, req->operation);
   bool result_code = false;
   uint32_t max_instance_count = 0;
   uint32_t max_attrs = 0;
@@ -990,31 +996,31 @@ upll_rc_t VtunnelMoMgr::ValidateCapability(IpcReqRespHeader *req,
   switch (req->operation) {
     case UNC_OP_CREATE:
       result_code = GetCreateCapability(ctrlr_name,
-              ikey->get_key_type(), &max_instance_count, &max_attrs, &attrs);
-      if (result_code && (max_instance_count != 0) &&
-          cur_instance_count >= max_instance_count) {
-        UPLL_LOG_DEBUG("[%s:%d:%s Instance count %d exceeds %d", __FILE__,
-              __LINE__, __FUNCTION__, cur_instance_count, max_instance_count);
-        return UPLL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
-      }
+                                        ikey->get_key_type(),
+                                        &max_instance_count,
+                                        &max_attrs,
+                                        &attrs);
       break;
     case UNC_OP_UPDATE:
       result_code = GetUpdateCapability(ctrlr_name,
-          ikey->get_key_type(), &max_attrs, &attrs);
+                                        ikey->get_key_type(),
+                                        &max_attrs, &attrs);
       break;
     case UNC_OP_READ:
     case UNC_OP_READ_SIBLING:
     case UNC_OP_READ_SIBLING_BEGIN:
     case UNC_OP_READ_SIBLING_COUNT:
       result_code = GetReadCapability(ctrlr_name,
-                    ikey->get_key_type(), &max_attrs, &attrs);
+                                      ikey->get_key_type(),
+                                      &max_attrs,
+                                      &attrs);
       break;
     default:
       UPLL_LOG_DEBUG("Invalid operation");
       break;
   }
   if (!result_code) {
-     UPLL_LOG_DEBUG("keytype(%d) is not supported by controller(%s) "
+    UPLL_LOG_DEBUG("keytype(%d) is not supported by controller(%s) "
                    "for operation(%d)",
                    ikey->get_key_type(), ctrlr_name, req->operation);
     return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
@@ -1023,7 +1029,7 @@ upll_rc_t VtunnelMoMgr::ValidateCapability(IpcReqRespHeader *req,
   if ((ikey->get_cfg_val()) &&
       ((ikey->get_cfg_val())->get_st_num() == IpctSt::kIpcStValVtunnel)) {
     val_vtunnel =
-      reinterpret_cast<val_vtunnel_t *> (ikey->get_cfg_val()->get_val());
+        reinterpret_cast<val_vtunnel_t *> (ikey->get_cfg_val()->get_val());
   }
   if (val_vtunnel) {
     if (max_attrs > 0) {
@@ -1031,7 +1037,7 @@ upll_rc_t VtunnelMoMgr::ValidateCapability(IpcReqRespHeader *req,
                                              req->operation);
     } else {
       UPLL_LOG_DEBUG("Attribute list is empty for operation %d",
-                                                 req->operation);
+                     req->operation);
       return UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR;
     }
   }
@@ -1039,15 +1045,15 @@ upll_rc_t VtunnelMoMgr::ValidateCapability(IpcReqRespHeader *req,
 }
 
 upll_rc_t VtunnelMoMgr::CreateVnodeConfigKey(ConfigKeyVal *ikey,
-    ConfigKeyVal *&okey) {
+                                             ConfigKeyVal *&okey) {
   if (ikey == NULL)
     return UPLL_RC_ERR_GENERIC;
 
   key_vtunnel * temp_key_vtunnel = static_cast<key_vtunnel *>
-                                   (ConfigKeyVal::Malloc(sizeof(key_vtunnel)));
+      (ConfigKeyVal::Malloc(sizeof(key_vtunnel)));
   uuu::upll_strncpy(temp_key_vtunnel->vtn_key.vtn_name,
                     static_cast<key_vtunnel*>(ikey->get_key())->
-                     vtn_key.vtn_name,
+                    vtn_key.vtn_name,
                     (kMaxLenVtnName+1));
   uuu::upll_strncpy(temp_key_vtunnel->vtunnel_name,
                     static_cast<key_vtunnel*>
@@ -1060,62 +1066,65 @@ upll_rc_t VtunnelMoMgr::CreateVnodeConfigKey(ConfigKeyVal *ikey,
   return UPLL_RC_SUCCESS;
 }
 /*
-upll_rc_t VtunnelMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
-                                        ConfigKeyVal *ikey) {
-  if ( !ikey || !(ikey->get_key()) )
-    return UPLL_RC_ERR_GENERIC;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  key_rename_vnode_info *key_rename = reinterpret_cast<key_rename_vnode_info *>
-                                                      (ikey->get_key());
-  key_vtunnel_t* vtunnel_key = reinterpret_cast<key_vtunnel_t *>
-                                (ConfigKeyVal::Malloc(sizeof(key_vtunnel_t)));
-  if (!vtunnel_key)
-     return UPLL_RC_ERR_GENERIC;
-  if (!strlen(reinterpret_cast<char *>(key_rename->old_unc_vtn_name))) {
-     FREE_IF_NOT_NULL(vtunnel_key);
-     return UPLL_RC_ERR_GENERIC;
-  }
-  uuu::upll_strncpy(vtunnel_key ->vtn_key.vtn_name,
-                    key_rename->old_unc_vtn_name,
-                    (kMaxLenVtnName+1));
-  okey = new ConfigKeyVal(UNC_KT_VTUNNEL, IpctSt::kIpcStKeyVtunnel,
-                          vtunnel_key, NULL);
-  if (!okey) {
-    FREE_IF_NOT_NULL(vtunnel_key);
-    return UPLL_RC_ERR_GENERIC;
-  }
-  return result_code;
-}
-*/
+   upll_rc_t VtunnelMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
+   ConfigKeyVal *ikey) {
+   if ( !ikey || !(ikey->get_key()) )
+   return UPLL_RC_ERR_GENERIC;
+   upll_rc_t result_code = UPLL_RC_SUCCESS;
+   key_rename_vnode_info *key_rename = reinterpret_cast<key_rename_vnode_info *>
+   (ikey->get_key());
+   key_vtunnel_t* vtunnel_key = reinterpret_cast<key_vtunnel_t *>
+   (ConfigKeyVal::Malloc(sizeof(key_vtunnel_t)));
+   if (!vtunnel_key)
+   return UPLL_RC_ERR_GENERIC;
+   if (!strlen(reinterpret_cast<char *>(key_rename->old_unc_vtn_name))) {
+   FREE_IF_NOT_NULL(vtunnel_key);
+   return UPLL_RC_ERR_GENERIC;
+   }
+   uuu::upll_strncpy(vtunnel_key ->vtn_key.vtn_name,
+   key_rename->old_unc_vtn_name,
+   (kMaxLenVtnName+1));
+   okey = new ConfigKeyVal(UNC_KT_VTUNNEL, IpctSt::kIpcStKeyVtunnel,
+   vtunnel_key, NULL);
+   if (!okey) {
+   FREE_IF_NOT_NULL(vtunnel_key);
+   return UPLL_RC_ERR_GENERIC;
+   }
+   return result_code;
+   }
+   */
 
 upll_rc_t VtunnelMoMgr::IsReferenced(ConfigKeyVal *ikey,
-           upll_keytype_datatype_t dt_type, DalDmlIntf *dmi) {
+                                     upll_keytype_datatype_t dt_type,
+                                     DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   if (!ikey || !(ikey->get_key()) || !dmi)
     return UPLL_RC_ERR_GENERIC;
-  MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager*>
-                       (GetMoManager(UNC_KT_VTUNNEL_IF)));
+  MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(
+      const_cast<MoManager*>
+      (GetMoManager(UNC_KT_VTUNNEL_IF)));
   result_code = mgr->IsReferenced(ikey, dt_type, dmi);
   result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)?
-                    UPLL_RC_SUCCESS:result_code;
+      UPLL_RC_SUCCESS:result_code;
   // Success / NoSuchInstance / Semantic
   UPLL_LOG_DEBUG("IsReferenced result code (%d)", result_code);
   return result_code;
 }
 
 /*
-upll_rc_t VtunnelMoMgr::MergeValidate(unc_key_type_t keytype,
-                     const char *ctrlr_id,
-                     ConfigKeyVal *ikey,
-                     DalDmlIntf *dmi) {
-  return UPLL_RC_ERR_GENERIC;
-}
-*/
+   upll_rc_t VtunnelMoMgr::MergeValidate(unc_key_type_t keytype,
+   const char *ctrlr_id,
+   ConfigKeyVal *ikey,
+   DalDmlIntf *dmi) {
+   return UPLL_RC_ERR_GENERIC;
+   }
+   */
 
-upll_rc_t VtunnelMoMgr::PopulateDriverDeleteCkv(ConfigKeyVal *&vnpCkv,
-                                      DalDmlIntf *dmi,
-                                      upll_keytype_datatype_t dt_type) {
+upll_rc_t VtunnelMoMgr::PopulateDriverDeleteCkv(
+    ConfigKeyVal *&vnpCkv,
+    DalDmlIntf *dmi,
+    upll_keytype_datatype_t dt_type) {
   UPLL_FUNC_TRACE;
   upll_rc_t result = UPLL_RC_SUCCESS;
   if (!vnpCkv || !vnpCkv->get_key() || (!(vnpCkv->get_cfg_val()))) {
@@ -1124,7 +1133,7 @@ upll_rc_t VtunnelMoMgr::PopulateDriverDeleteCkv(ConfigKeyVal *&vnpCkv,
   }
   val_vtunnel *vtunnel_val = static_cast<val_vtunnel *>(GetVal(vnpCkv));
   vnpdrv_val_vtunnel *vnp_vtunnel = static_cast<vnpdrv_val_vtunnel *>
-               (ConfigKeyVal::Malloc(sizeof(vnpdrv_val_vtunnel)));
+      (ConfigKeyVal::Malloc(sizeof(vnpdrv_val_vtunnel)));
   vnp_vtunnel->label = vtunnel_val->label;
   vnp_vtunnel->valid[VNPDRV_IDX_LABEL_VTNL] = UNC_VF_VALID;
   ConfigVal *ck_val = new ConfigVal(IpctSt::kIpcStVnpdrvValVtunnel,
@@ -1134,6 +1143,6 @@ upll_rc_t VtunnelMoMgr::PopulateDriverDeleteCkv(ConfigKeyVal *&vnpCkv,
 }
 
 
-}  // namespace vtn
+}  // namespace kt_momgr
 }  // namespace upll
 }  // namespace unc
index d64d4fa84519ab4816d8d10438a291545df894ba..3a00ea3a074d891eedbdb95bf5f493a9d7bac5cf 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -27,59 +27,59 @@ class VtunnelMoMgr : public VnodeMoMgr {
   static BindInfo       key_vtunnel_maintbl_bind_info[];
 
   /**
-   * @brief  Gets the valid array position of the variable in the value 
-   *         structure from the table in the specified configuration  
+   * @brief  Gets the valid array position of the variable in the value
+   *         structure from the table in the specified configuration
    *
-   * @param[in]     val      pointer to the value structure 
+   * @param[in]     val      pointer to the value structure
    * @param[in]     indx     database index for the variable
-   * @param[out]    valid    position of the variable in the valid array - 
+   * @param[out]    valid    position of the variable in the valid array -
    *                          NULL if valid does not exist.
    * @param[in]     dt_type  specifies the configuration
-   * @param[in]     tbl      specifies the table containing the given value 
+   * @param[in]     tbl      specifies the table containing the given value
    *
    **/
   upll_rc_t GetValid(void *val, uint64_t indx, uint8_t *&valid,
-             upll_keytype_datatype_t dt_type, MoMgrTables tbl) {
-       UPLL_FUNC_TRACE;
-       if (val == NULL) return UPLL_RC_ERR_GENERIC;
-       if (tbl == MAINTBL) {
-         switch (indx) {
-         case uudst::vtunnel::kDbiDesc:
-           valid = &(reinterpret_cast<val_vtunnel *>(val)->
-                                valid[UPLL_IDX_DESC_VTNL]);
-           break;
-         case uudst::vtunnel::kDbiCtrlrName:
-           valid = &(reinterpret_cast<val_vtunnel *>(val)->
-                                valid[UPLL_IDX_CONTROLLER_ID_VTNL]);
-           break;
-         case uudst::vtunnel::kDbiDomainId:
-           valid = &(reinterpret_cast<val_vtunnel *>(val)->
-                                valid[UPLL_IDX_DOMAIN_ID_VTNL]);
-           break;
-         case uudst::vtunnel::kDbiUnderlayVtnName:
-           valid = &(reinterpret_cast<val_vtunnel *>(val)->
-                                valid[UPLL_IDX_VTN_NAME_VTNL]);
-           break;
-         case uudst::vtunnel::kDbiVtepgrpName:
-           valid = &(reinterpret_cast<val_vtunnel *>(val)->
-                                valid[UPLL_IDX_VTEP_GRP_NAME_VTNL]);
-           break;
-         case uudst::vtunnel::kDbiLabel:
-           valid = &(reinterpret_cast<val_vtunnel *>(val)->
-                                valid[UPLL_IDX_LABEL_VTNL]);
-           break;
-         case uudst::vtunnel::kDbiOperStatus:
-           valid = &(reinterpret_cast<val_vtunnel_st *>(val)->
-                                 valid[UPLL_IDX_OPER_STATUS_VTNLS]);
-           break;
-         case uudst::vtunnel::kDbiDownCount:
-           valid = NULL;
-           break;
-         default:
-           return UPLL_RC_ERR_GENERIC;
-         }
-       }
-       return UPLL_RC_SUCCESS;
+                     upll_keytype_datatype_t dt_type, MoMgrTables tbl) {
+    UPLL_FUNC_TRACE;
+    if (val == NULL) return UPLL_RC_ERR_GENERIC;
+    if (tbl == MAINTBL) {
+      switch (indx) {
+        case uudst::vtunnel::kDbiDesc:
+          valid = &(reinterpret_cast<val_vtunnel *>(val)->
+                    valid[UPLL_IDX_DESC_VTNL]);
+          break;
+        case uudst::vtunnel::kDbiCtrlrName:
+          valid = &(reinterpret_cast<val_vtunnel *>(val)->
+                    valid[UPLL_IDX_CONTROLLER_ID_VTNL]);
+          break;
+        case uudst::vtunnel::kDbiDomainId:
+          valid = &(reinterpret_cast<val_vtunnel *>(val)->
+                    valid[UPLL_IDX_DOMAIN_ID_VTNL]);
+          break;
+        case uudst::vtunnel::kDbiUnderlayVtnName:
+          valid = &(reinterpret_cast<val_vtunnel *>(val)->
+                    valid[UPLL_IDX_VTN_NAME_VTNL]);
+          break;
+        case uudst::vtunnel::kDbiVtepgrpName:
+          valid = &(reinterpret_cast<val_vtunnel *>(val)->
+                    valid[UPLL_IDX_VTEP_GRP_NAME_VTNL]);
+          break;
+        case uudst::vtunnel::kDbiLabel:
+          valid = &(reinterpret_cast<val_vtunnel *>(val)->
+                    valid[UPLL_IDX_LABEL_VTNL]);
+          break;
+        case uudst::vtunnel::kDbiOperStatus:
+          valid = &(reinterpret_cast<val_vtunnel_st *>(val)->
+                    valid[UPLL_IDX_OPER_STATUS_VTNLS]);
+          break;
+        case uudst::vtunnel::kDbiDownCount:
+          valid = NULL;
+          break;
+        default:
+          return UPLL_RC_ERR_GENERIC;
+      }
+    }
+    return UPLL_RC_SUCCESS;
   }
   upll_rc_t UpdateConfigStatus(ConfigKeyVal *vtunnel_key,
                                unc_keytype_operation_t op,
@@ -88,81 +88,84 @@ class VtunnelMoMgr : public VnodeMoMgr {
                                DalDmlIntf *dmi,
                                ConfigKeyVal *ctrlr_key = NULL);
   /**
-     * @brief  Update config status for commit result and vote result.
-     *
-     * @param[in/out]  ckv_running  ConfigKeyVal instance.
-     * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
-     * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
-     *
-     **/
+   * @brief  Update config status for commit result and vote result.
+   *
+   * @param[in/out]  ckv_running  ConfigKeyVal instance.
+   * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
+   * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
+   * @param[in]      dmi          Pointer to the DalDmlIntf(DB Interface)
+   *
+   **/
   upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
-                                     uuc::UpdateCtrlrPhase phase,
-                                     ConfigKeyVal *&ckv_running);
+                                    uuc::UpdateCtrlrPhase phase,
+                                    ConfigKeyVal *&ckv_running,
+                                    DalDmlIntf *dmi);
 
   /**
-     * @brief  Duplicates the input configkeyval including the key and val.  
-     * based on the tbl specified.
-     *
-     * @param[in]  okey   Output Configkeyval - allocated within the function
-     * @param[in]  req    Input ConfigKeyVal to be duplicated.
-     * @param[in]  tbl    specifies if the val structure belongs to the main table/ controller table or rename table.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
+   * @brief  Duplicates the input configkeyval including the key and val.
+   * based on the tbl specified.
+   *
+   * @param[in]  okey   Output Configkeyval - allocated within the function
+   * @param[in]  req    Input ConfigKeyVal to be duplicated.
+   * @param[in]  tbl    specifies if the val structure belongs to the main table/ controller table or rename table.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
   upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey,
-                   ConfigKeyVal *&req, MoMgrTables tbl = MAINTBL);
+                            ConfigKeyVal *&req, MoMgrTables tbl = MAINTBL);
   /**
-     * @brief  Allocates for the specified val in the given configuration in the     * specified table.   
-     *
-     * @param[in/out]  ck_val   Reference pointer to configval structure 
-     *                          allocated.      
-     * @param[in]      dt_type  specifies the configuration candidate/running/
-     *                          state 
-     * @param[in]      tbl      specifies if the corresponding table is the  
-     *                          main table / controller table or rename table.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
+   * @brief  Allocates for the specified val in the given configuration in the     * specified table.
+   *
+   * @param[in/out]  ck_val   Reference pointer to configval structure
+   *                          allocated.
+   * @param[in]      dt_type  specifies the configuration candidate/running/
+   *                          state
+   * @param[in]      tbl      specifies if the corresponding table is the
+   *                          main table / controller table or rename table.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
   upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
-          MoMgrTables tbl = MAINTBL);
-/**
-    * @brief      Method to get a configkeyval of a specified keytype from an input configkeyval
-    *
-    * @param[in/out]  okey                 pointer to output ConfigKeyVal 
-    * @param[in]      parent_key           pointer to the configkeyval from which the output configkey val is initialized.
-    *
-    * @retval         UPLL_RC_SUCCESS      Successfull completion.
-    * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-    */
+                     MoMgrTables tbl = MAINTBL);
+  /**
+   * @brief      Method to get a configkeyval of a specified keytype from an input configkeyval
+   *
+   * @param[in/out]  okey                 pointer to output ConfigKeyVal
+   * @param[in]      parent_key           pointer to the configkeyval from which the output configkey val is initialized.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   */
   upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey,
-              ConfigKeyVal *parent_key);
-/**
-    * @brief      Method to get a configkeyval of the parent keytype 
-    *
-    * @param[in/out]  okey           pointer to parent ConfigKeyVal 
-    * @param[in]      ikey           pointer to the child configkeyval from 
-    * which the parent configkey val is obtained.
-    *
-    * @retval         UPLL_RC_SUCCESS      Successfull completion.
-    * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-    **/
+                              ConfigKeyVal *parent_key);
+  /**
+   * @brief      Method to get a configkeyval of the parent keytype
+   *
+   * @param[in/out]  okey           pointer to parent ConfigKeyVal
+   * @param[in]      ikey           pointer to the child configkeyval from
+   * which the parent configkey val is obtained.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
   upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
   /**
    * @brief Rename operation not needed for Overlay Keytype
    **/
   upll_rc_t GetRenamedControllerKey(ConfigKeyVal *ikey,
-         upll_keytype_datatype_t dt_type, DalDmlIntf *dmi,
-         uint8_t *ctrlr_name ) {
+                                    upll_keytype_datatype_t dt_type,
+                                    DalDmlIntf *dmi,
+                                    uint8_t *ctrlr_name ) {
     return UPLL_RC_SUCCESS;
   }
   /**
    * @brief Rename operation not needed for Overlay Keytype
    **/
   upll_rc_t GetRenamedUncKey(ConfigKeyVal *ctrlr_key,
-         upll_keytype_datatype_t dt_type, DalDmlIntf *dmi,
-         uint8_t *ctrlr_id) {
+                             upll_keytype_datatype_t dt_type, DalDmlIntf *dmi,
+                             uint8_t *ctrlr_id) {
     return UPLL_RC_SUCCESS;
   }
 
@@ -176,11 +179,11 @@ class VtunnelMoMgr : public VnodeMoMgr {
    *
    **/
   bool FilterAttributes(void *&val1, void *val2, bool copy_to_running,
-                                unc_keytype_operation_t op);
+                        unc_keytype_operation_t op);
   /**
    * @brief  Compares the valid value between two database records.
    *        if both the values are same, update the valid flag for corresponding
-   *        attribute as invalid in the first record. 
+   *        attribute as invalid in the first record.
    *
    * @param[in/out]  val1   first record value instance.
    * @param[in]      val2   second record value instance.
@@ -195,9 +198,9 @@ class VtunnelMoMgr : public VnodeMoMgr {
 
   /* Pure virtual from VnodeMoMgrImpl */
   upll_rc_t GetControllerDomainId(ConfigKeyVal *ikey,
-                                 controller_domain_t *ctrlr_dom);
+                                  controller_domain_t *ctrlr_dom);
   upll_rc_t GetVnodeName(ConfigKeyVal *ikey,
-                      uint8_t *&vtn_name, uint8_t *&vnode_name);
+                         uint8_t *&vtn_name, uint8_t *&vnode_name);
 
   /**
    * @Brief Get the VtepGroupConfigKeyVal from VtepGroupTbl
@@ -211,8 +214,8 @@ class VtunnelMoMgr : public VnodeMoMgr {
    * @retval UPLL_RC_ERR_GENERIC          Generic failure.
    */
   upll_rc_t GetVtepGroup(val_vtunnel_t *vtunnelVal,
-                                        upll_keytype_datatype_t dt_type,
-                                        DalDmlIntf *dmi);
+                         upll_keytype_datatype_t dt_type,
+                         DalDmlIntf *dmi);
   /**
    * @Brief Validates the syntax of the specified key and value structure
    *        for KT_VTUNNEL keytype
@@ -242,7 +245,7 @@ class VtunnelMoMgr : public VnodeMoMgr {
    * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
    */
   upll_rc_t ValidateVTunnelValue(val_vtunnel_t *val_vtunnel,
-      uint32_t operation = UNC_OP_INVALID);
+                                 uint32_t operation = UNC_OP_INVALID);
   /**
    * @Brief Checks if the specified key type(KT_VTUNNEL) and
    *        associated attributes are supported on the given controller,
@@ -260,7 +263,7 @@ class VtunnelMoMgr : public VnodeMoMgr {
    */
 
   upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-      const char * crtlr_name);
+                               const char * crtlr_name);
   /**
    * @Brief Checks if the specified key type and
    *        associated attributes are supported on the given controller,
@@ -275,11 +278,12 @@ class VtunnelMoMgr : public VnodeMoMgr {
    * @retval UPLL_RC_ERR_GENERIC                Generic failure.
    */
   upll_rc_t ValVTunnelAttributeSupportCheck(
-       val_vtunnel_t *val_vtunnel,
-  const uint8_t* attrs, unc_keytype_operation_t operation);
+      val_vtunnel_t *val_vtunnel,
+      const uint8_t* attrs, unc_keytype_operation_t operation);
 
   upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey) {
-    return UPLL_RC_SUCCESS;
+    UPLL_LOG_INFO("Not supported for this keytype. Returning Generic Error");
+    return UPLL_RC_ERR_GENERIC;
   }
   bool GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo,
                             int &nattr,
@@ -311,16 +315,16 @@ class VtunnelMoMgr : public VnodeMoMgr {
     delete[] table;
   }
   /**
-    * @brief      Method to check if individual portions of a key are valid
-    *
-    * @param[in/out]  ikey                 pointer to ConfigKeyVal referring to a UNC resource
-    * @param[in]      index                db index associated with the variable
-    *
-    * @retval         true                 input key is valid
-    * @retval         false                input key is invalid.
-    **/
+   * @brief      Method to check if individual portions of a key are valid
+   *
+   * @param[in/out]  ikey                 pointer to ConfigKeyVal referring to a UNC resource
+   * @param[in]      index                db index associated with the variable
+   *
+   * @retval         true                 input key is valid
+   * @retval         false                input key is invalid.
+   **/
   bool IsValidKey(void *tkey, uint64_t index);
-/**
+  /**
    * @Brief Validates the syntax for KT_VTUNNEL keytype key structure.
    *
    * @param[in] key_vtunnel KT_VTUNNEL key structure.
@@ -333,29 +337,29 @@ class VtunnelMoMgr : public VnodeMoMgr {
 
   upll_rc_t CreateVnodeConfigKey(ConfigKeyVal *ikey, ConfigKeyVal *&okey);
   /* @brief         This method invoke when the VTN merge hapeening between
-     *                Running and DT import. This will checks the vnode name 
-     *                unique or not. 
-     *              
-     * @param[in]     keytype       UNC KEY TYPE
-     * @param[in/out] ctrlr_id      Controller ID                    
-     * @param[in]     conflict_ckv  key and value structure 
-     * @param[in]     dal    Pointer to the DalDmlIntf(DB Interface)
-     * 
-     * @retval  UPLL_RC_SUCCESS                    Completed successfully.
-     * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
-     * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
-     * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
-     * @retval  UPLL_RC_ERR_MERGE_CONFLICT         Semantic check error.
-     * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist 
-     *
-     **/
+   *                Running and DT import. This will checks the vnode name
+   *                unique or not.
+   *
+   * @param[in]     keytype       UNC KEY TYPE
+   * @param[in/out] ctrlr_id      Controller ID
+   * @param[in]     conflict_ckv  key and value structure
+   * @param[in]     dal    Pointer to the DalDmlIntf(DB Interface)
+   *
+   * @retval  UPLL_RC_SUCCESS                    Completed successfully.
+   * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
+   * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
+   * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
+   * @retval  UPLL_RC_ERR_MERGE_CONFLICT         Semantic check error.
+   * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist
+   *
+   **/
   upll_rc_t MergeValidate(unc_key_type_t keytype, const char *ctrlr_id,
-                     ConfigKeyVal *ikey, DalDmlIntf *dmi) {
-     return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT;
+                          ConfigKeyVal *ikey, DalDmlIntf *dmi) {
+    return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT;
   }
 
   /**
-   * @Brief  compares controller id and domain id before 
+   * @Brief  compares controller id and domain id before
    *         updating the value to DB.
    *
    * @param[in]  ikey  ikey contains key and value structure.
@@ -365,11 +369,11 @@ class VtunnelMoMgr : public VnodeMoMgr {
    * @retval  UPLL_RC_ERR_CFG_SYNTAX     Syntax error.
    */
   upll_rc_t CtrlrIdAndDomainIdUpdationCheck(ConfigKeyVal *ikey,
-                                                   ConfigKeyVal *okey);
+                                            ConfigKeyVal *okey);
 };
 
 
-}  // namespace vtn
+}  // namespace kt_momgr
 }  // namespace upll
 }  // namespace unc
 #endif
index 95c264c4de8d400bf29a8b14f077569f1e61f4ee..65185bd276b3103b1d7ef1f0e69ba74ada182d32 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -21,68 +21,68 @@ namespace upll {
 namespace kt_momgr {
 
 BindInfo VunkIfMoMgr::vunk_if_bind_info[] = {
-    { uudst::vunknown_interface::kDbiVtnName, CFG_KEY, offsetof(
-        key_vunk_if, vunk_key.vtn_key.vtn_name),
-      uud::kDalChar, 32 },
-    { uudst::vunknown_interface::kDbiVunknownName, CFG_KEY, offsetof(
-        key_vunk_if, vunk_key.vunknown_name),
-      uud::kDalChar, 32 },
-    { uudst::vunknown_interface::kDbiIfName, CFG_KEY, offsetof(key_vunk_if,
-                                                               if_name),
-      uud::kDalChar, 32 },
-    { uudst::vunknown_interface::kDbiDesc, CFG_VAL, offsetof(val_vunk_if,
-                                                             description),
-      uud::kDalChar, 128 },
-    { uudst::vunknown_interface::kDbiAdminStatus, CFG_VAL, offsetof(
-        val_vunk_if, admin_status),
-      uud::kDalUint8, 1 },
-    { uudst::vunknown_interface::kDbiDomainId, CK_VAL, offsetof(key_user_data,
-                                                                domain_id),
-      uud::kDalChar, 32 },
-    { uudst::vunknown_interface::kDbiValidDesc, CFG_META_VAL, offsetof(
-        val_vunk_if, valid[UPLL_IDX_DESC_VUNI]),
-      uud::kDalUint8, 1 },
-    { uudst::vunknown_interface::kDbiValidAdminStatus, CFG_DEF_VAL, offsetof(
-        val_vunk_if, valid[UPLL_IDX_ADMIN_ST_VUNI]),
-      uud::kDalUint8, 1 },
-    { uudst::vunknown_interface::kDbiCsDesc, CS_VAL, offsetof(
-        val_vunk_if, cs_attr[UPLL_IDX_DESC_VUNI]),
-      uud::kDalUint8, 1 },
-    { uudst::vunknown_interface::kDbiCsAdminStatus, CS_VAL, offsetof(
-        val_vunk_if, cs_attr[UPLL_IDX_ADMIN_ST_VUNI]),
-      uud::kDalUint8, 1 },
-    { uudst::vunknown_interface::kDbiCsRowstatus, CS_VAL, offsetof(
-        val_vunk_if, cs_row_status),
-      uud::kDalUint8, 1 },
-    { uudst::vunknown_interface::kDbiFlags, CK_VAL, offsetof(key_user_data_t,
-                                                             flags),
-      uud::kDalUint8, 1 } };
+  { uudst::vunknown_interface::kDbiVtnName, CFG_KEY, offsetof(
+          key_vunk_if, vunk_key.vtn_key.vtn_name),
+  uud::kDalChar, 32 },
+  { uudst::vunknown_interface::kDbiVunknownName, CFG_KEY, offsetof(
+          key_vunk_if, vunk_key.vunknown_name),
+  uud::kDalChar, 32 },
+  { uudst::vunknown_interface::kDbiIfName, CFG_KEY, offsetof(key_vunk_if,
+                                                             if_name),
+  uud::kDalChar, 32 },
+  { uudst::vunknown_interface::kDbiDesc, CFG_VAL, offsetof(val_vunk_if,
+                                                           description),
+  uud::kDalChar, 128 },
+  { uudst::vunknown_interface::kDbiAdminStatus, CFG_VAL, offsetof(
+          val_vunk_if, admin_status),
+  uud::kDalUint8, 1 },
+  { uudst::vunknown_interface::kDbiDomainId, CK_VAL, offsetof(key_user_data,
+                                                              domain_id),
+  uud::kDalChar, 32 },
+  { uudst::vunknown_interface::kDbiValidDesc, CFG_META_VAL, offsetof(
+          val_vunk_if, valid[UPLL_IDX_DESC_VUNI]),
+  uud::kDalUint8, 1 },
+  { uudst::vunknown_interface::kDbiValidAdminStatus, CFG_DEF_VAL, offsetof(
+          val_vunk_if, valid[UPLL_IDX_ADMIN_ST_VUNI]),
+  uud::kDalUint8, 1 },
+  { uudst::vunknown_interface::kDbiCsDesc, CS_VAL, offsetof(
+          val_vunk_if, cs_attr[UPLL_IDX_DESC_VUNI]),
+  uud::kDalUint8, 1 },
+  { uudst::vunknown_interface::kDbiCsAdminStatus, CS_VAL, offsetof(
+          val_vunk_if, cs_attr[UPLL_IDX_ADMIN_ST_VUNI]),
+  uud::kDalUint8, 1 },
+  { uudst::vunknown_interface::kDbiCsRowstatus, CS_VAL, offsetof(
+          val_vunk_if, cs_row_status),
+  uud::kDalUint8, 1 },
+  { uudst::vunknown_interface::kDbiFlags, CK_VAL, offsetof(key_user_data_t,
+                                                           flags),
+  uud::kDalUint8, 1 } };
 
 BindInfo VunkIfMoMgr::key_vunk_if_maintbl_update_bind_info[] = {
-    { uudst::vunknown_interface::kDbiVtnName, CFG_MATCH_KEY, offsetof(
-        key_vunk_if, vunk_key.vtn_key.vtn_name),
-      uud::kDalChar, kMaxLenVtnName + 1 },
-    { uudst::vunknown_interface::kDbiVunknownName, CFG_MATCH_KEY, offsetof(
-        key_vunk_if, vunk_key.vunknown_name),
-      uud::kDalChar, kMaxLenVnodeName + 1 },
-    { uudst::vunknown_interface::kDbiIfName, CFG_MATCH_KEY, offsetof(
-        key_vunk_if, if_name),
-      uud::kDalChar, kMaxLenVnodeName + 1 },
-    { uudst::vunknown_interface::kDbiVtnName, CFG_INPUT_KEY, offsetof(
-        key_rename_vnode_info_t, new_unc_vtn_name),
-      uud::kDalChar, kMaxLenVtnName + 1 },
-    { uudst::vunknown_interface::kDbiFlags, CK_VAL, offsetof(
-        key_user_data_t, flags),
-      uud::kDalUint8, 1 } };
+  { uudst::vunknown_interface::kDbiVtnName, CFG_MATCH_KEY, offsetof(
+          key_vunk_if, vunk_key.vtn_key.vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1 },
+  { uudst::vunknown_interface::kDbiVunknownName, CFG_MATCH_KEY, offsetof(
+          key_vunk_if, vunk_key.vunknown_name),
+  uud::kDalChar, kMaxLenVnodeName + 1 },
+  { uudst::vunknown_interface::kDbiIfName, CFG_MATCH_KEY, offsetof(
+          key_vunk_if, if_name),
+  uud::kDalChar, kMaxLenVnodeName + 1 },
+  { uudst::vunknown_interface::kDbiVtnName, CFG_INPUT_KEY, offsetof(
+          key_rename_vnode_info_t, new_unc_vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1 },
+  { uudst::vunknown_interface::kDbiFlags, CK_VAL, offsetof(
+          key_user_data_t, flags),
+  uud::kDalUint8, 1 } };
 
 VunkIfMoMgr::VunkIfMoMgr() {
   UPLL_FUNC_TRACE
-  ntable = MAX_MOMGR_TBLS;
+      ntable = MAX_MOMGR_TBLS;
   table = new Table *[ntable];
   table[MAINTBL] = new Table(uudst::kDbiVunknownIfTbl, UNC_KT_VUNK_IF,
-                         vunk_if_bind_info, IpctSt::kIpcStKeyVunkIf,
-                         IpctSt::kIpcStValVunkIf,
-                         uudst::vunknown_interface::kDbiVunknownIfNumCols);
+                             vunk_if_bind_info, IpctSt::kIpcStKeyVunkIf,
+                             IpctSt::kIpcStValVunkIf,
+                             uudst::vunknown_interface::kDbiVunknownIfNumCols);
   table[RENAMETBL] = NULL;
   table[CTRLRTBL] = NULL;
   nchild = 0;
@@ -113,7 +113,7 @@ bool VunkIfMoMgr::IsValidKey(void *key, uint64_t index) {
   switch (index) {
     case uudst::vunknown_interface::kDbiVtnName :
       ret_val = ValidateKey(reinterpret_cast<char *>
-                           (vunk_if_key->vunk_key.vtn_key.vtn_name),
+                            (vunk_if_key->vunk_key.vtn_key.vtn_name),
                             kMinLenVtnName, kMaxLenVtnName);
       if (ret_val != UPLL_RC_SUCCESS) {
         UPLL_LOG_TRACE("VTN Name is not valid(%d)", ret_val);
@@ -122,7 +122,7 @@ bool VunkIfMoMgr::IsValidKey(void *key, uint64_t index) {
       break;
     case uudst::vunknown_interface::kDbiVunknownName:
       ret_val = ValidateKey(reinterpret_cast<char *>
-                           (vunk_if_key->vunk_key.vunknown_name),
+                            (vunk_if_key->vunk_key.vunknown_name),
                             kMinLenVnodeName, kMaxLenVnodeName);
       if (ret_val != UPLL_RC_SUCCESS) {
         UPLL_LOG_TRACE("Vunknown name is not valid(%d)", ret_val);
@@ -145,46 +145,46 @@ bool VunkIfMoMgr::IsValidKey(void *key, uint64_t index) {
 }
 
 bool VunkIfMoMgr::CompareValidValue(void *&val1,
-                                 void *val2,
-                                 bool copy_to_running) {
+                                    void *val2,
+                                    bool copy_to_running) {
   UPLL_FUNC_TRACE;
   bool invalid_attr = true;
   val_vunk_if *val_vunkif1 = reinterpret_cast<val_vunk_if *>(val1);
   val_vunk_if *val_vunkif2 = reinterpret_cast<val_vunk_if *>(val2);
   if (!val_vunkif2) {
-      UPLL_LOG_TRACE("Invalid param");
-      return UPLL_RC_ERR_GENERIC;
+    UPLL_LOG_TRACE("Invalid param");
+    return UPLL_RC_ERR_GENERIC;
   }
   for (unsigned int loop = 0;
-        loop < sizeof(val_vunkif1->valid) / sizeof(uint8_t); ++loop) {
-      if (UNC_VF_INVALID == val_vunkif1->valid[loop]
-          && UNC_VF_VALID == val_vunkif2->valid[loop]) 
-        val_vunkif1->valid[loop] = UNC_VF_VALID_NO_VALUE;
+       loop < sizeof(val_vunkif1->valid) / sizeof(uint8_t); ++loop) {
+    if (UNC_VF_INVALID == val_vunkif1->valid[loop]
+        && UNC_VF_VALID == val_vunkif2->valid[loop])
+      val_vunkif1->valid[loop] = UNC_VF_VALID_NO_VALUE;
   }
   /* Specify the configured ip address for
    * PFC to clear the configured IP address
    */
   if ((UNC_VF_VALID == val_vunkif1->valid[UPLL_IDX_DESC_VUNI])
-        && (UNC_VF_VALID == val_vunkif2->valid[UPLL_IDX_DESC_VUNI]))
+      && (UNC_VF_VALID == val_vunkif2->valid[UPLL_IDX_DESC_VUNI]))
     if (!strncmp(reinterpret_cast<char*>(val_vunkif1->description),
                  reinterpret_cast<char*>(val_vunkif2->description),
                  kMaxLenDescription))
-        val_vunkif1->valid[UPLL_IDX_DESC_VUNI] = UNC_VF_INVALID;
+      val_vunkif1->valid[UPLL_IDX_DESC_VUNI] = UNC_VF_INVALID;
 
-  if ((val_vunkif2->valid[UPLL_IDX_ADMIN_ST_VUNI] == 
+  if ((val_vunkif2->valid[UPLL_IDX_ADMIN_ST_VUNI] ==
        val_vunkif1->valid[UPLL_IDX_ADMIN_ST_VUNI])
       && UNC_VF_INVALID != val_vunkif2->valid[UPLL_IDX_ADMIN_ST_VUNI]) {
     if (val_vunkif1->admin_status == val_vunkif2->admin_status)
-      val_vunkif1->valid[UPLL_IDX_ADMIN_ST_VUNI] = 
-        (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
+      val_vunkif1->valid[UPLL_IDX_ADMIN_ST_VUNI] =
+          (copy_to_running)?UNC_VF_INVALID:UNC_VF_VALUE_NOT_MODIFIED;
   }
 
   for (unsigned int loop = 0;
-      loop < sizeof(val_vunkif1->valid) / sizeof(uint8_t); ++loop) {
+       loop < sizeof(val_vunkif1->valid) / sizeof(uint8_t); ++loop) {
     if ((UNC_VF_VALID == (uint8_t) val_vunkif1->valid[loop]) ||
-       (UNC_VF_VALID_NO_VALUE == (uint8_t) val_vunkif1->valid[loop])) {
-        invalid_attr = false;
-        break;
+        (UNC_VF_VALID_NO_VALUE == (uint8_t) val_vunkif1->valid[loop])) {
+      invalid_attr = false;
+      break;
     }
   }
   return invalid_attr;
@@ -216,37 +216,41 @@ upll_rc_t VunkIfMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
     vunk_key_if = static_cast<key_vunk_if *>(okey->get_key());
   } else {
     vunk_key_if = static_cast<key_vunk_if *>
-                  (ConfigKeyVal::Malloc(sizeof(key_vunk_if)));
+        (ConfigKeyVal::Malloc(sizeof(key_vunk_if)));
   }
   unc_key_type_t keytype = parent_key->get_key_type();
   switch (keytype) {
     case UNC_KT_VTN:
       uuu::upll_strncpy(vunk_key_if->vunk_key.vtn_key.vtn_name,
-             reinterpret_cast<char *>(static_cast<key_vtn *>(pkey)->vtn_name),
-             kMaxLenVtnName+1);
+                        reinterpret_cast<char *>
+                        (static_cast<key_vtn *>(pkey)->vtn_name),
+                        kMaxLenVtnName+1);
       break;
     case UNC_KT_VUNKNOWN:
       uuu::upll_strncpy(vunk_key_if->vunk_key.vtn_key.vtn_name,
-             reinterpret_cast<char *>
-                      (static_cast<key_vunknown *>(pkey)->vtn_key.vtn_name),
-                      kMaxLenVtnName+1);
+                        reinterpret_cast<char *>
+                        (static_cast<key_vunknown *>(pkey)->vtn_key.vtn_name),
+                        kMaxLenVtnName+1);
       uuu::upll_strncpy(vunk_key_if->vunk_key.vunknown_name,
-             reinterpret_cast<char *>
-                      (static_cast<key_vunknown *>(pkey)->vunknown_name),
-                      kMaxLenVnodeName+1);
+                        reinterpret_cast<char *>
+                        (static_cast<key_vunknown *>(pkey)->vunknown_name),
+                        kMaxLenVnodeName+1);
       break;
     case UNC_KT_VUNK_IF:
       uuu::upll_strncpy(vunk_key_if->vunk_key.vtn_key.vtn_name,
-             reinterpret_cast<char *>(static_cast<key_vunk_if *>
-                           (pkey)->vunk_key.vtn_key.vtn_name),
-                           kMaxLenVtnName+1);
+                        reinterpret_cast<char *>
+                        (static_cast<key_vunk_if *>
+                         (pkey)->vunk_key.vtn_key.vtn_name),
+                        kMaxLenVtnName+1);
       uuu::upll_strncpy(vunk_key_if->vunk_key.vunknown_name,
-             reinterpret_cast<char *>(static_cast<key_vunk_if *>
-                               (pkey)->vunk_key.vunknown_name),
-                               kMaxLenVnodeName+1);
+                        reinterpret_cast<char *>
+                        (static_cast<key_vunk_if *>
+                         (pkey)->vunk_key.vunknown_name),
+                        kMaxLenVnodeName+1);
       uuu::upll_strncpy(vunk_key_if->if_name,
-             reinterpret_cast<char *>(static_cast<key_vunk_if *>
-             (pkey)->if_name), kMaxLenInterfaceName+1);
+                        reinterpret_cast<char *>
+                        (static_cast<key_vunk_if *>
+                         (pkey)->if_name), kMaxLenInterfaceName+1);
       break;
     case UNC_KT_VLINK: {
       uint8_t *vnode_name, *if_name;
@@ -259,7 +263,7 @@ upll_rc_t VunkIfMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
       }
       GET_USER_DATA_FLAGS(parent_key->get_cfg_val(), flags);
       flags &=  VLINK_FLAG_NODE_POS;
-      UPLL_LOG_DEBUG("Vlink flag node position %d",flags);
+      UPLL_LOG_DEBUG("Vlink flag node position %d", flags);
       if (flags == kVlinkVnode2) {
         cfgval_ctrlr = true;
         vnode_name = vlink_val->vnode2_name;
@@ -278,7 +282,7 @@ upll_rc_t VunkIfMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
         uuu::upll_strncpy(vunk_key_if->if_name, if_name,
                           (kMaxLenInterfaceName + 1));
     }
-    break;
+      break;
     default:
       break;
   }
@@ -312,21 +316,21 @@ upll_rc_t VunkIfMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
 
   if (ikey_type != UNC_KT_VUNK_IF) return UPLL_RC_ERR_GENERIC;
   key_vunk_if *pkey = static_cast<key_vunk_if *>
-                  (ikey->get_key());
+      (ikey->get_key());
   if (!pkey) return UPLL_RC_ERR_GENERIC;
   key_vunknown *vunk_key = static_cast<key_vunknown *>
-                  (malloc(sizeof(key_vunknown)));
+      (malloc(sizeof(key_vunknown)));
   if (!vunk_key) return UPLL_RC_ERR_GENERIC;
   memset(vunk_key, 0, sizeof(key_vunknown));
 #if 1
   uuu::upll_strncpy(vunk_key->vtn_key.vtn_name,
-         reinterpret_cast<char *>(static_cast<key_vunk_if *>
-                  (pkey)->vunk_key.vtn_key.vtn_name),
-                  kMaxLenVtnName+1);
+                    reinterpret_cast<char *>(static_cast<key_vunk_if *>
+                                             (pkey)->vunk_key.vtn_key.vtn_name),
+                    kMaxLenVtnName+1);
   uuu::upll_strncpy(vunk_key->vunknown_name,
-         reinterpret_cast<char *>(static_cast<key_vunk_if *>
-                  (pkey)->vunk_key.vunknown_name),
-                  kMaxLenVnodeName+1);
+                    reinterpret_cast<char *>(static_cast<key_vunk_if *>
+                                             (pkey)->vunk_key.vunknown_name),
+                    kMaxLenVnodeName+1);
 #endif
   if (okey) delete okey;
   okey = new ConfigKeyVal(UNC_KT_VUNKNOWN, IpctSt::kIpcStKeyVunknown, vunk_key,
@@ -354,7 +358,7 @@ upll_rc_t VunkIfMoMgr::AllocVal(ConfigVal *&ck_val,
       ck_val = new ConfigVal(IpctSt::kIpcStValVunkIf, val);
       break;
     default:
-         UPLL_LOG_TRACE("Invalid Table for VunknownInterface");
+      UPLL_LOG_TRACE("Invalid Table for VunknownInterface");
       val = NULL;
   }
   return UPLL_RC_SUCCESS;
@@ -372,7 +376,7 @@ upll_rc_t VunkIfMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
     if (tbl == MAINTBL) {
       val_vunk_if *ival = static_cast<val_vunk_if *>(GetVal(req));
       val_vunk_if *vunk_val_if = static_cast<val_vunk_if *>
-                                           (malloc(sizeof(val_vunk_if)));
+          (malloc(sizeof(val_vunk_if)));
       if (!vunk_val_if) return UPLL_RC_ERR_GENERIC;
       memcpy(vunk_val_if, ival, sizeof(val_vunk_if));
       tmp1 = new ConfigVal(IpctSt::kIpcStValVunkIf, vunk_val_if);
@@ -381,7 +385,7 @@ upll_rc_t VunkIfMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
   void *tkey = (req != NULL) ? (req)->get_key() : NULL;
   key_vunk_if *ikey = static_cast<key_vunk_if *>(tkey);
   key_vunk_if *vunk_if_key = static_cast<key_vunk_if *>
-                                    (malloc(sizeof(key_vunk_if)));
+      (malloc(sizeof(key_vunk_if)));
   if (!vunk_if_key) {
     delete tmp1;
     return UPLL_RC_ERR_GENERIC;
@@ -394,8 +398,10 @@ upll_rc_t VunkIfMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
 }
 
 upll_rc_t VunkIfMoMgr::UpdateAuditConfigStatus(
-    unc_keytype_configstatus_t cs_status, uuc::UpdateCtrlrPhase phase,
-    ConfigKeyVal *&ckv_running) {
+    unc_keytype_configstatus_t cs_status,
+    uuc::UpdateCtrlrPhase phase,
+    ConfigKeyVal *&ckv_running,
+    DalDmlIntf *dmi) {
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   return result_code;
 }
@@ -411,7 +417,7 @@ upll_rc_t VunkIfMoMgr::UpdateConfigStatus(ConfigKeyVal *ikey,
   val_vunk_if *vunk_if_val2 = reinterpret_cast<val_vunk_if *>(GetVal(upd_key));
 
   unc_keytype_configstatus_t cs_status = UNC_CS_APPLIED;
-  UPLL_LOG_TRACE("Key in Candidate %s",(ikey->ToStrAll()).c_str());
+  UPLL_LOG_TRACE("Key in Candidate %s", (ikey->ToStrAll()).c_str());
   if (vunk_if_val == NULL) {
     UPLL_LOG_TRACE("Value of Vunknown Interface is NULL");
     return UPLL_RC_ERR_GENERIC;
@@ -421,10 +427,10 @@ upll_rc_t VunkIfMoMgr::UpdateConfigStatus(ConfigKeyVal *ikey,
   } else if (op == UNC_OP_UPDATE) {
     void *vunkifval = reinterpret_cast<void *>(vunk_if_val);
     CompareValidValue(vunkifval, GetVal(upd_key), true);
-    UPLL_LOG_TRACE("Key in Running %s",(upd_key->ToStrAll()).c_str());
+    UPLL_LOG_TRACE("Key in Running %s", (upd_key->ToStrAll()).c_str());
     vunk_if_val->cs_row_status = vunk_if_val2->cs_row_status;
   } else {
-     return UPLL_RC_ERR_GENERIC;
+    return UPLL_RC_ERR_GENERIC;
   }
   for (unsigned int loop = 0;
        loop < sizeof(vunk_if_val->valid)/sizeof(vunk_if_val->valid[0]);
@@ -436,54 +442,58 @@ upll_rc_t VunkIfMoMgr::UpdateConfigStatus(ConfigKeyVal *ikey,
              (UNC_OP_CREATE == op))
       vunk_if_val->cs_attr[loop] = UNC_CS_APPLIED;
     else if ((UNC_VF_INVALID == vunk_if_val->valid[loop]) &&
-             (UNC_OP_UPDATE == op)) 
+             (UNC_OP_UPDATE == op))
       vunk_if_val->cs_attr[loop] = vunk_if_val2->cs_attr[loop];
   }
   return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t VunkIfMoMgr::PopulateValVtnNeighbor(ConfigKeyVal *&in_ckv,
-                                             DalDmlIntf *dmi) {
+                                              DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   // Read on the left side of the link
   bool got_left_side = false;
   ConfigKeyVal *vlink_ckv = NULL;
   VlinkMoMgr *vlink_momgr = reinterpret_cast<VlinkMoMgr *>
-                           (const_cast<MoManager*>(GetMoManager(UNC_KT_VLINK)));
+      (const_cast<MoManager*>(GetMoManager(UNC_KT_VLINK)));
   if (!vlink_momgr) {
     UPLL_LOG_DEBUG("Invalid Mgr");
     return UPLL_RC_ERR_GENERIC;
   }
   vn_if_type iftype;
   upll_rc_t result_code = vlink_momgr->CheckIfMemberOfVlink(in_ckv,
-                               UPLL_DT_RUNNING, vlink_ckv, dmi, iftype);
+                                                            UPLL_DT_RUNNING,
+                                                            vlink_ckv,
+                                                            dmi,
+                                                            iftype);
   if (!vlink_ckv || result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE) {
     UPLL_LOG_TRACE("Not found in vlink table");
   } else if (result_code == UPLL_RC_SUCCESS) {
     key_vlink_t *vlink_key = reinterpret_cast<key_vlink_t *>
-                                             (vlink_ckv->get_key());
+        (vlink_ckv->get_key());
     if (!vlink_key) {
       UPLL_LOG_DEBUG("Invalid param");
       if (vlink_ckv) delete vlink_ckv;
       return UPLL_RC_ERR_GENERIC;
     }
     if ((iftype == kVlinkBoundaryNode1) || (iftype == kVlinkInternalNode1))
-     got_left_side = true;
+      got_left_side = true;
     val_vlink_t *vlink_val = reinterpret_cast<val_vlink *>
-                       (GetVal(vlink_ckv));
+        (GetVal(vlink_ckv));
     val_vtn_neighbor_t *val_vtn_neighbor =
-     reinterpret_cast<val_vtn_neighbor_t *>(malloc(sizeof(val_vtn_neighbor_t)));
+        reinterpret_cast<val_vtn_neighbor_t *>
+        (malloc(sizeof(val_vtn_neighbor_t)));
     memset(val_vtn_neighbor, 0, sizeof(val_vtn_neighbor_t));
     val_vtn_neighbor->valid[UPLL_IDX_CONN_VNODE_NAME_VN] = UNC_VF_VALID;
     val_vtn_neighbor->valid[UPLL_IDX_CONN_VNODE_IF_NAME_VN] = UNC_VF_VALID;
     val_vtn_neighbor->valid[UPLL_IDX_CONN_VLINK_NAME_VN] = UNC_VF_VALID;
     uuu::upll_strncpy(val_vtn_neighbor->connected_vnode_name,
                       ((got_left_side) ? vlink_val->vnode2_name :
-                                         vlink_val->vnode1_name),
+                       vlink_val->vnode1_name),
                       (kMaxLenVnodeName + 1));
     uuu::upll_strncpy(val_vtn_neighbor->connected_if_name,
                       ((got_left_side) ? vlink_val->vnode2_ifname :
-                                         vlink_val->vnode1_ifname),
+                       vlink_val->vnode1_ifname),
                       (kMaxLenInterfaceName + 1));
     uuu::upll_strncpy(val_vtn_neighbor->connected_vlink_name,
                       vlink_key->vlink_name, (kMaxLenVnodeName + 1));
@@ -499,30 +509,12 @@ upll_rc_t VunkIfMoMgr::PopulateValVtnNeighbor(ConfigKeyVal *&in_ckv,
 
 upll_rc_t VunkIfMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
                                        ConfigKeyVal *ikey) {
-  if (!ikey || !(ikey->get_key())) return UPLL_RC_ERR_GENERIC;
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-  key_rename_vnode_info *key_rename = static_cast<key_rename_vnode_info *>
-                                                         (ikey->get_key());
-  key_vunk_if_t *key_vunk = static_cast<key_vunk_if_t *>
-                              (ConfigKeyVal::Malloc(sizeof(key_vunk_if_t)));
-  if (!strlen(reinterpret_cast<char *>(key_rename->old_unc_vtn_name))) {
-    free(key_vunk);
-    return UPLL_RC_ERR_GENERIC;
-  }
-  uuu::upll_strncpy(key_vunk->vunk_key.vtn_key.vtn_name,
-         reinterpret_cast<char *>(key_rename->old_unc_vtn_name),
-                                              kMaxLenVtnName+1);
-  okey = new ConfigKeyVal(UNC_KT_VUNK_IF, IpctSt::kIpcStKeyVunkIf, key_vunk,
-                          NULL);
-  if (!okey) {
-    free(key_vunk);
-    return UPLL_RC_ERR_GENERIC;
-  }
-  return result_code;
+  UPLL_LOG_INFO("Not supported for this keytype. Returning Generic Error");
+  return UPLL_RC_ERR_GENERIC;
 }
 
 upll_rc_t VunkIfMoMgr::ValidateMessage(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey) {
+                                       ConfigKeyVal *ikey) {
   UPLL_FUNC_TRACE;
   upll_rc_t ret_val = UPLL_RC_ERR_GENERIC;
   if (!ikey || !req || !(ikey->get_key())) {
@@ -536,13 +528,14 @@ upll_rc_t VunkIfMoMgr::ValidateMessage(IpcReqRespHeader *req,
   }
   if (ikey->get_st_num() != IpctSt::kIpcStKeyVunkIf) {
     UPLL_LOG_DEBUG(
-        "Invalid structure received.Expected struct-kIpcStKeyVunkIf,"
+        "Invalid structure received.Expected struct-kIpcStKeyVunkIf, "
         "received struct -%s ",
-        reinterpret_cast<const char *>(IpctSt::GetIpcStdef(ikey->get_st_num())));
+        reinterpret_cast<const char *>
+        (IpctSt::GetIpcStdef(ikey->get_st_num())));
     return UPLL_RC_ERR_BAD_REQUEST;
   }
   key_vunk_if_t *key_vunk_if =
-    static_cast<key_vunk_if_t *>(ikey->get_key());
+      static_cast<key_vunk_if_t *>(ikey->get_key());
 
   upll_keytype_datatype_t dt_type = req->datatype;
   unc_keytype_operation_t operation = req->operation;
@@ -565,10 +558,10 @@ upll_rc_t VunkIfMoMgr::ValidateMessage(IpcReqRespHeader *req,
     if ((ikey->get_cfg_val())
         && (ikey->get_cfg_val())->get_st_num() == IpctSt::kIpcStValVunkIf) {
       val_vunk_if =
-        static_cast<val_vunk_if_t *>(ikey->get_cfg_val()->get_val());
+          static_cast<val_vunk_if_t *>(ikey->get_cfg_val()->get_val());
     }
     if (val_vunk_if != NULL) {
-      ret_val = ValidateVunkIfValue(val_vunk_if,operation);
+      ret_val = ValidateVunkIfValue(val_vunk_if, operation);
       if (ret_val != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("Syntax check failed for VUNK_IF value structure");
         return UPLL_RC_ERR_CFG_SYNTAX;
@@ -584,10 +577,10 @@ upll_rc_t VunkIfMoMgr::ValidateMessage(IpcReqRespHeader *req,
     if ((ikey->get_cfg_val())
         && (ikey->get_cfg_val())->get_st_num() == IpctSt::kIpcStValVunkIf) {
       val_vunk_if =
-        reinterpret_cast<val_vunk_if_t *>(ikey->get_cfg_val()->get_val());
+          reinterpret_cast<val_vunk_if_t *>(ikey->get_cfg_val()->get_val());
     }
     if (val_vunk_if != NULL) {
-      ret_val = ValidateVunkIfValue(val_vunk_if,operation);
+      ret_val = ValidateVunkIfValue(val_vunk_if, operation);
       if (ret_val != UPLL_RC_SUCCESS) {
         UPLL_LOG_DEBUG("Syntax check failed for VINK_IF value structure");
         return UPLL_RC_ERR_CFG_SYNTAX;
@@ -605,7 +598,7 @@ upll_rc_t VunkIfMoMgr::ValidateMessage(IpcReqRespHeader *req,
             && ((ikey->get_cfg_val())->get_st_num()
                 == IpctSt::kIpcStValVtnNeighbor)) {
           val_vtn_neighbor =
-           static_cast<val_vtn_neighbor_t *>(ikey->get_cfg_val()->get_val());
+              static_cast<val_vtn_neighbor_t *>(ikey->get_cfg_val()->get_val());
         }
         if (val_vtn_neighbor != NULL) {
           ret_val = ValidateVtnNeighValue(val_vtn_neighbor);
@@ -629,16 +622,16 @@ upll_rc_t VunkIfMoMgr::ValidateMessage(IpcReqRespHeader *req,
       return UPLL_RC_ERR_INVALID_OPTION1;
     }
   } else if ((operation == UNC_OP_READ)
-      && ((dt_type == UPLL_DT_CANDIDATE) || (dt_type == UPLL_DT_RUNNING)
-          || (dt_type == UPLL_DT_STARTUP))) {
+             && ((dt_type == UPLL_DT_CANDIDATE) || (dt_type == UPLL_DT_RUNNING)
+                 || (dt_type == UPLL_DT_STARTUP))) {
     if (option1 == UNC_OPT1_NORMAL) {
       if (option2 == UNC_OPT2_NEIGHBOR) {
         val_vtn_neighbor_t *val_vtn_neighbor = NULL;
         if ((ikey->get_cfg_val())
             && (ikey->get_cfg_val())->get_st_num()
-                == IpctSt::kIpcStValVtnNeighbor) {
+            == IpctSt::kIpcStValVtnNeighbor) {
           val_vtn_neighbor =
-            static_cast<val_vtn_neighbor_t *>(ikey->get_cfg_val()->get_val());
+              static_cast<val_vtn_neighbor_t *>(ikey->get_cfg_val()->get_val());
         }
         if (val_vtn_neighbor != NULL) {
           ret_val = ValidateVtnNeighValue(val_vtn_neighbor);
@@ -662,21 +655,22 @@ upll_rc_t VunkIfMoMgr::ValidateMessage(IpcReqRespHeader *req,
       return UPLL_RC_ERR_INVALID_OPTION1;
     }
   } else if (((operation == UNC_OP_READ_SIBLING)
-      || (operation == UNC_OP_READ_SIBLING_BEGIN)
-      || (operation == UNC_OP_READ_SIBLING_COUNT))
-      && ((dt_type == UPLL_DT_CANDIDATE) || (dt_type == UPLL_DT_RUNNING)
-          || (dt_type == UPLL_DT_STARTUP) || (dt_type == UPLL_DT_STATE))) {
+              || (operation == UNC_OP_READ_SIBLING_BEGIN)
+              || (operation == UNC_OP_READ_SIBLING_COUNT))
+             && ((dt_type == UPLL_DT_CANDIDATE) || (dt_type == UPLL_DT_RUNNING)
+                 || (dt_type == UPLL_DT_STARTUP) ||
+                 (dt_type == UPLL_DT_STATE))) {
     if (option1 == UNC_OPT1_NORMAL) {
       if (option2 == UNC_OPT2_NONE) {
         val_vunk_if_t *val_vunk_if = NULL;
         if ((ikey->get_cfg_val())
             && ((ikey->get_cfg_val())->get_st_num() ==
-                                              IpctSt::kIpcStValVunkIf)) {
+                IpctSt::kIpcStValVunkIf)) {
           val_vunk_if =
               static_cast<val_vunk_if_t *>(ikey->get_cfg_val()->get_val());
         }
         if (val_vunk_if != NULL) {
-          ret_val = ValidateVunkIfValue(val_vunk_if,operation);
+          ret_val = ValidateVunkIfValue(val_vunk_if, operation);
           if (ret_val != UPLL_RC_SUCCESS) {
             UPLL_LOG_DEBUG("Syntax check failed for VUNK_IF value structure");
             return ret_val;
@@ -700,46 +694,48 @@ upll_rc_t VunkIfMoMgr::ValidateMessage(IpcReqRespHeader *req,
     UPLL_LOG_TRACE("Value structure is none for this operation :%d", operation);
     return UPLL_RC_SUCCESS;
   } else if (((operation == UNC_OP_READ_NEXT) ||
-        (operation == UNC_OP_READ_BULK)) &&
-      ((dt_type == UPLL_DT_CANDIDATE) ||
-       (dt_type == UPLL_DT_RUNNING) ||
-       (dt_type == UPLL_DT_STARTUP))) {
+              (operation == UNC_OP_READ_BULK)) &&
+             ((dt_type == UPLL_DT_CANDIDATE) ||
+              (dt_type == UPLL_DT_RUNNING) ||
+              (dt_type == UPLL_DT_STARTUP))) {
     UPLL_LOG_TRACE("Value structure is none for this operation :%d", operation);
     return UPLL_RC_SUCCESS;
   } else {
     UPLL_LOG_DEBUG("Invalid datatype(%d) and operation(%d)", dt_type,
-        operation);
+                   operation);
     return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
   }
   return UPLL_RC_SUCCESS;
 }
 
 upll_rc_t VunkIfMoMgr::ValidateVunkIfValue(val_vunk_if_t *val_vunk_if,
-    unc_keytype_operation_t operation) {
+                                           unc_keytype_operation_t operation) {
   UPLL_FUNC_TRACE;
   if (val_vunk_if->valid[UPLL_IDX_DESC_VUNI] == UNC_VF_VALID) {
     if (!ValidateDesc(val_vunk_if->description,
-        kMinLenDescription, kMaxLenDescription)) {
+                      kMinLenDescription, kMaxLenDescription)) {
       UPLL_LOG_DEBUG("Syntax check failed desc:(%s)", val_vunk_if->description);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if ((val_vunk_if->valid[UPLL_IDX_DESC_VUNI] == UNC_VF_VALID_NO_VALUE)
-      && ((operation == UNC_OP_UPDATE) || (operation == UNC_OP_CREATE))) {
+             && ((operation == UNC_OP_UPDATE) ||
+                 (operation == UNC_OP_CREATE))) {
     val_vunk_if->description[0] = '\0';
   }
   if (val_vunk_if->valid[UPLL_IDX_ADMIN_ST_VUNI] == UNC_VF_VALID) {
     if (!ValidateNumericRange(val_vunk_if->admin_status,
-          (uint8_t) UPLL_ADMIN_ENABLE,
-          (uint8_t) UPLL_ADMIN_DISABLE, true, true)) {
+                              (uint8_t) UPLL_ADMIN_ENABLE,
+                              (uint8_t) UPLL_ADMIN_DISABLE, true, true)) {
       UPLL_LOG_DEBUG("Syntax check failed admst:%d", val_vunk_if->admin_status);
       return UPLL_RC_ERR_CFG_SYNTAX;
     }
   } else if ((val_vunk_if->valid[UPLL_IDX_ADMIN_ST_VUNI]
-        == UNC_VF_VALID_NO_VALUE)
-      && ((operation == UNC_OP_UPDATE) || (operation == UNC_OP_CREATE))) {
+              == UNC_VF_VALID_NO_VALUE)
+             && ((operation == UNC_OP_UPDATE) ||
+                 (operation == UNC_OP_CREATE))) {
     val_vunk_if->admin_status = UPLL_ADMIN_ENABLE;
   } else if ((val_vunk_if->valid[UPLL_IDX_ADMIN_ST_VUNI] == UNC_VF_INVALID)
-                                           && (operation == UNC_OP_CREATE)) {
+             && (operation == UNC_OP_CREATE)) {
     val_vunk_if->valid[UPLL_IDX_ADMIN_ST_VUNI] = UNC_VF_VALID_NO_VALUE;
     val_vunk_if->admin_status = UPLL_ADMIN_ENABLE;
   }
@@ -757,7 +753,7 @@ upll_rc_t VunkIfMoMgr::ValidateVtnNeighValue(
         kMinLenVnodeName, kMaxLenVnodeName);
     if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Syntax check failed.conn_vnode_name-(%s)",
-          val_vtn_neighbor->connected_vnode_name);
+                     val_vtn_neighbor->connected_vnode_name);
       return ret_val;
     }
   }
@@ -768,7 +764,7 @@ upll_rc_t VunkIfMoMgr::ValidateVtnNeighValue(
         kMinLenInterfaceName, kMaxLenInterfaceName);
     if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Syntax check failed. connected_if_name-%s",
-          val_vtn_neighbor->connected_if_name);
+                     val_vtn_neighbor->connected_if_name);
       return ret_val;
     }
   }
@@ -778,20 +774,20 @@ upll_rc_t VunkIfMoMgr::ValidateVtnNeighValue(
         kMinLenVlinkName, kMaxLenVlinkName);
     if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Syntax check failed.connected_vlink_name=%s",
-          val_vtn_neighbor->connected_vlink_name);
+                     val_vtn_neighbor->connected_vlink_name);
       return ret_val;
     }
   }
   return UPLL_RC_SUCCESS;
 }
 upll_rc_t VunkIfMoMgr::ValidateVunkIfKey(key_vunk_if_t *key_vunk_if,
-    unc_keytype_operation_t operation) {
+                                         unc_keytype_operation_t operation) {
   UPLL_FUNC_TRACE;
   upll_rc_t ret_val = UPLL_RC_SUCCESS;
   /** Validate vtn_key structure */
   VunknownMoMgr *objvunkmgr =
-    reinterpret_cast<VunknownMoMgr *>(const_cast<MoManager *>(GetMoManager(
-            UNC_KT_VUNKNOWN)));
+      reinterpret_cast<VunknownMoMgr *>(const_cast<MoManager *>(GetMoManager(
+                  UNC_KT_VUNKNOWN)));
   if (NULL == objvunkmgr) {
     UPLL_LOG_DEBUG("unable to get VunknownMoMgr to validate key_vunknown");
     return UPLL_RC_ERR_GENERIC;
@@ -805,7 +801,7 @@ upll_rc_t VunkIfMoMgr::ValidateVunkIfKey(key_vunk_if_t *key_vunk_if,
   if ((operation != UNC_OP_READ_SIBLING_BEGIN) &&
       (operation != UNC_OP_READ_SIBLING_COUNT)) {
     ret_val = ValidateKey(reinterpret_cast<char *>(key_vunk_if->if_name),
-        kMinLenInterfaceName, kMaxLenInterfaceName);
+                          kMinLenInterfaceName, kMaxLenInterfaceName);
 
     if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Syntax check failed.if_name-(%s)", key_vunk_if->if_name);
@@ -814,7 +810,7 @@ upll_rc_t VunkIfMoMgr::ValidateVunkIfKey(key_vunk_if_t *key_vunk_if,
   } else {
     UPLL_LOG_TRACE("Operation is %d", operation);
     StringReset(key_vunk_if->if_name);
-  }  
+  }
   return UPLL_RC_SUCCESS;
 }
 
@@ -824,21 +820,21 @@ upll_rc_t VunkIfMoMgr::IsReferenced(ConfigKeyVal *ikey,
   UPLL_FUNC_TRACE;
   ConfigKeyVal *okey = NULL;
   if (NULL == ikey)
-     return UPLL_RC_ERR_GENERIC;
+    return UPLL_RC_ERR_GENERIC;
   GetChildConfigKey(okey, ikey);
   DbSubOp dbop = { kOpReadMultiple, kOpMatchNone, kOpInOutFlag };
-  upll_rc_t result_code = ReadConfigDB(okey, dt_type, UNC_OP_READ, 
+  upll_rc_t result_code = ReadConfigDB(okey, dt_type, UNC_OP_READ,
                                        dbop, dmi, MAINTBL);
   if (result_code != UPLL_RC_SUCCESS) {
     result_code = (result_code == UPLL_RC_ERR_NO_SUCH_INSTANCE)?
-                    UPLL_RC_SUCCESS:result_code;
+        UPLL_RC_SUCCESS:result_code;
     if (okey) delete okey;
     return result_code;
   }
   ConfigKeyVal *temkey = okey;
   while (temkey != NULL) {
     uint8_t vlink_flag = 0;
-    GET_USER_DATA_FLAGS(temkey,vlink_flag);
+    GET_USER_DATA_FLAGS(temkey, vlink_flag);
     if (vlink_flag & VIF_TYPE) {
       delete okey;
       return UPLL_RC_ERR_CFG_SEMANTIC;
index bbd554fdcd3b3ffe2ba4c92ef49ad86c7dfaf501..00e5a1e465fc132bede2c24527894bdf0bd93952 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -21,319 +21,343 @@ namespace kt_momgr {
 
 
 class VunkIfMoMgr : public MoMgrImpl {
-  private:
-    static BindInfo vunk_if_bind_info[];
-    static BindInfo key_vunk_if_maintbl_update_bind_info[];
-    /**
-     * @brief  Gets the valid array position of the variable in the value
-     *         structure from the table in the specified configuration
-     *
-     * @param[in]     val      pointer to the value structure
-     * @param[in]     indx     database index for the variable
-     * @param[out]    valid    position of the variable in the valid array -
-     *                          NULL if valid does not exist.
-     * @param[in]     dt_type  specifies the configuration
-     * @param[in]     tbl      specifies the table containing the given value
-     *
-     **/
-    upll_rc_t GetValid(void *val,
-                       uint64_t indx,
-                       uint8_t *&valid,
-                       upll_keytype_datatype_t dt_type,
-                       MoMgrTables tbl) {
-      if (val == NULL) return UPLL_RC_ERR_GENERIC;
-      valid = NULL;
-      if (tbl == MAINTBL) {
-        switch (indx) {
-          case uudst::vunknown_interface::kDbiAdminStatus:
-            valid = &(reinterpret_cast<val_vunk_if *>(val))->
-                          valid[UPLL_IDX_ADMIN_ST_VUNI];
-            break;
-          case uudst::vunknown_interface::kDbiDesc:
-            valid = &(reinterpret_cast<val_vunk_if *>(val))->
-                          valid[UPLL_IDX_DESC_VUNI];
-            break;
-          default:
-            valid = NULL;
-            return UPLL_RC_ERR_GENERIC;
-        }
+ private:
+  static BindInfo vunk_if_bind_info[];
+  static BindInfo key_vunk_if_maintbl_update_bind_info[];
+  /**
+   * @brief  Gets the valid array position of the variable in the value
+   *         structure from the table in the specified configuration
+   *
+   * @param[in]     val      pointer to the value structure
+   * @param[in]     indx     database index for the variable
+   * @param[out]    valid    position of the variable in the valid array -
+   *                          NULL if valid does not exist.
+   * @param[in]     dt_type  specifies the configuration
+   * @param[in]     tbl      specifies the table containing the given value
+   *
+   **/
+  upll_rc_t GetValid(void *val,
+                     uint64_t indx,
+                     uint8_t *&valid,
+                     upll_keytype_datatype_t dt_type,
+                     MoMgrTables tbl) {
+    if (val == NULL) return UPLL_RC_ERR_GENERIC;
+    valid = NULL;
+    if (tbl == MAINTBL) {
+      switch (indx) {
+        case uudst::vunknown_interface::kDbiAdminStatus:
+          valid = &(reinterpret_cast<val_vunk_if *>(val))->
+              valid[UPLL_IDX_ADMIN_ST_VUNI];
+          break;
+        case uudst::vunknown_interface::kDbiDesc:
+          valid = &(reinterpret_cast<val_vunk_if *>(val))->
+              valid[UPLL_IDX_DESC_VUNI];
+          break;
+        default:
+          valid = NULL;
+          return UPLL_RC_ERR_GENERIC;
       }
-      return UPLL_RC_SUCCESS;
     }
-    upll_rc_t UpdateConfigStatus(ConfigKeyVal *req, unc_keytype_operation_t op,
-                                 uint32_t driver_result, ConfigKeyVal *upd_key,
-                                 DalDmlIntf *dmi,
-                                 ConfigKeyVal *ctrlr_key = NULL);
-    /**
-     * @brief  Update config status for commit result and vote result.
-     *
-     * @param[in/out]  ckv_running  ConfigKeyVal instance.
-     * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
-     * @param[in]      phase        specify the phase (CREATE, DELETE or UPDATE)
-     *
-     **/
-    upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
-                                      uuc::UpdateCtrlrPhase phase,
-                                      ConfigKeyVal *&ckv_running);
+    return UPLL_RC_SUCCESS;
+  }
+  upll_rc_t UpdateConfigStatus(ConfigKeyVal *req, unc_keytype_operation_t op,
+                               uint32_t driver_result, ConfigKeyVal *upd_key,
+                               DalDmlIntf *dmi,
+                               ConfigKeyVal *ctrlr_key = NULL);
+  /**
+   * @brief  Update config status for commit result and vote result.
+   *
+   * @param[in/out]  ckv_running  ConfigKeyVal instance.
+   * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
+   * @param[in]      phase        specify the phase (CREATE, DELETE or UPDATE)
+   * @param[in]      dmi          Pointer to the DalDmlIntf(DB Interface)
+   *
+   **/
+  upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
+                                    uuc::UpdateCtrlrPhase phase,
+                                    ConfigKeyVal *&ckv_running,
+                                    DalDmlIntf *dmi);
 
-    /**
-     * @brief  Compares the valid value between two database records.
-     *             if both the values are same, update the valid flag for corresponding
-     *              attribute as invalid in the first record.
-     *
-     * @param[in/out]  val1   first record value instance.
-     * @param[in]      val2   second record value instance.
-     * @param[in]      auditi if true, CompareValidValue called from audit
-     *                         process.
-     *
-     **/
-    bool CompareValidValue(void *&val1,
-                           void *val,
-                           bool audit);
+  /**
+   * @brief  Compares the valid value between two database records.
+   *       if both the values are same, update the valid flag for corresponding
+   *        attribute as invalid in the first record.
+   *
+   * @param[in/out]  val1   first record value instance.
+   * @param[in]      val2   second record value instance.
+   * @param[in]      auditi if true, CompareValidValue called from audit
+   *                         process.
+   *
+   **/
+  bool CompareValidValue(void *&val1,
+                         void *val,
+                         bool audit);
 
-    /**
-     * @Brief Validates the syntax of the specified key and value structure
-     *        for KT_VUNK_IF keytype
-     *
-     * @param[in] req                       This structure contains
-     *                                      IpcReqRespHeader(first 8 fields of
-     *                                      input request structure).
-     * @param[in] ikey                    ikey contains key and value structure.
-     *
-     * @retval UPLL_RC_SUCCESS              Successful.
-     * @retval UPLL_RC_ERR_CFG_SYNTAX       Syntax error.
-     * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE key_vlink is not available.
-     * @retval UPLL_RC_ERR_GENERIC          Generic failure.
-     * @retval UPLL_RC_ERR_INVALID_OPTION1  option1 is not valid.
-     * @retval UPLL_RC_ERR_INVALID_OPTION2  option2 is not valid.
-     */
-    upll_rc_t ValidateMessage(IpcReqRespHeader *req,
-                              ConfigKeyVal *ikey);
+  /**
+   * @Brief Validates the syntax of the specified key and value structure
+   *        for KT_VUNK_IF keytype
+   *
+   * @param[in] req                       This structure contains
+   *                                      IpcReqRespHeader(first 8 fields of
+   *                                      input request structure).
+   * @param[in] ikey                    ikey contains key and value structure.
+   *
+   * @retval UPLL_RC_SUCCESS              Successful.
+   * @retval UPLL_RC_ERR_CFG_SYNTAX       Syntax error.
+   * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE key_vlink is not available.
+   * @retval UPLL_RC_ERR_GENERIC          Generic failure.
+   * @retval UPLL_RC_ERR_INVALID_OPTION1  option1 is not valid.
+   * @retval UPLL_RC_ERR_INVALID_OPTION2  option2 is not valid.
+   */
+  upll_rc_t ValidateMessage(IpcReqRespHeader *req,
+                            ConfigKeyVal *ikey);
 
-    /**
-     * @Brief Validates the syntax for KT_VUNK_IF keytype key structure.
-     *
-     * @param[in] key_vunk_if KT_VUNK_IF key structure.
-     * @param[in] operation    Operation type.
-     *
-     * @retval UPLL_RC_SUCCESS        validation succeeded.
-     * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
-     */
-    upll_rc_t ValidateVunkIfKey(key_vunk_if_t *key_vunk_if,
-        unc_keytype_operation_t operation = UNC_OP_INVALID);
+  /**
+   * @Brief Validates the syntax for KT_VUNK_IF keytype key structure.
+   *
+   * @param[in] key_vunk_if KT_VUNK_IF key structure.
+   * @param[in] operation    Operation type.
+   *
+   * @retval UPLL_RC_SUCCESS        validation succeeded.
+   * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
+   */
+  upll_rc_t ValidateVunkIfKey(
+      key_vunk_if_t *key_vunk_if,
+      unc_keytype_operation_t operation = UNC_OP_INVALID);
 
-    /**
-     * @Brief Validates the syntax for KT_VUNK_IF keytype value structure.
-     *
-     * @param[in] val_vlink KT_VUNK_IF value structure.
-     *
-     * @retval UPLL_RC_ERR_GENERIC    Generic failure.
-     * @retval UPLL_RC_SUCCESS        validation succeeded.
-     * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
-     */
-    upll_rc_t ValidateVunkIfValue(val_vunk_if_t *val_vunk_if,
-        unc_keytype_operation_t operation = UNC_OP_INVALID);
+  /**
+   * @Brief Validates the syntax for KT_VUNK_IF keytype value structure.
+   *
+   * @param[in] val_vlink KT_VUNK_IF value structure.
+   *
+   * @retval UPLL_RC_ERR_GENERIC    Generic failure.
+   * @retval UPLL_RC_SUCCESS        validation succeeded.
+   * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
+   */
+  upll_rc_t ValidateVunkIfValue(
+      val_vunk_if_t *val_vunk_if,
+      unc_keytype_operation_t operation = UNC_OP_INVALID);
 
-    /**
-     * @Brief Validates the syntax for KT_VUNK_IF keytype value structure.
-     *
-     * @param[in] val_vtn_neighbor KT_VUNK_IF value structure.
-     *
-     * @retval UPLL_RC_ERR_GENERIC    Generic failure.
-     * @retval UPLL_RC_SUCCESS        validation succeeded.
-     * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
-     */
-    upll_rc_t ValidateVtnNeighValue(val_vtn_neighbor_t *val_vtn_neighbor);
+  /**
+   * @Brief Validates the syntax for KT_VUNK_IF keytype value structure.
+   *
+   * @param[in] val_vtn_neighbor KT_VUNK_IF value structure.
+   *
+   * @retval UPLL_RC_ERR_GENERIC    Generic failure.
+   * @retval UPLL_RC_SUCCESS        validation succeeded.
+   * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
+   */
+  upll_rc_t ValidateVtnNeighValue(val_vtn_neighbor_t *val_vtn_neighbor);
 
-    /**
-     * @Brief Checks if the specified key type(KT_VUNK_IF) and
-     *        associated attributes are supported on the given controller,
-     *        based on the valid flag
-     *
-     * @param[in] req               This structure contains
-     *                              IpcReqRespHeader(first 8 fields of input
-     *                              request structure).
-     * @param[in] ikey              ikey contains key and value structure.
-     *
-     * @retval  UPLL_RC_SUCCESS             Validation succeeded.
-     * @retval  UPLL_RC_ERR_GENERIC         Validation failure.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION1 Option1 is not valid.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION2 Option2 is not valid.
-     */
-    upll_rc_t ValidateCapability(IpcReqRespHeader *req,
-                                 ConfigKeyVal *ikey,
-                                 const char *ctrlr_name = NULL) {
-      return UPLL_RC_SUCCESS;
-    }
-    /**
-     * @brief  Duplicates the input configkeyval including the key and val.
-     * based on the tbl specified.
-     *
-     * @param[in]  okey   Output Configkeyval - allocated within the function
-     * @param[in]  req    Input ConfigKeyVal to be duplicated.
-     * @param[in]  tbl    specifies if the val structure belongs to the main
-     *                      table/ controller table or rename table.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey,
-                              ConfigKeyVal *&req,
-                              MoMgrTables tbl = MAINTBL);
-    /**
-     * @brief  Allocates for the specified val in the given configuration in the
-     *                   specified table.
-     *
-     * @param[in/out]  ck_val   Reference pointer to configval structure
-     *                          allocated.
-     * @param[in]      dt_type  specifies the configuration candidate/running/
-     *                          state
-     * @param[in]      tbl      specifies if the corresponding table is the
-     *                          main table / controller table or rename table.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t AllocVal(ConfigVal *&ck_val,
-                       upll_keytype_datatype_t dt_type,
-                       MoMgrTables tbl = MAINTBL);
-    /**
-     * @brief      Method to get a configkeyval of a specified keytype from an
-     *         input configkeyval
-     *
-     * @param[in/out]  okey                 pointer to output ConfigKeyVal
-     * @param[in]      parent_key           pointer to the configkeyval from
-     *                            which the output configkey val is initialized.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     */
-    upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey,
-                                ConfigKeyVal *parent_key);
-    /**
-     * @brief      Method to get a configkeyval of the parent keytype
-     *
-     * @param[in/out]  okey           pointer to parent ConfigKeyVal
-     * @param[in]      ikey           pointer to the child configkeyval from
-     * which the parent configkey val is obtained.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey,
-                                 ConfigKeyVal *ikey);
-    upll_rc_t GetRenamedControllerKey(ConfigKeyVal *ikey,
-                                      upll_keytype_datatype_t dt_type,
-                                      DalDmlIntf *dmi,
-                                      uint8_t *ctrlr_name) {
-      return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT;
-    }
-    upll_rc_t GetRenamedUncKey(ConfigKeyVal *ctrlr_key,
-                               upll_keytype_datatype_t dt_type,
-                               DalDmlIntf *dmi,
-                               uint8_t *ctrlr_id) {
-      return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT;
-    }
-    /* Rename */
-    upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey,
-                              ConfigKeyVal *ikey);
-    bool GetRenameKeyBindInfo(unc_key_type_t key_type,
-                              BindInfo *&binfo,
-                              int &nattr,
-                              MoMgrTables tbl);
-    upll_rc_t ValidateAttribute(ConfigKeyVal *kval,
-                                DalDmlIntf *dmi,
-                                IpcReqRespHeader *req = NULL) {
-      // string s(kval->ToStrAll());
-      // UPLL_LOG_DEBUG(" %s", s.c_str());
-      return UPLL_RC_SUCCESS;
-    }
+  /**
+   * @Brief Checks if the specified key type(KT_VUNK_IF) and
+   *        associated attributes are supported on the given controller,
+   *        based on the valid flag
+   *
+   * @param[in] req               This structure contains
+   *                              IpcReqRespHeader(first 8 fields of input
+   *                              request structure).
+   * @param[in] ikey              ikey contains key and value structure.
+   *
+   * @retval  UPLL_RC_SUCCESS             Validation succeeded.
+   * @retval  UPLL_RC_ERR_GENERIC         Validation failure.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION1 Option1 is not valid.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION2 Option2 is not valid.
+   */
+  upll_rc_t ValidateCapability(IpcReqRespHeader *req,
+                               ConfigKeyVal *ikey,
+                               const char *ctrlr_name = NULL) {
+    return UPLL_RC_SUCCESS;
+  }
+  /**
+   * @brief  Duplicates the input configkeyval including the key and val.
+   * based on the tbl specified.
+   *
+   * @param[in]  okey   Output Configkeyval - allocated within the function
+   * @param[in]  req    Input ConfigKeyVal to be duplicated.
+   * @param[in]  tbl    specifies if the val structure belongs to the main
+   *                      table/ controller table or rename table.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey,
+                            ConfigKeyVal *&req,
+                            MoMgrTables tbl = MAINTBL);
+  /**
+   * @brief  Allocates for the specified val in the given configuration in the
+   *                   specified table.
+   *
+   * @param[in/out]  ck_val   Reference pointer to configval structure
+   *                          allocated.
+   * @param[in]      dt_type  specifies the configuration candidate/running/
+   *                          state
+   * @param[in]      tbl      specifies if the corresponding table is the
+   *                          main table / controller table or rename table.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t AllocVal(ConfigVal *&ck_val,
+                     upll_keytype_datatype_t dt_type,
+                     MoMgrTables tbl = MAINTBL);
+  /**
+   * @brief      Method to get a configkeyval of a specified keytype from an
+   *         input configkeyval
+   *
+   * @param[in/out]  okey                 pointer to output ConfigKeyVal
+   * @param[in]      parent_key           pointer to the configkeyval from
+   *                            which the output configkey val is initialized.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   */
+  upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey,
+                              ConfigKeyVal *parent_key);
+  /**
+   * @brief      Method to get a configkeyval of the parent keytype
+   *
+   * @param[in/out]  okey           pointer to parent ConfigKeyVal
+   * @param[in]      ikey           pointer to the child configkeyval from
+   * which the parent configkey val is obtained.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey,
+                               ConfigKeyVal *ikey);
+  upll_rc_t GetRenamedControllerKey(ConfigKeyVal *ikey,
+                                    upll_keytype_datatype_t dt_type,
+                                    DalDmlIntf *dmi,
+                                    uint8_t *ctrlr_name) {
+    return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT;
+  }
+  upll_rc_t GetRenamedUncKey(ConfigKeyVal *ctrlr_key,
+                             upll_keytype_datatype_t dt_type,
+                             DalDmlIntf *dmi,
+                             uint8_t *ctrlr_id) {
+    return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT;
+  }
+  /* Rename */
+  upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey,
+                            ConfigKeyVal *ikey);
+  bool GetRenameKeyBindInfo(unc_key_type_t key_type,
+                            BindInfo *&binfo,
+                            int &nattr,
+                            MoMgrTables tbl);
+  upll_rc_t ValidateAttribute(ConfigKeyVal *kval,
+                              DalDmlIntf *dmi,
+                              IpcReqRespHeader *req = NULL) {
+    // string s(kval->ToStrAll());
+    // UPLL_LOG_DEBUG(" %s", s.c_str());
+    return UPLL_RC_SUCCESS;
+  }
 
 public:
-    VunkIfMoMgr();
-    virtual ~VunkIfMoMgr() {
-      for (int i = 0; i < ntable; i++)
-        if (table[i]) {
-          delete table[i];
-        }
-      delete[] table;
-    }
-    /**
-     * @brief      Method to check if individual portions of a key are valid
-     *
-     * @param[in/out]  ikey                pointer to ConfigKeyVal referring to
-     *                                     a UNC resource
-     * @param[in]      index               db index associated with the variable
-     *
-     * @retval         true                 input key is valid
-     * @retval         false                input key is invalid.
-     **/
-    bool IsValidKey(void *key,
-                    uint64_t index);
-    virtual upll_rc_t TxVoteCtrlrStatus(unc_key_type_t keytype,
+ public:
+  VunkIfMoMgr();
+  virtual ~VunkIfMoMgr() {
+    for (int i = 0; i < ntable; i++)
+      if (table[i]) {
+        delete table[i];
+      }
+    delete[] table;
+  }
+  /**
+   * @brief      Method to check if individual portions of a key are valid
+   *
+   * @param[in/out]  ikey                pointer to ConfigKeyVal referring to
+   *                                     a UNC resource
+   * @param[in]      index               db index associated with the variable
+   *
+   * @retval         true                 input key is valid
+   * @retval         false                input key is invalid.
+   **/
+  bool IsValidKey(void *key,
+                  uint64_t index);
+  virtual upll_rc_t TxVoteCtrlrStatus(unc_key_type_t keytype,
                                       list<CtrlrVoteStatus*> *ctrlr_vote_status,
                                       DalDmlIntf *dmi) {
-      return UPLL_RC_SUCCESS;
-    }
-    virtual upll_rc_t TxUpdateController(unc_key_type_t keytype,
-                                         uint32_t session_id,
-                                         uint32_t config_id,
-                                         uuc::UpdateCtrlrPhase phase,
-                                         set<string> *affected_ctrlr_set,
-                                         DalDmlIntf *dmi,
-                                         ConfigKeyVal **err_ckv) {
-      return UPLL_RC_SUCCESS;
-    }
-    virtual upll_rc_t MergeImportToCandidate(unc_key_type_t keytype,
-                                             const char *ctrlr_id,
-                                             DalDmlIntf *dmi) {
-      return UPLL_RC_SUCCESS;
-    }
-    virtual upll_rc_t ImportClear(unc_key_type_t keytype, const char *ctrlr_id,
-                                  DalDmlIntf *dmi) {
-      return UPLL_RC_SUCCESS;
-    }
-    virtual upll_rc_t AuditUpdateController(unc_key_type_t keytype,
-                                            const char *ctrlr_id,
-                                            uint32_t session_id,
-                                            uint32_t config_id,
-                                            uuc::UpdateCtrlrPhase phase,
-                                            bool *ctrlr_affected,
-                                            DalDmlIntf *dmi) {
-      return UPLL_RC_SUCCESS;
-    }
-    virtual upll_rc_t AuditVoteCtrlrStatus(unc_key_type_t keytype,
-                                           CtrlrVoteStatus *vote_satus,
+    return UPLL_RC_SUCCESS;
+  }
+  virtual upll_rc_t TxUpdateController(unc_key_type_t keytype,
+                                       uint32_t session_id,
+                                       uint32_t config_id,
+                                       uuc::UpdateCtrlrPhase phase,
+                                       set<string> *affected_ctrlr_set,
+                                       DalDmlIntf *dmi,
+                                       ConfigKeyVal **err_ckv) {
+    return UPLL_RC_SUCCESS;
+  }
+  virtual upll_rc_t MergeImportToCandidate(unc_key_type_t keytype,
+                                           const char *ctrlr_id,
                                            DalDmlIntf *dmi) {
-      return UPLL_RC_SUCCESS;
-    }
-    virtual upll_rc_t AuditCommitCtrlrStatus(unc_key_type_t keytype,
-                                             CtrlrCommitStatus *commit_satus,
-                                             DalDmlIntf *dmi) {
-      return UPLL_RC_SUCCESS;
-    }
-    virtual upll_rc_t AuditEnd(unc_key_type_t keytype, const char *ctrlr_id,
-                               DalDmlIntf *dmi) {
-      return UPLL_RC_SUCCESS;
-    }
+    return UPLL_RC_SUCCESS;
+  }
+  virtual upll_rc_t ImportClear(unc_key_type_t keytype, const char *ctrlr_id,
+                                DalDmlIntf *dmi) {
+    return UPLL_RC_SUCCESS;
+  }
+  virtual upll_rc_t AuditUpdateController(
+      unc_key_type_t keytype,
+      const char *ctrlr_id,
+      uint32_t session_id,
+      uint32_t config_id,
+      uuc::UpdateCtrlrPhase phase,
+      DalDmlIntf *dmi,
+      ConfigKeyVal **err_ckv,
+      KTxCtrlrAffectedState *ctrlr_affected) {
+    return UPLL_RC_SUCCESS;
+  }
+  virtual upll_rc_t AuditVoteCtrlrStatus(unc_key_type_t keytype,
+                                         CtrlrVoteStatus *vote_satus,
+                                         DalDmlIntf *dmi) {
+    return UPLL_RC_SUCCESS;
+  }
+  virtual upll_rc_t AuditCommitCtrlrStatus(unc_key_type_t keytype,
+                                           CtrlrCommitStatus *commit_satus,
+                                           DalDmlIntf *dmi) {
+    return UPLL_RC_SUCCESS;
+  }
+  virtual upll_rc_t AuditEnd(unc_key_type_t keytype, const char *ctrlr_id,
+                             DalDmlIntf *dmi) {
+    return UPLL_RC_SUCCESS;
+  }
 
-    /* @brief         Populate val_vtn_neighbor for the READ/READ_SIBLING
-     *        operations
-     *
-     * @param[in/out] key   Pointer to the ConfigKeyVal Structure
-     * @param[in]     dmi    Pointer to the DalDmlIntf(DB Interface)
-     *
-     * @retval  UPLL_RC_SUCCESS                    Completed successfully.
-     * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
-     * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
-     * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
-     * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist
-     *
-     **/
-    upll_rc_t PopulateValVtnNeighbor(ConfigKeyVal *&key, DalDmlIntf *dmi);
+  /* @brief         Populate val_vtn_neighbor for the READ/READ_SIBLING
+   *        operations
+   *
+   * @param[in/out] key   Pointer to the ConfigKeyVal Structure
+   * @param[in]     dmi    Pointer to the DalDmlIntf(DB Interface)
+   *
+   * @retval  UPLL_RC_SUCCESS                    Completed successfully.
+   * @retval  UPLL_RC_ERR_GENERIC                Generic failure.
+   * @retval  UPLL_RC_ERR_RESOURCE_DISCONNECTED  Resource disconnected.
+   * @retval  UPLL_RC_ERR_DB_ACCESS              DB Read/Write error.
+   * @retval  UPLL_RC_ERR_NO_SUCH_INSTANCE       Given key does not exist
+   *
+   **/
+  upll_rc_t PopulateValVtnNeighbor(ConfigKeyVal *&key, DalDmlIntf *dmi);
 
-    upll_rc_t IsReferenced(ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
-                           DalDmlIntf *dmi);
+  upll_rc_t IsReferenced(ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
+                         DalDmlIntf *dmi);
+
+  virtual upll_rc_t GetPortMap(ConfigKeyVal *ikey, uint8_t &valid_pm,
+                               val_port_map_t *&pm, uint8_t &valid_admin,
+                               uint8_t &admin_status) {
+    UPLL_FUNC_TRACE;
+    if (ikey == NULL) return UPLL_RC_ERR_GENERIC;
+    val_vunk_if *ifval = reinterpret_cast<val_vunk_if *>
+        (GetVal(ikey));
+    if (!ifval) {
+      UPLL_LOG_DEBUG("Invalid param");
+      return UPLL_RC_ERR_GENERIC;
+    }
+    valid_pm = UNC_VF_INVALID;
+    pm = NULL;
+    valid_admin = ifval->valid[UPLL_IDX_ADMIN_ST_VUNI];
+    admin_status = ifval->admin_status;
+    return UPLL_RC_SUCCESS;
+  }
 };
 
 }  // namespace kt_momgr
index ba41e8fcef1e6d139c1ce9b4a21857b890c7ad4c..ebe61d9fb404735677908a3758d7ae1a43cb0590 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -21,55 +21,57 @@ namespace upll {
 namespace kt_momgr {
 
 BindInfo VunknownMoMgr::vunk_bind_info[] = {
-    { uudst::vunknown::kDbiVtnName, CFG_KEY, offsetof(key_vunknown,
-                                                      vtn_key.vtn_name),
-      uud::kDalChar, 32 },
-    { uudst::vunknown::kDbiVunknownName, CFG_KEY, offsetof(key_vunknown,
-                                                           vunknown_name),
-      uud::kDalChar, 32 },
-    { uudst::vunknown::kDbiDesc, CFG_VAL, offsetof(val_vunknown, description),
-      uud::kDalChar, 128 },
-    { uudst::vunknown::kDbiType, CFG_VAL, offsetof(val_vunknown, type),
-      uud::kDalUint8, 1 },
-    { uudst::vunknown::kDbiDomainId, CFG_VAL, offsetof(val_vunknown, domain_id),
-      uud::kDalChar, 32 },
-    { uudst::vunknown::kDbiValidDesc, CFG_META_VAL, offsetof(
-        val_vunknown, valid[UPLL_IDX_DESC_VUN]),
-      uud::kDalUint8, 1 },
-    { uudst::vunknown::kDbiValidType, CFG_META_VAL, offsetof(
-        val_vunknown, valid[UPLL_IDX_TYPE_VUN]),
-      uud::kDalUint8, 1 },
-    { uudst::vunknown::kDbiValidDomainId, CFG_META_VAL, offsetof(
-        val_vunknown, valid[UPLL_IDX_DOMAIN_ID_VUN]),
-      uud::kDalUint8, 1 },
-    { uudst::vunknown::kDbiCsDesc, CS_VAL, offsetof(val_vunknown,
-                                                    cs_attr[UPLL_IDX_DESC_VUN]),
-      uud::kDalUint8, 1 },
-    { uudst::vunknown::kDbiCsType, CS_VAL, offsetof(val_vunknown,
-                                                    cs_attr[UPLL_IDX_TYPE_VUN]),
-      uud::kDalUint8, 1 },
-    { uudst::vunknown::kDbiCsDomainId, CS_VAL, offsetof(
-        val_vunknown, cs_attr[UPLL_IDX_DOMAIN_ID_VUN]),
-      uud::kDalUint8, 1 },
-    { uudst::vunknown::kDbiCsRowstatus, CS_VAL, offsetof(val_vunknown,
-                                                         cs_row_status),
-      uud::kDalUint8, 1 },
-    { uudst::vunknown::kDbiFlags, CK_VAL, offsetof(key_user_data_t, flags),
-      uud::kDalUint8, 1 } };
+  { uudst::vunknown::kDbiVtnName, CFG_KEY, offsetof(key_vunknown,
+                                                    vtn_key.vtn_name),
+  uud::kDalChar, 32 },
+  { uudst::vunknown::kDbiVunknownName, CFG_KEY, offsetof(key_vunknown,
+                                                         vunknown_name),
+  uud::kDalChar, 32 },
+  { uudst::vunknown::kDbiDesc, CFG_VAL, offsetof(val_vunknown, description),
+    uud::kDalChar, 128 },
+  { uudst::vunknown::kDbiType, CFG_VAL, offsetof(val_vunknown, type),
+    uud::kDalUint8, 1 },
+  { uudst::vunknown::kDbiDomainId, CFG_VAL, offsetof(val_vunknown, domain_id),
+    uud::kDalChar, 32 },
+  { uudst::vunknown::kDbiDomainId, CK_VAL, offsetof(key_user_data, domain_id),
+    uud::kDalChar, 32 },
+  { uudst::vunknown::kDbiValidDesc, CFG_META_VAL, offsetof(
+          val_vunknown, valid[UPLL_IDX_DESC_VUN]),
+  uud::kDalUint8, 1 },
+  { uudst::vunknown::kDbiValidType, CFG_META_VAL, offsetof(
+          val_vunknown, valid[UPLL_IDX_TYPE_VUN]),
+  uud::kDalUint8, 1 },
+  { uudst::vunknown::kDbiValidDomainId, CFG_META_VAL, offsetof(
+          val_vunknown, valid[UPLL_IDX_DOMAIN_ID_VUN]),
+  uud::kDalUint8, 1 },
+  { uudst::vunknown::kDbiCsDesc, CS_VAL, offsetof(val_vunknown,
+                                                  cs_attr[UPLL_IDX_DESC_VUN]),
+  uud::kDalUint8, 1 },
+  { uudst::vunknown::kDbiCsType, CS_VAL, offsetof(val_vunknown,
+                                                  cs_attr[UPLL_IDX_TYPE_VUN]),
+  uud::kDalUint8, 1 },
+  { uudst::vunknown::kDbiCsDomainId, CS_VAL, offsetof(
+          val_vunknown, cs_attr[UPLL_IDX_DOMAIN_ID_VUN]),
+  uud::kDalUint8, 1 },
+  { uudst::vunknown::kDbiCsRowstatus, CS_VAL, offsetof(val_vunknown,
+                                                       cs_row_status),
+  uud::kDalUint8, 1 },
+  { uudst::vunknown::kDbiFlags, CK_VAL, offsetof(key_user_data_t, flags),
+    uud::kDalUint8, 1 } };
 
 BindInfo VunknownMoMgr::key_vunk_maintbl_update_bind_info[] = {
-    { uudst::vunknown::kDbiVtnName, CFG_MATCH_KEY, offsetof(key_vunknown,
-                                                            vtn_key.vtn_name),
-      uud::kDalChar, kMaxLenVtnName + 1 },
-    { uudst::vunknown::kDbiVunknownName, CFG_MATCH_KEY, offsetof(key_vunknown,
-                                                                 vunknown_name),
-      uud::kDalChar, kMaxLenVnodeName + 1 },
-    { uudst::vunknown::kDbiVtnName, CFG_INPUT_KEY, offsetof(
-        key_rename_vnode_info_t, new_unc_vtn_name),
-      uud::kDalChar, kMaxLenVtnName + 1 },
-    { uudst::vunknown::kDbiFlags, CK_VAL, offsetof(key_user_data_t,
-                                                          flags),
-      uud::kDalUint8, 1 } };
+  { uudst::vunknown::kDbiVtnName, CFG_MATCH_KEY, offsetof(key_vunknown,
+                                                          vtn_key.vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1 },
+  { uudst::vunknown::kDbiVunknownName, CFG_MATCH_KEY, offsetof(key_vunknown,
+                                                               vunknown_name),
+  uud::kDalChar, kMaxLenVnodeName + 1 },
+  { uudst::vunknown::kDbiVtnName, CFG_INPUT_KEY, offsetof(
+          key_rename_vnode_info_t, new_unc_vtn_name),
+  uud::kDalChar, kMaxLenVtnName + 1 },
+  { uudst::vunknown::kDbiFlags, CK_VAL, offsetof(key_user_data_t,
+                                                 flags),
+  uud::kDalUint8, 1 } };
 
 unc_key_type_t VunknownMoMgr::vunk_child[] = { UNC_KT_VUNK_IF };
 
@@ -78,9 +80,9 @@ VunknownMoMgr::VunknownMoMgr() {
   ntable = MAX_MOMGR_TBLS;
   table = new Table *[ntable];
   table[MAINTBL] = new Table(uudst::kDbiVunknownTbl, UNC_KT_VUNKNOWN,
-                         vunk_bind_info, IpctSt::kIpcStKeyVunknown,
-                         IpctSt::kIpcStValVunknown,
-                         uudst::vunknown::kDbiVunknownNumCols);
+                             vunk_bind_info, IpctSt::kIpcStKeyVunknown,
+                             IpctSt::kIpcStValVunknown,
+                             uudst::vunknown::kDbiVunknownNumCols);
   table[RENAMETBL] = NULL;
   table[CTRLRTBL] = NULL;
   nchild = sizeof(vunk_child) / sizeof(*vunk_child);
@@ -139,7 +141,7 @@ upll_rc_t VunknownMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   key_vunknown *vunk_key = reinterpret_cast<key_vunknown *>
-                                (malloc(sizeof(key_vunknown)));
+      (malloc(sizeof(key_vunknown)));
 
   if (!vunk_key) {
     UPLL_LOG_ERROR("vunk_key Memory allocation failed");
@@ -154,7 +156,7 @@ upll_rc_t VunknownMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
                             vunk_key, NULL);
     return UPLL_RC_SUCCESS;
   } else {
-     pkey = parent_key->get_key();
+    pkey = parent_key->get_key();
   }
   if (!pkey) {
     free(vunk_key);
@@ -165,17 +167,18 @@ upll_rc_t VunknownMoMgr::GetChildConfigKey(ConfigKeyVal *&okey,
   switch (parent_key->get_key_type()) {
     case UNC_KT_VUNKNOWN:
       uuu::upll_strncpy(vunk_key->vunknown_name,
-             reinterpret_cast<key_vunknown *>(pkey)->vunknown_name,
-             (kMaxLenVnodeName+1));
+                        reinterpret_cast<key_vunknown *>(pkey)->vunknown_name,
+                        (kMaxLenVnodeName+1));
       uuu::upll_strncpy(vunk_key->vtn_key.vtn_name,
-            reinterpret_cast<key_vunknown *>(pkey)->vtn_key.vtn_name,
-             (kMaxLenVtnName+1));
+                        reinterpret_cast<key_vunknown *>
+                        (pkey)->vtn_key.vtn_name,
+                        (kMaxLenVtnName+1));
       break;
     case UNC_KT_VTN:
     default:
       uuu::upll_strncpy(vunk_key->vtn_key.vtn_name,
-             reinterpret_cast<key_vtn *>(pkey)->vtn_name,
-             (kMaxLenVtnName+1));
+                        reinterpret_cast<key_vtn *>(pkey)->vtn_name,
+                        (kMaxLenVtnName+1));
   }
   okey = new ConfigKeyVal(UNC_KT_VUNKNOWN, IpctSt::kIpcStKeyVunknown, vunk_key,
                           NULL);
@@ -204,8 +207,8 @@ upll_rc_t VunknownMoMgr::GetParentConfigKey(ConfigKeyVal *&okey,
   }
 
   uuu::upll_strncpy(vtn_key->vtn_name,
-         reinterpret_cast<key_vunknown *>(pkey)->vtn_key.vtn_name,
-         (kMaxLenVtnName+1) );
+                    reinterpret_cast<key_vunknown *>(pkey)->vtn_key.vtn_name,
+                    (kMaxLenVtnName+1) );
   if (okey) delete okey;
   okey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, vtn_key, NULL);
   if (okey == NULL) {
@@ -251,7 +254,7 @@ upll_rc_t VunknownMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
         return UPLL_RC_ERR_GENERIC;
       }
       val_vunknown *vunk_val = reinterpret_cast<val_vunknown *>
-                                          (malloc(sizeof(val_vunknown)));
+          (malloc(sizeof(val_vunknown)));
       if (!vunk_val) return UPLL_RC_ERR_GENERIC;
       memcpy(vunk_val, ival, sizeof(val_vunknown));
       tmp1 = new ConfigVal(IpctSt::kIpcStValVunknown, vunk_val);
@@ -260,7 +263,7 @@ upll_rc_t VunknownMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
   void *tkey = (req != NULL) ? (req)->get_key() : NULL;
   key_vunknown *ikey = reinterpret_cast<key_vunknown *>(tkey);
   key_vunknown *vunk_key = reinterpret_cast<key_vunknown *>
-                                      (malloc(sizeof(key_vunknown)));
+      (malloc(sizeof(key_vunknown)));
   if (!vunk_key) { delete tmp1; return UPLL_RC_ERR_GENERIC;}
   memcpy(vunk_key, ikey, sizeof(key_vunknown));
   okey = new ConfigKeyVal(UNC_KT_VUNKNOWN, IpctSt::kIpcStKeyVunknown, vunk_key,
@@ -270,8 +273,11 @@ upll_rc_t VunknownMoMgr::DupConfigKeyVal(ConfigKeyVal *&okey,
 }
 
 upll_rc_t VunknownMoMgr::UpdateAuditConfigStatus(
-    unc_keytype_configstatus_t cs_status, uuc::UpdateCtrlrPhase phase,
-    ConfigKeyVal *&ckv_running) {
+    unc_keytype_configstatus_t cs_status,
+    uuc::UpdateCtrlrPhase phase,
+    ConfigKeyVal *&ckv_running,
+    DalDmlIntf *dmi) {
+  UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   return result_code;
 }
@@ -286,22 +292,22 @@ upll_rc_t VunknownMoMgr::UpdateConfigStatus(ConfigKeyVal *vunk_key,
   unc_keytype_configstatus_t cs_status = UNC_CS_APPLIED;
   vunk_val = reinterpret_cast<val_vunknown *>(GetVal(vunk_key));
   val_vunknown *vunk_val2 = reinterpret_cast<val_vunknown *>(GetVal(upd_key));
-  UPLL_LOG_TRACE("Key in Candidate %s",(vunk_key->ToStrAll()).c_str());
+  UPLL_LOG_TRACE("Key in Candidate %s", (vunk_key->ToStrAll()).c_str());
   if (vunk_val == NULL) return UPLL_RC_ERR_GENERIC;
   if (op == UNC_OP_CREATE) {
     vunk_val->cs_row_status = cs_status;
   } else if (op == UNC_OP_UPDATE) {
     void *vunkval = reinterpret_cast<void *>(vunk_val);
     CompareValidValue(vunkval, GetVal(upd_key), true);
-    UPLL_LOG_TRACE("Key in Running %s",(upd_key->ToStrAll()).c_str());
+    UPLL_LOG_TRACE("Key in Running %s", (upd_key->ToStrAll()).c_str());
     vunk_val->cs_row_status = vunk_val2->cs_row_status;
   } else {
-     return UPLL_RC_ERR_GENERIC;
+    return UPLL_RC_ERR_GENERIC;
   }
   for (unsigned int loop = 0;
        loop < sizeof(vunk_val->valid) / sizeof(vunk_val->valid[0]); ++loop) {
     if ((UNC_VF_VALID == vunk_val->valid[loop])
-          || (UNC_VF_VALID_NO_VALUE == vunk_val->valid[loop]))
+        || (UNC_VF_VALID_NO_VALUE == vunk_val->valid[loop]))
       vunk_val->cs_attr[loop] =  cs_status;
     else if ((UNC_VF_INVALID == vunk_val->valid[loop]) &&
              (UNC_OP_CREATE == op))
@@ -316,33 +322,11 @@ upll_rc_t VunknownMoMgr::UpdateConfigStatus(ConfigKeyVal *vunk_key,
 
 upll_rc_t VunknownMoMgr::CopyToConfigKey(ConfigKeyVal *&okey,
                                          ConfigKeyVal *ikey) {
-  UPLL_FUNC_TRACE;
-  if (!ikey || !(ikey->get_key())) return UPLL_RC_ERR_GENERIC;
-
-  upll_rc_t result_code = UPLL_RC_SUCCESS;
-
-  key_rename_vnode_info *key_rename = reinterpret_cast<key_rename_vnode_info *>
-                                                              (ikey->get_key());
-  key_vunknown_t *key_vunk = reinterpret_cast<key_vunknown_t *>
-                                               (malloc(sizeof(key_vunknown_t)));
-  if (!key_vunk) return UPLL_RC_ERR_GENERIC;
-  memset(key_vunk, 0, sizeof(key_vunknown_t));
-  if (!strlen(reinterpret_cast<char *>(key_rename->old_unc_vtn_name))) {
-    free(key_vunk);
-    return UPLL_RC_ERR_GENERIC;
-  }
-  uuu::upll_strncpy(key_vunk->vtn_key.vtn_name,
-         key_rename->old_unc_vtn_name, (kMaxLenVtnName+1));
-  okey = new ConfigKeyVal(UNC_KT_VUNKNOWN, IpctSt::kIpcStKeyVunknown, key_vunk,
-                          NULL);
-  if (!okey) {
-    free(key_vunk);
-    return UPLL_RC_ERR_GENERIC;
-  }
-  return result_code;
+  UPLL_LOG_INFO("Not supported for this keytype. Returning Generic Error");
+  return UPLL_RC_ERR_GENERIC;
 }
 upll_rc_t VunknownMoMgr::ValidateMessage(IpcReqRespHeader *req,
-    ConfigKeyVal *ikey) {
+                                         ConfigKeyVal *ikey) {
   UPLL_FUNC_TRACE;
   upll_rc_t ret_val = UPLL_RC_ERR_GENERIC;
   if (!ikey || !req || !(ikey->get_key())) {
@@ -353,16 +337,17 @@ upll_rc_t VunknownMoMgr::ValidateMessage(IpcReqRespHeader *req,
     UPLL_LOG_DEBUG(
         "Invalid structure received.Expected struct-kIpcStKeyVunknown"
         "received struct -%s ",
-        reinterpret_cast<const char *>(IpctSt::GetIpcStdef(ikey->get_st_num())));
+        reinterpret_cast<const char *>
+        (IpctSt::GetIpcStdef(ikey->get_st_num())));
     return UPLL_RC_ERR_BAD_REQUEST;
   }
   key_vunknown_t *key_vunknown =
-    reinterpret_cast<key_vunknown_t *>(ikey->get_key());
+      reinterpret_cast<key_vunknown_t *>(ikey->get_key());
   val_vunknown_t *val_vunknown = NULL;
   if ((ikey->get_cfg_val())
       && (ikey->get_cfg_val())->get_st_num() == IpctSt::kIpcStValVunknown) {
     val_vunknown =
-      reinterpret_cast<val_vunknown_t *>(ikey->get_cfg_val()->get_val());
+        reinterpret_cast<val_vunknown_t *>(ikey->get_cfg_val()->get_val());
   }
   upll_keytype_datatype_t dt_type = req->datatype;
   unc_keytype_operation_t operation = req->operation;
@@ -399,10 +384,11 @@ upll_rc_t VunknownMoMgr::ValidateMessage(IpcReqRespHeader *req,
       return UPLL_RC_SUCCESS;
     }
   } else if (((operation == UNC_OP_READ) || (operation == UNC_OP_READ_SIBLING)
-        || (operation == UNC_OP_READ_SIBLING_BEGIN)
-        || (operation == UNC_OP_READ_SIBLING_COUNT))
-      && ((dt_type == UPLL_DT_CANDIDATE) || (dt_type == UPLL_DT_RUNNING)
-        || (dt_type == UPLL_DT_STARTUP) || (dt_type == UPLL_DT_STATE))) {
+              || (operation == UNC_OP_READ_SIBLING_BEGIN)
+              || (operation == UNC_OP_READ_SIBLING_COUNT))
+             && ((dt_type == UPLL_DT_CANDIDATE) || (dt_type == UPLL_DT_RUNNING)
+                 || (dt_type == UPLL_DT_STARTUP) ||
+                 (dt_type == UPLL_DT_STATE))) {
     if (option1 == UNC_OPT1_NORMAL) {
       if (option2 == UNC_OPT2_NONE) {
         if (val_vunknown != NULL) {
@@ -428,21 +414,21 @@ upll_rc_t VunknownMoMgr::ValidateMessage(IpcReqRespHeader *req,
     UPLL_LOG_TRACE("Value structure is none for this operation :%d", operation);
     return UPLL_RC_SUCCESS;
   } else if (((operation == UNC_OP_READ_NEXT) ||
-        (operation == UNC_OP_READ_BULK)) &&
-      ((dt_type == UPLL_DT_CANDIDATE) || 
-       (dt_type == UPLL_DT_RUNNING) ||
-       (dt_type == UPLL_DT_STARTUP))) {
+              (operation == UNC_OP_READ_BULK)) &&
+             ((dt_type == UPLL_DT_CANDIDATE) ||
+              (dt_type == UPLL_DT_RUNNING) ||
+              (dt_type == UPLL_DT_STARTUP))) {
     UPLL_LOG_TRACE("Value structure is none for this operation :%d", operation);
     return UPLL_RC_SUCCESS;
   } else {
     UPLL_LOG_DEBUG("Invalid datatype(%d) and operation(%d)", dt_type,
-        operation);
+                   operation);
     return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT;
   }
 }
 
 upll_rc_t VunknownMoMgr::ValidateAttribute(ConfigKeyVal *ikey, DalDmlIntf *dmi,
-                                        IpcReqRespHeader *req) {
+                                           IpcReqRespHeader *req) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
   controller_domain ctrlr_dom;
@@ -451,18 +437,25 @@ upll_rc_t VunknownMoMgr::ValidateAttribute(ConfigKeyVal *ikey, DalDmlIntf *dmi,
     ConfigKeyVal *okey = NULL;
     result_code = GetChildConfigKey(okey, ikey);
     if (UPLL_RC_SUCCESS != result_code) {
-      UPLL_LOG_DEBUG("Returing error %d",result_code);
+      UPLL_LOG_DEBUG("Returing error %d", result_code);
       if (okey) delete okey;
       return result_code;
     }
-    DbSubOp dbop = {kOpReadSingle, kOpMatchNone, kOpInOutCtrlr | kOpInOutDomain | kOpInOutFlag};
-    result_code = ReadConfigDB(okey, req->datatype, UNC_OP_READ, dbop, dmi, MAINTBL);
+    DbSubOp dbop = {kOpReadSingle,
+      kOpMatchNone,
+      kOpInOutCtrlr | kOpInOutDomain | kOpInOutFlag};
+    result_code = ReadConfigDB(okey,
+                               req->datatype,
+                               UNC_OP_READ,
+                               dbop,
+                               dmi,
+                               MAINTBL);
     if (UPLL_RC_SUCCESS != result_code) {
       UPLL_LOG_ERROR("Record does Not Exists");
       delete okey;
       return result_code;
     }
-    GET_USER_DATA_CTRLR_DOMAIN(okey,ctrlr_dom);
+    GET_USER_DATA_CTRLR_DOMAIN(okey, ctrlr_dom);
     result_code = CtrlrIdAndDomainIdUpdationCheck(ikey, okey);
     DELETE_IF_NOT_NULL(okey);
     if (result_code != UPLL_RC_SUCCESS) {
@@ -474,7 +467,7 @@ upll_rc_t VunknownMoMgr::ValidateAttribute(ConfigKeyVal *ikey, DalDmlIntf *dmi,
 }
 
 upll_rc_t VunknownMoMgr::CtrlrIdAndDomainIdUpdationCheck(ConfigKeyVal *ikey,
-                                                   ConfigKeyVal *okey) {
+                                                         ConfigKeyVal *okey) {
   UPLL_FUNC_TRACE;
   val_vunknown *vunk_val = reinterpret_cast<val_vunknown *>(GetVal(ikey));
   val_vunknown *vunk_val1 = reinterpret_cast<val_vunknown *>(GetVal(okey));
@@ -489,14 +482,15 @@ upll_rc_t VunknownMoMgr::CtrlrIdAndDomainIdUpdationCheck(ConfigKeyVal *ikey,
   return UPLL_RC_SUCCESS;
 }
 
-upll_rc_t VunknownMoMgr::ValidateVunknownKey(key_vunknown_t *key_vunknown,
+upll_rc_t VunknownMoMgr::ValidateVunknownKey(
+    key_vunknown_t *key_vunknown,
     unc_keytype_operation_t operation) {
   UPLL_FUNC_TRACE;
   bool ret_val = UPLL_RC_SUCCESS;
   /** Validate vtn_key structure */
   VtnMoMgr *objvtnmgr =
-    reinterpret_cast<VtnMoMgr *>(const_cast<MoManager *>(GetMoManager(
-            UNC_KT_VTN)));
+      reinterpret_cast<VtnMoMgr *>(const_cast<MoManager *>(GetMoManager(
+                  UNC_KT_VTN)));
   if (NULL == objvtnmgr) {
     UPLL_LOG_DEBUG("unable to get VtnMoMgr object to validate key_vtn");
     return UPLL_RC_ERR_GENERIC;
@@ -509,9 +503,11 @@ upll_rc_t VunknownMoMgr::ValidateVunknownKey(key_vunknown_t *key_vunknown,
   }
   if ((operation != UNC_OP_READ_SIBLING_BEGIN) &&
       (operation != UNC_OP_READ_SIBLING_COUNT)) {
-    UPLL_LOG_TRACE("KT_VUNKNOWN:vunknown_name (%s)", key_vunknown->vunknown_name);
-    ret_val = ValidateKey(reinterpret_cast<char *>(key_vunknown->vunknown_name),
-        kMinLenVnodeName, kMaxLenVnodeName);
+    UPLL_LOG_TRACE("KT_VUNKNOWN:vunknown_name (%s)",
+                   key_vunknown->vunknown_name);
+    ret_val = ValidateKey(reinterpret_cast<char *>
+                          (key_vunknown->vunknown_name),
+                          kMinLenVnodeName, kMaxLenVnodeName);
 
     if (ret_val != UPLL_RC_SUCCESS) {
       UPLL_LOG_DEBUG("Validation failure for key_vunknown->vunknown_name");
@@ -525,16 +521,16 @@ upll_rc_t VunknownMoMgr::ValidateVunknownKey(key_vunknown_t *key_vunknown,
 }
 
 upll_rc_t VunknownMoMgr::ValidateVunknownValue(val_vunknown_t *vunk_val,
-    uint32_t operation) {
+                                               uint32_t operation) {
   UPLL_FUNC_TRACE;
   bool ret_val =false;
-  
+
   // Attribute syntax validation
   for (unsigned int valid_index = 0;
        valid_index < sizeof(vunk_val->valid) / sizeof(vunk_val->valid[0]);
-       valid_index++) { 
+       valid_index++) {
     if (vunk_val->valid[valid_index] == UNC_VF_VALID) {
-      switch(valid_index) {    
+      switch (valid_index) {
         case UPLL_IDX_DOMAIN_ID_VUN:
           ret_val = ValidateDefaultStr(vunk_val->domain_id,
                                        kMinLenDomainId, kMaxLenDomainId);
@@ -542,15 +538,17 @@ upll_rc_t VunknownMoMgr::ValidateVunknownValue(val_vunknown_t *vunk_val,
         case UPLL_IDX_DESC_VUN:
           ret_val = ValidateDesc(vunk_val->description,
                                  kMinLenDescription, kMaxLenDescription);
-          break; 
+          break;
         case UPLL_IDX_TYPE_VUN:
           ret_val = ValidateNumericRange(vunk_val->type,
-                                 (uint8_t) VUNKNOWN_TYPE_BRIDGE,
-                                 (uint8_t) VUNKNOWN_TYPE_ROUTER, true, true);
+                                         (uint8_t) VUNKNOWN_TYPE_BRIDGE,
+                                         (uint8_t) VUNKNOWN_TYPE_ROUTER,
+                                         true,
+                                         true);
           break;
       }
       if (!ret_val) {
-        return UPLL_RC_ERR_CFG_SYNTAX; 
+        return UPLL_RC_ERR_CFG_SYNTAX;
       }
     }
   }
@@ -563,12 +561,12 @@ upll_rc_t VunknownMoMgr::ValidateVunknownValue(val_vunknown_t *vunk_val,
     switch (operation) {
       case UNC_OP_CREATE:
         {
-          switch(valid_index) {
+          switch (valid_index) {
             case UPLL_IDX_DOMAIN_ID_VUN:
               if ((flag == UNC_VF_INVALID || flag == UNC_VF_VALID_NO_VALUE)) {
                 UPLL_LOG_DEBUG("domain_id flag is invalid"
                                " or valid_no_value");
-                return UPLL_RC_ERR_CFG_SYNTAX; 
+                return UPLL_RC_ERR_CFG_SYNTAX;
               }
               break;
             case UPLL_IDX_DESC_VUN:
@@ -581,23 +579,24 @@ upll_rc_t VunknownMoMgr::ValidateVunknownValue(val_vunknown_t *vunk_val,
             default:
               break;
           }
-        } 
+        }
         break;
       case UNC_OP_UPDATE:
         {
-          switch(valid_index) {
+          switch (valid_index) {
             case UPLL_IDX_DOMAIN_ID_VUN:
               if (flag == UNC_VF_VALID_NO_VALUE) {
-                UPLL_LOG_DEBUG("controller_id or domain_id flag is valid_no_value");
+                UPLL_LOG_DEBUG("controller_id or domain_id flag"
+                               "is valid_no_value");
                 return UPLL_RC_ERR_CFG_SYNTAX;
               }
-              break; 
+              break;
             case UPLL_IDX_DESC_VUN:
             case UPLL_IDX_TYPE_VUN:
             default:
               break;
           }
-        } 
+        }
         break;
     }
   }
@@ -607,10 +606,10 @@ upll_rc_t VunknownMoMgr::ValidateVunknownValue(val_vunknown_t *vunk_val,
        valid_index < sizeof(vunk_val->valid) / sizeof(vunk_val->valid[0]);
        valid_index++) {
     uint8_t flag = vunk_val->valid[valid_index];
-    if (flag != UNC_VF_INVALID && flag != UNC_VF_VALID_NO_VALUE)  
+    if (flag != UNC_VF_INVALID && flag != UNC_VF_VALID_NO_VALUE)
       continue;
-       
-    switch(valid_index) {
+
+    switch (valid_index) {
       case UPLL_IDX_DOMAIN_ID_VUN:
         StringReset(vunk_val->domain_id);
         break;
@@ -629,31 +628,31 @@ upll_rc_t VunknownMoMgr::ValidateVunknownValue(val_vunknown_t *vunk_val,
 }
 
 bool VunknownMoMgr::CompareValidValue(void *&val1,
-                                 void *val2,
-                                 bool copy_to_running) {
+                                      void *val2,
+                                      bool copy_to_running) {
   UPLL_FUNC_TRACE;
   bool invalid_attr = true;
   val_vunknown_t *val_vunknown1 = reinterpret_cast<val_vunknown_t *>(val1);
   val_vunknown_t *val_vunknown2 = reinterpret_cast<val_vunknown_t *>(val2);
   if (!val_vunknown2) {
-      UPLL_LOG_TRACE("Invalid param");
-      return UPLL_RC_ERR_GENERIC;
+    UPLL_LOG_TRACE("Invalid param");
+    return UPLL_RC_ERR_GENERIC;
   }
   for (unsigned int loop = 0;
-        loop < sizeof(val_vunknown1->valid) / sizeof(uint8_t); ++loop) {
-      if (UNC_VF_INVALID == val_vunknown1->valid[loop]
-          && UNC_VF_VALID == val_vunknown2->valid[loop]) 
-        val_vunknown1->valid[loop] = UNC_VF_VALID_NO_VALUE;
+       loop < sizeof(val_vunknown1->valid) / sizeof(uint8_t); ++loop) {
+    if (UNC_VF_INVALID == val_vunknown1->valid[loop]
+        && UNC_VF_VALID == val_vunknown2->valid[loop])
+      val_vunknown1->valid[loop] = UNC_VF_VALID_NO_VALUE;
   }
   /* Specify the configured ip address for
    * PFC to clear the configured IP address
    */
   if ((UNC_VF_VALID == val_vunknown1->valid[UPLL_IDX_DESC_VUN])
-        && (UNC_VF_VALID == val_vunknown2->valid[UPLL_IDX_DESC_VUN]))
+      && (UNC_VF_VALID == val_vunknown2->valid[UPLL_IDX_DESC_VUN]))
     if (!strncmp(reinterpret_cast<char*>(val_vunknown1->description),
                  reinterpret_cast<char*>(val_vunknown2->description),
                  kMaxLenDescription))
-        val_vunknown1->valid[UPLL_IDX_DESC_VUN] = UNC_VF_INVALID;
+      val_vunknown1->valid[UPLL_IDX_DESC_VUN] = UNC_VF_INVALID;
   if (UNC_VF_VALID == val_vunknown1->valid[UPLL_IDX_TYPE_VUN]
       && UNC_VF_VALID == val_vunknown2->valid[UPLL_IDX_TYPE_VUN]) {
     if (val_vunknown1->type == val_vunknown2->type)
@@ -672,11 +671,11 @@ bool VunknownMoMgr::CompareValidValue(void *&val1,
       val_vunknown1->valid[UPLL_IDX_DOMAIN_ID_VUN] = UNC_VF_INVALID;
   }
   for (unsigned int loop = 0;
-      loop < sizeof(val_vunknown1->valid) / sizeof(uint8_t); ++loop) {
+       loop < sizeof(val_vunknown1->valid) / sizeof(uint8_t); ++loop) {
     if ((UNC_VF_VALID == (uint8_t) val_vunknown1->valid[loop]) ||
-       (UNC_VF_VALID_NO_VALUE == (uint8_t) val_vunknown1->valid[loop])) {
-        invalid_attr = false;
-        break;
+        (UNC_VF_VALID_NO_VALUE == (uint8_t) val_vunknown1->valid[loop])) {
+      invalid_attr = false;
+      break;
     }
   }
   return invalid_attr;
@@ -687,23 +686,26 @@ upll_rc_t VunknownMoMgr::CreateVnodeConfigKey(ConfigKeyVal *ikey,
   if (ikey == NULL) return UPLL_RC_ERR_GENERIC;
 
   key_vunknown * temp_key_vunknown = reinterpret_cast<key_vunknown *>
-                                      (malloc(sizeof(key_vunknown)));
-if (!temp_key_vunknown) {
+      (malloc(sizeof(key_vunknown)));
+  if (!temp_key_vunknown) {
     UPLL_LOG_ERROR("temp_key_vunknown Memory allocation failed");
     return UPLL_RC_ERR_GENERIC;
   }
 
   uuu::upll_strncpy(temp_key_vunknown->vtn_key.vtn_name,
-         reinterpret_cast<key_vunknown*>(ikey->get_key())->vtn_key.vtn_name,
-          (kMaxLenVtnName+1) );
+                    reinterpret_cast<key_vunknown*>
+                    (ikey->get_key())->vtn_key.vtn_name,
+                    (kMaxLenVtnName+1) );
   uuu::upll_strncpy(temp_key_vunknown->vunknown_name,
-         reinterpret_cast<key_vunknown*>(ikey->get_key())->vunknown_name,
-          (kMaxLenVtnName+1));
+                    reinterpret_cast<key_vunknown*>
+                    (ikey->get_key())->vunknown_name,
+                    (kMaxLenVtnName+1));
 
   ConfigKeyVal *ck_vunknown = new ConfigKeyVal(UNC_KT_VUNKNOWN,
-                                   IpctSt::kIpcStKeyVunknown,
-                                   reinterpret_cast<void *>(temp_key_vunknown),
-                                   NULL);
+                                               IpctSt::kIpcStKeyVunknown,
+                                               reinterpret_cast<void *>
+                                               (temp_key_vunknown),
+                                               NULL);
   if (ck_vunknown == NULL) return UPLL_RC_ERR_GENERIC;
   okey = ck_vunknown;
   return UPLL_RC_SUCCESS;
@@ -714,12 +716,13 @@ upll_rc_t VunknownMoMgr::IsReferenced(ConfigKeyVal *ikey,
                                       DalDmlIntf *dmi) {
   UPLL_FUNC_TRACE;
   upll_rc_t result_code = UPLL_RC_SUCCESS;
-  MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(const_cast<MoManager*>
-                                                (GetMoManager(UNC_KT_VUNK_IF)));
+  MoMgrImpl *mgr = reinterpret_cast<MoMgrImpl *>(
+      const_cast<MoManager*>
+      (GetMoManager(UNC_KT_VUNK_IF)));
   result_code = mgr->IsReferenced(ikey, dt_type, dmi);
   if (UPLL_RC_SUCCESS != result_code) {
     UPLL_LOG_DEBUG("UPLL_RC_ERR_NO_SUCH_INSTANCE != result_code (%d)",
-           result_code);
+                   result_code);
     return result_code;
   }
   UPLL_LOG_DEBUG("IsReferenced result code (%d)", result_code);
index c577bb8be37e7090f588117f73eff7226ad3d198..f1be20d182f56e6583d165a7965b010a34857cd3 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -20,302 +20,306 @@ namespace kt_momgr {
 
 
 class VunknownMoMgr : public MoMgrImpl {
-  private:
-    static unc_key_type_t vunk_child[];
-    static BindInfo vunk_bind_info[];
-    static BindInfo key_vunk_maintbl_update_bind_info[];
-    /**
-     * @brief  Gets the valid array position of the variable in the value
-     *         structure from the table in the specified configuration
-     *
-     * @param[in]     val      pointer to the value structure
-     * @param[in]     indx     database index for the variable
-     * @param[out]    valid    position of the variable in the valid array -
-     *                          NULL if valid does not exist.
-     * @param[in]     dt_type  specifies the configuration
-     * @param[in]     tbl      specifies the table containing the given value
-     *
-     **/
-    upll_rc_t GetValid(void *val, uint64_t indx, uint8_t *&valid,
-                       upll_keytype_datatype_t dt_type, MoMgrTables tbl) {
-      if (val == NULL) return UPLL_RC_ERR_GENERIC;
-      if (tbl == MAINTBL) {
-        switch (indx) {
-          case uudst::vunknown::kDbiDesc:
-            valid = &(reinterpret_cast<val_vunknown *>(val))->
-                                        valid[UPLL_IDX_DESC_VUN];
-            break;
-          case uudst::vunknown::kDbiType:
-            valid = &(reinterpret_cast<val_vunknown *>(val))->
-                                        valid[UPLL_IDX_TYPE_VUN];
-            break;
-          case uudst::vunknown::kDbiDomainId:
-            valid = &(reinterpret_cast<val_vunknown *>(val))->
-                                        valid[UPLL_IDX_DOMAIN_ID_VUN];
-            break;
-          default:
-            return UPLL_RC_ERR_GENERIC;
-        }
-      } else {
-        return UPLL_RC_ERR_GENERIC;
+ private:
+  static unc_key_type_t vunk_child[];
+  static BindInfo vunk_bind_info[];
+  static BindInfo key_vunk_maintbl_update_bind_info[];
+  /**
+   * @brief  Gets the valid array position of the variable in the value
+   *         structure from the table in the specified configuration
+   *
+   * @param[in]     val      pointer to the value structure
+   * @param[in]     indx     database index for the variable
+   * @param[out]    valid    position of the variable in the valid array -
+   *                          NULL if valid does not exist.
+   * @param[in]     dt_type  specifies the configuration
+   * @param[in]     tbl      specifies the table containing the given value
+   *
+   **/
+  upll_rc_t GetValid(void *val, uint64_t indx, uint8_t *&valid,
+                     upll_keytype_datatype_t dt_type, MoMgrTables tbl) {
+    if (val == NULL) return UPLL_RC_ERR_GENERIC;
+    if (tbl == MAINTBL) {
+      switch (indx) {
+        case uudst::vunknown::kDbiDesc:
+          valid = &(reinterpret_cast<val_vunknown *>(val))->
+              valid[UPLL_IDX_DESC_VUN];
+          break;
+        case uudst::vunknown::kDbiType:
+          valid = &(reinterpret_cast<val_vunknown *>(val))->
+              valid[UPLL_IDX_TYPE_VUN];
+          break;
+        case uudst::vunknown::kDbiDomainId:
+          valid = &(reinterpret_cast<val_vunknown *>(val))->
+              valid[UPLL_IDX_DOMAIN_ID_VUN];
+          break;
+        default:
+          return UPLL_RC_ERR_GENERIC;
       }
-      return UPLL_RC_SUCCESS;
+    } else {
+      return UPLL_RC_ERR_GENERIC;
     }
-    upll_rc_t SwapKeyVal(ConfigKeyVal *ikey, ConfigKeyVal *&okey,
-                         DalDmlIntf *dmi, uint8_t *ctrlr) {
-      return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT;
-    }
-    upll_rc_t UpdateConfigStatus(ConfigKeyVal *req, unc_keytype_operation_t op,
+    return UPLL_RC_SUCCESS;
+  }
+  upll_rc_t SwapKeyVal(ConfigKeyVal *ikey, ConfigKeyVal *&okey,
+                       DalDmlIntf *dmi, uint8_t *ctrlr) {
+    return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT;
+  }
+  upll_rc_t UpdateConfigStatus(ConfigKeyVal *req, unc_keytype_operation_t op,
                                uint32_t driver_result, ConfigKeyVal *upd_key,
                                DalDmlIntf *dmi, ConfigKeyVal *ctrlr_key = NULL);
-    /**
-     * @brief  Update config status for commit result and vote result.
-     *
-     * @param[in/out]  ckv_running  ConfigKeyVal instance.
-     * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
-     * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
-     *
-     **/
-    upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
-                                      uuc::UpdateCtrlrPhase phase,
-                                      ConfigKeyVal *&ckv_running);
+  /**
+   * @brief  Update config status for commit result and vote result.
+   *
+   * @param[in/out]  ckv_running  ConfigKeyVal instance.
+   * @param[in]      cs_status    either UNC_CS_INVALID or UNC_CS_APPLIED.
+   * @param[in]      phase        specify the phase (CREATE,DELETE or UPDATE)
+   *
+   **/
+  upll_rc_t UpdateAuditConfigStatus(unc_keytype_configstatus_t cs_status,
+                                    uuc::UpdateCtrlrPhase phase,
+                                    ConfigKeyVal *&ckv_running,
+                                    DalDmlIntf *dmi);
 
-    /**
-     * @brief  Compares the valid value between two database records.
-     *              if both the values are same, update the valid flag for corresponding
-     *              attribute as invalid in the first record.
-     *
-     * @param[in/out]  val1   first record value instance.
-     * @param[in]      val2   second record value instance.
-     * @param[in]      audit  if true, CompareValidValue called from audit process.
-     *
-     **/
-    bool CompareValidValue(void *&val1, void *val2, bool audit);
+  /**
+   * @brief  Compares the valid value between two database records.
+   *        if both the values are same, update the valid flag for corresponding
+   *        attribute as invalid in the first record.
+   *
+   * @param[in/out]  val1   first record value instance.
+   * @param[in]      val2   second record value instance.
+   * @param[in]      audit  if true, CompareValidValue called from audit process.
+   *
+   **/
+  bool CompareValidValue(void *&val1, void *val2, bool audit);
 
-    /**
-     * @Brief Validates the syntax of the specified key and value structure
-     *        for KT_VUNKNOWN keytype
-     *
-     * @param[in] req                       This structure contains
-     *                                      IpcReqRespHeader(first 8 fields of input request structure).
-     * @param[in] ikey                      ikey contains key and value structure.
-     *
-     * @retval UPLL_RC_SUCCESS              Successful.
-     * @retval UPLL_RC_ERR_CFG_SYNTAX       Syntax error.
-     * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE key_vlink is not available.
-     * @retval UPLL_RC_ERR_GENERIC          Generic failure.
-     * @retval UPLL_RC_ERR_INVALID_OPTION1  option1 is not valid.
-     * @retval UPLL_RC_ERR_INVALID_OPTION2  option2 is not valid.
-     */
-    upll_rc_t ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *ikey);
+  /**
+   * @Brief Validates the syntax of the specified key and value structure
+   *        for KT_VUNKNOWN keytype
+   *
+   * @param[in] req                       This structure contains
+   *                                      IpcReqRespHeader(first 8 fields of input request structure).
+   * @param[in] ikey                      ikey contains key and value structure.
+   *
+   * @retval UPLL_RC_SUCCESS              Successful.
+   * @retval UPLL_RC_ERR_CFG_SYNTAX       Syntax error.
+   * @retval UPLL_RC_ERR_NO_SUCH_INSTANCE key_vlink is not available.
+   * @retval UPLL_RC_ERR_GENERIC          Generic failure.
+   * @retval UPLL_RC_ERR_INVALID_OPTION1  option1 is not valid.
+   * @retval UPLL_RC_ERR_INVALID_OPTION2  option2 is not valid.
+   */
+  upll_rc_t ValidateMessage(IpcReqRespHeader *req, ConfigKeyVal *ikey);
 
-    /**
-     * @Brief Validates the syntax for KT_VUNKNOWN keytype value structure.
-     *
-     * @param[in] val_vunknown KT_VUNKNOWN value structure.
-     * @param[in] operation    Operation type.
-     *
-     * @retval UPLL_RC_ERR_GENERIC    Generic failure.
-     * @retval UPLL_RC_SUCCESS        validation succeeded.
-     * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
-     */
-    upll_rc_t ValidateVunknownValue(val_vunknown_t *val_vunknown,
-                                    uint32_t operation = UNC_OP_INVALID);
+  /**
+   * @Brief Validates the syntax for KT_VUNKNOWN keytype value structure.
+   *
+   * @param[in] val_vunknown KT_VUNKNOWN value structure.
+   * @param[in] operation    Operation type.
+   *
+   * @retval UPLL_RC_ERR_GENERIC    Generic failure.
+   * @retval UPLL_RC_SUCCESS        validation succeeded.
+   * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
+   */
+  upll_rc_t ValidateVunknownValue(val_vunknown_t *val_vunknown,
+                                  uint32_t operation = UNC_OP_INVALID);
 
-    /**
-     * @Brief Checks if the specified key type(KT_VUNKNOWN) and
-     *        associated attributes are supported on the given controller,
-     *        based on the valid flag
-     *
-     * @param[in] req               This structure contains
-     *                              IpcReqRespHeader(first 8 fields of input
-     *                              request structure).
-     * @param[in] ikey              ikey contains key and value structure.
-     *
-     * @retval  UPLL_RC_SUCCESS             Validation succeeded.
-     * @retval  UPLL_RC_ERR_GENERIC         Validation failure.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION1 Option1 is not valid.
-     * @retval  UPLL_RC_ERR_INVALID_OPTION2 Option2 is not valid.
-     */
-    upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *ikey,
-                                  const char * crtlr_name = NULL) {
-      return UPLL_RC_SUCCESS;
-    }
-    /**
-     * @brief      Method to check if individual portions of a key are valid
-     *
-     * @param[in/out]  ikey                 pointer to ConfigKeyVal referring to a UNC resource
-     * @param[in]      index                db index associated with the variable
-     *
-     * @retval         true                 input key is valid
-     * @retval         false                input key is invalid.
-     **/
-    bool IsValidKey(void *key, uint64_t index);
-    /**
-     * @brief  Duplicates the input configkeyval including the key and val.
-     * based on the tbl specified.
-     *
-     * @param[in]  okey   Output Configkeyval - allocated within the function
-     * @param[in]  req    Input ConfigKeyVal to be duplicated.
-     * @param[in]  tbl    specifies if the val structure belongs to the main table/ controller table or rename table.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
-                              MoMgrTables tbl = MAINTBL);
-    /**
-     * @brief  Allocates for the specified val in the given configuration in the     * specified table.
-     *
-     * @param[in/out]  ck_val   Reference pointer to configval structure
-     *                          allocated.
-     * @param[in]      dt_type  specifies the configuration candidate/running/
-     *                          state
-     * @param[in]      tbl      specifies if the corresponding table is the
-     *                          main table / controller table or rename table.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
-                       MoMgrTables tbl = MAINTBL);
-    /**
-     * @brief      Method to get a configkeyval of a specified keytype from an input configkeyval
-     *
-     * @param[in/out]  okey                 pointer to output ConfigKeyVal
-     * @param[in]      parent_key           pointer to the configkeyval from which the output configkey val is initialized.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     */
-    upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *parent_key);
-    /**
-     * @brief      Method to get a configkeyval of the parent keytype
-     *
-     * @param[in/out]  okey           pointer to parent ConfigKeyVal
-     * @param[in]      ikey           pointer to the child configkeyval from
-     * which the parent configkey val is obtained.
-     *
-     * @retval         UPLL_RC_SUCCESS      Successfull completion.
-     * @retval         UPLL_RC_ERR_GENERIC  Failure case.
-     **/
-    upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
-    upll_rc_t GetRenamedControllerKey(ConfigKeyVal *ikey,
-                                      upll_keytype_datatype_t dt_type,
-                                      DalDmlIntf *dmi,
-                                      controller_domain_t *ctrlr_name) {
-      return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT;
-    }
-    upll_rc_t GetRenamedUncKey(ConfigKeyVal *ctrlr_key,
-                               upll_keytype_datatype_t dt_type, DalDmlIntf *dmi,
-                               uint8_t *ctrlr_id) {
-      return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT;
-    }
-    /* Rename */
-    upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
-    bool GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo,
-                              int &nattr, MoMgrTables tbl);
-    upll_rc_t ValidateAttribute(ConfigKeyVal *kval,
-                                DalDmlIntf *dmi,
-                                IpcReqRespHeader *req = NULL);
+  /**
+   * @Brief Checks if the specified key type(KT_VUNKNOWN) and
+   *        associated attributes are supported on the given controller,
+   *        based on the valid flag
+   *
+   * @param[in] req               This structure contains
+   *                              IpcReqRespHeader(first 8 fields of input
+   *                              request structure).
+   * @param[in] ikey              ikey contains key and value structure.
+   *
+   * @retval  UPLL_RC_SUCCESS             Validation succeeded.
+   * @retval  UPLL_RC_ERR_GENERIC         Validation failure.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION1 Option1 is not valid.
+   * @retval  UPLL_RC_ERR_INVALID_OPTION2 Option2 is not valid.
+   */
+  upll_rc_t ValidateCapability(IpcReqRespHeader *req, ConfigKeyVal *ikey,
+                               const char * crtlr_name = NULL) {
+    return UPLL_RC_SUCCESS;
+  }
+  /**
+   * @brief      Method to check if individual portions of a key are valid
+   *
+   * @param[in/out]  ikey                 pointer to ConfigKeyVal referring to a UNC resource
+   * @param[in]      index                db index associated with the variable
+   *
+   * @retval         true                 input key is valid
+   * @retval         false                input key is invalid.
+   **/
+  bool IsValidKey(void *key, uint64_t index);
+  /**
+   * @brief  Duplicates the input configkeyval including the key and val.
+   * based on the tbl specified.
+   *
+   * @param[in]  okey   Output Configkeyval - allocated within the function
+   * @param[in]  req    Input ConfigKeyVal to be duplicated.
+   * @param[in]  tbl    specifies if the val structure belongs to the main table/ controller table or rename table.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t DupConfigKeyVal(ConfigKeyVal *&okey, ConfigKeyVal *&req,
+                            MoMgrTables tbl = MAINTBL);
+  /**
+   * @brief  Allocates for the specified val in the given configuration in the     * specified table.
+   *
+   * @param[in/out]  ck_val   Reference pointer to configval structure
+   *                          allocated.
+   * @param[in]      dt_type  specifies the configuration candidate/running/
+   *                          state
+   * @param[in]      tbl      specifies if the corresponding table is the
+   *                          main table / controller table or rename table.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t AllocVal(ConfigVal *&ck_val, upll_keytype_datatype_t dt_type,
+                     MoMgrTables tbl = MAINTBL);
+  /**
+   * @brief      Method to get a configkeyval of a specified keytype from an input configkeyval
+   *
+   * @param[in/out]  okey                 pointer to output ConfigKeyVal
+   * @param[in]      parent_key           pointer to the configkeyval from which the output configkey val is initialized.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   */
+  upll_rc_t GetChildConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *parent_key);
+  /**
+   * @brief      Method to get a configkeyval of the parent keytype
+   *
+   * @param[in/out]  okey           pointer to parent ConfigKeyVal
+   * @param[in]      ikey           pointer to the child configkeyval from
+   * which the parent configkey val is obtained.
+   *
+   * @retval         UPLL_RC_SUCCESS      Successfull completion.
+   * @retval         UPLL_RC_ERR_GENERIC  Failure case.
+   **/
+  upll_rc_t GetParentConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
+  upll_rc_t GetRenamedControllerKey(ConfigKeyVal *ikey,
+                                    upll_keytype_datatype_t dt_type,
+                                    DalDmlIntf *dmi,
+                                    controller_domain_t *ctrlr_name) {
+    return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT;
+  }
+  upll_rc_t GetRenamedUncKey(ConfigKeyVal *ctrlr_key,
+                             upll_keytype_datatype_t dt_type, DalDmlIntf *dmi,
+                             uint8_t *ctrlr_id) {
+    return UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_KT;
+  }
+  /* Rename */
+  upll_rc_t CopyToConfigKey(ConfigKeyVal *&okey, ConfigKeyVal *ikey);
+  bool GetRenameKeyBindInfo(unc_key_type_t key_type, BindInfo *&binfo,
+                            int &nattr, MoMgrTables tbl);
+  upll_rc_t ValidateAttribute(ConfigKeyVal *kval,
+                              DalDmlIntf *dmi,
+                              IpcReqRespHeader *req = NULL);
 
-  public:
-    VunknownMoMgr();
-    virtual ~VunknownMoMgr() {
-      for (int i = 0; i < ntable; i++)
-        if (table[i]) {
-          delete table[i];
-        }
-      delete[] table;
-    }
-    virtual upll_rc_t TxVoteCtrlrStatus(
-        unc_key_type_t keytype, list<CtrlrVoteStatus*> *ctrlr_vote_status,
-        DalDmlIntf *dmi) {
-      return UPLL_RC_SUCCESS;
-    }
-    virtual upll_rc_t TxUpdateController(unc_key_type_t keytype,
-                                         uint32_t session_id,
-                                         uint32_t config_id,
-                                         uuc::UpdateCtrlrPhase phase,
-                                         set<string> *affected_ctrlr_set,
-                                         DalDmlIntf *dmi,
-                                         ConfigKeyVal **err_ckv) {
-      return UPLL_RC_SUCCESS;
-    }
-    virtual upll_rc_t MergeImportToCandidate(unc_key_type_t keytype,
-                                             const char *ctrlr_id,
-                                             DalDmlIntf *dmi) {
-      return UPLL_RC_SUCCESS;
-    }
-    virtual upll_rc_t ImportClear(unc_key_type_t keytype, const char *ctrlr_id,
-                                  DalDmlIntf *dmi) {
-      return UPLL_RC_SUCCESS;
-    }
-    virtual upll_rc_t AuditUpdateController(unc_key_type_t keytype,
-                                            const char *ctrlr_id,
-                                            uint32_t session_id,
-                                            uint32_t config_id,
-                                            uuc::UpdateCtrlrPhase phase,
-                                            bool *ctrlr_affected,
-                                            DalDmlIntf *dmi) {
-      return UPLL_RC_SUCCESS;
-    }
-    virtual upll_rc_t AuditVoteCtrlrStatus(unc_key_type_t keytype,
-                                           CtrlrVoteStatus *vote_satus,
+ public:
+  VunknownMoMgr();
+  virtual ~VunknownMoMgr() {
+    for (int i = 0; i < ntable; i++)
+      if (table[i]) {
+        delete table[i];
+      }
+    delete[] table;
+  }
+  virtual upll_rc_t TxVoteCtrlrStatus(
+      unc_key_type_t keytype, list<CtrlrVoteStatus*> *ctrlr_vote_status,
+      DalDmlIntf *dmi) {
+    return UPLL_RC_SUCCESS;
+  }
+  virtual upll_rc_t TxUpdateController(unc_key_type_t keytype,
+                                       uint32_t session_id,
+                                       uint32_t config_id,
+                                       uuc::UpdateCtrlrPhase phase,
+                                       set<string> *affected_ctrlr_set,
+                                       DalDmlIntf *dmi,
+                                       ConfigKeyVal **err_ckv) {
+    return UPLL_RC_SUCCESS;
+  }
+  virtual upll_rc_t MergeImportToCandidate(unc_key_type_t keytype,
+                                           const char *ctrlr_id,
                                            DalDmlIntf *dmi) {
-      return UPLL_RC_SUCCESS;
-    }
-    virtual upll_rc_t AuditCommitCtrlrStatus(unc_key_type_t keytype,
-                                             CtrlrCommitStatus *commit_satus,
-                                             DalDmlIntf *dmi) {
-      return UPLL_RC_SUCCESS;
-    }
-    virtual upll_rc_t AuditEnd(unc_key_type_t keytype, const char *ctrlr_id,
-                               DalDmlIntf *dmi) {
-      return UPLL_RC_SUCCESS;
-    }
+    return UPLL_RC_SUCCESS;
+  }
+  virtual upll_rc_t ImportClear(unc_key_type_t keytype, const char *ctrlr_id,
+                                DalDmlIntf *dmi) {
+    return UPLL_RC_SUCCESS;
+  }
+  virtual upll_rc_t AuditUpdateController(
+      unc_key_type_t keytype,
+      const char *ctrlr_id,
+      uint32_t session_id,
+      uint32_t config_id,
+      uuc::UpdateCtrlrPhase phase,
+      DalDmlIntf *dmi,
+      ConfigKeyVal **err_ckv,
+      KTxCtrlrAffectedState *ctrlr_affected) {
+    return UPLL_RC_SUCCESS;
+  }
+  virtual upll_rc_t AuditVoteCtrlrStatus(unc_key_type_t keytype,
+                                         CtrlrVoteStatus *vote_satus,
+                                         DalDmlIntf *dmi) {
+    return UPLL_RC_SUCCESS;
+  }
+  virtual upll_rc_t AuditCommitCtrlrStatus(unc_key_type_t keytype,
+                                           CtrlrCommitStatus *commit_satus,
+                                           DalDmlIntf *dmi) {
+    return UPLL_RC_SUCCESS;
+  }
+  virtual upll_rc_t AuditEnd(unc_key_type_t keytype, const char *ctrlr_id,
+                             DalDmlIntf *dmi) {
+    return UPLL_RC_SUCCESS;
+  }
 
-    /**
-     * @Brief  compares controller id and domain id before
-     *         updating the value to DB.
-     *
-     * @param[in]  ikey  ikey contains key and value structure.
-     * @param[in]  okey  okey contains key and value structure.
-     *
-     * @retval  UPLL_RC_SUCCESS            Successful.
-     * @retval  UPLL_RC_ERR_CFG_SYNTAX     Syntax error.
-     */
-    upll_rc_t CtrlrIdAndDomainIdUpdationCheck(ConfigKeyVal *ikey,
-                                                   ConfigKeyVal *okey);
-    /**
-     * @Brief Validates the syntax for KT_VUNKNOWN keytype key structure.
-     *
-     * @param[in] key_vunknown KT_VUNKNOWN key structure.
-     * @param[in] operation    Operation type.
-     *
-     * @retval UPLL_RC_SUCCESS        validation succeeded.
-     * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
-     */
-    upll_rc_t ValidateVunknownKey(key_vunknown_t *key_vunknown,
-        unc_keytype_operation_t operation = UNC_OP_INVALID);
-    upll_rc_t IsReferenced(ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
-                           DalDmlIntf *dmi);
+  /**
+   * @Brief  compares controller id and domain id before
+   *         updating the value to DB.
+   *
+   * @param[in]  ikey  ikey contains key and value structure.
+   * @param[in]  okey  okey contains key and value structure.
+   *
+   * @retval  UPLL_RC_SUCCESS            Successful.
+   * @retval  UPLL_RC_ERR_CFG_SYNTAX     Syntax error.
+   */
+  upll_rc_t CtrlrIdAndDomainIdUpdationCheck(ConfigKeyVal *ikey,
+                                            ConfigKeyVal *okey);
+  /**
+   * @Brief Validates the syntax for KT_VUNKNOWN keytype key structure.
+   *
+   * @param[in] key_vunknown KT_VUNKNOWN key structure.
+   * @param[in] operation    Operation type.
+   *
+   * @retval UPLL_RC_SUCCESS        validation succeeded.
+   * @retval UPLL_RC_ERR_CFG_SYNTAX validation failed.
+   */
+  upll_rc_t ValidateVunknownKey(
+      key_vunknown_t *key_vunknown,
+      unc_keytype_operation_t operation = UNC_OP_INVALID);
+  upll_rc_t IsReferenced(ConfigKeyVal *ikey, upll_keytype_datatype_t dt_type,
+                         DalDmlIntf *dmi);
 
-    /**
-     * @brief create entry in Vnode Rename Table,
-     *        with the renamed VTN details fetched from VTN rename Table
-     *
-     *
-     * @param[in]  ikey       ConfigKeyVal pointer
-     * @param[in]  dt_type    specifies the database type
-     * @param[in]  ctrlr_id   pointer to the controller name
-     * @param[in]  dmi        DalDmlIntf pointer
-     *
-     *
-     * @retval UPLL_RC_SUCCESS      Successful
-     * @retval UPLL_RC_ERR_GENERIC  failed to update the VbrIf
-     */
-    upll_rc_t CreateVnodeConfigKey(ConfigKeyVal *ikey, ConfigKeyVal *&okey);
+  /**
+   * @brief create entry in Vnode Rename Table,
+   *        with the renamed VTN details fetched from VTN rename Table
+   *
+   *
+   * @param[in]  ikey       ConfigKeyVal pointer
+   * @param[in]  dt_type    specifies the database type
+   * @param[in]  ctrlr_id   pointer to the controller name
+   * @param[in]  dmi        DalDmlIntf pointer
+   *
+   *
+   * @retval UPLL_RC_SUCCESS      Successful
+   * @retval UPLL_RC_ERR_GENERIC  failed to update the VbrIf
+   */
+  upll_rc_t CreateVnodeConfigKey(ConfigKeyVal *ikey, ConfigKeyVal *&okey);
 };
 }  // namespace kt_momgr
 }  // namespace upll
index fc9d0b84319e8881de5cee6a59fc0bf103e946ac..0a4925e5b18dff7158e5ecf6c6d280263026ba17 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2012-2013 NEC Corporation
+# Copyright (c) 2012-2014 NEC Corporation
 # All rights reserved.
 # 
 # This program and the accompanying materials are made available under the
@@ -29,6 +29,8 @@ CXX_SOURCES   = physicallayer.cc \
                itc_kt_state_base.cc \
                itc_kt_root.cc \
                itc_kt_controller.cc \
+               itc_kt_dataflow.cc \
+               itc_kt_ctr_dataflow.cc \
                itc_kt_ctr_domain.cc \
                itc_kt_logicalport.cc \
                itc_kt_logical_member_port.cc \
@@ -70,6 +72,10 @@ CFDEF_FILES = odbcm.cfdef    \
 MODULE_EXTRA_FILES = uppl_ctr_capability.conf  \
                     odbcm.conf
 
+EXTRA_INCDIRS   = $(CURDIR)/ \
+                  $(CURDIR)/../capa/include \
+                  $(CURDIR)/../capa
+
 include ../rules.mk
 
 ##
index d5bb4cfba971d5daccf1c3d66404ec80cd3d745d..37c1b783fa66854eebeb1098e77d6089f06bfbc9 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -25,13 +25,13 @@ namespace uppl {
  * @Description : ControllerVersion class constructor implementation
  */
 ControllerVersion::ControllerVersion(string version,
-                                     UpplReturnCode &return_code):
+                                     UncRespCode &return_code):
                                      version_(version),
                                      product_version_part1_(0),
                                      product_version_part2_(0),
                                      product_version_part3_(0) {
   return_code = ParseControllerVersion(version_);
-  if (return_code != UPPL_RC_SUCCESS) {
+  if (return_code != UNC_RC_SUCCESS) {
     pfc_log_error("Controller version parsing error");
   }
 }
@@ -40,10 +40,10 @@ ControllerVersion::ControllerVersion(string version,
  * @Description : This function parses the given controller version string and
  *                fills the class data members
  *@param[in]    : version - specifies the controller version
- *@return       : UPPL_RC_SUCCESS or any associated erro code
+ *@return       : UNC_RC_SUCCESS or any associated erro code
  */
 
-UpplReturnCode ControllerVersion::ParseControllerVersion(string version) {
+UncRespCode ControllerVersion::ParseControllerVersion(string version) {
   // String parsing of controller version
   vector<string> split_version;
   istringstream strversion(version);
@@ -53,7 +53,7 @@ UpplReturnCode ControllerVersion::ParseControllerVersion(string version) {
   }
   if (split_version.empty()) {
     // unable to get version
-    return UPPL_RC_ERR_CFG_SYNTAX;
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
   for (unsigned int index = 0 ; index < split_version.size(); ++index) {
     string part_version = split_version[index];
@@ -62,7 +62,7 @@ UpplReturnCode ControllerVersion::ParseControllerVersion(string version) {
     if (version_part == 0 && isdigit(part_version[0]) == 0) {
       pfc_log_error("Unable to parse the version part: %s",
                     part_version.c_str());
-      return UPPL_RC_ERR_CFG_SYNTAX;
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
     switch (index) {
       case 0 : {
@@ -79,7 +79,7 @@ UpplReturnCode ControllerVersion::ParseControllerVersion(string version) {
       }
     }
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 bool ControllerVersion::operator<(const ControllerVersion &val) const {
index f9b8bdbbb94f5b350428ee0246ee94cfb15e51ff..206f8aa8f5ed6e150a557a9d90e2cd37ea30271d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -26,11 +26,11 @@ namespace uppl {
 class ControllerVersion {
  public:
   explicit ControllerVersion(string version,
-                             UpplReturnCode &return_code);
+                             UncRespCode &return_code);
 
   ~ControllerVersion() {}
 
-  UpplReturnCode ParseControllerVersion(string version);
+  UncRespCode ParseControllerVersion(string version);
 
   bool operator<(const ControllerVersion &val) const;
 
index 06e9d409088db92d1c31b2ea9422ffb2043405b4..43401db17682cd2228192a765bfe670f30320ad3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
 #ifndef _IPC_CLIENT_CONFIGURATION_HANDLER_H_
 #define _IPC_CLIENT_CONFIGURATION_HANDLER_H_
 
-
+#include <unc/odcdriver_include.h>
 #include <pfcxx/ipc_client.hh>
 #include <pfcxx/module.hh>
 #include <string>
 #include "unc/uppl_common.h"
 #include "unc/keytype.h"
+#include "phy_util.hh"
 #include "unc/pfcdriver_include.h"
 #include "unc/vnpdriver_include.h"
-#include <unc/odcdriver_include.h>
-#include "phy_util.hh"
 
 using pfc::core::ipc::ClientSession;
 
@@ -42,14 +41,14 @@ namespace uppl {
 
 class IPCClientDriverHandler {
   public:
-    IPCClientDriverHandler(unc_keytype_ctrtype_t type, UpplReturnCode &err);
+    IPCClientDriverHandler(unc_keytype_ctrtype_t type, UncRespCode &err);
     ~IPCClientDriverHandler();
     IPCClientDriverHandler();
     IPCClientDriverHandler(const IPCClientDriverHandler&);
     IPCClientDriverHandler& operator=(const IPCClientDriverHandler&);
     ClientSession* ResetAndGetSession();
-    UpplReturnCode SendReqAndGetResp(driver_response_header &rsp);
-    UpplReturnCode ConvertDriverErrorCode(uint32_t drv_err_code);
+    UncRespCode SendReqAndGetResp(driver_response_header &rsp);
+    UncRespCode ConvertDriverErrorCode(uint32_t drv_err_code);
   private:
     ClientSession *cli_session;
     pfc_ipcconn_t connp;
index de479acfdb59d2b287d1c6316824538d87076ba4..7b6b7b2a6a5391101c121a58c3ef9764783ab88b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -22,6 +22,7 @@
 #include <pfcxx/module.hh>
 #include <pfcxx/ipc_client.hh>
 #include "unc/uppl_common.h"
+#include "unc/unc_base.h"
 
 namespace unc {
 namespace uppl {
@@ -34,7 +35,7 @@ namespace uppl {
 
 class IPCClientLogicalHandler {
  public:
-  UpplReturnCode CheckInUseInLogical(unc_key_type_t k_type,
+  UncRespCode CheckInUseInLogical(unc_key_type_t k_type,
                                      void *key_str,
                                      uint32_t data_type);
   static IPCClientLogicalHandler* get_ipc_client_logical_handler();
index d0f4a18df460a1766a38c18a5c070f25482886fd..dfea1a0e82922e4e588c9e020df6ffb6fc6d7f76 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -49,12 +49,12 @@ class IPCConnectionManager {
   IPCClientLogicalHandler* get_ipc_client_logical_handler();
   string get_uppl_channel_name();
   string get_uppl_service_name();
-  UpplReturnCode Finalize();
+  UncRespCode Finalize();
   uint32_t SendEvent(ServerEvent *evt);
-  UpplReturnCode SendEventSubscription();
-  UpplReturnCode CancelEventSubscription();
+  UncRespCode SendEventSubscription();
+  UncRespCode CancelEventSubscription();
   void addControllerToAuditList(string);
-  UpplReturnCode removeControllerFromAuditList(string);
+  UncRespCode removeControllerFromAuditList(string);
   pfc_bool_t IsControllerInAudit(string controller_name);
   uint32_t StartNotificationTimer(OdbcmConnectionHandler *db_conn,
                                   string controller_name);
@@ -70,7 +70,7 @@ class IPCConnectionManager {
     }
     return timer_id;
   }
-  UpplReturnCode CancelTimer(string);
+  UncRespCode CancelTimer(string);
 
  private:
   IPCServerHandler* ipc_server_handler_;
index b98bd5db6b1ef367d981939d3f4c0659e19685ef..64ecad52d0141271940e027fef732f5155ae5945 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -63,11 +63,15 @@ class IpctUtil  {
     static string get_string(const key_port_t &k);
     static string get_string(const val_port_t &v);
     static string get_string(const val_port_st_t &v);
+    static string get_string(const val_port_stats_t &v);
     static string get_string(const val_port_st_neighbor &v);
 
     static string get_string(const key_switch_t &k);
     static string get_string(const val_switch_t &v);
     static string get_string(const val_switch_st_t &v);
+    static string get_string(const val_switch_st_detail_t &v);
+    static std::string get_string(const val_df_data_flow_t &val_obj);
+    static std::string get_string(const val_df_data_flow_st_t &val_obj);
 
     static string get_string(const val_path_fault_alarm_t  &v);
     static string get_string(const val_phys_path_fault_alarm_t  &v);
index b82e67605d6a353d3c8de86c0529511cc457d1f3..9a65967aae68ec566e945bbf29eeec9677600ccd 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -48,41 +48,41 @@ class AuditRequest:public ITCReq  {
  public:
   AuditRequest();
   ~AuditRequest();
-  UpplReturnCode StartAudit(OdbcmConnectionHandler *db_conn,
+  UncRespCode StartAudit(OdbcmConnectionHandler *db_conn,
                             unc_keytype_ctrtype_t driver_id,
                             string controller_id);
-  UpplReturnCode StartAuditTransaction(uint32_t session_id,
+  UncRespCode StartAuditTransaction(uint32_t session_id,
                                        unc_keytype_ctrtype_t driver_id,
                                        string controller_id);
-  UpplReturnCode HandleAuditGlobalCommit(uint32_t session_id,
+  UncRespCode HandleAuditGlobalCommit(uint32_t session_id,
                                          uint32_t driver_id,
                                          string controller_id,
                                          TcDriverInfoMap& driver_info,
                                          TcAuditResult& audit_result);
-  UpplReturnCode HandleAuditVoteRequest(OdbcmConnectionHandler *db_conn,
+  UncRespCode HandleAuditVoteRequest(OdbcmConnectionHandler *db_conn,
                                         uint32_t session_id,
                                         uint32_t driver_id,
                                         string controller_id,
                                         TcDriverInfoMap &driver_info);
-  UpplReturnCode HandleAuditDriverResult(uint32_t session_id,
+  UncRespCode HandleAuditDriverResult(uint32_t session_id,
                                          string controller_id,
                                          TcCommitPhaseType commitphase,
                                          TcCommitPhaseResult driver_result,
                                          TcAuditResult& audit_result) {
     audit_result = unc::tclib::TC_AUDIT_SUCCESS;
-    return UPPL_RC_SUCCESS;}
-  UpplReturnCode HandleAuditAbort(uint32_t session_id,
+    return UNC_RC_SUCCESS;}
+  UncRespCode HandleAuditAbort(uint32_t session_id,
                                   unc_keytype_ctrtype_t driver_id,
                                   string controller_id,
                                   TcAuditOpAbortPhase operation_phase);
-  UpplReturnCode EndAuditTransaction(uint32_t session_id,
+  UncRespCode EndAuditTransaction(uint32_t session_id,
                                      unc_keytype_ctrtype_t& driver_id,
                                      string controller_id);
-  UpplReturnCode EndAudit(OdbcmConnectionHandler *db_conn,
+  UncRespCode EndAudit(OdbcmConnectionHandler *db_conn,
                           unc_keytype_ctrtype_t driver_id,
                           string controller_id,
                           TcAuditResult audit_result);
-  UpplReturnCode MergeAuditDbToRunning(OdbcmConnectionHandler *db_conn,
+  UncRespCode MergeAuditDbToRunning(OdbcmConnectionHandler *db_conn,
                                        string controller_name);
 
  private:
index 95931ee46201d14935cdc3a3eee278160f0eac2e..c4d2b48e939a3e27f0b2005ce1df09a5e3b76075 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -42,9 +42,9 @@ class ConfigurationRequest: public ITCReq {
  public:
   ConfigurationRequest();
   ~ConfigurationRequest();
-  UpplReturnCode ProcessReq(ServerSession &session,
+  UncRespCode ProcessReq(ServerSession &session,
                             physical_request_header &obj_req_hdr);
-  UpplReturnCode ValidateReq(OdbcmConnectionHandler *db_conn,
+  UncRespCode ValidateReq(OdbcmConnectionHandler *db_conn,
                              ServerSession &session,
       physical_request_header obj_req_hdr,
       void* &key_struct,
@@ -59,19 +59,19 @@ class ConfigurationRequest: public ITCReq {
   val_ctr_domain_t val_domain_obj;
   key_boundary_t key_boundary_obj;
   val_boundary_t val_boundary_obj;
-  UpplReturnCode ValidateController(OdbcmConnectionHandler *db_conn,
+  UncRespCode ValidateController(OdbcmConnectionHandler *db_conn,
                                     ServerSession &session,
                                     uint32_t data_type,
                                     uint32_t operation,
                                     void* &key_struct,
                                     void* &val_struct);
-  UpplReturnCode ValidateDomain(OdbcmConnectionHandler *db_conn,
+  UncRespCode ValidateDomain(OdbcmConnectionHandler *db_conn,
                                 ServerSession &session,
                                 uint32_t data_type,
                                 uint32_t operation,
                                 void* &key_struct,
                                 void* &val_struct);
-  UpplReturnCode ValidateBoundary(OdbcmConnectionHandler *db_conn,
+  UncRespCode ValidateBoundary(OdbcmConnectionHandler *db_conn,
                                   ServerSession &session,
                                   uint32_t data_type,
                                   uint32_t operation,
index 584d0b4e37875a90a19fb54eee0ff004f43a1602..ad830604a6f338bd01c33c8ae4bdaac90fcc7c2a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -29,17 +29,17 @@ class DBConfigurationRequest : public ITCReq {
  public:
   DBConfigurationRequest();
   ~DBConfigurationRequest();
-  UpplReturnCode LoadAndCommitStartup(OdbcmConnectionHandler *db_conn);
-  UpplReturnCode ClearStartUpDb(OdbcmConnectionHandler *db_conn);
-  UpplReturnCode AbortCandidateDb(OdbcmConnectionHandler *db_conn);
-  UpplReturnCode  SaveRunningToStartUp(OdbcmConnectionHandler *db_conn);
-  UpplReturnCode SendDeletedControllerToLogical(
+  UncRespCode LoadAndCommitStartup(OdbcmConnectionHandler *db_conn);
+  UncRespCode ClearStartUpDb(OdbcmConnectionHandler *db_conn);
+  UncRespCode AbortCandidateDb(OdbcmConnectionHandler *db_conn);
+  UncRespCode  SaveRunningToStartUp(OdbcmConnectionHandler *db_conn);
+  UncRespCode SendDeletedControllerToLogical(
       OdbcmConnectionHandler *db_conn);
-  UpplReturnCode SendCreatedControllerToLogical(
+  UncRespCode SendCreatedControllerToLogical(
       OdbcmConnectionHandler *db_conn);
-  UpplReturnCode SendUpdatedControllerToLogical(
+  UncRespCode SendUpdatedControllerToLogical(
       OdbcmConnectionHandler *db_conn);
-  UpplReturnCode SendAppliedControllerToLogical(
+  UncRespCode SendAppliedControllerToLogical(
       OdbcmConnectionHandler *db_conn);
 };
 }  // namespace uppl
index a75c33f22034bd6b504f697f694849d2340e12d8..54fba11bc500f785a8ed3333264debacc36e9c14 100644 (file)
@@ -2,7 +2,7 @@
 #define _IMPORT_REQUEST_H_
 
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -31,13 +31,13 @@ class ImportRequest:public ITCReq {
  public:
   ImportRequest();
   ~ImportRequest();
-  UpplReturnCode ProcessRequest(OdbcmConnectionHandler *db_conn,
+  UncRespCode ProcessRequest(OdbcmConnectionHandler *db_conn,
                                 uint32_t operation,
                             key_ctr_t obj_key_ctr);
-  UpplReturnCode StartImport(OdbcmConnectionHandler *db_conn,
+  UncRespCode StartImport(OdbcmConnectionHandler *db_conn,
                              key_ctr_t obj_key_ctr);
-  UpplReturnCode MergeConfiguration(key_ctr_t obj_key_ctr);
-  UpplReturnCode ClearImportConfig(key_ctr_t obj_key_ctr);
+  UncRespCode MergeConfiguration(key_ctr_t obj_key_ctr);
+  UncRespCode ClearImportConfig(key_ctr_t obj_key_ctr);
 };
 }/*namespace uppl*/
 }/*namespace unc*/
index 3449216f29738e9e472ac6ccaef89ba9b75b5be8..f9bdbac0456ab15989c2ea85b1268a3c99a4641c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -21,6 +21,7 @@
 #include <map>
 
 #include "physical_common_def.hh"
+#include "phy_util.hh"
 #include "unc/uppl_common.h"
 #include "ipc_connection_manager.hh"
 #include "odbcm_utils.hh"
@@ -34,13 +35,15 @@ using unc::uppl::ODBCMOperator;
 using unc::uppl::DBTableSchema;
 using unc::uppl::ODBCMTableColumns;
 using unc::uppl::OdbcmConnectionHandler;
+using unc::uppl::ScopedDBConnection;
+
 class ReadRequest;
 
 class Kt_Class_Attr_Syntax {
  public:
   pfc_ipctype_t data_type;
-  uint32_t min_value;
-  uint32_t max_value;
+  uint64_t min_value;
+  uint64_t max_value;
   uint32_t min_length;
   uint32_t max_length;
   bool mandatory_attrib;
@@ -73,70 +76,70 @@ class Kt_Base {
     return UNC_KT_ROOT;
   };
 
-  virtual UpplReturnCode Create(OdbcmConnectionHandler *db_conn,
+  virtual UncRespCode Create(OdbcmConnectionHandler *db_conn,
                                 uint32_t session_id, uint32_t configuration_id,
                                 void* key_struct, void* val_struct,
                                 uint32_t data_type, ServerSession &sess) {
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   };
 
-  virtual UpplReturnCode CreateKeyInstance(OdbcmConnectionHandler *db_conn,
+  virtual UncRespCode CreateKeyInstance(OdbcmConnectionHandler *db_conn,
                                            void* key_struct,
                                            void* val_struct,
                                            uint32_t data_type,
                                            uint32_t key_type) {
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   };
 
-  virtual UpplReturnCode UpdateKeyInstance(OdbcmConnectionHandler *db_conn,
+  virtual UncRespCode UpdateKeyInstance(OdbcmConnectionHandler *db_conn,
                                            void* key_struct, void* val_struct,
                                            uint32_t data_type,
                                            uint32_t key_type,
                                            void* &old_val_struct) {
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   };
 
-  virtual UpplReturnCode Update(OdbcmConnectionHandler *db_conn,
+  virtual UncRespCode Update(OdbcmConnectionHandler *db_conn,
                                 uint32_t session_id, uint32_t configuration_id,
                                 void* key_struct, void* val_struct,
                                 uint32_t data_type, ServerSession &sess) {
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   };
 
-  virtual UpplReturnCode Delete(OdbcmConnectionHandler *db_conn,
+  virtual UncRespCode Delete(OdbcmConnectionHandler *db_conn,
                                 uint32_t session_id, uint32_t configuration_id,
                                 void* key_struct, uint32_t data_type,
                                 ServerSession &sess) {
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   };
 
-  virtual UpplReturnCode DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
+  virtual UncRespCode DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
                                            void* key_struct,
                                            uint32_t data_type,
                                            uint32_t key_type) {
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   };
 
-  virtual UpplReturnCode ReadInternal(OdbcmConnectionHandler *db_conn,
+  virtual UncRespCode ReadInternal(OdbcmConnectionHandler *db_conn,
                                       vector<void*> &key_struct,
                                       vector<void*> &val_struct,
                                       uint32_t data_type,
                                       uint32_t operation_type) {
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   };
 
-  virtual UpplReturnCode Read(OdbcmConnectionHandler *db_conn,
+  virtual UncRespCode Read(OdbcmConnectionHandler *db_conn,
                               uint32_t session_id, uint32_t configuration_id,
                               void* key_struct, void* val_struct,
                               uint32_t data_type, ServerSession &sess,
                               uint32_t option1, uint32_t option2);
 
-  virtual UpplReturnCode ReadNext(OdbcmConnectionHandler *db_conn,
-                                  void* key_struct,
+  virtual UncRespCode ReadNext(OdbcmConnectionHandler *db_conn,
+                                  uint32_t session_id, void* key_struct,
                                   uint32_t data_type,
                                   ReadRequest *read_req);
 
-  virtual UpplReturnCode ReadBulk(OdbcmConnectionHandler *db_conn,
+  virtual UncRespCode ReadBulk(OdbcmConnectionHandler *db_conn,
                                   void* key_struct,
                                   uint32_t data_type,
                                   uint32_t &max_rep_ct,
@@ -145,7 +148,7 @@ class Kt_Base {
                                   pfc_bool_t is_read_next,
                                   ReadRequest *read_req)=0;
 
-  virtual UpplReturnCode ReadSiblingBegin(OdbcmConnectionHandler *db_conn,
+  virtual UncRespCode ReadSiblingBegin(OdbcmConnectionHandler *db_conn,
                                           uint32_t session_id,
                                           uint32_t configuration_id,
                                           void* key_struct, void* val_struct,
@@ -154,7 +157,7 @@ class Kt_Base {
                                           uint32_t option1, uint32_t option2,
                                           uint32_t &max_rep_ct);
 
-  virtual UpplReturnCode ReadSibling(OdbcmConnectionHandler *db_conn,
+  virtual UncRespCode ReadSibling(OdbcmConnectionHandler *db_conn,
                                      uint32_t session_id,
                                      uint32_t configuration_id,
                                      void* key_struct, void* val_struct,
@@ -162,7 +165,7 @@ class Kt_Base {
                                      uint32_t option1, uint32_t option2,
                                      uint32_t &max_rep_ct);
 
-  virtual UpplReturnCode ReadSiblingCount(OdbcmConnectionHandler *db_conn,
+  virtual UncRespCode ReadSiblingCount(OdbcmConnectionHandler *db_conn,
                                           uint32_t session_id,
                                           uint32_t configuration_id,
                                           void* key_struct, void* val_struct,
@@ -171,7 +174,7 @@ class Kt_Base {
                                           ServerSession &sess,
                                           uint32_t option1, uint32_t option2);
 
-  virtual UpplReturnCode PerformRead(OdbcmConnectionHandler *db_conn,
+  virtual UncRespCode PerformRead(OdbcmConnectionHandler *db_conn,
                                      uint32_t session_id,
                                      uint32_t configuration_id,
                                      void* key_struct, void* val_struct,
@@ -180,93 +183,93 @@ class Kt_Base {
                                      ServerSession &sess, uint32_t option1,
                                      uint32_t option2, uint32_t max_rep_ct)=0;
 
-  virtual UpplReturnCode PerformSyntaxValidation(
+  virtual UncRespCode PerformSyntaxValidation(
       OdbcmConnectionHandler *db_conn,
       void* key_struct,
       void* val_struct,
       uint32_t operation,
       uint32_t data_type)=0;
 
-  virtual UpplReturnCode PerformSemanticValidation(
+  virtual UncRespCode PerformSemanticValidation(
       OdbcmConnectionHandler *db_conn,
       void* key_struct,
       void* val_struct,
       uint32_t operation,
       uint32_t data_type)=0;
 
-  UpplReturnCode
+  UncRespCode
   ValidateRequest(OdbcmConnectionHandler *db_conn,
                   void* key_struct, void* val_struct, uint32_t operation,
                   uint32_t data_type, uint32_t key_type);
 
-  virtual UpplReturnCode ValidateCtrlrValueCapability(string version,
+  virtual UncRespCode ValidateCtrlrValueCapability(string version,
                                                       uint32_t key_type) {
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   };
 
-  virtual UpplReturnCode ValidateCtrlrScalability(std::string version,
+  virtual UncRespCode ValidateCtrlrScalability(std::string version,
                                                   uint32_t key_type,
                                                   uint32_t data_type) {
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   };
 
   // Caller can check whether a controller_id is existing (or)
   // A switch within a controller is existing
   // In this case list will contain two values -
   // a controller id and a switch id
-  virtual UpplReturnCode IsKeyExists(OdbcmConnectionHandler *db_conn,
+  virtual UncRespCode IsKeyExists(OdbcmConnectionHandler *db_conn,
                                      unc_keytype_datatype_t data_type,
                                      const vector<string>& key_values) {
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   };
 
-  UpplReturnCode ConfigurationChangeNotification(uint32_t data_type,
+  UncRespCode ConfigurationChangeNotification(uint32_t data_type,
                                                  uint32_t key_type,
                                                  uint32_t oper_type,
                                                  void *key_struct,
                                                  void* old_val_struct,
                                                  void* new_val_struct);
 
-  virtual UpplReturnCode HandleDriverAlarms(OdbcmConnectionHandler *db_conn,
+  virtual UncRespCode HandleDriverAlarms(OdbcmConnectionHandler *db_conn,
                                             uint32_t data_type,
                                             uint32_t alarm_type,
                                             uint32_t oper_type,
                                             void* key_struct,
                                             void* val_struct) {
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   };
 
-  virtual UpplReturnCode GetModifiedRows(OdbcmConnectionHandler *db_conn,
+  virtual UncRespCode GetModifiedRows(OdbcmConnectionHandler *db_conn,
                                          vector<void *> &key_struct,
                                          vector<void *> &val_struct,
                                          CsRowStatus row_status) {
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   };
 
   virtual void Fill_Attr_Syntax_Map() {
   };
 
-  virtual UpplReturnCode HandleOperStatus(OdbcmConnectionHandler *db_conn,
+  virtual UncRespCode HandleOperStatus(OdbcmConnectionHandler *db_conn,
                                           uint32_t data_type,
                                           void *key_struct,
                                           void *value_struct) {
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   };
 
-  virtual UpplReturnCode NotifyOperStatus(OdbcmConnectionHandler *db_conn,
+  virtual UncRespCode NotifyOperStatus(OdbcmConnectionHandler *db_conn,
                                           uint32_t data_type,
                                           void *key_struct,
                                           void *value_struct) {
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   };
 
   virtual pfc_bool_t CompareKeyStruct(void *key_struct1, void *key_struct2) {
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   };
 
   virtual pfc_bool_t CompareValueStruct(void *value_struct1,
                                         void *value_struct2) {
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   };
   virtual void
   PopulateDBSchemaForKtTable(OdbcmConnectionHandler *db_conn,
@@ -296,148 +299,188 @@ class Kt_Base {
                            void *&old_value_struct);
   static map<unc_key_type_t, map<string, Kt_Class_Attr_Syntax> >
   attr_syntax_map_all;
-  UpplReturnCode get_oper_status(vector<OperStatusHolder> &ref_oper_status,
+  UncRespCode get_oper_status(vector<OperStatusHolder> &ref_oper_status,
                                    unc_key_type_t key_type,
                                    void* key_struct,
                                    uint8_t &oper_status);
   void ClearOperStatusHolder(vector<OperStatusHolder> &ref_oper_status);
 
  private:
-  UpplReturnCode ValidateKtRoot(uint32_t operation,
+  UncRespCode ValidateKtRoot(uint32_t operation,
+                                uint32_t data_type);
+  UncRespCode ValidateKtDataflow(uint32_t operation,
                                 uint32_t data_type);
-  UpplReturnCode ValidateKtCtrlBdry(uint32_t operation,
+  UncRespCode ValidateKtCtrlBdry(uint32_t operation,
                                     uint32_t data_type);
-  UpplReturnCode ValidateKtCtrDomain(uint32_t operation,
+  UncRespCode ValidateKtCtrDataflow(uint32_t operation,
+                                uint32_t data_type);
+  UncRespCode ValidateKtCtrDomain(uint32_t operation,
                                      uint32_t data_type);
-  UpplReturnCode ValidateKtState(uint32_t operation,
+  UncRespCode ValidateKtState(uint32_t operation,
                                  uint32_t data_type);
 };
 
 #define VALIDATE_STRING_FIELD(attr_name, field, ret_code) \
     { \
   map<string, Kt_Class_Attr_Syntax>::iterator itVal = \
-  attr_syntax_map.find(attr_name); \
+  attr_syntax_map.find((attr_name)); \
   if (itVal != attr_syntax_map.end()) { \
     Kt_Class_Attr_Syntax objAttr = itVal->second; \
     if (objAttr.data_type == PFC_IPCTYPE_STRING) { \
-      if (field.length() < objAttr.min_length || \
-          field.length() > objAttr.max_length) { \
-        ret_code = UPPL_RC_ERR_CFG_SYNTAX; \
+      if ((field).length() < objAttr.min_length || \
+          (field).length() > objAttr.max_length) { \
+        (ret_code) = UNC_UPPL_RC_ERR_CFG_SYNTAX; \
       } \
     } \
   } else { \
-    ret_code = UPPL_RC_ERR_ATTRIBUTE_NOT_SUPPORTED; \
+    (ret_code) = UNC_UPPL_RC_ERR_ATTRIBUTE_NOT_SUPPORTED; \
   } \
 }
 
 #define VALIDATE_IPV4_FIELD(attr_name, field, ret_code) \
     { \
     map<string, Kt_Class_Attr_Syntax>::iterator itVal = \
-    attr_syntax_map.find(attr_name); \
+    attr_syntax_map.find((attr_name)); \
     if (itVal != attr_syntax_map.end()) { \
       Kt_Class_Attr_Syntax objAttr = itVal->second; \
       if (objAttr.data_type == PFC_IPCTYPE_IPV4) { \
-        if (field.s_addr < objAttr.min_value || \
-            field.s_addr  > objAttr.max_value) { \
-          ret_code = UPPL_RC_ERR_CFG_SYNTAX; \
+        if ((field).s_addr < objAttr.min_value || \
+            (field).s_addr  > objAttr.max_value) { \
+          (ret_code) = UNC_UPPL_RC_ERR_CFG_SYNTAX; \
         } \
       } \
     } else { \
-      ret_code = UPPL_RC_ERR_ATTRIBUTE_NOT_SUPPORTED; \
+      (ret_code) = UNC_UPPL_RC_ERR_ATTRIBUTE_NOT_SUPPORTED; \
     } \
     }
 
 #define VALIDATE_IPV6_FIELD(attr_name, field, ret_code) \
     { \
   map<string, Kt_Class_Attr_Syntax>::iterator itVal = \
-  attr_syntax_map.find(attr_name); \
+  attr_syntax_map.find((attr_name)); \
   if (itVal != attr_syntax_map.end()) { \
     Kt_Class_Attr_Syntax objAttr = itVal->second; \
     if (objAttr.data_type == PFC_IPCTYPE_IPV6) { \
-      if (*(field.s6_addr) < objAttr.min_value || \
-          *(field.s6_addr)  > objAttr.max_value) { \
-        ret_code = UPPL_RC_ERR_CFG_SYNTAX; \
+      if (*((field).s6_addr) < objAttr.min_value || \
+          *((field).s6_addr)  > objAttr.max_value) { \
+        (ret_code) = UNC_UPPL_RC_ERR_CFG_SYNTAX; \
       } \
     } \
   } else { \
-    ret_code = UPPL_RC_ERR_ATTRIBUTE_NOT_SUPPORTED; \
+    (ret_code) = UNC_UPPL_RC_ERR_ATTRIBUTE_NOT_SUPPORTED; \
   } \
 }
 #define VALIDATE_INT_FIELD(attr_name, field, ret_code) \
     { \
     map<string, Kt_Class_Attr_Syntax>::iterator itVal = \
-    attr_syntax_map.find(attr_name); \
+    attr_syntax_map.find((attr_name)); \
     if (itVal != attr_syntax_map.end()) { \
       Kt_Class_Attr_Syntax objAttr = itVal->second; \
-      if (objAttr.data_type == PFC_IPCTYPE_UINT32 || \
+      if (objAttr.data_type == PFC_IPCTYPE_UINT64 || \
+          objAttr.data_type == PFC_IPCTYPE_UINT32 || \
           objAttr.data_type == PFC_IPCTYPE_UINT16 || \
           objAttr.data_type == PFC_IPCTYPE_UINT8) { \
-        if (field < objAttr.min_value || \
-            field > objAttr.max_value) { \
-          ret_code = UPPL_RC_ERR_CFG_SYNTAX; \
+        if ((field) < objAttr.min_value || \
+            (field) > objAttr.max_value) { \
+          (ret_code) = UNC_UPPL_RC_ERR_CFG_SYNTAX; \
         } \
       } \
     } else { \
-      ret_code = UPPL_RC_ERR_ATTRIBUTE_NOT_SUPPORTED; \
+      (ret_code) = UNC_UPPL_RC_ERR_ATTRIBUTE_NOT_SUPPORTED; \
     } \
 }
 
 #define VALIDATE_MANDATORY_FIELD(attr_name, mandatory) \
     { \
       map<string, Kt_Class_Attr_Syntax>::iterator itVal = \
-      attr_syntax_map.find(attr_name); \
+      attr_syntax_map.find((attr_name)); \
       if (itVal != attr_syntax_map.end()) { \
         Kt_Class_Attr_Syntax objAttr = itVal->second; \
         if (objAttr.mandatory_attrib == false) { \
-          mandatory = PFC_FALSE; \
+          (mandatory) = PFC_FALSE; \
         } else { \
-          mandatory = PFC_TRUE; \
+          (mandatory) = PFC_TRUE; \
         } \
       } else { \
-        mandatory = PFC_FALSE; \
+        (mandatory) = PFC_FALSE; \
       } \
 }
 
 #define IS_VALID_STRING_KEY(attr_name, value, \
     operation, ret_code, mandatory) \
     { \
-        VALIDATE_MANDATORY_FIELD(attr_name, mandatory); \
-        if ((operation == UNC_OP_CREATE || operation == UNC_OP_READ || \
-            operation == UNC_OP_UPDATE || operation == UNC_OP_DELETE) \
-            && mandatory == PFC_TRUE && value.empty()) { \
+        VALIDATE_MANDATORY_FIELD((attr_name), (mandatory)); \
+        if (((operation) == UNC_OP_CREATE || (operation) == UNC_OP_READ || \
+            (operation) == UNC_OP_UPDATE || (operation) == UNC_OP_DELETE) \
+            && (mandatory) == PFC_TRUE && (value).empty()) { \
           pfc_log_error( \
                          "Key value %s not found for %d operation", \
                          attr_name, operation); \
-                         ret_code = UPPL_RC_ERR_CFG_SYNTAX; \
+                         (ret_code) = UNC_UPPL_RC_ERR_CFG_SYNTAX; \
         } \
-        VALIDATE_STRING_FIELD(attr_name, value, ret_code); \
-        if (ret_code != UPPL_RC_SUCCESS) { \
+        VALIDATE_STRING_FIELD((attr_name), (value), (ret_code)); \
+        if ((ret_code) != UNC_RC_SUCCESS) { \
           pfc_log_error("Length check failed for attribute %s", \
                         attr_name); \
         } \
 }
 
+#define IS_VALID_VLAN_ID(attr_name, value, \
+    operation, ret_code, mandatory) \
+    { \
+       VALIDATE_MANDATORY_FIELD((attr_name), (mandatory)); \
+        if (((operation) == UNC_OP_READ) \
+            && mandatory == PFC_TRUE \
+            && ((PhyUtil::uint16tostr(value)).empty())) { \
+          pfc_log_error( \
+                         "Key value %s not found for %d operation", \
+                         attr_name, operation); \
+                         (ret_code) = UNC_UPPL_RC_ERR_CFG_SYNTAX; \
+        }  \
+    map<string, Kt_Class_Attr_Syntax>::iterator itVal = \
+    attr_syntax_map.find(attr_name); \
+    if (itVal != attr_syntax_map.end()) { \
+      Kt_Class_Attr_Syntax objAttr = itVal->second; \
+      if (objAttr.data_type == PFC_IPCTYPE_UINT16) { \
+        if ((value) < objAttr.min_value || \
+            (value) > objAttr.max_value) { \
+          if ((value) == 0xffff) { \
+            pfc_log_info("no_vlan_id value is allowed");\
+            (ret_code) = UNC_RC_SUCCESS; \
+          } else { \
+            (ret_code) = UNC_UPPL_RC_ERR_CFG_SYNTAX; \
+            pfc_log_error("Value check failed for attribute %s", \
+                        attr_name); \
+          } \
+      } \
+     } \
+    } else { \
+      (ret_code) = UNC_UPPL_RC_ERR_ATTRIBUTE_NOT_SUPPORTED; \
+    } \
+}
+
+
 #define IS_VALID_STRING_VALUE(attr_name, value, \
     operation, valid_value, ret_code, mandatory) \
-    VALIDATE_MANDATORY_FIELD(attr_name, mandatory); \
-    if (operation == UNC_OP_CREATE && (valid_value != UNC_VF_VALID && \
-        mandatory == PFC_TRUE)) { \
+    VALIDATE_MANDATORY_FIELD((attr_name), (mandatory)); \
+    if ((operation) == UNC_OP_CREATE && ((valid_value) != UNC_VF_VALID && \
+        (mandatory) == PFC_TRUE)) { \
       pfc_log_error(\
                     "Mandatory attribute %s in not available in " \
                     "%d operation", \
                     attr_name, operation); \
-                    ret_code = UPPL_RC_ERR_CFG_SYNTAX; \
-    } else if (valid_value == UNC_VF_VALID) { \
-      if (mandatory == PFC_TRUE && value.empty()) { \
+                    (ret_code) = UNC_UPPL_RC_ERR_CFG_SYNTAX; \
+    } else if ((valid_value) == UNC_VF_VALID) { \
+      if ((mandatory) == PFC_TRUE && (value).empty()) { \
         pfc_log_error(\
                       "Mandatory attribute value %s in not " \
                       "available in %d operation", \
                       attr_name, operation); \
-                      ret_code = UPPL_RC_ERR_CFG_SYNTAX; \
-                      ret_code = UPPL_RC_ERR_CFG_SYNTAX; \
+                      (ret_code) = UNC_UPPL_RC_ERR_CFG_SYNTAX; \
+                      (ret_code) = UNC_UPPL_RC_ERR_CFG_SYNTAX; \
       } \
-      VALIDATE_STRING_FIELD(attr_name, value, ret_code); \
-      if (ret_code != UPPL_RC_SUCCESS) { \
+      VALIDATE_STRING_FIELD((attr_name), (value), (ret_code)); \
+      if ((ret_code) != UNC_RC_SUCCESS) { \
         pfc_log_error("Length check failed for attribute %s", \
                       attr_name); \
       } \
@@ -445,17 +488,17 @@ class Kt_Base {
 
 #define IS_VALID_INT_VALUE(attr_name, value, \
     operation, valid_value, ret_code, mandatory) \
-    VALIDATE_MANDATORY_FIELD(attr_name, mandatory); \
-    if (operation == UNC_OP_CREATE && (valid_value != UNC_VF_VALID && \
-        mandatory == PFC_TRUE)) { \
+    VALIDATE_MANDATORY_FIELD((attr_name), (mandatory)); \
+    if ((operation) == UNC_OP_CREATE && ((valid_value) != UNC_VF_VALID && \
+        (mandatory) == PFC_TRUE)) { \
       pfc_log_error(\
                     "Mandatory attribute %s in not available in " \
                     "%d operation", \
                     attr_name, operation); \
-                    ret_code = UPPL_RC_ERR_CFG_SYNTAX; \
-    } else if (valid_value == UNC_VF_VALID) { \
-      VALIDATE_INT_FIELD(attr_name, value, ret_code); \
-      if (ret_code != UPPL_RC_SUCCESS) { \
+                    (ret_code) = UNC_UPPL_RC_ERR_CFG_SYNTAX; \
+    } else if ((valid_value) == UNC_VF_VALID) { \
+      VALIDATE_INT_FIELD((attr_name), (value), (ret_code)); \
+      if ((ret_code) != UNC_RC_SUCCESS) { \
         pfc_log_error("Syntax validation failed for attribute %s", \
                       attr_name); \
       } \
@@ -463,17 +506,17 @@ class Kt_Base {
 
 #define IS_VALID_IPV4_VALUE(attr_name, value, \
     operation, valid_value, ret_code, mandatory) \
-    VALIDATE_MANDATORY_FIELD(attr_name, mandatory); \
-    if (operation == UNC_OP_CREATE && (valid_value != UNC_VF_VALID && \
-        mandatory == PFC_TRUE)) { \
+    VALIDATE_MANDATORY_FIELD((attr_name), (mandatory)); \
+    if ((operation) == UNC_OP_CREATE && ((valid_value) != UNC_VF_VALID && \
+        (mandatory) == PFC_TRUE)) { \
       pfc_log_error(\
                     "Mandatory attribute %s in not available in " \
                     "%d operation", \
                     attr_name, operation); \
-                    ret_code = UPPL_RC_ERR_CFG_SYNTAX; \
-    } else if (valid_value == UNC_VF_VALID) { \
-      VALIDATE_IPV4_FIELD(attr_name, value, ret_code); \
-      if (ret_code != UPPL_RC_SUCCESS) { \
+                    (ret_code) = UNC_UPPL_RC_ERR_CFG_SYNTAX; \
+    } else if ((valid_value) == UNC_VF_VALID) { \
+      VALIDATE_IPV4_FIELD((attr_name), (value), (ret_code)); \
+      if ((ret_code) != UNC_RC_SUCCESS) { \
         pfc_log_error("Syntax validation failed for attribute %s", \
                       attr_name); \
       } \
@@ -481,37 +524,37 @@ class Kt_Base {
 
 #define IS_VALID_IPV6_VALUE(attr_name, value, \
     operation, valid_value, ret_code, mandatory) \
-    VALIDATE_MANDATORY_FIELD(attr_name, mandatory); \
-    if (operation == UNC_OP_CREATE && (valid_value != UNC_VF_VALID && \
-        mandatory == PFC_TRUE)) { \
+    VALIDATE_MANDATORY_FIELD((attr_name), (mandatory)); \
+    if ((operation) == UNC_OP_CREATE && ((valid_value) != UNC_VF_VALID && \
+        (mandatory) == PFC_TRUE)) { \
       pfc_log_error(\
                     "Mandatory attribute %s in not available in " \
                     "%d operation", \
                     attr_name, operation); \
-                    ret_code = UPPL_RC_ERR_CFG_SYNTAX; \
-    } else if (valid_value == UNC_VF_VALID) { \
-      VALIDATE_IPV6_FIELD(attr_name, value, ret_code); \
-      if (ret_code != UPPL_RC_SUCCESS) { \
+                    (ret_code) = UNC_UPPL_RC_ERR_CFG_SYNTAX; \
+    } else if ((valid_value) == UNC_VF_VALID) { \
+      VALIDATE_IPV6_FIELD((attr_name), (value), (ret_code)); \
+      if ((ret_code) != UNC_RC_SUCCESS) { \
         pfc_log_error("Syntax validation failed for attribute %s", \
                       attr_name); \
       } \
 }
 
-#define ADD_CTRL_OPER_STATUS(controller_name, oper_status) \
+#define ADD_CTRL_OPER_STATUS(controller_name, oper_status, ref_oper_status) \
     key_ctr_t *ctlr_key = new key_ctr_t; \
-    memset(ctlr_key->controller_name, 0, 32); \
-    memcpy(ctlr_key->controller_name, controller_name.c_str(), \
-           controller_name.length()+1); \
+    memset((ctlr_key->controller_name), 0, 32); \
+    memcpy((ctlr_key->controller_name), ((controller_name).c_str()), \
+           ((controller_name).length())+1); \
     OperStatusHolder obj_oper_status_ctr(UNC_KT_CONTROLLER, \
                                      reinterpret_cast<void *>(ctlr_key), \
-                                     oper_status); \
-    ref_oper_status.push_back(obj_oper_status_ctr); \
+                                     (oper_status)); \
+    (ref_oper_status).push_back(obj_oper_status_ctr); \
 
-#define GET_ADD_CTRL_OPER_STATUS(controller_name) \
+#define GET_ADD_CTRL_OPER_STATUS(ctr_name, vect_operstatus) \
     key_ctr_t *ctr_key = new key_ctr_t; \
     memset(ctr_key->controller_name, 0, 32); \
-    memcpy(ctr_key->controller_name, controller_name.c_str(), \
-           (controller_name.length())+1); \
+    memcpy((ctr_key->controller_name), ((ctr_name).c_str()), \
+           ((ctr_name).length())+1); \
     void* key_type_struct = reinterpret_cast<void*>(ctr_key); \
     Kt_Controller controller; \
     uint8_t ctr_oper_status = \
@@ -520,34 +563,34 @@ class Kt_Base {
     if (data_type == UNC_DT_IMPORT) { \
        ctrl_data_type = UNC_DT_RUNNING; \
     } \
-    UpplReturnCode read_status = controller.GetOperStatus( \
+    UncRespCode read_status = controller.GetOperStatus( \
         db_conn, ctrl_data_type, key_type_struct, ctr_oper_status); \
     pfc_log_debug("Controller's read_status %d, oper_status %d", \
               read_status, ctr_oper_status); \
     OperStatusHolder obj_oper_status_ctr(UNC_KT_CONTROLLER, \
                                      reinterpret_cast<void *>(ctr_key), \
                                      ctr_oper_status); \
-    ref_oper_status.push_back(obj_oper_status_ctr); \
+    (vect_operstatus).push_back(obj_oper_status_ctr);
 
-#define ADD_SWITCH_OPER_STATUS(sw_key, oper_status) \
+#define ADD_SWITCH_OPER_STATUS(sw_key, oper_status, ref_oper_status) \
     key_switch_t *p_switch = new key_switch_t(sw_key); \
     OperStatusHolder obj_oper_status_sw(UNC_KT_SWITCH, \
                                      reinterpret_cast<void*>(p_switch), \
-                                     oper_status); \
-    ref_oper_status.push_back(obj_oper_status_sw);
+                                     (oper_status)); \
+    (ref_oper_status).push_back(obj_oper_status_sw);
 
-#define ADD_PORT_OPER_STATUS(port_key, oper_status) \
+#define ADD_PORT_OPER_STATUS(port_key, oper_status, ref_oper_status) \
     key_port_t *p_port = new key_port_t(port_key); \
     OperStatusHolder obj_oper_status_port(UNC_KT_PORT, \
                                      reinterpret_cast<void*>(p_port), \
-                                     oper_status); \
-    ref_oper_status.push_back(obj_oper_status_port);
+                                     (oper_status)); \
+    (ref_oper_status).push_back(obj_oper_status_port);
 
-#define ADD_LP_PORT_OPER_STATUS(lp_key, oper_status) \
+#define ADD_LP_PORT_OPER_STATUS(lp_key, oper_status, ref_oper_status) \
     key_logical_port_t *p_lport = new key_logical_port_t(lp_key); \
     OperStatusHolder obj_oper_status_lp(UNC_KT_LOGICAL_PORT, \
                                      reinterpret_cast<void*>(p_lport), \
-                                     oper_status); \
-    ref_oper_status.push_back(obj_oper_status_lp); \
+                                     (oper_status)); \
+    (ref_oper_status).push_back(obj_oper_status_lp); \
 
 #endif
index 7d2627d5f65c84d88343d4bb7e2e14c7c0779293..eb506057be15e9b2810f411fd9b8c9205d4204d3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -30,7 +30,7 @@ class Kt_Boundary: public Kt_Base {
 
     ~Kt_Boundary();
 
-    UpplReturnCode Create(OdbcmConnectionHandler *db_conn,
+    UncRespCode Create(OdbcmConnectionHandler *db_conn,
                           uint32_t session_id,
                           uint32_t configuration_id,
                           void* key_struct,
@@ -38,13 +38,13 @@ class Kt_Boundary: public Kt_Base {
                           uint32_t data_type,
                           ServerSession & sess);
 
-    UpplReturnCode CreateKeyInstance(OdbcmConnectionHandler *db_conn,
+    UncRespCode CreateKeyInstance(OdbcmConnectionHandler *db_conn,
                                      void* key_struct,
                                      void* val_struct,
                                      uint32_t data_type,
                                      uint32_t key_type);
 
-    UpplReturnCode Update(OdbcmConnectionHandler *db_conn,
+    UncRespCode Update(OdbcmConnectionHandler *db_conn,
                           uint32_t session_id,
                           uint32_t configuration_id,
                           void* key_struct,
@@ -52,20 +52,20 @@ class Kt_Boundary: public Kt_Base {
                           uint32_t data_type,
                           ServerSession & sess);
 
-    UpplReturnCode ReadInternal(OdbcmConnectionHandler *db_conn,
+    UncRespCode ReadInternal(OdbcmConnectionHandler *db_conn,
                                 vector<void *> &boundary_key,
                                 vector<void *> &boundary_val,
                                 uint32_t data_type,
                                 uint32_t operation_type);
 
-    UpplReturnCode Delete(OdbcmConnectionHandler *db_conn,
+    UncRespCode Delete(OdbcmConnectionHandler *db_conn,
                           uint32_t session_id,
                           uint32_t configuration_id,
                           void* key_struct,
                           uint32_t data_type,
                           ServerSession & sess);
 
-    UpplReturnCode ReadBulk(OdbcmConnectionHandler *db_conn,
+    UncRespCode ReadBulk(OdbcmConnectionHandler *db_conn,
                             void* key_struct,
                             uint32_t data_type,
                             uint32_t &max_repetition_count,
@@ -74,27 +74,27 @@ class Kt_Boundary: public Kt_Base {
                             pfc_bool_t is_read_next,
                             ReadRequest *read_req);
 
-    UpplReturnCode PerformSyntaxValidation(OdbcmConnectionHandler *db_conn,
+    UncRespCode PerformSyntaxValidation(OdbcmConnectionHandler *db_conn,
                                            void* key_struct,
                                            void* val_struct,
                                            uint32_t operation,
                                            uint32_t data_type);
 
-    UpplReturnCode PerformSemanticValidation(OdbcmConnectionHandler *db_conn,
+    UncRespCode PerformSemanticValidation(OdbcmConnectionHandler *db_conn,
                                              void* key_struct,
                                              void* val_struct,
                                              uint32_t operation,
                                              uint32_t data_type);
 
-    UpplReturnCode GetModifiedRows(OdbcmConnectionHandler *db_conn,
+    UncRespCode GetModifiedRows(OdbcmConnectionHandler *db_conn,
                                    vector<void *> &key_struct,
                                    CsRowStatus row_status);
 
-    UpplReturnCode IsKeyExists(OdbcmConnectionHandler *db_conn,
+    UncRespCode IsKeyExists(OdbcmConnectionHandler *db_conn,
                                unc_keytype_datatype_t data_type,
                                const vector<string>& key_values);
 
-    UpplReturnCode HandleOperStatus(
+    UncRespCode HandleOperStatus(
         OdbcmConnectionHandler *db_conn,
         uint32_t data_type,
         void *key_struct,
@@ -137,7 +137,7 @@ class Kt_Boundary: public Kt_Base {
         vector<val_boundary_st_t> &vect_obj_val_boundary,
         uint32_t &max_rep_ct);
 
-    UpplReturnCode PerformRead(OdbcmConnectionHandler *db_conn,
+    UncRespCode PerformRead(OdbcmConnectionHandler *db_conn,
                                uint32_t session_id,
                                uint32_t configuration_id,
                                void* key_struct,
@@ -149,7 +149,7 @@ class Kt_Boundary: public Kt_Base {
                                uint32_t option2,
                                uint32_t max_rep_ct);
 
-    UpplReturnCode ReadBoundaryValFromDB(OdbcmConnectionHandler *db_conn,
+    UncRespCode ReadBoundaryValFromDB(OdbcmConnectionHandler *db_conn,
         void* key_struct,
         void* val_struct,
         uint32_t data_type,
@@ -159,10 +159,10 @@ class Kt_Boundary: public Kt_Base {
         vector<val_boundary_st_t> &vect_val_boundary_st,
         pfc_bool_t is_state = PFC_FALSE);
 
-    UpplReturnCode SendSemanticRequestToUPLL(void* key_struct,
+    UncRespCode SendSemanticRequestToUPLL(void* key_struct,
                                              uint32_t data_type);
 
-    UpplReturnCode ReadBulkInternal(OdbcmConnectionHandler *db_conn,
+    UncRespCode ReadBulkInternal(OdbcmConnectionHandler *db_conn,
         void* key_struct,
         void* val_struct,
         uint32_t data_type,
@@ -170,12 +170,12 @@ class Kt_Boundary: public Kt_Base {
         vector<key_boundary_t> &vect_key_boundary,
         vector<val_boundary_st_t> &vect_val_boundary);
 
-    UpplReturnCode SetOperStatus(OdbcmConnectionHandler *db_conn,
+    UncRespCode SetOperStatus(OdbcmConnectionHandler *db_conn,
                                  uint32_t data_type,
                                  void *key_struct,
                                  void* val_struct,
                                  UpplBoundaryOperStatus oper_status);
-    UpplReturnCode GetBoundaryValidFlag(OdbcmConnectionHandler *db_conn,
+    UncRespCode GetBoundaryValidFlag(OdbcmConnectionHandler *db_conn,
         void *key_struct,
         val_boundary_st_t &val_boundary_valid_st,
         uint32_t data_type);
@@ -184,24 +184,24 @@ class Kt_Boundary: public Kt_Base {
                          val_boundary_t &obj_val_boundary);
     void FrameCsAttrValue(string attr_value,
                           val_boundary_t &obj_val_boundary);
-    UpplReturnCode ValidateSiblingFiltering(unsigned int ctr1_valid_val,
+    UncRespCode ValidateSiblingFiltering(unsigned int ctr1_valid_val,
                                             unsigned int ctr2_valid_val,
                                             unsigned int dmn1_valid_val,
                                             unsigned int dmn2_valid_val);
-    UpplReturnCode GetOperStatus(OdbcmConnectionHandler *db_conn,
+    UncRespCode GetOperStatus(OdbcmConnectionHandler *db_conn,
                                  uint32_t data_type,
                                  void* key_struct,
                                  uint8_t &oper_status);
-    UpplReturnCode SendOperStatusNotification(key_boundary_t bdry_key,
+    UncRespCode SendOperStatusNotification(key_boundary_t bdry_key,
                                               uint8_t old_oper_st,
                                               uint8_t new_oper_st);
-    UpplReturnCode GetAllBoundaryOperStatus(OdbcmConnectionHandler *db_conn,
+    UncRespCode GetAllBoundaryOperStatus(OdbcmConnectionHandler *db_conn,
                                             string controller_name,
                                             string domain_name,
                                             string logical_port_id,
                                             map<string, uint8_t> &bdry_notfn,
                                             uint32_t data_type);
-    UpplReturnCode CheckBoundaryExistence(
+    UncRespCode CheckBoundaryExistence(
         OdbcmConnectionHandler *db_conn,
         void *key_struct,
         void *val_struct,
index 84820b16ee9c9c469889a35272269c687c2fbd85..a776f66f295b22da01aab4ca52c2e42bd3ac923d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -50,7 +50,7 @@ class Kt_Controller: public Kt_Base {
     ~Kt_Controller();
 
 
-    UpplReturnCode Create(OdbcmConnectionHandler *db_conn,
+    UncRespCode Create(OdbcmConnectionHandler *db_conn,
                           uint32_t session_id,
                           uint32_t configuration_id,
                           void* key_struct,
@@ -58,13 +58,13 @@ class Kt_Controller: public Kt_Base {
                           uint32_t data_type,
                           ServerSession &sess);
 
-    UpplReturnCode CreateKeyInstance(OdbcmConnectionHandler *db_conn,
+    UncRespCode CreateKeyInstance(OdbcmConnectionHandler *db_conn,
                                      void* key_struct,
                                      void* val_struct,
                                      uint32_t data_type,
                                      uint32_t key_type);
 
-    UpplReturnCode Update(OdbcmConnectionHandler *db_conn,
+    UncRespCode Update(OdbcmConnectionHandler *db_conn,
                           uint32_t session_id,
                           uint32_t configuration_id,
                           void* key_struct,
@@ -72,30 +72,30 @@ class Kt_Controller: public Kt_Base {
                           uint32_t data_type,
                           ServerSession &sess);
 
-    UpplReturnCode UpdateKeyInstance(OdbcmConnectionHandler *db_conn,
+    UncRespCode UpdateKeyInstance(OdbcmConnectionHandler *db_conn,
                                      void* key_struct,
                                      void* val_struct,
                                      uint32_t data_type,
                                      uint32_t key_type);
 
-    UpplReturnCode Delete(OdbcmConnectionHandler *db_conn,
+    UncRespCode Delete(OdbcmConnectionHandler *db_conn,
                           uint32_t session_id,
                           uint32_t configuration_id,
                           void* key_struct,
                           uint32_t data_type,
                           ServerSession &sess);
-    UpplReturnCode DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
+    UncRespCode DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
                                      void* key_struct,
                                      uint32_t data_type,
                                      uint32_t key_type);
 
-    UpplReturnCode ReadInternal(OdbcmConnectionHandler *db_conn,
+    UncRespCode ReadInternal(OdbcmConnectionHandler *db_conn,
                                 vector<void *> &ctr_key,
                                 vector<void *> &ctr_val,
                                 uint32_t data_type,
                                 uint32_t operation_type);
 
-    UpplReturnCode ReadBulk(OdbcmConnectionHandler *db_conn,
+    UncRespCode ReadBulk(OdbcmConnectionHandler *db_conn,
                             void* key_struct,
                             uint32_t data_type,
                             uint32_t &max_rep_ct,
@@ -104,19 +104,19 @@ class Kt_Controller: public Kt_Base {
                             pfc_bool_t is_read_next,
                             ReadRequest *read_req);
 
-    UpplReturnCode PerformSyntaxValidation(OdbcmConnectionHandler *db_conn,
+    UncRespCode PerformSyntaxValidation(OdbcmConnectionHandler *db_conn,
                                            void* key_struct,
                                            void* val_struct,
                                            uint32_t operation,
                                            uint32_t data_type);
 
-    UpplReturnCode PerformSemanticValidation(OdbcmConnectionHandler *db_conn,
+    UncRespCode PerformSemanticValidation(OdbcmConnectionHandler *db_conn,
                                              void* key_struct,
                                              void* val_struct,
                                              uint32_t operation,
                                              uint32_t data_type);
 
-    UpplReturnCode HandleDriverEvents(OdbcmConnectionHandler *db_conn,
+    UncRespCode HandleDriverEvents(OdbcmConnectionHandler *db_conn,
                                       void* key_struct,
                                       uint32_t oper_type,
                                       uint32_t data_type,
@@ -124,64 +124,64 @@ class Kt_Controller: public Kt_Base {
                                       void* new_val_struct,
                                       pfc_bool_t is_events_done);
 
-    UpplReturnCode HandleDriverAlarms(OdbcmConnectionHandler *db_conn,
+    UncRespCode HandleDriverAlarms(OdbcmConnectionHandler *db_conn,
                                       uint32_t data_type,
                                       uint32_t alarm_type,
                                       uint32_t oper_type,
                                       void* key_struct,
                                       void* val_struct);
 
-    UpplReturnCode IsKeyExists(OdbcmConnectionHandler *db_conn,
+    UncRespCode IsKeyExists(OdbcmConnectionHandler *db_conn,
                                unc_keytype_datatype_t data_type,
                                const vector<string>& key_values);
 
-    UpplReturnCode GetModifiedRows(OdbcmConnectionHandler *db_conn,
+    UncRespCode GetModifiedRows(OdbcmConnectionHandler *db_conn,
                                    vector<void *> &key_struct,
                                    CsRowStatus row_status);
 
-    UpplReturnCode ValidateCtrlrValueCapability(string version,
+    UncRespCode ValidateCtrlrValueCapability(string version,
                                                 uint32_t key_type);
 
-    UpplReturnCode ValidateCtrlrScalability(OdbcmConnectionHandler *db_conn,
+    UncRespCode ValidateCtrlrScalability(OdbcmConnectionHandler *db_conn,
                                             string version,
                                             uint32_t key_type,
                                             uint32_t data_type);
-    UpplReturnCode ValidateUnknownCtrlrScalability(
+    UncRespCode ValidateUnknownCtrlrScalability(
         OdbcmConnectionHandler *db_conn,
         void *key_struct,
         uint8_t type,
         uint32_t data_type);
 
     void Fill_Attr_Syntax_Map();
-    UpplReturnCode HandleOperStatus(OdbcmConnectionHandler *db_conn,
+    UncRespCode HandleOperStatus(OdbcmConnectionHandler *db_conn,
                                     uint32_t data_type,
                                     void *key_struct,
                                     void *value_struct);
 
-    UpplReturnCode HandleOperStatus(OdbcmConnectionHandler *db_conn,
+    UncRespCode HandleOperStatus(OdbcmConnectionHandler *db_conn,
                                     uint32_t data_type,
                                     void *key_struct,
                                     void *value_struct,
                                     bool bIsInternal);
 
-    UpplReturnCode NotifyOperStatus(
+    UncRespCode NotifyOperStatus(
         OdbcmConnectionHandler *db_conn,
         uint32_t data_type,
         void *key_struct,
         void *value_struct,
         vector<OperStatusHolder> &ref_oper_status);
 
-    UpplReturnCode GetOperStatus(OdbcmConnectionHandler *db_conn,
+    UncRespCode GetOperStatus(OdbcmConnectionHandler *db_conn,
                                  uint32_t data_type,
                                  void* key_struct,
                                  uint8_t &oper_status);
 
-    UpplReturnCode SetOperStatus(OdbcmConnectionHandler *db_conn,
+    UncRespCode SetOperStatus(OdbcmConnectionHandler *db_conn,
                                  uint32_t data_type,
                                  void* key_struct,
                                  uint8_t oper_status);
 
-    UpplReturnCode SendUpdatedControllerInfoToUPLL(
+    UncRespCode SendUpdatedControllerInfoToUPLL(
         uint32_t data_type,
         uint32_t operation_type,
         uint32_t key_type,
@@ -203,7 +203,7 @@ class Kt_Controller: public Kt_Base {
         pfc_bool_t is_filtering= false,
         pfc_bool_t is_state= PFC_FALSE);
 
-    UpplReturnCode SendSemanticRequestToUPLL(void* key_struct,
+    UncRespCode SendSemanticRequestToUPLL(void* key_struct,
                                              uint32_t data_type);
 
     void FillControllerValueStructure(OdbcmConnectionHandler *db_conn,
@@ -213,7 +213,7 @@ class Kt_Controller: public Kt_Base {
         uint32_t operation_type,
         vector<string> &controller_id);
 
-    UpplReturnCode PerformRead(OdbcmConnectionHandler *db_conn,
+    UncRespCode PerformRead(OdbcmConnectionHandler *db_conn,
                                uint32_t session_id,
                                uint32_t configuration_id,
                                void* key_struct,
@@ -225,7 +225,7 @@ class Kt_Controller: public Kt_Base {
                                uint32_t option2,
                                uint32_t max_rep_ct);
 
-    UpplReturnCode ReadCtrValFromDB(OdbcmConnectionHandler *db_conn,
+    UncRespCode ReadCtrValFromDB(OdbcmConnectionHandler *db_conn,
                                     void* key_struct,
                                     void* val_struct,
                                     uint32_t data_type,
@@ -234,7 +234,7 @@ class Kt_Controller: public Kt_Base {
                                     vector<val_ctr_st_t> &vect_val_ctr_st,
                                     vector<string> &controller_id);
 
-    UpplReturnCode ReadBulkInternal(OdbcmConnectionHandler *db_conn,
+    UncRespCode ReadBulkInternal(OdbcmConnectionHandler *db_conn,
                                     void* key_struct,
                                     void* value_struct,
                                     uint32_t data_type,
@@ -252,76 +252,76 @@ class Kt_Controller: public Kt_Base {
     void FreeChildKeyStruct(void* key_struct, unsigned int child_class);
     void FreeKeyStruct(void* key_struct,
                        unsigned int key_type);
-    UpplReturnCode GetCtrValidFlag(OdbcmConnectionHandler *db_conn,
+    UncRespCode GetCtrValidFlag(OdbcmConnectionHandler *db_conn,
                                    void *key_struct,
                                    val_ctr_st_t &val_ctr_st,
                                    uint32_t data_type);
-    UpplReturnCode SetActualVersion(OdbcmConnectionHandler *db_conn,
+    UncRespCode SetActualVersion(OdbcmConnectionHandler *db_conn,
                                     void* key_struct, string actual_version,
                                     uint32_t data_type,
                                     uint32_t valid_flag);
     void FrameValidValue(string attr_value, val_ctr_st &obj_val_ctr_st,
                          val_ctr_t &obj_val_ctr);
     void FrameCsAttrValue(string attr_value, val_ctr_t &obj_val_ctr);
-    UpplReturnCode ValidateTypeIpAddress(OdbcmConnectionHandler *db_conn,
+    UncRespCode ValidateTypeIpAddress(OdbcmConnectionHandler *db_conn,
                                          void *key_struct,
                                          void *val_struct,
                                          uint32_t data_type,
                                          uint32_t ctrl_type = UNC_CT_UNKNOWN);
-    UpplReturnCode ValidateControllerType(OdbcmConnectionHandler *db_conn,
+    UncRespCode ValidateControllerType(OdbcmConnectionHandler *db_conn,
         uint32_t operation,
         uint32_t data_type,
         unc_keytype_ctrtype_t ctr_type,
-        UpplReturnCode ctr_type_code,
+        UncRespCode ctr_type_code,
         val_ctr *val_ctr);
-    UpplReturnCode ValidateControllerVersion(OdbcmConnectionHandler *db_conn,
+    UncRespCode ValidateControllerVersion(OdbcmConnectionHandler *db_conn,
         uint32_t operation,
         uint32_t data_type,
         unc_keytype_ctrtype_t ctr_type,
-        UpplReturnCode ctr_type_code,
+        UncRespCode ctr_type_code,
         val_ctr *val_ctr);
-    UpplReturnCode ValidateControllerDescription(
+    UncRespCode ValidateControllerDescription(
         OdbcmConnectionHandler *db_conn,
         uint32_t operation,
         uint32_t data_type,
         unc_keytype_ctrtype_t ctr_type,
-        UpplReturnCode ctr_type_code,
+        UncRespCode ctr_type_code,
         val_ctr *val_ctr);
-    UpplReturnCode ValidateControllerIpAddress(
+    UncRespCode ValidateControllerIpAddress(
         OdbcmConnectionHandler *db_conn,
         uint32_t operation,
         uint32_t data_type,
         unc_keytype_ctrtype_t ctr_type,
-        UpplReturnCode ctr_type_code,
+        UncRespCode ctr_type_code,
         void *key_struct,
         void *val_struct);
-    UpplReturnCode ValidateControllerUser(
+    UncRespCode ValidateControllerUser(
         OdbcmConnectionHandler *db_conn,
         uint32_t operation,
         uint32_t data_type,
         unc_keytype_ctrtype_t ctr_type,
-        UpplReturnCode ctr_type_code,
+        UncRespCode ctr_type_code,
         val_ctr *val_ctr);
-    UpplReturnCode ValidateControllerPassword(
+    UncRespCode ValidateControllerPassword(
         OdbcmConnectionHandler *db_conn,
         uint32_t operation,
         uint32_t data_type,
         unc_keytype_ctrtype_t ctr_type,
-        UpplReturnCode ctr_type_code,
+        UncRespCode ctr_type_code,
         val_ctr *val_ctr);
-    UpplReturnCode ValidateControllerEnableAudit(
+    UncRespCode ValidateControllerEnableAudit(
         OdbcmConnectionHandler *db_conn,
         uint32_t operation,
         uint32_t data_type,
         unc_keytype_ctrtype_t ctr_type,
-        UpplReturnCode ctr_type_code,
+        UncRespCode ctr_type_code,
         val_ctr *val_ctr);
-    UpplReturnCode SendOperStatusNotification(key_ctr_t ctr_key,
+    UncRespCode SendOperStatusNotification(key_ctr_t ctr_key,
                                               uint8_t old_oper_st,
                                               uint8_t new_oper_st);
-    UpplReturnCode CheckIpAndClearStateDB(OdbcmConnectionHandler *db_conn,
+    UncRespCode CheckIpAndClearStateDB(OdbcmConnectionHandler *db_conn,
                                           void *key_struct);
-    UpplReturnCode CheckSameIp(OdbcmConnectionHandler *db_conn,
+    UncRespCode CheckSameIp(OdbcmConnectionHandler *db_conn,
                                void *key_struct,
                                void *val_struct,
                                uint32_t data_type);
diff --git a/coordinator/modules/uppl/include/itc_kt_ctr_dataflow.hh b/coordinator/modules/uppl/include/itc_kt_ctr_dataflow.hh
new file mode 100644 (file)
index 0000000..f37365f
--- /dev/null
@@ -0,0 +1,92 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * @brief   KT Ctr_Dataflow implementation
+ * @file    itc_kt_ctr_dataflow.hh
+ *
+ */
+
+#ifndef KT_CTR_DATAFLOW_H
+#define KT_CTR_DATAFLOW_H
+
+#include <vector>
+#include <string>
+#include "itc_kt_state_base.hh"
+#include "physicallayer.hh"
+
+using unc::uppl::ODBCMOperator;
+
+
+/* @  Ctr_Dataflow Class definition */
+class Kt_Ctr_Dataflow : public Kt_State_Base {
+ public:
+  Kt_Ctr_Dataflow();
+
+  ~Kt_Ctr_Dataflow();
+
+  UncRespCode ReadInternal(OdbcmConnectionHandler *db_conn,
+                              vector<void *> &key_struct,
+                              vector<void *> &val_struct,
+                              uint32_t data_type,
+                              uint32_t operation_type);
+
+  UncRespCode ReadBulk(OdbcmConnectionHandler *db_conn,
+                          void* key_struct,
+                          uint32_t data_type,
+                          uint32_t &max_rep_ct,
+                          int child_index,
+                          pfc_bool_t parent_call,
+                          pfc_bool_t is_read_next,
+                          ReadRequest *read_req);
+
+  UncRespCode PerformSyntaxValidation(OdbcmConnectionHandler *db_conn,
+                                         void* key_struct,
+                                         void* val_struct,
+                                         uint32_t operation,
+                                         uint32_t data_type);
+
+  UncRespCode PerformSemanticValidation(OdbcmConnectionHandler *db_conn,
+                                           void* key_struct,
+                                           void* val_struct,
+                                           uint32_t operation,
+                                           uint32_t data_type);
+
+  void Fill_Attr_Syntax_Map();
+
+ private:
+  void PopulateDBSchemaForKtTable(OdbcmConnectionHandler *db_conn,
+      DBTableSchema &kt_dbtableschema,
+      void* key_struct,
+      void* val_struct,
+      uint8_t operation_type,
+      uint32_t data_type,
+      uint32_t option1,
+      uint32_t option2,
+      vector<ODBCMOperator> &vect_key_operations,
+      void* &old_value_struct,
+      CsRowStatus row_status= NOTAPPLIED,
+      pfc_bool_t is_filtering= false,
+      pfc_bool_t is_state= PFC_FALSE) {
+  }
+
+  UncRespCode PerformRead(OdbcmConnectionHandler *db_conn,
+                             uint32_t session_id,
+                             uint32_t configuration_id,
+                             void* key_struct,
+                             void* val_struct,
+                             uint32_t data_type,
+                             uint32_t operation_type,
+                             ServerSession &sess,
+                             uint32_t option1,
+                             uint32_t option2,
+                             uint32_t max_rep_ct);
+};
+#endif
+
index 6604b7d99480ca10ae7fff4c98b598406f80acd2..d4e73e264baf857a389f2fbcfdddc77c4f74e52e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -37,7 +37,7 @@ class Kt_Ctr_Domain : public Kt_State_Base {
     Kt_Ctr_Domain();
     ~Kt_Ctr_Domain();
 
-    UpplReturnCode Create(OdbcmConnectionHandler *db_conn,
+    UncRespCode Create(OdbcmConnectionHandler *db_conn,
                           uint32_t session_id,
                           uint32_t configuration_id,
                           void* key_struct,
@@ -45,13 +45,13 @@ class Kt_Ctr_Domain : public Kt_State_Base {
                           uint32_t data_type,
                           ServerSession &sess);
 
-    UpplReturnCode CreateKeyInstance(OdbcmConnectionHandler *db_conn,
+    UncRespCode CreateKeyInstance(OdbcmConnectionHandler *db_conn,
                                      void* key_struct,
                                      void* val_struct,
                                      uint32_t data_type,
                                      uint32_t key_type);
 
-    UpplReturnCode Update(OdbcmConnectionHandler *db_conn,
+    UncRespCode Update(OdbcmConnectionHandler *db_conn,
                           uint32_t session_id,
                           uint32_t configuration_id,
                           void* key_struct,
@@ -59,31 +59,31 @@ class Kt_Ctr_Domain : public Kt_State_Base {
                           uint32_t data_type,
                           ServerSession &sess);
 
-    UpplReturnCode UpdateKeyInstance(OdbcmConnectionHandler *db_conn,
+    UncRespCode UpdateKeyInstance(OdbcmConnectionHandler *db_conn,
                                      void* key_struct,
                                      void* val_struct,
                                      uint32_t data_type,
                                      uint32_t key_type);
 
-    UpplReturnCode Delete(OdbcmConnectionHandler *db_conn,
+    UncRespCode Delete(OdbcmConnectionHandler *db_conn,
                           uint32_t session_id,
                           uint32_t configuration_id,
                           void* key_struct,
                           uint32_t data_type,
                           ServerSession &sess);
 
-    UpplReturnCode DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
+    UncRespCode DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
                                      void* key_struct,
                                      uint32_t data_type,
                                      uint32_t key_type);
 
-    UpplReturnCode ReadInternal(OdbcmConnectionHandler *db_conn,
+    UncRespCode ReadInternal(OdbcmConnectionHandler *db_conn,
                                 vector<void *> &key_struct,
                                 vector<void *> &val_struct,
                                 uint32_t data_type,
                                 uint32_t operation_type);
 
-    UpplReturnCode ReadBulk(OdbcmConnectionHandler *db_conn,
+    UncRespCode ReadBulk(OdbcmConnectionHandler *db_conn,
                             void* key_struct,
                             uint32_t data_type,
                             uint32_t &max_rep_ct,
@@ -92,45 +92,45 @@ class Kt_Ctr_Domain : public Kt_State_Base {
                             pfc_bool_t is_read_next,
                             ReadRequest *read_req);
 
-    UpplReturnCode PerformSyntaxValidation(OdbcmConnectionHandler *db_conn,
+    UncRespCode PerformSyntaxValidation(OdbcmConnectionHandler *db_conn,
                                            void* key_struct,
                                            void* val_struct,
                                            uint32_t operation,
                                            uint32_t data_type);
 
-    UpplReturnCode PerformSemanticValidation(OdbcmConnectionHandler *db_conn,
+    UncRespCode PerformSemanticValidation(OdbcmConnectionHandler *db_conn,
                                              void* key_struct,
                                              void* val_struct,
                                              uint32_t operation,
                                              uint32_t data_type);
 
-    UpplReturnCode HandleDriverAlarms(OdbcmConnectionHandler *db_conn,
+    UncRespCode HandleDriverAlarms(OdbcmConnectionHandler *db_conn,
                                       uint32_t data_type,
                                       uint32_t alarm_type,
                                       uint32_t oper_type,
                                       void* key_struct,
                                       void* val_struct);
 
-    UpplReturnCode InvokeBoundaryNotifyOperStatus(
+    UncRespCode InvokeBoundaryNotifyOperStatus(
         OdbcmConnectionHandler *db_conn,
         uint32_t data_type,
         void *key_struct);
 
-    UpplReturnCode IsKeyExists(OdbcmConnectionHandler *db_conn,
+    UncRespCode IsKeyExists(OdbcmConnectionHandler *db_conn,
                                unc_keytype_datatype_t data_type,
                                const vector<string>& key_values);
 
-    UpplReturnCode GetModifiedRows(OdbcmConnectionHandler *db_conn,
+    UncRespCode GetModifiedRows(OdbcmConnectionHandler *db_conn,
                                    vector<void *> &key_struct,
                                    CsRowStatus row_status);
 
     void Fill_Attr_Syntax_Map();
-    UpplReturnCode HandleOperStatus(OdbcmConnectionHandler *db_conn,
+    UncRespCode HandleOperStatus(OdbcmConnectionHandler *db_conn,
                                     uint32_t data_type,
                                     void *key_struct,
                                     void *value_struct);
 
-    UpplReturnCode GetOperStatus(OdbcmConnectionHandler *db_conn,
+    UncRespCode GetOperStatus(OdbcmConnectionHandler *db_conn,
                                  uint32_t data_type,
                                  void* key_struct,
                                  uint8_t &oper_status);
@@ -193,7 +193,7 @@ class Kt_Ctr_Domain : public Kt_State_Base {
         uint32_t operation_type,
         vector<key_ctr_domain> &domain_id);
 
-    UpplReturnCode PerformRead(OdbcmConnectionHandler *db_conn,
+    UncRespCode PerformRead(OdbcmConnectionHandler *db_conn,
                                uint32_t session_id,
                                uint32_t configuration_id,
                                void* key_struct,
@@ -205,7 +205,7 @@ class Kt_Ctr_Domain : public Kt_State_Base {
                                uint32_t option2,
                                uint32_t max_rep_ct);
 
-    UpplReturnCode ReadDomainValFromDB(OdbcmConnectionHandler *db_conn,
+    UncRespCode ReadDomainValFromDB(OdbcmConnectionHandler *db_conn,
         void* key_struct,
         void* val_struct,
         uint32_t data_type,
@@ -214,7 +214,7 @@ class Kt_Ctr_Domain : public Kt_State_Base {
         vector<val_ctr_domain_st> &vect_val_ctr_domain_st,
         vector<key_ctr_domain> &domain_id);
 
-    UpplReturnCode ReadBulkInternal(OdbcmConnectionHandler *db_conn,
+    UncRespCode ReadBulkInternal(OdbcmConnectionHandler *db_conn,
         void* key_struct,
         uint32_t data_type,
         uint32_t max_rep_ct,
@@ -226,13 +226,13 @@ class Kt_Ctr_Domain : public Kt_State_Base {
                             string controller_name);
 
     Kt_Base* GetChildClassPointer(KtDomainChildClass KIndex);
-    UpplReturnCode SetOperStatus(OdbcmConnectionHandler *db_conn,
+    UncRespCode SetOperStatus(OdbcmConnectionHandler *db_conn,
                                  uint32_t data_type,
                                  void* key_struct,
                                  UpplDomainOperStatus oper_status);
     void FreeChildKeyStruct(int child_class,
                             void *key_struct);
-    UpplReturnCode GetCtrDomainValidFlag(OdbcmConnectionHandler *db_conn,
+    UncRespCode GetCtrDomainValidFlag(OdbcmConnectionHandler *db_conn,
         void *key_struct,
         val_ctr_domain_st_t &val_ctr_domain_valid_st,
         uint32_t data_type);
diff --git a/coordinator/modules/uppl/include/itc_kt_dataflow.hh b/coordinator/modules/uppl/include/itc_kt_dataflow.hh
new file mode 100644 (file)
index 0000000..3d18c2f
--- /dev/null
@@ -0,0 +1,260 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * @brief   KT Dataflow implementation
+ * @file    itc_kt_dataflow.hh
+ *
+ */
+
+#ifndef KT_DATAFLOW_HH
+#define KT_DATAFLOW_HH
+
+#include <uncxx/dataflow.hh>
+#include <vector>
+#include <map>
+#include <list>
+#include <string>
+#include "physicallayer.hh"
+#include "itc_kt_base.hh"
+#include "odbcm_utils.hh"
+
+#define KT_DATAFLOW_OPER_STATUS_REF 1
+
+using std::vector;
+using std::map;
+using std::multimap;
+using unc::uppl::ODBCMOperator;
+using namespace unc::dataflow;
+
+typedef enum {
+  UPPL_LEFT_PART = 0,
+  UPPL_RIGHT_PART
+}UpplBoundaryTblSection;
+
+#define PFC_DEF_TIMEOUT 3600
+
+#define UPPL_COMPARE_STRUCT(struct1, struct2, status) \
+  if ((!strcmp((const char*)(struct1).controller_name, \
+             (const char*) (struct2).controller_name)) && \
+    (!strcmp((const char*)(struct1).domain_name, \
+            (const char*)(struct2).domain_name)) && \
+    (!strcmp((const char*)(struct1).lp_str.switch_id, \
+            (const char*)(struct2).lp_str.switch_id)) && \
+    (!strcmp((const char*)(struct1).lp_str.port_id, \
+            (const char*)(struct2).lp_str.port_id))) \
+     status = true;
+
+#define UPPL_COMPARE_SW_SD_TP_STRUCT(struct1, struct2, status) \
+  if (((!strcmp((const char*)(struct1).controller_name, \
+             (const char*) (struct2).controller_name)) && \
+    (!strcmp((const char*)(struct1).domain_name, \
+            (const char*)(struct2).domain_name)) && \
+    (!strcmp((const char*)(struct1).lp_str.switch_id, \
+            (const char*)(struct2).lp_str.switch_id)))) \
+     status = true;
+
+/* @ Controller Class definition */
+class Kt_Dataflow: public Kt_Base {
+  public:
+    Kt_Dataflow();
+
+    ~Kt_Dataflow();
+
+
+    UncRespCode ReadBulk(OdbcmConnectionHandler *db_conn,
+                            void* key_struct,
+                            uint32_t data_type,
+                            uint32_t &max_rep_ct,
+                            int child_index,
+                            pfc_bool_t parent_call,
+                            pfc_bool_t is_read_next,
+                            ReadRequest *read_req);
+
+    UncRespCode PerformSyntaxValidation(OdbcmConnectionHandler *db_conn,
+                                           void* key_struct,
+                                           void* val_struct,
+                                           uint32_t operation,
+                                           uint32_t data_type);
+
+    UncRespCode PerformSemanticValidation(OdbcmConnectionHandler *db_conn,
+                                             void* key_struct,
+                                             void* val_struct,
+                                             uint32_t operation,
+                                             uint32_t data_type);
+
+
+
+    void Fill_Attr_Syntax_Map();
+
+    multimap<string, boundary_val>* get_boundary_map() {
+      return &boundary_map_;
+    }
+
+    map<string, lp_struct>* get_LP_map() {
+      return &LP_map_;
+    }
+
+    multimap<string, lmp_struct>* get_LMP_map() {
+      return &LMP_map_;
+    }
+
+    multimap<string, port_struct>* get_PP_map() {
+      return &PP_map_;
+    }
+
+    map<string, int>* get_count_map() {
+      return &count_map_;
+    }
+
+    map<string, uint32_t>* get_is_validated_map() {
+      return &is_validated_map_;
+    }
+
+    vector<boundary_record>* get_boundary_tbl_vect() {
+      return &boundary_tbl_vect_;
+    }
+
+
+
+    UncRespCode traversePFC(OdbcmConnectionHandler *db_conn,
+                                          uint32_t session_id,
+                                          uint32_t configuration_id,
+                                          void* key_struct,
+                                          ServerSession &sess,
+                                          bool is_head_node,
+                                          DataflowCmn *parentnode,
+                                          DataflowCmn *lastPfcNode,
+                                          string &ingress_bdry_id);
+
+    UncRespCode traverseVNP(OdbcmConnectionHandler *db_conn,
+                                          uint32_t session_id,
+                                          uint32_t configuration_id,
+                                          void* key_struct,
+                                          ServerSession &sess,
+                                          bool is_head_node,
+                                          DataflowCmn *parentnode,
+                                          DataflowCmn *lastPfcNode,
+                                          string &ingress_bdry_id);
+
+    UncRespCode traverseUNKNOWN(OdbcmConnectionHandler *db_conn,
+                                          uint32_t session_id,
+                                          uint32_t configuration_id,
+                                          void* key_struct,
+                                          ServerSession &sess,
+                                          bool is_head_node,
+                                          DataflowCmn *parentnode,
+                                          DataflowCmn *lastPfcNode,
+                                          string &ingress_bdry_id);
+
+  private:
+    void PopulateDBSchemaForKtTable(OdbcmConnectionHandler *db_conn,
+        DBTableSchema &kt_dbtableschema,
+        void* key_struct,
+        void* val_struct,
+        uint8_t operation_type,
+        uint32_t data_type,
+        uint32_t option1,
+        uint32_t option2,
+        vector<ODBCMOperator> &vect_key_operations,
+        void* &old_value_struct,
+        CsRowStatus row_status= NOTAPPLIED,
+        pfc_bool_t is_filtering= false,
+        pfc_bool_t is_state= PFC_FALSE) {}
+
+
+    UncRespCode checkBoundaryAndTraverse(OdbcmConnectionHandler *db_conn,
+                                          uint32_t session_id,
+                                          uint32_t configuration_id,
+                                          void* key_struct,
+                                          ServerSession &sess,
+                                          bool is_head_node,
+                                          DataflowCmn *source_node,
+                                          DataflowCmn *lastPfcNode,
+                                          string &ingress_bdry_id);
+
+    UncRespCode PerformRead(OdbcmConnectionHandler *db_conn,
+                               uint32_t session_id,
+                               uint32_t configuration_id,
+                               void* key_struct,
+                               void* val_struct,
+                               uint32_t data_type,
+                               uint32_t operation_type,
+                               ServerSession &sess,
+                               uint32_t option1,
+                               uint32_t option2,
+                               uint32_t max_rep_ct);
+    UncRespCode FindNeighbourCtr(OdbcmConnectionHandler *db_conn,
+                                    DataflowCmn *lastPfcNode,
+                                    boundary_val *neighbour_ctr_key,
+                                    list<boundary_val> &found_nbrs,
+                                    string &ingress_bdry_id);
+
+    UncRespCode PrepareBoundaryMap(OdbcmConnectionHandler *db_conn);
+
+    UncRespCode fill_boundary_map(OdbcmConnectionHandler *db_conn);
+
+    UncRespCode getBoundaryPorts(DataflowCmn *lastPfcNode,
+                                         boundary_val *neighbour_ctr_key,
+                                         list<boundary_val> &found_nbrs,
+                                         string &ingress_bdry_id);
+
+    UncRespCode PrepareCollectiveLPMap(OdbcmConnectionHandler *db_conn,
+                                             string ctr_name, string dom_name);
+
+    UncRespCode PrepareLMPMap(OdbcmConnectionHandler *db_conn,
+                                 key_logical_port_t* key_lp);
+
+    UncRespCode PreparePPMap(OdbcmConnectionHandler *db_conn,
+                                 key_port_t* key_pt, string pp_map_key);
+
+    UncRespCode update_boundary_tbl_vect(string lp_map_key,
+                                      uint16_t boundary_iter_pos,
+                                      uint8_t part);
+    UncRespCode getkeysfrom_boundary_map(string ctr_name,
+                               list<boundary_val> &found_keys,
+                               list<boundary_val> &found_vals,
+                               string &ingress_bdry_id);
+
+    UncDataflowReason CreateDfCmnNodeForNonPfc(OdbcmConnectionHandler *db_conn,
+                                  DataflowDetail *df_segment,
+                                  DataflowCmn *source_node,
+                                  DataflowCmn *df_cmn,
+                                  boundary_val *ingress_obj_bval,
+                                  boundary_val &egress_obj_bval,
+                                  bool is_egress);
+    inline void checkFlowLimitAndTraverse(OdbcmConnectionHandler *db_conn,
+                                         uint32_t session_id,
+                                         uint32_t configuration_id,
+                                         ServerSession &sess,
+                                         void* key_struct,
+                                         vector<DataflowCmn*>* node,
+                                         bool is_head_node,
+                                         string &ingress_bdry_id);
+    multimap<string, boundary_val> boundary_map_;
+
+    map<string, lp_struct> LP_map_;
+
+    multimap<string, lmp_struct> LMP_map_;
+
+    multimap<string, port_struct> PP_map_;
+
+    map<string, int> count_map_;
+
+    map<string, uint32_t> is_validated_map_;
+
+    vector<boundary_record> boundary_tbl_vect_;
+
+    DataflowUtil df_util_;
+
+    UncRespCode fill_ctrlr_dom_count_map(OdbcmConnectionHandler *db_conn,
+                                         string ctr_name);
+    uint32_t max_dataflow_traverse_count_;
+};
+#endif
index ef3b4e1cb26230d17f7e942a276f1b17bdde7567..1e14f3e58e1d3edca920c293b7cf347f812425d1 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -30,17 +30,17 @@ class Kt_Link : public Kt_State_Base {
 
   ~Kt_Link();
 
-  UpplReturnCode DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
+  UncRespCode DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
                                    void* key_struct,
                                    uint32_t data_type,
                                    uint32_t key_type);
-  UpplReturnCode ReadInternal(OdbcmConnectionHandler *db_conn,
+  UncRespCode ReadInternal(OdbcmConnectionHandler *db_conn,
       vector<void *> &key_val,
       vector<void *> &val_struct,
       uint32_t data_type,
       uint32_t operation_type);
 
-  UpplReturnCode ReadBulk(OdbcmConnectionHandler *db_conn,
+  UncRespCode ReadBulk(OdbcmConnectionHandler *db_conn,
                           void* key_struct,
                           uint32_t data_type,
                           uint32_t &max_rep_ct,
@@ -49,25 +49,25 @@ class Kt_Link : public Kt_State_Base {
                           pfc_bool_t is_read_next,
                           ReadRequest *read_req);
 
-  UpplReturnCode PerformSyntaxValidation(OdbcmConnectionHandler *db_conn,
+  UncRespCode PerformSyntaxValidation(OdbcmConnectionHandler *db_conn,
                                          void* key_struct,
                                          void* val_struct,
                                          uint32_t operation,
                                          uint32_t data_type);
 
-  UpplReturnCode PerformSemanticValidation(OdbcmConnectionHandler *db_conn,
+  UncRespCode PerformSemanticValidation(OdbcmConnectionHandler *db_conn,
                                            void* key_struct,
                                            void* val_struct,
                                            uint32_t operation,
                                            uint32_t data_type);
 
-  UpplReturnCode IsKeyExists(OdbcmConnectionHandler *db_conn,
+  UncRespCode IsKeyExists(OdbcmConnectionHandler *db_conn,
                              unc_keytype_datatype_t data_type,
                              const vector<string>& key_values);
 
   void Fill_Attr_Syntax_Map();
 
-  UpplReturnCode HandleOperStatus(OdbcmConnectionHandler *db_conn,
+  UncRespCode HandleOperStatus(OdbcmConnectionHandler *db_conn,
                                   uint32_t data_type,
                                   void *key_struct,
                                   void *value_struct);
@@ -140,7 +140,7 @@ class Kt_Link : public Kt_State_Base {
                               uint32_t operation_type,
                               vector<key_link_t> &link_id);
 
-  UpplReturnCode PerformRead(OdbcmConnectionHandler *db_conn,
+  UncRespCode PerformRead(OdbcmConnectionHandler *db_conn,
                              uint32_t session_id,
                              uint32_t configuration_id,
                              void* key_struct,
@@ -152,7 +152,7 @@ class Kt_Link : public Kt_State_Base {
                              uint32_t option2,
                              uint32_t max_rep_ct);
 
-  UpplReturnCode ReadLinkValFromDB(OdbcmConnectionHandler *db_conn,
+  UncRespCode ReadLinkValFromDB(OdbcmConnectionHandler *db_conn,
                                    void* key_struct,
                                    void* val_struct,
                                    uint32_t data_type,
@@ -164,22 +164,22 @@ class Kt_Link : public Kt_State_Base {
                                    uint32_t option2,
                                    pfc_bool_t is_state = PFC_FALSE);
 
-  UpplReturnCode ReadBulkInternal(OdbcmConnectionHandler *db_conn,
+  UncRespCode ReadBulkInternal(OdbcmConnectionHandler *db_conn,
                                   void* key_struct,
                                   uint32_t data_type,
                                   uint32_t max_rep_ct,
                                   vector<val_link_st_t> &vect_val_link_st,
                                   vector<key_link_t> &vect_link_id);
 
-  UpplReturnCode SetOperStatus(OdbcmConnectionHandler *db_conn,
+  UncRespCode SetOperStatus(OdbcmConnectionHandler *db_conn,
                                uint32_t data_type,
                                void* key_struct,
                                UpplLinkOperStatus oper_status);
-  UpplReturnCode GetLinkValidFlag(OdbcmConnectionHandler *db_conn,
+  UncRespCode GetLinkValidFlag(OdbcmConnectionHandler *db_conn,
       void *key_struct,
       val_link_st_t &val_link_valid_st,
       uint32_t data_type);
-  UpplReturnCode GetOperStatus(OdbcmConnectionHandler *db_conn,
+  UncRespCode GetOperStatus(OdbcmConnectionHandler *db_conn,
                                uint32_t data_type,
                                void* key_struct, uint8_t &oper_status);
   void FrameValidValue(string attr_value, val_link_st &obj_val_link);
index 573dddb2f22a1c7530fff0344c6dad641c5ba811..7b7695e459d9e401fa8ebe291841bfc34e42b93f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -30,12 +30,12 @@ class Kt_LogicalMemberPort : public Kt_State_Base {
 
   ~Kt_LogicalMemberPort();
 
-  UpplReturnCode DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
+  UncRespCode DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
       void* key_struct,
       uint32_t data_type,
       uint32_t key_type);
 
-  UpplReturnCode ReadBulk(OdbcmConnectionHandler *db_conn,
+  UncRespCode ReadBulk(OdbcmConnectionHandler *db_conn,
                           void* key_struct,
                           uint32_t data_type,
                           uint32_t &max_rep_ct,
@@ -44,24 +44,24 @@ class Kt_LogicalMemberPort : public Kt_State_Base {
                           pfc_bool_t is_read_next,
                           ReadRequest *read_req);
 
-  UpplReturnCode PerformSyntaxValidation(OdbcmConnectionHandler *db_conn,
+  UncRespCode PerformSyntaxValidation(OdbcmConnectionHandler *db_conn,
                                          void* key_struct,
                                          void* val_struct,
                                          uint32_t operation,
                                          uint32_t data_type);
 
-  UpplReturnCode PerformSemanticValidation(OdbcmConnectionHandler *db_conn,
+  UncRespCode PerformSemanticValidation(OdbcmConnectionHandler *db_conn,
                                            void* key_struct,
                                            void* val_struct,
                                            uint32_t operation,
                                            uint32_t data_type);
 
-  UpplReturnCode IsKeyExists(OdbcmConnectionHandler *db_conn,
+  UncRespCode IsKeyExists(OdbcmConnectionHandler *db_conn,
                              unc_keytype_datatype_t data_type,
                              const vector<string>& key_values);
 
   void Fill_Attr_Syntax_Map();
-  UpplReturnCode ReadInternal(OdbcmConnectionHandler *db_conn,
+  UncRespCode ReadInternal(OdbcmConnectionHandler *db_conn,
                               vector<void *> &key_val,
                               vector<void *> &val_struct,
                               uint32_t data_type,
@@ -130,7 +130,7 @@ class Kt_LogicalMemberPort : public Kt_State_Base {
       uint32_t operation_type,
       vector<key_logical_member_port_t> &logical_mem_port);
 
-  UpplReturnCode PerformRead(OdbcmConnectionHandler *db_conn,
+  UncRespCode PerformRead(OdbcmConnectionHandler *db_conn,
                              uint32_t session_id,
                              uint32_t configuration_id,
                              void* key_struct,
@@ -142,7 +142,7 @@ class Kt_LogicalMemberPort : public Kt_State_Base {
                              uint32_t option2,
                              uint32_t max_rep_ct);
 
-  UpplReturnCode ReadLogicalMemberPortValFromDB(OdbcmConnectionHandler *db_conn,
+  UncRespCode ReadLogicalMemberPortValFromDB(OdbcmConnectionHandler *db_conn,
       void* key_struct,
       uint32_t data_type,
       uint32_t operation_type,
@@ -150,7 +150,7 @@ class Kt_LogicalMemberPort : public Kt_State_Base {
       vector<key_logical_member_port_t> &logical_mem_port,
       pfc_bool_t is_state = PFC_FALSE);
 
-  UpplReturnCode ReadBulkInternal(OdbcmConnectionHandler *db_conn,
+  UncRespCode ReadBulkInternal(OdbcmConnectionHandler *db_conn,
       void* key_struct,
       uint32_t data_type,
       uint32_t max_rep_ct,
index 90a35bf8201ddf4e23a4c553d9560eca81562c33..7c0e9ac3bf27262771f45bbc90c944747b0e35af 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -38,18 +38,18 @@ class Kt_LogicalPort: public Kt_State_Base {
 
   ~Kt_LogicalPort();
 
-  UpplReturnCode DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
+  UncRespCode DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
                                    void* key_struct,
                                    uint32_t data_type,
                                    uint32_t key_type);
 
-  UpplReturnCode ReadInternal(OdbcmConnectionHandler *db_conn,
+  UncRespCode ReadInternal(OdbcmConnectionHandler *db_conn,
                               vector<void *> &key_val,
                               vector<void *> &val_struct,
                               uint32_t data_type,
                               uint32_t operation_type);
 
-  UpplReturnCode ReadBulk(OdbcmConnectionHandler *db_conn,
+  UncRespCode ReadBulk(OdbcmConnectionHandler *db_conn,
                           void* key_struct,
                           uint32_t data_type,
                           uint32_t &max_rep_ct,
@@ -58,33 +58,33 @@ class Kt_LogicalPort: public Kt_State_Base {
                           pfc_bool_t is_read_next,
                           ReadRequest *read_req);
 
-  UpplReturnCode PerformSyntaxValidation(OdbcmConnectionHandler *db_conn,
+  UncRespCode PerformSyntaxValidation(OdbcmConnectionHandler *db_conn,
                                          void* key_struct,
                                          void* val_struct,
                                          uint32_t operation,
                                          uint32_t data_type);
 
-  UpplReturnCode PerformSemanticValidation(OdbcmConnectionHandler *db_conn,
+  UncRespCode PerformSemanticValidation(OdbcmConnectionHandler *db_conn,
                                            void* key_struct,
                                            void* val_struct,
                                            uint32_t operation,
                                            uint32_t data_type);
 
-  UpplReturnCode HandleDriverAlarms(OdbcmConnectionHandler *db_conn,
+  UncRespCode HandleDriverAlarms(OdbcmConnectionHandler *db_conn,
                                     uint32_t data_type,
                                     uint32_t alarm_type,
                                     uint32_t oper_type,
                                     void* key_struct,
                                     void* val_struct);
 
-  UpplReturnCode HandleOperStatus(OdbcmConnectionHandler *db_conn,
+  UncRespCode HandleOperStatus(OdbcmConnectionHandler *db_conn,
                                   uint32_t data_type,
                                   void *key_struct,
                                   void *value_struct,
                                   vector<OperStatusHolder> &ref_oper_status,
                                   unc_key_type_t caller_kt);
 
-  UpplReturnCode HandleOperDownCriteriaFromPortStatus(
+  UncRespCode HandleOperDownCriteriaFromPortStatus(
       OdbcmConnectionHandler *db_conn,
       uint32_t data_type,
       void *key_struct,
@@ -92,26 +92,26 @@ class Kt_LogicalPort: public Kt_State_Base {
       vector<uint32_t> &vectOperStatus,
       pfc_bool_t is_delete_call = false);
 
-  UpplReturnCode GetOperDownCriteria(OdbcmConnectionHandler *db_conn,
+  UncRespCode GetOperDownCriteria(OdbcmConnectionHandler *db_conn,
                                      uint32_t data_type,
                                      void* key_struct,
                                      uint32_t &oper_down_criteria);
 
-  UpplReturnCode InvokeBoundaryNotifyOperStatus(OdbcmConnectionHandler *db_conn,
+  UncRespCode InvokeBoundaryNotifyOperStatus(OdbcmConnectionHandler *db_conn,
                                                 uint32_t data_type,
                                                 void *key_struct);
 
-  UpplReturnCode NotifyOperStatus(OdbcmConnectionHandler *db_conn,
+  UncRespCode NotifyOperStatus(OdbcmConnectionHandler *db_conn,
                                   uint32_t data_type,
                                   void *key_struct,
                                   void *value_struct,
                                   vector<OperStatusHolder> &ref_oper_status);
 
-  UpplReturnCode GetOperStatus(OdbcmConnectionHandler *db_conn,
+  UncRespCode GetOperStatus(OdbcmConnectionHandler *db_conn,
                                uint32_t data_type,
                                void* key_struct, uint8_t &oper_status);
 
-  UpplReturnCode IsKeyExists(OdbcmConnectionHandler *db_conn,
+  UncRespCode IsKeyExists(OdbcmConnectionHandler *db_conn,
                              unc_keytype_datatype_t data_type,
                              const vector<string>& key_values);
   void Fill_Attr_Syntax_Map();
@@ -199,7 +199,7 @@ class Kt_LogicalPort: public Kt_State_Base {
       uint32_t operation_type,
       vector<key_logical_port_t> &controller_id);
 
-  UpplReturnCode PerformRead(OdbcmConnectionHandler *db_conn,
+  UncRespCode PerformRead(OdbcmConnectionHandler *db_conn,
                              uint32_t session_id,
                              uint32_t configuration_id,
                              void* key_struct,
@@ -211,7 +211,7 @@ class Kt_LogicalPort: public Kt_State_Base {
                              uint32_t option2,
                              uint32_t max_rep_ct);
 
-  UpplReturnCode ReadLogicalPortValFromDB(OdbcmConnectionHandler *db_conn,
+  UncRespCode ReadLogicalPortValFromDB(OdbcmConnectionHandler *db_conn,
       void* key_struct,
       void* val_struct,
       uint32_t data_type,
@@ -221,7 +221,7 @@ class Kt_LogicalPort: public Kt_State_Base {
       vector<val_logical_port_st_t> &vect_val_logical_port_st,
       vector<key_logical_port_t> &logical_port_id);
 
-  UpplReturnCode ReadBulkInternal(OdbcmConnectionHandler *db_conn,
+  UncRespCode ReadBulkInternal(OdbcmConnectionHandler *db_conn,
       void* key_struct,
       void* value_struct,
       uint32_t data_type,
@@ -236,12 +236,12 @@ class Kt_LogicalPort: public Kt_State_Base {
 
   Kt_Base* GetChildClassPointer(KtLogicalPortChildClass KIndex);
 
-  UpplReturnCode SetOperStatus(OdbcmConnectionHandler *db_conn,
+  UncRespCode SetOperStatus(OdbcmConnectionHandler *db_conn,
                                uint32_t data_type,
                                void* key_struct,
                                void* val_struct,
                                UpplLogicalPortOperStatus oper_status);
-  UpplReturnCode GetOperStatusFromOperDownCriteria(
+  UncRespCode GetOperStatusFromOperDownCriteria(
       OdbcmConnectionHandler *db_conn,
       uint32_t data_type,
       void *key_struct,
@@ -249,18 +249,18 @@ class Kt_LogicalPort: public Kt_State_Base {
       UpplLogicalPortOperStatus &logical_port_oper_status);
   void FreeChildKeyStruct(int child_class,
                           void *key_struct);
-  UpplReturnCode GetLogicalPortValidFlag(OdbcmConnectionHandler *db_conn,
+  UncRespCode GetLogicalPortValidFlag(OdbcmConnectionHandler *db_conn,
       void *key_struct,
       val_logical_port_st_t &val_logical_port_valid_st,
       uint32_t data_type);
   void FrameValidValue(string attr_value,
       val_logical_port_st &obj_val_logical_port_st,
       val_logical_port_t &obj_val_logical_port);
-  UpplReturnCode GetValidFlag(OdbcmConnectionHandler *db_conn,
+  UncRespCode GetValidFlag(OdbcmConnectionHandler *db_conn,
       uint32_t data_type,
       void* key_struct,
       string *valid_flag);
-  UpplReturnCode GetPortOperStatus(OdbcmConnectionHandler *db_conn,
+  UncRespCode GetPortOperStatus(OdbcmConnectionHandler *db_conn,
       key_port_t &port_key,
       uint8_t *port_oper_status,
       uint32_t data_type);
@@ -271,6 +271,6 @@ class Kt_LogicalPort: public Kt_State_Base {
       string phy_port_id,
       vector<key_logical_port_t> &vectLogicalPortKey,
       uint32_t data_type);
-  UpplReturnCode ValidatePortType(uint8_t port_type);
+  UncRespCode ValidatePortType(uint8_t port_type);
 };
 #endif
index 3ea9ac88b38bd3144e75d073e4beae6287689a02..e379afa44cd6efb4b13de58a978abf30048567e2 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -20,7 +20,7 @@
 #include <string>
 #include "physicallayer.hh"
 #include "itc_kt_state_base.hh"
-
+#include "ipc_client_configuration_handler.hh"
 #define ALARM_UPPL_ALARMS_DEFAULT_FLOW 0x01
 #define ALARM_UPPL_ALARMS_PORT_DIRECTION 0x02
 #define ALARM_UPPL_ALARMS_PORT_CONGES 0x04
@@ -32,18 +32,18 @@ class Kt_Port: public Kt_State_Base {
 
   ~Kt_Port();
 
-  UpplReturnCode DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
+  UncRespCode DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
                                    void* key_struct,
                                    uint32_t data_type,
                                    uint32_t key_type);
 
-  UpplReturnCode ReadInternal(OdbcmConnectionHandler *db_conn,
+  UncRespCode ReadInternal(OdbcmConnectionHandler *db_conn,
                               vector<void *> &key_val,
                               vector<void *> &val_struct,
                               uint32_t data_type,
                               uint32_t operation_type);
 
-  UpplReturnCode ReadBulk(OdbcmConnectionHandler *db_conn,
+  UncRespCode ReadBulk(OdbcmConnectionHandler *db_conn,
                           void* key_struct,
                           uint32_t data_type,
                           uint32_t &max_rep_ct,
@@ -52,57 +52,57 @@ class Kt_Port: public Kt_State_Base {
                           pfc_bool_t is_read_next,
                           ReadRequest *read_req);
 
-  UpplReturnCode PerformSyntaxValidation(OdbcmConnectionHandler *db_conn,
+  UncRespCode PerformSyntaxValidation(OdbcmConnectionHandler *db_conn,
                                          void* key_struct,
                                          void* val_struct,
                                          uint32_t operation,
                                          uint32_t data_type);
 
-  UpplReturnCode PerformSemanticValidation(OdbcmConnectionHandler *db_conn,
+  UncRespCode PerformSemanticValidation(OdbcmConnectionHandler *db_conn,
                                            void* key_struct,
                                            void* val_struct,
                                            uint32_t operation,
                                            uint32_t data_type);
 
-  UpplReturnCode HandleDriverAlarms(OdbcmConnectionHandler *db_conn,
+  UncRespCode HandleDriverAlarms(OdbcmConnectionHandler *db_conn,
                                     uint32_t data_type,
                                     uint32_t alarm_type,
                                     uint32_t oper_type,
                                     void* key_struct,
                                     void* val_struct);
-  UpplReturnCode HandleOperStatus(OdbcmConnectionHandler *db_conn,
+  UncRespCode HandleOperStatus(OdbcmConnectionHandler *db_conn,
                                   uint32_t data_type,
                                   void *key_struct,
                                   void *value_struct);
 
-  UpplReturnCode NotifyOperStatus(OdbcmConnectionHandler *db_conn,
+  UncRespCode NotifyOperStatus(OdbcmConnectionHandler *db_conn,
                                   uint32_t data_type,
                                   void *key_struct,
                                   void *value_struct,
                                   vector<OperStatusHolder> &ref_oper_status);
 
-  UpplReturnCode GetOperStatus(OdbcmConnectionHandler *db_conn,
+  UncRespCode GetOperStatus(OdbcmConnectionHandler *db_conn,
                                uint32_t data_type,
                                void* key_struct,
                                uint8_t &oper_status);
 
-  UpplReturnCode GetAlarmStatus(OdbcmConnectionHandler *db_conn,
+  UncRespCode GetAlarmStatus(OdbcmConnectionHandler *db_conn,
                                 uint32_t data_type,
                                 void* key_struct,
                                 uint64_t &alarms_status);
 
-  UpplReturnCode IsKeyExists(OdbcmConnectionHandler *db_conn,
+  UncRespCode IsKeyExists(OdbcmConnectionHandler *db_conn,
                              unc_keytype_datatype_t data_type,
                              const vector<string>& key_values);
 
   void Fill_Attr_Syntax_Map();
-  UpplReturnCode UpdatePortValidFlag(OdbcmConnectionHandler *db_conn,
+  UncRespCode UpdatePortValidFlag(OdbcmConnectionHandler *db_conn,
                                      void *key_struct,
                                      void *val_struct,
                                      val_port_st_t &val_port_valid_st,
                                      unc_keytype_validflag_t valid_val,
                                      uint32_t data_type);
-  UpplReturnCode PopulateSchemaForValidFlag(OdbcmConnectionHandler *db_conn,
+  UncRespCode PopulateSchemaForValidFlag(OdbcmConnectionHandler *db_conn,
                                             void* key_struct,
                                             void* val_struct,
                                             string new_val,
@@ -177,7 +177,7 @@ class Kt_Port: public Kt_State_Base {
                               uint32_t operation_type,
                               vector<key_port_t> &port_id);
 
-  UpplReturnCode PerformRead(OdbcmConnectionHandler *db_conn,
+  UncRespCode PerformRead(OdbcmConnectionHandler *db_conn,
                              uint32_t session_id,
                              uint32_t configuration_id,
                              void* key_struct,
@@ -189,7 +189,7 @@ class Kt_Port: public Kt_State_Base {
                              uint32_t option2,
                              uint32_t max_rep_ct);
 
-  UpplReturnCode ReadPortValFromDB(OdbcmConnectionHandler *db_conn,
+  UncRespCode ReadPortValFromDB(OdbcmConnectionHandler *db_conn,
                                    void* key_struct,
                                    void* val_struct,
                                    uint32_t data_type,
@@ -198,18 +198,18 @@ class Kt_Port: public Kt_State_Base {
                                    vector<val_port_st_t> &vect_val_port_st,
                                    vector<key_port_t> &port_id);
 
-  UpplReturnCode ReadBulkInternal(OdbcmConnectionHandler *db_conn,
+  UncRespCode ReadBulkInternal(OdbcmConnectionHandler *db_conn,
                                   void* key_struct,
                                   void* value_struct,
                                   uint32_t data_type,
                                   uint32_t max_rep_ct,
                                   vector<val_port_st_t> &vect_val_port,
                                   vector<key_port_t> &vect_port_id);
-  UpplReturnCode SetOperStatus(OdbcmConnectionHandler *db_conn,
+  UncRespCode SetOperStatus(OdbcmConnectionHandler *db_conn,
                                uint32_t data_type,
                                void* key_struct,
                                UpplPortOperStatus oper_status);
-  UpplReturnCode ReadNeighbor(OdbcmConnectionHandler *db_conn,
+  UncRespCode ReadNeighbor(OdbcmConnectionHandler *db_conn,
       void* key_struct,
       void* val_struct,
       uint32_t data_type,
@@ -229,7 +229,7 @@ class Kt_Port: public Kt_State_Base {
         uint8_t operation_type,
         val_port_st_t *val_port_valid_st,
         stringstream &valid);
-    UpplReturnCode SubDomainOperStatusHandling(
+    UncRespCode SubDomainOperStatusHandling(
         OdbcmConnectionHandler *db_conn,
         uint32_t data_type,
         string controller_name,
index ecf7c0b6c9ca52624949bb7d90faffc179eb38d3..65a8a1ccc249e0d2f112ea20b0af20990335a09e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -38,14 +38,14 @@ class Kt_Root: public Kt_Base {
   public:
     Kt_Root();
     ~Kt_Root();
-    UpplReturnCode Create(OdbcmConnectionHandler *db_conn,
+    UncRespCode Create(OdbcmConnectionHandler *db_conn,
                           uint32_t session_id,
                           uint32_t configuration_id,
                           void* key_struct,
                           void* val_struct,
                           uint32_t data_type,
                           ServerSession &sess);
-    UpplReturnCode Update(OdbcmConnectionHandler *db_conn,
+    UncRespCode Update(OdbcmConnectionHandler *db_conn,
                           uint32_t session_id,
                           uint32_t configuration_id,
                           void* key_struct,
@@ -53,14 +53,14 @@ class Kt_Root: public Kt_Base {
                           uint32_t data_type,
                           ServerSession &sess);
 
-    UpplReturnCode Delete(OdbcmConnectionHandler *db_conn,
+    UncRespCode Delete(OdbcmConnectionHandler *db_conn,
                           uint32_t session_id,
                           uint32_t configuration_id,
                           void* key_struct,
                           uint32_t data_type,
                           ServerSession &sess);
 
-    UpplReturnCode ReadBulk(OdbcmConnectionHandler *db_conn,
+    UncRespCode ReadBulk(OdbcmConnectionHandler *db_conn,
                             void* key_struct,
                             uint32_t data_type,
                             uint32_t &max_rep_ct,
@@ -69,7 +69,7 @@ class Kt_Root: public Kt_Base {
                             pfc_bool_t is_read_next,
                             ReadRequest *read_req);
 
-    UpplReturnCode PerformRead(OdbcmConnectionHandler *db_conn,
+    UncRespCode PerformRead(OdbcmConnectionHandler *db_conn,
                                uint32_t session_id,
                                uint32_t configuration_id,
                                void* key_struct,
@@ -79,22 +79,22 @@ class Kt_Root: public Kt_Base {
                                ServerSession &sess,
                                uint32_t option1,
                                uint32_t option2,
-                               uint32_t max_rep_ct) { return UPPL_RC_SUCCESS; }
+                               uint32_t max_rep_ct) { return UNC_RC_SUCCESS; }
 
-    UpplReturnCode PerformSyntaxValidation(OdbcmConnectionHandler *db_conn,
+    UncRespCode PerformSyntaxValidation(OdbcmConnectionHandler *db_conn,
                                            void* key_struct,
                                            void* val_struct,
                                            uint32_t operation,
                                            uint32_t data_type) {
-      return UPPL_RC_SUCCESS;
+      return UNC_RC_SUCCESS;
     }
 
-    UpplReturnCode PerformSemanticValidation(OdbcmConnectionHandler *db_conn,
+    UncRespCode PerformSemanticValidation(OdbcmConnectionHandler *db_conn,
                                              void* key_struct,
                                              void* val_struct,
                                              uint32_t operation,
                                              uint32_t data_type) {
-      return UPPL_RC_SUCCESS;
+      return UNC_RC_SUCCESS;
     }
 
     void PopulateDBSchemaForKtTable(OdbcmConnectionHandler *db_conn,
index 1289d436e4955e4e534694448adbeb56fa04f8ca..96015dca857a69803ea24eb9270e6bef916ab70b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -39,7 +39,7 @@ class Kt_State_Base: public Kt_Base {
   virtual ~Kt_State_Base() {
   };
 
-  UpplReturnCode Create(OdbcmConnectionHandler *db_conn,
+  UncRespCode Create(OdbcmConnectionHandler *db_conn,
                         uint32_t session_id,
                         uint32_t configuration_id,
                         void* key_struct,
@@ -48,20 +48,20 @@ class Kt_State_Base: public Kt_Base {
                         uint32_t key_type,
                         ServerSession &sess);
 
-  UpplReturnCode CreateKeyInstance(OdbcmConnectionHandler *db_conn,
+  UncRespCode CreateKeyInstance(OdbcmConnectionHandler *db_conn,
                                    void* key_struct,
                                    void* val_struct,
                                    uint32_t data_type,
                                    uint32_t key_type);
 
-  UpplReturnCode UpdateKeyInstance(OdbcmConnectionHandler *db_conn,
+  UncRespCode UpdateKeyInstance(OdbcmConnectionHandler *db_conn,
                                    void* key_struct,
                                    void* val_struct,
                                    uint32_t data_type,
                                    uint32_t key_type,
                                    void* &old_val_struct);
 
-  UpplReturnCode Update(OdbcmConnectionHandler *db_conn,
+  UncRespCode Update(OdbcmConnectionHandler *db_conn,
                         uint32_t session_id,
                         uint32_t configuration_id,
                         void* key_struct,
@@ -70,7 +70,7 @@ class Kt_State_Base: public Kt_Base {
                         uint32_t key_type,
                         ServerSession &sess);
 
-  UpplReturnCode Delete(OdbcmConnectionHandler *db_conn,
+  UncRespCode Delete(OdbcmConnectionHandler *db_conn,
                         uint32_t session_id,
                         uint32_t configuration_id,
                         void* key_struct,
@@ -78,7 +78,7 @@ class Kt_State_Base: public Kt_Base {
                         uint32_t key_type,
                         ServerSession &sess);
 
-  UpplReturnCode HandleDriverEvents(OdbcmConnectionHandler *db_conn,
+  UncRespCode HandleDriverEvents(OdbcmConnectionHandler *db_conn,
                                     void* key_struct,
                                     uint32_t oper_type,
                                     uint32_t data_type,
@@ -87,7 +87,7 @@ class Kt_State_Base: public Kt_Base {
                                     void* new_val_struct);
 
  private:
-  UpplReturnCode HandleOperStatus(OdbcmConnectionHandler *db_conn,
+  UncRespCode HandleOperStatus(OdbcmConnectionHandler *db_conn,
                                   void* key_struct,
                                   uint32_t oper_type,
                                   uint32_t data_type,
index 1138250aeb471b7ee7ab4b515283f21c76f2300e..3ee264c1807a959c4caa5daf88b5dfd3c7395cdd 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -42,18 +42,18 @@ class Kt_Switch : public Kt_State_Base {
 
   ~Kt_Switch();
 
-  UpplReturnCode DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
+  UncRespCode DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
                                    void* key_struct,
                                    uint32_t data_type,
                                    uint32_t key_type);
 
-  UpplReturnCode ReadInternal(OdbcmConnectionHandler *db_conn,
+  UncRespCode ReadInternal(OdbcmConnectionHandler *db_conn,
                               vector<void *> &key_struct,
                               vector<void *> &val_struct,
                               uint32_t data_type,
                               uint32_t operation_type);
 
-  UpplReturnCode ReadBulk(OdbcmConnectionHandler *db_conn,
+  UncRespCode ReadBulk(OdbcmConnectionHandler *db_conn,
                           void* key_struct,
                           uint32_t data_type,
                           uint32_t &max_rep_ct,
@@ -62,59 +62,59 @@ class Kt_Switch : public Kt_State_Base {
                           pfc_bool_t is_read_next,
                           ReadRequest *read_req);
 
-  UpplReturnCode PerformSyntaxValidation(OdbcmConnectionHandler *db_conn,
+  UncRespCode PerformSyntaxValidation(OdbcmConnectionHandler *db_conn,
                                          void* key_struct,
                                          void* val_struct,
                                          uint32_t operation,
                                          uint32_t data_type);
 
-  UpplReturnCode PerformSemanticValidation(OdbcmConnectionHandler *db_conn,
+  UncRespCode PerformSemanticValidation(OdbcmConnectionHandler *db_conn,
                                            void* key_struct,
                                            void* val_struct,
                                            uint32_t operation,
                                            uint32_t data_type);
 
-  UpplReturnCode HandleDriverAlarms(OdbcmConnectionHandler *db_conn,
+  UncRespCode HandleDriverAlarms(OdbcmConnectionHandler *db_conn,
                                     uint32_t data_type,
                                     uint32_t alarm_type,
                                     uint32_t oper_type,
                                     void* key_struct,
                                     void* val_struct);
 
-  UpplReturnCode IsKeyExists(OdbcmConnectionHandler *db_conn,
+  UncRespCode IsKeyExists(OdbcmConnectionHandler *db_conn,
                              unc_keytype_datatype_t data_type,
                              const vector<string>& key_values);
 
-  UpplReturnCode NotifyOperStatus(OdbcmConnectionHandler *db_conn,
+  UncRespCode NotifyOperStatus(OdbcmConnectionHandler *db_conn,
                                   uint32_t data_type,
                                   void* key_struct,
                                   void* value_struct,
                                   vector<OperStatusHolder> &ref_oper_status);
 
-  UpplReturnCode HandleOperStatus(OdbcmConnectionHandler *db_conn,
+  UncRespCode HandleOperStatus(OdbcmConnectionHandler *db_conn,
                                   uint32_t data_type,
                                   void *key_struct,
                                   void *value_struct);
 
-  UpplReturnCode GetOperStatus(OdbcmConnectionHandler *db_conn,
+  UncRespCode GetOperStatus(OdbcmConnectionHandler *db_conn,
                                uint32_t data_type,
                                void* key_struct,
                                uint8_t &oper_status);
 
-  UpplReturnCode GetAlarmStatus(OdbcmConnectionHandler *db_conn,
+  UncRespCode GetAlarmStatus(OdbcmConnectionHandler *db_conn,
                                 uint32_t data_type,
                                 void* key_struct,
                                 uint64_t &alarms_status);
   void Fill_Attr_Syntax_Map();
 
-  UpplReturnCode UpdateSwitchValidFlag(OdbcmConnectionHandler *db_conn,
+  UncRespCode UpdateSwitchValidFlag(OdbcmConnectionHandler *db_conn,
                                        void *key_struct,
                                        void *val_struct,
                                        val_switch_st_t &val_switch_val_st,
                                        unc_keytype_validflag_t valid_val,
                                        uint32_t data_type);
 
-  UpplReturnCode PopulateSchemaForValidFlag(OdbcmConnectionHandler *db_conn,
+  UncRespCode PopulateSchemaForValidFlag(OdbcmConnectionHandler *db_conn,
                                             void* key_struct,
                                             void* val_struct,
                                             string valid_new,
@@ -209,7 +209,7 @@ class Kt_Switch : public Kt_State_Base {
       uint32_t operation_type,
       vector<key_switch_t> &vect_switch_id);
 
-  UpplReturnCode PerformRead(OdbcmConnectionHandler *db_conn,
+  UncRespCode PerformRead(OdbcmConnectionHandler *db_conn,
                              uint32_t session_id,
                              uint32_t configuration_id,
                              void* key_struct,
@@ -221,7 +221,7 @@ class Kt_Switch : public Kt_State_Base {
                              uint32_t option2,
                              uint32_t max_rep_ct);
 
-  UpplReturnCode ReadSwitchValFromDB(OdbcmConnectionHandler *db_conn,
+  UncRespCode ReadSwitchValFromDB(OdbcmConnectionHandler *db_conn,
       void* key_struct,
       void* val_struct,
       uint32_t data_type,
@@ -231,7 +231,7 @@ class Kt_Switch : public Kt_State_Base {
       vector<key_switch_t> &vect_switch_id,
       pfc_bool_t is_state = PFC_FALSE);
 
-  UpplReturnCode ReadBulkInternal(OdbcmConnectionHandler *db_conn,
+  UncRespCode ReadBulkInternal(OdbcmConnectionHandler *db_conn,
                                   void* key_struct,
                                   void* val_struct,
                                   uint32_t data_type,
@@ -244,7 +244,7 @@ class Kt_Switch : public Kt_State_Base {
                           string controller_name);
   Kt_Base* GetChildClassPointer(KtSwitchChildClass KIndex);
 
-  UpplReturnCode SetOperStatus(OdbcmConnectionHandler *db_conn,
+  UncRespCode SetOperStatus(OdbcmConnectionHandler *db_conn,
                                uint32_t data_type,
                                void* key_struct,
                                UpplSwitchOperStatus oper_status);
index 905e0fa3d097c17ed956e4b8d03b426730384af5..18d677778fea9d0c5aa42a5ed7c7c0d054846614 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -38,25 +38,25 @@ class NotificationRequest : public ITCReq {
   pfc_bool_t ProcessEvent(const IpcEvent &event);
 
   private:
-  UpplReturnCode ProcessPortEvents(ClientSession *sess,
+  UncRespCode ProcessPortEvents(ClientSession *sess,
                                    uint32_t data_type,
                                    uint32_t operation);
-  UpplReturnCode ProcessSwitchEvents(ClientSession *sess,
+  UncRespCode ProcessSwitchEvents(ClientSession *sess,
                                      uint32_t data_type,
                                      uint32_t operation);
-  UpplReturnCode ProcessLinkEvents(ClientSession *sess,
+  UncRespCode ProcessLinkEvents(ClientSession *sess,
                                    uint32_t data_type,
                                    uint32_t operation);
-  UpplReturnCode ProcessControllerEvents(ClientSession *sess,
+  UncRespCode ProcessControllerEvents(ClientSession *sess,
                                          uint32_t data_type,
                                          uint32_t operation);
-  UpplReturnCode ProcessDomainEvents(ClientSession *sess,
+  UncRespCode ProcessDomainEvents(ClientSession *sess,
                                      uint32_t data_type,
                                      uint32_t operation);
-  UpplReturnCode ProcessLogicalPortEvents(ClientSession *sess,
+  UncRespCode ProcessLogicalPortEvents(ClientSession *sess,
                                           uint32_t data_type,
                                           uint32_t operation);
-  UpplReturnCode ProcessLogicalMemeberPortEvents(
+  UncRespCode ProcessLogicalMemeberPortEvents(
       ClientSession *sess,
       uint32_t data_type,
       uint32_t operation);
@@ -64,10 +64,10 @@ class NotificationRequest : public ITCReq {
                          string controller_name,
                          uint32_t &data_type);
   /*This function process notification events*/
-  UpplReturnCode ProcessNotificationEvents(const IpcEvent &event);
+  UncRespCode ProcessNotificationEvents(const IpcEvent &event);
   /*This function process alarm events*/
-  UpplReturnCode ProcessAlarmEvents(const IpcEvent &event);
-  UpplReturnCode InvokeKtDriverEvent(
+  UncRespCode ProcessAlarmEvents(const IpcEvent &event);
+  UncRespCode InvokeKtDriverEvent(
       OdbcmConnectionHandler *db_conn,
       uint32_t operation,
       uint32_t data_type,
index 5e952e65517a9fe64c9f1111abd94f59c6d964d5..3bee9219e535d512b3de953965e5715adc5eebee 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -55,7 +55,7 @@ class ReadRequest: public ITCReq {
   public:
     ReadRequest();
     ~ReadRequest();
-    UpplReturnCode ProcessReq(ServerSession &session,
+    UncRespCode ProcessReq(ServerSession &session,
                               physical_request_header &obj_req_hdr);
     void AddToBuffer(BulkReadBuffer objBuffer) {
       vect_bulk_read_buffer.push_back(objBuffer);
@@ -70,6 +70,8 @@ class ReadRequest: public ITCReq {
     key_root_t key_root_obj;
     key_ctr_t key_ctr_obj;
     val_ctr_t val_ctr_obj;
+    key_dataflow_t key_dataflow_obj;
+    key_ctr_dataflow_t key_ctr_dataflow_obj;
     key_ctr_domain_t key_domain_obj;
     val_ctr_domain_t val_domain_obj;
     key_logical_port_t key_logical_port_obj;
@@ -84,14 +86,14 @@ class ReadRequest: public ITCReq {
     key_boundary_t key_boundary_obj;
     val_boundary_t val_boundary_obj;
     vector<BulkReadBuffer> vect_bulk_read_buffer;
-    UpplReturnCode ProcessReadOperation(OdbcmConnectionHandler *db_conn,
+    UncRespCode ProcessReadOperation(OdbcmConnectionHandler *db_conn,
                                         ServerSession &session,
                                         Kt_Base *KtObj,
                                         physical_request_header &obj_req_hdr,
                                         void* key_struct,
                                         void* val_struct,
                                         uint32_t operation_type);
-    UpplReturnCode FrameReadBulkResponse(ServerSession &session,
+    UncRespCode FrameReadBulkResponse(ServerSession &session,
                                          uint32_t session_id,
                                          uint32_t config_id,
                                          uint32_t operation,
@@ -102,6 +104,12 @@ class ReadRequest: public ITCReq {
                                 void * &key_struct,
                                 void * &val_struct,
                                 physical_response_header &rsh);
+    void GetDataflowStructure(ServerSession &session,
+                                void * &key_struct,
+                                physical_response_header &rsh);
+    void GetCtrDataflowStructure(ServerSession &session,
+                                void * &key_struct,
+                                physical_response_header &rsh);
     void GetDomainStructure(ServerSession &session,
                             void * &key_struct,
                             void * &val_struct,
index d65487693a0e18afb897d2144345ab492317df7b..4a5bcd946bb4f90fc8547b42934afd8b16b7bfd0 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -27,11 +27,11 @@ class SystemStateChangeRequest:public ITCReq  {
   public:
   SystemStateChangeRequest();
   ~SystemStateChangeRequest();
-  UpplReturnCode SystemStateChangeToStandBy(OdbcmConnectionHandler *db_conn);
-  UpplReturnCode SystemStateChangeToActive(OdbcmConnectionHandler *db_conn);
+  UncRespCode SystemStateChangeToStandBy(OdbcmConnectionHandler *db_conn);
+  UncRespCode SystemStateChangeToActive(OdbcmConnectionHandler *db_conn);
 
   private:
-  UpplReturnCode SendCandidateInfoToLogical(OdbcmConnectionHandler *db_conn);
+  UncRespCode SendCandidateInfoToLogical(OdbcmConnectionHandler *db_conn);
 };
 }  // namespace uppl
 }  // namespace unc
index 7fea5e1be4ebeeb1db88088ed1a627d78fbff5b0..0263bd72626e52e90f20d9cf15d16508ee92bb44 100644 (file)
@@ -2,7 +2,7 @@
 #define _ITC_TRANSACTION_REQUEST_HH_
 
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -54,57 +54,54 @@ class TransactionRequest : public ITCReq {
     vector<key_ctr_domain> domain_created;
     vector<key_ctr_domain> domain_updated;
     vector<key_ctr_domain> domain_deleted;
-    set<string>set_controller_oflow;
-    set<string>set_controller_vnp;
-    map<unc_keytype_ctrtype_t, vector<string> > driver_controller_info_map_;
-    UpplReturnCode SendControllerNotification(OdbcmConnectionHandler *db_conn,
+    UncRespCode SendControllerNotification(OdbcmConnectionHandler *db_conn,
                                               vector<void *> vec_old_val_ctr);
-    UpplReturnCode SendDomainNotification(
+    UncRespCode SendDomainNotification(
         OdbcmConnectionHandler *db_conn,
         vector<void *> vec_old_val_ctr_domain);
-    UpplReturnCode SendBoundaryNotification(
+    UncRespCode SendBoundaryNotification(
         OdbcmConnectionHandler *db_conn,
         vector<void *> vec_old_val_boundary);
     void SendControllerInfo(OdbcmConnectionHandler *db_conn,
                             uint32_t operation_type,
                             uint32_t session_id,
                             uint32_t config_id);
-    UpplReturnCode GetModifiedConfiguration(OdbcmConnectionHandler *db_conn,
+    UncRespCode GetModifiedConfiguration(OdbcmConnectionHandler *db_conn,
                                             CsRowStatus row_status);
     void ClearMaps();
-    UpplReturnCode GetModifiedController(OdbcmConnectionHandler *db_conn,
+    UncRespCode GetModifiedController(OdbcmConnectionHandler *db_conn,
                                          CsRowStatus row_status);
-    UpplReturnCode GetModifiedDomain(OdbcmConnectionHandler *db_conn,
+    UncRespCode GetModifiedDomain(OdbcmConnectionHandler *db_conn,
                                      CsRowStatus row_status);
-    UpplReturnCode GetModifiedBoundary(OdbcmConnectionHandler *db_conn,
+    UncRespCode GetModifiedBoundary(OdbcmConnectionHandler *db_conn,
                                        CsRowStatus row_status);
 
   public:
     TransactionRequest();
     ~TransactionRequest();
-    UpplReturnCode StartTransaction(OdbcmConnectionHandler *db_conn,
+    UncRespCode StartTransaction(OdbcmConnectionHandler *db_conn,
                                     uint32_t session_id, uint32_t config_id);
-    UpplReturnCode HandleVoteRequest(uint32_t session_id, uint32_t config_id,
+    UncRespCode HandleVoteRequest(uint32_t session_id, uint32_t config_id,
                                  TcDriverInfoMap &driver_info);
-    UpplReturnCode HandleDriverResult(OdbcmConnectionHandler *db_conn,
+    UncRespCode HandleDriverResult(OdbcmConnectionHandler *db_conn,
                                       uint32_t session_id,
                                       uint32_t config_id,
                                       TcCommitPhaseType phase,
                                       TcCommitPhaseResult
                                       driver_result);
-    UpplReturnCode HandleGlobalCommitRequest(uint32_t session_id,
+    UncRespCode HandleGlobalCommitRequest(uint32_t session_id,
                                    uint32_t config_id,
                                    TcDriverInfoMap &driver_info);
-    UpplReturnCode HandleDriverGlobalCommitResult(uint32_t session_id,
+    UncRespCode HandleDriverGlobalCommitResult(uint32_t session_id,
                                       uint32_t config_id,
                                       TcCommitPhaseType
                                       commitphase,
                                       TcCommitPhaseResult driver_result);
 
-    UpplReturnCode AbortTransaction(uint32_t session_id,
+    UncRespCode AbortTransaction(uint32_t session_id,
                                 uint32_t config_id,
                                 TcCommitOpAbortPhase operation_phase);
-    UpplReturnCode EndTransaction(OdbcmConnectionHandler *db_conn,
+    UncRespCode EndTransaction(OdbcmConnectionHandler *db_conn,
                                   uint32_t session_id,
                                   uint32_t config_id,
                                   TcTransEndResult trans_res);
index a7f61045148181682c571cded13db0979ad10d26..b6508c3d0dce4952972a14c8708ac4530a010732 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -261,6 +261,9 @@ typedef struct {
 #define BDRY_VALID_STR          "valid"
 #define BDRY_ROW_STATUS_STR     "cs_row_status"
 #define BDRY_ATTR_STR           "cs_attr"
+#define VLAN_ID_STR             "vlan_id"
+
+#define CTR_DATAFLOW_FLOWID_STR "flow_id"
 
 #define PHY_FINI_READ_LOCK() \
   if (PhysicalLayer::phyFiniFlag == 1) { \
@@ -272,7 +275,8 @@ typedef struct {
   if (PhysicalLayer::phyFiniFlag == 1) { \
     pfc_log_info("PhysicalLayer:: Fini is invoked already ..!!"); \
     return ODBCM_RC_GENERAL_ERROR; \
-  }
+  } \
+
 
 /**Macro to fill the DBTableSchema Object instance with given input values.
  * In the case of static access. (memory might be allocated earlier, here reuse
@@ -280,21 +284,21 @@ typedef struct {
 #define ODBCM_FILL_ATTRIBUTE_INFO(attr_var, \
     attr_name, attr_value, attr_length, attr_type, attr_vector) \
     { \
-  attr_var.table_attribute_name = attr_name; \
-  attr_var.p_table_attribute_value = reinterpret_cast<void*>(&attr_value); \
-  attr_var.table_attribute_length = attr_length;\
-  attr_var.request_attribute_type = attr_type; \
-  attr_vector.push_back(attr_var); \
+  (attr_var).table_attribute_name = (attr_name); \
+  (attr_var).p_table_attribute_value = reinterpret_cast<void*>(&(attr_value)); \
+  (attr_var).table_attribute_length = (attr_length);\
+  (attr_var).request_attribute_type = (attr_type); \
+  (attr_vector).push_back(attr_var); \
     }
 
 #define ODBCM_FILL_ATTRIBUTE_INFOS(attr_var, \
     attr_name, attr_value, attr_length, attr_type, attr_vector) \
     { \
-  attr_var.table_attribute_name = attr_name; \
-  attr_var.p_table_attribute_value = reinterpret_cast<void*>(attr_value); \
-  attr_var.table_attribute_length = attr_length;\
-  attr_var.request_attribute_type = attr_type; \
-  attr_vector.push_back(attr_var); \
+  (attr_var).table_attribute_name = (attr_name); \
+  (attr_var).p_table_attribute_value = reinterpret_cast<void*>(attr_value); \
+  (attr_var).table_attribute_length = (attr_length);\
+  (attr_var).request_attribute_type = (attr_type); \
+  (attr_vector).push_back(attr_var); \
     }
 
 /**return type of query factory methods*/
index b8de77ad493a88ee698f02d13ca71d5491f93ee3..bd69a1e382df5afc411986f34efcab10ead16439 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -21,7 +21,6 @@ using unc::uppl::ODBCManager;
 namespace unc {
 namespace uppl {
 
-
 enum OdbcmConnType {
   kOdbcmConnReadOnly = 0,  // Read Only Connection
   kOdbcmConnReadWriteNb,   // Read Write Connection For Nb requests
@@ -35,15 +34,16 @@ class OdbcmConnectionHandler {
     * Constructor for OdbcmConnectionHandler
     */
     explicit OdbcmConnectionHandler(const OdbcmConnType conn_type,
-                                    UpplReturnCode &conn_status,
-                                    ODBCManager *odbc_manager) {
-      conn_type_ = conn_type;
-      odbc_manager_ = odbc_manager;
-      conn_handle_ = NULL;
-      conn_status = UPPL_RC_SUCCESS;
+                                    UncRespCode &conn_status,
+                                    ODBCManager *odbc_manager):
+                                    conn_type_(conn_type),
+                                    conn_handle_(NULL),
+                                    odbc_manager_(odbc_manager),
+                                    using_session_id_(0) {
+      conn_status = UNC_RC_SUCCESS;
       ODBCM_RC_STATUS db_ret = odbc_manager_->OpenDBConnection(this);
       if (db_ret != ODBCM_RC_SUCCESS) {
-        conn_status = UPPL_RC_ERR_DB_ACCESS;
+        conn_status = UNC_UPPL_RC_ERR_DB_ACCESS;
       }
     }
     /*
@@ -61,6 +61,14 @@ class OdbcmConnectionHandler {
       conn_handle_ = conn_handle;
     }
 
+    void set_using_session_id(uint32_t session_id) {
+      using_session_id_ = session_id;
+    }
+
+    uint32_t get_using_session_id() {
+      return using_session_id_;
+    }
+
     OdbcmConnType get_conn_type() {
       return conn_type_;
     }
@@ -73,7 +81,44 @@ class OdbcmConnectionHandler {
     OdbcmConnType conn_type_;
     SQLHDBC conn_handle_;  // Connection handler to create ODBC Connection
     ODBCManager *odbc_manager_;
+    uint32_t using_session_id_;
+};
+
+class ScopedDBConnection {
+  public:
+    explicit ScopedDBConnection(const OdbcmConnType conn_type,
+                         UncRespCode &resp_code,
+                         OdbcmConnectionHandler *&db_conn,
+                         uint32_t session_id,
+                         uint32_t config_id,
+                         ODBCManager *odbc_manager): conn_type_(conn_type),
+                                              db_conn_(NULL),
+                                              session_id_(session_id),
+                                              config_id_(config_id),
+                                              odbc_manager_(odbc_manager) {
+      resp_code = UNC_RC_SUCCESS;
+      ODBCM_RC_STATUS db_status = odbc_manager_->AssignDBConnection(
+                                         db_conn_, session_id_, config_id_);
+      db_conn = db_conn_;
+      if (db_conn == NULL) pfc_log_info("conn is null after assign");
+      if (db_conn_ == NULL) pfc_log_info("conn_ is null after assign");
+      if (db_status != ODBCM_RC_SUCCESS) {
+        resp_code = UNC_UPPL_RC_ERR_DB_ACCESS;
+        pfc_log_error("odbc connection assignation is failed!!");
+      }
+    }
+    ~ScopedDBConnection() {
+      odbc_manager_->PoolDBConnection(db_conn_, session_id_, config_id_);
+    }
+
+  private:
+    OdbcmConnType conn_type_;
+    OdbcmConnectionHandler *db_conn_;
+    uint32_t session_id_;
+    uint32_t config_id_;
+    ODBCManager *odbc_manager_;
 };
+
 }  // namespace uppl
 }  // namespace unc
 #endif /*_ODBCM_DB_CONNECTION_H_*/
index 28c27fb0836bcb15b81ed642e462d17074f28b2a..eada40a54679efd1652290a4e9c85867f5635875 100644 (file)
@@ -52,108 +52,108 @@ namespace uppl {
 /* 
  * uppl memcpy macro
  */
-#define ODBCM_MEMCPY(__dst__, __src__, __size__)                      \
-  if (__src__ != NULL && __size__ > 0)                                \
-  memcpy(__dst__, __src__, __size__);
+#define ODBCM_MEMCPY(dst, src, size)                      \
+  if ((src) != NULL && (size) > 0)                                \
+  memcpy((dst), (src), (size));
 /* 
  * uppl memset macro
  */
-#define ODBCM_MEMSET(__dst__, __val__, __size__)                      \
-  memset(__dst__, __val__, __size__);
+#define ODBCM_MEMSET(dst, val, size)                      \
+  memset((dst), (val), (size));
 /* 
  * Allocate memory for ColumnAttrValue template, 
  * this will be called up in the fetch functions
  */
-#define ODBCM_ALLOCATE_COLUMN_ATTRVALUE_T(__dt__, __Tname__)          \
-  ColumnAttrValue <__dt__> *__Tname__ = new ColumnAttrValue <__dt__>; \
-  ODBCM_MEMSET(__Tname__, '\0', sizeof(__dt__));
+#define ODBCM_ALLOCATE_COLUMN_ATTRVALUE_T(dt, T_name)          \
+  ColumnAttrValue <dt> *(T_name) = new ColumnAttrValue <dt>; \
+  ODBCM_MEMSET((T_name), '\0', sizeof(dt));
 
 /* 
  * To bind the input datatypes
  * for binding SQL_VARCHAR data type
  */
-#define BindInputParameter_SQL_VARCHAR(__stmt__, __param_no__,        \
-  __col_size__,  __decimal__,  __buffer__, __buf_len__, __lenptr__)   \
-  SQLBindParameter(__stmt__, __param_no__, SQL_PARAM_INPUT,           \
-      SQL_C_CHAR, SQL_VARCHAR, __col_size__, __decimal__,             \
-      __buffer__, __buf_len__, __lenptr__)
+#define BindInputParameter_SQL_VARCHAR(stmt, param_no,        \
+  col_size, decimal, buffer, buf_len, lenptr)   \
+  SQLBindParameter((stmt), (param_no), SQL_PARAM_INPUT,           \
+      SQL_C_CHAR, SQL_VARCHAR, (col_size), (decimal),             \
+      (buffer), (buf_len), (lenptr))
 /* 
  * For binding SQL_SMALLINT data type
  */
-#define BindInputParameter_SQL_SMALLINT(__stmt__, __param_no__,       \
-    __col_size__, __decimal__,  __buffer__, __buf_len__, __lenptr__)  \
-      SQLBindParameter(__stmt__, __param_no__, SQL_PARAM_INPUT,       \
-      SQL_C_SHORT, SQL_SMALLINT, __col_size__, __decimal__,           \
-      __buffer__, __buf_len__, __lenptr__)
+#define BindInputParameter_SQL_SMALLINT(stmt, param_no,       \
+    col_size, decimal, buffer, buf_len, lenptr)  \
+      SQLBindParameter((stmt), (param_no), SQL_PARAM_INPUT,       \
+      SQL_C_SHORT, SQL_SMALLINT, (col_size), (decimal),           \
+      (buffer), (buf_len), (lenptr))
 /* 
  * For binding SQL_INTIGER data type
  */
-#define BindInputParameter_SQL_INTEGER(__stmt__, __param_no__,        \
-    __col_size__, __decimal__,  __buffer__, __buf_len__, __lenptr__)  \
-    SQLBindParameter(__stmt__, __param_no__, SQL_PARAM_INPUT,         \
-      SQL_C_LONG, SQL_INTEGER, __col_size__, __decimal__,             \
-      __buffer__, __buf_len__, __lenptr__)
+#define BindInputParameter_SQL_INTEGER(stmt, param_no,        \
+    col_size, decimal, buffer, buf_len, lenptr)  \
+    SQLBindParameter((stmt), (param_no), SQL_PARAM_INPUT,         \
+      SQL_C_LONG, SQL_INTEGER, (col_size), (decimal),             \
+      (buffer), (buf_len), (lenptr))
 /* 
  * For binding SQL_BIGINT( data type
  */
-#define BindInputParameter_SQL_BIGINT(__stmt__, __param_no__,         \
-    __col_size__, __decimal__,  __buffer__, __buf_len__, __lenptr__)  \
-    SQLBindParameter(__stmt__, __param_no__, SQL_PARAM_INPUT,         \
-      SQL_C_UBIGINT, SQL_BIGINT, __col_size__, __decimal__,           \
-      __buffer__, __buf_len__, __lenptr__)
+#define BindInputParameter_SQL_BIGINT(stmt, param_no,         \
+    col_size, decimal, buffer, buf_len, lenptr)  \
+    SQLBindParameter((stmt), (param_no), SQL_PARAM_INPUT,         \
+      SQL_C_UBIGINT, SQL_BIGINT, (col_size), (decimal),           \
+      (buffer), (buf_len), (lenptr))
 /* 
  * For binding SQL_CHAR data type
  */
-#define BindInputParameter_SQL_CHAR(__stmt__, __param_no__,           \
-    __col_size__, __decimal__,  __buffer__, __buf_len__, __lenptr__)  \
-    SQLBindParameter(__stmt__, __param_no__, SQL_PARAM_INPUT,         \
-      SQL_C_CHAR, SQL_CHAR, __col_size__, __decimal__,                \
-      __buffer__, __buf_len__, __lenptr__)
+#define BindInputParameter_SQL_CHAR(stmt, param_no,           \
+    col_size, decimal, buffer, buf_len, lenptr)  \
+    SQLBindParameter((stmt), (param_no), SQL_PARAM_INPUT,         \
+      SQL_C_CHAR, SQL_CHAR, (col_size), (decimal),                \
+      (buffer), (buf_len), (lenptr))
 /*
  * For binding SQL_BINARY data type 
  * calculate the length of buffer and assign to lenptr
  */
-#define BindInputParameter_SQL_BINARY(__stmt__, __param_no__,         \
-    __col_size__, __decimal__,  __buffer__, __buf_len__, __lenptr__)  \
-    SQLBindParameter(__stmt__, __param_no__, SQL_PARAM_INPUT,         \
-      SQL_C_BINARY, SQL_BINARY, __col_size__, __decimal__,            \
-      __buffer__, __buf_len__, __lenptr__)
+#define BindInputParameter_SQL_BINARY(stmt, param_no,         \
+    col_size, decimal, buffer, buf_len, lenptr)  \
+    SQLBindParameter((stmt), (param_no), SQL_PARAM_INPUT,         \
+      SQL_C_BINARY, SQL_BINARY, (col_size), (decimal),            \
+      (buffer), (buf_len), (lenptr))
 /* 
  * To bind the output datatypes 
  * For binding SQL_VARCHAR data type
  */
-#define BindCol_SQL_VARCHAR(__stmt__, __param_no__, __buffer__,   \
-    __col_size__, __lenptr__)                                     \
-    SQLBindCol(__stmt__, __param_no__, SQL_C_CHAR, __buffer__,    \
-      __col_size__, __lenptr__)
+#define BindCol_SQL_VARCHAR(stmt, param_no, buffer,   \
+    col_size, lenptr)                                     \
+    SQLBindCol((stmt), (param_no), SQL_C_CHAR, (buffer),    \
+      (col_size), (lenptr))
 /*
  * For binding SQL_SMALLINT data type
  */
-#define BindCol_SQL_SMALLINT(__stmt__, __param_no__, __buffer__,  \
-    __col_size__,  __lenptr__)                                    \
-    SQLBindCol(__stmt__, __param_no__, SQL_C_SHORT, __buffer__,   \
-      __col_size__, __lenptr__)
+#define BindCol_SQL_SMALLINT(stmt, param_no, buffer,  \
+    col_size, lenptr)                                    \
+    SQLBindCol((stmt), (param_no), SQL_C_SHORT, (buffer),   \
+      (col_size), (lenptr))
 /* 
  * For binding SQL_INTEGER data type
  */
-#define BindCol_SQL_INTEGER(__stmt__, __param_no__, __buffer__,   \
-    __col_size__,  __lenptr__)                                    \
-    SQLBindCol(__stmt__, __param_no__, SQL_C_LONG, __buffer__,    \
-      __col_size__, __lenptr__)
+#define BindCol_SQL_INTEGER(stmt, param_no, buffer,   \
+    col_size, lenptr)                                    \
+    SQLBindCol((stmt), (param_no), SQL_C_LONG, (buffer),    \
+      (col_size), (lenptr))
 /* 
  * For binding SQL_BIGINT data type
  */
-#define BindCol_SQL_BIGINT(__stmt__, __param_no__, __buffer__,    \
-    __col_size__, __lenptr__)                                     \
-    SQLBindCol(__stmt__, __param_no__, SQL_C_UBIGINT, __buffer__, \
-      __col_size__, __lenptr__)
+#define BindCol_SQL_BIGINT(stmt, param_no, buffer,    \
+    col_size, lenptr)                                     \
+    SQLBindCol((stmt), (param_no), SQL_C_UBIGINT, (buffer), \
+      (col_size), (lenptr))
 /* 
  * For binding SQL_BINARY data type
  */
-#define BindCol_SQL_BINARY(__stmt__, __param_no__, __buffer__,    \
-    __col_size__,  __lenptr__)                                    \
-    SQLBindCol(__stmt__, __param_no__, SQL_C_BINARY,  __buffer__, \
-      __col_size__, __lenptr__)
+#define BindCol_SQL_BINARY(stmt, param_no, buffer,    \
+    col_size, lenptr)                                    \
+    SQLBindCol((stmt), (param_no), SQL_C_BINARY, (buffer), \
+      (col_size), (lenptr))
 
 /*
  * Binding types, Input binding or Output binding
index 648013a121a4f4aec924fd18dd303c106ceae071..9d309ed764d795fee69bad14482b004c98e67f37 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
 #define _ODBCM_MGR_HH_
 #include <unc/keytype.h>
 #include <vector>
+#include <list>
 #include <map>
 #include <string>
 #include "odbcm_common.hh"
 #include "odbcm_db_tableschema.hh"
-
-
 namespace unc {
 namespace uppl {
+
+/*
+ * Rollback the specified transaction with ignoring result.
+ */
+#define ODBCM_ROLLBACK_TRANSACTION(conn)                                \
+  do {                                                                  \
+    if ((conn) != NULL) {                                               \
+      SQLRETURN __rc(SQLEndTran(SQL_HANDLE_DBC, (conn), SQL_ROLLBACK)); \
+      ODBCM_DBC_HANDLE_CHECK((conn), __rc);                             \
+    }                                                                   \
+  } while (0)
+
 /**macro for ending the current transaction with rollback or commit state*/
-#define ODBCM_END_TRANSACTION(__conn__, __trans__) \
-  if (NULL != __conn__) {\
-    SQLRETURN transaction_rc = SQLEndTran(SQL_HANDLE_DBC, __conn__, __trans__);\
-    ODBCM_DBC_HANDLE_CHECK(__conn__, transaction_rc); \
+#define ODBCM_END_TRANSACTION(conn, trans, status) \
+  if (NULL != (conn)) {\
+    SQLRETURN transaction_rc = SQLEndTran(SQL_HANDLE_DBC, (conn), (trans));\
+    ODBCM_DBC_HANDLE_CHECK((conn), transaction_rc); \
     if (transaction_rc != ODBCM_RC_SUCCESS &&\
         transaction_rc != ODBCM_RC_SUCCESS_WITH_INFO) \
-      status = ODBCM_RC_TRANSACTION_ERROR; \
+      (status) = ODBCM_RC_TRANSACTION_ERROR; \
   }
 
 /**macro to allocate memory for SQL statement handler*/
-#define ODBCM_STATEMENT_CREATE(__connhandle__, __stmt__) \
-  if (NULL != __connhandle__) { \
-    odbc_rc = SQLAllocHandle(SQL_HANDLE_STMT, __connhandle__, &__stmt__); \
-    ODBCM_STMT_HANDLE_CHECK(__stmt__, __connhandle__, odbc_rc); \
+#define ODBCM_STATEMENT_CREATE(conn_handle, stmt, odbc_rc) \
+  if (NULL != (conn_handle)) { \
+    (odbc_rc) = SQLAllocHandle(SQL_HANDLE_STMT, (conn_handle), &(stmt)); \
+    ODBCM_STMT_HANDLE_CHECK((stmt), (conn_handle), (odbc_rc)); \
 }
 
-/**macro to free the statement handle*/
-#define ODBCM_FREE_STMT(__stmt__) \
-  if (NULL != __stmt__) \
-    odbc_rc = SQLFreeHandle(SQL_HANDLE_STMT, __stmt__); \
-  if (odbc_rc != ODBCM_RC_SUCCESS) \
-    status = ODBCM_RC_MEMORY_ERROR;
-
 /**macro to free the memory allocated object*/
-#define ODBCM_FREE_MEMORY(__object__) \
-  if (NULL != (__object__)) \
-    delete __object__;
-
-/**macro to allocate memory for string object*/
-#define ODBCM_STRING_MEM_ALLOCATE(__str__) \
-  __str__ = new std::string();
+#define ODBCM_FREE_MEMORY(object) \
+  if (NULL != (object)) \
+    delete (object);
 
 /**macro to create object instance from class*/
-#define ODBCM_CREATE_OBJECT(__obj__, __class__) \
-  __obj__ = new __class__();                    \
-  if (__obj__ == NULL) \
+#define ODBCM_CREATE_OBJECT(obj, class) \
+  (obj) = new (class)();                    \
+  if ((obj) == NULL) \
     pfc_log_fatal("ODBCM::ODBCManager:: " \
               "Internal object memory allocation is failed");
 
@@ -69,21 +69,21 @@ namespace uppl {
  * 1. transaction flag setting - READ_COMMITTED
  * 2. transaction flag setting - AUTOCOMMIT OFF
  * */
-#define ODBCM_SET_CONNECTION_ATTRIBUTE(__connhandle__, __odbcrc__) \
-  __odbcrc__ = SQLSetConnectAttr(__connhandle__, SQL_ATTR_TXN_ISOLATION, \
+#define ODBCM_SET_CONNECTION_ATTRIBUTE(conn_handle, odbc_rc) \
+  (odbc_rc) = SQLSetConnectAttr((conn_handle), SQL_ATTR_TXN_ISOLATION, \
       (SQLPOINTER)SQL_TXN_READ_COMMITTED, 0);  \
-  ODBCM_DBC_HANDLE_CHECK(__connhandle__, __odbcrc__); \
-  if (__odbcrc__ != ODBCM_RC_SUCCESS && \
-  __odbcrc__ != ODBCM_RC_SUCCESS_WITH_INFO) { \
+  ODBCM_DBC_HANDLE_CHECK((conn_handle), (odbc_rc)); \
+  if ((odbc_rc) != ODBCM_RC_SUCCESS && \
+  (odbc_rc) != ODBCM_RC_SUCCESS_WITH_INFO) { \
     pfc_log_info("ODBCM::ODBCManager:: " \
                  "Error in SQLSetConnectAttr"); \
     return ODBCM_RC_CONNECTION_ERROR; \
   } \
-  __odbcrc__ = SQLSetConnectAttr(__connhandle__, SQL_ATTR_AUTOCOMMIT, \
+  (odbc_rc) = SQLSetConnectAttr((conn_handle), SQL_ATTR_AUTOCOMMIT, \
       (SQLPOINTER)SQL_AUTOCOMMIT_OFF, SQL_NTS); \
-  ODBCM_DBC_HANDLE_CHECK(__connhandle__, __odbcrc__); \
-  if (__odbcrc__ != ODBCM_RC_SUCCESS && \
-     __odbcrc__ != ODBCM_RC_SUCCESS_WITH_INFO) { \
+  ODBCM_DBC_HANDLE_CHECK((conn_handle), (odbc_rc)); \
+  if ((odbc_rc) != ODBCM_RC_SUCCESS && \
+     (odbc_rc) != ODBCM_RC_SUCCESS_WITH_INFO) { \
     pfc_log_info("ODBCM::ODBCManager:: " \
                "Error in SQLSetConnectAttr"); \
                return ODBCM_RC_CONNECTION_ERROR; \
@@ -125,6 +125,15 @@ class ODBCManager {
     /**close the connection at the end of application, free the allocated
      * handlers and environment */
     ODBCM_RC_STATUS CloseDBConnection(OdbcmConnectionHandler *conn_obj);
+
+    ODBCM_RC_STATUS AssignDBConnection(OdbcmConnectionHandler *&db_conn,
+                             uint32_t session_id, uint32_t config_id = 0);
+    ODBCM_RC_STATUS PoolDBConnection(OdbcmConnectionHandler *&conn_obj,
+                            uint32_t session_id, uint32_t config_id = 0);
+    ODBCM_RC_STATUS FreeingConnections(bool IsAllOrUnused);
+    // Closes the Read Write connections
+    ODBCM_RC_STATUS CloseRwConnection();
+
     /** getter method for db_table_list_map_ private member*/
     std::map<int, std::vector<std::string> >& get_db_table_list_map_();
     /** getter method for odbcm_tables_column_map_ private member*/
@@ -276,8 +285,7 @@ class ODBCManager {
                                    QueryFactory*,
                                    QueryProcessor*);
     std::string GetColumnName(ODBCMTableColumns);
-    // Closes the Read Write connections
-    ODBCM_RC_STATUS CloseRwConnection();
+    std::list<uint32_t> err_connx_list_;
 
   private:
     /**constructor of ODBCManager class
@@ -316,6 +324,9 @@ class ODBCManager {
     // Connection handles to store nb and sb rw connection
     OdbcmConnectionHandler *rw_nb_conn_obj_;
     OdbcmConnectionHandler *rw_sb_conn_obj_;
+    std::map<uint32_t, OdbcmConnectionHandler*> conpool_inuse_map_;
+    std::list<OdbcmConnectionHandler*> conpool_free_list_;
+    uint32_t conn_max_limit_;
 };
 }  // namespace uppl
 }  // namespace unc
index d46d6b2878f82639bb42b330efd1b9bb57956613..4d63bd551679f3c647272ee24d59f6f29480c00c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -81,6 +81,7 @@ namespace uppl {
           (unc_keytype_datatype_t, std::string&);
 
       std::string getOrderByString(ODBCMTable, std::vector <std::string>&);
+
     private:
       /** To frame query for creating a row in db */
       SQLQUERY operation_createonerow
index ea75315dd2896ed9e398645c0793271dc8db34e6..b78fb2fbb4bfca28cfb68186d26a94a0d0f9e6fb 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
 #ifndef _ODBCM_UTILS_HH_
 #define _ODBCM_UTILS_HH_
 
-#include <map>
+#include <sys/ipc.h>
+#include <sys/sem.h>
 #include <string>
+#include <map>
 #include "odbcm_common.hh"
 #include "odbcm_db_tableschema.hh"
 
 namespace unc {
 namespace uppl {
-
-
+#if defined(__GNU_LIBRARY__) && !defined(_SEM_SEMUN_UNDEFINED)
+  /* union semun is defined by including <sys/sem.h> */
+#else
+  /* according to X/OPEN we have to define it ourselves */
+  union semun {
+    int val;                  /* value for SETVAL */
+    struct semid_ds *buf;     /* buffer for IPC_STAT, IPC_SET */
+    unsigned short *array;    /* array for GETALL, SETALL */
+                              /* Linux specific part: */
+    struct seminfo *__buf;    /* buffer for IPC_INFO */
+  };
+#endif
 typedef struct {
   const ODBCM_RC_STATUS rcode;
   const std::string rc_string;
@@ -53,7 +65,7 @@ const char g_log_db_name[7][20] = {
  */
 #if ODBCM_DEBUG
 #define odbcm_debug_info(fmt, ...) \
-  pfc_log_debug(fmt, ##__VA_ARGS__);
+  pfc_log_debug((fmt), ##__VA_ARGS__);
 #else
 #define odbcm_debug_info(fmt, ...) (void)0
 #endif
@@ -73,9 +85,9 @@ const char g_log_db_name[7][20] = {
  * Macro for database environment handle checking
  */
 #define ODBCM_ENV_HANDLE_CHECK(henv, odbcm_rc)                \
-  if (odbcm_rc != SQL_SUCCESS) {                              \
+  if ((odbcm_rc) != SQL_SUCCESS) {                              \
     ODBCM_RC_STATUS rc = ODBCMUtils::OdbcmHandleInfoPrint(    \
-        SQL_HANDLE_ENV, henv, odbcm_rc, __LINE__, __FILE__);  \
+        SQL_HANDLE_ENV, (henv), (odbcm_rc), __LINE__, __FILE__);  \
     if (rc != SQL_SUCCESS)                                    \
     return (ODBCM_RC_STATUS)rc;                               \
   }
@@ -84,25 +96,25 @@ const char g_log_db_name[7][20] = {
  * Macro for database connection handle checking
  */
 #define ODBCM_DBC_HANDLE_CHECK(hdbc, odbcm_rc)                \
-  if (odbcm_rc != SQL_SUCCESS) {                              \
+  if ((odbcm_rc) != SQL_SUCCESS) {                              \
     ODBCM_RC_STATUS rc = ODBCMUtils::OdbcmHandleInfoPrint(    \
-        SQL_HANDLE_DBC, hdbc, odbcm_rc, __LINE__, __FILE__);  \
+        SQL_HANDLE_DBC, (hdbc), (odbcm_rc), __LINE__, __FILE__);  \
     if (rc != SQL_SUCCESS)                                    \
-      odbcm_rc = rc;                                          \
+      (odbcm_rc) = rc;                                          \
   }
 
 /* 
  * Macro for query statement handle checking
  */
 #define ODBCM_STMT_HANDLE_CHECK(hstmt, hdbc, odbcm_rc)        \
-  if (NULL != hstmt) {                                        \
-    if (odbcm_rc != SQL_SUCCESS) {                              \
+  if (NULL != (hstmt)) {                                        \
+    if ((odbcm_rc) != SQL_SUCCESS) {                              \
       ODBCM_RC_STATUS rc = ODBCMUtils::OdbcmHandleInfoPrint(    \
-          SQL_HANDLE_STMT, hstmt, odbcm_rc, __LINE__, __FILE__);\
+          SQL_HANDLE_STMT, (hstmt), (odbcm_rc), __LINE__, __FILE__);\
       if (rc == SQL_ERROR)                                      \
-      ODBCMUtils::OdbcmStmtResourcesFree(hstmt);                \
+      ODBCMUtils::OdbcmStmtResourcesFree((hstmt));                \
       if (rc != SQL_SUCCESS)                                    \
-      ODBCMUtils::OdbcmTransRollback(hdbc);                     \
+      ODBCMUtils::OdbcmTransRollback((hdbc));                     \
       if (rc != SQL_SUCCESS) return (ODBCM_RC_STATUS)rc;        \
     }                                                           \
   }
@@ -111,12 +123,12 @@ const char g_log_db_name[7][20] = {
  * Macro for database parameters handle checking
  */
 #define ODBCM_PARAM_HANDLE_CHECK(hstmt, odbcm_rc)             \
-    if (odbcm_rc != SQL_SUCCESS ||                            \
-      odbcm_rc != SQL_SUCCESS_WITH_INFO) {                    \
+    if ((odbcm_rc) != SQL_SUCCESS ||                            \
+      (odbcm_rc) != SQL_SUCCESS_WITH_INFO) {                    \
       ODBCM_RC_STATUS rc = ODBCMUtils::OdbcmHandleInfoPrint(  \
-        SQL_HANDLE_STMT, hstmt, odbcm_rc, __LINE__, __FILE__);\
+        SQL_HANDLE_STMT, (hstmt), (odbcm_rc), __LINE__, __FILE__);\
         if (rc == SQL_ERROR)                                  \
-          ODBCMUtils::OdbcmStmtResourcesFree(hstmt);          \
+          ODBCMUtils::OdbcmStmtResourcesFree((hstmt));          \
         return (ODBCM_RC_STATUS)rc;                           \
     }
 
@@ -124,15 +136,15 @@ const char g_log_db_name[7][20] = {
  * Macro for database process handle checking
  */
 #define ODBCM_PROCESS_HANDLE_CHECK(hstmt, odbcm_rc)           \
-    if (odbcm_rc != SQL_SUCCESS) {                            \
+    if ((odbcm_rc) != SQL_SUCCESS) {                            \
       ODBCM_RC_STATUS rc = ODBCMUtils::OdbcmHandleInfoPrint(  \
-        SQL_HANDLE_STMT, hstmt, odbcm_rc, __LINE__, __FILE__);\
+        SQL_HANDLE_STMT, (hstmt), (odbcm_rc), __LINE__, __FILE__);\
         if (rc == SQL_ERROR ||                                \
             rc == SQL_STILL_EXECUTING ||                      \
             rc == SQL_NEED_DATA ) {                           \
-          ODBCMUtils::OdbcmStmtResourcesFree(hstmt);          \
+          ODBCMUtils::OdbcmStmtResourcesFree((hstmt));          \
          }                                                    \
-        odbcm_rc = (ODBCM_RC_STATUS)rc;                     \
+        (odbcm_rc) = (ODBCM_RC_STATUS)rc;                     \
     }
 
 /*
@@ -176,6 +188,8 @@ class ODBCMUtils {
      */
     ~ODBCMUtils();
 
+     static int sem_id;
+
     /*
      * Info about the SQL error
      */
@@ -255,6 +269,16 @@ class ODBCMUtils {
 
     //  static ODBCM_RC_STATUS Intialize_RCode_String();
 
+    // initializes semaphore using SETVAL
+    static int set_semvalue(int val);
+
+    // delete semaphore
+    static int del_semvalue();
+
+    static int SEM_DOWN();
+    static int SEM_UP();
+
+
   private:
     /** No private members */
 };
index 40393b94d5abf45b5712a76df0ae4f3237ba6deb..e552c692d1659cf4adb8eb4bb31e73a5c51d6a4f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -72,6 +72,7 @@ class PhyUtil {
                                     const northbound_alarm_header& rqh);
     static string uint8tostr(const uint8_t &c);
     static string uint16tostr(const uint16_t &c);
+    static string uint32tostr(const uint32_t &c);
     static string uint64tostr(const uint64_t &c);
     static int uint8touint(const uint8_t &c);
     static unsigned int strtouint(const string &str);
@@ -115,7 +116,7 @@ class PhyUtil {
         const TableAttrSchema& table_attr_schema,
         uint8_t *attr_value,
         AttributeDataType attr_type);
-    static UpplReturnCode get_controller_type(
+    static UncRespCode get_controller_type(
         OdbcmConnectionHandler *db_conn,
         string controller_name,
         unc_keytype_ctrtype_t& controller_type,
@@ -131,20 +132,4 @@ class PhyUtil {
                               unsigned int valid);
 };
 
-#define FN_START_TIME(fn_name, kt) \
-pfc_timespec_t start; \
-pfc_clock_gettime(&start); \
-pfc_log_info("Start Time for %s in function %s is %" PFC_PFMT_u64, \
-         fn_name, kt, static_cast<uint64_t> (start.tv_nsec)); \
-
-#define FN_END_TIME(fn_name, kt) \
-pfc_timespec_t end; \
-pfc_clock_gettime(&end); \
-pfc_log_info("End Time for %s in function %s is %" PFC_PFMT_u64, \
-           fn_name, kt, static_cast<uint64_t> (end.tv_nsec)); \
-pfc_timespec_sub(&end, &start); \
-uint64_t elapsed(pfc_clock_time2msec(&end)); \
-pfc_log_info("Time taken for %s in function %s is %" PFC_PFMT_u64, \
-     fn_name, kt, elapsed); \
-
 #endif
index db33deaef8e923cb37132bca8e0eca7934524cd8..10f3f7e8666d47d14f79e5e44fd602bc41ac41c5 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -17,6 +17,7 @@
 #define _PHYSICAL_COMMON_DEF_HH_
 #include <unc/base.h>
 #include <unc/unc_events.h>
+#include <unc/unc_base.h>
 #include <string>
 
 #define UPPL_IPC_NOTIFICATION_HANDLER_NAME  "UpplNotificationManager"
@@ -233,6 +234,48 @@ struct driver_event_header {
   uint32_t key_type;
 };
 
+struct lp_struct {
+  uint8_t switch_id[256];
+  uint8_t port_id[32];
+  uint8_t port_type;
+};
+
+struct lmp_struct {
+  uint8_t switch_id[256];
+  uint8_t port_id[32];
+};
+
+struct port_struct {
+  uint8_t port_id[32];
+};
+
+struct boundary_val {
+  uint8_t controller_type;
+  uint8_t controller_name[32];
+  uint8_t domain_name[32];
+  uint8_t logical_port_id[320];
+  lp_struct lp_str;
+  uint8_t boundary_id[32];
+};
+
+struct boundary_record {
+  uint8_t boundary_id[32];
+  uint8_t ctr_name1[32];
+  uint8_t dom_name1[32];
+  uint8_t lp_id1[320];
+  uint8_t port_type1;
+  uint8_t sw_id1[256];
+  uint8_t port_id1[32];
+  bool is_filled1;
+  uint8_t ctr_name2[32];
+  uint8_t dom_name2[32];
+  uint8_t lp_id2[320];
+  uint8_t port_type2;
+  uint8_t sw_id2[256];
+  uint8_t port_id2[32];
+  bool is_filled2;
+};
+
 struct driver_alarm_header {
   std::string controller_id;
   std::string domain_id;
index e1f47696c2e7828af54d9aa8a6b76d59983a1a0d..456c77958243ba1c0f6cde1ec582694310105c7f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -27,6 +27,7 @@
 #include "physical_itc.hh"
 #include "unc_state_handler.hh"
 #include "controller_version.hh"
+#include "capa_intf.hh"
 
 using std::vector;
 using std::map;
@@ -86,21 +87,21 @@ class PhysicalCore : public TcLibInterface, public UncStateHandler {
      * @param[in] :
      */
 
-    UpplReturnCode InitializePhysical();
+    UncRespCode InitializePhysical();
 
     /**
      * @Description : This function finalizes physical core members
      * @param[in] :
      */
 
-    UpplReturnCode FinalizePhysical();
+    UncRespCode FinalizePhysical();
 
     /**
      * @Description : This function reads config from file
      * @param[in] :
      */
 
-    UpplReturnCode ReadConfigFile();
+    UncRespCode ReadConfigFile();
 
     /**
      * @Description : This function reads controller capability config
@@ -108,7 +109,7 @@ class PhysicalCore : public TcLibInterface, public UncStateHandler {
      * @param[in] :
      */
 
-    UpplReturnCode ReadCtrlrStaticCapability();
+    UncRespCode ReadCtrlrStaticCapability();
 
     /**
      * @Description : This function validates key type controller capability map
@@ -116,7 +117,7 @@ class PhysicalCore : public TcLibInterface, public UncStateHandler {
      * @param[in] : key_type - Key type from NB
      */
 
-    UpplReturnCode ValidateKeyTypeInCtrlrCap(string version,
+    UncRespCode ValidateKeyTypeInCtrlrCap(string version,
                                              uint32_t key_type);
 
     /**
@@ -127,7 +128,7 @@ class PhysicalCore : public TcLibInterface, public UncStateHandler {
      * @param[in] : attribute_name - name of the attribute associated
      */
 
-    UpplReturnCode ValidateAttribInCtrlrCap(string version,
+    UncRespCode ValidateAttribInCtrlrCap(string version,
                                             uint32_t key_type,
                                             string attribute_name);
 
@@ -138,7 +139,7 @@ class PhysicalCore : public TcLibInterface, public UncStateHandler {
      * @param[in] : key_type - Key type from NB
      */
 
-    UpplReturnCode GetScalabilityNumber(string version,
+    UncRespCode GetScalabilityNumber(string version,
                                         uint32_t key_type,
                                         uint32_t &scalability_num);
 
@@ -148,7 +149,7 @@ class PhysicalCore : public TcLibInterface, public UncStateHandler {
      * @param[in] :
      */
 
-    UpplReturnCode SendEventSubscripToDriver();
+    UncRespCode SendEventSubscripToDriver();
 
     /**
      * @Description : This function sends cancel event subscription request to
@@ -156,7 +157,7 @@ class PhysicalCore : public TcLibInterface, public UncStateHandler {
      * @param[in] :
      */
 
-    UpplReturnCode CancelEventSubscripInDriver();
+    UncRespCode CancelEventSubscripInDriver();
 
     /**
      * @Description : This function validates the config ID by sending
@@ -165,7 +166,7 @@ class PhysicalCore : public TcLibInterface, public UncStateHandler {
      * @param[in] : config_id - Configuration ID
      */
 
-    UpplReturnCode ValidateConfigId(uint32_t session_id, uint32_t config_id);
+    UncRespCode ValidateConfigId(uint32_t session_id, uint32_t config_id);
 
     /**
      * @Description : This function validates if the operation is valid
@@ -173,7 +174,7 @@ class PhysicalCore : public TcLibInterface, public UncStateHandler {
      * @param[in] : operation_type - type of operation requested
      */
 
-    UpplReturnCode ValidateStandbyRequests(uint32_t operation_type);
+    UncRespCode ValidateStandbyRequests(uint32_t operation_type);
 
     /**
      * @Description : This inline function gives the instance of
@@ -207,7 +208,7 @@ class PhysicalCore : public TcLibInterface, public UncStateHandler {
      * @param[in] : controller_id - Controller identification
      */
 
-    UpplReturnCode SendControllerDisconnectAlarm(string controller_id);
+    UncRespCode SendControllerDisconnectAlarm(string controller_id);
 
     /**
      * @Description : This function sends CONROLLER_CONNECT alarm to
@@ -220,7 +221,7 @@ class PhysicalCore : public TcLibInterface, public UncStateHandler {
      * @param[in] : controller_id - Controller identification
      */
 
-    UpplReturnCode SendControllerConnectAlarm(string controller_id);
+    UncRespCode SendControllerConnectAlarm(string controller_id);
 
      /**
      *@Description : This function sends EVENT_HANDLING_SUCCESS alarm to
@@ -232,7 +233,7 @@ class PhysicalCore : public TcLibInterface, public UncStateHandler {
      * event_failed - Additional details about failed event handling
      *
      **/
-    UpplReturnCode SendEventHandlingSuccessAlarm(string controller_id,
+    UncRespCode SendEventHandlingSuccessAlarm(string controller_id,
                                                  string event_details);
 
      /**
@@ -242,7 +243,7 @@ class PhysicalCore : public TcLibInterface, public UncStateHandler {
      * event_failed - Additional details about failed event handling
      *
      **/
-    UpplReturnCode SendEventHandlingFailureAlarm(string controller_id,
+    UncRespCode SendEventHandlingFailureAlarm(string controller_id,
                                                 string event_details);
 
     /**
@@ -253,8 +254,7 @@ class PhysicalCore : public TcLibInterface, public UncStateHandler {
      * @param[in] : driver_name - driver name is filled in this variable
      *
      */
-
-    UpplReturnCode GetDriverName(unc_keytype_ctrtype_t controller_type,
+    UncRespCode GetDriverName(unc_keytype_ctrtype_t controller_type,
                                  string &driver_name);
 
     /**
@@ -348,6 +348,18 @@ class PhysicalCore : public TcLibInterface, public UncStateHandler {
     TcCommonRet HandleAuditStart(uint32_t session_id,
                                  unc_keytype_ctrtype_t driver_id,
                                  string controller_id);
+    /**
+     * @Description : This is a dummy function. TcLibInterface has pure virtual
+     *                functions. All functions has to have an implementation to
+     *                avoid runtime conflicts
+     */
+    TcCommonRet HandleAuditStart(uint32_t session_id,
+                                 unc_keytype_ctrtype_t driver_id,
+                                 string controller_id,
+                                 pfc_bool_t force_reconnect) {
+      /*this should not called by UPPL*/
+      return unc::tclib::TC_FAILURE;
+    }
     /**
      * @Description : This function will be called back when TC sends user
      *                Audit End request to UPPL
@@ -520,8 +532,26 @@ class PhysicalCore : public TcLibInterface, public UncStateHandler {
       return unknown_controller_count_;
     }
     vector<string> event_handling_controller_alarm_;
-    UpplReturnCode RaiseEventHandlingAlarm(string controller_name);
-    UpplReturnCode ClearEventHandlingAlarm(string controller_name);
+    UncRespCode RaiseEventHandlingAlarm(string controller_name);
+    UncRespCode ClearEventHandlingAlarm(string controller_name);
+
+    /**
+    *  @Description : This is a map to keep the alarms which has been sent to
+    *  node manager detail
+    */
+    std::map<std::string, bool> alarm_status_map_;
+    UncRespCode remove_ctr_from_alarm_status_map(
+         std::string , std::string);
+    static unc::capa::CapaIntf *GetCapaInterface();
+    /* Variable to hold max dataflow traversal count to verify during dataflow
+     * traversal, dataflow traversal is limited by this count value
+     *  */
+    uint32_t uppl_max_dataflowtraversal_;
+    /*variable to hold the max. allowed RO db connections */
+    uint32_t uppl_max_ro_db_connections_;
+    /*this flag enables to send the user initiated operations 
+    *          recovery alarm to nodemgr */
+    bool system_transit_state_;
 
   private:
     /* PhysicalCore Instance */
@@ -563,21 +593,25 @@ class PhysicalCore : public TcLibInterface, public UncStateHandler {
      * number of unknown controllers should be allowed
      */
     uint32_t unknown_controller_count_;
-
     /* This variable contains the InternalTransactionCoordinator singleton
      *  object
      */
     InternalTransactionCoordinator* internal_transaction_coordinator_;
 
     /* Constructor */
-    PhysicalCore() {
-      internal_transaction_coordinator_ = NULL;
-      audit_notfn_timeout_ = 0;
-      unknown_controller_count_ = 0;
+    PhysicalCore() :
+      uppl_max_dataflowtraversal_(0),
+      uppl_max_ro_db_connections_(0),
+      system_transit_state_(false),
+      audit_notfn_timeout_(0),
+      unknown_controller_count_(0),
+      internal_transaction_coordinator_(NULL) {
     }
     /* Destructor */
-    ~PhysicalCore() {}
-
+    ~PhysicalCore() {
+      if (!alarm_status_map_.empty())
+        alarm_status_map_.clear();
+    }
     cap_iter GetVersionIterator(ControllerVersion version_in);
 };
 }  // namespace uppl
index a9a76ef388a3a2dd0b4966bf2a38d0cf2eb32a8a..fc0d97a683cabb34755e35b9a555f632643cb0ff 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -51,13 +51,13 @@ class InternalTransactionCoordinator {
     DBConfigurationRequest *db_config_req();
     SystemStateChangeRequest *system_state_change_req();
 
-    UpplReturnCode PerformConfigIdValidation(ServerSession &session,
+    UncRespCode PerformConfigIdValidation(ServerSession &session,
                                              uint32_t sessionId,
                                              uint32_t configId);
 
-    UpplReturnCode ProcessReq(ServerSession &session, pfc_ipcid_t);
-    UpplReturnCode ProcessReq(ServerSession &session);
-    UpplReturnCode ProcessEvent(const IpcEvent &event);
+    UncRespCode ProcessReq(ServerSession &session, pfc_ipcid_t);
+    UncRespCode ProcessReq(ServerSession &session);
+    UncRespCode ProcessEvent(const IpcEvent &event);
 
     /*  set_config_request_status
      *
@@ -130,15 +130,15 @@ class InternalTransactionCoordinator {
     SystemStateChangeRequest *system_state_change_req_;
     AuditRequest *audit_req_;
 
-    UpplReturnCode ProcessConfigRequest(ServerSession &session,
+    UncRespCode ProcessConfigRequest(ServerSession &session,
                                         physical_request_header &obj_req_hdr,
                                         physical_response_header &rsh);
-    UpplReturnCode ProcessReadRequest(ServerSession &session,
+    UncRespCode ProcessReadRequest(ServerSession &session,
                                       physical_request_header &obj_req_hdr,
                                       physical_response_header &rsh);
-    UpplReturnCode ProcessImportRequest(ServerSession &session,
+    UncRespCode ProcessImportRequest(ServerSession &session,
                                         uint32_t operation);
-    UpplReturnCode ProcessIsCandidateDirty(ServerSession &session,
+    UncRespCode ProcessIsCandidateDirty(ServerSession &session,
                                            uint32_t operation);
 };
 #endif
index 456ca74e49153f507d4706c2d9edddd5c1fb5436..a5ba776814c54a131c8b19c99400e0278da0824a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -36,8 +36,8 @@ class ITCReq {
   public:
     ITCReq() {}
     virtual ~ITCReq() {}
-    virtual UpplReturnCode ProcessReq(ServerSession &session) {
-      return UPPL_RC_SUCCESS;
+    virtual UncRespCode ProcessReq(ServerSession &session) {
+      return UNC_RC_SUCCESS;
     }
     virtual uint16_t ProcessEvent(uint16_t service_id, ServerSession &session) {
       return 0;
index 897efa9e51e91ffbfb4b41dcfa22a3e0c98138cc..95f072d86485da1d24655ce2d9a34aec8319654e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -50,13 +50,13 @@ struct build_stamp {
 #define PHY_FINI_IPC_LOCK(return_code) \
   if (PhysicalLayer::phyFiniFlag == 1) { \
     pfc_log_info("PhysicalLayer Fini is invoked already ..!!"); \
-    return return_code; \
+    return (return_code); \
   } \
   ScopedReadWriteLock ipcFiniLock(PhysicalLayer::get_phy_fini_phycore_lock_(), \
       PFC_FALSE); \
   if (PhysicalLayer::phyFiniFlag == 1) { \
     pfc_log_info("PhysicalLayer:: Fini is invoked already ..!!"); \
-    return return_code; \
+    return (return_code); \
   }
 
 #define PHY_FINI_EVENT_LOCK() \
@@ -72,23 +72,40 @@ struct build_stamp {
   }
 
 #define OPEN_DB_CONNECTION_TC_REQUEST(conn_type) \
-  UpplReturnCode db_ret = UPPL_RC_SUCCESS; \
+  UncRespCode db_ret = UNC_RC_SUCCESS; \
   /* Create a new odbcm connection */ \
-  OdbcmConnectionHandler db_conn(conn_type, db_ret, \
+  OdbcmConnectionHandler db_conn((conn_type), db_ret, \
       PhysicalLayer::get_instance()->get_odbc_manager()); \
-  if (db_ret != UPPL_RC_SUCCESS) { \
+  if (db_ret != UNC_RC_SUCCESS) { \
     /* Error in opening db connection */ \
     pfc_log_error("Error in opening DB connection"); \
+    TcLibModule* tclib_ptr = static_cast<TcLibModule*> \
+                (TcLibModule::getInstance(TCLIB_MODULE_NAME)); \
+    tclib_ptr->TcLibWriteControllerInfo("", UNC_RC_INTERNAL_ERR, 0); \
     return unc::tclib::TC_FAILURE; \
   }
 
+/* Create a new odbcm connection */
+#define OPEN_DB_CONNECTION_WITH_POOL(conn_type, \
+                   db_ret, db_conn, session_id, config_id) \
+  ScopedDBConnection  scope_dbconn((conn_type), (db_ret), \
+                     (db_conn), (session_id), (config_id), \
+                     physical_layer->get_odbc_manager()); \
+  if ((db_ret) != UNC_RC_SUCCESS) { \
+    physical_layer->get_odbc_manager()->\
+                 FreeingConnections(false/*Unused conn free*/); \
+    PhysicalCore* physical_core = physical_layer->get_physical_core();\
+    if (physical_core->system_transit_state_ == true) \
+      pfc_log_warn("odbc connection assignation is failed !!"); \
+    else \
+      pfc_log_error("odbc connection assignation is failed !!"); \
+  }
+
 #define OPEN_DB_CONNECTION(conn_type, db_ret) \
-  /* Create a new odbcm connection */ \
-  OdbcmConnectionHandler db_conn(conn_type, db_ret, \
+  OdbcmConnectionHandler db_conn((conn_type), (db_ret), \
       PhysicalLayer::get_instance()->get_odbc_manager());
 
 namespace unc {
-
 namespace uppl {
 /**************************************************************************
 It is a singleton class which will instantiate other UPPL's classes. 
@@ -106,8 +123,8 @@ class PhysicalLayer : public pfc::core::Module {
   pfc_bool_t init(void);
   pfc_bool_t fini(void);
   static PhysicalLayer* get_instance();
-  UpplReturnCode InitializePhysicalSubModules();
-  UpplReturnCode FinalizePhysicalSubModules();
+  UncRespCode InitializePhysicalSubModules();
+  UncRespCode FinalizePhysicalSubModules();
   pfc_ipcresp_t ipcService(ServerSession &session,
                            pfc_ipcid_t service_id);
   PhysicalCore* get_physical_core();
@@ -132,6 +149,7 @@ class PhysicalLayer : public pfc::core::Module {
   static Mutex ipc_server_hdlr_mutex_;
   static Mutex notification_manager_mutex_;
   static Mutex ODBCManager_mutex_;
+  static Mutex db_conpool_mutex_;
   static ReadWriteLock phy_fini_db_lock_;
   static ReadWriteLock phy_fini_phycore_lock_;
   static ReadWriteLock phy_fini_event_lock_;
index 6c31c12157bd12a91f36a3dfa557c099d55dd499..0c609d16f56632eaf8e128947dd5aaf02baa6d52 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -19,6 +19,7 @@
 #include "ipc_client_configuration_handler.hh"
 #include "physicallayer.hh"
 #include "physical_common_def.hh"
+#include "unc/unc_base.h"
 
 using unc::uppl::IPCClientDriverHandler;
 
@@ -33,19 +34,19 @@ Ktclasses,Audit,Import and ITC class.
 
 
 IPCClientDriverHandler::IPCClientDriverHandler(
-    unc_keytype_ctrtype_t cntr_type, UpplReturnCode &err) {
+    unc_keytype_ctrtype_t cntr_type, UncRespCode &err) {
   if (cntr_type == UNC_CT_PFC ||
-      cntr_type == UNC_CT_VNP || 
+      cntr_type == UNC_CT_VNP ||
       cntr_type == UNC_CT_ODC ) {
     controller_type = cntr_type;
     PhysicalCore* physical_core = PhysicalCore::get_physical_core();
     /* Getting the driver name from uppl.conf */
-    UpplReturnCode driver_name_status = physical_core->GetDriverName(
+    UncRespCode driver_name_status = physical_core->GetDriverName(
         controller_type, driver_name);
-    if (driver_name_status != UPPL_RC_SUCCESS) {
+    if (driver_name_status != UNC_RC_SUCCESS) {
       pfc_log_error("Unable to get the driver name for controller type %d",
                     cntr_type);
-      err = UPPL_RC_ERR_BAD_REQUEST;
+      err = UNC_UPPL_RC_ERR_BAD_REQUEST;
     }
     pfc_log_info("Creating a session to driver %s", driver_name.c_str());
     connp = 0;
@@ -58,7 +59,7 @@ IPCClientDriverHandler::IPCClientDriverHandler(
     int clnt_err = pfc_ipcclnt_altopen(chn_name.c_str(), &connp);
     if (clnt_err != 0) {
       pfc_log_error("Could not open driver ipc session");
-      err = UPPL_RC_ERR_DRIVER_COMMUNICATION_FAILURE;
+      err = UNC_UPPL_RC_ERR_DRIVER_COMMUNICATION_FAILURE;
     }
     pfc_ipcid_t service = PFCDRIVER_SVID_PHYSICAL;
     if (cntr_type == UNC_CT_VNP) {
@@ -67,7 +68,7 @@ IPCClientDriverHandler::IPCClientDriverHandler(
     cli_session = new ClientSession(connp, driver_name, service, clnt_err);
     if (cli_session == NULL) {
       pfc_log_error("Could not get driver ipc session");
-      err = UPPL_RC_ERR_DRIVER_COMMUNICATION_FAILURE;
+      err = UNC_UPPL_RC_ERR_DRIVER_COMMUNICATION_FAILURE;
     } else if (clnt_err != 0) {
       pfc_log_error("Could not get driver ipc session, error is %d", err);
       err = ConvertDriverErrorCode(clnt_err);
@@ -79,7 +80,7 @@ IPCClientDriverHandler::IPCClientDriverHandler(
     controller_type = UNC_CT_UNKNOWN;
     driver_name = "";
     chn_name =  "";
-    err = UPPL_RC_ERR_BAD_REQUEST;
+    err = UNC_UPPL_RC_ERR_BAD_REQUEST;
   }
 }
 
@@ -101,41 +102,71 @@ ClientSession* IPCClientDriverHandler::ResetAndGetSession() {
   return cli_session;
 }
 
-UpplReturnCode IPCClientDriverHandler::SendReqAndGetResp(
+UncRespCode IPCClientDriverHandler::SendReqAndGetResp(
     driver_response_header &rsp) {
   pfc_ipcresp_t resp = 0;
   uint8_t err = cli_session->invoke(resp);
   pfc_log_debug("DriverHandler err = %d, resp = %d",
                 err, resp);
   if (err != 0 || resp != 0) {
-    return UPPL_RC_ERR_DRIVER_COMMUNICATION_FAILURE;
+    return UNC_UPPL_RC_ERR_DRIVER_COMMUNICATION_FAILURE;
   } else {
     err = PhyUtil::sessGetDriverRespHeader(*cli_session, rsp);
     pfc_log_debug("DriverHandler resp err = %d, rsp.result_code=%d",
                   err, rsp.result_code);
     if (err != 0) {
-      return UPPL_RC_ERR_DRIVER_COMMUNICATION_FAILURE;
+      return UNC_UPPL_RC_ERR_DRIVER_COMMUNICATION_FAILURE;
     } else {
       return ConvertDriverErrorCode(rsp.result_code);
     }
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
-UpplReturnCode IPCClientDriverHandler::ConvertDriverErrorCode(
+UncRespCode IPCClientDriverHandler::ConvertDriverErrorCode(
     uint32_t drv_err_code) {
   switch (controller_type) {
     case UNC_CT_PFC:
     case UNC_CT_ODC:
     case UNC_CT_VNP:
       switch (drv_err_code) {
-        case 0:
-          return UPPL_RC_SUCCESS;
+        case UNC_RC_SUCCESS:
+          return UNC_RC_SUCCESS;
+        case UNC_RC_CTRLAPI_FAILURE:
+        case UNC_DRV_RC_DAEMON_INACTIVE:
+          return UNC_UPPL_RC_ERR_DRIVER_COMMUNICATION_FAILURE;
+        case UNC_DRV_RC_INVALID_REQUEST_FORMAT:
+        case UNC_DRV_RC_INVALID_SESSION_ID:
+        case UNC_DRV_RC_INVALID_CONFIG_ID:
+        case UNC_DRV_RC_INVALID_OPERATION:
+        case UNC_DRV_RC_INVALID_OPTION1:
+        case UNC_DRV_RC_INVALID_OPTION2:
+        case UNC_DRV_RC_INVALID_DATATYPE:
+        case UNC_DRV_RC_INVALID_KEYTYPE:
+        case UNC_DRV_RC_MISSING_KEY_STRUCT:
+        case UNC_DRV_RC_MISSING_VAL_STRUCT:
+        case UNC_RC_CONFIG_INVAL:
+          return UNC_UPPL_RC_ERR_INVALID_STATE;
+        case UNC_DRV_RC_ERR_ATTRIBUTE_SYNTAX:
+          return UNC_UPPL_RC_ERR_CFG_SYNTAX;
+        case UNC_DRV_RC_ERR_ATTRIBUTE_SEMANTIC:
+          return UNC_UPPL_RC_ERR_CFG_SEMANTIC;
+        case UNC_RC_CTR_DISCONNECTED:
+        case UNC_RC_REQ_NOT_SENT_TO_CTR:
+        case UNC_RC_CTR_CONFIG_STATUS_ERR:
+        case UNC_RC_CTR_BUSY:
+          return UNC_UPPL_RC_ERR_CTRLR_DISCONNECTED;
+        case UNC_RC_NO_SUCH_INSTANCE:
+          return UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
+        case UNC_RC_INTERNAL_ERR:
+          return UNC_UPPL_RC_ERR_INVALID_STATE;
+        case UNC_DRV_RC_ERR_NOT_SUPPORTED_BY_CTRLR:
+          return UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
         default:
-          return UPPL_RC_ERR_DRIVER_COMMUNICATION_FAILURE;
+          return UNC_UPPL_RC_ERR_DRIVER_COMMUNICATION_FAILURE;
       }
-        default:
-          return UPPL_RC_ERR_DRIVER_COMMUNICATION_FAILURE;
+      default:
+        return UNC_UPPL_RC_ERR_DRIVER_COMMUNICATION_FAILURE;
   }
 }
 
index d2e638dacbe2c160f142b93c174a041032286241..16373c1a6bf332f3e992533a3ec734ee2151e77f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -37,12 +37,12 @@ const unsigned int UPLL_RESPONSE_COUNT = 3;
  *                types
  *                key_str - void pointer
  *                data_type - UNC_DT_* Specifies the datatype
- * @return      : UPPL_RC_SUCCESS is returned when the response
+ * @return      : UNC_RC_SUCCESS is returned when the response
  *                is added to ipc session successfully.
- *                UPPL_RC_ERR_* is returned when ipc response could not
+ *                UNC_UPPL_RC_ERR_* is returned when ipc response could not
  *                be added to session
  **/
-UpplReturnCode IPCClientLogicalHandler::CheckInUseInLogical(
+UncRespCode IPCClientLogicalHandler::CheckInUseInLogical(
     unc_key_type_t key_type,
     void* key_str,
     uint32_t data_type) {
@@ -52,9 +52,9 @@ UpplReturnCode IPCClientLogicalHandler::CheckInUseInLogical(
   int err = pfc_ipcclnt_altopen(UPLL_IPC_CHANNEL_NAME, &connp);
   if (err != 0) {
     pfc_log_error("Could not open upll ipc session");
-    return UPPL_RC_ERR_LOGICAL_COMMUNICATION_FAILURE;
+    return UNC_UPPL_RC_ERR_LOGICAL_COMMUNICATION_FAILURE;
   }
-  UpplReturnCode return_code = UPPL_RC_SUCCESS;
+  UncRespCode return_code = UNC_RC_SUCCESS;
   ClientSession sess(connp, UPLL_IPC_SERVICE_NAME,
                      UPLL_GLOBAL_CONFIG_SVC_ID, err);
   pfc_log_debug("After client session object creation");
@@ -64,7 +64,7 @@ UpplReturnCode IPCClientLogicalHandler::CheckInUseInLogical(
     if (err != 0) {
       pfc_log_error("Unable to close ipc connection");
     }
-    return UPPL_RC_ERR_LOGICAL_COMMUNICATION_FAILURE;
+    return UNC_UPPL_RC_ERR_LOGICAL_COMMUNICATION_FAILURE;
   }
   sess.addOutput((uint32_t)UPLL_IS_KEY_TYPE_IN_USE_OP);
   sess.addOutput(data_type);
@@ -91,19 +91,19 @@ UpplReturnCode IPCClientLogicalHandler::CheckInUseInLogical(
       if (err != 0) {
         pfc_log_error("Unable to close ipc connection");
       }
-      return UPPL_RC_ERR_KEYTYPE_NOT_SUPPORTED;
+      return UNC_UPPL_RC_ERR_KEYTYPE_NOT_SUPPORTED;
   }
   uint32_t oper_type;
   uint32_t result_code = UPLL_RC_SUCCESS;
   pfc_ipcresp_t resp;
   err = sess.invoke(resp);
-  if (err != 0 || resp != UPPL_RC_SUCCESS) {
+  if (err != 0 || resp != UNC_RC_SUCCESS) {
     pfc_log_error("Session invocation to logical failed");
     err = pfc_ipcclnt_altclose(connp);
     if (err != 0) {
       pfc_log_error("Unable to close ipc connection");
     }
-    return UPPL_RC_ERR_LOGICAL_COMMUNICATION_FAILURE;
+    return UNC_UPPL_RC_ERR_LOGICAL_COMMUNICATION_FAILURE;
   }
   if (sess.getResponseCount() != UPLL_RESPONSE_COUNT) {
     pfc_log_error("Proper response not received from logical");
@@ -111,7 +111,7 @@ UpplReturnCode IPCClientLogicalHandler::CheckInUseInLogical(
     if (err != 0) {
       pfc_log_error("Unable to close ipc connection");
     }
-    return UPPL_RC_ERR_LOGICAL_COMMUNICATION_FAILURE;
+    return UNC_UPPL_RC_ERR_LOGICAL_COMMUNICATION_FAILURE;
   }
   uint32_t resp_index = 0;
   int err1 = sess.getResponse(resp_index++, oper_type);
@@ -122,7 +122,7 @@ UpplReturnCode IPCClientLogicalHandler::CheckInUseInLogical(
   if (err1 != 0 || err2 != 0 || err3 != 0) {
     pfc_log_error(
         "getResponse failed while receiving response from logical");
-    return_code = UPPL_RC_ERR_LOGICAL_COMMUNICATION_FAILURE;
+    return_code = UNC_UPPL_RC_ERR_LOGICAL_COMMUNICATION_FAILURE;
   } else {
     if (result_code == UPLL_RC_ERR_NO_SUCH_NAME ||
         result_code == UPLL_RC_ERR_NO_SUCH_DATATYPE ||
@@ -137,8 +137,8 @@ UpplReturnCode IPCClientLogicalHandler::CheckInUseInLogical(
     pfc_log_error("Unable to close ipc connection");
   }
   pfc_log_debug("in_use value : %d", in_use);
-  if (return_code == UPPL_RC_SUCCESS && in_use == 1)
-    return UPPL_RC_ERR_CFG_SEMANTIC;
+  if (return_code == UNC_RC_SUCCESS && in_use == 1)
+    return UNC_UPPL_RC_ERR_CFG_SEMANTIC;
   return return_code;
 }
 
index ee8e9fcd5486233382a03076c22b5ca6fede9005..cbdc076c2133b1bf9f6426a594ab654b4ba4e484 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -167,7 +167,7 @@ string IPCConnectionManager::get_uppl_service_name() {
 /**
  * @Description : Posts the event to the client
  * @param[in]   : pointer to Serverevent
- * @return      : UPPL_RC_SUCCESS
+ * @return      : UNC_RC_SUCCESS
  **/
 uint32_t IPCConnectionManager::SendEvent(ServerEvent *evt) {
   uint32_t ret = ipc_server_handler_->SendEvent(evt);
@@ -177,10 +177,10 @@ uint32_t IPCConnectionManager::SendEvent(ServerEvent *evt) {
 
 /**
  * @Description : Frees up the allocated memory
- * @return      : UPPL_RC_SUCCESS - if the allocated memory is freed
+ * @return      : UNC_RC_SUCCESS - if the allocated memory is freed
  *                successfully
  **/
-UpplReturnCode IPCConnectionManager::Finalize() {
+UncRespCode IPCConnectionManager::Finalize() {
   if (ipc_server_handler_ != NULL)
     IPCServerHandler::release_ipc_server_handler();
   if (ipc_client_logical_handler_ != NULL)
@@ -189,17 +189,17 @@ UpplReturnCode IPCConnectionManager::Finalize() {
   ipc_client_logical_handler_ = NULL;
   notfn_timer_id_.clear();
   controller_in_audit_.clear();
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**
  * @Description : This function is used for notification manager subscription
  *                to IPC event handler
- * @return      : UPPL_RC_SUCCESS  - if the IPC Event subscription notification
- *                is successful else UPPL_RC_ERR_NOTIFICATION_HANDLING_FAILED 
+ * @return      : UNC_RC_SUCCESS  - if the IPC Event subscription notification
+ *                is successful else UNC_UPPL_RC_ERR_NOTIFICATION_HANDLING_FAILED 
  *                is returned if event subscription notification failed
  **/
-UpplReturnCode IPCConnectionManager::SendEventSubscription() {
+UncRespCode IPCConnectionManager::SendEventSubscription() {
   // Get Physical layer instance
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
   IpcEventAttr attr_pfc, attr_vnp, attr_odc;
@@ -207,15 +207,15 @@ UpplReturnCode IPCConnectionManager::SendEventSubscription() {
   // Add events to mask
   if ((mask.add(UNC_PHYSICAL_EVENTS)) != 0) {
     pfc_log_error("add() failed for UNC_PHYSICAL_EVENTS\n");
-    return UPPL_RC_ERR_NOTIFICATION_HANDLING_FAILED;
+    return UNC_UPPL_RC_ERR_NOTIFICATION_HANDLING_FAILED;
   }
   if ((mask.add(UNC_ALARMS)) != 0) {
     pfc_log_error("add() failed for UNC_ALARMS\n");
-    return UPPL_RC_ERR_NOTIFICATION_HANDLING_FAILED;
+    return UNC_UPPL_RC_ERR_NOTIFICATION_HANDLING_FAILED;
   }
   if ((mask.add(UNC_CTLR_STATE_EVENTS)) != 0) {
     pfc_log_error("add() failed for UNC_CTLR_STATE_EVENTS\n");
-    return UPPL_RC_ERR_NOTIFICATION_HANDLING_FAILED;
+    return UNC_UPPL_RC_ERR_NOTIFICATION_HANDLING_FAILED;
   }
   attr_pfc.setPriority(150);
   attr_vnp.setPriority(150);
@@ -223,7 +223,7 @@ UpplReturnCode IPCConnectionManager::SendEventSubscription() {
 
   if ((attr_pfc.addTarget(PFCDRIVER_IPC_SVC_NAME, mask)) != 0) {
     pfc_log_error("addTarget() failed for PFC driver\n");
-    return UPPL_RC_ERR_NOTIFICATION_HANDLING_FAILED;
+    return UNC_UPPL_RC_ERR_NOTIFICATION_HANDLING_FAILED;
   }
   // Notification manager event is registered
   physical_layer->Module::addIpcEventHandler(
@@ -233,7 +233,7 @@ UpplReturnCode IPCConnectionManager::SendEventSubscription() {
   pfc_log_debug("Event Subscribed for PFC driver");
   if ((attr_vnp.addTarget(VNPDRIVER_IPC_SVC_NAME, mask)) != 0) {
     pfc_log_error("addTarget() failed for OVERLAY driver\n");
-    return UPPL_RC_ERR_NOTIFICATION_HANDLING_FAILED;
+    return UNC_UPPL_RC_ERR_NOTIFICATION_HANDLING_FAILED;
   }
   physical_layer->Module::addIpcEventHandler(
       VNPDRIVER_IPC_CHN_NAME,
@@ -244,7 +244,7 @@ UpplReturnCode IPCConnectionManager::SendEventSubscription() {
   // Notification manager for ODC
   if ((attr_odc.addTarget(ODCDRIVER_IPC_SVC_NAME, mask)) != 0) {
     pfc_log_error("addTarget() failed for ODC driver\n");
-    return UPPL_RC_ERR_NOTIFICATION_HANDLING_FAILED;
+    return UNC_UPPL_RC_ERR_NOTIFICATION_HANDLING_FAILED;
   }
   physical_layer->Module::addIpcEventHandler(
       ODCDRIVER_IPC_CHN_NAME,
@@ -252,18 +252,18 @@ UpplReturnCode IPCConnectionManager::SendEventSubscription() {
       &attr_odc);
 
   pfc_log_debug("Event Subscribed for ODC driver");
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**
  * @Description : This function is used for notification manager cancel
  *                subscription from IPC event handler
- * @return      : UPPL_RC_SUCCESS - if event subscription is cancelled
+ * @return      : UNC_RC_SUCCESS - if event subscription is cancelled
  *                successfully from IPC Event Handler 
- *                else UPPL_RC_ERR_NOTIFICATION_HANDLING_FAILED
+ *                else UNC_UPPL_RC_ERR_NOTIFICATION_HANDLING_FAILED
  *                will be returned
  **/
-UpplReturnCode  IPCConnectionManager::CancelEventSubscription() {
+UncRespCode  IPCConnectionManager::CancelEventSubscription() {
   // Get Physical layer instance
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
   // Remove the Event Handler
@@ -271,25 +271,25 @@ UpplReturnCode  IPCConnectionManager::CancelEventSubscription() {
       get_notification_manager(UNC_CT_PFC)))
       != 0) {
     pfc_log_error("removeIpcEventHandler() failed\n");
-    return UPPL_RC_ERR_NOTIFICATION_HANDLING_FAILED;
+    return UNC_UPPL_RC_ERR_NOTIFICATION_HANDLING_FAILED;
   }
   // Remove the Event Handler
   if ((physical_layer->Module::removeIpcEventHandler(
       get_notification_manager(UNC_CT_VNP)))
       != 0) {
     pfc_log_error("removeIpcEventHandler() failed\n");
-    return UPPL_RC_ERR_NOTIFICATION_HANDLING_FAILED;
+    return UNC_UPPL_RC_ERR_NOTIFICATION_HANDLING_FAILED;
   }
   // Remove the Event Handler for ODC Driver
   if ((physical_layer->Module::removeIpcEventHandler(
       get_notification_manager(UNC_CT_ODC)))
       != 0) {
     pfc_log_error("removeIpcEventHandler() for ODC Driver failed\n");
-    return UPPL_RC_ERR_NOTIFICATION_HANDLING_FAILED;
+    return UNC_UPPL_RC_ERR_NOTIFICATION_HANDLING_FAILED;
   }
 
   NotificationManager::release_notification_manager();
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**
@@ -315,11 +315,11 @@ void IPCConnectionManager::addControllerToAuditList(string controller_name) {
  * @Description : This function is used for remove controller from
  *                controller_in_audit vector
  * @param[in]   : controller_name of type string
- * @return      : UPPL_RC_SUCCESS  - if controller is removed successfully
- *                from audit list else UPPL_RC_ERR_AUDIT_FAILURE will be
+ * @return      : UNC_RC_SUCCESS  - if controller is removed successfully
+ *                from audit list else UNC_UPPL_RC_ERR_AUDIT_FAILURE will be
  *                returned if controller is not available in the vector
  **/
-UpplReturnCode IPCConnectionManager::removeControllerFromAuditList(
+UncRespCode IPCConnectionManager::removeControllerFromAuditList(
     string controller_name) {
   pfc_log_debug("Executing removeControllerFromAuditList");
   vector<string> :: iterator iter = find(controller_in_audit_.begin(),
@@ -327,7 +327,7 @@ UpplReturnCode IPCConnectionManager::removeControllerFromAuditList(
                                          controller_name);
   if (iter == controller_in_audit_.end()) {
     pfc_log_debug("Controller is not available in vector");
-    return UPPL_RC_ERR_AUDIT_FAILURE;
+    return UNC_UPPL_RC_ERR_AUDIT_FAILURE;
   } else {
     controller_in_audit_.erase(iter);
     pfc_log_debug("Removed %s from list", controller_name.c_str());
@@ -337,9 +337,9 @@ UpplReturnCode IPCConnectionManager::removeControllerFromAuditList(
   if (timer_iter != notfn_timer_id_.end()) {
     notfn_timer_id_.erase(timer_iter);
   } else {
-    return UPPL_RC_ERR_AUDIT_FAILURE;
+    return UNC_UPPL_RC_ERR_AUDIT_FAILURE;
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**
@@ -365,9 +365,9 @@ pfc_bool_t IPCConnectionManager::IsControllerInAudit(string controller_name) {
  * @Description : This function is used for start the timer to receive
  *                notification after audit end
  * @param[in]   : controller_name of type string
- * @return      : UPPL_RC_SUCCESS if timer is started successfully for audit
+ * @return      : UNC_RC_SUCCESS if timer is started successfully for audit
  *                as well as for task queue else
- *                UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION if there is error while
+ *                UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION if there is error while
  *                creating task queue or timer for task queue
  **/
 uint32_t IPCConnectionManager::StartNotificationTimer(
@@ -382,10 +382,10 @@ uint32_t IPCConnectionManager::StartNotificationTimer(
   map<string, TaskQueue *> :: iterator task_iter
       = queue_obj_.find(controller_name);
   if ((timer_iter != timer_obj_.end()) || (task_iter != queue_obj_.end())) {
-    pfc_log_warn("StartNotificationTimer::Timer object found for controller %s",
-        controller_name.c_str());
-    UpplReturnCode cancel_ret = CancelTimer(controller_name);
-    if (cancel_ret != UPPL_RC_SUCCESS) {
+    pfc_log_warn("StartNotificationTimer::Timer object found "
+                 "for controller %s", controller_name.c_str());
+    UncRespCode cancel_ret = CancelTimer(controller_name);
+    if (cancel_ret != UNC_RC_SUCCESS) {
       pfc_log_error("StartNotificationTimer::Failure in cancelling "
           "timer for controller %s", controller_name.c_str());
     }
@@ -397,12 +397,13 @@ uint32_t IPCConnectionManager::StartNotificationTimer(
   TaskQueue *taskq = TaskQueue::create(no_tasks);
   if (taskq == NULL) {
     pfc_log_fatal("Error while creating task queue");
-    return UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+    return UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
   }
   tqmap_rc = queue_obj_.insert(
           std::pair<std::string, TaskQueue*>(controller_name, taskq));
   if (tqmap_rc.second == false) {
-    pfc_log_error("StartNotificationTimer - Error in inserting TaskQueue object");
+    pfc_log_error("StartNotificationTimer - Error in "
+                  "inserting TaskQueue object");
   }
   AuditNotification func_obj;
   func_obj.controller_name_ = controller_name;
@@ -414,7 +415,7 @@ uint32_t IPCConnectionManager::StartNotificationTimer(
   Timer *notfn_timer = pfc::core::Timer::create(taskq->getId());
   if (notfn_timer == NULL) {
     pfc_log_fatal("Error while creating timer for the task queue");
-    return UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+    return UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
   }
   tmap_rc = timer_obj_.insert(
           std::pair<string, Timer*>(controller_name, notfn_timer));
@@ -423,7 +424,8 @@ uint32_t IPCConnectionManager::StartNotificationTimer(
   }
   uint32_t ret = notfn_timer->post(&timeout, timer_func, &time_out_id);
   if (ret != 0) {
-    pfc_log_error("StartNotificationTimer - Failure occurred in starting timer");
+    pfc_log_error("StartNotificationTimer - Failure occurred in"
+                  " starting timer");
   } else {
     pfc_log_debug("Setting time_out_id %d, taskq id %d controller_name %s",
                   time_out_id, taskq->getId(), controller_name.c_str());
@@ -436,13 +438,13 @@ uint32_t IPCConnectionManager::StartNotificationTimer(
  * @Description : This function is used to cancel the timer and 
  *                delete associated objects
  * @param[in]   : controller_name of type string
- * @return      : UPPL_RC_SUCCESS - if timer object and task object 
- *                are deleted successfully else UPPL_RC_ERR_AUDIT_FAILURE
+ * @return      : UNC_RC_SUCCESS - if timer object and task object 
+ *                are deleted successfully else UNC_UPPL_RC_ERR_AUDIT_FAILURE
  *                will be returned
  **/
-UpplReturnCode IPCConnectionManager::CancelTimer(string controller_name) {
+UncRespCode IPCConnectionManager::CancelTimer(string controller_name) {
   pfc_log_debug("Executing CancelTimer()");
-  UpplReturnCode ret = UPPL_RC_SUCCESS;
+  UncRespCode ret = UNC_RC_SUCCESS;
   uint32_t time_out_id = getTimeOutId(controller_name);
   map<string, Timer *> :: iterator timer_iter =
       timer_obj_.find(controller_name);
index 1e44c2e54927df8f9def76517591c32b2f58d165..3c993ee67cf50f53e165fb79a4f228950e83abfd 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -47,7 +47,7 @@ pfc_ipcresp_t IPCServerHandler::IpcService(ServerSession &session,
                                            pfc_ipcid_t service_id) {
   if (service_id > 2) {
     pfc_log_error("Fatal Error:Invalid service id");
-    return UPPL_RC_ERR_BAD_REQUEST;
+    return UNC_UPPL_RC_ERR_BAD_REQUEST;
   } else {
     PhysicalLayer* physical_layer = PhysicalLayer::get_instance();
     uint32_t err = physical_layer->get_physical_core()->
index 05dd3b61cd7dabf50334dee41d25a16e548ed7f9..ae556b6210acdb2ef269b09a4daadfb4ee59d624 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -354,7 +354,7 @@ string IpctUtil::get_string(const val_switch_st &val_st) {
   char ip_value[INET6_ADDRSTRLEN];
   memset(&ip_value, '\0', INET6_ADDRSTRLEN);
   inet_ntop(AF_INET6, &v.ipv6_address.s6_addr, ip_value, INET6_ADDRSTRLEN);
-  ss << "KT_SWITCH:[VAL: "
+  ss << "KT_SWITCH:[VAL_SW_ST: "
       << "description:" << v.description
       << ", model:" << v.model
       << ", ip_address:" << ODBCMUtils::get_ip_string(v.ip_address.s_addr)
@@ -373,6 +373,54 @@ string IpctUtil::get_string(const val_switch_st &val_st) {
   return ss.str();
 }
 
+/** get_string
+ * @Description : this function returns the values contained in the val_st
+ *                structure
+ * @param[in]   : val_st - structure variable of type val_switch_st 
+ * @return      : attributes in value structure of switch are returned 
+ **/
+string IpctUtil::get_string(const val_switch_st_detail_t &val_stats) {
+  stringstream ss;
+  val_switch_st_t val_st = val_stats.switch_st_val;
+  val_switch_t v = val_st.switch_val;
+  stringstream valid;
+  for (unsigned int i = 0 ; i < 6 ; ++i) {
+    valid << PhyUtil::uint8tostr(v.valid[i]);
+  }
+  stringstream st_valid;
+  for (unsigned int i = 0 ; i < 6 ; ++i) {
+    st_valid << PhyUtil::uint8tostr(val_st.valid[i]);
+  }
+  stringstream stdet_valid;
+  for (unsigned int i = 0 ; i < 2 ; ++i) {
+    stdet_valid << PhyUtil::uint8tostr(val_stats.valid[i]);
+  }
+  /* A string of contiguous zero fields in the 
+   preferred form can be shown as "::" */
+  char ip_value[INET6_ADDRSTRLEN];
+  memset(&ip_value, '\0', INET6_ADDRSTRLEN);
+  inet_ntop(AF_INET6, &v.ipv6_address.s6_addr, ip_value, INET6_ADDRSTRLEN);
+  ss << "KT_SWITCH:[VAL_SW_ST: "
+      << "description:" << v.description
+      << ", model:" << v.model
+      << ", ip_address:" << ODBCMUtils::get_ip_string(v.ip_address.s_addr)
+  << ", ipv6_address:" << ip_value
+  << ", admin_status:" << PhyUtil::uint8tostr(v.admin_status)
+  << ", DomainName:" << v.domain_name
+  << ", valid:" << valid.str()
+  << ", oper_status:" << PhyUtil::uint8tostr(val_st.oper_status)
+  << ", manufacturer:" << val_st.manufacturer
+  << ", hardware:" << val_st.hardware
+  << ", software:" << val_st.software
+  << ", alarms_status:" << PhyUtil::uint64tostr(val_st.alarms_status)
+  << ", st_valid:" << st_valid.str() << endl
+  << ", flow_count:" << val_stats.flow_count
+  << ", stdet_valid:" << stdet_valid.str()
+  << "]"
+  << endl;
+  return ss.str();
+}
+
 /*** KT_PORT **********/
 /** 
  * @Description : This function returns the key names from
@@ -411,7 +459,7 @@ string IpctUtil::get_string(const val_port_st_t &v) {
            v.mac_address[0], v.mac_address[1], v.mac_address[2],
            v.mac_address[3], v.mac_address[4], v.mac_address[5]);
 
-  ss << "KT_PORT:[VAL: "
+  ss << "KT_PORT:[VAL_PORT_ST: "
       << "port_number:" << v.port.port_number
       << ", description:" << v.port.description
       << ", admin_status:" << PhyUtil::uint8tostr(v.port.admin_status)
@@ -431,6 +479,60 @@ string IpctUtil::get_string(const val_port_st_t &v) {
   return ss.str();
 }
 
+/** 
+ * @Description : This function returns the values from the value structure
+ * @param[in]   : v - structure variable of type val_port_t  
+ * @return      : attributes in value structure of val_port_t are returned
+ **/
+string IpctUtil::get_string(const val_port_stats_t &v) {
+  stringstream ss;
+  stringstream valid;
+  for (unsigned int i = 0 ; i < 4; ++i) {
+    valid << PhyUtil::uint8tostr(v.port_st_val.port.valid[i]);
+  }
+  stringstream st_valid;
+  for (unsigned int i = 0; i < 8; ++i) {
+    st_valid << PhyUtil::uint8tostr(v.port_st_val.valid[i]);
+  }
+  stringstream stats_valid;
+  for (unsigned int i = 0; i < 13; ++i) {
+    stats_valid << PhyUtil::uint8tostr(v.valid[i]);
+  }
+  char macaddr[18];
+  memset(&macaddr, '\0', 18);
+  snprintf(macaddr, sizeof(macaddr), "%02x%02x.%02x%02x.%02x%02x",
+           v.port_st_val.mac_address[0], v.port_st_val.mac_address[1],
+           v.port_st_val.mac_address[2], v.port_st_val.mac_address[3],
+           v.port_st_val.mac_address[4], v.port_st_val.mac_address[5]);
+
+  ss << "KT_PORT:[VAL_PORT_STATS: "
+      << "port_number:" << v.port_st_val.port.port_number
+      << ", description:" << v.port_st_val.port.description
+  << ", admin_status:" << PhyUtil::uint8tostr
+  (v.port_st_val.port.admin_status)
+  << ", trunk_allowed_vlan:" << PhyUtil::uint8tostr
+  (v.port_st_val.port.trunk_allowed_vlan)
+  << ", valid:" << valid.str()
+  << ", oper_status:" << PhyUtil::uint8tostr(v.port_st_val.oper_status)
+  << ", mac_address:" << macaddr
+  << ", direction:" << PhyUtil::uint8tostr(v.port_st_val.direction)
+  << ", duplex:" << PhyUtil::uint8tostr(v.port_st_val.duplex)
+  << ", speed:" << PhyUtil::uint64tostr(v.port_st_val.speed)
+  << ", alarms_status:" << PhyUtil::uint64tostr(v.port_st_val.alarms_status)
+  << ", logical_port_id:" << v.port_st_val.logical_port_id
+  << ", st_valid:" << st_valid.str() << endl
+  << ", rx_packets:" << v.rx_packets << ", tx_packets:" << v.tx_packets
+  << ", rx_bytes:" << v.rx_bytes << ", tx_bytes:" << v.tx_bytes
+  << ", rx_dropped:" << v.rx_dropped << ", tx_dropped:" << v.tx_dropped
+  << ", rx_errors:" << v.rx_errors << ", tx_errors:" << v.tx_errors
+  << ", rx_frame_err:" << v.rx_frame_err << ", rx_over_err:" << v.rx_over_err
+  << ", rx_crc_err:" << v.rx_crc_err << ", collisions:" << v.collisions
+  << ", stats_valid:" << stats_valid.str()
+  << "]"
+  << endl;
+  return ss.str();
+}
+
 /** 
  * @Description : This function returns the values from the value structure
  * @param[in]   : v - structure variable of type val_port_t  
@@ -727,3 +829,49 @@ string IpctUtil::get_string(const val_port_alarm_t  &v) {
       << endl;
   return ss.str();
 }
+
+/** 
+ * @Description : This function returns the values from the value structure
+ * @param[in]   : val_obj - structure variable of type val_df_data_flow_t
+ * @return      : attributes in value structure of val_df_data_flow_t are
+ * returned
+ **/
+string IpctUtil::get_string(const val_df_data_flow_t &val_obj) {
+  stringstream ss;
+  stringstream valid;
+  for (unsigned int i = 0; i < 2 ; ++i) {
+    valid << PhyUtil::uint8tostr(val_obj.valid[i]);
+  }
+  ss << "KT_CTR_DATAFLOW:[VAL: \n"
+      << " reason: " << val_obj.reason
+      << " controller_count: " << val_obj.controller_count
+      << "\n"
+      << " valid: " << valid.str()
+      << " ]"
+      << endl;
+  return ss.str();
+}
+
+/** 
+ * @Description : This function returns the values from the value structure
+ * @param[in]   : val_obj - structure variable of type val_df_data_flow_t
+ * @return      : attributes in value structure of val_df_data_flow_t are
+ * returned
+ **/
+string IpctUtil::get_string(const val_df_data_flow_st_t &val_obj) {
+  stringstream ss;
+  stringstream valid_st;
+  for (unsigned int i = 0; i < 3 ; ++i) {
+    valid_st << PhyUtil::uint8tostr(val_obj.valid[i]);
+  }
+  ss << "KT_CTR_DATAFLOW:[VAL: \n"
+      << " packets: " << PhyUtil::uint64tostr(val_obj.packets)
+      << ", octets: " << PhyUtil::uint64tostr(val_obj.octets)
+      << ", duration: " << val_obj.duration
+      << "\n"
+      << " valid_st: " << valid_st.str()
+      << " ]"
+      << endl;
+  return ss.str();
+}
+
index 4d70aa926006e4ca5f0e053766b0ad86cfb8e7b6..f2c75f9daa1e37fcbc092f22640793654d3d3184 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
 #include "itc_kt_link.hh"
 #include "itc_kt_boundary.hh"
 #include "ipc_client_configuration_handler.hh"
+#include "tclib_module.hh"
+
+using unc::tclib::TcLibModule;
+
 
 namespace unc {
 namespace uppl {
@@ -53,11 +57,11 @@ AuditRequest::~AuditRequest() {
  * @param[in]   : driver_id - Specifies one of the following controller type,
  *                PFC,VNP,Bypass    
  *                controller_id - controller name to which the audit to start
- * @return      : UPPL_RC_SUCCESS if the Audit is success for the controller 
- *                or UPPL_RC_ERR_*
+ * @return      : UNC_RC_SUCCESS if the Audit is success for the controller 
+ *                or UNC_UPPL_RC_ERR_*
  * */
 
-UpplReturnCode AuditRequest::StartAudit(OdbcmConnectionHandler *db_conn,
+UncRespCode AuditRequest::StartAudit(OdbcmConnectionHandler *db_conn,
                                         unc_keytype_ctrtype_t driver_id,
                                         string controller_id) {
   pfc_log_info("Processing StartAudit");
@@ -74,10 +78,10 @@ UpplReturnCode AuditRequest::StartAudit(OdbcmConnectionHandler *db_conn,
   /* Checks controller existence and its oper status */
   pfc_log_debug("Get controller oper Status");
   val_ctr_st_t obj_val_ctr_st;
-  UpplReturnCode read_status =
+  UncRespCode read_status =
       KtObj.GetOperStatus(db_conn, UNC_DT_RUNNING,
                           reinterpret_cast<void *>(&obj_key_ctr), oper_status);
-  if (read_status == UPPL_RC_SUCCESS) {
+  if (read_status == UNC_RC_SUCCESS) {
     // Checking the audit precondition
     if (oper_status == UPPL_CONTROLLER_OPER_DOWN ||
         oper_status == UPPL_CONTROLLER_OPER_UP ||
@@ -85,23 +89,26 @@ UpplReturnCode AuditRequest::StartAudit(OdbcmConnectionHandler *db_conn,
       obj_val_ctr_st.oper_status = UPPL_CONTROLLER_OPER_AUDITING;
       memset(obj_val_ctr_st.valid, '\0', sizeof(obj_val_ctr_st.valid));
       obj_val_ctr_st.valid[kIdxOperStatus] = 1;
-      FN_START_TIME("Audit::HandleOperStatus", "Controller");
-      UpplReturnCode handle_oper_status = KtObj.HandleOperStatus(
+      UncRespCode handle_oper_status = KtObj.HandleOperStatus(
           db_conn, UNC_DT_RUNNING, reinterpret_cast<void *>(&obj_key_ctr),
           reinterpret_cast<void *>(&obj_val_ctr_st),
           true);
       pfc_log_debug("Handle Oper Status return: %d", handle_oper_status);
-      FN_END_TIME("Audit::HandleOperStatus", "Controller");
-      return UPPL_RC_SUCCESS;
+      return UNC_RC_SUCCESS;
     } else {
-      // return UPPL_RC_ERR_AUDIT_FAILURE;
+      // return UNC_UPPL_RC_ERR_AUDIT_FAILURE;
     }
   } else {
     pfc_log_error("Unable to get controller oper status");
-    return UPPL_RC_ERR_AUDIT_FAILURE;
+    TcLibModule* tclib_ptr = static_cast<TcLibModule*>
+        (TcLibModule::getInstance(TCLIB_MODULE_NAME));
+    tclib_ptr->TcLibWriteControllerInfo(controller_id.c_str(),
+                                        UNC_RC_INTERNAL_ERR,
+                                        0);
+    return UNC_UPPL_RC_ERR_AUDIT_FAILURE;
   }
 
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**StartAuditTransaction
@@ -111,15 +118,15 @@ UpplReturnCode AuditRequest::StartAudit(OdbcmConnectionHandler *db_conn,
  *                driver_id - Specifies one of the following controller type-
  *                PFC,VNP,Bypass
  *                controller_id - controller name in which the audit to start
- * @return      : UPPL_RC_SUCCESS if the AuditTransaction is success for the
- *                controller or UPPL_RC_ERR_* for audit transaction failure
+ * @return      : UNC_RC_SUCCESS if the AuditTransaction is success for the
+ *                controller or UNC_UPPL_RC_ERR_* for audit transaction failure
  * */
-UpplReturnCode AuditRequest::StartAuditTransaction(
+UncRespCode AuditRequest::StartAuditTransaction(
     uint32_t session_id,
     unc_keytype_ctrtype_t driver_id,
     string controller_id)  {
   pfc_log_info("Returning success for StartAuditTransaction");
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**HandleAuditVoteRequest
@@ -131,10 +138,10 @@ UpplReturnCode AuditRequest::StartAuditTransaction(
  *                PFC,VNP,Bypass
  *                controller_id - controller name in which the audit occurs
  * @param[out]  : driver_info - contains the controller list
- * @return      : UPPL_RC_SUCCESS if the AuditVoteRequest is success or 
- *                UPPL_RC_ERR_* if AuditVoteRequest is failed.
+ * @return      : UNC_RC_SUCCESS if the AuditVoteRequest is success or 
+ *                UNC_UPPL_RC_ERR_* if AuditVoteRequest is failed.
  * */
-UpplReturnCode AuditRequest::HandleAuditVoteRequest(
+UncRespCode AuditRequest::HandleAuditVoteRequest(
     OdbcmConnectionHandler *db_conn,
     uint32_t session_id,
     uint32_t driver_id,
@@ -153,14 +160,19 @@ UpplReturnCode AuditRequest::HandleAuditVoteRequest(
          controller_id.length()+1);
   vector<void *> vect_ctr_key, vect_ctr_val;
   vect_ctr_key.push_back(reinterpret_cast<void *>(&obj_key_ctr));
-  UpplReturnCode read_status = KtObj.ReadInternal(
+  UncRespCode read_status = KtObj.ReadInternal(
       db_conn, vect_ctr_key, vect_ctr_val,
       (unc_keytype_datatype_t)UNC_DT_RUNNING,
       UNC_OP_READ);
-  if (read_status != UPPL_RC_SUCCESS) {
+  if (read_status != UNC_RC_SUCCESS) {
     pfc_log_error("Could not get details for controller %s",
                   controller_id.c_str());
-    return UPPL_RC_ERR_AUDIT_FAILURE;
+    TcLibModule* tclib_ptr = static_cast<TcLibModule*>
+        (TcLibModule::getInstance(TCLIB_MODULE_NAME));
+    tclib_ptr->TcLibWriteControllerInfo(controller_id.c_str(),
+                                        UNC_RC_INTERNAL_ERR,
+                                        0);
+    return UNC_UPPL_RC_ERR_AUDIT_FAILURE;
   }
   pfc_log_debug("Read operation is success");
   val_ctr_st_t *obj_val_ctr =
@@ -190,7 +202,7 @@ UpplReturnCode AuditRequest::HandleAuditVoteRequest(
     delete obj_val_ctr;
     obj_val_ctr = NULL;
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**HandleAuditGlobalCommit
@@ -202,11 +214,11 @@ UpplReturnCode AuditRequest::HandleAuditVoteRequest(
  *                controller_id - controller name in which the audit occurs
  *                driver_info - contains the controller list
  * @param[out]  : audit result - specifies the TC audit result 
- * @return      : UPPL_RC_SUCCESS if the AuditGlobalCommit is success for the
- *                controller or UPPL_RC_ERR_* for the failure
+ * @return      : UNC_RC_SUCCESS if the AuditGlobalCommit is success for the
+ *                controller or UNC_UPPL_RC_ERR_* for the failure
  * */
 
-UpplReturnCode AuditRequest::HandleAuditGlobalCommit(
+UncRespCode AuditRequest::HandleAuditGlobalCommit(
     uint32_t session_id,
     uint32_t driver_id,
     string controller_id,
@@ -214,7 +226,7 @@ UpplReturnCode AuditRequest::HandleAuditGlobalCommit(
     TcAuditResult& audit_result) {
   pfc_log_info("Returing Success for HandleAuditGlobalCommit");
   audit_result = unc::tclib::TC_AUDIT_SUCCESS;
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 
@@ -226,17 +238,17 @@ UpplReturnCode AuditRequest::HandleAuditGlobalCommit(
  *                PFC,VNP,Bypass
  *                controller_id - controller name in which the audit occurs
  *                operation_phase - 
- * @return      : UPPL_RC_SUCCESS if the AuditGlobalAbort is success for the
- *                controller or UPPL_RC_ERR_* for the failure 
+ * @return      : UNC_RC_SUCCESS if the AuditGlobalAbort is success for the
+ *                controller or UNC_UPPL_RC_ERR_* for the failure 
  * */
 
-UpplReturnCode AuditRequest::HandleAuditAbort(
+UncRespCode AuditRequest::HandleAuditAbort(
     uint32_t session_id,
     unc_keytype_ctrtype_t driver_id,
     string controller_id,
     TcAuditOpAbortPhase operation_phase) {
   pfc_log_info("Returing success for HandleAuditAbort");
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**EndAuditTransaction
@@ -245,15 +257,15 @@ UpplReturnCode AuditRequest::HandleAuditAbort(
  *                driver_id - Specifies one of the following controller type-
  *                PFC,VNP,Bypass
  *                controller_id - controller name in which the audit occurs 
- * @return      : UPPL_RC_SUCCESS if the EndAuditTransaction is success for the
- *                controller or UPPL_RC_ERR_* for the failure
+ * @return      : UNC_RC_SUCCESS if the EndAuditTransaction is success for the
+ *                controller or UNC_UPPL_RC_ERR_* for the failure
  * */
-UpplReturnCode AuditRequest::EndAuditTransaction(
+UncRespCode AuditRequest::EndAuditTransaction(
     uint32_t session_id,
     unc_keytype_ctrtype_t& drivertype,
     string controller_id) {
   pfc_log_info("Returning success for EndAuditTransaction");
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**EndAudit
@@ -263,10 +275,10 @@ UpplReturnCode AuditRequest::EndAuditTransaction(
  *                PFC,VNP,Bypass
  *                controller_id - controller name in which the audit occurs
  *                audit result - specifies the TC audit result
- * @return      : UPPL_RC_SUCCESS if the End Audit is success for the controller
- *                or returns UPPL_RC_ERR_ if the Audit is failed
+ * @return      : UNC_RC_SUCCESS if the End Audit is success for the controller
+ *                or returns UNC_UPPL_RC_ERR_ if the Audit is failed
  * */
-UpplReturnCode AuditRequest::EndAudit(OdbcmConnectionHandler *db_conn,
+UncRespCode AuditRequest::EndAudit(OdbcmConnectionHandler *db_conn,
                                       unc_keytype_ctrtype_t driver_id,
                                       string controller_id,
                                       TcAuditResult audit_result) {
@@ -286,14 +298,12 @@ UpplReturnCode AuditRequest::EndAudit(OdbcmConnectionHandler *db_conn,
     obj_val_ctr_st.oper_status = oper_status;
     memset(obj_val_ctr_st.valid, '\0', sizeof(obj_val_ctr_st.valid));
     obj_val_ctr_st.valid[kIdxOperStatus] = 1;
-    FN_START_TIME("Audit::HandleOperStatus", "Controller");
-    UpplReturnCode handle_oper_status = kt_controller.HandleOperStatus(
+    UncRespCode handle_oper_status = kt_controller.HandleOperStatus(
         db_conn, UNC_DT_RUNNING,
         key_ctr_prt,
         reinterpret_cast<void *>(&obj_val_ctr_st),
         true);
     pfc_log_debug("Handle Oper Status return: %d", handle_oper_status);
-    FN_END_TIME("Audit::HandleOperStatus", "Controller");
     // Add the controller to controller_in_audit vector
     IPCConnectionManager *ipc_mgr = PhysicalLayer::get_instance()->
         get_ipc_connection_manager();
@@ -313,25 +323,25 @@ UpplReturnCode AuditRequest::EndAudit(OdbcmConnectionHandler *db_conn,
     obj_val_ctr_st.oper_status = oper_status;
     memset(obj_val_ctr_st.valid, '\0', sizeof(obj_val_ctr_st.valid));
     obj_val_ctr_st.valid[kIdxOperStatus] = 1;
-    UpplReturnCode handle_oper_status = kt_controller.HandleOperStatus(
+    UncRespCode handle_oper_status = kt_controller.HandleOperStatus(
         db_conn, UNC_DT_RUNNING,
         key_ctr_prt,
         reinterpret_cast<void *>(&obj_val_ctr_st),
         true);
     pfc_log_debug("Handle Oper Status return: %d", handle_oper_status);
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**MergeAuditDbToRunning
  * @Description : This function is used to Merge audit and running db at
  *                end Audit and clear the import db.
  * @param[in]   : controller name - controller name in which the audit occurs
- * @return      : UPPL_RC_SUCCESS if the updation of running DB with the
- *                imported value is success or UPPL_RC_ERR_* for failure of 
+ * @return      : UNC_RC_SUCCESS if the updation of running DB with the
+ *                imported value is success or UNC_UPPL_RC_ERR_* for failure of 
  *                merging
  * */
-UpplReturnCode AuditRequest::MergeAuditDbToRunning(
+UncRespCode AuditRequest::MergeAuditDbToRunning(
     OdbcmConnectionHandler *db_conn,
     string controller_name) {
   pfc_log_info("MergeAuditDbToRunning-controller_name: %s",
@@ -339,13 +349,13 @@ UpplReturnCode AuditRequest::MergeAuditDbToRunning(
   // Check for MergeImportRunning Lock
   ScopedReadWriteLock eventDoneLock(PhysicalLayer::get_events_done_lock_(),
                                     PFC_TRUE);  // write lock
-  UpplReturnCode return_code = UPPL_RC_SUCCESS;
+  UncRespCode return_code = UNC_RC_SUCCESS;
   // Remove the controller_name from controller_in_audit list
   return_code = PhysicalLayer::get_instance()->get_ipc_connection_manager()->
       removeControllerFromAuditList(controller_name);
-  if (return_code != UPPL_RC_SUCCESS) {
+  if (return_code != UNC_RC_SUCCESS) {
     // Not required to do merge, return SUCCESS
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   for (unsigned int index = 0;
       index < STATE_OBJECTS; ++index) {
@@ -364,20 +374,20 @@ UpplReturnCode AuditRequest::MergeAuditDbToRunning(
     key_import.push_back(key_struct);
     vector<void*> val_running, val_import;
     pfc_log_debug("Reading from running db for index %d", index);
-    UpplReturnCode read_running_status = class_pointer->ReadInternal(
+    UncRespCode read_running_status = class_pointer->ReadInternal(
         db_conn, key_running,
         val_running,
         (uint32_t) UNC_DT_RUNNING,
         (uint32_t) UNC_OP_READ_SIBLING_BEGIN);
     // Read from Import DB
     pfc_log_debug("Reading from import db for index %d", index);
-    UpplReturnCode read_import_status = class_pointer->ReadInternal(
+    UncRespCode read_import_status = class_pointer->ReadInternal(
         db_conn, key_import,
         val_import,
         (uint32_t) UNC_DT_IMPORT,
         (uint32_t) UNC_OP_READ_SIBLING_BEGIN);
-    if (read_running_status != UPPL_RC_SUCCESS &&
-        read_import_status != UPPL_RC_SUCCESS) {
+    if (read_running_status != UNC_RC_SUCCESS &&
+        read_import_status != UNC_RC_SUCCESS) {
       pfc_log_debug(
           "Reading values from both import and running db failed for index %d",
           index);
@@ -387,10 +397,10 @@ UpplReturnCode AuditRequest::MergeAuditDbToRunning(
       }
       continue;
     }
-    pfc_log_debug("No.of entries from running db %d",
-                  static_cast<int>(key_running.size()));
-    pfc_log_debug("No.of entries from import db %d",
-                  static_cast<int>(key_import.size()));
+    pfc_log_debug("No.of entries from running db %"
+                  PFC_PFMT_SIZE_T, key_running.size());
+    pfc_log_debug("No.of entries from import db %"
+                  PFC_PFMT_SIZE_T, key_import.size());
     // Iterate RUNNING and compare with IMPORT
     // Update Running if values mismatch with Import
     // Delete entries from Running if not found in Import
@@ -633,9 +643,9 @@ void AuditNotification::operator() ()  {
   pfc_log_debug("Received Audit Notification timer out controller %s",
                 controller_name_.c_str());
   AuditRequest audit_req;
-  UpplReturnCode db_ret = UPPL_RC_SUCCESS;
+  UncRespCode db_ret = UNC_RC_SUCCESS;
   OPEN_DB_CONNECTION(unc::uppl::kOdbcmConnReadWriteSb, db_ret);
-  if (db_ret != UPPL_RC_SUCCESS) {
+  if (db_ret != UNC_RC_SUCCESS) {
     pfc_log_error("Error in opening DB connection");
   } else {
     audit_req.MergeAuditDbToRunning(&db_conn, controller_name_);
@@ -687,19 +697,19 @@ void AuditRequest::UpdateRunningDbWithImportDb(
       // Update running db with import value
       pfc_log_debug("Update running db with import db value");
       void *old_val_struct = NULL;
-      UpplReturnCode update_status = class_pointer->
+      UncRespCode update_status = class_pointer->
           UpdateKeyInstance(
               db_conn, reinterpret_cast<void *>(key_running[iIndex]),
               reinterpret_cast<void *>(val_import[jIndex]),
               (uint32_t)UNC_DT_STATE,
               key_type,
               old_val_struct);
-      if (update_status != UPPL_RC_SUCCESS) {
+      if (update_status != UNC_RC_SUCCESS) {
         pfc_log_error("Update failed for existing key");
         continue;
       }
       // Send value change notification to north bound - val_st
-      UpplReturnCode notfn_status =
+      UncRespCode notfn_status =
           class_pointer->ConfigurationChangeNotification(
               (uint32_t)UNC_DT_STATE,
               key_type,
@@ -707,11 +717,11 @@ void AuditRequest::UpdateRunningDbWithImportDb(
               reinterpret_cast<void *>(key_running[iIndex]),
               reinterpret_cast<void *>(val_running[iIndex]),
               reinterpret_cast<void *>(val_import[jIndex]));
-      if (notfn_status != UPPL_RC_SUCCESS) {
+      if (notfn_status != UNC_RC_SUCCESS) {
         pfc_log_error("Failed sending update notification");
       }
       // Old value structure memory clean up
-      if(old_val_struct != NULL) {
+      if (old_val_struct != NULL) {
         class_pointer->ClearValueStructure(key_type,
                         old_val_struct);
         old_val_struct = NULL;
@@ -721,15 +731,15 @@ void AuditRequest::UpdateRunningDbWithImportDb(
     if (present_in_import == false) {
       // Delete instance from running db
       pfc_log_debug("Delete existing entries from running db");
-      UpplReturnCode delete_status = class_pointer->DeleteKeyInstance(
+      UncRespCode delete_status = class_pointer->DeleteKeyInstance(
           db_conn, reinterpret_cast<void *>(key_running[iIndex]),
           (uint32_t)UNC_DT_STATE,
           key_type);
-      if (delete_status != UPPL_RC_SUCCESS) {
+      if (delete_status != UNC_RC_SUCCESS) {
         pfc_log_error("Delete failed for existing key");
       }
       // Send value change notification to north bound - val_st
-      UpplReturnCode notfn_status =
+      UncRespCode notfn_status =
           class_pointer->ConfigurationChangeNotification(
               (uint32_t)UNC_DT_STATE,
               key_type,
@@ -737,7 +747,7 @@ void AuditRequest::UpdateRunningDbWithImportDb(
               reinterpret_cast<void *>(key_running[iIndex]),
               NULL,
               NULL);
-      if (notfn_status != UPPL_RC_SUCCESS) {
+      if (notfn_status != UNC_RC_SUCCESS) {
         pfc_log_error("Failed sending delete notification");
       }
     }
@@ -778,9 +788,9 @@ void AuditRequest::AddToRunningDbFromImportDb(
       continue;
     }
     // Create instance in running db
-    UpplReturnCode create_status = UPPL_RC_SUCCESS;
+    UncRespCode create_status = UNC_RC_SUCCESS;
     // Validate key
-    UpplReturnCode validate_status = UPPL_RC_SUCCESS;
+    UncRespCode validate_status = UNC_RC_SUCCESS;
     if (index == Notfn_Logical_Member_Port) {
       validate_status = class_pointer->ValidateRequest(
           db_conn,
@@ -794,7 +804,7 @@ void AuditRequest::AddToRunningDbFromImportDb(
           reinterpret_cast<void *>(val_import[iIndex]),
           UNC_OP_CREATE, UNC_DT_STATE, key_type);
     }
-    if (validate_status != UPPL_RC_SUCCESS) {
+    if (validate_status != UNC_RC_SUCCESS) {
       pfc_log_info("Validation failed for index %d", index);
       continue;
     }
@@ -812,9 +822,9 @@ void AuditRequest::AddToRunningDbFromImportDb(
           (uint32_t)UNC_DT_STATE,
           key_type);
     }
-    if (create_status == UPPL_RC_SUCCESS) {
+    if (create_status == UNC_RC_SUCCESS) {
       // Send value change notification to north bound - val_st
-      UpplReturnCode notfn_status = UPPL_RC_SUCCESS;
+      UncRespCode notfn_status = UNC_RC_SUCCESS;
       if (index == Notfn_Logical_Member_Port) {
         notfn_status =
             class_pointer->ConfigurationChangeNotification(
@@ -834,7 +844,7 @@ void AuditRequest::AddToRunningDbFromImportDb(
                 NULL,
                 reinterpret_cast<void *>(val_import[iIndex]));
       }
-      if (notfn_status != UPPL_RC_SUCCESS) {
+      if (notfn_status != UNC_RC_SUCCESS) {
         pfc_log_error("Failed sending create notification");
       }
     } else {
index 77156c2a5ac749fee339b8e3ce991d4fb1334bd3..210b49905a355e390340020217a008fc6d8bb1cd 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -61,22 +61,29 @@ ConfigurationRequest::~ConfigurationRequest() {
  *                process the configuration request received from north bound
  * @param[in]   : session - Object of ServerSession where the request
  *                argument present
- * @return      : UPPL_RC_SUCCESS is returned when the response is added to
+ * @return      : UNC_RC_SUCCESS is returned when the response is added to
  *                ipc session successfully otherwise Common error code is
  *                returned when ipc response could not be added to session.
  * */
-UpplReturnCode ConfigurationRequest::ProcessReq(
+UncRespCode ConfigurationRequest::ProcessReq(
     ServerSession &session,
     physical_request_header &obj_req_hdr) {
+  PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
+  PhysicalCore* physical_core = physical_layer->get_physical_core();
+  if (physical_core->system_transit_state_ == true) {
+    pfc_log_error("UNC is in state transit mode ");
+    return UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+  }
+
   Kt_Base *KtObj = NULL;
-  UpplReturnCode db_ret = UPPL_RC_SUCCESS;
+  UncRespCode db_ret = UNC_RC_SUCCESS;
   OPEN_DB_CONNECTION(unc::uppl::kOdbcmConnReadWriteNb, db_ret);
-  if (db_ret != UPPL_RC_SUCCESS) {
+  if (db_ret != UNC_RC_SUCCESS) {
     pfc_log_fatal("DB Connection failure for operation %d",
                   obj_req_hdr.operation);
     return db_ret;
   }
-  UpplReturnCode return_code = UPPL_RC_SUCCESS, resp_code = UPPL_RC_SUCCESS;
+  UncRespCode return_code = UNC_RC_SUCCESS, resp_code = UNC_RC_SUCCESS;
 
   void* key_struct = NULL;
   void* val_struct = NULL;
@@ -86,7 +93,7 @@ UpplReturnCode ConfigurationRequest::ProcessReq(
 
   resp_code = ValidateReq(&db_conn, session, obj_req_hdr,
                           key_struct, val_struct, KtObj);
-  if (resp_code != UPPL_RC_SUCCESS) {
+  if (resp_code != UNC_RC_SUCCESS) {
     // validation failed call add output
     // return the actual response
     pfc_log_error("Config validation failed %d", resp_code);
@@ -99,9 +106,9 @@ UpplReturnCode ConfigurationRequest::ProcessReq(
       KtObj = NULL;
     }
     if (err != 0) {
-      return_code = UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return_code = UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     } else {
-      return_code = UPPL_RC_SUCCESS;
+      return_code = UNC_RC_SUCCESS;
     }
     return return_code;
   }
@@ -141,7 +148,7 @@ UpplReturnCode ConfigurationRequest::ProcessReq(
       // Already handled
       break;
   }
-  if (resp_code != UPPL_RC_SUCCESS) {
+  if (resp_code != UNC_RC_SUCCESS) {
     // validation failed call add out put
     // return the actual response
     pfc_log_error("Config validation failed");
@@ -150,18 +157,18 @@ UpplReturnCode ConfigurationRequest::ProcessReq(
     err |= KtObj->AddKeyStructuretoSession(obj_req_hdr.key_type, &session,
                                            key_struct);
     if (err == 0) {
-      resp_code = UPPL_RC_SUCCESS;
+      resp_code = UNC_RC_SUCCESS;
     } else {
-      resp_code = UPPL_RC_ERR_IPC_WRITE_ERROR;
+      resp_code = UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
   }
   if (KtObj != NULL) {
     delete KtObj;
     KtObj = NULL;
   }
-  if (resp_code == UPPL_RC_ERR_IPC_WRITE_ERROR) {
+  if (resp_code == UNC_UPPL_RC_ERR_IPC_WRITE_ERROR) {
     // It's a common error code
-    return_code = UPPL_RC_ERR_IPC_WRITE_ERROR;
+    return_code = UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
   }
   pfc_log_debug("Returning %d from config request handler", return_code);
   return return_code;
@@ -176,16 +183,16 @@ UpplReturnCode ConfigurationRequest::ProcessReq(
  *                obj_req_hdr - object of physical request header 
  *                KtObj - Object of the base class to invoke appropriate
  *                kt class
- * @return      : UPPL_RC_SUCCESS if validation is successful
- *                or UPPL_RC_ERR_* if validation is failed
+ * @return      : UNC_RC_SUCCESS if validation is successful
+ *                or UNC_UPPL_RC_ERR_* if validation is failed
  * */
-UpplReturnCode ConfigurationRequest::ValidateReq(
+UncRespCode ConfigurationRequest::ValidateReq(
     OdbcmConnectionHandler *db_conn,
     ServerSession &session,
     physical_request_header obj_req_hdr,
     void* &key_struct, void* &val_struct,
     Kt_Base* &KtObj) {
-  UpplReturnCode return_code = UPPL_RC_SUCCESS, resp_code = UPPL_RC_SUCCESS;
+  UncRespCode return_code = UNC_RC_SUCCESS, resp_code = UNC_RC_SUCCESS;
   physical_response_header rsh;
   PhyUtil::getRespHeaderFromReqHeader(obj_req_hdr, rsh);
   uint32_t key_type = obj_req_hdr.key_type;
@@ -196,13 +203,21 @@ UpplReturnCode ConfigurationRequest::ValidateReq(
       KtObj = new Kt_Root();
       if (KtObj == NULL) {
         pfc_log_error("Resource allocation error");
-        return UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+        return UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
       }
       // The root key in request is not considered
       key_struct = static_cast<void*> (&key_root_obj);
       val_struct = NULL;
       break;
     }
+    case UNC_KT_DATAFLOW:
+    { if (obj_req_hdr.operation != UNC_OP_READ) {
+        pfc_log_error("Config operations not allowed for KtDataflow");
+        return UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+      }
+      break;
+    }
+
     case UNC_KT_CONTROLLER:
     {
       resp_code = ValidateController(db_conn, session,
@@ -210,13 +225,20 @@ UpplReturnCode ConfigurationRequest::ValidateReq(
                                      obj_req_hdr.operation,
                                      key_struct,
                                      val_struct);
-      if (resp_code != UPPL_RC_SUCCESS) {
+      if (resp_code != UNC_RC_SUCCESS) {
         return resp_code;
       }
       KtObj = new Kt_Controller();
       if (KtObj == NULL) {
         pfc_log_error("Resource allocation error");
-        return UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+        return UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+      }
+      break;
+    }
+    case UNC_KT_CTR_DATAFLOW:
+    { if (obj_req_hdr.operation != UNC_OP_READ) {
+        pfc_log_error("Config operations not allowed for KtCtrDataflow");
+        return UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
       }
       break;
     }
@@ -227,13 +249,13 @@ UpplReturnCode ConfigurationRequest::ValidateReq(
                                  obj_req_hdr.operation,
                                  key_struct,
                                  val_struct);
-      if (resp_code != UPPL_RC_SUCCESS) {
+      if (resp_code != UNC_RC_SUCCESS) {
         return resp_code;
       }
       KtObj = new Kt_Ctr_Domain();
       if (KtObj == NULL) {
         pfc_log_error("Resource allocation error");
-        return UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+        return UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
       }
       break;
     }
@@ -244,13 +266,13 @@ UpplReturnCode ConfigurationRequest::ValidateReq(
                                    obj_req_hdr.operation,
                                    key_struct,
                                    val_struct);
-      if (resp_code != UPPL_RC_SUCCESS) {
+      if (resp_code != UNC_RC_SUCCESS) {
         return resp_code;
       }
       KtObj = new Kt_Boundary();
       if (KtObj == NULL) {
         pfc_log_error("Resource allocation error");
-        return UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+        return UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
       }
       break;
     }
@@ -261,12 +283,12 @@ UpplReturnCode ConfigurationRequest::ValidateReq(
     case UNC_KT_LINK:
     {
       pfc_log_error("Operation not allowed");
-      return UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+      return UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
     }
     default:
     {
       pfc_log_error("Key type not supported");
-      return UPPL_RC_ERR_KEYTYPE_NOT_SUPPORTED;
+      return UNC_UPPL_RC_ERR_KEYTYPE_NOT_SUPPORTED;
     }
   }
 
@@ -284,10 +306,10 @@ UpplReturnCode ConfigurationRequest::ValidateReq(
       break;
     }
     default:
-      resp_code = UPPL_RC_ERR_OPERATION_NOT_SUPPORTED;
+      resp_code = UNC_UPPL_RC_ERR_OPERATION_NOT_SUPPORTED;
       break;
   }
-  if (resp_code != UPPL_RC_SUCCESS) {
+  if (resp_code != UNC_RC_SUCCESS) {
     // validation failed call add output
     // return the actual response
     pfc_log_error("Config validation failed");
@@ -307,22 +329,22 @@ UpplReturnCode ConfigurationRequest::ValidateReq(
  *                operation - contains UNC_OP_CREATE or UNC_OP_UPDATE
  *                key struct - specifies key instance of KT_Controller
  *                value struct - specifies value structure of KT_CONTROLLER
- * @return      : UPPL_RC_SUCCESS if scalability number is within range
- *                or UPPL_RC_ERR_* if not
+ * @return      : UNC_RC_SUCCESS if scalability number is within range
+ *                or UNC_UPPL_RC_ERR_* if not
  * * */
-UpplReturnCode ConfigurationRequest::ValidateController(
+UncRespCode ConfigurationRequest::ValidateController(
     OdbcmConnectionHandler *db_conn,
     ServerSession &session,
     uint32_t data_type,
     uint32_t operation,
     void* &key_struct,
     void* &val_struct) {
-  UpplReturnCode resp_code = UPPL_RC_SUCCESS;
+  UncRespCode resp_code = UNC_RC_SUCCESS;
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
   if (data_type != UNC_DT_CANDIDATE) {
     pfc_log_info("Operation not allowed in given data type %d",
                  data_type);
-    resp_code = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    resp_code = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
     return resp_code;
   }
   // populate key_ctr structure
@@ -339,16 +361,16 @@ UpplReturnCode ConfigurationRequest::ValidateController(
   }
   if (err != 0) {
     pfc_log_error("Not able to read val_ctr_obj, err is %d", err);
-    return UPPL_RC_ERR_BAD_REQUEST;
+    return UNC_UPPL_RC_ERR_BAD_REQUEST;
   }
   if (operation != UNC_OP_CREATE) {
     pfc_log_debug("Validation not required for other than create");
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   if (val_ctr_obj.type != UNC_CT_PFC) {
     pfc_log_debug(
         "Capability validation not done for non-PFC controller");
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   // controller capability check
   string version = reinterpret_cast<const char*> (val_ctr_obj.version);
@@ -356,7 +378,7 @@ UpplReturnCode ConfigurationRequest::ValidateController(
   resp_code = physical_layer->get_physical_core()->
       ValidateKeyTypeInCtrlrCap(version,
                                 (uint32_t)UNC_KT_CONTROLLER);
-  if (resp_code != UPPL_RC_SUCCESS) {
+  if (resp_code != UNC_RC_SUCCESS) {
     pfc_log_error("Key type validation failed in capability check");
     return resp_code;
   }
@@ -364,7 +386,7 @@ UpplReturnCode ConfigurationRequest::ValidateController(
   Kt_Controller KtObj;
   resp_code = KtObj.ValidateCtrlrValueCapability(version,
                                                  (uint32_t)UNC_KT_CONTROLLER);
-  if (resp_code != UPPL_RC_SUCCESS) {
+  if (resp_code != UNC_RC_SUCCESS) {
     pfc_log_error("Attribute validation failure");
     return resp_code;
   }
@@ -374,11 +396,11 @@ UpplReturnCode ConfigurationRequest::ValidateController(
       db_conn, version,
       (uint32_t)UNC_KT_CONTROLLER,
       data_type);
-  if (resp_code != UPPL_RC_SUCCESS) {
+  if (resp_code != UNC_RC_SUCCESS) {
     pfc_log_error("scalability range exceeded");
     return resp_code;
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /* ValidateDomain
@@ -390,21 +412,21 @@ UpplReturnCode ConfigurationRequest::ValidateController(
  *                operation - contains UNC_OP_CREATE or UNC_OP_UPDATE
  *                key struct - specifies key instance of KT_Domain
  *                value struct - specifies value structure of KT_Domain
- * @return      : UPPL_RC_SUCCESS if the validation is success
- *                or UPPL_RC_ERR_* if validation is failed
+ * @return      : UNC_RC_SUCCESS if the validation is success
+ *                or UNC_UPPL_RC_ERR_* if validation is failed
  * */
-UpplReturnCode ConfigurationRequest::ValidateDomain(
+UncRespCode ConfigurationRequest::ValidateDomain(
     OdbcmConnectionHandler *db_conn,
     ServerSession &session,
     uint32_t data_type,
     uint32_t operation,
     void* &key_struct,
     void* &val_struct) {
-  UpplReturnCode resp_code = UPPL_RC_SUCCESS;
+  UncRespCode resp_code = UNC_RC_SUCCESS;
   if (data_type != UNC_DT_CANDIDATE) {
     pfc_log_info("Operation not allowed in given data type %d",
                  data_type);
-    resp_code = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    resp_code = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
     return resp_code;
   }
   // populate key_domain_obj structure
@@ -421,9 +443,9 @@ UpplReturnCode ConfigurationRequest::ValidateDomain(
   }
   if (err != 0) {
     pfc_log_error("Not able to read val_domain_obj, err is %d", err);
-    return UPPL_RC_ERR_BAD_REQUEST;
+    return UNC_UPPL_RC_ERR_BAD_REQUEST;
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /* ValidateBoundary
@@ -435,28 +457,28 @@ UpplReturnCode ConfigurationRequest::ValidateDomain(
  *                operation - contains UNC_OP_CREATE or UNC_OP_UPDATE
  *                key struct - specifies key instance of KT_Boundary
  *                value struct - specifies value structure of KT_Boundary
- * @return      : UPPL_RC_SUCCESS if the validation is success
- *                or UPPL_RC_ERR_* if validation is failed
+ * @return      : UNC_RC_SUCCESS if the validation is success
+ *                or UNC_UPPL_RC_ERR_* if validation is failed
  * */
-UpplReturnCode ConfigurationRequest::ValidateBoundary(
+UncRespCode ConfigurationRequest::ValidateBoundary(
     OdbcmConnectionHandler *db_conn,
     ServerSession &session,
     uint32_t data_type,
     uint32_t operation,
     void* &key_struct,
     void* &val_struct) {
-  UpplReturnCode resp_code = UPPL_RC_SUCCESS;
+  UncRespCode resp_code = UNC_RC_SUCCESS;
   if (data_type != UNC_DT_CANDIDATE) {
     pfc_log_info("Operation not allowed in given data type %d",
                  data_type);
-    resp_code = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    resp_code = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
     return resp_code;
   }
   // populate key_boundary_obj structure
   int err = session.getArgument(8, key_boundary_obj);
   if (err != 0) {
     pfc_log_error("Not able to read key_boundary_obj, err is %d", err);
-    return UPPL_RC_ERR_BAD_REQUEST;
+    return UNC_UPPL_RC_ERR_BAD_REQUEST;
   }
   key_struct = static_cast<void*> (&key_boundary_obj);
   pfc_log_debug("%s", IpctUtil::get_string(key_boundary_obj).c_str());
@@ -470,7 +492,7 @@ UpplReturnCode ConfigurationRequest::ValidateBoundary(
   }
   if (err != 0) {
     pfc_log_error("Not able to read val_boundary_obj, err is %d", err);
-    return UPPL_RC_ERR_BAD_REQUEST;
+    return UNC_UPPL_RC_ERR_BAD_REQUEST;
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
index 5e393c3442b621f8552ba2ea3a49db7c27b91105..19d32c7311b0fe607c7d67f3c7aeb77f868c2ce9 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -40,14 +40,14 @@ DBConfigurationRequest::~DBConfigurationRequest() {
  *                   DB and from Candidate to running DB and
  *                   clears State DB entries
  * @param[in]      : None
- * @Return         : UPPL_RC_SUCCESS if Load and Commit Startup is successful
- *                   or UPPL_RC_ERR_* if failure occurs
+ * @Return         : UNC_RC_SUCCESS if Load and Commit Startup is successful
+ *                   or UNC_UPPL_RC_ERR_* if failure occurs
  * */
-UpplReturnCode DBConfigurationRequest::LoadAndCommitStartup(
+UncRespCode DBConfigurationRequest::LoadAndCommitStartup(
     OdbcmConnectionHandler *db_conn) {
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
   ODBCM_RC_STATUS copy_db_status = ODBCM_RC_SUCCESS;
-  UpplReturnCode result_code = UPPL_RC_SUCCESS;
+  UncRespCode result_code = UNC_RC_SUCCESS;
   /* copy StartUp to Candidate */
   copy_db_status = physical_layer->get_odbc_manager()->
       CopyDatabase(UNC_DT_STARTUP, UNC_DT_CANDIDATE, db_conn);
@@ -55,13 +55,13 @@ UpplReturnCode DBConfigurationRequest::LoadAndCommitStartup(
     if (copy_db_status == ODBCM_RC_CONNECTION_ERROR) {
       // log fatal error to log daemon
       pfc_log_fatal("DB connection not available or cannot access DB");
-      result_code = UPPL_RC_ERR_DB_ACCESS;
+      result_code = UNC_UPPL_RC_ERR_DB_ACCESS;
     } else {
       // log error to log daemon
       string log_msg = string("LoadAndCommitStartup:")+
           "Copying the StartUp to Candidate database failed";
       pfc_log_error(log_msg.c_str());
-      result_code = UPPL_RC_ERR_COPY_STARTUP_TO_CANDID;
+      result_code = UNC_UPPL_RC_ERR_COPY_STARTUP_TO_CANDID;
     }
     return result_code;
   }
@@ -71,14 +71,14 @@ UpplReturnCode DBConfigurationRequest::LoadAndCommitStartup(
       ClearDatabase(UNC_DT_RUNNING, db_conn);
   if (clear_status != ODBCM_RC_SUCCESS) {
     pfc_log_info("Running DB clearing failed");
-    result_code = UPPL_RC_ERR_CLEAR_DB;
+    result_code = UNC_UPPL_RC_ERR_CLEAR_DB;
   }
   // Clear Import Database entries
   clear_status = PhysicalLayer::get_instance()->get_odbc_manager()->
       ClearDatabase(UNC_DT_IMPORT, db_conn);
   if (clear_status != ODBCM_RC_SUCCESS) {
     pfc_log_info("Import DB clearing failed");
-    result_code = UPPL_RC_ERR_CLEAR_DB;
+    result_code = UNC_UPPL_RC_ERR_CLEAR_DB;
   }
   /* copy Candidate to Running */
   copy_db_status = physical_layer->get_odbc_manager()->
@@ -89,13 +89,13 @@ UpplReturnCode DBConfigurationRequest::LoadAndCommitStartup(
       string log_msg = string("LoadAndCommitStartup:")+
           "DB connection not available or cannot access DB";
       pfc_log_fatal(log_msg.c_str());
-      result_code = UPPL_RC_ERR_DB_ACCESS;
+      result_code = UNC_UPPL_RC_ERR_DB_ACCESS;
     } else {
       // log error to log daemon
       string log_msg = string("LoadAndCommitStartup:")+
           "copying the Candidate to Running database failed";
       pfc_log_error(log_msg.c_str());
-      result_code = UPPL_RC_ERR_COPY_CANDID_TO_RUNNING;
+      result_code = UNC_UPPL_RC_ERR_COPY_CANDID_TO_RUNNING;
     }
     return result_code;
   }
@@ -105,7 +105,7 @@ UpplReturnCode DBConfigurationRequest::LoadAndCommitStartup(
       ClearDatabase(UNC_DT_STATE, db_conn);
   if (clear_status != ODBCM_RC_SUCCESS) {
     pfc_log_info("State DB clearing failed");
-    result_code = UPPL_RC_ERR_CLEAR_DB;
+    result_code = UNC_UPPL_RC_ERR_CLEAR_DB;
   }
   return result_code;
 }
@@ -113,13 +113,13 @@ UpplReturnCode DBConfigurationRequest::LoadAndCommitStartup(
 /**ClearStartUpDb()
  * @Description    : This function clears the content of Startup Database
  * @param[in]      : None
- * @Return         : UPPL_RC_SUCCESS if Clearing the startup DB is successful 
- *                   or UPPL_RC_ERR_* in case of failure
+ * @Return         : UNC_RC_SUCCESS if Clearing the startup DB is successful 
+ *                   or UNC_UPPL_RC_ERR_* in case of failure
  * */
-UpplReturnCode DBConfigurationRequest::ClearStartUpDb(
+UncRespCode DBConfigurationRequest::ClearStartUpDb(
     OdbcmConnectionHandler *db_conn) {
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
-  UpplReturnCode result_code = UPPL_RC_SUCCESS;
+  UncRespCode result_code = UNC_RC_SUCCESS;
   ODBCM_RC_STATUS clear_db_status;
   /* clear the StartUp db */
   clear_db_status = physical_layer->get_odbc_manager()->
@@ -128,11 +128,11 @@ UpplReturnCode DBConfigurationRequest::ClearStartUpDb(
     if (clear_db_status == ODBCM_RC_CONNECTION_ERROR) {
       // log fatal error to log daemon
       pfc_log_fatal("DB connection not available or cannot access DB");
-      result_code = UPPL_RC_ERR_DB_ACCESS;
+      result_code = UNC_UPPL_RC_ERR_DB_ACCESS;
     } else {
       // log error to log daemon
       pfc_log_error("ClearStartUpDb:Clearing the StartUp database failed");
-      result_code = UPPL_RC_ERR_CLEAR_DB;
+      result_code = UNC_UPPL_RC_ERR_CLEAR_DB;
     }
   }
   return result_code;
@@ -142,23 +142,23 @@ UpplReturnCode DBConfigurationRequest::ClearStartUpDb(
  * @Description : This function modified controller to logical and rollbacks
  *                the uncommitted transaction  from the candidate database.
  * @param[in]   : None
- * @Return      : UPPL_RC_SUCCESS if AbortCandidate database is successful
- *                or UPPL_RC_ERR_* in case of failure
+ * @Return      : UNC_RC_SUCCESS if AbortCandidate database is successful
+ *                or UNC_UPPL_RC_ERR_* in case of failure
  * */
-UpplReturnCode DBConfigurationRequest::AbortCandidateDb(
+UncRespCode DBConfigurationRequest::AbortCandidateDb(
     OdbcmConnectionHandler *db_conn) {
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
-  UpplReturnCode result_code = UPPL_RC_SUCCESS;
+  UncRespCode result_code = UNC_RC_SUCCESS;
   result_code = SendDeletedControllerToLogical(db_conn);
-  if (result_code != UPPL_RC_SUCCESS) {
+  if (result_code != UNC_RC_SUCCESS) {
     return result_code;
   }
   result_code = SendCreatedControllerToLogical(db_conn);
-  if (result_code != UPPL_RC_SUCCESS) {
+  if (result_code != UNC_RC_SUCCESS) {
     return result_code;
   }
   result_code = SendUpdatedControllerToLogical(db_conn);
-  if (result_code != UPPL_RC_SUCCESS) {
+  if (result_code != UNC_RC_SUCCESS) {
     return result_code;
   }
   /* copy running database to candidate database */
@@ -168,15 +168,15 @@ UpplReturnCode DBConfigurationRequest::AbortCandidateDb(
     if (copy_db_status == ODBCM_RC_CONNECTION_ERROR) {
       // log fatal error to log daemon
       pfc_log_fatal("DB connection not available or cannot access DB");
-      result_code = UPPL_RC_ERR_DB_ACCESS;
+      result_code = UNC_UPPL_RC_ERR_DB_ACCESS;
     } else {
       /*  log error to log  daemon */
       pfc_log_error("copy running to candidate database failed");
-      result_code = UPPL_RC_ERR_COPY_RUNNING_TO_CANDID;
+      result_code = UNC_UPPL_RC_ERR_COPY_RUNNING_TO_CANDID;
     }
   }
   result_code = SendAppliedControllerToLogical(db_conn);
-  if (result_code != UPPL_RC_SUCCESS) {
+  if (result_code != UNC_RC_SUCCESS) {
     return result_code;
   }
   return result_code;
@@ -186,13 +186,13 @@ UpplReturnCode DBConfigurationRequest::AbortCandidateDb(
  * @Description : This function send request to ODBCManager to sync running
  *                with StartUp configuration
  * @param[in]   : None
- * @Return      : UPPL_RC_SUCCESS if saving running to startup database is
- *                successful or UPPL_RC_ERR_* in case of failure
+ * @Return      : UNC_RC_SUCCESS if saving running to startup database is
+ *                successful or UNC_UPPL_RC_ERR_* in case of failure
  * */
-UpplReturnCode DBConfigurationRequest::SaveRunningToStartUp(
+UncRespCode DBConfigurationRequest::SaveRunningToStartUp(
     OdbcmConnectionHandler *db_conn)  {
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
-  UpplReturnCode result_code = UPPL_RC_SUCCESS;
+  UncRespCode result_code = UNC_RC_SUCCESS;
   ODBCM_RC_STATUS copy_db_status;
 
   /* Copy running database to StartUp database */
@@ -202,11 +202,11 @@ UpplReturnCode DBConfigurationRequest::SaveRunningToStartUp(
     if (copy_db_status == ODBCM_RC_CONNECTION_ERROR) {
       // log fatal error to log daemon
       pfc_log_fatal("DB connection not available or cannot access DB");
-      result_code = UPPL_RC_ERR_DB_ACCESS;
+      result_code = UNC_UPPL_RC_ERR_DB_ACCESS;
     } else {
       /* log  error  to log manager */
       pfc_log_error("copy running database to StartUp database failed");
-      result_code = UPPL_RC_ERR_COPY_RUNNING_TO_START;
+      result_code = UNC_UPPL_RC_ERR_COPY_RUNNING_TO_START;
     }
   }
   return result_code;
@@ -216,20 +216,20 @@ UpplReturnCode DBConfigurationRequest::SaveRunningToStartUp(
  * @Description : This function send the deleted controller to logical
  *                during abort candidate db/ abort transaction
  * @param[in]   : None
- * @Return      : UPPL_RC_SUCCESS if sending the controller information to
- *                logical is successful or UPPL_RC_ERR_* in case of failure 
+ * @Return      : UNC_RC_SUCCESS if sending the controller information to
+ *                logical is successful or UNC_UPPL_RC_ERR_* in case of failure 
  * */
-UpplReturnCode DBConfigurationRequest::SendDeletedControllerToLogical(
+UncRespCode DBConfigurationRequest::SendDeletedControllerToLogical(
     OdbcmConnectionHandler *db_conn) {
   Kt_Controller kt_ctr;
   vector<void*> vec_key_ctr_modified;
   // Getting the created Configuration from the database
-  UpplReturnCode result_code = kt_ctr.GetModifiedRows(
+  UncRespCode result_code = kt_ctr.GetModifiedRows(
       db_conn, vec_key_ctr_modified,
       CREATED);
-  if (result_code != UPPL_RC_SUCCESS) {
+  if (result_code != UNC_RC_SUCCESS) {
     // No created controller available
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   for (uint32_t config_count = 0; config_count != vec_key_ctr_modified.size();
       config_count++) {
@@ -247,32 +247,32 @@ UpplReturnCode DBConfigurationRequest::SendDeletedControllerToLogical(
       delete ctr_key;
       ctr_key = NULL;
     }
-    if (result_code != UPPL_RC_SUCCESS) {
+    if (result_code != UNC_RC_SUCCESS) {
       pfc_log_error("Failed to send the info to UPLL of controller");
-      return UPPL_RC_ERR_LOGICAL_COMMUNICATION_FAILURE;
+      return UNC_UPPL_RC_ERR_LOGICAL_COMMUNICATION_FAILURE;
     }
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**SendCreatedControllerToLogical
  * @Description : This function send the created controller
  *                to logical during abort candidate db/ abort transaction
  * @param[in]   : None
- * @Return      : UPPL_RC_SUCCESS if sending the controller information to
- *                logical is successful or UPPL_RC_ERR_* in case of failure
+ * @Return      : UNC_RC_SUCCESS if sending the controller information to
+ *                logical is successful or UNC_UPPL_RC_ERR_* in case of failure
  * */
-UpplReturnCode DBConfigurationRequest::SendCreatedControllerToLogical(
+UncRespCode DBConfigurationRequest::SendCreatedControllerToLogical(
     OdbcmConnectionHandler *db_conn) {
   Kt_Controller kt_ctr;
   vector<void*> vec_key_ctr_modified;
   // Getting the deleted Configuration from the database
-  UpplReturnCode result_code = kt_ctr.GetModifiedRows(
+  UncRespCode result_code = kt_ctr.GetModifiedRows(
       db_conn, vec_key_ctr_modified,
       DELETED);
-  if (result_code != UPPL_RC_SUCCESS) {
+  if (result_code != UNC_RC_SUCCESS) {
     // No deleted controller available
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 
   for (uint32_t config_count = 0;
@@ -285,7 +285,7 @@ UpplReturnCode DBConfigurationRequest::SendCreatedControllerToLogical(
     if (kt_ctr.ReadInternal(db_conn, vect_ctr_key,
                             vect_ctr_val,
                             UNC_DT_RUNNING,
-                            UNC_OP_READ) != UPPL_RC_SUCCESS) {
+                            UNC_OP_READ) != UNC_RC_SUCCESS) {
       delete ctr_key;
       ctr_key = NULL;
       continue;
@@ -315,32 +315,32 @@ UpplReturnCode DBConfigurationRequest::SendCreatedControllerToLogical(
     val_ctr_st = NULL;
     delete ctr_key;
     ctr_key = NULL;
-    if (result_code != UPPL_RC_SUCCESS) {
+    if (result_code != UNC_RC_SUCCESS) {
       pfc_log_error("Failed to send the info to UPLL of controller");
-      return UPPL_RC_ERR_LOGICAL_COMMUNICATION_FAILURE;
+      return UNC_UPPL_RC_ERR_LOGICAL_COMMUNICATION_FAILURE;
     }
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**SendUpdatedControllerToLogical
  * @Description : This function send the updated controller to
  *                logical during abort candidate db/ abort transaction
  * @param[in]   : None
- * @Return      : UPPL_RC_SUCCESS if sending the controller information to
- *                logical is successful or UPPL_RC_ERR_* in case of failure 
+ * @Return      : UNC_RC_SUCCESS if sending the controller information to
+ *                logical is successful or UNC_UPPL_RC_ERR_* in case of failure 
  * */
-UpplReturnCode DBConfigurationRequest::SendUpdatedControllerToLogical(
+UncRespCode DBConfigurationRequest::SendUpdatedControllerToLogical(
     OdbcmConnectionHandler *db_conn) {
   Kt_Controller kt_ctr;
   vector<void*> vec_key_ctr_modified;
   // Getting the Update Configuration from the database
-  UpplReturnCode result_code = kt_ctr.GetModifiedRows(
+  UncRespCode result_code = kt_ctr.GetModifiedRows(
       db_conn, vec_key_ctr_modified,
       UPDATED);
-  if (result_code != UPPL_RC_SUCCESS) {
+  if (result_code != UNC_RC_SUCCESS) {
     // No updated controller available
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   // Iterating the updated controller vector
   for (uint32_t config_count = 0; \
@@ -354,7 +354,7 @@ UpplReturnCode DBConfigurationRequest::SendUpdatedControllerToLogical(
     if (kt_ctr.ReadInternal(db_conn, vect_ctr_key,
                             vect_ctr_val,
                             UNC_DT_RUNNING,
-                            UNC_OP_READ) != UPPL_RC_SUCCESS) {
+                            UNC_OP_READ) != UNC_RC_SUCCESS) {
       delete ctr_key;
       ctr_key = NULL;
       continue;
@@ -384,32 +384,32 @@ UpplReturnCode DBConfigurationRequest::SendUpdatedControllerToLogical(
     val_ctr_st = NULL;
     delete ctr_key;
     ctr_key = NULL;
-    if (result_code != UPPL_RC_SUCCESS) {
+    if (result_code != UNC_RC_SUCCESS) {
       pfc_log_error("Failed to send the info to UPLL of controller");
-      return UPPL_RC_ERR_LOGICAL_COMMUNICATION_FAILURE;
+      return UNC_UPPL_RC_ERR_LOGICAL_COMMUNICATION_FAILURE;
     }
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**SendAppliedControllerToLogical
  * @Description    : This function send the applied controller to
  *                   logical during abort candidate db/ abort transaction
  * @param[in]      : None
- * @Return         : UPPL_RC_SUCCESS if sending the controller information to
- *                   logical is successful or UPPL_RC_ERR_* in case of failure
+ * @Return         : UNC_RC_SUCCESS if sending the controller information to
+ *                   logical is successful or UNC_UPPL_RC_ERR_* in case of failure
  * */
-UpplReturnCode DBConfigurationRequest::SendAppliedControllerToLogical(
+UncRespCode DBConfigurationRequest::SendAppliedControllerToLogical(
     OdbcmConnectionHandler *db_conn) {
   Kt_Controller kt_ctr;
   vector<void*> vec_key_ctr_modified;
   // Getting the deleted Configuration from the database
-  UpplReturnCode result_code = kt_ctr.GetModifiedRows(
+  UncRespCode result_code = kt_ctr.GetModifiedRows(
       db_conn, vec_key_ctr_modified,
       APPLIED);
-  if (result_code != UPPL_RC_SUCCESS) {
+  if (result_code != UNC_RC_SUCCESS) {
     // No deleted controller available
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 
   for (uint32_t config_count = 0;
@@ -422,7 +422,7 @@ UpplReturnCode DBConfigurationRequest::SendAppliedControllerToLogical(
     if (kt_ctr.ReadInternal(db_conn, vect_ctr_key,
                             vect_ctr_val,
                             UNC_DT_RUNNING,
-                            UNC_OP_READ) != UPPL_RC_SUCCESS) {
+                            UNC_OP_READ) != UNC_RC_SUCCESS) {
       delete ctr_key;
       ctr_key = NULL;
       continue;
@@ -452,10 +452,10 @@ UpplReturnCode DBConfigurationRequest::SendAppliedControllerToLogical(
     val_ctr_st = NULL;
     delete ctr_key;
     ctr_key = NULL;
-    if (result_code != UPPL_RC_SUCCESS) {
+    if (result_code != UNC_RC_SUCCESS) {
       pfc_log_error("Failed to send the info to UPLL of controller");
-      return UPPL_RC_ERR_LOGICAL_COMMUNICATION_FAILURE;
+      return UNC_UPPL_RC_ERR_LOGICAL_COMMUNICATION_FAILURE;
     }
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
index 613f02abde6291201f3c0966071cfc5da42632fc..a76d980c774b855de7856d33d61bcfc25df91319 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -38,20 +38,20 @@ ImportRequest::~ImportRequest()  {
  * @param[in]   : unc_keytype_operation_t - UNC_OP_* operations related to
  *                import
  *                key_struct - specifies key instance of Kt_Controller
- * @Return      : UPPL_RC_SUCCESS is returned when the response
+ * @Return      : UNC_RC_SUCCESS is returned when the response
  *                is added to ipc session successfully.
- *                UPPL_RC_ERR_* is returned when ipc
+ *                UNC_UPPL_RC_ERR_* is returned when ipc
  *                response could not be added to session
  * */
-UpplReturnCode ImportRequest::ProcessRequest(OdbcmConnectionHandler *db_conn,
+UncRespCode ImportRequest::ProcessRequest(OdbcmConnectionHandler *db_conn,
                                              uint32_t unc_keytype_operation_t,
                                              key_ctr_t obj_key_ctr)  {
-  UpplReturnCode result_code = UPPL_RC_SUCCESS;
+  UncRespCode result_code = UNC_RC_SUCCESS;
   pfc_log_info("Process the import request");
   switch (unc_keytype_operation_t)  {
     case UNC_OP_IMPORT_CONTROLLER_CONFIG:
       result_code = StartImport(db_conn, obj_key_ctr);
-      if (result_code != UPPL_RC_SUCCESS) {
+      if (result_code != UNC_RC_SUCCESS) {
         pfc_log_info("Import Request:Candidate is dirty");
       }
       break;
@@ -62,7 +62,7 @@ UpplReturnCode ImportRequest::ProcessRequest(OdbcmConnectionHandler *db_conn,
       result_code = ClearImportConfig(obj_key_ctr);
       break;
     default:
-      result_code = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+      result_code = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
   }
   return result_code;
 }
@@ -73,14 +73,14 @@ UpplReturnCode ImportRequest::ProcessRequest(OdbcmConnectionHandler *db_conn,
  *                of the controller and whether candidate is dirty or not
  *                and returns the response
  * @param[in]   : key_struct - specifies key instance of KT_Controller
- * @Return      : UPPL_RC_SUCCESS is returned when the response
+ * @Return      : UNC_RC_SUCCESS is returned when the response
  *                is added to ipc session successfully.
- *                UPPL_RC_ERR_* is returned when ipc
+ *                UNC_UPPL_RC_ERR_* is returned when ipc
  *                response could not be added to session 
  * */
-UpplReturnCode ImportRequest::StartImport(OdbcmConnectionHandler *db_conn,
+UncRespCode ImportRequest::StartImport(OdbcmConnectionHandler *db_conn,
                                           key_ctr_t obj_key_ctr)  {
-  UpplReturnCode result_code = UPPL_RC_SUCCESS;
+  UncRespCode result_code = UNC_RC_SUCCESS;
   PhysicalCore *physical_core = PhysicalLayer::get_instance()->
       get_physical_core();
   InternalTransactionCoordinator *itc_trans  =
@@ -90,14 +90,14 @@ UpplReturnCode ImportRequest::StartImport(OdbcmConnectionHandler *db_conn,
   uint8_t oper_status = 0;
   /* Checks controller existence and its oper status */
   pfc_log_debug("Get controller oper Status");
-  UpplReturnCode read_status = KtObj.GetOperStatus(
+  UncRespCode read_status = KtObj.GetOperStatus(
       db_conn, UNC_DT_RUNNING, &obj_key_ctr, oper_status);
-  if (read_status == UPPL_RC_SUCCESS) {
+  if (read_status == UNC_RC_SUCCESS) {
     pfc_log_debug("Received oper_status %d", oper_status);
     if (oper_status == UPPL_CONTROLLER_OPER_AUDITING) {
       // Controller audit is in progress, return error
       pfc_log_info("Controller audit is in progress, return error");
-      return UPPL_RC_ERR_INVALID_STATE;
+      return UNC_UPPL_RC_ERR_INVALID_STATE;
     }
   }
   ODBCM_RC_STATUS db_status = ODBCM_RC_SUCCESS;
@@ -107,7 +107,7 @@ UpplReturnCode ImportRequest::StartImport(OdbcmConnectionHandler *db_conn,
   if (itc_trans->trans_state() != TRANS_END ||
       db_status == ODBCM_RC_CANDIDATE_DIRTY) {
     pfc_log_info("Start Import Unsuccessful - Candidate is dirty");
-    result_code = UPPL_RC_ERR_CANDIDATE_IS_DIRTY;
+    result_code = UNC_UPPL_RC_ERR_CANDIDATE_IS_DIRTY;
   }
   return result_code;
 }
@@ -116,10 +116,10 @@ UpplReturnCode ImportRequest::StartImport(OdbcmConnectionHandler *db_conn,
  * @Description : This function returns success for Merge
  *                configuration Operation.
  * @param[in]   : key_struct - specifies key instance of KT_Controller
- * @Return      : UPPL_RC_SUCCESS if the merge is successful
+ * @Return      : UNC_RC_SUCCESS if the merge is successful
  * */
-UpplReturnCode ImportRequest::MergeConfiguration(key_ctr_t obj_key_ctr) {
-  UpplReturnCode result_code = UPPL_RC_SUCCESS;
+UncRespCode ImportRequest::MergeConfiguration(key_ctr_t obj_key_ctr) {
+  UncRespCode result_code = UNC_RC_SUCCESS;
   pfc_log_info("Returning Success for MergeConfiguration");
   return result_code;
 }
@@ -128,11 +128,11 @@ UpplReturnCode ImportRequest::MergeConfiguration(key_ctr_t obj_key_ctr) {
  * @Description    : This function returns success for Clear import
  *                   configuration
  * @param[in]      : key_struct - specifies key instance of KT_Controller
- * @Return         : UPPL_RC_SUCCESS if the clear import configuration is
+ * @Return         : UNC_RC_SUCCESS if the clear import configuration is
  *                   successful
  * */
-UpplReturnCode ImportRequest::ClearImportConfig(key_ctr_t obj_key_ctr) {
-  UpplReturnCode result_code = UPPL_RC_SUCCESS;
+UncRespCode ImportRequest::ClearImportConfig(key_ctr_t obj_key_ctr) {
+  UncRespCode result_code = UNC_RC_SUCCESS;
   pfc_log_info("Returning Success for ClearImportConfig");
   return result_code;
 }
index 5a23e0d1ec260ddd7bd6cdf80cc342a021b503c6..6234b16488040b4fbbee11144c085097598ff3f4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -29,24 +29,32 @@ attr_syntax_map_all;
  *                  data_type - UNC_DT_*, read allowed in
  *                  candidate/running/startup/state
  *                  key_type - specifies the kt instance
- * * @return      : UPPL_RC_SUCCESS is returned when the response
+ * * @return      : UNC_RC_SUCCESS is returned when the response
  *                  is added to ipc session successfully.
- *                  UPPL_RC_ERR_* is returned when ipc response
+ *                  UNC_UPPL_RC_ERR_* is returned when ipc response
  *                  could not be added to sess.
  * */
-UpplReturnCode Kt_Base::ValidateRequest(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Base::ValidateRequest(OdbcmConnectionHandler *db_conn,
                                         void* key_struct,
                                         void* val_struct,
                                         uint32_t operation,
                                         uint32_t data_type,
                                         uint32_t key_type) {
-  UpplReturnCode status = UPPL_RC_SUCCESS;
+  UncRespCode status = UNC_RC_SUCCESS;
   pfc_log_debug("Inside ValidateRequest of KT_BASE for Key type: %d", key_type);
   switch (key_type) {
     case UNC_KT_ROOT: {
       status = ValidateKtRoot(operation,
                               data_type);
-      if (status != UPPL_RC_SUCCESS) {
+      if (status != UNC_RC_SUCCESS) {
+        return status;
+      }
+    }
+    break;
+    case UNC_KT_DATAFLOW: {
+      status = ValidateKtDataflow(operation,
+                              data_type);
+      if (status != UNC_RC_SUCCESS) {
         return status;
       }
     }
@@ -55,7 +63,15 @@ UpplReturnCode Kt_Base::ValidateRequest(OdbcmConnectionHandler *db_conn,
     case UNC_KT_BOUNDARY: {
       status = ValidateKtCtrlBdry(operation,
                                   data_type);
-      if (status != UPPL_RC_SUCCESS) {
+      if (status != UNC_RC_SUCCESS) {
+        return status;
+      }
+    }
+    break;
+    case UNC_KT_CTR_DATAFLOW: {
+      status = ValidateKtCtrDataflow(operation,
+                              data_type);
+      if (status != UNC_RC_SUCCESS) {
         return status;
       }
     }
@@ -63,7 +79,7 @@ UpplReturnCode Kt_Base::ValidateRequest(OdbcmConnectionHandler *db_conn,
     case UNC_KT_CTR_DOMAIN: {
       status = ValidateKtCtrDomain(operation,
                                    data_type);
-      if (status != UPPL_RC_SUCCESS) {
+      if (status != UNC_RC_SUCCESS) {
         return status;
       }
     }
@@ -75,14 +91,14 @@ UpplReturnCode Kt_Base::ValidateRequest(OdbcmConnectionHandler *db_conn,
     case UNC_KT_LINK: {
       status = ValidateKtState(operation,
                                data_type);
-      if (status != UPPL_RC_SUCCESS) {
+      if (status != UNC_RC_SUCCESS) {
         return status;
       }
     }
     break;
     default : {
       pfc_log_error("Key type not supported");
-      return UPPL_RC_ERR_KEYTYPE_NOT_SUPPORTED;
+      return UNC_UPPL_RC_ERR_KEYTYPE_NOT_SUPPORTED;
     }
   }
   if (operation == UNC_OP_READ || operation == UNC_OP_CREATE ||
@@ -91,7 +107,7 @@ UpplReturnCode Kt_Base::ValidateRequest(OdbcmConnectionHandler *db_conn,
                                      val_struct,
                                      operation,
                                      data_type);
-    if (status != UPPL_RC_SUCCESS) {
+    if (status != UNC_RC_SUCCESS) {
       // log error and send error response
       pfc_log_error("Syntax validation failed");
       // return the actual response
@@ -102,7 +118,7 @@ UpplReturnCode Kt_Base::ValidateRequest(OdbcmConnectionHandler *db_conn,
                                          val_struct,
                                          operation,
                                          data_type);
-      if (status != UPPL_RC_SUCCESS) {
+      if (status != UNC_RC_SUCCESS) {
         // log error and send error response
         pfc_log_error("Semantic validation failed");
         // return the actual response
@@ -124,12 +140,12 @@ UpplReturnCode Kt_Base::ValidateRequest(OdbcmConnectionHandler *db_conn,
  *                  sess - ipc server session where the
  *                  response has to be added
  *                  option1/option2 - specifies any additional
- * * @return      : UPPL_RC_SUCCESS is returned when the response
+ * * @return      : UNC_RC_SUCCESS is returned when the response
  *                  is added to ipc session successfully.
- *                  UPPL_RC_ERR_* is returned when ipc response could not
+ *                  UNC_UPPL_RC_ERR_* is returned when ipc response could not
  *                  be added to sess.
  * */
-UpplReturnCode Kt_Base::Read(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Base::Read(OdbcmConnectionHandler *db_conn,
                              uint32_t session_id,
                              uint32_t configuration_id,
                              void* key_struct,
@@ -160,12 +176,13 @@ UpplReturnCode Kt_Base::Read(OdbcmConnectionHandler *db_conn,
  *                  readnext allowed in candidate/running/startup/state
  *                  sess - ipc server session
  *                  where the response has to be added
- * * @return      : UPPL_RC_SUCCESS is returned when the response
+ * * @return      : UNC_RC_SUCCESS is returned when the response
  *                  is added to ipc session successfully.
- *                  UPPL_RC_ERR_* is returned when ipc
+ *                  UNC_UPPL_RC_ERR_* is returned when ipc
  *                  response could not be added to sess.
  * */
-UpplReturnCode Kt_Base::ReadNext(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Base::ReadNext(OdbcmConnectionHandler *db_conn,
+                                 uint32_t client_sess_id,
                                  void* key_struct,
                                  uint32_t data_type,
                                  ReadRequest *read_req) {
@@ -192,12 +209,12 @@ UpplReturnCode Kt_Base::ReadNext(OdbcmConnectionHandler *db_conn,
  *                  option1/option2 - specifies any additional
  *                  condition for read operation
  *                  max_rep_ct - specifies number of rows to be returned
- * * @return      : UPPL_RC_SUCCESS is returned when the response
+ * * @return      : UNC_RC_SUCCESS is returned when the response
  *                  is added to ipc session successfully.
- *                  UPPL_RC_ERR_* is returned when ipc
+ *                  UNC_UPPL_RC_ERR_* is returned when ipc
  *                  response could not be added to sess.
  * */
-UpplReturnCode Kt_Base::ReadSiblingBegin(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Base::ReadSiblingBegin(OdbcmConnectionHandler *db_conn,
                                          uint32_t session_id,
                                          uint32_t configuration_id,
                                          void* key_struct,
@@ -207,7 +224,7 @@ UpplReturnCode Kt_Base::ReadSiblingBegin(OdbcmConnectionHandler *db_conn,
                                          uint32_t option1,
                                          uint32_t option2,
                                          uint32_t &max_rep_ct) {
-  UpplReturnCode read_status = PerformRead(db_conn, session_id,
+  UncRespCode read_status = PerformRead(db_conn, session_id,
                                            configuration_id,
                                            key_struct,
                                            val_struct,
@@ -233,12 +250,12 @@ UpplReturnCode Kt_Base::ReadSiblingBegin(OdbcmConnectionHandler *db_conn,
  *                  option1/option2 - specifies any additional
  *                  condition for read operation
  *                  max_rep_ct - specifies number of rows to be returned
- * * @return      : UPPL_RC_SUCCESS is returned when the response
+ * * @return      : UNC_RC_SUCCESS is returned when the response
  *                  is added to ipc session successfully.
- *                  UPPL_RC_ERR_* is returned when ipc response
+ *                  UNC_UPPL_RC_ERR_* is returned when ipc response
  *                  could not be added to sess.
  * */
-UpplReturnCode Kt_Base::ReadSibling(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Base::ReadSibling(OdbcmConnectionHandler *db_conn,
                                     uint32_t session_id,
                                     uint32_t configuration_id,
                                     void* key_struct,
@@ -248,7 +265,7 @@ UpplReturnCode Kt_Base::ReadSibling(OdbcmConnectionHandler *db_conn,
                                     uint32_t option1,
                                     uint32_t option2,
                                     uint32_t &max_rep_ct) {
-  UpplReturnCode read_status = PerformRead(db_conn, session_id,
+  UncRespCode read_status = PerformRead(db_conn, session_id,
                                            configuration_id,
                                            key_struct,
                                            val_struct,
@@ -274,12 +291,12 @@ UpplReturnCode Kt_Base::ReadSibling(OdbcmConnectionHandler *db_conn,
  *                  option1/option2 - specifies any additional condition
  *                  for read operation
  *                  max_rep_ct - specifies number of rows to be returned
- * * @return      : UPPL_RC_SUCCESS is returned when the response
+ * * @return      : UNC_RC_SUCCESS is returned when the response
  *                  is added to ipc session successfully.
- *                  UPPL_RC_ERR_* is returned when ipc response
+ *                  UNC_UPPL_RC_ERR_* is returned when ipc response
  *                  could not be added to sess.
  * */
-UpplReturnCode Kt_Base::ReadSiblingCount(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Base::ReadSiblingCount(OdbcmConnectionHandler *db_conn,
                                          uint32_t session_id,
                                          uint32_t configuration_id,
                                          void* key_struct,
@@ -301,14 +318,14 @@ UpplReturnCode Kt_Base::ReadSiblingCount(OdbcmConnectionHandler *db_conn,
       0};
   if (option1 != UNC_OPT1_NORMAL) {
     pfc_log_error("Sibling Count is provided on unsupported option1");
-    rsh.result_code = UPPL_RC_ERR_INVALID_OPTION1;
+    rsh.result_code = UNC_UPPL_RC_ERR_INVALID_OPTION1;
     int err = PhyUtil::sessOutRespHeader(sess, rsh);
     err |= AddKeyStructuretoSession(key_type, &sess, key_struct);
     if (err != 0) {
       pfc_log_debug("addOutput failed for physical_response_header");
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
-    return (UpplReturnCode)rsh.result_code;
+    return (UncRespCode)rsh.result_code;
   }
   uint32_t count = 0;
   // Structure used to send request to ODBC
@@ -336,9 +353,9 @@ UpplReturnCode Kt_Base::ReadSiblingCount(OdbcmConnectionHandler *db_conn,
   // count
   if (read_db_status != ODBCM_RC_SUCCESS) {
     if (read_db_status == ODBCM_RC_CONNECTION_ERROR) {
-      rsh.result_code = UPPL_RC_ERR_DB_ACCESS;
+      rsh.result_code = UNC_UPPL_RC_ERR_DB_ACCESS;
     } else {
-      rsh.result_code = UPPL_RC_ERR_DB_GET;
+      rsh.result_code = UNC_UPPL_RC_ERR_DB_GET;
     }
     // log error to log daemon
     pfc_log_error("Sibling Count operation has failed");
@@ -346,21 +363,21 @@ UpplReturnCode Kt_Base::ReadSiblingCount(OdbcmConnectionHandler *db_conn,
     err |= AddKeyStructuretoSession(key_type, &sess, key_struct);
     if (err != 0) {
       pfc_log_debug("addOutput failed for physical_response_header");
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
-    return (UpplReturnCode)rsh.result_code;
+    return (UncRespCode)rsh.result_code;
   } else {
     pfc_log_info("Count from DB: %d", count);
   }
-  rsh.result_code = UPPL_RC_SUCCESS;
+  rsh.result_code = UNC_RC_SUCCESS;
   int err = PhyUtil::sessOutRespHeader(sess, rsh);
   err |= AddKeyStructuretoSession(key_type, &sess, key_struct);
   if (err != 0) {
     pfc_log_debug("addOutput failed for physical_response_header");
-    return UPPL_RC_ERR_IPC_WRITE_ERROR;
+    return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
   }
   sess.addOutput(count);
-  return (UpplReturnCode)rsh.result_code;
+  return (UncRespCode)rsh.result_code;
 }
 
 /** ConfigurationChangeNotification
@@ -371,10 +388,10 @@ UpplReturnCode Kt_Base::ReadSiblingCount(OdbcmConnectionHandler *db_conn,
  *                  key_struct - specifies the key instance of KT
  *                  old_val_struct - old value struct of kt
  *                  new_val_struct - new value struct of kt
- * * @return      : UPPL_RC_SUCCESS is notified to northbound successfully or
- *                  UPPL_RC_ERR*
+ * * @return      : UNC_RC_SUCCESS is notified to northbound successfully or
+ *                  UNC_UPPL_RC_ERR*
  * */
-UpplReturnCode Kt_Base::ConfigurationChangeNotification(
+UncRespCode Kt_Base::ConfigurationChangeNotification(
     uint32_t data_type,
     uint32_t key_type,
     uint32_t oper_type,
@@ -382,7 +399,7 @@ UpplReturnCode Kt_Base::ConfigurationChangeNotification(
     void* old_val_struct,
     void* new_val_struct) {
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
-  UpplReturnCode status = UPPL_RC_SUCCESS;
+  UncRespCode status = UNC_RC_SUCCESS;
   int err = 0;
   pfc_ipcevtype_t event_type = GetEventType(key_type);
   // Create ServerEvent object to be sent to NB
@@ -403,9 +420,9 @@ UpplReturnCode Kt_Base::ConfigurationChangeNotification(
   if (err != 0) {
     pfc_log_error(
         "Server Event addOutput failed, return IPC_WRITE_ERROR");
-    status = UPPL_RC_ERR_IPC_WRITE_ERROR;
+    status = UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
   } else {
-    status = (UpplReturnCode) physical_layer->get_ipc_connection_manager()->
+    status = (UncRespCode) physical_layer->get_ipc_connection_manager()->
         SendEvent(&ser_evt);
     pfc_log_info(
         "Configuration notification status: %d for operation %d",
@@ -480,6 +497,11 @@ int Kt_Base::AddKeyStructuretoSession(uint32_t key_type,
       err |= sess->addOutput(*obj_key);
       break;
     }
+    case UNC_KT_DATAFLOW: {
+      key_dataflow_t *obj_key = reinterpret_cast<key_dataflow_t*>(key_struct);
+      err |= sess->addOutput(*obj_key);
+      break;
+    }
     case UNC_KT_CTR_DOMAIN: {
       key_ctr_domain_t *obj_key =
           reinterpret_cast<key_ctr_domain_t*>(key_struct);
@@ -823,44 +845,74 @@ void Kt_Base::ClearValueStructure(uint32_t key_type,
   }
 }
 
-UpplReturnCode Kt_Base::ValidateKtRoot(uint32_t operation,
+UncRespCode Kt_Base::ValidateKtRoot(uint32_t operation,
                                        uint32_t data_type) {
   if ((operation != UNC_OP_READ_NEXT) && (operation != UNC_OP_READ_BULK)) {
     pfc_log_error("Operations other than READ_NEXT and READ_BULK"
         "are not allowed");
-    return UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    return UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
   }
   if ((data_type != UNC_DT_CANDIDATE) && (data_type != UNC_DT_STARTUP) &&
       (data_type != UNC_DT_RUNNING) && (data_type != UNC_DT_STATE)) {
     pfc_log_error("Data type other than STARTUP/CANDIDATE/RUNNING/STATE"
         "are not allowed");
-    return UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    return UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
-UpplReturnCode Kt_Base::ValidateKtCtrlBdry(uint32_t operation,
+UncRespCode Kt_Base::ValidateKtDataflow(uint32_t operation,
+                                       uint32_t data_type) {
+  if (operation != UNC_OP_READ) {
+    pfc_log_error("Operations other than READ"
+        " are not allowed");
+    return UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+  }
+  if (data_type != UNC_DT_STATE) {
+    pfc_log_error("Data type other than STATE"
+        " are not allowed");
+    return UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+  }
+  return UNC_RC_SUCCESS;
+}
+
+UncRespCode Kt_Base::ValidateKtCtrlBdry(uint32_t operation,
                                            uint32_t data_type) {
   if ( (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE ||
       operation == UNC_OP_DELETE) && data_type != UNC_DT_CANDIDATE) {
     pfc_log_error("Configuration operation only allowed in CANDIDATE DB");
-    return UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    return UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
   } else if (operation >= UNC_OP_READ && data_type != UNC_DT_CANDIDATE &&
       data_type != UNC_DT_STARTUP && data_type != UNC_DT_RUNNING &&
       data_type != UNC_DT_STATE) {
     pfc_log_error(
         "Read operations are not allowed in requested data type %d",
         data_type);
-    return UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    return UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
   } else if (!(operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE ||
       operation == UNC_OP_DELETE || operation >= UNC_OP_READ)) {
     pfc_log_error("Invalid operation type");
-    return UPPL_RC_ERR_OPERATION_NOT_SUPPORTED;
+    return UNC_UPPL_RC_ERR_OPERATION_NOT_SUPPORTED;
+  }
+  return UNC_RC_SUCCESS;
+}
+
+UncRespCode Kt_Base::ValidateKtCtrDataflow(uint32_t operation,
+                                       uint32_t data_type) {
+  if (operation != UNC_OP_READ) {
+    pfc_log_error("Operations other than READ"
+        "are not allowed");
+    return UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+  }
+  if (data_type != UNC_DT_STATE) {
+    pfc_log_error("Data type other than STATE "
+        "are not allowed");
+    return UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
-UpplReturnCode Kt_Base::ValidateKtCtrDomain(uint32_t operation,
+UncRespCode Kt_Base::ValidateKtCtrDomain(uint32_t operation,
                                             uint32_t data_type) {
   if ((operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE ||
       operation == UNC_OP_DELETE) && data_type != UNC_DT_CANDIDATE &&
@@ -868,43 +920,43 @@ UpplReturnCode Kt_Base::ValidateKtCtrDomain(uint32_t operation,
     pfc_log_error(
         "Configuration operation only allowed in "
         "CANDIDATE/STATE/IMPORT DB");
-    return UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    return UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
   } else if (operation >= UNC_OP_READ && data_type != UNC_DT_CANDIDATE &&
       data_type != UNC_DT_STARTUP && data_type != UNC_DT_RUNNING &&
       data_type != UNC_DT_STATE) {
     pfc_log_error(
         "Read operations are not allowed in requested data type");
-    return UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    return UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
   } else if (!(operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE ||
       operation == UNC_OP_DELETE || operation >= UNC_OP_READ)) {
     pfc_log_error("Invalid operation type");
-    return UPPL_RC_ERR_OPERATION_NOT_SUPPORTED;
+    return UNC_UPPL_RC_ERR_OPERATION_NOT_SUPPORTED;
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
-UpplReturnCode Kt_Base::ValidateKtState(uint32_t operation,
+UncRespCode Kt_Base::ValidateKtState(uint32_t operation,
                                         uint32_t data_type) {
   if (operation >= UNC_OP_READ && data_type != UNC_DT_STATE) {
     pfc_log_error(
         "Read operations are not allowed in requested data type");
-    return UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    return UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
   } else if ( data_type != UNC_DT_STATE &&
       (operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE ||
           operation == UNC_OP_DELETE) &&
           data_type != UNC_DT_IMPORT) {
     pfc_log_error("Configuration operation only allowed in STATE DB");
-    return UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    return UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
   } else if (!(operation >= UNC_OP_READ ||
       operation == UNC_OP_CREATE || operation == UNC_OP_UPDATE ||
       operation == UNC_OP_DELETE)) {
     pfc_log_error("Invalid operation type");
-    return UPPL_RC_ERR_OPERATION_NOT_SUPPORTED;
+    return UNC_UPPL_RC_ERR_OPERATION_NOT_SUPPORTED;
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
-UpplReturnCode Kt_Base::get_oper_status(
+UncRespCode Kt_Base::get_oper_status(
     vector<OperStatusHolder> &ref_oper_status,
     unc_key_type_t key_type,
     void* key_struct,
@@ -944,11 +996,11 @@ UpplReturnCode Kt_Base::get_oper_status(
       oper_status = kt_oper_status.get_oper_status();
       pfc_log_debug("Returning oper_status from internal structure %d",
                     oper_status);
-      return UPPL_RC_SUCCESS;
+      return UNC_RC_SUCCESS;
     }
   }
   pfc_log_debug("oper_status not found in internal structure");
-  return UPPL_RC_ERR_NO_SUCH_INSTANCE;
+  return UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
 }
 
 void Kt_Base::ClearOperStatusHolder(vector<OperStatusHolder> &ref_oper_status) {
index 622d8c51200250257f6d22f707ea69208e26794b..28122f8a680f0789d179d5e4781455baf7b4482e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -52,23 +52,23 @@ Kt_Boundary::~Kt_Boundary() {
  * value_struct - the values for the new kt boundary instance
  * data_type - UNC_DT_* , Create only allowed in candidate
  * sess - ipc server session where the response has to be added
- * * @return    : UPPL_RC_SUCCESS is returned when the response
+ * * @return    : UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_Boundary::Create(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Boundary::Create(OdbcmConnectionHandler *db_conn,
                                    uint32_t session_id,
                                    uint32_t configuration_id,
                                    void* key_struct,
                                    void* val_struct,
                                    uint32_t data_type,
                                    ServerSession &sess) {
-  UpplReturnCode create_status = UPPL_RC_SUCCESS;
+  UncRespCode create_status = UNC_RC_SUCCESS;
   // Check whether operation is allowed on the given DT type
   if ((unc_keytype_datatype_t)data_type != UNC_DT_CANDIDATE) {
     pfc_log_error("Create operation is invoked on unsupported data type %d",
                   data_type);
-    create_status = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    create_status = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
   } else {
     create_status = CreateKeyInstance(db_conn, key_struct, val_struct,
                                       data_type, UNC_KT_BOUNDARY);
@@ -84,16 +84,16 @@ UpplReturnCode Kt_Boundary::Create(OdbcmConnectionHandler *db_conn,
       0,
       0,
       data_type,
-      create_status};
+      static_cast<uint32_t>(create_status)};
   rsh.result_code = create_status;
   int err = PhyUtil::sessOutRespHeader(sess, rsh);
   err |= sess.addOutput((uint32_t)UNC_KT_BOUNDARY);
   err |= sess.addOutput(*key_obj);
   if (err != 0) {
     pfc_log_error("Server session addOutput failed, so return IPC_WRITE_ERROR");
-    create_status = UPPL_RC_ERR_IPC_WRITE_ERROR;
+    create_status = UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
   } else {
-    create_status = UPPL_RC_SUCCESS;
+    create_status = UNC_RC_SUCCESS;
   }
   return create_status;
 }
@@ -105,15 +105,15 @@ UpplReturnCode Kt_Boundary::Create(OdbcmConnectionHandler *db_conn,
  * value_struct - the values for the new kt boundary instance
  * data_type - UNC_DT_* , Create only allowed in candidate
  * key_type-UNC_KT_BOUNDARY,value of unc_key_type_t
- * @return    : UPPL_RC_SUCCESS is returned when the create is success
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * @return    : UNC_RC_SUCCESS is returned when the create is success
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_Boundary::CreateKeyInstance(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Boundary::CreateKeyInstance(OdbcmConnectionHandler *db_conn,
                                               void* key_struct,
                                               void* val_struct,
                                               uint32_t data_type,
                                               uint32_t key_type) {
-  UpplReturnCode create_status = UPPL_RC_SUCCESS;
+  UncRespCode create_status = UNC_RC_SUCCESS;
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
 
   // Structure used to send request to ODBC
@@ -135,15 +135,15 @@ UpplReturnCode Kt_Boundary::CreateKeyInstance(OdbcmConnectionHandler *db_conn,
     if (create_db_status == ODBCM_RC_CONNECTION_ERROR) {
       // log fatal error to log daemon
       pfc_log_fatal("DB connection not available or cannot access DB");
-      create_status = UPPL_RC_ERR_DB_ACCESS;
+      create_status = UNC_UPPL_RC_ERR_DB_ACCESS;
     } else if (create_db_status == ODBCM_RC_PKEY_VIOLATION) {
       // log fatal error to log daemon
       pfc_log_error("Boundary instance already exists");
-      create_status = UPPL_RC_ERR_INSTANCE_EXISTS;
+      create_status = UNC_UPPL_RC_ERR_INSTANCE_EXISTS;
     } else {
       // log error to log daemon
       pfc_log_error("Create operation has failed");
-      create_status = UPPL_RC_ERR_DB_CREATE;
+      create_status = UNC_UPPL_RC_ERR_DB_CREATE;
     }
   } else {
     pfc_log_info("Create of a boundary in datatype(%d) is success", data_type);
@@ -160,23 +160,23 @@ UpplReturnCode Kt_Boundary::CreateKeyInstance(OdbcmConnectionHandler *db_conn,
  * value_struct - the values for the kt boundary instance
  * data_type - UNC_DT_* , Update only allowed in candidate
  * sess - ipc server session where the response has to be added
- * @return    : UPPL_RC_SUCCESS is returned when the response
+ * @return    : UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_Boundary::Update(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Boundary::Update(OdbcmConnectionHandler *db_conn,
                                    uint32_t session_id,
                                    uint32_t configuration_id,
                                    void* key_struct,
                                    void* val_struct,
                                    uint32_t data_type,
                                    ServerSession & sess) {
-  UpplReturnCode update_status = UPPL_RC_SUCCESS;
+  UncRespCode update_status = UNC_RC_SUCCESS;
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
   key_boundary_t *key_obj = reinterpret_cast<key_boundary_t*>(key_struct);
   if ((unc_keytype_datatype_t)data_type != UNC_DT_CANDIDATE) {
     pfc_log_error("Update operation is provided on unsupported data type");
-    update_status = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    update_status = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
   } else {
     // Structure used to send request to ODBC
     DBTableSchema kt_boundary_dbtableschema;
@@ -198,11 +198,11 @@ UpplReturnCode Kt_Boundary::Update(OdbcmConnectionHandler *db_conn,
           update_db_status == ODBCM_RC_CONNECTION_ERROR) {
         // log fatal error to log daemon
         pfc_log_fatal("DB connection not available or cannot access DB");
-        update_status = UPPL_RC_ERR_DB_ACCESS;
+        update_status = UNC_UPPL_RC_ERR_DB_ACCESS;
       } else if (update_db_status != ODBCM_RC_SUCCESS) {
         // log error to log daemon
         pfc_log_error("Update operation has failed");
-        update_status = UPPL_RC_ERR_DB_UPDATE;
+        update_status = UNC_UPPL_RC_ERR_DB_UPDATE;
       }
       if (update_db_status != ODBCM_RC_SUCCESS) {
         pfc_log_info("Update of a boundary in data_type(%d) is success",
@@ -220,15 +220,15 @@ UpplReturnCode Kt_Boundary::Update(OdbcmConnectionHandler *db_conn,
       0,
       0,
       data_type,
-      update_status};
+      static_cast<uint32_t>(update_status)};
   int err = PhyUtil::sessOutRespHeader(sess, rsh);
   err |= sess.addOutput((uint32_t)UNC_KT_BOUNDARY);
   err |= sess.addOutput(*key_obj);
   if (err != 0) {
     pfc_log_error("Server session addOutput failed, so return IPC_WRITE_ERROR");
-    update_status = UPPL_RC_ERR_IPC_WRITE_ERROR;
+    update_status = UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
   } else {
-    update_status = UPPL_RC_SUCCESS;
+    update_status = UNC_RC_SUCCESS;
   }
   return update_status;
 }
@@ -241,24 +241,24 @@ UpplReturnCode Kt_Boundary::Update(OdbcmConnectionHandler *db_conn,
  * key_struct - the key for the kt boundary instance
  * data_type - UNC_DT_* , delete only allowed in candidate
  * sess - ipc server session where the response has to be added
- * * @return    : UPPL_RC_SUCCESS is returned when the response
+ * * @return    : UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_Boundary::Delete(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Boundary::Delete(OdbcmConnectionHandler *db_conn,
                                    uint32_t session_id,
                                    uint32_t configuration_id,
                                    void* key_struct,
                                    uint32_t data_type,
                                    ServerSession & sess) {
-  UpplReturnCode delete_status = UPPL_RC_SUCCESS;
+  UncRespCode delete_status = UNC_RC_SUCCESS;
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
   key_boundary_t *key_obj= reinterpret_cast<key_boundary_t*>(key_struct);
   // Check whether operation is allowed on the given DT type
   if ((unc_keytype_datatype_t)data_type != UNC_DT_CANDIDATE) {
     pfc_log_error("Delete operation is invoked on unsupported data type %d",
                   data_type);
-    delete_status = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    delete_status = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
     // Populate the response to be sent in ServerSession
     physical_response_header rsh = {session_id,
         configuration_id,
@@ -267,16 +267,16 @@ UpplReturnCode Kt_Boundary::Delete(OdbcmConnectionHandler *db_conn,
         0,
         0,
         data_type,
-        delete_status};
+        static_cast<uint32_t>(delete_status)};
     int err = PhyUtil::sessOutRespHeader(sess, rsh);
     err |= sess.addOutput((uint32_t)UNC_KT_BOUNDARY);
     err |= sess.addOutput(*key_obj);
     if (err != 0) {
       pfc_log_debug(
           "Server session addOutput failed, so return IPC_WRITE_ERROR");
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   string boundary_id = (const char*)key_obj->boundary_id;
 
@@ -284,7 +284,7 @@ UpplReturnCode Kt_Boundary::Delete(OdbcmConnectionHandler *db_conn,
   delete_status = SendSemanticRequestToUPLL(key_struct,
                                             data_type);
 
-  if (delete_status != UPPL_RC_SUCCESS) {
+  if (delete_status != UNC_RC_SUCCESS) {
     // log error and send error response
     pfc_log_error("Boundary is referred in Logical,"
         "so delete is not allowed");
@@ -318,18 +318,18 @@ UpplReturnCode Kt_Boundary::Delete(OdbcmConnectionHandler *db_conn,
       if (delete_db_status == ODBCM_RC_CONNECTION_ERROR) {
         // log fatal error to log daemon
         pfc_log_fatal("DB connection not available or cannot access DB");
-        delete_status = UPPL_RC_ERR_DB_ACCESS;
+        delete_status = UNC_UPPL_RC_ERR_DB_ACCESS;
       } else if (delete_db_status == ODBCM_RC_ROW_NOT_EXISTS) {
         pfc_log_error("given instance does not exist");
-        delete_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+        delete_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
       } else {
         // log error to log daemon
-        delete_status = UPPL_RC_ERR_DB_DELETE;
+        delete_status = UNC_UPPL_RC_ERR_DB_DELETE;
       }
     } else {
       pfc_log_info("Delete of a boundary in data_type(%d) is success",
                    data_type);
-      delete_status = UPPL_RC_SUCCESS;
+      delete_status = UNC_RC_SUCCESS;
     }
   }
   // Populate the response to be sent in ServerSession
@@ -340,15 +340,15 @@ UpplReturnCode Kt_Boundary::Delete(OdbcmConnectionHandler *db_conn,
       0,
       0,
       data_type,
-      delete_status};
+      static_cast<uint32_t>(delete_status)};
   int err = PhyUtil::sessOutRespHeader(sess, rsh);
   err |= sess.addOutput((uint32_t)UNC_KT_BOUNDARY);
   err |= sess.addOutput(*key_obj);
   if (err != 0) {
     pfc_log_debug("Server session addOutput failed, so return IPC_WRITE_ERROR");
-    return UPPL_RC_ERR_IPC_WRITE_ERROR;
+    return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /** ReadInternal
@@ -358,11 +358,11 @@ UpplReturnCode Kt_Boundary::Delete(OdbcmConnectionHandler *db_conn,
  * boundary_val - vector of void* to the value for the kt boundary instance
  * data_type - UNC_DT_* , read allowed in candidate/running/startup/state
  * operation_type-UNC_OP_*,type of operation
- * @return    : UPPL_RC_SUCCESS is returned when the response
+ * @return    : UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_Boundary::ReadInternal(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Boundary::ReadInternal(OdbcmConnectionHandler *db_conn,
                                          vector<void *> &boundary_key,
                                          vector<void *> &boundary_val,
                                          uint32_t data_type,
@@ -380,12 +380,12 @@ UpplReturnCode Kt_Boundary::ReadInternal(OdbcmConnectionHandler *db_conn,
   val_boundary_st_t st_boundary_val;
   if (!boundary_val.empty()) {
     st_boundary_val =
-      *(reinterpret_cast<val_boundary_st_t *> (boundary_val[0]));
+        *(reinterpret_cast<val_boundary_st_t *> (boundary_val[0]));
     val_struct = reinterpret_cast<void *>(&st_boundary_val.boundary);
   }
 
   // Get read response from database
-  UpplReturnCode read_status = ReadBoundaryValFromDB(db_conn,
+  UncRespCode read_status = ReadBoundaryValFromDB(db_conn,
                                                      key_struct,
                                                      val_struct,
                                                      data_type,
@@ -395,9 +395,9 @@ UpplReturnCode Kt_Boundary::ReadInternal(OdbcmConnectionHandler *db_conn,
                                                      vect_val_boundary_st);
   boundary_key.clear();
   boundary_val.clear();
-  pfc_log_debug("ReadBoundaryValFromDB returned %d with response size %d",
-                read_status, static_cast<int>(vect_val_boundary_st.size()));
-  if (read_status == UPPL_RC_SUCCESS) {
+  pfc_log_debug("ReadBoundaryValFromDB returned %d with response size %"
+                PFC_PFMT_SIZE_T, read_status, vect_val_boundary_st.size());
+  if (read_status == UNC_RC_SUCCESS) {
     for (unsigned int iIndex = 0 ; iIndex < vect_boundary_id.size();
         ++iIndex) {
       key_boundary_t *key_boundary =
@@ -420,11 +420,11 @@ UpplReturnCode Kt_Boundary::ReadInternal(OdbcmConnectionHandler *db_conn,
  * max_rep_ct - specifies number of rows to be returned
  * parent_call - indicates whether parent has called this readbulk
  * is_read_next - indicates whether this function is invoked from readnext
- * @return    : UPPL_RC_SUCCESS is returned when the response
+ * @return    : UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_Boundary::ReadBulk(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Boundary::ReadBulk(OdbcmConnectionHandler *db_conn,
                                      void* key_struct,
                                      uint32_t data_type,
                                      uint32_t &max_rep_ct,
@@ -433,10 +433,10 @@ UpplReturnCode Kt_Boundary::ReadBulk(OdbcmConnectionHandler *db_conn,
                                      pfc_bool_t is_read_next,
                                      ReadRequest *read_req) {
   pfc_log_info("Processing ReadBulk of Kt_Boundary");
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
   if (data_type != UNC_DT_CANDIDATE && data_type != UNC_DT_RUNNING &&
       data_type != UNC_DT_STATE && data_type != UNC_DT_STARTUP) {
-    read_status = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    read_status = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
     pfc_log_debug("ReadBulk operation is not allowed in %d data type",
                   data_type);
     return read_status;
@@ -444,7 +444,7 @@ UpplReturnCode Kt_Boundary::ReadBulk(OdbcmConnectionHandler *db_conn,
 
   if (max_rep_ct == 0) {
     pfc_log_info("max_rep_ct is 0");
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   // check whether UNC_KT_BOUNDARY key instance is available in the request
   vector<val_boundary_st_t> vect_val_boundary;
@@ -457,17 +457,17 @@ UpplReturnCode Kt_Boundary::ReadBulk(OdbcmConnectionHandler *db_conn,
       max_rep_ct,
       vect_key_boundary,
       vect_val_boundary);
-  pfc_log_debug("read_status of ReadBulkInternal is %d with vector size %d",
-                read_status, static_cast<int>(vect_val_boundary.size()));
-  pfc_log_debug("read_status from ReadBulkInternal is %d with key size %d",
-                read_status, static_cast<int>(vect_key_boundary.size()));
-  if (read_status != UPPL_RC_SUCCESS) {
+  pfc_log_debug("read_status of ReadBulkInternal is %d with vector size %"
+                PFC_PFMT_SIZE_T, read_status, vect_val_boundary.size());
+  pfc_log_debug("read_status from ReadBulkInternal is %d with key size %"
+                PFC_PFMT_SIZE_T, read_status, vect_key_boundary.size());
+  if (read_status != UNC_RC_SUCCESS) {
     pfc_log_debug("Boundary read bulk internal is not success");
-    if (read_status == UPPL_RC_ERR_DB_ACCESS) {
+    if (read_status == UNC_UPPL_RC_ERR_DB_ACCESS) {
       pfc_log_debug("KtBoundary ReadBulk - Returning DB Access Error");
       return read_status;
     }
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   vector<key_boundary_t> ::iterator boundary_iter =
       vect_key_boundary.begin();
@@ -513,12 +513,12 @@ UpplReturnCode Kt_Boundary::ReadBulk(OdbcmConnectionHandler *db_conn,
     read_req->AddToBuffer(obj_sep_buffer);
     --max_rep_ct;
     if (max_rep_ct == 0) {
-      return UPPL_RC_SUCCESS;
+      return UNC_RC_SUCCESS;
     }
   }
   pfc_log_debug("reached end of key tree, read_status=%d",
                 read_status);
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /** ReadBulkInternal
@@ -531,11 +531,11 @@ UpplReturnCode Kt_Boundary::ReadBulk(OdbcmConnectionHandler *db_conn,
  * vect_key_boundary-indicates the fetched keys from db of val_boundary type
  * vect_val_boundary - indicates the fetched values
  * from db of val_boundary type
- * @return    : UPPL_RC_SUCCESS is returned when the response
+ * @return    : UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_Boundary::ReadBulkInternal(
+UncRespCode Kt_Boundary::ReadBulkInternal(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     void *val_struct,
@@ -545,7 +545,7 @@ UpplReturnCode Kt_Boundary::ReadBulkInternal(
     vector<val_boundary_st_t> &vect_val_boundary) {
   pfc_log_debug("Inside ReadBulkInternal of Kt-Boundary");
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
   ODBCM_RC_STATUS read_db_status = ODBCM_RC_SUCCESS;
   DBTableSchema kt_boundary_dbtableschema;
   vector<ODBCMOperator> vect_key_operations;
@@ -563,16 +563,16 @@ UpplReturnCode Kt_Boundary::ReadBulkInternal(
                   (unc_keytype_operation_t)UNC_OP_READ_BULK, db_conn);
   if (read_db_status == ODBCM_RC_RECORD_NOT_FOUND) {
     pfc_log_debug("No record found");
-    read_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+    read_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     return read_status;
   } else if (read_db_status == ODBCM_RC_CONNECTION_ERROR) {
-    read_status = UPPL_RC_ERR_DB_ACCESS;
+    read_status = UNC_UPPL_RC_ERR_DB_ACCESS;
     pfc_log_error("Read operation has failed with error %d", read_db_status);
     return read_status;
   } else if (read_db_status != ODBCM_RC_SUCCESS) {
     // log error to log daemon
     pfc_log_error("Read operation has failed with error %d", read_db_status);
-    read_status = UPPL_RC_ERR_DB_GET;
+    read_status = UNC_UPPL_RC_ERR_DB_GET;
     return read_status;
   }
   // From the values received from DB, populate val_boundary structure
@@ -591,10 +591,10 @@ UpplReturnCode Kt_Boundary::ReadBulkInternal(
  * value_struct - the value for the kt boundary instance
  * data_type - UNC_DT_*,type of database
  * operation_type - UNC_OP*,type of operation
- * @return    : UPPL_RC_SUCCESS is returned when the validation is successful
- * UPPL_RC_ERR_* is returned when validation is failure
+ * @return    : UNC_RC_SUCCESS is returned when the validation is successful
+ * UNC_UPPL_RC_ERR_* is returned when validation is failure
  * */
-UpplReturnCode Kt_Boundary::PerformSyntaxValidation(
+UncRespCode Kt_Boundary::PerformSyntaxValidation(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     void* val_struct,
@@ -602,7 +602,7 @@ UpplReturnCode Kt_Boundary::PerformSyntaxValidation(
     uint32_t data_type) {
   pfc_log_info("Performing Syntax Validation of KT_BOUNDARY");
 
-  UpplReturnCode ret_code = UPPL_RC_SUCCESS;
+  UncRespCode ret_code = UNC_RC_SUCCESS;
   pfc_ipcresp_t mandatory = PFC_TRUE;
 
   // Validate key structure
@@ -611,8 +611,8 @@ UpplReturnCode Kt_Boundary::PerformSyntaxValidation(
   map<string, Kt_Class_Attr_Syntax> attr_syntax_map =
       attr_syntax_map_all[UNC_KT_BOUNDARY];
   IS_VALID_STRING_KEY(BDRY_ID_STR, value, operation, ret_code, mandatory);
-  if (ret_code != UPPL_RC_SUCCESS) {
-    return UPPL_RC_ERR_CFG_SYNTAX;
+  if (ret_code != UNC_RC_SUCCESS) {
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
 
   // Validate value structure
@@ -626,8 +626,8 @@ UpplReturnCode Kt_Boundary::PerformSyntaxValidation(
     string value = reinterpret_cast<char*>(val_bdry->description);
     IS_VALID_STRING_VALUE(BDRY_DESCRIPTION_STR, value, operation,
                           valid_val, ret_code, mandatory);
-    if (ret_code != UPPL_RC_SUCCESS) {
-      return UPPL_RC_ERR_CFG_SYNTAX;
+    if (ret_code != UNC_RC_SUCCESS) {
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
 
     // validate controller_name1
@@ -636,12 +636,12 @@ UpplReturnCode Kt_Boundary::PerformSyntaxValidation(
     value = reinterpret_cast<char*>(val_bdry->controller_name1);
     IS_VALID_STRING_VALUE(BDRY_CTR_NAME1_STR, value, operation,
                           ctr1_valid_val, ret_code, mandatory);
-    if (ret_code != UPPL_RC_SUCCESS) {
-      return UPPL_RC_ERR_CFG_SYNTAX;
+    if (ret_code != UNC_RC_SUCCESS) {
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
     if (operation == UNC_OP_UPDATE && ctr1_valid_val == UNC_VF_VALID) {
       pfc_log_error("Controllername1 cannot be modified");
-      return UPPL_RC_ERR_CFG_SYNTAX;
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
 
     // validate domain_name1
@@ -650,12 +650,12 @@ UpplReturnCode Kt_Boundary::PerformSyntaxValidation(
     value = reinterpret_cast<char*>(val_bdry->domain_name1);
     IS_VALID_STRING_VALUE(BDRY_DM_NAME1_STR, value, operation,
                           dmn1_valid_val, ret_code, mandatory);
-    if (ret_code != UPPL_RC_SUCCESS) {
-      return UPPL_RC_ERR_CFG_SYNTAX;
+    if (ret_code != UNC_RC_SUCCESS) {
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
     if (operation == UNC_OP_UPDATE && dmn1_valid_val == UNC_VF_VALID) {
       pfc_log_error("Domainname1 cannot be modified");
-      return UPPL_RC_ERR_CFG_SYNTAX;
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
 
     // validate logical_port_id1
@@ -664,12 +664,12 @@ UpplReturnCode Kt_Boundary::PerformSyntaxValidation(
     value = reinterpret_cast<char*>(val_bdry->logical_port_id1);
     IS_VALID_STRING_VALUE(BDRY_PORT_ID1_STR, value, operation,
                           valid_val, ret_code, mandatory);
-    if (ret_code != UPPL_RC_SUCCESS) {
-      return UPPL_RC_ERR_CFG_SYNTAX;
+    if (ret_code != UNC_RC_SUCCESS) {
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
     if (operation == UNC_OP_UPDATE && valid_val == UNC_VF_VALID) {
       pfc_log_error("LogicalPortId1 cannot be modified");
-      return UPPL_RC_ERR_CFG_SYNTAX;
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
 
     // validate controller_name2
@@ -678,12 +678,12 @@ UpplReturnCode Kt_Boundary::PerformSyntaxValidation(
     value = reinterpret_cast<char*>(val_bdry->controller_name2);
     IS_VALID_STRING_VALUE(BDRY_CTR_NAME2_STR, value, operation,
                           ctr2_valid_val, ret_code, mandatory);
-    if (ret_code != UPPL_RC_SUCCESS) {
-      return UPPL_RC_ERR_CFG_SYNTAX;
+    if (ret_code != UNC_RC_SUCCESS) {
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
     if (operation == UNC_OP_UPDATE && ctr2_valid_val == UNC_VF_VALID) {
       pfc_log_error("Controllername2 cannot be modified");
-      return UPPL_RC_ERR_CFG_SYNTAX;
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
 
     // validate domain_name2
@@ -692,12 +692,12 @@ UpplReturnCode Kt_Boundary::PerformSyntaxValidation(
     value = reinterpret_cast<char*>(val_bdry->domain_name2);
     IS_VALID_STRING_VALUE(BDRY_DM_NAME2_STR, value, operation,
                           dmn2_valid_val, ret_code, mandatory);
-    if (ret_code != UPPL_RC_SUCCESS) {
-      return UPPL_RC_ERR_CFG_SYNTAX;
+    if (ret_code != UNC_RC_SUCCESS) {
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
     if (operation == UNC_OP_UPDATE && dmn2_valid_val == UNC_VF_VALID) {
       pfc_log_error("Domainname2 cannot be modified");
-      return UPPL_RC_ERR_CFG_SYNTAX;
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
 
     // validate logical_port_id2
@@ -706,21 +706,21 @@ UpplReturnCode Kt_Boundary::PerformSyntaxValidation(
     value = reinterpret_cast<char*>(val_bdry->logical_port_id2);
     IS_VALID_STRING_VALUE(BDRY_PORT_ID2_STR, value, operation,
                           valid_val, ret_code, mandatory);
-    if (ret_code != UPPL_RC_SUCCESS) {
-      return UPPL_RC_ERR_CFG_SYNTAX;
+    if (ret_code != UNC_RC_SUCCESS) {
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
     if (operation == UNC_OP_UPDATE && valid_val == UNC_VF_VALID) {
       pfc_log_error("LogicalPortId2 cannot be modified");
-      return UPPL_RC_ERR_CFG_SYNTAX;
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
 
     if (operation == UNC_OP_READ_SIBLING_BEGIN ||
         operation == UNC_OP_READ_SIBLING) {
-      UpplReturnCode validate_ret = ValidateSiblingFiltering(ctr1_valid_val,
+      UncRespCode validate_ret = ValidateSiblingFiltering(ctr1_valid_val,
                                                              ctr2_valid_val,
                                                              dmn1_valid_val,
                                                              dmn2_valid_val);
-      if (validate_ret != UPPL_RC_SUCCESS) {
+      if (validate_ret != UNC_RC_SUCCESS) {
         return validate_ret;
       }
     }
@@ -735,51 +735,51 @@ UpplReturnCode Kt_Boundary::PerformSyntaxValidation(
  * value_struct - specifies value of KT_BOUNDARY
  * operation - UNC_OP*,type of operation
  * data_type - UNC_DT*,type of database
- * @return    : UPPL_RC_SUCCESS if semantic valition is successful
- * or UPPL_RC_ERR_* if failed
+ * @return    : UNC_RC_SUCCESS if semantic valition is successful
+ * or UNC_UPPL_RC_ERR_* if failed
  * */
-UpplReturnCode Kt_Boundary::PerformSemanticValidation(
+UncRespCode Kt_Boundary::PerformSemanticValidation(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     void* val_struct,
     uint32_t operation,
     uint32_t data_type) {
-  UpplReturnCode status = UPPL_RC_SUCCESS;
+  UncRespCode status = UNC_RC_SUCCESS;
   pfc_log_debug("Inside PerformSemanticValidation of KT_BOUNDARY");
   key_boundary_t *obj_key_boundary
   = reinterpret_cast<key_boundary_t*>(key_struct);
   string boundary_id = (const char*)obj_key_boundary->boundary_id;
   vector<string> boundary_vect_key_value;
   boundary_vect_key_value.push_back(boundary_id);
-  UpplReturnCode key_status = IsKeyExists(db_conn,
+  UncRespCode key_status = IsKeyExists(db_conn,
                                           (unc_keytype_datatype_t)data_type,
                                           boundary_vect_key_value);
   pfc_log_debug("IsKeyExists status %d", key_status);
   // In case of create operation, key should not exist
   if (operation == UNC_OP_CREATE) {
-    if (key_status == UPPL_RC_SUCCESS) {
+    if (key_status == UNC_RC_SUCCESS) {
       pfc_log_error("Key instance already exists");
       pfc_log_error("Hence create operation not allowed");
-      status = UPPL_RC_ERR_INSTANCE_EXISTS;
-    } else if (key_status == UPPL_RC_ERR_DB_ACCESS) {
+      status = UNC_UPPL_RC_ERR_INSTANCE_EXISTS;
+    } else if (key_status == UNC_UPPL_RC_ERR_DB_ACCESS) {
       pfc_log_error("DB Access failure");
       status = key_status;
     }
   } else if (operation == UNC_OP_UPDATE || operation == UNC_OP_DELETE ||
       operation == UNC_OP_READ) {
     // In case of update/delete/read operation, key should exist
-    if (key_status == UPPL_RC_ERR_DB_ACCESS) {
+    if (key_status == UNC_UPPL_RC_ERR_DB_ACCESS) {
       pfc_log_error("DB Access failure");
       status = key_status;
-    } else if (key_status != UPPL_RC_SUCCESS) {
+    } else if (key_status != UNC_RC_SUCCESS) {
       pfc_log_error("Key instance does not exist");
       pfc_log_error("Hence update/delete/read operation not allowed");
-      status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+      status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     } else {
       pfc_log_info("key instance exist update/del/read operation allowed");
     }
   }
-  if (status != UPPL_RC_SUCCESS) {
+  if (status != UNC_RC_SUCCESS) {
     pfc_log_debug("Return Code SemanticValidation: %d", status);
     return status;
   }
@@ -808,15 +808,15 @@ UpplReturnCode Kt_Boundary::PerformSemanticValidation(
   if (ctr1_valid_val == UNC_VF_VALID) {
     controller_name1 = (const char*)obj_boundary_val->controller_name1;
     unc_keytype_ctrtype_t type = UNC_CT_UNKNOWN;
-    UpplReturnCode ctr_type_status =
+    UncRespCode ctr_type_status =
         PhyUtil::get_controller_type(db_conn, controller_name1,
                                      type,
                                      (unc_keytype_datatype_t) data_type);
-    if (ctr_type_status !=  UPPL_RC_SUCCESS) {
+    if (ctr_type_status !=  UNC_RC_SUCCESS) {
       pfc_log_error(
           "Operation %d is not allowed as controller1 instance %s not exists",
           operation, controller_name1.c_str());
-      return UPPL_RC_ERR_CFG_SEMANTIC;
+      return UNC_UPPL_RC_ERR_CFG_SEMANTIC;
     }
     pfc_log_debug("Controller1 type: %d", type);
     if (type != (unc_keytype_ctrtype_t) UNC_CT_UNKNOWN) {
@@ -826,7 +826,7 @@ UpplReturnCode Kt_Boundary::PerformSemanticValidation(
       if (lp1_valid_val == UNC_VF_INVALID || logical_port_id1.empty()) {
         pfc_log_info("logical port not valid/null for controller %s",
                      controller_name1.c_str());
-        return UPPL_RC_ERR_CFG_SEMANTIC;
+        return UNC_UPPL_RC_ERR_CFG_SEMANTIC;
       }
     } else {
       // validate domain name
@@ -836,7 +836,7 @@ UpplReturnCode Kt_Boundary::PerformSemanticValidation(
       if (dmn1_valid_val == UNC_VF_VALID && domain_name1 == DEFAULT_DOMAIN) {
         pfc_log_info("Default domain cannot be given for bypass controller %s",
                      controller_name1.c_str());
-        return UPPL_RC_ERR_CFG_SEMANTIC;
+        return UNC_UPPL_RC_ERR_CFG_SEMANTIC;
       }
     }
   }
@@ -853,15 +853,15 @@ UpplReturnCode Kt_Boundary::PerformSemanticValidation(
   if (ctr2_valid_val == UNC_VF_VALID) {
     controller_name2 = (const char*)obj_boundary_val->controller_name2;
     unc_keytype_ctrtype_t type = UNC_CT_UNKNOWN;
-    UpplReturnCode ctr_type_status =
+    UncRespCode ctr_type_status =
         PhyUtil::get_controller_type(db_conn, controller_name2,
                                      type,
                                      (unc_keytype_datatype_t) data_type);
-    if (ctr_type_status != UPPL_RC_SUCCESS) {
+    if (ctr_type_status != UNC_RC_SUCCESS) {
       pfc_log_error(
           "Operation %d is not allowed as controller instance %s not exists",
           operation, controller_name2.c_str());
-      return UPPL_RC_ERR_CFG_SEMANTIC;
+      return UNC_UPPL_RC_ERR_CFG_SEMANTIC;
     }
     pfc_log_debug("Controller2 type :%d ", type);
     if (type != (unc_keytype_ctrtype_t) UNC_CT_UNKNOWN) {
@@ -871,7 +871,7 @@ UpplReturnCode Kt_Boundary::PerformSemanticValidation(
       if (lp2_valid_val == UNC_VF_INVALID || logical_port_id2.empty()) {
         pfc_log_info("logicalport2 not valid/null for controller %s",
                      controller_name2.c_str());
-        return UPPL_RC_ERR_CFG_SEMANTIC;
+        return UNC_UPPL_RC_ERR_CFG_SEMANTIC;
       }
     } else {
       // validate domain name
@@ -881,7 +881,7 @@ UpplReturnCode Kt_Boundary::PerformSemanticValidation(
       if (dmn2_valid_val == UNC_VF_VALID && domain_name2 == DEFAULT_DOMAIN) {
         pfc_log_info("Default domain cannot be given for bypass controller %s",
                      controller_name2.c_str());
-        return UPPL_RC_ERR_CFG_SEMANTIC;
+        return UNC_UPPL_RC_ERR_CFG_SEMANTIC;
       }
     }
   }
@@ -906,7 +906,7 @@ UpplReturnCode Kt_Boundary::PerformSemanticValidation(
     pfc_log_error(
         "Controller name1, Controller name2 "
         "and domain name1, domain name2 are same");
-    status = UPPL_RC_ERR_CFG_SEMANTIC;
+    status = UNC_UPPL_RC_ERR_CFG_SEMANTIC;
     pfc_log_debug("Return Code SemanticValidation: %d", status);
     return status;
   }
@@ -1294,8 +1294,8 @@ void Kt_Boundary::FillBoundaryValueStructure(
     }
     obj_val_boundary_st.boundary = obj_val_boundary;
     vect_obj_val_boundary.push_back(obj_val_boundary_st);
-    pfc_log_debug("result - vect_obj_val_boundary size: %d",
-                  (unsigned int) vect_obj_val_boundary.size());
+    pfc_log_debug("result - vect_obj_val_boundary size: %"
+                   PFC_PFMT_SIZE_T, vect_obj_val_boundary.size());
   }
   return;
 }
@@ -1313,11 +1313,11 @@ void Kt_Boundary::FillBoundaryValueStructure(
  * option1,option2-additional info for read opeartions,UNC_OPT1/OPT2_*
  * max_rep_ct-max no of records to be read
  * @return   : Success or associated error code
- * UPPL_RC_SUCCESS is returned when the response
+ * UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  **/
-UpplReturnCode Kt_Boundary::PerformRead(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Boundary::PerformRead(OdbcmConnectionHandler *db_conn,
                                         uint32_t session_id,
                                         uint32_t configuration_id,
                                         void* key_struct,
@@ -1331,7 +1331,7 @@ UpplReturnCode Kt_Boundary::PerformRead(OdbcmConnectionHandler *db_conn,
   pfc_log_info("Inside PerformRead operation_type=%d data_type=%d",
                operation_type, data_type);
   key_boundary_t *obj_boundary = reinterpret_cast<key_boundary_t*>(key_struct);
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
   physical_response_header rsh = {session_id,
       configuration_id,
       operation_type,
@@ -1339,18 +1339,18 @@ UpplReturnCode Kt_Boundary::PerformRead(OdbcmConnectionHandler *db_conn,
       option1,
       option2,
       data_type,
-      0};
+      static_cast<uint32_t>(0)};
   if (option1 != UNC_OPT1_NORMAL) {
     pfc_log_error("Invalid option1 specified for read operation");
-    rsh.result_code = UPPL_RC_ERR_INVALID_OPTION1;
+    rsh.result_code = UNC_UPPL_RC_ERR_INVALID_OPTION1;
     int err = PhyUtil::sessOutRespHeader(sess, rsh);
     err |= sess.addOutput((uint32_t)UNC_KT_BOUNDARY);
     err |= sess.addOutput(*obj_boundary);
     if (err != 0) {
       pfc_log_debug("addOutput failed for physical_response_header");
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   if (operation_type == UNC_OP_READ) {
     max_rep_ct = 1;
@@ -1361,15 +1361,15 @@ UpplReturnCode Kt_Boundary::PerformRead(OdbcmConnectionHandler *db_conn,
       (unc_keytype_datatype_t)data_type != UNC_DT_STATE &&
       (unc_keytype_datatype_t)data_type != UNC_DT_IMPORT) {
     pfc_log_error("Data type is not allowed");
-    rsh.result_code = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    rsh.result_code = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
     int err = PhyUtil::sessOutRespHeader(sess, rsh);
     err |= sess.addOutput((uint32_t)UNC_KT_BOUNDARY);
     err |= sess.addOutput(*obj_boundary);
     if (err != 0) {
       pfc_log_error("addOutput failed for physical_response_header");
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   vector<key_boundary_t> vect_key_boundary;
   vector<val_boundary_st_t> vect_val_boundary_st;
@@ -1383,7 +1383,7 @@ UpplReturnCode Kt_Boundary::PerformRead(OdbcmConnectionHandler *db_conn,
                                       vect_val_boundary_st);
   rsh.result_code = read_status;
   rsh.max_rep_count = max_rep_ct;
-  if (read_status == UPPL_RC_SUCCESS) {
+  if (read_status == UNC_RC_SUCCESS) {
     for (unsigned int index = 0;
         index < vect_key_boundary.size();
         ++index) {
@@ -1397,23 +1397,23 @@ UpplReturnCode Kt_Boundary::PerformRead(OdbcmConnectionHandler *db_conn,
       }
     }
     if (rsh.max_rep_count == 0) {
-      rsh.result_code = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+      rsh.result_code = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
       int err = PhyUtil::sessOutRespHeader(sess, rsh);
       err |= sess.addOutput((uint32_t)UNC_KT_BOUNDARY);
       err |= sess.addOutput(*obj_boundary);
       if (err != 0) {
         pfc_log_error("addOutput failed for physical_response_header");
-        return UPPL_RC_ERR_IPC_WRITE_ERROR;
+        return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
       }
-      return UPPL_RC_SUCCESS;
+      return UNC_RC_SUCCESS;
     }
     int err = PhyUtil::sessOutRespHeader(sess, rsh);
     if (err != 0) {
       pfc_log_error("Failure in addOutput");
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
-    pfc_log_debug("From db, vect_boundary size is %d",
-                  static_cast<int>(vect_key_boundary.size()));
+    pfc_log_debug("From db, vect_boundary size is %"
+                  PFC_PFMT_SIZE_T, vect_key_boundary.size());
     for (unsigned int index = 0;
         index < vect_key_boundary.size();
         ++index) {
@@ -1443,7 +1443,7 @@ UpplReturnCode Kt_Boundary::PerformRead(OdbcmConnectionHandler *db_conn,
     err |= sess.addOutput(*obj_boundary);
     if (err != 0) {
       pfc_log_debug("addOutput failure for physical_reponse_header");
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
   }
   pfc_log_debug("Return value for read operation %d", read_status);
@@ -1465,11 +1465,11 @@ UpplReturnCode Kt_Boundary::PerformRead(OdbcmConnectionHandler *db_conn,
  * vect_val_boundary_st-instance of vector<val_boundary_st_t> 
  * is_state-flag to indicate whether data type is DT_STATE
  * @return    : Success or associated error code
- * UPPL_RC_SUCCESS is returned when the response
+ * UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  **/
-UpplReturnCode Kt_Boundary::ReadBoundaryValFromDB(
+UncRespCode Kt_Boundary::ReadBoundaryValFromDB(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     void* val_struct,
@@ -1481,10 +1481,10 @@ UpplReturnCode Kt_Boundary::ReadBoundaryValFromDB(
     pfc_bool_t is_state) {
   if (operation_type < UNC_OP_READ) {
     // Unsupported operation type for this function
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
   ODBCM_RC_STATUS read_db_status = ODBCM_RC_SUCCESS;
 
   // Common structures that will be used to send query to ODBC
@@ -1515,14 +1515,14 @@ UpplReturnCode Kt_Boundary::ReadBoundaryValFromDB(
 
   if (read_db_status == ODBCM_RC_RECORD_NOT_FOUND) {
     pfc_log_debug("No record found");
-    read_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+    read_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     return read_status;
   } else if (read_db_status == ODBCM_RC_CONNECTION_ERROR) {
-    read_status = UPPL_RC_ERR_DB_ACCESS;
+    read_status = UNC_UPPL_RC_ERR_DB_ACCESS;
     pfc_log_error("Read operation has failed with error %d", read_db_status);
     return read_status;
   } else if (read_db_status != ODBCM_RC_SUCCESS) {
-    read_status = UPPL_RC_ERR_DB_GET;
+    read_status = UNC_UPPL_RC_ERR_DB_GET;
     // log error to log daemon
     pfc_log_info("Read operation has failed with error %d", read_db_status);
     return read_status;
@@ -1534,7 +1534,7 @@ UpplReturnCode Kt_Boundary::ReadBoundaryValFromDB(
 
   if (vect_val_boundary_st.empty()) {
     // Read failed, return error
-    read_status = UPPL_RC_ERR_DB_GET;
+    read_status = UNC_UPPL_RC_ERR_DB_GET;
     // log error to log daemon
     pfc_log_info("Read operation has failed, after reading response");
   }
@@ -1546,11 +1546,11 @@ UpplReturnCode Kt_Boundary::ReadBoundaryValFromDB(
  * @param[in] : obj_key_struct-vector of void* to bdry key structures
  * row_status-CsRowStatus value
  * @return    : Success or associated error code
- * UPPL_RC_SUCCESS is returned when the response
+ * UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_Boundary::GetModifiedRows(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Boundary::GetModifiedRows(OdbcmConnectionHandler *db_conn,
                                             vector<void *> &obj_key_struct,
                                             CsRowStatus row_status) {
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
@@ -1566,7 +1566,7 @@ UpplReturnCode Kt_Boundary::GetModifiedRows(OdbcmConnectionHandler *db_conn,
   void *boundary_key = reinterpret_cast<void *>(&obj_key_boundary);
   void *boundary_val = reinterpret_cast<void *>(&val_struct);
 
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
   ODBCM_RC_STATUS read_db_status = ODBCM_RC_SUCCESS;
 
   DBTableSchema kt_boundary_dbtableschema;
@@ -1585,14 +1585,14 @@ UpplReturnCode Kt_Boundary::GetModifiedRows(OdbcmConnectionHandler *db_conn,
 
   if (read_db_status == ODBCM_RC_RECORD_NOT_FOUND) {
     pfc_log_debug("No record to read");
-    read_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+    read_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     return read_status;
   } else if (read_db_status == ODBCM_RC_CONNECTION_ERROR) {
-    read_status = UPPL_RC_ERR_DB_ACCESS;
+    read_status = UNC_UPPL_RC_ERR_DB_ACCESS;
     return read_status;
   } else if (read_db_status != ODBCM_RC_SUCCESS) {
     pfc_log_error("Read operation has failed");
-    read_status = UPPL_RC_ERR_DB_GET;
+    read_status = UNC_UPPL_RC_ERR_DB_GET;
     return read_status;
   }
 
@@ -1621,19 +1621,19 @@ UpplReturnCode Kt_Boundary::GetModifiedRows(OdbcmConnectionHandler *db_conn,
  * @Description : This function checks whether the boundary_id exists in DB
  * @param[in] : data_type-UNC_DT_*,type of database
  * key_values-vector of keys ins string
- * @return    : UPPL_RC_SUCCESS or UPPL_RC_ERR* based on operation type
+ * @return    : UNC_RC_SUCCESS or UNC_UPPL_RC_ERR* based on operation type
  * * */
-UpplReturnCode Kt_Boundary::IsKeyExists(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Boundary::IsKeyExists(OdbcmConnectionHandler *db_conn,
                                         unc_keytype_datatype_t data_type,
                                         const vector<string> &key_values) {
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
 
-  UpplReturnCode check_status = UPPL_RC_SUCCESS;
+  UncRespCode check_status = UNC_RC_SUCCESS;
 
   if (key_values.empty()) {
     // No key given, return failure
     pfc_log_info("No key given. Returning error");
-    return UPPL_RC_ERR_BAD_REQUEST;
+    return UNC_UPPL_RC_ERR_BAD_REQUEST;
   }
 
   string boundary_id = key_values[0];
@@ -1665,7 +1665,7 @@ UpplReturnCode Kt_Boundary::IsKeyExists(OdbcmConnectionHandler *db_conn,
 
   if (check_db_status == ODBCM_RC_CONNECTION_ERROR) {
     pfc_log_error("DB connection not available or cannot access DB");
-    check_status = UPPL_RC_ERR_DB_ACCESS;
+    check_status = UNC_UPPL_RC_ERR_DB_ACCESS;
   } else if (check_db_status == ODBCM_RC_ROW_EXISTS) {
     pfc_log_debug("DB returned success for Row exists");
     pfc_log_debug("Checking .db_return_status_ %d with %d",
@@ -1675,11 +1675,11 @@ UpplReturnCode Kt_Boundary::IsKeyExists(OdbcmConnectionHandler *db_conn,
       pfc_log_debug("DB returned success for Row exists");
     } else {
       pfc_log_info("DB Returned failure for IsRowExists");
-      check_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+      check_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     }
   } else {
     pfc_log_info("DB Returned failure for IsRowExists");
-    check_status = UPPL_RC_ERR_DB_GET;
+    check_status = UNC_UPPL_RC_ERR_DB_GET;
   }
   return check_status;
 }
@@ -1733,16 +1733,16 @@ void Kt_Boundary::Fill_Attr_Syntax_Map() {
  * is being referred in Logical
  * @param[in] : key_boundary - specifies key instance of KT_BOUNDARY
  * data_type-UNC_DT_*,type of database
- * @return    : UPPL_RC_SUCCESS if boundary is not referred
- * or UPPL_RC_ERR_* if boundary is referred in logical
+ * @return    : UNC_RC_SUCCESS if boundary is not referred
+ * or UNC_UPPL_RC_ERR_* if boundary is referred in logical
  **/
-UpplReturnCode Kt_Boundary::SendSemanticRequestToUPLL(void* key_struct,
+UncRespCode Kt_Boundary::SendSemanticRequestToUPLL(void* key_struct,
                                                       uint32_t data_type) {
   // Incase for UNC_KT_BOUNDARY delete,
   // check whether any referenced object
   // Is present in Logical Layer,
   // If yes DELETE should not be allowed
-  UpplReturnCode status = UPPL_RC_SUCCESS;
+  UncRespCode status = UNC_RC_SUCCESS;
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
 
   status = physical_layer->get_ipc_connection_manager()->
@@ -1751,7 +1751,7 @@ UpplReturnCode Kt_Boundary::SendSemanticRequestToUPLL(void* key_struct,
                                                             data_type);
   pfc_log_debug("In SendSemanticRequest status=%d", status);
   // Boundary is being referred
-  if (status != UPPL_RC_SUCCESS) {
+  if (status != UNC_RC_SUCCESS) {
     // log error and send error response
     pfc_log_error("Boundary is being referred in Logical");
   }
@@ -1793,20 +1793,20 @@ UpplBoundaryOperStatus Kt_Boundary::getBoundaryInputOperStatus(
     ctrl_data_type = UNC_DT_RUNNING;
   }
   // Get the controller's oper status and decide on the oper_status
-  UpplReturnCode read_oper_status = get_oper_status(
+  UncRespCode read_oper_status = get_oper_status(
       ref_oper_status,
       UNC_KT_CONTROLLER,
       reinterpret_cast<void*>(&ctr_key),
       ctr_oper_status);
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
-  if (read_oper_status != UPPL_RC_SUCCESS) {
+  UncRespCode read_status = UNC_RC_SUCCESS;
+  if (read_oper_status != UNC_RC_SUCCESS) {
     read_status = controller.GetOperStatus(
         db_conn, ctrl_data_type, key_type_struct, ctr_oper_status);
     pfc_log_info("Controller's oper_status %d", ctr_oper_status);
-    ADD_CTRL_OPER_STATUS(controller_name, ctr_oper_status);
+    ADD_CTRL_OPER_STATUS(controller_name, ctr_oper_status, ref_oper_status);
   }
 
-  if (read_status == UPPL_RC_SUCCESS &&
+  if (read_status == UNC_RC_SUCCESS &&
       ctr_oper_status != UPPL_CONTROLLER_OPER_DOWN) {
     // Boundary oper status does not depends on domain
     if (domain_name.empty()) {
@@ -1824,11 +1824,11 @@ UpplBoundaryOperStatus Kt_Boundary::getBoundaryInputOperStatus(
     if (data_type == UNC_DT_IMPORT) {
       ctr_data_type = UNC_DT_RUNNING;
     }
-    UpplReturnCode ctr_type_status =
+    UncRespCode ctr_type_status =
         PhyUtil::get_controller_type(db_conn, controller_name,
                                      ctrl_type,
                                      (unc_keytype_datatype_t) ctr_data_type);
-    if (ctr_type_status == UPPL_RC_SUCCESS &&
+    if (ctr_type_status == UNC_RC_SUCCESS &&
         ctrl_type == (unc_keytype_ctrtype_t) UNC_CT_UNKNOWN) {
       boundary_oper_status = UPPL_BOUNDARY_OPER_UP;
       pfc_log_info(
@@ -1847,19 +1847,19 @@ UpplBoundaryOperStatus Kt_Boundary::getBoundaryInputOperStatus(
     memcpy(logical_port_key.port_id,
            logical_port_id.c_str(),
            logical_port_id.length()+1);
-    UpplReturnCode read_oper_status = get_oper_status(
+    UncRespCode read_oper_status = get_oper_status(
         ref_oper_status,
         UNC_KT_LOGICAL_PORT,
         reinterpret_cast<void*>(&logical_port_key),
         logical_port_oper_status);
-    if (read_oper_status != UPPL_RC_SUCCESS) {
+    if (read_oper_status != UNC_RC_SUCCESS) {
       key_type_struct = reinterpret_cast<void*>(&logical_port_key);
       Kt_LogicalPort logical_port;
       // Get the logical_port's oper status and decide on the oper_status
       read_status = logical_port.GetOperStatus(db_conn, data_type,
                                                key_type_struct,
                                                logical_port_oper_status);
-      if (read_status != UPPL_RC_SUCCESS) {
+      if (read_status != UNC_RC_SUCCESS) {
         if (data_type == UNC_DT_IMPORT) {
           // Check in running db as well
           read_status = logical_port.GetOperStatus(db_conn, UNC_DT_RUNNING,
@@ -1868,18 +1868,22 @@ UpplBoundaryOperStatus Kt_Boundary::getBoundaryInputOperStatus(
           pfc_log_info("Logical_Port's oper_status %d",
                        logical_port_oper_status);
         }
-        if (read_status != UPPL_RC_SUCCESS) {
+        if (read_status != UNC_RC_SUCCESS) {
           pfc_log_info("Returning boundary_oper_status %d",
                        boundary_oper_status);
           return boundary_oper_status;
         } else {
           pfc_log_info("Logical_Port's oper_status %d",
                        logical_port_oper_status);
-          ADD_LP_PORT_OPER_STATUS(logical_port_key, logical_port_oper_status);
+          ADD_LP_PORT_OPER_STATUS(logical_port_key,
+                                  logical_port_oper_status,
+                                  ref_oper_status);
         }
       } else {
         pfc_log_info("Logical_Port's oper_status %d", logical_port_oper_status);
-        ADD_LP_PORT_OPER_STATUS(logical_port_key, logical_port_oper_status);
+        ADD_LP_PORT_OPER_STATUS(logical_port_key,
+                                logical_port_oper_status,
+                                ref_oper_status);
       }
     }
     if (logical_port_oper_status == UPPL_LOGICAL_PORT_OPER_UP) {
@@ -1902,18 +1906,16 @@ UpplBoundaryOperStatus Kt_Boundary::getBoundaryInputOperStatus(
  * value_struct-void* to bdry val structure
  * @return    : Success or associated error code
  */
-UpplReturnCode Kt_Boundary::HandleOperStatus(
+UncRespCode Kt_Boundary::HandleOperStatus(
     OdbcmConnectionHandler *db_conn,
     uint32_t data_type,
     void *key_struct,
     void *value_struct,
     vector<OperStatusHolder> &ref_oper_status) {
-  FN_START_TIME("HandleOperStatus", "Boundary");
-  UpplReturnCode return_code = UPPL_RC_SUCCESS;
+  UncRespCode return_code = UNC_RC_SUCCESS;
   UpplBoundaryOperStatus boundary_oper_status = UPPL_BOUNDARY_OPER_UNKNOWN;
   if (value_struct == NULL) {
     pfc_log_info("Value struct is NULL- Returning SUCCESS");
-    FN_END_TIME("HandleOperStatus", "Boundary");
     return return_code;
   }
   string controller_name = "";
@@ -1924,7 +1926,6 @@ UpplReturnCode Kt_Boundary::HandleOperStatus(
   if (obj_val_boundary->valid[kIdxBoundaryControllerName1] != UNC_VF_VALID &&
       obj_val_boundary->valid[kIdxBoundaryControllerName2] != UNC_VF_VALID) {
     pfc_log_info("Controller name not valid- Returning SUCCESS");
-    FN_END_TIME("HandleOperStatus", "Boundary");
     return return_code;
   }
   bool ctr1_valid = false;
@@ -1954,7 +1955,6 @@ UpplReturnCode Kt_Boundary::HandleOperStatus(
     return_code = SetOperStatus(db_conn, UNC_DT_STATE, NULL, value_struct,
                                 boundary_oper_status);
     pfc_log_info("Set Boundary oper status status %d", return_code);
-    FN_END_TIME("HandleOperStatus", "Boundary");
     return return_code;
   }
   pfc_log_debug("Check the secondary controller/domain/lp set");
@@ -1962,7 +1962,7 @@ UpplReturnCode Kt_Boundary::HandleOperStatus(
   vector<key_boundary_t> vect_key_boundary;
   vector<val_boundary_st_t> vect_val_boundary_st;
   uint32_t max_rep_cnt = UPPL_MAX_REP_CT;
-  UpplReturnCode read_status = ReadBoundaryValFromDB(
+  UncRespCode read_status = ReadBoundaryValFromDB(
       db_conn, NULL,
       value_struct,
       UNC_DT_STATE,
@@ -1970,13 +1970,12 @@ UpplReturnCode Kt_Boundary::HandleOperStatus(
       max_rep_cnt,
       vect_key_boundary,
       vect_val_boundary_st);
-  if (read_status != UPPL_RC_SUCCESS) {
+  if (read_status != UNC_RC_SUCCESS) {
     pfc_log_debug("No boundaries associated with given controller name");
-    FN_END_TIME("HandleOperStatus", "Boundary");
     return return_code;
   }
-  pfc_log_debug("From db, vect_boundary size is %d",
-                static_cast<int>(vect_key_boundary.size()));
+  pfc_log_debug("From db, vect_boundary size is %"
+                PFC_PFMT_SIZE_T, vect_key_boundary.size());
   for (unsigned int index = 0;
       index < vect_key_boundary.size();
       ++index) {
@@ -2016,7 +2015,6 @@ UpplReturnCode Kt_Boundary::HandleOperStatus(
     (&vect_val_boundary_st[index].boundary),
     second_oper_status);
   }
-  FN_END_TIME("HandleOperStatus", "Boundary");
   return return_code;
 }
 
@@ -2027,14 +2025,14 @@ UpplReturnCode Kt_Boundary::HandleOperStatus(
  * value_struct-void* to bdry value structure
  * oper_status-oper status of boundary 
  * @return    : Success or associated error code,
- *              UPPL_RC_SUCCESS/ERR*
+ *              UNC_RC_SUCCESS/ERR*
  */
-UpplReturnCode Kt_Boundary::SetOperStatus(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Boundary::SetOperStatus(OdbcmConnectionHandler *db_conn,
                                           uint32_t data_type,
                                           void* key_struct,
                                           void* value_struct,
                                           UpplBoundaryOperStatus oper_status) {
-  UpplReturnCode set_status_1 = UPPL_RC_SUCCESS;
+  UncRespCode set_status_1 = UNC_RC_SUCCESS;
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
   vector<TableAttrSchema> vect_table_attr_schema;
   list < vector<TableAttrSchema> > row_list;
@@ -2042,7 +2040,7 @@ UpplReturnCode Kt_Boundary::SetOperStatus(OdbcmConnectionHandler *db_conn,
   string empty = "";
   string controller_name = "";
   string domain_name = "";
-  string logical_port_id = ""; 
+  string logical_port_id = "";
   map<string, uint8_t> bdry_notfn;
   bool ctr1_valid = false;
   if (value_struct != NULL) {
@@ -2068,7 +2066,7 @@ UpplReturnCode Kt_Boundary::SetOperStatus(OdbcmConnectionHandler *db_conn,
       }
     } else {
       pfc_log_info("controller_name1/2 flag is not valid");
-      return UPPL_RC_ERR_BAD_REQUEST;
+      return UNC_UPPL_RC_ERR_BAD_REQUEST;
     }
   }
   if (key_struct != NULL) {
@@ -2081,10 +2079,10 @@ UpplReturnCode Kt_Boundary::SetOperStatus(OdbcmConnectionHandler *db_conn,
                           boun_id.length(), DATATYPE_UINT8_ARRAY_32,
                           vect_table_attr_schema);
     uint8_t oper_status_in_db = 0;
-    UpplReturnCode get_status = GetOperStatus(db_conn, data_type,
+    UncRespCode get_status = GetOperStatus(db_conn, data_type,
                                               key_struct,
                                               oper_status_in_db);
-    if (get_status == UPPL_RC_SUCCESS) {
+    if (get_status == UNC_RC_SUCCESS) {
       bdry_notfn[boun_id] = oper_status_in_db;
     }
   } else if (value_struct != NULL) {
@@ -2135,7 +2133,7 @@ UpplReturnCode Kt_Boundary::SetOperStatus(OdbcmConnectionHandler *db_conn,
                               vect_table_attr_schema);
       }
     }
-    UpplReturnCode get_status = GetAllBoundaryOperStatus(db_conn,
+    UncRespCode get_status = GetAllBoundaryOperStatus(db_conn,
                                                          controller_name,
                                                          domain_name,
                                                          logical_port_id,
@@ -2143,7 +2141,7 @@ UpplReturnCode Kt_Boundary::SetOperStatus(OdbcmConnectionHandler *db_conn,
                                                          data_type);
     pfc_log_debug("Read existing oper status return %d", get_status);
   } else {
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 
   // oper_status
@@ -2167,10 +2165,10 @@ UpplReturnCode Kt_Boundary::SetOperStatus(OdbcmConnectionHandler *db_conn,
     pfc_log_info(
         "oper_status update operation not success"
         " for controller/domain/logical_port set 1");
-    set_status_1 = UPPL_RC_ERR_DB_UPDATE;
+    set_status_1 = UNC_UPPL_RC_ERR_DB_UPDATE;
   }
 
-  if (set_status_1 == UPPL_RC_SUCCESS) {
+  if (set_status_1 == UNC_RC_SUCCESS) {
     pfc_log_debug("Sending boundary oper status notification");
     // Send notification
     map<string, uint8_t> :: iterator iter = bdry_notfn.begin();
@@ -2186,7 +2184,7 @@ UpplReturnCode Kt_Boundary::SetOperStatus(OdbcmConnectionHandler *db_conn,
       pfc_log_debug("Oper_status in db %d, new oper_status %d",
                     oper_status_db, oper_status);
       if (oper_status_db != oper_status) {
-        UpplReturnCode oper_notfn = SendOperStatusNotification(bdry_key,
+        UncRespCode oper_notfn = SendOperStatusNotification(bdry_key,
                                                                oper_status_db,
                                                                oper_status);
         pfc_log_debug("Notification Status - %d for boundary_id %s",
@@ -2194,7 +2192,7 @@ UpplReturnCode Kt_Boundary::SetOperStatus(OdbcmConnectionHandler *db_conn,
       }
     }
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /** IsBoundaryReferred
@@ -2321,20 +2319,20 @@ pfc_bool_t Kt_Boundary::IsBoundaryReferred(OdbcmConnectionHandler *db_conn,
  * @Description : This function gets the valid flag from db
  * @param[in] : key_struct-void* to bdry key structure
  * val_boundary_valid_st-instance of val_boundary_st_t
- * @return    : Success or associated error code,UPPL_RC_SUCCESS/ERR*
+ * @return    : Success or associated error code,UNC_RC_SUCCESS/ERR*
  * */
-UpplReturnCode Kt_Boundary::GetBoundaryValidFlag(
+UncRespCode Kt_Boundary::GetBoundaryValidFlag(
     OdbcmConnectionHandler *db_conn,
     void *key_struct,
     val_boundary_st_t &val_boundary_valid_st,
     uint32_t data_type) {
-  UpplReturnCode return_code = UPPL_RC_SUCCESS;
+  UncRespCode return_code = UNC_RC_SUCCESS;
   vector<void *> vect_key_boundary;
   vect_key_boundary.push_back(key_struct);
   vector<void *> vect_val_boundary;
   return_code = ReadInternal(db_conn, vect_key_boundary, vect_val_boundary,
                              data_type, UNC_OP_READ);
-  if (return_code == UPPL_RC_SUCCESS) {
+  if (return_code == UNC_RC_SUCCESS) {
     val_boundary_st_t *val_boundary_new_valid_st =
         reinterpret_cast<val_boundary_st_t*>(vect_val_boundary[0]);
     if (val_boundary_new_valid_st != NULL) {
@@ -2404,9 +2402,9 @@ void Kt_Boundary::FrameCsAttrValue(string attr_value,
  * @Description : This function validates the read sibling filtering conditions
  * @param[in] : ctr1_valid_val,ctr2_valid_val-valid_value of controller_name
  * dmn1_valid_val,dmn2_valid_val-valid_value of domain_name
- * @return    : Success or associated error code,UPPL_RC_SUCCESS/ERR*
+ * @return    : Success or associated error code,UNC_RC_SUCCESS/ERR*
  * */
-UpplReturnCode Kt_Boundary::ValidateSiblingFiltering(
+UncRespCode Kt_Boundary::ValidateSiblingFiltering(
     unsigned int ctr1_valid_val,
     unsigned int ctr2_valid_val,
     unsigned int dmn1_valid_val,
@@ -2414,14 +2412,14 @@ UpplReturnCode Kt_Boundary::ValidateSiblingFiltering(
   if (dmn1_valid_val == UNC_VF_VALID && ctr1_valid_val != UNC_VF_VALID) {
     pfc_log_error(
         "domain_name1 is valid and controller_name1 is not valid");
-    return UPPL_RC_ERR_CFG_SYNTAX;
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
   if (dmn2_valid_val == UNC_VF_VALID && ctr2_valid_val != UNC_VF_VALID) {
     pfc_log_error(
         "domain_name2 is valid and controller_name2 is not valid");
-    return UPPL_RC_ERR_CFG_SYNTAX;
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 
@@ -2430,15 +2428,15 @@ UpplReturnCode Kt_Boundary::ValidateSiblingFiltering(
  * @param[in] : key_struct-void* to bdry key structure
  * data type-UNC_DT_*,type of database
  * param[out]:oper_status-oper status of boundary
- * @return    : Success or associated error code,UPPL_RC_SUCCESS/ERR*
+ * @return    : Success or associated error code,UNC_RC_SUCCESS/ERR*
  */
-UpplReturnCode Kt_Boundary::GetOperStatus(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Boundary::GetOperStatus(OdbcmConnectionHandler *db_conn,
                                           uint32_t data_type,
                                           void* key_struct,
                                           uint8_t &oper_status) {
   pfc_log_debug("Begin GetOperStatus");
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
-  UpplReturnCode return_code = UPPL_RC_SUCCESS;
+  UncRespCode return_code = UNC_RC_SUCCESS;
   vector<string> vect_prim_keys;
   vector<TableAttrSchema> vect_table_attr_schema;
   list < vector<TableAttrSchema> > row_list;
@@ -2483,7 +2481,7 @@ UpplReturnCode Kt_Boundary::GetOperStatus(OdbcmConnectionHandler *db_conn,
       }
     }
   } else {
-    return_code = UPPL_RC_ERR_DB_GET;
+    return_code = UNC_UPPL_RC_ERR_DB_GET;
   }
   return return_code;
 }
@@ -2494,13 +2492,13 @@ UpplReturnCode Kt_Boundary::GetOperStatus(OdbcmConnectionHandler *db_conn,
  * @param[in] : bdry_key-object of bdry key structure
  * old_oper_st-old oper status 
  * new_oper_st-new oper status
- * @return    : Success or associated error code,UPPL_RC_SUCCESS/ERR*
+ * @return    : Success or associated error code,UNC_RC_SUCCESS/ERR*
  * */
-UpplReturnCode Kt_Boundary::SendOperStatusNotification(
+UncRespCode Kt_Boundary::SendOperStatusNotification(
     key_boundary_t bdry_key,
     uint8_t old_oper_st,
     uint8_t new_oper_st) {
-  UpplReturnCode status = UPPL_RC_SUCCESS;
+  UncRespCode status = UNC_RC_SUCCESS;
   int err = 0;
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
   val_boundary_st_t old_val_bdry, new_val_bdry;
@@ -2511,9 +2509,9 @@ UpplReturnCode Kt_Boundary::SendOperStatusNotification(
   new_val_bdry.oper_status = new_oper_st;
   new_val_bdry.valid[kIdxBoundaryStOperStatus] = UNC_VF_VALID;
   ServerEvent ser_evt((pfc_ipcevtype_t)UPPL_EVENTS_KT_BOUNDARY, err);
-  northbound_event_header rsh = {UNC_OP_UPDATE,
-      UNC_DT_STATE,
-      UNC_KT_BOUNDARY};
+  northbound_event_header rsh = {static_cast<uint32_t>(UNC_OP_UPDATE),
+      static_cast<uint32_t>(UNC_DT_STATE),
+      static_cast<uint32_t>(UNC_KT_BOUNDARY)};
   err = PhyUtil::sessOutNBEventHeader(ser_evt, rsh);
   err |= ser_evt.addOutput(bdry_key);
   err |= ser_evt.addOutput(new_val_bdry);
@@ -2521,13 +2519,13 @@ UpplReturnCode Kt_Boundary::SendOperStatusNotification(
   if (err != 0) {
     pfc_log_error(
         "Server Event addOutput failed, return IPC_WRITE_ERROR");
-    status = UPPL_RC_ERR_IPC_WRITE_ERROR;
+    status = UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
   } else {
     pfc_log_debug("%s", (IpctUtil::get_string(bdry_key)).c_str());
     pfc_log_debug("%s", (IpctUtil::get_string(new_val_bdry)).c_str());
     pfc_log_debug("%s", (IpctUtil::get_string(old_val_bdry)).c_str());
     // Call IPC server to post the event
-    status = (UpplReturnCode) physical_layer
+    status = (UncRespCode) physical_layer
         ->get_ipc_connection_manager()->SendEvent(&ser_evt);
   }
   return status;
@@ -2543,7 +2541,7 @@ UpplReturnCode Kt_Boundary::SendOperStatusNotification(
  * data_type-UNC_DT_*,type of database
  * @return    :Success or associated error code 
  */
-UpplReturnCode Kt_Boundary::GetAllBoundaryOperStatus(
+UncRespCode Kt_Boundary::GetAllBoundaryOperStatus(
     OdbcmConnectionHandler *db_conn,
     string controller_name,
     string domain_name,
@@ -2552,7 +2550,7 @@ UpplReturnCode Kt_Boundary::GetAllBoundaryOperStatus(
     uint32_t data_type) {
   pfc_log_debug("Begin GetAllBoundaryOperStatus");
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
-  UpplReturnCode return_code = UPPL_RC_SUCCESS;
+  UncRespCode return_code = UNC_RC_SUCCESS;
   uint32_t max_rep_ct = UPPL_MAX_REP_CT;
   vector<TableAttrSchema> vect_table_attr_schema;
   list < vector<TableAttrSchema> > row_list;
@@ -2605,7 +2603,7 @@ UpplReturnCode Kt_Boundary::GetAllBoundaryOperStatus(
                   (unc_keytype_operation_t)UNC_OP_READ_BULK, db_conn);
   pfc_log_debug("GetBulk return %d", read_db_status);
   if (read_db_status != ODBCM_RC_SUCCESS) {
-    return_code = UPPL_RC_ERR_DB_GET;
+    return_code = UNC_UPPL_RC_ERR_DB_GET;
   }
   list < vector<TableAttrSchema> >& res_boundary_row_list =
       kt_boundary_dbtableschema.get_row_list();
@@ -2641,7 +2639,7 @@ UpplReturnCode Kt_Boundary::GetAllBoundaryOperStatus(
     }
     bdry_notfn[bdry_id] = oper_status;
   }
-  return_code = UPPL_RC_SUCCESS;
+  return_code = UNC_RC_SUCCESS;
   vector<TableAttrSchema> vect_table_attr_schema_1;
   list < vector<TableAttrSchema> > row_list_1;
   vector<string> vect_prim_keys_1;
@@ -2690,7 +2688,7 @@ UpplReturnCode Kt_Boundary::GetAllBoundaryOperStatus(
                   (unc_keytype_operation_t)UNC_OP_READ_BULK, db_conn);
   pfc_log_debug("GetBulk return %d", read_db_status);
   if (read_db_status != ODBCM_RC_SUCCESS) {
-    return_code = UPPL_RC_ERR_DB_GET;
+    return_code = UNC_UPPL_RC_ERR_DB_GET;
   }
   list < vector<TableAttrSchema> >& res_boundary_row_list_1 =
       kt_dbtableschema.get_row_list();
@@ -2736,21 +2734,21 @@ UpplReturnCode Kt_Boundary::GetAllBoundaryOperStatus(
  * data_type-UNC_DT_*,type of database
  * @return    :Success or associated error code
  */
-UpplReturnCode Kt_Boundary::CheckBoundaryExistence(
+UncRespCode Kt_Boundary::CheckBoundaryExistence(
     OdbcmConnectionHandler *db_conn,
     void *key_struct,
     void *val_struct,
     uint32_t data_type) {
-  UpplReturnCode status = UPPL_RC_SUCCESS;
+  UncRespCode status = UNC_RC_SUCCESS;
   // Check whether same boundary exists already
   vector<void *> vect_key, vect_val;
   vect_key.push_back(key_struct);
   vect_val.push_back(val_struct);
-  UpplReturnCode read_status = ReadInternal(db_conn, vect_key,
+  UncRespCode read_status = ReadInternal(db_conn, vect_key,
                                             vect_val,
                                             data_type,
                                             UNC_OP_READ_SIBLING_BEGIN);
-  if (read_status == UPPL_RC_SUCCESS) {
+  if (read_status == UNC_RC_SUCCESS) {
     for (unsigned int index = 0; index < vect_key.size(); ++index) {
       // Clear the memory
       val_boundary_st_t *boundary_val_st =
@@ -2759,7 +2757,7 @@ UpplReturnCode Kt_Boundary::CheckBoundaryExistence(
         if (boundary_val_st->boundary.cs_row_status != DELETED) {
           pfc_log_info(
               "Already a boundary exists with same domain/logicalport");
-          status = UPPL_RC_ERR_CFG_SEMANTIC;
+          status = UNC_UPPL_RC_ERR_CFG_SEMANTIC;
         }
         delete boundary_val_st;
         boundary_val_st = NULL;
@@ -2772,7 +2770,7 @@ UpplReturnCode Kt_Boundary::CheckBoundaryExistence(
       }
     }
   }
-  if (status != UPPL_RC_SUCCESS) {
+  if (status != UNC_RC_SUCCESS) {
     return status;
   }
   // Check with reverse combination as well
@@ -2815,7 +2813,7 @@ UpplReturnCode Kt_Boundary::CheckBoundaryExistence(
                              vect_val,
                              data_type,
                              UNC_OP_READ_SIBLING_BEGIN);
-  if (read_status == UPPL_RC_SUCCESS) {
+  if (read_status == UNC_RC_SUCCESS) {
     for (unsigned int index = 0; index < vect_key.size(); ++index) {
       // Clear the memory
       val_boundary_st_t *boundary_val_st =
@@ -2824,7 +2822,7 @@ UpplReturnCode Kt_Boundary::CheckBoundaryExistence(
         if (boundary_val_st->boundary.cs_row_status != DELETED) {
           pfc_log_info(
               "Already a boundary exists with same domain/logicalport");
-          status = UPPL_RC_ERR_CFG_SEMANTIC;
+          status = UNC_UPPL_RC_ERR_CFG_SEMANTIC;
         }
         delete boundary_val_st;
         boundary_val_st = NULL;
index 9c482e02ccecb72849a37394817b93d84c07ddf9..f82774ffae03e2f45e68e363b022d17fb634672d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -112,23 +112,23 @@ Kt_Base* Kt_Controller::GetChildClassPointer(KtControllerChildClass KIndex) {
  * value_struct - the values for the new kt controller instance
  * data_type - UNC_DT_* , Create only allowed in candidate
  * sess - ipc server session where the response has to be added
- * @return    : UPPL_RC_SUCCESS is returned when the response
+ * @return    : UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_Controller::Create(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Controller::Create(OdbcmConnectionHandler *db_conn,
                                      uint32_t session_id,
                                      uint32_t configuration_id,
                                      void* key_struct,
                                      void* val_struct,
                                      uint32_t data_type,
                                      ServerSession &sess) {
-  UpplReturnCode create_status = UPPL_RC_SUCCESS;
+  UncRespCode create_status = UNC_RC_SUCCESS;
   // Check whether operation is allowed on the given DT type
   if ((unc_keytype_datatype_t)data_type != UNC_DT_CANDIDATE) {
     pfc_log_error("Create operation is invoked on unsupported data type %d",
                   data_type);
-    create_status = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    create_status = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
   } else {
     val_ctr_t obj_val_ctr = *(reinterpret_cast<val_ctr_t*>(val_struct));
     if (obj_val_ctr.type == UNC_CT_UNKNOWN) {
@@ -136,7 +136,7 @@ UpplReturnCode Kt_Controller::Create(OdbcmConnectionHandler *db_conn,
                                                       obj_val_ctr.type,
                                                       data_type);
     }
-    if (create_status == UPPL_RC_SUCCESS) {
+    if (create_status == UNC_RC_SUCCESS) {
       create_status = CreateKeyInstance(db_conn, key_struct,
                                         val_struct,
                                         data_type,
@@ -144,8 +144,8 @@ UpplReturnCode Kt_Controller::Create(OdbcmConnectionHandler *db_conn,
       pfc_log_debug("CreateKeyInstance returned with status %d", create_status);
     }
   }
-  if (create_status == UPPL_RC_SUCCESS) {
-    UpplReturnCode send_status = UPPL_RC_SUCCESS;
+  if (create_status == UNC_RC_SUCCESS) {
+    UncRespCode send_status = UNC_RC_SUCCESS;
     // Sending the Created Controller  Information to Logical Layer
     send_status = SendUpdatedControllerInfoToUPLL(UNC_DT_CANDIDATE,
                                                   UNC_OP_CREATE,
@@ -164,15 +164,15 @@ UpplReturnCode Kt_Controller::Create(OdbcmConnectionHandler *db_conn,
       0,
       0,
       data_type,
-      create_status};
+      static_cast<uint32_t>(create_status)};
   int err = PhyUtil::sessOutRespHeader(sess, rsh);
   err |= sess.addOutput((uint32_t)UNC_KT_CONTROLLER);
   err |= sess.addOutput(*obj_key_ctr);
   if (err != 0) {
     pfc_log_error("Server session addOutput failed, so return IPC_WRITE_ERROR");
-    create_status = UPPL_RC_ERR_IPC_WRITE_ERROR;
+    create_status = UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
   } else {
-    create_status = UPPL_RC_SUCCESS;
+    create_status = UNC_RC_SUCCESS;
   }
   return create_status;
 }
@@ -184,15 +184,15 @@ UpplReturnCode Kt_Controller::Create(OdbcmConnectionHandler *db_conn,
  * value_struct - the values for the new kt controller instance
  * data_type - UNC_DT_* , Create only allowed in candidate
  * key_type-UNC_KT_CONTROLLER,value of unc_key_type_t
- * @return    : UPPL_RC_SUCCESS is returned when the create is success
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * @return    : UNC_RC_SUCCESS is returned when the create is success
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_Controller::CreateKeyInstance(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Controller::CreateKeyInstance(OdbcmConnectionHandler *db_conn,
                                                 void* key_struct,
                                                 void* val_struct,
                                                 uint32_t data_type,
                                                 uint32_t key_type) {
-  UpplReturnCode create_status = UPPL_RC_SUCCESS;
+  UncRespCode create_status = UNC_RC_SUCCESS;
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
   // Structure used to send request to ODBC
   DBTableSchema kt_controller_dbtableschema;
@@ -212,11 +212,11 @@ UpplReturnCode Kt_Controller::CreateKeyInstance(OdbcmConnectionHandler *db_conn,
     if (create_db_status == ODBCM_RC_CONNECTION_ERROR) {
       // log fatal error to log daemon
       pfc_log_fatal("DB connection not available or cannot access DB");
-      create_status = UPPL_RC_ERR_DB_ACCESS;
+      create_status = UNC_UPPL_RC_ERR_DB_ACCESS;
     } else {
       // log error to log daemon
       pfc_log_error("Create operation has failed");
-      create_status = UPPL_RC_ERR_DB_CREATE;
+      create_status = UNC_UPPL_RC_ERR_DB_CREATE;
     }
   } else {
     pfc_log_info("Create of a controller in data type(%d) is success",
@@ -234,22 +234,22 @@ UpplReturnCode Kt_Controller::CreateKeyInstance(OdbcmConnectionHandler *db_conn,
  * value_struct - the values for the kt controller instance
  * data_type - UNC_DT_* , Update only allowed in candidate
  * sess - ipc server session where the response has to be added
- * @return    : UPPL_RC_SUCCESS is returned when the response
+ * @return    : UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_Controller::Update(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Controller::Update(OdbcmConnectionHandler *db_conn,
                                      uint32_t session_id,
                                      uint32_t configuration_id,
                                      void* key_struct,
                                      void* val_struct,
                                      uint32_t data_type,
                                      ServerSession &sess) {
-  UpplReturnCode update_status = UPPL_RC_SUCCESS;
+  UncRespCode update_status = UNC_RC_SUCCESS;
   if ((unc_keytype_datatype_t)data_type != UNC_DT_CANDIDATE) {
     pfc_log_error("Update operation is invoked on unsupported data type %d",
                   data_type);
-    update_status = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    update_status = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
   } else {
     update_status = UpdateKeyInstance(db_conn, key_struct,
                                       val_struct,
@@ -257,8 +257,8 @@ UpplReturnCode Kt_Controller::Update(OdbcmConnectionHandler *db_conn,
                                       UNC_KT_CONTROLLER);
     pfc_log_debug("UpdateKeyInstance returned with status %d", update_status);
   }
-  if (update_status == UPPL_RC_SUCCESS) {
-    UpplReturnCode send_status = UPPL_RC_SUCCESS;
+  if (update_status == UNC_RC_SUCCESS) {
+    UncRespCode send_status = UNC_RC_SUCCESS;
     // Sending the Created Controller  Information to Logical Layer
     send_status = SendUpdatedControllerInfoToUPLL(
         UNC_DT_CANDIDATE,
@@ -278,15 +278,15 @@ UpplReturnCode Kt_Controller::Update(OdbcmConnectionHandler *db_conn,
       0,
       0,
       data_type,
-      update_status};
+      static_cast<uint32_t>(update_status)};
   int err = PhyUtil::sessOutRespHeader(sess, rsh);
   err |= sess.addOutput((uint32_t)UNC_KT_CONTROLLER);
   err |= sess.addOutput(*obj_key_ctr);
   if (err != 0) {
     pfc_log_error("Server session addOutput failed, so return IPC_WRITE_ERROR");
-    update_status = UPPL_RC_ERR_IPC_WRITE_ERROR;
+    update_status = UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
   } else {
-    update_status = UPPL_RC_SUCCESS;
+    update_status = UNC_RC_SUCCESS;
   }
   return update_status;
 }
@@ -299,16 +299,16 @@ UpplReturnCode Kt_Controller::Update(OdbcmConnectionHandler *db_conn,
  * value_struct - the values for the new kt controller instance
  * data_type - UNC_DT_* , update only allowed in candidate
  * key_type-UNC_KT_CONTROLLER,value of unc_key_type_t
- * @return    : UPPL_RC_SUCCESS is returned when the update
+ * @return    : UNC_RC_SUCCESS is returned when the update
  * is done successfully.
- * UPPL_RC_ERR_* is returned when the update is error
+ * UNC_UPPL_RC_ERR_* is returned when the update is error
  * */
-UpplReturnCode Kt_Controller::UpdateKeyInstance(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Controller::UpdateKeyInstance(OdbcmConnectionHandler *db_conn,
                                                 void* key_struct,
                                                 void* val_struct,
                                                 uint32_t data_type,
                                                 uint32_t key_type) {
-  UpplReturnCode update_status = UPPL_RC_SUCCESS;
+  UncRespCode update_status = UNC_RC_SUCCESS;
   // Structure used to send request to ODBC
   DBTableSchema kt_controller_dbtableschema;
   // Create DBSchema structure for controller_table
@@ -329,10 +329,10 @@ UpplReturnCode Kt_Controller::UpdateKeyInstance(OdbcmConnectionHandler *db_conn,
       if (update_db_status == ODBCM_RC_CONNECTION_ERROR) {
         // log fatal error to log daemon
         pfc_log_fatal("DB connection not available or cannot access DB");
-        update_status = UPPL_RC_ERR_DB_ACCESS;
+        update_status = UNC_UPPL_RC_ERR_DB_ACCESS;
       } else {
         // log error to log daemon
-        update_status = UPPL_RC_ERR_DB_UPDATE;
+        update_status = UNC_UPPL_RC_ERR_DB_UPDATE;
       }
     } else {
       pfc_log_info("Update of a controller in data_type(%d) is success",
@@ -352,17 +352,17 @@ UpplReturnCode Kt_Controller::UpdateKeyInstance(OdbcmConnectionHandler *db_conn,
  * key_struct - the key for the kt controller instance
  * data_type - UNC_DT_* , delete only allowed in candidate
  * sess - ipc server session where the response has to be added
- * @return    : UPPL_RC_SUCCESS is returned when the response
+ * @return    : UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_Controller::Delete(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Controller::Delete(OdbcmConnectionHandler *db_conn,
                                      uint32_t session_id,
                                      uint32_t configuration_id,
                                      void* key_struct,
                                      uint32_t data_type,
                                      ServerSession &sess) {
-  UpplReturnCode delete_status = UPPL_RC_SUCCESS;
+  UncRespCode delete_status = UNC_RC_SUCCESS;
   key_ctr_t *obj_key_ctr = reinterpret_cast<key_ctr_t*>(key_struct);
   string controller_name = (const char*)obj_key_ctr->controller_name;
   // Check whether the controller is being imported
@@ -373,7 +373,7 @@ UpplReturnCode Kt_Controller::Delete(OdbcmConnectionHandler *db_conn,
   if (itc_trans->IsControllerInImport(controller_name) == PFC_TRUE) {
     pfc_log_info("Import is in progress for controller %s, Delete not allowed",
                  controller_name.c_str());
-    delete_status = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    delete_status = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
     // Populate the response to be sent in ServerSession
     physical_response_header rsh = {session_id,
         configuration_id,
@@ -382,16 +382,16 @@ UpplReturnCode Kt_Controller::Delete(OdbcmConnectionHandler *db_conn,
         0,
         0,
         data_type,
-        delete_status};
+        static_cast<uint32_t>(delete_status)};
     int err = PhyUtil::sessOutRespHeader(sess, rsh);
     err |= sess.addOutput((uint32_t)UNC_KT_CONTROLLER);
     err |= sess.addOutput(*obj_key_ctr);
     if (err != 0) {
       pfc_log_debug(
           "Server session addOutput failed, so return IPC_WRITE_ERROR");
-      delete_status = UPPL_RC_ERR_IPC_WRITE_ERROR;
+      delete_status = UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     } else {
-      delete_status = UPPL_RC_SUCCESS;
+      delete_status = UNC_RC_SUCCESS;
     }
     return delete_status;
   }
@@ -405,7 +405,7 @@ UpplReturnCode Kt_Controller::Delete(OdbcmConnectionHandler *db_conn,
     pfc_log_error(
         "Controller is referred in Boundary, "
         "so delete is not allowed");
-    delete_status = UPPL_RC_ERR_CFG_SEMANTIC;
+    delete_status = UNC_UPPL_RC_ERR_CFG_SEMANTIC;
     // Populate the response to be sent in ServerSession
     physical_response_header rsh = {session_id,
         configuration_id,
@@ -414,29 +414,29 @@ UpplReturnCode Kt_Controller::Delete(OdbcmConnectionHandler *db_conn,
         0,
         0,
         data_type,
-        delete_status};
+        static_cast<uint32_t>(delete_status)};
     int err = PhyUtil::sessOutRespHeader(sess, rsh);
     err |= sess.addOutput((uint32_t)UNC_KT_CONTROLLER);
     err |= sess.addOutput(*obj_key_ctr);
     if (err != 0) {
       pfc_log_debug(
           "Server session addOutput failed, so return IPC_WRITE_ERROR");
-      delete_status = UPPL_RC_ERR_IPC_WRITE_ERROR;
+      delete_status = UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     } else {
-      delete_status = UPPL_RC_SUCCESS;
+      delete_status = UNC_RC_SUCCESS;
     }
     return delete_status;
   }
   // Check whether CONTROLLER is being referred in Logical layer
   delete_status = SendSemanticRequestToUPLL(key_struct,
                                             data_type);
-  if (delete_status != UPPL_RC_SUCCESS) {
+  if (delete_status != UNC_RC_SUCCESS) {
     // log error and send error response
     pfc_log_error(
         "Controller is referred in Logical, "
         "so delete is not allowed");
   }
-  if (delete_status == UPPL_RC_SUCCESS) {
+  if (delete_status == UNC_RC_SUCCESS) {
     // Delete child classes and then delete controller
     // In candidate db, only domain will be available
     int child_class = KIdxDomain;
@@ -446,7 +446,7 @@ UpplReturnCode Kt_Controller::Delete(OdbcmConnectionHandler *db_conn,
     child[child_class] = GetChildClassPointer(
         (KtControllerChildClass)child_class);
     if (child[child_class] != NULL) {
-      UpplReturnCode ch_delete_status =
+      UncRespCode ch_delete_status =
           child[child_class]->DeleteKeyInstance(db_conn,
                                                 child_key_struct,
                                                 data_type,
@@ -454,28 +454,28 @@ UpplReturnCode Kt_Controller::Delete(OdbcmConnectionHandler *db_conn,
       delete child[child_class];
       child[child_class] = NULL;
       FreeChildKeyStruct(child_key_struct, child_class);
-      if (ch_delete_status == UPPL_RC_ERR_NO_SUCH_INSTANCE) {
+      if (ch_delete_status == UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE) {
         pfc_log_debug("Child not available for controller");
       }
-      if (ch_delete_status != UPPL_RC_ERR_NO_SUCH_INSTANCE &&
-          ch_delete_status != UPPL_RC_SUCCESS) {
+      if (ch_delete_status != UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE &&
+          ch_delete_status != UNC_RC_SUCCESS) {
         // child delete failed, so return error
         pfc_log_error("Delete failed for child %d with error %d",
                       child_class, delete_status);
-        delete_status = UPPL_RC_ERR_CFG_SEMANTIC;
+        delete_status = UNC_UPPL_RC_ERR_CFG_SEMANTIC;
       }
     } else {
       // Free key struct
       FreeChildKeyStruct(child_key_struct, child_class);
     }
     // Delete the controller now
-    if (delete_status == UPPL_RC_SUCCESS) {
+    if (delete_status == UNC_RC_SUCCESS) {
       delete_status = DeleteKeyInstance(db_conn, key_struct, data_type,
                                         UNC_KT_CONTROLLER);
     }
   }
-  if (delete_status == UPPL_RC_SUCCESS) {
-    UpplReturnCode send_status = UPPL_RC_SUCCESS;
+  if (delete_status == UNC_RC_SUCCESS) {
+    UncRespCode send_status = UNC_RC_SUCCESS;
     // Sending the Created Controller  Information to Logical Layer
     send_status = SendUpdatedControllerInfoToUPLL(
         UNC_DT_CANDIDATE,
@@ -494,15 +494,15 @@ UpplReturnCode Kt_Controller::Delete(OdbcmConnectionHandler *db_conn,
       0,
       0,
       data_type,
-      delete_status};
+      static_cast<uint32_t>(delete_status)};
   int err = PhyUtil::sessOutRespHeader(sess, rsh);
   err |= sess.addOutput((uint32_t)UNC_KT_CONTROLLER);
   err |= sess.addOutput(*obj_key_ctr);
   if (err != 0) {
     pfc_log_debug("Server session addOutput failed, so return IPC_WRITE_ERROR");
-    delete_status = UPPL_RC_ERR_IPC_WRITE_ERROR;
+    delete_status = UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
   } else {
-    delete_status = UPPL_RC_SUCCESS;
+    delete_status = UNC_RC_SUCCESS;
   }
   return delete_status;
 }
@@ -514,15 +514,15 @@ UpplReturnCode Kt_Controller::Delete(OdbcmConnectionHandler *db_conn,
  * key_struct - the key for the new kt controller instance
  * data_type - UNC_DT_* , delete only allowed in candidate
  * key_type-UNC_DT_CONTROLLER,value of unc_keytype_t
- * @return    : UPPL_RC_SUCCESS is returned when the delete
+ * @return    : UNC_RC_SUCCESS is returned when the delete
  * is done successfully.
- * UPPL_RC_ERR_* is returned when the delete is error
+ * UNC_UPPL_RC_ERR_* is returned when the delete is error
  * */
-UpplReturnCode Kt_Controller::DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Controller::DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
                                                 void* key_struct,
                                                 uint32_t data_type,
                                                 uint32_t key_type) {
-  UpplReturnCode delete_status = UPPL_RC_SUCCESS;
+  UncRespCode delete_status = UNC_RC_SUCCESS;
   key_ctr_t *obj_key_ctr= reinterpret_cast<key_ctr_t*>(key_struct);
   string controller_name = (const char*)obj_key_ctr->controller_name;
   // Structure used to send request to ODBC
@@ -556,12 +556,12 @@ UpplReturnCode Kt_Controller::DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
     if (delete_db_status == ODBCM_RC_CONNECTION_ERROR) {
       // log fatal error to log daemon
       pfc_log_fatal("DB connection not available or cannot access DB");
-      delete_status = UPPL_RC_ERR_DB_ACCESS;
+      delete_status = UNC_UPPL_RC_ERR_DB_ACCESS;
     } else if (delete_db_status == ODBCM_RC_ROW_NOT_EXISTS) {
-      delete_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+      delete_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     } else {
       // log error to log daemon
-      delete_status = UPPL_RC_ERR_DB_DELETE;
+      delete_status = UNC_UPPL_RC_ERR_DB_DELETE;
     }
   } else {
     pfc_log_info("Delete of a controller in data_type(%d) is success",
@@ -577,11 +577,11 @@ UpplReturnCode Kt_Controller::DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
  * value_struct - the value for the kt controller instance
  * data_type - UNC_DT_* , read allowed in candidate/running/startup/state
  * operation_type-UNC_OP_*,type of operation
- * @return    : UPPL_RC_SUCCESS is returned when the response
+ * @return    : UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_Controller::ReadInternal(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Controller::ReadInternal(OdbcmConnectionHandler *db_conn,
                                            vector<void *> &ctr_key,
                                            vector<void *> &ctr_val,
                                            uint32_t data_type,
@@ -601,7 +601,7 @@ UpplReturnCode Kt_Controller::ReadInternal(OdbcmConnectionHandler *db_conn,
     val_struct = reinterpret_cast<void *>(&st_ctr_val.controller);
   }
   // Get read response from database
-  UpplReturnCode read_status = ReadCtrValFromDB(db_conn, key_struct,
+  UncRespCode read_status = ReadCtrValFromDB(db_conn, key_struct,
                                                 val_struct,
                                                 data_type,
                                                 operation_type,
@@ -610,12 +610,13 @@ UpplReturnCode Kt_Controller::ReadInternal(OdbcmConnectionHandler *db_conn,
                                                 vect_controller_id);
   ctr_key.clear();
   ctr_val.clear();
-  pfc_log_info("ReadCtrValFromDB returned %d with response size %d",
+  pfc_log_info("ReadCtrValFromDB returned %d with response size %"
+               PFC_PFMT_SIZE_T,
                read_status,
-               static_cast<int>(vect_val_ctr_st.size()));
-  if (read_status == UPPL_RC_SUCCESS) {
-    pfc_log_debug("ReadCtrValFromDB returned %d with response size %d",
-                  read_status, static_cast<int>(vect_val_ctr_st.size()));
+               vect_val_ctr_st.size());
+  if (read_status == UNC_RC_SUCCESS) {
+    pfc_log_debug("ReadCtrValFromDB returned %d with response size %"
+                   PFC_PFMT_SIZE_T, read_status, vect_val_ctr_st.size());
     for (unsigned int iIndex = 0 ; iIndex < vect_controller_id.size();
         ++iIndex) {
       key_ctr_t *key_ctr = new key_ctr_t;
@@ -645,11 +646,11 @@ UpplReturnCode Kt_Controller::ReadInternal(OdbcmConnectionHandler *db_conn,
  * child_index-index indicating the children of Controller
  * parent_call - indicates whether parent has called this readbulk
  * is_read_next - indicates whether this function is invoked from readnext
- * @return    : UPPL_RC_SUCCESS is returned when the response
+ * @return    : UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_Controller::ReadBulk(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Controller::ReadBulk(OdbcmConnectionHandler *db_conn,
                                        void* key_struct,
                                        uint32_t data_type,
                                        uint32_t &max_rep_ct,
@@ -658,7 +659,7 @@ UpplReturnCode Kt_Controller::ReadBulk(OdbcmConnectionHandler *db_conn,
                                        pfc_bool_t is_read_next,
                                        ReadRequest *read_req) {
   pfc_log_info("Processing ReadBulk of Kt_Controller");
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
   key_ctr_t* obj_key_ctr= reinterpret_cast<key_ctr_t*>(key_struct);
 
   vector<val_ctr_st_t> vect_val_ctr;
@@ -666,13 +667,13 @@ UpplReturnCode Kt_Controller::ReadBulk(OdbcmConnectionHandler *db_conn,
       data_type != UNC_DT_STATE && data_type != UNC_DT_STARTUP) {
     pfc_log_debug("ReadBulk operation is not allowed in %d data type",
                   data_type);
-    read_status = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    read_status = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
     return read_status;
   }
   pfc_bool_t ctr_exists = PFC_FALSE;
   if (max_rep_ct == 0) {
     pfc_log_debug("max_rep_ct is 0");
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   string str_controller_name =
       reinterpret_cast<char *>(&obj_key_ctr->controller_name);
@@ -683,11 +684,11 @@ UpplReturnCode Kt_Controller::ReadBulk(OdbcmConnectionHandler *db_conn,
     // Check for controller key existence
     vector<string> vect_ctr_key_value;
     vect_ctr_key_value.push_back(str_controller_name);
-    UpplReturnCode key_exist_status = IsKeyExists(
+    UncRespCode key_exist_status = IsKeyExists(
         db_conn,
         (unc_keytype_datatype_t)data_type,
         vect_ctr_key_value);
-    if (key_exist_status == UPPL_RC_SUCCESS) {
+    if (key_exist_status == UNC_RC_SUCCESS) {
       ctr_exists = PFC_TRUE;
     }
   }
@@ -708,7 +709,7 @@ UpplReturnCode Kt_Controller::ReadBulk(OdbcmConnectionHandler *db_conn,
     val_ctr_st_t dummy_val_ctr;
     vect_val_ctr.insert(vect_val_ctr.begin(), dummy_val_ctr);
   }
-  if (read_status == UPPL_RC_SUCCESS ||
+  if (read_status == UNC_RC_SUCCESS ||
       ctr_exists == PFC_TRUE) {
     // For each controller, read the child's attributes
     vector<val_ctr_st_t> ::iterator vect_iter = vect_val_ctr.begin();
@@ -761,7 +762,7 @@ UpplReturnCode Kt_Controller::ReadBulk(OdbcmConnectionHandler *db_conn,
         --max_rep_ct;
         if (max_rep_ct == 0) {
           pfc_log_debug("Controller - max_rep_ct reached zero...");
-          return UPPL_RC_SUCCESS;
+          return UNC_RC_SUCCESS;
         }
       }
       ctr_exists = PFC_FALSE;
@@ -786,7 +787,7 @@ UpplReturnCode Kt_Controller::ReadBulk(OdbcmConnectionHandler *db_conn,
           continue;
         }
         pfc_log_debug("Controller Calling child %d read bulk", kIdx);
-        UpplReturnCode ch_read_status = child[kIdx]->ReadBulk(
+        UncRespCode ch_read_status = child[kIdx]->ReadBulk(
             db_conn, child_key_struct,
             data_type,
             max_rep_ct,
@@ -801,13 +802,13 @@ UpplReturnCode Kt_Controller::ReadBulk(OdbcmConnectionHandler *db_conn,
         FreeChildKeyStruct(child_key_struct, kIdx);
         if (max_rep_ct == 0) {
           pfc_log_debug("max_rep_ct reached zero, so returning");
-          return UPPL_RC_SUCCESS;
+          return UNC_RC_SUCCESS;
         }
       }
       // reset child index
       child_index = -1;
     }
-  } else if (read_status == UPPL_RC_ERR_DB_ACCESS) {
+  } else if (read_status == UNC_UPPL_RC_ERR_DB_ACCESS) {
     pfc_log_debug("KtController ReadBulk - Returning DB Access Error");
     return read_status;
   }
@@ -827,14 +828,14 @@ UpplReturnCode Kt_Controller::ReadBulk(OdbcmConnectionHandler *db_conn,
         read_req);
     pfc_log_debug("read status from next kin Kt_Root is %d",
                   read_status);
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   pfc_log_debug("KT_Controller - Reached end of table");
   pfc_log_debug("read_status is %d", read_status);
-  if (read_status == UPPL_RC_ERR_NO_SUCH_INSTANCE) {
-    read_status = UPPL_RC_SUCCESS;
+  if (read_status == UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE) {
+    read_status = UNC_RC_SUCCESS;
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**ReadBulkInternal
@@ -847,11 +848,11 @@ UpplReturnCode Kt_Controller::ReadBulk(OdbcmConnectionHandler *db_conn,
  * max_rep_ct - specifies number of rows to be returned
  * vect_val_ctr - indicates the fetched values from db of val_ctr type
  * vect_ctr_id - indicates the fetched contoller names from db
- * @return    : UPPL_RC_SUCCESS is returned when the response
+ * @return    : UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_Controller::ReadBulkInternal(
+UncRespCode Kt_Controller::ReadBulkInternal(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     void* val_struct,
@@ -860,10 +861,10 @@ UpplReturnCode Kt_Controller::ReadBulkInternal(
     vector<val_ctr_st_t> &vect_val_ctr,
     vector<string> &vect_ctr_id) {
   if (max_rep_ct <= 0) {
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
   ODBCM_RC_STATUS read_db_status = ODBCM_RC_SUCCESS;
   DBTableSchema kt_controller_dbtableschema;
   // Populate DBSchema for controller_table
@@ -881,14 +882,14 @@ UpplReturnCode Kt_Controller::ReadBulkInternal(
                   (unc_keytype_operation_t)UNC_OP_READ_BULK, db_conn);
   if (read_db_status == ODBCM_RC_RECORD_NOT_FOUND) {
     pfc_log_debug("No record to read");
-    read_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+    read_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     return read_status;
   } else if (read_db_status == ODBCM_RC_CONNECTION_ERROR) {
-    read_status = UPPL_RC_ERR_DB_ACCESS;
+    read_status = UNC_UPPL_RC_ERR_DB_ACCESS;
     pfc_log_error("ReadBulk operation has failed with %d", read_db_status);
     return read_status;
   } else if (read_db_status != ODBCM_RC_SUCCESS) {
-    read_status = UPPL_RC_ERR_DB_GET;
+    read_status = UNC_UPPL_RC_ERR_DB_GET;
     pfc_log_error("ReadBulk operation has failed with %d", read_db_status);
     return read_status;
   }
@@ -910,16 +911,16 @@ UpplReturnCode Kt_Controller::ReadBulkInternal(
  * value_struct - the value for the kt controller instance
  * data_type - UNC_DT_*,type of database
  * operation_type - UNC_OP*,type of operation
- * @return    : UPPL_RC_SUCCESS is returned when the validation is successful
- * UPPL_RC_ERR_* is returned when validation is failure
+ * @return    : UNC_RC_SUCCESS is returned when the validation is successful
+ * UNC_UPPL_RC_ERR_* is returned when validation is failure
  * */
-UpplReturnCode Kt_Controller::PerformSyntaxValidation(
+UncRespCode Kt_Controller::PerformSyntaxValidation(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     void* val_struct,
     uint32_t operation,
     uint32_t data_type) {
-  UpplReturnCode ret_code = UPPL_RC_SUCCESS;
+  UncRespCode ret_code = UNC_RC_SUCCESS;
   pfc_bool_t mandatory = PFC_TRUE;
   map<string, Kt_Class_Attr_Syntax> attr_syntax_map =
       attr_syntax_map_all[UNC_KT_CONTROLLER];
@@ -927,12 +928,12 @@ UpplReturnCode Kt_Controller::PerformSyntaxValidation(
   key_ctr *key = reinterpret_cast<key_ctr_t*>(key_struct);
   string value = reinterpret_cast<char*>(key->controller_name);
   IS_VALID_STRING_KEY(CTR_NAME_STR, value, operation, ret_code, mandatory);
-  if (ret_code != UPPL_RC_SUCCESS) {
-    return UPPL_RC_ERR_CFG_SYNTAX;
+  if (ret_code != UNC_RC_SUCCESS) {
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
 
   unc_keytype_ctrtype_t ctr_type = UNC_CT_UNKNOWN;
-  UpplReturnCode ctr_type_code = UPPL_RC_SUCCESS;
+  UncRespCode ctr_type_code = UNC_RC_SUCCESS;
   if (operation == UNC_OP_UPDATE) {
     ctr_type_code = PhyUtil::get_controller_type(
         db_conn, value,
@@ -951,8 +952,8 @@ UpplReturnCode Kt_Controller::PerformSyntaxValidation(
         ctr_type,
         ctr_type_code,
         val_ctr);
-    if (ret_code != UPPL_RC_SUCCESS) {
-      return UPPL_RC_ERR_CFG_SYNTAX;
+    if (ret_code != UNC_RC_SUCCESS) {
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
     ret_code = ValidateControllerVersion(
         db_conn, operation,
@@ -960,8 +961,8 @@ UpplReturnCode Kt_Controller::PerformSyntaxValidation(
         ctr_type,
         ctr_type_code,
         val_ctr);
-    if (ret_code != UPPL_RC_SUCCESS) {
-      return UPPL_RC_ERR_CFG_SYNTAX;
+    if (ret_code != UNC_RC_SUCCESS) {
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
     ret_code = ValidateControllerDescription(
         db_conn, operation,
@@ -969,8 +970,8 @@ UpplReturnCode Kt_Controller::PerformSyntaxValidation(
         ctr_type,
         ctr_type_code,
         val_ctr);
-    if (ret_code != UPPL_RC_SUCCESS) {
-      return UPPL_RC_ERR_CFG_SYNTAX;
+    if (ret_code != UNC_RC_SUCCESS) {
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
     ret_code = ValidateControllerIpAddress(
         db_conn, operation,
@@ -979,8 +980,8 @@ UpplReturnCode Kt_Controller::PerformSyntaxValidation(
         ctr_type_code,
         key_struct,
         val_struct);
-    if (ret_code != UPPL_RC_SUCCESS) {
-      return UPPL_RC_ERR_CFG_SYNTAX;
+    if (ret_code != UNC_RC_SUCCESS) {
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
     ret_code = ValidateControllerUser(
         db_conn, operation,
@@ -988,8 +989,8 @@ UpplReturnCode Kt_Controller::PerformSyntaxValidation(
         ctr_type,
         ctr_type_code,
         val_ctr);
-    if (ret_code != UPPL_RC_SUCCESS) {
-      return UPPL_RC_ERR_CFG_SYNTAX;
+    if (ret_code != UNC_RC_SUCCESS) {
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
     ret_code = ValidateControllerPassword(
         db_conn, operation,
@@ -997,8 +998,8 @@ UpplReturnCode Kt_Controller::PerformSyntaxValidation(
         ctr_type,
         ctr_type_code,
         val_ctr);
-    if (ret_code != UPPL_RC_SUCCESS) {
-      return UPPL_RC_ERR_CFG_SYNTAX;
+    if (ret_code != UNC_RC_SUCCESS) {
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
     ret_code = ValidateControllerEnableAudit(
         db_conn, operation,
@@ -1006,8 +1007,8 @@ UpplReturnCode Kt_Controller::PerformSyntaxValidation(
         ctr_type,
         ctr_type_code,
         val_ctr);
-    if (ret_code != UPPL_RC_SUCCESS) {
-      return UPPL_RC_ERR_CFG_SYNTAX;
+    if (ret_code != UNC_RC_SUCCESS) {
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
   }
   return ret_code;
@@ -1017,12 +1018,12 @@ UpplReturnCode Kt_Controller::PerformSyntaxValidation(
  * @Description : This function checks capability for UNC_KT_CONTROLLER
  * @param[in] : version - specifies the version to be used for validation
  * key type - specifies UNC_KT_CONTROLLER,value of unc_key_type_t
- * @return    : UPPL_RC_SUCCESS if validation is successful
- * or UPPL_RC_ERR_* if validation is failed
+ * @return    : UNC_RC_SUCCESS if validation is successful
+ * or UNC_UPPL_RC_ERR_* if validation is failed
  * */
-UpplReturnCode Kt_Controller::ValidateCtrlrValueCapability(string version,
+UncRespCode Kt_Controller::ValidateCtrlrValueCapability(string version,
                                                            uint32_t key_type) {
-  UpplReturnCode resp_code = UPPL_RC_SUCCESS;
+  UncRespCode resp_code = UNC_RC_SUCCESS;
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
   map<string, Kt_Class_Attr_Syntax>::iterator itVal;
   map<string, Kt_Class_Attr_Syntax> attr_syntax_map =
@@ -1040,7 +1041,7 @@ UpplReturnCode Kt_Controller::ValidateCtrlrValueCapability(string version,
                                    key_type,
                                    attribute_name);
     }
-    if (resp_code != UPPL_RC_SUCCESS) {
+    if (resp_code != UNC_RC_SUCCESS) {
       pfc_log_info("Error from ValidateAttribInCtrlrCap is %d", resp_code);
       return resp_code;
     }
@@ -1053,10 +1054,10 @@ UpplReturnCode Kt_Controller::ValidateCtrlrValueCapability(string version,
  * @param[in] : version - specifies the controller version
  * key type - contains UNC_KT_CONTROLLER,value of unc_key_type_t
  * data_type - UNC_DT_*, type of database
- * @return    : UPPL_RC_SUCCESS if scalability number is within range
- * or UPPL_RC_ERR_* if not
+ * @return    : UNC_RC_SUCCESS if scalability number is within range
+ * or UNC_UPPL_RC_ERR_* if not
  * */
-UpplReturnCode Kt_Controller::ValidateCtrlrScalability(
+UncRespCode Kt_Controller::ValidateCtrlrScalability(
     OdbcmConnectionHandler *db_conn,
     string version,
     uint32_t key_type,
@@ -1073,29 +1074,29 @@ UpplReturnCode Kt_Controller::ValidateCtrlrScalability(
   if (response_status == ODBCM_RC_CONNECTION_ERROR) {
     // log error to log daemon
     pfc_log_error("DB connection not available or cannot access DB");
-    return UPPL_RC_ERR_DB_ACCESS;
+    return UNC_UPPL_RC_ERR_DB_ACCESS;
   } else if (response_status == ODBCM_RC_SUCCESS) {
     uint32_t scalability_num = 0;
-    UpplReturnCode resp_code = physical_layer->get_physical_core()->
+    UncRespCode resp_code = physical_layer->get_physical_core()->
         GetScalabilityNumber(version,
                              key_type,
                              scalability_num);
-    if (resp_code != UPPL_RC_SUCCESS) {
+    if (resp_code != UNC_RC_SUCCESS) {
       pfc_log_error("Unable to get scalability number from system");
-      return UPPL_RC_ERR_DB_GET;
+      return UNC_UPPL_RC_ERR_DB_GET;
     }
     if ((uint32_t)response_count >= scalability_num) {
       pfc_log_debug("Count from DB: %d", response_count);
       pfc_log_debug("Count from Physical Core: %d", scalability_num);
       pfc_log_error("scalability range exceeded for kt_controller");
-      return UPPL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
+      return UNC_UPPL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
     }
   } else {
     pfc_log_error("Unable to get scalability number from DB, error is %d",
                   response_status);
-    return UPPL_RC_ERR_DB_GET;
+    return UNC_UPPL_RC_ERR_DB_GET;
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /** ValidateUnKnownCtrlrScalability
@@ -1103,10 +1104,10 @@ UpplReturnCode Kt_Controller::ValidateCtrlrScalability(
  * @param[in] : type - specifies the controller type
  * key_struct - contains UNC_KT_CONTROLLER key structure
  * data_type - UNC_DT_*, unknown controler scalability number and data_type
- * @return    : UPPL_RC_SUCCESS if unknown controler scalability number
- *  is within range or UPPL_RC_ERR_* if not
+ * @return    : UNC_RC_SUCCESS if unknown controler scalability number
+ *  is within range or UNC_UPPL_RC_ERR_* if not
  * */
-UpplReturnCode Kt_Controller::ValidateUnknownCtrlrScalability(
+UncRespCode Kt_Controller::ValidateUnknownCtrlrScalability(
     OdbcmConnectionHandler *db_conn,
     void *key_struct,
     uint8_t type,
@@ -1145,7 +1146,7 @@ UpplReturnCode Kt_Controller::ValidateUnknownCtrlrScalability(
   if (response_status == ODBCM_RC_CONNECTION_ERROR) {
     // log error to log daemon
     pfc_log_error("DB connection not available or cannot access DB");
-    return UPPL_RC_ERR_DB_ACCESS;
+    return UNC_UPPL_RC_ERR_DB_ACCESS;
   } else if (response_status == ODBCM_RC_SUCCESS ||
       response_status == ODBCM_RC_RECORD_NOT_FOUND) {
     uint32_t unknown_ctrl_count =
@@ -1155,14 +1156,14 @@ UpplReturnCode Kt_Controller::ValidateUnknownCtrlrScalability(
       pfc_log_debug("Count from DB: %d", count);
       pfc_log_debug("Count from Physical Core: %d", unknown_ctrl_count);
       pfc_log_error("scalability range exceeded for unknown kt_controller");
-      return UPPL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
+      return UNC_UPPL_RC_ERR_EXCEEDS_RESOURCE_LIMIT;
     }
   } else {
     pfc_log_error("Unable to get sibling count from DB, error is %d",
                   response_status);
-    return UPPL_RC_ERR_DB_GET;
+    return UNC_UPPL_RC_ERR_DB_GET;
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /** PerformSemanticValidation
@@ -1172,41 +1173,41 @@ UpplReturnCode Kt_Controller::ValidateUnknownCtrlrScalability(
  * value_struct - specifies value of KT_CONTROLLER,value of unc_key_type_t
  * operation - UNC_OP*,type of operation
  * data_type - UNC_DT*,type of database
- * @return    : UPPL_RC_SUCCESS if semantic valition is successful
- * or UPPL_RC_ERR_* if failed
+ * @return    : UNC_RC_SUCCESS if semantic valition is successful
+ * or UNC_UPPL_RC_ERR_* if failed
  * */
-UpplReturnCode Kt_Controller::PerformSemanticValidation(
+UncRespCode Kt_Controller::PerformSemanticValidation(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     void* val_struct,
     uint32_t operation,
     uint32_t data_type) {
-  UpplReturnCode status = UPPL_RC_SUCCESS;
+  UncRespCode status = UNC_RC_SUCCESS;
 
   // Check whether the given instance of controller exists in DB
   key_ctr_t *obj_key_ctr = reinterpret_cast<key_ctr_t*>(key_struct);
   string controller_name = (const char*)obj_key_ctr->controller_name;
   vector<string> ctr_vect_key_value;
   ctr_vect_key_value.push_back(controller_name);
-  UpplReturnCode key_status = IsKeyExists(db_conn,
+  UncRespCode key_status = IsKeyExists(db_conn,
                                           (unc_keytype_datatype_t)data_type,
                                           ctr_vect_key_value);
   // In case of create operation, key should not exist
   if (operation == UNC_OP_CREATE) {
-    if (key_status == UPPL_RC_SUCCESS) {
+    if (key_status == UNC_RC_SUCCESS) {
       pfc_log_error("Key instance already exists, ");
       pfc_log_error("Hence create operation not allowed");
-      status = UPPL_RC_ERR_INSTANCE_EXISTS;
-    } else if (key_status == UPPL_RC_ERR_DB_ACCESS) {
+      status = UNC_UPPL_RC_ERR_INSTANCE_EXISTS;
+    } else if (key_status == UNC_UPPL_RC_ERR_DB_ACCESS) {
       pfc_log_error("DB Access failure");
       status = key_status;
-    } else if (key_status == UPPL_RC_ERR_DB_GET) {
+    } else if (key_status == UNC_UPPL_RC_ERR_DB_GET) {
       pfc_log_debug("Key does not exist. Validate Ip Address/ Type");
       // Check whether any controller with same type and ip address exists
       status = ValidateTypeIpAddress(db_conn, key_struct,
                                      val_struct,
                                      data_type);
-      if (status == UPPL_RC_SUCCESS) {
+      if (status == UNC_RC_SUCCESS) {
         pfc_log_debug("Validating Type and Ip Address in Running Db");
         status = ValidateTypeIpAddress(db_conn, key_struct,
                                        val_struct,
@@ -1216,13 +1217,13 @@ UpplReturnCode Kt_Controller::PerformSemanticValidation(
   } else if (operation == UNC_OP_UPDATE || operation == UNC_OP_DELETE ||
       operation == UNC_OP_READ) {
     // In case of update/delete/read operation, key should exist
-    if (key_status == UPPL_RC_ERR_DB_ACCESS) {
+    if (key_status == UNC_UPPL_RC_ERR_DB_ACCESS) {
       pfc_log_error("DB Access failure");
       status = key_status;
-    } else if (key_status != UPPL_RC_SUCCESS) {
+    } else if (key_status != UNC_RC_SUCCESS) {
       pfc_log_error("Key instance does not exist");
       pfc_log_error("Hence update/delete/read operation not allowed");
-      status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+      status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     }
   }
   return status;
@@ -1233,21 +1234,21 @@ UpplReturnCode Kt_Controller::PerformSemanticValidation(
  *  is being referred in Logical
  * @param[in] : key_ctr - specifies key instance of KT_CONTROLLER
  * data_type-UNC_DT_*,type of database
- * @return    : UPPL_RC_SUCCESS if controller is not referred
- * or UPPL_RC_ERR_* if controller is referred in logical
+ * @return    : UNC_RC_SUCCESS if controller is not referred
+ * or UNC_UPPL_RC_ERR_* if controller is referred in logical
  * */
-UpplReturnCode Kt_Controller::SendSemanticRequestToUPLL(void* key_struct,
+UncRespCode Kt_Controller::SendSemanticRequestToUPLL(void* key_struct,
                                                         uint32_t data_type) {
   // Incase for UNC_KT_CONTROLLER delete, check whether any referenced object
   // Is present in Logical Layer, If yes DELETE should not be allowed
   pfc_log_debug("Inside SendSemanticRequestToUPLL of KTController");
-  UpplReturnCode status = UPPL_RC_SUCCESS;
+  UncRespCode status = UNC_RC_SUCCESS;
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
   status = physical_layer->get_ipc_connection_manager()->
       get_ipc_client_logical_handler()->CheckInUseInLogical(UNC_KT_CONTROLLER,
                                                             key_struct,
                                                             data_type);
-  if (status != UPPL_RC_SUCCESS) {
+  if (status != UNC_RC_SUCCESS) {
     // log error and send error response
     pfc_log_error("Controller is being referred in Logical");
   }
@@ -1263,10 +1264,10 @@ UpplReturnCode Kt_Controller::SendSemanticRequestToUPLL(void* key_struct,
  * is_events_done-flag to indicate whether event is processed
  * old_value_struct - old value of KT_CONTROLLER
  * new_value_struct - new value of KT_CONTROLLER
- * @return    : UPPL_RC_SUCCESS if events are handled successfully or
- * UPPL_RC_ERR*
+ * @return    : UNC_RC_SUCCESS if events are handled successfully or
+ * UNC_UPPL_RC_ERR*
  * */
-UpplReturnCode Kt_Controller::HandleDriverEvents(
+UncRespCode Kt_Controller::HandleDriverEvents(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     uint32_t oper_type,
@@ -1277,7 +1278,7 @@ UpplReturnCode Kt_Controller::HandleDriverEvents(
   key_ctr *obj_key_ctr= reinterpret_cast<key_ctr_t*>(key_struct);
   val_ctr_st *obj_old_val_ctr = reinterpret_cast<val_ctr_st*>(old_val_struct);
   val_ctr_st *obj_new_val_ctr = reinterpret_cast<val_ctr_st*>(new_val_struct);
-  UpplReturnCode status = UPPL_RC_SUCCESS;
+  UncRespCode status = UNC_RC_SUCCESS;
   string controller_name = reinterpret_cast<char *>
   (obj_key_ctr->controller_name);
   if (oper_type != UNC_OP_UPDATE) {
@@ -1294,23 +1295,23 @@ UpplReturnCode Kt_Controller::HandleDriverEvents(
     string act_version = (const char*)obj_new_val_ctr->actual_version;
     status = SetActualVersion(db_conn, key_struct, act_version,
                               UNC_DT_RUNNING, UNC_VF_VALID);
-    if (status != UPPL_RC_SUCCESS) {
+    if (status != UNC_RC_SUCCESS) {
       // log error
       pfc_log_error("act_version update operation failed for running");
     }
     status = SetActualVersion(db_conn, key_struct,
                               act_version, UNC_DT_CANDIDATE, UNC_VF_VALID);
-    if (status != UPPL_RC_SUCCESS) {
+    if (status != UNC_RC_SUCCESS) {
       // log error
       pfc_log_error("act_version update operation failed for candidate");
     }
   }
   // Read old_oper_status from DB
   uint8_t oper_status_db = 0;
-  UpplReturnCode read_status = GetOperStatus(db_conn, data_type,
+  UncRespCode read_status = GetOperStatus(db_conn, data_type,
                                              key_struct,
                                              oper_status_db);
-  if (read_status != UPPL_RC_SUCCESS) {
+  if (read_status != UNC_RC_SUCCESS) {
     return read_status;
   }
   uint8_t new_oper_status = UPPL_CONTROLLER_OPER_DOWN;
@@ -1332,20 +1333,20 @@ UpplReturnCode Kt_Controller::HandleDriverEvents(
     if (is_controller_in_audit == PFC_TRUE) {
       pfc_log_debug("Calling MergeAuditDbToRunning");
       // To cancel the already running timer in Audit
-      UpplReturnCode cancel_ret = ipc_mgr->CancelTimer(controller_name);
-      if (cancel_ret != UPPL_RC_SUCCESS) {
+      UncRespCode cancel_ret = ipc_mgr->CancelTimer(controller_name);
+      if (cancel_ret != UNC_RC_SUCCESS) {
         pfc_log_info("Failure in cancelling timer for controller %s",
                      controller_name.c_str());
       }
       AuditRequest audit_req;
-      UpplReturnCode merge_auditdb =
+      UncRespCode merge_auditdb =
           audit_req.MergeAuditDbToRunning(db_conn, controller_name);
-      if (merge_auditdb != UPPL_RC_SUCCESS) {
+      if (merge_auditdb != UNC_RC_SUCCESS) {
         pfc_log_info("Merge of audit and running db failed");
       }
     }
     // Check for Ip Address and remove state db if no ip address is found
-    UpplReturnCode state_status = CheckIpAndClearStateDB(db_conn, key_struct);
+    UncRespCode state_status = CheckIpAndClearStateDB(db_conn, key_struct);
     pfc_log_debug("Ip and state db processing status : %d", state_status);
   }
   pfc_log_info("New Oper_status to be set is: %d", new_oper_status);
@@ -1380,17 +1381,17 @@ UpplReturnCode Kt_Controller::HandleDriverEvents(
  * data_type-UNC_DT_*,type of database
  * alarm_type-type of alarm raised
  * oper_type-UNC_OP_*,type of operation
- * @return    : UPPL_RC_SUCCESS if alarm is handled successfully or
- * UPPL_RC_ERR*
+ * @return    : UNC_RC_SUCCESS if alarm is handled successfully or
+ * UNC_UPPL_RC_ERR*
  * */
-UpplReturnCode Kt_Controller::HandleDriverAlarms(
+UncRespCode Kt_Controller::HandleDriverAlarms(
     OdbcmConnectionHandler *db_conn,
     uint32_t data_type,
     uint32_t alarm_type,
     uint32_t oper_type,
     void* key_struct,
     void* val_struct) {
-  UpplReturnCode status = UPPL_RC_SUCCESS;
+  UncRespCode status = UNC_RC_SUCCESS;
   // Following alarms are sent for kt_controller
   if (alarm_type == UNC_PHYS_PATH_FAULT) {
     pfc_log_info("PHYS_PATH_FAULT alarm received from driver");
@@ -1505,10 +1506,10 @@ UpplReturnCode Kt_Controller::HandleDriverAlarms(
     }
     if (err != 0) {
       pfc_log_error("Server Event addOutput failed, return IPC_WRITE_ERROR");
-      status = UPPL_RC_ERR_IPC_WRITE_ERROR;
+      status = UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     } else {
       // Call IPC server to post the event
-      status = (UpplReturnCode) physical_layer->get_ipc_connection_manager()->
+      status = (UncRespCode) physical_layer->get_ipc_connection_manager()->
           SendEvent(&ser_evt);
     }
   } else {
@@ -1521,18 +1522,18 @@ UpplReturnCode Kt_Controller::HandleDriverAlarms(
  * @Description : This function checks whether the controller_id exists in DB
  * @param[in] : data type - UNC_DT_*,type of database
  * key value - Contains controller_id
- * @return    : UPPL_RC_SUCCESS or UPPL_RC_ERR* based on operation type
+ * @return    : UNC_RC_SUCCESS or UNC_UPPL_RC_ERR* based on operation type
  * */
-UpplReturnCode Kt_Controller::IsKeyExists(
+UncRespCode Kt_Controller::IsKeyExists(
     OdbcmConnectionHandler *db_conn,
     unc_keytype_datatype_t data_type,
     const vector<string> &key_values) {
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
-  UpplReturnCode check_status = UPPL_RC_SUCCESS;
+  UncRespCode check_status = UNC_RC_SUCCESS;
   if (key_values.empty()) {
     // No key given, return failure
     pfc_log_error("No key given. Returning error");
-    return UPPL_RC_ERR_BAD_REQUEST;
+    return UNC_UPPL_RC_ERR_BAD_REQUEST;
   }
   string controller_name = key_values[0];
   // Structure used to send request to ODBC
@@ -1563,7 +1564,7 @@ UpplReturnCode Kt_Controller::IsKeyExists(
   if (check_db_status == ODBCM_RC_CONNECTION_ERROR) {
     // log error to log daemon
     pfc_log_error("DB connection not available or cannot access DB");
-    check_status = UPPL_RC_ERR_DB_ACCESS;
+    check_status = UNC_UPPL_RC_ERR_DB_ACCESS;
   } else if (check_db_status == ODBCM_RC_ROW_EXISTS) {
     pfc_log_debug("DB returned success for Row exists");
     pfc_log_debug("Checking .db_return_status_ %d with %d",
@@ -1573,11 +1574,11 @@ UpplReturnCode Kt_Controller::IsKeyExists(
       pfc_log_debug("DB returned success for Row exists");
     } else {
       pfc_log_debug("DB Returned failure for IsRowExists");
-      check_status = UPPL_RC_ERR_DB_GET;
+      check_status = UNC_UPPL_RC_ERR_DB_GET;
     }
   } else {
     pfc_log_debug("DB Returned failure for IsRowExists");
-    check_status = UPPL_RC_ERR_DB_GET;
+    check_status = UNC_UPPL_RC_ERR_DB_GET;
   }
   pfc_log_debug("check_status = %d", check_status);
   return check_status;
@@ -1589,14 +1590,14 @@ UpplReturnCode Kt_Controller::IsKeyExists(
  * @param[in] : key_struct-void* to CTR key structure
  * value_struct-void* to CTR val structure
  * data_type-UNC_DT_*,type of database
- * @return    : UPPL_RC_SUCCESS or UPPL_RC_ERR*
+ * @return    : UNC_RC_SUCCESS or UNC_UPPL_RC_ERR*
  * */
-UpplReturnCode Kt_Controller::HandleOperStatus(
+UncRespCode Kt_Controller::HandleOperStatus(
     OdbcmConnectionHandler *db_conn,
     uint32_t data_type,
     void *key_struct,
     void *value_struct) {
-  UpplReturnCode return_code = UPPL_RC_SUCCESS;
+  UncRespCode return_code = UNC_RC_SUCCESS;
   return_code = HandleOperStatus(db_conn, data_type,
                                  key_struct,
                                  value_struct,
@@ -1611,17 +1612,16 @@ UpplReturnCode Kt_Controller::HandleOperStatus(
  * value_struct - identifies the controller value structure
  * data_type-UNC_DT_*,type of database
  * bIsInternal-based on this flag,oper status is updated 
- * @return    : UPPL_RC_SUCCESS or UPPL_RC_ERR*
+ * @return    : UNC_RC_SUCCESS or UNC_UPPL_RC_ERR*
  * */
-UpplReturnCode Kt_Controller::HandleOperStatus(
+UncRespCode Kt_Controller::HandleOperStatus(
     OdbcmConnectionHandler *db_conn,
     uint32_t data_type,
     void *key_struct,
     void *value_struct,
     bool bIsInternal) {
-  FN_START_TIME("HandleOperStatus", "Controller");
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
-  UpplReturnCode return_code = UPPL_RC_SUCCESS;
+  UncRespCode return_code = UNC_RC_SUCCESS;
   val_ctr_st *obj_val_ctr = reinterpret_cast<val_ctr_st*>(value_struct);
   key_ctr_t *obj_key_ctr = reinterpret_cast<key_ctr_t*>(key_struct);
   string controller_name = (const char*)obj_key_ctr->controller_name;
@@ -1634,13 +1634,13 @@ UpplReturnCode Kt_Controller::HandleOperStatus(
       oper_value = UPPL_CONTROLLER_OPER_WAITING_AUDIT;
     }
   }
-  UpplReturnCode read_status = GetOperStatus(db_conn, data_type,
+  UncRespCode read_status = GetOperStatus(db_conn, data_type,
                                              key_struct,
                                              oper_status_db);
   pfc_log_debug("Get OperStatus return: %d", read_status);
   // Update oper_status in controller_table
   return_code = SetOperStatus(db_conn, data_type, key_struct, oper_value);
-  if (return_code != UPPL_RC_SUCCESS) {
+  if (return_code != UNC_RC_SUCCESS) {
     pfc_log_info("oper_status update operation failed %d", return_code);
     return return_code;
   }
@@ -1662,12 +1662,14 @@ UpplReturnCode Kt_Controller::HandleOperStatus(
     // Send CONTROLLER_DISCONNECT alarm
     // Call PhysicalCore's SendControllerDisconnectAlarm()
     pfc_log_info("Sending Controller Disconnect alarm");
-    UpplReturnCode alarms_status=
+    UncRespCode alarms_status=
         physical_layer->get_physical_core()->
         SendControllerDisconnectAlarm(controller_name);
     pfc_log_info("Alarm status: %d", alarms_status);
     vector<OperStatusHolder> ref_oper_status;
-    ADD_CTRL_OPER_STATUS(controller_name, obj_val_ctr->oper_status);
+    ADD_CTRL_OPER_STATUS(controller_name,
+                         obj_val_ctr->oper_status,
+                         ref_oper_status);
     return_code = NotifyOperStatus(db_conn, UNC_DT_RUNNING,
                                    key_struct,
                                    value_struct,
@@ -1678,13 +1680,12 @@ UpplReturnCode Kt_Controller::HandleOperStatus(
     // Send CONTROLLER_CONNECT alarm
     // Call PhysicalCore's SendControllerConnectAlarm()
     pfc_log_info("Sending Controller Connect alarm");
-    UpplReturnCode alarms_status=
+    UncRespCode alarms_status=
         physical_layer->get_physical_core()->
         SendControllerConnectAlarm(controller_name);
     pfc_log_info("Alarm status: %d", alarms_status);
   }
-  FN_END_TIME("HandleOperStatus", "Controller");
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /** NotifyOperStatus
@@ -1693,15 +1694,15 @@ UpplReturnCode Kt_Controller::HandleOperStatus(
  * @param[in] : data_type-UNC_DT_*,type of database
  * key_struct-void* to CTR key structure
  * value_struct-void* to CTR val structure
- * @return    : UPPL_RC_SUCCESS or UPPL_RC_ERR*
+ * @return    : UNC_RC_SUCCESS or UNC_UPPL_RC_ERR*
  * */
-UpplReturnCode Kt_Controller::NotifyOperStatus(
+UncRespCode Kt_Controller::NotifyOperStatus(
     OdbcmConnectionHandler *db_conn,
     uint32_t data_type,
     void *key_struct,
     void *value_struct,
     vector<OperStatusHolder> &ref_oper_status) {
-  UpplReturnCode return_code = UPPL_RC_SUCCESS;
+  UncRespCode return_code = UNC_RC_SUCCESS;
   key_ctr *key = reinterpret_cast<key_ctr_t*>(key_struct);
   string controller_name = reinterpret_cast<char*>(key->controller_name);
 
@@ -1934,11 +1935,11 @@ void Kt_Controller::PopulateDBSchemaForKtTable(
   } else {
     prev_db_val = 0;
   }
-  value.clear();
   PhyUtil::FillDbSchema(unc::uppl::CTR_ACTUAL_VERSION, CTR_ACTUAL_VERSION_STR,
                         value, value.length(), DATATYPE_UINT8_ARRAY_32,
                         operation_type, valid_val, prev_db_val,
                         vect_table_attr_schema, vect_prim_keys, valid);
+  value.clear();
   // oper_status
   if (operation_type == UNC_OP_UPDATE) {
     valid_val = UNC_VF_INVALID;
@@ -2148,12 +2149,12 @@ void Kt_Controller::FillControllerValueStructure(
  * sess- object of ServerSession
  * option1,option2-UNC_OPT1/OPT2_*,additional infor read operations
  * max_rep_ct-max. no of records to be read
- * @return    : UPPL_RC_SUCCESS or UPPL_RC_ERR*,
- * UPPL_RC_SUCCESS is returned when the response
+ * @return    : UNC_RC_SUCCESS or UNC_UPPL_RC_ERR*,
+ * UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_Controller::PerformRead(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Controller::PerformRead(OdbcmConnectionHandler *db_conn,
                                           uint32_t session_id,
                                           uint32_t configuration_id,
                                           void* key_struct,
@@ -2167,7 +2168,7 @@ UpplReturnCode Kt_Controller::PerformRead(OdbcmConnectionHandler *db_conn,
   pfc_log_info("Inside PerformRead operation_type=%d data_type=%d",
                operation_type, data_type);
   key_ctr_t *obj_key_ctr= reinterpret_cast<key_ctr_t*>(key_struct);
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
   if (option1 != UNC_OPT1_NORMAL) {
     pfc_log_error("Invalid option1 specified for read operation");
     physical_response_header rsh = {session_id,
@@ -2177,15 +2178,15 @@ UpplReturnCode Kt_Controller::PerformRead(OdbcmConnectionHandler *db_conn,
         option1,
         option2,
         data_type,
-        UPPL_RC_ERR_INVALID_OPTION1};
+        static_cast<uint32_t>(UNC_UPPL_RC_ERR_INVALID_OPTION1)};
     int err = PhyUtil::sessOutRespHeader(sess, rsh);
     err |= sess.addOutput((uint32_t)UNC_KT_CONTROLLER);
     err |= sess.addOutput(*obj_key_ctr);
     if (err != 0) {
       pfc_log_debug("addOutput failed for physical_response_header");
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   if (option2 != UNC_OPT2_NONE) {
     pfc_log_error("Invalid option2 specified for read operation");
@@ -2196,15 +2197,15 @@ UpplReturnCode Kt_Controller::PerformRead(OdbcmConnectionHandler *db_conn,
         option1,
         option2,
         data_type,
-        UPPL_RC_ERR_INVALID_OPTION2};
+        static_cast<uint32_t>(UNC_UPPL_RC_ERR_INVALID_OPTION2)};
     int err = PhyUtil::sessOutRespHeader(sess, rsh);
     err |= sess.addOutput((uint32_t)UNC_KT_CONTROLLER);
     err |= sess.addOutput(*obj_key_ctr);
     if (err != 0) {
       pfc_log_debug("addOutput failed for physical_response_header");
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   if (operation_type == UNC_OP_READ) {
     max_rep_ct = 1;
@@ -2222,15 +2223,15 @@ UpplReturnCode Kt_Controller::PerformRead(OdbcmConnectionHandler *db_conn,
         option1,
         option2,
         data_type,
-        UPPL_RC_ERR_OPERATION_NOT_ALLOWED};
+        static_cast<uint32_t>(UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED)};
     int err = PhyUtil::sessOutRespHeader(sess, rsh);
     err |= sess.addOutput((uint32_t)UNC_KT_CONTROLLER);
     err |= sess.addOutput(*obj_key_ctr);
     if (err != 0) {
       pfc_log_error("addOutput failed for physical_response_header");
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   // Read from DB directly for all data types
   vector<string> vect_controller_id;
@@ -2249,8 +2250,9 @@ UpplReturnCode Kt_Controller::PerformRead(OdbcmConnectionHandler *db_conn,
       option1,
       option2,
       data_type,
-      read_status};
-  if (read_status == UPPL_RC_SUCCESS) {
+      static_cast<uint32_t>(read_status)};
+
+  if (read_status == UNC_RC_SUCCESS) {
     for (unsigned int index = 0; index < vect_val_ctr_st.size(); ++index) {
       string controller_name = vect_controller_id[index];
       if (data_type == UNC_DT_CANDIDATE &&
@@ -2262,20 +2264,20 @@ UpplReturnCode Kt_Controller::PerformRead(OdbcmConnectionHandler *db_conn,
       }
     }
     if (rsh.max_rep_count == 0) {
-      rsh.result_code = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+      rsh.result_code = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
       int err = PhyUtil::sessOutRespHeader(sess, rsh);
       err |= sess.addOutput((uint32_t)UNC_KT_CONTROLLER);
       err |= sess.addOutput(*obj_key_ctr);
       if (err != 0) {
         pfc_log_error("addOutput failed for physical_response_header");
-        return UPPL_RC_ERR_IPC_WRITE_ERROR;
+        return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
       }
-      return UPPL_RC_SUCCESS;
+      return UNC_RC_SUCCESS;
     }
     int err = PhyUtil::sessOutRespHeader(sess, rsh);
     if (err != 0) {
       pfc_log_debug("addOutput failed for physical_response_header");
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
     for (unsigned int index = 0; index < vect_val_ctr_st.size(); ++index) {
       key_ctr_t obj_ctr;
@@ -2312,7 +2314,7 @@ UpplReturnCode Kt_Controller::PerformRead(OdbcmConnectionHandler *db_conn,
     err |= sess.addOutput(*obj_key_ctr);
     if (err != 0) {
       pfc_log_debug("addOutput failed for physical_response_header");
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
   }
   pfc_log_debug("Return value for read operation %d", read_status);
@@ -2330,12 +2332,12 @@ UpplReturnCode Kt_Controller::PerformRead(OdbcmConnectionHandler *db_conn,
  * max_rep_ct-max no of records to be read
  * vect_val_ctr_st-instance of vector<val_ctr_st_t>
  * controller_id-instance of vector<string> containing ctr keys
- * @return    : UPPL_RC_SUCCESS or UPPL_RC_ERR*
- * UPPL_RC_SUCCESS is returned when the response
+ * @return    : UNC_RC_SUCCESS or UNC_UPPL_RC_ERR*
+ * UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_Controller::ReadCtrValFromDB(
+UncRespCode Kt_Controller::ReadCtrValFromDB(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     void* val_struct,
@@ -2346,10 +2348,10 @@ UpplReturnCode Kt_Controller::ReadCtrValFromDB(
     vector<string> &controller_id) {
   if (operation_type < UNC_OP_READ) {
     // Unsupported operation type for this function
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
   ODBCM_RC_STATUS read_db_status = ODBCM_RC_SUCCESS;
 
   // Common structures that will be used to send query to ODBC
@@ -2375,14 +2377,14 @@ UpplReturnCode Kt_Controller::ReadCtrValFromDB(
   }
   if (read_db_status == ODBCM_RC_RECORD_NOT_FOUND) {
     pfc_log_debug("No record found");
-    read_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+    read_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     return read_status;
   } else if (read_db_status == ODBCM_RC_CONNECTION_ERROR) {
-    read_status = UPPL_RC_ERR_DB_ACCESS;
+    read_status = UNC_UPPL_RC_ERR_DB_ACCESS;
     pfc_log_error("Read operation has failed with error %d", read_db_status);
     return read_status;
   } else if (read_db_status != ODBCM_RC_SUCCESS) {
-    read_status = UPPL_RC_ERR_DB_GET;
+    read_status = UNC_UPPL_RC_ERR_DB_GET;
     // log error to log daemon
     pfc_log_error("Read operation has failed with error %d", read_db_status);
     return read_status;
@@ -2392,11 +2394,11 @@ UpplReturnCode Kt_Controller::ReadCtrValFromDB(
                                max_rep_ct,
                                operation_type,
                                controller_id);
-  pfc_log_debug("vect_val_ctr size: %d", (unsigned int)vect_val_ctr_st.size());
-  pfc_log_debug("controller_id size: %d", (unsigned int)controller_id.size());
+  pfc_log_debug("vect_val_ctr size: %" PFC_PFMT_SIZE_T, vect_val_ctr_st.size());
+  pfc_log_debug("controller_id size: %" PFC_PFMT_SIZE_T, controller_id.size());
   if (vect_val_ctr_st.empty()) {
     // Read failed , return error
-    read_status = UPPL_RC_ERR_DB_GET;
+    read_status = UNC_UPPL_RC_ERR_DB_GET;
     // log error to log daemon
     pfc_log_error("Read operation has failed after reading response");
     return read_status;
@@ -2503,12 +2505,12 @@ void Kt_Controller::FreeChildKeyStruct(void* key_struct,
  * @Description : This function reads all KT_Controller with given row_status
  * @param[in] : obj_key_struct-vector of void* to ctr key structure
  * row_status-CsRowStatus value
- * @return    : UPPL_RC_SUCCESS or UPPL_RC_ERR*
- * UPPL_RC_SUCCESS is returned when the response
+ * @return    : UNC_RC_SUCCESS or UNC_UPPL_RC_ERR*
+ * UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_Controller::GetModifiedRows(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Controller::GetModifiedRows(OdbcmConnectionHandler *db_conn,
                                               vector<void *> &obj_key_struct,
                                               CsRowStatus row_status) {
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
@@ -2524,7 +2526,7 @@ UpplReturnCode Kt_Controller::GetModifiedRows(OdbcmConnectionHandler *db_conn,
   void *ctr_key = reinterpret_cast <void *> (&obj_key_ctr);
   void *ctr_val = reinterpret_cast <void *> (&val_struct);
 
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
   ODBCM_RC_STATUS read_db_status = ODBCM_RC_SUCCESS;
 
   DBTableSchema kt_controller_dbtableschema;
@@ -2541,13 +2543,13 @@ UpplReturnCode Kt_Controller::GetModifiedRows(OdbcmConnectionHandler *db_conn,
       GetModifiedRows(UNC_DT_CANDIDATE, kt_controller_dbtableschema, db_conn);
   if (read_db_status == ODBCM_RC_RECORD_NOT_FOUND) {
     pfc_log_debug("No record to read");
-    read_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+    read_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     return read_status;
   } else if (read_db_status == ODBCM_RC_CONNECTION_ERROR) {
-    read_status = UPPL_RC_ERR_DB_ACCESS;
+    read_status = UNC_UPPL_RC_ERR_DB_ACCESS;
     return read_status;
   } else if (read_db_status != ODBCM_RC_SUCCESS) {
-    read_status = UPPL_RC_ERR_DB_GET;
+    read_status = UNC_UPPL_RC_ERR_DB_GET;
     return read_status;
   }
   vector<string> controller_id;
@@ -2617,7 +2619,7 @@ void Kt_Controller::Fill_Attr_Syntax_Map() {
   attr_syntax_map[CTR_ENABLE_AUDIT_STR] = objAttrAuditSyntax;
 
   Kt_Class_Attr_Syntax objAttrValidSyntax =
-  { PFC_IPCTYPE_STRING, 0, 0, 0, 8, false, "" };
+  { PFC_IPCTYPE_STRING, 0, 0, 0, 7, false, "" };
   attr_syntax_map[CTR_VALID_STR] = objAttrValidSyntax;
 
   Kt_Class_Attr_Syntax objAttrCsRowSyntax =
@@ -2625,7 +2627,7 @@ void Kt_Controller::Fill_Attr_Syntax_Map() {
   attr_syntax_map[CTR_CS_ROW_STATUS_STR] = objAttrCsRowSyntax;
 
   Kt_Class_Attr_Syntax objAttrCsAttrSyntax =
-  { PFC_IPCTYPE_STRING, 0, 0, 0, 8, false, "" };
+  { PFC_IPCTYPE_STRING, 0, 0, 0, 7, false, "" };
   attr_syntax_map[CTR_CS_ATTR_STR] = objAttrCsAttrSyntax;
   attr_syntax_map_all[UNC_KT_CONTROLLER] = attr_syntax_map;
 }
@@ -2686,16 +2688,16 @@ void Kt_Controller::FreeKeyStruct(void* key_struct,
  * data_type-UNC_DT_*,type of database
  * param[out]:oper_status-oper status of Controller whether up/down/auditing
  * @return    : Success or associated error code
- * UPPL_RC_SUCCESS is returned when the response
+ * UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  */
-UpplReturnCode Kt_Controller::GetOperStatus(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Controller::GetOperStatus(OdbcmConnectionHandler *db_conn,
                                             uint32_t data_type,
                                             void* key_struct,
                                             uint8_t &oper_status) {
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
-  UpplReturnCode return_code = UPPL_RC_SUCCESS;
+  UncRespCode return_code = UNC_RC_SUCCESS;
   vector<string> vect_prim_keys;
   vect_prim_keys.push_back(CTR_NAME_STR);
 
@@ -2744,7 +2746,7 @@ UpplReturnCode Kt_Controller::GetOperStatus(OdbcmConnectionHandler *db_conn,
       }
     }
   } else {
-    return_code = UPPL_RC_ERR_DB_GET;
+    return_code = UNC_UPPL_RC_ERR_DB_GET;
   }
   return return_code;
 }
@@ -2756,16 +2758,16 @@ UpplReturnCode Kt_Controller::GetOperStatus(OdbcmConnectionHandler *db_conn,
  * data_type-UNC_DT_*,type of database
  * oper_status-oper status of Controller
  * @return    : Success or associated error code 
- * UPPL_RC_SUCCESS is returned when the response
+ * UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  */
-UpplReturnCode Kt_Controller::SetOperStatus(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Controller::SetOperStatus(OdbcmConnectionHandler *db_conn,
                                             uint32_t data_type,
                                             void* key_struct,
                                             uint8_t oper_status) {
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
-  UpplReturnCode return_code = UPPL_RC_SUCCESS;
+  UncRespCode return_code = UNC_RC_SUCCESS;
   vector<string> vect_prim_keys;
   vect_prim_keys.push_back(CTR_NAME_STR);
 
@@ -2799,10 +2801,10 @@ UpplReturnCode Kt_Controller::SetOperStatus(OdbcmConnectionHandler *db_conn,
     pfc_log_info("oper_status updated in DB successfully");
   } else if (update_db_status == ODBCM_RC_CONNECTION_ERROR) {
     pfc_log_fatal("DB connection issue during set oper status");
-    return_code = UPPL_RC_ERR_DB_ACCESS;
+    return_code = UNC_UPPL_RC_ERR_DB_ACCESS;
   } else {
     pfc_log_info("oper_status update failed in DB");
-    return_code = UPPL_RC_ERR_DB_UPDATE;
+    return_code = UNC_UPPL_RC_ERR_DB_UPDATE;
   }
   return return_code;
 }
@@ -2814,17 +2816,17 @@ UpplReturnCode Kt_Controller::SetOperStatus(OdbcmConnectionHandler *db_conn,
  * actual_version-version of controller
  * data_type-UNC_DT_*,type of database
  * @return    : Success or associated error code
- * UPPL_RC_SUCCESS is returned when the response
+ * UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  */
-UpplReturnCode Kt_Controller::SetActualVersion(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Controller::SetActualVersion(OdbcmConnectionHandler *db_conn,
                                                void* key_struct,
                                                string actual_version,
                                                uint32_t data_type,
                                                uint32_t valid_flag) {
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
-  UpplReturnCode return_code = UPPL_RC_SUCCESS;
+  UncRespCode return_code = UNC_RC_SUCCESS;
   vector<string> vect_prim_keys;
   vect_prim_keys.push_back(CTR_NAME_STR);
 
@@ -2886,7 +2888,7 @@ UpplReturnCode Kt_Controller::SetActualVersion(OdbcmConnectionHandler *db_conn,
     pfc_log_info("actual version updated in DB successfully");
   } else {
     pfc_log_error("actual version update failed in DB");
-    return_code = UPPL_RC_ERR_DB_UPDATE;
+    return_code = UNC_UPPL_RC_ERR_DB_UPDATE;
   }
   return return_code;
 }
@@ -2901,13 +2903,13 @@ UpplReturnCode Kt_Controller::SetActualVersion(OdbcmConnectionHandler *db_conn,
  *                key_struct:- key struct for updated controller
  *                val_struct:- val struct for updated controller
  * @return      : Success or associated error code
- *                UPPL_RC_SUCCESS is returned when the response
+ *                UNC_RC_SUCCESS is returned when the response
  *                is added to ipc session successfully.
- *                UPPL_RC_ERR_* is returned when ipc response 
+ *                UNC_UPPL_RC_ERR_* is returned when ipc response 
  *                could not be added to sess.
  * */
 
-UpplReturnCode Kt_Controller::SendUpdatedControllerInfoToUPLL(
+UncRespCode Kt_Controller::SendUpdatedControllerInfoToUPLL(
     uint32_t data_type,
     uint32_t operation_type,
     uint32_t key_type,
@@ -2918,7 +2920,7 @@ UpplReturnCode Kt_Controller::SendUpdatedControllerInfoToUPLL(
   int err = pfc_ipcclnt_altopen(UPLL_IPC_CHANNEL_NAME, &connp);
   if (err != 0) {
     pfc_log_error("Could not open upll ipc session");
-    return UPPL_RC_ERR_LOGICAL_COMMUNICATION_FAILURE;
+    return UNC_UPPL_RC_ERR_LOGICAL_COMMUNICATION_FAILURE;
   }
   key_ctr_t *obj_key_ctr = reinterpret_cast<key_ctr_t*>(key_struct);
   val_ctr_t *obj_val_ctr = reinterpret_cast<val_ctr_t*>(val_struct);
@@ -2935,22 +2937,22 @@ UpplReturnCode Kt_Controller::SendUpdatedControllerInfoToUPLL(
   if (val_struct != NULL) {
     err |= upll_cli_session.addOutput(*obj_val_ctr);
   }
-  if (err != UPPL_RC_SUCCESS) {
+  if (err != UNC_RC_SUCCESS) {
     pfc_log_error("Error in adding parameters to session");
-    return UPPL_RC_ERR_LOGICAL_COMMUNICATION_FAILURE;
+    return UNC_UPPL_RC_ERR_LOGICAL_COMMUNICATION_FAILURE;
   }
   pfc_ipcresp_t resp = 0;
   err = upll_cli_session.invoke(resp);
   if (err != 0 || resp != UPLL_RC_SUCCESS) {
     pfc_log_error(" Request failed to UPLL with error no: %d resp=%d",
                   err, resp);
-    return UPPL_RC_ERR_LOGICAL_COMMUNICATION_FAILURE;
+    return UNC_UPPL_RC_ERR_LOGICAL_COMMUNICATION_FAILURE;
   }
   err = pfc_ipcclnt_altclose(connp);
   if (err != 0) {
     pfc_log_info("Unable to close ipc connection");
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /** GetCtrValidFlag
@@ -2958,21 +2960,21 @@ UpplReturnCode Kt_Controller::SendUpdatedControllerInfoToUPLL(
  * @param[in] : key_struct-void* to ctr key structure
  * val_ctr_valid_st-instance of val_ctr_st_t
  * @return    : Success or associated error code
- * UPPL_RC_SUCCESS is returned when the response
+ * UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_Controller::GetCtrValidFlag(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Controller::GetCtrValidFlag(OdbcmConnectionHandler *db_conn,
                                               void *key_struct,
                                               val_ctr_st_t &val_ctr_valid_st,
                                               uint32_t data_type) {
-  UpplReturnCode return_code = UPPL_RC_SUCCESS;
+  UncRespCode return_code = UNC_RC_SUCCESS;
   vector<void *> vect_key_ctr;
   vect_key_ctr.push_back(key_struct);
   vector<void *> vect_val_ctr;
   return_code = ReadInternal(db_conn, vect_key_ctr, vect_val_ctr,
                              data_type, UNC_OP_READ);
-  if (return_code == UPPL_RC_SUCCESS) {
+  if (return_code == UNC_RC_SUCCESS) {
     val_ctr_st_t *val_ctr_new_valid_st =
         reinterpret_cast<val_ctr_st_t*>(vect_val_ctr[0]);
     if (val_ctr_new_valid_st != NULL) {
@@ -3045,22 +3047,22 @@ void Kt_Controller::FrameCsAttrValue(string attr_value,
  * data_type-UNC_DT_*,type of datatype
  * ctrl_type-type of controller,value of unc_keytype_ctrtype_t
  * @return    : Success or associated error code
- * UPPL_RC_SUCCESS is returned when the response
+ * UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_Controller::ValidateTypeIpAddress(
+UncRespCode Kt_Controller::ValidateTypeIpAddress(
     OdbcmConnectionHandler *db_conn,
     void *key_struct,
     void *val_struct,
     uint32_t data_type,
     uint32_t ctrl_type) {
-  UpplReturnCode status = UPPL_RC_SUCCESS;
+  UncRespCode status = UNC_RC_SUCCESS;
   val_ctr_t *obj_val_ctr = reinterpret_cast<val_ctr_t*>(val_struct);
   if (obj_val_ctr == NULL) {
     // Not required to validate type and ip
     pfc_log_debug("Not required to validate type and ip");
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   key_ctr_t *ctr_key = reinterpret_cast<key_ctr_t*>(key_struct);
   string controller_name = (const char*)ctr_key->controller_name;
@@ -3071,7 +3073,7 @@ UpplReturnCode Kt_Controller::ValidateTypeIpAddress(
   if (ip_valid_val == UNC_VF_INVALID) {
     // Not required to validate type and ip
     pfc_log_debug("Not required to validate type and ip");
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   uint32_t type = obj_val_ctr->type;
   if (type_valid_val == UNC_VF_INVALID) {
@@ -3104,8 +3106,8 @@ UpplReturnCode Kt_Controller::ValidateTypeIpAddress(
                                count,
                                UNC_OP_READ_SIBLING_BEGIN,
                                controller_id);
-  pfc_log_debug("controller_id size: %d",
-                (unsigned int)controller_id.size());
+  pfc_log_debug("controller_id size: %"
+                PFC_PFMT_SIZE_T, controller_id.size());
   vector <val_ctr_st_t>::iterator vect_val_ctr_iter = vect_val_ctr_st.begin();
   vector <string>::iterator vect_ctr_iter = controller_id.begin();
   for (; vect_val_ctr_iter != vect_val_ctr_st.end(),
@@ -3123,7 +3125,7 @@ UpplReturnCode Kt_Controller::ValidateTypeIpAddress(
       pfc_log_error(
           "Creation of Controller with already existing type and "
           "ip address not allowed");
-      status = UPPL_RC_ERR_CFG_SYNTAX;
+      status = UNC_UPPL_RC_ERR_CFG_SYNTAX;
       break;
     }
   }
@@ -3139,18 +3141,18 @@ UpplReturnCode Kt_Controller::ValidateTypeIpAddress(
  * val_ctr-pointer to val_ctr_t
  * param[out]:ctr_type_code-Success or associated error code
  * @return    : Success or associated error code
- * UPPL_RC_SUCCESS is returned when the response
+ * UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_Controller::ValidateControllerType(
+UncRespCode Kt_Controller::ValidateControllerType(
     OdbcmConnectionHandler *db_conn,
     uint32_t operation,
     uint32_t data_type,
     unc_keytype_ctrtype_t ctr_type,
-    UpplReturnCode ctr_type_code,
+    UncRespCode ctr_type_code,
     val_ctr *val_ctr) {
-  UpplReturnCode ret_code = UPPL_RC_SUCCESS;
+  UncRespCode ret_code = UNC_RC_SUCCESS;
   pfc_bool_t mandatory = PFC_TRUE;
   // Validate value structure
   unsigned int valid_val = 0;
@@ -3160,15 +3162,15 @@ UpplReturnCode Kt_Controller::ValidateControllerType(
       attr_syntax_map_all[UNC_KT_CONTROLLER];
   IS_VALID_INT_VALUE(CTR_TYPE_STR, val_ctr->type, operation,
                      valid_val, ret_code, mandatory);
-  if (ret_code != UPPL_RC_SUCCESS) {
-    return UPPL_RC_ERR_CFG_SYNTAX;
+  if (ret_code != UNC_RC_SUCCESS) {
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
-  if (operation == UNC_OP_UPDATE && ctr_type_code == UPPL_RC_SUCCESS &&
+  if (operation == UNC_OP_UPDATE && ctr_type_code == UNC_RC_SUCCESS &&
       valid_val == UNC_VF_VALID && val_ctr->type != ctr_type) {
     pfc_log_error("type cannot be modified");
-    return UPPL_RC_ERR_CFG_SYNTAX;
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /** ValidateControllerVersion
@@ -3180,22 +3182,22 @@ UpplReturnCode Kt_Controller::ValidateControllerType(
  * val_ctr-pointer ctr value structure
  * param[out]:ctr_type_code-Success or associated error code
  * @return    : Success or associated error code
- * UPPL_RC_SUCCESS is returned when the response
+ * UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_Controller::ValidateControllerVersion(
+UncRespCode Kt_Controller::ValidateControllerVersion(
     OdbcmConnectionHandler *db_conn,
     uint32_t operation,
     uint32_t data_type,
     unc_keytype_ctrtype_t ctr_type,
-    UpplReturnCode ctr_type_code,
+    UncRespCode ctr_type_code,
     val_ctr *val_ctr) {
-  UpplReturnCode ret_code = UPPL_RC_SUCCESS;
+  UncRespCode ret_code = UNC_RC_SUCCESS;
   pfc_bool_t mandatory = PFC_TRUE;
   unsigned int valid_val = 0;
   // Version validation not required for Unknown Controller
-  if ((operation == UNC_OP_UPDATE && ctr_type_code == UPPL_RC_SUCCESS &&
+  if ((operation == UNC_OP_UPDATE && ctr_type_code == UNC_RC_SUCCESS &&
       ctr_type == UNC_CT_PFC) ||
       (operation == UNC_OP_CREATE &&  val_ctr->type == UNC_CT_PFC)) {
     // validate version
@@ -3205,11 +3207,11 @@ UpplReturnCode Kt_Controller::ValidateControllerVersion(
     string value = reinterpret_cast<char*>(val_ctr->version);
     IS_VALID_STRING_VALUE(CTR_VERSION_STR, value, operation,
                           valid_val, ret_code, mandatory);
-    if (ret_code != UPPL_RC_SUCCESS) {
-      return UPPL_RC_ERR_CFG_SYNTAX;
+    if (ret_code != UNC_RC_SUCCESS) {
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /** ValidateControllerDescription
@@ -3221,18 +3223,18 @@ UpplReturnCode Kt_Controller::ValidateControllerVersion(
  * val_ctr-pointer to ctr val structure
  * param[out]:ctr_type_code-Success or associated error code
  * @return    : Success or associated error code
- * UPPL_RC_SUCCESS is returned when the response
+ * UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_Controller::ValidateControllerDescription(
+UncRespCode Kt_Controller::ValidateControllerDescription(
     OdbcmConnectionHandler *db_conn,
     uint32_t operation,
     uint32_t data_type,
     unc_keytype_ctrtype_t ctr_type,
-    UpplReturnCode ctr_type_code,
+    UncRespCode ctr_type_code,
     val_ctr *val_ctr) {
-  UpplReturnCode ret_code = UPPL_RC_SUCCESS;
+  UncRespCode ret_code = UNC_RC_SUCCESS;
   pfc_bool_t mandatory = PFC_TRUE;
   unsigned int valid_val = 0;
   // validate description
@@ -3242,10 +3244,10 @@ UpplReturnCode Kt_Controller::ValidateControllerDescription(
       attr_syntax_map_all[UNC_KT_CONTROLLER];
   IS_VALID_STRING_VALUE(CTR_DESCRIPTION_STR, value, operation,
                         valid_val, ret_code, mandatory);
-  if (ret_code != UPPL_RC_SUCCESS) {
-    return UPPL_RC_ERR_CFG_SYNTAX;
+  if (ret_code != UNC_RC_SUCCESS) {
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /** ValidateControllerIpAddress
@@ -3257,56 +3259,56 @@ UpplReturnCode Kt_Controller::ValidateControllerDescription(
  * val_ctr-pointer to ctr val structure
  * param[out]:ctr_type_code-Success or associated error code
  * @return    : Success or associated error code
- * UPPL_RC_SUCCESS is returned when the response
+ * UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_Controller::ValidateControllerIpAddress(
+UncRespCode Kt_Controller::ValidateControllerIpAddress(
     OdbcmConnectionHandler *db_conn,
     uint32_t operation,
     uint32_t data_type,
     unc_keytype_ctrtype_t ctr_type,
-    UpplReturnCode ctr_type_code,
+    UncRespCode ctr_type_code,
     void *key_struct,
     void *val_struct) {
-  UpplReturnCode ret_code = UPPL_RC_SUCCESS;
+  UncRespCode ret_code = UNC_RC_SUCCESS;
   pfc_bool_t mandatory = PFC_TRUE;
   unsigned int valid_val = 0;
   val_ctr *val_ctr = reinterpret_cast<val_ctr_t*>(val_struct);
   // validate IP address
   valid_val = PhyUtil::uint8touint(val_ctr->valid[kIdxIpAddress]);
-  if (operation == UNC_OP_UPDATE && ctr_type_code == UPPL_RC_SUCCESS &&
+  if (operation == UNC_OP_UPDATE && ctr_type_code == UNC_RC_SUCCESS &&
       ctr_type == UNC_CT_UNKNOWN && valid_val == UNC_VF_VALID) {
     pfc_log_error(
         "Ip address cannot be modified for unknown controller type");
-    return UPPL_RC_ERR_CFG_SYNTAX;
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
-  if (operation == UNC_OP_UPDATE && ctr_type_code == UPPL_RC_SUCCESS &&
+  if (operation == UNC_OP_UPDATE && ctr_type_code == UNC_RC_SUCCESS &&
       valid_val == UNC_VF_VALID) {
-    UpplReturnCode validate_status = ValidateTypeIpAddress(db_conn, key_struct,
+    UncRespCode validate_status = ValidateTypeIpAddress(db_conn, key_struct,
                                                            val_struct,
                                                            data_type,
                                                            ctr_type);
-    if (validate_status != UPPL_RC_SUCCESS) {
-      return UPPL_RC_ERR_CFG_SYNTAX;
+    if (validate_status != UNC_RC_SUCCESS) {
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
     pfc_log_debug("Validating Type and Ip Address in Running Db");
     validate_status = ValidateTypeIpAddress(db_conn, key_struct,
                                             val_struct,
                                             UNC_DT_RUNNING,
                                             ctr_type);
-    if (validate_status != UPPL_RC_SUCCESS) {
-      return UPPL_RC_ERR_CFG_SYNTAX;
+    if (validate_status != UNC_RC_SUCCESS) {
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
   }
   map<string, Kt_Class_Attr_Syntax> attr_syntax_map =
       attr_syntax_map_all[UNC_KT_CONTROLLER];
   IS_VALID_IPV4_VALUE(CTR_IP_ADDRESS_STR, val_ctr->ip_address, operation,
                       valid_val, ret_code, mandatory);
-  if (ret_code != UPPL_RC_SUCCESS) {
-    return UPPL_RC_ERR_CFG_SYNTAX;
+  if (ret_code != UNC_RC_SUCCESS) {
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /** ValidateControllerUser
@@ -3318,36 +3320,36 @@ UpplReturnCode Kt_Controller::ValidateControllerIpAddress(
  * val_ctr-pointer to ctr val structure
  * param[out]:ctr_type_code-Success or associated error code
  * @return    : Success or associated error code
- * UPPL_RC_SUCCESS is returned when the response
+ * UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess. 
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess. 
  * */
-UpplReturnCode Kt_Controller::ValidateControllerUser(
+UncRespCode Kt_Controller::ValidateControllerUser(
     OdbcmConnectionHandler *db_conn,
     uint32_t operation,
     uint32_t data_type,
     unc_keytype_ctrtype_t ctr_type,
-    UpplReturnCode ctr_type_code,
+    UncRespCode ctr_type_code,
     val_ctr *val_ctr) {
-  UpplReturnCode ret_code = UPPL_RC_SUCCESS;
+  UncRespCode ret_code = UNC_RC_SUCCESS;
   pfc_bool_t mandatory = PFC_TRUE;
   unsigned int valid_val = 0;
   // validate user
   valid_val = PhyUtil::uint8touint(val_ctr->valid[kIdxUser]);
-  if (operation == UNC_OP_UPDATE && ctr_type_code == UPPL_RC_SUCCESS &&
+  if (operation == UNC_OP_UPDATE && ctr_type_code == UNC_RC_SUCCESS &&
       ctr_type == UNC_CT_UNKNOWN && valid_val == UNC_VF_VALID) {
     pfc_log_error("User cannot be modified for unknown controller type");
-    return UPPL_RC_ERR_CFG_SYNTAX;
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
   string value = reinterpret_cast<char*>(val_ctr->user);
   map<string, Kt_Class_Attr_Syntax> attr_syntax_map =
       attr_syntax_map_all[UNC_KT_CONTROLLER];
   IS_VALID_STRING_VALUE(IPCT_USER, value, operation,
                         valid_val, ret_code, mandatory);
-  if (ret_code != UPPL_RC_SUCCESS) {
-    return UPPL_RC_ERR_CFG_SYNTAX;
+  if (ret_code != UNC_RC_SUCCESS) {
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /** ValidateControllerPassword
@@ -3358,34 +3360,34 @@ UpplReturnCode Kt_Controller::ValidateControllerUser(
  * ctr_type-type of controller,value of unc_keytype_ctrtype_t
  * val_ctr-pointer to ctr val structure
  * param[out]:ctr_type_code-Success or associated error code
- * @return    : Success or associated error code,UPPL_RC_SUCCESS/ERR*
+ * @return    : Success or associated error code,UNC_RC_SUCCESS/ERR*
  * */
-UpplReturnCode Kt_Controller::ValidateControllerPassword(
+UncRespCode Kt_Controller::ValidateControllerPassword(
     OdbcmConnectionHandler *db_conn,
     uint32_t operation,
     uint32_t data_type,
     unc_keytype_ctrtype_t ctr_type,
-    UpplReturnCode ctr_type_code,
+    UncRespCode ctr_type_code,
     val_ctr *val_ctr) {
-  UpplReturnCode ret_code = UPPL_RC_SUCCESS;
+  UncRespCode ret_code = UNC_RC_SUCCESS;
   pfc_bool_t mandatory = PFC_TRUE;
   unsigned int valid_val = 0;
   // validate password
   valid_val = PhyUtil::uint8touint(val_ctr->valid[kIdxPassword]);
-  if (operation == UNC_OP_UPDATE && ctr_type_code == UPPL_RC_SUCCESS &&
+  if (operation == UNC_OP_UPDATE && ctr_type_code == UNC_RC_SUCCESS &&
       ctr_type == UNC_CT_UNKNOWN && valid_val == UNC_VF_VALID) {
     pfc_log_error("Password cannot be modified for unknown controller type");
-    return UPPL_RC_ERR_CFG_SYNTAX;
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
   string value = reinterpret_cast<char*>(val_ctr->password);
   map<string, Kt_Class_Attr_Syntax> attr_syntax_map =
       attr_syntax_map_all[UNC_KT_CONTROLLER];
   IS_VALID_STRING_VALUE(CTR_PASSWORD_STR, value, operation,
                         valid_val, ret_code, mandatory);
-  if (ret_code != UPPL_RC_SUCCESS) {
-    return UPPL_RC_ERR_CFG_SYNTAX;
+  if (ret_code != UNC_RC_SUCCESS) {
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /** ValidateControllerEnableAudit
@@ -3396,34 +3398,34 @@ UpplReturnCode Kt_Controller::ValidateControllerPassword(
  * ctr_type-type of controller, value of unc_keytype_ctrtype_t
  * val_ctr-pointer to ctr val structure
  * param[out]:ctr_type_code-Success or associated error code 
- * @return    : Success or associated error code,UPPL_RC_SUCCESS/ERR*
+ * @return    : Success or associated error code,UNC_RC_SUCCESS/ERR*
  * */
-UpplReturnCode Kt_Controller::ValidateControllerEnableAudit(
+UncRespCode Kt_Controller::ValidateControllerEnableAudit(
     OdbcmConnectionHandler *db_conn,
     uint32_t operation,
     uint32_t data_type,
     unc_keytype_ctrtype_t ctr_type,
-    UpplReturnCode ctr_type_code,
+    UncRespCode ctr_type_code,
     val_ctr *val_ctr) {
-  UpplReturnCode ret_code = UPPL_RC_SUCCESS;
+  UncRespCode ret_code = UNC_RC_SUCCESS;
   pfc_bool_t mandatory = PFC_TRUE;
   unsigned int valid_val = 0;
   // validate enable_audit
   valid_val = PhyUtil::uint8touint(val_ctr->valid[kIdxEnableAudit]);
-  if (operation == UNC_OP_UPDATE && ctr_type_code == UPPL_RC_SUCCESS &&
+  if (operation == UNC_OP_UPDATE && ctr_type_code == UNC_RC_SUCCESS &&
       ctr_type == UNC_CT_UNKNOWN && valid_val == UNC_VF_VALID) {
     pfc_log_error(
         "Enable audit cannot be modified for unknown controller type");
-    return UPPL_RC_ERR_CFG_SYNTAX;
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
   map<string, Kt_Class_Attr_Syntax> attr_syntax_map =
       attr_syntax_map_all[UNC_KT_CONTROLLER];
   IS_VALID_INT_VALUE(CTR_ENABLE_AUDIT_STR, val_ctr->enable_audit, operation,
                      valid_val, ret_code, mandatory);
-  if (ret_code != UPPL_RC_SUCCESS) {
-    return UPPL_RC_ERR_CFG_SYNTAX;
+  if (ret_code != UNC_RC_SUCCESS) {
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /** SendOperStatusNotification
@@ -3432,12 +3434,12 @@ UpplReturnCode Kt_Controller::ValidateControllerEnableAudit(
  * @param[in] : ctr_key pointer to ctr key structure
  * old_oper_st-old oper status of controller 
  * new_oper_st-new oper status of controller
- * @return    : Success or associated error code,UPPL_RC_SUCESS/ERR*
+ * @return    : Success or associated error code,UNC_UPPL_RC_SUCESS/ERR*
  * */
-UpplReturnCode Kt_Controller::SendOperStatusNotification(key_ctr_t ctr_key,
+UncRespCode Kt_Controller::SendOperStatusNotification(key_ctr_t ctr_key,
                                                          uint8_t old_oper_st,
                                                          uint8_t new_oper_st) {
-  UpplReturnCode status = UPPL_RC_SUCCESS;
+  UncRespCode status = UNC_RC_SUCCESS;
   int err = 0;
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
   val_ctr_st_t old_val_ctr, new_val_ctr;
@@ -3458,13 +3460,13 @@ UpplReturnCode Kt_Controller::SendOperStatusNotification(key_ctr_t ctr_key,
   if (err != 0) {
     pfc_log_error(
         "Server Event addOutput failed, return IPC_WRITE_ERROR");
-    status = UPPL_RC_ERR_IPC_WRITE_ERROR;
+    status = UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
   } else {
     pfc_log_debug("%s", (IpctUtil::get_string(ctr_key)).c_str());
     pfc_log_debug("%s", (IpctUtil::get_string(new_val_ctr)).c_str());
     pfc_log_debug("%s", (IpctUtil::get_string(old_val_ctr)).c_str());
     // Call IPC server to post the event
-    status = (UpplReturnCode) physical_layer
+    status = (UncRespCode) physical_layer
         ->get_ipc_connection_manager()->SendEvent(&ser_evt);
   }
   return status;
@@ -3474,12 +3476,12 @@ UpplReturnCode Kt_Controller::SendOperStatusNotification(key_ctr_t ctr_key,
  * @Description : This function checks the ip address and clears state db
  *                if ip address is empty
  * @param[in] : key_struct of controller
- * @return    : Success or associated error code,UPPL_RC_SUCESS/ERR*
+ * @return    : Success or associated error code,UNC_UPPL_RC_SUCESS/ERR*
  * */
-UpplReturnCode Kt_Controller::CheckIpAndClearStateDB(
+UncRespCode Kt_Controller::CheckIpAndClearStateDB(
     OdbcmConnectionHandler *db_conn,
     void *key_struct) {
-  UpplReturnCode state_status = UPPL_RC_SUCCESS;
+  UncRespCode state_status = UNC_RC_SUCCESS;
   vector<void *> vect_ctr_key, vect_ctr_val;
   vect_ctr_key.push_back(key_struct);
   state_status = ReadInternal(db_conn,
@@ -3487,7 +3489,7 @@ UpplReturnCode Kt_Controller::CheckIpAndClearStateDB(
                               vect_ctr_val,
                               UNC_DT_RUNNING,
                               UNC_OP_READ);
-  if (state_status != UPPL_RC_SUCCESS) {
+  if (state_status != UNC_RC_SUCCESS) {
     pfc_log_debug("Read Internal Failed");
     return state_status;
   }
@@ -3513,15 +3515,15 @@ UpplReturnCode Kt_Controller::CheckIpAndClearStateDB(
       }
       // Reset actual version as empty
       string act_version = "";
-      UpplReturnCode status = SetActualVersion(db_conn, key_struct, act_version,
+      UncRespCode status = SetActualVersion(db_conn, key_struct, act_version,
                                                UNC_DT_RUNNING, UNC_VF_INVALID);
-      if (status != UPPL_RC_SUCCESS) {
+      if (status != UNC_RC_SUCCESS) {
         // log error
         pfc_log_error("act_version reset operation failed for running");
       }
       status = SetActualVersion(db_conn, key_struct,
                                 act_version, UNC_DT_CANDIDATE, UNC_VF_INVALID);
-      if (status != UPPL_RC_SUCCESS) {
+      if (status != UNC_RC_SUCCESS) {
         // log error
         pfc_log_error("act_version reset operation failed for candidate");
       }
@@ -3538,11 +3540,11 @@ UpplReturnCode Kt_Controller::CheckIpAndClearStateDB(
  * val_ctr_valid_st-instance of val_ctr_st_t
  * @return    : Success or associated error code
  * */
-UpplReturnCode Kt_Controller::CheckSameIp(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Controller::CheckSameIp(OdbcmConnectionHandler *db_conn,
                                           void *key_struct,
                                           void *val_struct,
                                           uint32_t data_type) {
-  UpplReturnCode return_code = UPPL_RC_SUCCESS;
+  UncRespCode return_code = UNC_RC_SUCCESS;
   vector<void *> vect_key_ctr;
   vect_key_ctr.push_back(key_struct);
   vector<void *> vect_val_ctr;
@@ -3550,7 +3552,7 @@ UpplReturnCode Kt_Controller::CheckSameIp(OdbcmConnectionHandler *db_conn,
   uint32_t existing_ip = ctr_val.ip_address.s_addr;
   return_code = ReadInternal(db_conn, vect_key_ctr, vect_val_ctr,
                              data_type, UNC_OP_READ);
-  if (return_code == UPPL_RC_SUCCESS) {
+  if (return_code == UNC_RC_SUCCESS) {
     val_ctr_st_t *val_ctr_new_valid_st =
         reinterpret_cast<val_ctr_st_t*>(vect_val_ctr[0]);
     if (val_ctr_new_valid_st != NULL) {
@@ -3559,7 +3561,7 @@ UpplReturnCode Kt_Controller::CheckSameIp(OdbcmConnectionHandler *db_conn,
         pfc_log_info("Same Ip given - Ignore");
       } else {
         pfc_log_info("Different Ip given - Throw Error");
-        return_code = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+        return_code = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
       }
       delete val_ctr_new_valid_st;
       val_ctr_new_valid_st = NULL;
diff --git a/coordinator/modules/uppl/itc_kt_ctr_dataflow.cc b/coordinator/modules/uppl/itc_kt_ctr_dataflow.cc
new file mode 100644 (file)
index 0000000..493bc9e
--- /dev/null
@@ -0,0 +1,438 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * @brief   KT Ctr_Dataflow implementation
+ * @file    itc_kt_ctr_Dataflow.cc
+ *
+ */
+#include "ipc_client_configuration_handler.hh"
+#include "itc_kt_ctr_dataflow.hh"
+#include "itc_kt_controller.hh"
+#include "odbcm_utils.hh"
+#include "itc_read_request.hh"
+#include "odbcm_db_varbind.hh"
+#include "uncxx/dataflow.hh"
+#include "capa_module.hh"
+
+using unc::uppl::PhysicalLayer;
+using unc::uppl::ODBCMUtils;
+using unc::uppl::IPCClientDriverHandler;
+using unc::dataflow::DataflowCmn;
+using unc::dataflow::DataflowUtil;
+using unc::dataflow::DataflowDetail;
+
+/** Constructor
+ * @Description : This function fills the syntax map used for validation
+ * @param[in] : None
+ * @return    : None
+ * */
+Kt_Ctr_Dataflow::Kt_Ctr_Dataflow() {
+  if (attr_syntax_map_all.find(UNC_KT_CTR_DATAFLOW) ==
+      attr_syntax_map_all.end()) {
+    // Populate Structure to be used for syntax validation
+    Fill_Attr_Syntax_Map();
+  }
+}
+
+/** Destructor
+ * @Description : Empty Destructor
+ * @param[in] : None
+ * @return    : None
+ * */
+Kt_Ctr_Dataflow::~Kt_Ctr_Dataflow() {
+}
+
+/* * ReadInternal
+ * @Description : This function reads the given instance of Kt Ctr_Dataflow
+ * @param[in] : key_struct - key for kt ctr_Dataflow instance
+ * value_struct - value for kt ctr_Dataflow instance
+ * data_type - UNC_DT_*, read allowed in STATE
+ * operation_type-type of operation,can be UNC_OP_READ
+ * @return    : UNC_RC_SUCCESS is returned when the response is added to
+ * ipc session successfully
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * */
+UncRespCode Kt_Ctr_Dataflow::ReadInternal(OdbcmConnectionHandler *db_conn,
+                                       vector<void *> &key_val,
+                                       vector<void *> &val_struct,
+                                       uint32_t data_type,
+                                       uint32_t operation_type) {
+  pfc_log_debug("Inside ReadInternal of KT_CTR_DATAFLOW");
+  UncRespCode read_status = UNC_RC_SUCCESS;
+  return read_status;
+}
+
+/** ReadBulk
+ * @Description : This function reads the max_rep_ct number of instances
+ *  of the KT_Ctr_Dataflow
+ * @param[in] :
+ * key_struct - key for switch instance
+ * data_type - UNC_DT_* , ReadBulk supported for STATE
+ * max_rep_ct - specifies no of rows to be returned
+ * parent_call - indicates whether parent has called this read bulk
+ * is_read_next - indicates whether this function is invoked from read_next
+ * @return    : UNC_RC_SUCCESS is returned when the response is added to
+ * ipc session successfully
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess
+ * */
+UncRespCode Kt_Ctr_Dataflow::ReadBulk(OdbcmConnectionHandler *db_conn,
+                                   void* key_struct,
+                                   uint32_t data_type,
+                                   uint32_t &max_rep_ct,
+                                   int child_index,
+                                   pfc_bool_t parent_call,
+                                   pfc_bool_t is_read_next,
+                                   ReadRequest *read_req) {
+  pfc_log_debug("ReadBulk operation is not allowed in Kt_Ctr_Dataflow");
+  UncRespCode read_status = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+  return read_status;
+}
+
+/** PerformSyntaxValidation
+ * @Description : This function performs syntax validation for KT_CTR_DATAFLOW
+ * @param[in] : key_struct - key for kt ctr_Dataflow instance
+ * value_struct - value for kt ctr_Dataflow instance
+ * operation - UNC_OP_*,type of operation READ
+ * data_type - UNC_DT_*,type of database STATE
+ * @return    : UNC_RC_SUCCESS is returned when the validation is successful
+ * UNC_UPPL_RC_ERR_* is returned when validation is failure or associated error code
+ * */
+UncRespCode Kt_Ctr_Dataflow::PerformSyntaxValidation(
+    OdbcmConnectionHandler *db_conn,
+    void* key_struct,
+    void* val_struct,
+    uint32_t operation,
+    uint32_t data_type) {
+  pfc_log_info("Inside PerformSyntax Validation of KT_CTR_DATAFLOW");
+  UncRespCode ret_code = UNC_RC_SUCCESS;
+  pfc_bool_t mandatory = PFC_TRUE;
+
+  // Validate Key Structure
+  key_ctr_dataflow *key = reinterpret_cast<key_ctr_dataflow_t*>(key_struct);
+  string ctrl_name = reinterpret_cast<char*>(key->ctr_key.controller_name);
+  map<string, Kt_Class_Attr_Syntax> attr_syntax_map =
+      attr_syntax_map_all[UNC_KT_CTR_DATAFLOW];
+  IS_VALID_STRING_KEY(CTR_NAME_STR, ctrl_name, operation, ret_code, mandatory);
+  if (ret_code != UNC_RC_SUCCESS) {
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
+  }
+
+  uint64_t val = key->flow_id;
+  if (val <= 0)
+    ret_code = UNC_UPPL_RC_ERR_CFG_SYNTAX;
+  return ret_code;
+}
+
+/** PerformSemanticValidation
+ * @Description : This function performs semantic validation
+ *                  for UNC_KT_CTR_DATAFLOW
+ * @param[in] : key_struct - specifies key instance of KT_CTR_DATAFLOW
+ * value_struct - specifies value of KT_CTR_DATAFLOW
+ * operation - UNC_OP*,type of operation READ
+ * data_type - UNC_DT*,type of database STATE
+ * @return    : UNC_RC_SUCCESS if semantic validation is successful
+ * or UNC_UPPL_RC_ERR_* if failed
+ * */
+UncRespCode Kt_Ctr_Dataflow::PerformSemanticValidation(
+    OdbcmConnectionHandler *db_conn,
+    void* key_struct,
+    void* val_struct,
+    uint32_t operation,
+    uint32_t data_type) {
+  UncRespCode ret_code = UNC_RC_SUCCESS;
+  pfc_log_trace("Inside PerformSemanticValidation of KT_CTR_DATAFLOW");
+  uint32_t nums = 0;
+  const uint8_t *attrs = 0;
+  if (operation != UNC_OP_READ || data_type != UNC_DT_STATE) {
+    pfc_log_debug("operation is not supported !!");
+    return UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+  }
+  // Not allowing the STANDBY request
+  PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
+  if (physical_layer->get_physical_core()->get_system_state() == \
+       UPPL_SYSTEM_ST_STANDBY) {
+    pfc_log_error("System is in Standby mode");
+    return UNC_UPPL_RC_ERR_NOT_SUPPORTED_BY_STANDBY;
+  }
+  unc::capa::CapaModule *capa = reinterpret_cast<unc::capa::CapaModule *>(
+    pfc::core::Module::getInstance("capa"));
+  if (capa == NULL) {
+    pfc_log_warn("%s:%d: CapaModule is not found", __FUNCTION__, __LINE__);
+     return UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
+  }
+  // collect controller type, actual version, configured version, oper_status
+  Kt_Controller KtObj;
+  vector<void *> vect_key_ctr;
+  vect_key_ctr.push_back(key_struct);
+  vector<void *> vect_val_ctr;
+  ret_code = KtObj.ReadInternal(db_conn, vect_key_ctr, vect_val_ctr,
+                              UNC_DT_RUNNING, UNC_OP_READ);
+  if (ret_code != UNC_RC_SUCCESS) {
+    pfc_log_debug("Read of Controller failed");
+    return ret_code;
+  }
+  key_ctr_t *ctr_key = reinterpret_cast<key_ctr_t*>(vect_key_ctr[0]);
+  val_ctr_st *val_ctr_vect =
+                     reinterpret_cast <val_ctr_st*>(vect_val_ctr[0]);
+  if (val_ctr_vect == NULL || ctr_key == NULL) {
+    if (ctr_key != NULL) {
+      delete ctr_key;
+      ctr_key = NULL;
+    }
+    return UNC_UPPL_RC_ERR_CFG_SEMANTIC;
+  }
+  unc_keytype_ctrtype_t ctr_type =
+           (unc_keytype_ctrtype_t) val_ctr_vect->controller.type;
+  // configured version
+  string version = (const char*)val_ctr_vect->controller.version;
+  pfc_log_debug("controller_type=%d", val_ctr_vect->controller.type);
+  pfc_log_debug("oper_status_db=%d", val_ctr_vect->oper_status);
+  pfc_log_debug("config version=%s", version.c_str());
+
+  if (val_ctr_vect->controller.type != UNC_CT_PFC) {
+    pfc_log_error("Read operation is NOT allowed for non-PFC controllers");
+    ret_code = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+  } else if (val_ctr_vect->oper_status != UPPL_CONTROLLER_OPER_UP) {
+    pfc_log_error("Read operation is NOT allowed if the controller is DOWN");
+    ret_code = UNC_UPPL_RC_ERR_CTRLR_DISCONNECTED;
+  }
+  if (ret_code != UNC_RC_SUCCESS) {
+    if (ctr_key != NULL) {
+      delete ctr_key;
+      ctr_key = NULL;
+    }
+    if (val_ctr_vect != NULL) {
+      delete val_ctr_vect;
+      val_ctr_vect = NULL;
+    }
+    return ret_code;
+  }
+
+  // Call CapaModule and check for PFC actual version
+  bool ret_actual = capa->GetReadCapability(ctr_type,
+                       version,
+                       UNC_KT_CTR_DATAFLOW,
+                       &nums,
+                       &attrs);
+  pfc_log_debug("return of GetReadCapability = %d", ret_actual);
+  if (ret_actual != true) {
+    pfc_log_debug("KEY TYPE is NOT supported for version : %s",
+                       version.c_str());
+     ret_code = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+  }
+
+  pfc_log_debug("KEY TYPE is supported for version : %s",
+                      version.c_str());
+  if (ctr_key != NULL) {
+      delete ctr_key;
+      ctr_key = NULL;
+  }
+  if (val_ctr_vect != NULL) {
+      delete val_ctr_vect;
+      val_ctr_vect = NULL;
+  }
+  return ret_code;
+}
+
+/** PerformRead
+ * @Description : This function reads the instance of KT_Ctr_Dataflow based on
+ * operation type - READ 
+ * @param[in] : ipc session id - ipc session id used for TC validation
+ * configuration id - configuration id used for TC validation
+ * key_struct - key instance of KT_Ctr_Dataflow
+ * value_struct - value instance of Kt_Ctr_Dataflow
+ * data_type - UNC_DT_* , read allowed in STATE,UNC_DT_*
+ * operation_type -  specifies the operation type,UNC_OP_*
+ * sess - ipc server session where the response has to be added
+ * option1, option2 - additional condition associated with read operation
+ * max_rep_ct - specifies no of rows to be returned
+ * @return    : UNC_RC_SUCCESS or UNC_UPPL_RC_ERR_*
+ * */
+UncRespCode Kt_Ctr_Dataflow::PerformRead(OdbcmConnectionHandler *db_conn,
+                                      uint32_t session_id,
+                                      uint32_t configuration_id,
+                                      void* key_struct,
+                                      void* val_struct,
+                                      uint32_t data_type,
+                                      uint32_t operation_type,
+                                      ServerSession &sess,
+                                      uint32_t option1,
+                                      uint32_t option2,
+                                      uint32_t max_rep_ct) {
+  pfc_log_info("Inside PerformRead operation_type=%d data_type=%d",
+               operation_type, data_type);
+
+  physical_response_header rsh = {session_id,
+      configuration_id,
+      operation_type,
+      max_rep_ct,
+      option1,
+      option2,
+      data_type,
+      static_cast<uint32_t>(0)};
+  if (operation_type == UNC_OP_READ) {
+    max_rep_ct = 1;
+  }
+  key_ctr_dataflow_t *obj_key_ctr_dataflow
+      = reinterpret_cast<key_ctr_dataflow_t*>(key_struct);
+
+  // Invalid Operation TODO: move this to as part of semantic validation.
+  if (option1 != UNC_OPT1_NORMAL && option1 != UNC_OPT1_DETAIL) {
+    pfc_log_error("Invalid option1 specified for read operation");
+    rsh.result_code = UNC_UPPL_RC_ERR_INVALID_OPTION1;
+    int err = PhyUtil::sessOutRespHeader(sess, rsh);
+    err |= sess.addOutput((uint32_t)UNC_KT_CTR_DATAFLOW);
+    err |= sess.addOutput(*obj_key_ctr_dataflow);
+    if (err != 0) {
+      pfc_log_error("addOutput failed for physical_response_header");
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
+    }
+    return UNC_RC_SUCCESS;
+  }
+  rsh.result_code = PerformSemanticValidation(db_conn, key_struct,
+                         val_struct, operation_type, data_type);
+  if (rsh.result_code != UNC_RC_SUCCESS) {
+    pfc_log_error("PerformSemanticValidation failed %d", rsh.result_code);
+    int err = PhyUtil::sessOutRespHeader(sess, rsh);
+    err |= sess.addOutput((uint32_t)UNC_KT_CTR_DATAFLOW);
+    err |= sess.addOutput(*obj_key_ctr_dataflow);
+    if (err != 0) {
+      pfc_log_error("addOutput failed for physical_response_header");
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
+    }
+    return UNC_RC_SUCCESS;
+  }
+
+  pfc_log_debug("creating IPCClientDriverHandler object,"
+                " with PFC type and result code variable is passed");
+  UncRespCode sess_err = UNC_RC_SUCCESS;
+  IPCClientDriverHandler pfc_drv_handler(UNC_CT_PFC, sess_err);
+  if (sess_err != UNC_RC_SUCCESS) {
+    pfc_log_error("Cannot open session to PFC driver");
+    return sess_err;
+  }
+  ClientSession *cli_session = pfc_drv_handler.ResetAndGetSession();
+  string controller_name =
+     reinterpret_cast<char*>(obj_key_ctr_dataflow->ctr_key.controller_name);
+  string domain_id = "";
+  uint64_t flow_id = obj_key_ctr_dataflow->flow_id;
+  driver_request_header rqh = {uint32_t(0), uint32_t(0), controller_name,
+      domain_id, static_cast<uint32_t>(UNC_OP_READ), uint32_t(0),
+      option1, (uint32_t)0, static_cast<uint32_t>(UNC_DT_STATE),
+      static_cast<uint32_t>(UNC_KT_CTR_DATAFLOW)};
+  int err1 = PhyUtil::sessOutDriverReqHeader(*cli_session, rqh);
+  err1 |= cli_session->addOutput(*obj_key_ctr_dataflow);
+  if (err1 != 0) {
+    pfc_log_error("addOutput failed for driver_request_header");
+    return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
+  }
+  // Send the request to driver
+  UncRespCode driver_response = UNC_RC_SUCCESS;
+  driver_response_header rsp;
+
+  driver_response = pfc_drv_handler.SendReqAndGetResp(rsp);
+  if (driver_response != UNC_RC_SUCCESS) {
+    pfc_log_error("Read request to Driver failed for controller %s"
+        " ,flow_id %" PFC_PFMT_u64 " with response %d", controller_name.c_str(),
+        flow_id, driver_response);
+    rsh.result_code = driver_response;
+    int err = PhyUtil::sessOutRespHeader(sess, rsh);
+    err |= sess.addOutput((uint32_t)UNC_KT_CTR_DATAFLOW);
+    err |= sess.addOutput(*obj_key_ctr_dataflow);
+    if (err != 0) {
+      pfc_log_error("addOutput failed for physical_response_header");
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
+    }
+    return UNC_RC_SUCCESS;
+  }
+
+  int read_err_status = UNC_RC_SUCCESS;
+  uint32_t resp_pos = 12;
+  DataflowDetail *df_segment =
+    new DataflowDetail((unc::dataflow::IpctStructNum)0);
+  val_df_data_flow_st_t obj_val_df_data_flow_st;
+  memset(&obj_val_df_data_flow_st, 0, sizeof(val_df_data_flow_st_t));
+  if (option1 == UNC_OPT1_NORMAL) {
+    //  READ THE RESPONSE FROM DRIVER session as per section 11.9 in FD API doc
+    pfc_log_debug("call sessReadDataflow fn from ctr_dataflow for read-normal");
+    read_err_status |= df_segment->sessReadDataflow(*cli_session, resp_pos);
+  } else if (option1 == UNC_OPT1_DETAIL) {
+    //  READ THE RESPONSE FROM DRIVER session  as per section 11.9 in FD API doc
+    read_err_status |= cli_session->getResponse(resp_pos,
+                                                 obj_val_df_data_flow_st);
+    pfc_log_debug("%s",
+             (DataflowUtil::get_string(obj_val_df_data_flow_st).c_str()));
+    resp_pos++;
+    pfc_log_debug("call sessReadDataflow fn from ctr_dataflow for read-detail");
+    read_err_status |= df_segment->sessReadDataflow(*cli_session, resp_pos);
+  }
+  int putresp_pos = 10;
+  rsh.result_code = read_err_status;
+  rsh.max_rep_count = max_rep_ct;
+  if (read_err_status != UNC_RC_SUCCESS) {
+    int err = PhyUtil::sessOutRespHeader(sess, rsh);
+    if (err != 0) {
+      pfc_log_error("Failure in addOutput");
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
+    }
+    return UNC_RC_SUCCESS;
+  }
+  int err = PhyUtil::sessOutRespHeader(sess, rsh);
+  err |= sess.addOutput((uint32_t)UNC_KT_CTR_DATAFLOW);
+  err |= sess.addOutput(*obj_key_ctr_dataflow);
+  if (err != 0) {
+    pfc_log_error("Failure in addOutput");
+    return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
+  }
+  string str1 = DataflowCmn::get_string(*obj_key_ctr_dataflow);
+  pfc_log_debug("%s", str1.c_str());
+  if (option1 == UNC_OPT1_NORMAL) {
+    //  WRITE THE RESPONSE TO NORTHBOUND session
+    //  as per section 6.11 in FD API doc
+    pfc_log_debug("call sessOutDataflow from ctr_dataflow for read-normal");
+    DataflowCmn df_cmn(true, df_segment);
+    err |= df_cmn.sessOutDataflow(sess, putresp_pos);
+  } else if (option1 == UNC_OPT1_DETAIL) {
+    //  WRITE THE RESPONSE TO NORTHBOUND session
+    //  as per section 6.11 in FD API doc
+    err |= sess.addOutput(obj_val_df_data_flow_st);
+    string str = DataflowUtil::get_string(obj_val_df_data_flow_st);
+    pfc_log_debug("%s", str.c_str());
+    pfc_log_debug("call sessOutDataflow from ctr_dataflow for read-detail");
+    putresp_pos = 11;
+    DataflowCmn df_cmn(true, df_segment);
+    err |= df_cmn.sessOutDataflow(sess, putresp_pos);
+  }
+  if (err != 0) {
+    pfc_log_error("Failure in addOutput");
+    return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
+  }
+  return UNC_RC_SUCCESS;
+}
+
+/** Fill_Attr_Syntax_Map
+ * @Description : This function fills the attributes associated
+ * with the class
+ * @param[in] : none
+ * @return    : none
+ * */
+void Kt_Ctr_Dataflow::Fill_Attr_Syntax_Map() {
+  map<string, Kt_Class_Attr_Syntax> attr_syntax_map;
+
+  Kt_Class_Attr_Syntax key_attrib1 =
+  { PFC_IPCTYPE_UINT8, 0, 0, 1, 32, true, "" };
+  attr_syntax_map[CTR_NAME_STR] = key_attrib1;
+
+  Kt_Class_Attr_Syntax key_attrib2 =
+  { PFC_IPCTYPE_UINT64, 1, 1, 0, 0, true, "" };
+  attr_syntax_map[CTR_DATAFLOW_FLOWID_STR] = key_attrib2;
+
+  attr_syntax_map_all[UNC_KT_CTR_DATAFLOW] = attr_syntax_map;
+}
index 108872005e32a4b74fc85055eefcc15b198f4801..ac96d37daab76437769fed235f3c00b9c52fbafa 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -92,42 +92,42 @@ Kt_Base* Kt_Ctr_Domain::GetChildClassPointer(KtDomainChildClass KIndex) {
  *                data_type - UNC_DT_* , Create only allowed in candidate from
  *                VTN
  *                sess - ipc server session where the response has to be added
- * @return      : UPPL_RC_SUCCESS is returned when the response is added to ipc
+ * @return      : UNC_RC_SUCCESS is returned when the response is added to ipc
  *                session successfully.
- *                UPPL_RC_ERR_* is returned when ipc response could not be
+ *                UNC_UPPL_RC_ERR_* is returned when ipc response could not be
  *                added to sess.
  **/
 
-UpplReturnCode Kt_Ctr_Domain::Create(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Ctr_Domain::Create(OdbcmConnectionHandler *db_conn,
                                      uint32_t session_id,
                                      uint32_t configuration_id,
                                      void* key_struct,
                                      void* val_struct,
                                      uint32_t data_type,
                                      ServerSession &sess) {
-  UpplReturnCode create_status = UPPL_RC_SUCCESS;
+  UncRespCode create_status = UNC_RC_SUCCESS;
   key_ctr_domain *obj_key_ctr_domain=
       reinterpret_cast<key_ctr_domain*>(key_struct);
   if ((unc_keytype_datatype_t)data_type != UNC_DT_CANDIDATE) {
     pfc_log_error("Create operation is provided on unsupported data type");
-    create_status = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    create_status = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
   } else {
     string controller_name = (const char*)obj_key_ctr_domain->
         ctr_key.controller_name;
     unc_keytype_ctrtype_t controller_type;
-    UpplReturnCode retcode = PhyUtil::get_controller_type(
+    UncRespCode retcode = PhyUtil::get_controller_type(
         db_conn, controller_name,
         controller_type,
         (unc_keytype_datatype_t)data_type);
     // Check whether operation is allowed on the given DT type
-    if (retcode != UPPL_RC_SUCCESS) {
+    if (retcode != UNC_RC_SUCCESS) {
       pfc_log_error("Error getting the controller type");
-      create_status = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
-    } else if (retcode == UPPL_RC_SUCCESS) {
+      create_status = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    } else if (retcode == UNC_RC_SUCCESS) {
       if (controller_type != UNC_CT_UNKNOWN) {
         pfc_log_error("Create Operation of KNOWN DOMAIN");
         pfc_log_error("is not supported from VTN");
-        create_status = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+        create_status = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
       } else {
         create_status = CreateKeyInstance(db_conn, key_struct,
                                           val_struct,
@@ -145,16 +145,16 @@ UpplReturnCode Kt_Ctr_Domain::Create(OdbcmConnectionHandler *db_conn,
       0,
       0,
       data_type,
-      create_status};
+      static_cast<uint32_t>(create_status)};
 
   int err = PhyUtil::sessOutRespHeader(sess, rsh);
   err |= sess.addOutput((uint32_t)UNC_KT_CTR_DOMAIN);
   err |= sess.addOutput(*obj_key_ctr_domain);
   if (err != 0) {
     pfc_log_error("Server session addOutput failed, so return IPC_WRITE_ERROR");
-    create_status = UPPL_RC_ERR_IPC_WRITE_ERROR;
+    create_status = UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
   } else {
-    create_status = UPPL_RC_SUCCESS;
+    create_status = UNC_RC_SUCCESS;
   }
   return create_status;
 }
@@ -168,23 +168,23 @@ UpplReturnCode Kt_Ctr_Domain::Create(OdbcmConnectionHandler *db_conn,
  *                request is from VTN and allowed in state if request is from
  *                south bound
  *                key_type - indicates the key type class 
- * * @return    : UPPL_RC_SUCCESS is returned when the create is success
- *                UPPL_RC_ERR_* is returned when ipc response could not be
+ * * @return    : UNC_RC_SUCCESS is returned when the create is success
+ *                UNC_UPPL_RC_ERR_* is returned when ipc response could not be
  *                added to sess.
  * */
-UpplReturnCode Kt_Ctr_Domain::CreateKeyInstance(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Ctr_Domain::CreateKeyInstance(OdbcmConnectionHandler *db_conn,
                                                 void* key_struct,
                                                 void* val_struct,
                                                 uint32_t data_type,
                                                 uint32_t key_type) {
-  UpplReturnCode create_status = UPPL_RC_SUCCESS;
+  UncRespCode create_status = UNC_RC_SUCCESS;
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
   // Check whether operation is allowed on the given DT type
   if ((unc_keytype_datatype_t)data_type != UNC_DT_CANDIDATE &&
       (unc_keytype_datatype_t)data_type != UNC_DT_STATE &&
       (unc_keytype_datatype_t)data_type != UNC_DT_IMPORT) {
     pfc_log_error("Create operation is provided on unsupported data type");
-    return UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    return UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
   }
 
   // Structure used to send request to ODBC
@@ -217,11 +217,11 @@ UpplReturnCode Kt_Ctr_Domain::CreateKeyInstance(OdbcmConnectionHandler *db_conn,
     if (create_db_status == ODBCM_RC_CONNECTION_ERROR) {
       // log fatal error to log daemon
       pfc_log_fatal("DB connection not available or cannot access DB");
-      create_status = UPPL_RC_ERR_DB_ACCESS;
+      create_status = UNC_UPPL_RC_ERR_DB_ACCESS;
     } else {
       // log error to log daemon
       pfc_log_error("Create operation has failed");
-      create_status = UPPL_RC_ERR_DB_CREATE;
+      create_status = UNC_UPPL_RC_ERR_DB_CREATE;
     }
   } else {
     pfc_log_info("Create of Domain is success");
@@ -239,41 +239,41 @@ UpplReturnCode Kt_Ctr_Domain::CreateKeyInstance(OdbcmConnectionHandler *db_conn,
  *                data_type - UNC_DT_* , Update only allowed in candidate from
  *                VTN
  *                sess - ipc server session where the response has to be added
- * @return      : UPPL_RC_SUCCESS is returned when the response is added to ipc
+ * @return      : UNC_RC_SUCCESS is returned when the response is added to ipc
  *                session successfully.
- *                UPPL_RC_ERR_* is returned when ipc response could not be
+ *                UNC_UPPL_RC_ERR_* is returned when ipc response could not be
  *                added to sess.
  **/
-UpplReturnCode Kt_Ctr_Domain::Update(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Ctr_Domain::Update(OdbcmConnectionHandler *db_conn,
                                      uint32_t session_id,
                                      uint32_t configuration_id,
                                      void* key_struct,
                                      void* val_struct,
                                      uint32_t data_type,
                                      ServerSession &sess) {
-  UpplReturnCode update_status = UPPL_RC_SUCCESS;
+  UncRespCode update_status = UNC_RC_SUCCESS;
   key_ctr_domain *obj_key_ctr_domain=
       reinterpret_cast<key_ctr_domain*>(key_struct);
   if ((unc_keytype_datatype_t)data_type != UNC_DT_CANDIDATE) {
     pfc_log_error("Update operation is provided on unsupported data type");
-    update_status = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    update_status = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
   } else {
     string controller_name = (const char*)obj_key_ctr_domain->
         ctr_key.controller_name;
     unc_keytype_ctrtype_t controller_type;
-    UpplReturnCode retcode = PhyUtil::get_controller_type(
+    UncRespCode retcode = PhyUtil::get_controller_type(
         db_conn, controller_name,
         controller_type,
         (unc_keytype_datatype_t)data_type);
     // Check whether operation is allowed on the given DT type
-    if (retcode != UPPL_RC_SUCCESS) {
+    if (retcode != UNC_RC_SUCCESS) {
       pfc_log_error("Error getting the controller type");
-      update_status = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
-    } else if (retcode == UPPL_RC_SUCCESS) {
+      update_status = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    } else if (retcode == UNC_RC_SUCCESS) {
       if (controller_type != UNC_CT_UNKNOWN) {
         pfc_log_error("Update Operation of KNOWN DOMAIN");
         pfc_log_error("is not supported from VTN");
-        update_status = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+        update_status = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
       } else {
         update_status = UpdateKeyInstance(db_conn, key_struct,
                                           val_struct,
@@ -291,15 +291,15 @@ UpplReturnCode Kt_Ctr_Domain::Update(OdbcmConnectionHandler *db_conn,
       0,
       0,
       data_type,
-      update_status};
+      static_cast<uint32_t>(update_status)};
   int err = PhyUtil::sessOutRespHeader(sess, rsh);
   err |= sess.addOutput((uint32_t)UNC_KT_CTR_DOMAIN);
   err |= sess.addOutput(*obj_key_ctr_domain);
   if (err != 0) {
     pfc_log_error("Server session addOutput failed, so return IPC_WRITE_ERROR");
-    update_status = UPPL_RC_ERR_IPC_WRITE_ERROR;
+    update_status = UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
   } else {
-    update_status = UPPL_RC_SUCCESS;
+    update_status = UNC_RC_SUCCESS;
   }
   return update_status;
 }
@@ -312,23 +312,23 @@ UpplReturnCode Kt_Ctr_Domain::Update(OdbcmConnectionHandler *db_conn,
  *                request is from VTN and allowed in state if request is from
  *                southbound
  *                key_type - indicates the key type class
- * * @return    : UPPL_RC_SUCCESS is returned when the update
+ * * @return    : UNC_RC_SUCCESS is returned when the update
  * is done successfully.
- * UPPL_RC_ERR_* is returned when the update is error
+ * UNC_UPPL_RC_ERR_* is returned when the update is error
  * */
-UpplReturnCode Kt_Ctr_Domain::UpdateKeyInstance(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Ctr_Domain::UpdateKeyInstance(OdbcmConnectionHandler *db_conn,
                                                 void* key_struct,
                                                 void* val_struct,
                                                 uint32_t data_type,
                                                 uint32_t key_type) {
-  UpplReturnCode update_status = UPPL_RC_SUCCESS;
+  UncRespCode update_status = UNC_RC_SUCCESS;
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
   // Check whether operation is allowed on the given DT type
   if ((unc_keytype_datatype_t)data_type != UNC_DT_CANDIDATE &&
       (unc_keytype_datatype_t)data_type != UNC_DT_STATE &&
       (unc_keytype_datatype_t)data_type != UNC_DT_IMPORT) {
     pfc_log_error("Update operation is provided on unsupported data type");
-    return UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    return UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
   }
   // Structure used to send request to ODBC
   DBTableSchema kt_ctr_domain_dbtableschema;
@@ -361,10 +361,10 @@ UpplReturnCode Kt_Ctr_Domain::UpdateKeyInstance(OdbcmConnectionHandler *db_conn,
       if (update_db_status == ODBCM_RC_CONNECTION_ERROR) {
         // log fatal error to log daemon
         pfc_log_fatal("DB connection not available or cannot access DB");
-        update_status = UPPL_RC_ERR_DB_ACCESS;
+        update_status = UNC_UPPL_RC_ERR_DB_ACCESS;
       } else {
         // log error to log daemon
-        update_status = UPPL_RC_ERR_DB_UPDATE;
+        update_status = UNC_UPPL_RC_ERR_DB_UPDATE;
       }
     } else {
       pfc_log_info("Update of a ctr domain in data_type(%d) is success",
@@ -386,41 +386,41 @@ UpplReturnCode Kt_Ctr_Domain::UpdateKeyInstance(OdbcmConnectionHandler *db_conn,
  *                  request is from VTN and allowed in state if request is from
  *                  southbound
  *                  sess - ipc server session where the response has to be added
- * * @return      : UPPL_RC_SUCCESS is returned when the response is added to
+ * * @return      : UNC_RC_SUCCESS is returned when the response is added to
  *                  ipc session successfully.
- *                  UPPL_RC_ERR_* is returned when ipc response could not be
+ *                  UNC_UPPL_RC_ERR_* is returned when ipc response could not be
  *                  added to sess.
  **/
-UpplReturnCode Kt_Ctr_Domain::Delete(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Ctr_Domain::Delete(OdbcmConnectionHandler *db_conn,
                                      uint32_t session_id,
                                      uint32_t configuration_id,
                                      void* key_struct,
                                      uint32_t data_type,
                                      ServerSession &sess) {
-  UpplReturnCode delete_status = UPPL_RC_SUCCESS;
+  UncRespCode delete_status = UNC_RC_SUCCESS;
   key_ctr_domain *obj_key_ctr_domain=
       reinterpret_cast<key_ctr_domain*>(key_struct);
   if ((unc_keytype_datatype_t)data_type != UNC_DT_CANDIDATE) {
     pfc_log_error("Delete operation is provided on unsupported data type");
-    delete_status = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    delete_status = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
   } else {
     string domain_name = (const char*)obj_key_ctr_domain->domain_name;
     string controller_name = (const char*)obj_key_ctr_domain->
         ctr_key.controller_name;
     unc_keytype_ctrtype_t controller_type;
-    UpplReturnCode retcode = PhyUtil::get_controller_type(
+    UncRespCode retcode = PhyUtil::get_controller_type(
         db_conn, controller_name, controller_type,
         (unc_keytype_datatype_t)data_type);
     // Check whether operation is allowed on the given DT type
-    if (retcode != UPPL_RC_SUCCESS) {
+    if (retcode != UNC_RC_SUCCESS) {
       pfc_log_error("Error getting the controller type");
-      delete_status = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+      delete_status = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
     }
-    if (retcode == UPPL_RC_SUCCESS && controller_type != UNC_CT_UNKNOWN) {
+    if (retcode == UNC_RC_SUCCESS && controller_type != UNC_CT_UNKNOWN) {
       pfc_log_error("Delete Operation of KNOWN DOMAIN");
       pfc_log_error("is not supported from VTN");
-      delete_status = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
-    } else if (retcode == UPPL_RC_SUCCESS) {
+      delete_status = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    } else if (retcode == UNC_RC_SUCCESS) {
       // Check whether any boundary is referring domain
       Kt_Boundary boundary_class;
       if (boundary_class.IsBoundaryReferred(db_conn, UNC_KT_CTR_DOMAIN,
@@ -429,7 +429,7 @@ UpplReturnCode Kt_Ctr_Domain::Delete(OdbcmConnectionHandler *db_conn,
         // Boundary is referring Domain
         pfc_log_error("Domain is referred in Boundary, "
             "so delete is not allowed");
-        delete_status = UPPL_RC_ERR_CFG_SEMANTIC;
+        delete_status = UNC_UPPL_RC_ERR_CFG_SEMANTIC;
       } else {
         // Delete domain
         delete_status = DeleteKeyInstance(db_conn, key_struct, data_type,
@@ -445,15 +445,15 @@ UpplReturnCode Kt_Ctr_Domain::Delete(OdbcmConnectionHandler *db_conn,
       0,
       0,
       data_type,
-      delete_status};
+      static_cast<uint32_t>(delete_status)};
   int err = PhyUtil::sessOutRespHeader(sess, rsh);
   err |= sess.addOutput((uint32_t)UNC_KT_CTR_DOMAIN);
   err |= sess.addOutput(*obj_key_ctr_domain);
   if (err != 0) {
     pfc_log_error("Server session addOutput failed, so return IPC_WRITE_ERROR");
-    delete_status = UPPL_RC_ERR_IPC_WRITE_ERROR;
+    delete_status = UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
   } else {
-    delete_status = UPPL_RC_SUCCESS;
+    delete_status = UNC_RC_SUCCESS;
   }
   return delete_status;
 }
@@ -466,11 +466,11 @@ UpplReturnCode Kt_Ctr_Domain::Delete(OdbcmConnectionHandler *db_conn,
  *                request is from VTN and allowed in state if request is from
  *                southbound
  *                key_type - indicates the key type class
- * @return      : UPPL_RC_SUCCESS is returned when the delete is done
+ * @return      : UNC_RC_SUCCESS is returned when the delete is done
  *                successfully.
- *                UPPL_RC_ERR_* is returned when the delete is error
+ *                UNC_UPPL_RC_ERR_* is returned when the delete is error
  **/
-UpplReturnCode Kt_Ctr_Domain::DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Ctr_Domain::DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
                                                 void* key_struct,
                                                 uint32_t data_type,
                                                 uint32_t key_type) {
@@ -479,9 +479,9 @@ UpplReturnCode Kt_Ctr_Domain::DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
       (unc_keytype_datatype_t)data_type != UNC_DT_STATE &&
       (unc_keytype_datatype_t)data_type != UNC_DT_IMPORT) {
     pfc_log_error("Delete operation is provided on unsupported data type");
-    return UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    return UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
   }
-  UpplReturnCode delete_status = UPPL_RC_SUCCESS;
+  UncRespCode delete_status = UNC_RC_SUCCESS;
   key_ctr_domain *obj_key_ctr_domain=
       reinterpret_cast<key_ctr_domain*>(key_struct);
   string domain_name = (const char*)obj_key_ctr_domain->domain_name;
@@ -515,25 +515,25 @@ UpplReturnCode Kt_Ctr_Domain::DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
                                                  controller_name,
                                                  domain_name);
       Kt_LogicalPort logical_port;
-      UpplReturnCode ch_delete_status = logical_port.DeleteKeyInstance(
+      UncRespCode ch_delete_status = logical_port.DeleteKeyInstance(
           db_conn,
           child_key_struct,
           data_type,
           UNC_KT_LOGICAL_PORT);
       FreeChildKeyStruct(KIdxLogicalPort, child_key_struct);
-      if (ch_delete_status == UPPL_RC_ERR_NO_SUCH_INSTANCE) {
+      if (ch_delete_status == UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE) {
         pfc_log_debug("Domain has no child");
       }
-      if (ch_delete_status != UPPL_RC_ERR_NO_SUCH_INSTANCE &&
-          ch_delete_status != UPPL_RC_SUCCESS) {
+      if (ch_delete_status != UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE &&
+          ch_delete_status != UNC_RC_SUCCESS) {
         // child delete , failed so return error
         pfc_log_error("Delete failed for child with %d with error %d",
                       0, ch_delete_status);
-        delete_status = UPPL_RC_ERR_CFG_SEMANTIC;
+        delete_status = UNC_UPPL_RC_ERR_CFG_SEMANTIC;
         break;
       }
     }
-    if (delete_status != UPPL_RC_SUCCESS) {
+    if (delete_status != UNC_RC_SUCCESS) {
       continue;
     }
     // Structure used to send request to ODBC
@@ -574,20 +574,20 @@ UpplReturnCode Kt_Ctr_Domain::DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
       if (delete_db_status == ODBCM_RC_CONNECTION_ERROR) {
         // log fatal error to log daemon
         pfc_log_fatal("DB connection not available or cannot access DB");
-        delete_status = UPPL_RC_ERR_DB_ACCESS;
+        delete_status = UNC_UPPL_RC_ERR_DB_ACCESS;
       } else if (delete_db_status == ODBCM_RC_ROW_NOT_EXISTS ||
           delete_db_status == ODBCM_RC_RECORD_NOT_FOUND) {
         pfc_log_error("No matching record found");
-        delete_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+        delete_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
       } else {
         // log error to log daemon
         pfc_log_error("Delete operation has failed in domain common table");
-        delete_status = UPPL_RC_ERR_DB_DELETE;
+        delete_status = UNC_UPPL_RC_ERR_DB_DELETE;
       }
     } else if (data_type != UNC_DT_CANDIDATE) {
       // Boundary operstatus to be changed only after running db sync
       // Notify switch to update domainid as invalid
-      delete_status = UPPL_RC_SUCCESS;
+      delete_status = UNC_RC_SUCCESS;
       Kt_Switch switch_obj;
       key_switch_t obj_key_switch;
       memset(&obj_key_switch, '\0', sizeof(key_switch_t));
@@ -605,7 +605,7 @@ UpplReturnCode Kt_Ctr_Domain::DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
              domain_name.c_str(),
              domain_name.length()+1);
       obj_val_switch.switch_val.valid[kIdxSwitchDomainName] = UNC_VF_VALID;
-      UpplReturnCode read_status = switch_obj.UpdateSwitchValidFlag(
+      UncRespCode read_status = switch_obj.UpdateSwitchValidFlag(
           db_conn, reinterpret_cast<void*>(&obj_key_switch),
           reinterpret_cast<void*>(&obj_val_switch),
           obj_val_switch,
@@ -614,7 +614,7 @@ UpplReturnCode Kt_Ctr_Domain::DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
     } else {
       pfc_log_info("Delete of a ctr_domain in data_type(%d) is success",
                    data_type);
-      delete_status = UPPL_RC_SUCCESS;
+      delete_status = UNC_RC_SUCCESS;
     }
   }
   return delete_status;
@@ -628,12 +628,12 @@ UpplReturnCode Kt_Ctr_Domain::DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
  *                data_type - UNC_DT_* , read allowed in
  *                candidate/running/startup/state
  *                operation_type - indicates the operation type - UNC_OP_*.
- * @return      : UPPL_RC_SUCCESS is returned when the response
+ * @return      : UNC_RC_SUCCESS is returned when the response
  *                is added to ipc session successfully.
- *                UPPL_RC_ERR_* is returned when ipc response could not be
+ *                UNC_UPPL_RC_ERR_* is returned when ipc response could not be
  *                added to sess.
  **/
-UpplReturnCode Kt_Ctr_Domain::ReadInternal(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Ctr_Domain::ReadInternal(OdbcmConnectionHandler *db_conn,
                                            vector<void *> &key_val,
                                            vector<void *> &val_struct,
                                            uint32_t data_type,
@@ -652,7 +652,7 @@ UpplReturnCode Kt_Ctr_Domain::ReadInternal(OdbcmConnectionHandler *db_conn,
     void_val_struct = val_struct[0];
   }
   // Get read response from database
-  UpplReturnCode read_status = ReadDomainValFromDB(db_conn, key_struct,
+  UncRespCode read_status = ReadDomainValFromDB(db_conn, key_struct,
                                                    void_val_struct,
                                                    data_type,
                                                    operation_type,
@@ -661,10 +661,11 @@ UpplReturnCode Kt_Ctr_Domain::ReadInternal(OdbcmConnectionHandler *db_conn,
                                                    vect_domain_id);
   key_val.clear();
   val_struct.clear();
-  pfc_log_info("ReadDomainValFromDB returned %d with response size %d",
+  pfc_log_info("ReadDomainValFromDB returned %d with response size %"
+               PFC_PFMT_SIZE_T,
                read_status,
-               static_cast<int>(vect_val_ctr_domain_st.size()));
-  if (read_status == UPPL_RC_SUCCESS) {
+               vect_val_ctr_domain_st.size());
+  if (read_status == UNC_RC_SUCCESS) {
     pfc_log_debug("Read operation is success");
     for (unsigned int iIndex = 0 ; iIndex < vect_val_ctr_domain_st.size();
         ++iIndex) {
@@ -676,8 +677,8 @@ UpplReturnCode Kt_Ctr_Domain::ReadInternal(OdbcmConnectionHandler *db_conn,
       val_struct.push_back(reinterpret_cast<void *>(val_domain));
     }
   }
-  pfc_log_debug("Returned Key vector size: %d",
-                static_cast<int> (key_val.size()));
+  pfc_log_debug("Returned Key vector size: %" PFC_PFMT_SIZE_T,
+                key_val.size());
   return read_status;
 }
 
@@ -692,12 +693,12 @@ UpplReturnCode Kt_Ctr_Domain::ReadInternal(OdbcmConnectionHandler *db_conn,
  *                readbulk
  *                is_read_next - indicates whether this function is invoked
  *                from readnext
- * @return      : UPPL_RC_SUCCESS is returned when the response
+ * @return      : UNC_RC_SUCCESS is returned when the response
  *                is added to ipc session successfully.
- *                UPPL_RC_ERR_* is returned when ipc response could not be
+ *                UNC_UPPL_RC_ERR_* is returned when ipc response could not be
  *                added to sess.
  **/
-UpplReturnCode Kt_Ctr_Domain::ReadBulk(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Ctr_Domain::ReadBulk(OdbcmConnectionHandler *db_conn,
                                        void* key_struct,
                                        uint32_t data_type,
                                        uint32_t &max_rep_ct,
@@ -708,14 +709,14 @@ UpplReturnCode Kt_Ctr_Domain::ReadBulk(OdbcmConnectionHandler *db_conn,
   pfc_log_info("Processing ReadBulk of Kt_Domain");
   key_ctr_domain obj_key_ctr_domain=
       *(reinterpret_cast<key_ctr_domain*>(key_struct));
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
 
   vector<val_ctr_domain_st> vect_val_ctr_domain;
   if (data_type != UNC_DT_CANDIDATE && data_type != UNC_DT_RUNNING &&
       data_type != UNC_DT_STATE && data_type != UNC_DT_STARTUP) {
     pfc_log_debug("ReadBulk operation is not allowed in %d data type",
                   data_type);
-    read_status = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    read_status = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
     return read_status;
   }
   string str_domain_name =
@@ -724,10 +725,10 @@ UpplReturnCode Kt_Ctr_Domain::ReadBulk(OdbcmConnectionHandler *db_conn,
       reinterpret_cast<char *>(obj_key_ctr_domain.ctr_key.controller_name);
   unc_keytype_ctrtype_t controller_type = UNC_CT_UNKNOWN;
   pfc_bool_t invalid_parent = false;
-  UpplReturnCode retcode = PhyUtil::get_controller_type(
+  UncRespCode retcode = PhyUtil::get_controller_type(
       db_conn, str_controller_name, controller_type,
       (unc_keytype_datatype_t)data_type);
-  if (retcode != UPPL_RC_SUCCESS) {
+  if (retcode != UNC_RC_SUCCESS) {
     pfc_log_error("Error getting the controller type");
     invalid_parent = true;
   }
@@ -755,10 +756,10 @@ UpplReturnCode Kt_Ctr_Domain::ReadBulk(OdbcmConnectionHandler *db_conn,
       vector<string> vect_key_value;
       vect_key_value.push_back(str_controller_name);
       vect_key_value.push_back(str_domain_name);
-      UpplReturnCode key_exist_status = IsKeyExists(
+      UncRespCode key_exist_status = IsKeyExists(
           db_conn, (unc_keytype_datatype_t)data_type,
           vect_key_value);
-      if (key_exist_status == UPPL_RC_SUCCESS) {
+      if (key_exist_status == UNC_RC_SUCCESS) {
         domain_exists = PFC_TRUE;
       }
     }
@@ -775,7 +776,7 @@ UpplReturnCode Kt_Ctr_Domain::ReadBulk(OdbcmConnectionHandler *db_conn,
                                     dummy_val_domain);
     }
     pfc_log_debug("read status from Kt_Ctr_Domain is %d", read_status);
-    if (invalid_parent == false && (read_status == UPPL_RC_SUCCESS ||
+    if (invalid_parent == false && (read_status == UNC_RC_SUCCESS ||
         domain_exists == PFC_TRUE)) {
       // For each domain, read the child's attributes
       vector<val_ctr_domain_st> ::iterator vect_iter =
@@ -826,7 +827,7 @@ UpplReturnCode Kt_Ctr_Domain::ReadBulk(OdbcmConnectionHandler *db_conn,
           --max_rep_ct;
           if (max_rep_ct == 0) {
             pfc_log_debug("CtrDomain - max_rep_ct reached zero...");
-            return UPPL_RC_SUCCESS;
+            return UNC_RC_SUCCESS;
           }
         }
         domain_exists = PFC_FALSE;
@@ -851,7 +852,7 @@ UpplReturnCode Kt_Ctr_Domain::ReadBulk(OdbcmConnectionHandler *db_conn,
             continue;
           }
           pfc_log_debug("Domain = Calling child %d read bulk", kIdx);
-          UpplReturnCode ch_read_status = child[kIdx]->ReadBulk(
+          UncRespCode ch_read_status = child[kIdx]->ReadBulk(
               db_conn, child_key_struct,
               data_type,
               max_rep_ct,
@@ -866,18 +867,18 @@ UpplReturnCode Kt_Ctr_Domain::ReadBulk(OdbcmConnectionHandler *db_conn,
           FreeChildKeyStruct(kIdx, child_key_struct);
           if (max_rep_ct == 0) {
             pfc_log_debug("max_rep_ct reached zero, so returning");
-            return UPPL_RC_SUCCESS;
+            return UNC_RC_SUCCESS;
           }
         }
         // reset child index
         child_index = -1;
       }
-    } else if (read_status == UPPL_RC_ERR_DB_ACCESS) {
+    } else if (read_status == UNC_UPPL_RC_ERR_DB_ACCESS) {
       pfc_log_debug("KtCtrDomain ReadBulk - Returning DB Access Error");
       return read_status;
     }
   } else if (max_rep_ct == 0) {
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   if (max_rep_ct > 0 && parent_call == false) {
     pfc_log_debug("max_rep_ct is %d and parent_call is %d, calling parent",
@@ -897,14 +898,14 @@ UpplReturnCode Kt_Ctr_Domain::ReadBulk(OdbcmConnectionHandler *db_conn,
         is_read_next,
         read_req);
     pfc_log_debug("read status from Kt_Controller kin is %d", read_status);
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   pfc_log_debug("reached end of key tree, read_status=%d",
                 read_status);
-  if (read_status == UPPL_RC_ERR_NO_SUCH_INSTANCE) {
-    read_status = UPPL_RC_SUCCESS;
+  if (read_status == UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE) {
+    read_status = UNC_RC_SUCCESS;
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**
@@ -916,12 +917,12 @@ UpplReturnCode Kt_Ctr_Domain::ReadBulk(OdbcmConnectionHandler *db_conn,
  *                vect_val_ctr_domain - indicates the fetched values from db of
  *                val_ctr_domain type
  *                vect_domain_id - indicates the fetched domain names from db
- * @return      : UPPL_RC_SUCCESS is returned when the response
+ * @return      : UNC_RC_SUCCESS is returned when the response
  *                is added to ipc session successfully.
- *                UPPL_RC_ERR_* is returned when ipc response could not be
+ *                UNC_UPPL_RC_ERR_* is returned when ipc response could not be
  *                added to sess.
  **/
-UpplReturnCode Kt_Ctr_Domain::ReadBulkInternal(
+UncRespCode Kt_Ctr_Domain::ReadBulkInternal(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     uint32_t data_type,
@@ -929,11 +930,11 @@ UpplReturnCode Kt_Ctr_Domain::ReadBulkInternal(
     vector<val_ctr_domain_st> &vect_val_ctr_domain_st,
     vector<key_ctr_domain> &vect_domain_id) {
   if (max_rep_ct <= 0) {
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
   void *val_struct = NULL;
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
   ODBCM_RC_STATUS read_db_status = ODBCM_RC_SUCCESS;
   DBTableSchema kt_ctr_domain_dbtableschema;
   // Populate DBSchema for ctr_domain_table
@@ -951,14 +952,14 @@ UpplReturnCode Kt_Ctr_Domain::ReadBulkInternal(
                   (unc_keytype_operation_t)UNC_OP_READ_BULK, db_conn);
   if (read_db_status == ODBCM_RC_RECORD_NOT_FOUND) {
     pfc_log_debug("No record found");
-    read_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+    read_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     return read_status;
   } else if (read_db_status == ODBCM_RC_CONNECTION_ERROR) {
-    read_status = UPPL_RC_ERR_DB_ACCESS;
+    read_status = UNC_UPPL_RC_ERR_DB_ACCESS;
     pfc_log_error("Read operation has failed with error %d", read_db_status);
     return read_status;
   } else if (read_db_status != ODBCM_RC_SUCCESS) {
-    read_status = UPPL_RC_ERR_DB_GET;
+    read_status = UNC_UPPL_RC_ERR_DB_GET;
     // log error to log daemon
     pfc_log_error("Read operation has failed");
     return read_status;
@@ -978,17 +979,17 @@ UpplReturnCode Kt_Ctr_Domain::ReadBulkInternal(
  *                value_struct - the value for the kt Domain instance
  *                data_type - UNC_DT_* - indicates the data base type
  *                operation_type - UNC_OP* - indicates the operation type
- * @return      : UPPL_RC_SUCCESS is returned when the validation is successful
- *                UPPL_RC_ERR_* is returned when validation is failure
+ * @return      : UNC_RC_SUCCESS is returned when the validation is successful
+ *                UNC_UPPL_RC_ERR_* is returned when validation is failure
  **/
-UpplReturnCode Kt_Ctr_Domain::PerformSyntaxValidation(
+UncRespCode Kt_Ctr_Domain::PerformSyntaxValidation(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     void* val_struct,
     uint32_t operation,
     uint32_t data_type) {
   pfc_log_info("Syntax Validation of KT_CTR_DOMAIN");
-  UpplReturnCode ret_code = UPPL_RC_SUCCESS;
+  UncRespCode ret_code = UNC_RC_SUCCESS;
   pfc_bool_t mandatory = PFC_TRUE;
 
   // Validate key structure
@@ -998,14 +999,14 @@ UpplReturnCode Kt_Ctr_Domain::PerformSyntaxValidation(
       attr_syntax_map_all[UNC_KT_CTR_DOMAIN];
   IS_VALID_STRING_KEY(DOMAIN_NAME_STR, domain_name, operation, ret_code,
                       mandatory);
-  if (ret_code != UPPL_RC_SUCCESS) {
-    return UPPL_RC_ERR_CFG_SYNTAX;
+  if (ret_code != UNC_RC_SUCCESS) {
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
 
   string value = reinterpret_cast<char*>(key->ctr_key.controller_name);
   IS_VALID_STRING_KEY(CTR_NAME_STR, value, operation, ret_code, mandatory);
-  if (ret_code != UPPL_RC_SUCCESS) {
-    return UPPL_RC_ERR_CFG_SYNTAX;
+  if (ret_code != UNC_RC_SUCCESS) {
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
 
   // Validate value structure
@@ -1020,25 +1021,25 @@ UpplReturnCode Kt_Ctr_Domain::PerformSyntaxValidation(
   valid_val = PhyUtil::uint8touint(domain_value->valid[kIdxDomainType]);
   IS_VALID_INT_VALUE(DOMAIN_TYPE_STR, domain_value->type, operation,
                      valid_val, ret_code, mandatory);
-  if (ret_code != UPPL_RC_SUCCESS) {
-    return UPPL_RC_ERR_CFG_SYNTAX;
+  if (ret_code != UNC_RC_SUCCESS) {
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
   if (data_type == UNC_DT_CANDIDATE) {
     if (operation == UNC_OP_CREATE) {
       if (domain_value->type != UPPL_DOMAIN_TYPE_NORMAL) {
         pfc_log_info(
             "Only normal controller domain can be created from northbound");
-        return UPPL_RC_ERR_CFG_SYNTAX;
+        return UNC_UPPL_RC_ERR_CFG_SYNTAX;
       }
       if (domain_name == DEFAULT_DOMAIN) {
         pfc_log_info("Default Domain name cannot be used");
-        return UPPL_RC_ERR_CFG_SYNTAX;
+        return UNC_UPPL_RC_ERR_CFG_SYNTAX;
       }
     }
     if (operation == UNC_OP_UPDATE) {
       if (valid_val == UNC_VF_VALID) {
         pfc_log_info("Domain type cannot be modified from northbound");
-        return UPPL_RC_ERR_CFG_SYNTAX;
+        return UNC_UPPL_RC_ERR_CFG_SYNTAX;
       }
     }
   }
@@ -1048,8 +1049,8 @@ UpplReturnCode Kt_Ctr_Domain::PerformSyntaxValidation(
   value = reinterpret_cast<char*>(domain_value->description);
   IS_VALID_STRING_VALUE(DOMAIN_DESCRIPTION_STR, value, operation,
                         valid_val, ret_code, mandatory);
-  if (ret_code != UPPL_RC_SUCCESS) {
-    return UPPL_RC_ERR_CFG_SYNTAX;
+  if (ret_code != UNC_RC_SUCCESS) {
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
   return ret_code;
 }
@@ -1060,16 +1061,16 @@ UpplReturnCode Kt_Ctr_Domain::PerformSyntaxValidation(
  *                val_struct - specifies value of KT_DOMAIN
  *                operation - UNC_OP* - indicates the operation type
  *                data_type - UNC_DT* - indicates the data base type
- * @return      : UPPL_RC_SUCCESS if semantic valition is successful
- *                or UPPL_RC_ERR_* if failed
+ * @return      : UNC_RC_SUCCESS if semantic valition is successful
+ *                or UNC_UPPL_RC_ERR_* if failed
  **/
-UpplReturnCode Kt_Ctr_Domain::PerformSemanticValidation(
+UncRespCode Kt_Ctr_Domain::PerformSemanticValidation(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     void* val_struct,
     uint32_t operation,
     uint32_t data_type) {
-  UpplReturnCode status = UPPL_RC_SUCCESS;
+  UncRespCode status = UNC_RC_SUCCESS;
   pfc_log_debug("Inside PerformSemanticValidation of KT_CTR_DOMAIN");
   // Check whether the given instance of domain exists in DB
   key_ctr_domain *obj_key_ctr_domain =
@@ -1080,17 +1081,17 @@ UpplReturnCode Kt_Ctr_Domain::PerformSemanticValidation(
   vector<string> domain_vect_key_value;
   domain_vect_key_value.push_back(controller_name);
   domain_vect_key_value.push_back(domain_name);
-  UpplReturnCode key_status = IsKeyExists(db_conn,
+  UncRespCode key_status = IsKeyExists(db_conn,
                                           (unc_keytype_datatype_t)data_type,
                                           domain_vect_key_value);
   pfc_log_debug("IsKeyExists status %d", key_status);
   // In case of create operation, key should not exist
   if (operation == UNC_OP_CREATE) {
-    if (key_status == UPPL_RC_SUCCESS) {
+    if (key_status == UNC_RC_SUCCESS) {
       pfc_log_error("Key instance already exists");
       pfc_log_error("Hence create operation not allowed");
-      status = UPPL_RC_ERR_INSTANCE_EXISTS;
-    } else if (key_status == UPPL_RC_ERR_DB_ACCESS) {
+      status = UNC_UPPL_RC_ERR_INSTANCE_EXISTS;
+    } else if (key_status == UNC_UPPL_RC_ERR_DB_ACCESS) {
       pfc_log_error("DB Access failure");
       status = key_status;
     } else {
@@ -1100,19 +1101,19 @@ UpplReturnCode Kt_Ctr_Domain::PerformSemanticValidation(
   } else if (operation == UNC_OP_UPDATE || operation == UNC_OP_DELETE ||
       operation == UNC_OP_READ) {
     // In case of update/delete/read operation, key should exist
-    if (key_status == UPPL_RC_ERR_DB_ACCESS) {
+    if (key_status == UNC_UPPL_RC_ERR_DB_ACCESS) {
       pfc_log_error("DB Access failure");
       status = key_status;
-    } else if (key_status != UPPL_RC_SUCCESS) {
+    } else if (key_status != UNC_RC_SUCCESS) {
       pfc_log_error("Key instance does not exist");
       pfc_log_error("Hence update/delete/read operation not allowed");
-      status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+      status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     } else {
       pfc_log_info("key instance exist update/del/read operation allowed");
     }
   }
 
-  if (operation == UNC_OP_CREATE && status == UPPL_RC_SUCCESS) {
+  if (operation == UNC_OP_CREATE && status == UNC_RC_SUCCESS) {
     vector<string> parent_vect_key_value;
     parent_vect_key_value.push_back(controller_name);
     Kt_Controller KtObj;
@@ -1120,12 +1121,12 @@ UpplReturnCode Kt_Ctr_Domain::PerformSemanticValidation(
     if (data_type == UNC_DT_IMPORT) {
       parent_data_type = UNC_DT_RUNNING;
     }
-    UpplReturnCode parent_key_status = KtObj.IsKeyExists(
+    UncRespCode parent_key_status = KtObj.IsKeyExists(
         db_conn,
         (unc_keytype_datatype_t)parent_data_type, parent_vect_key_value);
     pfc_log_debug("Parent IsKeyExists status %d", parent_key_status);
-    if (parent_key_status != UPPL_RC_SUCCESS) {
-      status = UPPL_RC_ERR_PARENT_DOES_NOT_EXIST;
+    if (parent_key_status != UNC_RC_SUCCESS) {
+      status = UNC_UPPL_RC_ERR_PARENT_DOES_NOT_EXIST;
     }
   }
   pfc_log_debug("Return Code SemanticValidation: %d", status);
@@ -1141,26 +1142,26 @@ UpplReturnCode Kt_Ctr_Domain::PerformSemanticValidation(
  *                UNC_OP_DELETE
  *                key_struct - indicates the key instance of KT_DOMAIN
  *                value_struct - indicates the alarm values structure
- * @return      : UPPL_RC_SUCCESS if alarm is handled successfully or
- *                UPPL_RC_ERR* if incase of failure
+ * @return      : UNC_RC_SUCCESS if alarm is handled successfully or
+ *                UNC_UPPL_RC_ERR* if incase of failure
  **/
-UpplReturnCode Kt_Ctr_Domain::HandleDriverAlarms(
+UncRespCode Kt_Ctr_Domain::HandleDriverAlarms(
     OdbcmConnectionHandler *db_conn,
     uint32_t data_type,
     uint32_t alarm_type,
     uint32_t oper_type,
     void* key_struct,
     void* val_struct) {
-  UpplReturnCode status = UPPL_RC_SUCCESS;
+  UncRespCode status = UNC_RC_SUCCESS;
   if (alarm_type != UNC_COREDOMAIN_SPLIT) {
     pfc_log_warn("%d alarm received for domain is ignored", alarm_type);
     return status;
   }
   uint8_t oper_status_db = 0;
-  UpplReturnCode read_status = GetOperStatus(db_conn, data_type,
+  UncRespCode read_status = GetOperStatus(db_conn, data_type,
                                              key_struct,
                                              oper_status_db);
-  if (read_status != UPPL_RC_SUCCESS) {
+  if (read_status != UNC_RC_SUCCESS) {
     pfc_log_error("Unable to get current oper_status from db");
     return read_status;
   }
@@ -1191,15 +1192,15 @@ UpplReturnCode Kt_Ctr_Domain::HandleDriverAlarms(
  * @param[in]   : data_type - indicates the data base type
  *                key_struct - indicates the key instance of KT_DOMAIN
  *                value_struct - indicates the value structure of KT_DOMAIN
- * @return      : UPPL_RC_SUCCESS - if oper status update in DB is successful
- *                else UPPL_RC_ERR_* is returned
+ * @return      : UNC_RC_SUCCESS - if oper status update in DB is successful
+ *                else UNC_UPPL_RC_ERR_* is returned
  **/
-UpplReturnCode Kt_Ctr_Domain::HandleOperStatus(
+UncRespCode Kt_Ctr_Domain::HandleOperStatus(
     OdbcmConnectionHandler *db_conn,
     uint32_t data_type,
     void *key_struct,
     void *value_struct) {
-  UpplReturnCode return_code = UPPL_RC_SUCCESS;
+  UncRespCode return_code = UNC_RC_SUCCESS;
 
   if (key_struct != NULL) {
     key_ctr_domain_t *obj_key_ctr_domain =
@@ -1213,10 +1214,10 @@ UpplReturnCode Kt_Ctr_Domain::HandleOperStatus(
     uint8_t ctrl_oper_status = 0;
     UpplDomainOperStatus domain_oper_status = UPPL_CTR_DOMAIN_OPER_UNKNOWN;
     Kt_Controller controller;
-    UpplReturnCode read_status = controller.GetOperStatus(
+    UncRespCode read_status = controller.GetOperStatus(
         db_conn, data_type, reinterpret_cast<void*>(&ctr_key),
         ctrl_oper_status);
-    if (read_status == UPPL_RC_SUCCESS) {
+    if (read_status == UNC_RC_SUCCESS) {
       pfc_log_info("Controller's oper_status %d", ctrl_oper_status);
       if (ctrl_oper_status ==
           (UpplControllerOperStatus) UPPL_CONTROLLER_OPER_UP) {
@@ -1232,7 +1233,7 @@ UpplReturnCode Kt_Ctr_Domain::HandleOperStatus(
     pfc_log_info("Set Domain oper status status %d", return_code);
 
   } else {
-    return_code = UPPL_RC_ERR_BAD_REQUEST;
+    return_code = UNC_UPPL_RC_ERR_BAD_REQUEST;
   }
   return return_code;
 }
@@ -1241,16 +1242,16 @@ UpplReturnCode Kt_Ctr_Domain::HandleOperStatus(
  * @Description : This function invokes the notifyoperstatus of boundary
  * @param[in]   : data_type - indicates the data base type
  *                key_struct - indicates the key instance of kt domain
- * @return      : UPPL_RC_SUCCESS -if oper status is handled properly in
+ * @return      : UNC_RC_SUCCESS -if oper status is handled properly in
  *                boundary
- *                or UPPL_RC_ERR* in case of failure
+ *                or UNC_UPPL_RC_ERR* in case of failure
  **/
-UpplReturnCode Kt_Ctr_Domain::InvokeBoundaryNotifyOperStatus(
+UncRespCode Kt_Ctr_Domain::InvokeBoundaryNotifyOperStatus(
     OdbcmConnectionHandler *db_conn,
     uint32_t data_type,
     void *key_struct) {
   // Get controller and domain oper status
-  UpplReturnCode return_code = UPPL_RC_SUCCESS;
+  UncRespCode return_code = UNC_RC_SUCCESS;
   key_ctr_domain_t *obj_key_ctr_domain =
       reinterpret_cast<key_ctr_domain_t*>(key_struct);
 
@@ -1259,7 +1260,7 @@ UpplReturnCode Kt_Ctr_Domain::InvokeBoundaryNotifyOperStatus(
   string domain_name =
       (const char*)obj_key_ctr_domain->domain_name;
   vector<OperStatusHolder> ref_oper_status;
-  GET_ADD_CTRL_OPER_STATUS(controller_name);
+  GET_ADD_CTRL_OPER_STATUS(controller_name, ref_oper_status);
   Kt_Boundary boundary;
   val_boundary_t obj_val_boundary1;
   memset(&obj_val_boundary1, 0, sizeof(obj_val_boundary1));
@@ -1299,10 +1300,10 @@ UpplReturnCode Kt_Ctr_Domain::InvokeBoundaryNotifyOperStatus(
  *                key_struct - key instance of KT_DOMAIN
  *                oper_status - reference variable to store the oper status
  *                from DB
- * @return      : UPPL_RC_SUCCESS - if oper status is read successfully else
- *                UPPL_RC_ERR* is returned
+ * @return      : UNC_RC_SUCCESS - if oper status is read successfully else
+ *                UNC_UPPL_RC_ERR* is returned
  **/
-UpplReturnCode Kt_Ctr_Domain::GetOperStatus(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Ctr_Domain::GetOperStatus(OdbcmConnectionHandler *db_conn,
                                             uint32_t data_type,
                                             void* key_struct,
                                             uint8_t &oper_status) {
@@ -1351,7 +1352,7 @@ UpplReturnCode Kt_Ctr_Domain::GetOperStatus(OdbcmConnectionHandler *db_conn,
       read_db_status != ODBCM_RC_RECORD_NOT_FOUND) {
     // log error
     pfc_log_error("oper_status read operation failed");
-    return UPPL_RC_ERR_DB_GET;
+    return UNC_UPPL_RC_ERR_DB_GET;
   }
 
   // read the oper_status value
@@ -1380,7 +1381,7 @@ UpplReturnCode Kt_Ctr_Domain::GetOperStatus(OdbcmConnectionHandler *db_conn,
       }
     }
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /** 
@@ -1388,10 +1389,10 @@ UpplReturnCode Kt_Ctr_Domain::GetOperStatus(OdbcmConnectionHandler *db_conn,
  * @param[in]   : data_type - indicates the data base type
  *                key_struct - key instance of kt domain
  *                oper_status - oper status value to be updated in DB
- * @return      : UPPL_RC_SUCCESS - if the oper status is updation in db is
- *                success or UPPL_RC_ERR*
+ * @return      : UNC_RC_SUCCESS - if the oper status is updation in db is
+ *                success or UNC_UPPL_RC_ERR*
  **/
-UpplReturnCode Kt_Ctr_Domain::SetOperStatus(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Ctr_Domain::SetOperStatus(OdbcmConnectionHandler *db_conn,
                                             uint32_t data_type,
                                             void* key_struct,
                                             UpplDomainOperStatus oper_status) {
@@ -1438,14 +1439,14 @@ UpplReturnCode Kt_Ctr_Domain::SetOperStatus(OdbcmConnectionHandler *db_conn,
   } else if (update_db_status != ODBCM_RC_SUCCESS) {
     // log error
     pfc_log_error("oper_status update operation failed");
-    return UPPL_RC_ERR_DB_UPDATE;
+    return UNC_UPPL_RC_ERR_DB_UPDATE;
   } else {
     // Notify operstatus change to northbound
     uint8_t old_oper_status = 0;
-    UpplReturnCode read_status = GetOperStatus(db_conn, data_type,
+    UncRespCode read_status = GetOperStatus(db_conn, data_type,
                                                key_struct,
                                                old_oper_status);
-    if (read_status == UPPL_RC_SUCCESS && data_type != UNC_DT_IMPORT) {
+    if (read_status == UNC_RC_SUCCESS && data_type != UNC_DT_IMPORT) {
       val_ctr_domain_st old_val_ctr_domain, new_val_ctr_domain;
       memset(&old_val_ctr_domain, 0, sizeof(old_val_ctr_domain));
       memset(&new_val_ctr_domain, 0, sizeof(new_val_ctr_domain));
@@ -1456,9 +1457,9 @@ UpplReturnCode Kt_Ctr_Domain::SetOperStatus(OdbcmConnectionHandler *db_conn,
       int err = 0;
       // Send notification to Northbound
       ServerEvent ser_evt((pfc_ipcevtype_t)UPPL_EVENTS_KT_CTR_DOMAIN, err);
-      northbound_event_header rsh = {UNC_OP_UPDATE,
+      northbound_event_header rsh = {static_cast<uint32_t>(UNC_OP_UPDATE),
           data_type,
-          UNC_KT_CTR_DOMAIN};
+          static_cast<uint32_t>(UNC_KT_CTR_DOMAIN)};
       err = PhyUtil::sessOutNBEventHeader(ser_evt, rsh);
       err |= ser_evt.addOutput(*obj_key_ctr_domain);
       err |= ser_evt.addOutput(new_val_ctr_domain);
@@ -1466,7 +1467,7 @@ UpplReturnCode Kt_Ctr_Domain::SetOperStatus(OdbcmConnectionHandler *db_conn,
       if (err == 0) {
         PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
         // Notify operstatus modifications
-        UpplReturnCode status = (UpplReturnCode) physical_layer
+        UncRespCode status = (UncRespCode) physical_layer
             ->get_ipc_connection_manager()->SendEvent(&ser_evt);
         pfc_log_debug("Event notification status %d", status);
       } else {
@@ -1474,7 +1475,7 @@ UpplReturnCode Kt_Ctr_Domain::SetOperStatus(OdbcmConnectionHandler *db_conn,
       }
     }
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /** 
@@ -1482,19 +1483,19 @@ UpplReturnCode Kt_Ctr_Domain::SetOperStatus(OdbcmConnectionHandler *db_conn,
  * @param[in]   : data type - UNC_DT_* - indicates the data base type
  *                key values - vector of type string to store the primary
  *                key values
- * @return      : UPPL_RC_SUCCESS - incase the row exists in domain table or
- *                UPPL_RC_ERR* is returned
+ * @return      : UNC_RC_SUCCESS - incase the row exists in domain table or
+ *                UNC_UPPL_RC_ERR* is returned
  **/
-UpplReturnCode Kt_Ctr_Domain::IsKeyExists(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Ctr_Domain::IsKeyExists(OdbcmConnectionHandler *db_conn,
                                           unc_keytype_datatype_t data_type,
                                           const vector<string> &key_values) {
   pfc_log_debug("Inside IsKeyExists");
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
-  UpplReturnCode check_status = UPPL_RC_SUCCESS;
+  UncRespCode check_status = UNC_RC_SUCCESS;
   if (key_values.empty()) {
     // No key given, return failure
     pfc_log_error("No key given. Returning error");
-    return UPPL_RC_ERR_BAD_REQUEST;
+    return UNC_UPPL_RC_ERR_BAD_REQUEST;
   }
 
   string controller_name = key_values[0];
@@ -1534,7 +1535,7 @@ UpplReturnCode Kt_Ctr_Domain::IsKeyExists(OdbcmConnectionHandler *db_conn,
   if (check_db_status == ODBCM_RC_CONNECTION_ERROR) {
     // log error to log daemon
     pfc_log_error("DB connection not available or cannot access DB");
-    check_status = UPPL_RC_ERR_DB_ACCESS;
+    check_status = UNC_UPPL_RC_ERR_DB_ACCESS;
   } else if (check_db_status == ODBCM_RC_ROW_EXISTS) {
     pfc_log_debug("DB returned success for Row exists");
     pfc_log_debug("Checking .db_return_status_ %d with %d",
@@ -1544,11 +1545,11 @@ UpplReturnCode Kt_Ctr_Domain::IsKeyExists(OdbcmConnectionHandler *db_conn,
       pfc_log_debug("DB returned success for Row exists");
     } else {
       pfc_log_info("DB Returned failure for IsRowExists");
-      check_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+      check_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     }
   } else {
     pfc_log_info("DB Returned failure for IsRowExists");
-    check_status = UPPL_RC_ERR_DB_GET;
+    check_status = UNC_UPPL_RC_ERR_DB_GET;
   }
   pfc_log_debug("check_status = %d", check_status);
   return check_status;
@@ -1756,10 +1757,10 @@ void Kt_Ctr_Domain::PopulateDBSchemaForKtTable(
  *                option1,option2 - specifies any additional condition for
  *                read operation
  *                max_rep_ct - indicates the maximum repetition count
- * @return      : UPPL_RC_SUCCESS - if the read operation is successful
- *                UPPL_RC_ERR_* - read operation failed
+ * @return      : UNC_RC_SUCCESS - if the read operation is successful
+ *                UNC_UPPL_RC_ERR_* - read operation failed
  **/
-UpplReturnCode Kt_Ctr_Domain::PerformRead(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Ctr_Domain::PerformRead(OdbcmConnectionHandler *db_conn,
                                           uint32_t session_id,
                                           uint32_t configuration_id,
                                           void* key_struct,
@@ -1781,19 +1782,19 @@ UpplReturnCode Kt_Ctr_Domain::PerformRead(OdbcmConnectionHandler *db_conn,
       option1,
       option2,
       data_type,
-      0};
+      static_cast<uint32_t>(0)};
 
   if (option1 != UNC_OPT1_NORMAL) {
     pfc_log_error("Invalid option1 specified for read operation");
-    rsh.result_code = UPPL_RC_ERR_INVALID_OPTION1;
+    rsh.result_code = UNC_UPPL_RC_ERR_INVALID_OPTION1;
     int err = PhyUtil::sessOutRespHeader(sess, rsh);
     err |= sess.addOutput((uint32_t)UNC_KT_CTR_DOMAIN);
     err |= sess.addOutput(*obj_key_ctr_domain);
     if (err != 0) {
       pfc_log_error("addOutput failed for physical_response_header");
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   if (operation_type == UNC_OP_READ) {
     max_rep_ct = 1;
@@ -1804,17 +1805,17 @@ UpplReturnCode Kt_Ctr_Domain::PerformRead(OdbcmConnectionHandler *db_conn,
       (unc_keytype_datatype_t)data_type != UNC_DT_STATE &&
       (unc_keytype_datatype_t)data_type != UNC_DT_IMPORT) {
     pfc_log_error("Data type is not allowed");
-    rsh.result_code = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    rsh.result_code = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
     int err = PhyUtil::sessOutRespHeader(sess, rsh);
     err |= sess.addOutput((uint32_t)UNC_KT_CTR_DOMAIN);
     err |= sess.addOutput(*obj_key_ctr_domain);
     if (err != 0) {
       pfc_log_error("addOutput failed for physical_response_header");
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
   // Read from DB directly for all data types
   vector<key_ctr_domain> vect_domain_id;
   vector<val_ctr_domain_st> vect_val_ctr_domain_st;
@@ -1827,7 +1828,7 @@ UpplReturnCode Kt_Ctr_Domain::PerformRead(OdbcmConnectionHandler *db_conn,
                                     vect_domain_id);
   rsh.result_code = read_status;
   rsh.max_rep_count = max_rep_ct;
-  if (read_status == UPPL_RC_SUCCESS) {
+  if (read_status == UNC_RC_SUCCESS) {
     for (unsigned int index = 0; index < vect_domain_id.size();
         ++index) {
       string domain_name = (const char *)vect_domain_id[index].domain_name;
@@ -1840,23 +1841,23 @@ UpplReturnCode Kt_Ctr_Domain::PerformRead(OdbcmConnectionHandler *db_conn,
       }
     }
     if (rsh.max_rep_count == 0) {
-      rsh.result_code = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+      rsh.result_code = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
       int err = PhyUtil::sessOutRespHeader(sess, rsh);
       err |= sess.addOutput((uint32_t)UNC_KT_CONTROLLER);
       err |= sess.addOutput(*obj_key_ctr_domain);
       if (err != 0) {
         pfc_log_error("addOutput failed for physical_response_header");
-        return UPPL_RC_ERR_IPC_WRITE_ERROR;
+        return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
       }
-      return UPPL_RC_SUCCESS;
+      return UNC_RC_SUCCESS;
     }
     int err = PhyUtil::sessOutRespHeader(sess, rsh);
     if (err != 0) {
       pfc_log_error("addOutput failed for physical_response_header");
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
-    pfc_log_debug("Vector of Domain Id: %d",
-                  (unsigned int) vect_domain_id.size());
+    pfc_log_debug("Vector of Domain Id: %"
+                  PFC_PFMT_SIZE_T, vect_domain_id.size());
     for (unsigned int index = 0; index < vect_domain_id.size();
         ++index) {
       string domain_name = (const char *)vect_domain_id[index].domain_name;
@@ -1886,7 +1887,7 @@ UpplReturnCode Kt_Ctr_Domain::PerformRead(OdbcmConnectionHandler *db_conn,
     err |= sess.addOutput(*obj_key_ctr_domain);
     if (err != 0) {
       pfc_log_error("addOutput failed for physical_response_header");
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
   }
   pfc_log_debug("Return value for read operation %d", read_status);
@@ -1906,10 +1907,10 @@ UpplReturnCode Kt_Ctr_Domain::PerformRead(OdbcmConnectionHandler *db_conn,
  *                val_ctr_domain_st_t structure
  *                domain_id - vector of type key_ctr_domain to store the
  *                domain id
- * @return      : UPPL_RC_SUCCESS - read operation is success
- *                UPPL_RC_ERR_DB_GET - read operation is failure
+ * @return      : UNC_RC_SUCCESS - read operation is success
+ *                UNC_UPPL_RC_ERR_DB_GET - read operation is failure
  **/
-UpplReturnCode Kt_Ctr_Domain::ReadDomainValFromDB(
+UncRespCode Kt_Ctr_Domain::ReadDomainValFromDB(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     void* val_struct,
@@ -1920,10 +1921,10 @@ UpplReturnCode Kt_Ctr_Domain::ReadDomainValFromDB(
     vector<key_ctr_domain> &domain_id) {
   if (operation_type < UNC_OP_READ) {
     // Unsupported operation type for this function
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
   ODBCM_RC_STATUS read_db_status = ODBCM_RC_SUCCESS;
 
   // Common structures that will be used to send query to ODBC
@@ -1949,14 +1950,14 @@ UpplReturnCode Kt_Ctr_Domain::ReadDomainValFromDB(
   }
   if (read_db_status == ODBCM_RC_RECORD_NOT_FOUND) {
     pfc_log_debug("No record found");
-    read_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+    read_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     return read_status;
   } else if (read_db_status == ODBCM_RC_CONNECTION_ERROR) {
-    read_status = UPPL_RC_ERR_DB_ACCESS;
+    read_status = UNC_UPPL_RC_ERR_DB_ACCESS;
     pfc_log_error("Read operation has failed with error %d", read_db_status);
     return read_status;
   } else if (read_db_status != ODBCM_RC_SUCCESS) {
-    read_status = UPPL_RC_ERR_DB_GET;
+    read_status = UNC_UPPL_RC_ERR_DB_GET;
     // log error to log daemon
     pfc_log_error("Read operation has failed with error %d", read_db_status);
     return read_status;
@@ -1967,12 +1968,12 @@ UpplReturnCode Kt_Ctr_Domain::ReadDomainValFromDB(
                            max_rep_ct,
                            operation_type,
                            domain_id);
-  pfc_log_debug("vect_val_ctr_domain size: %d",
-                (unsigned int)vect_val_ctr_domain_st.size());
-  pfc_log_debug("domain_id size: %d", (unsigned int)domain_id.size());
+  pfc_log_debug("vect_val_ctr_domain size: %"
+                PFC_PFMT_SIZE_T, vect_val_ctr_domain_st.size());
+  pfc_log_debug("domain_id size: %" PFC_PFMT_SIZE_T, domain_id.size());
   if (vect_val_ctr_domain_st.empty()) {
     // Read failed , return error
-    read_status = UPPL_RC_ERR_DB_GET;
+    read_status = UNC_UPPL_RC_ERR_DB_GET;
     // log error to log daemon
     pfc_log_error("Read operation has failed after reading response");
     return read_status;
@@ -2166,8 +2167,8 @@ void Kt_Ctr_Domain::FillDomainValueStructure(
     obj_val_ctr_domain_st.domain = obj_val_ctr_domain;
     vect_domain_id.push_back(obj_key_ctr_domain);
     vect_obj_val_ctr_domain.push_back(obj_val_ctr_domain_st);
-    pfc_log_debug("result - vect_obj_val_ctr_domain size: %d",
-                  (unsigned int) vect_obj_val_ctr_domain.size());
+    pfc_log_debug("result - vect_obj_val_ctr_domain size: %"
+                  PFC_PFMT_SIZE_T, vect_obj_val_ctr_domain.size());
   }
   return;
 }
@@ -2177,10 +2178,10 @@ void Kt_Ctr_Domain::FillDomainValueStructure(
  * @param[in]   : obj_key_struct - vector to hold the key structure of ctr
  *                domain key type
  *                row_status - indicates the row status to be queried in DB with
- * @return      : UPPL_RC_SUCCESS - if the row exists in DB or UPPL_RC_ERR*
+ * @return      : UNC_RC_SUCCESS - if the row exists in DB or UNC_UPPL_RC_ERR*
  *                if the row doesn't exists in DB
  **/
-UpplReturnCode Kt_Ctr_Domain::GetModifiedRows(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Ctr_Domain::GetModifiedRows(OdbcmConnectionHandler *db_conn,
                                               vector<void *> &obj_key_struct,
                                               CsRowStatus row_status) {
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
@@ -2196,7 +2197,7 @@ UpplReturnCode Kt_Ctr_Domain::GetModifiedRows(OdbcmConnectionHandler *db_conn,
   void *domain_key = reinterpret_cast <void *> (&obj_key_ctr_domain);
   void *domain_val = reinterpret_cast <void *> (&val_struct);
 
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
   ODBCM_RC_STATUS read_db_status = ODBCM_RC_SUCCESS;
 
   DBTableSchema kt_ctr_domain_dbtableschema;
@@ -2215,13 +2216,13 @@ UpplReturnCode Kt_Ctr_Domain::GetModifiedRows(OdbcmConnectionHandler *db_conn,
 
   if (read_db_status == ODBCM_RC_RECORD_NOT_FOUND) {
     pfc_log_debug("No record to read");
-    read_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+    read_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     return read_status;
   } else if (read_db_status == ODBCM_RC_CONNECTION_ERROR) {
-    read_status = UPPL_RC_ERR_DB_ACCESS;
+    read_status = UNC_UPPL_RC_ERR_DB_ACCESS;
     return read_status;
   } else if (read_db_status != ODBCM_RC_SUCCESS) {
-    read_status = UPPL_RC_ERR_DB_GET;
+    read_status = UNC_UPPL_RC_ERR_DB_GET;
     return read_status;
   }
   vector<key_ctr_domain> vect_domain_id;
@@ -2298,21 +2299,21 @@ void Kt_Ctr_Domain::Fill_Attr_Syntax_Map() {
  * @param[in]   : key_struct - key instanc of ctr domain
  *                val_ctr_domain_valid_st - structure variable of type
  *                val_ctr_domain_st_t
- * @return      : UPPL_RC_SUCCESS - if the ctr domain valid flag read is
- *                success else UPPL_RC_ERR_*
+ * @return      : UNC_RC_SUCCESS - if the ctr domain valid flag read is
+ *                success else UNC_UPPL_RC_ERR_*
  **/
-UpplReturnCode Kt_Ctr_Domain::GetCtrDomainValidFlag(
+UncRespCode Kt_Ctr_Domain::GetCtrDomainValidFlag(
     OdbcmConnectionHandler *db_conn,
     void *key_struct,
     val_ctr_domain_st_t &val_ctr_domain_valid_st,
     uint32_t data_type) {
-  UpplReturnCode return_code = UPPL_RC_SUCCESS;
+  UncRespCode return_code = UNC_RC_SUCCESS;
   vector<void *> vect_key_ctr_domain;
   vect_key_ctr_domain.push_back(key_struct);
   vector<void *> vect_val_ctr_domain;
   return_code = ReadInternal(db_conn, vect_key_ctr_domain, vect_val_ctr_domain,
                              data_type, UNC_OP_READ);
-  if (return_code == UPPL_RC_SUCCESS) {
+  if (return_code == UNC_RC_SUCCESS) {
     val_ctr_domain_st_t *obj_new_ctr_domain_val =
         reinterpret_cast<val_ctr_domain_st_t*>(vect_val_ctr_domain[0]);
     if (obj_new_ctr_domain_val != NULL) {
diff --git a/coordinator/modules/uppl/itc_kt_dataflow.cc b/coordinator/modules/uppl/itc_kt_dataflow.cc
new file mode 100644 (file)
index 0000000..2114949
--- /dev/null
@@ -0,0 +1,2414 @@
+/*
+ * Copyright (c) 2013-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+/**
+ * @brief   KT Dataflow implementation
+ * @file    itc_kt_dataflow.cc
+ *
+ */
+
+#include "itc_kt_dataflow.hh"
+#include "itc_kt_controller.hh"
+#include "itc_kt_logicalport.hh"
+#include "itc_kt_logical_member_port.hh"
+#include "itc_kt_root.hh"
+#include "itc_kt_switch.hh"
+#include "itc_kt_port.hh"
+#include "itc_kt_boundary.hh"
+#include "odbcm_db_varbind.hh"
+#include "ipct_util.hh"
+#include "itc_read_request.hh"
+#include "ipc_client_configuration_handler.hh"
+#include "itc_kt_ctr_domain.hh"
+#include "capa_module.hh"
+using unc::uppl::PhysicalLayer;
+using unc::uppl::ODBCMUtils;
+using unc::uppl::ODBCMTableColumns;
+using unc::uppl::IPCClientDriverHandler;
+
+/** Constructor
+ * @Description : This function initializes member variables
+ * and fills the attribute syntax map used for validation
+ * @param[in] : None
+ * @return    : None
+ * */
+Kt_Dataflow::Kt_Dataflow() {
+  // Populate structure to be used for syntax validation
+  if (attr_syntax_map_all.find(UNC_KT_DATAFLOW) ==
+      attr_syntax_map_all.end()) {
+    pfc_log_info("Calling Fill_Attr_sytnax");
+    Fill_Attr_Syntax_Map();
+  }
+  max_dataflow_traverse_count_ = 0;
+}
+
+/** Destructor
+ * @Description : This function frees the boundary map built
+ * @param[in] : None
+ * @return    : None
+ * */
+Kt_Dataflow::~Kt_Dataflow() {
+  pfc_log_debug("Inside the destructor of Kt_Dataflow");
+  multimap<string, boundary_val> *bdry_map = get_boundary_map();
+  bdry_map->clear();
+  map <string, uint32_t>* is_validated_map = get_is_validated_map();
+  is_validated_map->clear();
+}
+
+
+/**ReadBulk
+ * @Description : This function is not allowed for Dataflow.
+ * @param[in] : db_conn - OdbcmConnectionHandler 
+ * key_struct - key for dataflow
+ * data_type - UNC_DT_*
+ * max_rep_ct - max repetition count
+ * child_index - index of children KTs
+ * parent_call - flag to indicate whether parent Kt called
+ * is_read_next - flag to indicate whether called from ReadNext function
+ * read_req - ReadRequest pointer
+ * @param[out] : none
+ * @return    : UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED is returned the response
+ * */
+UncRespCode Kt_Dataflow::ReadBulk(OdbcmConnectionHandler *db_conn,
+                                 void* key_struct,
+                                 uint32_t data_type,
+                                 uint32_t &max_rep_ct,
+                                 int child_index,
+                                 pfc_bool_t parent_call,
+                                 pfc_bool_t is_read_next,
+                                 ReadRequest *read_req) {
+  pfc_log_debug("ReadBulk operation is not allowed in KT_DATAFLOW");
+  return UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+}
+
+
+/** PerformSyntaxValidation
+ * @Description : This function performs syntax validation for
+ *  UNC_KT_DATAFLOW
+ * @param[in]
+ * key_struct - the key for the kt dataflow instance
+ * value_struct - the value for the kt dataflow instance
+ * data_type - UNC_DT_*,type of database
+ * operation_type - UNC_OP*,type of operation
+ * @param[out] : none
+ * @return    : UNC_RC_SUCCESS is returned when the validation is successful
+ * UNC_UPPL_RC_ERR_* is returned when validation is failure
+ * */
+UncRespCode Kt_Dataflow::PerformSyntaxValidation(
+    OdbcmConnectionHandler *db_conn,
+    void* key_struct,
+    void* val_struct,
+    uint32_t operation,
+    uint32_t data_type) {
+  pfc_log_trace("Entered into : %s", __func__);
+  UncRespCode ret_code = UNC_RC_SUCCESS;
+  pfc_bool_t mandatory = PFC_TRUE;
+  map<string, Kt_Class_Attr_Syntax> attr_syntax_map =
+      attr_syntax_map_all[UNC_KT_DATAFLOW];
+  // Validate key structure
+  key_dataflow_t *key = reinterpret_cast<key_dataflow_t*>(key_struct);
+  string value = reinterpret_cast<char*>(key->controller_name);
+  IS_VALID_STRING_KEY(CTR_NAME_STR, value, operation, ret_code, mandatory);
+  if (ret_code != UNC_RC_SUCCESS) {
+    pfc_log_debug("Error in controller_name attribute");
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
+  }
+  value = reinterpret_cast<char*>(key->switch_id);
+  IS_VALID_STRING_KEY(SWITCH_ID_STR, value, operation, ret_code, mandatory);
+  if (ret_code != UNC_RC_SUCCESS) {
+    pfc_log_debug("Error in switch_id attribute");
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
+  }
+
+  value = reinterpret_cast<char*>(key->port_id);
+  IS_VALID_STRING_KEY(PORT_ID_STR, value, operation, ret_code, mandatory);
+  if (ret_code != UNC_RC_SUCCESS) {
+    pfc_log_debug("Error in port_id attribute");
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
+  }
+
+  uint16_t int_value = key->vlan_id;
+  IS_VALID_VLAN_ID(VLAN_ID_STR, int_value, operation, ret_code, mandatory);
+  if (ret_code != UNC_RC_SUCCESS) {
+    if (key->vlan_id != 0xFFFF) {
+      pfc_log_debug("Error in vlan_id attribute");
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
+    }
+  }
+  bool nonZeroVal = false;
+  for (int i = 0; i < 6; i++) {
+    if (key->src_mac_address[i] > 0) {
+      nonZeroVal = true;
+      break;
+    }
+  }
+  if (nonZeroVal == false) {
+    pfc_log_debug("Error in src_mac_address attribute");
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
+  }
+
+/*
+  value = reinterpret_cast<char*>(key->src_mac_address);
+  IS_VALID_STRING_KEY(PORT_MAC_ADDRESS_STR, value, operation,
+                      ret_code, mandatory);
+  if (ret_code != UNC_RC_SUCCESS) {
+    pfc_log_debug("Error in src_mac_address attribute");
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
+  }
+*/
+
+  return UNC_RC_SUCCESS;
+}
+
+/** PerformSemanticValidation
+ * @Description : This function performs semantic validation
+ * for UNC_KT_DATAFLOW
+ * @param[in] : key_struct - specifies key instance of KT_Dataflow
+ * value_struct - specifies value of KT_DATAFLOW,value of unc_key_type_t
+ * operation - UNC_OP*,type of operation
+ * data_type - UNC_DT*,type of database
+ * @return    : UNC_RC_SUCCESS if semantic valition is successful
+ * or UNC_UPPL_RC_ERR_* if failed
+ * */
+UncRespCode Kt_Dataflow::PerformSemanticValidation(
+    OdbcmConnectionHandler *db_conn,
+    void* key_struct,
+    void* val_struct,
+    uint32_t operation,
+    uint32_t data_type) {
+  pfc_log_trace("Entered into : %s", __func__);
+
+  // Not allowing the STANDBY request
+  PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
+  if (physical_layer->get_physical_core()->get_system_state() == \
+       UPPL_SYSTEM_ST_STANDBY) {
+    pfc_log_error("System is in Standby mode");
+    return UNC_UPPL_RC_ERR_NOT_SUPPORTED_BY_STANDBY;
+  }
+
+  UncRespCode ret_code = UNC_RC_SUCCESS;
+  uint32_t nums = 0;
+  const uint8_t *attrs = 0;
+
+  key_dataflow_t *obj_key_dataflow =
+                reinterpret_cast<key_dataflow_t*>(key_struct);
+  key_ctr_t obj_key_ctr;
+  memset(&obj_key_ctr, '\0', sizeof(key_ctr_t));
+  memcpy(obj_key_ctr.controller_name, obj_key_dataflow->controller_name,
+         sizeof(obj_key_dataflow->controller_name));
+  void *key_str = reinterpret_cast <void *>(&obj_key_ctr);
+
+  unc::capa::CapaModule *capa = reinterpret_cast<unc::capa::CapaModule *>(
+    pfc::core::Module::getInstance("capa"));
+  if (capa == NULL) {
+    pfc_log_warn("%s:%d: CapaModule is not found", __FUNCTION__, __LINE__);
+     return UNC_UPPL_RC_ERR_CFG_SEMANTIC;
+  } else {
+    pfc_log_info("Capa instance got successfully");
+  }
+  Kt_Controller KtObj;
+  vector<void *> vect_key_ctr;
+  vect_key_ctr.push_back(key_str);
+  vector<void *> vect_val_ctr;
+  // vector which will holds the boundary values
+  ret_code = KtObj.ReadInternal(db_conn, vect_key_ctr,
+                                      vect_val_ctr,
+                                      UNC_DT_RUNNING,
+                                      UNC_OP_READ);
+  if (ret_code != UNC_RC_SUCCESS) {
+    pfc_log_debug("Read of Controller failed");
+    return ret_code;
+  }
+
+  key_ctr_t *ctr_key = reinterpret_cast<key_ctr_t*>(vect_key_ctr[0]);
+  val_ctr_st_t *val_ctr_vect = reinterpret_cast <val_ctr_st_t*>
+                                           (vect_val_ctr[0]);
+  if (val_ctr_vect == NULL || ctr_key == NULL) {
+    if (ctr_key != NULL) {
+      delete ctr_key;
+      ctr_key = NULL;
+    }
+    return UNC_UPPL_RC_ERR_CFG_SEMANTIC;
+  }
+
+  unc_keytype_ctrtype_t controller_type =
+                           (unc_keytype_ctrtype_t)val_ctr_vect->controller.type;
+  uint8_t oper_status_db = val_ctr_vect->oper_status;
+  string version = (const char*)val_ctr_vect->controller.version;
+
+  pfc_log_debug("controller_type=%d", (uint16_t)controller_type);
+  pfc_log_debug("oper_status_db=%d", oper_status_db);
+  pfc_log_debug("config version=%s", version.c_str());
+
+  if (controller_type != UNC_CT_PFC) {
+    pfc_log_error("Read operation is provided on only PFC controller");
+    ret_code = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+  } else if (oper_status_db != UPPL_CONTROLLER_OPER_UP) {
+    pfc_log_error("Read operation is provided only on"
+                  " Controller which is in Up state");
+    ret_code = UNC_UPPL_RC_ERR_CTRLR_DISCONNECTED;
+  }
+  if (ret_code != UNC_RC_SUCCESS) {
+    if (ctr_key != NULL) {
+      delete ctr_key;
+      ctr_key = NULL;
+    }
+    if (val_ctr_vect != NULL) {
+     delete val_ctr_vect;
+     val_ctr_vect = NULL;
+    }
+    return ret_code;
+  }
+  // Call CapaModule and check for PFC actual version
+
+  bool ret_actual = capa->GetReadCapability(controller_type,
+                       version,
+                       UNC_KT_DATAFLOW,
+                       &nums,
+                       &attrs);
+  pfc_log_debug("return of GetReadCapability = %d", ret_actual);
+  if (ret_actual != true) {
+    pfc_log_debug("KEY TYPE is NOT supported for version : %s",
+                       version.c_str());
+    ret_code = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+  }
+  pfc_log_debug("KEY TYPE is supported for version : %s",
+                      version.c_str());
+  if (ctr_key != NULL) {
+      delete ctr_key;
+      ctr_key = NULL;
+  }
+  if (val_ctr_vect != NULL) {
+      delete val_ctr_vect;
+      val_ctr_vect = NULL;
+  }
+  return ret_code;
+}
+
+
+/** PerformRead
+ * @Description : This function reads the instance of KT_Dataflow based on
+ *                  operation type - READ
+ * @param[in] : session_id-ipc session id used for TC validation
+ * configuration_id-ipc configuration id used for TC validation
+ * key_struct-void* to ctr key structure
+ * value_struct-void* to ctr value structure
+ * data_type-UNC_DT_*,type of database
+ * operation _type-UNC_OP_*,type of database
+ * sess- object of ServerSession
+ * option1,option2-UNC_OPT1/OPT2_*,additional infor read operations
+ * max_rep_ct-max. no of records to be read
+ * @return    : UNC_RC_SUCCESS or UNC_UPPL_RC_ERR*,
+ * UNC_RC_SUCCESS is returned when the response
+ * is added to ipc session successfully.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * */
+UncRespCode Kt_Dataflow::PerformRead(OdbcmConnectionHandler *db_conn,
+                                          uint32_t session_id,
+                                          uint32_t configuration_id,
+                                          void* key_struct,
+                                          void* val_struct,
+                                          uint32_t data_type,
+                                          uint32_t operation_type,
+                                          ServerSession &sess,
+                                          uint32_t option1,
+                                          uint32_t option2,
+                                          uint32_t max_rep_ct) {
+  pfc_log_info("Inside PerformRead operation_type=%d data_type=%d",
+               operation_type, data_type);
+  if (operation_type == UNC_OP_READ) {
+    max_rep_ct = 1;
+  }
+  key_dataflow_t *obj_key_dataflow =
+             reinterpret_cast<key_dataflow_t*>(key_struct);
+  if (option1 != UNC_OPT1_NORMAL) {
+    pfc_log_error("Invalid option1 specified for read operation");
+    physical_response_header rsh = {session_id,
+        configuration_id,
+        operation_type,
+        max_rep_ct,
+        option1,
+        option2,
+        data_type,
+        static_cast<uint32_t>(UNC_UPPL_RC_ERR_INVALID_OPTION1)};
+    int err = PhyUtil::sessOutRespHeader(sess, rsh);
+    err |= sess.addOutput((uint32_t)UNC_KT_DATAFLOW);
+    err |= sess.addOutput(*obj_key_dataflow);
+    if (err != 0) {
+      pfc_log_debug("addOutput failed for physical_response_header");
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
+    }
+    return UNC_RC_SUCCESS;
+  }
+  if (option2 != UNC_OPT2_NONE) {
+    pfc_log_error("Invalid option2 specified for read operation");
+    physical_response_header rsh = {session_id,
+        configuration_id,
+        operation_type,
+        max_rep_ct,
+        option1,
+        option2,
+        data_type,
+        static_cast<uint32_t>(UNC_UPPL_RC_ERR_INVALID_OPTION2)};
+    int err = PhyUtil::sessOutRespHeader(sess, rsh);
+    err |= sess.addOutput((uint32_t)UNC_KT_DATAFLOW);
+    err |= sess.addOutput(*obj_key_dataflow);
+    if (err != 0) {
+      pfc_log_debug("addOutput failed for physical_response_header");
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
+    }
+    return UNC_RC_SUCCESS;
+  }
+  if ((unc_keytype_datatype_t)data_type != UNC_DT_STATE) {
+    pfc_log_error("Data type is not allowed");
+    physical_response_header rsh = {session_id,
+        configuration_id,
+        operation_type,
+        max_rep_ct,
+        option1,
+        option2,
+        data_type,
+        static_cast<uint32_t>(UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED)};
+    int err = PhyUtil::sessOutRespHeader(sess, rsh);
+    err |= sess.addOutput((uint32_t)UNC_KT_DATAFLOW);
+    err |= sess.addOutput(*obj_key_dataflow);
+    if (err != 0) {
+      pfc_log_error("addOutput failed for physical_response_header");
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
+    }
+    return UNC_RC_SUCCESS;
+  }
+  pfc_timespec_t extd_tout;
+  extd_tout.tv_sec = PFC_DEF_TIMEOUT;
+  extd_tout.tv_nsec = 0;
+  sess.setTimeout(&extd_tout);
+  pfc_log_trace("Extending the timeout to 3600 seconds");
+  //  read controller st data, oper_status, type, actual version
+  //  and configured version
+  //  store the max_dataflow_traverse_count value which is gotton from uppl.conf
+  PhysicalCore *physical_core = PhysicalLayer::get_instance()->
+           get_physical_core();
+  max_dataflow_traverse_count_ = physical_core->uppl_max_dataflowtraversal_;
+  pfc_log_debug("max_dataflow_traverse_count_ (from conf file) = %d",
+                                                max_dataflow_traverse_count_);
+  key_dataflow_t key_copy;
+  memcpy(&key_copy, key_struct, sizeof(key_dataflow_t));
+  string empty = "";
+  UncRespCode ret_code = traversePFC(db_conn, session_id, configuration_id,
+                                     key_struct, sess, true, NULL, NULL, empty);
+  physical_response_header rsh = {session_id,
+        configuration_id,
+        operation_type,
+        max_rep_ct,
+        option1,
+        option2,
+        data_type,
+        (uint32_t)ret_code};
+  if (ret_code != UNC_RC_SUCCESS) {
+    pfc_log_error("Querying 1st PFC failed");
+    int err = PhyUtil::sessOutRespHeader(sess, rsh);
+    err |= sess.addOutput((uint32_t)UNC_KT_DATAFLOW);
+    err |= sess.addOutput(key_copy);
+    if (err != 0) {
+      pfc_log_error("addOutput failed for physical_response_header");
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
+    }
+    return UNC_RC_SUCCESS;
+  } else {
+    int err = PhyUtil::sessOutRespHeader(sess, rsh);
+    err |= sess.addOutput((uint32_t)UNC_KT_DATAFLOW);
+    err |= sess.addOutput(key_copy);
+    err = df_util_.sessOutDataflows(sess);
+    if (err != 0) {
+      pfc_log_error("addOutput failed for physical_response_header");
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
+    }
+  }
+  pfc_log_trace("Exiting PerformRead");
+  return UNC_RC_SUCCESS;
+}
+
+/** traversePFC
+ * @Description : This function recieves the dataflows from driver and checks
+ * for boundary egress port and traverse to the neighbour.
+ * @param[in] : session_id-ipc session id used for TC validation
+ * configuration_id-ipc configuration id used for TC validation
+ * key_struct-void* to ctr key structure
+ * sess- object of ServerSession
+ * is_head_node - flag to indicate whether head node
+ * parentnode - reference of the parent node
+ * lastPfcNode - reference of the last PFC node
+ * @return    : UNC_RC_SUCCESS or UNC_UPPL_RC_ERR*,
+ * UNC_RC_SUCCESS is returned when the response
+ * is added to ipc session successfully.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * */
+UncRespCode Kt_Dataflow::traversePFC(OdbcmConnectionHandler *db_conn,
+                                          uint32_t session_id,
+                                          uint32_t configuration_id,
+                                          void* key_struct,
+                                          ServerSession &sess,
+                                          bool is_head_node,
+                                          DataflowCmn *parentnode,
+                                          DataflowCmn *lastPfcNode,
+                                          string &ingress_bdry_id) {
+  pfc_log_trace("Entered into : %s", __func__);
+  key_dataflow_t *obj_key_dataflow =
+                       reinterpret_cast<key_dataflow_t*>(key_struct);
+  string controller_name =
+                    reinterpret_cast<char*>(obj_key_dataflow->controller_name);
+  string domain_id = "";
+  map <string, uint32_t>* is_validated_map = get_is_validated_map();
+  map <string, uint32_t>:: iterator valdt_map_iter;
+  valdt_map_iter = is_validated_map->find(controller_name);
+  if (valdt_map_iter == is_validated_map->end()) {
+    UncRespCode err_code = PerformSemanticValidation(db_conn, key_struct, NULL,
+                                                  UNC_OP_READ, UNC_DT_RUNNING);
+    is_validated_map->insert(std::pair<string, uint32_t>
+                                                  (controller_name, err_code));
+    if (err_code != UNC_RC_SUCCESS) {
+      pfc_log_info("PerformSemanticValidation failed with error %d", err_code);
+      return err_code;
+    }
+  } else {
+    UncRespCode err_code = (UncRespCode)valdt_map_iter->second;
+    if (err_code != UNC_RC_SUCCESS) {
+      pfc_log_debug("PerformSemanticValidation failed with error %d", err_code);
+      return err_code;
+    }
+  }
+
+  // retrieve the VLAN ID and src MAC address from out_matches.
+  if (!is_head_node) {
+    map <UncDataflowFlowMatchType, void *>::iterator output_matches_iter;
+    output_matches_iter = lastPfcNode->output_matches.find(UNC_MATCH_VLAN_ID);
+    if (output_matches_iter != lastPfcNode->output_matches.end()) {
+      val_df_flow_match_vlan_id_t *prev =
+reinterpret_cast<val_df_flow_match_vlan_id_t *>((*output_matches_iter).second);
+      obj_key_dataflow->vlan_id =  prev->vlan_id;
+    }
+    output_matches_iter = lastPfcNode->output_matches.find(UNC_MATCH_DL_SRC);
+    if (output_matches_iter != lastPfcNode->output_matches.end()) {
+      val_df_flow_match_dl_addr_t *prev =
+reinterpret_cast<val_df_flow_match_dl_addr_t *>((*output_matches_iter).second);
+      memcpy(obj_key_dataflow->src_mac_address, prev->dl_addr,
+                           sizeof(obj_key_dataflow->src_mac_address));
+    }
+  }
+
+  vector<DataflowDetail*> pfc_flows;
+  pfc_log_debug("Searching pfc_flows from map size %" PFC_PFMT_SIZE_T
+               "for key %s", df_util_.pfc_flows.size(),
+               DataflowCmn::get_string(*obj_key_dataflow).c_str());
+  map<key_dataflow_t, vector<DataflowDetail*> > ::iterator iter;
+  for (iter =df_util_.pfc_flows.begin();
+      iter != df_util_.pfc_flows.end(); iter++) {
+    if (DataflowCmn::Compare(iter->first, *obj_key_dataflow)) {
+      break;
+    }
+  }
+  if (iter == df_util_.pfc_flows.end()) {
+    pfc_log_info("Searching pfc_flows from map not found");
+
+    driver_request_header rqh = {uint32_t(0), uint32_t(0), controller_name,
+        domain_id, static_cast<uint32_t>(UNC_OP_READ), uint32_t(0),
+        (uint32_t)0, (uint32_t)0, static_cast<uint32_t>(UNC_DT_STATE),
+        static_cast<uint32_t>(UNC_KT_DATAFLOW)};
+    ClientSession *cli_session = NULL;
+    int err1 = 0;
+    UncRespCode driver_response = UNC_RC_SUCCESS;
+    IPCClientDriverHandler pfc_drv_handler(UNC_CT_PFC, driver_response);
+    cli_session = pfc_drv_handler.ResetAndGetSession();
+    if (driver_response != UNC_RC_SUCCESS) {
+      return driver_response;
+    }
+    err1 = PhyUtil::sessOutDriverReqHeader(*cli_session, rqh);
+    err1 |= cli_session->addOutput(*obj_key_dataflow);
+    pfc_log_debug("Key to Driver:%s",
+                DataflowCmn::get_string(*obj_key_dataflow).c_str());
+    if (err1 != 0) {
+      pfc_log_error("addOutput failed for driver_request_header");
+      if (is_head_node) {
+        pfc_log_info("Returning IPC_WRITE_ERROR");
+        return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
+      } else {
+        if ((parentnode->next.size() == 0) &&
+           (parentnode->addl_data->reason == UNC_DF_RES_SUCCESS))
+          parentnode->addl_data->reason = UNC_DF_RES_SYSTEM_ERROR;
+        pfc_log_info("Setting reason as UNC_DF_RES_SYSTEM_ERROR");
+        return UNC_RC_SUCCESS;
+      }
+    }
+    pfc_timespec_t extd_tout;
+    extd_tout.tv_sec = PFC_DEF_TIMEOUT;
+    extd_tout.tv_nsec = 0;
+    cli_session->setTimeout(&extd_tout);
+    pfc_log_trace("Extending the timeout to 3600 seconds");
+    // Send the request to driver
+    driver_response_header rsp;
+    driver_response = pfc_drv_handler.SendReqAndGetResp(rsp);
+    if (driver_response != UNC_RC_SUCCESS) {
+      if (is_head_node) {
+        pfc_log_error("Read request to Driver failed for controller %s"
+        " with response %d, err1=%d", controller_name.c_str(),
+        driver_response, err1);
+      } else {
+        pfc_log_error("Read request to Driver failed for controller %s"
+        " ,flow_id %" PFC_PFMT_u64 " with response %d, err1=%d",
+        controller_name.c_str(), parentnode->df_segment->df_common->flow_id,
+        driver_response, err1);
+      }
+      return driver_response;
+    }
+
+    uint32_t total_flow_count = 0;
+    key_dataflow_t key_df;
+    uint32_t keytype;
+    uint32_t resp_pos = 10;
+    err1 = cli_session->getResponse(resp_pos++, keytype);
+    if (err1 != 0) {
+      pfc_log_error("Read keytype error for position resp_pos=%d", resp_pos);
+      return UNC_UPPL_RC_ERR_DRIVER_COMMUNICATION_FAILURE;
+    }
+    err1 = cli_session->getResponse(resp_pos++, key_df);
+    if (err1 != 0) {
+      pfc_log_error("Read keytype error for position resp_pos=%d", resp_pos);
+      return UNC_UPPL_RC_ERR_DRIVER_COMMUNICATION_FAILURE;
+    }
+    err1 = cli_session->getResponse(resp_pos++, total_flow_count);
+    if (err1 != 0) {
+      pfc_log_error("Read keytype error for position resp_pos=%d", resp_pos);
+      return UNC_UPPL_RC_ERR_DRIVER_COMMUNICATION_FAILURE;
+    }
+    for (uint32_t i = 0; i < total_flow_count; i++) {
+      pfc_log_info("Reading flow %d from driver ", i);
+      DataflowDetail *df_segm = new DataflowDetail(kidx_val_df_data_flow_cmn);
+      if (df_segm == NULL) {
+        pfc_log_debug("Memory not allocated for df_segm");
+        return UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+      }
+      err1 = df_segm->sessReadDataflow(*cli_session, resp_pos);
+      if (err1 != 0) {
+        delete df_segm;
+        pfc_log_error("Read dataflow from session error "
+                             "for position resp_pos=%d", resp_pos);
+        return UNC_UPPL_RC_ERR_DRIVER_COMMUNICATION_FAILURE;
+      }
+      pfc_flows.push_back(df_segm);
+    }
+
+    df_util_.pfc_flows.insert(
+                    std::pair<key_dataflow_t, vector<DataflowDetail *> >
+                    (*obj_key_dataflow, pfc_flows));
+    pfc_log_info("Got pfc_flows from driver. flows.size=%" PFC_PFMT_SIZE_T
+               "for key %s", pfc_flows.size(),
+               DataflowCmn::get_string(*obj_key_dataflow).c_str());
+  } else {
+    pfc_flows = iter->second;
+    pfc_log_debug("Got pfc_flows from map. flows.size=%" PFC_PFMT_SIZE_T
+                 "for key %s", pfc_flows.size(),
+                 DataflowCmn::get_string(*obj_key_dataflow).c_str());
+  }
+  for (uint32_t i = 0; i < pfc_flows.size(); i++) {
+    DataflowDetail *df_segm = pfc_flows[i];
+    std::string ctr_name = (const char*)df_segm->df_common->controller_name;
+    pfc_log_debug("ctr_name passed to fill_ctrlr_dom_count_map-traversePFC:%s"
+                  , ctr_name.c_str());
+    UncRespCode fill_status = fill_ctrlr_dom_count_map(db_conn,
+                  ctr_name);
+    if (fill_status != UNC_RC_SUCCESS)
+      pfc_log_debug("Map is not filled");  // TODO(UPPL) Need to be decided
+    pfc_log_debug("Return of fill_ctrlr_dom_count_map:%d", fill_status);
+    if (is_head_node) {
+      DataflowCmn *df_cmn = new DataflowCmn(is_head_node, df_segm);
+      pfc_log_trace("before calling df_util_ appendFlow");
+      df_cmn->apply_action();
+      uint32_t ret = df_util_.appendFlow(df_cmn);
+      if (ret != 0) {
+        pfc_log_info("df_util_ appendFlow ret=%d", ret);
+        delete df_cmn;
+        return UNC_UPPL_RC_FAILURE;
+      }
+    } else {
+      DataflowCmn *df_cmn = new DataflowCmn(is_head_node, df_segm);
+      bool match_result = df_cmn->check_match_condition
+                                      (lastPfcNode->output_matches);
+      pfc_log_debug("match_result:%d", match_result);
+      if (match_result) {
+        pfc_log_debug("2nd flow (id=%" PFC_PFMT_u64
+                      ") is matching with 1st flow (id=%" PFC_PFMT_u64  ")",
+                      df_cmn->df_segment->df_common->flow_id,
+                      parentnode->df_segment->df_common->flow_id);
+        df_cmn->apply_action();
+        df_cmn->parent_node = parentnode;
+        UncDataflowReason ret =
+               parentnode->appendFlow(df_cmn,
+                                      *(df_util_.get_ctrlr_dom_count_map()));
+        if (ret == UNC_DF_RES_EXCEEDS_HOP_LIMIT)
+          delete df_cmn;
+      } else {
+        pfc_log_debug("2nd flow (id=%" PFC_PFMT_u64
+                      ") is not matching with 1st flow (id=%" PFC_PFMT_u64
+                      ") so ignoring", df_cmn->df_segment->df_common->flow_id,
+                      parentnode->df_segment->df_common->flow_id);
+        delete df_cmn;
+      }
+    }
+  }
+  if (is_head_node) {
+    vector<DataflowCmn* >* firstCtrlrFlows = df_util_.get_firstCtrlrFlows();
+    if (firstCtrlrFlows->size() == 0) {
+      pfc_log_info("firstCtrlrFlows- vector is empty");
+      return UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
+    }
+  } else {
+    pfc_log_debug("Non is_head_node, next.size=%"
+                 PFC_PFMT_SIZE_T ", existing reason=%d",
+                 parentnode->next.size(), parentnode->addl_data->reason);
+    if (parentnode->next.size() == 0 && parentnode->addl_data->reason ==
+                                UNC_DF_RES_SUCCESS) {  // Preserving old reason
+      if (parentnode->df_segment->df_common->controller_type == UNC_CT_PFC) {
+                                            //  if parentnode is PFC type
+        parentnode->addl_data->reason = UNC_DF_RES_FLOW_NOT_FOUND;
+      } else {
+        parentnode->addl_data->reason = UNC_DF_RES_DST_NOT_REACHED;
+      }
+      return UNC_RC_SUCCESS;
+    }
+  }
+  if (is_head_node) {
+    vector<DataflowCmn* >* firstCtrlrFlows = df_util_.get_firstCtrlrFlows();
+    checkFlowLimitAndTraverse(db_conn, session_id, configuration_id, sess,
+                              key_struct, firstCtrlrFlows, is_head_node,
+                              ingress_bdry_id);
+  } else {
+    vector<DataflowCmn* >* next = &(parentnode->next);
+    checkFlowLimitAndTraverse(db_conn, session_id, configuration_id, sess,
+                              key_struct, next, is_head_node, ingress_bdry_id);
+  }
+  return UNC_RC_SUCCESS;
+}
+
+
+/** traverseVNP
+ * @Description : This function creates the dataflow node and is called when
+ * the neighbour found is of type VNP
+ * for boundary egress port and traverse to the neighbour.
+ * @param[in] : session_id-ipc session id used for TC validation
+ * configuration_id-ipc configuration id used for TC validation
+ * key_struct-void* to ctr key structure
+ * sess- object of ServerSession
+ * is_head_node - flag to indicate whether head node
+ * parentnode - reference of the parent node
+ * lastPfcNode - reference of the last PFC node
+ * @return    : UNC_RC_SUCCESS or UNC_UPPL_RC_ERR*,
+ * UNC_RC_SUCCESS is returned when the response
+ * is added to ipc session successfully.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * */
+
+UncRespCode Kt_Dataflow::traverseVNP(OdbcmConnectionHandler *db_conn,
+                                          uint32_t session_id,
+                                          uint32_t configuration_id,
+                                          void* key_struct,
+                                          ServerSession &sess,
+                                          bool is_head_node,
+                                          DataflowCmn *parentnode,
+                                          DataflowCmn *lastPfcNode,
+                                          string& ingress_bdry_id) {
+  pfc_log_trace("Entered into : %s", __func__);
+  UncRespCode ret_code = checkBoundaryAndTraverse(db_conn, session_id,
+           configuration_id, key_struct, sess, false, parentnode,
+           lastPfcNode, ingress_bdry_id);
+  return ret_code;
+}
+
+/** traverseUnknown
+ * @Description : This function creates the dataflow node and is called when
+ * the neighbour found is of type Unknown
+ * for boundary egress port and traverse to the neighbour.
+ * @param[in] : session_id-ipc session id used for TC validation
+ * configuration_id-ipc configuration id used for TC validation
+ * key_struct-void* to ctr key structure
+ * sess- object of ServerSession
+ * is_head_node - flag to indicate whether head node
+ * parentnode - reference of the parent node
+ * lastPfcNode - reference of the last PFC node
+ * @return    : UNC_RC_SUCCESS or UNC_UPPL_RC_ERR*,
+ * UNC_RC_SUCCESS is returned when the response
+ * is added to ipc session successfully.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * */
+UncRespCode Kt_Dataflow::traverseUNKNOWN(OdbcmConnectionHandler *db_conn,
+                                          uint32_t session_id,
+                                          uint32_t configuration_id,
+                                          void* key_struct,
+                                          ServerSession &sess,
+                                          bool is_head_node,
+                                          DataflowCmn *parentnode,
+                                          DataflowCmn *lastPfcNode,
+                                          string& ingress_bdry_id) {
+  pfc_log_trace("Entered into : %s", __func__);
+  UncRespCode ret_code = checkBoundaryAndTraverse(db_conn, session_id,
+          configuration_id, key_struct, sess, false, parentnode,
+          lastPfcNode, ingress_bdry_id);
+  return ret_code;
+}
+
+/** checkBoundaryAndTraverse
+ * @Description : This function finds the neighbour controller of the given
+ * controller and invokes resoective traversXXX function based on the ctr type
+ * for boundary egress port and traverse to the neighbour.
+ * @param[in] : session_id-ipc session id used for TC validation
+ * configuration_id-ipc configuration id used for TC validation
+ * key_struct-void* to ctr key structure
+ * sess- object of ServerSession
+ * is_head_node - flag to indicate whether head node
+ * parentnode - reference of the parent node
+ * lastPfcNode - reference of the last PFC node
+ * @return    : UNC_RC_SUCCESS or UNC_UPPL_RC_ERR*,
+ * UNC_RC_SUCCESS is returned when the response
+ * is added to ipc session successfully.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * */
+UncRespCode Kt_Dataflow::checkBoundaryAndTraverse(
+                                          OdbcmConnectionHandler *db_conn,
+                                          uint32_t session_id,
+                                          uint32_t configuration_id,
+                                          void* key_struct,
+                                          ServerSession &sess,
+                                          bool is_head_node,
+                                          DataflowCmn *source_node,
+                                          DataflowCmn *lastPfcNode,
+                                          string &ingress_bdry_id) {
+  pfc_log_trace("Entered into : %s", __func__);
+  UncRespCode ret_code = UNC_RC_SUCCESS;
+  boundary_val obj_bdry_val;
+  memset(&obj_bdry_val, '\0', sizeof(boundary_val));
+  if ((source_node->df_segment->df_common->controller_type == UNC_CT_PFC) &&
+     ((source_node->df_segment->df_common->
+             valid[kidxDfDataFlowEgressSwitchId] == 0) ||
+      (source_node->df_segment->df_common->valid[kidxDfDataFlowOutPort] == 0) ||
+      (source_node->df_segment->df_common->
+           valid[kidxDfDataFlowOutDomain] == 0))) {
+    pfc_log_debug("Valid bits for egress attributes are set as invalid");
+    source_node->addl_data->reason = UNC_DF_RES_SUCCESS;
+    return UNC_RC_SUCCESS;
+  }
+  obj_bdry_val.controller_type =
+      source_node->df_segment->df_common->controller_type;
+  if (source_node->df_segment->df_common->controller_name[0] == '\0') {
+    pfc_log_debug("Controller name is empty");
+    if ((source_node->next.size() == 0) &&
+       (source_node->addl_data->reason == UNC_DF_RES_SUCCESS))
+      source_node->addl_data->reason = UNC_DF_RES_SYSTEM_ERROR;
+    return UNC_RC_SUCCESS;
+  }
+  memcpy(obj_bdry_val.controller_name,
+         source_node->df_segment->df_common->controller_name,
+         sizeof(obj_bdry_val.controller_name));
+  if (source_node->df_segment->df_common->out_domain[0] == '\0') {
+    if ((source_node->next.size() == 0) &&
+       (source_node->addl_data->reason == UNC_DF_RES_SUCCESS))
+      source_node->addl_data->reason = UNC_DF_RES_SYSTEM_ERROR;
+    pfc_log_debug("Domain name is empty");
+    return UNC_RC_SUCCESS;
+  }
+  memcpy(obj_bdry_val.domain_name,
+         source_node->df_segment->df_common->out_domain,
+         sizeof(obj_bdry_val.domain_name));
+
+  if (source_node->df_segment->df_common->controller_type != UNC_CT_UNKNOWN) {
+    if (source_node->df_segment->df_common->egress_switch_id[0] == '\0') {
+    if ((source_node->next.size() == 0) &&
+       (source_node->addl_data->reason == UNC_DF_RES_SUCCESS))
+        source_node->addl_data->reason = UNC_DF_RES_SYSTEM_ERROR;
+      pfc_log_debug("Switch id is empty");
+      return UNC_RC_SUCCESS;
+    }
+    memcpy(obj_bdry_val.lp_str.switch_id,
+           source_node->df_segment->df_common->egress_switch_id,
+         sizeof(obj_bdry_val.lp_str.switch_id));
+    if (source_node->df_segment->df_common->out_port[0] == '\0') {
+    if ((source_node->next.size() == 0) &&
+       (source_node->addl_data->reason == UNC_DF_RES_SUCCESS))
+        source_node->addl_data->reason = UNC_DF_RES_SYSTEM_ERROR;
+      pfc_log_debug("Port no. is empty");
+      return UNC_RC_SUCCESS;
+    }
+    memcpy(obj_bdry_val.lp_str.port_id,
+         source_node->df_segment->df_common->out_port,
+         sizeof(obj_bdry_val.lp_str.port_id));
+  }
+  pfc_log_debug("ingress_bdry_id = %s", ingress_bdry_id.c_str());
+  if (!ingress_bdry_id.empty()) {
+    memcpy(obj_bdry_val.boundary_id, ingress_bdry_id.c_str(),
+            ingress_bdry_id.length() + 1);
+  } else {
+    pfc_log_debug("ingress_bdry_id is NULL");
+  }
+
+  list<boundary_val> list_ctr_nbrs;
+  UncRespCode read_status = FindNeighbourCtr(db_conn, lastPfcNode,
+                                    &obj_bdry_val, list_ctr_nbrs,
+                                    ingress_bdry_id);
+  pfc_log_info("Size of list_ctr_nbrs:%" PFC_PFMT_SIZE_T, list_ctr_nbrs.size());
+  if ((read_status != UNC_RC_SUCCESS) || (list_ctr_nbrs.size() == 0)) {
+    pfc_log_debug("Read of neighbours failed");
+    // for VNP and BYPASS add this error, PFC ignore. // TODO (uppl)
+    if (obj_bdry_val.controller_type == UNC_CT_PFC) {
+      source_node->addl_data->reason = UNC_DF_RES_SUCCESS;
+    } else {
+      source_node->addl_data->reason = UNC_DF_RES_DST_NOT_REACHED;
+    }
+    return UNC_RC_SUCCESS;
+  }
+  list<boundary_val>::iterator nbrs_ctr_iter = list_ctr_nbrs.begin();
+  for ( ; nbrs_ctr_iter != list_ctr_nbrs.end(); nbrs_ctr_iter++) {
+    string current_bdry_id = (const char*)((*nbrs_ctr_iter).boundary_id);
+    pfc_log_debug("current_boundary_id:%s", current_bdry_id.c_str());
+    pfc_log_debug("ingress_bdry_id:%s", ingress_bdry_id.c_str());
+    boundary_val obj_bval = *nbrs_ctr_iter;
+  if ((*nbrs_ctr_iter).controller_type == UNC_CT_PFC) {
+    key_dataflow_t obj_key_df;
+    memcpy(obj_key_df.controller_name, obj_bval.controller_name,
+             sizeof(obj_bval.controller_name));
+    memcpy(obj_key_df.switch_id, obj_bval.lp_str.switch_id,
+             sizeof(obj_bval.lp_str.switch_id));
+    memcpy(obj_key_df.port_id, obj_bval.lp_str.port_id,
+             sizeof(obj_bval.lp_str.port_id));
+    key_dataflow_t *obj_key_dataflow =
+                       reinterpret_cast<key_dataflow_t*>(key_struct);
+    obj_key_df.vlan_id = obj_key_dataflow->vlan_id;
+    memcpy(obj_key_df.src_mac_address, obj_key_dataflow->src_mac_address,
+             sizeof(obj_key_df.src_mac_address));
+
+    pfc_log_info("checkBoundaryAndTraverse  controller_type == UNC_CT_PFC");
+    ret_code = traversePFC(db_conn, session_id, configuration_id,
+                           reinterpret_cast<void*>(&obj_key_df), sess, false,
+                           source_node, lastPfcNode, current_bdry_id);
+    pfc_log_debug("traversePFC returned %d", ret_code);
+    if (source_node->next.size() == 0) {
+      if ((ret_code != UNC_RC_SUCCESS) &&
+          (source_node->addl_data->reason == UNC_DF_RES_SUCCESS)) {
+        if (ret_code == UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE)
+          source_node->addl_data->reason = UNC_DF_RES_FLOW_NOT_FOUND;
+        else if (ret_code == UNC_UPPL_RC_ERR_CTRLR_DISCONNECTED)
+          source_node->addl_data->reason = UNC_DF_RES_CTRLR_DISCONNECTED;
+        else if (ret_code == UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED)
+          source_node->addl_data->reason = UNC_DF_RES_OPERATION_NOT_SUPPORTED;
+        else
+          source_node->addl_data->reason = UNC_DF_RES_SYSTEM_ERROR;
+      }
+    } else {
+      pfc_log_debug("Preserving the old reason:%d",
+                    source_node->addl_data->reason);
+      // Already flow appended, so donot overwrite the reason
+    }
+  } else if (((*nbrs_ctr_iter).controller_type == UNC_CT_VNP) ||
+        ((*nbrs_ctr_iter).controller_type == UNC_CT_UNKNOWN)) {
+    string c_nm = (const char*)obj_bval.controller_name;
+    list<boundary_val> keys;
+    list<boundary_val> vals;
+    ret_code = getkeysfrom_boundary_map((const char*)obj_bval.controller_name,
+                                         keys, vals,
+                                         current_bdry_id);
+    if (ret_code != UNC_RC_SUCCESS) {
+      if ((source_node->next.size() == 0) &&
+          source_node->addl_data->reason == UNC_DF_RES_SUCCESS) {
+        if (ret_code == UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE)
+          source_node->addl_data->reason = UNC_DF_RES_DST_NOT_REACHED;
+        else
+          source_node->addl_data->reason = UNC_DF_RES_SYSTEM_ERROR;
+      }
+    }
+    pfc_log_info("getkeysfrom_boundary_map returned keys.size=%"
+                   PFC_PFMT_SIZE_T, keys.size());
+    list<boundary_val>::iterator keys_iter, vals_iter;
+    for (keys_iter = keys.begin(), vals_iter = vals.begin();
+         keys_iter != keys.end(); keys_iter++, vals_iter++) {
+      // exclude ingress port
+      bool ret1 = false;
+      // Comparing the keys
+      UPPL_COMPARE_STRUCT(obj_bval, (*keys_iter), ret1);
+      bool ret2 = false;
+      // Comparing the neighbour values
+      pfc_log_debug("value1 for comparison:\nport_type = %d\n"
+                    "controller_name:%s\ndomain_name:%s\nswitch_id:%s\n"
+                    "port_id:%s\nboundary_id:%s\ncurrent boundary_id:%s",
+                     obj_bdry_val.lp_str.port_type,
+                     obj_bdry_val.controller_name, obj_bdry_val.domain_name,
+                     obj_bdry_val.lp_str.switch_id, obj_bdry_val.lp_str.port_id,
+                     obj_bdry_val.boundary_id, current_bdry_id.c_str());
+      pfc_log_debug("value2 for comparison:\nport_type = %d\n"
+                    "controller_name:%s\ndomain_name:%s\nswitch_id:%s\n"
+                    "port_id:%s\nboundary_id:%s\n",
+                     (*vals_iter).lp_str.port_type,
+                     (*vals_iter).controller_name, (*vals_iter).domain_name,
+                     (*vals_iter).lp_str.switch_id, (*vals_iter).lp_str.port_id,
+                     (*vals_iter).boundary_id);
+
+      if (((*vals_iter).lp_str.port_type == UPPL_LP_SUBDOMAIN) ||
+          ((*vals_iter).lp_str.port_type == UPPL_LP_TRUNK_PORT) ||
+          ((*vals_iter).lp_str.port_type == UPPL_LP_SWITCH)) {
+          pfc_log_debug("ret2 is false from COMPARE_STRUCT");
+          if (strcmp((const char*)((*vals_iter).boundary_id),
+                                (const char*)(current_bdry_id.c_str())) == 0) {
+            pfc_log_debug("Boundary Id is same. Is vlan, src mac changed?");
+            if (lastPfcNode->is_vlan_src_mac_changed_ == false) {
+               pfc_log_debug("Boundary Id is same && vlan,"
+                             "src mac are also not changed");
+               ret2 = true;
+            }
+          } else {
+            if (source_node->parent_node != NULL &&
+               source_node->parent_node->df_segment->df_common->
+               controller_type != UNC_CT_PFC) {
+            pfc_log_debug("PBP Boundary Id is not same nonpfc"
+                          "_ingr_bdry_id %s current_bdry_id %s",
+                          source_node->parent_node->addl_data->
+                          nonpfc_ingr_bdry_id.c_str(),
+                          current_bdry_id.c_str());
+            if (strcmp((const char*)
+                       (source_node->parent_node->addl_data->
+                        nonpfc_ingr_bdry_id.c_str()),
+                                (const char*)((*vals_iter).boundary_id)) ==
+                0) {
+            pfc_log_debug("PBP Boundary Id is not same."
+                          "Is vlan, src mac changed?");
+            if (lastPfcNode->is_vlan_src_mac_changed_ == false) {
+               pfc_log_debug("PBP Boundary Id is not same && vlan, "
+                             "src mac are also not changed");
+               ret2 = true;
+            }
+            }
+            } else {
+              pfc_log_debug("PBP source_node->parent_node is PFC");
+            }
+          }
+      } else {
+        UPPL_COMPARE_STRUCT(obj_bdry_val, (*vals_iter), ret2);
+      }
+      DataflowDetail *df_segment =
+            new DataflowDetail(kidx_val_df_data_flow_cmn,
+               unc_keytype_ctrtype_t((*nbrs_ctr_iter).controller_type));
+      if (df_segment == NULL) {
+             pfc_log_debug("Memory not allocated for df_segment");
+             return UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+      }
+      DataflowCmn *df_cmn = new DataflowCmn(is_head_node, df_segment);
+      if (df_cmn == NULL) {
+        delete df_segment;
+        pfc_log_debug("Memory not allocated for df_cmn");
+        return UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+      }
+
+      pfc_log_debug("PBP obj_val.boundary_id=%s", obj_bval.boundary_id);
+      pfc_log_debug("PBP (*vals_iter).boundary_id=%s",
+                    (*vals_iter).boundary_id);
+      pfc_log_debug("PBP current_bdry_id=%s", current_bdry_id.c_str());
+      df_cmn->addl_data->nonpfc_ingr_bdry_id =
+          (const char *)obj_bval.boundary_id;
+
+      if ((ret1 == true) && (ret2 == true)) {
+        if (keys.size() == 1) {
+         // Create a node
+           UncDataflowReason ret =
+                    CreateDfCmnNodeForNonPfc(db_conn, df_segment, source_node,
+                                     df_cmn, &obj_bval,
+                                     (*keys_iter), false);
+           if (ret != UNC_DF_RES_SUCCESS)
+             delete df_cmn;
+        } else {
+           delete df_cmn;
+         }
+         pfc_log_debug("Ignoring source key");
+         continue;
+      }
+      UncDataflowReason ret = CreateDfCmnNodeForNonPfc(db_conn,
+                                                       df_segment,
+                                                       source_node,
+                               df_cmn, &obj_bval, (*keys_iter), true);
+      if (ret != UNC_DF_RES_SUCCESS) {
+        delete df_cmn;
+        continue;
+      }
+      if ((*nbrs_ctr_iter).controller_type == UNC_CT_VNP) {
+        ret_code = traverseVNP(db_conn, session_id, configuration_id,
+                            key_struct, sess, false, df_cmn, lastPfcNode,
+                            current_bdry_id);
+      } else if ((*nbrs_ctr_iter).controller_type == UNC_CT_UNKNOWN) {
+        key_dataflow_t obj_key_df_tgt;
+        memcpy(obj_key_df_tgt.controller_name, (*vals_iter).controller_name,
+             sizeof((*vals_iter).controller_name));
+        memcpy(obj_key_df_tgt.switch_id, (*vals_iter).lp_str.switch_id,
+             sizeof((*vals_iter).lp_str.switch_id));
+        memcpy(obj_key_df_tgt.port_id, (*vals_iter).lp_str.port_id,
+             sizeof((*vals_iter).lp_str.port_id));
+        key_dataflow_t *obj_key_dataflow =
+                       reinterpret_cast<key_dataflow_t*>(key_struct);
+        obj_key_df_tgt.vlan_id = obj_key_dataflow->vlan_id;
+        memcpy(obj_key_df_tgt.src_mac_address,
+               obj_key_dataflow->src_mac_address,
+             sizeof(obj_key_df_tgt.src_mac_address));
+        if ((*vals_iter).controller_type == UNC_CT_PFC) {
+          ret_code = traversePFC(db_conn, session_id, configuration_id,
+                            &obj_key_df_tgt, sess, false, df_cmn, lastPfcNode,
+                            current_bdry_id);
+        } else if ((*vals_iter).controller_type == UNC_CT_VNP) {
+          ret_code = traverseVNP(db_conn, session_id, configuration_id,
+                            &obj_key_df_tgt, sess, false, df_cmn, lastPfcNode,
+                            current_bdry_id);
+        }
+      }
+      pfc_log_info("traverseXXX returned %d", ret_code);
+      if ((ret_code != UNC_RC_SUCCESS) &&
+          (df_cmn->addl_data->reason == UNC_DF_RES_SUCCESS)) {
+        if (ret_code == UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE)
+          df_cmn->addl_data->reason = UNC_DF_RES_DST_NOT_REACHED;
+        else if (ret_code == UNC_UPPL_RC_ERR_CTRLR_DISCONNECTED)
+          df_cmn->addl_data->reason = UNC_DF_RES_CTRLR_DISCONNECTED;
+        else if (ret_code == UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED)
+          df_cmn->addl_data->reason = UNC_DF_RES_OPERATION_NOT_SUPPORTED;
+        else
+          df_cmn->addl_data->reason = UNC_DF_RES_SYSTEM_ERROR;
+      }
+    }
+    bool restart_1stloop = false;
+    do {
+    pfc_log_debug("PBP Erasing the intermediate flows size=%"PFC_PFMT_SIZE_T,
+                  source_node->next.size());
+    restart_1stloop = false;
+    for (vector<DataflowCmn *>::iterator iter_st = source_node->next.begin();
+        iter_st != source_node->next.end(); iter_st++) {
+      bool continue_from_1stloop = false;
+      for (vector<DataflowCmn *>::iterator iter_curr = iter_st+1;
+          iter_curr != source_node->next.end(); iter_curr++) {
+        DataflowCmn *st = (DataflowCmn *)*iter_st;
+        DataflowCmn *curr = (DataflowCmn *)*iter_curr;
+        if ((strcmp((const char*)st->df_segment->df_common->controller_name,
+            (const char*)curr->df_segment->df_common->controller_name) == 0) &&
+           (strcmp((const char*)st->df_segment->df_common->out_domain,
+            (const char*)curr->df_segment->df_common->out_domain) == 0)) {
+          pfc_log_debug("PBP cname %s and dname %s matching curr->next.size=%"
+                PFC_PFMT_SIZE_T",st->next.size=%"PFC_PFMT_SIZE_T,
+                (const char*)st->df_segment->df_common->controller_name,
+                (const char*)curr->df_segment->df_common->out_domain,
+                curr->next.size(), st->next.size());
+          if (curr->next.size() == 0) {
+            if (source_node->next.size() > 1)
+              source_node->head->total_flow_count--;
+            pfc_log_debug("PBP Erasing the intermediate flow");
+            delete curr;
+            source_node->next.erase(iter_curr);
+            continue_from_1stloop = true;
+            restart_1stloop = true;
+          } else if (st->next.size() == 0) {
+            if (source_node->next.size() > 1)
+              source_node->head->total_flow_count--;
+            pfc_log_debug("PBP Erasing the intermediate flow");
+            delete st;
+            source_node->next.erase(iter_st);
+            continue_from_1stloop = true;
+            restart_1stloop = true;
+          }
+        }
+        if (continue_from_1stloop)
+          break;
+      }
+      if (restart_1stloop)
+        break;
+    }
+    } while (restart_1stloop);
+    pfc_log_debug("PBP AFTER flows size=%"PFC_PFMT_SIZE_T,
+                  source_node->next.size());
+  }
+  }
+  return UNC_RC_SUCCESS;
+}
+
+
+/** Fill_Attr_Syntax_Map
+ * @Description : This function populates the values to be used for attribute
+ * validation
+ * @param[in] : None
+ * @return    : void
+ * */
+void Kt_Dataflow::Fill_Attr_Syntax_Map() {
+  map<string, Kt_Class_Attr_Syntax> attr_syntax_map;
+  Kt_Class_Attr_Syntax objKeyCtrNameAttrSyntax =
+  { PFC_IPCTYPE_UINT8, 0, 0, 1, 31, true, ""};
+  attr_syntax_map[CTR_NAME_STR] = objKeyCtrNameAttrSyntax;
+  Kt_Class_Attr_Syntax objKeyDomNameAttrSyntax =
+  { PFC_IPCTYPE_UINT8, 0, 0, 1, 31, true, ""};
+  attr_syntax_map[DOMAIN_NAME_STR] = objKeyDomNameAttrSyntax;
+  Kt_Class_Attr_Syntax objKeySwitchIdAttrSyntax =
+  { PFC_IPCTYPE_UINT8, 0, 0, 1, 255, true, ""};
+  attr_syntax_map[SWITCH_ID_STR] = objKeySwitchIdAttrSyntax;
+  Kt_Class_Attr_Syntax objKeyPortIdAttrSyntax =
+  { PFC_IPCTYPE_UINT8, 0, 0, 1, 31, true, ""};
+  attr_syntax_map[PORT_ID_STR] = objKeyPortIdAttrSyntax;
+  Kt_Class_Attr_Syntax objKeyVlanIdAttrSyntax =
+  { PFC_IPCTYPE_UINT16, 1, 4095, 0, 0, true, ""};
+  attr_syntax_map[VLAN_ID_STR] = objKeyVlanIdAttrSyntax;
+  Kt_Class_Attr_Syntax objKeyMacAddrAttrSyntax =
+  { PFC_IPCTYPE_UINT8, 0, 0, 1, 6, true, ""};
+  attr_syntax_map[PORT_MAC_ADDRESS_STR] = objKeyMacAddrAttrSyntax;
+  attr_syntax_map_all[UNC_KT_DATAFLOW] = attr_syntax_map;
+}
+
+
+/** FindNeighbourCtr
+ * @Description : This function returns the neighbours of the given controller
+ * @param[in]   : OdbcmConnectionHandler, neighbour_ctr_key - key to find from
+ * map
+ * @param[out]  : found_nbrs - list of neighbours
+ * @return    : UncRespCode UNC_RC_SUCCESS if successfull or UNC_UPPL_RC_ERR*
+ *              if any Read failed
+ * */
+UncRespCode Kt_Dataflow::FindNeighbourCtr(OdbcmConnectionHandler *db_conn,
+             DataflowCmn *lastPfcNode,
+             boundary_val *neighbour_ctr_key, list<boundary_val> &found_nbrs,
+             string &ingress_bdry_id) {
+  pfc_log_trace("Entered into : %s", __func__);
+  UncRespCode read_status = UNC_RC_SUCCESS;
+  if (db_conn == NULL) {
+    pfc_log_error("db_conn is NULL");
+    PFC_ASSERT(false);
+  }
+  read_status = PrepareBoundaryMap(db_conn);
+  if (read_status != UNC_RC_SUCCESS)
+    return read_status;
+  if ((get_boundary_map())->empty()) {
+    pfc_log_debug("boundary_map is empty !! ");
+    return UNC_UPPL_RC_FAILURE;  // TODO(uppl): how to handle this error
+                              // at this stage.
+  }
+  read_status = getBoundaryPorts(lastPfcNode, neighbour_ctr_key,
+                                  found_nbrs, ingress_bdry_id);
+  if (read_status != UNC_RC_SUCCESS)
+    pfc_log_debug("found-Neighbour count = %" PFC_PFMT_SIZE_T,
+                  found_nbrs.size());
+  return read_status;
+}
+
+/** PrepareBoundaryMap
+ * @Description : This function prepare the Boudary map by reading Bdry table
+ * @param[in] : OdbcmConnectionHandler,
+ * @return    : UncRespCode UNC_RC_SUCCESS if successfull or UNC_UPPL_RC_ERR*
+ *              if any Read failed
+ * */
+UncRespCode Kt_Dataflow::PrepareBoundaryMap
+                            (OdbcmConnectionHandler *db_conn) {
+  pfc_log_trace("Entered into : %s map.size=%" PFC_PFMT_SIZE_T,
+                 __func__, boundary_map_.size());
+  if (boundary_map_.size() > 0) return UNC_RC_SUCCESS;
+  //  ReadInternal of Kt_Boundary
+  Kt_Boundary obj_Kt_Boundary;
+  key_boundary_t *obj_key_boundary = new key_boundary_t;
+  memset(obj_key_boundary, 0, sizeof(key_boundary_t));
+  string boundary_id = "";
+  memcpy(obj_key_boundary->boundary_id, boundary_id.c_str(),
+         boundary_id.length());
+  void* key_struct = reinterpret_cast<void*>(obj_key_boundary);
+  vector<void *> vect_key_boundary;
+  vect_key_boundary.push_back(key_struct);
+  vector<void *> vect_val_boundary;
+  // vector which will holds the boundary values
+  vector<boundary_record>* bdry_rec_vect = get_boundary_tbl_vect();
+  vector<boundary_record>::iterator bdry_rec_vect_iter;
+  UncRespCode ret_code = obj_Kt_Boundary.ReadInternal(db_conn,
+                                      vect_key_boundary,
+                                      vect_val_boundary,
+                                      UNC_DT_RUNNING,
+                                      UNC_OP_READ_SIBLING_BEGIN);
+
+  if (NULL != obj_key_boundary) {
+    delete obj_key_boundary;
+    pfc_log_debug("obj_key_boundary is deleted");
+    obj_key_boundary = NULL;
+  }
+  if (ret_code != UNC_RC_SUCCESS) {
+    pfc_log_debug("Read of Boundary failed");
+    if (ret_code == UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE)
+      return UNC_RC_SUCCESS;
+    return ret_code;
+  }
+  // Fill boundary_tbl_vect_ vector-using the ReadInternal return val structrue
+  for (uint32_t index1 = 0;
+        index1 < vect_key_boundary.size();
+        ++index1) {
+     val_boundary_st *val_boundary_vect = reinterpret_cast <val_boundary_st*>
+                                           (vect_val_boundary[index1]);
+     key_boundary_t *key_boundary_vect = reinterpret_cast <key_boundary_t*>
+                                           (vect_key_boundary[index1]);
+
+     boundary_record obj_bdry_rec;
+     memset(&obj_bdry_rec, '\0', sizeof(obj_bdry_rec));
+     memcpy(obj_bdry_rec.boundary_id, key_boundary_vect->boundary_id,
+            sizeof(obj_bdry_rec.boundary_id));
+     memcpy(obj_bdry_rec.ctr_name1,
+            val_boundary_vect->boundary.controller_name1,
+            sizeof(obj_bdry_rec.ctr_name1));
+     memcpy(obj_bdry_rec.ctr_name2,
+            val_boundary_vect->boundary.controller_name2,
+            sizeof(obj_bdry_rec.ctr_name2));
+     memcpy(obj_bdry_rec.dom_name1, val_boundary_vect->boundary.domain_name1,
+            sizeof(obj_bdry_rec.dom_name1));
+     memcpy(obj_bdry_rec.dom_name2, val_boundary_vect->boundary.domain_name2,
+            sizeof(obj_bdry_rec.dom_name2));
+     memcpy(obj_bdry_rec.lp_id1, val_boundary_vect->boundary.logical_port_id1,
+            sizeof(obj_bdry_rec.lp_id1));
+     memcpy(obj_bdry_rec.lp_id2, val_boundary_vect->boundary.logical_port_id2,
+            sizeof(obj_bdry_rec.lp_id2));
+     if ((obj_bdry_rec.lp_id1[0] == '\0') ||
+         (val_boundary_vect->oper_status == UPPL_BOUNDARY_OPER_UNKNOWN))
+       obj_bdry_rec.is_filled1 = true;
+     else
+       obj_bdry_rec.is_filled1 = false;
+     if ((obj_bdry_rec.lp_id2[0] == '\0') ||
+         (val_boundary_vect->oper_status == UPPL_BOUNDARY_OPER_UNKNOWN))
+       obj_bdry_rec.is_filled2 = true;
+     else
+       obj_bdry_rec.is_filled2 = false;
+     bdry_rec_vect->push_back(obj_bdry_rec);
+     pfc_log_debug("Inserting into vector<boundary_record>:%d", index1);
+
+     // Clearing the key and value void* in the vector.
+     ::operator delete(vect_val_boundary[index1]);
+     ::operator delete(vect_key_boundary[index1]);
+  }
+  // Clearing the vectors
+  vect_val_boundary.clear();
+  vect_key_boundary.clear();
+  // Update switch_id port_type and port_id into boundary_tbl_vect_
+  for (uint16_t index2 = 0; index2 < bdry_rec_vect->size(); ++index2) {
+    string ctr_name, dom_name, lp_id, lp_map_key="";
+    string separator = "&";
+    stringstream ss;
+    boundary_record obj_bdry_rec = (*bdry_rec_vect)[index2];
+    if (obj_bdry_rec.is_filled1 == false) {
+      ctr_name = (const char*)obj_bdry_rec.ctr_name1;
+      dom_name = (const char*)obj_bdry_rec.dom_name1;
+      ret_code = PrepareCollectiveLPMap(db_conn, ctr_name, dom_name);
+      if (ret_code != UNC_RC_SUCCESS) {
+        pfc_log_info("Read of LP failed");
+        return ret_code;
+      }
+      lp_id = (const char*)obj_bdry_rec.lp_id1;
+      ss << ctr_name <<separator << dom_name << separator << lp_id;
+      string lp_map_key = ss.str();
+      ret_code = update_boundary_tbl_vect(lp_map_key, index2,
+                 (uint8_t)UPPL_LEFT_PART);
+      if (ret_code != UNC_RC_SUCCESS) {
+        pfc_log_info("update_boundary_tbl_vect returned failure");
+        return ret_code;
+      }
+    }
+    if (obj_bdry_rec.is_filled2 == false) {
+      ctr_name = (const char*)obj_bdry_rec.ctr_name2;
+      dom_name = (const char*)obj_bdry_rec.dom_name2;
+      ret_code = PrepareCollectiveLPMap(db_conn, ctr_name, dom_name);
+      if (ret_code != UNC_RC_SUCCESS) {
+        pfc_log_info("Read of LP failed");
+        return ret_code;
+      }
+      ss.str(std::string());
+      lp_id = (const char*)obj_bdry_rec.lp_id2;
+      ss << ctr_name <<separator << dom_name << separator << lp_id;
+      string lp_map_key = ss.str();
+      ret_code = update_boundary_tbl_vect(lp_map_key, index2,
+                  (uint8_t)UPPL_RIGHT_PART);
+      if (ret_code != UNC_RC_SUCCESS) {
+        pfc_log_info("update_boundary_tbl_vect returned failure");
+        return ret_code;
+      }
+    }
+  }
+
+  bool to_be_continued = false;
+  do {
+    to_be_continued = false;
+    for (uint16_t index3 = 0; index3 < bdry_rec_vect->size(); ++index3) {
+      if (((*bdry_rec_vect)[index3].is_filled1 == false) ||
+         ((*bdry_rec_vect)[index3].is_filled2 == false)) {
+        pfc_log_debug("Switch id and Port id are not filled, hence"
+             " removing the entry from the boundary vector");
+        bdry_rec_vect->erase(bdry_rec_vect->begin() + index3);
+        to_be_continued = true;
+        break;
+      }
+    }
+  } while ( to_be_continued == true);
+
+  /*
+  //  For testing
+  for (uint16_t index2 = 0; index2 < bdry_rec_vect->size(); ++index2) {
+    boundary_record test = (*bdry_rec_vect)[index2];
+    stringstream ss1;
+    stringstream ss2;
+    stringstream ss3;
+    stringstream ss4;
+    ss1 << test.ctr_name1 << "&" << test.dom_name1 << "&" << test.lp_id1;
+    ss2 << test.sw_id1 << "&" << test.port_id1;
+    ss3 << test.ctr_name2 << "&" << test.dom_name2 << "&" <<test.lp_id2;
+    ss4 << test.sw_id2 << "&" << test.port_id2;
+    pfc_log_debug("entry in bdry vector first half:%s", ss1.str().c_str());
+    pfc_log_debug("entry in bdry vector first half swidportid:%s",
+                 ss2.str().c_str());
+    pfc_log_debug("entry in bdry vector second half:%s", ss3.str().c_str());
+    pfc_log_debug("entry in bdry vector second half swidportid:%s",
+                 ss4.str().c_str());
+  }
+  */
+  ret_code = fill_boundary_map(db_conn);
+  if (ret_code != UNC_RC_SUCCESS) {
+    pfc_log_info("Parsing of Bdry value structures failed");
+    return ret_code;
+  }
+  return ret_code;
+}
+
+/**
+ * @Description : This function get the all possible neighbout boundary
+ * ports from the boundary map
+ * @param[in] :  boundary_val *neighbour_ctr_key
+ * @param[in] :  list<boundary_val> &found_nbrs
+ * @return    : UncRespCode UNC_RC_SUCCESS if successfull or UNC_UPPL_RC_ERR*
+ * */
+UncRespCode Kt_Dataflow::getBoundaryPorts(DataflowCmn *lastPfcNode,
+               boundary_val *neighbour_ctr_key,
+               list<boundary_val> &found_nbrs,
+               string &ingress_bdry_id) {
+  std::pair<multimap<string, boundary_val>::iterator,
+           multimap<string, boundary_val>::iterator> bdry_map_range_iter;
+  multimap<string, boundary_val> *bdry_map = get_boundary_map();
+  multimap<string, boundary_val>::iterator bdry_map_iter;
+  string separator = "&";
+  string new_map_key_str = "";
+  std::stringstream ss;
+  ss.str("");
+  if (strlen((const char*) neighbour_ctr_key->controller_name) != 0)
+    ss << neighbour_ctr_key->controller_name;
+  else
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
+  if (strlen((const char*) neighbour_ctr_key->domain_name) != 0)
+    ss << separator << neighbour_ctr_key->domain_name;
+  else
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
+  ss << separator << neighbour_ctr_key->lp_str.switch_id;
+  ss << separator << neighbour_ctr_key->lp_str.port_id;
+  new_map_key_str = ss.str();
+  pfc_log_info("key to find in bdry map:%s", new_map_key_str.c_str());
+
+  bdry_map->begin();
+  // Returns multiple neighbours
+  bdry_map_range_iter = bdry_map->equal_range(new_map_key_str);
+  for (bdry_map_iter = bdry_map_range_iter.first;
+       bdry_map_iter != bdry_map_range_iter.second; bdry_map_iter++) {
+    pfc_log_trace("Inside interation of Bdry map");
+    if (bdry_map_iter == bdry_map->end()) {
+      pfc_log_debug("Element does not exist");
+      return UNC_UPPL_RC_FAILURE;
+    }
+    boundary_val obj_bdry_val = bdry_map_iter->second;
+    if ((!ingress_bdry_id.empty()) &&
+        (strcmp((const char*)obj_bdry_val.boundary_id,
+                ingress_bdry_id.c_str()) == 0) &&
+        (lastPfcNode->is_vlan_src_mac_changed_ != true)) {
+      pfc_log_debug("Ignoring originating boundary ports");
+    } else {
+      found_nbrs.push_back(obj_bdry_val);
+      pfc_log_trace("Pushing back an elemnt");
+    }
+  }
+  pfc_log_trace("Count of found neighbours is %" PFC_PFMT_SIZE_T,
+                found_nbrs.size());
+  if (found_nbrs.empty()) {
+    pfc_log_debug("No Neighbour found");
+    return UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
+  }
+  return UNC_RC_SUCCESS;
+}
+
+/** update_boundary_tbl_vect
+ * @Description : This function fills the switch id and port id from LP
+ * and LMP map
+ * @param[in] : lp_map_key-key to find from LP map
+ *  bdry_iter_pos-iterator position
+ *  part-indicates which section of bdry table
+ * @return    : UncRespCode UNC_RC_SUCCESS if successfull or UNC_UPPL_RC_ERR*
+ *              if any Read failed
+ * */
+UncRespCode Kt_Dataflow::update_boundary_tbl_vect(string lp_map_key,
+                           uint16_t bdry_iter_pos, uint8_t part) {
+  pfc_log_trace("Entered into : %s", __func__);
+  map<string, lp_struct>* lp_map = get_LP_map();
+  map<string, lp_struct>::iterator lp_map_iter;
+  vector<boundary_record>* bdry_rec_vect = get_boundary_tbl_vect();
+  stringstream ss;
+  uint16_t bdry_iter_pos_cpy = bdry_iter_pos;
+  boundary_record obj_bdry_iter_pos;
+  if (bdry_rec_vect->empty()) {
+    pfc_log_error("The vector is empty");
+    return UNC_UPPL_RC_FAILURE;
+  }
+  obj_bdry_iter_pos = (*bdry_rec_vect)[bdry_iter_pos];
+  pfc_log_debug("Key to find in LP map:%s", lp_map_key.c_str());
+  lp_map_iter = lp_map->find(lp_map_key);
+  if (lp_map_iter == lp_map->end()) {
+    pfc_log_debug("No entry in LP Map");
+    return UNC_RC_SUCCESS;
+  }
+  pfc_log_info("Key found from LP map:%s", lp_map_key.c_str());
+  if (lp_map_iter->second.port_type == UPPL_LP_SUBDOMAIN ||
+     lp_map_iter->second.port_type == UPPL_LP_TRUNK_PORT) {
+    multimap<string, lmp_struct>* lmp_map = get_LMP_map();
+    multimap<string, lmp_struct>::iterator lmp_map_iter;
+    std::pair<multimap<string, lmp_struct>::iterator,
+              multimap<string, lmp_struct>::iterator>lmp_map_iter2;
+    lmp_map_iter2 = lmp_map->equal_range(lp_map_key);
+    for (lmp_map_iter = lmp_map_iter2.first;
+        lmp_map_iter != lmp_map_iter2.second; lmp_map_iter++) {
+      if (part == UPPL_LEFT_PART) {
+        memcpy(obj_bdry_iter_pos.sw_id1, lmp_map_iter->second.switch_id,
+               sizeof(obj_bdry_iter_pos.sw_id1));
+        memcpy(obj_bdry_iter_pos.port_id1, lmp_map_iter->second.port_id,
+               sizeof(obj_bdry_iter_pos.port_id1));
+        obj_bdry_iter_pos.port_type1 = lp_map_iter->second.port_type;
+        obj_bdry_iter_pos.is_filled1 = true;
+        ss.str(std::string());
+        ss << obj_bdry_iter_pos.sw_id1 << " " << obj_bdry_iter_pos.port_id1
+                                    << " " << obj_bdry_iter_pos.is_filled1;
+        pfc_log_debug("part 1 LMP:%s", ss.str().c_str());
+      } else if (part == UPPL_RIGHT_PART) {
+        memcpy(obj_bdry_iter_pos.sw_id2, lmp_map_iter->second.switch_id,
+               sizeof(obj_bdry_iter_pos.sw_id2));
+        memcpy(obj_bdry_iter_pos.port_id2, lmp_map_iter->second.port_id,
+               sizeof(obj_bdry_iter_pos.port_id2));
+        obj_bdry_iter_pos.is_filled2 = true;
+        obj_bdry_iter_pos.port_type2 = lp_map_iter->second.port_type;
+        ss.str(std::string());
+        ss << obj_bdry_iter_pos.sw_id1 << " " << obj_bdry_iter_pos.port_id1
+                                   << "" << obj_bdry_iter_pos.is_filled2;
+        pfc_log_debug("part 2 LMP:%s", ss.str().c_str());
+      }
+      if (lmp_map_iter == lmp_map_iter2.first) {
+        (*bdry_rec_vect)[bdry_iter_pos] = obj_bdry_iter_pos;
+        pfc_log_info("Copying the updated object to the vector object");
+      } else {
+        // Avoiding insert of first instance as already one object inserted
+        bdry_rec_vect->push_back(obj_bdry_iter_pos);
+        pfc_log_info("Inserting additional record for LMP port");
+      }
+    }
+    lmp_map->clear();  // Clearing LMP map
+  } else if (lp_map_iter->second.port_type == UPPL_LP_SWITCH) {
+    multimap<string, port_struct>* pp_map = get_PP_map();
+    multimap<string, port_struct>::iterator pp_map_iter;
+    std::pair<multimap<string, port_struct>::iterator,
+              multimap<string, port_struct>::iterator>pp_map_iter2;
+    pp_map_iter2 = pp_map->equal_range(lp_map_key);
+    for (pp_map_iter = pp_map_iter2.first;
+        pp_map_iter != pp_map_iter2.second; pp_map_iter++) {
+      if (part == UPPL_LEFT_PART) {
+        memcpy(obj_bdry_iter_pos.sw_id1, lp_map_iter->second.switch_id,
+               sizeof(obj_bdry_iter_pos.sw_id1));
+        memcpy(obj_bdry_iter_pos.port_id1, pp_map_iter->second.port_id,
+               sizeof(obj_bdry_iter_pos.port_id1));
+        obj_bdry_iter_pos.port_type1 = lp_map_iter->second.port_type;
+        obj_bdry_iter_pos.is_filled1 = true;
+        ss.str(std::string());
+        ss << obj_bdry_iter_pos.sw_id1 << " " << obj_bdry_iter_pos.port_id1
+                                    << " " << obj_bdry_iter_pos.is_filled1;
+        pfc_log_info("part 1 PP:%s", ss.str().c_str());
+      } else if (part == UPPL_RIGHT_PART) {
+        memcpy(obj_bdry_iter_pos.sw_id2, lp_map_iter->second.switch_id,
+               sizeof(obj_bdry_iter_pos.sw_id2));
+        memcpy(obj_bdry_iter_pos.port_id2, pp_map_iter->second.port_id,
+               sizeof(obj_bdry_iter_pos.port_id2));
+        obj_bdry_iter_pos.is_filled2 = true;
+        obj_bdry_iter_pos.port_type2 = lp_map_iter->second.port_type;
+        ss.str(std::string());
+        ss << obj_bdry_iter_pos.sw_id1 << " " << obj_bdry_iter_pos.port_id1
+                                   << "" << obj_bdry_iter_pos.is_filled2;
+        pfc_log_info("part 2 PP:%s", ss.str().c_str());
+      }
+      if (pp_map_iter == pp_map_iter2.first) {
+        (*bdry_rec_vect)[bdry_iter_pos] = obj_bdry_iter_pos;
+        pfc_log_info("Copying the updated object to the vector object");
+      } else {
+        // Avoiding insert of first instance as already one object inserted
+        bdry_rec_vect->push_back(obj_bdry_iter_pos);
+        pfc_log_info("Inserting additional record for Physical ports"
+                      " of the given switch");
+      }
+    }
+    pp_map->clear();  // Clearing PP map
+  } else { /*for lp port*/
+    if (part == UPPL_LEFT_PART) {
+      memcpy(obj_bdry_iter_pos.sw_id1, lp_map_iter->second.switch_id,
+             sizeof(obj_bdry_iter_pos.sw_id1));
+      memcpy(obj_bdry_iter_pos.port_id1, lp_map_iter->second.port_id,
+             sizeof(obj_bdry_iter_pos.port_id1));
+      obj_bdry_iter_pos.is_filled1 = true;
+      obj_bdry_iter_pos.port_type1 = lp_map_iter->second.port_type;
+      ss.str(std::string());
+      ss << obj_bdry_iter_pos.sw_id1 << " " << obj_bdry_iter_pos.port_id1;
+      pfc_log_info("part 1 LP test print:%s", ss.str().c_str());
+    } else if (part == UPPL_RIGHT_PART) {
+      memcpy(obj_bdry_iter_pos.sw_id2, lp_map_iter->second.switch_id,
+             sizeof(obj_bdry_iter_pos.sw_id2));
+      memcpy(obj_bdry_iter_pos.port_id2, lp_map_iter->second.port_id,
+             sizeof(obj_bdry_iter_pos.port_id2));
+      obj_bdry_iter_pos.port_type2 = lp_map_iter->second.port_type;
+      obj_bdry_iter_pos.is_filled2 = true;
+      ss.str(std::string());
+      ss << obj_bdry_iter_pos.sw_id1 << " " << obj_bdry_iter_pos.port_id1;
+      pfc_log_info("part 2 LP:%s", ss.str().c_str());
+    }
+    (*bdry_rec_vect)[bdry_iter_pos] = obj_bdry_iter_pos;
+  for (uint16_t index = bdry_iter_pos+1;
+      index < bdry_rec_vect->size(); ++index) {
+    boundary_record obj_bdry_rec = (*bdry_rec_vect)[index];
+    if (part == UPPL_LEFT_PART) {
+      if ((!memcmp(obj_bdry_rec.ctr_name1, obj_bdry_iter_pos.ctr_name1,
+              sizeof(obj_bdry_iter_pos.ctr_name1))) &&
+         (!memcmp(obj_bdry_rec.dom_name1, obj_bdry_iter_pos.dom_name1,
+                  sizeof(obj_bdry_iter_pos.dom_name1)))&&
+         (!memcmp(obj_bdry_rec.lp_id1, obj_bdry_iter_pos.lp_id1,
+                  sizeof(obj_bdry_iter_pos.lp_id1)))) {
+        pfc_log_debug("Copying the info from already filled vector entry");
+        memcpy(obj_bdry_rec.sw_id1, obj_bdry_iter_pos.sw_id1,
+               sizeof(obj_bdry_rec.sw_id1));
+        memcpy(obj_bdry_rec.port_id1, obj_bdry_iter_pos.port_id1,
+               sizeof(obj_bdry_rec.port_id1));
+        obj_bdry_rec.port_type1 = obj_bdry_iter_pos.port_type1;
+        obj_bdry_rec.is_filled1 = true;
+        ss.str(std::string());
+        ss<< obj_bdry_rec.sw_id1 << " " << obj_bdry_rec.port_id1
+          << " " << PhyUtil::uint8tostr(obj_bdry_rec.port_type1);
+        pfc_log_info("part 1 LP remaining:%s", ss.str().c_str());
+      } else if ((!memcmp(obj_bdry_rec.ctr_name2, obj_bdry_iter_pos.ctr_name1,
+                         sizeof(obj_bdry_iter_pos.ctr_name1))) &&
+                 (!memcmp(obj_bdry_rec.dom_name2, obj_bdry_iter_pos.dom_name1,
+                          sizeof(obj_bdry_iter_pos.dom_name1))) &&
+                 (!memcmp(obj_bdry_rec.lp_id2, obj_bdry_iter_pos.lp_id1,
+                          sizeof(obj_bdry_iter_pos.lp_id1)))) {
+        pfc_log_debug("Copying the info from already filled vector entry");
+        memcpy(obj_bdry_rec.sw_id2, obj_bdry_iter_pos.sw_id1,
+               sizeof(obj_bdry_rec.sw_id1));
+        memcpy(obj_bdry_rec.port_id2, obj_bdry_iter_pos.port_id1,
+               sizeof(obj_bdry_rec.port_id1));
+        obj_bdry_rec.port_type2 = obj_bdry_iter_pos.port_type1;
+        obj_bdry_rec.is_filled2 = true;
+      }
+    } else if (part == UPPL_RIGHT_PART) {
+      if ((!memcmp(obj_bdry_rec.ctr_name1, obj_bdry_iter_pos.ctr_name2,
+              sizeof(obj_bdry_iter_pos.ctr_name2))) &&
+         (!memcmp(obj_bdry_rec.dom_name1, obj_bdry_iter_pos.dom_name2,
+                  sizeof(obj_bdry_iter_pos.dom_name2))) &&
+         (!memcmp(obj_bdry_rec.lp_id1, obj_bdry_iter_pos.lp_id2,
+                  sizeof(obj_bdry_iter_pos.lp_id2)))) {
+        pfc_log_debug("Copying the info from already filled vector entry");
+        memcpy(obj_bdry_rec.sw_id1, obj_bdry_iter_pos.sw_id2,
+               sizeof(obj_bdry_rec.sw_id1));
+        memcpy(obj_bdry_rec.port_id1, obj_bdry_iter_pos.port_id2,
+               sizeof(obj_bdry_rec.port_id1));
+        obj_bdry_rec.port_type1 = obj_bdry_iter_pos.port_type2;
+        obj_bdry_rec.is_filled1 = true;
+        ss.str(std::string());
+        ss << obj_bdry_rec.sw_id1 << " " << obj_bdry_rec.port_id1;
+        pfc_log_info("part 2 LP remaining:%s", ss.str().c_str());
+
+      } else if ((!memcmp(obj_bdry_rec.ctr_name2, obj_bdry_iter_pos.ctr_name2,
+                         sizeof(obj_bdry_iter_pos.ctr_name2))) &&
+                 (!memcmp(obj_bdry_rec.dom_name2, obj_bdry_iter_pos.dom_name2,
+                          sizeof(obj_bdry_iter_pos.dom_name2))) &&
+                 (!memcmp(obj_bdry_rec.lp_id2, obj_bdry_iter_pos.lp_id2,
+                          sizeof(obj_bdry_iter_pos.lp_id2)))) {
+        pfc_log_debug("Copying the info from already filled vector entry");
+        memcpy(obj_bdry_rec.sw_id2, obj_bdry_iter_pos.sw_id2,
+               sizeof(obj_bdry_rec.sw_id1));
+        memcpy(obj_bdry_rec.port_id2, obj_bdry_iter_pos.port_id2,
+               sizeof(obj_bdry_rec.port_id1));
+        obj_bdry_rec.port_type2 = obj_bdry_iter_pos.port_type2;
+        obj_bdry_rec.is_filled2 = true;
+      }
+    }
+    (*bdry_rec_vect)[index] = obj_bdry_rec;
+  }
+  }
+  bdry_iter_pos = bdry_iter_pos_cpy;  // Setting back the position
+  /*
+  //  For Testing
+  stringstream ss1;
+  stringstream ss2;
+  ss1 << obj_bdry_iter_pos.boundary_id << ";" << obj_bdry_iter_pos.ctr_name1
+      << "&" << obj_bdry_iter_pos.dom_name1
+      << "&" << obj_bdry_iter_pos.sw_id1 << "&" << obj_bdry_iter_pos.port_id1;
+  ss2 << obj_bdry_iter_pos.ctr_name2 << "&" << obj_bdry_iter_pos.dom_name2
+      << "&" << obj_bdry_iter_pos.sw_id2 << "&" << obj_bdry_iter_pos.port_id2;
+  pfc_log_info("bdry record first half inside FillSwitchId func:%s",
+               ss1.str().c_str());
+  pfc_log_info("bdry record second half inside FillSwitchId func:%s",
+               ss2.str().c_str());
+  */
+  lp_map->clear();  // Clearing LP map
+  return UNC_RC_SUCCESS;
+}
+
+
+/** PrepareCollectiveLPMap
+ * @Description : This function build the LP map by reading the LP table
+ * @param[in] : OdbcmConnectionHandler,
+ * ctr_name-controller_name
+ * dom_name-domain_name
+ * @return    : UncRespCode UNC_RC_SUCCESS if successfull or UNC_UPPL_RC_ERR*
+ *              if any Read failed
+ * */
+UncRespCode Kt_Dataflow::PrepareCollectiveLPMap(
+              OdbcmConnectionHandler *db_conn, string ctr_name,
+              string dom_name) {
+  pfc_log_trace("Entered into : %s", __func__);
+  UncRespCode read_status = UNC_RC_SUCCESS;
+  map<string, lp_struct>* lp_map = get_LP_map();
+  map<string, lp_struct>::iterator lp_map_iter;
+  // ReadInternal of Kt_LogicalPort
+  Kt_LogicalPort obj_Kt_LogicalPort;
+  key_logical_port_t *obj_key_logical_port = new key_logical_port_t;
+  memset(obj_key_logical_port, 0, sizeof(key_logical_port_t));
+  memcpy(obj_key_logical_port->domain_key.ctr_key.controller_name,
+         ctr_name.c_str(),
+         ctr_name.length());
+  memcpy(obj_key_logical_port->domain_key.domain_name,
+         dom_name.c_str(),
+         dom_name.length());
+  string port_id = "";
+  memcpy(obj_key_logical_port->port_id,
+         port_id.c_str(),
+         port_id.length());
+  void* key_struct = reinterpret_cast<void*>(obj_key_logical_port);
+  vector<void *> vect_key_lp;
+  vect_key_lp.push_back(key_struct);
+  vector<void *> vect_val_lp;
+
+  read_status = obj_Kt_LogicalPort.ReadInternal(db_conn,
+                                      vect_key_lp,
+                                      vect_val_lp,
+                                      UNC_DT_RUNNING,
+                                      UNC_OP_READ_SIBLING_BEGIN);
+  delete obj_key_logical_port;
+  if (read_status != UNC_RC_SUCCESS) {
+    pfc_log_info("Read of Logical Ports failed");
+    if (read_status == UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE)
+      return UNC_RC_SUCCESS;
+    return read_status;
+  }
+  // Traversing LP values and building the LP map
+  unsigned int index_lp = 0;
+  for (; index_lp < vect_key_lp.size();
+        ++index_lp) {
+    key_logical_port_t *key_lp = reinterpret_cast<key_logical_port_t *>
+                                    (vect_key_lp[index_lp]);
+    string logical_port_id = (const char *)key_lp->port_id;
+    string ctr_name1 = (const char *)key_lp->domain_key.ctr_key.controller_name;
+    string dom_name1 = (const char *)key_lp->domain_key.domain_name;
+    std::stringstream ss;
+    string separator = "&";
+    ss << ctr_name1 << separator << dom_name1 << separator << logical_port_id;
+    string lp_map_key = ss.str();
+    val_logical_port_st *val_lp_st = reinterpret_cast<val_logical_port_st *>
+                                    (vect_val_lp[index_lp]);
+
+    lp_struct obj_lp_struct;
+    memset(&obj_lp_struct, '\0', sizeof(obj_lp_struct));
+    //  for non logical member port values
+    if ((val_lp_st->logical_port.port_type != UPPL_LP_TRUNK_PORT) &&
+       (val_lp_st->logical_port.port_type != UPPL_LP_SUBDOMAIN)) {
+      memcpy(obj_lp_struct.switch_id, val_lp_st->logical_port.switch_id,
+             sizeof(obj_lp_struct.switch_id));
+      if (val_lp_st->logical_port.port_type != UPPL_LP_SWITCH)
+        memcpy(obj_lp_struct.port_id, val_lp_st->logical_port.physical_port_id,
+             sizeof(obj_lp_struct.port_id));
+    }
+       // Checking the LP type and calling ReadInternal of LMP
+    if ((val_lp_st->logical_port.port_type == UPPL_LP_TRUNK_PORT) ||
+       (val_lp_st->logical_port.port_type == UPPL_LP_SUBDOMAIN)) {
+       string description = (const char *)val_lp_st->logical_port.description;
+       if (description == UPPL_LP_MAC_FORWARDING_DESC) {
+         // Clearing the key and value void* in the vector.
+         pfc_log_debug("LP Description is PF MAC Forwarding SubDomain");
+         ::operator delete(vect_val_lp[index_lp]);
+         ::operator delete(vect_key_lp[index_lp]);
+         continue;
+       }
+    }
+
+    obj_lp_struct.port_type = val_lp_st->logical_port.port_type;
+    lp_map->insert(std::pair<string, lp_struct>
+                          (lp_map_key, obj_lp_struct));
+
+       // Checking the LP type and calling ReadInternal of LMP
+    if ((val_lp_st->logical_port.port_type == UPPL_LP_TRUNK_PORT) ||
+       (val_lp_st->logical_port.port_type == UPPL_LP_SUBDOMAIN)) {
+      read_status = PrepareLMPMap(db_conn, key_lp);
+      /*if (read_status != UNC_RC_SUCCESS) {
+        pfc_log_info("Read of LMP failed");
+        if (read_status == UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE)
+          return UNC_RC_SUCCESS;
+        return read_status;
+      }*/
+    } else if (val_lp_st->logical_port.port_type == UPPL_LP_SWITCH) {
+      key_port_t *key_pt = new key_port_t;
+      memcpy(key_pt->sw_key.ctr_key.controller_name,
+             key_lp->domain_key.ctr_key.controller_name,
+             sizeof(key_lp->domain_key.ctr_key.controller_name));
+      memcpy(key_pt->sw_key.switch_id, val_lp_st->logical_port.switch_id,
+           sizeof(key_pt->sw_key.switch_id));
+      string phy_port_id = "";
+      memcpy(key_pt->port_id,
+                 phy_port_id.c_str(),
+                sizeof(key_pt->port_id));
+      read_status = PreparePPMap(db_conn, key_pt, lp_map_key);
+      delete key_pt;
+      /*if (read_status != UNC_RC_SUCCESS) {
+        pfc_log_info("Read of Ports failed");
+        if (read_status == UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE)
+          return UNC_RC_SUCCESS;
+        return read_status;
+      }*/
+    }
+
+    // Clearing the key and value void* in the vector.
+     ::operator delete(vect_val_lp[index_lp]);
+     ::operator delete(vect_key_lp[index_lp]);
+     if (read_status != UNC_RC_SUCCESS) {
+       if (read_status == UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE)
+         continue;
+       pfc_log_info("Read of Ports failed");
+       break;
+     }
+  }
+  for (index_lp = index_lp + 1 ; index_lp < vect_key_lp.size();
+                        ++index_lp) {
+    ::operator delete(vect_val_lp[index_lp]);
+    ::operator delete(vect_key_lp[index_lp]);
+  }
+  // Clearing the vectors
+  vect_val_lp.clear();
+  vect_key_lp.clear();
+  /*
+  for (lp_map_iter = lp_map->begin();
+       lp_map_iter != lp_map->end(); lp_map_iter++) {
+    string key = lp_map_iter->first;
+    lp_struct lp_st = lp_map_iter->second;
+    stringstream ss1;
+    ss1 << key << lp_st.switch_id << " " << lp_st.port_id;
+    pfc_log_debug("LP map entry:%s", ss1.str().c_str());
+    pfc_log_debug("port type:%d", lp_st.port_type);
+  }
+  */
+  if (read_status == UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE)
+    return UNC_RC_SUCCESS;
+  return read_status;
+}
+
+
+/** PrepareCollectiveLMPMap
+ * @Description : This function build the LMP map by reading the LMP table
+ * @param[in] : OdbcmConnectionHandler,
+ * key_lp- LP key structure
+ * @return    : UncRespCode UNC_RC_SUCCESS if successfull or UNC_UPPL_RC_ERR*
+ *              if any Read failed
+ * */
+UncRespCode Kt_Dataflow::PrepareLMPMap(
+                 OdbcmConnectionHandler *db_conn, key_logical_port_t *key_lp) {
+  pfc_log_trace("Entered into : %s", __func__);
+  UncRespCode read_status = UNC_RC_SUCCESS;
+  multimap<string, lmp_struct>* lmp_map = get_LMP_map();
+  multimap<string, lmp_struct>::iterator lmp_map_iter;
+  // ReadInternal of Kt_LogicalMemberPort
+  Kt_LogicalMemberPort obj_Kt_LogicalMemberPort;
+  key_logical_member_port_t *obj_key_logical_member_port
+       = new key_logical_member_port_t;
+  memcpy(obj_key_logical_member_port->
+           logical_port_key.domain_key.ctr_key.controller_name,
+         key_lp->domain_key.ctr_key.controller_name,
+         sizeof(obj_key_logical_member_port->
+           logical_port_key.domain_key.ctr_key.controller_name));
+  memcpy(obj_key_logical_member_port->logical_port_key.domain_key.domain_name,
+         key_lp->domain_key.domain_name,
+         sizeof(obj_key_logical_member_port->
+         logical_port_key.domain_key.domain_name));
+  memcpy(obj_key_logical_member_port->logical_port_key.port_id,
+         key_lp->port_id,
+         sizeof(obj_key_logical_member_port->logical_port_key.port_id));
+  string switch_id = "";
+  memcpy(obj_key_logical_member_port->switch_id,
+         switch_id.c_str(),
+         sizeof(obj_key_logical_member_port->switch_id));
+  string phy_port_id = "";
+  memcpy(obj_key_logical_member_port->physical_port_id,
+         phy_port_id.c_str(),
+         sizeof(obj_key_logical_member_port->physical_port_id));
+  void *key_struct = reinterpret_cast<void*>(obj_key_logical_member_port);
+  vector<void *> vect_key_lmp;
+  vect_key_lmp.push_back(key_struct);
+  vector<void *> vect_val_lmp;
+  read_status = obj_Kt_LogicalMemberPort.ReadInternal(db_conn,
+                                      vect_key_lmp,
+                                      vect_val_lmp,
+                                      UNC_DT_RUNNING,
+                                      UNC_OP_READ_SIBLING_BEGIN);
+  delete obj_key_logical_member_port;
+  if (read_status != UNC_RC_SUCCESS) {
+    pfc_log_info("Read of LMP values failed");
+    return read_status;
+  }
+  // Traversing LMP values and building the LMP map
+  for (unsigned int index_lmp = 0;
+      index_lmp < vect_key_lmp.size();
+      ++index_lmp) {
+    key_logical_member_port_t *key_lmp =
+               reinterpret_cast<key_logical_member_port_t *>
+                               (vect_key_lmp[index_lmp]);
+    string lmp_logical_port_id =
+       (const char *)key_lmp->logical_port_key.port_id;
+    string lmp_controller_name =
+       (const char *)key_lmp->
+       logical_port_key.domain_key.ctr_key.controller_name;
+    string lmp_domain_name =
+       (const char *)key_lmp->logical_port_key.domain_key.domain_name;
+    stringstream ss;
+    string separator = "&";
+    ss << lmp_controller_name << separator << lmp_domain_name << separator
+       << lmp_logical_port_id;
+    string lmp_map_key = ss.str();
+    lmp_struct obj_lmp_struct;
+    memcpy(obj_lmp_struct.switch_id, key_lmp->switch_id,
+           sizeof(obj_lmp_struct.switch_id));
+    memcpy(obj_lmp_struct.port_id, key_lmp->physical_port_id,
+           sizeof(obj_lmp_struct.port_id));
+    lmp_map->insert(std::pair<string, lmp_struct>
+                          (lmp_map_key, obj_lmp_struct));
+    // Clearing the key and value void* in the vector.
+     ::operator delete(vect_key_lmp[index_lmp]);
+  }   // end of for loop of LMP vector traversal
+  /*for (lmp_map_iter = lmp_map->begin();
+      lmp_map_iter != lmp_map->end(); lmp_map_iter++) {
+    string key = lmp_map_iter->first;
+    lmp_struct lmp_st = lmp_map_iter->second;
+    stringstream ss1;
+    ss1 << key << " " << lmp_st.switch_id << " " << lmp_st.port_id;
+    pfc_log_debug("LMP map entry:%s", ss1.str().c_str());
+  }*/
+  return read_status;
+}
+
+/** PreparePPMap
+ * @Description : This function build the PP map by reading the LMP table
+ * @param[in] : OdbcmConnectionHandler,
+ * key_lp- Port key structure
+ * @return    : UncRespCode UNC_RC_SUCCESS if successfull or UNC_UPPL_RC_ERR*
+ *              if any Read failed
+ * */
+UncRespCode Kt_Dataflow::PreparePPMap(
+                 OdbcmConnectionHandler *db_conn, key_port_t *key_pt,
+                 string pp_map_key) {
+  pfc_log_trace("Entered into : %s", __func__);
+  UncRespCode read_status = UNC_RC_SUCCESS;
+  multimap<string, port_struct>* pp_map = get_PP_map();
+  multimap<string, port_struct>::iterator pp_map_iter;
+  // ReadInternal of Kt_Port
+  Kt_Port obj_Kt_Port;
+  void *key_struct = reinterpret_cast<void*>(key_pt);
+  vector<void *> vect_key_pp;
+  vect_key_pp.push_back(key_struct);
+  vector<void *> vect_val_pp;
+  read_status = obj_Kt_Port.ReadInternal(db_conn,
+                                      vect_key_pp,
+                                      vect_val_pp,
+                                      UNC_DT_RUNNING,
+                                      UNC_OP_READ_SIBLING_BEGIN);
+  if (read_status != UNC_RC_SUCCESS) {
+    pfc_log_info("Read of Physical Ports values failed");
+    return read_status;
+  }
+  // Traversing PP values and building the PP map
+  for (unsigned int index_pp = 0;
+      index_pp < vect_key_pp.size();
+      ++index_pp) {
+    key_port_t *key_pp =
+               reinterpret_cast<key_port_t *>
+                               (vect_key_pp[index_pp]);
+    // val_port_st_t* val_pp = reinterpret_cast<val_port_st_t*>
+    //                        (vect_val_pp[index_pp]);
+    port_struct obj_port_struct;
+    memcpy(obj_port_struct.port_id, key_pp->port_id,
+           sizeof(obj_port_struct.port_id));
+    pp_map->insert(std::pair<string, port_struct>
+                          (pp_map_key, obj_port_struct));
+    // Clearing the key and value void* in the vector.
+     ::operator delete(vect_key_pp[index_pp]);
+     ::operator delete(vect_val_pp[index_pp]);
+  }   // end of for loop of PP vector traversal
+  // Clearing the vectors
+  vect_val_pp.clear();
+  vect_key_pp.clear();
+  /*
+  for (pp_map_iter = pp_map->begin();
+      pp_map_iter != pp_map->end(); pp_map_iter++) {
+    string key = pp_map_iter->first;
+    port_struct pp_st = pp_map_iter->second;
+    stringstream ss1;
+    ss1 << key << " " << pp_st.port_id;
+    pfc_log_info("PP map entry:%s", ss1.str().c_str());
+  }
+  */
+  return read_status;
+}
+
+
+/** fill_boundary_map
+ * @Description : This function build the Bdry map by traversiong the vector
+ * @param[in] : OdbcmConnectionHandler,
+ * @return    : UncRespCode UNC_RC_SUCCESS if successfull or UNC_UPPL_RC_ERR*
+ *              if any Read failed
+ * */
+UncRespCode Kt_Dataflow::fill_boundary_map(
+                        OdbcmConnectionHandler* db_conn) {
+  pfc_log_trace("Entered into : %s", __func__);
+  UncRespCode ret_code = UNC_RC_SUCCESS;
+  multimap<string, boundary_val>* bdry_map = get_boundary_map();
+  multimap<string, boundary_val>::iterator bdry_map_iter;
+  vector<boundary_record>* bdry_rec_vect = get_boundary_tbl_vect();
+  vector<boundary_record>::iterator bdry_rec_vec_iter;
+  map<string, uint8_t> ctr_type_map;
+  string ctr_name, dom_name, lp_id, sw_id, port_id = "";
+  string separator = "&";
+  string mapkey_str = "";
+  std::stringstream ss;
+  ss.str("");
+  boundary_val obj_bdry_val;
+  memset(&obj_bdry_val, '\0', sizeof(obj_bdry_val));
+  //  Traversing the BDRY values and building the map
+  for (unsigned int index = 0;
+        index < bdry_rec_vect->size();
+        ++index) {
+    ss.str("");
+    mapkey_str = "";
+    boundary_record bdry_rec_st = (*bdry_rec_vect)[index];
+    ctr_name = (const char *)bdry_rec_st.ctr_name1;
+    dom_name = (const char *)bdry_rec_st.dom_name1;
+    sw_id = (const char *)bdry_rec_st.sw_id1;
+    port_id = (const char *)bdry_rec_st.port_id1;
+    ss << ctr_name << separator << dom_name << separator
+                          << sw_id << separator << port_id;
+    mapkey_str = ss.str();
+    string ctr2_name = (const char*)bdry_rec_st.ctr_name2;
+    unc_keytype_ctrtype_t ctr_type = UNC_CT_UNKNOWN;
+    if (ctr_type_map.find(ctr2_name) == ctr_type_map.end()) {
+      ret_code = PhyUtil::get_controller_type(
+               db_conn, ctr2_name,
+               ctr_type,
+              (unc_keytype_datatype_t)UNC_DT_RUNNING);
+      pfc_log_debug("Controller type - return code %d, value %s",
+                  ret_code, ctr2_name.c_str());
+      if (ret_code != UNC_RC_SUCCESS) {
+        pfc_log_error("error in getting the controller type: %d", ret_code);
+        if (ret_code == UNC_UPLL_RC_ERR_DB_ACCESS) {
+          pfc_log_debug("Returning as there is error in DB access");
+          return ret_code;
+        } else {
+          ret_code = UNC_RC_SUCCESS;
+          continue;
+        }
+      }
+      ctr_type_map.insert(std::pair<string, uint8_t>(ctr2_name, ctr_type));
+      obj_bdry_val.controller_type = ctr_type;
+    } else {
+      obj_bdry_val.controller_type = (ctr_type_map.find(ctr2_name))->second;
+    }
+    memcpy(obj_bdry_val.controller_name, bdry_rec_st.ctr_name2,
+           sizeof(obj_bdry_val.controller_name));
+    memcpy(obj_bdry_val.domain_name, bdry_rec_st.dom_name2,
+           sizeof(obj_bdry_val.domain_name));
+    memcpy(obj_bdry_val.logical_port_id, bdry_rec_st.lp_id2,
+           sizeof(obj_bdry_val.logical_port_id));
+    memcpy(obj_bdry_val.lp_str.switch_id, bdry_rec_st.sw_id2,
+           sizeof(obj_bdry_val.lp_str.switch_id));
+    memcpy(obj_bdry_val.lp_str.port_id, bdry_rec_st.port_id2,
+           sizeof(obj_bdry_val.lp_str.port_id));
+    obj_bdry_val.lp_str.port_type = bdry_rec_st.port_type2;
+    memcpy(obj_bdry_val.boundary_id, bdry_rec_st.boundary_id,
+                           sizeof(bdry_rec_st.boundary_id));
+    bool isPresentAlready = false;
+    multimap<string, boundary_val>::iterator tmp_iter;
+    for (tmp_iter = bdry_map->begin(); tmp_iter != bdry_map->end();
+                tmp_iter ++) {
+      if (tmp_iter->first == mapkey_str) {
+        bool comp_status = false;
+        UPPL_COMPARE_STRUCT(tmp_iter->second, obj_bdry_val, comp_status);
+        if (comp_status == true) {
+          isPresentAlready = true;
+          break;
+        }
+      }
+    }
+    if (isPresentAlready == false) {
+      bdry_map->insert(std::pair<string, boundary_val>
+                             (mapkey_str, obj_bdry_val));
+    }
+    memset(&obj_bdry_val, '\0', sizeof(obj_bdry_val));
+    ctr_name = (const char *)bdry_rec_st.ctr_name2;
+    dom_name = (const char *)bdry_rec_st.dom_name2;
+    sw_id = (const char *)bdry_rec_st.sw_id2;
+    port_id = (const char *)bdry_rec_st.port_id2;
+    ss.str("");
+    mapkey_str = "";
+    ss << ctr_name << separator << dom_name << separator
+                       << sw_id << separator << port_id;
+    mapkey_str = ss.str();
+    ctr2_name = (const char*)bdry_rec_st.ctr_name1;
+    ctr_type = UNC_CT_UNKNOWN;
+    if (ctr_type_map.find(ctr2_name) == ctr_type_map.end()) {
+      ret_code = PhyUtil::get_controller_type(
+               db_conn, ctr2_name,
+               ctr_type,
+              (unc_keytype_datatype_t)UNC_DT_RUNNING);
+      pfc_log_debug("Controller type - return code %d, value %s",
+                ret_code, ctr2_name.c_str());
+      if (ret_code != UNC_RC_SUCCESS) {
+        pfc_log_error("error in getting the controller type: %d", ret_code);
+        if (ret_code == UNC_UPLL_RC_ERR_DB_ACCESS) {
+          pfc_log_debug("Returning as there is error in DB Access");
+          return ret_code;
+        } else  {
+          ret_code = UNC_RC_SUCCESS;
+          continue;
+        }
+      }
+      ctr_type_map.insert(std::pair<string, uint8_t>(ctr2_name, ctr_type));
+      obj_bdry_val.controller_type = (uint8_t)ctr_type;
+    } else {
+      obj_bdry_val.controller_type = (ctr_type_map.find(ctr2_name))->second;
+    }
+    memcpy(obj_bdry_val.controller_name, bdry_rec_st.ctr_name1,
+           sizeof(obj_bdry_val.controller_name));
+    memcpy(obj_bdry_val.domain_name, bdry_rec_st.dom_name1,
+           sizeof(obj_bdry_val.domain_name));
+    memcpy(obj_bdry_val.logical_port_id, bdry_rec_st.lp_id1,
+           sizeof(obj_bdry_val.logical_port_id));
+    memcpy(obj_bdry_val.lp_str.switch_id, bdry_rec_st.sw_id1,
+           sizeof(obj_bdry_val.lp_str.switch_id));
+    memcpy(obj_bdry_val.lp_str.port_id, bdry_rec_st.port_id1,
+           sizeof(obj_bdry_val.lp_str.port_id));
+        obj_bdry_val.lp_str.port_type = bdry_rec_st.port_type1;
+    memcpy(obj_bdry_val.boundary_id, bdry_rec_st.boundary_id,
+                           sizeof(bdry_rec_st.boundary_id));
+
+    isPresentAlready = false;
+    for (tmp_iter = bdry_map->begin(); tmp_iter != bdry_map->end();
+          tmp_iter ++) {
+      if (tmp_iter->first == mapkey_str) {
+        bool comp_status = false;
+        UPPL_COMPARE_STRUCT(tmp_iter->second, obj_bdry_val, comp_status);
+        if (comp_status == true) {
+          isPresentAlready = true;
+          break;
+        }
+      }
+    }
+    if (isPresentAlready == false) {
+      bdry_map->insert(std::pair<string, boundary_val>
+                            (mapkey_str, obj_bdry_val));
+    }
+  }  // End of traversal of Bdry vect values
+  bdry_rec_vect->clear();
+  ctr_type_map.clear();
+  // For Testing printing boundary map
+  for (bdry_map_iter = bdry_map->begin(); bdry_map_iter != bdry_map->end();
+       bdry_map_iter ++) {
+    pfc_log_debug("Key:%s", (bdry_map_iter->first).c_str());
+    stringstream test;
+    char typeCh = static_cast<char>(bdry_map_iter->second.controller_type + 48);
+    test << bdry_map_iter->second.controller_name << "..." << typeCh
+         <<"..."<< bdry_map_iter->second.domain_name<< "..."
+         << bdry_map_iter->second.logical_port_id<< "..."
+         << bdry_map_iter->second.lp_str.switch_id<< "..."
+         << bdry_map_iter->second.lp_str.port_id << "..."
+         << bdry_map_iter->second.boundary_id << "..."
+         << PhyUtil::uint8tostr(bdry_map_iter->second.lp_str.port_type);
+    pfc_log_debug("Value:%s", test.str().c_str());
+  }
+
+  return ret_code;
+}
+
+/**fill_ctrlr_dom_count_map
+ * @Description :
+ * @param[in] :
+ * @return    :
+ *
+ * */
+
+UncRespCode Kt_Dataflow::fill_ctrlr_dom_count_map(
+              OdbcmConnectionHandler *db_conn, string ctr_name) {
+  map <std::string, uint32_t> *count_map = df_util_.get_ctrlr_dom_count_map();
+  map <std::string, uint32_t>::iterator cmap_iter;
+  if (ctr_name.empty())
+    return UNC_UPPL_RC_ERR_PARENT_DOES_NOT_EXIST;
+  pfc_log_debug("controller name recv. %s:%s ", __func__, ctr_name.c_str());
+  cmap_iter = count_map->find(ctr_name);
+  if (cmap_iter != count_map->end()) {
+    pfc_log_debug("domain count of this controller is already exists ");
+    return UNC_RC_SUCCESS;
+  }
+  DBTableSchema kt_ctr_domain_dbtableschema;
+  uint32_t count = 0;
+  // Construct Primary key list
+  vector<string> vect_prim_keys;
+  vect_prim_keys.push_back(CTR_NAME_STR);
+  vector<TableAttrSchema> vect_table_attr_schema;
+  list < vector<TableAttrSchema> > row_list;
+
+  pfc_log_info("controller name: %s", ctr_name.c_str());
+  PhyUtil::FillDbSchema(unc::uppl::CTR_NAME, ctr_name,
+                        ctr_name.length(),
+                        DATATYPE_UINT8_ARRAY_32,
+                        vect_table_attr_schema);
+  string domain_name = "";
+  pfc_log_info("domain_name: %s", domain_name.c_str());
+  PhyUtil::FillDbSchema(unc::uppl::DOMAIN_NAME, domain_name,
+                        domain_name.length(), DATATYPE_UINT8_ARRAY_32,
+                        vect_table_attr_schema);
+  vect_prim_keys.push_back(DOMAIN_NAME_STR);
+  kt_ctr_domain_dbtableschema.set_table_name(unc::uppl::CTR_DOMAIN_TABLE);
+  kt_ctr_domain_dbtableschema.set_primary_keys(vect_prim_keys);
+  row_list.push_back(vect_table_attr_schema);
+  kt_ctr_domain_dbtableschema.set_row_list(row_list);
+  PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
+  ODBCM_RC_STATUS db_status =
+      physical_layer->get_odbc_manager()->GetSiblingCount(UNC_DT_RUNNING,
+                kt_ctr_domain_dbtableschema, count, db_conn);
+  if (db_status != ODBCM_RC_SUCCESS)
+    return UNC_UPPL_RC_ERR_DB_ACCESS;
+  count = count * 2;  //  To allow the same boundary traversal for hairpin L3
+                      //  the domain count is doubled here.
+  count_map->insert(std::pair<std::string, uint32_t>(ctr_name, count));
+  pfc_log_debug("domain count of this controller is added"
+                                           " %s: %d ", ctr_name.c_str(), count);
+
+  // For tetsing, printinig ctrlr_dom_count_map
+  for (cmap_iter = count_map->begin(); cmap_iter != count_map->end();
+       cmap_iter++) {
+    pfc_log_debug("key-ctr_name:%s", (cmap_iter->first).c_str());
+    pfc_log_debug("value-dom_count:%d", cmap_iter->second);
+  }
+  if (count_map->empty())
+    return UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
+  return UNC_RC_SUCCESS;
+}
+/**
+ * @Description :
+ * @param[in] :
+ * @return    :
+ *
+ * */
+UncRespCode Kt_Dataflow::getkeysfrom_boundary_map(string ctr_name,
+                               list<boundary_val> &found_keys,
+                               list<boundary_val> &found_vals,
+                               string &ingress_bdry_id) {
+  multimap<string, boundary_val> *bdry_map  = get_boundary_map();
+  multimap<string, boundary_val>::iterator bdry_map_iter = bdry_map->begin();
+  pfc_log_debug("ingress_bdry_id at getkeysfrom_boundary_map:%s",
+                ingress_bdry_id.c_str());
+  size_t pos = 0;
+  uint8_t w_count;
+  string totalF, word, delimiter = "&";
+  pfc_log_debug("input ctr_name:%s", ctr_name.c_str());
+  for (; bdry_map_iter != bdry_map->end(); bdry_map_iter++) {
+    //  non PFC
+    totalF = (*bdry_map_iter).first;
+    if (totalF.empty())
+      return UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
+    pfc_log_debug("bdry_map.key is :%s ",  totalF.c_str());
+    pos = totalF.find(delimiter);
+    word = totalF.substr(0, pos);  /* controller_name*/
+    if (ctr_name.compare(word) != 0) {
+      pfc_log_debug("controller name not matching");
+      continue;
+    }
+    w_count = 0;
+    boundary_val obj_boundary_val;
+    memset(&obj_boundary_val, '\0', sizeof(boundary_val));
+    /*controller_name&domain_name&switch_id&port_id*/
+    while (w_count < 4/*key has only four values */) {
+      pfc_log_debug("w_count=%d totalF=%s", w_count, totalF.c_str());
+      pos = totalF.find(delimiter);
+      word = totalF.substr(0, pos);
+      // filling boundary_val strucure
+      if (w_count == 0)
+        memcpy(&obj_boundary_val.controller_name, word.c_str(), word.length());
+      else if (w_count == 1)
+        memcpy(&obj_boundary_val.domain_name, word.c_str(), word.length());
+      else if (w_count == 2)
+        memcpy(&obj_boundary_val.lp_str.switch_id, word.c_str(), word.length());
+      else
+        memcpy(obj_boundary_val.lp_str.port_id, word.c_str(), word.length());
+      totalF.erase(0, pos + delimiter.length());
+      w_count++;
+    }
+    found_keys.push_back(obj_boundary_val);
+    found_vals.push_back((*bdry_map_iter).second);
+  }
+  if (found_keys.size() == 0)
+    return UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
+  return UNC_RC_SUCCESS;
+}
+
+void inline Kt_Dataflow::checkFlowLimitAndTraverse(
+                                         OdbcmConnectionHandler *db_conn,
+                                         uint32_t session_id,
+                                         uint32_t configuration_id,
+                                         ServerSession &sess,
+                                         void* key_struct,
+                                         vector<DataflowCmn*>* node,
+                                         bool is_head_node,
+                                         string &ingress_bdry_id) {
+    vector<DataflowCmn *>::iterator iter_flow = node->begin();
+    while (iter_flow != node->end()) {
+      pfc_log_trace("Inside the iteration of firstCtrlrFlows");
+        // Checking the particular flow is traversed
+      DataflowCmn *traverse_flow_cmn =
+                            reinterpret_cast<DataflowCmn *>(*iter_flow);
+      pfc_log_debug("controller_name:%s",
+               (const char*)
+               ((*iter_flow)->df_segment->df_common->controller_name));
+      if (traverse_flow_cmn->addl_data->reason !=
+           UNC_DF_RES_EXCEEDS_FLOW_LIMIT) {
+        int ret_code = checkBoundaryAndTraverse(db_conn, session_id,
+                     configuration_id, key_struct, sess, false,
+                     traverse_flow_cmn, traverse_flow_cmn, ingress_bdry_id);
+        pfc_log_debug("checkBoundaryAndTraverse returned %d", ret_code);
+        vector<DataflowCmn *>::iterator match_flow_iter =  iter_flow + 1;
+        unsigned int no_of_dataflow = 1;
+        while (match_flow_iter != node->end()) {
+          DataflowCmn *traverse_match_flow_cmn =
+                                 reinterpret_cast<DataflowCmn *>
+                                  (*match_flow_iter);
+          if ((traverse_flow_cmn->next.size() > 0) &&
+              (traverse_match_flow_cmn->addl_data->reason !=
+                  UNC_DF_RES_EXCEEDS_FLOW_LIMIT)) {
+              pfc_log_trace("Need to compare subsequent flows");
+
+            if (traverse_match_flow_cmn->CompareDataflow(traverse_flow_cmn) ==
+                     true) {
+              no_of_dataflow++;
+              pfc_log_debug("CompareDataflow returns true, no_of_dataflow=%d"
+                " max_dataflow_traverse_count_=%d",
+                  no_of_dataflow, max_dataflow_traverse_count_);
+              if (no_of_dataflow > max_dataflow_traverse_count_) {
+                pfc_log_debug("Setting FLOW_LIMIT to %p",
+                   traverse_match_flow_cmn);
+                traverse_match_flow_cmn->addl_data->reason =
+                                               UNC_DF_RES_EXCEEDS_FLOW_LIMIT;
+                if (is_head_node)
+                  traverse_match_flow_cmn->addl_data->controller_count = 1;
+              }
+            }
+          }
+          match_flow_iter++;
+        }
+      }
+      iter_flow++;
+    }
+}
+
+UncDataflowReason Kt_Dataflow::CreateDfCmnNodeForNonPfc(
+    OdbcmConnectionHandler *db_conn,
+    DataflowDetail *df_segment,
+    DataflowCmn *source_node,
+    DataflowCmn *df_cmn,
+    boundary_val *ingress_obj_bval,
+    boundary_val &egress_obj_bval,
+    bool is_egress) {
+  string ctr_name = (const char*)ingress_obj_bval->controller_name;
+  pfc_log_info("Creating DataflowCmn node for %s", ctr_name.c_str());
+  memcpy(df_cmn->df_segment->df_common->controller_name,
+         ingress_obj_bval->controller_name,
+         sizeof(ingress_obj_bval->controller_name));
+  df_cmn->df_segment->df_common->controller_type =
+      ingress_obj_bval->controller_type;
+  memcpy(df_cmn->df_segment->df_common->in_domain,
+         ingress_obj_bval->domain_name,
+         sizeof(ingress_obj_bval->domain_name));
+  if (ingress_obj_bval->controller_type != UNC_CT_UNKNOWN) {
+    memcpy(df_cmn->df_segment->df_common->ingress_switch_id,
+           ingress_obj_bval->lp_str.switch_id,
+           sizeof(ingress_obj_bval->lp_str.switch_id));
+    memcpy(df_cmn->df_segment->df_common->in_port,
+           ingress_obj_bval->lp_str.port_id,
+           sizeof(ingress_obj_bval->lp_str.port_id));
+  }
+  if (is_egress) {
+    memcpy(df_cmn->df_segment->df_common->out_domain,
+           egress_obj_bval.domain_name,
+           sizeof(egress_obj_bval.domain_name));
+    memcpy(df_cmn->df_segment->df_common->egress_switch_id,
+           egress_obj_bval.lp_str.switch_id,
+           sizeof(egress_obj_bval.lp_str.switch_id));
+    memcpy(df_cmn->df_segment->df_common->out_port,
+           egress_obj_bval.lp_str.port_id,
+           sizeof(egress_obj_bval.lp_str.port_id));
+  } else {
+    if (df_cmn->df_segment->df_common->controller_type == UNC_CT_VNP) {
+      df_cmn->df_segment->df_common->
+          valid[kidxDfDataFlowEgressSwitchId] = 0;
+      df_cmn->df_segment->df_common->valid[kidxDfDataFlowOutPort] = 0;
+      df_cmn->df_segment->df_common->valid[kidxDfDataFlowOutDomain] = 0;
+    } else if (
+        df_cmn->df_segment->df_common->controller_type ==
+        UNC_CT_UNKNOWN) {
+      // Setting valid bit for out_domain as invalid
+      df_cmn->df_segment->df_common->valid[kidxDfDataFlowOutDomain] = 0;
+    }
+  }
+  pfc_log_debug("node:%s",
+                DataflowCmn::get_string(
+                    *df_cmn->df_segment->df_common).c_str());
+  UncRespCode fill_status =
+      fill_ctrlr_dom_count_map(db_conn, ctr_name);
+  if (fill_status != UNC_RC_SUCCESS)
+    pfc_log_debug("Map is not filled");
+  /* if (fill_status == UNC_UPPL_RC_ERR_DB_ACCESS) {
+     pfc_log_debug("Map is not filled due to DB Access Error");
+     df_cmn->addl_data->reason = UNC_DF_RES_SYSTEM_ERROR;
+     return UNC_RC_SUCCESS;
+     } // TODO(Lizzy): To be discussed */
+
+  pfc_log_debug("Return of fill_ctrlr_dom_count_map:%d", fill_status);
+  UncDataflowReason ret = source_node->appendFlow(
+      df_cmn, *(df_util_.get_ctrlr_dom_count_map()));
+  if (ret != UNC_DF_RES_SUCCESS) {
+    pfc_log_debug("Flow not appended ret=%d", ret);
+    return ret;
+  }
+  df_cmn->parent_node = source_node;
+
+  if (is_egress == false) {
+    if ((df_cmn->next.size() == 0) &&
+        (df_cmn->addl_data->reason == UNC_DF_RES_SUCCESS))
+      df_cmn->addl_data->reason = UNC_DF_RES_DST_NOT_REACHED;
+  }
+  pfc_log_debug("aNode is appended to flow");
+  return UNC_DF_RES_SUCCESS;
+}
+
index 3bd7b3628299eba39d03077e180ebe9a337ca0b6..0049908aa1a804c88a99c93269799f1d0e5275aa 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -49,21 +49,21 @@ Kt_Link::~Kt_Link() {
  * key_struct - the key for the new kt link instance
  * data_type - UNC_DT_* , delete only allowed in state
  * key_type - UNC_KT_LINK,value of unc_key_type_t
- * @return    : UPPL_RC_SUCCESS is returned when the delete
+ * @return    : UNC_RC_SUCCESS is returned when the delete
  * is done successfully.
- * UPPL_RC_ERR_* is returned when the delete is error
+ * UNC_UPPL_RC_ERR_* is returned when the delete is error
  * */
-UpplReturnCode Kt_Link::DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Link::DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
                                           void* key_struct,
                                           uint32_t data_type,
                                           uint32_t key_type) {
-  UpplReturnCode delete_status = UPPL_RC_SUCCESS;
+  UncRespCode delete_status = UNC_RC_SUCCESS;
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
   // Check operation is allowed on the given DT, skip the check if flag is true
   if ((unc_keytype_datatype_t)data_type != UNC_DT_STATE &&
       (unc_keytype_datatype_t)data_type != UNC_DT_IMPORT) {
     pfc_log_error("Delete operation is provided on unsupported data type");
-    return UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    return UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
   }
   // Structure used to send request to ODBC
   DBTableSchema kt_link_dbtableschema;
@@ -85,13 +85,13 @@ UpplReturnCode Kt_Link::DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
     if (delete_db_status == ODBCM_RC_CONNECTION_ERROR) {
       // log fatal error to log daemon
       pfc_log_fatal("DB connection not available or cannot access DB");
-      delete_status = UPPL_RC_ERR_DB_ACCESS;
+      delete_status = UNC_UPPL_RC_ERR_DB_ACCESS;
     } else if (delete_db_status == ODBCM_RC_ROW_NOT_EXISTS) {
       pfc_log_error("given instance does not exist");
-      delete_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+      delete_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     } else {
       // log error to log daemon
-      delete_status = UPPL_RC_ERR_DB_DELETE;
+      delete_status = UNC_UPPL_RC_ERR_DB_DELETE;
     }
   } else {
     pfc_log_info("Delete of a link in data_type(%d) is success",
@@ -107,11 +107,11 @@ UpplReturnCode Kt_Link::DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
  * value_struct - the value for the kt link instance
  * data_type - UNC_DT_* , read allowed in state
  * operation_type-UNC_OP_*,type of operation
- * @return    : UPPL_RC_SUCCESS is returned when the response
+ * @return    : UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_Link::ReadInternal(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Link::ReadInternal(OdbcmConnectionHandler *db_conn,
                                      vector<void *> &key_val,
                                      vector<void *> &val_struct,
                                      uint32_t data_type,
@@ -130,7 +130,7 @@ UpplReturnCode Kt_Link::ReadInternal(OdbcmConnectionHandler *db_conn,
     void_val_struct = val_struct[0];
   }
   uint32_t option = 0;
-  UpplReturnCode read_status = ReadLinkValFromDB(db_conn, key_struct,
+  UncRespCode read_status = ReadLinkValFromDB(db_conn, key_struct,
                                                  void_val_struct,
                                                  data_type,
                                                  operation_type,
@@ -140,7 +140,7 @@ UpplReturnCode Kt_Link::ReadInternal(OdbcmConnectionHandler *db_conn,
                                                  option);
   key_val.clear();
   val_struct.clear();
-  if (read_status == UPPL_RC_SUCCESS) {
+  if (read_status == UNC_RC_SUCCESS) {
     pfc_log_debug("Read operation is success");
     for (unsigned int iIndex = 0 ; iIndex < vect_val_link_st.size();
         ++iIndex) {
@@ -164,11 +164,11 @@ UpplReturnCode Kt_Link::ReadInternal(OdbcmConnectionHandler *db_conn,
  * max_rep_ct - specifies number of rows to be returned
  * parent_call - indicates whether parent has called this readbulk
  * is_read_next - indicates whether this function is invoked from readnext
- * @return    : UPPL_RC_SUCCESS is returned when the response
+ * @return    : UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_Link::ReadBulk(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Link::ReadBulk(OdbcmConnectionHandler *db_conn,
                                  void* key_struct,
                                  uint32_t data_type,
                                  uint32_t &max_rep_ct,
@@ -176,7 +176,7 @@ UpplReturnCode Kt_Link::ReadBulk(OdbcmConnectionHandler *db_conn,
                                  pfc_bool_t parent_call,
                                  pfc_bool_t is_read_next,
                                  ReadRequest *read_req) {
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
   key_link_t* obj_key_link=
       reinterpret_cast<key_link_t*>(key_struct);
   string str_controller_name =
@@ -193,13 +193,13 @@ UpplReturnCode Kt_Link::ReadBulk(OdbcmConnectionHandler *db_conn,
     // Not supported
     pfc_log_debug("ReadBulk operation is not allowed in %d data type",
                   data_type);
-    read_status = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    read_status = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
     pfc_log_debug("read_status=%d", read_status);
     return read_status;
   }
   if (max_rep_ct == 0) {
     pfc_log_debug("max_rep_ct is 0");
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   vector<val_link_st_t> vect_val_link_st;
   vector<key_link_t> vect_link_id;
@@ -210,7 +210,7 @@ UpplReturnCode Kt_Link::ReadBulk(OdbcmConnectionHandler *db_conn,
                                  vect_val_link_st,
                                  vect_link_id);
   pfc_log_debug("read_status from kt_link is %d", read_status);
-  if (read_status == UPPL_RC_SUCCESS) {
+  if (read_status == UNC_RC_SUCCESS) {
     // For each link , read the values
     vector<val_link_st_t> ::iterator vect_iter = vect_val_link_st.begin();
     vector<key_link_t> ::iterator link_iter = vect_link_id.begin();
@@ -241,10 +241,10 @@ UpplReturnCode Kt_Link::ReadBulk(OdbcmConnectionHandler *db_conn,
       read_req->AddToBuffer(obj_sep_buffer);
       --max_rep_ct;
       if (max_rep_ct == 0) {
-        return UPPL_RC_SUCCESS;
+        return UNC_RC_SUCCESS;
       }
     }
-  } else if (read_status == UPPL_RC_ERR_DB_ACCESS) {
+  } else if (read_status == UNC_UPPL_RC_ERR_DB_ACCESS) {
     pfc_log_debug("Ktlink ReadBulk - Returning DB Access Error");
     return read_status;
   }
@@ -265,12 +265,12 @@ UpplReturnCode Kt_Link::ReadBulk(OdbcmConnectionHandler *db_conn,
         is_read_next,
         read_req);
     pfc_log_debug("read_status from next kin Kt_Port is %d", read_status);
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   pfc_log_debug("link reached end of table");
   pfc_log_debug("read_status=%d", read_status);
-  if (read_status == UPPL_RC_ERR_NO_SUCH_INSTANCE) {
-    read_status = UPPL_RC_SUCCESS;
+  if (read_status == UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE) {
+    read_status = UNC_RC_SUCCESS;
   }
   return read_status;
 }
@@ -284,11 +284,11 @@ UpplReturnCode Kt_Link::ReadBulk(OdbcmConnectionHandler *db_conn,
  * max_rep_ct- specifies number of rows to be returned
  * vect_val_link - indicates the fetched values from db of val_link type
  * vect_link_id - indicates the fetched link names from db
- * @return    : UPPL_RC_SUCCESS is returned when the response
+ * @return    : UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_Link::ReadBulkInternal(
+UncRespCode Kt_Link::ReadBulkInternal(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     uint32_t data_type,
@@ -297,7 +297,7 @@ UpplReturnCode Kt_Link::ReadBulkInternal(
     vector<key_link_t> &vect_link_id) {
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
   void *val_struct = NULL;
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
   ODBCM_RC_STATUS read_db_status = ODBCM_RC_SUCCESS;
   DBTableSchema kt_link_dbtableschema;
   vector<ODBCMOperator> operator_vector;
@@ -325,7 +325,7 @@ UpplReturnCode Kt_Link::ReadBulkInternal(
   for (; index < no_of_query ; ++index) {
     if (kt_link_dbtableschema.primary_keys_.size() <2) {
     pfc_log_debug("No record found");
-      read_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+      read_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
       break;
     }
     // Read rows from DB
@@ -336,18 +336,18 @@ UpplReturnCode Kt_Link::ReadBulkInternal(
     pfc_log_debug("GetBulkRows return: %d", read_db_status);
     if (read_db_status == ODBCM_RC_RECORD_NOT_FOUND) {
       pfc_log_debug("No record found");
-      read_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+      read_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
       // Update the primary key vector
       kt_link_dbtableschema.primary_keys_.pop_back();
       pfc_log_debug(
-          "Primary key vector size %d",
-          static_cast<int>(kt_link_dbtableschema.primary_keys_.size()));
+          "Primary key vector size %"
+           PFC_PFMT_SIZE_T, kt_link_dbtableschema.primary_keys_.size());
     } else if (read_db_status == ODBCM_RC_CONNECTION_ERROR) {
-      read_status = UPPL_RC_ERR_DB_ACCESS;
+      read_status = UNC_UPPL_RC_ERR_DB_ACCESS;
       pfc_log_error("Read operation has failed with error %d", read_db_status);
       break;
     } else if (read_db_status == ODBCM_RC_SUCCESS) {
-      read_status = UPPL_RC_SUCCESS;
+      read_status = UNC_RC_SUCCESS;
       pfc_log_debug("Received success response from db");
       uint32_t max_rep_ct_new = 0;
         FillLinkValueStructure(db_conn, kt_link_dbtableschema,
@@ -365,15 +365,15 @@ UpplReturnCode Kt_Link::ReadBulkInternal(
 
       kt_link_dbtableschema.primary_keys_.pop_back();
     } else {
-      read_status = UPPL_RC_ERR_DB_GET;
+      read_status = UNC_UPPL_RC_ERR_DB_GET;
       break;
     }
   }  // for loop end
   if (vect_val_link_st.empty() && index == 4) {
       pfc_log_debug("No record found");
-      read_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+      read_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     } else if (!vect_val_link_st.empty()) {
-      read_status = UPPL_RC_SUCCESS;
+      read_status = UNC_RC_SUCCESS;
     }
 
   return read_status;
@@ -387,16 +387,16 @@ UpplReturnCode Kt_Link::ReadBulkInternal(
  * value_struct - the value for the kt link instance
  * data_type - UNC_DT_*,type of database
  * operation_type - UNC_OP*,type of operation
- * @return    : UPPL_RC_SUCCESS is returned when the validation is successful
- * UPPL_RC_ERR_* is returned when validation is failure
+ * @return    : UNC_RC_SUCCESS is returned when the validation is successful
+ * UNC_UPPL_RC_ERR_* is returned when validation is failure
  * */
-UpplReturnCode Kt_Link::PerformSyntaxValidation(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Link::PerformSyntaxValidation(OdbcmConnectionHandler *db_conn,
                                                 void* key_struct,
                                                 void* val_struct,
                                                 uint32_t operation,
                                                 uint32_t data_type) {
   pfc_log_info("Performing Syntax Validation of KT_LINK");
-  UpplReturnCode ret_code = UPPL_RC_SUCCESS;
+  UncRespCode ret_code = UNC_RC_SUCCESS;
   pfc_ipcresp_t mandatory = PFC_TRUE;
 
   // Validate key structure
@@ -405,34 +405,34 @@ UpplReturnCode Kt_Link::PerformSyntaxValidation(OdbcmConnectionHandler *db_conn,
   map<string, Kt_Class_Attr_Syntax> attr_syntax_map =
       attr_syntax_map_all[UNC_KT_LINK];
   IS_VALID_STRING_KEY(CTR_NAME_STR, value, operation, ret_code, mandatory);
-  if (ret_code != UPPL_RC_SUCCESS) {
-    return UPPL_RC_ERR_CFG_SYNTAX;
+  if (ret_code != UNC_RC_SUCCESS) {
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
 
   value = reinterpret_cast<char*>(key->switch_id1);
   IS_VALID_STRING_KEY(LINK_SWITCH_ID1_STR, value, operation,
                       ret_code, mandatory);
-  if (ret_code != UPPL_RC_SUCCESS) {
-    return UPPL_RC_ERR_CFG_SYNTAX;
+  if (ret_code != UNC_RC_SUCCESS) {
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
 
   value = reinterpret_cast<char*>(key->port_id1);
   IS_VALID_STRING_KEY(LINK_PORT_ID1_STR, value, operation, ret_code, mandatory);
-  if (ret_code != UPPL_RC_SUCCESS) {
-    return UPPL_RC_ERR_CFG_SYNTAX;
+  if (ret_code != UNC_RC_SUCCESS) {
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
 
   value = reinterpret_cast<char*>(key->switch_id2);
   IS_VALID_STRING_KEY(LINK_SWITCH_ID2_STR, value, operation,
                       ret_code, mandatory);
-  if (ret_code != UPPL_RC_SUCCESS) {
-    return UPPL_RC_ERR_CFG_SYNTAX;
+  if (ret_code != UNC_RC_SUCCESS) {
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
 
   value = reinterpret_cast<char*>(key->port_id2);
   IS_VALID_STRING_KEY(LINK_PORT_ID2_STR, value, operation, ret_code, mandatory);
-  if (ret_code != UPPL_RC_SUCCESS) {
-    return UPPL_RC_ERR_CFG_SYNTAX;
+  if (ret_code != UNC_RC_SUCCESS) {
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
 
   // Validate value structure
@@ -444,8 +444,8 @@ UpplReturnCode Kt_Link::PerformSyntaxValidation(OdbcmConnectionHandler *db_conn,
     string value = reinterpret_cast<char*>(link_value->description);
     IS_VALID_STRING_VALUE(LINK_DESCRIPTION_STR, value, operation,
                           valid_val, ret_code, mandatory);
-    if (ret_code != UPPL_RC_SUCCESS) {
-      return UPPL_RC_ERR_CFG_SYNTAX;
+    if (ret_code != UNC_RC_SUCCESS) {
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
   }
   return ret_code;
@@ -458,16 +458,16 @@ UpplReturnCode Kt_Link::PerformSyntaxValidation(OdbcmConnectionHandler *db_conn,
  * value_struct - specifies value of KT_LINK
  * operation - UNC_OP*,type of operation
  * data_type - UNC_DT*,type of database
- * @return    : UPPL_RC_SUCCESS if semantic valition is successful
- * or UPPL_RC_ERR_* if failed
+ * @return    : UNC_RC_SUCCESS if semantic valition is successful
+ * or UNC_UPPL_RC_ERR_* if failed
  * */
-UpplReturnCode Kt_Link::PerformSemanticValidation(
+UncRespCode Kt_Link::PerformSemanticValidation(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     void* val_struct,
     uint32_t operation,
     uint32_t data_type) {
-  UpplReturnCode status = UPPL_RC_SUCCESS;
+  UncRespCode status = UNC_RC_SUCCESS;
   pfc_log_debug("Inside PerformSemanticValidation of KT_LINK");
   // Check whether the given instance of link exists in DB
   key_link_t *obj_key_link = reinterpret_cast<key_link_t*>(key_struct);
@@ -482,17 +482,17 @@ UpplReturnCode Kt_Link::PerformSemanticValidation(
   link_vect_key_value.push_back(port_id1);
   link_vect_key_value.push_back(switch_id2);
   link_vect_key_value.push_back(port_id2);
-  UpplReturnCode key_status = IsKeyExists(db_conn,
+  UncRespCode key_status = IsKeyExists(db_conn,
                                           (unc_keytype_datatype_t)data_type,
                                           link_vect_key_value);
   pfc_log_debug("IsKeyExists status %d", key_status);
   // In case of Create operation, key should not exist
   if (operation == UNC_OP_CREATE) {
-    if (key_status == UPPL_RC_SUCCESS) {
+    if (key_status == UNC_RC_SUCCESS) {
       pfc_log_error("Key instance already exists");
       pfc_log_error("Hence Create operation not allowed");
-      status = UPPL_RC_ERR_INSTANCE_EXISTS;
-    } else if (key_status == UPPL_RC_ERR_DB_ACCESS) {
+      status = UNC_UPPL_RC_ERR_INSTANCE_EXISTS;
+    } else if (key_status == UNC_UPPL_RC_ERR_DB_ACCESS) {
       pfc_log_error("DB Access failure");
       status = key_status;
     } else {
@@ -502,19 +502,19 @@ UpplReturnCode Kt_Link::PerformSemanticValidation(
   } else if (operation == UNC_OP_UPDATE || operation == UNC_OP_DELETE ||
       operation == UNC_OP_READ) {
     // In case of update/delete/read operation, key should exist
-    if (key_status == UPPL_RC_ERR_DB_ACCESS) {
+    if (key_status == UNC_UPPL_RC_ERR_DB_ACCESS) {
       pfc_log_error("DB Access failure");
       status = key_status;
-    } else if (key_status != UPPL_RC_SUCCESS) {
+    } else if (key_status != UNC_RC_SUCCESS) {
       pfc_log_error("Key instance does not exist");
       pfc_log_error("Hence update/delete/read operation not allowed");
-      status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+      status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     } else {
       pfc_log_info("key instance exist update/del/read operation allowed");
     }
   }
 
-  if (operation == UNC_OP_CREATE && status == UPPL_RC_SUCCESS) {
+  if (operation == UNC_OP_CREATE && status == UNC_RC_SUCCESS) {
     vector<string> parent_vect_key_value;
     parent_vect_key_value.push_back(controller_name);
     Kt_Controller KtObj;
@@ -522,12 +522,12 @@ UpplReturnCode Kt_Link::PerformSemanticValidation(
     if (data_type == UNC_DT_IMPORT) {
       parent_data_type = UNC_DT_RUNNING;
     }
-    UpplReturnCode parent_key_status = KtObj.IsKeyExists(
+    UncRespCode parent_key_status = KtObj.IsKeyExists(
         db_conn, (unc_keytype_datatype_t)parent_data_type,
         parent_vect_key_value);
     pfc_log_debug("Parent IsKeyExists status %d", parent_key_status);
-    if (parent_key_status != UPPL_RC_SUCCESS) {
-      status = UPPL_RC_ERR_PARENT_DOES_NOT_EXIST;
+    if (parent_key_status != UNC_RC_SUCCESS) {
+      status = UNC_UPPL_RC_ERR_PARENT_DOES_NOT_EXIST;
     }
   }
   pfc_log_debug("Return Code SemanticValidation: %d", status);
@@ -540,17 +540,16 @@ UpplReturnCode Kt_Link::PerformSemanticValidation(
  * @param[in] : data_type-UNC_DT_*,type of database
  * key_struct-void* to kt key structure
  * value_struct-void* to kt value structure
- * @return    : UPPL_RC_SUCCESS or UPPL_RC_ERR*, 
- * UPPL_RC_SUCCESS is returned when the response
+ * @return    : UNC_RC_SUCCESS or UNC_UPPL_RC_ERR*, 
+ * UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_Link::HandleOperStatus(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Link::HandleOperStatus(OdbcmConnectionHandler *db_conn,
                                          uint32_t data_type,
                                          void *key_struct,
                                          void *value_struct) {
   if (key_struct != NULL) {
-    FN_START_TIME("HandleOperStatus", "Link");
     key_link_t *obj_key_link =
         reinterpret_cast<key_link_t*>(key_struct);
     string controller_name = (const char*)obj_key_link->ctr_key.controller_name;
@@ -561,10 +560,10 @@ UpplReturnCode Kt_Link::HandleOperStatus(OdbcmConnectionHandler *db_conn,
     uint8_t ctrl_oper_status = 0;
     UpplLinkOperStatus link_oper_status = UPPL_LINK_OPER_UNKNOWN;
     Kt_Controller controller;
-    UpplReturnCode read_status = controller.GetOperStatus(
+    UncRespCode read_status = controller.GetOperStatus(
         db_conn, data_type, reinterpret_cast<void*>(&ctr_key),
         ctrl_oper_status);
-    if (read_status == UPPL_RC_SUCCESS) {
+    if (read_status == UNC_RC_SUCCESS) {
       pfc_log_info("Controller's oper_status %d", ctrl_oper_status);
       if (ctrl_oper_status ==
           (UpplControllerOperStatus) UPPL_CONTROLLER_OPER_UP) {
@@ -577,16 +576,14 @@ UpplReturnCode Kt_Link::HandleOperStatus(OdbcmConnectionHandler *db_conn,
     // Update oper_status in link table
     read_status = SetOperStatus(db_conn, data_type, key_struct,
                                 link_oper_status);
-    if (read_status != UPPL_RC_SUCCESS &&
-        read_status != UPPL_RC_ERR_NO_SUCH_INSTANCE) {
+    if (read_status != UNC_RC_SUCCESS &&
+        read_status != UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE) {
       // log error
       pfc_log_error("oper_status update operation failed");
-      FN_END_TIME("HandleOperStatus", "Link");
-      return UPPL_RC_ERR_DB_ACCESS;
+      return UNC_UPPL_RC_ERR_DB_ACCESS;
     }
-    FN_END_TIME("HandleOperStatus", "Link");
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /** SetOperStatus
@@ -595,11 +592,11 @@ UpplReturnCode Kt_Link::HandleOperStatus(OdbcmConnectionHandler *db_conn,
  * @param[in] : key_struct-void* to link key strcuture
  * data_type-UNC_DT_*,type of database
  * oper_status-any value of UpplLinkOperStatus
- * @return    : UPPL_RC_SUCCESS/ERR*, UPPL_RC_SUCCESS is returned when the
+ * @return    : UNC_RC_SUCCESS/ERR*, UNC_RC_SUCCESS is returned when the
  * response is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  */
-UpplReturnCode Kt_Link::SetOperStatus(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Link::SetOperStatus(OdbcmConnectionHandler *db_conn,
                                       uint32_t data_type,
                                       void* key_struct,
                                       UpplLinkOperStatus oper_status) {
@@ -665,18 +662,18 @@ UpplReturnCode Kt_Link::SetOperStatus(OdbcmConnectionHandler *db_conn,
           kt_link_dbtableschema, db_conn);
   if (update_db_status == ODBCM_RC_ROW_NOT_EXISTS) {
     pfc_log_info("No instance available for update");
-    return UPPL_RC_ERR_NO_SUCH_INSTANCE;
+    return UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
   } else if (update_db_status != ODBCM_RC_SUCCESS) {
     // log error
     pfc_log_error("oper_status update operation failed");
-    return UPPL_RC_ERR_DB_UPDATE;
+    return UNC_UPPL_RC_ERR_DB_UPDATE;
   } else {
     // Notify operstatus change to northbound
     uint8_t old_oper_status = 0;
-    UpplReturnCode read_status = GetOperStatus(db_conn, data_type,
+    UncRespCode read_status = GetOperStatus(db_conn, data_type,
                                                key_struct,
                                                old_oper_status);
-    if (read_status == UPPL_RC_SUCCESS) {
+    if (read_status == UNC_RC_SUCCESS) {
       val_link_st old_val_link, new_val_link;
       memset(&old_val_link, 0, sizeof(old_val_link));
       memset(&new_val_link, 0, sizeof(new_val_link));
@@ -687,9 +684,9 @@ UpplReturnCode Kt_Link::SetOperStatus(OdbcmConnectionHandler *db_conn,
       int err = 0;
       // Send notification to Northbound
       ServerEvent ser_evt((pfc_ipcevtype_t)UPPL_EVENTS_KT_LINK, err);
-      northbound_event_header rsh = {UNC_OP_UPDATE,
+      northbound_event_header rsh = {static_cast<uint32_t>(UNC_OP_UPDATE),
           data_type,
-          UNC_KT_LINK};
+          static_cast<uint32_t>(UNC_KT_LINK)};
       err = PhyUtil::sessOutNBEventHeader(ser_evt, rsh);
       err |= ser_evt.addOutput(*obj_key_link);
       err |= ser_evt.addOutput(new_val_link);
@@ -697,7 +694,7 @@ UpplReturnCode Kt_Link::SetOperStatus(OdbcmConnectionHandler *db_conn,
       if (err == 0) {
         PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
         // Notify operstatus modifications
-        UpplReturnCode status = (UpplReturnCode) physical_layer
+        UncRespCode status = (UncRespCode) physical_layer
             ->get_ipc_connection_manager()->SendEvent(&ser_evt);
         pfc_log_debug("Event notification status %d", status);
       } else {
@@ -705,26 +702,26 @@ UpplReturnCode Kt_Link::SetOperStatus(OdbcmConnectionHandler *db_conn,
       }
     }
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /** IsKeyExists
  * @Description : This function checks whether the link_id exists in DB
  * @param[in] : data type - UNC_DT_*,type of database
  * key value - Contains link_id
- * @return    : UPPL_RC_SUCCESS or UPPL_RC_ERR* based on operation type
+ * @return    : UNC_RC_SUCCESS or UNC_UPPL_RC_ERR* based on operation type
  * */
-UpplReturnCode Kt_Link::IsKeyExists(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Link::IsKeyExists(OdbcmConnectionHandler *db_conn,
                                     unc_keytype_datatype_t data_type,
                                     const vector<string> &key_values) {
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
   //  void* key_struct;
   //  key_link_t *obj_key_link = reinterpret_cast<key_link_t*>(key_struct);
-  UpplReturnCode check_status = UPPL_RC_SUCCESS;
+  UncRespCode check_status = UNC_RC_SUCCESS;
   if (key_values.empty()) {
     // No key given, return failure
     pfc_log_info("No key given. Returning error");
-    return UPPL_RC_ERR_BAD_REQUEST;
+    return UNC_UPPL_RC_ERR_BAD_REQUEST;
   }
 
   string controller_name = key_values[0];
@@ -788,12 +785,12 @@ UpplReturnCode Kt_Link::IsKeyExists(OdbcmConnectionHandler *db_conn,
   if (check_db_status == ODBCM_RC_CONNECTION_ERROR) {
     // log error to log daemon
     pfc_log_error("DB connection not available or cannot access DB");
-    check_status = UPPL_RC_ERR_DB_ACCESS;
+    check_status = UNC_UPPL_RC_ERR_DB_ACCESS;
   } else if (check_db_status == ODBCM_RC_ROW_EXISTS) {
     pfc_log_debug("DB returned success for Row exists");
   } else {
     pfc_log_info("DB Returned failure for IsRowExists");
-    check_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+    check_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
   }
   pfc_log_debug("check_status = %d", check_status);
   return check_status;
@@ -813,7 +810,7 @@ UpplReturnCode Kt_Link::IsKeyExists(OdbcmConnectionHandler *db_conn,
  * row_status-CsRowStatus value
  * is_filtering-flag to indicate whether filter option is enabled
  * is_state-flag to indicate whether data type is DT_STATE
- * @return    : UPPL_RC_SUCCESS or UPPL_RC_ERR*
+ * @return    : UNC_RC_SUCCESS or UNC_UPPL_RC_ERR*
  * */
 void Kt_Link::PopulateDBSchemaForKtTable(
     OdbcmConnectionHandler *db_conn,
@@ -1099,8 +1096,8 @@ void Kt_Link::FillLinkValueStructure(
     vect_obj_val_link.push_back(obj_val_link);
     // populate key structure
     link_id.push_back(obj_key_link);
-    pfc_log_debug("result - vect_obj_val_link size: %d",
-                  (unsigned int) vect_obj_val_link.size());
+    pfc_log_debug("result - vect_obj_val_link size: %"
+                   PFC_PFMT_SIZE_T, vect_obj_val_link.size());
   }
   return;
 }
@@ -1118,9 +1115,9 @@ void Kt_Link::FillLinkValueStructure(
  * sess-object of ServerSession where the arguments present
  * option1,option2-UNC_OPT1,OPT2_*,additional info for read operations
  * max_rep_ct-max no. of records to be read
- * @return    : UPPL_RC_SUCCESS or UPPL_RC_ERR*
+ * @return    : UNC_RC_SUCCESS or UNC_UPPL_RC_ERR*
  * */
-UpplReturnCode Kt_Link::PerformRead(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Link::PerformRead(OdbcmConnectionHandler *db_conn,
                                     uint32_t session_id,
                                     uint32_t configuration_id,
                                     void* key_struct,
@@ -1141,7 +1138,7 @@ UpplReturnCode Kt_Link::PerformRead(OdbcmConnectionHandler *db_conn,
       option1,
       option2,
       data_type,
-      0};
+      static_cast<uint32_t>(0)};
   if (operation_type == UNC_OP_READ) {
     max_rep_ct = 1;
   }
@@ -1149,19 +1146,19 @@ UpplReturnCode Kt_Link::PerformRead(OdbcmConnectionHandler *db_conn,
   key_link_t *obj_key_link = reinterpret_cast<key_link_t*>(key_struct);
   if (option1 != UNC_OPT1_NORMAL) {
     pfc_log_error("PerformRead provided on unsupported option1");
-    rsh.result_code = UPPL_RC_ERR_INVALID_OPTION1;
+    rsh.result_code = UNC_UPPL_RC_ERR_INVALID_OPTION1;
     int err = PhyUtil::sessOutRespHeader(sess, rsh);
     err |= sess.addOutput((uint32_t)UNC_KT_LINK);
     err |= sess.addOutput(*obj_key_link);
     if (err != 0) {
       pfc_log_debug("addOutput failed for physical_response_header");
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 
 
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
   // Read operations will return switch_st
   if ((unc_keytype_datatype_t)data_type == UNC_DT_STATE &&
       option1 == UNC_OPT1_NORMAL) {
@@ -1170,15 +1167,15 @@ UpplReturnCode Kt_Link::PerformRead(OdbcmConnectionHandler *db_conn,
         option2 != UNC_OPT2_MATCH_BOTH_SWITCH &&
         option2 != UNC_OPT2_NONE) {
       pfc_log_error("PerformRead provided on unsupported option2");
-      rsh.result_code = UPPL_RC_ERR_INVALID_OPTION2;
+      rsh.result_code = UNC_UPPL_RC_ERR_INVALID_OPTION2;
       int err = PhyUtil::sessOutRespHeader(sess, rsh);
       err |= sess.addOutput((uint32_t)UNC_KT_LINK);
       err |= sess.addOutput(*obj_key_link);
       if (err != 0) {
         pfc_log_debug("addOutput failed for physical_response_header");
-        return UPPL_RC_ERR_IPC_WRITE_ERROR;
+        return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
       }
-      return UPPL_RC_SUCCESS;
+      return UNC_RC_SUCCESS;
     }
     vector<key_link_t> vect_link_id;
     vector<val_link_t> vect_val_link;
@@ -1197,16 +1194,16 @@ UpplReturnCode Kt_Link::PerformRead(OdbcmConnectionHandler *db_conn,
     int err = PhyUtil::sessOutRespHeader(sess, rsh);
     if (err != 0) {
       pfc_log_error("Failure in addOutput");
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
-    if (read_status != UPPL_RC_SUCCESS) {
+    if (read_status != UNC_RC_SUCCESS) {
       pfc_log_error("Read operation failed with %d", read_status);
       sess.addOutput((uint32_t)UNC_KT_LINK);
       sess.addOutput(*obj_key_link);
-      return UPPL_RC_SUCCESS;
+      return UNC_RC_SUCCESS;
     }
-    pfc_log_debug("From db, vect_link_id size is %d",
-                  static_cast<int>(vect_link_id.size()));
+    pfc_log_debug("From db, vect_link_id size is %"
+                  PFC_PFMT_SIZE_T, vect_link_id.size());
     for (unsigned int index = 0;
         index < vect_link_id.size();
         ++index) {
@@ -1221,15 +1218,15 @@ UpplReturnCode Kt_Link::PerformRead(OdbcmConnectionHandler *db_conn,
   } else {
     // Invalid data type
     pfc_log_error("Read operation is provided on unsupported data type");
-    rsh.result_code = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    rsh.result_code = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
     int err = PhyUtil::sessOutRespHeader(sess, rsh);
     err |= sess.addOutput((uint32_t)UNC_KT_LINK);
     if (err != 0) {
       pfc_log_debug("addOutput failed for physical_response_header");
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /** ReadLinkValFromDB
@@ -1246,11 +1243,11 @@ UpplReturnCode Kt_Link::PerformRead(OdbcmConnectionHandler *db_conn,
  * option1,option2-additional info for read operations,UNC_OPT1/OPT2_* 
  * is_state-flag to indicate whether data type is DT_STATE
  * @return    : Success or associated error code,
- * UPPL_RC_SUCCESS is returned when the response
+ * UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_Link::ReadLinkValFromDB(
+UncRespCode Kt_Link::ReadLinkValFromDB(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     void* val_struct,
@@ -1264,10 +1261,10 @@ UpplReturnCode Kt_Link::ReadLinkValFromDB(
     pfc_bool_t is_state) {
   if (operation_type < UNC_OP_READ) {
     // Unsupported operation type for this function
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
   ODBCM_RC_STATUS read_db_status = ODBCM_RC_SUCCESS;
 
   // Construct TableAttrSchema structure
@@ -1300,15 +1297,16 @@ UpplReturnCode Kt_Link::ReadLinkValFromDB(
                        vect_prim_key_operations,
                        (unc_keytype_operation_t)operation_type, db_conn);
   } else if (operation_type == UNC_OP_READ_SIBLING) {
-    pfc_log_debug("Ktlink:Primarykeysize: %d",
-                    (uint32_t)kt_link_dbtableschema.primary_keys_.size());
+    pfc_log_debug("Ktlink:Primarykeysize: %"
+                    PFC_PFMT_SIZE_T,
+                    kt_link_dbtableschema.primary_keys_.size());
     pfc_log_debug("Inside READ SIBLING part");
     uint32_t index = 0;
     uint32_t no_of_query = 4;  // Link has 4 primary keys other than controller
     for (; index < no_of_query ; ++index) {
       if (kt_link_dbtableschema.primary_keys_.size() < 2) {
         pfc_log_debug("No record found");
-        read_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+        read_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
         break;
       }
       read_db_status = physical_layer->get_odbc_manager()-> \
@@ -1318,14 +1316,14 @@ UpplReturnCode Kt_Link::ReadLinkValFromDB(
                   db_conn);
          kt_link_dbtableschema.primary_keys_.pop_back();
       if (read_db_status == ODBCM_RC_RECORD_NOT_FOUND) {
-        read_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+        read_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
       } else if (read_db_status == ODBCM_RC_CONNECTION_ERROR) {
-         read_status = UPPL_RC_ERR_DB_ACCESS;
+         read_status = UNC_UPPL_RC_ERR_DB_ACCESS;
          pfc_log_error("Read operation has failed with error %d",
                                   read_db_status);
          return read_status;
       } else if (read_db_status == ODBCM_RC_SUCCESS) {
-        read_status = UPPL_RC_SUCCESS;
+        read_status = UNC_RC_SUCCESS;
         uint32_t max_rep_ct_new = 0;
         pfc_log_debug("Received success response from db");
         FillLinkValueStructure(db_conn, kt_link_dbtableschema,
@@ -1340,16 +1338,16 @@ UpplReturnCode Kt_Link::ReadLinkValFromDB(
         }
         max_rep_ct -= max_rep_ct_new;
       } else {
-        read_status = UPPL_RC_ERR_DB_GET;
+        read_status = UNC_UPPL_RC_ERR_DB_GET;
         return read_status;
       }
     }  // for end
     if (vect_val_link_st.empty() && index == 4) {
       pfc_log_debug("No record found");
-      read_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+      read_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     } else if (!vect_val_link_st.empty()) {
       max_rep_ct = vect_val_link_st.size();
-      read_status = UPPL_RC_SUCCESS;
+      read_status = UNC_RC_SUCCESS;
     }
     return read_status;
   } else {
@@ -1362,14 +1360,14 @@ UpplReturnCode Kt_Link::ReadLinkValFromDB(
   // except read sibling - all other reads following block will fill the values
   if (read_db_status == ODBCM_RC_RECORD_NOT_FOUND) {
     pfc_log_debug("No record found");
-    read_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+    read_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     return read_status;
   } else if (read_db_status == ODBCM_RC_CONNECTION_ERROR) {
-    read_status = UPPL_RC_ERR_DB_ACCESS;
+    read_status = UNC_UPPL_RC_ERR_DB_ACCESS;
     pfc_log_error("Read operation has failed with error %d", read_db_status);
     return read_status;
   } else if (read_db_status != ODBCM_RC_SUCCESS) {
-    read_status = UPPL_RC_ERR_DB_GET;
+    read_status = UNC_UPPL_RC_ERR_DB_GET;
     // log error to log daemon
     pfc_log_error("Read operation has failed with error %d", read_db_status);
     return read_status;
@@ -1380,12 +1378,12 @@ UpplReturnCode Kt_Link::ReadLinkValFromDB(
                          max_rep_ct,
                          operation_type,
                          link_id);
-  pfc_log_debug("vect_val_link_st size: %d",
-                (unsigned int)vect_val_link_st.size());
-  pfc_log_debug("link_id size: %d", (unsigned int)link_id.size());
+  pfc_log_debug("vect_val_link_st size: %"
+                PFC_PFMT_SIZE_T, vect_val_link_st.size());
+  pfc_log_debug("link_id size: %" PFC_PFMT_SIZE_T, link_id.size());
   if (vect_val_link_st.empty()) {
     // Read failed , return error
-    read_status = UPPL_RC_ERR_DB_GET;
+    read_status = UNC_UPPL_RC_ERR_DB_GET;
     // log error to log daemon
     pfc_log_error("Read operation has failed after reading response");
     return read_status;
@@ -1436,16 +1434,16 @@ void Kt_Link::Fill_Attr_Syntax_Map() {
  * @param[in] : key_struct-void* to link key structure
  * val_link_valid_st-instance of val_link_st_t
  * @return    : Success or associated error code
- * UPPL_RC_SUCCESS is returned when the response
+ * UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_Link::GetLinkValidFlag(
+UncRespCode Kt_Link::GetLinkValidFlag(
     OdbcmConnectionHandler *db_conn,
     void *key_struct,
     val_link_st_t &val_link_valid_st,
     uint32_t data_type) {
-  UpplReturnCode return_code = UPPL_RC_SUCCESS;
+  UncRespCode return_code = UNC_RC_SUCCESS;
   vector<void *> vectVal_link;
   vector<void *> vectkey_link;
   vectkey_link.push_back(key_struct);
@@ -1453,7 +1451,7 @@ UpplReturnCode Kt_Link::GetLinkValidFlag(
   return_code = ReadInternal(db_conn, vectkey_link,
                              vectVal_link,
                              data_type, UNC_OP_READ);
-  if (return_code == UPPL_RC_SUCCESS) {
+  if (return_code == UNC_RC_SUCCESS) {
     val_link_st_t *obj_new_link_val_vect =
         reinterpret_cast<val_link_st_t*> (vectVal_link[0]);
     if (obj_new_link_val_vect != NULL) {
@@ -1483,11 +1481,11 @@ UpplReturnCode Kt_Link::GetLinkValidFlag(
  * param[out]:
  * oper_status-indicates the oper status of link whether up or down
  * @return    : Success or associated error code
- * UPPL_RC_SUCCESS is returned when the response
+ * UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  */
-UpplReturnCode Kt_Link::GetOperStatus(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Link::GetOperStatus(OdbcmConnectionHandler *db_conn,
                                       uint32_t data_type,
                                       void* key_struct,
                                       uint8_t &oper_status) {
@@ -1557,7 +1555,7 @@ UpplReturnCode Kt_Link::GetOperStatus(OdbcmConnectionHandler *db_conn,
           kt_link_dbtableschema, db_conn);
   if (update_db_status != ODBCM_RC_SUCCESS) {
     pfc_log_info("oper_status read operation failed %d", update_db_status);
-    return UPPL_RC_ERR_DB_GET;
+    return UNC_UPPL_RC_ERR_DB_GET;
   }
 
   // read the oper_status value
@@ -1585,7 +1583,7 @@ UpplReturnCode Kt_Link::GetOperStatus(OdbcmConnectionHandler *db_conn,
       }
     }
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /** FrameValidValue
@@ -1593,9 +1591,9 @@ UpplReturnCode Kt_Link::GetOperStatus(OdbcmConnectionHandler *db_conn,
  * @param[in] : attr_value-attribute value in string
  * obj_val_link-object of val_link_st
  * @return    : Success or associated error code
- * UPPL_RC_SUCCESS is returned when the response
+ * UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
 void Kt_Link::FrameValidValue(string attr_value,
                               val_link_st &obj_val_link) {
@@ -1624,9 +1622,9 @@ void Kt_Link::FrameValidValue(string attr_value,
  * vect_prim_keys-vector<string> conatining link keys
  * vect_prim_keys_operation-instance of vector<ODBCMOperator>
  * @return    : Success or associated error code
- * UPPL_RC_SUCCESS is returned when the response
+ * UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
 void Kt_Link::PopulatePrimaryKeys(
     uint32_t operation_type,
index 4f428acc8eef2beb9abe7df0ad3a4ec07d0e271e..ae79502b69ecff54c7d983e429078c6e3a53b9bb 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -46,22 +46,22 @@ Kt_LogicalMemberPort::~Kt_LogicalMemberPort() {
  * key_struct - the key for the new kt logicalmemberport instance
  * data_type - UNC_DT_* , delete only allowed in state
  * key_type-UNC_KT_LOGICAL_MEMBER_PORT,value of unc_key_type_t
- * @return    : UPPL_RC_SUCCESS is returned when the delete
+ * @return    : UNC_RC_SUCCESS is returned when the delete
  * is done successfully.
- * UPPL_RC_ERR_* is returned when the delete is error
+ * UNC_UPPL_RC_ERR_* is returned when the delete is error
  * */
-UpplReturnCode Kt_LogicalMemberPort::DeleteKeyInstance(
+UncRespCode Kt_LogicalMemberPort::DeleteKeyInstance(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     uint32_t data_type,
     uint32_t key_type) {
-  UpplReturnCode delete_status = UPPL_RC_SUCCESS;
+  UncRespCode delete_status = UNC_RC_SUCCESS;
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
   // Check whether operation is allowed on the given DT type
   if (((unc_keytype_datatype_t)data_type != UNC_DT_STATE) &&
       ((unc_keytype_datatype_t)data_type != UNC_DT_IMPORT)) {
     pfc_log_error("Delete operation is provided on unsupported data type");
-    return UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    return UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
   }
 
   key_logical_member_port_t *obj_key_logical_member_port =
@@ -133,14 +133,14 @@ UpplReturnCode Kt_LogicalMemberPort::DeleteKeyInstance(
     if (delete_db_status == ODBCM_RC_CONNECTION_ERROR) {
       // log fatal error to log daemon
       pfc_log_fatal("DB connection not available or cannot access DB");
-      delete_status = UPPL_RC_ERR_DB_ACCESS;
+      delete_status = UNC_UPPL_RC_ERR_DB_ACCESS;
     } else if (delete_db_status == ODBCM_RC_ROW_NOT_EXISTS) {
-      delete_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+      delete_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     } else {
       // log error to log daemon
       pfc_log_error("DeleteOneRow error response from DB is %d",
                     delete_db_status);
-      delete_status = UPPL_RC_ERR_DB_DELETE;
+      delete_status = UNC_UPPL_RC_ERR_DB_DELETE;
     }
   } else {
     pfc_log_info("Delete of a logical member port in data_type(%d) is success",
@@ -162,11 +162,11 @@ UpplReturnCode Kt_LogicalMemberPort::DeleteKeyInstance(
  * max_rep_ct - specifies number of rows to be returned
  * parent_call - indicates whether parent has called this readbulk
  * is_read_next - indicates whether this function is invoked from readnext
- * @return    : UPPL_RC_SUCCESS is returned when the response
+ * @return    : UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_LogicalMemberPort::ReadBulk(
+UncRespCode Kt_LogicalMemberPort::ReadBulk(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     uint32_t data_type,
@@ -175,7 +175,7 @@ UpplReturnCode Kt_LogicalMemberPort::ReadBulk(
     pfc_bool_t parent_call,
     pfc_bool_t is_read_next,
     ReadRequest *read_req) {
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
   key_logical_member_port_t* obj_key_logical_member_port =
       reinterpret_cast<key_logical_member_port_t*>(key_struct);
   string switch_id =
@@ -194,12 +194,12 @@ UpplReturnCode Kt_LogicalMemberPort::ReadBulk(
     // Not supported
     pfc_log_debug("ReadBulk operation is not allowed in %d data type",
                   data_type);
-    read_status = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    read_status = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
     pfc_log_debug("read_status=%d", read_status);
     return read_status;
   }
   if (max_rep_ct == 0) {
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   vector<key_logical_member_port_t> vect_logical_mem_port;
   // Read the controller values based on given key structure
@@ -209,7 +209,7 @@ UpplReturnCode Kt_LogicalMemberPort::ReadBulk(
                                  vect_logical_mem_port);
 
   pfc_log_debug("read_status from _logical_member_port is %d", read_status);
-  if (read_status == UPPL_RC_SUCCESS) {
+  if (read_status == UNC_RC_SUCCESS) {
     vector<key_logical_member_port_t> ::iterator logical_mem_port_iter =
         vect_logical_mem_port.begin();
     for (; logical_mem_port_iter != vect_logical_mem_port.end();
@@ -237,7 +237,7 @@ UpplReturnCode Kt_LogicalMemberPort::ReadBulk(
         return read_status;
       }
     }
-  } else if (read_status == UPPL_RC_ERR_DB_ACCESS) {
+  } else if (read_status == UNC_UPPL_RC_ERR_DB_ACCESS) {
     pfc_log_debug("KtLogicalMemberPort ReadBulk - Returning DB Access Error");
     return read_status;
   }
@@ -268,12 +268,12 @@ UpplReturnCode Kt_LogicalMemberPort::ReadBulk(
         read_req);
     pfc_log_debug("read status from next kin Kt_LogicalPort is %d",
                   read_status);
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   pfc_log_debug("log_mem_port reached end of table");
   pfc_log_debug("read_status=%d", read_status);
-  if (read_status == UPPL_RC_ERR_NO_SUCH_INSTANCE) {
-    read_status = UPPL_RC_SUCCESS;
+  if (read_status == UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE) {
+    read_status = UNC_RC_SUCCESS;
   }
   return read_status;
 }
@@ -286,21 +286,21 @@ UpplReturnCode Kt_LogicalMemberPort::ReadBulk(
  * max_rep_ct - specifies number of rows to be returned
  * data_type-UNC_DT_*,type of database
  * vect_logical_mem_port-instance of vector<key_logical_member_port_t> 
- * @return    : UPPL_RC_SUCCESS is returned when the response
+ * @return    : UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_LogicalMemberPort::ReadBulkInternal(
+UncRespCode Kt_LogicalMemberPort::ReadBulkInternal(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     uint32_t data_type,
     uint32_t max_rep_ct,
     vector<key_logical_member_port_t> &vect_logical_mem_port) {
   if (max_rep_ct <= 0) {
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
   ODBCM_RC_STATUS read_db_status = ODBCM_RC_SUCCESS;
   DBTableSchema kt_logical_member_port_dbtableschema;
 
@@ -325,7 +325,7 @@ UpplReturnCode Kt_LogicalMemberPort::ReadBulkInternal(
   for (; index < no_of_query; ++index) {
     if (kt_logical_member_port_dbtableschema.primary_keys_.size() < 3) {
       pfc_log_debug("No record found");
-      read_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+      read_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
       break;
     }
     // Read rows from DB
@@ -335,20 +335,20 @@ UpplReturnCode Kt_LogicalMemberPort::ReadBulkInternal(
                     (unc_keytype_operation_t)UNC_OP_READ_BULK, db_conn);
     if (read_db_status == ODBCM_RC_RECORD_NOT_FOUND) {
       pfc_log_debug("No record found");
-      read_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+      read_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
       // Update the primary key vector
       kt_logical_member_port_dbtableschema.primary_keys_.pop_back();
       pfc_log_debug(
-          "Primary key vector size %d",
-          static_cast<int>
-      (kt_logical_member_port_dbtableschema.primary_keys_.size()));
+          "Primary key vector size %"
+          PFC_PFMT_SIZE_T,
+      kt_logical_member_port_dbtableschema.primary_keys_.size());
     } else if (read_db_status == ODBCM_RC_CONNECTION_ERROR) {
-      read_status = UPPL_RC_ERR_DB_ACCESS;
+      read_status = UNC_UPPL_RC_ERR_DB_ACCESS;
       pfc_log_error("Read operation has failed with error %d",
                      read_db_status);
       break;
     } else if (read_db_status == ODBCM_RC_SUCCESS) {
-      read_status = UPPL_RC_SUCCESS;
+      read_status = UNC_RC_SUCCESS;
       uint32_t max_rep_ct_new = 0;
       pfc_log_debug("Received success response from db");
       // From the values received from DB, populate val structure
@@ -366,7 +366,7 @@ UpplReturnCode Kt_LogicalMemberPort::ReadBulkInternal(
       max_rep_ct -= max_rep_ct_new;
       kt_logical_member_port_dbtableschema.primary_keys_.pop_back();
     } else {
-      read_status = UPPL_RC_ERR_DB_GET;
+      read_status = UNC_UPPL_RC_ERR_DB_GET;
       // log error to log daemon
       pfc_log_error("Read operation has failed");
      break;
@@ -374,9 +374,9 @@ UpplReturnCode Kt_LogicalMemberPort::ReadBulkInternal(
   }  // for end
   if (vect_logical_mem_port.empty() && index == 2) {
      pfc_log_debug("No record found");
-     read_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+     read_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
   } else if (!vect_logical_mem_port.empty()) {
-     read_status = UPPL_RC_SUCCESS;
+     read_status = UNC_RC_SUCCESS;
   }
   return read_status;
 }
@@ -389,21 +389,21 @@ UpplReturnCode Kt_LogicalMemberPort::ReadBulkInternal(
  * value_struct - the value for the kt logicalmemberport instance
  * data_type - UNC_DT_*,type of database
  * operation_type - UNC_OP*,type of operation
- * @return    : UPPL_RC_SUCCESS is returned when the validation is successful
- * UPPL_RC_ERR_* is returned when validation is failure
+ * @return    : UNC_RC_SUCCESS is returned when the validation is successful
+ * UNC_UPPL_RC_ERR_* is returned when validation is failure
  * */
 
-UpplReturnCode Kt_LogicalMemberPort::PerformSyntaxValidation(
+UncRespCode Kt_LogicalMemberPort::PerformSyntaxValidation(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     void* val_struct,
     uint32_t operation,
     uint32_t data_type) {
   pfc_log_info("Syntax Validation of KT_LOGICAL_MEMBER_PORT");
-  UpplReturnCode ret_code = UPPL_RC_SUCCESS;
+  UncRespCode ret_code = UNC_RC_SUCCESS;
   if (val_struct != NULL) {
     pfc_log_error("KT_LOGICAL_MEMBER_PORT does not have any value structure");
-    return UPPL_RC_ERR_CFG_SYNTAX;
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
 
   // Validate Key Structure
@@ -415,39 +415,39 @@ UpplReturnCode Kt_LogicalMemberPort::PerformSyntaxValidation(
   map<string, Kt_Class_Attr_Syntax> attr_syntax_map =
         attr_syntax_map_all[UNC_KT_LOGICAL_MEMBER_PORT];
   IS_VALID_STRING_KEY(LMP_SWITCH_ID_STR, value, operation, ret_code, mandatory);
-  if (ret_code != UPPL_RC_SUCCESS) {
-    return UPPL_RC_ERR_CFG_SYNTAX;
+  if (ret_code != UNC_RC_SUCCESS) {
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
 
 
   value = reinterpret_cast<char*>(key->physical_port_id);
   IS_VALID_STRING_KEY(LMP_PHYSICAL_PORT_ID_STR, value, operation,
                       ret_code, mandatory);
-  if (ret_code != UPPL_RC_SUCCESS) {
-    return UPPL_RC_ERR_CFG_SYNTAX;
+  if (ret_code != UNC_RC_SUCCESS) {
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
 
   value = reinterpret_cast<char*>(key->logical_port_key.port_id);
   IS_VALID_STRING_KEY(LMP_LP_PORT_ID_STR, value, operation,
                       ret_code, mandatory);
-  if (ret_code != UPPL_RC_SUCCESS) {
-    return UPPL_RC_ERR_CFG_SYNTAX;
+  if (ret_code != UNC_RC_SUCCESS) {
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
 
   value = reinterpret_cast<char*>
   (key->logical_port_key.domain_key.domain_name);
   IS_VALID_STRING_KEY(DOMAIN_NAME_STR, value, operation,
                       ret_code, mandatory);
-  if (ret_code != UPPL_RC_SUCCESS) {
-    return UPPL_RC_ERR_CFG_SYNTAX;
+  if (ret_code != UNC_RC_SUCCESS) {
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
 
   value = reinterpret_cast<char*>(key->
       logical_port_key.domain_key.ctr_key.controller_name);
   IS_VALID_STRING_KEY(CTR_NAME_STR, value, operation,
                       ret_code, mandatory);
-  if (ret_code != UPPL_RC_SUCCESS) {
-    return UPPL_RC_ERR_CFG_SYNTAX;
+  if (ret_code != UNC_RC_SUCCESS) {
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
   return ret_code;
 }
@@ -459,18 +459,18 @@ UpplReturnCode Kt_LogicalMemberPort::PerformSyntaxValidation(
  * value_struct - specifies value of KTLOGICAL_MEMBER_PORT
  * operation - UNC_OP*,type of operation
  * data_type - UNC_DT*,type of database
- * @return    : UPPL_RC_SUCCESS if semantic valition is successful
- * or UPPL_RC_ERR_* if failed
+ * @return    : UNC_RC_SUCCESS if semantic valition is successful
+ * or UNC_UPPL_RC_ERR_* if failed
  * */
 
-UpplReturnCode Kt_LogicalMemberPort::PerformSemanticValidation(
+UncRespCode Kt_LogicalMemberPort::PerformSemanticValidation(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     void* val_struct,
     uint32_t operation,
     uint32_t data_type) {
   pfc_log_debug("Inside PerformSemanticValidation of KT_LOGICAL_MEMBER_PORT");
-  UpplReturnCode status = UPPL_RC_SUCCESS;
+  UncRespCode status = UNC_RC_SUCCESS;
 
   key_logical_member_port_t *obj_key_logical_member_port =
       reinterpret_cast<key_logical_member_port_t*>(key_struct);
@@ -494,48 +494,48 @@ UpplReturnCode Kt_LogicalMemberPort::PerformSemanticValidation(
   vect_key_value.push_back(switch_id);
   vect_key_value.push_back(physical_port_id);
 
-  UpplReturnCode KeyStatus = IsKeyExists(db_conn,
+  UncRespCode KeyStatus = IsKeyExists(db_conn,
                                          (unc_keytype_datatype_t)data_type,
                                          vect_key_value);
   pfc_log_debug("return value of IsKeyExists:%d", KeyStatus);
-  // KeyStatus = UPPL_RC_SUCCESS; //to be removed
+  // KeyStatus = UNC_RC_SUCCESS; //to be removed
   if (operation == UNC_OP_UPDATE || operation == UNC_OP_DELETE ||
       operation == UNC_OP_READ) {
-    if (KeyStatus == UPPL_RC_ERR_DB_ACCESS) {
+    if (KeyStatus == UNC_UPPL_RC_ERR_DB_ACCESS) {
       pfc_log_error("DB Access failure");
       status = KeyStatus;
-    } else if (KeyStatus != UPPL_RC_SUCCESS) {
+    } else if (KeyStatus != UNC_RC_SUCCESS) {
       pfc_log_info("LogicalMemberPort key does not exist and"
           " hence read/delete/update operation not allowed");
-      status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+      status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     } else {
       pfc_log_info("key instance exist update/del/read operation allowed");
     }
   }
   if (operation == UNC_OP_CREATE) {
-    if (KeyStatus == UPPL_RC_SUCCESS) {
+    if (KeyStatus == UNC_RC_SUCCESS) {
       pfc_log_info("LogicalMemberPort key already exist and"
           " hence create operation not allowed");
-      status = UPPL_RC_ERR_INSTANCE_EXISTS;
-    } else if (KeyStatus == UPPL_RC_ERR_DB_ACCESS) {
+      status = UNC_UPPL_RC_ERR_INSTANCE_EXISTS;
+    } else if (KeyStatus == UNC_UPPL_RC_ERR_DB_ACCESS) {
       pfc_log_error("DB Access failure");
       status = KeyStatus;
     } else {
       pfc_log_info("key instance not exist create operation allowed");
     }
   }
-  if (operation == UNC_OP_CREATE && status == UPPL_RC_SUCCESS) {
+  if (operation == UNC_OP_CREATE && status == UNC_RC_SUCCESS) {
     vector<string> parent_vect_key_value;
     parent_vect_key_value.push_back(controller_name);
     parent_vect_key_value.push_back(domain_name);
     parent_vect_key_value.push_back(port_id);
     pfc_log_info("calling KtLogicalPort IsKeyExists function");
     Kt_LogicalPort KtObj;
-    UpplReturnCode parent_key_status = KtObj.IsKeyExists(
+    UncRespCode parent_key_status = KtObj.IsKeyExists(
         db_conn, (unc_keytype_datatype_t)data_type, parent_vect_key_value);
     pfc_log_debug("Parent IsKeyExists status %d", parent_key_status);
-    if (parent_key_status != UPPL_RC_SUCCESS) {
-      status = UPPL_RC_ERR_PARENT_DOES_NOT_EXIST;
+    if (parent_key_status != UNC_RC_SUCCESS) {
+      status = UNC_UPPL_RC_ERR_PARENT_DOES_NOT_EXIST;
     }
   }
   pfc_log_debug("status before returning=%d", status);
@@ -547,19 +547,19 @@ UpplReturnCode Kt_LogicalMemberPort::PerformSemanticValidation(
  *  logicalmemberport_id exists in DB
  * @param[in] : data_type-UNC_DT_*,type of database
  * key_values-vector of strings containing key values
- * @return    : Success or associated error code,UPPL_RC_SUCCESS/UPPL_RC_ERR*
+ * @return    : Success or associated error code,UNC_RC_SUCCESS/UNC_UPPL_RC_ERR*
  * */
-UpplReturnCode Kt_LogicalMemberPort::IsKeyExists(
+UncRespCode Kt_LogicalMemberPort::IsKeyExists(
     OdbcmConnectionHandler *db_conn,
     unc_keytype_datatype_t data_type,
     const vector<string> &key_values) {
   PhysicalLayer* physical_layer = PhysicalLayer::get_instance();
-  UpplReturnCode check_status = UPPL_RC_SUCCESS;
+  UncRespCode check_status = UNC_RC_SUCCESS;
 
   if (key_values.empty()) {
     // No key given, return failure
     pfc_log_error("No key given. Returning error");
-    return UPPL_RC_ERR_BAD_REQUEST;
+    return UNC_UPPL_RC_ERR_BAD_REQUEST;
   }
 
   string controller_name = key_values[0];
@@ -618,12 +618,12 @@ UpplReturnCode Kt_LogicalMemberPort::IsKeyExists(
   if (check_db_status == ODBCM_RC_CONNECTION_ERROR) {
     // log error to log daemon
     pfc_log_error("DB connection not available or cannot access DB");
-    check_status = UPPL_RC_ERR_DB_ACCESS;
+    check_status = UNC_UPPL_RC_ERR_DB_ACCESS;
   } else if (check_db_status == ODBCM_RC_ROW_EXISTS) {
     pfc_log_debug("DB returned success for Row exists");
   } else {
     pfc_log_info("DB Returned failure for IsRowExists");
-    check_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+    check_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
   }
   pfc_log_debug("check_status = %d", check_status);
   return check_status;
@@ -642,7 +642,7 @@ UpplReturnCode Kt_LogicalMemberPort::IsKeyExists(
  * row_status- value of CsRowStatus
  * is_filtering-flag to indicate whether filter option is enabled
  * is_state-flag to indicate whether datatype is DT_STATE
- * @return    : Success or associated error code,UPPL_RC_SUCCESS/ERR*
+ * @return    : Success or associated error code,UNC_RC_SUCCESS/ERR*
  * */
 void Kt_LogicalMemberPort::PopulateDBSchemaForKtTable(
     OdbcmConnectionHandler *db_conn,
@@ -768,7 +768,7 @@ void Kt_LogicalMemberPort::PopulateDBSchemaForKtTable(
  * max_rep_ct-maximum no. of records to be read
  * operation_type-UNC_OP_*,type of database
  * logical_mem_port-instance of vector<key_logical_member_port_t>
- * @return    : Success or associated error code,UPPL_RC_SUCCESS/ERR*
+ * @return    : Success or associated error code,UNC_RC_SUCCESS/ERR*
  * */
 void Kt_LogicalMemberPort::FillLogicalMemberPortValueStructure(
     OdbcmConnectionHandler *db_conn,
@@ -854,7 +854,7 @@ void Kt_LogicalMemberPort::FillLogicalMemberPortValueStructure(
       }
     }
     logical_mem_port.push_back(obj_key_logical_mem_port);
-    pfc_log_debug("Vector size %zd", logical_mem_port.size());
+    pfc_log_debug("Vector size %"PFC_PFMT_SIZE_T, logical_mem_port.size());
   }
   return;
 }
@@ -873,9 +873,9 @@ void Kt_LogicalMemberPort::FillLogicalMemberPortValueStructure(
  * operation_type-type of operation,UNC_OP_READ*
  * max_rep_ct-max.no of records to be read
  * @param[out]: sess-ServerSession object where the arguments present
- * @return    : Success or associated error code,UPPL_RC_SUCCESS/ERR*
+ * @return    : Success or associated error code,UNC_RC_SUCCESS/ERR*
  * */
-UpplReturnCode Kt_LogicalMemberPort::PerformRead(
+UncRespCode Kt_LogicalMemberPort::PerformRead(
     OdbcmConnectionHandler *db_conn,
     uint32_t session_id,
     uint32_t configuration_id,
@@ -896,51 +896,51 @@ UpplReturnCode Kt_LogicalMemberPort::PerformRead(
       option1,
       option2,
       data_type,
-      0};
+      static_cast<uint32_t>(0)};
 
   if (operation_type == UNC_OP_READ) {
     max_rep_ct = 1;
   }
 
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
   key_logical_member_port_t *obj_key_logical_member_port =
       reinterpret_cast<key_logical_member_port_t*>(key_struct);
   if (option1 != UNC_OPT1_NORMAL) {
     pfc_log_error("Invalid option1 specified for read operation");
-    rsh.result_code = UPPL_RC_ERR_INVALID_OPTION1;
+    rsh.result_code = UNC_UPPL_RC_ERR_INVALID_OPTION1;
     int err = PhyUtil::sessOutRespHeader(sess, rsh);
     err |= sess.addOutput((uint32_t)UNC_KT_LOGICAL_MEMBER_PORT);
     err |= sess.addOutput(*obj_key_logical_member_port);
     if (err != 0) {
       pfc_log_debug("addOutput failed for physical_response_header");
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   if (option2 != UNC_OPT2_NONE) {
     pfc_log_error("Invalid option2 specified for read operation");
-    rsh.result_code = UPPL_RC_ERR_INVALID_OPTION2;
+    rsh.result_code = UNC_UPPL_RC_ERR_INVALID_OPTION2;
     int err = PhyUtil::sessOutRespHeader(sess, rsh);
     err |= sess.addOutput((uint32_t)UNC_KT_LOGICAL_MEMBER_PORT);
     err |= sess.addOutput(*obj_key_logical_member_port);
     if (err != 0) {
       pfc_log_debug("addOutput failed for physical_response_header");
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   // Read from DB directly for non state data types
   if ((unc_keytype_datatype_t)data_type != UNC_DT_STATE) {
     pfc_log_error("Read operation is provided on unsupported data type");
-    rsh.result_code = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    rsh.result_code = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
     int err = PhyUtil::sessOutRespHeader(sess, rsh);
     err |= sess.addOutput((uint32_t)UNC_KT_LOGICAL_MEMBER_PORT);
     err |= sess.addOutput(*obj_key_logical_member_port);
     if (err != 0) {
       pfc_log_debug("addOutput failed for physical_response_header");
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   vector<key_logical_member_port_t> vect_logical_mem_port;
   read_status = ReadLogicalMemberPortValFromDB(db_conn,
@@ -949,18 +949,18 @@ UpplReturnCode Kt_LogicalMemberPort::PerformRead(
                                                operation_type,
                                                max_rep_ct,
                                                vect_logical_mem_port);
-  pfc_log_debug("size of vect_logical_mem_port=%zd",
-                vect_logical_mem_port.size());
+  pfc_log_debug("size of vect_logical_mem_port=%"
+                PFC_PFMT_SIZE_T, vect_logical_mem_port.size());
   pfc_log_debug("read_status of ReadLogicalMemberPortValFromDB = %d",
-                read_status);
+                 read_status);
   rsh.result_code = read_status;
   rsh.max_rep_count = max_rep_ct;
   int err = PhyUtil::sessOutRespHeader(sess, rsh);
   if (err != 0) {
     pfc_log_error("Failure in addOutput");
-    return UPPL_RC_ERR_IPC_WRITE_ERROR;
+    return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
   }
-  if (read_status == UPPL_RC_SUCCESS) {
+  if (read_status == UNC_RC_SUCCESS) {
     for (unsigned int index = 0;
         index < vect_logical_mem_port.size();
         ++index) {
@@ -975,7 +975,7 @@ UpplReturnCode Kt_LogicalMemberPort::PerformRead(
     sess.addOutput((uint32_t)UNC_KT_LOGICAL_MEMBER_PORT);
     sess.addOutput(*obj_key_logical_member_port);
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /** ReadLogicalMemberPortValFromDB
@@ -988,9 +988,9 @@ UpplReturnCode Kt_LogicalMemberPort::PerformRead(
  * max_rep_ct-max. no of records to be read
  * logical_mem_port-instance of vector<key_logical_member_port_t>
  * is_state-flag to indicate whether datatype is DT_STATE
- * @return    : Success or associated error code,UPPL_RC_SUCCESS/ERR*            
+ * @return    : Success or associated error code,UNC_RC_SUCCESS/ERR*            
  * */
-UpplReturnCode Kt_LogicalMemberPort::ReadLogicalMemberPortValFromDB(
+UncRespCode Kt_LogicalMemberPort::ReadLogicalMemberPortValFromDB(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     uint32_t data_type,
@@ -1000,10 +1000,10 @@ UpplReturnCode Kt_LogicalMemberPort::ReadLogicalMemberPortValFromDB(
     pfc_bool_t is_state) {
   if (operation_type < UNC_OP_READ) {
     // Unsupported operation type for this function
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
   ODBCM_RC_STATUS read_db_status = ODBCM_RC_SUCCESS;
 
   // Common structures that will be used to send query to ODBC
@@ -1037,7 +1037,7 @@ UpplReturnCode Kt_LogicalMemberPort::ReadLogicalMemberPortValFromDB(
     for (; index < no_of_query; ++index) {
       if (kt_logical_member_port_dbtableschema.primary_keys_.size() < 3) {
         pfc_log_debug("No record found");
-        read_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+        read_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
         break;
       }
       pfc_log_debug("LMP:Read Sibling");
@@ -1062,25 +1062,25 @@ UpplReturnCode Kt_LogicalMemberPort::ReadLogicalMemberPortValFromDB(
         max_rep_ct -= max_rep_ct_new;
         //  Update the primary key vector
         kt_logical_member_port_dbtableschema.primary_keys_.pop_back();
-        read_status = UPPL_RC_SUCCESS;
+        read_status = UNC_RC_SUCCESS;
       } else if (read_db_status == ODBCM_RC_CONNECTION_ERROR) {
-        read_status = UPPL_RC_ERR_DB_ACCESS;
+        read_status = UNC_UPPL_RC_ERR_DB_ACCESS;
         pfc_log_error("Read operation has failed with error %d",
                        read_db_status);
         return read_status;
       } else if (read_db_status == ODBCM_RC_RECORD_NOT_FOUND) {
         pfc_log_debug("No record found");
-        read_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+        read_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
         // Update the primary key vector
          kt_logical_member_port_dbtableschema.primary_keys_.pop_back();
       }
     }  // for end
     if (logical_mem_port.empty() && index == 2) {
       pfc_log_debug("No record found");
-      read_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+      read_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     } else if (!logical_mem_port.empty()) {
       max_rep_ct = logical_mem_port.size();
-      read_status = UPPL_RC_SUCCESS;
+      read_status = UNC_RC_SUCCESS;
     }
     return read_status;
   } else if (operation_type == UNC_OP_READ_SIBLING_BEGIN) {
@@ -1093,14 +1093,14 @@ UpplReturnCode Kt_LogicalMemberPort::ReadLogicalMemberPortValFromDB(
   }
   if (read_db_status == ODBCM_RC_RECORD_NOT_FOUND) {
     pfc_log_debug("No record found");
-    read_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+    read_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     return read_status;
   } else if (read_db_status == ODBCM_RC_CONNECTION_ERROR) {
-    read_status = UPPL_RC_ERR_DB_ACCESS;
+    read_status = UNC_UPPL_RC_ERR_DB_ACCESS;
     pfc_log_error("Read operation has failed with error %d", read_db_status);
     return read_status;
   } else if (read_db_status != ODBCM_RC_SUCCESS) {
-    read_status = UPPL_RC_ERR_DB_GET;
+    read_status = UNC_UPPL_RC_ERR_DB_GET;
     // log error to log daemon
     pfc_log_info("Read operation has failed with error %d", read_db_status);
     return read_status;
@@ -1110,8 +1110,8 @@ UpplReturnCode Kt_LogicalMemberPort::ReadLogicalMemberPortValFromDB(
                                       max_rep_ct,
                                       operation_type,
                                       logical_mem_port);
-  pfc_log_debug("logical_mem_port size: %d",
-                (unsigned int)logical_mem_port.size());
+  pfc_log_debug("logical_mem_port size: %"
+                PFC_PFMT_SIZE_T, logical_mem_port.size());
   return read_status;
 }
 
@@ -1152,11 +1152,11 @@ void Kt_LogicalMemberPort::Fill_Attr_Syntax_Map() {
  * val_struct - NULL
  * operation_type-UNC_OP_READ*,type of read operation
  * data_type - UNC_DT_* , read allowed in state,type of database
- * @return    : UPPL_RC_SUCCESS is returned when the response
+ * @return    : UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_LogicalMemberPort::ReadInternal(
+UncRespCode Kt_LogicalMemberPort::ReadInternal(
     OdbcmConnectionHandler *db_conn,
     vector<void *> &key_val,
     vector<void *> &val_struct,
@@ -1170,17 +1170,17 @@ UpplReturnCode Kt_LogicalMemberPort::ReadInternal(
   // Get read response from database
   void *key_struct = key_val[0];
   vector<key_logical_member_port_t> logical_mem_port;
-  UpplReturnCode read_status = ReadLogicalMemberPortValFromDB(db_conn,
+  UncRespCode read_status = ReadLogicalMemberPortValFromDB(db_conn,
                                                               key_struct,
                                                               data_type,
                                                               operation_type,
                                                               max_rep_ct,
                                                               logical_mem_port);
   pfc_log_info(
-      "ReadLogicalMemberPortValFromDB returned %d with response size %d",
-      read_status, static_cast<int>(logical_mem_port.size()));
+      "ReadLogicalMemberPortValFromDB returned %d with response size %"
+      PFC_PFMT_SIZE_T, read_status, logical_mem_port.size());
   key_val.clear();
-  if (read_status == UPPL_RC_SUCCESS) {
+  if (read_status == UNC_RC_SUCCESS) {
     for (unsigned int iIndex = 0 ; iIndex < logical_mem_port.size();
         ++iIndex) {
       key_logical_member_port_t *key_mem_port = new
index aea9c5339e8a43b1167b2c182e084af8846adc39..56fc1a460e789ef66893ae54df7413e8cde5fdfe 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -90,22 +90,22 @@ Kt_Base* Kt_LogicalPort::GetChildClassPointer(KtLogicalPortChildClass KIndex) {
  *                data type  - UNC_DT_*,delete allowed only in STATE and IMPORT
  *                key_type   - indicates the key type 
  * @return      : indicates the delete status of the row -
- *                UPPL_RC_SUCCESS is returned when delete is done successfully.
- *               UPPL_RC_ERR_* is returned when delete is failed       
+ *                UNC_RC_SUCCESS is returned when delete is done successfully.
+ *               UNC_UPPL_RC_ERR_* is returned when delete is failed   
  **/
-UpplReturnCode Kt_LogicalPort::DeleteKeyInstance(
+UncRespCode Kt_LogicalPort::DeleteKeyInstance(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     uint32_t data_type,
     uint32_t key_type) {
-  UpplReturnCode delete_status = UPPL_RC_SUCCESS;
+  UncRespCode delete_status = UNC_RC_SUCCESS;
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
 
   // Check whether operation is allowed on the given DT type
   if (((unc_keytype_datatype_t)data_type != UNC_DT_STATE) &&
       ((unc_keytype_datatype_t)data_type != UNC_DT_IMPORT)) {
     pfc_log_error("Delete operation is provided on unsupported data type");
-    delete_status = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    delete_status = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
     return delete_status;
   } else {
     pfc_log_debug("Delete instance for logical port is supported");
@@ -140,20 +140,20 @@ UpplReturnCode Kt_LogicalPort::DeleteKeyInstance(
     child[child_class] = GetChildClassPointer(
         (KtLogicalPortChildClass)child_class);
     if (child[child_class] != NULL) {
-      UpplReturnCode ch_delete_status = child[child_class]->DeleteKeyInstance(
+      UncRespCode ch_delete_status = child[child_class]->DeleteKeyInstance(
           db_conn, child_key_struct,
           data_type,
           UNC_KT_LOGICAL_MEMBER_PORT);
       delete child[child_class];
       child[child_class] = NULL;
       FreeChildKeyStruct(child_class, child_key_struct);
-      if (ch_delete_status == UPPL_RC_ERR_NO_SUCH_INSTANCE) {
+      if (ch_delete_status == UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE) {
         pfc_log_debug("No child exists");
-      } else if (ch_delete_status != UPPL_RC_SUCCESS) {
+      } else if (ch_delete_status != UNC_RC_SUCCESS) {
         // child delete failed, so return error
         pfc_log_error("Delete failed for child %d with error %d",
                       child_class, ch_delete_status);
-        delete_status = UPPL_RC_ERR_CFG_SEMANTIC;
+        delete_status = UNC_UPPL_RC_ERR_CFG_SEMANTIC;
         break;
       }
     } else {
@@ -205,21 +205,21 @@ UpplReturnCode Kt_LogicalPort::DeleteKeyInstance(
     if (delete_db_status == ODBCM_RC_CONNECTION_ERROR) {
       // log fatal error to log daemon
       pfc_log_fatal("DB connection not available or cannot access DB");
-      delete_status = UPPL_RC_ERR_DB_ACCESS;
+      delete_status = UNC_UPPL_RC_ERR_DB_ACCESS;
     } else if (delete_db_status == ODBCM_RC_ROW_NOT_EXISTS) {
       pfc_log_error("given instance does not exist");
-      delete_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+      delete_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     } else {
       // log error to log daemon
       pfc_log_error("Delete operation has failed in logicalport table");
-      delete_status = UPPL_RC_ERR_DB_DELETE;
+      delete_status = UNC_UPPL_RC_ERR_DB_DELETE;
     }
   } else {
     // deletion success send notification to boundary to
     // update operstatus to invalid
-    delete_status = UPPL_RC_SUCCESS;
+    delete_status = UNC_RC_SUCCESS;
     int err = InvokeBoundaryNotifyOperStatus(db_conn, data_type, key_struct);
-    if (err != UPPL_RC_SUCCESS) {
+    if (err != UNC_RC_SUCCESS) {
       pfc_log_error(
           "Delete instance: notify request for boundary is failed %d", err);
     }
@@ -237,10 +237,10 @@ UpplReturnCode Kt_LogicalPort::DeleteKeyInstance(
  *                operation_type - indicates the operation type supported i.e.
  *                                 UNC_OP_READ
  * @return      : It returns the read status of a row in logical port table
- *                UPPL_RC_SUCCESS - if read operation is success
- *                UPPL_RC_ERR_* - if read operation is a failure
+ *                UNC_RC_SUCCESS - if read operation is success
+ *                UNC_UPPL_RC_ERR_* - if read operation is a failure
  * */
-UpplReturnCode Kt_LogicalPort::ReadInternal(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_LogicalPort::ReadInternal(OdbcmConnectionHandler *db_conn,
                                             vector<void *> &key_val,
                                             vector<void *> &val_struct,
                                             uint32_t data_type,
@@ -259,7 +259,7 @@ UpplReturnCode Kt_LogicalPort::ReadInternal(OdbcmConnectionHandler *db_conn,
     void_val_struct = val_struct[0];
   }
   // Get read response from database
-  UpplReturnCode read_status = ReadLogicalPortValFromDB(
+  UncRespCode read_status = ReadLogicalPortValFromDB(
       db_conn, key_struct,
       void_val_struct,
       data_type,
@@ -270,7 +270,7 @@ UpplReturnCode Kt_LogicalPort::ReadInternal(OdbcmConnectionHandler *db_conn,
       vect_logicalport_id);
   key_val.clear();
   val_struct.clear();
-  if (read_status == UPPL_RC_SUCCESS) {
+  if (read_status == UNC_RC_SUCCESS) {
     pfc_log_debug("Read operation is success");
     for (unsigned int iIndex = 0 ; iIndex < vect_val_logical_port_st.size();
         ++iIndex) {
@@ -300,10 +300,10 @@ UpplReturnCode Kt_LogicalPort::ReadInternal(OdbcmConnectionHandler *db_conn,
  *                               function is invoked from readnext
  * @return      : It returns the read bulk operation status in
  *                logical port table
- *                UPPL_RC_SUCCESS - if read operation is success
- *                UPPL_RC_ERR_* - if read operation is a failure
+ *                UNC_RC_SUCCESS - if read operation is success
+ *                UNC_UPPL_RC_ERR_* - if read operation is a failure
  **/
-UpplReturnCode Kt_LogicalPort::ReadBulk(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_LogicalPort::ReadBulk(OdbcmConnectionHandler *db_conn,
                                         void* key_struct,
                                         uint32_t data_type,
                                         uint32_t &max_rep_ct,
@@ -311,14 +311,14 @@ UpplReturnCode Kt_LogicalPort::ReadBulk(OdbcmConnectionHandler *db_conn,
                                         pfc_bool_t parent_call,
                                         pfc_bool_t is_read_next,
                                         ReadRequest *read_req) {
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
   key_logical_port_t obj_key_logical_port=
       *(reinterpret_cast<key_logical_port_t*>(key_struct));
   if ((unc_keytype_datatype_t)data_type != UNC_DT_STATE) {
     // Not supported
     pfc_log_debug("ReadBulk operation is not allowed in %d data type",
                   data_type);
-    read_status = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    read_status = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
     return read_status;
   }
   string str_controller_name = reinterpret_cast<char *>(obj_key_logical_port.
@@ -334,7 +334,7 @@ UpplReturnCode Kt_LogicalPort::ReadBulk(OdbcmConnectionHandler *db_conn,
   // Check for child call
   if (max_rep_ct == 0) {
     pfc_log_info("max_rep_ct is 0");
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   if (child_index == -1 &&
       !str_logicalport_id.empty()) {
@@ -343,10 +343,10 @@ UpplReturnCode Kt_LogicalPort::ReadBulk(OdbcmConnectionHandler *db_conn,
     vect_key_value.push_back(str_controller_name);
     vect_key_value.push_back(str_domain_name);
     vect_key_value.push_back(str_logicalport_id);
-    UpplReturnCode key_exist_status = IsKeyExists(
+    UncRespCode key_exist_status = IsKeyExists(
         db_conn, (unc_keytype_datatype_t)data_type,
         vect_key_value);
-    if (key_exist_status == UPPL_RC_SUCCESS) {
+    if (key_exist_status == UNC_RC_SUCCESS) {
       log_port_exists = PFC_TRUE;
     }
   }
@@ -356,8 +356,8 @@ UpplReturnCode Kt_LogicalPort::ReadBulk(OdbcmConnectionHandler *db_conn,
                                  max_rep_ct, vect_val_logical_port_st,
                                  vect_logicalport_id);
 
-  pfc_log_debug("Read status from logical_port is %d with result size %d",
-                read_status, static_cast<int>(vect_logicalport_id.size()));
+  pfc_log_debug("Read status from logical_port is %d with result size %"
+                PFC_PFMT_SIZE_T, read_status, vect_logicalport_id.size());
   if (log_port_exists == PFC_TRUE) {
     vect_logicalport_id.insert(vect_logicalport_id.begin(),
                                obj_key_logical_port);
@@ -365,7 +365,7 @@ UpplReturnCode Kt_LogicalPort::ReadBulk(OdbcmConnectionHandler *db_conn,
     vect_val_logical_port_st.insert(vect_val_logical_port_st.begin(),
                                     dummy_val_log_port);
   }
-  if (read_status == UPPL_RC_SUCCESS ||
+  if (read_status == UNC_RC_SUCCESS ||
       log_port_exists == PFC_TRUE) {
     vector<val_logical_port_st_t>::iterator vect_iter =
         vect_val_logical_port_st.begin();
@@ -399,14 +399,15 @@ UpplReturnCode Kt_LogicalPort::ReadBulk(OdbcmConnectionHandler *db_conn,
         --max_rep_ct;
         if (max_rep_ct == 0) {
           pfc_log_debug("max_rep_ct reached zero, so returning");
-          return UPPL_RC_SUCCESS;
+          return UNC_RC_SUCCESS;
         }
       }
       log_port_exists = PFC_FALSE;
       str_logicalport_id =
           reinterpret_cast<char *>((*logicalport_iter).port_id);
       int st_child_index = KIdxLogicalMemberPort;
-      pfc_log_debug("child_index=%d st_child_index=%d", child_index, st_child_index);
+      pfc_log_debug("child_index=%d st_child_index=%d",
+                    child_index, st_child_index);
 /*
           (child_index >= 0 && child_index <= KIdxLogicalMemberPort) \
           ? child_index+1 : KIdxLogicalMemberPort;
@@ -426,7 +427,7 @@ UpplReturnCode Kt_LogicalPort::ReadBulk(OdbcmConnectionHandler *db_conn,
           continue;
         }
         pfc_log_debug("Calling child %d read bulk", kIdx);
-        UpplReturnCode ch_read_status = child[kIdx]->ReadBulk(
+        UncRespCode ch_read_status = child[kIdx]->ReadBulk(
             db_conn, child_key_struct,
             data_type,
             max_rep_ct,
@@ -441,13 +442,13 @@ UpplReturnCode Kt_LogicalPort::ReadBulk(OdbcmConnectionHandler *db_conn,
         FreeChildKeyStruct(kIdx, child_key_struct);
         if (max_rep_ct == 0) {
           pfc_log_debug("max_rep_ct reached zero, so returning");
-          return UPPL_RC_SUCCESS;
+          return UNC_RC_SUCCESS;
         }
       }
       // reset child index
       child_index = -1;
     }
-  } else if (read_status == UPPL_RC_ERR_DB_ACCESS) {
+  } else if (read_status == UNC_UPPL_RC_ERR_DB_ACCESS) {
     pfc_log_debug("KtLogicalPort ReadBulk - Returning DB Access Error");
     return read_status;
   }
@@ -474,12 +475,12 @@ UpplReturnCode Kt_LogicalPort::ReadBulk(OdbcmConnectionHandler *db_conn,
         read_req);
     pfc_log_debug("read status from next kin Kt_Domain is %d",
                   read_status);
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   pfc_log_debug("logical port - reached end of table");
   pfc_log_debug("read_status=%d", read_status);
-  if (read_status == UPPL_RC_ERR_NO_SUCH_INSTANCE) {
-    read_status = UPPL_RC_SUCCESS;
+  if (read_status == UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE) {
+    read_status = UNC_RC_SUCCESS;
   }
   return read_status;
 }
@@ -501,10 +502,10 @@ UpplReturnCode Kt_LogicalPort::ReadBulk(OdbcmConnectionHandler *db_conn,
  *                of logical port
  * @return      : It returns the read bulk operation status in logical port
  *                table
- *                UPPL_RC_SUCCESS - if read operation is success
- *                UPPL_RC_ERR_* - if read operation is a failure
+ *                UNC_RC_SUCCESS - if read operation is success
+ *                UNC_UPPL_RC_ERR_* - if read operation is a failure
  **/
-UpplReturnCode Kt_LogicalPort::ReadBulkInternal(
+UncRespCode Kt_LogicalPort::ReadBulkInternal(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     void* val_struct,
@@ -513,10 +514,10 @@ UpplReturnCode Kt_LogicalPort::ReadBulkInternal(
     vector<val_logical_port_st_t> &vect_val_logical_port,
     vector<key_logical_port_t> &vect_logical_port_id) {
   if (max_rep_ct <= 0) {
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
   ODBCM_RC_STATUS read_db_status = ODBCM_RC_SUCCESS;
   DBTableSchema kt_logicalport_dbtableschema;
   // Populate DBSchema for logicalport_table
@@ -534,14 +535,14 @@ UpplReturnCode Kt_LogicalPort::ReadBulkInternal(
                   (unc_keytype_operation_t)UNC_OP_READ_BULK, db_conn);
   if (read_db_status == ODBCM_RC_RECORD_NOT_FOUND) {
     pfc_log_debug("No record found");
-    read_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+    read_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     return read_status;
   } else if (read_db_status == ODBCM_RC_CONNECTION_ERROR) {
-    read_status = UPPL_RC_ERR_DB_ACCESS;
+    read_status = UNC_UPPL_RC_ERR_DB_ACCESS;
     pfc_log_error("Read operation has failed with error %d", read_db_status);
     return read_status;
   } else if (read_db_status != ODBCM_RC_SUCCESS) {
-    read_status = UPPL_RC_ERR_DB_GET;
+    read_status = UNC_UPPL_RC_ERR_DB_GET;
     // log error to log daemon
     pfc_log_error("Read operation has failed with error %d", read_db_status);
     return read_status;
@@ -567,17 +568,17 @@ UpplReturnCode Kt_LogicalPort::ReadBulkInternal(
  *                data_type - indicates the data base type i.e UNC_DT_STATE
  *                            or UNC_DT_IMPORT
  * @return      : Return code of the syntax validation will be sent
- *                UPPL_RC_SUCCESS - if Syntax Validation is success
- *                UPPL_RC_ERR_CFG_SYNTAX - if syntax validation fails
+ *                UNC_RC_SUCCESS - if Syntax Validation is success
+ *                UNC_UPPL_RC_ERR_CFG_SYNTAX - if syntax validation fails
  * */
-UpplReturnCode Kt_LogicalPort::PerformSyntaxValidation(
+UncRespCode Kt_LogicalPort::PerformSyntaxValidation(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     void* val_struct,
     uint32_t operation,
     uint32_t data_type) {
   pfc_log_info("Syntax Validation of UNC_KT_LOGICAL_PORT");
-  UpplReturnCode ret_code = UPPL_RC_SUCCESS;
+  UncRespCode ret_code = UNC_RC_SUCCESS;
   pfc_ipcresp_t mandatory = PFC_TRUE;
   map<string, Kt_Class_Attr_Syntax> attr_syntax_map =
       attr_syntax_map_all[UNC_KT_LOGICAL_PORT];
@@ -586,20 +587,20 @@ UpplReturnCode Kt_LogicalPort::PerformSyntaxValidation(
   string value =
       reinterpret_cast<char*>(key->domain_key.ctr_key.controller_name);
   IS_VALID_STRING_KEY(CTR_NAME_STR, value, operation, ret_code, mandatory);
-  if (ret_code != UPPL_RC_SUCCESS) {
-    return UPPL_RC_ERR_CFG_SYNTAX;
+  if (ret_code != UNC_RC_SUCCESS) {
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
 
   value = reinterpret_cast<char*>(key->domain_key.domain_name);
   IS_VALID_STRING_KEY(DOMAIN_NAME_STR, value, operation, ret_code, mandatory);
-  if (ret_code != UPPL_RC_SUCCESS) {
-    return UPPL_RC_ERR_CFG_SYNTAX;
+  if (ret_code != UNC_RC_SUCCESS) {
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
 
   value = reinterpret_cast<char*>(key->port_id);
   IS_VALID_STRING_KEY(LP_PORT_ID_STR, value, operation, ret_code, mandatory);
-  if (ret_code != UPPL_RC_SUCCESS) {
-    return UPPL_RC_ERR_CFG_SYNTAX;
+  if (ret_code != UNC_RC_SUCCESS) {
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
   // Validate value structure
   if (val_struct != NULL) {
@@ -612,16 +613,16 @@ UpplReturnCode Kt_LogicalPort::PerformSyntaxValidation(
     string value = reinterpret_cast<char*>(val_lp->description);
     IS_VALID_STRING_VALUE(LP_DESCRIPTION_STR, value, operation,
                           valid_val, ret_code, mandatory);
-    if (ret_code != UPPL_RC_SUCCESS) {
-      return UPPL_RC_ERR_CFG_SYNTAX;
+    if (ret_code != UNC_RC_SUCCESS) {
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
 
     // Validate port_type
     valid_val = PhyUtil::uint8touint(val_lp->valid[kIdxLogicalPortType]);
     if (valid_val == UNC_VF_VALID) {
       ret_code = ValidatePortType(val_lp->port_type);
-      if (ret_code != UPPL_RC_SUCCESS) {
-        return UPPL_RC_ERR_CFG_SYNTAX;
+      if (ret_code != UNC_RC_SUCCESS) {
+        return UNC_UPPL_RC_ERR_CFG_SYNTAX;
       }
     }
 
@@ -630,8 +631,8 @@ UpplReturnCode Kt_LogicalPort::PerformSyntaxValidation(
     valid_val = PhyUtil::uint8touint(val_lp->valid[kIdxLogicalPortSwitchId]);
     IS_VALID_STRING_VALUE(LP_SWITCH_ID_STR, value, operation,
                           valid_val, ret_code, mandatory);
-    if (ret_code != UPPL_RC_SUCCESS) {
-      return UPPL_RC_ERR_CFG_SYNTAX;
+    if (ret_code != UNC_RC_SUCCESS) {
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
 
     // validate physical port id
@@ -646,8 +647,8 @@ UpplReturnCode Kt_LogicalPort::PerformSyntaxValidation(
                                      valid[kIdxLogicalPortOperDownCriteria]);
     IS_VALID_INT_VALUE(LP_OPER_DOWN_CRITERIA_STR, val_lp->oper_down_criteria,
                        operation, valid_val, ret_code, mandatory);
-    if (ret_code != UPPL_RC_SUCCESS) {
-      return UPPL_RC_ERR_CFG_SYNTAX;
+    if (ret_code != UNC_RC_SUCCESS) {
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
   }
   return ret_code;
@@ -665,17 +666,17 @@ UpplReturnCode Kt_LogicalPort::PerformSyntaxValidation(
  *                data_type - indicates the data base type i.e UNC_DT_STATE
  *                            or UNC_DT_IMPORT  
  * @return      : return code of the semantic validation will be returned
- *                UPPL_RC_SUCCESS - if Semantic Validation is success
- *                UPPL_RC_ERR_* - if semantic validation is failure  
+ *                UNC_RC_SUCCESS - if Semantic Validation is success
+ *                UNC_UPPL_RC_ERR_* - if semantic validation is failure  
  **/
-UpplReturnCode Kt_LogicalPort::PerformSemanticValidation(
+UncRespCode Kt_LogicalPort::PerformSemanticValidation(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     void* val_struct,
     uint32_t operation,
     uint32_t data_type) {
   pfc_log_info("Inside PerformSemanticValidation of KT_LOGICAL_PORT");
-  UpplReturnCode status = UPPL_RC_SUCCESS;
+  UncRespCode status = UNC_RC_SUCCESS;
   key_logical_port *obj_key =
       reinterpret_cast<key_logical_port_t*>(key_struct);
 
@@ -689,41 +690,41 @@ UpplReturnCode Kt_LogicalPort::PerformSemanticValidation(
   sw_vect_key_value.push_back(domain_name);
   sw_vect_key_value.push_back(port_id);
 
-  UpplReturnCode KeyStatus = IsKeyExists(
+  UncRespCode KeyStatus = IsKeyExists(
       db_conn, (unc_keytype_datatype_t)data_type,
       sw_vect_key_value);
   pfc_log_debug("IsKeyExists status %d", KeyStatus);
 
   if (operation == UNC_OP_CREATE) {
-    if (KeyStatus == UPPL_RC_SUCCESS) {
+    if (KeyStatus == UNC_RC_SUCCESS) {
       pfc_log_error("Key instance already exists");
       pfc_log_error("Hence create operation not allowed");
-      status = UPPL_RC_ERR_INSTANCE_EXISTS;
+      status = UNC_UPPL_RC_ERR_INSTANCE_EXISTS;
     } else {
       pfc_log_info("key instance not exist create operation allowed");
     }
   } else if (operation == UNC_OP_UPDATE || operation == UNC_OP_DELETE ||
       operation == UNC_OP_READ) {
     // In case of update/delete/read operation, key should exist
-    if (KeyStatus != UPPL_RC_SUCCESS) {
+    if (KeyStatus != UNC_RC_SUCCESS) {
       pfc_log_error("Key instance does not exist");
       pfc_log_error("Hence update/delete/read operation not allowed");
-      status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+      status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     } else {
       pfc_log_info(
           "key instance exist update/del/read operation allowed");
     }
   }
-  if (operation == UNC_OP_CREATE && status == UPPL_RC_SUCCESS) {
+  if (operation == UNC_OP_CREATE && status == UNC_RC_SUCCESS) {
     vector<string> parent_vect_key_value;
     parent_vect_key_value.push_back(controller_name);
     parent_vect_key_value.push_back(domain_name);
     Kt_Ctr_Domain KtObj;
-    UpplReturnCode parent_key_status = KtObj.IsKeyExists(
+    UncRespCode parent_key_status = KtObj.IsKeyExists(
         db_conn, (unc_keytype_datatype_t)data_type, parent_vect_key_value);
     pfc_log_debug("Parent IsKeyExists status %d", parent_key_status);
-    if (parent_key_status != UPPL_RC_SUCCESS) {
-      status = UPPL_RC_ERR_PARENT_DOES_NOT_EXIST;
+    if (parent_key_status != UNC_RC_SUCCESS) {
+      status = UNC_UPPL_RC_ERR_PARENT_DOES_NOT_EXIST;
     }
   }
   pfc_log_debug("Return Code SemanticValidation: %d", status);
@@ -742,34 +743,34 @@ UpplReturnCode Kt_LogicalPort::PerformSemanticValidation(
  *                  value_struct - void pointer to be type cast into logical
  *                  port value structure type
  * @return        : the oper status result from db will be returned
- *                  UPPL_RC_SUCCESS - in case oper status is received from DB
- *                  UPPL_RC_ERR_* - if unable to receive oper status from DB
+ *                  UNC_RC_SUCCESS - in case oper status is received from DB
+ *                  UNC_UPPL_RC_ERR_* - if unable to receive oper status from DB
  **/
-UpplReturnCode Kt_LogicalPort::HandleDriverAlarms(
+UncRespCode Kt_LogicalPort::HandleDriverAlarms(
     OdbcmConnectionHandler *db_conn,
     uint32_t data_type,
     uint32_t alarm_type,
     uint32_t oper_type,
     void* key_struct,
     void* val_struct) {
-  UpplReturnCode status = UPPL_RC_SUCCESS;
+  UncRespCode status = UNC_RC_SUCCESS;
   // Following alarms are sent for kt_logicalport
   if (alarm_type != UNC_SUBDOMAIN_SPLIT) {
     pfc_log_info("%d alarm received for logical port is ignored", alarm_type);
-    return UPPL_RC_ERR_BAD_REQUEST;
+    return UNC_UPPL_RC_ERR_BAD_REQUEST;
   }
   pfc_log_info("UNC_SUBDOMAIN_SPLIT alarm sent by driver");
   uint8_t oper_status_db = 0;
-  UpplReturnCode read_status = GetOperStatus(db_conn, data_type,
+  UncRespCode read_status = GetOperStatus(db_conn, data_type,
                                              key_struct,
                                              oper_status_db);
-  if (read_status != UPPL_RC_SUCCESS) {
+  if (read_status != UNC_RC_SUCCESS) {
     pfc_log_info("Unable to get current oper_status from db");
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   if (oper_status_db == UPPL_LOGICAL_PORT_OPER_UNKNOWN) {
     pfc_log_info("Logical Port oper is unknown, not processing alarm");
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   UpplLogicalPortOperStatus old_oper_status =
       (UpplLogicalPortOperStatus)oper_status_db;
@@ -784,7 +785,7 @@ UpplReturnCode Kt_LogicalPort::HandleDriverAlarms(
   pfc_log_info("Oper_status to be set to  db: %d", new_oper_status);
   if (new_oper_status == old_oper_status) {
     pfc_log_debug("Old and new oper status are same, so do nothing");
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   if (new_oper_status == UPPL_LOGICAL_PORT_OPER_UP) {
     GetOperStatusFromOperDownCriteria(db_conn, data_type,
@@ -795,21 +796,21 @@ UpplReturnCode Kt_LogicalPort::HandleDriverAlarms(
   pfc_log_info("Oper_status to be set to  db: %d", new_oper_status);
   if (new_oper_status == old_oper_status) {
     pfc_log_debug("Old and new oper status are same, so do nothing");
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   // Set oper_status update in DB
   status = SetOperStatus(db_conn, data_type, key_struct, NULL, new_oper_status);
   pfc_log_debug("Update oper_status return: %d", status);
-  if (status == UPPL_RC_SUCCESS) {
+  if (status == UNC_RC_SUCCESS) {
     // Call NotifyOperStatus of referred key types
     key_logical_port_t *key_lp = reinterpret_cast<key_logical_port_t*>
     (key_struct);
     string controller_name =
         (const char*)(key_lp->domain_key.ctr_key.controller_name);
     vector<OperStatusHolder> ref_oper_status;
-    GET_ADD_CTRL_OPER_STATUS(controller_name);
+    GET_ADD_CTRL_OPER_STATUS(controller_name, ref_oper_status);
     ADD_LP_PORT_OPER_STATUS(*key_lp,
-                            new_oper_status);
+                            new_oper_status, ref_oper_status);
     status = NotifyOperStatus(db_conn, data_type,
                               key_struct, val_struct, ref_oper_status);
     pfc_log_debug("Notify oper_status return: %d", status);
@@ -827,24 +828,22 @@ UpplReturnCode Kt_LogicalPort::HandleDriverAlarms(
  *                type
  *                value struct - void pointer to be cast into logical port
  *                value type
- * @return      : UPPL_RC_SUCCESS - if oper status update in db is successful
- *                UPPL_RC_ERR_* - if oper status update in db is failure
+ * @return      : UNC_RC_SUCCESS - if oper status update in db is successful
+ *                UNC_UPPL_RC_ERR_* - if oper status update in db is failure
  **/
-UpplReturnCode Kt_LogicalPort::HandleOperStatus(
+UncRespCode Kt_LogicalPort::HandleOperStatus(
     OdbcmConnectionHandler *db_conn,
     uint32_t data_type,
     void *key_struct,
     void *value_struct,
     vector<OperStatusHolder> &ref_oper_status,
     unc_key_type_t caller_kt) {
-  FN_START_TIME("HandleOperStatus", "LogicalPort");
-  UpplReturnCode return_code = UPPL_RC_SUCCESS;
+  UncRespCode return_code = UNC_RC_SUCCESS;
   pfc_log_debug("LogicalPort Handle Oper Status Enter");
 
   if (key_struct == NULL) {
     pfc_log_debug("Key struct is not available in request");
-    return_code = UPPL_RC_ERR_BAD_REQUEST;
-    FN_END_TIME("HandleOperStatus", "LogicalPort");
+    return_code = UNC_UPPL_RC_ERR_BAD_REQUEST;
     return return_code;
   }
   key_logical_port_t *obj_key_logical_port =
@@ -894,19 +893,18 @@ UpplReturnCode Kt_LogicalPort::HandleOperStatus(
   memset(&ctr_key, '\0', sizeof(key_ctr_t));
   memcpy(ctr_key.controller_name, controller_name.c_str(),
          (controller_name.length())+1);
-  UpplReturnCode read_oper_status = get_oper_status(
+  UncRespCode read_oper_status = get_oper_status(
       ref_oper_status,
       UNC_KT_CONTROLLER,
       reinterpret_cast<void*>(&ctr_key),
       ctrl_oper_status);
-  if (read_oper_status != UPPL_RC_SUCCESS) {
+  if (read_oper_status != UNC_RC_SUCCESS) {
     Kt_Controller controller;
-    UpplReturnCode read_status = controller.GetOperStatus(
+    UncRespCode read_status = controller.GetOperStatus(
         db_conn, data_type, reinterpret_cast<void*>(&ctr_key),
         ctrl_oper_status);
-    if (read_status != UPPL_RC_SUCCESS) {
+    if (read_status != UNC_RC_SUCCESS) {
       pfc_log_info("Controller's oper_status read returned failure");
-      FN_END_TIME("HandleOperStatus", "LogicalPort");
       return return_code;
     }
   }
@@ -924,7 +922,6 @@ UpplReturnCode Kt_LogicalPort::HandleOperStatus(
     // Notify referred classes
     return_code = NotifyOperStatus(db_conn, data_type, key_struct,
                                    NULL, ref_oper_status);
-    FN_END_TIME("HandleOperStatus", "LogicalPort");
     return return_code;
   }
   pfc_log_info("Controller's oper_status %d", ctrl_oper_status);
@@ -943,8 +940,8 @@ UpplReturnCode Kt_LogicalPort::HandleOperStatus(
                                        UNC_KT_SWITCH,
                                        reinterpret_cast<void*>(&switch_key),
                                        switch_oper_status);
-    UpplReturnCode read_status = UPPL_RC_SUCCESS;
-    if (read_oper_status != UPPL_RC_SUCCESS) {
+    UncRespCode read_status = UNC_RC_SUCCESS;
+    if (read_oper_status != UNC_RC_SUCCESS) {
       // get switch oper status:
       logical_port_oper_status =
           UPPL_LOGICAL_PORT_OPER_UNKNOWN;
@@ -953,8 +950,8 @@ UpplReturnCode Kt_LogicalPort::HandleOperStatus(
           db_conn, data_type,
           reinterpret_cast<void*>(&switch_key), switch_oper_status);
     }
-    if (read_oper_status == UPPL_RC_SUCCESS ||
-        read_status == UPPL_RC_SUCCESS) {
+    if (read_oper_status == UNC_RC_SUCCESS ||
+        read_status == UNC_RC_SUCCESS) {
       pfc_log_info("switch oper_status %d", switch_oper_status);
       if (switch_oper_status ==
           (UpplSwitchOperStatus) UPPL_SWITCH_OPER_UP) {
@@ -992,7 +989,7 @@ UpplReturnCode Kt_LogicalPort::HandleOperStatus(
           reinterpret_cast<void *> (&(*keyItr)),
           value_struct,
           logical_port_oper_status);
-      if (return_code != UPPL_RC_SUCCESS) {
+      if (return_code != UNC_RC_SUCCESS) {
         ++keyItr;
         continue;
       }
@@ -1001,7 +998,7 @@ UpplReturnCode Kt_LogicalPort::HandleOperStatus(
     } else if (caller_kt != UNC_KT_SWITCH) {
       // Check oper_status of associated port
       uint8_t port_oper_status = 0;
-      UpplReturnCode port_status = UPPL_RC_SUCCESS;
+      UncRespCode port_status = UNC_RC_SUCCESS;
       key_port_t obj_key_port;
       memset(&obj_key_port, '\0', sizeof(key_port_t));
       memcpy(obj_key_port.sw_key.ctr_key.controller_name,
@@ -1017,13 +1014,13 @@ UpplReturnCode Kt_LogicalPort::HandleOperStatus(
                                          UNC_KT_PORT,
                                          reinterpret_cast<void*>(&obj_key_port),
                                          port_oper_status);
-      if (read_oper_status != UPPL_RC_SUCCESS) {
+      if (read_oper_status != UNC_RC_SUCCESS) {
         port_status = GetPortOperStatus(
             db_conn, obj_key_port,
             &port_oper_status, data_type);
       }
-      if ((read_oper_status == UPPL_RC_SUCCESS ||
-          port_status == UPPL_RC_SUCCESS) &&
+      if ((read_oper_status == UNC_RC_SUCCESS ||
+          port_status == UNC_RC_SUCCESS) &&
           port_oper_status == UPPL_PORT_OPER_DOWN) {
         logical_port_oper_status = UPPL_LOGICAL_PORT_OPER_DOWN;
       }
@@ -1042,10 +1039,12 @@ UpplReturnCode Kt_LogicalPort::HandleOperStatus(
     vector<key_logical_port_t>::iterator keyItr =
         vectLogicalPortKey.begin();
     for (; keyItr != vectLogicalPortKey.end(); ++keyItr) {
-      if (return_code == UPPL_RC_SUCCESS) {
+      if (return_code == UNC_RC_SUCCESS) {
         // Call referred classes' notify oper_status functions
         key_logical_port_t key_lp = (*keyItr);
-        ADD_LP_PORT_OPER_STATUS(key_lp, logical_port_oper_status);
+        ADD_LP_PORT_OPER_STATUS(key_lp,
+                                logical_port_oper_status,
+                                ref_oper_status);
         return_code = NotifyOperStatus(
             db_conn, data_type, reinterpret_cast<void *> (&(*keyItr)),
             NULL, ref_oper_status);
@@ -1058,7 +1057,6 @@ UpplReturnCode Kt_LogicalPort::HandleOperStatus(
     pfc_log_debug("Logicalport sibling count is 0");
   }
   pfc_log_debug("LogicalPort Handle Oper Status End");
-  FN_END_TIME("HandleOperStatus", "LogicalPort");
   return return_code;
 }
 
@@ -1073,10 +1071,10 @@ UpplReturnCode Kt_LogicalPort::HandleOperStatus(
  *                value type
  *                logical_port_oper_status - indicates the logical port oper
  *                status i.e. either UP or DOWN
- * @return      : UPPL_RC_SUCCESS - if port oper status is retrieved correctly
- *                UPPL_RC_ERR_* - if port oper status cannot be retrieved
+ * @return      : UNC_RC_SUCCESS - if port oper status is retrieved correctly
+ *                UNC_UPPL_RC_ERR_* - if port oper status cannot be retrieved
  **/
-UpplReturnCode Kt_LogicalPort::GetOperStatusFromOperDownCriteria(
+UncRespCode Kt_LogicalPort::GetOperStatusFromOperDownCriteria(
     OdbcmConnectionHandler *db_conn,
     uint32_t data_type,
     void *key_struct,
@@ -1090,10 +1088,10 @@ UpplReturnCode Kt_LogicalPort::GetOperStatusFromOperDownCriteria(
                                        value_struct,
                                        vectOperStatus, PFC_FALSE);
   // get oper down from DB
-  UpplReturnCode return_code = UPPL_RC_SUCCESS;
+  UncRespCode return_code = UNC_RC_SUCCESS;
   return_code = GetOperDownCriteria(db_conn, data_type,
                                     key_struct, oper_down_criteria);
-  if (return_code != UPPL_RC_SUCCESS) {
+  if (return_code != UNC_RC_SUCCESS) {
     pfc_log_info("Logicalport OperStatusFromOperDownCriteria read error");
     return return_code;
   }
@@ -1134,7 +1132,7 @@ UpplReturnCode Kt_LogicalPort::GetOperStatusFromOperDownCriteria(
     pfc_log_debug("Logicalport OperStatusFromOperDownCriteria Any status:%d",
                   logical_port_oper_status);
   } else {
-    return_code = UPPL_RC_ERR_BAD_REQUEST;
+    return_code = UNC_UPPL_RC_ERR_BAD_REQUEST;
   }
   pfc_log_debug("Exit logical port OperStatusFromOperDownCriteria");
   return return_code;
@@ -1152,10 +1150,10 @@ UpplReturnCode Kt_LogicalPort::GetOperStatusFromOperDownCriteria(
  *                vectOperStatus - vector to hold the oper status of port 
  *                is_delete_call - bool variable to check whether delete call
  *                                 is madwe by the parent class 
- * @return      : UPPL_RC_SUCCESS - if port oper status is read correctly
- *                UPPL_RC_ERR_* - if port oper status read returned failure
+ * @return      : UNC_RC_SUCCESS - if port oper status is read correctly
+ *                UNC_UPPL_RC_ERR_* - if port oper status read returned failure
  **/
-UpplReturnCode Kt_LogicalPort::HandleOperDownCriteriaFromPortStatus(
+UncRespCode Kt_LogicalPort::HandleOperDownCriteriaFromPortStatus(
     OdbcmConnectionHandler *db_conn,
     uint32_t data_type,
     void *key_struct,
@@ -1163,11 +1161,11 @@ UpplReturnCode Kt_LogicalPort::HandleOperDownCriteriaFromPortStatus(
     vector<uint32_t> &vectOperStatus,
     pfc_bool_t is_delete_call) {
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
-  UpplReturnCode return_code = UPPL_RC_SUCCESS;
+  UncRespCode return_code = UNC_RC_SUCCESS;
 
   pfc_log_debug("Entering Logical port Handle OperDownCriteriaFromPortStatus");
   if (key_struct == NULL) {
-    return_code = UPPL_RC_ERR_BAD_REQUEST;
+    return_code = UNC_UPPL_RC_ERR_BAD_REQUEST;
     return return_code;
   }
   key_logical_port_t *obj_key_logical_port =
@@ -1280,7 +1278,7 @@ UpplReturnCode Kt_LogicalPort::HandleOperDownCriteriaFromPortStatus(
         }
       }
 
-      UpplReturnCode read_status = UPPL_RC_SUCCESS;
+      UncRespCode read_status = UNC_RC_SUCCESS;
       Kt_Port port;
       key_port_t obj_key_port;
       string port_controller_name = (const char*) logical_memeber_port.
@@ -1325,7 +1323,7 @@ UpplReturnCode Kt_LogicalPort::HandleOperDownCriteriaFromPortStatus(
       read_status = port.GetOperStatus(
           db_conn, data_type, reinterpret_cast<void*>(&obj_key_port),
           port_oper_status);
-      if (read_status == UPPL_RC_SUCCESS) {
+      if (read_status == UNC_RC_SUCCESS) {
         pfc_log_debug("port oper_status in logport: %d", port_oper_status);
         vectOperStatus.push_back(port_oper_status);
       } else {
@@ -1349,11 +1347,11 @@ UpplReturnCode Kt_LogicalPort::HandleOperDownCriteriaFromPortStatus(
  *                key_struct - void pointer to be cast into logical port key
  *                type
  *                oper_down_criteria - specifies the oper down criteria
- * @return      : UPPL_RC_SUCCESS - if oper down read criteria from db is
+ * @return      : UNC_RC_SUCCESS - if oper down read criteria from db is
  *                success
- *                UPPL_RC_ERR_* - if oper down read criteria from db is failure
+ *                UNC_UPPL_RC_ERR_* - if oper down read criteria from db is failure
  **/
-UpplReturnCode Kt_LogicalPort::GetOperDownCriteria(
+UncRespCode Kt_LogicalPort::GetOperDownCriteria(
     OdbcmConnectionHandler *db_conn,
     uint32_t data_type,
     void* key_struct,
@@ -1417,7 +1415,7 @@ UpplReturnCode Kt_LogicalPort::GetOperDownCriteria(
   if (read_db_status != ODBCM_RC_SUCCESS) {
     // log error
     pfc_log_error("oper down criteria read operation failed");
-    return UPPL_RC_ERR_DB_GET;
+    return UNC_UPPL_RC_ERR_DB_GET;
   }
 
   // read the oper_down_criteria value
@@ -1447,7 +1445,7 @@ UpplReturnCode Kt_LogicalPort::GetOperDownCriteria(
       }
     }
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /** 
@@ -1456,15 +1454,15 @@ UpplReturnCode Kt_LogicalPort::GetOperDownCriteria(
  *                            or UNC_DT_IMPORT
  *                key_struct - void pointer to be type cast into logical port
  *                key type
- * @return      : UPPL_RC_SUCCESS - if boundary oper status is changed in DB
- *                UPPL_RC_ERR_* - if there are no boundaries associated with
+ * @return      : UNC_RC_SUCCESS - if boundary oper status is changed in DB
+ *                UNC_UPPL_RC_ERR_* - if there are no boundaries associated with
  *                the controller name
  **/
-UpplReturnCode Kt_LogicalPort::InvokeBoundaryNotifyOperStatus(
+UncRespCode Kt_LogicalPort::InvokeBoundaryNotifyOperStatus(
     OdbcmConnectionHandler *db_conn,
     uint32_t data_type,
     void *key_struct) {
-  UpplReturnCode return_code = UPPL_RC_SUCCESS;
+  UncRespCode return_code = UNC_RC_SUCCESS;
   key_logical_port_t *obj_key_logical_port =
       reinterpret_cast<key_logical_port_t*>(key_struct);
 
@@ -1476,11 +1474,13 @@ UpplReturnCode Kt_LogicalPort::InvokeBoundaryNotifyOperStatus(
       (const char*)obj_key_logical_port->port_id;
   vector<OperStatusHolder> ref_oper_status;
   // Get controller oper status
-  GET_ADD_CTRL_OPER_STATUS(controller_name);
+  GET_ADD_CTRL_OPER_STATUS(controller_name, ref_oper_status);
   uint8_t lp_oper_status = 0;
   read_status = GetOperStatus(
       db_conn, data_type, key_struct, lp_oper_status);
-  ADD_LP_PORT_OPER_STATUS(*obj_key_logical_port, lp_oper_status);
+  ADD_LP_PORT_OPER_STATUS(*obj_key_logical_port,
+                          lp_oper_status,
+                          ref_oper_status);
   // Notify UNC_KT_BOUNDARY
   Kt_Boundary boundary;
   val_boundary_t obj_val_boundary1;
@@ -1529,18 +1529,18 @@ UpplReturnCode Kt_LogicalPort::InvokeBoundaryNotifyOperStatus(
  *                port key type
  *                value_struct - void pointer type to be type cast into logical
  *                port key type
- * @return      : UPPL_RC_SUCCESS - if the oper status notification in key type
+ * @return      : UNC_RC_SUCCESS - if the oper status notification in key type
  *                boundary is changed successfully
- *                UPPL_RC_ERR_* - if the oper status notification in key type
+ *                UNC_UPPL_RC_ERR_* - if the oper status notification in key type
  *                boundary fails
  **/
-UpplReturnCode Kt_LogicalPort::NotifyOperStatus(
+UncRespCode Kt_LogicalPort::NotifyOperStatus(
     OdbcmConnectionHandler *db_conn,
     uint32_t data_type,
     void *key_struct,
     void *value_struct,
     vector<OperStatusHolder> &ref_oper_status) {
-  UpplReturnCode return_code = UPPL_RC_SUCCESS;
+  UncRespCode return_code = UNC_RC_SUCCESS;
   key_logical_port_t *obj_key_logical_port =
       reinterpret_cast<key_logical_port_t*>(key_struct);
 
@@ -1612,11 +1612,11 @@ UpplReturnCode Kt_LogicalPort::NotifyOperStatus(
  *                key_struct - void pointer type to be type cast into logical
  *                port key type
  *                oper_status - Stores the oper status received from DB 
- * @return      : UPPL_RC_SUCCESS - if oper status is reads successfully  from
+ * @return      : UNC_RC_SUCCESS - if oper status is reads successfully  from
  *                the DB
- *                UPPL_RC_ERR_DB_GET if oper staus read operation failed from DB
+ *                UNC_UPPL_RC_ERR_DB_GET if oper staus read operation failed from DB
  **/
-UpplReturnCode Kt_LogicalPort::GetOperStatus(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_LogicalPort::GetOperStatus(OdbcmConnectionHandler *db_conn,
                                              uint32_t data_type,
                                              void* key_struct,
                                              uint8_t &oper_status) {
@@ -1669,7 +1669,7 @@ UpplReturnCode Kt_LogicalPort::GetOperStatus(OdbcmConnectionHandler *db_conn,
   if (read_db_status != ODBCM_RC_SUCCESS) {
     // log error
     pfc_log_error("oper_status read operation failed");
-    return UPPL_RC_ERR_DB_GET;
+    return UNC_UPPL_RC_ERR_DB_GET;
   }
 
   // read the oper_status value
@@ -1699,7 +1699,7 @@ UpplReturnCode Kt_LogicalPort::GetOperStatus(OdbcmConnectionHandler *db_conn,
       }
     }
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /** 
@@ -1714,7 +1714,7 @@ UpplReturnCode Kt_LogicalPort::GetOperStatus(OdbcmConnectionHandler *db_conn,
  *                oper_statuus - value of oper status to be updated in DB
  * @return      : Success or associated error code
  **/
-UpplReturnCode Kt_LogicalPort::SetOperStatus(
+UncRespCode Kt_LogicalPort::SetOperStatus(
     OdbcmConnectionHandler *db_conn,
     uint32_t data_type,
     void* key_struct,
@@ -1727,7 +1727,7 @@ UpplReturnCode Kt_LogicalPort::SetOperStatus(
       reinterpret_cast<val_logical_port_st_t*>(val_struct);
   // Get existing oper_status
   uint8_t old_oper_status = 0;
-  UpplReturnCode read_status = GetOperStatus(db_conn, data_type,
+  UncRespCode read_status = GetOperStatus(db_conn, data_type,
                                              key_struct,
                                              old_oper_status);
   vector<TableAttrSchema> vect_table_attr_schema;
@@ -1786,9 +1786,9 @@ UpplReturnCode Kt_LogicalPort::SetOperStatus(
                         vect_table_attr_schema);
   string valid_flag;
   // Update valid flag as well
-  UpplReturnCode get_ret = GetValidFlag(db_conn, data_type,
+  UncRespCode get_ret = GetValidFlag(db_conn, data_type,
                                         key_struct, &valid_flag);
-  if (get_ret == UPPL_RC_SUCCESS) {
+  if (get_ret == UNC_RC_SUCCESS) {
     string new_valid = valid_flag.substr(0, 5);
     new_valid += "1";
     pfc_log_debug("New Valid to be set: %s", new_valid.c_str());
@@ -1813,10 +1813,10 @@ UpplReturnCode Kt_LogicalPort::SetOperStatus(
   } else if (update_db_status != ODBCM_RC_SUCCESS) {
     // log error
     pfc_log_error("oper_status update operation failed");
-    return UPPL_RC_ERR_DB_UPDATE;
+    return UNC_UPPL_RC_ERR_DB_UPDATE;
   } else if (old_oper_status != oper_status) {
     // Notify operstatus change to northbound
-    if (read_status == UPPL_RC_SUCCESS && data_type != UNC_DT_IMPORT) {
+    if (read_status == UNC_RC_SUCCESS && data_type != UNC_DT_IMPORT) {
       val_logical_port_st old_val_logical_port, new_val_logical_port;
       memset(&old_val_logical_port, 0, sizeof(val_logical_port_st));
       memset(&new_val_logical_port, 0, sizeof(val_logical_port_st));
@@ -1843,7 +1843,7 @@ UpplReturnCode Kt_LogicalPort::SetOperStatus(
                       (IpctUtil::get_string(old_val_logical_port)).c_str());
         PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
         // Notify operstatus modifications
-        UpplReturnCode status = (UpplReturnCode) physical_layer
+        UncRespCode status = (UncRespCode) physical_layer
             ->get_ipc_connection_manager()->SendEvent(&ser_evt);
         pfc_log_debug("Event notification status %d", status);
       } else {
@@ -1851,7 +1851,7 @@ UpplReturnCode Kt_LogicalPort::SetOperStatus(
       }
     }
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /** 
@@ -1860,19 +1860,19 @@ UpplReturnCode Kt_LogicalPort::SetOperStatus(
  *                            or UNC_DT_IMPORT
  *                key value - vector to hold the key structure values to be 
  *                            checked in DB 
- * @return      : UPPL_RC_SUCCESS - if the row exist in DB
- *                UPPL_RC_NO_SUCH_INSTANCE - if the row doesnt exist in DB
+ * @return      : UNC_RC_SUCCESS - if the row exist in DB
+ *                UNC_UPPL_RC_NO_SUCH_INSTANCE - if the row doesnt exist in DB
  **/
-UpplReturnCode Kt_LogicalPort::IsKeyExists(
+UncRespCode Kt_LogicalPort::IsKeyExists(
     OdbcmConnectionHandler *db_conn,
     unc_keytype_datatype_t data_type,
     const vector<string> &key_values) {
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
-  UpplReturnCode check_status = UPPL_RC_SUCCESS;
+  UncRespCode check_status = UNC_RC_SUCCESS;
   if (key_values.empty()) {
     // No key given, return failure
     pfc_log_error("No key given. Returning error");
-    return UPPL_RC_ERR_BAD_REQUEST;
+    return UNC_UPPL_RC_ERR_BAD_REQUEST;
   }
   string controller_name = key_values[0];
   string domain_name = key_values[1];
@@ -1920,7 +1920,7 @@ UpplReturnCode Kt_LogicalPort::IsKeyExists(
     pfc_log_debug("DB returned success for Row exists");
   } else {
     pfc_log_info("DB Returned failure for IsRowExists");
-    check_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+    check_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
   }
   return check_status;
 }
@@ -1930,13 +1930,13 @@ UpplReturnCode Kt_LogicalPort::IsKeyExists(
  *                given key struct, value struct, data_type, operation,
  *                option1 and option
  * @param[in]   : kt_logicalport_dbtableschema - object of type DBTableSchema 
- *               key_struct - void pointer to be type cast into logical port key type
- *               val_struct - void pointer to be type cast into logical port value type
- *               operation_type - specifies the operation type i.e
- *                                UNC_OP_READ or
- *                                UNC_OP_READ_SIBLING_BEGIN etc  
- *               option1/option2 - specifies any additional option for populating in DB
- *               vect_key_operations - vector of type ODBCMOperator    
+ *        key_struct - void pointer to be type cast into logical port key type
+ *        val_struct - void pointer to be type cast into logical port value type
+ *        operation_type - specifies the operation type i.e
+ *                         UNC_OP_READ or
+ *                         UNC_OP_READ_SIBLING_BEGIN etc  
+ *        option1/option2 - specifies any additional option for populating in DB
+ *        vect_key_operations - vector of type ODBCMOperator    
  *                old_value_struct - holds the old value structure of the
  *                logical port key type
  *                row_status - enum indicating the row status of logicalport
@@ -2281,8 +2281,12 @@ void Kt_LogicalPort::FillLogicalPortValueStructure(
           memset(lp_valid, '\0', sizeof(lp_valid));
           PhyUtil::GetValueFromDbSchemaStr(tab_schema, lp_valid,
                                            DATATYPE_UINT8_ARRAY_6);
-          memset(obj_val_logical_port_st.valid, '\0', sizeof(obj_val_logical_port_st.valid));
-          memset(obj_val_logical_port.valid, '\0', sizeof(obj_val_logical_port.valid));
+          memset(obj_val_logical_port_st.valid,
+                 '\0',
+                 sizeof(obj_val_logical_port_st.valid));
+          memset(obj_val_logical_port.valid,
+                 '\0',
+                 sizeof(obj_val_logical_port.valid));
           FrameValidValue(reinterpret_cast<const char*> (lp_valid),
                           obj_val_logical_port_st,
                           obj_val_logical_port);
@@ -2301,10 +2305,10 @@ void Kt_LogicalPort::FillLogicalPortValueStructure(
     vect_obj_val_logical_port.push_back(obj_val_logical_port_st);
     // populate key structure
     vect_logical_port_id.push_back(obj_key_logical_port);
-    pfc_log_debug("result - vect_obj_val_logical_port size: %d",
-                  (unsigned int) vect_obj_val_logical_port.size());
-    pfc_log_debug("result - vect_logical_port_id size: %d",
-                  (unsigned int) vect_logical_port_id.size());
+    pfc_log_debug("result - vect_obj_val_logical_port size: %"
+                  PFC_PFMT_SIZE_T, vect_obj_val_logical_port.size());
+    pfc_log_debug("result - vect_logical_port_id size: %"
+                  PFC_PFMT_SIZE_T, vect_logical_port_id.size());
   }
   return;
 }
@@ -2326,10 +2330,10 @@ void Kt_LogicalPort::FillLogicalPortValueStructure(
  *                option1,option2 - specifies any additional condition for read
  *                operation
  *                max_rep_ct - indicates the maximum repetition count
- * @return      : UPPL_RC_SUCCESS - if the read operation is successful
- *                UPPL_RC_ERR_* - read operation failed
+ * @return      : UNC_RC_SUCCESS - if the read operation is successful
+ *                UNC_UPPL_RC_ERR_* - read operation failed
  **/
-UpplReturnCode Kt_LogicalPort::PerformRead(
+UncRespCode Kt_LogicalPort::PerformRead(
     OdbcmConnectionHandler *db_conn,
     uint32_t session_id,
     uint32_t configuration_id,
@@ -2359,41 +2363,41 @@ UpplReturnCode Kt_LogicalPort::PerformRead(
   // Invalid operation
   if (option1 != UNC_OPT1_NORMAL) {
     pfc_log_error("PerformRead provided on unsupported option1");
-    rsh.result_code = UPPL_RC_ERR_INVALID_OPTION1;
+    rsh.result_code = UNC_UPPL_RC_ERR_INVALID_OPTION1;
     int err = PhyUtil::sessOutRespHeader(sess, rsh);
     err |= sess.addOutput((uint32_t)UNC_KT_LOGICAL_PORT);
     if (err != 0) {
       pfc_log_debug("addOutput failed for physical_response_header");
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 
   if (option2 != UNC_OPT2_NONE) {
     pfc_log_error("PerformRead provided on unsupported option2");
-    rsh.result_code = UPPL_RC_ERR_INVALID_OPTION2;
+    rsh.result_code = UNC_UPPL_RC_ERR_INVALID_OPTION2;
     int err = PhyUtil::sessOutRespHeader(sess, rsh);
     err |= sess.addOutput((uint32_t)UNC_KT_LOGICAL_PORT);
     if (err != 0) {
       pfc_log_debug("addOutput failed for physical_response_header");
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
 
   if ((unc_keytype_datatype_t)data_type != UNC_DT_STATE) {
     pfc_log_error("Read operation is provided on unsupported data type");
-    rsh.result_code = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    rsh.result_code = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
     int err = PhyUtil::sessOutRespHeader(sess, rsh);
     err |= sess.addOutput((uint32_t)UNC_KT_LOGICAL_PORT);
     err |= sess.addOutput(*obj_key_logical_port);
     if (err != 0) {
       pfc_log_debug("addOutput failed for physical_response_header");
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   // Read operations will return logical_port_st based on modified fd
   vector<key_logical_port_t> vect_logicalport_id;
@@ -2413,11 +2417,11 @@ UpplReturnCode Kt_LogicalPort::PerformRead(
   int err = PhyUtil::sessOutRespHeader(sess, rsh);
   if (err != 0) {
     pfc_log_error("Failure in addOutput");
-    return UPPL_RC_ERR_IPC_WRITE_ERROR;
+    return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
   }
 
   pfc_log_debug("read status val in performread = %d", read_status);
-  if (read_status == UPPL_RC_SUCCESS) {
+  if (read_status == UNC_RC_SUCCESS) {
     for (unsigned int index = 0; index < vect_logicalport_id.size();
         ++index) {
       sess.addOutput((uint32_t)UNC_KT_LOGICAL_PORT);
@@ -2436,7 +2440,7 @@ UpplReturnCode Kt_LogicalPort::PerformRead(
   }
 
   pfc_log_debug("Perform Read completed");
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 /** ReadLogicalPortValFromDB
  * @Description : This function is used to read KT_LOGICAL_PORT instance in
@@ -2455,10 +2459,10 @@ UpplReturnCode Kt_LogicalPort::PerformRead(
  *                val_logical_port_st_t structure
  *                logicalport_id - vector of type key_logical_port_t to store
  *                the logical port id
- * @return      : UPPL_RC_SUCCESS - read operation is success
- *                UPPL_RC_ERR_DB_GET - read operation is failure  
+ * @return      : UNC_RC_SUCCESS - read operation is success
+ *                UNC_UPPL_RC_ERR_DB_GET - read operation is failure  
  **/
-UpplReturnCode Kt_LogicalPort::ReadLogicalPortValFromDB(
+UncRespCode Kt_LogicalPort::ReadLogicalPortValFromDB(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     void* val_struct,
@@ -2470,10 +2474,10 @@ UpplReturnCode Kt_LogicalPort::ReadLogicalPortValFromDB(
     vector<key_logical_port_t> &logicalport_id) {
   if (operation_type < UNC_OP_READ) {
     // Unsupported operation type for this function
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
   ODBCM_RC_STATUS read_db_status = ODBCM_RC_SUCCESS;
   DBTableSchema kt_logicalport_dbtableschema;
   void* old_value_struct;
@@ -2496,14 +2500,14 @@ UpplReturnCode Kt_LogicalPort::ReadLogicalPortValFromDB(
   }
   if (read_db_status == ODBCM_RC_RECORD_NOT_FOUND) {
     pfc_log_debug("No record found");
-    read_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+    read_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     return read_status;
   } else if (read_db_status == ODBCM_RC_CONNECTION_ERROR) {
-    read_status = UPPL_RC_ERR_DB_ACCESS;
+    read_status = UNC_UPPL_RC_ERR_DB_ACCESS;
     pfc_log_error("Read operation has failed with error %d", read_db_status);
     return read_status;
   } else if (read_db_status != ODBCM_RC_SUCCESS) {
-    read_status = UPPL_RC_ERR_DB_GET;
+    read_status = UNC_UPPL_RC_ERR_DB_GET;
     // log error to log daemon
     pfc_log_error("Read operation has failed with error %d", read_db_status);
     return read_status;
@@ -2513,12 +2517,13 @@ UpplReturnCode Kt_LogicalPort::ReadLogicalPortValFromDB(
                                 max_rep_ct,
                                 operation_type,
                                 logicalport_id);
-  pfc_log_debug("vect_val_logical_port_st size: %d",
-                (unsigned int)vect_val_logical_port_st.size());
-  pfc_log_debug("logicalport_id size: %d", (unsigned int)logicalport_id.size());
+  pfc_log_debug("vect_val_logical_port_st size: %"
+                PFC_PFMT_SIZE_T, vect_val_logical_port_st.size());
+  pfc_log_debug("logicalport_id size: %" PFC_PFMT_SIZE_T,
+                 logicalport_id.size());
   if (vect_val_logical_port_st.empty()) {
     // Read failed , return error
-    read_status = UPPL_RC_ERR_DB_GET;
+    read_status = UNC_UPPL_RC_ERR_DB_GET;
     // log error to log daemon
     pfc_log_error("Read operation has failed after reading response");
     return read_status;
@@ -2765,15 +2770,15 @@ void Kt_LogicalPort::GetAllPortId(OdbcmConnectionHandler *db_conn,
  *                logical port key type
  *                val_logical_port_valid_st - value structure of logical port
  *                key type
- * @return      : UPPL_RC_SUCCESS - value structure read from DB is success
- *                UPPL_RC_ERR_* - value structure read from DB is failure
+ * @return      : UNC_RC_SUCCESS - value structure read from DB is success
+ *                UNC_UPPL_RC_ERR_* - value structure read from DB is failure
  **/
-UpplReturnCode Kt_LogicalPort::GetLogicalPortValidFlag(
+UncRespCode Kt_LogicalPort::GetLogicalPortValidFlag(
     OdbcmConnectionHandler *db_conn,
     void *key_struct,
     val_logical_port_st_t &val_logical_port_valid_st,
     uint32_t data_type) {
-  UpplReturnCode return_code = UPPL_RC_SUCCESS;
+  UncRespCode return_code = UNC_RC_SUCCESS;
   // read the value structure from db
   vector<void *> vectVal_logicalport;
   vector<void *> vectkey_logicalport;
@@ -2781,7 +2786,7 @@ UpplReturnCode Kt_LogicalPort::GetLogicalPortValidFlag(
   return_code = ReadInternal(db_conn, vectkey_logicalport,
                              vectVal_logicalport,
                              data_type, UNC_OP_READ);
-  if (return_code == UPPL_RC_SUCCESS) {
+  if (return_code == UNC_RC_SUCCESS) {
     val_logical_port_st_t *obj_new_logicalport_val_vect =
         reinterpret_cast<val_logical_port_st_t*> (vectVal_logicalport[0]);
     if (obj_new_logicalport_val_vect != NULL) {
@@ -2834,11 +2839,11 @@ void Kt_LogicalPort::FrameValidValue(
  *                key_struct - void pointer type to be type cast to logical port
  *                key structure
  *                valid_flag - string pointer to hold the valid flag
- * @return      : UPPL_RC_SUCCESS - if valid flag is received from db
- *                UPPL_RC_DB_GET - if there is error in receiving the valid
+ * @return      : UNC_RC_SUCCESS - if valid flag is received from db
+ *                UNC_UPPL_RC_DB_GET - if there is error in receiving the valid
  *                flag from DB
  **/
-UpplReturnCode Kt_LogicalPort::GetValidFlag(
+UncRespCode Kt_LogicalPort::GetValidFlag(
     OdbcmConnectionHandler *db_conn,
     uint32_t data_type,
     void* key_struct,
@@ -2898,7 +2903,7 @@ UpplReturnCode Kt_LogicalPort::GetValidFlag(
   if (read_db_status != ODBCM_RC_SUCCESS) {
     // log error
     pfc_log_error("valid flag read operation failed");
-    return UPPL_RC_ERR_DB_GET;
+    return UNC_UPPL_RC_ERR_DB_GET;
   }
 
   // read the valid value
@@ -2927,7 +2932,7 @@ UpplReturnCode Kt_LogicalPort::GetValidFlag(
       }
     }
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /** 
@@ -2937,18 +2942,18 @@ UpplReturnCode Kt_LogicalPort::GetValidFlag(
  *                key_logical_port_t
  *                port_oper_status - poiter to store the oper status 
  *                data_type - indicates the data base type 
- * @return      : UPPL_RC_SUCCESS - if oper status value is received from DB
- *                UPPL_RC_ERR_* - if there is failure in receiving oper status
+ * @return      : UNC_RC_SUCCESS - if oper status value is received from DB
+ *                UNC_UPPL_RC_ERR_* - if there is failure in receiving oper status
  *                value from DB
  **/
-UpplReturnCode Kt_LogicalPort::GetPortOperStatus(
+UncRespCode Kt_LogicalPort::GetPortOperStatus(
     OdbcmConnectionHandler *db_conn,
     key_port_t &obj_key_port,
     uint8_t *port_oper_status,
     uint32_t data_type) {
   pfc_log_debug("Decide oper_status based on physical port oper_status");
   Kt_Port port;
-  UpplReturnCode read_status = port.GetOperStatus(
+  UncRespCode read_status = port.GetOperStatus(
       db_conn, data_type, reinterpret_cast<void*>(&obj_key_port),
       *port_oper_status);
   pfc_log_debug("Oper Status return %d, value %d", read_status,
@@ -2960,11 +2965,11 @@ UpplReturnCode Kt_LogicalPort::GetPortOperStatus(
  * @Description : This function gets all the logical ports associated with
  *                given controller/domain/switch
  * @param[in]   : controller_name - string to store the controller_name
- *               domain_name - string to store the domain_name
- *               switch_id - string to store the switch_id
- *               phy_port_id - string to store the physical port id
- *               vectLogicalPortKey - vector of type key_logical_port_t
- *               data_type - indicates the data base type UNC_DT_*              
+ *      domain_name - string to store the domain_name
+ *      switch_id - string to store the switch_id
+ *      phy_port_id - string to store the physical port id
+ *      vectLogicalPortKey - vector of type key_logical_port_t
+ *      data_type - indicates the data base type UNC_DT_*              
  * @return      : None
  **/
 void Kt_LogicalPort::GetAllLogicalPort(
@@ -3081,14 +3086,14 @@ void Kt_LogicalPort::GetAllLogicalPort(
  * @return      : Success if port type is within allowed values or
  *                else return failure
  **/
-UpplReturnCode Kt_LogicalPort::ValidatePortType(uint8_t port_type) {
+UncRespCode Kt_LogicalPort::ValidatePortType(uint8_t port_type) {
   if (port_type == UPPL_LP_SWITCH ||
       port_type == UPPL_LP_PHYSICAL_PORT ||
       port_type == UPPL_LP_TRUNK_PORT ||
       port_type == UPPL_LP_SUBDOMAIN ||
       port_type == UPPL_LP_TUNNEL_ENDPOINT) {
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   pfc_log_info("Invalid Logical Port Type provided %d", port_type);
-  return UPPL_RC_ERR_CFG_SYNTAX;
+  return UNC_UPPL_RC_ERR_CFG_SYNTAX;
 }
index 7a19dd2ccc97b8bd9d80d2648855bf6ab23c1a4f..df8401f5914caf06c1ce90bdf59260a268bf4c48 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
 #include "itc_kt_logicalport.hh"
 #include "itc_kt_link.hh"
 #include "odbcm_utils.hh"
+#include "ipct_util.hh"
 #include "itc_read_request.hh"
 #include "odbcm_db_varbind.hh"
 using unc::uppl::PhysicalLayer;
+using unc::uppl::IPCClientDriverHandler;
+
 /** 
  * @Description : This function initializes member variables
  *                and fills the attribute syntax map used for validation
@@ -50,22 +53,22 @@ Kt_Port::~Kt_Port() {
  *                data_type - indicates the data base type,UNC_DT_* delete only
  *                allowed in STATE
  *                key_type - indicates the Key Type Class 
- * @return      : UPPL_RC_SUCCESS is returned when the delete of a port in
+ * @return      : UNC_RC_SUCCESS is returned when the delete of a port in
  *                running db is successful
- *                UPPL_RC_ERR_* is returned when the delete is failure
+ *                UNC_UPPL_RC_ERR_* is returned when the delete is failure
  * */
-UpplReturnCode Kt_Port::DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Port::DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
                                           void* key_struct,
                                           uint32_t data_type,
                                           uint32_t key_type) {
-  UpplReturnCode delete_status = UPPL_RC_SUCCESS;
+  UncRespCode delete_status = UNC_RC_SUCCESS;
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
 
   // Check whether operation is allowed on the given DT type
   if ((unc_keytype_datatype_t)data_type != UNC_DT_STATE &&
       (unc_keytype_datatype_t)data_type != UNC_DT_IMPORT) {
     pfc_log_error("Delete operation is provided on unsupported data type");
-    return UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    return UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
   }
 
   key_port_t *obj_key_port= reinterpret_cast<key_port_t*>(key_struct);
@@ -107,9 +110,9 @@ UpplReturnCode Kt_Port::DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
   vector<void *> val_struct;
   key_val.push_back(reinterpret_cast<void *>(&logical_port_key_obj));
   val_struct.push_back(reinterpret_cast<void *>(&logical_port_st_val_obj));
-  UpplReturnCode lp_read_status = logical_port_obj.ReadInternal(
+  UncRespCode lp_read_status = logical_port_obj.ReadInternal(
       db_conn, key_val, val_struct, data_type, UNC_OP_READ);
-  if (lp_read_status == UPPL_RC_SUCCESS) {
+  if (lp_read_status == UNC_RC_SUCCESS) {
     // form key struct with all required primary keys and call delete
     logical_port_obj.DeleteKeyInstance(
         db_conn, key_val[0],
@@ -173,18 +176,18 @@ UpplReturnCode Kt_Port::DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
     if (delete_db_status == ODBCM_RC_CONNECTION_ERROR) {
       // log fatal error to log daemon
       pfc_log_fatal("DB connection not available or cannot access DB");
-      delete_status = UPPL_RC_ERR_DB_ACCESS;
+      delete_status = UNC_UPPL_RC_ERR_DB_ACCESS;
     } else if (delete_db_status == ODBCM_RC_ROW_NOT_EXISTS) {
       pfc_log_error("given instance does not exist");
-      delete_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+      delete_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     } else {
       // log error to log daemon
-      delete_status = UPPL_RC_ERR_DB_DELETE;
+      delete_status = UNC_UPPL_RC_ERR_DB_DELETE;
     }
   } else {
     pfc_log_info("Delete of a port in data_type(%d) is success",
                  data_type);
-    delete_status = UPPL_RC_SUCCESS;
+    delete_status = UNC_RC_SUCCESS;
   }
   return delete_status;
 }
@@ -197,11 +200,11 @@ UpplReturnCode Kt_Port::DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
  *                read allowed in DT_STATE
  *                operation_type - indicates the operation type for
  *                read operation
- * @return      : UPPL_RC_SUCCESS is returned when read operation is success on
+ * @return      : UNC_RC_SUCCESS is returned when read operation is success on
  *                DT_STATE db
- *                UPPL_RC_ERR_* is returned when read operation is failure
+ *                UNC_UPPL_RC_ERR_* is returned when read operation is failure
  **/
-UpplReturnCode Kt_Port::ReadInternal(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Port::ReadInternal(OdbcmConnectionHandler *db_conn,
                                      vector<void *> &key_val,
                                      vector<void *> &val_struct,
                                      uint32_t data_type,
@@ -219,7 +222,7 @@ UpplReturnCode Kt_Port::ReadInternal(OdbcmConnectionHandler *db_conn,
   if (!val_struct.empty()) {
     void_val_struct = val_struct[0];
   }
-  UpplReturnCode read_status = ReadPortValFromDB(db_conn,
+  UncRespCode read_status = ReadPortValFromDB(db_conn,
                                                  key_struct,
                                                  void_val_struct,
                                                  data_type,
@@ -229,12 +232,12 @@ UpplReturnCode Kt_Port::ReadInternal(OdbcmConnectionHandler *db_conn,
                                                  vect_port_id);
   key_val.clear();
   val_struct.clear();
-  pfc_log_info("ReadPortValFromDB returned %d with response size %d",
-               read_status,
-               static_cast<int>(vect_val_port_st.size()));
-  if (read_status == UPPL_RC_SUCCESS) {
-    pfc_log_debug("ReadPortValFromDB returned %d with response size %d",
-                  read_status, static_cast<int>(vect_val_port_st.size()));
+  pfc_log_info("ReadPortValFromDB returned %d with response size %"
+               PFC_PFMT_SIZE_T, read_status,
+               vect_val_port_st.size());
+  if (read_status == UNC_RC_SUCCESS) {
+    pfc_log_debug("ReadPortValFromDB returned %d with response size %"
+                  PFC_PFMT_SIZE_T, read_status, vect_val_port_st.size());
     for (unsigned int iIndex = 0 ; iIndex < vect_val_port_st.size();
         ++iIndex) {
       key_port_t *key_port = new key_port_t(vect_port_id[iIndex]);
@@ -258,11 +261,11 @@ UpplReturnCode Kt_Port::ReadInternal(OdbcmConnectionHandler *db_conn,
  *                readbulk
  *                is_read_next - indicates whether this function is invoked
  *                from readnext
- * @return      : UPPL_RC_SUCCESS is returned when the read bulk operation is
+ * @return      : UNC_RC_SUCCESS is returned when the read bulk operation is
  *                success.
- *                UPPL_RC_ERR_* is returned when read bulk operation is failure.
+ *                UNC_UPPL_RC_ERR_* is returned when read bulk operation is failure.
  **/
-UpplReturnCode Kt_Port::ReadBulk(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Port::ReadBulk(OdbcmConnectionHandler *db_conn,
                                  void* key_struct,
                                  uint32_t data_type,
                                  uint32_t &max_rep_ct,
@@ -271,11 +274,11 @@ UpplReturnCode Kt_Port::ReadBulk(OdbcmConnectionHandler *db_conn,
                                  pfc_bool_t is_read_next,
                                  ReadRequest *read_req) {
   pfc_log_info("Processing ReadBulk of Kt_Port");
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
   key_port_t *obj_key_port= reinterpret_cast<key_port_t*>(key_struct);
   if ((unc_keytype_datatype_t)data_type != UNC_DT_STATE) {
     // Not supported data type
-    read_status = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    read_status = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
     pfc_log_error("Operation on given data type is not allowed");
     return read_status;
   }
@@ -289,7 +292,7 @@ UpplReturnCode Kt_Port::ReadBulk(OdbcmConnectionHandler *db_conn,
       reinterpret_cast<char *>(&obj_key_port->port_id);
   if (max_rep_ct == 0) {
     pfc_log_debug("max_rep_ct is zero");
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   void *val_struct = NULL;
   vector<val_port_st_t> vect_val_port_st;
@@ -304,9 +307,9 @@ UpplReturnCode Kt_Port::ReadBulk(OdbcmConnectionHandler *db_conn,
       vect_val_port_st,
       vect_port_id);
 
-  pfc_log_debug("Read status from port is %d with result size %d",
-                read_status, static_cast<int>(vect_port_id.size()));
-  if (read_status == UPPL_RC_SUCCESS) {
+  pfc_log_debug("Read status from port is %d with result size %"
+                PFC_PFMT_SIZE_T, read_status, vect_port_id.size());
+  if (read_status == UNC_RC_SUCCESS) {
     vector<val_port_st_t>::iterator vect_iter =
         vect_val_port_st.begin();
     vector<key_port_t> ::iterator port_iter =
@@ -339,7 +342,7 @@ UpplReturnCode Kt_Port::ReadBulk(OdbcmConnectionHandler *db_conn,
         return read_status;
       }
     }
-  } else if (read_status == UPPL_RC_ERR_DB_ACCESS) {
+  } else if (read_status == UNC_UPPL_RC_ERR_DB_ACCESS) {
     pfc_log_debug("KtPort ReadBulk - Returning DB Access Error");
     return read_status;
   }
@@ -365,9 +368,9 @@ UpplReturnCode Kt_Port::ReadBulk(OdbcmConnectionHandler *db_conn,
         is_read_next,
         read_req);
     pfc_log_debug("read status from next kin Kt_Switch is %d", read_status);
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**ReadBulkInternal
@@ -381,12 +384,12 @@ UpplReturnCode Kt_Port::ReadBulk(OdbcmConnectionHandler *db_conn,
  *                val_port_st_t from db
  *                vect_port_id - stores the port_id values from the key
  *                structure of kt port
- * @return      : UPPL_RC_SUCCESS is returned when the read bulk operation is
+ * @return      : UNC_RC_SUCCESS is returned when the read bulk operation is
  *                successful.
- *                UPPL_RC_ERR_* is returned when the read bulk operation is
+ *                UNC_UPPL_RC_ERR_* is returned when the read bulk operation is
  *                failure
  **/
-UpplReturnCode Kt_Port::ReadBulkInternal(
+UncRespCode Kt_Port::ReadBulkInternal(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     void* val_struct,
@@ -395,10 +398,10 @@ UpplReturnCode Kt_Port::ReadBulkInternal(
     vector<val_port_st_t> &vect_val_port,
     vector<key_port_t> &vect_port_id) {
   if (max_rep_ct <= 0) {
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
   ODBCM_RC_STATUS read_db_status = ODBCM_RC_SUCCESS;
   DBTableSchema kt_port_dbtableschema;
   void *old_struct;
@@ -418,14 +421,14 @@ UpplReturnCode Kt_Port::ReadBulkInternal(
   pfc_log_debug("GetBulkRows return: %d", read_db_status);
   if (read_db_status == ODBCM_RC_RECORD_NOT_FOUND) {
     pfc_log_debug("No record found");
-    read_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+    read_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     return read_status;
   } else if (read_db_status == ODBCM_RC_CONNECTION_ERROR) {
-    read_status = UPPL_RC_ERR_DB_ACCESS;
+    read_status = UNC_UPPL_RC_ERR_DB_ACCESS;
     pfc_log_error("Read operation has failed with error %d", read_db_status);
     return read_status;
   } else if (read_db_status != ODBCM_RC_SUCCESS) {
-    read_status = UPPL_RC_ERR_DB_GET;
+    read_status = UNC_UPPL_RC_ERR_DB_GET;
     // log error to log daemon
     pfc_log_error("Read operation has failed with error %d", read_db_status);
     return read_status;
@@ -446,16 +449,16 @@ UpplReturnCode Kt_Port::ReadBulkInternal(
  *                key type port
  *                operation_type - UNC_OP* - indicates the operation type
  *                data_type - UNC_DT_* - indicates the data base type
- * @return      : UPPL_RC_SUCCESS is returned when the validation is successful
- *                UPPL_RC_ERR_* is returned when validation is failure
+ * @return      : UNC_RC_SUCCESS is returned when the validation is successful
+ *                UNC_UPPL_RC_ERR_* is returned when validation is failure
  **/
-UpplReturnCode Kt_Port::PerformSyntaxValidation(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Port::PerformSyntaxValidation(OdbcmConnectionHandler *db_conn,
                                                 void* key_struct,
                                                 void* val_struct,
                                                 uint32_t operation,
                                                 uint32_t data_type) {
   pfc_log_info("Performing Syntax Validation of KT_PORT");
-  UpplReturnCode ret_code = UPPL_RC_SUCCESS;
+  UncRespCode ret_code = UNC_RC_SUCCESS;
   pfc_bool_t mandatory = PFC_TRUE;
   map<string, Kt_Class_Attr_Syntax> attr_syntax_map =
       attr_syntax_map_all[UNC_KT_PORT];
@@ -464,22 +467,22 @@ UpplReturnCode Kt_Port::PerformSyntaxValidation(OdbcmConnectionHandler *db_conn,
   key_port *key = reinterpret_cast<key_port_t*>(key_struct);
   string value = reinterpret_cast<char*>(key->sw_key.ctr_key.controller_name);
   IS_VALID_STRING_KEY(CTR_NAME_STR, value, operation, ret_code, mandatory);
-  if (ret_code != UPPL_RC_SUCCESS) {
-    return UPPL_RC_ERR_CFG_SYNTAX;
+  if (ret_code != UNC_RC_SUCCESS) {
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
 
   // validate switch_id
   value = reinterpret_cast<char*>(key->sw_key.switch_id);
   IS_VALID_STRING_KEY(SWITCH_ID_STR, value, operation, ret_code, mandatory);
-  if (ret_code != UPPL_RC_SUCCESS) {
-    return UPPL_RC_ERR_CFG_SYNTAX;
+  if (ret_code != UNC_RC_SUCCESS) {
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
 
   // validate port_id
   value = reinterpret_cast<char*>(key->port_id);
   IS_VALID_STRING_KEY(PORT_ID_STR, value, operation, ret_code, mandatory);
-  if (ret_code != UPPL_RC_SUCCESS) {
-    return UPPL_RC_ERR_CFG_SYNTAX;
+  if (ret_code != UNC_RC_SUCCESS) {
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
 
   // Validate value structure
@@ -491,8 +494,8 @@ UpplReturnCode Kt_Port::PerformSyntaxValidation(OdbcmConnectionHandler *db_conn,
     valid_val = PhyUtil::uint8touint(value_port->valid[kIdxPortNumber]);
     IS_VALID_INT_VALUE(PORT_NUMBER_STR, value_port->port_number, operation,
                        valid_val, ret_code, mandatory);
-    if (ret_code != UPPL_RC_SUCCESS) {
-      return UPPL_RC_ERR_CFG_SYNTAX;
+    if (ret_code != UNC_RC_SUCCESS) {
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
 
     // validate description
@@ -500,16 +503,16 @@ UpplReturnCode Kt_Port::PerformSyntaxValidation(OdbcmConnectionHandler *db_conn,
     string value = reinterpret_cast<char*>(value_port->description);
     IS_VALID_STRING_VALUE(PORT_DESCRIPTION_STR, value, operation,
                           valid_val, ret_code, mandatory);
-    if (ret_code != UPPL_RC_SUCCESS) {
-      return UPPL_RC_ERR_CFG_SYNTAX;
+    if (ret_code != UNC_RC_SUCCESS) {
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
 
     // validate admin_status
     valid_val = PhyUtil::uint8touint(value_port->valid[kIdxPortAdminStatus]);
     IS_VALID_INT_VALUE(PORT_ADMIN_STATUS_STR, value_port->admin_status,
                        operation, valid_val, ret_code, mandatory);
-    if (ret_code != UPPL_RC_SUCCESS) {
-      return UPPL_RC_ERR_CFG_SYNTAX;
+    if (ret_code != UNC_RC_SUCCESS) {
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
 
     // validate trunk_allowed_vlan
@@ -517,8 +520,8 @@ UpplReturnCode Kt_Port::PerformSyntaxValidation(OdbcmConnectionHandler *db_conn,
         PhyUtil::uint8touint(value_port->valid[kIdxPortTrunkAllowedVlan]);
     IS_VALID_INT_VALUE(PORT_TRUNK_ALL_VLAN_STR, value_port->trunk_allowed_vlan,
                        operation, valid_val, ret_code, mandatory);
-    if (ret_code != UPPL_RC_SUCCESS) {
-      return UPPL_RC_ERR_CFG_SYNTAX;
+    if (ret_code != UNC_RC_SUCCESS) {
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
   }
   return ret_code;
@@ -532,17 +535,17 @@ UpplReturnCode Kt_Port::PerformSyntaxValidation(OdbcmConnectionHandler *db_conn,
  *                of key type port
  *                operation_type - UNC_OP* - indicates the operation type
  *                data_type - UNC_DT_* - indicates the data base type
- * @return      : UPPL_RC_SUCCESS is returned when the semantic validation is
+ * @return      : UNC_RC_SUCCESS is returned when the semantic validation is
  *                successful
- *                UPPL_RC_ERR_* is returned when semantic validation is failure
+ *                UNC_UPPL_RC_ERR_* is returned when semantic validation is failure
  * */
-UpplReturnCode Kt_Port::PerformSemanticValidation(
+UncRespCode Kt_Port::PerformSemanticValidation(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     void* val_struct,
     uint32_t operation,
     uint32_t data_type) {
-  UpplReturnCode status = UPPL_RC_SUCCESS;
+  UncRespCode status = UNC_RC_SUCCESS;
   pfc_log_debug("Inside PerformSemanticValidation of KT_PORT");
   // Check whether the given instance of port exists in DB
   key_port *obj_key_port = reinterpret_cast<key_port_t*>(key_struct);
@@ -581,39 +584,39 @@ UpplReturnCode Kt_Port::PerformSemanticValidation(
   vect_key_value.push_back(switch_id);
   vect_key_value.push_back(port_id);
 
-  UpplReturnCode key_status = IsKeyExists(
+  UncRespCode key_status = IsKeyExists(
       db_conn, (unc_keytype_datatype_t)data_type, vect_key_value);
   pfc_log_debug("IsKeyExists status %d", key_status);
   // In case of create operation, key should not exist
   if (operation == UNC_OP_CREATE) {
-    if (key_status == UPPL_RC_SUCCESS) {
+    if (key_status == UNC_RC_SUCCESS) {
       pfc_log_error("Key instance already exists");
       pfc_log_error("Hence create operation not allowed");
-      status = UPPL_RC_ERR_INSTANCE_EXISTS;
+      status = UNC_UPPL_RC_ERR_INSTANCE_EXISTS;
     } else {
       pfc_log_info("key instance not exist create operation allowed");
     }
   } else if (operation == UNC_OP_UPDATE || operation == UNC_OP_DELETE ||
       operation == UNC_OP_READ) {
     // In case of update/delete/read operation, key should exist
-    if (key_status != UPPL_RC_SUCCESS) {
+    if (key_status != UNC_RC_SUCCESS) {
       pfc_log_error("Key instance does not exist");
       pfc_log_error("Hence update/delete/read operation not allowed");
-      status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+      status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     } else {
       pfc_log_info("key instance exist update/del/read operation allowed");
     }
   }
-  if (operation == UNC_OP_CREATE && status == UPPL_RC_SUCCESS) {
+  if (operation == UNC_OP_CREATE && status == UNC_RC_SUCCESS) {
     vector<string> parent_vect_key_value;
     parent_vect_key_value.push_back(controller_name);
     parent_vect_key_value.push_back(switch_id);
     Kt_Switch KtObj;
-    UpplReturnCode parent_key_status = KtObj.IsKeyExists(
+    UncRespCode parent_key_status = KtObj.IsKeyExists(
         db_conn, (unc_keytype_datatype_t)data_type, parent_vect_key_value);
     pfc_log_debug("Parent IsKeyExists status %d", parent_key_status);
-    if (parent_key_status != UPPL_RC_SUCCESS) {
-      status = UPPL_RC_ERR_PARENT_DOES_NOT_EXIST;
+    if (parent_key_status != UNC_RC_SUCCESS) {
+      status = UNC_UPPL_RC_ERR_PARENT_DOES_NOT_EXIST;
     }
   }
   pfc_log_debug("Return Code SemanticValidation: %d", status);
@@ -633,17 +636,17 @@ UpplReturnCode Kt_Port::PerformSemanticValidation(
  *                value_struct - void pointer to be type cast to port value
  *                structure type
  * @return      : the oper status result from db will be returned
- *                UPPL_RC_SUCCESS - in case oper status is received from DB
- *                UPPL_RC_ERR_* - in case unable to receive oper status from DB
+ *                UNC_RC_SUCCESS - in case oper status is received from DB
+ *                UNC_UPPL_RC_ERR_* - in case unable to receive oper status from DB
  **/
 
-UpplReturnCode Kt_Port::HandleDriverAlarms(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Port::HandleDriverAlarms(OdbcmConnectionHandler *db_conn,
                                            uint32_t data_type,
                                            uint32_t alarm_type,
                                            uint32_t oper_type,
                                            void* key_struct,
                                            void* val_struct) {
-  UpplReturnCode status = UPPL_RC_SUCCESS;
+  UncRespCode status = UNC_RC_SUCCESS;
   key_port_t *obj_key_port =
       reinterpret_cast<key_port_t*>(key_struct);
   string controller_name =
@@ -661,11 +664,11 @@ UpplReturnCode Kt_Port::HandleDriverAlarms(OdbcmConnectionHandler *db_conn,
          controller_name.length()+1);
   pfc_log_info("alarm sent by driver is: %d", alarm_type);
   uint64_t alarm_status_db = 0;
-  UpplReturnCode read_alarm_status = GetAlarmStatus(db_conn, data_type,
+  UncRespCode read_alarm_status = GetAlarmStatus(db_conn, data_type,
                                                     key_struct,
                                                     alarm_status_db);
   // Read old_alarm_status from db
-  if (read_alarm_status == UPPL_RC_SUCCESS) {
+  if (read_alarm_status == UNC_RC_SUCCESS) {
     uint64_t new_alarm_status = 0;
     uint64_t old_alarm_status = alarm_status_db;
     pfc_log_info("alarm_status received from db: %" PFC_PFMT_u64,
@@ -716,7 +719,7 @@ UpplReturnCode Kt_Port::HandleDriverAlarms(OdbcmConnectionHandler *db_conn,
                                data_type,
                                UNC_KT_PORT,
                                old_val_struct);
-    if (status == UPPL_RC_SUCCESS && data_type != UNC_DT_IMPORT) {
+    if (status == UNC_RC_SUCCESS && data_type != UNC_DT_IMPORT) {
       // Send oper_status notification to northbound
       // Form value struct
       val_port_st old_val_port, new_val_port;
@@ -733,9 +736,9 @@ UpplReturnCode Kt_Port::HandleDriverAlarms(OdbcmConnectionHandler *db_conn,
       int err = 0;
       // Send notification to Northbound
       ServerEvent ser_evt((pfc_ipcevtype_t)UPPL_EVENTS_KT_PORT, err);
-      northbound_event_header rsh = {UNC_OP_UPDATE,
+      northbound_event_header rsh = {static_cast<uint32_t>(UNC_OP_UPDATE),
           data_type,
-          UNC_KT_PORT};
+          static_cast<uint32_t>(UNC_KT_PORT)};
       err = PhyUtil::sessOutNBEventHeader(ser_evt, rsh);
       err |= ser_evt.addOutput(*obj_key_port);
       err |= ser_evt.addOutput(new_val_port);
@@ -743,11 +746,11 @@ UpplReturnCode Kt_Port::HandleDriverAlarms(OdbcmConnectionHandler *db_conn,
       if (err == 0) {
         PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
         // Notify operstatus modifications
-        status = (UpplReturnCode) physical_layer
+        status = (UncRespCode) physical_layer
             ->get_ipc_connection_manager()->SendEvent(&ser_evt);
       } else {
         pfc_log_error("Server Event addOutput failed");
-        status = UPPL_RC_ERR_IPC_WRITE_ERROR;
+        status = UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
       }
     } else {
       pfc_log_debug("Update alarm status in db status %d", status);
@@ -770,19 +773,19 @@ UpplReturnCode Kt_Port::HandleDriverAlarms(OdbcmConnectionHandler *db_conn,
  * @param[in]   : data type - indicates the database type
  *                key values - vector to store the primary key values of port
  *                key type
- * @return      : UPPL_RC_SUCCESS - if the row exists in db with the key value
+ * @return      : UNC_RC_SUCCESS - if the row exists in db with the key value
  *                specified
- *                UPPL_RC_ERR_* - if the row doesn't exists in the specified DB   
+ *                UNC_UPPL_RC_ERR_* - if the row doesn't exists in the specified DB   
  **/
-UpplReturnCode Kt_Port::IsKeyExists(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Port::IsKeyExists(OdbcmConnectionHandler *db_conn,
                                     unc_keytype_datatype_t data_type,
                                     const vector<string> &key_values) {
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
-  UpplReturnCode check_status = UPPL_RC_SUCCESS;
+  UncRespCode check_status = UNC_RC_SUCCESS;
   if (key_values.empty()) {
     // No key given, return failure
     pfc_log_error("No key given. Returning error");
-    return UPPL_RC_ERR_BAD_REQUEST;
+    return UNC_UPPL_RC_ERR_BAD_REQUEST;
   }
   string controller_name = key_values[0];
   string switch_id = key_values[1];
@@ -827,12 +830,12 @@ UpplReturnCode Kt_Port::IsKeyExists(OdbcmConnectionHandler *db_conn,
   if (check_db_status == ODBCM_RC_CONNECTION_ERROR) {
     // log error to log daemon
     pfc_log_error("DB connection not available or cannot access DB");
-    check_status = UPPL_RC_ERR_DB_ACCESS;
+    check_status = UNC_UPPL_RC_ERR_DB_ACCESS;
   } else if (check_db_status == ODBCM_RC_ROW_EXISTS) {
     pfc_log_debug("DB returned success for Row exists");
   } else {
     pfc_log_info("DB Returned failure for IsRowExists");
-    check_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+    check_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
   }
   pfc_log_debug("check_status = %d", check_status);
   return check_status;
@@ -846,21 +849,19 @@ UpplReturnCode Kt_Port::IsKeyExists(OdbcmConnectionHandler *db_conn,
  *                key_struct - void pointer to be type cast to port key type
  *                value_struct - void pointer to be type cast to port value
  *                structure type
- * @return      : UPPL_RC_SUCCESS - if the update operation of oper status
+ * @return      : UNC_RC_SUCCESS - if the update operation of oper status
  *                change in db is successful
- *                UPPL_RC_ERR* - if the update operation of oper status in db
+ *                UNC_UPPL_RC_ERR* - if the update operation of oper status in db
  *                is failure
  **/
-UpplReturnCode Kt_Port::HandleOperStatus(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Port::HandleOperStatus(OdbcmConnectionHandler *db_conn,
                                          uint32_t data_type,
                                          void *key_struct,
                                          void *value_struct) {
-  FN_START_TIME("HandleOperStatus", "Port");
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
-  UpplReturnCode return_code = UPPL_RC_SUCCESS;
+  UncRespCode return_code = UNC_RC_SUCCESS;
   if (key_struct == NULL) {
-    FN_END_TIME("HandleOperStatus", "Port");
-    return UPPL_RC_ERR_BAD_REQUEST;
+    return UNC_UPPL_RC_ERR_BAD_REQUEST;
   }
 
   key_port_t *obj_key_port =
@@ -878,15 +879,15 @@ UpplReturnCode Kt_Port::HandleOperStatus(OdbcmConnectionHandler *db_conn,
   uint8_t ctrl_oper_status = 0;
   UpplPortOperStatus port_oper_status = UPPL_PORT_OPER_UNKNOWN;
   Kt_Controller controller;
-  UpplReturnCode read_status = controller.GetOperStatus(
+  UncRespCode read_status = controller.GetOperStatus(
       db_conn, data_type, reinterpret_cast<void*>(&ctr_key), ctrl_oper_status);
-  if (read_status != UPPL_RC_SUCCESS) {
+  if (read_status != UNC_RC_SUCCESS) {
     pfc_log_info("Controller's oper_status read returned failure");
     return read_status;
   }
   pfc_log_debug("Controller's oper_status %d", ctrl_oper_status);
   vector<OperStatusHolder> ref_oper_status;
-  ADD_CTRL_OPER_STATUS(controller_name, ctrl_oper_status);
+  ADD_CTRL_OPER_STATUS(controller_name, ctrl_oper_status, ref_oper_status);
   if (ctrl_oper_status ==
       (UpplControllerOperStatus) UPPL_CONTROLLER_OPER_UP) {
     pfc_log_info("Set Port oper status as up");
@@ -902,9 +903,9 @@ UpplReturnCode Kt_Port::HandleOperStatus(OdbcmConnectionHandler *db_conn,
   Kt_Switch switch1;
   read_status = switch1.GetOperStatus(
       db_conn, data_type, reinterpret_cast<void*>(&sw_key), switch_oper_status);
-  if (read_status == UPPL_RC_SUCCESS) {
+  if (read_status == UNC_RC_SUCCESS) {
     pfc_log_debug("Switch's oper_status %d", switch_oper_status);
-    ADD_SWITCH_OPER_STATUS(sw_key, switch_oper_status);
+    ADD_SWITCH_OPER_STATUS(sw_key, switch_oper_status, ref_oper_status);
     if (switch_oper_status ==
         (UpplSwitchOperStatus) UPPL_SWITCH_OPER_UP) {
       pfc_log_info("Set Port oper status as up");
@@ -1015,13 +1016,12 @@ UpplReturnCode Kt_Port::HandleOperStatus(OdbcmConnectionHandler *db_conn,
     key_port_t key_port = (*keyItr);
     ADD_PORT_OPER_STATUS(
         key_port,
-        port_oper_status);
+        port_oper_status, ref_oper_status);
     return_code = NotifyOperStatus(
         db_conn, data_type, reinterpret_cast<void *> (&(*keyItr)), NULL,
         ref_oper_status);
     pfc_log_debug("Notify Oper status return %d", return_code);
   }
-  FN_END_TIME("HandleOperStatus", "Port");
   ClearOperStatusHolder(ref_oper_status);
   return return_code;
 }
@@ -1034,18 +1034,18 @@ UpplReturnCode Kt_Port::HandleOperStatus(OdbcmConnectionHandler *db_conn,
  *                key type's key structure
  *                value_struct - void pointer to be type cast into respective
  *                key type's value structure
- * @return      : UPPL_RC_SUCCESS  - if the updation of oper status change in
+ * @return      : UNC_RC_SUCCESS  - if the updation of oper status change in
  *                other key type is success
- *                UPPL_RC_ERR* - if the updation of oper status change in db
+ *                UNC_UPPL_RC_ERR* - if the updation of oper status change in db
  *                is failure
  **/
-UpplReturnCode Kt_Port::NotifyOperStatus(
+UncRespCode Kt_Port::NotifyOperStatus(
     OdbcmConnectionHandler *db_conn,
     uint32_t data_type,
     void *key_struct,
     void *value_struct,
     vector<OperStatusHolder> &ref_oper_status) {
-  UpplReturnCode return_code = UPPL_RC_SUCCESS;
+  UncRespCode return_code = UNC_RC_SUCCESS;
   key_port_t *obj_key_port =
       reinterpret_cast<key_port_t*>(key_struct);
 
@@ -1133,7 +1133,7 @@ UpplReturnCode Kt_Port::NotifyOperStatus(
  *                structure
  * @return      : oper_status - it stores the oper status returned from DB
  **/
-UpplReturnCode Kt_Port::GetOperStatus(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Port::GetOperStatus(OdbcmConnectionHandler *db_conn,
                                       uint32_t data_type,
                                       void* key_struct,
                                       uint8_t &oper_status) {
@@ -1192,7 +1192,7 @@ UpplReturnCode Kt_Port::GetOperStatus(OdbcmConnectionHandler *db_conn,
           kt_port_dbtableschema, db_conn);
   if (update_db_status != ODBCM_RC_SUCCESS) {
     pfc_log_info("oper_status read operation failed %d", update_db_status);
-    return UPPL_RC_ERR_DB_GET;
+    return UNC_UPPL_RC_ERR_DB_GET;
   }
 
   // read the oper_status value
@@ -1220,7 +1220,7 @@ UpplReturnCode Kt_Port::GetOperStatus(OdbcmConnectionHandler *db_conn,
       }
     }
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /** 
@@ -1229,13 +1229,13 @@ UpplReturnCode Kt_Port::GetOperStatus(OdbcmConnectionHandler *db_conn,
  *                key_struct - void pointer type to be type cast to port key
  *                type structure
  *                alarm status - stores the alarm status received from DB
- * @return      : UPPL_RC_SUCCESS - if the alarm status is received
+ * @return      : UNC_RC_SUCCESS - if the alarm status is received
  *                successfully from db
- *                UPPL_RC_ERR* - if there is failure in reading the value
+ *                UNC_UPPL_RC_ERR* - if there is failure in reading the value
  *                from DB
  **/
 
-UpplReturnCode Kt_Port::GetAlarmStatus(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Port::GetAlarmStatus(OdbcmConnectionHandler *db_conn,
                                        uint32_t data_type,
                                        void* key_struct,
                                        uint64_t &alarms_status) {
@@ -1283,7 +1283,7 @@ UpplReturnCode Kt_Port::GetAlarmStatus(OdbcmConnectionHandler *db_conn,
           kt_port_dbtableschema, db_conn);
   if (update_db_status != ODBCM_RC_SUCCESS) {
     pfc_log_info("oper_status read operation failed %d", update_db_status);
-    return UPPL_RC_ERR_DB_GET;
+    return UNC_UPPL_RC_ERR_DB_GET;
   }
 
   // read the oper status value
@@ -1311,7 +1311,7 @@ UpplReturnCode Kt_Port::GetAlarmStatus(OdbcmConnectionHandler *db_conn,
       }
     }
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**
@@ -1322,7 +1322,7 @@ UpplReturnCode Kt_Port::GetAlarmStatus(OdbcmConnectionHandler *db_conn,
  *                oper_status - stores the oper status value to be updated in db
  * @return    : oper_status
  **/
-UpplReturnCode Kt_Port::SetOperStatus(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Port::SetOperStatus(OdbcmConnectionHandler *db_conn,
                                       uint32_t data_type,
                                       void* key_struct,
                                       UpplPortOperStatus oper_status) {
@@ -1380,14 +1380,14 @@ UpplReturnCode Kt_Port::SetOperStatus(OdbcmConnectionHandler *db_conn,
   } else if (update_db_status != ODBCM_RC_SUCCESS) {
     // log error
     pfc_log_error("oper_status update operation failed");
-    return UPPL_RC_ERR_DB_UPDATE;
+    return UNC_UPPL_RC_ERR_DB_UPDATE;
   } else {
     // Notify operstatus change to northbound
     uint8_t old_oper_status = 0;
-    UpplReturnCode read_status = GetOperStatus(db_conn, data_type,
+    UncRespCode read_status = GetOperStatus(db_conn, data_type,
                                                key_struct,
                                                old_oper_status);
-    if (read_status == UPPL_RC_SUCCESS) {
+    if (read_status == UNC_RC_SUCCESS) {
       val_port_st old_val_port, new_val_port;
       memset(&old_val_port, 0, sizeof(old_val_port));
       memset(&new_val_port, 0, sizeof(new_val_port));
@@ -1398,9 +1398,9 @@ UpplReturnCode Kt_Port::SetOperStatus(OdbcmConnectionHandler *db_conn,
       int err = 0;
       // Send notification to Northbound
       ServerEvent ser_evt((pfc_ipcevtype_t)UPPL_EVENTS_KT_PORT, err);
-      northbound_event_header rsh = {UNC_OP_UPDATE,
+      northbound_event_header rsh = {static_cast<uint32_t>(UNC_OP_UPDATE),
           data_type,
-          UNC_KT_PORT};
+          static_cast<uint32_t>(UNC_KT_PORT)};
       err = PhyUtil::sessOutNBEventHeader(ser_evt, rsh);
       err |= ser_evt.addOutput(*obj_key_port);
       err |= ser_evt.addOutput(new_val_port);
@@ -1408,7 +1408,7 @@ UpplReturnCode Kt_Port::SetOperStatus(OdbcmConnectionHandler *db_conn,
       if (err == 0) {
         PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
         // Notify operstatus modifications
-        UpplReturnCode status = (UpplReturnCode) physical_layer
+        UncRespCode status = (UncRespCode) physical_layer
             ->get_ipc_connection_manager()->SendEvent(&ser_evt);
         pfc_log_debug("Event notification status %d", status);
       } else {
@@ -1416,7 +1416,7 @@ UpplReturnCode Kt_Port::SetOperStatus(OdbcmConnectionHandler *db_conn,
       }
     }
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**
@@ -1707,10 +1707,10 @@ void Kt_Port::FillPortValueStructure(
     vect_obj_val_port.push_back(obj_val_port);
     // populate key structure
     port_id.push_back(obj_key_port);
-    pfc_log_debug("result - vect_obj_val_port size: %d",
-                  (unsigned int) vect_obj_val_port.size());
-    pfc_log_debug("result - vect_port_id size: %d",
-                  (unsigned int) port_id.size());
+    pfc_log_debug("result - vect_obj_val_port size: %"
+                  PFC_PFMT_SIZE_T, vect_obj_val_port.size());
+    pfc_log_debug("result - vect_port_id size: %"
+                  PFC_PFMT_SIZE_T, port_id.size());
   }
   return;
 }
@@ -1731,10 +1731,10 @@ void Kt_Port::FillPortValueStructure(
  *                option1,option2 - specifies any additional condition for
  *                read operation
  *                max_rep_ct - indicates the maximum repetition count
- * @return      : UPPL_RC_SUCCESS - if the read operation is successful
- *                UPPL_RC_ERR_* - read operation failed
+ * @return      : UNC_RC_SUCCESS - if the read operation is successful
+ *                UNC_UPPL_RC_ERR_* - read operation failed
  **/
-UpplReturnCode Kt_Port::PerformRead(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Port::PerformRead(OdbcmConnectionHandler *db_conn,
                                     uint32_t session_id,
                                     uint32_t configuration_id,
                                     void* key_struct,
@@ -1749,7 +1749,7 @@ UpplReturnCode Kt_Port::PerformRead(OdbcmConnectionHandler *db_conn,
                operation_type, data_type);
   key_port_t *obj_key_port =
       reinterpret_cast<key_port_t*>(key_struct);
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
   physical_response_header rsh = {session_id,
       configuration_id,
       operation_type,
@@ -1757,120 +1757,346 @@ UpplReturnCode Kt_Port::PerformRead(OdbcmConnectionHandler *db_conn,
       option1,
       option2,
       data_type,
-      read_status};
+      static_cast<uint32_t>(read_status)};
   if (operation_type == UNC_OP_READ) {
     max_rep_ct = 1;
   }
-
   if ((unc_keytype_datatype_t)data_type != UNC_DT_STATE) {
     pfc_log_error("Read operation is provided on unsupported data type");
-    rsh.result_code = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    rsh.result_code = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
     int err = PhyUtil::sessOutRespHeader(sess, rsh);
     err |= sess.addOutput((uint32_t)UNC_KT_PORT);
     err |= sess.addOutput(*obj_key_port);
     if (err != 0) {
       pfc_log_debug("addOutput failed for physical_response_header");
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
+    return UNC_RC_SUCCESS;
   }
-
-  if (option1 != UNC_OPT1_NORMAL) {
+  // U12 - Allowing UNC_OPT1_DETAIL for Port Statistics
+  if (option1 != UNC_OPT1_NORMAL && option1 != UNC_OPT1_DETAIL) {
     // Invalid operation
     pfc_log_error("PerformRead provided on unsupported option1");
-    rsh.result_code = UPPL_RC_ERR_INVALID_OPTION1;
+    rsh.result_code = UNC_UPPL_RC_ERR_INVALID_OPTION1;
     int err = PhyUtil::sessOutRespHeader(sess, rsh);
     err |= sess.addOutput((uint32_t)UNC_KT_PORT);
     err |= sess.addOutput(*obj_key_port);
     if (err != 0) {
       pfc_log_debug("addOutput failed for physical_response_header");
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 
-  if (option2 != UNC_OPT2_NEIGHBOR && option2 != UNC_OPT2_NONE) {
+  if (option1 == UNC_OPT1_DETAIL && option2 != UNC_OPT2_NONE) {
     pfc_log_error("PerformRead provided on unsupported option2");
-    rsh.result_code = UPPL_RC_ERR_INVALID_OPTION2;
+    rsh.result_code = UNC_UPPL_RC_ERR_INVALID_OPTION2;
     int err = PhyUtil::sessOutRespHeader(sess, rsh);
     err |= sess.addOutput((uint32_t)UNC_KT_PORT);
     err |= sess.addOutput(*obj_key_port);
     if (err != 0) {
       pfc_log_debug("addOutput failed for physical_response_header");
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
-    }
-    return UPPL_RC_SUCCESS;
-  }
-
-  if (option2 == UNC_OPT2_NONE) {
-    // For DT_STATE with option2 as none, populate val_port_st
-    pfc_log_debug("Populating val_port_st from DB");
-    vector<key_port_t> vect_port_id;
-    vector<val_port_st_t> vect_val_port_st;
-    read_status = ReadPortValFromDB(db_conn, key_struct,
-                                    val_struct,
-                                    data_type,
-                                    operation_type,
-                                    max_rep_ct,
-                                    vect_val_port_st,
-                                    vect_port_id);
-    rsh.result_code = read_status;
-    rsh.max_rep_count = max_rep_ct;
-    pfc_log_debug("read status val in performread = %d", read_status);
-    if (read_status != UPPL_RC_SUCCESS) {
-      rsh.max_rep_count = 0;
-      int err = PhyUtil::sessOutRespHeader(sess, rsh);
-      err |= sess.addOutput((uint32_t) UNC_KT_PORT);
-      err |= sess.addOutput(*obj_key_port);
-      if (err != 0) {
-        pfc_log_debug("addOutput failed for physical_response_header");
-        return UPPL_RC_ERR_IPC_WRITE_ERROR;
-      }
-      return UPPL_RC_SUCCESS;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
+    return UNC_RC_SUCCESS;
+  }
+  // U12 End
+
+  if (option2 != UNC_OPT2_NEIGHBOR && option2 != UNC_OPT2_NONE) {
+    pfc_log_error("PerformRead provided on unsupported option2");
+    rsh.result_code = UNC_UPPL_RC_ERR_INVALID_OPTION2;
     int err = PhyUtil::sessOutRespHeader(sess, rsh);
+    err |= sess.addOutput((uint32_t)UNC_KT_PORT);
+    err |= sess.addOutput(*obj_key_port);
     if (err != 0) {
       pfc_log_debug("addOutput failed for physical_response_header");
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
-    }
-    for (unsigned int index = 0; index < vect_port_id.size();
-        ++index) {
-      sess.addOutput((uint32_t)UNC_KT_PORT);
-      sess.addOutput((key_port_t)vect_port_id[index]);
-      sess.addOutput(vect_val_port_st[index]);
-      if (index < vect_port_id.size() - 1) {
-        sess.addOutput();  //  Seperator
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
+    }
+    return UNC_RC_SUCCESS;
+  }
+
+
+  // U12 START
+  string controller_name = (const char*)obj_key_port->sw_key.
+      ctr_key.controller_name;
+  ClientSession *cli_session = NULL;
+  if (option1 == UNC_OPT1_DETAIL && option2 == UNC_OPT2_NONE) {
+    pfc_log_info("Inside Detail:KT_PORT");
+    // Not allowing the STANDBY request
+     PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
+     if (physical_layer->get_physical_core()->get_system_state() == \
+         UPPL_SYSTEM_ST_STANDBY) {
+       pfc_log_error("System is in Standby mode");
+        rsh.result_code = UNC_UPPL_RC_ERR_NOT_SUPPORTED_BY_STANDBY;
+        rsh.max_rep_count = 0;
+        int err = PhyUtil::sessOutRespHeader(sess, rsh);
+        err |= sess.addOutput((uint32_t) UNC_KT_PORT);
+        err |= sess.addOutput(*obj_key_port);
+        if (err != 0) {
+          pfc_log_debug("addOutput failed for physical_response_header");
+          return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
+        }
+        return UNC_RC_SUCCESS;
+      }
+
+      // Getting the Response from Driver
+      vector<val_port_st_t> vect_val_port_st;
+      vector<key_port_t> vect_port_id;
+      read_status = ReadPortValFromDB(db_conn,
+                                        obj_key_port,
+                                        val_struct,
+                                        data_type,
+                                        operation_type,
+                                        max_rep_ct,
+                                        vect_val_port_st,
+                                        vect_port_id);
+      rsh.max_rep_count = max_rep_ct;
+      if (vect_port_id.size() == 0 || vect_val_port_st.size() == 0) {
+        pfc_log_debug("U12:read vectors size is zero");
+        read_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
+      }
+      pfc_log_debug("U12:read status val in PerformRead = %d", read_status);
+      if (read_status != UNC_RC_SUCCESS) {
+        rsh.result_code = read_status;
+        rsh.max_rep_count = 0;
+        int err = PhyUtil::sessOutRespHeader(sess, rsh);
+        err |= sess.addOutput((uint32_t) UNC_KT_PORT);
+        err |= sess.addOutput(*obj_key_port);
+        if (err != 0) {
+          pfc_log_debug("addOutput failed for physical_response_header");
+          return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
+        }
+        return UNC_RC_SUCCESS;
+      }
+      pfc_log_info("Filling the key structure and value into map");
+      // Filling the key structure and value strucute to the map from DB
+      map<string, val_port_stats_t*> nb_port_stats_map;
+
+      for (unsigned int index = 0; index < vect_port_id.size();
+          ++index) {
+        key_port_t obj_key_port = vect_port_id[index];
+        string port_name =  reinterpret_cast<char*>(obj_key_port.port_id);
+        pfc_log_debug("Inside the map %s", obj_key_port.port_id);
+        val_port_stats_t *ptr = new val_port_stats_t;
+        memset(ptr, 0, sizeof(val_port_stats_t));
+        memcpy(&ptr->port_st_val, &vect_val_port_st[index]
+            , sizeof(val_port_st_t));
+        ptr->valid[0] = 1;
+        nb_port_stats_map.insert(std::pair<string, val_port_stats_t*>
+                            (port_name, ptr));
+        pfc_log_debug("Map size=%" PFC_PFMT_SIZE_T, nb_port_stats_map.size());
+      }
+
+    unc_keytype_ctrtype_t controller_type = UNC_CT_UNKNOWN;
+    // call GetControllerType controller type func
+    (unc_keytype_ctrtype_t)PhyUtil::get_controller_type(
+                                                 db_conn,
+                                                 controller_name,
+                                                 controller_type,
+                                                 UNC_DT_STATE);
+    pfc_log_debug("Port:controller type is %d ", controller_type);
+    if (controller_type ==  UNC_CT_PFC) {
+      UncRespCode driver_response = UNC_RC_SUCCESS;
+      pfc_log_info("Controller is PFC");
+     UncRespCode err_resp = UNC_RC_SUCCESS;
+     IPCClientDriverHandler pfc_drv_handler(UNC_CT_PFC, err_resp);
+     if (err_resp == 0) {
+      cli_session = pfc_drv_handler.ResetAndGetSession();
+      // Creating a session to driver
+      string domain_id = "";
+      int err = 0;
+      if (operation_type == UNC_OP_READ) {
+        driver_request_header rqh = {uint32_t(0), uint32_t(0), controller_name,
+        domain_id, static_cast<uint32_t>(UNC_OP_READ), uint32_t(0),
+        static_cast<uint32_t>(UNC_OPT1_DETAIL),
+        static_cast<uint32_t>(UNC_OPT2_NONE),
+        static_cast<uint32_t>(UNC_DT_STATE),
+        static_cast<uint32_t>(UNC_KT_PORT)};
+        err = PhyUtil::sessOutDriverReqHeader(*cli_session, rqh);
+      } else if (operation_type == UNC_OP_READ_SIBLING ||
+               operation_type ==  UNC_OP_READ_SIBLING_BEGIN) {
+        driver_request_header rqh = {uint32_t(0), uint32_t(0), controller_name,
+        domain_id, static_cast<uint32_t>(UNC_OP_READ), uint32_t(0),
+        static_cast<uint32_t>(UNC_OPT1_DETAIL),
+        static_cast<uint32_t>(UNC_OPT2_SIBLING_ALL),
+        static_cast<uint32_t>(UNC_DT_STATE),
+        static_cast<uint32_t>(UNC_KT_PORT)};
+        err = PhyUtil::sessOutDriverReqHeader(*cli_session, rqh);
+      }
+      err |= cli_session->addOutput(*obj_key_port);
+      if (err == 0) {
+      driver_response_header rsp;
+      driver_response = pfc_drv_handler.SendReqAndGetResp(rsp);
+      if (driver_response == UNC_RC_SUCCESS) {
+      pfc_log_info("Filled te key structure and value into map");
+      uint8_t response_count = cli_session->getResponseCount();
+      pfc_log_info("Response count=%d", response_count);
+      if (response_count > 10) {
+      for (uint32_t idx = 11;
+               idx < response_count ; ) {
+         pfc_log_info("Reading stats from drv session %d", idx);
+         key_port_t key_port_drv_resp;
+         int err1 = cli_session->getResponse(idx++, key_port_drv_resp);
+         if (err1 != UNC_RC_SUCCESS) {
+           driver_response = UNC_UPPL_RC_ERR_DRIVER_COMMUNICATION_FAILURE;
+           break;
+         }
+        string port_name = (const char*)key_port_drv_resp.port_id;
+        pfc_log_info("Key value struct from drv %s", port_name.c_str());
+        val_port_stats_t port_stat_val;
+        memset(&port_stat_val, '\0', sizeof(val_port_stats_t));
+        err1 = cli_session->getResponse(idx++, port_stat_val);
+        if (err1 != UNC_RC_SUCCESS) {
+          driver_response = UNC_UPPL_RC_ERR_DRIVER_COMMUNICATION_FAILURE;
+          break;
+        }
+        map<string, val_port_stats_t*> :: iterator it_port_key_val =
+                                   nb_port_stats_map.find(port_name);
+        if (it_port_key_val != nb_port_stats_map.end()) {
+          pfc_log_info("Found entry in nb_port_stats_map for %s",
+                                                      port_name.c_str());
+          val_port_stats_t *ptr = reinterpret_cast<val_port_stats_t *>
+                                       (it_port_key_val->second);
+          memcpy(&port_stat_val.port_st_val, &ptr->port_st_val
+              , sizeof(port_stat_val.port_st_val));
+          port_stat_val.valid[0] = 1;
+          memcpy(ptr, &port_stat_val, sizeof(port_stat_val));
+        }
+      }
+    } else {
+       driver_response = UNC_UPPL_RC_ERR_DRIVER_COMMUNICATION_FAILURE;
+    }
+  } else {
+     // do nothing
+     }
+    } else {
+      driver_response = UNC_UPPL_RC_ERR_DRIVER_COMMUNICATION_FAILURE;
+    }
+    } else {
+        driver_response = UNC_UPPL_RC_ERR_DRIVER_COMMUNICATION_FAILURE;
+      }
+      if (driver_response != UNC_RC_SUCCESS) {
+        rsh.result_code = driver_response;
+        rsh.max_rep_count = 0;
+        int err = PhyUtil::sessOutRespHeader(sess, rsh);
+        err |= sess.addOutput((uint32_t) UNC_KT_PORT);
+        err |= sess.addOutput(*obj_key_port);
+        if (err != 0) {
+          pfc_log_debug("addOutput failed for physical_response_header");
+          return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
+        }
+        return UNC_RC_SUCCESS;
       }
     }
 
-  } else if (option2 == UNC_OPT2_NEIGHBOR) {
-    pfc_log_debug("Read neighbor details from DB");
-    val_port_st_neighbor obj_neighbor;
-    memset(&obj_neighbor, '\0', sizeof(val_port_st_neighbor));
-    read_status = ReadNeighbor(
+      int err = PhyUtil::sessOutRespHeader(sess, rsh);
+      if (err != 0) {
+        pfc_log_debug("addOutput failed for physical_response_header");
+        return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
+      }
+
+      for (unsigned int index = 0; index < vect_port_id.size();
+          ++index) {
+        key_port_t obj_key_port = vect_port_id[index];
+        string port_name =  reinterpret_cast<char*>(obj_key_port.port_id);
+        pfc_log_debug("Inside the map %s", port_name.c_str());
+        map<string, val_port_stats_t*> :: iterator it_port_key_val;
+        it_port_key_val = nb_port_stats_map.find(port_name);
+        if (it_port_key_val == nb_port_stats_map.end()) {
+          pfc_log_debug("Skipping %s", port_name.c_str());
+          continue;
+        }
+        val_port_stats_t *ptr = reinterpret_cast<val_port_stats_t *>
+                                                (it_port_key_val->second);
+        if (ptr != NULL) {
+        err |= sess.addOutput((uint32_t)UNC_KT_PORT);
+        pfc_log_debug("%s", IpctUtil::get_string(obj_key_port).c_str());
+        err |= sess.addOutput(obj_key_port);
+        pfc_log_debug("%s", IpctUtil::get_string(*ptr).c_str());
+        err |= sess.addOutput(*ptr);
+        if (err != 0) {
+          pfc_log_debug("addOutput failed for physical_response_header");
+          return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
+        }
+        if (index < vect_port_id.size() - 1) {
+          sess.addOutput();  //  Seperator
+        }
+        delete ptr;
+        }
+      }
+      return UNC_RC_SUCCESS;
+    }
+    // U12 END
+
+    if (option1 == UNC_OPT1_NORMAL && option2 == UNC_OPT2_NONE) {
+      // For DT_STATE with option2 as none, populate val_port_st
+      pfc_log_debug("Populating val_port_st from DB");
+      vector<key_port_t> vect_port_id;
+      vector<val_port_st_t> vect_val_port_st;
+      read_status = ReadPortValFromDB(db_conn, key_struct,
+                                      val_struct,
+                                      data_type,
+                                      operation_type,
+                                      max_rep_ct,
+                                      vect_val_port_st,
+                                      vect_port_id);
+      rsh.result_code = read_status;
+      rsh.max_rep_count = max_rep_ct;
+      pfc_log_debug("read status val in performread = %d", read_status);
+      if (read_status != UNC_RC_SUCCESS) {
+        rsh.max_rep_count = 0;
+        int err = PhyUtil::sessOutRespHeader(sess, rsh);
+        err |= sess.addOutput((uint32_t) UNC_KT_PORT);
+        err |= sess.addOutput(*obj_key_port);
+        if (err != 0) {
+          pfc_log_debug("addOutput failed for physical_response_header");
+          return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
+        }
+        return UNC_RC_SUCCESS;
+      }
+      int err = PhyUtil::sessOutRespHeader(sess, rsh);
+      if (err != 0) {
+        pfc_log_debug("addOutput failed for physical_response_header");
+        return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
+      }
+      for (unsigned int index = 0; index < vect_port_id.size();
+          ++index) {
+        sess.addOutput((uint32_t)UNC_KT_PORT);
+        sess.addOutput((key_port_t)vect_port_id[index]);
+        sess.addOutput(vect_val_port_st[index]);
+        if (index < vect_port_id.size() - 1) {
+          sess.addOutput();  //  Seperator
+        }
+      }
+    } else if (option1 == UNC_OPT1_NORMAL && option2 == UNC_OPT2_NEIGHBOR) {
+      pfc_log_debug("Read neighbor details from DB");
+      val_port_st_neighbor obj_neighbor;
+      memset(&obj_neighbor, '\0', sizeof(val_port_st_neighbor));
+      read_status = ReadNeighbor(
         db_conn, key_struct,
         val_struct,
         data_type,
         obj_neighbor);
-    pfc_log_debug("Return value for read operation %d", read_status);
-    rsh.result_code = read_status;
-    int err = PhyUtil::sessOutRespHeader(sess, rsh);
-    err |= sess.addOutput((uint32_t)UNC_KT_PORT);
-    err |= sess.addOutput(*obj_key_port);
-    if (err != 0) {
-      pfc_log_debug("addOutput failed for physical_response_header");
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
-    }
-    if (read_status == UPPL_RC_SUCCESS) {
-      err = sess.addOutput(obj_neighbor);
+      pfc_log_debug("Return value for read operation %d", read_status);
+      rsh.result_code = read_status;
+      int err = PhyUtil::sessOutRespHeader(sess, rsh);
+      err |= sess.addOutput((uint32_t)UNC_KT_PORT);
+      err |= sess.addOutput(*obj_key_port);
       if (err != 0) {
         pfc_log_debug("addOutput failed for physical_response_header");
-        return UPPL_RC_ERR_IPC_WRITE_ERROR;
+        return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
+      }
+      if (read_status == UNC_RC_SUCCESS) {
+        err = sess.addOutput(obj_neighbor);
+        if (err != 0) {
+          pfc_log_debug("addOutput failed for physical_response_header");
+          return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
+        }
+      } else {
+        pfc_log_info("Read operation on neighbor failed");
       }
-    }  else {
-      pfc_log_info("Read operation on neighbor failed");
     }
-  }
-  return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
 }
 
 /** 
@@ -1886,10 +2112,10 @@ UpplReturnCode Kt_Port::PerformRead(OdbcmConnectionHandler *db_conn,
  *                vect_val_port - vector to store the val_port_st_t structure
  *                port_id - vector of type key_port_t to store the
  *                logical port id
- * @return      : UPPL_RC_SUCCESS - read operation is success
- *                UPPL_RC_ERR_DB_GET - read operation is failure
+ * @return      : UNC_RC_SUCCESS - read operation is success
+ *                UNC_UPPL_RC_ERR_DB_GET - read operation is failure
  **/
-UpplReturnCode Kt_Port::ReadPortValFromDB(
+UncRespCode Kt_Port::ReadPortValFromDB(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     void* val_struct,
@@ -1900,10 +2126,10 @@ UpplReturnCode Kt_Port::ReadPortValFromDB(
     vector<key_port_t> &port_id) {
   if (operation_type < UNC_OP_READ) {
     // Unsupported operation type for this function
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
   ODBCM_RC_STATUS read_db_status = ODBCM_RC_SUCCESS;
   // Common structures that will be used to send query to ODBC
   // Structure used to send request to ODBC
@@ -1928,15 +2154,15 @@ UpplReturnCode Kt_Port::ReadPortValFromDB(
   }
   if (read_db_status == ODBCM_RC_RECORD_NOT_FOUND) {
     pfc_log_debug("No record found");
-    read_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+    read_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     return read_status;
   } else if (read_db_status == ODBCM_RC_CONNECTION_ERROR) {
     // log error to log daemon
     pfc_log_error("DB connection not available or cannot access DB");
-    read_status = UPPL_RC_ERR_DB_ACCESS;
+    read_status = UNC_UPPL_RC_ERR_DB_ACCESS;
     return read_status;
   } else if (read_db_status != ODBCM_RC_SUCCESS) {
-    read_status = UPPL_RC_ERR_DB_GET;
+    read_status = UNC_UPPL_RC_ERR_DB_GET;
     // log error to log daemon
     pfc_log_error("Read operation has failed: %d", read_db_status);
     return read_status;
@@ -1948,12 +2174,12 @@ UpplReturnCode Kt_Port::ReadPortValFromDB(
                          max_rep_ct,
                          UNC_OP_READ,
                          port_id);
-  pfc_log_debug("vect_val_port_st size: %d",
-                (unsigned int)vect_val_port_st.size());
-  pfc_log_debug("port_id size: %d", (unsigned int)port_id.size());
+  pfc_log_debug("vect_val_port_st size: %"
+                PFC_PFMT_SIZE_T, vect_val_port_st.size());
+  pfc_log_debug("port_id size: %" PFC_PFMT_SIZE_T, port_id.size());
   if (vect_val_port_st.empty()) {
     // Read failed , return error
-    read_status = UPPL_RC_ERR_DB_GET;
+    read_status = UNC_UPPL_RC_ERR_DB_GET;
     // log error to log daemon
     pfc_log_error("Read operation has failed after reading response");
     return read_status;
@@ -1969,19 +2195,19 @@ UpplReturnCode Kt_Port::ReadPortValFromDB(
  *                structure type
  *                data_type - indicates the data base type
  *                neighbor_obj - structure variable of type val_port_st_neighbor
- * @return      : UPPL_RC_SUCCESS - is returned if the read neighbor operation
+ * @return      : UNC_RC_SUCCESS - is returned if the read neighbor operation
  *                is success
- *                UPPL_RC_ERR* - is returned if the read neighbor operation is
+ *                UNC_UPPL_RC_ERR* - is returned if the read neighbor operation is
  *                failure
  **/
-UpplReturnCode Kt_Port::ReadNeighbor(
+UncRespCode Kt_Port::ReadNeighbor(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     void* val_struct,
     uint32_t data_type,
     val_port_st_neighbor &neighbor_obj) {
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
   key_port_t *obj_key_port= reinterpret_cast<key_port_t*>(key_struct);
   string controller_name = (const char*)obj_key_port->
       sw_key.ctr_key.controller_name;
@@ -1997,7 +2223,7 @@ UpplReturnCode Kt_Port::ReadNeighbor(
                              vect_val_port,
                              data_type,
                              UNC_OP_READ);
-  if (read_status != UPPL_RC_SUCCESS) {
+  if (read_status != UNC_RC_SUCCESS) {
     // unable to read value from Db for port
     pfc_log_info("Neighbour fails - unable to read port value");
     return read_status;
@@ -2007,7 +2233,7 @@ UpplReturnCode Kt_Port::ReadNeighbor(
   if (obj_val_st_port == NULL) {
     // unable to read value from Db for port
     pfc_log_info("Neighbour fails - unable to read port value");
-    return UPPL_RC_ERR_NO_SUCH_INSTANCE;
+    return UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
   }
   val_port_t obj_val_port = obj_val_st_port->port;
   DBTableSchema kt_port_dbtableschema;
@@ -2041,7 +2267,7 @@ UpplReturnCode Kt_Port::ReadNeighbor(
       GetOneRow((unc_keytype_datatype_t)data_type, kt_port_dbtableschema,
                 db_conn);
   if (read_db_status == ODBCM_RC_SUCCESS) {
-    read_status = UPPL_RC_SUCCESS;
+    read_status = UNC_RC_SUCCESS;
     // populate IPC value structure based on the response received from DB
     vector<TableAttrSchema> res_table_attr_schema =
         kt_port_dbtableschema.get_row_list().front();
@@ -2068,13 +2294,13 @@ UpplReturnCode Kt_Port::ReadNeighbor(
   } else {
     if (read_db_status == ODBCM_RC_RECORD_NOT_FOUND) {
       pfc_log_info("No record to read in ReadNeighbor");
-      read_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+      read_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     } else if (read_db_status == ODBCM_RC_CONNECTION_ERROR) {
       // log error to log daemon
       pfc_log_error("DB connection not available or cannot access DB");
-      read_status = UPPL_RC_ERR_DB_ACCESS;
+      read_status = UNC_UPPL_RC_ERR_DB_ACCESS;
     } else if (read_db_status != ODBCM_RC_SUCCESS) {
-      read_status = UPPL_RC_ERR_DB_GET;
+      read_status = UNC_UPPL_RC_ERR_DB_GET;
       pfc_log_info("ReadNeighbor operation has failed with %d", read_status);
     }
   }
@@ -2169,17 +2395,17 @@ void Kt_Port::Fill_Attr_Syntax_Map() {
  *                val_port_valid_st - structure variable of type
  *                val_port_valid_st
  *                new_valid_val - enum for valid flag
- * @return      : UPPL_RC_SUCCESS - if valid flag update is success 
+ * @return      : UNC_RC_SUCCESS - if valid flag update is success 
  *                UPL_RC_ERR_* - if valid flag update is failure
  **/
-UpplReturnCode Kt_Port::UpdatePortValidFlag(
+UncRespCode Kt_Port::UpdatePortValidFlag(
     OdbcmConnectionHandler *db_conn,
     void *key_struct,
     void *val_struct,
     val_port_st_t &val_port_valid_st,
     unc_keytype_validflag_t new_valid_val,
     uint32_t data_type) {
-  UpplReturnCode return_code = UPPL_RC_SUCCESS;
+  UncRespCode return_code = UNC_RC_SUCCESS;
   // read the value structure from db
   void *obj_key_port_orig = key_struct;
   vector<void *> vect_key_port;
@@ -2187,7 +2413,7 @@ UpplReturnCode Kt_Port::UpdatePortValidFlag(
   vector<void *> vect_val_port;
   return_code = ReadInternal(db_conn, vect_key_port, vect_val_port,
                              data_type, UNC_OP_READ);
-  if (return_code != UPPL_RC_SUCCESS) {
+  if (return_code != UNC_RC_SUCCESS) {
     pfc_log_info("Read is not success");
     return return_code;
   }
@@ -2363,10 +2589,10 @@ UpplReturnCode Kt_Port::UpdatePortValidFlag(
  *                val_struct - void pointer to be type cast to port value type
  *                structure
  *                valid_new - stores the valid flag to be updated in Db
- * @return      : UPPL_RC_SUCCESS - if port valid update operation is success
- *                UPPL_RC_ERR_* - if port valid update operation is failure
+ * @return      : UNC_RC_SUCCESS - if port valid update operation is success
+ *                UNC_UPPL_RC_ERR_* - if port valid update operation is failure
  **/
-UpplReturnCode Kt_Port::PopulateSchemaForValidFlag(
+UncRespCode Kt_Port::PopulateSchemaForValidFlag(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     void* val_struct,
@@ -2427,9 +2653,9 @@ UpplReturnCode Kt_Port::PopulateSchemaForValidFlag(
   if (update_db_status != ODBCM_RC_SUCCESS) {
     // log error
     pfc_log_error("port valid update operation failed");
-    return UPPL_RC_ERR_DB_UPDATE;
+    return UNC_UPPL_RC_ERR_DB_UPDATE;
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**
@@ -2478,16 +2704,22 @@ void Kt_Port::GetPortValStructure(
     stringstream &valid) {
   uint16_t valid_val = 0, prev_db_val = 0;
   unsigned int valid_value_struct = UNC_VF_VALID;
+
   if (obj_val_port != NULL) {
     valid_value_struct = PhyUtil::uint8touint(
         obj_val_port->valid[kIdxPortSt]);
   }
+
   string value = "";
   // Port_number
-  if (obj_val_port != NULL && valid_value_struct == UNC_VF_VALID) {
-    valid_val = PhyUtil::uint8touint(
+  if (obj_val_port != NULL) {
+    if (valid_value_struct == UNC_VF_VALID) {
+      valid_val = PhyUtil::uint8touint(
         obj_val_port->port.valid[kIdxPortNumber]);
-    value = PhyUtil::uint8tostr(obj_val_port->port.port_number);
+      value = PhyUtil::uint32tostr(obj_val_port->port.port_number);
+    } else if (valid_value_struct == UNC_VF_VALID_NO_VALUE) {
+      valid_val = UNC_VF_VALID_NO_VALUE;
+    }
     if (operation_type == UNC_OP_UPDATE) {
       prev_db_val =
           PhyUtil::uint8touint(
@@ -2502,10 +2734,14 @@ void Kt_Port::GetPortValStructure(
                         vect_table_attr_schema, vect_prim_keys, valid);
   value.clear();
   // Description
-  if (obj_val_port != NULL && valid_value_struct == UNC_VF_VALID) {
-    valid_val = PhyUtil::uint8touint(
-        obj_val_port->port.valid[kIdxPortDescription]);
-    value = (const char*)obj_val_port->port.description;
+  if (obj_val_port != NULL) {
+    if (valid_value_struct == UNC_VF_VALID) {
+      valid_val = PhyUtil::uint8touint(
+          obj_val_port->port.valid[kIdxPortDescription]);
+      value = (const char*)obj_val_port->port.description;
+    } else if (valid_value_struct == UNC_VF_VALID_NO_VALUE) {
+      valid_val = UNC_VF_VALID_NO_VALUE;
+    }
     if (operation_type == UNC_OP_UPDATE) {
       prev_db_val =
           PhyUtil::uint8touint(
@@ -2520,10 +2756,14 @@ void Kt_Port::GetPortValStructure(
                         vect_table_attr_schema, vect_prim_keys, valid);
   value.clear();
   // Admin_status
-  if (obj_val_port != NULL && valid_value_struct == UNC_VF_VALID) {
-    valid_val = PhyUtil::uint8touint(
-        obj_val_port->port.valid[kIdxPortAdminStatus]);
-    value = PhyUtil::uint8tostr(obj_val_port->port.admin_status);
+  if (obj_val_port != NULL) {
+    if (valid_value_struct == UNC_VF_VALID) {
+      valid_val = PhyUtil::uint8touint(
+          obj_val_port->port.valid[kIdxPortAdminStatus]);
+      value = PhyUtil::uint8tostr(obj_val_port->port.admin_status);
+    } else if (valid_value_struct == UNC_VF_VALID_NO_VALUE) {
+      valid_val = UNC_VF_VALID_NO_VALUE;
+    }
     if (operation_type == UNC_OP_UPDATE) {
       prev_db_val =
           PhyUtil::uint8touint(
@@ -2538,11 +2778,15 @@ void Kt_Port::GetPortValStructure(
                         vect_table_attr_schema, vect_prim_keys, valid);
   value.clear();
   // trunk_allowed_vlan
-  if (obj_val_port != NULL && valid_value_struct == UNC_VF_VALID) {
-    valid_val = PhyUtil::uint8touint(obj_val_port->port.valid\
+  if (obj_val_port != NULL) {
+    if (valid_value_struct == UNC_VF_VALID) {
+      valid_val = PhyUtil::uint8touint(obj_val_port->port.valid\
                                      [kIdxPortTrunkAllowedVlan]);
-    value = PhyUtil::uint8tostr(obj_val_port->\
+      value = PhyUtil::uint16tostr(obj_val_port->\
                                 port.trunk_allowed_vlan);
+    } else if (valid_value_struct == UNC_VF_VALID_NO_VALUE) {
+      valid_val = UNC_VF_VALID_NO_VALUE;
+    }
     if (operation_type == UNC_OP_UPDATE) {
       prev_db_val =
           PhyUtil::uint8touint(
@@ -2738,9 +2982,9 @@ void Kt_Port::GetPortStateValStructure(
  * @Description : This function performs oper status handling for sub domain
  * @param[in]   : data_type - indicates the data base type
  *                controller_name, switch_name and physical_port id
- * @return      : UPPL_RC_SUCCESS
+ * @return      : UNC_RC_SUCCESS
  **/
-UpplReturnCode Kt_Port::SubDomainOperStatusHandling(
+UncRespCode Kt_Port::SubDomainOperStatusHandling(
     OdbcmConnectionHandler *db_conn,
     uint32_t data_type,
     string controller_name,
@@ -2786,7 +3030,7 @@ UpplReturnCode Kt_Port::SubDomainOperStatusHandling(
                   db_conn);
   if (db_status != ODBCM_RC_SUCCESS) {
     pfc_log_debug("No associated logical member port");
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   // To traverse the list
   list<vector<TableAttrSchema> > ::iterator iter_list;
@@ -2831,14 +3075,14 @@ UpplReturnCode Kt_Port::SubDomainOperStatusHandling(
            log_port_id.c_str(),
            log_port_id.length()+1);
     vector<OperStatusHolder> ref_oper_status;
-    GET_ADD_CTRL_OPER_STATUS(controller_name);
+    GET_ADD_CTRL_OPER_STATUS(controller_name, ref_oper_status);
     Kt_LogicalPort log_port_obj;
-    UpplReturnCode return_code = log_port_obj.HandleOperStatus(
+    UncRespCode return_code = log_port_obj.HandleOperStatus(
         db_conn, data_type, reinterpret_cast<void *> (&logical_port_key),
         NULL, ref_oper_status, UNC_KT_PORT);
     pfc_log_debug("HandleOperStatus for logical port class %d",
                   return_code);
     ClearOperStatusHolder(ref_oper_status);
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
index 11eaa13ea56830d754aebce883e172a00f1eaed4..a6504193d8b49c2e0774727ea9322714d6879a60 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -77,10 +77,10 @@ Kt_Base* Kt_Root::GetChildClassPointer(KtRootChildClass KIndex) {
  * configuration_id-ipc configuration id used for TC validation
  * data_type-UNC_DT_*,type of database
  * sess-ServerSession object where the request argument present
- * @return    : UPPL_RC_ERR_OPERATION_NOT_ALLOWED
+ * @return    : UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED
  * */
 
-UpplReturnCode Kt_Root::Create(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Root::Create(OdbcmConnectionHandler *db_conn,
                                uint32_t session_id,
                                uint32_t configuration_id,
                                void* key_struct,
@@ -94,15 +94,15 @@ UpplReturnCode Kt_Root::Create(OdbcmConnectionHandler *db_conn,
       0,
       0,
       data_type,
-      UPPL_RC_ERR_OPERATION_NOT_ALLOWED};
+      UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED};
   pfc_log_debug("Create Operation not allowed on KT_ROOT");
   int err = PhyUtil::sessOutRespHeader(sess, rsh);
   err |= sess.addOutput((uint32_t) UNC_KT_ROOT);
   err |= sess.addOutput(*reinterpret_cast<key_root_t*>(key_struct));
   if (err != 0) {
-    return UPPL_RC_ERR_IPC_WRITE_ERROR;
+    return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 
@@ -114,9 +114,9 @@ UpplReturnCode Kt_Root::Create(OdbcmConnectionHandler *db_conn,
  * configuration_id-ipc configuration id used for TC validation
  * data_type-UNC_DT_*,type of database
  * sess-ServerSession object where the request argument present
- * @return    : UPPL_RC_ERR_OPERATION_NOT_ALLOWED
+ * @return    : UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED
  * */
-UpplReturnCode Kt_Root::Update(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Root::Update(OdbcmConnectionHandler *db_conn,
                                uint32_t session_id,
                                uint32_t configuration_id,
                                void* key_struct,
@@ -131,15 +131,15 @@ UpplReturnCode Kt_Root::Update(OdbcmConnectionHandler *db_conn,
       0,
       0,
       data_type,
-      UPPL_RC_ERR_OPERATION_NOT_ALLOWED};
+      UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED};
   pfc_log_debug("Update Operation not allowed on KT_ROOT");
   int err = PhyUtil::sessOutRespHeader(sess, rsh);
   err |= sess.addOutput((uint32_t) UNC_KT_ROOT);
   err |= sess.addOutput(*reinterpret_cast<key_root_t*>(key_struct));
   if (err != 0) {
-    return UPPL_RC_ERR_IPC_WRITE_ERROR;
+    return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 
@@ -151,9 +151,9 @@ UpplReturnCode Kt_Root::Update(OdbcmConnectionHandler *db_conn,
  * configuration_id-ipc configuration id used for TC validation
  * data_type-UNC_DT_*,type of database
  * sess-ServerSession object where the request argument present
- * @return    : UPPL_RC_ERR_OPERATION_NOT_ALLOWED
+ * @return    : UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED
  * */
-UpplReturnCode Kt_Root::Delete(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Root::Delete(OdbcmConnectionHandler *db_conn,
                                uint32_t session_id,
                                uint32_t configuration_id,
                                void* key_struct,
@@ -167,15 +167,15 @@ UpplReturnCode Kt_Root::Delete(OdbcmConnectionHandler *db_conn,
       0,
       0,
       data_type,
-      UPPL_RC_ERR_OPERATION_NOT_ALLOWED};
+      UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED};
   pfc_log_debug("Delete Operation not allowed on KT_ROOT");
   int err = PhyUtil::sessOutRespHeader(sess, rsh);
   err |= sess.addOutput((uint32_t) UNC_KT_ROOT);
   err |= sess.addOutput(*reinterpret_cast<key_root_t*>(key_struct));
   if (err != 0) {
-    return UPPL_RC_ERR_IPC_WRITE_ERROR;
+    return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**ReadBulk
@@ -193,11 +193,11 @@ UpplReturnCode Kt_Root::Delete(OdbcmConnectionHandler *db_conn,
  * bool parent_call-flag to indicate whether function called by parent
  * bool is_read_next-flag to indicate whether requested operation is 
  *                 UNC_OP_READ_NEXT
- * @return    : UPPL_RC_SUCCESS is returned when the response
+ * @return    : UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_Root::ReadBulk(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Root::ReadBulk(OdbcmConnectionHandler *db_conn,
                                  void* key_struct,
                                  uint32_t data_type,
                                  uint32_t &max_rep_ct,
@@ -206,11 +206,11 @@ UpplReturnCode Kt_Root::ReadBulk(OdbcmConnectionHandler *db_conn,
                                  pfc_bool_t is_read_next,
                                  ReadRequest *read_req) {
   pfc_log_debug("Inside ReadBulk of Kt_ROOT");
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
   if (max_rep_ct == 0) {
-    // Count is 0, return UPPL_RC_SUCCESS
+    // Count is 0, return UNC_RC_SUCCESS
     pfc_log_debug("KT_ROOT - Count is 0, return Success");
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   if ((unc_keytype_datatype_t)data_type == UNC_DT_CANDIDATE ||
       (unc_keytype_datatype_t)data_type == UNC_DT_RUNNING ||
@@ -244,16 +244,16 @@ UpplReturnCode Kt_Root::ReadBulk(OdbcmConnectionHandler *db_conn,
       delete child[kIdx];
       child[kIdx] = NULL;
       if (max_rep_ct <= 0) {
-        // Count reached 0, return UPPL_RC_SUCCESS
-        return UPPL_RC_SUCCESS;
+        // Count reached 0, return UNC_RC_SUCCESS
+        return UNC_RC_SUCCESS;
       }
     }
   } else {
     pfc_log_debug(
         "READ_NEXT and READ_BULK operations are not allowed on the data types"
         " other than DT_CANDIDATE, DT_RUNNING, DT_STARTUP and DT_STATE");
-    read_status = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
-    return UPPL_RC_SUCCESS;
+    read_status = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    return UNC_RC_SUCCESS;
   }
   pfc_log_debug("read_status=%d", read_status);
   return read_status;
index 29d319ddf520a720936633d7da7970a12c630224..f21bf12aa446b4c42c40a6881760fa822dfaa621 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -41,9 +41,9 @@ Kt_State_Base::Kt_State_Base() {
  * data_type - UNC_DT_* , Create only allowed in running/state/import
  * key_type-UNC_KT_*,any value of unc_key_type_t
  * sess - ipc server session where the response has to be added
- * @return    : UPPL_RC_SUCCESS or UPPL_RC_ERR_* is returned.
+ * @return    : UNC_RC_SUCCESS or UNC_UPPL_RC_ERR_* is returned.
  * */
-UpplReturnCode Kt_State_Base::Create(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_State_Base::Create(OdbcmConnectionHandler *db_conn,
                                      uint32_t session_id,
                                      uint32_t configuration_id,
                                      void* key_struct,
@@ -52,7 +52,7 @@ UpplReturnCode Kt_State_Base::Create(OdbcmConnectionHandler *db_conn,
                                      uint32_t key_type,
                                      ServerSession &sess) {
   pfc_log_error("Create not allowed from VTN");
-  UpplReturnCode create_status = UPPL_RC_SUCCESS;
+  UncRespCode create_status = UNC_RC_SUCCESS;
 
   // Populate the response to be sent in ServerSession
   physical_response_header rsh = {session_id,
@@ -62,7 +62,7 @@ UpplReturnCode Kt_State_Base::Create(OdbcmConnectionHandler *db_conn,
       0,
       0,
       data_type,
-      UPPL_RC_ERR_OPERATION_NOT_ALLOWED};
+      UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED};
 
   int err = PhyUtil::sessOutRespHeader(sess, rsh);
   err |= sess.addOutput(key_type);
@@ -98,9 +98,9 @@ UpplReturnCode Kt_State_Base::Create(OdbcmConnectionHandler *db_conn,
 
   if (err != 0) {
     pfc_log_error("Server session addOutput failed, so return IPC_WRITE_ERROR");
-    create_status = UPPL_RC_ERR_IPC_WRITE_ERROR;
+    create_status = UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
   } else {
-    create_status = UPPL_RC_SUCCESS;
+    create_status = UNC_RC_SUCCESS;
   }
   return create_status;
 }
@@ -112,15 +112,15 @@ UpplReturnCode Kt_State_Base::Create(OdbcmConnectionHandler *db_conn,
  * value_struct - the values for the new kt  instance
  * data_type - UNC_DT_* , Create only allowed in running/state/import
  * key_type-UNC_KT_*,any value of unc_key_type_t
- * @return    : UPPL_RC_SUCCESS is returned when the create is success
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * @return    : UNC_RC_SUCCESS is returned when the create is success
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_State_Base::CreateKeyInstance(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_State_Base::CreateKeyInstance(OdbcmConnectionHandler *db_conn,
                                                 void* key_struct,
                                                 void* val_struct,
                                                 uint32_t data_type,
                                                 uint32_t key_type) {
-  UpplReturnCode create_status = UPPL_RC_SUCCESS;
+  UncRespCode create_status = UNC_RC_SUCCESS;
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
 
   pfc_log_debug("Create instance of Kt: %d", key_type);
@@ -129,7 +129,7 @@ UpplReturnCode Kt_State_Base::CreateKeyInstance(OdbcmConnectionHandler *db_conn,
       ((unc_keytype_datatype_t)data_type != UNC_DT_IMPORT)) {
     pfc_log_error("Create operation is provided on unsupported data type %d",
                   data_type);
-    return UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    return UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
   }
 
   // Structure used to send request to ODBC
@@ -151,11 +151,11 @@ UpplReturnCode Kt_State_Base::CreateKeyInstance(OdbcmConnectionHandler *db_conn,
     if (create_db_status == ODBCM_RC_CONNECTION_ERROR) {
       // log fatal error to log daemon
       pfc_log_fatal("DB connection not available or cannot access DB");
-      create_status = UPPL_RC_ERR_DB_ACCESS;
+      create_status = UNC_UPPL_RC_ERR_DB_ACCESS;
     } else {
       // log error to log daemon
       pfc_log_error("Create operation has failed");
-      create_status = UPPL_RC_ERR_DB_CREATE;
+      create_status = UNC_UPPL_RC_ERR_DB_CREATE;
     }
   } else {
     pfc_log_info("Create of a kt %d in data_type %d is success", key_type,
@@ -174,11 +174,11 @@ UpplReturnCode Kt_State_Base::CreateKeyInstance(OdbcmConnectionHandler *db_conn,
  * data_type - UNC_DT_* , Update only allowed in running/state/import
  * key_type-UNC_KT_*,any value of unc_key_type_t
  * sess - ipc server session where the response has to be added
- * @return    : UPPL_RC_SUCCESS is returned when the response
+ * @return    : UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_State_Base::Update(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_State_Base::Update(OdbcmConnectionHandler *db_conn,
                                      uint32_t session_id,
                                      uint32_t configuration_id,
                                      void* key_struct,
@@ -187,7 +187,7 @@ UpplReturnCode Kt_State_Base::Update(OdbcmConnectionHandler *db_conn,
                                      uint32_t key_type,
                                      ServerSession &sess) {
   pfc_log_error("Update not allowed from VTN");
-  UpplReturnCode update_status = UPPL_RC_SUCCESS;
+  UncRespCode update_status = UNC_RC_SUCCESS;
 
   // Populate the response to be sent in ServerSession
   physical_response_header rsh = {session_id,
@@ -197,7 +197,7 @@ UpplReturnCode Kt_State_Base::Update(OdbcmConnectionHandler *db_conn,
       0,
       0,
       data_type,
-      UPPL_RC_ERR_OPERATION_NOT_ALLOWED};
+      UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED};
 
   int err = PhyUtil::sessOutRespHeader(sess, rsh);
   err |= sess.addOutput(key_type);
@@ -233,9 +233,9 @@ UpplReturnCode Kt_State_Base::Update(OdbcmConnectionHandler *db_conn,
 
   if (err != 0) {
     pfc_log_error("Server session addOutput failed, so return IPC_WRITE_ERROR");
-    update_status = UPPL_RC_ERR_IPC_WRITE_ERROR;
+    update_status = UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
   } else {
-    update_status = UPPL_RC_SUCCESS;
+    update_status = UNC_RC_SUCCESS;
   }
   return update_status;
 }
@@ -249,24 +249,24 @@ UpplReturnCode Kt_State_Base::Update(OdbcmConnectionHandler *db_conn,
  * data_type - UNC_DT_* , update only allowed in running/state/import
  * key_type-UNC_KT_*,any value of unc_key_type_t
  * old_val_struct-void * to switch value structure
- * @return    : UPPL_RC_SUCCESS is returned when the update
+ * @return    : UNC_RC_SUCCESS is returned when the update
  * is done successfully.
- * UPPL_RC_ERR_* is returned when the update is error
+ * UNC_UPPL_RC_ERR_* is returned when the update is error
  * */
-UpplReturnCode Kt_State_Base::UpdateKeyInstance(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_State_Base::UpdateKeyInstance(OdbcmConnectionHandler *db_conn,
                                                 void* key_struct,
                                                 void* val_struct,
                                                 uint32_t data_type,
                                                 uint32_t key_type,
                                                 void* &old_val_struct) {
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
-  UpplReturnCode update_status = UPPL_RC_SUCCESS;
+  UncRespCode update_status = UNC_RC_SUCCESS;
   // Check whether operation is allowed on the given DT type
   if (((unc_keytype_datatype_t)data_type != UNC_DT_STATE) &&
       ((unc_keytype_datatype_t)data_type != UNC_DT_IMPORT)) {
     pfc_log_error("Update operation is provided on unsupported data type %d",
                   data_type);
-    update_status = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    update_status = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
     return update_status;
   }
   pfc_bool_t is_state = PFC_FALSE;
@@ -291,12 +291,12 @@ UpplReturnCode Kt_State_Base::UpdateKeyInstance(OdbcmConnectionHandler *db_conn,
     if (update_db_status == ODBCM_RC_CONNECTION_ERROR) {
       // log fatal error to log daemon
       pfc_log_fatal("DB connection not available or cannot access DB");
-      update_status = UPPL_RC_ERR_DB_ACCESS;
+      update_status = UNC_UPPL_RC_ERR_DB_ACCESS;
     } else if (update_db_status != ODBCM_RC_SUCCESS) {
       // log error to log daemon
       pfc_log_error("UpdateOneRow error response from DB is %d",
                     update_db_status);
-      update_status = UPPL_RC_ERR_DB_UPDATE;
+      update_status = UNC_UPPL_RC_ERR_DB_UPDATE;
     } else {
       pfc_log_info("Update of kt in data type %d is success",
                    data_type);
@@ -314,11 +314,11 @@ UpplReturnCode Kt_State_Base::UpdateKeyInstance(OdbcmConnectionHandler *db_conn,
  * data_type - UNC_DT_* , delete only allowed in running/state/import,
  * key_type-UNC_KT_*,any value of unc_key_type_t
  * sess - ipc server session where the response has to be added
- * @return    : UPPL_RC_SUCCESS is returned when the response
+ * @return    : UNC_RC_SUCCESS is returned when the response
  * is added to ipc session successfully.
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_State_Base::Delete(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_State_Base::Delete(OdbcmConnectionHandler *db_conn,
                                      uint32_t session_id,
                                      uint32_t configuration_id,
                                      void* key_struct,
@@ -326,7 +326,7 @@ UpplReturnCode Kt_State_Base::Delete(OdbcmConnectionHandler *db_conn,
                                      uint32_t key_type,
                                      ServerSession &sess) {
   pfc_log_error("Delete not allowed from VTN");
-  UpplReturnCode delete_status = UPPL_RC_SUCCESS;
+  UncRespCode delete_status = UNC_RC_SUCCESS;
 
   // Populate the response to be sent in ServerSession
   physical_response_header rsh = {session_id,
@@ -336,7 +336,7 @@ UpplReturnCode Kt_State_Base::Delete(OdbcmConnectionHandler *db_conn,
       0,
       0,
       data_type,
-      UPPL_RC_ERR_OPERATION_NOT_ALLOWED};
+      UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED};
 
   int err = PhyUtil::sessOutRespHeader(sess, rsh);
   err |= sess.addOutput(key_type);
@@ -372,9 +372,9 @@ UpplReturnCode Kt_State_Base::Delete(OdbcmConnectionHandler *db_conn,
 
   if (err != 0) {
     pfc_log_error("Server session addOutput failed, so return IPC_WRITE_ERROR");
-    delete_status = UPPL_RC_ERR_IPC_WRITE_ERROR;
+    delete_status = UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
   } else {
-    delete_status = UPPL_RC_SUCCESS;
+    delete_status = UNC_RC_SUCCESS;
   }
   return delete_status;
 }
@@ -388,10 +388,10 @@ UpplReturnCode Kt_State_Base::Delete(OdbcmConnectionHandler *db_conn,
  * oper_type-UNC_OP_*,type of operation
  * data_type-UNC_DT_*,type of database
  * key_type-UNC_KT_*,any value of unc_key_type_t
- * @return    : UPPL_RC_SUCCESS if events are handled successfully or
- * UPPL_RC_ERR*
+ * @return    : UNC_RC_SUCCESS if events are handled successfully or
+ * UNC_UPPL_RC_ERR*
  * */
-UpplReturnCode Kt_State_Base::HandleDriverEvents(
+UncRespCode Kt_State_Base::HandleDriverEvents(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     uint32_t oper_type,
@@ -399,7 +399,7 @@ UpplReturnCode Kt_State_Base::HandleDriverEvents(
     uint32_t key_type,
     void* old_val_struct,
     void* new_val_struct) {
-  UpplReturnCode status = UPPL_RC_SUCCESS;
+  UncRespCode status = UNC_RC_SUCCESS;
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
   string controller_name = "";
   string event_details = "";  // for sending event handling alarm
@@ -415,17 +415,17 @@ UpplReturnCode Kt_State_Base::HandleDriverEvents(
         parent_data_type = UNC_DT_RUNNING;
       }
       unc_keytype_ctrtype_t controller_type;
-      UpplReturnCode retcode = PhyUtil::get_controller_type(
+      UncRespCode retcode = PhyUtil::get_controller_type(
           db_conn, controller_name, controller_type,
           (unc_keytype_datatype_t)parent_data_type);
       // Check whether operation is allowed on the given DT type
-      if (retcode != UPPL_RC_SUCCESS) {
+      if (retcode != UNC_RC_SUCCESS) {
         pfc_log_error("Error getting the controller type");
-        return UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
-      } else if (retcode == UPPL_RC_SUCCESS &&
+        return UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+      } else if (retcode == UNC_RC_SUCCESS &&
           controller_type == UNC_CT_UNKNOWN) {
         pfc_log_error("Unknown domain cannot be operated from driver");
-        return UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+        return UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
       }
       event_details = "KT_CTR_DOMAIN";
       break;
@@ -470,17 +470,19 @@ UpplReturnCode Kt_State_Base::HandleDriverEvents(
   }
   status = ValidateRequest(db_conn, key_struct, new_val_struct,
                            oper_type, data_type, key_type);
-  if (status != UPPL_RC_SUCCESS) {
+  if (status != UNC_RC_SUCCESS) {
     pfc_log_info(
         "HandleDriverEvents validation failed with %d "
         "for operation %d with data type %d", status, oper_type, data_type);
-    if ((oper_type == UNC_OP_CREATE && status != UPPL_RC_ERR_INSTANCE_EXISTS) ||
-        ((oper_type == UNC_OP_UPDATE || oper_type == UNC_OP_DELETE) &&
-            status != UPPL_RC_ERR_NO_SUCH_INSTANCE)) {
+    if ((oper_type == UNC_OP_CREATE && status !=
+         UNC_UPPL_RC_ERR_INSTANCE_EXISTS) ||
+         ((oper_type == UNC_OP_UPDATE ||
+           oper_type == UNC_OP_DELETE) &&
+           status != UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE)) {
       // Raise validation failure alarm
-      UpplReturnCode alarm_status = physical_layer->get_physical_core()->
+      UncRespCode alarm_status = physical_layer->get_physical_core()->
           RaiseEventHandlingAlarm(controller_name);
-      if (alarm_status == UPPL_RC_SUCCESS) {
+      if (alarm_status == UNC_RC_SUCCESS) {
         alarm_status = physical_layer->get_physical_core()->
             SendEventHandlingFailureAlarm(controller_name,
                                           event_details);
@@ -504,7 +506,7 @@ UpplReturnCode Kt_State_Base::HandleDriverEvents(
         key_type == UNC_KT_LOGICAL_MEMBER_PORT) {
       pfc_log_error("Update operation is provided on unsupported key type %d",
                     key_type);
-      status = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+      status = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
       return status;
     }
     // Call UpdateKeyInstance to update kt value in DB
@@ -517,10 +519,10 @@ UpplReturnCode Kt_State_Base::HandleDriverEvents(
     pfc_log_debug("Call DeleteKeyInstance to delete kt in DB");
     status = DeleteKeyInstance(db_conn, key_struct, data_type, key_type);
   }
-  if (status != UPPL_RC_SUCCESS) {
-    UpplReturnCode alarm_status = physical_layer->get_physical_core()->
+  if (status != UNC_RC_SUCCESS) {
+    UncRespCode alarm_status = physical_layer->get_physical_core()->
         RaiseEventHandlingAlarm(controller_name);
-    if (alarm_status == UPPL_RC_SUCCESS) {
+    if (alarm_status == UNC_RC_SUCCESS) {
       alarm_status = physical_layer->get_physical_core()->
           SendEventHandlingFailureAlarm(controller_name,
                                         event_details);
@@ -528,9 +530,9 @@ UpplReturnCode Kt_State_Base::HandleDriverEvents(
                    alarm_status);
     }
   } else {
-    UpplReturnCode alarm_status = physical_layer->get_physical_core()->
+    UncRespCode alarm_status = physical_layer->get_physical_core()->
         ClearEventHandlingAlarm(controller_name);
-    if (alarm_status == UPPL_RC_SUCCESS) {
+    if (alarm_status == UNC_RC_SUCCESS) {
       alarm_status = physical_layer->get_physical_core()->
           SendEventHandlingSuccessAlarm(controller_name,
                                         event_details);
@@ -557,15 +559,15 @@ UpplReturnCode Kt_State_Base::HandleDriverEvents(
       if (err != 0) {
         pfc_log_error(
             "Server Event addOutput failed, return IPC_WRITE_ERROR");
-        status = UPPL_RC_ERR_IPC_WRITE_ERROR;
+        status = UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
       } else {
         // Call IPC server to post the event
-        status = (UpplReturnCode) physical_layer
+        status = (UncRespCode) physical_layer
             ->get_ipc_connection_manager()->SendEvent(&ser_evt);
       }
     }
     // Perform for oper_status handling
-    UpplReturnCode oper_status_handle = HandleOperStatus(db_conn, key_struct,
+    UncRespCode oper_status_handle = HandleOperStatus(db_conn, key_struct,
                                                          oper_type,
                                                          data_type,
                                                          key_type,
@@ -575,7 +577,7 @@ UpplReturnCode Kt_State_Base::HandleDriverEvents(
   }
   // Old value structure memory clean up
   if (oper_type == UNC_OP_UPDATE) {
-    if(old_value_struct != NULL) {
+    if (old_value_struct != NULL) {
       ClearValueStructure(key_type,
                           old_value_struct);
       old_value_struct = NULL;
@@ -593,17 +595,17 @@ UpplReturnCode Kt_State_Base::HandleDriverEvents(
  * data_type-UNC_DT_*,type of database
  * key_type-UNC_KT_*,any value of unc_key_type_t
  * controller_name-controller id
- * @return    : UPPL_RC_SUCCESS if oper status changes are handled
- *  successfully or UPPL_RC_ERR*
+ * @return    : UNC_RC_SUCCESS if oper status changes are handled
+ *  successfully or UNC_UPPL_RC_ERR*
  * */
-UpplReturnCode Kt_State_Base::HandleOperStatus(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_State_Base::HandleOperStatus(OdbcmConnectionHandler *db_conn,
                                                void* key_struct,
                                                uint32_t oper_type,
                                                uint32_t data_type,
                                                uint32_t key_type,
                                                void* new_val_struct,
                                                string controller_name) {
-  UpplReturnCode oper_return = UPPL_RC_SUCCESS;
+  UncRespCode oper_return = UNC_RC_SUCCESS;
   // logical port oper status handling
   if (key_type == UNC_KT_LOGICAL_MEMBER_PORT &&
       (oper_type == UNC_OP_CREATE || oper_type == UNC_OP_DELETE)) {
@@ -626,7 +628,7 @@ UpplReturnCode Kt_State_Base::HandleOperStatus(OdbcmConnectionHandler *db_conn,
            port_id.c_str(),
            port_id.length()+1);
     vector<OperStatusHolder> ref_oper_status;
-    GET_ADD_CTRL_OPER_STATUS(controller_name);
+    GET_ADD_CTRL_OPER_STATUS(controller_name, ref_oper_status);
     Kt_LogicalPort logical_port;
     oper_return = logical_port.HandleOperStatus(
         db_conn,
@@ -646,7 +648,7 @@ UpplReturnCode Kt_State_Base::HandleOperStatus(OdbcmConnectionHandler *db_conn,
     if (valid_val == UNC_VF_VALID) {
       key_port_t port_key = *(reinterpret_cast<key_port_t*>(key_struct));
       vector<OperStatusHolder> ref_oper_status;
-      GET_ADD_CTRL_OPER_STATUS(controller_name);
+      GET_ADD_CTRL_OPER_STATUS(controller_name, ref_oper_status);
       // Get Switch oper status
       key_switch_t switch_key;
       Kt_Switch kt_switch;
@@ -660,7 +662,7 @@ UpplReturnCode Kt_State_Base::HandleOperStatus(OdbcmConnectionHandler *db_conn,
           reinterpret_cast<void*>(&switch_key), switch_oper_status);
       pfc_log_debug("Switch read_status %d, oper_status %d",
                     read_status, switch_oper_status);
-      ADD_SWITCH_OPER_STATUS(switch_key, switch_oper_status);
+      ADD_SWITCH_OPER_STATUS(switch_key, switch_oper_status, ref_oper_status);
       // Get port oper status
       uint8_t port_oper_status = 0;
       read_status = kt_port.GetOperStatus(
@@ -669,7 +671,7 @@ UpplReturnCode Kt_State_Base::HandleOperStatus(OdbcmConnectionHandler *db_conn,
       pfc_log_debug("Port read_status %d, oper_status %d",
                     read_status, port_oper_status);
       ADD_PORT_OPER_STATUS(
-          port_key, port_oper_status);
+          port_key, port_oper_status, ref_oper_status);
       oper_return = kt_port.NotifyOperStatus(db_conn, data_type,
                                              key_struct,
                                              new_val_struct,
@@ -688,7 +690,7 @@ UpplReturnCode Kt_State_Base::HandleOperStatus(OdbcmConnectionHandler *db_conn,
       key_switch_t switch_key =
           *(reinterpret_cast<key_switch_t*>(key_struct));
       vector<OperStatusHolder> ref_oper_status;
-      GET_ADD_CTRL_OPER_STATUS(controller_name);
+      GET_ADD_CTRL_OPER_STATUS(controller_name, ref_oper_status);
       // Get Switch oper status
       uint8_t switch_oper_status = 0;
       read_status = kt_switch.GetOperStatus(
@@ -697,7 +699,7 @@ UpplReturnCode Kt_State_Base::HandleOperStatus(OdbcmConnectionHandler *db_conn,
       pfc_log_debug("Switch read_status %d, oper_status %d",
                     read_status, switch_oper_status);
       ADD_SWITCH_OPER_STATUS(switch_key,
-                             switch_oper_status);
+                             switch_oper_status, ref_oper_status);
       oper_return = kt_switch.NotifyOperStatus(db_conn, data_type,
                                                key_struct,
                                                new_val_struct,
index 0e3426de867875dccf517aedfac210853d44cf21..fe7519dd9f51a5c46a33eec81d1e952c86969abe 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -12,7 +12,7 @@
  * @file    itc_kt_switch.cc
  *
  */
-
+#include "ipc_client_configuration_handler.hh"
 #include "itc_kt_switch.hh"
 #include "itc_kt_controller.hh"
 #include "itc_kt_ctr_domain.hh"
 #include "itc_kt_port.hh"
 #include "itc_kt_link.hh"
 #include "odbcm_utils.hh"
+#include "ipct_util.hh"
 #include "itc_read_request.hh"
 #include "odbcm_db_varbind.hh"
 using unc::uppl::PhysicalLayer;
 using unc::uppl::ODBCMUtils;
-
+using unc::uppl::IPCClientDriverHandler;
 /** Constructor
  * @Description : This function instantiates child key instances for
  * kt_switch
@@ -88,21 +89,21 @@ Kt_Base* Kt_Switch::GetChildClassPointer(KtSwitchChildClass KIndex) {
  * @param[in] : key_struct - key for the switch instance
  * data_type - UNC_DT_* , delete only allowed in STATE
  * key_type-UNC_KT_SWITCH,value of unc_key_type_t
- * @return    : UPPL_RC_SUCCESS is returned when the delete
+ * @return    : UNC_RC_SUCCESS is returned when the delete
  * is done successfully.
- * UPPL_RC_ERR_* is returned when the delete is error
+ * UNC_UPPL_RC_ERR_* is returned when the delete is error
  * */
-UpplReturnCode Kt_Switch::DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Switch::DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
                                             void* key_struct,
                                             uint32_t data_type,
                                             uint32_t key_type) {
-  UpplReturnCode delete_status = UPPL_RC_SUCCESS;
+  UncRespCode delete_status = UNC_RC_SUCCESS;
   // Check whether operation is allowed on the given DT type
   // if is_internal is set as true, the notification is received from driver
   if (((unc_keytype_datatype_t)data_type != UNC_DT_STATE) &&
       ((unc_keytype_datatype_t)data_type != UNC_DT_IMPORT)) {
     pfc_log_error("Delete operation is provided on unsupported data type");
-    return UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    return UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
   }
 
   key_switch_t *obj_key_switch = reinterpret_cast<key_switch_t*>(key_struct);
@@ -145,15 +146,15 @@ UpplReturnCode Kt_Switch::DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
       delete child[child_class];
       child[child_class] = NULL;
       FreeChildKeyStruct(child_class, child_key_struct);
-      if (delete_status == UPPL_RC_ERR_NO_SUCH_INSTANCE) {
+      if (delete_status == UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE) {
         pfc_log_debug("No child instance for switch");
       }
-      if (delete_status != UPPL_RC_ERR_NO_SUCH_INSTANCE &&
-          delete_status != UPPL_RC_SUCCESS) {
+      if (delete_status != UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE &&
+          delete_status != UNC_RC_SUCCESS) {
         // child delete , failed so return error
         pfc_log_error("Delete failed for child with %d with error %d",
                       child_class, delete_status);
-        delete_status = UPPL_RC_ERR_CFG_SEMANTIC;
+        delete_status = UNC_UPPL_RC_ERR_CFG_SEMANTIC;
         break;
       }
     }
@@ -192,9 +193,9 @@ UpplReturnCode Kt_Switch::DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
   vector<void *> val_struct;
   key_val.push_back(reinterpret_cast<void *>(&logical_port_key_obj));
   val_struct.push_back(reinterpret_cast<void *>(&logical_port_val_obj));
-  UpplReturnCode lp_read_status = logical_port_obj.ReadInternal(
+  UncRespCode lp_read_status = logical_port_obj.ReadInternal(
       db_conn, key_val, val_struct, data_type, UNC_OP_READ);
-  if (lp_read_status == UPPL_RC_SUCCESS) {
+  if (lp_read_status == UNC_RC_SUCCESS) {
     // form key struct with all required primary keys and call delete
     logical_port_obj.DeleteKeyInstance(
         db_conn, key_val[0],
@@ -252,16 +253,16 @@ UpplReturnCode Kt_Switch::DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
     if (delete_db_status == ODBCM_RC_CONNECTION_ERROR) {
       // log fatal error to log daemon
       pfc_log_fatal("DB connection not available or cannot access DB");
-      delete_status = UPPL_RC_ERR_DB_ACCESS;
+      delete_status = UNC_UPPL_RC_ERR_DB_ACCESS;
     } else {
       // log error to log daemon
       pfc_log_error("Delete operation has failed in switch common table");
-      delete_status = UPPL_RC_ERR_DB_DELETE;
+      delete_status = UNC_UPPL_RC_ERR_DB_DELETE;
     }
   } else {
     pfc_log_info("Delete of a switch in data_type(%d) is success",
                  data_type);
-    delete_status = UPPL_RC_SUCCESS;
+    delete_status = UNC_RC_SUCCESS;
   }
   return delete_status;
 }
@@ -272,11 +273,11 @@ UpplReturnCode Kt_Switch::DeleteKeyInstance(OdbcmConnectionHandler *db_conn,
  * value_struct - value for kt switch instance
  * data_type - UNC_DT_* , read allowed in STATE
  * operation_type-type of operation,can be UNC_OP_READ*
- * @return    : UPPL_RC_SUCCESS is returned when the response is added to
+ * @return    : UNC_RC_SUCCESS is returned when the response is added to
  * ipc session successfully
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess.
  * */
-UpplReturnCode Kt_Switch::ReadInternal(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Switch::ReadInternal(OdbcmConnectionHandler *db_conn,
                                        vector<void *> &key_val,
                                        vector<void *> &val_struct,
                                        uint32_t data_type,
@@ -294,7 +295,7 @@ UpplReturnCode Kt_Switch::ReadInternal(OdbcmConnectionHandler *db_conn,
   if (!val_struct.empty()) {
     void_val_struct = val_struct[0];
   }
-  UpplReturnCode read_status = ReadSwitchValFromDB(db_conn,
+  UncRespCode read_status = ReadSwitchValFromDB(db_conn,
                                                    key_struct,
                                                    void_val_struct,
                                                    data_type,
@@ -304,7 +305,7 @@ UpplReturnCode Kt_Switch::ReadInternal(OdbcmConnectionHandler *db_conn,
                                                    vect_switch_id);
   key_val.clear();
   val_struct.clear();
-  if (read_status == UPPL_RC_SUCCESS) {
+  if (read_status == UNC_RC_SUCCESS) {
     for (unsigned int iIndex = 0 ; iIndex < vect_val_switch_st.size();
         ++iIndex) {
       key_switch_t *key_switch = new key_switch_t(vect_switch_id[iIndex]);
@@ -326,11 +327,11 @@ UpplReturnCode Kt_Switch::ReadInternal(OdbcmConnectionHandler *db_conn,
  * max_rep_ct - specifies no of rows to be returned
  * parent_call - indicates whether parent has called this read bulk
  * is_read_next - indicates whether this function is invoked from read_next
- * @return    : UPPL_RC_SUCCESS is returned when the response is added to
+ * @return    : UNC_RC_SUCCESS is returned when the response is added to
  * ipc session successfully
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess
  * */
-UpplReturnCode Kt_Switch::ReadBulk(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Switch::ReadBulk(OdbcmConnectionHandler *db_conn,
                                    void* key_struct,
                                    uint32_t data_type,
                                    uint32_t &max_rep_ct,
@@ -339,14 +340,14 @@ UpplReturnCode Kt_Switch::ReadBulk(OdbcmConnectionHandler *db_conn,
                                    pfc_bool_t is_read_next,
                                    ReadRequest *read_req) {
   pfc_log_info("Processing ReadBulk of Kt_Switch");
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
   key_switch_t obj_key_switch =
       *(reinterpret_cast<key_switch_t*>(key_struct));
   if ((unc_keytype_datatype_t)data_type != UNC_DT_STATE) {
     // Not supported
     pfc_log_debug("ReadBulk operation is not allowed in %d data type",
                   data_type);
-    read_status = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    read_status = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
     return read_status;
   }
   string str_switch_id =
@@ -358,7 +359,7 @@ UpplReturnCode Kt_Switch::ReadBulk(OdbcmConnectionHandler *db_conn,
   vector<key_switch_t> vect_switch_id;
   if (max_rep_ct == 0) {
     pfc_log_info("max_rep_ct is 0");
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   // Check for child call
   if (child_index == -1 &&
@@ -367,10 +368,10 @@ UpplReturnCode Kt_Switch::ReadBulk(OdbcmConnectionHandler *db_conn,
     vector<string> vect_key_value;
     vect_key_value.push_back(str_controller_name);
     vect_key_value.push_back(str_switch_id);
-    UpplReturnCode key_exist_status = IsKeyExists(
+    UncRespCode key_exist_status = IsKeyExists(
         db_conn, (unc_keytype_datatype_t)data_type,
         vect_key_value);
-    if (key_exist_status == UPPL_RC_SUCCESS) {
+    if (key_exist_status == UNC_RC_SUCCESS) {
       switch_exists = PFC_TRUE;
     }
   }
@@ -387,7 +388,7 @@ UpplReturnCode Kt_Switch::ReadBulk(OdbcmConnectionHandler *db_conn,
     val_switch_st_t dummy_val_switch;
     vect_val_switch.insert(vect_val_switch.begin(), dummy_val_switch);
   }
-  if (read_status == UPPL_RC_SUCCESS ||
+  if (read_status == UNC_RC_SUCCESS ||
       switch_exists == PFC_TRUE) {
     // For each switch , read the child's attributes
     vector<val_switch_st_t> ::iterator vect_iter = vect_val_switch.begin();
@@ -417,7 +418,7 @@ UpplReturnCode Kt_Switch::ReadBulk(OdbcmConnectionHandler *db_conn,
         read_req->AddToBuffer(obj_sep_buffer);
         --max_rep_ct;
         if (max_rep_ct == 0) {
-          return UPPL_RC_SUCCESS;
+          return UNC_RC_SUCCESS;
         }
       }
       switch_exists = PFC_FALSE;
@@ -438,7 +439,7 @@ UpplReturnCode Kt_Switch::ReadBulk(OdbcmConnectionHandler *db_conn,
           continue;
         }
         pfc_log_debug("Switch Calling child %d read bulk", kIdx);
-        UpplReturnCode ch_read_status = child[kIdx]->ReadBulk(
+        UncRespCode ch_read_status = child[kIdx]->ReadBulk(
             db_conn, child_key_struct,
             data_type,
             max_rep_ct,
@@ -453,7 +454,7 @@ UpplReturnCode Kt_Switch::ReadBulk(OdbcmConnectionHandler *db_conn,
         FreeChildKeyStruct(kIdx, child_key_struct);
         if (max_rep_ct == 0) {
           pfc_log_debug("max_rep_ct reached zero, so returning");
-          return UPPL_RC_SUCCESS;
+          return UNC_RC_SUCCESS;
         }
       }
       str_switch_id = fKey;
@@ -481,15 +482,15 @@ UpplReturnCode Kt_Switch::ReadBulk(OdbcmConnectionHandler *db_conn,
         is_read_next,
         read_req);
     pfc_log_debug("read_status from next kin Kt_Ctr is %d", read_status);
-    return UPPL_RC_SUCCESS;
-  } else if (read_status == UPPL_RC_ERR_DB_ACCESS) {
+    return UNC_RC_SUCCESS;
+  } else if (read_status == UNC_UPPL_RC_ERR_DB_ACCESS) {
     pfc_log_debug("KtSwitch ReadBulk - Returning DB Access Error");
     return read_status;
   }
   pfc_log_debug("switch reached end of table");
   pfc_log_debug("read_status=%d", read_status);
-  if (read_status == UPPL_RC_ERR_NO_SUCH_INSTANCE) {
-    read_status = UPPL_RC_SUCCESS;
+  if (read_status == UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE) {
+    read_status = UNC_RC_SUCCESS;
   }
   return read_status;
 }
@@ -503,11 +504,11 @@ UpplReturnCode Kt_Switch::ReadBulk(OdbcmConnectionHandler *db_conn,
  * max_rep_ct - specified no of rows to be returned
  * vect_val_switch - indicated the fetched values from db of val_switch type
  * vect_switch_id - indicated the fetched switch id from db
- * @return    : UPPL_RC_SUCCESS is returned when the response is added to
+ * @return    : UNC_RC_SUCCESS is returned when the response is added to
  * ipc session successfully
- * UPPL_RC_ERR_* is returned when ipc response could not be added to sess
+ * UNC_UPPL_RC_ERR_* is returned when ipc response could not be added to sess
  * */
-UpplReturnCode Kt_Switch::ReadBulkInternal(
+UncRespCode Kt_Switch::ReadBulkInternal(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     void* val_struct,
@@ -516,10 +517,10 @@ UpplReturnCode Kt_Switch::ReadBulkInternal(
     vector<val_switch_st_t> &vect_val_switch,
     vector<key_switch_t> &vect_switch_id) {
   if (max_rep_ct <= 0) {
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
   ODBCM_RC_STATUS read_db_status = ODBCM_RC_SUCCESS;
   DBTableSchema kt_switch_dbtableschema;
   // Populate DBSchema for switch_table
@@ -539,14 +540,14 @@ UpplReturnCode Kt_Switch::ReadBulkInternal(
   pfc_log_debug("GetBulkRows return: %d", read_db_status);
   if (read_db_status == ODBCM_RC_RECORD_NOT_FOUND) {
     pfc_log_debug("No record found");
-    read_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+    read_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     return read_status;
   } else if (read_db_status == ODBCM_RC_CONNECTION_ERROR) {
-    read_status = UPPL_RC_ERR_DB_ACCESS;
+    read_status = UNC_UPPL_RC_ERR_DB_ACCESS;
     pfc_log_error("Read operation has failed with error %d", read_db_status);
     return read_status;
   } else if (read_db_status != ODBCM_RC_SUCCESS) {
-    read_status = UPPL_RC_ERR_DB_GET;
+    read_status = UNC_UPPL_RC_ERR_DB_GET;
     // log error to log daemon
     pfc_log_error("Read operation has failed with error %d", read_db_status);
     return read_status;
@@ -566,17 +567,17 @@ UpplReturnCode Kt_Switch::ReadBulkInternal(
  * value_struct - value for kt switch instance
  * operation - UNC_OP_*,type of operation
  * data_type - UNC_DT_*,type of database
- * @return    : UPPL_RC_SUCCESS is returned when the validation is successful
- * UPPL_RC_ERR_* is returned when validation is failure or associated error code
+ * @return    : UNC_RC_SUCCESS is returned when the validation is successful
+ * UNC_UPPL_RC_ERR_* is returned when validation is failure or associated error code
  * */
-UpplReturnCode Kt_Switch::PerformSyntaxValidation(
+UncRespCode Kt_Switch::PerformSyntaxValidation(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     void* val_struct,
     uint32_t operation,
     uint32_t data_type) {
   pfc_log_info("Inside PerformSyntax Validation of KT_SWITCH");
-  UpplReturnCode ret_code = UPPL_RC_SUCCESS;
+  UncRespCode ret_code = UNC_RC_SUCCESS;
   pfc_ipcresp_t mandatory = PFC_TRUE;
 
   // Validate Key Structure
@@ -585,14 +586,14 @@ UpplReturnCode Kt_Switch::PerformSyntaxValidation(
   map<string, Kt_Class_Attr_Syntax> attr_syntax_map =
       attr_syntax_map_all[UNC_KT_SWITCH];
   IS_VALID_STRING_KEY(CTR_NAME_STR, value, operation, ret_code, mandatory);
-  if (ret_code != UPPL_RC_SUCCESS) {
-    return UPPL_RC_ERR_CFG_SYNTAX;
+  if (ret_code != UNC_RC_SUCCESS) {
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
 
   value = reinterpret_cast<char*>(key->switch_id);
   IS_VALID_STRING_KEY(SWITCH_ID_STR, value, operation, ret_code, mandatory);
-  if (ret_code != UPPL_RC_SUCCESS) {
-    return UPPL_RC_ERR_CFG_SYNTAX;
+  if (ret_code != UNC_RC_SUCCESS) {
+    return UNC_UPPL_RC_ERR_CFG_SYNTAX;
   }
 
   // Validate Value structure
@@ -605,8 +606,8 @@ UpplReturnCode Kt_Switch::PerformSyntaxValidation(
     string value = reinterpret_cast<char*>(value_switch->description);
     IS_VALID_STRING_VALUE(SWITCH_DESCRIPTION_STR, value, operation,
                           valid_val, ret_code, mandatory);
-    if (ret_code != UPPL_RC_SUCCESS) {
-      return UPPL_RC_ERR_CFG_SYNTAX;
+    if (ret_code != UNC_RC_SUCCESS) {
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
 
     // validate model
@@ -614,16 +615,16 @@ UpplReturnCode Kt_Switch::PerformSyntaxValidation(
     value = reinterpret_cast<char*>(value_switch->model);
     IS_VALID_STRING_VALUE(SWITCH_MODEL_STR, value, operation,
                           valid_val, ret_code, mandatory);
-    if (ret_code != UPPL_RC_SUCCESS) {
-      return UPPL_RC_ERR_CFG_SYNTAX;
+    if (ret_code != UNC_RC_SUCCESS) {
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
 
     // validate IP Address
     valid_val = PhyUtil::uint8touint(value_switch->valid[kIdxSwitchIPAddress]);
     IS_VALID_IPV4_VALUE(SWITCH_IP_ADDRESS_STR, value_switch->ip_address,
                         operation, valid_val, ret_code, mandatory);
-    if (ret_code != UPPL_RC_SUCCESS) {
-      return UPPL_RC_ERR_CFG_SYNTAX;
+    if (ret_code != UNC_RC_SUCCESS) {
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
 
     // validate ipv6 Address
@@ -631,8 +632,8 @@ UpplReturnCode Kt_Switch::PerformSyntaxValidation(
         PhyUtil::uint8touint(value_switch->valid[kIdxSwitchIPV6Address]);
     IS_VALID_IPV6_VALUE(SWITCH_IPV6_ADDRESS_STR, value_switch->ipv6_address,
                         operation, valid_val, ret_code, mandatory);
-    if (ret_code != UPPL_RC_SUCCESS) {
-      return UPPL_RC_ERR_CFG_SYNTAX;
+    if (ret_code != UNC_RC_SUCCESS) {
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
 
     // validate admin_status
@@ -640,8 +641,8 @@ UpplReturnCode Kt_Switch::PerformSyntaxValidation(
         PhyUtil::uint8touint(value_switch->valid[kIdxSwitchAdminStatus]);
     IS_VALID_INT_VALUE(SWITCH_ADMIN_STATUS_STR, value_switch->admin_status,
                        operation, valid_val, ret_code, mandatory);
-    if (ret_code != UPPL_RC_SUCCESS) {
-      return UPPL_RC_ERR_CFG_SYNTAX;
+    if (ret_code != UNC_RC_SUCCESS) {
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
 
     // validate domain Name
@@ -649,8 +650,8 @@ UpplReturnCode Kt_Switch::PerformSyntaxValidation(
     value = reinterpret_cast<char*>(value_switch->domain_name);
     IS_VALID_STRING_VALUE(SWITCH_DOMAIN_NAME_STR, value, operation,
                           valid_val, ret_code, mandatory);
-    if (ret_code != UPPL_RC_SUCCESS) {
-      return UPPL_RC_ERR_CFG_SYNTAX;
+    if (ret_code != UNC_RC_SUCCESS) {
+      return UNC_UPPL_RC_ERR_CFG_SYNTAX;
     }
   }
   return ret_code;
@@ -663,16 +664,16 @@ UpplReturnCode Kt_Switch::PerformSyntaxValidation(
  * value_struct - specifies value of KT_SWITCH
  * operation - UNC_OP*,type of operation
  * data_type - UNC_DT*,type of database
- * @return    : UPPL_RC_SUCCESS if semantic validation is successful
- * or UPPL_RC_ERR_* if failed
+ * @return    : UNC_RC_SUCCESS if semantic validation is successful
+ * or UNC_UPPL_RC_ERR_* if failed
  * */
-UpplReturnCode Kt_Switch::PerformSemanticValidation(
+UncRespCode Kt_Switch::PerformSemanticValidation(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     void* val_struct,
     uint32_t operation,
     uint32_t data_type) {
-  UpplReturnCode status = UPPL_RC_SUCCESS;
+  UncRespCode status = UNC_RC_SUCCESS;
   pfc_log_debug("Inside PerformSemanticValidation of KT_SWITCH");
   // Check whether the given instance of switch in DB
   key_switch_t *obj_key_switch = reinterpret_cast<key_switch_t*>(key_struct);
@@ -682,17 +683,17 @@ UpplReturnCode Kt_Switch::PerformSemanticValidation(
   vector<string> switch_vect_key_value;
   switch_vect_key_value.push_back(controller_name);
   switch_vect_key_value.push_back(switch_id);
-  UpplReturnCode key_status = IsKeyExists(db_conn,
+  UncRespCode key_status = IsKeyExists(db_conn,
                                           (unc_keytype_datatype_t)data_type,
                                           switch_vect_key_value);
   pfc_log_debug("IsKeyExists status %d", key_status);
 
   // In case of create operation, key should not exist
   if (operation == UNC_OP_CREATE) {
-    if (key_status == UPPL_RC_SUCCESS) {
+    if (key_status == UNC_RC_SUCCESS) {
       pfc_log_error("Key instance already exists");
       pfc_log_error("Hence create operation not allowed");
-      status = UPPL_RC_ERR_INSTANCE_EXISTS;
+      status = UNC_UPPL_RC_ERR_INSTANCE_EXISTS;
     } else {
       pfc_log_info("key instance not exist create operation allowed");
     }
@@ -700,16 +701,16 @@ UpplReturnCode Kt_Switch::PerformSemanticValidation(
   } else if (operation == UNC_OP_UPDATE || operation == UNC_OP_DELETE ||
       operation == UNC_OP_READ) {
     // In case of update/delete/read operation, key should exist
-    if (key_status != UPPL_RC_SUCCESS) {
+    if (key_status != UNC_RC_SUCCESS) {
       pfc_log_error("Key instance does not exist");
       pfc_log_error("Hence update/delete/read operation not allowed");
-      status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+      status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     } else {
       pfc_log_info("key instance exist update/del/read operation allowed");
     }
   }
 
-  if (operation == UNC_OP_CREATE && status == UPPL_RC_SUCCESS) {
+  if (operation == UNC_OP_CREATE && status == UNC_RC_SUCCESS) {
     vector<string> parent_vect_key_value;
     parent_vect_key_value.push_back(controller_name);
     Kt_Controller KtObj;
@@ -717,12 +718,12 @@ UpplReturnCode Kt_Switch::PerformSemanticValidation(
     if (data_type == UNC_DT_IMPORT) {
       parent_data_type = UNC_DT_RUNNING;
     }
-    UpplReturnCode parent_key_status = KtObj.IsKeyExists(
+    UncRespCode parent_key_status = KtObj.IsKeyExists(
         db_conn, (unc_keytype_datatype_t)parent_data_type,
         parent_vect_key_value);
     pfc_log_debug("Parent IsKeyExists status %d", parent_key_status);
-    if (parent_key_status != UPPL_RC_SUCCESS) {
-      status = UPPL_RC_ERR_PARENT_DOES_NOT_EXIST;
+    if (parent_key_status != UNC_RC_SUCCESS) {
+      status = UNC_UPPL_RC_ERR_PARENT_DOES_NOT_EXIST;
     }
   }
   pfc_log_debug("status of SemanticValidation before returning=%d", status);
@@ -737,16 +738,16 @@ UpplReturnCode Kt_Switch::PerformSemanticValidation(
  * operation - contains UNC_OP_CREATE or UNC_OP_DELETE
  * key_struct - indicate key instance of KT_SWITCH
  * value_struct - indicates the alarm value structure
- * @return : UPPL_RC_SUCCESS if alarm is handled successfully or
- * UPPL_RC_ERR*
+ * @return : UNC_RC_SUCCESS if alarm is handled successfully or
+ * UNC_UPPL_RC_ERR*
  * */
-UpplReturnCode Kt_Switch::HandleDriverAlarms(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Switch::HandleDriverAlarms(OdbcmConnectionHandler *db_conn,
                                              uint32_t data_type,
                                              uint32_t alarm_type,
                                              uint32_t oper_type,
                                              void* key_struct,
                                              void* val_struct) {
-  UpplReturnCode status = UPPL_RC_SUCCESS;
+  UncRespCode status = UNC_RC_SUCCESS;
   key_switch_t *obj_key_switch =
       reinterpret_cast<key_switch_t*>(key_struct);
   string controller_name =
@@ -761,11 +762,11 @@ UpplReturnCode Kt_Switch::HandleDriverAlarms(OdbcmConnectionHandler *db_conn,
   pfc_log_info("alarm sent by driver is: %d", alarm_type);
   // Read old_alarm_status from db
   uint64_t alarm_status_db = 0;
-  UpplReturnCode read_alarm_status = GetAlarmStatus(db_conn,
+  UncRespCode read_alarm_status = GetAlarmStatus(db_conn,
                                                     data_type,
                                                     key_struct,
                                                     alarm_status_db);
-  if (read_alarm_status != UPPL_RC_SUCCESS) {
+  if (read_alarm_status != UNC_RC_SUCCESS) {
     pfc_log_info("Reading alarm status from db failed with %d",
                  read_alarm_status);
     return status;
@@ -796,7 +797,7 @@ UpplReturnCode Kt_Switch::HandleDriverAlarms(OdbcmConnectionHandler *db_conn,
   }
   if (old_alarm_status == new_alarm_status) {
     pfc_log_info("old and new alarms status are same, so return");
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   // Call UpdateKeyInstance to update the new alarm status and
   // new oper status value in DB
@@ -816,7 +817,7 @@ UpplReturnCode Kt_Switch::HandleDriverAlarms(OdbcmConnectionHandler *db_conn,
                              data_type,
                              UNC_KT_SWITCH,
                              old_value_struct);
-  if (status == UPPL_RC_SUCCESS && data_type != UNC_DT_IMPORT) {
+  if (status == UNC_RC_SUCCESS && data_type != UNC_DT_IMPORT) {
     // Send oper_status notification to north bound
     // From value_struct
     val_switch_st old_val_switch, new_val_switch;
@@ -829,9 +830,9 @@ UpplReturnCode Kt_Switch::HandleDriverAlarms(OdbcmConnectionHandler *db_conn,
     new_val_switch.valid[kIdxSwitchAlarmStatus] = UNC_VF_VALID;
     int err = 0;
     ServerEvent ser_evt((pfc_ipcevtype_t)UPPL_EVENTS_KT_SWITCH, err);
-    northbound_event_header rsh = {UNC_OP_UPDATE,
+    northbound_event_header rsh = {static_cast<uint32_t>(UNC_OP_UPDATE),
         data_type,
-        UNC_KT_SWITCH};
+        static_cast<uint32_t>(UNC_KT_SWITCH)};
     err = PhyUtil::sessOutNBEventHeader(ser_evt, rsh);
     err |= ser_evt.addOutput(*obj_key_switch);
     err |= ser_evt.addOutput(new_val_switch);
@@ -839,13 +840,13 @@ UpplReturnCode Kt_Switch::HandleDriverAlarms(OdbcmConnectionHandler *db_conn,
     if (err == 0) {
       PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
       // Notify operstatus modifications
-      status = (UpplReturnCode) physical_layer
+      status = (UncRespCode) physical_layer
           ->get_ipc_connection_manager()->SendEvent(&ser_evt);
       pfc_log_info("Update alarm send status to NB: %d",
                    status);
     } else {
       pfc_log_info("Error creating ServerEvent object");
-      status = UPPL_RC_ERR_IPC_WRITE_ERROR;
+      status = UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
   } else {
     pfc_log_info("Update alarm status in db status %d", status);
@@ -863,19 +864,19 @@ UpplReturnCode Kt_Switch::HandleDriverAlarms(OdbcmConnectionHandler *db_conn,
  * @Description : This function checks whether the controller_id exists in DB
  * @param[in] : data_type - UNC_DT_*,type of database
  * key_values - contains switch_id
- * @return    : UPPL_RC_SUCCESS or UPPL_RC_ERR* based in operation type
+ * @return    : UNC_RC_SUCCESS or UNC_UPPL_RC_ERR* based in operation type
  * */
-UpplReturnCode Kt_Switch::IsKeyExists(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Switch::IsKeyExists(OdbcmConnectionHandler *db_conn,
                                       unc_keytype_datatype_t data_type,
                                       const vector<string> &key_values) {
   pfc_log_debug("Inside IsKeyExists");
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
-  UpplReturnCode check_status = UPPL_RC_SUCCESS;
+  UncRespCode check_status = UNC_RC_SUCCESS;
 
   if (key_values.empty()) {
     // No key given, return failure
     pfc_log_error("No key given. Returning error");
-    return UPPL_RC_ERR_BAD_REQUEST;
+    return UNC_UPPL_RC_ERR_BAD_REQUEST;
   }
 
   string controller_name = key_values[0];
@@ -915,12 +916,12 @@ UpplReturnCode Kt_Switch::IsKeyExists(OdbcmConnectionHandler *db_conn,
   if (check_db_status == ODBCM_RC_CONNECTION_ERROR) {
     // log error to log daemon
     pfc_log_error("DB connection not available or cannot access DB");
-    check_status = UPPL_RC_ERR_DB_ACCESS;
+    check_status = UNC_UPPL_RC_ERR_DB_ACCESS;
   } else if (check_db_status == ODBCM_RC_ROW_EXISTS) {
     pfc_log_debug("DB returned success for Row exists");
   } else {
     pfc_log_info("DB Returned failure for IsRowExists");
-    check_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+    check_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
   }
   pfc_log_debug("check_status = %d", check_status);
   return check_status;
@@ -939,7 +940,7 @@ UpplReturnCode Kt_Switch::IsKeyExists(OdbcmConnectionHandler *db_conn,
  * row_status- value of CsRowStatus
  * is_filtering-flag to indicate whether filter option enabled
  * is_state-flag to indicate whether data_type is DT_STATE
- * @return    : UPPL_RC_SUCCESS or UPPL_RC_ERR*
+ * @return    : UNC_RC_SUCCESS or UNC_UPPL_RC_ERR*
  * */
 void Kt_Switch::PopulateDBSchemaForKtTable(
     OdbcmConnectionHandler *db_conn,
@@ -1021,9 +1022,12 @@ void Kt_Switch::PopulateDBSchemaForKtTable(
       valid);
   if (read_sibling == true || (!switch_id.empty())) {
     vect_prim_keys.push_back(SWITCH_ID_STR);
-  } else if(read_sibling == false) 
+  } else if (read_sibling == false) {
     vect_prim_keys.push_back(SWITCH_ID_STR);
-  pfc_log_debug("operation_type=%d read_sibling=%d vect_prim_keys.size=%d", operation_type,  read_sibling, (uint32_t)vect_prim_keys.size());
+  }
+  pfc_log_debug("operation_type=%d read_sibling=%d vect_prim_keys.size=%"
+           PFC_PFMT_SIZE_T, operation_type, read_sibling,
+           vect_prim_keys.size());
   PhyUtil::reorder_col_attrs(vect_prim_keys, vect_table_attr_schema);
   kt_switch_dbtableschema.set_table_name(unc::uppl::SWITCH_TABLE);
   kt_switch_dbtableschema.set_primary_keys(vect_prim_keys);
@@ -1191,8 +1195,8 @@ void Kt_Switch::FillSwitchValueStructure(
       }
     }
     vect_obj_val_switch.push_back(obj_val_switch);
-    pfc_log_debug("result - vect_obj_val_switch size: %d",
-                  (unsigned int) vect_obj_val_switch.size());
+    pfc_log_debug("result - vect_obj_val_switch size: %"
+                  PFC_PFMT_SIZE_T, vect_obj_val_switch.size());
   }
   return;
 }
@@ -1209,9 +1213,9 @@ void Kt_Switch::FillSwitchValueStructure(
  * sess - ipc server session where the response has to be added
  * option1, option2 - additional condition associated with read operation
  * max_rep_ct - specifies no of rows to be returned
- * @return    : UPPL_RC_SUCCESS or UPPL_RC_ERR_*
+ * @return    : UNC_RC_SUCCESS or UNC_UPPL_RC_ERR_*
  * */
-UpplReturnCode Kt_Switch::PerformRead(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Switch::PerformRead(OdbcmConnectionHandler *db_conn,
                                       uint32_t session_id,
                                       uint32_t configuration_id,
                                       void* key_struct,
@@ -1232,45 +1236,207 @@ UpplReturnCode Kt_Switch::PerformRead(OdbcmConnectionHandler *db_conn,
       option1,
       option2,
       data_type,
-      0};
+      static_cast<uint32_t>(0)};
   if (operation_type == UNC_OP_READ) {
     max_rep_ct = 1;
   }
   key_switch_t *obj_key_switch = reinterpret_cast<key_switch_t*>(key_struct);
+  string controller_name = (const char*)obj_key_switch->
+      ctr_key.controller_name;
 
   // Invalid Operation
   if (option1 != UNC_OPT1_NORMAL) {
-    pfc_log_error("Invalid option1 specified for read operation");
-    rsh.result_code = UPPL_RC_ERR_INVALID_OPTION1;
+    if (!(option1 == UNC_OPT1_DETAIL && operation_type == UNC_OP_READ)) {
+      pfc_log_error("Invalid option1 specified for read operation");
+      rsh.result_code = UNC_UPPL_RC_ERR_INVALID_OPTION1;
+      int err = PhyUtil::sessOutRespHeader(sess, rsh);
+      err |= sess.addOutput((uint32_t)UNC_KT_SWITCH);
+      err |= sess.addOutput(*obj_key_switch);
+      if (err != 0) {
+        pfc_log_error("addOutput failed for physical_response_header");
+        return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
+      }
+      return UNC_RC_SUCCESS;
+    }
+  }
+  if (option2 != UNC_OPT2_NONE) {
+    pfc_log_error("Invalid option2 specified for read operation");
+    rsh.result_code = UNC_UPPL_RC_ERR_INVALID_OPTION2;
     int err = PhyUtil::sessOutRespHeader(sess, rsh);
     err |= sess.addOutput((uint32_t)UNC_KT_SWITCH);
     err |= sess.addOutput(*obj_key_switch);
     if (err != 0) {
       pfc_log_error("addOutput failed for physical_response_header");
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   if ((unc_keytype_datatype_t)data_type != UNC_DT_STATE)  {
     pfc_log_error("Read operation is provided on unsuported data type");
-    rsh.result_code = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    rsh.result_code = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
     int err = PhyUtil::sessOutRespHeader(sess, rsh);
     err |= sess.addOutput((uint32_t)UNC_KT_SWITCH);
     err |= sess.addOutput(*obj_key_switch);
     if (err != 0) {
       pfc_log_error("addOutput failed for physical_response_header");
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 
+  // U12 begin
+    if (operation_type == UNC_OP_READ && option1 == UNC_OPT1_DETAIL
+                                     && option2 == UNC_OPT2_NONE) {
+      // Not allowing the stand by request
+      PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
+      if (physical_layer->get_physical_core()->get_system_state() == \
+         UPPL_SYSTEM_ST_STANDBY) {
+        pfc_log_error("System is in Standby mode");
+        rsh.result_code = UNC_UPPL_RC_ERR_NOT_SUPPORTED_BY_STANDBY;
+        rsh.max_rep_count = 0;
+        int err = PhyUtil::sessOutRespHeader(sess, rsh);
+        err |= sess.addOutput((uint32_t) UNC_KT_SWITCH);
+        err |= sess.addOutput(*obj_key_switch);
+        if (err != 0) {
+          pfc_log_debug("addOutput failed for physical_response_header");
+          return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
+        }
+        return UNC_RC_SUCCESS;
+      }
+
+      // Getting the state values from DB
+      vector<key_switch_t> vect_switch_id;
+      vector<val_switch_st_t> vect_val_switch_st;
+      UncRespCode read_status = ReadSwitchValFromDB(db_conn,
+                                                    obj_key_switch,
+                                                    val_struct,
+                                                    data_type,
+                                                    operation_type,
+                                                    max_rep_ct,
+                                                    vect_val_switch_st,
+                                                    vect_switch_id);
+
+      if (read_status != UNC_RC_SUCCESS) {
+        rsh.result_code = read_status;
+        rsh.max_rep_count = 0;
+        int err = PhyUtil::sessOutRespHeader(sess, rsh);
+        err |= sess.addOutput((uint32_t) UNC_KT_SWITCH);
+        err |= sess.addOutput(*obj_key_switch);
+        if (err != 0) {
+          pfc_log_debug("addOutput failed for physical_response_header");
+          return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
+        }
+        return UNC_RC_SUCCESS;
+      }
 
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+      // Checking if key strucute is not present
+      if (vect_switch_id.size() == 0 || vect_val_switch_st.size() == 0) {
+        rsh.result_code = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
+        int err = sess.addOutput((uint32_t) UNC_KT_SWITCH);
+        err |= sess.addOutput(*obj_key_switch);
+        if (err != 0) {
+          pfc_log_debug("addOutput failed for physical_response_header");
+          return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
+        }
+        return UNC_RC_SUCCESS;
+      }
+      val_switch_st_detail_t val_switch_detail;
+      memset(&val_switch_detail, 0, sizeof(val_switch_st_detail_t));
+      string domain_id = "";
+      ClientSession *cli_session = NULL;
+      unc_keytype_ctrtype_t controller_type = UNC_CT_UNKNOWN;
+      UncRespCode ret_code  = PhyUtil::get_controller_type(
+                                                 db_conn,
+                                                 controller_name,
+                                                 controller_type,
+                                                 UNC_DT_STATE);
+      if (ret_code == UNC_RC_SUCCESS && controller_type == UNC_CT_PFC) {
+        UncRespCode err_drv = UNC_RC_SUCCESS;
+        UncRespCode driver_response = UNC_RC_SUCCESS;
+        IPCClientDriverHandler pfc_drv_handler(UNC_CT_PFC, err_drv);
+        cli_session = pfc_drv_handler.ResetAndGetSession();
+        driver_request_header rqh = {(uint32_t)0, (uint32_t)0, controller_name,
+          domain_id, operation_type, (uint32_t)0,
+          static_cast<uint32_t>(UNC_OPT1_DETAIL),
+          static_cast<uint32_t>(UNC_OPT2_NONE),
+          static_cast<uint32_t>(UNC_DT_STATE),
+          static_cast<uint32_t>(UNC_KT_SWITCH)};
+        int err = PhyUtil::sessOutDriverReqHeader(*cli_session, rqh);
+        if (err == UNC_RC_SUCCESS) {
+          // get the response from driver and the fill the result in the session
+          err = cli_session->addOutput(*obj_key_switch);
+          if (err == 0) {
+            driver_response_header rsp;
+            driver_response = pfc_drv_handler.SendReqAndGetResp(rsp);
+            if (driver_response == UNC_RC_SUCCESS) {
+              // Add the response in the session object
+              key_switch_t key_switch_drv;
+              int err1 = cli_session->getResponse(11, key_switch_drv);
+              pfc_log_info("key value is %s",
+                          reinterpret_cast<char*>(key_switch_drv.switch_id));
+              if (err1 != UNC_RC_SUCCESS) {
+                pfc_log_error("Read operation has failed"
+                              "after reading response of key");
+                driver_response = UNC_UPPL_RC_ERR_DRIVER_COMMUNICATION_FAILURE;
+              }
+              if (memcmp(key_switch_drv.switch_id,
+                         vect_switch_id[0].switch_id,
+                          sizeof(key_switch_drv.switch_id)) == 0) {
+                err1 = cli_session->getResponse(12, val_switch_detail);
+                pfc_log_info("got the Values from the driver");
+                if (err1 != UNC_RC_SUCCESS) {
+                 pfc_log_error("Read operation has failed"
+                                 "after reading response of val");
+                 driver_response = UNC_UPPL_RC_ERR_DRIVER_COMMUNICATION_FAILURE;
+                }
+              }
+            }
+          } else {
+            driver_response = UNC_UPPL_RC_ERR_DRIVER_COMMUNICATION_FAILURE;
+          }
+        } else {
+          driver_response = UNC_UPPL_RC_ERR_DRIVER_COMMUNICATION_FAILURE;
+        }
+        if (driver_response != UNC_RC_SUCCESS) {
+      pfc_log_error("Driver communication failures %d", driver_response);
+      rsh.result_code = driver_response;
+      int err = PhyUtil::sessOutRespHeader(sess, rsh);
+      err |= sess.addOutput((uint32_t)UNC_KT_SWITCH);
+      err |= sess.addOutput(*obj_key_switch);
+      if (err != 0) {
+        pfc_log_error("addOutput failed for physical_response_header");
+        return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
+      }
+      return UNC_RC_SUCCESS;
+        }
+      }
+      pfc_log_info("Received the values from state DB");
+      memcpy(&val_switch_detail.switch_st_val, &vect_val_switch_st[0],
+               sizeof(val_switch_detail.switch_st_val));
+      val_switch_detail.valid[0] = 1;
+      pfc_log_info("Key matched from DB and Driver");
+      rsh.result_code = UNC_RC_SUCCESS;
+      int err = PhyUtil::sessOutRespHeader(sess, rsh);
+      err |= sess.addOutput((uint32_t) UNC_KT_SWITCH);
+      err |= sess.addOutput(*obj_key_switch);
+      err |= sess.addOutput(val_switch_detail);
+      pfc_log_debug("Key Structure: %s",
+                    IpctUtil::get_string(*obj_key_switch).c_str());
+      pfc_log_debug("Val structre: %s",
+                    IpctUtil::get_string(val_switch_detail).c_str());
+      if (err != 0) {
+        pfc_log_debug("addOutput failed for physical_response_header");
+        return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
+      }
+    return UNC_RC_SUCCESS;
+  }
+  // U12 end
 
   // Read operations will return switch_st based on modified fd
 
   vector<key_switch_t> vect_switch_id;
   vector<val_switch_st_t> vect_val_switch_st;
+  UncRespCode read_status = UNC_RC_SUCCESS;
   read_status = ReadSwitchValFromDB(db_conn, key_struct,
                                     val_struct,
                                     data_type,
@@ -1281,14 +1447,14 @@ UpplReturnCode Kt_Switch::PerformRead(OdbcmConnectionHandler *db_conn,
                                     PFC_FALSE);
   rsh.result_code = read_status;
   rsh.max_rep_count = max_rep_ct;
-  if (read_status == UPPL_RC_SUCCESS) {
+  if (read_status == UNC_RC_SUCCESS) {
     int err = PhyUtil::sessOutRespHeader(sess, rsh);
     if (err != 0) {
       pfc_log_error("Failure in addOutput");
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
-    pfc_log_debug("From db, vect_switch_id size is %d",
-                  static_cast<int>(vect_switch_id.size()));
+    pfc_log_debug("From db, vect_switch_id size is %"
+                  PFC_PFMT_SIZE_T, vect_switch_id.size());
     for (unsigned int index = 0;
         index < vect_switch_id.size();
         ++index) {
@@ -1306,12 +1472,12 @@ UpplReturnCode Kt_Switch::PerformRead(OdbcmConnectionHandler *db_conn,
     err |= sess.addOutput(*obj_key_switch);
     if (err != 0) {
       pfc_log_error("Failure in addOutput");
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
     pfc_log_debug("Read operation status = %d", read_status);
   }
-  pfc_log_debug("Return Value for read operation %d", UPPL_RC_SUCCESS);
-  return UPPL_RC_SUCCESS;
+  pfc_log_debug("Return Value for read operation %d", UNC_RC_SUCCESS);
+  return UNC_RC_SUCCESS;
 }
 
 /** ReadSwitchValFromDB
@@ -1325,9 +1491,9 @@ UpplReturnCode Kt_Switch::PerformRead(OdbcmConnectionHandler *db_conn,
  * vect_val_switch_st - vector of type val_switch_st
  * switch_id - vector of type key_switch
  * is_state - bool variable to specify the state
- * @return    : UPPL_RC_SUCCESS or UPPL_RC_ERR_*
+ * @return    : UNC_RC_SUCCESS or UNC_UPPL_RC_ERR_*
  * */
-UpplReturnCode Kt_Switch::ReadSwitchValFromDB(
+UncRespCode Kt_Switch::ReadSwitchValFromDB(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     void* val_struct,
@@ -1339,10 +1505,10 @@ UpplReturnCode Kt_Switch::ReadSwitchValFromDB(
     pfc_bool_t is_state) {
   if (operation_type < UNC_OP_READ) {
     // Unsupported operation type for this function
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
-  UpplReturnCode read_status = UPPL_RC_SUCCESS;
+  UncRespCode read_status = UNC_RC_SUCCESS;
   ODBCM_RC_STATUS read_db_status = ODBCM_RC_SUCCESS;
 
   // Common structures that will be used to send query to ODBC
@@ -1368,14 +1534,14 @@ UpplReturnCode Kt_Switch::ReadSwitchValFromDB(
   }
   if (read_db_status == ODBCM_RC_RECORD_NOT_FOUND) {
     pfc_log_debug("No record found");
-    read_status = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+    read_status = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
     return read_status;
   } else if (read_db_status == ODBCM_RC_CONNECTION_ERROR) {
-    read_status = UPPL_RC_ERR_DB_ACCESS;
+    read_status = UNC_UPPL_RC_ERR_DB_ACCESS;
     pfc_log_error("Read operation has failed with error %d", read_db_status);
     return read_status;
   } else if (read_db_status != ODBCM_RC_SUCCESS) {
-    read_status = UPPL_RC_ERR_DB_GET;
+    read_status = UNC_UPPL_RC_ERR_DB_GET;
     pfc_log_info("Read operation status from odbcm = %d", read_db_status);
     return read_status;
   }
@@ -1386,11 +1552,11 @@ UpplReturnCode Kt_Switch::ReadSwitchValFromDB(
                            max_rep_ct,
                            operation_type,
                            vect_switch_id);
-  pfc_log_debug("vect_val_switch_st size: %d",
-                (unsigned int)vect_val_switch_st.size());
+  pfc_log_debug("vect_val_switch_st size: %"
+                PFC_PFMT_SIZE_T, vect_val_switch_st.size());
   if (vect_val_switch_st.empty()) {
     // Read failed , return error
-    read_status = UPPL_RC_ERR_DB_GET;
+    read_status = UNC_UPPL_RC_ERR_DB_GET;
     // log error to log daemon
     pfc_log_error("Read operation has failed after reading response");
     return read_status;
@@ -1513,19 +1679,17 @@ void Kt_Switch::Fill_Attr_Syntax_Map() {
  * @param[in]: data_type-type of database,UNC_DT_*
  * key_struct - key structure of kt switch
  * value_struct - value structure of kt switch
- * @return: UPPL_RC_SUCCESS or UPPL_RC_ERR*,Success or associated error code
+ * @return: UNC_RC_SUCCESS or UNC_UPPL_RC_ERR*,Success or associated error code
  * */
-UpplReturnCode Kt_Switch::HandleOperStatus(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Switch::HandleOperStatus(OdbcmConnectionHandler *db_conn,
                                            uint32_t data_type,
                                            void *key_struct,
                                            void *value_struct) {
-  FN_START_TIME("HandleOperStatus", "Switch");
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
-  UpplReturnCode return_code = UPPL_RC_SUCCESS;
+  UncRespCode return_code = UNC_RC_SUCCESS;
 
   if (key_struct == NULL) {
-    return_code = UPPL_RC_ERR_BAD_REQUEST;
-    FN_END_TIME("HandleOperStatus", "Switch");
+    return_code = UNC_UPPL_RC_ERR_BAD_REQUEST;
     return return_code;
   }
   key_switch_t *obj_key_switch =
@@ -1540,15 +1704,15 @@ UpplReturnCode Kt_Switch::HandleOperStatus(OdbcmConnectionHandler *db_conn,
   uint8_t ctrl_oper_status = 0;
   UpplSwitchOperStatus switch_oper_status = UPPL_SWITCH_OPER_UNKNOWN;
   Kt_Controller controller;
-  UpplReturnCode read_status = controller.
+  UncRespCode read_status = controller.
       GetOperStatus(db_conn, data_type, reinterpret_cast<void*>(&ctr_key),
                     ctrl_oper_status);
-  if (read_status != UPPL_RC_SUCCESS) {
+  if (read_status != UNC_RC_SUCCESS) {
     pfc_log_info("Controller's oper_status read returned failure");
     return read_status;
   }
   vector<OperStatusHolder> ref_oper_status;
-  ADD_CTRL_OPER_STATUS(controller_name, ctrl_oper_status);
+  ADD_CTRL_OPER_STATUS(controller_name, ctrl_oper_status, ref_oper_status);
   pfc_log_info("Controller's oper_status %d", ctrl_oper_status);
   if (ctrl_oper_status ==
       (UpplControllerOperStatus) UPPL_CONTROLLER_OPER_UP) {
@@ -1641,13 +1805,12 @@ UpplReturnCode Kt_Switch::HandleOperStatus(OdbcmConnectionHandler *db_conn,
       vectSwitchKey.begin();
   for (; keyItr != vectSwitchKey.end(); ++keyItr) {
     key_switch_t objKeySwitch = *keyItr;
-    ADD_SWITCH_OPER_STATUS(objKeySwitch, switch_oper_status);
+    ADD_SWITCH_OPER_STATUS(objKeySwitch, switch_oper_status, ref_oper_status);
     return_code = NotifyOperStatus(db_conn, data_type,
                                    reinterpret_cast<void *> (&objKeySwitch),
                                    NULL, ref_oper_status);
     pfc_log_debug("Notify Oper status return %d", return_code);
   }
-  FN_END_TIME("HandleOperStatus", "Switch");
   ClearOperStatusHolder(ref_oper_status);
   return return_code;
 }
@@ -1658,15 +1821,15 @@ UpplReturnCode Kt_Switch::HandleOperStatus(OdbcmConnectionHandler *db_conn,
  * @param[in] : key_struct - key structure of kt switch
  * values_struct - value structure of kt switch
  * data_type-UNC_DT_*,type of database
- * @return : UPPL_RC_SUCCESS or UPPL_RC_ERR*,Success or associated error code
+ * @return : UNC_RC_SUCCESS or UNC_UPPL_RC_ERR*,Success or associated error code
  * */
-UpplReturnCode Kt_Switch::NotifyOperStatus(
+UncRespCode Kt_Switch::NotifyOperStatus(
     OdbcmConnectionHandler *db_conn,
     uint32_t data_type,
     void* key_struct,
     void* value_struct,
     vector<OperStatusHolder> &ref_oper_status) {
-  UpplReturnCode return_code = UPPL_RC_SUCCESS;
+  UncRespCode return_code = UNC_RC_SUCCESS;
   key_switch_t *obj_key_switch = reinterpret_cast<key_switch_t*>(key_struct);
 
   string switch_id = (const char*)obj_key_switch->switch_id;
@@ -1731,9 +1894,9 @@ UpplReturnCode Kt_Switch::NotifyOperStatus(
  * @param[in]: key_struct - key structure of kt switch
  * oper_status - specifies the oper status
  * data_type-UNC_DT_*,type of database
- * @return:  UPPL_RC_SUCCESS or UPPL_RC_ERR*,Success or associated error code
+ * @return:  UNC_RC_SUCCESS or UNC_UPPL_RC_ERR*,Success or associated error code
  * */
-UpplReturnCode Kt_Switch::GetOperStatus(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Switch::GetOperStatus(OdbcmConnectionHandler *db_conn,
                                         uint32_t data_type,
                                         void* key_struct,
                                         uint8_t &oper_status) {
@@ -1777,7 +1940,7 @@ UpplReturnCode Kt_Switch::GetOperStatus(OdbcmConnectionHandler *db_conn,
           kt_switch_dbtableschema, db_conn);
   if (update_db_status != ODBCM_RC_SUCCESS) {
     pfc_log_info("oper_status read operation failed %d", update_db_status);
-    return UPPL_RC_ERR_DB_GET;
+    return UNC_UPPL_RC_ERR_DB_GET;
   }
   // read the oper status value
   list < vector<TableAttrSchema> >& res_switch_row_list =
@@ -1805,7 +1968,7 @@ UpplReturnCode Kt_Switch::GetOperStatus(OdbcmConnectionHandler *db_conn,
       }
     }
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /** SetOperStatus
@@ -1813,9 +1976,9 @@ UpplReturnCode Kt_Switch::GetOperStatus(OdbcmConnectionHandler *db_conn,
  * @param[in]: key_struct - key structure of kt switch
  * oper_status - specifies the oper status of kt switch
  * data_type-UNC_DT_*,type of database
- * @return: UPPL_RC_SUCCESS or UPPL_RC_ERR*,Success or associated error code
+ * @return: UNC_RC_SUCCESS or UNC_UPPL_RC_ERR*,Success or associated error code
  * */
-UpplReturnCode Kt_Switch::SetOperStatus(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Switch::SetOperStatus(OdbcmConnectionHandler *db_conn,
                                         uint32_t data_type,
                                         void *key_struct,
                                         UpplSwitchOperStatus oper_status) {
@@ -1823,10 +1986,10 @@ UpplReturnCode Kt_Switch::SetOperStatus(OdbcmConnectionHandler *db_conn,
   key_switch_t *obj_key_switch =
       reinterpret_cast<key_switch_t*>(key_struct);
   uint8_t old_oper_status = 0;
-  UpplReturnCode read_status = GetOperStatus(db_conn, data_type,
+  UncRespCode read_status = GetOperStatus(db_conn, data_type,
                                              key_struct,
                                              old_oper_status);
-  if (read_status != UPPL_RC_SUCCESS) {
+  if (read_status != UNC_RC_SUCCESS) {
     pfc_log_info("Unable to get the old oper status of switch");
     return read_status;
   }
@@ -1870,7 +2033,7 @@ UpplReturnCode Kt_Switch::SetOperStatus(OdbcmConnectionHandler *db_conn,
   } else if (update_db_status != ODBCM_RC_SUCCESS) {
     // log error
     pfc_log_error("oper_status update operation failed");
-    return UPPL_RC_ERR_DB_UPDATE;
+    return UNC_UPPL_RC_ERR_DB_UPDATE;
   } else {
     // Notify operstatus change to northbound
     val_switch_st old_val_switch, new_val_switch;
@@ -1883,9 +2046,9 @@ UpplReturnCode Kt_Switch::SetOperStatus(OdbcmConnectionHandler *db_conn,
     int err = 0;
     // Send notification to Northbound
     ServerEvent ser_evt((pfc_ipcevtype_t)UPPL_EVENTS_KT_SWITCH, err);
-    northbound_event_header rsh = {UNC_OP_UPDATE,
+    northbound_event_header rsh = {static_cast<uint32_t>(UNC_OP_UPDATE),
         data_type,
-        UNC_KT_SWITCH};
+        static_cast<uint32_t>(UNC_KT_SWITCH)};
     err = PhyUtil::sessOutNBEventHeader(ser_evt, rsh);
     err |= ser_evt.addOutput(*obj_key_switch);
     err |= ser_evt.addOutput(new_val_switch);
@@ -1893,14 +2056,14 @@ UpplReturnCode Kt_Switch::SetOperStatus(OdbcmConnectionHandler *db_conn,
     if (err == 0) {
       PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
       // Notify operstatus modifications
-      UpplReturnCode status = (UpplReturnCode) physical_layer
+      UncRespCode status = (UncRespCode) physical_layer
           ->get_ipc_connection_manager()->SendEvent(&ser_evt);
       pfc_log_debug("Event notification status %d", status);
     } else {
       pfc_log_info("Error creating ServerEvent object");
     }
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /** GetAlarmStatus
@@ -1908,10 +2071,10 @@ UpplReturnCode Kt_Switch::SetOperStatus(OdbcmConnectionHandler *db_conn,
  * @param[in]: key_struct - key structure of kt switch
  * alarm status - specifies the alarm status
  * data_type - UNC_DT_*,type of database
- * @return:  UPPL_RC_SUCCESS or UPPL_RC_ERR*,Success or associated error code
+ * @return:  UNC_RC_SUCCESS or UNC_UPPL_RC_ERR*,Success or associated error code
  * */
 
-UpplReturnCode Kt_Switch::GetAlarmStatus(OdbcmConnectionHandler *db_conn,
+UncRespCode Kt_Switch::GetAlarmStatus(OdbcmConnectionHandler *db_conn,
                                          uint32_t data_type,
                                          void* key_struct,
                                          uint64_t &alarms_status) {
@@ -1955,7 +2118,7 @@ UpplReturnCode Kt_Switch::GetAlarmStatus(OdbcmConnectionHandler *db_conn,
           kt_switch_dbtableschema, db_conn);
   if (update_db_status != ODBCM_RC_SUCCESS) {
     pfc_log_info("oper_status read operation failed %d", update_db_status);
-    return UPPL_RC_ERR_DB_GET;
+    return UNC_UPPL_RC_ERR_DB_GET;
   }
 
   // read the oper status value
@@ -1984,7 +2147,7 @@ UpplReturnCode Kt_Switch::GetAlarmStatus(OdbcmConnectionHandler *db_conn,
       }
     }
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /** UpdateSwitchValidFlag
@@ -1993,22 +2156,22 @@ UpplReturnCode Kt_Switch::GetAlarmStatus(OdbcmConnectionHandler *db_conn,
  * val_struct-value instance for KT_SWITCH
  * val_switch_valid_st-pointer to val_switch_st_t
  * @param[out]: new_valid_val-any value of unc_keytype_validflag_t
- * @return:  UPPL_RC_SUCCESS or UPPL_RC_ERR*,Success or associated error code
+ * @return:  UNC_RC_SUCCESS or UNC_UPPL_RC_ERR*,Success or associated error code
  * */
-UpplReturnCode Kt_Switch::UpdateSwitchValidFlag(
+UncRespCode Kt_Switch::UpdateSwitchValidFlag(
     OdbcmConnectionHandler *db_conn,
     void *key_struct, void *val_struct,
     val_switch_st_t &val_switch_valid_st,
     unc_keytype_validflag_t new_valid_val,
     uint32_t data_type) {
-  UpplReturnCode return_code = UPPL_RC_SUCCESS;
+  UncRespCode return_code = UNC_RC_SUCCESS;
   vector<void *> vect_switch_key;
   vector<void *> vect_switch_val;
   vect_switch_key.push_back(key_struct);
   vect_switch_val.push_back(val_struct);
   return_code = ReadInternal(db_conn, vect_switch_key, vect_switch_val,
                              data_type, UNC_OP_READ);
-  if (return_code != UPPL_RC_SUCCESS) {
+  if (return_code != UNC_RC_SUCCESS) {
     return return_code;
   }
   val_switch_st_t *obj_val_switch =
@@ -2166,9 +2329,9 @@ UpplReturnCode Kt_Switch::UpdateSwitchValidFlag(
  * @param[in] : key_struct-void* to switch key instance
  * value_struct-void* to switch value instance
  * valid_new-string indicating the valid flag
- * @return    :Success or associated error code,UPPL_RC_SUCCESS/UPPL_RC_ERR_*
+ * @return    :Success or associated error code,UNC_RC_SUCCESS/UNC_UPPL_RC_ERR_*
  */
-UpplReturnCode Kt_Switch::PopulateSchemaForValidFlag(
+UncRespCode Kt_Switch::PopulateSchemaForValidFlag(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     void* val_struct,
@@ -2211,16 +2374,16 @@ UpplReturnCode Kt_Switch::PopulateSchemaForValidFlag(
   if (update_db_status != ODBCM_RC_SUCCESS) {
     // log error
     pfc_log_error("domain id update operation failed");
-    return UPPL_RC_ERR_DB_UPDATE;
+    return UNC_UPPL_RC_ERR_DB_UPDATE;
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /** FrameValidValue
  * @Description : This function converts the string value from db to uint8
  * @param[in] : attr_value-string containg the attribute value
  * obj_val_switch- object of val_switch_st
- * @return    : Success or associated error code,UPPL_RC_SUCCESS/UPPL_RC_ERR_*
+ * @return    : Success or associated error code,UNC_RC_SUCCESS/UNC_UPPL_RC_ERR_*
  * */
 void Kt_Switch::FrameValidValue(string attr_value,
                                 val_switch_st &obj_val_switch) {
@@ -2248,7 +2411,7 @@ void Kt_Switch::FrameValidValue(string attr_value,
  * val_switch_valid_st-instance of val_switch_st_t
  * valid-stringstream instance
  * operation_type - UNC_OP*,type of operation requested
- * @return    : UPPL_RC_SUCCESS or UPPL_RC_ERR*,Success or associated error code
+ * @return    : UNC_RC_SUCCESS or UNC_UPPL_RC_ERR*,Success or associated error code
  * */
 void Kt_Switch::GetSwitchValStructure(
     OdbcmConnectionHandler *db_conn,
@@ -2260,16 +2423,22 @@ void Kt_Switch::GetSwitchValStructure(
     stringstream &valid) {
   uint16_t valid_val = 0, prev_db_val = 0;
   unsigned int valid_value_struct = UNC_VF_VALID;
+
   if (obj_val_switch != NULL) {
     valid_value_struct = PhyUtil::uint8touint(
         obj_val_switch->valid[kIdxSwitch]);
   }
+
   string value;
   // Description
-  if (obj_val_switch != NULL && valid_value_struct == UNC_VF_VALID) {
-    valid_val = PhyUtil::uint8touint(obj_val_switch->switch_val.
+  if (obj_val_switch != NULL) {
+    if (valid_value_struct == UNC_VF_VALID) {
+      valid_val = PhyUtil::uint8touint(obj_val_switch->switch_val.
                                      valid[kIdxSwitchDescription]);
-    value = (const char*)obj_val_switch->switch_val.description;
+      value = (const char*)obj_val_switch->switch_val.description;
+    } else if (valid_value_struct == UNC_VF_VALID_NO_VALUE) {
+      valid_val = UNC_VF_VALID_NO_VALUE;
+    }
     if (operation_type == UNC_OP_UPDATE) {
       prev_db_val =
           PhyUtil::uint8touint(
@@ -2285,10 +2454,14 @@ void Kt_Switch::GetSwitchValStructure(
                         vect_table_attr_schema, vect_prim_keys, valid);
   value.clear();
   // model
-  if (obj_val_switch != NULL && valid_value_struct == UNC_VF_VALID) {
-    valid_val = PhyUtil::uint8touint(obj_val_switch->switch_val.
+  if (obj_val_switch != NULL) {
+    if (valid_value_struct == UNC_VF_VALID) {
+      valid_val = PhyUtil::uint8touint(obj_val_switch->switch_val.
                                      valid[kIdxSwitchModel]);
-    value = (const char*)obj_val_switch->switch_val.model;
+      value = (const char*)obj_val_switch->switch_val.model;
+    } else if (valid_value_struct == UNC_VF_VALID_NO_VALUE) {
+      valid_val = UNC_VF_VALID_NO_VALUE;
+    }
     if (operation_type == UNC_OP_UPDATE) {
       prev_db_val =
           PhyUtil::uint8touint(
@@ -2305,15 +2478,19 @@ void Kt_Switch::GetSwitchValStructure(
   // Ip_address
   char *ip_value = new char[16];
   memset(ip_value, '\0', 16);
-  if (obj_val_switch != NULL && valid_value_struct == UNC_VF_VALID) {
-    valid_val = PhyUtil::uint8touint(
+  if (obj_val_switch != NULL) {
+    if (valid_value_struct == UNC_VF_VALID) {
+      valid_val = PhyUtil::uint8touint(
         obj_val_switch->switch_val.
         valid[kIdxSwitchIPAddress]);
-    pfc_log_debug("ip_address : %d",
+      pfc_log_debug("ip_address : %d",
                   obj_val_switch->switch_val.ip_address.s_addr);
-    inet_ntop(AF_INET, &obj_val_switch->switch_val.ip_address,
+      inet_ntop(AF_INET, &obj_val_switch->switch_val.ip_address,
               ip_value, INET_ADDRSTRLEN);
-    pfc_log_debug("ip_address: %s", ip_value);
+      pfc_log_debug("ip_address: %s", ip_value);
+    } else if (valid_value_struct == UNC_VF_VALID_NO_VALUE) {
+      valid_val = UNC_VF_VALID_NO_VALUE;
+    }
     if (operation_type == UNC_OP_UPDATE) {
       prev_db_val =
           PhyUtil::uint8touint(
@@ -2331,11 +2508,15 @@ void Kt_Switch::GetSwitchValStructure(
   // IPV6 Address
   ip_value = new char[16];
   memset(ip_value, '\0', 16);
-  if (obj_val_switch != NULL && valid_value_struct == UNC_VF_VALID) {
-    valid_val = PhyUtil::uint8touint(obj_val_switch->switch_val.
+  if (obj_val_switch != NULL) {
+    if (valid_value_struct == UNC_VF_VALID) {
+      valid_val = PhyUtil::uint8touint(obj_val_switch->switch_val.
                                      valid[kIdxSwitchIPV6Address]);
-    inet_ntop(AF_INET6, &obj_val_switch->switch_val.ipv6_address,
+      inet_ntop(AF_INET6, &obj_val_switch->switch_val.ipv6_address,
               ip_value, INET6_ADDRSTRLEN);
+    } else if (valid_value_struct == UNC_VF_VALID_NO_VALUE) {
+      valid_val = UNC_VF_VALID_NO_VALUE;
+    }
     if (operation_type == UNC_OP_UPDATE) {
       prev_db_val =
           PhyUtil::uint8touint(
@@ -2351,11 +2532,15 @@ void Kt_Switch::GetSwitchValStructure(
   delete []ip_value;
   value.clear();
   // Admin Status
-  if (obj_val_switch != NULL && valid_value_struct == UNC_VF_VALID) {
-    valid_val = PhyUtil::uint8touint(obj_val_switch->switch_val.
+  if (obj_val_switch != NULL) {
+    if (valid_value_struct == UNC_VF_VALID) {
+      valid_val = PhyUtil::uint8touint(obj_val_switch->switch_val.
                                      valid[kIdxSwitchAdminStatus]);
-    value = PhyUtil::uint8tostr(obj_val_switch->
+      value = PhyUtil::uint8tostr(obj_val_switch->
                                 switch_val.admin_status);
+    } else if (valid_value_struct == UNC_VF_VALID_NO_VALUE) {
+      valid_val = UNC_VF_VALID_NO_VALUE;
+    }
     if (operation_type == UNC_OP_UPDATE) {
       prev_db_val =
           PhyUtil::uint8touint(
@@ -2370,10 +2555,14 @@ void Kt_Switch::GetSwitchValStructure(
                         vect_table_attr_schema, vect_prim_keys, valid);
   value.clear();
   // Domain Name
-  if (obj_val_switch != NULL && valid_value_struct == UNC_VF_VALID) {
-    valid_val = PhyUtil::uint8touint(obj_val_switch->switch_val.
+  if (obj_val_switch != NULL) {
+    if (valid_value_struct == UNC_VF_VALID) {
+      valid_val = PhyUtil::uint8touint(obj_val_switch->switch_val.
                                      valid[kIdxSwitchDomainName]);
-    value = (const char*)obj_val_switch->switch_val.domain_name;
+      value = (const char*)obj_val_switch->switch_val.domain_name;
+    } else if (valid_value_struct == UNC_VF_VALID_NO_VALUE) {
+      valid_val = UNC_VF_VALID_NO_VALUE;
+    }
     if (operation_type == UNC_OP_UPDATE) {
       prev_db_val =
           PhyUtil::uint8touint(
@@ -2398,7 +2587,7 @@ void Kt_Switch::GetSwitchValStructure(
  * val_switch_valid_st-instance of val_switch_st_t
  * valid-stringstream instance
  * operation_type - UNC_OP*,type of operation
- * @return    : UPPL_RC_SUCCESS or UPPL_RC_ERR*,Success or associated error code
+ * @return    : UNC_RC_SUCCESS or UNC_UPPL_RC_ERR*,Success or associated error code
  * */
 void Kt_Switch::GetSwitchStateValStructure(
     OdbcmConnectionHandler *db_conn,
@@ -2420,7 +2609,7 @@ void Kt_Switch::GetSwitchStateValStructure(
     if (operation_type == UNC_OP_UPDATE) {
       prev_db_val =
           PhyUtil::uint8touint(
-              val_switch_valid_st->switch_val.valid[kIdxSwitchOperStatus]);
+              val_switch_valid_st->valid[kIdxSwitchOperStatus]);
     }
   } else {
     valid_val = UPPL_NO_VAL_STRUCT;
@@ -2440,7 +2629,7 @@ void Kt_Switch::GetSwitchStateValStructure(
     if (operation_type == UNC_OP_UPDATE) {
       prev_db_val =
           PhyUtil::uint8touint(
-              val_switch_valid_st->switch_val.valid[kIdxSwitchManufacturer]);
+              val_switch_valid_st->valid[kIdxSwitchManufacturer]);
     }
   } else {
     valid_val = UPPL_NO_VAL_STRUCT;
@@ -2460,7 +2649,7 @@ void Kt_Switch::GetSwitchStateValStructure(
     if (operation_type == UNC_OP_UPDATE) {
       prev_db_val =
           PhyUtil::uint8touint(
-              val_switch_valid_st->switch_val.valid[kIdxSwitchHardware]);
+              val_switch_valid_st->valid[kIdxSwitchHardware]);
     }
   } else {
     valid_val = UPPL_NO_VAL_STRUCT;
@@ -2480,7 +2669,7 @@ void Kt_Switch::GetSwitchStateValStructure(
     if (operation_type == UNC_OP_UPDATE) {
       prev_db_val =
           PhyUtil::uint8touint(
-              val_switch_valid_st->switch_val.valid[kIdxSwitchSoftware]);
+              val_switch_valid_st->valid[kIdxSwitchSoftware]);
     }
   } else {
     valid_val = UPPL_NO_VAL_STRUCT;
@@ -2500,7 +2689,7 @@ void Kt_Switch::GetSwitchStateValStructure(
     if (operation_type == UNC_OP_UPDATE) {
       prev_db_val =
           PhyUtil::uint8touint(
-              val_switch_valid_st->switch_val.valid[kIdxSwitchAlarmStatus]);
+              val_switch_valid_st->valid[kIdxSwitchAlarmStatus]);
     }
   } else {
     valid_val = UPPL_NO_VAL_STRUCT;
index 4cd281eebb9c51f59b0bf0b3136082551db46ffd..33fc9d6c8a97e4fd8c078818792fbfe199493811 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -54,20 +54,20 @@ pfc_bool_t NotificationRequest::ProcessEvent(const IpcEvent &event) {
   pfc_ipcevtype_t event_type(event.getType());
   if (event_type == UNC_PHYSICAL_EVENTS ||
       event_type == UNC_CTLR_STATE_EVENTS) {
-    UpplReturnCode err = ProcessNotificationEvents(event);
-    if (err != UPPL_RC_SUCCESS) {
+    UncRespCode err = ProcessNotificationEvents(event);
+    if (err != UNC_RC_SUCCESS) {
       pfc_log_error("ProcessNotificationEvents failed error no: %d", err);
       return PFC_FALSE;
     }
   } else if (event_type == UNC_ALARMS) {
-    UpplReturnCode err = ProcessAlarmEvents(event);
-    if (err != UPPL_RC_SUCCESS) {
+    UncRespCode err = ProcessAlarmEvents(event);
+    if (err != UNC_RC_SUCCESS) {
       pfc_log_error("ProcessAlarmEvents failed error no: %d", err);
       return PFC_FALSE;
     }
   } else {
     pfc_log_error("Invalid event type error no: %d",
-                  UPPL_RC_ERR_NOTIFICATION_NOT_SUPPORTED);
+                  UNC_UPPL_RC_ERR_NOTIFICATION_NOT_SUPPORTED);
     return PFC_FALSE;
   }
   return PFC_TRUE;
@@ -86,7 +86,7 @@ pfc_bool_t NotificationRequest::ProcessEvent(const IpcEvent &event) {
  * @return   :Success or associated error code
  **/
 
-UpplReturnCode NotificationRequest::InvokeKtDriverEvent(
+UncRespCode NotificationRequest::InvokeKtDriverEvent(
     OdbcmConnectionHandler *db_conn,
     uint32_t operation,
     uint32_t data_type,
@@ -95,7 +95,7 @@ UpplReturnCode NotificationRequest::InvokeKtDriverEvent(
     void *old_val_struct,
     uint32_t key_type) {
   Kt_State_Base *ObjStateNotify = NULL;
-  UpplReturnCode status = UPPL_RC_SUCCESS;
+  UncRespCode status = UNC_RC_SUCCESS;
   switch (key_type) {
     case UNC_KT_PORT: {
       ObjStateNotify = new Kt_Port();
@@ -119,7 +119,7 @@ UpplReturnCode NotificationRequest::InvokeKtDriverEvent(
     }
     default: {
       pfc_log_error("Invalid key type\n");
-      return UPPL_RC_ERR_KEYTYPE_NOT_SUPPORTED;
+      return UNC_UPPL_RC_ERR_KEYTYPE_NOT_SUPPORTED;
     }
   }
   switch (operation) {
@@ -158,7 +158,7 @@ UpplReturnCode NotificationRequest::InvokeKtDriverEvent(
     {
       pfc_log_error("Invalid operation type\n");
       delete ObjStateNotify;
-      return UPPL_RC_ERR_OPERATION_NOT_SUPPORTED;
+      return UNC_UPPL_RC_ERR_OPERATION_NOT_SUPPORTED;
     }
   }
   return status;
@@ -170,23 +170,23 @@ UpplReturnCode NotificationRequest::InvokeKtDriverEvent(
  * @param[in]:event- an object of IpcEvent,contains the event posted by driver.
  * @return   :Success or associated error code
  **/
-UpplReturnCode NotificationRequest::ProcessNotificationEvents(
+UncRespCode NotificationRequest::ProcessNotificationEvents(
     const IpcEvent &event) {
   pfc_log_info("Inside ProcessNotificationEvents of NotificationRequest");
-  UpplReturnCode status = UPPL_RC_SUCCESS;
+  UncRespCode status = UNC_RC_SUCCESS;
   ClientSession sess(event.getSession());
 
   /*validate valid response count for Notification event structure*/
   uint32_t resp_count = sess.getResponseCount();
   if (resp_count < (uint32_t)6) {
     pfc_log_error("Invalid event structure - Resp Count %d", resp_count);
-    return UPPL_RC_ERR_BAD_REQUEST;
+    return UNC_UPPL_RC_ERR_BAD_REQUEST;
   }
   driver_event_header event_header;
   uint32_t header_parse = PhyUtil::sessGetDriverEventHeader(sess, event_header);
   if (header_parse != 0) {
     pfc_log_error("Unable to parse event header successfully");
-    return UPPL_RC_ERR_BAD_REQUEST;
+    return UNC_UPPL_RC_ERR_BAD_REQUEST;
   }
   uint32_t data_type = event_header.data_type;
   uint32_t operation = event_header.operation;
@@ -197,7 +197,7 @@ UpplReturnCode NotificationRequest::ProcessNotificationEvents(
       status = ProcessPortEvents(&sess,
                                  data_type,
                                  operation);
-      if (status == UPPL_RC_ERR_BAD_REQUEST) {
+      if (status == UNC_UPPL_RC_ERR_BAD_REQUEST) {
         return status;
       }
       break;
@@ -207,7 +207,7 @@ UpplReturnCode NotificationRequest::ProcessNotificationEvents(
       status = ProcessSwitchEvents(&sess,
                                    data_type,
                                    operation);
-      if (status == UPPL_RC_ERR_BAD_REQUEST) {
+      if (status == UNC_UPPL_RC_ERR_BAD_REQUEST) {
         return status;
       }
       break;
@@ -217,7 +217,7 @@ UpplReturnCode NotificationRequest::ProcessNotificationEvents(
       status = ProcessLinkEvents(&sess,
                                  data_type,
                                  operation);
-      if (status == UPPL_RC_ERR_BAD_REQUEST) {
+      if (status == UNC_UPPL_RC_ERR_BAD_REQUEST) {
         return status;
       }
       break;
@@ -227,7 +227,7 @@ UpplReturnCode NotificationRequest::ProcessNotificationEvents(
       status = ProcessControllerEvents(&sess,
                                        data_type,
                                        operation);
-      if (status == UPPL_RC_ERR_BAD_REQUEST) {
+      if (status == UNC_UPPL_RC_ERR_BAD_REQUEST) {
         return status;
       }
       break;
@@ -237,7 +237,7 @@ UpplReturnCode NotificationRequest::ProcessNotificationEvents(
       status = ProcessDomainEvents(&sess,
                                    data_type,
                                    operation);
-      if (status == UPPL_RC_ERR_BAD_REQUEST) {
+      if (status == UNC_UPPL_RC_ERR_BAD_REQUEST) {
         return status;
       }
       break;
@@ -247,7 +247,7 @@ UpplReturnCode NotificationRequest::ProcessNotificationEvents(
       status = ProcessLogicalPortEvents(&sess,
                                         data_type,
                                         operation);
-      if (status == UPPL_RC_ERR_BAD_REQUEST) {
+      if (status == UNC_UPPL_RC_ERR_BAD_REQUEST) {
         return status;
       }
       break;
@@ -257,7 +257,7 @@ UpplReturnCode NotificationRequest::ProcessNotificationEvents(
       status = ProcessLogicalMemeberPortEvents(&sess,
                                                data_type,
                                                operation);
-      if (status == UPPL_RC_ERR_BAD_REQUEST) {
+      if (status == UNC_UPPL_RC_ERR_BAD_REQUEST) {
         return status;
       }
       break;
@@ -265,7 +265,7 @@ UpplReturnCode NotificationRequest::ProcessNotificationEvents(
     default:
     {
       pfc_log_error("Invalid key type\n");
-      return UPPL_RC_ERR_KEYTYPE_NOT_SUPPORTED;
+      return UNC_UPPL_RC_ERR_KEYTYPE_NOT_SUPPORTED;
     }
   }
   return status;
@@ -296,32 +296,32 @@ void NotificationRequest::GetNotificationDT(OdbcmConnectionHandler *db_conn,
  * @param[in]:event-an object of IpcEvent,contains the event posted by driver
  * @return   :Success or associated error code
  **/
-UpplReturnCode NotificationRequest::ProcessAlarmEvents(const IpcEvent &event) {
+UncRespCode NotificationRequest::ProcessAlarmEvents(const IpcEvent &event) {
   pfc_log_info("Inside ProcessAlarmEvents of NotificationRequest");
   // Check for MergeImportRunning Lock
   ScopedReadWriteLock eventDoneLock(
       PhysicalLayer::get_events_done_lock_(), PFC_FALSE);  // read lock
-  UpplReturnCode db_ret = UPPL_RC_SUCCESS;
+  UncRespCode db_ret = UNC_RC_SUCCESS;
   OPEN_DB_CONNECTION(unc::uppl::kOdbcmConnReadWriteSb, db_ret);
-  if (db_ret != UPPL_RC_SUCCESS) {
+  if (db_ret != UNC_RC_SUCCESS) {
     pfc_log_error("Error in opening DB connection");
-    return UPPL_RC_ERR_DB_ACCESS;
+    return UNC_UPPL_RC_ERR_DB_ACCESS;
   }
-  UpplReturnCode status = UPPL_RC_SUCCESS;
+  UncRespCode status = UNC_RC_SUCCESS;
   ClientSession sess(event.getSession());
 
   /*validate valid response count for Notification event structure*/
   uint32_t resp_count = sess.getResponseCount();
   if (resp_count < (uint32_t)7) {
     pfc_log_error("Invalid alarm structure");
-    return UPPL_RC_ERR_BAD_REQUEST;
+    return UNC_UPPL_RC_ERR_BAD_REQUEST;
   }
   /*Get key type, operation type and alarm type from IpcEvent*/
   driver_alarm_header alarm_header;
   uint32_t header_parse = PhyUtil::sessGetDriverAlarmHeader(sess, alarm_header);
   if (header_parse != 0) {
     pfc_log_error("Unable to parse alarms header successfully");
-    return UPPL_RC_ERR_BAD_REQUEST;
+    return UNC_UPPL_RC_ERR_BAD_REQUEST;
   }
   uint32_t data_type = alarm_header.data_type;
   pfc_log_debug("Alarm Type %d", alarm_header.alarm_type);
@@ -332,15 +332,21 @@ UpplReturnCode NotificationRequest::ProcessAlarmEvents(const IpcEvent &event) {
     int read_err = sess.getResponse((uint32_t)6, key_ctr);
     if (read_err != 0) {
       pfc_log_error("Key not received for controller");
-      return UPPL_RC_ERR_BAD_REQUEST;
+      return UNC_UPPL_RC_ERR_BAD_REQUEST;
     }
     pfc_log_info("%s", IpctUtil::get_string(key_ctr).c_str());
+    if ((alarm_header.operation != UNC_OP_CREATE) &&
+        (alarm_header.operation != UNC_OP_DELETE)) {
+      pfc_log_info("Invalid alarm operation : %d",
+                   alarm_header.operation);
+      return UNC_UPPL_RC_ERR_NOTIFICATION_NOT_SUPPORTED;
+    }
     if (alarm_header.alarm_type == UNC_PHYS_PATH_FAULT) {
       val_phys_path_fault_alarm_t val_ctr_alarm_struct;
       int read_err = sess.getResponse((uint32_t)7, val_ctr_alarm_struct);
       if (read_err != 0) {
         pfc_log_error("Value not received for controller");
-        return UPPL_RC_ERR_BAD_REQUEST;
+        return UNC_UPPL_RC_ERR_BAD_REQUEST;
       }
       string controller_name = reinterpret_cast<char *>
       (key_ctr.controller_name);
@@ -355,7 +361,7 @@ UpplReturnCode NotificationRequest::ProcessAlarmEvents(const IpcEvent &event) {
     } else {
       pfc_log_info("Invalid alarm type for UNC_KT_CONTROLLER: %d",
                    alarm_header.alarm_type);
-      return UPPL_RC_ERR_NOTIFICATION_NOT_SUPPORTED;
+      return UNC_UPPL_RC_ERR_NOTIFICATION_NOT_SUPPORTED;
     }
   } else  if (alarm_header.key_type ==  UNC_KT_CTR_DOMAIN) {
     /*process domain related alarm*/
@@ -364,17 +370,23 @@ UpplReturnCode NotificationRequest::ProcessAlarmEvents(const IpcEvent &event) {
     int read_err = sess.getResponse((uint32_t)6, key_ctr_domain);
     if (read_err != 0) {
       pfc_log_error("Key not received for ctr domain");
-      return UPPL_RC_ERR_BAD_REQUEST;
+      return UNC_UPPL_RC_ERR_BAD_REQUEST;
     }
     pfc_log_info("%s", IpctUtil::get_string(key_ctr_domain).c_str());
-    Kt_Base *NotifyDomain = new Kt_Ctr_Domain();
-    if (NotifyDomain == NULL) {
-      pfc_log_error("Memory not allocated for Notifydomain");
-      return UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+    if ((alarm_header.operation != UNC_OP_CREATE) &&
+        (alarm_header.operation != UNC_OP_DELETE)) {
+      pfc_log_info("Invalid alarm operation : %d",
+                   alarm_header.operation);
+      return UNC_UPPL_RC_ERR_NOTIFICATION_NOT_SUPPORTED;
     }
     if (alarm_header.alarm_type ==  UNC_COREDOMAIN_SPLIT) {
       string controller_name = reinterpret_cast<char *>
       (key_ctr_domain.ctr_key.controller_name);
+      Kt_Base *NotifyDomain = new Kt_Ctr_Domain();
+      if (NotifyDomain == NULL) {
+        pfc_log_error("Memory not allocated for Notifydomain");
+        return UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+      }
       GetNotificationDT(&db_conn, controller_name, data_type);
       status = NotifyDomain->HandleDriverAlarms(
           &db_conn, data_type, alarm_header.alarm_type, alarm_header.operation,
@@ -385,8 +397,7 @@ UpplReturnCode NotificationRequest::ProcessAlarmEvents(const IpcEvent &event) {
     } else {
       pfc_log_info("Invalid alarm type for UNC_KT_CTR_DOMAIN: %d",
                    alarm_header.alarm_type);
-      delete NotifyDomain;
-      return UPPL_RC_ERR_NOTIFICATION_NOT_SUPPORTED;
+      return UNC_UPPL_RC_ERR_NOTIFICATION_NOT_SUPPORTED;
     }
   }  else  if (alarm_header.key_type ==  UNC_KT_LOGICAL_PORT) {
     /*process logical port related alarm*/
@@ -395,17 +406,23 @@ UpplReturnCode NotificationRequest::ProcessAlarmEvents(const IpcEvent &event) {
     int read_err = sess.getResponse((uint32_t)6, key_logicalport);
     if (read_err != 0) {
       pfc_log_error("Key not received for logical port");
-      return UPPL_RC_ERR_BAD_REQUEST;
+      return UNC_UPPL_RC_ERR_BAD_REQUEST;
     }
     pfc_log_info("%s", IpctUtil::get_string(key_logicalport).c_str());
-    Kt_Base *NotifyLogicalPort = new Kt_LogicalPort();
-    if (NotifyLogicalPort  == NULL) {
-      pfc_log_error("Memory not allocated for NotifyLogicalPort");
-      return UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+    if ((alarm_header.operation != UNC_OP_CREATE) &&
+        (alarm_header.operation != UNC_OP_DELETE)) {
+      pfc_log_info("Invalid alarm operation : %d",
+                   alarm_header.operation);
+      return UNC_UPPL_RC_ERR_NOTIFICATION_NOT_SUPPORTED;
     }
     if (alarm_header.alarm_type == UNC_SUBDOMAIN_SPLIT) {
       string controller_name = reinterpret_cast<char *>
       (key_logicalport.domain_key.ctr_key.controller_name);
+      Kt_Base *NotifyLogicalPort = new Kt_LogicalPort();
+      if (NotifyLogicalPort  == NULL) {
+        pfc_log_error("Memory not allocated for NotifyLogicalPort");
+        return UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+      }
       GetNotificationDT(&db_conn, controller_name, data_type);
       status = NotifyLogicalPort->HandleDriverAlarms(
           &db_conn, data_type, alarm_header.alarm_type, alarm_header.operation,
@@ -416,8 +433,7 @@ UpplReturnCode NotificationRequest::ProcessAlarmEvents(const IpcEvent &event) {
     } else {
       pfc_log_info("Invalid alarm type for UNC_KT_LOGICAL_PORT: %d",
                    alarm_header.alarm_type);
-      delete NotifyLogicalPort;
-      return UPPL_RC_ERR_NOTIFICATION_NOT_SUPPORTED;
+      return UNC_UPPL_RC_ERR_NOTIFICATION_NOT_SUPPORTED;
     }
   }  else  if (alarm_header.key_type ==  UNC_KT_PORT) {
     /*process port related alarm*/
@@ -426,19 +442,25 @@ UpplReturnCode NotificationRequest::ProcessAlarmEvents(const IpcEvent &event) {
     int read_err = sess.getResponse((uint32_t)6, port_key);
     if (read_err != 0) {
       pfc_log_error("Key not received for port");
-      return UPPL_RC_ERR_BAD_REQUEST;
+      return UNC_UPPL_RC_ERR_BAD_REQUEST;
     }
     pfc_log_info("%s", IpctUtil::get_string(port_key).c_str());
-    Kt_Base *NotifyPort = new Kt_Port();
-    if (NotifyPort  == NULL) {
-      pfc_log_error("Memory not allocated for NotifyPort");
-      return UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+    if ((alarm_header.operation != UNC_OP_CREATE) &&
+        (alarm_header.operation != UNC_OP_DELETE)) {
+      pfc_log_info("Invalid alarm operation : %d",
+                   alarm_header.operation);
+      return UNC_UPPL_RC_ERR_NOTIFICATION_NOT_SUPPORTED;
     }
     if ((alarm_header.alarm_type ==  UNC_DEFAULT_FLOW) ||
         (alarm_header.alarm_type ==  UNC_PORT_DIRECTION) ||
         (alarm_header.alarm_type ==  UNC_PORT_CONGES)) {
       string controller_name = reinterpret_cast<char *>
       (port_key.sw_key.ctr_key.controller_name);
+      Kt_Base *NotifyPort = new Kt_Port();
+      if (NotifyPort  == NULL) {
+        pfc_log_error("Memory not allocated for NotifyPort");
+        return UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+      }
       GetNotificationDT(&db_conn, controller_name, data_type);
       status = NotifyPort->HandleDriverAlarms(
           &db_conn, data_type, alarm_header.alarm_type, alarm_header.operation,
@@ -449,8 +471,7 @@ UpplReturnCode NotificationRequest::ProcessAlarmEvents(const IpcEvent &event) {
     } else {
       pfc_log_info("Invalid alarm type for UNC_KT_PORT: %d",
                    alarm_header.alarm_type);
-      delete NotifyPort;
-      return UPPL_RC_ERR_NOTIFICATION_NOT_SUPPORTED;
+      return UNC_UPPL_RC_ERR_NOTIFICATION_NOT_SUPPORTED;
     }
   }  else  if (alarm_header.key_type ==  UNC_KT_SWITCH) {
     /*process controller related alarm*/
@@ -459,18 +480,24 @@ UpplReturnCode NotificationRequest::ProcessAlarmEvents(const IpcEvent &event) {
     int read_err = sess.getResponse((uint32_t)6, switch_key);
     if (read_err != 0) {
       pfc_log_error("Key not received for switch");
-      return UPPL_RC_ERR_BAD_REQUEST;
+      return UNC_UPPL_RC_ERR_BAD_REQUEST;
     }
     pfc_log_info("%s", IpctUtil::get_string(switch_key).c_str());
-    Kt_Base *NotifySwitch = new Kt_Switch();
-    if (NotifySwitch  == NULL) {
-      pfc_log_error("Memory not allocated for NotifySwitch");
-      return UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+    if ((alarm_header.operation != UNC_OP_CREATE) &&
+        (alarm_header.operation != UNC_OP_DELETE)) {
+      pfc_log_info("Invalid alarm operation : %d",
+                   alarm_header.operation);
+      return UNC_UPPL_RC_ERR_NOTIFICATION_NOT_SUPPORTED;
     }
     if ((alarm_header.alarm_type ==  UNC_FLOW_ENT_FULL) ||
         (alarm_header.alarm_type ==  UNC_OFS_LACK_FEATURES)) {
       string controller_name = reinterpret_cast<char *>
       (switch_key.ctr_key.controller_name);
+      Kt_Base *NotifySwitch = new Kt_Switch();
+      if (NotifySwitch  == NULL) {
+        pfc_log_error("Memory not allocated for NotifySwitch");
+        return UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+      }
       GetNotificationDT(&db_conn, controller_name, data_type);
       status = NotifySwitch->HandleDriverAlarms(
           &db_conn, data_type, alarm_header.alarm_type, alarm_header.operation,
@@ -481,8 +508,7 @@ UpplReturnCode NotificationRequest::ProcessAlarmEvents(const IpcEvent &event) {
     } else {
       pfc_log_info("Invalid alarm type for UNC_KT_SWITCH: %d",
                    alarm_header.alarm_type);
-      delete NotifySwitch;
-      return UPPL_RC_ERR_NOTIFICATION_NOT_SUPPORTED;
+      return UNC_UPPL_RC_ERR_NOTIFICATION_NOT_SUPPORTED;
     }
   } else {
     pfc_log_info("Invalid key type : %d", alarm_header.key_type);
@@ -498,26 +524,26 @@ UpplReturnCode NotificationRequest::ProcessAlarmEvents(const IpcEvent &event) {
  * operation-type of operation UNC_OP_CREATE/UPDATE/DELETE
  * @return   :Success or associated error code
  **/
-UpplReturnCode NotificationRequest::ProcessPortEvents(
+UncRespCode NotificationRequest::ProcessPortEvents(
     ClientSession *sess,
     uint32_t data_type,
     uint32_t operation) {
   // Check for MergeImportRunning Lock
   ScopedReadWriteLock eventDoneLock(
       PhysicalLayer::get_events_done_lock_(), PFC_FALSE);  // read lock
-  UpplReturnCode db_ret = UPPL_RC_SUCCESS;
+  UncRespCode db_ret = UNC_RC_SUCCESS;
   OPEN_DB_CONNECTION(unc::uppl::kOdbcmConnReadWriteSb, db_ret);
-  if (db_ret != UPPL_RC_SUCCESS) {
+  if (db_ret != UNC_RC_SUCCESS) {
     pfc_log_error("Error in opening DB connection");
-    return UPPL_RC_ERR_DB_ACCESS;
+    return UNC_UPPL_RC_ERR_DB_ACCESS;
   }
-  UpplReturnCode status = UPPL_RC_SUCCESS;
+  UncRespCode status = UNC_RC_SUCCESS;
   key_port_t port_key;
   memset(&port_key, '\0', sizeof(key_port_t));
   int read_err = sess->getResponse((uint32_t)5, port_key);
   if (read_err != 0) {
     pfc_log_error("Key not received for port");
-    return UPPL_RC_ERR_BAD_REQUEST;
+    return UNC_UPPL_RC_ERR_BAD_REQUEST;
   }
   pfc_log_info("%s", IpctUtil::get_string(port_key).c_str());
   string controller_name = reinterpret_cast<char *>
@@ -529,7 +555,7 @@ UpplReturnCode NotificationRequest::ProcessPortEvents(
     read_err = sess->getResponse((uint32_t)6, new_val_port);
     if (read_err != 0) {
       pfc_log_error("New value not received for port");
-      return UPPL_RC_ERR_BAD_REQUEST;
+      return UNC_UPPL_RC_ERR_BAD_REQUEST;
     }
     pfc_log_info("NEWVAL: %s", IpctUtil::get_string(new_val_port).c_str());
   }
@@ -538,7 +564,7 @@ UpplReturnCode NotificationRequest::ProcessPortEvents(
     read_err = sess->getResponse((uint32_t)7, old_val_port);
     if (read_err != 0) {
       pfc_log_error("Old value not received for port");
-      return UPPL_RC_ERR_BAD_REQUEST;
+      return UNC_UPPL_RC_ERR_BAD_REQUEST;
     }
     pfc_log_info("OLDVAL: %s",
                  IpctUtil::get_string(old_val_port).c_str());
@@ -560,27 +586,27 @@ UpplReturnCode NotificationRequest::ProcessPortEvents(
  * operation-type of operation UNC_OP_CREATE/UPDATE/DELETE
  * @return   :Success or associated error code
  **/
-UpplReturnCode NotificationRequest::ProcessSwitchEvents(
+UncRespCode NotificationRequest::ProcessSwitchEvents(
     ClientSession *sess,
     uint32_t data_type,
     uint32_t operation) {
   // Check for MergeImportRunning Lock
   ScopedReadWriteLock eventDoneLock(
       PhysicalLayer::get_events_done_lock_(), PFC_FALSE);  // read lock
-  UpplReturnCode db_ret = UPPL_RC_SUCCESS;
+  UncRespCode db_ret = UNC_RC_SUCCESS;
   OPEN_DB_CONNECTION(unc::uppl::kOdbcmConnReadWriteSb, db_ret);
-  if (db_ret != UPPL_RC_SUCCESS) {
+  if (db_ret != UNC_RC_SUCCESS) {
     pfc_log_error("Error in opening DB connection");
-    return UPPL_RC_ERR_DB_ACCESS;
+    return UNC_UPPL_RC_ERR_DB_ACCESS;
   }
-  UpplReturnCode status = UPPL_RC_SUCCESS;
+  UncRespCode status = UNC_RC_SUCCESS;
   /*process switch add, switch update and switch delete events*/
   key_switch_t switch_key;
   memset(&switch_key, '\0', sizeof(key_switch_t));
   int read_err = sess->getResponse((uint32_t)5, switch_key);
   if (read_err != 0) {
     pfc_log_error("Key not received for switch");
-    return UPPL_RC_ERR_BAD_REQUEST;
+    return UNC_UPPL_RC_ERR_BAD_REQUEST;
   }
   pfc_log_info("%s", IpctUtil::get_string(switch_key).c_str());
   string controller_name = reinterpret_cast<char *>
@@ -593,7 +619,7 @@ UpplReturnCode NotificationRequest::ProcessSwitchEvents(
     read_err = sess->getResponse((uint32_t)6, new_val_switch);
     if (read_err != 0) {
       pfc_log_error("New value not received for switch");
-      return UPPL_RC_ERR_BAD_REQUEST;
+      return UNC_UPPL_RC_ERR_BAD_REQUEST;
     }
     pfc_log_info("NEWVAL: %s",
                  IpctUtil::get_string(new_val_switch).c_str());
@@ -602,7 +628,7 @@ UpplReturnCode NotificationRequest::ProcessSwitchEvents(
     read_err = sess->getResponse((uint32_t)7, old_val_switch);
     if (read_err != 0) {
       pfc_log_error("Old value not received for switch");
-      return UPPL_RC_ERR_BAD_REQUEST;
+      return UNC_UPPL_RC_ERR_BAD_REQUEST;
     }
     pfc_log_info("OLDVAL: %s",
                  IpctUtil::get_string(old_val_switch).c_str());
@@ -624,27 +650,27 @@ UpplReturnCode NotificationRequest::ProcessSwitchEvents(
  * operation-type of operation UNC_OP_CREATE/UPDATE/DELETE
  * @return   :Success or associated error code
  **/
-UpplReturnCode NotificationRequest:: ProcessLinkEvents(
+UncRespCode NotificationRequest:: ProcessLinkEvents(
     ClientSession *sess,
     uint32_t data_type,
     uint32_t operation) {
   // Check for MergeImportRunning Lock
   ScopedReadWriteLock eventDoneLock(
       PhysicalLayer::get_events_done_lock_(), PFC_FALSE);  // read lock
-  UpplReturnCode db_ret = UPPL_RC_SUCCESS;
+  UncRespCode db_ret = UNC_RC_SUCCESS;
   OPEN_DB_CONNECTION(unc::uppl::kOdbcmConnReadWriteSb, db_ret);
-  if (db_ret != UPPL_RC_SUCCESS) {
+  if (db_ret != UNC_RC_SUCCESS) {
     pfc_log_error("Error in opening DB connection");
-    return UPPL_RC_ERR_DB_ACCESS;
+    return UNC_UPPL_RC_ERR_DB_ACCESS;
   }
-  UpplReturnCode status = UPPL_RC_SUCCESS;
+  UncRespCode status = UNC_RC_SUCCESS;
   /*process link add, link update and link delete events*/
   key_link_t key_link;
   memset(&key_link, '\0', sizeof(key_link_t));
   int read_err = sess->getResponse((uint32_t)5, key_link);
   if (read_err != 0) {
     pfc_log_error("Key not received for link");
-    return UPPL_RC_ERR_BAD_REQUEST;
+    return UNC_UPPL_RC_ERR_BAD_REQUEST;
   }
   pfc_log_info("%s", IpctUtil::get_string(key_link).c_str());
   string controller_name = reinterpret_cast<char *>
@@ -655,7 +681,7 @@ UpplReturnCode NotificationRequest:: ProcessLinkEvents(
     read_err = sess->getResponse((uint32_t)6, new_val_link);
     if (read_err != 0) {
       pfc_log_error("New value not received for link");
-      return UPPL_RC_ERR_BAD_REQUEST;
+      return UNC_UPPL_RC_ERR_BAD_REQUEST;
     }
     pfc_log_info("NEWVAL: %s",
                  IpctUtil::get_string(new_val_link).c_str());
@@ -664,7 +690,7 @@ UpplReturnCode NotificationRequest:: ProcessLinkEvents(
     read_err = sess->getResponse((uint32_t)7, old_val_link);
     if (read_err != 0) {
       pfc_log_error("Old value not received for link");
-      return UPPL_RC_ERR_BAD_REQUEST;
+      return UNC_UPPL_RC_ERR_BAD_REQUEST;
     }
     pfc_log_info("OLDVAL: %s",
                  IpctUtil::get_string(old_val_link).c_str());
@@ -685,11 +711,11 @@ UpplReturnCode NotificationRequest:: ProcessLinkEvents(
  * operation-type of operation UNC_OP_CREATE/UPDATE/DELETE
  * @return   :Success or associated error code
  **/
-UpplReturnCode NotificationRequest:: ProcessControllerEvents(
+UncRespCode NotificationRequest:: ProcessControllerEvents(
     ClientSession *sess,
     uint32_t data_type,
     uint32_t operation) {
-  UpplReturnCode status = UPPL_RC_SUCCESS;
+  UncRespCode status = UNC_RC_SUCCESS;
   /*process controller add, controller update and controller delete events*/
   key_ctr_t key_ctr;
   memset(&key_ctr, '\0', sizeof(key_ctr_t));
@@ -697,29 +723,29 @@ UpplReturnCode NotificationRequest:: ProcessControllerEvents(
   int read_err = sess->getResponse((uint32_t)5, key_ctr);
   if (read_err != 0) {
     pfc_log_error("Key not received for controller");
-    return UPPL_RC_ERR_BAD_REQUEST;
+    return UNC_UPPL_RC_ERR_BAD_REQUEST;
   }
   pfc_log_info("%s", IpctUtil::get_string(key_ctr).c_str());
   Kt_Controller NotifyController;
   read_err = sess->getResponse((uint32_t)6, new_val_ctr);
   if (read_err != 0) {
     pfc_log_error("New value not received for controller");
-    return UPPL_RC_ERR_BAD_REQUEST;
+    return UNC_UPPL_RC_ERR_BAD_REQUEST;
   }
   pfc_log_info("NEWVAL: %s", IpctUtil::get_string(new_val_ctr).c_str());
   read_err = sess->getResponse((uint32_t)7, old_val_ctr);
   if (read_err != 0) {
     pfc_log_error("Old value not received for controller");
-    return UPPL_RC_ERR_BAD_REQUEST;
+    return UNC_UPPL_RC_ERR_BAD_REQUEST;
   }
   pfc_log_info("OLDVAL: %s", IpctUtil::get_string(old_val_ctr).c_str());
   pfc_bool_t is_events_done = PFC_FALSE;
   uint8_t driver_oper_status = new_val_ctr.oper_status;
-  UpplReturnCode db_ret = UPPL_RC_SUCCESS;
+  UncRespCode db_ret = UNC_RC_SUCCESS;
   OPEN_DB_CONNECTION(unc::uppl::kOdbcmConnReadWriteSb, db_ret);
-  if (db_ret != UPPL_RC_SUCCESS) {
+  if (db_ret != UNC_RC_SUCCESS) {
     pfc_log_error("Error in opening DB connection");
-    return UPPL_RC_ERR_DB_ACCESS;
+    return UNC_UPPL_RC_ERR_DB_ACCESS;
   }
   if (driver_oper_status == CONTROLLER_EVENTS_DONE) {
     // CONTROLLER_OPER_UP can be set
@@ -737,22 +763,22 @@ UpplReturnCode NotificationRequest:: ProcessControllerEvents(
     if (is_controller_in_audit == PFC_TRUE) {
       pfc_log_debug("Calling MergeAuditDbToRunning");
       // To cancel the already running timer in Audit
-      UpplReturnCode cancel_ret = ipc_mgr->CancelTimer(controller_name);
-      if (cancel_ret != UPPL_RC_SUCCESS) {
+      UncRespCode cancel_ret = ipc_mgr->CancelTimer(controller_name);
+      if (cancel_ret != UNC_RC_SUCCESS) {
         pfc_log_info("Failure in cancelling timer for controller %s",
                      controller_name.c_str());
       }
       AuditRequest audit_req;
-      UpplReturnCode merge_auditdb =
+      UncRespCode merge_auditdb =
           audit_req.MergeAuditDbToRunning(&db_conn, reinterpret_cast<char *>
       (key_ctr.controller_name));
-      if (merge_auditdb != UPPL_RC_SUCCESS) {
+      if (merge_auditdb != UNC_RC_SUCCESS) {
         pfc_log_info("Merge of audit and running db failed");
       }
     } else {
       pfc_log_info("End of events received non-audit controller %s",
                    controller_name.c_str());
-      return UPPL_RC_ERR_BAD_REQUEST;
+      return UNC_UPPL_RC_ERR_BAD_REQUEST;
     }
     is_events_done = PFC_TRUE;
   }
@@ -777,27 +803,27 @@ UpplReturnCode NotificationRequest:: ProcessControllerEvents(
  * operation-type of operation UNC_OP_CREATE/UPDATE/DELETE
  * @return   :Success or associated error code
  **/
-UpplReturnCode NotificationRequest:: ProcessDomainEvents(
+UncRespCode NotificationRequest:: ProcessDomainEvents(
     ClientSession *sess,
     uint32_t data_type,
     uint32_t operation) {
   // Check for MergeImportRunning Lock
   ScopedReadWriteLock eventDoneLock(
       PhysicalLayer::get_events_done_lock_(), PFC_FALSE);  // read lock
-  UpplReturnCode db_ret = UPPL_RC_SUCCESS;
+  UncRespCode db_ret = UNC_RC_SUCCESS;
   OPEN_DB_CONNECTION(unc::uppl::kOdbcmConnReadWriteSb, db_ret);
-  if (db_ret != UPPL_RC_SUCCESS) {
+  if (db_ret != UNC_RC_SUCCESS) {
     pfc_log_error("Error in opening DB connection");
-    return UPPL_RC_ERR_DB_ACCESS;
+    return UNC_UPPL_RC_ERR_DB_ACCESS;
   }
-  UpplReturnCode status = UPPL_RC_SUCCESS;
+  UncRespCode status = UNC_RC_SUCCESS;
   /*process domain add, domain update and domain delete events*/
   key_ctr_domain_t key_ctr_domain;
   memset(&key_ctr_domain, '\0', sizeof(key_ctr_domain_t));
   int read_err = sess->getResponse((uint32_t)5, key_ctr_domain);
   if (read_err != 0) {
     pfc_log_error("Key not received for controller");
-    return UPPL_RC_ERR_BAD_REQUEST;
+    return UNC_UPPL_RC_ERR_BAD_REQUEST;
   }
   pfc_log_info("%s", IpctUtil::get_string(key_ctr_domain).c_str());
   string controller_name = reinterpret_cast<char *>
@@ -808,7 +834,7 @@ UpplReturnCode NotificationRequest:: ProcessDomainEvents(
     read_err = sess->getResponse((uint32_t)6, new_val_ctr_domain_t);
     if (read_err != 0) {
       pfc_log_error("New value not received for ctr domain");
-      return UPPL_RC_ERR_BAD_REQUEST;
+      return UNC_UPPL_RC_ERR_BAD_REQUEST;
     }
     pfc_log_info("NEWVAL: %s",
                  IpctUtil::get_string(new_val_ctr_domain_t).c_str());
@@ -829,26 +855,26 @@ UpplReturnCode NotificationRequest:: ProcessDomainEvents(
  * operation-type of operation UNC_OP_CREATE/UPDATE/DELETE
  * @return   :Success or associated error code
  **/
-UpplReturnCode NotificationRequest:: ProcessLogicalPortEvents(
+UncRespCode NotificationRequest:: ProcessLogicalPortEvents(
     ClientSession *sess,
     uint32_t data_type,
     uint32_t operation) {
   // Check for MergeImportRunning Lock
   ScopedReadWriteLock eventDoneLock(
       PhysicalLayer::get_events_done_lock_(), PFC_FALSE);  // read lock
-  UpplReturnCode db_ret = UPPL_RC_SUCCESS;
+  UncRespCode db_ret = UNC_RC_SUCCESS;
   OPEN_DB_CONNECTION(unc::uppl::kOdbcmConnReadWriteSb, db_ret);
-  if (db_ret != UPPL_RC_SUCCESS) {
+  if (db_ret != UNC_RC_SUCCESS) {
     pfc_log_error("Error in opening DB connection");
-    return UPPL_RC_ERR_DB_ACCESS;
+    return UNC_UPPL_RC_ERR_DB_ACCESS;
   }
-  UpplReturnCode status = UPPL_RC_SUCCESS;
+  UncRespCode status = UNC_RC_SUCCESS;
   key_logical_port_t key_logical_port;
   memset(&key_logical_port, '\0', sizeof(key_logical_port_t));
   int read_err = sess->getResponse((uint32_t)5, key_logical_port);
   if (read_err != 0) {
     pfc_log_error("Key not received for logical port");
-    return UPPL_RC_ERR_BAD_REQUEST;
+    return UNC_UPPL_RC_ERR_BAD_REQUEST;
   }
   pfc_log_info("%s", IpctUtil::get_string(key_logical_port).c_str());
   string controller_name = reinterpret_cast<char *>
@@ -859,7 +885,7 @@ UpplReturnCode NotificationRequest:: ProcessLogicalPortEvents(
     read_err = sess->getResponse((uint32_t)6, new_val_logical_port_t);
     if (read_err != 0) {
       pfc_log_error("New value not received for logical port");
-      return UPPL_RC_ERR_BAD_REQUEST;
+      return UNC_UPPL_RC_ERR_BAD_REQUEST;
     }
     pfc_log_info("NEWVAL: %s",
                  IpctUtil::get_string(new_val_logical_port_t).c_str());
@@ -881,26 +907,26 @@ UpplReturnCode NotificationRequest:: ProcessLogicalPortEvents(
  * operation-type of operation UNC_OP_CREATE/UPDATE/DELETE
  * @return   :Success or associated error code
  **/
-UpplReturnCode NotificationRequest:: ProcessLogicalMemeberPortEvents(
+UncRespCode NotificationRequest:: ProcessLogicalMemeberPortEvents(
     ClientSession *sess,
     uint32_t data_type,
     uint32_t operation) {
   // Check for MergeImportRunning Lock
   ScopedReadWriteLock eventDoneLock(
       PhysicalLayer::get_events_done_lock_(), PFC_FALSE);  // read lock
-  UpplReturnCode db_ret = UPPL_RC_SUCCESS;
+  UncRespCode db_ret = UNC_RC_SUCCESS;
   OPEN_DB_CONNECTION(unc::uppl::kOdbcmConnReadWriteSb, db_ret);
-  if (db_ret != UPPL_RC_SUCCESS) {
+  if (db_ret != UNC_RC_SUCCESS) {
     pfc_log_error("Error in opening DB connection");
-    return UPPL_RC_ERR_DB_ACCESS;
+    return UNC_UPPL_RC_ERR_DB_ACCESS;
   }
-  UpplReturnCode status = UPPL_RC_SUCCESS;
+  UncRespCode status = UNC_RC_SUCCESS;
   key_logical_member_port_t logical_member_port_key;
   memset(&logical_member_port_key, '\0', sizeof(key_logical_member_port_t));
   int read_err = sess->getResponse((uint32_t)5, logical_member_port_key);
   if (read_err != 0) {
     pfc_log_error("Key not received for logical port");
-    return UPPL_RC_ERR_BAD_REQUEST;
+    return UNC_UPPL_RC_ERR_BAD_REQUEST;
   }
   pfc_log_info("%s", IpctUtil::get_string(logical_member_port_key).c_str());
   string controller_name =
@@ -911,7 +937,7 @@ UpplReturnCode NotificationRequest:: ProcessLogicalMemeberPortEvents(
   Kt_State_Base *NotifyLogicalMemberPort = new Kt_LogicalMemberPort();
   if (NotifyLogicalMemberPort == NULL) {
     pfc_log_error("Memory not allocated for NotifyLogicalMemberPort_\n");
-    return UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+    return UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
   }
   status = NotifyLogicalMemberPort->HandleDriverEvents(
       &db_conn, reinterpret_cast<void*>(&logical_member_port_key),
index 6586c4ff67cb0ce830282d451313d91d58ac9561..a53199168ea882c36741e5468c95cdd5e6de60f9 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -16,6 +16,8 @@
 #include "itc_kt_base.hh"
 #include "itc_kt_root.hh"
 #include "itc_kt_controller.hh"
+#include "itc_kt_dataflow.hh"
+#include "itc_kt_ctr_dataflow.hh"
 #include "itc_kt_switch.hh"
 #include "itc_read_request.hh"
 #include "itc_kt_boundary.hh"
@@ -54,17 +56,28 @@ ReadRequest::~ReadRequest() {
  *                the read operation
  * @param[in]   : session - Object of ServerSession where the request
  *                argument present
- * @return      : UPPL_RC_SUCCESS if processing the Read request is successful
- *                or UPPL_RC_ERR_* in case of failure
+ * @return      : UNC_RC_SUCCESS if processing the Read request is successful
+ *                or UNC_UPPL_RC_ERR_* in case of failure
  * */
-UpplReturnCode ReadRequest::ProcessReq(ServerSession &session,
+UncRespCode ReadRequest::ProcessReq(ServerSession &session,
                                        physical_request_header &obj_req_hdr) {
+  PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
+  PhysicalCore* physical_core = physical_layer->get_physical_core();
+  if (physical_core->system_transit_state_ == true) {
+    pfc_log_error("UNC is in state transit mode ");
+    return UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+  }
+
   Kt_Base *KtObj = NULL;
-  UpplReturnCode resp_code = UPPL_RC_SUCCESS, return_code = UPPL_RC_SUCCESS;
+  UncRespCode resp_code = UNC_RC_SUCCESS, return_code = UNC_RC_SUCCESS;
   physical_response_header rsh;
   PhyUtil::getRespHeaderFromReqHeader(obj_req_hdr, rsh);
-  OPEN_DB_CONNECTION(unc::uppl::kOdbcmConnReadOnly, resp_code);
-  if (resp_code != UPPL_RC_SUCCESS) {
+  OdbcmConnectionHandler *db_conn = NULL;
+  OPEN_DB_CONNECTION_WITH_POOL(unc::uppl::kOdbcmConnReadOnly,
+                               resp_code, db_conn,
+                               obj_req_hdr.client_sess_id,
+                               obj_req_hdr.config_id);
+  if (resp_code != UNC_RC_SUCCESS) {
     pfc_log_error("DB Connection failure for operation %d",
                   obj_req_hdr.operation);
     int err = PhyUtil::sessOutRespHeader(session, rsh);
@@ -82,30 +95,58 @@ UpplReturnCode ReadRequest::ProcessReq(ServerSession &session,
           obj_req_hdr.operation == UNC_OP_READ_SIBLING ||
           obj_req_hdr.operation == UNC_OP_READ_SIBLING_BEGIN ||
           obj_req_hdr.operation == UNC_OP_READ_SIBLING_COUNT) {
-        rsh.result_code = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+        rsh.result_code = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
       }
       KtObj = new Kt_Root();
       if (KtObj  == NULL) {
         pfc_log_error("Memory not allocated for Kt_Root");
-        return UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+        return UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
       }
       memset(&key_root_obj, 0, sizeof(key_root_t));
       // The root key in request is not considered
       key_struct = static_cast<void*> (&key_root_obj);
       break;
+
+    case UNC_KT_DATAFLOW:
+      if ((obj_req_hdr.operation != UNC_OP_READ) ||
+          (obj_req_hdr.data_type != UNC_DT_STATE)) {
+        pfc_log_error("KtDataflow supports only Read Operation");
+        rsh.result_code = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+      }
+      GetDataflowStructure(session, key_struct, rsh);
+      KtObj = new Kt_Dataflow();
+      if (KtObj  == NULL) {
+        pfc_log_error("Memory not allocated for Kt_Dataflow");
+        return UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+      }
+      break;
+
     case  UNC_KT_CONTROLLER:
       KtObj = new Kt_Controller();
       if (KtObj  == NULL) {
         pfc_log_error("Memory not allocated for Kt_Controller");
-        return UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+        return UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
       }
       GetControllerStructure(session, key_struct, val_struct, rsh);
       break;
+    case UNC_KT_CTR_DATAFLOW:
+      if ((obj_req_hdr.operation != UNC_OP_READ) ||
+          (obj_req_hdr.data_type != UNC_DT_STATE)) {
+        pfc_log_error("Kt_Ctr_Dataflow supports only Read Operation");
+        rsh.result_code = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+      }
+      GetCtrDataflowStructure(session, key_struct, rsh);
+      KtObj = new Kt_Ctr_Dataflow();
+      if (KtObj  == NULL) {
+        pfc_log_error("Memory not allocated for Kt_Ctr_Dataflow");
+        return UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+      }
+      break;
     case UNC_KT_CTR_DOMAIN:
       KtObj = new Kt_Ctr_Domain();
       if (KtObj  == NULL) {
         pfc_log_error("Memory not allocated for Kt_Ctr_Domain");
-        return UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+        return UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
       }
       GetDomainStructure(session, key_struct, val_struct, rsh);
       break;
@@ -113,7 +154,7 @@ UpplReturnCode ReadRequest::ProcessReq(ServerSession &session,
       KtObj = new Kt_LogicalPort();
       if (KtObj  == NULL) {
         pfc_log_error("Memory not allocated for Kt_LogicalPort");
-        return UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+        return UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
       }
       GetLogicalPortStructure(session, key_struct, val_struct, rsh);
       break;
@@ -121,7 +162,7 @@ UpplReturnCode ReadRequest::ProcessReq(ServerSession &session,
       KtObj = new Kt_LogicalMemberPort();
       if (KtObj  == NULL) {
         pfc_log_error("Memory not allocated for Kt_LogicalMemberPort");
-        return UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+        return UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
       }
       GetLogicalMemberPortStructure(session, key_struct, val_struct, rsh);
       break;
@@ -129,7 +170,7 @@ UpplReturnCode ReadRequest::ProcessReq(ServerSession &session,
       KtObj = new Kt_Switch();
       if (KtObj  == NULL) {
         pfc_log_error("Memory not allocated for Kt_Switch");
-        return UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+        return UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
       }
       GetSwitchStructure(session, key_struct, val_struct, rsh);
       break;
@@ -137,7 +178,7 @@ UpplReturnCode ReadRequest::ProcessReq(ServerSession &session,
       KtObj = new Kt_Port();
       if (KtObj  == NULL) {
         pfc_log_error("Memory not allocated for Kt_Port");
-        return UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+        return UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
       }
       GetPortStructure(session, key_struct, val_struct, rsh);
       break;
@@ -145,7 +186,7 @@ UpplReturnCode ReadRequest::ProcessReq(ServerSession &session,
       KtObj = new Kt_Link();
       if (KtObj  == NULL) {
         pfc_log_error("Memory not allocated for Kt_Link");
-        return UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+        return UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
       }
       GetLinkStructure(session, key_struct, val_struct, rsh);
       break;
@@ -153,15 +194,15 @@ UpplReturnCode ReadRequest::ProcessReq(ServerSession &session,
       KtObj = new Kt_Boundary();
       if (KtObj  == NULL) {
         pfc_log_error("Memory not allocated for Kt_Boundary");
-        return UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+        return UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
       }
       GetBoundaryStructure(session, key_struct, val_struct, rsh);
       break;
     default:
-      rsh.result_code = UPPL_RC_ERR_KEYTYPE_NOT_SUPPORTED;
+      rsh.result_code = UNC_UPPL_RC_ERR_KEYTYPE_NOT_SUPPORTED;
       break;
   }
-  if (rsh.result_code != UPPL_RC_SUCCESS) {
+  if (rsh.result_code != UNC_RC_SUCCESS) {
     if (KtObj != NULL) {
       delete KtObj;
       KtObj = NULL;
@@ -169,9 +210,9 @@ UpplReturnCode ReadRequest::ProcessReq(ServerSession &session,
     pfc_log_info("Read service failed with error %d", rsh.result_code);
     int err = PhyUtil::sessOutRespHeader(session, rsh);
     if (err != 0) {
-      return_code = UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return_code = UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     } else {
-      return_code = UPPL_RC_SUCCESS;
+      return_code = UNC_RC_SUCCESS;
     }
     return return_code;
   }
@@ -183,7 +224,7 @@ UpplReturnCode ReadRequest::ProcessReq(ServerSession &session,
     case UNC_OP_READ_SIBLING:
     case UNC_OP_READ_SIBLING_COUNT:
       // form validate request for READ operation
-      resp_code = KtObj->ValidateRequest(&db_conn,
+      resp_code = KtObj->ValidateRequest(db_conn,
                                          key_struct,
                                          NULL,
                                          obj_req_hdr.operation,
@@ -191,10 +232,10 @@ UpplReturnCode ReadRequest::ProcessReq(ServerSession &session,
                                          obj_req_hdr.key_type);
       break;
     default:
-      resp_code = UPPL_RC_ERR_OPERATION_NOT_SUPPORTED;
+      resp_code = UNC_UPPL_RC_ERR_OPERATION_NOT_SUPPORTED;
       break;
   }
-  if (resp_code != UPPL_RC_SUCCESS) {
+  if (resp_code != UNC_RC_SUCCESS) {
     // validation failed call add out put
     rsh.result_code = resp_code;
     pfc_log_error("read validation failed");
@@ -204,12 +245,12 @@ UpplReturnCode ReadRequest::ProcessReq(ServerSession &session,
                                              &session, key_struct);
     }
     if (err != 0) {
-      return_code = UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return_code = UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     } else {
-      return_code = UPPL_RC_SUCCESS;
+      return_code = UNC_RC_SUCCESS;
     }
   } else {
-    return_code = ProcessReadOperation(&db_conn, session, KtObj, obj_req_hdr,
+    return_code = ProcessReadOperation(db_conn, session, KtObj, obj_req_hdr,
                                        key_struct, val_struct,
                                        obj_req_hdr.operation);
   }
@@ -232,10 +273,10 @@ UpplReturnCode ReadRequest::ProcessReq(ServerSession &session,
  *                KtObj - Object of the base class to invoke appropriate
  *                Kt class
  *                obj_req_hdr - object of physical request header
- * @return      : UPPL_RC_SUCCESS if processing the Read request is successful
- *                or UPPL_RC_ERR_* in case of failure
+ * @return      : UNC_RC_SUCCESS if processing the Read request is successful
+ *                or UNC_UPPL_RC_ERR_* in case of failure
  * */
-UpplReturnCode ReadRequest::ProcessReadOperation(
+UncRespCode ReadRequest::ProcessReadOperation(
     OdbcmConnectionHandler *db_conn,
     ServerSession &session,
     Kt_Base *KtObj,
@@ -243,7 +284,7 @@ UpplReturnCode ReadRequest::ProcessReadOperation(
     void* key_struct,
     void* val_struct,
     uint32_t operation_type) {
-  UpplReturnCode resp_code = UPPL_RC_SUCCESS, return_code = UPPL_RC_SUCCESS;
+  UncRespCode resp_code = UNC_RC_SUCCESS, return_code = UNC_RC_SUCCESS;
   pfc_bool_t response_sent = PFC_FALSE;
   uint32_t max_rep_ct = obj_req_hdr.max_rep_count;
   switch (operation_type) {
@@ -263,10 +304,11 @@ UpplReturnCode ReadRequest::ProcessReadOperation(
     case UNC_OP_READ_NEXT:
       // Invoke Read Next operation for respective KT class
       resp_code = KtObj->ReadNext(db_conn,
+                                  obj_req_hdr.client_sess_id,
                                   key_struct,
                                   obj_req_hdr.data_type,
                                   this);
-      if (resp_code == UPPL_RC_SUCCESS) {
+      if (resp_code == UNC_RC_SUCCESS) {
         response_sent = PFC_TRUE;
         return_code = FrameReadBulkResponse(session,
                                             obj_req_hdr.client_sess_id,
@@ -292,7 +334,7 @@ UpplReturnCode ReadRequest::ProcessReadOperation(
                                   false,
                                   false,
                                   this);
-      if (resp_code == UPPL_RC_SUCCESS) {
+      if (resp_code == UNC_RC_SUCCESS) {
         response_sent = PFC_TRUE;
         return_code = FrameReadBulkResponse(session,
                                             obj_req_hdr.client_sess_id,
@@ -347,7 +389,7 @@ UpplReturnCode ReadRequest::ProcessReadOperation(
       response_sent = PFC_TRUE;
       break;
     default:
-      resp_code = UPPL_RC_ERR_OPERATION_NOT_SUPPORTED;
+      resp_code = UNC_UPPL_RC_ERR_OPERATION_NOT_SUPPORTED;
       break;
   }
   if (!response_sent) {
@@ -359,9 +401,9 @@ UpplReturnCode ReadRequest::ProcessReadOperation(
     err |= KtObj->AddKeyStructuretoSession(obj_req_hdr.key_type, &session,
                                            key_struct);
     if (err != 0) {
-      return_code = UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return_code = UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     } else {
-      return_code = UPPL_RC_SUCCESS;
+      return_code = UNC_RC_SUCCESS;
     }
   }
   return return_code;
@@ -378,12 +420,12 @@ UpplReturnCode ReadRequest::ProcessReadOperation(
  *                data_type - UNC_DT_* specifies the database type
  *                option1,option2 - specifies any additional
  *                condition for read operation
- * @return      : UPPL_RC_SUCCESS is returned when the response is added
+ * @return      : UNC_RC_SUCCESS is returned when the response is added
  *                to ipc session successfully.
- *                UPPL_RC_ERR_* is returned when ipc response could not
+ *                UNC_UPPL_RC_ERR_* is returned when ipc response could not
  *                be added to sess.
  * */
-UpplReturnCode ReadRequest::FrameReadBulkResponse(ServerSession &session,
+UncRespCode ReadRequest::FrameReadBulkResponse(ServerSession &session,
                                                   uint32_t session_id,
                                                   uint32_t config_id,
                                                   uint32_t operation,
@@ -407,7 +449,7 @@ UpplReturnCode ReadRequest::FrameReadBulkResponse(ServerSession &session,
   rsh.max_rep_count = max_rep_ct;
   if (vect_bulk_read_buffer.empty()) {
     pfc_log_debug("No instances available to read");
-    rsh.result_code = UPPL_RC_ERR_NO_SUCH_INSTANCE;
+    rsh.result_code = UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE;
   }
   int err = PhyUtil::sessOutRespHeader(session, rsh);
   iter = vect_bulk_read_buffer.begin();
@@ -449,10 +491,10 @@ UpplReturnCode ReadRequest::FrameReadBulkResponse(ServerSession &session,
     }
     if (err != 0) {
       pfc_log_error("Server session addOutput failed");
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**GetControllerStructure
@@ -485,6 +527,46 @@ void ReadRequest::GetControllerStructure(ServerSession &session,
   return;
 }
 
+/**GetDataflowStructure
+ * @Description : This function is to get the value structure of the Dataflow
+ * @param[in]   : session - Object of ServerSession where the request
+ *                argument present 
+ *                key_struct - the key for the kt_Dataflow instance
+ *                val_struct - the value structure for the ktDataflow
+ *                &rsh - object of the physical response header
+ * @return      : void 
+ * */
+void ReadRequest::GetDataflowStructure(ServerSession &session,
+                                         void * &key_struct,
+                                         physical_response_header &rsh) {
+  // populate key_ctr structure
+  memset(&key_dataflow_obj, 0, sizeof(key_dataflow_t));
+  rsh.result_code = session.getArgument(8, key_dataflow_obj);
+  pfc_log_info("%s", DataflowCmn::get_string(key_dataflow_obj).c_str());
+  key_struct = static_cast<void*> (&key_dataflow_obj);
+  return;
+}
+
+/**GetCtrDataflowStructure
+ * @Description : This function is to get the value structure of the CtrDataflow
+ * @param[in]   : session - Object of ServerSession where the request
+ *                argument present 
+ *                key_struct - the key for the kt_Ctr_Dataflow instance
+ *                val_struct - the value structure for the ktCtrDataflow
+ *                &rsh - object of the physical response header
+ * @return      : void 
+ * */
+void ReadRequest::GetCtrDataflowStructure(ServerSession &session,
+                                         void * &key_struct,
+                                         physical_response_header &rsh) {
+  // populate key_ctr structure
+  memset(&key_ctr_dataflow_obj, 0, sizeof(key_ctr_dataflow_t));
+  rsh.result_code = session.getArgument(8, key_ctr_dataflow_obj);
+  key_struct = static_cast<void*> (&key_ctr_dataflow_obj);
+  pfc_log_info("%s", DataflowCmn::get_string(key_ctr_dataflow_obj).c_str());
+  return;
+}
+
 /**GetDomainStructure
  * @Description : This function is to get the value structure of the domain
  * @param[in]   : session - Object of ServerSession where the request
index cdb6bdb43c4bd7e2ef7b598b958e3f18a43d129f..7bcce9da0e74ef3326a29f8e6bb08651840472d0 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -49,10 +49,10 @@ SystemStateChangeRequest::~SystemStateChangeRequest() {
  *                Gets the controller list from database and send the DELETE
  *                request to driver
  * @param[in]   : None
- * @return      : UPPL_RC_SUCCESS if the system state is changed to standby
- *                or UPPL_RC_ERR_* if the switchover fails
+ * @return      : UNC_RC_SUCCESS if the system state is changed to standby
+ *                or UNC_UPPL_RC_ERR_* if the switchover fails
  * */
-UpplReturnCode SystemStateChangeRequest::SystemStateChangeToStandBy(
+UncRespCode SystemStateChangeRequest::SystemStateChangeToStandBy(
     OdbcmConnectionHandler *db_conn) {
   pfc_log_info("Start SystemStateChangeToStandBy");
   Kt_Controller kt_ctr;
@@ -60,24 +60,24 @@ UpplReturnCode SystemStateChangeRequest::SystemStateChangeToStandBy(
   key_ctr_t key_ctr_obj;
   memset(&key_ctr_obj, 0, sizeof(key_ctr_obj));
   vect_ctr_key.push_back(reinterpret_cast<void *>(&key_ctr_obj));
-  UpplReturnCode read_status = kt_ctr.ReadInternal(db_conn, vect_ctr_key,
+  UncRespCode read_status = kt_ctr.ReadInternal(db_conn, vect_ctr_key,
                                                    vect_ctr_val,
                                                    UNC_DT_RUNNING,
                                                    UNC_OP_READ_SIBLING_BEGIN);
-  if (read_status != UPPL_RC_SUCCESS) {
+  if (read_status != UNC_RC_SUCCESS) {
     pfc_log_info("read from running db is %d", read_status);
     // Check for entries in candidate db
     return read_status;
   }
-  UpplReturnCode err = UPPL_RC_SUCCESS;
+  UncRespCode err = UNC_RC_SUCCESS;
   IPCClientDriverHandler pfc_drv_handler(UNC_CT_PFC, err);
-  if (err != UPPL_RC_SUCCESS) {
+  if (err != UNC_RC_SUCCESS) {
     pfc_log_error("Cannot open session to PFC driver");
     return err;
   }
-  err = UPPL_RC_SUCCESS;
+  err = UNC_RC_SUCCESS;
   IPCClientDriverHandler vnp_drv_handler(UNC_CT_VNP, err);
-  if (err != UPPL_RC_SUCCESS) {
+  if (err != UNC_RC_SUCCESS) {
     pfc_log_error("Cannot open session to VNP driver");
     return err;
   }
@@ -117,7 +117,7 @@ UpplReturnCode SystemStateChangeRequest::SystemStateChangeToStandBy(
         UNC_DT_RUNNING, UNC_KT_CONTROLLER};
     int err = PhyUtil::sessOutDriverReqHeader(*cli_session, rqh);
     err |= cli_session->addOutput(*ctr_key);
-    if (err != UPPL_RC_SUCCESS) {
+    if (err != UNC_RC_SUCCESS) {
       pfc_log_info("Could not open driver ipc session");
       // Release memory allocated for key struct
       delete ctr_key;
@@ -128,7 +128,7 @@ UpplReturnCode SystemStateChangeRequest::SystemStateChangeToStandBy(
       continue;
     }
     // Send the request to driver
-    UpplReturnCode driver_response = UPPL_RC_SUCCESS;
+    UncRespCode driver_response = UNC_RC_SUCCESS;
     driver_response_header rsp;
     if (controller_type == UNC_CT_PFC) {
       driver_response = pfc_drv_handler.SendReqAndGetResp(rsp);
@@ -138,7 +138,7 @@ UpplReturnCode SystemStateChangeRequest::SystemStateChangeToStandBy(
     }
 
     pfc_log_debug("driver_response is  %d", driver_response);
-    if (driver_response != UPPL_RC_SUCCESS) {
+    if (driver_response != UNC_RC_SUCCESS) {
       pfc_log_info(
           "Controller disconnect request failed at "
           "driver with error %d", driver_response);
@@ -153,8 +153,11 @@ UpplReturnCode SystemStateChangeRequest::SystemStateChangeToStandBy(
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
   PhysicalCore* physical_core = physical_layer->get_physical_core();
   physical_core->set_system_state(UPPL_SYSTEM_ST_STANDBY);
+  // To clear the internal alarm details holding map
+  physical_core->alarm_status_map_.clear();
+
   pfc_log_info("SystemStateChangeToStandby returned SUCCESS");
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**SystemStateChangeToActive
@@ -162,40 +165,48 @@ UpplReturnCode SystemStateChangeRequest::SystemStateChangeToStandBy(
  *                Gets the controller list from database and send the CREATE
  *                request to driver
  * @param[in]   : None
- * @return      : UPPL_RC_SUCCESS if the system state is changed to active
- *                or UPPL_RC_ERR_* if the switchover fails
+ * @return      : UNC_RC_SUCCESS if the system state is changed to active
+ *                or UNC_UPPL_RC_ERR_* if the switchover fails
  * */
-UpplReturnCode SystemStateChangeRequest::SystemStateChangeToActive(
+UncRespCode SystemStateChangeRequest::SystemStateChangeToActive(
     OdbcmConnectionHandler *db_conn) {
   pfc_log_info("Start SystemStateChangeToActive");
   /* Get all the controller entry from running db */
+  PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
+  PhysicalCore* physical_core = physical_layer->get_physical_core();
+  // To clear the internal alarm details holding map
+  physical_core->alarm_status_map_.clear();
   Kt_Controller kt_ctr;
   vector<void *> vect_ctr_key, vect_ctr_val;
   key_ctr_t key_ctr_obj;
   memset(&key_ctr_obj, '\0', sizeof(key_ctr_t));
   vect_ctr_key.push_back(reinterpret_cast<void *>(&key_ctr_obj));
-  UpplReturnCode read_status = kt_ctr.ReadInternal(db_conn, vect_ctr_key,
+  UncRespCode read_status = kt_ctr.ReadInternal(db_conn, vect_ctr_key,
                                                    vect_ctr_val,
                                                    UNC_DT_RUNNING,
                                                    UNC_OP_READ_SIBLING_BEGIN);
-  if (read_status != UPPL_RC_SUCCESS) {
+  if (read_status != UNC_RC_SUCCESS) {
     pfc_log_info("read from running db is %d", read_status);
     // Check for entries in candidate db
     return SendCandidateInfoToLogical(db_conn);
   }
 
-  UpplReturnCode err = UPPL_RC_SUCCESS;
+  UncRespCode err = UNC_RC_SUCCESS;
   IPCClientDriverHandler pfc_drv_handler(UNC_CT_PFC, err);
-  if (err != UPPL_RC_SUCCESS) {
+  if (err != UNC_RC_SUCCESS) {
     pfc_log_error("Cannot open session to PFC driver");
     return err;
   }
-  err = UPPL_RC_SUCCESS;
+  err = UNC_RC_SUCCESS;
   IPCClientDriverHandler vnp_drv_handler(UNC_CT_VNP, err);
-  if (err != UPPL_RC_SUCCESS) {
+  if (err != UNC_RC_SUCCESS) {
     pfc_log_error("Cannot open session to VNP driver");
     return err;
   }
+  pfc_log_debug("Setting system_transit_state_ to be true:%d",
+                physical_core->system_transit_state_);
+  physical_core->system_transit_state_ = true;  // for sending recovery
+                                          //  alarm to node manager.
   for (uint32_t ctrIndex = 0; ctrIndex < vect_ctr_key.size();
       ctrIndex ++) {
     key_ctr_t *ctr_key =
@@ -207,27 +218,37 @@ UpplReturnCode SystemStateChangeRequest::SystemStateChangeToActive(
     unc_keytype_ctrtype_t controller_type =
         (unc_keytype_ctrtype_t)
         (PhyUtil::uint8touint(obj_val_ctr->controller.type));
+    std::string alarm_category = "1";
+    std::string map_key = "";
+    map_key.append(controller_name).append("#").append(alarm_category);
+    physical_core->alarm_status_map_.insert(
+      std::pair<std::string, bool> (map_key, true));
+    alarm_category = "3";
+    map_key = "";
+    map_key.append(controller_name).append("#").append(alarm_category);
+    physical_core->alarm_status_map_.insert(
+      std::pair<std::string, bool> (map_key, true));
     if (controller_type != UNC_CT_UNKNOWN) {
       pfc_log_info("Set the oper Status of controller as down %s",
                    controller_name.c_str());
       uint8_t oper_status = UPPL_CONTROLLER_OPER_DOWN;
-      UpplReturnCode operation_status = kt_ctr.SetOperStatus(
+      UncRespCode operation_status = kt_ctr.SetOperStatus(
           db_conn,
           UNC_DT_RUNNING,
           vect_ctr_key[ctrIndex],
           oper_status);
-      if (operation_status != UPPL_RC_SUCCESS) {
+      if (operation_status != UNC_RC_SUCCESS) {
         pfc_log_error("Unable to set the oper status of controller as down");
       }
     }
     // Sending the Controller Update Information to Logical Layer
-    UpplReturnCode upll_result = kt_ctr.SendUpdatedControllerInfoToUPLL(
+    UncRespCode upll_result = kt_ctr.SendUpdatedControllerInfoToUPLL(
         UNC_DT_CANDIDATE,
         UNC_OP_CREATE,
         UNC_KT_CONTROLLER,
         vect_ctr_key[ctrIndex],
         reinterpret_cast<void*>(&obj_val_ctr->controller));
-    if (upll_result != UPPL_RC_SUCCESS) {
+    if (upll_result != UNC_RC_SUCCESS) {
       pfc_log_info("Failed to send the controller %s in candidate to UPLL",
                    controller_name.c_str());
     }
@@ -237,7 +258,7 @@ UpplReturnCode SystemStateChangeRequest::SystemStateChangeToActive(
         UNC_KT_CONTROLLER,
         vect_ctr_key[ctrIndex],
         reinterpret_cast<void*>(&obj_val_ctr->controller));
-    if (upll_result != UPPL_RC_SUCCESS) {
+    if (upll_result != UNC_RC_SUCCESS) {
       pfc_log_info("Failed to send the controller %s in running to UPLL",
                    controller_name.c_str());
     }
@@ -267,7 +288,7 @@ UpplReturnCode SystemStateChangeRequest::SystemStateChangeToActive(
     int err = PhyUtil::sessOutDriverReqHeader(*cli_session, rqh);
     err |= cli_session->addOutput(*ctr_key);
     err |= cli_session->addOutput(obj_val_ctr->controller);
-    if (err != UPPL_RC_SUCCESS) {
+    if (err != UNC_RC_SUCCESS) {
       pfc_log_error("Could not add objects to driver ipc session");
       // Release memory allocated for key struct
       delete ctr_key;
@@ -279,7 +300,7 @@ UpplReturnCode SystemStateChangeRequest::SystemStateChangeToActive(
     }
     pfc_log_info("Sending connect request to driver");
     // Send the request to driver
-    UpplReturnCode driver_response = UPPL_RC_SUCCESS;
+    UncRespCode driver_response = UNC_RC_SUCCESS;
     driver_response_header rsp;
     if (controller_type == UNC_CT_PFC) {
       driver_response = pfc_drv_handler.SendReqAndGetResp(rsp);
@@ -289,7 +310,7 @@ UpplReturnCode SystemStateChangeRequest::SystemStateChangeToActive(
     }
 
     pfc_log_debug("driver_response is  %d", driver_response);
-    if (err !=0 || driver_response != UPPL_RC_SUCCESS) {
+    if (err !=0 || driver_response != UNC_RC_SUCCESS) {
       pfc_log_error(
           "Could not connect to controller %s, driver returned error %d",
           controller_name.c_str(), driver_response);
@@ -302,17 +323,18 @@ UpplReturnCode SystemStateChangeRequest::SystemStateChangeToActive(
     obj_val_ctr = NULL;
   }
   pfc_log_info("SystemStateChangeToActive returned SUCCESS");
-  return UPPL_RC_SUCCESS;
+  physical_core->system_transit_state_ = false;
+  return UNC_RC_SUCCESS;
 }
 
 /**SendCandidateInfoToLogical
  * @Description : This function gets the controller list from candidate database
  *                and send the update request to logical
  * @param[in]   : None
- * @return      : UPPL_RC_SUCCESS if the logical is updated
- *                or UPPL_RC_ERR_* if the update fails
+ * @return      : UNC_RC_SUCCESS if the logical is updated
+ *                or UNC_UPPL_RC_ERR_* if the update fails
  * */
-UpplReturnCode SystemStateChangeRequest::SendCandidateInfoToLogical(
+UncRespCode SystemStateChangeRequest::SendCandidateInfoToLogical(
     OdbcmConnectionHandler *db_conn) {
   /* Get all the controller entry from candidate db */
   Kt_Controller kt_ctr;
@@ -320,13 +342,13 @@ UpplReturnCode SystemStateChangeRequest::SendCandidateInfoToLogical(
   key_ctr_t key_ctr_obj;
   memset(&key_ctr_obj, '\0', sizeof(key_ctr_t));
   vect_ctr_key.push_back(reinterpret_cast<void *>(&key_ctr_obj));
-  UpplReturnCode read_status = kt_ctr.ReadInternal(db_conn, vect_ctr_key,
+  UncRespCode read_status = kt_ctr.ReadInternal(db_conn, vect_ctr_key,
                                                    vect_ctr_val,
                                                    UNC_DT_CANDIDATE,
                                                    UNC_OP_READ_SIBLING_BEGIN);
-  if (read_status != UPPL_RC_SUCCESS) {
+  if (read_status != UNC_RC_SUCCESS) {
     pfc_log_info("read from candidate db is %d", read_status);
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 
   for (uint32_t ctrIndex = 0; ctrIndex < vect_ctr_key.size();
@@ -338,13 +360,13 @@ UpplReturnCode SystemStateChangeRequest::SendCandidateInfoToLogical(
     val_ctr_st_t *obj_val_ctr =
         reinterpret_cast<val_ctr_st_t*>(vect_ctr_val[ctrIndex]);
     // Sending the Controller Update Information to Logical Layer
-    UpplReturnCode upll_result = kt_ctr.SendUpdatedControllerInfoToUPLL(
+    UncRespCode upll_result = kt_ctr.SendUpdatedControllerInfoToUPLL(
         UNC_DT_CANDIDATE,
         UNC_OP_CREATE,
         UNC_KT_CONTROLLER,
         vect_ctr_key[ctrIndex],
         reinterpret_cast<void*>(&obj_val_ctr->controller));
-    if (upll_result != UPPL_RC_SUCCESS) {
+    if (upll_result != UNC_RC_SUCCESS) {
       pfc_log_info("Failed to send the controller %s in candidate to UPLL",
                    controller_name.c_str());
     }
@@ -355,7 +377,7 @@ UpplReturnCode SystemStateChangeRequest::SendCandidateInfoToLogical(
     delete obj_val_ctr;
     obj_val_ctr = NULL;
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 }  // namespace uppl
 }  // namespace unc
index 3a871785351171be99437ef1cd1142e572b5e442..f5982ac19fd63cfa91964e25ffbda30c5bfc053e 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -26,6 +26,8 @@
 #include "ipc_client_configuration_handler.hh"
 #include "ipct_util.hh"
 
+using unc::tclib::TcLibModule;
+
 /**TransactionRequest
  * @Description : This function initializes the member data
  * @param[in]   : None
@@ -48,26 +50,26 @@ TransactionRequest::~TransactionRequest() {
  *                from the Candidate Database with respect to row status 
  * @param[in]   : row_status - Denotes the row status of the kt_controller,
  *                kt_domain and kt_boundary
- * @return      : UPPL_RC_SUCCESS if the modified configuration obtained or
- *                UPPL_RC_ERR_* for failure
+ * @return      : UNC_RC_SUCCESS if the modified configuration obtained or
+ *                UNC_UPPL_RC_ERR_* for failure
  */
-UpplReturnCode TransactionRequest::GetModifiedConfiguration(
+UncRespCode TransactionRequest::GetModifiedConfiguration(
     OdbcmConnectionHandler *db_conn,
     CsRowStatus row_status) {
-  UpplReturnCode ret_code = UPPL_RC_SUCCESS;
+  UncRespCode ret_code = UNC_RC_SUCCESS;
   ret_code = GetModifiedController(db_conn, row_status);
-  if (ret_code != UPPL_RC_SUCCESS) {
+  if (ret_code != UNC_RC_SUCCESS) {
     return ret_code;
   }
   ret_code = GetModifiedDomain(db_conn, row_status);
-  if (ret_code != UPPL_RC_SUCCESS) {
+  if (ret_code != UNC_RC_SUCCESS) {
     return ret_code;
   }
   ret_code = GetModifiedBoundary(db_conn, row_status);
-  if (ret_code != UPPL_RC_SUCCESS) {
+  if (ret_code != UNC_RC_SUCCESS) {
     return ret_code;
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /** StartTransaction
@@ -79,12 +81,12 @@ UpplReturnCode TransactionRequest::GetModifiedConfiguration(
  *                the candidate database and send the configuration to driver
  * @param[in]   : session_id - ipc session id used for TC validation
  *                config_id - configuration id used for TC validation
- * @return      : UPPL_RC_SUCCESS if the start Transaction is success and set
+ * @return      : UNC_RC_SUCCESS if the start Transaction is success and set
  *                the trans_state as TRANS_START_SUCCESS or returns
- *                UPPL_RC_ERR_* if the start transaction is failed and set
+ *                UNC_UPPL_RC_ERR_* if the start transaction is failed and set
  *                the trans_state as TRANS_START_FAILURE
  * */
-UpplReturnCode TransactionRequest::StartTransaction(
+UncRespCode TransactionRequest::StartTransaction(
     OdbcmConnectionHandler *db_conn,
     uint32_t session_id,
     uint32_t config_id) {
@@ -92,10 +94,8 @@ UpplReturnCode TransactionRequest::StartTransaction(
       get_physical_core();
   InternalTransactionCoordinator *itc_trans  =
       physical_core->get_internal_transaction_coordinator();
-  vector<string>vec_controller_oflow;
-  vector<string>vec_controller_vnp;
 
-  pfc_log_info("TransactionRequest::StartTransaction-------");
+  pfc_log_info("TransactionRequest::StartTransaction");
   pfc_log_debug("trans_state()= %d", itc_trans->trans_state());
   if (itc_trans->trans_state() == TRANS_END) {
     pfc_log_debug("Inside itc_trans->trans_state() == TRANS_END");
@@ -103,53 +103,37 @@ UpplReturnCode TransactionRequest::StartTransaction(
     ClearMaps();
     // Getting the Created configurations
     if ((GetModifiedConfiguration(db_conn,
-                                  CREATED) != UPPL_RC_SUCCESS)) {
+                                  CREATED) != UNC_RC_SUCCESS)) {
       pfc_log_debug("Inside GetCreatedUpdatedConfiguration CREATE !="
-          "UPPL_RC_SUCCESS");
+          "UNC_RC_SUCCESS");
       itc_trans->set_trans_state(TRANS_END);
-      return UPPL_RC_ERR_TRANSACTION_START;
+      return UNC_UPPL_RC_ERR_TRANSACTION_START;
     }
     // Getting the Updated configurations and sending to driver
     if ((GetModifiedConfiguration(db_conn,
-                                  UPDATED) !=  UPPL_RC_SUCCESS)) {
+                                  UPDATED) !=  UNC_RC_SUCCESS)) {
       pfc_log_debug("Inside GetCreatedUpdatedConfiguration UPDATE !="
-          "UPPL_RC_SUCCESS");
+          "UNC_RC_SUCCESS");
       itc_trans->set_trans_state(TRANS_END);
-      return UPPL_RC_ERR_TRANSACTION_START;
+      return UNC_UPPL_RC_ERR_TRANSACTION_START;
     }
     // Getting the Deleted configurations and sending to driver
     if ((GetModifiedConfiguration(db_conn,
-                                  DELETED) !=  UPPL_RC_SUCCESS)) {
-      pfc_log_debug("Inside GetDeletedConfiguration != UPPL_RC_SUCCESS");
+                                  DELETED) !=  UNC_RC_SUCCESS)) {
+      pfc_log_debug("Inside GetDeletedConfiguration != UNC_RC_SUCCESS");
       itc_trans->set_trans_state(TRANS_END);
-      return UPPL_RC_ERR_TRANSACTION_START;
+      return UNC_UPPL_RC_ERR_TRANSACTION_START;
     }
   } else {
     pfc_log_debug("Inside itc_trans->trans_state() != TRANS_END");
     itc_trans->set_trans_state(TRANS_END);
-    return UPPL_RC_ERR_INVALID_TRANSACT_START_REQ;
-  }
-  // Assigning the modified controllers in vector
-  vec_controller_oflow.assign(set_controller_oflow.begin(),
-                              set_controller_oflow.end());
-  vec_controller_vnp.assign(set_controller_vnp.begin(),
-                            set_controller_vnp.end());
-  // Storing the  Drivers and associated controllers in the  Map
-  if (!vec_controller_oflow.empty()) {
-    driver_controller_info_map_.insert(
-        std::pair<unc_keytype_ctrtype_t,
-        vector<string> >(UNC_CT_PFC, vec_controller_oflow) );
-  }
-  if (!vec_controller_vnp.empty()) {
-    driver_controller_info_map_.insert(
-        std::pair<unc_keytype_ctrtype_t,
-        vector<string> >(UNC_CT_VNP, vec_controller_vnp) );
+    return UNC_UPPL_RC_ERR_INVALID_TRANSACT_START_REQ;
   }
   itc_trans->set_trans_state(TRANS_START_SUCCESS);
   pfc_log_debug("TransactionRequest::StartTransaction::trans_state()= %d",
                 itc_trans->trans_state());
-  pfc_log_info("TransactionRequest::StartTransaction is Successful-------");
-  return UPPL_RC_SUCCESS;
+  pfc_log_info("TransactionRequest::StartTransaction is Successful");
+  return UNC_RC_SUCCESS;
 }
 
 /**HandleVoteRequest
@@ -161,10 +145,10 @@ UpplReturnCode TransactionRequest::StartTransaction(
  * @param[in]   : session_id - ipc session id used for TC validation
  *                config_id - configuration id used for TC validation
  * @param[out]  : driver_info - map that contains the updated controller list
- * @return      : UPPL_RC_SUCCESS if VoteRequest is successfull or
- *                UPPL_RC_ERR_* if VoteRequest is failed
+ * @return      : UNC_RC_SUCCESS if VoteRequest is successfull or
+ *                UNC_UPPL_RC_ERR_* if VoteRequest is failed
  * */
-UpplReturnCode TransactionRequest::HandleVoteRequest(uint32_t session_id,
+UncRespCode TransactionRequest::HandleVoteRequest(uint32_t session_id,
                                                      uint32_t config_id,
                                                      TcDriverInfoMap
                                                      &driver_info) {
@@ -172,7 +156,7 @@ UpplReturnCode TransactionRequest::HandleVoteRequest(uint32_t session_id,
       get_physical_core();
   InternalTransactionCoordinator *itc_trans  =
       physical_core->get_internal_transaction_coordinator();
-  pfc_log_info("TransactionRequest::HandleVoteRequest-------");
+  pfc_log_info("TransactionRequest::HandleVoteRequest");
   pfc_log_debug("trans_state()= %d", itc_trans->trans_state());
 
   if (itc_trans->trans_state() == TRANS_START_SUCCESS) {
@@ -182,12 +166,12 @@ UpplReturnCode TransactionRequest::HandleVoteRequest(uint32_t session_id,
     itc_trans->set_trans_state(VOTE_WAIT_DRIVER_RESULT);
   } else {
     pfc_log_debug("Inside itc_trans->trans_state() != TRANS_START_SUCCESS");
-    return UPPL_RC_ERR_VOTE_INVALID_REQ;
+    return UNC_UPPL_RC_ERR_VOTE_INVALID_REQ;
   }
   pfc_log_debug("TransactionRequest::VoteRequest:trans_state()= %d",
                 itc_trans->trans_state());
-  pfc_log_info("TransactionRequest::VoteRequest is Successful-------");
-  return UPPL_RC_SUCCESS;
+  pfc_log_info("TransactionRequest::VoteRequest is Successful");
+  return UNC_RC_SUCCESS;
 }
 
 /** HandleDriverResult
@@ -201,10 +185,10 @@ UpplReturnCode TransactionRequest::HandleVoteRequest(uint32_t session_id,
  *                phase - specifies the TC commit phase type.Its a enum value
  *                driver_result - specifies the TC commit phase result.
  *                Its a enum value
- * @return      : UPPL_RC_SUCCESS if the HandleDriverResult is successful or
- *                returns UPPL_RC_ERR_* if HandleDriverResult is failed
+ * @return      : UNC_RC_SUCCESS if the HandleDriverResult is successful or
+ *                returns UNC_UPPL_RC_ERR_* if HandleDriverResult is failed
  **/
-UpplReturnCode TransactionRequest::HandleDriverResult(
+UncRespCode TransactionRequest::HandleDriverResult(
     OdbcmConnectionHandler *db_conn,
     uint32_t session_id,
     uint32_t config_id,
@@ -214,7 +198,7 @@ UpplReturnCode TransactionRequest::HandleDriverResult(
       get_physical_core();
   InternalTransactionCoordinator *itc_trans  =
       physical_core->get_internal_transaction_coordinator();
-  pfc_log_info("TransactionRequest::HandleDriverResult-------");
+  pfc_log_info("TransactionRequest::HandleDriverResult");
   pfc_log_debug("trans_state()= %d", itc_trans->trans_state());
   pfc_log_debug("phase = %d", phase);
 
@@ -224,11 +208,11 @@ UpplReturnCode TransactionRequest::HandleDriverResult(
       pfc_log_debug("itc_trans->trans_state() == VOTE_WAIT_DRIVER_RESULT");
       itc_trans->set_trans_state(VOTE_SUCCESS);
       pfc_log_info(
-          "TransactionRequest::HandleDriverResult:VotePhase is Successful----");
+          "TransactionRequest::HandleDriverResult:VotePhase is Successful");
       pfc_log_debug("TransactionRequest::HandleDriverResult:trans_state()= %d",
                     itc_trans->trans_state());
     } else {
-      return UPPL_RC_ERR_VOTE_INVALID_REQ;
+      return UNC_UPPL_RC_ERR_VOTE_INVALID_REQ;
     }
   }
   if (phase == unc::tclib::TC_COMMIT_GLOBAL_COMMIT_PHASE &&
@@ -243,9 +227,43 @@ UpplReturnCode TransactionRequest::HandleDriverResult(
         boundary_updated.empty()) {
       itc_trans->set_trans_state(GLOBAL_COMMIT_SUCCESS);
       pfc_log_info("CommitPhase:There are no modified configurations\n");
-      return UPPL_RC_SUCCESS;
+      return UNC_RC_SUCCESS;
     }
 
+/*
+    // check whether it is already in running db otherwise delete
+    // the entries from the vector
+    vector<key_ctr_t> :: iterator it_controller1 =
+      controller_deleted.begin();
+    for ( ; it_controller1 != controller_deleted.end();) {
+       pfc_log_debug(
+          "Checking the deleted entries in running database:Inside for loop");
+
+      key_ctr_t key_ctr_obj = *it_controller1;
+      vector<string> vect_ctr_key_value;
+      string controller_name = reinterpret_cast<char *>
+        (key_ctr_obj.controller_name);
+      pfc_log_debug(
+           "DeletedControlleris %s", key_ctr_obj.controller_name);
+      vect_ctr_key_value.push_back(controller_name);
+      Kt_Controller kt_controller;
+      UncRespCode key_exist_running = kt_controller.IsKeyExists(
+        db_conn, UNC_DT_RUNNING,
+        vect_ctr_key_value);
+      if (key_exist_running == UNC_RC_SUCCESS) {
+        ++it_controller1;
+        continue;
+      } else if (key_exist_running == UNC_UPPL_RC_ERR_DB_ACCESS) {
+        pfc_log_fatal(
+          "TransactionRequest:Connection Error");
+        return UNC_UPPL_RC_ERR_DB_ACCESS;
+      } else {
+        pfc_log_debug(
+           "Controller entry is not available in running");
+        it_controller1  = controller_deleted.erase(it_controller1);
+      }
+    }
+*/
     /* Storing the Old values of updated controller */
     vector<key_ctr_t> :: iterator it_controller =
         controller_updated.begin();
@@ -260,7 +278,7 @@ UpplReturnCode TransactionRequest::HandleDriverResult(
       vect_ctr_key.push_back(reinterpret_cast<void *>(&key_ctr_obj));
       if (kt_controller.ReadInternal(db_conn, vect_ctr_key, vect_ctr_val,
                                      UNC_DT_RUNNING,
-                                     UNC_OP_READ) != UPPL_RC_SUCCESS) {
+                                     UNC_OP_READ) != UNC_RC_SUCCESS) {
         // Remove the updated key from updated vector
         it_controller = controller_updated.erase(it_controller);
         continue;
@@ -291,7 +309,7 @@ UpplReturnCode TransactionRequest::HandleDriverResult(
       if (kt_domain.ReadInternal(db_conn, vect_domain_key,
                                  vect_domain_val_st,
                                  UNC_DT_RUNNING,
-                                 UNC_OP_READ) != UPPL_RC_SUCCESS) {
+                                 UNC_OP_READ) != UNC_RC_SUCCESS) {
         // Remove the updated key from updated vector
         it_domain = domain_updated.erase(it_domain);
         continue;
@@ -322,7 +340,7 @@ UpplReturnCode TransactionRequest::HandleDriverResult(
       if (kt_boundary.ReadInternal(db_conn, vect_boundary_key,
                                    vect_boundary_val_st,
                                    UNC_DT_RUNNING,
-                                   UNC_OP_READ) != UPPL_RC_SUCCESS) {
+                                   UNC_OP_READ) != UNC_RC_SUCCESS) {
         // Remove the updated key from updated vector
         it_boundary = boundary_updated.erase(it_boundary);
         continue;
@@ -344,10 +362,10 @@ UpplReturnCode TransactionRequest::HandleDriverResult(
       pfc_log_info("Configuration Committed Successfully");
     } else if (db_commit_status == ODBCM_RC_CONNECTION_ERROR) {
       pfc_log_fatal("Committing Configuration Failed - DB Access Error");
-      return UPPL_RC_ERR_FATAL_COPYDB_CANDID_RUNNING;
+      return UNC_UPPL_RC_ERR_FATAL_COPYDB_CANDID_RUNNING;
     } else {
       pfc_log_fatal("Committing Configuration Failed");
-      return UPPL_RC_ERR_FATAL_COPYDB_CANDID_RUNNING;
+      return UNC_UPPL_RC_ERR_FATAL_COPYDB_CANDID_RUNNING;
     }
     // For all deleted controllers, remove the state entries as well
     it_controller = controller_deleted.begin();
@@ -360,9 +378,18 @@ UpplReturnCode TransactionRequest::HandleDriverResult(
       ODBCM_RC_STATUS clear_status =
           PhysicalLayer::get_instance()->get_odbc_manager()->
           ClearOneInstance(UNC_DT_STATE, controller_name, db_conn);
-      if (clear_status != ODBCM_RC_SUCCESS) {
-        pfc_log_info("State DB clearing failed");
+      if (clear_status !=  ODBCM_RC_SUCCESS) {
+        pfc_log_fatal("Error during Clearing the state db");
+        TcLibModule* tclib_ptr = static_cast<TcLibModule*>
+         (TcLibModule::getInstance(TCLIB_MODULE_NAME));
+        tclib_ptr->TcLibWriteControllerInfo(controller_name.c_str(),
+                                            UNC_RC_INTERNAL_ERR,
+                                            0);
+        return UNC_UPPL_RC_ERR_CLEAR_DB;
       }
+      // remove the deleted controller entry from alarm_status_map
+      physical_core->remove_ctr_from_alarm_status_map(controller_name, "1");
+      physical_core->remove_ctr_from_alarm_status_map(controller_name, "3");
     }
     itc_trans->set_trans_state(GLOBAL_COMMIT_SUCCESS);
     pfc_log_debug("TransactionRequest::HandleDriverResult:trans_state()= %d",
@@ -380,11 +407,11 @@ UpplReturnCode TransactionRequest::HandleDriverResult(
       if (kt_boundary.ReadInternal(db_conn, vect_boundary_key,
                                    vect_boundary_val_st,
                                    UNC_DT_RUNNING,
-                                   UNC_OP_READ) != UPPL_RC_SUCCESS) {
+                                   UNC_OP_READ) != UNC_RC_SUCCESS) {
         continue;
       }
       vector<OperStatusHolder> ref_oper_status;
-      UpplReturnCode operstatus_return =
+      UncRespCode operstatus_return =
           kt_boundary.HandleOperStatus(
               db_conn, UNC_DT_RUNNING,
               reinterpret_cast<void*>(&key_boundary_obj),
@@ -410,25 +437,25 @@ UpplReturnCode TransactionRequest::HandleDriverResult(
     }
     pfc_log_info("Starting to send the Notification after"
         " committing configuration");
-    UpplReturnCode notfn_status = SendControllerNotification(db_conn,
+    UncRespCode notfn_status = SendControllerNotification(db_conn,
                                                              vec_old_val_ctr);
-    if (notfn_status != UPPL_RC_SUCCESS) {
+    if (notfn_status != UNC_RC_SUCCESS) {
       return notfn_status;
     }
     notfn_status = SendDomainNotification(db_conn, vec_old_val_ctr_domain);
-    if (notfn_status != UPPL_RC_SUCCESS) {
+    if (notfn_status != UNC_RC_SUCCESS) {
       return notfn_status;
     }
     notfn_status = SendBoundaryNotification(db_conn, vec_old_val_boundary);
-    if (notfn_status != UPPL_RC_SUCCESS) {
+    if (notfn_status != UNC_RC_SUCCESS) {
       return notfn_status;
     }
   }
   if (phase != unc::tclib::TC_COMMIT_VOTE_PHASE &&
       phase != unc::tclib::TC_COMMIT_GLOBAL_COMMIT_PHASE) {
-    return UPPL_RC_ERR_COMMIT_OPERATION_NOT_ALLOWED;
+    return UNC_UPPL_RC_ERR_COMMIT_OPERATION_NOT_ALLOWED;
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**HandleGlobalCommitRequest
@@ -439,11 +466,11 @@ UpplReturnCode TransactionRequest::HandleDriverResult(
  * @param[in]   : session_id - ipc session id used for TC validation
  *                config_id - configuration id used for TC validation
  * @param[out]  : driver_info - contains the controller list 
- * @return      : UPPL_RC_SUCCESS if the HandleGlobalCommitRequest is
- *                successful or returns UPPL_RC_ERR_* if
+ * @return      : UNC_RC_SUCCESS if the HandleGlobalCommitRequest is
+ *                successful or returns UNC_UPPL_RC_ERR_* if
  *                HandleGlobalCommitRequest is failed
  * */
-UpplReturnCode TransactionRequest::HandleGlobalCommitRequest(
+UncRespCode TransactionRequest::HandleGlobalCommitRequest(
     uint32_t session_id,
     uint32_t config_id,
     TcDriverInfoMap
@@ -452,7 +479,7 @@ UpplReturnCode TransactionRequest::HandleGlobalCommitRequest(
       get_physical_core();
   InternalTransactionCoordinator *itc_trans =
       physical_core->get_internal_transaction_coordinator();
-  pfc_log_info("TransactionRequest::HandleGlobalCommitRequest-------");
+  pfc_log_info("TransactionRequest::HandleGlobalCommitRequest");
   pfc_log_debug("trans_state()= %d", itc_trans->trans_state());
 
   if (itc_trans->trans_state() == VOTE_SUCCESS) {
@@ -461,12 +488,12 @@ UpplReturnCode TransactionRequest::HandleGlobalCommitRequest(
     itc_trans->set_trans_state(GLOBAL_COMMIT_WAIT_DRIVER_RESULT);
   } else {
     pfc_log_debug("itc_trans->trans_state() != VOTE_SUCCESS");
-    return UPPL_RC_ERR_COMMIT_OPERATION_NOT_ALLOWED;
+    return UNC_UPPL_RC_ERR_COMMIT_OPERATION_NOT_ALLOWED;
   }
   pfc_log_debug(
       "TransactionRequest::HandleGlobalCommitRequest:trans_state()= %d",
       itc_trans->trans_state());
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /** AbortTransaction
@@ -475,10 +502,10 @@ UpplReturnCode TransactionRequest::HandleGlobalCommitRequest(
  * @param[in]   : session_id - ipc session id used for TC validation
  *                config_id - configuration id used for TC validation
  *                operation_phase - denotes the TC commit operation phase
- * @return      : UPPL_RC_SUCCESS if the AbortTransaction is successful or
- *                returns UPPL_RC_ERR_* if AbortTransaction is failed
+ * @return      : UNC_RC_SUCCESS if the AbortTransaction is successful or
+ *                returns UNC_UPPL_RC_ERR_* if AbortTransaction is failed
  * */
-UpplReturnCode TransactionRequest::AbortTransaction(uint32_t session_id,
+UncRespCode TransactionRequest::AbortTransaction(uint32_t session_id,
                                                     uint32_t config_id,
                                                     TcCommitOpAbortPhase
                                                     operation_phase) {
@@ -496,7 +523,7 @@ UpplReturnCode TransactionRequest::AbortTransaction(uint32_t session_id,
     pfc_log_info("AbortTxn COMMIT_VOTE_REQ - Nothing to do");
   }
   itc_trans-> set_trans_state(TRANS_END);
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /** EndTransaction
@@ -507,55 +534,53 @@ UpplReturnCode TransactionRequest::AbortTransaction(uint32_t session_id,
  * @param[in]   : session_id - ipc session id used for TC validation
  *                config_id - configuration id used for TC validation
  *                trans_res - specifies the TC transaction end result
- * @return      : UPPL_RC_SUCCESS if the EndTransaction is successful or
- *                returns UPPL_RC_ERR_* if EndTransaction is failed
+ * @return      : UNC_RC_SUCCESS if the EndTransaction is successful or
+ *                returns UNC_UPPL_RC_ERR_* if EndTransaction is failed
  * */
-UpplReturnCode TransactionRequest::EndTransaction(
+UncRespCode TransactionRequest::EndTransaction(
     OdbcmConnectionHandler *db_conn,
     uint32_t session_id,
     uint32_t config_id,
     TcTransEndResult trans_res ) {
-  UpplReturnCode ret_code = UPPL_RC_SUCCESS;
+  UncRespCode ret_code = UNC_RC_SUCCESS;
   PhysicalCore *physical_core = PhysicalLayer::get_instance()->
       get_physical_core();
   InternalTransactionCoordinator *itc_trans  =
       physical_core->get_internal_transaction_coordinator();
-  pfc_log_info("TransactionRequest::EndTransaction-------");
+  pfc_log_info("TransactionRequest::EndTransaction");
   pfc_log_debug("trans_state()= %d", itc_trans->trans_state());
   // Checking the result of the Transaction
   if (trans_res == unc::tclib::TRANS_END_FAILURE) {
     itc_trans->set_trans_state(TRANS_END);
     pfc_log_info("End Transaction:FailureResponse from TC\n");
     ClearMaps();
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   // Checking whether there is any modified controller configuration
   if (controller_deleted.empty() && controller_created.empty() &&
       controller_updated.empty()) {
     itc_trans->set_trans_state(TRANS_END);
     pfc_log_info("End Transaction:No Modified configurations\n");
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   string controller_name = "";
   string driver_name = "";
   unc_keytype_ctrtype_t controller_type;
   key_ctr_t key_ctr_obj;
   Kt_Controller kt_controller;
-  UpplReturnCode err = UPPL_RC_SUCCESS;
+  UncRespCode err = UNC_RC_SUCCESS;
   IPCClientDriverHandler pfc_drv_handler(UNC_CT_PFC, err);
-  if (err != UPPL_RC_SUCCESS) {
+  if (err != UNC_RC_SUCCESS) {
     pfc_log_fatal("Cannot open session to PFC driver");
     return err;
   }
-  err = UPPL_RC_SUCCESS;
   IPCClientDriverHandler vnp_drv_handler(UNC_CT_VNP, err);
-  if (err != UPPL_RC_SUCCESS) {
+  if (err != UNC_RC_SUCCESS) {
     pfc_log_fatal("Cannot open session to VNP driver");
     return err;
   }
-  err = UPPL_RC_SUCCESS;
   IPCClientDriverHandler odc_drv_handler(UNC_CT_ODC, err);
-  if (err != UPPL_RC_SUCCESS) {
+  if (err != UNC_RC_SUCCESS) {
     pfc_log_fatal("Cannot open session to ODC driver");
     return err;
   }
@@ -563,7 +588,7 @@ UpplReturnCode TransactionRequest::EndTransaction(
   vector<key_ctr_t> :: iterator it_controller = controller_deleted.begin();
   for ( ; it_controller != controller_deleted.end(); ++it_controller) {
     key_ctr_obj = *it_controller;
-    UpplReturnCode logical_result =
+    UncRespCode logical_result =
         kt_controller.SendUpdatedControllerInfoToUPLL(
             UNC_DT_RUNNING,
             UNC_OP_DELETE,
@@ -577,7 +602,7 @@ UpplReturnCode TransactionRequest::EndTransaction(
       controller_type =
           (unc_keytype_ctrtype_t)controller_type_map[controller_name];
       if (physical_core->GetDriverName(controller_type, driver_name)
-          != UPPL_RC_SUCCESS)  {
+          != UNC_RC_SUCCESS)  {
         pfc_log_debug("Unable to get the Driver Name from Physical Core");
         continue;
       }
@@ -590,7 +615,7 @@ UpplReturnCode TransactionRequest::EndTransaction(
       } else if (controller_type == UNC_CT_VNP) {
         pfc_log_debug("VNP Controller Type");
         cli_session = vnp_drv_handler.ResetAndGetSession();
-      } else if (controller_type == UNC_CT_ODC ) {
+      } else if ( controller_type == UNC_CT_ODC ) {
         pfc_log_debug("ODC Controller Type");
         cli_session = odc_drv_handler.ResetAndGetSession();
       } else {
@@ -607,18 +632,16 @@ UpplReturnCode TransactionRequest::EndTransaction(
       err |= cli_session->addOutput(key_ctr_obj);
       pfc_log_info("%s", IpctUtil::get_string(key_ctr_obj).c_str());
       // Send the request to driver
-      UpplReturnCode driver_response = UPPL_RC_SUCCESS;
+      UncRespCode driver_response = UNC_RC_SUCCESS;
       driver_response_header rsp;
       if (controller_type == UNC_CT_PFC) {
         driver_response = pfc_drv_handler.SendReqAndGetResp(rsp);
-      }
-      if (controller_type == UNC_CT_VNP) {
+      } else if (controller_type == UNC_CT_VNP) {
         driver_response = vnp_drv_handler.SendReqAndGetResp(rsp);
-      }
-      if (controller_type == UNC_CT_ODC ) {
+      } else if (controller_type == UNC_CT_ODC) {
         driver_response = odc_drv_handler.SendReqAndGetResp(rsp);
       }
-      if (err != 0 || driver_response != UPPL_RC_SUCCESS) {
+      if (err != 0 || driver_response != UNC_RC_SUCCESS) {
         pfc_log_error("Delete response from driver for controller %s"
             "is %d err=%d", controller_name.c_str(), driver_response, err);
       }
@@ -659,10 +682,6 @@ void TransactionRequest::ClearMaps() {
   if (!boundary_created.empty()) boundary_created.clear();
   if (!boundary_updated.empty()) boundary_updated.clear();
   if (!boundary_deleted.empty()) boundary_deleted.clear();
-  /* Clearing the contents of the previously stored controllers
-   * related to specific type */
-  if (!set_controller_oflow.empty()) set_controller_oflow.clear();
-  if (!set_controller_vnp.empty())set_controller_vnp.clear();
 }
 
 /**SendControllerNotification
@@ -670,10 +689,10 @@ void TransactionRequest::ClearMaps() {
  *                the modified controllers
  * @param[in]   : vec_old_val_ctr - Vector for storing the old value struct
  *                of the controller
- * @return      : UPPL_RC_SUCCESS if the notification of modified controllers
- *                success or returns UPPL_RC_ERR_* if its failed
+ * @return      : UNC_RC_SUCCESS if the notification of modified controllers
+ *                success or returns UNC_UPPL_RC_ERR_* if its failed
  * */
-UpplReturnCode TransactionRequest::SendControllerNotification(
+UncRespCode TransactionRequest::SendControllerNotification(
     OdbcmConnectionHandler *db_conn,
     vector<void *> vec_old_val_ctr) {
   // Sending the notification of deleted  controllers
@@ -686,7 +705,7 @@ UpplReturnCode TransactionRequest::SendControllerNotification(
     key_ctr_t key_ctr_obj = *it_controller;
     pfc_log_debug("Sending Notification for Deleted Controller: %s",
                   key_ctr_obj.controller_name);
-    UpplReturnCode nofn_status =
+    UncRespCode nofn_status =
         kt_controller.ConfigurationChangeNotification(
             (uint32_t)UNC_DT_RUNNING,
             (uint32_t)UNC_KT_CONTROLLER,
@@ -704,13 +723,13 @@ UpplReturnCode TransactionRequest::SendControllerNotification(
                   key_ctr_obj.controller_name);
     vector<void *> vect_ctr_key, vect_ctr_val;
     vect_ctr_key.push_back(reinterpret_cast<void *>(&key_ctr_obj));
-    UpplReturnCode retCode = kt_controller.ReadInternal(db_conn,
+    UncRespCode retCode = kt_controller.ReadInternal(db_conn,
                                                         vect_ctr_key,
                                                         vect_ctr_val,
                                                         UNC_DT_CANDIDATE,
                                                         UNC_OP_READ);
-    if (retCode == UPPL_RC_SUCCESS) {
-      UpplReturnCode nofn_status =
+    if (retCode == UNC_RC_SUCCESS) {
+      UncRespCode nofn_status =
           kt_controller.ConfigurationChangeNotification(
               (uint32_t)UNC_DT_RUNNING,
               (uint32_t)UNC_KT_CONTROLLER,
@@ -731,10 +750,10 @@ UpplReturnCode TransactionRequest::SendControllerNotification(
         delete ctr_val;
         ctr_val = NULL;
       }
-    } else  if (retCode == UPPL_RC_ERR_NO_SUCH_INSTANCE) {
+    } else  if (retCode == UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE) {
       // Do nothing
     } else {
-      return UPPL_RC_ERR_COMMIT_OPERATION_NOT_ALLOWED;
+      return UNC_UPPL_RC_ERR_COMMIT_OPERATION_NOT_ALLOWED;
     }
   }
   // Sending the notification of updated Controller
@@ -749,13 +768,13 @@ UpplReturnCode TransactionRequest::SendControllerNotification(
                   key_ctr_obj.controller_name);
     vector<void *> vect_ctr_key, vect_ctr_val;
     vect_ctr_key.push_back(reinterpret_cast<void *>(&key_ctr_obj));
-    UpplReturnCode retCode = kt_controller.ReadInternal(db_conn,
+    UncRespCode retCode = kt_controller.ReadInternal(db_conn,
                                                         vect_ctr_key,
                                                         vect_ctr_val,
                                                         UNC_DT_CANDIDATE,
                                                         UNC_OP_READ);
-    if (retCode == UPPL_RC_SUCCESS) {
-      UpplReturnCode nofn_status =
+    if (retCode == UNC_RC_SUCCESS) {
+      UncRespCode nofn_status =
           kt_controller.ConfigurationChangeNotification(
               (uint32_t)UNC_DT_RUNNING,
               (uint32_t)UNC_KT_CONTROLLER,
@@ -784,13 +803,13 @@ UpplReturnCode TransactionRequest::SendControllerNotification(
         delete ctr_old_val;
         ctr_old_val = NULL;
       }
-    } else  if (retCode == UPPL_RC_ERR_NO_SUCH_INSTANCE) {
+    } else  if (retCode == UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE) {
       // Do nothing
     } else {
-      return UPPL_RC_ERR_COMMIT_OPERATION_NOT_ALLOWED;
+      return UNC_UPPL_RC_ERR_COMMIT_OPERATION_NOT_ALLOWED;
     }
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**SendDomainNotification
@@ -798,10 +817,10 @@ UpplReturnCode TransactionRequest::SendControllerNotification(
  *                the modified domain
  * @param[in]   : vec_old_val_ctr - Vector for storing the old value struct
  *                of the domain
- * @return      : UPPL_RC_SUCCESS if the notification of modified domain
- *                success or returns UPPL_RC_ERR_* if its failed
+ * @return      : UNC_RC_SUCCESS if the notification of modified domain
+ *                success or returns UNC_UPPL_RC_ERR_* if its failed
  * */
-UpplReturnCode TransactionRequest::SendDomainNotification(
+UncRespCode TransactionRequest::SendDomainNotification(
     OdbcmConnectionHandler *db_conn,
     vector<void *> vec_old_val_ctr_domain) {
   /*Sending the notification of deleted unknown domain */
@@ -816,7 +835,7 @@ UpplReturnCode TransactionRequest::SendDomainNotification(
     int ret_notfn = kt_domain.InvokeBoundaryNotifyOperStatus(
         db_conn, UNC_DT_RUNNING, key_ctr_domain_ptr);
     pfc_log_debug("Boundary Invoke Operation return %d", ret_notfn);
-    UpplReturnCode nofn_status =
+    UncRespCode nofn_status =
         kt_domain.ConfigurationChangeNotification(
             (uint32_t)UNC_DT_RUNNING,
             (uint32_t)UNC_KT_CTR_DOMAIN,
@@ -842,14 +861,14 @@ UpplReturnCode TransactionRequest::SendDomainNotification(
     vect_key_struct.push_back(key_ctr_domain_ptr);
     pfc_log_debug("TxnClass:Controllername: %s",
                   key_ctr_domain_obj.ctr_key.controller_name);
-    UpplReturnCode retCode = kt_domain.ReadInternal(db_conn, vect_key_struct,
+    UncRespCode retCode = kt_domain.ReadInternal(db_conn, vect_key_struct,
                                                     vect_new_val,
                                                     UNC_DT_CANDIDATE,
                                                     UNC_OP_READ);
 
-    if (retCode == UPPL_RC_SUCCESS) {
+    if (retCode == UNC_RC_SUCCESS) {
       void *val_ctr_domain_new = vect_new_val[0];
-      UpplReturnCode nofn_status =
+      UncRespCode nofn_status =
           kt_domain.ConfigurationChangeNotification(
               (uint32_t)UNC_DT_RUNNING,
               (uint32_t)UNC_KT_CTR_DOMAIN,
@@ -878,10 +897,10 @@ UpplReturnCode TransactionRequest::SendDomainNotification(
         delete val_domain_old;
         val_domain_old = NULL;
       }
-    } else  if (retCode == UPPL_RC_ERR_NO_SUCH_INSTANCE) {
+    } else  if (retCode == UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE) {
       // Do nothing
     } else {
-      return UPPL_RC_ERR_COMMIT_OPERATION_NOT_ALLOWED;
+      return UNC_UPPL_RC_ERR_COMMIT_OPERATION_NOT_ALLOWED;
     }
   }
   /* Sending the notification of created unknown domain */
@@ -898,13 +917,13 @@ UpplReturnCode TransactionRequest::SendDomainNotification(
         db_conn, UNC_DT_RUNNING, reinterpret_cast<void *>(&key_ctr_domain_obj));
     pfc_log_debug("Domain Invoke Operation return %d", ret_notfn);
 
-    UpplReturnCode retCode = kt_domain.ReadInternal(db_conn, vect_key_domain,
+    UncRespCode retCode = kt_domain.ReadInternal(db_conn, vect_key_domain,
                                                     vect_val_domain,
                                                     UNC_DT_CANDIDATE,
                                                     UNC_OP_READ);
-    if (retCode == UPPL_RC_SUCCESS) {
+    if (retCode == UNC_RC_SUCCESS) {
       void *val_ctr_domain_new = vect_val_domain[0];
-      UpplReturnCode nofn_status =
+      UncRespCode nofn_status =
           kt_domain.ConfigurationChangeNotification(
               (uint32_t)UNC_DT_RUNNING,
               (uint32_t)UNC_KT_CTR_DOMAIN,
@@ -926,13 +945,13 @@ UpplReturnCode TransactionRequest::SendDomainNotification(
         delete val_domain;
         val_domain = NULL;
       }
-    } else  if (retCode == UPPL_RC_ERR_NO_SUCH_INSTANCE) {
+    } else  if (retCode == UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE) {
       // Do nothing
     } else {
-      return UPPL_RC_ERR_COMMIT_OPERATION_NOT_ALLOWED;
+      return UNC_UPPL_RC_ERR_COMMIT_OPERATION_NOT_ALLOWED;
     }
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**SendBoundaryNotification
@@ -940,10 +959,10 @@ UpplReturnCode TransactionRequest::SendDomainNotification(
  *                the modified boundary
  * @param[in]   : vec_old_val_ctr - Vector for storing the old value struct
  *                of the boundary
- * @return      : UPPL_RC_SUCCESS if the notification of modified boundary
- *                success or returns UPPL_RC_ERR_* if its failed
+ * @return      : UNC_RC_SUCCESS if the notification of modified boundary
+ *                success or returns UNC_UPPL_RC_ERR_* if its failed
  * */
-UpplReturnCode TransactionRequest::SendBoundaryNotification(
+UncRespCode TransactionRequest::SendBoundaryNotification(
     OdbcmConnectionHandler *db_conn,
     vector<void *> vec_old_val_boundary) {
   /*Sending the notification of deleted  boundary */
@@ -953,7 +972,7 @@ UpplReturnCode TransactionRequest::SendBoundaryNotification(
   for (; it_boundary != boundary_deleted.end(); ++it_boundary) {
     key_boundary_t key_boundary_obj = *it_boundary;
     void *key_boundary_ptr = reinterpret_cast<void *>(&key_boundary_obj);
-    UpplReturnCode nofn_status =
+    UncRespCode nofn_status =
         kt_boundary.ConfigurationChangeNotification(
             (uint32_t)UNC_DT_RUNNING,
             (uint32_t)UNC_KT_BOUNDARY,
@@ -973,15 +992,15 @@ UpplReturnCode TransactionRequest::SendBoundaryNotification(
     vector<void *> vect_boundary_val_st;
     vect_boundary_key.push_back(reinterpret_cast<void*>(&key_boundary_obj));
 
-    UpplReturnCode retCode = kt_boundary.ReadInternal(db_conn,
+    UncRespCode retCode = kt_boundary.ReadInternal(db_conn,
                                                       vect_boundary_key,
                                                       vect_boundary_val_st,
                                                       UNC_DT_CANDIDATE,
                                                       UNC_OP_READ);
-    if (retCode == UPPL_RC_SUCCESS) {
+    if (retCode == UNC_RC_SUCCESS) {
       void *val_boundary_new = reinterpret_cast<void *>
       (&new_val_boundary);
-      UpplReturnCode nofn_status =
+      UncRespCode nofn_status =
           kt_boundary.ConfigurationChangeNotification(
               (uint32_t)UNC_DT_RUNNING,
               (uint32_t)UNC_KT_BOUNDARY,
@@ -1002,10 +1021,10 @@ UpplReturnCode TransactionRequest::SendBoundaryNotification(
         delete val_boundary;
         val_boundary = NULL;
       }
-    } else  if (retCode == UPPL_RC_ERR_NO_SUCH_INSTANCE) {
+    } else  if (retCode == UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE) {
       // Do nothing
     } else {
-      return UPPL_RC_ERR_COMMIT_OPERATION_NOT_ALLOWED;
+      return UNC_UPPL_RC_ERR_COMMIT_OPERATION_NOT_ALLOWED;
     }
   }
   // Sending the notification of updated  boundary
@@ -1021,13 +1040,13 @@ UpplReturnCode TransactionRequest::SendBoundaryNotification(
     vector<void *> vect_boundary_val_st;
     key_boundary_t key_boundary_obj = *it_boundary;
     vect_boundary_key.push_back(reinterpret_cast<void*>(&key_boundary_obj));
-    UpplReturnCode retCode = kt_boundary.ReadInternal(db_conn,
+    UncRespCode retCode = kt_boundary.ReadInternal(db_conn,
                                                       vect_boundary_key,
                                                       vect_boundary_val_st,
                                                       UNC_DT_CANDIDATE,
                                                       UNC_OP_READ);
-    if (retCode == UPPL_RC_SUCCESS) {
-      UpplReturnCode nofn_status =
+    if (retCode == UNC_RC_SUCCESS) {
+      UncRespCode nofn_status =
           kt_boundary.ConfigurationChangeNotification(
               (uint32_t)UNC_DT_RUNNING,
               (uint32_t)UNC_KT_BOUNDARY,
@@ -1056,13 +1075,13 @@ UpplReturnCode TransactionRequest::SendBoundaryNotification(
         delete val_boundary_old;
         val_boundary_old = NULL;
       }
-    } else  if (retCode == UPPL_RC_ERR_NO_SUCH_INSTANCE) {
+    } else  if (retCode == UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE) {
       // Do nothing
     } else {
-      return UPPL_RC_ERR_COMMIT_OPERATION_NOT_ALLOWED;
+      return UNC_UPPL_RC_ERR_COMMIT_OPERATION_NOT_ALLOWED;
     }
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**SendControllerInfo
@@ -1079,20 +1098,19 @@ void TransactionRequest::SendControllerInfo(OdbcmConnectionHandler *db_conn,
                                             uint32_t session_id,
                                             uint32_t config_id) {
   vector<key_ctr_t> controller_info;
-  UpplReturnCode err = UPPL_RC_SUCCESS;
+  UncRespCode err = UNC_RC_SUCCESS;
   IPCClientDriverHandler pfc_drv_handler(UNC_CT_PFC, err);
-  if (err != UPPL_RC_SUCCESS) {
+  if (err != UNC_RC_SUCCESS) {
     pfc_log_error("Cannot open session to PFC driver");
     return;
   }
-  err = UPPL_RC_SUCCESS;
   IPCClientDriverHandler vnp_drv_handler(UNC_CT_VNP, err);
-  if (err != UPPL_RC_SUCCESS) {
+  if (err != UNC_RC_SUCCESS) {
     pfc_log_error("Cannot open session to VNP driver");
     return;
   }
   IPCClientDriverHandler odc_drv_handler(UNC_CT_ODC, err);
-  if (err != UPPL_RC_SUCCESS) {
+  if (err != UNC_RC_SUCCESS) {
     pfc_log_error("Cannot open session to VNP driver");
     return;
   }
@@ -1113,12 +1131,12 @@ void TransactionRequest::SendControllerInfo(OdbcmConnectionHandler *db_conn,
                   controller_name.c_str());
     vector<void *> vect_key_ctr, vect_ctr_val;
     vect_key_ctr.push_back(reinterpret_cast<void *>(&key_ctr_obj));
-    UpplReturnCode retCode = kt_controller.ReadInternal(db_conn,
+    UncRespCode retCode = kt_controller.ReadInternal(db_conn,
                                                         vect_key_ctr,
                                                         vect_ctr_val,
                                                         UNC_DT_CANDIDATE,
                                                         UNC_OP_READ);
-    if (retCode != UPPL_RC_SUCCESS) {
+    if (retCode != UNC_RC_SUCCESS) {
       pfc_log_debug("ReadInternal failed for controller");
       continue;
     }
@@ -1130,7 +1148,7 @@ void TransactionRequest::SendControllerInfo(OdbcmConnectionHandler *db_conn,
       continue;
     }
     // Inform logical
-    UpplReturnCode logical_result =
+    UncRespCode logical_result =
         kt_controller.SendUpdatedControllerInfoToUPLL(
             UNC_DT_RUNNING,
             operation_type,
@@ -1143,7 +1161,7 @@ void TransactionRequest::SendControllerInfo(OdbcmConnectionHandler *db_conn,
         (unc_keytype_ctrtype_t)
         (PhyUtil::uint8touint(val_ctr_new->controller.type));
     if (physical_core->GetDriverName(controller_type, driver_name)
-        != UPPL_RC_SUCCESS)  {
+        != UNC_RC_SUCCESS)  {
       pfc_log_debug("TxnEnd:Unable to get Driver Name from Physical Core");
       delete val_ctr_new;
       val_ctr_new = NULL;
@@ -1164,7 +1182,7 @@ void TransactionRequest::SendControllerInfo(OdbcmConnectionHandler *db_conn,
     } else if (controller_type == UNC_CT_VNP) {
       pfc_log_debug("VNP Controller type");
       cli_session = vnp_drv_handler.ResetAndGetSession();
-    } else if (controller_type == UNC_CT_ODC ) {
+    } else if ( controller_type == UNC_CT_ODC ) {
       pfc_log_debug("ODC Controller type");
       cli_session = odc_drv_handler.ResetAndGetSession();
     } else {
@@ -1193,7 +1211,7 @@ void TransactionRequest::SendControllerInfo(OdbcmConnectionHandler *db_conn,
     pfc_log_info("%s", IpctUtil::get_string(key_ctr_obj).c_str());
     pfc_log_info("%s", IpctUtil::get_string(*val_ctr_new).c_str());
     // Send the request to driver
-    UpplReturnCode driver_response = UPPL_RC_SUCCESS;
+    UncRespCode driver_response = UNC_RC_SUCCESS;
     driver_response_header rsp;
 
     if (controller_type == UNC_CT_PFC) {
@@ -1202,7 +1220,7 @@ void TransactionRequest::SendControllerInfo(OdbcmConnectionHandler *db_conn,
     if (controller_type == UNC_CT_VNP) {
       driver_response = vnp_drv_handler.SendReqAndGetResp(rsp);
     }
-    if (controller_type == UNC_CT_ODC ) {
+    if ( controller_type == UNC_CT_ODC ) {
       driver_response = odc_drv_handler.SendReqAndGetResp(rsp);
     }
     delete val_ctr_new;
@@ -1213,7 +1231,7 @@ void TransactionRequest::SendControllerInfo(OdbcmConnectionHandler *db_conn,
       delete ctr_key;
       ctr_key = NULL;
     }
-    if (err != 0 || driver_response != UPPL_RC_SUCCESS) {
+    if (err != 0 || driver_response != UNC_RC_SUCCESS) {
       pfc_log_error("Create request to Driver failed for controller %s"
           " with response %d, err=%d", controller_name.c_str(),
           driver_response, err);
@@ -1227,13 +1245,13 @@ void TransactionRequest::SendControllerInfo(OdbcmConnectionHandler *db_conn,
  *                from the Candidate Database.
  * @param[in]   : row_status - specifies the row status of modified
  *                row of kt_controller
- * @return      : UPPL_RC_SUCCESS if GetModifiedControllers is successful or
- *                UPPL_RC_ERR_* in case of failure  
+ * @return      : UNC_RC_SUCCESS if GetModifiedControllers is successful or
+ *                UNC_UPPL_RC_ERR_* in case of failure  
  * */
-UpplReturnCode TransactionRequest::GetModifiedController(
+UncRespCode TransactionRequest::GetModifiedController(
     OdbcmConnectionHandler *db_conn,
     CsRowStatus row_status) {
-  UpplReturnCode ret_code = UPPL_RC_SUCCESS;
+  UncRespCode ret_code = UNC_RC_SUCCESS;
   unc_keytype_ctrtype_t controller_type;
   pfc_log_info("Get Modified Controller for Row Status: %d", row_status);
 
@@ -1244,8 +1262,16 @@ UpplReturnCode TransactionRequest::GetModifiedController(
       db_conn, vec_key_ctr_modified,
       row_status);
   pfc_log_debug("Controller:GetModifiedRows return code = %d", ret_code);
-  if (ret_code == UPPL_RC_ERR_DB_ACCESS) {
-    return ret_code;
+  if (ret_code == UNC_UPPL_RC_ERR_DB_ACCESS ||
+      ret_code == UNC_UPPL_RC_ERR_DB_GET) {
+    pfc_log_info(
+          "Error retrieving GetModifiedRows, return txn error");
+    TcLibModule* tclib_ptr = static_cast<TcLibModule*>
+          (TcLibModule::getInstance(TCLIB_MODULE_NAME));
+    tclib_ptr->TcLibWriteControllerInfo("",
+                                        UNC_RC_INTERNAL_ERR,
+                                        0);
+    return UNC_UPPL_RC_ERR_TRANSACTION_START;
   }
   for (uint32_t config_count = 0; \
   config_count < vec_key_ctr_modified.size(); config_count++) {
@@ -1262,21 +1288,26 @@ UpplReturnCode TransactionRequest::GetModifiedController(
     // check whether it is already in running
     vector<string> vect_ctr_key_value;
     vect_ctr_key_value.push_back(controller_name);
-    UpplReturnCode key_exist_running = kt_controller.IsKeyExists(
+    UncRespCode key_exist_running = kt_controller.IsKeyExists(
         db_conn, UNC_DT_RUNNING,
         vect_ctr_key_value);
-    if (key_exist_running == UPPL_RC_ERR_DB_ACCESS) {
+    if (key_exist_running == UNC_UPPL_RC_ERR_DB_ACCESS) {
       // Error retrieving information from database, send failure
       pfc_log_info(
           "Error retrieving information from running db, return txn error");
-      return UPPL_RC_ERR_TRANSACTION_START;
-    } else if (key_exist_running != UPPL_RC_SUCCESS) {
+      TcLibModule* tclib_ptr = static_cast<TcLibModule*>
+          (TcLibModule::getInstance(TCLIB_MODULE_NAME));
+      tclib_ptr->TcLibWriteControllerInfo(controller_name.c_str(),
+                                          UNC_RC_INTERNAL_ERR,
+                                          0);
+      return UNC_UPPL_RC_ERR_TRANSACTION_START;
+    } else if (key_exist_running != UNC_RC_SUCCESS) {
       pfc_log_debug(
           "Controller entry in is not available in running");
     }
     if (row_status == CREATED) {
       controller_created.push_back(*ptr_key_ctr);
-      if (key_exist_running == UPPL_RC_SUCCESS) {
+      if (key_exist_running == UNC_RC_SUCCESS) {
         controller_deleted.push_back(*ptr_key_ctr);
         is_controller_recreated = PFC_TRUE;
       }
@@ -1284,7 +1315,7 @@ UpplReturnCode TransactionRequest::GetModifiedController(
     if (row_status == UPDATED)
       controller_updated.push_back(*ptr_key_ctr);
     if (row_status == DELETED) {
-      if (key_exist_running == UPPL_RC_SUCCESS) {
+      if (key_exist_running == UNC_RC_SUCCESS) {
         controller_deleted.push_back(*ptr_key_ctr);
       }
     }
@@ -1293,12 +1324,7 @@ UpplReturnCode TransactionRequest::GetModifiedController(
     ptr_key_ctr = NULL;
     if (PhyUtil::get_controller_type(
         db_conn, controller_name,
-        controller_type, UNC_DT_CANDIDATE) == UPPL_RC_SUCCESS) {
-      if (controller_type  == UNC_CT_PFC) {
-        set_controller_oflow.insert(controller_name);
-      } else if (controller_type  == UNC_CT_VNP) {
-        set_controller_vnp.insert(controller_name);
-      }
+        controller_type, UNC_DT_CANDIDATE) == UNC_RC_SUCCESS) {
       if (row_status == DELETED) {
         pfc_log_debug(
             "Controller %s of type %d is marked for DELETION",
@@ -1307,25 +1333,35 @@ UpplReturnCode TransactionRequest::GetModifiedController(
       }
     } else {
       pfc_log_info("Error retrieving controller type from candidate");
-      return UPPL_RC_ERR_TRANSACTION_START;
+      TcLibModule* tclib_ptr = static_cast<TcLibModule*>
+        (TcLibModule::getInstance(TCLIB_MODULE_NAME));
+      tclib_ptr->TcLibWriteControllerInfo(controller_name.c_str(),
+                                          UNC_RC_INTERNAL_ERR,
+                                          0);
+      return UNC_UPPL_RC_ERR_TRANSACTION_START;
     }
     if (is_controller_recreated == PFC_TRUE) {
       // Get existing controller type from RUNNING
       if (PhyUtil::get_controller_type(
           db_conn,  controller_name,
-          controller_type, UNC_DT_RUNNING) == UPPL_RC_SUCCESS) {
+          controller_type, UNC_DT_RUNNING) == UNC_RC_SUCCESS) {
         pfc_log_debug(
             "Controller %s of type %d is marked for RECREATION",
             controller_name.c_str(), controller_type);
         controller_type_map[controller_name] = controller_type;
       } else {
         pfc_log_info("Error retrieving controller type from running");
-        return UPPL_RC_ERR_TRANSACTION_START;
+        TcLibModule* tclib_ptr = static_cast<TcLibModule*>
+          (TcLibModule::getInstance(TCLIB_MODULE_NAME));
+        tclib_ptr->TcLibWriteControllerInfo(controller_name.c_str(),
+                                          UNC_RC_INTERNAL_ERR,
+                                          0);
+        return UNC_UPPL_RC_ERR_TRANSACTION_START;
       }
     }
   }
   pfc_log_debug("Modified Controllers Iterated properly");
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**GetModifiedDomain
@@ -1333,13 +1369,13 @@ UpplReturnCode TransactionRequest::GetModifiedController(
  *                from the Candidate Database.
  * @param[in]   : row_status - specifies the row status of modified
  *                row of kt_domain
- * @return      : UPPL_RC_SUCCESS if GetModifiedDomain is successful or
- *                UPPL_RC_ERR_* in case of failure
+ * @return      : UNC_RC_SUCCESS if GetModifiedDomain is successful or
+ *                UNC_UPPL_RC_ERR_* in case of failure
  * */
-UpplReturnCode TransactionRequest::GetModifiedDomain(
+UncRespCode TransactionRequest::GetModifiedDomain(
     OdbcmConnectionHandler *db_conn,
     CsRowStatus row_status) {
-  UpplReturnCode ret_code = UPPL_RC_SUCCESS;
+  UncRespCode ret_code = UNC_RC_SUCCESS;
   pfc_log_info("Get Modified Domain for Row Status: %d", row_status);
   /* Getting the Modified Unknown Domain Configuration */
   Kt_Ctr_Domain kt_ctr_domain;
@@ -1348,7 +1384,15 @@ UpplReturnCode TransactionRequest::GetModifiedDomain(
       db_conn, vec_key_ctr_domain_modified,
       row_status);
   pfc_log_debug("Domain:GetModifiedRows return code = %d", ret_code);
-  if (ret_code == UPPL_RC_ERR_DB_ACCESS) {
+  if (ret_code == UNC_UPPL_RC_ERR_DB_ACCESS ||
+      ret_code == UNC_UPPL_RC_ERR_DB_GET) {
+    pfc_log_info(
+          "Error retrieving GetModifiedRows, return txn error");
+    TcLibModule* tclib_ptr = static_cast<TcLibModule*>
+          (TcLibModule::getInstance(TCLIB_MODULE_NAME));
+    tclib_ptr->TcLibWriteControllerInfo("",
+                                        UNC_RC_INTERNAL_ERR,
+                                        0);
     return ret_code;
   }
   for (uint32_t config_count = 0; \
@@ -1375,16 +1419,22 @@ UpplReturnCode TransactionRequest::GetModifiedDomain(
       vect_domain_key_value.push_back(
           (const char*)ptr_key_ctr_domain->ctr_key.controller_name);
       vect_domain_key_value.push_back(domain_name);
-      UpplReturnCode key_exist_running = kt_ctr_domain.IsKeyExists(
+      UncRespCode key_exist_running = kt_ctr_domain.IsKeyExists(
           db_conn, UNC_DT_RUNNING,
           vect_domain_key_value);
-      if (key_exist_running == UPPL_RC_SUCCESS) {
+      if (key_exist_running == UNC_RC_SUCCESS) {
         domain_deleted.push_back(*ptr_key_ctr_domain);
-      } else if (key_exist_running == UPPL_RC_ERR_DB_ACCESS) {
+      } else if (key_exist_running == UNC_UPPL_RC_ERR_DB_ACCESS) {
         // Error retrieving information from database, send failure
         pfc_log_info(
             "Error retrieving information from running db, return txn error");
-        return UPPL_RC_ERR_TRANSACTION_START;
+        TcLibModule* tclib_ptr = static_cast<TcLibModule*>
+          (TcLibModule::getInstance(TCLIB_MODULE_NAME));
+        tclib_ptr->TcLibWriteControllerInfo(
+          (const char*)ptr_key_ctr_domain->ctr_key.controller_name,
+          UNC_RC_INTERNAL_ERR,
+          0);
+        return UNC_UPPL_RC_ERR_TRANSACTION_START;
       } else {
         pfc_log_debug(
             "Deleted entry in candidate is not available in running-ignoring");
@@ -1395,7 +1445,7 @@ UpplReturnCode TransactionRequest::GetModifiedDomain(
     ptr_key_ctr_domain = NULL;
   }
   pfc_log_debug("Modified Domain iterated properly");
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**GetModifiedBoundary
@@ -1403,13 +1453,13 @@ UpplReturnCode TransactionRequest::GetModifiedDomain(
  *                from the Candidate Database.
  * @param[in]   : row_status - specifies the row status of modified
  *                row of kt_boundary
- * @return      : UPPL_RC_SUCCESS if GetModifiedBoundary is successful or
- *                UPPL_RC_ERR_* in case of failure
+ * @return      : UNC_RC_SUCCESS if GetModifiedBoundary is successful or
+ *                UNC_UPPL_RC_ERR_* in case of failure
  * */
-UpplReturnCode TransactionRequest::GetModifiedBoundary(
+UncRespCode TransactionRequest::GetModifiedBoundary(
     OdbcmConnectionHandler *db_conn,
     CsRowStatus row_status) {
-  UpplReturnCode ret_code = UPPL_RC_SUCCESS;
+  UncRespCode ret_code = UNC_RC_SUCCESS;
   pfc_log_info("Get Modified Boundary for Row Status: %d", row_status);
   //  Getting the Modified Boundary Configuration
   Kt_Boundary kt_boundary;
@@ -1418,13 +1468,21 @@ UpplReturnCode TransactionRequest::GetModifiedBoundary(
       db_conn, vec_key_boundary_modified,
       row_status);
   pfc_log_debug("Controller:GetModifiedRows return code = %d", ret_code);
-  if (ret_code == UPPL_RC_ERR_DB_ACCESS) {
-    return ret_code;
+  if (ret_code == UNC_UPPL_RC_ERR_DB_ACCESS ||
+      ret_code == UNC_UPPL_RC_ERR_DB_GET) {
+    pfc_log_info(
+        "Error retrieving GetModifiedRows from running db, return txn error");
+    TcLibModule* tclib_ptr = static_cast<TcLibModule*>
+        (TcLibModule::getInstance(TCLIB_MODULE_NAME));
+    tclib_ptr->TcLibWriteControllerInfo("",
+                                        UNC_RC_INTERNAL_ERR,
+                                        0);
+    return UNC_UPPL_RC_ERR_TRANSACTION_START;
   }
   for (uint32_t config_count = 0; \
-  config_count < vec_key_boundary_modified.size(); config_count++) {
+       config_count < vec_key_boundary_modified.size(); config_count++) {
     key_boundary_t *ptr_key_boundary = reinterpret_cast<key_boundary_t *>
-    (vec_key_boundary_modified[config_count]);
+        (vec_key_boundary_modified[config_count]);
     if (ptr_key_boundary == NULL) {
       continue;
     }
@@ -1437,16 +1495,22 @@ UpplReturnCode TransactionRequest::GetModifiedBoundary(
       vector<string> vect_bdry_key_value;
       vect_bdry_key_value.push_back(
           (const char*)ptr_key_boundary->boundary_id);
-      UpplReturnCode key_exist_running = kt_boundary.IsKeyExists(
+      UncRespCode key_exist_running = kt_boundary.IsKeyExists(
           db_conn, UNC_DT_RUNNING,
           vect_bdry_key_value);
-      if (key_exist_running == UPPL_RC_SUCCESS) {
+      if (key_exist_running == UNC_RC_SUCCESS) {
         boundary_deleted.push_back(*ptr_key_boundary);
-      } else if (key_exist_running == UPPL_RC_ERR_DB_ACCESS) {
+      } else if (key_exist_running == UNC_UPPL_RC_ERR_DB_ACCESS) {
         // Error retrieving information from database, send failure
         pfc_log_info(
             "Error retrieving information from running db, return txn error");
-        return UPPL_RC_ERR_TRANSACTION_START;
+        TcLibModule* tclib_ptr = static_cast<TcLibModule*>
+            (TcLibModule::getInstance(TCLIB_MODULE_NAME));
+        tclib_ptr->TcLibWriteControllerInfo("",
+                                            UNC_RC_INTERNAL_ERR,
+                                            0);
+
+        return UNC_UPPL_RC_ERR_TRANSACTION_START;
       } else {
         pfc_log_debug(
             "Deleted entry in candidate is not available in running-ignoring");
@@ -1457,5 +1521,5 @@ UpplReturnCode TransactionRequest::GetModifiedBoundary(
     ptr_key_boundary = NULL;
   }
   pfc_log_debug("Modified Boundary iterated properly");
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
index 93e149c381ddf16262cef3c21880097c1416cc4e..6f0d9026460332ded6f13554d062b4b1ecb25448 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -385,7 +385,7 @@ ODBCM_RC_STATUS DBVarbind::bind_controller_table_output(
           log_flag = 0;
         }
         break;
-      case CTR_ACTUAL_VERSION:
+     case CTR_ACTUAL_VERSION:
         if ((*i).request_attribute_type == DATATYPE_UINT8_ARRAY_32) {
           odbc_rc = BindCol_SQL_VARCHAR(
               r_hstmt,
@@ -609,7 +609,7 @@ ODBCM_RC_STATUS DBVarbind::fill_controller_table(
           ODBCM_MEMSET(&p_ctr_table->senable_audit, 0, sizeof(SQLSMALLINT));
           p_ctr_table->senable_audit = audit_value.value;
           odbcm_debug_info("ODBCM::DBVarbind::fill:CTR_TABLE: "
-              "enable_audit = %d", p_ctr_table->senable_audit);
+              "senable_audit = %d", p_ctr_table->senable_audit);
         }
         break;
       case CTR_ACTUAL_VERSION:
index f33a55a99ea36d9c680a913f66fece7d067139a7..4ae0e24030b6e8bb60e130845ffc0ce866e0e46f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -222,6 +222,7 @@ ODBCM_RC_STATUS DBVarbind::bind_port_table_input(
         break;
       case PORT_SPEED:
         if ((*i).request_attribute_type == DATATYPE_UINT64) {
+          *p_speed_len = sizeof(SQLLEN);
           odbc_rc = BindInputParameter_SQL_BINARY(
               r_hstmt,
               ++col_no,
@@ -236,6 +237,7 @@ ODBCM_RC_STATUS DBVarbind::bind_port_table_input(
     break;
       case PORT_ALARM_STATUS:
         if ((*i).request_attribute_type == DATATYPE_UINT64) {
+          *p_alarms_status_len = sizeof(SQLLEN);
           odbc_rc = BindInputParameter_SQL_BINARY(
               r_hstmt,
               ++col_no,
index 402347e0bfa0e30a0703c9547129aed795827f05..ebfb21325c82d662f57d617a697dcf77277c03b5 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -245,6 +245,7 @@ ODBCM_RC_STATUS DBVarbind::bind_switch_table_input(
         break;
       case SWITCH_ALARM_STATUS:
         if ((*i).request_attribute_type == DATATYPE_UINT64) {
+          *p_alarms_status_len = sizeof(SQLLEN);
           odbc_rc = BindInputParameter_SQL_BINARY(
               r_hstmt,
              ++col_no,
index cb540fe308a17938790e2f6307329525fbc6d157..9e093345fc6650a10436746e083c30a270b6377b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -26,10 +26,12 @@ using unc::uppl::ODBCMTable;
 using unc::uppl::QueryFactory;
 using unc::uppl::QueryProcessor;
 using unc::uppl::DBVarbind;
+using unc::uppl::ODBCMUtils;
 extern pfc_cfdef_t odbcm_cfdef;
 
 /* static variable initialization */
 ODBCManager *ODBCManager::ODBCManager_ = NULL;
+int ODBCMUtils::sem_id = 0;
 
 /**
  * @Description : Constructor function which creates/initializes
@@ -42,7 +44,8 @@ ODBCManager::ODBCManager()
           //  initialize the ODBCMInit flag
           IsODBCManager_initialized(0),
           /** Initialize the ODBCManager members */
-          phy_conn_env_(NULL) {
+          phy_conn_env_(NULL),
+          conn_max_limit_(0) {
   rw_nb_conn_obj_ = NULL;
   rw_sb_conn_obj_ = NULL;
 }
@@ -67,6 +70,10 @@ ODBCManager::~ODBCManager() {
     db_table_list_map_.clear();
   /**to clear the OdbcmSQLStateMap elements*/
   ODBCMUtils::ClearOdbcmSQLStateMap();
+
+  FreeingConnections(true);
+  ODBCMUtils::del_semvalue();
+
   /** Free the uppl db connection and environments */
   ODBCM_RC_STATUS rw_disconn_status = CloseRwConnection();
   pfc_log_debug("ODBCM::ODBCManager::CloseRwConnection Status %d",
@@ -365,7 +372,7 @@ ODBCM_RC_STATUS ODBCManager::OpenDBConnection(
         return ODBCM_RC_SUCCESS;
       }
       if (set_rw_connection_handle_(conn_handle) != ODBCM_RC_SUCCESS) {
-        pfc_log_error("ODBCM::ODBCManager::OpenDBConnection: "
+        pfc_log_fatal("ODBCM::ODBCManager::OpenDBConnection: "
             "Error in set_rw_connection_handle_ ");
         return ODBCM_RC_CONNECTION_ERROR;
       }
@@ -382,7 +389,7 @@ ODBCM_RC_STATUS ODBCManager::OpenDBConnection(
         return ODBCM_RC_SUCCESS;
       }
       if (set_rw_connection_handle_(conn_handle) != ODBCM_RC_SUCCESS) {
-        pfc_log_error("ODBCM::ODBCManager::OpenDBConnection: "
+        pfc_log_fatal("ODBCM::ODBCManager::OpenDBConnection: "
             "Error in set_rw_connection_handle_ ");
         return ODBCM_RC_CONNECTION_ERROR;
       }
@@ -409,7 +416,7 @@ ODBCM_RC_STATUS ODBCManager::OpenDBConnection(
       pfc_log_error("ODBCM::ODBCManager::OpenDBConnection: "
           "Invalid connection type %d !! ",
           conn_obj->get_conn_type());
-      break;
+      return ODBCM_RC_CONNECTION_ERROR;
   }
   // *************************************************************************
   // Set the matching condition for using an existing connection in the pool
@@ -507,6 +514,277 @@ ODBCM_RC_STATUS ODBCManager::OpenDBConnection(
       conn_obj->get_conn_type());
   return ODBCM_RC_SUCCESS;
 }
+/**
+ @Description : When NB request comes, this function assigns db conn.
+ *              to service the request. If the free pool has connection,
+ *              that shall be assigned, if free pool does not have conn.
+ *              it will create and assign new connection, if the exisitng
+ *              no. of conns. not reached to conn.max.limit.if max conn.limit
+ *              reached, subsequent requests shall wait (using semaphore) for
+ *              db connection.
+ *              If read request from configure mode shall be serviced by
+ *              RW conn. only.
+ * @param[in]  : uint32_t session_id, uint32_t config_id
+ * @param[out] : OdbcmConnectionHandler *&db_conn
+ * @return     : ODBCM_RC_STATUS
+ **/
+ODBCM_RC_STATUS ODBCManager::AssignDBConnection(
+                             OdbcmConnectionHandler *&db_conn,
+                             uint32_t session_id, uint32_t config_id) {
+  pfc_log_trace("Entered into AssignDBConnection"
+                " session_id = %d, config_id = %d", session_id, config_id);
+  PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
+  UncRespCode db_ret = UNC_RC_SUCCESS;
+  /**RW conn shall be reused for READ which is op belongs to same session*/
+  physical_layer->db_conpool_mutex_.lock();
+  if (config_id > 0) {
+    pfc_log_trace("RW conn req. for config mode READ operation");
+    if (rw_nb_conn_obj_ != NULL) {
+      db_conn = rw_nb_conn_obj_;
+      pfc_log_trace("RW conn is assigned for READ operation");
+    } else {  /*if RW connection not available allocate conn handle and return*/
+      pfc_log_trace("RW conn is NULL !!, Allocate RW connection and store/"
+                                      "assign for read req.");
+      rw_nb_conn_obj_ = new OdbcmConnectionHandler(
+                            unc::uppl::kOdbcmConnReadWriteNb,
+                            db_ret,
+                            PhysicalLayer::get_instance()->get_odbc_manager());
+      if (db_ret == UNC_RC_SUCCESS && rw_nb_conn_obj_ != NULL) {
+        db_conn = rw_nb_conn_obj_;
+      } else {
+        pfc_log_error("RW connection assignation failed!! conn. not available");
+        return ODBCM_RC_CONNECTION_ERROR;
+      }
+      pfc_log_trace("RW conn is allocated and assigned for READ operation");
+    }
+    physical_layer->db_conpool_mutex_.unlock();
+    return ODBCM_RC_SUCCESS;
+  }
+  //  if config id < 0 - READ operation
+  if (!conpool_free_list_.empty()) {
+    //  take connection from list assign to request.
+    db_conn = conpool_free_list_.front();
+    pfc_log_trace("Free %" PFC_PFMT_SIZE_T " RO conn(s) available in conn pool "
+             "and 1 is assigned for READ operation", conpool_free_list_.size());
+    db_conn->set_using_session_id(session_id);
+    conpool_inuse_map_[session_id] = db_conn;
+    conpool_free_list_.pop_front();  // free pool is poped
+    pfc_log_trace("Existing RO conn is assgined for request sess_id = %d",
+                  session_id);
+  } else {
+    pfc_log_trace("Free RO conn is NOT available in conn pool");
+    //  create new connection if no.of conn does not reach conn_max_limit
+    pfc_log_debug("In use conn pool size = %" PFC_PFMT_SIZE_T,
+                                           conpool_inuse_map_.size());
+    pfc_log_debug("max allowed no. of conn  = %d", conn_max_limit_);
+    if (conpool_inuse_map_.size() < conn_max_limit_) {
+      db_conn = new OdbcmConnectionHandler(unc::uppl::kOdbcmConnReadOnly,
+            db_ret, PhysicalLayer::get_instance()->get_odbc_manager());
+      if (db_ret != UNC_RC_SUCCESS) {
+        pfc_log_error("db RO connection creation is failed.!!");
+        //  In case of error in Read connection, all unused Read connections
+        physical_layer->db_conpool_mutex_.unlock();
+        return ODBCM_RC_CONNECTION_ERROR;
+      }
+
+      conpool_inuse_map_[session_id] = db_conn;
+      pfc_log_trace("RO conn is created and assgined for request sess_id = %d",
+                    session_id);
+    } else {
+      /*put request on WAIT state using semaphore. WAIT state shall be 
+      * release !SEM_UP() after any one of the read connection is freed */
+
+      ODBCMUtils::sem_id  = semget((key_t)1234, 1, 0666 | IPC_CREAT);
+      pfc_log_trace("READ will be blocked by Semaphore SEM_ID = %d",
+                                              ODBCMUtils::sem_id);
+      do {
+        if (!ODBCMUtils::set_semvalue(0)) {  //  request will be blocked
+          pfc_log_info("Semaphore initialized failed!");
+          physical_layer->db_conpool_mutex_.unlock();
+          return ODBCM_RC_FAILED;
+        }
+        pfc_log_trace("READ Entered into WAIT state"
+                " session_id = %d, config_id = %d", session_id, config_id);
+        physical_layer->db_conpool_mutex_.unlock();
+        if (!ODBCMUtils::SEM_DOWN()) {
+          pfc_log_debug("entering critical section failed!");
+          return ODBCM_RC_FAILED;
+        }
+        pfc_log_trace("SEM UP is done!! DB Connection will be assigned... ");
+        physical_layer->db_conpool_mutex_.lock();
+        //  take connection from list assign to request.
+        if (conpool_free_list_.empty()) {
+          pfc_log_info("After SEM release, no conn available in free pool");
+        }
+      } while (conpool_free_list_.empty());
+      db_conn = conpool_free_list_.front();
+      pfc_log_trace("Free %" PFC_PFMT_SIZE_T " RO conn(s) available"
+                    " in conn pool and 1 is assigned for READ operation",
+                    conpool_free_list_.size());
+      conpool_inuse_map_[session_id] = db_conn;
+      conpool_free_list_.pop_front();  // free pool is poped
+      pfc_log_trace("Freed RO conn is assgined for request sess_id = %d",
+                    session_id);
+    }
+  }
+  physical_layer->db_conpool_mutex_.unlock();
+  if (db_conn == NULL) {
+    pfc_log_info("After SEM release, db_conn is NULL");
+    return ODBCM_RC_FAILED;
+  }
+  pfc_log_debug("db_conn type is %d", db_conn->get_conn_type());
+  return ODBCM_RC_SUCCESS;
+}
+
+
+/**
+* @Description : when the read request completes the operation, the db conn
+*                will be pooled instead of disconnect and free them. if any
+*                read request waiting for db conn. signal will be passed to
+*                that request (by semaphore)
+* @param[in]   : OdbcmConnectionHandler *&conn_obj, uint32_t session_id,
+*                uint32_t config_id
+* @return      : ODBCM_RC_STATUS
+**/
+ODBCM_RC_STATUS ODBCManager::PoolDBConnection(OdbcmConnectionHandler *&conn_obj,
+                             uint32_t session_id, uint32_t config_id) {
+  pfc_log_trace("PoolDBConnection - session_id = %d, config_id = %d",
+                                            session_id, config_id);
+  if (config_id > 0) {  // RW conn is used for configure sess. READ, NO-POOL.
+    pfc_log_debug("Read uses RWconn,NO-POOL required (ENDTRANS-ROLLBACK DONE)");
+    SQLHDBC conn_handle = conn_obj->get_conn_handle();
+    ODBCM_ROLLBACK_TRANSACTION(conn_handle);
+    return ODBCM_RC_SUCCESS;
+  }
+
+  //  Freeing erroneous db connections
+  PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
+  if (!err_connx_list_.empty()) {
+    physical_layer->db_conpool_mutex_.lock();
+    pfc_log_debug("Erroneous %" PFC_PFMT_SIZE_T
+                  " RO Connection is present and about to free",
+                  err_connx_list_.size());
+    std::list<uint32_t>::iterator err_iter;
+    err_iter = err_connx_list_.begin();
+    std::map<uint32_t, OdbcmConnectionHandler*>::iterator cpool_iter =
+                           conpool_inuse_map_.begin();
+    for ( ; err_iter != err_connx_list_.end(); err_iter++) {
+      if (!conpool_inuse_map_.empty()) {
+        cpool_iter = conpool_inuse_map_.find(*err_iter);
+        pfc_log_info("error conn found in pool map is %d", session_id);
+        if (cpool_iter != conpool_inuse_map_.end()) {
+          SQLHDBC conn_handle = conn_obj->get_conn_handle();
+          ODBCM_ROLLBACK_TRANSACTION(conn_handle);
+          delete (*cpool_iter).second;
+          conpool_inuse_map_.erase(cpool_iter);
+          pfc_log_debug("Err DB Conn is freed now..(ENDTRANS-ROLLBACK DONE)!!");
+        }
+      }
+    }
+    err_connx_list_.clear();
+    physical_layer->db_conpool_mutex_.unlock();
+  }
+
+  PhysicalCore* physical_core = physical_layer->get_physical_core();
+  if (physical_core->system_transit_state_ == true) {
+    pfc_log_info("UNC is in transit state");
+    FreeingConnections(false);
+    return ODBCM_RC_FAILED;
+  }
+  physical_layer->db_conpool_mutex_.lock();
+
+  std::map<uint32_t, OdbcmConnectionHandler*>::iterator cpool_iter =
+                           conpool_inuse_map_.begin();
+  bool process_waiting = false;
+
+  if (!conpool_inuse_map_.empty()) {
+    cpool_iter = conpool_inuse_map_.find(session_id);
+    pfc_log_info("session id to find conn in pool map is %d", session_id);
+  } else {
+    pfc_log_error("conpool_inuse_map_ is empty !!");
+    cpool_iter = conpool_inuse_map_.end();
+  }
+
+  if (conpool_inuse_map_.size() >= conn_max_limit_) {
+    process_waiting = true;
+    pfc_log_trace("Another READ shall be waiting for free DB conn !!");
+  }
+
+  if (cpool_iter != conpool_inuse_map_.end()) {
+    SQLHDBC conn_handle = conn_obj->get_conn_handle();
+    ODBCM_ROLLBACK_TRANSACTION(conn_handle);
+    conpool_free_list_.push_back(conn_obj);
+    conpool_inuse_map_.erase(cpool_iter);
+    pfc_log_debug("DB Conn is pooled now..(ENDTRANS-ROLLBACK DONE)!!");
+  } else { /*could be error case*/
+    // free all unused db connections
+    while (!conpool_free_list_.empty()) {
+      delete conpool_free_list_.back();
+      conpool_free_list_.pop_back();
+    }
+    ODBCMUtils::del_semvalue();
+    pfc_log_error("DB Conn RECALL error!! all read connection shall be freed");
+  }
+
+  if (process_waiting == true) {
+    pfc_log_info("release the critical section ! SEM_UP - session_id");
+    if (!ODBCMUtils::SEM_UP()) {
+      pfc_log_info("leaving from critical section failed!");
+      physical_layer->db_conpool_mutex_.unlock();
+      return ODBCM_RC_FAILED;
+    }
+    pfc_log_trace("semaphore UP is happened to signal the waiting req");
+  }
+  physical_layer->db_conpool_mutex_.unlock();
+  return ODBCM_RC_SUCCESS;
+}
+
+/**
+* @Description : this function will free the existing connections
+*                if the IsAllOrUnused is true, used, unused conn.
+*                will be freed and closed permanentely.
+*                if the IsAllOrUnused is false, only unused conn.
+*                will be freed and closed permanentely.
+* @param[in]   : bool IsAllOrUnused
+* @return      : ODBCM_RC_STATUS
+**/
+ODBCM_RC_STATUS ODBCManager::FreeingConnections(bool IsAllOrUnused) {
+  pfc_log_trace("Freeing unused Connections ... ");
+  PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
+  physical_layer->db_conpool_mutex_.lock();
+
+  if (!conpool_free_list_.empty()) {
+    pfc_log_debug("Unused %" PFC_PFMT_SIZE_T
+                  " RO Connection is present and about to free",
+                  conpool_free_list_.size());
+    std::list<OdbcmConnectionHandler*>::iterator cpoolfree_iter;
+    cpoolfree_iter = conpool_free_list_.begin();
+    for ( ; cpoolfree_iter != conpool_free_list_.end(); cpoolfree_iter++) {
+      delete *cpoolfree_iter;  // destructor intern calls the closeDBconnection
+      pfc_log_debug("Unused RO Connection is freed");
+    }
+    conpool_free_list_.clear();
+  }
+
+  if (IsAllOrUnused != false) { /*All conn. freed including used one */
+  pfc_log_trace("Freeing used Connections ... ");
+  std::map<uint32_t, OdbcmConnectionHandler*>::iterator cpoolinuse_iter;
+  if (!conpool_inuse_map_.empty()) {
+    pfc_log_debug("used %"PFC_PFMT_SIZE_T
+                  " RO Connection is present and about to free",
+                  conpool_inuse_map_.size());
+    cpoolinuse_iter = conpool_inuse_map_.begin();
+    for ( ; cpoolinuse_iter != conpool_inuse_map_.end(); cpoolinuse_iter++) {
+      delete (*cpoolinuse_iter).second;  // destructor intern calls
+                                         // the closeDBconnection
+      pfc_log_debug("used RO Connection is freed");
+    }
+    conpool_inuse_map_.clear();
+  }
+  }
+  physical_layer->db_conpool_mutex_.unlock();
+  return ODBCM_RC_SUCCESS;
+}
 
 /**
  * @Description : This function will close the existing database connection
@@ -526,13 +804,13 @@ ODBCM_RC_STATUS ODBCManager::CloseDBConnection(
       return ODBCM_RC_SUCCESS;
     }
     pfc_log_debug("Read Write connection will not be closed now");
-    ODBCM_RC_STATUS status = ODBCM_RC_SUCCESS;
-    ODBCM_END_TRANSACTION(conn_handle, SQL_ROLLBACK);
-    return status;
+    ODBCM_ROLLBACK_TRANSACTION(conn_handle);
+    return ODBCM_RC_SUCCESS;
   }
   /*  to disconnect */
   if (NULL != conn_handle) {
     SQLRETURN odbc_rc = 0;
+    ODBCM_ROLLBACK_TRANSACTION(conn_handle);
     odbc_rc = SQLDisconnect(conn_handle);
     odbc_rc = SQLFreeHandle(SQL_HANDLE_DBC, conn_handle);
     conn_handle = NULL;
index da6ba773baa4a922f5f2173df66de31b0c74b707..6f077b5ddf2ffc2736a8e863be7294971db1633c 100644 (file)
@@ -293,8 +293,8 @@ void DBVarbind::BindingInput(int table_id) {
         }
       }
       *p_switch_id1_len = ODBCM_SIZE_256;
-      *p_ipv6_len = ODBCM_SIZE_16;
-      *p_alarms_status_len = ODBCM_SIZE_16;
+      *p_ipv6_len = sizeof(SQLLEN);
+      *p_alarms_status_len = sizeof(SQLLEN);
       BindINParameter = &DBVarbind::bind_switch_table_input;
       break;
     case PORT_TABLE:
@@ -311,9 +311,9 @@ void DBVarbind::BindingInput(int table_id) {
       }
       *p_switch_id1_len = ODBCM_SIZE_256;
       *p_logicalport_id1_len = ODBCM_SIZE_320;
-      *p_alarms_status_len = ODBCM_SIZE_16;
+      *p_alarms_status_len = sizeof(SQLLEN);
       *p_mac_len = ODBCM_SIZE_6;
-      *p_speed_len = ODBCM_SIZE_16;
+      *p_speed_len = sizeof(SQLLEN);
       BindINParameter = &DBVarbind::bind_port_table_input;
       break;
     case LINK_TABLE:
@@ -456,8 +456,8 @@ void DBVarbind::BindingOutput(int table_id) {
         }
       }
       *p_switch_id1_len = ODBCM_SIZE_256;
-      *p_ipv6_len = ODBCM_SIZE_16;
-      *p_alarms_status_len = ODBCM_SIZE_16;
+      *p_ipv6_len = sizeof(SQLLEN);
+      *p_alarms_status_len = sizeof(SQLLEN);
       ODBCM_MEMSET(p_switch_table, 0, sizeof(switch_table_t));
       BindOUTParameter = &DBVarbind::bind_switch_table_output;
       break;
@@ -475,9 +475,9 @@ void DBVarbind::BindingOutput(int table_id) {
       }
       *p_switch_id1_len = ODBCM_SIZE_256;
       *p_logicalport_id1_len = ODBCM_SIZE_320;
-      *p_alarms_status_len = ODBCM_SIZE_16;
+      *p_alarms_status_len = sizeof(SQLLEN);
       *p_mac_len = ODBCM_SIZE_6;
-      *p_speed_len = ODBCM_SIZE_16;
+      *p_speed_len = sizeof(SQLLEN);
       ODBCM_MEMSET(p_port_table, 0, sizeof(port_table_t));
       BindOUTParameter = &DBVarbind::bind_port_table_output;
       break;
index 24176cb88a3e5787a706f844747c62006cca601a..21e43bb4ef0a6584b994483f77f13325e061f82e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -80,7 +80,11 @@ ODBCM_RC_STATUS ODBCManager::ODBCM_Initialize() {
         "Could not allocate connection environment !!");
     return ODBCM_RC_CONNECTION_ERROR;
   }
-
+  PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
+  PhysicalCore* physical_core = physical_layer->get_physical_core();
+  conn_max_limit_ = physical_core->uppl_max_ro_db_connections_;
+  pfc_log_debug("conn_max_limit__ (from conf file) = %d",
+                                                conn_max_limit_);
   pfc_log_info("ODBCM::ODBCManager::Initialize: "
       "ODBCM initialized !!!");
   /**set Flag for the status of init*/
@@ -129,7 +133,7 @@ ODBCM_RC_STATUS ODBCManager::CreateOneRow(unc_keytype_datatype_t db_name,
     * query processor and db_varbind objects */
   HSTMT             create_stmt       = NULL;
   SQLHDBC rw_conn_handle = conn_obj->get_conn_handle();
-  ODBCM_STATEMENT_CREATE(rw_conn_handle, create_stmt);
+  ODBCM_STATEMENT_CREATE(rw_conn_handle, create_stmt, odbc_rc);
   QueryFactory      *query_factory    = NULL;
   ODBCM_CREATE_OBJECT(query_factory, QueryFactory);
   QueryProcessor    *query_processor  = NULL;
@@ -273,11 +277,11 @@ ODBCM_RC_STATUS ODBCManager::CreateOneRow(unc_keytype_datatype_t db_name,
               CREATEONEROW, create_stmt);
     if (status == ODBCM_RC_SUCCESS) {
       /** Commit all active transactions on this connection */
-      ODBCM_END_TRANSACTION(rw_conn_handle, SQL_COMMIT);
+      ODBCM_END_TRANSACTION(rw_conn_handle, SQL_COMMIT, status);
       pfc_log_debug("ODBCM::ODBCManager::CreateOneRow:row is created");
     } else {
       /** Rollback all active transactions on this connection */
-      ODBCM_END_TRANSACTION(rw_conn_handle, SQL_ROLLBACK);
+      ODBCM_END_TRANSACTION(rw_conn_handle, SQL_ROLLBACK, status);
       pfc_log_debug("ODBCM::ODBCManager::CreateOneRow:row is not created");
     }
   } else {
@@ -308,7 +312,8 @@ ODBCM_RC_STATUS ODBCManager::DeleteOneRow(unc_keytype_datatype_t db_name,
                                           DBTableSchema &db_table_schema,
                                           OdbcmConnectionHandler *conn_obj ) {
   PHY_FINI_READ_LOCK();
-  string              delete_query = "";  // receiving the query from queryfactory
+  string              delete_query = "";  // receiving the query
+                                          //  from queryfactory
   SQLRETURN           odbc_rc   = ODBCM_RC_SUCCESS;  // SQL API rc
   ODBCM_RC_STATUS     status    = ODBCM_RC_SUCCESS;  // other method rc
   ODBCMTable          table_id  = UNKNOWN_TABLE;
@@ -328,7 +333,7 @@ ODBCM_RC_STATUS ODBCManager::DeleteOneRow(unc_keytype_datatype_t db_name,
     * query processor and db_varbind objects */
   HSTMT               delete_stmt = NULL;
   SQLHDBC rw_conn_handle = conn_obj->get_conn_handle();
-  ODBCM_STATEMENT_CREATE(rw_conn_handle, delete_stmt);
+  ODBCM_STATEMENT_CREATE(rw_conn_handle, delete_stmt, odbc_rc);
   QueryFactory        *query_factory = NULL;
   ODBCM_CREATE_OBJECT(query_factory, QueryFactory);
   QueryProcessor      *query_processor = NULL;
@@ -406,7 +411,7 @@ ODBCM_RC_STATUS ODBCManager::DeleteOneRow(unc_keytype_datatype_t db_name,
     return status;
   }
   pfc_log_debug("ODBCM::ODBCManager::DeleteOneRow: "
-      "row_list size : %d ", static_cast<int>(rlist.size()));
+      "row_list size : %" PFC_PFMT_SIZE_T, rlist.size());
   // db_table_schema.PrintDBTableSchema();
   if (rlist.size() > 1) {
     pfc_log_debug("ODBCM::ODBCManager::DeleteOneRow: "
@@ -455,11 +460,11 @@ ODBCM_RC_STATUS ODBCManager::DeleteOneRow(unc_keytype_datatype_t db_name,
     }
     if (status == ODBCM_RC_SUCCESS) {
       /** Commit all active transactions on this connection*/
-      ODBCM_END_TRANSACTION(rw_conn_handle, SQL_COMMIT);
+      ODBCM_END_TRANSACTION(rw_conn_handle, SQL_COMMIT, status);
       pfc_log_debug("ODBCM::ODBCManager::DeleteOneRow:row is deleted");
     } else {
       /** Rollback all active transactions on this connection*/
-      ODBCM_END_TRANSACTION(rw_conn_handle, SQL_ROLLBACK);
+      ODBCM_END_TRANSACTION(rw_conn_handle, SQL_ROLLBACK, status);
       pfc_log_debug("ODBCM::ODBCManager::DeleteOneRow:row is not deleted");
     }
   } else {
@@ -510,7 +515,7 @@ ODBCM_RC_STATUS ODBCManager::UpdateOneRow(unc_keytype_datatype_t db_name,
   /** Allocation for sql stmt */
   HSTMT           update_stmt = NULL;
   SQLHDBC rw_conn_handle = conn_obj->get_conn_handle();
-  ODBCM_STATEMENT_CREATE(rw_conn_handle, update_stmt);
+  ODBCM_STATEMENT_CREATE(rw_conn_handle, update_stmt, odbc_rc);
   /** Create query_factory, query processor, dbvarbind obj */
   QueryFactory    *query_factory = NULL;
   ODBCM_CREATE_OBJECT(query_factory, QueryFactory);
@@ -601,8 +606,8 @@ ODBCM_RC_STATUS ODBCManager::UpdateOneRow(unc_keytype_datatype_t db_name,
     std::vector< TableAttrSchema >::iterator iter_vector;
     uint32_t pkey_size =  primarykeys.size();
     pfc_log_debug("ODBCM::ODBCManager::UpdateOneRow: "
-      "primary keys size %d, rowlist vector size %d",
-      pkey_size, static_cast<int>((*iter).size()));
+      "primary keys size %d, rowlist vector size %" PFC_PFMT_SIZE_T,
+      pkey_size, (*iter).size());
     iter_vector = (*iter).begin();
 
     for (uint32_t loop = 0; loop < (*iter).size(); loop++) {
@@ -620,7 +625,7 @@ ODBCM_RC_STATUS ODBCManager::UpdateOneRow(unc_keytype_datatype_t db_name,
       return status;
     } else {
       pfc_log_debug("ODBCM::ODBCManager::UpdateOneRow: "
-        "Vector size with pkeys %d", static_cast<int>((*iter).size()));
+        "Vector size with pkeys %" PFC_PFMT_SIZE_T, (*iter).size());
       if ((*iter).size() >= pkey_size) {
         uint32_t index = 0;
         for (iter_vector = (*iter).begin();
@@ -634,7 +639,7 @@ ODBCM_RC_STATUS ODBCManager::UpdateOneRow(unc_keytype_datatype_t db_name,
         }
         pfc_log_debug("ODBCM::ODBCManager::UpdateOneRow: primary keys"
             " value are removed from attributes_vector to skip from update."
-            " vector size = %d", static_cast<int>((*iter).size()));
+            " vector size = %" PFC_PFMT_SIZE_T, (*iter).size());
       }
     }
   } else {
@@ -643,7 +648,7 @@ ODBCM_RC_STATUS ODBCManager::UpdateOneRow(unc_keytype_datatype_t db_name,
   iter = rlist.begin();
   if (iter != rlist.end()) {
     pfc_log_debug("ODBCM::ODBCManager::UpdateOneRow: "
-      "rowlist vector size: %d", static_cast<int>((*iter).size()));
+      "rowlist vector size: %" PFC_PFMT_SIZE_T, (*iter).size());
     /** To filling the values into binded structure variables */
     status = (db_varbind->*db_varbind->FillINPUTValues)((*iter));
     if (status != ODBCM_RC_SUCCESS) {
@@ -673,11 +678,11 @@ ODBCM_RC_STATUS ODBCManager::UpdateOneRow(unc_keytype_datatype_t db_name,
               CREATEONEROW, update_stmt);
     if (status == ODBCM_RC_SUCCESS) {
       /** Commit all active transactions on this connection*/
-      ODBCM_END_TRANSACTION(rw_conn_handle, SQL_COMMIT);
+      ODBCM_END_TRANSACTION(rw_conn_handle, SQL_COMMIT, status);
       pfc_log_info("ODBCM::ODBCManager::UpdateOneRow:row is updated");
     } else {
       /** Rollback all active transactions on this connection*/
-      ODBCM_END_TRANSACTION(rw_conn_handle, SQL_ROLLBACK);
+      ODBCM_END_TRANSACTION(rw_conn_handle, SQL_ROLLBACK, status);
       pfc_log_info("ODBCM::ODBCManager::UpdateOneRow:row is not updated");
     }
   } else {
@@ -708,7 +713,8 @@ ODBCM_RC_STATUS ODBCManager::GetOneRow(
     DBTableSchema &db_table_schema, OdbcmConnectionHandler *conn_obj) {
   PHY_FINI_READ_LOCK();
   /** Initialise the local variables */
-  string            getone_query = "";  /* to receive the query from queryfactory */
+  string            getone_query = "";  // to receive the
+                                    // query from queryfactory
   SQLRETURN         odbc_rc  = ODBCM_RC_SUCCESS;  //  SQL API rc
   ODBCM_RC_STATUS   status   = ODBCM_RC_SUCCESS;  //  Other method rc
   ODBCMTable        table_id = UNKNOWN_TABLE;
@@ -716,7 +722,7 @@ ODBCM_RC_STATUS ODBCManager::GetOneRow(
 
   HSTMT read_stmt = NULL;  /* statement for getonerow */
   SQLHDBC ro_conn_handle = conn_obj->get_conn_handle();
-  ODBCM_STATEMENT_CREATE(ro_conn_handle, read_stmt);
+  ODBCM_STATEMENT_CREATE(ro_conn_handle, read_stmt, odbc_rc);
 
   /** DBTableSchema row_list - get from parameter */
   std::list < std::vector <TableAttrSchema> >& rlist =
@@ -749,6 +755,10 @@ ODBCM_RC_STATUS ODBCManager::GetOneRow(
   /* prepare the sql statement using constructed sql string */
   status = query_processor->PrepareQueryStatement(
             getone_query, read_stmt);
+  if (status == ODBCM_RC_CONNECTION_ERROR) {
+    err_connx_list_.push_back(conn_obj->get_using_session_id());
+  }
+
   if (status !=  ODBCM_RC_SUCCESS) {
     pfc_log_error("ODBCM::ODBCManager::GetOneRow: "
         "Error in preparing query statement: %s"
@@ -823,6 +833,9 @@ ODBCM_RC_STATUS ODBCManager::GetOneRow(
     }
     /** Execute the ReadDBQuery with the above statement */
     status = query_processor->ExecuteReadDBQuery(GETONEROW, read_stmt);
+    if (status == ODBCM_RC_CONNECTION_ERROR) {
+      err_connx_list_.push_back(conn_obj->get_using_session_id());
+    }
     if (status != ODBCM_RC_SUCCESS &&
         status != ODBCM_RC_SUCCESS_WITH_INFO) {
       pfc_log_debug("ODBCM::ODBCManager::GetOneRow: "
@@ -895,7 +908,7 @@ ODBCM_RC_STATUS ODBCManager::ClearOneRow(unc_keytype_datatype_t db_name,
   /** statement for clearonerow */
   HSTMT clearone_stmt = NULL;
   SQLHDBC rw_conn_handle = conn_obj->get_conn_handle();
-  ODBCM_STATEMENT_CREATE(rw_conn_handle, clearone_stmt);
+  ODBCM_STATEMENT_CREATE(rw_conn_handle, clearone_stmt, odbc_rc);
   /** Create query_factory and query processor objects */
   QueryFactory    *query_factory    = NULL;
   ODBCM_CREATE_OBJECT(query_factory, QueryFactory);
@@ -985,11 +998,11 @@ ODBCM_RC_STATUS ODBCManager::ClearOneRow(unc_keytype_datatype_t db_name,
             CLEARONEROW, clearone_stmt);
     if (status == ODBCM_RC_SUCCESS) {
       /** Commit all active transactions on this connection*/
-      ODBCM_END_TRANSACTION(rw_conn_handle, SQL_COMMIT);
+      ODBCM_END_TRANSACTION(rw_conn_handle, SQL_COMMIT, status);
       pfc_log_info("ODBCM::ODBCManager::ClearOneRow:row is cleared");
     } else {
       /** Rollback all active transactions on this connection*/
-      ODBCM_END_TRANSACTION(rw_conn_handle, SQL_ROLLBACK);
+      ODBCM_END_TRANSACTION(rw_conn_handle, SQL_ROLLBACK, status);
       pfc_log_info("ODBCM::ODBCManager::ClearOneRow:row is not cleared");
     }
   } else {
@@ -1031,7 +1044,7 @@ ODBCM_RC_STATUS ODBCManager::IsRowExists(
   /** Statement for isrowexists */
   HSTMT           rowexists_stmt   = NULL;
   SQLHDBC ro_conn_handle = conn_obj->get_conn_handle();
-  ODBCM_STATEMENT_CREATE(ro_conn_handle, rowexists_stmt);
+  ODBCM_STATEMENT_CREATE(ro_conn_handle, rowexists_stmt, odbc_rc);
   /** Create query_factory and query processor objects */
   QueryFactory    *query_factory    = NULL;
   ODBCM_CREATE_OBJECT(query_factory, QueryFactory);
@@ -1056,6 +1069,10 @@ ODBCM_RC_STATUS ODBCManager::IsRowExists(
   /** Prepare the query statement */
   status = query_processor->PrepareQueryStatement(
             query, rowexists_stmt);
+  if (status == ODBCM_RC_CONNECTION_ERROR) {
+    err_connx_list_.push_back(conn_obj->get_using_session_id());
+  }
+
   if (status != ODBCM_RC_SUCCESS) {
     pfc_log_error("ODBCM::ODBCManager::IsRowExists: "
         "Error in preparing query statement");
@@ -1144,6 +1161,9 @@ ODBCM_RC_STATUS ODBCManager::IsRowExists(
    * string from queryfactory */
   status  = query_processor->ExecuteGroupOperationQuery(ISROWEXISTS,
                                                         rowexists_stmt);
+  if (status == ODBCM_RC_CONNECTION_ERROR) {
+    err_connx_list_.push_back(conn_obj->get_using_session_id());
+  }
   if ((status == ODBCM_RC_ROW_EXISTS || status == ODBCM_RC_SUCCESS)
       && db_varbind->p_isrowexists->is_exists == EXISTS &&
       db_varbind->p_isrowexists->cs_row_status != UNKNOWN) {
@@ -1225,7 +1245,7 @@ ODBCM_RC_STATUS ODBCManager::GetBulkRows(
     * was successfully created */
   HSTMT           read_stmt         = NULL;
   SQLHDBC ro_conn_handle = conn_obj->get_conn_handle();
-  ODBCM_STATEMENT_CREATE(ro_conn_handle, read_stmt);
+  ODBCM_STATEMENT_CREATE(ro_conn_handle, read_stmt, odbc_rc);
   /** Create query_factory and query processor objects */
   QueryFactory    *query_factory    = NULL;
   ODBCM_CREATE_OBJECT(query_factory, QueryFactory);
@@ -1256,6 +1276,10 @@ ODBCM_RC_STATUS ODBCManager::GetBulkRows(
   /* prepare sql statment with constructed query string  */
   status = query_processor->PrepareQueryStatement(
             getbulk_query, read_stmt);
+  if (status == ODBCM_RC_CONNECTION_ERROR) {
+    err_connx_list_.push_back(conn_obj->get_using_session_id());
+  }
+
   if (status !=  ODBCM_RC_SUCCESS) {
     pfc_log_error("ODBCM::ODBCManager::GetBulkRows: "
         "Error in preparing query statement: %s",
@@ -1326,6 +1350,9 @@ ODBCM_RC_STATUS ODBCManager::GetBulkRows(
   }
   /** Execute the ReadDBQuery with the above statement */
   status = query_processor->ExecuteReadDBQuery(GETBULKROWS, read_stmt);
+  if (status == ODBCM_RC_CONNECTION_ERROR) {
+    err_connx_list_.push_back(conn_obj->get_using_session_id());
+  }
   /** Fill the database output in dbtableschema */
   if (status != ODBCM_RC_SUCCESS) {
     pfc_log_debug("ODBCM::ODBCManager::GetBulkRows: "
@@ -1340,6 +1367,10 @@ ODBCM_RC_STATUS ODBCManager::GetBulkRows(
   /**  Fetch the no. of row return in last executed query */
   odbc_rc = SQLRowCount(read_stmt, &row_count);
   ODBCM_PROCESS_HANDLE_CHECK(read_stmt, odbc_rc);
+
+  if (odbc_rc == ODBCM_RC_CONNECTION_ERROR) {
+    err_connx_list_.push_back(conn_obj->get_using_session_id());
+  }
   if (odbc_rc != ODBCM_RC_SUCCESS &&
       odbc_rc != ODBCM_RC_SUCCESS_WITH_INFO) {
     pfc_log_debug("ODBCM::ODBCManager::GetBulkRows: "
@@ -1427,8 +1458,8 @@ ODBCM_RC_STATUS ODBCManager::GetBulkRows(
     }
   }
   db_table_schema.set_row_list(rlist);
-  pfc_log_debug("ODBCM::ODBCManager::GetBulkRows:dbtableschema list size: %d",
-               static_cast<int>(db_table_schema.row_list_.size()));
+  pfc_log_debug("ODBCM::ODBCManager::GetBulkRows:dbtableschema list size: %"
+               PFC_PFMT_SIZE_T, db_table_schema.row_list_.size());
   status = ODBCM_RC_SUCCESS;
   // db_table_schema.PrintDBTableSchema();
   /* Freeing all allocated memory */
@@ -1472,7 +1503,7 @@ ODBCM_RC_STATUS ODBCManager::GetSiblingCount(
   HSTMT stmt = NULL;  // statement for getsiblingcount
   SQLHDBC ro_conn_handle = conn_obj->get_conn_handle();
   /* Do sql allocate for sql stmt */
-  ODBCM_STATEMENT_CREATE(ro_conn_handle, stmt);
+  ODBCM_STATEMENT_CREATE(ro_conn_handle, stmt, odbc_rc);
 
   /** Create query_factory and query processor objects */
   QueryFactory *query_factory = NULL;
@@ -1509,6 +1540,10 @@ ODBCM_RC_STATUS ODBCManager::GetSiblingCount(
   }
   /* Prepare the query statement */
   status = query_processor->PrepareQueryStatement(QUERY, stmt);
+  if (status == ODBCM_RC_CONNECTION_ERROR) {
+    err_connx_list_.push_back(conn_obj->get_using_session_id());
+  }
+
   if (status != ODBCM_RC_SUCCESS) {
     pfc_log_error("ODBCM::ODBCManager::GetSiblingCount: Error in "
         "preparing query statement: %s",
@@ -1622,7 +1657,7 @@ ODBCM_RC_STATUS ODBCManager::GetRowCount(
   count = 0;
   SQLHDBC ro_conn_handle = conn_obj->get_conn_handle();
   /** Do sql allocate for sql stmt */
-  ODBCM_STATEMENT_CREATE(ro_conn_handle, stmt);
+  ODBCM_STATEMENT_CREATE(ro_conn_handle, stmt, odbc_rc);
   /** Create query_factory and query processor objects */
   ODBCM_CREATE_OBJECT(query_factory, QueryFactory);
   ODBCM_CREATE_OBJECT(query_processor, QueryProcessor);
@@ -1727,7 +1762,7 @@ ODBCM_RC_STATUS ODBCManager::GetModifiedRows(
   HSTMT get_stmt = NULL;
   SQLHDBC ro_conn_handle = conn_obj->get_conn_handle();
   /* Do sql allocate for sql stmt */
-  ODBCM_STATEMENT_CREATE(ro_conn_handle, get_stmt);
+  ODBCM_STATEMENT_CREATE(ro_conn_handle, get_stmt, odbc_rc);
 
   QueryFactory *query_factory = NULL;
   ODBCM_CREATE_OBJECT(query_factory, QueryFactory);
@@ -1769,6 +1804,10 @@ ODBCM_RC_STATUS ODBCManager::GetModifiedRows(
 
   /* Prepare the query statement */
   status = query_processor->PrepareQueryStatement(QUERY, get_stmt);
+  if (status == ODBCM_RC_CONNECTION_ERROR) {
+    err_connx_list_.push_back(conn_obj->get_using_session_id());
+  }
+
   if (status != ODBCM_RC_SUCCESS) {
     pfc_log_error("ODBCM::ODBCManager::GetModifiedRows: "
       "Error in preparing query statement: %s",
@@ -1808,6 +1847,9 @@ ODBCM_RC_STATUS ODBCManager::GetModifiedRows(
   /** Fetch the no. of row return in last executed query */
   odbc_rc = SQLRowCount(get_stmt, &iRow_count);
   ODBCM_PROCESS_HANDLE_CHECK(get_stmt, odbc_rc);
+  if (odbc_rc == ODBCM_RC_CONNECTION_ERROR) {
+    err_connx_list_.push_back(conn_obj->get_using_session_id());
+  }
   if (odbc_rc != ODBCM_RC_SUCCESS &&
       odbc_rc != ODBCM_RC_SUCCESS_WITH_INFO) {
     pfc_log_debug("ODBCM::ODBCManager::GetModifiedRows: "
@@ -1897,8 +1939,8 @@ ODBCM_RC_STATUS ODBCManager::GetModifiedRows(
 
   db_table_schema.set_row_list(rlist);
   pfc_log_debug("ODBCM::ODBCManager::GetModifiedRows:"
-      "dbtableschema list size: %d",
-      static_cast<int>(db_table_schema.row_list_.size()));
+      "dbtableschema list size: %" PFC_PFMT_SIZE_T,
+      db_table_schema.row_list_.size());
   status = ODBCM_RC_SUCCESS;
   // db_table_schema.PrintDBTableSchema();
   /** Freeing all allocated memory */
@@ -1944,7 +1986,7 @@ ODBCM_RC_STATUS ODBCManager::GetSiblingCount(
   HSTMT stmt = NULL;
   SQLHDBC ro_conn_handle = conn_obj->get_conn_handle();
   /* sql handle allocate for sql stmt */
-  ODBCM_STATEMENT_CREATE(ro_conn_handle, stmt);
+  ODBCM_STATEMENT_CREATE(ro_conn_handle, stmt, odbc_rc);
   /** Create query_factory object */
   QueryFactory *query_factory = NULL;
   ODBCM_CREATE_OBJECT(query_factory, QueryFactory);
@@ -1982,6 +2024,10 @@ ODBCM_RC_STATUS ODBCManager::GetSiblingCount(
   }
   /** Prepare the query statement */
   status = query_processor->PrepareQueryStatement(QUERY, stmt);
+  if (status == ODBCM_RC_CONNECTION_ERROR) {
+    err_connx_list_.push_back(conn_obj->get_using_session_id());
+  }
+
   if (status != ODBCM_RC_SUCCESS) {
     pfc_log_error("ODBCM::ODBCManager::GetSiblingCount(with filter): "
       "Error in preparing statement: %s",
@@ -2026,6 +2072,9 @@ ODBCM_RC_STATUS ODBCManager::GetSiblingCount(
     }
     status = query_processor->ExecuteReadDBQuery(
               GETSIBLINGCOUNT_FILTER, stmt);
+    if (status == ODBCM_RC_CONNECTION_ERROR) {
+      err_connx_list_.push_back(conn_obj->get_using_session_id());
+    }
     if (status != ODBCM_RC_SUCCESS) {
       pfc_log_debug("ODBCM::ODBCManager::GetSiblingCount(with filter): "
                       "ExecuteReadDBQuery status %s",
@@ -2115,7 +2164,7 @@ ODBCM_RC_STATUS ODBCManager::GetSiblingRows(
   HSTMT get_stmt = NULL;
   SQLHDBC ro_conn_handle = conn_obj->get_conn_handle();
   /* Do sql allocate for sql stmt */
-  ODBCM_STATEMENT_CREATE(ro_conn_handle, get_stmt);
+  ODBCM_STATEMENT_CREATE(ro_conn_handle, get_stmt, odbc_rc);
 
   QueryFactory *query_factory = NULL;
   ODBCM_CREATE_OBJECT(query_factory, QueryFactory);
@@ -2154,6 +2203,10 @@ ODBCM_RC_STATUS ODBCManager::GetSiblingRows(
 
   /** prepare sql statment with constructed query string  */
   status = query_processor->PrepareQueryStatement(QUERY, get_stmt);
+  if (status == ODBCM_RC_CONNECTION_ERROR) {
+    err_connx_list_.push_back(conn_obj->get_using_session_id());
+  }
+
   if (status !=  ODBCM_RC_SUCCESS) {
     pfc_log_error("ODBCM::ODBCManager::GetSiblingRows: "
         "Error in preparing query statement: %s",
@@ -2225,6 +2278,9 @@ ODBCM_RC_STATUS ODBCManager::GetSiblingRows(
   /** Execute the ReadDBQuery with the above statement */
   status = query_processor->ExecuteReadDBQuery(
                                                GETSIBLINGROWS, get_stmt);
+  if (status == ODBCM_RC_CONNECTION_ERROR) {
+    err_connx_list_.push_back(conn_obj->get_using_session_id());
+  }
   /** Fill the database output in dbtableschema */
   if (status != ODBCM_RC_SUCCESS) {
     pfc_log_error("ODBCM::ODBCManager::GetSiblingRows: "
@@ -2240,6 +2296,9 @@ ODBCM_RC_STATUS ODBCManager::GetSiblingRows(
    * executed query */
   odbc_rc = SQLRowCount(get_stmt, &iRow_count);
   ODBCM_PROCESS_HANDLE_CHECK(get_stmt, odbc_rc);
+  if (odbc_rc == ODBCM_RC_CONNECTION_ERROR) {
+    err_connx_list_.push_back(conn_obj->get_using_session_id());
+  }
   if (odbc_rc != ODBCM_RC_SUCCESS &&
       odbc_rc != ODBCM_RC_SUCCESS_WITH_INFO) {
     pfc_log_debug("ODBCM::ODBCManager::GetSiblingRows: "
@@ -2325,8 +2384,8 @@ ODBCM_RC_STATUS ODBCManager::GetSiblingRows(
 
   db_table_schema.set_row_list(rlist);
   pfc_log_debug("ODBCM::ODBCManager::GetSiblingRows: "
-      "dbtableschema list size:%d",
-      static_cast<int>(db_table_schema.row_list_.size()));
+      "dbtableschema list size:%" PFC_PFMT_SIZE_T,
+      db_table_schema.row_list_.size());
   status = ODBCM_RC_SUCCESS;
   // db_table_schema.PrintDBTableSchema();
   /* Freeing all allocated memory */
index 8d6a69fe008b0d636d623ebce42099cbfd1ba9fb..039f1c3098733e2a7c132c4d86e64d1ced08f1ee 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -70,7 +70,7 @@ ODBCM_RC_STATUS ODBCManager::ClearDatabase(unc_keytype_datatype_t db_name,
 
   SQLHDBC rw_conn_handle = conn_obj->get_conn_handle();
   /** Allocate for db statement handle */
-  ODBCM_STATEMENT_CREATE(rw_conn_handle, clear_stmt);
+  ODBCM_STATEMENT_CREATE(rw_conn_handle, clear_stmt, odbc_rc);
   /** Create query_factory and query processor objects */
   ODBCM_CREATE_OBJECT(query_factory, QueryFactory);
   ODBCM_CREATE_OBJECT(query_processor, QueryProcessor);
@@ -92,11 +92,11 @@ ODBCM_RC_STATUS ODBCManager::ClearDatabase(unc_keytype_datatype_t db_name,
               CLEARDATABASE, cleardb_query, clear_stmt);
   if (status == ODBCM_RC_SUCCESS) {
     /** Commit all active transactions on this connection*/
-    ODBCM_END_TRANSACTION(rw_conn_handle, SQL_COMMIT);
+    ODBCM_END_TRANSACTION(rw_conn_handle, SQL_COMMIT, status);
     pfc_log_info("ODBCM::ODBCManager::ClearDatabase:database is cleared");
   } else {
     /** Rollback all active transactions on this connection*/
-    ODBCM_END_TRANSACTION(rw_conn_handle, SQL_ROLLBACK);
+    ODBCM_END_TRANSACTION(rw_conn_handle, SQL_ROLLBACK, status);
     pfc_log_info("ODBCM::ODBCManager::ClearDatabase:database is not cleared");
   }
   /* Freeing all allocated memory */
@@ -142,7 +142,7 @@ ODBCM_RC_STATUS ODBCManager::CopyDatabase(
   }
   SQLHDBC rw_conn_handle = conn_obj->get_conn_handle();
   /** Create p_query_factory and query processor objects */
-  ODBCM_STATEMENT_CREATE(rw_conn_handle, copy_stmt);
+  ODBCM_STATEMENT_CREATE(rw_conn_handle, copy_stmt, odbc_rc);
   ODBCM_CREATE_OBJECT(p_query_factory, QueryFactory);
   ODBCM_CREATE_OBJECT(query_processor, QueryProcessor);
   /** Set the FPTR */
@@ -162,11 +162,11 @@ ODBCM_RC_STATUS ODBCManager::CopyDatabase(
     COPYDATABASE, p_copydb_query, copy_stmt);
   if (status == ODBCM_RC_SUCCESS) {
     /** Commit all active transactions on this connection*/
-    ODBCM_END_TRANSACTION(rw_conn_handle, SQL_COMMIT);
+    ODBCM_END_TRANSACTION(rw_conn_handle, SQL_COMMIT, status);
     pfc_log_info("ODBCM::ODBCManager::CopyDatabase:database is copied");
   } else {
     /** Rollback all active transactions on this connection*/
-    ODBCM_END_TRANSACTION(rw_conn_handle, SQL_ROLLBACK);
+    ODBCM_END_TRANSACTION(rw_conn_handle, SQL_ROLLBACK, status);
     pfc_log_info("ODBCM::ODBCManager::CopyDatabase:database is not copied");
   }
   /* Freeing all allocated memory */
@@ -202,7 +202,7 @@ ODBCM_RC_STATUS ODBCManager::IsCandidateDirty(
 
   SQLHDBC ro_conn_handle = conn_obj->get_conn_handle();
   /** Allocate for db statement handle */
-  ODBCM_STATEMENT_CREATE(ro_conn_handle, isdirty_stmt);
+  ODBCM_STATEMENT_CREATE(ro_conn_handle, isdirty_stmt, odbc_rc);
   /** Create query_factory and query processor objects */
   ODBCM_CREATE_OBJECT(query_factory, QueryFactory);
   ODBCM_CREATE_OBJECT(query_processor, QueryProcessor);
@@ -222,6 +222,9 @@ ODBCM_RC_STATUS ODBCManager::IsCandidateDirty(
   /** Execute the query statements as a single transaction */
   status = query_processor->ExecuteTransaction(
             ISCANDIDATEDIRTY, query, isdirty_stmt);
+  if (status == ODBCM_RC_CONNECTION_ERROR) {
+    err_connx_list_.push_back(conn_obj->get_using_session_id());
+  }
   if ((status == ODBCM_RC_STMT_ERROR) ||
       (status == ODBCM_RC_DATA_ERROR)) {
     pfc_log_error("ODBCM::ODBCManager::IsCandidateDirty: "
@@ -282,7 +285,7 @@ ODBCM_RC_STATUS ODBCManager::CommitAllConfiguration(
   }
   SQLHDBC rw_conn_handle = conn_obj->get_conn_handle();
   /** Create query_factory and query processor objects */
-  ODBCM_STATEMENT_CREATE(rw_conn_handle, commit_stmt);
+  ODBCM_STATEMENT_CREATE(rw_conn_handle, commit_stmt, odbc_rc);
   ODBCM_CREATE_OBJECT(query_factory, QueryFactory);
   ODBCM_CREATE_OBJECT(query_processor, QueryProcessor);
   /** Fptr for queryfactory to construct COMMITALLCONFIG query */
@@ -336,12 +339,12 @@ ODBCM_RC_STATUS ODBCManager::CommitAllConfiguration(
   }
   if (status == ODBCM_RC_SUCCESS) {
     /** Commit all active transactions on this connection*/
-    ODBCM_END_TRANSACTION(rw_conn_handle, SQL_COMMIT);
+    ODBCM_END_TRANSACTION(rw_conn_handle, SQL_COMMIT, status);
     pfc_log_info("ODBCM::ODBCManager::CommitAllConfiguration: "
         "ODBCM level commit is completed");
   } else {
     /** Rollback all active transactions on this connection*/
-    ODBCM_END_TRANSACTION(rw_conn_handle, SQL_ROLLBACK);
+    ODBCM_END_TRANSACTION(rw_conn_handle, SQL_ROLLBACK, status);
     pfc_log_info("ODBCM::ODBCManager::CommitAllConfiguration: "
         "ODBCM level commit is not completed");
   }
@@ -375,7 +378,7 @@ ODBCM_RC_STATUS ODBCManager::ClearOneInstance(
 
   SQLHDBC rw_conn_handle = conn_obj->get_conn_handle();
   /** Do sql allocate for sql stmt */
-  ODBCM_STATEMENT_CREATE(rw_conn_handle, stmt);
+  ODBCM_STATEMENT_CREATE(rw_conn_handle, stmt, odbc_rc);
   /** Create query_factory and query processor objects */
   ODBCM_CREATE_OBJECT(query_factory, QueryFactory);
   ODBCM_CREATE_OBJECT(query_processor, QueryProcessor);
@@ -397,11 +400,11 @@ ODBCM_RC_STATUS ODBCManager::ClearOneInstance(
   status = query_processor->ExecuteTransaction(
       CLEARONEINSTANCE, QUERY, stmt);
   if (status == ODBCM_RC_SUCCESS) {
-    ODBCM_END_TRANSACTION(rw_conn_handle, SQL_COMMIT);
+    ODBCM_END_TRANSACTION(rw_conn_handle, SQL_COMMIT, status);
     pfc_log_info("ODBCM::ODBCManager::ClearOneInstance: "
       "given one instance is cleared");
   } else {
-    ODBCM_END_TRANSACTION(rw_conn_handle, SQL_ROLLBACK);
+    ODBCM_END_TRANSACTION(rw_conn_handle, SQL_ROLLBACK, status);
     pfc_log_info("ODBCM::ODBCManager::ClearOneInstance: "
       "given one instance is not cleared");
   }
@@ -413,6 +416,9 @@ ODBCM_RC_STATUS ODBCManager::ClearOneInstance(
     delete []QUERY;
     QUERY = NULL;
   }
+  if (status == ODBCM_RC_CONNECTION_ERROR) {
+    err_connx_list_.push_back(conn_obj->get_using_session_id());
+  }
   return status;
 }
 /**EOF*/
index 891261cc43f4fe45583e13006ada7fa2f635e4d3..e042873853df571f5607bf14d93668e38705317d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -1003,8 +1003,8 @@ SQLQUERY* QueryFactory::operation_iscandidatedirty() {
   db_table_list_map = p_odbc_mgr->get_db_table_list_map_();
   if (db_table_list_map.size() <= 0) {
     pfc_log_debug("ODBCM::QueryFactory::IsCandidateDirty: "
-      "Table list size is invalid:%d",
-      static_cast<int>(db_table_list_map.size()));
+      "Table list size is invalid:%" PFC_PFMT_SSIZE_T,
+      db_table_list_map.size());
     delete []p_cand_db;
     return NULL;
   }
@@ -1144,6 +1144,13 @@ SQLQUERY QueryFactory::operation_getbulkrows(unc_keytype_datatype_t db_name,
       GetTableName(db_table_schema.table_name_);
   if (db_table_schema.primary_keys_.size() != 0) {
     getbulk_query << getbulk_where.str();
+    if (db_name == UNC_DT_CANDIDATE) {
+     getbulk_query << " and cs_row_status != " << DELETED;
+     pfc_log_debug("Excluding Deleted rows of Candidate");
+    }
+  } else if (db_name == UNC_DT_CANDIDATE) {
+    getbulk_query << " where cs_row_status != " << DELETED;
+    pfc_log_debug("Excluding(Else) Deleted rows of Candidate");
   }
   getbulk_query << getOrderByString(db_table_schema.table_name_,
                   db_table_schema.primary_keys_) << " ASC ";
@@ -1472,7 +1479,7 @@ SQLQUERY QueryFactory::operation_getsiblingrows(
   getsibling_query << " FROM " << prefix << ODBCManager::get_ODBCManager()->
       GetTableName(db_table_schema.table_name_);
   if (db_table_schema.primary_keys_.size() != 0) {
-    getsibling_query << getsibling_where.str();    
+    getsibling_query << getsibling_where.str();
   }
   getsibling_query << getOrderByString(db_table_schema.table_name_,
                                          db_table_schema.primary_keys_);
@@ -1578,8 +1585,8 @@ SQLQUERY* QueryFactory::operation_commit_all_config(
   /** Table list is empty, return NULL */
   if (db_table_list_map.size() <= 0) {
     pfc_log_debug("ODBCM::QueryFactory::CommitAllConfiguration: "
-      "Table list size is invalid:%d",
-      static_cast<int>(db_table_list_map.size()));
+      "Table list size is invalid:%" PFC_PFMT_SSIZE_T,
+      db_table_list_map.size());
     delete []p_commit_db;
     return NULL;
   }
index a8d42f771634112ea1d441eb16dd0385e419e289..dcb2a011150ec4ecf3c92e14f4216a4407838402 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -301,8 +301,8 @@ ODBCM_RC_STATUS QueryProcessor::ExecuteTransaction(
                         ODBCMUtils::get_RC_Details(odbc_rc).c_str());
           return (ODBCM_RC_STATUS)odbc_rc;
         }
-        pfc_log_debug("ODBCM::QueryProcessor::ExecuteTransaction: "
-            "%ld rows with cs_row_status not as APPLIED", row_count);
+        pfc_log_debug("ODBCM::QueryProcessor::ExecuteTransaction: %ld"
+                      " rows with cs_row_status not as APPLIED", row_count);
         /* Close the cursor */
         odbc_rc = SQLCloseCursor(hstmt);
         //  ODBCM_PROCESS_HANDLE_CHECK(hstmt, odbc_rc);
index 9828a684aa7d72f4fb68b5d3997fa9e78cdc3c17..f1664dc2b54a3f9ac4e16c2bf92e14ce9e6e2dba 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -15,6 +15,7 @@
 #include  <arpa/inet.h>
 #include "odbcm_common.hh"
 #include "odbcm_utils.hh"
+#include "physicallayer.hh"
 #include "physical_common_def.hh"
 #include "odbcm_db_varbind.hh"
 
@@ -619,6 +620,12 @@ ODBCM_RC_STATUS ODBCMUtils::OdbcmHandleDiagnosticsPrint(
     if (rc != ODBCM_RC_FAILED) {
       if (rc == ODBCM_RC_COMMON_LINK_FAILURE) {
         pfc_log_error("ODBCM::ODBCMUtills:: ODBCM_RC_COMMON_LINK_FAILURE");
+        PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
+        PhysicalCore* physical_core = physical_layer->get_physical_core();
+        physical_layer->get_odbc_manager()->FreeingConnections(false);
+        if (physical_core->system_transit_state_ == true) {
+          return ODBCM_RC_FAILED;
+        }
         return ODBCM_RC_CONNECTION_ERROR;
       }
       pfc_log_debug("ODBCM::ODBCMUtils::SQLGetDiagRec: SQLState: %s,"
@@ -762,5 +769,70 @@ void ODBCMUtils::OdbcmTransRollback(SQLHANDLE hdbc) {
   }
 }
 
+/**
+*@Description : db connection pool - semaphore access 
+                initializes semaphore using SETVAL
+*@param[in]   : int val 
+*@return      : int
+*/
+int ODBCMUtils::set_semvalue(int val) {
+  union semun sem_union;  // sem_union;
+
+  sem_union.val = val;
+  if ( semctl ( sem_id, 0, SETVAL, sem_union ) == -1 ) return ( 0 );
+  return 1;
+}
+
+/**
+*@Description : delete semaphore
+*@param[in]   : None
+*@return      : int 
+*/
+int ODBCMUtils::del_semvalue() {
+  union semun sem_union;  // sem_union;
+
+  sem_union.val = 1;
+  if ( semctl ( sem_id, 0, IPC_RMID, sem_union ) == -1 ) return ( 0 );
+  return 1;
+}
+
+/**
+*@Description : set semaphore down
+*@param[in]   : None
+*@return      : int 
+*/
+int ODBCMUtils::SEM_DOWN() {
+  struct sembuf b;
+
+  b.sem_num = 0;
+  b.sem_op = -1;  // P(), i.e. down()
+  b.sem_flg = SEM_UNDO;
+  if (semop(sem_id, &b, 1)== -1) {
+    pfc_log_debug("Semaphore DOWN() failed!");
+    return 0;
+  }
+
+  return 1;
+}
+
+/**
+*@Description : set semaphore up 
+*@param[in]   : None
+*@return      : int 
+*/
+int ODBCMUtils::SEM_UP() {
+  struct sembuf b;
+
+  b.sem_num = 0;  /* Operate on semaphore 0 */
+  /* Wait for value to equal 0 */
+  b.sem_op =  1;  // V(), i.e. UP()
+  b.sem_flg = SEM_UNDO;
+  if (semop(sem_id, &b, 1)== -1) {
+    pfc_log_debug("Semaphore UP() failed!");
+    return 0;
+  }
+  return 1;
+}
+
 }  // namespace uppl
 }  // namespace unc
index 7b02751c33af659141ba0cb5842921de38d5b87e..9f561e6530ae370985b9c3820b2a17b155aeffb7 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -24,15 +24,16 @@ using unc::uppl::ODBCMTableColumns;
 /*
  * Set UINT8 value to the specified TableAttrSchema.
  */
-#define TABLE_ATTR_SCHEMA_UINT8_SET(schema, len, str, bufsize)          \
-  do {                                                                  \
-    ColumnAttrValue <unsigned char[(bufsize)]> *__v=                    \
-      new ColumnAttrValue <unsigned char[(bufsize)]>;                   \
-    strncpy(reinterpret_cast<char *>(__v->value), (str).c_str(),        \
-            (bufsize));                                                 \
-    (schema).p_table_attribute_value = __v;                             \
-    (schema).table_attribute_length = (len);                            \
-  } while (0)
+#define TABLE_ATTR_SCHEMA_UINT8_SET(schema, len, str, bufsize)  \
+    do {                                                           \
+      ColumnAttrValue <unsigned char[(bufsize)]> *__v=             \
+      new ColumnAttrValue <unsigned char[(bufsize)]>;        \
+      memset(__v->value, 0, bufsize);                              \
+      strncpy(reinterpret_cast<char *>(__v->value), (str).c_str(), \
+              (len)+1);                 \
+      (schema).p_table_attribute_value = __v;                      \
+      (schema).table_attribute_length = (len);                     \
+    } while (0)
 
 /**getRespHeaderFromReqHeader
  * @Description : This function is for giving response to logical using
@@ -65,19 +66,19 @@ int PhyUtil::sessOutRespHeader(ServerSession& sess,
                                const physical_response_header& rsh) {
   int err = 0;
   err = sess.addOutput(rsh.client_sess_id);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = sess.addOutput(rsh.config_id);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = sess.addOutput(rsh.operation);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = sess.addOutput(rsh.max_rep_count);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = sess.addOutput(rsh.option1);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = sess.addOutput(rsh.option2);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = sess.addOutput(rsh.data_type);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = sess.addOutput(rsh.result_code);
   printRespHeader(rsh);
   return err;
@@ -135,19 +136,19 @@ int PhyUtil::sessGetReqHeader(ServerSession& sess,
                               physical_request_header& rqh) {
   int err = 0;
   err = sess.getArgument(0, rqh.client_sess_id);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = sess.getArgument(1, rqh.config_id);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = sess.getArgument(2, rqh.operation);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = sess.getArgument(3, rqh.max_rep_count);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = sess.getArgument(4, rqh.option1);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = sess.getArgument(5, rqh.option2);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = sess.getArgument(6, rqh.data_type);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = sess.getArgument(7, rqh.key_type);
   return err;
 }
@@ -164,19 +165,19 @@ int PhyUtil::sessOutReqHeader(ClientSession& cli_sess,
                               const physical_request_header& rqh) {
   int err = 0;
   err = cli_sess.addOutput(rqh.client_sess_id);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = cli_sess.addOutput(rqh.config_id);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = cli_sess.addOutput(rqh.operation);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = cli_sess.addOutput(rqh.max_rep_count);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = cli_sess.addOutput(rqh.option1);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = cli_sess.addOutput(rqh.option2);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = cli_sess.addOutput(rqh.data_type);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = cli_sess.addOutput(rqh.key_type);
   return err;
 }
@@ -193,19 +194,19 @@ int PhyUtil::sessGetRespHeader(ClientSession& cli_sess,
                                physical_response_header& rsh) {
   int err = 0;
   err = cli_sess.getResponse(0, rsh.client_sess_id);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = cli_sess.getResponse(1, rsh.config_id);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = cli_sess.getResponse(2, rsh.operation);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = cli_sess.getResponse(3, rsh.max_rep_count);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = cli_sess.getResponse(4, rsh.option1);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = cli_sess.getResponse(5, rsh.option2);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = cli_sess.getResponse(6, rsh.data_type);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = cli_sess.getResponse(7, rsh.result_code);
   return err;
 }
@@ -266,23 +267,23 @@ int PhyUtil::sessOutDriverReqHeader(ClientSession& cli_sess,
                                     const driver_request_header& rqh) {
   int err = 0;
   err = cli_sess.addOutput(rqh.client_sess_id);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = cli_sess.addOutput(rqh.config_id);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = cli_sess.addOutput(rqh.controller_id);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = cli_sess.addOutput(rqh.domain_id);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = cli_sess.addOutput(rqh.operation);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = cli_sess.addOutput(rqh.max_rep_count);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = cli_sess.addOutput(rqh.option1);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = cli_sess.addOutput(rqh.option2);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = cli_sess.addOutput(rqh.data_type);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = cli_sess.addOutput(rqh.key_type);
   if (err == 0) {
     printDriverReqHeader(rqh);
@@ -302,26 +303,26 @@ int PhyUtil::sessGetDriverRespHeader(ClientSession& cli_sess,
                                      driver_response_header& rsh) {
   int err = 0;
   err = cli_sess.getResponse(0, rsh.client_sess_id);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = cli_sess.getResponse(1, rsh.config_id);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   const char* arr;
   err = cli_sess.getResponse(2, arr);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   rsh.controller_id = arr;
   err = cli_sess.getResponse(3, arr);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   rsh.domain_id = arr;
   err = cli_sess.getResponse(4, rsh.operation);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = cli_sess.getResponse(5, rsh.max_rep_count);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = cli_sess.getResponse(6, rsh.option1);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = cli_sess.getResponse(7, rsh.option2);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = cli_sess.getResponse(8, rsh.data_type);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = cli_sess.getResponse(9, rsh.result_code);
   if (err == 0) {
     printDriverRespHeader(rsh);
@@ -342,29 +343,29 @@ int PhyUtil::sessGetDriverEventHeader(ClientSession& cli_sess,
   int err = 0;
   const char* val;
   err = cli_sess.getResponse(0, val);
-  if (err != UPPL_RC_SUCCESS) {
+  if (err != UNC_RC_SUCCESS) {
     pfc_log_debug("error reading controller");
     return err;
   }
   rsh.controller_id = val;
   err = cli_sess.getResponse(1, val);
-  if (err != UPPL_RC_SUCCESS) {
+  if (err != UNC_RC_SUCCESS) {
     pfc_log_debug("error reading domain");
     return err;
   }
   rsh.domain_id = val;
   err = cli_sess.getResponse(2, rsh.operation);
-  if (err != UPPL_RC_SUCCESS) {
+  if (err != UNC_RC_SUCCESS) {
     pfc_log_debug("error reading operation");
     return err;
   }
   err = cli_sess.getResponse(3, rsh.data_type);
-  if (err != UPPL_RC_SUCCESS) {
+  if (err != UNC_RC_SUCCESS) {
     pfc_log_debug("error reading data_type");
     return err;
   }
   err = cli_sess.getResponse(4, rsh.key_type);
-  if (err != UPPL_RC_SUCCESS) {
+  if (err != UNC_RC_SUCCESS) {
     pfc_log_debug("error reading key_type");
     return err;
   }
@@ -392,34 +393,34 @@ int PhyUtil::sessGetDriverAlarmHeader(ClientSession& cli_sess,
   int err = 0;
   const char* val;
   err = cli_sess.getResponse(0, val);
-  if (err != UPPL_RC_SUCCESS) {
+  if (err != UNC_RC_SUCCESS) {
     pfc_log_debug("error reading controller");
     return err;
   }
   rsh.controller_id = val;
   err = cli_sess.getResponse(1, val);
-  if (err != UPPL_RC_SUCCESS) {
+  if (err != UNC_RC_SUCCESS) {
     pfc_log_debug("error reading domain");
     return err;
   }
   rsh.domain_id = val;
   err = cli_sess.getResponse(2, rsh.operation);
-  if (err != UPPL_RC_SUCCESS) {
+  if (err != UNC_RC_SUCCESS) {
     pfc_log_debug("error reading operation");
     return err;
   }
   err = cli_sess.getResponse(3, rsh.data_type);
-  if (err != UPPL_RC_SUCCESS) {
+  if (err != UNC_RC_SUCCESS) {
     pfc_log_debug("error reading data_type");
     return err;
   }
   err = cli_sess.getResponse(4, rsh.key_type);
-  if (err != UPPL_RC_SUCCESS) {
+  if (err != UNC_RC_SUCCESS) {
     pfc_log_debug("error reading key_type");
     return err;
   }
   err = cli_sess.getResponse(5, rsh.alarm_type);
-  if (err != UPPL_RC_SUCCESS) {
+  if (err != UNC_RC_SUCCESS) {
     pfc_log_debug("error reading alarm_type");
     return err;
   }
@@ -447,9 +448,9 @@ int PhyUtil::sessOutNBEventHeader(ServerEvent& cli_sess,
                                   const northbound_event_header& rqh) {
   int err = 0;
   err = cli_sess.addOutput(rqh.operation);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = cli_sess.addOutput(rqh.data_type);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = cli_sess.addOutput(rqh.key_type);
   stringstream ss;
   ss  << "Event from UPPL    :" << endl
@@ -472,11 +473,11 @@ int PhyUtil::sessOutNBAlarmHeader(ServerEvent& cli_sess,
                                   const northbound_alarm_header& rqh) {
   int err = 0;
   err = cli_sess.addOutput(rqh.operation);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = cli_sess.addOutput(rqh.data_type);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = cli_sess.addOutput(rqh.key_type);
-  if (err != UPPL_RC_SUCCESS) return err;
+  if (err != UNC_RC_SUCCESS) return err;
   err = cli_sess.addOutput(rqh.alarm_type);
   stringstream ss;
   ss  << "Alarm from UPPL    :" << endl
@@ -513,6 +514,18 @@ string PhyUtil::uint16tostr(const uint16_t& c) {
   return str1;
 }
 
+/**uint32tostr
+ * @Description : This function does the conversion of type uint32 to string
+ * @param[in]   : c - varaiable of type uint32 
+ * @return      : string
+ * */
+string PhyUtil::uint32tostr(const uint32_t& c) {
+  char str[20];
+  snprintf(str, sizeof(str), "%d", c);
+  string str1 = str;
+  return str1;
+}
+
 /**uint64tostr
  * @Description : This function does the conversion of type uint64 to string
  * @param[in]   : c - varaiable of type uint64 
@@ -561,7 +574,7 @@ uint64_t PhyUtil::strtouint64(const string& str) {
  *                attr_value - Value of the attribute
  *                attr_length - length of the attribute
  *                attr_type - DATATYPE_* datatype of the attribute
- * @param[out]  : vect_attr - vector that contains all details of attributes         
+ * @param[out]  : vect_attr - vector that contains all details of attributes
  * @return      : void
  * */
 void PhyUtil::FillDbSchema(ODBCMTableColumns attr_name, string attr_value,
@@ -572,38 +585,38 @@ void PhyUtil::FillDbSchema(ODBCMTableColumns attr_name, string attr_value,
   table_attr_schema.table_attribute_name = attr_name;
   switch (attr_type) {
     case DATATYPE_UINT16:
-    {
-      ColumnAttrValue <uint16_t> *value = new ColumnAttrValue <uint16_t>;
-      value->value = strtouint(attr_value);
-      table_attr_schema.p_table_attribute_value = value;
-      break;
-    }
+      {
+        ColumnAttrValue <uint16_t> *value = new ColumnAttrValue <uint16_t>;
+        value->value = strtouint(attr_value);
+        table_attr_schema.p_table_attribute_value = value;
+        break;
+      }
     case DATATYPE_UINT64:
-    {
-      ColumnAttrValue <uint64_t> *value = new ColumnAttrValue <uint64_t>;
-      value->value = strtouint64(attr_value);
-      table_attr_schema.p_table_attribute_value = value;
-      break;
-    }
+      {
+        ColumnAttrValue <uint64_t> *value = new ColumnAttrValue <uint64_t>;
+        value->value = strtouint64(attr_value);
+        table_attr_schema.p_table_attribute_value = value;
+        break;
+      }
     case DATATYPE_UINT32:
-    {
-      ColumnAttrValue <uint32_t> *value = new ColumnAttrValue <uint32_t>;
-      value->value = strtouint(attr_value);
-      table_attr_schema.p_table_attribute_value = value;
-      break;
-    }
+      {
+        ColumnAttrValue <uint32_t> *value = new ColumnAttrValue <uint32_t>;
+        value->value = strtouint(attr_value);
+        table_attr_schema.p_table_attribute_value = value;
+        break;
+      }
     case DATATYPE_IPV4:
-    {
-      ColumnAttrValue <uint32_t> *value=
-          new ColumnAttrValue <uint32_t>;
-      value->value = 0;
-      if (!attr_value.empty()) {
-        value->value = inet_addr(attr_value.c_str());
+      {
+        ColumnAttrValue <uint32_t> *value=
+            new ColumnAttrValue <uint32_t>;
+        value->value = 0;
+        if (!attr_value.empty()) {
+          value->value = inet_addr(attr_value.c_str());
+        }
+        pfc_log_debug("ip address to db: %d", value->value);
+        table_attr_schema.p_table_attribute_value = value;
+        break;
       }
-      pfc_log_debug("ip address to db: %d", value->value);
-      table_attr_schema.p_table_attribute_value = value;
-      break;
-    }
 
     case DATATYPE_UINT8_ARRAY_2:
       TABLE_ATTR_SCHEMA_UINT8_SET(table_attr_schema, attr_length, attr_value,
@@ -702,7 +715,7 @@ void PhyUtil::FillDbSchema(ODBCMTableColumns attr_name, uint8_t* attr_value,
     }
     break;
     default:
-      break;
+    break;
   }
   table_attr_schema.request_attribute_type = attr_type;
   vect_attr.push_back(table_attr_schema);
@@ -752,19 +765,19 @@ void PhyUtil::FillDbSchema(ODBCMTableColumns attr_name,
                           empty.length(), attr_type,
                           vect_attr);
   } else if (operation_type == UNC_OP_CREATE &&
-      in_valid_val == UNC_VF_INVALID) {
+             in_valid_val == UNC_VF_INVALID) {
     pfc_log_debug("Attribute '%s' is not given in create request",
                   attr_name_str.c_str());
     out_valid_value << UNC_VF_INVALID;
   } else if ((operation_type == UNC_OP_CREATE ||
-      operation_type == UNC_OP_UPDATE) &&
-      in_valid_val == UPPL_NO_VAL_STRUCT) {
+              operation_type == UNC_OP_UPDATE) &&
+             in_valid_val == UPPL_NO_VAL_STRUCT) {
     out_valid_value << UNC_VF_VALID;
     PhyUtil::FillDbSchema(attr_name, attr_value,
                           attr_value.length(), attr_type,
                           vect_attr);
   } else if (operation_type == UNC_OP_UPDATE &&
-      in_valid_val == UNC_VF_VALID_NO_VALUE) {
+             in_valid_val == UNC_VF_VALID_NO_VALUE) {
     // empty value - value to be deleted
     pfc_log_debug("Attribute '%s' value is to be deleted in update request",
                   attr_name_str.c_str());
@@ -772,15 +785,15 @@ void PhyUtil::FillDbSchema(ODBCMTableColumns attr_name,
     PhyUtil::FillDbSchema(attr_name, empty,
                           empty.length(), attr_type,
                           vect_attr);
-    if(attr_name==unc::uppl::CTR_ENABLE_AUDIT) {
+    if (attr_name == unc::uppl::CTR_ENABLE_AUDIT) {
       out_valid_value << UNC_VF_VALID;
-    } else { 
+    } else {
       out_valid_value << UNC_VF_INVALID;
     }
   } else if (operation_type == UNC_OP_CREATE) {
     out_valid_value << in_valid_val;
   } else if (operation_type == UNC_OP_UPDATE &&
-      in_valid_val == UNC_VF_INVALID) {
+             in_valid_val == UNC_VF_INVALID) {
     pfc_log_debug(
         "Attribute '%s' not given in Update Request. Retain db valid",
         attr_name_str.c_str());
@@ -832,13 +845,13 @@ void PhyUtil::FillDbSchema(ODBCMTableColumns attr_name,
                           empty.length(), attr_type,
                           vect_attr);
   } else if (operation_type == UNC_OP_CREATE &&
-      in_valid_val == UNC_VF_INVALID) {
+             in_valid_val == UNC_VF_INVALID) {
     pfc_log_debug("Attribute '%s' is not given in create request",
                   attr_name_str.c_str());
     out_valid_value << UNC_VF_INVALID;
   } else if ((operation_type == UNC_OP_CREATE ||
-      operation_type == UNC_OP_UPDATE) &&
-      in_valid_val == UPPL_NO_VAL_STRUCT) {
+              operation_type == UNC_OP_UPDATE) &&
+             in_valid_val == UPPL_NO_VAL_STRUCT) {
     pfc_log_debug("Attribute '%s' is not given in create/update request",
                   attr_name_str.c_str());
     out_valid_value << UNC_VF_VALID;
@@ -846,7 +859,7 @@ void PhyUtil::FillDbSchema(ODBCMTableColumns attr_name,
                           attr_length, attr_type,
                           vect_attr);
   } else if (operation_type == UNC_OP_UPDATE &&
-      in_valid_val == UNC_VF_VALID_NO_VALUE) {
+             in_valid_val == UNC_VF_VALID_NO_VALUE) {
     // empty value - value to be deleted
     pfc_log_debug("Attribute '%s' value is to be deleted in update request",
                   attr_name_str.c_str());
@@ -858,7 +871,7 @@ void PhyUtil::FillDbSchema(ODBCMTableColumns attr_name,
   } else if (operation_type == UNC_OP_CREATE) {
     out_valid_value << in_valid_val;
   } else if (operation_type == UNC_OP_UPDATE &&
-      in_valid_val == UNC_VF_INVALID) {
+             in_valid_val == UNC_VF_INVALID) {
     pfc_log_debug(
         "Attribute '%s' not given in Update Request. Retain db valid",
         attr_name_str.c_str());
@@ -881,55 +894,55 @@ void PhyUtil::GetValueFromDbSchema(const TableAttrSchema& table_attr_schema,
   stringstream ss;
   switch (attr_type) {
     case DATATYPE_UINT16:
-    {
-      ColumnAttrValue <uint16_t> *value =
-          (ColumnAttrValue <uint16_t>*)
-          table_attr_schema.p_table_attribute_value;
-      ss << value->value;
-      break;
-    }
+      {
+        ColumnAttrValue <uint16_t> *value =
+            (ColumnAttrValue <uint16_t>*)
+            table_attr_schema.p_table_attribute_value;
+        ss << value->value;
+        break;
+      }
     case DATATYPE_UINT64:
-    {
-      ColumnAttrValue <uint64_t> *value =
-          (ColumnAttrValue <uint64_t>*)
-          table_attr_schema.p_table_attribute_value;
-      ss << value->value;
-      break;
-    }
+      {
+        ColumnAttrValue <uint64_t> *value =
+            (ColumnAttrValue <uint64_t>*)
+            table_attr_schema.p_table_attribute_value;
+        ss << value->value;
+        break;
+      }
     case DATATYPE_UINT32:
-    {
-      ColumnAttrValue <uint32_t> *value =
-          (ColumnAttrValue <uint32_t>*)
-          table_attr_schema.p_table_attribute_value;
-      ss << value->value;
-      break;
-    }
+      {
+        ColumnAttrValue <uint32_t> *value =
+            (ColumnAttrValue <uint32_t>*)
+            table_attr_schema.p_table_attribute_value;
+        ss << value->value;
+        break;
+      }
     case DATATYPE_IPV4:
-    {
-      ColumnAttrValue <uint32_t> *value =
-          (ColumnAttrValue <uint32_t>*)
-          table_attr_schema.p_table_attribute_value;
-      pfc_log_debug("Received ip value from DB: %d", value->value);
-      if (value->value > 0) {
-        struct sockaddr_in ipv4_addr;
-        memset(&ipv4_addr, 0, sizeof(sockaddr_in));
-        ipv4_addr.sin_addr.s_addr = value->value;
-        ss << inet_ntoa(ipv4_addr.sin_addr);
-        pfc_log_debug("ip address from db: %d", ipv4_addr.sin_addr.s_addr);
-      } else {
-        string empty = "";
-        ss << empty;
+      {
+        ColumnAttrValue <uint32_t> *value =
+            (ColumnAttrValue <uint32_t>*)
+            table_attr_schema.p_table_attribute_value;
+        pfc_log_debug("Received ip value from DB: %d", value->value);
+        if (value->value > 0) {
+          struct sockaddr_in ipv4_addr;
+          memset(&ipv4_addr, 0, sizeof(sockaddr_in));
+          ipv4_addr.sin_addr.s_addr = value->value;
+          ss << inet_ntoa(ipv4_addr.sin_addr);
+          pfc_log_debug("ip address from db: %d", ipv4_addr.sin_addr.s_addr);
+        } else {
+          string empty = "";
+          ss << empty;
+        }
+        break;
       }
-      break;
-    }
     case DATATYPE_IPV6:
-    {
-      ColumnAttrValue <unsigned char[16+1]> *value =
-          (ColumnAttrValue <unsigned char[16+1]>*)
-          table_attr_schema.p_table_attribute_value;
-      ss << value->value;
-      break;
-    }
+      {
+        ColumnAttrValue <unsigned char[16+1]> *value =
+            (ColumnAttrValue <unsigned char[16+1]>*)
+            table_attr_schema.p_table_attribute_value;
+        ss << value->value;
+        break;
+      }
     default:
       break;
   }
@@ -950,102 +963,102 @@ void PhyUtil::GetValueFromDbSchemaStr(const TableAttrSchema& table_attr_schema,
                                       AttributeDataType attr_type) {
   switch (attr_type) {
     case DATATYPE_UINT8_ARRAY_2:
-    {
-      ColumnAttrValue <unsigned char[2+1]> *value =
-          (ColumnAttrValue <unsigned char[2+1]>*)
-          table_attr_schema.p_table_attribute_value;
-      memcpy(attr_value, value->value, strlen((const char*)value->value)+1);
-      break;
-    }
+      {
+        ColumnAttrValue <unsigned char[2+1]> *value =
+            (ColumnAttrValue <unsigned char[2+1]>*)
+            table_attr_schema.p_table_attribute_value;
+        memcpy(attr_value, value->value, strlen((const char*)value->value)+1);
+        break;
+      }
     case DATATYPE_UINT8_ARRAY_3:
-    {
-      ColumnAttrValue <unsigned char[3+1]> *value =
-          (ColumnAttrValue <unsigned char[3+1]>*)
-          table_attr_schema.p_table_attribute_value;
-      memcpy(attr_value, value->value, strlen((const char*)value->value)+1);
-      break;
-    }
+      {
+        ColumnAttrValue <unsigned char[3+1]> *value =
+            (ColumnAttrValue <unsigned char[3+1]>*)
+            table_attr_schema.p_table_attribute_value;
+        memcpy(attr_value, value->value, strlen((const char*)value->value)+1);
+        break;
+      }
     case DATATYPE_UINT8_ARRAY_6:
-    {
-      ColumnAttrValue <unsigned char[6+1]> *value =
-          (ColumnAttrValue <unsigned char[6+1]>*)
-          table_attr_schema.p_table_attribute_value;
-      memcpy(attr_value, value->value, strlen((const char*)value->value)+1);
-      memcpy(attr_value, value->value, 6);
-      break;
-    }
+      {
+        ColumnAttrValue <unsigned char[6+1]> *value =
+            (ColumnAttrValue <unsigned char[6+1]>*)
+            table_attr_schema.p_table_attribute_value;
+        memcpy(attr_value, value->value, strlen((const char*)value->value)+1);
+        memcpy(attr_value, value->value, 6);
+        break;
+      }
     case DATATYPE_UINT8_ARRAY_8:
-    {
-      ColumnAttrValue <unsigned char[8+1]> *value =
-          (ColumnAttrValue <unsigned char[8+1]>*)
-          table_attr_schema.p_table_attribute_value;
-      memcpy(attr_value, value->value, strlen((const char*)value->value)+1);
-      break;
-    }
+      {
+        ColumnAttrValue <unsigned char[8+1]> *value =
+            (ColumnAttrValue <unsigned char[8+1]>*)
+            table_attr_schema.p_table_attribute_value;
+        memcpy(attr_value, value->value, strlen((const char*)value->value)+1);
+        break;
+      }
     case DATATYPE_UINT8_ARRAY_9:
-    {
-      ColumnAttrValue <unsigned char[9+1]> *value =
-          (ColumnAttrValue <unsigned char[9+1]>*)
-          table_attr_schema.p_table_attribute_value;
-      memcpy(attr_value, value->value, strlen((const char*)value->value)+1);
-      break;
-    }
+      {
+        ColumnAttrValue <unsigned char[9+1]> *value =
+            (ColumnAttrValue <unsigned char[9+1]>*)
+            table_attr_schema.p_table_attribute_value;
+        memcpy(attr_value, value->value, strlen((const char*)value->value)+1);
+        break;
+      }
     case DATATYPE_UINT8_ARRAY_11:
-    {
-      ColumnAttrValue <unsigned char[11+1]> *value =
-          (ColumnAttrValue <unsigned char[11+1]>*)
-          table_attr_schema.p_table_attribute_value;
-      memcpy(attr_value, value->value, strlen((const char*)value->value)+1);
-      break;
-    }
+      {
+        ColumnAttrValue <unsigned char[11+1]> *value =
+            (ColumnAttrValue <unsigned char[11+1]>*)
+            table_attr_schema.p_table_attribute_value;
+        memcpy(attr_value, value->value, strlen((const char*)value->value)+1);
+        break;
+      }
     case DATATYPE_UINT8_ARRAY_16:
-    {
-      ColumnAttrValue <unsigned char[16+1]> *value =
-          (ColumnAttrValue <unsigned char[16+1]>*)
-          table_attr_schema.p_table_attribute_value;
-      memcpy(attr_value, value->value, strlen((const char*)value->value)+1);
-      break;
-    }
+      {
+        ColumnAttrValue <unsigned char[16+1]> *value =
+            (ColumnAttrValue <unsigned char[16+1]>*)
+            table_attr_schema.p_table_attribute_value;
+        memcpy(attr_value, value->value, strlen((const char*)value->value)+1);
+        break;
+      }
     case DATATYPE_UINT8_ARRAY_32:
-    {
-      ColumnAttrValue <unsigned char[32+1]> *value =
-          (ColumnAttrValue <unsigned char[32+1]>*)
-          table_attr_schema.p_table_attribute_value;
-      memcpy(attr_value, value->value, strlen((const char*)value->value)+1);
-      break;
-    }
+      {
+        ColumnAttrValue <unsigned char[32+1]> *value =
+            (ColumnAttrValue <unsigned char[32+1]>*)
+            table_attr_schema.p_table_attribute_value;
+        memcpy(attr_value, value->value, strlen((const char*)value->value)+1);
+        break;
+      }
     case DATATYPE_UINT8_ARRAY_128:
-    {
-      ColumnAttrValue <unsigned char[128+1]> *value =
-          (ColumnAttrValue <unsigned char[128+1]>*)
-          table_attr_schema.p_table_attribute_value;
-      memcpy(attr_value, value->value, strlen((const char*)value->value)+1);
-      break;
-    }
+      {
+        ColumnAttrValue <unsigned char[128+1]> *value =
+            (ColumnAttrValue <unsigned char[128+1]>*)
+            table_attr_schema.p_table_attribute_value;
+        memcpy(attr_value, value->value, strlen((const char*)value->value)+1);
+        break;
+      }
     case DATATYPE_UINT8_ARRAY_256:
-    {
-      ColumnAttrValue <unsigned char[256+1]> *value =
-          (ColumnAttrValue <unsigned char[256+1]>*)
-          table_attr_schema.p_table_attribute_value;
-      memcpy(attr_value, value->value, strlen((const char*)value->value)+1);
-      break;
-    }
+      {
+        ColumnAttrValue <unsigned char[256+1]> *value =
+            (ColumnAttrValue <unsigned char[256+1]>*)
+            table_attr_schema.p_table_attribute_value;
+        memcpy(attr_value, value->value, strlen((const char*)value->value)+1);
+        break;
+      }
     case DATATYPE_UINT8_ARRAY_257:
-    {
-      ColumnAttrValue <unsigned char[257+1]> *value =
-          (ColumnAttrValue <unsigned char[257+1]>*)
-          table_attr_schema.p_table_attribute_value;
-      memcpy(attr_value, value->value, strlen((const char*)value->value)+1);
-      break;
-    }
+      {
+        ColumnAttrValue <unsigned char[257+1]> *value =
+            (ColumnAttrValue <unsigned char[257+1]>*)
+            table_attr_schema.p_table_attribute_value;
+        memcpy(attr_value, value->value, strlen((const char*)value->value)+1);
+        break;
+      }
     case DATATYPE_UINT8_ARRAY_320:
-    {
-      ColumnAttrValue <unsigned char[320+1]> *value =
-          (ColumnAttrValue <unsigned char[320+1]>*)
-          table_attr_schema.p_table_attribute_value;
-      memcpy(attr_value, value->value, strlen((const char*)value->value)+1);
-      break;
-    }
+      {
+        ColumnAttrValue <unsigned char[320+1]> *value =
+            (ColumnAttrValue <unsigned char[320+1]>*)
+            table_attr_schema.p_table_attribute_value;
+        memcpy(attr_value, value->value, strlen((const char*)value->value)+1);
+        break;
+      }
     default:
       break;
   }
@@ -1058,17 +1071,17 @@ void PhyUtil::GetValueFromDbSchemaStr(const TableAttrSchema& table_attr_schema,
  *                datatype - UNC_DT_* specifies the datatype
  * @param[out]  : controller_type - UNC_CT_* Type of the controller(UNKNOWN,
  *                PFC,VNP)
- * @return      : UPPL_RC_SUCCESS is returned when the response
+ * @return      : UNC_RC_SUCCESS is returned when the response
  *                is added to ipc session successfully.
- *                UPPL_RC_ERR_* is returned when ipc response could not
+ *                UNC_UPPL_RC_ERR_* is returned when ipc response could not
  *                be added to session.
  * */
-UpplReturnCode PhyUtil::get_controller_type(
+UncRespCode PhyUtil::get_controller_type(
     OdbcmConnectionHandler *db_conn,
     string controller_name,
     unc_keytype_ctrtype_t& controller_type,
     unc_keytype_datatype_t datatype) {
-  UpplReturnCode ret_code = UPPL_RC_SUCCESS;
+  UncRespCode ret_code = UNC_RC_SUCCESS;
   string type = "";
   // Creating the Physical Layer instance
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
@@ -1090,16 +1103,16 @@ UpplReturnCode PhyUtil::get_controller_type(
   dbtableschema_obj.set_table_name(unc::uppl::CTR_TABLE);
   dbtableschema_obj.PushBackToRowList(vect_table_attr_schema);
   ODBCM_RC_STATUS db_status = physical_layer->get_odbc_manager()-> \
-      GetOneRow(datatype, dbtableschema_obj, db_conn);
+                              GetOneRow(datatype, dbtableschema_obj, db_conn);
   if (db_status == ODBCM_RC_CONNECTION_ERROR) {
     // log fatal error to log daemon
     pfc_log_fatal("DB connection not available or cannot access DB");
-    ret_code = UPPL_RC_ERR_DB_ACCESS;
+    ret_code = UNC_UPPL_RC_ERR_DB_ACCESS;
     return ret_code;
   } else if (db_status != ODBCM_RC_SUCCESS) {
     string log_msg = "Unable to get controller type from the database";
     pfc_log_error((const char *)log_msg.c_str());
-    ret_code = UPPL_RC_ERR_DB_GET;
+    ret_code = UNC_UPPL_RC_ERR_DB_GET;
     return ret_code;
   }
   list< vector<TableAttrSchema> >& row_list_iter =
@@ -1143,7 +1156,7 @@ void PhyUtil::reorder_col_attrs(
     for ( ; tab_iter != vect_table_attr_schema.end(); ++tab_iter) {
       TableAttrSchema col_attr = (*tab_iter);
       if (key_attr_name == ODBCManager::get_ODBCManager()->GetColumnName(
-          col_attr.table_attribute_name)) {
+              col_attr.table_attribute_name)) {
         vect_table_attr_schema.erase(tab_iter);
         vect_table_attr_schema.insert(vect_table_attr_schema.begin(),
                                       col_attr);
@@ -1189,9 +1202,9 @@ bool PhyUtil::IsValidValue(uint32_t operation_type,
 bool PhyUtil::IsFilteringOperation(uint32_t operation_type,
                                    unsigned int valid) {
   if ((operation_type == UNC_OP_READ ||
-      operation_type == UNC_OP_READ_SIBLING_BEGIN ||
-      operation_type == UNC_OP_READ_SIBLING ||
-      operation_type == UNC_OP_READ_SIBLING_COUNT) &&
+       operation_type == UNC_OP_READ_SIBLING_BEGIN ||
+       operation_type == UNC_OP_READ_SIBLING ||
+       operation_type == UNC_OP_READ_SIBLING_COUNT) &&
       valid == UNC_VF_VALID) {
     return true;
   } else {
index 591a264b8048b6d0ee73366debcfd8fbbcbc68b6..072aea56e860b7e074bf6c55950147e33808310f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -15,6 +15,7 @@
 
 #include <unc/config.h>
 #include <unc/component.h>
+#include <unc/unc_base.h>
 #include <alarm.hh>
 #include <clstat_api.h>
 #include "physical_core.hh"
@@ -57,28 +58,29 @@ PhysicalCore* PhysicalCore::get_physical_core() {
  *                config, sends event subscription to driver
  */
 
-UpplReturnCode PhysicalCore::InitializePhysical() {
+UncRespCode PhysicalCore::InitializePhysical() {
   // initialize the class member data
   // Create new internal transaction coordinator object
+  pfc_log_debug("system_transit_state_ :%d", system_transit_state_);
   internal_transaction_coordinator_ = InternalTransactionCoordinator::
                 get_internaltransactioncoordinator();
   if (internal_transaction_coordinator_ == NULL) {
     pfc_log_error("Memory not allocated for internal_transaction_coordinator_");
-    return UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+    return UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
   }
 
   // Read config from file
-  UpplReturnCode ret = ReadConfigFile();
+  UncRespCode ret = ReadConfigFile();
   pfc_log_debug("Read Configuration return %d", ret);
-  if (ret != UPPL_RC_SUCCESS) {
-    return UPPL_RC_ERR_CONF_FILE_READ;
+  if (ret != UNC_RC_SUCCESS) {
+    return UNC_UPPL_RC_ERR_CONF_FILE_READ;
   }
 
   // Call function to load static capability file
   ret = ReadCtrlrStaticCapability();
   pfc_log_debug("Static Capability return %d", ret);
-  if (ret != UPPL_RC_SUCCESS)  {
-    return UPPL_RC_ERR_CAP_FILE_READ;
+  if (ret != UNC_RC_SUCCESS)  {
+    return UNC_UPPL_RC_ERR_CAP_FILE_READ;
   }
 
   // initialize alarm object
@@ -86,7 +88,7 @@ UpplReturnCode PhysicalCore::InitializePhysical() {
   alarm_ret = pfc::alarm::pfc_alarm_initialize(&fd);
   pfc_log_debug("PFC Alarm intialization return %d", alarm_ret);
   if (alarm_ret != pfc::alarm::ALM_OK) {
-    return UPPL_RC_ERR_ALARM_API;
+    return UNC_UPPL_RC_ERR_ALARM_API;
   } else {
     // clear all alarms
     pfc::alarm::pfc_alarm_clear(UNCCID_PHYSICAL);
@@ -95,9 +97,9 @@ UpplReturnCode PhysicalCore::InitializePhysical() {
   pfc_bool_t event_ret = RegisterStateHandlers();
   pfc_log_debug("State handlers registration return %d", event_ret);
   if (event_ret == PFC_TRUE) {
-    ret =  UPPL_RC_SUCCESS;
+    ret =  UNC_RC_SUCCESS;
   } else {
-    ret = UPPL_RC_FAILURE;
+    ret = UNC_UPPL_RC_FAILURE;
   }
 
   TcApiCommonRet ret_code = unc::tclib::TC_API_COMMON_SUCCESS;
@@ -107,10 +109,10 @@ UpplReturnCode PhysicalCore::InitializePhysical() {
     ret_code = tclib_ptr->TcLibRegisterHandler(this);
     pfc_log_info("TcLibRegisterHandler returned %u.", ret_code);
     if (ret_code != unc::tclib::TC_API_COMMON_SUCCESS) {
-      ret = UPPL_RC_FAILURE;
+      ret = UNC_UPPL_RC_FAILURE;
     }
   } else {
-    ret = UPPL_RC_FAILURE;
+    ret = UNC_UPPL_RC_FAILURE;
   }
   return ret;
 }
@@ -119,18 +121,18 @@ UpplReturnCode PhysicalCore::InitializePhysical() {
  * @Description : This function finalizes physical core members
  */
 
-UpplReturnCode PhysicalCore::FinalizePhysical() {
+UncRespCode PhysicalCore::FinalizePhysical() {
   // Finalize the class member data
   ctr_cap_map_.clear();
   // IPC Event handler removal is taken care by ipc library itself during fini
   /* Cancel the event Subscription from driver
-  UpplReturnCode ret = CancelEventSubscripInDriver(); */
-  UpplReturnCode ret = UPPL_RC_FAILURE;
+  UncRespCode ret = CancelEventSubscripInDriver(); */
+  UncRespCode ret = UNC_UPPL_RC_FAILURE;
   pfc_bool_t event_ret = UnRegisterStateHandlers();
   if (event_ret == PFC_TRUE) {
-    ret =  UPPL_RC_SUCCESS;
+    ret =  UNC_RC_SUCCESS;
   } else {
-    ret = UPPL_RC_FAILURE;
+    ret = UNC_UPPL_RC_FAILURE;
   }
 
   if (internal_transaction_coordinator_ != NULL)
@@ -148,11 +150,11 @@ UpplReturnCode PhysicalCore::FinalizePhysical() {
  * @Description : This function reads config from file
  */
 
-UpplReturnCode PhysicalCore::ReadConfigFile() {
+UncRespCode PhysicalCore::ReadConfigFile() {
   // Config file reading
   PhysicalLayer* physical_layer = PhysicalLayer::get_instance();
   if (physical_layer == NULL) {
-    return UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+    return UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
   }
   pfc::core::ModuleConfBlock ipcblock(IPC_PARAMS_BLK);
 
@@ -194,7 +196,16 @@ UpplReturnCode PhysicalCore::ReadConfigFile() {
 
   audit_notfn_timeout_ = ipcblock.getUint32("audit_notfn_timeout", 30);
   unknown_controller_count_ = ipcblock.getUint32("unknown_controller_count", 1);
-  return UPPL_RC_SUCCESS;
+  uppl_max_dataflowtraversal_ = ipcblock.getUint32(
+                                    "uppl_max_dataflowtraversal", 1000);
+  pfc_log_debug("uppl_max_dataflowtraversal_ - red from uppl.conf = %d",
+                  uppl_max_dataflowtraversal_);
+  uppl_max_ro_db_connections_ = ipcblock.getUint32(
+                                    "uppl_max_ro_db_connections", 100);
+  pfc_log_debug("uppl_max_ro_db_connections_ - red from uppl.conf = %d",
+                  uppl_max_ro_db_connections_);
+
+  return UNC_RC_SUCCESS;
 }
 
 /**
@@ -202,7 +213,7 @@ UpplReturnCode PhysicalCore::ReadConfigFile() {
  *                capability map
  */
 
-UpplReturnCode PhysicalCore::ReadCtrlrStaticCapability() {
+UncRespCode PhysicalCore::ReadCtrlrStaticCapability() {
   // Read the capability info from the static config file
   string conf_file_path = string(UNC_MODULEDIR) +
       string("/uppl_ctr_capability.conf");
@@ -230,9 +241,9 @@ UpplReturnCode PhysicalCore::ReadCtrlrStaticCapability() {
     int kVersArraySize = cObjs[iter].arraySize("version_supported");
     for (int idx = 0; idx < kVersArraySize; ++idx) {
       version = cObjs[iter].getStringAt("version_supported", idx, 0);
-      UpplReturnCode parse_ret = UPPL_RC_SUCCESS;
+      UncRespCode parse_ret = UNC_RC_SUCCESS;
       ControllerVersion ctr_obj(version, parse_ret);
-      if (parse_ret != UPPL_RC_SUCCESS) {
+      if (parse_ret != UNC_RC_SUCCESS) {
         return parse_ret;
       }
       int kAttribArraySize = cObjs[iter].arraySize("attribute_name");
@@ -246,25 +257,25 @@ UpplReturnCode PhysicalCore::ReadCtrlrStaticCapability() {
       ctr_cap_map_[ctr_obj].insert(std::make_pair(keys, vals));
     }
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**
  * @Description : This function validates key type controller capability map
  */
 
-UpplReturnCode PhysicalCore::ValidateKeyTypeInCtrlrCap(string version,
+UncRespCode PhysicalCore::ValidateKeyTypeInCtrlrCap(string version,
                                                        uint32_t key_type) {
   /* check whether the version provided in request is available in capability
    * controller map
    */
   PhysicalLayer* physical_layer = PhysicalLayer::get_instance();
   if (physical_layer == NULL) {
-    return UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+    return UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
   }
-  UpplReturnCode parse_ret = UPPL_RC_SUCCESS;
+  UncRespCode parse_ret = UNC_RC_SUCCESS;
   ControllerVersion obj(version, parse_ret);
-  if (parse_ret != UPPL_RC_SUCCESS) {
+  if (parse_ret != UNC_RC_SUCCESS) {
     return parse_ret;
   }
   cap_key_struct keystructvar;
@@ -284,16 +295,16 @@ UpplReturnCode PhysicalCore::ValidateKeyTypeInCtrlrCap(string version,
     if (iter_key_type_map_ != key_type_map.end()) {
       pfc_log_debug("Found key_type is %d",
                     (iter_key_type_map_)->first.key_type);
-      return UPPL_RC_SUCCESS;
+      return UNC_RC_SUCCESS;
     } else {
       pfc_log_info("Key Type not supported");
-      return UPPL_RC_ERR_KEYTYPE_NOT_SUPPORTED;
+      return UNC_UPPL_RC_ERR_KEYTYPE_NOT_SUPPORTED;
     }
   } else {
     pfc_log_info("Version not supported");
-    return UPPL_RC_ERR_VERSION_NOT_SUPPORTED;
+    return UNC_UPPL_RC_ERR_VERSION_NOT_SUPPORTED;
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**
@@ -301,22 +312,22 @@ UpplReturnCode PhysicalCore::ValidateKeyTypeInCtrlrCap(string version,
  *                type is available in controller capability map
  */
 
-UpplReturnCode PhysicalCore::ValidateAttribInCtrlrCap(string version,
+UncRespCode PhysicalCore::ValidateAttribInCtrlrCap(string version,
                                                       uint32_t key_type,
                                                       string attribute_name) {
-  UpplReturnCode ret = ValidateKeyTypeInCtrlrCap(version, key_type);
+  UncRespCode ret = ValidateKeyTypeInCtrlrCap(version, key_type);
   PhysicalLayer* physical_layer = PhysicalLayer::get_instance();
   if (physical_layer == NULL) {
-    return UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+    return UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
   }
   pfc_log_debug("ValidateKeyTypeInCtrlrCap ret = %d\n", ret);
-  if (ret != UPPL_RC_SUCCESS) {
+  if (ret != UNC_RC_SUCCESS) {
     pfc_log_debug("ValidateKeyTypeInCtrlrCap ret = %d\n", ret);
     return ret;
   }
-  UpplReturnCode parse_ret = UPPL_RC_SUCCESS;
+  UncRespCode parse_ret = UNC_RC_SUCCESS;
   ControllerVersion obj(version, parse_ret);
-  if (parse_ret != UPPL_RC_SUCCESS) {
+  if (parse_ret != UNC_RC_SUCCESS) {
     return parse_ret;
   }
   cap_iter iter_cap_map = GetVersionIterator(obj);
@@ -332,16 +343,16 @@ UpplReturnCode PhysicalCore::ValidateAttribInCtrlrCap(string version,
     pfc_log_debug("Found key_type is %d",
                   (iter_key_type_map_)->first.key_type);
     cap_value_struct vs = (iter_key_type_map_)->second;
-    pfc_log_debug("vector size is %zd", (vs.attrs).size());
+    pfc_log_debug("vector size is %"PFC_PFMT_SIZE_T, (vs.attrs).size());
     pfc_log_debug("Attribute_name to search is %s", attribute_name.c_str());
     for (uint32_t idx = 0; idx < (vs.attrs).size(); ++idx) {
       if ((vs.attrs[idx]).attr_name == attribute_name) {
-        return UPPL_RC_SUCCESS;
+        return UNC_RC_SUCCESS;
       }
     }
   }
   pfc_log_info("attribute not supported");
-  return UPPL_RC_ERR_ATTRIBUTE_NOT_SUPPORTED;
+  return UNC_UPPL_RC_ERR_ATTRIBUTE_NOT_SUPPORTED;
 }
 
 /**
@@ -349,12 +360,12 @@ UpplReturnCode PhysicalCore::ValidateAttribInCtrlrCap(string version,
  *                key type
  */
 
-UpplReturnCode PhysicalCore::GetScalabilityNumber(string version,
+UncRespCode PhysicalCore::GetScalabilityNumber(string version,
                                                   uint32_t key_type,
                                                   uint32_t &scalability_num) {
-  UpplReturnCode parse_ret = UPPL_RC_SUCCESS;
+  UncRespCode parse_ret = UNC_RC_SUCCESS;
   ControllerVersion obj(version, parse_ret);
-  if (parse_ret != UPPL_RC_SUCCESS) {
+  if (parse_ret != UNC_RC_SUCCESS) {
     return parse_ret;
   }
 
@@ -371,11 +382,11 @@ UpplReturnCode PhysicalCore::GetScalabilityNumber(string version,
     scalability_num = ((iter_key_type_map_)->second.scalability_num);
     pfc_log_debug("Scalability number for key type %d is %d",
                   key_type, scalability_num);
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   } else {
     pfc_log_info("PhysicalCore::GetScalabilityNumber ret = %d",
-                 UPPL_RC_ERR_VERSION_NOT_SUPPORTED);
-    return UPPL_RC_ERR_VERSION_NOT_SUPPORTED;
+                 UNC_UPPL_RC_ERR_VERSION_NOT_SUPPORTED);
+    return UNC_UPPL_RC_ERR_VERSION_NOT_SUPPORTED;
   }
 }
 
@@ -384,12 +395,12 @@ UpplReturnCode PhysicalCore::GetScalabilityNumber(string version,
  *                through IPCConnectionManager
  */
 
-UpplReturnCode PhysicalCore::SendEventSubscripToDriver() {
+UncRespCode PhysicalCore::SendEventSubscripToDriver() {
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
   if (physical_layer == NULL) {
-    return UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+    return UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
   }
-  UpplReturnCode ret = physical_layer->get_ipc_connection_manager()->
+  UncRespCode ret = physical_layer->get_ipc_connection_manager()->
       SendEventSubscription();
   return ret;
 }
@@ -399,12 +410,12 @@ UpplReturnCode PhysicalCore::SendEventSubscripToDriver() {
  *                Driver through IPCConnectionManager
  */
 
-UpplReturnCode PhysicalCore::CancelEventSubscripInDriver() {
+UncRespCode PhysicalCore::CancelEventSubscripInDriver() {
   PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
   if (physical_layer == NULL) {
-    return UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+    return UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
   }
-  UpplReturnCode ret = physical_layer->get_ipc_connection_manager()->
+  UncRespCode ret = physical_layer->get_ipc_connection_manager()->
       CancelEventSubscription();
   return ret;
 }
@@ -413,20 +424,20 @@ UpplReturnCode PhysicalCore::CancelEventSubscripInDriver() {
  * @Description : This function validates the config ID by TC library API
  */
 
-UpplReturnCode PhysicalCore::ValidateConfigId(uint32_t session_id,
+UncRespCode PhysicalCore::ValidateConfigId(uint32_t session_id,
                                               uint32_t config_id) {
   TcLibModule* tclib_ptr = static_cast<TcLibModule*>
   (TcLibModule::getInstance(TCLIB_MODULE_NAME));
 
   uint8_t resp = tclib_ptr->TcLibValidateUpdateMsg(session_id, config_id);
-  UpplReturnCode return_code = UPPL_RC_FAILURE;
+  UncRespCode return_code = UNC_UPPL_RC_FAILURE;
   pfc_log_debug("Validation of config/session id with TC returned %d", resp);
   if (resp == unc::tclib::TC_API_COMMON_SUCCESS) {
-    return_code = UPPL_RC_SUCCESS;
+    return_code = UNC_RC_SUCCESS;
   } else if (resp == unc::tclib::TC_INVALID_CONFIG_ID) {
-    return_code = UPPL_RC_ERR_INVALID_CONFIGID;
+    return_code = UNC_UPPL_RC_ERR_INVALID_CONFIGID;
   } else if (resp == unc::tclib::TC_INVALID_SESSION_ID) {
-    return_code = UPPL_RC_ERR_INVALID_SESSIONID;
+    return_code = UNC_UPPL_RC_ERR_INVALID_SESSIONID;
   }
   // return the response received
   return return_code;
@@ -438,36 +449,36 @@ UpplReturnCode PhysicalCore::ValidateConfigId(uint32_t session_id,
  * @param[in] : operation_type - type of operation requested
  */
 
-UpplReturnCode PhysicalCore::ValidateStandbyRequests(uint32_t operation_type) {
+UncRespCode PhysicalCore::ValidateStandbyRequests(uint32_t operation_type) {
   // Throw error when non-READ* requests are received in standby
   if (get_system_state() == UPPL_SYSTEM_ST_STANDBY &&
       (operation_type < UNC_OP_READ ||
           operation_type > UNC_OP_READ_SIBLING_COUNT)) {
     pfc_log_info("operation not supported in standby");
-    return UPPL_RC_ERR_NOT_SUPPORTED_BY_STANDBY;
+    return UNC_UPPL_RC_ERR_NOT_SUPPORTED_BY_STANDBY;
   }
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**
  * @Description : This function gives the corresponding for controller type
  */
 
-UpplReturnCode PhysicalCore::GetDriverName(
+UncRespCode PhysicalCore::GetDriverName(
     unc_keytype_ctrtype_t controller_type,
     string &driver_name) {
   map<unc_keytype_ctrtype_t, string>::iterator
   iter_drv_name_map = drv_name_map_.find(controller_type);
   if (iter_drv_name_map == drv_name_map_.end()) {
     pfc_log_info("Controller type not found");
-    return UPPL_RC_FAILURE;
+    return UNC_UPPL_RC_FAILURE;
   }
   if (iter_drv_name_map->second == "") {
     pfc_log_info("Driver name empty");
-    return UPPL_RC_FAILURE;
+    return UNC_UPPL_RC_FAILURE;
   }
   driver_name = iter_drv_name_map->second;
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**
@@ -486,11 +497,11 @@ TcCommonRet PhysicalCore::HandleCommitTransactionStart(uint32_t session_id,
   }
   OPEN_DB_CONNECTION_TC_REQUEST(unc::uppl::kOdbcmConnReadWriteNb);
   // Call ITC transaction handler function
-  UpplReturnCode resp = internal_transaction_coordinator_->transaction_req()->
+  UncRespCode resp = internal_transaction_coordinator_->transaction_req()->
       StartTransaction(&db_conn, session_id, config_id);
   pfc_log_debug("HandleCommitTransactionStart return code %d", resp);
   // convert the error code returned by ITC to TC error code
-  if (resp == UPPL_RC_SUCCESS) {
+  if (resp == UNC_RC_SUCCESS) {
     return unc::tclib::TC_SUCCESS;
   } else {
     return unc::tclib::TC_FAILURE;
@@ -515,13 +526,13 @@ TcCommonRet PhysicalCore::HandleAuditTransactionStart(
   }
   pfc_log_debug("Received HandleAuditTransactionStart from TC");
   // Call ITC transaction handler function
-  UpplReturnCode resp = internal_transaction_coordinator_->audit_req()->
+  UncRespCode resp = internal_transaction_coordinator_->audit_req()->
       StartAuditTransaction(session_id,
                             ctrl_type,
                             controller_id);
 
   // convert the error code returned by ITC to TC error code
-  if (resp == UPPL_RC_SUCCESS) {
+  if (resp == UNC_RC_SUCCESS) {
     return unc::tclib::TC_SUCCESS;
   } else {
     return unc::tclib::TC_FAILURE;
@@ -546,13 +557,13 @@ TcCommonRet PhysicalCore::HandleCommitTransactionEnd(
   }
   OPEN_DB_CONNECTION_TC_REQUEST(unc::uppl::kOdbcmConnReadWriteNb);
   // Call ITC transaction handler function
-  UpplReturnCode resp = internal_transaction_coordinator_->transaction_req()->
+  UncRespCode resp = internal_transaction_coordinator_->transaction_req()->
       EndTransaction(&db_conn, session_id,
                      config_id,
                      trans_res);
   pfc_log_debug("HandleCommitTransactionEnd response %d", resp);
   // convert the error code returned by ITC to TC error code
-  if (resp == UPPL_RC_SUCCESS) {
+  if (resp == UNC_RC_SUCCESS) {
     return unc::tclib::TC_SUCCESS;
   } else {
     return unc::tclib::TC_FAILURE;
@@ -578,13 +589,13 @@ TcCommonRet PhysicalCore::HandleAuditTransactionEnd(
   }
   pfc_log_debug("Received HandleAuditTransactionEnd from TC");
   // Call ITC transaction handler function
-  UpplReturnCode resp = internal_transaction_coordinator_->audit_req()->
+  UncRespCode resp = internal_transaction_coordinator_->audit_req()->
       EndAuditTransaction(session_id,
                           ctrl_type,
                           controller_id);
 
   // convert the error code returned by ITC to TC error code
-  if (resp == UPPL_RC_SUCCESS) {
+  if (resp == UNC_RC_SUCCESS) {
     return unc::tclib::TC_SUCCESS;
   } else {
     return unc::tclib::TC_FAILURE;
@@ -610,13 +621,13 @@ TcCommonRet PhysicalCore::HandleCommitVoteRequest(
   // Call ITC transaction handler function
   // ITC to fill driver_info map while sending response
   pfc_log_debug("Received vote request. Calling HandleVoteRequest");
-  UpplReturnCode resp = internal_transaction_coordinator_->transaction_req()->
+  UncRespCode resp = internal_transaction_coordinator_->transaction_req()->
       HandleVoteRequest(session_id,
                         config_id,
                         driver_info);
   pfc_log_debug("HandleVoteRequest response %d", resp);
   // convert the error code returned by ITC to TC error code
-  if (resp == UPPL_RC_SUCCESS) {
+  if (resp == UNC_RC_SUCCESS) {
     return unc::tclib::TC_SUCCESS;
   } else {
     return unc::tclib::TC_FAILURE;
@@ -643,14 +654,14 @@ TcCommonRet PhysicalCore::HandleAuditVoteRequest(
   OPEN_DB_CONNECTION_TC_REQUEST(unc::uppl::kOdbcmConnReadWriteNb);
   pfc_log_debug("Received HandleAuditVoteRequest from TC");
   // Call ITC transaction handler function
-  UpplReturnCode resp = internal_transaction_coordinator_->audit_req()->
+  UncRespCode resp = internal_transaction_coordinator_->audit_req()->
       HandleAuditVoteRequest(&db_conn, session_id,
                              driver_id,
                              controller_id,
                              driver_info);
 
   // convert the error code returned by ITC to TC error code
-  if (resp == UPPL_RC_SUCCESS) {
+  if (resp == UNC_RC_SUCCESS) {
     return unc::tclib::TC_SUCCESS;
   } else {
     return unc::tclib::TC_FAILURE;
@@ -675,13 +686,13 @@ TcCommonRet PhysicalCore::HandleCommitGlobalCommit(
   }
   // Call ITC transaction handler function
   // ITC to fill driver_info map while sending response
-  UpplReturnCode resp = internal_transaction_coordinator_->transaction_req()->
+  UncRespCode resp = internal_transaction_coordinator_->transaction_req()->
       HandleGlobalCommitRequest(session_id,
                                 config_id,
                                 driver_info);
 
   // convert the error code returned by ITC to TC error code
-  if (resp == UPPL_RC_SUCCESS) {
+  if (resp == UNC_RC_SUCCESS) {
     return unc::tclib::TC_SUCCESS;
   } else {
     return unc::tclib::TC_FAILURE;
@@ -708,7 +719,7 @@ TcCommonRet PhysicalCore::HandleAuditGlobalCommit(
   }
   pfc_log_debug("Received HandleAuditGlobalCommit from TC");
   // Call ITC transaction handler function
-  UpplReturnCode resp = internal_transaction_coordinator_->audit_req()->
+  UncRespCode resp = internal_transaction_coordinator_->audit_req()->
       HandleAuditGlobalCommit(session_id,
                               driver_id,
                               controller_id,
@@ -716,7 +727,7 @@ TcCommonRet PhysicalCore::HandleAuditGlobalCommit(
                               audit_result);
 
   // convert the error code returned by ITC to TC error code
-  if (resp == UPPL_RC_SUCCESS) {
+  if (resp == UNC_RC_SUCCESS) {
     return unc::tclib::TC_SUCCESS;
   } else {
     return unc::tclib::TC_FAILURE;
@@ -745,14 +756,14 @@ TcCommonRet PhysicalCore::HandleCommitDriverResult(
                                     PFC_TRUE);  // write lock
   OPEN_DB_CONNECTION_TC_REQUEST(unc::uppl::kOdbcmConnReadWriteNb);
   // Call ITC transaction handler function
-  UpplReturnCode resp = internal_transaction_coordinator_->transaction_req()->
+  UncRespCode resp = internal_transaction_coordinator_->transaction_req()->
       HandleDriverResult(&db_conn, session_id,
                          config_id,
                          commitphase,
                          driver_result);
   pfc_log_debug("HandleCommitDriverResult response %d", resp);
   // convert the error code returned by ITC to TC error code
-  if (resp == UPPL_RC_SUCCESS) {
+  if (resp == UNC_RC_SUCCESS) {
     return unc::tclib::TC_SUCCESS;
   } else {
     return unc::tclib::TC_FAILURE;
@@ -779,14 +790,14 @@ TcCommonRet PhysicalCore::HandleAuditDriverResult(
   }
   pfc_log_debug("Received HandleAuditDriverResult from TC");
   // Call ITC transaction handler function
-  UpplReturnCode resp = internal_transaction_coordinator_->audit_req()->
+  UncRespCode resp = internal_transaction_coordinator_->audit_req()->
       HandleAuditDriverResult(session_id,
                               controller_id,
                               commitphase,
                               driver_result,
                               audit_result);
   // convert the error code returned by ITC to TC error code
-  if (resp == UPPL_RC_SUCCESS) {
+  if (resp == UNC_RC_SUCCESS) {
     return unc::tclib::TC_SUCCESS;
   } else {
     return unc::tclib::TC_FAILURE;
@@ -811,12 +822,12 @@ TcCommonRet PhysicalCore::HandleAuditStart(uint32_t session_id,
   OPEN_DB_CONNECTION_TC_REQUEST(unc::uppl::kOdbcmConnReadWriteNb);
   pfc_log_debug("Received HandleAuditStart from TC");
   // Call ITC transaction handler function
-  UpplReturnCode resp = internal_transaction_coordinator_->audit_req()->
+  UncRespCode resp = internal_transaction_coordinator_->audit_req()->
       StartAudit(&db_conn, ctrl_type,
                  controller_id);
 
   // convert the error code returned by ITC to TC error code
-  if (resp == UPPL_RC_SUCCESS) {
+  if (resp == UNC_RC_SUCCESS) {
     return unc::tclib::TC_SUCCESS;
   } else {
     return unc::tclib::TC_FAILURE;
@@ -842,13 +853,13 @@ TcCommonRet PhysicalCore::HandleAuditEnd(uint32_t session_id,
   pfc_log_debug("Received HandleAuditEnd from TC");
   OPEN_DB_CONNECTION_TC_REQUEST(unc::uppl::kOdbcmConnReadWriteNb);
   // Call ITC transaction handler function
-  UpplReturnCode resp = internal_transaction_coordinator_->audit_req()->
+  UncRespCode resp = internal_transaction_coordinator_->audit_req()->
       EndAudit(&db_conn, ctrl_type,
                controller_id,
                audit_result);
 
   // convert the error code returned by ITC to TC error code
-  if (resp == UPPL_RC_SUCCESS) {
+  if (resp == UNC_RC_SUCCESS) {
     return unc::tclib::TC_SUCCESS;
   } else {
     return unc::tclib::TC_FAILURE;
@@ -870,11 +881,11 @@ TcCommonRet PhysicalCore::HandleSaveConfiguration(uint32_t session_id) {
   }
   OPEN_DB_CONNECTION_TC_REQUEST(unc::uppl::kOdbcmConnReadWriteNb);
   // Call ITC transaction handler function
-  UpplReturnCode resp = internal_transaction_coordinator_->db_config_req()->
+  UncRespCode resp = internal_transaction_coordinator_->db_config_req()->
       SaveRunningToStartUp(&db_conn);
 
   // convert the error code returned by ITC to TC error code
-  if (resp == UPPL_RC_SUCCESS) {
+  if (resp == UNC_RC_SUCCESS) {
     return unc::tclib::TC_SUCCESS;
   } else {
     return unc::tclib::TC_FAILURE;
@@ -896,11 +907,11 @@ TcCommonRet PhysicalCore::HandleClearStartup(uint32_t session_id) {
   }
   OPEN_DB_CONNECTION_TC_REQUEST(unc::uppl::kOdbcmConnReadWriteNb);
   // Call ITC transaction handler function
-  UpplReturnCode resp = internal_transaction_coordinator_->db_config_req()->
+  UncRespCode resp = internal_transaction_coordinator_->db_config_req()->
       ClearStartUpDb(&db_conn);
 
   // convert the error code returned by ITC to TC error code
-  if (resp == UPPL_RC_SUCCESS) {
+  if (resp == UNC_RC_SUCCESS) {
     return unc::tclib::TC_SUCCESS;
   } else {
     return unc::tclib::TC_FAILURE;
@@ -927,7 +938,7 @@ TcCommonRet PhysicalCore::HandleAbortCandidate(uint32_t session_id,
       AbortCandidateDb(&db_conn);
 
   // convert the error code returned by ITC to TC error code
-  if (resp == UPPL_RC_SUCCESS) {
+  if (resp == UNC_RC_SUCCESS) {
     return unc::tclib::TC_SUCCESS;
   } else {
     return unc::tclib::TC_FAILURE;
@@ -954,7 +965,7 @@ TcCommonRet PhysicalCore::HandleAuditConfig(unc_keytype_datatype_t db_target,
   OPEN_DB_CONNECTION_TC_REQUEST(unc::uppl::kOdbcmConnReadWriteNb);
   pfc_log_debug("Received HandleAuditConfig from TC");
   // Call ITC transaction handler function
-  UpplReturnCode resp = UPPL_RC_SUCCESS;
+  UncRespCode resp = UNC_RC_SUCCESS;
   if (fail_oper == TC_OP_CANDIDATE_COMMIT) {
     uint32_t session_id = 0;
     uint32_t config_id = 0;
@@ -962,14 +973,14 @@ TcCommonRet PhysicalCore::HandleAuditConfig(unc_keytype_datatype_t db_target,
     TransactionRequest *txn_req =
         internal_transaction_coordinator_->transaction_req();
     resp = txn_req->StartTransaction(&db_conn, session_id, config_id);
-    if (resp != UPPL_RC_SUCCESS) {
+    if (resp != UNC_RC_SUCCESS) {
       pfc_log_error("HandleAuditConfig - StartTransaction failed with %d",
                     resp);
       return unc::tclib::TC_FAILURE;
     }
     resp = txn_req->HandleVoteRequest(session_id,
                                       config_id, driver_info);
-    if (resp != UPPL_RC_SUCCESS) {
+    if (resp != UNC_RC_SUCCESS) {
       pfc_log_error("HandleAuditConfig - Vote failed with %d",
                     resp);
       return unc::tclib::TC_FAILURE;
@@ -979,7 +990,7 @@ TcCommonRet PhysicalCore::HandleAuditConfig(unc_keytype_datatype_t db_target,
     TcCommitPhaseResult driver_result;
     resp = txn_req->HandleDriverResult(&db_conn, session_id,
                                        config_id, phase, driver_result);
-    if (resp != UPPL_RC_SUCCESS) {
+    if (resp != UNC_RC_SUCCESS) {
       pfc_log_error("HandleAuditConfig - DriverResult VOTE PH failed with %d",
                     resp);
       return unc::tclib::TC_FAILURE;
@@ -987,7 +998,7 @@ TcCommonRet PhysicalCore::HandleAuditConfig(unc_keytype_datatype_t db_target,
 
     resp = txn_req->HandleGlobalCommitRequest(session_id,
                                               config_id, driver_info);
-    if (resp != UPPL_RC_SUCCESS) {
+    if (resp != UNC_RC_SUCCESS) {
       pfc_log_error("HandleAuditConfig - GlobalCommit failed with %d",
                     resp);
       return unc::tclib::TC_FAILURE;
@@ -996,14 +1007,14 @@ TcCommonRet PhysicalCore::HandleAuditConfig(unc_keytype_datatype_t db_target,
     phase = unc::tclib::TC_COMMIT_GLOBAL_COMMIT_PHASE;
     resp = txn_req->HandleDriverResult(&db_conn, session_id,
                                        config_id, phase, driver_result);
-    if (resp != UPPL_RC_SUCCESS) {
+    if (resp != UNC_RC_SUCCESS) {
       pfc_log_error("HandleAuditConfig - DriverResult COM PH failed with %d",
                     resp);
       return unc::tclib::TC_FAILURE;
     }
     TcTransEndResult trans_res = unc::tclib::TRANS_END_SUCCESS;
     resp = txn_req->EndTransaction(&db_conn, session_id, config_id, trans_res);
-    if (resp != UPPL_RC_SUCCESS) {
+    if (resp != UNC_RC_SUCCESS) {
       pfc_log_error("HandleAuditConfig - EndTransaction COM PH failed with %d",
                     resp);
       return unc::tclib::TC_FAILURE;
@@ -1022,11 +1033,11 @@ TcCommonRet PhysicalCore::HandleAuditConfig(unc_keytype_datatype_t db_target,
   } else if (fail_oper == TC_OP_USER_AUDIT ||
       fail_oper == TC_OP_DRIVER_AUDIT) {
     // Do nothing
-    resp = UPPL_RC_SUCCESS;
+    resp = UNC_RC_SUCCESS;
   }
 
   // convert the error code returned by ITC to TC error code
-  if (resp == UPPL_RC_SUCCESS) {
+  if (resp == UNC_RC_SUCCESS) {
     return unc::tclib::TC_SUCCESS;
   } else {
     return unc::tclib::TC_FAILURE;
@@ -1050,12 +1061,12 @@ TcCommonRet PhysicalCore::HandleCommitGlobalAbort(
     return unc::tclib::TC_FAILURE;
   }
   // Call ITC transaction handler function
-  UpplReturnCode resp = internal_transaction_coordinator_->transaction_req()->
+  UncRespCode resp = internal_transaction_coordinator_->transaction_req()->
       AbortTransaction(session_id,
                        config_id,
                        fail_phase);
   // convert the error code returned by ITC to TC error code
-  if (resp == UPPL_RC_SUCCESS) {
+  if (resp == UNC_RC_SUCCESS) {
     return unc::tclib::TC_SUCCESS;
   } else {
     return unc::tclib::TC_FAILURE;
@@ -1080,14 +1091,14 @@ TcCommonRet PhysicalCore::HandleAuditGlobalAbort(
     return unc::tclib::TC_FAILURE;
   }
   // Call ITC transaction handler function
-  UpplReturnCode resp = internal_transaction_coordinator_->audit_req()->
+  UncRespCode resp = internal_transaction_coordinator_->audit_req()->
       HandleAuditAbort(session_id,
                        ctrl_type,
                        controller_id,
                        operation_phase);
 
   // convert the error code returned by ITC to TC error code
-  if (resp == UPPL_RC_SUCCESS) {
+  if (resp == UNC_RC_SUCCESS) {
     return unc::tclib::TC_SUCCESS;
   } else {
     return unc::tclib::TC_FAILURE;
@@ -1110,11 +1121,11 @@ TcCommonRet PhysicalCore::HandleSetup() {
   OPEN_DB_CONNECTION_TC_REQUEST(unc::uppl::kOdbcmConnReadWriteNb);
   // Call ITC transaction handler function
   // Copy startup to candidate and running and commit
-  UpplReturnCode resp = internal_transaction_coordinator_->db_config_req()->
+  UncRespCode resp = internal_transaction_coordinator_->db_config_req()->
       LoadAndCommitStartup(&db_conn);
 
   // convert the error code returned by ITC to TC error code
-  if (resp == UPPL_RC_SUCCESS) {
+  if (resp == UNC_RC_SUCCESS) {
     return unc::tclib::TC_SUCCESS;
   } else {
     return unc::tclib::TC_FAILURE;
@@ -1138,11 +1149,11 @@ TcCommonRet PhysicalCore::HandleSetupComplete() {
   OPEN_DB_CONNECTION_TC_REQUEST(unc::uppl::kOdbcmConnReadWriteNb);
   // Call ITC transaction handler function
   // Copy startup to candidate and running and commit
-  UpplReturnCode resp = internal_transaction_coordinator_->
+  UncRespCode resp = internal_transaction_coordinator_->
       system_state_change_req()->SystemStateChangeToActive(&db_conn);
   pfc_log_debug("ReturnCode of SystemStateChangeToActive %d", resp);
   // convert the error code returned by ITC to TC error code
-  if (resp == UPPL_RC_SUCCESS) {
+  if (resp == UNC_RC_SUCCESS) {
     pfc_log_debug("Returning Success to Tclib");
     return unc::tclib::TC_SUCCESS;
   } else {
@@ -1160,20 +1171,39 @@ unc_keytype_ctrtype_t PhysicalCore::HandleGetControllerType(
     string controller_id) {
   // call util function to get controller type
   unc_keytype_ctrtype_t controller_type = UNC_CT_UNKNOWN;
-  UpplReturnCode db_ret = UPPL_RC_SUCCESS;
+  UncRespCode db_ret = UNC_RC_SUCCESS;
   OPEN_DB_CONNECTION(unc::uppl::kOdbcmConnReadWriteNb, db_ret);
-  if (db_ret != UPPL_RC_SUCCESS) {
-    return controller_type;
+  if (db_ret != UNC_RC_SUCCESS) {
+    pfc_log_error("db cxn open error");
+    TcLibModule* tclib_ptr = static_cast<TcLibModule*>
+        (TcLibModule::getInstance(TCLIB_MODULE_NAME));
+    tclib_ptr->TcLibWriteControllerInfo(controller_id.c_str(),
+                                        UNC_RC_INTERNAL_ERR,
+                                        0);
+    return UNC_CT_UNKNOWN;
   }
-  UpplReturnCode resp = PhyUtil::get_controller_type(&db_conn,
+  UncRespCode resp = PhyUtil::get_controller_type(&db_conn,
                                                      controller_id,
                                                      controller_type,
                                                      UNC_DT_CANDIDATE);
   // convert the error code returned by ITC to TC error code
-  if (resp == UPPL_RC_SUCCESS) {
+  if (resp == UNC_RC_SUCCESS) {
     return controller_type;
+  } else if (resp == UNC_UPPL_RC_ERR_DB_GET) {
+    pfc_log_error("Unknown controller-id");
+    TcLibModule* tclib_ptr = static_cast<TcLibModule*>
+        (TcLibModule::getInstance(TCLIB_MODULE_NAME));
+    tclib_ptr->TcLibWriteControllerInfo(controller_id.c_str(),
+                                        UNC_RC_NO_SUCH_INSTANCE,
+                                        0);
+    return UNC_CT_UNKNOWN;
   } else {
-    pfc_log_warn("Error reading controller type from DB");
+    pfc_log_error("DB access error");
+    TcLibModule* tclib_ptr = static_cast<TcLibModule*>
+        (TcLibModule::getInstance(TCLIB_MODULE_NAME));
+    tclib_ptr->TcLibWriteControllerInfo(controller_id.c_str(),
+                                        UNC_RC_INTERNAL_ERR,
+                                        0);
     return UNC_CT_UNKNOWN;
   }
 }
@@ -1211,14 +1241,34 @@ list<string> PhysicalCore::GetControllerVersionList() {
  *                as down
  */
 
-UpplReturnCode PhysicalCore::SendControllerDisconnectAlarm(
-    string controller_id) {
+UncRespCode PhysicalCore::SendControllerDisconnectAlarm(
+                                    string controller_id) {
+  if (system_transit_state_ == true &&
+     get_system_state() == UPPL_SYSTEM_ST_ACTIVE) {
+    pfc_log_info("System is in active->standby transition,"
+                 " so don't send disconnect alarm");
+    return UNC_RC_SUCCESS;
+  }
   if (get_system_state() == UPPL_SYSTEM_ST_STANDBY) {
-    // system is in standby
     pfc_log_info("System is in standby");
     pfc_log_info("ControllerDisconnect alarm not sent to node manager");
-    return UPPL_RC_SUCCESS;
-  }
+    return UNC_RC_SUCCESS;
+  }
+  // By alarm definition,alarm category =1 for connect/disconnect alarm
+  std::string alarm_category = "1";
+  std::string map_key = "";
+  map_key.append(controller_id).append("#").append(alarm_category);
+  std::map<std::string, bool>::iterator alarm_map_iter;
+  alarm_map_iter = alarm_status_map_.find(map_key);
+  if (alarm_map_iter != alarm_status_map_.end()) { /*there is an entry found*/
+    // Do nothing in this case, just return
+    pfc_log_debug("controller entry is available in alarm_status_map_"
+                                 " - NOT send alarm again");
+    return UNC_UPPL_RC_ERR_INSTANCE_EXISTS;
+  }
+  alarm_status_map_.insert(std::pair<std::string, bool> (map_key, true));
+  pfc_log_debug("Controller inserted into alarm_status_map_:%s",
+                map_key.c_str());
   string vtn_name = "";
   const std::string& alm_msg = "Controller disconnected - " + controller_id;
   const std::string& alm_msg_summary = "Controller disconnected";
@@ -1242,13 +1292,13 @@ UpplReturnCode PhysicalCore::SendControllerDisconnectAlarm(
   if (ret != pfc::alarm::ALM_OK) {
     delete []data->alarm_key;
     delete data;
-    return UPPL_RC_ERR_ALARM_API;
+    return UNC_UPPL_RC_ERR_ALARM_API;
   }
   delete []data->alarm_key;
   delete data;
   pfc_log_info("Sent Controller Disconnected alarm - %s",
                controller_id.c_str());
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**
@@ -1259,12 +1309,25 @@ UpplReturnCode PhysicalCore::SendControllerDisconnectAlarm(
  *                as up
  */
 
-UpplReturnCode PhysicalCore::SendControllerConnectAlarm(string controller_id) {
+UncRespCode PhysicalCore::SendControllerConnectAlarm(string controller_id) {
+  pfc_log_debug("controller_name:%s", controller_id.c_str());
   if (get_system_state() == UPPL_SYSTEM_ST_STANDBY) {
     // system is in standby
     pfc_log_info("System is in standby");
     pfc_log_info("ControllerConnect alarm not sent to node manager");
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
+  }
+  std::string alarm_category = "1";  // as per alarm definition,
+                        //  alarm category is 1 for connect/disconnect alarm
+  std::map<std::string, bool>::iterator alarm_map_iter;
+  std::string map_key = "";
+  map_key.append(controller_id).append("#").append(alarm_category);
+  alarm_map_iter = alarm_status_map_.find(map_key);
+  if (alarm_map_iter == alarm_status_map_.end()) { /*there is no entry*/
+    // Do nothing, return
+    pfc_log_debug("no controller entry found in alarm_status_map_ "
+                               "- NOT send alarm");
+    return UNC_RC_SUCCESS;
   }
   string vtn_name = "";
   const std::string& alm_msg = "Controller connected - " + controller_id;
@@ -1287,15 +1350,24 @@ UpplReturnCode PhysicalCore::SendControllerConnectAlarm(string controller_id) {
       alm_msg_summary,
       data, fd);
   if (ret != pfc::alarm::ALM_OK) {
+    pfc_log_debug("return UNC_UPPL_RC_ERR_ALARM_API");
     delete []data->alarm_key;
     delete data;
-    return UPPL_RC_ERR_ALARM_API;
+    return UNC_UPPL_RC_ERR_ALARM_API;
   }
+  pfc_log_debug("Sending alarm successfully");
   delete []data->alarm_key;
   delete data;
+  if (!alarm_status_map_.empty()) {
+    if (alarm_map_iter != alarm_status_map_.end()) { /*there is no entry*/
+      pfc_log_debug("Clearing an element from map:%s",
+                    alarm_map_iter->first.c_str());
+      alarm_status_map_.erase(alarm_map_iter);
+    }
+  }
   pfc_log_info("Sent Controller Connected alarm - %s",
                controller_id.c_str());
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 
@@ -1306,15 +1378,35 @@ UpplReturnCode PhysicalCore::SendControllerConnectAlarm(string controller_id) {
  *                handling fails
  */
 
-UpplReturnCode
+UncRespCode
 PhysicalCore::SendEventHandlingFailureAlarm(string controller_id,
                                             string event_details) {
+  if (system_transit_state_ == true &&
+     get_system_state() == UPPL_SYSTEM_ST_ACTIVE) {
+    pfc_log_info("System is in active->standby transition,"
+                 " so don't send failure alarm");
+    return UNC_RC_SUCCESS;
+  }
   if (get_system_state() == UPPL_SYSTEM_ST_STANDBY) {
-    // system is in standby
     pfc_log_info("System is in standby");
     pfc_log_info("Event Handling Failure alarm not sent to node manager");
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
+
+  std::string alarm_category = "3";  // as per alarm definition,alarm category
+                           // is 3 for event handling success/failure alarm
+  std::string map_key = "";
+  map_key.append(controller_id).append("#").append(alarm_category);
+  std::map<std::string, bool>::iterator alarm_map_iter;
+  alarm_map_iter = alarm_status_map_.find(map_key);
+  if (alarm_map_iter != alarm_status_map_.end()) { /*there is an entry found*/
+    // Do nothing in this case, just return
+    pfc_log_debug("controller entry is available in alarm_status_map_"
+                                 " - NOT send alarm again");
+    return UNC_UPPL_RC_ERR_INSTANCE_EXISTS;
+  }
+  alarm_status_map_.insert(std::pair<std::string, bool> (map_key, true));
+
   string vtn_name = "";
   const std::string& alm_msg =
       "Event Handling failure - " + event_details;
@@ -1340,13 +1432,13 @@ PhysicalCore::SendEventHandlingFailureAlarm(string controller_id,
   if (ret != pfc::alarm::ALM_OK) {
     delete []data->alarm_key;
     delete data;
-    return UPPL_RC_ERR_ALARM_API;
+    return UNC_UPPL_RC_ERR_ALARM_API;
   }
   delete []data->alarm_key;
   delete data;
   pfc_log_info("Sent Event Handling Failure alarm - %s , %s",
                controller_id.c_str(), event_details.c_str());
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**
@@ -1355,15 +1447,29 @@ PhysicalCore::SendEventHandlingFailureAlarm(string controller_id,
  *                This is a clearance alarm for EVENT_HANDLING_FAILURE alarm
  */
 
-UpplReturnCode
+UncRespCode
 PhysicalCore::SendEventHandlingSuccessAlarm(string controller_id,
                                             string event_details) {
   if (get_system_state() == UPPL_SYSTEM_ST_STANDBY) {
     // system is in standby
     pfc_log_info("System is in standby");
     pfc_log_info("Event handling Success alarm not sent to node manager");
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
+
+  std::string alarm_category = "3";  // as per alarm definition,
+           //  alarm category is 3 for event handling success/failure alarm
+  std::map<std::string, bool>::iterator alarm_map_iter;
+  std::string map_key = "";
+  map_key.append(controller_id).append("#").append(alarm_category);
+  alarm_map_iter = alarm_status_map_.find(map_key);
+  if (alarm_map_iter == alarm_status_map_.end()) { /*there is no entry*/
+    // Do nothing, return
+    pfc_log_debug("no controller entry found in alarm_status_map_ "
+                               "- NOT send alarm");
+    return UNC_RC_SUCCESS;
+  }
+
   string vtn_name = "";
   const std::string& alm_msg = "Event handling success - " + event_details;
   const std::string& alm_msg_summary =
@@ -1387,13 +1493,20 @@ PhysicalCore::SendEventHandlingSuccessAlarm(string controller_id,
   if (ret != pfc::alarm::ALM_OK) {
     delete []data->alarm_key;
     delete data;
-    return UPPL_RC_ERR_ALARM_API;
+    return UNC_UPPL_RC_ERR_ALARM_API;
   }
   delete []data->alarm_key;
   delete data;
+  if (!alarm_status_map_.empty()) {
+    if (alarm_map_iter != alarm_status_map_.end()) { /*there is no entry*/
+      pfc_log_debug("Clearing an element from map:%s",
+                    alarm_map_iter->first.c_str());
+      alarm_status_map_.erase(alarm_map_iter);
+    }
+  }
   pfc_log_info("Sent Event Handling Success alarm - %s , %s",
                controller_id.c_str(), event_details.c_str());
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**
@@ -1420,27 +1533,27 @@ cap_iter PhysicalCore::GetVersionIterator(ControllerVersion version_in) {
  * * @Description : This function checks whether event handling failure alarm
  * is already raised for a controller
  * * * @param[in] : controller_name
- * * * @return    : UPPL_RC_SUCCESS or UPPL_RC_FAILURE
+ * * * @return    : UNC_RC_SUCCESS or UNC_UPPL_RC_FAILURE
  * */
-UpplReturnCode PhysicalCore::RaiseEventHandlingAlarm(string controller_name) {
+UncRespCode PhysicalCore::RaiseEventHandlingAlarm(string controller_name) {
   if (find(event_handling_controller_alarm_.begin(),
            event_handling_controller_alarm_.end(),
            controller_name) != event_handling_controller_alarm_.end()) {
     pfc_log_info("Alarm already raised for this controller id");
-    return UPPL_RC_FAILURE;
+    return UNC_UPPL_RC_FAILURE;
   }
   pfc_log_debug("Adding the controller_id in the alarm_raised vector");
   event_handling_controller_alarm_.push_back(controller_name);
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /** ClearEventHandlingAlarm
  * * @Description : This function checks whether event handling success alarm
  * is already raised for a controller
  * * * @param[in] : controller_name
- * * * @return    : UPPL_RC_SUCCESS or UPPL_RC_FAILURE
+ * * * @return    : UNC_RC_SUCCESS or UNC_UPPL_RC_FAILURE
  * */
-UpplReturnCode PhysicalCore::ClearEventHandlingAlarm(string controller_name) {
+UncRespCode PhysicalCore::ClearEventHandlingAlarm(string controller_name) {
   vector<string>::iterator alarm_raised_iter =
       find(event_handling_controller_alarm_.begin(),
            event_handling_controller_alarm_.end(),
@@ -1449,11 +1562,55 @@ UpplReturnCode PhysicalCore::ClearEventHandlingAlarm(string controller_name) {
     pfc_log_debug(" Failure Alarm already raised for this controller id");
     event_handling_controller_alarm_.erase(alarm_raised_iter);
     pfc_log_debug("Clearing the alarm");
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   pfc_log_info("Ignoring the clearance alarm");
-  return UPPL_RC_FAILURE;
+  return UNC_UPPL_RC_FAILURE;
+}
+
+/** 
+ * @Description : This function checks whether controller_name key
+ * is exists in the alarm_status_map_ and remove that.
+ * (it checks alarm_category 1 and 3)
+ * @param[in] : controller_name
+ * @return    : UNC_RC_SUCCESS or UNC_UPPL_RC_FAILURE
+ */
+
+UncRespCode PhysicalCore::remove_ctr_from_alarm_status_map(
+         std::string controller_name, std::string alarm_category) {
+  std::string map_key = "";
+  map_key.append(controller_name).append("#").append(alarm_category);
+  std::map<std::string, bool>::iterator alarm_map_iter;
+  alarm_map_iter = alarm_status_map_.find(map_key);
+  if (alarm_map_iter != alarm_status_map_.end()) {
+    // send recovery alarm and delete the entry
+    if (alarm_category.compare("1") == 0)
+      SendControllerConnectAlarm(controller_name);
+    else  // alarm_category == "3"
+      SendEventHandlingSuccessAlarm(controller_name, "KT_CONTROLLER - DELETE");
+
+    pfc_log_debug("controller key is deleted in alarm_status_map_");
+    return UNC_RC_SUCCESS;
+  }
+  pfc_log_debug("controller key is not found alarm_status_map_");
+  return UNC_UPPL_RC_FAILURE;
 }
+
+/** 
+ * @Description : This function get and return the capa module instance
+ * @param[in] : None
+ * @return    : CapaIntf
+ */
+
+unc::capa::CapaIntf *PhysicalCore::GetCapaInterface() {
+  unc::capa::CapaIntf *capa = reinterpret_cast<unc::capa::CapaIntf *>(
+      pfc::core::Module::getInstance("capa"));
+  if (capa == NULL) {
+    pfc_log_error("CapaModule is not found in UPPL daemon");
+  }
+  return capa;
+}
+
 }  // namespace uppl
 }  // namespace unc
 
index 9b8a3eb698806de3e81a49ba64e46f749a55d591..7e15d3a3fffe2798b3d8bf0ff0e62cdc87d504e2 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -137,19 +137,19 @@ SystemStateChangeRequest
  *                   argument present
  *                   session_id - ipc session id used for TC validation
  *                   config_id - configuration id used for TC validation
- * @return         : UPPL_RC_SUCCESS - will be returned if the config ID
+ * @return         : UNC_RC_SUCCESS - will be returned if the config ID
  *                   and session ID are valid
- *                   UPPL_RC_ERR_INVALID_CONFIGID will be returned if 
- *                   config id is invalid or UPPL_RC_ERR_INVALID_SESSIONID
+ *                   UNC_UPPL_RC_ERR_INVALID_CONFIGID will be returned if 
+ *                   config id is invalid or UNC_UPPL_RC_ERR_INVALID_SESSIONID
  *                   will be returned if session id is invalid
  **/
-UpplReturnCode InternalTransactionCoordinator::PerformConfigIdValidation(
+UncRespCode InternalTransactionCoordinator::PerformConfigIdValidation(
     ServerSession &session,
     uint32_t sessionId,
     uint32_t configId) {
   // pass config id received in the message to the physical core for validation
 
-  UpplReturnCode validation_status = PhysicalLayer::get_instance() \
+  UncRespCode validation_status = PhysicalLayer::get_instance() \
       ->get_physical_core() \
       ->ValidateConfigId(sessionId, configId);
   return validation_status;
@@ -161,14 +161,14 @@ UpplReturnCode InternalTransactionCoordinator::PerformConfigIdValidation(
  *                id must be 0. For READ operations the service id must be 1
  * @param[in]   : session - Object of ServerSession
                   service_id - type of ipc service id
- * @return      : UPPL_RC_SUCCESS - will be returned if service id validation 
- *                is success for appropriate operation type else UPPL_RC_ERR_*
+ * @return      : UNC_RC_SUCCESS - will be returned if service id validation 
+ *                is success for appropriate operation type else UNC_UPPL_RC_ERR_*
  *                will be returned. 
  **/
-UpplReturnCode InternalTransactionCoordinator::ProcessReq(
+UncRespCode InternalTransactionCoordinator::ProcessReq(
     ServerSession &session,
     pfc_ipcid_t service_id) {
-  UpplReturnCode resp_code = UPPL_RC_SUCCESS;
+  UncRespCode resp_code = UNC_RC_SUCCESS;
   int err = 0;
   if (service_id == 1 || service_id == 0) {
     // create request header object to get arguments from session
@@ -176,35 +176,35 @@ UpplReturnCode InternalTransactionCoordinator::ProcessReq(
     int parse_ret = PhyUtil::sessGetReqHeader(session, obj_req_hdr);
     if (parse_ret != 0) {
       pfc_log_error("Unable to parse ipc structure. BAD_REQUEST error");
-      return UPPL_RC_ERR_BAD_REQUEST;
+      return UNC_UPPL_RC_ERR_BAD_REQUEST;
     }
     PhyUtil::printReqHeader(obj_req_hdr);
     physical_response_header rsh;
     PhyUtil::getRespHeaderFromReqHeader(obj_req_hdr, rsh);
 
     // get system state to discard the config requests in case of standby
-    UpplReturnCode standby_status = UPPL_RC_SUCCESS;
+    UncRespCode standby_status = UNC_RC_SUCCESS;
     standby_status = PhysicalLayer::get_instance()->get_physical_core() \
         ->ValidateStandbyRequests(obj_req_hdr.operation);
 
-    if (standby_status != UPPL_RC_SUCCESS) {
-      rsh.result_code = UPPL_RC_ERR_NOT_SUPPORTED_BY_STANDBY;
+    if (standby_status != UNC_RC_SUCCESS) {
+      rsh.result_code = UNC_UPPL_RC_ERR_NOT_SUPPORTED_BY_STANDBY;
       pfc_log_error("Config not allowed in standby");
       err = PhyUtil::sessOutRespHeader(session, rsh);
       if (err != 0) {
-        return UPPL_RC_ERR_IPC_WRITE_ERROR;
+        return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
       }
-      return UPPL_RC_SUCCESS;
+      return UNC_RC_SUCCESS;
     }
     if (obj_req_hdr.data_type < UNC_DT_STATE ||
         obj_req_hdr.data_type > UNC_DT_AUDIT) {
-      rsh.result_code = UPPL_RC_ERR_DATATYPE_NOT_SUPPORTED;
+      rsh.result_code = UNC_UPPL_RC_ERR_DATATYPE_NOT_SUPPORTED;
       pfc_log_error("datatype not supported");
       err = PhyUtil::sessOutRespHeader(session, rsh);
       if (err != 0) {
-        return UPPL_RC_ERR_IPC_WRITE_ERROR;
+        return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
       }
-      return UPPL_RC_SUCCESS;
+      return UNC_RC_SUCCESS;
     }
     switch (obj_req_hdr.operation) {
       case UNC_OP_CREATE:
@@ -213,16 +213,16 @@ UpplReturnCode InternalTransactionCoordinator::ProcessReq(
         if (service_id != 0) {
           pfc_log_error(
               "Config Operation is provided with ServiceId other than 0");
-          return UPPL_RC_ERR_BAD_REQUEST;
+          return UNC_UPPL_RC_ERR_BAD_REQUEST;
         }
         resp_code = ProcessConfigRequest(session, obj_req_hdr, rsh);
         break;
       case UNC_OP_CONTROL:
         pfc_log_info("Inside control request request - NOT_SUPPORTED");
-        rsh.result_code = UPPL_RC_ERR_OPERATION_NOT_SUPPORTED;
+        rsh.result_code = UNC_UPPL_RC_ERR_OPERATION_NOT_SUPPORTED;
         err = PhyUtil::sessOutRespHeader(session, rsh);
         if (err != 0) {
-          return UPPL_RC_ERR_IPC_WRITE_ERROR;
+          return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
         }
         break;
       case UNC_OP_READ:
@@ -234,18 +234,18 @@ UpplReturnCode InternalTransactionCoordinator::ProcessReq(
         if (service_id != 1) {
           pfc_log_error(
               "Read Operation is provided with ServiceId other than 1");
-          return UPPL_RC_ERR_BAD_REQUEST;
+          return UNC_UPPL_RC_ERR_BAD_REQUEST;
         }
         resp_code = ProcessReadRequest(session, obj_req_hdr, rsh);
         break;
       default:
-        rsh.result_code = UPPL_RC_ERR_OPERATION_NOT_SUPPORTED;
+        rsh.result_code = UNC_UPPL_RC_ERR_OPERATION_NOT_SUPPORTED;
         pfc_log_error("Operation not supported");
         err = PhyUtil::sessOutRespHeader(session, rsh);
         if (err != 0) {
-          return UPPL_RC_ERR_IPC_WRITE_ERROR;
+          return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
         }
-        return UPPL_RC_SUCCESS;
+        return UNC_RC_SUCCESS;
     }
   } else if (service_id == 2) {
     uint32_t operation;
@@ -264,7 +264,7 @@ UpplReturnCode InternalTransactionCoordinator::ProcessReq(
       default:
         pfc_log_error("Operation not allowed due to bad request type");
         session.addOutput(operation);
-        session.addOutput((uint32_t)UPPL_RC_ERR_OPERATION_NOT_SUPPORTED);
+        session.addOutput((uint32_t)UNC_UPPL_RC_ERR_OPERATION_NOT_SUPPORTED);
     }
   }
   return resp_code;
@@ -274,20 +274,20 @@ UpplReturnCode InternalTransactionCoordinator::ProcessReq(
  * @Description : This function process the received notification event
  *                by creating notify req object
  * @param[in]   : object of IpcEvent class
- * @return      : UPPL_RC_SUCCESS is returned when the response is added
+ * @return      : UNC_RC_SUCCESS is returned when the response is added
  *                to ipc session successfully.
- *                UPPL_RC_ERR_* is returned when ipc response could not
+ *                UNC_UPPL_RC_ERR_* is returned when ipc response could not
  *                be added to sess.
  **/
-UpplReturnCode InternalTransactionCoordinator::ProcessEvent(
+UncRespCode InternalTransactionCoordinator::ProcessEvent(
     const IpcEvent &event) {
-  UpplReturnCode resp_code = UPPL_RC_SUCCESS;
+  UncRespCode resp_code = UNC_RC_SUCCESS;
   NotificationRequest notify_req;
   pfc_bool_t resp = notify_req.ProcessEvent(event);
   if (resp == PFC_TRUE) {
-    resp_code = UPPL_RC_SUCCESS;
+    resp_code = UNC_RC_SUCCESS;
   } else {
-    resp_code = UPPL_RC_ERR_NOTIFICATION_HANDLING_FAILED;
+    resp_code = UNC_UPPL_RC_ERR_NOTIFICATION_HANDLING_FAILED;
   }
   return resp_code;
 }
@@ -299,29 +299,29 @@ UpplReturnCode InternalTransactionCoordinator::ProcessEvent(
  *                argument present
  *                obj_req_hdr - object of physical request header
  *                &rsh - object of the physical response header 
- * @return      : UPPL_RC_SUCCESS if validation of config_id is success
- *                or UPPL_RC_ERR_* if validation fails.
+ * @return      : UNC_RC_SUCCESS if validation of config_id is success
+ *                or UNC_UPPL_RC_ERR_* if validation fails.
  **/
-UpplReturnCode InternalTransactionCoordinator::ProcessConfigRequest(
+UncRespCode InternalTransactionCoordinator::ProcessConfigRequest(
     ServerSession &session,
     physical_request_header &obj_req_hdr,
     physical_response_header &rsh) {
-  UpplReturnCode resp_code = UPPL_RC_SUCCESS;
-  UpplReturnCode validate_status = PerformConfigIdValidation(
+  UncRespCode resp_code = UNC_RC_SUCCESS;
+  UncRespCode validate_status = PerformConfigIdValidation(
       session,
       obj_req_hdr.client_sess_id,
       obj_req_hdr.config_id);
-  if (validate_status != UPPL_RC_SUCCESS) {
-    if (validate_status == UPPL_RC_ERR_INVALID_CONFIGID) {
+  if (validate_status != UNC_RC_SUCCESS) {
+    if (validate_status == UNC_UPPL_RC_ERR_INVALID_CONFIGID) {
       pfc_log_error("ITC::Process Req:: Config id validation failed");
     }
-    if (validate_status == UPPL_RC_ERR_INVALID_SESSIONID) {
+    if (validate_status == UNC_UPPL_RC_ERR_INVALID_SESSIONID) {
       pfc_log_error("ITC::Process Req:: Session id validation failed");
     }
     rsh.result_code = validate_status;
     int err = PhyUtil::sessOutRespHeader(session, rsh);
     if (err != 0) {
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
     return resp_code;
   }
@@ -329,15 +329,15 @@ UpplReturnCode InternalTransactionCoordinator::ProcessConfigRequest(
     set_config_request_status(true);
     // create configuration req object to invoke processreq function.
     ConfigurationRequest configuration_req;
-    resp_code = (UpplReturnCode) configuration_req.ProcessReq(session,
+    resp_code = (UncRespCode) configuration_req.ProcessReq(session,
                                                               obj_req_hdr);
     set_config_request_status(false);
   } else {
-    rsh.result_code = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    rsh.result_code = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
     pfc_log_error("Parallel Config operations are not allowed");
     int err = PhyUtil::sessOutRespHeader(session, rsh);
     if (err != 0) {
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
   }
   return resp_code;
@@ -350,10 +350,10 @@ UpplReturnCode InternalTransactionCoordinator::ProcessConfigRequest(
  *                argument present
  *                obj_req_hdr - object of physical request header
  *                &rsh - object of the physical response header
- * @return      : UPPL_RC_SUCCESS if validation of config_id is success
- *                or UPPL_RC_ERR_* if validation fails.
+ * @return      : UNC_RC_SUCCESS if validation of config_id is success
+ *                or UNC_UPPL_RC_ERR_* if validation fails.
  **/
-UpplReturnCode InternalTransactionCoordinator::ProcessReadRequest(
+UncRespCode InternalTransactionCoordinator::ProcessReadRequest(
     ServerSession &session,
     physical_request_header &obj_req_hdr,
     physical_response_header &rsh) {
@@ -361,37 +361,37 @@ UpplReturnCode InternalTransactionCoordinator::ProcessReadRequest(
       obj_req_hdr.data_type == UNC_DT_RUNNING ||
       obj_req_hdr.data_type == UNC_DT_CANDIDATE ||
       obj_req_hdr.data_type == UNC_DT_STARTUP)) {
-    rsh.result_code = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    rsh.result_code = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
     pfc_log_error("operation not allowed for this dt state");
     int err = PhyUtil::sessOutRespHeader(session, rsh);
     if (err != 0) {
-      return UPPL_RC_ERR_IPC_WRITE_ERROR;
+      return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
     }
-    return UPPL_RC_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
   if (obj_req_hdr.data_type == UNC_DT_CANDIDATE) {
-    UpplReturnCode validate_status = PerformConfigIdValidation(
+    UncRespCode validate_status = PerformConfigIdValidation(
         session,
         obj_req_hdr.client_sess_id,
         obj_req_hdr.config_id);
-    if (validate_status != UPPL_RC_SUCCESS) {
-      if (validate_status == UPPL_RC_ERR_INVALID_CONFIGID) {
+    if (validate_status != UNC_RC_SUCCESS) {
+      if (validate_status == UNC_UPPL_RC_ERR_INVALID_CONFIGID) {
         pfc_log_error("ITC::Process Req:: Config id validation failed");
       }
-      if (validate_status == UPPL_RC_ERR_INVALID_SESSIONID) {
+      if (validate_status == UNC_UPPL_RC_ERR_INVALID_SESSIONID) {
         pfc_log_error("ITC::Process Req:: Session id validation failed");
       }
       rsh.result_code = validate_status;
       int err = PhyUtil::sessOutRespHeader(session, rsh);
       if (err != 0) {
-        return UPPL_RC_ERR_IPC_WRITE_ERROR;
+        return UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
       }
-      return UPPL_RC_SUCCESS;
+      return UNC_RC_SUCCESS;
     }
   }
   // Form read request object to invoke process request function
   ReadRequest read_req;
-  return (UpplReturnCode) read_req.ProcessReq(session, obj_req_hdr);
+  return (UncRespCode) read_req.ProcessReq(session, obj_req_hdr);
 }
 
 /**ProcessImportRequest
@@ -400,22 +400,22 @@ UpplReturnCode InternalTransactionCoordinator::ProcessReadRequest(
  * @param[in]   : session - Object of ServerSession where the request
  *                argument present
  *                operation - UNC_OP_* specifies the operation
- * @return      : UPPL_RC_SUCCESS is returned when the response is added
+ * @return      : UNC_RC_SUCCESS is returned when the response is added
  *                to ipc session successfully.
- *                UPPL_RC_ERR_* is returned when ipc response could not
+ *                UNC_UPPL_RC_ERR_* is returned when ipc response could not
  *                be added to sess.
  **/
-UpplReturnCode InternalTransactionCoordinator::ProcessImportRequest(
+UncRespCode InternalTransactionCoordinator::ProcessImportRequest(
     ServerSession &session,
     uint32_t operation) {
   if (PhysicalLayer::get_instance()->get_physical_core()
       ->get_system_state() == UPPL_SYSTEM_ST_STANDBY) {
     pfc_log_info("Import Operations not allowed in standby");
     session.addOutput(operation);
-    session.addOutput(UPPL_RC_ERR_NOT_SUPPORTED_BY_STANDBY);
-    return UPPL_RC_SUCCESS;
+    session.addOutput(UNC_UPPL_RC_ERR_NOT_SUPPORTED_BY_STANDBY);
+    return UNC_RC_SUCCESS;
   }
-  UpplReturnCode ret_code = UPPL_RC_SUCCESS;
+  UncRespCode ret_code = UNC_RC_SUCCESS;
   key_ctr_t obj_key_ctr;
   memset(&obj_key_ctr, 0, sizeof(key_ctr_t));
   if (operation == UNC_OP_IMPORT_CONTROLLER_CONFIG) {
@@ -425,18 +425,18 @@ UpplReturnCode InternalTransactionCoordinator::ProcessImportRequest(
     if (err != 0) {
       pfc_log_info(
           "ctr_name is not present in UNC_OP_IMPORT_CONTROLLER_CONFIG");
-      return UPPL_RC_ERR_BAD_REQUEST;
+      return UNC_UPPL_RC_ERR_BAD_REQUEST;
     }
     pfc_log_debug("Controller name received %s", ctr_name);
     memcpy(obj_key_ctr.controller_name, ctr_name, strlen(ctr_name)+1);
   }
   if (config_request_status() == true) {
-    ret_code = UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
+    ret_code = UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED;
     pfc_log_error("Import not allowed- operation in progress");
   } else {
-    UpplReturnCode db_ret = UPPL_RC_SUCCESS;
+    UncRespCode db_ret = UNC_RC_SUCCESS;
     OPEN_DB_CONNECTION(unc::uppl::kOdbcmConnReadWriteNb, db_ret);
-    if (db_ret != UPPL_RC_SUCCESS) {
+    if (db_ret != UNC_RC_SUCCESS) {
       pfc_log_fatal("DB Connection failure for operation %d",
                     operation);
       return db_ret;
@@ -445,7 +445,7 @@ UpplReturnCode InternalTransactionCoordinator::ProcessImportRequest(
     ImportRequest import_req;
     ret_code = import_req.ProcessRequest(&db_conn, operation,
                                          obj_key_ctr);
-    if (ret_code == UPPL_RC_SUCCESS) {
+    if (ret_code == UNC_RC_SUCCESS) {
       if (operation == UNC_OP_IMPORT_CONTROLLER_CONFIG) {
         controller_in_import_ = (const char*) obj_key_ctr.controller_name;
       } else if (operation == UNC_OP_CLEAR_IMPORT_CONFIG) {
@@ -455,7 +455,7 @@ UpplReturnCode InternalTransactionCoordinator::ProcessImportRequest(
   }
   session.addOutput(operation);
   session.addOutput((uint32_t)ret_code);
-  return UPPL_RC_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**ProcessIsCandidateDirty
@@ -464,17 +464,17 @@ UpplReturnCode InternalTransactionCoordinator::ProcessImportRequest(
  * @param[in]   : session - Object of ServerSession where the request
  *                argument present
  *                operation - UNC_OP_* specifies the operation
- * @return      : UPPL_RC_SUCCESS is returned when the response is added
+ * @return      : UNC_RC_SUCCESS is returned when the response is added
  *                to ipc session successfully.
- *                UPPL_RC_ERR_* is returned when ipc response could not
+ *                UNC_UPPL_RC_ERR_* is returned when ipc response could not
  *                be added to sess.
  **/
-UpplReturnCode InternalTransactionCoordinator::ProcessIsCandidateDirty(
+UncRespCode InternalTransactionCoordinator::ProcessIsCandidateDirty(
     ServerSession &session,
     uint32_t operation) {
-  UpplReturnCode db_ret = UPPL_RC_SUCCESS, resp_code = UPPL_RC_SUCCESS;
+  UncRespCode db_ret = UNC_RC_SUCCESS, resp_code = UNC_RC_SUCCESS;
   OPEN_DB_CONNECTION(unc::uppl::kOdbcmConnReadWriteNb, db_ret);
-  if (db_ret != UPPL_RC_SUCCESS) {
+  if (db_ret != UNC_RC_SUCCESS) {
     pfc_log_fatal("DB Connection failure for operation %d",
                   operation);
     return db_ret;
@@ -486,14 +486,14 @@ UpplReturnCode InternalTransactionCoordinator::ProcessIsCandidateDirty(
   if (db_status == ODBCM_RC_CANDIDATE_DIRTY) {
     dirty_status = 1;
   } else if (db_status != ODBCM_RC_SUCCESS) {
-    resp_code = UPPL_RC_ERR_DB_GET;
+    resp_code = UNC_UPPL_RC_ERR_DB_GET;
   }
   int err = session.addOutput(operation);
   err |= session.addOutput((uint32_t)resp_code);
   err |= session.addOutput(dirty_status);
   if (err != 0) {
     pfc_log_info("Error in sending IsCandidateDirty response");
-    resp_code = UPPL_RC_ERR_IPC_WRITE_ERROR;
+    resp_code = UNC_UPPL_RC_ERR_IPC_WRITE_ERROR;
   }
   return resp_code;
 }
index 45c78cbe529d5060087c2c8b4bf67bad9fda714b..22b599ae3dc3a4d4ab99419fc8a3947c3b496b77 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -45,6 +45,9 @@ Mutex PhysicalLayer::notification_manager_mutex_;
 // Static variable for mutex obj use in ODBCManager class
 Mutex PhysicalLayer::ODBCManager_mutex_;
 
+// Static variable for mutex obj use in ODBC connection pool access
+Mutex PhysicalLayer::db_conpool_mutex_;
+
 ReadWriteLock PhysicalLayer::phy_fini_db_lock_;
 ReadWriteLock PhysicalLayer::phy_fini_phycore_lock_;
 ReadWriteLock PhysicalLayer::phy_fini_event_lock_;
@@ -63,7 +66,7 @@ uint8_t PhysicalLayer::phyFiniFlag = 0;
 pfc_bool_t PhysicalLayer::init() {
   pfc_log_info("Physical Layer init() called");
   uint8_t init_status = InitializePhysicalSubModules();
-  if (init_status != UPPL_RC_SUCCESS) {
+  if (init_status != UNC_RC_SUCCESS) {
     pfc_log_warn("Init failed with %d", init_status);
     return PFC_FALSE;
   }
@@ -86,8 +89,8 @@ pfc_bool_t PhysicalLayer::fini() {
     ScopedReadWriteLock ipcFiniLock(PhysicalLayer::get_phy_fini_phycore_lock_(),
                                     PFC_TRUE);
   }
-  UpplReturnCode fini_status = FinalizePhysicalSubModules();
-  if (fini_status != UPPL_RC_SUCCESS) {
+  UncRespCode fini_status = FinalizePhysicalSubModules();
+  if (fini_status != UNC_RC_SUCCESS) {
     pfc_log_warn("Fini failed with %d", fini_status);
     return PFC_FALSE;
   }
@@ -122,33 +125,33 @@ PhysicalLayer* PhysicalLayer::get_instance() {
  *@Description : This function instantiates objects for the classes
  *               PhysicalCore, IPCConnectionManager and ODBCManager.
  *@param[in] : None
- *@return    : UPPL_RC_SUCCESS is returned if all sub modules are initialized
+ *@return    : UNC_RC_SUCCESS is returned if all sub modules are initialized
  *             successfully
- *             otherwise UPPL_RC_ERR* is returned to denote error
+ *             otherwise UNC_UPPL_RC_ERR* is returned to denote error
 
  **/
-UpplReturnCode PhysicalLayer::InitializePhysicalSubModules() {
-  UpplReturnCode ret = UPPL_RC_SUCCESS;
-  UpplReturnCode resp = UPPL_RC_SUCCESS;
+UncRespCode PhysicalLayer::InitializePhysicalSubModules() {
+  UncRespCode ret = UNC_RC_SUCCESS;
+  UncRespCode resp = UNC_RC_SUCCESS;
   pfc_log_debug("Initialising IPCConnectionManager submodule");
   ipc_connection_manager_= new IPCConnectionManager();
   if (ipc_connection_manager_ == NULL) {
     pfc_log_error("Memory not allocated for ipc_connection_manager_");
-    return UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+    return UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
   }
   ipc_connection_manager_->InitializeIpcServerClient();
   pfc_log_info("IPCConnectionManager submodule initialised");
   physical_core_ = PhysicalCore::get_physical_core();
   if (physical_core_ == NULL) {
     pfc_log_error("Memory not allocated for physical_core_");
-    return UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+    return UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
   }
   pfc_log_debug("Initialising PhysicalCore submodule");
   ret = physical_core_->InitializePhysical();
-  if (ret != UPPL_RC_SUCCESS) {
+  if (ret != UNC_RC_SUCCESS) {
     pfc_log_error("Physical core initialise failed");
     resp = FinalizePhysicalSubModules();
-    if (resp != UPPL_RC_SUCCESS) return resp;
+    if (resp != UNC_RC_SUCCESS) return resp;
     return ret;
   }
   pfc_log_info("Physical Core initialised");
@@ -156,14 +159,14 @@ UpplReturnCode PhysicalLayer::InitializePhysicalSubModules() {
   odbc_manager_= ODBCManager::get_ODBCManager();
   if (odbc_manager_ == NULL) {
     pfc_log_error("Memory not allocated for odbc_manager_");
-    return UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
+    return UNC_UPPL_RC_ERR_FATAL_RESOURCE_ALLOCATION;
   }
   ODBCM_RC_STATUS odbc_ret = odbc_manager_->ODBCM_Initialize();
   if (odbc_ret != ODBCM_RC_SUCCESS) {
     pfc_log_error("ODBCManager initialise failed");
     resp = FinalizePhysicalSubModules();
-    if (resp != UPPL_RC_SUCCESS) return resp;
-    ret = UPPL_RC_FAILURE;
+    if (resp != UNC_RC_SUCCESS) return resp;
+    ret = UNC_UPPL_RC_FAILURE;
     return ret;  // Returns success code
   }
   pfc_log_info("ODBCManager initialised");
@@ -176,13 +179,13 @@ UpplReturnCode PhysicalLayer::InitializePhysicalSubModules() {
                     classes PhysicalCore, IPCConnectionManager and
                     ODBCManager
  *@param[in] : None
- *@return    : UPPL_RC_SUCCESS is returned if all sub modules are finalized
+ *@return    : UNC_RC_SUCCESS is returned if all sub modules are finalized
  *             successfully
- *             otherwise UPPL_RC_ERR* is returned to denote error
+ *             otherwise UNC_UPPL_RC_ERR* is returned to denote error
  **/
-UpplReturnCode PhysicalLayer::FinalizePhysicalSubModules() {
-  UpplReturnCode response = UPPL_RC_SUCCESS;
-  UpplReturnCode ret = UPPL_RC_SUCCESS;
+UncRespCode PhysicalLayer::FinalizePhysicalSubModules() {
+  UncRespCode response = UNC_RC_SUCCESS;
+  UncRespCode ret = UNC_RC_SUCCESS;
   {
     ScopedReadWriteLock eventFiniLock(PhysicalLayer::get_phy_fini_event_lock_(),
                                       PFC_TRUE);
@@ -192,7 +195,7 @@ UpplReturnCode PhysicalLayer::FinalizePhysicalSubModules() {
       ipc_connection_manager_ = NULL;
     }
   }
-  if (ret != UPPL_RC_SUCCESS) {
+  if (ret != UNC_RC_SUCCESS) {
     pfc_log_error("IPCConnectionManager's Finalize failed");
     response = ret;
   }
@@ -201,7 +204,7 @@ UpplReturnCode PhysicalLayer::FinalizePhysicalSubModules() {
     ScopedReadWriteLock pcFiniLock(PhysicalLayer::get_phy_fini_phycore_lock_(),
                                    PFC_TRUE);
     ret = physical_core_->FinalizePhysical();
-    if (ret != UPPL_RC_SUCCESS) {
+    if (ret != UNC_RC_SUCCESS) {
       pfc_log_error("Physical Core's Finalize failed");
       response = ret;
     }
@@ -244,7 +247,7 @@ pfc_ipcresp_t PhysicalLayer::ipcService(ServerSession &session,
                                         pfc_ipcid_t service_id) {
   pfc_log_info("PhysicalLayer::ipcService is called with service id %d",
                service_id);
-  PHY_FINI_IPC_LOCK(UPPL_RC_ERR_SHUTTING_DOWN);
+  PHY_FINI_IPC_LOCK(UNC_UPPL_RC_ERR_SHUTTING_DOWN);
   return ipc_connection_manager_->get_ipc_server_handler()->
       IpcService(session, service_id);
 }
index 1172a9169c94563923bcb707b54e97f53921ffb7..4362f037fc3c9e373ce75189ca729db9631d3abd 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -45,13 +45,24 @@ void UncStateHandler::unc_act_event_handler_fn(pfc::core::Event* Event) {
   lock_.lock();
   pfc_log_info("State change to Active received from Daemon");
   if (system_state_ == UPPL_SYSTEM_ST_STANDBY) {
+    PhysicalLayer *physical_layer = PhysicalLayer::get_instance();
+    PhysicalCore* physical_core = physical_layer->get_physical_core();
+    physical_core->system_transit_state_ = true;
+
     // Close the existing rw connections if any after switch over
     ODBCM_RC_STATUS close_rw_handle =
         PhysicalLayer::get_instance()->get_odbc_manager()->CloseRwConnection();
     pfc_log_debug("Rw Connection Handle Free status %d", close_rw_handle);
+    //  All existing Read only connections will be freed when transiting to ACT
+    ODBCM_RC_STATUS close_ro_handle =
+          PhysicalLayer::get_instance()->
+                       get_odbc_manager()->FreeingConnections(false);
+    pfc_log_debug("RO Connection Handle(s) Free status %d",
+                                                     close_ro_handle);
+    physical_core->system_transit_state_ = false;
     set_system_state(UPPL_SYSTEM_ST_ACTIVE);
     // Send event subscription to driver
-    UpplReturnCode ret = PhysicalCore::get_physical_core()->
+    UncRespCode ret = PhysicalCore::get_physical_core()->
         SendEventSubscripToDriver();
     pfc_log_debug("Event subscription return %d", ret);
     // clear all alarms
index 0fa09b4d6b7720f95a0fb41149eeacf5abe6aa34..71ac17f2a6689394c0a0c9e33a36025e4a101a87 100644 (file)
@@ -1,5 +1,5 @@
 %
-% Copyright (c) 2012-2013 NEC Corporation
+% Copyright (c) 2012-2014 NEC Corporation
 % All rights reserved.
 % 
 % This program and the accompanying materials are made available under the
@@ -26,4 +26,6 @@ defblock ipc_params {
   uppl_ipc_service_ids = BYTE[];
   audit_notfn_timeout = UINT32;
   unknown_controller_count = UINT32;
+  uppl_max_dataflowtraversal = UINT32;
+  uppl_max_ro_db_connections = UINT32;
 }
index f404ea2d75717ce0a3d513831fc0203b1685a5e8..2bb4776b00f057c3d87e7a1d2689f5eafbca273e 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2012-2013 NEC Corporation
+# Copyright (c) 2012-2014 NEC Corporation
 # All rights reserved.
 # 
 # This program and the accompanying materials are made available under the
@@ -26,4 +26,6 @@ ipc_params {
   
   audit_notfn_timeout = 30;
   unknown_controller_count = 1;
+  uppl_max_dataflowtraversal = 1000;
+  uppl_max_ro_db_connections = 100;
 }
index ed2f2be9b981a604acd91ec87ad8a8dc23d90ed7..f41625984c18825dc75e21d1241d1c4cab43a4a2 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2012-2013 NEC Corporation
+# Copyright (c) 2012-2014 NEC Corporation
 # All rights reserved.
 # 
 # This program and the accompanying materials are made available under the
@@ -11,3 +11,5 @@
 tclib
 alarm
 clstat
+capa
+dataflow
index 83155b5b79bb57cbe3a7e11f78767090dafb3253..ae476680d4b9972ec440e6fa998a6df7080f5e51 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2012-2013 NEC Corporation
+# Copyright (c) 2012-2014 NEC Corporation
 # All rights reserved.
 # 
 # This program and the accompanying materials are made available under the
@@ -13,7 +13,7 @@
 # e.g. "5.0"
 
 version_list {
-  version = ["5.0"];
+  version = ["5.0", "5.1"];
 }
 
 kt_cap_map_list {
@@ -27,6 +27,6 @@ kt_cap "KT_CONTROLLER" {
 
   attribute_name = ["type","description","ip_address", "ip_prefix_len", "user",
                     "password", "enable_audit", "version"];
-  version_supported = ["5.0"];
+  version_supported = ["5.0.0.0, 5.1.0.0"];
   scalability_num = 50;
 }
index 956fbc553044200f0f4a45e0fb5227efc389bd99..c190e95e0c9176f99e091bf5811b252b5ccad718 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -76,8 +76,7 @@ namespace usess {
 // -------------------------------------------------------------
 // Class definition
 // -------------------------------------------------------------
-class Usess : public pfc::core::Module
-{
+class Usess : public pfc::core::Module {
  public:
   Usess(const pfc_modattr_t *attr);
   ~Usess(void);
@@ -93,7 +92,7 @@ class Usess : public pfc::core::Module
 
 
  private:
-  static usess_ipc_err_e (Usess::*IpcHandler[])(
+  static usess_ipc_err_e(Usess::*IpcHandler[])(
                       pfc::core::ipc::ServerSession&);
 
   // Processing function of IPC Service.
index 68e0913230e57306fe1da23a721eff222379e100..5dc62b43334d98083ed640bd92dfc5f9414ef455 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
 #ifndef _USESS_BASE_COMMON_HH_
 #define _USESS_BASE_COMMON_HH_
 
+#include <string>
 #include "usess_def.hh"
 
 namespace unc {
 namespace usess {
 
-class UsessBaseCommon
-{
-public:
+class UsessBaseCommon {
+public
+    :
   UsessBaseCommon(void);
   ~UsessBaseCommon(void);
 
@@ -32,7 +33,6 @@ public:
                    const std::string& hash_key) const;
   bool CheckRegular(const char* check_str,
                     const std::string& regular_str) const;
-
 };
 
 }  // namespace usess
index 4762f3134b2af90dc9b00eeff42db7aee1363eb3..c5f045d33249f58b1c1ee4c50f83e70e52a883bb 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -28,8 +28,7 @@ typedef struct {
 // -------------------------------------------------------------
 // Class declaration.
 // -------------------------------------------------------------
-class UsessConfCommon
-{
+class UsessConfCommon {
  public:
   UsessConfCommon(void);
   ~UsessConfCommon(void);
index fb0f4252e935b7c0bcfefc40f7c13a2ea3ce74df..29ad2e2875d5e7016786552cf49adfc116ab9efb 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -10,6 +10,7 @@
 #ifndef _USESS_CONF_ENABLE_HH_
 #define _USESS_CONF_ENABLE_HH_
 
+#include <string>
 #include "usess_def.hh"
 
 namespace unc {
@@ -32,8 +33,7 @@ typedef struct {
 // -------------------------------------------------------------
 // Class declaration.
 // -------------------------------------------------------------
-class UsessConfEnable
-{
+class UsessConfEnable {
  public:
   // -----------------------------
   //  class method.
index bbd0416b2c01495206293e23394f1ee94ed7a71a..7e0fc1737ce5e719e9c7cdf52da7663ea2e7dfef 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -63,8 +63,7 @@ typedef struct {
 // -------------------------------------------------------------
 //  Class declaration.
 // -------------------------------------------------------------
-class UsessConfSession
-{
+class UsessConfSession {
  public:
   UsessConfSession(void);
   ~UsessConfSession(void);
index 47cb5b694f4ffba2fe4977bb6713649cbd8ad085..0a1876b2f989738aa5d10bae5040be3c906b50da 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -10,6 +10,7 @@
 #ifndef _USESS_CONF_USER_HH_
 #define _USESS_CONF_USER_HH_
 
+#include <string>
 #include "usess_def.hh"
 
 namespace unc {
@@ -37,9 +38,9 @@ typedef struct {
 // -------------------------------------------------------------
 // Class declaration.
 // -------------------------------------------------------------
-class UsessConfUser
-{
-public:
+class UsessConfUser {
+public
+    :
   UsessConfUser(void);
   ~UsessConfUser(void);
 
index 1ecfbe3d8d19a914d1c92fb60a380158a5ca6f79..ab787ba6cf527b9463758b339f36790221511442 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -96,4 +96,4 @@ namespace usess {
 }  // namespace usess
 }  // namespace unc
 
-#endif // _USESS_DEF_HH_
+#endif  // _USESS_DEF_HH_
index 20ee598a6422eaa55991cb8963bc2c9a0d4d5275..faf9c161c7d6726268d5c6052e8adae2d0030a15 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -38,8 +38,7 @@ typedef enum {
 // -------------------------------------------------------------
 // Class declaration.
 // -------------------------------------------------------------
-class UsessEnable : public UsessBaseCommon
-{
+class UsessEnable : public UsessBaseCommon {
  public:
   UsessEnable(mgmtdb::MgmtDatabase& database);
   ~UsessEnable(void);
index 9cc625f96dcc8c31aadc8409139995d1155db227..fad45e68a00d175cb39d71f9b48aa87a94f0aedd 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -28,8 +28,7 @@ namespace usess {
 // -------------------------------------------------------------
 // Class declaration.
 // -------------------------------------------------------------
-class UsessSession : public UsessBaseCommon
-{
+class UsessSession : public UsessBaseCommon {
  public:
   UsessSession(const UsessConfSession& conf);
   UsessSession(const UsessConfSession& conf,
index 484283cdef5d7c37f8252e69bae8d2fd9f0dc3db..2161dbaf14554372f54ecc16667ed8717bc8c4a9 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -10,6 +10,8 @@
 #ifndef _USESS_SESSIONS_HH_
 #define _USESS_SESSIONS_HH_
 
+#include <map>
+#include <vector>
 #include "usess_def.hh"
 #include "usess_conf_session.hh"
 #include "usess_session.hh"
@@ -51,8 +53,7 @@ typedef std::vector<usess_ipc_res_sess_info_t> usess_session_list_v;
 // -------------------------------------------------------------
 // Class declaration.
 // -------------------------------------------------------------
-class UsessSessions
-{
+class UsessSessions {
  public:
   UsessSessions(void);
   ~UsessSessions(void);
@@ -92,7 +93,6 @@ class UsessSessions
   UsessConfSession conf_;
   // allocated session id.
   uint32_t allocated_sess_id_[ID_NUM];
-
 };
 
 }  // namespace usess
index 07ab9e0727636070c75e13e8b774c3152da0fe90..373dedb615d09658272ebe6e390ac10817c8f94f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -10,6 +10,7 @@
 #ifndef _USESS_USER_HH_
 #define _USESS_USER_HH_
 
+#include <string>
 #include "usess_def.hh"
 #include "usess_conf_user.hh"
 #include "mgmt_database.hh"
@@ -42,8 +43,7 @@ typedef enum {
 // -------------------------------------------------------------
 // Class declaration.
 // -------------------------------------------------------------
-class UsessUser : public UsessBaseCommon
-{
+class UsessUser : public UsessBaseCommon {
  public:
   // -----------------------------
   //  class method.
index 17b399f98c59084ea87c01fc2970e0d630b711e0..eb55867c52bd4c87400e9f69a1b61e89c1ab62b8 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -10,7 +10,7 @@
 #ifndef _USESS_USERS_HH_
 #define _USESS_USERS_HH_
 
-
+#include <string>
 #include "usess_def.hh"
 #include "usess_conf_user.hh"
 #include "usess_user.hh"
@@ -21,8 +21,7 @@ namespace usess {
 // -------------------------------------------------------------
 // Class declaration.
 // -------------------------------------------------------------
-class UsessUsers
-{
+class UsessUsers {
  public:
   UsessUsers(mgmtdb::MgmtDatabase& database);
   ~UsessUsers(void);
index ff3d50d3e7e1b132ac9cf1b2862f9eb153ad8725..9cf8642a54bc06e1f99357ee6f35cbf05a709e4d 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -16,8 +16,7 @@ namespace usess {
 #define CLASS_NAME "Usess"
 
 // IPC handler function table.
-usess_ipc_err_e (Usess::*Usess::IpcHandler[])(pfc::core::ipc::ServerSession&) =
-{
+usess_ipc_err_e (Usess::*Usess::IpcHandler[])(pfc::core::ipc::ServerSession&) = {
     &Usess::UsessSessAddHandler,
     &Usess::UsessSessDelHandler,
     &Usess::UsessSessTypeDelHandler,
@@ -35,11 +34,10 @@ usess_ipc_err_e (Usess::*Usess::IpcHandler[])(pfc::core::ipc::ServerSession&) =
  * @brief   Constructor.
  * @param   attr  : module attribute.
  * @return  nothing.
- * @note    
+ * @note
  */
 Usess::Usess(const pfc_modattr_t *attr)
-  : pfc::core::Module(attr), users_(database_), enable_(database_)
-{
+  : pfc::core::Module(attr), users_(database_), enable_(database_) {
   event_id_conf_reload_ = EVHANDLER_ID_INVALID;
 }
 
@@ -48,10 +46,9 @@ Usess::Usess(const pfc_modattr_t *attr)
  * @brief   Destructor.
  * @param   nothing.
  * @return  nothing.
- * @note    
+ * @note
  */
-Usess::~Usess(void)
-{
+Usess::~Usess(void) {
 }
 
 
@@ -60,10 +57,9 @@ Usess::~Usess(void)
  * @param   nothing.
  * @return  PFC_TRUE  : Success.
  *          PFC_FALSE : Failure.
- * @note    
+ * @note
  */
-pfc_bool_t Usess::init(void)
-{
+pfc_bool_t Usess::init(void) {
   // event mask value.
   pfc::core::EventMask reload_mask(PFC_MODEVENT_TYPE_RELOAD);
   // event handler.
@@ -116,10 +112,12 @@ pfc_bool_t Usess::init(void)
   L_FUNCTION_COMPLETE();
   return PFC_TRUE;
 
-unlock_end:
+unlock_end
+    :
   USESS_UNLOCK();
 
-proc_end:
+proc_end
+    :
   fini();
   return PFC_FALSE;
 }
@@ -130,10 +128,9 @@ proc_end:
  * @param   nothing.
  * @return  PFC_TRUE  : Success.
  *          PFC_FALSE : Failure.
- * @note    
+ * @note
  */
-pfc_bool_t Usess::fini(void)
-{
+pfc_bool_t Usess::fini(void) {
   // area of return value.
   int remove_handler_rtn = -1;
   pfc_bool_t err_code = PFC_TRUE;
@@ -192,11 +189,10 @@ pfc_bool_t Usess::fini(void)
  *          USESS_E_INVALID_USER      : Invalid user name.
  *          USESS_E_INVALID_PASSWD    : Invalid password.
  *          USESS_E_SESS_OVER         : Over the number of user sessions.
- * @note    
+ * @note
  */
 pfc_ipcresp_t Usess::ipcService(pfc::core::ipc::ServerSession &ipcsess,
-        pfc_ipcid_t service)
-{
+        pfc_ipcid_t service) {
   // area of return value.
   usess_ipc_err_e rtn = USESS_E_NG;
 
@@ -216,7 +212,8 @@ pfc_ipcresp_t Usess::ipcService(pfc::core::ipc::ServerSession &ipcsess,
   L_FUNCTION_COMPLETE();
   rtn = USESS_E_OK;
 
-proc_end:
+proc_end
+    :
   return static_cast<pfc_ipcresp_t>(rtn);
 }
 
@@ -225,10 +222,9 @@ proc_end:
  * @brief   Receive of configuration reload event.
  * @param   event : [IN] event object.
  * @return  nothing.
- * @note    
+ * @note
  */
-void Usess::ReloadConfEventHandler(pfc::core::Event* event)
-{
+void Usess::ReloadConfEventHandler(pfc::core::Event* event) {
   pfc_evtype_t event_type = 0;
   // area of return value.
   usess_ipc_err_e err_code = USESS_E_OK;
@@ -247,7 +243,7 @@ void Usess::ReloadConfEventHandler(pfc::core::Event* event)
   // Configuration file reload.
   // -------------------------------------------------------------
   int_rtn = reloadConf();
-  GOTO_IF((int_rtn != 0), proc_end, 
+  GOTO_IF((int_rtn != 0), proc_end,
       "Failed reload configuration. err=%d (%s)",
       int_rtn, strerror(int_rtn));
 
@@ -277,7 +273,8 @@ void Usess::ReloadConfEventHandler(pfc::core::Event* event)
   }
   return;
 
-proc_end:
+proc_end
+    :
   return;
 }
 
@@ -286,11 +283,10 @@ proc_end:
  * @brief   Called from IPC service handler, and add the session.
  * @param   ipcsess : [IN/OUT] IPC service handler context.
  * @return  Processing result.
- * @note    
+ * @note
  */
 usess_ipc_err_e Usess::UsessSessAddHandler(
-      pfc::core::ipc::ServerSession& ipcsess)
-{
+      pfc::core::ipc::ServerSession& ipcsess) {
   // area of IPC send/receive data.
   usess_ipc_req_sess_add_t receive_data;
   usess_ipc_sess_id_t send_data;
@@ -356,11 +352,13 @@ usess_ipc_err_e Usess::UsessSessAddHandler(
   L_FUNCTION_COMPLETE();
   return USESS_E_OK;
 
-unlock_end:
+unlock_end
+    :
   database_.Disconnect();
   USESS_UNLOCK();
 
-proc_end:
+proc_end
+    :
   // erase of password data area.
   memset(receive_data.sess_passwd, 0x00, sizeof(receive_data.sess_passwd));
   memset(passwd, 0x00, sizeof(passwd));
@@ -373,11 +371,10 @@ proc_end:
  * @brief   Called from IPC service handler, and delete the session.
  * @param   ipcsess : [IN/OUT] IPC service handler context.
  * @return  Processing result.
- * @note    
+ * @note
  */
 usess_ipc_err_e Usess::UsessSessDelHandler(
-    pfc::core::ipc::ServerSession& ipcsess)
-{
+    pfc::core::ipc::ServerSession& ipcsess) {
   usess_ipc_req_sess_del_t receive_data;
 
   int ipc_rtn = -1;
@@ -410,10 +407,12 @@ usess_ipc_err_e Usess::UsessSessDelHandler(
   L_FUNCTION_COMPLETE();
   return USESS_E_OK;
 
-unlock_end:
+unlock_end
+    :
   USESS_UNLOCK();
 
-proc_end:
+proc_end
+    :
   return err_code;
 }
 
@@ -423,11 +422,10 @@ proc_end:
  *          and delete the session of Specified session type.
  * @param   ipcsess : [IN/OUT] IPC service handler context.
  * @return  Processing result.
- * @note    
+ * @note
  */
 usess_ipc_err_e Usess::UsessSessTypeDelHandler(
-    pfc::core::ipc::ServerSession& ipcsess)
-{
+    pfc::core::ipc::ServerSession& ipcsess) {
   usess_ipc_req_sess_type_del_t receive_data;
 
   int ipc_rtn = -1;
@@ -454,10 +452,12 @@ usess_ipc_err_e Usess::UsessSessTypeDelHandler(
   L_FUNCTION_COMPLETE();
   return USESS_E_OK;
 
-unlock_end:
+unlock_end
+    :
   USESS_UNLOCK();
 
-proc_end:
+proc_end
+    :
   return err_code;
 }
 
@@ -465,11 +465,10 @@ proc_end:
  * @brief   Called from IPC service handler, perform enable authentication.
  * @param   ipcsess : [IN/OUT] IPC service handler context.
  * @return  Processing result.
- * @note    
+ * @note
  */
 usess_ipc_err_e Usess::UsessEnableHandler(
-    pfc::core::ipc::ServerSession& ipcsess)
-{
+    pfc::core::ipc::ServerSession& ipcsess) {
   usess_ipc_req_sess_enable_t receive_data;
   UsessSession *sess = NULL;
   char passwd[73] = {'\0'};
@@ -524,11 +523,13 @@ usess_ipc_err_e Usess::UsessEnableHandler(
   L_FUNCTION_COMPLETE();
   return USESS_E_OK;
 
-unlock_end:
+unlock_end
+    :
   database_.Disconnect();
   USESS_UNLOCK();
 
-proc_end:
+proc_end
+    :
   // erase of password data area.
   memset(receive_data.enable_passwd, 0x00, sizeof(receive_data.enable_passwd));
   memset(passwd, 0x00, sizeof(passwd));
@@ -541,11 +542,10 @@ proc_end:
  * @brief   Called from IPC service handler, perform disable authentication.
  * @param   ipcsess : [IN/OUT] IPC service handler context.
  * @return  Processing result.
- * @note    
+ * @note
  */
 usess_ipc_err_e Usess::UsessDisableHandler(
-    pfc::core::ipc::ServerSession& ipcsess)
-{
+    pfc::core::ipc::ServerSession& ipcsess) {
   usess_ipc_sess_id_t receive_data;
   UsessSession *sess = NULL;
 
@@ -582,10 +582,12 @@ usess_ipc_err_e Usess::UsessDisableHandler(
   L_FUNCTION_COMPLETE();
   return USESS_E_OK;
 
-unlock_end:
+unlock_end
+    :
   USESS_UNLOCK();
 
-proc_end:
+proc_end
+    :
   return err_code;
 }
 
@@ -594,11 +596,10 @@ proc_end:
  * @brief   Called from IPC service handler, send session count.
  * @param   ipcsess : [IN/OUT] IPC service handler context.
  * @return  Processing result.
- * @note    
+ * @note
  */
 usess_ipc_err_e Usess::UsessSessCountHandler(
-    pfc::core::ipc::ServerSession& ipcsess)
-{
+    pfc::core::ipc::ServerSession& ipcsess) {
   usess_ipc_sess_id_t receive_data;
   uint32_t send_data;
 
@@ -635,10 +636,12 @@ usess_ipc_err_e Usess::UsessSessCountHandler(
   L_FUNCTION_COMPLETE();
   return USESS_E_OK;
 
-unlock_end:
+unlock_end
+    :
   USESS_UNLOCK();
 
-proc_end:
+proc_end
+    :
   return err_code;
 }
 
@@ -647,11 +650,10 @@ proc_end:
  * @brief   Called from IPC service handler, send session list.
  * @param   ipcsess : [IN/OUT] IPC service handler context.
  * @return  Processing result.
- * @note    
+ * @note
  */
 usess_ipc_err_e Usess::UsessSessListHandler(
-    pfc::core::ipc::ServerSession& ipcsess)
-{
+    pfc::core::ipc::ServerSession& ipcsess) {
   usess_ipc_sess_id_t receive_data;
   usess_session_list_v info_list;
 
@@ -692,10 +694,12 @@ usess_ipc_err_e Usess::UsessSessListHandler(
   L_FUNCTION_COMPLETE();
   return USESS_E_OK;
 
-unlock_end:
+unlock_end
+    :
   USESS_UNLOCK();
 
-proc_end:
+proc_end
+    :
   return err_code;
 }
 
@@ -704,11 +708,10 @@ proc_end:
  * @brief   Called from IPC service handler, send session detail.
  * @param   ipcsess : [IN/OUT] IPC service handler context.
  * @return  Processing result.
- * @note    
+ * @note
  */
 usess_ipc_err_e Usess::UsessSessDetailHandler(
-    pfc::core::ipc::ServerSession& ipcsess)
-{
+    pfc::core::ipc::ServerSession& ipcsess) {
   usess_ipc_req_sess_detail_t receive_data;
   usess_session_list_v info_list;
 
@@ -747,10 +750,12 @@ usess_ipc_err_e Usess::UsessSessDetailHandler(
   L_FUNCTION_COMPLETE();
   return USESS_E_OK;
 
-unlock_end:
+unlock_end
+    :
   USESS_UNLOCK();
 
-proc_end:
+proc_end
+    :
   return err_code;
 }
 
@@ -759,11 +764,10 @@ proc_end:
  * @brief   Called from IPC service handler, change user password.
  * @param   ipcsess : [IN/OUT] IPC service handler context.
  * @return  Processing result.
- * @note    
+ * @note
  */
 usess_ipc_err_e Usess::UserUserPasswdHandler(
-    pfc::core::ipc::ServerSession& ipcsess)
-{
+    pfc::core::ipc::ServerSession& ipcsess) {
   usess_ipc_req_user_passwd_t receive_data;
   UsessUser user(database_);
   UsessSession *sess = NULL;
@@ -822,11 +826,13 @@ usess_ipc_err_e Usess::UserUserPasswdHandler(
   L_FUNCTION_COMPLETE();
   return USESS_E_OK;
 
-unlock_end:
+unlock_end
+    :
   database_.Disconnect();
   USESS_UNLOCK();
 
-proc_end:
+proc_end
+    :
   // erase of password data area.
   memset(receive_data.sess_passwd, 0x00, sizeof(receive_data.sess_passwd));
   memset(passwd, 0x00, sizeof(passwd));
@@ -839,11 +845,10 @@ proc_end:
  * @brief   Called from IPC service handler, change enable password.
  * @param   ipcsess : [IN/OUT] IPC service handler context.
  * @return  Processing result.
- * @note    
+ * @note
  */
 usess_ipc_err_e Usess::UserEnablePasswdHandler(
-    pfc::core::ipc::ServerSession& ipcsess)
-{
+    pfc::core::ipc::ServerSession& ipcsess) {
   usess_ipc_req_enable_passwd_t receive_data;
   UsessSession *sess = NULL;
   char passwd[73] = {'\0'};
@@ -893,11 +898,13 @@ usess_ipc_err_e Usess::UserEnablePasswdHandler(
   L_FUNCTION_COMPLETE();
   return USESS_E_OK;
 
-unlock_end:
+unlock_end
+    :
   database_.Disconnect();
   USESS_UNLOCK();
 
-proc_end:
+proc_end
+    :
   // erase of password data area.
   memset(receive_data.enable_passwd, 0x00, sizeof(receive_data.enable_passwd));
   memset(passwd, 0x00, sizeof(passwd));
@@ -906,7 +913,7 @@ proc_end:
 }
 
 
-} // namespace usess
-} // namespace unc
+}  // namespace usess
+}  // namespace unc
 
 PFC_MODULE_IPC_DECL(unc::usess::Usess, kUsessIpcNipcs);
index 517a8f5e8d1adf0cf6de981a5eb61bbf0e53ff01..bab5334a45b32bbd2b8c435a564baba861f32ea0 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -23,20 +23,18 @@ namespace usess {
  * @brief   Constructor.
  * @param   nothing.
  * @return  nothing.
- * @note    
+ * @note
  */
-UsessBaseCommon::UsessBaseCommon(void)
-{
+UsessBaseCommon::UsessBaseCommon(void) {
 }
 
 /*
  * @brief   Destructor.
  * @param   nothing.
  * @return  nothing.
- * @note    
+ * @note
  */
-UsessBaseCommon::~UsessBaseCommon(void)
-{
+UsessBaseCommon::~UsessBaseCommon(void) {
 }
 
 /*
@@ -46,11 +44,10 @@ UsessBaseCommon::~UsessBaseCommon(void)
  *          hash_type : [IN] hash type.
  *          hash_str  : [OUT]hash string.
  * @return  nothing.
- * @note    
+ * @note
  */
 void UsessBaseCommon::Hash(const char* str, const std::string& hash_key,
-      const hash_type_e hash_type, std::string& hash_str) const
-{
+      const hash_type_e hash_type, std::string& hash_str) const {
   char salt[128];
 
   // parameter check.
@@ -76,11 +73,10 @@ void UsessBaseCommon::Hash(const char* str, const std::string& hash_key,
  *          hash_type : [IN] hash type.
  *          hash_str  : [OUT]hash string.
  * @return  nothing.
- * @note    
+ * @note
  */
 void UsessBaseCommon::Hash(const char* str, const pfc_timespec_t& hash_key,
-    const hash_type_e hash_type, std::string& hash_str) const
-{
+    const hash_type_e hash_type, std::string& hash_str) const {
   char salt[128];
 
   // parameter check.
@@ -104,11 +100,10 @@ void UsessBaseCommon::Hash(const char* str, const pfc_timespec_t& hash_key,
  *          salt      : [IN] hash salt.
  *          hash_str  : [OUT]hash string.
  * @return  nothing.
- * @note    
+ * @note
  */
 void UsessBaseCommon::Hash(const char* str,
-      const std::string& salt, std::string& hash_str) const
-{
+      const std::string& salt, std::string& hash_str) const {
   // parameter check.
   if (salt.empty()) {
     hash_str.erase();
@@ -126,11 +121,10 @@ void UsessBaseCommon::Hash(const char* str,
  *          hash_str  : [IN] comparison hash string.
  *          salt      : [IN] hash salt.
  * @return  nothing.
- * @note    
+ * @note
  */
 bool UsessBaseCommon::CheckDigest(const char* str,
-    const std::string& hash_str, const std::string& salt) const
-{
+    const std::string& hash_str, const std::string& salt) const {
   std::string cmp_str;
 
 
@@ -150,11 +144,10 @@ bool UsessBaseCommon::CheckDigest(const char* str,
  *          regular_str : [IN] regular pattern string.
  * @return  true  : match.
  *          false : no match.
- * @note    
+ * @note
  */
 bool UsessBaseCommon::CheckRegular(const char* check_str,
-      const std::string& regular_str) const
-{
+      const std::string& regular_str) const {
   regex_t preg;
   size_t nmatch = strlen(check_str) + 1;
   regmatch_t pmatch[nmatch];
@@ -182,16 +175,16 @@ bool UsessBaseCommon::CheckRegular(const char* check_str,
 
   // Check the number of matched characters.
   GOTO_IF((pmatch[0].rm_so != 0 || pmatch[0].rm_eo != (int)strlen(check_str)),
-              err_end, "%s", "no match.");
+          err_end, "%s", "no match.");
 
   regfree(&preg);
   L_FUNCTION_COMPLETE();
   return true;
 
-err_end:
+err_end
+    :
   regfree(&preg);
   return false;
-
 }
 
 }  // namespace usess
index a6d91b362d544d580181cbf12bbd0be029bac705..c1eceb68fa3b2ef85c32637224b772516408ad88 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -31,10 +31,9 @@ const usess_conf_common_t UsessConfCommon::kDefaultConf_ = {
  * @brief   Constructor.
  * @param   nothing.
  * @return  nothing.
- * @note    
+ * @note
  */
-UsessConfCommon::UsessConfCommon(void)
-{
+UsessConfCommon::UsessConfCommon(void) {
   data_ = kDefaultConf_;
 }
 
@@ -42,20 +41,18 @@ UsessConfCommon::UsessConfCommon(void)
  * @brief   Destructor.
  * @param   nothing.
  * @return  nothing.
- * @note    
+ * @note
  */
-UsessConfCommon::~UsessConfCommon(void)
-{
+UsessConfCommon::~UsessConfCommon(void) {
 }
 
 /*
  * @brief   Configuration file data load.
  * @param   nothing.
  * @return  Processing result.
- * @note    
+ * @note
  */
-usess_ipc_err_e UsessConfCommon::LoadConf(void)
-{
+usess_ipc_err_e UsessConfCommon::LoadConf(void) {
   pfc::core::ModuleConfBlock conf_block(kConfBlockName_);
 
 
@@ -83,10 +80,9 @@ usess_ipc_err_e UsessConfCommon::LoadConf(void)
  * @brief   configuration data access.
  * @param   nothing.
  * @return  Processing result.
- * @note    
+ * @note
  */
-const usess_conf_common_t& UsessConfCommon::data(void) const
-{
+const usess_conf_common_t& UsessConfCommon::data(void) const {
   return data_;
 }
 
index a21ae9e29ac53b78e4f1faea2419263b10f719dd..d39c9adcaacce1366a6637f00ec9909a50b7bef4 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -35,10 +35,9 @@ const usess_conf_enable_t UsessConfEnable::kDefaultConf_ = {
  * @brief   Constructor.
  * @param   nothing.
  * @return  nothing.
- * @note    
+ * @note
  */
-UsessConfEnable::UsessConfEnable(void)
-{
+UsessConfEnable::UsessConfEnable(void) {
   data_ = kDefaultConf_;
 }
 
@@ -47,10 +46,9 @@ UsessConfEnable::UsessConfEnable(void)
  * @brief   Destructor.
  * @param   nothing.
  * @return  nothing.
- * @note    
+ * @note
  */
-UsessConfEnable::~UsessConfEnable(void)
-{
+UsessConfEnable::~UsessConfEnable(void) {
 }
 
 
@@ -58,10 +56,9 @@ UsessConfEnable::~UsessConfEnable(void)
  * @brief   Configuration file data load.
  * @param   nothing.
  * @return  Processing result.
- * @note    
+ * @note
  */
-usess_ipc_err_e UsessConfEnable::LoadConf(void)
-{
+usess_ipc_err_e UsessConfEnable::LoadConf(void) {
   pfc::core::ModuleConfBlock conf_block(kConfBlockName_);
 
 
@@ -92,10 +89,9 @@ usess_ipc_err_e UsessConfEnable::LoadConf(void)
  * @brief   configuration data access.
  * @param   nothing.
  * @return  Processing result.
- * @note    
+ * @note
  */
-const usess_conf_enable_t& UsessConfEnable::data(void) const
-{
+const usess_conf_enable_t& UsessConfEnable::data(void) const {
   return data_;
 }
 
index 89ed58d7a34320c711e85124ee4b3490af2e87dd..49167b727038f7c91f8f8d644a5a14083982dd1c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -26,8 +26,7 @@ const char* UsessConfSession::kConfMapKey_[ID_NUM] =
     {"cli", "web_api", "web_ui", "fixed"};
 
 // configuration data default value.
-const usess_conf_session_t UsessConfSession::UsessConfSession::kDefaultConf_ =
-{
+const usess_conf_session_t UsessConfSession::UsessConfSession::kDefaultConf_ = {
   {true, 64},                   // .global
   {{{   1,   127}, {true, 16}},  // .local[0] CLI connect.
   {{1024, 65535}, {true, 64}},  // .local[1] WEB API connect.
@@ -45,8 +44,7 @@ const usess_conf_session_t UsessConfSession::UsessConfSession::kDefaultConf_ =
  * @return  nothing.
  * @note    
  */
-UsessConfSession::UsessConfSession(void)
-{
+UsessConfSession::UsessConfSession(void) {
   data_ = kDefaultConf_;
 }
 
@@ -57,8 +55,7 @@ UsessConfSession::UsessConfSession(void)
  * @return  nothing.
  * @note    
  */
-UsessConfSession::~UsessConfSession(void)
-{
+UsessConfSession::~UsessConfSession(void) {
 }
 
 
@@ -68,8 +65,7 @@ UsessConfSession::~UsessConfSession(void)
  * @return  Processing result.
  * @note    
  */
-usess_ipc_err_e UsessConfSession::LoadConf(void)
-{
+usess_ipc_err_e UsessConfSession::LoadConf(void) {
   pfc::core::ModuleConfBlock global(kConfBlockName_);
 
   pfc::core::ModuleConfBlock cli(kConfMapName_, kConfMapKey_[ID_CLI]);
@@ -137,8 +133,7 @@ usess_ipc_err_e UsessConfSession::LoadConf(void)
  * @return  Processing result.
  * @note    
  */
-const usess_conf_session_t& UsessConfSession::data(void) const
-{
+const usess_conf_session_t& UsessConfSession::data(void) const {
   return data_;
 }
 
index 083a14d808c26e2be2116225dba6cc54cbccd933..a05eea848fc7859598dd9cec69fe83e0176a9999 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -24,7 +24,7 @@ const char* UsessConfUser::kConfBlockName_ = "usess_conf_user";
 const usess_conf_user_t UsessConfUser::kDefaultConf_ = {
                         HASH_TYPE_MD5,              // .hash_type
                         32,                         // .user_length
-                        "[[:alpha:]_][[:alnum:]_]+",// .user_regular
+                        "[[:alpha:]_][[:alnum:]_]+",  // .user_regular
                         72,                         // .passwd_length
                         "[[:alnum:][:graph:]]+"     // .passwd_regular
 };
@@ -36,10 +36,9 @@ const usess_conf_user_t UsessConfUser::kDefaultConf_ = {
  * @brief   Constructor.
  * @param   nothing.
  * @return  nothing.
- * @note    
+ * @note
  */
-UsessConfUser::UsessConfUser(void)
-{
+UsessConfUser::UsessConfUser(void) {
   data_ = kDefaultConf_;
 }
 
@@ -48,10 +47,9 @@ UsessConfUser::UsessConfUser(void)
  * @brief   Destructor.
  * @param   nothing.
  * @return  nothing.
- * @note    
+ * @note
  */
-UsessConfUser::~UsessConfUser(void)
-{
+UsessConfUser::~UsessConfUser(void) {
 }
 
 
@@ -59,10 +57,9 @@ UsessConfUser::~UsessConfUser(void)
  * @brief   Configuration file data load.
  * @param   nothing.
  * @return  Processing result.
- * @note    
+ * @note
  */
-usess_ipc_err_e UsessConfUser::LoadConf(void)
-{
+usess_ipc_err_e UsessConfUser::LoadConf(void) {
   pfc::core::ModuleConfBlock conf_block(kConfBlockName_);
 
 
@@ -97,10 +94,9 @@ usess_ipc_err_e UsessConfUser::LoadConf(void)
  * @brief   configuration data access.
  * @param   nothing.
  * @return  Processing result.
- * @note    
+ * @note
  */
-const usess_conf_user_t& UsessConfUser::data(void) const
-{
+const usess_conf_user_t& UsessConfUser::data(void) const {
   return data_;
 }
 
index a668b4b708d278230bdd0a6beb66912ce4f89c1b..5e4a2fa1cca8125df5edf53f6c1c1baabe1f9241 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -21,10 +21,9 @@ namespace usess {
  * @brief   Constructor.
  * @param   database  : database instance.
  * @return  nothing.
- * @note    
+ * @note
  */
-UsessEnable::UsessEnable(mgmtdb::MgmtDatabase& database) : database_(database)
-{
+UsessEnable::UsessEnable(mgmtdb::MgmtDatabase& database) : database_(database) {
 }
 
 
@@ -32,10 +31,9 @@ UsessEnable::UsessEnable(mgmtdb::MgmtDatabase& database) : database_(database)
  * @brief   Destructor.
  * @param   nothing.
  * @return  nothing.
- * @note    
+ * @note
  */
-UsessEnable::~UsessEnable(void)
-{
+UsessEnable::~UsessEnable(void) {
 }
 
 
@@ -44,10 +42,9 @@ UsessEnable::~UsessEnable(void)
  * @param   nothing.
  * @return  true  : success
  *          false : failure
- * @note    
+ * @note
  */
-bool UsessEnable::Init(void)
-{
+bool UsessEnable::Init(void) {
   usess_ipc_err_e rtn = USESS_E_NG;
 
 
@@ -65,10 +62,9 @@ bool UsessEnable::Init(void)
  * @param   nothing.
  * @return  true  : success
  *          false : failure
- * @note    
+ * @note
  */
-bool UsessEnable::Fini(void)
-{
+bool UsessEnable::Fini(void) {
   return true;
 }
 
@@ -80,15 +76,13 @@ bool UsessEnable::Fini(void)
  * @return  USESS_E_OK                : Privilege success
  *          USESS_E_INVALID_PRIVILEGE : Invalid privilege.
  *          USESS_E_NG                : Error
- * @note    
+ * @note
  */
 usess_ipc_err_e UsessEnable::Privilege(const enable_privilege_e mode,
-                                       const usess_ipc_res_sess_info_t& sess)
-{
+                                       const usess_ipc_res_sess_info_t& sess) {
   L_FUNCTION_START();
 
-  switch(mode) {
-
+  switch (mode) {
   // Enable authority.
   case kPrivilegeEnable:
 
@@ -128,11 +122,10 @@ usess_ipc_err_e UsessEnable::Privilege(const enable_privilege_e mode,
  * @return  USESS_E_OK                : Authentication success
  *          USESS_E_INVALID_PASSWD    : Invalid password
  *          USESS_E_NG                : Error
- * @note    
+ * @note
  */
 usess_ipc_err_e UsessEnable::Authenticate(const enable_authenticate_e mode,
-        const usess_ipc_res_sess_info_t& sess, const char* passwd)
-{
+        const usess_ipc_res_sess_info_t& sess, const char* passwd) {
   int16_t fetch_type[] = {SQL_INTEGER, SQL_VARCHAR};
   std::string uname;
   std::string sql_statement;
@@ -143,8 +136,7 @@ usess_ipc_err_e UsessEnable::Authenticate(const enable_authenticate_e mode,
 
   L_FUNCTION_START();
 
-  switch(mode) {
-
+  switch (mode) {
   // Enable password Authentication.
   case kAuthenticateEnable:
 
@@ -203,10 +195,9 @@ usess_ipc_err_e UsessEnable::Authenticate(const enable_authenticate_e mode,
  * @return  USESS_E_OK             : Change password success
  *          USESS_E_INVALID_PASSWD : Invalid password
  *          USESS_E_NG             : Error
- * @note    
+ * @note
  */
-usess_ipc_err_e UsessEnable::ChangePassword(const char* passwd)
-{
+usess_ipc_err_e UsessEnable::ChangePassword(const char* passwd) {
   mgmtdb::db_err_e db_rtn = mgmtdb::DB_E_NG;
   std::string sql_statement;
   std::string hash_passwd;
@@ -253,10 +244,9 @@ usess_ipc_err_e UsessEnable::ChangePassword(const char* passwd)
  * @param   nothing.
  * @return  USESS_E_OK             : Success
  *          USESS_E_NG             : Error
- * @note    
+ * @note
  */
-usess_ipc_err_e UsessEnable::LoadConf(void)
-{
+usess_ipc_err_e UsessEnable::LoadConf(void) {
   usess_ipc_err_e func_rtn;
 
 
@@ -276,10 +266,9 @@ usess_ipc_err_e UsessEnable::LoadConf(void)
  * @param   nothing.
  * @return  true  : check ok.
  *          false : abnormal password.
- * @note    
+ * @note
  */
-bool UsessEnable::CheckPassword(const char* passwd)
-{
+bool UsessEnable::CheckPassword(const char* passwd) {
   // length check.
   if (strlen(passwd) > conf_.data().passwd_length) return false;
   // character code check.
index 3346dc479c446d41af75aa63214c500914323423..93de6494aa08f7d4ad578269209f5b10bc3c7a1a 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -18,15 +18,13 @@ namespace usess {
  * @brief   Constructor.
  * @param   conf  : [IN] configuration data.
  * @return  nothing.
- * @note    
+ * @note
  */
-UsessSession::UsessSession(const UsessConfSession& conf) : conf_(conf)
-{
+UsessSession::UsessSession(const UsessConfSession& conf) : conf_(conf) {
 }
 
 UsessSession::UsessSession(const UsessConfSession& conf,
-        const usess_ipc_res_sess_info_t& sess) : conf_(conf)
-{
+        const usess_ipc_res_sess_info_t& sess) : conf_(conf) {
   sess_ = sess;
 }
 
@@ -35,10 +33,9 @@ UsessSession::UsessSession(const UsessConfSession& conf,
  * @brief   Destructor.
  * @param   nothing.
  * @return  nothing.
- * @note    
+ * @note
  */
-UsessSession::~UsessSession(void)
-{
+UsessSession::~UsessSession(void) {
 }
 
 /*
@@ -46,10 +43,9 @@ UsessSession::~UsessSession(void)
  * @param   sess_mode   : [IN] session mode.
  * @return  USESS_E_OK             : Success
  *          USESS_E_NG             : Error
- * @note    
+ * @note
  */
-usess_ipc_err_e UsessSession::TransitMode(const usess_mode_e sess_mode)
-{
+usess_ipc_err_e UsessSession::TransitMode(const usess_mode_e sess_mode) {
   tc::TcApiRet tc_rtn = tc::TC_API_COMMON_FAILURE;
   tc::TcModule *tc_instance = NULL;
 
@@ -63,7 +59,6 @@ usess_ipc_err_e UsessSession::TransitMode(const usess_mode_e sess_mode)
 
   // TC notification
   if (sess_mode == USESS_MODE_OPER) {
-
     // Get TC module instance.
     tc_instance = (tc::TcModule *)pfc::core::Module::getInstance("tc");
     RETURN_IF((tc_instance == NULL), USESS_E_NG,
@@ -71,9 +66,9 @@ usess_ipc_err_e UsessSession::TransitMode(const usess_mode_e sess_mode)
 
     // release configuration mode session.
     tc_rtn = tc_instance->TcReleaseSession(sess_.sess.id);
-    WARN_IF((tc_rtn != tc::TC_API_COMMON_SUCCESS && tc_rtn == tc::TC_INVALID_PARAM),
+    WARN_IF((tc_rtn != tc::TC_API_COMMON_SUCCESS &&
+             tc_rtn == tc::TC_INVALID_PARAM),
       "Without notification to TC. id=%d err=%d", sess_.sess.id, tc_rtn);
-
   }
 
   // modify session mode.
@@ -88,10 +83,9 @@ usess_ipc_err_e UsessSession::TransitMode(const usess_mode_e sess_mode)
  * @brief   Get session data.
  * @param   nothing.
  * @return  session data.
- * @note    
+ * @note
  */
-const usess_ipc_res_sess_info_t& UsessSession::sess(void)
-{
+const usess_ipc_res_sess_info_t& UsessSession::sess(void) {
   return sess_;
 }
 
index 0566fd74fde93048f314edb84c9705f2517171a7..0c83c29aebc030bc4a5b98e05b46b73f34841bd1 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -20,13 +20,11 @@ namespace usess {
  * @return  nothing.
  * @note    
  */
-UsessSessions::UsessSessions(void)
-{
+UsessSessions::UsessSessions(void) {
   table_.clear();
   for (int loop = 0; loop < ID_NUM; ++loop) {
     allocated_sess_id_[loop] = USESS_ID_INVALID;
   }
-
 }
 
 /*
@@ -35,8 +33,7 @@ UsessSessions::UsessSessions(void)
  * @return  nothing.
  * @note    
  */
-UsessSessions::~UsessSessions(void)
-{
+UsessSessions::~UsessSessions(void) {
 }
 
 /*
@@ -46,8 +43,7 @@ UsessSessions::~UsessSessions(void)
  *          false : failure
  * @note    
  */
-bool UsessSessions::Init(void)
-{
+bool UsessSessions::Init(void) {
   usess_ipc_err_e rtn = USESS_E_NG;
 
   L_FUNCTION_START();
@@ -73,8 +69,7 @@ bool UsessSessions::Init(void)
  *          false : failure
  * @note    
  */
-bool UsessSessions::Fini(void)
-{
+bool UsessSessions::Fini(void) {
   usess_ipc_err_e func_rtn = USESS_E_NG;
 
 
@@ -104,8 +99,7 @@ bool UsessSessions::Fini(void)
  * @note    
  */
 usess_ipc_err_e UsessSessions::Add(const usess_ipc_req_sess_add_t& add_sess,
-                     UsessUser user, usess_ipc_sess_id_t& sess_id)
-{
+                     UsessUser user, usess_ipc_sess_id_t& sess_id) {
   usess_ipc_res_sess_info_t sess_data;
   usess_type_e sess_type;
   int rtn = -1;
@@ -168,8 +162,7 @@ usess_ipc_err_e UsessSessions::Add(const usess_ipc_req_sess_add_t& add_sess,
  *          USESS_E_NG             : Error
  * @note    
  */
-usess_ipc_err_e UsessSessions::Del(const usess_ipc_sess_id_t& target)
-{
+usess_ipc_err_e UsessSessions::Del(const usess_ipc_sess_id_t& target) {
   tc::TcApiRet tc_rtn = tc::TC_API_COMMON_FAILURE;
   tc::TcModule *tc_instance = NULL;     // TC module instance.
 
@@ -186,7 +179,8 @@ usess_ipc_err_e UsessSessions::Del(const usess_ipc_sess_id_t& target)
 
   // release configuration mode session.
   tc_rtn = tc_instance->TcReleaseSession(target.id);
-  WARN_IF((tc_rtn != tc::TC_API_COMMON_SUCCESS && tc_rtn != tc::TC_INVALID_PARAM),
+  WARN_IF((tc_rtn != tc::TC_API_COMMON_SUCCESS &&
+           tc_rtn != tc::TC_INVALID_PARAM),
     "Without notification to TC. id=%d err=%d", target.id, tc_rtn);
 
   // session delete.
@@ -205,8 +199,7 @@ usess_ipc_err_e UsessSessions::Del(const usess_ipc_sess_id_t& target)
  *          USESS_E_NG               : Error
  * @note    
  */
-usess_ipc_err_e UsessSessions::Del(const usess_type_e target_sess_type)
-{
+usess_ipc_err_e UsessSessions::Del(const usess_type_e target_sess_type) {
   usess_session_table_t::iterator it;
   tc::TcApiRet tc_rtn = tc::TC_API_COMMON_FAILURE;
   tc::TcModule *tc_instance = NULL;     // TC module instance.
@@ -232,7 +225,8 @@ usess_ipc_err_e UsessSessions::Del(const usess_type_e target_sess_type)
 
     // TC notification. release configuration mode session.
     tc_rtn = tc_instance->TcReleaseSession(it->second.sess().sess.id);
-    WARN_IF((tc_rtn != tc::TC_API_COMMON_SUCCESS && tc_rtn != tc::TC_INVALID_PARAM),
+    WARN_IF((tc_rtn != tc::TC_API_COMMON_SUCCESS &&
+             tc_rtn != tc::TC_INVALID_PARAM),
       "Without notification to TC. id=%d err=%d",
       it->second.sess().sess.id, tc_rtn);
 
@@ -254,8 +248,7 @@ usess_ipc_err_e UsessSessions::Del(const usess_type_e target_sess_type)
  *          USESS_E_NG             : Error
  * @note    
  */
-usess_ipc_err_e UsessSessions::Del(void)
-{
+usess_ipc_err_e UsessSessions::Del(void) {
   usess_session_table_t::iterator it;
   tc::TcApiRet tc_rtn = tc::TC_API_COMMON_FAILURE;
   tc::TcModule *tc_instance = NULL;     // TC module instance.
@@ -273,7 +266,8 @@ usess_ipc_err_e UsessSessions::Del(void)
   for (it = table_.begin(); it != table_.end(); ++it) {
     // TC notification. release configuration mode session.
     tc_rtn = tc_instance->TcReleaseSession(it->second.sess().sess.id);
-    WARN_IF((tc_rtn != tc::TC_API_COMMON_SUCCESS && tc_rtn != tc::TC_INVALID_PARAM),
+    WARN_IF((tc_rtn != tc::TC_API_COMMON_SUCCESS &&
+             tc_rtn != tc::TC_INVALID_PARAM),
       "Without notification to TC. id=%d err=%d",
       it->second.sess().sess.id, tc_rtn);
   }
@@ -296,8 +290,7 @@ usess_ipc_err_e UsessSessions::Del(void)
  * @note    
  */
 usess_ipc_err_e UsessSessions::GetSession(
-      const usess_ipc_sess_id_t& target, UsessSession** sess)
-{
+      const usess_ipc_sess_id_t& target, UsessSession** sess) {
   usess_session_table_t::iterator it;
 
 
@@ -321,8 +314,7 @@ usess_ipc_err_e UsessSessions::GetSession(
  * @return  session count.
  * @note    
  */
-uint32_t UsessSessions::GetCount(void)
-{
+uint32_t UsessSessions::GetCount(void) {
   L_FUNCTION_START();
   L_FUNCTION_COMPLETE();
   return table_.size();
@@ -339,8 +331,7 @@ uint32_t UsessSessions::GetCount(void)
  * @note    
  */
 usess_ipc_err_e UsessSessions::GetList(const usess_ipc_sess_id_t& target,
-                                       usess_session_list_v& info_list)
-{
+                                       usess_session_list_v& info_list) {
   usess_session_table_t::iterator it;
   tc::TcApiRet tc_rtn = tc::TC_API_COMMON_FAILURE;
   uint32_t session_id = 0;
@@ -368,7 +359,7 @@ usess_ipc_err_e UsessSessions::GetList(const usess_ipc_sess_id_t& target,
 
   // set configration status.
   tc_rtn = tc_instance->TcGetConfigSession(&session_id, &config_id);
-  RETURN_IF((tc_rtn != tc::TC_API_COMMON_SUCCESS && 
+  RETURN_IF((tc_rtn != tc::TC_API_COMMON_SUCCESS &&
              tc_rtn != tc::TC_NO_CONFIG_SESSION &&
              tc_rtn != tc::TC_INVALID_UNC_STATE), USESS_E_NG,
         "Get configuration session to TC. err=%d", tc_rtn);
@@ -389,8 +380,7 @@ usess_ipc_err_e UsessSessions::GetList(const usess_ipc_sess_id_t& target,
  *          USESS_E_NG             : Error
  * @note    
  */
-usess_ipc_err_e UsessSessions::GetList(usess_session_list_v& info_list)
-{
+usess_ipc_err_e UsessSessions::GetList(usess_session_list_v& info_list) {
   usess_session_table_t::iterator it;
   tc::TcApiRet tc_rtn = tc::TC_API_COMMON_FAILURE;
   uint32_t session_id = 0;
@@ -407,7 +397,7 @@ usess_ipc_err_e UsessSessions::GetList(usess_session_list_v& info_list)
 
   // set configration status.
   tc_rtn = tc_instance->TcGetConfigSession(&session_id, &config_id);
-  RETURN_IF((tc_rtn != tc::TC_API_COMMON_SUCCESS && 
+  RETURN_IF((tc_rtn != tc::TC_API_COMMON_SUCCESS &&
              tc_rtn != tc::TC_NO_CONFIG_SESSION &&
              tc_rtn != tc::TC_INVALID_UNC_STATE), USESS_E_NG,
         "Get configuration session to TC. err=%d", tc_rtn);
@@ -443,8 +433,7 @@ usess_ipc_err_e UsessSessions::GetList(usess_session_list_v& info_list)
  * @note    
  */
 usess_ipc_err_e UsessSessions::Privilege(const session_privilege_e mode,
-    const usess_ipc_sess_id_t& current, const usess_ipc_sess_id_t& target)
-{
+    const usess_ipc_sess_id_t& current, const usess_ipc_sess_id_t& target) {
   usess_session_table_t::iterator current_it;
   usess_ipc_err_e err_code = USESS_E_NG;
 
@@ -455,7 +444,6 @@ usess_ipc_err_e UsessSessions::Privilege(const session_privilege_e mode,
   // check current session for not fixed session ID.
   if (current.id < conf_.data().local[ID_FIXED].range.start ||
       current.id > conf_.data().local[ID_FIXED].range.end) {
-
     // get current session.
     current_it = table_.find(current.id);
     RETURN_IF((current_it == table_.end()), USESS_E_INVALID_SESSID,
@@ -479,7 +467,7 @@ usess_ipc_err_e UsessSessions::Privilege(const session_privilege_e mode,
   // Privilege check.
   err_code = USESS_E_INVALID_PRIVILEGE;
 
-  switch(mode) {
+  switch (mode) {
   case kPrivilegeSessDel:               // delete session.
     if (current_it->second.sess().sess_mode == USESS_MODE_OPER) {
       if (current.id == target.id) {
@@ -526,8 +514,7 @@ usess_ipc_err_e UsessSessions::Privilege(const session_privilege_e mode,
  *          USESS_E_NG             : Error
  * @note    
  */
-usess_ipc_err_e UsessSessions::LoadConf(void)
-{
+usess_ipc_err_e UsessSessions::LoadConf(void) {
   usess_ipc_err_e func_rtn = USESS_E_NG;
 
   L_FUNCTION_START();
@@ -547,8 +534,7 @@ usess_ipc_err_e UsessSessions::LoadConf(void)
  * @note    Do not check the maximum number of sessions.
  */
 const usess_ipc_sess_id_t UsessSessions::GetNewSessionId(
-                          usess_type_e sess_type)
-{
+                          usess_type_e sess_type) {
   usess_ipc_sess_id_t sess = {0};
   usess_conf_session_parameter_t info;
   uint32_t* allocated_id = NULL;
@@ -605,8 +591,7 @@ const usess_ipc_sess_id_t UsessSessions::GetNewSessionId(
  *          false : over session count.
  * @note    
  */
-bool UsessSessions::CheckSessTypeCount(usess_type_e sess_type)
-{
+bool UsessSessions::CheckSessTypeCount(usess_type_e sess_type) {
   usess_session_table_t::iterator it;
   usess_session_table_t::iterator lower_it;
   usess_session_table_t::iterator upper_it;
@@ -629,7 +614,6 @@ bool UsessSessions::CheckSessTypeCount(usess_type_e sess_type)
   // get range of session ID.
   info = conf_.data().local[CONF_LOCAL_ID(sess_type)];
   if (info.connect.limited == true) {
-
     // count number of sessions
     lower_it = table_.lower_bound(info.range.start);
     upper_it = table_.upper_bound(info.range.end);
@@ -653,8 +637,7 @@ bool UsessSessions::CheckSessTypeCount(usess_type_e sess_type)
  *          false : check ng.
  * @note    
  */
-bool UsessSessions::IsSessType(usess_type_e type) const
-{
+bool UsessSessions::IsSessType(usess_type_e type) const {
   return ((type == USESS_TYPE_UNKNOWN) ||(type == USESS_TYPE_CLI) ||
       (type == USESS_TYPE_CLI_DAEMON) || (type == USESS_TYPE_WEB_API) ||
       (type == USESS_TYPE_WEB_UI));
@@ -667,8 +650,7 @@ bool UsessSessions::IsSessType(usess_type_e type) const
  *          false : invalid range.
  * @note    
  */
-bool UsessSessions::IsUserType(user_type_e type) const
-{
+bool UsessSessions::IsUserType(user_type_e type) const {
   return ((type == USER_TYPE_UNKNOWN) || (type == USER_TYPE_OPER) ||
           (type == USER_TYPE_ADMIN));
 }
index e01e353ad765fd44d792cbc49b291b903f7a84a7..5f4c2a095f0865ac4e68e15c649094256173d49b 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -27,11 +27,10 @@ namespace usess {
  * @brief   Constructor.
  * @param   database  : database instance.
  * @return  nothing.
- * @note    
+ * @note
  */
 UsessUser::UsessUser(mgmtdb::MgmtDatabase& database) : name(), passwd_digest(),
-        expiration(), created(), modified(), database_(database)
-{
+        expiration(), created(), modified(), database_(database) {
   // initialize class data member.
   passwd_type = HASH_TYPE_UNKNOWN;
   type = USER_TYPE_UNKNOWN;
@@ -42,10 +41,9 @@ UsessUser::UsessUser(mgmtdb::MgmtDatabase& database) : name(), passwd_digest(),
  * @brief   Destructor.
  * @param   nothing.
  * @return  nothing.
- * @note    
+ * @note
  */
-UsessUser::~UsessUser(void)
-{
+UsessUser::~UsessUser(void) {
 }
 
 /*
@@ -54,10 +52,9 @@ UsessUser::~UsessUser(void)
  * @return  USESS_E_OK             : Success.
  *          USESS_E_INVALID_USER   : Invalid user name.
  *          USESS_E_NG             : Error.
- * @note    
+ * @note
  */
-usess_ipc_err_e UsessUser::Retrieve(const std::string& name)
-{
+usess_ipc_err_e UsessUser::Retrieve(const std::string& name) {
   int16_t fetch_type[] = {SQL_VARCHAR, SQL_INTEGER, SQL_VARCHAR, SQL_INTEGER};
   usess_ipc_err_e func_rtn = USESS_E_NG;
   mgmtdb::db_err_e db_rtn = mgmtdb::DB_E_NG;
@@ -81,7 +78,8 @@ usess_ipc_err_e UsessUser::Retrieve(const std::string& name)
   db_rtn = database_.Exec(sql_statement, false,
         sizeof(fetch_type)/sizeof(fetch_type[0]), fetch_type, exec_value);
   RETURN_IF((db_rtn != mgmtdb::DB_E_OK || exec_value.size() == 0),
-      USESS_E_INVALID_USER, "Failure select sql exec(tbl_unc_usess_user). err=%d",
+      USESS_E_INVALID_USER,
+      "Failure select sql exec(tbl_unc_usess_user). err=%d",
       db_rtn);
 
   // Save the user data to class members.
@@ -101,26 +99,25 @@ usess_ipc_err_e UsessUser::Retrieve(const std::string& name)
  *          USESS_E_INVALID_MODE      : Invalid session mode.
  *          USESS_E_INVALID_USER      : Invalid user.
  *          USESS_E_NG                : Error
- * @note    
+ * @note
  */
 usess_ipc_err_e UsessUser::Privilege(const user_privilege_e mode,
-                                     const usess_ipc_res_sess_info_t& sess)
-{
+                                     const usess_ipc_res_sess_info_t& sess) {
   std::string uname;
 
   L_FUNCTION_START();
 
-  switch(mode) {
-
+  switch (mode) {
   // Change UNC user password.
   case kPrivilegeUserPasswd:
 
     // check session mode.
-    RETURN_IF((sess.sess_mode != USESS_MODE_ENABLE), USESS_E_INVALID_MODE,
+    RETURN_IF(((sess.sess_mode != USESS_MODE_ENABLE) &&
+              ((sess.sess_mode != USESS_MODE_OPER))), USESS_E_INVALID_MODE,
         "Invalid session mode. [%d]", sess.sess_mode);
 
+    // check user name.
     uname = CAST_IPC_STRING(sess.sess_uname);
-    // check user name.(only session mode=oper)
     RETURN_IF((name.compare(uname) != 0), USESS_E_INVALID_USER,
         "Invalid user name. [%s]", uname.c_str());
     break;
@@ -144,19 +141,16 @@ usess_ipc_err_e UsessUser::Privilege(const user_privilege_e mode,
  *          USESS_E_INVALID_PASSWD    : Invalid password.
  *          USESS_E_INVALID_PRIVILEGE : Invalid privilege.
  *          USESS_E_NG                : Error
- * @note    
+ * @note
  */
 usess_ipc_err_e UsessUser::Authenticate(const user_authenticate_e mode,
                                         const usess_type_e sess_type,
-                                        const char* passwd)
-{
+                                        const char* passwd) {
   L_FUNCTION_START();
 
-  switch(mode) {
-
+  switch (mode) {
   // UNC user authority.
   case kAuthenticateSessAdd:
-
     // If sessio type is "USESS_TYPE_CLI" or "USESS_TYPE_CLI_DAEMON",
     // If user name is "UNC_CLI_ADMIN",
     // password authentication is unnecessary.
@@ -192,10 +186,9 @@ usess_ipc_err_e UsessUser::Authenticate(const user_authenticate_e mode,
  * @return  USESS_E_OK             : Change password success.
  *          USESS_E_INVALID_PASSWD : Invalid password.
  *          USESS_E_NG             : Error.
- * @note    
+ * @note
  */
-usess_ipc_err_e UsessUser::ChangePassword(const char* passwd)
-{
+usess_ipc_err_e UsessUser::ChangePassword(const char* passwd) {
   mgmtdb::db_err_e db_rtn = mgmtdb::DB_E_NG;
   std::string sql_statement;
   std::string hash_passwd;
@@ -240,10 +233,9 @@ usess_ipc_err_e UsessUser::ChangePassword(const char* passwd)
  * @param   conf_data : configuration data.
  * @return  USESS_E_OK             : Success.
  *          USESS_E_NG             : Error.
- * @note    
+ * @note
  */
-usess_ipc_err_e UsessUser::SetConf(UsessConfUser& conf_data)
-{
+usess_ipc_err_e UsessUser::SetConf(UsessConfUser& conf_data) {
   conf_ = conf_data;
   return USESS_E_OK;
 }
@@ -254,10 +246,9 @@ usess_ipc_err_e UsessUser::SetConf(UsessConfUser& conf_data)
  * @param   nothing.
  * @return  true  : check ok.
  *          false : abnormal user name.
- * @note    
+ * @note
  */
-bool UsessUser::CheckUserName(const std::string& name)
-{
+bool UsessUser::CheckUserName(const std::string& name) {
   // length check.
   if (name.length() > conf_.data().user_length) return false;
   // character code check.
@@ -272,10 +263,9 @@ bool UsessUser::CheckUserName(const std::string& name)
  * @param   nothing.
  * @return  true  : check ok.
  *          false : abnormal password.
- * @note    
+ * @note
  */
-bool UsessUser::CheckPassword(const char* passwd)
-{
+bool UsessUser::CheckPassword(const char* passwd) {
   // length check.
   if (strlen(passwd) > conf_.data().passwd_length) return false;
   // character code check.
@@ -291,11 +281,10 @@ bool UsessUser::CheckPassword(const char* passwd)
  * @return  USESS_E_OK             : Success.
  *          USESS_E_INVALID_USER   : Invalid user name.
  *          USESS_E_NG             : Error.
- * @note    
+ * @note
  */
 usess_ipc_err_e UsessUser::SetUserData(
-          const mgmtdb::mgmtdb_variant_v& exec_value)
-{
+          const mgmtdb::mgmtdb_variant_v& exec_value) {
   // Error, if count of columns and exec_value.size() is not equal.
   RETURN_IF((exec_value.size() != 1 || exec_value[0].size() != 4),
     USESS_E_NG, "abnormal column counts. count=%" PFC_PFMT_SIZE_T ", %"
@@ -314,5 +303,5 @@ usess_ipc_err_e UsessUser::SetUserData(
   return USESS_E_OK;
 }
 
-}  // namespace so
 }  // namespace usess
+}  // namespace unc
index a2fac41174ed9154cd8806c0bb5450d2f22d6106..8ce620bb4bc9402713cbca768ca3769028ea9638 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  * 
  * This program and the accompanying materials are made available under the
@@ -23,8 +23,7 @@ namespace usess {
  * @return  nothing.
  * @note    
  */
-UsessUsers::UsessUsers(mgmtdb::MgmtDatabase& database) : database_(database)
-{
+UsessUsers::UsessUsers(mgmtdb::MgmtDatabase& database) : database_(database) {
 }
 
 
@@ -34,8 +33,7 @@ UsessUsers::UsessUsers(mgmtdb::MgmtDatabase& database) : database_(database)
  * @return  nothing.
  * @note    
  */
-UsessUsers::~UsessUsers(void)
-{
+UsessUsers::~UsessUsers(void) {
 }
 
 
@@ -46,8 +44,7 @@ UsessUsers::~UsessUsers(void)
  *          false : failure
  * @note    
  */
-bool UsessUsers::Init(void)
-{
+bool UsessUsers::Init(void) {
   usess_ipc_err_e rtn = USESS_E_NG;
 
 
@@ -60,7 +57,6 @@ bool UsessUsers::Init(void)
 
   L_FUNCTION_COMPLETE();
   return true;
-
 }
 
 
@@ -71,8 +67,7 @@ bool UsessUsers::Init(void)
  *          false : failure
  * @note    
  */
-bool UsessUsers::Fini(void)
-{
+bool UsessUsers::Fini(void) {
   L_FUNCTION_START();
   L_FUNCTION_COMPLETE();
   return true;
@@ -88,8 +83,7 @@ bool UsessUsers::Fini(void)
  *          USESS_E_NG             : Error
  * @note    
  */
-usess_ipc_err_e UsessUsers::GetUser(const std::string& name, UsessUser& user)
-{
+usess_ipc_err_e UsessUsers::GetUser(const std::string& name, UsessUser& user) {
   usess_ipc_err_e func_rtn;
 
   L_FUNCTION_START();
@@ -110,8 +104,7 @@ usess_ipc_err_e UsessUsers::GetUser(const std::string& name, UsessUser& user)
  *          USESS_E_NG             : Error
  * @note    
  */
-usess_ipc_err_e UsessUsers::LoadConf(void)
-{
+usess_ipc_err_e UsessUsers::LoadConf(void) {
   usess_ipc_err_e func_rtn;
 
 
index a3126586da7a45604f5fe6564a01e902e8f74be3..839acf241f722cfa076ff62e2498d9c68bf3a6be 100644 (file)
@@ -74,9 +74,9 @@ ConfigNode::ConfigNode() : operation_(0) {
  * @brief     : Method to retrieve each node from the Keytree and populate in
                 the vector
  * @param[in] : ConfigNode value_list
- * @retval    : DRVAPI_RESPONSE_SUCCESS
+ * @retval    : UNC_RC_SUCCESS
  */
-drv_resp_code_t ConfigNode::get_node_list(
+UncRespCode ConfigNode::get_node_list(
     std::vector<ConfigNode*>& value_list) {
   ODC_FUNC_TRACE;
 
@@ -84,7 +84,7 @@ drv_resp_code_t ConfigNode::get_node_list(
   // from the root node or to the recursive caller
   if (child_list_.empty()) {
     pfc_log_debug("%s: No child list", PFC_FUNCNAME);
-    return DRVAPI_RESPONSE_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 
   // Get the child list of each node
@@ -111,7 +111,7 @@ drv_resp_code_t ConfigNode::get_node_list(
     }
   }
 
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**
@@ -148,9 +148,9 @@ void ConfigNode::print(int level_index) {
  *            : from the the cache and insert key into erased_key_list before
  *            : doing delete operation
  * @param[in] : confignode *, erased_key_list(vector contain structure)
- * @retval    : DRVAPI_RESPONSE_FAILURE / DRVAPI_RESPONSE_SUCCESS
+ * @retval    : UNC_DRV_RC_ERR_GENERIC / UNC_RC_SUCCESS
  */
-drv_resp_code_t ConfigNode::delete_child_node(ConfigNode *node_ptr,
+UncRespCode ConfigNode::delete_child_node(ConfigNode *node_ptr,
                   std::vector<key_information>& erased_key_list) {
   ODC_FUNC_TRACE;
   std::map<unc_key_type_t, std::vector<ConfigNode*> >::iterator itr;
@@ -159,13 +159,13 @@ drv_resp_code_t ConfigNode::delete_child_node(ConfigNode *node_ptr,
 
   if (node_ptr == NULL) {
     pfc_log_error("%s : ConfigNode is NULL", PFC_FUNCNAME);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   itr = child_list_.find(node_ptr->get_type_name());
   if (itr == itr_end) {
     pfc_log_error("no such configuration present");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   } else {
     std::vector<ConfigNode*>& node_list = itr->second;
     if (!node_list.empty()) {
@@ -184,16 +184,16 @@ drv_resp_code_t ConfigNode::delete_child_node(ConfigNode *node_ptr,
       }
     }
   }
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**
  * @brief     : This method traverse the child list if parent have and delete
  *            :the nodes
  * @param[in] : erased_key_list
- * @retval    : DRVAPI_RESPONSE_FAILURE / DRVAPI_RESPONSE_SUCCESS
+ * @retval    : UNC_DRV_RC_ERR_GENERIC / UNC_RC_SUCCESS
  */
-drv_resp_code_t ConfigNode::clear_child_list(std::vector<key_information>&
+UncRespCode ConfigNode::clear_child_list(std::vector<key_information>&
                                              erased_key_list) {
   ODC_FUNC_TRACE;
   if (!child_list_.empty()) {
@@ -220,15 +220,15 @@ drv_resp_code_t ConfigNode::clear_child_list(std::vector<key_information>&
       }
     }
   }
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**
  * @brief     : This method inserts the node in the cache
  * @param[in] : confignode *
- * @retval    : DRVAPI_RESPONSE_FAILURE / DRVAPI_RESPONSE_SUCCESS
+ * @retval    : UNC_DRV_RC_ERR_GENERIC / UNC_RC_SUCCESS
  */
-drv_resp_code_t ConfigNode::add_child_to_list(ConfigNode *node_ptr) {
+UncRespCode ConfigNode::add_child_to_list(ConfigNode *node_ptr) {
   ODC_FUNC_TRACE;
 
   std::map<unc_key_type_t, std::vector<ConfigNode*> >::iterator itr;
@@ -237,7 +237,7 @@ drv_resp_code_t ConfigNode::add_child_to_list(ConfigNode *node_ptr) {
 
   if (node_ptr == NULL) {
     pfc_log_error("%s : ConfigNode is NULL", PFC_FUNCNAME);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   itr = child_list_.find(node_ptr->get_type_name());
@@ -261,7 +261,7 @@ drv_resp_code_t ConfigNode::add_child_to_list(ConfigNode *node_ptr) {
   std::vector<ConfigNode*>& node_list = itr->second;
   node_list.push_back(node_ptr);
 
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**
index c52b7728cb10fada1201e679c4510c9eb212a373..3b9f5b682eda2b50febfb0cbc9caa5e821af9a5d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013 NEC Corporation
+ * Copyright (c) 2013-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -62,9 +62,9 @@ class ConfigNode {
    * @brief    : Method to retrieve node from the Keytree and populate in
    *             the vector value_list
    * param[in] : value_list(vector of ConfigNode*)
-   * @retval   : drv_resp_code_t(DRVAPI_RESPONSE_SUCCESS)
+   * @retval   : UncRespCode(UNC_RC_SUCCESS)
    */
-  drv_resp_code_t get_node_list(std::vector<ConfigNode*>& value_list);
+  UncRespCode get_node_list(std::vector<ConfigNode*>& value_list);
 
   /**
    * @brief   : This virtual method returns the Keytype of a node
@@ -101,24 +101,24 @@ class ConfigNode {
   /**
    * @brief    : This method Adds the node under the given parent in cache
    * param[in] : confignode *
-   * @retval   : drv_resp_code_t(DRVAPI_RESPONSE_SUCCESS)
+   * @retval   : UncRespCode(UNC_RC_SUCCESS)
    */
-  drv_resp_code_t add_child_to_list(ConfigNode *node_ptr);
+  UncRespCode add_child_to_list(ConfigNode *node_ptr);
 
   /**
    * @brief    : This method delete the node from cache
    * param[in] : confignode *, vector<key_information>
-   * @retval   : drv_resp_code_t(DRVAPI_RESPONSE_SUCCESS)
+   * @retval   : UncRespCode(UNC_RC_SUCCESS)
    */
-  drv_resp_code_t delete_child_node(ConfigNode *node_ptr,
+  UncRespCode delete_child_node(ConfigNode *node_ptr,
                             std::vector<key_information>&);
 
   /**
    * @brief    : This method deletes the nodes under the given parent from cache
    * param[in] : vector<key_information>
-   * @retval   : drv_resp_code_t(DRVAPI_RESPONSE_SUCCESS)
+   * @retval   : UncRespCode(UNC_RC_SUCCESS)
    */
-  drv_resp_code_t clear_child_list(std::vector<key_information>&);
+  UncRespCode clear_child_list(std::vector<key_information>&);
 
   /**
    * @brief    : This method prints each node information
index 26d297bd6da7a0d0fa4bf07f5be58e64c3c58cca..388d4aab3a12bc9b736e9b61fef69f391042a69f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013 NEC Corporation
+ * Copyright (c) 2013-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -46,55 +46,55 @@ class KeyTree {
   /**
    * @brief       : Method to add confignode lists to the cache for Audit
    * @param [in]  : value_list(contain multiple nodes in a vector)
-   * @retval      : drv_resp_code_t(DRVAPI_RESPONSE_SUCCESS/
-   *                DRVAPI_RESPONSE_FAILURE)
+   * @retval      : UncRespCode(UNC_RC_SUCCESS/
+   *                UNC_DRV_RC_ERR_GENERIC)
    */
-  drv_resp_code_t append_audit_configuration_list(
+  UncRespCode append_audit_configuration_list(
         const std::vector<ConfigNode*>&value_list);
 
   /**
    * @brief      : Method to add individual confignode to the cache for Audit
    * @param [in] : value_node
-   * @retval     : drv_resp_code_t(DRVAPI_RESPONSE_SUCCESS/
-   *               DRVAPI_RESPONSE_FAILURE)
+   * @retval     : UncRespCode(UNC_RC_SUCCESS/
+   *               UNC_DRV_RC_ERR_GENERIC)
    */
-  drv_resp_code_t append_audit_node(ConfigNode* value_node);
+  UncRespCode append_audit_node(ConfigNode* value_node);
 
   /**
    * @brief      : Method to add list of confignode to the cache to support
    *               physical node audit
    * @param [in] : value_list(a vector contain list of confignodes)
-   * @retval     : drv_resp_code_t(DRVAPI_RESPONSE_SUCCESS)
+   * @retval     : UncRespCode(UNC_RC_SUCCESS)
    */
-  drv_resp_code_t append_physical_attribute_configuration_list(
+  UncRespCode append_physical_attribute_configuration_list(
         const std::vector<ConfigNode*>&value_list);
 
   /**
    * @brief      : Method to add individual confignode to the cache for physical
    *               node
    * @param [in] : value_node
-   * @retval     : drv_resp_code_t(DRVAPI_RESPONSE_SUCCESS/
-   *               DRVAPI_RESPONSE_FAILURE)
+   * @retval     : UncRespCode(UNC_RC_SUCCESS/
+   *               UNC_DRV_RC_ERR_GENERIC)
    */
-  drv_resp_code_t append_Physical_attribute_node(ConfigNode* value_node);
+  UncRespCode append_Physical_attribute_node(ConfigNode* value_node);
 
   /**
    * @brief      : Method to update individual confignode to the cache for
    *               physical node
    * @param [in] : child_ptr
-   * @retval     : drv_resp_code_t(DRVAPI_RESPONSE_SUCCESS/
-   *               DRVAPI_RESPONSE_FAILURE)
+   * @retval     : UncRespCode(UNC_RC_SUCCESS/
+   *               UNC_DRV_RC_ERR_GENERIC)
    */
-  drv_resp_code_t update_physical_attribute_node(ConfigNode* child_ptr);
+  UncRespCode update_physical_attribute_node(ConfigNode* child_ptr);
 
   /**
    * @brief      : Method to delete individual confignode to the cache for
    *               physical node
    * @param [in] : child_ptr
-   * @retval     : drv_resp_code_t(DRVAPI_RESPONSE_SUCCESS/
-   *               DRVAPI_RESPONSE_FAILURE)
+   * @retval     : UncRespCode(UNC_RC_SUCCESS/
+   *               UNC_DRV_RC_ERR_GENERIC)
    */
-  drv_resp_code_t delete_physical_attribute_node(ConfigNode* child_ptr);
+  UncRespCode delete_physical_attribute_node(ConfigNode* child_ptr);
 
   /**
    * @brief      : Method to return existing node from cache as per new compare
@@ -109,10 +109,10 @@ class KeyTree {
   /**
    * @brief      : Method to add individual confignode to the cache for Audit
    * @param [in] : value_node
-   * @retval     : drv_resp_code_t(DRVAPI_RESPONSE_SUCCESS/
-   *               DRVAPI_RESPONSE_FAILURE)
+   * @retval     : UncRespCode(UNC_RC_SUCCESS/
+   *               UNC_DRV_RC_ERR_GENERIC)
    */
-  drv_resp_code_t append_commit_node(ConfigNode* value_node);
+  UncRespCode append_commit_node(ConfigNode* value_node);
 
   /**
    * @brief  : Method to create the iterator of Keytree
@@ -180,9 +180,9 @@ class KeyTree {
    * @brief      : Method to traverse the tree in DFS order and populate
    *               the nodes into the vector
    * @param [in] : value_list
-   * @retval     : DRVAPI_RESPONSE_SUCCESS
+   * @retval     : UNC_RC_SUCCESS
    */
-  drv_resp_code_t get_nodelist_keytree();
+  UncRespCode get_nodelist_keytree();
   /**
    * @brief      : Method to return the Parent given the child_type
    * @param [in] : child_type
@@ -193,10 +193,10 @@ class KeyTree {
   /**
    * @brief      : Method to add individual Config node to the cache
    * @param [in] : child_ptr
-   * @retval     : drv_resp_code_t(DRVAPI_RESPONSE_SUCCESS/
-   *               DRVAPI_RESPONSE_FAILURE)
+   * @retval     : UncRespCode(UNC_RC_SUCCESS/
+   *               UNC_DRV_RC_ERR_GENERIC)
    */
-  drv_resp_code_t add_node_to_tree(ConfigNode* child_ptr);
+  UncRespCode add_node_to_tree(ConfigNode* child_ptr);
 
   /**
    * @brief      : Method to search and retrieve the node from the search map
@@ -209,9 +209,9 @@ class KeyTree {
   /**
    * @brief      : Method to insert node to the search map
    * @param [in] : child_ptr
-   * @retval     : drv_resp_code_t(DRVAPI_RESPONSE_SUCCESS)
+   * @retval     : UncRespCode(UNC_RC_SUCCESS)
    */
-  drv_resp_code_t add_child_to_hash(ConfigNode* child_ptr);
+  UncRespCode add_child_to_hash(ConfigNode* child_ptr);
 
 
   /**
index b90f0fc607535c47fadcc9a8c8e72355a73cdb67..69b6d7f3f6cf948d07cdcb908ab71012ff5ae9d9 100644 (file)
@@ -177,7 +177,7 @@ class  ConfUtil {
    * @retval      : search key - string
    */
   static std::string get_search_key(const key_vlan_map_t &key,
-                                    const val_vlan_map_t &val) {
+                                    const pfcdrv_val_vlan_map_t &val) {
     ODC_FUNC_TRACE;
     std::string key_str(reinterpret_cast<const char*>
                         (key.vbr_key.vtn_key.vtn_name));
@@ -189,7 +189,7 @@ class  ConfUtil {
     } else {
      key_str += std::string("ANY.");
      char buff[10];
-     snprintf(buff, sizeof(buff), "%u", val.vlan_id);
+     snprintf(buff, sizeof(buff), "%u", val.vm.vlan_id);
      key_str += std::string(buff);
     }
     return key_str;
index 91fe9c18f6067092e2394d4b709f12382cc23b44..bca1086a9d19b6f2e95d76cb9ebc2d29a0ca83d1 100644 (file)
@@ -89,9 +89,9 @@ unc_key_type_t KeyTree::get_parenttype(unc_key_type_t child_type) {
  * @brief       : Method to traverse the tree and populate the nodes into
  *                the vector
  * @param [in]  : value_list
- * @retval      : DRVAPI_RESPONSE_SUCCESS
+ * @retval      : UNC_RC_SUCCESS
  */
-drv_resp_code_t KeyTree::get_nodelist_keytree() {
+UncRespCode KeyTree::get_nodelist_keytree() {
   ODC_FUNC_TRACE;
   cfg_node_list_.clear();
   return node_tree_.get_node_list(cfg_node_list_);
@@ -100,12 +100,12 @@ drv_resp_code_t KeyTree::get_nodelist_keytree() {
 /**
  * @brief       : Method to add individual confignode to the cache for commit
  * @param [in]  : value_node
- * @retval      : DRVAPI_RESPONSE_SUCCESS/DRVAPI_RESPONSE_FAILURE
+ * @retval      : UNC_RC_SUCCESS/UNC_DRV_RC_ERR_GENERIC
  */
-drv_resp_code_t KeyTree::append_commit_node(ConfigNode* value_node) {
+UncRespCode KeyTree::append_commit_node(ConfigNode* value_node) {
   ODC_FUNC_TRACE;
   cfg_node_list_.push_back(value_node);
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**
@@ -144,12 +144,12 @@ void KeyTree::clear_root_cache() {
  * @brief       : Method to add confignode lists to the cache for
  *              : Physical nodes
  * @param [in]  : value_list
- * @retval      : ERR_ADD_CHILD_TO_TREE_FAILED / DRVAPI_RESPONSE_SUCCESSS
+ * @retval      : ERR_ADD_CHILD_TO_TREE_FAILED / UNC_RC_SUCCESSS
  */
-drv_resp_code_t KeyTree::append_physical_attribute_configuration_list(
+UncRespCode KeyTree::append_physical_attribute_configuration_list(
     const std::vector<ConfigNode*>&value_list) {
   ODC_FUNC_TRACE;
-  drv_resp_code_t err = DRVAPI_RESPONSE_FAILURE;
+  UncRespCode err = UNC_DRV_RC_ERR_GENERIC;
   ConfigNode*  tmp_cfgnode_ptr = NULL;
   std::vector<ConfigNode*>::const_iterator it = value_list.begin();
   std::vector<ConfigNode*>::const_iterator itr_end = value_list.end();
@@ -158,56 +158,56 @@ drv_resp_code_t KeyTree::append_physical_attribute_configuration_list(
     if (*it == NULL) {
       pfc_log_error("RunningConfig::%s:%d: ConfigNode is NULL",
                     PFC_FUNCNAME, __LINE__);
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
 
     tmp_cfgnode_ptr = *it;
     err = append_audit_node(tmp_cfgnode_ptr);
-    if (DRVAPI_RESPONSE_SUCCESS != err) {
+    if (UNC_RC_SUCCESS != err) {
       pfc_log_error("%s: AddChildToTree faild err=%d", PFC_FUNCNAME, err);
       tmp_cfgnode_ptr = NULL;
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
   }
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**
  * @brief       : Method to add individual confignode to the cache for
  *              : Physical node
  * @param [in]  : value_node
- * @retval      : DRVAPI_RESPONSE_FAILURE / DRVAPI_RESPONSE_SUCCESS
+ * @retval      : UNC_DRV_RC_ERR_GENERIC / UNC_RC_SUCCESS
  */
-drv_resp_code_t KeyTree::append_Physical_attribute_node(
+UncRespCode KeyTree::append_Physical_attribute_node(
     ConfigNode* value_node) {
   ODC_FUNC_TRACE;
-  drv_resp_code_t err = DRVAPI_RESPONSE_FAILURE;
+  UncRespCode err = UNC_DRV_RC_ERR_GENERIC;
   err = append_audit_node(value_node);
-  if (DRVAPI_RESPONSE_SUCCESS != err) {
+  if (UNC_RC_SUCCESS != err) {
     pfc_log_error("%s: AddChildToTree faild err=%d", PFC_FUNCNAME, err);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**
  * @brief       : Method to update confignode to the cache for physical-node
  * @param [in]  : child_ptr(confignode)
- * @retval      : DRVAPI_RESPONSE_FAILURE / DRVAPI_RESPONSE_SUCCESS
+ * @retval      : UNC_DRV_RC_ERR_GENERIC / UNC_RC_SUCCESS
  */
-drv_resp_code_t KeyTree:: update_physical_attribute_node(
+UncRespCode KeyTree:: update_physical_attribute_node(
     ConfigNode* child_ptr) {
   ODC_FUNC_TRACE;
   if (NULL == child_ptr) {
     pfc_log_error("update_port_to_list:Child Node is NULL!!!!!!");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   unc_key_type_t key_type = child_ptr->get_type_name();
   std::string key_name= child_ptr->get_key_name();
   ConfigNode* old_cfgptr = get_node_from_hash(key_name, key_type);
   if (NULL == old_cfgptr) {
     pfc_log_error("no such configuration exist in cache");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   std::string type_check = TypeToStrFun(child_ptr->get_type_name());
   pfc_log_info("type check for port/switch %s", type_check.c_str());
@@ -244,24 +244,24 @@ drv_resp_code_t KeyTree:: update_physical_attribute_node(
     old_link_ptr->set_val_structure(update_link_ptr->get_val_structure());
   } else {
     pfc_log_error("unmatched update request");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**
  * @brief       : Method to delete confignode from the cache for physical node
  * @param [in]  : child_ptr(confignode)
- * @retval      : DRVAPI_RESPONSE_FAILURE / DRVAPI_RESPONSE_SUCCESS
+ * @retval      : UNC_DRV_RC_ERR_GENERIC / UNC_RC_SUCCESS
  */
-drv_resp_code_t KeyTree:: delete_physical_attribute_node(
+UncRespCode KeyTree:: delete_physical_attribute_node(
     ConfigNode* child_ptr) {
   ODC_FUNC_TRACE;
-  drv_resp_code_t err = DRVAPI_RESPONSE_FAILURE;
+  UncRespCode err = UNC_DRV_RC_ERR_GENERIC;
   if (NULL == child_ptr) {
     pfc_log_error("delete_port_to_list:Child Node is NULL!!!!!!");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   std::string  parent_key = child_ptr->get_parent_key_name();
   unc_key_type_t parent_type = get_parenttype(child_ptr->get_type_name());
@@ -270,14 +270,14 @@ drv_resp_code_t KeyTree:: delete_physical_attribute_node(
   if (NULL == parent_ptr) {
     pfc_log_error("Parent:%s  Not Present for:%s", parent_key.c_str(),
                   child_ptr->get_key_generate().c_str());
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   unc_key_type_t key_type = child_ptr->get_type_name();
   std::string key_name= child_ptr->get_key_name();
   ConfigNode* old_cfgptr = get_node_from_hash(key_name, key_type);
   if (NULL == old_cfgptr) {
     pfc_log_error("no such configuration exist in cache");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   std::string type_check = TypeToStrFun(child_ptr->get_type_name());
   pfc_log_info("type check for port/switch %s", type_check.c_str());
@@ -285,15 +285,15 @@ drv_resp_code_t KeyTree:: delete_physical_attribute_node(
   if ((type_check == "UNC_KT_PORT") || (type_check == "UNC_KT_SWITCH") ||
       (type_check == "UNC_KT_LINK")) {
     err = parent_ptr->delete_child_node(old_cfgptr, erased_key_list);
-    if ( DRVAPI_RESPONSE_SUCCESS != err ) {
+    if ( UNC_RC_SUCCESS != err ) {
       pfc_log_error("delete_child_to_list Faild for:%s!!!!",
                     child_ptr->get_key_generate().c_str());
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
   cfg_node_list_.clear();
   } else {
     pfc_log_error("unmatched delete request");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   std::vector<key_information>:: iterator itr_err = erased_key_list.begin();
   for (; itr_err != erased_key_list.end(); ++itr_err) {
@@ -301,7 +301,7 @@ drv_resp_code_t KeyTree:: delete_physical_attribute_node(
                   itr_err->key_type);
     ConfigHashArr[itr_err->key_type].erase(itr_err->key);
   }
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**
@@ -334,12 +334,12 @@ pfc_bool_t KeyTree::compare_is_physical_node_found(
 /**
  * @brief       : Method to add confignode lists to the cache for Audit
  * @param [in]  : value_list
- * @retval      : ERR_ADD_CHILD_TO_TREE_FAILED / DRVAPI_RESPONSE_SUCCESSS
+ * @retval      : ERR_ADD_CHILD_TO_TREE_FAILED / UNC_RC_SUCCESSS
  */
-drv_resp_code_t KeyTree::append_audit_configuration_list(
+UncRespCode KeyTree::append_audit_configuration_list(
     const std::vector<ConfigNode*>&value_list) {
   ODC_FUNC_TRACE;
-  drv_resp_code_t err = DRVAPI_RESPONSE_FAILURE;
+  UncRespCode err = UNC_DRV_RC_ERR_GENERIC;
 
   ConfigNode*  tmp_cfgnode_ptr = NULL;
   std::vector<ConfigNode*>::const_iterator it = value_list.begin();
@@ -350,29 +350,29 @@ drv_resp_code_t KeyTree::append_audit_configuration_list(
     if (*it == NULL) {
       pfc_log_error("RunningConfig::%s:%d: ConfigNode is NULL",
                    PFC_FUNCNAME, __LINE__);
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
 
     tmp_cfgnode_ptr = *it;
     err = append_audit_node(tmp_cfgnode_ptr);
-    if (DRVAPI_RESPONSE_SUCCESS != err) {
+    if (UNC_RC_SUCCESS != err) {
       pfc_log_error("%s: AddChildToTree faild err=%d", PFC_FUNCNAME, err);
       tmp_cfgnode_ptr = NULL;
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
   }
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**
  * @brief       : Method to add individual confignode to the cache for Audit
  * @param [in]  : value_node
- * @retval      : DRVAPI_RESPONSE_FAILURE / DRVAPI_RESPONSE_SUCCESS
+ * @retval      : UNC_DRV_RC_ERR_GENERIC / UNC_RC_SUCCESS
  */
-drv_resp_code_t KeyTree::append_audit_node(
+UncRespCode KeyTree::append_audit_node(
     ConfigNode* value_node) {
   ODC_FUNC_TRACE;
-  drv_resp_code_t err = DRVAPI_RESPONSE_FAILURE;
+  UncRespCode err = UNC_DRV_RC_ERR_GENERIC;
 
   ConfigNode*  tmp_cfgnode_ptr = NULL;
   ConfigNode*  real_cfgnode_ptr= NULL;
@@ -392,10 +392,10 @@ drv_resp_code_t KeyTree::append_audit_node(
     pfc_log_debug("%s: Parent Type Check %s ", PFC_FUNCNAME,
                  tmp_cfgnode_ptr->get_parent_key_name().c_str());
     err = add_node_to_tree(tmp_cfgnode_ptr);
-    if (DRVAPI_RESPONSE_SUCCESS != err) {
+    if (UNC_RC_SUCCESS != err) {
       pfc_log_error("%s: AddChildToTree faild err=%d", PFC_FUNCNAME, err);
       tmp_cfgnode_ptr = NULL;
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
   } else {
     pfc_log_debug("%s: Node already Present in Tree...", PFC_FUNCNAME);
@@ -404,19 +404,19 @@ drv_resp_code_t KeyTree::append_audit_node(
     real_cfgnode_ptr = NULL;
   }
 
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**
  * @brief       : Method to add node to the cache and search map by validation
  * @param [in]  : value_list
- * @retval      : DRVAPI_RESPONSE_SUCCESSS/DRVAPI_RESPONSE_FAILURE
+ * @retval      : UNC_RC_SUCCESSS/UNC_DRV_RC_ERR_GENERIC
  */
-drv_resp_code_t KeyTree::add_node_to_tree(ConfigNode* child_ptr) {
+UncRespCode KeyTree::add_node_to_tree(ConfigNode* child_ptr) {
   ODC_FUNC_TRACE;
   if (NULL == child_ptr) {
     pfc_log_error("add_node_to_tree:Child Node is NULL!!!!!!");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   std::string  parent_key = child_ptr->get_parent_key_name();
   unc_key_type_t parent_type = get_parenttype(child_ptr->get_type_name());
@@ -426,24 +426,24 @@ drv_resp_code_t KeyTree::add_node_to_tree(ConfigNode* child_ptr) {
   if (NULL == parent_ptr) {
     pfc_log_error("Parent:%s  Not Present for:%s", parent_key.c_str(),
                  child_ptr->get_key_generate().c_str());
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   // Add the new node to child list of the parentnode using parent_ptr
-  drv_resp_code_t err = parent_ptr->add_child_to_list(child_ptr);
-  if ( DRVAPI_RESPONSE_SUCCESS != err ) {
+  UncRespCode err = parent_ptr->add_child_to_list(child_ptr);
+  if ( UNC_RC_SUCCESS != err ) {
     pfc_log_error("add_node_to_tree:add_child_to_list Faild for:%s!!!!",
                  child_ptr->get_key_generate().c_str());
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   // Add the new node to the search map
   err = add_child_to_hash(child_ptr);
 
-  if ( DRVAPI_RESPONSE_SUCCESS == err ) {
+  if ( UNC_RC_SUCCESS == err ) {
     pfc_log_debug("add_node_to_tree:add_child_to_hash Succed for: %s!!!!",
                  child_ptr->get_key_generate().c_str());
     cfgnode_count_++;
   }
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**
@@ -468,15 +468,15 @@ ConfigNode* KeyTree::get_node_from_hash(
 /**
  * @brief       : Method to insert node to the search map
  * @param [in]  : child_ptr
- * @retval      : DRVAPI_RESPONSE_SUCCESSS
+ * @retval      : UNC_RC_SUCCESSS
  */
-drv_resp_code_t KeyTree::add_child_to_hash(ConfigNode* child_ptr) {
+UncRespCode KeyTree::add_child_to_hash(ConfigNode* child_ptr) {
   ODC_FUNC_TRACE;
   unc_key_type_t key_type = child_ptr->get_type_name();
   std::string key = child_ptr->get_key_generate();
   ConfigHashArr[key_type].insert(std::pair <std::string,
                                  ConfigNode*>(key, child_ptr));
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 }  // namespace vtndrvcache
index 4b5c5a0b63ee067ef5c3d705f160d80b6f798ce6..40f8194fc8c046eeab40941297ec7f3384a825bb 100644 (file)
@@ -285,10 +285,10 @@ void ReadConfig::GetPhysicalConfig() {
  *              not found from list,it's consider as new controller and
  *              add it to list
  * @param[in] : controller_name, controller*, driver*
- * @retval    : DRVAPI_RESPONSE_FAILURE / DRVAPI_RESPONSE_SUCCESS
+ * @retval    : UNC_DRV_RC_ERR_GENERIC / UNC_RC_SUCCESS
  */
 
-drv_resp_code_t ControllerFramework::UpdateControllerConfiguration(
+UncRespCode ControllerFramework::UpdateControllerConfiguration(
     std::string& controller_name,
     controller* controller_instance, driver* driver_instance,
     const key_ctr_t& key_ctr, const val_ctr_t& val_ctr) {
@@ -365,15 +365,15 @@ drv_resp_code_t ControllerFramework::UpdateControllerConfiguration(
                     PFC_FUNCNAME, controller_name.c_str());
     }
   }
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**
  * @brief     : This function removes the existing controller from list
  * @param[in] : controller_name
- * @retval    : DRVAPI_RESPONSE_FAILURE / DRVAPI_RESPONSE_SUCCESS
+ * @retval    : UNC_DRV_RC_ERR_GENERIC / UNC_RC_SUCCESS
  */
-drv_resp_code_t
+UncRespCode
 ControllerFramework::RemoveControllerConfiguration(
     std::string& controller_name,
     controller* controller_instance,
@@ -384,7 +384,7 @@ ControllerFramework::RemoveControllerConfiguration(
 
   if (controller_list.size() == 0) {
     pfc_log_error("Controller name not found .List is Empty");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   std::map<std::string, ControllerContainer*>::iterator
@@ -402,10 +402,10 @@ ControllerFramework::RemoveControllerConfiguration(
     pfc_log_debug("Existing controller configuration gets removed");
   } else {
     pfc_log_error("controller not found");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**
@@ -413,9 +413,9 @@ ControllerFramework::RemoveControllerConfiguration(
  * @brief     : This function gets the driver type for the appropriate
  *              controllers
  * @param[in] : controller_name, controller**, driver**
- * @retval    : DRVAPI_RESPONSE_FAILURE / DRVAPI_RESPONSE_SUCCESS
+ * @retval    : UNC_DRV_RC_ERR_GENERIC / UNC_RC_SUCCESS
  */
-drv_resp_code_t ControllerFramework::GetDriverByControllerName(
+UncRespCode ControllerFramework::GetDriverByControllerName(
     std::string& controller_name,
     controller** controller_instance,
     driver** driver_instance) {
@@ -428,7 +428,7 @@ drv_resp_code_t ControllerFramework::GetDriverByControllerName(
 
   if (controller_list_iterator == controller_list.end()) {
     pfc_log_error("controller name not found");
-    return  DRVAPI_RESPONSE_FAILURE;
+    return  UNC_DRV_RC_ERR_GENERIC;
   }
 
   controller_container = controller_list_iterator->second;
@@ -438,9 +438,9 @@ drv_resp_code_t ControllerFramework::GetDriverByControllerName(
 
   if ((NULL == *controller_instance) || (NULL == *driver_instance)) {
     pfc_log_error("controller instance or driver instance is NULL");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 
@@ -448,23 +448,23 @@ drv_resp_code_t ControllerFramework::GetDriverByControllerName(
  * @brief     : This function stores the driver instance for the appropriate
  *              controller type in map
  * @param[in] : controller_type, driver*
- * @retval    : DRVAPI_RESPONSE_FAILURE / DRVAPI_RESPONSE_SUCCESS
+ * @retval    : UNC_DRV_RC_ERR_GENERIC / UNC_RC_SUCCESS
  */
-drv_resp_code_t ControllerFramework::RegisterDriver(
+UncRespCode ControllerFramework::RegisterDriver(
     unc_keytype_ctrtype_t controller_type,
     driver* driver_instance)  {
   ODC_FUNC_TRACE;
 
   if (NULL == driver_instance) {
     pfc_log_error("RegisterDriver:Driver instance is NULL");
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   controller_list_rwlock_.lock();
   driver_container.insert(std::make_pair(controller_type, driver_instance));
   controller_list_rwlock_.unlock();
 
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**
@@ -472,9 +472,9 @@ drv_resp_code_t ControllerFramework::RegisterDriver(
  *              for the appropriate without acquiring the lock controllers
  * @param[in] : controller_name, controller*, driver*
  * @param[out]: driver*
- * @retval    : DRVAPI_RESPONSE_FAILURE / DRVAPI_RESPONSE_SUCCESS
+ * @retval    : UNC_DRV_RC_ERR_GENERIC / UNC_RC_SUCCESS
  */
-drv_resp_code_t ControllerFramework::GetControllerInstance(
+UncRespCode ControllerFramework::GetControllerInstance(
     std::string& controller_name,
     controller** controller_instance,
     driver** driver_instance) {
@@ -487,7 +487,7 @@ drv_resp_code_t ControllerFramework::GetControllerInstance(
 
   if (controller_list_iterator == controller_list.end()) {
     pfc_log_error("Controller Name not found in the list");
-    return  DRVAPI_RESPONSE_FAILURE;
+    return  UNC_DRV_RC_ERR_GENERIC;
   }
 
   controller_container = controller_list_iterator->second;
@@ -498,7 +498,7 @@ drv_resp_code_t ControllerFramework::GetControllerInstance(
   PFC_VERIFY(*controller_instance != NULL);
   PFC_VERIFY(*driver_instance != NULL);
 
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 /**
index e4afeca760ea29272808733974fdcfbc125a95fd..520021a7f8e1de0d04d5561fdc8cd4ef93aefec8 100644 (file)
@@ -89,7 +89,7 @@ class ControllerFramework  {
    * @param[in] - controller name ,controller**, driver**
    * @retval    - VTN_DRV_RET_FAILURE/VTN_DRV_RET_SUCCESS
    */
-  drv_resp_code_t GetDriverByControllerName(std::string& controller_name,
+  UncRespCode GetDriverByControllerName(std::string& controller_name,
                                           controller**, driver**);
 
   /**
@@ -125,7 +125,7 @@ class ControllerFramework  {
    * @param[in]    - controller name, controller*, driver*
    * @retval       - VTN_DRV_RET_FAILURE/ VTN_DRV_RET_SUCCESS
    */
-  drv_resp_code_t UpdateControllerConfiguration(std::string& controller_name,
+  UncRespCode UpdateControllerConfiguration(std::string& controller_name,
                                                controller*, driver*,
                                                const key_ctr_t& key_ctr,
                                                const val_ctr_t& val_ctr);
@@ -135,7 +135,7 @@ class ControllerFramework  {
    * @param[in]    - controller name, controller*, driver*
    * @retval       - VTN_DRV_RET_FAILURE/ VTN_DRV_RET_SUCCESS
    */
-  drv_resp_code_t RemoveControllerConfiguration(std::string& controller_name,
+  UncRespCode RemoveControllerConfiguration(std::string& controller_name,
                                               controller*, driver*);
 
   /**
@@ -150,7 +150,7 @@ class ControllerFramework  {
    * @param[in]   - controller type, driver*
    * @retval      - VTN_DRV_RET_FAILURE/ VTN_DRV_RET_SUCCESS
    */
-  drv_resp_code_t RegisterDriver(unc_keytype_ctrtype_t controller_type,
+  UncRespCode RegisterDriver(unc_keytype_ctrtype_t controller_type,
                                  driver*);
 
 
@@ -161,7 +161,7 @@ class ControllerFramework  {
    * @param[out] - controller**, driver**
    * @retval     - VTN_DRV_RET_FAILURE/ VTN_DRV_RET_SUCCESS
    */
-  drv_resp_code_t GetControllerInstance(std::string& controller_name,
+  UncRespCode GetControllerInstance(std::string& controller_name,
                                       controller**, driver**);
 
   /**
index 6d4c45193cf1c8aca9ebecceb2e6ae5096b86bfb..2ea9e9903e26304cc0a642de859eb1e80fe34aaf 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013 NEC Corporation
+ * Copyright (c) 2013-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -37,9 +37,9 @@ class driver_command {
    * @brief    - Method to revoke the commit with triggring audit for any
    failed Operation
    * @param[in]- controller pointer
-   * @retval   - DRVAPI_RESPONSE_SUCCESS
+   * @retval   - UNC_RC_SUCCESS
    */
-  virtual drv_resp_code_t revoke(unc::driver::controller* ctr_ptr) {
+  virtual UncRespCode revoke(unc::driver::controller* ctr_ptr) {
     pfc_log_debug("%s Entering function", PFC_FUNCNAME);
 
     // Send start audit notification to TC
@@ -54,7 +54,7 @@ class driver_command {
     ptr_tclib_key_data->TcLibAuditControllerRequest(controller_name);
 
     pfc_log_debug("%s Exiting function", PFC_FUNCNAME);
-    return DRVAPI_RESPONSE_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 
   /**
@@ -62,9 +62,9 @@ class driver_command {
    * @param[in]  - controller pointer
    * @param[in]  - parent key type pointer
    * @param[out] - list of configurations
-   * @retval     - DRVAPI_RESPONSE_SUCCESS / DRVAPI_RESPONSE_FAILURE
+   * @retval     - UNC_RC_SUCCESS / UNC_DRV_RC_ERR_GENERIC
    */
-  virtual drv_resp_code_t fetch_config(unc::driver::controller* ctr,
+  virtual UncRespCode fetch_config(unc::driver::controller* ctr,
                              void* parent_key,
                              std::vector<unc::vtndrvcache::ConfigNode *>&) = 0;
 };
@@ -77,23 +77,23 @@ class vtn_driver_command: public driver_command {
   /**
    * @brief    - Method to create VTN  in the controller
    * @param[in]- key_vtn_t, val_vtn_t, controller*
-   * @retval   - DRVAPI_RESPONSE_SUCCESS/DRVAPI_RESPONSE_FAILURE
+   * @retval   - UNC_RC_SUCCESS/UNC_DRV_RC_ERR_GENERIC
    */
-  virtual drv_resp_code_t create_cmd(key_vtn_t& keyvtn_, val_vtn_t& valvtn_,
+  virtual UncRespCode create_cmd(key_vtn_t& keyvtn_, val_vtn_t& valvtn_,
                                      unc::driver::controller*)=0;
   /**
    * @brief    - Method to update VTN  in the controller
    * @param[in]- key_vtn_t, val_vtn_t, controller*
-   * @retval   - DRVAPI_RESPONSE_SUCCESS/DRVAPI_RESPONSE_FAILURE
+   * @retval   - UNC_RC_SUCCESS/UNC_DRV_RC_ERR_GENERIC
    */
-  virtual drv_resp_code_t update_cmd(key_vtn_t& keyvtn_, val_vtn_t& valvtn_,
+  virtual UncRespCode update_cmd(key_vtn_t& keyvtn_, val_vtn_t& valvtn_,
                                      unc::driver::controller*)=0;
   /**
    * @brief    - Method to delete VTN  in the controller
    * @param[in]- key_vtn_t, val_vtn_t, controller*
-   * @retval   - DRVAPI_RESPONSE_SUCCESS/DRVAPI_RESPONSE_FAILURE
+   * @retval   - UNC_RC_SUCCESS/UNC_DRV_RC_ERR_GENERIC
    */
-  virtual drv_resp_code_t delete_cmd(key_vtn_t& keyvtn_, val_vtn_t& valvtn_,
+  virtual UncRespCode delete_cmd(key_vtn_t& keyvtn_, val_vtn_t& valvtn_,
                                      unc::driver::controller*)=0;
   /**
    * @brief    - Method to return the Keytype
@@ -113,24 +113,24 @@ class vbr_driver_command: public driver_command {
   /**
    * @brief    - Method to create Vbridge in the controller
    * @param[in]- key_vbr_t, val_vbr_t, controller*
-   * @retval   - DRVAPI_RESPONSE_SUCCESS/DRVAPI_RESPONSE_FAILURE
+   * @retval   - UNC_RC_SUCCESS/UNC_DRV_RC_ERR_GENERIC
    */
-  virtual drv_resp_code_t create_cmd(key_vbr_t& keyvbr_, val_vbr_t& valvbr_,
+  virtual UncRespCode create_cmd(key_vbr_t& keyvbr_, val_vbr_t& valvbr_,
                                      unc::driver::controller*) = 0;
   /**
    * @brief    - Method to update Vbridge in the controller
    * @param[in]- key_vbr_t, val_vbr_t, controller*
-   * @retval   - DRVAPI_RESPONSE_SUCCESS/DRVAPI_RESPONSE_FAILURE
+   * @retval   - UNC_RC_SUCCESS/UNC_DRV_RC_ERR_GENERIC
    */
-  virtual drv_resp_code_t update_cmd(key_vbr_t& keyvbr_, val_vbr_t& valvbr_,
+  virtual UncRespCode update_cmd(key_vbr_t& keyvbr_, val_vbr_t& valvbr_,
                                      unc::driver::controller*) = 0;
 
   /**
    * @brief    - Method to delete Vbridge in the controller
    * @param[in]- key_vbr_t, val_vbr_t, controller*
-   * @retval   - DRVAPI_RESPONSE_SUCCESS/DRVAPI_RESPONSE_FAILURE
+   * @retval   - UNC_RC_SUCCESS/UNC_DRV_RC_ERR_GENERIC
    */
-  virtual drv_resp_code_t delete_cmd(key_vbr_t& keyvbr_, val_vbr_t& valvbr_,
+  virtual UncRespCode delete_cmd(key_vbr_t& keyvbr_, val_vbr_t& valvbr_,
                                      unc::driver::controller*)=0;
   /**
    * @brief    - Method to return the Keytype
@@ -150,25 +150,25 @@ class vbrif_driver_command: public driver_command {
   /**
    * @brief    - Method to create Vbr Interface in the controller
    * @param[in]- key_vbr_if_t, pfcdrv_val_vbr_if_t, controller*
-   * @retval   - DRVAPI_RESPONSE_SUCCESS/DRVAPI_RESPONSE_FAILURE
+   * @retval   - UNC_RC_SUCCESS/UNC_DRV_RC_ERR_GENERIC
    */
-  virtual drv_resp_code_t create_cmd(key_vbr_if_t& key,
+  virtual UncRespCode create_cmd(key_vbr_if_t& key,
           pfcdrv_val_vbr_if_t& val, unc::driver::controller *conn)=0;
 
   /**
    * @brief    - Method to update Vbr Interface in the controller
    * @param[in]- key_vbr_if_t, pfcdrv_val_vbr_if_t, controller*
-   * @retval   - DRVAPI_RESPONSE_SUCCESS/DRVAPI_RESPONSE_FAILURE
+   * @retval   - UNC_RC_SUCCESS/UNC_DRV_RC_ERR_GENERIC
    */
-  virtual drv_resp_code_t update_cmd(key_vbr_if_t& key,
+  virtual UncRespCode update_cmd(key_vbr_if_t& key,
           pfcdrv_val_vbr_if_t& val, unc::driver::controller *conn) = 0;
 
   /**
    * @brief    - Method to delete Vbr Interface in the controller
    * @param[in]- key_vbr_if_t, pfcdrv_val_vbr_if_t, controller*
-   * @retval   - DRVAPI_RESPONSE_SUCCESS/DRVAPI_RESPONSE_FAILURE
+   * @retval   - UNC_RC_SUCCESS/UNC_DRV_RC_ERR_GENERIC
    */
-  virtual drv_resp_code_t delete_cmd(key_vbr_if_t& key,
+  virtual UncRespCode delete_cmd(key_vbr_if_t& key,
           pfcdrv_val_vbr_if_t& val, unc::driver::controller *conn) = 0;
 
   /**
@@ -186,29 +186,29 @@ class vbrvlanmap_driver_command: public driver_command {
   /**
    * @brief    - Method to create Vbr Vlan-Map in the controller
    * @param[in]- key_vlan_map_t, val_vlan_map_t, controller*
-   * @retval   - DRVAPI_RESPONSE_SUCCESS/DRVAPI_RESPONSE_FAILURE
+   * @retval   - UNC_RC_SUCCESS/UNC_DRV_RC_ERR_GENERIC
    */
-  virtual drv_resp_code_t create_cmd(key_vlan_map_t& key,
-                                     val_vlan_map_t& val,
-                                     unc::driver::controller *conn)=0;
+  virtual UncRespCode create_cmd(key_vlan_map_t& key,
+                                 pfcdrv_val_vlan_map_t& val,
+                                 unc::driver::controller *conn)=0;
 
   /**
    * @brief    - Method to update Vbr Vlan-Map in the controller
    * @param[in]- key_vlan_map_t, val_vlan_map_t, controller*
-   * @retval   - DRVAPI_RESPONSE_SUCCESS/DRVAPI_RESPONSE_FAILURE
+   * @retval   - UNC_RC_SUCCESS/UNC_DRV_RC_ERR_GENERIC
    */
-  virtual drv_resp_code_t update_cmd(key_vlan_map_t& key,
-                                     val_vlan_map_t& val,
-                                     unc::driver::controller *conn) = 0;
+  virtual UncRespCode update_cmd(key_vlan_map_t& key,
+                                 pfcdrv_val_vlan_map_t& val,
+                                 unc::driver::controller *conn) = 0;
 
   /**
    * @brief    - Method to delete Vbr Vlan-Map in the controller
    * @param[in]- key_vlan_map_t, val_vlan_map_t, controller*
-   * @retval   - DRVAPI_RESPONSE_SUCCESS/DRVAPI_RESPONSE_FAILURE
+   * @retval   - UNC_RC_SUCCESS/UNC_DRV_RC_ERR_GENERIC
    */
-  virtual drv_resp_code_t delete_cmd(key_vlan_map_t& key,
-                                     val_vlan_map_t& val,
-                                     unc::driver::controller *conn) = 0;
+  virtual UncRespCode delete_cmd(key_vlan_map_t& key,
+                                 pfcdrv_val_vlan_map_t& val,
+                                 unc::driver::controller *conn) = 0;
 
   /**
    * @brief    - Method to return the Keytype
@@ -228,31 +228,31 @@ class controller_command: public driver_command {
   /**
    * @brief    - Method to create controller configuration
    * @param[in]- key_ctr_t, val_ctr_t, controller*
-   * @retval   - DRVAPI_RESPONSE_FAILURE
+   * @retval   - UNC_DRV_RC_ERR_GENERIC
    */
-  drv_resp_code_t create_cmd(key_ctr_t& key,
+  UncRespCode create_cmd(key_ctr_t& key,
                              val_ctr_t & val, unc::driver::controller *conn) {
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   /**
    * @brief    - Method to update controller configuration
    * @param[in]- key_ctr_t, val_ctr_t, controller*
-   * @retval   - DRVAPI_RESPONSE_FAILURE
+   * @retval   - UNC_DRV_RC_ERR_GENERIC
    */
-  drv_resp_code_t update_cmd(key_ctr_t & key,
+  UncRespCode update_cmd(key_ctr_t & key,
                              val_ctr_t& val, unc::driver::controller *conn) {
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   /**
    * @brief    - Method to update controller configuration
    * @param[in]- key_ctr_t, val_ctr_t, controller*
-   * @retval   - DRVAPI_RESPONSE_FAILURE
+   * @retval   - UNC_DRV_RC_ERR_GENERIC
    */
-  drv_resp_code_t delete_cmd(key_ctr_t & key,
+  UncRespCode delete_cmd(key_ctr_t & key,
                              val_ctr_t & val, unc::driver::controller *conn) {
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   /**
@@ -273,9 +273,9 @@ class root_driver_command : public driver_command {
   /**
    * @brief    - Method to form the create command for Audit
    * @param[in]- key_root_t, val_root_t, controller*
-   * @retval   - DRVAPI_RESPONSE_SUCCESS/DRVAPI_RESPONSE_FAILURE
+   * @retval   - UNC_RC_SUCCESS/UNC_DRV_RC_ERR_GENERIC
    */
-  virtual drv_resp_code_t
+  virtual UncRespCode
       create_cmd(key_root_t& key,
                  val_root_t & val,
                  unc::driver::controller *conn) = 0;
@@ -283,9 +283,9 @@ class root_driver_command : public driver_command {
   /**
    * @brief    - Method to form the KT_ROOT update oommand
    * @param[in]- key_root_t, val_root_t, controller*
-   * @retval   - DRVAPI_RESPONSE_SUCCESS/DRVAPI_RESPONSE_FAILURE
+   * @retval   - UNC_RC_SUCCESS/UNC_DRV_RC_ERR_GENERIC
    */
-  virtual drv_resp_code_t
+  virtual UncRespCode
       update_cmd(key_root_t& key,
                  val_root_t & val,
                  unc::driver::controller *conn) = 0;
@@ -293,9 +293,9 @@ class root_driver_command : public driver_command {
   /**
    * @brief    - Method to form the KT_ROOT delete oommand
    * @param[in]- key_root_t, val_root_t, controller*
-   * @retval   - DRVAPI_RESPONSE_SUCCESS/DRVAPI_RESPONSE_FAILURE
+   * @retval   - UNC_RC_SUCCESS/UNC_DRV_RC_ERR_GENERIC
    */
-  virtual drv_resp_code_t
+  virtual UncRespCode
       delete_cmd(key_root_t& key,
                  val_root_t & val,
                  unc::driver::controller *conn)=0;
@@ -303,18 +303,18 @@ class root_driver_command : public driver_command {
   /**
    * @brief    - Method to read configurations during Audit
    * @param[in]- vector<unc::vtndrvcache::ConfigNode*>, controller*
-   * @retval   - DRVAPI_RESPONSE_SUCCESS/DRVAPI_RESPONSE_FAILURE
+   * @retval   - UNC_RC_SUCCESS/UNC_DRV_RC_ERR_GENERIC
    */
-  virtual drv_resp_code_t
+  virtual UncRespCode
       read_root_child(std::vector<unc::vtndrvcache::ConfigNode*>&,
                       unc::driver::controller*) = 0;
 
   /**
    * @brief    - Method to read configurations from controller during Audit
    * @param[in]- vector<unc::vtndrvcache::ConfigNode*>, controller*
-   * @retval   - DRVAPI_RESPONSE_SUCCESS/DRVAPI_RESPONSE_FAILURE
+   * @retval   - UNC_RC_SUCCESS/UNC_DRV_RC_ERR_GENERIC
    */
-  virtual drv_resp_code_t
+  virtual UncRespCode
       read_all_child(unc::vtndrvcache::ConfigNode*,
                      std::vector<unc::vtndrvcache::ConfigNode*>&,
                      unc::driver::controller*)=0;
index 138fa61bea5375f4dd41d6e1e551526ff747a61e..991b64e2c98c14c5df2903ea4a6e5e69b73a32fd 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013 NEC Corporation
+ * Copyright (c) 2013-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -29,9 +29,9 @@ class KtHandler {
   * @param[in]  - ControllerFramework pointer
   * @param[in]  - ServerSession,
   * @param[in]  - key interface request header
-  * @retval     - drv_resp_code_t
+  * @retval     - UncRespCode
   */
-  virtual drv_resp_code_t handle_request(pfc::core::ipc::ServerSession &sess,
+  virtual UncRespCode handle_request(pfc::core::ipc::ServerSession &sess,
                                 odl_drv_request_header_t &request_header,
                                 ControllerFramework*) = 0;
 
@@ -40,9 +40,9 @@ class KtHandler {
    * @param[in] - ConfigNode pointer
    * @param[in] - controller pointer
    * @param[in] - driver pointer
-   * @retval    - drv_resp_code_t
+   * @retval    - UncRespCode
    */
-  virtual drv_resp_code_t  execute_cmd(unc::vtndrvcache::ConfigNode *cfgptr,
+  virtual UncRespCode  execute_cmd(unc::vtndrvcache::ConfigNode *cfgptr,
                                       unc::driver::controller* ctl_ptr,
                                       unc::driver::driver* drv_ptr)=0;
 
index 39b4cf87f58911f50036b29537f5639f798d28a2..cb9a019ee50eb5813fd5a576f84e0bf4514ee76e 100644 (file)
@@ -45,9 +45,9 @@ class KtRequestHandler : public KtHandler {
   /**
    * @brief    - This method handles request received from platform layer
    * @param[in]- ServerSession, odl_drv_request_header_t,ControllerFramework*
-   * @retval   - drv_resp_code_t
+   * @retval   - UncRespCode
    **/
-  drv_resp_code_t
+  UncRespCode
       handle_request(pfc::core::ipc::ServerSession &sess,
                      unc::driver::odl_drv_request_header_t &request_header,
                      unc::driver::ControllerFramework* ctrl_int);
@@ -55,9 +55,9 @@ class KtRequestHandler : public KtHandler {
   /**
    * @brief    - This method forms the command from ConfigNode pointer
    * @param[in]- ConfigNode*, controller*, driver*
-   * @retval   - drv_resp_code_t
+   * @retval   - UncRespCode
    **/
-  drv_resp_code_t
+  UncRespCode
   execute_cmd(unc::vtndrvcache::ConfigNode *cfgptr,
                   unc::driver::controller* ctl_ptr,
                   unc::driver::driver* drv_ptr);
@@ -65,7 +65,7 @@ class KtRequestHandler : public KtHandler {
   /**
    * @brief     - This method retrieves the key and val structures
    * @param[in] - ServerSession, odl_drv_request_header_t,key,val
-   * @retval    -  drv_resp_code_t
+   * @retval    -  UncRespCode
    **/
 
 
@@ -85,7 +85,7 @@ class KtRequestHandler : public KtHandler {
 
 
  private:
-  drv_resp_code_t
+  UncRespCode
       parse_request(pfc::core::ipc::ServerSession &sess,
                     unc::driver::odl_drv_request_header_t &request_header,
                     key &key_generic_,
@@ -95,10 +95,10 @@ class KtRequestHandler : public KtHandler {
    * @brief    - This method executes the Create,Delete,Update and Read requests of
    *             Keytypes
    * @param[in]- ServerSession, odl_drv_request_header_t, ControllerFramework*
-   *             drv_resp_code_t,key,val
-   * @retval   - drv_resp_code_t
+   *             UncRespCode,key,val
+   * @retval   - UncRespCode
    **/
-  drv_resp_code_t
+  UncRespCode
       execute(pfc::core::ipc::ServerSession &sess,
               unc::driver::odl_drv_request_header_t &request_header,
               unc::driver::ControllerFramework* ctrl_int,
@@ -109,34 +109,34 @@ class KtRequestHandler : public KtHandler {
    * @brief     - This method handles response from controller
    *              and send response to platform layer
    * @param[in] - ServerSession, odl_drv_request_header_t,ControllerFramework*,
-   *              key,val,drv_resp_code_t
-   * @retval    - drv_resp_code_t
+   *              key,val,UncRespCode
+   * @retval    - UncRespCode
    **/
-  drv_resp_code_t
+  UncRespCode
   handle_response(pfc::core::ipc::ServerSession &sess,
                       unc::driver::odl_drv_request_header_t &request_header,
                       unc::driver::ControllerFramework* ctrl_int,
                       key &key_generic_,
                       val &val_generic_,
-                      drv_resp_code_t &resp_code_);
+                      UncRespCode &resp_code_);
 
   /**
    * @brief    - This method creates the Response Header
    * @param[in]- odl_drv_response_header_t,
-   *             odl_drv_request_header_t,drv_resp_code_t
+   *             odl_drv_request_header_t,UncRespCode
    * @retval   - void
    */
   void
   create_response_header(unc::driver::odl_drv_request_header_t &reqhdr,
                              unc::driver::odl_drv_response_header_t &resphdr,
-                             drv_resp_code_t &resp_code_);
+                             UncRespCode &resp_code_);
 
   /**
    * @brief    - This method populates the Response Header
    * @param[in]- ServerSession, odl_drv_response_header_t
-   * @retval   - drv_resp_code_t
+   * @retval   - UncRespCode
    **/
-  drv_resp_code_t
+  UncRespCode
   populate_response_header(pfc::core::ipc::ServerSession &sess,
                          unc::driver::odl_drv_response_header_t &resp_hdr);
 
@@ -218,10 +218,10 @@ get_val_struct(unc::vtndrvcache::ConfigNode *cfgptr) {
   /**
    * @brief     - This method retrieves the key and val structures
    * @param[in] - ServerSession, odl_drv_request_header_t,key,val
-   * @retval    -  drv_resp_code_t
+   * @retval    -  UncRespCode
    **/
 template<typename key, typename val, typename command_class>
-drv_resp_code_t
+UncRespCode
 KtRequestHandler<key, val, command_class>::parse_request(
     pfc::core::ipc::ServerSession &sess,
     unc::driver::odl_drv_request_header_t &request_header,
@@ -230,24 +230,24 @@ KtRequestHandler<key, val, command_class>::parse_request(
   if (sess.getArgument(INPUT_KEY_STRUCT_INDEX, key_generic_)) {
     pfc_log_debug("%s: Exting Function.getArg Failed to read key struct."
                   " rc=%u", PFC_FUNCNAME, 2);
-    return DRVAPI_RESPONSE_MISSING_KEY_STRUCT;
+    return UNC_DRV_RC_MISSING_KEY_STRUCT;
   }
   if (sess.getArgument(INPUT_VAL_STRUCT_INDEX, val_generic_)) {
     pfc_log_debug("%s: No value struct present.", PFC_FUNCNAME);
   }
 
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
   /**
    * @brief    - This method executes the Create,Delete,Update requests of
    *             Keytypes
    * @param[in]- ServerSession, odl_drv_request_header_t, ControllerFramework*
-   *             drv_resp_code_t,key,val
-   * @retval   - drv_resp_code_t
+   *             UncRespCode,key,val
+   * @retval   - UncRespCode
    **/
 template<typename key, typename val, typename command_class>
-drv_resp_code_t
+UncRespCode
 KtRequestHandler<key, val, command_class>::execute(
     pfc::core::ipc::ServerSession &sess,
     unc::driver::odl_drv_request_header_t &request_header,
@@ -262,7 +262,7 @@ KtRequestHandler<key, val, command_class>::execute(
 
   unc::driver::controller* ctrl_ptr = NULL;
 
-  drv_resp_code_t resp_code_ = DRVAPI_RESPONSE_FAILURE;
+  UncRespCode resp_code_ = UNC_DRV_RC_ERR_GENERIC;
 
   controller_operation util_obj(ctrl_int, WRITE_TO_CONTROLLER, ctrl_name);
   ctrl_ptr = util_obj.get_controller_handle();
@@ -277,7 +277,7 @@ KtRequestHandler<key, val, command_class>::execute(
     //  check controller connection status, if down send disconnected
     pfc_log_debug("%s Controller status is down, send disconnected",
                                  PFC_FUNCNAME);
-    return DRVAPI_RESPONSE_CONTROLLER_DISCONNECTED;
+    return UNC_RC_CTR_DISCONNECTED;
   }
 
   unc::driver::driver_command * drv_command_ptr_ =
@@ -306,7 +306,7 @@ KtRequestHandler<key, val, command_class>::execute(
       delete command_ptr_;
       if (ctrl_ptr->controller_cache != NULL)
         delete ctrl_ptr->controller_cache;
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
 
     uint32_t size = ctrl_ptr->controller_cache->cfg_list_count();
@@ -317,7 +317,7 @@ KtRequestHandler<key, val, command_class>::execute(
     size = ctrl_ptr->controller_cache->cfg_list_count();
     pfc_log_debug("after add .... size is %d", size);
 
-    if (resp_code_ != DRVAPI_RESPONSE_SUCCESS) {
+    if (resp_code_ != UNC_RC_SUCCESS) {
       pfc_log_debug("%s:Exiting Function. AppendCommitNode fail",
                     PFC_FUNCNAME);
       if (cfgptr != NULL)
@@ -326,7 +326,7 @@ KtRequestHandler<key, val, command_class>::execute(
       return resp_code_;
     } else  {
       pfc_log_debug("Caching Success");
-      resp_code_= DRVAPI_RESPONSE_SUCCESS;
+      resp_code_= UNC_RC_SUCCESS;
     }
   } else {
     switch (request_header.header.operation) {
@@ -360,7 +360,7 @@ KtRequestHandler<key, val, command_class>::execute(
 
         pfc_log_debug("%s: Invalid operation  ", PFC_FUNCNAME);
 
-        resp_code_ = DRVAPI_RESPONSE_INVALID_OPERATION;
+        resp_code_ = UNC_DRV_RC_INVALID_OPERATION;
 
         break;
     }
@@ -373,10 +373,10 @@ KtRequestHandler<key, val, command_class>::execute(
    * @brief     - This method is the Template Specialization for parsing
    *              KT_Controller structures(Key,Val)
    * @param[in] - ServerSession, odl_drv_request_header_t,key_ctr_t,val_ctr_t
-   * @retval    -  drv_resp_code_t
+   * @retval    -  UncRespCode
    **/
 template<>
-drv_resp_code_t
+UncRespCode
 KtRequestHandler<key_ctr_t, val_ctr_t, controller_command>::parse_request(
     pfc::core::ipc::ServerSession &sess,
     unc::driver::odl_drv_request_header_t &request_header,
@@ -389,7 +389,7 @@ KtRequestHandler<key_ctr_t, val_ctr_t, controller_command>::parse_request(
     pfc_log_error("%s: GetArgument failed to read key struct "
                   "for UNC_KT_CONTROLLER (err = %u)",
                   PFC_FUNCNAME, ret_value);
-    return DRVAPI_RESPONSE_MISSING_KEY_STRUCT;
+    return UNC_DRV_RC_MISSING_KEY_STRUCT;
   }
 
   if ((request_header.header.operation == UNC_OP_CREATE)
@@ -399,39 +399,39 @@ KtRequestHandler<key_ctr_t, val_ctr_t, controller_command>::parse_request(
       pfc_log_error("%s: GetArgument failed to read value struct "
                     "for UNC_KT_CONTROLLER (err = %u)",
                     PFC_FUNCNAME, ret_value);
-      return DRVAPI_RESPONSE_MISSING_VAL_STRUCT;
+      return UNC_DRV_RC_MISSING_VAL_STRUCT;
     }
   }
 
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
   /**
    * @brief     - This method is template Specialization for parsing KT_ROOT
    * @param[in] - ServerSession,odl_drv_request_header_t,key_root_t
    *              val_root_t
-   * @retval    - drv_resp_code_t
+   * @retval    - UncRespCode
    **/
 template<>
-drv_resp_code_t
+UncRespCode
 KtRequestHandler<key_root_t, val_root_t, root_driver_command>::parse_request(
     pfc::core::ipc::ServerSession &sess,
     unc::driver::odl_drv_request_header_t &request_header,
     key_root_t &key_generic_,
     val_root_t &val_generic_) {
   request_header.key_type = UNC_KT_ROOT;
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
   /**
    * @brief    - This method is the template Specialization for
    *             KT ROOT command Execution
    * @param[in]- ServerSession, odl_drv_request_header_t, ControllerFramework*
-   *             drv_resp_code_t,key_root_t,val_root_t
-   * @retval   - drv_resp_code_t
+   *             UncRespCode,key_root_t,val_root_t
+   * @retval   - UncRespCode
    **/
 template<>
-drv_resp_code_t
+UncRespCode
 KtRequestHandler<key_root_t, val_root_t, root_driver_command>::execute(
     pfc::core::ipc::ServerSession &sess,
     unc::driver::odl_drv_request_header_t &request_header,
@@ -444,7 +444,7 @@ KtRequestHandler<key_root_t, val_root_t, root_driver_command>::execute(
   unc::driver::driver*  drv_ptr = NULL;
   unc::driver::controller* ctrl_ptr = NULL;
 
-  drv_resp_code_t resp_code_ = DRVAPI_RESPONSE_FAILURE;
+  UncRespCode resp_code_ = UNC_DRV_RC_ERR_GENERIC;
 
   controller_operation util_obj(ctrl_int, WRITE_TO_CONTROLLER, ctrl_name);
   ctrl_ptr = util_obj.get_controller_handle();
@@ -490,7 +490,7 @@ KtRequestHandler<key_root_t, val_root_t, root_driver_command>::execute(
       //  fetch all root child configuration
       resp_code_ = drv_command_ptr_->fetch_config(ctrl_ptr, NULL, cfg_list);
       pfc_log_debug("vtn resp_code_%u", resp_code_);
-      if (resp_code_ != DRVAPI_RESPONSE_SUCCESS) {
+      if (resp_code_ != UNC_RC_SUCCESS) {
         pfc_log_error("%s:GetDriverByControllerName failed VTN .rt,%u",
                        PFC_FUNCNAME, resp_code_);
         delete drv_command_ptr_;
@@ -526,7 +526,7 @@ KtRequestHandler<key_root_t, val_root_t, root_driver_command>::execute(
                                                      parent_key,
                                                      cfg_list);
           pfc_log_debug("resp_code_%u", resp_code_);
-          if (resp_code_!= DRVAPI_RESPONSE_SUCCESS) {
+          if (resp_code_!= UNC_RC_SUCCESS) {
             pfc_log_error("%s:GetDriverByControllerName failed .rt,%u",
                            PFC_FUNCNAME, resp_code_);
             delete drv_command_ptr_;
@@ -568,11 +568,11 @@ KtRequestHandler<key, val, command_class>::get_handler(unc_key_type_t keytype) {
 /**
  * @brief    - This method is the template Specialization for KT Controller command Execution
  * @param[in]- ServerSession, odl_drv_request_header_t, ControllerFramework*
- *             drv_resp_code_t,key_root_t,val_root_t
- * @retval   - drv_resp_code_t
+ *             UncRespCode,key_root_t,val_root_t
+ * @retval   - UncRespCode
  **/
 template<>
-drv_resp_code_t
+UncRespCode
 KtRequestHandler<key_ctr_t, val_ctr_t, controller_command>::execute(
     pfc::core::ipc::ServerSession &sess,
     unc::driver::odl_drv_request_header_t &request_header,
@@ -584,7 +584,7 @@ KtRequestHandler<key_ctr_t, val_ctr_t, controller_command>::execute(
   unc::driver::controller* ctl_ptr = NULL;
   std::string ctrl_name = std::string(request_header.controller_name);
 
-  drv_resp_code_t resp_code_ = DRVAPI_RESPONSE_FAILURE;
+  UncRespCode resp_code_ = UNC_DRV_RC_ERR_GENERIC;
   switch (request_header.header.operation) {
     case UNC_OP_CREATE: {
       pfc_log_debug("%s: Creates new controller ", PFC_FUNCNAME);
@@ -594,9 +594,9 @@ KtRequestHandler<key_ctr_t, val_ctr_t, controller_command>::execute(
       PFC_ASSERT(drv_ptr != NULL);
       ctl_ptr = drv_ptr->add_controller(key_generic_, val_generic_);
       if (ctl_ptr != NULL) {
-        resp_code_ = DRVAPI_RESPONSE_SUCCESS;
+        resp_code_ = UNC_RC_SUCCESS;
       } else {
-        resp_code_ = DRVAPI_RESPONSE_FAILURE;
+        resp_code_ = UNC_DRV_RC_ERR_GENERIC;
         return resp_code_;
       }
       ctrl_int->AddController(ctrl_name, ctl_ptr, drv_ptr);
@@ -635,7 +635,7 @@ KtRequestHandler<key_ctr_t, val_ctr_t, controller_command>::execute(
     }
     default: {
       pfc_log_debug("%s: Operation not Support ", PFC_FUNCNAME);
-      resp_code_ = DRVAPI_RESPONSE_INVALID_OPERATION;
+      resp_code_ = UNC_DRV_RC_INVALID_OPERATION;
       break;
     }
   }
@@ -645,17 +645,17 @@ KtRequestHandler<key_ctr_t, val_ctr_t, controller_command>::execute(
   /**
    * @brief    - This method handles request received from platform layer
    * @param[in]- ServerSession, odl_drv_request_header_t,ControllerFramework*
-   * @retval   - drv_resp_code_t
+   * @retval   - UncRespCode
    **/
 template<typename key, typename val, class command_class>
-drv_resp_code_t
+UncRespCode
 KtRequestHandler<key, val, command_class>::handle_request(
     pfc::core::ipc::ServerSession &sess,
     unc::driver::odl_drv_request_header_t &request_header,
     unc::driver::ControllerFramework* ctrl_int) {
   ODC_FUNC_TRACE;
 
-  drv_resp_code_t resp_code_ = DRVAPI_RESPONSE_FAILURE;
+  UncRespCode resp_code_ = UNC_DRV_RC_ERR_GENERIC;
   key key_generic_;
   val val_generic_;
   memset(&key_generic_, 0, sizeof(key));
@@ -666,10 +666,10 @@ KtRequestHandler<key, val, command_class>::handle_request(
 
   resp_code_ = parse_request(sess, request_header, key_generic_, val_generic_);
 
-  if (resp_code_ == DRVAPI_RESPONSE_SUCCESS) {
+  if (resp_code_ == UNC_RC_SUCCESS) {
     resp_code_ = execute(sess, request_header, ctrl_int,
                          key_generic_, val_generic_);
-    if (resp_code_ != DRVAPI_RESPONSE_SUCCESS) {
+    if (resp_code_ != UNC_RC_SUCCESS) {
        pfc_log_error("%s: execute return err with resp_code(err = %u)",
                PFC_FUNCNAME, resp_code_);
     }
@@ -681,7 +681,7 @@ KtRequestHandler<key, val, command_class>::handle_request(
   resp_code_ = handle_response(sess, request_header, ctrl_int,
                        key_generic_, val_generic_, resp_code_);
 
-  if (resp_code_ != DRVAPI_RESPONSE_SUCCESS) {
+  if (resp_code_ != UNC_RC_SUCCESS) {
     pfc_log_error("%s:. Failed to send response(err = %u)",
                   PFC_FUNCNAME, resp_code_);
   }
@@ -692,10 +692,10 @@ KtRequestHandler<key, val, command_class>::handle_request(
   /**
    * @brief    - This method forms the command from ConfigNode pointer
    * @param[in]- ConfigNode*, controller*, driver*
-   * @retval   - drv_resp_code_t
+   * @retval   - UncRespCode
    **/
 template<typename key, typename val, class command_class>
-drv_resp_code_t
+UncRespCode
 KtRequestHandler<key, val, command_class>::execute_cmd(
     unc::vtndrvcache::ConfigNode *cfgptr,
     unc::driver::controller* conn,
@@ -705,7 +705,7 @@ KtRequestHandler<key, val, command_class>::execute_cmd(
       dynamic_cast <unc::vtndrvcache::CacheElementUtil
       <key, val, uint32_t> * > (cfgptr);
 
-  drv_resp_code_t resp_code_ = DRVAPI_RESPONSE_FAILURE;
+  UncRespCode resp_code_ = UNC_DRV_RC_ERR_GENERIC;
 
   PFC_ASSERT(cache_element_ptr != NULL);
 
@@ -744,7 +744,7 @@ KtRequestHandler<key, val, command_class>::execute_cmd(
       break;
     default:
       pfc_log_error("%s: Invalid operation  ", PFC_FUNCNAME);
-      resp_code_ = DRVAPI_RESPONSE_INVALID_OPERATION;
+      resp_code_ = UNC_DRV_RC_INVALID_OPERATION;
 
       pfc_log_debug("deleted config_cmd_ptr");
       delete config_cmd_ptr;
@@ -754,7 +754,7 @@ KtRequestHandler<key, val, command_class>::execute_cmd(
   }
 
   // Revoke the commit with triggring audit for any failed Operation
-  if (resp_code_ != DRVAPI_RESPONSE_SUCCESS) {
+  if (resp_code_ != UNC_RC_SUCCESS) {
     pfc_log_debug("Revoke the commit with triggring audit");
     config_cmd_ptr->revoke(conn);
   }
@@ -769,26 +769,26 @@ KtRequestHandler<key, val, command_class>::execute_cmd(
    * @brief     - This method handles response from controller,
    *              doesnot support audit
    * @param[in] - ServerSession, odl_drv_request_header_t,ControllerFramework*,
-   *              key,val,drv_resp_code_t
-   * @retval    - drv_resp_code_t
+   *              key,val,UncRespCode
+   * @retval    - UncRespCode
    **/
 template<typename key, typename val, class command_class>
-drv_resp_code_t
+UncRespCode
 KtRequestHandler<key, val, command_class>::handle_response(
     pfc::core::ipc::ServerSession &sess,
     unc::driver::odl_drv_request_header_t &request_header,
     unc::driver::ControllerFramework* ctrl_int,
     key &key_generic_,
     val &val_generic_,
-    drv_resp_code_t &controller_resp_code_ ) {
+    UncRespCode &controller_resp_code_ ) {
   ODC_FUNC_TRACE;
 
   unc::driver::odl_drv_response_header_t resp_hdr;
   uint32_t err_= 0;
   create_response_header(request_header, resp_hdr, controller_resp_code_);
-  drv_resp_code_t resp_code_ = DRVAPI_RESPONSE_FAILURE;
+  UncRespCode resp_code_ = UNC_DRV_RC_ERR_GENERIC;
   resp_code_ = populate_response_header(sess, resp_hdr);
-  if (resp_code_ != DRVAPI_RESPONSE_SUCCESS) {
+  if (resp_code_ != UNC_RC_SUCCESS) {
     pfc_log_error("%s: populate_response_header failed with ret_code ,%u",
                   PFC_FUNCNAME, resp_code_);
     return resp_code_;
@@ -798,51 +798,51 @@ KtRequestHandler<key, val, command_class>::handle_response(
   if (err_ != 0) {
     pfc_log_error("%s: Failed to send resp code:(err = %d)",
                   PFC_FUNCNAME, resp_code_);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   err_ = sess.addOutput((uint32_t) resp_hdr.key_type);
   if (err_ != 0) {
     pfc_log_error("%s: Failed to send driver data key type: (err = %d)",
                   PFC_FUNCNAME, resp_code_);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
   if (resp_hdr.header.data_type != UNC_DT_RUNNING) {
     uint32_t ret_code = sess.addOutput(key_generic_);
     if (ret_code) {
       pfc_log_error("%s: addOutput failed with ret_code ,%u",
                     PFC_FUNCNAME, ret_code);
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
   }
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 
   /**
    * @brief     - This method handles response from controller for Audit
    * @param[in] - ServerSession, odl_drv_request_header_t,ControllerFramework*,
-   *              key_root_t,val_root_t,drv_resp_code_t
-   * @retval    - drv_resp_code_t
+   *              key_root_t,val_root_t,UncRespCode
+   * @retval    - UncRespCode
    **/
 template<>
-drv_resp_code_t
+UncRespCode
 KtRequestHandler<key_root_t, val_root_t, root_driver_command>::handle_response(
     pfc::core::ipc::ServerSession &sess,
     unc::driver::odl_drv_request_header_t &request_header,
     unc::driver::ControllerFramework* ctrl_int,
     key_root_t &key_generic_,
     val_root_t &val_generic_,
-    drv_resp_code_t &controller_resp_code_ ) {
+    UncRespCode &controller_resp_code_ ) {
   ODC_FUNC_TRACE;
   controller* ctr = NULL;
   memset(&key_generic_, 0, sizeof(key_root_t));
 
   unc::driver::odl_drv_response_header_t resp_hdr;
   create_response_header(request_header, resp_hdr, controller_resp_code_);
-  drv_resp_code_t resp_code_ = DRVAPI_RESPONSE_FAILURE;
+  UncRespCode resp_code_ = UNC_DRV_RC_ERR_GENERIC;
   resp_code_ = populate_response_header(sess, resp_hdr);
-  if (resp_code_ != DRVAPI_RESPONSE_SUCCESS) {
+  if (resp_code_ != UNC_RC_SUCCESS) {
     pfc_log_error("%s: populate_response_header failed"
                   "with ret_code root ,%u", PFC_FUNCNAME, resp_code_);
     return resp_code_;
@@ -856,18 +856,18 @@ KtRequestHandler<key_root_t, val_root_t, root_driver_command>::handle_response(
     if (ctr != NULL) {
       if (ctr->controller_cache == NULL) {
         pfc_log_error("Not getting controller_cache ");
-        return DRVAPI_RESPONSE_FAILURE;
+        return UNC_DRV_RC_ERR_GENERIC;
       }
       uint32_t size = ctr->controller_cache->audit_cfg_list_count();
       pfc_log_debug("config node size is %d for controller %s",
                     size, ctr_name.c_str());
       //  Not Success and Error Case check for Reps
       if ((size == 0) &&
-          (resp_hdr.result == DRVAPI_RESPONSE_NO_SUCH_INSTANCE)) {
+          (resp_hdr.result == UNC_RC_NO_SUCH_INSTANCE)) {
         pfc_log_debug("%s: Value list empty and Response"
                       "header success", PFC_FUNCNAME);
         pfc_log_debug("%s: Adding Root key only", PFC_FUNCNAME);
-        sess.addOutput((uint32_t) DRVAPI_RESPONSE_NO_SUCH_INSTANCE);
+        sess.addOutput((uint32_t) UNC_RC_NO_SUCH_INSTANCE);
         sess.addOutput((uint32_t) UNC_KT_ROOT);
         sess.addOutput(key_generic_);
 
@@ -876,8 +876,8 @@ KtRequestHandler<key_root_t, val_root_t, root_driver_command>::handle_response(
         ctr->controller_cache = NULL;
 
         pfc_log_trace("ResponseHandler::%s Exiting", PFC_FUNCNAME);
-        return DRVAPI_RESPONSE_SUCCESS;
-      } else if (resp_hdr.result != DRVAPI_RESPONSE_SUCCESS) {
+        return UNC_RC_SUCCESS;
+      } else if (resp_hdr.result != UNC_RC_SUCCESS) {
         pfc_log_debug("%s: Response header result Error",
                       PFC_FUNCNAME);
         pfc_log_debug("%s: Adding Root Key only", PFC_FUNCNAME);
@@ -888,7 +888,7 @@ KtRequestHandler<key_root_t, val_root_t, root_driver_command>::handle_response(
         delete  ctr->controller_cache;
         ctr->controller_cache = NULL;
         pfc_log_trace("ResponseHandler::%s Exiting", PFC_FUNCNAME);
-        return DRVAPI_RESPONSE_FAILURE;
+        return UNC_DRV_RC_ERR_GENERIC;
       }
 
       std::auto_ptr<unc::vtndrvcache::CommonIterator>
@@ -899,7 +899,7 @@ KtRequestHandler<key_root_t, val_root_t, root_driver_command>::handle_response(
       if (err_ != 0) {
         pfc_log_fatal("%s: Failed to send resp code audit:(err = %d)",
                       PFC_FUNCNAME, err_);
-        return DRVAPI_RESPONSE_FAILURE;
+        return UNC_DRV_RC_ERR_GENERIC;
       }
 
       bool first = true;
@@ -913,7 +913,7 @@ KtRequestHandler<key_root_t, val_root_t, root_driver_command>::handle_response(
           delete  ctr->controller_cache;
           ctr->controller_cache = NULL;
 
-          return DRVAPI_RESPONSE_FAILURE;
+          return UNC_DRV_RC_ERR_GENERIC;
         }
         if (first) {
           first = false;
@@ -931,7 +931,7 @@ KtRequestHandler<key_root_t, val_root_t, root_driver_command>::handle_response(
           delete  ctr->controller_cache;
           ctr->controller_cache = NULL;
 
-          return DRVAPI_RESPONSE_FAILURE;
+          return UNC_DRV_RC_ERR_GENERIC;
         }
         pfc_log_debug("Add key type success");
 
@@ -947,7 +947,7 @@ KtRequestHandler<key_root_t, val_root_t, root_driver_command>::handle_response(
           delete  ctr->controller_cache;
           ctr->controller_cache = NULL;
 
-          return DRVAPI_RESPONSE_FAILURE;
+          return UNC_DRV_RC_ERR_GENERIC;
         }
 
         pfc_log_debug("Add key success");
@@ -958,7 +958,7 @@ KtRequestHandler<key_root_t, val_root_t, root_driver_command>::handle_response(
           delete  ctr->controller_cache;
           ctr->controller_cache = NULL;
 
-          return DRVAPI_RESPONSE_FAILURE;
+          return UNC_DRV_RC_ERR_GENERIC;
         }
         pfc_log_debug("Add val success");
       }  // for loop
@@ -967,21 +967,21 @@ KtRequestHandler<key_root_t, val_root_t, root_driver_command>::handle_response(
       ctr->controller_cache = NULL;
     } else {
       pfc_log_error("%s: ctr is NULL", PFC_FUNCNAME);
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     }
     pfc_log_debug("UNC_DT_RUNNING processing complete");
   } else {
        pfc_log_error("%s: unsupported datatype %u",
           PFC_FUNCNAME, resp_hdr.header.data_type);
-       return DRVAPI_RESPONSE_FAILURE;
+       return UNC_DRV_RC_ERR_GENERIC;
   }
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
   /**
    * @brief    - This method creates the Response Header
    * @param[in]- odl_drv_response_header_t,
-   *             odl_drv_request_header_t,drv_resp_code_t
+   *             odl_drv_request_header_t,UncRespCode
    * @retval   - void
    */
 template<typename key, typename val, class command_class>
@@ -989,7 +989,7 @@ void
 KtRequestHandler<key, val, command_class>::create_response_header(
     unc::driver::odl_drv_request_header_t &reqhdr,
     unc::driver::odl_drv_response_header_t &resphdr,
-    drv_resp_code_t &resp_code_) {
+    UncRespCode &resp_code_) {
   memset(&resphdr, 0, sizeof(resphdr));
 
   /* Copy parameters from the request header to the response header. */
@@ -1024,16 +1024,16 @@ KtRequestHandler<key, val, command_class>::create_response_header(
   /**
    * @brief    - This method populates the Response Header
    * @param[in]- ServerSession, odl_drv_response_header_t
-   * @retval   - drv_resp_code_t
+   * @retval   - UncRespCode
    **/
 template<typename key, typename val, class command_class>
-drv_resp_code_t
+UncRespCode
 KtRequestHandler<key, val, command_class>::populate_response_header(
     pfc::core::ipc::ServerSession &sess,
     unc::driver::odl_drv_response_header_t &resp_hdr) {
   ODC_FUNC_TRACE;
 
-  uint32_t err = DRVAPI_RESPONSE_FAILURE;
+  uint32_t err = UNC_DRV_RC_ERR_GENERIC;
 
   const char* ctr_name =
       reinterpret_cast<const char*> (resp_hdr.controller_name);
@@ -1057,7 +1057,7 @@ KtRequestHandler<key, val, command_class>::populate_response_header(
   if (err) {
     pfc_log_fatal("%s: Failed to send client session id: (err = %d)",
                   PFC_FUNCNAME, err);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   /* Sends config_id */
@@ -1065,7 +1065,7 @@ KtRequestHandler<key, val, command_class>::populate_response_header(
   if (err) {
     pfc_log_fatal("%s: Failed to send configurationid: (err = %d)",
                   PFC_FUNCNAME, err);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   /* Sends controller_name */
@@ -1075,7 +1075,7 @@ KtRequestHandler<key, val, command_class>::populate_response_header(
   if (err) {
     pfc_log_fatal("%s: Failed to send controller id: (err = %d)", PFC_FUNCNAME,
                   err);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   /* Sends domain-id*/
@@ -1084,7 +1084,7 @@ KtRequestHandler<key, val, command_class>::populate_response_header(
   err = sess.addOutput(domain_id);
   if (err) {
     pfc_log_fatal("%s: Failed to send domain id:(err = %d)", PFC_FUNCNAME, err);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   /* Sends operation */
@@ -1092,7 +1092,7 @@ KtRequestHandler<key, val, command_class>::populate_response_header(
   if (err) {
     pfc_log_fatal("%s: Failed to send driver data operation (err = %d)",
                   PFC_FUNCNAME, err);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   /* Sends max-rep-count */
@@ -1100,7 +1100,7 @@ KtRequestHandler<key, val, command_class>::populate_response_header(
   if (err) {
     pfc_log_fatal("%s: Failed to send driver data max_rep_count: (err = %d)",
                   PFC_FUNCNAME, err);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   /* Sends option1 */
@@ -1108,7 +1108,7 @@ KtRequestHandler<key, val, command_class>::populate_response_header(
   if (err) {
     pfc_log_fatal("%s: Failed to send driver data option1 : (err = %d)",
                   PFC_FUNCNAME, err);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   /* Sends option2 */
@@ -1116,7 +1116,7 @@ KtRequestHandler<key, val, command_class>::populate_response_header(
   if (err) {
     pfc_log_fatal("%s: Failed to send driver data option2 : (err = %d)",
                   PFC_FUNCNAME, err);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
   /* Sends data type */
@@ -1124,10 +1124,10 @@ KtRequestHandler<key, val, command_class>::populate_response_header(
   if (err) {
     pfc_log_fatal("%s: Failed to send driver data data_type: (err = %d)",
                   PFC_FUNCNAME, err);
-    return DRVAPI_RESPONSE_FAILURE;
+    return UNC_DRV_RC_ERR_GENERIC;
   }
 
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
   /**
index 67988bf0e9a167c7bd67eaf8a48661e01740fe62..d1db4afea3ed0070a56e7cff0be9dad5934caea3 100644 (file)
@@ -256,6 +256,24 @@ class DriverTxnInterface : public unc::tclib::TcLibInterface {
     return unc::tclib::TC_SUCCESS;
   }
 
+  /**
+   * @brief      Handling of audit start in driver modules for audit operation
+   * @param[in]  session_id
+   *             session on which audit request sent (user audit)
+   *             session id will be 0 for driver audit
+   * @param[in]  ctr_type controller type openflow/overlay/legacy
+   * @param[in]  controller_id controller id intended for audit
+   * @param[in]  force_reconnect set to audit controller after reconnecting.
+   * @retval     TC_SUCCESS audit start success
+   * @retval     TC_FAILURE audit start failed
+   */
+  unc::tclib::TcCommonRet HandleAuditStart(uint32_t session_id,
+                                           unc_keytype_ctrtype_t ctr_type,
+                                           std::string controller_id,
+                                           pfc_bool_t force_reconnect) {
+    return unc::tclib::TC_SUCCESS;
+  }
+
   /**
    * @brief       - Handles Audit end
    * @param[in]   - session id
index a6a37fdebca9455790766a1bdb1ac34bd67ec0af..28f358b446489f887d8f5801d2b7a1e5fc1f9780 100644 (file)
@@ -111,7 +111,7 @@ pfc_bool_t VtnDrvIntf::init(void) {
           vbrif_req));
 
   KtHandler* vbrvlanmap_req = new unc::driver::KtRequestHandler<key_vlan_map_t,
-      val_vlan_map_t,
+      pfcdrv_val_vlan_map_t,
       unc::driver::vbrvlanmap_driver_command> (NULL);
 
   if (NULL == vbrvlanmap_req) {
@@ -172,7 +172,7 @@ pfc_ipcresp_t VtnDrvIntf::ipcService(pfc::core::ipc::ServerSession &sess,
 
   pfc::core::ipc::ServerSession* p_sess=&sess;
   odl_drv_request_header_t request_hdr;
-  drv_resp_code_t resp_code = DRVAPI_RESPONSE_FAILURE;
+  UncRespCode resp_code = UNC_DRV_RC_ERR_GENERIC;
   memset(&request_hdr, 0, sizeof(request_hdr));
   VtnDrvRetEnum result = get_request_header(p_sess, request_hdr);
 
@@ -199,11 +199,11 @@ pfc_ipcresp_t VtnDrvIntf::ipcService(pfc::core::ipc::ServerSession &sess,
   }
 
   resp_code = hnd_ptr->handle_request(sess, request_hdr, ctrl_inst_);
-  if (resp_code != DRVAPI_RESPONSE_SUCCESS) {
+  if (resp_code != UNC_RC_SUCCESS) {
     pfc_log_debug("handle_request fail for key:%d", request_hdr.key_type);
     return PFC_IPCRESP_FATAL;
   }
-  return DRVAPI_RESPONSE_SUCCESS;
+  return UNC_RC_SUCCESS;
 }
 
 
index af8c96f5a17dac4dfd84057f06fc104b48b0e10d..3e005b937ad6a9bcc6c6b249b7812a5bc1cba426 100644 (file)
@@ -85,7 +85,7 @@ unc::tclib::TcCommonRet DriverTxnInterface::HandleCommitGlobalCommit(
         pfc_log_debug("%s Controller status is down, send disconnected", \
                       PFC_FUNCNAME);
         tclib_ptr->TcLibWriteControllerInfo(ctr_name,
-                      (uint32_t)DRVAPI_RESPONSE_CONTROLLER_DISCONNECTED, 0);
+                      (uint32_t)UNC_RC_CTR_DISCONNECTED, 0);
         continue;
       }
     }
@@ -104,7 +104,7 @@ unc::tclib::TcCommonRet DriverTxnInterface::HandleCommitGlobalCommit(
       pfc_log_debug("TcLibWriteControllerInfo for controller:%s",
                     ctr_name.c_str());
       tclib_ptr->TcLibWriteControllerInfo(ctr_name,
-                                    (uint32_t)DRVAPI_RESPONSE_SUCCESS, 0);
+                                    (uint32_t)UNC_RC_SUCCESS, 0);
     }
   }
   if (Abort == PFC_TRUE)
@@ -225,7 +225,7 @@ unc::tclib::TcCommonRet DriverTxnInterface::HandleCommitVoteRequest(
   std::string ctr_name;
   driver* drv = NULL;
   controller* ctr = NULL;
-  uint32_t retc = DRVAPI_RESPONSE_FAILURE;
+  uint32_t retc = UNC_DRV_RC_ERR_GENERIC;
   ctr_iter  iter;
   unc::tclib::TcCommonRet ret_code = unc::tclib::TC_SUCCESS;
   unc::tclib::TcLibModule* tclib_ptr =
@@ -245,7 +245,7 @@ unc::tclib::TcCommonRet DriverTxnInterface::HandleCommitVoteRequest(
       pfc_log_debug("%s Controller status is down, send disconnected", \
                     PFC_FUNCNAME);
       tclib_ptr->TcLibWriteControllerInfo(ctr_name,
-                    (uint32_t)DRVAPI_RESPONSE_CONTROLLER_DISCONNECTED, 0);
+                    (uint32_t)UNC_RC_CTR_DISCONNECTED, 0);
       ret_code = unc::tclib::TC_SUCCESS;
       continue;
     }
@@ -265,7 +265,7 @@ unc::tclib::TcCommonRet DriverTxnInterface::HandleCommitVoteRequest(
         pfc_log_debug("Exiting HandleCommitVoteRequest");
         return unc::tclib::TC_FAILURE;
       } else {
-        retc = DRVAPI_RESPONSE_SUCCESS;
+        retc = UNC_RC_SUCCESS;
       }
     }
     if (ret_code == unc::tclib::TC_SUCCESS) {
@@ -293,7 +293,7 @@ unc::tclib::TcCommonRet DriverTxnInterface::HandleCommitCache
                                              controller* ctr,
                                              driver* drv) {
   ODC_FUNC_TRACE;
-  uint32_t retc = DRVAPI_RESPONSE_FAILURE;
+  uint32_t retc = UNC_DRV_RC_ERR_GENERIC;
   unc::tclib::TcCommonRet ret_code = unc::tclib::TC_FAILURE;
   PFC_ASSERT(ctr != NULL);
 
@@ -322,7 +322,7 @@ unc::tclib::TcCommonRet DriverTxnInterface::HandleCommitCache
       }
       PFC_ASSERT(hnd_ptr != NULL);
       retc = hnd_ptr->execute_cmd(cfgnode, ctr, drv);
-      if (retc == DRVAPI_RESPONSE_SUCCESS)
+      if (retc == UNC_RC_SUCCESS)
         ret_code = unc::tclib::TC_SUCCESS;
       // any command execution failed for controller write the error to Tclib
       if (ret_code != unc::tclib::TC_SUCCESS) {
index f47dae402fab29e6a85d9285cf9fff7993bafd8c..3a6a21210badcf5490da839963764de93db1ac19 100644 (file)
@@ -1,5 +1,5 @@
 --
--- Copyright (c) 2012-2013 NEC Corporation
+-- Copyright (c) 2012-2014 NEC Corporation
 -- All rights reserved.
 -- 
 -- This program and the accompanying materials are made available under the
@@ -30,9 +30,10 @@ create table if not exists s_controller_table (
   enable_audit smallint default 0,
   actual_version varchar(32),
   oper_status smallint default 0,
-  valid char(9),
+  port integer,
+  valid char(10),
   cs_row_status smallint,
-  cs_attr char(9
+  cs_attr char(10
   );
 
 create table if not exists s_ctr_domain_table(
@@ -73,9 +74,10 @@ create table if not exists c_controller_table (
   enable_audit smallint default 0,
   actual_version varchar(32),
   oper_status smallint default 0,
-  valid char(9),
+  port integer,
+  valid char(10),
   cs_row_status smallint,
-  cs_attr char(9
+  cs_attr char(10
   );
 
 create table if not exists c_ctr_domain_table(
@@ -116,9 +118,10 @@ create table if not exists r_controller_table (
   enable_audit smallint default 0,
   actual_version varchar(32),
   oper_status smallint default 0,
-  valid char(9),
+  port integer,
+  valid char(10),
   cs_row_status smallint default 5,
-  cs_attr char(9
+  cs_attr char(10
   );
 
 create table if not exists r_ctr_domain_table(
diff --git a/coordinator/sql/os_vtn_db_create.sql b/coordinator/sql/os_vtn_db_create.sql
new file mode 100644 (file)
index 0000000..26b5f88
--- /dev/null
@@ -0,0 +1,95 @@
+--
+-- Copyright (c) 2013-2014 NEC Corporation
+-- All rights reserved.
+-- 
+-- This program and the accompanying materials are made available under the
+-- terms of the Eclipse Public License v1.0 which accompanies this
+-- distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+--
+
+CREATE TABLE os_controller_tbl
+(
+  os_controller_id character varying(31) NOT NULL,
+  os_controller_counter integer NOT NULL DEFAULT 1,
+  CONSTRAINT pk_os_controller PRIMARY KEY (os_controller_counter),
+  CONSTRAINT ck_os_controller CHECK (os_controller_counter = 1)
+);
+
+CREATE TABLE os_free_counter_tbl
+(
+  os_res_id character varying(7) NOT NULL,
+  os_vtn_name character varying(31) NOT NULL,
+  os_res_counter integer NOT NULL,
+  CONSTRAINT pk_os_free_counter PRIMARY KEY (os_vtn_name, os_res_id, os_res_counter)
+); 
+
+CREATE TABLE os_vtn_tbl
+(
+  os_vtn_id integer NOT NULL,
+  os_vtn_name character varying(31) NOT NULL,
+  CONSTRAINT pk_os_vtn PRIMARY KEY (os_vtn_name),
+  CONSTRAINT max_val CHECK (os_vtn_id >= 0)
+);
+
+CREATE TABLE os_vbr_tbl
+(
+  os_vbr_id integer NOT NULL,
+  os_vtn_name character varying(31) NOT NULL,
+  os_vbr_name character varying(31) NOT NULL,
+  CONSTRAINT pk_os_vbr PRIMARY KEY (os_vtn_name, os_vbr_name),
+  CONSTRAINT fk_os_vbr FOREIGN KEY (os_vtn_name)
+      REFERENCES os_vtn_tbl (os_vtn_name) MATCH SIMPLE
+      ON UPDATE CASCADE ON DELETE CASCADE,
+  CONSTRAINT max_val CHECK (os_vbr_id >= 0)
+);
+CREATE TABLE os_vbr_if_tbl
+(
+  os_vbr_if_id integer NOT NULL,
+  os_vtn_name character varying(31) NOT NULL,
+  os_vbr_name character varying(31) NOT NULL,
+  os_vbr_if_name character varying(31) NOT NULL,
+  os_map_type character(7) NOT NULL,
+  os_logical_port_id character varying(319) NOT NULL,
+  CONSTRAINT pk_os_vbr_if PRIMARY KEY (os_vtn_name, os_vbr_name, os_vbr_if_name),
+  CONSTRAINT fk_os_vbr_if FOREIGN KEY (os_vtn_name, os_vbr_name)
+      REFERENCES os_vbr_tbl (os_vtn_name, os_vbr_name) MATCH SIMPLE
+      ON UPDATE CASCADE ON DELETE CASCADE,
+  CONSTRAINT max_val CHECK (os_vbr_if_id >= 0)
+);
+
+CREATE TABLE os_vrt_tbl
+(
+  os_vtn_name character varying(31) NOT NULL,
+  os_vrt_name character varying(31) NOT NULL,
+  CONSTRAINT pk_os_vrt PRIMARY KEY (os_vtn_name, os_vrt_name),
+  CONSTRAINT fk_os_vrt FOREIGN KEY (os_vtn_name)
+      REFERENCES os_vtn_tbl (os_vtn_name) MATCH SIMPLE
+      ON UPDATE CASCADE ON DELETE CASCADE,
+  CONSTRAINT uk_vtn_name UNIQUE (os_vtn_name)
+);
+
+CREATE TABLE os_vrt_if_tbl
+(
+  os_vrt_if_id integer NOT NULL,
+  os_vtn_name character varying(31) NOT NULL,
+  os_vrt_name character varying(31) NOT NULL,
+  os_vrt_if_name character varying(31) NOT NULL,
+  os_vbr_name character varying(31) NOT NULL,
+  CONSTRAINT pk_os_vrt_if PRIMARY KEY (os_vtn_name, os_vrt_name, os_vrt_if_name),
+  CONSTRAINT fk_os_vrt_if FOREIGN KEY (os_vtn_name, os_vrt_name)
+      REFERENCES os_vrt_tbl (os_vtn_name, os_vrt_name) MATCH SIMPLE
+      ON UPDATE CASCADE ON DELETE CASCADE,
+  CONSTRAINT max_val CHECK (os_vrt_if_id > 0)
+);
+
+CREATE TABLE os_vrt_route_tbl
+(
+  os_vtn_name character varying(31) NOT NULL,
+  os_vrt_name character varying(31) NOT NULL,
+  os_vrt_route_name character varying(47) NOT NULL,
+  CONSTRAINT pk_os_vrt_route PRIMARY KEY (os_vtn_name, os_vrt_name, os_vrt_route_name),
+  CONSTRAINT fk_os_vrt_route FOREIGN KEY (os_vtn_name, os_vrt_name)
+      REFERENCES os_vrt_tbl (os_vtn_name, os_vrt_name) MATCH SIMPLE
+      ON UPDATE CASCADE ON DELETE CASCADE
+);
index 3e4f78d09b701f026cb0d6ab4e51812156e2f3c3..28fd4b173c087b26e810af7979164f481092476b 100644 (file)
@@ -1,5 +1,5 @@
 --
--- Copyright (c) 2012-2013 NEC Corporation
+-- Copyright (c) 2012-2014 NEC Corporation
 -- All rights reserved.
 -- 
 -- This program and the accompanying materials are made available under the
@@ -15,6 +15,7 @@ CREATE TABLE TC_UNC_CONF_TABLE (
 CREATE TABLE TC_RECOVERY_TABLE (
     database  integer DEFAULT 0,                            -- database to be audited
     date_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, -- timestamp
+    failover_instance integer DEFAULT 0,                    -- num of failovers occured
     operation integer DEFAULT 0                             -- operation that caused failover
 );
 
index a33514b3f41a2666e485aa932e85d790b893117c..36f9c86a72701c934f215652ea74519a2cb72644 100644 (file)
@@ -1,5 +1,5 @@
 --
--- Copyright (c) 2012-2013 NEC Corporation
+-- Copyright (c) 2012-2014 NEC Corporation
 -- All rights reserved.
 -- 
 -- This program and the accompanying materials are made available under the
@@ -84,10 +84,12 @@ CREATE TABLE su_vbr_vlanmap_tbl (
     logical_port_id varchar(320) default ' ',
     logical_port_id_valid smallint default 0,
     vlanid integer default 0,
+    bdry_ref_count bigint default 0,
     controller_name varchar(32) default ' ',
     domain_id varchar(32) default ' ',
     flags smallint default 0,
     valid_vlanid smallint default 0,
+    valid_bdry_ref_count smallint default 0,
     cs_rowstatus smallint default 3,
     cs_vlanid smallint default 3,
   PRIMARY KEY(vtn_name, vbridge_name, logical_port_id, logical_port_id_valid));
@@ -1064,7 +1066,8 @@ CREATE TABLE ca_vbr_tbl (
     cs_host_addr smallint default 3,
     cs_host_addr_mask smallint default 3,
     flags smallint default 0,
-  PRIMARY KEY(vtn_name, vbridge_name));
+  PRIMARY KEY(vtn_name, vbridge_name),
+  FOREIGN KEY(vtn_name) REFERENCES ca_vtn_tbl(vtn_name));
 
 CREATE TABLE ca_vbr_vlanmap_tbl (
     vtn_name varchar(32) default ' ',
@@ -1072,13 +1075,16 @@ CREATE TABLE ca_vbr_vlanmap_tbl (
     logical_port_id varchar(320) default ' ',
     logical_port_id_valid smallint default 0,
     vlanid integer default 0,
+    bdry_ref_count bigint default 0,
     controller_name varchar(32) default ' ',
     domain_id varchar(32) default ' ',
     flags smallint default 0,
     valid_vlanid smallint default 0,
+    valid_bdry_ref_count smallint default 0,
     cs_rowstatus smallint default 3,
     cs_vlanid smallint default 3,
-  PRIMARY KEY(vtn_name, vbridge_name, logical_port_id, logical_port_id_valid));
+  PRIMARY KEY(vtn_name, vbridge_name, logical_port_id, logical_port_id_valid),
+  FOREIGN KEY(vtn_name, vbridge_name) REFERENCES ca_vbr_tbl(vtn_name, vbridge_name));
 
 CREATE TABLE ca_vbr_if_tbl (
     vtn_name varchar(32) default ' ',
@@ -1114,7 +1120,8 @@ CREATE TABLE ca_vbr_if_tbl (
     cs_logical_port_id smallint default 3,
     cs_vlanid smallint default 3,
     cs_tagged smallint default 3,
-  PRIMARY KEY(vtn_name, vbridge_name, if_name));
+  PRIMARY KEY(vtn_name, vbridge_name, if_name),
+  FOREIGN KEY(vtn_name, vbridge_name) REFERENCES ca_vbr_tbl(vtn_name, vbridge_name));
 
 CREATE TABLE ca_vrt_tbl (
     vtn_name varchar(32) default ' ',
@@ -1136,7 +1143,8 @@ CREATE TABLE ca_vrt_tbl (
     cs_domain_id smallint default 3,
     cs_vrt_description smallint default 3,
     cs_dhcprelay_admin_status smallint default 3,
-  PRIMARY KEY(vtn_name, vrouter_name));
+  PRIMARY KEY(vtn_name, vrouter_name),
+  FOREIGN KEY(vtn_name) REFERENCES ca_vtn_tbl(vtn_name));
 
 CREATE TABLE ca_vrt_if_tbl (
     vtn_name varchar(32) default ' ',
@@ -1164,7 +1172,8 @@ CREATE TABLE ca_vrt_if_tbl (
     cs_mask smallint default 3,
     cs_mac_addr smallint default 3,
     cs_admin_status smallint default 3,
-  PRIMARY KEY(vtn_name, vrouter_name, if_name));
+  PRIMARY KEY(vtn_name, vrouter_name, if_name),
+  FOREIGN KEY(vtn_name, vrouter_name) REFERENCES ca_vrt_tbl(vtn_name, vrouter_name));
 
 CREATE TABLE ca_vnode_rename_tbl (
     ctrlr_vtn_name varchar(32) default ' ',
@@ -1212,7 +1221,8 @@ CREATE TABLE ca_vlink_tbl (
     cs_boundary_name smallint default 3,
     cs_vlanid smallint default 3,
     cs_description smallint default 3,
-  PRIMARY KEY(vtn_name, vlink_name));
+  PRIMARY KEY(vtn_name, vlink_name),
+  FOREIGN KEY(vtn_name) REFERENCES ca_vtn_tbl(vtn_name));
 
 CREATE TABLE ca_vlink_rename_tbl (
     ctrlr_vtn_name varchar(32) default ' ',
@@ -1237,7 +1247,8 @@ CREATE TABLE ca_static_ip_route_tbl (
     valid_metric smallint default 0,
     cs_rowstatus smallint default 3,
     cs_metric smallint default 3,
-  PRIMARY KEY(vtn_name, vrouter_name, dst_ip_addr, mask, next_hop_addr, nwm_name));
+  PRIMARY KEY(vtn_name, vrouter_name, dst_ip_addr, mask, next_hop_addr, nwm_name),
+  FOREIGN KEY(vtn_name, vrouter_name) REFERENCES ca_vrt_tbl(vtn_name, vrouter_name));
 
 CREATE TABLE ca_dhcp_relay_server_tbl (
     vtn_name varchar(32) default ' ',
@@ -1247,7 +1258,8 @@ CREATE TABLE ca_dhcp_relay_server_tbl (
     domain_id varchar(32) default ' ',
     flags smallint default 0,
     cs_rowstatus smallint default 3,
-  PRIMARY KEY(vtn_name, vrouter_name, server_ip_addr));
+  PRIMARY KEY(vtn_name, vrouter_name, server_ip_addr),
+  FOREIGN KEY(vtn_name, vrouter_name) REFERENCES ca_vrt_tbl(vtn_name, vrouter_name));
 
 CREATE TABLE ca_dhcp_relay_if_tbl (
     vtn_name varchar(32) default ' ',
@@ -1257,7 +1269,8 @@ CREATE TABLE ca_dhcp_relay_if_tbl (
     domain_id varchar(32) default ' ',
     flags smallint default 0,
     cs_rowstatus smallint default 3,
-  PRIMARY KEY(vtn_name, vrouter_name, if_name));
+  PRIMARY KEY(vtn_name, vrouter_name, if_name),
+  FOREIGN KEY(vtn_name, vrouter_name) REFERENCES ca_vrt_tbl(vtn_name, vrouter_name));
 
 CREATE TABLE ca_vbr_nwmon_grp_tbl (
     vtn_name varchar(32) default ' ',
@@ -1272,7 +1285,8 @@ CREATE TABLE ca_vbr_nwmon_grp_tbl (
     valid_oper_status smallint default 0,
     cs_rowstatus smallint default 3,
     cs_admin_status smallint default 3,
-  PRIMARY KEY(vtn_name, vbridge_name, nwm_name));
+  PRIMARY KEY(vtn_name, vbridge_name, nwm_name),
+  FOREIGN KEY(vtn_name, vbridge_name) REFERENCES ca_vbr_tbl(vtn_name, vbridge_name));
 
 CREATE TABLE ca_vbr_nwmon_host_tbl (
     vtn_name varchar(32) default ' ',
@@ -1298,7 +1312,8 @@ CREATE TABLE ca_vbr_nwmon_host_tbl (
     cs_failure_count smallint default 3,
     cs_recovery_count smallint default 3,
     cs_wait_time smallint default 3,
-  PRIMARY KEY(vtn_name, vbridge_name, nwm_name, host_address));
+  PRIMARY KEY(vtn_name, vbridge_name, nwm_name, host_address),
+  FOREIGN KEY(vtn_name, vbridge_name, nwm_name) REFERENCES ca_vbr_nwmon_grp_tbl(vtn_name, vbridge_name, nwm_name));
 
 CREATE TABLE ca_vunknown_tbl (
     vtn_name varchar(32) default ' ',
@@ -1314,7 +1329,8 @@ CREATE TABLE ca_vunknown_tbl (
     cs_description smallint default 3,
     cs_type smallint default 3,
     cs_domain_id smallint default 3,
-  PRIMARY KEY(vtn_name, vunknown_name));
+  PRIMARY KEY(vtn_name, vunknown_name),
+  FOREIGN KEY(vtn_name) REFERENCES ca_vtn_tbl(vtn_name));
 
 CREATE TABLE ca_vunknown_if_tbl (
     vtn_name varchar(32) default ' ',
@@ -1329,7 +1345,8 @@ CREATE TABLE ca_vunknown_if_tbl (
     cs_rowstatus smallint default 3,
     cs_description smallint default 3,
     cs_admin_status smallint default 3,
-  PRIMARY KEY(vtn_name, vunknown_name, if_name));
+  PRIMARY KEY(vtn_name, vunknown_name, if_name),
+  FOREIGN KEY(vtn_name, vunknown_name) REFERENCES ca_vunknown_tbl(vtn_name, vunknown_name));
 
 CREATE TABLE ca_vtep_tbl (
     vtn_name varchar(32) default ' ',
@@ -1348,7 +1365,8 @@ CREATE TABLE ca_vtep_tbl (
     cs_description smallint default 3,
     cs_controller_name smallint default 3,
     cs_domain_id smallint default 3,
-  PRIMARY KEY(vtn_name, vtep_name));
+  PRIMARY KEY(vtn_name, vtep_name),
+  FOREIGN KEY(vtn_name) REFERENCES ca_vtn_tbl(vtn_name));
 
 CREATE TABLE ca_vtep_if_tbl (
     vtn_name varchar(32) default ' ',
@@ -1378,7 +1396,8 @@ CREATE TABLE ca_vtep_if_tbl (
     cs_logical_port_id smallint default 3,
     cs_vlanid smallint default 3,
     cs_tagged smallint default 3,
-  PRIMARY KEY(vtn_name, vtep_name, if_name));
+  PRIMARY KEY(vtn_name, vtep_name, if_name),
+  FOREIGN KEY(vtn_name, vtep_name) REFERENCES ca_vtep_tbl(vtn_name, vtep_name));
 
 CREATE TABLE ca_vtep_grp_tbl (
     vtn_name varchar(32) default ' ',
@@ -1391,7 +1410,8 @@ CREATE TABLE ca_vtep_grp_tbl (
     cs_rowstatus smallint default 3,
     cs_controller_name smallint default 3,
     cs_description smallint default 3,
-  PRIMARY KEY(vtn_name, vtepgrp_name));
+  PRIMARY KEY(vtn_name, vtepgrp_name),
+  FOREIGN KEY(vtn_name) REFERENCES ca_vtn_tbl(vtn_name));
 
 CREATE TABLE ca_vtep_grp_mem_tbl (
     vtn_name varchar(32) default ' ',
@@ -1401,7 +1421,8 @@ CREATE TABLE ca_vtep_grp_mem_tbl (
     domain_id varchar(32) default ' ',
     flags smallint default 0,
     cs_rowstatus smallint default 3,
-  PRIMARY KEY(vtn_name, vtepgrp_name, vtepgrp_member_name));
+  PRIMARY KEY(vtn_name, vtepgrp_name, vtepgrp_member_name),
+  FOREIGN KEY(vtn_name, vtepgrp_name) REFERENCES ca_vtep_grp_tbl(vtn_name, vtepgrp_name));
 
 CREATE TABLE ca_vtunnel_tbl (
     vtn_name varchar(32) default ' ',
@@ -1429,7 +1450,8 @@ CREATE TABLE ca_vtunnel_tbl (
     cs_underlay_vtn_name smallint default 3,
     cs_vtepgrp_name smallint default 3,
     cs_label smallint default 3,
-  PRIMARY KEY(vtn_name, vtunnel_name));
+  PRIMARY KEY(vtn_name, vtunnel_name),
+  FOREIGN KEY(vtn_name) REFERENCES ca_vtn_tbl(vtn_name));
 
 CREATE TABLE ca_vtunnel_if_tbl (
     vtn_name varchar(32) default ' ',
@@ -1459,7 +1481,8 @@ CREATE TABLE ca_vtunnel_if_tbl (
     cs_logical_port_id smallint default 3,
     cs_vlanid smallint default 3,
     cs_tagged smallint default 3,
-  PRIMARY KEY(vtn_name, vtunnel_name, if_name));
+  PRIMARY KEY(vtn_name, vtunnel_name, if_name),
+  FOREIGN KEY(vtn_name, vtunnel_name) REFERENCES ca_vtunnel_tbl(vtn_name, vtunnel_name));
 
 CREATE TABLE ca_flowlist_tbl (
     flowlist_name varchar(33) default ' ',
@@ -1557,7 +1580,8 @@ CREATE TABLE ca_flowlist_entry_tbl (
     cs_icmp_code smallint default 3,
     cs_icmpv6_type smallint default 3,
     cs_icmpv6_code smallint default 3,
-  PRIMARY KEY(flowlist_name, sequence_num));
+  PRIMARY KEY(flowlist_name, sequence_num),
+  FOREIGN KEY(flowlist_name) REFERENCES ca_flowlist_tbl(flowlist_name));
 
 CREATE TABLE ca_flowlist_entry_ctrlr_tbl (
     flowlist_name varchar(33) default ' ',
@@ -1690,7 +1714,8 @@ CREATE TABLE ca_policingprofile_entry_tbl (
     cs_red_priority smallint default 3,
     cs_red_dscp smallint default 3,
     cs_red_drop smallint default 3,
-  PRIMARY KEY(policingprofile_name, sequence_num));
+  PRIMARY KEY(policingprofile_name, sequence_num),
+  FOREIGN KEY(policingprofile_name) REFERENCES ca_policingprofile_tbl(policingprofile_name));
 
 CREATE TABLE ca_policingprofile_entry_ctrlr_tbl (
     policingprofile_name varchar(33) default ' ',
@@ -1741,7 +1766,8 @@ CREATE TABLE ca_vtn_flowfilter_tbl (
     direction smallint default 0,
     flags smallint default 0,
     cs_rowstatus smallint default 3,
-  PRIMARY KEY(vtn_name, direction));
+  PRIMARY KEY(vtn_name, direction),
+  FOREIGN KEY(vtn_name) REFERENCES ca_vtn_tbl(vtn_name));
 
 CREATE TABLE ca_vtn_flowfilter_ctrlr_tbl (
     vtn_name varchar(32) default ' ',
@@ -1773,7 +1799,8 @@ CREATE TABLE ca_vtn_flowfilter_entry_tbl (
     cs_nwn_name smallint default 3,
     cs_dscp smallint default 3,
     cs_priority smallint default 3,
-  PRIMARY KEY(vtn_name, direction, sequence_num));
+  PRIMARY KEY(vtn_name, direction, sequence_num),
+  FOREIGN KEY(vtn_name, direction) REFERENCES ca_vtn_flowfilter_tbl(vtn_name, direction));
 
 CREATE TABLE ca_vtn_flowfilter_entry_ctrlr_tbl (
     vtn_name varchar(32) default ' ',
@@ -1803,7 +1830,8 @@ CREATE TABLE ca_vbr_flowfilter_tbl (
     domain_id varchar(32) default ' ',
     flags smallint default 0,
     cs_rowstatus smallint default 3,
-  PRIMARY KEY(vtn_name, vbr_name, direction));
+  PRIMARY KEY(vtn_name, vbr_name, direction),
+  FOREIGN KEY(vtn_name, vbr_name) REFERENCES ca_vbr_tbl(vtn_name, vbridge_name));
 
 CREATE TABLE ca_vbr_flowfilter_entry_tbl (
     vtn_name varchar(32) default ' ',
@@ -1841,7 +1869,8 @@ CREATE TABLE ca_vbr_flowfilter_entry_tbl (
     cs_nwm_name smallint default 3,
     cs_dscp smallint default 3,
     cs_priority smallint default 3,
-  PRIMARY KEY(vtn_name, vbr_name, direction, sequence_num));
+  PRIMARY KEY(vtn_name, vbr_name, direction, sequence_num),
+  FOREIGN KEY(vtn_name, vbr_name, direction) REFERENCES ca_vbr_flowfilter_tbl(vtn_name, vbr_name, direction));
 
 CREATE TABLE ca_vbr_if_flowfilter_tbl (
     vtn_name varchar(32) default ' ',
@@ -1852,7 +1881,8 @@ CREATE TABLE ca_vbr_if_flowfilter_tbl (
     domain_id varchar(32) default ' ',
     flags smallint default 0,
     cs_rowstatus smallint default 3,
-  PRIMARY KEY(vtn_name, vbr_name, vbr_if_name, direction));
+  PRIMARY KEY(vtn_name, vbr_name, vbr_if_name, direction),
+  FOREIGN KEY(vtn_name, vbr_name, vbr_if_name) REFERENCES ca_vbr_if_tbl(vtn_name, vbridge_name, if_name));
 
 CREATE TABLE ca_vbr_if_flowfilter_entry_tbl (
     vtn_name varchar(32) default ' ',
@@ -1891,7 +1921,8 @@ CREATE TABLE ca_vbr_if_flowfilter_entry_tbl (
     cs_nwm_name smallint default 3,
     cs_dscp smallint default 3,
     cs_priority smallint default 3,
-  PRIMARY KEY(vtn_name, vbr_name, vbr_if_name, direction, sequence_num));
+  PRIMARY KEY(vtn_name, vbr_name, vbr_if_name, direction, sequence_num),
+  FOREIGN KEY(vtn_name, vbr_name, vbr_if_name, direction) REFERENCES ca_vbr_if_flowfilter_tbl(vtn_name, vbr_name, vbr_if_name, direction));
 
 CREATE TABLE ca_vrt_if_flowfilter_tbl (
     vtn_name varchar(32) default ' ',
@@ -1902,7 +1933,8 @@ CREATE TABLE ca_vrt_if_flowfilter_tbl (
     domain_id varchar(32) default ' ',
     flags smallint default 0,
     cs_rowstatus smallint default 3,
-  PRIMARY KEY(vtn_name, vrt_name, vrt_if_name, direction));
+  PRIMARY KEY(vtn_name, vrt_name, vrt_if_name, direction),
+  FOREIGN KEY(vtn_name, vrt_name, vrt_if_name) REFERENCES ca_vrt_if_tbl(vtn_name, vrouter_name, if_name));
 
 CREATE TABLE ca_vrt_if_flowfilter_entry_tbl (
     vtn_name varchar(32) default ' ',
@@ -1941,7 +1973,8 @@ CREATE TABLE ca_vrt_if_flowfilter_entry_tbl (
     cs_nwm_name smallint default 3,
     cs_dscp smallint default 3,
     cs_priority smallint default 3,
-  PRIMARY KEY(vtn_name, vrt_name, vrt_if_name, direction, sequence_num));
+  PRIMARY KEY(vtn_name, vrt_name, vrt_if_name, direction, sequence_num),
+  FOREIGN KEY(vtn_name, vrt_name, vrt_if_name, direction) REFERENCES ca_vrt_if_flowfilter_tbl(vtn_name, vrt_name, vrt_if_name, direction));
 
 CREATE TABLE ca_vtn_policingmap_tbl (
     vtn_name varchar(32) default ' ',
@@ -1950,7 +1983,8 @@ CREATE TABLE ca_vtn_policingmap_tbl (
     valid_policername smallint default 0,
     cs_rowstatus smallint default 3,
     cs_policername smallint default 3,
-  PRIMARY KEY(vtn_name));
+  PRIMARY KEY(vtn_name),
+  FOREIGN KEY(vtn_name) REFERENCES ca_vtn_tbl(vtn_name));
 
 CREATE TABLE ca_vtn_policingmap_ctrlr_tbl (
     vtn_name varchar(32) default ' ',
@@ -1973,7 +2007,8 @@ CREATE TABLE ca_vbr_policingmap_tbl (
     valid_policername smallint default 0,
     cs_rowstatus smallint default 3,
     cs_policername smallint default 3,
-  PRIMARY KEY(vtn_name, vbr_name));
+  PRIMARY KEY(vtn_name, vbr_name),
+  FOREIGN KEY(vtn_name, vbr_name) REFERENCES ca_vbr_tbl(vtn_name, vbridge_name));
 
 CREATE TABLE ca_vbr_if_policingmap_tbl (
     vtn_name varchar(32) default ' ',
@@ -1986,7 +2021,8 @@ CREATE TABLE ca_vbr_if_policingmap_tbl (
     valid_policername smallint default 0,
     cs_rowstatus smallint default 3,
     cs_policername smallint default 3,
-  PRIMARY KEY(vtn_name, vbr_name, vbr_if_name));
+  PRIMARY KEY(vtn_name, vbr_name, vbr_if_name),
+  FOREIGN KEY(vtn_name, vbr_name, vbr_if_name) REFERENCES ca_vbr_if_tbl(vtn_name, vbridge_name, if_name));
 
 CREATE TABLE ca_ctrlr_tbl (
     name varchar(32) default ' ',
@@ -2069,10 +2105,12 @@ CREATE TABLE ru_vbr_vlanmap_tbl (
     logical_port_id varchar(320) default ' ',
     logical_port_id_valid smallint default 0,
     vlanid integer default 0,
+    bdry_ref_count bigint default 0,
     controller_name varchar(32) default ' ',
     domain_id varchar(32) default ' ',
     flags smallint default 0,
     valid_vlanid smallint default 0,
+    valid_bdry_ref_count smallint default 0,
     cs_rowstatus smallint default 3,
     cs_vlanid smallint default 3,
   PRIMARY KEY(vtn_name, vbridge_name, logical_port_id, logical_port_id_valid));
@@ -2113,8 +2151,6 @@ CREATE TABLE ru_vbr_if_tbl (
     cs_tagged smallint default 3,
   PRIMARY KEY(vtn_name, vbridge_name, if_name));
 
-CREATE INDEX index_for_show_perf ON ru_vbr_if_tbl (vtn_name, vex_name, valid_vex_name);
-
 CREATE TABLE ru_vrt_tbl (
     vtn_name varchar(32) default ' ',
     vrouter_name varchar(32) default ' ',
@@ -3059,10 +3095,12 @@ CREATE TABLE im_vbr_vlanmap_tbl (
     logical_port_id varchar(320) default ' ',
     logical_port_id_valid smallint default 0,
     vlanid integer default 0,
+    bdry_ref_count bigint default 0,
     controller_name varchar(32) default ' ',
     domain_id varchar(32) default ' ',
     flags smallint default 0,
     valid_vlanid smallint default 0,
+    valid_bdry_ref_count smallint default 0,
     cs_rowstatus smallint default 1,
     cs_vlanid smallint default 1,
   PRIMARY KEY(vtn_name, vbridge_name, logical_port_id, logical_port_id_valid));
@@ -4047,10 +4085,12 @@ CREATE TABLE au_vbr_vlanmap_tbl (
     logical_port_id varchar(320) default ' ',
     logical_port_id_valid smallint default 0,
     vlanid integer default 0,
+    bdry_ref_count bigint default 0,
     controller_name varchar(32) default ' ',
     domain_id varchar(32) default ' ',
     flags smallint default 0,
     valid_vlanid smallint default 0,
+    valid_bdry_ref_count smallint default 0,
     cs_rowstatus smallint default 1,
     cs_vlanid smallint default 1,
   PRIMARY KEY(vtn_name, vbridge_name, logical_port_id, logical_port_id_valid));
@@ -4962,3 +5002,10 @@ CREATE TABLE au_vbr_if_policingmap_tbl (
     cs_rowstatus smallint default 1,
     cs_policername smallint default 1,
   PRIMARY KEY(vtn_name, vbr_name, vbr_if_name));
+
+CREATE INDEX ca_vbr_if_tbl_semindex ON ca_vbr_if_tbl USING btree (logical_port_id, controller_name, domain_id, valid_portmap, valid_logical_port_id);
+CREATE INDEX ca_policingprofile_entry_tbl_semindex ON ca_policingprofile_entry_tbl USING btree (flowlist, valid_flowlist);
+CREATE INDEX ca_vtn_policingmap_tbl_semindex ON ca_vtn_policingmap_tbl USING btree (policername, valid_policername);
+CREATE INDEX ca_vbr_policingmap_tbl_semindex ON ca_vbr_policingmap_tbl USING btree (policername, valid_policername);
+CREATE INDEX ca_vbr_if_policingmap_tbl_semindex ON ca_vbr_if_policingmap_tbl USING btree (policername, valid_policername);
+CREATE INDEX ru_vbr_if_tbl_showindex ON ru_vbr_if_tbl (vtn_name, vex_name, valid_vex_name);
\ No newline at end of file
index fd4556df0984297720dc5d4e4ce0953117de2d57..98c9ad96093940d735229a8eac306038e089fc30 100644 (file)
@@ -28,7 +28,7 @@ TEST(odcdriver_link, test_link_null_resp) {
   unc::restjson::ConfFileValues_t conf_file;
   pfc_bool_t cache_empty = PFC_FALSE;
   unc::odcdriver::OdcLink obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, obj.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, obj.fetch_config(ctr, cache_empty));
   delete ctr->physical_port_cache;
   delete ctr;
   ctr= NULL;
@@ -50,7 +50,7 @@ TEST(odcdriver_link, test_link_invalid_resp) {
   const pfc_bool_t cache_empty = PFC_FALSE;
   unc::odcdriver::OdcLink obj(conf_file);
 
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.fetch_config(ctr, cache_empty));
   delete ctr->physical_port_cache;
   delete ctr;
@@ -75,7 +75,7 @@ TEST(odcdriver_link, test_link_data_add_wrong) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcLink obj_link(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, obj_link.fetch_config(ctr, cache_empty));
   unc::driver::VtnDrvIntf::stub_unloadVtnDrvModule();
   delete ctr->physical_port_cache;
   delete ctr;
@@ -101,7 +101,7 @@ TEST(odcdriver_link, test_link_data_add) {
   int flag = 1;
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcLink obj_link(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
   std::auto_ptr<unc::vtndrvcache::CommonIterator>
       itr_ptr(ctr->physical_port_cache->create_iterator());
   unc::vtndrvcache::ConfigNode *cfgnode_cache = NULL;
@@ -161,7 +161,7 @@ TEST(odcdriver_link, test_link_data_add_wrong_resp) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcLink obj_link(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, obj_link.fetch_config(ctr, cache_empty));
   unc::driver::VtnDrvIntf::stub_unloadVtnDrvModule();
   delete ctr->physical_port_cache;
   delete ctr;
@@ -185,7 +185,7 @@ TEST(odcdriver_link, test_link_data_add_resp) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcLink obj_link(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
   std::auto_ptr<unc::vtndrvcache::CommonIterator>
       itr_ptr(ctr->physical_port_cache->create_iterator());
 
@@ -259,13 +259,13 @@ TEST(odcdriver_link, test_link_data_add_resp_dynamically) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcLink obj_link(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
 
   std::string LINK_RESP_ADD_DYNAMICALLY = "172.16.0.35";
   inet_aton(LINK_RESP_ADD_DYNAMICALLY.c_str(),  &val_ctr.ip_address);
   cache_empty = PFC_FALSE;
   ctr->update_ctr(key_ctr, val_ctr);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
 
   std::auto_ptr<unc::vtndrvcache::CommonIterator>
       itr_ptr(ctr->physical_port_cache->create_iterator());
@@ -329,12 +329,12 @@ TEST(odcdriver_link,
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcLink obj_link(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
 
   inet_aton(LINK_RESP_ADD.c_str(),  &val_ctr.ip_address);
   cache_empty = PFC_FALSE;
   ctr->update_ctr(key_ctr, val_ctr);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
 
   std::auto_ptr<unc::vtndrvcache::CommonIterator>
       itr_ptr(ctr->physical_port_cache->create_iterator());
@@ -409,13 +409,13 @@ TEST(odcdriver_link,
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcLink obj_link(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
 
   inet_aton(LINK_RESP_UPDATE.c_str(),  &val_ctr.ip_address);
   cache_empty = PFC_FALSE;
   ctr->update_ctr(key_ctr, val_ctr);
   ctr->set_connection_status(0);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
   std::auto_ptr<unc::vtndrvcache::CommonIterator>
       itr_ptr(ctr->physical_port_cache->create_iterator());
   unc::vtndrvcache::ConfigNode *cfgnode_cache = NULL;
@@ -477,14 +477,14 @@ TEST(odcdriver_link, test_link_data_update_dynamically) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcLink obj_link(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
 
   std::string LINK_RESP_ONE_LINK = "172.16.0.32";
   inet_aton(LINK_RESP_ONE_LINK.c_str(),  &val_ctr.ip_address);
   cache_empty = PFC_FALSE;
 
   ctr->update_ctr(key_ctr, val_ctr);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
 
   int flag = 1;
   std::auto_ptr<unc::vtndrvcache::CommonIterator>
@@ -548,13 +548,13 @@ TEST(odcdriver_link, test_link_data_delete) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcLink obj_link(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
 
   std::string LINK_RESP_DELETE = "172.16.0.37";
   inet_aton(LINK_RESP_DELETE.c_str(),  &val_ctr.ip_address);
   cache_empty = PFC_FALSE;
   ctr->update_ctr(key_ctr, val_ctr);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
 
   unc::driver::VtnDrvIntf::stub_unloadVtnDrvModule();
   delete ctr->physical_port_cache;
@@ -580,7 +580,7 @@ TEST(odcdriver_link, test_link_no_data) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcLink obj_link(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
 
   unc::driver::VtnDrvIntf::stub_unloadVtnDrvModule();
   delete ctr->physical_port_cache;
@@ -606,7 +606,7 @@ TEST(odcdriver_link, test_link_edge_resp_wrong) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcLink obj_link(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, obj_link.fetch_config(ctr, cache_empty));
 
   unc::driver::VtnDrvIntf::stub_unloadVtnDrvModule();
   delete ctr->physical_port_cache;
@@ -632,7 +632,7 @@ TEST(odcdriver_link, test_link_tail_node_resp_wrong) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcLink obj_link(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, obj_link.fetch_config(ctr, cache_empty));
 
   unc::driver::VtnDrvIntf::stub_unloadVtnDrvModule();
   delete ctr->physical_port_cache;
@@ -658,7 +658,7 @@ TEST(odcdriver_link, test_link_node_resp_wrong) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcLink obj_link(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, obj_link.fetch_config(ctr, cache_empty));
 
   unc::driver::VtnDrvIntf::stub_unloadVtnDrvModule();
   delete ctr->physical_port_cache;
@@ -683,7 +683,7 @@ TEST(odcdriver_link, test_link_node_id_resp_wrong) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcLink obj_link(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, obj_link.fetch_config(ctr, cache_empty));
 
   unc::driver::VtnDrvIntf::stub_unloadVtnDrvModule();
   delete ctr->physical_port_cache;
@@ -709,7 +709,7 @@ TEST(odcdriver_link, test_link_tail_id_resp_wrong) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcLink obj_link(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, obj_link.fetch_config(ctr, cache_empty));
 
   unc::driver::VtnDrvIntf::stub_unloadVtnDrvModule();
   delete ctr->physical_port_cache;
@@ -736,7 +736,7 @@ TEST(odcdriver_link, test_link_head_node_wrong) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcLink obj_link(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, obj_link.fetch_config(ctr, cache_empty));
 
   unc::driver::VtnDrvIntf::stub_unloadVtnDrvModule();
   delete ctr->physical_port_cache;
@@ -761,7 +761,7 @@ TEST(odcdriver_link, test_link_head_id_resp_wrong) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcLink obj_link(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, obj_link.fetch_config(ctr, cache_empty));
 
   unc::driver::VtnDrvIntf::stub_unloadVtnDrvModule();
   delete ctr->physical_port_cache;
@@ -787,7 +787,7 @@ TEST(odcdriver_link, test_link_head_resp_wrong) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcLink obj_link(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, obj_link.fetch_config(ctr, cache_empty));
 
   unc::driver::VtnDrvIntf::stub_unloadVtnDrvModule();
   delete ctr->physical_port_cache;
@@ -813,7 +813,7 @@ TEST(odcdriver_link, test_link_head_node_resp_wrong) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcLink obj_link(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, obj_link.fetch_config(ctr, cache_empty));
 
   unc::driver::VtnDrvIntf::stub_unloadVtnDrvModule();
   delete ctr->physical_port_cache;
@@ -839,7 +839,7 @@ TEST(odcdriver_link, test_link_head_node_prop_wrong) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcLink obj_link(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, obj_link.fetch_config(ctr, cache_empty));
 
   unc::driver::VtnDrvIntf::stub_unloadVtnDrvModule();
   delete ctr->physical_port_cache;
@@ -865,7 +865,7 @@ TEST(odcdriver_link, test_link_head_node_prop_namewrong) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcLink obj_link(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, obj_link.fetch_config(ctr, cache_empty));
 
   unc::driver::VtnDrvIntf::stub_unloadVtnDrvModule();
   delete ctr->physical_port_cache;
@@ -891,7 +891,7 @@ TEST(odcdriver_link, test_link_head_node_prop_name_value_wrong) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcLink obj_link(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, obj_link.fetch_config(ctr, cache_empty));
 
   unc::driver::VtnDrvIntf::stub_unloadVtnDrvModule();
   delete ctr->physical_port_cache;
@@ -918,7 +918,7 @@ TEST(odcdriver_link, test_link_head_node_prop_state_wrong) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcLink obj_link(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, obj_link.fetch_config(ctr, cache_empty));
 
   unc::driver::VtnDrvIntf::stub_unloadVtnDrvModule();
   delete ctr->physical_port_cache;
@@ -946,7 +946,7 @@ TEST(odcdriver_link, test_link_head_node_prop_state_value_wrong) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcLink obj_link(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, obj_link.fetch_config(ctr, cache_empty));
 
   unc::driver::VtnDrvIntf::stub_unloadVtnDrvModule();
   delete ctr->physical_port_cache;
@@ -972,7 +972,7 @@ TEST(odcdriver_link, test_link_head_node_prop_config_wrong) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcLink obj_link(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, obj_link.fetch_config(ctr, cache_empty));
 
   unc::driver::VtnDrvIntf::stub_unloadVtnDrvModule();
   delete ctr->physical_port_cache;
@@ -999,7 +999,7 @@ TEST(odcdriver_link, test_link_head_node_prop_config_value_wrong) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcLink obj_link(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, obj_link.fetch_config(ctr, cache_empty));
 
   unc::driver::VtnDrvIntf::stub_unloadVtnDrvModule();
   delete ctr->physical_port_cache;
@@ -1026,7 +1026,7 @@ TEST(odcdriver_link, test_link_edge_prop_wrong) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcLink obj_link(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, obj_link.fetch_config(ctr, cache_empty));
 
   unc::driver::VtnDrvIntf::stub_unloadVtnDrvModule();
   delete ctr->physical_port_cache;
@@ -1056,7 +1056,7 @@ TEST(odcdriver_link,
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcLink obj_link(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
   int flag = 1;
   for (cfgnode_cache = itr_ptr->PhysicalNodeFirstItem();
        itr_ptr->IsDone() == false;
@@ -1100,7 +1100,7 @@ TEST(odcdriver_link,
   inet_aton(LINK_RESP_UPDATE_LINK.c_str(),  &val_ctr.ip_address);
   cache_empty = PFC_FALSE;
   ctr->update_ctr(key_ctr, val_ctr);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
 
   int flag1 = 1;
   for (cfgnode_cache = itr_ptr1->PhysicalNodeFirstItem();
@@ -1165,10 +1165,10 @@ TEST(odcdriver_link,
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcLink obj_link(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
 
   cache_empty = PFC_FALSE;
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
   int flag = 1;
   for (cfgnode_cache = itr_ptr->PhysicalNodeFirstItem();
        itr_ptr->IsDone() == false;
@@ -1233,10 +1233,10 @@ TEST(odcdriver_link,
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcLink obj_link(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
 
   cache_empty = PFC_FALSE;
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_link.fetch_config(ctr, cache_empty));
   int flag = 1;
   for (cfgnode_cache = itr_ptr->PhysicalNodeFirstItem();
        itr_ptr->IsDone() == false;
index 0c4f3b2383778223a09af85f17cc8f1c6c2c64f2..10176c56e2551a8341e829bdc06b73e1b2ac8e3e 100644 (file)
@@ -43,19 +43,19 @@ TEST(odcdriver_port, test_port_one_add) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcSwitch obj_sw(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
 
 
   inet_aton(PORT_RESP_ONE.c_str(),  &val_ctr.ip_address);
   ctr->update_ctr(key_ctr, val_ctr);
 
   unc::odcdriver::OdcPort obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             obj.fetch_config(ctr, &key_switch, cache_empty));
 
   inet_aton(PORT_RESP_TWO.c_str(),  &val_ctr.ip_address);
   ctr->update_ctr(key_ctr, val_ctr);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             obj.fetch_config(ctr, &key_switch, cache_empty));
 
   delete ctr->physical_port_cache;
@@ -86,7 +86,7 @@ TEST(odcdriver_port, test_port_null_resp) {
   const pfc_bool_t cache_empty = PFC_FALSE;
   unc::odcdriver::OdcPort obj(conf_file);
 
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.fetch_config(ctr, &key_switch, cache_empty));
   delete ctr->physical_port_cache;
   delete ctr;
@@ -115,7 +115,7 @@ TEST(odcdriver_port, test_port_invalid_resp) {
   const pfc_bool_t cache_empty = PFC_FALSE;
   unc::odcdriver::OdcPort obj(conf_file);
 
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.fetch_config(ctr, &key_switch, cache_empty));
   delete ctr->physical_port_cache;
   delete ctr;
@@ -145,7 +145,7 @@ TEST(odcdriver_port, test_port_data_add) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcSwitch obj_sw(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
 
   key_ctr_t key_ctr_update;
   val_ctr_t val_ctr_update;
@@ -158,7 +158,7 @@ TEST(odcdriver_port, test_port_data_add) {
   ctr->update_ctr(key_ctr_update, val_ctr_update);
 
   unc::odcdriver::OdcPort obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             obj.fetch_config(ctr, &key_switch, cache_empty));
 
   int flag = 1;
@@ -203,7 +203,7 @@ TEST(odcdriver_port, test_port_data_add) {
 
   strncpy(reinterpret_cast<char*> (key_switch.switch_id), switch_id.c_str(),
           strlen(switch_id.c_str()));
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             obj.fetch_config(ctr, &key_switch, cache_empty));
 
   delete ctr->physical_port_cache;
@@ -234,7 +234,7 @@ TEST(odcdriver_port, test_port_data_delete) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcSwitch obj_sw(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
 
   key_ctr_t key_ctr_update;
   val_ctr_t val_ctr_update;
@@ -247,7 +247,7 @@ TEST(odcdriver_port, test_port_data_delete) {
   ctr->update_ctr(key_ctr_update, val_ctr_update);
 
   unc::odcdriver::OdcPort obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             obj.fetch_config(ctr, &key_switch, cache_empty));
   int flag = 1;
   std::auto_ptr<unc::vtndrvcache::CommonIterator>
@@ -295,7 +295,7 @@ TEST(odcdriver_port, test_port_data_delete) {
   //  Fills Key Structure
   strncpy(reinterpret_cast<char*> (key_switch.switch_id), switch_id.c_str(),
           strlen(switch_id.c_str()));
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             obj.fetch_config(ctr, &key_switch, cache_empty));
 
   delete ctr->physical_port_cache;
@@ -327,7 +327,7 @@ TEST(odcdriver_port, test_port_data_update) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcSwitch obj_sw(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
 
   key_ctr_t key_ctr_update;
   val_ctr_t val_ctr_update;
@@ -340,7 +340,7 @@ TEST(odcdriver_port, test_port_data_update) {
   ctr->update_ctr(key_ctr_update, val_ctr_update);
 
   unc::odcdriver::OdcPort obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             obj.fetch_config(ctr, &key_switch, cache_empty));
   int flag = 1;
   std::auto_ptr<unc::vtndrvcache::CommonIterator>
@@ -385,7 +385,7 @@ TEST(odcdriver_port, test_port_data_update) {
   inet_aton(SWITCH_RESP.c_str(),  &val_ctr.ip_address);
   ctr->update_ctr(key_ctr, val_ctr);
 
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
 
   //  Fills Key Structure
   strncpy(reinterpret_cast<char*> (key_switch.switch_id), switch_id.c_str(),
@@ -394,7 +394,7 @@ TEST(odcdriver_port, test_port_data_update) {
   std::string PORT_RESP_UPDATE  = "172.16.0.24";
   inet_aton(PORT_RESP_UPDATE.c_str(),  &val_ctr_update.ip_address);
   ctr->update_ctr(key_ctr_update, val_ctr_update);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             obj.fetch_config(ctr, &key_switch, cache_empty));
   flag = 1;
 
@@ -466,7 +466,7 @@ TEST(odcdriver_port, test_port_data_update__empty) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcSwitch obj_sw(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
 
   key_ctr_t key_ctr_update;
   val_ctr_t val_ctr_update;
@@ -479,7 +479,7 @@ TEST(odcdriver_port, test_port_data_update__empty) {
   ctr->update_ctr(key_ctr_update, val_ctr_update);
 
   unc::odcdriver::OdcPort obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             obj.fetch_config(ctr, &key_switch, cache_empty));
   int flag = 1;
   std::auto_ptr<unc::vtndrvcache::CommonIterator>
@@ -522,7 +522,7 @@ TEST(odcdriver_port, test_port_data_update__empty) {
   inet_aton(SWITCH_RESP.c_str(),  &val_ctr.ip_address);
   ctr->update_ctr(key_ctr, val_ctr);
 
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
 
   //  Fills Key Structure
   strncpy(reinterpret_cast<char*> (key_switch.switch_id), switch_id.c_str(),
@@ -531,7 +531,7 @@ TEST(odcdriver_port, test_port_data_update__empty) {
   std::string  PORT_RESP_EMPTY = "172.16.0.26";
   inet_aton(PORT_RESP_EMPTY.c_str(),  &val_ctr_update.ip_address);
   ctr->update_ctr(key_ctr_update, val_ctr_update);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             obj.fetch_config(ctr, &key_switch, cache_empty));
 
   cfgnode_cache = NULL;
@@ -577,14 +577,14 @@ TEST(odcdriver_port, test_port_resp_one) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcSwitch obj_sw(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
 
 
   inet_aton(PORT_RESP_ONE.c_str(),  &val_ctr.ip_address);
   ctr->update_ctr(key_ctr, val_ctr);
 
   unc::odcdriver::OdcPort obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             obj.fetch_config(ctr, &key_switch, cache_empty));
 
   int flag = 1;
@@ -649,12 +649,12 @@ TEST(odcdriver_port, test_port_resp_conn_wrong) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcSwitch obj_sw(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
 
   inet_aton(PORT_NODE_CONN_PROP_WRONG.c_str(),  &val_ctr.ip_address);
   ctr->update_ctr(key_ctr, val_ctr);
   unc::odcdriver::OdcPort obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.fetch_config(ctr, &key_switch, cache_empty));
   delete ctr->physical_port_cache;
   delete ctr;
@@ -688,12 +688,12 @@ TEST(odcdriver_port, test_port_conn_wrong) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcSwitch obj_sw(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
 
   inet_aton(PORT_NODE_CONN_WRONG.c_str(),  &val_ctr.ip_address);
   ctr->update_ctr(key_ctr, val_ctr);
   unc::odcdriver::OdcPort obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.fetch_config(ctr, &key_switch, cache_empty));
   delete ctr->physical_port_cache;
   delete ctr;
@@ -727,12 +727,12 @@ TEST(odcdriver_port, test_port_connwrong) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcSwitch obj_sw(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
 
   inet_aton(PORT_NODE_CONN_NODE_WRONG.c_str(),  &val_ctr.ip_address);
   ctr->update_ctr(key_ctr, val_ctr);
   unc::odcdriver::OdcPort obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.fetch_config(ctr, &key_switch, cache_empty));
   delete ctr->physical_port_cache;
   delete ctr;
@@ -766,12 +766,12 @@ TEST(odcdriver_port, test_port_conn_type_wrong) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcSwitch obj_sw(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
 
   inet_aton(PORT_NODE_CONN_TYPE_WRONG.c_str(),  &val_ctr.ip_address);
   ctr->update_ctr(key_ctr, val_ctr);
   unc::odcdriver::OdcPort obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.fetch_config(ctr, &key_switch, cache_empty));
   delete ctr->physical_port_cache;
   delete ctr;
@@ -805,12 +805,12 @@ TEST(odcdriver_port, test_port_node_id_wrong) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcSwitch obj_sw(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
 
   inet_aton(PORT_NODE_ID_WRONG.c_str(),  &val_ctr.ip_address);
   ctr->update_ctr(key_ctr, val_ctr);
   unc::odcdriver::OdcPort obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.fetch_config(ctr, &key_switch, cache_empty));
   delete ctr->physical_port_cache;
   delete ctr;
@@ -845,12 +845,12 @@ TEST(odcdriver_port, test_port_node_conn_id_wrong) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcSwitch obj_sw(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
 
   inet_aton(PORT_NODE_CONN_ID_WRONG.c_str(),  &val_ctr.ip_address);
   ctr->update_ctr(key_ctr, val_ctr);
   unc::odcdriver::OdcPort obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.fetch_config(ctr, &key_switch, cache_empty));
   delete ctr->physical_port_cache;
   delete ctr;
@@ -884,12 +884,12 @@ TEST(odcdriver_port, test_port_node_id_SW_wrong) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcSwitch obj_sw(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
 
   inet_aton(PORT_NODE_ID_SW.c_str(),  &val_ctr.ip_address);
   ctr->update_ctr(key_ctr, val_ctr);
   unc::odcdriver::OdcPort obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             obj.fetch_config(ctr, &key_switch, cache_empty));
   delete ctr->physical_port_cache;
   delete ctr;
@@ -923,12 +923,12 @@ TEST(odcdriver_port, test_port_node_prop_wrong) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcSwitch obj_sw(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
 
   inet_aton(PORT_NODE_PROP_WRONG.c_str(),  &val_ctr.ip_address);
   ctr->update_ctr(key_ctr, val_ctr);
   unc::odcdriver::OdcPort obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.fetch_config(ctr, &key_switch, cache_empty));
   delete ctr->physical_port_cache;
   delete ctr;
@@ -962,12 +962,12 @@ TEST(odcdriver_port, test_port_node_prop_name_wrong) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcSwitch obj_sw(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
 
   inet_aton(PORT_NODE_PROP_NAME_WRONG.c_str(),  &val_ctr.ip_address);
   ctr->update_ctr(key_ctr, val_ctr);
   unc::odcdriver::OdcPort obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.fetch_config(ctr, &key_switch, cache_empty));
   delete ctr->physical_port_cache;
   delete ctr;
@@ -1001,12 +1001,12 @@ TEST(odcdriver_port, test_port_node_prop_name_value_wrong) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcSwitch obj_sw(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
 
   inet_aton(PORT_NODE_PROP_NAME_VALUE_WRONG.c_str(),  &val_ctr.ip_address);
   ctr->update_ctr(key_ctr, val_ctr);
   unc::odcdriver::OdcPort obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.fetch_config(ctr, &key_switch, cache_empty));
   delete ctr->physical_port_cache;
   delete ctr;
@@ -1040,12 +1040,12 @@ TEST(odcdriver_port, test_port_node_prop_state_wrong) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcSwitch obj_sw(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
 
   inet_aton(PORT_NODE_PROP_STATE_WRONG.c_str(),  &val_ctr.ip_address);
   ctr->update_ctr(key_ctr, val_ctr);
   unc::odcdriver::OdcPort obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.fetch_config(ctr, &key_switch, cache_empty));
   delete ctr->physical_port_cache;
   delete ctr;
@@ -1079,12 +1079,12 @@ TEST(odcdriver_port, test_port_node_prop_config_wrong) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcSwitch obj_sw(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
 
   inet_aton(PORT_NODE_PROP_CONFIG_WRONG.c_str(),  &val_ctr.ip_address);
   ctr->update_ctr(key_ctr, val_ctr);
   unc::odcdriver::OdcPort obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.fetch_config(ctr, &key_switch, cache_empty));
   delete ctr->physical_port_cache;
   delete ctr;
@@ -1118,12 +1118,12 @@ TEST(odcdriver_port, test_port_node_prop_bandwidth_wrong) {
 
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcSwitch obj_sw(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
 
   inet_aton(PORT_NODE_PROP_BANDWIDTH_WRONG.c_str(),  &val_ctr.ip_address);
   ctr->update_ctr(key_ctr, val_ctr);
   unc::odcdriver::OdcPort obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.fetch_config(ctr, &key_switch, cache_empty));
   delete ctr->physical_port_cache;
   delete ctr;
@@ -1158,14 +1158,14 @@ TEST(odcdriver_port, test_port_resp_conf_unknown) {
   ctr->set_connection_status(1);
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcSwitch obj_sw(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
 
 
   inet_aton(PORT_RESP_ONE.c_str(),  &val_ctr.ip_address);
   ctr->update_ctr(key_ctr, val_ctr);
 
   unc::odcdriver::OdcPort obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             obj.fetch_config(ctr, &key_switch, cache_empty));
   int flag = 1;
   std::auto_ptr<unc::vtndrvcache::CommonIterator>
@@ -1234,14 +1234,14 @@ TEST(odcdriver_port, test_port_resp_parent_sw_NULL) {
   ctr->set_connection_status(1);
   pfc_bool_t cache_empty = PFC_TRUE;
   unc::odcdriver::OdcSwitch obj_sw(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj_sw.fetch_config(ctr, cache_empty));
 
 
   inet_aton(PORT_RESP_ONE.c_str(),  &val_ctr.ip_address);
   ctr->update_ctr(key_ctr, val_ctr);
 
   unc::odcdriver::OdcPort obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.fetch_config(ctr, NULL, cache_empty));
   delete ctr->physical_port_cache;
   delete ctr;
index 1a31d206ae17b9ea70995d02e0693a7dcd4dee01..853e6d215f684a9e8b25f4b5f8ce5faa5dbdd166 100644 (file)
@@ -28,7 +28,7 @@ TEST(odcdriver_switch, test_switch_null_resp) {
 
   pfc_bool_t cache_empty = PFC_FALSE;
   unc::odcdriver::OdcSwitch obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, obj.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, obj.fetch_config(ctr, cache_empty));
   delete ctr->physical_port_cache;
   delete ctr;
   ctr= NULL;
@@ -48,7 +48,7 @@ TEST(odcdriver_switch, test_switch_invalid_resp) {
 
   pfc_bool_t cache_empty = PFC_FALSE;
   unc::odcdriver::OdcSwitch obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, obj.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, obj.fetch_config(ctr, cache_empty));
   delete ctr->physical_port_cache;
   delete ctr;
   ctr= NULL;
@@ -68,7 +68,7 @@ TEST(odcdriver_switch, test_switch_data) {
   unc::restjson::ConfFileValues_t conf_file;
   pfc_bool_t cache_empty = PFC_FALSE;
   unc::odcdriver::OdcSwitch obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj.fetch_config(ctr, cache_empty));
   int flag = 1;
   std::auto_ptr<unc::vtndrvcache::CommonIterator>
       itr_ptr(ctr->physical_port_cache->create_iterator());
@@ -112,7 +112,7 @@ TEST(odcdriver_switch, test_switch_data_update) {
   unc::restjson::ConfFileValues_t conf_file;
   pfc_bool_t cache_empty = PFC_FALSE;
   unc::odcdriver::OdcSwitch obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj.fetch_config(ctr, cache_empty));
   int flag = 1;
   std::auto_ptr<unc::vtndrvcache::CommonIterator>
       itr_ptr(ctr->physical_port_cache->create_iterator());
@@ -147,7 +147,7 @@ TEST(odcdriver_switch, test_switch_data_update) {
   unc::driver::VtnDrvIntf::stub_loadVtnDrvModule();
 
   flag = 1;
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj.fetch_config(ctr, cache_empty));
   for (cfgnode_cache = itr_ptr->PhysicalNodeFirstItem();
        itr_ptr->IsDone() == false;
        cfgnode_cache = itr_ptr->NextItem() ) {
@@ -196,7 +196,7 @@ TEST(odcdriver_switch, test_switch_data_delete) {
   pfc_bool_t cache_empty = PFC_FALSE;
   unc::restjson::ConfFileValues_t conf_file;
   unc::odcdriver::OdcSwitch obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj.fetch_config(ctr, cache_empty));
   int flag = 1;
   std::auto_ptr<unc::vtndrvcache::CommonIterator>
       itr_ptr(ctr->physical_port_cache->create_iterator());
@@ -229,7 +229,7 @@ TEST(odcdriver_switch, test_switch_data_delete) {
   unc::driver::VtnDrvIntf::stub_loadVtnDrvModule();
 
   flag = 1;
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj.fetch_config(ctr, cache_empty));
   for (cfgnode_cache = itr_ptr->PhysicalNodeFirstItem();
        itr_ptr->IsDone() == false;
        cfgnode_cache = itr_ptr->NextItem() ) {
@@ -273,7 +273,7 @@ TEST(odcdriver_switch, test_switch_data_update_same) {
   unc::restjson::ConfFileValues_t conf_file;
   pfc_bool_t cache_empty = PFC_FALSE;
   unc::odcdriver::OdcSwitch obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj.fetch_config(ctr, cache_empty));
   int flag = 1;
   std::auto_ptr<unc::vtndrvcache::CommonIterator>
       itr_ptr(ctr->physical_port_cache->create_iterator());
@@ -300,7 +300,7 @@ TEST(odcdriver_switch, test_switch_data_update_same) {
 
 
   flag = 1;
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj.fetch_config(ctr, cache_empty));
   for (cfgnode_cache = itr_ptr->PhysicalNodeFirstItem();
        itr_ptr->IsDone() == false;
        cfgnode_cache = itr_ptr->NextItem() ) {
@@ -346,7 +346,7 @@ TEST(odcdriver_switch, test_switch_resp_nodeprop_wrong) {
   unc::restjson::ConfFileValues_t conf_file;
   pfc_bool_t cache_empty = PFC_FALSE;
   unc::odcdriver::OdcSwitch obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, obj.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, obj.fetch_config(ctr, cache_empty));
 
   delete ctr->physical_port_cache;
   delete ctr;
@@ -367,7 +367,7 @@ TEST(odcdriver_switch, test_switch_resp_node_prop_node_wrong) {
   unc::restjson::ConfFileValues_t conf_file;
   pfc_bool_t cache_empty = PFC_FALSE;
   unc::odcdriver::OdcSwitch obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, obj.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, obj.fetch_config(ctr, cache_empty));
 
   unc::driver::VtnDrvIntf::stub_unloadVtnDrvModule();
   delete ctr->physical_port_cache;
@@ -390,7 +390,7 @@ TEST(odcdriver_switch, test_switch_resp_node_prop_id_wrong) {
   unc::restjson::ConfFileValues_t conf_file;
   pfc_bool_t cache_empty = PFC_FALSE;
   unc::odcdriver::OdcSwitch obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, obj.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, obj.fetch_config(ctr, cache_empty));
 
   unc::driver::VtnDrvIntf::stub_unloadVtnDrvModule();
   delete ctr->physical_port_cache;
@@ -413,7 +413,7 @@ TEST(odcdriver_switch, test_switch_node_prop_id_wrong) {
   unc::restjson::ConfFileValues_t conf_file;
   pfc_bool_t cache_empty = PFC_FALSE;
   unc::odcdriver::OdcSwitch obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, obj.fetch_config(ctr, cache_empty));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, obj.fetch_config(ctr, cache_empty));
 
   unc::driver::VtnDrvIntf::stub_unloadVtnDrvModule();
   delete ctr->physical_port_cache;
index aebf099bc2857a79053266e8921668711ed11de7..525a478b3a790f1f10e44cf39503c524766a23e3 100644 (file)
@@ -50,7 +50,7 @@ TEST(odcdriver,  create_cmd_valid) {
   std::string descp =  "desc";
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.description),
           descp.c_str(),  sizeof(vbrif_val.val_vbrif.description)-1);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             obj.create_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -93,7 +93,7 @@ TEST(odcdriver,  create_cmd_valid_admin_disable) {
   std::string descp =  "desc";
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.description),
           descp.c_str(),  sizeof(vbrif_val.val_vbrif.description)-1);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             obj.create_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -135,7 +135,7 @@ TEST(odcdriver,  create_cmd_invalid_resp) {
   std::string descp =  "desc";
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.description),
           descp.c_str(),  sizeof(vbrif_val.val_vbrif.description)-1);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.create_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -175,7 +175,7 @@ TEST(odcdriver,  update_cmd_invalid_resp) {
   std::string descp =  "desc";
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.description),
           descp.c_str(),  sizeof(vbrif_val.val_vbrif.description)-1);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.update_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -215,7 +215,7 @@ TEST(odcdriver,  delete_cmd_invalid_resp) {
   std::string descp =  "desc";
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.description),
           descp.c_str(),  sizeof(vbrif_val.val_vbrif.description)-1);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.delete_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -256,7 +256,7 @@ TEST(odcdriver,  create_cmd_null_resp) {
   std::string descp =  "desc";
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.description),
           descp.c_str(),  sizeof(vbrif_val.val_vbrif.description)-1);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.create_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -298,7 +298,7 @@ TEST(odcdriver,  update_cmd_null_resp) {
   std::string descp =  "desc";
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.description),
           descp.c_str(),  sizeof(vbrif_val.val_vbrif.description)-1);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.update_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -340,7 +340,7 @@ TEST(odcdriver,  delete_cmd_null_resp) {
   std::string descp =  "desc";
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.description),
           descp.c_str(),  sizeof(vbrif_val.val_vbrif.description)-1);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.delete_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -380,7 +380,7 @@ TEST(odcdriver,  create_cmd_empty_vtn) {
   std::string descp =  "desc";
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.description),
           descp.c_str(),  sizeof(vbrif_val.val_vbrif.description)-1);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.create_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -419,7 +419,7 @@ TEST(odcdriver,  create_cmd_empty_vbr) {
   std::string descp =  "desc";
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.description),
           descp.c_str(),  sizeof(vbrif_val.val_vbrif.description)-1);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.create_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -457,7 +457,7 @@ TEST(odcdriver,  create_cmd_empty_vbr_if) {
   std::string descp =  "desc";
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.description),
           descp.c_str(),  sizeof(vbrif_val.val_vbrif.description)-1);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.create_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -496,7 +496,7 @@ TEST(odcdriver,  create_cmd_port_map_valid_no_values) {
           (vbrif_val.val_vbrif.description),
           descp.c_str(),  sizeof(vbrif_val.val_vbrif.description)-1);
   vbrif_val.val_vbrif.valid[UPLL_IDX_PM_VBRI] =  UNC_VF_VALID;
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.create_cmd(vbrif_key,  vbrif_val,  ctr));
   if (ctr != NULL) {
     delete ctr;
@@ -544,7 +544,7 @@ TEST(odcdriver,  create_cmd_port_map_valid_values) {
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.portmap.logical_port_id),
           logical_port.c_str(),
           sizeof(vbrif_val.val_vbrif.portmap.logical_port_id));
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.create_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -592,7 +592,7 @@ TEST(odcdriver,  create_cmd_port_map_valid_with_values) {
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.portmap.logical_port_id),
           logical_port.c_str(),
           sizeof(vbrif_val.val_vbrif.portmap.logical_port_id));
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.create_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -639,7 +639,7 @@ TEST(odcdriver,  create_cmd_port_map_valid_invalid_logical_port) {
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.portmap.logical_port_id),
           logical_port.c_str(),
           sizeof(vbrif_val.val_vbrif.portmap.logical_port_id));
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.create_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -684,7 +684,7 @@ TEST(odcdriver,  create_cmd_port_map_valid_with_invalid_port_values) {
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.portmap.logical_port_id),
           logical_port.c_str(),
           sizeof(vbrif_val.val_vbrif.portmap.logical_port_id));
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.create_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -730,7 +730,7 @@ TEST(odcdriver,  create_cmd_port_map_valid_with_invalid_logical_port) {
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.portmap.logical_port_id),
           logical_port.c_str(),
           sizeof(vbrif_val.val_vbrif.portmap.logical_port_id));
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.create_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -779,7 +779,7 @@ TEST(odcdriver,  create_cmd_port_map_invalid_data) {
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.portmap.logical_port_id),
           logical_port.c_str(),
           sizeof(vbrif_val.val_vbrif.portmap.logical_port_id));
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.create_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -827,7 +827,7 @@ TEST(odcdriver,  create_cmd_port_map_valid_with_vlanid_zero) {
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.portmap.logical_port_id),
           logical_port.c_str(),
           sizeof(vbrif_val.val_vbrif.portmap.logical_port_id));
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             obj.create_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -875,7 +875,7 @@ TEST(odcdriver,  create_cmd_port_map_in_diff_format) {
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.portmap.logical_port_id),
           logical_port.c_str(),
           sizeof(vbrif_val.val_vbrif.portmap.logical_port_id));
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             obj.create_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -924,7 +924,7 @@ TEST(odcdriver,  create_cmd_port_map_in_proper_format_invalid) {
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.portmap.logical_port_id),
           logical_port.c_str(),
           sizeof(vbrif_val.val_vbrif.portmap.logical_port_id));
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.create_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -972,7 +972,7 @@ TEST(odcdriver,  create_cmd_port_map_in_diff_format_invalid) {
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.portmap.logical_port_id),
           logical_port.c_str(),
           sizeof(vbrif_val.val_vbrif.portmap.logical_port_id));
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.create_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -1020,7 +1020,7 @@ TEST(odcdriver,  create_cmd_port_map_valid_with_invlanid) {
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.portmap.logical_port_id),
           logical_port.c_str(),
           sizeof(vbrif_val.val_vbrif.portmap.logical_port_id));
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.create_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -1069,7 +1069,7 @@ TEST(odcdriver,  create_cmd_port_map_valid_with_vlanid) {
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.portmap.logical_port_id),
           logical_port.c_str(),
           sizeof(vbrif_val.val_vbrif.portmap.logical_port_id));
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             obj.create_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -1119,7 +1119,7 @@ TEST(odcdriver,  update_cmd_port_map_valid) {
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.portmap.logical_port_id),
           logical_port.c_str(),
           sizeof(vbrif_val.val_vbrif.portmap.logical_port_id));
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             obj.update_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -1168,7 +1168,7 @@ TEST(odcdriver,  update_cmd_no_port_map) {
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.portmap.logical_port_id),
           logical_port.c_str(),
           sizeof(vbrif_val.val_vbrif.portmap.logical_port_id));
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             obj.update_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -1221,7 +1221,7 @@ TEST(odcdriver,  update_cmd_port_map_delete_resp_null) {
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.portmap.logical_port_id),
           logical_port.c_str(),
           sizeof(vbrif_val.val_vbrif.portmap.logical_port_id));
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.update_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -1272,7 +1272,7 @@ TEST(odcdriver,  update_cmd_port_map_invalid) {
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.portmap.logical_port_id),
           logical_port.c_str(),
           sizeof(vbrif_val.val_vbrif.portmap.logical_port_id));
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.update_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -1319,7 +1319,7 @@ TEST(odcdriver,  update_cmd_port_map_valid_vlan) {
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.portmap.logical_port_id),
           logical_port.c_str(),
           sizeof(vbrif_val.val_vbrif.portmap.logical_port_id));
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             obj.update_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -1367,7 +1367,7 @@ TEST(odcdriver,  create_cmd_port_map_valid_with_null_resp) {
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.portmap.logical_port_id),
           logical_port.c_str(),
           sizeof(vbrif_val.val_vbrif.portmap.logical_port_id));
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.create_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -1417,7 +1417,7 @@ TEST(odcdriver,  create_cmd_port_map_valid_with_invalid_logical) {
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.portmap.logical_port_id),
           logical_port.c_str(),
           sizeof(vbrif_val.val_vbrif.portmap.logical_port_id));
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.create_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -1465,7 +1465,7 @@ TEST(odcdriver,  create_cmd_port_map_valid_with_no_port_name) {
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.portmap.logical_port_id),
           logical_port.c_str(),
           sizeof(vbrif_val.val_vbrif.portmap.logical_port_id));
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.create_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -1510,7 +1510,7 @@ TEST(odcdriver,  create_cmd_port_map_invalid) {
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.portmap.logical_port_id),
           logical_port.c_str(),
           sizeof(vbrif_val.val_vbrif.portmap.logical_port_id)-1);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.create_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -1554,7 +1554,7 @@ TEST(odcdriver,  create_cmd_port_map_invalid_portmap) {
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.portmap.logical_port_id),
           logical_port.c_str(),
           sizeof(vbrif_val.val_vbrif.portmap.logical_port_id));
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,  obj.create_cmd
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,  obj.create_cmd
             (vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -1598,7 +1598,7 @@ TEST(odcdriver,  update_cmd_port_map_portmap_invalid) {
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.portmap.logical_port_id),
           logical_port.c_str(),
           sizeof(vbrif_val.val_vbrif.portmap.logical_port_id));
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             obj.update_cmd
             (vbrif_key,  vbrif_val,  ctr));
   delete ctr;
@@ -1643,7 +1643,7 @@ TEST(odcdriver,  update_cmd_port_map_portmap) {
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.portmap.logical_port_id),
           logical_port.c_str(),
           sizeof(vbrif_val.val_vbrif.portmap.logical_port_id));
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.update_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -1687,7 +1687,7 @@ TEST(odcdriver,  update_cmd_port_map_portmap_failure) {
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.portmap.logical_port_id),
           logical_port.c_str(),
           sizeof(vbrif_val.val_vbrif.portmap.logical_port_id));
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.update_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -1734,7 +1734,7 @@ TEST(odcdriver,  update_cmd_port_map_update_portmap) {
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.portmap.logical_port_id),
           logical_port.c_str(),
           sizeof(vbrif_val.val_vbrif.portmap.logical_port_id));
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.update_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -1779,7 +1779,7 @@ TEST(odcdriver,  update_cmd_empty_vtnname) {
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.portmap.logical_port_id),
           logical_port.c_str(),
           sizeof(vbrif_val.val_vbrif.portmap.logical_port_id));
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.update_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -1824,7 +1824,7 @@ TEST(odcdriver,  delete_cmd_empty_vtnname) {
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.portmap.logical_port_id),
           logical_port.c_str(),
           sizeof(vbrif_val.val_vbrif.portmap.logical_port_id));
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.delete_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -1869,7 +1869,7 @@ TEST(odcdriver,  update_cmd_delete_portmap) {
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.portmap.logical_port_id),
           logical_port.c_str(),
           sizeof(vbrif_val.val_vbrif.portmap.logical_port_id));
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             obj.update_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -1915,7 +1915,7 @@ TEST(odcdriver,  update_cmd_vbrif_success_portmap_failure) {
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.portmap.logical_port_id),
           logical_port.c_str(),
           sizeof(vbrif_val.val_vbrif.portmap.logical_port_id));
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.update_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -1964,7 +1964,7 @@ TEST(odcdriver,  update_cmd_vbrif_success_portmap_delete_failure) {
   strncpy(reinterpret_cast<char*>(vbrif_val.val_vbrif.portmap.logical_port_id),
           logical_port.c_str(),
           sizeof(vbrif_val.val_vbrif.portmap.logical_port_id));
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.update_cmd(vbrif_key,  vbrif_val,  ctr));
   delete ctr;
 }
@@ -1995,7 +1995,7 @@ TEST(odcdriver,  fetch_config) {
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
   std::vector<unc::vtndrvcache::ConfigNode *>
       cfgnode_vector;
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             obj.fetch_config(ctr, &key_vbr, cfgnode_vector));
   EXPECT_EQ(1U, cfgnode_vector.size());
   for ( std::vector<unc::vtndrvcache::ConfigNode *>::iterator it =
@@ -2035,7 +2035,7 @@ TEST(odcdriver,  fetch_config_empty_vtn) {
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
   std::vector<unc::vtndrvcache::ConfigNode *>
       cfgnode_vector;
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.fetch_config(ctr, &key_vbr, cfgnode_vector));
   EXPECT_EQ(0U, cfgnode_vector.size());
   for ( std::vector<unc::vtndrvcache::ConfigNode *>::iterator it =
@@ -2075,7 +2075,7 @@ TEST(odcdriver,  fetch_config_empty_vtn_data) {
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
   std::vector<unc::vtndrvcache::ConfigNode *>
       cfgnode_vector;
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.fetch_config(ctr, &key_vbr, cfgnode_vector));
   EXPECT_EQ(0U, cfgnode_vector.size());
   for ( std::vector<unc::vtndrvcache::ConfigNode *>::iterator it =
@@ -2116,7 +2116,7 @@ TEST(odcdriver,  fetch_config_null_response) {
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
   std::vector<unc::vtndrvcache::ConfigNode *>
       cfgnode_vector;
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.fetch_config(ctr, &key_vbr, cfgnode_vector));
   EXPECT_EQ(0U, cfgnode_vector.size());
   for ( std::vector<unc::vtndrvcache::ConfigNode *>::iterator it =
@@ -2156,7 +2156,7 @@ TEST(odcdriver,  fetch_config_invalid_resp) {
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
   std::vector<unc::vtndrvcache::ConfigNode *>
       cfgnode_vector;
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.fetch_config(ctr, &key_vbr, cfgnode_vector));
   EXPECT_EQ(0U, cfgnode_vector.size());
   for ( std::vector<unc::vtndrvcache::ConfigNode *>::iterator it =
@@ -2196,7 +2196,7 @@ TEST(odcdriver,  fetch_config_with_portmap) {
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
   std::vector<unc::vtndrvcache::ConfigNode *>
       cfgnode_vector;
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             obj.fetch_config(ctr, &key_vbr, cfgnode_vector));
   EXPECT_EQ(1U, cfgnode_vector.size());
   for ( std::vector<unc::vtndrvcache::ConfigNode *>::iterator it =
@@ -2236,7 +2236,7 @@ TEST(odcdriver,  fetch_config_with_portmap_no_vlan) {
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
   std::vector<unc::vtndrvcache::ConfigNode *>
       cfgnode_vector;
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             obj.fetch_config(ctr, &key_vbr, cfgnode_vector));
   EXPECT_EQ(1U, cfgnode_vector.size());
   for ( std::vector<unc::vtndrvcache::ConfigNode *>::iterator it =
index 5c919ee8c8ad1056dd23bca083385e4ea08d0cbe..925b335ae4bff19dc0a3a9952dc14a6f9429e6ce 100644 (file)
@@ -41,7 +41,7 @@ TEST(odcdriver,  test_create_cmd_vbr) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,  obj.create_cmd(key_vbr,  val_vbr,  ctr));
+  EXPECT_EQ(UNC_RC_SUCCESS,  obj.create_cmd(key_vbr,  val_vbr,  ctr));
   delete ctr;
   ctr = NULL;
 }
@@ -73,7 +73,7 @@ TEST(odcdriver,  test_delete_cmd_vbr) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             obj.delete_cmd(key_vbr,  val_vbr,  ctr));
   delete ctr;
   ctr = NULL;
@@ -107,7 +107,7 @@ TEST(odcdriver,  test_update_cmd_vbr) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             obj.update_cmd(key_vbr,  val_vbr,  ctr));
   delete ctr;
   ctr = NULL;
@@ -142,7 +142,7 @@ TEST(odcdriver,  test_invalid_vtnname_create_cmd_vbr) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.create_cmd(key_vbr,  val_vbr,  ctr));
   delete ctr;
   ctr = NULL;
@@ -176,7 +176,7 @@ TEST(odcdriver,  test_create_cmd_invalid_vbr_name) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,  obj.create_cmd(key_vbr,  val_vbr,  ctr));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,  obj.create_cmd(key_vbr,  val_vbr,  ctr));
   delete ctr;
 }
 TEST(odcdriver,  test_invalid_vtnname_update_cmd) {
@@ -207,7 +207,7 @@ TEST(odcdriver,  test_invalid_vtnname_update_cmd) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,  obj.update_cmd(key_vbr,  val_vbr,  ctr));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,  obj.update_cmd(key_vbr,  val_vbr,  ctr));
   delete ctr;
   ctr = NULL;
 }
@@ -240,7 +240,7 @@ TEST(odcdriver,  test_update_cmd_invalid_vbr_name) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.update_cmd(key_vbr,  val_vbr,  ctr));
   delete ctr;
   ctr = NULL;
@@ -275,7 +275,7 @@ TEST(odcdriver,  test_invalid_vtnname_delete_cmd_vbr) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.delete_cmd(key_vbr,  val_vbr,  ctr));
   delete ctr;
   ctr = NULL;
@@ -309,7 +309,7 @@ TEST(odcdriver,  test_delete_cmd_invalid_vbr_name) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,  obj.delete_cmd(key_vbr,  val_vbr,  ctr));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,  obj.delete_cmd(key_vbr,  val_vbr,  ctr));
   delete ctr;
   ctr = NULL;
 }
@@ -343,7 +343,7 @@ TEST(odcdriver,  test_delete_cmd_invalid) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.delete_cmd(key_vbr,  val_vbr,  ctr));
   delete ctr;
   ctr = NULL;
@@ -376,7 +376,7 @@ TEST(odcdriver,  test_create_cmd_invalid) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.create_cmd(key_vbr,  val_vbr,  ctr));
   delete ctr;
   ctr = NULL;
@@ -412,7 +412,7 @@ TEST(odcdriver,  test_update_cmd_invalid) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.update_cmd(key_vbr,  val_vbr,  ctr));
   delete ctr;
   ctr = NULL;
@@ -446,7 +446,7 @@ TEST(odcdriver,  test_create_cmd_null_resp) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.create_cmd(key_vbr,  val_vbr,  ctr));
   delete ctr;
   ctr = NULL;
@@ -480,7 +480,7 @@ TEST(odcdriver,  test_update_cmd_null_resp) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.update_cmd(key_vbr,  val_vbr,  ctr));
   delete ctr;
   ctr = NULL;
@@ -513,7 +513,7 @@ TEST(odcdriver,  test_delete_cmd_null_resp) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.delete_cmd(key_vbr,  val_vbr,  ctr));
   delete ctr;
   ctr = NULL;
@@ -539,7 +539,7 @@ TEST(odcdriver,  test_get_vbr_list_empty_vtn_name) {
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrCommand obj(conf_file);
   std::vector<unc::vtndrvcache::ConfigNode *> value_list;
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.fetch_config(ctr, &key_vtn, value_list));
   for ( std::vector<unc::vtndrvcache::ConfigNode *>::iterator it =
        value_list.begin(); it !=  value_list.end(); ++it ) {
@@ -571,7 +571,7 @@ TEST(odcdriver,  test_get_vbr_list_null_resp) {
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrCommand obj(conf_file);
   std::vector<unc::vtndrvcache::ConfigNode *> value_list;
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.fetch_config(ctr, &key_vtn, value_list));
   EXPECT_EQ(0U, value_list.size());
   for ( std::vector<unc::vtndrvcache::ConfigNode *>::iterator it =
@@ -604,7 +604,7 @@ TEST(odcdriver,  test_get_vbr_list_invalid_resp) {
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrCommand obj(conf_file);
   std::vector<unc::vtndrvcache::ConfigNode *> value_list;
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.fetch_config(ctr, &key_vtn, value_list));
   EXPECT_EQ(0U, value_list.size());
   for ( std::vector<unc::vtndrvcache::ConfigNode *>::iterator it =
@@ -637,7 +637,7 @@ TEST(odcdriver,  test_get_vbr_list_valid_resp) {
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrCommand obj(conf_file);
   std::vector<unc::vtndrvcache::ConfigNode *> value_list;
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             obj.fetch_config(ctr, &key_vtn, value_list));
   EXPECT_EQ(2U, value_list.size());
   for ( std::vector<unc::vtndrvcache::ConfigNode *>::iterator it =
@@ -671,7 +671,7 @@ TEST(odcdriver,  test_get_vbr_list_valid_resp_no_vbr) {
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrCommand obj(conf_file);
   std::vector<unc::vtndrvcache::ConfigNode *> value_list;
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             obj.fetch_config(ctr, &key_vtn, value_list));
   EXPECT_EQ(0U, value_list.size());
   for ( std::vector<unc::vtndrvcache::ConfigNode *>::iterator it =
index dca60909ad476423120a563207f31c60f1d7d73a..529be14ea45c98dd3643eb9b6396439db3cd3117 100644 (file)
@@ -41,10 +41,10 @@ TEST(odcdriver,  test_fetch_conf_vtn_name_empty) {
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand odc_vbr_vlanmap(conf_file);
   std::vector <unc::vtndrvcache::ConfigNode *> cfgnode_vector;
-  drv_resp_code_t ret_val = odc_vbr_vlanmap.fetch_config(ctr,
+  UncRespCode ret_val = odc_vbr_vlanmap.fetch_config(ctr,
                                                          &key_vbr,
                                                          cfgnode_vector);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,  ret_val);
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,  ret_val);
   EXPECT_EQ(0U, cfgnode_vector.size());
 
   if (ctr != NULL) {
@@ -82,10 +82,10 @@ TEST(odcdriver,  test_fetch_conf_vbr_name_empty) {
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand odc_vbr_vlanmap(conf_file);
   std::vector <unc::vtndrvcache::ConfigNode *> cfgnode_vector;
-  drv_resp_code_t ret_val = odc_vbr_vlanmap.fetch_config(ctr,
+  UncRespCode ret_val = odc_vbr_vlanmap.fetch_config(ctr,
                                                          &key_vbr,
                                                          cfgnode_vector);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,  ret_val);
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,  ret_val);
   EXPECT_EQ(0U, cfgnode_vector.size());
 
   if (ctr != NULL) {
@@ -122,10 +122,10 @@ TEST(odcdriver,  test_fetch_conf_null_response) {
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand odc_vbr_vlanmap(conf_file);
   std::vector <unc::vtndrvcache::ConfigNode *> cfgnode_vector;
-  drv_resp_code_t ret_val = odc_vbr_vlanmap.fetch_config(ctr,
+  UncRespCode ret_val = odc_vbr_vlanmap.fetch_config(ctr,
                                                          &key_vbr,
                                                          cfgnode_vector);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,  ret_val);
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,  ret_val);
   EXPECT_EQ(0U, cfgnode_vector.size());
 
   if (ctr != NULL) {
@@ -162,9 +162,9 @@ TEST(odcdriver,  test_fetch_conf_null_response_data) {
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand odc_vbr_vlanmap(conf_file);
   std::vector <unc::vtndrvcache::ConfigNode *> cfgnode_vector;
-  drv_resp_code_t ret_val = odc_vbr_vlanmap.fetch_config(ctr, &key_vbr,
+  UncRespCode ret_val = odc_vbr_vlanmap.fetch_config(ctr, &key_vbr,
                                                          cfgnode_vector);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,  ret_val);
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,  ret_val);
   EXPECT_EQ(0U, cfgnode_vector.size());
 
   if (ctr != NULL) {
@@ -204,9 +204,9 @@ TEST(odcdriver,  test_fetch_conf_not_found_response) {
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand odc_vbr_vlanmap(conf_file);
   std::vector <unc::vtndrvcache::ConfigNode *> cfgnode_vector;
-  drv_resp_code_t ret_val = odc_vbr_vlanmap.fetch_config(ctr, &key_vbr,
+  UncRespCode ret_val = odc_vbr_vlanmap.fetch_config(ctr, &key_vbr,
                                                          cfgnode_vector);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,  ret_val);
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,  ret_val);
   EXPECT_EQ(0U, cfgnode_vector.size());
 
   if (ctr != NULL) {
@@ -244,9 +244,9 @@ TEST(odcdriver,  test_fetch_conf_service_unavilable_response) {
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand odc_vbr_vlanmap(conf_file);
   std::vector <unc::vtndrvcache::ConfigNode *> cfgnode_vector;
-  drv_resp_code_t ret_val = odc_vbr_vlanmap.fetch_config(ctr, &key_vbr,
+  UncRespCode ret_val = odc_vbr_vlanmap.fetch_config(ctr, &key_vbr,
                                                          cfgnode_vector);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,  ret_val);
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,  ret_val);
   EXPECT_EQ(0U, cfgnode_vector.size());
 
   if (ctr != NULL) {
@@ -284,9 +284,9 @@ TEST(odcdriver,  test_fetch_conf_empty_response) {
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand odc_vbr_vlanmap(conf_file);
   std::vector <unc::vtndrvcache::ConfigNode *> cfgnode_vector;
-  drv_resp_code_t ret_val = odc_vbr_vlanmap.fetch_config(ctr, &key_vbr,
+  UncRespCode ret_val = odc_vbr_vlanmap.fetch_config(ctr, &key_vbr,
                                                          cfgnode_vector);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,  ret_val);
+  EXPECT_EQ(UNC_RC_SUCCESS,  ret_val);
   EXPECT_EQ(0U, cfgnode_vector.size());
 
   if (ctr != NULL) {
@@ -323,9 +323,9 @@ TEST(odcdriver,  test_fetch_conf_vlanmap_incorrect_response) {
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand odc_vbr_vlanmap(conf_file);
   std::vector <unc::vtndrvcache::ConfigNode *> cfgnode_vector;
-  drv_resp_code_t ret_val = odc_vbr_vlanmap.fetch_config(ctr, &key_vbr,
+  UncRespCode ret_val = odc_vbr_vlanmap.fetch_config(ctr, &key_vbr,
                                                          cfgnode_vector);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,  ret_val);
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,  ret_val);
   EXPECT_EQ(0U, cfgnode_vector.size());
 
   if (ctr != NULL) {
@@ -363,9 +363,9 @@ TEST(odcdriver,  test_fetch_conf_vlanmap_incorrect_response_body) {
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand odc_vbr_vlanmap(conf_file);
   std::vector <unc::vtndrvcache::ConfigNode *> cfgnode_vector;
-  drv_resp_code_t ret_val = odc_vbr_vlanmap.fetch_config(ctr, &key_vbr,
+  UncRespCode ret_val = odc_vbr_vlanmap.fetch_config(ctr, &key_vbr,
                                                          cfgnode_vector);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,  ret_val);
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,  ret_val);
   EXPECT_EQ(0U, cfgnode_vector.size());
 
   if (ctr != NULL) {
@@ -403,9 +403,9 @@ TEST(odcdriver,  test_fetch_conf_vlanmap_resp) {
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand odc_vbr_vlanmap(conf_file);
   std::vector <unc::vtndrvcache::ConfigNode *> cfgnode_vector;
-  drv_resp_code_t ret_val = odc_vbr_vlanmap.fetch_config(ctr, &key_vbr,
+  UncRespCode ret_val = odc_vbr_vlanmap.fetch_config(ctr, &key_vbr,
                                                          cfgnode_vector);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,  ret_val);
+  EXPECT_EQ(UNC_RC_SUCCESS,  ret_val);
   EXPECT_EQ(2U, cfgnode_vector.size());
   uint vlan_id = 0;
   std::string logical_id = "";
@@ -416,9 +416,9 @@ TEST(odcdriver,  test_fetch_conf_vlanmap_resp) {
       unc::vtndrvcache::ConfigNode *cfg_node = *it;
       if (cfg_node != NULL) {
         unc::vtndrvcache::CacheElementUtil<
-            key_vlan_map_t, val_vlan_map_t, uint32_t> *cache_util_ptr =
+            key_vlan_map_t, pfcdrv_val_vlan_map_t, uint32_t> *cache_util_ptr =
             static_cast<unc::vtndrvcache::CacheElementUtil<
-            key_vlan_map_t, val_vlan_map_t, uint32_t> *>(cfg_node);
+            key_vlan_map_t, pfcdrv_val_vlan_map_t, uint32_t> *>(cfg_node);
         if (cache_util_ptr == NULL) {
           return;
         }
@@ -429,13 +429,13 @@ TEST(odcdriver,  test_fetch_conf_vlanmap_resp) {
           vlan_id = 7;
         }
         key_vlan_map_t *vlanmap_key = cache_util_ptr->get_key_structure();
-        val_vlan_map_t *vlanmap_val = cache_util_ptr->get_val_structure();
+        pfcdrv_val_vlan_map_t *vlanmap_val = cache_util_ptr->get_val_structure();
 
         if ((vlanmap_key == NULL) || (vlanmap_val == NULL)) {
           pfc_log_error("key or val strucure is NULL");
           return;
         }
-        uint vlan_id_ctr = vlanmap_val->vlan_id;
+        uint vlan_id_ctr = vlanmap_val->vm.vlan_id;
         std::string logical_port_ctr = reinterpret_cast<char*>
                                       (vlanmap_key->logical_port_id);
         EXPECT_EQ(vlan_id_ctr , vlan_id);
@@ -491,15 +491,15 @@ TEST(odcdriver,  test_fetch_conf_vlanmap_resp_max_vlanid) {
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand odc_vbr_vlanmap(conf_file);
   std::vector <unc::vtndrvcache::ConfigNode *> cfgnode_vector;
-  drv_resp_code_t ret_val = odc_vbr_vlanmap.fetch_config(ctr, &key_vbr,
+  UncRespCode ret_val = odc_vbr_vlanmap.fetch_config(ctr, &key_vbr,
                                                          cfgnode_vector);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,  ret_val);
+  EXPECT_EQ(UNC_RC_SUCCESS,  ret_val);
   EXPECT_EQ(2U, cfgnode_vector.size());
   std::string logical_id = "";
   key_vlan_map_t key_vlan_map;
-  val_vlan_map_t val_vlan_map;
+  pfcdrv_val_vlan_map_t val_vlan_map;
   memset(&key_vlan_map, 0, sizeof(key_vlan_map_t));
-  memset(&val_vlan_map, 0, sizeof(val_vlan_map_t));
+  memset(&val_vlan_map, 0, sizeof(pfcdrv_val_vlan_map_t));
   key_vlan_map.logical_port_id_valid  = 1;
   pfc_bool_t is_switch_exist = PFC_FALSE;
   std::string port_id = "";
@@ -509,8 +509,8 @@ TEST(odcdriver,  test_fetch_conf_vlanmap_resp_max_vlanid) {
           switch_id.c_str(),
           strlen(switch_id.c_str()));
 
-  val_vlan_map.vlan_id = 65535;
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, odc_vbr_vlanmap.validate_vlan_exist(
+  val_vlan_map.vm.vlan_id = 65535;
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, odc_vbr_vlanmap.validate_vlan_exist(
                                             key_vlan_map,
                                             val_vlan_map, switch_id, ctr,
                                             is_switch_exist, port_id));
@@ -563,9 +563,9 @@ TEST(odcdriver,  test_fetch_conf_already_exist_vector) {
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand odc_vbr_vlanmap(conf_file);
   std::vector <unc::vtndrvcache::ConfigNode *> cfgnode_vector;
-  drv_resp_code_t ret_val = odc_vbr_vlanmap.fetch_config(ctr, &key_vbr,
+  UncRespCode ret_val = odc_vbr_vlanmap.fetch_config(ctr, &key_vbr,
                                                          cfgnode_vector);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,  ret_val);
+  EXPECT_EQ(UNC_RC_SUCCESS,  ret_val);
   EXPECT_EQ(2U, cfgnode_vector.size());
   for ( std::vector<unc::vtndrvcache::ConfigNode *>::iterator it =
        cfgnode_vector.begin(); it !=  cfgnode_vector.end(); ++it ) {
@@ -611,15 +611,15 @@ TEST(odcdriver,  test_fetch_conf_vlanmap_resp_max_vlan_id_any) {
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand odc_vbr_vlanmap(conf_file);
   std::vector <unc::vtndrvcache::ConfigNode *> cfgnode_vector;
-  drv_resp_code_t ret_val = odc_vbr_vlanmap.fetch_config(ctr, &key_vbr,
+  UncRespCode ret_val = odc_vbr_vlanmap.fetch_config(ctr, &key_vbr,
                                                          cfgnode_vector);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,  ret_val);
+  EXPECT_EQ(UNC_RC_SUCCESS,  ret_val);
   EXPECT_EQ(2U, cfgnode_vector.size());
   std::string logical_id = "";
   key_vlan_map_t key_vlan_map;
-  val_vlan_map_t val_vlan_map;
+  pfcdrv_val_vlan_map_t val_vlan_map;
   memset(&key_vlan_map, 0, sizeof(key_vlan_map_t));
-  memset(&val_vlan_map, 0, sizeof(val_vlan_map_t));
+  memset(&val_vlan_map, 0, sizeof(pfcdrv_val_vlan_map_t));
   key_vlan_map.logical_port_id_valid  = 0;
   pfc_bool_t is_switch_exist = PFC_FALSE;
   std::string port_id = "";
@@ -629,8 +629,8 @@ TEST(odcdriver,  test_fetch_conf_vlanmap_resp_max_vlan_id_any) {
           switch_id.c_str(),
           strlen(switch_id.c_str()));
 
-  val_vlan_map.vlan_id = 65535;
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, odc_vbr_vlanmap.validate_vlan_exist(
+  val_vlan_map.vm.vlan_id = 65535;
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, odc_vbr_vlanmap.validate_vlan_exist(
          key_vlan_map, val_vlan_map, switch_id, ctr, is_switch_exist, port_id));
   EXPECT_EQ(is_switch_exist, PFC_FALSE);
   for ( std::vector<unc::vtndrvcache::ConfigNode *>::iterator it =
@@ -648,9 +648,9 @@ TEST(odcdriver,  test_fetch_conf_vlanmap_resp_max_vlan_id_any) {
 
 TEST(odcdriver,  test_validate_vlan_switch_requested_incorrect_vlan_parse) {
   key_vlan_map_t key_vlan_map;
-  val_vlan_map_t val_vlan_map;
+  pfcdrv_val_vlan_map_t val_vlan_map;
   memset(&key_vlan_map, 0, sizeof(key_vlan_map_t));
-  memset(&val_vlan_map, 0, sizeof(val_vlan_map_t));
+  memset(&val_vlan_map, 0, sizeof(pfcdrv_val_vlan_map_t));
 
   key_ctr_t key_ctr;
   val_ctr_t val_ctr;
@@ -663,7 +663,7 @@ TEST(odcdriver,  test_validate_vlan_switch_requested_incorrect_vlan_parse) {
           (key_vlan_map.logical_port_id),
           switch_id.c_str(),
           strlen(switch_id.c_str()));
-  val_vlan_map.vlan_id = 10;
+  val_vlan_map.vm.vlan_id = 10;
 
   unc::driver::controller* ctr  =
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
@@ -682,7 +682,7 @@ TEST(odcdriver,  test_validate_vlan_switch_requested_incorrect_vlan_parse) {
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand odc_vbr_vlanmap(conf_file);
 
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, odc_vbr_vlanmap.validate_vlan_exist(
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, odc_vbr_vlanmap.validate_vlan_exist(
           key_vlan_map, val_vlan_map, switch_id, odc_ctr,
           is_switch_exist, port_id));
   EXPECT_EQ(is_switch_exist, PFC_FALSE);
@@ -694,9 +694,9 @@ TEST(odcdriver,  test_validate_vlan_switch_requested_incorrect_vlan_parse) {
 
 TEST(odcdriver,  test_validate_vlan_switch_requested_vlan_same_ANY) {
   key_vlan_map_t key_vlan_map;
-  val_vlan_map_t val_vlan_map;
+  pfcdrv_val_vlan_map_t val_vlan_map;
   memset(&key_vlan_map, 0, sizeof(key_vlan_map_t));
-  memset(&val_vlan_map, 0, sizeof(val_vlan_map_t));
+  memset(&val_vlan_map, 0, sizeof(pfcdrv_val_vlan_map_t));
   std::string vbrname =  "vbr1";
   strncpy(reinterpret_cast<char*>(key_vlan_map.vbr_key.vbridge_name),
           vbrname.c_str(),  sizeof(vbrname.c_str()));
@@ -715,7 +715,7 @@ TEST(odcdriver,  test_validate_vlan_switch_requested_vlan_same_ANY) {
           (key_vlan_map.logical_port_id),
           switch_id.c_str(),
           strlen(switch_id.c_str()));
-  val_vlan_map.vlan_id = 10;
+  val_vlan_map.vm.vlan_id = 10;
 
   unc::driver::controller* ctr  =
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
@@ -734,7 +734,7 @@ TEST(odcdriver,  test_validate_vlan_switch_requested_vlan_same_ANY) {
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand odc_vbr_vlanmap(conf_file);
 
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, odc_vbr_vlanmap.validate_vlan_exist(
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, odc_vbr_vlanmap.validate_vlan_exist(
           key_vlan_map, val_vlan_map, switch_id,
           odc_ctr, is_switch_exist, port_id));
   EXPECT_EQ(is_switch_exist, PFC_FALSE);
@@ -746,9 +746,9 @@ TEST(odcdriver,  test_validate_vlan_switch_requested_vlan_same_ANY) {
 
 TEST(odcdriver,  test_validate_vlan_switch_requested_vlan_same_sw) {
   key_vlan_map_t key_vlan_map;
-  val_vlan_map_t val_vlan_map;
+  pfcdrv_val_vlan_map_t val_vlan_map;
   memset(&key_vlan_map, 0, sizeof(key_vlan_map_t));
-  memset(&val_vlan_map, 0, sizeof(val_vlan_map_t));
+  memset(&val_vlan_map, 0, sizeof(pfcdrv_val_vlan_map_t));
   std::string vbrname =  "vbr1";
   strncpy(reinterpret_cast<char*>(key_vlan_map.vbr_key.vbridge_name),
           vbrname.c_str(),  sizeof(vbrname.c_str()));
@@ -767,7 +767,7 @@ TEST(odcdriver,  test_validate_vlan_switch_requested_vlan_same_sw) {
           (key_vlan_map.logical_port_id),
           switch_id.c_str(),
           strlen(switch_id.c_str()));
-  val_vlan_map.vlan_id = 10;
+  val_vlan_map.vm.vlan_id = 10;
 
   unc::driver::controller* ctr  =
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
@@ -786,7 +786,7 @@ TEST(odcdriver,  test_validate_vlan_switch_requested_vlan_same_sw) {
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand odc_vbr_vlanmap(conf_file);
 
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, odc_vbr_vlanmap.validate_vlan_exist(
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, odc_vbr_vlanmap.validate_vlan_exist(
           key_vlan_map, val_vlan_map, switch_id, odc_ctr,
           is_switch_exist, port_id));
   EXPECT_EQ(is_switch_exist, PFC_FALSE);
@@ -798,9 +798,9 @@ TEST(odcdriver,  test_validate_vlan_switch_requested_vlan_same_sw) {
 
 TEST(odcdriver,  test_validate_vlan_switch_requested_vlan_same_diff_vtn) {
   key_vlan_map_t key_vlan_map;
-  val_vlan_map_t val_vlan_map;
+  pfcdrv_val_vlan_map_t val_vlan_map;
   memset(&key_vlan_map, 0, sizeof(key_vlan_map_t));
-  memset(&val_vlan_map, 0, sizeof(val_vlan_map_t));
+  memset(&val_vlan_map, 0, sizeof(pfcdrv_val_vlan_map_t));
   std::string vbrname =  "vbr1";
   strncpy(reinterpret_cast<char*>(key_vlan_map.vbr_key.vbridge_name),
           vbrname.c_str(),  sizeof(vbrname.c_str()));
@@ -819,7 +819,7 @@ TEST(odcdriver,  test_validate_vlan_switch_requested_vlan_same_diff_vtn) {
           (key_vlan_map.logical_port_id),
           switch_id.c_str(),
           strlen(switch_id.c_str()));
-  val_vlan_map.vlan_id = 10;
+  val_vlan_map.vm.vlan_id = 10;
 
   unc::driver::controller* ctr  =
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
@@ -840,7 +840,7 @@ TEST(odcdriver,  test_validate_vlan_switch_requested_vlan_same_diff_vtn) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand odc_vbr_vlanmap(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, odc_vbr_vlanmap.validate_vlan_exist(
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, odc_vbr_vlanmap.validate_vlan_exist(
           key_vlan_map, val_vlan_map, switch_id,
           odc_ctr, is_switch_exist, port_id));
   EXPECT_EQ(is_switch_exist, PFC_FALSE);
@@ -852,9 +852,9 @@ TEST(odcdriver,  test_validate_vlan_switch_requested_vlan_same_diff_vtn) {
 
 TEST(odcdriver,  test_validate_vlan_switch_requested_vlan_same_diff_vbr) {
   key_vlan_map_t key_vlan_map;
-  val_vlan_map_t val_vlan_map;
+  pfcdrv_val_vlan_map_t val_vlan_map;
   memset(&key_vlan_map, 0, sizeof(key_vlan_map_t));
-  memset(&val_vlan_map, 0, sizeof(val_vlan_map_t));
+  memset(&val_vlan_map, 0, sizeof(pfcdrv_val_vlan_map_t));
   std::string vbrname =  "vbr1";
   strncpy(reinterpret_cast<char*>(key_vlan_map.vbr_key.vbridge_name),
           vbrname.c_str(),  sizeof(vbrname.c_str()));
@@ -873,7 +873,7 @@ TEST(odcdriver,  test_validate_vlan_switch_requested_vlan_same_diff_vbr) {
           (key_vlan_map.logical_port_id),
           switch_id.c_str(),
           strlen(switch_id.c_str()));
-  val_vlan_map.vlan_id = 10;
+  val_vlan_map.vm.vlan_id = 10;
 
   unc::driver::controller* ctr  =
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
@@ -894,7 +894,7 @@ TEST(odcdriver,  test_validate_vlan_switch_requested_vlan_same_diff_vbr) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand odc_vbr_vlanmap(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, odc_vbr_vlanmap.validate_vlan_exist(
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, odc_vbr_vlanmap.validate_vlan_exist(
           key_vlan_map, val_vlan_map, switch_id,
           odc_ctr, is_switch_exist, port_id));
   EXPECT_EQ(is_switch_exist, PFC_FALSE);
@@ -906,9 +906,9 @@ TEST(odcdriver,  test_validate_vlan_switch_requested_vlan_same_diff_vbr) {
 
 TEST(odcdriver,  test_validate_vlan_switch_requested_vlan_diff) {
   key_vlan_map_t key_vlan_map;
-  val_vlan_map_t val_vlan_map;
+  pfcdrv_val_vlan_map_t val_vlan_map;
   memset(&key_vlan_map, 0, sizeof(key_vlan_map_t));
-  memset(&val_vlan_map, 0, sizeof(val_vlan_map_t));
+  memset(&val_vlan_map, 0, sizeof(pfcdrv_val_vlan_map_t));
   std::string vbrname =  "vbr1";
   strncpy(reinterpret_cast<char*>(key_vlan_map.vbr_key.vbridge_name),
           vbrname.c_str(),  sizeof(vbrname.c_str()));
@@ -927,7 +927,7 @@ TEST(odcdriver,  test_validate_vlan_switch_requested_vlan_diff) {
           (key_vlan_map.logical_port_id),
           switch_id.c_str(),
           strlen(switch_id.c_str()));
-  val_vlan_map.vlan_id = 10;
+  val_vlan_map.vm.vlan_id = 10;
 
   unc::driver::controller* ctr  =
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
@@ -948,7 +948,7 @@ TEST(odcdriver,  test_validate_vlan_switch_requested_vlan_diff) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand odc_vbr_vlanmap(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, odc_vbr_vlanmap.validate_vlan_exist(
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, odc_vbr_vlanmap.validate_vlan_exist(
           key_vlan_map, val_vlan_map, switch_id,
           odc_ctr, is_switch_exist, port_id));
   if (ctr != NULL) {
@@ -959,9 +959,9 @@ TEST(odcdriver,  test_validate_vlan_switch_requested_vlan_diff) {
 
 TEST(odcdriver,  test_validate_vlan_switch_requested_vlan_diff_sw_exist) {
   key_vlan_map_t key_vlan_map;
-  val_vlan_map_t val_vlan_map;
+  pfcdrv_val_vlan_map_t val_vlan_map;
   memset(&key_vlan_map, 0, sizeof(key_vlan_map_t));
-  memset(&val_vlan_map, 0, sizeof(val_vlan_map_t));
+  memset(&val_vlan_map, 0, sizeof(pfcdrv_val_vlan_map_t));
   std::string vbrname =  "vbr1";
   strncpy(reinterpret_cast<char*>(key_vlan_map.vbr_key.vbridge_name),
           vbrname.c_str(),  sizeof(vbrname.c_str()));
@@ -980,7 +980,7 @@ TEST(odcdriver,  test_validate_vlan_switch_requested_vlan_diff_sw_exist) {
           (key_vlan_map.logical_port_id),
           switch_id.c_str(),
           strlen(switch_id.c_str()));
-  val_vlan_map.vlan_id = 10;
+  val_vlan_map.vm.vlan_id = 10;
 
   unc::driver::controller* ctr  =
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
@@ -1001,7 +1001,7 @@ TEST(odcdriver,  test_validate_vlan_switch_requested_vlan_diff_sw_exist) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand odc_vbr_vlanmap(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, odc_vbr_vlanmap.validate_vlan_exist(
+  EXPECT_EQ(UNC_RC_SUCCESS, odc_vbr_vlanmap.validate_vlan_exist(
           key_vlan_map, val_vlan_map, switch_id,
           odc_ctr, is_switch_exist, port_id));
   EXPECT_EQ(PFC_TRUE, is_switch_exist);
@@ -1014,9 +1014,9 @@ TEST(odcdriver,  test_validate_vlan_switch_requested_vlan_diff_sw_exist) {
 
 TEST(odcdriver,  test_validate_vlan_switch_requested_vlan_diff_any_exist) {
   key_vlan_map_t key_vlan_map;
-  val_vlan_map_t val_vlan_map;
+  pfcdrv_val_vlan_map_t val_vlan_map;
   memset(&key_vlan_map, 0, sizeof(key_vlan_map_t));
-  memset(&val_vlan_map, 0, sizeof(val_vlan_map_t));
+  memset(&val_vlan_map, 0, sizeof(pfcdrv_val_vlan_map_t));
   std::string vbrname =  "vbr1";
   strncpy(reinterpret_cast<char*>(key_vlan_map.vbr_key.vbridge_name),
           vbrname.c_str(),  sizeof(vbrname.c_str()));
@@ -1035,7 +1035,7 @@ TEST(odcdriver,  test_validate_vlan_switch_requested_vlan_diff_any_exist) {
           (key_vlan_map.logical_port_id),
           switch_id.c_str(),
           strlen(switch_id.c_str()));
-  val_vlan_map.vlan_id = 10;
+  val_vlan_map.vm.vlan_id = 10;
 
   unc::driver::controller* ctr  =
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
@@ -1056,7 +1056,7 @@ TEST(odcdriver,  test_validate_vlan_switch_requested_vlan_diff_any_exist) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand odc_vbr_vlanmap(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, odc_vbr_vlanmap.validate_vlan_exist(
+  EXPECT_EQ(UNC_RC_SUCCESS, odc_vbr_vlanmap.validate_vlan_exist(
           key_vlan_map, val_vlan_map, switch_id,
           odc_ctr, is_switch_exist, port_id));
   EXPECT_EQ(PFC_FALSE, is_switch_exist);
@@ -1068,9 +1068,9 @@ TEST(odcdriver,  test_validate_vlan_switch_requested_vlan_diff_any_exist) {
 
 TEST(odcdriver,  test_validate_vlan_switch_requested_vlan_diff_vbr) {
   key_vlan_map_t key_vlan_map;
-  val_vlan_map_t val_vlan_map;
+  pfcdrv_val_vlan_map_t val_vlan_map;
   memset(&key_vlan_map, 0, sizeof(key_vlan_map_t));
-  memset(&val_vlan_map, 0, sizeof(val_vlan_map_t));
+  memset(&val_vlan_map, 0, sizeof(pfcdrv_val_vlan_map_t));
   std::string vbrname =  "vbr1";
   strncpy(reinterpret_cast<char*>(key_vlan_map.vbr_key.vbridge_name),
           vbrname.c_str(),  sizeof(vbrname.c_str()));
@@ -1089,7 +1089,7 @@ TEST(odcdriver,  test_validate_vlan_switch_requested_vlan_diff_vbr) {
           (key_vlan_map.logical_port_id),
           switch_id.c_str(),
           strlen(switch_id.c_str()));
-  val_vlan_map.vlan_id = 10;
+  val_vlan_map.vm.vlan_id = 10;
 
   unc::driver::controller* ctr  =
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
@@ -1110,7 +1110,7 @@ TEST(odcdriver,  test_validate_vlan_switch_requested_vlan_diff_vbr) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand odc_vbr_vlanmap(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, odc_vbr_vlanmap.validate_vlan_exist(
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, odc_vbr_vlanmap.validate_vlan_exist(
           key_vlan_map, val_vlan_map, switch_id,
           odc_ctr, is_switch_exist, port_id));
   EXPECT_EQ(PFC_FALSE, is_switch_exist);
@@ -1122,9 +1122,9 @@ TEST(odcdriver,  test_validate_vlan_switch_requested_vlan_diff_vbr) {
 
 TEST(odcdriver,  test_validate_vlan_ANY_requested_vlan_wrong) {
   key_vlan_map_t key_vlan_map;
-  val_vlan_map_t val_vlan_map;
+  pfcdrv_val_vlan_map_t val_vlan_map;
   memset(&key_vlan_map, 0, sizeof(key_vlan_map_t));
-  memset(&val_vlan_map, 0, sizeof(val_vlan_map_t));
+  memset(&val_vlan_map, 0, sizeof(pfcdrv_val_vlan_map_t));
   std::string vbrname =  "vbr1";
   strncpy(reinterpret_cast<char*>(key_vlan_map.vbr_key.vbridge_name),
           vbrname.c_str(),  sizeof(vbrname.c_str()));
@@ -1143,7 +1143,7 @@ TEST(odcdriver,  test_validate_vlan_ANY_requested_vlan_wrong) {
           (key_vlan_map.logical_port_id),
           switch_id.c_str(),
           strlen(switch_id.c_str()));
-  val_vlan_map.vlan_id = 10;
+  val_vlan_map.vm.vlan_id = 10;
 
   unc::driver::controller* ctr  =
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
@@ -1163,7 +1163,7 @@ TEST(odcdriver,  test_validate_vlan_ANY_requested_vlan_wrong) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand odc_vbr_vlanmap(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, odc_vbr_vlanmap.validate_vlan_exist(
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, odc_vbr_vlanmap.validate_vlan_exist(
           key_vlan_map, val_vlan_map, switch_id,
           odc_ctr, is_switch_exist, port_id));
   EXPECT_EQ(PFC_FALSE, is_switch_exist);
@@ -1174,9 +1174,9 @@ TEST(odcdriver,  test_validate_vlan_ANY_requested_vlan_wrong) {
 }
 TEST(odcdriver,  test_validate_vlan_ANY_requested_vlan_same) {
   key_vlan_map_t key_vlan_map;
-  val_vlan_map_t val_vlan_map;
+  pfcdrv_val_vlan_map_t val_vlan_map;
   memset(&key_vlan_map, 0, sizeof(key_vlan_map_t));
-  memset(&val_vlan_map, 0, sizeof(val_vlan_map_t));
+  memset(&val_vlan_map, 0, sizeof(pfcdrv_val_vlan_map_t));
   std::string vbrname =  "vbr1";
   strncpy(reinterpret_cast<char*>(key_vlan_map.vbr_key.vbridge_name),
           vbrname.c_str(),  sizeof(vbrname.c_str()));
@@ -1195,7 +1195,7 @@ TEST(odcdriver,  test_validate_vlan_ANY_requested_vlan_same) {
           (key_vlan_map.logical_port_id),
           switch_id.c_str(),
           strlen(switch_id.c_str()));
-  val_vlan_map.vlan_id = 10;
+  val_vlan_map.vm.vlan_id = 10;
 
   unc::driver::controller* ctr  =
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
@@ -1215,7 +1215,7 @@ TEST(odcdriver,  test_validate_vlan_ANY_requested_vlan_same) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand odc_vbr_vlanmap(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, odc_vbr_vlanmap.validate_vlan_exist(
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, odc_vbr_vlanmap.validate_vlan_exist(
           key_vlan_map, val_vlan_map, switch_id,
           odc_ctr, is_switch_exist, port_id));
   EXPECT_EQ(PFC_FALSE, is_switch_exist);
@@ -1226,9 +1226,9 @@ TEST(odcdriver,  test_validate_vlan_ANY_requested_vlan_same) {
 }
 TEST(odcdriver,  test_validate_vlan_ANY_requested_vlan_same_sw) {
   key_vlan_map_t key_vlan_map;
-  val_vlan_map_t val_vlan_map;
+  pfcdrv_val_vlan_map_t val_vlan_map;
   memset(&key_vlan_map, 0, sizeof(key_vlan_map_t));
-  memset(&val_vlan_map, 0, sizeof(val_vlan_map_t));
+  memset(&val_vlan_map, 0, sizeof(pfcdrv_val_vlan_map_t));
   std::string vbrname =  "vbr1";
   strncpy(reinterpret_cast<char*>(key_vlan_map.vbr_key.vbridge_name),
           vbrname.c_str(),  sizeof(vbrname.c_str()));
@@ -1247,7 +1247,7 @@ TEST(odcdriver,  test_validate_vlan_ANY_requested_vlan_same_sw) {
           (key_vlan_map.logical_port_id),
           switch_id.c_str(),
           strlen(switch_id.c_str()));
-  val_vlan_map.vlan_id = 10;
+  val_vlan_map.vm.vlan_id = 10;
 
   unc::driver::controller* ctr  =
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
@@ -1267,7 +1267,7 @@ TEST(odcdriver,  test_validate_vlan_ANY_requested_vlan_same_sw) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand odc_vbr_vlanmap(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, odc_vbr_vlanmap.validate_vlan_exist(
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, odc_vbr_vlanmap.validate_vlan_exist(
           key_vlan_map, val_vlan_map, switch_id,
           odc_ctr, is_switch_exist, port_id));
   EXPECT_EQ(PFC_FALSE, is_switch_exist);
@@ -1278,9 +1278,9 @@ TEST(odcdriver,  test_validate_vlan_ANY_requested_vlan_same_sw) {
 }
 TEST(odcdriver,  test_validate_vlan_ANY_requested_vlan_same_ANY) {
   key_vlan_map_t key_vlan_map;
-  val_vlan_map_t val_vlan_map;
+  pfcdrv_val_vlan_map_t val_vlan_map;
   memset(&key_vlan_map, 0, sizeof(key_vlan_map_t));
-  memset(&val_vlan_map, 0, sizeof(val_vlan_map_t));
+  memset(&val_vlan_map, 0, sizeof(pfcdrv_val_vlan_map_t));
   std::string vbrname =  "vbr1";
   strncpy(reinterpret_cast<char*>(key_vlan_map.vbr_key.vbridge_name),
           vbrname.c_str(),  sizeof(vbrname.c_str()));
@@ -1299,7 +1299,7 @@ TEST(odcdriver,  test_validate_vlan_ANY_requested_vlan_same_ANY) {
           (key_vlan_map.logical_port_id),
           switch_id.c_str(),
           strlen(switch_id.c_str()));
-  val_vlan_map.vlan_id = 220;
+  val_vlan_map.vm.vlan_id = 220;
 
   unc::driver::controller* ctr  =
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
@@ -1320,7 +1320,7 @@ TEST(odcdriver,  test_validate_vlan_ANY_requested_vlan_same_ANY) {
   conf_file.user_name = "";
   conf_file.password = "";
   unc::odcdriver::OdcVbrVlanMapCommand odc_vbr_vlanmap(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, odc_vbr_vlanmap.validate_vlan_exist(
+  EXPECT_EQ(UNC_RC_SUCCESS, odc_vbr_vlanmap.validate_vlan_exist(
           key_vlan_map, val_vlan_map, switch_id,
           odc_ctr, is_switch_exist, port_id));
   EXPECT_EQ(PFC_TRUE, is_switch_exist);
@@ -1333,9 +1333,9 @@ TEST(odcdriver,  test_validate_vlan_ANY_requested_vlan_same_ANY) {
 
 TEST(odcdriver,  test_validate_vlan_ANY_requested_vlan_diff_SW) {
   key_vlan_map_t key_vlan_map;
-  val_vlan_map_t val_vlan_map;
+  pfcdrv_val_vlan_map_t val_vlan_map;
   memset(&key_vlan_map, 0, sizeof(key_vlan_map_t));
-  memset(&val_vlan_map, 0, sizeof(val_vlan_map_t));
+  memset(&val_vlan_map, 0, sizeof(pfcdrv_val_vlan_map_t));
   std::string vbrname =  "vbr1";
   strncpy(reinterpret_cast<char*>(key_vlan_map.vbr_key.vbridge_name),
           vbrname.c_str(),  sizeof(vbrname.c_str()));
@@ -1354,7 +1354,7 @@ TEST(odcdriver,  test_validate_vlan_ANY_requested_vlan_diff_SW) {
           (key_vlan_map.logical_port_id),
           switch_id.c_str(),
           strlen(switch_id.c_str()));
-  val_vlan_map.vlan_id = 220;
+  val_vlan_map.vm.vlan_id = 220;
 
   unc::driver::controller* ctr  =
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
@@ -1375,7 +1375,7 @@ TEST(odcdriver,  test_validate_vlan_ANY_requested_vlan_diff_SW) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand odc_vbr_vlanmap(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, odc_vbr_vlanmap.validate_vlan_exist(
+  EXPECT_EQ(UNC_RC_SUCCESS, odc_vbr_vlanmap.validate_vlan_exist(
           key_vlan_map, val_vlan_map, switch_id,
           odc_ctr, is_switch_exist, port_id));
   EXPECT_EQ(PFC_FALSE, is_switch_exist);
@@ -1389,12 +1389,12 @@ TEST(odcdriver,  test_validate_vlan_ANY_requested_vlan_diff_SW) {
 
 TEST(odcdriver, test_create_command_null_resp) {
   key_vlan_map_t vlanmap_key;
-  val_vlan_map_t vlanmap_val;
+  pfcdrv_val_vlan_map_t vlanmap_val;
   key_ctr_t key_ctr;
   val_ctr_t val_ctr;
 
   memset(&vlanmap_key, 0, sizeof(key_vlan_map_t));
-  memset(&vlanmap_val, 0, sizeof(val_vlan_map_t));
+  memset(&vlanmap_val, 0, sizeof(pfcdrv_val_vlan_map_t));
   memset(&key_ctr, 0, sizeof(key_ctr_t));
   memset(&val_ctr, 0, sizeof(val_ctr_t));
   std::string NULL_RESPONSE = "172.16.0.0";
@@ -1413,7 +1413,7 @@ TEST(odcdriver, test_create_command_null_resp) {
           (vlanmap_key.logical_port_id),
           switch_id.c_str(),
           strlen(switch_id.c_str()));
-  vlanmap_val.vlan_id = 10;
+  vlanmap_val.vm.vlan_id = 10;
   unc::driver::controller* ctr  =
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
   if (ctr == NULL) {
@@ -1425,7 +1425,7 @@ TEST(odcdriver, test_create_command_null_resp) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.create_cmd(vlanmap_key, vlanmap_val, ctr));
   delete ctr;
   ctr = NULL;
@@ -1434,11 +1434,11 @@ TEST(odcdriver, test_create_command_null_resp) {
 
 TEST(odcdriver_mod, test_create_command_invalidreq) {
   key_vlan_map_t vlanmap_key;
-  val_vlan_map_t vlanmap_val;
+  pfcdrv_val_vlan_map_t vlanmap_val;
   key_ctr_t key_ctr;
   val_ctr_t val_ctr;
   memset(&vlanmap_key, 0, sizeof(key_vlan_map_t));
-  memset(&vlanmap_val, 0, sizeof(val_vlan_map_t));
+  memset(&vlanmap_val, 0, sizeof(pfcdrv_val_vlan_map_t));
   memset(&key_ctr, 0, sizeof(key_ctr_t));
   memset(&val_ctr, 0, sizeof(val_ctr_t));
 
@@ -1457,7 +1457,7 @@ TEST(odcdriver_mod, test_create_command_invalidreq) {
           (vlanmap_key.logical_port_id),
           switch_id.c_str(),
           strlen(switch_id.c_str()));
-  vlanmap_val.vlan_id = 10;
+  vlanmap_val.vm.vlan_id = 10;
   unc::driver::controller* ctr  =
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
   if (ctr == NULL) {
@@ -1468,7 +1468,7 @@ TEST(odcdriver_mod, test_create_command_invalidreq) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.create_cmd(vlanmap_key, vlanmap_val, ctr));
   delete ctr;
   ctr = NULL;
@@ -1477,11 +1477,11 @@ TEST(odcdriver_mod, test_create_command_invalidreq) {
 
 TEST(odcdriver, test_create_cmd_invalid_vbrname) {
   key_vlan_map_t vlanmap_key;
-  val_vlan_map_t vlanmap_val;
+  pfcdrv_val_vlan_map_t vlanmap_val;
   key_ctr_t key_ctr;
   val_ctr_t val_ctr;
   memset(&vlanmap_key, 0, sizeof(key_vlan_map_t));
-  memset(&vlanmap_val, 0, sizeof(val_vlan_map_t));
+  memset(&vlanmap_val, 0, sizeof(pfcdrv_val_vlan_map_t));
   memset(&key_ctr, 0, sizeof(key_ctr_t));
   memset(&val_ctr, 0, sizeof(val_ctr_t));
 
@@ -1501,7 +1501,7 @@ TEST(odcdriver, test_create_cmd_invalid_vbrname) {
           (vlanmap_key.logical_port_id),
           switch_id.c_str(),
           strlen(switch_id.c_str()));
-  vlanmap_val.vlan_id = 10;
+  vlanmap_val.vm.vlan_id = 10;
   unc::driver::controller* ctr  =
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
   if (ctr == NULL) {
@@ -1512,7 +1512,7 @@ TEST(odcdriver, test_create_cmd_invalid_vbrname) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.create_cmd(vlanmap_key, vlanmap_val, ctr));
   delete ctr;
   ctr = NULL;
@@ -1520,11 +1520,11 @@ TEST(odcdriver, test_create_cmd_invalid_vbrname) {
 
 TEST(odcdriver, test_create_cmd_invalid_vtnname) {
   key_vlan_map_t vlanmap_key;
-  val_vlan_map_t vlanmap_val;
+  pfcdrv_val_vlan_map_t vlanmap_val;
   key_ctr_t key_ctr;
   val_ctr_t val_ctr;
   memset(&vlanmap_key, 0, sizeof(key_vlan_map_t));
-  memset(&vlanmap_val, 0, sizeof(val_vlan_map_t));
+  memset(&vlanmap_val, 0, sizeof(pfcdrv_val_vlan_map_t));
   memset(&key_ctr, 0, sizeof(key_ctr_t));
   memset(&val_ctr, 0, sizeof(val_ctr_t));
 
@@ -1543,7 +1543,7 @@ TEST(odcdriver, test_create_cmd_invalid_vtnname) {
           (vlanmap_key.logical_port_id),
           switch_id.c_str(),
           strlen(switch_id.c_str()));
-  vlanmap_val.vlan_id = 10;
+  vlanmap_val.vm.vlan_id = 10;
   unc::driver::controller* ctr  =
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
   if (ctr == NULL) {
@@ -1554,7 +1554,7 @@ TEST(odcdriver, test_create_cmd_invalid_vtnname) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.create_cmd(vlanmap_key, vlanmap_val, ctr));
   delete ctr;
   ctr = NULL;
@@ -1562,14 +1562,14 @@ TEST(odcdriver, test_create_cmd_invalid_vtnname) {
 
 TEST(odcdriver, test_create_cmd_invalid_format) {
   key_vlan_map_t vlanmap_key;
-  val_vlan_map_t vlanmap_val;
+  pfcdrv_val_vlan_map_t vlanmap_val;
   key_ctr_t key_ctr;
   val_ctr_t val_ctr;
   memset(&vlanmap_key, 0, sizeof(key_vlan_map_t));
-  memset(&vlanmap_val, 0, sizeof(val_vlan_map_t));
+  memset(&vlanmap_val, 0, sizeof(pfcdrv_val_vlan_map_t));
   memset(&key_ctr, 0, sizeof(key_ctr_t));
   memset(&val_ctr, 0, sizeof(val_ctr_t));
-  vlanmap_val.valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+  vlanmap_val.vm.valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
   std::string CREATE_201  = "172.16.0.1";
   inet_aton(CREATE_201.c_str(),  &val_ctr.ip_address);
 
@@ -1586,7 +1586,7 @@ TEST(odcdriver, test_create_cmd_invalid_format) {
           (vlanmap_key.logical_port_id),
           switch_id.c_str(),
           strlen(switch_id.c_str()));
-  vlanmap_val.vlan_id = 10;
+  vlanmap_val.vm.vlan_id = 10;
   unc::driver::controller* ctr  =
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
   if (ctr == NULL) {
@@ -1597,7 +1597,7 @@ TEST(odcdriver, test_create_cmd_invalid_format) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.create_cmd(vlanmap_key, vlanmap_val, ctr));
   delete ctr;
   ctr = NULL;
@@ -1606,14 +1606,14 @@ TEST(odcdriver, test_create_cmd_invalid_format) {
 
 TEST(odcdriver, test_create_cmd) {
   key_vlan_map_t vlanmap_key;
-  val_vlan_map_t vlanmap_val;
+  pfcdrv_val_vlan_map_t vlanmap_val;
   key_ctr_t key_ctr;
   val_ctr_t val_ctr;
   memset(&vlanmap_key, 0, sizeof(key_vlan_map_t));
-  memset(&vlanmap_val, 0, sizeof(val_vlan_map_t));
+  memset(&vlanmap_val, 0, sizeof(pfcdrv_val_vlan_map_t));
   memset(&key_ctr, 0, sizeof(key_ctr_t));
   memset(&val_ctr, 0, sizeof(val_ctr_t));
-  vlanmap_val.valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+  vlanmap_val.vm.valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
   std::string CREATE_201  = "172.16.0.1";
   inet_aton(CREATE_201.c_str(),  &val_ctr.ip_address);
 
@@ -1630,7 +1630,7 @@ TEST(odcdriver, test_create_cmd) {
           (vlanmap_key.logical_port_id),
           switch_id.c_str(),
           strlen(switch_id.c_str()));
-  vlanmap_val.vlan_id = 10;
+  vlanmap_val.vm.vlan_id = 10;
   unc::driver::controller* ctr  =
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
   if (ctr == NULL) {
@@ -1641,7 +1641,7 @@ TEST(odcdriver, test_create_cmd) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             obj.create_cmd(vlanmap_key, vlanmap_val, ctr));
   delete ctr;
   ctr = NULL;
@@ -1649,14 +1649,14 @@ TEST(odcdriver, test_create_cmd) {
 
 TEST(odcdriver, test_create_cmd_logicalport_in_diff_format) {
   key_vlan_map_t vlanmap_key;
-  val_vlan_map_t vlanmap_val;
+  pfcdrv_val_vlan_map_t vlanmap_val;
   key_ctr_t key_ctr;
   val_ctr_t val_ctr;
   memset(&vlanmap_key, 0, sizeof(key_vlan_map_t));
-  memset(&vlanmap_val, 0, sizeof(val_vlan_map_t));
+  memset(&vlanmap_val, 0, sizeof(pfcdrv_val_vlan_map_t));
   memset(&key_ctr, 0, sizeof(key_ctr_t));
   memset(&val_ctr, 0, sizeof(val_ctr_t));
-  vlanmap_val.valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+  vlanmap_val.vm.valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
   std::string CREATE_201  = "172.16.0.1";
   inet_aton(CREATE_201.c_str(),  &val_ctr.ip_address);
 
@@ -1673,7 +1673,7 @@ TEST(odcdriver, test_create_cmd_logicalport_in_diff_format) {
           (vlanmap_key.logical_port_id),
           switch_id.c_str(),
           strlen(switch_id.c_str()));
-  vlanmap_val.vlan_id = 10;
+  vlanmap_val.vm.vlan_id = 10;
   unc::driver::controller* ctr  =
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
   if (ctr == NULL) {
@@ -1684,7 +1684,7 @@ TEST(odcdriver, test_create_cmd_logicalport_in_diff_format) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             obj.create_cmd(vlanmap_key, vlanmap_val, ctr));
   delete ctr;
   ctr = NULL;
@@ -1692,14 +1692,14 @@ TEST(odcdriver, test_create_cmd_logicalport_in_diff_format) {
 
 TEST(odcdriver, test_create_cmd_logicalport_in_diff_format_invalid) {
   key_vlan_map_t vlanmap_key;
-  val_vlan_map_t vlanmap_val;
+  pfcdrv_val_vlan_map_t vlanmap_val;
   key_ctr_t key_ctr;
   val_ctr_t val_ctr;
   memset(&vlanmap_key, 0, sizeof(key_vlan_map_t));
-  memset(&vlanmap_val, 0, sizeof(val_vlan_map_t));
+  memset(&vlanmap_val, 0, sizeof(pfcdrv_val_vlan_map_t));
   memset(&key_ctr, 0, sizeof(key_ctr_t));
   memset(&val_ctr, 0, sizeof(val_ctr_t));
-  vlanmap_val.valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+  vlanmap_val.vm.valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
   std::string CREATE_201  = "172.16.0.1";
   inet_aton(CREATE_201.c_str(),  &val_ctr.ip_address);
 
@@ -1716,7 +1716,7 @@ TEST(odcdriver, test_create_cmd_logicalport_in_diff_format_invalid) {
           (vlanmap_key.logical_port_id),
           switch_id.c_str(),
           strlen(switch_id.c_str()));
-  vlanmap_val.vlan_id = 10;
+  vlanmap_val.vm.vlan_id = 10;
   unc::driver::controller* ctr  =
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
   if (ctr == NULL) {
@@ -1727,7 +1727,7 @@ TEST(odcdriver, test_create_cmd_logicalport_in_diff_format_invalid) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.create_cmd(vlanmap_key, vlanmap_val, ctr));
   delete ctr;
   ctr = NULL;
@@ -1735,11 +1735,11 @@ TEST(odcdriver, test_create_cmd_logicalport_in_diff_format_invalid) {
 
 TEST(odcdriver, test_create_cmd_validatevlan_failure) {
   key_vlan_map_t vlanmap_key;
-  val_vlan_map_t vlanmap_val;
+  pfcdrv_val_vlan_map_t vlanmap_val;
   key_ctr_t key_ctr;
   val_ctr_t val_ctr;
   memset(&vlanmap_key, 0, sizeof(key_vlan_map_t));
-  memset(&vlanmap_val, 0, sizeof(val_vlan_map_t));
+  memset(&vlanmap_val, 0, sizeof(pfcdrv_val_vlan_map_t));
   memset(&key_ctr, 0, sizeof(key_ctr_t));
   memset(&val_ctr, 0, sizeof(val_ctr_t));
 
@@ -1758,7 +1758,7 @@ TEST(odcdriver, test_create_cmd_validatevlan_failure) {
           (vlanmap_key.logical_port_id),
           switch_id.c_str(),
           strlen(switch_id.c_str()));
-  vlanmap_val.vlan_id = 65535;
+  vlanmap_val.vm.vlan_id = 65535;
   unc::driver::controller* ctr  =
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
   if (ctr == NULL) {
@@ -1769,7 +1769,7 @@ TEST(odcdriver, test_create_cmd_validatevlan_failure) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.create_cmd(vlanmap_key, vlanmap_val, ctr));
   delete ctr;
   ctr = NULL;
@@ -1777,14 +1777,14 @@ TEST(odcdriver, test_create_cmd_validatevlan_failure) {
 
 TEST(odcdriver, test_update_cmd_vbrvlanmap) {
   key_vlan_map_t vlanmap_key;
-  val_vlan_map_t vlanmap_val;
+  pfcdrv_val_vlan_map_t vlanmap_val;
   key_ctr_t key_ctr;
   val_ctr_t val_ctr;
   memset(&vlanmap_key, 0, sizeof(key_vlan_map_t));
-  memset(&vlanmap_val, 0, sizeof(val_vlan_map_t));
+  memset(&vlanmap_val, 0, sizeof(pfcdrv_val_vlan_map_t));
   memset(&key_ctr, 0, sizeof(key_ctr_t));
   memset(&val_ctr, 0, sizeof(val_ctr_t));
-  vlanmap_val.valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+  vlanmap_val.vm.valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
   std::string CREATE_201  = "172.16.0.1";
   inet_aton(CREATE_201.c_str(),  &val_ctr.ip_address);
 
@@ -1801,7 +1801,7 @@ TEST(odcdriver, test_update_cmd_vbrvlanmap) {
           (vlanmap_key.logical_port_id),
           switch_id.c_str(),
           strlen(switch_id.c_str()));
-  vlanmap_val.vlan_id = 10;
+  vlanmap_val.vm.vlan_id = 10;
   unc::driver::controller* ctr  =
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
   if (ctr == NULL) {
@@ -1812,7 +1812,7 @@ TEST(odcdriver, test_update_cmd_vbrvlanmap) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             obj.update_cmd(vlanmap_key, vlanmap_val, ctr));
   delete ctr;
   ctr = NULL;
@@ -1820,11 +1820,11 @@ TEST(odcdriver, test_update_cmd_vbrvlanmap) {
 
 TEST(odcdriver, test_create_cmd_validate_fail) {
   key_vlan_map_t vlanmap_key;
-  val_vlan_map_t vlanmap_val;
+  pfcdrv_val_vlan_map_t vlanmap_val;
   key_ctr_t key_ctr;
   val_ctr_t val_ctr;
   memset(&vlanmap_key, 0, sizeof(key_vlan_map_t));
-  memset(&vlanmap_val, 0, sizeof(val_vlan_map_t));
+  memset(&vlanmap_val, 0, sizeof(pfcdrv_val_vlan_map_t));
   memset(&key_ctr, 0, sizeof(key_ctr_t));
   memset(&val_ctr, 0, sizeof(val_ctr_t));
   std::string CREATE_201  = "172.16.0.1";
@@ -1843,7 +1843,7 @@ TEST(odcdriver, test_create_cmd_validate_fail) {
           (vlanmap_key.logical_port_id),
           switch_id.c_str(),
           strlen(switch_id.c_str()));
-  vlanmap_val.vlan_id = 65535;
+  vlanmap_val.vm.vlan_id = 65535;
   unc::driver::controller* ctr  =
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
   if (ctr == NULL) {
@@ -1854,7 +1854,7 @@ TEST(odcdriver, test_create_cmd_validate_fail) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.create_cmd(vlanmap_key, vlanmap_val, ctr));
   delete ctr;
   ctr = NULL;
@@ -1862,11 +1862,11 @@ TEST(odcdriver, test_create_cmd_validate_fail) {
 
 TEST(odcdriver, test_create_cmd_validate_failure) {
   key_vlan_map_t vlanmap_key;
-  val_vlan_map_t vlanmap_val;
+  pfcdrv_val_vlan_map_t vlanmap_val;
   key_ctr_t key_ctr;
   val_ctr_t val_ctr;
   memset(&vlanmap_key, 0, sizeof(key_vlan_map_t));
-  memset(&vlanmap_val, 0, sizeof(val_vlan_map_t));
+  memset(&vlanmap_val, 0, sizeof(pfcdrv_val_vlan_map_t));
   memset(&key_ctr, 0, sizeof(key_ctr_t));
   memset(&val_ctr, 0, sizeof(val_ctr_t));
   std::string VLAN_MAP_RESP_ANY_0 = "172.16.0.18";
@@ -1887,7 +1887,7 @@ TEST(odcdriver, test_create_cmd_validate_failure) {
           (vlanmap_key.logical_port_id),
           switch_id.c_str(),
           strlen(switch_id.c_str()));
-  vlanmap_val.vlan_id = 65535;
+  vlanmap_val.vm.vlan_id = 65535;
   unc::driver::controller* ctr  =
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
   if (ctr == NULL) {
@@ -1898,7 +1898,7 @@ TEST(odcdriver, test_create_cmd_validate_failure) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.create_cmd(vlanmap_key, vlanmap_val, ctr));
   delete ctr;
   ctr = NULL;
@@ -1906,11 +1906,11 @@ TEST(odcdriver, test_create_cmd_validate_failure) {
 
 TEST(odcdriver, test_create_cmd_validate_logicalportid_fail) {
   key_vlan_map_t vlanmap_key;
-  val_vlan_map_t vlanmap_val;
+  pfcdrv_val_vlan_map_t vlanmap_val;
   key_ctr_t key_ctr;
   val_ctr_t val_ctr;
   memset(&vlanmap_key, 0, sizeof(key_vlan_map_t));
-  memset(&vlanmap_val, 0, sizeof(val_vlan_map_t));
+  memset(&vlanmap_val, 0, sizeof(pfcdrv_val_vlan_map_t));
   memset(&key_ctr, 0, sizeof(key_ctr_t));
   memset(&val_ctr, 0, sizeof(val_ctr_t));
   std::string CREATE_201  = "172.16.0.1";
@@ -1929,7 +1929,7 @@ TEST(odcdriver, test_create_cmd_validate_logicalportid_fail) {
           (vlanmap_key.logical_port_id),
           switch_id.c_str(),
           strlen(switch_id.c_str()));
-  vlanmap_val.vlan_id = 10;
+  vlanmap_val.vm.vlan_id = 10;
   unc::driver::controller* ctr  =
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
   if (ctr == NULL) {
@@ -1940,7 +1940,7 @@ TEST(odcdriver, test_create_cmd_validate_logicalportid_fail) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.create_cmd(vlanmap_key, vlanmap_val, ctr));
   delete ctr;
   ctr = NULL;
@@ -1948,14 +1948,14 @@ TEST(odcdriver, test_create_cmd_validate_logicalportid_fail) {
 
 TEST(odcdriver, test_create_cmd_UNTAGGED) {
   key_vlan_map_t vlanmap_key;
-  val_vlan_map_t vlanmap_val;
+  pfcdrv_val_vlan_map_t vlanmap_val;
   key_ctr_t key_ctr;
   val_ctr_t val_ctr;
   memset(&vlanmap_key, 0, sizeof(key_vlan_map_t));
-  memset(&vlanmap_val, 0, sizeof(val_vlan_map_t));
+  memset(&vlanmap_val, 0, sizeof(pfcdrv_val_vlan_map_t));
   memset(&key_ctr, 0, sizeof(key_ctr_t));
   memset(&val_ctr, 0, sizeof(val_ctr_t));
-  vlanmap_val.valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+  vlanmap_val.vm.valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
   std::string CREATE_201  = "172.16.0.1";
   inet_aton(CREATE_201.c_str(),  &val_ctr.ip_address);
 
@@ -1972,7 +1972,7 @@ TEST(odcdriver, test_create_cmd_UNTAGGED) {
           (vlanmap_key.logical_port_id),
           switch_id.c_str(),
           strlen(switch_id.c_str()));
-  vlanmap_val.vlan_id = 65535;
+  vlanmap_val.vm.vlan_id = 65535;
   unc::driver::controller* ctr  =
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
   if (ctr == NULL) {
@@ -1983,7 +1983,7 @@ TEST(odcdriver, test_create_cmd_UNTAGGED) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             obj.create_cmd(vlanmap_key, vlanmap_val, ctr));
   delete ctr;
   ctr = NULL;
@@ -1991,14 +1991,14 @@ TEST(odcdriver, test_create_cmd_UNTAGGED) {
 
 TEST(odcdriver, test_create_update_invalid) {
   key_vlan_map_t vlanmap_key;
-  val_vlan_map_t vlanmap_val;
+  pfcdrv_val_vlan_map_t vlanmap_val;
   key_ctr_t key_ctr;
   val_ctr_t val_ctr;
   memset(&vlanmap_key, 0, sizeof(key_vlan_map_t));
-  memset(&vlanmap_val, 0, sizeof(val_vlan_map_t));
+  memset(&vlanmap_val, 0, sizeof(pfcdrv_val_vlan_map_t));
   memset(&key_ctr, 0, sizeof(key_ctr_t));
   memset(&val_ctr, 0, sizeof(val_ctr_t));
-  vlanmap_val.valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_INVALID;
+  vlanmap_val.vm.valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_INVALID;
   std::string CREATE_201  = "172.16.0.1";
   inet_aton(CREATE_201.c_str(),  &val_ctr.ip_address);
 
@@ -2015,7 +2015,7 @@ TEST(odcdriver, test_create_update_invalid) {
           (vlanmap_key.logical_port_id),
           switch_id.c_str(),
           strlen(switch_id.c_str()));
-  vlanmap_val.vlan_id = 65535;
+  vlanmap_val.vm.vlan_id = 65535;
   unc::driver::controller* ctr  =
       new  unc::odcdriver::OdcController(key_ctr,  val_ctr);
   if (ctr == NULL) {
@@ -2026,7 +2026,7 @@ TEST(odcdriver, test_create_update_invalid) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.create_cmd(vlanmap_key, vlanmap_val, ctr));
   delete ctr;
   ctr = NULL;
@@ -2069,7 +2069,7 @@ TEST(odcdriver, test_delete_existing_vlan_map_null_strid) {
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand obj(conf_file);
 
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.del_existing_vlanmap(vlanmap_key , ctr , str_mapping_id));
   delete ctr;
   ctr = NULL;
@@ -2110,7 +2110,7 @@ TEST(odcdriver, test_delete_existing_vlan_map_url_empty) {
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand obj(conf_file);
 
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.del_existing_vlanmap(vlanmap_key , ctr , str_mapping_id));
   delete ctr;
   ctr = NULL;
@@ -2152,7 +2152,7 @@ TEST(odcdriver, test_delete_existing_vlan_map_resp_null) {
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand obj(conf_file);
 
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.del_existing_vlanmap(vlanmap_key , ctr , str_mapping_id));
   delete ctr;
   ctr = NULL;
@@ -2195,7 +2195,7 @@ TEST(odcdriver, test_delete_existing_vlan_map__success) {
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand obj(conf_file);
 
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             obj.del_existing_vlanmap(vlanmap_key , ctr , str_mapping_id));
   delete ctr;
   ctr = NULL;
@@ -2239,7 +2239,7 @@ TEST(odcdriver, test_delete_existing_vlan_map__not_202) {
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand obj(conf_file);
 
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.del_existing_vlanmap(vlanmap_key , ctr , str_mapping_id));
   delete ctr;
   ctr = NULL;
@@ -2489,11 +2489,11 @@ TEST(odcdriver,  test_generate_vlanmap_id_logical_port_id_invalid) {
 
 TEST(odcdriver,  test_delete_cmd_invalid_logicalport_id_1) {
   key_vlan_map_t vlanmap_key;
-  val_vlan_map_t vlanmap_val;
+  pfcdrv_val_vlan_map_t vlanmap_val;
   key_ctr_t key_ctr;
   val_ctr_t val_ctr;
   memset(&vlanmap_key, 0, sizeof(key_vlan_map_t));
-  memset(&vlanmap_val, 0, sizeof(val_vlan_map_t));
+  memset(&vlanmap_val, 0, sizeof(pfcdrv_val_vlan_map_t));
   memset(&key_ctr, 0, sizeof(key_ctr_t));
   memset(&val_ctr, 0, sizeof(val_ctr_t));
   std::string vtn_name = "vtn1";
@@ -2514,10 +2514,10 @@ TEST(odcdriver,  test_delete_cmd_invalid_logicalport_id_1) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand odc_vbr_vlanmap(conf_file);
-  drv_resp_code_t ret_val = odc_vbr_vlanmap.delete_cmd(vlanmap_key,
+  UncRespCode ret_val = odc_vbr_vlanmap.delete_cmd(vlanmap_key,
                                                        vlanmap_val,
                                                        ctr);
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret_val, UNC_DRV_RC_ERR_GENERIC);
   if (ctr != NULL) {
     delete ctr;
     ctr = NULL;
@@ -2526,7 +2526,7 @@ TEST(odcdriver,  test_delete_cmd_invalid_logicalport_id_1) {
 
 TEST(odcdriver,  test_delete_cmd_invalid_logicalport_id_2) {
   key_vlan_map_t vlanmap_key;
-  val_vlan_map_t vlanmap_val;
+  pfcdrv_val_vlan_map_t vlanmap_val;
   key_ctr_t key_ctr;
   val_ctr_t val_ctr;
   memset(&key_ctr, 0, sizeof(key_ctr_t));
@@ -2535,7 +2535,7 @@ TEST(odcdriver,  test_delete_cmd_invalid_logicalport_id_2) {
 
   inet_aton(ip_add.c_str(),  &val_ctr.ip_address);
   memset(&vlanmap_key, 0, sizeof(key_vlan_map_t));
-  memset(&vlanmap_val, 0, sizeof(val_vlan_map_t));
+  memset(&vlanmap_val, 0, sizeof(pfcdrv_val_vlan_map_t));
   std::string vtn_name = "vtn1";
   std::string vbr_name = "vbr1";
   std::string logical_id = "SW-00:00:00:00:00:00:00:02";
@@ -2559,10 +2559,10 @@ TEST(odcdriver,  test_delete_cmd_invalid_logicalport_id_2) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand odc_vbr_vlanmap(conf_file);
-  drv_resp_code_t ret_val = odc_vbr_vlanmap.delete_cmd(vlanmap_key,
+  UncRespCode ret_val = odc_vbr_vlanmap.delete_cmd(vlanmap_key,
                                                        vlanmap_val,
                                                        ctr);
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret_val, UNC_DRV_RC_ERR_GENERIC);
   if (ctr != NULL) {
     delete ctr;
     ctr = NULL;
@@ -2570,7 +2570,7 @@ TEST(odcdriver,  test_delete_cmd_invalid_logicalport_id_2) {
 }
 TEST(odcdriver,  test_delete_cmd_httpresponse_error) {
   key_vlan_map_t vlanmap_key;
-  val_vlan_map_t vlanmap_val;
+  pfcdrv_val_vlan_map_t vlanmap_val;
   key_ctr_t key_ctr;
   val_ctr_t val_ctr;
   memset(&key_ctr, 0, sizeof(key_ctr_t));
@@ -2579,7 +2579,7 @@ TEST(odcdriver,  test_delete_cmd_httpresponse_error) {
 
   inet_aton(ip_add.c_str(),  &val_ctr.ip_address);
   memset(&vlanmap_key, 0, sizeof(key_vlan_map_t));
-  memset(&vlanmap_val, 0, sizeof(val_vlan_map_t));
+  memset(&vlanmap_val, 0, sizeof(pfcdrv_val_vlan_map_t));
   std::string vtn_name = "vtn1";
   std::string vbr_name = "vbr1";
   std::string logical_id = "SW-00:00:00:00:00:00:00:02";
@@ -2603,9 +2603,9 @@ TEST(odcdriver,  test_delete_cmd_httpresponse_error) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand odc_vbr_vlanmap(conf_file);
-  drv_resp_code_t ret_val = odc_vbr_vlanmap.delete_cmd(vlanmap_key, vlanmap_val,
+  UncRespCode ret_val = odc_vbr_vlanmap.delete_cmd(vlanmap_key, vlanmap_val,
                                                        ctr);
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret_val, UNC_DRV_RC_ERR_GENERIC);
   if (ctr != NULL) {
     delete ctr;
     ctr = NULL;
@@ -2614,7 +2614,7 @@ TEST(odcdriver,  test_delete_cmd_httpresponse_error) {
 
 TEST(odcdriver,  test_delete_cmd_invalid_http_responce) {
   key_vlan_map_t vlanmap_key;
-  val_vlan_map_t vlanmap_val;
+  pfcdrv_val_vlan_map_t vlanmap_val;
   key_ctr_t key_ctr;
   val_ctr_t val_ctr;
   memset(&key_ctr, 0, sizeof(key_ctr_t));
@@ -2623,7 +2623,7 @@ TEST(odcdriver,  test_delete_cmd_invalid_http_responce) {
 
   inet_aton(ip_add.c_str(),  &val_ctr.ip_address);
   memset(&vlanmap_key, 0, sizeof(key_vlan_map_t));
-  memset(&vlanmap_val, 0, sizeof(val_vlan_map_t));
+  memset(&vlanmap_val, 0, sizeof(pfcdrv_val_vlan_map_t));
   std::string vtn_name = "vtn1";
   std::string vbr_name = "vbr1";
   std::string logical_id = "SW-00:00:00:00:00:00:00:02";
@@ -2647,9 +2647,9 @@ TEST(odcdriver,  test_delete_cmd_invalid_http_responce) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand odc_vbr_vlanmap(conf_file);
-  drv_resp_code_t ret_val = odc_vbr_vlanmap.delete_cmd(vlanmap_key, vlanmap_val,
+  UncRespCode ret_val = odc_vbr_vlanmap.delete_cmd(vlanmap_key, vlanmap_val,
                                                        ctr);
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret_val, UNC_DRV_RC_ERR_GENERIC);
   if (ctr != NULL) {
     delete ctr;
     ctr = NULL;
@@ -2658,7 +2658,7 @@ TEST(odcdriver,  test_delete_cmd_invalid_http_responce) {
 
 TEST(odcdriver,  test_delete_cmd_vtn_name_empty) {
   key_vlan_map_t vlanmap_key;
-  val_vlan_map_t vlanmap_val;
+  pfcdrv_val_vlan_map_t vlanmap_val;
   key_ctr_t key_ctr;
   val_ctr_t val_ctr;
   memset(&key_ctr, 0, sizeof(key_ctr_t));
@@ -2667,7 +2667,7 @@ TEST(odcdriver,  test_delete_cmd_vtn_name_empty) {
 
   inet_aton(ip_add.c_str(),  &val_ctr.ip_address);
   memset(&vlanmap_key, 0, sizeof(key_vlan_map_t));
-  memset(&vlanmap_val, 0, sizeof(val_vlan_map_t));
+  memset(&vlanmap_val, 0, sizeof(pfcdrv_val_vlan_map_t));
   std::string vbr_name = "vbr1";
   std::string logical_id = "SW-00:00:00:00:00:00:00:02";
   std::string vlan_id =  "20";
@@ -2688,9 +2688,9 @@ TEST(odcdriver,  test_delete_cmd_vtn_name_empty) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand odc_vbr_vlanmap(conf_file);
-  drv_resp_code_t ret_val = odc_vbr_vlanmap.delete_cmd(vlanmap_key, vlanmap_val,
+  UncRespCode ret_val = odc_vbr_vlanmap.delete_cmd(vlanmap_key, vlanmap_val,
                                                        ctr);
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret_val, UNC_DRV_RC_ERR_GENERIC);
   if (ctr != NULL) {
     delete ctr;
     ctr = NULL;
@@ -2699,7 +2699,7 @@ TEST(odcdriver,  test_delete_cmd_vtn_name_empty) {
 
 TEST(odcdriver,  test_delete_cmd_valid) {
   key_vlan_map_t vlanmap_key;
-  val_vlan_map_t vlanmap_val;
+  pfcdrv_val_vlan_map_t vlanmap_val;
   key_ctr_t key_ctr;
   val_ctr_t val_ctr;
   memset(&key_ctr, 0, sizeof(key_ctr_t));
@@ -2708,7 +2708,7 @@ TEST(odcdriver,  test_delete_cmd_valid) {
 
   inet_aton(ip_add.c_str(),  &val_ctr.ip_address);
   memset(&vlanmap_key, 0, sizeof(key_vlan_map_t));
-  memset(&vlanmap_val, 0, sizeof(val_vlan_map_t));
+  memset(&vlanmap_val, 0, sizeof(pfcdrv_val_vlan_map_t));
   std::string vtn_name = "vtn1";
   std::string vbr_name = "vbr1";
   std::string logical_id = "SW-00:00:00:00:00:00:00:02";
@@ -2732,9 +2732,9 @@ TEST(odcdriver,  test_delete_cmd_valid) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVbrVlanMapCommand odc_vbr_vlanmap(conf_file);
-  drv_resp_code_t ret_val = odc_vbr_vlanmap.delete_cmd(vlanmap_key, vlanmap_val,
+  UncRespCode ret_val = odc_vbr_vlanmap.delete_cmd(vlanmap_key, vlanmap_val,
                                                        ctr);
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret_val, UNC_RC_SUCCESS);
   if (ctr != NULL) {
     delete ctr;
     ctr = NULL;
index 49c388ac32ed2663b630c43bc8a9e8f37630eda6..ea827a5613297e32709fa0206931101ec1c9f0a8 100644 (file)
@@ -34,7 +34,7 @@ TEST(odcdriver, test_in_valid_vtnname_empty_create_cmd) {
   conf_file.password = "admin";
 
   unc::odcdriver::OdcVtnCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE , obj.create_cmd(key_vtn, val_vtn, ctr));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC , obj.create_cmd(key_vtn, val_vtn, ctr));
   delete ctr;
   ctr= NULL;
 }
@@ -62,7 +62,7 @@ TEST(odcdriver, test_in_valid_vtnname_empty_update_cmd) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVtnCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE , obj.update_cmd(key_vtn, val_vtn, ctr));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC , obj.update_cmd(key_vtn, val_vtn, ctr));
   delete ctr;
   ctr= NULL;
 }
@@ -87,7 +87,7 @@ TEST(odcdriver, test_in_valid_vtnname_empty_delete_cmd) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVtnCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE , obj.delete_cmd(key_vtn, val_vtn, ctr));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC , obj.delete_cmd(key_vtn, val_vtn, ctr));
 
   delete ctr;
   ctr= NULL;
@@ -115,7 +115,7 @@ TEST(odcdriver, test_invalid_ipaddress_empty_create_cmd) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVtnCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE , obj.create_cmd(key_vtn, val_vtn, ctr));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC , obj.create_cmd(key_vtn, val_vtn, ctr));
   if (ctr != NULL) {
     delete ctr;
     ctr= NULL;
@@ -145,7 +145,7 @@ TEST(odcdriver, test_null_response_update_cmd) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVtnCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE ,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC ,
             obj.update_cmd(key_vtn, val_vtn, ctr));
   delete ctr;
   ctr= NULL;
@@ -174,7 +174,7 @@ TEST(odcdriver, test_null_response_delete_cmd) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVtnCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE ,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC ,
             obj.delete_cmd(key_vtn, val_vtn, ctr));
   delete ctr;
   ctr= NULL;
@@ -207,7 +207,7 @@ TEST(odcdriver,  test_delete_cmd) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVtnCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj.delete_cmd(key_vtn, val_vtn, ctr));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj.delete_cmd(key_vtn, val_vtn, ctr));
   delete ctr;
   ctr= NULL;
 }
@@ -240,7 +240,7 @@ TEST(odcdriver,  test_delete_cmd_failure) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVtnCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, obj.delete_cmd(key_vtn, val_vtn, ctr));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, obj.delete_cmd(key_vtn, val_vtn, ctr));
   delete ctr;
   ctr= NULL;
 }
@@ -269,7 +269,7 @@ TEST(odcdriver,  invalid_response_create_cmd) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVtnCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, obj.create_cmd(key_vtn, val_vtn, ctr));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, obj.create_cmd(key_vtn, val_vtn, ctr));
   delete ctr;
   ctr= NULL;
 }
@@ -296,7 +296,7 @@ TEST(odcdriver,  invalid_response_update_cmd) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVtnCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, obj.update_cmd(key_vtn, val_vtn, ctr));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, obj.update_cmd(key_vtn, val_vtn, ctr));
   delete ctr;
   ctr= NULL;
 }
@@ -327,7 +327,7 @@ TEST(odcdriver,  test_update_cmd) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVtnCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj.update_cmd(key_vtn, val_vtn, ctr));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj.update_cmd(key_vtn, val_vtn, ctr));
   delete ctr;
   ctr= NULL;
 }
@@ -357,7 +357,7 @@ TEST(odcdriver,  test_valid_create_cmd) {
   conf_file.user_name = "admin";
   conf_file.password = "admin";
   unc::odcdriver::OdcVtnCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, obj.create_cmd(key_vtn, val_vtn, ctr));
+  EXPECT_EQ(UNC_RC_SUCCESS, obj.create_cmd(key_vtn, val_vtn, ctr));
   delete ctr;
   ctr= NULL;
 }
@@ -395,7 +395,7 @@ TEST(odcdriver,  read_all_valid_) {
   unc::odcdriver::OdcVtnCommand obj(conf_file);
   std::vector<unc::vtndrvcache::ConfigNode *> value_list;
   void *ptr = NULL;
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,  obj.fetch_config(ctr, ptr, value_list));
+  EXPECT_EQ(UNC_RC_SUCCESS,  obj.fetch_config(ctr, ptr, value_list));
   EXPECT_EQ(2U,  value_list.size());
   for ( std::vector<unc::vtndrvcache::ConfigNode *>::iterator it =
        value_list.begin(); it != value_list.end(); ++it ) {
@@ -439,7 +439,7 @@ TEST(odcdriver,  read_all_invalid_resp) {
   unc::odcdriver::OdcVtnCommand obj(conf_file);
   std::vector<unc::vtndrvcache::ConfigNode *> value_list;
   void *ptr = NULL;
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,  obj.fetch_config(ctr, ptr, value_list));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,  obj.fetch_config(ctr, ptr, value_list));
   EXPECT_EQ(0U,  value_list.size());
   for ( std::vector<unc::vtndrvcache::ConfigNode *>::iterator it =
        value_list.begin(); it != value_list.end(); ++it ) {
@@ -483,7 +483,7 @@ TEST(odcdriver,  get_vtn_list_invalid_resp) {
   unc::odcdriver::OdcVtnCommand obj(conf_file);
   std::vector<unc::vtndrvcache::ConfigNode *> value_list;
   void *ptr = NULL;
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             obj.fetch_config(ctr, ptr, value_list));
   EXPECT_EQ(0U,  value_list.size());
   for ( std::vector<unc::vtndrvcache::ConfigNode *>::iterator it =
@@ -528,7 +528,7 @@ TEST(odcdriver,  read_all_valid_resp_no_vtn) {
   unc::odcdriver::OdcVtnCommand obj(conf_file);
   std::vector<unc::vtndrvcache::ConfigNode *> value_list;
   void *ptr = NULL;
-  EXPECT_EQ(16, obj.fetch_config(ctr, ptr, value_list));
+  EXPECT_EQ(UNC_RC_NO_SUCH_INSTANCE, obj.fetch_config(ctr, ptr, value_list));
   EXPECT_EQ(0U,  value_list.size());
   for ( std::vector<unc::vtndrvcache::ConfigNode *>::iterator it =
        value_list.begin(); it != value_list.end(); ++it ) {
@@ -572,7 +572,7 @@ TEST(odcdriver, test_create_cmd_controller_username) {
           pass.c_str(),  sizeof(val_ctr.password)-1);
 
   unc::odcdriver::OdcVtnCommand obj(conf_file);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE , obj.create_cmd(key_vtn, val_vtn, ctr));
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC , obj.create_cmd(key_vtn, val_vtn, ctr));
   delete ctr;
   ctr= NULL;
 }
index e05b57bde70a6868ca1fb8d5a88894a336b0b121..d6f394e1c05eb83c6be381b1b2b39ed8267371d9 100644 (file)
@@ -24,14 +24,14 @@ class ControllerFramework  {
   ~ControllerFramework() {}
 
 
-  drv_resp_code_t GetDriverByControllerName(std::string& controller_name,
+  UncRespCode GetDriverByControllerName(std::string& controller_name,
                                             controller** ctl, driver** drv) {
     pfc_log_info("%s: res_code:%u ", PFC_FUNCNAME, res_code);
     if (res_code)
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     *ctl = controller::create_controll();
     *drv = driver::create_driver();
-    return DRVAPI_RESPONSE_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 
 
@@ -39,13 +39,13 @@ class ControllerFramework  {
                      controller* ctl , driver* drv) { }
 
 
-  drv_resp_code_t UpdateControllerConfiguration(std::string& controller_name,
+  UncRespCode UpdateControllerConfiguration(std::string& controller_name,
                      controller*, driver*, const key_ctr&, const val_ctr&) {
-    return DRVAPI_RESPONSE_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 
-  drv_resp_code_t RemoveControllerConfiguration(std::string& controller_name) {
-    return DRVAPI_RESPONSE_SUCCESS;
+  UncRespCode RemoveControllerConfiguration(std::string& controller_name) {
+    return UNC_RC_SUCCESS;
   }
 
 
@@ -56,23 +56,23 @@ class ControllerFramework  {
 
   void RegisterDriver(unc_keytype_ctrtype_t controller_type, driver*) { }
 
-  drv_resp_code_t GetControllerInstance(
+  UncRespCode GetControllerInstance(
       std::string& controller_name,
       controller** controller_instance,
       driver** driver_instance) {
     if (res_code)
-      return DRVAPI_RESPONSE_FAILURE;
+      return UNC_DRV_RC_ERR_GENERIC;
     *controller_instance = controller::create_controll();
     *driver_instance = driver::create_driver();
-    return DRVAPI_RESPONSE_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 
-  drv_resp_code_t
+  UncRespCode
       RemoveControllerConfiguration(
           std::string& controller_name,
           controller* controller_instance,
           driver* driver_instance) {
-        return DRVAPI_RESPONSE_SUCCESS;
+        return UNC_RC_SUCCESS;
       }
   static void set_result(uint32_t resp);
   static void set_root_result(uint32_t resp);
index 44975df1d8d1df7a920c2856339a0eec1a57b723..ddba938cfe234baa81b7218883c417ee24296015 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013 NEC Corporation
+ * Copyright (c) 2013-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -26,10 +26,10 @@ class driver_command {
   virtual ~driver_command() {
   }
   virtual unc_key_type_t get_key_type()=0;
-  virtual drv_resp_code_t revoke(unc::driver::controller* ctr_ptr) {
-    return DRVAPI_RESPONSE_SUCCESS;
+  virtual UncRespCode revoke(unc::driver::controller* ctr_ptr) {
+    return UNC_RC_SUCCESS;
   }
-  virtual drv_resp_code_t fetch_config(unc::driver::controller* ctr,
+  virtual UncRespCode fetch_config(unc::driver::controller* ctr,
                                        void* parent_key,
                     std::vector<unc::vtndrvcache::ConfigNode *>&) = 0;
 };
@@ -37,136 +37,136 @@ class driver_command {
 
 class vtn_driver_command: public driver_command {
  public:
-  drv_resp_code_t create_cmd(key_vtn_t& keyvtn_, val_vtn_t& valvtn_,
+  UncRespCode create_cmd(key_vtn_t& keyvtn_, val_vtn_t& valvtn_,
                              controller*)  {
-    return DRVAPI_RESPONSE_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 
-  drv_resp_code_t update_cmd(key_vtn_t& keyvtn_, val_vtn_t& valvtn_,
+  UncRespCode update_cmd(key_vtn_t& keyvtn_, val_vtn_t& valvtn_,
                              controller*)  {
-    return DRVAPI_RESPONSE_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 
-  drv_resp_code_t delete_cmd(key_vtn_t& keyvtn_, val_vtn_t& valvtn_,
+  UncRespCode delete_cmd(key_vtn_t& keyvtn_, val_vtn_t& valvtn_,
                              controller*) {
-    return DRVAPI_RESPONSE_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 
-  drv_resp_code_t validate_op(key_vtn_t& keyvtn_, val_vtn_t& valvtn_,
+  UncRespCode validate_op(key_vtn_t& keyvtn_, val_vtn_t& valvtn_,
                               controller*, uint32_t op)  {
-    return DRVAPI_RESPONSE_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 
   unc_key_type_t get_key_type() {
     return UNC_KT_VTN;
   }
-  drv_resp_code_t fetch_config(
+  UncRespCode fetch_config(
       unc::driver::controller* ctr,
       void* parent_key,
       std::vector<unc::vtndrvcache::ConfigNode *>&) {
-    return DRVAPI_RESPONSE_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 };
 
 class vbr_driver_command: public driver_command {
  public:
-  drv_resp_code_t create_cmd(key_vbr_t& keyvbr_, val_vbr_t& valvbr_,
+  UncRespCode create_cmd(key_vbr_t& keyvbr_, val_vbr_t& valvbr_,
                              unc::driver::controller*)  {
-    return DRVAPI_RESPONSE_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 
 
-  drv_resp_code_t update_cmd(key_vbr_t& keyvbr_, val_vbr_t& valvbr_,
+  UncRespCode update_cmd(key_vbr_t& keyvbr_, val_vbr_t& valvbr_,
                              unc::driver::controller*) {
-    return DRVAPI_RESPONSE_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 
-  drv_resp_code_t delete_cmd(key_vbr_t& keyvbr_, val_vbr_t& valvbr_,
+  UncRespCode delete_cmd(key_vbr_t& keyvbr_, val_vbr_t& valvbr_,
                              unc::driver::controller*)  {
-    return DRVAPI_RESPONSE_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 
-  drv_resp_code_t validate_op(key_vbr_t& keyvbr_, val_vbr_t& valvbr_,
+  UncRespCode validate_op(key_vbr_t& keyvbr_, val_vbr_t& valvbr_,
                               unc::driver::controller*, uint32_t op)  {
-    return DRVAPI_RESPONSE_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 
   unc_key_type_t get_key_type() {
     return UNC_KT_VBRIDGE;
   }
-  drv_resp_code_t fetch_config(
+  UncRespCode fetch_config(
       unc::driver::controller* ctr,
       void* parent_key,
       std::vector<unc::vtndrvcache::ConfigNode *>&) {
-    return DRVAPI_RESPONSE_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 };
 
 class vbrif_driver_command: public driver_command {
  public:
-  drv_resp_code_t create_cmd(key_vbr_if_t& key,
+  UncRespCode create_cmd(key_vbr_if_t& key,
            pfcdrv_val_vbr_if_t& val, unc::driver::controller *conn) {
-    return DRVAPI_RESPONSE_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 
-  drv_resp_code_t update_cmd(key_vbr_if_t& key,
+  UncRespCode update_cmd(key_vbr_if_t& key,
            pfcdrv_val_vbr_if_t& val, unc::driver::controller *conn) {
-    return DRVAPI_RESPONSE_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 
-  drv_resp_code_t delete_cmd(key_vbr_if_t& key,
+  UncRespCode delete_cmd(key_vbr_if_t& key,
             pfcdrv_val_vbr_if_t& val, unc::driver::controller *conn) {
-    return DRVAPI_RESPONSE_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 
-  drv_resp_code_t validate_op(key_vbr_if_t& key,
+  UncRespCode validate_op(key_vbr_if_t& key,
             pfcdrv_val_vbr_if_t& val, unc::driver::controller* ctr,
                               uint32_t op) {
-    return DRVAPI_RESPONSE_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 
   unc_key_type_t get_key_type() {
     return UNC_KT_VBR_IF;
   }
-  drv_resp_code_t fetch_config(
+  UncRespCode fetch_config(
       unc::driver::controller* ctr,
       void* parent_key,
       std::vector<unc::vtndrvcache::ConfigNode *>&) {
-    return DRVAPI_RESPONSE_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 };
 
 class controller_command: public driver_command {
  public:
-  drv_resp_code_t create_cmd(key_ctr_t& key,
+  UncRespCode create_cmd(key_ctr_t& key,
                val_ctr_t & val, unc::driver::controller *conn) {
-    return DRVAPI_RESPONSE_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 
-  drv_resp_code_t update_cmd(key_ctr_t & key,
+  UncRespCode update_cmd(key_ctr_t & key,
                    val_ctr_t& val, unc::driver::controller *conn) {
-    return DRVAPI_RESPONSE_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 
-  drv_resp_code_t delete_cmd(key_ctr_t & key,
+  UncRespCode delete_cmd(key_ctr_t & key,
                 val_ctr_t & val, unc::driver::controller *conn) {
-    return DRVAPI_RESPONSE_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 
-  drv_resp_code_t validate_op(key_ctr_t & key,
+  UncRespCode validate_op(key_ctr_t & key,
                      val_ctr_t& val, unc::driver::controller* ctr,
                              uint32_t op) {
-    return DRVAPI_RESPONSE_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 
   unc_key_type_t get_key_type() {
     return UNC_KT_CONTROLLER;
   }
-  drv_resp_code_t fetch_config(
+  UncRespCode fetch_config(
       unc::driver::controller* ctr,
       void* parent_key,
       std::vector<unc::vtndrvcache::ConfigNode *>&) {
-    return DRVAPI_RESPONSE_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 };
 
@@ -175,34 +175,34 @@ class controller_command: public driver_command {
       /**
        * @brief    - Method to create Vbr VLAN-Map in the controller
        * @param[in]- key_vlan_map_t, val_vlan_map_t, controller*
-       * @retval   - DRVAPI_RESPONSE_SUCCESS/DRVAPI_RESPONSE_FAILURE
+       * @retval   - UNC_RC_SUCCESS/UNC_DRV_RC_ERR_GENERIC
        */
-      drv_resp_code_t create_cmd(key_vlan_map_t& key,
+      UncRespCode create_cmd(key_vlan_map_t& key,
                                          val_vlan_map_t& val,
                                          unc::driver::controller *conn) {
-    return DRVAPI_RESPONSE_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 
       /**
        * @brief    - Method to update Vbr VLAN-Map in the controller
        * @param[in]- key_vlan_map_t, val_vlan_map_t, controller*
-       * @retval   - DRVAPI_RESPONSE_SUCCESS/DRVAPI_RESPONSE_FAILURE
+       * @retval   - UNC_RC_SUCCESS/UNC_DRV_RC_ERR_GENERIC
        */
-      drv_resp_code_t update_cmd(key_vlan_map_t& key,
+      UncRespCode update_cmd(key_vlan_map_t& key,
                                          val_vlan_map_t& val,
                                          unc::driver::controller *conn) {
-    return DRVAPI_RESPONSE_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 
       /**
        * @brief    - Method to delete Vbr VLAN-Map in the controller
        * @param[in]- key_vlan_map_t, val_vlan_map_t, controller*
-       * @retval   - DRVAPI_RESPONSE_SUCCESS/DRVAPI_RESPONSE_FAILURE
+       * @retval   - UNC_RC_SUCCESS/UNC_DRV_RC_ERR_GENERIC
        */
-      drv_resp_code_t delete_cmd(key_vlan_map_t& key,
+      UncRespCode delete_cmd(key_vlan_map_t& key,
                                          val_vlan_map_t& val,
                                          unc::driver::controller *conn) {
-    return DRVAPI_RESPONSE_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 
       /**
@@ -218,62 +218,62 @@ class controller_command: public driver_command {
 
 class root_driver_command : public driver_command {
  public:
-  drv_resp_code_t
+  UncRespCode
       create_cmd(key_root_t& key,
                  val_root_t & val,
                  unc::driver::controller *conn) {
-        return DRVAPI_RESPONSE_SUCCESS;
+        return UNC_RC_SUCCESS;
       }
 
-  drv_resp_code_t
+  UncRespCode
       update_cmd(key_root_t& key,
                  val_root_t & val,
                  unc::driver::controller *conn) {
-        return DRVAPI_RESPONSE_SUCCESS;
+        return UNC_RC_SUCCESS;
       }
 
-  drv_resp_code_t
+  UncRespCode
       delete_cmd(key_root_t& key,
                  val_root_t & val,
                  unc::driver::controller *conn) {
-        return DRVAPI_RESPONSE_SUCCESS;
+        return UNC_RC_SUCCESS;
       }
 
-  drv_resp_code_t
+  UncRespCode
       validate_op(key_root_t& key,
                   unc::driver::val_root_t & val,
                   unc::driver::controller *conn,
                   uint32_t op) {
-        return DRVAPI_RESPONSE_SUCCESS;
+        return UNC_RC_SUCCESS;
       }
 
-  drv_resp_code_t
+  UncRespCode
       read_root_child(std::vector<unc::vtndrvcache::ConfigNode*>&,
                       unc::driver::controller*) {
         if (set_root_child == 1) {
-          return DRVAPI_RESPONSE_NO_SUCH_INSTANCE;
+          return UNC_RC_NO_SUCH_INSTANCE;
         } else if (set_root_child == 2) {
-          return DRVAPI_RESPONSE_FAILURE;
+          return UNC_DRV_RC_ERR_GENERIC;
         } else {
-          return DRVAPI_RESPONSE_SUCCESS;
+          return UNC_RC_SUCCESS;
         }
       }
 
-  drv_resp_code_t
+  UncRespCode
       read_all_child(unc::vtndrvcache::ConfigNode*,
                      std::vector<unc::vtndrvcache::ConfigNode*>&,
                      unc::driver::controller*) {
-        return DRVAPI_RESPONSE_SUCCESS;
+        return UNC_RC_SUCCESS;
       }
 
   unc_key_type_t get_key_type() {
     return UNC_KT_ROOT;
   }
-  drv_resp_code_t fetch_config(
+  UncRespCode fetch_config(
       unc::driver::controller* ctr,
       void* parent_key,
       std::vector<unc::vtndrvcache::ConfigNode *>&) {
-    return DRVAPI_RESPONSE_SUCCESS;
+    return UNC_RC_SUCCESS;
   }
 
   static uint32_t set_root_child;
index 8ad6ff9b5690cee6d8091d60d0aa175b38037dde..d4e6cc06c739b1878a0396d466eda7593300e89c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013 NEC Corporation
+ * Copyright (c) 2013-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -20,11 +20,11 @@ namespace unc {
 namespace driver {
 class KtHandler {
  public:
-  virtual drv_resp_code_t handle_request(pfc::core::ipc::ServerSession &sess,
+  virtual UncRespCode handle_request(pfc::core::ipc::ServerSession &sess,
                                     odl_drv_request_header_t &request_header,
                                          ControllerFramework* crtl_fw)=0;
 
-  virtual drv_resp_code_t  execute_cmd(unc::vtndrvcache::ConfigNode *cfgptr,
+  virtual UncRespCode  execute_cmd(unc::vtndrvcache::ConfigNode *cfgptr,
                                        unc::driver::controller* ctl_ptr,
                                        unc::driver::driver* drv_ptr)=0;
 
index 71791e7563fd86722dc6c154a99e0b0dfba8572a..6c4b7e28b2dcdc6f02ac9f3b48e062f6491d4f2c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -70,6 +70,13 @@ class ODBCManager {
   /**close the connection at the end of application, free the allocated
    * handlers and environment */
   ODBCM_RC_STATUS CloseDBConnection(OdbcmConnectionHandler *conn_obj);
+
+  ODBCM_RC_STATUS AssignDBConnection(OdbcmConnectionHandler *&db_conn,
+                                     uint32_t session_id, uint32_t config_id = 0);
+  ODBCM_RC_STATUS PoolDBConnection(OdbcmConnectionHandler *&conn_obj,
+                                   uint32_t session_id, uint32_t config_id = 0);
+  ODBCM_RC_STATUS FreeingConnections(bool IsAllOrUnused);
+
   /** getter method for db_table_list_map_ private member*/
   std::map<int, std::vector<std::string> >& get_db_table_list_map_();
   /** getter method for odbcm_tables_column_map_ private member*/
index 22fc27ba9ed681b994b4a150787d15bdd31be47a..933f881650b2c9f4dd641f4a58d64299c21abaab 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -69,6 +69,23 @@ ODBCManager::CloseDBConnection(OdbcmConnectionHandler *conn_obj) {
   return ODBCM_RC_SUCCESS;
 }
 
+ODBCM_RC_STATUS
+ODBCManager:: AssignDBConnection(OdbcmConnectionHandler *&db_conn,
+                                 uint32_t session_id, uint32_t config_id) {
+  return ODBCM_RC_SUCCESS;
+}
+
+ODBCM_RC_STATUS
+ODBCManager::PoolDBConnection(OdbcmConnectionHandler *&conn_obj,
+                      uint32_t session_id, uint32_t config_id) {
+   return ODBCM_RC_SUCCESS;
+}
+
+ODBCM_RC_STATUS
+ODBCManager::FreeingConnections(bool IsAllOrUnused) {
+  return ODBCM_RC_SUCCESS;
+}
+
 std::string
 ODBCManager::GetTableName(ODBCMTable table_id) {
   switch (table_id) {
@@ -150,7 +167,7 @@ ODBCManager::ClearOneRow(unc_keytype_datatype_t, DBTableSchema&,
 
 ODBCM_RC_STATUS
 ODBCManager::GetSiblingCount(unc_keytype_datatype_t, DBTableSchema&,
-                    uint32_t &count, OdbcmConnectionHandler *conn_obj) {
+                             uint32_t &count, OdbcmConnectionHandler *conn_obj) {
   count = sibling_count;
   return stub_getMappedResultCode(ODBCManager::GETSIBLINGCOUNT);
 }
diff --git a/coordinator/test/modules/stub/capa_module/capa_intf.hh b/coordinator/test/modules/stub/capa_module/capa_intf.hh
new file mode 100644 (file)
index 0000000..f567409
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+#ifndef CAPA_INTF_HH_
+#define CAPA_INTF_HH_
+
+#include <string>
+
+#include "unc/config.h"
+#include "unc/keytype.h"
+
+namespace unc {
+namespace capa {
+
+class CapaIntf {
+ public:
+  virtual ~CapaIntf() {}
+  virtual bool  GetInstanceCount(unc_keytype_ctrtype_t ctrlr_type,
+                                 const std::string &version,
+                                 unc_key_type_t keytype,
+                                 uint32_t &instance_count) = 0;
+  virtual bool GetCreateCapability(unc_keytype_ctrtype_t ctrlr_type,
+                                   const std::string &version,
+                                   unc_key_type_t keytype,
+                                   uint32_t *instance_count,
+                                   uint32_t *num_attrs,
+                                   const uint8_t **attrs) = 0;
+  virtual bool GetUpdateCapability(unc_keytype_ctrtype_t ctrlr_type,
+                                   const std::string &version,
+                                   unc_key_type_t keytype,
+                                   uint32_t *num_attrs,
+                                   const uint8_t **attrs) = 0;
+
+  virtual bool GetReadCapability(unc_keytype_ctrtype_t ctrlr_type,
+                                 const std::string &version,
+                                 unc_key_type_t keytype,
+                                 uint32_t *num_attrs,
+                                 const uint8_t **attrs) = 0;
+
+  virtual bool GetStateCapability(unc_keytype_ctrtype_t ctrlr_type,
+                                  const std::string &version,
+                                  unc_key_type_t keytype,
+                                  uint32_t *num_attrs,
+                                  const uint8_t **attrs) = 0;
+
+  static const uint32_t kNumberOfAvailability = 4;
+};
+                                                                       // NOLINT
+} /* namespace capctrl */
+} /* namespace unc */
+
+#endif  // CAPA_INTF_HH_
index 66139c3804baaedacf8f4612682ded43b33038ae..b60a1dde7b001d471d941f3e8aea9aabee3c5a5f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -676,11 +676,11 @@ class DalDmlIntf {
      *     dummy address. Do not pass NULL address.
      *
      */
-    virtual DalResultCode CopyModifiedRecords(
-                    const UpllCfgType dest_cfg_type,
-                    const UpllCfgType src_cfg_type,
-                    const DalTableIndex table_index,
-                    const DalBindInfo *output_and_match_attr_info)= 0;
+    virtual DalResultCode CopyModifiedRecords(const UpllCfgType dest_cfg_type,
+                                    const UpllCfgType src_cfg_type,
+                                    const DalTableIndex table_index,
+                                    const DalBindInfo *bind_info,
+                                    const unc_keytype_operation_t op) const = 0;
 
     /**
      * CopyMatchingRecords
index d66ad665f3bd575ca94144a8a5250b50e5c3f209..5a5533fe63839ced20e7ddf2ee1ecc708082cc4c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -25,6 +25,17 @@ DalOdbcMgr::DalOdbcMgr(void) {
 DalOdbcMgr::~DalOdbcMgr(void) {
 }
 
+DalOdbcMgr* DalOdbcMgr::GetAlarmRwConn() {
+  return new DalOdbcMgr();
+}
+
+upll_rc_t DalOdbcMgr::DalTxClose(DalOdbcMgr *dom, bool commit) {
+  return UPLL_RC_SUCCESS;
+}
+
+void ReleaseRwConn(DalOdbcMgr *dom) {
+}
+
 DalResultCode DalOdbcMgr::Init(void) {
   return stub_getMappedResultCode(DalOdbcMgr::INIT);
 }
@@ -163,9 +174,11 @@ DalResultCode DalOdbcMgr::CopyEntireRecords(
 }
 
 DalResultCode DalOdbcMgr::CopyModifiedRecords(
-  const UpllCfgType dest_cfg_type, const UpllCfgType src_cfg_type,
-  const DalTableIndex table_index,
-  const DalBindInfo *output_and_match_attr_info)  {
+                                    const UpllCfgType dest_cfg_type,
+                                    const UpllCfgType src_cfg_type,
+                                    const DalTableIndex table_index,
+                                    const DalBindInfo *bind_info,
+                                    const unc_keytype_operation_t op) const {
   return stub_getMappedResultCode(DalOdbcMgr::COPY_MODIFY);
 }
 
index cd181cd9570df6e29b1958e4df2a8576cbad8099..c08372f0362e06298b33f417d9a9b48c6efde7ee 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -25,6 +25,7 @@
 #include <iostream>
 #include <map>
 #include <list>
+#include <unc/upll_errno.h>
 
 using namespace std;
 
@@ -69,6 +70,7 @@ public:
 
   DalOdbcMgr(void);
   ~DalOdbcMgr(void);
+  DalOdbcMgr *GetAlarmRwConn();
 
   DalResultCode Init(void);
   DalResultCode ConnectToDb(const DalConnType conn_type) const;
@@ -76,7 +78,14 @@ public:
   DalResultCode CommitTransaction() const;
   DalResultCode RollbackTransaction() const;
 
+  upll_rc_t DalTxClose(DalOdbcMgr *dom, bool commit);
+  void ReleaseRwConn(DalOdbcMgr *dom);
+
+
   DalConnType get_conn_type();
+  inline void ClearDirty() const { }
+
+  inline DalConnState get_conn_state() { return conn_state_; }
 
   DalResultCode GetSingleRecord(
     const UpllCfgType cfg_type, const DalTableIndex table_index,
@@ -153,10 +162,11 @@ public:
                                   const DalTableIndex table_index,
                                   const DalBindInfo *output_attr_info);
 
-  DalResultCode CopyModifiedRecords(
-    const UpllCfgType dest_cfg_type, const UpllCfgType src_cfg_type,
-    const DalTableIndex table_index,
-    const DalBindInfo *output_and_match_attr_info);
+  DalResultCode CopyModifiedRecords(const UpllCfgType dest_cfg_type,
+                                    const UpllCfgType src_cfg_type,
+                                    const DalTableIndex table_index,
+                                    const DalBindInfo *bind_info,
+                                    const unc_keytype_operation_t op) const ;
 
   DalResultCode CopyModifiedInsertRecords(
     const UpllCfgType dest_cfg_type, const UpllCfgType src_cfg_type,
@@ -195,6 +205,8 @@ public:
   static void stub_setSiblingCount(uint32_t sibling_count1) {
     sibling_count_ = sibling_count1;
   }
+  void MakeAllDirty() const { }
+
 
   static void clearStubData() {
     method_resultcode_map.clear();
@@ -212,6 +224,7 @@ public:
 private:
   DalResultCode stub_getMappedResultCode(Method) const;
 
+
   inline DalResultCode
   initCursor(DalCursor **cursor, const DalBindInfo *info, Method type) const
   {
@@ -237,6 +250,7 @@ private:
   static  bool exists_;
   static uint32_t sibling_count_;
   mutable DalConnType conn_type_;
+  mutable DalConnState conn_state_;
   static map<uint8_t,DalResultCode> resultcodes;
   static uint32_t count;
 };  // class DalOdbcMgr
index abac23888a2dd4b3d71270e0fb57a70ce716e3c8..8a735dcea60f8498ce7a4f07ce72d6cef12337e2 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -134,16 +134,19 @@ enum kVbrVlanMapIndex {
   kDbiLogicalPortId,
   kDbiLogicalPortIdValid,
   kDbiVlanid,
+  kDbiBdryRefCount,
   kDbiCtrlrName,
   kDbiDomainId,
   kDbiVbrVlanMapFlags,
   kDbiValidVlanid,
+  kDbiValidBdryRefCount,
   kDbiCsRowStatus,
   kDbiCsVlanid,
   kDbiVbrVlanMapNumCols
 };
 }
 
+
 namespace vbridge_interface {
 static const uint8_t kVbrIfNumPks = 3;
 enum kVbrIfIndex {
index 2376e5b6e193c8d4dc65c0448fed930efab8b146..0f1298702791434d624e52e1bc2225ffbaef1010 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -81,13 +81,18 @@ class ClientSession {
   int   addOutput(const std::string &data);
   int   addOutput(const uint8_t *data, uint32_t length);
   int   addOutput(const pfc_ipcstdef_t &def, pfc_cptr_t data);
-  int    addOutput(val_logical_port_st&);
-  int    addOutput(val_logical_port&);
-  int    addOutput(key_boundary_t&);
+  int   addOutput(val_logical_port_st&);
+  int   addOutput(val_logical_port&);
+  int   addOutput(key_boundary_t&);
   int   addOutput(val_ctr&);
   int   addOutput(key_logical_port);
-  int    addOutput(key_ctr&);
+  int   addOutput(key_ctr&);
   int   addOutput(void);
+  int   addOutput(key_port&);
+  int   addOutput(key_switch&);
+  int   addOutput(key_ctr_dataflow&);
+  int   addOutput(key_dataflow&);
+
 
   int   getResponse(uint32_t index, int8_t &data);
   int   getResponse(uint32_t index, uint8_t &data);
@@ -110,19 +115,27 @@ class ClientSession {
                     pfc_ptr_t datap);
 
 
-  int    getResponse(uint32_t, val_ctr_domain_st&);
-  int    getResponse(uint32_t, val_port_st&);
-  int    getResponse(uint32_t, key_switch_t&);
-  int    getResponse(uint32_t, val_phys_path_fault_alarm_t&);
-  int    getResponse(uint32_t, key_ctr&);
+  int   getResponse(uint32_t, val_ctr_domain_st&);
+  int   getResponse(uint32_t, val_port_st&);
+  int   getResponse(uint32_t, key_switch_t&);
+  int   getResponse(uint32_t, val_phys_path_fault_alarm_t&);
+  int   getResponse(uint32_t, key_ctr&);
   int   getResponse(uint32_t, key_ctr_domain_t&);
   int   getResponse(uint32_t, val_switch_st&);
   int   getResponse(uint32_t, val_link_st&);
   int   getResponse(uint32_t, val_ctr_st&);
   int   getResponse(uint32_t, key_link_t&);
   int   getResponse(uint32_t, key_port_t&);
-
-
+  int   getResponse(uint32_t, val_port_stats_t&);
+  int   getResponse(uint32_t, val_switch_st_detail_t&);
+  int   getResponse(uint32_t, val_df_data_flow_st_t&);
+  int   getResponse(uint32_t, key_dataflow_t&);
+  int   getResponse(uint32_t, pfcdrv_network_mon_alarm_data_t&);
+  int   getResponse(uint32_t, key_vtn&);
+  int   getResponse(uint32_t, pfcdrv_policier_alarm_data_t&);
+  int   getResponse(uint32_t, val_path_fault_alarm_t&);
+  int   getResponse(uint32_t, key_boundary_t&);
+  int   getResponse(uint32_t, val_boundary_st_t&);
   uint32_t getResponseCount(void);
   int getResponseType(uint32_t index, pfc_ipctype_t& type);
 
index 4e08a33799f96fbd8514fa36827daf22834d4d79..b65aabd63896cd7d8acb67ecb50a3316a987638b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -50,7 +50,6 @@ class ServerSession {
    */
   int   setTimeout(const pfc_timespec_t *timeout = NULL);
   int   getClientAddress(pfc_ipccladdr_t &claddr);
-
   int   addOutput(int8_t data);
   int   addOutputInt8(int8_t data);
   int   addOutput(uint8_t data);
@@ -104,13 +103,17 @@ class ServerSession {
   int addOutput(key_root& data);
   int addOutput(val_path_fault_alarm_t& data);
   int addOutput(val_port_st_neighbor& data);
-
-  int  addOutput(val_vbr_if_t&);
-  int  addOutput(key_vbr_if_t&);
-  int  addOutput(val_vbr_t&);
-  int  addOutput(key_vbr_t&);
-  int  addOutput(val_vtn_t&);
-  int  addOutput(key_vtn_t&);
+  int addOutput(val_port_stats&);
+  int addOutput(val_vbr_if_t&);
+  int addOutput(key_vbr_if_t&);
+  int addOutput(val_vbr_t&);
+  int addOutput(key_vbr_t&);
+  int addOutput(val_vtn_t&);
+  int addOutput(key_vtn_t&);
+  int addOutput(key_dataflow&);
+  int addOutput(val_switch_st_detail_t&);
+  int addOutput(val_df_data_flow_st_t&);
+  int addOutput(key_ctr_dataflow&);
 
   int   getArgument(uint32_t index, int8_t &data);
   int   getArgument(uint32_t index, uint8_t &data);
@@ -152,7 +155,8 @@ class ServerSession {
   int getArgument(int index, val_port_st_t& key);
   int getArgument(int index, key_link_t& key);
   int getArgument(int index, val_link_st_t& key);
-
+  int getArgument(int, key_ctr_dataflow_t&);
+  int getArgument(int, key_dataflow_t&);
 
   uint32_t getArgCount(void);
   int   getArgType(uint32_t index, pfc_ipctype_t &type);
diff --git a/coordinator/test/modules/stub/include/cxx/pfcxx/synch.hh b/coordinator/test/modules/stub/include/cxx/pfcxx/synch.hh
new file mode 100644 (file)
index 0000000..6f3dfff
--- /dev/null
@@ -0,0 +1,221 @@
+/*
+ * Copyright (c) 2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+#ifndef        _PFCXX_SYNCH_HH
+#define        _PFCXX_SYNCH_HH
+
+/*
+ * Definitions for thread synchronization utilities in the C++ world.
+ */
+
+namespace pfc {
+namespace core {
+
+/*
+ * Mutex
+ */
+class Mutex
+{
+public:
+    /*
+     * Create a new mutex object.
+     */
+    Mutex(void)
+    {
+    }
+
+    /*
+     * Destructor of a mutex object.
+     */
+    ~Mutex(void)
+    {
+    }
+
+    /*
+     * Acquire the mutex lock.
+     */
+    inline void
+    lock(void)
+    {
+    }
+
+    inline int
+    trylock(void)
+    {
+      return 1;
+    }
+
+    inline int
+    timedlock(const pfc_timespec_t &timeout)
+    {
+      return 1;
+    }
+
+    inline void
+    unlock(void)
+    {
+    }
+
+protected:
+    explicit Mutex(bool recursive)
+    {
+    }
+};
+
+class ScopedMutex
+{
+public:
+    explicit ScopedMutex(Mutex &m)
+    {
+    }
+
+    ~ScopedMutex()
+    {
+    }
+
+    inline void
+    unlock(void)
+    {
+    }
+
+};
+
+class ReadWriteLock
+{
+public:
+    ReadWriteLock(void)
+    {
+    }
+
+    ~ReadWriteLock(void)
+    {
+    }
+
+    inline void
+    rdlock(void)
+    {
+    }
+
+    inline int
+    tryrdlock(void)
+    {
+      return 1;
+    }
+
+    inline int
+    timedrdlock(const pfc_timespec_t &timeout)
+    {
+        return 1;
+    }
+
+    inline void
+    wrlock(void)
+    {
+    }
+
+    inline int
+    trywrlock(void)
+    {
+        return 1;
+    }
+
+    inline int
+    timedwrlock(const pfc_timespec_t &timeout)
+    {
+        return 1;
+    }
+
+    inline void
+    unlock(void)
+    {
+    }
+
+};
+
+class Semaphore
+{
+public:
+    explicit Semaphore(unsigned int value)
+    {
+    }
+
+    ~Semaphore(void)
+    {
+    }
+
+    inline void
+    post(void)
+    {
+    }
+
+    inline void
+    wait(void)
+    {
+    }
+
+    inline int
+    trywait(void)
+    {
+        return 1;
+    }
+
+    inline int
+    timedwait(const pfc_timespec_t &timeout)
+    {
+        return 1;
+    }
+
+    inline int
+    getvalue(void)
+    {
+        return 1;
+    }
+
+};
+
+class Condition
+{
+ public:
+  Condition(void)
+  {
+  }
+
+  ~Condition(void)
+  {
+  }
+
+  inline void
+      signal(void)
+      {
+      }
+
+  inline void
+      broadcast(void)
+      {
+      }
+  inline void
+      wait(Mutex &m)
+      {
+      }
+
+  inline int
+      timedwait(Mutex &m, const pfc_timespec_t &timeout)
+      {
+        return 1;
+      }
+
+ private:
+  /* PFC cond object. */
+  pfc_cond_t  _cond;
+};
+
+}      // core
+}      // pfc
+
+#endif /* !_PFCXX_SYNCH_HH */
diff --git a/coordinator/test/modules/stub/include/uncxx/dataflow.hh b/coordinator/test/modules/stub/include/uncxx/dataflow.hh
new file mode 100644 (file)
index 0000000..996747b
--- /dev/null
@@ -0,0 +1,266 @@
+/*
+ * Copyright (c) 2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+#ifndef UNC_DATAFLOW_UTIL_HH_
+#define UNC_DATAFLOW_UTIL_HH_
+
+#include <cxx/pfcxx/ipc_server.hh>
+#include <string>
+#include <map>
+#include <vector>
+#include <stack>
+#include <sstream>
+#include <cxx/pfcxx/ipc_client.hh>
+#include <unc/keytype.h>
+
+using std::vector;
+using std::map;
+using std::stack;
+using std::string;
+using std::stringstream;
+using std::endl;
+using pfc::core::ipc::ServerSession;
+using pfc::core::ipc::ClientSession;
+
+#include "unc_dataflow.h"
+
+#define kMaxLenCtrlrDomId  31
+
+namespace unc {
+namespace dataflow {
+
+enum IpctStructNum {
+  kidx_val_df_data_flow_cmn = 0,
+  kidx_val_vtn_dataflow_cmn
+};
+
+struct key_vtn_ctrlr_dataflow {
+  key_vtn  vtn_key;
+  uint8_t    ctrlr[32];
+  uint8_t    domain[32];
+  uint16_t   vlanid;
+  uint8_t    src_mac_address[6];
+  key_vtn_ctrlr_dataflow(key_vtn_dataflow_t *key_vtn_df, uint8_t *in_ctrlr,
+                         uint8_t *in_dom) {
+    vtn_key = key_vtn_df->vtn_key;
+    vlanid = key_vtn_df->vlanid;
+    memcpy(ctrlr, in_ctrlr, sizeof(ctrlr));
+    memcpy(domain, in_dom, sizeof(domain));
+    memcpy(src_mac_address, key_vtn_df->src_mac_address, sizeof(src_mac_address));
+
+  }
+};
+
+
+typedef struct actions_vect_st {
+  UncDataflowFlowActionType action_type;
+  void *action_st_ptr;
+} val_actions_vect_st;
+
+class AddlData {
+ public:
+  AddlData();
+  ~AddlData();
+  uint32_t  reason;
+  uint32_t  controller_count;
+  uint32_t  max_dom_traversal_count;
+  uint32_t  current_traversal_count;
+  map<string, uint32_t> traversed_controllers;
+  string nonpfc_ingr_bdry_id;
+};
+
+class DataflowDummy : public pfc::core::Module {
+ public:
+
+  pfc_bool_t init() {
+    return true;
+  }
+  pfc_bool_t fini() {
+    return true;
+  }
+ private:
+  static DataflowDummy* dataflow_dummy_;
+};
+
+class DataflowCmn;
+
+class DataflowDetail {
+ public:
+  DataflowDetail(IpctStructNum df_type, unc_keytype_ctrtype_t ctr_type = UNC_CT_PFC) {
+  }
+  ~DataflowDetail() {
+  }
+  // Read the DataflowCmn details from session as mentioned in FD API doc
+  int sessReadDataflow(ClientSession& sess, uint32_t& getres_pos) {
+    return 1;
+  }
+  val_df_data_flow_cmn_t *df_common;
+  val_vtn_dataflow_cmn_t *vtn_df_common;
+  map<UncDataflowFlowMatchType, void *> matches;
+  vector<val_actions_vect_st *> actions;
+  vector<val_df_data_flow_path_info_t *> path_infos;
+  vector<val_vtn_dataflow_path_info_t *> vtn_path_infos;
+  void *ckv_egress;
+  uint32_t flow_traversed;
+  IpctStructNum st_num_;
+};
+
+class DataflowCmn {
+ public:
+  DataflowCmn(bool isHead, DataflowDetail *df_segm) {
+  }
+  ~DataflowCmn() {
+  }
+  DataflowDetail *df_segment;
+  bool is_head;
+  map<UncDataflowFlowMatchType, void *> output_matches;
+  vector<DataflowCmn *> next;
+  DataflowCmn *head;
+  AddlData *addl_data;
+  uint32_t total_flow_count;
+  bool is_vlan_src_mac_changed_;
+  DataflowCmn *parent_node;
+
+  std::string ToStr() {
+    return "aa";
+  }
+  // Write the DataflowCmn details into session as mentioned in FD API doc
+  int sessOutDataflow(ServerSession& sess, int& putresp_pos) {
+    return 1;
+  }
+  // Append given nextCtrlrFlow to 'next' vector
+  UncDataflowReason appendFlow(DataflowCmn* nextCtrlrFlow
+                  , map<string, uint32_t> & ctrlr_dom_count_map) {
+    return UNC_DF_RES_SUCCESS;
+  }
+
+  // check given 'output_matches' against 'matches'
+  bool check_match_condition(map <UncDataflowFlowMatchType
+                            , void *> output_matches) {
+    return true;
+  }
+  // Apply 'actions' to 'matches' and fill 'output_matches'
+  void apply_action(){}
+  bool CompareDataflow(DataflowCmn *otherflow) { return true; }
+
+  static string get_string(const AddlData *ptr) { return "dummy"; }
+  static string get_string(const key_dataflow_t &k) { return "dummy" ; }
+  static string get_string(const key_ctr_dataflow_t &k) { return "dummy" ; }
+
+  static string get_string(const val_df_data_flow_cmn_t &val_obj) { return "dummy" ;}
+
+  static string get_string(const val_df_flow_match_t &val_obj) { return "dummy" ; }
+  static string get_string(const val_df_flow_match_in_port_t &val_obj) { return "dummy"; }
+  static string get_string(const val_df_flow_match_dl_addr_t &val_obj) { return "dummy" ; }
+  static string get_string(const val_df_flow_match_dl_type_t &val_obj) { return "dummy"; }
+  static string get_string(const val_df_flow_match_vlan_id_t &val_obj) { return "dummy"; }
+  static string get_string(const val_df_flow_match_vlan_pcp_t &val_obj) { return "dummy"; }
+  static string get_string(const val_df_flow_match_ip_tos_t &val_obj) { return "dummy" ; }
+  static string get_string(const val_df_flow_match_ip_proto_t &val_obj) { return "dummy"; }
+  static string get_string(const val_df_flow_match_ipv4_addr_t &val_obj) { return "dummy"; }
+  static string get_string(const val_df_flow_match_tp_port_t &val_obj) { return "dummy"; }
+  static string get_string(const val_df_flow_match_ipv6_addr_t &val_obj){ return "dummy"; }
+
+  static string get_string(const val_df_flow_action_t &val_obj){ return "dummy"; }
+  static string get_string(const val_df_flow_action_output_port_t &val_obj){ return "dummy"; }
+  static string get_string(const val_df_flow_action_enqueue_port_t &val_obj){ return "dummy"; }
+  static string get_string(const val_df_flow_action_set_dl_addr_t &val_obj){ return "dummy"; }
+  static string get_string(const val_df_flow_action_set_vlan_id_t &val_obj){ return "dummy"; }
+  static string get_string(const val_df_flow_action_set_vlan_pcp_t &val_obj) { return "dummy"; }
+  static string get_string(const val_df_flow_action_set_ipv4_t &val_obj){ return "dummy"; }
+  static string get_string(const val_df_flow_action_set_ip_tos_t &val_obj){ return "dummy"; }
+  static string get_string(const val_df_flow_action_set_tp_port_t &val_obj) { return "dummy"; }
+  static string get_string(const val_df_flow_action_set_ipv6_t &val_obj) { return "dummy"; }
+
+  static string get_string(const val_df_data_flow_path_info_t &val_obj) { return "dummy"; }
+  static bool Compare(const key_dataflow_t& lhs, const key_dataflow_t& rhs) { return true; }
+  void deep_copy() {}
+ /* VTN */
+  static string get_string(const key_vtn_dataflow_t &k) { return "dummy"; }
+  static string get_string(const val_vtn_dataflow_path_info_t &val_obj) { return "dummy"; }
+  static string get_string(const val_vtn_dataflow_cmn_t &val_obj) { return "dummy"; }
+  static bool Compare(const key_vtn_ctrlr_dataflow& lhs, const key_vtn_ctrlr_dataflow& rhs) { return false;}
+  bool CompareVtnDataflow(DataflowCmn *otherflow) { return true; }
+
+};
+
+struct KeyDataflowCmp {
+  bool operator()(const key_dataflow_t& lhs, const key_dataflow_t& rhs) {
+    return false;
+  }
+};
+
+
+
+struct KeyVtnDataflowCmp {
+  bool operator()(const key_vtn_ctrlr_dataflow &lhs, const key_vtn_ctrlr_dataflow &rhs) {
+    return false;
+  }
+};
+
+class DataflowUtil {
+ public:
+  ~DataflowUtil() { }
+  // Write the DataflowCmn details into NB session as mentioned in FD API doc
+  int sessOutDataflows(ServerSession& sess) { return 1; }
+
+  // Method for PFCDriver module. Write the DataflowCmn details
+  // into physical session as mentioned in FD API doc
+  int sessOutDataflowsFromDriver(ServerSession& sess) { return 1; }
+  uint32_t storeFlowDetails(key_dataflow_t, vector<DataflowDetail*> )  { return 1; }
+
+  uint32_t get_total_flow_count() { return 1;}
+  // Append given firstCtrlrFlow to 'firstCtrlrFlows' vector
+  uint32_t appendFlow(DataflowCmn* firstCtrlrFlow) { return 1;}
+
+  static string get_string(const val_df_data_flow_t &val_obj) { return "dummy"; }
+  static string get_string(const val_df_data_flow_st_t &val_obj) { return "dummy"; }
+  static string get_string(const val_vtn_dataflow_t &val_obj) { return "dummy"; }
+  static bool checkMacAddress(uint8_t macaddr[6], uint8_t macaddr_mask[6]
+                             , uint8_t checkmacaddr[6]) { return true; }
+  static bool checkMacAddress(uint8_t macaddr[6], uint8_t macaddr_mask[6]
+                             , uint8_t checkmacaddr[6]
+                             , uint8_t checkmacaddr_mask[6]) { return true; }
+  static bool checkIPv4Address(in_addr ipaddr, in_addr ip_mask
+                             , in_addr checkipaddr) { return true; }
+  static bool checkIPv4Address(uint32_t ipaddr, uint32_t ip_mask
+                             , uint32_t checkipaddr) { return true; }
+  static bool checkByte(uint8_t ipaddr, uint8_t ip_mask
+                             , uint8_t checkipaddr) { return true; }
+  static bool checkByte(uint8_t ipaddr, uint8_t ip_mask
+                             , uint8_t checkipaddr, uint8_t chk_ip_mask) { return true; }
+  static bool checkIPv4Address(in_addr ipaddr, in_addr ip_mask
+                             , in_addr checkipaddr, in_addr chk_ip_mask) { return true; }
+  static bool checkIPv4Address(uint32_t ipaddr, uint32_t ip_mask
+                             , uint32_t checkipaddr, uint32_t chk_ip_mask) { return true; }
+  static bool checkIPv6Address(in6_addr ipv6addr, in6_addr ipv6_mask
+                             , in6_addr checkipv6addr) { return true; }
+  static bool checkIPv6Address(in6_addr ipv6addr, in6_addr ipv6_mask
+                             , in6_addr checkipv6addr, in6_addr chk_ipv6_mask) { return true; }
+  static string getipstring(in_addr ipnaddr, int radix) { return "dummy"; }
+  static string getipstring(uint32_t ipaddr, int radix) { return "dummy"; }
+  static string getbytestring(uint8_t ipaddr, int radix) { return "dummy"; }
+
+  vector<DataflowCmn*>* get_firstCtrlrFlows() {
+    return &firstCtrlrFlows;
+  };
+  std::map<std::string, uint32_t>* get_ctrlr_dom_count_map() {
+    return &ctrlr_dom_count_map;
+  };
+  std::map<key_dataflow_t, vector<DataflowDetail *>, KeyDataflowCmp > pfc_flows;
+  std::map<key_vtn_ctrlr_dataflow, vector<DataflowDetail *>, KeyVtnDataflowCmp  > upll_pfc_flows;
+  std::map<std::string, uint32_t> ctrlr_dom_count_map;
+ private:
+  vector<DataflowCmn* > firstCtrlrFlows;
+};
+
+}  // namespace dataflow
+}  // namespace unc
+
+#endif  // UNC_DATAFLOW_UTIL_HH_
diff --git a/coordinator/test/modules/stub/include/uncxx/unc_dataflow.h b/coordinator/test/modules/stub/include/uncxx/unc_dataflow.h
new file mode 100644 (file)
index 0000000..45fd25f
--- /dev/null
@@ -0,0 +1,129 @@
+/*
+ * Copyright (c) 2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+#ifndef _UNC_DATAFLOW_H_
+#define _UNC_DATAFLOW_H_
+
+/**
+ * @brief   UNC Dataflow Header
+ * @file    unc_dataflow.h
+ * @author  HCL
+ * @date    Sep-2013
+ * @version SYSTEM:UNC 1.0
+ *
+ */
+
+typedef enum {
+  kidxDfDataFlowReason = 0,
+  kidxDfDataFlowControllerCount
+} unc_val_df_dataflow_index;
+
+typedef enum {
+  kidxDfDataFlowStPackets = 0,
+  kidxDfDataFlowStOctets,
+  kidxDfDataFlowStDuration
+} unc_val_df_dataflow_st_index;
+
+typedef enum {
+  kidxDfDataFlowPathInfoSwitchId = 0,
+  kidxDfDataFlowPathInfoInPort,
+  kidxDfDataFlowPathInfoOutPort
+} unc_val_df_dataflow_path_info_index;
+
+typedef enum {
+  kidxDfDataFlowControllerName = 0,
+  kidxDfDataFlowControllerType,
+  kidxDfDataFlowFlowId,
+  kidxDfDataFlowStatus,
+  kidxDfDataFlowFlowType,
+  kidxDfDataFlowPolicyIndex,
+  kidxDfDataFlowVtnId,
+  kidxDfDataFlowIngressSwitchId,
+  kidxDfDataFlowInPort,
+  kidxDfDataFlowInStationId,
+  kidxDfDataFlowInDomain,
+  kidxDfDataFlowEgressSwitchId,
+  kidxDfDataFlowOutPort,
+  kidxDfDataFlowOutStationId,
+  kidxDfDataFlowOutDomain,
+  kidxDfDataFlowPathInfoCount,
+  kidxDfDataFlowMatchCount,
+  kidxDfDataFlowActionCount
+} unc_val_df_dataflow_cmn_index;
+
+typedef enum {
+  UNC_DF_RES_SUCCESS = 0,
+  /* If traversed PFC version is 5.0 */
+  UNC_DF_RES_OPERATION_NOT_SUPPORTED,
+  /* If flow count exceeds across a boundary by certain limit */
+  UNC_DF_RES_EXCEEDS_FLOW_LIMIT,
+  /* If traversed PFC is disconnected */
+  UNC_DF_RES_CTRLR_DISCONNECTED,
+  /* If flow traversal exceeds by certain hop limit */
+  UNC_DF_RES_EXCEEDS_HOP_LIMIT,
+  /* If target controller is not able to find for a VNP/BYPASS */
+  UNC_DF_RES_DST_NOT_REACHED,
+  /* If flow not found in target PFC */
+  UNC_DF_RES_FLOW_NOT_FOUND,
+  /* If any system level error at UNC */
+  UNC_DF_RES_SYSTEM_ERROR
+}UncDataflowReason;
+
+typedef enum {
+  UNC_DF_STAT_INIT = 0,
+  UNC_DF_STAT_ACTIVATING,
+  UNC_DF_STAT_ACTIVE,
+  UNC_DF_STAT_SWITCHING
+}UncDataflowStatus;
+
+typedef enum {
+  UNC_DF_TYPE_VTN = 0
+}UncDataflowFlowType;
+
+typedef enum {
+  UNC_MATCH_IN_PORT = 0,
+  UNC_MATCH_DL_SRC,
+  UNC_MATCH_DL_DST,
+  UNC_MATCH_DL_TYPE,
+  UNC_MATCH_VLAN_ID,
+  UNC_MATCH_VLAN_PCP,
+  UNC_MATCH_IP_TOS,
+  UNC_MATCH_IP_PROTO,
+  UNC_MATCH_IPV4_SRC,
+  UNC_MATCH_IPV4_DST,
+  UNC_MATCH_IPV6_SRC,
+  UNC_MATCH_IPV6_DST,
+  UNC_MATCH_TP_SRC,
+  UNC_MATCH_TP_DST
+}UncDataflowFlowMatchType;
+
+typedef enum {
+  UNC_MATCH_MASK_INVALID = 0,
+  UNC_MATCH_MASK_VALID
+}UncDataflowFlowMatchMask;
+
+typedef enum {
+  UNC_ACTION_OUTPUT = 0,
+  UNC_ACTION_SET_ENQUEUE,
+  UNC_ACTION_SET_DL_SRC,
+  UNC_ACTION_SET_DL_DST,
+  UNC_ACTION_SET_VLAN_ID,
+  UNC_ACTION_SET_VLAN_PCP,
+  UNC_ACTION_STRIP_VLAN,
+  UNC_ACTION_SET_IPV4_SRC,
+  UNC_ACTION_SET_IPV4_DST,
+  UNC_ACTION_SET_IP_TOS,
+  UNC_ACTION_SET_TP_SRC,
+  UNC_ACTION_SET_TP_DST,
+  UNC_ACTION_SET_IPV6_SRC,
+  UNC_ACTION_SET_IPV6_DST
+}UncDataflowFlowActionType;
+
+#endif  //  _UNC_DATAFLOW_H_
+
index 274cd30869f9521b130898f9200eccd71189e757..063e2b9e7e718c07c3efffb2d06e784be94691ed 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -255,8 +255,25 @@ ClientSession::addOutput(val_logical_port_st&) {
   return addOutPut_;
 }
 
+int
+ClientSession::addOutput(key_port&) {
+  return addOutPut_;
+}
+
+int
+ClientSession::addOutput(key_switch&) {
+  return addOutPut_;
+}
 
+int
+ClientSession::addOutput(key_ctr_dataflow&) {
+  return addOutPut_;
+}
 
+int
+ClientSession::addOutput(key_dataflow&) {
+  return addOutPut_;
+}
 
 void
 ClientSession::stub_setAddOutput(uint32_t data) {
@@ -362,6 +379,7 @@ ClientSession::addOutput(const pfc_ipcstdef_t& /*def*/, pfc_cptr_t /*data*/) {
   return addOutPut_;
 }
 
+
 void
 ClientSession::stub_setAddOutput(int result) {
   addOutPut_ = result;
@@ -529,8 +547,40 @@ ClientSession::getResponse(uint32_t index, key_logical_member_port_t& data) {
   return responseResult_;
 }
 
+int
+ClientSession::getResponse(unsigned int, val_port_stats& data) {
+  return responseResult_;
+}
 
+int
+ClientSession::getResponse(uint32_t, val_switch_st_detail&) {
+  return responseResult_;
+}
 
+int
+ClientSession::getResponse(uint32_t, val_df_data_flow_st_t&) {
+  return responseResult_;
+}
+
+int
+ClientSession::getResponse(unsigned int, key_dataflow&) {
+  return responseResult_;
+}
+
+int
+ClientSession::getResponse(unsigned int, key_vtn&) {
+  return responseResult_;
+}
+
+int
+ClientSession::getResponse(unsigned int, pfcdrv_network_mon_alarm_data&) {
+  return responseResult_;
+}
+
+int
+ClientSession::getResponse(unsigned int, pfcdrv_policier_alarm_data&) {
+  return responseResult_;
+}
 
 void
 ClientSession::stub_setResponse(int result) {
index eacb9a3193786ecca74da2e65318197908bca0ed..8e095f7d589ef375121c4ca5d66d7f56627d8bb4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -340,6 +340,27 @@ int
 ServerSession::addOutput(val_boundary&) {
   return addOutPut_;
 }
+
+int
+ServerSession::addOutput(key_dataflow&) {
+  return addOutPut_;
+}
+
+int
+ServerSession::addOutput(val_port_stats&) {
+  return addOutPut_;
+}
+
+int
+ServerSession::addOutput(val_switch_st_detail&) {
+  return addOutPut_;
+}
+
+int
+ServerSession::addOutput(val_df_data_flow_st_t&) {
+  return addOutPut_;
+}
+
 int
 ServerSession::addOutput(key_root_t&) {
   //        return addOutPut_;
@@ -351,15 +372,21 @@ ServerSession::addOutput(key_root_t&) {
     return local;
   }
 }
+
 int
 ServerSession::addOutput(val_path_fault_alarm_t&) {
   return addOutPut_;
 }
+
 int
 ServerSession::addOutput(val_port_st_neighbor&) {
   return addOutPut_;
 }
 
+int
+ServerSession::addOutput(key_ctr_dataflow&) {
+  return addOutPut_;
+}
 
 int
 ServerSession::addOutput(key_vtn_t&) {
@@ -646,6 +673,11 @@ ServerSession::getArgument(int index, val_vbr_t& data) {
   }
 }
 
+int
+ServerSession::getArgument(int, key_ctr_dataflow&) {
+  return result_;
+}
+
 int
 ServerSession::getArgument(int /*index*/, key_vbr_if_t& /*data*/) {
   return result_;
@@ -655,8 +687,10 @@ ServerSession::getArgument(int /*index*/, val_vbr_if_t& /*data*/) {
   return result_;
 }
 
-
-
+int
+ServerSession::getArgument(int, key_dataflow&) {
+  return result_;
+}
 
 int
 ServerSession::getArgument(int /*index*/, pfcdrv_val_vbr_if_t& /*data*/) {
@@ -743,7 +777,7 @@ ServerSession::clearStubData(void) {
 }
 
 int ServerEvent::serverEventErr_= 0;
-int ServerEvent::postResult_= 1;
+int ServerEvent::postResult_= UNC_UPPL_RC_FAILURE;
 
 void ServerEvent::stub_setserverEventErr(int err) {
   serverEventErr_ = err;
index 05f32a969309af67bbd848706c7441b006963817..437bd9c0fb6308b65260578c20445651eed84560 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013 NEC Corporation
+ * Copyright (c) 2013-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -45,11 +45,11 @@ TcOperRet TcDbHandler::GetConfTable(pfc_bool_t* auto_save) {
 }
 /*methods to access TC_RECOVERY_TABLE*/
 TcOperRet TcDbHandler::UpdateRecoveryTable(unc_keytype_datatype_t data_base,
-                                           TcServiceType operation) {
+                                           TcServiceType operation, uint32_t failover_instance) {
   return TCOPER_RET_SUCCESS;
 }
 TcOperRet TcDbHandler::GetRecoveryTable(unc_keytype_datatype_t* db,
-                                        TcServiceType* oper) {
+                                        TcServiceType* oper, uint32_t* failover_instance) {
   return TCOPER_RET_SUCCESS;
 }
 /*checks whether the row exists with a
index 3b7178103c58cd0be8fb9bd311fe7ee04101adca..67766244b5544df76a37d7120807e11dede82feb 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013 NEC Corporation
+ * Copyright (c) 2013-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -43,6 +43,8 @@ TcApiCommonRet TcLibModule::TcLibAuditControllerRequest
   return stub_getMappedResultCode(TcLibModule::AUDIT_CONTROLLER);
 }
 
+void TcLibModule::GetSessionAttributes(uint32_t* session_id, uint32_t* config_id) {
+}
 
 TcApiCommonRet TcLibModule::TcLibValidateUpdateMsg
          (uint32_t sessionid, uint32_t configid) {
index 7191ede2999afd3964c5b257b51cfda1adcb1f62..0e71d1cb35fef98c7ef2f48930874366bcca9324 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013 NEC Corporation
+ * Copyright (c) 2013-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -109,6 +109,8 @@ class TcLibModule : public pfc::core::Module {
                                             pfc_ipcstdef_t value_def,
                                             void* key_data,
                                             void* value_data);
+  void GetSessionAttributes(uint32_t* session_id, uint32_t* config_id);
+
 
  private:
   TcCommonRet ValidateOperTypeSequence(TcMsgOperType oper_type);
index a2d27207b567b2f56765fc1379e440d2aea8bf45..dfdf8c61c14ec4f2c7ebb9d7949900802718c8f2 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013 NEC Corporation
+ * Copyright (c) 2013-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -44,7 +44,7 @@ TEST(TcAuditOperations, TcGetMinArgCount) {
                                            unc_map_,
                                            audit_);
   int argcount = tc_auditoperations.TestTcGetMinArgCount();
-  EXPECT_EQ(3, argcount);
+  EXPECT_EQ(4, argcount);
   DEL_AUDIT_PARAMS();
 }
 
@@ -59,7 +59,7 @@ TEST(TcAuditOperations, TcCheckOperArgCount) {
   EXPECT_EQ(TC_OPER_INVALID_INPUT,
             tc_auditoperations.TcCheckOperArgCount(avail_count));
 
-  avail_count = 3;
+  avail_count = 4;
   EXPECT_EQ(TC_OPER_SUCCESS,
             tc_auditoperations.TcCheckOperArgCount(avail_count));
   DEL_AUDIT_PARAMS();
index 4903c5bea762b136f7c01599a6ea6b24a9fe5457..3b5aa631362572c9b1e1eebbe8638fc972609ddc 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013 NEC Corporation
+ * Copyright (c) 2013-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -35,7 +35,7 @@ TcChannelNameMap  unc_map_;
 
 #define DEL_AUDIT_PARAMS() \
     delete tc_lock_; \
-tc_lock_ =NULL ;
+tc_lock_ =NULL;
 
 
 /*class to test TcSaveOperations*/
index 2e838f41f3ece80cd14257f5960fbcb369b77991..f5c0ae84e24bc8e30769adb5719920f8b814eeec 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013 NEC Corporation
+ * Copyright (c) 2013-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -61,11 +61,13 @@ TEST(TcConfigOperations, TcValidateOperType) {
                                              unc_map_);
 
   tc_configoperations.tc_oper_  =  TC_OP_RUNNING_SAVE;
-  EXPECT_EQ(TC_INVALID_OPERATION_TYPE, tc_configoperations.TcValidateOperType());
+  EXPECT_EQ(TC_INVALID_OPERATION_TYPE,
+            tc_configoperations.TcValidateOperType());
 
   tc_configoperations.tc_oper_  =  TC_OP_CLEAR_STARTUP;
   // change -11 to define
-  EXPECT_EQ(TC_INVALID_OPERATION_TYPE, tc_configoperations.TcValidateOperType());
+  EXPECT_EQ(TC_INVALID_OPERATION_TYPE,
+            tc_configoperations.TcValidateOperType());
   DEL_AUDIT_PARAMS();
 }
 
@@ -77,7 +79,8 @@ TEST(TcConfigOperations, TcValidateOperType_Failure) {
                                              db_handler,
                                              unc_map_);
   // Check return value and change to define
-  EXPECT_EQ(TC_INVALID_OPERATION_TYPE, tc_configoperations.TcValidateOperType());
+  EXPECT_EQ(TC_INVALID_OPERATION_TYPE,
+            tc_configoperations.TcValidateOperType());
   DEL_AUDIT_PARAMS();
 }
 
@@ -214,10 +217,10 @@ TEST(TcConfigOperations, HandleLockRet) {
   EXPECT_EQ(TC_OPER_FAILURE, tc_configoperations.HandleLockRet(ret));
 
   ret  =  TC_LOCK_INVALID_SESSION_ID;
-  EXPECT_EQ(5, tc_configoperations.HandleLockRet(ret));
+  EXPECT_EQ(104, tc_configoperations.HandleLockRet(ret));
 
   ret  =  TC_LOCK_INVALID_CONFIG_ID;
-  EXPECT_EQ(3, tc_configoperations.HandleLockRet(ret));
+  EXPECT_EQ(102, tc_configoperations.HandleLockRet(ret));
   DEL_AUDIT_PARAMS();
 }
 
index c1c1c634a8fbc25ca2148d1312948150a19100b2..c77e6e1cc368feb99eaeee4bbe47a085bd21e4c6 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013 NEC Corporation
+ * Copyright (c) 2013-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -35,7 +35,7 @@ TcChannelNameMap  unc_map_;
 
 #define DEL_AUDIT_PARAMS() \
     delete tc_lock_; \
-tc_lock_ =NULL ;
+tc_lock_ =NULL;
 
 
 /*class to test TcConfigOperations*/
index c596f8b67e8ed2005eba87172fd1442b410b0c77..2019bb3965470cdb64ef64ab55bac6427f915659 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013 NEC Corporation
+ * Copyright (c) 2013-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -50,7 +50,7 @@ TEST(TcDbOperations, TcValidateOperType) {
                                      &sess_,
                                      db_handler,
                                      unc_map_);
-  stub_srv_uint32=1;
+  stub_srv_uint32 = 1;
   tc_dboperations.tc_oper_  =  TC_OP_RUNNING_SAVE;
   EXPECT_EQ(TC_OPER_SUCCESS, tc_dboperations.TcValidateOperType());
 
index 9718a48c882be1e0867edc36a570dce51907cf55..68a6545e3de614af5c523a175a0c3fe150dffccd 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013 NEC Corporation
+ * Copyright (c) 2013-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -35,7 +35,7 @@ TcChannelNameMap  unc_map_;
 
 #define DEL_AUDIT_PARAMS() \
     delete tc_lock_; \
-tc_lock_ =NULL ;
+tc_lock_ =NULL;
 
 
 /*class to test TcDbOperations*/
index dcd94bd3ee9b271b1cff8a63ad0e2a9bbe3747f8..71f28afeb5e952cd21413a7d6accfe2eb97dc628 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013 NEC Corporation
+ * Copyright (c) 2013-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -139,7 +139,6 @@ class Test2phase : public TwoPhaseCommit {
   TcOperRet TestGetControllerInfo(pfc::core::ipc::ClientSession* sess) {
     return GetControllerInfo(sess);
   }
-
 };
 
 
index c49932e1b9922fda834be2bbbc5a62356da46b06..06ebcb921c601d1fd5d65c68a1b3c08e3a61f630 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013 NEC Corporation
+ * Copyright (c) 2013-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -33,7 +33,7 @@ TEST(TcReadOperations, TcGetMinArgCount) {
                                          unc_map_, readq_);
   int argcount  =  tc_readoperations.TestTcGetMinArgCount();
   EXPECT_EQ(2, argcount);
-   DEL_AUDIT_PARAMS();
+  DEL_AUDIT_PARAMS();
 }
 
 TEST(TcReadOperations, TcCheckOperArgCount) {
@@ -50,7 +50,7 @@ TEST(TcReadOperations, TcCheckOperArgCount) {
   avail_count = 2;
   EXPECT_EQ(TC_OPER_SUCCESS,
   tc_readoperations.TcCheckOperArgCount(avail_count));
-   DEL_AUDIT_PARAMS();
+  DEL_AUDIT_PARAMS();
 }
 
 TEST(TcReadOperations, TcCheckOperArgCount_ReadAcquire) {
@@ -70,7 +70,7 @@ TEST(TcReadOperations, TcCheckOperArgCount_ReadAcquire) {
   avail_count  =  UNC_READ_OPER_ARG_COUNT_MAX;
   EXPECT_EQ(TC_OPER_SUCCESS,
   tc_readoperations.TcCheckOperArgCount(avail_count));
-   DEL_AUDIT_PARAMS();
+  DEL_AUDIT_PARAMS();
 }
 
 TEST(TcReadOperations, TcCheckOperArgCount_ReadRelease) {
@@ -91,7 +91,7 @@ TEST(TcReadOperations, TcCheckOperArgCount_ReadRelease) {
   avail_count  =  UNC_READ_RELEASE_ARG_COUNT+1;
   EXPECT_EQ(TC_OPER_INVALID_INPUT,
   tc_readoperations.TcCheckOperArgCount(avail_count));
-   DEL_AUDIT_PARAMS();
+  DEL_AUDIT_PARAMS();
 }
 
 TEST(TcReadOperations, TcCheckOperArgCount_Success) {
@@ -103,7 +103,7 @@ TEST(TcReadOperations, TcCheckOperArgCount_Success) {
   uint32_t avail_count = 2;
   EXPECT_EQ(TC_OPER_SUCCESS,
   tc_readoperations.TcCheckOperArgCount(avail_count));
-   DEL_AUDIT_PARAMS();
+  DEL_AUDIT_PARAMS();
 }
 
 TEST(TcReadOperations, TcValidateOperType) {
@@ -116,7 +116,7 @@ TEST(TcReadOperations, TcValidateOperType) {
   tc_readoperations.tc_oper_  =  TC_OP_READ_ACQUIRE;
   EXPECT_EQ(TC_OPER_SUCCESS,
   tc_readoperations.TcValidateOperType());
-   DEL_AUDIT_PARAMS();
+  DEL_AUDIT_PARAMS();
 }
 
 TEST(TcReadOperations, TcValidateOperType_Failure) {
@@ -127,7 +127,7 @@ TEST(TcReadOperations, TcValidateOperType_Failure) {
                                          unc_map_, readq_);
   EXPECT_EQ(TC_INVALID_OPERATION_TYPE,
   tc_readoperations.TcValidateOperType());
-   DEL_AUDIT_PARAMS();
+  DEL_AUDIT_PARAMS();
 }
 
 TEST(TcReadOperations, HandleMsgRet_Fatal) {
@@ -139,7 +139,7 @@ TEST(TcReadOperations, HandleMsgRet_Fatal) {
                                          unc_map_, readq_);
   // check code change define value
   EXPECT_EQ(TC_SYSTEM_FAILURE, tc_readoperations.HandleMsgRet(msgret));
-   DEL_AUDIT_PARAMS();
+  DEL_AUDIT_PARAMS();
 }
 
 TEST(TcReadOperations, HandleMsgRet_Abort) {
@@ -150,7 +150,7 @@ TEST(TcReadOperations, HandleMsgRet_Abort) {
                                          db_handler,
                                          unc_map_, readq_);
   EXPECT_EQ(TC_OPER_ABORT, tc_readoperations.HandleMsgRet(msgret));
-   DEL_AUDIT_PARAMS();
+  DEL_AUDIT_PARAMS();
 }
 
 TEST(TcReadOperations, HandleMsgRet_Success) {
@@ -161,7 +161,7 @@ TEST(TcReadOperations, HandleMsgRet_Success) {
                                          db_handler,
                                          unc_map_, readq_);
   EXPECT_EQ(TC_OPER_SUCCESS, tc_readoperations.HandleMsgRet(msgret));
-   DEL_AUDIT_PARAMS();
+  DEL_AUDIT_PARAMS();
 }
 
 TEST(TcReadOperations, TcValidateOperParams) {
@@ -171,7 +171,7 @@ TEST(TcReadOperations, TcValidateOperParams) {
                                          db_handler,
                                          unc_map_, readq_);
   EXPECT_EQ(TC_OPER_SUCCESS, tc_readoperations.TcValidateOperParams());
-   DEL_AUDIT_PARAMS();
+  DEL_AUDIT_PARAMS();
 }
 
 TEST(TcReadOperations, TcValidateOperParams_ReadRelease) {
@@ -186,7 +186,7 @@ TEST(TcReadOperations, TcValidateOperParams_ReadRelease) {
 
   EXPECT_EQ(TC_OPER_SUCCESS,
   tc_readoperations.TcValidateOperParams());
-   DEL_AUDIT_PARAMS();
+  DEL_AUDIT_PARAMS();
 }
 
 TEST(TcReadOperations, TcValidateOperParams_RetFailure) {
@@ -197,7 +197,7 @@ TEST(TcReadOperations, TcValidateOperParams_RetFailure) {
                                          db_handler,
                                          unc_map_, readq_);
   EXPECT_EQ(TC_OPER_SUCCESS, tc_readoperations.TcValidateOperParams());
-   DEL_AUDIT_PARAMS();
+  DEL_AUDIT_PARAMS();
 }
 
 TEST(TcReadOperations, TcValidateOperParams_OperFailure) {
@@ -222,7 +222,7 @@ TEST(TcReadOperations, TcValidateOperParams_OperFailure) {
   tc_readoperations.arg_timeout_  =  PFC_TRUE;
   stub_srv_uint32  =  -1;
   EXPECT_EQ(TC_OPER_FAILURE, tc_readoperations.TcValidateOperParams());
-   DEL_AUDIT_PARAMS();
+  DEL_AUDIT_PARAMS();
 }
 
 TEST(TcReadOperations, TcValidateOperParams_OperFailureWithTimeout) {
@@ -238,7 +238,7 @@ TEST(TcReadOperations, TcValidateOperParams_OperFailureWithTimeout) {
   tc_readoperations.timeout_  =  10;
   tc_readoperations.read_handle_  =  NULL;
   EXPECT_EQ(TC_OPER_FAILURE, tc_readoperations.TcValidateOperParams());
-   DEL_AUDIT_PARAMS();
+  DEL_AUDIT_PARAMS();
 }
 
 
@@ -300,7 +300,7 @@ TEST(TcReadOperations, TcGetExclusion_ReadAcquire_Success) {
   tc_readoperations.tclock_  =  tc_lock_;
   // Check error Code and change
   EXPECT_EQ(TC_OPER_FAILURE, tc_readoperations.TcGetExclusion());
-   DEL_AUDIT_PARAMS();
+  DEL_AUDIT_PARAMS();
 }
 
 
@@ -319,7 +319,7 @@ TEST(TcReadOperations, TcReleaseExclusion) {
                                          db_handler,
                                          unc_map_, readq);
   EXPECT_EQ(TC_OPER_SUCCESS, tc_readoperations.TcReleaseExclusion());
-   DEL_AUDIT_PARAMS();
+  DEL_AUDIT_PARAMS();
 }
 
 TEST(TcReadOperations, HandleLockRet) {
@@ -341,7 +341,7 @@ TEST(TcReadOperations, HandleLockRet) {
 
   ret  =  TC_LOCK_INVALID_SESSION_ID;
   // CHange  to define
-  EXPECT_EQ(5, tc_readoperations.HandleLockRet(ret));
+  EXPECT_EQ(104, tc_readoperations.HandleLockRet(ret));
 
   ret  =  TC_LOCK_ALREADY_ACQUIRED;
   EXPECT_EQ(TC_SESSION_ALREADY_ACTIVE, tc_readoperations.HandleLockRet(ret));
@@ -387,7 +387,7 @@ TEST(TcReadOperations, SendAdditionalResponse_Success) {
                                          unc_map_, readq_);
   EXPECT_EQ(TC_OPER_SUCCESS,
   tc_readoperations.SendAdditionalResponse(oper_stat));
-   DEL_AUDIT_PARAMS();
+  DEL_AUDIT_PARAMS();
 }
 
 TEST(TcReadOperations, SendAdditionalResponse_Failure) {
index 630970e703bf09656c38d4c6986eb719999c2f3b..2b1f5a95f71ff6aedca668f69cd46cc478c9d046 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013 NEC Corporation
+ * Copyright (c) 2013-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -36,7 +36,7 @@ TcTaskqUtil* readq_= NULL;
 
 #define DEL_AUDIT_PARAMS() \
     delete tc_lock_; \
-tc_lock_ =NULL ;
+tc_lock_ =NULL;
 
 
 /*class to test TcReadOperations*/
index f48db5ac1309dd447ff80cff997f2e23ae082a4e..a0c2e6990d6352915272843c94d305a2c6556bc0 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013 NEC Corporation
+ * Copyright (c) 2013-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -37,7 +37,7 @@ pfc_bool_t is_switch = true;
 
 #define DEL_AUDIT_PARAMS() \
     delete tc_lock_; \
-tc_lock_ =NULL ;
+tc_lock_ =NULL;
 
 /*class to test TcStartupOperations*/
 class TestTcStartUpOperations : public TcStartUpOperations {
index ce444c0b8ff7e1cac695ccb5072e54e2cf0017d5..948088213bdb13954a7d310b0275201f5dcbdc1a 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2013 NEC Corporation
+# Copyright (c) 2013-2014 NEC Corporation
 # All rights reserved.
 #
 # This program and the accompanying materials are made available under the
@@ -22,32 +22,38 @@ TCLIB_STUBDIR       = $(COMMON_STUB_PATH)/stub/tclib_module
 CAPA_STUBDIR   = $(COMMON_STUB_PATH)/stub/capa_module
 DAL_STUBDIR    = $(COMMON_STUB_PATH)/stub/dal
 MISC_STUBDIR   = $(COMMON_STUB_PATH)/stub/misc
+CLSTAT_STUBDIR  = $(COMMON_STUB_PATH)/stub/clstat
+VLANMAP_STUBDIR  = $(COMMON_STUB_PATH)/upll/ut
 
+CLSTAT_SRCDIR  = $(MODULE_SRCROOT)/clstat
 UPLL_SRCDIR    = $(MODULE_SRCROOT)/upll
 CAPA_SRCDIR    = $(MODULE_SRCROOT)/capa
 DAL_SRCDIR     = $(MODULE_SRCROOT)/dal
 TCLIB_SRCDIR   = $(MODULE_SRCROOT)/tclib
 ALARM_SRCDIR   = $(MODULE_SRCROOT)/alarm
 
+
 # Define a list of directories that contain source files.
-ALT_SRCDIRS    = $(UPLL_SRCDIR) $(CAPA_STUBDIR) $(DAL_STUBDIR)
-ALT_SRCDIRS    += $(TCLIB_STUBDIR) $(MISC_STUBDIR)
+ALT_SRCDIRS    = $(CLSTAT_STUBDIR) $(UPLL_SRCDIR) $(CAPA_STUBDIR) $(DAL_STUBDIR)
+ALT_SRCDIRS    += $(TCLIB_STUBDIR) $(MISC_STUBDIR) $(CLSTAT_SRCDIR) $(VLANMAP_STUBDIR)
 
 UT_INCDIRS_PREP                = ${COMMON_STUB_PATH} $(COMMON_STUB_PATH)/stub/include $(COMMON_STUB_PATH)/stub/include/core_include
 
 UTXX_INCDIRS_PREP      = $(TCLIB_STUBDIR)
 UTXX_INCDIRS_PREP      += $(CAPA_STUBDIR)
+UTXX_INCDIRS_PREP      += $(CLSTAT_STUBDIR)
 UTXX_INCDIRS_PREP      += $(DAL_STUBDIR)
 UTXX_INCDIRS_PREP      += $(DAL_STUBDIR)/include
+UTXX_INCDIRS_PREP      += $(VLANMAP_STUBDIR)
 
 
-#UTXX_INCDIRS_PREP = $(CONTROLLER_STUBDIR)/driver
-
 EXTRA_CXX_INCDIRS      = $(MODULE_SRCROOT)
 EXTRA_CXX_INCDIRS      += $(CAPA_SRCDIR)/include
+EXTRA_CXX_INCDIRS      += $(CLSTAT_SRCDIR)/.
+EXTRA_CXX_INCDIRS      += $(CLSTAT_SRCDIR)/include
 EXTRA_CXX_INCDIRS      += $(UPLL_SRCDIR)
 EXTRA_CXX_INCDIRS      += $(UPLL_SRCDIR)/include
-EXTRA_CXX_INCDIRS      += $(DAL_SRCDIR)
+EXTRA_CXX_INCDIRS      += $(DAL_SRCDIR)/.
 EXTRA_CXX_INCDIRS      += $(TCLIB_SRCDIR)/include
 EXTRA_CXX_INCDIRS      += $(ALARM_SRCDIR)/include
 
@@ -60,13 +66,13 @@ UPLL_SOURCES        += ctrlr_mgr.cc
 UPLL_SOURCES   += key_tree.cc
 UPLL_SOURCES   += tclib_intf_impl.cc
 UPLL_SOURCES   += momgr_intf.cc
-UPLL_SOURCES   += momgr_impl.cc
 UPLL_SOURCES   += tx_mgr.cc
 UPLL_SOURCES   += config_lock.cc
 UPLL_SOURCES   += kt_util.cc
 UPLL_SOURCES   += vtn_momgr.cc
 UPLL_SOURCES   += vbr_momgr.cc
 UPLL_SOURCES   += vbr_if_momgr.cc
+UPLL_SOURCES   += momgr_impl.cc
 UPLL_SOURCES   += vlanmap_momgr.cc
 UPLL_SOURCES   += nwm_momgr.cc
 UPLL_SOURCES   += nwm_host_momgr.cc
@@ -103,6 +109,10 @@ UPLL_SOURCES       += vtep_grp_momgr.cc
 UPLL_SOURCES   += vtepgrp_mem_momgr.cc
 UPLL_SOURCES   += vtunnel_momgr.cc
 UPLL_SOURCES   += vtunnel_if_momgr.cc
+UPLL_SOURCES  += dbconn_mgr.cc
+UPLL_SOURCES  += vtn_dataflow_momgr.cc
+UPLL_SOURCES  += ipc_client_handler.cc
+UPLL_SOURCES  += config_svc.cc
 
 CAPA_SOURCES   = capa_module_stub.cc
 DAL_SOURCES    = dal_odbc_mgr.cc dal_bind_info.cc dal_schema.cc
@@ -112,9 +122,10 @@ MISC_SOURCES       = ipc_client.cc ipc_server.cc module.cc alarm.cc
 UT_SOURCES     = vtn_momgr_ut.cc
 UT_SOURCES     += vbr_momgr_ut.cc
 UT_SOURCES     += vbr_if_momgr_ut.cc
+UT_SOURCES  += vlanmap_ut.cc
 
 CXX_SOURCES    = $(UT_SOURCES) util.cc
-CXX_SOURCES    += $(UPLL_SOURCES) $(CAPA_SOURCES) $(DAL_SOURCES)
+CXX_SOURCES    += $(UPLL_SOURCES) $(CAPA_SOURCES) $(DAL_SOURCES) 
 CXX_SOURCES    += $(TCLIB_SOURCES) $(MISC_SOURCES)
 
 EXTRA_CXXFLAGS += -fprofile-arcs -ftest-coverage
index ef2a74931186676325148b20a52e4e6538a612c5..184f98f315c92450f085c75b3793d4456344f027 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013 NEC Corporation
+ * Copyright (c) 2013-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  */
 
 #ifdef __cplusplus
+#include "stub/clstat/clstat_api.h"
 #include "stub/include/cxx/pfcxx/ipc_server.hh"
 #include "stub/include/cxx/pfcxx/ipc_client.hh"
+#include "stub/include/cxx/pfcxx/synch.hh"
 #include "stub/include/cxx/pfcxx/module.hh"
 #include "stub/dal/dal_cursor.hh"
+#include "stub/dal/dal_odbc_mgr.hh"
 #include "stub/dal/dal_dml_intf.hh"
 #include "stub/dal/dal_bind_info.hh"
-#include "stub/dal/dal_odbc_mgr.hh"
 #include "stub/dal/dal_schema.hh"
 #include "stub/tclib_module/tclib_module.hh"
 
index 1a8747ba6845cde24ecc2fa9438d335a62019bfc..1cca3ea76988723a2077b28aa4a8b3a5716ffc71 100644 (file)
@@ -18,7 +18,6 @@
 #include <vtn_momgr.hh>
 #include <vbr_momgr.hh>
 #include <vbr_if_momgr.hh>
-#include <unc/keytype.h>
 #include <config_mgr.hh>
 #include <dal_odbc_mgr.hh>
 #include <dal_dml_intf.hh>
@@ -46,8 +45,7 @@ using namespace pfc::core;
 using namespace unc::upll::dal::schema::table;
 
 class VbrIfMoMgrTest
-  : public UpllTestEnv
-{
+  : public UpllTestEnv {
 };
 
 static void GetKeyStruct(key_vbr_if *&kst) {
@@ -64,10 +62,9 @@ static void GetKeyStruct(key_vbr_if *&kst) {
           if_name, strlen(if_name)+1);
 }
 
-static void GetValStruct(val_vbr_if *&vst)
-{
+static void GetValStruct(val_vbr_if *&vst) {
   const char *desc = "thisisvbridge";
-  const char *logical_port_id ="lport1";
+  const char *logical_port_id  = "lport1";
 
   vst = ZALLOC_TYPE(val_vbr_if);
   for (unsigned int loop = 0; loop < PFC_ARRAY_CAPACITY(vst->valid); ++loop) {
@@ -82,8 +79,8 @@ static void GetValStruct(val_vbr_if *&vst)
 
   vst->admin_status = UPLL_ADMIN_ENABLE;
   strncpy(reinterpret_cast<char *>(vst->description), desc, strlen(desc)+1);
-  vst->portmap.vlan_id=1;
-  vst->portmap.tagged=1;
+  vst->portmap.vlan_id = 1;
+  vst->portmap.tagged = 1;
   for (unsigned int loop = 0; loop < PFC_ARRAY_CAPACITY(vst->portmap.valid);
        ++loop) {
     vst->portmap.valid[loop] = UNC_VF_VALID;
@@ -97,19 +94,17 @@ static void GetValStruct(val_vbr_if *&vst)
           logical_port_id, strlen(logical_port_id)+1);
 }
 
-static void GetKeyValStruct(key_vbr_if *&kst, val_vbr_if *&vst)
-{
+static void GetKeyValStruct(key_vbr_if *&kst, val_vbr_if *&vst) {
   GetKeyStruct(kst);
   GetValStruct(vst);
 }
 
-static void GetValDrvStruct(val_drv_vbr_if *&vst)
-{
+static void GetValDrvStruct(val_drv_vbr_if *&vst) {
   const char *vex_name = "Vex_1";
   const char *vex_if_name = "Vex if_1";
   const char *vex_link_name = "Vex link_1";
   const char *desc = "thisisvbridge";
-  const char *logical_port_id ="lport1";
+  const char *logical_port_id  = "lport1";
 
   vst = ZALLOC_TYPE(val_drv_vbr_if);
   strncpy(reinterpret_cast<char *>(vst->vex_name), vex_name,
@@ -134,11 +129,11 @@ static void GetValDrvStruct(val_drv_vbr_if *&vst)
     vst->vbr_if_val.cs_attr[loop] = UNC_CS_APPLIED;
   }
 
-  vst->vbr_if_val.admin_status=UPLL_ADMIN_ENABLE;
+  vst->vbr_if_val.admin_status = UPLL_ADMIN_ENABLE;
   strncpy(reinterpret_cast<char *>(vst->vbr_if_val.description), desc,
           strlen(desc)+1);
-  vst->vbr_if_val.portmap.vlan_id=1;
-  vst->vbr_if_val.portmap.tagged=0;
+  vst->vbr_if_val.portmap.vlan_id = 1;
+  vst->vbr_if_val.portmap.tagged = 0;
 
   for (unsigned int loop = 0;
        loop < PFC_ARRAY_CAPACITY(vst->vbr_if_val.portmap.valid); ++loop) {
@@ -153,8 +148,7 @@ static void GetValDrvStruct(val_drv_vbr_if *&vst)
           logical_port_id, strlen(logical_port_id)+1);
 }
 
-static void GetKeyValDrvStruct(key_vbr_if *&kst, val_drv_vbr_if *&vst)
-{
+static void GetKeyValDrvStruct(key_vbr_if *&kst, val_drv_vbr_if *&vst) {
   GetKeyStruct(kst);
   GetValDrvStruct(vst);
 }
@@ -168,11 +162,14 @@ TEST_F(VbrIfMoMgrTest, DupConfigKeyVal_ReqInvalidKT) {
 
   ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVbrIf,
                                  val);
-  ConfigKeyVal *req = new ConfigKeyVal(UNC_KT_VTN,
+  ConfigKeyVal *req = new ConfigKeyVal(
+    UNC_KT_VTN,
                             IpctSt::kIpcStKeyVbrIf,
                             key, tmp);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.DupConfigKeyVal(okey,req,MAINTBL));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.DupConfigKeyVal(
+    okey, req, MAINTBL));
   delete req;
   delete okey;
 }
@@ -185,11 +182,14 @@ TEST_F(VbrIfMoMgrTest, DupConfigKeyVal_SuccessMAINTBL) {
   GetKeyValStruct(key, val);
 
   ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *req = new ConfigKeyVal(UNC_KT_VBR_IF,
+  ConfigKeyVal *req = new ConfigKeyVal(
+    UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key, tmp);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS,obj.DupConfigKeyVal(okey,req,MAINTBL));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.DupConfigKeyVal(
+    okey, req, MAINTBL));
   delete req;
   delete okey;
 }
@@ -198,14 +198,17 @@ TEST_F(VbrIfMoMgrTest, DupConfigKeyVal_Error) {
   VbrIfMoMgr obj;
   ConfigKeyVal *okey = NULL;
   key_vbr_if *key(NULL);
-  val_vbr_if *val=NULL;
+  val_vbr_if *val = NULL;
 
   ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *req = new ConfigKeyVal(UNC_KT_VBR_IF,
+  ConfigKeyVal *req = new ConfigKeyVal(
+    UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key, tmp);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.DupConfigKeyVal(okey,req,MAINTBL));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.DupConfigKeyVal(
+    okey, req, MAINTBL));
   delete req;
   delete okey;
 }
@@ -235,16 +238,21 @@ TEST_F(VbrIfMoMgrTest, CopyToConfigkey_InValidName) {
   strncpy(reinterpret_cast<char *>(key->if_name),
           if_name, strlen(if_name)+1);
 
-  ConfigKeyVal *ikey(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *ikey(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                       key, NULL));
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.CopyToConfigKey(okey,ikey));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.CopyToConfigKey(okey, ikey));
 
-  strncpy(reinterpret_cast<char *>(key->vbr_key.vtn_key.vtn_name),"VTN_1",32);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.CopyToConfigKey(okey,ikey));
+  strncpy(reinterpret_cast<char *>(key->vbr_key.vtn_key.vtn_name), "VTN_1", 32);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.CopyToConfigKey(okey, ikey));
   key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
-  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+  ConfigKeyVal *ikey1(new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                        key1, NULL));
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.CopyToConfigKey(okey,ikey1));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.CopyToConfigKey(okey, ikey1));
   delete ikey;
   delete ikey1;
   delete okey;
@@ -265,9 +273,11 @@ TEST_F(VbrIfMoMgrTest, CopyToConfigkey_InValidName_01) {
   strncpy(reinterpret_cast<char *>(key->if_name),
           if_name, strlen(if_name)+1);
 
-  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+  ConfigKeyVal *ikey1(new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                        key, NULL));
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.CopyToConfigKey(okey,ikey1));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.CopyToConfigKey(okey, ikey1));
   delete ikey1;
   delete okey;
 }
@@ -337,7 +347,7 @@ TEST_F(VbrIfMoMgrTest, FilterAttributes_CreateOperation) {
   valvbr1->valid[UPLL_IDX_DESC_VBRI] = UNC_VF_INVALID;
   val1 = reinterpret_cast<void *>(reinterpret_cast<char *>(valvbr1));
   val2 = reinterpret_cast<void *>(reinterpret_cast<char *>(valvbr1));
-  EXPECT_FALSE(vbr.FilterAttributes(val1,val2,audit_status,op));
+  EXPECT_FALSE(vbr.FilterAttributes(val1, val2, audit_status, op));
 
   free(valvbr1);
 }
@@ -355,7 +365,7 @@ TEST_F(VbrIfMoMgrTest, FilterAttributes_OperationUpdate) {
   valvbr2->valid[UPLL_IDX_DESC_VBRI] = UNC_VF_INVALID;
   val1 = reinterpret_cast<void *>(reinterpret_cast<char *>(valvbr1));
   val2 = reinterpret_cast<void *>(reinterpret_cast<char *>(valvbr2));
-  EXPECT_TRUE(vbr.FilterAttributes(val1,val2,audit_status,op));
+  EXPECT_TRUE(vbr.FilterAttributes(val1, val2, audit_status, op));
 
   free(valvbr1);
   free(valvbr2);
@@ -368,11 +378,13 @@ TEST_F(VbrIfMoMgrTest, ValidateCapability_ErrorInput) {
   GetKeyValStruct(key, val);
 
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
   IPC_REQ_RESP_HEADER_DECL(req);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.ValidateCapability(req, ikey, NULL));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.ValidateCapability(req, ikey, NULL));
 
   delete ikey;
 }
@@ -384,7 +396,8 @@ TEST_F(VbrIfMoMgrTest, ValidateCapability_Success) {
   GetKeyValStruct(key, val);
 
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
 
@@ -400,16 +413,20 @@ TEST_F(VbrIfMoMgrTest, ValidateCapability_Success) {
   req->option2 = UNC_OPT2_NONE;
   req->datatype = UPLL_DT_CANDIDATE;
 
-  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValidateCapability(req, ikey, "CTR_1"));
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+     vbr.ValidateCapability(req, ikey, "CTR_1"));
 
   req->operation = UNC_OP_UPDATE;
 
-  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValidateCapability(req, ikey, "CTR_1"));
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+     vbr.ValidateCapability(req, ikey, "CTR_1"));
 
   req->operation = UNC_OP_READ_SIBLING_COUNT;
-  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValidateCapability(req, ikey, "CTR_1"));
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+     vbr.ValidateCapability(req, ikey, "CTR_1"));
   req->operation = UNC_OP_DELETE;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.ValidateCapability(req, ikey, "CTR_1"));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.ValidateCapability(req, ikey, "CTR_1"));
 
   delete ikey;
 }
@@ -420,25 +437,28 @@ TEST_F(VbrIfMoMgrTest, ValidateCapability_ikey_NULL) {
   val_vbr_if *val;
   GetKeyValStruct(key, val);
   ConfigKeyVal *ikey = NULL;
-  IpcReqRespHeader *req=NULL;
-  const char *ctrlr_name="ctr1";
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.ValidateCapability(req, ikey, ctrlr_name));
+  IpcReqRespHeader *req = NULL;
+  const char *ctrlr_name = "ctr1";
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.ValidateCapability(req, ikey, ctrlr_name));
 }
 
 TEST_F(VbrIfMoMgrTest, ValidateCapability_SUCCESS) {
   VbrIfMoMgr obj;
   const char * ctrlr_name = reinterpret_cast<const char *>("PFC222");
   key_vbr_if *vbrif_key(ZALLOC_TYPE(key_vbr_if));
-  strcpy((char*)vbrif_key->vbr_key.vtn_key.vtn_name,(char*)"vtn1");
-  strcpy((char*)vbrif_key->vbr_key.vbridge_name,(char*)"VRT31");
-  strcpy((char*)vbrif_key->if_name,(char*)"VRTIF11");
+  strcpy((char*)vbrif_key->vbr_key.vtn_key.vtn_name, (char*)"vtn1");
+  strcpy((char*)vbrif_key->vbr_key.vbridge_name, (char*)"VRT31");
+  strcpy((char*)vbrif_key->if_name, (char*)"VRTIF11");
 
   IPC_REQ_RESP_HEADER_DECL(req);
   req->operation = UNC_OP_UPDATE;
   req->datatype =  UPLL_DT_CANDIDATE;
 
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, vbrif_key, NULL);
-  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, obj.ValidateCapability(req, ikey, ctrlr_name));
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, vbrif_key, NULL);
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+     obj.ValidateCapability(req, ikey, ctrlr_name));
 
   delete ikey;
 }
@@ -450,11 +470,13 @@ TEST_F(VbrIfMoMgrTest, AdaptValToVtnService_Success_01) {
   GetKeyValStruct(key, val);
 
   ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcStPfcdrvValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfg_val);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, obj.AdaptValToVtnService(ikey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.AdaptValToVtnService(ikey));
   delete ikey;
 }
 
@@ -466,11 +488,13 @@ TEST_F(VbrIfMoMgrTest, AdaptValToVtnService_Success_02) {
 
   val->valid[UPLL_IDX_ADMIN_STATUS_VBRI] = UNC_VF_INVALID;
   ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcStPfcdrvValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfg_val);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, obj.AdaptValToVtnService(ikey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.AdaptValToVtnService(ikey));
   delete ikey;
 }
 
@@ -481,11 +505,13 @@ TEST_F(VbrIfMoMgrTest, AdaptValToVtnService_Success_03) {
   GetKeyValStruct(key, val);
 
   ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcStValVbrIfSt, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfg_val);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, obj.AdaptValToVtnService(ikey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.AdaptValToVtnService(ikey));
   delete ikey;
 }
 
@@ -496,30 +522,36 @@ TEST_F(VbrIfMoMgrTest, AdaptValToVtnService_Failure) {
   GetKeyValStruct(key, val);
   ConfigKeyVal* ikey = NULL;
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.AdaptValToVtnService(ikey));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.AdaptValToVtnService(ikey));
 
-  ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
+  ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF,
                           IpctSt::kIpcStKeyVbr,
                           key, NULL);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.AdaptValToVtnService(ikey));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.AdaptValToVtnService(ikey));
   delete ikey;
 }
 
 TEST_F(VbrIfMoMgrTest, ValVbrAttributeSupportCheck_01) {
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::INIT, kDalRcSuccess);
 
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
   GetKeyValStruct(key, val);
 
-  unc_keytype_operation_t operation= UNC_OP_CREATE;
-  uint8_t attrs1=0;
-  uint8_t *attrs=&attrs1;
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValVbrIfAttributeSupportCheck(attrs,ikey,operation,UPLL_DT_IMPORT));
+  unc_keytype_operation_t operation =  UNC_OP_CREATE;
+  uint8_t attrs1 = 0;
+  uint8_t *attrs = &attrs1;
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+     vbr.ValVbrIfAttributeSupportCheck(attrs, ikey, operation, UPLL_DT_IMPORT));
   delete ikey;
 }
 
@@ -529,12 +561,14 @@ TEST_F(VbrIfMoMgrTest, ValVbrAttributeSupportCheck_02) {
   val_vbr_if *val;
   GetKeyValStruct(key, val);
 
-  unc_keytype_operation_t operation= UNC_OP_CREATE;
-  uint8_t attrs1=0;
-  uint8_t *attrs=&attrs1;
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValVbrIfAttributeSupportCheck(attrs,ikey,operation,UPLL_DT_STATE));
+  unc_keytype_operation_t operation =  UNC_OP_CREATE;
+  uint8_t attrs1 = 0;
+  uint8_t *attrs = &attrs1;
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+     vbr.ValVbrIfAttributeSupportCheck(attrs, ikey, operation, UPLL_DT_STATE));
   delete ikey;
 }
 
@@ -544,14 +578,16 @@ TEST_F(VbrIfMoMgrTest, ValVbrAttributeSupportCheck_03) {
   val_vbr_if *val;
   GetKeyValStruct(key, val);
 
-  unc_keytype_operation_t operation= UNC_OP_CREATE;
+  unc_keytype_operation_t operation =  UNC_OP_CREATE;
   val->valid[UPLL_IDX_DESC_VBRI] = UNC_VF_VALID;
-  uint8_t attrs1=0;
-  uint8_t *attrs=&attrs1;
-  attrs[unc::capa::vbr_if::kCapDesc]=0;
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValVbrIfAttributeSupportCheck(attrs,ikey,operation,UPLL_DT_STATE));
+  uint8_t attrs1 = 0;
+  uint8_t *attrs = &attrs1;
+  attrs[unc::capa::vbr_if::kCapDesc] = 0;
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+     vbr.ValVbrIfAttributeSupportCheck(attrs, ikey, operation, UPLL_DT_STATE));
   delete ikey;
 }
 
@@ -561,14 +597,16 @@ TEST_F(VbrIfMoMgrTest, ValVbrAttributeSupportCheck_04) {
   val_vbr_if *val;
   GetKeyValStruct(key, val);
 
-  unc_keytype_operation_t operation= UNC_OP_CREATE;
-  uint8_t attrs1=0;
-  uint8_t *attrs=&attrs1;
+  unc_keytype_operation_t operation =  UNC_OP_CREATE;
+  uint8_t attrs1 = 0;
+  uint8_t *attrs = &attrs1;
   val->valid[UPLL_IDX_DESC_VBRI] = UNC_VF_VALID_NO_VALUE;
-  attrs[unc::capa::vbr_if::kCapDesc]=0;
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValVbrIfAttributeSupportCheck(attrs,ikey,operation,UPLL_DT_STATE));
+  attrs[unc::capa::vbr_if::kCapDesc] = 0;
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+     vbr.ValVbrIfAttributeSupportCheck(attrs, ikey, operation, UPLL_DT_STATE));
   delete ikey;
 }
 
@@ -578,15 +616,17 @@ TEST_F(VbrIfMoMgrTest, ValVbrAttributeSupportCheck_05) {
   val_vbr_if *val;
   GetKeyValStruct(key, val);
 
-  unc_keytype_operation_t operation= UNC_OP_CREATE;
+  unc_keytype_operation_t operation =  UNC_OP_CREATE;
   uint8_t attrs[10];
   memset(attrs, 0xff, sizeof(attrs));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  val->admin_status=UPLL_ADMIN_ENABLE;
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  val->admin_status = UPLL_ADMIN_ENABLE;
   val->valid[UPLL_IDX_ADMIN_STATUS_VBRI] = UNC_VF_VALID;
-  attrs[unc::capa::vbr_if::kCapAdminStatus]=0;
-  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValVbrIfAttributeSupportCheck(attrs,ikey,operation,UPLL_DT_STATE));
+  attrs[unc::capa::vbr_if::kCapAdminStatus] = 0;
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+     vbr.ValVbrIfAttributeSupportCheck(attrs, ikey, operation, UPLL_DT_STATE));
   delete ikey;
 }
 
@@ -596,14 +636,16 @@ TEST_F(VbrIfMoMgrTest, ValVbrAttributeSupportCheck_06) {
   val_vbr_if *val;
   GetKeyValStruct(key, val);
 
-  unc_keytype_operation_t operation= UNC_OP_CREATE;
+  unc_keytype_operation_t operation =  UNC_OP_CREATE;
   uint8_t attrs[10];
   memset(attrs, 0xff, sizeof(attrs));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   val->valid[UPLL_IDX_ADMIN_STATUS_VBRI] = UNC_VF_VALID_NO_VALUE;
-  attrs[unc::capa::vbr_if::kCapAdminStatus]=0;
-  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValVbrIfAttributeSupportCheck(attrs,ikey,operation,UPLL_DT_STATE));
+  attrs[unc::capa::vbr_if::kCapAdminStatus] = 0;
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+     vbr.ValVbrIfAttributeSupportCheck(attrs, ikey, operation, UPLL_DT_STATE));
   delete ikey;
 }
 
@@ -613,15 +655,17 @@ TEST_F(VbrIfMoMgrTest, ValVbrAttributeSupportCheck_07) {
   val_vbr_if *val;
   GetKeyValStruct(key, val);
 
-  unc_keytype_operation_t operation= UNC_OP_CREATE;
+  unc_keytype_operation_t operation =  UNC_OP_CREATE;
   uint8_t attrs[10];
   memset(attrs, 0xff, sizeof(attrs));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   val->valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID_NO_VALUE;
   val->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] = UNC_VF_VALID_NO_VALUE;
-  attrs[unc::capa::vbr_if::kCapLogicalPortId]=0;
-  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValVbrIfAttributeSupportCheck(attrs,ikey,operation,UPLL_DT_STATE));
+  attrs[unc::capa::vbr_if::kCapLogicalPortId] = 0;
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+     vbr.ValVbrIfAttributeSupportCheck(attrs, ikey, operation, UPLL_DT_STATE));
   delete ikey;
 }
 
@@ -631,15 +675,17 @@ TEST_F(VbrIfMoMgrTest, ValVbrAttributeSupportCheck_08) {
   val_vbr_if *val;
   GetKeyValStruct(key, val);
 
-  unc_keytype_operation_t operation= UNC_OP_CREATE;
+  unc_keytype_operation_t operation =  UNC_OP_CREATE;
   uint8_t attrs[10];
   memset(attrs, 0xff, sizeof(attrs));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  attrs[unc::capa::vbr_if::kCapLogicalPortId]=0;
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  attrs[unc::capa::vbr_if::kCapLogicalPortId] = 0;
   val->valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID;
   val->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] = UNC_VF_VALID;
-  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValVbrIfAttributeSupportCheck(attrs,ikey,operation,UPLL_DT_STATE));
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+     vbr.ValVbrIfAttributeSupportCheck(attrs, ikey, operation, UPLL_DT_STATE));
   delete ikey;
 }
 
@@ -649,15 +695,17 @@ TEST_F(VbrIfMoMgrTest, ValVbrAttributeSupportCheck_09) {
   val_vbr_if *val;
   GetKeyValStruct(key, val);
 
-  unc_keytype_operation_t operation= UNC_OP_CREATE;
+  unc_keytype_operation_t operation =  UNC_OP_CREATE;
   uint8_t attrs[10];
   memset(attrs, 0xff, sizeof(attrs));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   val->valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID_NO_VALUE;
   val->portmap.valid[UPLL_IDX_VLAN_ID_PM] = UNC_VF_VALID_NO_VALUE;
-  attrs[unc::capa::vbr_if::kCapVlanId]=0;
-  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValVbrIfAttributeSupportCheck(attrs,ikey,operation,UPLL_DT_STATE));
+  attrs[unc::capa::vbr_if::kCapVlanId] = 0;
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+     vbr.ValVbrIfAttributeSupportCheck(attrs, ikey, operation, UPLL_DT_STATE));
   delete ikey;
 }
 
@@ -667,15 +715,17 @@ TEST_F(VbrIfMoMgrTest, ValVbrAttributeSupportCheck_10) {
   val_vbr_if *val;
   GetKeyValStruct(key, val);
 
-  unc_keytype_operation_t operation= UNC_OP_CREATE;
+  unc_keytype_operation_t operation =  UNC_OP_CREATE;
   uint8_t attrs[10];
   memset(attrs, 0xff, sizeof(attrs));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  attrs[unc::capa::vbr_if::kCapVlanId]=0;
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  attrs[unc::capa::vbr_if::kCapVlanId] = 0;
   val->valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID;
   val->portmap.valid[UPLL_IDX_VLAN_ID_PM] = UNC_VF_VALID;
-  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValVbrIfAttributeSupportCheck(attrs,ikey,operation,UPLL_DT_STATE));
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+     vbr.ValVbrIfAttributeSupportCheck(attrs, ikey, operation, UPLL_DT_STATE));
   delete ikey;
 }
 
@@ -685,15 +735,17 @@ TEST_F(VbrIfMoMgrTest, ValVbrAttributeSupportCheck_11) {
   val_vbr_if *val;
   GetKeyValStruct(key, val);
 
-  unc_keytype_operation_t operation= UNC_OP_CREATE;
+  unc_keytype_operation_t operation =  UNC_OP_CREATE;
   uint8_t attrs[20];
   memset(attrs, 0xff, sizeof(attrs));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  attrs[unc::capa::vbr_if::kCapTagged]=0;
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  attrs[unc::capa::vbr_if::kCapTagged] = 0;
   val->valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID;
   val->portmap.valid[UPLL_IDX_TAGGED_PM] = UNC_VF_VALID_NO_VALUE;
-  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValVbrIfAttributeSupportCheck(attrs,ikey,operation,UPLL_DT_STATE));
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+     vbr.ValVbrIfAttributeSupportCheck(attrs, ikey, operation, UPLL_DT_STATE));
   delete ikey;
 }
 
@@ -703,30 +755,34 @@ TEST_F(VbrIfMoMgrTest, ValVbrAttributeSupportCheck_12) {
   val_vbr_if *val;
   GetKeyValStruct(key, val);
 
-  unc_keytype_operation_t operation= UNC_OP_CREATE;
+  unc_keytype_operation_t operation =  UNC_OP_CREATE;
   uint8_t attrs[20];
   memset(attrs, 0xff, sizeof(attrs));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  attrs[unc::capa::vbr_if::kCapTagged]=0;
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  attrs[unc::capa::vbr_if::kCapTagged] = 0;
   val->valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID;
   val->portmap.valid[UPLL_IDX_TAGGED_PM] = UNC_VF_VALID;
-  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValVbrIfAttributeSupportCheck(attrs,ikey,operation,UPLL_DT_STATE));
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+     vbr.ValVbrIfAttributeSupportCheck(attrs, ikey, operation, UPLL_DT_STATE));
   delete ikey;
 }
 
 TEST_F(VbrIfMoMgrTest, ValVbrAttributeSupportCheck_13) {
   VbrIfMoMgr vbr;
   key_vbr_if *kst;
-  val_vbr_if *vst=NULL;
+  val_vbr_if *vst = NULL;
   GetKeyStruct(kst);
 
-  unc_keytype_operation_t operation= UNC_OP_CREATE;
-  uint8_t attrs1=0;
-  uint8_t *attrs=&attrs1;
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, vst);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, kst, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.ValVbrIfAttributeSupportCheck(attrs,ikey,operation,UPLL_DT_IMPORT));
+  unc_keytype_operation_t operation =  UNC_OP_CREATE;
+  uint8_t attrs1 = 0;
+  uint8_t *attrs = &attrs1;
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, vst);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, kst, config_val);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.ValVbrIfAttributeSupportCheck(attrs, ikey, operation, UPLL_DT_IMPORT));
   delete ikey;
 }
 
@@ -736,10 +792,12 @@ TEST_F(VbrIfMoMgrTest, RestoreUnInitOPerStatus_01) {
   val_vbr_if *val;
   GetKeyValStruct(key, val);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.RestoreUnInitOPerStatus(dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.RestoreUnInitOPerStatus(dmi));
 
   delete ikey;
 }
@@ -748,75 +806,86 @@ TEST_F(VbrIfMoMgrTest, GetVexternal_01) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_drv_vbr_if *val;
-  upll_keytype_datatype_t dt_type=UPLL_DT_RUNNING;
+  upll_keytype_datatype_t dt_type = UPLL_DT_RUNNING;
   GetKeyValDrvStruct(key, val);
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  DalDmlIntf *dmi(getDalDmlIntf());
-  uint8_t vexternal1=1;
-  uint8_t *vexternal=&vexternal1;
-  uint8_t vex_if1=1;
-  uint8_t *vex_if=&vex_if1;
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  uint8_t vexternal1 = 1;
+  uint8_t *vexternal = &vexternal1;
+  uint8_t vex_if1 = 1;
+  uint8_t *vex_if = &vex_if1;
   InterfacePortMapInfo iftype;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.GetVexternal(ikey,dt_type,dmi,vexternal,vex_if,iftype));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.GetVexternal(ikey, dt_type, dmi, vexternal, vex_if, iftype));
 
   delete ikey;
 }
 
+# if 0
 TEST_F(VbrIfMoMgrTest, GetVexternal_02) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_drv_vbr_if *val;
-  upll_keytype_datatype_t dt_type=UPLL_DT_AUDIT;
+  upll_keytype_datatype_t dt_type = UPLL_DT_AUDIT;
   GetKeyValDrvStruct(key, val);
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  DalDmlIntf *dmi(getDalDmlIntf());
-  uint8_t vexternal1=1;
-  uint8_t *vexternal=&vexternal1;
-  uint8_t vex_if1=1;
-  uint8_t *vex_if=&vex_if1;
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  uint8_t vexternal1 = 1;
+  uint8_t *vexternal = &vexternal1;
+  uint8_t vex_if1 = 1;
+  uint8_t *vex_if = &vex_if1;
   InterfacePortMapInfo iftype;
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.GetVexternal(ikey,dt_type,dmi,vexternal,vex_if,iftype));
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcSuccess);
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.GetVexternal(ikey, dt_type, dmi, vexternal, vex_if, iftype));
 
   delete ikey;
 }
+# endif
 
 TEST_F(VbrIfMoMgrTest, GetVexternal_03) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
-  upll_keytype_datatype_t dt_type=UPLL_DT_STATE;
+  upll_keytype_datatype_t dt_type = UPLL_DT_STATE;
   GetKeyValStruct(key, val);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
-  uint8_t vexternal1=1;
-  uint8_t *vexternal=&vexternal1;
-  uint8_t vex_if1=1;
-  uint8_t *vex_if=&vex_if1;
+  uint8_t vexternal1 = 1;
+  uint8_t *vexternal = &vexternal1;
+  uint8_t vex_if1 = 1;
+  uint8_t *vex_if = &vex_if1;
   InterfacePortMapInfo iftype;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.GetVexternal(ikey,dt_type,dmi,vexternal,vex_if,iftype));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.GetVexternal(ikey, dt_type, dmi, vexternal, vex_if, iftype));
 
   delete ikey;
 }
 
 TEST_F(VbrIfMoMgrTest, GetVexternal_04) {
   VbrIfMoMgr vbr;
-  key_vbr_if *key=NULL;
-  val_vbr_if *val=NULL;
-  upll_keytype_datatype_t dt_type=UPLL_DT_RUNNING;
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  DalDmlIntf *dmi(getDalDmlIntf());
-  uint8_t vexternal1=1;
-  uint8_t *vexternal=&vexternal1;
-  uint8_t vex_if1=1;
-  uint8_t *vex_if=&vex_if1;
+  key_vbr_if *key = NULL;
+  val_vbr_if *val = NULL;
+  upll_keytype_datatype_t dt_type = UPLL_DT_RUNNING;
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  uint8_t vexternal1 = 1;
+  uint8_t *vexternal = &vexternal1;
+  uint8_t vex_if1 = 1;
+  uint8_t *vex_if = &vex_if1;
   InterfacePortMapInfo iftype;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.GetVexternal(ikey,dt_type,dmi,vexternal,vex_if,iftype));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.GetVexternal(ikey, dt_type, dmi, vexternal, vex_if, iftype));
 
   delete ikey;
 }
@@ -825,12 +894,13 @@ TEST_F(VbrIfMoMgrTest, IsReferenced_01) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
-  upll_keytype_datatype_t dt_type=UPLL_DT_STATE;
+  upll_keytype_datatype_t dt_type = UPLL_DT_STATE;
   GetKeyValStruct(key, val);
 
   ConfigKeyVal *ikey = NULL;
   DalDmlIntf *dmi(getDalDmlIntf());
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.IsReferenced(ikey,dt_type,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.IsReferenced(ikey, dt_type, dmi));
 
   delete ikey;
 }
@@ -839,13 +909,15 @@ TEST_F(VbrIfMoMgrTest, IsReferenced_02) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
-  upll_keytype_datatype_t dt_type=UPLL_DT_STATE;
+  upll_keytype_datatype_t dt_type = UPLL_DT_STATE;
   GetKeyValStruct(key, val);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.IsReferenced(ikey,dt_type,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.IsReferenced(ikey, dt_type, dmi));
 
   delete ikey;
 }
@@ -854,19 +926,22 @@ TEST_F(VbrIfMoMgrTest, IsReferenced_03) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::MULTIPLE, kDalRcSuccess);
 
-  upll_keytype_datatype_t dt_type=UPLL_DT_STATE;
-  std::map<uint8_t,DalResultCode> map;
-  map.insert(std::make_pair(1,kDalRcRecordNoMore));
-  map.insert(std::make_pair(0,kDalRcSuccess));
+  upll_keytype_datatype_t dt_type = UPLL_DT_STATE;
+  std::map<uint8_t, DalResultCode> map;
+  map.insert(std::make_pair(1, kDalRcRecordNoMore));
+  map.insert(std::make_pair(0, kDalRcSuccess));
   DalOdbcMgr::stub_setNextRecordResultCodes(map);
   GetKeyValStruct(key, val);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.IsReferenced(ikey,dt_type,dmi));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.IsReferenced(ikey, dt_type, dmi));
 
   delete ikey;
 }
@@ -875,13 +950,15 @@ TEST_F(VbrIfMoMgrTest, IsReferenced_04) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
-  upll_keytype_datatype_t dt_type=UPLL_DT_STATE;
+  upll_keytype_datatype_t dt_type = UPLL_DT_STATE;
   GetKeyValStruct(key, val);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VRT_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VRT_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.IsReferenced(ikey,dt_type,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.IsReferenced(ikey, dt_type, dmi));
 
   delete ikey;
 }
@@ -892,11 +969,12 @@ TEST_F(VbrIfMoMgrTest, UpdateMo_01) {
   val_vbr_if *val;
   GetKeyValStruct(key, val);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
   IPC_REQ_RESP_HEADER_DECL(req);
-  EXPECT_EQ(UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT, vbr.UpdateMo(req,ikey,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT, vbr.UpdateMo(req, ikey, dmi));
 
   delete ikey;
 }
@@ -906,7 +984,8 @@ TEST_F(VbrIfMoMgrTest, UpdateMo_02) {
   ConfigKeyVal *ikey = NULL;
   DalDmlIntf *dmi(getDalDmlIntf());
   IPC_REQ_RESP_HEADER_DECL(req);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.UpdateMo(req,ikey,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.UpdateMo(req, ikey, dmi));
 }
 
 TEST_F(VbrIfMoMgrTest, UpdateMo_03) {
@@ -915,24 +994,28 @@ TEST_F(VbrIfMoMgrTest, UpdateMo_03) {
   val_vbr_if *val;
   GetKeyValStruct(key, val);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
   IPC_REQ_RESP_HEADER_DECL(req);
   req->datatype = UPLL_DT_CANDIDATE;
   req->operation = UNC_OP_UPDATE;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcSuccess);
   CapaModuleStub::stub_loadCapaModule();
-  CapaModuleStub::stub_setResultcode(CapaModuleStub::GET_UPDATE_CAPABILITY, true);
+  CapaModuleStub::stub_setResultcode(
+    CapaModuleStub::GET_UPDATE_CAPABILITY, true);
 
   key_user_data_t *user_data(ZALLOC_TYPE(key_user_data_t));
-  uuu::upll_strncpy(user_data->ctrlr_id,"ctr_id", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(user_data->domain_id,"dom_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(user_data->ctrlr_id, "ctr_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(user_data->domain_id, "dom_id", (kMaxLenCtrlrId + 1));
   ikey->set_user_data((void*)user_data);
 
-  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.UpdateMo(req,ikey,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+     vbr.UpdateMo(req, ikey, dmi));
 
   delete ikey;
 }
@@ -943,16 +1026,19 @@ TEST_F(VbrIfMoMgrTest, UpdateMo_04) {
   val_vbr_if *val;
 
   GetKeyValStruct(key, val);
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
   IPC_REQ_RESP_HEADER_DECL(req);
   req->datatype = UPLL_DT_CANDIDATE;
   req->operation = UNC_OP_CREATE;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcRecordNoMore);
-  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE, vbr.UpdateMo(req,ikey,dmi));
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcRecordNoMore);
+  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE,
+     vbr.UpdateMo(req, ikey, dmi));
 
   delete ikey;
 }
@@ -963,22 +1049,26 @@ TEST_F(VbrIfMoMgrTest, UpdateMo_05) {
   val_vbr_if *val;
 
   GetKeyValStruct(key, val);
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
   IPC_REQ_RESP_HEADER_DECL(req);
   req->datatype = UPLL_DT_CANDIDATE;
   req->operation = UNC_OP_CREATE;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcSuccess);
 
   key_user_data_t *user_data(ZALLOC_TYPE(key_user_data_t));
-  uuu::upll_strncpy(user_data->ctrlr_id,"ctr_id", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(user_data->domain_id,"dom_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(user_data->ctrlr_id, "ctr_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(user_data->domain_id, "dom_id", (kMaxLenCtrlrId + 1));
   ikey->set_user_data((void*)user_data);
-  CapaModuleStub::stub_setResultcode(CapaModuleStub::GET_CREATE_CAPABILITY, true);
-  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.UpdateMo(req,ikey,dmi));
+  CapaModuleStub::stub_setResultcode(
+    CapaModuleStub::GET_CREATE_CAPABILITY, true);
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+     vbr.UpdateMo(req, ikey, dmi));
 
   delete ikey;
 }
@@ -989,8 +1079,9 @@ TEST_F(VbrIfMoMgrTest, ValidateAttribute_01) {
   val_vbr_if *val;
 
   GetKeyValStruct(key, val);
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
   IPC_REQ_RESP_HEADER_DECL(req);
   req->datatype = UPLL_DT_CANDIDATE;
@@ -998,7 +1089,8 @@ TEST_F(VbrIfMoMgrTest, ValidateAttribute_01) {
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.ValidateAttribute(ikey,dmi,req));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.ValidateAttribute(ikey, dmi, req));
 
   delete ikey;
 }
@@ -1006,11 +1098,12 @@ TEST_F(VbrIfMoMgrTest, ValidateAttribute_01) {
 TEST_F(VbrIfMoMgrTest, ValidateAttribute_02) {
   VbrIfMoMgr vbr;
   key_vbr_if *kst;
-  val_vbr_if *vst=NULL;
+  val_vbr_if *vst = NULL;
   GetKeyStruct(kst);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, vst);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, kst, config_val);
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, vst);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, kst, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
   IPC_REQ_RESP_HEADER_DECL(req);
   req->datatype = UPLL_DT_CANDIDATE;
@@ -1018,7 +1111,8 @@ TEST_F(VbrIfMoMgrTest, ValidateAttribute_02) {
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateAttribute(ikey,dmi,req));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateAttribute(ikey, dmi, req));
 
   delete ikey;
 }
@@ -1026,11 +1120,12 @@ TEST_F(VbrIfMoMgrTest, ValidateAttribute_02) {
 TEST_F(VbrIfMoMgrTest, ValidateAttribute_03) {
   VbrIfMoMgr vbr;
   key_vbr_if *kst;
-  val_vbr_if *vst=NULL;
+  val_vbr_if *vst = NULL;
   GetKeyStruct(kst);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, vst);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, kst, config_val);
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, vst);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, kst, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
   IPC_REQ_RESP_HEADER_DECL(req);
   req->datatype = UPLL_DT_CANDIDATE;
@@ -1038,7 +1133,8 @@ TEST_F(VbrIfMoMgrTest, ValidateAttribute_03) {
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.ValidateAttribute(ikey,dmi,req));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.ValidateAttribute(ikey, dmi, req));
 
   delete ikey;
 }
@@ -1046,18 +1142,20 @@ TEST_F(VbrIfMoMgrTest, ValidateAttribute_03) {
 TEST_F(VbrIfMoMgrTest, ValidateAttribute_04) {
   VbrIfMoMgr vbr;
   key_vbr_if *kst;
-  val_vbr_if *vst=NULL;
+  val_vbr_if *vst = NULL;
   GetKeyStruct(kst);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, vst);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, kst, config_val);
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, vst);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, kst, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
   IPC_REQ_RESP_HEADER_DECL(req);
   req->datatype = UPLL_DT_CANDIDATE;
   req->operation = UNC_OP_CREATE;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateAttribute(ikey,dmi,req));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateAttribute(ikey, dmi, req));
 
   delete ikey;
 }
@@ -1067,14 +1165,17 @@ TEST_F(VbrIfMoMgrTest, CopyToConfigkey_01) {
   ConfigKeyVal *okey = NULL;
   ConfigKeyVal *ikey = NULL;
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vbr.CopyToConfigKey(okey,ikey));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.CopyToConfigKey(okey, ikey));
 }
 
 TEST_F(VbrIfMoMgrTest, CopyToConfigkey_02) {
   VbrIfMoMgr vbr;
   ConfigKeyVal *okey = NULL;
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, NULL, NULL);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vbr.CopyToConfigKey(okey,ikey));
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, NULL, NULL);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.CopyToConfigKey(okey, ikey));
 
   delete ikey;
   delete okey;
@@ -1082,14 +1183,16 @@ TEST_F(VbrIfMoMgrTest, CopyToConfigkey_02) {
 
 TEST_F(VbrIfMoMgrTest, CopyToConfigkey_03) {
   VbrIfMoMgr vbr;
-  ConfigKeyVal *okey=NULL;
+  ConfigKeyVal *okey = NULL;
   key_vbr_if *key;
   val_vbr_if *val;
 
   GetKeyValStruct(key, val);
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  EXPECT_EQ(UPLL_RC_SUCCESS,vbr.CopyToConfigKey(okey,ikey));
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.CopyToConfigKey(okey, ikey));
 
   delete ikey;
   delete okey;
@@ -1097,14 +1200,16 @@ TEST_F(VbrIfMoMgrTest, CopyToConfigkey_03) {
 
 TEST_F(VbrIfMoMgrTest, CopyToConfigkey_04) {
   VbrIfMoMgr vbr;
-  ConfigKeyVal *okey=NULL;
+  ConfigKeyVal *okey = NULL;
   key_vbr_if *key;
   val_vbr_if *val;
 
   GetKeyValStruct(key, val);
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  EXPECT_EQ(UPLL_RC_SUCCESS,vbr.CopyToConfigKey(okey,ikey));
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.CopyToConfigKey(okey, ikey));
 
   delete ikey;
   delete okey;
@@ -1112,7 +1217,7 @@ TEST_F(VbrIfMoMgrTest, CopyToConfigkey_04) {
 
 TEST_F(VbrIfMoMgrTest, CopyToConfigkey_05) {
   VbrIfMoMgr vbr;
-  ConfigKeyVal *okey=NULL;
+  ConfigKeyVal *okey = NULL;
   key_vbr_if *key;
   val_vbr_if *val;
 
@@ -1126,10 +1231,12 @@ TEST_F(VbrIfMoMgrTest, CopyToConfigkey_05) {
               sizeof(key_rename->old_unc_vnode_name));
   free(key);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbrIf, key_rename, config_val);
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbrIf, key_rename, config_val);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS,vbr.CopyToConfigKey(okey,ikey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.CopyToConfigKey(okey, ikey));
 
   delete ikey;
   delete okey;
@@ -1137,54 +1244,60 @@ TEST_F(VbrIfMoMgrTest, CopyToConfigkey_05) {
 
 TEST_F(VbrIfMoMgrTest, UpdateConfigVal_01) {
   VbrIfMoMgr vbr;
-  upll_keytype_datatype_t datatype=UPLL_DT_CANDIDATE;
+  upll_keytype_datatype_t datatype = UPLL_DT_CANDIDATE;
   key_vbr_if *key;
   val_drv_vbr_if *val;
   DalDmlIntf *dmi(getDalDmlIntf());
   GetKeyValDrvStruct(key, val);
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vbr.UpdateConfigVal(ikey,datatype,dmi));
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.UpdateConfigVal(ikey, datatype, dmi));
 
   delete ikey;
 }
 
 TEST_F(VbrIfMoMgrTest, UpdateConfigVal_03) {
   VbrIfMoMgr vbr;
-  upll_keytype_datatype_t datatype=UPLL_DT_CANDIDATE;
+  upll_keytype_datatype_t datatype = UPLL_DT_CANDIDATE;
   key_vbr_if *key;
   val_drv_vbr_if *val;
   DalDmlIntf *dmi(getDalDmlIntf());
   GetKeyValDrvStruct(key, val);
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VRT_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vbr.UpdateConfigVal(ikey,datatype,dmi));
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VRT_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.UpdateConfigVal(ikey, datatype, dmi));
 
   delete ikey;
 }
 
 TEST_F(VbrIfMoMgrTest, ValidateVbrifKey_01) {
   VbrIfMoMgr vbr;
-  unc_keytype_operation_t operation=UNC_OP_CREATE;
+  unc_keytype_operation_t operation = UNC_OP_CREATE;
   key_vbr_if_t *key(ZALLOC_TYPE(key_vbr_if_t));
-  strncpy((char*) key->if_name,"IF_1",32);
-  strncpy((char*) key->vbr_key.vbridge_name," ",32);
-  strncpy((char*) key->vbr_key.vtn_key.vtn_name,"VTN1",32);
+  strncpy((char*) key->if_name, "IF_1", 32);
+  strncpy((char*) key->vbr_key.vbridge_name, " ", 32);
+  strncpy((char*) key->vbr_key.vtn_key.vtn_name, "VTN1", 32);
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,vbr.ValidateVbrifKey(key,operation));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vbr.ValidateVbrifKey(key, operation));
 
   free(key);
 }
 
 TEST_F(VbrIfMoMgrTest, ValidateVbrifKey_02) {
   VbrIfMoMgr vbr;
-  unc_keytype_operation_t operation=UNC_OP_CREATE;
+  unc_keytype_operation_t operation = UNC_OP_CREATE;
   key_vbr_if_t *key(ZALLOC_TYPE(key_vbr_if_t));
-  strncpy((char*) key->if_name," ",32);
-  strncpy((char*) key->vbr_key.vbridge_name,"vbr ",32);
-  strncpy((char*) key->vbr_key.vtn_key.vtn_name,"VTN1",32);
+  strncpy((char*) key->if_name, " ", 32);
+  strncpy((char*) key->vbr_key.vbridge_name, "vbr ", 32);
+  strncpy((char*) key->vbr_key.vtn_key.vtn_name, "VTN1", 32);
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,vbr.ValidateVbrifKey(key,operation));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vbr.ValidateVbrifKey(key, operation));
 
   free(key);
 }
@@ -1197,7 +1310,8 @@ TEST_F(VbrIfMoMgrTest, ValidateVbrIfValue_01) {
   val->description[0] = '\0';
   val->valid[UPLL_IDX_DESC_VBRI] = UNC_VF_VALID;
   unc_keytype_operation_t op = UNC_OP_CREATE;
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbr.ValidateVbrIfValue(val, op));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vbr.ValidateVbrIfValue(val, op));
 
   free(val);
 }
@@ -1209,7 +1323,8 @@ TEST_F(VbrIfMoMgrTest, ValidateVbrIfValue_02) {
 
   val->valid[UPLL_IDX_DESC_VBRI] = UNC_VF_VALID_NO_VALUE;
   unc_keytype_operation_t op = UNC_OP_CREATE;
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateVbrIfValue(val, op));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateVbrIfValue(val, op));
 
   free(val);
 }
@@ -1221,7 +1336,8 @@ TEST_F(VbrIfMoMgrTest, ValidateVbrIfValue_03) {
 
   val->valid[UPLL_IDX_ADMIN_STATUS_VBRI] = UNC_VF_VALID_NO_VALUE;
   unc_keytype_operation_t op = UNC_OP_CREATE;
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateVbrIfValue(val, op));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateVbrIfValue(val, op));
 
   free(val);
 }
@@ -1233,7 +1349,8 @@ TEST_F(VbrIfMoMgrTest, ValidateVbrIfValue_04) {
 
   val->valid[UPLL_IDX_ADMIN_STATUS_VBRI] = UNC_VF_INVALID;
   unc_keytype_operation_t op = UNC_OP_CREATE;
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateVbrIfValue(val, op));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateVbrIfValue(val, op));
 
   free(val);
 }
@@ -1247,7 +1364,8 @@ TEST_F(VbrIfMoMgrTest, ValidateVbrIfValue_05) {
   val->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] = UNC_VF_VALID;
   val->portmap.logical_port_id[0] = '\0';
   unc_keytype_operation_t op = UNC_OP_CREATE;
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbr.ValidateVbrIfValue(val, op));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vbr.ValidateVbrIfValue(val, op));
 
   free(val);
 }
@@ -1260,7 +1378,8 @@ TEST_F(VbrIfMoMgrTest, ValidateVbrIfValue_06) {
   val->valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID;
   val->portmap.valid[UPLL_IDX_LOGICAL_PORT_ID_PM] = UNC_VF_VALID_NO_VALUE;
   unc_keytype_operation_t op = UNC_OP_CREATE;
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateVbrIfValue(val, op));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateVbrIfValue(val, op));
 
   free(val);
 }
@@ -1274,7 +1393,8 @@ TEST_F(VbrIfMoMgrTest, ValidateVbrIfValue_07) {
   val->portmap.valid[UPLL_IDX_VLAN_ID_PM] = UNC_VF_VALID;
   val->portmap.vlan_id = 0;
   unc_keytype_operation_t op = UNC_OP_CREATE;
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbr.ValidateVbrIfValue(val, op));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vbr.ValidateVbrIfValue(val, op));
 
   free(val);
 }
@@ -1287,7 +1407,8 @@ TEST_F(VbrIfMoMgrTest, ValidateVbrIfValue_08) {
   val->valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID;
   val->portmap.valid[UPLL_IDX_VLAN_ID_PM] = UNC_VF_VALID_NO_VALUE;
   unc_keytype_operation_t op = UNC_OP_CREATE;
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateVbrIfValue(val, op));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateVbrIfValue(val, op));
 
   free(val);
 }
@@ -1299,7 +1420,8 @@ TEST_F(VbrIfMoMgrTest, ValidateVbrIfValue_09) {
 
   val->valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID_NO_VALUE;
   unc_keytype_operation_t op = UNC_OP_CREATE;
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateVbrIfValue(val, op));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateVbrIfValue(val, op));
 
   free(val);
 }
@@ -1312,7 +1434,8 @@ TEST_F(VbrIfMoMgrTest, ValidateVbrIfValue_10) {
   val->valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID;
   val->portmap.valid[UPLL_IDX_VLAN_ID_PM] = UNC_VF_VALID_NO_VALUE;
   unc_keytype_operation_t op = UNC_OP_CREATE;
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateVbrIfValue(val, op));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateVbrIfValue(val, op));
 
   free(val);
 }
@@ -1325,7 +1448,8 @@ TEST_F(VbrIfMoMgrTest, ValidateVbrIfValue_11) {
   val->valid[UPLL_IDX_ADMIN_STATUS_VBRI] = UNC_VF_VALID;
   val->admin_status = 0;
   unc_keytype_operation_t op = UNC_OP_CREATE;
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbr.ValidateVbrIfValue(val, op));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vbr.ValidateVbrIfValue(val, op));
 
   free(val);
 }
@@ -1340,7 +1464,8 @@ TEST_F(VbrIfMoMgrTest, ValidateVbrIfValue_12) {
   unc_keytype_operation_t op = UNC_OP_CREATE;
   val->portmap.logical_port_id[0] = 'S';
   val->portmap.logical_port_id[1] = 'W';
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbr.ValidateVbrIfValue(val, op));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vbr.ValidateVbrIfValue(val, op));
 
   free(val);
 }
@@ -1353,7 +1478,8 @@ TEST_F(VbrIfMoMgrTest, ValidateVbrIfValue_13) {
   val->portmap.valid[UPLL_IDX_TAGGED_PM] = UNC_VF_VALID;
   val->portmap.tagged = 10;
   unc_keytype_operation_t op = UNC_OP_CREATE;
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbr.ValidateVbrIfValue(val, op));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vbr.ValidateVbrIfValue(val, op));
 
   free(val);
 }
@@ -1366,7 +1492,8 @@ TEST_F(VbrIfMoMgrTest, ValidateVbrIfValue_14) {
   val->valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID;
   val->portmap.valid[UPLL_IDX_TAGGED_PM] = UNC_VF_VALID;
   unc_keytype_operation_t op = UNC_OP_CREATE;
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateVbrIfValue(val, op));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateVbrIfValue(val, op));
 
   free(val);
 }
@@ -1383,13 +1510,14 @@ TEST_F(VbrIfMoMgrTest, ValidateVtnNeighborValue_01) {
           connected_if_name, strlen(connected_if_name)+1);
   strncpy(reinterpret_cast<char *>(vtn_neighbor->connected_vlink_name),
           connected_vlink_name, strlen(connected_vlink_name)+1);
-  for(unsigned int loop = 0; loop < sizeof(vtn_neighbor->valid)/
+  for (unsigned int loop = 0; loop < sizeof(vtn_neighbor->valid)/
      sizeof(vtn_neighbor->valid[0]); ++loop) {
     vtn_neighbor->valid[loop] = UNC_VF_VALID;
   }
   vtn_neighbor->valid[UPLL_IDX_CONN_VNODE_NAME_VN] = UNC_VF_VALID;
   unc_keytype_operation_t op = UNC_OP_CREATE;
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbr.ValidateVtnNeighborValue(vtn_neighbor, op));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vbr.ValidateVtnNeighborValue(vtn_neighbor, op));
 
   free(vtn_neighbor);
 }
@@ -1406,13 +1534,14 @@ TEST_F(VbrIfMoMgrTest, ValidateVtnNeighborValue_02) {
           connected_if_name, strlen(connected_if_name)+1);
   strncpy(reinterpret_cast<char *>(vtn_neighbor->connected_vlink_name),
           connected_vlink_name, strlen(connected_vlink_name)+1);
-  for(unsigned int loop = 0; loop < sizeof(vtn_neighbor->valid)/
+  for (unsigned int loop = 0; loop < sizeof(vtn_neighbor->valid)/
         sizeof(vtn_neighbor->valid[0]); ++loop) {
     vtn_neighbor->valid[loop] = UNC_VF_VALID;
   }
   vtn_neighbor->valid[UPLL_IDX_CONN_VNODE_NAME_VN] = UNC_VF_VALID;
   unc_keytype_operation_t op = UNC_OP_CREATE;
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbr.ValidateVtnNeighborValue(vtn_neighbor, op));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vbr.ValidateVtnNeighborValue(vtn_neighbor, op));
 
   free(vtn_neighbor);
 }
@@ -1429,13 +1558,14 @@ TEST_F(VbrIfMoMgrTest, ValidateVtnNeighborValue_03) {
           connected_if_name, strlen(connected_if_name)+1);
   strncpy(reinterpret_cast<char *>(vtn_neighbor->connected_vlink_name),
           connected_vlink_name, strlen(connected_vlink_name)+1);
-  for(unsigned int loop = 0; loop < sizeof(vtn_neighbor->valid)/
+  for (unsigned int loop = 0; loop < sizeof(vtn_neighbor->valid)/
         sizeof(vtn_neighbor->valid[0]); ++loop) {
     vtn_neighbor->valid[loop] = UNC_VF_VALID;
   }
   vtn_neighbor->valid[UPLL_IDX_CONN_VNODE_NAME_VN] = UNC_VF_VALID_NO_VALUE;
   unc_keytype_operation_t op = UNC_OP_CREATE;
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbr.ValidateVtnNeighborValue(vtn_neighbor, op));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vbr.ValidateVtnNeighborValue(vtn_neighbor, op));
 
   free(vtn_neighbor);
 }
@@ -1452,13 +1582,14 @@ TEST_F(VbrIfMoMgrTest, ValidateVtnNeighborValue_04) {
           connected_if_name, strlen(connected_if_name)+1);
   strncpy(reinterpret_cast<char *>(vtn_neighbor->connected_vlink_name),
           connected_vlink_name, strlen(connected_vlink_name)+1);
-  for(unsigned int loop = 0; loop < sizeof(vtn_neighbor->valid)/
+  for (unsigned int loop = 0; loop < sizeof(vtn_neighbor->valid)/
         sizeof(vtn_neighbor->valid[0]); ++loop) {
     vtn_neighbor->valid[loop] = UNC_VF_VALID;
   }
   vtn_neighbor->valid[UPLL_IDX_CONN_VNODE_IF_NAME_VN] = UNC_VF_VALID_NO_VALUE;
   unc_keytype_operation_t op = UNC_OP_CREATE;
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateVtnNeighborValue(vtn_neighbor, op));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateVtnNeighborValue(vtn_neighbor, op));
 
   free(vtn_neighbor);
 }
@@ -1475,13 +1606,14 @@ TEST_F(VbrIfMoMgrTest, ValidateVtnNeighborValue_05) {
           connected_if_name, strlen(connected_if_name)+1);
   strncpy(reinterpret_cast<char *>(vtn_neighbor->connected_vlink_name),
           connected_vlink_name, strlen(connected_vlink_name)+1);
-  for(unsigned int loop = 0; loop < sizeof(vtn_neighbor->valid)/
+  for (unsigned int loop = 0; loop < sizeof(vtn_neighbor->valid)/
         sizeof(vtn_neighbor->valid[0]); ++loop) {
     vtn_neighbor->valid[loop] = UNC_VF_VALID;
   }
   vtn_neighbor->valid[UPLL_IDX_CONN_VLINK_NAME_VN] = UNC_VF_VALID_NO_VALUE;
   unc_keytype_operation_t op = UNC_OP_CREATE;
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbr.ValidateVtnNeighborValue(vtn_neighbor, op));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vbr.ValidateVtnNeighborValue(vtn_neighbor, op));
 
   free(vtn_neighbor);
 }
@@ -1498,13 +1630,14 @@ TEST_F(VbrIfMoMgrTest, ValidateVtnNeighborValue_06) {
           connected_if_name, strlen(connected_if_name)+1);
   strncpy(reinterpret_cast<char *>(vtn_neighbor->connected_vlink_name),
           connected_vlink_name, strlen(connected_vlink_name)+1);
-  for(unsigned int loop = 0; loop < sizeof(vtn_neighbor->valid)/
+  for (unsigned int loop = 0; loop < sizeof(vtn_neighbor->valid)/
         sizeof(vtn_neighbor->valid[0]); ++loop) {
     vtn_neighbor->valid[loop] = UNC_VF_VALID;
   }
   vtn_neighbor->valid[UPLL_IDX_CONN_VLINK_NAME_VN] = UNC_VF_VALID;
   unc_keytype_operation_t op = UNC_OP_CREATE;
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbr.ValidateVtnNeighborValue(vtn_neighbor, op));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vbr.ValidateVtnNeighborValue(vtn_neighbor, op));
 
   free(vtn_neighbor);
 }
@@ -1516,14 +1649,16 @@ TEST_F(VbrIfMoMgrTest, IsLogicalPortAndVlanIdInUse_01) {
 
   GetKeyValStruct(key, val);
   DalDmlIntf *dmi(getDalDmlIntf());
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   IPC_REQ_RESP_HEADER_DECL(req);
   req->datatype = UPLL_DT_IMPORT;
   req->operation = UNC_OP_UPDATE;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vbr.IsLogicalPortAndVlanIdInUse(ikey,dmi,req));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.IsLogicalPortAndVlanIdInUse(ikey, dmi, req));
 
   delete ikey;
 }
@@ -1537,7 +1672,8 @@ TEST_F(VbrIfMoMgrTest, IsLogicalPortAndVlanIdInUse_02) {
   GetKeyValStruct(key, val);
   DalDmlIntf *dmi(getDalDmlIntf());
   ConfigKeyVal *ikey = NULL;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vbr.IsLogicalPortAndVlanIdInUse(ikey,dmi,req));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.IsLogicalPortAndVlanIdInUse(ikey, dmi, req));
 
   delete ikey;
 }
@@ -1549,17 +1685,20 @@ TEST_F(VbrIfMoMgrTest, IsLogicalPortAndVlanIdInUse_03) {
 
   IPC_REQ_RESP_HEADER_DECL(req);
   GetKeyValStruct(key, val);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::MULTIPLE, kDalRcSuccess);
 
-  std::map<uint8_t,DalResultCode> map;
-  map.insert(std::make_pair(1,kDalRcRecordNoMore));
-  map.insert(std::make_pair(0,kDalRcSuccess));
+  std::map<uint8_t, DalResultCode> map;
+  map.insert(std::make_pair(1, kDalRcRecordNoMore));
+  map.insert(std::make_pair(0, kDalRcSuccess));
   DalOdbcMgr::stub_setNextRecordResultCodes(map);
 
   DalDmlIntf *dmi(getDalDmlIntf());
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  EXPECT_EQ(UPLL_RC_SUCCESS,vbr.IsLogicalPortAndVlanIdInUse(ikey,dmi,req));
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.IsLogicalPortAndVlanIdInUse(ikey, dmi, req));
 
   delete ikey;
 }
@@ -1575,14 +1714,19 @@ TEST_F(VbrIfMoMgrTest, IsLogicalPortAndVlanIdInUse_04) {
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
   GetKeyValStruct(key, val);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::EXECUTE_QUERY,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcRecordNoMore);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::RECORD_EXISTS, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::EXECUTE_QUERY, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::MULTIPLE, kDalRcRecordNoMore);
 
   DalDmlIntf *dmi(getDalDmlIntf());
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  EXPECT_EQ(UPLL_RC_SUCCESS,vbr.IsLogicalPortAndVlanIdInUse(ikey,dmi,req));
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.IsLogicalPortAndVlanIdInUse(ikey, dmi, req));
 
   delete ikey;
 }
@@ -1598,16 +1742,21 @@ TEST_F(VbrIfMoMgrTest, IsLogicalPortAndVlanIdInUse_05) {
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
   GetKeyValStruct(key, val);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::EXECUTE_QUERY,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcRecordNoMore);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::RECORD_EXISTS, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::EXECUTE_QUERY, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::MULTIPLE, kDalRcRecordNoMore);
 
 
   DalDmlIntf *dmi(getDalDmlIntf());
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  val->portmap.valid[UPLL_IDX_VLAN_ID_PM]=UNC_VF_VALID;
-  EXPECT_EQ(UPLL_RC_SUCCESS,vbr.IsLogicalPortAndVlanIdInUse(ikey,dmi,req));
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  val->portmap.valid[UPLL_IDX_VLAN_ID_PM] = UNC_VF_VALID;
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.IsLogicalPortAndVlanIdInUse(ikey, dmi, req));
 
   delete ikey;
 }
@@ -1618,13 +1767,16 @@ TEST_F(VbrIfMoMgrTest, GetBoundaryInterfaces_01) {
   val_vbr_if *val;
   GetKeyValStruct(key, val);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
   key_vnode_if_t boundary_if;
   memset(&boundary_if, 0, sizeof(boundary_if));
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcRecordNoMore);
-  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE, vbr.GetBoundaryInterfaces(boundary_if,dmi,ikey));
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::MULTIPLE, kDalRcRecordNoMore);
+  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE,
+     vbr.GetBoundaryInterfaces(boundary_if, dmi, ikey));
 
   delete ikey;
 }
@@ -1635,11 +1787,13 @@ TEST_F(VbrIfMoMgrTest, SetBoundaryIfOperStatusforPathFault_01) {
   val_vbr_if *val;
   GetKeyValStruct(key, val);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
   const set<key_vnode_if_t, key_vnode_if_compare> boundary_if_set;
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.SetBoundaryIfOperStatusforPathFault(boundary_if_set,kPathFault, dmi));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.SetBoundaryIfOperStatusforPathFault(boundary_if_set, kPathFault, dmi));
 
   delete ikey;
 }
@@ -1650,17 +1804,20 @@ TEST_F(VbrIfMoMgrTest, SetBoundaryIfOperStatusforPathFault_02) {
   val_vbr_if *val;
   GetKeyValStruct(key, val);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
   const set<key_vnode_if_t, key_vnode_if_compare> boundary_if_set;
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::MULTIPLE, kDalRcSuccess);
 
-  std::map<uint8_t,DalResultCode> map;
-  map.insert(std::make_pair(1,kDalRcRecordNoMore));
-  map.insert(std::make_pair(0,kDalRcSuccess));
+  std::map<uint8_t, DalResultCode> map;
+  map.insert(std::make_pair(1, kDalRcRecordNoMore));
+  map.insert(std::make_pair(0, kDalRcSuccess));
   DalOdbcMgr::stub_setNextRecordResultCodes(map);
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.SetBoundaryIfOperStatusforPathFault(boundary_if_set,kPathFault,dmi));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.SetBoundaryIfOperStatusforPathFault(boundary_if_set, kPathFault, dmi));
 
   delete ikey;
 }
@@ -1669,13 +1826,15 @@ TEST_F(VbrIfMoMgrTest, CreateAuditMoImpl_01) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
-  const char *ctrlr_name="ctr1";
+  const char *ctrlr_name = "ctr1";
   GetKeyValStruct(key, val);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.CreateAuditMoImpl(ikey,dmi,ctrlr_name));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.CreateAuditMoImpl(ikey, dmi, ctrlr_name));
 
   delete ikey;
 }
@@ -1683,7 +1842,7 @@ TEST_F(VbrIfMoMgrTest, CreateAuditMoImpl_01) {
 TEST_F(VbrIfMoMgrTest, CreateAuditMoImpl_02) {
   VbrIfMoMgr obj;
   DalDmlIntf *dmi(getDalDmlIntf());
-  const char *ctrlr_id ="pfc001";
+  const char *ctrlr_id  = "pfc001";
   IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
@@ -1692,15 +1851,18 @@ TEST_F(VbrIfMoMgrTest, CreateAuditMoImpl_02) {
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
   req->datatype = UPLL_DT_CANDIDATE;
-  key_vbr_if *key ;
-  val_vbr_if *val ;
-  GetKeyValStruct(key,val);
+  key_vbr_if *key;
+  val_vbr_if *val;
+  GetKeyValStruct(key, val);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.CreateAuditMoImpl(ikey, dmi, ctrlr_id));
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcSuccess);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.CreateAuditMoImpl(ikey, dmi, ctrlr_id));
 
   delete ikey;
 }
@@ -1709,15 +1871,17 @@ TEST_F(VbrIfMoMgrTest, CreateAuditMoImpl_03) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
-  const char *ctrlr_name="ctr1";
+  const char *ctrlr_name = "ctr1";
   GetKeyValStruct(key, val);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbrIf,
                             key, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.CreateAuditMoImpl(ikey,dmi,ctrlr_name));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.CreateAuditMoImpl(ikey, dmi, ctrlr_name));
 
   delete ikey;
 }
@@ -1725,7 +1889,7 @@ TEST_F(VbrIfMoMgrTest, CreateAuditMoImpl_03) {
 TEST_F(VbrIfMoMgrTest, CreateAuditMoImpl_04) {
   VbrIfMoMgr obj;
   DalDmlIntf *dmi(getDalDmlIntf());
-  const char *ctrlr_id ="pfc001";
+  const char *ctrlr_id  = "pfc001";
   IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
   req->config_id = 14;
@@ -1734,15 +1898,18 @@ TEST_F(VbrIfMoMgrTest, CreateAuditMoImpl_04) {
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
   req->datatype = UPLL_DT_CANDIDATE;
-  key_vbr_if *key ;
-  val_vbr_if *val ;
-  GetKeyValStruct(key,val);
+  key_vbr_if *key;
+  val_vbr_if *val;
+  GetKeyValStruct(key, val);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcRecordNoMore);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.CreateAuditMoImpl(ikey, dmi, ctrlr_id));
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcRecordNoMore);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.CreateAuditMoImpl(ikey, dmi, ctrlr_id));
 
   delete ikey;
 }
@@ -1751,29 +1918,35 @@ TEST_F(VbrIfMoMgrTest, GetMappedVbridges_01) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
-  const char *ctrlr_name="ctr1";
-  const char *domain_id="dom1";
+  const char *ctrlr_name = "ctr1";
+  const char *domain_id = "dom1";
   std::string logportid;
   set<key_vnode_type_t, key_vnode_type_compare> sw_vbridge_set;
   GetKeyValStruct(key, val);
   DalDmlIntf *dmi(getDalDmlIntf());
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.GetMappedVbridges(ctrlr_name,domain_id,logportid,dmi,&sw_vbridge_set));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.GetMappedVbridges(ctrlr_name, domain_id,
+     logportid, dmi, &sw_vbridge_set));
 }
 
 TEST_F(VbrIfMoMgrTest, GetMappedVbridges_02) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
-  const char *ctrlr_name="ctr1";
-  const char *domain_id="dom1";
+  const char *ctrlr_name = "ctr1";
+  const char *domain_id = "dom1";
   std::string logportid;
   set<key_vnode_type_t, key_vnode_type_compare> sw_vbridge_set;
   GetKeyValStruct(key, val);
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcRecordNoMore);
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.GetMappedVbridges(ctrlr_name,domain_id,logportid,dmi,&sw_vbridge_set));
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::MULTIPLE, kDalRcRecordNoMore);
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.GetMappedVbridges(ctrlr_name, domain_id,
+     logportid, dmi, &sw_vbridge_set));
 
   delete ikey;
 }
@@ -1782,21 +1955,25 @@ TEST_F(VbrIfMoMgrTest, GetMappedVbridges_03) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
-  const char *ctrlr_name="ctr1";
-  const char *domain_id="dom1";
+  const char *ctrlr_name = "ctr1";
+  const char *domain_id = "dom1";
   std::string logportid;
   set<key_vnode_type_t, key_vnode_type_compare> sw_vbridge_set;
   GetKeyValStruct(key, val);
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::MULTIPLE, kDalRcSuccess);
 
-  std::map<uint8_t,DalResultCode> map;
-  map.insert(std::make_pair(1,kDalRcRecordNoMore));
-  map.insert(std::make_pair(0,kDalRcSuccess));
+  std::map<uint8_t, DalResultCode> map;
+  map.insert(std::make_pair(1, kDalRcRecordNoMore));
+  map.insert(std::make_pair(0, kDalRcSuccess));
   DalOdbcMgr::stub_setNextRecordResultCodes(map);
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.GetMappedVbridges(ctrlr_name,domain_id,logportid,dmi,&sw_vbridge_set));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.GetMappedVbridges(ctrlr_name, domain_id,
+     logportid, dmi, &sw_vbridge_set));
 
   delete ikey;
 }
@@ -1805,36 +1982,42 @@ TEST_F(VbrIfMoMgrTest, GetMappedVbridges_04) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
-  const char *ctrlr_name="ctr1";
-  const char *domain_id="dom1";
+  const char *ctrlr_name = "ctr1";
+  const char *domain_id = "dom1";
   std::string logportid;
   set<key_vnode_type_t, key_vnode_type_compare> sw_vbridge_set;
   GetKeyValStruct(key, val);
   DalDmlIntf *dmi(getDalDmlIntf());
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.GetMappedVbridges(ctrlr_name,domain_id,logportid,dmi,&sw_vbridge_set));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.GetMappedVbridges(ctrlr_name, domain_id,
+     logportid, dmi, &sw_vbridge_set));
 }
 
 TEST_F(VbrIfMoMgrTest, PathFaultHandler_03) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
-  const char *ctrlr_name="ctr1";
-  const char *domain_id="dom1";
+  const char *ctrlr_name = "ctr1";
+  const char *domain_id = "dom1";
   std::vector<std::string> ingress_ports;
   std::vector<std::string> egress_ports;
-  bool alarm_asserted=UPLL_OPER_STATUS_UP;
+  bool alarm_asserted = UPLL_OPER_STATUS_UP;
   GetKeyValStruct(key, val);
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
 
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::MULTIPLE, kDalRcSuccess);
 
-  std::map<uint8_t,DalResultCode> map;
-  map.insert(std::make_pair(1,kDalRcRecordNoMore));
-  map.insert(std::make_pair(0,kDalRcSuccess));
+  std::map<uint8_t, DalResultCode> map;
+  map.insert(std::make_pair(1, kDalRcRecordNoMore));
+  map.insert(std::make_pair(0, kDalRcSuccess));
   DalOdbcMgr::stub_setNextRecordResultCodes(map);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.PathFaultHandler(ctrlr_name,domain_id,ingress_ports,egress_ports,alarm_asserted,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.PathFaultHandler(ctrlr_name, domain_id,
+                  ingress_ports, egress_ports, alarm_asserted, dmi));
 
   delete ikey;
 }
@@ -1843,22 +2026,26 @@ TEST_F(VbrIfMoMgrTest, PathFaultHandler_04) {
   VbrIfMoMgr vbr;
   key_vbr_if *key;
   val_vbr_if *val;
-  const char *ctrlr_name="ctr1";
-  const char *domain_id="dom1";
+  const char *ctrlr_name = "ctr1";
+  const char *domain_id = "dom1";
   std::vector<std::string> ingress_ports;
   std::vector<std::string> egress_ports;
   GetKeyValStruct(key, val);
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::MULTIPLE, kDalRcSuccess);
 
-  std::map<uint8_t,DalResultCode> map;
-  map.insert(std::make_pair(1,kDalRcRecordNoMore));
-  map.insert(std::make_pair(0,kDalRcSuccess));
+  std::map<uint8_t, DalResultCode> map;
+  map.insert(std::make_pair(1, kDalRcRecordNoMore));
+  map.insert(std::make_pair(0, kDalRcSuccess));
   DalOdbcMgr::stub_setNextRecordResultCodes(map);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.PathFaultHandler(ctrlr_name,domain_id,ingress_ports,egress_ports,false,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.PathFaultHandler(ctrlr_name, domain_id,
+                ingress_ports, egress_ports, false, dmi));
 
   delete ikey;
 }
@@ -1869,18 +2056,23 @@ TEST_F(VbrIfMoMgrTest, TxUpdateController_NULL) {
   val_vbr_if *val;
 
   GetKeyValStruct(key, val);
-  uint32_t session_id=1;
-  uint32_t config_id=2;
-  uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpCreate;
+  uint32_t session_id = 1;
+  uint32_t config_id = 2;
+  uuc::UpdateCtrlrPhase phase = uuc::kUpllUcpCreate;
 
   set<std::string> affected_ctrlr_set;
   DalDmlIntf *dmi(getDalDmlIntf());
   GetKeyValStruct(key, val);
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::UPDATE_RECORD,kDalRcRecordNoMore);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.TxUpdateController(UNC_KT_VBR_IF,session_id,config_id,phase,&affected_ctrlr_set  ,dmi,&ikey));
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::UPDATE_RECORD, kDalRcRecordNoMore);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.TxUpdateController(UNC_KT_VBR_IF, session_id,
+     config_id, phase, &affected_ctrlr_set , dmi, &ikey));
 
   delete ikey;
 }
@@ -1891,9 +2083,9 @@ TEST_F(VbrIfMoMgrTest, TxUpdateController_default) {
   val_vbr_if *val;
 
   GetKeyValStruct(key, val);
-  uint32_t session_id=1;
-  uint32_t config_id=2;
-  uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpCreate;
+  uint32_t session_id = 1;
+  uint32_t config_id = 2;
+  uuc::UpdateCtrlrPhase phase = uuc::kUpllUcpCreate;
   uint8_t *ctr_id1(ZALLOC_ARRAY(uint8_t, 32));
   memcpy(ctr_id1, "Controller1", 11);
   uint8_t *dom_id1(ZALLOC_ARRAY(uint8_t, 32));
@@ -1907,11 +2099,16 @@ TEST_F(VbrIfMoMgrTest, TxUpdateController_default) {
                   (string(reinterpret_cast<char *>(ctrlr_dom->ctrlr)));
   DalDmlIntf *dmi(getDalDmlIntf());
   GetKeyValStruct(key, val);
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::UPDATE_RECORD,kDalRcSuccess);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.TxUpdateController(UNC_KT_VBR_IF,session_id,config_id,phase,&affected_ctrlr_set  ,dmi,&ikey));
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::UPDATE_RECORD, kDalRcSuccess);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.TxUpdateController(UNC_KT_VBR_IF, session_id,
+     config_id, phase, &affected_ctrlr_set , dmi, &ikey));
 
   free(ctr_id1);
   free(dom_id1);
@@ -1925,9 +2122,9 @@ TEST_F(VbrIfMoMgrTest, TxUpdateController_01) {
   val_vbr_if *val;
 
   GetKeyValStruct(key, val);
-  uint32_t session_id=1;
-  uint32_t config_id=2;
-  uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpUpdate;
+  uint32_t session_id = 1;
+  uint32_t config_id = 2;
+  uuc::UpdateCtrlrPhase phase = uuc::kUpllUcpUpdate;
   uint8_t *ctr_id1(ZALLOC_ARRAY(uint8_t, 32));
   memcpy(ctr_id1, "Controller1", 11);
   uint8_t *dom_id1(ZALLOC_ARRAY(uint8_t, 32));
@@ -1941,17 +2138,23 @@ TEST_F(VbrIfMoMgrTest, TxUpdateController_01) {
                   (string(reinterpret_cast<char *>(ctrlr_dom->ctrlr)));
   DalDmlIntf *dmi(getDalDmlIntf());
   GetKeyValStruct(key, val);
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::GET_UPDATED_RECORDS,kDalRcSuccess);
-  CapaModuleStub::stub_setResultcode(CapaModuleStub::GET_UPDATE_CAPABILITY, true);
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::GET_UPDATED_RECORDS, kDalRcSuccess);
+  CapaModuleStub::stub_setResultcode(
+    CapaModuleStub::GET_UPDATE_CAPABILITY, true);
 
   key_user_data_t *user_data(ZALLOC_TYPE(key_user_data_t));
-  uuu::upll_strncpy(user_data->ctrlr_id,"ctr_id", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(user_data->domain_id,"dom_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(user_data->ctrlr_id, "ctr_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(user_data->domain_id, "dom_id", (kMaxLenCtrlrId + 1));
   ikey->set_user_data((void*)user_data);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.TxUpdateController(UNC_KT_VBR_IF,session_id,config_id,phase,&affected_ctrlr_set  ,dmi,&ikey));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.TxUpdateController(UNC_KT_VBR_IF, session_id,
+     config_id, phase, &affected_ctrlr_set , dmi, &ikey));
 
   free(ctr_id1);
   free(dom_id1);
@@ -1965,9 +2168,9 @@ TEST_F(VbrIfMoMgrTest, TxUpdateController_02) {
   val_vbr_if *val;
 
   GetKeyValStruct(key, val);
-  uint32_t session_id=1;
-  uint32_t config_id=2;
-  uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpDelete;
+  uint32_t session_id = 1;
+  uint32_t config_id = 2;
+  uuc::UpdateCtrlrPhase phase = uuc::kUpllUcpDelete;
   uint8_t *ctr_id1(ZALLOC_ARRAY(uint8_t, 32));
   memcpy(ctr_id1, "Controller1", 11);
   uint8_t *dom_id1(ZALLOC_ARRAY(uint8_t, 32));
@@ -1981,11 +2184,16 @@ TEST_F(VbrIfMoMgrTest, TxUpdateController_02) {
                   (string(reinterpret_cast<char *>(ctrlr_dom->ctrlr)));
   DalDmlIntf *dmi(getDalDmlIntf());
   GetKeyValStruct(key, val);
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::GET_DELETED_RECORDS,kDalRcSuccess);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.TxUpdateController(UNC_KT_VBR_IF,session_id,config_id,phase,&affected_ctrlr_set  ,dmi,&ikey));
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::GET_DELETED_RECORDS, kDalRcSuccess);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.TxUpdateController(UNC_KT_VBR_IF, session_id,
+     config_id, phase, &affected_ctrlr_set , dmi, &ikey));
 
   free(ctr_id1);
   free(dom_id1);
@@ -1999,197 +2207,248 @@ TEST_F(VbrIfMoMgrTest, TxUpdateController_03) {
   val_vbr_if *val;
 
   GetKeyValStruct(key, val);
-  uint32_t session_id=1;
-  uint32_t config_id=2;
-  uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpDelete;
+  uint32_t session_id = 1;
+  uint32_t config_id = 2;
+  uuc::UpdateCtrlrPhase phase = uuc::kUpllUcpDelete;
 
   set<std::string> affected_ctrlr_set;
   DalDmlIntf *dmi(getDalDmlIntf());
   GetKeyValStruct(key, val);
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::GET_DELETED_RECORDS,kDalRcSuccess);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.TxUpdateController(UNC_KT_VBR_IF,session_id,config_id,phase,&affected_ctrlr_set  ,dmi,&ikey));
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::GET_DELETED_RECORDS, kDalRcSuccess);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.TxUpdateController(UNC_KT_VBR_IF, session_id,
+     config_id, phase, &affected_ctrlr_set , dmi, &ikey));
 
   delete ikey;
 }
 
 TEST_F(VbrIfMoMgrTest, AuditUpdateController_01) {
   VbrIfMoMgr vbr;
-  uint32_t session_id=1;
-  uint32_t config_id=2;
-  uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpCreate;
-  const char *ctrlr_id="Controller1";
+  uint32_t session_id = 1;
+  uint32_t config_id = 2;
+  uuc::UpdateCtrlrPhase phase = uuc::kUpllUcpCreate;
+  const char *ctrlr_id = "Controller1";
+  key_vbr_if *key;
+  val_vbr_if *val;
 
   DalDmlIntf *dmi(getDalDmlIntf());
-  bool ctrlr_affected=true;
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::GET_UPDATED_RECORDS,kDalRcSuccess);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.AuditUpdateController(UNC_KT_VBR_IF,ctrlr_id,session_id,config_id,phase, &ctrlr_affected ,dmi));
-}
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcSuccess);
+  GetKeyValStruct(key, val);
 
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::GET_UPDATED_RECORDS, kDalRcSuccess);
+  ConfigKeyVal *err_ckv =  NULL;
+  KTxCtrlrAffectedState ctrlr_affected = kCtrlrAffectedNoDiff;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.AuditUpdateController(
+    UNC_KT_VBR_IF, ctrlr_id, session_id, config_id,
+     phase, dmi, &err_ckv, &ctrlr_affected));
+}
 TEST_F(VbrIfMoMgrTest, AuditUpdateController_02) {
   VbrIfMoMgr vbr;
-  uint32_t session_id=1;
-  uint32_t config_id=2;
-  uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpCreate;
-  const char *ctrlr_id="Controller1";
+  uint32_t session_id = 1;
+  uint32_t config_id = 2;
+  uuc::UpdateCtrlrPhase phase = uuc::kUpllUcpCreate;
+  const char *ctrlr_id = "Controller1";
 
-  std::map<uint8_t,DalResultCode> map;
-  map.insert(std::make_pair(1,kDalRcGeneralError));
-  map.insert(std::make_pair(0,kDalRcSuccess));
+  std::map<uint8_t, DalResultCode> map;
+  map.insert(std::make_pair(1, kDalRcGeneralError));
+  map.insert(std::make_pair(0, kDalRcSuccess));
   DalOdbcMgr::stub_setNextRecordResultCodes(map);
 
   DalDmlIntf *dmi(getDalDmlIntf());
-  bool ctrlr_affected=true;
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::GET_CREATED_RECORDS,kDalRcSuccess);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.AuditUpdateController(UNC_KT_VBR_IF,ctrlr_id,session_id,config_id,phase, &ctrlr_affected ,dmi));
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::GET_CREATED_RECORDS, kDalRcSuccess);
+  ConfigKeyVal *err_ckv =  NULL;
+  KTxCtrlrAffectedState ctrlr_affected = kCtrlrAffectedNoDiff;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.AuditUpdateController(
+    UNC_KT_VBR_IF, ctrlr_id, session_id, config_id,
+     phase, dmi, &err_ckv, &ctrlr_affected));
 }
 
 TEST_F(VbrIfMoMgrTest, AuditUpdateController_03) {
   VbrIfMoMgr vbr;
-  uint32_t session_id=1;
-  uint32_t config_id=2;
-  uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpCreate;
-  const char *ctrlr_id="Controller1";
+  uint32_t session_id = 1;
+  uint32_t config_id = 2;
+  uuc::UpdateCtrlrPhase phase = uuc::kUpllUcpCreate;
+  const char *ctrlr_id = "Controller1";
 
   DalDmlIntf *dmi(getDalDmlIntf());
-  bool ctrlr_affected=true;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.AuditUpdateController(UNC_KT_VBR_IF,ctrlr_id,session_id,config_id,phase, &ctrlr_affected ,dmi));
+  ConfigKeyVal *err_ckv =  NULL;
+  KTxCtrlrAffectedState ctrlr_affected = kCtrlrAffectedNoDiff;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.AuditUpdateController(
+    UNC_KT_VBR_IF, ctrlr_id, session_id, config_id,
+     phase, dmi, &err_ckv, &ctrlr_affected));
 }
 
 TEST_F(VbrIfMoMgrTest, AuditUpdateController_04) {
   VbrIfMoMgr vbr;
-  uint32_t session_id=1;
-  uint32_t config_id=2;
-  uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpCreate;
-  const char *ctrlr_id="Controller1";
+  uint32_t session_id = 1;
+  uint32_t config_id = 2;
+  uuc::UpdateCtrlrPhase phase = uuc::kUpllUcpCreate;
+  const char *ctrlr_id = "Controller1";
 
   DalDmlIntf *dmi(getDalDmlIntf());
-  bool ctrlr_affected=true;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.AuditUpdateController(UNC_KT_VBR_IF,ctrlr_id,session_id,config_id,phase, &ctrlr_affected ,dmi));
+  ConfigKeyVal *err_ckv =  NULL;
+  KTxCtrlrAffectedState ctrlr_affected = kCtrlrAffectedNoDiff;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.AuditUpdateController(
+    UNC_KT_VBR_IF, ctrlr_id, session_id, config_id,
+     phase, dmi, &err_ckv, &ctrlr_affected));
 }
 
 TEST_F(VbrIfMoMgrTest, AuditUpdateController_05) {
   VbrIfMoMgr vbr;
-  uint32_t session_id=1;
-  uint32_t config_id=2;
-  uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpDelete;
-  const char *ctrlr_id="Controller1";
+  uint32_t session_id = 1;
+  uint32_t config_id = 2;
+  uuc::UpdateCtrlrPhase phase = uuc::kUpllUcpDelete;
+  const char *ctrlr_id = "Controller1";
 
   DalDmlIntf *dmi(getDalDmlIntf());
-  bool ctrlr_affected=true;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.AuditUpdateController(UNC_KT_VBR_IF,ctrlr_id,session_id,config_id,phase, &ctrlr_affected ,dmi));
+  ConfigKeyVal *err_ckv =  NULL;
+  KTxCtrlrAffectedState ctrlr_affected = kCtrlrAffectedNoDiff;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.AuditUpdateController(
+    UNC_KT_VBR_IF, ctrlr_id, session_id, config_id,
+     phase, dmi, &err_ckv, &ctrlr_affected));
 }
 
 TEST_F(VbrIfMoMgrTest, AuditUpdateController_06) {
   VbrIfMoMgr vbr;
-  uint32_t session_id=1;
-  uint32_t config_id=2;
-  uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpUpdate;
-  const char *ctrlr_id="Controller1";
+  uint32_t session_id = 1;
+  uint32_t config_id = 2;
+  uuc::UpdateCtrlrPhase phase = uuc::kUpllUcpUpdate;
+  const char *ctrlr_id = "Controller1";
 
   DalDmlIntf *dmi(getDalDmlIntf());
-  bool ctrlr_affected=true;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.AuditUpdateController(UNC_KT_VBR_IF,ctrlr_id,session_id,config_id,phase, &ctrlr_affected ,dmi));
+  ConfigKeyVal *err_ckv =  NULL;
+  KTxCtrlrAffectedState ctrlr_affected = kCtrlrAffectedNoDiff;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.AuditUpdateController(
+    UNC_KT_VBR_IF, ctrlr_id, session_id, config_id,
+     phase, dmi, &err_ckv, &ctrlr_affected));
 }
 
-TEST_F(VbrIfMoMgrTest, UpdatePortMap_01){
+# if 0
+TEST_F(VbrIfMoMgrTest, UpdatePortMap_01) {
   VbrIfMoMgr obj;
   key_vbr_if *key;
   val_drv_vbr_if *val;
-  GetKeyValDrvStruct(key,val);
+  GetKeyValDrvStruct(key, val);
 
   key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
   val_drv_vbr_if *val1(UT_CLONE(val_drv_vbr_if, val));
   ConfigVal *cfgval(new ConfigVal(IpctSt::kIpcStValVbrIf, val));
   ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
-  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *okey(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                       key, cfgval));
-  ConfigKeyVal *ikey(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *ikey(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                       key1, cfgval1));
-  upll_keytype_datatype_t dt_type = UPLL_DT_RUNNING ;
+  upll_keytype_datatype_t dt_type = UPLL_DT_RUNNING;
   DalDmlIntf *dmi(getDalDmlIntf());
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.UpdatePortMap(okey,dt_type,dmi,ikey));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.UpdatePortMap(okey, dt_type, dmi, ikey));
 
   delete ikey;
   delete okey;
 }
 
-TEST_F(VbrIfMoMgrTest, UpdatePortMap_02){
+
+TEST_F(VbrIfMoMgrTest, UpdatePortMap_02) {
   VbrIfMoMgr obj;
   key_vbr_if *key;
   val_drv_vbr_if *val;
-  GetKeyValDrvStruct(key,val);
+  GetKeyValDrvStruct(key, val);
 
   key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
   val_drv_vbr_if *val1(UT_CLONE(val_drv_vbr_if, val));
   ConfigVal *cfgval(new ConfigVal(IpctSt::kIpcStValVbrIf, val));
   ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
-  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *okey(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                       key, cfgval));
-  ConfigKeyVal *ikey(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *ikey(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                       key1, cfgval1));
-  upll_keytype_datatype_t dt_type = UPLL_DT_RUNNING ;
+  upll_keytype_datatype_t dt_type = UPLL_DT_RUNNING;
   DalDmlIntf *dmi(getDalDmlIntf());
   val->vbr_if_val.valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID;
   val->vbr_if_val.valid[UPLL_IDX_PM_VBRI] = UNC_VF_INVALID;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.UpdatePortMap(okey,dt_type,dmi,ikey));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.UpdatePortMap(okey, dt_type, dmi, ikey));
 
   delete ikey;
   delete okey;
 }
 
-TEST_F(VbrIfMoMgrTest, UpdatePortMap_03){
+
+TEST_F(VbrIfMoMgrTest, UpdatePortMap_03) {
   VbrIfMoMgr obj;
   key_vbr_if *key;
   val_drv_vbr_if *val;
-  GetKeyValDrvStruct(key,val);
+  GetKeyValDrvStruct(key, val);
 
   key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
   val_drv_vbr_if *val1(UT_CLONE(val_drv_vbr_if, val));
   ConfigVal *cfgval(new ConfigVal(IpctSt::kIpcStValVbrIf, val));
   ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
-  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *okey(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                       key, cfgval));
-  ConfigKeyVal *ikey(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *ikey(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                       key1, cfgval1));
-  upll_keytype_datatype_t dt_type = UPLL_DT_RUNNING ;
+  upll_keytype_datatype_t dt_type = UPLL_DT_RUNNING;
   DalDmlIntf *dmi(getDalDmlIntf());
   val->vbr_if_val.valid[UPLL_IDX_PM_VBRI] = UNC_VF_VALID;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.UpdatePortMap(okey,dt_type,dmi,ikey));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.UpdatePortMap(okey, dt_type, dmi, ikey));
 
   delete ikey;
   delete okey;
 }
 
-TEST_F(VbrIfMoMgrTest, UpdatePortMap_04){
+# endif
+TEST_F(VbrIfMoMgrTest, UpdatePortMap_04) {
   VbrIfMoMgr obj;
   key_vbr_if *key;
   val_drv_vbr_if *val;
-  GetKeyValDrvStruct(key,val);
+  GetKeyValDrvStruct(key, val);
 
   key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
   val_drv_vbr_if *val1(UT_CLONE(val_drv_vbr_if, val));
   ConfigVal *cfgval(new ConfigVal(IpctSt::kIpcStValVbrIf, val));
   ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
-  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *okey(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                       key, cfgval));
-  ConfigKeyVal *ikey(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *ikey(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                       key1, cfgval1));
-  upll_keytype_datatype_t dt_type = UPLL_DT_RUNNING ;
+  upll_keytype_datatype_t dt_type = UPLL_DT_RUNNING;
   DalDmlIntf *dmi(getDalDmlIntf());
   val->vbr_if_val.valid[UPLL_IDX_PM_VBRI] = UNC_VF_INVALID;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.UpdatePortMap(okey,dt_type,dmi,ikey));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.UpdatePortMap(okey, dt_type, dmi, ikey));
 
   delete ikey;
   delete okey;
 }
 
-TEST_F(VbrIfMoMgrTest, GetRenameKeyBindInfo_PMainTbl)
-{
+TEST_F(VbrIfMoMgrTest, GetRenameKeyBindInfo_PMainTbl) {
   VbrIfMoMgr obj;
   unc_key_type_t key_type = UNC_KT_VBR_IF;
   BindInfo *bin;
@@ -2199,8 +2458,7 @@ TEST_F(VbrIfMoMgrTest, GetRenameKeyBindInfo_PMainTbl)
   EXPECT_TRUE(obj.GetRenameKeyBindInfo(key_type, bin, nattr, tbl));
 }
 
-TEST_F(VbrIfMoMgrTest, GetRenameKeyBindInfo_FRenameTBL)
-{
+TEST_F(VbrIfMoMgrTest, GetRenameKeyBindInfo_FRenameTBL) {
   VbrIfMoMgr obj;
   unc_key_type_t key_type = UNC_KT_VBR_IF;
   BindInfo *bin;
@@ -2209,8 +2467,7 @@ TEST_F(VbrIfMoMgrTest, GetRenameKeyBindInfo_FRenameTBL)
   EXPECT_FALSE(obj.GetRenameKeyBindInfo(key_type, bin, nattr, tbl));
 }
 
-TEST_F(VbrIfMoMgrTest, GetRenameKeyBindInfo_FRename)
-{
+TEST_F(VbrIfMoMgrTest, GetRenameKeyBindInfo_FRename) {
   VbrIfMoMgr obj;
   unc_key_type_t key_type = UNC_KT_VBR_IF;
   BindInfo *bin = NULL;
@@ -2219,8 +2476,7 @@ TEST_F(VbrIfMoMgrTest, GetRenameKeyBindInfo_FRename)
   EXPECT_FALSE(obj.GetRenameKeyBindInfo(key_type, bin, nattr, tbl));
 }
 
-TEST_F(VbrIfMoMgrTest, GetRenameKeyBindInfo_FNoTBL)
-{
+TEST_F(VbrIfMoMgrTest, GetRenameKeyBindInfo_FNoTBL) {
   VbrIfMoMgr obj;
   unc_key_type_t key_type = UNC_KT_VBR_IF;
   BindInfo *bin;
@@ -2229,52 +2485,59 @@ TEST_F(VbrIfMoMgrTest, GetRenameKeyBindInfo_FNoTBL)
   EXPECT_FALSE(obj.GetRenameKeyBindInfo(key_type, bin, nattr, tbl));
 }
 
-TEST_F(VbrIfMoMgrTest, GetVbrIfValfromDBTrue){
+TEST_F(VbrIfMoMgrTest, GetVbrIfValfromDBTrue) {
   VbrIfMoMgr obj;
   key_vbr_if *key;
   val_vbr_if *val;
-  GetKeyValStruct(key,val);
+  GetKeyValStruct(key, val);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,IpctSt::kIpcStKeyVbrIf,key, cfgval);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, cfgval);
 
   ConfigKeyVal *ck_drv_vbr_if(NULL);
-  upll_keytype_datatype_t dt_type = UPLL_DT_CANDIDATE ; 
+  upll_keytype_datatype_t dt_type = UPLL_DT_CANDIDATE;
   DalDmlIntf *dmi(getDalDmlIntf());
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
-  EXPECT_EQ(UPLL_RC_SUCCESS, obj.GetVbrIfValfromDB(ikey,ck_drv_vbr_if,dt_type,dmi));
-  ASSERT_TRUE(ck_drv_vbr_if != NULL);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcSuccess);
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.GetVbrIfValfromDB(ikey, ck_drv_vbr_if, dt_type, dmi));
+  ASSERT_TRUE(ck_drv_vbr_if !=  NULL);
 
   delete ck_drv_vbr_if;
   delete ikey;
 }
 
-TEST_F(VbrIfMoMgrTest, GetVbrIfValfromDBFalse){
+TEST_F(VbrIfMoMgrTest, GetVbrIfValfromDBFalse) {
   VbrIfMoMgr obj;
   key_vbr_if *key;
   val_vbr_if *val;
-  GetKeyValStruct(key,val);
+  GetKeyValStruct(key, val);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,IpctSt::kIpcStKeyVbrIf,key, cfgval);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, cfgval);
   ConfigKeyVal *ck_drv_vbr_if(NULL);
-  upll_keytype_datatype_t dt_type = UPLL_DT_RUNNING ;
+  upll_keytype_datatype_t dt_type = UPLL_DT_RUNNING;
   DalDmlIntf *dmi(getDalDmlIntf());
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.GetVbrIfValfromDB(ikey,ck_drv_vbr_if,dt_type,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.GetVbrIfValfromDB(ikey, ck_drv_vbr_if, dt_type, dmi));
 
   delete ikey;
 }
 
-TEST_F(VbrIfMoMgrTest, GetVbrIfValfromDBParentKeyNull){
+TEST_F(VbrIfMoMgrTest, GetVbrIfValfromDBParentKeyNull) {
   VbrIfMoMgr obj;
   key_vbr_if *key;
   val_vbr_if *val;
 
-  GetKeyValStruct(key,val);
+  GetKeyValStruct(key, val);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr,key, cfgval);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key, cfgval);
   ConfigKeyVal *ck_drv_vbr_if(NULL);
-  upll_keytype_datatype_t dt_type = UPLL_DT_CANDIDATE ;
+  upll_keytype_datatype_t dt_type = UPLL_DT_CANDIDATE;
   DalDmlIntf *dmi(getDalDmlIntf());
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.GetVbrIfValfromDB(ck_drv_vbr_if,ikey,dt_type,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.GetVbrIfValfromDB(ck_drv_vbr_if, ikey, dt_type, dmi));
 
   delete ikey;
 }
@@ -2283,14 +2546,18 @@ TEST_F(VbrIfMoMgrTest, UpdateVbrIf_1) {
   VbrIfMoMgr obj;
   key_vbr_if *key;
   val_vbr_if *val;
-  GetKeyValStruct(key,val);
+  GetKeyValStruct(key, val);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,IpctSt::kIpcStKeyVbrIf,key, cfgval);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, cfgval);
   DalDmlIntf *dmi(getDalDmlIntf());
   IPC_REQ_RESP_HEADER_DECL(req);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::UPDATE_RECORD,kDalRcSuccess);
-  EXPECT_EQ(UPLL_RC_SUCCESS,obj.updateVbrIf(req,ikey,dmi));
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::UPDATE_RECORD, kDalRcSuccess);
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.updateVbrIf(req, ikey, dmi));
 
   delete ikey;
 }
@@ -2303,11 +2570,13 @@ TEST_F(VbrIfMoMgrTest, UpdateVbrIf_2) {
   req->option1 = UNC_OPT1_NORMAL;
   key_vbr_if *key;
   val_vbr_if *val;
-  GetKeyValStruct(key,val);
+  GetKeyValStruct(key, val);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,IpctSt::kIpcStKeyVbrIf,key, cfgval);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, cfgval);
   DalDmlIntf *dmi(getDalDmlIntf());
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.updateVbrIf(req,ikey,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.updateVbrIf(req, ikey, dmi));
 
   delete ikey;
 }
@@ -2320,11 +2589,13 @@ TEST_F(VbrIfMoMgrTest, UpdateVbrIf_3) {
   req->option1 = UNC_OPT1_NORMAL;
   key_vbr_if *key;
   val_vbr_if *val;
-  GetKeyValStruct(key,val);
+  GetKeyValStruct(key, val);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,IpctSt::kIpcStKeyVbrIf,key, cfgval);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, cfgval);
   DalDmlIntf *dmi(getDalDmlIntf());
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.updateVbrIf(req,ikey,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.updateVbrIf(req, ikey, dmi));
 
   delete ikey;
 }
@@ -2333,13 +2604,16 @@ TEST_F(VbrIfMoMgrTest, UpdateVbrIf_4) {
   VbrIfMoMgr obj;
   key_vbr_if *key;
   val_vbr_if *val;
-  GetKeyValStruct(key,val);
+  GetKeyValStruct(key, val);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,IpctSt::kIpcStKeyVbrIf,key, cfgval);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, cfgval);
   DalDmlIntf *dmi(getDalDmlIntf());
   IPC_REQ_RESP_HEADER_DECL(req);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.updateVbrIf(req,ikey,dmi));
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcSuccess);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.updateVbrIf(req, ikey, dmi));
 
   delete ikey;
 }
@@ -2348,20 +2622,23 @@ TEST_F(VbrIfMoMgrTest, GetChildConfigKey_PkeyVlinkSuccess) {
   VbrIfMoMgr vbr;
   key_vbr_if_t *key(ZALLOC_TYPE(key_vbr_if_t));
   val_vbr_if *val(ZALLOC_TYPE(val_vbr_if));
-  strncpy((char*) key->if_name,"IF_1",32);
-  strncpy((char*) key->vbr_key.vbridge_name,"VLINK1",32);
-  strncpy((char*) key->vbr_key.vtn_key.vtn_name,"VTN1",32);
+  strncpy((char*) key->if_name, "IF_1", 32);
+  strncpy((char*) key->vbr_key.vbridge_name, "VLINK1", 32);
+  strncpy((char*) key->vbr_key.vtn_key.vtn_name, "VTN1", 32);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *pkey = new ConfigKeyVal(UNC_KT_VLINK,
+  ConfigKeyVal *pkey = new ConfigKeyVal(
+    UNC_KT_VLINK,
                        IpctSt::kIpcStKeyVbrIf,
-                       key,cfgval);
+                       key, cfgval);
 
   key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
   val_vbr_if *val1(UT_CLONE(val_vbr_if, val));
   ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
-  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *okey(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                       key1, cfgval1));
-  EXPECT_EQ(UPLL_RC_SUCCESS,vbr.GetChildConfigKey(okey, pkey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.GetChildConfigKey(okey, pkey));
 
   delete okey;
   delete pkey;
@@ -2372,20 +2649,23 @@ TEST_F(VbrIfMoMgrTest, GetChildConfigKey_PkeyVtnSuccess) {
   key_vbr_if_t *key(ZALLOC_TYPE(key_vbr_if_t));
   val_vbr_if *val(ZALLOC_TYPE(val_vbr_if));
 
-  strncpy((char*) key->if_name,"IF_1",32);
-  strncpy((char*) key->vbr_key.vbridge_name,"VLINK1",32);
-  strncpy((char*) key->vbr_key.vtn_key.vtn_name,"VTN1",32);
+  strncpy((char*) key->if_name, "IF_1", 32);
+  strncpy((char*) key->vbr_key.vbridge_name, "VLINK1", 32);
+  strncpy((char*) key->vbr_key.vtn_key.vtn_name, "VTN1", 32);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *pkey = new ConfigKeyVal(UNC_KT_VTN,
+  ConfigKeyVal *pkey = new ConfigKeyVal(
+    UNC_KT_VTN,
                        IpctSt::kIpcStKeyVbrIf,
-                       key,cfgval);
+                       key, cfgval);
 
   key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
   val_vbr_if *val1(UT_CLONE(val_vbr_if, val));
   ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
-  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *okey(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                       key1, cfgval1));
-  EXPECT_EQ(UPLL_RC_SUCCESS,vbr.GetChildConfigKey(okey, pkey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.GetChildConfigKey(okey, pkey));
 
   delete okey;
   delete pkey;
@@ -2395,19 +2675,22 @@ TEST_F(VbrIfMoMgrTest, GetChildConfigKey_PkeyVbridgeSuccess) {
   VbrIfMoMgr vbr;
   key_vbr_if_t *key(ZALLOC_TYPE(key_vbr_if_t));
   val_vbr_if *val(ZALLOC_TYPE(val_vbr_if));
-  strncpy((char*) key->if_name,"IF_1",32);
-  strncpy((char*) key->vbr_key.vbridge_name,"VLINK1",32);
-  strncpy((char*) key->vbr_key.vtn_key.vtn_name,"VTN1",32);
+  strncpy((char*) key->if_name, "IF_1", 32);
+  strncpy((char*) key->vbr_key.vbridge_name, "VLINK1", 32);
+  strncpy((char*) key->vbr_key.vtn_key.vtn_name, "VTN1", 32);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *pkey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigKeyVal *pkey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                        IpctSt::kIpcStKeyVbrIf,
-                       key,cfgval);
+                       key, cfgval);
   key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
   val_vbr_if *val1(UT_CLONE(val_vbr_if, val));
   ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
-  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *okey(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                       key1, cfgval1));
-  EXPECT_EQ(UPLL_RC_SUCCESS,vbr.GetChildConfigKey(okey, pkey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.GetChildConfigKey(okey, pkey));
 
   delete okey;
   delete pkey;
@@ -2420,14 +2703,17 @@ TEST_F(VbrIfMoMgrTest, GetParentConfigKey_02) {
 
   GetKeyValStruct(key, val);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VBR_IF,IpctSt::kIpcStKeyVbrIf,key,cfgval) ;
+  ConfigKeyVal *okey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, cfgval);
 
   key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
   val_vbr_if *val1(UT_CLONE(val_vbr_if, val));
   ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
-  ConfigKeyVal *ikey(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *ikey(new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbrIf,
                                       key1, cfgval1));
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vbr.GetParentConfigKey(okey, ikey));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.GetParentConfigKey(okey, ikey));
 
   delete okey;
   delete ikey;
@@ -2440,14 +2726,17 @@ TEST_F(VbrIfMoMgrTest, GetParentConfigKey_03) {
 
   GetKeyValStruct(key, val);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VBR_IF,IpctSt::kIpcStKeyVbrIf,key,cfgval) ;
+  ConfigKeyVal *okey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, cfgval);
 
   key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
   val_vbr_if *val1(UT_CLONE(val_vbr_if, val));
   ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
-  ConfigKeyVal *ikey(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *ikey(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                       key1, cfgval1));
-  EXPECT_EQ(UPLL_RC_SUCCESS,vbr.GetParentConfigKey(okey, ikey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.GetParentConfigKey(okey, ikey));
 
   delete okey;
   delete ikey;
@@ -2457,7 +2746,8 @@ TEST_F(VbrIfMoMgrTest, GetParentConfigKey_01) {
   VbrIfMoMgr vbr;
   ConfigKeyVal *okey = NULL;
   ConfigKeyVal *ikey = NULL;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vbr.GetParentConfigKey(okey, ikey));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.GetParentConfigKey(okey, ikey));
 }
 
 TEST_F(VbrIfMoMgrTest, GetParentConfigKey_09) {
@@ -2469,8 +2759,10 @@ TEST_F(VbrIfMoMgrTest, GetParentConfigKey_09) {
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
 
   ConfigKeyVal *okey = NULL;
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,IpctSt::kIpcStKeyVbrIf,key,cfgval) ;
-  EXPECT_EQ(UPLL_RC_SUCCESS,vbr.GetParentConfigKey(okey, ikey));
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, cfgval);
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.GetParentConfigKey(okey, ikey));
 
   delete okey;
   delete ikey;
@@ -2479,21 +2771,26 @@ TEST_F(VbrIfMoMgrTest, GetParentConfigKey_09) {
 TEST_F(VbrIfMoMgrTest, AllocVal_Error) {
   VbrIfMoMgr obj;
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, NULL);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.AllocVal(cfgval, UPLL_DT_CANDIDATE,RENAMETBL));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.AllocVal(cfgval, UPLL_DT_CANDIDATE, RENAMETBL));
 
   delete cfgval;
 }
 
+# if 0
 TEST_F(VbrIfMoMgrTest, ConverttoDriverPortMap_01) {
   VbrIfMoMgr obj;
   key_vbr_if *key;
   val_drv_vbr_if *val;
   GetKeyValDrvStruct(key, val);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
-  EXPECT_EQ(UPLL_RC_SUCCESS,obj.ConverttoDriverPortMap(ikey));
+  DalDmlIntf *dmi(getDalDmlIntf());
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.ConverttoDriverPortMap(ikey, dmi));
 
   delete ikey;
 }
@@ -2508,14 +2805,18 @@ TEST_F(VbrIfMoMgrTest, ConverttoDriverPortMap_02) {
   strncpy(reinterpret_cast<char *>(key->if_name),
   if_name, strlen(if_name)+1);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
-  EXPECT_EQ(UPLL_RC_SUCCESS,obj.ConverttoDriverPortMap(ikey));
+  DalDmlIntf *dmi(getDalDmlIntf());
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.ConverttoDriverPortMap(ikey, dmi));
 
   delete ikey;
 }
 
+# endif
 TEST_F(VbrIfMoMgrTest, UpdateConfigStatus_Success) {
   VbrIfMoMgr obj;
   DalDmlIntf *dmi(getDalDmlIntf());
@@ -2523,17 +2824,20 @@ TEST_F(VbrIfMoMgrTest, UpdateConfigStatus_Success) {
   val_vbr_if *val;
   GetKeyValStruct(key, val);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
 
   key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
   val_vbr_if *val1(UT_CLONE(val_vbr_if, val));
   ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
-  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *upd_key(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                          key1, cfgval1));
 
-  EXPECT_EQ(UPLL_RC_SUCCESS,obj.UpdateConfigStatus(ikey, UNC_OP_CREATE,
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.UpdateConfigStatus(ikey, UNC_OP_CREATE,
                                                    UPLL_RC_SUCCESS,
                                                    upd_key, dmi, ikey));
   delete ikey;
@@ -2547,17 +2851,20 @@ TEST_F(VbrIfMoMgrTest, UpdateConfigStatus_SuccessUPDATE) {
   val_drv_vbr_if *val;
   GetKeyValDrvStruct(key, val);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
 
   key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
   val_drv_vbr_if *val1(UT_CLONE(val_drv_vbr_if, val));
   ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
-  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *upd_key(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                          key1, cfgval1));
 
-  EXPECT_EQ(UPLL_RC_SUCCESS,obj.UpdateConfigStatus(ikey, UNC_OP_UPDATE,
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.UpdateConfigStatus(ikey, UNC_OP_UPDATE,
                                                    UPLL_RC_SUCCESS,
                                                    upd_key, dmi, ikey));
   delete ikey;
@@ -2571,19 +2878,22 @@ TEST_F(VbrIfMoMgrTest, UpdateConfigStatus_SuccessUPDATE_01) {
   val_drv_vbr_if *val;
   GetKeyValDrvStruct(key, val);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
 
   key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
   val_drv_vbr_if *val1(UT_CLONE(val_drv_vbr_if, val));
   ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
-  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *upd_key(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                          key1, cfgval1));
   val->valid[UPLL_IDX_ADMIN_STATUS_VBRI] = UNC_VF_VALID;
-  EXPECT_EQ(UPLL_RC_SUCCESS,obj.UpdateConfigStatus(ikey, UNC_OP_UPDATE,
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.UpdateConfigStatus(ikey, UNC_OP_UPDATE,
                                                    UPLL_RC_SUCCESS,
-                                                   upd_key,dmi,ikey));
+                                                   upd_key, dmi, ikey));
 
   delete ikey;
   delete upd_key;
@@ -2596,17 +2906,20 @@ TEST_F(VbrIfMoMgrTest, UpdateConfigStatus_SuccessUPDATE_02) {
   val_drv_vbr_if *val;
   GetKeyValDrvStruct(key, val);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
 
   key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
   val_drv_vbr_if *val1(UT_CLONE(val_drv_vbr_if, val));
   ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
-  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *upd_key(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                          key1, cfgval1));
   val->valid[UPLL_IDX_ADMIN_STATUS_VBRI] = UNC_VF_VALID_NO_VALUE;
-  EXPECT_EQ(UPLL_RC_SUCCESS,obj.UpdateConfigStatus(ikey, UNC_OP_UPDATE,
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.UpdateConfigStatus(ikey, UNC_OP_UPDATE,
                                                    UPLL_RC_SUCCESS,
                                                    upd_key, dmi, ikey));
 
@@ -2621,16 +2934,19 @@ TEST_F(VbrIfMoMgrTest, UpdateConfigStatus_InvalidOP) {
   val_drv_vbr_if *val;
   GetKeyValDrvStruct(key, val);
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
 
   key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
   val_drv_vbr_if *val1(UT_CLONE(val_drv_vbr_if, val));
   ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
-  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *upd_key(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                          key1, cfgval1));
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.UpdateConfigStatus(ikey, UNC_OP_READ,
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.UpdateConfigStatus(ikey, UNC_OP_READ,
                                                        UPLL_RC_SUCCESS,
                                                        upd_key, dmi, ikey));
 
@@ -2646,8 +2962,12 @@ TEST_F(VbrIfMoMgrTest, UpdateAuditConfigStatus_ValidCsStatus) {
   ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   unc_keytype_configstatus_t cs_status = UNC_CS_APPLIED;
   UpdateCtrlrPhase phase = kUpllUcpCreate;
-  ConfigKeyVal *ckv_running = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, (void*)key, cfg_val);
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbrmomgr.UpdateAuditConfigStatus(cs_status, phase, ckv_running));
+  DalDmlIntf *dmi(getDalDmlIntf());
+  ConfigKeyVal *ckv_running = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, (void*)key, cfg_val);
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbrmomgr.UpdateAuditConfigStatus(
+    cs_status, phase, ckv_running, dmi));
   delete ckv_running;
 }
 
@@ -2659,8 +2979,12 @@ TEST_F(VbrIfMoMgrTest, UpdateAuditConfigStatus_UpdatePhase) {
   ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   unc_keytype_configstatus_t cs_status = UNC_CS_NOT_APPLIED;
   UpdateCtrlrPhase phase = kUpllUcpUpdate;
-  ConfigKeyVal *ckv_running = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, (void*)key, cfg_val);
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbrmomgr.UpdateAuditConfigStatus(cs_status, phase, ckv_running));
+  ConfigKeyVal *ckv_running = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, (void*)key, cfg_val);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbrmomgr.UpdateAuditConfigStatus(
+    cs_status, phase, ckv_running, dmi));
   delete ckv_running;
 }
 
@@ -2672,8 +2996,12 @@ TEST_F(VbrIfMoMgrTest, UpdateAuditConfigStatus_InvalidCsStatus) {
   ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
   unc_keytype_configstatus_t cs_status = UNC_CS_INVALID;
   UpdateCtrlrPhase phase = kUpllUcpCreate;
-  ConfigKeyVal *ckv_running = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, (void*)key, cfg_val);
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbrmomgr.UpdateAuditConfigStatus(cs_status, phase, ckv_running));
+  ConfigKeyVal *ckv_running = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, (void*)key, cfg_val);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbrmomgr.UpdateAuditConfigStatus(
+    cs_status, phase, ckv_running, dmi));
   delete ckv_running;
 }
 
@@ -2681,15 +3009,22 @@ TEST_F(VbrIfMoMgrTest, UpdateAuditConfigStatus_EmptyVal) {
   VbrIfMoMgr vbrmomgr;
   unc_keytype_configstatus_t cs_status = UNC_CS_APPLIED;
   UpdateCtrlrPhase phase = kUpllUcpCreate;
-  ConfigKeyVal *ckv_running = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbrmomgr.UpdateAuditConfigStatus(cs_status, phase, ckv_running));
+  ConfigKeyVal *ckv_running = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbrmomgr.UpdateAuditConfigStatus(
+    cs_status, phase, ckv_running, dmi));
   delete ckv_running;
 }
 
 TEST_F(VbrIfMoMgrTest, VbrIfMoMgr_UpdateAuditConfigStatus1) {
   VbrIfMoMgr vbr;
-  ConfigKeyVal *ikey =NULL;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.UpdateAuditConfigStatus(UNC_CS_APPLIED,uuc::kUpllUcpCreate, ikey));
+  ConfigKeyVal *ikey  = NULL;
+  DalDmlIntf *dmi(getDalDmlIntf());
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.UpdateAuditConfigStatus(
+    UNC_CS_APPLIED, uuc::kUpllUcpCreate, ikey, dmi));
   delete ikey;
 }
 
@@ -2699,9 +3034,12 @@ TEST_F(VbrIfMoMgrTest, VbrIfMoMgr_UpdateAuditConfigStatus2) {
   ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVbrIf,
                                  val);
 
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,IpctSt::kIpcStKeyVbrIf, NULL,tmp);
-
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.UpdateAuditConfigStatus(UNC_CS_INVALID,uuc::kUpllUcpCreate, ikey));
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, NULL, tmp);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.UpdateAuditConfigStatus(
+    UNC_CS_INVALID, uuc::kUpllUcpCreate, ikey, dmi));
   delete ikey;
 }
 
@@ -2712,7 +3050,8 @@ TEST_F(VbrIfMoMgrTest, ValidateMessage_UNC_KT_VBRIDGE) {
   GetKeyValStruct(key, val);
 
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
 
@@ -2733,7 +3072,8 @@ TEST_F(VbrIfMoMgrTest, ValidateMessage_req_NULL) {
   VbrIfMoMgr vbr;
   ConfigKeyVal *ikey = NULL;
   IPC_REQ_RESP_HEADER_DECL(req);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.ValidateMessage(req, ikey));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.ValidateMessage(req, ikey));
 }
 
 TEST_F(VbrIfMoMgrTest, ValidateMessage_kIpcStValVtnNeighbor) {
@@ -2743,7 +3083,8 @@ TEST_F(VbrIfMoMgrTest, ValidateMessage_kIpcStValVtnNeighbor) {
   GetKeyValStruct(key, val);
 
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVtnNeighbor, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
 
@@ -2755,7 +3096,8 @@ TEST_F(VbrIfMoMgrTest, ValidateMessage_kIpcStValVtnNeighbor) {
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
   req->datatype = UPLL_DT_CANDIDATE;
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateMessage(req, ikey));
 
   delete ikey;
 }
@@ -2767,7 +3109,8 @@ TEST_F(VbrIfMoMgrTest, ValidateMessage_kIpcStPfcdrvValVbrIf) {
   GetKeyValStruct(key, val);
 
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStPfcdrvValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
 
@@ -2779,7 +3122,8 @@ TEST_F(VbrIfMoMgrTest, ValidateMessage_kIpcStPfcdrvValVbrIf) {
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
   req->datatype = UPLL_DT_CANDIDATE;
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateMessage(req, ikey));
 
   delete ikey;
 }
@@ -2791,7 +3135,8 @@ TEST_F(VbrIfMoMgrTest, ValidateMessage_kIpcStKeyVbr) {
   GetKeyValStruct(key, val);
 
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
 
@@ -2815,7 +3160,8 @@ TEST_F(VbrIfMoMgrTest, ValidateMessage_01) {
   GetKeyValStruct(key, val);
 
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
 
@@ -2828,13 +3174,16 @@ TEST_F(VbrIfMoMgrTest, ValidateMessage_01) {
   req->option2 = UNC_OPT2_NONE;
   req->datatype = UPLL_DT_CANDIDATE;
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateMessage(req, ikey));
   key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
   ConfigVal *cfgval1 = NULL;
-  ConfigKeyVal *ikey1 = new ConfigKeyVal(UNC_KT_VBR_IF,
+  ConfigKeyVal *ikey1 = new ConfigKeyVal(
+    UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key1, cfgval1);
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey1));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateMessage(req, ikey1));
 
 
   const char *if_name = " ";
@@ -2843,18 +3192,22 @@ TEST_F(VbrIfMoMgrTest, ValidateMessage_01) {
   strncpy(reinterpret_cast<char *>(key2->if_name),
           if_name, strlen(if_name)+1);
   ConfigVal *cfgval2 = new ConfigVal(IpctSt::kIpcStValVbrIf, val2);
-  ConfigKeyVal *ikey2 = new ConfigKeyVal(UNC_KT_VBR_IF,
+  ConfigKeyVal *ikey2 = new ConfigKeyVal(
+    UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key2, cfgval2);
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbr.ValidateMessage(req, ikey2));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vbr.ValidateMessage(req, ikey2));
 
   ConfigKeyVal *nullkey(NULL);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.ValidateMessage(req, nullkey));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.ValidateMessage(req, nullkey));
 
   key_vbr_if *key3(UT_CLONE(key_vbr_if, key));
   val_vbr_if *val3(UT_CLONE(val_vbr_if, val));
   ConfigVal *cfgval3(new ConfigVal(IpctSt::kIpcStValVbrIf, val3));
-  ConfigKeyVal *ikey3(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+  ConfigKeyVal *ikey3(new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                        key3, cfgval3));
   EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vbr.ValidateMessage(req, ikey3));
 
@@ -2871,7 +3224,8 @@ TEST_F(VbrIfMoMgrTest, ValidateMessage_02) {
   GetKeyValStruct(key, val);
 
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
 
@@ -2883,13 +3237,15 @@ TEST_F(VbrIfMoMgrTest, ValidateMessage_02) {
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
   req->datatype = UPLL_DT_CANDIDATE;
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateMessage(req, ikey));
 
   req->operation = UNC_OP_CONTROL;
   key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
   val_vbr_if *val1(UT_CLONE(val_vbr_if, val));
   ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
-  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *ikey1(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                        key1, cfgval1));
   EXPECT_EQ(UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT,
             vbr.ValidateMessage(req, ikey1));
@@ -2898,19 +3254,22 @@ TEST_F(VbrIfMoMgrTest, ValidateMessage_02) {
   key_vbr_if *key2(UT_CLONE(key_vbr_if, key));
   val_vbr_if *val2(UT_CLONE(val_vbr_if, val));
   ConfigVal *cfgval2(new ConfigVal(IpctSt::kIpcStValVbr, val2));
-  ConfigKeyVal *ikey2(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *ikey2(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                        key2, cfgval2));
   EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vbr.ValidateMessage(req, ikey2));
 
   key_vbr_if *key3(UT_CLONE(key_vbr_if, key));
   ConfigVal *cfgval3(NULL);
-  ConfigKeyVal *ikey3(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *ikey3(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                        key3, cfgval3));
   EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vbr.ValidateMessage(req, ikey3));
 
   key_vbr_if *key4(UT_CLONE(key_vbr_if, key));
   ConfigVal *cfgval4(new ConfigVal(IpctSt::kIpcStValVtn, NULL));
-  ConfigKeyVal *ikey4(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *ikey4(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                        key4, cfgval4));
   EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vbr.ValidateMessage(req, ikey4));
 
@@ -2928,7 +3287,8 @@ TEST_F(VbrIfMoMgrTest, ValidateMessage_03) {
   GetKeyValStruct(key, val);
 
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
 
@@ -2952,22 +3312,28 @@ TEST_F(VbrIfMoMgrTest, ValidateMessage_03) {
   key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
   val_vbr_if *val1(UT_CLONE(val_vbr_if, val));
   ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
-  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *ikey1(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                        key1, cfgval1));
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey1));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateMessage(req, ikey1));
 
   key_vbr_if *key2(UT_CLONE(key_vbr_if, key));
   ConfigVal *cfgval2(NULL);
-  ConfigKeyVal *ikey2(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *ikey2(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                        key2, cfgval2));
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey2));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateMessage(req, ikey2));
 
   key_vbr_if *key3(UT_CLONE(key_vbr_if, key));
   val_vbr_if *val3(NULL);
   ConfigVal *cfgval3(new ConfigVal(IpctSt::kIpcStValVbrIf, val3));
-  ConfigKeyVal *ikey3(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *ikey3(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                        key3, cfgval3));
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey3));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateMessage(req, ikey3));
 
   delete ikey;
   delete ikey1;
@@ -2982,7 +3348,8 @@ TEST_F(VbrIfMoMgrTest, ValidateMessage_04) {
   GetKeyValStruct(key, val);
 
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
 
@@ -3006,22 +3373,28 @@ TEST_F(VbrIfMoMgrTest, ValidateMessage_04) {
   key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
   val_vbr_if *val1(UT_CLONE(val_vbr_if, val));
   ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
-  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *ikey1(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                        key1, cfgval1));
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey1));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateMessage(req, ikey1));
 
   key_vbr_if *key2(UT_CLONE(key_vbr_if, key));
   ConfigVal *cfgval2(NULL);
-  ConfigKeyVal *ikey2(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *ikey2(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                        key2, cfgval2));
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey2));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateMessage(req, ikey2));
 
   key_vbr_if *key3(UT_CLONE(key_vbr_if, key));
   val_vbr_if *val3(NULL);
   ConfigVal *cfgval3(new ConfigVal(IpctSt::kIpcStValVbrIf, val3));
-  ConfigKeyVal *ikey3(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *ikey3(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                        key3, cfgval3));
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey3));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateMessage(req, ikey3));
 
   delete ikey;
   delete ikey1;
@@ -3036,7 +3409,8 @@ TEST_F(VbrIfMoMgrTest, ValidateMessage_06) {
   GetKeyValStruct(key, val);
 
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
 
@@ -3060,22 +3434,28 @@ TEST_F(VbrIfMoMgrTest, ValidateMessage_06) {
   key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
   val_vbr_if *val1(UT_CLONE(val_vbr_if, val));
   ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
-  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *ikey1(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                        key1, cfgval1));
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey1));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateMessage(req, ikey1));
 
   key_vbr_if *key2(UT_CLONE(key_vbr_if, key));
   ConfigVal *cfgval2(NULL);
-  ConfigKeyVal *ikey2(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *ikey2(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                        key2, cfgval2));
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey2));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateMessage(req, ikey2));
 
   key_vbr_if *key3(UT_CLONE(key_vbr_if, key));
   val_vbr_if *val3(NULL);
   ConfigVal *cfgval3(new ConfigVal(IpctSt::kIpcStValVbrIf, val3));
-  ConfigKeyVal *ikey3(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *ikey3(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                        key3, cfgval3));
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey3));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateMessage(req, ikey3));
 
   req->operation = UNC_OP_DELETE;
   key_vbr_if *key4(UT_CLONE(key_vbr_if, key));
@@ -3084,9 +3464,11 @@ TEST_F(VbrIfMoMgrTest, ValidateMessage_06) {
               sizeof(key4->if_name));
 
   ConfigVal *cfgval4(new ConfigVal(IpctSt::kIpcStValVbrIf, val4));
-  ConfigKeyVal *ikey4(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *ikey4(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                        key4, cfgval4));
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey4));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateMessage(req, ikey4));
 
   delete ikey;
   delete ikey1;
@@ -3102,7 +3484,8 @@ TEST_F(VbrIfMoMgrTest, ValidateMessage_05) {
   GetKeyValStruct(key, val);
 
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBR_IF,
                             IpctSt::kIpcStKeyVbrIf,
                             key, cfgval);
 
@@ -3118,7 +3501,8 @@ TEST_F(VbrIfMoMgrTest, ValidateMessage_05) {
 
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NEIGHBOR;
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateMessage(req, ikey));
 
   req->option2 = UNC_OPT2_NONE;
   req->option1 = UNC_OPT1_NORMAL;
@@ -3126,22 +3510,28 @@ TEST_F(VbrIfMoMgrTest, ValidateMessage_05) {
   key_vbr_if *key1(UT_CLONE(key_vbr_if, key));
   val_vbr_if *val1(UT_CLONE(val_vbr_if, val));
   ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbrIf, val1));
-  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *ikey1(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                        key1, cfgval1));
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey1));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateMessage(req, ikey1));
 
   key_vbr_if *key2(UT_CLONE(key_vbr_if, key));
   ConfigVal *cfgval2(NULL);
-  ConfigKeyVal *ikey2(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *ikey2(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                        key2, cfgval2));
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey2));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateMessage(req, ikey2));
 
   key_vbr_if *key3(UT_CLONE(key_vbr_if, key));
   val_vbr_if *val3(NULL);
   ConfigVal *cfgval3(new ConfigVal(IpctSt::kIpcStValVbrIf, val3));
-  ConfigKeyVal *ikey3(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *ikey3(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                        key3, cfgval3));
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey3));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateMessage(req, ikey3));
   req->option2 = UNC_OPT2_L2DOMAIN;
   EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION2, vbr.ValidateMessage(req, ikey3));
 
@@ -3167,97 +3557,112 @@ TEST_F(VbrIfMoMgrTest, ValidateMessage_07) {
   req->operation = UNC_OP_DELETE;
 
   ConfigVal *cfgval(new ConfigVal(IpctSt::kIpcStValVbrIf, val));
-  ConfigKeyVal *ikey(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+  ConfigKeyVal *ikey(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
                                       key, cfgval));
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateMessage(req, ikey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateMessage(req, ikey));
 
   delete ikey;
 }
 
-TEST_F(VbrIfMoMgrTest, GetVbrIfFromVexternal_TmpckvNonNull){
+TEST_F(VbrIfMoMgrTest, GetVbrIfFromVexternal_TmpckvNonNull) {
   VbrIfMoMgr obj;
   DalDmlIntf *dmi(getDalDmlIntf());
   key_vbr_if *key;
   val_vbr_if *val;
-  uint8_t vtnname=1;
-  uint8_t vexternal1=1;
-  uint8_t *vexternal=&vexternal1;
-  uint8_t *vtn1=&vtnname;
+  uint8_t vtnname = 1;
+  uint8_t vexternal1 = 1;
+  uint8_t *vexternal = &vexternal1;
+  uint8_t *vtn1 = &vtnname;
   GetKeyValStruct(key, val);
 
   ConfigVal *cfgval(new ConfigVal(IpctSt::kIpcStValVbrIf, val));
-  ConfigKeyVal *ikey(new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
-                                      key ,cfgval));
+  ConfigKeyVal *ikey(new ConfigKeyVal(
+    UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf,
+                                      key, cfgval));
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.GetVbrIfFromVExternal(vtn1,vexternal,ikey,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.GetVbrIfFromVExternal(vtn1, vexternal, ikey, dmi));
 
   delete ikey;
 }
 
-TEST_F(VbrIfMoMgrTest, GetVbrIfFromVexternal_TmpckvNull){
+TEST_F(VbrIfMoMgrTest, GetVbrIfFromVexternal_TmpckvNull) {
   VbrIfMoMgr obj;
   DalDmlIntf *dmi(getDalDmlIntf());
   uint8_t vtnname[2] = {1, 0};
   uint8_t vexternal[2] = {1, 0};
-  ConfigKeyVal *ikey =NULL;
+  ConfigKeyVal *ikey  = NULL;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,
             obj.GetVbrIfFromVExternal(vtnname, vexternal, ikey, dmi));
 }
 
-TEST_F(VbrIfMoMgrTest, PortStatusHandler_TrueOperStatus){
+TEST_F(VbrIfMoMgrTest, PortStatusHandler_TrueOperStatus) {
   VbrIfMoMgr obj;
   DalDmlIntf *dmi(getDalDmlIntf());
-  const char *ctrlr_name="PFC_1";
-  const char * domain_name="DOMAIN_1";
-  const char *port_id="VLAN";
+  const char *ctrlr_name = "PFC_1";
+  const char * domain_name = "DOMAIN_1";
+  const char *port_id = "VLAN";
   bool oper_status = true;
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.PortStatusHandler(ctrlr_name,domain_name,port_id,oper_status,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.PortStatusHandler(
+    ctrlr_name, domain_name, port_id, oper_status, dmi));
 }
 
-TEST_F(VbrIfMoMgrTest, PortStatusHandler_FalseOperStatus){
+TEST_F(VbrIfMoMgrTest, PortStatusHandler_FalseOperStatus) {
   VbrIfMoMgr obj;
   DalDmlIntf *dmi(getDalDmlIntf());
 
-  const char *ctrlr_name="PFC_1";
-  const char * domain_name="DOMAIN_1";
-  const char *port_id="VLAN";
+  const char *ctrlr_name = "PFC_1";
+  const char * domain_name = "DOMAIN_1";
+  const char *port_id = "VLAN";
   bool oper_status = UPLL_OPER_STATUS_UP;
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::MULTIPLE, kDalRcSuccess);
 
-  std::map<uint8_t,DalResultCode> map;
-  map.insert(std::make_pair(1,kDalRcRecordNoMore));
-  map.insert(std::make_pair(0,kDalRcSuccess));
+  std::map<uint8_t, DalResultCode> map;
+  map.insert(std::make_pair(1, kDalRcRecordNoMore));
+  map.insert(std::make_pair(0, kDalRcSuccess));
   DalOdbcMgr::stub_setNextRecordResultCodes(map);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.PortStatusHandler(ctrlr_name,domain_name,port_id,oper_status,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.PortStatusHandler(
+    ctrlr_name, domain_name, port_id, oper_status, dmi));
 }
 
-TEST_F(VbrIfMoMgrTest, PortStatusHandler_FalseOperStatus_02){
+TEST_F(VbrIfMoMgrTest, PortStatusHandler_FalseOperStatus_02) {
   VbrIfMoMgr obj;
   DalDmlIntf *dmi(getDalDmlIntf());
 
-  const char *ctrlr_name="PFC_1";
-  const char * domain_name="DOMAIN_1";
-  const char *port_id="VLAN";
+  const char *ctrlr_name = "PFC_1";
+  const char * domain_name = "DOMAIN_1";
+  const char *port_id = "VLAN";
   bool oper_status = UPLL_OPER_STATUS_DOWN;
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcSuccess);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.PortStatusHandler(ctrlr_name,domain_name,port_id,oper_status,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.PortStatusHandler(
+    ctrlr_name, domain_name, port_id, oper_status, dmi));
 }
 
 TEST_F(VbrIfMoMgrTest, UpdateConfigVal_UpdateConfigVal_07) {
   VbrIfMoMgr vbr;
-  upll_keytype_datatype_t datatype=UPLL_DT_CANDIDATE;
+  upll_keytype_datatype_t datatype = UPLL_DT_CANDIDATE;
   key_vbr_if *key;
   val_drv_vbr_if *val;
 
   DalDmlIntf *dmi(getDalDmlIntf());
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcSuccess);
 
   GetKeyValDrvStruct(key, val);
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIf, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VRT_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vbr.UpdateConfigVal(ikey,datatype,dmi));
+  ConfigVal *config_val =  new ConfigVal(IpctSt::kIpcStValVbrIf, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VRT_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.UpdateConfigVal(ikey, datatype, dmi));
 
   delete ikey;
 }
@@ -3307,7 +3712,7 @@ TEST_F(VbrIfMoMgrTest, CompareValidValue_Invalid_case1) {
   void *v1(val1);
   void *v2(val2);
 
-  for (unsigned int loop = 0;loop < sizeof(val1->valid) / sizeof(uint8_t);
+  for (unsigned int loop = 0; loop < sizeof(val1->valid) / sizeof(uint8_t);
        ++loop) {
     val1->valid[loop] = UNC_VF_VALID;
     val2->valid[loop] = UNC_VF_VALID;
index b0a15ebbd01d57ccaed7a18f876cdaccd7f0ef15..7018ef6e3d8c11214e033e337d98b17a917014b1 100644 (file)
@@ -16,7 +16,6 @@
 #include <unc/keytype.h>
 #include <pfcxx/synch.hh>
 #include <vbr_momgr.hh>
-#include <unc/keytype.h>
 #include <config_mgr.hh>
 #include <dal_odbc_mgr.hh>
 #include <dal_dml_intf.hh>
@@ -42,8 +41,7 @@ using namespace pfc::core;
 using namespace unc::upll::dal::schema::table;
 
 class VbrMoMgrTest
-  : public UpllTestEnv
-{
+  : public UpllTestEnv {
 };
 
 static void GetKeyStruct(key_vbr *&kst) {
@@ -62,13 +60,13 @@ static void GetValStruct(val_vbr *&vst) {
   const char *ctrlr_id = "Controller1";
 
   vst = ZALLOC_TYPE(val_vbr);
-  for(unsigned int loop = 0; loop < PFC_ARRAY_CAPACITY(vst->valid); ++loop) {
+  for (unsigned int loop = 0; loop < PFC_ARRAY_CAPACITY(vst->valid); ++loop) {
     vst->valid[loop] = UNC_VF_VALID;
   }
 
   vst->cs_row_status = UNC_VF_VALID;
 
-  for(unsigned int loop = 0; loop < PFC_ARRAY_CAPACITY(vst->cs_attr); ++loop) {
+  for (unsigned int loop = 0; loop < PFC_ARRAY_CAPACITY(vst->cs_attr); ++loop) {
     vst->cs_attr[loop] = UNC_CS_APPLIED;
   }
 
@@ -84,8 +82,7 @@ static void GetValStruct(val_vbr *&vst) {
   vst->host_addr.s_addr = sa.sin_addr.s_addr;
 }
 
-static void GetKeyValStruct(key_vbr *&kst, val_vbr *&vst)
-{
+static void GetKeyValStruct(key_vbr *&kst, val_vbr *&vst) {
   GetKeyStruct(kst);
   GetValStruct(vst);
 }
@@ -100,7 +97,8 @@ TEST_F(VbrMoMgrTest, ValidateVbrKey_Success) {
   strncpy(reinterpret_cast<char *>(key->vbridge_name),
           vbr_name, strlen(vbr_name)+1);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbrmomgr.ValidateVbrKey(key));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbrmomgr.ValidateVbrKey(key));
 
   free(key);
 }
@@ -115,7 +113,8 @@ TEST_F(VbrMoMgrTest, ValidateVbrKey_InvalidVtnName) {
   strncpy(reinterpret_cast<char *>(key->vbridge_name),
           vbr_name, strlen(vbr_name)+1);
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbrmomgr.ValidateVbrKey(key));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+    vbrmomgr.ValidateVbrKey(key));
 
   free(key);
 }
@@ -130,7 +129,8 @@ TEST_F(VbrMoMgrTest, ValidateVbrKey_InvalidVbrName) {
   strncpy(reinterpret_cast<char *>(key->vbridge_name),
           vbr_name, strlen(vbr_name)+1);
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbrmomgr.ValidateVbrKey(key));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vbrmomgr.ValidateVbrKey(key));
 
   free(key);
 }
@@ -139,7 +139,8 @@ TEST_F(VbrMoMgrTest, ValidateVbrKey_InvalidKeyStruct) {
   VbrMoMgr vbrmomgr;
   key_vbr *key = NULL;
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbrmomgr.ValidateVbrKey(key));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+    vbrmomgr.ValidateVbrKey(key));
 }
 
 TEST_F(VbrMoMgrTest, ValidateVbrValue_InvalidCtrlrID) {
@@ -150,7 +151,8 @@ TEST_F(VbrMoMgrTest, ValidateVbrValue_InvalidCtrlrID) {
   string ctrlr_id = "Controller 1";
   strncpy(reinterpret_cast<char *>(val->controller_id), ctrlr_id.c_str(),
   strlen(ctrlr_id.c_str())+1);
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbrmomgr.ValidateVbrValue(val, oper));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vbrmomgr.ValidateVbrValue(val, oper));
 
   free(val);
 }
@@ -163,7 +165,8 @@ TEST_F(VbrMoMgrTest, ValidateVbrValue_InvalidDesc) {
   string desc = "vbr_description 1";
   strncpy(reinterpret_cast<char *>(val->vbr_description), desc.c_str(),
   strlen(desc.c_str())+1);
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbrmomgr.ValidateVbrValue(val, oper));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+    vbrmomgr.ValidateVbrValue(val, oper));
 
   free(val);
 }
@@ -185,9 +188,11 @@ TEST_F(VbrMoMgrTest, ValidateVbrValue_PrefLenValidAttrInvalid) {
   val_vbr *val;
   GetValStruct(val);
   val->host_addr_prefixlen = 0;
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbrmomgr.ValidateVbrValue(val, oper));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+    vbrmomgr.ValidateVbrValue(val, oper));
   val->valid[UPLL_IDX_HOST_ADDR_PREFIXLEN_VBR] = UNC_VF_VALID_NO_VALUE;
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbrmomgr.ValidateVbrValue(val, oper));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+    vbrmomgr.ValidateVbrValue(val, oper));
 
   free(val);
 }
@@ -198,7 +203,8 @@ TEST_F(VbrMoMgrTest, ValidateVbrValue_InvalidIP) {
   val_vbr *val;
   GetValStruct(val);
   val->host_addr.s_addr = 0xffffffffU;
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbrmomgr.ValidateVbrValue(val, oper));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+    vbrmomgr.ValidateVbrValue(val, oper));
 
   free(val);
 }
@@ -208,9 +214,10 @@ TEST_F(VbrMoMgrTest, ValidateVbrValue_invalidFlagNew) {
   val_vbr_t *valvbr(ZALLOC_TYPE(val_vbr_t));
   uint32_t op = UNC_OP_CREATE;
   valvbr->valid[UPLL_IDX_DESC_VBR] = UNC_VF_INVALID;
-  strcpy((char*)valvbr->vbr_description,(const char *)"vbr1");
+  strcpy((char*)valvbr->vbr_description, (const char *)"vbr1");
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,vbr.ValidateVbrValue(valvbr,op));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vbr.ValidateVbrValue(valvbr, op));
 
   free(valvbr);
 }
@@ -220,9 +227,10 @@ TEST_F(VbrMoMgrTest, ValidateVbrValue_invalidFlag1) {
   val_vbr_t *valvbr(ZALLOC_TYPE(val_vbr_t));
   uint32_t op = UNC_OP_UPDATE;
   valvbr->valid[UPLL_IDX_DESC_VBR] = UNC_VF_INVALID;
-  strcpy((char*)valvbr->vbr_description,(const char *)"vbr1");
+  strcpy((char*)valvbr->vbr_description, (const char *)"vbr1");
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateVbrValue(valvbr,op));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateVbrValue(valvbr, op));
 
   free(valvbr);
 }
@@ -232,9 +240,10 @@ TEST_F(VbrMoMgrTest, ValidateVbrValue_validFlag2) {
   val_vbr_t *valvbr(ZALLOC_TYPE(val_vbr_t));
   uint32_t op = UNC_OP_UPDATE;
   valvbr->valid[UPLL_IDX_HOST_ADDR_VBR] = UNC_VF_INVALID;
-  strcpy((char*)valvbr->vbr_description,(const char *)"vbr1");
+  strcpy((char*)valvbr->vbr_description, (const char *)"vbr1");
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateVbrValue(valvbr,op));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateVbrValue(valvbr, op));
 
   free(valvbr);
 }
@@ -244,9 +253,10 @@ TEST_F(VbrMoMgrTest, ValidateVbrValue_validFlag3) {
   val_vbr_t *valvbr(ZALLOC_TYPE(val_vbr_t));
   uint32_t op = UNC_OP_UPDATE;
   valvbr->valid[UPLL_IDX_HOST_ADDR_PREFIXLEN_VBR] = UNC_VF_INVALID;
-  strcpy((char*)valvbr->vbr_description,(const char *)"vbr1");
+  strcpy((char*)valvbr->vbr_description, (const char *)"vbr1");
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateVbrValue(valvbr,op));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateVbrValue(valvbr, op));
 
   free(valvbr);
 }
@@ -256,9 +266,10 @@ TEST_F(VbrMoMgrTest, ValidateVbrValue_validFlag4) {
   val_vbr_t *valvbr(ZALLOC_TYPE(val_vbr_t));
   uint32_t op = UNC_OP_UPDATE;
   valvbr->valid[UPLL_IDX_CONTROLLER_ID_VBR] = UNC_VF_INVALID;
-  strcpy((char*)valvbr->vbr_description,(const char *)"vbr1");
+  strcpy((char*)valvbr->vbr_description, (const char *)"vbr1");
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateVbrValue(valvbr,op));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateVbrValue(valvbr, op));
 
   free(valvbr);
 }
@@ -268,9 +279,10 @@ TEST_F(VbrMoMgrTest, ValidateVbrValue_validFlag5) {
   val_vbr_t *valvbr(ZALLOC_TYPE(val_vbr_t));
   uint32_t op = UNC_OP_UPDATE;
   valvbr->valid[UPLL_IDX_DOMAIN_ID_VBR] = UNC_VF_INVALID;
-  strcpy((char*)valvbr->vbr_description,(const char *)"vbr1");
+  strcpy((char*)valvbr->vbr_description, (const char *)"vbr1");
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateVbrValue(valvbr,op));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateVbrValue(valvbr, op));
 
   free(valvbr);
 }
@@ -280,9 +292,10 @@ TEST_F(VbrMoMgrTest, ValidateVbrValue_validFlag6) {
   val_vbr_t *valvbr(ZALLOC_TYPE(val_vbr_t));
   uint32_t op = UNC_OP_UPDATE;
   valvbr->valid[UPLL_IDX_PACKET_SIZE_PING] = UNC_VF_INVALID;
-  strcpy((char*)valvbr->vbr_description,(const char *)"vbr1");
+  strcpy((char*)valvbr->vbr_description, (const char *)"vbr1");
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValidateVbrValue(valvbr,op));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValidateVbrValue(valvbr, op));
 
   free(valvbr);
 }
@@ -292,9 +305,10 @@ TEST_F(VbrMoMgrTest, ValidateVbrValue_validFlag7) {
   val_vbr_t *valvbr(ZALLOC_TYPE(val_vbr_t));
   uint32_t op = UNC_OP_CREATE;
   valvbr->valid[UPLL_IDX_CONTROLLER_ID_VBR] = UNC_VF_INVALID;
-  strcpy((char*)valvbr->vbr_description,(const char *)"vbr1");
+  strcpy((char*)valvbr->vbr_description, (const char *)"vbr1");
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbr.ValidateVbrValue(valvbr,op));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+    vbr.ValidateVbrValue(valvbr, op));
 
   free(valvbr);
 }
@@ -304,9 +318,10 @@ TEST_F(VbrMoMgrTest, ValidateVbrValue_validFlag8) {
   val_vbr_t *valvbr(ZALLOC_TYPE(val_vbr_t));
   uint32_t op = UNC_OP_CREATE;
   valvbr->valid[UPLL_IDX_DOMAIN_ID_VBR] = UNC_VF_INVALID;
-  strcpy((char*)valvbr->vbr_description,(const char *)"vbr1");
+  strcpy((char*)valvbr->vbr_description, (const char *)"vbr1");
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbr.ValidateVbrValue(valvbr,op));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+    vbr.ValidateVbrValue(valvbr, op));
 
   free(valvbr);
 }
@@ -316,9 +331,10 @@ TEST_F(VbrMoMgrTest, ValidateVbrValue_validFlag9) {
   val_vbr_t *valvbr(ZALLOC_TYPE(val_vbr_t));
   uint32_t op = UNC_OP_CREATE;
   valvbr->valid[UPLL_IDX_HOST_ADDR_PREFIXLEN_VBR] = UNC_VF_INVALID;
-  strcpy((char*)valvbr->vbr_description,(const char *)"vbr1");
+  strcpy((char*)valvbr->vbr_description, (const char *)"vbr1");
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vbr.ValidateVbrValue(valvbr,op));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+    vbr.ValidateVbrValue(valvbr, op));
 
   free(valvbr);
 }
@@ -328,9 +344,10 @@ TEST_F(VbrMoMgrTest, ValidateVbrValue_validFlag10) {
   val_vbr_t *valvbr(ZALLOC_TYPE(val_vbr_t));
   uint32_t op = UNC_OP_CREATE;
   valvbr->valid[UPLL_IDX_DESC_VBR] = UNC_VF_VALID;
-  strcpy((char*)valvbr->vbr_description,(const char *)"vbr1");
+  strcpy((char*)valvbr->vbr_description, (const char *)"vbr1");
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,vbr.ValidateVbrValue(valvbr,op));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+   vbr.ValidateVbrValue(valvbr, op));
 
   free(valvbr);
 }
@@ -340,9 +357,10 @@ TEST_F(VbrMoMgrTest, ValidateVbrValue_validFlag11) {
   val_vbr_t *valvbr(ZALLOC_TYPE(val_vbr_t));
   uint32_t op = UNC_OP_CREATE;
   valvbr->valid[UPLL_IDX_HOST_ADDR_VBR] = UNC_VF_VALID;
-  strcpy((char*)valvbr->vbr_description,(const char *)"vbr1");
+  strcpy((char*)valvbr->vbr_description, (const char *)"vbr1");
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,vbr.ValidateVbrValue(valvbr,op));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vbr.ValidateVbrValue(valvbr, op));
 
   free(valvbr);
 }
@@ -352,9 +370,10 @@ TEST_F(VbrMoMgrTest, ValidateVbrValue_validFlag12) {
   val_vbr_t *valvbr(ZALLOC_TYPE(val_vbr_t));
   uint32_t op = UNC_OP_CREATE;
   valvbr->valid[UPLL_IDX_HOST_ADDR_PREFIXLEN_VBR] = UNC_VF_VALID;
-  strcpy((char*)valvbr->vbr_description,(const char *)"vbr1");
+  strcpy((char*)valvbr->vbr_description, (const char *)"vbr1");
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,vbr.ValidateVbrValue(valvbr,op));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+    vbr.ValidateVbrValue(valvbr, op));
 
   free(valvbr);
 }
@@ -364,11 +383,14 @@ TEST_F(VbrMoMgrTest, GetParentConfigKeySuccess) {
   key_vbr *key;
   val_vbr *val;
   GetKeyValStruct(key, val);
-  ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *ickv = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,key, cfg_val);
-  ConfigKeyVal *ockv= NULL;
+  ConfigVal *cfg_val = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
+  ConfigKeyVal *ickv = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key, cfg_val);
+  ConfigKeyVal *ockv =  NULL;
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbrmomgr.GetParentConfigKey(ockv, ickv));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbrmomgr.GetParentConfigKey(ockv, ickv));
 
   delete ockv;
   delete ickv;
@@ -379,7 +401,8 @@ TEST_F(VbrMoMgrTest, GetParentConfigKeyInvalidArg) {
   ConfigKeyVal *ickv = NULL;
   ConfigKeyVal *ockv = NULL;
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbrmomgr.GetParentConfigKey(ockv, ickv));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbrmomgr.GetParentConfigKey(ockv, ickv));
 }
 
 TEST_F(VbrMoMgrTest, GetParentConfigKeyInvalidKT) {
@@ -387,11 +410,14 @@ TEST_F(VbrMoMgrTest, GetParentConfigKeyInvalidKT) {
   key_vbr *key;
   val_vbr *val;
   GetKeyValStruct(key, val);
-  ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcStValVbr, val);
+  ConfigVal *cfg_val = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
 
   ConfigKeyVal *ockv = NULL;
-  ConfigKeyVal *ickv = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVbr,key, cfg_val);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbrmomgr.GetParentConfigKey(ockv, ickv));
+  ConfigKeyVal *ickv = new ConfigKeyVal(
+    UNC_KT_VTN, IpctSt::kIpcStKeyVbr, key, cfg_val);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbrmomgr.GetParentConfigKey(ockv, ickv));
 
   delete ockv;
   delete ickv;
@@ -399,10 +425,13 @@ TEST_F(VbrMoMgrTest, GetParentConfigKeyInvalidKT) {
 
 TEST_F(VbrMoMgrTest, GetParentConfigKeyNullKey) {
   VbrMoMgr vbrmomgr;
-  ConfigKeyVal *ickv = new ConfigKeyVal(UNC_KT_VBRIDGE);
-  ConfigKeyVal *ockv = new ConfigKeyVal(UNC_KT_VBRIDGE);
+  ConfigKeyVal *ickv = new ConfigKeyVal(
+    UNC_KT_VBRIDGE);
+  ConfigKeyVal *ockv = new ConfigKeyVal(
+    UNC_KT_VBRIDGE);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbrmomgr.GetParentConfigKey(ockv, ickv));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbrmomgr.GetParentConfigKey(ockv, ickv));
 
   delete ickv;
   delete ockv;
@@ -411,8 +440,10 @@ TEST_F(VbrMoMgrTest, GetParentConfigKeyNullKey) {
 TEST_F(VbrMoMgrTest, AllocVal_outputNull) {
   VbrMoMgr obj;
   val_vbr *val(ZALLOC_TYPE(val_vbr));
-  ConfigVal* cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.AllocVal(cfgval, UPLL_DT_IMPORT,MAINTBL));
+  ConfigVal* cfgval = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.AllocVal(cfgval, UPLL_DT_IMPORT, MAINTBL));
   delete cfgval;
 }
 
@@ -420,60 +451,73 @@ TEST_F(VbrMoMgrTest, AllocVal_SuccessMAINTBL) {
   VbrMoMgr obj;
   ConfigVal* cfgval = NULL;
 
-  EXPECT_EQ(UPLL_RC_SUCCESS,obj.AllocVal(cfgval, UPLL_DT_IMPORT,MAINTBL));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.AllocVal(cfgval, UPLL_DT_IMPORT, MAINTBL));
 }
 
 TEST_F(VbrMoMgrTest, AllocVal_SuccessRENAMETBL) {
   VbrMoMgr obj;
   ConfigVal* cfgval = NULL;
 
-  EXPECT_EQ(UPLL_RC_SUCCESS,obj.AllocVal(cfgval, UPLL_DT_IMPORT,RENAMETBL));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.AllocVal(cfgval, UPLL_DT_IMPORT, RENAMETBL));
 }
 
 TEST_F(VbrMoMgrTest, AllocVal_SuccessDT_STATE) {
   VbrMoMgr obj;
   ConfigVal* cfgval = NULL;
 
-  EXPECT_EQ(UPLL_RC_SUCCESS,obj.AllocVal(cfgval, UPLL_DT_STATE,MAINTBL));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.AllocVal(cfgval, UPLL_DT_STATE, MAINTBL));
 }
 
 TEST_F(VbrMoMgrTest, AllocVal_Error) {
   VbrMoMgr obj;
   val_vbr *val;
   GetValStruct(val);
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.AllocVal(cfgval, UPLL_DT_STATE,RENAMETBL));
+  ConfigVal *cfgval = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.AllocVal(cfgval, UPLL_DT_STATE, RENAMETBL));
   delete cfgval;
 }
 
 TEST_F(VbrMoMgrTest, AllocVal_ErrorDefaultCase) {
   VbrMoMgr obj;
   ConfigVal* cfgval = NULL;
-  EXPECT_EQ(UPLL_RC_SUCCESS,obj.AllocVal(cfgval, UPLL_DT_STATE,CTRLRTBL));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.AllocVal(cfgval, UPLL_DT_STATE, CTRLRTBL));
 }
 
 TEST_F(VbrMoMgrTest, DupConfigKeyVal_ReqNull) {
   VbrMoMgr obj;
-  ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigKeyVal *okey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             NULL, NULL);
   ConfigKeyVal *req = NULL;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.DupConfigKeyVal(okey, req, MAINTBL));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.DupConfigKeyVal(
+    okey, req, MAINTBL));
 
   delete okey;
 }
 
 TEST_F(VbrMoMgrTest, DupConfigKeyVal_OkeyNotNull) {
   VbrMoMgr obj;
-  ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigKeyVal *okey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             NULL, NULL);
 
-  ConfigKeyVal *req = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigKeyVal *req = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             NULL, NULL);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.DupConfigKeyVal(okey, req, MAINTBL));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.DupConfigKeyVal(
+    okey, req, MAINTBL));
 
   delete okey;
   delete req;
@@ -486,13 +530,17 @@ TEST_F(VbrMoMgrTest, DupConfigKeyVal_ReqInvalidKT) {
   val_vbr *val;
   GetKeyValStruct(key, val);
 
-  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVbr,
+  ConfigVal *tmp = new ConfigVal(
+    IpctSt::kIpcStValVbr,
                                  val);
-  ConfigKeyVal *req = new ConfigKeyVal(UNC_KT_VTN,
+  ConfigKeyVal *req = new ConfigKeyVal(
+    UNC_KT_VTN,
                             IpctSt::kIpcStKeyVbr,
                             key, tmp);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.DupConfigKeyVal(okey,req,MAINTBL));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.DupConfigKeyVal(
+    okey, req, MAINTBL));
 
   delete okey;
   delete req;
@@ -504,12 +552,16 @@ TEST_F(VbrMoMgrTest, DupConfigKeyVal_Req_InValid) {
   val_vbr *val;
   GetValStruct(val);
 
-  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *req = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigVal *tmp = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
+  ConfigKeyVal *req = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             NULL, tmp);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.DupConfigKeyVal(okey,req,MAINTBL));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.DupConfigKeyVal(
+    okey, req, MAINTBL));
 
   delete req;
 }
@@ -521,16 +573,21 @@ TEST_F(VbrMoMgrTest, DupConfigKeyVal_SuccessMAINTBL) {
   val_vbr *val;
   GetKeyValStruct(key, val);
 
-  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVbr, val);
+  ConfigVal *tmp = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
 
   val_vbr *val1(UT_CLONE(val_vbr, val));
-  ConfigVal *tmp1 = new ConfigVal(IpctSt::kIpcInvalidStNum, val1);
+  ConfigVal *tmp1 = new ConfigVal(
+    IpctSt::kIpcInvalidStNum, val1);
   tmp->AppendCfgVal(tmp1);
-  ConfigKeyVal *req = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigKeyVal *req = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, tmp);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS,obj.DupConfigKeyVal(okey,req,MAINTBL));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.DupConfigKeyVal(
+    okey, req, MAINTBL));
 
   delete req;
   delete okey;
@@ -543,12 +600,16 @@ TEST_F(VbrMoMgrTest, DupConfigKeyVal_SuccessRENAMETBL) {
   val_vbr *val;
   GetKeyValStruct(key, val);
 
-  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *req = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigVal *tmp = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
+  ConfigKeyVal *req = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, tmp);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS,obj.DupConfigKeyVal(okey,req,RENAMETBL));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.DupConfigKeyVal(
+    okey, req, RENAMETBL));
 
   delete req;
   delete okey;
@@ -561,12 +622,16 @@ TEST_F(VbrMoMgrTest, DupConfigKeyVal_SuccessRENAMETBLInvalidStNum) {
   val_vbr *val;
   GetKeyValStruct(key, val);
 
-  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcInvalidStNum, val);
-  ConfigKeyVal *req = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigVal *tmp = new ConfigVal(
+    IpctSt::kIpcInvalidStNum, val);
+  ConfigKeyVal *req = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, tmp);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS,obj.DupConfigKeyVal(okey,req,RENAMETBL));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.DupConfigKeyVal(
+    okey, req, RENAMETBL));
 
   delete req;
   delete okey;
@@ -576,12 +641,15 @@ TEST_F(VbrMoMgrTest, DupConfigKeyVal_NullValStuct) {
   VbrMoMgr obj;
   ConfigKeyVal *okey = NULL;
   key_vbr *key(ZALLOC_TYPE(key_vbr));
-  ConfigVal *tmp=NULL;
-  ConfigKeyVal *req = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigVal *tmp = NULL;
+  ConfigKeyVal *req = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, tmp);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS,obj.DupConfigKeyVal(okey,req,RENAMETBL));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.DupConfigKeyVal(
+    okey, req, RENAMETBL));
 
   delete req;
   delete okey;
@@ -591,11 +659,14 @@ TEST_F(VbrMoMgrTest, DupConfigKeyVal_NullValStuctMainTbl) {
   VbrMoMgr obj;
   ConfigKeyVal *okey = NULL;
   key_vbr *key(ZALLOC_TYPE(key_vbr));
-  ConfigVal *tmp=NULL;
-  ConfigKeyVal *req = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigVal *tmp = NULL;
+  ConfigKeyVal *req = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                                        IpctSt::kIpcStKeyVbr,
                                        key, tmp);
-  EXPECT_EQ(UPLL_RC_SUCCESS,obj.DupConfigKeyVal(okey,req,MAINTBL));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.DupConfigKeyVal(
+    okey, req, MAINTBL));
 
   delete req;
   delete okey;
@@ -666,17 +737,20 @@ TEST_F(VbrMoMgrTest, GetChildConfigKey_SuccessNullObjs) {
   VbrMoMgr obj;
   ConfigKeyVal *okey = NULL;
   ConfigKeyVal *pkey = NULL;
-  EXPECT_EQ(UPLL_RC_SUCCESS,obj.GetChildConfigKey(okey, pkey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.GetChildConfigKey(okey, pkey));
   delete okey;
 }
 
 TEST_F(VbrMoMgrTest, GetChildConfigKey_pkeyNull) {
   VbrMoMgr obj;
   ConfigKeyVal *okey = NULL;
-  ConfigKeyVal *pkey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigKeyVal *pkey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             NULL, NULL);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.GetChildConfigKey(okey, pkey));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.GetChildConfigKey(okey, pkey));
 
   delete pkey;
   delete okey;
@@ -687,18 +761,22 @@ TEST_F(VbrMoMgrTest, GetChildConfigKey_SuccesspkeyVBR) {
   ConfigKeyVal *okey = NULL;
 
   key_vbr *key(ZALLOC_TYPE(key_vbr));
-  strncpy((char*) key->vbridge_name,"VBR1",32);
-  strncpy((char*) key->vtn_key.vtn_name,"VTN1",32);
+  strncpy((char*) key->vbridge_name, "VBR1", 32);
+  strncpy((char*) key->vtn_key.vtn_name, "VTN1", 32);
 
-  ConfigKeyVal *pkey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigKeyVal *pkey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, NULL);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS,obj.GetChildConfigKey(okey, pkey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.GetChildConfigKey(okey, pkey));
   key_vbr_t *output = reinterpret_cast<key_vbr_t *> (okey->get_key());
 
-  EXPECT_STREQ("VTN1",(reinterpret_cast<const char *> (output->vtn_key.vtn_name)));
-  EXPECT_STREQ("VBR1",(reinterpret_cast<const char *> (output->vbridge_name)));
+  EXPECT_STREQ("VTN1",
+               (reinterpret_cast<const char *> (output->vtn_key.vtn_name)));
+  EXPECT_STREQ("VBR1",
+               (reinterpret_cast<const char *> (output->vbridge_name)));
 
   delete okey;
   delete pkey;
@@ -709,18 +787,21 @@ TEST_F(VbrMoMgrTest, GetChildConfigKey_SuccesspkeyVTN) {
   ConfigKeyVal *okey = NULL;
 
   key_vbr *key(ZALLOC_TYPE(key_vbr));
-  strncpy((char*) key->vbridge_name,"VBR1",32);
-  strncpy((char*) key->vtn_key.vtn_name,"VTN1",32);
+  strncpy((char*) key->vbridge_name, "VBR1", 32);
+  strncpy((char*) key->vtn_key.vtn_name, "VTN1", 32);
 
-  ConfigKeyVal *pkey = new ConfigKeyVal(UNC_KT_VTN,
+  ConfigKeyVal *pkey = new ConfigKeyVal(
+    UNC_KT_VTN,
                             IpctSt::kIpcStKeyVbr,
                             key, NULL);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS,obj.GetChildConfigKey(okey, pkey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.GetChildConfigKey(okey, pkey));
   key_vbr_t *output = reinterpret_cast<key_vbr_t *> (okey->get_key());
 
-  EXPECT_STREQ("VTN1",(reinterpret_cast<const char *> (output->vtn_key.vtn_name)));
-  EXPECT_STREQ("",(reinterpret_cast<const char *> (output->vbridge_name)));
+  EXPECT_STREQ("VTN1",
+               (reinterpret_cast<const char *> (output->vtn_key.vtn_name)));
+  EXPECT_STREQ("", (reinterpret_cast<const char *> (output->vbridge_name)));
 
   delete okey;
   delete pkey;
@@ -731,18 +812,21 @@ TEST_F(VbrMoMgrTest, GetChildConfigKey_SuccessOkeyVTN) {
   ConfigKeyVal *okey = NULL;
 
   key_vbr *key(ZALLOC_TYPE(key_vbr));
-  strncpy((char*) key->vbridge_name,"VBR1",32);
-  strncpy((char*) key->vtn_key.vtn_name,"VTN1",32);
+  strncpy((char*) key->vbridge_name, "VBR1", 32);
+  strncpy((char*) key->vtn_key.vtn_name, "VTN1", 32);
 
-  ConfigKeyVal *pkey = new ConfigKeyVal(UNC_KT_VTN,
+  ConfigKeyVal *pkey = new ConfigKeyVal(
+    UNC_KT_VTN,
                             IpctSt::kIpcStKeyVbr,
                             key, NULL);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS,obj.GetChildConfigKey(okey, pkey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.GetChildConfigKey(okey, pkey));
   key_vbr_t *output = reinterpret_cast<key_vbr_t *> (okey->get_key());
 
-  EXPECT_STREQ("VTN1",(reinterpret_cast<const char *> (output->vtn_key.vtn_name)));
-  EXPECT_STREQ("",(reinterpret_cast<const char *> (output->vbridge_name)));
+  EXPECT_STREQ("VTN1",
+               (reinterpret_cast<const char *> (output->vtn_key.vtn_name)));
+  EXPECT_STREQ("", (reinterpret_cast<const char *> (output->vbridge_name)));
 
   delete okey;
   delete pkey;
@@ -753,12 +837,15 @@ TEST_F(VbrMoMgrTest, CopyToConfigkey_ikeyokeyNull) {
   ConfigKeyVal *okey = NULL;
   ConfigKeyVal *ikey = NULL;
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.CopyToConfigKey(okey,ikey));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.CopyToConfigKey(okey, ikey));
 
-  ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             NULL, NULL);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.CopyToConfigKey(okey,ikey));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.CopyToConfigKey(okey, ikey));
 
   delete okey;
   delete ikey;
@@ -769,18 +856,22 @@ TEST_F(VbrMoMgrTest, GetChildConfigKey_PkeyVbrSuccess) {
   ConfigKeyVal *okey = NULL;
 
   key_vbr *key(ZALLOC_TYPE(key_vbr));
-  strncpy((char*) key->vbridge_name,"VBR1",32);
-  strncpy((char*) key->vtn_key.vtn_name,"VTN1",32);
+  strncpy((char*) key->vbridge_name, "VBR1", 32);
+  strncpy((char*) key->vtn_key.vtn_name, "VTN1", 32);
 
-  ConfigKeyVal *pkey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigKeyVal *pkey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, NULL);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS,vbr.GetChildConfigKey(okey, pkey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.GetChildConfigKey(okey, pkey));
   key_vbr_t *output = reinterpret_cast<key_vbr_t *> (okey->get_key());
 
-  EXPECT_STREQ("VTN1",(reinterpret_cast<const char *> (output->vtn_key.vtn_name)));
-  EXPECT_STREQ("VBR1",(reinterpret_cast<const char *> (output->vbridge_name)));
+  EXPECT_STREQ("VTN1",
+               (reinterpret_cast<const char *> (output->vtn_key.vtn_name)));
+  EXPECT_STREQ("VBR1",
+               (reinterpret_cast<const char *> (output->vbridge_name)));
 
   delete okey;
   delete pkey;
@@ -789,20 +880,25 @@ TEST_F(VbrMoMgrTest, GetChildConfigKey_PkeyVbrSuccess) {
 TEST_F(VbrMoMgrTest, GetChildConfigKey_OkeyVtnSuccess) {
   VbrMoMgr vbr;
 
-  ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VTN);
+  ConfigKeyVal *okey = new ConfigKeyVal(
+    UNC_KT_VTN);
   key_vbr *key(ZALLOC_TYPE(key_vbr));
-  strncpy((char*) key->vbridge_name,"VBR1",32);
-  strncpy((char*) key->vtn_key.vtn_name,"VTN1",32);
+  strncpy((char*) key->vbridge_name, "VBR1", 32);
+  strncpy((char*) key->vtn_key.vtn_name, "VTN1", 32);
 
-  ConfigKeyVal *pkey = new ConfigKeyVal(UNC_KT_VTN,
+  ConfigKeyVal *pkey = new ConfigKeyVal(
+    UNC_KT_VTN,
                             IpctSt::kIpcStKeyVbr,
                             key, NULL);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS,vbr.GetChildConfigKey(okey, pkey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.GetChildConfigKey(okey, pkey));
   key_vbr_t *output = reinterpret_cast<key_vbr_t *> (okey->get_key());
 
-  EXPECT_STREQ("VTN1",(reinterpret_cast<const char *> (output->vtn_key.vtn_name)));
-  EXPECT_STREQ("",(reinterpret_cast<const char *> (output->vbridge_name)));
+  EXPECT_STREQ("VTN1",
+               (reinterpret_cast<const char *> (output->vtn_key.vtn_name)));
+  EXPECT_STREQ("",
+               (reinterpret_cast<const char *> (output->vbridge_name)));
 
   delete okey;
   delete pkey;
@@ -811,19 +907,23 @@ TEST_F(VbrMoMgrTest, GetChildConfigKey_OkeyVtnSuccess) {
 TEST_F(VbrMoMgrTest, GetChildConfigKey_PkeyVlinkSuccess) {
   VbrMoMgr vbr;
 
-  ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VLINK) ;
+  ConfigKeyVal *okey = new ConfigKeyVal(
+    UNC_KT_VLINK);
   key_vbr *key(ZALLOC_TYPE(key_vbr));
-  strncpy((char*) key->vbridge_name,"VLINK1",32);
-  strncpy((char*) key->vtn_key.vtn_name,"VTN1",32);
+  strncpy((char*) key->vbridge_name, "VLINK1", 32);
+  strncpy((char*) key->vtn_key.vtn_name, "VTN1", 32);
 
-  ConfigKeyVal *pkey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVbr,
-                                        key, NULL);
+  ConfigKeyVal *pkey = new ConfigKeyVal(
+    UNC_KT_VTN, IpctSt::kIpcStKeyVbr,
+    key, NULL);
 
- EXPECT_EQ(UPLL_RC_SUCCESS,vbr.GetChildConfigKey(okey, pkey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.GetChildConfigKey(okey, pkey));
   key_vbr_t *output = reinterpret_cast<key_vbr_t *> (okey->get_key());
 
-  EXPECT_STREQ("VTN1",(reinterpret_cast<const char *> (output->vtn_key.vtn_name)));
-  EXPECT_STREQ("",(reinterpret_cast<const char *> (output->vbridge_name)));
+  EXPECT_STREQ("VTN1",
+               (reinterpret_cast<const char *> (output->vtn_key.vtn_name)));
+  EXPECT_STREQ("", (reinterpret_cast<const char *> (output->vbridge_name)));
 
   delete okey;
   delete pkey;
@@ -835,9 +935,12 @@ TEST_F(VbrMoMgrTest, GetChildConfigKey_05) {
   strcpy((char *)key_vbr->vtn_key.vtn_name, (char *)"vtn1");
   strcpy((char *)key_vbr->vbridge_name, (char *)"vbridge");
 
-  ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VTN);
-  ConfigKeyVal *pkey = new ConfigKeyVal(UNC_KT_VLINK,IpctSt::kIpcStKeyVbr,key_vbr);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr_obj.GetChildConfigKey(okey, pkey));
+  ConfigKeyVal *okey = new ConfigKeyVal(
+    UNC_KT_VTN);
+  ConfigKeyVal *pkey = new ConfigKeyVal(
+    UNC_KT_VLINK, IpctSt::kIpcStKeyVbr, key_vbr);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr_obj.GetChildConfigKey(okey, pkey));
 
   delete okey;
   delete pkey;
@@ -849,11 +952,15 @@ TEST_F(VbrMoMgrTest, GetChildConfigKey_06) {
   strcpy((char *)key_vbr->vtn_key.vtn_name, (char *)"vtn1");
   strcpy((char *)key_vbr->vbridge_name, (char *)"vbridge");
   val_vlink *vlink_val(ZALLOC_TYPE(val_vlink));
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVlink, vlink_val);
+  ConfigVal *cfgval = new ConfigVal(
+    IpctSt::kIpcStValVlink, vlink_val);
 
-  ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VTN);
-  ConfigKeyVal *pkey = new ConfigKeyVal(UNC_KT_VLINK,IpctSt::kIpcStKeyVbr,key_vbr,cfgval);
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr_obj.GetChildConfigKey(okey, pkey));
+  ConfigKeyVal *okey = new ConfigKeyVal(
+    UNC_KT_VTN);
+  ConfigKeyVal *pkey = new ConfigKeyVal(
+    UNC_KT_VLINK, IpctSt::kIpcStKeyVbr, key_vbr, cfgval);
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr_obj.GetChildConfigKey(okey, pkey));
 
   delete okey;
   delete pkey;
@@ -870,14 +977,17 @@ TEST_F(VbrMoMgrTest, CopyToConfigkey_InValidName) {
   strncpy(reinterpret_cast<char *>(key->vbridge_name),
           vbr_name, strlen(vbr_name)+1);
 
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, NULL);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.CopyToConfigKey(okey,ikey));
-  cout<<"TEST: Negative: InvalidVbrName"<<endl;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.CopyToConfigKey(okey, ikey));
+  cout << "TEST: Negative: InvalidVbrName" << endl;
 
-  strncpy(reinterpret_cast<char *>(key->vtn_key.vtn_name),"VTN_1",32);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.CopyToConfigKey(okey,ikey));
+  strncpy(reinterpret_cast<char *>(key->vtn_key.vtn_name), "VTN_1", 32);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.CopyToConfigKey(okey, ikey));
 
   delete okey;
   delete ikey;
@@ -894,15 +1004,18 @@ TEST_F(VbrMoMgrTest, CopyToConfigkey_Valid) {
               vtn_name, sizeof(key_rename->old_unc_vtn_name));
   pfc_strlcpy(reinterpret_cast<char *>(key_rename->old_unc_vnode_name),
               vbr_name, sizeof(key_rename->old_unc_vnode_name));
-  ConfigVal *cfgval(new ConfigVal(IpctSt::kIpcStValVbr, NULL));
-  ConfigKeyVal *ikey(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+  ConfigVal *cfgval(new ConfigVal(
+    IpctSt::kIpcStValVbr, NULL));
+  ConfigKeyVal *ikey(new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                       key_rename, cfgval));
-  EXPECT_EQ(UPLL_RC_SUCCESS, obj.CopyToConfigKey(okey, ikey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.CopyToConfigKey(okey, ikey));
 
-  ASSERT_TRUE(okey != NULL);
+  ASSERT_TRUE(okey !=  NULL);
 
   key_vbr_t *key(reinterpret_cast<key_vbr_t *>(okey->get_key()));
-  if (key != NULL) {
+  if (key !=  NULL) {
     EXPECT_STREQ(vtn_name, reinterpret_cast<char *>(key->vtn_key.vtn_name));
     EXPECT_STREQ(vbr_name, reinterpret_cast<char *>(key->vbridge_name));
   }
@@ -914,23 +1027,24 @@ TEST_F(VbrMoMgrTest, CopyToConfigkey_Valid) {
 TEST_F(VbrMoMgrTest, ValidateVbrPingValue_Success) {
   VbrMoMgr obj;
   val_ping *vst(ZALLOC_TYPE(val_ping));
-  for(unsigned int loop = 0; loop < sizeof(vst->valid)/
+  for (unsigned int loop = 0; loop < sizeof(vst->valid)/
         sizeof(vst->valid[0]); ++loop) {
     vst->valid[loop] = UNC_VF_VALID;
   }
   struct sockaddr_in sa;
   inet_pton(AF_INET, "192.168.1.1", &(sa.sin_addr));
-  vst->target_addr = sa.sin_addr.s_addr;// ("192.168.1.1")
+  vst->target_addr = sa.sin_addr.s_addr;  //  ("192.168.1.1")
   inet_pton(AF_INET, "192.168.1.2", &(sa.sin_addr));
-  vst->src_addr = sa.sin_addr.s_addr; // ("192.168.1.2")
+  vst->src_addr = sa.sin_addr.s_addr;  //  ("192.168.1.2")
   vst->dfbit = UPLL_DF_BIT_ENABLE;
   vst->packet_size = 5;
   vst->count = 14;
   vst->interval = 23;
   vst->timeout = 32;
 
-  EXPECT_EQ(UPLL_RC_SUCCESS,obj.ValidateVbrPingValue(vst));
-  cout<<"TEST: Positive: Success"<<endl;
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.ValidateVbrPingValue(vst));
+  cout << "TEST: Positive: Success" << endl;
 
   free(vst);
 }
@@ -938,26 +1052,28 @@ TEST_F(VbrMoMgrTest, ValidateVbrPingValue_Success) {
 TEST_F(VbrMoMgrTest, ValidateVbrPingValue_InvalidTgtAddr) {
   VbrMoMgr obj;
   val_ping *vst(ZALLOC_TYPE(val_ping));
-  for(unsigned int loop = 0; loop < sizeof(vst->valid)/
+  for (unsigned int loop = 0; loop < sizeof(vst->valid)/
         sizeof(vst->valid[0]); ++loop) {
     vst->valid[loop] = UNC_VF_VALID;
   }
   struct sockaddr_in sa;
   inet_pton(AF_INET, "255.255.255.255", &(sa.sin_addr));
-  vst->target_addr = sa.sin_addr.s_addr;// ("192.168.1.1")
+  vst->target_addr = sa.sin_addr.s_addr;  //  ("192.168.1.1")
   inet_pton(AF_INET, "192.168.1.2", &(sa.sin_addr));
-  vst->src_addr = sa.sin_addr.s_addr; // ("192.168.1.2")
+  vst->src_addr = sa.sin_addr.s_addr;  //  ("192.168.1.2")
   vst->dfbit = UPLL_DF_BIT_ENABLE;
   vst->packet_size = 5;
   vst->count = 14;
   vst->interval = 23;
   vst->timeout = 32;
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,obj.ValidateVbrPingValue(vst));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+    obj.ValidateVbrPingValue(vst));
 
   inet_pton(AF_INET, "224.1.1.1", &(sa.sin_addr));
   vst->target_addr = sa.sin_addr.s_addr;
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,obj.ValidateVbrPingValue(vst));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+    obj.ValidateVbrPingValue(vst));
 
   free(vst);
 }
@@ -965,26 +1081,28 @@ TEST_F(VbrMoMgrTest, ValidateVbrPingValue_InvalidTgtAddr) {
 TEST_F(VbrMoMgrTest, ValidateVbrPingValue_InvalidSrcAddr) {
   VbrMoMgr obj;
   val_ping *vst(ZALLOC_TYPE(val_ping));
-  for(unsigned int loop = 0; loop < sizeof(vst->valid)/
+  for (unsigned int loop = 0; loop < sizeof(vst->valid)/
      sizeof(vst->valid[0]); ++loop) {
     vst->valid[loop] = UNC_VF_VALID;
   }
   struct sockaddr_in sa;
   inet_pton(AF_INET, "192.168.1.2", &(sa.sin_addr));
-  vst->target_addr = sa.sin_addr.s_addr;// ("192.168.1.1")
+  vst->target_addr = sa.sin_addr.s_addr;  //  ("192.168.1.1")
   inet_pton(AF_INET, "255.255.255.255", &(sa.sin_addr));
-  vst->src_addr = sa.sin_addr.s_addr; // ("192.168.1.2")
+  vst->src_addr = sa.sin_addr.s_addr;  //  ("192.168.1.2")
   vst->dfbit = UPLL_DF_BIT_ENABLE;
   vst->packet_size = 5;
   vst->count = 14;
   vst->interval = 23;
   vst->timeout = 32;
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,obj.ValidateVbrPingValue(vst));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+    obj.ValidateVbrPingValue(vst));
 
   inet_pton(AF_INET, "224.1.1.1", &(sa.sin_addr));
   vst->src_addr = sa.sin_addr.s_addr;
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,obj.ValidateVbrPingValue(vst));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+    obj.ValidateVbrPingValue(vst));
 
   free(vst);
 }
@@ -992,25 +1110,27 @@ TEST_F(VbrMoMgrTest, ValidateVbrPingValue_InvalidSrcAddr) {
 TEST_F(VbrMoMgrTest, ValidateVbrPingValue_DFbitValidation) {
   VbrMoMgr obj;
   val_ping *vst(ZALLOC_TYPE(val_ping));
-  for(unsigned int loop = 0; loop < sizeof(vst->valid)/
+  for (unsigned int loop = 0; loop < sizeof(vst->valid)/
      sizeof(vst->valid[0]); ++loop) {
     vst->valid[loop] = UNC_VF_VALID;
   }
   struct sockaddr_in sa;
   inet_pton(AF_INET, "192.168.1.2", &(sa.sin_addr));
-  vst->target_addr = sa.sin_addr.s_addr;// ("192.168.1.1")
+  vst->target_addr = sa.sin_addr.s_addr;  //  ("192.168.1.1")
   inet_pton(AF_INET, "192.168.1.2", &(sa.sin_addr));
-  vst->src_addr = sa.sin_addr.s_addr; // ("192.168.1.2")
+  vst->src_addr = sa.sin_addr.s_addr;  //  ("192.168.1.2")
   vst->dfbit = 3;
   vst->packet_size = 5;
   vst->count = 14;
   vst->interval = 23;
   vst->timeout = 32;
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,obj.ValidateVbrPingValue(vst));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+    obj.ValidateVbrPingValue(vst));
 
   vst->valid[UPLL_IDX_DF_BIT_PING] = UNC_VF_VALID_NO_VALUE;
-  EXPECT_EQ(UPLL_RC_SUCCESS,obj.ValidateVbrPingValue(vst));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.ValidateVbrPingValue(vst));
 
   free(vst);
 }
@@ -1018,25 +1138,27 @@ TEST_F(VbrMoMgrTest, ValidateVbrPingValue_DFbitValidation) {
 TEST_F(VbrMoMgrTest, ValidateVbrPingValue_PktSzValidation) {
   VbrMoMgr obj;
   val_ping *vst(ZALLOC_TYPE(val_ping));
-  for(unsigned int loop = 0; loop < sizeof(vst->valid)/
+  for (unsigned int loop = 0; loop < sizeof(vst->valid)/
      sizeof(vst->valid[0]); ++loop) {
     vst->valid[loop] = UNC_VF_VALID;
   }
   struct sockaddr_in sa;
   inet_pton(AF_INET, "192.168.1.2", &(sa.sin_addr));
-  vst->target_addr = sa.sin_addr.s_addr;// ("192.168.1.1")
+  vst->target_addr = sa.sin_addr.s_addr;  //  ("192.168.1.1")
   inet_pton(AF_INET, "192.168.1.2", &(sa.sin_addr));
-  vst->src_addr = sa.sin_addr.s_addr; // ("192.168.1.2")
+  vst->src_addr = sa.sin_addr.s_addr;  //  ("192.168.1.2")
   vst->dfbit = UPLL_DF_BIT_ENABLE;
   vst->packet_size = 65535;
   vst->count = 14;
   vst->interval = 23;
   vst->timeout = 32;
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,obj.ValidateVbrPingValue(vst));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+    obj.ValidateVbrPingValue(vst));
 
   vst->valid[UPLL_IDX_PACKET_SIZE_PING] = UNC_VF_VALID_NO_VALUE;
-  EXPECT_EQ(UPLL_RC_SUCCESS,obj.ValidateVbrPingValue(vst));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.ValidateVbrPingValue(vst));
 
   free(vst);
 }
@@ -1044,25 +1166,27 @@ TEST_F(VbrMoMgrTest, ValidateVbrPingValue_PktSzValidation) {
 TEST_F(VbrMoMgrTest, ValidateVbrPingValue_CntValidation) {
   VbrMoMgr obj;
   val_ping *vst(ZALLOC_TYPE(val_ping));
-  for(unsigned int loop = 0; loop < sizeof(vst->valid)/
+  for (unsigned int loop = 0; loop < sizeof(vst->valid)/
      sizeof(vst->valid[0]); ++loop) {
     vst->valid[loop] = UNC_VF_VALID;
   }
   struct sockaddr_in sa;
   inet_pton(AF_INET, "192.168.1.2", &(sa.sin_addr));
-  vst->target_addr = sa.sin_addr.s_addr;// ("192.168.1.1")
+  vst->target_addr = sa.sin_addr.s_addr;  //  ("192.168.1.1")
   inet_pton(AF_INET, "192.168.1.2", &(sa.sin_addr));
-  vst->src_addr = sa.sin_addr.s_addr; // ("192.168.1.2")
+  vst->src_addr = sa.sin_addr.s_addr;  //  ("192.168.1.2")
   vst->dfbit = UPLL_DF_BIT_ENABLE;
   vst->packet_size = 6;
   vst->count = 0;
   vst->interval = 23;
   vst->timeout = 32;
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,obj.ValidateVbrPingValue(vst));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+    obj.ValidateVbrPingValue(vst));
 
   vst->valid[UPLL_IDX_COUNT_PING] = UNC_VF_VALID_NO_VALUE;
-  EXPECT_EQ(UPLL_RC_SUCCESS,obj.ValidateVbrPingValue(vst));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.ValidateVbrPingValue(vst));
 
   free(vst);
 }
@@ -1070,25 +1194,27 @@ TEST_F(VbrMoMgrTest, ValidateVbrPingValue_CntValidation) {
 TEST_F(VbrMoMgrTest, ValidateVbrPingValue_InterValidation) {
   VbrMoMgr obj;
   val_ping *vst(ZALLOC_TYPE(val_ping));
-  for(unsigned int loop = 0; loop < sizeof(vst->valid)/
+  for (unsigned int loop = 0; loop < sizeof(vst->valid)/
      sizeof(vst->valid[0]); ++loop) {
     vst->valid[loop] = UNC_VF_VALID;
   }
   struct sockaddr_in sa;
   inet_pton(AF_INET, "192.168.1.2", &(sa.sin_addr));
-  vst->target_addr = sa.sin_addr.s_addr;// ("192.168.1.1")
+  vst->target_addr = sa.sin_addr.s_addr;  //  ("192.168.1.1")
   inet_pton(AF_INET, "192.168.1.2", &(sa.sin_addr));
-  vst->src_addr = sa.sin_addr.s_addr; // ("192.168.1.2")
+  vst->src_addr = sa.sin_addr.s_addr;  //  ("192.168.1.2")
   vst->dfbit = UPLL_DF_BIT_ENABLE;
   vst->packet_size = 6;
   vst->count = 1;
   vst->interval = 100;
   vst->timeout = 32;
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,obj.ValidateVbrPingValue(vst));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+    obj.ValidateVbrPingValue(vst));
 
   vst->valid[UPLL_IDX_INTERVAL_PING] = UNC_VF_VALID_NO_VALUE;
-  EXPECT_EQ(UPLL_RC_SUCCESS,obj.ValidateVbrPingValue(vst));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.ValidateVbrPingValue(vst));
 
   free(vst);
 }
@@ -1096,49 +1222,56 @@ TEST_F(VbrMoMgrTest, ValidateVbrPingValue_InterValidation) {
 TEST_F(VbrMoMgrTest, ValidateVbrPingValue_TimeOutValidation) {
   VbrMoMgr obj;
   val_ping *vst(ZALLOC_TYPE(val_ping));
-  for(unsigned int loop = 0; loop < sizeof(vst->valid)/
+  for (unsigned int loop = 0; loop < sizeof(vst->valid)/
      sizeof(vst->valid[0]); ++loop) {
     vst->valid[loop] = UNC_VF_VALID;
   }
   struct sockaddr_in sa;
   inet_pton(AF_INET, "192.168.1.2", &(sa.sin_addr));
-  vst->target_addr = sa.sin_addr.s_addr;// ("192.168.1.1")
+  vst->target_addr = sa.sin_addr.s_addr;  //  ("192.168.1.1")
   inet_pton(AF_INET, "192.168.1.2", &(sa.sin_addr));
-  vst->src_addr = sa.sin_addr.s_addr; // ("192.168.1.2")
+  vst->src_addr = sa.sin_addr.s_addr;  //  ("192.168.1.2")
   vst->dfbit = UPLL_DF_BIT_ENABLE;
   vst->packet_size = 6;
   vst->count = 1;
   vst->interval = 1;
   vst->timeout = 255;
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,obj.ValidateVbrPingValue(vst));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+    obj.ValidateVbrPingValue(vst));
 
   vst->valid[UPLL_IDX_TIMEOUT_PING] = UNC_VF_VALID_NO_VALUE;
-  EXPECT_EQ(UPLL_RC_SUCCESS,obj.ValidateVbrPingValue(vst));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.ValidateVbrPingValue(vst));
 
   free(vst);
 }
 
 TEST_F(VbrMoMgrTest, UpdateConfigStatus_Success) {
   VbrMoMgr obj;
-  DalDmlIntf *dmi= NULL;
+  DalDmlIntf *dmi =  NULL;
   key_vbr *key;
   val_vbr *val;
   GetKeyValStruct(key, val);
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigVal *cfgval = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
 
   key_vbr *key1(UT_CLONE(key_vbr, key));
   val_vbr *val1(UT_CLONE(val_vbr, val));
-  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbr, val1));
-  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+  ConfigVal *cfgval1(new ConfigVal(
+    IpctSt::kIpcStValVbr, val1));
+  ConfigKeyVal *upd_key(new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                          key1, cfgval1));
 
-  EXPECT_EQ(UPLL_RC_SUCCESS,obj.UpdateConfigStatus(ikey, UNC_OP_CREATE,
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.UpdateConfigStatus(ikey, UNC_OP_CREATE,
                                                    UPLL_RC_SUCCESS,
-                                                   upd_key,dmi,ikey));
+                                                   upd_key, dmi, ikey));
 
   delete ikey;
   delete upd_key;
@@ -1146,24 +1279,29 @@ TEST_F(VbrMoMgrTest, UpdateConfigStatus_Success) {
 
 TEST_F(VbrMoMgrTest, UpdateConfigStatus_SuccessUPDATE) {
   VbrMoMgr obj;
-  DalDmlIntf *dmi= NULL;
+  DalDmlIntf *dmi =  NULL;
   key_vbr *key;
   val_vbr *val;
   GetKeyValStruct(key, val);
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigVal *cfgval = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
 
   key_vbr *key1(UT_CLONE(key_vbr, key));
   val_vbr *val1(UT_CLONE(val_vbr, val));
-  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbr, val1));
-  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+  ConfigVal *cfgval1(new ConfigVal(
+    IpctSt::kIpcStValVbr, val1));
+  ConfigKeyVal *upd_key(new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                          key1, cfgval1));
 
-  EXPECT_EQ(UPLL_RC_SUCCESS,obj.UpdateConfigStatus(ikey, UNC_OP_UPDATE,
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.UpdateConfigStatus(ikey, UNC_OP_UPDATE,
                                                    UPLL_RC_SUCCESS,
-                                                   upd_key,dmi,ikey));
+                                                   upd_key, dmi, ikey));
 
   delete ikey;
   delete upd_key;
@@ -1171,22 +1309,27 @@ TEST_F(VbrMoMgrTest, UpdateConfigStatus_SuccessUPDATE) {
 
 TEST_F(VbrMoMgrTest, UpdateConfigStatus_InvalidOP) {
   VbrMoMgr obj;
-  DalDmlIntf *dmi= NULL;
+  DalDmlIntf *dmi =  NULL;
   key_vbr *key;
   val_vbr *val;
   GetKeyValStruct(key, val);
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigVal *cfgval = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
 
   key_vbr *key1(UT_CLONE(key_vbr, key));
   val_vbr *val1(UT_CLONE(val_vbr, val));
-  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbr, val1));
-  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+  ConfigVal *cfgval1(new ConfigVal(
+    IpctSt::kIpcStValVbr, val1));
+  ConfigKeyVal *upd_key(new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                          key1, cfgval1));
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.UpdateConfigStatus(ikey, UNC_OP_READ,
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.UpdateConfigStatus(ikey, UNC_OP_READ,
                                                        UPLL_RC_SUCCESS,
                                                        upd_key, dmi, ikey));
 
@@ -1196,17 +1339,21 @@ TEST_F(VbrMoMgrTest, UpdateConfigStatus_InvalidOP) {
 
 TEST_F(VbrMoMgrTest, UpdateConfigStatus_InvalidArg) {
   VbrMoMgr obj;
-  DalDmlIntf *dmi= NULL;
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  DalDmlIntf *dmi =  NULL;
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             NULL, NULL);
-  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+  ConfigKeyVal *upd_key(new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                          NULL, NULL));
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.UpdateConfigStatus(ikey, UNC_OP_CREATE,
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.UpdateConfigStatus(ikey, UNC_OP_CREATE,
                                                        UPLL_RC_SUCCESS,
                                                        upd_key, dmi, ikey));
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,obj.UpdateConfigStatus(ikey, UNC_OP_UPDATE,
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.UpdateConfigStatus(ikey, UNC_OP_UPDATE,
                                                        UPLL_RC_SUCCESS,
                                                        upd_key, dmi, ikey));
 
@@ -1216,31 +1363,37 @@ TEST_F(VbrMoMgrTest, UpdateConfigStatus_InvalidArg) {
 
 TEST_F(VbrMoMgrTest, UpdateConfigStatus_AttrNotSupp_ValNoValue) {
   VbrMoMgr obj;
-  DalDmlIntf *dmi= NULL;
+  DalDmlIntf *dmi =  NULL;
   key_vbr *key;
   val_vbr *val;
   GetKeyValStruct(key, val);
 
   val->valid[UPLL_IDX_HOST_ADDR_VBR] = UNC_VF_NOT_SUPPORTED;
   val->valid[UPLL_IDX_HOST_ADDR_PREFIXLEN_VBR] = UNC_VF_VALID_NO_VALUE;
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigVal *cfgval = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
 
   key_vbr *key1(UT_CLONE(key_vbr, key));
   val_vbr *val1(UT_CLONE(val_vbr, val));
-  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbr, val1));
-  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+  ConfigVal *cfgval1(new ConfigVal(
+    IpctSt::kIpcStValVbr, val1));
+  ConfigKeyVal *upd_key(new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                          key1, cfgval1));
 
-  EXPECT_EQ(UPLL_RC_SUCCESS,obj.UpdateConfigStatus(ikey, UNC_OP_CREATE,
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.UpdateConfigStatus(ikey, UNC_OP_CREATE,
                                                    UPLL_RC_SUCCESS,
-                                                   upd_key,dmi,ikey));
+                                                   upd_key, dmi, ikey));
 
-  EXPECT_EQ(UPLL_RC_SUCCESS,obj.UpdateConfigStatus(ikey, UNC_OP_UPDATE,
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.UpdateConfigStatus(ikey, UNC_OP_UPDATE,
                                                    UPLL_RC_SUCCESS,
-                                                   upd_key,dmi,ikey));
+                                                   upd_key, dmi, ikey));
 
   delete ikey;
   delete upd_key;
@@ -1253,12 +1406,15 @@ TEST_F(VbrMoMgrTest, CreateVnodeConfigKey_Success) {
   GetKeyValStruct(key, val);
 
   ConfigKeyVal *okey = NULL;
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigVal *cfgval = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS,obj.CreateVnodeConfigKey(ikey, okey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.CreateVnodeConfigKey(ikey, okey));
 
   delete ikey;
   delete okey;
@@ -1269,7 +1425,8 @@ TEST_F(VbrMoMgrTest, CreateVnodeConfigKey_NULLArg) {
   ConfigKeyVal *okey = NULL;
   ConfigKeyVal *ikey = NULL;
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.CreateVnodeConfigKey(ikey, okey));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.CreateVnodeConfigKey(ikey, okey));
 }
 
 TEST_F(VbrMoMgrTest, CompareValidValue_AuditTrue) {
@@ -1303,7 +1460,7 @@ TEST_F(VbrMoMgrTest, FilterAttributes_CreateOperation) {
   valvbr1->valid[UPLL_IDX_DESC_VBR] = UNC_VF_INVALID;
   val1 = reinterpret_cast<void *>(reinterpret_cast<char *>(valvbr1));
   val2 = reinterpret_cast<void *>(reinterpret_cast<char *>(valvbr1));
-  EXPECT_FALSE(vbr.FilterAttributes(val1,val2,audit_status,op));
+  EXPECT_FALSE(vbr.FilterAttributes(val1, val2, audit_status, op));
 
   free(valvbr1);
 }
@@ -1319,7 +1476,7 @@ TEST_F(VbrMoMgrTest, FilterAttributes_OperationUpdate) {
   valvbr1->valid[UPLL_IDX_DESC_VBR] = UNC_VF_INVALID;
   val1 = reinterpret_cast<void *>(reinterpret_cast<char *>(valvbr1));
   val2 = reinterpret_cast<void *>(reinterpret_cast<char *>(valvbr1));
-  EXPECT_TRUE(vbr.FilterAttributes(val1,val2,audit_status,op));
+  EXPECT_TRUE(vbr.FilterAttributes(val1, val2, audit_status, op));
 
   free(valvbr1);
 }
@@ -1335,11 +1492,11 @@ TEST_F(VbrMoMgrTest, GetRenameKeyBindInfo) {
   EXPECT_EQ(&VbrMoMgr::key_vbr_maintbl_bind_info[0], binfo);
 
 
-  EXPECT_TRUE(obj.GetRenameKeyBindInfo(UNC_KT_VBRIDGE, binfo, nattr, RENAMETBL));
+  EXPECT_TRUE(obj.GetRenameKeyBindInfo(
+          UNC_KT_VBRIDGE, binfo, nattr, RENAMETBL));
 
   EXPECT_EQ(4, nattr);
   EXPECT_EQ(&VbrMoMgr::key_vbr_renametbl_update_bind_info[0], binfo);
-
 }
 
 TEST_F(VbrMoMgrTest, GetRenameKeyBindInfo_OutputUnknownTbl) {
@@ -1348,8 +1505,9 @@ TEST_F(VbrMoMgrTest, GetRenameKeyBindInfo_OutputUnknownTbl) {
   BindInfo *binfo = NULL;
   int nattr = 2;
 
-  EXPECT_FALSE(vbr.GetRenameKeyBindInfo(key_type, binfo, nattr,CTRLRTBL ));
-  EXPECT_EQ(2,nattr);
+  EXPECT_FALSE(vbr.GetRenameKeyBindInfo(
+          key_type, binfo, nattr, CTRLRTBL));
+  EXPECT_EQ(2, nattr);
 }
 
 TEST_F(VbrMoMgrTest, GetVnodeName) {
@@ -1359,19 +1517,25 @@ TEST_F(VbrMoMgrTest, GetVnodeName) {
   uint8_t *vtn_name, *vnode_name;
   GetKeyValStruct(key, val);
 
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigVal *cfgval = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
-  EXPECT_EQ(UPLL_RC_SUCCESS,obj.GetVnodeName(ikey, vtn_name, vnode_name));
-  EXPECT_STREQ("VTN_1",(reinterpret_cast<const char *> (vtn_name)));
-  EXPECT_STREQ("VBR_1",(reinterpret_cast<const char *> (vnode_name)));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.GetVnodeName(ikey, vtn_name, vnode_name));
+  EXPECT_STREQ("VTN_1", (reinterpret_cast<const char *> (vtn_name)));
+  EXPECT_STREQ("VBR_1", (reinterpret_cast<const char *> (vnode_name)));
 
   val_vbr *val1(UT_CLONE(val_vbr, val));
-  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbr, val1));
-  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+  ConfigVal *cfgval1(new ConfigVal(
+    IpctSt::kIpcStValVbr, val1));
+  ConfigKeyVal *ikey1(new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                        NULL, cfgval1));
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.GetVnodeName(ikey1, vtn_name, vnode_name));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.GetVnodeName(ikey1, vtn_name, vnode_name));
 
   delete ikey;
   delete ikey1;
@@ -1383,12 +1547,15 @@ TEST_F(VbrMoMgrTest, ValidateCapability_ErrorInput) {
   val_vbr *val;
   GetKeyValStruct(key, val);
 
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigVal *cfgval = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
   IPC_REQ_RESP_HEADER_DECL(req);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.ValidateCapability(req, ikey, NULL));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.ValidateCapability(req, ikey, NULL));
 
   delete ikey;
 }
@@ -1398,8 +1565,10 @@ TEST_F(VbrMoMgrTest, ValidateCapability_Success) {
   key_vbr *key;
   val_vbr *val;
   GetKeyValStruct(key, val);
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigVal *cfgval = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
 
@@ -1414,13 +1583,16 @@ TEST_F(VbrMoMgrTest, ValidateCapability_Success) {
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
   req->datatype = UPLL_DT_CANDIDATE;
-  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValidateCapability(req, ikey, "CTR_1"));
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+     vbr.ValidateCapability(req, ikey, "CTR_1"));
 
   req->operation = UNC_OP_UPDATE;
-  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValidateCapability(req, ikey, "CTR_1"));
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+     vbr.ValidateCapability(req, ikey, "CTR_1"));
 
   req->operation = UNC_OP_READ_SIBLING_BEGIN;
-  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValidateCapability(req, ikey, "CTR_1"));
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+     vbr.ValidateCapability(req, ikey, "CTR_1"));
 
   delete ikey;
 }
@@ -1430,8 +1602,10 @@ TEST_F(VbrMoMgrTest, ValidateCapability_Success1) {
   key_vbr *key;
   val_vbr *val;
   GetKeyValStruct(key, val);
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigVal *cfgval = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
 
@@ -1448,27 +1622,34 @@ TEST_F(VbrMoMgrTest, ValidateCapability_Success1) {
   req->option2 = UNC_OPT2_NONE;
   req->datatype = UPLL_DT_CANDIDATE;
 
-  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValidateCapability(req, ikey, "CTR_1"));
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+     vbr.ValidateCapability(req, ikey, "CTR_1"));
 
   req->operation = UNC_OP_UPDATE;
 
-  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValidateCapability(req, ikey, "CTR_1"));
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+     vbr.ValidateCapability(req, ikey, "CTR_1"));
 
   req->operation = UNC_OP_READ_SIBLING_BEGIN;
   req->datatype = UPLL_DT_STATE;
 
-  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValidateCapability(req, ikey, "CTR_1"));
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+     vbr.ValidateCapability(req, ikey, "CTR_1"));
 
   key_vbr *key1(UT_CLONE(key_vbr, key));
   val_vbr* no_val(NULL);
-  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbr, no_val));
-  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+  ConfigVal *cfgval1(new ConfigVal(
+    IpctSt::kIpcStValVbr, no_val));
+  ConfigKeyVal *ikey1(new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                        key1, cfgval1));
-  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValidateCapability(req, ikey1, "CTR_1"));
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+     vbr.ValidateCapability(req, ikey1, "CTR_1"));
 
   req->operation = UNC_OP_DELETE;
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.ValidateCapability(req, ikey1, "CTR_1"));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.ValidateCapability(req, ikey1, "CTR_1"));
 
   CtrlrMgr::GetInstance()->Delete("CTR_1", UPLL_DT_CANDIDATE);
 
@@ -1479,9 +1660,10 @@ TEST_F(VbrMoMgrTest, ValidateCapability_Success1) {
 TEST_F(VbrMoMgrTest, ValidateCapability_ikey_NULL) {
   VbrMoMgr vbr;
   ConfigKeyVal *ikey = NULL;
-  IpcReqRespHeader *req=NULL;
-  const char *ctrlr_name="ctr1";
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.ValidateCapability(req, ikey, ctrlr_name));
+  IpcReqRespHeader *req = NULL;
+  const char *ctrlr_name = "ctr1";
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.ValidateCapability(req, ikey, ctrlr_name));
 }
 
 TEST_F(VbrMoMgrTest, ValidateCapability_ctrName_NULL) {
@@ -1489,13 +1671,16 @@ TEST_F(VbrMoMgrTest, ValidateCapability_ctrName_NULL) {
   key_vbr *key;
   val_vbr *val;
   GetKeyValStruct(key, val);
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigVal *cfgval = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
   IPC_REQ_RESP_HEADER_DECL(req);
-  const char *ctrlr_name=NULL;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.ValidateCapability(req, ikey, ctrlr_name));
+  const char *ctrlr_name = NULL;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.ValidateCapability(req, ikey, ctrlr_name));
 
   delete ikey;
 }
@@ -1505,13 +1690,16 @@ TEST_F(VbrMoMgrTest, ValidateCapability_ctrName) {
   key_vbr *key;
   val_vbr *val;
   GetKeyValStruct(key, val);
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVtn, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigVal *cfgval = new ConfigVal(
+    IpctSt::kIpcStValVtn, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
   IPC_REQ_RESP_HEADER_DECL(req);
-  const char *ctrlr_name=NULL;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.ValidateCapability(req, ikey, ctrlr_name));
+  const char *ctrlr_name = NULL;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.ValidateCapability(req, ikey, ctrlr_name));
 
   delete ikey;
 }
@@ -1522,8 +1710,10 @@ TEST_F(VbrMoMgrTest, ValidateMessage_Success) {
   val_vbr *val;
   GetKeyValStruct(key, val);
 
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigVal *cfgval = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
 
@@ -1536,10 +1726,11 @@ TEST_F(VbrMoMgrTest, ValidateMessage_Success) {
   req->option2 = UNC_OPT2_NONE;
   req->datatype = UPLL_DT_CANDIDATE;
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,obj.ValidateMessage(req, ikey));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+    obj.ValidateMessage(req, ikey));
 
   val_rename_vbr *renameval(ZALLOC_TYPE(val_rename_vbr));
-  for(unsigned int loop = 0; loop < sizeof(renameval->valid)/
+  for (unsigned int loop = 0; loop < sizeof(renameval->valid)/
      sizeof(renameval->valid[0]); ++loop) {
     renameval->valid[loop] = UNC_VF_VALID;
   }
@@ -1547,44 +1738,53 @@ TEST_F(VbrMoMgrTest, ValidateMessage_Success) {
   "renamed", strlen("renamed")+1);
 
   key_vbr *key1(UT_CLONE(key_vbr, key));
-  ConfigVal *rename_cfgval = new ConfigVal(IpctSt::kIpcStValRenameVbr, renameval);
-  ConfigKeyVal *rename_ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigVal *rename_cfgval = new ConfigVal(
+    IpctSt::kIpcStValRenameVbr, renameval);
+  ConfigKeyVal *rename_ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key1, rename_cfgval);
 
   req->operation = UNC_OP_RENAME;
   req->datatype = UPLL_DT_IMPORT;
-  EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateMessage(req, rename_ikey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.ValidateMessage(req, rename_ikey));
 
   req->operation = UNC_OP_READ_SIBLING;
-  EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateMessage(req, rename_ikey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.ValidateMessage(req, rename_ikey));
 
-  ConfigVal *invrename_cfgval = new ConfigVal(IpctSt::kIpcStValRenameVbr, NULL);
+  ConfigVal *invrename_cfgval = new ConfigVal(
+    IpctSt::kIpcStValRenameVbr, NULL);
   key_vbr *key2(UT_CLONE(key_vbr, key));
-  ConfigKeyVal *invrename_ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigKeyVal *invrename_ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key2, invrename_cfgval);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateMessage(req, invrename_ikey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.ValidateMessage(req, invrename_ikey));
 
   req->operation = UNC_OP_READ_SIBLING_COUNT;
   req->datatype = UPLL_DT_RUNNING;
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,obj.ValidateMessage(req, ikey));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+    obj.ValidateMessage(req, ikey));
 
   req->operation = UNC_OP_DELETE;
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,obj.ValidateMessage(req, ikey));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+    obj.ValidateMessage(req, ikey));
 
   req->operation = UNC_OP_CONTROL;
   val_ping *vst(ZALLOC_TYPE(val_ping));
-  for(unsigned int loop = 0; loop < sizeof(vst->valid)/
+  for (unsigned int loop = 0; loop < sizeof(vst->valid)/
      sizeof(vst->valid[0]); ++loop) {
     vst->valid[loop] = UNC_VF_VALID;
   }
   struct sockaddr_in sa;
   inet_pton(AF_INET, "192.168.1.1", &(sa.sin_addr));
-  vst->target_addr = sa.sin_addr.s_addr;// ("192.168.1.1")
+  vst->target_addr = sa.sin_addr.s_addr;  //  ("192.168.1.1")
   inet_pton(AF_INET, "192.168.1.2", &(sa.sin_addr));
-  vst->src_addr = sa.sin_addr.s_addr; // ("192.168.1.2")
+  vst->src_addr = sa.sin_addr.s_addr;  //  ("192.168.1.2")
   vst->dfbit = UPLL_DF_BIT_ENABLE;
   vst->packet_size = 5;
   vst->count = 14;
@@ -1592,12 +1792,15 @@ TEST_F(VbrMoMgrTest, ValidateMessage_Success) {
   vst->timeout = 32;
 
   key_vbr *key3(UT_CLONE(key_vbr, key));
-  ConfigVal *ping_cfgval = new ConfigVal(IpctSt::kIpcStValPing, vst);
-  ConfigKeyVal *ping_ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigVal *ping_cfgval = new ConfigVal(
+    IpctSt::kIpcStValPing, vst);
+  ConfigKeyVal *ping_ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key3, ping_cfgval);
   req->option2 = UNC_OPT2_PING;
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,obj.ValidateMessage(req, ping_ikey));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+    obj.ValidateMessage(req, ping_ikey));
 
   delete ikey;
   delete rename_ikey;
@@ -1608,11 +1811,13 @@ TEST_F(VbrMoMgrTest, ValidateMessage_Success) {
 TEST_F(VbrMoMgrTest, ValidateMessage_ReadSuccess) {
   VbrMoMgr obj;
   key_vbr *key;
-  val_vbr *val ;
-  GetKeyValStruct(key,val);
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr,val);
+  val_vbr *val;
+  GetKeyValStruct(key, val);
+  ConfigVal *cfgval = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
 
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -1623,7 +1828,8 @@ TEST_F(VbrMoMgrTest, ValidateMessage_ReadSuccess) {
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
   req->datatype = UPLL_DT_CANDIDATE;
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,obj.ValidateMessage(req, ikey));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+    obj.ValidateMessage(req, ikey));
 
   delete ikey;
 }
@@ -1631,11 +1837,13 @@ TEST_F(VbrMoMgrTest, ValidateMessage_ReadSuccess) {
 TEST_F(VbrMoMgrTest, ValidateMessage_ReadFailure) {
   VbrMoMgr obj;
   key_vbr *key;
-  val_vbr *val ;
-  GetKeyValStruct(key,val);
- ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr,val);
+  val_vbr *val;
+  GetKeyValStruct(key, val);
+  ConfigVal *cfgval = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
 
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -1654,11 +1862,13 @@ TEST_F(VbrMoMgrTest, ValidateMessage_ReadFailure) {
 TEST_F(VbrMoMgrTest, ValidateMessage_ReadOption2Failure) {
   VbrMoMgr obj;
   key_vbr *key;
-  val_vbr *val ;
-  GetKeyValStruct(key,val);
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr,val);
+  val_vbr *val;
+  GetKeyValStruct(key, val);
+  ConfigVal *cfgval = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
 
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -1677,11 +1887,13 @@ TEST_F(VbrMoMgrTest, ValidateMessage_ReadOption2Failure) {
 TEST_F(VbrMoMgrTest, ValidateMessage_InvalidValVbr) {
   VbrMoMgr obj;
   key_vbr *key;
-  val_vbr *val ;
-  GetKeyValStruct(key,val);
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValRenameVbr,val);
+  val_vbr *val;
+  GetKeyValStruct(key, val);
+  ConfigVal *cfgval = new ConfigVal(
+    IpctSt::kIpcStValRenameVbr, val);
 
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -1692,7 +1904,8 @@ TEST_F(VbrMoMgrTest, ValidateMessage_InvalidValVbr) {
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
   req->datatype = UPLL_DT_CANDIDATE;
-  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, obj.ValidateMessage(req, ikey));
+  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST,
+     obj.ValidateMessage(req, ikey));
 
   delete ikey;
 }
@@ -1702,7 +1915,8 @@ TEST_F(VbrMoMgrTest, ValidateMessage_NullVal) {
   key_vbr *key;
   GetKeyStruct(key);
 
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, NULL);
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -1713,7 +1927,8 @@ TEST_F(VbrMoMgrTest, ValidateMessage_NullVal) {
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
   req->datatype = UPLL_DT_CANDIDATE;
-  EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateMessage(req, ikey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.ValidateMessage(req, ikey));
 
   delete ikey;
 }
@@ -1723,7 +1938,8 @@ TEST_F(VbrMoMgrTest, ValidateMessage_DiffOption) {
   key_vbr *key;
   GetKeyStruct(key);
 
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, NULL);
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -1744,7 +1960,8 @@ TEST_F(VbrMoMgrTest, ValidateMessage_DiffOption2) {
   key_vbr *key;
   GetKeyStruct(key);
 
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, NULL);
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -1766,7 +1983,8 @@ TEST_F(VbrMoMgrTest, ValidateMessage_ValidDiffOption) {
   key_vbr *key;
   GetKeyStruct(key);
 
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, NULL);
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -1776,13 +1994,14 @@ TEST_F(VbrMoMgrTest, ValidateMessage_ValidDiffOption) {
   req->rep_count = 100;
   req->option1 = UNC_OPT1_NORMAL;
   req->option1 = UNC_OPT1_COUNT;
-  req->option2 =UNC_OPT2_MAC_ENTRY;
+  req->option2  = UNC_OPT2_MAC_ENTRY;
   req->option2 = UNC_OPT2_MAC_ENTRY_STATIC;
   req->option2 = UNC_OPT2_MAC_ENTRY_DYNAMIC;
   req->option2 = UNC_OPT2_L2DOMAIN;
   req->option2 = UNC_OPT2_NONE;
   req->datatype = UPLL_DT_STATE;
-  EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateMessage(req, ikey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.ValidateMessage(req, ikey));
 
   delete ikey;
 }
@@ -1793,8 +2012,10 @@ TEST_F(VbrMoMgrTest, ValidateMessage_InvalidInputCREATE) {
   val_vbr *val;
   GetKeyValStruct(key, val);
 
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigVal *cfgval = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
   ConfigKeyVal *invalkey = NULL;
@@ -1810,37 +2031,49 @@ TEST_F(VbrMoMgrTest, ValidateMessage_InvalidInputCREATE) {
   req->datatype = UPLL_DT_CANDIDATE;
 
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.ValidateMessage(req, invalkey));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.ValidateMessage(req, invalkey));
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.ValidateMessage(inreq, ikey));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.ValidateMessage(inreq, ikey));
 
   key_vbr *key1(UT_CLONE(key_vbr, key));
   val_vbr *val1(UT_CLONE(val_vbr, val));
-  ConfigVal *inval_cfgval = new ConfigVal(IpctSt::kIpcStValRenameVbr, val1);
-  ConfigKeyVal *invalcfgkey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigVal *inval_cfgval = new ConfigVal(
+    IpctSt::kIpcStValRenameVbr, val1);
+  ConfigKeyVal *invalcfgkey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key1, inval_cfgval);
 
-  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, obj.ValidateMessage(req, invalcfgkey));
+  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST,
+     obj.ValidateMessage(req, invalcfgkey));
 
   key_vbr *key2(UT_CLONE(key_vbr, key));
   val_vbr *val2(UT_CLONE(val_vbr, val));
-  inval_cfgval = new ConfigVal(IpctSt::kIpcStValRenameVbr, val2);
-  invalcfgkey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyLogicalPort,
+  inval_cfgval = new ConfigVal(
+    IpctSt::kIpcStValRenameVbr, val2);
+  invalcfgkey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyLogicalPort,
                                  key2, inval_cfgval);
-  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, obj.ValidateMessage(req, invalcfgkey));
+  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST,
+     obj.ValidateMessage(req, invalcfgkey));
 
   delete invalcfgkey;
   key2 = UT_CLONE(key_vbr, key);
   val2 = UT_CLONE(val_vbr, val);
-  inval_cfgval = new ConfigVal(IpctSt::kIpcStValRenameVbr, val2);
-  invalcfgkey = new ConfigKeyVal(UNC_KT_VTUNNEL, IpctSt::kIpcStKeyVbr,
+  inval_cfgval = new ConfigVal(
+    IpctSt::kIpcStValRenameVbr, val2);
+  invalcfgkey = new ConfigKeyVal(
+    UNC_KT_VTUNNEL, IpctSt::kIpcStKeyVbr,
                                  key2, inval_cfgval);
 
-  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, obj.ValidateMessage(req, invalcfgkey));
+  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST,
+     obj.ValidateMessage(req, invalcfgkey));
 
   req->datatype = UPLL_DT_AUDIT;
-  EXPECT_EQ(UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT,obj.ValidateMessage(req, ikey));
+  EXPECT_EQ(UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT,
+            obj.ValidateMessage(req, ikey));
 
   req->datatype = UPLL_DT_CANDIDATE;
 
@@ -1848,39 +2081,50 @@ TEST_F(VbrMoMgrTest, ValidateMessage_InvalidInputCREATE) {
   key2 = UT_CLONE(key_vbr, key);
   key2->vtn_key.vtn_name[0] = '\0';
   val2 = UT_CLONE(val_vbr, val);
-  inval_cfgval = new ConfigVal(IpctSt::kIpcStValRenameVbr, val2);
-  invalcfgkey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+  inval_cfgval = new ConfigVal(
+    IpctSt::kIpcStValRenameVbr, val2);
+  invalcfgkey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                  key2, inval_cfgval);
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, obj.ValidateMessage(req, invalcfgkey));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+    obj.ValidateMessage(req, invalcfgkey));
 
   delete invalcfgkey;
   key2 = UT_CLONE(key_vbr, key);
   strncpy(reinterpret_cast<char *>(key->vtn_key.vtn_name),
           "VTN_1", strlen("VTN_1")+1);
-  invalcfgkey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+  invalcfgkey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                  key2, NULL);
 
-  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST,obj.ValidateMessage(req, invalcfgkey));
+  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST,
+     obj.ValidateMessage(req, invalcfgkey));
 
   delete invalcfgkey;
   key2 = UT_CLONE(key_vbr, key);
-  inval_cfgval = new ConfigVal(IpctSt::kIpcStValVbr, NULL);
-  invalcfgkey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+  inval_cfgval = new ConfigVal(
+    IpctSt::kIpcStValVbr, NULL);
+  invalcfgkey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                  key2, inval_cfgval);
 
-  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST,obj.ValidateMessage(req, invalcfgkey));
+  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST,
+     obj.ValidateMessage(req, invalcfgkey));
 
   delete invalcfgkey;
   key2 = UT_CLONE(key_vbr, key);
   val2 = UT_CLONE(val_vbr, val);
   pfc_strlcpy(reinterpret_cast<char *>(val2->controller_id), "Controller 1",
               sizeof(val2->controller_id));
-  inval_cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val2);
-  invalcfgkey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+  inval_cfgval = new ConfigVal(
+    IpctSt::kIpcStValVbr, val2);
+  invalcfgkey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                  key2, inval_cfgval);
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, obj.ValidateMessage(req, invalcfgkey));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+    obj.ValidateMessage(req, invalcfgkey));
 
   delete ikey;
   delete invalcfgkey;
@@ -1892,8 +2136,10 @@ TEST_F(VbrMoMgrTest, ValidateMessage_InvalidInputRENAME) {
   val_vbr *val;
   GetKeyValStruct(key, val);
 
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigVal *cfgval = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -1905,30 +2151,40 @@ TEST_F(VbrMoMgrTest, ValidateMessage_InvalidInputRENAME) {
   req->option2 = UNC_OPT2_NONE;
   req->datatype = UPLL_DT_IMPORT;
 
-  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, obj.ValidateMessage(req, ikey));
+  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST,
+     obj.ValidateMessage(req, ikey));
 
   key_vbr *key1(UT_CLONE(key_vbr, key));
-  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValRenameVbr, NULL));
-  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+  ConfigVal *cfgval1(new ConfigVal(
+    IpctSt::kIpcStValRenameVbr, NULL));
+  ConfigKeyVal *ikey1(new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                        key1, cfgval1));
-  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, obj.ValidateMessage(req, ikey1));
+  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST,
+     obj.ValidateMessage(req, ikey1));
 
   key_vbr *key2(UT_CLONE(key_vbr, key));
   val_rename_vbr *rval2(ZALLOC_TYPE(val_rename_vbr));
-  for(unsigned int loop = 0; loop < PFC_ARRAY_CAPACITY(rval2->valid); ++loop){
+  for (unsigned int loop = 0; loop < PFC_ARRAY_CAPACITY(rval2->valid);
+       ++loop) {
     rval2->valid[loop] = UNC_VF_VALID;
   }
-  ConfigVal *cfgval2(new ConfigVal(IpctSt::kIpcStValRenameVbr, rval2));
-  ConfigKeyVal *ikey2(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+  ConfigVal *cfgval2(new ConfigVal(
+    IpctSt::kIpcStValRenameVbr, rval2));
+  ConfigKeyVal *ikey2(new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                        key2, cfgval2));
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, obj.ValidateMessage(req, ikey2));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+    obj.ValidateMessage(req, ikey2));
 
   key_vbr *key3(UT_CLONE(key_vbr, key));
   val_rename_vbr *rval3(UT_CLONE(val_rename_vbr, rval2));
   pfc_strlcpy(reinterpret_cast<char *>(rval3->new_name), "renamed",
               sizeof(rval3->new_name));
-  ConfigVal *cfgval3(new ConfigVal(IpctSt::kIpcStValRenameVbr, rval3));
-  ConfigKeyVal *ikey3(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+  ConfigVal *cfgval3(new ConfigVal(
+    IpctSt::kIpcStValRenameVbr, rval3));
+  ConfigKeyVal *ikey3(new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                        key3, cfgval3));
 
   req->operation = UNC_OP_READ;
@@ -1940,22 +2196,29 @@ TEST_F(VbrMoMgrTest, ValidateMessage_InvalidInputRENAME) {
   EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION2, obj.ValidateMessage(req, ikey3));
 
   req->option2 = UNC_OPT2_NONE;
-  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, obj.ValidateMessage(req, ikey));
+  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST,
+     obj.ValidateMessage(req, ikey));
 
   key_vbr *key4(UT_CLONE(key_vbr, key));
   val_rename_vbr *rval4(UT_CLONE(val_rename_vbr, rval2));
-  ConfigVal *cfgval4(new ConfigVal(IpctSt::kIpcStValRenameVbr, rval4));
-  ConfigKeyVal *ikey4(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+  ConfigVal *cfgval4(new ConfigVal(
+    IpctSt::kIpcStValRenameVbr, rval4));
+  ConfigKeyVal *ikey4(new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                        key4, cfgval4));
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, obj.ValidateMessage(req, ikey4));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+    obj.ValidateMessage(req, ikey4));
 
   key_vbr *key5(UT_CLONE(key_vbr, key));
   val_rename_vbr *rval5(UT_CLONE(val_rename_vbr, rval3));
-  ConfigVal *cfgval5(new ConfigVal(IpctSt::kIpcStValRenameVbr, rval5));
-  ConfigKeyVal *ikey5(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+  ConfigVal *cfgval5(new ConfigVal(
+    IpctSt::kIpcStValRenameVbr, rval5));
+  ConfigKeyVal *ikey5(new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                        key5, cfgval5));
   req->operation = UNC_OP_READ_BULK;
-  EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateMessage(req, ikey5));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.ValidateMessage(req, ikey5));
 
   delete ikey;
   delete ikey1;
@@ -1971,8 +2234,10 @@ TEST_F(VbrMoMgrTest, ValidateMessage_InvalidInputREAD) {
   val_vbr *val;
   GetKeyValStruct(key, val);
 
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigVal *cfgval = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -1994,32 +2259,42 @@ TEST_F(VbrMoMgrTest, ValidateMessage_InvalidInputREAD) {
   key_vbr *key1(UT_CLONE(key_vbr, key));
   val_rename_vbr *val1(ZALLOC_TYPE(val_rename_vbr));
   req->option2 = UNC_OPT2_NONE;
-  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValRenameVbr, val1));
-  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+  ConfigVal *cfgval1(new ConfigVal(
+    IpctSt::kIpcStValRenameVbr, val1));
+  ConfigKeyVal *ikey1(new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                        key1, cfgval1));
-  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST,obj.ValidateMessage(req, ikey1));
+  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST,
+     obj.ValidateMessage(req, ikey1));
 
   key_vbr *key2(UT_CLONE(key_vbr, key));
-  ConfigVal *cfgval2(new ConfigVal(IpctSt::kIpcStValVbr, NULL));
-  ConfigKeyVal *ikey2(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+  ConfigVal *cfgval2(new ConfigVal(
+    IpctSt::kIpcStValVbr, NULL));
+  ConfigKeyVal *ikey2(new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                        key2, cfgval2));
-  EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateMessage(req, ikey2));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.ValidateMessage(req, ikey2));
 
   key_vbr *key3(UT_CLONE(key_vbr, key));
   val_vbr *val3(UT_CLONE(val_vbr, val));
   pfc_strlcpy(reinterpret_cast<char *>(val3->controller_id), "Controller 1",
               sizeof(val3->controller_id));
-  ConfigVal *cfgval3(new ConfigVal(IpctSt::kIpcStValVbr, val3));
-  ConfigKeyVal *ikey3(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+  ConfigVal *cfgval3(new ConfigVal(
+    IpctSt::kIpcStValVbr, val3));
+  ConfigKeyVal *ikey3(new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                        key3, cfgval3));
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, obj.ValidateMessage(req, ikey3));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+    obj.ValidateMessage(req, ikey3));
 
   req->datatype = UPLL_DT_AUDIT;
   EXPECT_EQ(UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT,
             obj.ValidateMessage(req, ikey3));
 
   req->operation = UNC_OP_DELETE;
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,obj.ValidateMessage(req, ikey3));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+    obj.ValidateMessage(req, ikey3));
 
   delete ikey;
   delete ikey1;
@@ -2033,8 +2308,10 @@ TEST_F(VbrMoMgrTest, ValidateMessage_InvalidInputCONTROL) {
   val_vbr *val;
   GetKeyValStruct(key, val);
 
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigVal *cfgval = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -2054,11 +2331,12 @@ TEST_F(VbrMoMgrTest, ValidateMessage_InvalidInputCONTROL) {
   EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION2, obj.ValidateMessage(req, ikey));
 
   req->option2 = UNC_OPT2_PING;
-  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST,obj.ValidateMessage(req, ikey));
+  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST,
+     obj.ValidateMessage(req, ikey));
 
   key_vbr *key1(UT_CLONE(key_vbr, key));
   val_ping *val1(ZALLOC_TYPE(val_ping));
-  for(unsigned int loop = 0; loop < PFC_ARRAY_CAPACITY(val1->valid); ++loop){
+  for (unsigned int loop = 0; loop < PFC_ARRAY_CAPACITY(val1->valid); ++loop) {
     val1->valid[loop] = UNC_VF_VALID;
   }
 
@@ -2066,24 +2344,29 @@ TEST_F(VbrMoMgrTest, ValidateMessage_InvalidInputCONTROL) {
   inet_pton(AF_INET, "255.255.255.255", &(sa.sin_addr));
   val1->target_addr = sa.sin_addr.s_addr;
   inet_pton(AF_INET, "192.168.1.2", &(sa.sin_addr));
-  val1->src_addr = sa.sin_addr.s_addr; // ("192.168.1.2")
+  val1->src_addr = sa.sin_addr.s_addr; //  ("192.168.1.2")
   val1->dfbit = UPLL_DF_BIT_ENABLE;
   val1->packet_size = 5;
   val1->count = 14;
   val1->interval = 23;
   val1->timeout = 32;
-  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValPing, val1));
-  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+  ConfigVal *cfgval1(new ConfigVal(
+    IpctSt::kIpcStValPing, val1));
+  ConfigKeyVal *ikey1(new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                        key1, cfgval1));
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, obj.ValidateMessage(req, ikey1));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+    obj.ValidateMessage(req, ikey1));
 
   key_vbr *key2(UT_CLONE(key_vbr, key));
   val_ping *val2(UT_CLONE(val_ping, val1));
   inet_pton(AF_INET, "192.168.1.1", &(sa.sin_addr));
-  val2->target_addr = sa.sin_addr.s_addr;// ("192.168.1.1")
+  val2->target_addr = sa.sin_addr.s_addr;  //  ("192.168.1.1")
 
-  ConfigVal *cfgval2(new ConfigVal(IpctSt::kIpcStValPing, val2));
-  ConfigKeyVal *ikey2(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+  ConfigVal *cfgval2(new ConfigVal(
+    IpctSt::kIpcStValPing, val2));
+  ConfigKeyVal *ikey2(new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                        key2, cfgval2));
 
   req->datatype = UPLL_DT_CANDIDATE;
@@ -2108,12 +2391,15 @@ TEST_F(VbrMoMgrTest, AdaptValToVtnService_Success) {
   valst->valid[0] = UNC_VF_VALID;
   valst->oper_status = UPLL_OPER_STATUS_UP;
 
-  ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcStValVbrSt, valst);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigVal *cfg_val = new ConfigVal(
+    IpctSt::kIpcStValVbrSt, valst);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfg_val);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, obj.AdaptValToVtnService(ikey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.AdaptValToVtnService(ikey));
   delete ikey;
 }
 
@@ -2123,10 +2409,13 @@ TEST_F(VbrMoMgrTest, AdaptValToVtnService_Failure) {
   GetKeyStruct(key);
 
   ConfigKeyVal* ikey = NULL;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.AdaptValToVtnService(ikey));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.AdaptValToVtnService(ikey));
 
-  ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key, NULL);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.AdaptValToVtnService(ikey));
+  ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key, NULL);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.AdaptValToVtnService(ikey));
   delete ikey;
 }
 
@@ -2138,34 +2427,46 @@ TEST_F(VbrMoMgrTest, GetValid) {
 
   void *in_val = reinterpret_cast<void *>(val);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, obj.GetValid(in_val, vbridge::kDbiCtrlrName,
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.GetValid(in_val, vbridge::kDbiCtrlrName,
                                           valid, UPLL_DT_CANDIDATE, MAINTBL));
-  EXPECT_EQ(val->valid[UPLL_IDX_CONTROLLER_ID_VBR], valid[UPLL_IDX_CONTROLLER_ID_VBR]);
+  EXPECT_EQ(val->valid[UPLL_IDX_CONTROLLER_ID_VBR],
+            valid[UPLL_IDX_CONTROLLER_ID_VBR]);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, obj.GetValid(in_val, vbridge::kDbiDomainId,
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.GetValid(in_val, vbridge::kDbiDomainId,
                                           valid, UPLL_DT_CANDIDATE, MAINTBL));
-  EXPECT_EQ(val->valid[UPLL_IDX_DOMAIN_ID_VBR], valid[UPLL_IDX_DOMAIN_ID_VBR]);
+  EXPECT_EQ(val->valid[UPLL_IDX_DOMAIN_ID_VBR],
+            valid[UPLL_IDX_DOMAIN_ID_VBR]);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, obj.GetValid(in_val, vbridge::kDbiVbrDesc,
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.GetValid(in_val, vbridge::kDbiVbrDesc,
                                           valid, UPLL_DT_CANDIDATE, MAINTBL));
-  EXPECT_EQ(val->valid[UPLL_IDX_DESC_VBR], valid[UPLL_IDX_DESC_VBR]);
+  EXPECT_EQ(val->valid[UPLL_IDX_DESC_VBR],
+            valid[UPLL_IDX_DESC_VBR]);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, obj.GetValid(in_val, vbridge::kDbiHostAddr,
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.GetValid(in_val, vbridge::kDbiHostAddr,
                                           valid, UPLL_DT_CANDIDATE, MAINTBL));
   EXPECT_EQ(val->valid[UPLL_IDX_HOST_ADDR_VBR], valid[UPLL_IDX_HOST_ADDR_VBR]);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, obj.GetValid(in_val, vbridge::kDbiHostAddrMask,
-                                          valid, UPLL_DT_CANDIDATE, MAINTBL));
-  EXPECT_EQ(val->valid[UPLL_IDX_HOST_ADDR_PREFIXLEN_VBR], valid[UPLL_IDX_HOST_ADDR_PREFIXLEN_VBR]);
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.GetValid(in_val, vbridge::kDbiHostAddrMask,
+                                     valid, UPLL_DT_CANDIDATE, MAINTBL));
+  EXPECT_EQ(val->valid[UPLL_IDX_HOST_ADDR_PREFIXLEN_VBR],
+            valid[UPLL_IDX_HOST_ADDR_PREFIXLEN_VBR]);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, obj.GetValid(in_val, vbridge::kDbiHostAddrMask,
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.GetValid(in_val, vbridge::kDbiHostAddrMask,
                                           valid, UPLL_DT_CANDIDATE, RENAMETBL));
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.GetValid(in_val, vbridge::kDbiVbrName,
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.GetValid(in_val, vbridge::kDbiVbrName,
                                           valid, UPLL_DT_CANDIDATE, MAINTBL));
 
   in_val = NULL;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.GetValid(in_val, vbridge::kDbiCtrlrName,
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     obj.GetValid(in_val, vbridge::kDbiCtrlrName,
                                           valid, UPLL_DT_CANDIDATE, MAINTBL));
 
   val_vbr_st *valst(ZALLOC_TYPE(val_vbr_st));
@@ -2174,19 +2475,21 @@ TEST_F(VbrMoMgrTest, GetValid) {
 
   in_val = reinterpret_cast<void *>(valst);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, obj.GetValid(in_val, 0, valid, UPLL_DT_STATE, RENAMETBL));
-  EXPECT_EQ(val->valid[UPLL_IDX_OPER_STATUS_VBRS], valid[UPLL_IDX_OPER_STATUS_VBRS]);
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     obj.GetValid(in_val, 0, valid, UPLL_DT_STATE, RENAMETBL));
+  EXPECT_EQ(val->valid[UPLL_IDX_OPER_STATUS_VBRS],
+            valid[UPLL_IDX_OPER_STATUS_VBRS]);
 
   free(val);
   free(valst);
 }
 
 TEST_F(VbrMoMgrTest, SwapKeyVal_IpctSt_valid) {
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT, kDalRcSuccess);
   DalOdbcMgr::stub_setSingleRecordExists(true);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_COUNT,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_COUNT, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE, kDalRcSuccess);
 
   VbrMoMgr vbr;
   DalDmlIntf *dmi(getDalDmlIntf());
@@ -2199,8 +2502,10 @@ TEST_F(VbrMoMgrTest, SwapKeyVal_IpctSt_valid) {
   pfc_strlcpy(reinterpret_cast<char *>(key->vbridge_name),
               vbr_name, sizeof(key->vbridge_name));
   val_rename_vbr_t *val(ZALLOC_TYPE(val_rename_vbr_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrSt, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVbrSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key, config_val);
   ConfigKeyVal *okey = NULL;
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,
@@ -2214,8 +2519,10 @@ TEST_F(VbrMoMgrTest, SwapKeyVal_IpctSt_valid) {
 
   key_vbr_t *key1(UT_CLONE(key_vbr_t, key));
   val_rename_vbr_t *val1(UT_CLONE(val_rename_vbr_t, val));
-  ConfigVal *config_val1(new ConfigVal(IpctSt::kIpcStValVbrSt, val1));
-  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVbr,
+  ConfigVal *config_val1(new ConfigVal(
+    IpctSt::kIpcStValVbrSt, val1));
+  ConfigKeyVal *ikey1(new ConfigKeyVal(
+    UNC_KT_VTN, IpctSt::kIpcStKeyVbr,
                                        key1, config_val1));
   EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST,
             vbr.SwapKeyVal(ikey1, okey, dmi, ctr_id1, no_rename));
@@ -2223,16 +2530,19 @@ TEST_F(VbrMoMgrTest, SwapKeyVal_IpctSt_valid) {
 
   key_vbr_t *key2(UT_CLONE(key_vbr_t, key));
   ConfigVal *config_val2(NULL);
-  ConfigKeyVal *ikey2(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+  ConfigKeyVal *ikey2(new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                        key2, config_val2));
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,
-            vbr.SwapKeyVal(ikey2, okey, dmi,ctr_id1, no_rename));
+            vbr.SwapKeyVal(ikey2, okey, dmi, ctr_id1, no_rename));
   delete okey;
 
   key_vbr_t *key3(UT_CLONE(key_vbr_t, key));
   val_rename_vbr_t *val3(NULL);
-  ConfigVal *config_val3(new ConfigVal(IpctSt::kIpcStValVbrSt, val3));
-  ConfigKeyVal *ikey3(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+  ConfigVal *config_val3(new ConfigVal(
+    IpctSt::kIpcStValVbrSt, val3));
+  ConfigKeyVal *ikey3(new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                        key3, config_val3));
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,
             vbr.SwapKeyVal(ikey3, okey, dmi, ctr_id1, no_rename));
@@ -2251,11 +2561,16 @@ TEST_F(VbrMoMgrTest, UpdateAuditConfigStatus_ValidCsStatus) {
   val_vbr *val;
   GetKeyValStruct(key, val);
 
-  ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcStValVbr, val);
+  ConfigVal *cfg_val = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
   unc_keytype_configstatus_t cs_status = UNC_CS_APPLIED;
   UpdateCtrlrPhase phase = kUpllUcpCreate;
-  ConfigKeyVal *ckv_running = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, (void*)key, cfg_val);
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbrmomgr.UpdateAuditConfigStatus(cs_status, phase, ckv_running));
+  ConfigKeyVal *ckv_running = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, (void*)key, cfg_val);
+
+  DalDmlIntf *dmi(getDalDmlIntf());
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbrmomgr.UpdateAuditConfigStatus(cs_status, phase, ckv_running, dmi));
 
   delete ckv_running;
 }
@@ -2266,11 +2581,15 @@ TEST_F(VbrMoMgrTest, UpdateAuditConfigStatus_InvalidCsStatus) {
   val_vbr *val;
   GetKeyValStruct(key, val);
 
-  ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcStValVbr, val);
+  ConfigVal *cfg_val = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
   unc_keytype_configstatus_t cs_status = UNC_CS_INVALID;
   UpdateCtrlrPhase phase = kUpllUcpCreate;
-  ConfigKeyVal *ckv_running = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, (void*)key, cfg_val);
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbrmomgr.UpdateAuditConfigStatus(cs_status, phase, ckv_running));
+  ConfigKeyVal *ckv_running = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, (void*)key, cfg_val);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbrmomgr.UpdateAuditConfigStatus(cs_status, phase, ckv_running, dmi));
 
   delete ckv_running;
 }
@@ -2279,28 +2598,34 @@ TEST_F(VbrMoMgrTest, UpdateAuditConfigStatus_EmptyVal) {
   VbrMoMgr vbrmomgr;
   unc_keytype_configstatus_t cs_status = UNC_CS_APPLIED;
   UpdateCtrlrPhase phase = kUpllUcpCreate;
-  ConfigKeyVal *ckv_running = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbrmomgr.UpdateAuditConfigStatus(cs_status, phase, ckv_running));
+  ConfigKeyVal *ckv_running = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbrmomgr.UpdateAuditConfigStatus(cs_status, phase, ckv_running, dmi));
 
   delete ckv_running;
 }
 
 TEST_F(VbrMoMgrTest, GetRenamedUncKey) {
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE ,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE , kDalRcSuccess);
 
   VbrMoMgr vbrmomgr;
   upll_keytype_datatype_t dt_type = UPLL_DT_CANDIDATE;
   DalDmlIntf *dmi(getDalDmlIntf());
   uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
-  cout << "ctr_id1:" << ctr_id1<<endl;
+  cout << "ctr_id1:" << ctr_id1 << endl;
   key_vbr *key;
   val_vbr *val;
   GetKeyValStruct(key, val);
-  ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, (void*)key, cfg_val);
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbrmomgr.GetRenamedUncKey(ikey,dt_type,dmi,ctr_id1));
+  ConfigVal *cfg_val = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, (void*)key, cfg_val);
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbrmomgr.GetRenamedUncKey(ikey, dt_type, dmi, ctr_id1));
 
   delete ikey;
   free(ctr_id1);
@@ -2312,7 +2637,8 @@ TEST_F(VbrMoMgrTest, GetRenamedControllerKey_01) {
   controller_domain *ctrl_domain = NULL;
   DalDmlIntf *dmi = NULL;
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vbr.GetRenamedControllerKey(ikey,UPLL_DT_STATE,dmi,ctrl_domain));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.GetRenamedControllerKey(ikey, UPLL_DT_STATE, dmi, ctrl_domain));
 }
 
 TEST_F(VbrMoMgrTest, GetRenamedControllerKey_02) {
@@ -2322,10 +2648,11 @@ TEST_F(VbrMoMgrTest, GetRenamedControllerKey_02) {
   key_vbr_t *key_vbr(ZALLOC_TYPE(key_vbr_t));
   strcpy((char *)key_vbr->vtn_key.vtn_name, (char *)"vtn1");
   strcpy((char *)key_vbr->vbridge_name, (char *)"vbridge");
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE, kDalRcSuccess);
   DalDmlIntf *dmi(getDalDmlIntf());
 
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr,key_vbr);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key_vbr);
 
   SET_USER_DATA_FLAGS(ikey, 0x01);
   EXPECT_EQ(UPLL_RC_SUCCESS,
@@ -2336,27 +2663,30 @@ TEST_F(VbrMoMgrTest, GetRenamedControllerKey_02) {
 }
 
 TEST_F(VbrMoMgrTest, GetRenamedControllerKey_03) {
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE ,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE , kDalRcSuccess);
 
   VbrMoMgr vbrmomgr;
   upll_keytype_datatype_t dt_type = UPLL_DT_CANDIDATE;
   DalDmlIntf *dmi(getDalDmlIntf());
   uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
-  cout << "ctr_id1:" << ctr_id1<<endl;
+  cout << "ctr_id1:" << ctr_id1 << endl;
   uint8_t *dom_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(dom_id1, "Domain1", 7);
-  cout << "dom_id1:" << dom_id1<<endl;
+  cout << "dom_id1:" << dom_id1 << endl;
   key_vbr *key;
   val_vbr *val;
   GetKeyValStruct(key, val);
-  ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, (void*)key, cfg_val);
+  ConfigVal *cfg_val = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, (void*)key, cfg_val);
   controller_domain ctrlr_dom1;
   ctrlr_dom1.ctrlr = ctr_id1;
   ctrlr_dom1.domain = NULL;
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbrmomgr.GetRenamedControllerKey(ikey,dt_type,dmi,&ctrlr_dom1));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbrmomgr.GetRenamedControllerKey(ikey, dt_type, dmi, &ctrlr_dom1));
 
   delete ikey;
   free(ctr_id1);
@@ -2364,26 +2694,29 @@ TEST_F(VbrMoMgrTest, GetRenamedControllerKey_03) {
 }
 
 TEST_F(VbrMoMgrTest, GetRenamedControllerKey_04) {
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE ,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE , kDalRcSuccess);
 
   VbrMoMgr vbr;
   key_vbr_t *keyvbr(ZALLOC_TYPE(key_vbr_t));
   val_vbr_t *valVbr(ZALLOC_TYPE(val_vbr_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbr, valVbr);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, keyvbr, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVbr, valVbr);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, keyvbr, config_val);
   upll_keytype_datatype_t dt_type = UPLL_DT_CANDIDATE;
   DalDmlIntf *dmi(getDalDmlIntf());
   uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
-  cout << "ctr_id1:" << ctr_id1<<endl;
+  cout << "ctr_id1:" << ctr_id1 << endl;
   uint8_t *dom_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(dom_id1, "Domain1", 7);
-  cout << "dom_id1:" << dom_id1<<endl;
+  cout << "dom_id1:" << dom_id1 << endl;
   controller_domain ctrlr_dom1;
   ctrlr_dom1.ctrlr = ctr_id1;
   ctrlr_dom1.domain = NULL;
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.GetRenamedControllerKey(ikey,dt_type,dmi,&ctrlr_dom1));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.GetRenamedControllerKey(ikey, dt_type, dmi, &ctrlr_dom1));
 
   delete ikey;
   free(ctr_id1);
@@ -2397,8 +2730,10 @@ TEST_F(VbrMoMgrTest, GetControllerDomainId1) {
   key_vbr_t *key_vbr(ZALLOC_TYPE(key_vbr_t));
   strcpy((char *)key_vbr->vtn_key.vtn_name, (char *)"vtn1");
   strcpy((char *)key_vbr->vbridge_name, (char *)"vbridge1");
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr,key_vbr);
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.GetControllerDomainId(ikey, &ctrl_domain));
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key_vbr);
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.GetControllerDomainId(ikey, &ctrl_domain));
 
   delete ikey;
 }
@@ -2408,15 +2743,18 @@ TEST_F(VbrMoMgrTest, GetControllerDomainId2) {
   controller_domain ctrl_domain;
   memset(&ctrl_domain, 0, sizeof(ctrl_domain));
   ConfigKeyVal *ikey = NULL;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.GetControllerDomainId(ikey, &ctrl_domain));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.GetControllerDomainId(ikey, &ctrl_domain));
 }
 
 TEST_F(VbrMoMgrTest, GetControllerDomainId3) {
   VbrMoMgr vbr;
   controller_domain *ctrl_domain = NULL;
 
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vbr.GetControllerDomainId(ikey,ctrl_domain));
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.GetControllerDomainId(ikey, ctrl_domain));
 
   delete ikey;
 }
@@ -2427,8 +2765,10 @@ TEST_F(VbrMoMgrTest, GetControllerDomainId4) {
   memset(&ctrl_domain, 0, sizeof(ctrl_domain));
   key_vbr_t *key_vbr(ZALLOC_TYPE(key_vbr_t));
 
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key_vbr, NULL);
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.GetControllerDomainId(ikey, &ctrl_domain));
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key_vbr, NULL);
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.GetControllerDomainId(ikey, &ctrl_domain));
 
   delete ikey;
 }
@@ -2439,14 +2779,17 @@ TEST_F(VbrMoMgrTest, GetControllerDomainId5) {
   memset(&ctrl_domain, 0, sizeof(ctrl_domain));
   key_vbr_t *key_vbr(ZALLOC_TYPE(key_vbr_t));
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbr, NULL);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key_vbr, config_val);
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.GetControllerDomainId(ikey, &ctrl_domain));
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVbr, NULL);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key_vbr, config_val);
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.GetControllerDomainId(ikey, &ctrl_domain));
 
   delete ikey;
 }
 
-TEST_F(VbrMoMgrTest, GetControllerDomainId_InvalidVal){
+TEST_F(VbrMoMgrTest, GetControllerDomainId_InvalidVal) {
   VbrMoMgr vbr;
   key_vbr *key(ZALLOC_TYPE(key_vbr));
   val_vbr *val(ZALLOC_TYPE(val_vbr));
@@ -2458,17 +2801,20 @@ TEST_F(VbrMoMgrTest, GetControllerDomainId_InvalidVal){
               sizeof(val->domain_id));
   controller_domain ctrlr_dom;
   memset(&ctrlr_dom, 0, sizeof(ctrlr_dom));
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigVal *cfgval = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.GetControllerDomainId(ikey, &ctrlr_dom));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.GetControllerDomainId(ikey, &ctrlr_dom));
 
   delete ikey;
 }
 
-TEST_F(VbrMoMgrTest, GetControllerDomainId_SetDomainData){
+TEST_F(VbrMoMgrTest, GetControllerDomainId_SetDomainData) {
   VbrMoMgr vbr;
   key_vbr *key(ZALLOC_TYPE(key_vbr));
   val_vbr *val(ZALLOC_TYPE(val_vbr));
@@ -2481,46 +2827,52 @@ TEST_F(VbrMoMgrTest, GetControllerDomainId_SetDomainData){
   controller_domain ctrlr_dom;
   memset(&ctrlr_dom, 0, sizeof(ctrlr_dom));
 
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigVal *cfgval = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
 
-  SET_USER_DATA_CTRLR(ikey,val->controller_id)
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.GetControllerDomainId(ikey, &ctrlr_dom));
+  SET_USER_DATA_CTRLR(ikey, val->controller_id)
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.GetControllerDomainId(ikey, &ctrlr_dom));
 
   delete ikey;
 }
 
 TEST_F(VbrMoMgrTest, GetRenameInfo1) {
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE ,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE , kDalRcSuccess);
 
   VbrMoMgr vbr;
   bool no_rename = false;
   ConfigKeyVal *okey = NULL;
   ConfigKeyVal *rename_info = NULL;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.GetRenameInfo(NULL, okey, rename_info, NULL, NULL, no_rename));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.GetRenameInfo(NULL, okey, rename_info, NULL, NULL, no_rename));
 }
 
 TEST_F(VbrMoMgrTest, GetRenameInfo2) {
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE ,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE , kDalRcSuccess);
 
   VbrMoMgr vbr;
   bool no_rename = false;
   ConfigKeyVal *okey = NULL;
   ConfigKeyVal *rename_info = NULL;
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr, NULL);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.GetRenameInfo(ikey, okey, rename_info, NULL, NULL, no_rename));
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, NULL);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.GetRenameInfo(ikey, okey, rename_info, NULL, NULL, no_rename));
 
   delete ikey;
   delete rename_info;
 }
 
 TEST_F(VbrMoMgrTest, GetRenameInfo3) {
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE ,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE , kDalRcSuccess);
 
   VbrMoMgr vbr;
   bool no_rename = false;
@@ -2530,19 +2882,23 @@ TEST_F(VbrMoMgrTest, GetRenameInfo3) {
   strcpy((char *)key_vbr->vtn_key.vtn_name, (char *)"vtn1");
   strcpy((char *)key_vbr->vbridge_name, (char *)"name");
   val_rename_vnode_t *val(ZALLOC_TYPE(val_rename_vnode_t));
-  strcpy((char*)val->ctrlr_vtn_name,"vtn1)");
+  strcpy((char*)val->ctrlr_vtn_name, "vtn1)");
   strcpy((char*)val->ctrlr_vnode_name, "vnode1");
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::UPDATE_RECORD,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::UPDATE_RECORD, kDalRcSuccess);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, val);
   DalDmlIntf *dmi(getDalDmlIntf());
 
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr, key_vbr, config_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key_vbr, config_val);
 
   key_vbr_t *key_vbr1(UT_CLONE(key_vbr_t, key_vbr));
-  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr,
+  ConfigKeyVal *okey(new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                       key_vbr1));
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.GetRenameInfo(ikey, okey, rename_info, dmi, ctrlr_name, no_rename));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.GetRenameInfo(ikey, okey, rename_info, dmi, ctrlr_name, no_rename));
 
   delete ikey;
   delete okey;
@@ -2550,8 +2906,8 @@ TEST_F(VbrMoMgrTest, GetRenameInfo3) {
 }
 
 TEST_F(VbrMoMgrTest, GetRenameInfo4) {
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE ,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE , kDalRcSuccess);
 
   VbrMoMgr vbr;
   bool no_rename = true;
@@ -2561,19 +2917,23 @@ TEST_F(VbrMoMgrTest, GetRenameInfo4) {
   strcpy((char *)key_vbr->vtn_key.vtn_name, (char *)"vtn1");
   strcpy((char *)key_vbr->vbridge_name, (char *)"name");
   val_rename_vnode_t *val(ZALLOC_TYPE(val_rename_vnode_t));
-  strcpy((char*)val->ctrlr_vtn_name,"");
+  strcpy((char*)val->ctrlr_vtn_name, "");
   strcpy((char*)val->ctrlr_vnode_name, "vnode1");
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::UPDATE_RECORD,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::UPDATE_RECORD, kDalRcSuccess);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, val);
   DalDmlIntf *dmi(getDalDmlIntf());
 
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr, key_vbr, config_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key_vbr, config_val);
 
   key_vbr_t *key_vbr1(UT_CLONE(key_vbr_t, key_vbr));
-  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr,
+  ConfigKeyVal *okey(new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                       key_vbr1));
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.GetRenameInfo(ikey, okey, rename_info, dmi, ctrlr_name, no_rename));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.GetRenameInfo(ikey, okey, rename_info, dmi, ctrlr_name, no_rename));
 
   delete ikey;
   delete okey;
@@ -2581,8 +2941,8 @@ TEST_F(VbrMoMgrTest, GetRenameInfo4) {
 }
 
 TEST_F(VbrMoMgrTest, GetRenameInfo5) {
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE ,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE , kDalRcSuccess);
 
   VbrMoMgr vbr;
   bool no_rename = true;
@@ -2592,19 +2952,23 @@ TEST_F(VbrMoMgrTest, GetRenameInfo5) {
   strcpy((char *)key_vbr->vtn_key.vtn_name, (char *)"vtn1");
   strcpy((char *)key_vbr->vbridge_name, (char *)"name");
   val_rename_vnode_t *val(ZALLOC_TYPE(val_rename_vnode_t));
-  strcpy((char*)val->ctrlr_vtn_name,"vtn1");
+  strcpy((char*)val->ctrlr_vtn_name, "vtn1");
   strcpy((char*)val->ctrlr_vnode_name, "");
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::UPDATE_RECORD,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::UPDATE_RECORD, kDalRcSuccess);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, val);
   DalDmlIntf *dmi(getDalDmlIntf());
 
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr, key_vbr, config_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key_vbr, config_val);
 
   key_vbr_t *key_vbr1(UT_CLONE(key_vbr_t, key_vbr));
-  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr,
+  ConfigKeyVal *okey(new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                       key_vbr1));
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.GetRenameInfo(ikey, okey, rename_info, dmi, ctrlr_name, no_rename));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.GetRenameInfo(ikey, okey, rename_info, dmi, ctrlr_name, no_rename));
 
   delete ikey;
   delete okey;
@@ -2612,8 +2976,8 @@ TEST_F(VbrMoMgrTest, GetRenameInfo5) {
 }
 
 TEST_F(VbrMoMgrTest, GetRenameInfo6) {
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE ,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE , kDalRcSuccess);
 
   VbrMoMgr vbr;
   bool no_rename = false;
@@ -2623,19 +2987,23 @@ TEST_F(VbrMoMgrTest, GetRenameInfo6) {
   strcpy((char *)key_vbr->vtn_key.vtn_name, (char *)"vtn1");
   strcpy((char *)key_vbr->vbridge_name, (char *)"");
   val_rename_vnode_t *val(ZALLOC_TYPE(val_rename_vnode_t));
-  strcpy((char*)val->ctrlr_vtn_name,"vtn1");
+  strcpy((char*)val->ctrlr_vtn_name, "vtn1");
   strcpy((char*)val->ctrlr_vnode_name, "");
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::UPDATE_RECORD,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::UPDATE_RECORD, kDalRcSuccess);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, val);
   DalDmlIntf *dmi(getDalDmlIntf());
 
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr, key_vbr, config_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key_vbr, config_val);
 
   key_vbr_t *key_vbr1(UT_CLONE(key_vbr_t, key_vbr));
-  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr,
+  ConfigKeyVal *okey(new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                       key_vbr1));
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.GetRenameInfo(ikey, okey, rename_info, dmi, ctrlr_name, no_rename));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.GetRenameInfo(ikey, okey, rename_info, dmi, ctrlr_name, no_rename));
 
   delete ikey;
   delete okey;
@@ -2643,8 +3011,8 @@ TEST_F(VbrMoMgrTest, GetRenameInfo6) {
 }
 
 TEST_F(VbrMoMgrTest, GetRenameInfo7) {
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE ,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE , kDalRcSuccess);
 
   VbrMoMgr vbr;
   bool no_rename = false;
@@ -2654,19 +3022,23 @@ TEST_F(VbrMoMgrTest, GetRenameInfo7) {
   strcpy((char *)key_vbr->vtn_key.vtn_name, (char *)"");
   strcpy((char *)key_vbr->vbridge_name, (char *)"name");
   val_rename_vnode_t *val(ZALLOC_TYPE(val_rename_vnode_t));
-  strcpy((char*)val->ctrlr_vtn_name,"vtn1");
+  strcpy((char*)val->ctrlr_vtn_name, "vtn1");
   strcpy((char*)val->ctrlr_vnode_name, "");
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::UPDATE_RECORD,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::UPDATE_RECORD, kDalRcSuccess);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, val);
   DalDmlIntf *dmi(getDalDmlIntf());
 
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr, key_vbr, config_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key_vbr, config_val);
 
   key_vbr_t *key_vbr1(UT_CLONE(key_vbr_t, key_vbr));
-  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr,
+  ConfigKeyVal *okey(new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                       key_vbr1));
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.GetRenameInfo(ikey, okey, rename_info, dmi, ctrlr_name, no_rename));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.GetRenameInfo(ikey, okey, rename_info, dmi, ctrlr_name, no_rename));
 
   delete ikey;
   delete okey;
@@ -2674,8 +3046,8 @@ TEST_F(VbrMoMgrTest, GetRenameInfo7) {
 }
 
 TEST_F(VbrMoMgrTest, GetRenameInfo8) {
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE ,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE , kDalRcSuccess);
 
   VbrMoMgr vbr;
   bool no_rename = true;
@@ -2685,19 +3057,23 @@ TEST_F(VbrMoMgrTest, GetRenameInfo8) {
   strcpy((char *)key_vbr->vtn_key.vtn_name, (char *)"");
   strcpy((char *)key_vbr->vbridge_name, (char *)"name");
   val_rename_vnode_t *val(ZALLOC_TYPE(val_rename_vnode_t));
-  strcpy((char*)val->ctrlr_vtn_name,"vtn1");
+  strcpy((char*)val->ctrlr_vtn_name, "vtn1");
   strcpy((char*)val->ctrlr_vnode_name, "");
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::UPDATE_RECORD,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::UPDATE_RECORD, kDalRcSuccess);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, val);
   DalDmlIntf *dmi(getDalDmlIntf());
 
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr, key_vbr, config_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key_vbr, config_val);
 
   key_vbr_t *key_vbr1(UT_CLONE(key_vbr_t, key_vbr));
-  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr,
+  ConfigKeyVal *okey(new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                       key_vbr1));
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.GetRenameInfo(ikey, okey, rename_info, dmi, ctrlr_name, no_rename));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.GetRenameInfo(ikey, okey, rename_info, dmi, ctrlr_name, no_rename));
 
   delete ikey;
   delete okey;
@@ -2705,8 +3081,8 @@ TEST_F(VbrMoMgrTest, GetRenameInfo8) {
 }
 
 TEST_F(VbrMoMgrTest, GetRenameInfo9) {
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE ,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE , kDalRcSuccess);
 
   VbrMoMgr vbr;
   bool no_rename = true;
@@ -2716,19 +3092,23 @@ TEST_F(VbrMoMgrTest, GetRenameInfo9) {
   strcpy((char *)key_vbr->vtn_key.vtn_name, (char *)"vtn1`");
   strcpy((char *)key_vbr->vbridge_name, (char *)"");
   val_rename_vnode_t *val(ZALLOC_TYPE(val_rename_vnode_t));
-  strcpy((char*)val->ctrlr_vtn_name,"vtn1");
+  strcpy((char*)val->ctrlr_vtn_name, "vtn1");
   strcpy((char*)val->ctrlr_vnode_name, "");
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::UPDATE_RECORD,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::UPDATE_RECORD, kDalRcSuccess);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, val);
   DalDmlIntf *dmi(getDalDmlIntf());
 
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr, key_vbr, config_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key_vbr, config_val);
 
   key_vbr_t *key_vbr1(UT_CLONE(key_vbr_t, key_vbr));
-  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr,
+  ConfigKeyVal *okey(new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                       key_vbr1));
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.GetRenameInfo(ikey, okey, rename_info, dmi, ctrlr_name, no_rename));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.GetRenameInfo(ikey, okey, rename_info, dmi, ctrlr_name, no_rename));
 
   delete ikey;
   delete okey;
@@ -2738,10 +3118,12 @@ TEST_F(VbrMoMgrTest, GetRenameInfo9) {
 TEST_F(VbrMoMgrTest, IsReferenced1) {
   VbrMoMgr vbr;
   DalDmlIntf *dmi(getDalDmlIntf());
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                                         IpctSt::kIpcStKeyVbr,
                                         NULL, NULL);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vbr.IsReferenced(ikey, UPLL_DT_STATE, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.IsReferenced(ikey, UPLL_DT_STATE, dmi));
 
   delete ikey;
 }
@@ -2750,29 +3132,39 @@ TEST_F(VbrMoMgrTest, IsReferenced2) {
   VbrMoMgr vbr;
   DalDmlIntf *dmi(getDalDmlIntf());
   key_vbr_t *key_vbr(ZALLOC_TYPE(key_vbr_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, NULL);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, NULL);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                                         IpctSt::kIpcStKeyVbr,
                                         key_vbr, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vbr.IsReferenced(ikey, UPLL_DT_STATE, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.IsReferenced(ikey, UPLL_DT_STATE, dmi));
 
   delete ikey;
 }
 
 TEST_F(VbrMoMgrTest, UpdateAuditConfigStatus1) {
   VbrMoMgr vbr;
-  ConfigKeyVal *ikey =NULL;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.UpdateAuditConfigStatus(UNC_CS_APPLIED,uuc::kUpllUcpCreate, ikey));
+  ConfigKeyVal *ikey  = NULL;
+  DalDmlIntf *dmi(getDalDmlIntf());
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.UpdateAuditConfigStatus(UNC_CS_APPLIED,
+                        uuc::kUpllUcpCreate, ikey, dmi));
 }
 
 TEST_F(VbrMoMgrTest, UpdateAuditConfigStatus2) {
   VbrMoMgr vbr;
   val_vbr_t *val(ZALLOC_TYPE(val_vbr_t));
-  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVbr, val);
-
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr, NULL,tmp);
+  ConfigVal *tmp = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.UpdateAuditConfigStatus(UNC_CS_INVALID,uuc::kUpllUcpCreate, ikey));
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, NULL, tmp);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.UpdateAuditConfigStatus(UNC_CS_INVALID,
+     uuc::kUpllUcpCreate, ikey, dmi));
 
   delete ikey;
 }
@@ -2782,15 +3174,19 @@ TEST_F(VbrMoMgrTest, UpdateAuditConfigStatus3) {
   val_vbr_t *val(ZALLOC_TYPE(val_vbr_t));
   val->valid[UPLL_IDX_CONTROLLER_ID_VBR] = UNC_VF_VALID;
   val->valid[UPLL_IDX_DESC_VBR] = UNC_VF_VALID;
-  //val->valid[UPLL_IDX_DHCP_RELAY_ADMIN_STATUS_VRT] = UNC_VF_VALID;
-
-  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVbr, val);
+  // val->valid[UPLL_IDX_DHCP_RELAY_ADMIN_STATUS_VRT] = UNC_VF_VALID;
 
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr, NULL,tmp);
+  ConfigVal *tmp = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.UpdateAuditConfigStatus(UNC_CS_INVALID,uuc::kUpllUcpCreate, ikey));
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, NULL, tmp);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.UpdateAuditConfigStatus(UNC_CS_INVALID,
+     uuc::kUpllUcpCreate, ikey, dmi));
   val_vbr_t *output = reinterpret_cast<val_vbr_t *> (GetVal(ikey));
-  EXPECT_EQ(UNC_CS_INVALID,output->cs_attr[0]);
+  EXPECT_EQ(UNC_CS_INVALID, output->cs_attr[0]);
 
   delete ikey;
 }
@@ -2799,7 +3195,8 @@ TEST_F(VbrMoMgrTest, SwapKeyVal1) {
   VbrMoMgr vbr;
   ConfigKeyVal *key = NULL;
   bool no_rename = false;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.SwapKeyVal(NULL, key, NULL, NULL, no_rename));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.SwapKeyVal(NULL, key, NULL, NULL, no_rename));
 }
 
 TEST_F(VbrMoMgrTest, SwapKeyVal2) {
@@ -2810,8 +3207,10 @@ TEST_F(VbrMoMgrTest, SwapKeyVal2) {
 
   bool no_rename = false;
   ConfigKeyVal *okey = NULL;
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVbr, key_vbr);
-  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vbr.SwapKeyVal(ikey, okey, NULL, NULL, no_rename));
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VTN, IpctSt::kIpcStKeyVbr, key_vbr);
+  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST,
+     vbr.SwapKeyVal(ikey, okey, NULL, NULL, no_rename));
 
   delete ikey;
   delete okey;
@@ -2827,27 +3226,33 @@ TEST_F(VbrMoMgrTest, SwapKeyVal3) {
   ConfigKeyVal *okey = NULL;
   val_rename_vbr *vbr_rename_val = NULL;
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValRenameVbr, vbr_rename_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValRenameVbr, vbr_rename_val);
 
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key_vbr, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vbr.SwapKeyVal(ikey, okey, NULL, NULL, no_rename));
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key_vbr, config_val);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+     vbr.SwapKeyVal(ikey, okey, NULL, NULL, no_rename));
 
   delete ikey;
   delete okey;
 }
 
-TEST_F(VbrMoMgrTest, IsHostAddrAndPrefixLenInUse1){
+TEST_F(VbrMoMgrTest, IsHostAddrAndPrefixLenInUse1) {
   VbrMoMgr vbr;
-  DalDmlIntf *dmi= NULL;
+  DalDmlIntf *dmi =  NULL;
   key_vbr *key(ZALLOC_TYPE(key_vbr));
   val_vbr *val(ZALLOC_TYPE(val_vbr));
   IPC_REQ_RESP_HEADER_DECL(req);
 
   pfc_strlcpy(reinterpret_cast<char *>(key->vtn_key.vtn_name), "vtn_name1",
               sizeof(key->vtn_key.vtn_name));
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *ckv = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr,key, cfgval);
-  EXPECT_EQ(UPLL_RC_SUCCESS,vbr.IsHostAddrAndPrefixLenInUse(ckv,dmi,req));
+  ConfigVal *cfgval = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
+  ConfigKeyVal *ckv = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key, cfgval);
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.IsHostAddrAndPrefixLenInUse(ckv, dmi, req));
 
   delete ckv;
 }
@@ -2866,18 +3271,21 @@ TEST_F(VbrMoMgrTest, SwapKeyVal7) {
   strcpy((char *)vbr_rename_val->new_name, (char*)"hhh");
   vbr_rename_val->valid[UPLL_IDX_NEW_NAME_RVRT] =  UNC_VF_VALID;
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValRenameVbr, vbr_rename_val);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValRenameVbr, vbr_rename_val);
+  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE, kDalRcSuccess);
 
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVrt, key_vbr, config_val);
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.SwapKeyVal(ikey, okey, dmi, (uint8_t *)ctrlr_name, no_rename));
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVrt, key_vbr, config_val);
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.SwapKeyVal(ikey, okey, dmi, (uint8_t *)ctrlr_name, no_rename));
 
   delete ikey;
 }
 
-TEST_F(VbrMoMgrTest, IsHostAddrAndPrefixLenInUse2){
+TEST_F(VbrMoMgrTest, IsHostAddrAndPrefixLenInUse2) {
   VbrMoMgr vbr;
-  DalDmlIntf *dmi= NULL;
+  DalDmlIntf *dmi =  NULL;
   key_vbr *key(ZALLOC_TYPE(key_vbr));
   strcpy((char *)key->vtn_key.vtn_name, (char *)"vtn1");
   strcpy((char *)key->vbridge_name, (char *)"vbridge1");
@@ -2887,37 +3295,45 @@ TEST_F(VbrMoMgrTest, IsHostAddrAndPrefixLenInUse2){
   val->valid[UPLL_IDX_HOST_ADDR_PREFIXLEN_VBR] = UNC_VF_INVALID;
 
   IPC_REQ_RESP_HEADER_DECL(req);
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *ckv = new ConfigKeyVal(UNC_KT_VBRIDGE,IpctSt::kIpcStKeyVbr,key, cfgval);
-  EXPECT_EQ(UPLL_RC_SUCCESS,vbr.IsHostAddrAndPrefixLenInUse(ckv,dmi,req));
+  ConfigVal *cfgval = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
+  ConfigKeyVal *ckv = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key, cfgval);
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.IsHostAddrAndPrefixLenInUse(ckv, dmi, req));
 
   delete ckv;
 }
 
-TEST_F(VbrMoMgrTest, CtrlrIdAndDomainIdUpdationCheck2){
+TEST_F(VbrMoMgrTest, CtrlrIdAndDomainIdUpdationCheck2) {
   VbrMoMgr vbr;
   key_vbr *key(ZALLOC_TYPE(key_vbr));
   val_vbr *val(ZALLOC_TYPE(val_vbr));
 
   val->valid[UPLL_IDX_CONTROLLER_ID_VBR] = UNC_VF_INVALID;
   val->valid[UPLL_IDX_DOMAIN_ID_VBR] = UNC_VF_INVALID;
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigVal *cfgval = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
 
   key_vbr *key1(UT_CLONE(key_vbr, key));
   val_vbr *val1(ZALLOC_TYPE(val_vbr));
-  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbr, val1));
-  ConfigKeyVal *ckey(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+  ConfigVal *cfgval1(new ConfigVal(
+    IpctSt::kIpcStValVbr, val1));
+  ConfigKeyVal *ckey(new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                       key1, cfgval1));
-  EXPECT_EQ(UPLL_RC_SUCCESS,vbr.CtrlrIdAndDomainIdUpdationCheck(ikey, ckey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.CtrlrIdAndDomainIdUpdationCheck(ikey, ckey));
 
   delete ikey;
   delete ckey;
 }
 
-TEST_F(VbrMoMgrTest, CtrlrIdAndDomainIdUpdationCheck3){
+TEST_F(VbrMoMgrTest, CtrlrIdAndDomainIdUpdationCheck3) {
   VbrMoMgr vbr;
   key_vbr *key;
   val_vbr *val;
@@ -2925,8 +3341,10 @@ TEST_F(VbrMoMgrTest, CtrlrIdAndDomainIdUpdationCheck3){
 
   val->valid[UPLL_IDX_CONTROLLER_ID_VBR] = UNC_VF_INVALID;
   val->valid[UPLL_IDX_DOMAIN_ID_VBR] = UNC_VF_VALID;
-  ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+  ConfigVal *cfgval = new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE,
                             IpctSt::kIpcStKeyVbr,
                             key, cfgval);
 
@@ -2934,8 +3352,10 @@ TEST_F(VbrMoMgrTest, CtrlrIdAndDomainIdUpdationCheck3){
   val_vbr *val1(ZALLOC_TYPE(val_vbr));
   pfc_strlcpy(reinterpret_cast<char *>(val1->domain_id), "dom1",
               sizeof(val1->domain_id));
-  ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbr, val1));
-  ConfigKeyVal *ckey(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
+  ConfigVal *cfgval1(new ConfigVal(
+    IpctSt::kIpcStValVbr, val1));
+  ConfigKeyVal *ckey(new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr,
                                       key1, cfgval1));
   EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
             vbr.CtrlrIdAndDomainIdUpdationCheck(ikey, ckey));
@@ -2950,13 +3370,16 @@ TEST_F(VbrMoMgrTest, ValVbrAttributeSupportCheck_01) {
   val_vbr *val;
 
   GetKeyValStruct(key, val);
-  unc_keytype_operation_t operation= UNC_OP_CREATE;
+  unc_keytype_operation_t operation =  UNC_OP_CREATE;
   uint8_t attrs[8];
   memset(attrs, 0xff, sizeof(attrs));
   attrs[unc::capa::vbr::kCapDomainId] = 0;
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValVbrAttributeSupportCheck(val,attrs,operation));
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key, config_val);
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+     vbr.ValVbrAttributeSupportCheck(val, attrs, operation));
   delete ikey;
 }
 
@@ -2966,16 +3389,19 @@ TEST_F(VbrMoMgrTest, ValVbrAttributeSupportCheck_02) {
   val_vbr *val;
 
   GetKeyValStruct(key, val);
-  unc_keytype_operation_t operation= UNC_OP_CREATE;
+  unc_keytype_operation_t operation =  UNC_OP_CREATE;
   uint8_t attrs[8];
   memset(attrs, 0xff, sizeof(attrs));
   attrs[unc::capa::vbr::kCapDomainId] = 0;
-  
+
   val->valid[UPLL_IDX_CONTROLLER_ID_VBR] = UNC_VF_INVALID;
   val->valid[UPLL_IDX_DOMAIN_ID_VBR] = UNC_VF_VALID;
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValVbrAttributeSupportCheck(val,attrs,operation));
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key, config_val);
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+     vbr.ValVbrAttributeSupportCheck(val, attrs, operation));
   delete ikey;
 }
 
@@ -2985,14 +3411,17 @@ TEST_F(VbrMoMgrTest, ValVbrAttributeSupportCheck_03) {
   val_vbr *val;
 
   GetKeyValStruct(key, val);
-  unc_keytype_operation_t operation= UNC_OP_CREATE;
+  unc_keytype_operation_t operation =  UNC_OP_CREATE;
   uint8_t attrs[8];
   memset(attrs, 0xff, sizeof(attrs));
   attrs[unc::capa::vbr::kCapDesc] = 0;
   val->valid[UPLL_IDX_DESC_VBR] = UNC_VF_VALID;
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vbr.ValVbrAttributeSupportCheck(val,attrs,operation));
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key, config_val);
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+     vbr.ValVbrAttributeSupportCheck(val, attrs, operation));
   delete ikey;
 }
 
@@ -3007,8 +3436,11 @@ TEST_F(VbrMoMgrTest, ValVbrAttributeSupportCheck_04) {
   uint8_t attrs[8];
   memset(attrs, 0xff, sizeof(attrs));
   attrs[unc::capa::vbr::kCapDesc] = 0;
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbr, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key, config_val);
-  EXPECT_EQ(UPLL_RC_SUCCESS, vbr.ValVbrAttributeSupportCheck(val,attrs,operation));
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVbr, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+    UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key, config_val);
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+     vbr.ValVbrAttributeSupportCheck(val, attrs, operation));
   delete ikey;
 }
diff --git a/coordinator/test/modules/upll/ut/vlanmap_stub.hh b/coordinator/test/modules/upll/ut/vlanmap_stub.hh
new file mode 100644 (file)
index 0000000..6ba035d
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2012-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+#include "vlanmap_momgr.hh"
+#include <stdio.h>
+#include "momgr_impl.hh"
+#include "ipct_st.hh"
+#include "unc/keytype.h"
+#include "dal/dal_odbc_mgr.hh"
+#include "dal/dal_dml_intf.hh"
+#include "tclib_module.hh"
+#include "dal_defines.hh"
+#include "config_mgr.hh"
+
+using namespace unc::upll::kt_momgr;
+
+enum function {
+  ReadConfigDB1,
+};
+
+class VlanmapStub : public VlanMapMoMgr {
+ public:
+  static std::map<function, upll_rc_t> stub_result;
+  upll_rc_t ReadConfigDB(ConfigKeyVal *ikey,
+                         upll_keytype_datatype_t dt_type,
+                         unc_keytype_operation_t op,
+                         DbSubOp dbop,
+                         DalDmlIntf *dmi,
+                         MoMgrTables tbl) {
+    printf("\nInside stub ReadConfigDb1");
+    return stub_result[ReadConfigDB1];
+  }
+  MoManager *GetMoManager(unc_key_type_t kt) {
+
+    std::cout<<"GetMoManger Stub being called\n";
+    return new VlanmapStub();
+  }
+};
+std::map<function, upll_rc_t> VlanmapStub::stub_result;
+
diff --git a/coordinator/test/modules/upll/ut/vlanmap_ut.cc b/coordinator/test/modules/upll/ut/vlanmap_ut.cc
new file mode 100644 (file)
index 0000000..6d74146
--- /dev/null
@@ -0,0 +1,2797 @@
+/*
+ * Copyright (c) 2012-2014 NEC Corporation
+ * All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+
+#include<gtest/gtest.h>
+#include<vlanmap_momgr.hh>
+#include <capa_module_stub.hh>
+#include <config_mgr.hh>
+#include <ctrlr_mgr.hh>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <dal/dal_dml_intf.hh>
+#include <dal/dal_odbc_mgr.hh>
+#include <vlanmap_stub.hh>
+#include "ut_util.hh"
+#define INVALID_LOG_PORT_ID_VALID 0xFF
+
+using ::testing::TestWithParam;
+using ::testing::Values;
+using namespace std;
+using namespace unc::upll::dal;
+using namespace unc::capa;
+using namespace unc::upll::config_momgr;
+using namespace unc::upll::test;
+using namespace unc::upll::kt_momgr;
+using namespace pfc::core;
+using namespace unc::upll;
+using namespace unc::tclib;
+
+class VlanMapTest : public UpllTestEnv {
+};
+
+/* ===================*GetRenameKeyBindInfo*======================== */
+TEST_F(VlanMapTest, TblEqMaintbl) {
+  /*Checking if tbl equals maintabl and returning true */
+  VlanMapMoMgr obj;
+  unc_key_type_t key_type = UNC_KT_VBR_VLANMAP;
+  BindInfo *binfo = NULL;
+  int nattr = 0;
+  MoMgrTables tbl = MAINTBL;
+  EXPECT_TRUE(obj.GetRenameKeyBindInfo(key_type, binfo, nattr, tbl));
+}
+TEST_F(VlanMapTest, TblNotMaintbl) {
+  /*Checking if tbl is other than maintabl and returning true */
+  VlanMapMoMgr obj;
+  unc_key_type_t key_type = UNC_KT_VBR_VLANMAP;
+  BindInfo *binfo = NULL;
+  int nattr = 0;
+  MoMgrTables tbl = CTRLRTBL;
+  EXPECT_FALSE(obj.GetRenameKeyBindInfo(key_type, binfo, nattr, tbl));
+}
+/* =========================*GetValid*================================= */
+TEST_F(VlanMapTest, valNull) {
+  /*Checking if configkeyval is null and returning error */
+  VlanMapMoMgr obj;
+  void *val = NULL;
+  unsigned long indx = 0;
+  uint8_t *valid = NULL;
+  upll_keytype_datatype_t dt_type = UPLL_DT_CANDIDATE;
+  MoMgrTables tbl= MAINTBL;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.GetValid(val, indx, valid, dt_type, tbl));
+}
+TEST_F(VlanMapTest, DbtypeState) {
+  /* Checking if database type is state and returning error */
+  VlanMapMoMgr obj;
+  val_vlan_map *val =ZALLOC_TYPE(val_vlan_map);
+  unsigned long indx = 0;
+  uint8_t *valid = NULL;
+  upll_keytype_datatype_t dt_type = UPLL_DT_STATE;
+  MoMgrTables tbl= MAINTBL;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.GetValid(val, indx, valid, dt_type, tbl));
+}
+TEST_F(VlanMapTest, indx_not_vbridge_vlanmap_Vlanid) {
+  /*Checking if index is not vbridge_vlanmap_Vlanid and returning error */
+  VlanMapMoMgr obj;
+  val_vlan_map *val =ZALLOC_TYPE(val_vlan_map);
+  unsigned long indx =0;
+  uint8_t *valid = NULL;
+  upll_keytype_datatype_t dt_type = UPLL_DT_CANDIDATE;
+  MoMgrTables tbl= MAINTBL;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.GetValid(val, indx, valid, dt_type, tbl));
+}
+TEST_F(VlanMapTest, indx_vbridge_vlanmap_Vlanid) {
+  /*Checking if index is vbridge_vlanmap_Vlanid and returning success */
+  VlanMapMoMgr obj;
+  val_vlan_map *val =ZALLOC_TYPE(val_vlan_map);
+  unsigned long indx = uudst::vbridge_vlanmap::kDbiVlanid;
+  uint8_t *valid = NULL;
+  upll_keytype_datatype_t dt_type = UPLL_DT_CANDIDATE;
+  MoMgrTables tbl= MAINTBL;
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.GetValid(val, indx, valid, dt_type, tbl));
+}
+/* ===========================*UpdateConfigStatus*=========================== */
+TEST_F(VlanMapTest, ikeyvalNull) {
+/*Checking if val is null and returning error */
+  VlanMapMoMgr obj;
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                                  IpctSt::kIpcStValVlanMap);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  ConfigKeyVal *ctrlr_key= NULL;
+  unc_keytype_operation_t op = UNC_OP_CREATE;
+  uint32_t driver_result = 0;
+  ConfigKeyVal *upd_key = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                                  IpctSt::kIpcStKeyVlanMap);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+                    obj.UpdateConfigStatus(ikey,
+     op, driver_result, upd_key, dmi, ctrlr_key));
+}
+TEST_F(VlanMapTest, ikey_val_NotNull) {
+/* Checking if val is not null and returning success when op is create*/
+  VlanMapMoMgr obj;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                          IpctSt::kIpcStKeyVlanMap, NULL, tmp);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  ConfigKeyVal *ctrlr_key= NULL;
+  unc_keytype_operation_t op = UNC_OP_CREATE;
+  uint32_t driver_result = 0;
+  ConfigKeyVal *upd_key = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                           IpctSt::kIpcStKeyVlanMap, NULL, tmp);
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+                      obj.UpdateConfigStatus(ikey,
+     op, driver_result, upd_key, dmi, ctrlr_key));
+}
+TEST_F(VlanMapTest, driverresultZero) {
+/* Check if cs_status is UNC_CS_APPLIED when driver_result is zero and
+                                                          returning success  */
+  VlanMapMoMgr obj;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  ConfigKeyVal *ctrlr_key= NULL;
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                           IpctSt::kIpcStKeyVlanMap, NULL, tmp);
+  unc_keytype_operation_t op = UNC_OP_CREATE;
+  uint32_t driver_result = UPLL_RC_SUCCESS;
+  ConfigKeyVal *upd_key = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                           IpctSt::kIpcStKeyVlanMap, NULL, tmp);
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+                      obj.UpdateConfigStatus(ikey,
+     op, driver_result, upd_key, dmi, ctrlr_key));
+}
+TEST_F(VlanMapTest, driverresultNotZero) {
+/* Check if cs_status is UNC_CS_NOT_APPLIED when driver result is non zero
+                                                        and returning success */
+  VlanMapMoMgr obj;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                           IpctSt::kIpcStKeyVlanMap, NULL, tmp);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  ConfigKeyVal *ctrlr_key= NULL;
+  unc_keytype_operation_t op = UNC_OP_CREATE;
+  uint32_t driver_result = 1;
+  ConfigKeyVal *upd_key = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                           IpctSt::kIpcStKeyVlanMap, NULL, tmp);
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+                      obj.UpdateConfigStatus(ikey,
+     op, driver_result, upd_key, dmi, ctrlr_key));
+}
+TEST_F(VlanMapTest, Op_Neither_Create_Nor_Update) {
+/* Check if op is other than create and update and return error */
+  VlanMapMoMgr obj;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                          IpctSt::kIpcStKeyVlanMap, NULL, tmp);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  ConfigKeyVal *ctrlr_key= NULL;
+  unc_keytype_operation_t op = UNC_OP_READ;
+  uint32_t driver_result = 1;
+  ConfigKeyVal *upd_key = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                           IpctSt::kIpcStKeyVlanMap, NULL, tmp);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+                      obj.UpdateConfigStatus(ikey,
+     op, driver_result, upd_key, dmi, ctrlr_key));
+}
+TEST_F(VlanMapTest, OpCreate) {
+/* Check if op is create and retrun success */
+  VlanMapMoMgr obj;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  ConfigKeyVal *ctrlr_key= NULL;
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                           IpctSt::kIpcStKeyVlanMap, NULL, tmp);
+  unc_keytype_operation_t op = UNC_OP_CREATE;
+  uint32_t driver_result = 1;
+  ConfigKeyVal *upd_key = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                           IpctSt::kIpcStKeyVlanMap, NULL, tmp);
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+                      obj.UpdateConfigStatus(ikey,
+     op, driver_result, upd_key, dmi, ctrlr_key));
+}
+TEST_F(VlanMapTest, OpCreate_valid_UNCVFVALID) {
+/* Check if op is create and valid flag is valid and return success */
+  VlanMapMoMgr obj;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  ConfigKeyVal *ctrlr_key= NULL;
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                           IpctSt::kIpcStKeyVlanMap, NULL, tmp);
+  unc_keytype_operation_t op = UNC_OP_CREATE;
+  uint32_t driver_result = 0;
+  ConfigKeyVal *upd_key = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                           IpctSt::kIpcStKeyVlanMap, NULL, tmp);
+  vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM]= UNC_VF_VALID;
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+                      obj.UpdateConfigStatus(ikey,
+     op, driver_result, upd_key, dmi, ctrlr_key));
+}
+TEST_F(VlanMapTest,
+                               OpCreate_updkeyNotNull_valid_UNCVFNOTSUPPORTED) {
+/* Check if op is create and valid flag is not supported and return success */
+  VlanMapMoMgr obj;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  ConfigKeyVal *ctrlr_key= NULL;
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                           IpctSt::kIpcStKeyVlanMap, NULL, tmp);
+  unc_keytype_operation_t op = UNC_OP_CREATE;
+  uint32_t driver_result = 0;
+  ConfigKeyVal *upd_key = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                           IpctSt::kIpcStKeyVlanMap, NULL, tmp);
+  vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM]= UNC_VF_NOT_SUPPORTED;
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+                      obj.UpdateConfigStatus(ikey,
+     op, driver_result, upd_key, dmi, ctrlr_key));
+}
+#if 0   // NUll checks to be provided for test case to pass
+TEST_F(VlanMapTest, OpUpdate_updkeyNull) {
+/* Checking if upd_key is null (not to be null) */
+  VlanMapMoMgr obj;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  ConfigKeyVal *ctrlr_key= NULL;
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                           IpctSt::kIpcStKeyVlanMap, NULL, tmp);
+  unc_keytype_operation_t op = UNC_OP_UPDATE;
+  uint32_t driver_result = 0;
+  ConfigKeyVal *upd_key = NULL;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+                     obj.UpdateConfigStatus(ikey,
+     op, driver_result, upd_key, dmi, ctrlr_key));
+}
+#endif
+TEST_F(VlanMapTest, OpUpdate_valid_UNCVFVALID) {
+/* Check if op is update and valid flag is valid and return success */
+  VlanMapMoMgr obj;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  ConfigKeyVal *ctrlr_key= NULL;
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                           IpctSt::kIpcStKeyVlanMap, NULL, tmp);
+  unc_keytype_operation_t op = UNC_OP_UPDATE;
+  uint32_t driver_result = 0;
+  ConfigKeyVal *upd_key = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                           IpctSt::kIpcStKeyVlanMap, NULL, tmp);
+  vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM]= UNC_VF_VALID;
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+                      obj.UpdateConfigStatus(ikey,
+     op, driver_result, upd_key, dmi, ctrlr_key));
+}
+
+TEST_F(VlanMapTest,
+                               OpUpdate_updkeyNotNull_valid_UNCVFNOTSUPPORTED) {
+/* Check if op is update and valid flag is not supported and return success */
+  VlanMapMoMgr obj;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                           IpctSt::kIpcStKeyVlanMap, NULL, tmp);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  ConfigKeyVal *ctrlr_key= NULL;
+  unc_keytype_operation_t op = UNC_OP_UPDATE;
+  uint32_t driver_result = 0;
+  ConfigKeyVal *upd_key = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                           IpctSt::kIpcStKeyVlanMap, NULL, tmp);
+  vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM]= UNC_VF_NOT_SUPPORTED;
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+                      obj.UpdateConfigStatus(ikey,
+     op, driver_result, upd_key, dmi, ctrlr_key));
+}
+TEST_F(VlanMapTest, ctrlr_key) {
+// Test case checking by changing default value for ctrlr key
+  VlanMapMoMgr obj;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                       IpctSt::kIpcStKeyVlanMap, NULL, tmp);
+  unc_keytype_operation_t op = UNC_OP_UPDATE;
+  DalDmlIntf *dmi(getDalDmlIntf());
+  uint32_t driver_result = 0;
+  ConfigKeyVal *upd_key = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                         IpctSt::kIpcStKeyVlanMap, NULL, tmp);
+  ConfigKeyVal *ctrlr_key = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                         IpctSt::kIpcStKeyVlanMap, NULL, tmp);
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+           obj.UpdateConfigStatus(ikey,
+     op, driver_result, upd_key, dmi, ctrlr_key));
+}
+/* ==========================*UpdateAuditConfigStatus*======================= */
+TEST_F(VlanMapTest, val_ckvrunning_NULL) {
+  /*Returning error code if configkeyval is null which implies val is null */
+  VlanMapMoMgr obj;
+  unc_keytype_configstatus_t cs_status = UNC_CS_INVALID;
+  uuc::UpdateCtrlrPhase phase = uuc::kUpllUcpCreate;
+  ConfigKeyVal *ckv_running = NULL;
+  DalDmlIntf *dmi(getDalDmlIntf());
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+                  obj.UpdateAuditConfigStatus(cs_status,
+     phase, ckv_running, dmi));
+}
+TEST_F(VlanMapTest, val_NotNul) {
+/*Returning success if configkeyval is not null */
+  VlanMapMoMgr obj;
+  unc_keytype_configstatus_t cs_status = UNC_CS_INVALID;
+  uuc::UpdateCtrlrPhase phase =uuc::kUpllUcpInvalid;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ckv_running = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                          IpctSt::kIpcStKeyVlanMap, NULL, tmp);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+                   obj.UpdateAuditConfigStatus(cs_status,
+     phase, ckv_running, dmi));
+}
+TEST_F(VlanMapTest, val_NotNULL_phaseCreate_csInvalid) {
+/*Checking for phase is create and cs_status is invalid and valid flag is
+                                                 valid and returning success */
+  VlanMapMoMgr obj;
+  unc_keytype_configstatus_t cs_status = UNC_CS_INVALID;
+  uuc::UpdateCtrlrPhase phase = uuc::kUpllUcpCreate;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM]= UNC_VF_VALID;
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ckv_running = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                           IpctSt::kIpcStKeyVlanMap, NULL, tmp);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+                    obj.UpdateAuditConfigStatus(cs_status,
+     phase, ckv_running, dmi));
+}
+
+TEST_F(VlanMapTest,
+                                         val_NotNULL_phaseCreate_csNotInvalid) {
+/*Checking for phase is create and cs_status is other than invalid and valid
+                                          flag is valid and returning success */
+  VlanMapMoMgr obj;
+  unc_keytype_configstatus_t cs_status = UNC_CS_NOT_SUPPORTED;
+  uuc::UpdateCtrlrPhase phase = uuc::kUpllUcpCreate;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM]= UNC_VF_VALID;
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ckv_running = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                          IpctSt::kIpcStKeyVlanMap, NULL, tmp);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+                   obj.UpdateAuditConfigStatus(cs_status,
+     phase, ckv_running, dmi));
+}
+TEST_F(VlanMapTest,
+                                         phaseCreate_csNotInvalid_valdInvalid) {
+/*Checking for phase is create and cs_status is other than invalid and valid
+                               flag is other than valid and returning success */
+  VlanMapMoMgr obj;
+  unc_keytype_configstatus_t cs_status = UNC_CS_NOT_SUPPORTED;
+  uuc::UpdateCtrlrPhase phase = uuc::kUpllUcpCreate;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM]= UNC_VF_INVALID;
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ckv_running = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                          IpctSt::kIpcStKeyVlanMap, NULL, tmp);
+  DalDmlIntf *dmi(getDalDmlIntf());
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+                    obj.UpdateAuditConfigStatus(cs_status,
+     phase, ckv_running, dmi));
+}
+/* =========================*ValidateVlanmapKey*============================= */
+TEST_F(VlanMapTest, Stvlanmapkey) {
+/*Returning success if vlanmapkey is valid */
+  VlanMapMoMgr obj;
+  unc_keytype_operation_t operation = UNC_OP_READ_SIBLING_BEGIN;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                     "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                               "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                              "PORT", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateVlanmapKey(vlanmap_key, operation));
+}
+
+TEST_F(VlanMapTest, StvlanmapkeyNovtnname) {
+  /*Returning cfg_syntax error when vtn_name for valnmapkey is not valid */
+  VlanMapMoMgr obj;
+  unc_keytype_operation_t operation = UNC_OP_READ_SIBLING_BEGIN;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                      "_VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                 "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     obj.ValidateVlanmapKey(vlanmap_key, operation));
+}
+TEST_F(VlanMapTest, StvlanmapkeyNovbridgename) {
+  /*Returning cfg_syntax error when vbridge_name for valnmapkey is not valid */
+  VlanMapMoMgr obj;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  unc_keytype_operation_t operation = UNC_OP_READ_SIBLING_BEGIN;
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                 "_VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                 "PORT", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_FALSE;
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     obj.ValidateVlanmapKey(vlanmap_key, operation));
+}
+TEST_F(VlanMapTest, vlanmapkey_strt_char_invald_logclportid) {
+  /*Returning cfg_syntax error
+     when logical_portid for valnmapkey is not valid */
+  VlanMapMoMgr obj;
+  unc_keytype_operation_t operation = UNC_OP_READ_SIBLING_BEGIN;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                         "", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                 "", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_FALSE;
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     obj.ValidateVlanmapKey(vlanmap_key, operation));
+}
+/*TEST_F(VlanMapTest, StvlanmapkeyNologicalportid) {
+
+  Returning cfg_syntax error when logical_portid for valnmapkey is not valid
+  VlanMapMoMgr obj;
+  unc_keytype_operation_t operation = UNC_OP_READ_SIBLING_BEGIN;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                         "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "vbridge1", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                 "", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_FALSE;
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, obj.ValidateVlanmapKey(vlanmap_key, operation));
+}*/
+TEST_F(VlanMapTest, StvlanmapkeyNULL) {
+/*Returning cfg_syntax error when no key structure */
+  VlanMapMoMgr obj;
+  unc_keytype_operation_t operation = UNC_OP_READ_SIBLING_BEGIN;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     obj.ValidateVlanmapKey(vlanmap_key, operation));
+}
+
+TEST_F(VlanMapTest, StvlanmapKeylvalidlogicalportid) {
+/*Returning cfg_syntax error if logical_port_id for vlanmapkey is
+                                                       not valid name */
+/*checking toupper condition */
+  VlanMapMoMgr obj;
+  unc_keytype_operation_t operation = UNC_OP_CREATE;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRDIGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "pPort", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     obj.ValidateVlanmapKey(vlanmap_key, operation));
+}
+TEST_F(VlanMapTest, Stvlanmapkey_logicalportidvalid_invalid) {
+/*Returning error if vlanmapkey logical portid valid is invalid */
+  VlanMapMoMgr obj;
+  unc_keytype_operation_t operation = UNC_OP_CREATE;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                     "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                               "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                              "PORT", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid = 5;  // random number
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     obj.ValidateVlanmapKey(vlanmap_key, operation));
+}
+
+/*=========================*ValidateVlanmapValue*=========================== */
+TEST_F(VlanMapTest, vlanmapValNull) {
+/* Retrun error generic if vlanmap val is NULL */
+  VlanMapMoMgr obj;
+  val_vlan_map *vlanmap_val = NULL;
+  uint32_t op = UNC_OP_CREATE;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.ValidateVlanmapValue(vlanmap_val, op));
+}
+TEST_F(VlanMapTest, vlanmapVal_Valid) {
+/* Retrun success when vlanmapvalue valid flag is UNC_VF_VALID and
+                                               vlanid is in valid  range */
+  VlanMapMoMgr obj;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+
+  uint32_t op = UNC_OP_CREATE;
+  vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+  vlanmap_val->vlan_id = 44;
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateVlanmapValue(vlanmap_val, op));
+}
+TEST_F(VlanMapTest, vlanmapVal_NotValidvlanid) {
+/* Retrun cfg_syntax error if vlanmapvalue valid flag is UNC_VF_VALID
+                                            and vlanid is not in valid range */
+  VlanMapMoMgr obj;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+
+  uint32_t op = UNC_OP_CREATE;
+  vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+  vlanmap_val->vlan_id = 4096;
+//   vlanmap_val->vlan_id = -4096;  // passes for both negative values and zero
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, obj.ValidateVlanmapValue(vlanmap_val, op));
+}
+
+TEST_F(VlanMapTest, vlanmapVal_validflag_novalue_opcreate) {
+/* Retrun success if vlanmapvalue valid flag is UNC_VF_VALID_NO_VALUE
+                                                      and op is UNC_OP_CREATE */
+  VlanMapMoMgr obj;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+
+  uint32_t op = UNC_OP_CREATE;
+  vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID_NO_VALUE;
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateVlanmapValue(vlanmap_val, op));
+}
+TEST_F(VlanMapTest, vlanmapVal_validflag_novalue_opupdate) {
+/* Retrun success if vlanmapvalue valid flag is UNC_VF_VALID_NO_VALUE
+                                                     and op is UNC_OP_UPDATE */
+  VlanMapMoMgr obj;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+
+  uint32_t op = UNC_OP_UPDATE;
+  vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID_NO_VALUE;
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateVlanmapValue(vlanmap_val, op));
+}
+TEST_F(VlanMapTest, vlanmapVal_validflag_Invalid) {
+/* Retrun success if vlanmapvalue valid flag is other than
+                             UNC_VF_VALID and UNC_VF_VALID_NO_VALUE */
+  VlanMapMoMgr obj;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+
+  uint32_t op = UNC_OP_UPDATE;
+  vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_INVALID;
+  // vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_NOT_SUPPORTED;
+             // passes for not supported also
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateVlanmapValue(vlanmap_val, op));
+}
+TEST_F(VlanMapTest, vlanmapVal_validflag_novalue_opread) {
+/* Retrun success if vlanmapvalue valid flag is UNC_VF_VALID_NO_VALUE
+                             and op is other than UNC_OP_UPDATE or CREATE */
+  VlanMapMoMgr obj;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+
+  uint32_t op = UNC_OP_READ;
+  vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID_NO_VALUE;
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateVlanmapValue(vlanmap_val, op));
+}
+/* ============================*ValidateMessage*============================= */
+TEST_F(VlanMapTest, IPcreqkeyNULL) {
+/* Returning error generic if req is NULL */
+  VlanMapMoMgr obj;
+  ConfigKeyVal *ikey = NULL;
+  IpcReqRespHeader *req = NULL;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.ValidateMessage(req, ikey));
+}
+
+TEST_F(VlanMapTest, ikeystnum_invalidkeyStnum) {
+/*Returning error with no such instance if key struct num  is
+                                               other than kIpcStKeyVbrVlanMap */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
+                                          IpctSt::kIpcStKeyVbrIf, vlanmap_key);
+  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, obj.ValidateMessage(req, ikey));
+}
+
+TEST_F(VlanMapTest, ikeystnum_invalidkeytype) {
+/*Returning error with no such instance if key type is other
+                                                       than UNC_KT_VBR_VLANMAP*/
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
+                                       IpctSt::kIpcStKeyVlanMap, vlanmap_key);
+  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, obj.ValidateMessage(req, ikey));
+}
+TEST_F(VlanMapTest, ikeystnum_validate_vlanmapkey_cfg_err) {
+/*Returning error cfg_syntax if valnmapkey is not valid*/
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key =ZALLOC_TYPE(key_vlan_map);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                         IpctSt::kIpcStKeyVlanMap, vlanmap_key);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                       "_VTN", kMaxLenVtnName);
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, obj.ValidateMessage(req, ikey));
+}
+TEST_F(VlanMapTest, opCreate_dtCandidate_cfgval_not_vlanmap) {
+/*Returning error cfg_syntax if val struct is not vlanmap*/
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVbr, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                    IpctSt::kIpcStKeyVlanMap, vlanmap_key, tmp);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_CREATE;
+  req->datatype = UPLL_DT_CANDIDATE;
+  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, obj.ValidateMessage(req, ikey));
+}
+TEST_F(VlanMapTest, valSt_null_opCreate_dtCandidate) {
+/*Returning error cfg_syntax if vlammap val struct is NULL*/
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, NULL);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                   IpctSt::kIpcStKeyVlanMap, vlanmap_key, tmp);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_CREATE;
+  req->datatype = UPLL_DT_CANDIDATE;
+  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, obj.ValidateMessage(req, ikey));
+}
+TEST_F(VlanMapTest, valSt_NotValid_opCreate_dtCandidate) {
+/*Returning error no such instance if val structure is other than vlanmap */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
+                                         IpctSt::kIpcStKeyVlanMap, vlanmap_key);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, obj.ValidateMessage(req, ikey));
+}
+TEST_F(VlanMapTest, validatevlanmapvalue_error) {
+/*Returning error cfg syntax if vlammapvalue is not valid */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                 IpctSt::kIpcStKeyVlanMap, vlanmap_key, tmp);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_CREATE;
+  req->datatype = UPLL_DT_CANDIDATE;
+  vlanmap_val->vlan_id = 4096;  // out of range
+  vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+  /*validate
+       vlanmap value */
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, obj.ValidateMessage(req, ikey));
+}
+TEST_F(VlanMapTest, valSt_Notnull_op_create_dt_candidate) {
+/*Returning success if vlammapvalue is valid for op create and dt candidate*/
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                IpctSt::kIpcStKeyVlanMap, vlanmap_key, tmp);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                      "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                              "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_CREATE;
+  req->datatype = UPLL_DT_CANDIDATE;
+  vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID_NO_VALUE;
+    /*validate
+       vlanmap value */
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateMessage(req, ikey));
+}
+TEST_F(VlanMapTest, valSt_Notnull_op_update_dt_candidate) {
+/*Returning success if vlammapvalue is valid for op update and dt candidate*/
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                 IpctSt::kIpcStKeyVlanMap, vlanmap_key, tmp);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_UPDATE;
+  req->datatype = UPLL_DT_CANDIDATE;
+  vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID_NO_VALUE;
+  /* validate
+                                                                vlanmap value */
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateMessage(req, ikey));
+}
+TEST_F(VlanMapTest, valSt_Notnull_op_update_dt_others) {
+/*Returning error no such instance if vlammapvalue is valid for op
+                                 update and dt other than candidate*/
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                 IpctSt::kIpcStKeyVlanMap, vlanmap_key, tmp);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_UPDATE;
+  req->datatype = UPLL_DT_RUNNING;
+  vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+  /* validate
+                                                                vlanmap value */
+  EXPECT_EQ(UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT,
+     obj.ValidateMessage(req, ikey));
+}
+TEST_F(VlanMapTest, Op_read_Dt_Candidate_Opt1_invalid) {
+/*Returning error invalid option1 if req->option1 if other than NORMAL
+                                                  for op Read and Dt candidate*/
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                        IpctSt::kIpcStKeyVlanMap, vlanmap_key);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_READ;
+  req->datatype = UPLL_DT_CANDIDATE;
+  req->option1 = UNC_OPT1_DETAIL;
+  EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION1, obj.ValidateMessage(req, ikey));
+}
+TEST_F(VlanMapTest, Op_read_Dt_Candidate_Opt2_invalid) {
+/*Returning error invalid option2 if vlammapvalue is option2 is other
+                                       than None for op Read and Dt candidate */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                        IpctSt::kIpcStKeyVlanMap, vlanmap_key);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_READ;
+  req->datatype = UPLL_DT_CANDIDATE;
+  req->option1 = UNC_OPT1_NORMAL;
+  req->option2 = UNC_OPT2_IP_ROUTE;
+  EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION2, obj.ValidateMessage(req, ikey));
+}
+
+TEST_F(VlanMapTest, Op_read_Dt_Candidate_Opt1_Opt2_valid) {
+/*Returning Success if option1 and option2 are valid  for op Read and
+                                                              Dt candidate */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                              IpctSt::kIpcStKeyVlanMap, vlanmap_key, tmp);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_READ;
+  req->datatype = UPLL_DT_CANDIDATE;
+  req->option1 = UNC_OPT1_NORMAL;
+  req->option2 = UNC_OPT2_NONE;
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateMessage(req, ikey));
+}
+TEST_F(VlanMapTest, Op_read_candidate_validOpts_invalid_valSt) {
+/* Returning error if option1 and option2 are valid but val struct is invalid
+                                             for op Read and  Dt candidate */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVbr, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                  IpctSt::kIpcStKeyVlanMap, vlanmap_key, tmp);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_READ;
+  req->datatype = UPLL_DT_CANDIDATE;
+  req->option1 = UNC_OPT1_NORMAL;
+  req->option2 = UNC_OPT2_NONE;
+  EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, obj.ValidateMessage(req, ikey));
+}
+TEST_F(VlanMapTest, Op_read_candidate_validOpts_Val_Null) {
+/* Returning success if option1 and option2 are valid but val is null
+                                             for op Read and  Dt candidate */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, NULL);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                  IpctSt::kIpcStKeyVlanMap, vlanmap_key, tmp);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_READ;
+  req->datatype = UPLL_DT_CANDIDATE;
+  req->option1 = UNC_OPT1_NORMAL;
+  req->option2 = UNC_OPT2_NONE;
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateMessage(req, ikey));
+}
+TEST_F(VlanMapTest, Op_read_Dt_candidate_validateval_error) {
+/* Returning error if option1 and option2 are valid but validate  val error
+                                             for op Read and  Dt candidate */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                  IpctSt::kIpcStKeyVlanMap, vlanmap_key, tmp);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  vlanmap_val->vlan_id = 4096;  // out of range
+  vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+ /*validate
+                                                                vlanmap value */
+  req->operation = UNC_OP_READ;
+  req->datatype = UPLL_DT_CANDIDATE;
+  req->option1 = UNC_OPT1_NORMAL;
+  req->option2 = UNC_OPT2_NONE;
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, obj.ValidateMessage(req, ikey));
+}
+TEST_F(VlanMapTest, OpRead_Dt_Invalid) {
+/* Returning error if option1 and option2 are valid
+                                        for op read and  Dt invalid */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                  IpctSt::kIpcStKeyVlanMap, vlanmap_key, tmp);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_READ;
+  req->datatype = UPLL_DT_INVALID;
+  EXPECT_EQ(UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT,
+     obj.ValidateMessage(req, ikey));
+}
+TEST_F(VlanMapTest, Op_ReadNext_DtInvalid) {
+/* Returning error if option1 and option2 are valid
+                                        for op read_Next and  Dt invalid */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                  IpctSt::kIpcStKeyVlanMap, vlanmap_key, tmp);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_READ_NEXT;
+  req->datatype = UPLL_DT_INVALID;
+  EXPECT_EQ(UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT,
+     obj.ValidateMessage(req, ikey));
+}
+TEST_F(VlanMapTest, Op_ReadSibling_Dt_Candidate_Opt1_invalid) {
+/*Returning error invalid option1 if req->option1 if other than NORMAL for
+                                             op ReadSibling and Dt candidate */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                        IpctSt::kIpcStKeyVlanMap, vlanmap_key);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_READ_SIBLING;
+  req->datatype = UPLL_DT_CANDIDATE;
+  req->option1 = UNC_OPT1_DETAIL;
+  EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION1, obj.ValidateMessage(req, ikey));
+}
+TEST_F(VlanMapTest, Op_ReadSibling_Dt_Candidate_Opt2_invalid) {
+/*Returning error invalid option2 if option2 is invalid for op ReadSibling
+                                                            and Dt candidate */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                        IpctSt::kIpcStKeyVlanMap, vlanmap_key);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_READ_SIBLING;
+  req->datatype = UPLL_DT_CANDIDATE;
+  req->option1 = UNC_OPT1_NORMAL;
+  req->option2 = UNC_OPT2_IP_ROUTE;
+  EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION2, obj.ValidateMessage(req, ikey));
+}
+
+TEST_F(VlanMapTest, Op_ReadSibling_Dt_Candidate_Opt1_Opt2_valid) {
+/*Returning Success if option1 and option2 are valid for op ReadSibling
+                                                             and Dt candidate */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                             IpctSt::kIpcStKeyVlanMap, vlanmap_key, tmp);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_READ_SIBLING;
+  req->datatype = UPLL_DT_CANDIDATE;
+  req->option1 = UNC_OPT1_NORMAL;
+  req->option2 = UNC_OPT2_NONE;
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateMessage(req, ikey));
+}
+TEST_F(VlanMapTest,
+                               Op_ReadSiblingBegin_Dt_Candidate_Opt1_invalid) {
+/*Returning error invalid option1 if req->option1 if other than NORMAL for
+                                         op ReadSiblingBegin and Dt candidate */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                  IpctSt::kIpcStKeyVlanMap, vlanmap_key, NULL);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_READ_SIBLING_BEGIN;
+  req->datatype = UPLL_DT_CANDIDATE;
+  req->option1 = UNC_OPT1_DETAIL;
+  EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION1, obj.ValidateMessage(req, ikey));
+}
+TEST_F(VlanMapTest,
+                                Op_ReadSiblingBegin_Dt_Candidate_Opt2_invalid) {
+/*Returning error invalid option2 if option2 is invalid for op ReadSiblingBegin
+                                                             and Dt candidate */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                        IpctSt::kIpcStKeyVlanMap, vlanmap_key);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_READ_SIBLING_BEGIN;
+  req->datatype = UPLL_DT_CANDIDATE;
+  req->option1 = UNC_OPT1_NORMAL;
+  req->option2 = UNC_OPT2_IP_ROUTE;
+  EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION2, obj.ValidateMessage(req, ikey));
+}
+
+TEST_F(VlanMapTest,
+                             Op_ReadSiblingBegin_Dt_Candidate_Opt1_Opt2_valid) {
+/*Returning Success if option1 and option2 are valid for op ReadSiblingBegin
+                                                             and Dt candidate */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                    IpctSt::kIpcStKeyVlanMap, vlanmap_key, tmp);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_READ_SIBLING_BEGIN;
+  req->datatype = UPLL_DT_CANDIDATE;
+  req->option1 = UNC_OPT1_NORMAL;
+  req->option2 = UNC_OPT2_NONE;
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateMessage(req, ikey));
+}
+TEST_F(VlanMapTest,
+                              Op_ReadSiblingCount_Dt_Candidate_Opt1_invalid) {
+/*Returning error invalid option1 if req->option1 if other than NORMAL
+                                    for op ReadSiblingCount and Dt candidate */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                        IpctSt::kIpcStKeyVlanMap, vlanmap_key);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_READ_SIBLING_COUNT;
+  req->datatype = UPLL_DT_CANDIDATE;
+  req->option1 = UNC_OPT1_DETAIL;
+  EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION1, obj.ValidateMessage(req, ikey));
+}
+TEST_F(VlanMapTest,
+                                Op_ReadSiblingCount_Dt_Candidate_Opt2_invalid) {
+/*Returning error invalid option2 if option2 is invalid for op
+                                            ReadSiblingCount and Dt candidate */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                        IpctSt::kIpcStKeyVlanMap, vlanmap_key);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_READ_SIBLING_COUNT;
+  req->datatype = UPLL_DT_CANDIDATE;
+  req->option1 = UNC_OPT1_NORMAL;
+  req->option2 = UNC_OPT2_IP_ROUTE;
+  EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION2, obj.ValidateMessage(req, ikey));
+}
+TEST_F(VlanMapTest,
+                           Op_ReadSiblingCount_Dt_Candidate_Opt1_Opt2_valid) {
+/*Returning Success if option1 and option2 are valid for op ReadSiblingCount
+                                                           and Dt candidate */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                   IpctSt::kIpcStKeyVlanMap, vlanmap_key, tmp);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_READ_SIBLING_COUNT;
+  req->datatype = UPLL_DT_CANDIDATE;
+  req->option1 = UNC_OPT1_NORMAL;
+  req->option2 = UNC_OPT2_NONE;
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateMessage(req, ikey));
+}
+TEST_F(VlanMapTest, Op_ReadSiblingCount_Dt_Running_Opt1_invalid) {
+/*Returning error invalid option1 if req->option1 if other than NORMAL for
+                                           op ReadSiblingCount and Dt running */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                        IpctSt::kIpcStKeyVlanMap, vlanmap_key);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_READ_SIBLING_COUNT;
+  req->datatype = UPLL_DT_RUNNING;
+  req->option1 = UNC_OPT1_DETAIL;
+  EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION1, obj.ValidateMessage(req, ikey));
+}
+TEST_F(VlanMapTest, Op_ReadSiblingCount_Dt_Running_Opt2_invalid) {
+/*Returning error invalid option2 if option2 is invalid for op
+                                              ReadSiblingCount and Dt Running */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                        IpctSt::kIpcStKeyVlanMap, vlanmap_key);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_READ_SIBLING_COUNT;
+  req->datatype = UPLL_DT_RUNNING;
+  req->option1 = UNC_OPT1_NORMAL;
+  req->option2 = UNC_OPT2_IP_ROUTE;
+  EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION2, obj.ValidateMessage(req, ikey));
+}
+
+TEST_F(VlanMapTest,
+                               Op_ReadSiblingCount_Dt_Running_Opt1_Opt2_valid) {
+/*Returning Success if option1 and option2 are valid for op ReadSiblingCount
+                                                               and Dt Running */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                   IpctSt::kIpcStKeyVlanMap, vlanmap_key, tmp);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_READ_SIBLING_COUNT;
+  req->datatype = UPLL_DT_RUNNING;
+  req->option1 = UNC_OPT1_NORMAL;
+  req->option2 = UNC_OPT2_NONE;
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateMessage(req, ikey));
+}
+TEST_F(VlanMapTest, Op_ReadSiblingCount_Dt_StartUp_Opt1_invalid) {
+/*Returning error invalid option1 if req->option1 if other than NORMAL for
+                                         op ReadSiblingCount and Dt startup */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                        IpctSt::kIpcStKeyVlanMap, vlanmap_key);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_READ_SIBLING_COUNT;
+  req->datatype = UPLL_DT_STARTUP;
+  req->option1 = UNC_OPT1_DETAIL;
+  EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION1, obj.ValidateMessage(req, ikey));
+}
+TEST_F(VlanMapTest, Op_ReadSiblingCount_Dt_StartUp_Opt2_invalid) {
+/*Returning error invalid option2 if option2 is invalid for op
+                                              ReadSiblingCount and Dt Startup */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                        IpctSt::kIpcStKeyVlanMap, vlanmap_key);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_READ_SIBLING_COUNT;
+  req->datatype = UPLL_DT_STARTUP;
+  req->option1 = UNC_OPT1_NORMAL;
+  req->option2 = UNC_OPT2_IP_ROUTE;
+  EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION2, obj.ValidateMessage(req, ikey));
+}
+TEST_F(VlanMapTest,
+                               Op_ReadSiblingCount_Dt_Startup_Opt1_Opt2_valid) {
+/*Returning Success if option1 and option2 are valid for op ReadSiblingCount
+                                                             and Dt StartUP */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                   IpctSt::kIpcStKeyVlanMap, vlanmap_key, tmp);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_READ_SIBLING_COUNT;
+  req->datatype = UPLL_DT_STARTUP;
+  req->option1 = UNC_OPT1_NORMAL;
+  req->option2 = UNC_OPT2_NONE;
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateMessage(req, ikey));
+}
+TEST_F(VlanMapTest, Op_ReadSiblingCount_Dt_State_Opt1_invalid) {
+/*Returning error invalid option1 if req->option1 if other than NORMAL
+                                        for op ReadSiblingCount and Dt state */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                        IpctSt::kIpcStKeyVlanMap, vlanmap_key);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_READ_SIBLING_COUNT;
+  req->datatype = UPLL_DT_STATE;
+  req->option1 = UNC_OPT1_DETAIL;
+  EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION1, obj.ValidateMessage(req, ikey));
+}
+TEST_F(VlanMapTest, Op_ReadSiblingCount_Dt_State_Opt2_invalid) {
+/*Returning error invalid option2 if option2 is invalid for op
+                                              ReadSiblingCount and Dt State */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                         IpctSt::kIpcStKeyVlanMap, vlanmap_key);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_READ_SIBLING_COUNT;
+  req->datatype = UPLL_DT_STATE;
+  req->option1 = UNC_OPT1_NORMAL;
+  req->option2 = UNC_OPT2_IP_ROUTE;
+  EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION2, obj.ValidateMessage(req, ikey));
+}
+
+TEST_F(VlanMapTest,
+                                 Op_ReadSiblingCount_Dt_State_Opt1_Opt2_valid) {
+/*Returning Success if option1 and option2 are valid for op ReadSiblingCount
+                                                                 and Dt State */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                   IpctSt::kIpcStKeyVlanMap, vlanmap_key, tmp);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_READ_SIBLING_COUNT;
+  req->datatype = UPLL_DT_STATE;
+  req->option1 = UNC_OPT1_NORMAL;
+  req->option2 = UNC_OPT2_NONE;
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateMessage(req, ikey));
+}
+TEST_F(VlanMapTest, Op_ReadNext_Dt_StartUp) {
+/*Returning Success if op is Readnext and Dt Startup */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                IpctSt::kIpcStKeyVlanMap, vlanmap_key, tmp);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_READ_NEXT;
+  req->datatype = UPLL_DT_STARTUP;
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateMessage(req, ikey));
+}
+
+TEST_F(VlanMapTest, Op_ReadBulk_Dt_StartUp) {
+/*Returning Success if op is ReadBulk and Dt Startup */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                   IpctSt::kIpcStKeyVlanMap, vlanmap_key, tmp);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_READ_BULK;
+  req->datatype = UPLL_DT_STARTUP;
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateMessage(req, ikey));
+}
+TEST_F(VlanMapTest, Op_ReadNext_Dt_Candidate) {
+/*Returning Success if op is ReadNext and Dt candidate */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                   IpctSt::kIpcStKeyVlanMap, vlanmap_key, tmp);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_READ_NEXT;
+  req->datatype = UPLL_DT_CANDIDATE;
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateMessage(req, ikey));
+}
+TEST_F(VlanMapTest, Op_ReadBulk_Dt_Candidate) {
+/*Returning Success if op is ReadBulk and Dt candidate */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                IpctSt::kIpcStKeyVlanMap, vlanmap_key, tmp);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_READ_BULK;
+  req->datatype = UPLL_DT_CANDIDATE;
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateMessage(req, ikey));
+}
+TEST_F(VlanMapTest, Op_ReadNext_Dt_Running) {
+/*Returning Success if op is ReadNext and Dt running */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                               IpctSt::kIpcStKeyVlanMap, vlanmap_key, tmp);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_READ_NEXT;
+  req->datatype = UPLL_DT_RUNNING;
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateMessage(req, ikey));
+}
+TEST_F(VlanMapTest, Op_ReadBulk_Dt_Running) {
+/*Returning Success if op is ReadBulk and Dt running */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                    IpctSt::kIpcStKeyVlanMap, vlanmap_key, tmp);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_READ_BULK;
+  req->datatype = UPLL_DT_RUNNING;
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateMessage(req, ikey));
+}
+TEST_F(VlanMapTest, Op_notValid_Dt_invalid) {
+/*Returning error no such instance if op is not valid and Dt is not valid */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                    IpctSt::kIpcStKeyVlanMap, vlanmap_key, tmp);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  req->operation = UNC_OP_CONTROL;
+  req->datatype = UPLL_DT_RUNNING;
+  EXPECT_EQ(UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT,
+     obj.ValidateMessage(req, ikey));
+}
+/* =============================*AllocVal*================================= */
+TEST_F(VlanMapTest, configval_NotNull) {
+/*Returning error generic if configval is not null */
+  VlanMapMoMgr obj;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  ConfigVal *ck_val = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  upll_keytype_datatype_t dt_type = UPLL_DT_CANDIDATE;
+  MoMgrTables tbl = MAINTBL;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.AllocVal(ck_val, dt_type, tbl));
+}
+TEST_F(VlanMapTest, configval_Null_alloc_val_tbl_Maintbl) {
+/*Returning success after allocating val if configval is null  */
+  VlanMapMoMgr obj;
+  ConfigVal *ck_val = NULL;
+  upll_keytype_datatype_t dt_type = UPLL_DT_CANDIDATE;
+  MoMgrTables tbl = MAINTBL;
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.AllocVal(ck_val, dt_type, tbl));
+  EXPECT_EQ(125, ck_val->get_st_num());  // st_num 39 =>kIpcStValVlanMap
+}
+
+TEST_F(VlanMapTest, configval_Null_alloc_val_tbl_NotMaintbl) {
+/* Returning success allocating val to zero if table is not maintable  */
+  VlanMapMoMgr obj;
+  ConfigVal *ck_val = NULL;
+  upll_keytype_datatype_t dt_type = UPLL_DT_CANDIDATE;
+  MoMgrTables tbl = RENAMETBL;
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.AllocVal(ck_val, dt_type, tbl));
+}
+
+/* ==========================*IsValidKey*=================================== */
+TEST_F(VlanMapTest, Index_Valid_Vtnname) {
+/*Returning true if key->vtnname is valid */
+  VlanMapMoMgr obj;
+  uint64_t index = uudst::vbridge_vlanmap::kDbiVtnName;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  EXPECT_TRUE(obj.IsValidKey(vlanmap_key, index));
+}
+TEST_F(VlanMapTest, Index_Invalid_Vtnname) {
+/*Returning false if key->vtnname is not valid  */
+  VlanMapMoMgr obj;
+  uint64_t index = uudst::vbridge_vlanmap::kDbiVtnName;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                       "_VTN", kMaxLenVtnName);
+  EXPECT_FALSE(obj.IsValidKey(vlanmap_key, index));
+}
+
+TEST_F(VlanMapTest, Index_Valid_Vbridgename) {
+/*Returning true if key->vbridgename is valid  */
+  VlanMapMoMgr obj;
+  uint64_t index = uudst::vbridge_vlanmap::kDbiVbrName;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                   "VBRIDGE", kMaxLenVnodeName);
+  EXPECT_TRUE(obj.IsValidKey(vlanmap_key, index));
+}
+TEST_F(VlanMapTest, Index_Invalid_Vbridgename) {
+/*Returning false if key->vbridgename is not valid */
+  VlanMapMoMgr obj;
+  uint64_t index =  uudst::vbridge_vlanmap::kDbiVbrName;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                 "_VBRIDGE", kMaxLenVnodeName);
+  EXPECT_FALSE(obj.IsValidKey(vlanmap_key, index));
+}
+TEST_F(VlanMapTest, Index_Valid_LogicalPortID) {
+/*Returning true if  key->logicalportid is valid*/
+  VlanMapMoMgr obj;
+  uint64_t index =  uudst::vbridge_vlanmap::kDbiLogicalPortId;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                 "PORT", kMaxLenLogicalPortId);
+//  vlanmap_key->logical_port_id_valid =PFC_TRUE;   // validate vlanmap key
+  EXPECT_TRUE(obj.IsValidKey(vlanmap_key, index));
+}
+TEST_F(VlanMapTest, Index_Invalid_LogicalPortId) {
+/*Returning false if key->logicalportid is not valid */
+  VlanMapMoMgr obj;
+  uint64_t index =   uudst::vbridge_vlanmap::kDbiLogicalPortId;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                 "_PORT", kMaxLenLogicalPortId);
+  EXPECT_TRUE(obj.IsValidKey(vlanmap_key, index));
+}
+TEST_F(VlanMapTest, Index_Valid_LogicalPortIdValid) {
+/*Returning true if  key->logicalportidvalid is valid*/
+  VlanMapMoMgr obj;
+  uint64_t index =  uudst::vbridge_vlanmap::kDbiLogicalPortIdValid;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  vlanmap_key->logical_port_id_valid = PFC_TRUE;
+  EXPECT_TRUE(obj.IsValidKey(vlanmap_key, index));
+}
+TEST_F(VlanMapTest, Index_Invalid_LogicalPortIdValid) {
+/*Returning false if key->logicalportidvalid is not valid */
+  VlanMapMoMgr obj;
+  uint64_t index =   uudst::vbridge_vlanmap::kDbiLogicalPortIdValid;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  vlanmap_key->logical_port_id_valid =5;   // random number
+  EXPECT_FALSE(obj.IsValidKey(vlanmap_key, index));
+}
+
+TEST_F(VlanMapTest, Index_NotValid) {
+/*Returning true if index is not valid */
+  VlanMapMoMgr obj;
+  uint64_t index = 10;   // random number
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  EXPECT_TRUE(obj.IsValidKey(vlanmap_key, index));
+}
+/*========================*GetChildConfigKey*================================ */
+
+TEST_F(VlanMapTest, Parentkey_Null) {
+/*Returning success after allocationg new configkeyval if ckv
+                                                      parentkey is null  */
+  VlanMapMoMgr obj;
+  ConfigKeyVal *okey = NULL;
+  ConfigKeyVal *parent_key = NULL;
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.GetChildConfigKey(okey, parent_key));
+  key_vlan_map *output_vlmkey =reinterpret_cast<key_vlan_map *>
+                                                            (okey->get_key());
+/* check  has all set to 0 (memset to 0 being done in code) */
+  EXPECT_STREQ("",
+    reinterpret_cast<char *>(output_vlmkey->
+                                                    vbr_key.vtn_key.vtn_name));
+  EXPECT_STREQ("",
+    reinterpret_cast<char *>(output_vlmkey->
+                                                    vbr_key.vbridge_name));
+  EXPECT_STREQ("",
+    reinterpret_cast<char *>(output_vlmkey->logical_port_id));
+  EXPECT_EQ(INVALID_LOG_PORT_ID_VALID, output_vlmkey->logical_port_id_valid);
+}
+TEST_F(VlanMapTest, okey_NULL_parentkey_keyStructNULL) {
+/*Return error generic if parentkey is not null but key struct is null */
+  VlanMapMoMgr obj;
+  ConfigKeyVal *okey = NULL;
+  ConfigKeyVal *parent_key = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                              IpctSt::kIpcStKeyVlanMap);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.GetChildConfigKey(okey, parent_key));
+}
+TEST_F(VlanMapTest, okey_NULL_parentkey_keystructNotNULL) {
+/* Return success if parentkey key struct is not null */
+  VlanMapMoMgr obj;
+  ConfigKeyVal *okey = NULL;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  ConfigKeyVal *parent_key = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                         IpctSt::kIpcStKeyVlanMap, vlanmap_key);
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.GetChildConfigKey(okey, parent_key));
+}
+TEST_F(VlanMapTest, okey_NULL_pkey_keystvalid_kype_NotVlanmap) {
+/* Return error generic if okey and parentkey key struct are not null and
+                                                  okey keytype is not vlanmap */
+  VlanMapMoMgr obj;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  key_vbr_if *vbr_key = ZALLOC_TYPE(key_vbr_if);
+  ConfigKeyVal *parent_key = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                         IpctSt::kIpcStKeyVlanMap, vlanmap_key);
+  ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VBR_IF,
+                                               IpctSt::kIpcStKeyVbrIf, vbr_key);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.GetChildConfigKey(okey, parent_key));
+}
+TEST_F(VlanMapTest, okey_NULL_pkey_keystvalid_kype_Vlanmap) {
+/* Return success if okey and parentkey key struct are not null and
+                                                  okey keytype is vlanmap */
+  VlanMapMoMgr obj;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  ConfigKeyVal *parent_key = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                         IpctSt::kIpcStKeyVlanMap, vlanmap_key);
+  ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                        IpctSt::kIpcStKeyVlanMap, vlanmap_key);
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.GetChildConfigKey(okey, parent_key));
+}
+
+TEST_F(VlanMapTest,
+                okey_NULL_pkey_keystValid_pkey_ktype_vlanmap_portidvalid_true) {
+/* Return success if okey is null and parent key is valid struct with key type
+                                          vlanmap and logicalportidvalid true */
+  VlanMapMoMgr obj;
+  ConfigKeyVal *okey = NULL;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  ConfigKeyVal *parent_key = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                         IpctSt::kIpcStKeyVlanMap, vlanmap_key);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                         "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                   "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                  "PORT", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid = PFC_TRUE;
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.GetChildConfigKey(okey, parent_key));
+  key_vlan_map *output_vlmkey =
+    reinterpret_cast<key_vlan_map *>
+                                                              (okey->get_key());
+  EXPECT_STREQ("VTN",
+    reinterpret_cast<char *>(output_vlmkey->
+                                                     vbr_key.vtn_key.vtn_name));
+  EXPECT_STREQ("VBRIDGE",
+    reinterpret_cast<char *>(output_vlmkey->
+                                                         vbr_key.vbridge_name));
+  EXPECT_STREQ("PORT",
+    reinterpret_cast<char *>(output_vlmkey->logical_port_id));
+  EXPECT_TRUE(output_vlmkey->logical_port_id_valid);
+}
+TEST_F(VlanMapTest,
+                 okey_NULL_pkey_keystValid_pkey_ktype_vlanmap_portvalid_false) {
+/* Return success if okey is null and parent key is valid struct with key type
+                                         vlanmap and logicalportidvalid false */
+  VlanMapMoMgr obj;
+  ConfigKeyVal *okey = NULL;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  ConfigKeyVal *parent_key = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                         IpctSt::kIpcStKeyVlanMap, vlanmap_key);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                         "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                   "VBRIDGE", kMaxLenVnodeName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                                  "PORT", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid = PFC_FALSE;
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.GetChildConfigKey(okey, parent_key));
+  key_vlan_map *output_vlmkey =
+    reinterpret_cast<key_vlan_map *>
+                                                            (okey->get_key());
+  EXPECT_STREQ("VTN",
+    reinterpret_cast<char *>(output_vlmkey->
+                                                   vbr_key.vtn_key.vtn_name));
+  EXPECT_STREQ("VBRIDGE",
+    reinterpret_cast<char *>(output_vlmkey->
+                                                        vbr_key.vbridge_name));
+/* port is set to '/0' when portidvalid is false */
+  EXPECT_STREQ("",
+    reinterpret_cast<char *>(output_vlmkey->logical_port_id));
+  EXPECT_FALSE(output_vlmkey->logical_port_id_valid);
+}
+
+TEST_F(VlanMapTest,
+                                okey_NULL_pkey_keystValid_pkey_ktype_vbridge) {
+/* Return success if okey is null and parent key is valid struct
+                                                      with key type vbridge*/
+  VlanMapMoMgr obj;
+  ConfigKeyVal *okey = NULL;
+  key_vbr_t *key_vbr = ZALLOC_TYPE(key_vbr_t);
+  ConfigKeyVal *parent_key = new ConfigKeyVal(UNC_KT_VBRIDGE,
+                                                IpctSt::kIpcStKeyVbr, key_vbr);
+  strncpy(reinterpret_cast<char *>(key_vbr->vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(key_vbr->vbridge_name),
+                                                  "VBRIDGE", kMaxLenVnodeName);
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.GetChildConfigKey(okey, parent_key));
+  key_vlan_map *output_vlmkey =(key_vlan_map *)(okey->get_key());
+  EXPECT_STREQ("VTN",
+    reinterpret_cast<char *>(output_vlmkey->
+                                                     vbr_key.vtn_key.vtn_name));
+  EXPECT_STREQ("VBRIDGE",
+    reinterpret_cast<char *>(output_vlmkey->
+                                                         vbr_key.vbridge_name));
+}
+TEST_F(VlanMapTest,
+                                okey_NULL_pkey_keystValid_pkey_ktype_vtn) {
+/* Return success if okey is null and parent key is valid struct
+                                                      with key type vtn*/
+  VlanMapMoMgr obj;
+  ConfigKeyVal *okey = NULL;
+  key_vtn_t *key_vtn = ZALLOC_TYPE(key_vtn_t);
+  ConfigKeyVal *parent_key = new ConfigKeyVal(UNC_KT_VTN,
+                                                IpctSt::kIpcStKeyVtn, key_vtn);
+  strncpy(reinterpret_cast<char *>(key_vtn->vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.GetChildConfigKey(okey, parent_key));
+  key_vlan_map *output_vlmkey =(key_vlan_map *)(okey->get_key());
+  EXPECT_STREQ("VTN",
+    reinterpret_cast<char *>(output_vlmkey->
+                                                     vbr_key.vtn_key.vtn_name));
+}
+/* =========================*GetParentConfigKey*============================= */
+
+TEST_F(VlanMapTest, ikey_NULL) {
+/* Return error generic if ikey is null */
+  VlanMapMoMgr obj;
+  ConfigKeyVal *okey = NULL;
+  ConfigKeyVal *ikey = NULL;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.GetParentConfigKey(okey, ikey));
+}
+
+TEST_F(VlanMapTest, ikey_NotNULL_keyst_Notvbrvlanmap) {
+/* Return error generic if ikey_type is not vbrvlanmap when
+                                                        child key is not null */
+  VlanMapMoMgr obj;
+  ConfigKeyVal *okey = NULL;
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
+                                        IpctSt::kIpcStKeyVbrIf);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.GetParentConfigKey(okey, ikey));
+}
+TEST_F(VlanMapTest, ikey_NotNULL_keyst_vbrvlanmap_pkey_null) {
+/* Return error generic if pkey is null and ikey_type is vbrvlanmap when
+                                                        child key is not null */
+  VlanMapMoMgr obj;
+  ConfigKeyVal *okey = NULL;
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                        IpctSt::kIpcStKeyVlanMap);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.GetParentConfigKey(okey, ikey));
+}
+
+TEST_F(VlanMapTest, ikey_NotNULL_keyst_vbrvlanmap) {
+/* Return success if pkey is not null and ikey_type is vbrvlanmap when
+                                                        child key is not null */
+  VlanMapMoMgr obj;
+  key_vlan_map *vlanmap_key =ZALLOC_TYPE(key_vlan_map);
+  ConfigKeyVal *okey = NULL;
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                     IpctSt::kIpcStKeyVlanMap, vlanmap_key);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                        "VTN", kMaxLenVtnName);
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.GetParentConfigKey(okey, ikey));
+/* check if child key struct is assigned to pkey when key type is vbr_vlanmap */
+  key_vlan_map_t *pkey =
+    reinterpret_cast<key_vlan_map *>(ikey->get_key());
+  EXPECT_STREQ("VTN",
+    reinterpret_cast<char *>(pkey->vbr_key.vtn_key.vtn_name));
+}
+TEST_F(VlanMapTest, ikey_NotNULL_vbrkey_valid) {
+/* Return success after getting parent config key */
+  VlanMapMoMgr obj;
+  key_vlan_map *vlanmap_key =ZALLOC_TYPE(key_vlan_map);
+  ConfigKeyVal *okey = NULL;
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                   IpctSt::kIpcStKeyVlanMap, vlanmap_key, NULL);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                         "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vbridge_name),
+                                                   "VBRIDGE", kMaxLenVnodeName);
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.GetParentConfigKey(okey, ikey));
+/*check if vlanmap key struct is copied to vbr key struct */
+  key_vbr *vbr_key =
+    reinterpret_cast<key_vbr *>(ikey->get_key());
+  EXPECT_STREQ("VTN",
+    reinterpret_cast<char *>(vbr_key->vtn_key.vtn_name));
+  EXPECT_STREQ("VBRIDGE",
+    reinterpret_cast<char *>(vbr_key->vbridge_name));
+  EXPECT_EQ(11, okey->get_key_type());  // parent key is 18-UNC_KT_VBRIDGE
+}
+/*=========================*DupConfigKeyVal*==================================*/
+TEST_F(VlanMapTest, req_Null) {
+/* Return error generic when input configkeyval(req) to be duplicated is null */
+  VlanMapMoMgr obj;
+  ConfigKeyVal *okey = NULL;
+  ConfigKeyVal *req = NULL;
+  MoMgrTables tbl = MAINTBL;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.DupConfigKeyVal(okey, req, tbl));
+}
+TEST_F(VlanMapTest, OkeyNotNull) {
+/* Return error generic when output configkeyval(okey) is not null */
+  VlanMapMoMgr obj;
+  ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr);
+  ConfigKeyVal *req = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                             IpctSt::kIpcStKeyVlanMap);
+  MoMgrTables tbl = MAINTBL;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.DupConfigKeyVal(okey, req, tbl));
+}
+TEST_F(VlanMapTest, req_invalid_keytype) {
+/* Return error generic when input configkeyval(req) is invalid keytype */
+  VlanMapMoMgr obj;
+  ConfigKeyVal *okey = NULL;
+  ConfigKeyVal *req = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr);
+  MoMgrTables tbl = MAINTBL;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.DupConfigKeyVal(okey, req, tbl));
+}
+TEST_F(VlanMapTest, val_struct_Null) {
+/* Return error generic when req val struct is Null */
+  VlanMapMoMgr obj;
+  ConfigKeyVal *okey = NULL;
+  ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcStValVlanMap, NULL);
+  ConfigKeyVal *req = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                   IpctSt::kIpcStKeyVlanMap, NULL, cfg_val);
+  MoMgrTables tbl = MAINTBL;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.DupConfigKeyVal(okey, req, tbl));
+}
+
+TEST_F(VlanMapTest,
+                           req_valid_valNotNull_TblMaintblSuccess_valcheck) {
+/* Return success after duplicating configkey */
+  VlanMapMoMgr obj;
+  ConfigKeyVal *okey = NULL;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *req = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                            IpctSt::kIpcStKeyVlanMap, vlanmap_key, tmp);
+  vlanmap_val->vlan_id = 0;
+  MoMgrTables tbl = MAINTBL;
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.DupConfigKeyVal(okey, req, tbl));
+/* check if val struct of  okey is been duplicated to req */
+  val_vlan_map *output_vlmval = ZALLOC_TYPE(val_vlan_map);
+  EXPECT_EQ(0, output_vlmval->vlan_id);
+}
+TEST_F(VlanMapTest,
+                              req_valid_valNotNull_TblMaintblSuccess_keycheck) {
+/* Return success after duplicating configkey */
+  VlanMapMoMgr obj;
+  ConfigKeyVal *okey = NULL;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *req = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                            IpctSt::kIpcStKeyVlanMap, vlanmap_key, tmp);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                  "VTN", kMaxLenVtnName);
+  MoMgrTables tbl = MAINTBL;
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.DupConfigKeyVal(okey, req, tbl));
+/* check if key struct of okey is been duplicated to req */
+  key_vlan_map *output_vlmkey =
+    reinterpret_cast<key_vlan_map *>
+                                                         (okey->get_key());
+  EXPECT_STREQ("VTN",
+    reinterpret_cast<char *>(output_vlmkey->
+                                                     vbr_key.vtn_key.vtn_name));
+}
+TEST_F(VlanMapTest, req_valid_valNotNull_TblRenametblSuccess) {
+/* Return success after duplicating configkey when table is other than main
+                                                                        table */
+  VlanMapMoMgr obj;
+  ConfigKeyVal *okey = NULL;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *req = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                            IpctSt::kIpcStKeyVlanMap, vlanmap_key, tmp);
+  MoMgrTables tbl = RENAMETBL;
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.DupConfigKeyVal(okey, req, tbl));
+}
+/*==========================*CopyToConfigKey*================================ */
+TEST_F(VlanMapTest, ikeyNull) {
+/* Returning error generic when ikey is null */
+  VlanMapMoMgr obj;
+  ConfigKeyVal *okey = NULL;
+  ConfigKeyVal *ikey = NULL;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.CopyToConfigKey(okey, ikey));
+}
+TEST_F(VlanMapTest, ikey_getkeyNull) {
+/* Returning error generic when ikey->get_key() is null */
+  VlanMapMoMgr obj;
+  ConfigKeyVal *okey = NULL;
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                        IpctSt::kIpcStKeyVlanMap);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.CopyToConfigKey(okey, ikey));
+}
+TEST_F(VlanMapTest, ikeyNotNull_Novtnname) {
+/* Return error when there is no vtn name */
+  VlanMapMoMgr obj;
+  key_rename_vnode_info_t *key_rename = ZALLOC_TYPE(key_rename_vnode_info_t);
+
+  memcpy(&(key_rename->old_unc_vtn_name), "", kMaxLenVtnName);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                      IpctSt::kIpcStKeyVlanMap, key_rename);
+  ConfigKeyVal *okey = NULL;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.CopyToConfigKey(okey, ikey));
+}
+/*TEST_F(VlanMapTest, ikeyNotNull_copyvtnname) {
+  Return success after copytoconfig key is done
+  VlanMapMoMgr obj;
+  key_rename_vnode_info_t *key_rename = ZALLOC_TYPE(key_rename_vnode_info_t);
+
+  memcpy(&(key_rename->old_unc_vtn_name), "VTN", kMaxLenVtnName);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                       IpctSt::kIpcStKeyVlanMap, key_rename);
+  ConfigKeyVal *okey = NULL;
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.CopyToConfigKey(okey, ikey));
+  // check if config key is copied to okey
+  key_vlan_map *output_vlmkey =
+    reinterpret_cast<key_vlan_map *>
+                                                           (okey->get_key());
+  EXPECT_STREQ("VTN",
+    reinterpret_cast<char *>(output_vlmkey->
+                                                  vbr_key.vtn_key.vtn_name));
+}*/
+TEST_F(VlanMapTest, ikeyNotNull_no_vnodename) {
+/* Return error when vnodename is not present */
+  VlanMapMoMgr obj;
+  key_rename_vnode_info_t *key_rename = ZALLOC_TYPE(key_rename_vnode_info_t);
+
+  memcpy(&(key_rename->old_unc_vnode_name), "", kMaxLenVnodeName);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+                                           IpctSt::kIpcStKeyVbr, key_rename);
+  ConfigKeyVal *okey = NULL;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.CopyToConfigKey(okey, ikey));
+}
+
+/*TEST_F(VlanMapTest, ikeyNotNull_copyvnodename) {
+  Return success after copytoconfig key is done
+  VlanMapMoMgr obj;
+  key_rename_vnode_info_t *key_rename = ZALLOC_TYPE(key_rename_vnode_info_t);
+
+//   memcpy(&(key_rename->old_unc_vtn_name), "VTN", kMaxLenVtnName);
+  memcpy(&(key_rename->old_unc_vnode_name), "VBRIDGE", kMaxLenVnodeName);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+                                           IpctSt::kIpcStKeyVbr, key_rename);
+  ConfigKeyVal *okey = NULL;
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.CopyToConfigKey(okey, ikey));
+//  check if config key is copied to okey vnode name
+  key_vlan_map *output_vlmkey =
+    reinterpret_cast<key_vlan_map *>
+                                                           (okey->get_key());
+  EXPECT_STREQ("VBRIDGE",
+    reinterpret_cast<char *>(output_vlmkey->
+                                                      vbr_key.vbridge_name));
+//   EXPECT_STREQ("",
+    reinterpret_cast<char *>(output_vlmkey->
+  //                                                vbr_key.vtn_key.vtn_name));
+}*/
+/*============================*GetControllerId*============================ */
+
+TEST_F(VlanMapTest, Keytype_Notvalid) {
+/* Return Null when keytype is not valid */
+  VlanMapMoMgr obj;
+  ConfigKeyVal *ck_vbr = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                    IpctSt::kIpcStKeyVlanMap);
+  upll_keytype_datatype_t dt_type = UPLL_DT_CANDIDATE;
+  DalDmlIntf *dmi(getDalDmlIntf());
+  EXPECT_STREQ(NULL,
+    reinterpret_cast<char *>
+    (obj.GetControllerId(ck_vbr, dt_type, dmi)));
+}
+TEST_F(VlanMapTest, Keytype_valid_ReadDb_error) {
+/* Return Null when keytype is valid but ReadConfigDb returns error */
+
+  VlanmapStub obj;
+  ConfigKeyVal *ck_vbr = new ConfigKeyVal(UNC_KT_VBRIDGE,
+                                    IpctSt::kIpcStKeyVbr);
+  upll_keytype_datatype_t dt_type = UPLL_DT_CANDIDATE;
+  DalDmlIntf *dmi(getDalDmlIntf());
+  VlanmapStub::stub_result[ReadConfigDB1] = UPLL_RC_ERR_GENERIC;
+  EXPECT_STREQ(NULL,
+    reinterpret_cast<char *>
+    (obj.GetControllerId(ck_vbr, dt_type, dmi)));
+}
+TEST_F(VlanMapTest, Keytype_valid_ReadDb_Success_valNull) {
+/* Return Null when keytype is valid, ReadConfigDb returns Success
+                                                      but val is Null */
+
+  VlanmapStub obj;
+  ConfigKeyVal *ck_vbr = new ConfigKeyVal(UNC_KT_VBRIDGE,
+                                    IpctSt::kIpcStKeyVbr);
+  upll_keytype_datatype_t dt_type = UPLL_DT_CANDIDATE;
+  DalDmlIntf *dmi(getDalDmlIntf());
+  VlanmapStub::stub_result[ReadConfigDB1] = UPLL_RC_SUCCESS;
+  EXPECT_STREQ(NULL,
+    reinterpret_cast<char *>
+    (obj.GetControllerId(ck_vbr, dt_type, dmi)));
+}
+TEST_F(VlanMapTest, Keytype_valid_ReadDb_Success_valNotNull) {
+/* Return controllerid when keytype is valid, ReadconfigDb returns success
+                                                       when val is ot null */
+
+  VlanmapStub obj;
+  val_vbr *vbr_val = ZALLOC_TYPE(val_vbr);
+  ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcStValVbr, vbr_val);
+  ConfigKeyVal *ck_vbr = new ConfigKeyVal(UNC_KT_VBRIDGE,
+                                    IpctSt::kIpcStKeyVbr, NULL, cfg_val);
+  strncpy(reinterpret_cast<char *>(vbr_val->controller_id), "CONTROLLER",
+                                                          kMaxLenCtrlrId);
+  upll_keytype_datatype_t dt_type = UPLL_DT_CANDIDATE;
+  DalDmlIntf *dmi(getDalDmlIntf());
+  VlanmapStub::stub_result[ReadConfigDB1] = UPLL_RC_SUCCESS;
+  EXPECT_STREQ(NULL,
+    reinterpret_cast<char *>
+                 (obj.GetControllerId(ck_vbr, dt_type, dmi)));
+}
+/*====================*ValidateAttribute*=================================== */
+TEST_F(VlanMapTest, iKey_NULL) {
+/* Return error when ikey is null */
+  VlanMapMoMgr obj;
+  ConfigKeyVal *ikey = NULL;
+  DalDmlIntf *dmi(getDalDmlIntf());
+  IPC_REQ_RESP_HEADER_DECL(req);
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, obj.ValidateAttribute(ikey, dmi, req));
+}
+TEST_F(VlanMapTest, iKey_getkeytype_Invalid) {
+/* Return error when jeytype is not vbr_vlanmap */
+  VlanMapMoMgr obj;
+  DalDmlIntf *dmi(getDalDmlIntf());
+  IPC_REQ_RESP_HEADER_DECL(req);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE);
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, obj.ValidateAttribute(ikey, dmi, req));
+}
+TEST_F(VlanMapTest, iKey_val_struct_Null) {
+/* Return error when ikey val is null */
+  VlanMapMoMgr obj;
+  DalDmlIntf *dmi(getDalDmlIntf());
+  IPC_REQ_RESP_HEADER_DECL(req);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                           IpctSt::kIpcStKeyVlanMap);
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, obj.ValidateAttribute(ikey, dmi, req));
+}
+TEST_F(VlanMapTest, iKey_valid_struct_readconfg_success) {
+/* Return success when ikey is not null and valid struct and
+                                        readDb is success for 2 records */
+
+  VlanmapStub obj;
+  DalDmlIntf *dmi(getDalDmlIntf());
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  IPC_REQ_RESP_HEADER_DECL(req);
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                            IpctSt::kIpcStKeyVlanMap, vlanmap_key, tmp);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                  "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                              "PORT", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                  "VTN1", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                              "PORT1", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;
+  VlanmapStub::stub_result[ReadConfigDB1] = UPLL_RC_SUCCESS;
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateAttribute(ikey, dmi, req));
+}
+TEST_F(VlanMapTest, ReadConfigDb_read_error) {
+/* Return success when readconfigdb returns error */
+  VlanmapStub obj;
+  DalDmlIntf *dmi(getDalDmlIntf());
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  IPC_REQ_RESP_HEADER_DECL(req);
+  ConfigVal *tmp = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                            IpctSt::kIpcStKeyVlanMap, vlanmap_key, tmp);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->vbr_key.vtn_key.vtn_name),
+                                                  "VTN", kMaxLenVtnName);
+  strncpy(reinterpret_cast<char *>(vlanmap_key->logical_port_id),
+                                              "PORT", kMaxLenLogicalPortId);
+  vlanmap_key->logical_port_id_valid =PFC_TRUE;
+  VlanmapStub::stub_result[ReadConfigDB1] = UPLL_RC_ERR_NO_SUCH_INSTANCE;
+  EXPECT_EQ(UPLL_RC_SUCCESS, obj.ValidateAttribute(ikey, dmi, req));
+}
+
+/* ============================*ValidateCapability*========================== */
+
+TEST_F(VlanMapTest, req_Null1) {
+/* Return error generic when req is null */
+  VlanMapMoMgr obj;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC, obj.ValidateCapability(NULL, NULL, NULL));
+}
+TEST_F(VlanMapTest, ikey_Null) {
+/* Return error generic when ikey is null */
+  VlanMapMoMgr obj;
+  const char * ctrlr_name = NULL;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+                     obj.ValidateCapability(req, NULL, ctrlr_name));
+}
+TEST_F(VlanMapTest, ikey_getkey_Null) {
+/* Return error generic when ikey_getkey is null */
+  VlanMapMoMgr obj;
+  const char * ctrlr_name = NULL;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                                         IpctSt::kIpcStKeyVlanMap);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+                   obj.ValidateCapability(req, ikey, ctrlr_name));
+}
+TEST_F(VlanMapTest, OpCreate_DtCandidate) {
+/*Return success when op is create and dt is candidate */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  req->operation = UNC_OP_CREATE;
+  req->datatype = UPLL_DT_CANDIDATE;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  vlanmap_val->vlan_id = 567;     //  between 1 and 4095
+  vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                           IpctSt::kIpcStKeyVlanMap, vlanmap_key, config_val);
+  CapaModuleStub::stub_clearStubData();
+  uint32_t max_instance_count = 3;
+  uint32_t num_attrs = 0;
+  uint8_t attrs[1];
+  attrs[unc::capa::vlan_map::kCapVlanId] = 1;
+  const char* cntrlr_name("cntrlr_name");
+  const char* version("version");
+  CtrlrMgr::Ctrlr ctrl(cntrlr_name, UNC_CT_PFC, version);
+  CtrlrMgr::Ctrlr* ctrl1(new CtrlrMgr::Ctrlr(ctrl, UPLL_DT_RUNNING));
+  CtrlrMgr::GetInstance()->ctrlrs_.push_back(ctrl1);
+  CapaModuleStub::stub_loadCapaModule();
+  CapaModuleStub::stub_setCreatecapaParameters(max_instance_count,
+                                                       &num_attrs, attrs);
+  CapaModuleStub::stub_setResultcode(CapaModuleStub::GET_CREATE_CAPABILITY,
+                                                                   true);
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+     obj.ValidateCapability(req, ikey, cntrlr_name));
+}
+
+TEST_F(VlanMapTest, OpCreate_DtCandidate_attrcheckfail) {
+  /* Return error when attribute support check fail for attrs::vlanid is zero */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  req->operation = UNC_OP_CREATE;
+  req->datatype =  UPLL_DT_CANDIDATE;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  vlanmap_val->vlan_id = 440;     //  between 1 and 4095
+  vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVlanMap,
+                                                               vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                   IpctSt::kIpcStKeyVlanMap, vlanmap_key, config_val);
+  CapaModuleStub::stub_clearStubData();
+  uint32_t max_instance_count = 3;
+  uint32_t num_attrs = 0;
+  uint8_t attrs[1];
+  attrs[unc::capa::vlan_map::kCapVlanId] = 0;
+  const char* cntrlr_name("cntrlr_name");
+  const char* version("version");
+  CtrlrMgr::Ctrlr ctrl(cntrlr_name, UNC_CT_PFC, version);
+  CtrlrMgr::Ctrlr* ctrl1(new CtrlrMgr::Ctrlr(ctrl, UPLL_DT_RUNNING));
+  CtrlrMgr::GetInstance()->ctrlrs_.push_back(ctrl1);
+  CapaModuleStub::stub_loadCapaModule();
+  CapaModuleStub::stub_setCreatecapaParameters(max_instance_count,
+                                                  &num_attrs, attrs);
+  CapaModuleStub::stub_setResultcode(CapaModuleStub::GET_CREATE_CAPABILITY,
+                                                                     true);
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+                          obj.ValidateCapability(req, ikey, cntrlr_name));
+}
+TEST_F(VlanMapTest, OpCreate_DtOthers) {
+/* Return error when op is create and dt is other than candidate */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  req->operation = UNC_OP_CREATE;
+  req->datatype = UPLL_DT_IMPORT;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                           IpctSt::kIpcStKeyVlanMap, vlanmap_key, config_val);
+  const char* cntrlr_name("cntrlr_name");
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+                            obj.ValidateCapability(req, ikey, cntrlr_name));
+}
+TEST_F(VlanMapTest, OpUpdate_DtCandidate) {
+/* Return success when op is update and dt is candidate */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  req->operation = UNC_OP_UPDATE;
+  req->datatype =  UPLL_DT_CANDIDATE;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  vlanmap_val->vlan_id = 567;  //  between 1 and 4095
+  vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVlanMap,
+                                                                 vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                     IpctSt::kIpcStKeyVlanMap, vlanmap_key, config_val);
+  CapaModuleStub::stub_clearStubData();
+  uint32_t max_instance_count = 3;
+  uint32_t num_attrs = 0;
+  uint8_t attrs[1];
+  attrs[unc::capa::vlan_map::kCapVlanId] = 1;
+  const char* cntrlr_name("cntrlr_name");
+  const char* version("version");
+  CtrlrMgr::Ctrlr ctrl(cntrlr_name, UNC_CT_PFC, version);
+  CtrlrMgr::Ctrlr* ctrl1(new CtrlrMgr::Ctrlr(ctrl, UPLL_DT_RUNNING));
+  CtrlrMgr::GetInstance()->ctrlrs_.push_back(ctrl1);
+  CapaModuleStub::stub_loadCapaModule();
+  CapaModuleStub::stub_setCreatecapaParameters(max_instance_count,
+                                                  &num_attrs, attrs);
+  CapaModuleStub::stub_setResultcode(CapaModuleStub::GET_UPDATE_CAPABILITY,
+                                                                      true);
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+     obj.ValidateCapability(req, ikey, cntrlr_name));
+}
+TEST_F(VlanMapTest, OpUpdate_DtCandidate_attrcheckfail) {
+/* Return error when attribute support check fail for attrs::vlanid is zero */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  req->operation = UNC_OP_UPDATE;
+  req->datatype =  UPLL_DT_CANDIDATE;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  vlanmap_val->vlan_id = 567;     //  between 1 and 4095
+  vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVlanMap,
+                                                               vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                   IpctSt::kIpcStKeyVlanMap, vlanmap_key, config_val);
+  CapaModuleStub::stub_clearStubData();
+  uint32_t max_instance_count = 3;
+  uint32_t num_attrs = 0;
+  uint8_t attrs[1];
+  attrs[unc::capa::vlan_map::kCapVlanId] = 0;
+  const char* cntrlr_name("cntrlr_name");
+  const char* version("version");
+  CtrlrMgr::Ctrlr ctrl(cntrlr_name, UNC_CT_PFC, version);
+  CtrlrMgr::Ctrlr* ctrl1(new CtrlrMgr::Ctrlr(ctrl, UPLL_DT_RUNNING));
+  CtrlrMgr::GetInstance()->ctrlrs_.push_back(ctrl1);
+  CapaModuleStub::stub_loadCapaModule();
+  CapaModuleStub::stub_setCreatecapaParameters(max_instance_count,
+                                                  &num_attrs, attrs);
+  CapaModuleStub::stub_setResultcode(CapaModuleStub::GET_UPDATE_CAPABILITY,
+                                                                     true);
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+                          obj.ValidateCapability(req, ikey, cntrlr_name));
+}
+TEST_F(VlanMapTest, OpUpdate_DtOthers) {
+/* Return error when op is update and dt is other than candidate */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  req->operation = UNC_OP_UPDATE;
+  req->datatype = UPLL_DT_IMPORT;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                           IpctSt::kIpcStKeyVlanMap, vlanmap_key, config_val);
+  const char* cntrlr_name("cntrlr_name");
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+                            obj.ValidateCapability(req, ikey, cntrlr_name));
+}
+TEST_F(VlanMapTest, OpRead_DtCandidate) {
+/* Return success when op is read and dt is candidate and option 1 and 2
+                                                             are valid */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  req->operation = UNC_OP_READ;
+  req->datatype =  UPLL_DT_CANDIDATE;
+  req->option1 = UNC_OPT1_NORMAL;
+  req->option2 = UNC_OPT2_NONE;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  vlanmap_val->vlan_id = 567;     //  between 1 and 4095
+  vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVlanMap,
+                                                               vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                   IpctSt::kIpcStKeyVlanMap, vlanmap_key, config_val);
+  CapaModuleStub::stub_clearStubData();
+  uint32_t max_instance_count = 3;
+  uint32_t num_attrs = 0;
+  uint8_t attrs[1];
+  attrs[unc::capa::vlan_map::kCapVlanId] = 1;
+  const char* cntrlr_name("cntrlr_name");
+  const char* version("version");
+  CtrlrMgr::Ctrlr ctrl(cntrlr_name, UNC_CT_PFC, version);
+  CtrlrMgr::Ctrlr* ctrl1(new CtrlrMgr::Ctrlr(ctrl, UPLL_DT_RUNNING));
+  CtrlrMgr::GetInstance()->ctrlrs_.push_back(ctrl1);
+  CapaModuleStub::stub_loadCapaModule();
+  CapaModuleStub::stub_setCreatecapaParameters(max_instance_count,
+                                                  &num_attrs, attrs);
+  CapaModuleStub::stub_setResultcode(CapaModuleStub::GET_READ_CAPABILITY,
+                                                                    true);
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+     obj.ValidateCapability(req, ikey, cntrlr_name));
+}
+TEST_F(VlanMapTest, OpRead_DtCandidate_Opt1_invalid) {
+/* Return error option1 when op is read, dt is candidate and opt1 is invalid */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  req->operation = UNC_OP_READ;
+  req->datatype =  UPLL_DT_CANDIDATE;
+  req->option1 = UNC_OPT1_DETAIL;
+  req->option2 = UNC_OPT2_NONE;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  vlanmap_val->vlan_id = 567;     //  between 1 and 4095
+  vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVlanMap,
+                                                                vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                     IpctSt::kIpcStKeyVlanMap, vlanmap_key, config_val);
+  CapaModuleStub::stub_clearStubData();
+  uint32_t max_instance_count = 3;
+  uint32_t num_attrs = 0;
+  uint8_t attrs[1];
+  attrs[unc::capa::vlan_map::kCapVlanId] = 1;
+  const char* cntrlr_name("cntrlr_name");
+  const char* version("version");
+  CtrlrMgr::Ctrlr ctrl(cntrlr_name, UNC_CT_PFC, version);
+  CtrlrMgr::Ctrlr* ctrl1(new CtrlrMgr::Ctrlr(ctrl, UPLL_DT_RUNNING));
+  CtrlrMgr::GetInstance()->ctrlrs_.push_back(ctrl1);
+  CapaModuleStub::stub_loadCapaModule();
+  CapaModuleStub::stub_setCreatecapaParameters(max_instance_count,
+                                                  &num_attrs, attrs);
+  CapaModuleStub::stub_setResultcode(CapaModuleStub::GET_READ_CAPABILITY, true);
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+                        obj.ValidateCapability(req, ikey, cntrlr_name));
+}
+TEST_F(VlanMapTest, OpRead_DtCandidate_Opt2_Invalid) {
+/*Return error opt2 when op is read, dt is candidate and opt2 is invalid */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  req->operation = UNC_OP_READ;
+  req->datatype =  UPLL_DT_CANDIDATE;
+  req->option1 = UNC_OPT1_NORMAL;
+  req->option2 = UNC_OPT2_L2DOMAIN;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  vlanmap_val->vlan_id = 567;     //  between 1 and 4095
+  vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVlanMap,
+                                                               vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                   IpctSt::kIpcStKeyVlanMap, vlanmap_key, config_val);
+  CapaModuleStub::stub_clearStubData();
+  uint32_t max_instance_count = 3;
+  uint32_t num_attrs = 0;
+  uint8_t attrs[1];
+  attrs[unc::capa::vlan_map::kCapVlanId] = 1;
+  const char* cntrlr_name("cntrlr_name");
+  const char* version("version");
+  CtrlrMgr::Ctrlr ctrl(cntrlr_name, UNC_CT_PFC, version);
+  CtrlrMgr::Ctrlr* ctrl1(new CtrlrMgr::Ctrlr(ctrl, UPLL_DT_RUNNING));
+  CtrlrMgr::GetInstance()->ctrlrs_.push_back(ctrl1);
+  CapaModuleStub::stub_loadCapaModule();
+  CapaModuleStub::stub_setCreatecapaParameters(max_instance_count,
+                                                &num_attrs, attrs);
+  CapaModuleStub::stub_setResultcode(CapaModuleStub::GET_READ_CAPABILITY,
+                                                                  true);
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+                          obj.ValidateCapability(req, ikey, cntrlr_name));
+}
+TEST_F(VlanMapTest, OpReadSibling_dtStartup_opts_valid) {
+/* Return succes when op is read sibling, dt is startup and
+                                                      options are valid */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  req->operation = UNC_OP_READ_SIBLING;
+  req->datatype =  UPLL_DT_STARTUP;
+  req->option1 = UNC_OPT1_NORMAL;
+  req->option2 = UNC_OPT2_NONE;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  vlanmap_val->vlan_id = 567;     //  between 1 and 4095
+  vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVlanMap, NULL);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                    IpctSt::kIpcStKeyVlanMap, vlanmap_key, config_val);
+  CapaModuleStub::stub_clearStubData();
+  uint32_t max_instance_count = 3;
+  uint32_t num_attrs = 0;
+  uint8_t attrs[1];
+  attrs[unc::capa::vlan_map::kCapVlanId] = 1;
+  const char* cntrlr_name("cntrlr_name");
+  const char* version("version");
+  CtrlrMgr::Ctrlr ctrl(cntrlr_name, UNC_CT_PFC, version);
+  CtrlrMgr::Ctrlr* ctrl1(new CtrlrMgr::Ctrlr(ctrl, UPLL_DT_RUNNING));
+  CtrlrMgr::GetInstance()->ctrlrs_.push_back(ctrl1);
+  CapaModuleStub::stub_loadCapaModule();
+  CapaModuleStub::stub_setCreatecapaParameters(max_instance_count,
+                                                 &num_attrs, attrs);
+  CapaModuleStub::stub_setResultcode(CapaModuleStub::GET_READ_CAPABILITY,
+                                                                  true);
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+                          obj.ValidateCapability(req, ikey, cntrlr_name));
+}
+TEST_F(VlanMapTest, OpReadSiblingbegin_Dtstate_Opts_Valid) {
+/* Return Success when op is read sibling begin, dt is state and options
+                                                                  are valid */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  req->operation = UNC_OP_READ_SIBLING_BEGIN;
+  req->datatype =  UPLL_DT_STATE;
+  req->option1 = UNC_OPT1_NORMAL;
+  req->option2 = UNC_OPT2_NONE;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  vlanmap_val->vlan_id = 567;     //  between 1 and 4095
+  vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcStValVlanMap, vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                            IpctSt::kIpcStKeyVlanMap, vlanmap_key, cfg_val);
+  CapaModuleStub::stub_clearStubData();
+  uint32_t max_instance_count = 3;
+  uint32_t num_attrs = 0;
+  uint8_t attrs[1];
+  attrs[unc::capa::vlan_map::kCapVlanId] = 1;
+  const char* cntrlr_name("cntrlr_name");
+  const char* version("version");
+  CtrlrMgr::Ctrlr ctrl(cntrlr_name, UNC_CT_PFC, version);
+  CtrlrMgr::Ctrlr* ctrl1(new CtrlrMgr::Ctrlr(ctrl, UPLL_DT_RUNNING));
+  CtrlrMgr::GetInstance()->ctrlrs_.push_back(ctrl1);
+  CapaModuleStub::stub_loadCapaModule();
+  CapaModuleStub::stub_setCreatecapaParameters(max_instance_count,
+                                                  &num_attrs, attrs);
+  CapaModuleStub::stub_setResultcode(CapaModuleStub::GET_READ_CAPABILITY,
+                                                                  true);
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+     obj.ValidateCapability(req, ikey, cntrlr_name));
+}
+TEST_F(VlanMapTest, Opreadsiblingcount_dtRunning_opts_Valid) {
+/* Return Success when op is readsibling count, dt is running and options
+                                                                are valid */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  req->operation = UNC_OP_READ_SIBLING_COUNT;
+  req->datatype =  UPLL_DT_RUNNING;
+  req->option1 = UNC_OPT1_NORMAL;
+  req->option2 = UNC_OPT2_NONE;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  vlanmap_val->vlan_id = 567;     //  between 1 and 4095
+  vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVlanMap,
+                                                                vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                    IpctSt::kIpcStKeyVlanMap, vlanmap_key, config_val);
+  CapaModuleStub::stub_clearStubData();
+  uint32_t max_instance_count = 3;
+  uint32_t num_attrs = 0;
+  uint8_t attrs[1];
+  attrs[unc::capa::vlan_map::kCapVlanId] = 0;
+  const char* cntrlr_name("cntrlr_name");
+  const char* version("version");
+  CtrlrMgr::Ctrlr ctrl(cntrlr_name, UNC_CT_PFC, version);
+  CtrlrMgr::Ctrlr* ctrl1(new CtrlrMgr::Ctrlr(ctrl, UPLL_DT_RUNNING));
+  CtrlrMgr::GetInstance()->ctrlrs_.push_back(ctrl1);
+  CapaModuleStub::stub_loadCapaModule();
+  CapaModuleStub::stub_setCreatecapaParameters(max_instance_count,
+                                                  &num_attrs, attrs);
+  CapaModuleStub::stub_setResultcode(CapaModuleStub::GET_READ_CAPABILITY,
+                                                                    true);
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+                          obj.ValidateCapability(req, ikey, cntrlr_name));
+}
+TEST_F(VlanMapTest, OPRead_DtImport_opts_valid) {
+/* Return error when op is read and dt is import and options are valid */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  req->operation = UNC_OP_READ;
+  req->datatype =  UPLL_DT_IMPORT;
+  req->option1 = UNC_OPT1_NORMAL;
+  req->option2 = UNC_OPT2_NONE;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  vlanmap_val->vlan_id = 567;     //  between 1 and 4095
+  vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVlanMap,
+                                                               vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                    IpctSt::kIpcStKeyVlanMap, vlanmap_key, config_val);
+  CapaModuleStub::stub_clearStubData();
+  uint32_t max_instance_count = 3;
+  uint32_t num_attrs = 0;
+  uint8_t attrs[1];
+  attrs[unc::capa::vlan_map::kCapVlanId] = 1;
+  const char* cntrlr_name("cntrlr_name");
+  const char* version("version");
+  CtrlrMgr::Ctrlr ctrl(cntrlr_name, UNC_CT_PFC, version);
+  CtrlrMgr::Ctrlr* ctrl1(new CtrlrMgr::Ctrlr(ctrl, UPLL_DT_RUNNING));
+  CtrlrMgr::GetInstance()->ctrlrs_.push_back(ctrl1);
+  CapaModuleStub::stub_loadCapaModule();
+  CapaModuleStub::stub_setCreatecapaParameters(max_instance_count,
+                                                  &num_attrs, attrs);
+  CapaModuleStub::stub_setResultcode(CapaModuleStub::GET_READ_CAPABILITY, true);
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+                        obj.ValidateCapability(req, ikey, cntrlr_name));
+}
+TEST_F(VlanMapTest, OpRename_Dtcandidate_Opts_valid) {
+/* Return error when op is others */
+  VlanMapMoMgr obj;
+  IPC_REQ_RESP_HEADER_DECL(req);
+  req->operation = UNC_OP_RENAME;
+  req->datatype =  UPLL_DT_CANDIDATE;
+  req->option1 = UNC_OPT1_NORMAL;
+  req->option2 = UNC_OPT2_NONE;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  vlanmap_val->vlan_id = 567;     //  between 1 and 4095
+  vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+  key_vlan_map *vlanmap_key = ZALLOC_TYPE(key_vlan_map);
+  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVlanMap,
+                                                                vlanmap_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_VLANMAP,
+                    IpctSt::kIpcStKeyVlanMap, vlanmap_key, config_val);
+  CapaModuleStub::stub_clearStubData();
+  uint32_t max_instance_count = 3;
+  uint32_t num_attrs = 0;
+  uint8_t attrs[1];
+  attrs[unc::capa::vlan_map::kCapVlanId] = 1;
+  const char* cntrlr_name("cntrlr_name");
+  const char* version("version");
+  CtrlrMgr::Ctrlr ctrl(cntrlr_name, UNC_CT_PFC, version);
+  CtrlrMgr::Ctrlr* ctrl1(new CtrlrMgr::Ctrlr(ctrl, UPLL_DT_RUNNING));
+  CtrlrMgr::GetInstance()->ctrlrs_.push_back(ctrl1);
+  CapaModuleStub::stub_loadCapaModule();
+  CapaModuleStub::stub_setCreatecapaParameters(max_instance_count,
+                                                  &num_attrs, attrs);
+  CapaModuleStub::stub_setResultcode(CapaModuleStub::GET_READ_CAPABILITY,
+  true);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+                          obj.ValidateCapability(req, ikey, cntrlr_name));
+}
+/* ============================*FilterAttributes*============================ */
+TEST(VlanMapMoMgr_FilterAttributes, update_auditstatus_test) {
+  VlanMapMoMgr obj;
+  pfc_log_set_level(PFC_LOGLVL_VERBOSE);
+
+  pfcdrv_val_vlan_map_t *vlanmap_val1 =
+    reinterpret_cast<pfcdrv_val_vlan_map_t *>
+    (malloc(sizeof(pfcdrv_val_vlan_map_t)));
+  vlanmap_val1->vm.vlan_id = 567;     //  between 1 and 4095
+  vlanmap_val1->vm.valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+  pfcdrv_val_vlan_map_t *vlanmap_val2 =
+    reinterpret_cast<pfcdrv_val_vlan_map_t *>
+    (malloc(sizeof(pfcdrv_val_vlan_map_t)));
+  vlanmap_val2->vm.vlan_id = 567;     //  between 1 and 4095
+  vlanmap_val2->vm.valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+
+  void *ptr =
+    reinterpret_cast<void *>(vlanmap_val1);
+  EXPECT_EQ(true, obj.FilterAttributes((*&ptr), (void*)vlanmap_val2,
+                                             false, UNC_OP_UPDATE));
+  pfcdrv_val_vlan_map_t *drv_val_vlan_map1 =
+    reinterpret_cast<pfcdrv_val_vlan_map_t *>(ptr);
+  val_vlan_map_t *val_vlan_map1 = &(drv_val_vlan_map1->vm);
+
+  EXPECT_EQ(UNC_VF_VALUE_NOT_MODIFIED,
+     val_vlan_map1->valid[UPLL_IDX_VLAN_ID_VM]);
+  free(vlanmap_val1); free(vlanmap_val2);
+}
+
+TEST(VlanMapMoMgr_FilterAttributes, update_auditstatus_valid) {
+  VlanMapMoMgr obj;
+  pfc_log_set_level(PFC_LOGLVL_VERBOSE);
+
+  pfcdrv_val_vlan_map_t *vlanmap_val1 =
+    reinterpret_cast<pfcdrv_val_vlan_map_t *>
+      (malloc(sizeof(pfcdrv_val_vlan_map_t)));
+  vlanmap_val1->vm.vlan_id = 567;     //  between 1 and 4095
+  vlanmap_val1->vm.valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+  pfcdrv_val_vlan_map_t *vlanmap_val2 =
+    reinterpret_cast<pfcdrv_val_vlan_map_t *>
+      (malloc(sizeof(pfcdrv_val_vlan_map_t)));
+  vlanmap_val2->vm.vlan_id = 1;     //  between 1 and 4095
+  vlanmap_val2->vm.valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+
+  void *ptr =
+    reinterpret_cast<void *>(vlanmap_val1);
+  EXPECT_FALSE(obj.FilterAttributes((*&ptr), (void*)vlanmap_val2,
+                                       false, UNC_OP_UPDATE));
+  pfcdrv_val_vlan_map_t *drv_val_vlan_map1 =
+    reinterpret_cast<pfcdrv_val_vlan_map_t *>(ptr);
+  val_vlan_map_t *val_vlan_map1 = &(drv_val_vlan_map1->vm);
+
+  EXPECT_EQ(UNC_VF_VALID, val_vlan_map1->valid[UPLL_IDX_VLAN_ID_VM]);
+  free(vlanmap_val1); free(vlanmap_val2);
+}
+
+TEST(VlanMapMoMgr_FilterAttributes, create_auditstatus_valid) {
+  VlanMapMoMgr obj;
+  pfc_log_set_level(PFC_LOGLVL_VERBOSE);
+
+  pfcdrv_val_vlan_map_t *vlanmap_val1 =
+    reinterpret_cast<pfcdrv_val_vlan_map_t *>
+      (malloc(sizeof(pfcdrv_val_vlan_map_t)));
+  vlanmap_val1->vm.vlan_id = 567;     //  between 1 and 4095
+  vlanmap_val1->vm.valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+  pfcdrv_val_vlan_map_t *vlanmap_val2 =
+    reinterpret_cast<pfcdrv_val_vlan_map_t *>
+      (malloc(sizeof(pfcdrv_val_vlan_map_t)));
+  vlanmap_val2->vm.vlan_id = 1;     //  between 1 and 4095
+  vlanmap_val2->vm.valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+
+  void *ptr =
+    reinterpret_cast<void *>(vlanmap_val1);
+  EXPECT_FALSE(obj.FilterAttributes((*&ptr), (void*)vlanmap_val2,
+                                       false, UNC_OP_CREATE));
+  pfcdrv_val_vlan_map_t *drv_val_vlan_map1 =
+    reinterpret_cast<pfcdrv_val_vlan_map_t *>(ptr);
+  val_vlan_map_t *val_vlan_map1 = &(drv_val_vlan_map1->vm);
+
+  EXPECT_EQ(UNC_VF_VALID, val_vlan_map1->valid[UPLL_IDX_VLAN_ID_VM]);
+  free(vlanmap_val1); free(vlanmap_val2);
+}
+
+/* =============================*CompareValidValue*========================== */
+
+TEST_F(VlanMapTest, auditstatus_true) {
+  /*Check if valid flags are set to valid no vlaue when audit status is true */
+  VlanMapMoMgr obj;
+  val_vlan_map *vlanmap_val1 = ZALLOC_TYPE(val_vlan_map);
+  vlanmap_val1->valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_INVALID;
+  val_vlan_map *vlanmap_val2 = ZALLOC_TYPE(val_vlan_map);
+  vlanmap_val2->valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+  void *ptr =
+    reinterpret_cast<void *>(vlanmap_val1);
+  obj.CompareValidValue((*&ptr), (void*)vlanmap_val2, true);
+  EXPECT_EQ(UNC_VF_INVALID, vlanmap_val1->valid[UPLL_IDX_VLAN_ID_VM]);
+}
+TEST_F(VlanMapTest, auditstatus_false) {
+  /*Check if valid flags are set to valid no vlaue when audit status is true */
+  VlanMapMoMgr obj;
+  val_vlan_map *vlanmap_val1 = ZALLOC_TYPE(val_vlan_map);
+  vlanmap_val1->valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_INVALID;
+  vlanmap_val1->vlan_id = 567;     //  between 1 and 4095
+  val_vlan_map *vlanmap_val2 = ZALLOC_TYPE(val_vlan_map);
+  vlanmap_val2->valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+  vlanmap_val2->vlan_id = 3454;     //  between 1 and 4095
+  void *ptr =
+    reinterpret_cast<void *>(vlanmap_val1);
+  obj.CompareValidValue((*&ptr), (void*)vlanmap_val2, true);
+  EXPECT_EQ(UNC_VF_INVALID, vlanmap_val1->valid[UPLL_IDX_VLAN_ID_VM]);
+}
+/* ===================*ValVlanmapAttributeSupportCheck==================== */
+
+TEST_F(VlanMapTest, VLANID_IS_VALID) {
+  VlanMapMoMgr obj;
+  unc_keytype_operation_t operation =UNC_OP_CREATE;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID;
+  uint8_t attrs[1];
+  attrs[unc::capa::vlan_map::kCapVlanId] = 1;
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+            obj.ValVlanmapAttributeSupportCheck(vlanmap_val, attrs, operation));
+}
+
+TEST_F(VlanMapTest, VLANID_IS_VALID_NO_VALUE) {
+  VlanMapMoMgr obj;
+  unc_keytype_operation_t operation =UNC_OP_CREATE;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID_NO_VALUE;
+  uint8_t attrs[1];
+  attrs[unc::capa::vlan_map::kCapVlanId] = 1;
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+            obj.ValVlanmapAttributeSupportCheck(vlanmap_val, attrs, operation));
+}
+
+TEST_F(VlanMapTest, capa_vlan_id_zero_op_create) {
+  VlanMapMoMgr obj;
+  unc_keytype_operation_t operation =UNC_OP_CREATE;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID_NO_VALUE;
+  uint8_t attrs[1];
+  attrs[unc::capa::vlan_map::kCapVlanId] = 0;
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+            obj.ValVlanmapAttributeSupportCheck(vlanmap_val, attrs, operation));
+}
+TEST_F(VlanMapTest, capa_vlan_id_zero_op_update) {
+  VlanMapMoMgr obj;
+  unc_keytype_operation_t operation =UNC_OP_UPDATE;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID_NO_VALUE;
+  uint8_t attrs[1];
+  attrs[unc::capa::vlan_map::kCapVlanId] = 0;
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+            obj.ValVlanmapAttributeSupportCheck(vlanmap_val, attrs, operation));
+}
+TEST_F(VlanMapTest, capa_vlan_id_zero_op_read) {
+  VlanMapMoMgr obj;
+  unc_keytype_operation_t operation =UNC_OP_READ;
+  val_vlan_map *vlanmap_val = ZALLOC_TYPE(val_vlan_map);
+  vlanmap_val->valid[UPLL_IDX_VLAN_ID_VM] = UNC_VF_VALID_NO_VALUE;
+  uint8_t attrs[1];
+  attrs[unc::capa::vlan_map::kCapVlanId] = 0;
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+            obj.ValVlanmapAttributeSupportCheck(vlanmap_val, attrs, operation));
+}
+TEST_F(VlanMapTest, val_vlan_NULL) {
+  VlanMapMoMgr obj;
+  unc_keytype_operation_t operation =UNC_OP_READ;
+  val_vlan_map *vlanmap_val = NULL;
+  uint8_t attrs[1];
+  attrs[unc::capa::vlan_map::kCapVlanId] = 0;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+            obj.ValVlanmapAttributeSupportCheck(vlanmap_val, attrs, operation));
+}
+/* =========================*IsReferenced*============================= */
+// Function not implemeted
+
+TEST_F(VlanMapTest, return_success) {
+  VlanMapMoMgr obj;
+  ConfigKeyVal *ikey = NULL;
+  upll_keytype_datatype_t dt_type = UPLL_DT_CANDIDATE;
+  DalDmlIntf *dmi = NULL;
+EXPECT_EQ(UPLL_RC_SUCCESS, obj.IsReferenced(ikey, dt_type, dmi));
+}
+
index a85e27980bcf3658bb6643e0592c5e49cc4df9ac..3ec7f115aef00e065a32af74ca4dbc7c40802cfa 100644 (file)
@@ -21,6 +21,7 @@
 #include <capa_module_stub.hh>
 #include <tclib_module.hh>
 #include <dal_cursor.hh>
+#include <set>
 #include "ut_util.hh"
 
 using ::testing::InitGoogleTest;
@@ -40,12 +41,10 @@ namespace upll {
 namespace kt_momgr {
 
 class VtnMoMgrTest
-  : public UpllTestEnv
-{
+    : public UpllTestEnv {
 };
 
-static void GetKeyStruct(key_vtn *&kst)
-{
+static void GetKeyStruct(key_vtn *&kst) {
   const char *vtn_name = "VTN_1";
 
   kst = ZALLOC_TYPE(key_vtn);
@@ -53,64 +52,61 @@ static void GetKeyStruct(key_vtn *&kst)
           vtn_name, strlen(vtn_name)+1);
 }
 
-static void GetKeyValStruct(key_vtn *&kst, val_vtn *&vst)
-{
+static void GetKeyValStruct(key_vtn *&kst, val_vtn *&vst) {
   GetKeyStruct(kst);
 
   const char *desc = "thisisvbridge";
   vst = ZALLOC_TYPE(val_vtn);
-  for(unsigned int loop = 0; loop < sizeof(vst->valid)/
-          sizeof(vst->valid[0]); ++loop) {
-      vst->valid[loop] = UNC_VF_VALID;
+  for (unsigned int loop = 0; loop < sizeof(vst->valid)/
+      sizeof(vst->valid[0]); ++loop) {
+    vst->valid[loop] = UNC_VF_VALID;
   }
   vst->cs_row_status = UNC_VF_VALID;
   for(unsigned int loop = 0; loop < sizeof(vst->valid)/
-          sizeof(vst->valid[0]); ++loop) {
-      vst->cs_attr[loop] = UNC_CS_APPLIED;
+      sizeof(vst->valid[0]); ++loop) {
+    vst->cs_attr[loop] = UNC_CS_APPLIED;
   }
   strncpy(reinterpret_cast<char *>(vst->description), desc,
           strlen(desc)+1);
 }
-
-static void GetKeyValStructSt(key_vtn *&kst, val_vtn_st *&vst)
-{
+static void GetKeyValStructSt(key_vtn *&kst, val_vtn_st *&vst) {
   const char *vtn_name = "VTN_1";
-  //const char *desc = "thisisvbridge";
+  // const char *desc = "thisisvbridge";
   kst = ZALLOC_TYPE(key_vtn);
   strncpy(reinterpret_cast<char *>(kst->vtn_name),
           vtn_name, strlen(vtn_name)+1);
   vst = ZALLOC_TYPE(val_vtn_st);
-  for(unsigned int loop = 0; loop < sizeof(vst->valid)/
-          sizeof(vst->valid[0]); ++loop) {
-      vst->valid[loop] = UNC_VF_VALID;
+  for (unsigned int loop = 0; loop < sizeof(vst->valid)/
+      sizeof(vst->valid[0]); ++loop) {
+    vst->valid[loop] = UNC_VF_VALID;
   }
 }
 
 static void createControllerInfo(const char* cntrlr_name,
                                  upll_keytype_datatype_t data_type,
-                                 unc_keytype_ctrtype_t cntrl_type)
-{
-    const char*  version("version");
-    CtrlrMgr::Ctrlr ctrl(cntrlr_name,cntrl_type,version);
-    CtrlrMgr::Ctrlr* ctrl1(new CtrlrMgr::Ctrlr(ctrl,data_type));
-    CtrlrMgr::GetInstance()->ctrlrs_.push_back(ctrl1);
+                                 unc_keytype_ctrtype_t cntrl_type) {
+  const char*  version("version");
+  CtrlrMgr::Ctrlr ctrl(cntrlr_name, cntrl_type, version);
+  CtrlrMgr::Ctrlr* ctrl1(new CtrlrMgr::Ctrlr(ctrl, data_type));
+  CtrlrMgr::GetInstance()->ctrlrs_.push_back(ctrl1);
 }
 
 /* GetRenameKeyBindInfo() */
-// Passing NULL
+//  Passing NULL
 TEST_F(VtnMoMgrTest, GetRenameKeyBindInfo_outputNull) {
   VtnMoMgr vtn;
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::INIT, kDalRcSuccess);
 
   unc_key_type_t key_type = UNC_KT_VTN;
   BindInfo *bin = NULL;
   int nattr = 2;
-  //MoMgrTables tbl;
+  // MoMgrTables tbl;
 
   EXPECT_TRUE(vtn.GetRenameKeyBindInfo(key_type, bin, nattr, MAINTBL));
 }
 
-// Verify the nattr is filled with proper value
+//  Verify the nattr is filled with proper value
 TEST_F(VtnMoMgrTest, GetRenameKeyBindInfo_nattrFill) {
   VtnMoMgr vtn;
   unc_key_type_t key_type = UNC_KT_VTN;
@@ -120,8 +116,7 @@ TEST_F(VtnMoMgrTest, GetRenameKeyBindInfo_nattrFill) {
   EXPECT_TRUE(vtn.GetRenameKeyBindInfo(key_type, bin, nattr, MAINTBL));
   EXPECT_EQ(3, nattr);
 }
-
-// Passing controller table to the function
+//  Passing controller table to the function
 TEST_F(VtnMoMgrTest, GetRenameKeyBindInfo_ctrlTbl) {
   VtnMoMgr vtn;
   unc_key_type_t key_type = UNC_KT_VTN;
@@ -132,7 +127,7 @@ TEST_F(VtnMoMgrTest, GetRenameKeyBindInfo_ctrlTbl) {
   EXPECT_EQ(3, nattr);
 }
 
-// Passing rename table to the function
+//  Passing rename table to the function
 TEST_F(VtnMoMgrTest, GetRenameKeyBindInfo_renameTbl) {
   VtnMoMgr vtn;
   unc_key_type_t key_type = UNC_KT_VTN;
@@ -143,7 +138,7 @@ TEST_F(VtnMoMgrTest, GetRenameKeyBindInfo_renameTbl) {
   EXPECT_EQ(2, nattr);
 }
 
-// Passing rename table to the function
+//  Passing rename table to the function
 TEST_F(VtnMoMgrTest, GetRenameKeyBindInfo_novtnkey) {
   VtnMoMgr vtn;
   unc_key_type_t key_type = UNC_KT_VBRIDGE;
@@ -154,45 +149,52 @@ TEST_F(VtnMoMgrTest, GetRenameKeyBindInfo_novtnkey) {
 }
 
 /* ValidateAttribute() */
-// Passing null value to the function
+//  Passing null value to the function
 TEST_F(VtnMoMgrTest, ValidateAttribute_nullkey) {
   VtnMoMgr vtn;
   ConfigKeyVal *ikey = NULL;
   DalDmlIntf *dmi(getDalDmlIntf());
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ValidateAttribute(ikey, dmi)); //Bug 217
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.ValidateAttribute(ikey, dmi)); // Bug 217
 }
 
-// Passing vtn key type to the function
+//  Passing vtn key type to the function
 TEST_F(VtnMoMgrTest, ValidateAttribute_keyVtn) {
   VtnMoMgr vtn;
   DalDmlIntf *dmi(getDalDmlIntf());
   key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
   val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateAttribute(ikey, dmi));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ValidateAttribute(ikey, dmi));
 
   delete ikey;
 }
 
-// Passing other key type to the function
+//  Passing other key type to the function
 TEST_F(VtnMoMgrTest, ValidateAttribute_keyVtep) {
   VtnMoMgr vtn;
   DalDmlIntf *dmi(getDalDmlIntf());
   key_vtep_t *keyVtep(ZALLOC_TYPE(key_vtep_t));
   val_vtep_t *valVtep(ZALLOC_TYPE(val_vtep_t));
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtep, valVtep);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtep, valVtep);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTEP, IpctSt::kIpcStKeyVtep, keyVtep, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ValidateAttribute(ikey, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.ValidateAttribute(ikey, dmi));
 
   delete ikey;
 }
 
-// Passing NULL key to the function
+//  Passing NULL key to the function
 TEST_F(VtnMoMgrTest, IsValidKey_keyNull) {
   VtnMoMgr vtn;
   key_vtn_t *keyvtn = NULL;
@@ -200,7 +202,7 @@ TEST_F(VtnMoMgrTest, IsValidKey_keyNull) {
   EXPECT_FALSE(vtn.IsValidKey(keyvtn, index));
 }
 
-// Passing the vtn name to the function
+//  Passing the vtn name to the function
 TEST_F(VtnMoMgrTest, IsValidKey_vtnName) {
   VtnMoMgr vtn;
   unsigned long index = 0;
@@ -210,7 +212,7 @@ TEST_F(VtnMoMgrTest, IsValidKey_vtnName) {
   free(keyvtn);
 }
 
-// To test the maximum length of vtn name using the function
+//  To test the maximum length of vtn name using the function
 TEST_F(VtnMoMgrTest, IsValidKey_vtnNameMax) {
   VtnMoMgr vtn;
   unsigned long index = 0;
@@ -221,7 +223,7 @@ TEST_F(VtnMoMgrTest, IsValidKey_vtnNameMax) {
   free(keyvtn);
 }
 
-// To test the minimum length of vtn name using the function
+//  To test the minimum length of vtn name using the function
 TEST_F(VtnMoMgrTest, IsValidKey_vtnNameMin) {
   VtnMoMgr vtn;
   key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
@@ -231,7 +233,7 @@ TEST_F(VtnMoMgrTest, IsValidKey_vtnNameMin) {
   free(keyvtn);
 }
 
-// To test exceeding the maximum length of vtn name using the function
+//  To test exceeding the maximum length of vtn name using the function
 TEST_F(VtnMoMgrTest, IsValidKey_vtnNameMaxExceeds) {
   VtnMoMgr vtn;
   key_vtn_t *keyvtn(ZALLOC_ARRAY(key_vtn_t, 2));
@@ -242,7 +244,7 @@ TEST_F(VtnMoMgrTest, IsValidKey_vtnNameMaxExceeds) {
   free(keyvtn);
 }
 
-// To test the empty name of vtn name using the function
+//  To test the empty name of vtn name using the function
 TEST_F(VtnMoMgrTest, IsValidKey_vtnNameEmpty) {
   VtnMoMgr vtn;
   key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
@@ -253,7 +255,7 @@ TEST_F(VtnMoMgrTest, IsValidKey_vtnNameEmpty) {
 }
 
 /* GetValid() */
-// Passing NULL to the function
+//  Passing NULL to the function
 TEST_F(VtnMoMgrTest, GetValid_nullValue) {
   VtnMoMgr vtn;
   void *val = NULL;
@@ -262,11 +264,12 @@ TEST_F(VtnMoMgrTest, GetValid_nullValue) {
   uint8_t *compare_valid = NULL;
   upll_keytype_datatype_t dtType = UPLL_DT_STATE;
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.GetValid(val, index, valid, dtType, MAINTBL));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.GetValid(val, index, valid, dtType, MAINTBL));
   EXPECT_EQ(compare_valid, valid);
 }
 
-// Passing operstatus to the function
+//  Passing operstatus to the function
 TEST_F(VtnMoMgrTest, GetValid_operStatus) {
   VtnMoMgr vtn;
   void *val = NULL;
@@ -278,11 +281,12 @@ TEST_F(VtnMoMgrTest, GetValid_operStatus) {
   vtn_valst->valid[UPLL_IDX_OPER_STATUS_VS] = UNC_VF_VALID;
   val = reinterpret_cast<void *>(reinterpret_cast<char *>(vtn_valst));
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.GetValid(val, index, valid, dtType, MAINTBL));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.GetValid(val, index, valid, dtType, MAINTBL));
   free(vtn_valst);
 }
 
-// Passing alarmstatus to the function
+//  Passing alarmstatus to the function
 TEST_F(VtnMoMgrTest, GetValid_alarmStatus) {
   VtnMoMgr vtn;
   void *val = NULL;
@@ -294,11 +298,12 @@ TEST_F(VtnMoMgrTest, GetValid_alarmStatus) {
   vtn_valst->valid[UPLL_IDX_ALARM_STATUS_VS] = UNC_VF_VALID;
   val = reinterpret_cast<void *>(reinterpret_cast<char *>(vtn_valst));
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.GetValid(val, index, valid, dtType, MAINTBL));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.GetValid(val, index, valid, dtType, MAINTBL));
   free(vtn_valst);
 }
 
-// Passing creationTime to the function
+//  Passing creationTime to the function
 TEST_F(VtnMoMgrTest, GetValid_creationTime) {
   VtnMoMgr vtn;
   void *val = NULL;
@@ -310,11 +315,12 @@ TEST_F(VtnMoMgrTest, GetValid_creationTime) {
   vtn_valst->valid[UPLL_IDX_CREATION_TIME_VS] = UNC_VF_VALID;
   val = reinterpret_cast<void *>(reinterpret_cast<char *>(vtn_valst));
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.GetValid(val, index, valid, dtType, MAINTBL));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.GetValid(val, index, valid, dtType, MAINTBL));
   free(vtn_valst);
 }
 
-// Passing lastUpdatedTime to the function
+//  Passing lastUpdatedTime to the function
 TEST_F(VtnMoMgrTest, GetValid_lastUpdatedTime) {
   VtnMoMgr vtn;
   void *val = NULL;
@@ -326,11 +332,12 @@ TEST_F(VtnMoMgrTest, GetValid_lastUpdatedTime) {
   vtn_valst->valid[UPLL_IDX_LAST_UPDATE_TIME_VS] = UNC_VF_VALID;
   val = reinterpret_cast<void *>(reinterpret_cast<char *>(vtn_valst));
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.GetValid(val, index, valid, dtType, MAINTBL));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.GetValid(val, index, valid, dtType, MAINTBL));
   free(vtn_valst);
 }
 
-// Passing vtnName to the function
+//  Passing vtnName to the function
 TEST_F(VtnMoMgrTest, GetValid_vtnName) {
   VtnMoMgr vtn;
   void *val = NULL;
@@ -342,11 +349,12 @@ TEST_F(VtnMoMgrTest, GetValid_vtnName) {
   val_vtn->valid[UPLL_IDX_DESC_VTN] = UNC_VF_VALID;
   val = reinterpret_cast<void *>(reinterpret_cast<char *>(val_vtn));
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.GetValid(val, index, valid, dtType, MAINTBL));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.GetValid(val, index, valid, dtType, MAINTBL));
   free(val_vtn);
 }
 
-// Passing creationTime with DT_CANDIDATE to the function
+//  Passing creationTime with DT_CANDIDATE to the function
 TEST_F(VtnMoMgrTest, GetValid_creationTimeDtCandidate) {
   VtnMoMgr vtn;
   void *val = NULL;
@@ -358,11 +366,12 @@ TEST_F(VtnMoMgrTest, GetValid_creationTimeDtCandidate) {
   vtn_valst->valid[UPLL_IDX_CREATION_TIME_VS] = UNC_VF_VALID;
   val = reinterpret_cast<void *>(reinterpret_cast<char *>(vtn_valst));
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.GetValid(val, index, valid, dtType, MAINTBL));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.GetValid(val, index, valid, dtType, MAINTBL));
   free(vtn_valst);
 }
 
-// Passing description to the function
+//  Passing description to the function
 TEST_F(VtnMoMgrTest, GetValid_description) {
   VtnMoMgr vtn;
   void *val = NULL;
@@ -374,11 +383,12 @@ TEST_F(VtnMoMgrTest, GetValid_description) {
   val_vtn->valid[UPLL_IDX_DESC_VTN] = UNC_VF_VALID;
   val = reinterpret_cast<void *>(reinterpret_cast<char *>(val_vtn));
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.GetValid(val, index, valid, dtType, MAINTBL));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.GetValid(val, index, valid, dtType, MAINTBL));
   free(val_vtn);
 }
 
-// Passing description to the function
+//  Passing description to the function
 TEST_F(VtnMoMgrTest, GetValid_descriptionRenameTbl) {
   VtnMoMgr vtn;
   void *val = NULL;
@@ -390,11 +400,12 @@ TEST_F(VtnMoMgrTest, GetValid_descriptionRenameTbl) {
   val_vtn->valid[UPLL_IDX_DESC_VTN] = UNC_VF_VALID;
   val = reinterpret_cast<void *>(reinterpret_cast<char *>(val_vtn));
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.GetValid(val, index, valid, dtType, RENAMETBL));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.GetValid(val, index, valid, dtType, RENAMETBL));
   free(val_vtn);
 }
 
-// Passing description to the function
+//  Passing description to the function
 TEST_F(VtnMoMgrTest, GetValid_descriptionCtrlrTbl) {
   VtnMoMgr vtn;
   void *val = NULL;
@@ -406,11 +417,12 @@ TEST_F(VtnMoMgrTest, GetValid_descriptionCtrlrTbl) {
   val_vtn_ctrlr->valid[UPLL_IDX_DESC_VTN] = UNC_VF_VALID;
   val = reinterpret_cast<void *>(reinterpret_cast<char *>(val_vtn_ctrlr));
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.GetValid(val, index, valid, dtType, CTRLRTBL));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.GetValid(val, index, valid, dtType, CTRLRTBL));
   free(val_vtn_ctrlr);
 }
 
-// Passing alarmstatus to the function
+//  Passing alarmstatus to the function
 TEST_F(VtnMoMgrTest, GetValid_alarmStatusCtrlrTbl) {
   VtnMoMgr vtn;
   void *val = NULL;
@@ -422,11 +434,12 @@ TEST_F(VtnMoMgrTest, GetValid_alarmStatusCtrlrTbl) {
   vtn_valst->valid[UPLL_IDX_ALARM_STATUS_VS] = UNC_VF_VALID;
   val = reinterpret_cast<void *>(vtn_valst);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.GetValid(val, index, valid, dtType, CTRLRTBL));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.GetValid(val, index, valid, dtType, CTRLRTBL));
   free(vtn_valst);
 }
 
-// Passing operstatus to the function
+//  Passing operstatus to the function
 TEST_F(VtnMoMgrTest, GetValid_operStatusCtrlrTbl) {
   VtnMoMgr vtn;
   void *val = NULL;
@@ -438,34 +451,37 @@ TEST_F(VtnMoMgrTest, GetValid_operStatusCtrlrTbl) {
   val_rename_vtn->valid[UPLL_IDX_OPER_STATUS_VS] = UNC_VF_VALID;
   val = reinterpret_cast<void *>(reinterpret_cast<char *>(val_rename_vtn));
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.GetValid(val, index, valid, dtType, CTRLRTBL));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.GetValid(val, index, valid, dtType, CTRLRTBL));
   free(val_rename_vtn);
 }
 
 /* AllocVal() */
-//Passing empty configval
+// Passing empty configval
 TEST_F(VtnMoMgrTest, AllocVal_emptyval) {
   VtnMoMgr vtn;
   ConfigVal *cfg_val = NULL;
   upll_keytype_datatype_t dtType = UPLL_DT_CANDIDATE;
-  MoMgrTables tbl=MAINTBL;
+  MoMgrTables tbl = MAINTBL;
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.AllocVal(cfg_val, dtType, tbl));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.AllocVal(cfg_val, dtType, tbl));
   delete cfg_val;
 }
 
-// Passing configval to the function
+//  Passing configval to the function
 TEST_F(VtnMoMgrTest, AllocVal_invalidObj) {
   VtnMoMgr vtn;
   val_vtn_t *val_vtn(ZALLOC_TYPE(val_vtn_t));
-  ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcStValVtnSt, val_vtn);//Invalid st_num
+  ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcStValVtnSt, val_vtn);  // Invalid st_num
   upll_keytype_datatype_t dtType = UPLL_DT_RUNNING;
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.AllocVal(cfg_val, dtType, MAINTBL));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.AllocVal(cfg_val, dtType, MAINTBL));
   delete cfg_val;
 }
 
-// Passing DT_RUNNING to the function
+//  Passing DT_RUNNING to the function
 TEST_F(VtnMoMgrTest, AllocVal_valVtnMaintbl) {
   VtnMoMgr vtn;
   upll_keytype_datatype_t dtType = UPLL_DT_RUNNING;
@@ -473,11 +489,12 @@ TEST_F(VtnMoMgrTest, AllocVal_valVtnMaintbl) {
   val_vtn_t *val_vtn(ZALLOC_TYPE(val_vtn_t));
   ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcStValVtn, val_vtn);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.AllocVal(cfg_val, dtType, MAINTBL));//Need to analyse
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.AllocVal(cfg_val, dtType, MAINTBL));// Need to analyse
   delete cfg_val;
 }
 
-// Passing DT_STATE to the function
+//  Passing DT_STATE to the function
 TEST_F(VtnMoMgrTest, AllocVal_valVtnStMaintbl) {
   VtnMoMgr vtn;
   upll_keytype_datatype_t dtType = UPLL_DT_STATE;
@@ -485,21 +502,23 @@ TEST_F(VtnMoMgrTest, AllocVal_valVtnStMaintbl) {
   val_db_vtn_st *vtn_valst(ZALLOC_TYPE(val_db_vtn_st));
   ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcStValVtnSt, vtn_valst);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.AllocVal(cfg_val, dtType, MAINTBL)); //Need to analyse
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.AllocVal(cfg_val, dtType, MAINTBL)); // Need to analyse
   delete cfg_val;
 }
 
-// Passing RENAMETBL to the function
+//  Passing RENAMETBL to the function
 TEST_F(VtnMoMgrTest, AllocVal_valRenametbl) {
   VtnMoMgr vtn;
   upll_keytype_datatype_t dtType = UPLL_DT_CANDIDATE;
   MoMgrTables tbl = RENAMETBL;
-  ConfigVal *config_val=NULL;
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.AllocVal(config_val, dtType, tbl));//Need to analyse
+  ConfigVal *config_val = NULL;
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.AllocVal(config_val, dtType, tbl));// Need to analyse
   delete config_val;
 }
 
-// Passing CTRLRTBL to the function
+//  Passing CTRLRTBL to the function
 TEST_F(VtnMoMgrTest, AllocVal_valCtrlrtbl) {
   VtnMoMgr vtn;
   upll_keytype_datatype_t dtType = UPLL_DT_CANDIDATE;
@@ -507,7 +526,8 @@ TEST_F(VtnMoMgrTest, AllocVal_valCtrlrtbl) {
   val_vtn_ctrlr_t *val_vtn_ctrlr(ZALLOC_TYPE(val_vtn_ctrlr_t));
   ConfigVal *cfg_val = new ConfigVal(IpctSt::kIpcInvalidStNum, val_vtn_ctrlr);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.AllocVal(cfg_val, dtType, tbl));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.AllocVal(cfg_val, dtType, tbl));
   delete cfg_val;
 }
 
@@ -517,62 +537,72 @@ TEST_F(VtnMoMgrTest, AllocVal_Error_defaultcase) {
   MoMgrTables tbl = MAX_MOMGR_TBLS;
   ConfigVal *cfg_val = NULL;
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.AllocVal(cfg_val, dtType, tbl));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.AllocVal(cfg_val, dtType, tbl));
   delete cfg_val;
 }
 
-// Passing empty val to the function
+//  Passing empty val to the function
 TEST_F(VtnMoMgrTest, DupConfigKeyValVtnMapping_EmptyReqval) {
   VtnMoMgr vtn;
   ConfigKeyVal *okey;
-  ConfigKeyVal *req=NULL;
+  ConfigKeyVal *req = NULL;
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.DupConfigKeyValVtnMapping(okey, req));//Need to analyse
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.DupConfigKeyValVtnMapping(okey, req));// Need to analyse
 }
 
-// Passing empty val to the function
+//  Passing empty val to the function
 TEST_F(VtnMoMgrTest, DupConfigKeyValVtnMapping_EmptyConfigval) {
   VtnMoMgr vtn;
   ConfigKeyVal *okey;
-  ConfigKeyVal *req=NULL;
+  ConfigKeyVal *req = NULL;
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.DupConfigKeyValVtnMapping(okey, req));//Need to analyse
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.DupConfigKeyValVtnMapping(okey, req));// Need to analyse
 }
 
 TEST_F(VtnMoMgrTest, DupConfigKeyValVtnMapping_Configval) {
   VtnMoMgr vtn;
-  ConfigKeyVal *okey=NULL;
+  ConfigKeyVal *okey = NULL;
 
   key_vtn_controller_t *key(ZALLOC_TYPE(key_vtn_controller_t));
   val_vtn_mapping_controller_st *val
       (ZALLOC_TYPE(val_vtn_mapping_controller_st));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnMappingControllerSt, val);
+  ConfigKeyVal *ikey =
+      new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+                       IpctSt::kIpcStKeyVtnController, key, config_val);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.DupConfigKeyValVtnMapping(okey, ikey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.DupConfigKeyValVtnMapping(okey, ikey));
   delete okey;
   delete ikey;
 }
 
-// Passing empty val to the function
+//  Passing empty val to the function
 TEST_F(VtnMoMgrTest, DupConfigKeyValVtnStation_EmptyReqval) {
   VtnMoMgr vtn;
-  ConfigKeyVal *okey=NULL;
-  ConfigKeyVal *req=NULL;
+  ConfigKeyVal *okey = NULL;
+  ConfigKeyVal *req = NULL;
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.DupConfigKeyValVtnStation(okey, req));//Need to analyse
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.DupConfigKeyValVtnStation(okey, req));// Need to analyse
   delete okey;
   delete req;
 }
 
 TEST_F(VtnMoMgrTest, DupConfigKeyValVtnStation_kIpcStIpv4) {
   VtnMoMgr vtn;
-  ConfigKeyVal *okey=NULL;
+  ConfigKeyVal *okey = NULL;
 
   key_vtn_controller_t *key(ZALLOC_TYPE(key_vtn_controller_t));
   val_vtnstation_controller_st *val(ZALLOC_TYPE(val_vtnstation_controller_st));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStIpv4, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStIpv4, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStKeyVtnstationController, key, config_val);
 
   EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vtn.DupConfigKeyValVtnStation(okey, ikey));
   delete okey;
@@ -581,12 +611,14 @@ TEST_F(VtnMoMgrTest, DupConfigKeyValVtnStation_kIpcStIpv4) {
 
 TEST_F(VtnMoMgrTest, DupConfigKeyValVtnStation_kIpcStIpv6) {
   VtnMoMgr vtn;
-  ConfigKeyVal *okey=NULL;
+  ConfigKeyVal *okey = NULL;
 
   key_vtn_controller_t *key(ZALLOC_TYPE(key_vtn_controller_t));
   val_vtnstation_controller_st *val(ZALLOC_TYPE(val_vtnstation_controller_st));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStIpv6, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStIpv6, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStKeyVtnstationController, key, config_val);
 
   EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vtn.DupConfigKeyValVtnStation(okey, ikey));
   delete okey;
@@ -598,17 +630,21 @@ TEST_F(VtnMoMgrTest, DupConfigKeyValVtnStation_okey_NOT_NULL) {
 
   key_vtn_controller_t *key(ZALLOC_TYPE(key_vtn_controller_t));
   val_vtnstation_controller_st *val(ZALLOC_TYPE(val_vtnstation_controller_st));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStIpv4, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStIpv4, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStKeyVtnstationController, key, config_val);
 
   key_vtn_controller_t *key1(UT_CLONE(key_vtn_controller_t, key));
-  ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key1, NULL);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.DupConfigKeyValVtnStation(okey, ikey));
+  ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStKeyVtnstationController, key1, NULL);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.DupConfigKeyValVtnStation(okey, ikey));
   delete ikey;
   delete okey;
 }
 
-// Passing val2 as NULL to the function
+//  Passing val2 as NULL to the function
 TEST_F(VtnMoMgrTest, FilterAttributes_val2Null) {
   VtnMoMgr vtn;
   void *val1 = NULL;
@@ -625,7 +661,7 @@ TEST_F(VtnMoMgrTest, FilterAttributes_val2Null) {
   free(valVtn1);
 }
 
-// Passing audit_status as false to the function
+//  Passing audit_status as false to the function
 TEST_F(VtnMoMgrTest, FilterAttributes_auditStatus) {
   VtnMoMgr vtn;
   void *val1 = NULL;
@@ -645,7 +681,7 @@ TEST_F(VtnMoMgrTest, FilterAttributes_auditStatus) {
   free(valVtn2);
 }
 
-// Passing valid flag to the function
+//  Passing valid flag to the function
 TEST_F(VtnMoMgrTest, FilterAttributes_val1ValidFlag) {
   VtnMoMgr vtn;
   void *val1 = NULL;
@@ -665,7 +701,7 @@ TEST_F(VtnMoMgrTest, FilterAttributes_val1ValidFlag) {
   free(valVtn2);
 }
 
-// Passing valid flag with delete operation to the function
+//  Passing valid flag with delete operation to the function
 TEST_F(VtnMoMgrTest, FilterAttributes_val2ValidFlag) {
   VtnMoMgr vtn;
   void *val1 = NULL;
@@ -685,102 +721,111 @@ TEST_F(VtnMoMgrTest, FilterAttributes_val2ValidFlag) {
   free(valVtn2);
 }
 
-// Passing NULL to the function
+//  Passing NULL to the function
 TEST_F(VtnMoMgrTest, ValidateVtnKey_nullVal) {
   VtnMoMgr vtn;
   key_vtn_t *keyVtn = NULL;
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnKey(keyVtn));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vtn.ValidateVtnKey(keyVtn));
 }
 
-// Testing the vtn name
+//  Testing the vtn name
 TEST_F(VtnMoMgrTest, ValidateVtnKey_properVal) {
   VtnMoMgr vtn;
   key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
-  strcpy((char*)keyvtn->vtn_name,(const char *)"vtn1");
+  strcpy((char*)keyvtn->vtn_name, (const char *)"vtn1");
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnKey(keyvtn));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ValidateVtnKey(keyvtn));
   free(keyvtn);
 }
 
-// Testing the vtn name with minimum value
+//  Testing the vtn name with minimum value
 TEST_F(VtnMoMgrTest, ValidateVtnKey_minVal) {
   VtnMoMgr vtn;
   key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
-  strcpy((char*)keyvtn->vtn_name,(const char *)"1");
+  strcpy((char*)keyvtn->vtn_name, (const char *)"1");
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnKey(keyvtn));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ValidateVtnKey(keyvtn));
   free(keyvtn);
 }
 
-// Testing the vtn name with maximum value
+//  Testing the vtn name with maximum value
 TEST_F(VtnMoMgrTest, ValidateVtnKey_maxVal) {
   VtnMoMgr vtn;
   key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
   pfc_strlcpy(reinterpret_cast<char *>(keyvtn->vtn_name),
               "vtnsddfkjlkssdklfjsdkladdassdd1", sizeof(keyvtn->vtn_name));
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnKey(keyvtn));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ValidateVtnKey(keyvtn));
   free(keyvtn);
 }
 
-// Testing the vtn name with maximum value exceeds
+//  Testing the vtn name with maximum value exceeds
 TEST_F(VtnMoMgrTest, ValidateVtnKey_maxValExceeds) {
   VtnMoMgr vtn;
   key_vtn_t *keyvtn(ZALLOC_ARRAY(key_vtn_t, 2));
   memcpy(keyvtn->vtn_name, "vtndfgdfddfrsdklfjsdklflsdsddfdfgdgfd1",
          sizeof(keyvtn->vtn_name));
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnKey(keyvtn));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vtn.ValidateVtnKey(keyvtn));
   free(keyvtn);
 }
 
-// Testing the vtn name with empty value
+//  Testing the vtn name with empty value
 TEST_F(VtnMoMgrTest, ValidateVtnKey_emptyVal) {
   VtnMoMgr vtn;
   key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
-  strcpy((char*)keyvtn->vtn_name,(const char *)"");
+  strcpy((char*)keyvtn->vtn_name, (const char *)"");
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnKey(keyvtn));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vtn.ValidateVtnKey(keyvtn));
   free(keyvtn);
 }
 
 /* ValidateVtnValue() */
-// Passing NULL to the function
+//  Passing NULL to the function
 TEST_F(VtnMoMgrTest, ValidateVtnValue_invalidVal) {
   VtnMoMgr vtn;
   val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
   valVtn->valid[UPLL_IDX_DESC_VTN] = UNC_VF_VALID;
   uint32_t op = UNC_OP_CREATE;
-  strcpy((char*)valVtn->description,(const char *)"");
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnValue(valVtn, op)); //Bug 250
+  strcpy((char*)valVtn->description, (const char *)"");
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vtn.ValidateVtnValue(valVtn, op)); // Bug 250
   free(valVtn);
 }
 
-// Testing the vtn description
+//  Testing the vtn description
 TEST_F(VtnMoMgrTest, ValidateVtnValue_properVal) {
   VtnMoMgr vtn;
   val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
   uint32_t op = UNC_OP_CREATE;
   valVtn->valid[UPLL_IDX_DESC_VTN] = UNC_VF_VALID;
-  strcpy((char*)valVtn->description,(const char *)"ashd l1");
+  strcpy((char*)valVtn->description, (const char *)"ashd l1");
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnValue(valVtn, op));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ValidateVtnValue(valVtn, op));
   free(valVtn);
 }
 
-// Testing the vtn description with minimum value
+//  Testing the vtn description with minimum value
 TEST_F(VtnMoMgrTest, ValidateVtnValue_minVal) {
   VtnMoMgr vtn;
   val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
   uint32_t op = UNC_OP_CREATE;
   valVtn->valid[UPLL_IDX_DESC_VTN] = UNC_VF_VALID;
-  strcpy((char*)valVtn->description,(const char *)"1");
+  strcpy((char*)valVtn->description, (const char *)"1");
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnValue(valVtn, op));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ValidateVtnValue(valVtn, op));
   free(valVtn);
 }
 
-// Testing the vtn description with maximum value
+//  Testing the vtn description with maximum value
 TEST_F(VtnMoMgrTest, ValidateVtnValue_maxVal) {
   VtnMoMgr vtn;
   val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
@@ -789,11 +834,12 @@ TEST_F(VtnMoMgrTest, ValidateVtnValue_maxVal) {
   pfc_strlcpy(reinterpret_cast<char *>(valVtn->description),
               "vtnsddfkjlkssdklfjsdkladdassdd1", sizeof(valVtn->description));
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnValue(valVtn, op));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ValidateVtnValue(valVtn, op));
   free(valVtn);
 }
 
-// Testing the vtn description with maximum value exceeds
+//  Testing the vtn description with maximum value exceeds
 TEST_F(VtnMoMgrTest, ValidateVtnValue_maxValExceeds) {
   VtnMoMgr vtn;
   val_vtn_t *valVtn(ZALLOC_ARRAY(val_vtn_t, 2));
@@ -803,93 +849,101 @@ TEST_F(VtnMoMgrTest, ValidateVtnValue_maxValExceeds) {
          "vtndfgjjj;j;j;j;jjjjjjjjjdfddfrsdklfjsdklflsdsddfdfgdgfd1",
          sizeof(valVtn->description));
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnValue(valVtn, op));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ValidateVtnValue(valVtn, op));
   free(valVtn);
 }
 
-// Testing the vtn description with empty value
+//  Testing the vtn description with empty value
 TEST_F(VtnMoMgrTest, ValidateVtnValue_emptyVal) {
   VtnMoMgr vtn;
   val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
   uint32_t op = UNC_OP_CREATE;
   valVtn->valid[UPLL_IDX_DESC_VTN] = UNC_VF_VALID;
-  strcpy((char*)valVtn->description,(const char *)"");
+  strcpy((char*)valVtn->description, (const char *)"");
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnValue(valVtn, op));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vtn.ValidateVtnValue(valVtn, op));
   free(valVtn);
 }
 
-// Testing the vtn description with invalid flag
+//  Testing the vtn description with invalid flag
 TEST_F(VtnMoMgrTest, ValidateVtnValue_invalidFlag) {
   VtnMoMgr vtn;
   val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
   uint32_t op = UNC_OP_CREATE;
   valVtn->valid[UPLL_IDX_DESC_VTN] = UNC_VF_INVALID;
-  strcpy((char*)valVtn->description,(const char *)"vtn1");
+  strcpy((char*)valVtn->description, (const char *)"vtn1");
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnValue(valVtn, op));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ValidateVtnValue(valVtn, op));
   free(valVtn);
 }
 
-// Testing the vtn description with no value flag
+//  Testing the vtn description with no value flag
 TEST_F(VtnMoMgrTest, ValidateVtnValue_novalueFlagCreate) {
   VtnMoMgr vtn;
   val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
   uint32_t op = UNC_OP_CREATE;
   valVtn->valid[UPLL_IDX_DESC_VTN] = UNC_VF_VALID_NO_VALUE;
-  strcpy((char*)valVtn->description,(const char *)"vtn1");
+  strcpy((char*)valVtn->description, (const char *)"vtn1");
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnValue(valVtn, op));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ValidateVtnValue(valVtn, op));
   free(valVtn);
 }
 
-// Testing the vtn description with no value flag
+//  Testing the vtn description with no value flag
 TEST_F(VtnMoMgrTest, ValidateVtnValue_novalueFlagUpdate) {
   VtnMoMgr vtn;
   val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
   uint32_t op = UNC_OP_UPDATE;
   valVtn->valid[UPLL_IDX_DESC_VTN] = UNC_VF_VALID_NO_VALUE;
-  strcpy((char*)valVtn->description,(const char *)"vtn1");
+  strcpy((char*)valVtn->description, (const char *)"vtn1");
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnValue(valVtn, op));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ValidateVtnValue(valVtn, op));
   free(valVtn);
 }
 
-// Testing the vtn description with invalid flag
+//  Testing the vtn description with invalid flag
 TEST_F(VtnMoMgrTest, ValidateVtnValue_novalueFlagDelete) {
   VtnMoMgr vtn;
   val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
   uint32_t op = UNC_OP_DELETE;
   valVtn->valid[UPLL_IDX_DESC_VTN] = UNC_VF_VALID_NO_VALUE;
-  strcpy((char*)valVtn->description,(const char *)"vtn1");
+  strcpy((char*)valVtn->description, (const char *)"vtn1");
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnValue(valVtn, op));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ValidateVtnValue(valVtn, op));
   free(valVtn);
 }
 
-// Testing the vtn name
+//  Testing the vtn name
 TEST_F(VtnMoMgrTest, ValidateVtnRenameValue_properVal) {
   VtnMoMgr vtn;
   val_rename_vtn_t *valVtnRename(ZALLOC_TYPE(val_rename_vtn_t));
   valVtnRename->valid[UPLL_IDX_NEW_NAME_RVTN] = UNC_VF_VALID;
-  strcpy((char*)valVtnRename->new_name,(const char *)"vtn1");
+  strcpy((char*)valVtnRename->new_name, (const char *)"vtn1");
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnRenameValue(valVtnRename));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ValidateVtnRenameValue(valVtnRename));
   free(valVtnRename);
 }
 
-// Testing the vtn name with minimum value
+//  Testing the vtn name with minimum value
 TEST_F(VtnMoMgrTest, ValidateVtnRenameValue_minVal) {
   VtnMoMgr vtn;
   val_rename_vtn_t *valVtnRename(ZALLOC_TYPE(val_rename_vtn_t));
   valVtnRename->valid[UPLL_IDX_NEW_NAME_RVTN] = UNC_VF_VALID;
-  strcpy((char*)valVtnRename->new_name,(const char *)"1");
+  strcpy((char*)valVtnRename->new_name, (const char *)"1");
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnRenameValue(valVtnRename));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ValidateVtnRenameValue(valVtnRename));
   free(valVtnRename);
 }
 
-// Testing the vtn name with maximum value
+//  Testing the vtn name with maximum value
 TEST_F(VtnMoMgrTest, ValidateVtnRenameValue_maxVal) {
   VtnMoMgr vtn;
   val_rename_vtn_t *valVtnRename(ZALLOC_TYPE(val_rename_vtn_t));
@@ -898,11 +952,12 @@ TEST_F(VtnMoMgrTest, ValidateVtnRenameValue_maxVal) {
               "vtnsddfkjlkssdklfjsdkladdassdd1",
               sizeof(valVtnRename->new_name));
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnRenameValue(valVtnRename));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ValidateVtnRenameValue(valVtnRename));
   free(valVtnRename);
 }
 
-// Testing the vtn name with maximum value exceeds
+//  Testing the vtn name with maximum value exceeds
 TEST_F(VtnMoMgrTest, ValidateVtnRenameValue_maxValExceeds) {
   VtnMoMgr vtn;
   val_rename_vtn_t *valVtnRename(ZALLOC_ARRAY(val_rename_vtn_t, 2));
@@ -911,165 +966,180 @@ TEST_F(VtnMoMgrTest, ValidateVtnRenameValue_maxValExceeds) {
          "vtndfgdfddfrsdklfjsdklflsdsddfdfgdgfd1",
          sizeof(valVtnRename->new_name));
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnRenameValue(valVtnRename));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vtn.ValidateVtnRenameValue(valVtnRename));
   free(valVtnRename);
 }
 
-// Testing the vtn name with empty value
+//  Testing the vtn name with empty value
 TEST_F(VtnMoMgrTest, ValidateVtnRenameValue_emptyVal) {
   VtnMoMgr vtn;
   val_rename_vtn_t *valVtnRename(ZALLOC_TYPE(val_rename_vtn_t));
   valVtnRename->valid[UPLL_IDX_NEW_NAME_RVTN] = UNC_VF_VALID;
-  strcpy((char*)valVtnRename->new_name,(const char *)"");
+  strcpy((char*)valVtnRename->new_name, (const char *)"");
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnRenameValue(valVtnRename));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vtn.ValidateVtnRenameValue(valVtnRename));
   free(valVtnRename);
 }
 
-// Testing the vtn name with invalid flag
+//  Testing the vtn name with invalid flag
 TEST_F(VtnMoMgrTest, ValidateVtnRenameValue_invalidFlag) {
   VtnMoMgr vtn;
   val_rename_vtn_t *valVtnRename(ZALLOC_TYPE(val_rename_vtn_t));
   valVtnRename->valid[UPLL_IDX_NEW_NAME_RVTN] = UNC_VF_INVALID;
-  strcpy((char*)valVtnRename->new_name,(const char *)"vtn1");
+  strcpy((char*)valVtnRename->new_name, (const char *)"vtn1");
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnRenameValue(valVtnRename));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ValidateVtnRenameValue(valVtnRename));
   free(valVtnRename);
 }
 
 
 /* ValidateVtnMapCtrlrKey() */
-// Passing NULL to the function
+//  Passing NULL to the function
 TEST_F(VtnMoMgrTest, ValidateVtnMapCtrlrKey_nullVal) {
   VtnMoMgr vtn;
   key_vtn_controller_t *keyVtnMap = NULL;
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnMapCtrlrKey(keyVtnMap,UNC_OP_CREATE));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vtn.ValidateVtnMapCtrlrKey(keyVtnMap, UNC_OP_CREATE));
 }
 
-// Testing the controller name and vtn name
+//  Testing the controller name and vtn name
 TEST_F(VtnMoMgrTest, ValidateVtnMapCtrlrKey_properVal) {
   VtnMoMgr vtn;
   key_vtn_controller_t *keyVtnMap(ZALLOC_TYPE(key_vtn_controller_t));
-  strcpy((char*)keyVtnMap->vtn_key.vtn_name,(const char *)"vtn1");
-  strcpy((char*)keyVtnMap->controller_name,(const char *)"pfc1");
+  strcpy((char*)keyVtnMap->vtn_key.vtn_name, (const char *)"vtn1");
+  strcpy((char*)keyVtnMap->controller_name, (const char *)"pfc1");
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnMapCtrlrKey(keyVtnMap,UNC_OP_CREATE));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vtn.ValidateVtnMapCtrlrKey(keyVtnMap, UNC_OP_CREATE));
   free(keyVtnMap);
 }
 
-// Testing the controller name with minimum value and proper vtn name
+//  Testing the controller name with minimum value and proper vtn name
 TEST_F(VtnMoMgrTest, ValidateVtnMapCtrlrKey_ctrlNameMin) {
   VtnMoMgr vtn;
   key_vtn_controller_t *keyVtnMap(ZALLOC_TYPE(key_vtn_controller_t));
-  strcpy((char*)keyVtnMap->vtn_key.vtn_name,(const char *)"vtn1");
-  strcpy((char*)keyVtnMap->controller_name,(const char *)"1");
+  strcpy((char*)keyVtnMap->vtn_key.vtn_name, (const char *)"vtn1");
+  strcpy((char*)keyVtnMap->controller_name, (const char *)"1");
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnMapCtrlrKey(keyVtnMap,UNC_OP_CREATE));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vtn.ValidateVtnMapCtrlrKey(keyVtnMap, UNC_OP_CREATE));
   free(keyVtnMap);
 }
 
-// Testing the controller name with maximum value and proper vtn name
+//  Testing the controller name with maximum value and proper vtn name
 TEST_F(VtnMoMgrTest, ValidateVtnMapCtrlrKey_ctrlNameMax) {
   VtnMoMgr vtn;
   key_vtn_controller_t *keyVtnMap(ZALLOC_TYPE(key_vtn_controller_t));
-  strcpy((char*)keyVtnMap->vtn_key.vtn_name,(const char *)"vtn1");
+  strcpy((char*)keyVtnMap->vtn_key.vtn_name, (const char *)"vtn1");
   pfc_strlcpy(reinterpret_cast<char *>(keyVtnMap->controller_name),
               "vtnstationcontrollersdklfjsdkl1",
               sizeof(keyVtnMap->controller_name));
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnMapCtrlrKey(keyVtnMap,UNC_OP_CREATE));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vtn.ValidateVtnMapCtrlrKey(keyVtnMap, UNC_OP_CREATE));
   free(keyVtnMap);
 }
 
-// Testing the controller name with maximum value exceeds and proper vtn name
+//  Testing the controller name with maximum value exceeds and proper vtn name
 TEST_F(VtnMoMgrTest, ValidateVtnMapCtrlrKey_ctrlNameMaxExceeds) {
   VtnMoMgr vtn;
   key_vtn_controller_t *keyVtnMap(ZALLOC_ARRAY(key_vtn_controller_t, 2));
-  strcpy((char*)keyVtnMap->vtn_key.vtn_name,(const char *)"vtn1");
+  strcpy((char*)keyVtnMap->vtn_key.vtn_name, (const char *)"vtn1");
   memcpy(keyVtnMap->controller_name,
          "vtnstationcontrollersdklfjsdklflsdsddf1",
          sizeof(keyVtnMap->controller_name));
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnMapCtrlrKey(keyVtnMap,UNC_OP_CREATE));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vtn.ValidateVtnMapCtrlrKey(keyVtnMap, UNC_OP_CREATE));
   free(keyVtnMap);
 }
 
-// Testing the controller name with empty value and proper vtn name
+//  Testing the controller name with empty value and proper vtn name
 TEST_F(VtnMoMgrTest, ValidateVtnMapCtrlrKey_ctrlNameempty) {
   VtnMoMgr vtn;
   key_vtn_controller_t *keyVtnMap(ZALLOC_TYPE(key_vtn_controller_t));
-  strcpy((char*)keyVtnMap->vtn_key.vtn_name,(const char *)"vtn1");
-  strcpy((char*)keyVtnMap->controller_name,(const char *)"");
+  strcpy((char*)keyVtnMap->vtn_key.vtn_name, (const char *)"vtn1");
+  strcpy((char*)keyVtnMap->controller_name, (const char *)"");
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnMapCtrlrKey(keyVtnMap,UNC_OP_CREATE));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vtn.ValidateVtnMapCtrlrKey(keyVtnMap, UNC_OP_CREATE));
   free(keyVtnMap);
 }
 
-// Testing the vtn name with minimum value and proper controller name
+//  Testing the vtn name with minimum value and proper controller name
 TEST_F(VtnMoMgrTest, ValidateVtnMapCtrlrKey_vtnNameMin) {
   VtnMoMgr vtn;
   key_vtn_controller_t *keyVtnMap(ZALLOC_TYPE(key_vtn_controller_t));
-  strcpy((char*)keyVtnMap->vtn_key.vtn_name,(const char *)"1");
-  strcpy((char*)keyVtnMap->controller_name,(const char *)"pfc1");
+  strcpy((char*)keyVtnMap->vtn_key.vtn_name, (const char *)"1");
+  strcpy((char*)keyVtnMap->controller_name, (const char *)"pfc1");
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnMapCtrlrKey(keyVtnMap,UNC_OP_CREATE));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vtn.ValidateVtnMapCtrlrKey(keyVtnMap, UNC_OP_CREATE));
   free(keyVtnMap);
 }
 
-// Testing the vtn name with maximum value and proper controller name
+//  Testing the vtn name with maximum value and proper controller name
 TEST_F(VtnMoMgrTest, ValidateVtnMapCtrlrKey_vtnNameMax) {
   VtnMoMgr vtn;
   key_vtn_controller_t *keyVtnMap(ZALLOC_TYPE(key_vtn_controller_t));
   pfc_strlcpy(reinterpret_cast<char *>(keyVtnMap->vtn_key.vtn_name),
               "vtnsdaflkjsdfhksdfgdghkshglkas1",
               sizeof(keyVtnMap->vtn_key.vtn_name));
-  strcpy((char*)keyVtnMap->controller_name,(const char *)"pfc1");
+  strcpy((char*)keyVtnMap->controller_name, (const char *)"pfc1");
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnMapCtrlrKey(keyVtnMap,UNC_OP_CREATE));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+            vtn.ValidateVtnMapCtrlrKey(keyVtnMap, UNC_OP_CREATE));
   free(keyVtnMap);
 }
 
-// Testing the vtn name with maximum value exceeds and proper controller name
+//  Testing the vtn name with maximum value exceeds and proper controller name
 TEST_F(VtnMoMgrTest, ValidateVtnMapCtrlrKey_vtnNameMaxExceeds) {
   VtnMoMgr vtn;
   key_vtn_controller_t *keyVtnMap(ZALLOC_ARRAY(key_vtn_controller_t, 2));
   memcpy(keyVtnMap->vtn_key.vtn_name, "vtnsdaflkjsdfhksdfghkjasdghkshglkask1",
          sizeof(keyVtnMap->vtn_key.vtn_name));
-  strcpy((char*)keyVtnMap->controller_name,(const char *)"pfc1");
+  strcpy((char*)keyVtnMap->controller_name, (const char *)"pfc1");
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnMapCtrlrKey(keyVtnMap,UNC_OP_CREATE));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vtn.ValidateVtnMapCtrlrKey(keyVtnMap, UNC_OP_CREATE));
   free(keyVtnMap);
 }
 
-// Testing the vtn name with empty value and proper controller name
+//  Testing the vtn name with empty value and proper controller name
 TEST_F(VtnMoMgrTest, ValidateVtnMapCtrlrKey_vtnNameEmpty) {
   VtnMoMgr vtn;
   key_vtn_controller_t *keyVtnMap(ZALLOC_TYPE(key_vtn_controller_t));
-  strcpy((char*)keyVtnMap->vtn_key.vtn_name,(const char *)"");
-  strcpy((char*)keyVtnMap->controller_name,(const char *)"pfc1");
+  strcpy((char*)keyVtnMap->vtn_key.vtn_name, (const char *)"");
+  strcpy((char*)keyVtnMap->controller_name, (const char *)"pfc1");
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnMapCtrlrKey(keyVtnMap,UNC_OP_CREATE));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vtn.ValidateVtnMapCtrlrKey(keyVtnMap, UNC_OP_CREATE));
   free(keyVtnMap);
 }
 
 /* ValidateVtnStnCtrlrKey() */
-// Passing NULL to the function
+//  Passing NULL to the function
 TEST_F(VtnMoMgrTest, ValidateVtnStnCtrlrKey_nullVal) {
   VtnMoMgr vtn;
   key_vtnstation_controller_t *keyVtnStn = NULL;
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnStnCtrlrKey(keyVtnStn,UNC_OP_CREATE));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vtn.ValidateVtnStnCtrlrKey(keyVtnStn, UNC_OP_CREATE));
 }
 
-// Testing the controller name
+//  Testing the controller name
 TEST_F(VtnMoMgrTest, ValidateVtnStnCtrlrKey_properVal) {
   VtnMoMgr vtn;
   key_vtnstation_controller_t *keyVtnStn
       (ZALLOC_TYPE(key_vtnstation_controller_t));
-  strcpy((char*)keyVtnStn->controller_name,(const char *)"pfc1");
+  strcpy((char*)keyVtnStn->controller_name, (const char *)"pfc1");
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnStnCtrlrKey(keyVtnStn,UNC_OP_CREATE));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ValidateVtnStnCtrlrKey(keyVtnStn, UNC_OP_CREATE));
   free(keyVtnStn);
 }
 
@@ -1077,24 +1147,26 @@ TEST_F(VtnMoMgrTest, ValidateVtnStnCtrlrKey_READ_SIBLING_COUNT) {
   VtnMoMgr vtn;
   key_vtnstation_controller_t *keyVtnStn
       (ZALLOC_TYPE(key_vtnstation_controller_t));
-  strcpy((char*)keyVtnStn->controller_name,(const char *)"pfc1");
+  strcpy((char*)keyVtnStn->controller_name, (const char *)"pfc1");
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnStnCtrlrKey(keyVtnStn,UNC_OP_READ_SIBLING_COUNT));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ValidateVtnStnCtrlrKey(keyVtnStn, UNC_OP_READ_SIBLING_COUNT));
   free(keyVtnStn);
 }
 
-// Testing the controller name with minimum value
+//  Testing the controller name with minimum value
 TEST_F(VtnMoMgrTest, ValidateVtnStnCtrlrKey_minVal) {
   VtnMoMgr vtn;
   key_vtnstation_controller_t *keyVtnStn
       (ZALLOC_TYPE(key_vtnstation_controller_t));
   keyVtnStn->controller_name[0] = 'a';
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnStnCtrlrKey(keyVtnStn,UNC_OP_CREATE));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ValidateVtnStnCtrlrKey(keyVtnStn, UNC_OP_CREATE));
   free(keyVtnStn);
 }
 
-// Testing the controller name with maximum value
+//  Testing the controller name with maximum value
 TEST_F(VtnMoMgrTest, ValidateVtnStnCtrlrKey_maxVal) {
   VtnMoMgr vtn;
   key_vtnstation_controller_t *keyVtnStn
@@ -1103,11 +1175,12 @@ TEST_F(VtnMoMgrTest, ValidateVtnStnCtrlrKey_maxVal) {
               "vtnstationcontrollhljhleouuuuuu",
               sizeof(keyVtnStn->controller_name));
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateVtnStnCtrlrKey(keyVtnStn,UNC_OP_CREATE));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ValidateVtnStnCtrlrKey(keyVtnStn, UNC_OP_CREATE));
   free(keyVtnStn);
 }
 
-// Testing the controller name with maximum value exceeds
+//  Testing the controller name with maximum value exceeds
 TEST_F(VtnMoMgrTest, ValidateVtnStnCtrlrKey_maxValExceeds) {
   VtnMoMgr vtn;
   key_vtnstation_controller_t *keyVtnStn
@@ -1115,18 +1188,20 @@ TEST_F(VtnMoMgrTest, ValidateVtnStnCtrlrKey_maxValExceeds) {
   memcpy(keyVtnStn->controller_name, "vtnstationcontrollersdklfjsdklflsdsddf1",
          sizeof(keyVtnStn->controller_name));
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnStnCtrlrKey(keyVtnStn,UNC_OP_CREATE));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vtn.ValidateVtnStnCtrlrKey(keyVtnStn, UNC_OP_CREATE));
   free(keyVtnStn);
 }
 
-// Testing the controller name with empty value
+//  Testing the controller name with empty value
 TEST_F(VtnMoMgrTest, ValidateVtnStnCtrlrKey_emptyVal) {
   VtnMoMgr vtn;
   key_vtnstation_controller_t *keyVtnStn
       (ZALLOC_TYPE(key_vtnstation_controller_t));
-  strcpy((char*)keyVtnStn->controller_name,(const char *)"");
+  strcpy((char*)keyVtnStn->controller_name, (const char *)"");
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateVtnStnCtrlrKey(keyVtnStn,UNC_OP_CREATE));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vtn.ValidateVtnStnCtrlrKey(keyVtnStn, UNC_OP_CREATE));
   free(keyVtnStn);
 }
 
@@ -1142,14 +1217,15 @@ TEST_F(VtnMoMgrTest, ReadMo_otherKT_detail) {
   req->option2 = UNC_OPT2_NONE;
 
   key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
-  strcpy((char*)keyvtn->vtn_name,(const char *)"vtn1");
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, NULL);
+  strcpy((char*)keyvtn->vtn_name, (const char *)"vtn1");
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+    IpctSt::kIpcStKeyVtn, keyvtn, NULL);
 
   EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION1, vtn.ReadMo(req, ikey, dmi));
   delete ikey;
 }
 
-//otherKT when option1 = UNC_OPT1_COUNT
+// otherKT when option1 = UNC_OPT1_COUNT
 TEST_F(VtnMoMgrTest, ReadMo_otherKT_count) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -1161,14 +1237,15 @@ TEST_F(VtnMoMgrTest, ReadMo_otherKT_count) {
   req->option2 = UNC_OPT2_NONE;
 
   key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
-  strcpy((char*)keyvtn->vtn_name,(const char *)"vtn1");
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, NULL);
+  strcpy((char*)keyvtn->vtn_name, (const char *)"vtn1");
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+    IpctSt::kIpcStKeyVtn, keyvtn, NULL);
 
   EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION1, vtn.ReadMo(req, ikey, dmi));
   delete ikey;
 }
 
-//UNC_KT_VTN_MAPPING_CONTROLLER has wrong dt_type
+// UNC_KT_VTN_MAPPING_CONTROLLER has wrong dt_type
 TEST_F(VtnMoMgrTest, ReadMo_mapping_invaliddatatype) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -1182,14 +1259,17 @@ TEST_F(VtnMoMgrTest, ReadMo_mapping_invaliddatatype) {
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping); 
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+    IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE, vtn.ReadMo(req, ikey, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE,
+     vtn.ReadMo(req, ikey, dmi));
   delete ikey;
 }
 
-//UNC_KT_VTN_MAPPING_CONTROLLER has wrong st_num
+// UNC_KT_VTN_MAPPING_CONTROLLER has wrong st_num
 TEST_F(VtnMoMgrTest, ReadMo_mapping_invalidstnum) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -1203,14 +1283,17 @@ TEST_F(VtnMoMgrTest, ReadMo_mapping_invalidstnum) {
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping); 
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtn, key_ctrlr, config_val);
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+    IpctSt::kIpcStKeyVtn, key_ctrlr, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ReadMo(req, ikey, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vtn.ReadMo(req, ikey, dmi));
   delete ikey;
 }
 
-//UNC_KT_VTN_MAPPING_CONTROLLER has no vtn_name
+// UNC_KT_VTN_MAPPING_CONTROLLER has no vtn_name
 TEST_F(VtnMoMgrTest, ReadMo_mapping_emptyvtnname) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -1224,11 +1307,14 @@ TEST_F(VtnMoMgrTest, ReadMo_mapping_emptyvtnname) {
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
-  strcpy((char*)key_ctrlr->vtn_key.vtn_name,(const char *)"");
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+    IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
+  strcpy((char*)key_ctrlr->vtn_key.vtn_name, (const char *)"");
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ReadMo(req, ikey, dmi)); //Bug raised already
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vtn.ReadMo(req, ikey, dmi));  // Bug raised already
   delete ikey;
 }
 
@@ -1243,20 +1329,23 @@ TEST_F(VtnMoMgrTest, ReadMo_mapping_valid) {
   req->option2 = UNC_OPT2_NONE;
 
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
-  strcpy((char*)key_ctrlr->controller_name,(const char *)"pfc1");
-  strcpy((char*)key_ctrlr->domain_id,(const char *)"dom1");
+  strcpy((char*)key_ctrlr->controller_name, (const char *)"pfc1");
+  strcpy((char*)key_ctrlr->domain_id, (const char *)"dom1");
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  strcpy((char*)val_mapping->switch_id,(const char *)"switch_id1");
-  strcpy((char*)val_mapping->port_name,(const char *)"port_name1");
-  strcpy((char*)val_mapping->vbr_name,(const char *)"vbr_name1");
-  strcpy((char*)val_mapping->vbrif_name,(const char *)"vbrif_name1");
-  strcpy((char*)val_mapping->logical_port_id,(const char *)"logical_port_id1");
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
-  strcpy((char*)key_ctrlr->vtn_key.vtn_name,(const char *)"vtn1");
+  strcpy((char*)val_mapping->switch_id, (const char *)"switch_id1");
+  strcpy((char*)val_mapping->port_name, (const char *)"port_name1");
+  strcpy((char*)val_mapping->vbr_name, (const char *)"vbr_name1");
+  strcpy((char*)val_mapping->vbrif_name, (const char *)"vbrif_name1");
+  strcpy((char*)val_mapping->logical_port_id, (const char *)"logical_port_id1");
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+    IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
+  strcpy((char*)key_ctrlr->vtn_key.vtn_name, (const char *)"vtn1");
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadMo(req, ikey, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.ReadMo(req, ikey, dmi));
   delete ikey;
 }
 
@@ -1271,24 +1360,27 @@ TEST_F(VtnMoMgrTest, ReadMo_mapping_invalid_01) {
   req->option2 = UNC_OPT2_NONE;
 
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
-  strcpy((char*)key_ctrlr->controller_name,(const char *)"pfc1");
-  strcpy((char*)key_ctrlr->domain_id,(const char *)"dom1");
+  strcpy((char*)key_ctrlr->controller_name, (const char *)"pfc1");
+  strcpy((char*)key_ctrlr->domain_id, (const char *)"dom1");
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  strcpy((char*)val_mapping->switch_id,(const char *)"switch_id1");
-  strcpy((char*)val_mapping->port_name,(const char *)"port_name1");
-  strcpy((char*)val_mapping->vbr_name,(const char *)"vbr_name1");
-  strcpy((char*)val_mapping->vbrif_name,(const char *)"vbrif_name1");
-  strcpy((char*)val_mapping->logical_port_id,(const char *)"logical_port_id1");
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
-  strcpy((char*)key_ctrlr->vtn_key.vtn_name,(const char *)"vtn1");
+  strcpy((char*)val_mapping->switch_id, (const char *)"switch_id1");
+  strcpy((char*)val_mapping->port_name, (const char *)"port_name1");
+  strcpy((char*)val_mapping->vbr_name, (const char *)"vbr_name1");
+  strcpy((char*)val_mapping->vbrif_name, (const char *)"vbrif_name1");
+  strcpy((char*)val_mapping->logical_port_id, (const char *)"logical_port_id1");
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+    IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
+  strcpy((char*)key_ctrlr->vtn_key.vtn_name, (const char *)"vtn1");
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ReadMo(req, ikey, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vtn.ReadMo(req, ikey, dmi));
   delete ikey;
 }
 
-//UNC_KT_VTN_MAPPING_CONTROLLER has domain
+// UNC_KT_VTN_MAPPING_CONTROLLER has domain
 TEST_F(VtnMoMgrTest, ReadMo_mapping_withctrl_domain) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -1302,13 +1394,16 @@ TEST_F(VtnMoMgrTest, ReadMo_mapping_withctrl_domain) {
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
-  strcpy((char*)key_ctrlr->vtn_key.vtn_name,(const char *)"vtn1");
-  strcpy((char*)key_ctrlr->controller_name,(const char *)"pfc1");
-  strcpy((char*)key_ctrlr->domain_id,(const char *)"dom1");
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+    IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
+  strcpy((char*)key_ctrlr->vtn_key.vtn_name, (const char *)"vtn1");
+  strcpy((char*)key_ctrlr->controller_name, (const char *)"pfc1");
+  strcpy((char*)key_ctrlr->domain_id, (const char *)"dom1");
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadMo(req, ikey, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.ReadMo(req, ikey, dmi));
   delete ikey;
 }
 
@@ -1326,14 +1421,17 @@ TEST_F(VtnMoMgrTest, ReadMo_Station_invalidkeytype) {
       (ZALLOC_TYPE(key_vtnstation_controller_t));
   val_vtnstation_controller_st_t *val_station
       (ZALLOC_TYPE(val_vtnstation_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnstationControllerSt, val_station);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+    IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadMo(req, ikey, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.ReadMo(req, ikey, dmi));
   delete ikey;
 }
 
-//UNC_KT_VTNSTATION_CONTROLLER has wrong st_num
+// UNC_KT_VTNSTATION_CONTROLLER has wrong st_num
 TEST_F(VtnMoMgrTest, ReadMo_Station_invalidstnum) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -1348,14 +1446,17 @@ TEST_F(VtnMoMgrTest, ReadMo_Station_invalidstnum) {
       (ZALLOC_TYPE(key_vtnstation_controller_t));
   val_vtnstation_controller_st_t *val_station
       (ZALLOC_TYPE(val_vtnstation_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtn, key_station, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnstationControllerSt, val_station);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStKeyVtn, key_station, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ReadMo(req, ikey, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vtn.ReadMo(req, ikey, dmi));
   delete ikey;
 }
 
-//UNC_KT_VTNSTATION_CONTROLLER has no ctrlr_name
+// UNC_KT_VTNSTATION_CONTROLLER has no ctrlr_name
 TEST_F(VtnMoMgrTest, ReadMo_Station_emptyctrlrname) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -1370,11 +1471,14 @@ TEST_F(VtnMoMgrTest, ReadMo_Station_emptyctrlrname) {
       (ZALLOC_TYPE(key_vtnstation_controller_t));
   val_vtnstation_controller_st_t *val_station
       (ZALLOC_TYPE(val_vtnstation_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
-  strcpy((char*)key_station->controller_name,(const char *)"");
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnstationControllerSt, val_station);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
+  strcpy((char*)key_station->controller_name, (const char *)"");
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ReadMo(req, ikey, dmi)); //Bug raised already
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vtn.ReadMo(req, ikey, dmi)); // Bug raised already
   delete ikey;
 }
 
@@ -1390,20 +1494,30 @@ TEST_F(VtnMoMgrTest, ReadMo_Station_valid_01) {
 
   key_vtnstation_controller_t *key_station
       (ZALLOC_TYPE(key_vtnstation_controller_t));
-  uuu::upll_strncpy(key_station->controller_name,"pfc1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_station->controller_name, "pfc1", (kMaxLenCtrlrId + 1));
   val_vtnstation_controller_st_t *val_station
       (ZALLOC_TYPE(val_vtnstation_controller_st_t));
-  uuu::upll_strncpy(val_station->vtn_name,"vtn_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_station->vbr_name,"vbr_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_station->vbrif_name,"vbrif_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_station->domain_id,"domain_id", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_station->switch_id,"switch_id", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_station->port_name,"port_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_station->vtn_name, "vtn_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_station->vbr_name, "vbr_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_station->vbrif_name, "vbrif_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_station->domain_id, "domain_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_station->switch_id, "switch_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_station->port_name, "port_name", (kMaxLenCtrlrId + 1));
+
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnstationControllerSt, val_station);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
-
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadMo(req, ikey, dmi)); //Bug has to raise
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.ReadMo(req, ikey, dmi)); // Bug has to raise
   delete ikey;
 }
 
@@ -1419,20 +1533,30 @@ TEST_F(VtnMoMgrTest, ReadMo_Station_valid_02) {
 
   key_vtnstation_controller_t *key_station
       (ZALLOC_TYPE(key_vtnstation_controller_t));
-  uuu::upll_strncpy(key_station->controller_name,"pfc1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_station->controller_name, "pfc1", (kMaxLenCtrlrId + 1));
   val_vtnstation_controller_st_t *val_station
       (ZALLOC_TYPE(val_vtnstation_controller_st_t));
-  uuu::upll_strncpy(val_station->vtn_name,"vtn_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_station->vbr_name,"vbr_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_station->vbrif_name,"vbrif_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_station->domain_id,"domain_id", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_station->switch_id,"switch_id", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_station->port_name,"port_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_station->vtn_name, "vtn_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_station->vbr_name, "vbr_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_station->vbrif_name, "vbrif_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_station->domain_id, "domain_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_station->switch_id, "switch_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_station->port_name, "port_name", (kMaxLenCtrlrId + 1));
+
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnstationControllerSt, val_station);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
-
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadMo(req, ikey, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.ReadMo(req, ikey, dmi));
   delete ikey;
 }
 
@@ -1448,20 +1572,25 @@ TEST_F(VtnMoMgrTest, ReadMo_Station_valid_03) {
 
   key_vtnstation_controller_t *key_station
       (ZALLOC_TYPE(key_vtnstation_controller_t));
-  uuu::upll_strncpy(key_station->controller_name,"pfc1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_station->controller_name, "pfc1", (kMaxLenCtrlrId + 1));
   val_vtnstation_controller_st_t *val_station
       (ZALLOC_TYPE(val_vtnstation_controller_st_t));
   memset(val_station, 0, sizeof(val_vtnstation_controller_st_t));
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, NULL);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStKeyVtnstationController, key_station, NULL);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadMo(req, ikey, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.ReadMo(req, ikey, dmi));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, ReadMo_mapping_valid_01) {
   VtnMoMgr vtn;
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_COUNT,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::RECORD_EXISTS, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::RECORD_COUNT, kDalRcSuccess);
   IPC_REQ_RESP_HEADER_DECL(req);
   DalDmlIntf *dmi(getDalDmlIntf());
 
@@ -1471,31 +1600,48 @@ TEST_F(VtnMoMgrTest, ReadMo_mapping_valid_01) {
   req->option2 = UNC_OPT2_NONE;
 
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
-  uuu::upll_strncpy(key_ctrlr->controller_name,"controller_name1", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(key_ctrlr->domain_id,"domain_id", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(key_ctrlr->vtn_key.vtn_name,"vtn_name1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->controller_name,
+                    "controller_name1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->domain_id,
+                    "domain_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->vtn_key.vtn_name,
+                    "vtn_name1", (kMaxLenCtrlrId + 1));
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  uuu::upll_strncpy(val_mapping->logical_port_id,"logical_port_id1", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_mapping->vbr_name,"vbr_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_mapping->vbrif_name,"vbrif_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_mapping->switch_id,"switch_id", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_mapping->port_name,"port_name", (kMaxLenCtrlrId + 1));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
+  uuu::upll_strncpy(
+    val_mapping->logical_port_id, "logical_port_id1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_mapping->vbr_name, "vbr_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_mapping->vbrif_name, "vbrif_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_mapping->switch_id, "switch_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_mapping->port_name, "port_name", (kMaxLenCtrlrId + 1));
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+    IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
 
   createControllerInfo("controller_name1", UPLL_DT_RUNNING, UNC_CT_PFC);
 
-  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE, vtn.ReadMo(req, ikey, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE,
+     vtn.ReadMo(req, ikey, dmi));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, ReadMo_mapping_valid_02) {
   VtnMoMgr vtn;
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::INIT, kDalRcSuccess);
   DalOdbcMgr::stub_setSingleRecordExists(true);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_COUNT,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::RECORD_EXISTS, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::RECORD_COUNT, kDalRcSuccess);
   IPC_REQ_RESP_HEADER_DECL(req);
   DalDmlIntf *dmi(getDalDmlIntf());
 
@@ -1505,20 +1651,34 @@ TEST_F(VtnMoMgrTest, ReadMo_mapping_valid_02) {
   req->option2 = UNC_OPT2_NONE;
 
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
-  uuu::upll_strncpy(key_ctrlr->controller_name,"controller_name1", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(key_ctrlr->domain_id,"domain_id", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(key_ctrlr->vtn_key.vtn_name,"vtn_name1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->controller_name,
+                    "controller_name1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->domain_id,
+                    "domain_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->vtn_key.vtn_name,
+                    "vtn_name1", (kMaxLenCtrlrId + 1));
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  uuu::upll_strncpy(val_mapping->logical_port_id,"logical_port_id1", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_mapping->vbr_name,"vbr_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_mapping->vbrif_name,"vbrif_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_mapping->switch_id,"switch_id", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_mapping->port_name,"port_name", (kMaxLenCtrlrId + 1));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
+  uuu::upll_strncpy(
+    val_mapping->logical_port_id, "logical_port_id1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_mapping->vbr_name, "vbr_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_mapping->vbrif_name, "vbrif_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_mapping->switch_id, "switch_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_mapping->port_name, "port_name", (kMaxLenCtrlrId + 1));
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+    IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadMo(req, ikey, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.ReadMo(req, ikey, dmi));
   delete ikey;
 }
 
@@ -1533,17 +1693,19 @@ TEST_F(VtnMoMgrTest, ReadMo_mapping_valid_03) {
   req->option2 = UNC_OPT2_NONE;
 
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
-  strcpy((char*)key_ctrlr->controller_name,(const char *)"pfc1");
-  strcpy((char*)key_ctrlr->domain_id,(const char *)"dom1");
+  strcpy((char*)key_ctrlr->controller_name, (const char *)"pfc1");
+  strcpy((char*)key_ctrlr->domain_id, (const char *)"dom1");
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  strcpy((char*)val_mapping->switch_id,(const char *)"switch_id1");
-  strcpy((char*)val_mapping->port_name,(const char *)"port_name1");
-  strcpy((char*)val_mapping->vbr_name,(const char *)"vbr_name1");
-  strcpy((char*)val_mapping->vbrif_name,(const char *)"vbrif_name1");
-  strcpy((char*)val_mapping->logical_port_id,(const char *)"logical_port_id1");
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
+  strcpy((char*)val_mapping->switch_id, (const char *)"switch_id1");
+  strcpy((char*)val_mapping->port_name, (const char *)"port_name1");
+  strcpy((char*)val_mapping->vbr_name, (const char *)"vbr_name1");
+  strcpy((char*)val_mapping->vbrif_name, (const char *)"vbrif_name1");
+  strcpy((char*)val_mapping->logical_port_id, (const char *)"logical_port_id1");
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+    IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
 
   EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION1, vtn.ReadMo(req, ikey, dmi));
   delete ikey;
@@ -1551,11 +1713,15 @@ TEST_F(VtnMoMgrTest, ReadMo_mapping_valid_03) {
 
 TEST_F(VtnMoMgrTest, ReadMo_mapping_valid_04) {
   VtnMoMgr vtn;
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::INIT, kDalRcSuccess);
   DalOdbcMgr::stub_setSingleRecordExists(true);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_COUNT,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::RECORD_EXISTS, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::RECORD_COUNT, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcSuccess);
   IPC_REQ_RESP_HEADER_DECL(req);
   DalDmlIntf *dmi(getDalDmlIntf());
   req->datatype = UPLL_DT_STATE;
@@ -1564,30 +1730,47 @@ TEST_F(VtnMoMgrTest, ReadMo_mapping_valid_04) {
   req->option2 = UNC_OPT2_NONE;
 
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
-  uuu::upll_strncpy(key_ctrlr->controller_name,"controller_name1", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(key_ctrlr->domain_id,"domain_id", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(key_ctrlr->vtn_key.vtn_name,"vtn_name1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->controller_name,
+                    "controller_name1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->domain_id,
+                    "domain_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->vtn_key.vtn_name,
+                    "vtn_name1", (kMaxLenCtrlrId + 1));
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  uuu::upll_strncpy(val_mapping->logical_port_id,"logical_port_id1", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_mapping->vbr_name,"vbr_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_mapping->vbrif_name,"vbrif_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_mapping->switch_id,"switch_id", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_mapping->port_name,"port_name", (kMaxLenCtrlrId + 1));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
+  uuu::upll_strncpy(
+    val_mapping->logical_port_id, "logical_port_id1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_mapping->vbr_name, "vbr_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_mapping->vbrif_name, "vbrif_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_mapping->switch_id, "switch_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_mapping->port_name, "port_name", (kMaxLenCtrlrId + 1));
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+    IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
 
-  createControllerInfo("controller_name1",UPLL_DT_RUNNING,UNC_CT_PFC);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadMo(req, ikey, dmi));
+  createControllerInfo("controller_name1", UPLL_DT_RUNNING, UNC_CT_PFC);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.ReadMo(req, ikey, dmi));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, ReadMo_mapping_valid_05) {
   VtnMoMgr vtn;
   DalOdbcMgr::stub_setSingleRecordExists(true);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_COUNT,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::RECORD_EXISTS, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::RECORD_COUNT, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcSuccess);
   IPC_REQ_RESP_HEADER_DECL(req);
   DalDmlIntf *dmi(getDalDmlIntf());
   req->datatype = UPLL_DT_STATE;
@@ -1596,25 +1779,39 @@ TEST_F(VtnMoMgrTest, ReadMo_mapping_valid_05) {
   req->option2 = UNC_OPT2_NONE;
 
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
-  uuu::upll_strncpy(key_ctrlr->controller_name,"controller_name1", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(key_ctrlr->domain_id,"domain_id", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(key_ctrlr->vtn_key.vtn_name,"vtn_name1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->controller_name,
+                    "controller_name1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->domain_id,
+                    "domain_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->vtn_key.vtn_name,
+                    "vtn_name1", (kMaxLenCtrlrId + 1));
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  uuu::upll_strncpy(val_mapping->logical_port_id,"logical_port_id1", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_mapping->vbr_name,"vbr_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_mapping->vbrif_name,"vbrif_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_mapping->switch_id,"switch_id", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_mapping->port_name,"port_name", (kMaxLenCtrlrId + 1));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
+  uuu::upll_strncpy(
+    val_mapping->logical_port_id, "logical_port_id1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_mapping->vbr_name, "vbr_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_mapping->vbrif_name, "vbrif_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_mapping->switch_id, "switch_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_mapping->port_name, "port_name", (kMaxLenCtrlrId + 1));
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+    IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadMo(req, ikey, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.ReadMo(req, ikey, dmi));
   delete ikey;
 }
 
 /* ReadSiblingMo() */
-//otherKT when option1 = UNC_OPT1_DETAIL
+// otherKT when option1 = UNC_OPT1_DETAIL
 TEST_F(VtnMoMgrTest, ReadSiblingMo_KT_VTN_detail) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -1627,8 +1824,9 @@ TEST_F(VtnMoMgrTest, ReadSiblingMo_KT_VTN_detail) {
   req->option2 = UNC_OPT2_NONE;
 
   key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
-  strcpy((char*)keyvtn->vtn_name,(const char *)"vtn1");
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, NULL);
+  strcpy((char*)keyvtn->vtn_name, (const char *)"vtn1");
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+    IpctSt::kIpcStKeyVtn, keyvtn, NULL);
 
   EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION1, vtn.ReadSiblingMo(req, ikey, begin, dmi));
   delete ikey;
@@ -1646,14 +1844,16 @@ TEST_F(VtnMoMgrTest, ReadSiblingMo_KT_VBRIDGE) {
   req->option2 = UNC_OPT2_NONE;
 
   key_vbr_t *keyvbr(ZALLOC_TYPE(key_vbr_t));
-  strcpy((char*)keyvbr->vbridge_name,(const char *)"vbr1");
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, keyvbr, NULL);
+  strcpy((char*)keyvbr->vbridge_name, (const char *)"vbr1");
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+    IpctSt::kIpcStKeyVbr, keyvbr, NULL);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadSiblingMo(req, ikey, begin, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.ReadSiblingMo(req, ikey, begin, dmi));
   delete ikey;
 }
 
-//otherKT when option1 = UNC_OPT1_COUNT
+// otherKT when option1 = UNC_OPT1_COUNT
 TEST_F(VtnMoMgrTest, ReadSiblingMo_otherKT_count) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -1666,14 +1866,16 @@ TEST_F(VtnMoMgrTest, ReadSiblingMo_otherKT_count) {
   req->option2 = UNC_OPT2_NONE;
 
   key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
-  strcpy((char*)keyvtn->vtn_name,(const char *)"vtn1");
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, NULL);
+  strcpy((char*)keyvtn->vtn_name, (const char *)"vtn1");
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+    IpctSt::kIpcStKeyVtn, keyvtn, NULL);
 
-  EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION1, vtn.ReadSiblingMo(req, ikey, begin, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION1,
+            vtn.ReadSiblingMo(req, ikey, begin, dmi));
   delete ikey;
 }
 
-//UNC_KT_VTN_MAPPING_CONTROLLER has wrong dt_type
+// UNC_KT_VTN_MAPPING_CONTROLLER has wrong dt_type
 TEST_F(VtnMoMgrTest, ReadSiblingMo_Mapping_invaliddatatype) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -1681,21 +1883,24 @@ TEST_F(VtnMoMgrTest, ReadSiblingMo_Mapping_invaliddatatype) {
   bool begin = false;
 
   req->datatype = UPLL_DT_CANDIDATE;
-  req->operation = UNC_OP_READ_SIBLING ;
+  req->operation = UNC_OP_READ_SIBLING;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
 
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+    IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE, vtn.ReadSiblingMo(req, ikey, begin, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE,
+     vtn.ReadSiblingMo(req, ikey, begin, dmi));
   delete ikey;
 }
 
-//UNC_KT_VTN_MAPPING_CONTROLLER has wrong st_num
+// UNC_KT_VTN_MAPPING_CONTROLLER has wrong st_num
 TEST_F(VtnMoMgrTest, ReadSiblingMo_Mapping_invalidstnum) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -1710,14 +1915,17 @@ TEST_F(VtnMoMgrTest, ReadSiblingMo_Mapping_invalidstnum) {
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtn, key_ctrlr, config_val);
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+    IpctSt::kIpcStKeyVtn, key_ctrlr, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ReadSiblingMo(req, ikey, begin, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vtn.ReadSiblingMo(req, ikey, begin, dmi));
   delete ikey;
 }
 
-//UNC_KT_VTN_MAPPING_CONTROLLER has no vtn_name
+// UNC_KT_VTN_MAPPING_CONTROLLER has no vtn_name
 TEST_F(VtnMoMgrTest, ReadSiblingMo_Mapping_emptyvtnname) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -1732,15 +1940,18 @@ TEST_F(VtnMoMgrTest, ReadSiblingMo_Mapping_emptyvtnname) {
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
-  strcpy((char*)key_ctrlr->vtn_key.vtn_name,(const char *)"");
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+    IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
+  strcpy((char*)key_ctrlr->vtn_key.vtn_name, (const char *)"");
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ReadSiblingMo(req, ikey, begin, dmi)); //Bug raised already/
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vtn.ReadSiblingMo(req, ikey, begin, dmi)); // Bug raised already/
   delete ikey;
 }
 
-//UNC_KT_VTN_MAPPING_CONTROLLER has no ctrlr name
+// UNC_KT_VTN_MAPPING_CONTROLLER has no ctrlr name
 TEST_F(VtnMoMgrTest, ReadSiblingMo_Mapping_noctrlrname_nodomain) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -1755,16 +1966,19 @@ TEST_F(VtnMoMgrTest, ReadSiblingMo_Mapping_noctrlrname_nodomain) {
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
-  strcpy((char*)key_ctrlr->vtn_key.vtn_name,(const char *)"vtn1");
-  strcpy((char*)key_ctrlr->controller_name,(const char *)"");
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+    IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
+  strcpy((char*)key_ctrlr->vtn_key.vtn_name, (const char *)"vtn1");
+  strcpy((char*)key_ctrlr->controller_name, (const char *)"");
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ReadSiblingMo(req, ikey, begin, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vtn.ReadSiblingMo(req, ikey, begin, dmi));
   delete ikey;
 }
 
-//UNC_KT_VTNSTATION_CONTROLLER has wrong dt_type
+// UNC_KT_VTNSTATION_CONTROLLER has wrong dt_type
 TEST_F(VtnMoMgrTest, ReadSiblingMo_station_invaliddatatype) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -1780,14 +1994,17 @@ TEST_F(VtnMoMgrTest, ReadSiblingMo_station_invaliddatatype) {
       (ZALLOC_TYPE(key_vtnstation_controller_t));
   val_vtnstation_controller_st_t *val_station
       (ZALLOC_TYPE(val_vtnstation_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnstationControllerSt, val_station);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE, vtn.ReadSiblingMo(req, ikey, begin, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE,
+     vtn.ReadSiblingMo(req, ikey, begin, dmi));
   delete ikey;
 }
 
-//UNC_KT_VTNSTATION_CONTROLLER has wrong st_num
+// UNC_KT_VTNSTATION_CONTROLLER has wrong st_num
 TEST_F(VtnMoMgrTest, ReadSiblingMo_Station_invalidstnum) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -1803,14 +2020,17 @@ TEST_F(VtnMoMgrTest, ReadSiblingMo_Station_invalidstnum) {
       (ZALLOC_TYPE(key_vtnstation_controller_t));
   val_vtnstation_controller_st_t *val_station
       (ZALLOC_TYPE(val_vtnstation_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtn, key_station, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnstationControllerSt, val_station);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStKeyVtn, key_station, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ReadSiblingMo(req, ikey, begin, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vtn.ReadSiblingMo(req, ikey, begin, dmi));
   delete ikey;
 }
 
-//UNC_KT_VTNSTATION_CONTROLLER has no ctrlr_name
+// UNC_KT_VTNSTATION_CONTROLLER has no ctrlr_name
 TEST_F(VtnMoMgrTest, ReadSiblingMo_Station_emptyctrlrname) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -1826,15 +2046,18 @@ TEST_F(VtnMoMgrTest, ReadSiblingMo_Station_emptyctrlrname) {
       (ZALLOC_TYPE(key_vtnstation_controller_t));
   val_vtnstation_controller_st_t *val_station
       (ZALLOC_TYPE(val_vtnstation_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
-  strcpy((char*)key_station->controller_name,(const char *)"");
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnstationControllerSt, val_station);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
+  strcpy((char*)key_station->controller_name, (const char *)"");
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ReadSiblingMo(req, ikey, begin, dmi)); //Bug raised already
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vtn.ReadSiblingMo(req, ikey, begin, dmi)); // Bug raised already
   delete ikey;
 }
 
-//UNC_KT_VTNSTATION_CONTROLLER has invalid datatype
+// UNC_KT_VTNSTATION_CONTROLLER has invalid datatype
 TEST_F(VtnMoMgrTest, ReadSiblingMo_Station_invaliddatatype) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -1850,14 +2073,17 @@ TEST_F(VtnMoMgrTest, ReadSiblingMo_Station_invaliddatatype) {
       (ZALLOC_TYPE(key_vtnstation_controller_t));
   val_vtnstation_controller_st_t *val_station
       (ZALLOC_TYPE(val_vtnstation_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnstationControllerSt, val_station);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE, vtn.ReadSiblingMo(req, ikey, begin, dmi)); //Bug has to raise
+  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE,
+     vtn.ReadSiblingMo(req, ikey, begin, dmi)); // Bug has to raise
   delete ikey;
 }
 
-//UNC_KT_VTNSTATION_CONTROLLER has invalid operation
+// UNC_KT_VTNSTATION_CONTROLLER has invalid operation
 TEST_F(VtnMoMgrTest, ReadSiblingMo_Station_invalidop) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -1873,14 +2099,17 @@ TEST_F(VtnMoMgrTest, ReadSiblingMo_Station_invalidop) {
       (ZALLOC_TYPE(key_vtnstation_controller_t));
   val_vtnstation_controller_st_t *val_station
       (ZALLOC_TYPE(val_vtnstation_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnstationControllerSt, val_station);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE, vtn.ReadSiblingMo(req, ikey, begin, dmi)); //Bug has to raise
+  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE,
+     vtn.ReadSiblingMo(req, ikey, begin, dmi)); // Bug has to raise
   delete ikey;
 }
 
-//otherKT when option1 = UNC_OPT1_DETAIL
+// otherKT when option1 = UNC_OPT1_DETAIL
 TEST_F(VtnMoMgrTest, ReadSiblingMo_otherKT_detail_begin) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -1893,14 +2122,15 @@ TEST_F(VtnMoMgrTest, ReadSiblingMo_otherKT_detail_begin) {
   req->option2 = UNC_OPT2_NONE;
 
   key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
-  strcpy((char*)keyvtn->vtn_name,(const char *)"vtn1");
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, NULL);
+  strcpy((char*)keyvtn->vtn_name, (const char *)"vtn1");
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+    IpctSt::kIpcStKeyVtn, keyvtn, NULL);
 
   EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION1, vtn.ReadSiblingMo(req, ikey, begin, dmi));
   delete ikey;
 }
 
-//otherKT when option1 = UNC_OPT1_COUNT
+// otherKT when option1 = UNC_OPT1_COUNT
 TEST_F(VtnMoMgrTest, ReadSiblingMo_otherKT_count_begin) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -1913,14 +2143,16 @@ TEST_F(VtnMoMgrTest, ReadSiblingMo_otherKT_count_begin) {
   req->option2 = UNC_OPT2_NONE;
 
   key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
-  strcpy((char*)keyvtn->vtn_name,(const char *)"vtn1");
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, NULL);
+  strcpy((char*)keyvtn->vtn_name, (const char *)"vtn1");
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+    IpctSt::kIpcStKeyVtn, keyvtn, NULL);
 
-  EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION1, vtn.ReadSiblingMo(req, ikey, begin, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION1,
+            vtn.ReadSiblingMo(req, ikey, begin, dmi));
   delete ikey;
 }
 
-//UNC_KT_VTN_MAPPING_CONTROLLER has wrong dt_type
+// UNC_KT_VTN_MAPPING_CONTROLLER has wrong dt_type
 TEST_F(VtnMoMgrTest, ReadSiblingMo_Mapping_invaliddatatype_begin) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -1935,14 +2167,17 @@ TEST_F(VtnMoMgrTest, ReadSiblingMo_Mapping_invaliddatatype_begin) {
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+    IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE, vtn.ReadSiblingMo(req, ikey, begin, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE,
+     vtn.ReadSiblingMo(req, ikey, begin, dmi));
   delete ikey;
 }
 
-//UNC_KT_VTN_MAPPING_CONTROLLER has wrong st_num
+// UNC_KT_VTN_MAPPING_CONTROLLER has wrong st_num
 TEST_F(VtnMoMgrTest, ReadSiblingMo_Mapping_invalidstnum_begin) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -1957,14 +2192,17 @@ TEST_F(VtnMoMgrTest, ReadSiblingMo_Mapping_invalidstnum_begin) {
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtn, key_ctrlr, config_val);
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+    IpctSt::kIpcStKeyVtn, key_ctrlr, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ReadSiblingMo(req, ikey, begin, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vtn.ReadSiblingMo(req, ikey, begin, dmi));
   delete ikey;
 }
 
-//UNC_KT_VTN_MAPPING_CONTROLLER has no vtn_name
+// UNC_KT_VTN_MAPPING_CONTROLLER has no vtn_name
 TEST_F(VtnMoMgrTest, ReadSiblingMo_Mapping_emptyvtnname_begin) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -1979,11 +2217,14 @@ TEST_F(VtnMoMgrTest, ReadSiblingMo_Mapping_emptyvtnname_begin) {
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
-  strcpy((char*)key_ctrlr->vtn_key.vtn_name,(const char *)"");
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+    IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
+  strcpy((char*)key_ctrlr->vtn_key.vtn_name, (const char *)"");
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ReadSiblingMo(req, ikey, begin, dmi)); //Bug raised already/
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vtn.ReadSiblingMo(req, ikey, begin, dmi)); // Bug raised already/
   delete ikey;
 }
 
@@ -2001,21 +2242,27 @@ TEST_F(VtnMoMgrTest, ReadSiblingMo_Mapping_01) {
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
-  strcpy((char*)key_ctrlr->vtn_key.vtn_name,(const char *)"vtn1");
-  strcpy((char*)key_ctrlr->controller_name,(const char *)"");
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+    IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
+  strcpy((char*)key_ctrlr->vtn_key.vtn_name, (const char *)"vtn1");
+  strcpy((char*)key_ctrlr->controller_name, (const char *)"");
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadSiblingMo(req, ikey, begin, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.ReadSiblingMo(req, ikey, begin, dmi));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, ReadSiblingMo_Mapping_READ_SIBLING_BEGIN) {
   VtnMoMgr vtn;
   DalOdbcMgr::stub_setSingleRecordExists(true);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_COUNT,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::RECORD_EXISTS, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::RECORD_COUNT, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcSuccess);
   IPC_REQ_RESP_HEADER_DECL(req);
   DalDmlIntf *dmi(getDalDmlIntf());
   bool begin = true;
@@ -2026,30 +2273,46 @@ TEST_F(VtnMoMgrTest, ReadSiblingMo_Mapping_READ_SIBLING_BEGIN) {
   req->option2 = UNC_OPT2_NONE;
 
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
-  uuu::upll_strncpy(key_ctrlr->controller_name,"controller_name1", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(key_ctrlr->domain_id,"domain_id", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(key_ctrlr->vtn_key.vtn_name,"vtn_name1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->controller_name,
+                    "controller_name1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->domain_id,
+                    "domain_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->vtn_key.vtn_name,
+                    "vtn_name1", (kMaxLenCtrlrId + 1));
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  uuu::upll_strncpy(val_mapping->logical_port_id,"logical_port_id1", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_mapping->vbr_name,"vbr_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_mapping->vbrif_name,"vbrif_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_mapping->switch_id,"switch_id", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_mapping->port_name,"port_name", (kMaxLenCtrlrId + 1));
-
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
+  uuu::upll_strncpy(
+    val_mapping->logical_port_id, "logical_port_id1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_mapping->vbr_name, "vbr_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_mapping->vbrif_name, "vbrif_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_mapping->switch_id, "switch_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_mapping->port_name, "port_name", (kMaxLenCtrlrId + 1));
+
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+    IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
 
   EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE,
-            vtn.ReadSiblingMo(req, ikey, begin, dmi));
+    vtn.ReadSiblingMo(req, ikey, begin, dmi));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, ReadSiblingMo_Mapping_READ) {
   DalOdbcMgr::stub_setSingleRecordExists(true);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_COUNT,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::RECORD_EXISTS, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::RECORD_COUNT, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcSuccess);
 
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -2062,22 +2325,35 @@ TEST_F(VtnMoMgrTest, ReadSiblingMo_Mapping_READ) {
   req->option2 = UNC_OPT2_NONE;
 
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
-  uuu::upll_strncpy(key_ctrlr->controller_name,"controller_name1", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(key_ctrlr->domain_id,"domain_id", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(key_ctrlr->vtn_key.vtn_name,"vtn_name1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->controller_name,
+                    "controller_name1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->domain_id,
+                    "domain_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->vtn_key.vtn_name,
+                    "vtn_name1", (kMaxLenCtrlrId + 1));
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  uuu::upll_strncpy(val_mapping->logical_port_id,"logical_port_id1", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_mapping->vbr_name,"vbr_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_mapping->vbrif_name,"vbrif_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_mapping->switch_id,"switch_id", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_mapping->port_name,"port_name", (kMaxLenCtrlrId + 1));
-
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
+  uuu::upll_strncpy(
+    val_mapping->logical_port_id, "logical_port_id1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_mapping->vbr_name, "vbr_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_mapping->vbrif_name, "vbrif_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_mapping->switch_id, "switch_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_mapping->port_name, "port_name", (kMaxLenCtrlrId + 1));
+
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+    IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
 
   EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE,
-            vtn.ReadSiblingMo(req, ikey, begin, dmi));
+    vtn.ReadSiblingMo(req, ikey, begin, dmi));
   delete ikey;
 }
 
@@ -2095,14 +2371,17 @@ TEST_F(VtnMoMgrTest, ReadSiblingMo_station_READ_SIBLING_BEGIN) {
       (ZALLOC_TYPE(key_vtnstation_controller_t));
   val_vtnstation_controller_st_t *val_station
       (ZALLOC_TYPE(val_vtnstation_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnstationControllerSt, val_station);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE, vtn.ReadSiblingMo(req, ikey, begin, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE,
+     vtn.ReadSiblingMo(req, ikey, begin, dmi));
   delete ikey;
 }
 
-//UNC_KT_VTNSTATION_CONTROLLER has wrong st_num
+// UNC_KT_VTNSTATION_CONTROLLER has wrong st_num
 TEST_F(VtnMoMgrTest, ReadSiblingMo_Station_invalidstnum_begin) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -2118,10 +2397,13 @@ TEST_F(VtnMoMgrTest, ReadSiblingMo_Station_invalidstnum_begin) {
       (ZALLOC_TYPE(key_vtnstation_controller_t));
   val_vtnstation_controller_st_t *val_station
       (ZALLOC_TYPE(val_vtnstation_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtn, key_station, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnstationControllerSt, val_station);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStKeyVtn, key_station, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ReadSiblingMo(req, ikey, begin, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vtn.ReadSiblingMo(req, ikey, begin, dmi));
   delete ikey;
 }
 
@@ -2139,18 +2421,21 @@ TEST_F(VtnMoMgrTest, ReadSiblingMo_Station_READ_SIBLING_BEGIN_01) {
       (ZALLOC_TYPE(key_vtnstation_controller_t));
   val_vtnstation_controller_st_t *val_station
       (ZALLOC_TYPE(val_vtnstation_controller_st_t));
-  strcpy((char*)key_station->controller_name,(const char *)"pfc11");
-  strcpy((char*)val_station->vtn_name,(const char *)"vtn1");
-  strcpy((char*)val_station->domain_id,(const char *)"dom1");
-  strcpy((char*)val_station->vbr_name,(const char *)"vbr_name1");
-  strcpy((char*)val_station->vbrif_name,(const char *)"vbrif_name1");
-  strcpy((char*)val_station->switch_id,(const char *)"switch_id1");
-  strcpy((char*)val_station->port_name,(const char *)"port1");
+  strcpy((char*)key_station->controller_name, (const char *)"pfc11");
+  strcpy((char*)val_station->vtn_name, (const char *)"vtn1");
+  strcpy((char*)val_station->domain_id, (const char *)"dom1");
+  strcpy((char*)val_station->vbr_name, (const char *)"vbr_name1");
+  strcpy((char*)val_station->vbrif_name, (const char *)"vbrif_name1");
+  strcpy((char*)val_station->switch_id, (const char *)"switch_id1");
+  strcpy((char*)val_station->port_name, (const char *)"port1");
+
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnstationControllerSt, val_station);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
-
-  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE, vtn.ReadSiblingMo(req, ikey, begin, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE,
+     vtn.ReadSiblingMo(req, ikey, begin, dmi));
   delete ikey;
 }
 
@@ -2163,24 +2448,27 @@ TEST_F(VtnMoMgrTest, ReadSiblingMo_Station_READ_SIBLING_BEGIN_02) {
   req->operation = UNC_OP_READ_SIBLING_BEGIN;
   req->option1 = UNC_OPT1_NORMAL;
   req->option2 = UNC_OPT2_NONE;
-  //unc_keytype_ctrtype_t ctrlrtype = UNC_CT_PFC;
+  // unc_keytype_ctrtype_t ctrlrtype = UNC_CT_PFC;
 
   key_vtnstation_controller_t *key_station
       (ZALLOC_TYPE(key_vtnstation_controller_t));
   val_vtnstation_controller_st_t *val_station
       (ZALLOC_TYPE(val_vtnstation_controller_st_t));
-  strcpy((char*)key_station->controller_name,(const char *)"pfc11");
-  strcpy((char*)val_station->vtn_name,(const char *)"vtn1");
-  strcpy((char*)val_station->domain_id,(const char *)"dom1");
-  strcpy((char*)val_station->vbr_name,(const char *)"vbr_name1");
-  strcpy((char*)val_station->vbrif_name,(const char *)"vbrif_name1");
-  strcpy((char*)val_station->switch_id,(const char *)"switch_id1");
-  strcpy((char*)val_station->port_name,(const char *)"port1");
+  strcpy((char*)key_station->controller_name, (const char *)"pfc11");
+  strcpy((char*)val_station->vtn_name, (const char *)"vtn1");
+  strcpy((char*)val_station->domain_id, (const char *)"dom1");
+  strcpy((char*)val_station->vbr_name, (const char *)"vbr_name1");
+  strcpy((char*)val_station->vbrif_name, (const char *)"vbrif_name1");
+  strcpy((char*)val_station->switch_id, (const char *)"switch_id1");
+  strcpy((char*)val_station->port_name, (const char *)"port1");
+
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnstationControllerSt, val_station);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
-
-  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE, vtn.ReadSiblingMo(req, ikey, begin, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE,
+     vtn.ReadSiblingMo(req, ikey, begin, dmi));
   delete ikey;
 }
 
@@ -2198,28 +2486,32 @@ TEST_F(VtnMoMgrTest, ReadSiblingMo_Station_READ_SIBLING_BEGIN_03) {
       (ZALLOC_TYPE(key_vtnstation_controller_t));
   val_vtnstation_controller_st_t *val_station
       (ZALLOC_TYPE(val_vtnstation_controller_st_t));
-  strcpy((char*)key_station->controller_name,(const char *)"pfc11");
-  strcpy((char*)val_station->vtn_name,(const char *)"vtn1");
-  strcpy((char*)val_station->domain_id,(const char *)"dom1");
-  strcpy((char*)val_station->vbr_name,(const char *)"vbr_name1");
-  strcpy((char*)val_station->vbrif_name,(const char *)"vbrif_name1");
-  strcpy((char*)val_station->switch_id,(const char *)"switch_id1");
-  strcpy((char*)val_station->port_name,(const char *)"port1");
+  strcpy((char*)key_station->controller_name, (const char *)"pfc11");
+  strcpy((char*)val_station->vtn_name, (const char *)"vtn1");
+  strcpy((char*)val_station->domain_id, (const char *)"dom1");
+  strcpy((char*)val_station->vbr_name, (const char *)"vbr_name1");
+  strcpy((char*)val_station->vbrif_name, (const char *)"vbrif_name1");
+  strcpy((char*)val_station->switch_id, (const char *)"switch_id1");
+  strcpy((char*)val_station->port_name, (const char *)"port1");
   const char* version("version");
-  CtrlrMgr::Ctrlr ctrl("controller_name1",UNC_CT_VNP,version);
-  CtrlrMgr::Ctrlr* ctrl1( new CtrlrMgr::Ctrlr(ctrl,UPLL_DT_RUNNING));
+  CtrlrMgr::Ctrlr ctrl("controller_name1", UNC_CT_VNP, version);
+  CtrlrMgr::Ctrlr* ctrl1(new CtrlrMgr::Ctrlr(ctrl, UPLL_DT_RUNNING));
   CtrlrMgr::GetInstance()->ctrlrs_.push_back(ctrl1);
   CapaModuleStub::stub_loadCapaModule();
-  CapaModuleStub::stub_setResultcode(CapaModuleStub::GET_CREATE_CAPABILITY, true);
+  CapaModuleStub::stub_setResultcode(
+    CapaModuleStub::GET_CREATE_CAPABILITY, true);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnstationControllerSt, val_station);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE, vtn.ReadSiblingMo(req, ikey, begin, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE,
+     vtn.ReadSiblingMo(req, ikey, begin, dmi));
   delete ikey;
 }
 
-//UNC_KT_VTNSTATION_CONTROLLER has no ctrlr_name
+// UNC_KT_VTNSTATION_CONTROLLER has no ctrlr_name
 TEST_F(VtnMoMgrTest, ReadSiblingMo_Station_emptyctrlrname_begin) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -2235,15 +2527,17 @@ TEST_F(VtnMoMgrTest, ReadSiblingMo_Station_emptyctrlrname_begin) {
       (ZALLOC_TYPE(key_vtnstation_controller_t));
   val_vtnstation_controller_st_t *val_station
       (ZALLOC_TYPE(val_vtnstation_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnstationControllerSt, val_station);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
 
   EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE,
-            vtn.ReadSiblingMo(req, ikey, begin, dmi));
+    vtn.ReadSiblingMo(req, ikey, begin, dmi));
   delete ikey;
 }
 
-//UNC_KT_VTNSTATION_CONTROLLER has invalid operation
+// UNC_KT_VTNSTATION_CONTROLLER has invalid operation
 TEST_F(VtnMoMgrTest, ReadSiblingMo_Station_invalidop_begin) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -2259,10 +2553,13 @@ TEST_F(VtnMoMgrTest, ReadSiblingMo_Station_invalidop_begin) {
       (ZALLOC_TYPE(key_vtnstation_controller_t));
   val_vtnstation_controller_st_t *val_station
       (ZALLOC_TYPE(val_vtnstation_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnstationControllerSt, val_station);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE, vtn.ReadSiblingMo(req, ikey, begin, dmi)); //Bug has to raise
+  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE,
+     vtn.ReadSiblingMo(req, ikey, begin, dmi)); // Bug has to raise
   delete ikey;
 }
 
@@ -2278,11 +2575,14 @@ TEST_F(VtnMoMgrTest, ReadSiblingCount_vtn) {
 
   key_vtn_t *key_vtn(ZALLOC_TYPE(key_vtn_t));
   val_vtn_t *val_vtn(ZALLOC_TYPE(val_vtn_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val_vtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key_vtn, config_val);
-  strcpy((char*)key_vtn->vtn_name,(const char *)"vtn1");
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, val_vtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+    IpctSt::kIpcStKeyVtn, key_vtn, config_val);
+  strcpy((char*)key_vtn->vtn_name, (const char *)"vtn1");
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadSiblingCount(req, ikey, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.ReadSiblingCount(req, ikey, dmi));
   delete ikey;
 }
 
@@ -2299,12 +2599,15 @@ TEST_F(VtnMoMgrTest, ReadSiblingCount_vtnStation_01) {
       (ZALLOC_TYPE(key_vtnstation_controller_t));
   val_vtnstation_controller_st_t *val_station
       (ZALLOC_TYPE(val_vtnstation_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnstationControllerSt, val_station);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
 
-  strcpy((char*)key_station->controller_name,(const char *)"vtn1");
+  strcpy((char*)key_station->controller_name, (const char *)"vtn1");
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ReadSiblingCount(req, ikey, dmi));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ReadSiblingCount(req, ikey, dmi));
   delete ikey;
 }
 
@@ -2313,26 +2616,31 @@ TEST_F(VtnMoMgrTest, MappingvExtTovBr_vtnstation_02) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
   DalDmlIntf *dmi(getDalDmlIntf());
-  uint32_t count1=0;
-  uint32_t *count=&count1;
+  uint32_t count1 = 0;
+  uint32_t *count = &count1;
 
   key_vtnstation_controller_t *key_station
       (ZALLOC_TYPE(key_vtnstation_controller_t));
-  strcpy((char*)key_station->controller_name,(const char *)"pfc1");
-  val_vtnstation_controller_st_t *val_station(ZALLOC_TYPE(val_vtnstation_controller_st_t));
-  strcpy((char*)val_station->vtn_name,(const char *)"vtn1");
-  strcpy((char*)val_station->domain_id,(const char *)"dom1");
-  strcpy((char*)val_station->vbr_name,(const char *)"vbr_name1");
-  strcpy((char*)val_station->vbrif_name,(const char *)"vbrif_name1");
-  strcpy((char*)val_station->switch_id,(const char *)"switch_id1");
-  strcpy((char*)val_station->port_name,(const char *)"port1");
-
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
+  strcpy((char*)key_station->controller_name, (const char *)"pfc1");
+  val_vtnstation_controller_st_t *val_station(
+      ZALLOC_TYPE(val_vtnstation_controller_st_t));
+  strcpy((char*)val_station->vtn_name, (const char *)"vtn1");
+  strcpy((char*)val_station->domain_id, (const char *)"dom1");
+  strcpy((char*)val_station->vbr_name, (const char *)"vbr_name1");
+  strcpy((char*)val_station->vbrif_name, (const char *)"vbrif_name1");
+  strcpy((char*)val_station->switch_id, (const char *)"switch_id1");
+  strcpy((char*)val_station->port_name, (const char *)"port1");
+
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnstationControllerSt, val_station);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.MappingvExtTovBr(ikey, req, dmi, count));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.MappingvExtTovBr(ikey, req, dmi, count));
   val_station->map_type = UPLL_IF_VLAN_MAP;
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.MappingvExtTovBr(ikey, req, dmi, count));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.MappingvExtTovBr(ikey, req, dmi, count));
   delete ikey;
 }
 
@@ -2340,32 +2648,43 @@ TEST_F(VtnMoMgrTest, MappingvExtTovBr_vtnstation_03) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
   DalDmlIntf *dmi(getDalDmlIntf());
-  uint32_t count1=0;
-  uint32_t *count=&count1;
+  uint32_t count1 = 0;
+  uint32_t *count = &count1;
 
   key_vtnstation_controller_t *key_station
       (ZALLOC_TYPE(key_vtnstation_controller_t));
-  strcpy((char*)key_station->controller_name,(const char *)"pfc1");
+  strcpy((char*)key_station->controller_name, (const char *)"pfc1");
   val_vtnstation_controller_st_t *val_station(ZALLOC_TYPE(val_vtnstation_controller_st_t));
-  uuu::upll_strncpy(val_station->vtn_name,"vtn_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_station->vbr_name,"vbr_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_station->vbrif_name,"vbrif_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_station->domain_id,"domain_id", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_station->switch_id,"switch_id", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_station->port_name,"port_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_station->vtn_name, "vtn_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_station->vbr_name, "vbr_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_station->vbrif_name, "vbrif_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_station->domain_id, "domain_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_station->switch_id, "switch_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_station->port_name, "port_name", (kMaxLenCtrlrId + 1));
   val_station->valid[UPLL_IDX_VTN_NAME_VSCS] = UNC_VF_VALID;
   val_station->valid[UPLL_IDX_VBR_NAME_VSCS] = UNC_VF_VALID;
   val_station->valid[UPLL_IDX_VBR_IF_NAME_VSCS] = UNC_VF_VALID;
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnstationControllerSt, val_station);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.MappingvExtTovBr(ikey, req, dmi, count));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.MappingvExtTovBr(ikey, req, dmi, count));
   val_station->map_type = UPLL_IF_VLAN_MAP;
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.MappingvExtTovBr(ikey, req, dmi, count));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.MappingvExtTovBr(ikey, req, dmi, count));
   val_station->valid[UPLL_IDX_VTN_NAME_VSCS] = UNC_VF_VALID;
   val_station->valid[UPLL_IDX_VBR_IF_NAME_VSCS] = UNC_VF_VALID;
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.MappingvExtTovBr(ikey, req, dmi, count));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.MappingvExtTovBr(ikey, req, dmi, count));
 
   delete ikey;
 }
@@ -2374,16 +2693,19 @@ TEST_F(VtnMoMgrTest, MappingvExtTovBr_vtnstation_val_NULL) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
   DalDmlIntf *dmi(getDalDmlIntf());
-  uint32_t count1=0;
-  uint32_t *count=&count1;
+  uint32_t count1 = 0;
+  uint32_t *count = &count1;
 
   key_vtnstation_controller_t *key_station
       (ZALLOC_TYPE(key_vtnstation_controller_t));
-  strcpy((char*)key_station->controller_name,(const char *)"pfc1");
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, NULL);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
+  strcpy((char*)key_station->controller_name, (const char *)"pfc1");
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnstationControllerSt, NULL);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.MappingvExtTovBr(ikey, req, dmi, count));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.MappingvExtTovBr(ikey, req, dmi, count));
 
   delete ikey;
 }
@@ -2391,68 +2713,94 @@ TEST_F(VtnMoMgrTest, MappingvExtTovBr_vtnstation_val_NULL) {
 TEST_F(VtnMoMgrTest, MappingvExtTovBr_vtnstation_04) {
   VtnMoMgr vtn;
   DalOdbcMgr::stub_setSingleRecordExists(true);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_COUNT,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::RECORD_EXISTS, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::RECORD_COUNT, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcSuccess);
   IPC_REQ_RESP_HEADER_DECL(req);
   DalDmlIntf *dmi(getDalDmlIntf());
-  uint32_t count1=0;
-  uint32_t *count=&count1;
+  uint32_t count1 = 0;
+  uint32_t *count = &count1;
 
   key_vtnstation_controller_t *key_station
       (ZALLOC_TYPE(key_vtnstation_controller_t));
-  strcpy((char*)key_station->controller_name,(const char *)"pfc1");
+  strcpy((char*)key_station->controller_name, (const char *)"pfc1");
   val_vtnstation_controller_st_t *val_station(ZALLOC_TYPE(val_vtnstation_controller_st_t));
-  uuu::upll_strncpy(val_station->vtn_name,"vtn_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_station->vbr_name,"vbr_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_station->vbrif_name,"vbrif_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_station->domain_id,"domain_id", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_station->switch_id,"switch_id", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_station->port_name,"port_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_station->vtn_name, "vtn_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_station->vbr_name, "vbr_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_station->vbrif_name, "vbrif_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_station->domain_id, "domain_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_station->switch_id, "switch_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_station->port_name, "port_name", (kMaxLenCtrlrId + 1));
   val_station->valid[UPLL_IDX_VTN_NAME_VSCS] = UNC_VF_VALID;
   val_station->valid[UPLL_IDX_VBR_NAME_VSCS] = UNC_VF_VALID;
   val_station->valid[UPLL_IDX_VBR_IF_NAME_VSCS] = UNC_VF_VALID;
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnstationControllerSt, val_station);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.MappingvExtTovBr(ikey, req, dmi, count));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.MappingvExtTovBr(ikey, req, dmi, count));
   val_station->map_type = UPLL_IF_VLAN_MAP;
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.MappingvExtTovBr(ikey, req, dmi, count));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.MappingvExtTovBr(ikey, req, dmi, count));
   val_station->valid[UPLL_IDX_VTN_NAME_VSCS] = UNC_VF_VALID;
   val_station->valid[UPLL_IDX_VBR_IF_NAME_VSCS] = UNC_VF_VALID;
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.MappingvExtTovBr(ikey, req, dmi, count));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.MappingvExtTovBr(ikey, req, dmi, count));
 
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, MappingvExtTovBr_vtnstation_05) {
   VtnMoMgr vtn;
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_COUNT,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::RECORD_EXISTS, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::RECORD_COUNT, kDalRcSuccess);
   IPC_REQ_RESP_HEADER_DECL(req);
   DalDmlIntf *dmi(getDalDmlIntf());
-  uint32_t count1=0;
-  uint32_t *count=&count1;
+  uint32_t count1 = 0;
+  uint32_t *count = &count1;
 
   key_vtnstation_controller_t *key_station
       (ZALLOC_TYPE(key_vtnstation_controller_t));
-  strcpy((char*)key_station->controller_name,(const char *)"pfc1");
-  val_vtnstation_controller_st_t *val_station(ZALLOC_TYPE(val_vtnstation_controller_st_t));
-  uuu::upll_strncpy(val_station->vtn_name,"vtn_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_station->vbr_name,"vbr_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_station->vbrif_name,"vbrif_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_station->domain_id,"domain_id", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_station->switch_id,"switch_id", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_station->port_name,"port_name", (kMaxLenCtrlrId + 1));
+  strcpy((char*)key_station->controller_name, (const char *)"pfc1");
+  val_vtnstation_controller_st_t *val_station(
+      ZALLOC_TYPE(val_vtnstation_controller_st_t));
+  uuu::upll_strncpy(
+    val_station->vtn_name, "vtn_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_station->vbr_name, "vbr_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_station->vbrif_name, "vbrif_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_station->domain_id, "domain_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_station->switch_id, "switch_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_station->port_name, "port_name", (kMaxLenCtrlrId + 1));
   val_station->valid[UPLL_IDX_VTN_NAME_VSCS] = UNC_VF_VALID;
   val_station->valid[UPLL_IDX_VBR_NAME_VSCS] = UNC_VF_VALID;
   val_station->valid[UPLL_IDX_VBR_IF_NAME_VSCS] = UNC_VF_VALID;
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnstationControllerSt, val_station);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.MappingvExtTovBr(ikey, req, dmi, count));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.MappingvExtTovBr(ikey, req, dmi, count));
 
   delete ikey;
 }
@@ -2460,51 +2808,68 @@ TEST_F(VtnMoMgrTest, MappingvExtTovBr_vtnstation_05) {
 TEST_F(VtnMoMgrTest, MappingvExtTovBr_vtnstation_06) {
   VtnMoMgr vtn;
   DalOdbcMgr::stub_setSingleRecordExists(true);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_COUNT,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcRecordNoMore);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::RECORD_EXISTS, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::RECORD_COUNT, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcRecordNoMore);
   IPC_REQ_RESP_HEADER_DECL(req);
   DalDmlIntf *dmi(getDalDmlIntf());
-  uint32_t count1=0;
-  uint32_t *count=&count1;
+  uint32_t count1 = 0;
+  uint32_t *count = &count1;
 
   key_vtnstation_controller_t *key_station
       (ZALLOC_TYPE(key_vtnstation_controller_t));
-  strcpy((char*)key_station->controller_name,(const char *)"pfc1");
-  val_vtnstation_controller_st_t *val_station(ZALLOC_TYPE(val_vtnstation_controller_st_t));
-  uuu::upll_strncpy(val_station->vtn_name,"vtn_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_station->vbr_name,"vbr_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_station->vbrif_name,"vbrif_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_station->domain_id,"domain_id", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_station->switch_id,"switch_id", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(val_station->port_name,"port_name", (kMaxLenCtrlrId + 1));
+  strcpy((char*)key_station->controller_name, (const char *)"pfc1");
+  val_vtnstation_controller_st_t *val_station(
+      ZALLOC_TYPE(val_vtnstation_controller_st_t));
+  uuu::upll_strncpy(
+    val_station->vtn_name, "vtn_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_station->vbr_name, "vbr_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_station->vbrif_name, "vbrif_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_station->domain_id, "domain_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_station->switch_id, "switch_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    val_station->port_name, "port_name", (kMaxLenCtrlrId + 1));
   val_station->valid[UPLL_IDX_VTN_NAME_VSCS] = UNC_VF_VALID;
   val_station->valid[UPLL_IDX_VBR_NAME_VSCS] = UNC_VF_VALID;
   val_station->valid[UPLL_IDX_VBR_IF_NAME_VSCS] = UNC_VF_VALID;
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnstationControllerSt, val_station);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.MappingvExtTovBr(ikey, req, dmi, count));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.MappingvExtTovBr(ikey, req, dmi, count));
 
   delete ikey;
 }
 
-//when the key is UNC_KT_VTN_MAPPING_CONTROLLER and has invalid key st_num
+// when the key is UNC_KT_VTN_MAPPING_CONTROLLER and has invalid key st_num
 TEST_F(VtnMoMgrTest, MappingvExtTovBr_mapping_invalidkeynum) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
   DalDmlIntf *dmi(getDalDmlIntf());
-  uint32_t count1=0;
-  uint32_t *count=&count1;
+  uint32_t count1 = 0;
+  uint32_t *count = &count1;
 
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStValVtnstationControllerSt, key_ctrlr, config_val);
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey =
+      new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+            IpctSt::kIpcStValVtnstationControllerSt, key_ctrlr, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.MappingvExtTovBr(ikey, req, dmi, count));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.MappingvExtTovBr(ikey, req, dmi, count));
   delete ikey;
 }
 
@@ -2512,48 +2877,55 @@ TEST_F(VtnMoMgrTest, MappingvExtTovBr_ikey_No_value) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
   DalDmlIntf *dmi(getDalDmlIntf());
-  uint32_t count1=0;
-  uint32_t *count=&count1;
+  uint32_t count1 = 0;
+  uint32_t *count = &count1;
 
-  ConfigKeyVal *ikey =NULL;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.MappingvExtTovBr(ikey, req, dmi, count));
+  ConfigKeyVal *ikey  = NULL;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.MappingvExtTovBr(ikey, req, dmi, count));
   delete ikey;
 }
 
-//when the key is UNC_KT_VTN_MAPPING_CONTROLLER and without setting vbr valid flag
+// when the key is UNC_KT_VTN_MAPPING_CONTROLLER and without setting vbr valid flag
 TEST_F(VtnMoMgrTest, MappingvExtTovBr_mapping_withoutvbrvalidflag) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
   DalDmlIntf *dmi(getDalDmlIntf());
-  uint32_t count1=0;
-  uint32_t *count=&count1;
+  uint32_t count1 = 0;
+  uint32_t *count = &count1;
 
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+    IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.MappingvExtTovBr(ikey, req, dmi, count));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.MappingvExtTovBr(ikey, req, dmi, count));
   delete ikey;
 }
 
-//when the key is UNC_KT_VTN_MAPPING_CONTROLLER and with setting vbr valid flag
+// when the key is UNC_KT_VTN_MAPPING_CONTROLLER and with setting vbr valid flag
 TEST_F(VtnMoMgrTest, MappingvExtTovBr_mapping_withoutvbrifvalidflag) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
   DalDmlIntf *dmi(getDalDmlIntf());
-  uint32_t count1=0;
-  uint32_t *count=&count1;
+  uint32_t count1 = 0;
+  uint32_t *count = &count1;
 
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
   val_mapping->valid[UPLL_IDX_VBR_NAME_VMCS] = UNC_VF_VALID;
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+    IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.MappingvExtTovBr(ikey, req, dmi, count));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.MappingvExtTovBr(ikey, req, dmi, count));
   delete ikey;
 }
 
@@ -2561,148 +2933,177 @@ TEST_F(VtnMoMgrTest, MappingvExtTovBr_mapping_withvbrifvalidflag) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
   DalDmlIntf *dmi(getDalDmlIntf());
-  uint32_t count1=0;
-  uint32_t *count=&count1;
+  uint32_t count1 = 0;
+  uint32_t *count = &count1;
 
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  strcpy((char*)key_ctrlr->controller_name,(const char *)"pfc1");
-  strcpy((char*)key_ctrlr->domain_id,(const char *)"dom1");
-  strcpy((char*)val_mapping->switch_id,(const char *)"switch_id1");
-  strcpy((char*)val_mapping->port_name,(const char *)"port_name1");
-  strcpy((char*)val_mapping->vbr_name,(const char *)"vbr_name1");
-  strcpy((char*)val_mapping->vbrif_name,(const char *)"vbrif_name1");
-  strcpy((char*)val_mapping->logical_port_id,(const char *)"logical_port_id1");
+  strcpy((char*)key_ctrlr->controller_name, (const char *)"pfc1");
+  strcpy((char*)key_ctrlr->domain_id, (const char *)"dom1");
+  strcpy((char*)val_mapping->switch_id, (const char *)"switch_id1");
+  strcpy((char*)val_mapping->port_name, (const char *)"port_name1");
+  strcpy((char*)val_mapping->vbr_name, (const char *)"vbr_name1");
+  strcpy((char*)val_mapping->vbrif_name, (const char *)"vbrif_name1");
+  strcpy((char*)val_mapping->logical_port_id, (const char *)"logical_port_id1");
   val_mapping->valid[UPLL_IDX_VBR_NAME_VMCS] = UNC_VF_VALID;
   val_mapping->valid[UPLL_IDX_VBR_IF_NAME_VMCS] = UNC_VF_VALID;
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.MappingvExtTovBr(ikey, req, dmi, count));
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+    IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.MappingvExtTovBr(ikey, req, dmi, count));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, MappingvExtTovBr_mapping_01) {
   VtnMoMgr vtn;
   DalOdbcMgr::stub_setSingleRecordExists(true);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_COUNT,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::RECORD_EXISTS, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::RECORD_COUNT, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcSuccess);
   IPC_REQ_RESP_HEADER_DECL(req);
   DalDmlIntf *dmi(getDalDmlIntf());
-  uint32_t count1=0;
-  uint32_t *count=&count1;
+  uint32_t count1 = 0;
+  uint32_t *count = &count1;
 
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  strcpy((char*)key_ctrlr->controller_name,(const char *)"pfc1");
-  strcpy((char*)key_ctrlr->domain_id,(const char *)"dom1");
-  strcpy((char*)val_mapping->switch_id,(const char *)"switch_id1");
-  strcpy((char*)val_mapping->port_name,(const char *)"port_name1");
-  strcpy((char*)val_mapping->vbr_name,(const char *)"vbr_name1");
-  strcpy((char*)val_mapping->vbrif_name,(const char *)"vbrif_name1");
-  strcpy((char*)val_mapping->logical_port_id,(const char *)"logical_port_id1");
+  strcpy((char*)key_ctrlr->controller_name, (const char *)"pfc1");
+  strcpy((char*)key_ctrlr->domain_id, (const char *)"dom1");
+  strcpy((char*)val_mapping->switch_id, (const char *)"switch_id1");
+  strcpy((char*)val_mapping->port_name, (const char *)"port_name1");
+  strcpy((char*)val_mapping->vbr_name, (const char *)"vbr_name1");
+  strcpy((char*)val_mapping->vbrif_name, (const char *)"vbrif_name1");
+  strcpy((char*)val_mapping->logical_port_id, (const char *)"logical_port_id1");
   val_mapping->valid[UPLL_IDX_VBR_NAME_VMCS] = UNC_VF_VALID;
   val_mapping->valid[UPLL_IDX_VBR_IF_NAME_VMCS] = UNC_VF_VALID;
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.MappingvExtTovBr(ikey, req, dmi, count));
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+    IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.MappingvExtTovBr(ikey, req, dmi, count));
   val_mapping->map_type = UPLL_IF_VLAN_MAP;
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.MappingvExtTovBr(ikey, req, dmi, count));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.MappingvExtTovBr(ikey, req, dmi, count));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, MappingvExtTovBr_mapping_02) {
   VtnMoMgr vtn;
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::INIT, kDalRcSuccess);
   IPC_REQ_RESP_HEADER_DECL(req);
   DalDmlIntf *dmi(getDalDmlIntf());
-  uint32_t count1=0;
-  uint32_t *count=&count1;
+  uint32_t count1 = 0;
+  uint32_t *count = &count1;
 
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  strcpy((char*)key_ctrlr->controller_name,(const char *)"pfc1");
-  strcpy((char*)key_ctrlr->domain_id,(const char *)"dom1");
-  strcpy((char*)val_mapping->switch_id,(const char *)"switch_id1");
-  strcpy((char*)val_mapping->port_name,(const char *)"port_name1");
-  strcpy((char*)val_mapping->vbr_name,(const char *)"vbr_name1");
-  strcpy((char*)val_mapping->vbrif_name,(const char *)"vbrif_name1");
-  strcpy((char*)val_mapping->logical_port_id,(const char *)"logical_port_id1");
+  strcpy((char*)key_ctrlr->controller_name, (const char *)"pfc1");
+  strcpy((char*)key_ctrlr->domain_id, (const char *)"dom1");
+  strcpy((char*)val_mapping->switch_id, (const char *)"switch_id1");
+  strcpy((char*)val_mapping->port_name, (const char *)"port_name1");
+  strcpy((char*)val_mapping->vbr_name, (const char *)"vbr_name1");
+  strcpy((char*)val_mapping->vbrif_name, (const char *)"vbrif_name1");
+  strcpy((char*)val_mapping->logical_port_id, (const char *)"logical_port_id1");
   val_mapping->valid[UPLL_IDX_VBR_NAME_VMCS] = UNC_VF_VALID;
   val_mapping->valid[UPLL_IDX_VBR_IF_NAME_VMCS] = UNC_VF_VALID;
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.MappingvExtTovBr(ikey, req, dmi, count));
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+    IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.MappingvExtTovBr(ikey, req, dmi, count));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, MappingvExtTovBr_mapping_03) {
   VtnMoMgr vtn;
   DalOdbcMgr::stub_setSingleRecordExists(true);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_COUNT,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcRecordNoMore);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::RECORD_EXISTS, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::RECORD_COUNT, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcRecordNoMore);
   IPC_REQ_RESP_HEADER_DECL(req);
   DalDmlIntf *dmi(getDalDmlIntf());
-  uint32_t count1=0;
-  uint32_t *count=&count1;
+  uint32_t count1 = 0;
+  uint32_t *count = &count1;
 
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  strcpy((char*)key_ctrlr->controller_name,(const char *)"pfc1");
-  strcpy((char*)key_ctrlr->domain_id,(const char *)"dom1");
-  strcpy((char*)val_mapping->switch_id,(const char *)"switch_id1");
-  strcpy((char*)val_mapping->port_name,(const char *)"port_name1");
-  strcpy((char*)val_mapping->vbr_name,(const char *)"vbr_name1");
-  strcpy((char*)val_mapping->vbrif_name,(const char *)"vbrif_name1");
-  strcpy((char*)val_mapping->logical_port_id,(const char *)"logical_port_id1");
+  strcpy((char*)key_ctrlr->controller_name, (const char *)"pfc1");
+  strcpy((char*)key_ctrlr->domain_id, (const char *)"dom1");
+  strcpy((char*)val_mapping->switch_id, (const char *)"switch_id1");
+  strcpy((char*)val_mapping->port_name, (const char *)"port_name1");
+  strcpy((char*)val_mapping->vbr_name, (const char *)"vbr_name1");
+  strcpy((char*)val_mapping->vbrif_name, (const char *)"vbrif_name1");
+  strcpy((char*)val_mapping->logical_port_id, (const char *)"logical_port_id1");
   val_mapping->valid[UPLL_IDX_VBR_NAME_VMCS] = UNC_VF_VALID;
   val_mapping->valid[UPLL_IDX_VBR_IF_NAME_VMCS] = UNC_VF_VALID;
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.MappingvExtTovBr(ikey, req, dmi, count));
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+    IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.MappingvExtTovBr(ikey, req, dmi, count));
   delete ikey;
 }
 
 /* ValidateMessageForVtnStnCtrlr */
-//when the configkeyval is null
+// when the configkeyval is null
 TEST_F(VtnMoMgrTest, ValidateMessageForVtnStnCtrlr_ikeynull) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
   ConfigKeyVal *ikey = NULL;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ValidateMessageForVtnStnCtrlr(req, ikey)); // Code has the fix now
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.ValidateMessageForVtnStnCtrlr(req, ikey)); //  Code has the fix now
   delete ikey;
 }
 
-//when the IpcReqRespHeader is null
+// when the IpcReqRespHeader is null
 TEST_F(VtnMoMgrTest, ValidateMessageForVtnStnCtrlr_reqnull) {
   VtnMoMgr vtn;
   IpcReqRespHeader *req = NULL;
 
   key_vtnstation_controller_t *key_station
       (ZALLOC_TYPE(key_vtnstation_controller_t));
-  val_vtnstation_controller_st_t *val_station(ZALLOC_TYPE(val_vtnstation_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ValidateMessageForVtnStnCtrlr(req, ikey)); //Bug 404
+  val_vtnstation_controller_st_t *val_station(
+      ZALLOC_TYPE(val_vtnstation_controller_st_t));
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnstationControllerSt, val_station);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.ValidateMessageForVtnStnCtrlr(req, ikey)); // Bug 404
   delete ikey;
 }
 
-//when invalid st_num
+// when invalid st_num
 TEST_F(VtnMoMgrTest, ValidateMessageForVtnStnCtrlr_invalid_stnum) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
 
   key_vtnstation_controller_t *key_station
       (ZALLOC_TYPE(key_vtnstation_controller_t));
-  val_vtnstation_controller_st_t *val_station(ZALLOC_TYPE(val_vtnstation_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtn, key_station, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateMessageForVtnStnCtrlr(req, ikey));
+  val_vtnstation_controller_st_t *val_station(
+      ZALLOC_TYPE(val_vtnstation_controller_st_t));
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnstationControllerSt, val_station);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStKeyVtn, key_station, config_val);
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+            vtn.ValidateMessageForVtnStnCtrlr(req, ikey));
   delete ikey;
 }
 
@@ -2711,15 +3112,19 @@ TEST_F(VtnMoMgrTest, ValidateMessageForVtnStnCtrlr_Invalid_option1) {
   IPC_REQ_RESP_HEADER_DECL(req);
   req->datatype = UPLL_DT_STATE;
   req->operation = UNC_OP_READ;
-  req->option1=(unc_keytype_option1_t)3;
+  req->option1 = (unc_keytype_option1_t)3;
   req->option2 = UNC_OPT2_NEIGHBOR;
 
   key_vtnstation_controller_t *key_station
       (ZALLOC_TYPE(key_vtnstation_controller_t));
-  val_vtnstation_controller_st_t *val_station(ZALLOC_TYPE(val_vtnstation_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION1, vtn.ValidateMessageForVtnStnCtrlr(req, ikey));
+  val_vtnstation_controller_st_t *val_station(
+      ZALLOC_TYPE(val_vtnstation_controller_st_t));
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnstationControllerSt, val_station);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
+  EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION1,
+            vtn.ValidateMessageForVtnStnCtrlr(req, ikey));
   delete ikey;
 }
 
@@ -2733,15 +3138,19 @@ TEST_F(VtnMoMgrTest, ValidateMessageForVtnStnCtrlr_Invalid_option2) {
 
   key_vtnstation_controller_t *key_station
       (ZALLOC_TYPE(key_vtnstation_controller_t));
-  val_vtnstation_controller_st_t *val_station(ZALLOC_TYPE(val_vtnstation_controller_st_t));
-  strcpy((char*)key_station->controller_name,(const char *)"pfc1");
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION2, vtn.ValidateMessageForVtnStnCtrlr(req, ikey));
+  val_vtnstation_controller_st_t *val_station(
+      ZALLOC_TYPE(val_vtnstation_controller_st_t));
+  strcpy((char*)key_station->controller_name, (const char *)"pfc1");
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnstationControllerSt, val_station);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
+  EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION2,
+            vtn.ValidateMessageForVtnStnCtrlr(req, ikey));
   delete ikey;
 }
 
-//when valid stnum with ctrlr name
+// when valid stnum with ctrlr name
 TEST_F(VtnMoMgrTest, ValidateMessageForVtnStnCtrlr_valid_stnum_ctrlname) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -2750,23 +3159,28 @@ TEST_F(VtnMoMgrTest, ValidateMessageForVtnStnCtrlr_valid_stnum_ctrlname) {
       (ZALLOC_TYPE(key_vtnstation_controller_t));
   val_vtnstation_controller_st_t *val_station
       (ZALLOC_TYPE(val_vtnstation_controller_st_t));
-  strcpy((char*)key_station->controller_name,(const char *)"pfc1");
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, val_station);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE, vtn.ValidateMessageForVtnStnCtrlr(req, ikey));
+  strcpy((char*)key_station->controller_name, (const char *)"pfc1");
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnstationControllerSt, val_station);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStKeyVtnstationController, key_station, config_val);
+  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE,
+     vtn.ValidateMessageForVtnStnCtrlr(req, ikey));
   delete ikey;
 }
 
-//when the configkeyval is null
+// when the configkeyval is null
 TEST_F(VtnMoMgrTest, ValidateMessageForVtnMapCtrlr_ikeynull) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
   ConfigKeyVal *ikey = NULL;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ValidateMessageForVtnMapCtrlr(req, ikey)); // Code has the fix now
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+
+    vtn.ValidateMessageForVtnMapCtrlr(req, ikey)); //  Code has the fix now
   delete ikey;
 }
 
-//when the IpcReqRespHeader is null
+// when the IpcReqRespHeader is null
 TEST_F(VtnMoMgrTest, ValidateMessageForVtnMapCtrlr_reqnull) {
   VtnMoMgr vtn;
   IpcReqRespHeader *req = NULL;
@@ -2774,15 +3188,19 @@ TEST_F(VtnMoMgrTest, ValidateMessageForVtnMapCtrlr_reqnull) {
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
-  strcpy((char*)key_ctrlr->vtn_key.vtn_name,(const char *)"vtn1");
-  strcpy((char*)key_ctrlr->controller_name,(const char *)"");
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ValidateMessageForVtnMapCtrlr(req, ikey)); // Code has the fix now
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+    IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
+  strcpy((char*)key_ctrlr->vtn_key.vtn_name, (const char *)"vtn1");
+  strcpy((char*)key_ctrlr->controller_name, (const char *)"");
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+
+    vtn.ValidateMessageForVtnMapCtrlr(req, ikey)); //  Code has the fix now
   delete ikey;
 }
 
-//when invalid st_num
+// when invalid st_num
 TEST_F(VtnMoMgrTest, ValidateMessageForVtnMapCtrlr_invalid_stnum) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -2795,15 +3213,19 @@ TEST_F(VtnMoMgrTest, ValidateMessageForVtnMapCtrlr_invalid_stnum) {
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnstationController, key_ctrlr, config_val);
-  strcpy((char*)key_ctrlr->vtn_key.vtn_name,(const char *)"vtn1");
-  strcpy((char*)key_ctrlr->controller_name,(const char *)"");
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateMessageForVtnMapCtrlr(req, ikey));
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(
+      UNC_KT_VTN_MAPPING_CONTROLLER,
+      IpctSt::kIpcStKeyVtnstationController, key_ctrlr, config_val);
+  strcpy((char*)key_ctrlr->vtn_key.vtn_name, (const char *)"vtn1");
+  strcpy((char*)key_ctrlr->controller_name, (const char *)"");
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+    vtn.ValidateMessageForVtnMapCtrlr(req, ikey));
   delete ikey;
 }
 
-//when valid stnum with empty ctrlr name and vtn name
+// when valid stnum with empty ctrlr name and vtn name
 TEST_F(VtnMoMgrTest, ValidateMessageForVtnMapCtrlr_valid_stnum_emptyctrlvtnname) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -2816,15 +3238,18 @@ TEST_F(VtnMoMgrTest, ValidateMessageForVtnMapCtrlr_valid_stnum_emptyctrlvtnname)
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
-  strcpy((char*)key_ctrlr->vtn_key.vtn_name,(const char *)"");
-  strcpy((char*)key_ctrlr->controller_name,(const char *)"");
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateMessageForVtnMapCtrlr(req, ikey));
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+    IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
+  strcpy((char*)key_ctrlr->vtn_key.vtn_name, (const char *)"");
+  strcpy((char*)key_ctrlr->controller_name, (const char *)"");
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+    vtn.ValidateMessageForVtnMapCtrlr(req, ikey));
   delete ikey;
 }
 
-//when valid stnum with empty ctrlr name
+// when valid stnum with empty ctrlr name
 TEST_F(VtnMoMgrTest, ValidateMessageForVtnMapCtrlr_valid_stnum_emptyctrlname) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -2837,15 +3262,18 @@ TEST_F(VtnMoMgrTest, ValidateMessageForVtnMapCtrlr_valid_stnum_emptyctrlname) {
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
-  strcpy((char*)key_ctrlr->vtn_key.vtn_name,(const char *)"vtn1");
-  strcpy((char*)key_ctrlr->controller_name,(const char *)"");
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateMessageForVtnMapCtrlr(req, ikey));
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+    IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
+  strcpy((char*)key_ctrlr->vtn_key.vtn_name, (const char *)"vtn1");
+  strcpy((char*)key_ctrlr->controller_name, (const char *)"");
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+    vtn.ValidateMessageForVtnMapCtrlr(req, ikey));
   delete ikey;
 }
 
-//when valid stnum with ctrlr name
+// when valid stnum with ctrlr name
 TEST_F(VtnMoMgrTest, ValidateMessageForVtnMapCtrlr_valid_stnum_ctrlname) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -2858,17 +3286,21 @@ TEST_F(VtnMoMgrTest, ValidateMessageForVtnMapCtrlr_valid_stnum_ctrlname) {
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+    IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
   pfc_strlcpy(reinterpret_cast<char *>(key_ctrlr->domain_id), "dom1",
               sizeof(key_ctrlr->domain_id));
-  strcpy((char*)key_ctrlr->vtn_key.vtn_name,(const char *)"vtn1");
-  strcpy((char*)key_ctrlr->controller_name,(const char *)"pfc1");
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateMessageForVtnMapCtrlr(req, ikey));
+  strcpy((char*)key_ctrlr->vtn_key.vtn_name, (const char *)"vtn1");
+  strcpy((char*)key_ctrlr->controller_name, (const char *)"pfc1");
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+
+    vtn.ValidateMessageForVtnMapCtrlr(req, ikey));
   delete ikey;
 }
 
-//when valid stnum with empty vtn name
+// when valid stnum with empty vtn name
 TEST_F(VtnMoMgrTest, ValidateMessageForVtnMapCtrlr_valid_stnum_emptyvtnname) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -2881,11 +3313,14 @@ TEST_F(VtnMoMgrTest, ValidateMessageForVtnMapCtrlr_valid_stnum_emptyvtnname) {
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
-  strcpy((char*)key_ctrlr->vtn_key.vtn_name,(const char *)"");
-  strcpy((char*)key_ctrlr->controller_name,(const char *)"pfc1");
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateMessageForVtnMapCtrlr(req, ikey));
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+    IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
+  strcpy((char*)key_ctrlr->vtn_key.vtn_name, (const char *)"");
+  strcpy((char*)key_ctrlr->controller_name, (const char *)"pfc1");
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+    vtn.ValidateMessageForVtnMapCtrlr(req, ikey));
   delete ikey;
 }
 
@@ -2901,11 +3336,14 @@ TEST_F(VtnMoMgrTest, ValidateMessageForVtnMapCtrlr_invalid_option1) {
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
-  strcpy((char*)key_ctrlr->vtn_key.vtn_name,(const char *)"vtn1");
-  strcpy((char*)key_ctrlr->controller_name,(const char *)"pfc1");
-  EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION1, vtn.ValidateMessageForVtnMapCtrlr(req, ikey));
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+    IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
+  strcpy((char*)key_ctrlr->vtn_key.vtn_name, (const char *)"vtn1");
+  strcpy((char*)key_ctrlr->controller_name, (const char *)"pfc1");
+  EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION1,
+    vtn.ValidateMessageForVtnMapCtrlr(req, ikey));
   delete ikey;
 }
 
@@ -2921,15 +3359,18 @@ TEST_F(VtnMoMgrTest, ValidateMessageForVtnMapCtrlr_invalid_option2) {
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
-  strcpy((char*)key_ctrlr->vtn_key.vtn_name,(const char *)"vtn1");
-  strcpy((char*)key_ctrlr->controller_name,(const char *)"pfc1");
-  EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION2, vtn.ValidateMessageForVtnMapCtrlr(req, ikey));
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+    IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
+  strcpy((char*)key_ctrlr->vtn_key.vtn_name, (const char *)"vtn1");
+  strcpy((char*)key_ctrlr->controller_name, (const char *)"pfc1");
+  EXPECT_EQ(UPLL_RC_ERR_INVALID_OPTION2,
+    vtn.ValidateMessageForVtnMapCtrlr(req, ikey));
   delete ikey;
 }
 
-//when invalid datatype
+// when invalid datatype
 TEST_F(VtnMoMgrTest, ValidateMessageForVtnMapCtrlr_invalid_datatype) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -2942,15 +3383,19 @@ TEST_F(VtnMoMgrTest, ValidateMessageForVtnMapCtrlr_invalid_datatype) {
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
-  strcpy((char*)key_ctrlr->vtn_key.vtn_name,(const char *)"vtn1");
-  strcpy((char*)key_ctrlr->controller_name,(const char *)"pfc1");
-  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE, vtn.ValidateMessageForVtnMapCtrlr(req, ikey));
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+    IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
+  strcpy((char*)key_ctrlr->vtn_key.vtn_name, (const char *)"vtn1");
+  strcpy((char*)key_ctrlr->controller_name, (const char *)"pfc1");
+  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE,
+
+    vtn.ValidateMessageForVtnMapCtrlr(req, ikey));
   delete ikey;
 }
 
-//when invalid operation
+// when invalid operation
 TEST_F(VtnMoMgrTest, ValidateMessageForVtnMapCtrlr_invalid_operation) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
@@ -2963,11 +3408,14 @@ TEST_F(VtnMoMgrTest, ValidateMessageForVtnMapCtrlr_invalid_operation) {
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
   val_vtn_mapping_controller_st_t *val_mapping
       (ZALLOC_TYPE(val_vtn_mapping_controller_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER, IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
-  strcpy((char*)key_ctrlr->vtn_key.vtn_name,(const char *)"vtn1");
-  strcpy((char*)key_ctrlr->controller_name,(const char *)"pfc1");
-  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE, vtn.ValidateMessageForVtnMapCtrlr(req, ikey));
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnMappingControllerSt, val_mapping);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN_MAPPING_CONTROLLER,
+    IpctSt::kIpcStKeyVtnController, key_ctrlr, config_val);
+  strcpy((char*)key_ctrlr->vtn_key.vtn_name, (const char *)"vtn1");
+  strcpy((char*)key_ctrlr->controller_name, (const char *)"pfc1");
+  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE,
+    vtn.ValidateMessageForVtnMapCtrlr(req, ikey));
   delete ikey;
 }
 
@@ -2978,25 +3426,31 @@ TEST_F(VtnMoMgrTest, DupConfigKeyVal_nullkey) {
   ConfigKeyVal *okey = NULL;
   MoMgrTables tbl = MAINTBL;
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.DupConfigKeyVal(okey, ikey, tbl));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.DupConfigKeyVal(okey, ikey, tbl));
   delete ikey;
   delete okey;
 }
 
 TEST_F(VtnMoMgrTest, DupConfigKeyVal_nonullokey) {
   VtnMoMgr vtn;
-  MoMgrTables tbl=MAINTBL;
+  MoMgrTables tbl = MAINTBL;
 
   key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
   val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
 
   key_vtn_t *key1(UT_CLONE(key_vtn_t, keyvtn));
-  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key1,
+  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VTN,
+                                      IpctSt::kIpcStKeyVtn, key1,
                                       NULL));
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.DupConfigKeyVal(okey, ikey, tbl));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.DupConfigKeyVal(okey, ikey, tbl));
   delete ikey;
   delete okey;
 }
@@ -3004,14 +3458,18 @@ TEST_F(VtnMoMgrTest, DupConfigKeyVal_nonullokey) {
 TEST_F(VtnMoMgrTest, DupConfigKeyVal_novtnKT) {
   VtnMoMgr vtn;
   ConfigKeyVal *okey = NULL;
-  MoMgrTables tbl=MAINTBL;
+  MoMgrTables tbl = MAINTBL;
 
   key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
   val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.DupConfigKeyVal(okey, ikey, tbl));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.DupConfigKeyVal(okey, ikey, tbl));
   delete ikey;
   delete okey;
 }
@@ -3023,10 +3481,14 @@ TEST_F(VtnMoMgrTest, DupConfigKeyVal_MAINTBL) {
 
   key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
   val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.DupConfigKeyVal(okey, ikey, tbl));
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.DupConfigKeyVal(okey, ikey, tbl));
   delete ikey;
   delete okey;
 }
@@ -3038,14 +3500,18 @@ TEST_F(VtnMoMgrTest, DupConfigKeyVal_MAINTBL_withST) {
 
   key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
   val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
 
   val_db_vtn_st *val_dbvtn(ZALLOC_TYPE(val_db_vtn_st));
   ConfigVal *config_valst = new ConfigVal(IpctSt::kIpcStValVtnSt, val_dbvtn);
   config_val->AppendCfgVal(config_valst);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.DupConfigKeyVal(okey, ikey, tbl));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.DupConfigKeyVal(okey, ikey, tbl));
   delete ikey;
   delete okey;
 }
@@ -3057,15 +3523,18 @@ TEST_F(VtnMoMgrTest, DupConfigKeyVal_RENAMETBL) {
 
   key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
   val_rename_vtn_t *val_rename_vtn(ZALLOC_TYPE(val_rename_vtn_t));
-  ConfigVal *rename_val = new ConfigVal(IpctSt::kIpcStValRenameVtn, val_rename_vtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStValRenameVtn, keyvtn, rename_val);
+  ConfigVal *rename_val =
+      new ConfigVal(IpctSt::kIpcStValRenameVtn, val_rename_vtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+    IpctSt::kIpcStValRenameVtn, keyvtn, rename_val);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.DupConfigKeyVal(okey, ikey, tbl));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.DupConfigKeyVal(okey, ikey, tbl));
   delete ikey;
   delete okey;
 }
 
-//Negative test case
+// Negative test case
 TEST_F(VtnMoMgrTest, DupConfigKeyVal_CTRLRTBL) {
   VtnMoMgr vtn;
   ConfigKeyVal *okey = NULL;
@@ -3073,10 +3542,14 @@ TEST_F(VtnMoMgrTest, DupConfigKeyVal_CTRLRTBL) {
 
   key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
   val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.DupConfigKeyVal(okey, ikey, tbl));
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.DupConfigKeyVal(okey, ikey, tbl));
   delete ikey;
   delete okey;
 }
@@ -3088,7 +3561,8 @@ TEST_F(VtnMoMgrTest, MergeValidateChildren_nullikey) {
   const char *ctrlr_id = NULL;
   ConfigKeyVal *ikey = NULL;
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.MergeValidateChildren(ikey, ctrlr_id, ikey, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.MergeValidateChildren(ikey, ctrlr_id, ikey, dmi));
 }
 
 TEST_F(VtnMoMgrTest, MergeValidateChildren_ikey_VTN) {
@@ -3098,10 +3572,14 @@ TEST_F(VtnMoMgrTest, MergeValidateChildren_ikey_VTN) {
   key_vtn_t *key;
   val_vtn_t *val;
   GetKeyValStruct(key, val);
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.MergeValidateChildren(ikey, ctrlr_id, ikey, dmi));
+    IpctSt::kIpcStKeyVtn, key, config_val);
+
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.MergeValidateChildren(ikey, ctrlr_id, ikey, dmi));
 
   delete ikey;
 }
@@ -3120,17 +3598,20 @@ TEST_F(VtnMoMgrTest, MergeValidateChildren_ikey_UNC_KT_VBRIDGE) {
   pfc_strlcpy(reinterpret_cast<char *>(vbrkey->vbridge_name), "VBR_1",
               sizeof(vbrkey->vbridge_name));
   ConfigVal *config_val(new ConfigVal(IpctSt::kIpcStValVtnSt, val));
-  ConfigKeyVal *ikey(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *ikey(new ConfigKeyVal(UNC_KT_VBRIDGE,
+                                      IpctSt::kIpcStKeyVtn,
                                       vbrkey, config_val));
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,
-            vtn.MergeValidateChildren(ikey, ctrlr_id, ikey, dmi));
+
+    vtn.MergeValidateChildren(ikey, ctrlr_id, ikey, dmi));
 }
 
 TEST_F(VtnMoMgrTest, AdaptValToVtnService_ikey_NULL) {
   VtnMoMgr vtn;
   ConfigKeyVal *ikey = NULL;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.AdaptValToVtnService(ikey));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.AdaptValToVtnService(ikey));
 }
 
 TEST_F(VtnMoMgrTest, AdaptValToVtnService_ikey) {
@@ -3144,9 +3625,13 @@ TEST_F(VtnMoMgrTest, AdaptValToVtnService_ikey) {
   valst->valid[0] = UNC_VF_VALID;
   valst->oper_status = UPLL_OPER_STATUS_UP;
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, valst);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.AdaptValToVtnService(ikey));
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnSt, valst);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.AdaptValToVtnService(ikey));
   delete ikey;
 }
 
@@ -3155,9 +3640,12 @@ TEST_F(VtnMoMgrTest, AdaptValToVtnService_ConfigVal_NULL) {
   key_vtn *key;
   GetKeyStruct(key);
 
-  ConfigVal *config_val= NULL;
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.AdaptValToVtnService(ikey));
+  ConfigVal *config_val =  NULL;
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.AdaptValToVtnService(ikey));
   delete ikey;
 }
 
@@ -3167,7 +3655,8 @@ TEST_F(VtnMoMgrTest, GetControllerDomainSpan_ikey) {
   DalDmlIntf *dmi(getDalDmlIntf());
   upll_keytype_datatype_t dtType = UPLL_DT_STATE;
   std::list<controller_domain_t> list_ctrlr_dom;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.GetControllerDomainSpan(ikey,dtType,dmi,list_ctrlr_dom));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.GetControllerDomainSpan(ikey, dtType, dmi, list_ctrlr_dom));
   delete ikey;
 }
 
@@ -3175,9 +3664,10 @@ TEST_F(VtnMoMgrTest, GetControllerDomainSpan_datatype_STATE) {
   VtnMoMgr vtn;
   ConfigKeyVal *ikey = NULL;
   DalDmlIntf *dmi(getDalDmlIntf());
-  upll_keytype_datatype_t dt_type=UPLL_DT_STATE;
+  upll_keytype_datatype_t dt_type = UPLL_DT_STATE;
   std::list<controller_domain_t> list_ctrlr_dom;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.GetControllerDomainSpan(ikey,dt_type,dmi,list_ctrlr_dom));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.GetControllerDomainSpan(ikey, dt_type, dmi, list_ctrlr_dom));
   delete ikey;
 }
 
@@ -3187,15 +3677,22 @@ TEST_F(VtnMoMgrTest, GetControllerDomainSpan_ikey_01) {
   val_vtn_t *val;
   GetKeyValStruct(key, val);
 
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::EXECUTE_QUERY,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcRecordNoMore);
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::RECORD_EXISTS, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::EXECUTE_QUERY, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::MULTIPLE, kDalRcRecordNoMore);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
   upll_keytype_datatype_t dtType = UPLL_DT_STATE;
   std::list<controller_domain_t> list_ctrlr_dom;
-  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE, vtn.GetControllerDomainSpan(ikey,dtType,dmi,list_ctrlr_dom));
+  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE,
+     vtn.GetControllerDomainSpan(ikey, dtType, dmi, list_ctrlr_dom));
   delete ikey;
 }
 
@@ -3205,21 +3702,28 @@ TEST_F(VtnMoMgrTest, GetControllerDomainSpan_ikey_02) {
   key_vtn_t *key;
   val_vtn_t *val;
   GetKeyValStruct(key, val);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::MULTIPLE, kDalRcSuccess);
 
-  std::map<uint8_t,DalResultCode> map;
-  map.insert(std::make_pair(1,kDalRcRecordNoMore));
-  map.insert(std::make_pair(0,kDalRcSuccess));
+  std::map<uint8_t, DalResultCode> map;
+  map.insert(std::make_pair(1, kDalRcRecordNoMore));
+  map.insert(std::make_pair(0, kDalRcSuccess));
   DalOdbcMgr::stub_setNextRecordResultCodes(map);
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
   upll_keytype_datatype_t dtType = UPLL_DT_STATE;
   std::list<controller_domain_t> list_ctrlr_dom;
   key_user_data_t *user_data(ZALLOC_TYPE(key_user_data_t));
-  uuu::upll_strncpy(user_data->ctrlr_id,"ctr_id", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(user_data->domain_id,"dom_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    user_data->ctrlr_id, "ctr_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    user_data->domain_id, "dom_id", (kMaxLenCtrlrId + 1));
   ikey->set_user_data((void*)user_data);
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.GetControllerDomainSpan(ikey,dtType,dmi,list_ctrlr_dom));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.GetControllerDomainSpan(ikey, dtType, dmi, list_ctrlr_dom));
   delete ikey;
 }
 
@@ -3227,78 +3731,105 @@ TEST_F(VtnMoMgrTest, GetControllerDomainSpan_default) {
   VtnMoMgr vtn;
   ConfigKeyVal *ikey = NULL;
   DalDmlIntf *dmi(getDalDmlIntf());
-  upll_keytype_datatype_t dt_type=UPLL_DT_STATE;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.GetControllerDomainSpan(ikey,dt_type,dmi));
+  upll_keytype_datatype_t dt_type = UPLL_DT_STATE;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.GetControllerDomainSpan(ikey, dt_type, dmi));
   delete ikey;
 }
 
+
 TEST_F(VtnMoMgrTest, ReadSingleCtlrlStation_ikey_NULL) {
   VtnMoMgr vtn;
-  ConfigKeyVal *ikey = NULL;
+  key_vtn_t *key;
+  val_vtn_t *val;
+  GetKeyValStruct(key, val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnSt, val);
+
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
   IPC_REQ_RESP_HEADER_DECL(req);
-  uint32_t ckv_count1=1;
-  uint32_t *rec_count=&ckv_count1;
+  uint32_t ckv_count1 = 1;
+  uint32_t *rec_count = &ckv_count1;
   DalDmlIntf *dmi(getDalDmlIntf());
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadSingleCtlrlStation(req,ikey,dmi,rec_count));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.ReadSingleCtlrlStation(req, ikey, dmi, rec_count));
   delete ikey;
 }
 
+
 TEST_F(VtnMoMgrTest, ReadSingleCtlrlStation_ikey_proper) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
-  uint32_t ckv_count1=1;
-  uint32_t *rec_count=&ckv_count1;
+  uint32_t ckv_count1 = 1;
+  uint32_t *rec_count = &ckv_count1;
   DalDmlIntf *dmi(getDalDmlIntf());
   key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
   val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadSingleCtlrlStation(req,ikey,dmi,rec_count));
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.ReadSingleCtlrlStation(req, ikey, dmi, rec_count));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, ReadSingleCtlrlStation_val_vtnstation_valid) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
-  uint32_t ckv_count1=1;
-  uint32_t *rec_count=&ckv_count1;
+  uint32_t ckv_count1 = 1;
+  uint32_t *rec_count = &ckv_count1;
   DalDmlIntf *dmi(getDalDmlIntf());
 
   key_vtnstation_controller_t *keyvtnsta
       (ZALLOC_TYPE(key_vtnstation_controller_t));
- uuu::upll_strncpy(keyvtnsta->controller_name,"controller_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    keyvtnsta->controller_name, "controller_name", (kMaxLenCtrlrId + 1));
 
   val_vtnstation_controller_st *valVtnsta
       (ZALLOC_TYPE(val_vtnstation_controller_st));
-ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, valVtnsta);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStValVtnstationControllerSt, keyvtnsta, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadSingleCtlrlStation(req,ikey,dmi,rec_count));
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnstationControllerSt, valVtnsta);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStValVtnstationControllerSt, keyvtnsta, config_val);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.ReadSingleCtlrlStation(req, ikey, dmi, rec_count));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, ReadSingleCtlrlStation_val_vtnstation_ALL_VALID_01) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
-  uint32_t ckv_count1=1;
-  uint32_t *rec_count=&ckv_count1;
+  uint32_t ckv_count1 = 1;
+  uint32_t *rec_count = &ckv_count1;
   DalDmlIntf *dmi(getDalDmlIntf());
 
   key_vtnstation_controller_t *keyvtnsta
       (ZALLOC_TYPE(key_vtnstation_controller_t));
-  uuu::upll_strncpy(keyvtnsta->controller_name,"controller_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    keyvtnsta->controller_name, "controller_name", (kMaxLenCtrlrId + 1));
 
   val_vtnstation_controller_st *valVtnsta
       (ZALLOC_TYPE(val_vtnstation_controller_st));
-  uuu::upll_strncpy(valVtnsta->vtn_name,"vtn_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(valVtnsta->vbr_name,"vbr_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(valVtnsta->vbrif_name,"vbrif_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    valVtnsta->vtn_name, "vtn_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    valVtnsta->vbr_name, "vbr_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    valVtnsta->vbrif_name, "vbrif_name", (kMaxLenCtrlrId + 1));
   valVtnsta->valid[UPLL_IDX_VTN_NAME_VSCS] = UNC_VF_VALID;
   valVtnsta->valid[UPLL_IDX_VBR_NAME_VSCS] = UNC_VF_VALID;
   valVtnsta->valid[UPLL_IDX_VBR_IF_NAME_VSCS] = UNC_VF_VALID;
-ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, valVtnsta);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStValVtnstationControllerSt, keyvtnsta, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadSingleCtlrlStation(req,ikey,dmi,rec_count));
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnstationControllerSt, valVtnsta);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStValVtnstationControllerSt, keyvtnsta, config_val);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.ReadSingleCtlrlStation(req, ikey, dmi, rec_count));
   delete ikey;
 }
 
@@ -3306,185 +3837,241 @@ TEST_F(VtnMoMgrTest, ReadSingleCtlrlStation_val_vtnstation_ALL_VALID_02) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
   DalOdbcMgr::stub_setSingleRecordExists(true);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_COUNT,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
-  uint32_t ckv_count1=1;
-  uint32_t *rec_count=&ckv_count1;
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::RECORD_EXISTS, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::RECORD_COUNT, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcSuccess);
+  uint32_t ckv_count1 = 1;
+  uint32_t *rec_count = &ckv_count1;
   DalDmlIntf *dmi(getDalDmlIntf());
 
   key_vtnstation_controller_t *keyvtnsta
       (ZALLOC_TYPE(key_vtnstation_controller_t));
-  uuu::upll_strncpy(keyvtnsta->controller_name,"controller_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    keyvtnsta->controller_name, "controller_name", (kMaxLenCtrlrId + 1));
 
   val_vtnstation_controller_st *valVtnsta
       (ZALLOC_TYPE(val_vtnstation_controller_st));
-  uuu::upll_strncpy(valVtnsta->vtn_name,"vtn_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(valVtnsta->vbr_name,"vbr_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(valVtnsta->vbrif_name,"vbrif_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    valVtnsta->vtn_name, "vtn_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    valVtnsta->vbr_name, "vbr_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    valVtnsta->vbrif_name, "vbrif_name", (kMaxLenCtrlrId + 1));
   valVtnsta->valid[UPLL_IDX_VTN_NAME_VSCS] = UNC_VF_VALID;
   valVtnsta->valid[UPLL_IDX_VBR_NAME_VSCS] = UNC_VF_VALID;
   valVtnsta->valid[UPLL_IDX_VBR_IF_NAME_VSCS] = UNC_VF_VALID;
-ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, valVtnsta);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStValVtnstationControllerSt, keyvtnsta, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE, vtn.ReadSingleCtlrlStation(req,ikey,dmi,rec_count));
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnstationControllerSt, valVtnsta);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStValVtnstationControllerSt, keyvtnsta, config_val);
+  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE,
+     vtn.ReadSingleCtlrlStation(req, ikey, dmi, rec_count));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, ReadSingleCtlrlStation_vtn_valid_01) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
-  uint32_t ckv_count1=1;
-  uint32_t *rec_count=&ckv_count1;
+  uint32_t ckv_count1 = 1;
+  uint32_t *rec_count = &ckv_count1;
   DalDmlIntf *dmi(getDalDmlIntf());
 
   key_vtnstation_controller_t *keyvtnsta
       (ZALLOC_TYPE(key_vtnstation_controller_t));
-  uuu::upll_strncpy(keyvtnsta->controller_name,"controller_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    keyvtnsta->controller_name, "controller_name", (kMaxLenCtrlrId + 1));
   val_vtnstation_controller_st *valVtnsta
       (ZALLOC_TYPE(val_vtnstation_controller_st));
-  uuu::upll_strncpy(valVtnsta->vtn_name,"vtn_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    valVtnsta->vtn_name, "vtn_name", (kMaxLenCtrlrId + 1));
   valVtnsta->valid[UPLL_IDX_VTN_NAME_VSCS] = UNC_VF_VALID;
-  uuu::upll_strncpy(valVtnsta->vbr_name,"vbr_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(valVtnsta->vbrif_name,"vbrif_name", (kMaxLenCtrlrId + 1));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, valVtnsta);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStValVtnstationControllerSt, keyvtnsta, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadSingleCtlrlStation(req,ikey,dmi,rec_count));
+  uuu::upll_strncpy(
+    valVtnsta->vbr_name, "vbr_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    valVtnsta->vbrif_name, "vbrif_name", (kMaxLenCtrlrId + 1));
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnstationControllerSt, valVtnsta);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStValVtnstationControllerSt, keyvtnsta, config_val);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.ReadSingleCtlrlStation(req, ikey, dmi, rec_count));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, ReadSingleCtlrlStation_vtn_valid_02) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
-  uint32_t ckv_count1=1;
-  uint32_t *rec_count=&ckv_count1;
+  uint32_t ckv_count1 = 1;
+  uint32_t *rec_count = &ckv_count1;
   DalDmlIntf *dmi(getDalDmlIntf());
 
   key_vtnstation_controller_t *keyvtnsta
       (ZALLOC_TYPE(key_vtnstation_controller_t));
-  uuu::upll_strncpy(keyvtnsta->controller_name,"controller_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    keyvtnsta->controller_name, "controller_name", (kMaxLenCtrlrId + 1));
 
   val_vtnstation_controller_st *valVtnsta
       (ZALLOC_TYPE(val_vtnstation_controller_st));
-  uuu::upll_strncpy(valVtnsta->vtn_name,"vtn_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(valVtnsta->domain_id,"domain_id1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    valVtnsta->vtn_name, "vtn_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    valVtnsta->domain_id, "domain_id1", (kMaxLenCtrlrId + 1));
   valVtnsta->valid[UPLL_IDX_VTN_NAME_VSCS] = UNC_VF_VALID;
   valVtnsta->valid[UPLL_IDX_DOMAIN_ID_VSCS] = UNC_VF_VALID;
-  uuu::upll_strncpy(valVtnsta->vbr_name,"vbr_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(valVtnsta->vbrif_name,"vbrif_name", (kMaxLenCtrlrId + 1));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, valVtnsta);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStValVtnstationControllerSt, keyvtnsta, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadSingleCtlrlStation(req,ikey,dmi,rec_count));
+  uuu::upll_strncpy(
+    valVtnsta->vbr_name, "vbr_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    valVtnsta->vbrif_name, "vbrif_name", (kMaxLenCtrlrId + 1));
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnstationControllerSt, valVtnsta);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStValVtnstationControllerSt, keyvtnsta, config_val);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.ReadSingleCtlrlStation(req, ikey, dmi, rec_count));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, ReadSingleCtlrlStation_vtn_valid_03) {
   VtnMoMgr vtn;
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcSuccess);
   IPC_REQ_RESP_HEADER_DECL(req);
-  uint32_t ckv_count1=1;
-  uint32_t *rec_count=&ckv_count1;
+  uint32_t ckv_count1 = 1;
+  uint32_t *rec_count = &ckv_count1;
   DalDmlIntf *dmi(getDalDmlIntf());
 
   key_vtnstation_controller_t *keyvtnsta
       (ZALLOC_TYPE(key_vtnstation_controller_t));
-uuu::upll_strncpy(keyvtnsta->controller_name,"controller_name", (kMaxLenCtrlrId
-                                                                   + 1));
+  uuu::upll_strncpy(
+    keyvtnsta->controller_name, "controller_name", (kMaxLenCtrlrId
+                                                                    + 1));
   val_vtnstation_controller_st *valVtnsta
       (ZALLOC_TYPE(val_vtnstation_controller_st));
-  uuu::upll_strncpy(valVtnsta->vtn_name,"vtn_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(valVtnsta->domain_id,"domain_id1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    valVtnsta->vtn_name, "vtn_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    valVtnsta->domain_id, "domain_id1", (kMaxLenCtrlrId + 1));
   valVtnsta->valid[UPLL_IDX_VTN_NAME_VSCS] = UNC_VF_VALID;
   valVtnsta->valid[UPLL_IDX_DOMAIN_ID_VSCS] = UNC_VF_VALID;
-  uuu::upll_strncpy(valVtnsta->vbr_name,"vbr_name", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(valVtnsta->vbrif_name,"vbrif_name", (kMaxLenCtrlrId + 1));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnstationControllerSt, valVtnsta);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER, IpctSt::kIpcStValVtnstationControllerSt, keyvtnsta, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadSingleCtlrlStation(req,ikey,dmi,rec_count));
+  uuu::upll_strncpy(
+    valVtnsta->vbr_name, "vbr_name", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    valVtnsta->vbrif_name, "vbrif_name", (kMaxLenCtrlrId + 1));
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnstationControllerSt, valVtnsta);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTNSTATION_CONTROLLER,
+     IpctSt::kIpcStValVtnstationControllerSt, keyvtnsta, config_val);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.ReadSingleCtlrlStation(req, ikey, dmi, rec_count));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, ReadSingleCtlrlVtnMapping_ikey) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
-  uint32_t ckv_count1=1;
-  uint32_t *ckv_count=&ckv_count1;
+  uint32_t ckv_count1 = 1;
+  uint32_t *ckv_count = &ckv_count1;
   key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
   val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
   req->rep_count = 2;
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadSingleCtlrlVtnMapping(req,ikey,dmi,ckv_count));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.ReadSingleCtlrlVtnMapping(req, ikey, dmi, ckv_count));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, ReadSingleCtlrlVtnMapping_ikey_Proper) {
   VtnMoMgr vtn;
   IPC_REQ_RESP_HEADER_DECL(req);
-  uint32_t ckv_count1=1;
-  uint32_t *ckv_count=&ckv_count1;
+  uint32_t ckv_count1 = 1;
+  uint32_t *ckv_count = &ckv_count1;
   req->rep_count = 2;
   key_vtn_t *keyvtn;
   val_vtn_t *valVtn;
-  GetKeyValStruct(keyvtn,valVtn);
+  GetKeyValStruct(keyvtn, valVtn);
+
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ReadSingleCtlrlVtnMapping(req,ikey,dmi,ckv_count));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.ReadSingleCtlrlVtnMapping(req, ikey, dmi, ckv_count));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, ReadSingleCtlrlVtnMapping_ikey_Proper_03) {
   VtnMoMgr vtn;
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcRecordNoMore);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::INIT, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::MULTIPLE, kDalRcRecordNoMore);
   IPC_REQ_RESP_HEADER_DECL(req);
-  uint32_t ckv_count1=1;
-  uint32_t *ckv_count=&ckv_count1;
+  uint32_t ckv_count1 = 1;
+  uint32_t *ckv_count = &ckv_count1;
   req->rep_count = 2;
   key_vtn_t *keyvtn;
   val_vtn_t *valVtn;
-  GetKeyValStruct(keyvtn,valVtn);
+  GetKeyValStruct(keyvtn, valVtn);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
-  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE, vtn.ReadSingleCtlrlVtnMapping(req,ikey,dmi,ckv_count));
+  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE,
+     vtn.ReadSingleCtlrlVtnMapping(req, ikey, dmi, ckv_count));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, MergeValidate_Error) {
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcSuccess);
-
-  std::map<uint8_t,DalResultCode> map;
-  map.insert(std::make_pair(1,kDalRcRecordNoMore));
-  map.insert(std::make_pair(0,kDalRcSuccess));
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::INIT, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::MULTIPLE, kDalRcSuccess);
+
+  std::map<uint8_t, DalResultCode> map;
+  map.insert(std::make_pair(1, kDalRcRecordNoMore));
+  map.insert(std::make_pair(0, kDalRcSuccess));
   DalOdbcMgr::stub_setNextRecordResultCodes(map);
   VtnMoMgr vtn;
   key_vtn_t *keyvtn;
   val_vtn_t *valVtn;
   const char *ctrlr_id = "Controller1";
-  GetKeyValStruct(keyvtn,valVtn);
+  GetKeyValStruct(keyvtn, valVtn);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.MergeValidate(UNC_KT_VTN, ctrlr_id,
-                                              ikey, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.MergeValidate(UNC_KT_VTN, ctrlr_id,
+                              ikey, dmi));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, MergeValidate_success) {
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcSuccess);
-
-  std::map<uint8_t,DalResultCode> map;
-  map.insert(std::make_pair(1,kDalRcRecordNoMore));
-  map.insert(std::make_pair(0,kDalRcSuccess));
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::INIT, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::MULTIPLE, kDalRcSuccess);
+
+  std::map<uint8_t, DalResultCode> map;
+  map.insert(std::make_pair(1, kDalRcRecordNoMore));
+  map.insert(std::make_pair(0, kDalRcSuccess));
   DalOdbcMgr::stub_setNextRecordResultCodes(map);
   VtnMoMgr vtn;
   key_vtn_t *key;
@@ -3492,209 +4079,270 @@ TEST_F(VtnMoMgrTest, MergeValidate_success) {
   GetKeyValStruct(key, val);
   const char *ctrlr_id = "Controller1";
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVtn, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.MergeValidate(UNC_KT_VTN, ctrlr_id,
-                                              ikey, dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.MergeValidate(UNC_KT_VTN, ctrlr_id,
+                              ikey, dmi));
   delete ikey;
 }
-
+# if 0
 TEST_F(VtnMoMgrTest, ControllerStatusHandler_01) {
-  bool operstatus=true;
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcSuccess);
-  std::map<uint8_t,DalResultCode> map;
-  map.insert(std::make_pair(1,kDalRcRecordNoMore));
-  map.insert(std::make_pair(0,kDalRcSuccess));
+  pfc_log_set_level(PFC_LOGLVL_VERBOSE);
+  bool operstatus = true;
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::MULTIPLE, kDalRcSuccess);
+  std::map<uint8_t, DalResultCode> map;
+  map.insert(std::make_pair(1, kDalRcRecordNoMore));
+  map.insert(std::make_pair(0, kDalRcSuccess));
   DalOdbcMgr::stub_setNextRecordResultCodes(map);
   VtnMoMgr vtn;
   key_vtn_t *keyvtn;
   val_vtn_t *valVtn;
-  GetKeyValStruct(keyvtn,valVtn);
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+  GetKeyValStruct(keyvtn, valVtn);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
 
   uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.ControllerStatusHandler( ctr_id1,
-                                              dmi, operstatus));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.ControllerStatusHandler(ctr_id1,
+                                        dmi, operstatus));
   delete ikey;
   free(ctr_id1);
 }
 
+# endif
 TEST_F(VtnMoMgrTest, ControllerStatusHandler_02) {
-  bool operstatus=true;
+  bool operstatus = true;
   VtnMoMgr vtn;
   key_vtn_t *keyvtn;
   val_vtn_t *valVtn;
-  GetKeyValStruct(keyvtn,valVtn);
+  GetKeyValStruct(keyvtn, valVtn);
+
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
-  uint8_t *ctrlr_id=NULL;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.ControllerStatusHandler( ctrlr_id,
-                                              dmi, operstatus));
+  uint8_t *ctrlr_id = NULL;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.ControllerStatusHandler(ctrlr_id,
+                                        dmi, operstatus));
   delete ikey;
 }
 
+# if 0
 TEST_F(VtnMoMgrTest, ControllerStatusHandler_03) {
-  bool operstatus=true;
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcSuccess);
-  std::map<uint8_t,DalResultCode> map;
-  map.insert(std::make_pair(1,kDalRcRecordNoMore));
-  map.insert(std::make_pair(0,kDalRcSuccess));
+  pfc_log_set_level(PFC_LOGLVL_VERBOSE);
+  bool operstatus = true;
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::INIT, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::MULTIPLE, kDalRcSuccess);
+  std::map<uint8_t, DalResultCode> map;
+  map.insert(std::make_pair(1, kDalRcRecordNoMore));
+  map.insert(std::make_pair(0, kDalRcSuccess));
   DalOdbcMgr::stub_setNextRecordResultCodes(map);
   VtnMoMgr vtn;
   key_vtn_t *keyvtn;
   val_vtn_t *valVtn;
-  GetKeyValStruct(keyvtn,valVtn);
+  GetKeyValStruct(keyvtn, valVtn);
+
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
   uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.ControllerStatusHandler( ctr_id1,
-                                              dmi, operstatus));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.ControllerStatusHandler(ctr_id1,
+                                        dmi, operstatus));
   delete ikey;
   free(ctr_id1);
 }
+# endif
 
 TEST_F(VtnMoMgrTest, ControllerStatusHandler_04) {
-  bool operstatus=true;
+  bool operstatus = true;
   VtnMoMgr vtn;
   key_vtn_t *keyvtn;
   val_vtn_t *valVtn;
-  GetKeyValStruct(keyvtn,valVtn);
+  GetKeyValStruct(keyvtn, valVtn);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
   uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.ControllerStatusHandler( ctr_id1,
-                                              dmi, operstatus));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.ControllerStatusHandler(ctr_id1,
+                                        dmi, operstatus));
   delete ikey;
   free(ctr_id1);
 }
 
 TEST_F(VtnMoMgrTest, IsReferenced_01) {
   VtnMoMgr vtn;
-  upll_keytype_datatype_t dt_type=UPLL_DT_STATE;
+  upll_keytype_datatype_t dt_type = UPLL_DT_STATE;
   key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
   val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
-  DalDmlIntf *dmi=NULL;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.IsReferenced(ikey,dt_type,dmi));
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+  DalDmlIntf *dmi = NULL;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.IsReferenced(ikey, dt_type, dmi));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, IsReferenced_02) {
   VtnMoMgr vtn;
-  upll_keytype_datatype_t dt_type=UPLL_DT_STATE;
+  upll_keytype_datatype_t dt_type = UPLL_DT_STATE;
   key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
   val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.IsReferenced(ikey,dt_type,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.IsReferenced(ikey, dt_type, dmi));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, IsReferenced_03) {
   VtnMoMgr vtn;
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::MULTIPLE, kDalRcSuccess);
 
-  std::map<uint8_t,DalResultCode> map;
-  map.insert(std::make_pair(1,kDalRcRecordNoMore));
-  map.insert(std::make_pair(0,kDalRcSuccess));
+  std::map<uint8_t, DalResultCode> map;
+  map.insert(std::make_pair(1, kDalRcRecordNoMore));
+  map.insert(std::make_pair(0, kDalRcSuccess));
   DalOdbcMgr::stub_setNextRecordResultCodes(map);
-  upll_keytype_datatype_t dt_type=UPLL_DT_STATE;
+  upll_keytype_datatype_t dt_type = UPLL_DT_STATE;
   key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
   val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SEMANTIC, vtn.IsReferenced(ikey,dt_type,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SEMANTIC, vtn.IsReferenced(ikey, dt_type, dmi));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, UpdateOperStatus_01) {
   VtnMoMgr vtn;
-  state_notification notification=kCtrlrReconnect;
+  state_notification notification = kCtrlrReconnect;
   key_vtn_t *keyvtn;
   val_vtn_t *valVtn;
-  GetKeyValStruct(keyvtn,valVtn);
+  GetKeyValStruct(keyvtn, valVtn);
+
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
   uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.UpdateOperStatus( ikey,
-                                              dmi, notification, true));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.UpdateOperStatus(ikey,
+                                 dmi, notification, true));
   delete ikey;
   free(ctr_id1);
 }
 
 TEST_F(VtnMoMgrTest, UpdateOperStatus_02) {
   VtnMoMgr vtn;
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::MULTIPLE, kDalRcSuccess);
 
-  std::map<uint8_t,DalResultCode> map;
-  map.insert(std::make_pair(1,kDalRcRecordNoMore));
-  map.insert(std::make_pair(0,kDalRcSuccess));
-  state_notification notification=kPortFaultReset;
+  std::map<uint8_t, DalResultCode> map;
+  map.insert(std::make_pair(1, kDalRcRecordNoMore));
+  map.insert(std::make_pair(0, kDalRcSuccess));
+  state_notification notification = kPortFaultReset;
   key_vtn_t *keyvtn;
   val_vtn_t *valVtn;
-  GetKeyValStruct(keyvtn,valVtn);
+  GetKeyValStruct(keyvtn, valVtn);
+
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
   key_user_data_t *user_data(ZALLOC_TYPE(key_user_data_t));
-  uuu::upll_strncpy(user_data->ctrlr_id,"Controller1", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(user_data->domain_id,"dom_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    user_data->ctrlr_id, "Controller1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    user_data->domain_id, "dom_id", (kMaxLenCtrlrId + 1));
   ikey->set_user_data((void*)user_data);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.UpdateOperStatus( ikey,
-                                              dmi, notification, true));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.UpdateOperStatus(ikey,
+                                 dmi, notification, true));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, UpdateOperStatus_03) {
   VtnMoMgr vtn;
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcRecordNoMore);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::CREATE_RECORD,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::MULTIPLE, kDalRcRecordNoMore);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::CREATE_RECORD, kDalRcSuccess);
 
-  std::map<uint8_t,DalResultCode> map;
-  map.insert(std::make_pair(1,kDalRcRecordNoMore));
-  map.insert(std::make_pair(0,kDalRcSuccess));
-  state_notification notification=kPortFaultReset;
+  std::map<uint8_t, DalResultCode> map;
+  map.insert(std::make_pair(1, kDalRcRecordNoMore));
+  map.insert(std::make_pair(0, kDalRcSuccess));
+  state_notification notification = kPortFaultReset;
   key_vtn_t *keyvtn;
   val_vtn_t *valVtn;
-  GetKeyValStruct(keyvtn,valVtn);
+  GetKeyValStruct(keyvtn, valVtn);
+
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
   key_user_data_t *user_data(ZALLOC_TYPE(key_user_data_t));
-  uuu::upll_strncpy(user_data->ctrlr_id,"Controller1", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(user_data->domain_id,"dom_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    user_data->ctrlr_id, "Controller1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    user_data->domain_id, "dom_id", (kMaxLenCtrlrId + 1));
   ikey->set_user_data((void*)user_data);
-  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE,vtn.UpdateOperStatus( ikey, dmi, notification, true));
+  EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE,
+     vtn.UpdateOperStatus(ikey, dmi, notification, true));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, GetRenamedUncKey_01) {
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE ,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::INIT, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE , kDalRcSuccess);
   VtnMoMgr vtn;
   upll_keytype_datatype_t dt_type = UPLL_DT_CANDIDATE;
   DalDmlIntf *dmi(getDalDmlIntf());
@@ -3703,9 +4351,13 @@ TEST_F(VtnMoMgrTest, GetRenamedUncKey_01) {
   key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
   val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.GetRenamedUncKey(ikey,dt_type,dmi,ctr_id1));
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.GetRenamedUncKey(ikey, dt_type, dmi, ctr_id1));
   delete ikey;
   free(ctr_id1);
 }
@@ -3717,15 +4369,19 @@ TEST_F(VtnMoMgrTest, GetRenamedUncKey_02) {
   uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
   key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, NULL);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.GetRenamedUncKey(ikey,dt_type,dmi,ctr_id1));
-  delete ikey;
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+    IpctSt::kIpcStKeyVtn, keyvtn, NULL);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.GetRenamedUncKey(ikey, dt_type, dmi, ctr_id1));
+  delete ikey;
   free(ctr_id1);
 }
 
 TEST_F(VtnMoMgrTest, GetRenamedUncKey_03) {
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE ,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::INIT, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE , kDalRcSuccess);
   VtnMoMgr vtn;
   upll_keytype_datatype_t dt_type = UPLL_DT_CANDIDATE;
   DalDmlIntf *dmi(getDalDmlIntf());
@@ -3733,9 +4389,13 @@ TEST_F(VtnMoMgrTest, GetRenamedUncKey_03) {
   key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
   val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.GetRenamedUncKey(ikey,dt_type,dmi,ctr_id1));
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.GetRenamedUncKey(ikey, dt_type, dmi, ctr_id1));
   delete ikey;
   free(ctr_id1);
 }
@@ -3749,27 +4409,39 @@ TEST_F(VtnMoMgrTest, GetRenamedUncKey_04) {
   key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
   val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.GetRenamedUncKey(ikey,dt_type,dmi,ctr_id1));
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.GetRenamedUncKey(ikey, dt_type, dmi, ctr_id1));
   delete ikey;
   free(ctr_id1);
 }
 
 TEST_F(VtnMoMgrTest, GetRenamedControllerKey_01) {
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::INIT, kDalRcSuccess);
   DalOdbcMgr::stub_setSingleRecordExists(true);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_COUNT,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::RECORD_EXISTS, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::RECORD_COUNT, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::INIT, kDalRcSuccess);
   VtnMoMgr vtn;
   key_vtn_t *keyvtn;
   val_vtn_t *valVtn;
-  GetKeyValStruct(keyvtn,valVtn);
+  GetKeyValStruct(keyvtn, valVtn);
+
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   upll_keytype_datatype_t dt_type = UPLL_DT_IMPORT;
   DalDmlIntf *dmi(getDalDmlIntf());
   uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
@@ -3780,7 +4452,8 @@ TEST_F(VtnMoMgrTest, GetRenamedControllerKey_01) {
   ctrlr_dom.ctrlr = ctr_id1;
   ctrlr_dom.domain = dom_id1;
   EXPECT_EQ(UPLL_RC_SUCCESS,
-            vtn.GetRenamedControllerKey(ikey, dt_type, dmi, &ctrlr_dom));
+
+    vtn.GetRenamedControllerKey(ikey, dt_type, dmi, &ctrlr_dom));
   delete ikey;
   free(ctr_id1);
   free(dom_id1);
@@ -3788,16 +4461,22 @@ TEST_F(VtnMoMgrTest, GetRenamedControllerKey_01) {
 
 TEST_F(VtnMoMgrTest, GetRenamedControllerKey_02) {
   DalOdbcMgr::stub_setSingleRecordExists(true);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_COUNT,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::RECORD_EXISTS, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::RECORD_COUNT, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcSuccess);
   VtnMoMgr vtn;
   key_vtn_t *keyvtn;
   val_vtn_t *valVtn;
-  GetKeyValStruct(keyvtn,valVtn);
+  GetKeyValStruct(keyvtn, valVtn);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   upll_keytype_datatype_t dt_type = UPLL_DT_IMPORT;
   DalDmlIntf *dmi(getDalDmlIntf());
   uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
@@ -3810,25 +4489,33 @@ TEST_F(VtnMoMgrTest, GetRenamedControllerKey_02) {
   UpllConfigMgr::GetUpllConfigMgr()->CreateMoManagers();
   SET_USER_DATA_FLAGS(ikey, 0x01);
   EXPECT_EQ(UPLL_RC_SUCCESS,
-            vtn.GetRenamedControllerKey(ikey, dt_type, dmi, &ctrlr_dom));
+
+    vtn.GetRenamedControllerKey(ikey, dt_type, dmi, &ctrlr_dom));
   delete ikey;
   free(ctr_id1);
   free(dom_id1);
 }
 
 TEST_F(VtnMoMgrTest, GetRenamedControllerKey_03) {
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::INIT, kDalRcSuccess);
   DalOdbcMgr::stub_setSingleRecordExists(true);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_COUNT,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcRecordNoMore);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::RECORD_EXISTS, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::RECORD_COUNT, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcRecordNoMore);
   VtnMoMgr vtn;
   key_vtn_t *keyvtn;
   val_vtn_t *valVtn;
-  GetKeyValStruct(keyvtn,valVtn);
+  GetKeyValStruct(keyvtn, valVtn);
+
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   upll_keytype_datatype_t dt_type = UPLL_DT_IMPORT;
   DalDmlIntf *dmi(getDalDmlIntf());
   uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
@@ -3841,7 +4528,7 @@ TEST_F(VtnMoMgrTest, GetRenamedControllerKey_03) {
   UpllConfigMgr::GetUpllConfigMgr()->CreateMoManagers();
   SET_USER_DATA_FLAGS(ikey, 0x01);
   EXPECT_EQ(UPLL_RC_ERR_NO_SUCH_INSTANCE,
-            vtn.GetRenamedControllerKey(ikey, dt_type, dmi, &ctrlr_dom));
+    vtn.GetRenamedControllerKey(ikey, dt_type, dmi, &ctrlr_dom));
   delete ikey;
   free(ctr_id1);
   free(dom_id1);
@@ -3851,30 +4538,40 @@ TEST_F(VtnMoMgrTest, GetRenamedControllerKey_04) {
   VtnMoMgr vtn;
   key_vtn_t *keyvtn;
   val_vtn_t *valVtn;
-  GetKeyValStruct(keyvtn,valVtn);
+  GetKeyValStruct(keyvtn, valVtn);
+
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   upll_keytype_datatype_t dt_type = UPLL_DT_IMPORT;
   DalDmlIntf *dmi(getDalDmlIntf());
-  controller_domain *ctrlr_dom=NULL;
+  controller_domain *ctrlr_dom = NULL;
   SET_USER_DATA_FLAGS(ikey, 0x01);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.GetRenamedControllerKey(ikey,dt_type,dmi,ctrlr_dom));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.GetRenamedControllerKey(ikey, dt_type, dmi, ctrlr_dom));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, GetRenamedControllerKey_05) {
   DalOdbcMgr::stub_setSingleRecordExists(true);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_EXISTS,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::RECORD_COUNT,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::RECORD_EXISTS, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::RECORD_COUNT, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcSuccess);
   VtnMoMgr vtn;
   key_vtn_t *keyvtn;
   val_vtn_t *valVtn;
-  GetKeyValStruct(keyvtn,valVtn);
+  GetKeyValStruct(keyvtn, valVtn);
+
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   upll_keytype_datatype_t dt_type = UPLL_DT_IMPORT;
   DalDmlIntf *dmi(getDalDmlIntf());
   uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
@@ -3887,20 +4584,25 @@ TEST_F(VtnMoMgrTest, GetRenamedControllerKey_05) {
   UpllConfigMgr::GetUpllConfigMgr()->CreateMoManagers();
   SET_USER_DATA_FLAGS(ikey, 0x01);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,
-            vtn.GetRenamedControllerKey(ikey, dt_type, dmi, &ctrlr_dom));
+
+    vtn.GetRenamedControllerKey(ikey, dt_type, dmi, &ctrlr_dom));
   delete ikey;
   free(ctr_id1);
   free(dom_id1);
 }
 
 TEST_F(VtnMoMgrTest, GetRenamedControllerKey_ikey_NULL) {
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE ,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE , kDalRcSuccess);
   VtnMoMgr vtn;
   key_vtn_t *keyvtn(ZALLOC_TYPE(key_vtn_t));
   val_vtn_t *valVtn(ZALLOC_TYPE(val_vtn_t));
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   upll_keytype_datatype_t dt_type = UPLL_DT_CANDIDATE;
   DalDmlIntf *dmi(getDalDmlIntf());
   uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
@@ -3910,17 +4612,21 @@ TEST_F(VtnMoMgrTest, GetRenamedControllerKey_ikey_NULL) {
   controller_domain ctrlr_dom1;
   ctrlr_dom1.ctrlr = ctr_id1;
   ctrlr_dom1.domain = NULL;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.GetRenamedControllerKey(ikey,dt_type,dmi,&ctrlr_dom1));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.GetRenamedControllerKey(ikey, dt_type, dmi, &ctrlr_dom1));
   delete ikey;
   free(ctr_id1);
   free(dom_id1);
 }
 
 TEST_F(VtnMoMgrTest, GetRenamedControllerKey_ikey_01) {
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE ,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE , kDalRcSuccess);
   VtnMoMgr vtn;
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, NULL);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, NULL, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, NULL);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+    IpctSt::kIpcStKeyVtn, NULL, config_val);
   upll_keytype_datatype_t dt_type = UPLL_DT_CANDIDATE;
   DalDmlIntf *dmi(getDalDmlIntf());
   uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
@@ -3931,7 +4637,8 @@ TEST_F(VtnMoMgrTest, GetRenamedControllerKey_ikey_01) {
   ctrlr_dom.ctrlr = ctr_id1;
   ctrlr_dom.domain = dom_id1;
   SET_USER_DATA_FLAGS(ikey, 0x01);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.GetRenamedControllerKey(ikey,dt_type,dmi,&ctrlr_dom));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.GetRenamedControllerKey(ikey, dt_type, dmi, &ctrlr_dom));
   delete ikey;
   free(ctr_id1);
   free(dom_id1);
@@ -3941,21 +4648,26 @@ TEST_F(VtnMoMgrTest, UpdateVtnConfigStatus_Update) {
   VtnMoMgr vtn;
   key_vtn_t *keyvtn;
   val_vtn_t *valVtn;
-  GetKeyValStruct(keyvtn,valVtn);
+  GetKeyValStruct(keyvtn, valVtn);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
   strcpy((char *)keyvtn->vtn_name, (const char *)"vtn1");
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
 
   key_vtn_t *key1(UT_CLONE(key_vtn_t, keyvtn));
   val_vtn_t *val1(UT_CLONE(val_vtn_t, valVtn));
   ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVtn, val1));
-  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VTN,
+     IpctSt::kIpcStKeyVtn,
                                          key1, cfgval1));
-  uint32_t driver_result=UPLL_RC_SUCCESS;
+  uint32_t driver_result = UPLL_RC_SUCCESS;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,
-            vtn.UpdateVtnConfigStatus(ikey, UNC_OP_UPDATE, driver_result,
+
+    vtn.UpdateVtnConfigStatus(ikey, UNC_OP_UPDATE, driver_result,
                                       upd_key, dmi));
   delete ikey;
   delete upd_key;
@@ -3963,24 +4675,31 @@ TEST_F(VtnMoMgrTest, UpdateVtnConfigStatus_Update) {
 
 TEST_F(VtnMoMgrTest, UpdateVtnConfigStatus_Update_01) {
   VtnMoMgr vtn;
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::CREATE_RECORD,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::CREATE_RECORD, kDalRcSuccess);
   key_vtn_t *keyvtn;
   val_vtn_t *valVtn;
-  GetKeyValStruct(keyvtn,valVtn);
+  GetKeyValStruct(keyvtn, valVtn);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
 
   key_vtn_t *key1(UT_CLONE(key_vtn_t, keyvtn));
   val_vtn_t *val1(UT_CLONE(val_vtn_t, valVtn));
   ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVtn, val1));
-  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VTN,
+     IpctSt::kIpcStKeyVtn,
                                          key1, cfgval1));
-  uint32_t driver_result=UPLL_RC_SUCCESS;
+  uint32_t driver_result = UPLL_RC_SUCCESS;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,
-            vtn.UpdateVtnConfigStatus(ikey, UNC_OP_UPDATE, driver_result,
+
+    vtn.UpdateVtnConfigStatus(ikey, UNC_OP_UPDATE, driver_result,
                                       upd_key, dmi));
   delete ikey;
   delete upd_key;
@@ -3990,22 +4709,27 @@ TEST_F(VtnMoMgrTest, UpdateVtnConfigStatus_Create) {
   VtnMoMgr vtn;
   key_vtn_t *keyvtn;
   val_vtn_t *valVtn;
-  GetKeyValStruct(keyvtn,valVtn);
+  GetKeyValStruct(keyvtn, valVtn);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
   strcpy((char *)keyvtn->vtn_name, (const char *)"vtn1");
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
 
   key_vtn_t *key1(UT_CLONE(key_vtn_t, keyvtn));
   val_vtn_t *val1(UT_CLONE(val_vtn_t, valVtn));
   ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVtn, val1));
-  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VTN,
+     IpctSt::kIpcStKeyVtn,
                                          key1, cfgval1));
-  uint32_t driver_result=UPLL_RC_SUCCESS;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.UpdateVtnConfigStatus(ikey, UNC_OP_CREATE,
-                                                   driver_result,
-                                                   upd_key,dmi));
+  uint32_t driver_result = UPLL_RC_SUCCESS;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.UpdateVtnConfigStatus(ikey, UNC_OP_CREATE,
+                                      driver_result,
+                                      upd_key, dmi));
   delete ikey;
   delete upd_key;
 }
@@ -4014,21 +4738,26 @@ TEST_F(VtnMoMgrTest, UpdateVtnConfigStatus_Delete) {
   VtnMoMgr vtn;
   key_vtn_t *keyvtn;
   val_vtn_t *valVtn;
-  GetKeyValStruct(keyvtn,valVtn);
+  GetKeyValStruct(keyvtn, valVtn);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
   strcpy((char *)keyvtn->vtn_name, (const char *)"vtn1");
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
 
   key_vtn_t *key1(UT_CLONE(key_vtn_t, keyvtn));
   val_vtn_t *val1(UT_CLONE(val_vtn_t, valVtn));
   ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVtn, val1));
-  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VTN,
+     IpctSt::kIpcStKeyVtn,
                                          key1, cfgval1));
-  uint32_t driver_result=UPLL_RC_SUCCESS;
+  uint32_t driver_result = UPLL_RC_SUCCESS;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,
-            vtn.UpdateVtnConfigStatus(ikey, UNC_OP_DELETE, driver_result,
+
+    vtn.UpdateVtnConfigStatus(ikey, UNC_OP_DELETE, driver_result,
                                       upd_key, dmi));
   delete ikey;
   delete upd_key;
@@ -4038,21 +4767,26 @@ TEST_F(VtnMoMgrTest, UpdateVtnConfigStatus_Read) {
   VtnMoMgr vtn;
   key_vtn_t *keyvtn;
   val_vtn_t *valVtn;
-  GetKeyValStruct(keyvtn,valVtn);
+  GetKeyValStruct(keyvtn, valVtn);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
   strcpy((char *)keyvtn->vtn_name, (const char *)"vtn1");
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
 
   key_vtn_t *key1(UT_CLONE(key_vtn_t, keyvtn));
   val_vtn_t *val1(UT_CLONE(val_vtn_t, valVtn));
   ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVtn, val1));
-  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VTN,
+     IpctSt::kIpcStKeyVtn,
                                          key1, cfgval1));
-  uint32_t driver_result=UPLL_RC_SUCCESS;
+  uint32_t driver_result = UPLL_RC_SUCCESS;
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,
-            vtn.UpdateVtnConfigStatus(ikey, UNC_OP_READ, driver_result,
+
+    vtn.UpdateVtnConfigStatus(ikey, UNC_OP_READ, driver_result,
                                       upd_key, dmi));
   delete ikey;
   delete upd_key;
@@ -4062,16 +4796,20 @@ TEST_F(VtnMoMgrTest, UpdateVtnConfigStatus_Update_ikey_Err) {
   VtnMoMgr vtn;
   key_vtn_t *keyvtn;
   val_vtn_t *valVtn;
-  GetKeyValStruct(keyvtn,valVtn);
+  GetKeyValStruct(keyvtn, valVtn);
+
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
   ConfigKeyVal *upd_key = NULL;
-  uint32_t driver_result=UPLL_RC_SUCCESS;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.UpdateVtnConfigStatus(ikey, UNC_OP_UPDATE,
-                                                   driver_result,
-                                                   upd_key,dmi));
+  uint32_t driver_result = UPLL_RC_SUCCESS;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.UpdateVtnConfigStatus(ikey, UNC_OP_UPDATE,
+                                      driver_result,
+                                      upd_key, dmi));
   delete ikey;
 }
 
@@ -4079,16 +4817,20 @@ TEST_F(VtnMoMgrTest, UpdateVtnConfigStatus_Update_Val_NULL) {
   VtnMoMgr vtn;
   key_vtn_t *keyvtn;
   val_vtn_t *valVtn;
-  GetKeyValStruct(keyvtn,valVtn);
+  GetKeyValStruct(keyvtn, valVtn);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
   ConfigKeyVal *upd_key = NULL;
-  uint32_t driver_result=UPLL_RC_SUCCESS;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.UpdateVtnConfigStatus(ikey, UNC_OP_UPDATE,
-                                                   driver_result,
-                                                   upd_key,dmi));
+  uint32_t driver_result = UPLL_RC_SUCCESS;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.UpdateVtnConfigStatus(ikey, UNC_OP_UPDATE,
+                                      driver_result,
+                                      upd_key, dmi));
   delete ikey;
 }
 
@@ -4096,16 +4838,20 @@ TEST_F(VtnMoMgrTest, UpdateVtnConfigStatus_Delete_ikey_Err) {
   VtnMoMgr vtn;
   key_vtn_t *keyvtn;
   val_vtn_t *valVtn;
-  GetKeyValStruct(keyvtn,valVtn);
+  GetKeyValStruct(keyvtn, valVtn);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, valVtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVtn, keyvtn, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, valVtn);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+
+    IpctSt::kIpcStKeyVtn, keyvtn, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
   ConfigKeyVal *upd_key = NULL;
-  uint32_t driver_result=UPLL_RC_SUCCESS;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.UpdateVtnConfigStatus(ikey, UNC_OP_DELETE,
-                                                   driver_result,
-                                                   upd_key,dmi));
+  uint32_t driver_result = UPLL_RC_SUCCESS;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.UpdateVtnConfigStatus(ikey, UNC_OP_DELETE,
+                                      driver_result,
+                                      upd_key, dmi));
   delete ikey;
 }
 
@@ -4114,36 +4860,43 @@ TEST_F(VtnMoMgrTest, CopyToConfigkey_ikeyokeyNull) {
   ConfigKeyVal *okey = NULL;
   ConfigKeyVal *ikey = NULL;
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.CopyToConfigKey(okey,ikey));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.CopyToConfigKey(okey, ikey));
 
   ikey = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            NULL, NULL);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.CopyToConfigKey(okey,ikey));
+
+                          IpctSt::kIpcStKeyVtn,
+                          NULL, NULL);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.CopyToConfigKey(okey, ikey));
   delete ikey;
   delete okey;
 }
 
 TEST_F(VtnMoMgrTest, CopyToConfigkey_01) {
   VtnMoMgr vtn;
-  ConfigKeyVal *okey=NULL;
+  ConfigKeyVal *okey = NULL;
   key_rename_vnode_info *key_rename(ZALLOC_TYPE(key_rename_vnode_info));
-  ConfigKeyVal *ikey(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *ikey(new ConfigKeyVal(UNC_KT_VTN,
+                                      IpctSt::kIpcStKeyVtn,
                                       key_rename, NULL));
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.CopyToConfigKey(okey, ikey));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.CopyToConfigKey(okey, ikey));
   delete ikey;
   delete okey;
 }
 
 TEST_F(VtnMoMgrTest, CopyToConfigkey_02) {
   VtnMoMgr vtn;
-  ConfigKeyVal *okey=NULL;
+  ConfigKeyVal *okey = NULL;
   key_rename_vnode_info *key_rename(ZALLOC_TYPE(key_rename_vnode_info));
   pfc_strlcpy(reinterpret_cast<char *>(key_rename->old_unc_vtn_name),
               "VTN_1", sizeof(key_rename->old_unc_vtn_name));
-  ConfigKeyVal *ikey(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *ikey(new ConfigKeyVal(UNC_KT_VTN,
+                                      IpctSt::kIpcStKeyVtn,
                                       key_rename, NULL));
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.CopyToConfigKey(okey, ikey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.CopyToConfigKey(okey, ikey));
   delete ikey;
   delete okey;
 }
@@ -4158,24 +4911,28 @@ TEST_F(VtnMoMgrTest, UpdateConfigStatus_Create) {
 
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVtn, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, cfgval);
+
+    IpctSt::kIpcStKeyVtn,
+                                        key, cfgval);
 
   key_vtn_t *key1(UT_CLONE(key_vtn_t, key));
   val_vtn_t *val1(UT_CLONE(val_vtn_t, val));
   ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVtn, val1));
-  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VTN,
+     IpctSt::kIpcStKeyVtn,
                                          key1, cfgval1));
 
   key_vtn_t *key2(UT_CLONE(key_vtn_t, key));
   val_vtn_t *val2(UT_CLONE(val_vtn_t, val));
   ConfigVal *cfgval2(new ConfigVal(IpctSt::kIpcStValVtn, val2));
-  ConfigKeyVal *ctrlr_run(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *ctrlr_run(new ConfigKeyVal(UNC_KT_VTN,
+       IpctSt::kIpcStKeyVtn,
                                            key2, cfgval2));
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.UpdateConfigStatus(ikey, UNC_OP_CREATE,
-                                                   UPLL_RC_SUCCESS,
-                                                   upd_key,dmi,ctrlr_run));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.UpdateConfigStatus(ikey, UNC_OP_CREATE,
+                                   UPLL_RC_SUCCESS,
+                                   upd_key, dmi, ctrlr_run));
   delete ikey;
   delete upd_key;
   delete ctrlr_run;
@@ -4187,16 +4944,19 @@ TEST_F(VtnMoMgrTest, UpdateConfigStatus_ValVTN_NULL) {
   key_vtn *key(ZALLOC_TYPE(key_vtn));
   UpllConfigMgr::GetUpllConfigMgr()->CreateMoManagers();
   ConfigVal *cfgval(new ConfigVal(IpctSt::kIpcStValVtn, NULL));
-  ConfigKeyVal *ikey(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *ikey(new ConfigKeyVal(UNC_KT_VTN,
+                                      IpctSt::kIpcStKeyVtn,
                                       key, cfgval));
 
   key_vtn_t *key1(UT_CLONE(key_vtn_t, key));
   ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVtn, NULL));
-  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VTN,
+     IpctSt::kIpcStKeyVtn,
                                          key1, cfgval1));
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,
-            vtn.UpdateConfigStatus(ikey, UNC_OP_CREATE, UPLL_RC_SUCCESS,
+
+    vtn.UpdateConfigStatus(ikey, UNC_OP_CREATE, UPLL_RC_SUCCESS,
                                    upd_key, dmi, ikey));
   delete ikey;
   delete upd_key;
@@ -4212,13 +4972,15 @@ TEST_F(VtnMoMgrTest, UpdateConfigStatus_ConfigKeyVal_NULL) {
 
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVtn, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, cfgval);
+
+    IpctSt::kIpcStKeyVtn,
+                                        key, cfgval);
   ConfigKeyVal *upd_key = NULL;
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.UpdateConfigStatus(ikey, UNC_OP_CREATE,
-                                                   UPLL_RC_SUCCESS,
-                                                   upd_key,dmi,ikey));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.UpdateConfigStatus(ikey, UNC_OP_CREATE,
+                                   UPLL_RC_SUCCESS,
+                                   upd_key, dmi, ikey));
   delete ikey;
 }
 
@@ -4231,17 +4993,20 @@ TEST_F(VtnMoMgrTest, UpdateConfigStatus_PFC) {
 
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVtn, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, cfgval);
+
+    IpctSt::kIpcStKeyVtn,
+                                        key, cfgval);
 
   key_vtn_t *key1(UT_CLONE(key_vtn_t, key));
   val_vtn_t *val1(UT_CLONE(val_vtn_t, val));
   ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVtn, val1));
-  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VTN,
+     IpctSt::kIpcStKeyVtn,
                                          key1, cfgval1));
   UpllConfigMgr::GetUpllConfigMgr()->CreateMoManagers();
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,
-            vtn.UpdateConfigStatus(ikey, UNC_OP_CREATE, UPLL_RC_SUCCESS,
+
+    vtn.UpdateConfigStatus(ikey, UNC_OP_CREATE, UPLL_RC_SUCCESS,
                                    upd_key, dmi, ikey));
   delete ikey;
   delete upd_key;
@@ -4256,34 +5021,46 @@ TEST_F(VtnMoMgrTest, UpdateConfigStatus_OP_Update_01) {
 
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVtn, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, cfgval);
+
+    IpctSt::kIpcStKeyVtn,
+                                        key, cfgval);
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
-  uuu::upll_strncpy(key_ctrlr->controller_name,"controller_name1", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(key_ctrlr->domain_id,"domain_id", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(key_ctrlr->vtn_key.vtn_name,"vtn_name1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->controller_name,
+                    "controller_name1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->domain_id,
+                    "domain_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->vtn_key.vtn_name,
+                    "vtn_name1", (kMaxLenCtrlrId + 1));
   val_vtn_ctrlr_t *val_ctrlr(ZALLOC_TYPE(val_vtn_ctrlr_t));
-  val_ctrlr->ref_count=1;
-  val_ctrlr->down_count=1;
+  val_ctrlr->ref_count = 1;
+  val_ctrlr->down_count = 1;
 
   UpllConfigMgr::GetUpllConfigMgr()->CreateMoManagers();
   ConfigVal *cfgval1 = new ConfigVal(IpctSt::kIpcStValVtn, val_ctrlr);
   ConfigKeyVal *upd_key = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtnController,
-                            key_ctrlr, cfgval1);
+
+       IpctSt::kIpcStKeyVtnController,
+                                           key_ctrlr, cfgval1);
   const char* version("version");
-  CtrlrMgr::Ctrlr ctrl("controller_name1",UNC_CT_PFC,version);
-  CtrlrMgr::Ctrlr* ctrl1( new CtrlrMgr::Ctrlr(ctrl,UPLL_DT_CANDIDATE));
+  CtrlrMgr::Ctrlr ctrl("controller_name1", UNC_CT_PFC, version);
+  CtrlrMgr::Ctrlr* ctrl1(new CtrlrMgr::Ctrlr(ctrl, UPLL_DT_CANDIDATE));
   CtrlrMgr::GetInstance()->ctrlrs_.push_back(ctrl1);
   key_user_data_t *user_data(ZALLOC_TYPE(key_user_data_t));
-  uuu::upll_strncpy(user_data->ctrlr_id,"controller_name1", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(user_data->domain_id,"dom_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    user_data->ctrlr_id, "controller_name1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    user_data->domain_id, "dom_id", (kMaxLenCtrlrId + 1));
   upd_key->set_user_data((void*)user_data);
-  CapaModuleStub::stub_setResultcode(CapaModuleStub::GET_CREATE_CAPABILITY, true);
+  CapaModuleStub::stub_setResultcode(
+    CapaModuleStub::GET_CREATE_CAPABILITY, true);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.UpdateConfigStatus(ikey, UNC_OP_UPDATE,
-                                                   UPLL_RC_SUCCESS,
-                                                   upd_key,dmi,upd_key));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.UpdateConfigStatus(ikey, UNC_OP_UPDATE,
+                                   UPLL_RC_SUCCESS,
+                                   upd_key, dmi, upd_key));
   delete ikey;
   delete upd_key;
 }
@@ -4297,41 +5074,54 @@ TEST_F(VtnMoMgrTest, UpdateConfigStatus_OP_Update_02) {
 
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVtn, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, cfgval);
+
+    IpctSt::kIpcStKeyVtn,
+                                        key, cfgval);
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
-  uuu::upll_strncpy(key_ctrlr->controller_name,"controller_name1", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(key_ctrlr->domain_id,"domain_id", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(key_ctrlr->vtn_key.vtn_name,"vtn_name1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->controller_name,
+                    "controller_name1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->domain_id,
+                    "domain_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->vtn_key.vtn_name,
+                    "vtn_name1", (kMaxLenCtrlrId + 1));
   val_vtn_ctrlr_t *val_ctrlr(ZALLOC_TYPE(val_vtn_ctrlr_t));
-  val_ctrlr->ref_count=3;
-  val_ctrlr->down_count=1;
+  val_ctrlr->ref_count = 3;
+  val_ctrlr->down_count = 1;
 
   UpllConfigMgr::GetUpllConfigMgr()->CreateMoManagers();
   ConfigVal *cfgval1 = new ConfigVal(IpctSt::kIpcStValVtn, val_ctrlr);
   ConfigKeyVal *upd_key = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtnController,
-                            key_ctrlr, cfgval1);
+
+       IpctSt::kIpcStKeyVtnController,
+                                           key_ctrlr, cfgval1);
   const char* version("version");
-  CtrlrMgr::Ctrlr ctrl("controller_name1",UNC_CT_PFC,version);
-  CtrlrMgr::Ctrlr* ctrl1( new CtrlrMgr::Ctrlr(ctrl,UPLL_DT_CANDIDATE));
+  CtrlrMgr::Ctrlr ctrl("controller_name1", UNC_CT_PFC, version);
+  CtrlrMgr::Ctrlr* ctrl1(new CtrlrMgr::Ctrlr(ctrl, UPLL_DT_CANDIDATE));
   CtrlrMgr::GetInstance()->ctrlrs_.push_back(ctrl1);
   key_user_data_t *user_data(ZALLOC_TYPE(key_user_data_t));
-  uuu::upll_strncpy(user_data->ctrlr_id,"controller_name1", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(user_data->domain_id,"dom_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    user_data->ctrlr_id, "controller_name1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    user_data->domain_id, "dom_id", (kMaxLenCtrlrId + 1));
   upd_key->set_user_data((void*)user_data);
-  CapaModuleStub::stub_setResultcode(CapaModuleStub::GET_CREATE_CAPABILITY, true);
+  CapaModuleStub::stub_setResultcode(
+    CapaModuleStub::GET_CREATE_CAPABILITY, true);
   key_vtn_controller_t *key_ctrlr2(UT_CLONE(key_vtn_controller_t, key_ctrlr));
   val_vtn_ctrlr_t *val_ctrlr2(ZALLOC_TYPE(val_vtn_ctrlr_t));
-  val_ctrlr2->ref_count=1;
-  val_ctrlr2->down_count=0;
+  val_ctrlr2->ref_count = 1;
+  val_ctrlr2->down_count = 0;
   ConfigVal *cfgval2(new ConfigVal(IpctSt::kIpcStValVtn, val_ctrlr2));
   ConfigKeyVal *upd_key2(new ConfigKeyVal(UNC_KT_VTN,
-                                          IpctSt::kIpcStKeyVtnController,
+
+      IpctSt::kIpcStKeyVtnController,
                                           key_ctrlr2, cfgval2));
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,
-            vtn.UpdateConfigStatus(ikey, UNC_OP_UPDATE, UPLL_RC_SUCCESS,
+
+    vtn.UpdateConfigStatus(ikey, UNC_OP_UPDATE, UPLL_RC_SUCCESS,
                                    upd_key, dmi, upd_key2));
   delete ikey;
   delete upd_key;
@@ -4347,19 +5137,22 @@ TEST_F(VtnMoMgrTest, UpdateConfigStatus_invalidOP) {
 
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVtn, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, cfgval);
+
+    IpctSt::kIpcStKeyVtn,
+                                        key, cfgval);
 
   key_vtn_t *key1(UT_CLONE(key_vtn_t, key));
   val_vtn_t *val1(UT_CLONE(val_vtn_t, val));
   ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVtn, val1));
-  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *upd_key(new ConfigKeyVal(UNC_KT_VTN,
+     IpctSt::kIpcStKeyVtn,
                                          key1, cfgval1));
 
   UpllConfigMgr::GetUpllConfigMgr()->CreateMoManagers();
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.UpdateConfigStatus(ikey, UNC_OP_READ,
-                                                   UPLL_RC_SUCCESS,
-                                                   upd_key,dmi,ikey));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.UpdateConfigStatus(ikey, UNC_OP_READ,
+                                   UPLL_RC_SUCCESS,
+                                   upd_key, dmi, ikey));
   delete ikey;
   delete upd_key;
 }
@@ -4373,34 +5166,46 @@ TEST_F(VtnMoMgrTest, UpdateConfigStatus_OP_Create) {
 
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVtn, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, cfgval);
+
+    IpctSt::kIpcStKeyVtn,
+                                        key, cfgval);
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
-  uuu::upll_strncpy(key_ctrlr->controller_name,"controller_name1", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(key_ctrlr->domain_id,"domain_id", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(key_ctrlr->vtn_key.vtn_name,"vtn_name1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->controller_name,
+                    "controller_name1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->domain_id,
+                    "domain_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->vtn_key.vtn_name,
+                    "vtn_name1", (kMaxLenCtrlrId + 1));
   val_vtn_ctrlr_t *val_ctrlr(ZALLOC_TYPE(val_vtn_ctrlr_t));
-  val_ctrlr->ref_count=1;
-  val_ctrlr->down_count=1;
+  val_ctrlr->ref_count = 1;
+  val_ctrlr->down_count = 1;
 
   UpllConfigMgr::GetUpllConfigMgr()->CreateMoManagers();
   ConfigVal *cfgval1 = new ConfigVal(IpctSt::kIpcStValVtn, val_ctrlr);
   ConfigKeyVal *upd_key = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtnController,
-                            key_ctrlr, cfgval1);
+
+       IpctSt::kIpcStKeyVtnController,
+                                           key_ctrlr, cfgval1);
   const char* version("version");
-  CtrlrMgr::Ctrlr ctrl("controller_name1",UNC_CT_PFC,version);
-  CtrlrMgr::Ctrlr* ctrl1( new CtrlrMgr::Ctrlr(ctrl,UPLL_DT_CANDIDATE));
+  CtrlrMgr::Ctrlr ctrl("controller_name1", UNC_CT_PFC, version);
+  CtrlrMgr::Ctrlr* ctrl1(new CtrlrMgr::Ctrlr(ctrl, UPLL_DT_CANDIDATE));
   CtrlrMgr::GetInstance()->ctrlrs_.push_back(ctrl1);
   key_user_data_t *user_data(ZALLOC_TYPE(key_user_data_t));
-  uuu::upll_strncpy(user_data->ctrlr_id,"controller_name1", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(user_data->domain_id,"dom_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    user_data->ctrlr_id, "controller_name1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    user_data->domain_id, "dom_id", (kMaxLenCtrlrId + 1));
   upd_key->set_user_data((void*)user_data);
-  CapaModuleStub::stub_setResultcode(CapaModuleStub::GET_CREATE_CAPABILITY, true);
+  CapaModuleStub::stub_setResultcode(
+    CapaModuleStub::GET_CREATE_CAPABILITY, true);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.UpdateConfigStatus(ikey, UNC_OP_CREATE,
-                                                   UPLL_RC_SUCCESS,
-                                                   upd_key,dmi,upd_key));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.UpdateConfigStatus(ikey, UNC_OP_CREATE,
+                                   UPLL_RC_SUCCESS,
+                                   upd_key, dmi, upd_key));
   delete ikey;
   delete upd_key;
 }
@@ -4412,53 +5217,69 @@ TEST_F(VtnMoMgrTest, UpdateConfigStatus_OP_Create_01) {
   val_vtn *val;
   GetKeyValStruct(key, val);
 
-  val->cs_row_status=UNC_CS_NOT_APPLIED;
+  val->cs_row_status = UNC_CS_NOT_APPLIED;
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVtn, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, cfgval);
+
+    IpctSt::kIpcStKeyVtn,
+                                        key, cfgval);
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
-  uuu::upll_strncpy(key_ctrlr->controller_name,"controller_name1", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(key_ctrlr->domain_id,"domain_id", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(key_ctrlr->vtn_key.vtn_name,"vtn_name1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->controller_name,
+                    "controller_name1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->domain_id,
+                    "domain_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->vtn_key.vtn_name,
+                    "vtn_name1", (kMaxLenCtrlrId + 1));
   val_vtn_ctrlr_t *val_ctrlr(ZALLOC_TYPE(val_vtn_ctrlr_t));
-  val_ctrlr->ref_count=1;
-  val_ctrlr->down_count=1;
+  val_ctrlr->ref_count = 1;
+  val_ctrlr->down_count = 1;
 
   UpllConfigMgr::GetUpllConfigMgr()->CreateMoManagers();
   ConfigVal *cfgval1 = new ConfigVal(IpctSt::kIpcStValVtn, val_ctrlr);
   ConfigKeyVal *upd_key = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtnController,
-                            key_ctrlr, cfgval1);
+
+       IpctSt::kIpcStKeyVtnController,
+                                           key_ctrlr, cfgval1);
   const char* version("version");
-  CtrlrMgr::Ctrlr ctrl("controller_name1",UNC_CT_PFC,version);
-  CtrlrMgr::Ctrlr* ctrl1( new CtrlrMgr::Ctrlr(ctrl,UPLL_DT_CANDIDATE));
+  CtrlrMgr::Ctrlr ctrl("controller_name1", UNC_CT_PFC, version);
+  CtrlrMgr::Ctrlr* ctrl1(new CtrlrMgr::Ctrlr(ctrl, UPLL_DT_CANDIDATE));
   CtrlrMgr::GetInstance()->ctrlrs_.push_back(ctrl1);
   key_user_data_t *user_data(ZALLOC_TYPE(key_user_data_t));
-  uuu::upll_strncpy(user_data->ctrlr_id,"controller_name1", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(user_data->domain_id,"dom_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    user_data->ctrlr_id, "controller_name1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    user_data->domain_id, "dom_id", (kMaxLenCtrlrId + 1));
   upd_key->set_user_data((void*)user_data);
-  CapaModuleStub::stub_setResultcode(CapaModuleStub::GET_CREATE_CAPABILITY, true);
-
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.UpdateConfigStatus(ikey, UNC_OP_CREATE,
-                                                   UPLL_RC_SUCCESS,
-                                                   upd_key,dmi,upd_key));
-  val->cs_row_status=UNC_CS_PARTIALLY_APPLIED;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.UpdateConfigStatus(ikey, UNC_OP_CREATE,
-                                                   UPLL_RC_SUCCESS,
-                                                   upd_key,dmi,upd_key));
-  val->cs_row_status=UNC_CS_INVALID;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.UpdateConfigStatus(ikey, UNC_OP_CREATE,
-                                                   UPLL_RC_SUCCESS,
-                                                   upd_key,dmi,upd_key));
-  val->cs_row_status=UNC_CS_UNKNOWN;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.UpdateConfigStatus(ikey, UNC_OP_CREATE,
-                                                   UPLL_RC_SUCCESS,
-                                                   upd_key,dmi,upd_key));
-  val->cs_row_status=UNC_CS_NOT_SUPPORTED;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.UpdateConfigStatus(ikey, UNC_OP_CREATE,
-                                                   UPLL_RC_SUCCESS,
-                                                   upd_key,dmi,upd_key));
+  CapaModuleStub::stub_setResultcode(
+    CapaModuleStub::GET_CREATE_CAPABILITY, true);
+
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.UpdateConfigStatus(ikey, UNC_OP_CREATE,
+                                   UPLL_RC_SUCCESS,
+                                   upd_key, dmi, upd_key));
+  val->cs_row_status = UNC_CS_PARTIALLY_APPLIED;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.UpdateConfigStatus(ikey, UNC_OP_CREATE,
+                                   UPLL_RC_SUCCESS,
+                                   upd_key, dmi, upd_key));
+  val->cs_row_status = UNC_CS_INVALID;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.UpdateConfigStatus(ikey, UNC_OP_CREATE,
+                                   UPLL_RC_SUCCESS,
+                                   upd_key, dmi, upd_key));
+  val->cs_row_status = UNC_CS_UNKNOWN;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.UpdateConfigStatus(ikey, UNC_OP_CREATE,
+                                   UPLL_RC_SUCCESS,
+                                   upd_key, dmi, upd_key));
+  val->cs_row_status = UNC_CS_NOT_SUPPORTED;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.UpdateConfigStatus(ikey, UNC_OP_CREATE,
+                                   UPLL_RC_SUCCESS,
+                                   upd_key, dmi, upd_key));
   delete ikey;
   delete upd_key;
 }
@@ -4471,8 +5292,9 @@ TEST_F(VtnMoMgrTest, ValidateCapability_Success) {
 
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVtn, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, cfgval);
+
+    IpctSt::kIpcStKeyVtn,
+                                        key, cfgval);
 
 
   CtrlrMgr::Ctrlr ctrlrobj("CTR_1", UNC_CT_PFC, "5.0");
@@ -4487,17 +5309,21 @@ TEST_F(VtnMoMgrTest, ValidateCapability_Success) {
   req->option2 = UNC_OPT2_NONE;
   req->datatype = UPLL_DT_CANDIDATE;
 
-  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vtn.ValidateCapability(req, ikey, "CTR_1"));
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+     vtn.ValidateCapability(req, ikey, "CTR_1"));
   val_vbr* no_val = NULL;
   cfgval = new ConfigVal(IpctSt::kIpcStValVbr, no_val);
   ikey = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, cfgval);
-  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR, vtn.ValidateCapability(req, ikey, "CTR_1"));
+
+                          IpctSt::kIpcStKeyVtn,
+                          key, cfgval);
+  EXPECT_EQ(UPLL_RC_ERR_NOT_SUPPORTED_BY_CTRLR,
+     vtn.ValidateCapability(req, ikey, "CTR_1"));
 
   req->operation = UNC_OP_DELETE;
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ValidateCapability(req, ikey, "CTR_1"));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.ValidateCapability(req, ikey, "CTR_1"));
 
   CtrlrMgr::GetInstance()->Delete("CTR_1", UPLL_DT_CANDIDATE);
   delete ikey;
@@ -4506,9 +5332,10 @@ TEST_F(VtnMoMgrTest, ValidateCapability_Success) {
 TEST_F(VtnMoMgrTest, ValidateCapability_ikey_NULL) {
   VtnMoMgr vtn;
   ConfigKeyVal *ikey = NULL;
-  IpcReqRespHeader *req=NULL;
-  const char *ctrlr_name="ctr1";
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ValidateCapability(req, ikey, ctrlr_name));
+  IpcReqRespHeader *req = NULL;
+  const char *ctrlr_name = "ctr1";
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.ValidateCapability(req, ikey, ctrlr_name));
 }
 
 TEST_F(VtnMoMgrTest, ValidateCapability_ctrName_NULL) {
@@ -4519,12 +5346,14 @@ TEST_F(VtnMoMgrTest, ValidateCapability_ctrName_NULL) {
 
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVtn, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, cfgval);
+
+    IpctSt::kIpcStKeyVtn,
+                                        key, cfgval);
   IPC_REQ_RESP_HEADER_DECL(req);
 
-  const char *ctrlr_name=NULL;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ValidateCapability(req, ikey, ctrlr_name));
+  const char *ctrlr_name = NULL;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.ValidateCapability(req, ikey, ctrlr_name));
 
   delete ikey;
 }
@@ -4533,7 +5362,8 @@ TEST_F(VtnMoMgrTest, GetChildConfigKey_SuccessNullObjs) {
   VtnMoMgr vtn;
   ConfigKeyVal *okey = NULL;
   ConfigKeyVal *pkey = NULL;
-  EXPECT_EQ(UPLL_RC_SUCCESS,vtn.GetChildConfigKey(okey, pkey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.GetChildConfigKey(okey, pkey));
   delete okey;
   delete pkey;
 }
@@ -4542,10 +5372,12 @@ TEST_F(VtnMoMgrTest, GetChildConfigKey_pkeyNull) {
   VtnMoMgr vtn;
   ConfigKeyVal *okey = NULL;
   ConfigKeyVal *pkey = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            NULL, NULL);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.GetChildConfigKey(okey, pkey));
+    IpctSt::kIpcStKeyVtn,
+                                        NULL, NULL);
+
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.GetChildConfigKey(okey, pkey));
   delete okey;
   delete pkey;
 }
@@ -4553,13 +5385,15 @@ TEST_F(VtnMoMgrTest, GetChildConfigKey_pkeyNull) {
 TEST_F(VtnMoMgrTest, GetChildConfigKey_pkeyNull_okey_NotNull) {
   VtnMoMgr vtn;
   key_vbr_t *key(ZALLOC_TYPE(key_vbr_t));
-  strncpy((char*) key->vbridge_name,"VTN1",32);
+  strncpy((char*) key->vbridge_name, "VTN1", 32);
 
   ConfigKeyVal *pkey = NULL;
   ConfigKeyVal *okey = new ConfigKeyVal(UNC_KT_VBRIDGE,
-                            IpctSt::kIpcStKeyVbr,key,NULL);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS,vtn.GetChildConfigKey(okey, pkey));
+    IpctSt::kIpcStKeyVbr, key, NULL);
+
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.GetChildConfigKey(okey, pkey));
   delete okey;
 }
 
@@ -4567,16 +5401,18 @@ TEST_F(VtnMoMgrTest, GetChildConfigKey_Vtn) {
   VtnMoMgr vtn;
   ConfigKeyVal *okey = NULL;
   key_vtn_t *key(ZALLOC_TYPE(key_vtn_t));
-  strncpy((char*) key->vtn_name,"VTN1",32);
+  strncpy((char*) key->vtn_name, "VTN1", 32);
 
   ConfigKeyVal *pkey = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, NULL);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS,vtn.GetChildConfigKey(okey, pkey));
+    IpctSt::kIpcStKeyVtn,
+                                        key, NULL);
+
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.GetChildConfigKey(okey, pkey));
   key_vtn_t *output = reinterpret_cast<key_vtn_t *> (okey->get_key());
 
-  EXPECT_STREQ("VTN1",(reinterpret_cast<const char *> (output->vtn_name)));
+  EXPECT_STREQ("VTN1", (reinterpret_cast<const char *> (output->vtn_name)));
   delete okey;
   delete pkey;
 }
@@ -4584,15 +5420,18 @@ TEST_F(VtnMoMgrTest, GetChildConfigKey_Vtn) {
 TEST_F(VtnMoMgrTest, GetChildConfigKey_okey_Not_NULL) {
   VtnMoMgr vtn;
   key_vtn_t *key(ZALLOC_TYPE(key_vtn_t));
-  strncpy((char*) key->vtn_name,"VTN1",32);
+  strncpy((char*) key->vtn_name, "VTN1", 32);
   key_vtn_t *key1(UT_CLONE(key_vtn_t, key));
 
-  ConfigKeyVal *pkey(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *pkey(new ConfigKeyVal(UNC_KT_VTN,
+                                      IpctSt::kIpcStKeyVtn,
                                       key, NULL));
-  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VTN,
+                                      IpctSt::kIpcStKeyVtn,
                                       key1, NULL));
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.GetChildConfigKey(okey, pkey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.GetChildConfigKey(okey, pkey));
 
   delete okey;
   delete pkey;
@@ -4602,13 +5441,15 @@ TEST_F(VtnMoMgrTest, GetChildConfigKey_Vbr) {
   VtnMoMgr vtn;
   ConfigKeyVal *okey = NULL;
   key_vtn_t *key(ZALLOC_TYPE(key_vtn_t));
-  strncpy((char*) key->vtn_name,"VTN1",32);
+  strncpy((char*) key->vtn_name, "VTN1", 32);
 
   ConfigKeyVal *pkey = new ConfigKeyVal(UNC_KT_VBRIDGE,
-                            IpctSt::kIpcStKeyVtn,
-                            key, NULL);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC,vtn.GetChildConfigKey(okey, pkey));
+    IpctSt::kIpcStKeyVtn,
+                                        key, NULL);
+
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.GetChildConfigKey(okey, pkey));
   delete okey;
   delete pkey;
 }
@@ -4619,13 +5460,17 @@ TEST_F(VtnMoMgrTest, IsKeyInUse_ikey_Error) {
   val_vtn *val;
   GetKeyValStruct(key, val);
 
-  upll_keytype_datatype_t dt_type=UPLL_DT_RUNNING;
+  upll_keytype_datatype_t dt_type = UPLL_DT_RUNNING;
   DalDmlIntf *dmi(getDalDmlIntf());
   bool in_use;
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.IsKeyInUse(dt_type,ikey,&in_use,dmi));
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.IsKeyInUse(dt_type, ikey, &in_use, dmi));
   delete ikey;
 }
 
@@ -4635,26 +5480,32 @@ TEST_F(VtnMoMgrTest, IsKeyInUse_invalid_ctrlrName) {
   val_vtn *val;
   GetKeyValStruct(key, val);
 
-  upll_keytype_datatype_t dt_type=UPLL_DT_RUNNING;
+  upll_keytype_datatype_t dt_type = UPLL_DT_RUNNING;
   DalDmlIntf *dmi(getDalDmlIntf());
   bool in_use;
-  memset(key,0,sizeof(key_vtn));
+  memset(key, 0, sizeof(key_vtn));
+
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
+    IpctSt::kIpcStKeyVtn, key, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.IsKeyInUse(dt_type,ikey,&in_use,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.IsKeyInUse(dt_type, ikey, &in_use, dmi));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, IsKeyInUse_ikey_NULL) {
   VtnMoMgr vtn;
-  upll_keytype_datatype_t dt_type=UPLL_DT_RUNNING;
+  upll_keytype_datatype_t dt_type = UPLL_DT_RUNNING;
   DalDmlIntf *dmi(getDalDmlIntf());
   bool in_use;
 
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, NULL, NULL);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.IsKeyInUse(dt_type,ikey,&in_use,dmi));
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+    IpctSt::kIpcStKeyVtn, NULL, NULL);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.IsKeyInUse(dt_type, ikey, &in_use, dmi));
   delete ikey;
 }
 
@@ -4666,8 +5517,9 @@ TEST_F(VtnMoMgrTest, ValidateMessage_01) {
 
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVtn, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, cfgval);
+
+    IpctSt::kIpcStKeyVtn,
+                                        key, cfgval);
 
   IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
@@ -4678,16 +5530,19 @@ TEST_F(VtnMoMgrTest, ValidateMessage_01) {
   req->option2 = UNC_OPT2_NONE;
   req->datatype = UPLL_DT_CANDIDATE;
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateMessage(req, ikey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ValidateMessage(req, ikey));
 
   key_vtn *key1(UT_CLONE(key_vtn, key));
-  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VTN,
+                                       IpctSt::kIpcStKeyVtn,
                                        key1, NULL));
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateMessage(req, ikey1));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ValidateMessage(req, ikey1));
   val_rename_vtn *renameval(ZALLOC_TYPE(val_rename_vtn));
-  for(unsigned int loop = 0; loop < sizeof(renameval->valid)/
-          sizeof(renameval->valid[0]); ++loop) {
-      renameval->valid[loop] = UNC_VF_VALID;
+  for (unsigned int loop = 0; loop < sizeof(renameval->valid)/
+      sizeof(renameval->valid[0]); ++loop) {
+    renameval->valid[loop] = UNC_VF_VALID;
   }
   strncpy(reinterpret_cast<char *>(renameval->new_name),
           "renamed", strlen("renamed")+1);
@@ -4695,34 +5550,42 @@ TEST_F(VtnMoMgrTest, ValidateMessage_01) {
   key_vtn *key2(UT_CLONE(key_vtn, key));
   ConfigVal *rename_cfgval(new ConfigVal(IpctSt::kIpcStValRenameVtn,
                                          renameval));
-  ConfigKeyVal *rename_ikey(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *rename_ikey(new ConfigKeyVal(UNC_KT_VTN,
+         IpctSt::kIpcStKeyVtn,
                                              key2, rename_cfgval));
 
   req->operation = UNC_OP_RENAME;
   req->datatype = UPLL_DT_IMPORT;
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateMessage(req, rename_ikey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ValidateMessage(req, rename_ikey));
 
   key_vtn *key3(UT_CLONE(key_vtn, key));
-  ConfigKeyVal *ikey3(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *ikey3(new ConfigKeyVal(UNC_KT_VTN,
+                                       IpctSt::kIpcStKeyVtn,
                                        key3, NULL));
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateMessage(req, ikey3));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vtn.ValidateMessage(req, ikey3));
 
   key_vtn *key4(UT_CLONE(key_vtn, key));
   ConfigVal *cfgval4(new ConfigVal(IpctSt::kIpcStValVtn, NULL));
-  ConfigKeyVal *ikey4(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *ikey4(new ConfigKeyVal(UNC_KT_VTN,
+                                       IpctSt::kIpcStKeyVtn,
                                        key4, cfgval4));
   EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vtn.ValidateMessage(req, ikey4));
 
   req->operation = UNC_OP_READ_SIBLING;
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateMessage(req, rename_ikey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ValidateMessage(req, rename_ikey));
 
   key_vtn *key5(UT_CLONE(key_vtn, key));
   ConfigVal *invrename_cfgval(new ConfigVal(IpctSt::kIpcStValRenameVtn, NULL));
   ConfigKeyVal *invrename_ikey(new ConfigKeyVal(UNC_KT_VTN,
-                                                IpctSt::kIpcStKeyVtn,
+
+            IpctSt::kIpcStKeyVtn,
                                                 key5, invrename_cfgval));
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateMessage(req, invrename_ikey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ValidateMessage(req, invrename_ikey));
 
   const char *vtn_name1 = " ";
   key_vtn *key6(ZALLOC_TYPE(key_vtn));
@@ -4730,28 +5593,34 @@ TEST_F(VtnMoMgrTest, ValidateMessage_01) {
   strncpy(reinterpret_cast<char *>(key6->vtn_name),
           vtn_name1, strlen(vtn_name1)+1);
   ConfigVal *cfgval6(new ConfigVal(IpctSt::kIpcStValVtn, val6));
-  ConfigKeyVal *ikey6(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *ikey6(new ConfigKeyVal(UNC_KT_VTN,
+                                       IpctSt::kIpcStKeyVtn,
                                        key6, cfgval6));
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateMessage(req, ikey6));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vtn.ValidateMessage(req, ikey6));
 
   req->operation = UNC_OP_READ_SIBLING_COUNT;
   req->datatype = UPLL_DT_RUNNING;
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateMessage(req, ikey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ValidateMessage(req, ikey));
 
-  ikey=NULL;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.ValidateMessage(req, ikey));
+  ikey = NULL;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.ValidateMessage(req, ikey));
 
   key_vtn *key7(UT_CLONE(key_vtn, key));
   val_vtn *val7(UT_CLONE(val_vtn, val));
   ConfigVal *cfgval7(new ConfigVal(IpctSt::kIpcStValVtn, val7));
-  ConfigKeyVal *ikey7( new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVbr,
-                                     key7, cfgval7));
+  ConfigKeyVal *ikey7(new ConfigKeyVal(UNC_KT_VTN,
+    IpctSt::kIpcStKeyVbr,
+                                        key7, cfgval7));
   EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vtn.ValidateMessage(req, ikey7));
 
   key_vtn *key8(UT_CLONE(key_vtn, key));
   val_vtn *val8(UT_CLONE(val_vtn, val));
   ConfigVal *cfgval8(new ConfigVal(IpctSt::kIpcStValVtn, val8));
-  ConfigKeyVal *ikey8(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *ikey8(new ConfigKeyVal(UNC_KT_VBRIDGE,
+                                       IpctSt::kIpcStKeyVtn,
                                        key8, cfgval8));
   EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vtn.ValidateMessage(req, ikey8));
 
@@ -4774,8 +5643,9 @@ TEST_F(VtnMoMgrTest, ValidateMessage_02) {
 
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVtn, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, cfgval);
+
+    IpctSt::kIpcStKeyVtn,
+                                        key, cfgval);
 
   IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
@@ -4786,35 +5656,42 @@ TEST_F(VtnMoMgrTest, ValidateMessage_02) {
   req->option2 = UNC_OPT2_NONE;
   req->datatype = UPLL_DT_CANDIDATE;
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateMessage(req, ikey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ValidateMessage(req, ikey));
 
   key_vtn *key1(UT_CLONE(key_vtn, key));
   val_vtn *val1(UT_CLONE(val_vtn, val));
   ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVtn, val1));
-  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VTN,
+                                       IpctSt::kIpcStKeyVtn,
                                        key1, cfgval1));
   req->operation = UNC_OP_CONTROL;
   EXPECT_EQ(UPLL_RC_ERR_NOT_ALLOWED_FOR_THIS_DT,
-            vtn.ValidateMessage(req, ikey1));
+    vtn.ValidateMessage(req, ikey1));
 
   req->operation = UNC_OP_UPDATE;
   key_vtn *key2(UT_CLONE(key_vtn, key));
   val_vtn *val2(UT_CLONE(val_vtn, val));
   ConfigVal *cfgval2(new ConfigVal(IpctSt::kIpcStValVbr, val2));
-  ConfigKeyVal *ikey2(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *ikey2(new ConfigKeyVal(UNC_KT_VTN,
+                                       IpctSt::kIpcStKeyVtn,
                                        key2, cfgval2));
   EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vtn.ValidateMessage(req, ikey2));
 
   key_vtn *key3(UT_CLONE(key_vtn, key));
-  ConfigKeyVal *ikey3(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *ikey3(new ConfigKeyVal(UNC_KT_VTN,
+                                       IpctSt::kIpcStKeyVtn,
                                        key3, NULL));
-  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX, vtn.ValidateMessage(req, ikey3));
+  EXPECT_EQ(UPLL_RC_ERR_CFG_SYNTAX,
+     vtn.ValidateMessage(req, ikey3));
 
   key_vtn *key4(UT_CLONE(key_vtn, key));
   ConfigVal *cfgval4(new ConfigVal(IpctSt::kIpcStValVtn, NULL));
-  ConfigKeyVal *ikey4(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *ikey4(new ConfigKeyVal(UNC_KT_VTN,
+                                       IpctSt::kIpcStKeyVtn,
                                        key4, cfgval4));
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateMessage(req, ikey4));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ValidateMessage(req, ikey4));
 
   delete ikey;
   delete ikey1;
@@ -4831,8 +5708,9 @@ TEST_F(VtnMoMgrTest, ValidateMessage_03) {
 
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVtn, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, cfgval);
+
+    IpctSt::kIpcStKeyVtn,
+                                        key, cfgval);
 
   IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
@@ -4854,18 +5732,22 @@ TEST_F(VtnMoMgrTest, ValidateMessage_03) {
   key_vtn *key1(UT_CLONE(key_vtn, key));
   val_vtn *val1(UT_CLONE(val_vtn, val));
   ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbr, val1));
-  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VTN,
+                                       IpctSt::kIpcStKeyVtn,
                                        key1, cfgval1));
   EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vtn.ValidateMessage(req, ikey1));
 
   key_vtn *key2(UT_CLONE(key_vtn, key));
-  ConfigKeyVal *ikey2(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *ikey2(new ConfigKeyVal(UNC_KT_VTN,
+                                       IpctSt::kIpcStKeyVtn,
                                        key2, NULL));
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateMessage(req, ikey2));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ValidateMessage(req, ikey2));
 
   key_vtn *key3(UT_CLONE(key_vtn, key));
   ConfigVal *cfgval3(new ConfigVal(IpctSt::kIpcStValVtn, NULL));
-  ConfigKeyVal *ikey3(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *ikey3(new ConfigKeyVal(UNC_KT_VTN,
+                                       IpctSt::kIpcStKeyVtn,
                                        key3, cfgval3));
   EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vtn.ValidateMessage(req, ikey3));
 
@@ -4883,8 +5765,9 @@ TEST_F(VtnMoMgrTest, ValidateMessage_04) {
 
   ConfigVal *cfgval = new ConfigVal(IpctSt::kIpcStValVtn, val);
   ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
-                            IpctSt::kIpcStKeyVtn,
-                            key, cfgval);
+
+    IpctSt::kIpcStKeyVtn,
+                                        key, cfgval);
 
   IPC_REQ_RESP_HEADER_DECL(req);
   req->clnt_sess_id = 5;
@@ -4892,10 +5775,12 @@ TEST_F(VtnMoMgrTest, ValidateMessage_04) {
   req->rep_count = 100;
   req->datatype = UPLL_DT_IMPORT;
   req->operation = UNC_OP_READ_NEXT;
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateMessage(req, ikey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ValidateMessage(req, ikey));
 
   req->operation = UNC_OP_DELETE;
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateMessage(req, ikey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ValidateMessage(req, ikey));
 
 
   req->datatype = UPLL_DT_CANDIDATE;
@@ -4909,20 +5794,25 @@ TEST_F(VtnMoMgrTest, ValidateMessage_04) {
   key_vtn *key1(UT_CLONE(key_vtn, key));
   val_vtn *val1(UT_CLONE(val_vtn, val));
   ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVbr, val1));
-  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VTN,
+                                       IpctSt::kIpcStKeyVtn,
                                        key1, cfgval1));
   EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST, vtn.ValidateMessage(req, ikey1));
 
   key_vtn *key2(UT_CLONE(key_vtn, key));
-  ConfigKeyVal *ikey2(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *ikey2(new ConfigKeyVal(UNC_KT_VTN,
+                                       IpctSt::kIpcStKeyVtn,
                                        key2, NULL));
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateMessage(req, ikey2));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ValidateMessage(req, ikey2));
 
   key_vtn *key3(UT_CLONE(key_vtn, key));
   ConfigVal *cfgval3(new ConfigVal(IpctSt::kIpcStValVtn, NULL));
-  ConfigKeyVal *ikey3(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *ikey3(new ConfigKeyVal(UNC_KT_VTN,
+                                       IpctSt::kIpcStKeyVtn,
                                        key3, cfgval3));
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValidateMessage(req, ikey3));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ValidateMessage(req, ikey3));
 
   delete ikey;
   delete ikey1;
@@ -4936,12 +5826,16 @@ TEST_F(VtnMoMgrTest, ValVtnAttributeSupportCheck_01) {
   val_vtn *val;
   GetKeyValStruct(key, val);
 
-  uint32_t operation= UNC_OP_CREATE;
-  uint8_t ckv_count1=1;
-  uint8_t *attrs=&ckv_count1;
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValVtnAttributeSupportCheck(val,attrs,operation));
+  uint32_t operation =  UNC_OP_CREATE;
+  uint8_t ckv_count1 = 1;
+  uint8_t *attrs = &ckv_count1;
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ValVtnAttributeSupportCheck(val, attrs, operation));
   delete ikey;
 }
 
@@ -4951,13 +5845,17 @@ TEST_F(VtnMoMgrTest, ValVtnAttributeSupportCheck_02) {
   val_vtn *val;
   GetKeyValStruct(key, val);
 
-  uint32_t operation= UNC_OP_CREATE;
+  uint32_t operation =  UNC_OP_CREATE;
   val->valid[UPLL_IDX_DESC_VTN] = UNC_VF_VALID;
-  uint8_t ckv_count1=1;
-  uint8_t *attrs=&ckv_count1;
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.ValVtnAttributeSupportCheck(val,attrs,operation));
+  uint8_t ckv_count1 = 1;
+  uint8_t *attrs = &ckv_count1;
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.ValVtnAttributeSupportCheck(val, attrs, operation));
   delete ikey;
 }
 
@@ -4965,9 +5863,10 @@ TEST_F(VtnMoMgrTest, SetOperStatus_ikey_NULL) {
   VtnMoMgr vtn;
   DalDmlIntf *dmi(getDalDmlIntf());
 
-  state_notification notification=kCtrlrReconnect;
-  ConfigKeyVal *ikey =NULL;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SetOperStatus(ikey,notification,dmi));
+  state_notification notification = kCtrlrReconnect;
+  ConfigKeyVal *ikey  = NULL;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.SetOperStatus(ikey, notification, dmi));
 }
 
 TEST_F(VtnMoMgrTest, SetConsolidatedStatus_invalid_key) {
@@ -4977,12 +5876,16 @@ TEST_F(VtnMoMgrTest, SetConsolidatedStatus_invalid_key) {
   val_db_vtn_st_t *val(ZALLOC_TYPE(val_db_vtn_st_t));
   strncpy(reinterpret_cast<char *>(key->vtn_name),
           vtn_name, strlen(vtn_name)+1);
-  val->down_count=0;
+  val->down_count = 0;
   DalDmlIntf *dmi(getDalDmlIntf());
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVtn, key, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SetConsolidatedStatus(ikey,dmi));
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.SetConsolidatedStatus(ikey, dmi));
   delete ikey;
 }
 
@@ -4993,12 +5896,16 @@ TEST_F(VtnMoMgrTest, SetConsolidatedStatus_valid_key) {
   val_db_vtn_st_t *val(ZALLOC_TYPE(val_db_vtn_st_t));
   strncpy(reinterpret_cast<char *>(key->vtn_name),
           vtn_name, strlen(vtn_name)+1);
-  val->down_count=0;
+  val->down_count = 0;
   DalDmlIntf *dmi(getDalDmlIntf());
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SetConsolidatedStatus(ikey,dmi));
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.SetConsolidatedStatus(ikey, dmi));
   delete ikey;
 }
 
@@ -5009,13 +5916,17 @@ TEST_F(VtnMoMgrTest, SetOperStatus_notification_kCtrlrReconnectIfUp) {
   val_db_vtn_st_t *val(ZALLOC_TYPE(val_db_vtn_st_t));
   strncpy(reinterpret_cast<char *>(key->vtn_name),
           vtn_name, strlen(vtn_name)+1);
-  val->down_count=0;
+  val->down_count = 0;
   DalDmlIntf *dmi(getDalDmlIntf());
 
-  state_notification notification=kCtrlrReconnectIfUp;
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SetOperStatus(ikey,notification,dmi));
+  state_notification notification = kCtrlrReconnectIfUp;
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.SetOperStatus(ikey, notification, dmi));
   delete ikey;
 }
 
@@ -5026,23 +5937,28 @@ TEST_F(VtnMoMgrTest, SetOperStatus_notification_kCtrlrDisconnect) {
   val_db_vtn_st_t *val(ZALLOC_TYPE(val_db_vtn_st_t));
   strncpy(reinterpret_cast<char *>(key->vtn_name),
           vtn_name, strlen(vtn_name)+1);
-  val->down_count=0;
+  val->down_count = 0;
   DalDmlIntf *dmi(getDalDmlIntf());
 
-  state_notification notification=kCtrlrDisconnect;
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SetOperStatus(ikey,notification,dmi));
+  state_notification notification = kCtrlrDisconnect;
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.SetOperStatus(ikey, notification, dmi));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, SetCtrlrOperStatus_ikey_NULL) {
   VtnMoMgr vtn;
   DalDmlIntf *dmi(getDalDmlIntf());
-  state_notification notification=kCtrlrReconnect;
-  ConfigKeyVal *ikey =NULL;
+  state_notification notification = kCtrlrReconnect;
+  ConfigKeyVal *ikey  = NULL;
   bool oper_change;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SetCtrlrOperStatus(ikey,notification,dmi,oper_change));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.SetCtrlrOperStatus(ikey, notification, dmi, oper_change));
   delete ikey;
 }
 
@@ -5058,15 +5974,19 @@ TEST_F(VtnMoMgrTest, SetCtrlrOperStatus_kCtrlrReconnectIfUp) {
           vtn_name, strlen(domain_id)+1);
   val_vtn_ctrlr_t *val_vtn(ZALLOC_TYPE(val_vtn_ctrlr_t));
   ConfigVal *config_val = new ConfigVal(IpctSt::kIpcStValVtn, val_vtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
 
-  state_notification notification=kCtrlrReconnectIfUp;
+  state_notification notification = kCtrlrReconnectIfUp;
   bool oper_change;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SetCtrlrOperStatus(ikey,notification,dmi,oper_change));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.SetCtrlrOperStatus(ikey, notification, dmi, oper_change));
 
   val_vtn->oper_status = UPLL_OPER_STATUS_DOWN;
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.SetCtrlrOperStatus(ikey,notification,dmi,oper_change));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.SetCtrlrOperStatus(ikey, notification, dmi, oper_change));
   delete ikey;
 }
 
@@ -5082,28 +6002,36 @@ TEST_F(VtnMoMgrTest, SetCtrlrOperStatus_kCtrlrReconnectIfDown) {
           vtn_name, strlen(domain_id)+1);
   val_vtn_ctrlr_t *val_vtn(ZALLOC_TYPE(val_vtn_ctrlr_t));
   ConfigVal *config_val = new ConfigVal(IpctSt::kIpcStValVtn, val_vtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
 
-  state_notification notification=kCtrlrReconnectIfDown;
+  state_notification notification = kCtrlrReconnectIfDown;
   bool oper_change;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SetCtrlrOperStatus(ikey,notification,dmi,oper_change));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.SetCtrlrOperStatus(ikey, notification, dmi, oper_change));
 
-  notification=kCtrlrReconnect;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SetCtrlrOperStatus(ikey,notification,dmi,oper_change));
+  notification = kCtrlrReconnect;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.SetCtrlrOperStatus(ikey, notification, dmi, oper_change));
 
-  notification=kCtrlrDisconnect;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SetCtrlrOperStatus(ikey,notification,dmi,oper_change));
+  notification = kCtrlrDisconnect;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.SetCtrlrOperStatus(ikey, notification, dmi, oper_change));
 
-  notification=kBoundaryFault;
+  notification = kBoundaryFault;
   val_vtn->down_count = 0;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SetCtrlrOperStatus(ikey,notification,dmi,oper_change));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.SetCtrlrOperStatus(ikey, notification, dmi, oper_change));
 
-  notification=kBoundaryFaultReset;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SetCtrlrOperStatus(ikey,notification,dmi,oper_change));
+  notification = kBoundaryFaultReset;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.SetCtrlrOperStatus(ikey, notification, dmi, oper_change));
 
   val_vtn->down_count = 0;
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.SetCtrlrOperStatus(ikey,notification,dmi,oper_change));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.SetCtrlrOperStatus(ikey, notification, dmi, oper_change));
   delete ikey;
 }
 
@@ -5114,12 +6042,16 @@ TEST_F(VtnMoMgrTest, VtnSetOperStatus_default) {
   DalDmlIntf *dmi(getDalDmlIntf());
   GetKeyValStruct(key, val);
 
-  state_notification notification=kCtrlrReconnect;
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
-  uint8_t *vtn_name_o=NULL;
+  state_notification notification = kCtrlrReconnect;
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
+  uint8_t *vtn_name_o = NULL;
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.VtnSetOperStatus(vtn_name_o,dmi,notification));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.VtnSetOperStatus(vtn_name_o, dmi, notification));
   delete ikey;
 }
 
@@ -5130,13 +6062,17 @@ TEST_F(VtnMoMgrTest, VtnSetOperStatus_Valid) {
   DalDmlIntf *dmi(getDalDmlIntf());
   GetKeyValStruct(key, val);
 
-  state_notification notification=kCtrlrReconnect;
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
+  state_notification notification = kCtrlrReconnect;
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
   uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.VtnSetOperStatus(ctr_id1,dmi,notification));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.VtnSetOperStatus(ctr_id1, dmi, notification));
   delete ikey;
   free(ctr_id1);
 }
@@ -5148,363 +6084,460 @@ TEST_F(VtnMoMgrTest, VtnSetOperStatus_Valid_01) {
   DalDmlIntf *dmi(getDalDmlIntf());
   GetKeyValStruct(key, val);
 
-  state_notification notification=kCtrlrReconnectIfUp;
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
+  state_notification notification = kCtrlrReconnectIfUp;
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
   uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.VtnSetOperStatus(ctr_id1,dmi,notification));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.VtnSetOperStatus(ctr_id1, dmi, notification));
   delete ikey;
   free(ctr_id1);
 }
 
 TEST_F(VtnMoMgrTest, TxUpdateDtState_UNC_KT_VTN_01) {
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcSuccess);
-  std::map<uint8_t,DalResultCode> map;
-  map.insert(std::make_pair(1,kDalRcRecordNoMore));
-  map.insert(std::make_pair(0,kDalRcSuccess));
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::MULTIPLE, kDalRcSuccess);
+  std::map<uint8_t, DalResultCode> map;
+  map.insert(std::make_pair(1, kDalRcRecordNoMore));
+  map.insert(std::make_pair(0, kDalRcSuccess));
   DalOdbcMgr::stub_setNextRecordResultCodes(map);
 
   VtnMoMgr vtn;
-  unc_key_type_t ktype=UNC_KT_VTN;
-  uint32_t session_id=1;
-  uint32_t config_id=2;
+  unc_key_type_t ktype = UNC_KT_VTN;
+  uint32_t session_id = 1;
+  uint32_t config_id = 2;
   key_vtn_t *key;
   val_vtn_t *val;
   GetKeyValStruct(key, val);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.TxUpdateDtState(ktype,session_id,config_id,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.TxUpdateDtState(ktype, session_id, config_id, dmi));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, TxUpdateDtState_UNC_KT_VTN_02) {
   VtnMoMgr vtn;
-  unc_key_type_t ktype=UNC_KT_VTN;
-  uint32_t session_id=1;
-  uint32_t config_id=2;
+  unc_key_type_t ktype = UNC_KT_VTN;
+  uint32_t session_id = 1;
+  uint32_t config_id = 2;
   DalDmlIntf *dmi(getDalDmlIntf());
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.TxUpdateDtState(ktype,session_id,config_id,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.TxUpdateDtState(ktype, session_id, config_id, dmi));
 }
 
 TEST_F(VtnMoMgrTest, TxUpdateDtState_UNC_KT_VBRIDGE) {
   VtnMoMgr vtn;
-  unc_key_type_t ktype=UNC_KT_VBRIDGE;
-  uint32_t session_id=1;
-  uint32_t config_id=2;
+  unc_key_type_t ktype = UNC_KT_VBRIDGE;
+  uint32_t session_id = 1;
+  uint32_t config_id = 2;
   DalDmlIntf *dmi(getDalDmlIntf());
   key_vtn_t *key;
   val_vtn_st_t *val;
   GetKeyValStructSt(key, val);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.TxUpdateDtState(ktype,session_id,config_id,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.TxUpdateDtState(ktype, session_id, config_id, dmi));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, UpdateVnodeOperStatus_UNC_KT_VBRIDGE) {
   VtnMoMgr vtn;
-  state_notification notification=kCtrlrReconnect;
+  state_notification notification = kCtrlrReconnect;
   DalDmlIntf *dmi(getDalDmlIntf());
-  bool skip=true;
-  uint8_t *ctrlr_id=NULL;
+  bool skip = true;
+  uint8_t *ctrlr_id = NULL;
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.UpdateVnodeOperStatus(ctrlr_id,dmi,notification,skip));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.UpdateVnodeOperStatus(ctrlr_id, dmi, notification, skip));
 }
 
 TEST_F(VtnMoMgrTest, UpdateVnodeOperStatus_kCtrlrDisconnect) {
   VtnMoMgr vtn;
-  state_notification notification=kCtrlrDisconnect;
+  state_notification notification = kCtrlrDisconnect;
   DalDmlIntf *dmi(getDalDmlIntf());
-  bool skip=true;
-  uint8_t *ctrlr_id=NULL;
+  bool skip = true;
+  uint8_t *ctrlr_id = NULL;
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.UpdateVnodeOperStatus(ctrlr_id,dmi,notification,skip));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.UpdateVnodeOperStatus(ctrlr_id, dmi, notification, skip));
 }
 
 TEST_F(VtnMoMgrTest, UpdateVnodeOperStatus_val_NULL) {
   VtnMoMgr vtn;
-  state_notification notification=kCtrlrReconnect;
+  state_notification notification = kCtrlrReconnect;
   DalDmlIntf *dmi(getDalDmlIntf());
 
   key_vbr_t *key(ZALLOC_TYPE(key_vbr_t));
-  val_db_vbr_st *val=NULL;
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrSt, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, key, config_val);
-  bool skip=true;
-  uint8_t *ctrlr_id=NULL;
+  val_db_vbr_st *val = NULL;
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVbrSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+    IpctSt::kIpcStKeyVbr, key, config_val);
+  bool skip = true;
+  uint8_t *ctrlr_id = NULL;
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.UpdateVnodeOperStatus(ctrlr_id,dmi,notification,skip));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.UpdateVnodeOperStatus(ctrlr_id, dmi, notification, skip));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, UpdateVnodeOperStatus_ikey_NULL) {
   VtnMoMgr vtn;
-  state_notification notification=kCtrlrReconnect;
+  state_notification notification = kCtrlrReconnect;
   DalDmlIntf *dmi(getDalDmlIntf());
 
   ConfigKeyVal *ikey = NULL;
-  bool skip=true;
-  uint8_t *ctrlr_id=NULL;
+  bool skip = true;
+  uint8_t *ctrlr_id = NULL;
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.UpdateVnodeOperStatus(ctrlr_id,dmi,notification,skip));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.UpdateVnodeOperStatus(ctrlr_id, dmi, notification, skip));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, UpdateVnodeOperStatus_UNC_KT_VBR_IF) {
   VtnMoMgr vtn;
-  state_notification notification=kCtrlrReconnect;
+  state_notification notification = kCtrlrReconnect;
   DalDmlIntf *dmi(getDalDmlIntf());
-  bool skip=true;
-  uint8_t *ctrlr_id=NULL;
+  bool skip = true;
+  uint8_t *ctrlr_id = NULL;
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.UpdateVnodeOperStatus(ctrlr_id,dmi,notification,skip));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.UpdateVnodeOperStatus(ctrlr_id, dmi, notification, skip));
 }
 
 TEST_F(VtnMoMgrTest, UpdateVnodeOperStatus_UNC_KT_VROUTER) {
   VtnMoMgr vtn;
-  state_notification notification=kCtrlrReconnect;
+  state_notification notification = kCtrlrReconnect;
   DalDmlIntf *dmi(getDalDmlIntf());
-  bool skip=true;
+  bool skip = true;
   key_vrt_t *key(ZALLOC_TYPE(key_vrt_t));
   val_db_vrt_st_t *val(ZALLOC_TYPE(val_db_vrt_st_t));
-  val->down_count=0;
-  val->fault_count=0;
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVrtSt, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VROUTER, IpctSt::kIpcStKeyVrt, key, config_val);
-  uint8_t *ctrlr_id=NULL;
+  val->down_count = 0;
+  val->fault_count = 0;
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVrtSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VROUTER,
+     IpctSt::kIpcStKeyVrt, key, config_val);
+  uint8_t *ctrlr_id = NULL;
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.UpdateVnodeOperStatus(ctrlr_id,dmi,notification,skip));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.UpdateVnodeOperStatus(ctrlr_id, dmi, notification, skip));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, UpdateVnodeIfOperStatus_UNC_KT_VBR_IF) {
   VtnMoMgr vtn;
-  state_notification notification=kCtrlrReconnect;
+  state_notification notification = kCtrlrReconnect;
   DalDmlIntf *dmi(getDalDmlIntf());
   key_vbr_if_t *key(ZALLOC_TYPE(key_vbr_if_t));
   val_db_vbr_if_st_t *val(ZALLOC_TYPE(val_db_vbr_if_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrIfSt, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVbrIf, key, config_val);
-  bool skip=true;
-  int if_type=kLinkedInterface;
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVbrIfSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
+     IpctSt::kIpcStKeyVbrIf, key, config_val);
+  bool skip = true;
+  int if_type = kLinkedInterface;
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.UpdateVnodeIfOperStatus(ikey,dmi,notification,skip,if_type));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.UpdateVnodeIfOperStatus(ikey, dmi, notification, skip, if_type));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, UpdateVnodeIfOperStatus_UNC_KT_VRT_IF) {
   VtnMoMgr vtn;
-  state_notification notification=kCtrlrReconnect;
+  state_notification notification = kCtrlrReconnect;
   DalDmlIntf *dmi(getDalDmlIntf());
-  bool skip=true;
-  int if_type=kLinkedInterface;
+  bool skip = true;
+  int if_type = kLinkedInterface;
   key_vrt_if_t *key(ZALLOC_TYPE(key_vrt_if_t));
   val_db_vrt_if_st_t *val(ZALLOC_TYPE(val_db_vrt_if_st_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVrtIfSt, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VRT_IF, IpctSt::kIpcStKeyVrtIf, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVrtIfSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VRT_IF,
+     IpctSt::kIpcStKeyVrtIf, key, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.UpdateVnodeIfOperStatus(ikey,dmi,notification,skip,if_type));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.UpdateVnodeIfOperStatus(ikey, dmi, notification, skip, if_type));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, UpdateVnodeIfOperStatus_UNC_KT_VROUTER) {
   VtnMoMgr vtn;
-  state_notification notification=kCtrlrReconnect;
+  state_notification notification = kCtrlrReconnect;
   DalDmlIntf *dmi(getDalDmlIntf());
-  bool skip=true;
-  int if_type=kLinkedInterface;
+  bool skip = true;
+  int if_type = kLinkedInterface;
   key_vrt_t *key(ZALLOC_TYPE(key_vrt_t));
   val_db_vrt_st_t *val(ZALLOC_TYPE(val_db_vrt_st_t));
-  val->down_count=0;
-  val->fault_count=0;
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVrtSt, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VROUTER, IpctSt::kIpcStKeyVrt, key, config_val);
+  val->down_count = 0;
+  val->fault_count = 0;
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVrtSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VROUTER,
+     IpctSt::kIpcStKeyVrt, key, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.UpdateVnodeIfOperStatus(ikey,dmi,notification,skip,if_type));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.UpdateVnodeIfOperStatus(ikey, dmi, notification, skip, if_type));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, RestoreVtnOperStatus_invalid_keytype) {
   VtnMoMgr vtn;
-  state_notification notification=kCtrlrDisconnect;
+  state_notification notification = kCtrlrDisconnect;
   DalDmlIntf *dmi(getDalDmlIntf());
   key_vtn_t *key;
   val_vtn_t *val;
   GetKeyValStruct(key, val);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVtn, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
+    IpctSt::kIpcStKeyVtn, key, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.RestoreVtnOperStatus(ikey,dmi,notification));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.RestoreVtnOperStatus(ikey, dmi, notification));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, RestoreVtnOperStatus_VALID) {
   VtnMoMgr vtn;
-  state_notification notification=kCtrlrDisconnect;
+  state_notification notification = kCtrlrDisconnect;
   DalDmlIntf *dmi(getDalDmlIntf());
   key_vtn_t *key(ZALLOC_TYPE(key_vtn_t));
   val_db_vtn_st_t *val = NULL;
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.RestoreVtnOperStatus(ikey,dmi,notification));
+    IpctSt::kIpcStKeyVtn, key, config_val);
+
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.RestoreVtnOperStatus(ikey, dmi, notification));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, RestoreVtnOperStatus_VALID_01) {
   VtnMoMgr vtn;
-  state_notification notification=kCtrlrDisconnect;
+  state_notification notification = kCtrlrDisconnect;
   DalDmlIntf *dmi(getDalDmlIntf());
   key_vtn_t *key;
   val_vtn_t *val;
-  GetKeyValStruct(key,val);
+  GetKeyValStruct(key, val);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcSuccess);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.RestoreVtnOperStatus(ikey,dmi,notification));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.RestoreVtnOperStatus(ikey, dmi, notification));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, RestoreVtnOperStatus_VALID_02) {
   VtnMoMgr vtn;
-  state_notification notification=kCtrlrReconnect;
+  state_notification notification = kCtrlrReconnect;
   DalDmlIntf *dmi(getDalDmlIntf());
   key_vtn_t *key;
   val_vtn_t *val;
-  GetKeyValStruct(key,val);
+  GetKeyValStruct(key, val);
+
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.RestoreVtnOperStatus(ikey,dmi,notification));
+    IpctSt::kIpcStKeyVtn, key, config_val);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcSuccess);
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.RestoreVtnOperStatus(ikey, dmi, notification));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, RestoreVtnOperStatus_VALID_03) {
   VtnMoMgr vtn;
-  state_notification notification=kCtrlrDisconnect;
+  state_notification notification = kCtrlrDisconnect;
   DalDmlIntf *dmi(getDalDmlIntf());
   key_vtn_t *key;
   val_vtn_t *val;
-  GetKeyValStruct(key,val);
+  GetKeyValStruct(key, val);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::CREATE_RECORD,kDalRcSuccess);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::CREATE_RECORD, kDalRcSuccess);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.RestoreVtnOperStatus(ikey,dmi,notification));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.RestoreVtnOperStatus(ikey, dmi, notification));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, RestoreVtnOperStatus_ikey_NULL) {
   VtnMoMgr vtn;
-  state_notification notification=kCtrlrReconnect;
+  state_notification notification = kCtrlrReconnect;
   DalDmlIntf *dmi(getDalDmlIntf());
   ConfigKeyVal *ikey = NULL;
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.RestoreVtnOperStatus(ikey,dmi,notification));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.RestoreVtnOperStatus(ikey, dmi, notification));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, RestoreVtnCtrlrOperStatus_ikey_NULL) {
   VtnMoMgr vtn;
-  state_notification notification=kCtrlrReconnect;
+  state_notification notification = kCtrlrReconnect;
   DalDmlIntf *dmi(getDalDmlIntf());
-  uint8_t *ctrlr_id=NULL;
+  uint8_t *ctrlr_id = NULL;
   key_vtn_t *key;
   val_vtn_t *val;
   GetKeyValStruct(key, val);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF, IpctSt::kIpcStKeyVtn, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBR_IF,
+    IpctSt::kIpcStKeyVtn, key, config_val);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.RestoreVtnCtrlrOperStatus(ctrlr_id,dmi,notification));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.RestoreVtnCtrlrOperStatus(ctrlr_id, dmi, notification));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, RestoreVtnCtrlrOperStatus_valid_01) {
   VtnMoMgr vtn;
-  state_notification notification=kCtrlrReconnect;
+  state_notification notification = kCtrlrReconnect;
   DalDmlIntf *dmi(getDalDmlIntf());
-  uint8_t *ctrlr_id=NULL;
+  uint8_t *ctrlr_id = NULL;
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
-  uuu::upll_strncpy(key_ctrlr->controller_name,"controller_name1", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(key_ctrlr->domain_id,"domain_id", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(key_ctrlr->vtn_key.vtn_name,"vtn_name1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->controller_name,
+                    "controller_name1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->domain_id,
+                    "domain_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->vtn_key.vtn_name,
+                    "vtn_name1", (kMaxLenCtrlrId + 1));
   val_vtn_ctrlr_t *val_ctrlr(ZALLOC_TYPE(val_vtn_ctrlr_t));
-  val_ctrlr->ref_count=1;
-  val_ctrlr->down_count=1;
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val_ctrlr);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key_ctrlr, config_val);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::SINGLE,kDalRcSuccess);
+  val_ctrlr->ref_count = 1;
+  val_ctrlr->down_count = 1;
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnSt, val_ctrlr);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.RestoreVtnCtrlrOperStatus(ctrlr_id,dmi,notification));
+    IpctSt::kIpcStKeyVtn, key_ctrlr, config_val);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::SINGLE, kDalRcSuccess);
+
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.RestoreVtnCtrlrOperStatus(ctrlr_id, dmi, notification));
   delete ikey;
 }
 
+# if 0
 TEST_F(VtnMoMgrTest, RestoreVtnCtrlrOperStatus_valid_02) {
   VtnMoMgr vtn;
-  state_notification notification=kCtrlrReconnect;
+  state_notification notification = kCtrlrReconnect;
   DalDmlIntf *dmi(getDalDmlIntf());
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::INIT,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcSuccess);
-  std::map<uint8_t,DalResultCode> map;
-  map.insert(std::make_pair(1,kDalRcRecordNoMore));
-  map.insert(std::make_pair(0,kDalRcSuccess));
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::INIT, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::MULTIPLE, kDalRcSuccess);
+  std::map<uint8_t, DalResultCode> map;
+  map.insert(std::make_pair(1, kDalRcRecordNoMore));
+  map.insert(std::make_pair(0, kDalRcSuccess));
   DalOdbcMgr::stub_setNextRecordResultCodes(map);
   uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
 
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
-  uuu::upll_strncpy(key_ctrlr->controller_name,"controller_name1", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(key_ctrlr->domain_id,"domain_id", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(key_ctrlr->vtn_key.vtn_name,"vtn_name1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->controller_name,
+                    "controller_name1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->domain_id,
+                    "domain_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->vtn_key.vtn_name,
+                    "vtn_name1", (kMaxLenCtrlrId + 1));
   val_vtn_ctrlr_t *val_ctrlr(ZALLOC_TYPE(val_vtn_ctrlr_t));
-  val_ctrlr->ref_count=1;
-  val_ctrlr->down_count=1;
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val_ctrlr);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key_ctrlr, config_val);
+  val_ctrlr->ref_count = 1;
+  val_ctrlr->down_count = 1;
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnSt, val_ctrlr);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.RestoreVtnCtrlrOperStatus(ctr_id1,dmi,notification));
+    IpctSt::kIpcStKeyVtn, key_ctrlr, config_val);
+
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.RestoreVtnCtrlrOperStatus(ctr_id1, dmi, notification));
   delete ikey;
   free(ctr_id1);
 }
+# endif
 
 TEST_F(VtnMoMgrTest, RestoreVtnCtrlrOperStatus_valid_03) {
   VtnMoMgr vtn;
-  state_notification notification=kCtrlrReconnect;
+  state_notification notification = kCtrlrReconnect;
   DalDmlIntf *dmi(getDalDmlIntf());
-  uint8_t *ctrlr_id=NULL;
+  uint8_t *ctrlr_id = NULL;
   key_vtn_controller_t *key_ctrlr(ZALLOC_TYPE(key_vtn_controller_t));
-  uuu::upll_strncpy(key_ctrlr->controller_name,"controller_name1", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(key_ctrlr->domain_id,"domain_id", (kMaxLenCtrlrId + 1));
-  uuu::upll_strncpy(key_ctrlr->vtn_key.vtn_name,"vtn_name1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->controller_name,
+                    "controller_name1", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->domain_id,
+                    "domain_id", (kMaxLenCtrlrId + 1));
+  uuu::upll_strncpy(
+    key_ctrlr->vtn_key.vtn_name,
+                    "vtn_name1", (kMaxLenCtrlrId + 1));
   val_vtn_ctrlr_t *val_ctrlr(ZALLOC_TYPE(val_vtn_ctrlr_t));
-  val_ctrlr->ref_count=1;
-  val_ctrlr->down_count=1;
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val_ctrlr);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key_ctrlr, config_val);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcSuccess);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::CREATE_RECORD,kDalRcSuccess);
-
-  std::map<uint8_t,DalResultCode> map;
-  map.insert(std::make_pair(1,kDalRcRecordNoMore));
-  map.insert(std::make_pair(0,kDalRcSuccess));
+  val_ctrlr->ref_count = 1;
+  val_ctrlr->down_count = 1;
+  ConfigVal *config_val =
+      new ConfigVal(IpctSt::kIpcStValVtnSt, val_ctrlr);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key_ctrlr, config_val);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::MULTIPLE, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::CREATE_RECORD, kDalRcSuccess);
+
+  std::map<uint8_t, DalResultCode> map;
+  map.insert(std::make_pair(1, kDalRcRecordNoMore));
+  map.insert(std::make_pair(0, kDalRcSuccess));
   DalOdbcMgr::stub_setNextRecordResultCodes(map);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.RestoreVtnCtrlrOperStatus(ctrlr_id,dmi,notification));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.RestoreVtnCtrlrOperStatus(ctrlr_id, dmi, notification));
   delete ikey;
 }
 
@@ -5513,7 +6546,8 @@ TEST_F(VtnMoMgrTest, CreateVtunnelKey_ikey_NULL) {
   ConfigKeyVal *ikey = NULL;
   ConfigKeyVal *okey = NULL;
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.CreateVtunnelKey(ikey,okey));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.CreateVtunnelKey(ikey, okey));
   delete ikey;
 }
 
@@ -5521,11 +6555,14 @@ TEST_F(VtnMoMgrTest, CreateVtunnelKey_IpctSt_invalid) {
   VtnMoMgr vtn;
   key_vtunnel_t *key(ZALLOC_TYPE(key_vtunnel_t));
   val_vtunnel_t *val(ZALLOC_TYPE(val_vtunnel_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTUNNEL, IpctSt::kIpcStKeyVtn, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTUNNEL,
+    IpctSt::kIpcStKeyVtn, key, config_val);
   ConfigKeyVal *okey = NULL;
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.CreateVtunnelKey(ikey,okey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.CreateVtunnelKey(ikey, okey));
   delete ikey;
 }
 
@@ -5533,11 +6570,14 @@ TEST_F(VtnMoMgrTest, CreateVtunnelKey_IpctSt_valid) {
   VtnMoMgr vtn;
   key_vtunnel_t *key(ZALLOC_TYPE(key_vtunnel_t));
   val_vtunnel_t *val(ZALLOC_TYPE(val_vtunnel_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtunnelSt, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTUNNEL, IpctSt::kIpcStKeyVtunnel, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtunnelSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTUNNEL,
+     IpctSt::kIpcStKeyVtunnel, key, config_val);
   ConfigKeyVal *okey = NULL;
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.CreateVtunnelKey(ikey,okey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.CreateVtunnelKey(ikey, okey));
   delete ikey;
 }
 
@@ -5546,9 +6586,10 @@ TEST_F(VtnMoMgrTest, SwapKeyVal_ikey_NULL) {
   ConfigKeyVal *ikey = NULL;
   ConfigKeyVal *okey = NULL;
   DalDmlIntf *dmi(getDalDmlIntf());
-  uint8_t *ctrlr=NULL;
+  uint8_t *ctrlr = NULL;
   bool no_rename;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SwapKeyVal(ikey,okey,dmi,ctrlr,no_rename));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.SwapKeyVal(ikey, okey, dmi, ctrlr, no_rename));
   delete okey;
   delete ikey;
 }
@@ -5565,41 +6606,50 @@ TEST_F(VtnMoMgrTest, SwapKeyVal_IpctSt_valid) {
   strncpy(reinterpret_cast<char *>(key->vtn_name),
           vtn_name, strlen(vtn_name)+1);
   val_rename_vtn_t *val(ZALLOC_TYPE(val_rename_vtn_t));
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
   ConfigKeyVal *okey = NULL;
 
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,
-            vtn.SwapKeyVal(ikey, okey, dmi, ctr_id1, no_rename));
+
+    vtn.SwapKeyVal(ikey, okey, dmi, ctr_id1, no_rename));
   val->valid[UPLL_IDX_NEW_NAME_RVTN] = UNC_VF_VALID_NO_VALUE;
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.SwapKeyVal(ikey,okey,dmi,ctr_id1,no_rename));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.SwapKeyVal(ikey, okey, dmi, ctr_id1, no_rename));
   delete okey;
   okey = NULL;
 
   key_vtn_t *key1(UT_CLONE(key_vtn_t, key));
   val_rename_vtn_t *val1(UT_CLONE(val_rename_vtn_t, val));
   ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVtnSt, val1));
-  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *ikey1(new ConfigKeyVal(UNC_KT_VBRIDGE,
+                                       IpctSt::kIpcStKeyVtn,
                                        key1, cfgval1));
   EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST,
-            vtn.SwapKeyVal(ikey1, okey, dmi, ctr_id1, no_rename));
+    vtn.SwapKeyVal(ikey1, okey, dmi, ctr_id1, no_rename));
   delete okey;
   okey = NULL;
 
   key_vtn_t *key2(UT_CLONE(key_vtn_t, key));
-  ConfigKeyVal *ikey2(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *ikey2(new ConfigKeyVal(UNC_KT_VTN,
+                                       IpctSt::kIpcStKeyVtn,
                                        key2, NULL));
   EXPECT_EQ(UPLL_RC_ERR_BAD_REQUEST,
-            vtn.SwapKeyVal(ikey2, okey, dmi, ctr_id1, no_rename));
+    vtn.SwapKeyVal(ikey2, okey, dmi, ctr_id1, no_rename));
   delete okey;
   okey = NULL;
 
   key_vtn_t *key3(UT_CLONE(key_vtn_t, key));
   ConfigVal *cfgval3(new ConfigVal(IpctSt::kIpcStValVtnSt, NULL));
-  ConfigKeyVal *ikey3(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *ikey3(new ConfigKeyVal(UNC_KT_VTN,
+                                       IpctSt::kIpcStKeyVtn,
                                        key3, cfgval3));
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,
-            vtn.SwapKeyVal(ikey3, okey, dmi, ctr_id1, no_rename));
+
+    vtn.SwapKeyVal(ikey3, okey, dmi, ctr_id1, no_rename));
 
   delete okey;
   delete ikey;
@@ -5624,12 +6674,16 @@ TEST_F(VtnMoMgrTest, SwapKeyVal_IpctSt_valid_01) {
   pfc_strlcpy(reinterpret_cast<char *>(val->new_name), "VTN_2",
               sizeof(val->new_name));
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
   ConfigKeyVal *okey = NULL;
   val->valid[UPLL_IDX_NEW_NAME_RVTN] = UNC_VF_VALID;
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.SwapKeyVal(ikey,okey,dmi,ctr_id1,no_rename));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.SwapKeyVal(ikey, okey, dmi, ctr_id1, no_rename));
   delete okey;
   delete ikey;
   free(ctr_id1);
@@ -5650,12 +6704,16 @@ TEST_F(VtnMoMgrTest, SwapKeyVal_same_newName) {
   val_rename_vtn_t *val(ZALLOC_TYPE(val_rename_vtn_t));
   strncpy(reinterpret_cast<char *>(val->new_name),
           new_name, strlen(new_name)+1);
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
   ConfigKeyVal *okey = NULL;
   val->valid[UPLL_IDX_NEW_NAME_RVTN] = UNC_VF_VALID;
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SwapKeyVal(ikey,okey,dmi,ctr_id1,no_rename));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.SwapKeyVal(ikey, okey, dmi, ctr_id1, no_rename));
   delete okey;
   delete ikey;
   free(ctr_id1);
@@ -5676,12 +6734,16 @@ TEST_F(VtnMoMgrTest, SwapKeyVal_EmptyNewName) {
   val_rename_vtn_t *val(ZALLOC_TYPE(val_rename_vtn_t));
   strncpy(reinterpret_cast<char *>(val->new_name),
           new_name, strlen(new_name)+1);
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
   ConfigKeyVal *okey = NULL;
   val->valid[UPLL_IDX_NEW_NAME_RVTN] = UNC_VF_VALID;
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.SwapKeyVal(ikey,okey,dmi,ctr_id1,no_rename));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.SwapKeyVal(ikey, okey, dmi, ctr_id1, no_rename));
   delete okey;
   delete ikey;
   free(ctr_id1);
@@ -5692,8 +6754,8 @@ TEST_F(VtnMoMgrTest, UpdateCtrlrConfigStatus_valid) {
   const char *vtn_name = "VTN_1";
   const char *controller_name = "pfc1";
   const char *domain_id = "dom1";
-  unc_keytype_configstatus_t cs_status=UNC_CS_APPLIED;
-  uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpCreate;
+  unc_keytype_configstatus_t cs_status = UNC_CS_APPLIED;
+  uuc::UpdateCtrlrPhase phase = uuc::kUpllUcpCreate;
   key_vtn_controller *key(ZALLOC_TYPE(key_vtn_controller));
   strncpy(reinterpret_cast<char *>(key->controller_name),
           vtn_name, strlen(controller_name)+1);
@@ -5701,9 +6763,12 @@ TEST_F(VtnMoMgrTest, UpdateCtrlrConfigStatus_valid) {
           vtn_name, strlen(domain_id)+1);
   val_vtn_ctrlr_t *val_vtn(ZALLOC_TYPE(val_vtn_ctrlr_t));
   ConfigVal *config_val = new ConfigVal(IpctSt::kIpcStValVtn, val_vtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.UpdateCtrlrConfigStatus(cs_status,phase,ikey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.UpdateCtrlrConfigStatus(cs_status, phase, ikey));
   delete ikey;
 }
 
@@ -5713,8 +6778,8 @@ TEST_F(VtnMoMgrTest, UpdateCtrlrConfigStatus_phase_kUpllUcpCreate) {
   const char *vtn_name = "VTN_1";
   const char *controller_name = "pfc1";
   const char *domain_id = "dom1";
-  unc_keytype_configstatus_t cs_status=UNC_CS_APPLIED;
-  uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpCreate;
+  unc_keytype_configstatus_t cs_status = UNC_CS_APPLIED;
+  uuc::UpdateCtrlrPhase phase = uuc::kUpllUcpCreate;
   key_vtn_controller *key(ZALLOC_TYPE(key_vtn_controller));
   strncpy(reinterpret_cast<char *>(key->controller_name),
           vtn_name, strlen(controller_name)+1);
@@ -5722,9 +6787,12 @@ TEST_F(VtnMoMgrTest, UpdateCtrlrConfigStatus_phase_kUpllUcpCreate) {
           vtn_name, strlen(domain_id)+1);
   val_vtn_ctrlr_t *val_vtn(ZALLOC_TYPE(val_vtn_ctrlr_t));
   ConfigVal *config_val = new ConfigVal(IpctSt::kIpcStValVtn, val_vtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.UpdateCtrlrConfigStatus(cs_status,phase,ikey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.UpdateCtrlrConfigStatus(cs_status, phase, ikey));
   delete ikey;
 }
 
@@ -5733,8 +6801,8 @@ TEST_F(VtnMoMgrTest, UpdateCtrlrConfigStatus_phase_kUpllUcpUpdate) {
   const char *vtn_name = "VTN_1";
   const char *controller_name = "pfc1";
   const char *domain_id = "dom1";
-  unc_keytype_configstatus_t cs_status=UNC_CS_APPLIED;
-  uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpUpdate;
+  unc_keytype_configstatus_t cs_status = UNC_CS_APPLIED;
+  uuc::UpdateCtrlrPhase phase = uuc::kUpllUcpUpdate;
   key_vtn_controller *key(ZALLOC_TYPE(key_vtn_controller));
   strncpy(reinterpret_cast<char *>(key->controller_name),
           vtn_name, strlen(controller_name)+1);
@@ -5743,9 +6811,12 @@ TEST_F(VtnMoMgrTest, UpdateCtrlrConfigStatus_phase_kUpllUcpUpdate) {
   val_vtn_ctrlr_t *val_vtn(ZALLOC_TYPE(val_vtn_ctrlr_t));
   val_vtn->cs_row_status = UNC_CS_INVALID;
   ConfigVal *config_val = new ConfigVal(IpctSt::kIpcStValVtn, val_vtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.UpdateCtrlrConfigStatus(cs_status,phase,ikey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.UpdateCtrlrConfigStatus(cs_status, phase, ikey));
   delete ikey;
 }
 
@@ -5754,8 +6825,8 @@ TEST_F(VtnMoMgrTest, UpdateCtrlrConfigStatus_phase_kUpllUcpUpdate_invalid) {
   const char *vtn_name = "VTN_1";
   const char *controller_name = "pfc1";
   const char *domain_id = "dom1";
-  unc_keytype_configstatus_t cs_status=UNC_CS_INVALID;
-  uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpUpdate;
+  unc_keytype_configstatus_t cs_status = UNC_CS_INVALID;
+  uuc::UpdateCtrlrPhase phase = uuc::kUpllUcpUpdate;
   key_vtn_controller *key(ZALLOC_TYPE(key_vtn_controller));
   strncpy(reinterpret_cast<char *>(key->controller_name),
           vtn_name, strlen(controller_name)+1);
@@ -5764,39 +6835,52 @@ TEST_F(VtnMoMgrTest, UpdateCtrlrConfigStatus_phase_kUpllUcpUpdate_invalid) {
   val_vtn_ctrlr_t *val_vtn(ZALLOC_TYPE(val_vtn_ctrlr_t));
   val_vtn->valid[UPLL_IDX_DESC_VTN] = UNC_VF_VALID;
   ConfigVal *config_val = new ConfigVal(IpctSt::kIpcStValVtn, val_vtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.UpdateCtrlrConfigStatus(cs_status,phase,ikey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.UpdateCtrlrConfigStatus(cs_status, phase, ikey));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, UpdateAuditConfigStatus_valid) {
   VtnMoMgr vtn;
-  unc_keytype_configstatus_t cs_status=UNC_CS_APPLIED;
-  uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpCreate;
+  unc_keytype_configstatus_t cs_status = UNC_CS_APPLIED;
+  uuc::UpdateCtrlrPhase phase = uuc::kUpllUcpCreate;
   key_vtn_t *key;
   val_vtn_t *val;
   GetKeyValStruct(key, val);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
+  DalDmlIntf *dmi(getDalDmlIntf());
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.UpdateAuditConfigStatus(cs_status,phase,ikey));
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.UpdateAuditConfigStatus(cs_status, phase, ikey, dmi));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, UpdateAuditConfigStatus_phase_kUpllUcpCreate) {
   VtnMoMgr vtn;
-  unc_keytype_configstatus_t cs_status=UNC_CS_APPLIED;
-  uuc::UpdateCtrlrPhase phase=uuc::kUpllUcpCreate;
+  unc_keytype_configstatus_t cs_status = UNC_CS_APPLIED;
+  uuc::UpdateCtrlrPhase phase = uuc::kUpllUcpCreate;
   key_vtn_t *key;
   val_vtn_t *val;
   GetKeyValStruct(key, val);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
 
-  EXPECT_EQ(UPLL_RC_SUCCESS, vtn.UpdateAuditConfigStatus(cs_status,phase,ikey));
+    IpctSt::kIpcStKeyVtn, key, config_val);
+  DalDmlIntf *dmi(getDalDmlIntf());
+
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.UpdateAuditConfigStatus(cs_status, phase, ikey, dmi));
   delete ikey;
 }
 
@@ -5804,8 +6888,9 @@ TEST_F(VtnMoMgrTest, SetVtnConsolidatedStatus_ikey_NULL) {
   VtnMoMgr vtn;
   ConfigKeyVal *ikey = NULL;
   DalDmlIntf *dmi(getDalDmlIntf());
-  uint8_t *ctrlr=NULL;
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SetVtnConsolidatedStatus(ikey,ctrlr,dmi));
+  uint8_t *ctrlr = NULL;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.SetVtnConsolidatedStatus(ikey, ctrlr, dmi));
   delete ikey;
 }
 
@@ -5820,15 +6905,18 @@ TEST_F(VtnMoMgrTest, SetVtnConsolidatedStatus_ctrlr_valid) {
   strncpy(reinterpret_cast<char *>(key->domain_id),
           vtn_name, strlen(domain_id)+1);
   val_vtn_ctrlr_t *val_vtn(ZALLOC_TYPE(val_vtn_ctrlr_t));
-  val_vtn->down_count=0;
-  val_vtn->ref_count=0;
-  val_vtn->cs_row_status=UNC_CS_APPLIED;
+  val_vtn->down_count = 0;
+  val_vtn->ref_count = 0;
+  val_vtn->cs_row_status = UNC_CS_APPLIED;
   ConfigVal *config_val = new ConfigVal(IpctSt::kIpcStValVtn, val_vtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
   uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SetVtnConsolidatedStatus(ikey,ctr_id1,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.SetVtnConsolidatedStatus(ikey, ctr_id1, dmi));
   delete ikey;
   free(ctr_id1);
 }
@@ -5844,21 +6932,25 @@ TEST_F(VtnMoMgrTest, SetVtnConsolidatedStatus_ctrlr_valid_01) {
   strncpy(reinterpret_cast<char *>(key->domain_id),
           vtn_name, strlen(domain_id)+1);
   val_vtn_ctrlr_t *val_vtn(ZALLOC_TYPE(val_vtn_ctrlr_t));
-  val_vtn->down_count=0;
-  val_vtn->ref_count=0;
-  val_vtn->cs_row_status=UNC_CS_APPLIED;
+  val_vtn->down_count = 0;
+  val_vtn->ref_count = 0;
+  val_vtn->cs_row_status = UNC_CS_APPLIED;
   ConfigVal *config_val = new ConfigVal(IpctSt::kIpcStValVtn, val_vtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
   uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::MULTIPLE, kDalRcSuccess);
 
-  std::map<uint8_t,DalResultCode> map;
-  map.insert(std::make_pair(1,kDalRcRecordNoMore));
-  map.insert(std::make_pair(0,kDalRcSuccess));
+  std::map<uint8_t, DalResultCode> map;
+  map.insert(std::make_pair(1, kDalRcRecordNoMore));
+  map.insert(std::make_pair(0, kDalRcSuccess));
   DalOdbcMgr::stub_setNextRecordResultCodes(map);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SetVtnConsolidatedStatus(ikey,ctr_id1,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.SetVtnConsolidatedStatus(ikey, ctr_id1, dmi));
   delete ikey;
   free(ctr_id1);
 }
@@ -5876,11 +6968,14 @@ TEST_F(VtnMoMgrTest, SetVtnConsolidatedStatus_keytype_invalid) {
           vtn_name, strlen(domain_id)+1);
   val_vtn_ctrlr_t *val_vtn(ZALLOC_TYPE(val_vtn_ctrlr_t));
   ConfigVal *config_val = new ConfigVal(IpctSt::kIpcStValVtn, val_vtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVtn, key, config_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
   DalDmlIntf *dmi(getDalDmlIntf());
   uint8_t *ctr_id1 = ZALLOC_ARRAY(uint8_t, 32);
   memcpy(ctr_id1, "Controller1", 11);
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SetVtnConsolidatedStatus(ikey,ctr_id1,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.SetVtnConsolidatedStatus(ikey, ctr_id1, dmi));
   delete ikey;
   free(ctr_id1);
 }
@@ -5897,10 +6992,13 @@ TEST_F(VtnMoMgrTest, SetConsolidatedStatus_ikey_valid) {
           vtn_name, strlen(domain_id)+1);
   val_vtn_ctrlr_t *val_vtn(ZALLOC_TYPE(val_vtn_ctrlr_t));
   ConfigVal *config_val = new ConfigVal(IpctSt::kIpcStValVtn, val_vtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
 
   DalDmlIntf *dmi(getDalDmlIntf());
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SetConsolidatedStatus(ikey,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.SetConsolidatedStatus(ikey, dmi));
   delete ikey;
 }
 
@@ -5911,13 +7009,16 @@ TEST_F(VtnMoMgrTest, SetConsolidatedStatus_ikey_proper) {
   strncpy(reinterpret_cast<char *>(key->vtn_name),
           vtn_name, strlen(vtn_name)+1);
   val_vtn_ctrlr_t *val_vtn(ZALLOC_TYPE(val_vtn_ctrlr_t));
-  val_vtn->down_count=0;
-  val_vtn->ref_count=0;
+  val_vtn->down_count = 0;
+  val_vtn->ref_count = 0;
   ConfigVal *config_val = new ConfigVal(IpctSt::kIpcStValVtn, val_vtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
 
   DalDmlIntf *dmi(getDalDmlIntf());
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SetConsolidatedStatus(ikey,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.SetConsolidatedStatus(ikey, dmi));
   delete ikey;
 }
 
@@ -5928,28 +7029,33 @@ TEST_F(VtnMoMgrTest, SetConsolidatedStatus_ikey_proper_01) {
   strncpy(reinterpret_cast<char *>(key->vtn_name),
           vtn_name, strlen(vtn_name)+1);
   val_vtn_ctrlr_t *val_vtn(ZALLOC_TYPE(val_vtn_ctrlr_t));
-  val_vtn->down_count=0;
-  val_vtn->ref_count=0;
-  DalOdbcMgr::stub_setResultcode(DalOdbcMgr::MULTIPLE,kDalRcSuccess);
+  val_vtn->down_count = 0;
+  val_vtn->ref_count = 0;
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::MULTIPLE, kDalRcSuccess);
 
-  std::map<uint8_t,DalResultCode> map;
-  map.insert(std::make_pair(1,kDalRcRecordNoMore));
-  map.insert(std::make_pair(0,kDalRcSuccess));
+  std::map<uint8_t, DalResultCode> map;
+  map.insert(std::make_pair(1, kDalRcRecordNoMore));
+  map.insert(std::make_pair(0, kDalRcSuccess));
   DalOdbcMgr::stub_setNextRecordResultCodes(map);
   ConfigVal *config_val = new ConfigVal(IpctSt::kIpcStValVtn, val_vtn);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
 
   DalDmlIntf *dmi(getDalDmlIntf());
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.SetConsolidatedStatus(ikey,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.SetConsolidatedStatus(ikey, dmi));
   delete ikey;
 }
 
 TEST_F(VtnMoMgrTest, TxCopyCandidateToRunning_ikey_NULL) {
   VtnMoMgr vtn;
   unc_key_type_t keytype = UNC_KT_VTN;
-  CtrlrCommitStatusList *ctrlr_commit_status=NULL;
+  CtrlrCommitStatusList *ctrlr_commit_status = NULL;
   DalDmlIntf *dmi(getDalDmlIntf());
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.TxCopyCandidateToRunning(keytype,ctrlr_commit_status,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.TxCopyCandidateToRunning(keytype, ctrlr_commit_status, dmi));
 }
 
 TEST_F(VtnMoMgrTest, TxCopyCandidateToRunning_valid_01) {
@@ -5957,7 +7063,7 @@ TEST_F(VtnMoMgrTest, TxCopyCandidateToRunning_valid_01) {
   std::list<CtrlrCommitStatus *> CtrlrCommitStatusList;
 
   struct CtrlrTxResult *l_CtrlrTxResult
-    (new CtrlrTxResult("vtn",(upll_rc_t)1, 1));
+      (new CtrlrTxResult("vtn", (upll_rc_t)1, 1));
   l_CtrlrTxResult->upll_ctrlr_result = UPLL_RC_SUCCESS;
 
   CtrlrCommitStatusList.push_back(l_CtrlrTxResult);
@@ -5966,12 +7072,16 @@ TEST_F(VtnMoMgrTest, TxCopyCandidateToRunning_valid_01) {
   val_vtn_t *val;
   GetKeyValStruct(key, val);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
   l_CtrlrTxResult->err_ckv = ikey;
 
   DalDmlIntf *dmi(getDalDmlIntf());
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.TxCopyCandidateToRunning(keytype,&CtrlrCommitStatusList,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.TxCopyCandidateToRunning(keytype, &CtrlrCommitStatusList, dmi));
   delete l_CtrlrTxResult;
 }
 
@@ -5980,7 +7090,7 @@ TEST_F(VtnMoMgrTest, TxCopyCandidateToRunning_valid_02) {
   std::list<CtrlrCommitStatus *> CtrlrCommitStatusList;
 
   struct CtrlrTxResult * l_CtrlrTxResult
-    (new CtrlrTxResult("vtn",(upll_rc_t)1, 1));
+      (new CtrlrTxResult("vtn", (upll_rc_t)1, 1));
   l_CtrlrTxResult->upll_ctrlr_result = UPLL_RC_ERR_GENERIC;
 
   CtrlrCommitStatusList.push_back(l_CtrlrTxResult);
@@ -5989,25 +7099,30 @@ TEST_F(VtnMoMgrTest, TxCopyCandidateToRunning_valid_02) {
   val_vtn_t *val;
   GetKeyValStruct(key, val);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+
+    IpctSt::kIpcStKeyVtn, key, config_val);
   l_CtrlrTxResult->err_ckv = ikey;
 
   DalDmlIntf *dmi(getDalDmlIntf());
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.TxCopyCandidateToRunning(keytype,&CtrlrCommitStatusList,dmi));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.TxCopyCandidateToRunning(keytype, &CtrlrCommitStatusList, dmi));
   delete l_CtrlrTxResult;
 }
 
 TEST_F(VtnMoMgrTest, GetRenameInfo_ikey_NULL) {
   VtnMoMgr vtn;
-  ConfigKeyVal *ikey=NULL;
-  ConfigKeyVal *okey=NULL;
-  ConfigKeyVal *rename_info=NULL;
+  ConfigKeyVal *ikey = NULL;
+  ConfigKeyVal *okey = NULL;
+  ConfigKeyVal *rename_info = NULL;
   const char *ctrlr_id = "Controller1";
   DalDmlIntf *dmi(getDalDmlIntf());
   bool renamed;
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.GetRenameInfo(ikey,okey,rename_info,dmi,ctrlr_id,renamed));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.GetRenameInfo(ikey, okey, rename_info, dmi, ctrlr_id, renamed));
   delete ikey;
   delete rename_info;
 }
@@ -6016,22 +7131,27 @@ TEST_F(VtnMoMgrTest, GetRenameInfo_key_NULL) {
   VtnMoMgr vtn;
   const char *ctrlr_id = "Controller1";
   DalDmlIntf *dmi(getDalDmlIntf());
-  bool renamed=true;
+  bool renamed = true;
   key_vtn_t *key;
   val_vtn_t *val;
-  GetKeyValStruct(key,val);
+  GetKeyValStruct(key, val);
+
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtn, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
+    IpctSt::kIpcStKeyVtn, key, config_val);
 
   key_vtn_t *key1(UT_CLONE(key_vtn_t, key));
   val_vtn_t *val1(UT_CLONE(val_vtn_t, val));
   ConfigVal *cfgval1(new ConfigVal(IpctSt::kIpcStValVtn, val1));
-  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn,
+  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VTN,
+                                      IpctSt::kIpcStKeyVtn,
                                       key1, cfgval1));
   ConfigKeyVal *rename_info = NULL;
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.GetRenameInfo(ikey,okey,rename_info,dmi,ctrlr_id,renamed));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.GetRenameInfo(ikey, okey, rename_info, dmi, ctrlr_id, renamed));
   delete ikey;
   delete okey;
 }
@@ -6040,66 +7160,267 @@ TEST_F(VtnMoMgrTest, GetRenameInfo_renamed_false) {
   VtnMoMgr vtn;
   const char *ctrlr_id = "Controller1";
   DalDmlIntf *dmi(getDalDmlIntf());
-  bool renamed=false;
+  bool renamed = false;
   key_rename_vnode_info_t *key1(ZALLOC_TYPE(key_rename_vnode_info_t));
   val_rename_vnode_t *val1(ZALLOC_TYPE(val_rename_vnode_t));
   key_vtn_t *key;
   val_vtn_t *val;
   GetKeyValStruct(key, val);
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtnSt, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+    IpctSt::kIpcStKeyVtn, key, config_val);
 
   key_vtn_t *key_o(UT_CLONE(key_vtn_t, key));
   val_vtn_t *val_o(UT_CLONE(val_vtn_t, val));
   ConfigVal *cfg_o(new ConfigVal(IpctSt::kIpcStValVtn, val_o));
-  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key_o,
+  ConfigKeyVal *okey(new ConfigKeyVal(UNC_KT_VTN,
+                                      IpctSt::kIpcStKeyVtn, key_o,
                                       cfg_o));
 
-  ConfigVal *config_val1= new ConfigVal(IpctSt::kIpcStValVtnSt, val1);
-  ConfigKeyVal *rename_info = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key1, config_val1);
+  ConfigVal *config_val1 =  new ConfigVal(IpctSt::kIpcStValVtnSt, val1);
+  ConfigKeyVal *rename_info = new ConfigKeyVal(UNC_KT_VTN,
+           IpctSt::kIpcStKeyVtn, key1, config_val1);
 
-  EXPECT_EQ(UPLL_RC_ERR_GENERIC, vtn.GetRenameInfo(ikey,okey,rename_info,dmi,ctrlr_id,renamed));
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.GetRenameInfo(ikey, okey, rename_info, dmi, ctrlr_id, renamed));
   delete ikey;
   delete okey;
   delete rename_info;
 }
 
-TEST_F(VtnMoMgrTest, TxUpdateProcess_Create_01) {
+TEST_F(VtnMoMgrTest, Create_01 ) {
+  VtnMoMgr vtn;
+  IPC_RESPONSE_DECL(req);
+  unc_keytype_operation_t op = UNC_OP_CREATE;
+  controller_domain *ctrlr_dom = NULL;
+  DalDmlIntf *dmi(getDalDmlIntf());
+  key_vtn_t *key = ZALLOC_TYPE(key_vtn_t);
+  val_vtn_t *val = ZALLOC_TYPE(val_vtn_t);
+  GetKeyValStruct(key, val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVbrSt, NULL);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE,
+    IpctSt::kIpcStKeyVbr, NULL, config_val);
+  IpcResponse resp;
+  memset(&resp, 0, sizeof(resp));
+  uint32_t session_id = 1;
+  uint32_t config_id = 1;
+
+  resp.header.clnt_sess_id = session_id;
+  resp.header.config_id = config_id;
+  bool driver_resp = false;
+  set<string> *affected_ctrlr_set = NULL;
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.TxUpdateProcess(ikey,
+     &resp, op, dmi,
+      ctrlr_dom, affected_ctrlr_set, &driver_resp));
+
+  delete ikey;
+}
+
+TEST_F(VtnMoMgrTest, Create_02 ) {
+  VtnMoMgr vtn;
+  IPC_RESPONSE_DECL(req);
+  unc_keytype_operation_t op = UNC_OP_CREATE;
+  controller_domain *ctrlr_dom = NULL;
+  DalDmlIntf *dmi(getDalDmlIntf());
+  key_vtn_t *key = ZALLOC_TYPE(key_vtn_t);
+  val_vtn_t *val = ZALLOC_TYPE(val_vtn_t);
+  GetKeyValStruct(key, val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+    IpctSt::kIpcStKeyVtn, key, config_val);
+  IpcResponse resp;
+  memset(&resp, 0, sizeof(resp));
+  uint32_t session_id = 1;
+  uint32_t config_id = 1;
+
+  resp.header.clnt_sess_id = session_id;
+  resp.header.config_id = config_id;
+  bool driver_resp = false;
+  set<string> *affected_ctrlr_set = NULL;
+
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.TxUpdateProcess(ikey,
+     &resp, op, dmi, ctrlr_dom, affected_ctrlr_set, &driver_resp));
+  delete ikey;
+}
+
+TEST_F(VtnMoMgrTest, Create_03 ) {
   VtnMoMgr vtn;
-  unc_keytype_operation_t op=UNC_OP_CREATE;
-  controller_domain *ctrlr_dom=NULL;
+  IPC_RESPONSE_DECL(req);
+  unc_keytype_operation_t op = UNC_OP_CREATE;
+  controller_domain *ctrlr_dom = NULL;
+  // DalOdbcMgr::stub_setResultcode(
+  //  DalOdbcMgr::SINGLE, kDalRcSuccess);
   DalDmlIntf *dmi(getDalDmlIntf());
+  key_vtn_t *key = ZALLOC_TYPE(key_vtn_t);
+  val_vtn_t *val = ZALLOC_TYPE(val_vtn_t);
+  GetKeyValStruct(key, val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+    IpctSt::kIpcStKeyVtn, key, config_val);
+  IpcResponse resp;
+  memset(&resp, 0, sizeof(resp));
+  uint32_t session_id = 1;
+  uint32_t config_id = 1;
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVbrSt, NULL);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VBRIDGE, IpctSt::kIpcStKeyVbr, NULL, config_val);
+  resp.header.clnt_sess_id = session_id;
+  resp.header.config_id = config_id;
+  bool driver_resp = false;
+  set<string> *affected_ctrlr_set = NULL;
 
-  IPC_RESPONSE_DECL(resp);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,
-            vtn.TxUpdateProcess(ikey, resp, op, dmi, ctrlr_dom));
+    vtn.TxUpdateProcess(ikey,
+     &resp, op, dmi, ctrlr_dom, affected_ctrlr_set, &driver_resp));
+  delete ikey;
+}
+
+TEST_F(VtnMoMgrTest, Update ) {
+  VtnMoMgr vtn;
+  IPC_RESPONSE_DECL(req);
+  unc_keytype_operation_t op = UNC_OP_UPDATE;
+  controller_domain *ctrlr_dom = NULL;
+  DalDmlIntf *dmi(getDalDmlIntf());
+  key_vtn_t *key = ZALLOC_TYPE(key_vtn_t);
+  val_vtn_t *val = ZALLOC_TYPE(val_vtn_t);
+  GetKeyValStruct(key, val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+    IpctSt::kIpcStKeyVtn, key, config_val);
+  IpcResponse resp;
+  memset(&resp, 0, sizeof(resp));
+  uint32_t session_id = 1;
+  uint32_t config_id = 1;
+
+  resp.header.clnt_sess_id = session_id;
+  resp.header.config_id = config_id;
+  bool driver_resp = false;
+  set<string> *affected_ctrlr_set = NULL;
 
+  EXPECT_EQ(UPLL_RC_SUCCESS,
+    vtn.TxUpdateProcess(ikey,
+     &resp, op, dmi, ctrlr_dom, affected_ctrlr_set, &driver_resp));
   delete ikey;
 }
 
-TEST_F(VtnMoMgrTest, TxUpdateProcess_Create_02) {
+TEST_F(VtnMoMgrTest, Delete ) {
   VtnMoMgr vtn;
-  unc_keytype_operation_t op=UNC_OP_CREATE;
-  controller_domain *ctrlr_dom=NULL;
+  IPC_RESPONSE_DECL(req);
+  unc_keytype_operation_t op = UNC_OP_DELETE;
+  controller_domain *ctrlr_dom = NULL;
   DalDmlIntf *dmi(getDalDmlIntf());
-  key_vtn_t *key;
-  val_vtn_t *val;
+  key_vtn_t *key = ZALLOC_TYPE(key_vtn_t);
+  val_vtn_t *val = ZALLOC_TYPE(val_vtn_t);
   GetKeyValStruct(key, val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+    IpctSt::kIpcStKeyVtn, key, config_val);
+  IpcResponse resp;
+  memset(&resp, 0, sizeof(resp));
+  uint32_t session_id = 1;
+  uint32_t config_id = 1;
 
-  ConfigVal *config_val= new ConfigVal(IpctSt::kIpcStValVtn, val);
-  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN, IpctSt::kIpcStKeyVtn, key, config_val);
+  resp.header.clnt_sess_id = session_id;
+  resp.header.config_id = config_id;
+  bool driver_resp = false;
+  set<string> *affected_ctrlr_set = NULL;
 
-  IPC_RESPONSE_DECL(resp);
   EXPECT_EQ(UPLL_RC_ERR_GENERIC,
-            vtn.TxUpdateProcess(ikey, resp, op, dmi, ctrlr_dom));
+    vtn.TxUpdateProcess(ikey,
+     &resp, op, dmi, ctrlr_dom, affected_ctrlr_set, &driver_resp));
+  delete ikey;
+}
+
+TEST_F(VtnMoMgrTest, TxUpdate_default ) {
+  VtnMoMgr vtn;
+  uint32_t session_id = 1;
+  uint32_t config_id = 1;
+  uuc::UpdateCtrlrPhase phase = uuc::kUpllUcpCreate;;
+  set<string> *affected_ctrlr_set = NULL;
+  DalDmlIntf *dmi(getDalDmlIntf());
+  key_vtn_t *key = ZALLOC_TYPE(key_vtn_t);
+  val_vtn_t *val = ZALLOC_TYPE(val_vtn_t);
+  GetKeyValStruct(key, val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+    IpctSt::kIpcStKeyVtn, key, config_val);
 
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.TxUpdateController(UNC_KT_VTN,
+    session_id, config_id, phase, affected_ctrlr_set, dmi, &ikey));
   delete ikey;
 }
 
+TEST_F(VtnMoMgrTest, Create ) {
+  VtnMoMgr vtn;
+  uint32_t session_id = 1;
+  uint32_t config_id = 1;
+  uuc::UpdateCtrlrPhase phase = uuc::kUpllUcpCreate;
+  DalOdbcMgr::clearStubData();
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::INIT, kDalRcSuccess);
+  DalOdbcMgr::stub_setResultcode(
+    DalOdbcMgr::NEXT, kDalRcSuccess);
+  set<string> *affected_ctrlr_set = NULL;
+  DalDmlIntf *dmi(getDalDmlIntf());
+  key_vtn_t *key = ZALLOC_TYPE(key_vtn_t);
+  val_vtn_t *val = ZALLOC_TYPE(val_vtn_t);
+  GetKeyValStruct(key, val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+    IpctSt::kIpcStKeyVtn, key, config_val);
+
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.TxUpdateController(UNC_KT_VTN,
+    session_id, config_id, phase, affected_ctrlr_set, dmi, &ikey));
 }
+TEST_F(VtnMoMgrTest, TxController_Update ) {
+  VtnMoMgr vtn;
+  uint32_t session_id = 1;
+  uint32_t config_id = 1;
+  uuc::UpdateCtrlrPhase phase = uuc::kUpllUcpUpdate;
+  set<string> *affected_ctrlr_set = NULL;
+  DalDmlIntf *dmi(getDalDmlIntf());
+  key_vtn_t *key = ZALLOC_TYPE(key_vtn_t);
+  val_vtn_t *val = ZALLOC_TYPE(val_vtn_t);
+  GetKeyValStruct(key, val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+    IpctSt::kIpcStKeyVtn, key, config_val);
+
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.TxUpdateController(UNC_KT_VTN,
+    session_id, config_id, phase, affected_ctrlr_set, dmi, &ikey));
 }
+TEST_F(VtnMoMgrTest, TxController_Delete ) {
+  VtnMoMgr vtn;
+  uint32_t session_id = 1;
+  uint32_t config_id = 1;
+  uuc::UpdateCtrlrPhase phase = uuc::kUpllUcpDelete;
+  set<string> *affected_ctrlr_set = NULL;
+  DalDmlIntf *dmi(getDalDmlIntf());
+  key_vtn_t *key = ZALLOC_TYPE(key_vtn_t);
+  val_vtn_t *val = ZALLOC_TYPE(val_vtn_t);
+  GetKeyValStruct(key, val);
+  ConfigVal *config_val =  new ConfigVal(
+    IpctSt::kIpcStValVtnSt, val);
+  ConfigKeyVal *ikey = new ConfigKeyVal(UNC_KT_VTN,
+    IpctSt::kIpcStKeyVtn, key, config_val);
+
+  EXPECT_EQ(UPLL_RC_ERR_GENERIC,
+    vtn.TxUpdateController(UNC_KT_VTN,
+    session_id, config_id, phase, affected_ctrlr_set, dmi, &ikey));
 }
+}  // namespace kt_momgr
+}  // namespace upll
+}  // namespace unc
index 155b12baee4cd8f287c2792b842768a9997c4fd0..64e580d166a509c030b07ee1c954d23fd31cbeff 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -36,7 +36,6 @@
 #include <pfc/ipc_client.h>
 #include <pfc/ipc_pfcd.h>
 #include <odbcm_mgr.hh>
-#include "PhysicalLayerStub.hh"
 #include <itc_read_request.hh>
 #include <tclib_module.hh>
 #include <physical_common_def.hh>
@@ -50,6 +49,7 @@
 #include <itc_kt_port.hh>
 #include <itc_kt_link.hh>
 #include <ipct_util.hh>
+#include "PhysicalLayerStub.hh"
 #include "ut_util.hh"
 
 using namespace pfc;
@@ -60,11 +60,10 @@ using namespace unc::tclib;
 using namespace unc::uppl::test;
 
 class BoundaryTest
-  : public UpplTestEnv
-{
+  : public UpplTestEnv {
 };
 
-static char pkName1[] = "Boundary1";
+static char pkName1[]  =  "Boundary1";
 
 static void getKeyForKtBoundary0(key_boundary_t& k) {
   memset(k.boundary_id, '\0', 32);
@@ -78,81 +77,82 @@ static void getKeyForKtBoundary1(key_boundary_t& k) {
 static void getValForKtBoundary1(val_boundary_t& v) {
   memset(v.description, '\0', 128);
   memcpy(v.description, "boundary description", strlen("boundary description"));
-  
+
   memset(v.controller_name1, '\0', 32);
   memcpy(v.controller_name1, "Controller5", strlen("Controller5"));
 
   memset(v.domain_name1, '\0', 32);
   memcpy(v.domain_name1, "domain1", strlen("domain1"));
+
   memset(v.logical_port_id1, '\0', 320);
-  memcpy(v.logical_port_id1, "{0xab,0xc}", strlen("{0xab,0xc}"));
+  memcpy(v.logical_port_id1, "{0xab, 0xc}", strlen("{0xab, 0xc}"));
 
   memset(v.controller_name2, '\0', 32);
   memcpy(v.controller_name2, "Controller7", strlen("Controller7"));
-  
+
   memset(v.domain_name2, '\0', 32);
   memcpy(v.domain_name2, "domain2", strlen("domain2"));
 
   memset(v.logical_port_id2, '\0', 320);
-  memcpy(v.logical_port_id2, "{0xcd,0xe}", strlen("{0xcd,0xe}"));
+  memcpy(v.logical_port_id2, "{0xcd, 0xe}", strlen("{0xcd, 0xe}"));
 
-  memset(v.valid, 1, 7);  // uint8_t valid[7];
-  v.cs_row_status = 0;  // uint8_t cs_row_status;
-  memset(v.cs_attr, 1, 7);  // uint8_t cs_attr[7]
-  v.cs_attr[6] =  '\0';
+  memset(v.valid, 1, 7);  //  uint8_t valid[7];
+  v.cs_row_status  =  0;  //  uint8_t cs_row_status;
+  memset(v.cs_attr, 1, 7);  //  uint8_t cs_attr[7]
+  v.cs_attr[6] = '\0';
 }
 
 static void getValForKtBoundary5(val_boundary_t& v) {
   memset(v.description, '\0', 128);
   memcpy(v.description, "boundary description", strlen("boundary description"));
-  
+
   memset(v.controller_name1, '\0', 32);
   memcpy(v.controller_name1, "Controller5", strlen("Controller5"));
+
   memset(v.domain_name1, '\0', 32);
   memcpy(v.domain_name1, "domain1", strlen("domain1"));
 
   memset(v.logical_port_id1, '\0', 320);
-  memcpy(v.logical_port_id1, "{0xab,0xc}", strlen("{0xab,0xc}"));
+  memcpy(v.logical_port_id1, "{0xab, 0xc}", strlen("{0xab, 0xc}"));
 
   memset(v.controller_name2, '\0', 32);
   memcpy(v.controller_name2, "Controller5", strlen("Controller5"));
-  
+
   memset(v.domain_name2, '\0', 32);
   memcpy(v.domain_name2, "domain1", strlen("domain1"));
 
   memset(v.logical_port_id2, '\0', 320);
-  memcpy(v.logical_port_id2, "{0xcd,0xe}", strlen("{0xcd,0xe}"));
+  memcpy(v.logical_port_id2, "{0xcd, 0xe}", strlen("{0xcd, 0xe}"));
 
-  memset(v.valid, 1, 7);  // uint8_t valid[7];
-  v.cs_row_status = 0;  // uint8_t cs_row_status;
-  memset(v.cs_attr, 1, 7);  // uint8_t cs_attr[7]
-  v.cs_attr[6] =  '\0';
+  memset(v.valid, 1, 7);  //  uint8_t valid[7];
+  v.cs_row_status  =  0;  //  uint8_t cs_row_status;
+  memset(v.cs_attr, 1, 7);  //  uint8_t cs_attr[7]
+  v.cs_attr[6] = '\0';
 }
 
-// Create for unsupported datatype
+//  Create for unsupported datatype
 TEST_F(BoundaryTest, Create_01) {
   key_boundary_t k;
   val_boundary_t v;
-  uint32_t session_id = 1;
-  uint32_t configuration_id = 2;
+  uint32_t session_id  =  1;
+  uint32_t configuration_id  =  2;
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
   ServerSession ses;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   pfc::core::ipc::ServerSession::set_rest(2);
-  int ret =  KtboundaryObj.Create(db_conn,session_id,configuration_id,&k,&v,UNC_DT_STATE,ses);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret = KtboundaryObj.Create(
+    db_conn, session_id, configuration_id, &k, &v, UNC_DT_STATE, ses);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-// Boundary  Create success 
+//  Boundary  Create success
 TEST_F(BoundaryTest, Create_02) {
   key_boundary_t k;
   val_boundary_t v;
-  uint32_t session_id = 1;
-  uint32_t configuration_id = 2;
+  uint32_t session_id  =  1;
+  uint32_t configuration_id  =  2;
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
@@ -166,18 +166,20 @@ TEST_F(BoundaryTest, Create_02) {
   ses.stub_setAddOutput((uint32_t)ODBCM_RC_SUCCESS);
   ses.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
   ses.stub_setAddOutput((uint32_t)UNC_KT_BOUNDARY);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_SUCCESS);
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtboundaryObj.Create(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_SUCCESS);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = KtboundaryObj.Create(
+    db_conn, session_id, configuration_id, &k, &v, UNC_DT_CANDIDATE, ses);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// Boundary  Create Server session addOutput failed 
+//  Boundary  Create Server session addOutput failed
 TEST_F(BoundaryTest, Create_03) {
   key_boundary_t k;
   val_boundary_t v;
-  uint32_t session_id = 1;
-  uint32_t configuration_id = 2;
+  uint32_t session_id  =  1;
+  uint32_t configuration_id  =  2;
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
@@ -190,89 +192,100 @@ TEST_F(BoundaryTest, Create_03) {
   ses.stub_setAddOutput((uint32_t)0);
   ses.stub_setAddOutput((uint32_t)ODBCM_RC_SUCCESS);
   ses.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_SUCCESS);
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtboundaryObj.Create(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_SUCCESS);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = KtboundaryObj.Create(
+    db_conn, session_id, configuration_id, &k, &v, UNC_DT_CANDIDATE, ses);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-// CreateOneRow returns ODBCM_RC_CONNECTION_ERROR
+//  CreateOneRow returns ODBCM_RC_CONNECTION_ERROR
 TEST_F(BoundaryTest, CreateKeyInstance_01) {
   key_boundary_t k;
   val_boundary_t v;
-  uint32_t key_type = 1;
+  uint32_t key_type  =  1;
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  KtboundaryObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_STATE,key_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_CONNECTION_ERROR);
+  int ret = KtboundaryObj.CreateKeyInstance(
+    db_conn, &k, &v, UNC_DT_STATE, key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-// CreateOneRow returns ODBCM_RC_PKEY_VIOLATION
+//  CreateOneRow returns ODBCM_RC_PKEY_VIOLATION
 TEST_F(BoundaryTest, CreateKeyInstance_02) {
   key_boundary_t k;
   val_boundary_t v;
-  uint32_t key_type = 1;
+  uint32_t key_type  =  1;
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_PKEY_VIOLATION);
-  int ret =  KtboundaryObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_STATE,key_type);
-  EXPECT_EQ(UPPL_RC_ERR_INSTANCE_EXISTS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_PKEY_VIOLATION);
+  int ret = KtboundaryObj.CreateKeyInstance(
+    db_conn, &k, &v, UNC_DT_STATE, key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_INSTANCE_EXISTS, ret);
 }
 
-// CreateOneRow returns ODBCM_RC_QUERY_FAILED
+//  CreateOneRow returns ODBCM_RC_QUERY_FAILED
 TEST_F(BoundaryTest, CreateKeyInstance_03) {
   key_boundary_t k;
   val_boundary_t v;
-  uint32_t key_type = 1;
+  uint32_t key_type  =  1;
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_QUERY_FAILED);
-  int ret =  KtboundaryObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_STATE,key_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_CREATE, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_QUERY_FAILED);
+  int ret = KtboundaryObj.CreateKeyInstance(
+    db_conn, &k, &v, UNC_DT_STATE, key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_CREATE, ret);
 }
 
-// CreateOneRow returns ODBCM_RC_QUERY_FAILED
+//  CreateOneRow returns ODBCM_RC_QUERY_FAILED
 TEST_F(BoundaryTest, CreateKeyInstance_04) {
   key_boundary_t k;
   val_boundary_t v;
-  uint32_t key_type = 1;
+  uint32_t key_type  =  1;
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_SUCCESS);
-  int ret =  KtboundaryObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_STATE,key_type);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_SUCCESS);
+  int ret = KtboundaryObj.CreateKeyInstance(
+    db_conn, &k, &v, UNC_DT_STATE, key_type);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// Update for unsupported datatype
+//  Update for unsupported datatype
 TEST_F(BoundaryTest, Update_01) {
   key_boundary_t k;
   val_boundary_t v;
-  uint32_t session_id = 1;
-  uint32_t configuration_id = 2;
+  uint32_t session_id  =  1;
+  uint32_t configuration_id  =  2;
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
   ServerSession ses;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtboundaryObj.Update(db_conn,session_id,configuration_id,&k,&v,UNC_DT_STATE,ses);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = KtboundaryObj.Update(
+    db_conn, session_id, configuration_id, &k, &v, UNC_DT_STATE, ses);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-// Boundary  Update success 
+//  Boundary  Update success
 TEST_F(BoundaryTest, Update_02) {
   key_boundary_t k;
   val_boundary_t v;
-  uint32_t session_id = 1;
-  uint32_t configuration_id = 2;
+  uint32_t session_id  =  1;
+  uint32_t configuration_id  =  2;
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
@@ -286,18 +299,20 @@ TEST_F(BoundaryTest, Update_02) {
   ses.stub_setAddOutput((uint32_t)ODBCM_RC_SUCCESS);
   ses.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
   ses.stub_setAddOutput((uint32_t)UNC_KT_BOUNDARY);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtboundaryObj.Update(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = KtboundaryObj.Update(
+    db_conn, session_id, configuration_id, &k, &v, UNC_DT_CANDIDATE, ses);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// Boundary  Update Server session addOutput failed 
+//  Boundary  Update Server session addOutput failed
 TEST_F(BoundaryTest, Update_03) {
   key_boundary_t k;
   val_boundary_t v;
-  uint32_t session_id = 1;
-  uint32_t configuration_id = 2;
+  uint32_t session_id  =  1;
+  uint32_t configuration_id  =  2;
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
@@ -310,22 +325,24 @@ TEST_F(BoundaryTest, Update_03) {
   ses.stub_setAddOutput((uint32_t)0);
   ses.stub_setAddOutput((uint32_t)ODBCM_RC_SUCCESS);
   ses.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtboundaryObj.Update(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = KtboundaryObj.Update(
+    db_conn, session_id, configuration_id, &k, &v, UNC_DT_CANDIDATE, ses);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-// UpdateOneRow returns ODBCM_RC_CONNECTION_ERROR
+//  UpdateOneRow returns ODBCM_RC_CONNECTION_ERROR
 TEST_F(BoundaryTest, Update_04) {
   key_boundary_t k;
   val_boundary_t v;
-  uint32_t session_id = 1;
-  uint32_t configuration_id = 2;
+  uint32_t session_id  =  1;
+  uint32_t configuration_id  =  2;
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   ServerSession ses;
   ses.stub_setAddOutput((uint32_t)configuration_id);
   ses.stub_setAddOutput((uint32_t)session_id);
@@ -333,25 +350,27 @@ TEST_F(BoundaryTest, Update_04) {
   ses.stub_setAddOutput((uint32_t)0);
   ses.stub_setAddOutput((uint32_t)0);
   ses.stub_setAddOutput((uint32_t)0);
-  ses.stub_setAddOutput((uint32_t)UPPL_RC_ERR_DB_ACCESS);
+  ses.stub_setAddOutput((uint32_t)UNC_UPPL_RC_ERR_DB_ACCESS);
   ses.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
   ses.stub_setAddOutput((uint32_t)UNC_KT_BOUNDARY);
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  KtboundaryObj.Update(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_CONNECTION_ERROR);
+  int ret = KtboundaryObj.Update(
+    db_conn, session_id, configuration_id, &k, &v, UNC_DT_CANDIDATE, ses);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// UpdateOneRow returns ODBCM_RC_PKEY_VIOLATION
+//  UpdateOneRow returns ODBCM_RC_PKEY_VIOLATION
 TEST_F(BoundaryTest, Update_05) {
   key_boundary_t k;
   val_boundary_t v;
-  uint32_t session_id = 1;
-  uint32_t configuration_id = 2;
+  uint32_t session_id  =  1;
+  uint32_t configuration_id  =  2;
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   ServerSession ses;
   ses.stub_setAddOutput((uint32_t)configuration_id);
   ses.stub_setAddOutput((uint32_t)session_id);
@@ -359,20 +378,22 @@ TEST_F(BoundaryTest, Update_05) {
   ses.stub_setAddOutput((uint32_t)0);
   ses.stub_setAddOutput((uint32_t)0);
   ses.stub_setAddOutput((uint32_t)0);
-  ses.stub_setAddOutput((uint32_t)UPPL_RC_ERR_DB_UPDATE);
+  ses.stub_setAddOutput((uint32_t)UNC_UPPL_RC_ERR_DB_UPDATE);
   ses.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
   ses.stub_setAddOutput((uint32_t)UNC_KT_BOUNDARY);
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_PKEY_VIOLATION);
-  int ret =  KtboundaryObj.Update(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_PKEY_VIOLATION);
+  int ret = KtboundaryObj.Update(
+    db_conn, session_id, configuration_id, &k, &v, UNC_DT_CANDIDATE, ses);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// ReadBulkInternal GetBulkRows returns ODBCM_RC_RECORD_NOT_FOUND 
+//  ReadBulkInternal GetBulkRows returns ODBCM_RC_RECORD_NOT_FOUND
 TEST_F(BoundaryTest, ReadBulkInternal_01) {
   key_boundary_t k;
   val_boundary_t v;
-  uint32_t max_rep_ct = 2;
+  uint32_t max_rep_ct  =  2;
   vector<key_boundary_t> vect_key_boundary;
   vector<val_boundary_st_t> vect_val_boundary;
   vect_key_boundary.clear();
@@ -381,17 +402,20 @@ TEST_F(BoundaryTest, ReadBulkInternal_01) {
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
   ServerSession ses;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
-  int ret =  KtboundaryObj.ReadBulkInternal(db_conn,&k,&v,UNC_DT_STATE,max_rep_ct,vect_key_boundary,vect_val_boundary);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
+  int ret = KtboundaryObj.ReadBulkInternal(
+    db_conn, &k, &v, UNC_DT_STATE, max_rep_ct,
+    vect_key_boundary, vect_val_boundary);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-// ReadBulkInternal GetBulkRows returns ODBCM_RC_CONNECTION_ERROR
+//  ReadBulkInternal GetBulkRows returns ODBCM_RC_CONNECTION_ERROR
 TEST_F(BoundaryTest, ReadBulkInternal_02) {
   key_boundary_t k;
   val_boundary_t v;
-  uint32_t max_rep_ct = 2;
+  uint32_t max_rep_ct  =  2;
   vector<key_boundary_t> vect_key_boundary;
   vector<val_boundary_st_t> vect_val_boundary;
   vect_key_boundary.clear();
@@ -400,17 +424,20 @@ TEST_F(BoundaryTest, ReadBulkInternal_02) {
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
   ServerSession ses;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  KtboundaryObj.ReadBulkInternal(db_conn,&k,&v,UNC_DT_STATE,max_rep_ct,vect_key_boundary,vect_val_boundary);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
+  int ret = KtboundaryObj.ReadBulkInternal(
+    db_conn, &k, &v, UNC_DT_STATE, max_rep_ct,
+    vect_key_boundary, vect_val_boundary);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-// ReadBulkInternal GetBulkRows returns ODBCM_RC_QUERY_FAILED 
+//  ReadBulkInternal GetBulkRows returns ODBCM_RC_QUERY_FAILED
 TEST_F(BoundaryTest, ReadBulkInternal_03) {
   key_boundary_t k;
   val_boundary_t v;
-  uint32_t max_rep_ct = 2;
+  uint32_t max_rep_ct  =  2;
   vector<key_boundary_t> vect_key_boundary;
   vector<val_boundary_st_t> vect_val_boundary;
   vect_key_boundary.clear();
@@ -419,17 +446,20 @@ TEST_F(BoundaryTest, ReadBulkInternal_03) {
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
   ServerSession ses;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_QUERY_FAILED);
-  int ret =  KtboundaryObj.ReadBulkInternal(db_conn,&k,&v,UNC_DT_STATE,max_rep_ct,vect_key_boundary,vect_val_boundary);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_QUERY_FAILED);
+  int ret = KtboundaryObj.ReadBulkInternal(
+    db_conn, &k, &v, UNC_DT_STATE, max_rep_ct,
+    vect_key_boundary, vect_val_boundary);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
-// ReadBulkInternal GetBulkRows returns ODBCM_RC_SUCCESS
+//  ReadBulkInternal GetBulkRows returns ODBCM_RC_SUCCESS
 TEST_F(BoundaryTest, ReadBulkInternal_04) {
   key_boundary_t k;
   val_boundary_t v;
-  uint32_t max_rep_ct = 2;
+  uint32_t max_rep_ct  =  2;
   vector<key_boundary_t> vect_key_boundary;
   vector<val_boundary_st_t> vect_val_boundary;
   vect_key_boundary.clear();
@@ -437,17 +467,20 @@ TEST_F(BoundaryTest, ReadBulkInternal_04) {
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret =  KtboundaryObj.ReadBulkInternal(db_conn,&k,&v,UNC_DT_STATE,max_rep_ct,vect_key_boundary,vect_val_boundary);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  int ret = KtboundaryObj.ReadBulkInternal(
+    db_conn, &k, &v, UNC_DT_STATE, max_rep_ct,
+    vect_key_boundary, vect_val_boundary);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// Boundary  Delete on unsupported data type server sessio failed
+//  Boundary  Delete on unsupported data type server sessio failed
 TEST_F(BoundaryTest, Delete_01) {
   key_boundary_t k;
-  uint32_t session_id = 1;
-  uint32_t configuration_id = 2;
+  uint32_t session_id  =  1;
+  uint32_t configuration_id  =  2;
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
   ServerSession ses;
@@ -460,16 +493,18 @@ TEST_F(BoundaryTest, Delete_01) {
   ses.stub_setAddOutput((uint32_t)ODBCM_RC_SUCCESS);
   ses.stub_setAddOutput((uint32_t)UNC_DT_RUNNING);
   ses.stub_setAddOutput((uint32_t)UNC_KT_BOUNDARY);
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtboundaryObj.Delete(db_conn,session_id,configuration_id,&k,UNC_DT_RUNNING,ses);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = KtboundaryObj.Delete(
+    db_conn, session_id,
+                                 configuration_id, &k, UNC_DT_RUNNING, ses);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-// Boundary  Delete on unsupported data type server session pass
+//  Boundary  Delete on unsupported data type server session pass
 TEST_F(BoundaryTest, Delete_02) {
   key_boundary_t k;
-  uint32_t session_id = 1;
-  uint32_t configuration_id = 2;
+  uint32_t session_id  =  1;
+  uint32_t configuration_id  =  2;
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
   ServerSession ses;
@@ -479,20 +514,22 @@ TEST_F(BoundaryTest, Delete_02) {
   ses.stub_setAddOutput((uint32_t)0);
   ses.stub_setAddOutput((uint32_t)0);
   ses.stub_setAddOutput((uint32_t)0);
-  ses.stub_setAddOutput((uint32_t)UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
+  ses.stub_setAddOutput((uint32_t)UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
   ses.stub_setAddOutput((uint32_t)UNC_DT_RUNNING);
   ses.stub_setAddOutput((uint32_t)UNC_KT_BOUNDARY);
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtboundaryObj.Delete(db_conn,session_id,configuration_id,&k,UNC_DT_RUNNING,ses);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = KtboundaryObj.Delete(
+    db_conn, session_id,
+                                 configuration_id, &k, UNC_DT_RUNNING, ses);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 #if 0
-// DeleteOneRow returns ODBCM_RC_SUCCESS
+//  DeleteOneRow returns ODBCM_RC_SUCCESS
 TEST_F(BoundaryTest, Delete_03) {
   key_boundary_t k;
-  uint32_t session_id = 1;
-  uint32_t configuration_id = 2;
+  uint32_t session_id  =  1;
+  uint32_t configuration_id  =  2;
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
   ServerSession ses;
@@ -503,20 +540,22 @@ TEST_F(BoundaryTest, Delete_03) {
   ses.stub_setAddOutput((uint32_t)0);
   ses.stub_setAddOutput((uint32_t)0);
   ses.stub_setAddOutput((uint32_t)UPLL_IS_KEY_TYPE_IN_USE_OP);
-  ses.stub_setAddOutput((uint32_t)UPPL_RC_SUCCESS);
+  ses.stub_setAddOutput((uint32_t)UNC_RC_SUCCESS);
   ses.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
   ses.stub_setAddOutput((uint32_t)UNC_KT_BOUNDARY);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtboundaryObj.Delete(db_conn,session_id,configuration_id,&k,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = KtboundaryObj.Delete(
+    db_conn, session_id, configuration_id, &k, UNC_DT_CANDIDATE, ses);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// DeleteOneRow returns ODBCM_RC_CONNECTION_ERROR
+//  DeleteOneRow returns ODBCM_RC_CONNECTION_ERROR
 TEST_F(BoundaryTest, Delete_04) {
   key_boundary_t k;
-  uint32_t session_id = 1;
-  uint32_t configuration_id = 2;
+  uint32_t session_id  =  1;
+  uint32_t configuration_id  =  2;
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
   ServerSession ses;
@@ -526,21 +565,23 @@ TEST_F(BoundaryTest, Delete_04) {
   ses.stub_setAddOutput((uint32_t)0);
   ses.stub_setAddOutput((uint32_t)0);
   ses.stub_setAddOutput((uint32_t)0);
-  ses.stub_setAddOutput((uint32_t)UPPL_RC_ERR_DB_ACCESS);
+  ses.stub_setAddOutput((uint32_t)UNC_UPPL_RC_ERR_DB_ACCESS);
   ses.stub_setAddOutput((uint32_t)UPLL_IS_KEY_TYPE_IN_USE_OP);
   ses.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
   ses.stub_setAddOutput((uint32_t)UNC_KT_BOUNDARY);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_CONNECTION_ERROR);
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtboundaryObj.Delete(db_conn,session_id,configuration_id,&k,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_CONNECTION_ERROR);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = KtboundaryObj.Delete(
+    db_conn, session_id, configuration_id, &k, UNC_DT_CANDIDATE, ses);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// DeleteOneRow returns ODBCM_RC_ROW_NOT_EXISTS
+//  DeleteOneRow returns ODBCM_RC_ROW_NOT_EXISTS
 TEST_F(BoundaryTest, Delete_05) {
   key_boundary_t k;
-  uint32_t session_id = 1;
-  uint32_t configuration_id = 2;
+  uint32_t session_id  =  1;
+  uint32_t configuration_id  =  2;
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
   ServerSession ses;
@@ -550,20 +591,22 @@ TEST_F(BoundaryTest, Delete_05) {
   ses.stub_setAddOutput((uint32_t)0);
   ses.stub_setAddOutput((uint32_t)0);
   ses.stub_setAddOutput((uint32_t)0);
-  ses.stub_setAddOutput((uint32_t)UPPL_RC_ERR_NO_SUCH_INSTANCE);
+  ses.stub_setAddOutput((uint32_t)UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE);
   ses.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
   ses.stub_setAddOutput((uint32_t)UNC_KT_BOUNDARY);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtboundaryObj.Delete(db_conn,session_id,configuration_id,&k,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = KtboundaryObj.Delete(
+    db_conn, session_id, configuration_id, &k, UNC_DT_CANDIDATE, ses);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// DeleteOneRow returns ODBCM_RC_FAILED
+//  DeleteOneRow returns ODBCM_RC_FAILED
 TEST_F(BoundaryTest, Delete_06) {
   key_boundary_t k;
-  uint32_t session_id = 1;
-  uint32_t configuration_id = 2;
+  uint32_t session_id  =  1;
+  uint32_t configuration_id  =  2;
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
   ServerSession ses;
@@ -576,19 +619,21 @@ TEST_F(BoundaryTest, Delete_06) {
   ses.stub_setAddOutput((uint32_t)UPPL_RC_ERR_DB_DELETE);
   ses.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
   ses.stub_setAddOutput((uint32_t)UNC_KT_BOUNDARY);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_FAILED);
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtboundaryObj.Delete(db_conn,session_id,configuration_id,&k,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_FAILED);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = KtboundaryObj.Delete(
+    db_conn, session_id, configuration_id, &k, UNC_DT_CANDIDATE, ses);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 #endif
 
-// DeleteOneRow returns ODBCM_RC_FAILED
+//  DeleteOneRow returns ODBCM_RC_FAILED
 TEST_F(BoundaryTest, Delete_07) {
   key_boundary_t k;
-  uint32_t session_id = 1;
-  uint32_t configuration_id = 2;
+  uint32_t session_id  =  1;
+  uint32_t configuration_id  =  2;
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
   ServerSession ses;
@@ -598,16 +643,18 @@ TEST_F(BoundaryTest, Delete_07) {
   ses.stub_setAddOutput((uint32_t)0);
   ses.stub_setAddOutput((uint32_t)0);
   ses.stub_setAddOutput((uint32_t)0);
-  ses.stub_setAddOutput((uint32_t)UPPL_RC_SUCCESS);
+  ses.stub_setAddOutput((uint32_t)UNC_RC_SUCCESS);
   ses.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
   ses.stub_setAddOutput((uint32_t)UNC_KT_BOUNDARY);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_FAILED);
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtboundaryObj.Delete(db_conn,session_id,configuration_id,&k,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_FAILED);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = KtboundaryObj.Delete(
+    db_conn, session_id, configuration_id, &k, UNC_DT_CANDIDATE, ses);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-// ReadInternal success
+//  ReadInternal success
 TEST_F(BoundaryTest, ReadInternal_01) {
   key_boundary_t k;
   val_boundary_st_t v;
@@ -617,15 +664,17 @@ TEST_F(BoundaryTest, ReadInternal_01) {
   vector<void *> boundary_val;
   boundary_key.push_back(&k);
   boundary_val.push_back(&v);
-  uint32_t operation_type = UNC_OP_READ;
+  uint32_t operation_type  =  UNC_OP_READ;
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  KtboundaryObj.ReadInternal(db_conn,boundary_key,boundary_val,UNC_DT_STATE,operation_type);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret = KtboundaryObj.ReadInternal(
+    db_conn, boundary_key, boundary_val, UNC_DT_STATE, operation_type);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// ReadInternal operation_type != UNC_OP_READ
+//  ReadInternal operation_type ! =  UNC_OP_READ
 TEST_F(BoundaryTest, ReadInternal_02) {
   key_boundary_t k;
   val_boundary_t v;
@@ -635,15 +684,16 @@ TEST_F(BoundaryTest, ReadInternal_02) {
   vector<void *> boundary_val;
   boundary_key.push_back(&k);
   boundary_val.push_back(&v);
-  uint32_t operation_type = UNC_OP_CREATE;
+  uint32_t operation_type  =  UNC_OP_CREATE;
   Kt_Boundary  KtboundaryObj;
   ServerSession ses;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtboundaryObj.ReadInternal(db_conn,boundary_key,boundary_val,UNC_DT_STATE,operation_type);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = KtboundaryObj.ReadInternal(
+    db_conn, boundary_key, boundary_val, UNC_DT_STATE, operation_type);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// ReadBoundaryValFromDB returns failure
+//  ReadBoundaryValFromDB returns failure
 TEST_F(BoundaryTest, ReadInternal_03) {
   key_boundary_t k;
   val_boundary_t v;
@@ -653,205 +703,233 @@ TEST_F(BoundaryTest, ReadInternal_03) {
   vector<void *> boundary_val;
   boundary_key.push_back(&k);
   boundary_val.push_back(&v);
-  uint32_t operation_type = UNC_OP_READ;
+  uint32_t operation_type  =  UNC_OP_READ;
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  KtboundaryObj.ReadInternal(db_conn,boundary_key,boundary_val,UNC_DT_STATE,operation_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
+  int ret = KtboundaryObj.ReadInternal(
+    db_conn, boundary_key, boundary_val, UNC_DT_STATE, operation_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-// ReadBulk 
+//  ReadBulk
 TEST_F(BoundaryTest, ReadBulk_01) {
   key_boundary_t k;
   getKeyForKtBoundary1(k);
-  uint32_t max_rep_ct = 2;
-  int child_index = 1;
-  ReadRequest *read_req  = NULL;
+  uint32_t max_rep_ct  =  2;
+  int child_index  =  1;
+  ReadRequest *read_req   =  NULL;
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtboundaryObj.ReadBulk(db_conn,&k,UNC_DT_IMPORT,max_rep_ct,child_index,(pfc_bool_t)false,(pfc_bool_t)false,read_req);
-  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = KtboundaryObj.ReadBulk(
+    db_conn, &k, UNC_DT_IMPORT, max_rep_ct,
+    child_index,
+    (pfc_bool_t)false, (pfc_bool_t)false, read_req);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
-// ReadBulk 
+//  ReadBulk
 TEST_F(BoundaryTest, ReadBulk_02) {
   key_boundary_t k;
   getKeyForKtBoundary1(k);
-  uint32_t max_rep_ct = 0;
-  int child_index = 1;
-  ReadRequest *read_req  = NULL;
+  uint32_t max_rep_ct  =  0;
+  int child_index  =  1;
+  ReadRequest *read_req   =  NULL;
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtboundaryObj.ReadBulk(db_conn,&k,UNC_DT_CANDIDATE,max_rep_ct,child_index,(pfc_bool_t)false,(pfc_bool_t)false,read_req);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = KtboundaryObj.ReadBulk(
+    db_conn, &k, UNC_DT_CANDIDATE, max_rep_ct,
+    child_index,
+    (pfc_bool_t)false, (pfc_bool_t)false, read_req);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// ReadBulk 
+//  ReadBulk
 TEST_F(BoundaryTest, ReadBulk_03) {
   key_boundary_t k;
   getKeyForKtBoundary1(k);
-  uint32_t max_rep_ct = 1;
-  int child_index = 1;
+  uint32_t max_rep_ct  =  1;
+  int child_index  =  1;
   ReadRequest read_req;
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret =  KtboundaryObj.ReadBulk(db_conn,&k,UNC_DT_CANDIDATE,max_rep_ct,child_index,(pfc_bool_t)false,(pfc_bool_t)false,&read_req);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  int ret = KtboundaryObj.ReadBulk(
+    db_conn, &k, UNC_DT_CANDIDATE, max_rep_ct, child_index,
+    (pfc_bool_t)false, (pfc_bool_t)false, &read_req);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// ReadBulk 
+//  ReadBulk
 TEST_F(BoundaryTest, ReadBulk_04) {
   key_boundary_t k;
   getKeyForKtBoundary1(k);
-  uint32_t max_rep_ct = 2;
-  int child_index = 1;
+  uint32_t max_rep_ct  =  2;
+  int child_index  =  1;
   ReadRequest read_req;
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret =  KtboundaryObj.ReadBulk(db_conn,&k,UNC_DT_STATE,max_rep_ct,child_index,(pfc_bool_t)false,(pfc_bool_t)false,&read_req);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  int ret = KtboundaryObj.ReadBulk(
+    db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index,
+    (pfc_bool_t)false, (pfc_bool_t)false, &read_req);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// ReadBulk 
+//  ReadBulk
 TEST_F(BoundaryTest, ReadBulk_05) {
   key_boundary_t k;
   getKeyForKtBoundary1(k);
-  uint32_t max_rep_ct = 1;
-  int child_index = 1;
+  uint32_t max_rep_ct  =  1;
+  int child_index  =  1;
   ReadRequest read_req;
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  KtboundaryObj.ReadBulk(db_conn,&k,UNC_DT_STATE,max_rep_ct,child_index,(pfc_bool_t)false,(pfc_bool_t)false,&read_req);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
+  int ret = KtboundaryObj.ReadBulk(
+    db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index,
+    (pfc_bool_t)false, (pfc_bool_t)false, &read_req);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-// ReadBulk 
+//  ReadBulk
 TEST_F(BoundaryTest, ReadBulk_06) {
   key_boundary_t k;
   getKeyForKtBoundary1(k);
-  uint32_t max_rep_ct = 1;
-  int child_index = 1;
+  uint32_t max_rep_ct  =  1;
+  int child_index  =  1;
   ReadRequest read_req;
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
-  int ret =  KtboundaryObj.ReadBulk(db_conn,&k,UNC_DT_STATE,max_rep_ct,child_index,(pfc_bool_t)false,(pfc_bool_t)false,&read_req);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
+  int ret = KtboundaryObj.ReadBulk(
+    db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index,
+    (pfc_bool_t)false, (pfc_bool_t)false, &read_req);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// PerformSyntaxValidation returns success
+//  PerformSyntaxValidation returns success
 TEST_F(BoundaryTest, PerformSyntaxValidation_01) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
-  uint32_t operation_type = UNC_OP_READ;
+  uint32_t operation_type  =  UNC_OP_READ;
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtboundaryObj.PerformSyntaxValidation(db_conn,&k,&v,operation_type,UNC_DT_CANDIDATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = KtboundaryObj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation_type, UNC_DT_CANDIDATE);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// PerformSyntaxValidation without boundary name
+//  PerformSyntaxValidation without boundary name
 TEST_F(BoundaryTest, PerformSyntaxValidation_02) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary0(k);
-  uint32_t operation_type = UNC_OP_READ;
+  uint32_t operation_type  =  UNC_OP_READ;
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtboundaryObj.PerformSyntaxValidation(db_conn,&k,&v,operation_type,UNC_DT_CANDIDATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = KtboundaryObj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation_type, UNC_DT_CANDIDATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-// PerformSyntaxValidation without controller name1
+//  PerformSyntaxValidation without controller name1
 TEST_F(BoundaryTest, PerformSyntaxValidation_03) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   memset(v.controller_name1, '\0', 32);
-  uint32_t operation_type = UNC_OP_READ;
+  uint32_t operation_type  =  UNC_OP_READ;
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtboundaryObj.PerformSyntaxValidation(db_conn,&k,&v,operation_type,UNC_DT_CANDIDATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = KtboundaryObj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation_type, UNC_DT_CANDIDATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
-// PerformSyntaxValidation without controller name2
+//  PerformSyntaxValidation without controller name2
 TEST_F(BoundaryTest, PerformSyntaxValidation_04) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   memset(v.controller_name2, '\0', 32);
-  uint32_t operation_type = UNC_OP_READ;
+  uint32_t operation_type  =  UNC_OP_READ;
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtboundaryObj.PerformSyntaxValidation(db_conn,&k,&v,operation_type,UNC_DT_CANDIDATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = KtboundaryObj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation_type, UNC_DT_CANDIDATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-// PerformSyntaxValidation without domain name1
+//  PerformSyntaxValidation without domain name1
 TEST_F(BoundaryTest, PerformSyntaxValidation_05) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   memset(v.domain_name1, '\0', 32);
-  uint32_t operation_type = UNC_OP_READ;
+  uint32_t operation_type  =  UNC_OP_READ;
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtboundaryObj.PerformSyntaxValidation(db_conn,&k,&v,operation_type,UNC_DT_CANDIDATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = KtboundaryObj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation_type, UNC_DT_CANDIDATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
-// PerformSyntaxValidation without domain name2
+//  PerformSyntaxValidation without domain name2
 TEST_F(BoundaryTest, PerformSyntaxValidation_06) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   memset(v.domain_name2, '\0', 32);
-  uint32_t operation_type = UNC_OP_READ;
+  uint32_t operation_type  =  UNC_OP_READ;
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtboundaryObj.PerformSyntaxValidation(db_conn,&k,&v,operation_type,UNC_DT_CANDIDATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = KtboundaryObj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation_type, UNC_DT_CANDIDATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
-// PerformSyntaxValidation returns success
+//  PerformSyntaxValidation returns success
 TEST_F(BoundaryTest, PerformSyntaxValidation_07) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
-  uint32_t operation_type = UNC_OP_UPDATE;
+  uint32_t operation_type  =  UNC_OP_UPDATE;
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtboundaryObj.PerformSyntaxValidation(db_conn,&k,&v,operation_type,UNC_DT_CANDIDATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = KtboundaryObj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation_type, UNC_DT_CANDIDATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-// PerformSyntaxValidation returns success
+//  PerformSyntaxValidation returns success
 TEST_F(BoundaryTest, PerformSyntaxValidation_08) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
-  uint32_t operation_type = UNC_OP_READ_SIBLING_BEGIN;
+  uint32_t operation_type  =  UNC_OP_READ_SIBLING_BEGIN;
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtboundaryObj.PerformSyntaxValidation(db_conn,&k,&v,operation_type,UNC_DT_CANDIDATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = KtboundaryObj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation_type, UNC_DT_CANDIDATE);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// GETONEROW returns ODBCM_RC_RECORD_NOT_FOUND 
+//  GETONEROW returns ODBCM_RC_RECORD_NOT_FOUND
 TEST_F(BoundaryTest, ReadBoundaryValFromDB_01) {
   key_boundary_t k;
   val_boundary_t v;
-  uint32_t max_rep_ct = 2;
+  uint32_t max_rep_ct  =  2;
   vector<key_boundary_t> vect_key_boundary;
   vector<val_boundary_st_t> vect_val_boundary;
   vect_key_boundary.clear();
@@ -859,17 +937,20 @@ TEST_F(BoundaryTest, ReadBoundaryValFromDB_01) {
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_RECORD_NOT_FOUND);
-  int ret =  KtboundaryObj.ReadBoundaryValFromDB(db_conn,&k,&v,UNC_DT_STATE,UNC_OP_READ,max_rep_ct,vect_key_boundary,vect_val_boundary,false);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_RECORD_NOT_FOUND);
+  int ret = KtboundaryObj.ReadBoundaryValFromDB(
+    db_conn, &k, &v, UNC_DT_STATE, UNC_OP_READ, max_rep_ct,
+    vect_key_boundary, vect_val_boundary, false);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-// GETONEROW returns ODBCM_RC_CONNECTION_ERROR 
+//  GETONEROW returns ODBCM_RC_CONNECTION_ERROR
 TEST_F(BoundaryTest, ReadBoundaryValFromDB_02) {
   key_boundary_t k;
   val_boundary_t v;
-  uint32_t max_rep_ct = 2;
+  uint32_t max_rep_ct  =  2;
   vector<key_boundary_t> vect_key_boundary;
   vector<val_boundary_st_t> vect_val_boundary;
   vect_key_boundary.clear();
@@ -877,17 +958,20 @@ TEST_F(BoundaryTest, ReadBoundaryValFromDB_02) {
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  KtboundaryObj.ReadBoundaryValFromDB(db_conn,&k,&v,UNC_DT_STATE,UNC_OP_READ,max_rep_ct,vect_key_boundary,vect_val_boundary,false);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
+  int ret = KtboundaryObj.ReadBoundaryValFromDB(
+    db_conn, &k, &v, UNC_DT_STATE, UNC_OP_READ, max_rep_ct,
+    vect_key_boundary, vect_val_boundary, false);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-// GETONEROW returns ODBCM_RC_FAILED 
+//  GETONEROW returns ODBCM_RC_FAILED
 TEST_F(BoundaryTest, ReadBoundaryValFromDB_03) {
   key_boundary_t k;
   val_boundary_t v;
-  uint32_t max_rep_ct = 2;
+  uint32_t max_rep_ct  =  2;
   vector<key_boundary_t> vect_key_boundary;
   vector<val_boundary_st_t> vect_val_boundary;
   vect_key_boundary.clear();
@@ -895,17 +979,20 @@ TEST_F(BoundaryTest, ReadBoundaryValFromDB_03) {
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  int ret =  KtboundaryObj.ReadBoundaryValFromDB(db_conn,&k,&v,UNC_DT_STATE,UNC_OP_READ,max_rep_ct,vect_key_boundary,vect_val_boundary,false);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  int ret = KtboundaryObj.ReadBoundaryValFromDB(
+    db_conn, &k, &v, UNC_DT_STATE, UNC_OP_READ, max_rep_ct,
+    vect_key_boundary, vect_val_boundary, false);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
-// GETBULKROWS returns ODBCM_RC_RECORD_NOT_FOUND 
+//  GETBULKROWS returns ODBCM_RC_RECORD_NOT_FOUND
 TEST_F(BoundaryTest, ReadBoundaryValFromDB_04) {
   key_boundary_t k;
   val_boundary_t v;
-  uint32_t max_rep_ct = 2;
+  uint32_t max_rep_ct  =  2;
   vector<key_boundary_t> vect_key_boundary;
   vector<val_boundary_st_t> vect_val_boundary;
   vect_key_boundary.clear();
@@ -913,17 +1000,20 @@ TEST_F(BoundaryTest, ReadBoundaryValFromDB_04) {
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
-  int ret =  KtboundaryObj.ReadBoundaryValFromDB(db_conn,&k,&v,UNC_DT_STATE,UNC_OP_READ_NEXT,max_rep_ct,vect_key_boundary,vect_val_boundary,false);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
+  int ret = KtboundaryObj.ReadBoundaryValFromDB(
+    db_conn, &k, &v, UNC_DT_STATE, UNC_OP_READ_NEXT, max_rep_ct,
+    vect_key_boundary, vect_val_boundary, false);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-// GETBULKROWS returns ODBCM_RC_CONNECTION_ERROR 
+//  GETBULKROWS returns ODBCM_RC_CONNECTION_ERROR
 TEST_F(BoundaryTest, ReadBoundaryValFromDB_05) {
   key_boundary_t k;
   val_boundary_t v;
-  uint32_t max_rep_ct = 2;
+  uint32_t max_rep_ct  =  2;
   vector<key_boundary_t> vect_key_boundary;
   vector<val_boundary_st_t> vect_val_boundary;
   vect_key_boundary.clear();
@@ -931,17 +1021,20 @@ TEST_F(BoundaryTest, ReadBoundaryValFromDB_05) {
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  KtboundaryObj.ReadBoundaryValFromDB(db_conn,&k,&v,UNC_DT_STATE,UNC_OP_READ_NEXT,max_rep_ct,vect_key_boundary,vect_val_boundary,false);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
+  int ret = KtboundaryObj.ReadBoundaryValFromDB(
+    db_conn, &k, &v, UNC_DT_STATE, UNC_OP_READ_NEXT, max_rep_ct,
+    vect_key_boundary, vect_val_boundary, false);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-// GETBULKROWS returns ODBCM_RC_FAILED 
+//  GETBULKROWS returns ODBCM_RC_FAILED
 TEST_F(BoundaryTest, ReadBoundaryValFromDB_06) {
   key_boundary_t k;
   val_boundary_t v;
-  uint32_t max_rep_ct = 2;
+  uint32_t max_rep_ct  =  2;
   vector<key_boundary_t> vect_key_boundary;
   vector<val_boundary_st_t> vect_val_boundary;
   vect_key_boundary.clear();
@@ -949,17 +1042,20 @@ TEST_F(BoundaryTest, ReadBoundaryValFromDB_06) {
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
-  int ret =  KtboundaryObj.ReadBoundaryValFromDB(db_conn,&k,&v,UNC_DT_STATE,UNC_OP_READ_NEXT,max_rep_ct,vect_key_boundary,vect_val_boundary,false);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
+  int ret = KtboundaryObj.ReadBoundaryValFromDB(
+    db_conn, &k, &v, UNC_DT_STATE, UNC_OP_READ_NEXT, max_rep_ct,
+    vect_key_boundary, vect_val_boundary, false);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
-//  operation_type < UNC_OP_READ
+//   operation_type < UNC_OP_READ
 TEST_F(BoundaryTest, ReadBoundaryValFromDB_07) {
   key_boundary_t k;
   val_boundary_t v;
-  uint32_t max_rep_ct = 2;
+  uint32_t max_rep_ct  =  2;
   vector<key_boundary_t> vect_key_boundary;
   vector<val_boundary_st_t> vect_val_boundary;
   vect_key_boundary.clear();
@@ -967,286 +1063,339 @@ TEST_F(BoundaryTest, ReadBoundaryValFromDB_07) {
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtboundaryObj.ReadBoundaryValFromDB(db_conn,&k,&v,UNC_DT_STATE,UNC_OP_CREATE,max_rep_ct,vect_key_boundary,vect_val_boundary,false);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = KtboundaryObj.ReadBoundaryValFromDB(
+    db_conn, &k, &v, UNC_DT_STATE, UNC_OP_CREATE, max_rep_ct,
+    vect_key_boundary, vect_val_boundary, false);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// GetModifiedRows returns ODBCM_RC_RECORD_NOT_FOUND 
+//  GetModifiedRows returns ODBCM_RC_RECORD_NOT_FOUND
 TEST_F(BoundaryTest, GetModifiedRows_01) {
   vector<void *> obj_key_struct;
   obj_key_struct.clear();
-  CsRowStatus row_status = UPDATED; 
+  CsRowStatus row_status  =  UPDATED;
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETMODIFIEDROWS, ODBCM_RC_RECORD_NOT_FOUND);
-  int ret =  KtboundaryObj.GetModifiedRows(db_conn,obj_key_struct,row_status);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETMODIFIEDROWS, ODBCM_RC_RECORD_NOT_FOUND);
+  int ret = KtboundaryObj.GetModifiedRows(db_conn, obj_key_struct, row_status);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-// GetModifiedRows returns ODBCM_RC_CONNECTION_ERROR 
+//  GetModifiedRows returns ODBCM_RC_CONNECTION_ERROR
 TEST_F(BoundaryTest, GetModifiedRows_02) {
   vector<void *> obj_key_struct;
   obj_key_struct.clear();
-  CsRowStatus row_status = UPDATED; 
+  CsRowStatus row_status  =  UPDATED;
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETMODIFIEDROWS, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  KtboundaryObj.GetModifiedRows(db_conn,obj_key_struct,row_status);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETMODIFIEDROWS, ODBCM_RC_CONNECTION_ERROR);
+  int ret = KtboundaryObj.GetModifiedRows(db_conn, obj_key_struct, row_status);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-// GetModifiedRows returns ODBCM_RC_SUCCESS 
+//  GetModifiedRows returns ODBCM_RC_SUCCESS
 TEST_F(BoundaryTest, GetModifiedRows_03) {
   vector<void *> obj_key_struct;
   obj_key_struct.clear();
-  CsRowStatus row_status = UPDATED; 
+  CsRowStatus row_status  =  UPDATED;
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETMODIFIEDROWS, ODBCM_RC_SUCCESS);
-  int ret =  KtboundaryObj.GetModifiedRows(db_conn,obj_key_struct,row_status);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETMODIFIEDROWS, ODBCM_RC_SUCCESS);
+  int ret = KtboundaryObj.GetModifiedRows(db_conn, obj_key_struct, row_status);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// GetModifiedRows returns ODBCM_RC_FAILED 
+//  GetModifiedRows returns ODBCM_RC_FAILED
 TEST_F(BoundaryTest, GetModifiedRows_04) {
   vector<void *> obj_key_struct;
   obj_key_struct.clear();
-  CsRowStatus row_status = UPDATED; 
+  CsRowStatus row_status  =  UPDATED;
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETMODIFIEDROWS, ODBCM_RC_FAILED);
-  int ret =  KtboundaryObj.GetModifiedRows(db_conn,obj_key_struct,row_status);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETMODIFIEDROWS, ODBCM_RC_FAILED);
+  int ret = KtboundaryObj.GetModifiedRows(db_conn, obj_key_struct, row_status);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
-// IsKeyExists with empty vector 
+//  IsKeyExists with empty vector
 TEST_F(BoundaryTest, IsKeyExists_01) {
   vector<string> obj_key_struct;
   obj_key_struct.clear();
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtboundaryObj.IsKeyExists(db_conn,UNC_DT_CANDIDATE,obj_key_struct);
-  EXPECT_EQ(UPPL_RC_ERR_BAD_REQUEST, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = KtboundaryObj.IsKeyExists(
+    db_conn, UNC_DT_CANDIDATE, obj_key_struct);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_BAD_REQUEST, ret);
 }
 
-// IsRowExists returns  ODBCM_RC_CONNECTION_ERROR
+//  IsRowExists returns  ODBCM_RC_CONNECTION_ERROR
 TEST_F(BoundaryTest, IsKeyExists_02) {
   vector<string> obj_key_struct;
   obj_key_struct.clear();
-  string BD1 = "boundary1";
+  string BD1  =  "boundary1";
   obj_key_struct.push_back(BD1);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  KtboundaryObj.IsKeyExists(db_conn,UNC_DT_CANDIDATE,obj_key_struct);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
+  int ret = KtboundaryObj.IsKeyExists(
+    db_conn, UNC_DT_CANDIDATE, obj_key_struct);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-// IsRowExists returns  ODBCM_RC_ROW_EXISTS
+//  IsRowExists returns  ODBCM_RC_ROW_EXISTS
 TEST_F(BoundaryTest, IsKeyExists_03) {
   vector<string> obj_key_struct;
   obj_key_struct.clear();
-  string BD1 = "boundary1";
+  string BD1  =  "boundary1";
   obj_key_struct.push_back(BD1);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  int ret =  KtboundaryObj.IsKeyExists(db_conn,UNC_DT_CANDIDATE,obj_key_struct);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret = KtboundaryObj.IsKeyExists(
+    db_conn, UNC_DT_CANDIDATE, obj_key_struct);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// IsRowExists returns  ODBCM_RC_FAILED
+//  IsRowExists returns  ODBCM_RC_FAILED
 TEST_F(BoundaryTest, IsKeyExists_04) {
   vector<string> obj_key_struct;
   obj_key_struct.clear();
-  string BD1 = "boundary1";
+  string BD1  =  "boundary1";
   obj_key_struct.push_back(BD1);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_FAILED);
-  int ret =  KtboundaryObj.IsKeyExists(db_conn,UNC_DT_CANDIDATE,obj_key_struct);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_FAILED);
+  int ret = KtboundaryObj.IsKeyExists(
+    db_conn, UNC_DT_CANDIDATE, obj_key_struct);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
-// PerformSemanticValidation with UNC_OP_CREATE
+//  PerformSemanticValidation with UNC_OP_CREATE
 TEST_F(BoundaryTest, PerformSemanticValidation_01) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  int ret =  KtboundaryObj.PerformSemanticValidation(db_conn,&k,&v,UNC_OP_CREATE,UNC_DT_CANDIDATE);
-  EXPECT_EQ(UPPL_RC_ERR_INSTANCE_EXISTS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret = KtboundaryObj.PerformSemanticValidation(
+    db_conn, &k, &v, UNC_OP_CREATE, UNC_DT_CANDIDATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_INSTANCE_EXISTS, ret);
 }
 
-// IsKeyExists returns ODBCM_RC_CONNECTION_ERROR
+//  IsKeyExists returns ODBCM_RC_CONNECTION_ERROR
 TEST_F(BoundaryTest, PerformSemanticValidation_02) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  KtboundaryObj.PerformSemanticValidation(db_conn,&k,&v,UNC_OP_CREATE,UNC_DT_CANDIDATE);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
+  int ret = KtboundaryObj.PerformSemanticValidation(
+    db_conn, &k, &v, UNC_OP_CREATE, UNC_DT_CANDIDATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-// PerformSemanticValidation with UNC_OP_UPDATE
+//  PerformSemanticValidation with UNC_OP_UPDATE
 TEST_F(BoundaryTest, PerformSemanticValidation_03) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  KtboundaryObj.PerformSemanticValidation(db_conn,&k,&v,UNC_OP_UPDATE,UNC_DT_CANDIDATE);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
+  int ret = KtboundaryObj.PerformSemanticValidation(
+    db_conn, &k, &v, UNC_OP_UPDATE, UNC_DT_CANDIDATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-// PerformSemanticValidation with UNC_OP_DELETE
+//  PerformSemanticValidation with UNC_OP_DELETE
 TEST_F(BoundaryTest, PerformSemanticValidation_04) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  KtboundaryObj.PerformSemanticValidation(db_conn,&k,&v,UNC_OP_DELETE,UNC_DT_CANDIDATE);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
+  int ret = KtboundaryObj.PerformSemanticValidation(
+    db_conn, &k, &v, UNC_OP_DELETE, UNC_DT_CANDIDATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-// PerformSemanticValidation with UNC_OP_READ
+//  PerformSemanticValidation with UNC_OP_READ
 TEST_F(BoundaryTest, PerformSemanticValidation_05) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  KtboundaryObj.PerformSemanticValidation(db_conn,&k,&v,UNC_OP_READ,UNC_DT_CANDIDATE);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
+  int ret = KtboundaryObj.PerformSemanticValidation(
+    db_conn, &k, &v, UNC_OP_READ, UNC_DT_CANDIDATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-// PerformSemanticValidation with UNC_OP_UPDATE and IsKeyExists returns ODBCM_RC_ROW_NOT_EXISTS
+//  PerformSemanticValidation with UNC_OP_UPDATE and
+//  IsKeyExists returns ODBCM_RC_ROW_NOT_EXISTS
 TEST_F(BoundaryTest, PerformSemanticValidation_06) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_NOT_EXISTS);
-  int ret =  KtboundaryObj.PerformSemanticValidation(db_conn,&k,&v,UNC_OP_UPDATE,UNC_DT_CANDIDATE);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_NOT_EXISTS);
+  int ret = KtboundaryObj.PerformSemanticValidation(
+    db_conn, &k, &v, UNC_OP_UPDATE, UNC_DT_CANDIDATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-// PerformSemanticValidation with UNC_OP_DELETE and IsKeyExists returns ODBCM_RC_ROW_NOT_EXISTS
+//  PerformSemanticValidation with UNC_OP_DELETE and
+//  IsKeyExists returns ODBCM_RC_ROW_NOT_EXISTS
 TEST_F(BoundaryTest, PerformSemanticValidation_07) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_NOT_EXISTS);
-  int ret =  KtboundaryObj.PerformSemanticValidation(db_conn,&k,&v,UNC_OP_DELETE,UNC_DT_CANDIDATE);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_NOT_EXISTS);
+  int ret = KtboundaryObj.PerformSemanticValidation(
+    db_conn, &k, &v, UNC_OP_DELETE, UNC_DT_CANDIDATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-// PerformSemanticValidation with UNC_OP_READ and IsKeyExists returns ODBCM_RC_ROW_NOT_EXISTS
+//  PerformSemanticValidation with UNC_OP_READ and
+//  IsKeyExists returns ODBCM_RC_ROW_NOT_EXISTS
 TEST_F(BoundaryTest, PerformSemanticValidation_08) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_NOT_EXISTS);
-  int ret =  KtboundaryObj.PerformSemanticValidation(db_conn,&k,&v,UNC_OP_READ,UNC_DT_CANDIDATE);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_NOT_EXISTS);
+  int ret = KtboundaryObj.PerformSemanticValidation(
+    db_conn, &k, &v, UNC_OP_READ, UNC_DT_CANDIDATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-// PerformSemanticValidation with UNC_OP_UPDATE and IsKeyExists returns ODBCM_RC_ROW_EXISTS
+//  PerformSemanticValidation with UNC_OP_UPDATE and
+//  IsKeyExists returns ODBCM_RC_ROW_EXISTS
 TEST_F(BoundaryTest, PerformSemanticValidation_09) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
-  int ret =  KtboundaryObj.PerformSemanticValidation(db_conn,&k,&v,UNC_OP_UPDATE,UNC_DT_CANDIDATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
+  int ret = KtboundaryObj.PerformSemanticValidation(
+    db_conn, &k, &v, UNC_OP_UPDATE, UNC_DT_CANDIDATE);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// controller1 == controller2 && domain1 == domain2
+//  controller1  =  =  controller2 && domain1  =  =  domain2
 TEST_F(BoundaryTest, PerformSemanticValidation_10) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
   getValForKtBoundary5(v);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
-  int ret =  KtboundaryObj.PerformSemanticValidation(db_conn,&k,&v,UNC_OP_UPDATE,UNC_DT_CANDIDATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SEMANTIC, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
+  int ret = KtboundaryObj.PerformSemanticValidation(
+    db_conn, &k, &v, UNC_OP_UPDATE, UNC_DT_CANDIDATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SEMANTIC, ret);
 }
 
-// Val struct NULL
+//  Val struct NULL
 TEST_F(BoundaryTest, PerformSemanticValidation_11) {
   key_boundary_t k;
-  val_boundary_t *v = NULL;
+  val_boundary_t *v  =  NULL;
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
-  int ret =  KtboundaryObj.PerformSemanticValidation(db_conn,&k,v,UNC_OP_UPDATE,UNC_DT_CANDIDATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
+  int ret = KtboundaryObj.PerformSemanticValidation(
+    db_conn, &k, v, UNC_OP_UPDATE, UNC_DT_CANDIDATE);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// PerformSemanticValidation with UNC_OP_DELETE and IsKeyExists returns ODBCM_RC_ROW_EXISTS
+//  PerformSemanticValidation with UNC_OP_DELETE
+//  and IsKeyExists returns ODBCM_RC_ROW_EXISTS
 TEST_F(BoundaryTest, PerformSemanticValidation_12) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
-  int ret =  KtboundaryObj.PerformSemanticValidation(db_conn,&k,&v,UNC_OP_DELETE,UNC_DT_CANDIDATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
+  int ret = KtboundaryObj.PerformSemanticValidation(
+    db_conn, &k, &v, UNC_OP_DELETE, UNC_DT_CANDIDATE);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// Getctr type failure
+//  Getctr type failure
 TEST_F(BoundaryTest, PerformSemanticValidation_13) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  int ret =  KtboundaryObj.PerformSemanticValidation(db_conn,&k,&v,UNC_OP_UPDATE,UNC_DT_CANDIDATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SEMANTIC, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  int ret = KtboundaryObj.PerformSemanticValidation(
+    db_conn, &k, &v, UNC_OP_UPDATE, UNC_DT_CANDIDATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SEMANTIC, ret);
 }
 
-// Domain1 name Default
+//  Domain1 name Default
 TEST_F(BoundaryTest, PerformSemanticValidation_14) {
   key_boundary_t k;
   val_boundary_t v;
@@ -1255,14 +1404,17 @@ TEST_F(BoundaryTest, PerformSemanticValidation_14) {
   memset(v.domain_name1, '\0', 32);
   memcpy(v.domain_name1, "(DEFAULT)", strlen("(DEFAULT)"));
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  KtboundaryObj.PerformSemanticValidation(db_conn,&k,&v,UNC_OP_UPDATE,UNC_DT_CANDIDATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SEMANTIC, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret = KtboundaryObj.PerformSemanticValidation(
+    db_conn, &k, &v, UNC_OP_UPDATE, UNC_DT_CANDIDATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SEMANTIC, ret);
 }
 
-// Domain2 name Default
+//  Domain2 name Default
 TEST_F(BoundaryTest, PerformSemanticValidation_15) {
   key_boundary_t k;
   val_boundary_t v;
@@ -1271,217 +1423,235 @@ TEST_F(BoundaryTest, PerformSemanticValidation_15) {
   memset(v.domain_name2, '\0', 32);
   memcpy(v.domain_name2, "(DEFAULT)", strlen("(DEFAULT)"));
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  KtboundaryObj.PerformSemanticValidation(db_conn,&k,&v,UNC_OP_UPDATE,UNC_DT_CANDIDATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SEMANTIC, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret = KtboundaryObj.PerformSemanticValidation(
+    db_conn, &k, &v, UNC_OP_UPDATE, UNC_DT_CANDIDATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SEMANTIC, ret);
 }
 
-// ValidateSiblingFiltering
+//  ValidateSiblingFiltering
 TEST_F(BoundaryTest, ValidateSiblingFiltering_01) {
   Kt_Boundary  KtboundaryObj;
-  int ret =  KtboundaryObj.ValidateSiblingFiltering(0,0,1,1);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  int ret = KtboundaryObj.ValidateSiblingFiltering(0, 0, 1, 1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-// ValidateSiblingFiltering
+//  ValidateSiblingFiltering
 TEST_F(BoundaryTest, ValidateSiblingFiltering_02) {
   Kt_Boundary  KtboundaryObj;
-  int ret =  KtboundaryObj.ValidateSiblingFiltering(1,0,0,1);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  int ret = KtboundaryObj.ValidateSiblingFiltering(1, 0, 0, 1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-// ValidateSiblingFiltering
+//  ValidateSiblingFiltering
 TEST_F(BoundaryTest, ValidateSiblingFiltering_03) {
   Kt_Boundary  KtboundaryObj;
-  int ret =  KtboundaryObj.ValidateSiblingFiltering(1,1,1,1);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = KtboundaryObj.ValidateSiblingFiltering(1, 1, 1, 1);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
-// SendOperStatusNotification Success
+//  SendOperStatusNotification Success
 TEST_F(BoundaryTest, SendOperStatusNotification_01) {
   key_boundary_t k;
   getKeyForKtBoundary1(k);
-  uint8_t old_oper_st = 1;
-  uint8_t new_oper_st = 0;
+  uint8_t old_oper_st  =  1;
+  uint8_t new_oper_st  =  0;
   ServerSession ses;
   ses.stub_setAddOutput((uint32_t)UNC_OP_UPDATE);
   ses.stub_setAddOutput((uint32_t)UNC_DT_STATE);
   ses.stub_setAddOutput((uint32_t)UNC_KT_BOUNDARY);
   Kt_Boundary  KtboundaryObj;
-  int ret =  KtboundaryObj.SendOperStatusNotification(k,old_oper_st,new_oper_st);
-  EXPECT_EQ(UPPL_RC_FAILURE, ret);
+  int ret = KtboundaryObj.SendOperStatusNotification(
+    k, old_oper_st, new_oper_st);
+  EXPECT_EQ(UNC_UPPL_RC_FAILURE, ret);
 }
 
-// SendOperStatusNotification Failure
+//  SendOperStatusNotification Failure
 TEST_F(BoundaryTest, SendOperStatusNotification_02) {
   key_boundary_t k;
   getKeyForKtBoundary1(k);
-  uint8_t old_oper_st = 1;
-  uint8_t new_oper_st = 0;
+  uint8_t old_oper_st  =  1;
+  uint8_t new_oper_st  =  0;
   ServerSession ses;
   ses.stub_setAddOutput((uint32_t)UNC_OP_UPDATE);
   ses.stub_setAddOutput((uint32_t)UNC_KT_BOUNDARY);
   Kt_Boundary  KtboundaryObj;
-  int ret =  KtboundaryObj.SendOperStatusNotification(k,old_oper_st,new_oper_st);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret = KtboundaryObj.SendOperStatusNotification(
+    k, old_oper_st, new_oper_st);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-// GetAllBoundaryOperStatus success
+//  GetAllBoundaryOperStatus success
 TEST_F(BoundaryTest, GetAllBoundaryOperStatus_01) {
-  string ctr_name = "controller1";
-  string domain = "domain1";
-  string lp_name = "logical_port1";
+  string ctr_name  =  "controller1";
+  string domain  =  "domain1";
+  string lp_name  =  "logical_port1";
   map<string, uint8_t> bdry_notfn;
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret =  KtboundaryObj.GetAllBoundaryOperStatus(db_conn,ctr_name,domain,lp_name,bdry_notfn,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  int ret = KtboundaryObj.GetAllBoundaryOperStatus(
+    db_conn, ctr_name, domain, lp_name, bdry_notfn, UNC_DT_STATE);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// GetAllBoundaryOperStatus Failure
+//  GetAllBoundaryOperStatus Failure
 TEST_F(BoundaryTest, GetAllBoundaryOperStatus_02) {
-  string ctr_name = "controller1";
-  string domain = "domain1";
-  string lp_name = "logical_port1";
+  string ctr_name  =  "controller1";
+  string domain  =  "domain1";
+  string lp_name  =  "logical_port1";
   map<string, uint8_t> bdry_notfn;
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
-  int ret =  KtboundaryObj.GetAllBoundaryOperStatus(db_conn,ctr_name,domain,lp_name,bdry_notfn,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
+  int ret = KtboundaryObj.GetAllBoundaryOperStatus(
+    db_conn, ctr_name, domain, lp_name, bdry_notfn, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
-// CheckBoundaryExistence 
+//  CheckBoundaryExistence
 TEST_F(BoundaryTest, CheckBoundaryExistence_01) {
   key_boundary_t k;
   val_boundary_t v;
   getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
   Kt_Boundary  KtboundaryObj;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtboundaryObj.CheckBoundaryExistence(db_conn,&k,&v,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SEMANTIC, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = KtboundaryObj.CheckBoundaryExistence(db_conn, &k, &v, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SEMANTIC, ret);
 }
 
-// GetOperStatus success 
+//  GetOperStatus success
 TEST_F(BoundaryTest, GetOperStatus_01) {
   key_boundary_t k;
-  uint8_t oper_status = 0;
+  uint8_t oper_status  =  0;
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtboundaryObj.GetOperStatus(db_conn,UNC_DT_STATE,&k,oper_status);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = KtboundaryObj.GetOperStatus(db_conn, UNC_DT_STATE, &k, oper_status);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// GetOperStatus Failure 
+//  GetOperStatus Failure
 TEST_F(BoundaryTest, GetOperStatus_02) {
   key_boundary_t k;
-  uint8_t oper_status = 0;
+  uint8_t oper_status  =  0;
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtboundaryObj.GetOperStatus(db_conn,UNC_DT_STATE,&k,oper_status);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = KtboundaryObj.GetOperStatus(db_conn, UNC_DT_STATE, &k, oper_status);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
-// GetBoundaryValidFlag 
+//  GetBoundaryValidFlag
 TEST_F(BoundaryTest, GetBoundaryValidFlag_01) {
   key_boundary_t k;
   val_boundary_st_t v;
-  memset(&v,0,sizeof(val_boundary_st_t));
+  memset(&v, 0, sizeof(val_boundary_st_t));
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtboundaryObj.GetBoundaryValidFlag(db_conn,&k,v,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = KtboundaryObj.GetBoundaryValidFlag(db_conn, &k, v, UNC_DT_STATE);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// IsBoundaryReferred with key type UNC_KT_CONTROLLER
+//  IsBoundaryReferred with key type UNC_KT_CONTROLLER
 TEST_F(BoundaryTest, IsBoundaryReferred_01) {
   key_ctr_t k;
   pfc_strlcpy(reinterpret_cast<char *>(k.controller_name), "Controller1",
               sizeof(k.controller_name));
-  unc_key_type_t keytype = UNC_KT_CONTROLLER;
+  unc_key_type_t keytype  =  UNC_KT_CONTROLLER;
   Kt_Boundary  KtboundaryObj;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  OdbcmConnectionHandler *db_conn  = NULL;
   ASSERT_EQ(PFC_TRUE,
             KtboundaryObj.IsBoundaryReferred(db_conn, keytype, &k,
                                              UNC_DT_STATE));
 }
 
-// IsBoundaryReferred with key type UNC_KT_CONTROLLER and row not exists
+//  IsBoundaryReferred with key type UNC_KT_CONTROLLER and row not exists
 TEST_F(BoundaryTest, IsBoundaryReferred_02) {
   key_ctr_t k;
   pfc_strlcpy(reinterpret_cast<char *>(k.controller_name), "Controller1",
               sizeof(k.controller_name));
-  unc_key_type_t keytype = UNC_KT_CONTROLLER;
+  unc_key_type_t keytype  =  UNC_KT_CONTROLLER;
   Kt_Boundary  KtboundaryObj;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_NOT_EXISTS);
-  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_NOT_EXISTS);
+  OdbcmConnectionHandler *db_conn  = NULL;
   ASSERT_EQ(PFC_FALSE,
             KtboundaryObj.IsBoundaryReferred(db_conn, keytype, &k,
                                              UNC_DT_STATE));
 }
 
-// IsBoundaryReferred with key type UNC_KT_CTR_DOMAIN
+//  IsBoundaryReferred with key type UNC_KT_CTR_DOMAIN
 TEST_F(BoundaryTest, IsBoundaryReferred_03) {
   key_ctr_domain_t k;
   pfc_strlcpy(reinterpret_cast<char *>(k.ctr_key.controller_name),
               "Controller1", sizeof(k.ctr_key.controller_name));
   pfc_strlcpy(reinterpret_cast<char *>(k.domain_name), "Domain1",
               sizeof(k.domain_name));
-  unc_key_type_t keytype = UNC_KT_CTR_DOMAIN;
+  unc_key_type_t keytype  =  UNC_KT_CTR_DOMAIN;
   Kt_Boundary  KtboundaryObj;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  OdbcmConnectionHandler *db_conn  = NULL;
   ASSERT_EQ(PFC_TRUE,
             KtboundaryObj.IsBoundaryReferred(db_conn, keytype, &k,
                                              UNC_DT_STATE));
 }
 
-// IsBoundaryReferred with key type UNC_KT_CTR_DOMAIN and row not exists
+//  IsBoundaryReferred with key type UNC_KT_CTR_DOMAIN and row not exists
 TEST_F(BoundaryTest, IsBoundaryReferred_04) {
   key_ctr_domain_t k;
   pfc_strlcpy(reinterpret_cast<char *>(k.ctr_key.controller_name),
               "Controller1", sizeof(k.ctr_key.controller_name));
   pfc_strlcpy(reinterpret_cast<char *>(k.domain_name), "Domain1",
               sizeof(k.domain_name));
-  unc_key_type_t keytype = UNC_KT_CTR_DOMAIN;
+  unc_key_type_t keytype  =  UNC_KT_CTR_DOMAIN;
   Kt_Boundary  KtboundaryObj;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_NOT_EXISTS);
-  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_NOT_EXISTS);
+  OdbcmConnectionHandler *db_conn  = NULL;
   ASSERT_EQ(PFC_FALSE,
             KtboundaryObj.IsBoundaryReferred(db_conn, keytype, &k,
                                              UNC_DT_STATE));
 }
 
-// IsBoundaryReferred with unknown key type
+//  IsBoundaryReferred with unknown key type
 TEST_F(BoundaryTest, IsBoundaryReferred_05) {
-  unc_key_type_t keytype = UNC_KT_LINK;
+  unc_key_type_t keytype  =  UNC_KT_LINK;
   Kt_Boundary  KtboundaryObj;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_NOT_EXISTS);
-  OdbcmConnectionHandler *db_conn =NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_NOT_EXISTS);
+  OdbcmConnectionHandler *db_conn  = NULL;
   ASSERT_EQ(PFC_FALSE,
             KtboundaryObj.IsBoundaryReferred(db_conn, keytype, NULL,
                                              UNC_DT_STATE));
 }
 
-//PerformRead with negative option1
+// PerformRead with negative option1
 TEST_F(BoundaryTest, PerformRead_Neg_option1_01) {
   key_boundary_t k;
   val_boundary_st_t v;
-  memset(&v,0,sizeof(val_boundary_st_t));
+  memset(&v, 0, sizeof(val_boundary_st_t));
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -1493,18 +1663,21 @@ TEST_F(BoundaryTest, PerformRead_Neg_option1_01) {
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_BOUNDARY);
 
-  int ret =  KtboundaryObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret = KtboundaryObj.PerformRead(
+    db_conn, (uint32_t)0, (uint32_t)0, &k, &v, (uint32_t)UNC_DT_STATE,
+    (uint32_t)UNC_OP_READ, sess, (uint32_t)UNC_OPT1_DETAIL,
+    (uint32_t)UNC_OPT2_NONE, (uint32_t)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-//PerformRead with negative option1
+// PerformRead with negative option1
 TEST_F(BoundaryTest, PerformRead_Neg_option1_02) {
   key_boundary_t k;
   val_boundary_st_t v;
-  memset(&v,0,sizeof(val_boundary_st_t));
+  memset(&v, 0, sizeof(val_boundary_st_t));
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -1513,21 +1686,24 @@ TEST_F(BoundaryTest, PerformRead_Neg_option1_02) {
   sess.stub_setAddOutput((uint32_t)UNC_OPT1_DETAIL);
   sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);
   sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
-  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_INVALID_OPTION1);
+  sess.stub_setAddOutput((uint32_t)UNC_UPPL_RC_ERR_INVALID_OPTION1);
   sess.stub_setAddOutput((uint32_t)UNC_KT_BOUNDARY);
 
-  int ret =  KtboundaryObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = KtboundaryObj.PerformRead(
+    db_conn, (uint32_t)0, (uint32_t)0, &k, &v, (uint32_t)UNC_DT_STATE,
+    (uint32_t)UNC_OP_READ, sess, (uint32_t)UNC_OPT1_DETAIL,
+    (uint32_t)UNC_OPT2_NONE, (uint32_t)1);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//PerformRead with unsupported datatype
+// PerformRead with unsupported datatype
 TEST_F(BoundaryTest, PerformRead_Neg_datatype_03) {
   key_boundary_t k;
   val_boundary_st_t v;
-  memset(&v,0,sizeof(val_boundary_st_t));
+  memset(&v, 0, sizeof(val_boundary_st_t));
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -1539,18 +1715,21 @@ TEST_F(BoundaryTest, PerformRead_Neg_datatype_03) {
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_BOUNDARY);
 
-  int ret =  KtboundaryObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_AUDIT,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret = KtboundaryObj.PerformRead(
+    db_conn, (uint32_t)0, (uint32_t)0, &k, &v, (uint32_t)UNC_DT_AUDIT,
+    (uint32_t)UNC_OP_READ, sess, (uint32_t)UNC_OPT1_NORMAL,
+    (uint32_t)UNC_OPT2_NONE, (uint32_t)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-//PerformRead with unsupported datatype
+// PerformRead with unsupported datatype
 TEST_F(BoundaryTest, PerformRead_Neg_datatype_04) {
   key_boundary_t k;
   val_boundary_st_t v;
-  memset(&v,0,sizeof(val_boundary_st_t));
+  memset(&v, 0, sizeof(val_boundary_st_t));
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -1559,22 +1738,26 @@ TEST_F(BoundaryTest, PerformRead_Neg_datatype_04) {
   sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);
   sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);
   sess.stub_setAddOutput((uint32_t)UNC_DT_AUDIT);
-  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
+  sess.stub_setAddOutput((uint32_t)UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
   sess.stub_setAddOutput((uint32_t)UNC_KT_BOUNDARY);
 
-  int ret =  KtboundaryObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_AUDIT,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = KtboundaryObj.PerformRead(
+    db_conn, (uint32_t)0, (uint32_t)0, &k, &v, (uint32_t)UNC_DT_AUDIT,
+    (uint32_t)UNC_OP_READ, sess, (uint32_t)UNC_OPT1_NORMAL,
+    (uint32_t)UNC_OPT2_NONE, (uint32_t)1);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//PerformRead with negative dB
+// PerformRead with negative dB
 TEST_F(BoundaryTest, PerformRead_Neg_DB_05) {
   key_boundary_t k;
   val_boundary_st_t v;
-  memset(&v,0,sizeof(val_boundary_st_t));
+  memset(&v, 0, sizeof(val_boundary_st_t));
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -1586,19 +1769,23 @@ TEST_F(BoundaryTest, PerformRead_Neg_DB_05) {
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_BOUNDARY);
 
-  int ret =  KtboundaryObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_CANDIDATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret = KtboundaryObj.PerformRead(
+    db_conn, (uint32_t)0, (uint32_t)0, &k, &v, (uint32_t)UNC_DT_CANDIDATE,
+    (uint32_t)UNC_OP_READ, sess, (uint32_t)UNC_OPT1_NORMAL,
+    (uint32_t)UNC_OPT2_NONE, (uint32_t)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-//PerformRead with positive dB
+// PerformRead with positive dB
 TEST_F(BoundaryTest, PerformRead_pos_DB_06) {
   key_boundary_t k;
   val_boundary_st_t v;
-  memset(&v,0,sizeof(val_boundary_st_t));
+  memset(&v, 0, sizeof(val_boundary_st_t));
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -1610,19 +1797,23 @@ TEST_F(BoundaryTest, PerformRead_pos_DB_06) {
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_BOUNDARY);
 
-  int ret =  KtboundaryObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_CANDIDATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = KtboundaryObj.PerformRead(
+    db_conn, (uint32_t)0, (uint32_t)0, &k, &v, (uint32_t)UNC_DT_CANDIDATE,
+    (uint32_t)UNC_OP_READ, sess, (uint32_t)UNC_OPT1_NORMAL,
+    (uint32_t)UNC_OPT2_NONE, (uint32_t)1);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//PerformRead with max_rep_cnt NULL 
+// PerformRead with max_rep_cnt NULL
 TEST_F(BoundaryTest, PerformRead_max_rep_count_07) {
   key_boundary_t k;
   val_boundary_st_t v;
-  memset(&v,0,sizeof(val_boundary_st_t));
+  memset(&v, 0, sizeof(val_boundary_st_t));
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -1634,19 +1825,23 @@ TEST_F(BoundaryTest, PerformRead_max_rep_count_07) {
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_BOUNDARY);
 
-  int ret =  KtboundaryObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_CANDIDATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)0);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret = KtboundaryObj.PerformRead(
+    db_conn, (uint32_t)0, (uint32_t)0, &k, &v, (uint32_t)UNC_DT_CANDIDATE,
+    (uint32_t)UNC_OP_READ, sess, (uint32_t)UNC_OPT1_NORMAL,
+    (uint32_t)UNC_OPT2_NONE, (uint32_t)0);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-//PerformRead with Datatype UNC_DT_STATE
+// PerformRead with Datatype UNC_DT_STATE
 TEST_F(BoundaryTest, PerformRead_STATE_08) {
   key_boundary_t k;
   val_boundary_st_t v;
-  memset(&v,0,sizeof(val_boundary_st_t));
+  memset(&v, 0, sizeof(val_boundary_st_t));
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -1656,19 +1851,23 @@ TEST_F(BoundaryTest, PerformRead_STATE_08) {
   sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);
   sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
 
-  int ret =  KtboundaryObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = KtboundaryObj.PerformRead(
+    db_conn, (uint32_t)0, (uint32_t)0, &k, &v, (uint32_t)UNC_DT_STATE,
+    (uint32_t)UNC_OP_READ, sess, (uint32_t)UNC_OPT1_NORMAL,
+    (uint32_t)UNC_OPT2_NONE, (uint32_t)1);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//PerformRead with max_rep_cnt NULL 
+// PerformRead with max_rep_cnt NULL
 TEST_F(BoundaryTest, PerformRead_max_rep_count_09) {
   key_boundary_t k;
   val_boundary_st_t v;
-  memset(&v,0,sizeof(val_boundary_st_t));
+  memset(&v, 0, sizeof(val_boundary_st_t));
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -1677,26 +1876,30 @@ TEST_F(BoundaryTest, PerformRead_max_rep_count_09) {
   sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);
   sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);
   sess.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
-  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_NO_SUCH_INSTANCE);
+  sess.stub_setAddOutput((uint32_t)UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE);
   sess.stub_setAddOutput((uint32_t)UNC_KT_BOUNDARY);
 
-  int ret =  KtboundaryObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_CANDIDATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)0);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret = KtboundaryObj.PerformRead(
+    db_conn, (uint32_t)0, (uint32_t)0, &k, &v, (uint32_t)UNC_DT_CANDIDATE,
+    (uint32_t)UNC_OP_READ, sess, (uint32_t)UNC_OPT1_NORMAL,
+    (uint32_t)UNC_OPT2_NONE, (uint32_t)0);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-//HandleOperStatus with Val_Struct NULL 
+// HandleOperStatus with Val_Struct NULL
 TEST_F(BoundaryTest, HandleOperStatus_Val_Struct_NULL_01) {
   key_boundary_t k;
-  val_boundary_t *v=NULL;
+  val_boundary_t *v = NULL;
   vector<OperStatusHolder> ref_oper_status;
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtboundaryObj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,v,ref_oper_status);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = KtboundaryObj.HandleOperStatus(
+    db_conn, UNC_DT_STATE, &k, v, ref_oper_status);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//HandleOperStatus 
+// HandleOperStatus
 TEST_F(BoundaryTest, HandleOperStatus_02) {
   key_boundary_t k;
   val_boundary_t v;
@@ -1704,15 +1907,16 @@ TEST_F(BoundaryTest, HandleOperStatus_02) {
   vector<OperStatusHolder> ref_oper_status;
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  v.valid[kIdxBoundaryControllerName1]=0;
-  v.valid[kIdxBoundaryControllerName2]=0;
+  OdbcmConnectionHandler *db_conn  = NULL;
+  v.valid[kIdxBoundaryControllerName1] = 0;
+  v.valid[kIdxBoundaryControllerName2] = 0;
 
-  int ret =  KtboundaryObj.HandleOperStatus(db_conn,UNC_DT_CANDIDATE,&k,&v,ref_oper_status);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = KtboundaryObj.HandleOperStatus(
+    db_conn, UNC_DT_CANDIDATE, &k, &v, ref_oper_status);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//HandleOperStatus 
+// HandleOperStatus
 TEST_F(BoundaryTest, HandleOperStatus_03) {
   key_boundary_t k;
   val_boundary_t v;
@@ -1720,15 +1924,16 @@ TEST_F(BoundaryTest, HandleOperStatus_03) {
   vector<OperStatusHolder> ref_oper_status;
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  v.valid[kIdxBoundaryControllerName1]=1;
-  v.valid[kIdxBoundaryControllerName2]=0;
+  OdbcmConnectionHandler *db_conn  = NULL;
+  v.valid[kIdxBoundaryControllerName1] = 1;
+  v.valid[kIdxBoundaryControllerName2] = 0;
 
-  int ret =  KtboundaryObj.HandleOperStatus(db_conn,UNC_DT_CANDIDATE,&k,&v,ref_oper_status);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = KtboundaryObj.HandleOperStatus(
+    db_conn, UNC_DT_CANDIDATE, &k, &v, ref_oper_status);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//HandleOperStatus 
+// HandleOperStatus
 TEST_F(BoundaryTest, HandleOperStatus_04) {
   key_boundary_t k;
   val_boundary_t v;
@@ -1736,15 +1941,16 @@ TEST_F(BoundaryTest, HandleOperStatus_04) {
   vector<OperStatusHolder> ref_oper_status;
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  v.valid[kIdxBoundaryControllerName2]=1;
-  v.valid[kIdxBoundaryControllerName1]=0;
+  OdbcmConnectionHandler *db_conn  = NULL;
+  v.valid[kIdxBoundaryControllerName2] = 1;
+  v.valid[kIdxBoundaryControllerName1] = 0;
 
-  int ret =  KtboundaryObj.HandleOperStatus(db_conn,UNC_DT_CANDIDATE,&k,&v,ref_oper_status);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = KtboundaryObj.HandleOperStatus(
+    db_conn, UNC_DT_CANDIDATE, &k, &v, ref_oper_status);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//HandleOperStatus 
+// HandleOperStatus
 TEST_F(BoundaryTest, HandleOperStatus_05) {
   key_boundary_t k;
   val_boundary_t v;
@@ -1752,16 +1958,18 @@ TEST_F(BoundaryTest, HandleOperStatus_05) {
   vector<OperStatusHolder> ref_oper_status;
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  v.valid[kIdxBoundaryControllerName2]=1;
-  v.valid[kIdxBoundaryControllerName1]=1;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  v.valid[kIdxBoundaryControllerName2] = 1;
+  v.valid[kIdxBoundaryControllerName1] = 1;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
 
-  int ret =  KtboundaryObj.HandleOperStatus(db_conn,UNC_DT_RUNNING,&k,&v,ref_oper_status);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = KtboundaryObj.HandleOperStatus(
+    db_conn, UNC_DT_RUNNING, &k, &v, ref_oper_status);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//HandleOperStatus 
+// HandleOperStatus
 TEST_F(BoundaryTest, HandleOperStatus_06) {
   key_boundary_t k;
   val_boundary_t v;
@@ -1769,15 +1977,17 @@ TEST_F(BoundaryTest, HandleOperStatus_06) {
   vector<OperStatusHolder> ref_oper_status;
   getKeyForKtBoundary1(k);
   Kt_Boundary  KtboundaryObj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  v.valid[kIdxBoundaryControllerName2]=1;
-  v.valid[kIdxBoundaryControllerName1]=1;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  v.valid[kIdxBoundaryControllerName2] = 1;
+  v.valid[kIdxBoundaryControllerName1] = 1;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
 
-  int ret =  KtboundaryObj.HandleOperStatus(db_conn,UNC_DT_RUNNING,&k,&v,ref_oper_status);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = KtboundaryObj.HandleOperStatus(
+    db_conn, UNC_DT_RUNNING, &k, &v, ref_oper_status);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
-// FrameValidValue
+//  FrameValidValue
 TEST_F(BoundaryTest, FrameValidValue_01) {
   val_boundary_st v_st;
   val_boundary_t v;
@@ -1786,7 +1996,7 @@ TEST_F(BoundaryTest, FrameValidValue_01) {
 
   string at_value("01234567");
   Kt_Boundary  KtboundaryObj;
-  KtboundaryObj.FrameValidValue(at_value,v_st,v);
+  KtboundaryObj.FrameValidValue(at_value, v_st, v);
 
   const uint32_t vsize(PFC_ARRAY_CAPACITY(v.valid));
   for (uint32_t i(0); i < vsize; i++) {
@@ -1799,140 +2009,154 @@ TEST_F(BoundaryTest, FrameValidValue_01) {
     ASSERT_EQ(required, v_st.valid[i]);
   }
 }
-// FrameCsAttrValue
+//  FrameCsAttrValue
 TEST_F(BoundaryTest, FrameCsAttrValue_01) {
   val_boundary_t v;
-  string at_value = "boundary";
+  string at_value  =  "boundary";
   Kt_Boundary  KtboundaryObj;
-  int ret =  UPPL_RC_SUCCESS;
-  KtboundaryObj.FrameCsAttrValue(at_value,v);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = UNC_RC_SUCCESS;
+  KtboundaryObj.FrameCsAttrValue(at_value, v);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /********TAMIL TC's*********/
 /*****getBoundaryInputOperStatus*****/
-//Send controller name as empty
+// Send controller name as empty
 TEST_F(BoundaryTest, getBoundaryInputOperStatus_BadRequest) {
-  OdbcmConnectionHandler *db_conn = NULL;
+  OdbcmConnectionHandler *db_conn  =  NULL;
   uint32_t data_type(UNC_DT_STATE);
   string controller_name;
   string domain_name;
   string logical_port_id;
   vector<OperStatusHolder> ref_oper_status;
   Kt_Boundary  KtboundaryObj;
-  int ret =  KtboundaryObj.getBoundaryInputOperStatus(db_conn, data_type, controller_name, domain_name, logical_port_id,ref_oper_status);
+  int ret = KtboundaryObj.getBoundaryInputOperStatus(db_conn, data_type,
+    controller_name, domain_name, logical_port_id, ref_oper_status);
   EXPECT_EQ(UPPL_BOUNDARY_OPER_UNKNOWN, ret);
 }
 
-//Fill the controler name and send
+// Fill the controler name and send
 TEST_F(BoundaryTest, getBoundaryInputOperStatus_ctrlName_fill) {
-  OdbcmConnectionHandler *db_conn = NULL;
-  uint32_t data_type = UNC_DT_STATE;
-  string controller_name = "ctr1";
+  OdbcmConnectionHandler *db_conn  =  NULL;
+  uint32_t data_type  =  UNC_DT_STATE;
+  string controller_name  =  "ctr1";
   string domain_name;
   string logical_port_id;
   vector<OperStatusHolder> ref_oper_status;
   Kt_Boundary  KtboundaryObj;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  KtboundaryObj.getBoundaryInputOperStatus(db_conn, data_type, controller_name, domain_name, logical_port_id,ref_oper_status);
-  EXPECT_EQ(UPPL_RC_ERR_BAD_REQUEST, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret = KtboundaryObj.getBoundaryInputOperStatus(db_conn, data_type,
+    controller_name, domain_name, logical_port_id, ref_oper_status);
+  EXPECT_EQ(UPPL_BOUNDARY_OPER_UNKNOWN, ret);
 }
 
 TEST_F(BoundaryTest, getBoundaryInputOperStatus) {
-  OdbcmConnectionHandler *db_conn = NULL;
-  uint32_t data_type = UNC_DT_IMPORT;
-  string controller_name = "ctr1";
-  string domain_name = "";
-  string logical_port_id = "";
+  OdbcmConnectionHandler *db_conn  =  NULL;
+  uint32_t data_type  =  UNC_DT_IMPORT;
+  string controller_name  =  "ctr1";
+  string domain_name  =  "";
+  string logical_port_id  =  "";
 
-  unc_key_type_t key_type = UNC_KT_CONTROLLER;
+  unc_key_type_t key_type  =  UNC_KT_CONTROLLER;
   key_ctr_t key_struct;
   pfc_strlcpy(reinterpret_cast<char *>(key_struct.controller_name),
               "controller1", sizeof(key_struct.controller_name));
-  uint8_t oper_status = 1;
+  uint8_t oper_status  =  1;
   OperStatusHolder obj(key_type, &key_struct, oper_status);
   vector<OperStatusHolder> ref_oper_status;
   ref_oper_status.push_back(obj);
   Kt_Boundary  KtboundaryObj;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  KtboundaryObj.getBoundaryInputOperStatus(db_conn, data_type, controller_name, domain_name, logical_port_id,ref_oper_status);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret = KtboundaryObj.getBoundaryInputOperStatus(db_conn, data_type,
+    controller_name, domain_name, logical_port_id, ref_oper_status);
   EXPECT_EQ(UPPL_BOUNDARY_OPER_UNKNOWN, ret);
 }
 
 /********SetOperStatus********/
-//key_struct and val_struct are NULL
-//return success
+// key_struct and val_struct are NULL
+// return success
 TEST_F(BoundaryTest, SetOperStatus_NULL_check) {
-  OdbcmConnectionHandler *db_conn = NULL;
+  OdbcmConnectionHandler *db_conn  =  NULL;
   uint32_t data_type(UNC_DT_STATE);
-  key_boundary_t *k = NULL;
-  val_boundary_st_t *v = NULL;
+  key_boundary_t *k  =  NULL;
+  val_boundary_st_t *v  =  NULL;
   UpplBoundaryOperStatus oper_status(UPPL_BOUNDARY_OPER_UP);
   Kt_Boundary  KtboundaryObj;
-  int ret =  KtboundaryObj.SetOperStatus(db_conn,data_type,k,v,oper_status);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = KtboundaryObj.SetOperStatus(
+    db_conn, data_type, k, v, oper_status);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//controller_name1/2 flag is not valid
+// controller_name1/2 flag is not valid
 TEST_F(BoundaryTest, SetOperStatus_InValid_CtrName) {
-  OdbcmConnectionHandler *db_conn = NULL;
+  OdbcmConnectionHandler *db_conn  =  NULL;
   uint32_t data_type(UNC_DT_STATE);
-  key_boundary_t *k = NULL;
+  key_boundary_t *k  =  NULL;
   val_boundary_st_t v;
   memset(&v, 0, sizeof(v));
   UpplBoundaryOperStatus oper_status(UPPL_BOUNDARY_OPER_UP);
   Kt_Boundary  KtboundaryObj;
-  int ret =  KtboundaryObj.SetOperStatus(db_conn,data_type,k,&v,oper_status);
-  EXPECT_EQ(UPPL_RC_ERR_BAD_REQUEST, ret);
+  int ret = KtboundaryObj.SetOperStatus(
+    db_conn, data_type, k, &v, oper_status);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_BAD_REQUEST, ret);
 }
 
-//SetOperStatus Success_check
+// SetOperStatus Success_check
 TEST_F(BoundaryTest, SetOperStatus_Success_check) {
-  OdbcmConnectionHandler *db_conn = NULL;
+  OdbcmConnectionHandler *db_conn  =  NULL;
   uint32_t data_type(UNC_DT_STATE);
   key_boundary_t k;
   val_boundary_t v;
-  getKeyForKtBoundary1(k);  
+  getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
-  v.valid[kIdxBoundaryControllerName1] = UNC_VF_VALID;
+  v.valid[kIdxBoundaryControllerName1]  =  UNC_VF_VALID;
   UpplBoundaryOperStatus oper_status(UPPL_BOUNDARY_OPER_UP);
   Kt_Boundary  KtboundaryObj;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  int ret =  KtboundaryObj.SetOperStatus(db_conn,data_type,&k,&v,oper_status);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  int ret = KtboundaryObj.SetOperStatus(
+    db_conn, data_type, &k, &v, oper_status);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//oper_status update operation not success
+// oper_status update operation not success
 TEST_F(BoundaryTest, SetOperStatus_UPD_NotSucc_Ctr1_Valid) {
-  OdbcmConnectionHandler *db_conn = NULL;
+  OdbcmConnectionHandler *db_conn  =  NULL;
   uint32_t data_type(UNC_DT_STATE);
-  key_boundary_t *k = NULL;
+  key_boundary_t *k  =  NULL;
   val_boundary_t v;
-  //getKeyForKtBoundary1(k);  
+  // getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
-  v.valid[kIdxBoundaryControllerName1] = UNC_VF_VALID;
-  UpplBoundaryOperStatus oper_status = UPPL_BOUNDARY_OPER_UNKNOWN;
+  v.valid[kIdxBoundaryControllerName1]  =  UNC_VF_VALID;
+  UpplBoundaryOperStatus oper_status  =  UPPL_BOUNDARY_OPER_UNKNOWN;
   Kt_Boundary  KtboundaryObj;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret =  KtboundaryObj.SetOperStatus(db_conn,data_type,k,&v,oper_status);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  int ret = KtboundaryObj.SetOperStatus(
+    db_conn, data_type, k, &v, oper_status);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//oper_status update operation not success
-//ctr2 name is set as Invaild
+// oper_status update operation not success
+// ctr2 name is set as Invaild
 TEST_F(BoundaryTest, SetOperStatus_Ctr2_Valid) {
-  OdbcmConnectionHandler *db_conn = NULL;
+  OdbcmConnectionHandler *db_conn  =  NULL;
   uint32_t data_type(UNC_DT_STATE);
-  key_boundary_t *k = NULL;
+  key_boundary_t *k  =  NULL;
   val_boundary_t v;
-  //getKeyForKtBoundary1(k);  
+  // getKeyForKtBoundary1(k);
   getValForKtBoundary1(v);
-  v.valid[kIdxBoundaryControllerName1] = 0;
-  UpplBoundaryOperStatus oper_status = UPPL_BOUNDARY_OPER_UNKNOWN;
-  Kt_Boundary  KtboundaryObj;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret =  KtboundaryObj.SetOperStatus(db_conn,data_type,k,&v,oper_status);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  v.valid[kIdxBoundaryControllerName1]  =  0;
+  UpplBoundaryOperStatus oper_status  =  UPPL_BOUNDARY_OPER_UNKNOWN;
+  Kt_Boundary  KtboundaryObj;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  int ret = KtboundaryObj.SetOperStatus(
+    db_conn, data_type, k, &v, oper_status);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
index baf0c536c126d08d8bf10502e47ebfcc44d53981..c3cc2c0f24b204fac527d5f988f866f31c828cef 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -35,6 +35,7 @@
 #include <pfc/iostream.h>
 #include <pfc/ipc_client.h>
 #include <pfc/ipc_pfcd.h>
+#include <tclib_module.hh>
 #include <odbcm_mgr.hh>
 #include <physical_common_def.hh>
 #include <unc/uppl_common.h>
@@ -51,7 +52,6 @@
 #include <itc_kt_logicalport.hh>
 #include <ipct_util.hh>
 #include "PhysicalLayerStub.hh"
-#include <tclib_module.hh>
 #include "ut_util.hh"
 
 using unc::uppl::PhysicalLayer;
@@ -63,8 +63,7 @@ using namespace unc::tclib;
 using namespace unc::uppl::test;
 
 class ControllerTest
-  : public UpplTestEnv
-{
+  : public UpplTestEnv {
 };
 
 static char pkctrName1[] = "Controller1";
@@ -80,8 +79,12 @@ TEST_F(ControllerTest, PerformSyntxCheck_Domainname_notFound_01) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktCtrlrObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  int ret =  ktCtrlrObj.PerformSyntaxValidation(db_conn,
+                                                &k,
+                                                &v,
+                                                operation,
+                                                UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 TEST_F(ControllerTest, PerformSyntxCheck_Controllername_notFound_02) {
@@ -92,8 +95,12 @@ TEST_F(ControllerTest, PerformSyntxCheck_Controllername_notFound_02) {
   memset(k.controller_name, '\0', 32);
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktCtrlrObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  int ret =  ktCtrlrObj.PerformSyntaxValidation(db_conn,
+                                                &k,
+                                                &v,
+                                                operation,
+                                                UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 TEST_F(ControllerTest, PerformSyntxCheck_Valstrct_without_type_03) {
@@ -105,8 +112,12 @@ TEST_F(ControllerTest, PerformSyntxCheck_Valstrct_without_type_03) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktCtrlrObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  int ret =  ktCtrlrObj.PerformSyntaxValidation(db_conn,
+                                                &k,
+                                                &v,
+                                                operation,
+                                                UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 TEST_F(ControllerTest, PerformSyntxCheck_Valstrct_04) {
@@ -120,8 +131,12 @@ TEST_F(ControllerTest, PerformSyntxCheck_Valstrct_04) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktCtrlrObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_CANDIDATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  int ret =  ktCtrlrObj.PerformSyntaxValidation(db_conn,
+                                                &k,
+                                                &v,
+                                                operation,
+                                                UNC_DT_CANDIDATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 TEST_F(ControllerTest, PerformSyntxCheck_Valstrct_05) {
@@ -135,8 +150,12 @@ TEST_F(ControllerTest, PerformSyntxCheck_Valstrct_05) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   uint32_t operation = UNC_OP_UPDATE;
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktCtrlrObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_CANDIDATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  ktCtrlrObj.PerformSyntaxValidation(db_conn,
+                                                &k,
+                                                &v,
+                                                operation,
+                                                UNC_DT_CANDIDATE);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(ControllerTest, PerformSyntxCheck_Valstrct_06) {
@@ -150,8 +169,12 @@ TEST_F(ControllerTest, PerformSyntxCheck_Valstrct_06) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktCtrlrObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_CANDIDATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  ktCtrlrObj.PerformSyntaxValidation(db_conn,
+                                                &k,
+                                                &v,
+                                                operation,
+                                                UNC_DT_CANDIDATE);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(ControllerTest, PerformSyntxCheck_Valstrct_07) {
@@ -165,8 +188,12 @@ TEST_F(ControllerTest, PerformSyntxCheck_Valstrct_07) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktCtrlrObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_CANDIDATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  int ret =  ktCtrlrObj.PerformSyntaxValidation(db_conn,
+                                                &k,
+                                                &v,
+                                                operation,
+                                                UNC_DT_CANDIDATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 TEST_F(ControllerTest, PerformSyntxCheck_Valstrct_08) {
@@ -182,11 +209,12 @@ TEST_F(ControllerTest, PerformSyntxCheck_Valstrct_08) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktCtrlrObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_CANDIDATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  int ret =  ktCtrlrObj.PerformSyntaxValidation(
+      db_conn, &k, &v, operation, UNC_DT_CANDIDATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-// Create for unsupported datatype
+//  Create for unsupported datatype
 TEST_F(ControllerTest, Create_01) {
   key_ctr_t k;
   val_ctr_t v;
@@ -202,11 +230,17 @@ TEST_F(ControllerTest, Create_01) {
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktCtrlrObj.Create(db_conn,session_id,configuration_id,&k,&v,UNC_DT_STATE,ses);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =  ktCtrlrObj.Create(db_conn,
+                               session_id,
+                               configuration_id,
+                               &k,
+                               &v,
+                               UNC_DT_STATE,
+                               ses);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-// Domain Create success 
+//  Domain Create success
 TEST_F(ControllerTest, Create_02) {
   key_ctr_t k;
   val_ctr_t v;
@@ -228,17 +262,26 @@ TEST_F(ControllerTest, Create_02) {
   ses.stub_setAddOutput((uint32_t)ODBCM_RC_SUCCESS);
   ses.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
   ses.stub_setAddOutput((uint32_t)UNC_KT_CONTROLLER);
-  //ses.stub_setAddOutput((uint32_t)&k);
+  // ses.stub_setAddOutput((uint32_t)&k);
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW,
+                                             ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::CREATEONEROW,
+      ODBCM_RC_SUCCESS);
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktCtrlrObj.Create(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  ktCtrlrObj.Create(db_conn,
+                               session_id,
+                               configuration_id,
+                               &k,
+                               &v,
+                               UNC_DT_CANDIDATE,
+                               ses);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// get_controller_type returns failure 
+//  get_controller_type returns failure
 TEST_F(ControllerTest, Create_03) {
   key_ctr_t k;
   val_ctr_t v;
@@ -260,16 +303,24 @@ TEST_F(ControllerTest, Create_03) {
   ses.stub_setAddOutput((uint32_t)ODBCM_RC_SUCCESS);
   ses.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
   ses.stub_setAddOutput((uint32_t)UNC_KT_CONTROLLER);
-  //ses.stub_setAddOutput((uint32_t)&k);
+  // ses.stub_setAddOutput((uint32_t)&k);
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETONEROW,
+      ODBCM_RC_CONNECTION_ERROR);
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktCtrlrObj.Create(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =  ktCtrlrObj.Create(db_conn,
+                               session_id,
+                               configuration_id,
+                               &k,
+                               &v,
+                               UNC_DT_CANDIDATE,
+                               ses);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-//Create on unsupported datatype 
+// Create on unsupported datatype
 TEST_F(ControllerTest, Create) {
   key_ctr_t k;
   val_ctr_t v;
@@ -285,10 +336,16 @@ TEST_F(ControllerTest, Create) {
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktCtrlrObj.Create(db_conn,session_id,configuration_id,&k,&v,UNC_DT_STATE,ses);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =  ktCtrlrObj.Create(db_conn,
+                               session_id,
+                               configuration_id,
+                               &k,
+                               &v,
+                               UNC_DT_STATE,
+                               ses);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
+
 TEST_F(ControllerTest, PerformSemanticValidation_01) {
   key_ctr_t k;
   val_ctr_t v;
@@ -302,57 +359,73 @@ TEST_F(ControllerTest, PerformSemanticValidation_01) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktCtrlrObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_CANDIDATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  int ret =  ktCtrlrObj.PerformSyntaxValidation(db_conn,
+                                                &k,
+                                                &v,
+                                                operation,
+                                                UNC_DT_CANDIDATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-// IsKeyExists  with UNC_DT_CANDIDATE datatype ODBC return ODBCM_RC_CONNECTION_ERROR
+// IsKeyExists  with UNC_DT_CANDIDATE datatype
+// ODBC return ODBCM_RC_CONNECTION_ERROR
 TEST_F(ControllerTest, IsKeyExists_01) {
   Kt_Controller  ktCtrlrObj;
   vector<string> vect_key;
   vect_key.push_back(pkctrName1);
   vect_key.push_back(pkDomainName2);
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  ktCtrlrObj.IsKeyExists(db_conn,UNC_DT_CANDIDATE,vect_key);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::ISROWEXISTS,
+      ODBCM_RC_CONNECTION_ERROR);
+  int ret =  ktCtrlrObj.IsKeyExists(db_conn,
+                                    UNC_DT_CANDIDATE,
+                                    vect_key);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-// IsKeyExists  with UNC_DT_CANDIDATE datatype ODBC return ODBCM_RC_ROW_EXISTS
+//  IsKeyExists  with UNC_DT_CANDIDATE datatype
+//  ODBC return ODBCM_RC_ROW_EXISTS
 TEST_F(ControllerTest, IsKeyExists_02) {
   Kt_Controller  ktCtrlrObj;
   vector<string> vect_key;
   vect_key.push_back(pkctrName1);
   vect_key.push_back(pkDomainName2);
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  int ret =  ktCtrlrObj.IsKeyExists(db_conn,UNC_DT_CANDIDATE,vect_key);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::ISROWEXISTS,
+      ODBCM_RC_ROW_EXISTS);
+  int ret =  ktCtrlrObj.IsKeyExists(db_conn, UNC_DT_CANDIDATE, vect_key);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// IsKeyExists  with UNC_DT_CANDIDATE datatype ODBC return ODBCM_RC_QUERY_TIMEOUT
+//  IsKeyExists  with UNC_DT_CANDIDATE datatype
+//  ODBC return ODBCM_RC_QUERY_TIMEOUT
 TEST_F(ControllerTest, IsKeyExists_03) {
   Kt_Controller  ktCtrlrObj;
   vector<string> vect_key;
   vect_key.push_back(pkctrName1);
   vect_key.push_back(pkDomainName2);
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_QUERY_TIMEOUT);
-  int ret =  ktCtrlrObj.IsKeyExists(db_conn,UNC_DT_CANDIDATE,vect_key);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::ISROWEXISTS,
+      ODBCM_RC_QUERY_TIMEOUT);
+  int ret =  ktCtrlrObj.IsKeyExists(db_conn, UNC_DT_CANDIDATE, vect_key);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
-// IsKeyExists  with key structure empty
+//  IsKeyExists  with key structure empty
 TEST_F(ControllerTest, IsKeyExists_04) {
   Kt_Controller  ktCtrlrObj;
   vector<string> vect_key;
   vect_key.clear();
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktCtrlrObj.IsKeyExists(db_conn,UNC_DT_CANDIDATE,vect_key);
-  EXPECT_EQ(UPPL_RC_ERR_BAD_REQUEST, ret);
+  int ret =  ktCtrlrObj.IsKeyExists(db_conn, UNC_DT_CANDIDATE, vect_key);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_BAD_REQUEST, ret);
 }
 
-// CreateKeyInstance with UNC_DT_CANDIDATE datatype ODBC return ODBCM_RC_CONNECTION_ERROR
+//  CreateKeyInstance with UNC_DT_CANDIDATE
+//  datatype ODBC return ODBCM_RC_CONNECTION_ERROR
 TEST_F(ControllerTest, CreateKeyInstance_01) {
   key_ctr_t k;
   val_ctr_t v;
@@ -367,12 +440,15 @@ TEST_F(ControllerTest, CreateKeyInstance_01) {
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  ktCtrlrObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_CANDIDATE,key_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::CREATEONEROW,
+      ODBCM_RC_CONNECTION_ERROR);
+  int ret =  ktCtrlrObj.CreateKeyInstance(db_conn, &k, &v,
+                                          UNC_DT_CANDIDATE, key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-// CreateKeyInstance with UNC_DT_RUNNING datatype ODBC 
+//  CreateKeyInstance with UNC_DT_RUNNING datatype ODBC
 TEST_F(ControllerTest, CreateKeyInstance_02) {
   key_ctr_t k;
   val_ctr_t v;
@@ -387,12 +463,19 @@ TEST_F(ControllerTest, CreateKeyInstance_02) {
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  ktCtrlrObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_RUNNING,key_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::CREATEONEROW,
+      ODBCM_RC_CONNECTION_ERROR);
+  int ret =  ktCtrlrObj.CreateKeyInstance(db_conn,
+                                          &k,
+                                          &v,
+                                          UNC_DT_RUNNING,
+                                          key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-// CreateKeyInstance with UNC_DT_STATE  datatype ODBC return ODBCM_RC_CONNECTION_ERROR
+//  CreateKeyInstance with UNC_DT_STATE
+//  datatype ODBC return ODBCM_RC_CONNECTION_ERROR
 TEST_F(ControllerTest, CreateKeyInstance_03) {
   key_ctr_t k;
   val_ctr_t v;
@@ -407,12 +490,19 @@ TEST_F(ControllerTest, CreateKeyInstance_03) {
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  ktCtrlrObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_STATE,key_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::CREATEONEROW,
+      ODBCM_RC_CONNECTION_ERROR);
+  int ret =  ktCtrlrObj.CreateKeyInstance(db_conn,
+                                          &k,
+                                          &v,
+                                          UNC_DT_STATE,
+                                          key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-// CreateKeyInstance with UNC_DT_IMPORT  datatype ODBC return ODBCM_RC_CONNECTION_ERROR
+//  CreateKeyInstance with UNC_DT_IMPORT
+//  datatype ODBC return ODBCM_RC_CONNECTION_ERROR
 TEST_F(ControllerTest, CreateKeyInstance_04) {
   key_ctr_t k;
   val_ctr_t v;
@@ -427,12 +517,14 @@ TEST_F(ControllerTest, CreateKeyInstance_04) {
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  ktCtrlrObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_IMPORT,key_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_CONNECTION_ERROR);
+  int ret =
+      ktCtrlrObj.CreateKeyInstance(db_conn, &k, &v, UNC_DT_IMPORT, key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-// CreateKeyInstance with UNC_DT_CANDIDATE datatype ODBC return Failure
+//  CreateKeyInstance with UNC_DT_CANDIDATE datatype ODBC return Failure
 TEST_F(ControllerTest, CreateKeyInstance_05) {
   key_ctr_t k;
   val_ctr_t v;
@@ -447,12 +539,18 @@ TEST_F(ControllerTest, CreateKeyInstance_05) {
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_TRANSACTION_ERROR);
-  int ret =  ktCtrlrObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_CANDIDATE,key_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_CREATE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::CREATEONEROW,
+      ODBCM_RC_TRANSACTION_ERROR);
+  int ret =  ktCtrlrObj.CreateKeyInstance(db_conn,
+                                          &k,
+                                          &v,
+                                          UNC_DT_CANDIDATE,
+                                          key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_CREATE, ret);
 }
 
-// CreateKeyInstance with UNC_DT_CANDIDATE datatype ODBC ODBCM_RC_SUCCESS
+//  CreateKeyInstance with UNC_DT_CANDIDATE datatype ODBC ODBCM_RC_SUCCESS
 TEST_F(ControllerTest, CreateKeyInstance_06) {
   key_ctr_t k;
   val_ctr_t v;
@@ -467,12 +565,18 @@ TEST_F(ControllerTest, CreateKeyInstance_06) {
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktCtrlrObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_CANDIDATE,key_type);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::CREATEONEROW,
+      ODBCM_RC_SUCCESS);
+  int ret =  ktCtrlrObj.CreateKeyInstance(db_conn,
+                                          &k,
+                                          &v,
+                                          UNC_DT_CANDIDATE,
+                                          key_type);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// CreateKeyInstance with UNC_DT_STATE  datatype ODBC return Failure
+//  CreateKeyInstance with UNC_DT_STATE  datatype ODBC return Failure
 TEST_F(ControllerTest, CreateKeyInstance_07) {
   key_ctr_t k;
   val_ctr_t v;
@@ -487,12 +591,18 @@ TEST_F(ControllerTest, CreateKeyInstance_07) {
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_TRANSACTION_ERROR);
-  int ret =  ktCtrlrObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_STATE,key_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_CREATE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::CREATEONEROW,
+      ODBCM_RC_TRANSACTION_ERROR);
+  int ret =  ktCtrlrObj.CreateKeyInstance(db_conn,
+                                          &k,
+                                          &v,
+                                          UNC_DT_STATE,
+                                          key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_CREATE, ret);
 }
 
-// CreateKeyInstance with UNC_DT_IMPORT  datatype ODBC return Failure
+//  CreateKeyInstance with UNC_DT_IMPORT  datatype ODBC return Failure
 TEST_F(ControllerTest, CreateKeyInstance_08) {
   key_ctr_t k;
   val_ctr_t v;
@@ -507,12 +617,19 @@ TEST_F(ControllerTest, CreateKeyInstance_08) {
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_TRANSACTION_ERROR);
-  int ret =  ktCtrlrObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_IMPORT,key_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_CREATE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::CREATEONEROW,
+      ODBCM_RC_TRANSACTION_ERROR);
+  int ret =  ktCtrlrObj.CreateKeyInstance(
+      db_conn,
+      &k,
+      &v,
+      UNC_DT_IMPORT,
+      key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_CREATE, ret);
 }
 
-// Update for unsupported datatype
+//  Update for unsupported datatype
 TEST_F(ControllerTest, Update_01) {
   key_ctr_t k;
   val_ctr_t v;
@@ -528,10 +645,11 @@ TEST_F(ControllerTest, Update_01) {
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktCtrlrObj.Update(db_conn,session_id,configuration_id,&k,&v,UNC_DT_STATE,ses);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =  ktCtrlrObj.Update(db_conn, session_id, configuration_id,
+                               &k, &v, UNC_DT_STATE, ses);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
-// Domain Update success 
+//  Domain Update success
 TEST_F(ControllerTest, Update_02) {
   key_ctr_t k;
   val_ctr_t v;
@@ -553,17 +671,27 @@ TEST_F(ControllerTest, Update_02) {
   ses.stub_setAddOutput((uint32_t)ODBCM_RC_SUCCESS);
   ses.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
   ses.stub_setAddOutput((uint32_t)UNC_KT_CONTROLLER);
-  //ses.stub_setAddOutput((uint32_t)&k);
+  // ses.stub_setAddOutput((uint32_t)&k);
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETONEROW,
+      ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::UPDATEONEROW,
+      ODBCM_RC_SUCCESS);
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktCtrlrObj.Update(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  ktCtrlrObj.Update(db_conn,
+                               session_id,
+                               configuration_id,
+                               &k,
+                               &v,
+                               UNC_DT_CANDIDATE,
+                               ses);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// get_controller_type returns failure 
+//  get_controller_type returns failure
 TEST_F(ControllerTest, Update_03) {
   key_ctr_t k;
   val_ctr_t v;
@@ -585,16 +713,25 @@ TEST_F(ControllerTest, Update_03) {
   ses.stub_setAddOutput((uint32_t)ODBCM_RC_SUCCESS);
   ses.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
   ses.stub_setAddOutput((uint32_t)UNC_KT_CONTROLLER);
-  //ses.stub_setAddOutput((uint32_t)&k);
+  // ses.stub_setAddOutput((uint32_t)&k);
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETONEROW,
+      ODBCM_RC_CONNECTION_ERROR);
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktCtrlrObj.Update(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =  ktCtrlrObj.Update(db_conn,
+                               session_id,
+                               configuration_id,
+                               &k,
+                               &v,
+                               UNC_DT_CANDIDATE,
+                               ses);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-// UpdateKeyInstance with UNC_DT_CANDIDATE ODBC retuns ODBCM_RC_CONNECTION_ERROR
+//  UpdateKeyInstance with UNC_DT_CANDIDATE ODBC
+//  retuns ODBCM_RC_CONNECTION_ERROR
 TEST_F(ControllerTest, UpdateKeyInstance_01) {
   key_ctr_t k;
   val_ctr_t v;
@@ -609,12 +746,16 @@ TEST_F(ControllerTest, UpdateKeyInstance_01) {
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  ktCtrlrObj.UpdateKeyInstance(db_conn,&k,&v,UNC_DT_CANDIDATE,key_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::UPDATEONEROW,
+      ODBCM_RC_CONNECTION_ERROR);
+  int ret =
+      ktCtrlrObj.UpdateKeyInstance(db_conn, &k, &v, UNC_DT_CANDIDATE,
+                                   key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-// UpdateKeyInstance on unsupported datatype
+//  UpdateKeyInstance on unsupported datatype
 TEST_F(ControllerTest, UpdateKeyInstance_02) {
   key_ctr_t k;
   val_ctr_t v;
@@ -629,10 +770,11 @@ TEST_F(ControllerTest, UpdateKeyInstance_02) {
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktCtrlrObj.UpdateKeyInstance(db_conn,&k,&v,UNC_DT_RUNNING,key_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
+  int ret =  ktCtrlrObj.UpdateKeyInstance(db_conn, &k, &v,
+                                          UNC_DT_RUNNING, key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_UPDATE, ret);
 }
-// UpdateKeyInstance with UNC_DT_IMPORT ODBC retuns ODBCM_RC_CONNECTION_ERROR
+//  UpdateKeyInstance with UNC_DT_IMPORT ODBC retuns ODBCM_RC_CONNECTION_ERROR
 TEST_F(ControllerTest, UpdateKeyInstance_03) {
   key_ctr_t k;
   val_ctr_t v;
@@ -647,12 +789,15 @@ TEST_F(ControllerTest, UpdateKeyInstance_03) {
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  ktCtrlrObj.UpdateKeyInstance(db_conn,&k,&v,UNC_DT_IMPORT,key_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::UPDATEONEROW,
+      ODBCM_RC_CONNECTION_ERROR);
+  int ret =  ktCtrlrObj.UpdateKeyInstance(db_conn, &k, &v,
+                                          UNC_DT_IMPORT, key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-// UpdateKeyInstance with UNC_DT_IMPORT ODBC retuns ODBCM_RC_SUCCESS
+//  UpdateKeyInstance with UNC_DT_IMPORT ODBC retuns ODBCM_RC_SUCCESS
 TEST_F(ControllerTest, UpdateKeyInstance_04) {
   key_ctr_t k;
   val_ctr_t v;
@@ -667,12 +812,18 @@ TEST_F(ControllerTest, UpdateKeyInstance_04) {
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktCtrlrObj.UpdateKeyInstance(db_conn,&k,&v,UNC_DT_IMPORT,key_type);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::UPDATEONEROW,
+      ODBCM_RC_SUCCESS);
+  int ret =  ktCtrlrObj.UpdateKeyInstance(db_conn,
+                                          &k,
+                                          &v,
+                                          UNC_DT_IMPORT,
+                                          key_type);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// UpdateKeyInstance with UNC_DT_IMPORT ODBC retuns 
+//  UpdateKeyInstance with UNC_DT_IMPORT ODBC retuns
 TEST_F(ControllerTest, UpdateKeyInstance_05) {
   key_ctr_t k;
   val_ctr_t v;
@@ -687,12 +838,18 @@ TEST_F(ControllerTest, UpdateKeyInstance_05) {
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_TRANSACTION_ERROR);
-  int ret =  ktCtrlrObj.UpdateKeyInstance(db_conn,&k,&v,UNC_DT_IMPORT,key_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::UPDATEONEROW,
+      ODBCM_RC_TRANSACTION_ERROR);
+  int ret =  ktCtrlrObj.UpdateKeyInstance(db_conn,
+                                          &k,
+                                          &v,
+                                          UNC_DT_IMPORT,
+                                          key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
-// Delete for unsupported datatype
+//  Delete for unsupported datatype
 TEST_F(ControllerTest, Delete_01) {
   key_ctr_t k;
   val_ctr_t v;
@@ -708,11 +865,17 @@ TEST_F(ControllerTest, Delete_01) {
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktCtrlrObj.Delete(db_conn,session_id,configuration_id,&k,UNC_DT_STATE,ses);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =  ktCtrlrObj.Delete(db_conn,
+                               session_id,
+                               configuration_id,
+                               &k,
+                               UNC_DT_STATE,
+                               ses);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR,
+            ret);
 }
 
-// Domain Delete success 
+//  Domain Delete success
 TEST_F(ControllerTest, Delete_02) {
   key_ctr_t k;
   val_ctr_t v;
@@ -736,14 +899,24 @@ TEST_F(ControllerTest, Delete_02) {
   ses.stub_setAddOutput((uint32_t)UNC_KT_CONTROLLER);
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETONEROW,
+      ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::DELETEONEROW,
+      ODBCM_RC_SUCCESS);
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktCtrlrObj.Delete(db_conn,session_id,configuration_id,&k,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =  ktCtrlrObj.Delete(
+      db_conn,
+      session_id,
+      configuration_id,
+      &k,
+      UNC_DT_CANDIDATE,
+      ses);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-// get_controller_type returns failure 
+//  get_controller_type returns failure
 TEST_F(ControllerTest, Delete_03) {
   key_ctr_t k;
   val_ctr_t v;
@@ -767,13 +940,15 @@ TEST_F(ControllerTest, Delete_03) {
   ses.stub_setAddOutput((uint32_t)UNC_KT_CONTROLLER);
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
+  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW,
+                                             ODBCM_RC_CONNECTION_ERROR);
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktCtrlrObj.Delete(db_conn,session_id,configuration_id,&k,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =  ktCtrlrObj.Delete(db_conn, session_id, configuration_id,
+                               &k, UNC_DT_CANDIDATE, ses);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-// Domain Delete With boundary referred
+//  Domain Delete With boundary referred
 TEST_F(ControllerTest, Delete_04) {
   key_ctr_t k;
   val_ctr_t v;
@@ -797,14 +972,23 @@ TEST_F(ControllerTest, Delete_04) {
   ses.stub_setAddOutput((uint32_t)UNC_KT_CONTROLLER);
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETONEROW,
+      ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::ISROWEXISTS,
+      ODBCM_RC_ROW_EXISTS);
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktCtrlrObj.Delete(db_conn,session_id,configuration_id,&k,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =  ktCtrlrObj.Delete(db_conn,
+                               session_id,
+                               configuration_id,
+                               &k,
+                               UNC_DT_CANDIDATE,
+                               ses);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-// UpdateKeyInstance with ODBC retuns ODBCM_RC_CONNECTION_ERROR
+//  UpdateKeyInstance with ODBC retuns ODBCM_RC_CONNECTION_ERROR
 TEST_F(ControllerTest, GetModifiedRows_01) {
   key_ctr_t k;
   val_ctr v;
@@ -819,12 +1003,13 @@ TEST_F(ControllerTest, GetModifiedRows_01) {
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETMODIFIEDROWS, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  ktCtrlrObj.GetModifiedRows(db_conn,obj_key_struct,UPDATED);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETMODIFIEDROWS, ODBCM_RC_CONNECTION_ERROR);
+  int ret =  ktCtrlrObj.GetModifiedRows(db_conn, obj_key_struct, UPDATED);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-// ODBC retuns ODBCM_RC_RECORD_NOT_FOUND 
+//  ODBC retuns ODBCM_RC_RECORD_NOT_FOUND
 TEST_F(ControllerTest, GetModifiedRows_02) {
   key_ctr_t k;
   val_ctr v;
@@ -839,12 +1024,14 @@ TEST_F(ControllerTest, GetModifiedRows_02) {
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETMODIFIEDROWS, ODBCM_RC_RECORD_NOT_FOUND);
-  int ret =  ktCtrlrObj.GetModifiedRows(db_conn,obj_key_struct,UPDATED);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETMODIFIEDROWS,
+      ODBCM_RC_RECORD_NOT_FOUND);
+  int ret =  ktCtrlrObj.GetModifiedRows(db_conn, obj_key_struct, UPDATED);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-// ODBC retuns ODBCM_RC_SUCCESS 
+//  ODBC retuns ODBCM_RC_SUCCESS
 TEST_F(ControllerTest, GetModifiedRows_03) {
   key_ctr_t k;
   val_ctr v;
@@ -859,12 +1046,14 @@ TEST_F(ControllerTest, GetModifiedRows_03) {
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETMODIFIEDROWS, ODBCM_RC_SUCCESS);
-  int ret =  ktCtrlrObj.GetModifiedRows(db_conn,obj_key_struct,UPDATED);
+  unc::uppl::ODBCManager::stub_setResultcode
+      (unc::uppl::ODBCManager::GETMODIFIEDROWS, ODBCM_RC_SUCCESS);
+  int ret =
+      ktCtrlrObj.GetModifiedRows(db_conn, obj_key_struct, UPDATED);
   EXPECT_EQ(ODBCM_RC_SUCCESS, ret);
 }
 
-// ODBC retuns ODBCM_RC_FAILED
+//  ODBC retuns ODBCM_RC_FAILED
 TEST_F(ControllerTest, GetModifiedRows_04) {
   key_ctr_t k;
   val_ctr v;
@@ -879,22 +1068,24 @@ TEST_F(ControllerTest, GetModifiedRows_04) {
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETMODIFIEDROWS, ODBCM_RC_FAILED);
-  int ret =  ktCtrlrObj.GetModifiedRows(db_conn,obj_key_struct,UPDATED);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETMODIFIEDROWS, ODBCM_RC_FAILED);
+  int ret =  ktCtrlrObj.GetModifiedRows(db_conn, obj_key_struct, UPDATED);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
 TEST_F(ControllerTest, SetOperStatus_001) {
-
   key_ctr_t k;
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  ktCtrlrObj;
   OdbcmConnectionHandler *db_conn =NULL;
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_FAILED);
-  int ret =  ktCtrlrObj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplControllerOperStatus)1);
-  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_FAILED);
+  int ret =  ktCtrlrObj.SetOperStatus(db_conn, UNC_DT_STATE, &k,
+                                      (UpplControllerOperStatus)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
 TEST_F(ControllerTest, SetOperStatus_002) {
@@ -903,9 +1094,11 @@ TEST_F(ControllerTest, SetOperStatus_002) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  ktCtrlrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
-  int ret =  ktCtrlrObj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplControllerOperStatus)0);
-  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
+  int ret =  ktCtrlrObj.SetOperStatus(db_conn, UNC_DT_STATE, &k,
+                                      (UpplControllerOperStatus)0);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
 TEST_F(ControllerTest, SetOperStatus_003) {
@@ -915,10 +1108,13 @@ TEST_F(ControllerTest, SetOperStatus_003) {
   Kt_Controller  ktCtrlrObj;
   OdbcmConnectionHandler *db_conn =NULL;
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  int ret =  ktCtrlrObj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplControllerOperStatus)0);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  int ret =  ktCtrlrObj.SetOperStatus(
+      db_conn, UNC_DT_STATE, &k, (UpplControllerOperStatus)0);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(ControllerTest, SetOperStatus_004) {
@@ -931,56 +1127,61 @@ TEST_F(ControllerTest, SetOperStatus_004) {
   ser_evt.addOutput((uint32_t)UNC_OP_CREATE);
   ser_evt.addOutput((uint32_t)UNC_DT_STATE);
   ser_evt.addOutput((uint32_t)UNC_KT_PORT);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktCtrlrObj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplControllerOperStatus)0);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode
+      (unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode
+      (unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret =  ktCtrlrObj.SetOperStatus(
+      db_conn, UNC_DT_STATE, &k, (UpplControllerOperStatus)0);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// GetOperStatus ODBC returns failure
+//  GetOperStatus ODBC returns failure
 TEST_F(ControllerTest, GetOperStatus_001) {
-
   key_ctr_t k;
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  ktCtrlrObj;
   OdbcmConnectionHandler *db_conn =NULL;
   uint8_t op_status;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  int ret =  ktCtrlrObj.GetOperStatus(db_conn,UNC_DT_STATE,&k,op_status);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  int ret =  ktCtrlrObj.GetOperStatus(
+      db_conn, UNC_DT_STATE, &k, op_status);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
-// GetOperStatus ODBC returns SUCCESS
+//  GetOperStatus ODBC returns SUCCESS
 TEST_F(ControllerTest, GetOperStatus_002) {
-
   key_ctr_t k;
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  ktCtrlrObj;
   OdbcmConnectionHandler *db_conn =NULL;
   uint8_t op_status;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktCtrlrObj.GetOperStatus(db_conn,UNC_DT_STATE,&k,op_status);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret =  ktCtrlrObj.GetOperStatus(
+      db_conn, UNC_DT_STATE, &k, op_status);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(ControllerTest, GetOperStatus_003) {
-
   key_ctr_t k;
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  ktCtrlrObj;
   OdbcmConnectionHandler *db_conn =NULL;
   uint8_t op_status;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS_WITH_INFO);
-  int ret =  ktCtrlrObj.GetOperStatus(db_conn,UNC_DT_STATE,&k,op_status);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS_WITH_INFO);
+  int ret =  ktCtrlrObj.GetOperStatus(
+      db_conn, UNC_DT_STATE, &k, op_status);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
-// NotifyOperStatus with NULL keystruct
+//  NotifyOperStatus with NULL keystruct
 TEST_F(ControllerTest, NotifyOperStatus_01) {
-
   key_ctr_t k;
   val_ctr v;
   memset(&v, 0, sizeof(v));
@@ -995,12 +1196,13 @@ TEST_F(ControllerTest, NotifyOperStatus_01) {
 
   Kt_Controller  ktCtrlrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktCtrlrObj.NotifyOperStatus(db_conn,UNC_DT_STATE, &k, &v, oper_stat_hldr);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  ktCtrlrObj.NotifyOperStatus(
+      db_conn, UNC_DT_STATE, &k, &v, oper_stat_hldr);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /*
-// NotifyOperStatus 
+//  NotifyOperStatus
 TEST_F(ControllerTest, NotifyOperStatus_02) {
   key_ctr_t k;
   val_ctr v;
@@ -1015,12 +1217,14 @@ TEST_F(ControllerTest, NotifyOperStatus_02) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   vector<OperStatusHolder> oper_stat_hldr;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktCtrlrObj.NotifyOperStatus(db_conn,UNC_DT_STATE,&k,&v,oper_stat_hldr );
-  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode
+  (unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret =  ktCtrlrObj.NotifyOperStatus
+  (db_conn, UNC_DT_STATE, &k, &v, oper_stat_hldr );
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
-// NotifyOperStatus Controller oper_status  retunrs failure 
+//  NotifyOperStatus Controller oper_status  retunrs failure
 TEST_F(ControllerTest, NotifyOperStatus_03) {
   key_ctr_t k;
   val_ctr v;
@@ -1035,13 +1239,15 @@ TEST_F(ControllerTest, NotifyOperStatus_03) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   vector<OperStatusHolder> oper_stat_hldr;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  int ret =  ktCtrlrObj.NotifyOperStatus(db_conn,UNC_DT_STATE,&k,&v,oper_stat_hldr);
-  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode
+  (unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  int ret =
+  ktCtrlrObj.NotifyOperStatus(db_conn, UNC_DT_STATE, &k, &v, oper_stat_hldr);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_UPDATE, ret);
 }
 */
 
-// HandleOperStatus Controller oper_status returns success
+//  HandleOperStatus Controller oper_status returns success
 TEST_F(ControllerTest, HandleOperStatus_01) {
   key_ctr_t k;
   val_ctr v;
@@ -1055,13 +1261,15 @@ TEST_F(ControllerTest, HandleOperStatus_01) {
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktCtrlrObj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  int ret =  ktCtrlrObj.HandleOperStatus(db_conn, UNC_DT_STATE, &k, &v);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// HandleOperStatus Controller oper_status  retunrs failure 
+//  HandleOperStatus Controller oper_status  retunrs failure
 TEST_F(ControllerTest, HandleOperStatus_02) {
   key_ctr_t k;
   val_ctr v;
@@ -1075,12 +1283,13 @@ TEST_F(ControllerTest, HandleOperStatus_02) {
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  int ret =  ktCtrlrObj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v);
-  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  int ret =  ktCtrlrObj.HandleOperStatus(db_conn, UNC_DT_STATE, &k, &v);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
-// HandleOperStatus with bIsInternal false 
+//  HandleOperStatus with bIsInternal false
 TEST_F(ControllerTest, HandleOperStatus_03) {
   key_ctr_t k;
   val_ctr v;
@@ -1095,12 +1304,15 @@ TEST_F(ControllerTest, HandleOperStatus_03) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
   bool bIsInternal = false;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktCtrlrObj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v,bIsInternal);
-  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret =  ktCtrlrObj.HandleOperStatus(
+      db_conn, UNC_DT_STATE, &k, &v, bIsInternal);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
-// HandleOperStatus with bIsInternal false and oper_status is UPPL_CONTROLLER_OPER_UP 
+//  HandleOperStatus with bIsInternal false
+//  and oper_status is UPPL_CONTROLLER_OPER_UP
 TEST_F(ControllerTest, HandleOperStatus_04) {
   key_ctr_t k;
   val_ctr_st_t v;
@@ -1109,19 +1321,23 @@ TEST_F(ControllerTest, HandleOperStatus_04) {
   memset(v.controller.description, '\0', 128);
   memcpy(v.controller.description, valDescription, strlen(valDescription));
   v.valid[kIdxDescription] = 1;
-  v.oper_status=UPPL_CONTROLLER_OPER_UP;
+  v.oper_status = UPPL_CONTROLLER_OPER_UP;
   Kt_Controller  ktCtrlrObj;
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
   bool bIsInternal = false;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktCtrlrObj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v,bIsInternal);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  int ret =  ktCtrlrObj.HandleOperStatus(
+      db_conn, UNC_DT_STATE, &k, &v, bIsInternal);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// HandleOperStatus with bIsInternal true and oper_status is UPPL_CONTROLLER_OPER_UP 
+//  HandleOperStatus with bIsInternal
+//  true and oper_status is UPPL_CONTROLLER_OPER_UP
 TEST_F(ControllerTest, HandleOperStatus_05) {
   key_ctr_t k;
   val_ctr_st_t v;
@@ -1130,19 +1346,23 @@ TEST_F(ControllerTest, HandleOperStatus_05) {
   memset(v.controller.description, '\0', 128);
   memcpy(v.controller.description, valDescription, strlen(valDescription));
   v.valid[kIdxDescription] = 1;
-  v.oper_status=UPPL_CONTROLLER_OPER_UP;
+  v.oper_status = UPPL_CONTROLLER_OPER_UP;
   Kt_Controller  ktCtrlrObj;
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
-  bool bIsInternal=true;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktCtrlrObj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v,bIsInternal);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  bool bIsInternal = true;
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  int ret =  ktCtrlrObj.HandleOperStatus(
+      db_conn, UNC_DT_STATE, &k, &v, bIsInternal);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// HandleOperStatus with bIsInternal true and oper_status is UPPL_CONTROLLER_OPER_DOWN 
+//  HandleOperStatus with bIsInternal true
+//  and oper_status is UPPL_CONTROLLER_OPER_DOWN
 TEST_F(ControllerTest, HandleOperStatus_06) {
   key_ctr_t k;
   val_ctr_st_t v;
@@ -1151,19 +1371,22 @@ TEST_F(ControllerTest, HandleOperStatus_06) {
   memset(v.controller.description, '\0', 128);
   memcpy(v.controller.description, valDescription, strlen(valDescription));
   v.valid[kIdxDescription] = 1;
-  v.oper_status=UPPL_CONTROLLER_OPER_DOWN;
+  v.oper_status = UPPL_CONTROLLER_OPER_DOWN;
   Kt_Controller  ktCtrlrObj;
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   OdbcmConnectionHandler *db_conn =NULL;
   bool bIsInternal = true;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktCtrlrObj.HandleOperStatus(db_conn,UNC_DT_RUNNING,&k,&v,bIsInternal);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  int ret =  ktCtrlrObj.HandleOperStatus(
+      db_conn, UNC_DT_RUNNING, &k, &v, bIsInternal);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// HandleDriverAlarms with unsupported alarm type
+//  HandleDriverAlarms with unsupported alarm type
 TEST_F(ControllerTest, HandleDriverAlarms_01) {
   key_ctr_t k;
   val_ctr v;
@@ -1173,12 +1396,14 @@ TEST_F(ControllerTest, HandleDriverAlarms_01) {
   vector<void *> obj_key_struct;
   Kt_Controller  ktCtrlrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  int ret =  ktCtrlrObj.HandleDriverAlarms(db_conn,UNC_DT_STATE,alarm_type,oper_type,&k,&v);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  int ret =  ktCtrlrObj.HandleDriverAlarms(
+      db_conn, UNC_DT_STATE, alarm_type, oper_type, &k, &v);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// HandleDriverAlarms with UNC_COREDOMAIN_SPLIT alarm type
+//  HandleDriverAlarms with UNC_COREDOMAIN_SPLIT alarm type
 TEST_F(ControllerTest, HandleDriverAlarms_02) {
   key_ctr_t k;
   val_ctr v;
@@ -1190,12 +1415,14 @@ TEST_F(ControllerTest, HandleDriverAlarms_02) {
   vector<void *> obj_key_struct;
   Kt_Controller  ktCtrlrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  int ret =  ktCtrlrObj.HandleDriverAlarms(db_conn,UNC_DT_STATE,alarm_type,oper_type,&k,&v);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  int ret =  ktCtrlrObj.HandleDriverAlarms(
+      db_conn, UNC_DT_STATE, alarm_type, oper_type, &k, &v);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// HandleDriverAlarms with oper_type UNC_OP_CREATE 
+//  HandleDriverAlarms with oper_type UNC_OP_CREATE
 TEST_F(ControllerTest, HandleDriverAlarms_03) {
   key_ctr_t k;
   val_ctr v;
@@ -1207,12 +1434,14 @@ TEST_F(ControllerTest, HandleDriverAlarms_03) {
   vector<void *> obj_key_struct;
   Kt_Controller  ktCtrlrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktCtrlrObj.HandleDriverAlarms(db_conn,UNC_DT_STATE,alarm_type,oper_type,&k,&v);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret =  ktCtrlrObj.HandleDriverAlarms(
+      db_conn, UNC_DT_STATE, alarm_type, oper_type, &k, &v);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// HandleDriverAlarms with oper_type UNC_OP_DELETE 
+//  HandleDriverAlarms with oper_type UNC_OP_DELETE
 TEST_F(ControllerTest, HandleDriverAlarms_04) {
   key_ctr_t k;
   val_ctr v;
@@ -1224,13 +1453,16 @@ TEST_F(ControllerTest, HandleDriverAlarms_04) {
   vector<void *> obj_key_struct;
   Kt_Controller  ktCtrlrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktCtrlrObj.HandleDriverAlarms(db_conn,UNC_DT_STATE,alarm_type,oper_type,&k,&v);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  int ret =  ktCtrlrObj.HandleDriverAlarms(
+      db_conn, UNC_DT_STATE, alarm_type, oper_type, &k, &v);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// PerformSemanticValidation with oper_type UNC_OP_CREATE 
+//  PerformSemanticValidation with oper_type UNC_OP_CREATE
 TEST_F(ControllerTest, PerformSemanticValidation_11) {
   key_ctr_t k;
   val_ctr v;
@@ -1241,12 +1473,14 @@ TEST_F(ControllerTest, PerformSemanticValidation_11) {
   vector<void *> obj_key_struct;
   Kt_Controller  ktCtrlrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  int ret =  ktCtrlrObj.PerformSemanticValidation(db_conn, &k, &v, oper_type, UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_INSTANCE_EXISTS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret =  ktCtrlrObj.PerformSemanticValidation(
+      db_conn, &k, &v, oper_type, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_INSTANCE_EXISTS, ret);
 }
 
-// PerformSemanticValidation with oper_type UNC_OP_CREATE 
+//  PerformSemanticValidation with oper_type UNC_OP_CREATE
 TEST_F(ControllerTest, PerformSemanticValidation_02) {
   key_ctr_t k;
   val_ctr v;
@@ -1257,12 +1491,15 @@ TEST_F(ControllerTest, PerformSemanticValidation_02) {
   vector<void *> obj_key_struct;
   Kt_Controller  ktCtrlrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  ktCtrlrObj.PerformSemanticValidation(db_conn, &k, &v, oper_type, UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode
+      (unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
+  int ret =
+      ktCtrlrObj.PerformSemanticValidation(
+          db_conn, &k, &v, oper_type, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-// PerformSemanticValidation with oper_type UNC_OP_CREATE 
+//  PerformSemanticValidation with oper_type UNC_OP_CREATE
 TEST_F(ControllerTest, PerformSemanticValidation_03) {
   key_ctr_t k;
   val_ctr v;
@@ -1273,12 +1510,14 @@ TEST_F(ControllerTest, PerformSemanticValidation_03) {
   vector<void *> obj_key_struct;
   Kt_Controller  ktCtrlrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_TRANSACTION_ERROR);
-  int ret =  ktCtrlrObj.PerformSemanticValidation(db_conn, &k, &v, oper_type, UNC_DT_IMPORT);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_TRANSACTION_ERROR);
+  int ret =  ktCtrlrObj.PerformSemanticValidation(
+      db_conn, &k, &v, oper_type, UNC_DT_IMPORT);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// PerformSemanticValidation with oper_type UNC_OP_READ 
+//  PerformSemanticValidation with oper_type UNC_OP_READ
 TEST_F(ControllerTest, PerformSemanticValidation_04) {
   key_ctr_t k;
   val_ctr v;
@@ -1289,12 +1528,14 @@ TEST_F(ControllerTest, PerformSemanticValidation_04) {
   vector<void *> obj_key_struct;
   Kt_Controller  ktCtrlrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  int ret =  ktCtrlrObj.PerformSemanticValidation(db_conn, &k, &v, oper_type, UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret =  ktCtrlrObj.PerformSemanticValidation(
+      db_conn, &k, &v, oper_type, UNC_DT_STATE);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// PerformSemanticValidation with oper_type UNC_OP_UPDATE 
+//  PerformSemanticValidation with oper_type UNC_OP_UPDATE
 TEST_F(ControllerTest, PerformSemanticValidation_05) {
   key_ctr_t k;
   val_ctr v;
@@ -1305,12 +1546,14 @@ TEST_F(ControllerTest, PerformSemanticValidation_05) {
   vector<void *> obj_key_struct;
   Kt_Controller  ktCtrlrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  ktCtrlrObj.PerformSemanticValidation(db_conn, &k, &v, oper_type, UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
+  int ret =  ktCtrlrObj.PerformSemanticValidation(
+      db_conn, &k, &v, oper_type, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-// PerformSemanticValidation with oper_type UNC_OP_DELETE 
+//  PerformSemanticValidation with oper_type UNC_OP_DELETE
 TEST_F(ControllerTest, PerformSemanticValidation_06) {
   key_ctr_t k;
   val_ctr v;
@@ -1321,13 +1564,16 @@ TEST_F(ControllerTest, PerformSemanticValidation_06) {
   vector<void *> obj_key_struct;
   Kt_Controller  ktCtrlrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_QUERY_TIMEOUT);
-  int ret =  ktCtrlrObj.PerformSemanticValidation(db_conn, &k, &v, oper_type, UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_QUERY_TIMEOUT);
+  int ret =
+      ktCtrlrObj.PerformSemanticValidation(
+          db_conn, &k, &v, oper_type, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 /*
-// ReadBulkInternal with max_count zero
+//  ReadBulkInternal with max_count zero
 TEST_F(ControllerTest, ReadBulkInternal_01) {
   key_ctr_t k;
   val_ctr v;
@@ -1340,20 +1586,21 @@ TEST_F(ControllerTest, ReadBulkInternal_01) {
   vector<void *> obj_key_struct;
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-UpplReturnCode Kt_Boundary::ReadBulkInternal(
+UncRespCode Kt_Boundary::ReadBulkInternal(
     OdbcmConnectionHandler *db_conn,
     void* key_struct,
     void *val_struct,
     uint32_t data_type,
     uint32_t max_rep_ct,
     vector<key_boundary_t> &vect_key_boundary,
-    vector<val_boundary_st_t> &vect_val_boundary) 
+    vector<val_boundary_st_t> &vect_val_boundary)
 
-  int ret =  KtctrObj.ReadBulkInternal(db_conn, &k, &v, UNC_DT_STATE, max_rep_ct,  vect_ctr_id, vect_val_ctr_st);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  KtctrObj.ReadBulkInternal(
+  db_conn, &k, &v, UNC_DT_STATE, max_rep_ct,  vect_ctr_id, vect_val_ctr_st);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// ReadBulkInternal with read_db_status ODBCM_RC_RECORD_NOT_FOUND
+//  ReadBulkInternal with read_db_status ODBCM_RC_RECORD_NOT_FOUND
 TEST_F(ControllerTest, ReadBulkInternal_02) {
   key_ctr_t k;
   vector<val_ctr_st> vect_val_ctr_st;
@@ -1364,12 +1611,14 @@ TEST_F(ControllerTest, ReadBulkInternal_02) {
   vector<void *> obj_key_struct;
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
-  int ret =  KtctrObj.ReadBulkInternal(db_conn, &k, UNC_DT_STATE, max_rep_ct, vect_val_ctr_st, vect_domain_id);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+  unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
+  int ret =  KtctrObj.ReadBulkInternal(
+  db_conn, &k, UNC_DT_STATE, max_rep_ct, vect_val_ctr_st, vect_domain_id);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-// ReadBulkInternal with read_db_status ODBCM_RC_CONNECTION_ERROR
+//  ReadBulkInternal with read_db_status ODBCM_RC_CONNECTION_ERROR
 TEST_F(ControllerTest, ReadBulkInternal_03) {
   key_ctr_t k;
   vector<val_ctr_st> vect_val_ctr_st;
@@ -1380,12 +1629,14 @@ TEST_F(ControllerTest, ReadBulkInternal_03) {
   vector<void *> obj_key_struct;
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  KtctrObj.ReadBulkInternal(db_conn, &k, UNC_DT_STATE, max_rep_ct, vect_val_ctr_st, vect_domain_id);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+  unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
+  int ret =  KtctrObj.ReadBulkInternal(
+  db_conn, &k, UNC_DT_STATE, max_rep_ct, vect_val_ctr_st, vect_domain_id);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-// ReadBulkInternal with read_db_status ODBCM_RC_TABLE_NOT_FOUND
+//  ReadBulkInternal with read_db_status ODBCM_RC_TABLE_NOT_FOUND
 TEST_F(ControllerTest, ReadBulkInternal_04) {
   key_ctr_t k;
   vector<val_ctr_st> vect_val_ctr_st;
@@ -1396,13 +1647,14 @@ TEST_F(ControllerTest, ReadBulkInternal_04) {
   vector<void *> obj_key_struct;
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_TABLE_NOT_FOUND);
-  int ret =  KtctrObj.ReadBulkInternal(db_conn, &k, UNC_DT_STATE, max_rep_ct, 
-                                              vect_val_ctr_st, vect_domain_id);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_TABLE_NOT_FOUND);
+  int ret =  KtctrObj.ReadBulkInternal(db_conn, &k, UNC_DT_STATE, max_rep_ct,
+                                       vect_val_ctr_st, vect_domain_id);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
-// ReadBulkInternal with read_db_status ODBCM_RC_SUCCESS
+//  ReadBulkInternal with read_db_status ODBCM_RC_SUCCESS
 TEST_F(ControllerTest, ReadBulkInternal_05) {
   key_ctr_t k;
   vector<val_ctr_st> vect_val_ctr_st;
@@ -1413,15 +1665,16 @@ TEST_F(ControllerTest, ReadBulkInternal_05) {
   vector<void *> obj_key_struct;
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
   int ret =  KtctrObj.ReadBulkInternal(db_conn, &k, UNC_DT_STATE, max_rep_ct,
-                                             vect_val_ctr_st, vect_domain_id);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+                                      vect_val_ctr_st, vect_domain_id);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 */
 
-//  ReadBulk with get_controller_type returns failure
-//  MEM
+//   ReadBulk with get_controller_type returns failure
+//   MEM
 TEST_F(ControllerTest, ReadBulk_02) {
   key_ctr_t k;
   int child_index = 2;
@@ -1434,15 +1687,18 @@ TEST_F(ControllerTest, ReadBulk_02) {
   vector<void *> obj_key_struct;
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
   int ret =  KtctrObj.ReadBulk(db_conn, &k, UNC_DT_CANDIDATE, max_rep_ct,
-                              child_index, parent_call,is_read_next, read_req);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+                              child_index, parent_call, is_read_next, read_req);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//  ReadBulk with data type UNC_DT_IMPORT
+//   ReadBulk with data type UNC_DT_IMPORT
 TEST_F(ControllerTest, ReadBulk_01) {
   key_ctr_t k;
   int child_index = 0;
@@ -1456,11 +1712,11 @@ TEST_F(ControllerTest, ReadBulk_01) {
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtctrObj.ReadBulk(db_conn, &k, UNC_DT_IMPORT, max_rep_ct,
-                              child_index, parent_call,is_read_next, read_req);
-  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+                              child_index, parent_call, is_read_next, read_req);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
-//  ReadBulk with data type UNC_DT_IMPORT
+//   ReadBulk with data type UNC_DT_IMPORT
 TEST_F(ControllerTest, ReadBulk_05) {
   key_ctr_t k;
   int child_index = -1;
@@ -1474,12 +1730,12 @@ TEST_F(ControllerTest, ReadBulk_05) {
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtctrObj.ReadBulk(db_conn, &k, UNC_DT_IMPORT, max_rep_ct,
-                              child_index, parent_call,is_read_next, read_req);
-  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+                              child_index, parent_call, is_read_next, read_req);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
 
-//  ReadBulk with data type UNC_DT_IMPORT
+//   ReadBulk with data type UNC_DT_IMPORT
 TEST_F(ControllerTest, ReadBulk_06) {
   key_ctr_t k;
   int child_index = 2;
@@ -1493,11 +1749,11 @@ TEST_F(ControllerTest, ReadBulk_06) {
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtctrObj.ReadBulk(db_conn, &k, UNC_DT_IMPORT, max_rep_ct,
-                              child_index, parent_call,is_read_next, read_req);
-  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+                              child_index, parent_call, is_read_next, read_req);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
-// DeleteKeyInstance with data type UNC_DT_RUNNING
+//  DeleteKeyInstance with data type UNC_DT_RUNNING
 TEST_F(ControllerTest, DeleteKeyInstance_01) {
   key_ctr_t k;
   uint32_t key_type = 0;
@@ -1505,12 +1761,14 @@ TEST_F(ControllerTest, DeleteKeyInstance_01) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  //unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret =  KtctrObj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, key_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_DELETE, ret);
+  // unc::uppl::ODBCManager::stub_setResultcode(
+  // unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  int ret =  KtctrObj.DeleteKeyInstance(
+      db_conn, &k, UNC_DT_STATE, key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_DELETE, ret);
 }
 
-// DeleteKeyInstance with out child
+//  DeleteKeyInstance with out child
 TEST_F(ControllerTest, DeleteKeyInstance_02) {
   key_ctr_t k;
   uint32_t key_type = 0;
@@ -1518,12 +1776,14 @@ TEST_F(ControllerTest, DeleteKeyInstance_02) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
-  int ret =  KtctrObj.DeleteKeyInstance(db_conn, &k, UNC_DT_CANDIDATE, key_type);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
+  int ret =  KtctrObj.DeleteKeyInstance(db_conn, &k,
+                                        UNC_DT_CANDIDATE, key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-// DeleteKeyInstance with out child
+//  DeleteKeyInstance with out child
 TEST_F(ControllerTest, DeleteKeyInstance_03) {
   key_ctr_t k;
   uint32_t key_type = 0;
@@ -1531,12 +1791,14 @@ TEST_F(ControllerTest, DeleteKeyInstance_03) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
-  int ret =  KtctrObj.DeleteKeyInstance(db_conn, &k, UNC_DT_AUDIT, key_type);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
+  int ret =  KtctrObj.DeleteKeyInstance(db_conn,
+                                        &k, UNC_DT_AUDIT, key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-// DeleteKeyInstance with out child
+//  DeleteKeyInstance with out child
 TEST_F(ControllerTest, DeleteKeyInstance_04) {
   key_ctr_t k;
   uint32_t key_type = 0;
@@ -1544,12 +1806,13 @@ TEST_F(ControllerTest, DeleteKeyInstance_04) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_TRANSACTION_ERROR);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_TRANSACTION_ERROR);
   int ret =  KtctrObj.DeleteKeyInstance(db_conn, &k, UNC_DT_IMPORT, key_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_DELETE, ret);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_DELETE, ret);
 }
 
-// DeleteKeyInstance suceess
+//  DeleteKeyInstance suceess
 TEST_F(ControllerTest, DeleteKeyInstance_05) {
   key_ctr_t k;
   uint32_t key_type = 0;
@@ -1557,11 +1820,12 @@ TEST_F(ControllerTest, DeleteKeyInstance_05) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtctrObj.DeleteKeyInstance(db_conn, &k, UNC_DT_IMPORT, key_type);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
-// FreeChildKeyStruct success
+//  FreeChildKeyStruct success
 TEST_F(ControllerTest, FreeChildKeyStruct_01) {
   void *k = new key_ctr_domain_t;
   int child_class = 0;
@@ -1569,52 +1833,52 @@ TEST_F(ControllerTest, FreeChildKeyStruct_01) {
   KtctrObj.FreeChildKeyStruct(k, child_class);
 }
 
-// FreeChildKeyStruct suceess
+//  FreeChildKeyStruct suceess
 TEST_F(ControllerTest, FreeChildKeyStruct_02) {
   void *key = new key_logical_port_t;
   int child_class = 1;
   Kt_Controller  KtctrObj;
-  int ret =  UPPL_RC_SUCCESS;
+  int ret =  UNC_RC_SUCCESS;
   KtctrObj.FreeChildKeyStruct(key, child_class);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// FreeChildKeyStruct suceess
+//  FreeChildKeyStruct suceess
 TEST_F(ControllerTest, FreeChildKeyStruct_03) {
   void *key = new key_link_t;
   int child_class = 2;
   Kt_Controller  KtctrObj;
-  int ret =  UPPL_RC_SUCCESS;
+  int ret =  UNC_RC_SUCCESS;
   KtctrObj.FreeChildKeyStruct(key, child_class);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// getChildKeyStruct success
+//  getChildKeyStruct success
 TEST_F(ControllerTest, getChildKeyStruct_01) {
   int child_class = 0;
   Kt_Controller  KtctrObj;
   KtctrObj.getChildKeyStruct(child_class, "controller1");
 }
 
-// getChildKeyStruct suceess
+//  getChildKeyStruct suceess
 TEST_F(ControllerTest, getChildKeyStruct_02) {
   int child_class = 1;
   Kt_Controller  KtctrObj;
-  int ret =  UPPL_RC_SUCCESS;
+  int ret =  UNC_RC_SUCCESS;
   KtctrObj.getChildKeyStruct(child_class, "controller1");
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// getChildKeyStruct suceess
+//  getChildKeyStruct suceess
 TEST_F(ControllerTest, getChildKeyStruct_03) {
   int child_class = 2;
   Kt_Controller  KtctrObj;
-  int ret =  UPPL_RC_SUCCESS;
+  int ret =  UNC_RC_SUCCESS;
   KtctrObj.getChildKeyStruct(child_class, "controller1");
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//PerformRead with negative option1
+// PerformRead with negative option1
 TEST_F(ControllerTest, PerformRead_Neg_option1_01) {
   key_ctr_t k;
   val_ctr v;
@@ -1634,11 +1898,14 @@ TEST_F(ControllerTest, PerformRead_Neg_option1_01) {
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_CONTROLLER);
 
-  int ret =  KtctrObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =  KtctrObj.PerformRead(
+      db_conn, (uint32_t)0, (uint32_t)0, &k, &v,
+      (uint32_t)UNC_DT_STATE, (uint32_t)UNC_OP_READ, sess,
+      (uint32_t)UNC_OPT1_DETAIL, (uint32_t)UNC_OPT2_NONE, (uint32_t)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-//PerformRead with negative option1 
+// PerformRead with negative option1
 TEST_F(ControllerTest, PerformRead_Neg_option1_02) {
   key_ctr_t k;
   val_ctr v;
@@ -1655,14 +1922,18 @@ TEST_F(ControllerTest, PerformRead_Neg_option1_02) {
   sess.stub_setAddOutput((uint32_t)UNC_OPT1_DETAIL);
   sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);
   sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
-  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_INVALID_OPTION1);
+  sess.stub_setAddOutput((uint32_t)UNC_UPPL_RC_ERR_INVALID_OPTION1);
   sess.stub_setAddOutput((uint32_t)UNC_KT_CONTROLLER);
 
-  int ret =  KtctrObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  KtctrObj.PerformRead(
+      db_conn, (uint32_t)0, (uint32_t)0, &k, &v,
+      (uint32_t)UNC_DT_STATE, (uint32_t)UNC_OP_READ, sess,
+      (uint32_t)UNC_OPT1_DETAIL,
+      (uint32_t)UNC_OPT2_NONE, (uint32_t)1);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//PerformRead with negative option2 
+// PerformRead with negative option2
 TEST_F(ControllerTest, PerformRead_Neg_option2_03) {
   key_ctr_t k;
   val_ctr v;
@@ -1682,11 +1953,15 @@ TEST_F(ControllerTest, PerformRead_Neg_option2_03) {
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_CONTROLLER);
 
-  int ret =  KtctrObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_MAC_ENTRY_STATIC,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =  KtctrObj.PerformRead(
+      db_conn, (uint32_t)0, (uint32_t)0, &k, &v,
+      (uint32_t)UNC_DT_STATE, (uint32_t)UNC_OP_READ,
+      sess, (uint32_t)UNC_OPT1_NORMAL,
+      (uint32_t)UNC_OPT2_MAC_ENTRY_STATIC, (uint32_t)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-//PerformRead with negative option1 
+// PerformRead with negative option1
 TEST_F(ControllerTest, PerformRead_Neg_option2_04) {
   key_ctr_t k;
   val_ctr v;
@@ -1703,14 +1978,18 @@ TEST_F(ControllerTest, PerformRead_Neg_option2_04) {
   sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);
   sess.stub_setAddOutput((uint32_t)UNC_OPT2_MAC_ENTRY_STATIC);
   sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
-  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_INVALID_OPTION2);
+  sess.stub_setAddOutput((uint32_t)UNC_UPPL_RC_ERR_INVALID_OPTION2);
   sess.stub_setAddOutput((uint32_t)UNC_KT_CONTROLLER);
 
-  int ret =  KtctrObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_MAC_ENTRY_STATIC,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  KtctrObj.PerformRead(
+      db_conn, (uint32_t)0, (uint32_t)0, &k, &v,
+      (uint32_t)UNC_DT_STATE, (uint32_t)UNC_OP_READ,
+      sess, (uint32_t)UNC_OPT1_NORMAL,
+      (uint32_t)UNC_OPT2_MAC_ENTRY_STATIC, (uint32_t)1);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//PerformRead with unsupported datatype 
+// PerformRead with unsupported datatype
 TEST_F(ControllerTest, PerformRead_Neg_datatype_05) {
   key_ctr_t k;
   val_ctr v;
@@ -1730,11 +2009,15 @@ TEST_F(ControllerTest, PerformRead_Neg_datatype_05) {
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_CONTROLLER);
 
-  int ret =  KtctrObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_AUDIT,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =  KtctrObj.PerformRead(
+      db_conn, (uint32_t)0, (uint32_t)0, &k, &v,
+      (uint32_t)UNC_DT_AUDIT, (uint32_t)UNC_OP_READ,
+      sess, (uint32_t)UNC_OPT1_NORMAL,
+      (uint32_t)UNC_OPT2_NONE, (uint32_t)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-//PerformRead with negative dataype
+// PerformRead with negative dataype
 TEST_F(ControllerTest, PerformRead_Neg_datatype_06) {
   key_ctr_t k;
   val_ctr v;
@@ -1751,14 +2034,18 @@ TEST_F(ControllerTest, PerformRead_Neg_datatype_06) {
   sess.stub_setAddOutput((uint32_t)UNC_OPT1_DETAIL);
   sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);
   sess.stub_setAddOutput((uint32_t)UNC_DT_AUDIT);
-  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
+  sess.stub_setAddOutput((uint32_t)UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
   sess.stub_setAddOutput((uint32_t)UNC_KT_CONTROLLER);
 
-  int ret =  KtctrObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_AUDIT,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  KtctrObj.PerformRead(
+      db_conn, (uint32_t)0,
+      (uint32_t)0, &k, &v, (uint32_t)UNC_DT_AUDIT,
+      (uint32_t)UNC_OP_READ, sess,
+      (uint32_t)UNC_OPT1_NORMAL, (uint32_t)UNC_OPT2_NONE, (uint32_t)1);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//PerformRead with valid option1 and valid option2
+// PerformRead with valid option1 and valid option2
 TEST_F(ControllerTest, PerformRead_pos_07) {
   key_ctr_t k;
   val_ctr v;
@@ -1767,7 +2054,8 @@ TEST_F(ControllerTest, PerformRead_pos_07) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -1779,11 +2067,15 @@ TEST_F(ControllerTest, PerformRead_pos_07) {
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_CONTROLLER);
 
-  int ret =  KtctrObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  KtctrObj.PerformRead(
+      db_conn, (uint32_t)0, (uint32_t)0, &k, &v,
+      (uint32_t)UNC_DT_STATE, (uint32_t)UNC_OP_READ,
+      sess, (uint32_t)UNC_OPT1_NORMAL,
+      (uint32_t)UNC_OPT2_NONE, (uint32_t)1);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//PerformRead with valid option1 and valid option2
+// PerformRead with valid option1 and valid option2
 TEST_F(ControllerTest, PerformRead_pos_db_Success_08) {
   key_ctr_t k;
   val_ctr_t v;
@@ -1797,7 +2089,8 @@ TEST_F(ControllerTest, PerformRead_pos_db_Success_08) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -1809,8 +2102,12 @@ TEST_F(ControllerTest, PerformRead_pos_db_Success_08) {
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_CONTROLLER);
 
-  int ret =  KtctrObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_CANDIDATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)0);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =  KtctrObj.PerformRead(
+      db_conn, (uint32_t)0, (uint32_t)0, &k, &v,
+      (uint32_t)UNC_DT_CANDIDATE, (uint32_t)UNC_OP_READ,
+      sess, (uint32_t)UNC_OPT1_NORMAL,
+      (uint32_t)UNC_OPT2_NONE, (uint32_t)0);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 TEST_F(ControllerTest, PerformRead_pos_db_fail_09) {
@@ -1821,7 +2118,8 @@ TEST_F(ControllerTest, PerformRead_pos_db_fail_09) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -1832,11 +2130,15 @@ TEST_F(ControllerTest, PerformRead_pos_db_fail_09) {
   sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
   sess.stub_setAddOutput((uint32_t)UNC_KT_CONTROLLER);
 
-  int ret =  KtctrObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)0);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =  KtctrObj.PerformRead(
+      db_conn, (uint32_t)0, (uint32_t)0, &k, &v,
+      (uint32_t)UNC_DT_STATE, (uint32_t)UNC_OP_READ,
+      sess, (uint32_t)UNC_OPT1_NORMAL,
+      (uint32_t)UNC_OPT2_NONE, (uint32_t)0);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-//PerformRead with valid option1 and valid option2
+// PerformRead with valid option1 and valid option2
 TEST_F(ControllerTest, PerformRead_pos_db_Success_10) {
   key_ctr_t k;
   val_ctr_t v;
@@ -1850,7 +2152,8 @@ TEST_F(ControllerTest, PerformRead_pos_db_Success_10) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -1862,11 +2165,15 @@ TEST_F(ControllerTest, PerformRead_pos_db_Success_10) {
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_CONTROLLER);
 
-  int ret =  KtctrObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_CANDIDATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)0);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =  KtctrObj.PerformRead(
+      db_conn, (uint32_t)0, (uint32_t)0, &k, &v,
+      (uint32_t)UNC_DT_CANDIDATE, (uint32_t)UNC_OP_READ,
+      sess, (uint32_t)UNC_OPT1_NORMAL,
+      (uint32_t)UNC_OPT2_NONE, (uint32_t)0);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-//HandleDriverEvents with other than Update operation
+// HandleDriverEvents with other than Update operation
 TEST_F(ControllerTest, HandleDriverEvents_No_Update_01) {
   key_ctr_t k;
   val_ctr_st_t v_old;
@@ -1880,11 +2187,12 @@ TEST_F(ControllerTest, HandleDriverEvents_No_Update_01) {
   uint32_t data_type = UNC_DT_STATE;
   OdbcmConnectionHandler *db_conn =NULL;
 
-  int ret =  KtctrObj.HandleDriverEvents(db_conn,&k,oper_type,data_type,&v_old,&v_new,is_events_done);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  KtctrObj.HandleDriverEvents(
+      db_conn, &k, oper_type, data_type, &v_old, &v_new, is_events_done);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//HandleDriverEvents with CANDIDATE operation
+// HandleDriverEvents with CANDIDATE operation
 TEST_F(ControllerTest, HandleDriverEvents_CANDIDATE_NegDB_02) {
   key_ctr_t k;
   val_ctr_st_t v_old;
@@ -1894,17 +2202,20 @@ TEST_F(ControllerTest, HandleDriverEvents_CANDIDATE_NegDB_02) {
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   pfc_bool_t is_events_done(PFC_FALSE);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_FAILED);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_FAILED);
   Kt_Controller  KtctrObj;
   uint32_t oper_type = UNC_OP_UPDATE;
   uint32_t data_type = UNC_DT_CANDIDATE;
   OdbcmConnectionHandler *db_conn =NULL;
 
-  int ret =  KtctrObj.HandleDriverEvents(db_conn,&k,oper_type,data_type,&v_old,&v_new,is_events_done);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  int ret =
+      KtctrObj.HandleDriverEvents(db_conn, &k, oper_type, data_type,
+                                  &v_old, &v_new, is_events_done);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
-//HandleDriverEvents with RUNNING datatype
+// HandleDriverEvents with RUNNING datatype
 TEST_F(ControllerTest, HandleDriverEvents_RUNNING_NegDB_03) {
   key_ctr_t k;
   val_ctr_st_t v_old;
@@ -1914,17 +2225,19 @@ TEST_F(ControllerTest, HandleDriverEvents_RUNNING_NegDB_03) {
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   pfc_bool_t is_events_done(PFC_FALSE);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_FAILED);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_FAILED);
   Kt_Controller  KtctrObj;
   uint32_t oper_type = UNC_OP_UPDATE;
   uint32_t data_type = UNC_DT_RUNNING;
   OdbcmConnectionHandler *db_conn =NULL;
 
-  int ret =  KtctrObj.HandleDriverEvents(db_conn,&k,oper_type,data_type,&v_old,&v_new,is_events_done);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  int ret =  KtctrObj.HandleDriverEvents(
+      db_conn, &k, oper_type, data_type, &v_old, &v_new, is_events_done);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
-//HandleDriverEvents with RUNNING datatype
+// HandleDriverEvents with RUNNING datatype
 TEST_F(ControllerTest, HandleDriverEvents_RUNNING_04) {
   key_ctr_t k;
   val_ctr_st_t v_old;
@@ -1934,17 +2247,19 @@ TEST_F(ControllerTest, HandleDriverEvents_RUNNING_04) {
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   pfc_bool_t is_events_done(PFC_FALSE);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   Kt_Controller  KtctrObj;
   uint32_t oper_type = UNC_OP_UPDATE;
   uint32_t data_type = UNC_DT_RUNNING;
   OdbcmConnectionHandler *db_conn =NULL;
 
-  int ret =  KtctrObj.HandleDriverEvents(db_conn,&k,oper_type,data_type,&v_old,&v_new,is_events_done);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  int ret =  KtctrObj.HandleDriverEvents(
+      db_conn, &k, oper_type, data_type, &v_old, &v_new, is_events_done);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
-//HandleDriverEvents with RUNNING datatype
+// HandleDriverEvents with RUNNING datatype
 TEST_F(ControllerTest, HandleDriverEvents_RUNNING_05) {
   key_ctr_t k;
   memset(&k, 0, sizeof(k));
@@ -1956,18 +2271,21 @@ TEST_F(ControllerTest, HandleDriverEvents_RUNNING_05) {
   v_new.oper_status = UPPL_CONTROLLER_OPER_UP;
 
   pfc_bool_t is_events_done(PFC_FALSE);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   Kt_Controller  KtctrObj;
   uint32_t oper_type = UNC_OP_UPDATE;
   uint32_t data_type = UNC_DT_RUNNING;
   OdbcmConnectionHandler *db_conn =NULL;
 
-  int ret =  KtctrObj.HandleDriverEvents(db_conn,&k,oper_type,data_type,&v_old,&v_new,is_events_done);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  KtctrObj.HandleDriverEvents(
+      db_conn, &k, oper_type, data_type, &v_old, &v_new, is_events_done);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//HandleDriverEvents with RUNNING datatype
+// HandleDriverEvents with RUNNING datatype
 TEST_F(ControllerTest, HandleDriverEvents_RUNNING_06) {
   key_ctr_t k;
   val_ctr_st_t v_old;
@@ -1978,18 +2296,21 @@ TEST_F(ControllerTest, HandleDriverEvents_RUNNING_06) {
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   pfc_bool_t is_events_done(PFC_FALSE);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   Kt_Controller  KtctrObj;
   uint32_t oper_type = UNC_OP_UPDATE;
   uint32_t data_type = UNC_DT_RUNNING;
   OdbcmConnectionHandler *db_conn =NULL;
 
-  int ret =  KtctrObj.HandleDriverEvents(db_conn,&k,oper_type,data_type,&v_old,&v_new,is_events_done);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  int ret =  KtctrObj.HandleDriverEvents(
+      db_conn, &k, oper_type, data_type, &v_old, &v_new, is_events_done);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
-//HandleDriverEvents with RUNNING datatype
+// HandleDriverEvents with RUNNING datatype
 TEST_F(ControllerTest, HandleDriverEvents_RUNNING_07) {
   key_ctr_t k;
   val_ctr_st_t v_old;
@@ -1998,19 +2319,22 @@ TEST_F(ControllerTest, HandleDriverEvents_RUNNING_07) {
   memset(v_new.valid, '\0', sizeof(v_new.valid));
   v_new.oper_status = UPPL_CONTROLLER_OPER_UP;
 
-  pfc_bool_t is_events_done=false;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  pfc_bool_t is_events_done = false;
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   Kt_Controller  KtctrObj;
   uint32_t oper_type = UNC_OP_UPDATE;
   uint32_t data_type = UNC_DT_RUNNING;
   OdbcmConnectionHandler *db_conn =NULL;
 
-  int ret =  KtctrObj.HandleDriverEvents(db_conn,&k,oper_type,data_type,&v_old,&v_new,is_events_done);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  KtctrObj.HandleDriverEvents(
+      db_conn, &k, oper_type, data_type, &v_old, &v_new, is_events_done);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//HandleDriverEvents with RUNNING datatype
+// HandleDriverEvents with RUNNING datatype
 TEST_F(ControllerTest, HandleDriverEvents_RUNNING_08) {
   key_ctr_t k;
   val_ctr_st_t v_old;
@@ -2020,18 +2344,21 @@ TEST_F(ControllerTest, HandleDriverEvents_RUNNING_08) {
   v_new.oper_status = UPPL_CONTROLLER_OPER_DOWN;
 
   pfc_bool_t is_events_done(PFC_FALSE);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   Kt_Controller  KtctrObj;
   uint32_t oper_type = UNC_OP_UPDATE;
   uint32_t data_type = UNC_DT_RUNNING;
   OdbcmConnectionHandler *db_conn =NULL;
 
-  int ret =  KtctrObj.HandleDriverEvents(db_conn,&k,oper_type,data_type,&v_old,&v_new,is_events_done);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  KtctrObj.HandleDriverEvents(
+      db_conn, &k, oper_type, data_type, &v_old, &v_new, is_events_done);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//HandleDriverEvents with RUNNING datatype
+// HandleDriverEvents with RUNNING datatype
 TEST_F(ControllerTest, HandleDriverEvents_RUNNING_09) {
   key_ctr_t k;
   val_ctr_st_t v_old;
@@ -2043,44 +2370,49 @@ TEST_F(ControllerTest, HandleDriverEvents_RUNNING_09) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
 
   pfc_bool_t is_events_done(PFC_FALSE);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   Kt_Controller  KtctrObj;
   uint32_t oper_type = UNC_OP_UPDATE;
   uint32_t data_type = UNC_DT_RUNNING;
   OdbcmConnectionHandler *db_conn =NULL;
 
-  int ret =  KtctrObj.HandleDriverEvents(db_conn,&k,oper_type,data_type,&v_old,&v_new,is_events_done);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  int ret =  KtctrObj.HandleDriverEvents(
+      db_conn, &k, oper_type, data_type, &v_old, &v_new, is_events_done);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
-//CheckIpAndClearStateDB with DB success
+// CheckIpAndClearStateDB with DB success
 TEST_F(ControllerTest, CheckIpAndClearStateDB_Db_Success_01) {
   key_ctr_t k;
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
 
-  int ret =  KtctrObj.CheckIpAndClearStateDB(db_conn,&k);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  KtctrObj.CheckIpAndClearStateDB(db_conn, &k);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//CheckIpAndClearStateDB with DB failure
+// CheckIpAndClearStateDB with DB failure
 TEST_F(ControllerTest, CheckIpAndClearStateDB_Db_failure_02) {
   key_ctr_t k;
   memset(k.controller_name, '\0', 32);
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
 
-  int ret =  KtctrObj.CheckIpAndClearStateDB(db_conn,&k);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  int ret =  KtctrObj.CheckIpAndClearStateDB(db_conn, &k);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
-//SendOperStatusNotification with add output error
+// SendOperStatusNotification with add output error
 TEST_F(ControllerTest, SendOperStatusNotification_01) {
   key_ctr_t k;
   uint8_t old_oper_st(0);
@@ -2094,11 +2426,12 @@ TEST_F(ControllerTest, SendOperStatusNotification_01) {
 
   Kt_Controller  KtctrObj;
 
-  int ret =  KtctrObj.SendOperStatusNotification(k,old_oper_st,new_oper_st);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =
+      KtctrObj.SendOperStatusNotification(k, old_oper_st, new_oper_st);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-//SendOperStatusNotification with success in add output
+// SendOperStatusNotification with success in add output
 TEST_F(ControllerTest, SendOperStatusNotification_02) {
   key_ctr_t k;
   uint8_t old_oper_st(0);
@@ -2112,11 +2445,12 @@ TEST_F(ControllerTest, SendOperStatusNotification_02) {
 
   Kt_Controller  KtctrObj;
 
-  int ret =  KtctrObj.SendOperStatusNotification(k,old_oper_st,new_oper_st);
-  EXPECT_EQ(UPPL_RC_FAILURE, ret);
+  int ret =
+      KtctrObj.SendOperStatusNotification(k, old_oper_st, new_oper_st);
+  EXPECT_EQ(UNC_UPPL_RC_FAILURE, ret);
 }
 
-//ValidateControllerIpAddress
+// ValidateControllerIpAddress
 TEST_F(ControllerTest, ValidateControllerIpAddress_01) {
   key_ctr_t k;
   memset(k.controller_name, '\0', 32);
@@ -2130,11 +2464,13 @@ TEST_F(ControllerTest, ValidateControllerIpAddress_01) {
   uint32_t data_type(UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
   v.valid[kIdxIpAddress]=1;
-  int ret =  KtctrObj.ValidateControllerIpAddress(db_conn,operation,data_type,(unc_keytype_ctrtype_t)0,(UpplReturnCode)0,&k,&v);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  int ret =  KtctrObj.ValidateControllerIpAddress(
+      db_conn, operation, data_type, (unc_keytype_ctrtype_t)0,
+      (UncRespCode)0, &k, &v);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-//ValidateControllerIpAddress
+// ValidateControllerIpAddress
 TEST_F(ControllerTest, ValidateControllerIpAddress_02) {
   key_ctr_t k;
   memset(k.controller_name, '\0', 32);
@@ -2148,11 +2484,13 @@ TEST_F(ControllerTest, ValidateControllerIpAddress_02) {
   uint32_t data_type(UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
   v.valid[kIdxIpAddress]=2;
-  int ret =  KtctrObj.ValidateControllerIpAddress(db_conn,operation,data_type,(unc_keytype_ctrtype_t)1,(UpplReturnCode)0,&k,&v);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  KtctrObj.ValidateControllerIpAddress(
+      db_conn, operation, data_type,
+      (unc_keytype_ctrtype_t)1, (UncRespCode)0, &k, &v);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//ValidateControllerIpAddress
+// ValidateControllerIpAddress
 TEST_F(ControllerTest, ValidateControllerIpAddress_03) {
   key_ctr_t k;
   memset(k.controller_name, '\0', 32);
@@ -2166,12 +2504,15 @@ TEST_F(ControllerTest, ValidateControllerIpAddress_03) {
   uint32_t data_type(UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
   v.valid[kIdxIpAddress]=1;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret =  KtctrObj.ValidateControllerIpAddress(db_conn,operation,data_type,(unc_keytype_ctrtype_t)1,(UpplReturnCode)0,&k,&v);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  int ret =  KtctrObj.ValidateControllerIpAddress(
+      db_conn, operation, data_type, (unc_keytype_ctrtype_t)1,
+      (UncRespCode)0, &k, &v);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//ValidateControllerIpAddress
+// ValidateControllerIpAddress
 TEST_F(ControllerTest, ValidateControllerIpAddress_04) {
   key_ctr_t k;
   memset(k.controller_name, '\0', 32);
@@ -2185,12 +2526,15 @@ TEST_F(ControllerTest, ValidateControllerIpAddress_04) {
   uint32_t data_type = UNC_DT_RUNNING;
   OdbcmConnectionHandler *db_conn =NULL;
   v.valid[kIdxIpAddress]=1;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
-  int ret =  KtctrObj.ValidateControllerIpAddress(db_conn,operation,data_type,(unc_keytype_ctrtype_t)1,(UpplReturnCode)0,&k,&v);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
+  int ret =  KtctrObj.ValidateControllerIpAddress(
+      db_conn, operation, data_type,
+      (unc_keytype_ctrtype_t)1, (UncRespCode)0, &k, &v);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//ValidateUnknownCtrlrScalability
+// ValidateUnknownCtrlrScalability
 TEST_F(ControllerTest, ValidateUnknownCtrlrScalability_Neg_DB_01) {
   key_ctr_t k;
   memset(k.controller_name, '\0', 32);
@@ -2200,12 +2544,14 @@ TEST_F(ControllerTest, ValidateUnknownCtrlrScalability_Neg_DB_01) {
   uint8_t type(UNC_CT_PFC);
   uint32_t data_type(UNC_DT_RUNNING);
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETSIBLINGCOUNT_FILTER, ODBCM_RC_FAILED);
-  int ret =  KtctrObj.ValidateUnknownCtrlrScalability(db_conn,&k,type,data_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETSIBLINGCOUNT_FILTER, ODBCM_RC_FAILED);
+  int ret =  KtctrObj.ValidateUnknownCtrlrScalability(
+      db_conn, &k, type, data_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
-//ValidateUnknownCtrlrScalability
+// ValidateUnknownCtrlrScalability
 TEST_F(ControllerTest, ValidateUnknownCtrlrScalability_Neg_DB_02) {
   key_ctr_t k;
   memset(k.controller_name, '\0', 32);
@@ -2215,12 +2561,14 @@ TEST_F(ControllerTest, ValidateUnknownCtrlrScalability_Neg_DB_02) {
   uint8_t type(UNC_CT_PFC);
   uint32_t data_type(UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETSIBLINGCOUNT_FILTER, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  KtctrObj.ValidateUnknownCtrlrScalability(db_conn,&k,type,data_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETSIBLINGCOUNT_FILTER, ODBCM_RC_CONNECTION_ERROR);
+  int ret =  KtctrObj.ValidateUnknownCtrlrScalability(
+      db_conn, &k, type, data_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-//ValidateUnknownCtrlrScalability
+// ValidateUnknownCtrlrScalability
 TEST_F(ControllerTest, ValidateUnknownCtrlrScalability_Neg_DB_03) {
   key_ctr_t k;
   memset(k.controller_name, '\0', 32);
@@ -2230,13 +2578,15 @@ TEST_F(ControllerTest, ValidateUnknownCtrlrScalability_Neg_DB_03) {
   uint8_t type(UNC_CT_PFC);
   uint32_t data_type(UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETSIBLINGCOUNT_FILTER, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETSIBLINGCOUNT_FILTER, ODBCM_RC_SUCCESS);
   unc::uppl::ODBCManager::stub_setSiblingCount(1);
-  int ret =  KtctrObj.ValidateUnknownCtrlrScalability(db_conn,&k,type,data_type);
-  EXPECT_EQ(UPPL_RC_ERR_EXCEEDS_RESOURCE_LIMIT, ret);
+  int ret =  KtctrObj.ValidateUnknownCtrlrScalability(
+      db_conn, &k, type, data_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_EXCEEDS_RESOURCE_LIMIT, ret);
 }
 
-//ValidateUnknownCtrlrScalability
+// ValidateUnknownCtrlrScalability
 TEST_F(ControllerTest, ValidateUnknownCtrlrScalability_Neg_DB_04) {
   key_ctr_t k;
   memset(k.controller_name, '\0', 32);
@@ -2246,13 +2596,15 @@ TEST_F(ControllerTest, ValidateUnknownCtrlrScalability_Neg_DB_04) {
   uint8_t type(UNC_CT_PFC);
   uint32_t data_type(UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETSIBLINGCOUNT_FILTER, ODBCM_RC_RECORD_NOT_FOUND);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETSIBLINGCOUNT_FILTER, ODBCM_RC_RECORD_NOT_FOUND);
   unc::uppl::ODBCManager::stub_setSiblingCount(1);
-  int ret =  KtctrObj.ValidateUnknownCtrlrScalability(db_conn,&k,type,data_type);
-  EXPECT_EQ(UPPL_RC_ERR_EXCEEDS_RESOURCE_LIMIT, ret);
+  int ret =  KtctrObj.ValidateUnknownCtrlrScalability(
+      db_conn, &k, type, data_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_EXCEEDS_RESOURCE_LIMIT, ret);
 }
 
-//FrameValidValue
+// FrameValidValue
 TEST_F(ControllerTest, FrameValidValue_01) {
   val_ctr_t v;
   val_ctr_st_t v_st;
@@ -2278,7 +2630,7 @@ TEST_F(ControllerTest, FrameValidValue_01) {
 /*******TAMIL TEST CASES*******/
 /********ReadBulk*******/
 
-//ReadBulk opr returns Success for max_ct is zero
+// ReadBulk opr returns Success for max_ct is zero
 TEST_F(ControllerTest, ReadBulk_Max_Ct_Zero) {
   key_ctr_t k;
   int child_index(0);
@@ -2292,11 +2644,11 @@ TEST_F(ControllerTest, ReadBulk_Max_Ct_Zero) {
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtctrObj.ReadBulk(db_conn, &k, UNC_DT_CANDIDATE, max_rep_ct,
-                              child_index, parent_call,is_read_next, read_req);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+                              child_index, parent_call, is_read_next, read_req);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//Check for controller key existence
+// Check for controller key existence
 TEST_F(ControllerTest, ReadBulk_childIndex) {
   key_ctr_t k;
   int child_index = -1;
@@ -2309,15 +2661,17 @@ TEST_F(ControllerTest, ReadBulk_childIndex) {
   vector<void *> obj_key_struct;
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  //unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  // unc::uppl::ODBCManager::stub_setResultcode(
+  // unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtctrObj.ReadBulk(db_conn, &k, UNC_DT_CANDIDATE, max_rep_ct,
-                              child_index, parent_call,is_read_next, read_req);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+                          child_index, parent_call, is_read_next, read_req);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /*************ReadBulkInternal**********/
-// ReadBulkInternal: No record to read
+//  ReadBulkInternal: No record to read
 TEST_F(ControllerTest, ReadBulkInternal_NoRecordFound) {
   key_ctr_t k;
   val_ctr_t v;
@@ -2329,12 +2683,14 @@ TEST_F(ControllerTest, ReadBulkInternal_NoRecordFound) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
-  int ret =  KtctrObj.ReadBulkInternal(db_conn, &k, &v,UNC_DT_STATE, max_rep_ct, vect_val_ctr_st, vect_ctr_id);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
+  int ret =  KtctrObj.ReadBulkInternal(db_conn, &k, &v,
+          UNC_DT_STATE, max_rep_ct, vect_val_ctr_st, vect_ctr_id);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-// ReadBulkInternal with read_db_status ODBCM_RC_CONNECTION_ERROR
+//  ReadBulkInternal with read_db_status ODBCM_RC_CONNECTION_ERROR
 TEST_F(ControllerTest, ReadBulkInternal_Db_Connxn_Error) {
   key_ctr_t k;
   val_ctr_t v;
@@ -2346,12 +2702,15 @@ TEST_F(ControllerTest, ReadBulkInternal_Db_Connxn_Error) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  KtctrObj.ReadBulkInternal(db_conn, &k, &v,UNC_DT_STATE, max_rep_ct, vect_val_ctr_st, vect_ctr_id);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
+  int ret =  KtctrObj.ReadBulkInternal(
+      db_conn, &k, &v, UNC_DT_STATE,
+      max_rep_ct, vect_val_ctr_st, vect_ctr_id);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-// ReadBulkInternal with read_db_status ODBCM_RC_TABLE_NOT_FOUND
+//  ReadBulkInternal with read_db_status ODBCM_RC_TABLE_NOT_FOUND
 TEST_F(ControllerTest, ReadBulkInternal_Err_DB_Get) {
   key_ctr_t k;
   val_ctr_t v;
@@ -2363,13 +2722,16 @@ TEST_F(ControllerTest, ReadBulkInternal_Err_DB_Get) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_TABLE_NOT_FOUND);
-  int ret =  KtctrObj.ReadBulkInternal(db_conn, &k, &v,UNC_DT_STATE, max_rep_ct, 
-                                              vect_val_ctr_st, vect_ctr_id);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETBULKROWS,
+      ODBCM_RC_TABLE_NOT_FOUND);
+  int ret =  KtctrObj.ReadBulkInternal(
+      db_conn, &k, &v, UNC_DT_STATE, max_rep_ct,
+      vect_val_ctr_st, vect_ctr_id);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
-// ReadBulkInternal with read_db_status ODBCM_RC_SUCCESS
+//  ReadBulkInternal with read_db_status ODBCM_RC_SUCCESS
 TEST_F(ControllerTest, ReadBulkInternal_Success) {
   key_ctr_t k;
   val_ctr_t v;
@@ -2381,71 +2743,80 @@ TEST_F(ControllerTest, ReadBulkInternal_Success) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret =  KtctrObj.ReadBulkInternal(db_conn, &k, &v,UNC_DT_STATE, max_rep_ct,
-                                             vect_val_ctr_st, vect_ctr_id);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  int ret =  KtctrObj.ReadBulkInternal(db_conn,
+                                       &k, &v, UNC_DT_STATE, max_rep_ct,
+                                       vect_val_ctr_st, vect_ctr_id);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /*********ValidateCtrlrValueCapability*******/
-//returns config syntax error
+// returns config syntax error
 TEST_F(ControllerTest, ValidateCtrlrValueCapability_Err_CFG_SYNTAX) {
   string version;
   uint32_t key_type(UNC_KT_CONTROLLER);
   Kt_Controller  KtctrObj;
   int ret =  KtctrObj.ValidateCtrlrValueCapability(version, key_type);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 /*******ValidateCtrlrScalability****/
-//Returns Connxn Error
+// Returns Connxn Error
 TEST_F(ControllerTest, ValidateCtrlrScalability_Err_DB_Access) {
   OdbcmConnectionHandler *db_conn =NULL;
   string version;
   uint32_t key_type = UNC_KT_CONTROLLER;
   uint32_t data_type = UNC_DT_STATE;
   Kt_Controller  KtctrObj;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETROWCOUNT, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  KtctrObj.ValidateCtrlrScalability(db_conn, version, key_type, data_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETROWCOUNT, ODBCM_RC_CONNECTION_ERROR);
+  int ret =  KtctrObj.ValidateCtrlrScalability(
+      db_conn, version, key_type, data_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-//Unable to get scalability number from system
+// Unable to get scalability number from system
 TEST_F(ControllerTest, ValidateCtrlrScalability_System_Error) {
   OdbcmConnectionHandler *db_conn =NULL;
   string version;
   uint32_t key_type = UNC_KT_CONTROLLER;
   uint32_t data_type = UNC_DT_STATE;
   Kt_Controller  KtctrObj;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETROWCOUNT, ODBCM_RC_SUCCESS);
-  int ret =  KtctrObj.ValidateCtrlrScalability(db_conn, version, key_type, data_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETROWCOUNT, ODBCM_RC_SUCCESS);
+  int ret =  KtctrObj.ValidateCtrlrScalability(
+      db_conn, version, key_type, data_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
-//Unable to get scalability number from DB
+// Unable to get scalability number from DB
 TEST_F(ControllerTest, ValidateCtrlrScalability_DB_Err) {
   OdbcmConnectionHandler *db_conn =NULL;
   string version;
   uint32_t key_type = UNC_KT_CONTROLLER;
   uint32_t data_type = UNC_DT_STATE;
   Kt_Controller  KtctrObj;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETROWCOUNT, ODBCM_RC_FAILED);
-  int ret =  KtctrObj.ValidateCtrlrScalability(db_conn, version, key_type, data_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETROWCOUNT, ODBCM_RC_FAILED);
+  int ret =  KtctrObj.ValidateCtrlrScalability(
+      db_conn, version, key_type, data_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
 /******ValidateTypeIpAddress*******/
 
-//Not required to validate type and ip
+// Not required to validate type and ip
 TEST_F(ControllerTest, ValidateTypeIpAddress_NoValidation) {
   OdbcmConnectionHandler *db_conn =NULL;
   key_ctr_t k;
-  val_ctr_st_t *v = NULL; 
+  val_ctr_st_t *v = NULL;
   uint32_t data_type = UNC_DT_STATE;
   uint32_t ctrl_type(UNC_CT_PFC);
   Kt_Controller  KtctrObj;
-  int ret =  KtctrObj.ValidateTypeIpAddress(db_conn,&k,v,data_type,ctrl_type);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  KtctrObj.ValidateTypeIpAddress(
+      db_conn, &k, v, data_type, ctrl_type);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(ControllerTest, ValidateTypeIpAddress) {
@@ -2456,14 +2827,16 @@ TEST_F(ControllerTest, ValidateTypeIpAddress) {
 
   val_ctr_st_t v;
   memset(&v, 0, sizeof(v));
-  //v->valid[kIdxIpAddress] = UNC_VF_INVALID;
+  // v->valid[kIdxIpAddress] = UNC_VF_INVALID;
 
   uint32_t data_type = UNC_DT_STATE;
   uint32_t ctrl_type(UNC_CT_PFC);
   Kt_Controller  KtctrObj;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
-  int ret =  KtctrObj.ValidateTypeIpAddress(db_conn,&k,&v,data_type,ctrl_type);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
+  int ret =  KtctrObj.ValidateTypeIpAddress(
+      db_conn, &k, &v, data_type, ctrl_type);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /*******HandleDriverAlarms*********/
@@ -2484,8 +2857,9 @@ TEST_F(ControllerTest, HandleDriverAlarms) {
               "aa:bb:cc:dd:ee:ff:00:11", sizeof(v.egress_ofs_dpid));
 
   Kt_Controller  KtctrObj;
-  int ret =  KtctrObj.HandleDriverAlarms(db_conn,data_type,alarm_type,oper_type,&k,&v);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =  KtctrObj.HandleDriverAlarms(
+      db_conn, data_type, alarm_type, oper_type, &k, &v);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 
@@ -2498,28 +2872,31 @@ TEST_F(ControllerTest, SendSemanticRequestToUPLL) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  KtctrObj;
   int ret =  KtctrObj.SendSemanticRequestToUPLL(&k, data_type);
-  EXPECT_EQ(UPPL_RC_ERR_LOGICAL_COMMUNICATION_FAILURE, ret);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_LOGICAL_COMMUNICATION_FAILURE, ret);
 }
 
-//GetChildClassPointer
+// GetChildClassPointer
 TEST_F(ControllerTest, GetChildClassPointer_01) {
   int kIndex = 0;
   Kt_Controller  KtctrObj;
-  Kt_Base *child(KtctrObj.GetChildClassPointer((KtControllerChildClass)kIndex));
+  Kt_Base *child(
+      KtctrObj.GetChildClassPointer((KtControllerChildClass)kIndex));
   ASSERT_TRUE(child != NULL);
 }
 
 TEST_F(ControllerTest, GetChildClassPointer_02) {
   int kIndex = 1;
   Kt_Controller  KtctrObj;
-  Kt_Base *child(KtctrObj.GetChildClassPointer((KtControllerChildClass)kIndex));
+  Kt_Base *child(KtctrObj.GetChildClassPointer(
+          (KtControllerChildClass)kIndex));
   ASSERT_TRUE(child != NULL);
 }
 
 TEST_F(ControllerTest, GetChildClassPointer_03) {
   int kIndex = 2;
   Kt_Controller  KtctrObj;
-  Kt_Base *child(KtctrObj.GetChildClassPointer((KtControllerChildClass)kIndex));
+  Kt_Base *child(KtctrObj.GetChildClassPointer(
+          (KtControllerChildClass)kIndex));
   ASSERT_TRUE(child != NULL);
 }
 
@@ -2535,11 +2912,13 @@ TEST_F(ControllerTest, ReadBulk) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  //unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  // unc::uppl::ODBCManager::stub_setResultcode(
+  // unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtctrObj.ReadBulk(db_conn, &k, UNC_DT_CANDIDATE, max_rep_ct,
-                              child_index, parent_call,is_read_next, read_req);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+                            child_index, parent_call, is_read_next, read_req);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(ControllerTest, ReadBulk_ReadBuffer) {
@@ -2553,11 +2932,13 @@ TEST_F(ControllerTest, ReadBulk_ReadBuffer) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  //unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  // unc::uppl::ODBCManager::stub_setResultcode(
+  // unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtctrObj.ReadBulk(db_conn, &k, UNC_DT_CANDIDATE, max_rep_ct,
-                              child_index, parent_call,is_read_next, &read_req);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+                          child_index, parent_call, is_read_next, &read_req);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(ControllerTest, ReadBulk_child_ind) {
@@ -2571,36 +2952,40 @@ TEST_F(ControllerTest, ReadBulk_child_ind) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  //unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+      unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  // unc::uppl::ODBCManager::stub_setResultcode(
+  // unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtctrObj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct,
                                child_index, parent_call, is_read_next,
                                &read_req);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(ControllerTest, ReadBulk_ctr_exists_FALSE) {
   key_ctr_t k;
-  memset(&k,0,sizeof(key_ctr_t));
+  memset(&k, 0, sizeof(key_ctr_t));
   int child_index(0);
   pfc_bool_t parent_call(PFC_FALSE);
   pfc_bool_t is_read_next(PFC_FALSE);
   ReadRequest read_req;
   uint32_t max_rep_ct = 1;
-  //memset(k.controller_name, '\0', 32);
-  //memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
+  // memset(k.controller_name, '\0', 32);
+  // memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
 
-  //unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_RECORD_NOT_FOUND);
+  // unc::uppl::ODBCManager::stub_setResultcode
+  // (unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
+  unc::uppl::ODBCManager::stub_setResultcode
+      (unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_RECORD_NOT_FOUND);
   int ret =  KtctrObj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct,
-                               child_index, parent_call,is_read_next,
+                               child_index, parent_call, is_read_next,
                                &read_req);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// DeleteKeyInstance:returns DB error
+//  DeleteKeyInstance:returns DB error
 TEST_F(ControllerTest, DeleteKeyInstan_Err_DB_ACCESS) {
   key_ctr_t k;
   uint32_t key_type(UNC_KT_CONTROLLER);
@@ -2608,13 +2993,14 @@ TEST_F(ControllerTest, DeleteKeyInstan_Err_DB_ACCESS) {
   memcpy(k.controller_name, pkctrName1, strlen(pkctrName1));
   Kt_Controller  KtctrObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_CONNECTION_ERROR);
+  unc::uppl::ODBCManager::stub_setResultcode
+      (unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_CONNECTION_ERROR);
   int ret =  KtctrObj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, key_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-//ReadBulkInternal:Reaturns success for max_ct zero
-TEST_F(ControllerTest,ReadBulkInternal_MaxCt_LessThan_Zero) {
+// ReadBulkInternal:Reaturns success for max_ct zero
+TEST_F(ControllerTest, ReadBulkInternal_MaxCt_LessThan_Zero) {
   OdbcmConnectionHandler *db_conn =NULL;
   key_ctr_t k;
   val_ctr_st_t v;
@@ -2623,11 +3009,12 @@ TEST_F(ControllerTest,ReadBulkInternal_MaxCt_LessThan_Zero) {
   vector<val_ctr_st_t> vect_val_ctr;
   vector<string> vect_ctr_id;
   Kt_Controller  KtctrObj;
-  int ret = KtctrObj.ReadBulkInternal(db_conn,&k,&v,data_type,max_rep_ct,vect_val_ctr,vect_ctr_id);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
-}  
+  int ret = KtctrObj.ReadBulkInternal
+      (db_conn, &k, &v, data_type, max_rep_ct, vect_val_ctr, vect_ctr_id);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
+}
 
-//HandleDriverEvents
+// HandleDriverEvents
 TEST_F(ControllerTest, HandleDriverEvents) {
   OdbcmConnectionHandler *db_conn =NULL;
   key_ctr_t k;
@@ -2640,12 +3027,14 @@ TEST_F(ControllerTest, HandleDriverEvents) {
   val_ctr_st_t *new_val_struct(NULL);
   pfc_bool_t is_events_done(PFC_FALSE);
   Kt_Controller  KtctrObj;
-  int ret = KtctrObj.HandleDriverEvents(db_conn,&k,oper_type,data_type,old_val_struct,new_val_struct,is_events_done);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = KtctrObj.HandleDriverEvents
+      (db_conn, &k, oper_type, data_type, old_val_struct,
+       new_val_struct, is_events_done);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /***8*ReadCtrValFromDb****/
-//Unsuported opr type....Returns Success
+// Unsuported opr type....Returns Success
 TEST_F(ControllerTest, ReadCtrValFromDB) {
   OdbcmConnectionHandler *db_conn =NULL;
   key_ctr_t k;
@@ -2656,6 +3045,8 @@ TEST_F(ControllerTest, ReadCtrValFromDB) {
   vector<val_ctr_st_t> vect_val_ctr_st;
   vector<string> controller_id;
   Kt_Controller  KtctrObj;
-  int ret = KtctrObj.ReadCtrValFromDB(db_conn,&k,&v,data_type,operation_type,max_rep_ct,vect_val_ctr_st,controller_id);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = KtctrObj.ReadCtrValFromDB
+      (db_conn, &k, &v, data_type, operation_type, max_rep_ct,
+       vect_val_ctr_st, controller_id);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
index 399cd8c7f06a5be58ce266ddb8b79adbc7718b6c..1b7d00ea6813d785814cfd6980a20d70da4f1f9e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -62,8 +62,7 @@ using namespace unc::tclib;
 using namespace unc::uppl::test;
 
 class DomainTest
-  : public UpplTestEnv
-{
+  : public UpplTestEnv {
 };
 
 static char pkctrName1[] = "Controller1";
@@ -80,8 +79,9 @@ TEST_F(DomainTest, PerformSyntxCheck_Domainname_notFound_01) {
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtdomianObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  int ret =  KtdomianObj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 TEST_F(DomainTest, PerformSyntxCheck_Controllername_notFound_02) {
@@ -93,8 +93,9 @@ TEST_F(DomainTest, PerformSyntxCheck_Controllername_notFound_02) {
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtdomianObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  int ret =  KtdomianObj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 TEST_F(DomainTest, PerformSyntxCheck_Valstrct_without_type_03) {
@@ -109,8 +110,9 @@ TEST_F(DomainTest, PerformSyntxCheck_Valstrct_without_type_03) {
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtdomianObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  int ret =  KtdomianObj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 TEST_F(DomainTest, PerformSyntxCheck_Valstrct_04) {
@@ -127,8 +129,9 @@ TEST_F(DomainTest, PerformSyntxCheck_Valstrct_04) {
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtdomianObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_CANDIDATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  KtdomianObj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation, UNC_DT_CANDIDATE);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(DomainTest, PerformSyntxCheck_Valstrct_05) {
@@ -145,8 +148,9 @@ TEST_F(DomainTest, PerformSyntxCheck_Valstrct_05) {
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   uint32_t operation = UNC_OP_UPDATE;
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtdomianObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_CANDIDATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  int ret =  KtdomianObj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation, UNC_DT_CANDIDATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 TEST_F(DomainTest, PerformSyntxCheck_Valstrct_06) {
@@ -163,8 +167,9 @@ TEST_F(DomainTest, PerformSyntxCheck_Valstrct_06) {
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtdomianObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_CANDIDATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  int ret =  KtdomianObj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation, UNC_DT_CANDIDATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 TEST_F(DomainTest, PerformSyntxCheck_Valstrct_07) {
@@ -181,8 +186,9 @@ TEST_F(DomainTest, PerformSyntxCheck_Valstrct_07) {
   memcpy(k.domain_name, pkDomainName3, strlen(pkDomainName3));
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtdomianObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_CANDIDATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  int ret =  KtdomianObj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation, UNC_DT_CANDIDATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 TEST_F(DomainTest, PerformSyntxCheck_Valstrct_08) {
@@ -200,8 +206,9 @@ TEST_F(DomainTest, PerformSyntxCheck_Valstrct_08) {
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtdomianObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_CANDIDATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  KtdomianObj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation, UNC_DT_CANDIDATE);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(DomainTest, PerformSyntxCheck_val_struct_empty_09) {
@@ -215,10 +222,11 @@ TEST_F(DomainTest, PerformSyntxCheck_val_struct_empty_09) {
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtdomianObj.PerformSyntaxValidation(db_conn,&k,v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  KtdomianObj.PerformSyntaxValidation(
+    db_conn, &k, v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
-// Create for unsupported datatype
+//  Create for unsupported datatype
 TEST_F(DomainTest, Create_01) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -236,10 +244,11 @@ TEST_F(DomainTest, Create_01) {
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtdomianObj.Create(db_conn,session_id,configuration_id,&k,&v,UNC_DT_STATE,ses);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =  KtdomianObj.Create(
+      db_conn, session_id, configuration_id, &k, &v, UNC_DT_STATE, ses);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
-// Domain Create success 
+//  Domain Create success
 TEST_F(DomainTest, Create_02) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -261,19 +270,22 @@ TEST_F(DomainTest, Create_02) {
   ses.stub_setAddOutput((uint32_t)ODBCM_RC_SUCCESS);
   ses.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
   ses.stub_setAddOutput((uint32_t)UNC_KT_CTR_DOMAIN);
-  //ses.stub_setAddOutput((uint32_t)&k);
+  // ses.stub_setAddOutput((uint32_t)&k);
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_SUCCESS);
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtdomianObj.Create(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  KtdomianObj.Create(
+      db_conn, session_id, configuration_id, &k, &v, UNC_DT_CANDIDATE, ses);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// get_controller_type returns failure 
+//  get_controller_type returns failure
 TEST_F(DomainTest, Create_03) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -295,19 +307,23 @@ TEST_F(DomainTest, Create_03) {
   ses.stub_setAddOutput((uint32_t)ODBCM_RC_SUCCESS);
   ses.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
   ses.stub_setAddOutput((uint32_t)UNC_KT_CTR_DOMAIN);
-  //ses.stub_setAddOutput((uint32_t)&k);
+  // ses.stub_setAddOutput((uint32_t)&k);
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtdomianObj.Create(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =
+      KtdomianObj.Create(
+          db_conn, session_id, configuration_id, &k, &v, UNC_DT_CANDIDATE,
+          ses);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 /*
-//Create on unsupported datatype 
+// Create on unsupported datatype
 TEST_F(DomainTest, Create) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -324,10 +340,11 @@ TEST_F(DomainTest, Create) {
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtdomianObj.Create(db_conn,session_id,configuration_id,&k,&v,UNC_DT_STATE,ses);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =
+  KtdomianObj.Create(db_conn, session_id, configuration_id, &k, &v, UNC_DT_STATE, ses);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
+
 TEST_F(DomainTest, PerformSemanticValidation_01) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -342,57 +359,65 @@ TEST_F(DomainTest, PerformSemanticValidation_01) {
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtdomianObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_CANDIDATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  KtdomianObj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation, UNC_DT_CANDIDATE);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }*/
 
-// IsKeyExists  with UNC_DT_CANDIDATE datatype ODBC return ODBCM_RC_CONNECTION_ERROR
+//  IsKeyExists  with UNC_DT_CANDIDATE datatype
+//  ODBC return ODBCM_RC_CONNECTION_ERROR
 TEST_F(DomainTest, IsKeyExists_01) {
   Kt_Ctr_Domain  KtdomianObj;
   vector<string> vect_key;
   vect_key.push_back(pkctrName1);
   vect_key.push_back(pkDomainName2);
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  KtdomianObj.IsKeyExists(db_conn,UNC_DT_CANDIDATE,vect_key);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
+  int ret =  KtdomianObj.IsKeyExists(db_conn, UNC_DT_CANDIDATE, vect_key);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-// IsKeyExists  with UNC_DT_CANDIDATE datatype ODBC return ODBCM_RC_ROW_EXISTS
+//  IsKeyExists  with UNC_DT_CANDIDATE datatype
+//  ODBC return ODBCM_RC_ROW_EXISTS
 TEST_F(DomainTest, IsKeyExists_02) {
   Kt_Ctr_Domain  KtdomianObj;
   vector<string> vect_key;
   vect_key.push_back(pkctrName1);
   vect_key.push_back(pkDomainName2);
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  int ret =  KtdomianObj.IsKeyExists(db_conn,UNC_DT_CANDIDATE,vect_key);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret =  KtdomianObj.IsKeyExists(db_conn, UNC_DT_CANDIDATE, vect_key);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// IsKeyExists  with UNC_DT_CANDIDATE datatype ODBC return ODBCM_RC_QUERY_TIMEOUT
+//  IsKeyExists  with UNC_DT_CANDIDATE datatype ODBC
+//  return ODBCM_RC_QUERY_TIMEOUT
 TEST_F(DomainTest, IsKeyExists_03) {
   Kt_Ctr_Domain  KtdomianObj;
   vector<string> vect_key;
   vect_key.push_back(pkctrName1);
   vect_key.push_back(pkDomainName2);
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_QUERY_TIMEOUT);
-  int ret =  KtdomianObj.IsKeyExists(db_conn,UNC_DT_CANDIDATE,vect_key);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_QUERY_TIMEOUT);
+  int ret =  KtdomianObj.IsKeyExists(db_conn, UNC_DT_CANDIDATE, vect_key);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
-// IsKeyExists  with key structure empty
+//  IsKeyExists  with key structure empty
 TEST_F(DomainTest, IsKeyExists_04) {
   Kt_Ctr_Domain  KtdomianObj;
   vector<string> vect_key;
   vect_key.clear();
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtdomianObj.IsKeyExists(db_conn,UNC_DT_CANDIDATE,vect_key);
-  EXPECT_EQ(UPPL_RC_ERR_BAD_REQUEST, ret);
+  int ret =  KtdomianObj.IsKeyExists(db_conn, UNC_DT_CANDIDATE, vect_key);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_BAD_REQUEST, ret);
 }
 
-// CreateKeyInstance with UNC_DT_CANDIDATE datatype ODBC return ODBCM_RC_CONNECTION_ERROR
+//  CreateKeyInstance with UNC_DT_CANDIDATE datatype ODBC
+//  return ODBCM_RC_CONNECTION_ERROR
 TEST_F(DomainTest, CreateKeyInstance_01) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -408,12 +433,14 @@ TEST_F(DomainTest, CreateKeyInstance_01) {
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  KtdomianObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_CANDIDATE,key_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_CONNECTION_ERROR);
+  int ret =  KtdomianObj.CreateKeyInstance(
+      db_conn, &k, &v, UNC_DT_CANDIDATE, key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-// CreateKeyInstance with UNC_DT_RUNNING datatype ODBC 
+//  CreateKeyInstance with UNC_DT_RUNNING datatype ODBC
 TEST_F(DomainTest, CreateKeyInstance_02) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -430,12 +457,15 @@ TEST_F(DomainTest, CreateKeyInstance_02) {
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  KtdomianObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_RUNNING,key_type);
-  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_CONNECTION_ERROR);
+  int ret =  KtdomianObj.CreateKeyInstance(
+      db_conn, &k, &v, UNC_DT_RUNNING, key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
-// CreateKeyInstance with UNC_DT_STATE  datatype ODBC return ODBCM_RC_CONNECTION_ERROR
+//  CreateKeyInstance with UNC_DT_STATE  datatype
+//  ODBC return ODBCM_RC_CONNECTION_ERROR
 TEST_F(DomainTest, CreateKeyInstance_03) {
   key_ctr_domain_t k;
   val_ctr_domain_st v;
@@ -452,12 +482,15 @@ TEST_F(DomainTest, CreateKeyInstance_03) {
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  KtdomianObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_STATE,key_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_CONNECTION_ERROR);
+  int ret =  KtdomianObj.CreateKeyInstance(
+      db_conn, &k, &v, UNC_DT_STATE, key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-// CreateKeyInstance with UNC_DT_IMPORT  datatype ODBC return ODBCM_RC_CONNECTION_ERROR
+//  CreateKeyInstance with UNC_DT_IMPORT
+//  datatype ODBC return ODBCM_RC_CONNECTION_ERROR
 TEST_F(DomainTest, CreateKeyInstance_04) {
   key_ctr_domain_t k;
   val_ctr_domain_st v;
@@ -474,12 +507,15 @@ TEST_F(DomainTest, CreateKeyInstance_04) {
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  KtdomianObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_IMPORT,key_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_CONNECTION_ERROR);
+  int ret =  KtdomianObj.CreateKeyInstance(
+      db_conn, &k, &v, UNC_DT_IMPORT, key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-// CreateKeyInstance with UNC_DT_CANDIDATE datatype ODBC return Failure
+//  CreateKeyInstance with UNC_DT_CANDIDATE
+//  datatype ODBC return Failure
 TEST_F(DomainTest, CreateKeyInstance_05) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -496,12 +532,15 @@ TEST_F(DomainTest, CreateKeyInstance_05) {
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_TRANSACTION_ERROR);
-  int ret =  KtdomianObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_CANDIDATE,key_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_CREATE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_TRANSACTION_ERROR);
+  int ret =  KtdomianObj.CreateKeyInstance(
+      db_conn, &k, &v, UNC_DT_CANDIDATE, key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_CREATE, ret);
 }
 
-// CreateKeyInstance with UNC_DT_CANDIDATE datatype ODBC ODBCM_RC_SUCCESS
+//  CreateKeyInstance with UNC_DT_CANDIDATE
+//  datatype ODBC ODBCM_RC_SUCCESS
 TEST_F(DomainTest, CreateKeyInstance_06) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -518,12 +557,14 @@ TEST_F(DomainTest, CreateKeyInstance_06) {
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_SUCCESS);
-  int ret =  KtdomianObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_CANDIDATE,key_type);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_SUCCESS);
+  int ret =  KtdomianObj.CreateKeyInstance(
+      db_conn, &k, &v, UNC_DT_CANDIDATE, key_type);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// CreateKeyInstance with UNC_DT_STATE  datatype ODBC return Failure
+//  CreateKeyInstance with UNC_DT_STATE  datatype ODBC return Failure
 TEST_F(DomainTest, CreateKeyInstance_07) {
   key_ctr_domain_t k;
   val_ctr_domain_st v;
@@ -540,12 +581,15 @@ TEST_F(DomainTest, CreateKeyInstance_07) {
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_TRANSACTION_ERROR);
-  int ret =  KtdomianObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_STATE,key_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_CREATE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_TRANSACTION_ERROR);
+  int ret =  KtdomianObj.CreateKeyInstance(
+      db_conn, &k, &v, UNC_DT_STATE, key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_CREATE, ret);
 }
 
-// CreateKeyInstance with UNC_DT_IMPORT  datatype ODBC return Failure
+//  CreateKeyInstance with UNC_DT_IMPORT
+//  datatype ODBC return Failure
 TEST_F(DomainTest, CreateKeyInstance_08) {
   key_ctr_domain_t k;
   val_ctr_domain_st v;
@@ -562,12 +606,14 @@ TEST_F(DomainTest, CreateKeyInstance_08) {
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_TRANSACTION_ERROR);
-  int ret =  KtdomianObj.CreateKeyInstance(db_conn,&k,&v,UNC_DT_IMPORT,key_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_CREATE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::CREATEONEROW, ODBCM_RC_TRANSACTION_ERROR);
+  int ret =  KtdomianObj.CreateKeyInstance(
+      db_conn, &k, &v, UNC_DT_IMPORT, key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_CREATE, ret);
 }
 
-// Update for unsupported datatype
+//  Update for unsupported datatype
 TEST_F(DomainTest, Update_01) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -585,10 +631,11 @@ TEST_F(DomainTest, Update_01) {
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtdomianObj.Update(db_conn,session_id,configuration_id,&k,&v,UNC_DT_STATE,ses);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =  KtdomianObj.Update(
+      db_conn, session_id, configuration_id, &k, &v, UNC_DT_STATE, ses);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
-// Domain Update success 
+//  Domain Update success
 TEST_F(DomainTest, Update_02) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -610,19 +657,22 @@ TEST_F(DomainTest, Update_02) {
   ses.stub_setAddOutput((uint32_t)ODBCM_RC_SUCCESS);
   ses.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
   ses.stub_setAddOutput((uint32_t)UNC_KT_CTR_DOMAIN);
-  //ses.stub_setAddOutput((uint32_t)&k);
+  // ses.stub_setAddOutput((uint32_t)&k);
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtdomianObj.Update(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  KtdomianObj.Update(
+      db_conn, session_id, configuration_id, &k, &v, UNC_DT_CANDIDATE, ses);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// get_controller_type returns failure 
+//  get_controller_type returns failure
 TEST_F(DomainTest, Update_03) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -644,18 +694,21 @@ TEST_F(DomainTest, Update_03) {
   ses.stub_setAddOutput((uint32_t)ODBCM_RC_SUCCESS);
   ses.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
   ses.stub_setAddOutput((uint32_t)UNC_KT_CTR_DOMAIN);
-  //ses.stub_setAddOutput((uint32_t)&k);
+  // ses.stub_setAddOutput((uint32_t)&k);
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtdomianObj.Update(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =  KtdomianObj.Update(
+      db_conn, session_id, configuration_id, &k, &v, UNC_DT_CANDIDATE, ses);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-// UpdateKeyInstance with UNC_DT_CANDIDATE ODBC retuns ODBCM_RC_CONNECTION_ERROR
+//  UpdateKeyInstance with UNC_DT_CANDIDATE ODBC
+//  retuns ODBCM_RC_CONNECTION_ERROR
 TEST_F(DomainTest, UpdateKeyInstance_01) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -672,12 +725,14 @@ TEST_F(DomainTest, UpdateKeyInstance_01) {
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  KtdomianObj.UpdateKeyInstance(db_conn,&k,&v,UNC_DT_CANDIDATE,key_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_CONNECTION_ERROR);
+  int ret =  KtdomianObj.UpdateKeyInstance(
+    db_conn, &k, &v, UNC_DT_CANDIDATE, key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-// UpdateKeyInstance on unsupported datatype
+//  UpdateKeyInstance on unsupported datatype
 TEST_F(DomainTest, UpdateKeyInstance_02) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -694,11 +749,12 @@ TEST_F(DomainTest, UpdateKeyInstance_02) {
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtdomianObj.UpdateKeyInstance(db_conn,&k,&v,UNC_DT_RUNNING,key_type);
-  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+  int ret =  KtdomianObj.UpdateKeyInstance(
+    db_conn, &k, &v, UNC_DT_RUNNING, key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
-// UpdateKeyInstance with UNC_DT_IMPORT ODBC retuns ODBCM_RC_CONNECTION_ERROR
+//  UpdateKeyInstance with UNC_DT_IMPORT ODBC retuns ODBCM_RC_CONNECTION_ERROR
 TEST_F(DomainTest, UpdateKeyInstance_03) {
   key_ctr_domain_t k;
   val_ctr_domain_st v;
@@ -715,12 +771,14 @@ TEST_F(DomainTest, UpdateKeyInstance_03) {
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  KtdomianObj.UpdateKeyInstance(db_conn,&k,&v,UNC_DT_IMPORT,key_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_CONNECTION_ERROR);
+  int ret =  KtdomianObj.UpdateKeyInstance(
+    db_conn, &k, &v, UNC_DT_IMPORT, key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-// UpdateKeyInstance with UNC_DT_IMPORT ODBC retuns ODBCM_RC_SUCCESS
+//  UpdateKeyInstance with UNC_DT_IMPORT ODBC retuns ODBCM_RC_SUCCESS
 TEST_F(DomainTest, UpdateKeyInstance_04) {
   key_ctr_domain_t k;
   val_ctr_domain_st v;
@@ -737,12 +795,14 @@ TEST_F(DomainTest, UpdateKeyInstance_04) {
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  int ret =  KtdomianObj.UpdateKeyInstance(db_conn,&k,&v,UNC_DT_IMPORT,key_type);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  int ret =  KtdomianObj.UpdateKeyInstance(
+    db_conn, &k, &v, UNC_DT_IMPORT, key_type);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// UpdateKeyInstance with UNC_DT_IMPORT ODBC retuns 
+//  UpdateKeyInstance with UNC_DT_IMPORT ODBC retuns
 TEST_F(DomainTest, UpdateKeyInstance_05) {
   key_ctr_domain_t k;
   val_ctr_domain_st v;
@@ -759,12 +819,14 @@ TEST_F(DomainTest, UpdateKeyInstance_05) {
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_TRANSACTION_ERROR);
-  int ret =  KtdomianObj.UpdateKeyInstance(db_conn,&k,&v,UNC_DT_IMPORT,key_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_TRANSACTION_ERROR);
+  int ret =  KtdomianObj.UpdateKeyInstance(
+    db_conn, &k, &v, UNC_DT_IMPORT, key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
-// Delete for unsupported datatype
+//  Delete for unsupported datatype
 TEST_F(DomainTest, Delete_01) {
   key_ctr_domain_t k;
   val_ctr_domain_st v;
@@ -782,10 +844,11 @@ TEST_F(DomainTest, Delete_01) {
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtdomianObj.Delete(db_conn,session_id,configuration_id,&k,UNC_DT_STATE,ses);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =  KtdomianObj.Delete(
+      db_conn, session_id, configuration_id, &k, UNC_DT_STATE, ses);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
-// Domain Delete success 
+//  Domain Delete success
 TEST_F(DomainTest, Delete_02) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -811,14 +874,17 @@ TEST_F(DomainTest, Delete_02) {
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtdomianObj.Delete(db_conn,session_id,configuration_id,&k,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  KtdomianObj.Delete(
+      db_conn, session_id, configuration_id, &k, UNC_DT_CANDIDATE, ses);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// get_controller_type returns failure 
+//  get_controller_type returns failure
 TEST_F(DomainTest, Delete_03) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -844,13 +910,15 @@ TEST_F(DomainTest, Delete_03) {
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtdomianObj.Delete(db_conn,session_id,configuration_id,&k,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =  KtdomianObj.Delete(
+      db_conn, session_id, configuration_id, &k, UNC_DT_CANDIDATE, ses);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-// Domain Delete With boundary referred
+//  Domain Delete With boundary referred
 TEST_F(DomainTest, Delete_04) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -876,14 +944,18 @@ TEST_F(DomainTest, Delete_04) {
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtdomianObj.Delete(db_conn,session_id,configuration_id,&k,UNC_DT_CANDIDATE,ses);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =  KtdomianObj.Delete(db_conn,
+                                session_id, configuration_id,
+                                &k, UNC_DT_CANDIDATE, ses);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-// UpdateKeyInstance with ODBC retuns ODBCM_RC_CONNECTION_ERROR
+//  UpdateKeyInstance with ODBC retuns ODBCM_RC_CONNECTION_ERROR
 TEST_F(DomainTest, GetModifiedRows_01) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -900,12 +972,13 @@ TEST_F(DomainTest, GetModifiedRows_01) {
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETMODIFIEDROWS, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  KtdomianObj.GetModifiedRows(db_conn,obj_key_struct,UPDATED);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETMODIFIEDROWS, ODBCM_RC_CONNECTION_ERROR);
+  int ret =  KtdomianObj.GetModifiedRows(db_conn, obj_key_struct, UPDATED);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-// ODBC retuns ODBCM_RC_RECORD_NOT_FOUND 
+//  ODBC retuns ODBCM_RC_RECORD_NOT_FOUND
 TEST_F(DomainTest, GetModifiedRows_02) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -922,12 +995,13 @@ TEST_F(DomainTest, GetModifiedRows_02) {
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETMODIFIEDROWS, ODBCM_RC_RECORD_NOT_FOUND);
-  int ret =  KtdomianObj.GetModifiedRows(db_conn,obj_key_struct,UPDATED);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETMODIFIEDROWS, ODBCM_RC_RECORD_NOT_FOUND);
+  int ret =  KtdomianObj.GetModifiedRows(db_conn, obj_key_struct, UPDATED);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-// ODBC retuns ODBCM_RC_SUCCESS 
+//  ODBC retuns ODBCM_RC_SUCCESS
 TEST_F(DomainTest, GetModifiedRows_03) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -944,12 +1018,13 @@ TEST_F(DomainTest, GetModifiedRows_03) {
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETMODIFIEDROWS, ODBCM_RC_SUCCESS);
-  int ret =  KtdomianObj.GetModifiedRows(db_conn,obj_key_struct,UPDATED);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETMODIFIEDROWS, ODBCM_RC_SUCCESS);
+  int ret =  KtdomianObj.GetModifiedRows(db_conn, obj_key_struct, UPDATED);
   EXPECT_EQ(ODBCM_RC_SUCCESS, ret);
 }
 
-// ODBC retuns ODBCM_RC_FAILED
+//  ODBC retuns ODBCM_RC_FAILED
 TEST_F(DomainTest, GetModifiedRows_04) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -966,9 +1041,10 @@ TEST_F(DomainTest, GetModifiedRows_04) {
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETMODIFIEDROWS, ODBCM_RC_FAILED);
-  int ret =  KtdomianObj.GetModifiedRows(db_conn,obj_key_struct,UPDATED);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETMODIFIEDROWS, ODBCM_RC_FAILED);
+  int ret =  KtdomianObj.GetModifiedRows(db_conn, obj_key_struct, UPDATED);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
 TEST_F(DomainTest, SetOperStatus_001) {
@@ -980,9 +1056,11 @@ TEST_F(DomainTest, SetOperStatus_001) {
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_FAILED);
-  int ret =  KtdomianObj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplDomainOperStatus)1);
-  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_FAILED);
+  int ret =  KtdomianObj.SetOperStatus(
+    db_conn, UNC_DT_STATE, &k, (UpplDomainOperStatus)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
 TEST_F(DomainTest, SetOperStatus_002) {
@@ -993,9 +1071,11 @@ TEST_F(DomainTest, SetOperStatus_002) {
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
-  int ret =  KtdomianObj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplDomainOperStatus)0);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
+  int ret =  KtdomianObj.SetOperStatus(
+    db_conn, UNC_DT_STATE, &k, (UpplDomainOperStatus)0);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(DomainTest, SetOperStatus_003) {
@@ -1007,10 +1087,13 @@ TEST_F(DomainTest, SetOperStatus_003) {
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  int ret =  KtdomianObj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplDomainOperStatus)0);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  int ret =  KtdomianObj.SetOperStatus(
+    db_conn, UNC_DT_STATE, &k, (UpplDomainOperStatus)0);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(DomainTest, SetOperStatus_004) {
@@ -1025,10 +1108,13 @@ TEST_F(DomainTest, SetOperStatus_004) {
   ser_evt.addOutput((uint32_t)UNC_OP_CREATE);
   ser_evt.addOutput((uint32_t)UNC_DT_STATE);
   ser_evt.addOutput((uint32_t)UNC_KT_PORT);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  KtdomianObj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplDomainOperStatus)0);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret =  KtdomianObj.SetOperStatus(
+    db_conn, UNC_DT_STATE, &k, (UpplDomainOperStatus)0);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(DomainTest, SetOperStatus_005) {
@@ -1043,15 +1129,17 @@ TEST_F(DomainTest, SetOperStatus_005) {
   ser_evt.stub_setAddOutput((uint32_t)UNC_OP_UPDATE);
   ser_evt.stub_setAddOutput((uint32_t)UNC_DT_STATE);
   ser_evt.stub_setAddOutput((uint32_t)UNC_KT_CTR_DOMAIN);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  KtdomianObj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplDomainOperStatus)0);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret =  KtdomianObj.SetOperStatus(
+    db_conn, UNC_DT_STATE, &k, (UpplDomainOperStatus)0);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// GetOperStatus ODBC returns failure
+//  GetOperStatus ODBC returns failure
 TEST_F(DomainTest, GetOperStatus_001) {
-
   key_ctr_domain_t k;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
@@ -1060,14 +1148,14 @@ TEST_F(DomainTest, GetOperStatus_001) {
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
   uint8_t op_status;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  int ret =  KtdomianObj.GetOperStatus(db_conn,UNC_DT_STATE,&k,op_status);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  int ret =  KtdomianObj.GetOperStatus(db_conn, UNC_DT_STATE, &k, op_status);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
-// GetOperStatus ODBC returns SUCCESS
+//  GetOperStatus ODBC returns SUCCESS
 TEST_F(DomainTest, GetOperStatus_002) {
-
   key_ctr_domain_t k;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
@@ -1076,24 +1164,24 @@ TEST_F(DomainTest, GetOperStatus_002) {
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
   uint8_t op_status;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  KtdomianObj.GetOperStatus(db_conn,UNC_DT_STATE,&k,op_status);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret =  KtdomianObj.GetOperStatus(db_conn, UNC_DT_STATE, &k, op_status);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// HandleOperStatus with NULL keystruct
+//  HandleOperStatus with NULL keystruct
 TEST_F(DomainTest, HandleOperStatus_01) {
-
   key_ctr_domain_t *k;
   val_ctr_domain v;
   k = NULL;
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtdomianObj.HandleOperStatus(db_conn,UNC_DT_STATE,k,&v);
-  EXPECT_EQ(UPPL_RC_ERR_BAD_REQUEST, ret);
+  int ret =  KtdomianObj.HandleOperStatus(db_conn, UNC_DT_STATE, k, &v);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_BAD_REQUEST, ret);
 }
 
-// HandleOperStatus 
+//  HandleOperStatus
 TEST_F(DomainTest, HandleOperStatus_02) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -1108,12 +1196,13 @@ TEST_F(DomainTest, HandleOperStatus_02) {
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  KtdomianObj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v);
-  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret =  KtdomianObj.HandleOperStatus(db_conn, UNC_DT_STATE, &k, &v);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
-// HandleOperStatus Controller oper_status  retunrs failure 
+//  HandleOperStatus Controller oper_status  retunrs failure
 TEST_F(DomainTest, HandleOperStatus_03) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -1128,12 +1217,13 @@ TEST_F(DomainTest, HandleOperStatus_03) {
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  int ret =  KtdomianObj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v);
-  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  int ret =  KtdomianObj.HandleOperStatus(db_conn, UNC_DT_STATE, &k, &v);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
-// HandleDriverAlarms with unsupported alarm type
+//  HandleDriverAlarms with unsupported alarm type
 TEST_F(DomainTest, HandleDriverAlarms_01) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -1142,12 +1232,14 @@ TEST_F(DomainTest, HandleDriverAlarms_01) {
   vector<void *> obj_key_struct;
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  int ret =  KtdomianObj.HandleDriverAlarms(db_conn,UNC_DT_STATE,alarm_type,oper_type,&k,&v);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  int ret =  KtdomianObj.HandleDriverAlarms(
+    db_conn, UNC_DT_STATE, alarm_type, oper_type, &k, &v);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// HandleDriverAlarms with UNC_COREDOMAIN_SPLIT alarm type
+//  HandleDriverAlarms with UNC_COREDOMAIN_SPLIT alarm type
 TEST_F(DomainTest, HandleDriverAlarms_02) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -1160,12 +1252,14 @@ TEST_F(DomainTest, HandleDriverAlarms_02) {
   vector<void *> obj_key_struct;
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  int ret =  KtdomianObj.HandleDriverAlarms(db_conn,UNC_DT_STATE,alarm_type,oper_type,&k,&v);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  int ret =  KtdomianObj.HandleDriverAlarms(
+    db_conn, UNC_DT_STATE, alarm_type, oper_type, &k, &v);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
-// HandleDriverAlarms with oper_type UNC_OP_CREATE 
+//  HandleDriverAlarms with oper_type UNC_OP_CREATE
 TEST_F(DomainTest, HandleDriverAlarms_03) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -1178,12 +1272,14 @@ TEST_F(DomainTest, HandleDriverAlarms_03) {
   vector<void *> obj_key_struct;
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  KtdomianObj.HandleDriverAlarms(db_conn,UNC_DT_STATE,alarm_type,oper_type,&k,&v);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret =  KtdomianObj.HandleDriverAlarms(
+    db_conn, UNC_DT_STATE, alarm_type, oper_type, &k, &v);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// HandleDriverAlarms with oper_type UNC_OP_DELETE 
+//  HandleDriverAlarms with oper_type UNC_OP_DELETE
 TEST_F(DomainTest, HandleDriverAlarms_04) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -1196,13 +1292,16 @@ TEST_F(DomainTest, HandleDriverAlarms_04) {
   vector<void *> obj_key_struct;
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  int ret =  KtdomianObj.HandleDriverAlarms(db_conn,UNC_DT_STATE,alarm_type,oper_type,&k,&v);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  int ret =  KtdomianObj.HandleDriverAlarms(
+    db_conn, UNC_DT_STATE, alarm_type, oper_type, &k, &v);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// PerformSemanticValidation with oper_type UNC_OP_CREATE 
+//  PerformSemanticValidation with oper_type UNC_OP_CREATE
 TEST_F(DomainTest, PerformSemanticValidation_01) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -1214,12 +1313,14 @@ TEST_F(DomainTest, PerformSemanticValidation_01) {
   vector<void *> obj_key_struct;
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  int ret =  KtdomianObj.PerformSemanticValidation(db_conn, &k, &v, oper_type, UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_INSTANCE_EXISTS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret =  KtdomianObj.PerformSemanticValidation(
+    db_conn, &k, &v, oper_type, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_INSTANCE_EXISTS, ret);
 }
 
-// PerformSemanticValidation with oper_type UNC_OP_CREATE 
+//  PerformSemanticValidation with oper_type UNC_OP_CREATE
 TEST_F(DomainTest, PerformSemanticValidation_02) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -1231,12 +1332,14 @@ TEST_F(DomainTest, PerformSemanticValidation_02) {
   vector<void *> obj_key_struct;
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  KtdomianObj.PerformSemanticValidation(db_conn, &k, &v, oper_type, UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
+  int ret =  KtdomianObj.PerformSemanticValidation(
+    db_conn, &k, &v, oper_type, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-// PerformSemanticValidation with oper_type UNC_OP_CREATE 
+//  PerformSemanticValidation with oper_type UNC_OP_CREATE
 TEST_F(DomainTest, PerformSemanticValidation_03) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -1248,12 +1351,14 @@ TEST_F(DomainTest, PerformSemanticValidation_03) {
   vector<void *> obj_key_struct;
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_TRANSACTION_ERROR);
-  int ret =  KtdomianObj.PerformSemanticValidation(db_conn, &k, &v, oper_type, UNC_DT_IMPORT);
-  EXPECT_EQ(UPPL_RC_ERR_PARENT_DOES_NOT_EXIST, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_TRANSACTION_ERROR);
+  int ret =  KtdomianObj.PerformSemanticValidation(
+    db_conn, &k, &v, oper_type, UNC_DT_IMPORT);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_PARENT_DOES_NOT_EXIST, ret);
 }
 
-// PerformSemanticValidation with oper_type UNC_OP_READ 
+//  PerformSemanticValidation with oper_type UNC_OP_READ
 TEST_F(DomainTest, PerformSemanticValidation_04) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -1265,12 +1370,14 @@ TEST_F(DomainTest, PerformSemanticValidation_04) {
   vector<void *> obj_key_struct;
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  int ret =  KtdomianObj.PerformSemanticValidation(db_conn, &k, &v, oper_type, UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret =  KtdomianObj.PerformSemanticValidation(
+    db_conn, &k, &v, oper_type, UNC_DT_STATE);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// PerformSemanticValidation with oper_type UNC_OP_UPDATE 
+//  PerformSemanticValidation with oper_type UNC_OP_UPDATE
 TEST_F(DomainTest, PerformSemanticValidation_05) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -1282,12 +1389,14 @@ TEST_F(DomainTest, PerformSemanticValidation_05) {
   vector<void *> obj_key_struct;
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  KtdomianObj.PerformSemanticValidation(db_conn, &k, &v, oper_type, UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
+  int ret =  KtdomianObj.PerformSemanticValidation(
+    db_conn, &k, &v, oper_type, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-// PerformSemanticValidation with oper_type UNC_OP_DELETE 
+//  PerformSemanticValidation with oper_type UNC_OP_DELETE
 TEST_F(DomainTest, PerformSemanticValidation_06) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -1299,12 +1408,14 @@ TEST_F(DomainTest, PerformSemanticValidation_06) {
   vector<void *> obj_key_struct;
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_QUERY_TIMEOUT);
-  int ret =  KtdomianObj.PerformSemanticValidation(db_conn, &k, &v, oper_type, UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_QUERY_TIMEOUT);
+  int ret =  KtdomianObj.PerformSemanticValidation(
+    db_conn, &k, &v, oper_type, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-// ReadBulkInternal with max_count zero
+//  ReadBulkInternal with max_count zero
 TEST_F(DomainTest, ReadBulkInternal_01) {
   key_ctr_domain_t k;
   vector<val_ctr_domain_st> vect_val_ctr_domain_st;
@@ -1317,11 +1428,13 @@ TEST_F(DomainTest, ReadBulkInternal_01) {
   vector<void *> obj_key_struct;
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtdomianObj.ReadBulkInternal(db_conn, &k, UNC_DT_STATE, max_rep_ct, vect_val_ctr_domain_st, vect_domain_id);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  KtdomianObj.ReadBulkInternal(
+    db_conn, &k, UNC_DT_STATE, max_rep_ct,
+    vect_val_ctr_domain_st, vect_domain_id);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// ReadBulkInternal with read_db_status ODBCM_RC_RECORD_NOT_FOUND
+//  ReadBulkInternal with read_db_status ODBCM_RC_RECORD_NOT_FOUND
 TEST_F(DomainTest, ReadBulkInternal_02) {
   key_ctr_domain_t k;
   vector<val_ctr_domain_st> vect_val_ctr_domain_st;
@@ -1334,12 +1447,15 @@ TEST_F(DomainTest, ReadBulkInternal_02) {
   vector<void *> obj_key_struct;
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
-  int ret =  KtdomianObj.ReadBulkInternal(db_conn, &k, UNC_DT_STATE, max_rep_ct, vect_val_ctr_domain_st, vect_domain_id);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
+  int ret =  KtdomianObj.ReadBulkInternal(
+    db_conn, &k, UNC_DT_STATE, max_rep_ct,
+    vect_val_ctr_domain_st, vect_domain_id);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-// ReadBulkInternal with read_db_status ODBCM_RC_CONNECTION_ERROR
+//  ReadBulkInternal with read_db_status ODBCM_RC_CONNECTION_ERROR
 TEST_F(DomainTest, ReadBulkInternal_03) {
   key_ctr_domain_t k;
   vector<val_ctr_domain_st> vect_val_ctr_domain_st;
@@ -1352,12 +1468,15 @@ TEST_F(DomainTest, ReadBulkInternal_03) {
   vector<void *> obj_key_struct;
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  KtdomianObj.ReadBulkInternal(db_conn, &k, UNC_DT_STATE, max_rep_ct, vect_val_ctr_domain_st, vect_domain_id);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
+  int ret =  KtdomianObj.ReadBulkInternal(
+    db_conn, &k, UNC_DT_STATE, max_rep_ct,
+    vect_val_ctr_domain_st, vect_domain_id);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-// ReadBulkInternal with read_db_status ODBCM_RC_TABLE_NOT_FOUND
+//  ReadBulkInternal with read_db_status ODBCM_RC_TABLE_NOT_FOUND
 TEST_F(DomainTest, ReadBulkInternal_04) {
   key_ctr_domain_t k;
   vector<val_ctr_domain_st> vect_val_ctr_domain_st;
@@ -1370,13 +1489,15 @@ TEST_F(DomainTest, ReadBulkInternal_04) {
   vector<void *> obj_key_struct;
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_TABLE_NOT_FOUND);
-  int ret =  KtdomianObj.ReadBulkInternal(db_conn, &k, UNC_DT_STATE, max_rep_ct, 
-                                              vect_val_ctr_domain_st, vect_domain_id);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_TABLE_NOT_FOUND);
+  int ret =  KtdomianObj.ReadBulkInternal(
+    db_conn, &k, UNC_DT_STATE, max_rep_ct,
+    vect_val_ctr_domain_st, vect_domain_id);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
-// ReadBulkInternal with read_db_status ODBCM_RC_SUCCESS
+//  ReadBulkInternal with read_db_status ODBCM_RC_SUCCESS
 TEST_F(DomainTest, ReadBulkInternal_05) {
   key_ctr_domain_t k;
   vector<val_ctr_domain_st> vect_val_ctr_domain_st;
@@ -1389,14 +1510,16 @@ TEST_F(DomainTest, ReadBulkInternal_05) {
   vector<void *> obj_key_struct;
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret =  KtdomianObj.ReadBulkInternal(db_conn, &k, UNC_DT_STATE, max_rep_ct,
-                                             vect_val_ctr_domain_st, vect_domain_id);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  int ret =  KtdomianObj.ReadBulkInternal(
+    db_conn, &k, UNC_DT_STATE, max_rep_ct,
+    vect_val_ctr_domain_st, vect_domain_id);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//  ReadBulk with get_controller_type returns failure
-//  MEM
+//   ReadBulk with get_controller_type returns failure
+//   MEM
 TEST_F(DomainTest, ReadBulk_02) {
   key_ctr_domain_t k;
   int child_index = 2;
@@ -1411,16 +1534,19 @@ TEST_F(DomainTest, ReadBulk_02) {
   vector<void *> obj_key_struct;
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
   int ret =  KtdomianObj.ReadBulk(db_conn, &k, UNC_DT_CANDIDATE, max_rep_ct,
-                                  child_index, parent_call,is_read_next,
+        child_index, parent_call, is_read_next,
                                   &read_req);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//  ReadBulk with data type UNC_DT_IMPORT
+//   ReadBulk with data type UNC_DT_IMPORT
 TEST_F(DomainTest, ReadBulk_01) {
   key_ctr_domain_t k;
   int child_index = 0;
@@ -1436,11 +1562,11 @@ TEST_F(DomainTest, ReadBulk_01) {
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret =  KtdomianObj.ReadBulk(db_conn, &k, UNC_DT_IMPORT, max_rep_ct,
-                              child_index, parent_call,is_read_next, &read_req);
-  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+    child_index, parent_call, is_read_next, &read_req);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
-// DeleteKeyInstance with data type UNC_DT_RUNNING
+//  DeleteKeyInstance with data type UNC_DT_RUNNING
 TEST_F(DomainTest, DeleteKeyInstance_01) {
   key_ctr_domain_t k;
   uint32_t key_type = 0;
@@ -1450,12 +1576,14 @@ TEST_F(DomainTest, DeleteKeyInstance_01) {
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  //unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret =  KtdomianObj.DeleteKeyInstance(db_conn, &k, UNC_DT_RUNNING, key_type);
-  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+  // unc::uppl::ODBCManager::stub_setResultcode(
+  // unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  int ret =  KtdomianObj.DeleteKeyInstance(db_conn, &k, UNC_DT_RUNNING,
+                                           key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
-// DeleteKeyInstance with out child
+//  DeleteKeyInstance with out child
 TEST_F(DomainTest, DeleteKeyInstance_02) {
   key_ctr_domain_t k;
   uint32_t key_type = 0;
@@ -1465,12 +1593,14 @@ TEST_F(DomainTest, DeleteKeyInstance_02) {
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
-  int ret =  KtdomianObj.DeleteKeyInstance(db_conn, &k, UNC_DT_CANDIDATE, key_type);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
+  int ret =  KtdomianObj.DeleteKeyInstance(db_conn,
+                                           &k, UNC_DT_CANDIDATE, key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-// DeleteKeyInstance with out child
+//  DeleteKeyInstance with out child
 TEST_F(DomainTest, DeleteKeyInstance_03) {
   key_ctr_domain_t k;
   uint32_t key_type = 0;
@@ -1480,12 +1610,14 @@ TEST_F(DomainTest, DeleteKeyInstance_03) {
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
-  int ret =  KtdomianObj.DeleteKeyInstance(db_conn, &k, UNC_DT_IMPORT, key_type);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
+  int ret =  KtdomianObj.DeleteKeyInstance(
+      db_conn, &k, UNC_DT_IMPORT, key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-// DeleteKeyInstance with out child
+//  DeleteKeyInstance with out child
 TEST_F(DomainTest, DeleteKeyInstance_04) {
   key_ctr_domain_t k;
   uint32_t key_type = 0;
@@ -1495,12 +1627,14 @@ TEST_F(DomainTest, DeleteKeyInstance_04) {
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_TRANSACTION_ERROR);
-  int ret =  KtdomianObj.DeleteKeyInstance(db_conn, &k, UNC_DT_IMPORT, key_type);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SEMANTIC, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_TRANSACTION_ERROR);
+  int ret =  KtdomianObj.DeleteKeyInstance(
+      db_conn, &k, UNC_DT_IMPORT, key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SEMANTIC, ret);
 }
 
-// DeleteKeyInstance suceess
+//  DeleteKeyInstance suceess
 TEST_F(DomainTest, DeleteKeyInstance_05) {
   key_ctr_domain_t k;
   uint32_t key_type = 0;
@@ -1510,23 +1644,25 @@ TEST_F(DomainTest, DeleteKeyInstance_05) {
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
-  int ret =  KtdomianObj.DeleteKeyInstance(db_conn, &k, UNC_DT_IMPORT, key_type);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
+  int ret =  KtdomianObj.DeleteKeyInstance(db_conn, &k, UNC_DT_IMPORT,
+                                           key_type);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 
-// FreeChildKeyStruct suceess
+//  FreeChildKeyStruct suceess
 TEST_F(DomainTest, FreeChildKeyStruct_02) {
   void *key = new key_logical_port_t;
   int child_class = 0;
   Kt_Ctr_Domain  KtdomianObj;
-  int ret =  UPPL_RC_SUCCESS;
+  int ret =  UNC_RC_SUCCESS;
   KtdomianObj.FreeChildKeyStruct(child_class, key);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// InvokeBoundaryNotifyOperStatus  suceess
+//  InvokeBoundaryNotifyOperStatus  suceess
 TEST_F(DomainTest, InvokeBoundaryNotifyOperStatus_01) {
   key_ctr_domain_t k;
   memset(k.ctr_key.controller_name, '\0', 32);
@@ -1535,13 +1671,16 @@ TEST_F(DomainTest, InvokeBoundaryNotifyOperStatus_01) {
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret =  KtdomianObj.InvokeBoundaryNotifyOperStatus(db_conn, UNC_DT_IMPORT, &k);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  int ret =  KtdomianObj.InvokeBoundaryNotifyOperStatus(
+      db_conn, UNC_DT_IMPORT, &k);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// PerformRead invalid option and session failure
+//  PerformRead invalid option and session failure
 TEST_F(DomainTest, PerformRead_01) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -1560,18 +1699,20 @@ TEST_F(DomainTest, PerformRead_01) {
   ses.stub_setAddOutput((uint32_t)configuration_id);
   ses.stub_setAddOutput((uint32_t)session_id);
   ses.stub_setAddOutput((uint32_t)UNC_OP_CREATE);
-  //ses.stub_setAddOutput((uint32_t)&k);
+  // ses.stub_setAddOutput((uint32_t)&k);
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtdomianObj.PerformRead(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,operation_type,
-                                      ses, option1, option2,max_rep_ct);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =  KtdomianObj.PerformRead(
+    db_conn, session_id, configuration_id, &k, &v,
+    UNC_DT_CANDIDATE, operation_type,
+    ses, option1, option2, max_rep_ct);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-// PerformRead invalid option 
+//  PerformRead invalid option
 TEST_F(DomainTest, PerformRead_02) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -1594,20 +1735,22 @@ TEST_F(DomainTest, PerformRead_02) {
   ses.stub_setAddOutput((uint32_t)option1);
   ses.stub_setAddOutput((uint32_t)option2);
   ses.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
-  ses.stub_setAddOutput((uint32_t)UPPL_RC_ERR_INVALID_OPTION1);
+  ses.stub_setAddOutput((uint32_t)UNC_UPPL_RC_ERR_INVALID_OPTION1);
   ses.stub_setAddOutput((uint32_t)UNC_KT_CTR_DOMAIN);
-  //ses.stub_setAddOutput((uint32_t)&k);
+  // ses.stub_setAddOutput((uint32_t)&k);
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtdomianObj.PerformRead(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,operation_type,
-                                      ses, option1, option2,max_rep_ct);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  KtdomianObj.PerformRead(
+    db_conn, session_id, configuration_id, &k, &v,
+    UNC_DT_CANDIDATE, operation_type,
+    ses, option1, option2, max_rep_ct);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// PerformRead invalid data type and session failure
+//  PerformRead invalid data type and session failure
 TEST_F(DomainTest, PerformRead_03) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -1626,18 +1769,19 @@ TEST_F(DomainTest, PerformRead_03) {
   ses.stub_setAddOutput((uint32_t)configuration_id);
   ses.stub_setAddOutput((uint32_t)session_id);
   ses.stub_setAddOutput((uint32_t)UNC_OP_CREATE);
-  //ses.stub_setAddOutput((uint32_t)&k);
+  // ses.stub_setAddOutput((uint32_t)&k);
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtdomianObj.PerformRead(db_conn,session_id,configuration_id,&k,&v,UNC_DT_AUDIT,operation_type,
-                                      ses, option1, option2,max_rep_ct);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =  KtdomianObj.PerformRead(
+    db_conn, session_id, configuration_id, &k, &v, UNC_DT_AUDIT, operation_type,
+    ses, option1, option2, max_rep_ct);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-// PerformRead invalid data type 
+//  PerformRead invalid data type
 TEST_F(DomainTest, PerformRead_04) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -1661,19 +1805,20 @@ TEST_F(DomainTest, PerformRead_04) {
   ses.stub_setAddOutput((uint32_t)option2);
   ses.stub_setAddOutput((uint32_t)UNC_DT_AUDIT);
   ses.stub_setAddOutput((uint32_t)UNC_KT_CTR_DOMAIN);
-  ses.stub_setAddOutput((uint32_t)UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
-  //ses.stub_setAddOutput((uint32_t)&k);
+  ses.stub_setAddOutput((uint32_t)UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
+  // ses.stub_setAddOutput((uint32_t)&k);
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtdomianObj.PerformRead(db_conn,session_id,configuration_id,&k,&v,UNC_DT_AUDIT,operation_type,
-                                      ses, option1, option2,max_rep_ct);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  KtdomianObj.PerformRead(
+    db_conn, session_id, configuration_id, &k, &v, UNC_DT_AUDIT, operation_type,
+    ses, option1, option2, max_rep_ct);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// PerformRead invalid data type 
+//  PerformRead invalid data type
 TEST_F(DomainTest, PerformRead_05) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -1694,20 +1839,23 @@ TEST_F(DomainTest, PerformRead_05) {
   ses.stub_setAddOutput((uint32_t)operation_type);
   ses.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
   ses.stub_setAddOutput((uint32_t)UNC_KT_CTR_DOMAIN);
-  ses.stub_setAddOutput((uint32_t)UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
-  //ses.stub_setAddOutput((uint32_t)&k);
+  ses.stub_setAddOutput((uint32_t)UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
+  // ses.stub_setAddOutput((uint32_t)&k);
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  KtdomianObj.PerformRead(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,operation_type,
-                                      ses, option1, option2,max_rep_ct);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret =  KtdomianObj.PerformRead(
+    db_conn, session_id, configuration_id, &k, &v,
+    UNC_DT_CANDIDATE, operation_type,
+    ses, option1, option2, max_rep_ct);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-// PerformRead invalid data type 
+//  PerformRead invalid data type
 TEST_F(DomainTest, PerformRead_06) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -1731,20 +1879,23 @@ TEST_F(DomainTest, PerformRead_06) {
   ses.stub_setAddOutput((uint32_t)option2);
   ses.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
   ses.stub_setAddOutput((uint32_t)UNC_KT_CTR_DOMAIN);
-  ses.stub_setAddOutput((uint32_t)UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
-  //ses.stub_setAddOutput((uint32_t)&k);
+  ses.stub_setAddOutput((uint32_t)UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
+  // ses.stub_setAddOutput((uint32_t)&k);
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  KtdomianObj.PerformRead(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,operation_type,
-                                      ses, option1, option2,max_rep_ct);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
+  int ret =  KtdomianObj.PerformRead(
+    db_conn, session_id, configuration_id, &k, &v,
+    UNC_DT_CANDIDATE, operation_type,
+    ses, option1, option2, max_rep_ct);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-// PerformRead invalid data type 
+//  PerformRead invalid data type
 TEST_F(DomainTest, PerformRead_07) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -1769,19 +1920,22 @@ TEST_F(DomainTest, PerformRead_07) {
   ses.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
   ses.stub_setAddOutput((uint32_t)UNC_KT_CTR_DOMAIN);
   ses.stub_setAddOutput((uint32_t)0);
-  //ses.stub_setAddOutput((uint32_t)&k);
+  // ses.stub_setAddOutput((uint32_t)&k);
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
   memset(k.domain_name, '\0', sizeof(k.domain_name));
   memcpy(k.domain_name, pkDomainName2, strlen(pkDomainName2));
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  KtdomianObj.PerformRead(db_conn,session_id,configuration_id,&k,&v,UNC_DT_CANDIDATE,operation_type,
-                                      ses, option1, option2,max_rep_ct);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret =  KtdomianObj.PerformRead(
+    db_conn, session_id, configuration_id, &k, &v,
+    UNC_DT_CANDIDATE, operation_type,
+    ses, option1, option2, max_rep_ct);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// ReadDomainValFromDB with operation type UNC_OP_INVALID
+//  ReadDomainValFromDB with operation type UNC_OP_INVALID
 TEST_F(DomainTest, ReadDomainValFromDB_01) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -1789,7 +1943,7 @@ TEST_F(DomainTest, ReadDomainValFromDB_01) {
   v.valid[kIdxDomainType] = 1;
   uint32_t max_rep_ct = 1;
   vector<val_ctr_domain_st> vect_val_ctr_domain_st;
-  vector<key_ctr_domain> domain_id; 
+  vector<key_ctr_domain> domain_id;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
   memset(k.domain_name, '\0', sizeof(k.domain_name));
@@ -1798,12 +1952,14 @@ TEST_F(DomainTest, ReadDomainValFromDB_01) {
   vector<void *> obj_key_struct;
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtdomianObj.ReadDomainValFromDB(db_conn,&k,&v,UNC_DT_CANDIDATE,oper_type,
-                                          max_rep_ct,vect_val_ctr_domain_st,domain_id);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  KtdomianObj.ReadDomainValFromDB(
+    db_conn, &k, &v, UNC_DT_CANDIDATE, oper_type,
+    max_rep_ct,
+    vect_val_ctr_domain_st, domain_id);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// ReadDomainValFromDB with operation type UNC_OP_READ
+//  ReadDomainValFromDB with operation type UNC_OP_READ
 TEST_F(DomainTest, ReadDomainValFromDB_02) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -1813,7 +1969,7 @@ TEST_F(DomainTest, ReadDomainValFromDB_02) {
 
   uint32_t max_rep_ct = 1;
   vector<val_ctr_domain_st> vect_val_ctr_domain_st;
-  vector<key_ctr_domain> domain_id; 
+  vector<key_ctr_domain> domain_id;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
   memset(k.domain_name, '\0', sizeof(k.domain_name));
@@ -1822,13 +1978,16 @@ TEST_F(DomainTest, ReadDomainValFromDB_02) {
   vector<void *> obj_key_struct;
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_RECORD_NOT_FOUND);
-  int ret =  KtdomianObj.ReadDomainValFromDB(db_conn,&k,&v,UNC_DT_CANDIDATE,oper_type,
-                                          max_rep_ct,vect_val_ctr_domain_st,domain_id);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_RECORD_NOT_FOUND);
+  int ret =  KtdomianObj.ReadDomainValFromDB(
+    db_conn, &k, &v, UNC_DT_CANDIDATE, oper_type,
+    max_rep_ct,
+    vect_val_ctr_domain_st, domain_id);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-// ReadDomainValFromDB with operation type UNC_OP_READ_BULK
+//  ReadDomainValFromDB with operation type UNC_OP_READ_BULK
 TEST_F(DomainTest, ReadDomainValFromDB_03) {
   key_ctr_domain_t k;
   val_ctr_domain v;
@@ -1838,7 +1997,7 @@ TEST_F(DomainTest, ReadDomainValFromDB_03) {
 
   uint32_t max_rep_ct = 1;
   vector<val_ctr_domain_st> vect_val_ctr_domain_st;
-  vector<key_ctr_domain> domain_id; 
+  vector<key_ctr_domain> domain_id;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
   memset(k.domain_name, '\0', sizeof(k.domain_name));
@@ -1847,10 +2006,13 @@ TEST_F(DomainTest, ReadDomainValFromDB_03) {
   vector<void *> obj_key_struct;
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  KtdomianObj.ReadDomainValFromDB(db_conn,&k,&v,UNC_DT_CANDIDATE,oper_type,
-                                          max_rep_ct,vect_val_ctr_domain_st,domain_id);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
+  int ret =  KtdomianObj.ReadDomainValFromDB(
+    db_conn, &k, &v, UNC_DT_CANDIDATE, oper_type,
+    max_rep_ct,
+    vect_val_ctr_domain_st, domain_id);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 TEST_F(DomainTest, ReadDomainValFromDB_04) {
@@ -1862,7 +2024,7 @@ TEST_F(DomainTest, ReadDomainValFromDB_04) {
 
   uint32_t max_rep_ct = 1;
   vector<val_ctr_domain_st> vect_val_ctr_domain_st;
-  vector<key_ctr_domain> domain_id; 
+  vector<key_ctr_domain> domain_id;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
   memset(k.domain_name, '\0', sizeof(k.domain_name));
@@ -1871,10 +2033,13 @@ TEST_F(DomainTest, ReadDomainValFromDB_04) {
   vector<void *> obj_key_struct;
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_QUERY_TIMEOUT);
-  int ret =  KtdomianObj.ReadDomainValFromDB(db_conn,&k,&v,UNC_DT_CANDIDATE,oper_type,
-                                          max_rep_ct,vect_val_ctr_domain_st,domain_id);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_QUERY_TIMEOUT);
+  int ret =  KtdomianObj.ReadDomainValFromDB(
+    db_conn, &k, &v, UNC_DT_CANDIDATE, oper_type,
+    max_rep_ct,
+    vect_val_ctr_domain_st, domain_id);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
 TEST_F(DomainTest, ReadDomainValFromDB_05) {
@@ -1886,7 +2051,7 @@ TEST_F(DomainTest, ReadDomainValFromDB_05) {
 
   uint32_t max_rep_ct = 1;
   vector<val_ctr_domain_st> vect_val_ctr_domain_st;
-  vector<key_ctr_domain> domain_id; 
+  vector<key_ctr_domain> domain_id;
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkctrName1, strlen(pkctrName1));
   memset(k.domain_name, '\0', sizeof(k.domain_name));
@@ -1895,13 +2060,16 @@ TEST_F(DomainTest, ReadDomainValFromDB_05) {
   vector<void *> obj_key_struct;
   Kt_Ctr_Domain  KtdomianObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret =  KtdomianObj.ReadDomainValFromDB(db_conn,&k,&v,UNC_DT_CANDIDATE,oper_type,
-                                          max_rep_ct,vect_val_ctr_domain_st,domain_id);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  int ret =  KtdomianObj.ReadDomainValFromDB(
+    db_conn, &k, &v, UNC_DT_CANDIDATE, oper_type,
+    max_rep_ct,
+    vect_val_ctr_domain_st, domain_id);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// GetChildClassPointer suceess
+//  GetChildClassPointer suceess
 TEST_F(DomainTest, GetChildClassPointer_02) {
   int KIndex = 0;
   Kt_Ctr_Domain  KtdomianObj;
index a849fcfc968c5d6e76a9310d328a84b45fc612ad..021624f8e7a8dea3e8f1ab9ba9395a09aabf3a56 100644 (file)
@@ -35,8 +35,8 @@
 #include <pfc/iostream.h>
 #include <pfc/ipc_client.h>
 #include <pfc/ipc_pfcd.h>
-#include <pfc/ipc_struct.h>
 #include <odbcm_mgr.hh>
+#include <tclib_module.hh>
 #include <physical_common_def.hh>
 #include <unc/uppl_common.h>
 #include <unc/keytype.h>
 #include <itc_kt_logical_member_port.hh>
 #include <itc_kt_logicalport.hh>
 #include <ipct_util.hh>
-#include <itc_kt_logical_member_port.hh>
 #include <physicallayer.hh>
 #include "PhysicalLayerStub.hh"
-#include <tclib_module.hh>
 #include <itc_read_request.hh>
 #include "ut_util.hh"
 
@@ -65,21 +63,20 @@ using namespace std;
 using namespace unc::uppl::test;
 
 class LinkTest
-  : public UpplTestEnv
-{
+  : public UpplTestEnv {
 };
 
-// Can be changed based on testing need
-static char pkName1_ctr[] = "controller1";
-static char pkName1_switchid1[] = "{0x10,0xbc}";
-static char pkName1_portid1[] = "controller1 port";
-static char pkName1_switchid2[] = "{0x11,0xab}";
-static char pkName1_portid2[] = "controller1 port 4";
-static char pkName4_ctr[] = "";
-static char pkName4_switchid1[] = "";
-static char pkName4_portid1[] = "";
-static char pkName4_switchid2[] = "";
-static char pkName4_portid2[] = "";
+//  Can be changed based on testing need
+static char pkName1_ctr[]  =  "controller1";
+static char pkName1_switchid1[]  =  "{0x10, 0xbc}";
+static char pkName1_portid1[]  =  "controller1 port";
+static char pkName1_switchid2[]  =  "{0x11, 0xab}";
+static char pkName1_portid2[]  =  "controller1 port 4";
+static char pkName4_ctr[]  =  "";
+static char pkName4_switchid1[]  =  "";
+static char pkName4_portid1[]  =  "";
+static char pkName4_switchid2[]  =  "";
+static char pkName4_portid2[]  =  "";
 
 static void getKeyForKtLink1(key_link_t& k,
                              std::vector<string>& sw_vect_key_value) {
@@ -99,7 +96,6 @@ static void getKeyForKtLink1(key_link_t& k,
   sw_vect_key_value.push_back(pkName1_portid1);
   sw_vect_key_value.push_back(pkName1_switchid2);
   sw_vect_key_value.push_back(pkName1_portid2);
-
 }
 
 static void getKeyForKtLink1(key_link_t& k) {
@@ -116,14 +112,14 @@ static void getKeyForKtLink1(key_link_t& k) {
 }
 
 static void getValForKtLink1(val_link_st_t& v) {
-  // uint8_t description[128];
+  //  uint8_t description[128];
   memset(v.link.description, '\0', 128);
   memcpy(v.link.description, "linkdescription", strlen("linkdescription"));
 
-  // uint8_t oper_status
-  v.oper_status = 0;
+  //  uint8_t oper_status
+  v.oper_status  =  0;
 
-  // uint8_t valid[2];
+  //  uint8_t valid[2];
   memset(v.valid, 1, 2);
 }
 
@@ -143,18 +139,17 @@ static void getKeyForLinkNoKeyNotify(key_link_t& k) {
 static void getReqHeader(physical_request_header& rh,
                          unc_keytype_operation_t opern,
                          unc_keytype_datatype_t dtype) {
-  rh.client_sess_id = 1;
-  rh.config_id = 1;
-  rh.operation = opern;
-  rh.max_rep_count = 0;
-  rh.option1 = 0;
-  rh.option2 = 0;
-  rh.data_type = dtype;
-  rh.key_type = UNC_KT_LINK;
+  rh.client_sess_id  =  1;
+  rh.config_id  =  1;
+  rh.operation  =  opern;
+  rh.max_rep_count  =  0;
+  rh.option1  =  0;
+  rh.option2  =  0;
+  rh.data_type  =  dtype;
+  rh.key_type  =  UNC_KT_LINK;
 }
 
 TEST_F(LinkTest, PerformSyntxCheck_01) {
-
   key_link_t k;
   val_link_st v;
   memset(&v, 0, sizeof(v));
@@ -162,17 +157,16 @@ TEST_F(LinkTest, PerformSyntxCheck_01) {
   physical_request_header rh;
   getKeyForKtLink1(k);
   getReqHeader(rh, UNC_OP_READ, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
-  uint32_t operation = UNC_OP_CREATE;
-   
-  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  uint32_t operation  =  UNC_OP_CREATE;
 
+  int ret = ktlinkobj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//Key Empty
+// Key Empty
 TEST_F(LinkTest, PerformSyntxCheck_02) {
-
   key_link_t k;
   val_link_st v;
   Kt_Link ktlinkobj;
@@ -181,16 +175,16 @@ TEST_F(LinkTest, PerformSyntxCheck_02) {
 
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_READ_SIBLING_COUNT, UNC_DT_STATE);
-  uint32_t operation = UNC_OP_CREATE;
-  OdbcmConnectionHandler *db_conn =NULL;
-   
-  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  uint32_t operation  =  UNC_OP_CREATE;
+  OdbcmConnectionHandler *db_conn  = NULL;
+
+  int ret = ktlinkobj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//indfividual Attributes havin mepty values
+// indfividual Attributes havin mepty values
 TEST_F(LinkTest, PerformSyntxCheck_03) {
-
   key_link_t k;
   val_link_st v;
   Kt_Link ktlinkobj;
@@ -199,15 +193,15 @@ TEST_F(LinkTest, PerformSyntxCheck_03) {
   physical_request_header rh;
   getKeyForLinkNoKeyNotify(k);
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
-  uint32_t operation = UNC_OP_CREATE;
-  OdbcmConnectionHandler *db_conn =NULL;
+  uint32_t operation  =  UNC_OP_CREATE;
+  OdbcmConnectionHandler *db_conn  = NULL;
 
-  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  int ret = ktlinkobj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
-//Setting controller name as empty
+// Setting controller name as empty
 TEST_F(LinkTest, PerformSyntxCheck_04) {
-
   key_link_t k;
   val_link_st v;
   Kt_Link ktlinkobj;
@@ -218,16 +212,16 @@ TEST_F(LinkTest, PerformSyntxCheck_04) {
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkName4_ctr, strlen(pkName4_ctr));
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
-  uint32_t operation = UNC_OP_CREATE;
-  OdbcmConnectionHandler *db_conn =NULL;
+  uint32_t operation  =  UNC_OP_CREATE;
+  OdbcmConnectionHandler *db_conn  = NULL;
 
-  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  int ret = ktlinkobj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-//Setting switchID1 name as empty
+// Setting switchID1 name as empty
 TEST_F(LinkTest, PerformSyntxCheck_05) {
-
   key_link_t k;
   val_link_st v;
   Kt_Link ktlinkobj;
@@ -235,21 +229,21 @@ TEST_F(LinkTest, PerformSyntxCheck_05) {
   memset(v.link.valid, '\0', sizeof(v.link.valid));
   physical_request_header rh;
   getKeyForKtLink1(k);
-  
+
   memset(k.switch_id1, '\0', 256);
   memcpy(k.switch_id1, pkName4_switchid1, strlen(pkName4_switchid1));
 
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
-  uint32_t operation = UNC_OP_CREATE;
-  OdbcmConnectionHandler *db_conn =NULL;
+  uint32_t operation  =  UNC_OP_CREATE;
+  OdbcmConnectionHandler *db_conn  = NULL;
 
-  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  int ret = ktlinkobj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-//Setting switchID2 name as empty
+// Setting switchID2 name as empty
 TEST_F(LinkTest, PerformSyntxCheck_06) {
-
   key_link_t k;
   val_link_st v;
   Kt_Link ktlinkobj;
@@ -262,16 +256,16 @@ TEST_F(LinkTest, PerformSyntxCheck_06) {
   memcpy(k.switch_id2, pkName4_switchid2, strlen(pkName4_switchid2));
 
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
-  uint32_t operation = UNC_OP_CREATE;
-  OdbcmConnectionHandler *db_conn =NULL;
+  uint32_t operation  =  UNC_OP_CREATE;
+  OdbcmConnectionHandler *db_conn  = NULL;
 
-  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  int ret = ktlinkobj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-//Setting portID1 name as empty
+// Setting portID1 name as empty
 TEST_F(LinkTest, PerformSyntxCheck_07) {
-
   key_link_t k;
   val_link_st v;
   Kt_Link ktlinkobj;
@@ -279,21 +273,21 @@ TEST_F(LinkTest, PerformSyntxCheck_07) {
   memset(v.link.valid, '\0', sizeof(v.link.valid));
   physical_request_header rh;
   getKeyForKtLink1(k);
-  
+
   memset(k.port_id1, '\0', 32);
   memcpy(k.port_id1, pkName4_portid1, strlen(pkName4_portid1));
 
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
-  uint32_t operation = UNC_OP_CREATE;
-  OdbcmConnectionHandler *db_conn =NULL;
+  uint32_t operation  =  UNC_OP_CREATE;
+  OdbcmConnectionHandler *db_conn  = NULL;
 
-  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  int ret = ktlinkobj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-//Setting portID2 name as empty
+// Setting portID2 name as empty
 TEST_F(LinkTest, PerformSyntxCheck_08) {
-
   key_link_t k;
   val_link_st v;
   Kt_Link ktlinkobj;
@@ -306,15 +300,15 @@ TEST_F(LinkTest, PerformSyntxCheck_08) {
   memcpy(k.port_id2, pkName4_portid2, strlen(pkName4_portid2));
 
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
-  uint32_t operation = UNC_OP_CREATE;
-  OdbcmConnectionHandler *db_conn =NULL;
+  uint32_t operation  =  UNC_OP_CREATE;
+  OdbcmConnectionHandler *db_conn  = NULL;
 
-  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  int ret = ktlinkobj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
-//Setting description as empty
+// Setting description as empty
 TEST_F(LinkTest, PerformSyntxCheck_09) {
-
   key_link_t k;
   val_link_st v;
   Kt_Link ktlinkobj;
@@ -325,23 +319,23 @@ TEST_F(LinkTest, PerformSyntxCheck_09) {
 
   memset(v.link.description, '\0', 128);
   memcpy(v.link.description, "", strlen(""));
-                      // uint8_t                 description[128];
-  // uint8_t oper_status
-  v.oper_status = 0;
-  memset(v.valid, 1, 2);  // uint8_t
+  //  uint8_t                 description[128];
+  //  uint8_t oper_status
+  v.oper_status  =  0;
+  memset(v.valid, 1, 2);  //  uint8_t
 
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
-  uint32_t operation = UNC_OP_CREATE;
-  OdbcmConnectionHandler *db_conn =NULL;
+  uint32_t operation  =  UNC_OP_CREATE;
+  OdbcmConnectionHandler *db_conn  = NULL;
 
-  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  //EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = ktlinkobj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  // EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//Setting description length more than 128
+// Setting description length more than 128
 TEST_F(LinkTest, PerformSyntxCheck_10) {
-
   key_link_t k;
   val_link_st v;
   Kt_Link ktlinkobj;
@@ -349,31 +343,31 @@ TEST_F(LinkTest, PerformSyntxCheck_10) {
   memset(v.link.valid, '\0', sizeof(v.link.valid));
   physical_request_header rh;
   getKeyForKtLink1(k);
-  const char* strdes = "Alter the SV_INTERRUPT property of a signal handler. If interrupt is zero, system calls will be restarted after signal delivery kkkkkkkkkkkkkkkkkkk";
-  
-  // uint8_t                 description[128];
+
+  const char* strdes  =  "Alter the SV_INTERRUPT property of a signal handler. If interrupt is zero, system calls will be restarted after signal delivery kkkkkkkkkkkkkkkkkkk";
+
+  //  uint8_t                 description[128];
   memset(v.link.description, '\0', sizeof(v.link.description));
   strncpy(reinterpret_cast<char *>(v.link.description), strdes,
           sizeof(v.link.description));
   EXPECT_NE(static_cast<uint8_t>('\0'), v.link.description[127]);
 
-  // uint8_t oper_status
-  v.oper_status = 0;
-  memset(v.valid, 1, 2);  // uint8_t
+  //  uint8_t oper_status
+  v.oper_status  =  0;
+  memset(v.valid, 1, 2);  //  uint8_t
 
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
-  uint32_t operation = UNC_OP_CREATE;
-  OdbcmConnectionHandler *db_conn =NULL;
+  uint32_t operation  =  UNC_OP_CREATE;
+  OdbcmConnectionHandler *db_conn  = NULL;
+
+  int ret = ktlinkobj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
 
-  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//Setting oper status as invalid
+// Setting oper status as invalid
 TEST_F(LinkTest, PerformSyntxCheck_11) {
-
   key_link_t k;
   val_link_st v;
   Kt_Link ktlinkobj;
@@ -381,52 +375,54 @@ TEST_F(LinkTest, PerformSyntxCheck_11) {
   memset(v.link.valid, '\0', sizeof(v.link.valid));
   physical_request_header rh;
   getKeyForKtLink1(k);
-  const char* strdes = "link des";
-  
+
+  const char* strdes  =  "link des";
+
   memset(v.link.description, '\0', 128);
-  memcpy(v.link.description,strdes , strlen(strdes));
+  memcpy(v.link.description, strdes , strlen(strdes));
 
-  v.oper_status = 4;
-  memset(v.valid, 1, 2);  // uint8_t
+  v.oper_status  =  4;
+  memset(v.valid, 1, 2);  //  uint8_t
 
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
-  uint32_t operation = UNC_OP_CREATE;
-  OdbcmConnectionHandler *db_conn =NULL;
+  uint32_t operation  =  UNC_OP_CREATE;
+  OdbcmConnectionHandler *db_conn  = NULL;
 
-  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = ktlinkobj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//key as Empty
+// key as Empty
 TEST_F(LinkTest, Link_IsKeyExists_01) {
   key_link_t k;
   Kt_Link ktlinkobj;
 
   getKeyForKtLink1(k);
-  OdbcmConnectionHandler *db_conn =NULL;
+
+  OdbcmConnectionHandler *db_conn  = NULL;
   vector<string> sw_vect_key_value;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  int ret =  ktlinkobj.IsKeyExists(db_conn,UNC_DT_STATE,sw_vect_key_value);
-  EXPECT_EQ(UPPL_RC_ERR_BAD_REQUEST, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret = ktlinkobj.IsKeyExists(db_conn, UNC_DT_STATE, sw_vect_key_value);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_BAD_REQUEST, ret);
 }
 
 TEST_F(LinkTest, Link_IsKeyExists_FailureIsrowexist02) {
-
   key_link_t k;
   Kt_Link ktlinkobj;
   vector<string> sw_vect_key_value;
 
-  getKeyForKtLink1(k,sw_vect_key_value);
+  getKeyForKtLink1(k, sw_vect_key_value);
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
-  int ret =  ktlinkobj.IsKeyExists(db_conn,UNC_DT_STATE,sw_vect_key_value);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
+  int ret = ktlinkobj.IsKeyExists(db_conn, UNC_DT_STATE, sw_vect_key_value);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 TEST_F(LinkTest, Link_IsKeyExists_SuccessIsrowexist03) {
@@ -436,13 +432,14 @@ TEST_F(LinkTest, Link_IsKeyExists_SuccessIsrowexist03) {
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
 
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   vector<string> sw_vect_key_value;
-  getKeyForKtLink1(k,sw_vect_key_value);
+  getKeyForKtLink1(k, sw_vect_key_value);
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  int ret =  ktlinkobj.IsKeyExists(db_conn,UNC_DT_STATE,sw_vect_key_value);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret = ktlinkobj.IsKeyExists(db_conn, UNC_DT_STATE, sw_vect_key_value);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(LinkTest, Link_IsKeyExists_FailConnectionErr04) {
@@ -455,50 +452,53 @@ TEST_F(LinkTest, Link_IsKeyExists_FailConnectionErr04) {
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
 
-  OdbcmConnectionHandler *db_conn =NULL;
-  getKeyForKtLink1(k,sw_vect_key_value);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  getKeyForKtLink1(k, sw_vect_key_value);
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  ktlinkobj.IsKeyExists(db_conn,UNC_DT_STATE,sw_vect_key_value);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
+  int ret = ktlinkobj.IsKeyExists(db_conn, UNC_DT_STATE, sw_vect_key_value);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 TEST_F(LinkTest, PerformSemanticValidation_InstanceExist_create05) {
-  
   key_link_t k;
   val_link_st v;
   Kt_Link ktlinkobj;
   vector<string> sw_vect_key_value;
 
-  getKeyForKtLink1(k,sw_vect_key_value);
+  getKeyForKtLink1(k, sw_vect_key_value);
 
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
 
-  OdbcmConnectionHandler *db_conn =NULL;
-  uint32_t operation = UNC_OP_CREATE;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_INSTANCE_EXISTS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  uint32_t operation  =  UNC_OP_CREATE;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret = ktlinkobj.PerformSemanticValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_INSTANCE_EXISTS, ret);
 }
 
 TEST_F(LinkTest, PerformSemanticValidation_ConnectionErr_create06) {
-
   key_link_t k;
   val_link_st v;
   Kt_Link ktlinkobj;
   vector<string> sw_vect_key_value;
 
-  getKeyForKtLink1(k,sw_vect_key_value);
+  getKeyForKtLink1(k, sw_vect_key_value);
 
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
 
-  OdbcmConnectionHandler *db_conn =NULL;
-  uint32_t operation = UNC_OP_CREATE;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  uint32_t operation  =  UNC_OP_CREATE;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
+  int ret = ktlinkobj.PerformSemanticValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 TEST_F(LinkTest, PerformSemanticValidation_InstanceNOtExist_update07) {
@@ -506,15 +506,17 @@ TEST_F(LinkTest, PerformSemanticValidation_InstanceNOtExist_update07) {
   val_link_st v;
   Kt_Link ktlinkobj;
   vector<string> sw_vect_key_value;
-  getKeyForKtLink1(k,sw_vect_key_value);
+  getKeyForKtLink1(k, sw_vect_key_value);
 
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
-  uint32_t operation = UNC_OP_UPDATE;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
-  int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  uint32_t operation  =  UNC_OP_UPDATE;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
+  int ret = ktlinkobj.PerformSemanticValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 TEST_F(LinkTest, PerformSemanticValidation_ConnectionErr_update08) {
@@ -522,15 +524,17 @@ TEST_F(LinkTest, PerformSemanticValidation_ConnectionErr_update08) {
   val_link_st v;
   Kt_Link ktlinkobj;
   vector<string> sw_vect_key_value;
-  getKeyForKtLink1(k,sw_vect_key_value);
+  getKeyForKtLink1(k, sw_vect_key_value);
 
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
-  uint32_t operation = UNC_OP_UPDATE;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  uint32_t operation  =  UNC_OP_UPDATE;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
+  int ret = ktlinkobj.PerformSemanticValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 TEST_F(LinkTest, PerformSemanticValidation_InstanceNOtExist_delete09) {
@@ -538,15 +542,17 @@ TEST_F(LinkTest, PerformSemanticValidation_InstanceNOtExist_delete09) {
   val_link_st v;
   Kt_Link ktlinkobj;
   vector<string> sw_vect_key_value;
-  getKeyForKtLink1(k,sw_vect_key_value);
+  getKeyForKtLink1(k, sw_vect_key_value);
 
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
-  uint32_t operation = UNC_OP_DELETE;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
-  int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  uint32_t operation  =  UNC_OP_DELETE;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
+  int ret = ktlinkobj.PerformSemanticValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 TEST_F(LinkTest, PerformSemanticValidation_ConnectionErr_delete10) {
@@ -554,15 +560,17 @@ TEST_F(LinkTest, PerformSemanticValidation_ConnectionErr_delete10) {
   val_link_st v;
   Kt_Link ktlinkobj;
   vector<string> sw_vect_key_value;
-  getKeyForKtLink1(k,sw_vect_key_value);
+  getKeyForKtLink1(k, sw_vect_key_value);
 
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
-  uint32_t operation = UNC_OP_DELETE;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  uint32_t operation  =  UNC_OP_DELETE;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
+  int ret = ktlinkobj.PerformSemanticValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 TEST_F(LinkTest, PerformSemanticValidation_InstanceNOtExist_read11) {
@@ -570,15 +578,17 @@ TEST_F(LinkTest, PerformSemanticValidation_InstanceNOtExist_read11) {
   val_link_st v;
   Kt_Link ktlinkobj;
   vector<string> sw_vect_key_value;
-  getKeyForKtLink1(k,sw_vect_key_value);
+  getKeyForKtLink1(k, sw_vect_key_value);
 
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
-  uint32_t operation = UNC_OP_READ;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
-  int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  uint32_t operation  =  UNC_OP_READ;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
+  int ret = ktlinkobj.PerformSemanticValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 TEST_F(LinkTest, PerformSemanticValidation_ConnectionErr_Read12) {
@@ -586,15 +596,17 @@ TEST_F(LinkTest, PerformSemanticValidation_ConnectionErr_Read12) {
   val_link_st v;
   Kt_Link ktlinkobj;
   vector<string> sw_vect_key_value;
-  getKeyForKtLink1(k,sw_vect_key_value);
+  getKeyForKtLink1(k, sw_vect_key_value);
 
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
-  uint32_t operation = UNC_OP_READ;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  uint32_t operation  =  UNC_OP_READ;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
+  int ret = ktlinkobj.PerformSemanticValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 TEST_F(LinkTest, PerformSemanticValidation_InstanceNOtExist_create13) {
@@ -602,16 +614,18 @@ TEST_F(LinkTest, PerformSemanticValidation_InstanceNOtExist_create13) {
   val_link_st v;
   Kt_Link ktlinkobj;
   vector<string> sw_vect_key_value;
-  getKeyForKtLink1(k,sw_vect_key_value);
+  getKeyForKtLink1(k, sw_vect_key_value);
 
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
 
-  OdbcmConnectionHandler *db_conn =NULL;
-  uint32_t operation = UNC_OP_CREATE;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
-  int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_PARENT_DOES_NOT_EXIST, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  uint32_t operation  =  UNC_OP_CREATE;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
+  int ret = ktlinkobj.PerformSemanticValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_PARENT_DOES_NOT_EXIST, ret);
 }
 
 TEST_F(LinkTest, LinkDeleteKeyInstance_UnsupportedForSTARTUP_14) {
@@ -620,9 +634,10 @@ TEST_F(LinkTest, LinkDeleteKeyInstance_UnsupportedForSTARTUP_14) {
   Kt_Link ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_STARTUP, UNC_KT_LINK);
-  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret  =  ktlinkobj.DeleteKeyInstance(
+    db_conn, &k, UNC_DT_STARTUP, UNC_KT_LINK);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
 TEST_F(LinkTest, LinkDeleteKeyInstance_UnsupportedForSTARTUP_15) {
@@ -631,9 +646,10 @@ TEST_F(LinkTest, LinkDeleteKeyInstance_UnsupportedForSTARTUP_15) {
   Kt_Link ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_CANDIDATE, UNC_KT_LINK);
-  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret  =  ktlinkobj.DeleteKeyInstance(
+    db_conn, &k, UNC_DT_CANDIDATE, UNC_KT_LINK);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
 TEST_F(LinkTest, LinkDeleteKeyInstance_UnsupportedForSTARTUP_16) {
@@ -642,32 +658,36 @@ TEST_F(LinkTest, LinkDeleteKeyInstance_UnsupportedForSTARTUP_16) {
   Kt_Link ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_RUNNING, UNC_KT_LINK);
-  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret  =  ktlinkobj.DeleteKeyInstance(
+    db_conn, &k, UNC_DT_RUNNING, UNC_KT_LINK);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
-TEST_F(LinkTest, LinkDeleteKeyInstance_Support_17) { 
+TEST_F(LinkTest, LinkDeleteKeyInstance_Support_17) {
   key_link_t k;
   memset(&k, 0, sizeof(key_link_t));
   Kt_Link ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, UNC_KT_LINK);
-  EXPECT_EQ(UPPL_RC_ERR_DB_DELETE, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret  =  ktlinkobj.DeleteKeyInstance(
+    db_conn, &k, UNC_DT_STATE, UNC_KT_LINK);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_DELETE, ret);
 }
 
-TEST_F(LinkTest, DeleteKeyInstance_Support_18) { 
+TEST_F(LinkTest, DeleteKeyInstance_Support_18) {
   key_link_t k;
   memset(&k, 0, sizeof(key_link_t));
   Kt_Link ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_CONNECTION_ERROR);
-  int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, UNC_KT_LINK);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_CONNECTION_ERROR);
+  int ret  =  ktlinkobj.DeleteKeyInstance(
+    db_conn, &k, UNC_DT_STATE, UNC_KT_LINK);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 TEST_F(LinkTest, DeleteKeyInstance_Support_19) {
@@ -676,22 +696,26 @@ TEST_F(LinkTest, DeleteKeyInstance_Support_19) {
   Kt_Link ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
-  int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, UNC_KT_LINK);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
+  int ret  =  ktlinkobj.DeleteKeyInstance(
+    db_conn, &k, UNC_DT_STATE, UNC_KT_LINK);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-TEST_F(LinkTest, LinkDeleteKeyInstance_Support_20) { 
+TEST_F(LinkTest, LinkDeleteKeyInstance_Support_20) {
   key_link_t k;
   memset(&k, 0, sizeof(key_link_t));
   Kt_Link ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
-  int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, UNC_KT_LINK);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
+  int ret  =  ktlinkobj.DeleteKeyInstance(
+    db_conn, &k, UNC_DT_STATE, UNC_KT_LINK);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(LinkTest, LinkPerformRead_incorrectoption1_21) {
@@ -702,8 +726,8 @@ TEST_F(LinkTest, LinkPerformRead_incorrectoption1_21) {
   Kt_Link ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_READ, UNC_DT_STATE);
-  rh.key_type = UNC_KT_LINK;
-  OdbcmConnectionHandler *db_conn =NULL;
+  rh.key_type  =  UNC_KT_LINK;
+  OdbcmConnectionHandler *db_conn  = NULL;
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -715,8 +739,11 @@ TEST_F(LinkTest, LinkPerformRead_incorrectoption1_21) {
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_LINK);
 
-  int ret =  ktlinkobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret = ktlinkobj.PerformRead(
+    db_conn, (uint32_t)0, (uint32_t)0, &k, &v,
+     (uint32_t)UNC_DT_STATE, (uint32_t)UNC_OP_READ, sess,
+     (uint32_t)UNC_OPT1_DETAIL, (uint32_t)UNC_OPT2_NONE, (uint32_t)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 TEST_F(LinkTest, LinkPerformRead_incorrectDT_22) {
@@ -727,8 +754,8 @@ TEST_F(LinkTest, LinkPerformRead_incorrectDT_22) {
   Kt_Link ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_READ, UNC_DT_CANDIDATE);
-  rh.key_type = UNC_KT_LINK;
-  OdbcmConnectionHandler *db_conn =NULL;
+  rh.key_type  =  UNC_KT_LINK;
+  OdbcmConnectionHandler *db_conn  = NULL;
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -739,8 +766,11 @@ TEST_F(LinkTest, LinkPerformRead_incorrectDT_22) {
   sess.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_LINK);
-int ret =  ktlinkobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_L2DOMAIN,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+int ret = ktlinkobj.PerformRead(
+    db_conn, (uint32_t)0, (uint32_t)0, &k, &v,
+    (uint32_t)UNC_DT_STATE, (uint32_t)UNC_OP_READ,
+    sess, (uint32_t)UNC_OPT1_NORMAL, (uint32_t)UNC_OPT2_L2DOMAIN, (uint32_t)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 TEST_F(LinkTest, LinkPerformRead_incorrectoption2_23) {
   key_link_t k;
@@ -750,8 +780,8 @@ TEST_F(LinkTest, LinkPerformRead_incorrectoption2_23) {
   Kt_Link ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_READ, UNC_DT_STATE);
-  rh.key_type = UNC_KT_LINK;
-  OdbcmConnectionHandler *db_conn =NULL;
+  rh.key_type  =  UNC_KT_LINK;
+  OdbcmConnectionHandler *db_conn  = NULL;
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -762,8 +792,11 @@ TEST_F(LinkTest, LinkPerformRead_incorrectoption2_23) {
   sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_LINK);
-int ret =  ktlinkobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_L2DOMAIN,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+int ret = ktlinkobj.PerformRead(
+    db_conn, (uint32_t)0, (uint32_t)0, &k, &v,
+     (uint32_t)UNC_DT_STATE, (uint32_t)UNC_OP_READ,
+     sess, (uint32_t)UNC_OPT1_NORMAL, (uint32_t)UNC_OPT2_L2DOMAIN, (uint32_t)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 TEST_F(LinkTest, LinkSetOperStatus_24) {
@@ -775,11 +808,13 @@ TEST_F(LinkTest, LinkSetOperStatus_24) {
 
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_UPDATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  int ret =  ktlinkobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplLinkOperStatus)1);
-  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  int ret = ktlinkobj.SetOperStatus(
+      db_conn, UNC_DT_STATE, &k, (UpplLinkOperStatus)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
 TEST_F(LinkTest, LinkSetOperStatus_25) {
@@ -791,10 +826,12 @@ TEST_F(LinkTest, LinkSetOperStatus_25) {
 
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_UPDATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
-  int ret =  ktlinkobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplLinkOperStatus)0);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
+  int ret =
+      ktlinkobj.SetOperStatus(db_conn, UNC_DT_STATE, &k, (UpplLinkOperStatus)0);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 TEST_F(LinkTest, LinkSetOperStatus_26) {
@@ -806,11 +843,14 @@ TEST_F(LinkTest, LinkSetOperStatus_26) {
 
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_UPDATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktlinkobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplLinkOperStatus)1);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret =
+      ktlinkobj.SetOperStatus(db_conn, UNC_DT_STATE, &k, (UpplLinkOperStatus)1);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(LinkTest, LinkSetOperStatus_27) {
@@ -823,11 +863,14 @@ TEST_F(LinkTest, LinkSetOperStatus_27) {
   physical_request_header rh;
   getKeyForKtLink1(k);
   getReqHeader(rh, UNC_OP_UPDATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktlinkobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplLinkOperStatus)1);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret  =
+      ktlinkobj.SetOperStatus(db_conn, UNC_DT_STATE, &k, (UpplLinkOperStatus)1);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(LinkTest, LinkSetOperStatus_28) {
@@ -840,11 +883,14 @@ TEST_F(LinkTest, LinkSetOperStatus_28) {
   physical_request_header rh;
   getKeyForKtLink1(k);
   getReqHeader(rh, UNC_OP_UPDATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktlinkobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplLinkOperStatus)2);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktlinkobj.SetOperStatus(db_conn,
+                                       UNC_DT_STATE, &k, (UpplLinkOperStatus)2);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(LinkTest, LinkReadBulk_Opnt_allow_29) {
@@ -854,31 +900,35 @@ TEST_F(LinkTest, LinkReadBulk_Opnt_allow_29) {
   memset(&v, 0, sizeof(val_link_st));
   Kt_Link ktlinkobj;
 
-  uint32_t max_rep_ct=1;
-  int child_index=0;
-  pfc_bool_t parent_call=true;
-  pfc_bool_t is_read_next=true;
-  OdbcmConnectionHandler *db_conn = NULL;
-  ReadRequest *read_req = NULL;
-  int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_CANDIDATE, max_rep_ct, child_index, parent_call, is_read_next,read_req);
-  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+  uint32_t max_rep_ct  =  1;
+  int child_index = 0;
+  pfc_bool_t parent_call = true;
+  pfc_bool_t is_read_next = true;
+  OdbcmConnectionHandler *db_conn  =  NULL;
+  ReadRequest *read_req  =  NULL;
+  int ret  =  ktlinkobj.ReadBulk(
+    db_conn, &k, UNC_DT_CANDIDATE,
+    max_rep_ct, child_index, parent_call, is_read_next, read_req);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
 TEST_F(LinkTest, LinkReadBulk_Success_30) {
- key_link_t k;
 key_link_t k;
   val_link_st v;
   memset(&k, 0, sizeof(key_link_t));
   memset(&v, 0, sizeof(val_link_st));
   Kt_Link ktlinkobj;
 
-  uint32_t max_rep_ct=0;
-  int child_index=-1;
-  pfc_bool_t parent_call=true;
-  pfc_bool_t is_read_next=true;
-  OdbcmConnectionHandler *db_conn = NULL;
-  ReadRequest *read_req = NULL;
-  int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index, parent_call, is_read_next,read_req);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  uint32_t max_rep_ct  =  0;
+  int child_index = -1;
+  pfc_bool_t parent_call = true;
+  pfc_bool_t is_read_next = true;
+  OdbcmConnectionHandler *db_conn  =  NULL;
+  ReadRequest *read_req  =  NULL;
+  int ret  =  ktlinkobj.ReadBulk(
+    db_conn, &k, UNC_DT_STATE,
+    max_rep_ct, child_index, parent_call, is_read_next, read_req);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(LinkTest, LinkReadBulk_MaxCntSuccess_31) {
@@ -888,14 +938,16 @@ TEST_F(LinkTest, LinkReadBulk_MaxCntSuccess_31) {
   memset(&v, 0, sizeof(val_link_st));
   Kt_Link ktlinkobj;
 
-  uint32_t max_rep_ct=0;
-  int child_index=-1;
-  pfc_bool_t parent_call=true;
-  pfc_bool_t is_read_next=true;
-  OdbcmConnectionHandler *db_conn = NULL;
-  ReadRequest *read_req = NULL;
-  int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index, parent_call, is_read_next,read_req);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  uint32_t max_rep_ct  =  0;
+  int child_index = -1;
+  pfc_bool_t parent_call = true;
+  pfc_bool_t is_read_next = true;
+  OdbcmConnectionHandler *db_conn  =  NULL;
+  ReadRequest *read_req  =  NULL;
+  int ret  =  ktlinkobj.ReadBulk(
+    db_conn, &k, UNC_DT_STATE,
+    max_rep_ct, child_index, parent_call, is_read_next, read_req);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 
@@ -906,15 +958,18 @@ TEST_F(LinkTest, LinkReadBulk_DBFail_32) {
   memset(&v, 0, sizeof(val_link_st));
   Kt_Link ktlinkobj;
 
-  uint32_t max_rep_ct=0;
-  int child_index=-1;
-  pfc_bool_t parent_call=true;
-  pfc_bool_t is_read_next=true;
-  OdbcmConnectionHandler *db_conn = NULL;
-  ReadRequest *read_req = NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
-  int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index, parent_call, is_read_next,read_req);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  uint32_t max_rep_ct  =  0;
+  int child_index = -1;
+  pfc_bool_t parent_call = true;
+  pfc_bool_t is_read_next = true;
+  OdbcmConnectionHandler *db_conn  =  NULL;
+  ReadRequest *read_req  =  NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
+  int ret  =  ktlinkobj.ReadBulk(
+    db_conn, &k, UNC_DT_STATE,
+    max_rep_ct, child_index, parent_call, is_read_next, read_req);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(LinkTest, LinkReadBulk_DBSuccess) {
@@ -924,15 +979,18 @@ TEST_F(LinkTest, LinkReadBulk_DBSuccess) {
   memset(&v, 0, sizeof(val_link_st));
   Kt_Link ktlinkobj;
 
-  uint32_t max_rep_ct=0;
-  int child_index=-1;
-  pfc_bool_t parent_call=true;
-  pfc_bool_t is_read_next=true;
-  OdbcmConnectionHandler *db_conn = NULL;
-  ReadRequest *read_req = NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index, parent_call, is_read_next,read_req);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  uint32_t max_rep_ct  =  0;
+  int child_index = -1;
+  pfc_bool_t parent_call = true;
+  pfc_bool_t is_read_next = true;
+  OdbcmConnectionHandler *db_conn  =  NULL;
+  ReadRequest *read_req  =  NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  int ret  =  ktlinkobj.ReadBulk(
+    db_conn, &k, UNC_DT_STATE, max_rep_ct,
+    child_index, parent_call, is_read_next, read_req);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(LinkTest, LinkReadBulkInternal_Success_33) {
@@ -942,13 +1000,15 @@ TEST_F(LinkTest, LinkReadBulkInternal_Success_33) {
   memset(&v, 0, sizeof(val_link_st));
   Kt_Link ktlinkobj;
 
-  uint32_t max_rep_ct=0;
-  OdbcmConnectionHandler *db_conn = NULL;
+  uint32_t max_rep_ct  =  0;
+  OdbcmConnectionHandler *db_conn  =  NULL;
   vector<val_link_st_t> vec_val_link;
   vector<key_link_t> vec_key_link_t;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
-  int ret = ktlinkobj.ReadBulkInternal(db_conn, &k, UNC_DT_STATE, max_rep_ct, vec_val_link, vec_key_link_t);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
+  int ret  =  ktlinkobj.ReadBulkInternal(
+    db_conn, &k, UNC_DT_STATE, max_rep_ct, vec_val_link, vec_key_link_t);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 TEST_F(LinkTest, LinkReadBulkInternal_Success_34) {
@@ -958,16 +1018,18 @@ TEST_F(LinkTest, LinkReadBulkInternal_Success_34) {
   memset(&v, 0, sizeof(val_link_st));
   Kt_Link ktlinkobj;
 
-  uint32_t max_rep_ct=0;
-  OdbcmConnectionHandler *db_conn = NULL;
+  uint32_t max_rep_ct  =  0;
+  OdbcmConnectionHandler *db_conn  =  NULL;
 
   getKeyForKtLink1(k);
+
   vector<val_link_st_t> vec_val_link;
   vector<key_link_t> vec_key_link_t;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
-  int ret = ktlinkobj.ReadBulkInternal(db_conn, &k, UNC_DT_STATE, max_rep_ct, vec_val_link, vec_key_link_t);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
+  int ret  =  ktlinkobj.ReadBulkInternal(
+    db_conn, &k, UNC_DT_STATE, max_rep_ct, vec_val_link, vec_key_link_t);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 TEST_F(LinkTest, HandleOperStatus_KeyStruct_NULL_Handdle) {
@@ -979,10 +1041,11 @@ TEST_F(LinkTest, HandleOperStatus_KeyStruct_NULL_Handdle) {
 
   getKeyForKtLink1(k);
 
-  OdbcmConnectionHandler *db_conn =NULL;
-//  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktlinkobj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+//   unc::uppl::ODBCManager::stub_setResultcode(
+//    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktlinkobj.HandleOperStatus(db_conn, UNC_DT_STATE, &k, &v);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 
@@ -995,10 +1058,11 @@ TEST_F(LinkTest, GetLinkValidFlag_ConnError) {
 
   getKeyForKtLink1(k);
 
-  OdbcmConnectionHandler *db_conn = NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
-  int ret = ktlinkobj.GetLinkValidFlag(db_conn, &k, v, UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  OdbcmConnectionHandler *db_conn  =  NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
+  int ret  =  ktlinkobj.GetLinkValidFlag(db_conn, &k, v, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 TEST_F(LinkTest, GetLinkValidFlag_DBGetErr) {
@@ -1010,10 +1074,11 @@ TEST_F(LinkTest, GetLinkValidFlag_DBGetErr) {
 
   getKeyForKtLink1(k);
 
-  OdbcmConnectionHandler *db_conn = NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_DATA_ERROR);
-  int ret = ktlinkobj.GetLinkValidFlag(db_conn, &k, v, UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  OdbcmConnectionHandler *db_conn  =  NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_DATA_ERROR);
+  int ret  =  ktlinkobj.GetLinkValidFlag(db_conn, &k, v, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
 TEST_F(LinkTest, GetLinkValidFlag_Success) {
@@ -1025,10 +1090,11 @@ TEST_F(LinkTest, GetLinkValidFlag_Success) {
 
   getKeyForKtLink1(k);
 
-  OdbcmConnectionHandler *db_conn = NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret = ktlinkobj.GetLinkValidFlag(db_conn, &k, v, UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  =  NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret  =  ktlinkobj.GetLinkValidFlag(db_conn, &k, v, UNC_DT_STATE);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(LinkTest, LinkGetOperStatus_DBErr) {
@@ -1037,12 +1103,14 @@ TEST_F(LinkTest, LinkGetOperStatus_DBErr) {
   memset(&k, 0, sizeof(key_link_t));
   memset(&v, 0, sizeof(val_link_st));
   Kt_Link ktlinkobj;
-  uint8_t operstat = 0;
+  uint8_t operstat  =  0;
 
-  OdbcmConnectionHandler *db_conn = NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  int ret = ktlinkobj.GetOperStatus(db_conn,(uint32_t)UNC_DT_STATE,&k,operstat);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  OdbcmConnectionHandler *db_conn  =  NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  int ret  =  ktlinkobj.GetOperStatus(db_conn,
+     (uint32_t)UNC_DT_STATE, &k, operstat);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
 TEST_F(LinkTest, LinkGetOperStatus_success) {
@@ -1051,12 +1119,14 @@ TEST_F(LinkTest, LinkGetOperStatus_success) {
   memset(&k, 0, sizeof(key_link_t));
   memset(&v, 0, sizeof(val_link_st));
   Kt_Link ktlinkobj;
-  uint8_t operstat = 0;
+  uint8_t operstat  =  0;
 
-  OdbcmConnectionHandler *db_conn = NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret = ktlinkobj.GetOperStatus(db_conn,(uint32_t)UNC_DT_STATE,&k,operstat);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  =  NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret  =  ktlinkobj.GetOperStatus(db_conn,
+     (uint32_t)UNC_DT_STATE, &k, operstat);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(LinkTest, LinkReadInternal_Create) {
@@ -1067,10 +1137,12 @@ TEST_F(LinkTest, LinkReadInternal_Create) {
   veckey_link.push_back(&k);
 
   Kt_Link ktlinkobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktlinkobj.ReadInternal(db_conn,veckey_link,vecVal_link,UNC_DT_STATE,UNC_OP_CREATE);
-  //int ret =  ktlinkobj.ReadInternal(db_conn,veckey_link,vecVal_link,UNC_DT_STATE,UNC_OP_READ);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktlinkobj.ReadInternal(
+    db_conn, veckey_link, vecVal_link, UNC_DT_STATE, UNC_OP_CREATE);
+  // int ret = ktlinkobj.ReadInternal(
+  //  db_conn, veckey_link, vecVal_link, UNC_DT_STATE, UNC_OP_READ);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(LinkTest, LinkReadInternal_Read) {
@@ -1081,9 +1153,10 @@ TEST_F(LinkTest, LinkReadInternal_Read) {
   veckey_link.push_back(&k);
 
   Kt_Link ktlinkobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktlinkobj.ReadInternal(db_conn,veckey_link,vecVal_link,UNC_DT_STATE,UNC_OP_READ);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktlinkobj.ReadInternal(
+    db_conn, veckey_link, vecVal_link, UNC_DT_STATE, UNC_OP_READ);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
 TEST_F(LinkTest, LinkReadInternal_Val_empty) {
@@ -1096,9 +1169,10 @@ TEST_F(LinkTest, LinkReadInternal_Val_empty) {
   Kt_Link ktlinkobj;
   vecVal_link.clear();
 
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktlinkobj.ReadInternal(db_conn,veckey_link,vecVal_link,UNC_DT_STATE,UNC_OP_READ);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktlinkobj.ReadInternal(
+    db_conn, veckey_link, vecVal_link, UNC_DT_STATE, UNC_OP_READ);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
 TEST_F(LinkTest, LinkReadInternal_Val_nonempty) {
@@ -1114,9 +1188,10 @@ TEST_F(LinkTest, LinkReadInternal_Val_nonempty) {
   vecVal_link.push_back(&v);
   getValForKtLink1(v);
 
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktlinkobj.ReadInternal(db_conn,veckey_link,veckey_link,UNC_DT_STATE,UNC_OP_READ);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktlinkobj.ReadInternal(
+    db_conn, veckey_link, veckey_link, UNC_DT_STATE, UNC_OP_READ);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
 TEST_F(LinkTest, PerformSemanticValidation_Import) {
@@ -1124,41 +1199,44 @@ TEST_F(LinkTest, PerformSemanticValidation_Import) {
   val_link_st v;
   Kt_Link ktlinkobj;
   vector<string> sw_vect_key_value;
-  getKeyForKtLink1(k,sw_vect_key_value);
+  getKeyForKtLink1(k, sw_vect_key_value);
 
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
 
-  OdbcmConnectionHandler *db_conn =NULL;
-  uint32_t operation = UNC_OP_CREATE;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
-  int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_IMPORT);
-  EXPECT_EQ(UPPL_RC_ERR_PARENT_DOES_NOT_EXIST, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  uint32_t operation  =  UNC_OP_CREATE;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
+  int ret = ktlinkobj.PerformSemanticValidation(
+    db_conn, &k, &v, operation, UNC_DT_IMPORT);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_PARENT_DOES_NOT_EXIST, ret);
 }
 
 TEST_F(LinkTest, ReadLinkValFromDB_Success) {
   key_link_t k;
 
   void *key_struct(NULL);
-  void *void_val_struct = NULL;
+  void *void_val_struct  =  NULL;
+
   Kt_Link ktlinkobj;
   vector<string> sw_vect_key_value;
-  getKeyForKtLink1(k,sw_vect_key_value);
+  getKeyForKtLink1(k, sw_vect_key_value);
   vector<val_link_st_t> vect_val_link_st;
   vector<key_link_t> vect_link_id;
 
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
 
-  uint32_t data_type = (uint32_t)UNC_DT_IMPORT;
-  uint32_t operation_type = (uint32_t) UNC_OP_CREATE;
-  uint32_t max_rep_ct = 1;
-  uint32_t option = 0;
+  uint32_t data_type  =  (uint32_t)UNC_DT_IMPORT;
+  uint32_t operation_type  =  (uint32_t) UNC_OP_CREATE;
+  uint32_t max_rep_ct  =  1;
+  uint32_t option  =  0;
 
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
-  UpplReturnCode read_status = ktlinkobj.ReadLinkValFromDB(db_conn, key_struct,
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
+  UncRespCode read_status  =  ktlinkobj.ReadLinkValFromDB(db_conn, key_struct,
                                                  void_val_struct,
                                                  data_type,
                                                  operation_type,
@@ -1167,13 +1245,13 @@ TEST_F(LinkTest, ReadLinkValFromDB_Success) {
                                                  vect_link_id, option,
                                                  option);
 
-  EXPECT_EQ(UPPL_RC_SUCCESS, read_status);
+  EXPECT_EQ(UNC_RC_SUCCESS, read_status);
 }
 
 TEST_F(LinkTest, ReadLinkValFromDB_Success_Read) {
   key_link_t k;
-  void *void_val_struct = NULL;
+  void *void_val_struct  =  NULL;
+
   Kt_Link ktlinkobj;
   vector<string> sw_vect_key_value;
   getKeyForKtLink1(k, sw_vect_key_value);
@@ -1183,14 +1261,15 @@ TEST_F(LinkTest, ReadLinkValFromDB_Success_Read) {
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
 
-  uint32_t data_type = (uint32_t)UNC_DT_IMPORT;
-  uint32_t operation_type = (uint32_t) UNC_OP_READ;
-  uint32_t max_rep_ct = 1;
-  uint32_t option = 0;
+  uint32_t data_type  =  (uint32_t)UNC_DT_IMPORT;
+  uint32_t operation_type  =  (uint32_t) UNC_OP_READ;
+  uint32_t max_rep_ct  =  1;
+  uint32_t option  =  0;
 
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
-  UpplReturnCode read_status = ktlinkobj.ReadLinkValFromDB(db_conn, &k,
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
+  UncRespCode read_status  =  ktlinkobj.ReadLinkValFromDB(db_conn, &k,
                                                  void_val_struct,
                                                  data_type,
                                                  operation_type,
@@ -1199,30 +1278,31 @@ TEST_F(LinkTest, ReadLinkValFromDB_Success_Read) {
                                                  vect_link_id, option,
                                                  option);
 
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, read_status);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, read_status);
 }
 
 TEST_F(LinkTest, ReadLinkValFromDB_Success_option1_sibling) {
   key_link_t k;
-  void *void_val_struct = NULL;
+  void *void_val_struct  =  NULL;
+
   Kt_Link ktlinkobj;
   vector<string> sw_vect_key_value;
-  getKeyForKtLink1(k,sw_vect_key_value);
+  getKeyForKtLink1(k, sw_vect_key_value);
   vector<val_link_st_t> vect_val_link_st;
   vector<key_link_t> vect_link_id;
 
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
 
-  uint32_t data_type = (uint32_t)UNC_DT_IMPORT;
-  uint32_t operation_type = (uint32_t) UNC_OP_READ_SIBLING_BEGIN;
-  uint32_t max_rep_ct = 1;
-  uint32_t option = 0;
+  uint32_t data_type  =  (uint32_t)UNC_DT_IMPORT;
+  uint32_t operation_type  =  (uint32_t) UNC_OP_READ_SIBLING_BEGIN;
+  uint32_t max_rep_ct  =  1;
+  uint32_t option  =  0;
 
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
-  UpplReturnCode read_status = ktlinkobj.ReadLinkValFromDB(db_conn, &k,
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
+  UncRespCode read_status  =  ktlinkobj.ReadLinkValFromDB(db_conn, &k,
                                                  void_val_struct,
                                                  data_type,
                                                  operation_type,
@@ -1231,7 +1311,7 @@ TEST_F(LinkTest, ReadLinkValFromDB_Success_option1_sibling) {
                                                  vect_link_id, option,
                                                  option);
 
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, read_status);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, read_status);
 }
 
 TEST_F(LinkTest, HandleOperStatus_Success) {
@@ -1243,10 +1323,11 @@ TEST_F(LinkTest, HandleOperStatus_Success) {
 
   getKeyForKtLink1(k);
 
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktlinkobj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktlinkobj.HandleOperStatus(db_conn, UNC_DT_STATE, &k, &v);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 TEST_F(LinkTest, ReadBulk_ADDTOBUFFER_maxrepCT0) {
@@ -1258,17 +1339,19 @@ TEST_F(LinkTest, ReadBulk_ADDTOBUFFER_maxrepCT0) {
 
   getKeyForKtLink1(k);
 
-  uint32_t max_rep_ct = 0;
-  int child_index = 1;
-  pfc_bool_t parent_call=true;
-  pfc_bool_t is_read_next=true;
-  OdbcmConnectionHandler *db_conn = NULL;
+  uint32_t max_rep_ct  =  0;
+  int child_index  =  1;
+  pfc_bool_t parent_call = true;
+  pfc_bool_t is_read_next = true;
+  OdbcmConnectionHandler *db_conn  =  NULL;
   ReadRequest read_req;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct,
-                               child_index, parent_call, is_read_next,
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  int ret  =  ktlinkobj.ReadBulk(
+    db_conn, &k, UNC_DT_STATE, max_rep_ct,
+    child_index, parent_call, is_read_next,
                                &read_req);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(LinkTest, ReadBulk_ADDTOBUFFER_maxrepCT1) {
@@ -1280,17 +1363,19 @@ TEST_F(LinkTest, ReadBulk_ADDTOBUFFER_maxrepCT1) {
 
   getKeyForKtLink1(k);
 
-  uint32_t max_rep_ct = 1;
-  int child_index = 1;
-  pfc_bool_t parent_call=true;
-  pfc_bool_t is_read_next=true;
-  OdbcmConnectionHandler *db_conn = NULL;
+  uint32_t max_rep_ct  =  1;
+  int child_index  =  1;
+  pfc_bool_t parent_call = true;
+  pfc_bool_t is_read_next = true;
+  OdbcmConnectionHandler *db_conn  =  NULL;
   ReadRequest read_req;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct,
-                               child_index, parent_call, is_read_next,
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  int ret  =  ktlinkobj.ReadBulk(
+    db_conn, &k, UNC_DT_STATE, max_rep_ct,
+    child_index, parent_call, is_read_next,
                                &read_req);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(LinkTest, ReadBulk_readreq) {
@@ -1302,17 +1387,19 @@ TEST_F(LinkTest, ReadBulk_readreq) {
 
   getKeyForKtLink1(k);
 
-  uint32_t max_rep_ct = 1;
-  int child_index = 1;
-  pfc_bool_t parent_call=false;
-  pfc_bool_t is_read_next=true;
-  OdbcmConnectionHandler *db_conn = NULL;
+  uint32_t max_rep_ct  =  1;
+  int child_index  =  1;
+  pfc_bool_t parent_call = false;
+  pfc_bool_t is_read_next = true;
+  OdbcmConnectionHandler *db_conn  =  NULL;
   ReadRequest read_req;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct,
-                               child_index, parent_call, is_read_next,
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  int ret  =  ktlinkobj.ReadBulk(
+    db_conn, &k, UNC_DT_STATE, max_rep_ct,
+    child_index, parent_call, is_read_next,
                                &read_req);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(LinkTest, ReadBulk_DBErr) {
@@ -1324,17 +1411,19 @@ TEST_F(LinkTest, ReadBulk_DBErr) {
 
   getKeyForKtLink1(k);
 
-  uint32_t max_rep_ct = 1;
-  int child_index = 1;
-  pfc_bool_t parent_call=false;
-  pfc_bool_t is_read_next=true;
-  OdbcmConnectionHandler *db_conn = NULL;
+  uint32_t max_rep_ct  =  1;
+  int child_index  =  1;
+  pfc_bool_t parent_call = false;
+  pfc_bool_t is_read_next = true;
+  OdbcmConnectionHandler *db_conn  =  NULL;
   ReadRequest read_req;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
-  int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct,
-                               child_index, parent_call, is_read_next,
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
+  int ret  =  ktlinkobj.ReadBulk(
+    db_conn, &k, UNC_DT_STATE, max_rep_ct,
+    child_index, parent_call, is_read_next,
                                &read_req);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 TEST_F(LinkTest, ReadBulkInternal_RecordNotFound) {
@@ -1345,15 +1434,17 @@ TEST_F(LinkTest, ReadBulkInternal_RecordNotFound) {
   Kt_Link ktlinkobj;
 
   getKeyForKtLink1(k);
-  uint32_t max_rep_ct=1;
-  OdbcmConnectionHandler *db_conn = NULL;
+  uint32_t max_rep_ct  =  1;
+  OdbcmConnectionHandler *db_conn  =  NULL;
 
   vector<val_link_st_t> vect_val_link_st;
   vector<key_link_t> vect_link_key;
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
-  int ret = ktlinkobj.ReadBulkInternal(db_conn, &k, UNC_DT_STATE, max_rep_ct, vect_val_link_st, vect_link_key);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
+  int ret  =  ktlinkobj.ReadBulkInternal(
+    db_conn, &k, UNC_DT_STATE, max_rep_ct, vect_val_link_st, vect_link_key);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 TEST_F(LinkTest, LinkPerformRead_DBErr) {
@@ -1364,8 +1455,8 @@ TEST_F(LinkTest, LinkPerformRead_DBErr) {
   Kt_Link ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_READ, UNC_DT_STATE);
-  rh.key_type = UNC_KT_LINK;
-  OdbcmConnectionHandler *db_conn =NULL;
+  rh.key_type  =  UNC_KT_LINK;
+  OdbcmConnectionHandler *db_conn  = NULL;
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -1377,35 +1468,40 @@ TEST_F(LinkTest, LinkPerformRead_DBErr) {
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_LINK);
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
 
-  int ret =  ktlinkobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret = ktlinkobj.PerformRead(
+    db_conn, (uint32_t)0, (uint32_t)0, &k, &v,
+    (uint32_t)UNC_DT_STATE, (uint32_t)UNC_OP_READ, sess,
+    (uint32_t)UNC_OPT1_DETAIL, (uint32_t)UNC_OPT2_NONE, (uint32_t)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 TEST_F(LinkTest, ReadLinkValFromDB_Success_Update) {
   key_link_t k;
 
   void *key_struct(NULL);
-  void *void_val_struct = NULL;
+  void *void_val_struct  =  NULL;
+
   Kt_Link ktlinkobj;
   vector<string> sw_vect_key_value;
-  getKeyForKtLink1(k,sw_vect_key_value);
+  getKeyForKtLink1(k, sw_vect_key_value);
   vector<val_link_st_t> vect_val_link_st;
   vector<key_link_t> vect_link_id;
 
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
 
-  uint32_t data_type = (uint32_t)UNC_DT_IMPORT;
-  uint32_t operation_type = (uint32_t) UNC_OP_UPDATE;
-  uint32_t max_rep_ct = 1;
-  uint32_t option = 0;
+  uint32_t data_type  =  (uint32_t)UNC_DT_IMPORT;
+  uint32_t operation_type  =  (uint32_t) UNC_OP_UPDATE;
+  uint32_t max_rep_ct  =  1;
+  uint32_t option  =  0;
 
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
-  UpplReturnCode read_status = ktlinkobj.ReadLinkValFromDB(db_conn, key_struct,
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
+  UncRespCode read_status  =  ktlinkobj.ReadLinkValFromDB(db_conn, key_struct,
                                                  void_val_struct,
                                                  data_type,
                                                  operation_type,
@@ -1414,7 +1510,7 @@ TEST_F(LinkTest, ReadLinkValFromDB_Success_Update) {
                                                  vect_link_id, option,
                                                  option);
 
-  EXPECT_EQ(UPPL_RC_SUCCESS, read_status);
+  EXPECT_EQ(UNC_RC_SUCCESS, read_status);
 }
 
 #if 0
@@ -1424,29 +1520,30 @@ TEST_F(LinkTest, ReadLinkValFromDB_Success_option1_sibling) {
   val_link_st v;
 
   void *key_struct;
-  void *void_val_struct = NULL;
-  pfc_bool_t bflag =true;
+  void *void_val_struct  =  NULL;
+
+  pfc_bool_t bflag  = true;
 
   Kt_Link ktlinkobj;
   vector<string> sw_vect_key_value;
-  getKeyForKtLink1(k,sw_vect_key_value);
+  getKeyForKtLink1(k, sw_vect_key_value);
   vector<val_link_st_t> vect_val_link_st;
   vector<key_link_t> vect_link_id;
 
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
 
-  uint32_t data_type = (uint32_t)UNC_DT_IMPORT;
-  uint32_t operation_type = (uint32_t) UNC_OP_READ_SIBLING_BEGIN;
-  uint32_t max_rep_ct = 1;
-  uint32_t option = (uint32_t)UNC_OPT1_NORMAL;
-  uint32_t option2 = (uint32_t)UNC_OPT2_MATCH_SWITCH2;
-
-  OdbcmConnectionHandler *db_conn =NULL;
-  uint32_t operation = UNC_OP_CREATE;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
-  UpplReturnCode read_status = ktlinkobj.ReadLinkValFromDB(db_conn, key_struct,
+  uint32_t data_type  =  (uint32_t)UNC_DT_IMPORT;
+  uint32_t operation_type  =  (uint32_t) UNC_OP_READ_SIBLING_BEGIN;
+  uint32_t max_rep_ct  =  1;
+  uint32_t option  =  (uint32_t)UNC_OPT1_NORMAL;
+  uint32_t option2  =  (uint32_t)UNC_OPT2_MATCH_SWITCH2;
+
+  OdbcmConnectionHandler *db_conn  = NULL;
+  uint32_t operation  =  UNC_OP_CREATE;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
+  UncRespCode read_status  =  ktlinkobj.ReadLinkValFromDB(db_conn, key_struct,
                                                  void_val_struct,
                                                  data_type,
                                                  operation_type,
@@ -1455,7 +1552,7 @@ TEST_F(LinkTest, ReadLinkValFromDB_Success_option1_sibling) {
                                                  vect_link_id, option,
                                                  option2);
 
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, read_status);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, read_status);
 }
 
 #endif
index e2c2532128bc7c14d9b14576113e7438b5d3f96f..02a690ec9fbb8f14767e815a4db7647339addf2a 100644 (file)
@@ -1,6 +1,6 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
- *           * All rights reserved.
+ * Copyright (c) 2012-2014 NEC Corporation
+ * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this
@@ -35,7 +35,8 @@
 #include <pfc/iostream.h>
 #include <pfc/ipc_client.h>
 #include <pfc/ipc_pfcd.h>
-#include <pfc/ipc_struct.h>
+#include <itc_read_request.hh>
+#include <itc_kt_logical_member_port.hh>
 #include <odbcm_mgr.hh>
 #include <physical_common_def.hh>
 #include <unc/uppl_common.h>
@@ -51,8 +52,6 @@
 #include <itc_kt_logicalport.hh>
 #include <ipct_util.hh>
 #include "PhysicalLayerStub.hh"
-#include <itc_read_request.hh>
-#include <itc_kt_logical_member_port.hh>
 #include "ut_util.hh"
 
 using namespace pfc;
@@ -62,18 +61,17 @@ using namespace std;
 using namespace unc::uppl::test;
 
 class LogicalMemberPortTest
-  : public UpplTestEnv
-{
+  : public UpplTestEnv {
 };
 
 static void getKeyForKtLogicalMemberPort1(key_logical_member_port_t& k) {
   memset(k.switch_id, '\0', 256);
-  memcpy(k.switch_id, "{0x10,0xbc}", strlen("{0x10,0xbc}"));
+  memcpy(k.switch_id, "{0x10, 0xbc}", strlen("{0x10, 0xbc}"));
   memset(k.physical_port_id, '\0', 32);
   memcpy(k.physical_port_id, "controller1 pord id:1",
          strlen("controller1 pord id:1"));
   memset(k.logical_port_key.port_id, '\0', 320);
-  memcpy(k.logical_port_key.port_id, "{0x00,0xa}", strlen("{0x00,0xa}"));
+  memcpy(k.logical_port_key.port_id, "{0x00, 0xa}", strlen("{0x00, 0xa}"));
   memset(k.logical_port_key.domain_key.domain_name, '\0', 32);
   memcpy(k.logical_port_key.domain_key.domain_name, "controller1 domain_name",
          strlen("controller1 domain_name"));
@@ -84,12 +82,12 @@ static void getKeyForKtLogicalMemberPort1(key_logical_member_port_t& k) {
 
 static void getKeyForKtLogicalMemberPort2(key_logical_member_port_t& k) {
   memset(k.switch_id, '\0', 256);
-  memcpy(k.switch_id, "{0x11,0xac}", strlen("{0x11,0xac}"));
+  memcpy(k.switch_id, "{0x11, 0xac}", strlen("{0x11, 0xac}"));
   memset(k.physical_port_id, '\0', 32);
   memcpy(k.physical_port_id, "controller3 pord id:1",
          strlen("controller3 pord id:1"));
   memset(k.logical_port_key.port_id, '\0', 291);
-  memcpy(k.logical_port_key.port_id, "{0xab,0xc}", strlen("{0xab,0xc}"));
+  memcpy(k.logical_port_key.port_id, "{0xab, 0xc}", strlen("{0xab, 0xc}"));
   memset(k.logical_port_key.domain_key.domain_name, '\0', 32);
   memcpy(k.logical_port_key.domain_key.domain_name, "controller3_domain_name" ,
          strlen("controller3_domain_name"));
@@ -98,7 +96,8 @@ static void getKeyForKtLogicalMemberPort2(key_logical_member_port_t& k) {
          strlen("controller3"));
 }
 
-TEST_F(LogicalMemberPortTest, IsKeyExists_01) {
+TEST_F(LogicalMemberPortTest,
+     IsKeyExists_01) {
   string controller_name = "Controller1";
   string domain_name = "Domain1";
   string port_id = "log_port1";
@@ -112,12 +111,14 @@ TEST_F(LogicalMemberPortTest, IsKeyExists_01) {
   key_values.push_back(physical_port_id);
   Kt_LogicalMemberPort lmp_obj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  int ret =  lmp_obj.IsKeyExists(db_conn,UNC_DT_STATE,key_values);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret =  lmp_obj.IsKeyExists(db_conn, UNC_DT_STATE, key_values);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalMemberPortTest, IsKeyExists_02) {
+TEST_F(LogicalMemberPortTest,
+     IsKeyExists_02) {
   string controller_name = "Controller1";
   string domain_name = "Domain1";
   string port_id = "log_port1";
@@ -131,12 +132,14 @@ TEST_F(LogicalMemberPortTest, IsKeyExists_02) {
   key_values.push_back(physical_port_id);
   Kt_LogicalMemberPort lmp_obj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  lmp_obj.IsKeyExists(db_conn,UNC_DT_STATE,key_values);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
+  int ret =  lmp_obj.IsKeyExists(db_conn, UNC_DT_STATE, key_values);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-TEST_F(LogicalMemberPortTest, IsKeyExists_03) {
+TEST_F(LogicalMemberPortTest,
+     IsKeyExists_03) {
   string controller_name = "Controller1";
   string domain_name = "Domain1";
   string port_id = "log_port1";
@@ -150,23 +153,27 @@ TEST_F(LogicalMemberPortTest, IsKeyExists_03) {
   key_values.push_back(physical_port_id);
   Kt_LogicalMemberPort lmp_obj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_NOT_EXISTS);
-  int ret =  lmp_obj.IsKeyExists(db_conn,UNC_DT_STATE,key_values);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_NOT_EXISTS);
+  int ret =  lmp_obj.IsKeyExists(db_conn, UNC_DT_STATE, key_values);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-TEST_F(LogicalMemberPortTest, IsKeyExists_04) {
+TEST_F(LogicalMemberPortTest,
+     IsKeyExists_04) {
   vector<string> key_values;
   key_values.clear();
   Kt_LogicalMemberPort lmp_obj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_NOT_EXISTS);
-  int ret =  lmp_obj.IsKeyExists(db_conn,UNC_DT_STATE,key_values);
-  EXPECT_EQ(UPPL_RC_ERR_BAD_REQUEST, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_NOT_EXISTS);
+  int ret =  lmp_obj.IsKeyExists(db_conn, UNC_DT_STATE, key_values);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_BAD_REQUEST, ret);
 }
 
-// PerformSyntaxValidation with value structure
-TEST_F(LogicalMemberPortTest, PerformSyntaxValidation_01) {
+//  PerformSyntaxValidation with value structure
+TEST_F(LogicalMemberPortTest,
+     PerformSyntaxValidation_01) {
   key_logical_member_port k;
   getKeyForKtLogicalMemberPort2(k);
   key_logical_member_port val;
@@ -174,24 +181,28 @@ TEST_F(LogicalMemberPortTest, PerformSyntaxValidation_01) {
   uint32_t operation = UNC_OP_READ;
   Kt_LogicalMemberPort lmp_obj;
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  lmp_obj.PerformSyntaxValidation(db_conn,&k,&val,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  int ret =  lmp_obj.PerformSyntaxValidation(
+    db_conn, &k, &val, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-// PerformSyntaxValidation success
-TEST_F(LogicalMemberPortTest, PerformSyntaxValidation_02) {
+//  PerformSyntaxValidation success
+TEST_F(LogicalMemberPortTest,
+     PerformSyntaxValidation_02) {
   key_logical_member_port k;
   getKeyForKtLogicalMemberPort2(k);
   void* val = NULL;
   uint32_t operation = UNC_OP_READ;
   Kt_LogicalMemberPort lmp_obj;
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  lmp_obj.PerformSyntaxValidation(db_conn,&k,val,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  lmp_obj.PerformSyntaxValidation(
+    db_conn, &k, val, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// PerformSyntaxValidation without switch id
-TEST_F(LogicalMemberPortTest, PerformSyntaxValidation_03) {
+//  PerformSyntaxValidation without switch id
+TEST_F(LogicalMemberPortTest,
+     PerformSyntaxValidation_03) {
   key_logical_member_port k;
   memset(k.switch_id, '\0', 256);
   memset(k.physical_port_id, '\0', 32);
@@ -208,11 +219,13 @@ TEST_F(LogicalMemberPortTest, PerformSyntaxValidation_03) {
   uint32_t operation = UNC_OP_READ;
   Kt_LogicalMemberPort lmp_obj;
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  lmp_obj.PerformSyntaxValidation(db_conn,&k,val,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  int ret =  lmp_obj.PerformSyntaxValidation(
+    db_conn, &k, val, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
-// PerformSyntaxValidation without physical port id
-TEST_F(LogicalMemberPortTest, PerformSyntaxValidation_04) {
+//  PerformSyntaxValidation without physical port id
+TEST_F(LogicalMemberPortTest,
+     PerformSyntaxValidation_04) {
   key_logical_member_port k;
   memset(k.switch_id, '\0', 256);
   memcpy(k.switch_id, "switch1", strlen("switch1"));
@@ -229,11 +242,13 @@ TEST_F(LogicalMemberPortTest, PerformSyntaxValidation_04) {
   uint32_t operation = UNC_OP_READ;
   Kt_LogicalMemberPort lmp_obj;
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  lmp_obj.PerformSyntaxValidation(db_conn,&k,val,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  int ret =  lmp_obj.PerformSyntaxValidation(
+    db_conn, &k, val, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
-// PerformSyntaxValidation without logical_port_id
-TEST_F(LogicalMemberPortTest, PerformSyntaxValidation_05) {
+//  PerformSyntaxValidation without logical_port_id
+TEST_F(LogicalMemberPortTest,
+     PerformSyntaxValidation_05) {
   key_logical_member_port k;
   memset(k.switch_id, '\0', 256);
   memcpy(k.switch_id, "switch1", strlen("switch1"));
@@ -250,11 +265,13 @@ TEST_F(LogicalMemberPortTest, PerformSyntaxValidation_05) {
   uint32_t operation = UNC_OP_READ;
   Kt_LogicalMemberPort lmp_obj;
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  lmp_obj.PerformSyntaxValidation(db_conn,&k,val,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  int ret =  lmp_obj.PerformSyntaxValidation(
+    db_conn, &k, val, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
-// PerformSyntaxValidation without domain name 
-TEST_F(LogicalMemberPortTest, PerformSyntaxValidation_06) {
+//  PerformSyntaxValidation without domain name
+TEST_F(LogicalMemberPortTest,
+     PerformSyntaxValidation_06) {
   key_logical_member_port k;
   memset(k.switch_id, '\0', 256);
   memcpy(k.switch_id, "switch1", strlen("switch1"));
@@ -270,11 +287,13 @@ TEST_F(LogicalMemberPortTest, PerformSyntaxValidation_06) {
   uint32_t operation = UNC_OP_READ;
   Kt_LogicalMemberPort lmp_obj;
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  lmp_obj.PerformSyntaxValidation(db_conn,&k,val,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  int ret =  lmp_obj.PerformSyntaxValidation(
+    db_conn, &k, val, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
-// PerformSyntaxValidation without controller name
-TEST_F(LogicalMemberPortTest, PerformSyntaxValidation_07) {
+//  PerformSyntaxValidation without controller name
+TEST_F(LogicalMemberPortTest,
+     PerformSyntaxValidation_07) {
   key_logical_member_port k;
   memset(k.switch_id, '\0', 256);
   memcpy(k.switch_id, "switch1", strlen("switch1"));
@@ -290,68 +309,80 @@ TEST_F(LogicalMemberPortTest, PerformSyntaxValidation_07) {
   uint32_t operation = UNC_OP_READ;
   Kt_LogicalMemberPort lmp_obj;
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  lmp_obj.PerformSyntaxValidation(db_conn,&k,val,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  int ret =  lmp_obj.PerformSyntaxValidation(
+    db_conn, &k, val, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-// DeleteKeyInstance success
-TEST_F(LogicalMemberPortTest, DeleteKeyInstance_01) {
+//  DeleteKeyInstance success
+TEST_F(LogicalMemberPortTest,
+     DeleteKeyInstance_01) {
   key_logical_member_port k;
   uint32_t key_type = 1;
   getKeyForKtLogicalMemberPort1(k);
   Kt_LogicalMemberPort lmp_obj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
-  int ret =  lmp_obj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,key_type);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
+  int ret =  lmp_obj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, key_type);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalMemberPortTest, DeleteKeyInstance_02) {
+TEST_F(LogicalMemberPortTest,
+     DeleteKeyInstance_02) {
   key_logical_member_port k;
   uint32_t key_type = 1;
   getKeyForKtLogicalMemberPort1(k);
   Kt_LogicalMemberPort lmp_obj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  lmp_obj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,key_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_CONNECTION_ERROR);
+  int ret =  lmp_obj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-TEST_F(LogicalMemberPortTest, DeleteKeyInstance_03) {
+TEST_F(LogicalMemberPortTest,
+     DeleteKeyInstance_03) {
   key_logical_member_port k;
   uint32_t key_type = 1;
   getKeyForKtLogicalMemberPort1(k);
   Kt_LogicalMemberPort lmp_obj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
-  int ret =  lmp_obj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,key_type);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
+  int ret =  lmp_obj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-TEST_F(LogicalMemberPortTest, DeleteKeyInstance_04) {
+TEST_F(LogicalMemberPortTest,
+     DeleteKeyInstance_04) {
   key_logical_member_port k;
   uint32_t key_type = 1;
   getKeyForKtLogicalMemberPort1(k);
   Kt_LogicalMemberPort lmp_obj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_FAILED);
-  int ret =  lmp_obj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,key_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_DELETE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_FAILED);
+  int ret =  lmp_obj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_DELETE, ret);
 }
 
-TEST_F(LogicalMemberPortTest, DeleteKeyInstance_05) {
+TEST_F(LogicalMemberPortTest,
+     DeleteKeyInstance_05) {
   key_logical_member_port k;
   uint32_t key_type = 1;
   getKeyForKtLogicalMemberPort1(k);
   Kt_LogicalMemberPort lmp_obj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_FAILED);
-  int ret =  lmp_obj.DeleteKeyInstance(db_conn,&k,UNC_DT_CANDIDATE,key_type);
-  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_FAILED);
+  int ret =  lmp_obj.DeleteKeyInstance(db_conn, &k, UNC_DT_CANDIDATE, key_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
-// DeleteKeyInstance without switch id
-TEST_F(LogicalMemberPortTest, DeleteKeyInstance_06) {
+//  DeleteKeyInstance without switch id
+TEST_F(LogicalMemberPortTest,
+     DeleteKeyInstance_06) {
   key_logical_member_port k;
   uint32_t key_type = 1;
   memset(k.switch_id, '\0', 256);
@@ -367,12 +398,14 @@ TEST_F(LogicalMemberPortTest, DeleteKeyInstance_06) {
          strlen("controller4"));
   Kt_LogicalMemberPort lmp_obj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
-  int ret =  lmp_obj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,key_type);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
+  int ret =  lmp_obj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, key_type);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
-// DeleteKeyInstance without physical port id
-TEST_F(LogicalMemberPortTest, DeleteKeyInstance_07) {
+//  DeleteKeyInstance without physical port id
+TEST_F(LogicalMemberPortTest,
+     DeleteKeyInstance_07) {
   key_logical_member_port k;
   uint32_t key_type = 1;
   memset(k.switch_id, '\0', 256);
@@ -388,12 +421,14 @@ TEST_F(LogicalMemberPortTest, DeleteKeyInstance_07) {
          strlen("controller4"));
   Kt_LogicalMemberPort lmp_obj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
-  int ret =  lmp_obj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,key_type);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
+  int ret =  lmp_obj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, key_type);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
-// DeleteKeyInstance without logical_port_id
-TEST_F(LogicalMemberPortTest, DeleteKeyInstance_08) {
+//  DeleteKeyInstance without logical_port_id
+TEST_F(LogicalMemberPortTest,
+     DeleteKeyInstance_08) {
   key_logical_member_port k;
   uint32_t key_type = 1;
   memset(k.switch_id, '\0', 256);
@@ -409,12 +444,14 @@ TEST_F(LogicalMemberPortTest, DeleteKeyInstance_08) {
          strlen("controller4"));
   Kt_LogicalMemberPort lmp_obj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
-  int ret =  lmp_obj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,key_type);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
+  int ret =  lmp_obj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, key_type);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
-// DeleteKeyInstance without domain name 
-TEST_F(LogicalMemberPortTest, DeleteKeyInstance_09) {
+//  DeleteKeyInstance without domain name
+TEST_F(LogicalMemberPortTest,
+     DeleteKeyInstance_09) {
   key_logical_member_port k;
   uint32_t key_type = 1;
   memset(k.switch_id, '\0', 256);
@@ -429,12 +466,14 @@ TEST_F(LogicalMemberPortTest, DeleteKeyInstance_09) {
          strlen("controller4"));
   Kt_LogicalMemberPort lmp_obj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
-  int ret =  lmp_obj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,key_type);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
+  int ret =  lmp_obj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, key_type);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
-// DeleteKeyInstance without controller name
-TEST_F(LogicalMemberPortTest, DeleteKeyInstance_10) {
+//  DeleteKeyInstance without controller name
+TEST_F(LogicalMemberPortTest,
+     DeleteKeyInstance_10) {
   key_logical_member_port k;
   uint32_t key_type = 1;
   memset(k.switch_id, '\0', 256);
@@ -449,86 +488,106 @@ TEST_F(LogicalMemberPortTest, DeleteKeyInstance_10) {
   memset(k.logical_port_key.domain_key.ctr_key.controller_name, '\0', 32);
   Kt_LogicalMemberPort lmp_obj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
-  int ret =  lmp_obj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,key_type);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
+  int ret =  lmp_obj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, key_type);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-// ReadBulkInternal success
-TEST_F(LogicalMemberPortTest, ReadBulkInternal_01) {
+//  ReadBulkInternal success
+TEST_F(LogicalMemberPortTest,
+     ReadBulkInternal_01) {
   key_logical_member_port k;
   uint32_t max_rep_ct = 2;
   vector<key_logical_member_port_t> vect_logical_mem_port;
   getKeyForKtLogicalMemberPort1(k);
   Kt_LogicalMemberPort lmp_obj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret =  lmp_obj.ReadBulkInternal(db_conn,&k,UNC_DT_STATE,max_rep_ct,vect_logical_mem_port);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  int ret =  lmp_obj.ReadBulkInternal(
+    db_conn, &k, UNC_DT_STATE, max_rep_ct, vect_logical_mem_port);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalMemberPortTest, ReadBulkInternal_02) {
+TEST_F(LogicalMemberPortTest,
+     ReadBulkInternal_02) {
   key_logical_member_port k;
   uint32_t max_rep_ct = 2;
   vector<key_logical_member_port_t> vect_logical_mem_port;
   getKeyForKtLogicalMemberPort1(k);
   Kt_LogicalMemberPort lmp_obj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret =  lmp_obj.ReadBulkInternal(db_conn,&k,UNC_DT_STATE,max_rep_ct,vect_logical_mem_port);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  int ret =  lmp_obj.ReadBulkInternal(
+    db_conn, &k, UNC_DT_STATE, max_rep_ct, vect_logical_mem_port);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalMemberPortTest, ReadBulkInternal_03) {
+TEST_F(LogicalMemberPortTest,
+     ReadBulkInternal_03) {
   key_logical_member_port k;
   uint32_t max_rep_ct = 2;
   vector<key_logical_member_port_t> vect_logical_mem_port;
   getKeyForKtLogicalMemberPort1(k);
   Kt_LogicalMemberPort lmp_obj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
-  int ret =  lmp_obj.ReadBulkInternal(db_conn,&k,UNC_DT_STATE,max_rep_ct,vect_logical_mem_port);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
+  int ret =  lmp_obj.ReadBulkInternal(
+    db_conn, &k, UNC_DT_STATE, max_rep_ct, vect_logical_mem_port);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-TEST_F(LogicalMemberPortTest, ReadBulkInternal_04) {
+TEST_F(LogicalMemberPortTest,
+     ReadBulkInternal_04) {
   key_logical_member_port k;
   uint32_t max_rep_ct = 2;
   vector<key_logical_member_port_t> vect_logical_mem_port;
   getKeyForKtLogicalMemberPort1(k);
   Kt_LogicalMemberPort lmp_obj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  lmp_obj.ReadBulkInternal(db_conn,&k,UNC_DT_STATE,max_rep_ct,vect_logical_mem_port);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
+  int ret =  lmp_obj.ReadBulkInternal(
+    db_conn, &k, UNC_DT_STATE, max_rep_ct, vect_logical_mem_port);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-TEST_F(LogicalMemberPortTest, ReadBulkInternal_05) {
+TEST_F(LogicalMemberPortTest,
+     ReadBulkInternal_05) {
   key_logical_member_port k;
   uint32_t max_rep_ct = 0;
   vector<key_logical_member_port_t> vect_logical_mem_port;
   getKeyForKtLogicalMemberPort1(k);
   Kt_LogicalMemberPort lmp_obj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
-  int ret =  lmp_obj.ReadBulkInternal(db_conn,&k,UNC_DT_STATE,max_rep_ct,vect_logical_mem_port);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
+  int ret =  lmp_obj.ReadBulkInternal(
+    db_conn, &k, UNC_DT_STATE, max_rep_ct, vect_logical_mem_port);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalMemberPortTest, ReadBulkInternal_06) {
+TEST_F(LogicalMemberPortTest,
+     ReadBulkInternal_06) {
   key_logical_member_port k;
   uint32_t max_rep_ct = 2;
   vector<key_logical_member_port_t> vect_logical_mem_port;
   getKeyForKtLogicalMemberPort1(k);
   Kt_LogicalMemberPort lmp_obj;
   OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
-  int ret =  lmp_obj.ReadBulkInternal(db_conn,&k,UNC_DT_STATE,max_rep_ct,vect_logical_mem_port);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
+  int ret =  lmp_obj.ReadBulkInternal(
+    db_conn, &k, UNC_DT_STATE, max_rep_ct, vect_logical_mem_port);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
 /*ReadInternal function when operation is lessthan READ */
-TEST_F(LogicalMemberPortTest, ReadInternal_No_Read_01) {
+TEST_F(LogicalMemberPortTest,
+     ReadInternal_No_Read_01) {
   key_logical_member_port_t k;
   memset(&k, 0, sizeof(k));
 
@@ -537,12 +596,14 @@ TEST_F(LogicalMemberPortTest, ReadInternal_No_Read_01) {
   vectkey_logicalmemberport.push_back(&k);
   Kt_LogicalMemberPort ktlmportobj;
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktlmportobj.ReadInternal(db_conn,vectkey_logicalmemberport,vectVal_logicalmemberport,UNC_DT_STATE,UNC_OP_CREATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  ktlmportobj.ReadInternal(db_conn, vectkey_logicalmemberport,
+    vectVal_logicalmemberport, UNC_DT_STATE, UNC_OP_CREATE);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /*ReadInternal function where value struct is NULL */
-TEST_F(LogicalMemberPortTest, ReadInternal_VAlStructNull_02) {
+TEST_F(LogicalMemberPortTest,
+     ReadInternal_VAlStructNull_02) {
   key_logical_member_port_t k;
   memset(&k, 0, sizeof(k));
 
@@ -551,12 +612,14 @@ TEST_F(LogicalMemberPortTest, ReadInternal_VAlStructNull_02) {
   vectkey_logicalmemberport.push_back(&k);
   Kt_LogicalMemberPort ktlmportobj;
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktlmportobj.ReadInternal(db_conn,vectkey_logicalmemberport,vectVal_logicalmemberport,UNC_DT_STATE,UNC_OP_READ);
-  EXPECT_EQ(ODBCM_RC_MORE_ROWS_FOUND, ret);
+  int ret =  ktlmportobj.ReadInternal(db_conn, vectkey_logicalmemberport,
+    vectVal_logicalmemberport, UNC_DT_STATE, UNC_OP_READ);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
 /*PerformRead function which has invalid option1 */
-TEST_F(LogicalMemberPortTest, PerformRead_01) {
+TEST_F(LogicalMemberPortTest,
+     PerformRead_01) {
   key_logical_member_port_t k;
   memset(&k, 0, sizeof(key_logical_member_port_t));
   Kt_LogicalMemberPort ktlmportobj;
@@ -572,12 +635,17 @@ TEST_F(LogicalMemberPortTest, PerformRead_01) {
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_MEMBER_PORT);
 
-  int ret =  ktlmportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,NULL,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =  ktlmportobj.PerformRead(
+    db_conn, (uint32_t)0, (uint32_t)0, &k, NULL,
+    (uint32_t)UNC_DT_STATE, (uint32_t)UNC_OP_READ, sess,
+    (uint32_t)UNC_OPT1_DETAIL,
+    (uint32_t)UNC_OPT2_NONE, (uint32_t)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 /*PerformRead function which has invalid option1 */
-TEST_F(LogicalMemberPortTest, PerformRead_02) {
+TEST_F(LogicalMemberPortTest,
+     PerformRead_02) {
   key_logical_member_port_t k;
   memset(&k, 0, sizeof(key_logical_member_port_t));
   Kt_LogicalMemberPort ktlmportobj;
@@ -590,15 +658,20 @@ TEST_F(LogicalMemberPortTest, PerformRead_02) {
   sess.stub_setAddOutput((uint32_t)UNC_OPT1_DETAIL);
   sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);
   sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
-  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_INVALID_OPTION1);
+  sess.stub_setAddOutput((uint32_t)UNC_UPPL_RC_ERR_INVALID_OPTION1);
   sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_MEMBER_PORT);
 
-  int ret =  ktlmportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,NULL,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  ktlmportobj.PerformRead(
+    db_conn, (uint32_t)0, (uint32_t)0, &k, NULL,
+    (uint32_t)UNC_DT_STATE, (uint32_t)UNC_OP_READ, sess,
+    (uint32_t)UNC_OPT1_DETAIL,
+    (uint32_t)UNC_OPT2_NONE, (uint32_t)1);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /*PerformRead function which has invalid datatype */
-TEST_F(LogicalMemberPortTest, PerformRead_03) {
+TEST_F(LogicalMemberPortTest,
+     PerformRead_03) {
   key_logical_member_port_t k;
   memset(&k, 0, sizeof(key_logical_member_port_t));
   Kt_LogicalMemberPort ktlmportobj;
@@ -614,12 +687,16 @@ TEST_F(LogicalMemberPortTest, PerformRead_03) {
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_MEMBER_PORT);
 
-  int ret =  ktlmportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,NULL,(uint32_t)UNC_DT_CANDIDATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =  ktlmportobj.PerformRead(
+    db_conn, (uint32_t)0, (uint32_t)0, &k, NULL, (uint32_t)UNC_DT_CANDIDATE,
+    (uint32_t)UNC_OP_READ, sess, (uint32_t)UNC_OPT1_NORMAL,
+    (uint32_t)UNC_OPT2_NONE, (uint32_t)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 /*PerformRead function which has valid option2 */
-TEST_F(LogicalMemberPortTest, PerformRead_04) {
+TEST_F(LogicalMemberPortTest,
+     PerformRead_04) {
   key_logical_member_port_t k;
   memset(&k, 0, sizeof(key_logical_member_port_t));
   Kt_LogicalMemberPort ktlmportobj;
@@ -635,12 +712,16 @@ TEST_F(LogicalMemberPortTest, PerformRead_04) {
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_MEMBER_PORT);
 
-  int ret =  ktlmportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,NULL,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =  ktlmportobj.PerformRead(
+    db_conn, (uint32_t)0, (uint32_t)0, &k, NULL, (uint32_t)UNC_DT_STATE,
+    (uint32_t)UNC_OP_READ, sess, (uint32_t)UNC_OPT1_NORMAL,
+    (uint32_t)UNC_OPT2_NONE, (uint32_t)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 /*PerformRead function which has invalid datatype */
-TEST_F(LogicalMemberPortTest, PerformRead_05) {
+TEST_F(LogicalMemberPortTest,
+     PerformRead_05) {
   key_logical_member_port_t k;
   memset(&k, 0, sizeof(key_logical_member_port_t));
   Kt_LogicalMemberPort ktlmportobj;
@@ -653,15 +734,19 @@ TEST_F(LogicalMemberPortTest, PerformRead_05) {
   sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);
   sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);
   sess.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
-  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
+  sess.stub_setAddOutput((uint32_t)UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
   sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_MEMBER_PORT);
 
-  int ret =  ktlmportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,NULL,(uint32_t)UNC_DT_CANDIDATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  ktlmportobj.PerformRead(
+    db_conn, (uint32_t)0, (uint32_t)0, &k, NULL, (uint32_t)UNC_DT_CANDIDATE,
+    (uint32_t)UNC_OP_READ, sess, (uint32_t)UNC_OPT1_NORMAL,
+    (uint32_t)UNC_OPT2_NONE, (uint32_t)1);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /*PerformRead function which has invalid option2 */
-TEST_F(LogicalMemberPortTest, PerformRead_06) {
+TEST_F(LogicalMemberPortTest,
+     PerformRead_06) {
   key_logical_member_port_t k;
   memset(&k, 0, sizeof(key_logical_member_port_t));
   Kt_LogicalMemberPort ktlmportobj;
@@ -677,12 +762,16 @@ TEST_F(LogicalMemberPortTest, PerformRead_06) {
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_MEMBER_PORT);
 
-  int ret =  ktlmportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,NULL,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_MAC_ENTRY,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =  ktlmportobj.PerformRead(
+    db_conn, (uint32_t)0, (uint32_t)0, &k, NULL,
+    (uint32_t)UNC_DT_STATE, (uint32_t)UNC_OP_READ, sess,
+    (uint32_t)UNC_OPT1_NORMAL, (uint32_t)UNC_OPT2_MAC_ENTRY, (uint32_t)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 /*PerformRead function which has invalid option2 */
-TEST_F(LogicalMemberPortTest, PerformRead_07) {
+TEST_F(LogicalMemberPortTest,
+     PerformRead_07) {
   key_logical_member_port_t k;
   memset(&k, 0, sizeof(key_logical_member_port_t));
   Kt_LogicalMemberPort ktlmportobj;
@@ -695,15 +784,19 @@ TEST_F(LogicalMemberPortTest, PerformRead_07) {
   sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);
   sess.stub_setAddOutput((uint32_t)UNC_OPT2_MAC_ENTRY);
   sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
-  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_INVALID_OPTION2);
+  sess.stub_setAddOutput((uint32_t)UNC_UPPL_RC_ERR_INVALID_OPTION2);
   sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_MEMBER_PORT);
 
-  int ret =  ktlmportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,NULL,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_MAC_ENTRY,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  ktlmportobj.PerformRead(
+    db_conn, (uint32_t)0, (uint32_t)0, &k, NULL,
+    (uint32_t)UNC_DT_STATE, (uint32_t)UNC_OP_READ, sess,
+    (uint32_t)UNC_OPT1_NORMAL, (uint32_t)UNC_OPT2_MAC_ENTRY, (uint32_t)1);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /*PerformRead function with valid option1 and option2 */
-TEST_F(LogicalMemberPortTest, PerformRead_08) {
+TEST_F(LogicalMemberPortTest,
+     PerformRead_08) {
   key_logical_member_port_t k;
   memset(&k, 0, sizeof(key_logical_member_port_t));
   Kt_LogicalMemberPort ktlmportobj;
@@ -716,16 +809,21 @@ TEST_F(LogicalMemberPortTest, PerformRead_08) {
   sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);
   sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);
   sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
-  sess.stub_setAddOutput((uint32_t)UPPL_RC_SUCCESS);
+  sess.stub_setAddOutput((uint32_t)UNC_RC_SUCCESS);
   sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_MEMBER_PORT);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-
-  int ret =  ktlmportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,NULL,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+
+  int ret =  ktlmportobj.PerformRead(
+    db_conn, (uint32_t)0, (uint32_t)0, &k, NULL, (uint32_t)UNC_DT_STATE,
+    (uint32_t)UNC_OP_READ, sess, (uint32_t)UNC_OPT1_NORMAL,
+    (uint32_t)UNC_OPT2_NONE, (uint32_t)1);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /*PerformRead function with valid option1 and option2 */
-TEST_F(LogicalMemberPortTest, PerformRead_09) {
+TEST_F(LogicalMemberPortTest,
+     PerformRead_09) {
   key_logical_member_port_t k;
   memset(&k, 0, sizeof(key_logical_member_port_t));
   Kt_LogicalMemberPort ktlmportobj;
@@ -738,277 +836,332 @@ TEST_F(LogicalMemberPortTest, PerformRead_09) {
   sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);
   sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);
   sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
-  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_DB_GET);
+  sess.stub_setAddOutput((uint32_t)UNC_UPPL_RC_ERR_DB_GET);
   sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_MEMBER_PORT);
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  int ret =  ktlmportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,NULL,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  int ret =  ktlmportobj.PerformRead(
+    db_conn, (uint32_t)0, (uint32_t)0, &k, NULL, (uint32_t)UNC_DT_STATE,
+    (uint32_t)UNC_OP_READ, sess, (uint32_t)UNC_OPT1_NORMAL,
+    (uint32_t)UNC_OPT2_NONE, (uint32_t)1);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//DB Access failure for UPDATE opr
+// DB Access failure for UPDATE opr
 
-TEST_F(LogicalMemberPortTest, PerformSemanticValid_UPD_DBFail) {
-  key_logical_member_port_t k ;
-  memset(&k,0,sizeof(key_logical_member_port_t));
+TEST_F(LogicalMemberPortTest,
+     PerformSemanticValid_UPD_DBFail) {
+  key_logical_member_port_t k;
+  memset(&k, 0, sizeof(key_logical_member_port_t));
   Kt_LogicalMemberPort KtObj;
   getKeyForKtLogicalMemberPort1(k);
   OdbcmConnectionHandler *db_conn = NULL;
   void *v = NULL;
   uint32_t operation = UNC_OP_UPDATE;
   uint32_t data_type = UNC_DT_STATE;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
-  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
+  int ret = KtObj.PerformSemanticValidation(
+    db_conn, &k, v, operation, data_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-//DB Access failure for DEL opr  
-TEST_F(LogicalMemberPortTest, PerformSemanticValid_DEL_DBFail) {
-  key_logical_member_port_t k ;
-  memset(&k,0,sizeof(key_logical_member_port_t));
+// DB Access failure for DEL opr
+TEST_F(LogicalMemberPortTest,
+     PerformSemanticValid_DEL_DBFail) {
+  key_logical_member_port_t k;
+  memset(&k, 0, sizeof(key_logical_member_port_t));
   Kt_LogicalMemberPort KtObj;
   getKeyForKtLogicalMemberPort1(k);
   OdbcmConnectionHandler *db_conn = NULL;
   void *v = NULL;
   uint32_t operation = UNC_OP_DELETE;
   uint32_t data_type = UNC_DT_STATE;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
-  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
-}  
-
-//DB Access failure for READ opr
-TEST_F(LogicalMemberPortTest, PerformSemanticValid_READ_DBFail) {
-  key_logical_member_port_t k ;
-  memset(&k,0,sizeof(key_logical_member_port_t));
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
+  int ret = KtObj.PerformSemanticValidation(
+    db_conn, &k, v, operation, data_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
+}
+
+// DB Access failure for READ opr
+TEST_F(LogicalMemberPortTest,
+     PerformSemanticValid_READ_DBFail) {
+  key_logical_member_port_t k;
+  memset(&k, 0, sizeof(key_logical_member_port_t));
   Kt_LogicalMemberPort KtObj;
   getKeyForKtLogicalMemberPort1(k);
   OdbcmConnectionHandler *db_conn = NULL;
   void *v = NULL;
   uint32_t operation = UNC_OP_READ;
   uint32_t data_type = UNC_DT_STATE;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
-  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
-}  
-
-//key does not exist.
-//update operation not allowed
-TEST_F(LogicalMemberPortTest, PerformSemanticValid_KeyNotExists_For_UPD) {
-  key_logical_member_port_t k ;
-  memset(&k,0,sizeof(key_logical_member_port_t));
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
+  int ret = KtObj.PerformSemanticValidation(
+    db_conn, &k, v, operation, data_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
+}
+
+// key does not exist.
+// update operation not allowed
+TEST_F(LogicalMemberPortTest,
+     PerformSemanticValid_KeyNotExists_For_UPD) {
+  key_logical_member_port_t k;
+  memset(&k, 0, sizeof(key_logical_member_port_t));
   Kt_LogicalMemberPort KtObj;
   getKeyForKtLogicalMemberPort1(k);
   OdbcmConnectionHandler *db_conn = NULL;
   void *v = NULL;
   uint32_t operation = UNC_OP_UPDATE;
   uint32_t data_type = UNC_DT_STATE;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_FAILED);
-  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
-}  
-
-//key does not exist.
-//Delete operation not allowed
-TEST_F(LogicalMemberPortTest, PerformSemanticValid_KeyNotExists_For_DEL) {
-  key_logical_member_port_t k ;
-  memset(&k,0,sizeof(key_logical_member_port_t));
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_FAILED);
+  int ret = KtObj.PerformSemanticValidation(
+    db_conn, &k, v, operation, data_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+}
+
+// key does not exist.
+// Delete operation not allowed
+TEST_F(LogicalMemberPortTest,
+     PerformSemanticValid_KeyNotExists_For_DEL) {
+  key_logical_member_port_t k;
+  memset(&k, 0, sizeof(key_logical_member_port_t));
   Kt_LogicalMemberPort KtObj;
   getKeyForKtLogicalMemberPort1(k);
   OdbcmConnectionHandler *db_conn = NULL;
   void *v = NULL;
   uint32_t operation = UNC_OP_DELETE;
   uint32_t data_type = UNC_DT_STATE;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_FAILED);
-  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
-}  
-
-//key does not exist.
-//Read operation not allowed
-TEST_F(LogicalMemberPortTest, PerformSemanticValid_KeyNotExists_For_READ) {
-  key_logical_member_port_t k ;
-  memset(&k,0,sizeof(key_logical_member_port_t));
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_FAILED);
+  int ret = KtObj.PerformSemanticValidation(
+    db_conn, &k, v, operation, data_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+}
+
+// key does not exist.
+// Read operation not allowed
+TEST_F(LogicalMemberPortTest,
+     PerformSemanticValid_KeyNotExists_For_READ) {
+  key_logical_member_port_t k;
+  memset(&k, 0, sizeof(key_logical_member_port_t));
   Kt_LogicalMemberPort KtObj;
   getKeyForKtLogicalMemberPort1(k);
   OdbcmConnectionHandler *db_conn = NULL;
   void *v = NULL;
   uint32_t operation = UNC_OP_READ;
   uint32_t data_type = UNC_DT_STATE;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_FAILED);
-  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
-}
-  
-//key instance exist.
-//update operation allowed
-TEST_F(LogicalMemberPortTest, PerformSemanticValid_KeyExists_UPD_Allow) {
-  key_logical_member_port_t k ;
-  memset(&k,0,sizeof(key_logical_member_port_t));
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_FAILED);
+  int ret = KtObj.PerformSemanticValidation(
+    db_conn, &k, v, operation, data_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+}
+
+// key instance exist.
+// update operation allowed
+TEST_F(LogicalMemberPortTest,
+     PerformSemanticValid_KeyExists_UPD_Allow) {
+  key_logical_member_port_t k;
+  memset(&k, 0, sizeof(key_logical_member_port_t));
   Kt_LogicalMemberPort KtObj;
   getKeyForKtLogicalMemberPort1(k);
   OdbcmConnectionHandler *db_conn = NULL;
   void *v = NULL;
   uint32_t operation = UNC_OP_UPDATE;
   uint32_t data_type = UNC_DT_STATE;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
-}  
-
-//key instance exist.
-//Delete operation allowed
-TEST_F(LogicalMemberPortTest, PerformSemanticValid_KeyExists_Del_Allow) {
-  key_logical_member_port_t k ;
-  memset(&k,0,sizeof(key_logical_member_port_t));
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret = KtObj.PerformSemanticValidation(
+    db_conn, &k, v, operation, data_type);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
+}
+
+// key instance exist.
+// Delete operation allowed
+TEST_F(LogicalMemberPortTest,
+     PerformSemanticValid_KeyExists_Del_Allow) {
+  key_logical_member_port_t k;
+  memset(&k, 0, sizeof(key_logical_member_port_t));
   Kt_LogicalMemberPort KtObj;
   getKeyForKtLogicalMemberPort1(k);
   OdbcmConnectionHandler *db_conn = NULL;
   void *v = NULL;
   uint32_t operation = UNC_OP_DELETE;
   uint32_t data_type = UNC_DT_STATE;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
-}  
-
-//key instance exist.
-//Read operation allowed
-TEST_F(LogicalMemberPortTest, PerformSemanticValid_KeyExists_Read_Allow) {
-  key_logical_member_port_t k ;
-  memset(&k,0,sizeof(key_logical_member_port_t));
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret = KtObj.PerformSemanticValidation(
+    db_conn, &k, v, operation, data_type);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
+}
+
+// key instance exist.
+// Read operation allowed
+TEST_F(LogicalMemberPortTest,
+     PerformSemanticValid_KeyExists_Read_Allow) {
+  key_logical_member_port_t k;
+  memset(&k, 0, sizeof(key_logical_member_port_t));
   Kt_LogicalMemberPort KtObj;
   getKeyForKtLogicalMemberPort1(k);
   OdbcmConnectionHandler *db_conn = NULL;
   void *v = NULL;
   uint32_t operation = UNC_OP_READ;
   uint32_t data_type = UNC_DT_STATE;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
-}  
-
-//key already exist
-//create operation not allowed
-TEST_F(LogicalMemberPortTest, PerformSemanticValid_KeyExist_CREATE_NotAllow) {
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret = KtObj.PerformSemanticValidation(
+    db_conn, &k, v, operation, data_type);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
+}
+
+// key already exist
+// create operation not allowed
+TEST_F(LogicalMemberPortTest,
+     PerformSemanticValid_KeyExist_CREATE_NotAllow) {
   key_logical_member_port_t k;
-  memset(&k,0,sizeof(key_logical_member_port_t));
+  memset(&k, 0, sizeof(key_logical_member_port_t));
   Kt_LogicalMemberPort KtObj;
   OdbcmConnectionHandler *db_conn = NULL;
   void *v = NULL;
   uint32_t operation = UNC_OP_CREATE;
   uint32_t data_type = UNC_DT_STATE;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);
-  EXPECT_EQ(UPPL_RC_ERR_INSTANCE_EXISTS, ret);
-}  
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret = KtObj.PerformSemanticValidation(
+    db_conn, &k, v, operation, data_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_INSTANCE_EXISTS, ret);
+}
 
-//IsRowExits:DB Access failure
-TEST_F(LogicalMemberPortTest, PerformSemanticValid_KeyExist_CREATE_DB_Error) {
+// IsRowExits:DB Access failure
+TEST_F(LogicalMemberPortTest,
+     PerformSemanticValid_KeyExist_CREATE_DB_Error) {
   key_logical_member_port_t k;
-  memset(&k,0,sizeof(key_logical_member_port_t));
+  memset(&k, 0, sizeof(key_logical_member_port_t));
   Kt_LogicalMemberPort KtObj;
   OdbcmConnectionHandler *db_conn = NULL;
   void *v = NULL;
   uint32_t operation = UNC_OP_CREATE;
   uint32_t data_type = UNC_DT_STATE;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
-  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
-}  
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
+  int ret = KtObj.PerformSemanticValidation(
+    db_conn, &k, v, operation, data_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
+}
 
-//Error:ParentKey does not exist
-TEST_F(LogicalMemberPortTest, PerformSemanticValid_KeyExist_CREATE_ParentKeyNotExist) {
+// Error:ParentKey does not exist
+TEST_F(LogicalMemberPortTest,
+     PerformSemanticValid_KeyExist_CREATE_ParentKeyNotExist) {
   key_logical_member_port_t k;
-  memset(&k,0,sizeof(key_logical_member_port_t));
+  memset(&k, 0, sizeof(key_logical_member_port_t));
   Kt_LogicalMemberPort KtObj;
   OdbcmConnectionHandler *db_conn = NULL;
   void *v = NULL;
   uint32_t operation = UNC_OP_CREATE;
   uint32_t data_type = UNC_DT_STATE;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_SUCCESS);
-  int ret = KtObj.PerformSemanticValidation(db_conn, &k, v, operation, data_type);
-  EXPECT_EQ(UPPL_RC_ERR_PARENT_DOES_NOT_EXIST, ret);
-}  
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_SUCCESS);
+  int ret = KtObj.PerformSemanticValidation(
+    db_conn, &k, v, operation, data_type);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_PARENT_DOES_NOT_EXIST, ret);
+}
 
 /********ReadLogicalMemberPortValFromDB*********/
-//Unsupported operation type returns Success
-TEST_F(LogicalMemberPortTest, ReadLogicalMemberPortValFromDB_UnSupport_Opr) {
+// Unsupported operation type returns Success
+TEST_F(LogicalMemberPortTest,
+     ReadLogicalMemberPortValFromDB_UnSupport_Opr) {
   key_logical_member_port_t k;
-  memset(&k,0,sizeof(key_logical_member_port_t));
+  memset(&k, 0, sizeof(key_logical_member_port_t));
   Kt_LogicalMemberPort KtObj;
   OdbcmConnectionHandler *db_conn = NULL;
   uint32_t operation = UNC_OP_CREATE;
   uint32_t data_type = UNC_DT_STATE;
   uint32_t max_rep_ct;
   vector<key_logical_member_port_t> logical_mem_port;
-  int ret = KtObj.ReadLogicalMemberPortValFromDB(db_conn, &k, data_type, operation, max_rep_ct, logical_mem_port);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = KtObj.ReadLogicalMemberPortValFromDB(db_conn, &k, data_type,
+    operation, max_rep_ct, logical_mem_port);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//Read Error:No record found
- TEST_F(LogicalMemberPortTest, ReadLogicalMemberPortValFromDB_READ_NoRecordFound) {
+// Read Error:No record found
+TEST_F(LogicalMemberPortTest,
+     ReadLogicalMemberPortValFromDB_READ_NoRecordFound) {
   key_logical_member_port_t k;
-  memset(&k,0,sizeof(key_logical_member_port_t));
+  memset(&k, 0, sizeof(key_logical_member_port_t));
   Kt_LogicalMemberPort KtObj;
   OdbcmConnectionHandler *db_conn = NULL;
   uint32_t operation = UNC_OP_READ;
   uint32_t data_type = UNC_DT_STATE;
   uint32_t max_rep_ct;
   vector<key_logical_member_port_t> logical_mem_port;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_RECORD_NOT_FOUND);
-  int ret = KtObj.ReadLogicalMemberPortValFromDB(db_conn, &k, data_type, operation, max_rep_ct, logical_mem_port);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_RECORD_NOT_FOUND);
+  int ret = KtObj.ReadLogicalMemberPortValFromDB(db_conn, &k, data_type,
+    operation, max_rep_ct, logical_mem_port);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-//Read :DB Connxn Error
-TEST_F(LogicalMemberPortTest, ReadLogicalMemberPortValFromDB_READ_Db_Connxn_Error) {
+// Read :DB Connxn Error
+TEST_F(LogicalMemberPortTest,
+     ReadLogicalMemberPortValFromDB_READ_Db_Connxn_Error) {
   key_logical_member_port_t k;
-  memset(&k,0,sizeof(key_logical_member_port_t));
+  memset(&k, 0, sizeof(key_logical_member_port_t));
   Kt_LogicalMemberPort KtObj;
   OdbcmConnectionHandler *db_conn = NULL;
   uint32_t operation = UNC_OP_READ;
   uint32_t data_type = UNC_DT_STATE;
   uint32_t max_rep_ct;
   vector<key_logical_member_port_t> logical_mem_port;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW,ODBCM_RC_CONNECTION_ERROR);
-  int ret = KtObj.ReadLogicalMemberPortValFromDB(db_conn, &k, data_type, operation, max_rep_ct, logical_mem_port);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
+  int ret = KtObj.ReadLogicalMemberPortValFromDB(db_conn, &k, data_type,
+    operation, max_rep_ct, logical_mem_port);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-//Read :Error returning DB_GET
-TEST_F(LogicalMemberPortTest, ReadLogicalMemberPortValFromDB_READ_Db_GetError) {
+// Read :Error returning DB_GET
+TEST_F(LogicalMemberPortTest,
+     ReadLogicalMemberPortValFromDB_READ_Db_GetError) {
   key_logical_member_port_t k;
-  memset(&k,0,sizeof(key_logical_member_port_t));
+  memset(&k, 0, sizeof(key_logical_member_port_t));
   Kt_LogicalMemberPort KtObj;
   OdbcmConnectionHandler *db_conn = NULL;
   uint32_t operation = UNC_OP_READ;
   uint32_t data_type = UNC_DT_STATE;
   uint32_t max_rep_ct;
   vector<key_logical_member_port_t> logical_mem_port;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW,ODBCM_RC_FAILED);
-  int ret = KtObj.ReadLogicalMemberPortValFromDB(db_conn, &k, data_type, operation, max_rep_ct, logical_mem_port);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  int ret = KtObj.ReadLogicalMemberPortValFromDB(db_conn, &k, data_type,
+    operation, max_rep_ct, logical_mem_port);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
- //Read:GetOneRow Success
-TEST_F(LogicalMemberPortTest, ReadLogicalMemberPortValFromDB_READ_GetOneRow_Success) {
+// Read:GetOneRow Success
+TEST_F(LogicalMemberPortTest,
+     ReadLogicalMemberPortValFromDB_READ_GetOneRow_Success) {
   key_logical_member_port_t k;
-  memset(&k,0,sizeof(key_logical_member_port_t));
+  memset(&k, 0, sizeof(key_logical_member_port_t));
   Kt_LogicalMemberPort KtObj;
   OdbcmConnectionHandler *db_conn = NULL;
   uint32_t operation = UNC_OP_READ;
   uint32_t data_type = UNC_DT_STATE;
   uint32_t max_rep_ct;
   vector<key_logical_member_port_t> logical_mem_port;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW,ODBCM_RC_SUCCESS);
-  int ret = KtObj.ReadLogicalMemberPortValFromDB(db_conn, &k, data_type, operation, max_rep_ct, logical_mem_port);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret = KtObj.ReadLogicalMemberPortValFromDB(db_conn, &k, data_type,
+    operation, max_rep_ct, logical_mem_port);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /******ReadBulk**********/
-//ReadBulk Not allowed for UNC_DT_CANDIDATE
-TEST_F(LogicalMemberPortTest, ReadBulk_DB_NoMatch) {
+// ReadBulk Not allowed for UNC_DT_CANDIDATE
+TEST_F(LogicalMemberPortTest,
+     ReadBulk_DB_NoMatch) {
   key_logical_member_port_t k;
   Kt_LogicalMemberPort KtObj;
   getKeyForKtLogicalMemberPort1(k);
@@ -1018,12 +1171,14 @@ TEST_F(LogicalMemberPortTest, ReadBulk_DB_NoMatch) {
   pfc_bool_t parent_call(PFC_FALSE);
   pfc_bool_t is_read_next(PFC_FALSE);
   ReadRequest *read_req = NULL;
-  int ret = KtObj.ReadBulk(db_conn, &k, UNC_DT_RUNNING, max_rep_ct, child_index,parent_call, is_read_next,read_req);
-  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+  int ret = KtObj.ReadBulk(db_conn, &k, UNC_DT_RUNNING,
+    max_rep_ct, child_index, parent_call, is_read_next, read_req);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
-//If max_rep_count is 0,return success
-TEST_F(LogicalMemberPortTest, ReadBulk_MaxCt_Zero) {
+// If max_rep_count is 0, return success
+TEST_F(LogicalMemberPortTest,
+     ReadBulk_MaxCt_Zero) {
   key_logical_member_port_t k;
   Kt_LogicalMemberPort KtObj;
   getKeyForKtLogicalMemberPort1(k);
@@ -1033,12 +1188,14 @@ TEST_F(LogicalMemberPortTest, ReadBulk_MaxCt_Zero) {
   pfc_bool_t parent_call(PFC_FALSE);
   pfc_bool_t is_read_next(PFC_FALSE);
   ReadRequest *read_req = NULL;
-  int ret = KtObj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index,parent_call, is_read_next,read_req);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = KtObj.ReadBulk(db_conn, &k, UNC_DT_STATE,
+    max_rep_ct, child_index, parent_call, is_read_next, read_req);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//GetBulkRows Read Status Success
-TEST_F(LogicalMemberPortTest, ReadBulk__Success) {
+// GetBulkRows Read Status Success
+TEST_F(LogicalMemberPortTest,
+     ReadBulk__Success) {
   key_logical_member_port_t k;
   Kt_LogicalMemberPort KtObj;
   getKeyForKtLogicalMemberPort1(k);
@@ -1048,14 +1205,16 @@ TEST_F(LogicalMemberPortTest, ReadBulk__Success) {
   pfc_bool_t parent_call(PFC_FALSE);
   pfc_bool_t is_read_next(PFC_FALSE);
   ReadRequest read_req;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS,ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
   int ret = KtObj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index,
                            parent_call, is_read_next, &read_req);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//GetBulkRows Returns DB Access Error
-TEST_F(LogicalMemberPortTest, ReadBulk_Db_Access_Error) {
+// GetBulkRows Returns DB Access Error
+TEST_F(LogicalMemberPortTest,
+     ReadBulk_Db_Access_Error) {
   key_logical_member_port_t k;
   Kt_LogicalMemberPort KtObj;
   getKeyForKtLogicalMemberPort1(k);
@@ -1065,14 +1224,16 @@ TEST_F(LogicalMemberPortTest, ReadBulk_Db_Access_Error) {
   pfc_bool_t parent_call(PFC_FALSE);
   pfc_bool_t is_read_next(PFC_FALSE);
   ReadRequest read_req;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
   int ret = KtObj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index,
                            parent_call, is_read_next, &read_req);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-//Read Status for next Kin Success
-TEST_F(LogicalMemberPortTest, ReadBulk_Next_Kin_Success) {
+// Read Status for next Kin Success
+TEST_F(LogicalMemberPortTest,
+     ReadBulk_Next_Kin_Success) {
   key_logical_member_port_t k;
   memset(&k, 0, sizeof(k));
   Kt_LogicalMemberPort KtObj;
@@ -1082,14 +1243,16 @@ TEST_F(LogicalMemberPortTest, ReadBulk_Next_Kin_Success) {
   pfc_bool_t parent_call(PFC_FALSE);
   pfc_bool_t is_read_next(PFC_FALSE);
   ReadRequest read_req;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
   int ret = KtObj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index,
                            parent_call, is_read_next, &read_req);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//Read Status Success for no such instance
-TEST_F(LogicalMemberPortTest, ReadBulk_Succes__For_NoInstance) {
+// Read Status Success for no such instance
+TEST_F(LogicalMemberPortTest,
+     ReadBulk_Succes__For_NoInstance) {
   key_logical_member_port_t k;
   memset(&k, 0, sizeof(k));
 
@@ -1100,13 +1263,15 @@ TEST_F(LogicalMemberPortTest, ReadBulk_Succes__For_NoInstance) {
   pfc_bool_t parent_call(PFC_FALSE);
   pfc_bool_t is_read_next(PFC_FALSE);
   ReadRequest read_req;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
   int ret = KtObj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index,
                            parent_call, is_read_next, &read_req);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalMemberPortTest, ReadBulk_Succes_NOSUCHINSTANCE) {
+TEST_F(LogicalMemberPortTest,
+     ReadBulk_Succes_NOSUCHINSTANCE) {
   key_logical_member_port_t k;
   memset(&k, 0, sizeof(k));
 
@@ -1117,8 +1282,9 @@ TEST_F(LogicalMemberPortTest, ReadBulk_Succes_NOSUCHINSTANCE) {
   pfc_bool_t parent_call(PFC_FALSE);
   pfc_bool_t is_read_next(PFC_FALSE);
   ReadRequest read_req;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
   int ret = KtObj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index,
                            parent_call, is_read_next, &read_req);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
index 60181e28bd1fd6d8c2cfdca91ecfc4dffb30d38d..6a8ac6df048ab1caba6081437002537402508348 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -35,8 +35,9 @@
 #include <pfc/iostream.h>
 #include <pfc/ipc_client.h>
 #include <pfc/ipc_pfcd.h>
-#include <pfc/ipc_struct.h>
 #include <odbcm_mgr.hh>
+#include <tclib_module.hh>
+#include <itc_read_request.hh>
 #include <physical_common_def.hh>
 #include <unc/uppl_common.h>
 #include <unc/keytype.h>
 #include <itc_kt_logical_member_port.hh>
 #include <itc_kt_logicalport.hh>
 #include <ipct_util.hh>
-#include <itc_kt_logical_member_port.hh>
 #include <physicallayer.hh>
 #include "PhysicalLayerStub.hh"
-#include <tclib_module.hh>
-#include <itc_read_request.hh>
 #include "ut_util.hh"
 
 using namespace pfc;
@@ -66,8 +64,7 @@ using namespace unc::uppl::test;
 using namespace std;
 
 class LogicalPortTest
-  : public UpplTestEnv
-{
+  : public UpplTestEnv {
 };
 
 static void getReqHeader(physical_request_header& rh,
@@ -83,10 +80,10 @@ static void getReqHeader(physical_request_header& rh,
   rh.key_type = UNC_KT_LOGICAL_PORT;
 }
 
-// Can be changed based on testing need
+//  Can be changed based on testing need
 static char pkName1_ctr[] = "controller1";
 static char pkName1_domain[] = "controller1 domain name";
-static char pkName1_logicalport[] = "{0x00,0xa}";
+static char pkName1_logicalport[] = "{0x00, 0xa}";
 static char Desription[] = "create demo";
 static char SWitchID[] = "switch01";
 static char PhyPortID[] = "PhyPort01";
@@ -94,7 +91,8 @@ static char controller_name[] = "Controller1";
 static char switch_id[] = "Switch1";
 static char phy_port_id[] = "port1";
 
-TEST_F(LogicalPortTest, PerformSyntaxValidation_ControllernameNotFound_01) {
+TEST_F(LogicalPortTest,
+    PerformSyntaxValidation_ControllernameNotFound_01) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
@@ -103,385 +101,463 @@ TEST_F(LogicalPortTest, PerformSyntaxValidation_ControllernameNotFound_01) {
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
   uint32_t operation = UNC_OP_CREATE;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktlinkobj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-TEST_F(LogicalPortTest, PerformSyntaxValidation_DomainNameNotFound_02) {
+TEST_F(LogicalPortTest,
+    PerformSyntaxValidation_DomainNameNotFound_02) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
   Kt_LogicalPort ktlinkobj;
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr,
+         strlen(pkName1_ctr));
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
   uint32_t operation = UNC_OP_CREATE;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktlinkobj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-TEST_F(LogicalPortTest, PerformSyntaxValidation_PortIDNNotFound_03) {
+TEST_F(LogicalPortTest,
+    PerformSyntaxValidation_PortIDNNotFound_03) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
   Kt_LogicalPort ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
   uint32_t operation = UNC_OP_CREATE;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
-
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktlinkobj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-TEST_F(LogicalPortTest, PerformSyntaxValidation_SyntaxValidation_Success_04) {
+TEST_F(LogicalPortTest,
+    PerformSyntaxValidation_SyntaxValidation_Success_04) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
   Kt_LogicalPort ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
   uint32_t operation = UNC_OP_CREATE;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktlinkobj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, PerformSyntaxValidation_OptionalValPass_Success_05) {
+TEST_F(LogicalPortTest,
+    PerformSyntaxValidation_OptionalValPass_Success_05) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
-  memcpy(v.logical_port.description,Desription,strlen(Desription));
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
+  memcpy(v.logical_port.description, Desription, strlen(Desription));
   Kt_LogicalPort ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
   uint32_t operation = UNC_OP_CREATE;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktlinkobj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, IsKeyExists_01) {
+TEST_F(LogicalPortTest,
+    IsKeyExists_01) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
   Kt_LogicalPort ktlinkobj;
   physical_request_header rh;
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
   rh.key_type = UNC_KT_LOGICAL_PORT;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   vector<string> sw_vect_key_value;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  int ret =  ktlinkobj.IsKeyExists(db_conn,UNC_DT_STATE,sw_vect_key_value);
-  EXPECT_EQ(UPPL_RC_ERR_BAD_REQUEST, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret = ktlinkobj.IsKeyExists(db_conn, UNC_DT_STATE, sw_vect_key_value);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_BAD_REQUEST, ret);
 }
 
-TEST_F(LogicalPortTest, IsKeyExists_FailureIsrowexist02) {
+TEST_F(LogicalPortTest,
+    IsKeyExists_FailureIsrowexist02) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
   Kt_LogicalPort ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
   rh.key_type = UNC_KT_LOGICAL_PORT;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   vector<string> sw_vect_key_value;
   sw_vect_key_value.push_back(pkName1_ctr);
   sw_vect_key_value.push_back(pkName1_domain);
   sw_vect_key_value.push_back(pkName1_logicalport);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
-  int ret =  ktlinkobj.IsKeyExists(db_conn,UNC_DT_STATE,sw_vect_key_value);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
+  int ret = ktlinkobj.IsKeyExists(db_conn, UNC_DT_STATE, sw_vect_key_value);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-TEST_F(LogicalPortTest, IsKeyExists_SuccessIsrowexist03) {
+TEST_F(LogicalPortTest,
+    IsKeyExists_SuccessIsrowexist03) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
   Kt_LogicalPort ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
   rh.key_type = UNC_KT_LOGICAL_PORT;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   vector<string> sw_vect_key_value;
   sw_vect_key_value.push_back(pkName1_ctr);
   sw_vect_key_value.push_back(pkName1_domain);
   sw_vect_key_value.push_back(pkName1_logicalport);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  int ret =  ktlinkobj.IsKeyExists(db_conn,UNC_DT_STATE,sw_vect_key_value);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret = ktlinkobj.IsKeyExists(db_conn, UNC_DT_STATE, sw_vect_key_value);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, PerformSemanticValidation_InstanceExist_create01) {
+TEST_F(LogicalPortTest,
+    PerformSemanticValidation_InstanceExist_create01) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
   Kt_LogicalPort ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
   rh.key_type = UNC_KT_LOGICAL_PORT;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   uint32_t operation = UNC_OP_CREATE;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_INSTANCE_EXISTS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret = ktlinkobj.PerformSemanticValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_INSTANCE_EXISTS, ret);
 }
 
-TEST_F(LogicalPortTest, PerformSemanticValidation_InstanceNOtExist_create02) {
+TEST_F(LogicalPortTest,
+    PerformSemanticValidation_InstanceNOtExist_create02) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
   Kt_LogicalPort ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
   rh.key_type = UNC_KT_LOGICAL_PORT;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   uint32_t operation = UNC_OP_CREATE;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
-  int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_PARENT_DOES_NOT_EXIST, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
+  int ret = ktlinkobj.PerformSemanticValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_PARENT_DOES_NOT_EXIST, ret);
 }
 
-TEST_F(LogicalPortTest, PerformSemanticValidation_InstanceNOtExist_update03) {
+TEST_F(LogicalPortTest,
+    PerformSemanticValidation_InstanceNOtExist_update03) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
   Kt_LogicalPort ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
   rh.key_type = UNC_KT_LOGICAL_PORT;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   uint32_t operation = UNC_OP_UPDATE;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
-  int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
+  int ret = ktlinkobj.PerformSemanticValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-TEST_F(LogicalPortTest, PerformSemanticValidation_InstanceNOtExist_delete04) {
+TEST_F(LogicalPortTest,
+    PerformSemanticValidation_InstanceNOtExist_delete04) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
   Kt_LogicalPort ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
   rh.key_type = UNC_KT_LOGICAL_PORT;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   uint32_t operation = UNC_OP_DELETE;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
-  int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
+  int ret = ktlinkobj.PerformSemanticValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-TEST_F(LogicalPortTest, PerformSemanticValidation_InstanceNOtExist_read03) {
+TEST_F(LogicalPortTest,
+    PerformSemanticValidation_InstanceNOtExist_read03) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
   Kt_LogicalPort ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
   rh.key_type = UNC_KT_LOGICAL_PORT;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   uint32_t operation = UNC_OP_READ;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
-  int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_MORE_ROWS_FOUND);
+  int ret = ktlinkobj.PerformSemanticValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-TEST_F(LogicalPortTest, PerformSemanticValidation_InstanceNOtExist_read_InstanceExist04) {
+TEST_F(LogicalPortTest,
+    PerformSemanticValidation_InstanceNOtExist_read_InstanceExist04) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
   Kt_LogicalPort ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
   rh.key_type = UNC_KT_LOGICAL_PORT;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   uint32_t operation = UNC_OP_READ;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret = ktlinkobj.PerformSemanticValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, PerformSemanticValidation_InstanceNOtExist_update_InstanceExist04) {
+TEST_F(LogicalPortTest,
+       PerformSemanticValidation_InstanceNOtExist_update_InstanceExist04) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
   Kt_LogicalPort ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
   rh.key_type = UNC_KT_LOGICAL_PORT;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   uint32_t operation = UNC_OP_UPDATE;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret = ktlinkobj.PerformSemanticValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, PerformSemanticValidation_InstanceNOtExist_delete_InstanceExist04) {
+TEST_F(LogicalPortTest,
+       PerformSemanticValidation_InstanceNOtExist_delete_InstanceExist04) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
   Kt_LogicalPort ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
   rh.key_type = UNC_KT_LOGICAL_PORT;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   uint32_t operation = UNC_OP_DELETE;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  int ret =  ktlinkobj.PerformSemanticValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret = ktlinkobj.PerformSemanticValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, DeleteKeyInstance_UnsupportedForSTARTUP_01) {
+TEST_F(LogicalPortTest,
+    DeleteKeyInstance_UnsupportedForSTARTUP_01) {
   key_logical_port_t k;
   memset(&k, 0, sizeof(key_logical_port_t));
   Kt_LogicalPort ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_STARTUP, UNC_KT_LOGICAL_PORT);
-  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktlinkobj.DeleteKeyInstance(
+    db_conn, &k, UNC_DT_STARTUP, UNC_KT_LOGICAL_PORT);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
-TEST_F(LogicalPortTest, DeleteKeyInstance_UnsupportedForCANDIDATE_01) {
+TEST_F(LogicalPortTest,
+    DeleteKeyInstance_UnsupportedForCANDIDATE_01) {
   key_logical_port_t k;
   memset(&k, 0, sizeof(key_logical_port_t));
   Kt_LogicalPort ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_CANDIDATE, UNC_KT_LOGICAL_PORT);
-  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktlinkobj.DeleteKeyInstance(
+    db_conn, &k, UNC_DT_CANDIDATE, UNC_KT_LOGICAL_PORT);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
-TEST_F(LogicalPortTest, DeleteKeyInstance_UnsupportedForRUNNING_01) {
+TEST_F(LogicalPortTest,
+    DeleteKeyInstance_UnsupportedForRUNNING_01) {
   key_logical_port_t k;
   memset(&k, 0, sizeof(key_logical_port_t));
   Kt_LogicalPort ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_RUNNING, UNC_KT_LOGICAL_PORT);
-  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktlinkobj.DeleteKeyInstance(
+    db_conn, &k, UNC_DT_RUNNING, UNC_KT_LOGICAL_PORT);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
-TEST_F(LogicalPortTest, DeleteKeyInstance_UnsupportedForAUDIT_01) {
+TEST_F(LogicalPortTest,
+    DeleteKeyInstance_UnsupportedForAUDIT_01) {
   key_logical_port_t k;
   memset(&k, 0, sizeof(key_logical_port_t));
   Kt_LogicalPort ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_AUDIT, UNC_KT_LOGICAL_PORT);
-  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktlinkobj.DeleteKeyInstance(
+    db_conn, &k, UNC_DT_AUDIT, UNC_KT_LOGICAL_PORT);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
-TEST_F(LogicalPortTest, DeleteKeyInstance_Support_03) { //return code not handle from HandleOperDownCriteriaFromPortStatus function
+TEST_F(LogicalPortTest,
+    DeleteKeyInstance_Support_03) {
+  // return code not handle from HandleOperDownCriteriaFromPortStatus function
   key_logical_port_t k;
   memset(&k, 0, sizeof(key_logical_port_t));
   Kt_LogicalPort ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, UNC_KT_LOGICAL_PORT);
-  EXPECT_EQ(UPPL_RC_ERR_DB_DELETE, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktlinkobj.DeleteKeyInstance(
+    db_conn, &k, UNC_DT_STATE, UNC_KT_LOGICAL_PORT);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_DELETE, ret);
 }
 
-TEST_F(LogicalPortTest, DeleteKeyInstance_Support_04) { //return code not handle from HandleOperDownCriteriaFromPortStatus function
+TEST_F(LogicalPortTest,
+    DeleteKeyInstance_Support_04) {
+  // return code not handle from HandleOperDownCriteriaFromPortStatus function
   key_logical_port_t k;
   memset(&k, 0, sizeof(key_logical_port_t));
   Kt_LogicalPort ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_CONNECTION_ERROR);
-  int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, UNC_KT_LOGICAL_PORT);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_CONNECTION_ERROR);
+  int ret = ktlinkobj.DeleteKeyInstance(
+    db_conn, &k, UNC_DT_STATE, UNC_KT_LOGICAL_PORT);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-TEST_F(LogicalPortTest, DeleteKeyInstance_Support_05) { //return code not handle from HandleOperDownCriteriaFromPortStatus function
+TEST_F(LogicalPortTest,
+    DeleteKeyInstance_Support_05) {
+  // return code not handle from HandleOperDownCriteriaFromPortStatus function
   key_logical_port_t k;
   memset(&k, 0, sizeof(key_logical_port_t));
   Kt_LogicalPort ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
-  int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, UNC_KT_LOGICAL_PORT);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
+  int ret = ktlinkobj.DeleteKeyInstance(
+    db_conn, &k, UNC_DT_STATE, UNC_KT_LOGICAL_PORT);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-TEST_F(LogicalPortTest, DeleteKeyInstance_Support_06) { //return code not handle from HandleOperDownCriteriaFromPortStatus function
+TEST_F(LogicalPortTest,
+    DeleteKeyInstance_Support_06) {
+  // return code not handle from HandleOperDownCriteriaFromPortStatus function
   key_logical_port_t k;
   memset(&k, 0, sizeof(key_logical_port_t));
   Kt_LogicalPort ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
-  int ret = ktlinkobj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, UNC_KT_LOGICAL_PORT);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktlinkobj.DeleteKeyInstance(
+    db_conn, &k, UNC_DT_STATE, UNC_KT_LOGICAL_PORT);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, PerformRead_001) {
+TEST_F(LogicalPortTest,
+    PerformRead_001) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
@@ -490,7 +566,7 @@ TEST_F(LogicalPortTest, PerformRead_001) {
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_READ, UNC_DT_STATE);
   rh.key_type = UNC_KT_PORT;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -502,11 +578,16 @@ TEST_F(LogicalPortTest, PerformRead_001) {
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
 
-  int ret =  ktlinkobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret = ktlinkobj.PerformRead(
+    db_conn, (uint32_t)0, (uint32_t)0, &k, &v,
+    (uint32_t)UNC_DT_STATE,
+    (uint32_t)UNC_OP_READ, sess, (uint32_t)UNC_OPT1_DETAIL,
+    (uint32_t)UNC_OPT2_NONE, (uint32_t)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-TEST_F(LogicalPortTest, PerformRead_002) {
+TEST_F(LogicalPortTest,
+    PerformRead_002) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
@@ -515,7 +596,7 @@ TEST_F(LogicalPortTest, PerformRead_002) {
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_READ, UNC_DT_CANDIDATE);
   rh.key_type = UNC_KT_PORT;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -526,11 +607,16 @@ TEST_F(LogicalPortTest, PerformRead_002) {
   sess.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
-int ret =  ktlinkobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_L2DOMAIN,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+int ret = ktlinkobj.PerformRead(
+    db_conn, (uint32_t)0, (uint32_t)0, &k, &v,
+    (uint32_t)UNC_DT_STATE,
+    (uint32_t)UNC_OP_READ, sess,
+    (uint32_t)UNC_OPT1_NORMAL, (uint32_t)UNC_OPT2_L2DOMAIN, (uint32_t)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-TEST_F(LogicalPortTest, PerformRead_003) {
+TEST_F(LogicalPortTest,
+    PerformRead_003) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
@@ -539,7 +625,7 @@ TEST_F(LogicalPortTest, PerformRead_003) {
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_READ, UNC_DT_CANDIDATE);
   rh.key_type = UNC_KT_PORT;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -550,11 +636,15 @@ TEST_F(LogicalPortTest, PerformRead_003) {
   sess.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
-int ret =  ktlinkobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_RUNNING,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+int ret = ktlinkobj.PerformRead(
+    db_conn, (uint32_t)0, (uint32_t)0, &k, &v, (uint32_t)UNC_DT_RUNNING,
+    (uint32_t)UNC_OP_READ, sess, (uint32_t)UNC_OPT1_NORMAL,
+    (uint32_t)UNC_OPT2_NONE, (uint32_t)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-TEST_F(LogicalPortTest, PerformRead_004) {
+TEST_F(LogicalPortTest,
+    PerformRead_004) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
@@ -563,7 +653,7 @@ TEST_F(LogicalPortTest, PerformRead_004) {
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_READ, UNC_DT_CANDIDATE);
   rh.key_type = UNC_KT_PORT;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -574,11 +664,16 @@ TEST_F(LogicalPortTest, PerformRead_004) {
   sess.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
-int ret =  ktlinkobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_INVALID,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+int ret = ktlinkobj.PerformRead(
+    db_conn, (uint32_t)0, (uint32_t)0, &k, &v,
+    (uint32_t)UNC_DT_STATE, (uint32_t)UNC_OP_INVALID, sess,
+    (uint32_t)UNC_OPT1_NORMAL,
+    (uint32_t)UNC_OPT2_NONE, (uint32_t)1);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, PerformRead_GetOneRow_005) {
+TEST_F(LogicalPortTest,
+    PerformRead_GetOneRow_005) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
@@ -587,7 +682,7 @@ TEST_F(LogicalPortTest, PerformRead_GetOneRow_005) {
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_READ, UNC_DT_CANDIDATE);
   rh.key_type = UNC_KT_PORT;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -598,58 +693,72 @@ TEST_F(LogicalPortTest, PerformRead_GetOneRow_005) {
   sess.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
-int ret =  ktlinkobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+int ret = ktlinkobj.PerformRead(
+    db_conn, (uint32_t)0, (uint32_t)0, &k, &v,
+    (uint32_t)UNC_DT_STATE,
+    (uint32_t)UNC_OP_READ, sess, (uint32_t)UNC_OPT1_NORMAL,
+    (uint32_t)UNC_OPT2_NONE, (uint32_t)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-TEST_F(LogicalPortTest, SetOperStatus_001) {
+TEST_F(LogicalPortTest,
+    SetOperStatus_001) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&v, 0, sizeof(val_logical_port_st_t));
   memset(&k, 0, sizeof(key_logical_port_t));
   Kt_LogicalPort ktlinkobj;
-  //getKeyForKtPort2(k);
+  // getKeyForKtPort2(k);
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_UPDATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  int ret =  ktlinkobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,&v,(UpplLogicalPortOperStatus)1);
-  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  int ret = ktlinkobj.SetOperStatus(
+    db_conn, UNC_DT_STATE, &k, &v, (UpplLogicalPortOperStatus)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
-TEST_F(LogicalPortTest, SetOperStatus_002) {
+TEST_F(LogicalPortTest,
+    SetOperStatus_002) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&v, 0, sizeof(val_logical_port_st_t));
   memset(&k, 0, sizeof(key_logical_port_t));
   Kt_LogicalPort ktlinkobj;
-  //getKeyForKtPort2(k);
+  // getKeyForKtPort2(k);
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_UPDATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
-  int ret =  ktlinkobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,&v,(UpplLogicalPortOperStatus)0);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
+  int ret = ktlinkobj.SetOperStatus(
+    db_conn, UNC_DT_STATE, &k, &v, (UpplLogicalPortOperStatus)0);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, SetOperStatus_003) {
+TEST_F(LogicalPortTest,
+    SetOperStatus_003) {
 
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&v, 0, sizeof(val_logical_port_st_t));
   memset(&k, 0, sizeof(key_logical_port_t));
   Kt_LogicalPort ktlinkobj;
-  //getKeyForKtPort2(k);
+  // getKeyForKtPort2(k);
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_UPDATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktlinkobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,&v,(UpplLogicalPortOperStatus)0);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktlinkobj.SetOperStatus(
+    db_conn, UNC_DT_STATE, &k, &v, (UpplLogicalPortOperStatus)0);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, SetOperStatus_004) {
+TEST_F(LogicalPortTest,
+    SetOperStatus_004) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&v, 0, sizeof(val_logical_port_st_t));
@@ -657,14 +766,18 @@ TEST_F(LogicalPortTest, SetOperStatus_004) {
   Kt_LogicalPort ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_UPDATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktlinkobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,&v,(UpplLogicalPortOperStatus)0);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktlinkobj.SetOperStatus(
+    db_conn, UNC_DT_STATE, &k, &v, (UpplLogicalPortOperStatus)0);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, SetOperStatus_005) {
+TEST_F(LogicalPortTest,
+    SetOperStatus_005) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&v, 0, sizeof(val_logical_port_st_t));
@@ -672,169 +785,201 @@ TEST_F(LogicalPortTest, SetOperStatus_005) {
   Kt_LogicalPort ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_UPDATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktlinkobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,&v,(UpplLogicalPortOperStatus)0);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktlinkobj.SetOperStatus(
+    db_conn, UNC_DT_STATE, &k, &v, (UpplLogicalPortOperStatus)0);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, SetOperStatus_006) {
+TEST_F(LogicalPortTest,
+    SetOperStatus_006) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&v, 0, sizeof(val_logical_port_st_t));
   memset(&k, 0, sizeof(key_logical_port_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
-  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));
-  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
+  memcpy(v.logical_port.switch_id, SWitchID, strlen(SWitchID));
+  memcpy(v.logical_port.physical_port_id, PhyPortID, strlen(PhyPortID));
   Kt_LogicalPort ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_UPDATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktlinkobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,&v,(UpplLogicalPortOperStatus)0);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktlinkobj.SetOperStatus(
+    db_conn, UNC_DT_STATE, &k, &v, (UpplLogicalPortOperStatus)0);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, SetOperStatus_007) {
+TEST_F(LogicalPortTest,
+    SetOperStatus_007) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&v, 0, sizeof(val_logical_port_st_t));
   memset(&k, 0, sizeof(key_logical_port_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
-  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));
-  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
+  memcpy(v.logical_port.switch_id, SWitchID, strlen(SWitchID));
+  memcpy(v.logical_port.physical_port_id, PhyPortID, strlen(PhyPortID));
   Kt_LogicalPort ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_UPDATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktlinkobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,&v,(UpplLogicalPortOperStatus)2);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktlinkobj.SetOperStatus(
+    db_conn, UNC_DT_STATE, &k, &v, (UpplLogicalPortOperStatus)2);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, ReadBulk_NotAllowOperation_01) {
+TEST_F(LogicalPortTest,
+    ReadBulk_NotAllowOperation_01) {
   key_logical_port_t k;
   memset(&k, 0, sizeof(key_logical_port_t));
   Kt_LogicalPort ktlinkobj;
-  uint32_t max_rep_ct=1;
-  int child_index=0;
-  pfc_bool_t parent_call=true;
-  pfc_bool_t is_read_next=true;
+  uint32_t max_rep_ct = 1;
+  int child_index = 0;
+  pfc_bool_t parent_call = true;
+  pfc_bool_t is_read_next = true;
   OdbcmConnectionHandler *db_conn = NULL;
   ReadRequest *read_req = NULL;
-  int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_CANDIDATE, max_rep_ct, child_index, parent_call, is_read_next,read_req);
-  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+  int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_CANDIDATE, max_rep_ct
+    , child_index, parent_call, is_read_next, read_req);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
-TEST_F(LogicalPortTest, ReadBulk_MaxCountZERO_02) {
+TEST_F(LogicalPortTest,
+    ReadBulk_MaxCountZERO_02) {
   key_logical_port_t k;
   memset(&k, 0, sizeof(key_logical_port_t));
   Kt_LogicalPort ktlinkobj;
-  uint32_t max_rep_ct=0;
-  int child_index=0;
-  pfc_bool_t parent_call=true;
-  pfc_bool_t is_read_next=true;
+  uint32_t max_rep_ct = 0;
+  int child_index = 0;
+  pfc_bool_t parent_call = true;
+  pfc_bool_t is_read_next = true;
   OdbcmConnectionHandler *db_conn = NULL;
   ReadRequest *read_req = NULL;
-  int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index, parent_call, is_read_next,read_req);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct
+    , child_index, parent_call, is_read_next, read_req);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, ReadBulk_UPPL_RC_ERR_DB_GET_02) {
+TEST_F(LogicalPortTest,
+    ReadBulk_UNC_UPPL_RC_ERR_DB_GET_02) {
   key_logical_port_t k;
   memset(&k, 0, sizeof(key_logical_port_t));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
   Kt_LogicalPort ktlinkobj;
-  uint32_t max_rep_ct=1;
-  int child_index=-1;
-  pfc_bool_t parent_call=true;
-  pfc_bool_t is_read_next=true;
+  uint32_t max_rep_ct = 1;
+  int child_index = -1;
+  pfc_bool_t parent_call = true;
+  pfc_bool_t is_read_next = true;
   OdbcmConnectionHandler *db_conn = NULL;
   ReadRequest *read_req = NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index, parent_call, is_read_next,read_req);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct
+    , child_index, parent_call, is_read_next, read_req);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
-TEST_F(LogicalPortTest, ReadBulkInternal__SUCCESS01) {
+TEST_F(LogicalPortTest,
+    ReadBulkInternal__SUCCESS01) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&v, 0, sizeof(val_logical_port_st_t));
   memset(&k, 0, sizeof(key_logical_port_t));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
   Kt_LogicalPort ktlinkobj;
-  uint32_t max_rep_ct=0;
+  uint32_t max_rep_ct = 0;
   OdbcmConnectionHandler *db_conn = NULL;
   vector<val_logical_port_st_t> vect_val_logical_port_st;
   vector<key_logical_port_t> vect_logicalport_id;
-  int ret = ktlinkobj.ReadBulkInternal(db_conn, &k, &v, UNC_DT_STATE, max_rep_ct, vect_val_logical_port_st, vect_logicalport_id);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = ktlinkobj.ReadBulkInternal(
+    db_conn, &k, &v, UNC_DT_STATE, max_rep_ct,
+    vect_val_logical_port_st, vect_logicalport_id);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, GetLogicalPortValidFlag_UPPL_RC_ERR_NO_SUCH_INSTANCE) {
+TEST_F(LogicalPortTest,
+    GetLogicalPortValidFlag_UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE) {
   key_logical_port_t k;
   memset(&k, 0, sizeof(key_logical_port_t));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
   val_logical_port_st_t val;
   memset(&val, 0, sizeof(val));
 
   Kt_LogicalPort ktlinkobj;
   OdbcmConnectionHandler *db_conn = NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_RECORD_NOT_FOUND);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_RECORD_NOT_FOUND);
   int ret = ktlinkobj.GetLogicalPortValidFlag(db_conn, &k, val, UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-TEST_F(LogicalPortTest, GetLogicalPortValidFlag_UPPL_RC_ERR_DB_ACCESS) {
+TEST_F(LogicalPortTest,
+    GetLogicalPortValidFlag_UNC_UPPL_RC_ERR_DB_ACCESS) {
   key_logical_port_t k;
   memset(&k, 0, sizeof(key_logical_port_t));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
   val_logical_port_st_t val;
   memset(&val, 0, sizeof(val));
 
   Kt_LogicalPort ktlinkobj;
   OdbcmConnectionHandler *db_conn = NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
   int ret = ktlinkobj.GetLogicalPortValidFlag(db_conn, &k, val, UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-TEST_F(LogicalPortTest, GetLogicalPortValidFlag_OtherThanSuccess) {
+TEST_F(LogicalPortTest,
+    GetLogicalPortValidFlag_OtherThanSuccess) {
   key_logical_port_t k;
   memset(&k, 0, sizeof(key_logical_port_t));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
   val_logical_port_st_t val;
   memset(&val, 0, sizeof(val));
 
   Kt_LogicalPort ktlinkobj;
   OdbcmConnectionHandler *db_conn = NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_COMMON_LINK_FAILURE);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_COMMON_LINK_FAILURE);
   int ret = ktlinkobj.GetLogicalPortValidFlag(db_conn, &k, val, UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
-TEST_F(LogicalPortTest, GetLogicalPortValidFlag_UPPL_RC_SUCCESS) {
+TEST_F(LogicalPortTest,
+    GetLogicalPortValidFlag_UNC_RC_SUCCESS) {
   key_logical_port_t k;
   memset(&k, 0, sizeof(key_logical_port_t));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
   val_logical_port_st_t val;
   memset(&val, 0, sizeof(val));
 
   Kt_LogicalPort ktlinkobj;
   OdbcmConnectionHandler *db_conn = NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret = ktlinkobj.GetLogicalPortValidFlag(db_conn, &k, val, UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, GetOperStatusFromOperDownCriteria_DB_ERROR) {
+TEST_F(LogicalPortTest,
+    GetOperStatusFromOperDownCriteria_DB_ERROR) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
@@ -842,12 +987,15 @@ TEST_F(LogicalPortTest, GetOperStatusFromOperDownCriteria_DB_ERROR) {
   Kt_LogicalPort ktlinkobj;
   UpplLogicalPortOperStatus new_oper_status = UPPL_LOGICAL_PORT_OPER_UNKNOWN;
   OdbcmConnectionHandler *db_conn = NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  int ret = ktlinkobj.GetOperStatusFromOperDownCriteria(db_conn,UNC_DT_STATE,&k,&v,new_oper_status);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  int ret = ktlinkobj.GetOperStatusFromOperDownCriteria(
+    db_conn, UNC_DT_STATE, &k, &v, new_oper_status);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
-TEST_F(LogicalPortTest, GetOperStatusFromOperDownCriteria_DB_Success) {
+TEST_F(LogicalPortTest,
+    GetOperStatusFromOperDownCriteria_DB_Success) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
@@ -855,12 +1003,15 @@ TEST_F(LogicalPortTest, GetOperStatusFromOperDownCriteria_DB_Success) {
   Kt_LogicalPort ktlinkobj;
   UpplLogicalPortOperStatus new_oper_status = UPPL_LOGICAL_PORT_OPER_UNKNOWN;
   OdbcmConnectionHandler *db_conn = NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret = ktlinkobj.GetOperStatusFromOperDownCriteria(db_conn,UNC_DT_STATE,&k,&v,new_oper_status);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktlinkobj.GetOperStatusFromOperDownCriteria(
+    db_conn, UNC_DT_STATE, &k, &v, new_oper_status);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, HandleDriverAlarms_AlaramOtherThanUNC_SUBDOMAIN_SPLIT) {
+TEST_F(LogicalPortTest,
+    HandleDriverAlarms_AlaramOtherThanUNC_SUBDOMAIN_SPLIT) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
@@ -869,14 +1020,15 @@ TEST_F(LogicalPortTest, HandleDriverAlarms_AlaramOtherThanUNC_SUBDOMAIN_SPLIT) {
   uint32_t oper_type = UNC_OP_CREATE;
   vector<void *> obj_key_struct;
   Kt_LogicalPort ktlinkobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktlinkobj.HandleDriverAlarms(db_conn,UNC_DT_STATE,alarm_type,oper_type,&k,&v);
-  EXPECT_EQ(UPPL_RC_ERR_BAD_REQUEST, ret);
-
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktlinkobj.HandleDriverAlarms(
+    db_conn, UNC_DT_STATE, alarm_type, oper_type, &k, &v);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_BAD_REQUEST, ret);
 }
 
-//Unable to get current oper_status from db
-TEST_F(LogicalPortTest, HandleDriverAlarms_UNC_SUBDOMAIN_SPLIT_01) {
+// Unable to get current oper_status from db
+TEST_F(LogicalPortTest,
+    HandleDriverAlarms_UNC_SUBDOMAIN_SPLIT_01) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
@@ -885,14 +1037,17 @@ TEST_F(LogicalPortTest, HandleDriverAlarms_UNC_SUBDOMAIN_SPLIT_01) {
   uint32_t oper_type = UNC_OP_CREATE;
   vector<void *> obj_key_struct;
   Kt_LogicalPort ktlinkobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  int ret =  ktlinkobj.HandleDriverAlarms(db_conn,UNC_DT_STATE,alarm_type,oper_type,&k,&v);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  int ret = ktlinkobj.HandleDriverAlarms(
+    db_conn, UNC_DT_STATE, alarm_type, oper_type, &k, &v);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//operstatus new and old naot same
-TEST_F(LogicalPortTest, HandleDriverAlarms_UNC_SUBDOMAIN_SPLIT_02) {
+// operstatus new and old naot same
+TEST_F(LogicalPortTest,
+    HandleDriverAlarms_UNC_SUBDOMAIN_SPLIT_02) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
@@ -901,14 +1056,17 @@ TEST_F(LogicalPortTest, HandleDriverAlarms_UNC_SUBDOMAIN_SPLIT_02) {
   uint32_t oper_type = UNC_OP_CREATE;
   vector<void *> obj_key_struct;
   Kt_LogicalPort ktlinkobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktlinkobj.HandleDriverAlarms(db_conn,UNC_DT_STATE,alarm_type,oper_type,&k,&v);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktlinkobj.HandleDriverAlarms(
+    db_conn, UNC_DT_STATE, alarm_type, oper_type, &k, &v);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//Update oper_status
-TEST_F(LogicalPortTest, HandleDriverAlarms_UNC_SUBDOMAIN_SPLIT_03) {
+// Update oper_status
+TEST_F(LogicalPortTest,
+    HandleDriverAlarms_UNC_SUBDOMAIN_SPLIT_03) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
@@ -917,13 +1075,16 @@ TEST_F(LogicalPortTest, HandleDriverAlarms_UNC_SUBDOMAIN_SPLIT_03) {
   uint32_t oper_type = UNC_OP_DELETE;
   vector<void *> obj_key_struct;
   Kt_LogicalPort ktlinkobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktlinkobj.HandleDriverAlarms(db_conn,UNC_DT_STATE,alarm_type,oper_type,&k,&v);
-  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktlinkobj.HandleDriverAlarms(
+    db_conn, UNC_DT_STATE, alarm_type, oper_type, &k, &v);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
-TEST_F(LogicalPortTest, HandleDriverAlarms_UNC_SUBDOMAIN_SPLIT_04) {
+TEST_F(LogicalPortTest,
+    HandleDriverAlarms_UNC_SUBDOMAIN_SPLIT_04) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
@@ -932,130 +1093,155 @@ TEST_F(LogicalPortTest, HandleDriverAlarms_UNC_SUBDOMAIN_SPLIT_04) {
   uint32_t oper_type = UNC_OP_UPDATE;
   vector<void *> obj_key_struct;
   Kt_LogicalPort ktlinkobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktlinkobj.HandleDriverAlarms(db_conn,UNC_DT_STATE,alarm_type,oper_type,&k,&v);
-  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktlinkobj.HandleDriverAlarms(
+    db_conn, UNC_DT_STATE, alarm_type, oper_type, &k, &v);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
-TEST_F(LogicalPortTest, NotifyOperStatus_success) {
+TEST_F(LogicalPortTest,
+    NotifyOperStatus_success) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
   vector<OperStatusHolder> refer;
   Kt_LogicalPort ktlinkobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktlinkobj.NotifyOperStatus(db_conn,UNC_DT_STATE,&k,&v,refer);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktlinkobj.NotifyOperStatus(
+    db_conn, UNC_DT_STATE, &k, &v, refer);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, NotifyOperStaus_valstructureNull) {
+TEST_F(LogicalPortTest,
+    NotifyOperStaus_valstructureNull) {
   key_logical_port_t k;
-  val_logical_port_st_t *v=NULL;
+  val_logical_port_st_t *v = NULL;
   memset(&k, 0, sizeof(key_logical_port_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
   vector<OperStatusHolder> refer;
   Kt_LogicalPort ktlinkobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktlinkobj.NotifyOperStatus(db_conn,UNC_DT_STATE,&k,v,refer);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktlinkobj.NotifyOperStatus(
+    db_conn, UNC_DT_STATE, &k, v, refer);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, GetAllPortId_va) {
+TEST_F(LogicalPortTest,
+    GetAllPortId_va) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
-  string controller_name1 =  reinterpret_cast<char *> (pkName1_ctr);
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
+  string controller_name1 = reinterpret_cast<char *> (pkName1_ctr);
   string switch_id1 = reinterpret_cast<char *> (pkName1_logicalport);
   string domain_name1 = reinterpret_cast<char *> (pkName1_domain);
   vector <string> logical_port_id1;
   Kt_LogicalPort ktlinkobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret = UPPL_RC_SUCCESS;
-  ktlinkobj.GetAllPortId(db_conn,UNC_DT_STATE,controller_name1,switch_id1,domain_name1,logical_port_id1,true);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = UNC_RC_SUCCESS;
+  ktlinkobj.GetAllPortId(db_conn, UNC_DT_STATE, controller_name1,
+     switch_id1, domain_name1, logical_port_id1, true);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, GetAllPortId_GetSibling) {
+TEST_F(LogicalPortTest,
+    GetAllPortId_GetSibling) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
-  string controller_name1 =  reinterpret_cast<char *> (pkName1_ctr);
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
+  string controller_name1 = reinterpret_cast<char *> (pkName1_ctr);
   string switch_id1 = reinterpret_cast<char *> (pkName1_logicalport);
   string domain_name1 = reinterpret_cast<char *> (pkName1_domain);
   vector <string> logical_port_id1;
   Kt_LogicalPort ktlinkobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETSIBLINGROWS, ODBCM_RC_SUCCESS);
-  int ret = UPPL_RC_SUCCESS;
-  ktlinkobj.GetAllPortId(db_conn,UNC_DT_STATE,controller_name1,switch_id1,domain_name1,logical_port_id1,true);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETSIBLINGROWS, ODBCM_RC_SUCCESS);
+  int ret = UNC_RC_SUCCESS;
+  ktlinkobj.GetAllPortId(db_conn, UNC_DT_STATE, controller_name1,
+     switch_id1, domain_name1, logical_port_id1, true);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, GetAllPortId_IsSingleFALSE) {
+TEST_F(LogicalPortTest,
+    GetAllPortId_IsSingleFALSE) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
-  string controller_name1 =  reinterpret_cast<char *> (pkName1_ctr);
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
+  string controller_name1 = reinterpret_cast<char *> (pkName1_ctr);
   string switch_id1 = reinterpret_cast<char *> (pkName1_logicalport);
   string domain_name1 = reinterpret_cast<char *> (pkName1_domain);
   vector <string> logical_port_id1;
   Kt_LogicalPort ktlinkobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETSIBLINGROWS, ODBCM_RC_SUCCESS);
-  int ret = UPPL_RC_SUCCESS;
-  ktlinkobj.GetAllPortId(db_conn,UNC_DT_STATE,controller_name1,switch_id1,domain_name1,logical_port_id1,false);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETSIBLINGROWS, ODBCM_RC_SUCCESS);
+  int ret = UNC_RC_SUCCESS;
+  ktlinkobj.GetAllPortId(db_conn, UNC_DT_STATE, controller_name1,
+     switch_id1, domain_name1, logical_port_id1, false);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, HandleOperStatus_GetOneRow_SUCCESS) {
+TEST_F(LogicalPortTest,
+    HandleOperStatus_GetOneRow_SUCCESS) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
-  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));
-  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
+  memcpy(v.logical_port.switch_id, SWitchID, strlen(SWitchID));
+  memcpy(v.logical_port.physical_port_id, PhyPortID, strlen(PhyPortID));
   vector<OperStatusHolder> refer;
   Kt_LogicalPort ktlinkobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktlinkobj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v,refer,UNC_KT_LOGICAL_PORT);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktlinkobj.HandleOperStatus(
+    db_conn, UNC_DT_STATE, &k, &v, refer, UNC_KT_LOGICAL_PORT);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, HandleOperStatus_SwitchID_Validation) {
+TEST_F(LogicalPortTest,
+    HandleOperStatus_SwitchID_Validation) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
-  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
+  memcpy(v.logical_port.switch_id, SWitchID, strlen(SWitchID));
   v.logical_port.valid[kIdxLogicalPortSwitchId] = 1;
-  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));
-  //string key_instance = "controller1";
+  memcpy(v.logical_port.physical_port_id, PhyPortID, strlen(PhyPortID));
+  // string key_instance = "controller1";
 
   unc_key_type_t key_type = UNC_KT_CONTROLLER;
   uint8_t oper_status = 7;
@@ -1065,182 +1251,221 @@ TEST_F(LogicalPortTest, HandleOperStatus_SwitchID_Validation) {
   vector<OperStatusHolder> refer;
   refer.push_back(obj);
   Kt_LogicalPort ktlinkobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktlinkobj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v,refer,UNC_KT_LOGICAL_PORT);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktlinkobj.HandleOperStatus(
+    db_conn, UNC_DT_STATE, &k, &v, refer, UNC_KT_LOGICAL_PORT);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, GetPortOperStatus_DT_STATE) {
+TEST_F(LogicalPortTest,
+    GetPortOperStatus_DT_STATE) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   key_port_t obj_key_port;
   memset(&obj_key_port, 0, sizeof(key_port_t));
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
-  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));
-  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));
-  memcpy(obj_key_port.port_id,phy_port_id,strlen(phy_port_id));
-  memcpy(obj_key_port.sw_key.switch_id,switch_id,strlen(switch_id));
-  memcpy(obj_key_port.sw_key.ctr_key.controller_name,controller_name,strlen(controller_name));
-  
-  uint8_t port_oper_status =1;
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
+  memcpy(v.logical_port.switch_id, SWitchID, strlen(SWitchID));
+  memcpy(v.logical_port.physical_port_id, PhyPortID, strlen(PhyPortID));
+  memcpy(obj_key_port.port_id, phy_port_id, strlen(phy_port_id));
+  memcpy(obj_key_port.sw_key.switch_id, switch_id, strlen(switch_id));
+  memcpy(obj_key_port.sw_key.ctr_key.controller_name,
+     controller_name, strlen(controller_name));
+
+  uint8_t port_oper_status  = 1;
   uint32_t data_type = UNC_DT_STATE;
   Kt_LogicalPort ktlinkobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktlinkobj.GetPortOperStatus(db_conn,obj_key_port,&port_oper_status,data_type);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktlinkobj.GetPortOperStatus(
+    db_conn, obj_key_port, &port_oper_status, data_type);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, GetPortOperStatus_DT_INVALID) {
+TEST_F(LogicalPortTest,
+    GetPortOperStatus_DT_INVALID) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   key_port_t obj_key_port;
   memset(&obj_key_port, 0, sizeof(key_port_t));
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
-  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));
-  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));
-  memcpy(obj_key_port.port_id,phy_port_id,strlen(phy_port_id));
-  memcpy(obj_key_port.sw_key.switch_id,switch_id,strlen(switch_id));
-  memcpy(obj_key_port.sw_key.ctr_key.controller_name,controller_name,strlen(controller_name));
-  uint8_t port_oper_status =1;
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
+  memcpy(v.logical_port.switch_id, SWitchID, strlen(SWitchID));
+  memcpy(v.logical_port.physical_port_id, PhyPortID, strlen(PhyPortID));
+  memcpy(obj_key_port.port_id, phy_port_id, strlen(phy_port_id));
+  memcpy(obj_key_port.sw_key.switch_id, switch_id, strlen(switch_id));
+  memcpy(obj_key_port.sw_key.ctr_key.controller_name,
+     controller_name, strlen(controller_name));
+  uint8_t port_oper_status  = 1;
   uint32_t data_type = UNC_DT_INVALID;
   Kt_LogicalPort ktlinkobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktlinkobj.GetPortOperStatus(db_conn,obj_key_port,&port_oper_status,data_type);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktlinkobj.GetPortOperStatus(
+    db_conn, obj_key_port, &port_oper_status, data_type);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, GetPortOperStatus_DT_CANDIDATE) {
+TEST_F(LogicalPortTest,
+    GetPortOperStatus_DT_CANDIDATE) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   key_port_t obj_key_port;
   memset(&obj_key_port, 0, sizeof(key_port_t));
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
-  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));
-  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));
-  memcpy(obj_key_port.port_id,phy_port_id,strlen(phy_port_id));
-  memcpy(obj_key_port.sw_key.switch_id,switch_id,strlen(switch_id));
-  memcpy(obj_key_port.sw_key.ctr_key.controller_name,controller_name,strlen(controller_name));
-  uint8_t port_oper_status =1;
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
+  memcpy(v.logical_port.switch_id, SWitchID, strlen(SWitchID));
+  memcpy(v.logical_port.physical_port_id, PhyPortID, strlen(PhyPortID));
+  memcpy(obj_key_port.port_id, phy_port_id, strlen(phy_port_id));
+  memcpy(obj_key_port.sw_key.switch_id, switch_id, strlen(switch_id));
+  memcpy(obj_key_port.sw_key.ctr_key.controller_name,
+     controller_name, strlen(controller_name));
+  uint8_t port_oper_status  = 1;
   uint32_t data_type = UNC_DT_CANDIDATE;
   Kt_LogicalPort ktlinkobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktlinkobj.GetPortOperStatus(db_conn,obj_key_port,&port_oper_status,data_type);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktlinkobj.GetPortOperStatus(
+    db_conn, obj_key_port, &port_oper_status, data_type);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, GetPortOperStatus_DT_RUNNING) {
+TEST_F(LogicalPortTest,
+    GetPortOperStatus_DT_RUNNING) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   key_port_t obj_key_port;
   memset(&obj_key_port, 0, sizeof(key_port_t));
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
-  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));
-  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));
-  memcpy(obj_key_port.port_id,phy_port_id,strlen(phy_port_id));
-  memcpy(obj_key_port.sw_key.switch_id,switch_id,strlen(switch_id));
-  memcpy(obj_key_port.sw_key.ctr_key.controller_name,controller_name,strlen(controller_name));
-  uint8_t port_oper_status =1;
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
+  memcpy(v.logical_port.switch_id, SWitchID, strlen(SWitchID));
+  memcpy(v.logical_port.physical_port_id, PhyPortID, strlen(PhyPortID));
+  memcpy(obj_key_port.port_id, phy_port_id, strlen(phy_port_id));
+  memcpy(obj_key_port.sw_key.switch_id, switch_id, strlen(switch_id));
+  memcpy(obj_key_port.sw_key.ctr_key.controller_name,
+     controller_name, strlen(controller_name));
+  uint8_t port_oper_status  = 1;
   uint32_t data_type = UNC_DT_RUNNING;
   Kt_LogicalPort ktlinkobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktlinkobj.GetPortOperStatus(db_conn,obj_key_port,&port_oper_status,data_type);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktlinkobj.GetPortOperStatus(
+    db_conn, obj_key_port, &port_oper_status, data_type);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, GetPortOperStatus_DT_STARTUP) {
+TEST_F(LogicalPortTest,
+    GetPortOperStatus_DT_STARTUP) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   key_port_t obj_key_port;
   memset(&obj_key_port, 0, sizeof(key_port_t));
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
-  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));
-  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));
-  memcpy(obj_key_port.port_id,phy_port_id,strlen(phy_port_id));
-  memcpy(obj_key_port.sw_key.switch_id,switch_id,strlen(switch_id));
-  memcpy(obj_key_port.sw_key.ctr_key.controller_name,controller_name,strlen(controller_name));
-  uint8_t port_oper_status =1;
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
+  memcpy(v.logical_port.switch_id, SWitchID, strlen(SWitchID));
+  memcpy(v.logical_port.physical_port_id, PhyPortID, strlen(PhyPortID));
+  memcpy(obj_key_port.port_id, phy_port_id, strlen(phy_port_id));
+  memcpy(obj_key_port.sw_key.switch_id, switch_id, strlen(switch_id));
+  memcpy(obj_key_port.sw_key.ctr_key.controller_name,
+         controller_name, strlen(controller_name));
+  uint8_t port_oper_status  = 1;
   uint32_t data_type = UNC_DT_STARTUP;
   Kt_LogicalPort ktlinkobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktlinkobj.GetPortOperStatus(db_conn,obj_key_port,&port_oper_status,data_type);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktlinkobj.GetPortOperStatus(
+    db_conn,
+     obj_key_port, &port_oper_status, data_type);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, GetPortOperStatus_DT_IMPORT) {
+TEST_F(LogicalPortTest,
+    GetPortOperStatus_DT_IMPORT) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   key_port_t obj_key_port;
   memset(&obj_key_port, 0, sizeof(key_port_t));
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
-  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));
-  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));
-  memcpy(obj_key_port.port_id,phy_port_id,strlen(phy_port_id));
-  memcpy(obj_key_port.sw_key.switch_id,switch_id,strlen(switch_id));
-  memcpy(obj_key_port.sw_key.ctr_key.controller_name,controller_name,strlen(controller_name));
-  uint8_t port_oper_status =1;
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
+  memcpy(v.logical_port.switch_id, SWitchID, strlen(SWitchID));
+  memcpy(v.logical_port.physical_port_id, PhyPortID, strlen(PhyPortID));
+  memcpy(obj_key_port.port_id, phy_port_id, strlen(phy_port_id));
+  memcpy(obj_key_port.sw_key.switch_id, switch_id, strlen(switch_id));
+  memcpy(obj_key_port.sw_key.ctr_key.controller_name,
+     controller_name, strlen(controller_name));
+  uint8_t port_oper_status  = 1;
   uint32_t data_type = UNC_DT_IMPORT;
   Kt_LogicalPort ktlinkobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktlinkobj.GetPortOperStatus(db_conn,obj_key_port,&port_oper_status,data_type);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktlinkobj.GetPortOperStatus(
+    db_conn, obj_key_port, &port_oper_status, data_type);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, GetPortOperStatus_DT_AUDIT) {
+TEST_F(LogicalPortTest,
+    GetPortOperStatus_DT_AUDIT) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   key_port_t obj_key_port;
   memset(&obj_key_port, 0, sizeof(key_port_t));
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
-  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));
-  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));
-  memcpy(obj_key_port.port_id,phy_port_id,strlen(phy_port_id));
-  memcpy(obj_key_port.sw_key.switch_id,switch_id,strlen(switch_id));
-  memcpy(obj_key_port.sw_key.ctr_key.controller_name,controller_name,strlen(controller_name));
-  uint8_t port_oper_status =1;
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
+  memcpy(v.logical_port.switch_id, SWitchID, strlen(SWitchID));
+  memcpy(v.logical_port.physical_port_id, PhyPortID, strlen(PhyPortID));
+  memcpy(obj_key_port.port_id, phy_port_id, strlen(phy_port_id));
+  memcpy(obj_key_port.sw_key.switch_id, switch_id, strlen(switch_id));
+  memcpy(obj_key_port.sw_key.ctr_key.controller_name,
+     controller_name, strlen(controller_name));
+  uint8_t port_oper_status  = 1;
   uint32_t data_type = UNC_DT_AUDIT;
   Kt_LogicalPort ktlinkobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktlinkobj.GetPortOperStatus(db_conn,obj_key_port,&port_oper_status,data_type);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktlinkobj.GetPortOperStatus(
+    db_conn, obj_key_port, &port_oper_status, data_type);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, PerformRead_Option1_SUCCESS) {
+TEST_F(LogicalPortTest,
+    PerformRead_Option1_SUCCESS) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
@@ -1249,7 +1474,7 @@ TEST_F(LogicalPortTest, PerformRead_Option1_SUCCESS) {
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_READ, UNC_DT_STATE);
   rh.key_type = UNC_KT_PORT;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -1259,14 +1484,19 @@ TEST_F(LogicalPortTest, PerformRead_Option1_SUCCESS) {
   sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);
   sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
   sess.stub_setAddOutput((uint32_t)0);
-  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_INVALID_OPTION1);
+  sess.stub_setAddOutput((uint32_t)UNC_UPPL_RC_ERR_INVALID_OPTION1);
   sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_PORT);
 
-  int ret =  ktlinkobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = ktlinkobj.PerformRead(
+    db_conn, (uint32_t)0, (uint32_t)0, &k, &v,
+    (uint32_t)UNC_DT_STATE, (uint32_t)UNC_OP_READ, sess,
+    (uint32_t)UNC_OPT1_DETAIL,
+    (uint32_t)UNC_OPT2_NONE, (uint32_t)1);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, PerformRead_Option2_SUCCESS) {
+TEST_F(LogicalPortTest,
+    PerformRead_Option2_SUCCESS) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
@@ -1275,7 +1505,7 @@ TEST_F(LogicalPortTest, PerformRead_Option2_SUCCESS) {
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_READ, UNC_DT_STATE);
   rh.key_type = UNC_KT_PORT;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -1285,14 +1515,18 @@ TEST_F(LogicalPortTest, PerformRead_Option2_SUCCESS) {
   sess.stub_setAddOutput((uint32_t)UNC_OPT1_DETAIL);
   sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
   sess.stub_setAddOutput((uint32_t)0);
-  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_INVALID_OPTION2);
+  sess.stub_setAddOutput((uint32_t)UNC_UPPL_RC_ERR_INVALID_OPTION2);
   sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_PORT);
 
-  int ret =  ktlinkobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)0);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = ktlinkobj.PerformRead(
+    db_conn, (uint32_t)0, (uint32_t)0, &k, &v,
+    (uint32_t)UNC_DT_STATE, (uint32_t)UNC_OP_READ, sess,
+    (uint32_t)UNC_OPT1_NORMAL, (uint32_t)UNC_OPT1_DETAIL, (uint32_t)0);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, PerformRead_Datatype_SUCCESS) {
+TEST_F(LogicalPortTest,
+    PerformRead_Datatype_SUCCESS) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
@@ -1301,7 +1535,7 @@ TEST_F(LogicalPortTest, PerformRead_Datatype_SUCCESS) {
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_READ, UNC_DT_STATE);
   rh.key_type = UNC_KT_PORT;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -1311,14 +1545,18 @@ TEST_F(LogicalPortTest, PerformRead_Datatype_SUCCESS) {
   sess.stub_setAddOutput((uint32_t)UNC_OPT1_DETAIL);
   sess.stub_setAddOutput((uint32_t)UNC_DT_RUNNING);
   sess.stub_setAddOutput((uint32_t)0);
-  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
+  sess.stub_setAddOutput((uint32_t)UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
   sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_PORT);
 
-  int ret =  ktlinkobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_RUNNING,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)0);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = ktlinkobj.PerformRead(
+    db_conn, (uint32_t)0, (uint32_t)0, &k, &v, (uint32_t)UNC_DT_RUNNING,
+    (uint32_t)UNC_OP_READ, sess, (uint32_t)UNC_OPT1_NORMAL,
+    (uint32_t)UNC_OPT2_NONE, (uint32_t)0);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, PerformRead_DB_SUCCESS) {
+TEST_F(LogicalPortTest,
+    PerformRead_DB_SUCCESS) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
@@ -1327,7 +1565,7 @@ TEST_F(LogicalPortTest, PerformRead_DB_SUCCESS) {
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_READ, UNC_DT_STATE);
   rh.key_type = UNC_KT_PORT;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -1337,209 +1575,245 @@ TEST_F(LogicalPortTest, PerformRead_DB_SUCCESS) {
   sess.stub_setAddOutput((uint32_t)UNC_OPT1_DETAIL);
   sess.stub_setAddOutput((uint32_t)UNC_DT_RUNNING);
   sess.stub_setAddOutput((uint32_t)0);
-  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
+  sess.stub_setAddOutput((uint32_t)UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
   sess.stub_setAddOutput((uint32_t)UNC_KT_LOGICAL_PORT);
 
-  int ret =  ktlinkobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_UPDATE,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)0);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = ktlinkobj.PerformRead(
+    db_conn, (uint32_t)0, (uint32_t)0, &k, &v, (uint32_t)UNC_DT_STATE,
+    (uint32_t)UNC_OP_UPDATE, sess, (uint32_t)UNC_OPT1_NORMAL,
+    (uint32_t)UNC_OPT2_NONE, (uint32_t)0);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, GetAllLogicalPort_LogicalPortNotAvailable) {
+TEST_F(LogicalPortTest,
+    GetAllLogicalPort_LogicalPortNotAvailable) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
-  string controller_name1 =  reinterpret_cast<char *> (pkName1_ctr);
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
+  string controller_name1 = reinterpret_cast<char *> (pkName1_ctr);
   string switch_id1 = reinterpret_cast<char *> (pkName1_logicalport);
   string domain_name1 = reinterpret_cast<char *> (pkName1_domain);
   string physicalportid = reinterpret_cast<char *> (PhyPortID);
   vector<key_logical_port_t> vectLogicalPortKey;
   vectLogicalPortKey.push_back(k);
   Kt_LogicalPort ktlinkobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret = UPPL_RC_SUCCESS;
-  ktlinkobj.GetAllLogicalPort(db_conn,controller_name1,domain_name1,switch_id1,physicalportid,vectLogicalPortKey,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = UNC_RC_SUCCESS;
+  ktlinkobj.GetAllLogicalPort(
+    db_conn, controller_name1, domain_name1,
+    switch_id1, physicalportid, vectLogicalPortKey, UNC_DT_STATE);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, GetAllLogicalPort_DBSUCCESS) {
+TEST_F(LogicalPortTest,
+    GetAllLogicalPort_DBSUCCESS) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
-  string controller_name1 =  reinterpret_cast<char *> (pkName1_ctr);
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
+  string controller_name1 = reinterpret_cast<char *> (pkName1_ctr);
   string switch_id1 = reinterpret_cast<char *> (pkName1_logicalport);
   string domain_name1 = reinterpret_cast<char *> (pkName1_domain);
   string physicalportid = reinterpret_cast<char *> (PhyPortID);
   vector<key_logical_port_t> vectLogicalPortKey;
   vectLogicalPortKey.push_back(k);
   Kt_LogicalPort ktlinkobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret = UPPL_RC_SUCCESS;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  ktlinkobj.GetAllLogicalPort(db_conn,controller_name1,domain_name1,switch_id1,physicalportid,vectLogicalPortKey,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = UNC_RC_SUCCESS;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  ktlinkobj.GetAllLogicalPort(
+    db_conn, controller_name1, domain_name1,
+    switch_id1, physicalportid, vectLogicalPortKey, UNC_DT_STATE);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, ValidatePortType_LP_SWITCH_SUCCESS) {
-  uint8_t port_type = 1;//1 for UPPL_LP_SWITCH
+TEST_F(LogicalPortTest,
+    ValidatePortType_LP_SWITCH_SUCCESS) {
+  uint8_t port_type = 1;  // 1 for UPPL_LP_SWITCH
   Kt_LogicalPort ktlinkobj;
   int ret = ktlinkobj.ValidatePortType(port_type);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, ValidatePortType_LP_PHYSICALPORT_SUCCESS) {
-  uint8_t port_type = 2;//1 for UPPL_LP_PHYSICAL_PORT
+TEST_F(LogicalPortTest,
+    ValidatePortType_LP_PHYSICALPORT_SUCCESS) {
+  uint8_t port_type = 2;  // 1 for UPPL_LP_PHYSICAL_PORT
   Kt_LogicalPort ktlinkobj;
   int ret = ktlinkobj.ValidatePortType(port_type);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, ValidatePortType_LP_TRUNKPORT_SUCCESS) {
-  uint8_t port_type = 11;//1 for UPPL_LP_TRUNK_PORT
+TEST_F(LogicalPortTest,
+    ValidatePortType_LP_TRUNKPORT_SUCCESS) {
+  uint8_t port_type = 11;  // 1 for UPPL_LP_TRUNK_PORT
   Kt_LogicalPort ktlinkobj;
   int ret = ktlinkobj.ValidatePortType(port_type);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, ValidatePortType_LP_SUBDOMAIN_SUCCESS) {
-  uint8_t port_type = 12;//1 for UPPL_LP_SUBDOMAIN
+TEST_F(LogicalPortTest,
+    ValidatePortType_LP_SUBDOMAIN_SUCCESS) {
+  uint8_t port_type = 12;  // 1 for UPPL_LP_SUBDOMAIN
   Kt_LogicalPort ktlinkobj;
   int ret = ktlinkobj.ValidatePortType(port_type);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, ValidatePortType_LP_TUNNEL_SUCCESS) {
-  uint8_t port_type = 13;//1 for UPPL_LP_TUNNEL_ENDPOINT
+TEST_F(LogicalPortTest,
+    ValidatePortType_LP_TUNNEL_SUCCESS) {
+  uint8_t port_type = 13;  // 1 for UPPL_LP_TUNNEL_ENDPOINT
   Kt_LogicalPort ktlinkobj;
   int ret = ktlinkobj.ValidatePortType(port_type);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, ValidatePortType_FAILL_FOR_UNKNOWNPORT) {
-  uint8_t port_type = 3;//1 for UNKNOWNPORT
+TEST_F(LogicalPortTest,
+    ValidatePortType_FAILL_FOR_UNKNOWNPORT) {
+  uint8_t port_type = 3;  // 1 for UNKNOWNPORT
   Kt_LogicalPort ktlinkobj;
   int ret = ktlinkobj.ValidatePortType(port_type);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-TEST_F(LogicalPortTest, ReadBulk_ADDTOBUFFER_maxrepCT1) {
+TEST_F(LogicalPortTest,
+    ReadBulk_ADDTOBUFFER_maxrepCT1) {
   key_logical_port_t k;
   memset(&k, 0, sizeof(key_logical_port_t));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
   Kt_LogicalPort ktlinkobj;
   uint32_t max_rep_ct = 1;
   int child_index = 1;
-  pfc_bool_t parent_call=true;
-  pfc_bool_t is_read_next=true;
+  pfc_bool_t parent_call = true;
+  pfc_bool_t is_read_next = true;
   OdbcmConnectionHandler *db_conn = NULL;
   ReadRequest read_req;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
   int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct,
                                child_index, parent_call, is_read_next,
                                &read_req);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, ReadBulk_DB_ACCESS_ERROR) {
+TEST_F(LogicalPortTest,
+    ReadBulk_DB_ACCESS_ERROR) {
   key_logical_port_t k;
   memset(&k, 0, sizeof(key_logical_port_t));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
   Kt_LogicalPort ktlinkobj;
   uint32_t max_rep_ct = 2;
   int child_index = 1;
-  pfc_bool_t parent_call=true;
-  pfc_bool_t is_read_next=true;
+  pfc_bool_t parent_call = true;
+  pfc_bool_t is_read_next = true;
   OdbcmConnectionHandler *db_conn = NULL;
   ReadRequest read_req;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
   int ret = ktlinkobj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct,
                                child_index, parent_call, is_read_next,
                                &read_req);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-TEST_F(LogicalPortTest, ReadBulkInternal_RecordNot_Found) {
+TEST_F(LogicalPortTest,
+    ReadBulkInternal_RecordNot_Found) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&v, 0, sizeof(val_logical_port_st_t));
   memset(&k, 0, sizeof(key_logical_port_t));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
   Kt_LogicalPort ktlinkobj;
-  uint32_t max_rep_ct=1;
+  uint32_t max_rep_ct = 1;
   OdbcmConnectionHandler *db_conn = NULL;
   vector<val_logical_port_st_t> vect_val_logical_port_st;
   vector<key_logical_port_t> vect_logicalport_id;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
-  int ret = ktlinkobj.ReadBulkInternal(db_conn, &k, &v, UNC_DT_STATE, max_rep_ct, vect_val_logical_port_st, vect_logicalport_id);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
+  int ret = ktlinkobj.ReadBulkInternal(
+    db_conn, &k, &v, UNC_DT_STATE, max_rep_ct,
+    vect_val_logical_port_st, vect_logicalport_id);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-TEST_F(LogicalPortTest, PerformSyntaxValidation_ValStrutValidation_PortType_04) {
+TEST_F(LogicalPortTest,
+    PerformSyntaxValidation_ValStrutValidation_PortType_04) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
-  memcpy(v.logical_port.description,Desription,strlen(Desription));
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
+  memcpy(v.logical_port.description, Desription, strlen(Desription));
   uint8_t porttype = 3;
-  v.logical_port.port_type= porttype;
-  v.logical_port.valid[kIdxLogicalPortType]=1;
+  v.logical_port.port_type =  porttype;
+  v.logical_port.valid[kIdxLogicalPortType] = 1;
   Kt_LogicalPort ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
   uint32_t operation = UNC_OP_UPDATE;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktlinkobj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-TEST_F(LogicalPortTest, PerformSyntaxValidation_ValStrutValidation_oper_down_criteria_05) {
+TEST_F(LogicalPortTest,
+    PerformSyntaxValidation_ValStrutValidation_oper_down_criteria_05) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
-  memcpy(v.logical_port.description,Desription,strlen(Desription));
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
+  memcpy(v.logical_port.description, Desription, strlen(Desription));
   uint8_t operdowncriteria = 3;
-  v.logical_port.oper_down_criteria= operdowncriteria;
-  v.logical_port.valid[kIdxLogicalPortOperDownCriteria]=1;
+  v.logical_port.oper_down_criteria =  operdowncriteria;
+  v.logical_port.valid[kIdxLogicalPortOperDownCriteria] = 1;
   Kt_LogicalPort ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
   uint32_t operation = UNC_OP_UPDATE;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktlinkobj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-TEST_F(LogicalPortTest, PerformSyntaxValidation_ValStrutNULL) {
+TEST_F(LogicalPortTest,
+    PerformSyntaxValidation_ValStrutNULL) {
   key_logical_port_t k;
-  val_logical_port_st_t *v=NULL;
+  val_logical_port_st_t *v = NULL;
   memset(&k, 0, sizeof(key_logical_port_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
   Kt_LogicalPort ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
   uint32_t operation = UNC_OP_UPDATE;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktlinkobj.PerformSyntaxValidation(
+    db_conn, &k, v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, ReadInternal_max_rep_ct) {
+TEST_F(LogicalPortTest,
+    ReadInternal_max_rep_ct) {
   key_logical_port_t k;
   memset(&k, 0, sizeof(k));
   vector<void *> vectVal_logicalport;
@@ -1549,12 +1823,15 @@ TEST_F(LogicalPortTest, ReadInternal_max_rep_ct) {
   Kt_LogicalPort ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktlinkobj.ReadInternal(db_conn,vectkey_logicalport,vectVal_logicalport,UNC_DT_STATE,UNC_OP_CREATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktlinkobj.ReadInternal(
+    db_conn, vectkey_logicalport, vectVal_logicalport,
+    UNC_DT_STATE, UNC_OP_CREATE);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, ReadInternal_VAlStructNull) {
+TEST_F(LogicalPortTest,
+    ReadInternal_VAlStructNull) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(k));
@@ -1566,141 +1843,169 @@ TEST_F(LogicalPortTest, ReadInternal_VAlStructNull) {
   Kt_LogicalPort ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktlinkobj.ReadInternal(db_conn,vectkey_logicalport,vectVal_logicalport,UNC_DT_STATE,UNC_OP_READ);
-  EXPECT_EQ(ODBCM_RC_MORE_ROWS_FOUND, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktlinkobj.ReadInternal(
+    db_conn, vectkey_logicalport,
+    vectVal_logicalport, UNC_DT_STATE, UNC_OP_READ);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
-TEST_F(LogicalPortTest, HandleOperStatus_NotSuccess) {
+TEST_F(LogicalPortTest,
+    HandleOperStatus_NotSuccess) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
-  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
+  memcpy(v.logical_port.switch_id, SWitchID, strlen(SWitchID));
   v.logical_port.valid[kIdxLogicalPortPhysicalPortId] = 1;
-  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));
-  //string key_instance = "controller1";
+  memcpy(v.logical_port.physical_port_id, PhyPortID, strlen(PhyPortID));
+  // string key_instance = "controller1";
   unc_key_type_t key_type = UNC_KT_CONTROLLER;
-  uint8_t oper_status =0;
+  uint8_t oper_status  = 0;
   key_ctr_t ctrkey;
   ctrkey = k.domain_key.ctr_key;
   OperStatusHolder obj(key_type, &ctrkey, oper_status);
   vector<OperStatusHolder> refer;
   refer.push_back(obj);
   Kt_LogicalPort ktlinkobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  int ret =  ktlinkobj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v,refer,UNC_KT_LOGICAL_PORT);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  int ret = ktlinkobj.HandleOperStatus(
+    db_conn, UNC_DT_STATE, &k, &v, refer, UNC_KT_LOGICAL_PORT);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, HandleOperStatus_GetOneRow_FAILED) {
+TEST_F(LogicalPortTest,
+    HandleOperStatus_GetOneRow_FAILED) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
-  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
+  memcpy(v.logical_port.switch_id, SWitchID, strlen(SWitchID));
   v.logical_port.valid[kIdxLogicalPortPhysicalPortId] = 1;
-  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));
+  memcpy(v.logical_port.physical_port_id, PhyPortID, strlen(PhyPortID));
   vector<OperStatusHolder> refer;
   Kt_LogicalPort ktlinkobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  int ret =  ktlinkobj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v,refer,UNC_KT_LOGICAL_PORT);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  int ret = ktlinkobj.HandleOperStatus(
+    db_conn, UNC_DT_STATE, &k, &v, refer, UNC_KT_LOGICAL_PORT);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, HandleOperStatus_GetOneRow_SUCCESS_CONTROLLERUP) {
+TEST_F(LogicalPortTest,
+    HandleOperStatus_GetOneRow_SUCCESS_CONTROLLERUP) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
-  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
+  memcpy(v.logical_port.switch_id, SWitchID, strlen(SWitchID));
   v.logical_port.valid[kIdxLogicalPortPhysicalPortId] = 1;
-  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));
+  memcpy(v.logical_port.physical_port_id, PhyPortID, strlen(PhyPortID));
   string key_instance = "controller1";
   unc_key_type_t key_type = UNC_KT_CONTROLLER;
-  uint8_t oper_status =7;
+  uint8_t oper_status  = 7;
   key_ctr_t ctrkey;
   ctrkey = k.domain_key.ctr_key;
   OperStatusHolder obj(key_type, &ctrkey, oper_status);
   vector<OperStatusHolder> refer;
   refer.push_back(obj);
   Kt_LogicalPort ktlinkobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret =  ktlinkobj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v,refer,UNC_KT_LOGICAL_PORT);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  int ret = ktlinkobj.HandleOperStatus(
+    db_conn, UNC_DT_STATE, &k, &v, refer, UNC_KT_LOGICAL_PORT);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, HandleOperDownCriteriaFromPortStatus_KEY_STRUCT_NULL) {
+TEST_F(LogicalPortTest,
+    HandleOperDownCriteriaFromPortStatus_KEY_STRUCT_NULL) {
   key_logical_port_t *k = NULL;
   val_logical_port_st_t v;
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));
-  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));
+  memcpy(v.logical_port.switch_id, SWitchID, strlen(SWitchID));
+  memcpy(v.logical_port.physical_port_id, PhyPortID, strlen(PhyPortID));
   Kt_LogicalPort ktlinkobj;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   pfc_bool_t is_delete_call = true;
   vector<uint32_t> vectOperStatus;
-  int ret =  ktlinkobj.HandleOperDownCriteriaFromPortStatus(db_conn,UNC_DT_STATE,k,&v,vectOperStatus,is_delete_call);
-  EXPECT_EQ(UPPL_RC_ERR_BAD_REQUEST, ret);
+  int ret = ktlinkobj.HandleOperDownCriteriaFromPortStatus(
+    db_conn, UNC_DT_STATE, k, &v, vectOperStatus, is_delete_call);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_BAD_REQUEST, ret);
 }
 
-TEST_F(LogicalPortTest, HandleOperDownCriteriaFromPortStatus_Key_struct_success) {
+TEST_F(LogicalPortTest,
+    HandleOperDownCriteriaFromPortStatus_Key_struct_success) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
-  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));
-  memcpy(v.logical_port.physical_port_id,PhyPortID,strlen(PhyPortID));
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
+  memcpy(v.logical_port.switch_id, SWitchID, strlen(SWitchID));
+  memcpy(v.logical_port.physical_port_id, PhyPortID, strlen(PhyPortID));
   Kt_LogicalPort ktlinkobj;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   pfc_bool_t is_delete_call = true;
   vector<uint32_t> vectOperStatus;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret =  ktlinkobj.HandleOperDownCriteriaFromPortStatus(db_conn,UNC_DT_STATE,&k,&v,vectOperStatus,is_delete_call);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  int ret = ktlinkobj.HandleOperDownCriteriaFromPortStatus(
+    db_conn, UNC_DT_STATE, &k, &v, vectOperStatus, is_delete_call);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, GetOperDownCriteria_Success) {
+TEST_F(LogicalPortTest,
+    GetOperDownCriteria_Success) {
   key_logical_port_t k;
   memset(&k, 0, sizeof(key_logical_port_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
   uint32_t oper_down_criteria = 1;
   Kt_LogicalPort ktlinkobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktlinkobj.GetOperDownCriteria(db_conn,UNC_DT_STATE,&k,oper_down_criteria);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktlinkobj.GetOperDownCriteria(
+    db_conn, UNC_DT_STATE, &k, oper_down_criteria);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-/*TEST_F(LogicalPortTest, HandleOperStatus_KeyStruct_NULL_Handdle) {
+/*TEST_F(LogicalPortTest,
+    HandleOperStatus_KeyStruct_NULL_Handdle) {
   key_logical_port_t k;
   val_logical_port_st_t v;
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
-  memcpy(v.logical_port.switch_id,SWitchID,strlen(SWitchID));
-  unc_key_type_t key_type_= UNC_KT_BOUNDARY;
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
+  memcpy(v.logical_port.switch_id, SWitchID, strlen(SWitchID));
+  unc_key_type_t key_type_ =  UNC_KT_BOUNDARY;
   string key_instance_ = "physical";
   uint8_t oper_status_ = 1;
   vector<OperStatusHolder> refer;
@@ -1708,48 +2013,59 @@ TEST_F(LogicalPortTest, GetOperDownCriteria_Success) {
   refer.push_back(key_instance_);
   refer.push_back(oper_status_);
   Kt_LogicalPort ktlinkobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktlinkobj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v,refer,UNC_KT_LOGICAL_PORT);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktlinkobj.HandleOperStatus(
+    db_conn, UNC_DT_STATE, &k, &v, refer, UNC_KT_LOGICAL_PORT);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }*/
 #if 0
-TEST_F(LogicalPortTest, PerformSyntaxValidation_ValueStructureNullCheck_06) { //Null check properly not handle for value structure
+TEST_F(LogicalPortTest,
+    PerformSyntaxValidation_ValueStructureNullCheck_06) {
+  // Null check properly not handle for value structure
   key_logical_port_t k;
-  val_logical_port_st_t *v =NULL;
+  val_logical_port_st_t *v  = NULL;
   memset(&k, 0, sizeof(key_logical_port_t));
   memset(&v, 0, sizeof(val_logical_port_st_t));
-  memcpy(k.domain_key.ctr_key.controller_name,pkName1_ctr,strlen(pkName1_ctr));
-  memcpy(k.domain_key.domain_name,pkName1_domain,strlen(pkName1_domain));
-  memcpy(k.port_id,pkName1_logicalport,strlen(pkName1_logicalport));
+  memcpy(k.domain_key.ctr_key.controller_name,
+     pkName1_ctr, strlen(pkName1_ctr));
+  memcpy(k.domain_key.domain_name, pkName1_domain, strlen(pkName1_domain));
+  memcpy(k.port_id, pkName1_logicalport, strlen(pkName1_logicalport));
   Kt_LogicalPort ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
   uint32_t operation = UNC_OP_CREATE;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktlinkobj.PerformSyntaxValidation(db_conn,&k,v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktlinkobj.PerformSyntaxValidation(
+    db_conn, &k, v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-TEST_F(LogicalPortTest, DeleteKeyInstance_supported_01) { //Bug in  HandleOperDownCriteriaFromPortStatus(return statement not handle,code crash)
+TEST_F(LogicalPortTest,
+  DeleteKeyInstance_supported_01) {
+  // Bug in  HandleOperDownCriteriaFromPortStatus(
+    // return statement not handle, code crash)
   key_logical_port_t *k = NULL;
-  //memset(&k, 0, sizeof(key_logical_port_t));
+  // memset(&k, 0, sizeof(key_logical_port_t));
   Kt_LogicalPort ktlinkobj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret = ktlinkobj.DeleteKeyInstance(db_conn, k, UNC_DT_STATE, UNC_KT_LOGICAL_PORT);
-  EXPECT_EQ(UPPL_RC_ERR_BAD_REQUEST, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktlinkobj.DeleteKeyInstance(
+    db_conn, k, UNC_DT_STATE, UNC_KT_LOGICAL_PORT);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_BAD_REQUEST, ret);
 }
 
-//Key-structure handle
-TEST_F(LogicalPortTest, HandleOperStatus_KeyStruct_NULL_Handdle) {
-  key_logical_port_t *k=NULL;
+// Key-structure handle
+TEST_F(LogicalPortTest,
+    HandleOperStatus_KeyStruct_NULL_Handdle) {
+  key_logical_port_t *k = NULL;
   val_logical_port_st_t v;
   memset(&v, 0, sizeof(val_logical_port_st_t));
   vector<OperStatusHolder> refer;
   Kt_LogicalPort ktlinkobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktlinkobj.HandleOperStatus(db_conn,UNC_DT_STATE,k,&v,refer,UNC_KT_LOGICAL_PORT);
-  EXPECT_EQ(UPPL_RC_ERR_BAD_REQUEST, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktlinkobj.HandleOperStatus(
+    db_conn, UNC_DT_STATE, k, &v, refer, UNC_KT_LOGICAL_PORT);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_BAD_REQUEST, ret);
 }
 #endif
index 1ba041e30c613ce32cd3bae2963f245dad558c9c..90182430e6268e0b31ef80a1aa73d0d1259ac664 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2013 NEC Corporation
+# Copyright (c) 2013-2014 NEC Corporation
 # All rights reserved.
 #
 # This program and the accompanying materials are made available under the
@@ -28,6 +28,7 @@ MISC_STUBDIR    = $(COMMON_STUB_PATH)/stub/misc
 UPPL_SRCDIR        = $(MODULE_SRCROOT)/uppl
 TCLIB_SRCDIR     = $(MODULE_SRCROOT)/tclib
 ALARM_SRCDIR     = $(MODULE_SRCROOT)/alarm
+CAPA_SRCDIR        = $(MODULE_SRCROOT)/capa
 
 # Define a list of directories that contain source files.
 ALT_SRCDIRS    = $(UPPL_SRCDIR) $(ODBC_STUBDIR) $(TCLIB_STUBDIR)
@@ -44,6 +45,8 @@ EXTRA_CXX_INCDIRS     = $(MODULE_SRCROOT)
 EXTRA_CXX_INCDIRS      += $(UPPL_SRCDIR)/include
 EXTRA_CXX_INCDIRS      += $(TCLIB_SRCDIR)/include
 EXTRA_CXX_INCDIRS      += $(ALARM_SRCDIR)/include
+EXTRA_CXX_INCDIRS      += $(CAPA_SRCDIR)/.
+EXTRA_CXX_INCDIRS      += $(CAPA_SRCDIR)/include
 
 CPPFLAGS       += -include ut_stub.h
 
@@ -82,6 +85,8 @@ UPPL_SOURCES  += physical_itc.cc
 UPPL_SOURCES   += physical_notification_manager.cc 
 UPPL_SOURCES   += unc_state_handler.cc 
 UPPL_SOURCES   += physicallayer.cc
+UPPL_SOURCES  += itc_kt_ctr_dataflow.cc
+UPPL_SOURCES  += itc_kt_dataflow.cc
 
 ODBC_SOURCES   = odbcm_mgr_stub.cc odbcm_utils_stub.cc
 TCLIB_SOURCES  = tclib_module.cc
index ae6ed595ccd3a5e1a3eb643e154deac05cd28884..fc11054d492a6cc469a94e9e408e971a653faa64 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -17,8 +17,7 @@ static PhysicalLayer  theInstance(NULL);
 static bool initialized = false;
 
 void
-PhysicalLayerStub::loadphysicallayer()
-{
+PhysicalLayerStub::loadphysicallayer() {
   Module::physical = &theInstance;
   if (!initialized) {
     initialized = true;
@@ -27,7 +26,6 @@ PhysicalLayerStub::loadphysicallayer()
 }
 
 void
-PhysicalLayerStub::unloadphysicallayer()
-{
+PhysicalLayerStub::unloadphysicallayer() {
   Module::physical = NULL;
 }
index 353f9ab207e1386a1d6c53aef1fcfe9894b315af..1b0dfcffa13c2322d330912fc3b29fab9af96a84 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -20,7 +20,7 @@
 #include <physicallayer.hh>
 
 class PhysicalLayerStub : public pfc::core::Module {
-public:
+ public:
   static void loadphysicallayer();
   static void unloadphysicallayer();
 };
index 07b8043034fb18aecc51f2f6f5d8b563bef3ffc1..4a50694387ec6668986a9135d2f0c417877cc586 100644 (file)
@@ -63,14 +63,13 @@ using namespace unc::tclib;
 using namespace unc::uppl::test;
 
 class PortTest
-  : public UpplTestEnv
-{
+  : public UpplTestEnv  {
 };
 
 // Can be changed based on testing need
-static char pkName1_ctr[] = "Controller1";
-static char pkName1_swtch[] = "0000-0000-0000-0001";
-static char pkName1_port[] = "ethernet:1";
+static char pkName1_ctr[]  =  "Controller1";
+static char pkName1_swtch[]  =  "0000-0000-0000-0001";
+static char pkName1_port[]  =  "ethernet:1";
 
 static void getKeyForKtPort1(key_port_t& k) {
   memset(&k, 0, sizeof(k));
@@ -81,65 +80,65 @@ static void getKeyForKtPort1(key_port_t& k) {
 
 static void getValForKtPort1(val_port_st_t& v) {
   memset(&v, 0, sizeof(v));
-  v.port.port_number = 223;
+  v.port.port_number  =  223;
   memcpy(v.port.description, "port description",
          strlen("port description"));  //  uint8_t description[128];
-  v.port.admin_status = 1;  //  uint8_t admin_status
-  v.direction = 1;      //  uint8_t direction
-  v.port.trunk_allowed_vlan = 1;  //  uint16_t trunk_allowed_vlan
-  v.oper_status = 1;
-  v.direction = 1;
+  v.port.admin_status  =  1;  //  uint8_t admin_status
+  v.direction  =  1;      //  uint8_t direction
+  v.port.trunk_allowed_vlan  =  1;  //  uint16_t trunk_allowed_vlan
+  v.oper_status  =  1;
+  v.direction  =  1;
   memcpy(v.mac_address, "port macAddr", strlen("port macAddr"));
-  v.duplex = 1;
-  v.speed = 1;
-  v.alarms_status = 1;
+  v.duplex  =  1;
+  v.speed  =  1;
+  v.alarms_status  =  1;
   memcpy(v.logical_port_id, "port logical_port_id",
          strlen("port logical_port_id"));
 }
 
 /* PerformSyntaxValidation when controller name is not given*/
 TEST_F(PortTest, PerformSyntaxValidation_No_CtrName_01) {
-
   key_port_t k;
   val_port_st v;
   Kt_Port ktportobj;
   getKeyForKtPort1(k);
   memset(k.sw_key.ctr_key.controller_name, '\0', 32);
-  uint32_t operation = UNC_OP_CREATE;
-  OdbcmConnectionHandler *db_conn =NULL;
+  uint32_t operation  =  UNC_OP_CREATE;
+  OdbcmConnectionHandler *db_conn  = NULL;
 
-  int ret =  ktportobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  int ret = ktportobj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 /* PerformSyntaxValidation when switch id is not given*/
 TEST_F(PortTest, PerformSyntaxValidation_No_SwitchId_02) {
-
   key_port_t k;
   val_port_st v;
   Kt_Port ktportobj;
   getKeyForKtPort1(k);
   memset(k.sw_key.switch_id, '\0', 256);
-  uint32_t operation = UNC_OP_CREATE;
-  OdbcmConnectionHandler *db_conn =NULL;
+  uint32_t operation  =  UNC_OP_CREATE;
+  OdbcmConnectionHandler *db_conn  = NULL;
 
-  int ret =  ktportobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  int ret = ktportobj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 /* PerformSyntaxValidation when Port id is not given */
 TEST_F(PortTest, PerformSyntaxValidation_No_PortId_03) {
-
   key_port_t k;
   val_port_st v;
   Kt_Port ktportobj;
   getKeyForKtPort1(k);
   memset(k.port_id, '\0', 32);
-  uint32_t operation = UNC_OP_CREATE;
-  OdbcmConnectionHandler *db_conn =NULL;
+  uint32_t operation  =  UNC_OP_CREATE;
+  OdbcmConnectionHandler *db_conn  = NULL;
 
-  int ret =  ktportobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  int ret = ktportobj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
 /* PerformSyntaxValidation for positive case */
@@ -150,11 +149,12 @@ TEST_F(PortTest, PerformSyntaxValidation_Pos_04) {
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  uint32_t operation = UNC_OP_CREATE;
-  OdbcmConnectionHandler *db_conn =NULL;
+  uint32_t operation  =  UNC_OP_CREATE;
+  OdbcmConnectionHandler *db_conn  = NULL;
 
-  int ret =  ktportobj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = ktportobj.PerformSyntaxValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /* PerformSemanticValidation when row already exists */
@@ -165,17 +165,19 @@ TEST_F(PortTest, PerformSemanticValidation_Create_Neg_01) {
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  uint32_t operation = UNC_OP_CREATE;
-  OdbcmConnectionHandler *db_conn =NULL;
+  uint32_t operation  =  UNC_OP_CREATE;
+  OdbcmConnectionHandler *db_conn  = NULL;
   vector<string> sw_vect_key_value;
   sw_vect_key_value.push_back(pkName1_ctr);
   sw_vect_key_value.push_back(pkName1_swtch);
   sw_vect_key_value.push_back(pkName1_port);
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  int ret = ktportobj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_STATE);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret  =  ktportobj.PerformSemanticValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
 
-  EXPECT_EQ(UPPL_RC_ERR_INSTANCE_EXISTS, ret);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_INSTANCE_EXISTS, ret);
 }
 
 /* PerformSemanticValidation when DB Connection error occurs for UPDATE */
@@ -186,17 +188,19 @@ TEST_F(PortTest, PerformSemanticValidation_update_neg_02) {
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  uint32_t operation = UNC_OP_UPDATE;
-  OdbcmConnectionHandler *db_conn =NULL;
+  uint32_t operation  =  UNC_OP_UPDATE;
+  OdbcmConnectionHandler *db_conn  = NULL;
   vector<string> sw_vect_key_value;
   sw_vect_key_value.push_back(pkName1_ctr);
   sw_vect_key_value.push_back(pkName1_swtch);
   sw_vect_key_value.push_back(pkName1_port);
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
-  int ret = ktportobj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_STATE);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
+  int ret  =  ktportobj.PerformSemanticValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
 
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 /* PerformSemanticValidation when DB error occurs for DELETE */
@@ -207,17 +211,19 @@ TEST_F(PortTest, PerformSemanticValidation_del_neg_03) {
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  uint32_t operation = UNC_OP_DELETE;
-  OdbcmConnectionHandler *db_conn =NULL;
+  uint32_t operation  =  UNC_OP_DELETE;
+  OdbcmConnectionHandler *db_conn  = NULL;
   vector<string> sw_vect_key_value;
   sw_vect_key_value.push_back(pkName1_ctr);
   sw_vect_key_value.push_back(pkName1_swtch);
   sw_vect_key_value.push_back(pkName1_port);
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
-  int ret = ktportobj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_STATE);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
+  int ret  =  ktportobj.PerformSemanticValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
 
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 /* PerformSemanticValidation when creating a row */
@@ -227,17 +233,19 @@ TEST_F(PortTest, PerformSemanticValidation_Create_pos_04) {
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  uint32_t operation = UNC_OP_CREATE;
-  OdbcmConnectionHandler *db_conn =NULL;
+  uint32_t operation  =  UNC_OP_CREATE;
+  OdbcmConnectionHandler *db_conn  = NULL;
   vector<string> sw_vect_key_value;
   sw_vect_key_value.push_back(pkName1_ctr);
   sw_vect_key_value.push_back(pkName1_swtch);
   sw_vect_key_value.push_back(pkName1_port);
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_NOT_EXISTS);
-  int ret = ktportobj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_STATE);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_NOT_EXISTS);
+  int ret  =  ktportobj.PerformSemanticValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
 
-  EXPECT_EQ(UPPL_RC_ERR_PARENT_DOES_NOT_EXIST, ret);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_PARENT_DOES_NOT_EXIST, ret);
 }
 
 /* PerformSemanticValidation when DB Connection error occurs for READ */
@@ -247,17 +255,19 @@ TEST_F(PortTest, PerformSemanticValidation_Read_neg_05) {
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  uint32_t operation = UNC_OP_READ;
-  OdbcmConnectionHandler *db_conn =NULL;
+  uint32_t operation  =  UNC_OP_READ;
+  OdbcmConnectionHandler *db_conn  = NULL;
   vector<string> sw_vect_key_value;
   sw_vect_key_value.push_back(pkName1_ctr);
   sw_vect_key_value.push_back(pkName1_swtch);
   sw_vect_key_value.push_back(pkName1_port);
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
-  int ret = ktportobj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_STATE);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
+  int ret  =  ktportobj.PerformSemanticValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
 
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 /* PerformSemanticValidation when Updating row successfully */
@@ -267,17 +277,19 @@ TEST_F(PortTest, PerformSemanticValidation_update_pos_06) {
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  uint32_t operation = UNC_OP_UPDATE;
-  OdbcmConnectionHandler *db_conn =NULL;
+  uint32_t operation  =  UNC_OP_UPDATE;
+  OdbcmConnectionHandler *db_conn  = NULL;
   vector<string> sw_vect_key_value;
   sw_vect_key_value.push_back(pkName1_ctr);
   sw_vect_key_value.push_back(pkName1_swtch);
   sw_vect_key_value.push_back(pkName1_port);
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  int ret = ktportobj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_STATE);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret  =  ktportobj.PerformSemanticValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
 
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /* PerformSemanticValidation when Deleting row successfully */
@@ -287,17 +299,19 @@ TEST_F(PortTest, PerformSemanticValidation_del_pos_07) {
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  uint32_t operation = UNC_OP_DELETE;
-  OdbcmConnectionHandler *db_conn =NULL;
+  uint32_t operation  =  UNC_OP_DELETE;
+  OdbcmConnectionHandler *db_conn  = NULL;
   vector<string> sw_vect_key_value;
   sw_vect_key_value.push_back(pkName1_ctr);
   sw_vect_key_value.push_back(pkName1_swtch);
   sw_vect_key_value.push_back(pkName1_port);
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  int ret = ktportobj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_STATE);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret  =  ktportobj.PerformSemanticValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
 
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 
@@ -308,15 +322,17 @@ TEST_F(PortTest, PerformSemanticValidation_read_pos_08) {
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  uint32_t operation = UNC_OP_READ;
-  OdbcmConnectionHandler *db_conn =NULL;
+  uint32_t operation  =  UNC_OP_READ;
+  OdbcmConnectionHandler *db_conn  = NULL;
   vector<string> sw_vect_key_value;
   sw_vect_key_value.push_back(pkName1_ctr);
   sw_vect_key_value.push_back(pkName1_swtch);
   sw_vect_key_value.push_back(pkName1_port);
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  int ret = ktportobj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_STATE);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret  =  ktportobj.PerformSemanticValidation(
+    db_conn, &k, &v, operation, UNC_DT_STATE);
 
   EXPECT_EQ(ODBCM_RC_SUCCESS, ret);
 }
@@ -328,17 +344,19 @@ TEST_F(PortTest, PerformSemanticValidation_Create_Import_neg_09) {
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  uint32_t operation = UNC_OP_CREATE;
-  OdbcmConnectionHandler *db_conn =NULL;
+  uint32_t operation  =  UNC_OP_CREATE;
+  OdbcmConnectionHandler *db_conn  = NULL;
   vector<string> sw_vect_key_value;
   sw_vect_key_value.push_back(pkName1_ctr);
   sw_vect_key_value.push_back(pkName1_swtch);
   sw_vect_key_value.push_back(pkName1_port);
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_SUCCESS);
-  int ret = ktportobj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_IMPORT);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_SUCCESS);
+  int ret  =  ktportobj.PerformSemanticValidation(
+    db_conn, &k, &v, operation, UNC_DT_IMPORT);
 
-  EXPECT_EQ(UPPL_RC_ERR_PARENT_DOES_NOT_EXIST, ret);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_PARENT_DOES_NOT_EXIST, ret);
 }
 
 /* HandleOperStatus when no key struct is given */
@@ -346,12 +364,12 @@ TEST_F(PortTest, HandleOperStatus_NoKeyStruct_01) {
   key_port_t *k;
   val_port_st *v;
   Kt_Port ktportobj;
-  k = NULL;
-  v = NULL;
-  OdbcmConnectionHandler *db_conn =NULL;
+  k  =  NULL;
+  v  =  NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
 
-  int ret =  ktportobj.HandleOperStatus(db_conn,UNC_DT_STATE,k,v);
-  EXPECT_EQ(UPPL_RC_ERR_BAD_REQUEST, ret);
+  int ret = ktportobj.HandleOperStatus(db_conn, UNC_DT_STATE, k, v);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_BAD_REQUEST, ret);
 }
 
 /* HandleOperStatus when GetOneRow fails */
@@ -361,11 +379,12 @@ TEST_F(PortTest, HandleOperStatus_GetOneRow_Fail_02) {
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  int ret =  ktportobj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  int ret = ktportobj.HandleOperStatus(db_conn, UNC_DT_STATE, &k, &v);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
 /* HandleOperStatus when GetOneRow is success */
@@ -375,11 +394,12 @@ TEST_F(PortTest, HandleOperStatus_GetOneRow_pos_03) {
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktportobj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v);
-  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktportobj.HandleOperStatus(db_conn, UNC_DT_STATE, &k, &v);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
 /* HandleOperStatus when GetBulkRows fail */
@@ -389,12 +409,14 @@ TEST_F(PortTest, HandleOperStatus_GetBulkRows_Fail_04) {
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
-  int ret =  ktportobj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
+  int ret = ktportobj.HandleOperStatus(db_conn, UNC_DT_STATE, &k, &v);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
 /* HandleOperStatus when GetBulkRows is success */
@@ -404,11 +426,13 @@ TEST_F(PortTest, HandleOperStatus_GetBulkRows_pos_05) {
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret =  ktportobj.HandleOperStatus(db_conn,UNC_DT_STATE,&k,&v);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  int ret = ktportobj.HandleOperStatus(db_conn, UNC_DT_STATE, &k, &v);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 /* SetOperStatus when UPDATEONEROW fails*/
@@ -417,11 +441,13 @@ TEST_F(PortTest, SetOperStatus_DbNeg_01) {
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_FAILED);
-  int ret =  ktportobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplPortOperStatus)1);
-  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_FAILED);
+  int ret = ktportobj.SetOperStatus(
+    db_conn, UNC_DT_STATE, &k, (UpplPortOperStatus)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
 /* SetOperStatus when UPDATEONEROW fails*/
@@ -430,11 +456,13 @@ TEST_F(PortTest, SetOperStatus_DbNeg_02) {
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
-  int ret =  ktportobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplPortOperStatus)0);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
+  int ret = ktportobj.SetOperStatus(
+    db_conn, UNC_DT_STATE, &k, (UpplPortOperStatus)0);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /* SetOperStatus when UPDATEONEROW is SUCCESS*/
@@ -443,11 +471,13 @@ TEST_F(PortTest, SetOperStatus_Db_Pos_03) {
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktportobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplPortOperStatus)0);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktportobj.SetOperStatus(
+    db_conn, UNC_DT_STATE, &k, (UpplPortOperStatus)0);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /* SetOperStatus when UPDATEONEROW is SUCCESS and GETONEROW fails*/
@@ -456,47 +486,58 @@ TEST_F(PortTest, SetOperStatus_Pos_04) {
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  int ret =  ktportobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplPortOperStatus)0);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  int ret = ktportobj.SetOperStatus(
+    db_conn, UNC_DT_STATE, &k, (UpplPortOperStatus)0);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-/* SetOperStatus when UPDATEONEROW and GETONEROW is SUCCESS and addOutput err value is 0*/
+/* SetOperStatus when UPDATEONEROW and GETONEROW is SUCCESS
+ * and addOutput err value is 0*/
 TEST_F(PortTest, SetOperStatus_Pos_05) {
   key_port_t k;
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)UNC_OP_UPDATE);
   sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
   sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktportobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplPortOperStatus)1);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktportobj.SetOperStatus(
+    db_conn, UNC_DT_STATE, &k, (UpplPortOperStatus)1);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-/* SetOperStatus when UPDATEONEROW and GETONEROW is SUCCESS and addOutput err value is 0*/
+/* SetOperStatus when UPDATEONEROW and GETONEROW is SUCCESS
+ * and addOutput err value is 0*/
 TEST_F(PortTest, SetOperStatus_Pos_06) {
   key_port_t k;
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  
+  OdbcmConnectionHandler *db_conn  = NULL;
+
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktportobj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplPortOperStatus)1);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktportobj.SetOperStatus(
+    db_conn, UNC_DT_STATE, &k, (UpplPortOperStatus)1);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /* FrameValidValue when string is more than 48 characters */
@@ -506,7 +547,7 @@ TEST_F(PortTest, FrameValidValue_01) {
 
   string abd("01231234567");
   Kt_Port ktportobj;
-  ktportobj.FrameValidValue(abd,v);
+  ktportobj.FrameValidValue(abd, v);
 
   for (uint32_t i(0); i < PFC_ARRAY_CAPACITY(v.port.valid); i++) {
     ASSERT_EQ(i, v.port.valid[i]);
@@ -524,7 +565,7 @@ TEST_F(PortTest, PerformRead_Neg_Option1_01) {
   memset(v.valid, '\0', sizeof(v.valid));
   memset(v.port.valid, '\0', sizeof(v.port.valid));
   Kt_Port ktportobj;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -536,8 +577,11 @@ TEST_F(PortTest, PerformRead_Neg_Option1_01) {
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
 
-  int ret =  ktportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret = ktportobj.PerformRead(db_conn, (uint32_t)0,
+    (uint32_t)0, &k, &v, (uint32_t)UNC_DT_STATE,
+    (uint32_t)UNC_OP_READ, sess,
+    (uint32_t)UNC_OPT1_DETAIL, (uint32_t)UNC_OPT2_NONE, (uint32_t)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 /*PerformRead with negative option1 */
@@ -547,7 +591,33 @@ TEST_F(PortTest, PerformRead_Neg_Option1_02) {
   memset(v.valid, '\0', sizeof(v.valid));
   memset(v.port.valid, '\0', sizeof(v.port.valid));
   Kt_Port ktportobj;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
+  ServerSession sess;
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
+  sess.stub_setAddOutput((uint32_t)1);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT1_DETAIL);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);
+  sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
+  sess.stub_setAddOutput((uint32_t)UNC_UPPL_RC_ERR_NOT_SUPPORTED_BY_STANDBY);
+  sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
+
+  int ret = ktportobj.PerformRead(db_conn, (uint32_t)0,
+    (uint32_t)0, &k, &v, (uint32_t)UNC_DT_STATE,
+    (uint32_t)UNC_OP_READ, sess, (uint32_t)UNC_OPT1_DETAIL,
+    (uint32_t)UNC_OPT2_NONE, (uint32_t)1);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
+}
+
+/*PerformRead with negative option1 */
+TEST_F(PortTest, PerformRead_Neg_Option1_WriteError) {
+  key_port_t k;
+  val_port_st_t v;
+  memset(v.valid, '\0', sizeof(v.valid));
+  memset(v.port.valid, '\0', sizeof(v.port.valid));
+  Kt_Port ktportobj;
+  OdbcmConnectionHandler *db_conn  = NULL;
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -556,23 +626,27 @@ TEST_F(PortTest, PerformRead_Neg_Option1_02) {
   sess.stub_setAddOutput((uint32_t)UNC_OPT1_DETAIL);
   sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);
   sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
-  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_INVALID_OPTION1);
+  sess.stub_setAddOutput((uint32_t)1);
   sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
 
-  int ret =  ktportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = ktportobj.PerformRead(db_conn, (uint32_t)0,
+    (uint32_t)0, &k, &v, (uint32_t)UNC_DT_STATE,
+    (uint32_t)UNC_OP_READ, sess,
+    (uint32_t)UNC_OPT1_DETAIL, (uint32_t)UNC_OPT2_NONE, (uint32_t)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
+
 /*PerformRead with unsupported datatype */
 TEST_F(PortTest, PerformRead_unsupported_datatype_03) {
-  key_port_t k ;
+  key_port_t k;
   val_port_st_t v;
   memset(&v, 0, sizeof(v));
   getKeyForKtPort1(k);
   getValForKtPort1(v);
 
   Kt_Port ktportobj;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -584,8 +658,10 @@ TEST_F(PortTest, PerformRead_unsupported_datatype_03) {
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
 
-  int ret =  ktportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_CANDIDATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret = ktportobj.PerformRead(db_conn, (uint32_t)0,
+    (uint32_t)0, &k, &v, (uint32_t)UNC_DT_CANDIDATE, (uint32_t)UNC_OP_READ,
+     sess, (uint32_t)UNC_OPT1_DETAIL, (uint32_t)UNC_OPT2_NONE, (uint32_t)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 /*PerformRead with negative option2 */
@@ -595,7 +671,7 @@ TEST_F(PortTest, PerformRead_neg_Option2_04) {
   memset(v.valid, '\0', sizeof(v.valid));
   memset(v.port.valid, '\0', sizeof(v.port.valid));
   Kt_Port ktportobj;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -607,8 +683,11 @@ TEST_F(PortTest, PerformRead_neg_Option2_04) {
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
 
-  int ret =  ktportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_MAC_ENTRY_STATIC,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret = ktportobj.PerformRead(db_conn, (uint32_t)0,
+    (uint32_t)0, &k, &v, (uint32_t)UNC_DT_STATE,
+    (uint32_t)UNC_OP_READ, sess, (uint32_t)UNC_OPT1_NORMAL,
+    (uint32_t)UNC_OPT2_MAC_ENTRY_STATIC, (uint32_t)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 /*PerformRead with negative option2 */
@@ -618,7 +697,7 @@ TEST_F(PortTest, PerformRead_neg_Option2_05) {
   memset(v.valid, '\0', sizeof(v.valid));
   memset(v.port.valid, '\0', sizeof(v.port.valid));
   Kt_Port ktportobj;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -627,11 +706,14 @@ TEST_F(PortTest, PerformRead_neg_Option2_05) {
   sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);
   sess.stub_setAddOutput((uint32_t)UNC_OPT2_MAC_ENTRY_STATIC);
   sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
-  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_INVALID_OPTION2);
+  sess.stub_setAddOutput((uint32_t)UNC_UPPL_RC_ERR_INVALID_OPTION2);
   sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
 
-  int ret =  ktportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_MAC_ENTRY_STATIC,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = ktportobj.PerformRead(db_conn, (uint32_t)0,
+    (uint32_t)0, &k, &v, (uint32_t)UNC_DT_STATE,
+    (uint32_t)UNC_OP_READ, sess, (uint32_t)UNC_OPT1_NORMAL,
+    (uint32_t)UNC_OPT2_MAC_ENTRY_STATIC, (uint32_t)1);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /*PerformRead with positive option1 */
@@ -642,7 +724,7 @@ TEST_F(PortTest, PerformRead_POS_Option2_06) {
   memset(&v, 0, sizeof(v));
 
   Kt_Port ktportobj;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -654,8 +736,11 @@ TEST_F(PortTest, PerformRead_POS_Option2_06) {
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
 
-  int ret =  ktportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret = ktportobj.PerformRead(db_conn, (uint32_t)0,
+    (uint32_t)0, &k, &v, (uint32_t)UNC_DT_STATE,
+    (uint32_t)UNC_OP_READ, sess, (uint32_t)UNC_OPT1_NORMAL,
+    (uint32_t)UNC_OPT2_NONE, (uint32_t)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 /*PerformRead with positive option2 */
@@ -666,8 +751,9 @@ TEST_F(PortTest, PerformRead_POS_Option2_07) {
   memset(&v, 0, sizeof(v));
 
   Kt_Port ktportobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -676,11 +762,14 @@ TEST_F(PortTest, PerformRead_POS_Option2_07) {
   sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);
   sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);
   sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
-  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_DB_GET);
+  sess.stub_setAddOutput((uint32_t)UNC_UPPL_RC_ERR_DB_GET);
   sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
 
-  int ret =  ktportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = ktportobj.PerformRead(db_conn, (uint32_t)0,
+    (uint32_t)0, &k, &v, (uint32_t)UNC_DT_STATE,
+    (uint32_t)UNC_OP_READ, sess, (uint32_t)UNC_OPT1_NORMAL,
+    (uint32_t)UNC_OPT2_NONE, (uint32_t)1);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /*PerformRead with positive option2 */
@@ -691,8 +780,9 @@ TEST_F(PortTest, PerformRead_POS_Option2_08) {
   memset(&v, 0, sizeof(v));
 
   Kt_Port ktportobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -701,11 +791,14 @@ TEST_F(PortTest, PerformRead_POS_Option2_08) {
   sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);
   sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);
   sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
-  sess.stub_setAddOutput((uint32_t)UPPL_RC_SUCCESS);
+  sess.stub_setAddOutput((uint32_t)UNC_RC_SUCCESS);
   sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
 
-  int ret =  ktportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = ktportobj.PerformRead(db_conn, (uint32_t)0,
+    (uint32_t)0, &k, &v, (uint32_t)UNC_DT_STATE,
+    (uint32_t)UNC_OP_READ, sess, (uint32_t)UNC_OPT1_NORMAL,
+    (uint32_t)UNC_OPT2_NONE, (uint32_t)1);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /*PerformRead with option2 as Neighbor */
@@ -716,7 +809,7 @@ TEST_F(PortTest, PerformRead_Neighbor_09) {
   memset(&v, 0, sizeof(v));
 
   Kt_Port ktportobj;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -728,8 +821,11 @@ TEST_F(PortTest, PerformRead_Neighbor_09) {
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
 
-  int ret =  ktportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NEIGHBOR,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret = ktportobj.PerformRead(db_conn, (uint32_t)0,
+    (uint32_t)0, &k, &v, (uint32_t)UNC_DT_STATE,
+    (uint32_t)UNC_OP_READ, sess, (uint32_t)UNC_OPT1_NORMAL,
+    (uint32_t)UNC_OPT2_NEIGHBOR, (uint32_t)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 /*PerformRead with positive option2 Neighbor */
@@ -740,8 +836,9 @@ TEST_F(PortTest, PerformRead_Neighbor_10) {
   memset(&v, 0, sizeof(v));
 
   Kt_Port ktportobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -750,11 +847,14 @@ TEST_F(PortTest, PerformRead_Neighbor_10) {
   sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);
   sess.stub_setAddOutput((uint32_t)UNC_OPT2_NEIGHBOR);
   sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
-  sess.stub_setAddOutput((uint32_t)UPPL_RC_SUCCESS);
+  sess.stub_setAddOutput((uint32_t)UNC_RC_SUCCESS);
   sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
 
-  int ret =  ktportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NEIGHBOR,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = ktportobj.PerformRead(db_conn, (uint32_t)0,
+    (uint32_t)0, &k, &v, (uint32_t)UNC_DT_STATE,
+    (uint32_t)UNC_OP_READ, sess, (uint32_t)UNC_OPT1_NORMAL,
+    (uint32_t)UNC_OPT2_NEIGHBOR, (uint32_t)1);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /*PerformRead with positive option2 Neighbor*/
@@ -765,8 +865,9 @@ TEST_F(PortTest, PerformRead_Neighbor_11) {
   memset(&v, 0, sizeof(v));
 
   Kt_Port ktportobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -775,11 +876,14 @@ TEST_F(PortTest, PerformRead_Neighbor_11) {
   sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);
   sess.stub_setAddOutput((uint32_t)UNC_OPT2_NEIGHBOR);
   sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
-  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_DB_GET);
+  sess.stub_setAddOutput((uint32_t)UNC_UPPL_RC_ERR_DB_GET);
   sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
 
-  int ret =  ktportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NEIGHBOR,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = ktportobj.PerformRead(db_conn, (uint32_t)0,
+    (uint32_t)0, &k, &v, (uint32_t)UNC_DT_STATE,
+    (uint32_t)UNC_OP_READ, sess, (uint32_t)UNC_OPT1_NORMAL,
+    (uint32_t)UNC_OPT2_NEIGHBOR, (uint32_t)1);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /*PerformRead with positive option2 Neighbor*/
@@ -790,8 +894,9 @@ TEST_F(PortTest, PerformRead_Neighbor_12) {
   memset(&v, 0, sizeof(v));
 
   Kt_Port ktportobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -801,8 +906,11 @@ TEST_F(PortTest, PerformRead_Neighbor_12) {
   sess.stub_setAddOutput((uint32_t)UNC_OPT2_NEIGHBOR);
   sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
 
-  int ret =  ktportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NEIGHBOR,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret = ktportobj.PerformRead(db_conn, (uint32_t)0,
+    (uint32_t)0, &k, &v, (uint32_t)UNC_DT_STATE,
+    (uint32_t)UNC_OP_READ, sess, (uint32_t)UNC_OPT1_NORMAL,
+    (uint32_t)UNC_OPT2_NEIGHBOR, (uint32_t)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 /*PerformRead with Invalid operation */
@@ -813,7 +921,7 @@ TEST_F(PortTest, PerformRead_Invalid_operation_13) {
   memset(&v, 0, sizeof(v));
 
   Kt_Port ktportobj;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
@@ -825,135 +933,149 @@ TEST_F(PortTest, PerformRead_Invalid_operation_13) {
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
 
-  int ret =  ktportobj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_INVALID,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = ktportobj.PerformRead(db_conn, (uint32_t)0,
+  (uint32_t)0, &k, &v, (uint32_t)UNC_DT_STATE,
+  (uint32_t)UNC_OP_INVALID, sess, (uint32_t)UNC_OPT1_NORMAL,
+  (uint32_t)UNC_OPT2_NONE, (uint32_t)1);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /* DeleteKeyInstance for Unsupported datatype CANDIDATE */
 TEST_F(PortTest, DeleteKeyInstance_UnsupportedForCANDIDATE_01) {
-
   key_port_t k;
   val_port_st v;
   memset(&v, 0, sizeof(v));
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktportobj.DeleteKeyInstance(db_conn,&k,UNC_DT_CANDIDATE,UNC_KT_PORT);
-  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktportobj.DeleteKeyInstance(
+    db_conn, &k, UNC_DT_CANDIDATE, UNC_KT_PORT);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
 /* DeleteKeyInstance for Unsupported datatype RUNNING */
 TEST_F(PortTest, DeleteKeyInstance_UnsupportedForRUNNING_02) {
-
   key_port_t k;
   val_port_st v;
   memset(&v, 0, sizeof(v));
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktportobj.DeleteKeyInstance(db_conn,&k,UNC_DT_RUNNING,UNC_KT_PORT);
-  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktportobj.DeleteKeyInstance(
+    db_conn, &k, UNC_DT_RUNNING, UNC_KT_PORT);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
 /* DeleteKeyInstance for Unsupported datatype STARTUP */
 TEST_F(PortTest, DeleteKeyInstance_UnsupportedForSTARTUP_03) {
-
   key_port_t k;
   val_port_st v;
   memset(&v, 0, sizeof(v));
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktportobj.DeleteKeyInstance(db_conn,&k,UNC_DT_STARTUP,UNC_KT_PORT);
-  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktportobj.DeleteKeyInstance(
+    db_conn, &k, UNC_DT_STARTUP,
+                                        UNC_KT_PORT);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
 /* DeleteKeyInstance for Unsupported datatype AUDIT */
 TEST_F(PortTest, DeleteKeyInstance_UnsupportedForAUDIT_04) {
-
   key_port_t k;
   val_port_st v;
   memset(&v, 0, sizeof(v));
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktportobj.DeleteKeyInstance(db_conn,&k,UNC_DT_AUDIT,UNC_KT_PORT);
-  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktportobj.DeleteKeyInstance(
+    db_conn,
+                                        &k, UNC_DT_AUDIT, UNC_KT_PORT);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
 /* DeleteKeyInstance for DB error */
 TEST_F(PortTest, DeleteKeyInstance_DbNeg_05) {
-
   key_port_t k;
   val_port_st v;
   memset(&v, 0, sizeof(v));
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktportobj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,UNC_KT_PORT);
-  EXPECT_EQ(UPPL_RC_ERR_DB_DELETE, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktportobj.DeleteKeyInstance(
+    db_conn,
+                                        &k, UNC_DT_STATE, UNC_KT_PORT);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_DELETE, ret);
 }
 
 /* DeleteKeyInstance for DB error */
 TEST_F(PortTest, DeleteKeyInstance_DbNeg_06) {
-
   key_port_t k;
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  ktportobj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,UNC_KT_PORT);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_CONNECTION_ERROR);
+  int ret = ktportobj.DeleteKeyInstance(
+    db_conn,
+                                        &k, UNC_DT_STATE, UNC_KT_PORT);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 /* DeleteKeyInstance for DB error */
 TEST_F(PortTest, DeleteKeyInstance_DbNeg07) {
-
   key_port_t k;
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
-  int ret =  ktportobj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,UNC_KT_PORT);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
+  int ret = ktportobj.DeleteKeyInstance(
+    db_conn,
+                                        &k, UNC_DT_STATE, UNC_KT_PORT);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 /* DeleteKeyInstance for Positive DB  */
 TEST_F(PortTest, DeleteKeyInstance_DbPos_08) {
-
   key_port_t k;
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktportobj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,UNC_KT_PORT);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktportobj.DeleteKeyInstance(
+    db_conn,
+                                        &k, UNC_DT_STATE, UNC_KT_PORT);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /* DeleteKeyInstance for Positive DB  */
 TEST_F(PortTest, DeleteKeyInstance_DbPos_09) {
-
   key_port_t k;
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktportobj.DeleteKeyInstance(db_conn,&k,UNC_DT_STATE,UNC_KT_PORT);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktportobj.DeleteKeyInstance(
+    db_conn, &k, UNC_DT_STATE, UNC_KT_PORT);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /*IsKeyExists No key struct */
@@ -964,10 +1086,10 @@ TEST_F(PortTest, IsKeyExists_NoKeyStruct_01) {
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
   vector<string> sw_vect_key_value;
-  int ret =  ktportobj.IsKeyExists(db_conn,UNC_DT_STATE,sw_vect_key_value);
-  EXPECT_EQ(UPPL_RC_ERR_BAD_REQUEST, ret);
+  int ret = ktportobj.IsKeyExists(db_conn, UNC_DT_STATE, sw_vect_key_value);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_BAD_REQUEST, ret);
 }
 
 /*IsKeyExists when Db error occurs */
@@ -982,10 +1104,11 @@ TEST_F(PortTest, IsKeyExists_DbNeg_02) {
   sw_vect_key_value.push_back(pkName1_ctr);
   sw_vect_key_value.push_back(pkName1_swtch);
   sw_vect_key_value.push_back(pkName1_port);
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
-  int ret = ktportobj.IsKeyExists(db_conn,UNC_DT_STATE,sw_vect_key_value);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
+  int ret  =  ktportobj.IsKeyExists(db_conn, UNC_DT_STATE, sw_vect_key_value);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 /*IsKeyExists when Db error occurs */
@@ -1000,10 +1123,11 @@ TEST_F(PortTest, IsKeyExists_DbNeg_03) {
   sw_vect_key_value.push_back(pkName1_ctr);
   sw_vect_key_value.push_back(pkName1_swtch);
   sw_vect_key_value.push_back(pkName1_port);
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_FAILED);
-  int ret = ktportobj.IsKeyExists(db_conn,UNC_DT_STATE,sw_vect_key_value);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_FAILED);
+  int ret  =  ktportobj.IsKeyExists(db_conn, UNC_DT_STATE, sw_vect_key_value);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 /*IsKeyExists when Db Success occurs */
@@ -1018,10 +1142,11 @@ TEST_F(PortTest, IsKeyExists_Db_Pos_04) {
   sw_vect_key_value.push_back(pkName1_ctr);
   sw_vect_key_value.push_back(pkName1_swtch);
   sw_vect_key_value.push_back(pkName1_port);
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  int ret = ktportobj.IsKeyExists(db_conn,UNC_DT_STATE,sw_vect_key_value);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
+  int ret  =  ktportobj.IsKeyExists(db_conn, UNC_DT_STATE, sw_vect_key_value);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /*ReadInternal when it is other than Read operation */
@@ -1029,7 +1154,7 @@ TEST_F(PortTest, ReadInternal_NotRead_01) {
   vector<void*> k;
   vector<void*> v;
   Kt_Port ktportobj;
-  uint32_t operation_type = UNC_OP_READ_BULK;
+  uint32_t operation_type  =  UNC_OP_READ_BULK;
 
   key_port_t key;
   val_port_st_t value;
@@ -1039,11 +1164,13 @@ TEST_F(PortTest, ReadInternal_NotRead_01) {
   k.push_back(&key);
   v.push_back(&value);
 
-  OdbcmConnectionHandler *db_conn=NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret = ktportobj.ReadInternal(db_conn, k, v, UNC_DT_STATE, operation_type);
+  OdbcmConnectionHandler *db_conn = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  int ret  =  ktportobj.ReadInternal(db_conn, k, v, UNC_DT_STATE,
+                                     operation_type);
 
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /*ReadInternal when Db is SUCCESS */
@@ -1051,7 +1178,7 @@ TEST_F(PortTest, ReadInternal_Read_02) {
   vector<void*> k;
   vector<void*> v;
   Kt_Port ktportobj;
-  uint32_t operation_type = UNC_OP_READ;
+  uint32_t operation_type  =  UNC_OP_READ;
 
   key_port_t key;
   val_port_st_t val;
@@ -1059,12 +1186,14 @@ TEST_F(PortTest, ReadInternal_Read_02) {
   getValForKtPort1(val);
   k.push_back(&key);
   v.push_back(&val);
-  
-  OdbcmConnectionHandler *db_conn=NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret = ktportobj.ReadInternal(db_conn, k, v, UNC_DT_STATE, operation_type);
 
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret  =  ktportobj.ReadInternal(db_conn, k, v, UNC_DT_STATE,
+                                     operation_type);
+
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /*ReadBulk Unsupported datatype UNC_DT_CANDIDATE */
@@ -1074,11 +1203,13 @@ TEST_F(PortTest, ReadBulk_Unsupporteddatatype_01) {
 
   Kt_Port ktportobj;
   uint32_t max_rep_ct(1);
-  OdbcmConnectionHandler *db_conn=NULL;
-  ReadRequest *read_req=NULL;
+  OdbcmConnectionHandler *db_conn = NULL;
+  ReadRequest *read_req = NULL;
 
-  int ret =  ktportobj.ReadBulk(db_conn,&k,(uint32_t)UNC_DT_CANDIDATE,max_rep_ct,0,PFC_TRUE,PFC_TRUE,read_req);
-  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+  int ret = ktportobj.ReadBulk(
+    db_conn, &k, (uint32_t)UNC_DT_CANDIDATE,
+    max_rep_ct, 0, PFC_TRUE, PFC_TRUE, read_req);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
 /*ReadBulk Unsupported datatype UNC_DT_RUNNING */
@@ -1088,10 +1219,12 @@ TEST_F(PortTest, ReadBulk_Unsupporteddatatype_02) {
 
   Kt_Port ktportobj;
   uint32_t max_rep_ct(1);
-  OdbcmConnectionHandler *db_conn=NULL;
-  ReadRequest *read_req=NULL;
-  int ret =  ktportobj.ReadBulk(db_conn,&k,(uint32_t)UNC_DT_RUNNING,max_rep_ct,0,PFC_TRUE,PFC_TRUE,read_req);
-  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+  OdbcmConnectionHandler *db_conn = NULL;
+  ReadRequest *read_req = NULL;
+  int ret = ktportobj.ReadBulk(
+    db_conn, &k, (uint32_t)UNC_DT_RUNNING,
+    max_rep_ct, 0, PFC_TRUE, PFC_TRUE, read_req);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
 /*ReadBulk Unsupported datatype UNC_DT_STARTUP */
@@ -1101,10 +1234,12 @@ TEST_F(PortTest, ReadBulk_Unsupporteddatatype_03) {
 
   Kt_Port ktportobj;
   uint32_t max_rep_ct(1);
-  OdbcmConnectionHandler *db_conn=NULL;
-  ReadRequest *read_req=NULL;
-  int ret =  ktportobj.ReadBulk(db_conn,&k,(uint32_t)UNC_DT_STARTUP,max_rep_ct,0,PFC_TRUE,PFC_TRUE,read_req);
-  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+  OdbcmConnectionHandler *db_conn = NULL;
+  ReadRequest *read_req = NULL;
+  int ret = ktportobj.ReadBulk(
+    db_conn, &k, (uint32_t)UNC_DT_STARTUP,
+    max_rep_ct, 0, PFC_TRUE, PFC_TRUE, read_req);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
 /*ReadBulk when max_rep_ct is NULL */
@@ -1114,10 +1249,12 @@ TEST_F(PortTest, ReadBulk_max_rep_ct_NULL_04) {
 
   Kt_Port ktportobj;
   uint32_t max_rep_ct(1);
-  OdbcmConnectionHandler *db_conn=NULL;
-  ReadRequest *read_req=NULL;
-  int ret =  ktportobj.ReadBulk(db_conn,&k,(uint32_t)UNC_DT_STATE,max_rep_ct,0,PFC_TRUE,PFC_TRUE,read_req);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn = NULL;
+  ReadRequest *read_req = NULL;
+  int ret = ktportobj.ReadBulk(
+    db_conn, &k, (uint32_t)UNC_DT_STATE,
+     max_rep_ct, 0, PFC_TRUE, PFC_TRUE, read_req);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /*ReadBulk when DB is SUCCESS */
@@ -1126,17 +1263,19 @@ TEST_F(PortTest, ReadBulk_Pos_05) {
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  uint32_t max_rep_ct=1;
+  uint32_t max_rep_ct = 1;
   pfc_bool_t parent_call(PFC_FALSE);
   pfc_bool_t is_read_next(PFC_FALSE);
-  int child_index=1;
-  OdbcmConnectionHandler *db_conn=NULL;
+  int child_index = 1;
+  OdbcmConnectionHandler *db_conn = NULL;
   ReadRequest read_req;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret =  ktportobj.ReadBulk(db_conn, &k, (uint32_t)UNC_DT_STATE,
-                                max_rep_ct, child_index, parent_call,
-                                is_read_next, &read_req);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  int ret = ktportobj.ReadBulk(
+    db_conn, &k, (uint32_t)UNC_DT_STATE,
+    max_rep_ct, child_index, parent_call,
+    is_read_next, &read_req);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /*ReadBulk when DB Connection error occurs  */
@@ -1145,17 +1284,19 @@ TEST_F(PortTest, ReadBulk_DbNeg_06) {
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  uint32_t max_rep_ct=1;
+  uint32_t max_rep_ct = 1;
   pfc_bool_t parent_call(PFC_FALSE);
   pfc_bool_t is_read_next(PFC_FALSE);
-  int child_index=1;
-  OdbcmConnectionHandler *db_conn=NULL;
+  int child_index = 1;
+  OdbcmConnectionHandler *db_conn = NULL;
   ReadRequest read_req;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  ktportobj.ReadBulk(db_conn, &k, (uint32_t)UNC_DT_STATE,
-                                max_rep_ct, child_index, parent_call,
-                                is_read_next, &read_req);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
+  int ret = ktportobj.ReadBulk(
+    db_conn, &k, (uint32_t)UNC_DT_STATE,
+    max_rep_ct, child_index, parent_call,
+    is_read_next, &read_req);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 /*ReadBulk when parent_call is false*/
@@ -1164,17 +1305,19 @@ TEST_F(PortTest, ReadBulk_Pos_parent_false_07) {
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  uint32_t max_rep_ct=1;
-  pfc_bool_t parent_call=false;
-  pfc_bool_t is_read_next=true;
-  int child_index=1;
-  OdbcmConnectionHandler *db_conn=NULL;
+  uint32_t max_rep_ct = 1;
+  pfc_bool_t parent_call = false;
+  pfc_bool_t is_read_next = true;
+  int child_index = 1;
+  OdbcmConnectionHandler *db_conn = NULL;
   ReadRequest read_req;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
-  int ret =  ktportobj.ReadBulk(db_conn, &k, (uint32_t)UNC_DT_STATE,
-                                max_rep_ct, child_index, parent_call,
-                                is_read_next, &read_req);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
+  int ret = ktportobj.ReadBulk(
+    db_conn, &k, (uint32_t)UNC_DT_STATE,
+    max_rep_ct, child_index, parent_call,
+    is_read_next, &read_req);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /* ReadBulkInternal when there is no record in DB */
@@ -1186,12 +1329,15 @@ TEST_F(PortTest, ReadBulkInternal_DbNeg_01) {
 
   Kt_Port ktportobj;
   uint32_t max_rep_ct(1);
-  vector<val_port_st_t> vect_val_port; 
+  vector<val_port_st_t> vect_val_port;
   vector<key_port_t> vect_port_id;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
-  int ret =  ktportobj.ReadBulkInternal(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,max_rep_ct,vect_val_port,vect_port_id);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
+  int ret = ktportobj.ReadBulkInternal(
+    db_conn, &k, &v, (uint32_t)UNC_DT_STATE,
+     max_rep_ct, vect_val_port, vect_port_id);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 /* ReadBulkInternal when DB connection error occurs */
@@ -1203,12 +1349,15 @@ TEST_F(PortTest, ReadBulkInternal_DbNeg_02) {
 
   Kt_Port ktportobj;
   uint32_t max_rep_ct(1);
-  vector<val_port_st_t> vect_val_port; 
+  vector<val_port_st_t> vect_val_port;
   vector<key_port_t> vect_port_id;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  ktportobj.ReadBulkInternal(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,max_rep_ct,vect_val_port,vect_port_id);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
+  int ret = ktportobj.ReadBulkInternal(
+    db_conn, &k, &v, (uint32_t)UNC_DT_STATE,
+     max_rep_ct, vect_val_port, vect_port_id);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 /* ReadBulkInternal when DB error occurs */
@@ -1220,12 +1369,15 @@ TEST_F(PortTest, ReadBulkInternal_DbNeg_03) {
 
   Kt_Port ktportobj;
   uint32_t max_rep_ct(1);
-  vector<val_port_st_t> vect_val_port; 
+  vector<val_port_st_t> vect_val_port;
   vector<key_port_t> vect_port_id;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
-  int ret =  ktportobj.ReadBulkInternal(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,max_rep_ct,vect_val_port,vect_port_id);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
+  int ret = ktportobj.ReadBulkInternal(
+    db_conn, &k, &v, (uint32_t)UNC_DT_STATE,
+     max_rep_ct, vect_val_port, vect_port_id);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
 /* ReadBulkInternal when DB is success */
@@ -1237,12 +1389,15 @@ TEST_F(PortTest, ReadBulkInternal_Pos_04) {
 
   Kt_Port ktportobj;
   uint32_t max_rep_ct(1);
-  vector<val_port_st_t> vect_val_port; 
+  vector<val_port_st_t> vect_val_port;
   vector<key_port_t> vect_port_id;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret =  ktportobj.ReadBulkInternal(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,max_rep_ct,vect_val_port,vect_port_id);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  int ret = ktportobj.ReadBulkInternal(
+    db_conn, &k, &v, (uint32_t)UNC_DT_STATE,
+     max_rep_ct, vect_val_port, vect_port_id);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /* ReadBulkInternal when DB is success */
@@ -1253,12 +1408,14 @@ TEST_F(PortTest, ReadBulkInternal_Pos_05) {
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  uint32_t max_rep_ct=0;
-  vector<val_port_st_t> vect_val_port; 
+  uint32_t max_rep_ct = 0;
+  vector<val_port_st_t> vect_val_port;
   vector<key_port_t> vect_port_id;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktportobj.ReadBulkInternal(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,max_rep_ct,vect_val_port,vect_port_id);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktportobj.ReadBulkInternal(
+    db_conn, &k, &v, (uint32_t)UNC_DT_STATE,
+     max_rep_ct, vect_val_port, vect_port_id);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /*ReadPortValFromDB when it is other than READ operation */
@@ -1271,14 +1428,16 @@ TEST_F(PortTest, ReadPortValFromDB_NoREAD_01) {
   memset(k.port_id, '\0', 32);
   memset(v.valid, '\0', sizeof(v.valid));
   memset(v.port.valid, '\0', sizeof(v.port.valid));
-  vector<val_port_st_t> vect_val_port; 
+  vector<val_port_st_t> vect_val_port;
   vector<key_port_t> vect_port_id;
-  uint32_t operation_type = UNC_OP_CREATE;
+  uint32_t operation_type  =  UNC_OP_CREATE;
   uint32_t max_rep_ct;
 
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktportobj.ReadPortValFromDB(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,operation_type,max_rep_ct,vect_val_port,vect_port_id);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktportobj.ReadPortValFromDB(
+    db_conn, &k, &v, (uint32_t)UNC_DT_STATE,
+     operation_type, max_rep_ct, vect_val_port, vect_port_id);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /*ReadPortValFromDB when there is no record in DB for GETONEROW */
@@ -1291,14 +1450,17 @@ TEST_F(PortTest, ReadPortValFromDB_ReadNeg_02) {
   memset(k.port_id, '\0', 32);
   memset(v.valid, '\0', sizeof(v.valid));
   memset(v.port.valid, '\0', sizeof(v.port.valid));
-  vector<val_port_st_t> vect_val_port; 
+  vector<val_port_st_t> vect_val_port;
   vector<key_port_t> vect_port_id;
-  uint32_t operation_type = UNC_OP_READ;
+  uint32_t operation_type  =  UNC_OP_READ;
   uint32_t max_rep_ct;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_RECORD_NOT_FOUND);
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktportobj.ReadPortValFromDB(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,operation_type,max_rep_ct,vect_val_port,vect_port_id);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_RECORD_NOT_FOUND);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktportobj.ReadPortValFromDB(
+    db_conn, &k, &v, (uint32_t)UNC_DT_STATE,
+     operation_type, max_rep_ct, vect_val_port, vect_port_id);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 /*ReadPortValFromDB when there is DB connection error for GETONEROW */
@@ -1311,14 +1473,17 @@ TEST_F(PortTest, ReadPortValFromDB_ReadNeg_03) {
   memset(k.port_id, '\0', 32);
   memset(v.valid, '\0', sizeof(v.valid));
   memset(v.port.valid, '\0', sizeof(v.port.valid));
-  vector<val_port_st_t> vect_val_port; 
+  vector<val_port_st_t> vect_val_port;
   vector<key_port_t> vect_port_id;
-  uint32_t operation_type = UNC_OP_READ;
+  uint32_t operation_type  =  UNC_OP_READ;
   uint32_t max_rep_ct;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktportobj.ReadPortValFromDB(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,operation_type,max_rep_ct,vect_val_port,vect_port_id);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktportobj.ReadPortValFromDB(
+    db_conn, &k, &v, (uint32_t)UNC_DT_STATE,
+     operation_type, max_rep_ct, vect_val_port, vect_port_id);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 /*ReadPortValFromDB when there is DB Failure for GETONEROW */
@@ -1331,14 +1496,17 @@ TEST_F(PortTest, ReadPortValFromDB_ReadNeg_04) {
   memset(k.port_id, '\0', 32);
   memset(v.valid, '\0', sizeof(v.valid));
   memset(v.port.valid, '\0', sizeof(v.port.valid));
-  vector<val_port_st_t> vect_val_port; 
+  vector<val_port_st_t> vect_val_port;
   vector<key_port_t> vect_port_id;
-  uint32_t operation_type = UNC_OP_READ;
+  uint32_t operation_type  =  UNC_OP_READ;
   uint32_t max_rep_ct;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktportobj.ReadPortValFromDB(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,operation_type,max_rep_ct,vect_val_port,vect_port_id);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktportobj.ReadPortValFromDB(
+    db_conn, &k, &v, (uint32_t)UNC_DT_STATE,
+     operation_type, max_rep_ct, vect_val_port, vect_port_id);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
 /*ReadPortValFromDB when there is DB Success for GETONEROW */
@@ -1351,13 +1519,16 @@ TEST_F(PortTest, ReadPortValFromDB_ReadPOS_05) {
   memset(k.port_id, '\0', 32);
   memset(v.valid, '\0', sizeof(v.valid));
   memset(v.port.valid, '\0', sizeof(v.port.valid));
-  vector<val_port_st_t> vect_val_port; 
+  vector<val_port_st_t> vect_val_port;
   vector<key_port_t> vect_port_id;
-  uint32_t operation_type = UNC_OP_READ;
+  uint32_t operation_type  =  UNC_OP_READ;
   uint32_t max_rep_ct;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktportobj.ReadPortValFromDB(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,operation_type,max_rep_ct,vect_val_port,vect_port_id);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktportobj.ReadPortValFromDB(
+    db_conn, &k, &v, (uint32_t)UNC_DT_STATE,
+     operation_type, max_rep_ct, vect_val_port, vect_port_id);
   EXPECT_EQ(ODBCM_RC_SUCCESS, ret);
 }
 
@@ -1371,14 +1542,17 @@ TEST_F(PortTest, ReadPortValFromDB_ReadBulkNeg_06) {
   memset(k.port_id, '\0', 32);
   memset(v.valid, '\0', sizeof(v.valid));
   memset(v.port.valid, '\0', sizeof(v.port.valid));
-  vector<val_port_st_t> vect_val_port; 
+  vector<val_port_st_t> vect_val_port;
   vector<key_port_t> vect_port_id;
-  uint32_t operation_type = UNC_OP_READ_BULK;
+  uint32_t operation_type  =  UNC_OP_READ_BULK;
   uint32_t max_rep_ct;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktportobj.ReadPortValFromDB(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,operation_type,max_rep_ct,vect_val_port,vect_port_id);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktportobj.ReadPortValFromDB(
+    db_conn, &k, &v, (uint32_t)UNC_DT_STATE,
+     operation_type, max_rep_ct, vect_val_port, vect_port_id);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 /*ReadPortValFromDB when there is DB connection error for GETBULKROWS */
@@ -1391,14 +1565,17 @@ TEST_F(PortTest, ReadPortValFromDB_ReadBulkNeg_07) {
   memset(k.port_id, '\0', 32);
   memset(v.valid, '\0', sizeof(v.valid));
   memset(v.port.valid, '\0', sizeof(v.port.valid));
-  vector<val_port_st_t> vect_val_port; 
+  vector<val_port_st_t> vect_val_port;
   vector<key_port_t> vect_port_id;
-  uint32_t operation_type = UNC_OP_READ_BULK;
+  uint32_t operation_type  =  UNC_OP_READ_BULK;
   uint32_t max_rep_ct;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktportobj.ReadPortValFromDB(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,operation_type,max_rep_ct,vect_val_port,vect_port_id);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktportobj.ReadPortValFromDB(
+    db_conn, &k, &v, (uint32_t)UNC_DT_STATE,
+     operation_type, max_rep_ct, vect_val_port, vect_port_id);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 /*ReadPortValFromDB when there is DB Failure for GETBULKROWS */
@@ -1411,14 +1588,17 @@ TEST_F(PortTest, ReadPortValFromDB_ReadBulkNeg_08) {
   memset(k.port_id, '\0', 32);
   memset(v.valid, '\0', sizeof(v.valid));
   memset(v.port.valid, '\0', sizeof(v.port.valid));
-  vector<val_port_st_t> vect_val_port; 
+  vector<val_port_st_t> vect_val_port;
   vector<key_port_t> vect_port_id;
-  uint32_t operation_type = UNC_OP_READ_BULK;
+  uint32_t operation_type  =  UNC_OP_READ_BULK;
   uint32_t max_rep_ct;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktportobj.ReadPortValFromDB(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,operation_type,max_rep_ct,vect_val_port,vect_port_id);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktportobj.ReadPortValFromDB(
+    db_conn, &k, &v, (uint32_t)UNC_DT_STATE,
+     operation_type, max_rep_ct, vect_val_port, vect_port_id);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
 /*ReadPortValFromDB when there is DB Success for GETBULKROWS */
@@ -1431,14 +1611,17 @@ TEST_F(PortTest, ReadPortValFromDB_09_ReadBulkPos) {
   memset(k.port_id, '\0', 32);
   memset(v.valid, '\0', sizeof(v.valid));
   memset(v.port.valid, '\0', sizeof(v.port.valid));
-  vector<val_port_st_t> vect_val_port; 
+  vector<val_port_st_t> vect_val_port;
   vector<key_port_t> vect_port_id;
-  uint32_t operation_type = UNC_OP_READ_BULK;
+  uint32_t operation_type  =  UNC_OP_READ_BULK;
   uint32_t max_rep_ct;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktportobj.ReadPortValFromDB(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,operation_type,max_rep_ct,vect_val_port,vect_port_id);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktportobj.ReadPortValFromDB(
+    db_conn, &k, &v, (uint32_t)UNC_DT_STATE,
+     operation_type, max_rep_ct, vect_val_port, vect_port_id);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /*ReadNeighbor when negative case of DB */
@@ -1448,9 +1631,11 @@ TEST_F(PortTest, ReadNeighbor_Dbneg_01) {
 
   Kt_Port ktportobj;
   val_port_st_neighbor neighbor_obj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  ktportobj.ReadNeighbor(db_conn,&k,&k,(uint32_t)UNC_DT_STATE,neighbor_obj);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret = ktportobj.ReadNeighbor(
+    db_conn, &k, &k, (uint32_t)UNC_DT_STATE,
+     neighbor_obj);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
 /*ReadNeighbor when Positive case of DB */
@@ -1461,11 +1646,14 @@ TEST_F(PortTest, ReadNeighbor_Dbneg_02) {
 
   Kt_Port ktportobj;
   val_port_st_neighbor neighbor_obj;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktportobj.ReadNeighbor(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,neighbor_obj);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktportobj.ReadNeighbor(
+    db_conn, &k, &v, (uint32_t)UNC_DT_STATE,
+     neighbor_obj);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /*ReadNeighbor when there is no record in DB */
@@ -1476,11 +1664,14 @@ TEST_F(PortTest, ReadNeighbor_Dbneg_03) {
 
   Kt_Port ktportobj;
   val_port_st_neighbor neighbor_obj;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_RECORD_NOT_FOUND);
-  int ret =  ktportobj.ReadNeighbor(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,neighbor_obj);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_RECORD_NOT_FOUND);
+  int ret = ktportobj.ReadNeighbor(
+    db_conn, &k, &v, (uint32_t)UNC_DT_STATE,
+     neighbor_obj);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 /*ReadNeighbor when there is Connection error in DB */
@@ -1491,11 +1682,14 @@ TEST_F(PortTest, ReadNeighbor_Dbneg_04) {
 
   Kt_Port ktportobj;
   val_port_st_neighbor neighbor_obj;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
-  int ret =  ktportobj.ReadNeighbor(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,neighbor_obj);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
+  int ret = ktportobj.ReadNeighbor(
+    db_conn, &k, &v, (uint32_t)UNC_DT_STATE,
+     neighbor_obj);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 /*ReadNeighbor when DB fails */
@@ -1506,11 +1700,14 @@ TEST_F(PortTest, ReadNeighbor_Dbneg_05) {
 
   Kt_Port ktportobj;
   val_port_st_neighbor neighbor_obj;
-  OdbcmConnectionHandler *db_conn =NULL;
+  OdbcmConnectionHandler *db_conn  = NULL;
 
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  int ret =  ktportobj.ReadNeighbor(db_conn,&k,&v,(uint32_t)UNC_DT_STATE,neighbor_obj);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  int ret = ktportobj.ReadNeighbor(
+    db_conn, &k, &v, (uint32_t)UNC_DT_STATE,
+     neighbor_obj);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
 /*PopulateSchemaForValidFlag when UPDATEONEROW is Success */
@@ -1521,11 +1718,13 @@ TEST_F(PortTest, PopulateSchemaForValidFlag_pos_01) {
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  string valid_new = "123456789ab";
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktportobj.PopulateSchemaForValidFlag(db_conn,&k,&v,valid_new,(uint32_t)UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  string valid_new  =  "123456789ab";
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktportobj.PopulateSchemaForValidFlag(
+    db_conn, &k, &v, valid_new, (uint32_t)UNC_DT_STATE);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /*PopulateSchemaForValidFlag when UPDATEONEROW is failed */
@@ -1536,11 +1735,13 @@ TEST_F(PortTest, PopulateSchemaForValidFlag_neg_02) {
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  string valid_new = "asss";
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_FAILED);
-  int ret =  ktportobj.PopulateSchemaForValidFlag(db_conn,&k,&v,valid_new,(uint32_t)UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
+  string valid_new  =  "asss";
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_FAILED);
+  int ret = ktportobj.PopulateSchemaForValidFlag(
+    db_conn, &k, &v, valid_new, (uint32_t)UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
 /*UpdatePortValidFlag when UPDATEONEROW is failed */
@@ -1551,11 +1752,13 @@ TEST_F(PortTest, UpdatePortValidFlag_01) {
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  string valid_new = "asss";
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_FAILED);
-  int ret =  ktportobj.PopulateSchemaForValidFlag(db_conn,&k,&v,valid_new,(uint32_t)UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
+  string valid_new  =  "asss";
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_FAILED);
+  int ret = ktportobj.PopulateSchemaForValidFlag(
+    db_conn, &k, &v, valid_new, (uint32_t)UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
 /*GetAlarmStatus function when GETONEROW is success */
@@ -1564,11 +1767,12 @@ TEST_F(PortTest, GetAlarmStatus_sucess_01) {
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  uint64_t alarm_status = 1;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktportobj.GetAlarmStatus(db_conn, UNC_DT_STATE, &k, alarm_status);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  uint64_t alarm_status  =  1;
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktportobj.GetAlarmStatus(db_conn, UNC_DT_STATE, &k, alarm_status);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /*GetAlarmStatus function when GETONEROW is failed */
@@ -1577,239 +1781,296 @@ TEST_F(PortTest, GetAlarmStatus_sucess_02) {
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  uint64_t alarm_status = 1;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  int ret =  ktportobj.GetAlarmStatus(db_conn, UNC_DT_STATE, &k, alarm_status);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  uint64_t alarm_status  =  1;
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  int ret = ktportobj.GetAlarmStatus(db_conn, UNC_DT_STATE, &k, alarm_status);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
-/*HandleDriverAlarms function when GETONEROW and UPDATEONEROW is SUCCESS for UNC_DEFAULT_FLOW alarm */
+/*HandleDriverAlarms function when GETONEROW and UPDATEONEROW
+ * is SUCCESS for UNC_DEFAULT_FLOW alarm */
 TEST_F(PortTest, HandleDriverAlarms_01) {
   key_port_t k;
   val_port_st v;
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  uint32_t alarm_type = UNC_DEFAULT_FLOW;
-  uint32_t oper_type = UNC_OP_CREATE;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  int ret = ktportobj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  uint32_t alarm_type  =  UNC_DEFAULT_FLOW;
+  uint32_t oper_type  =  UNC_OP_CREATE;
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  int ret  =  ktportobj.HandleDriverAlarms(
+    db_conn, UNC_DT_STATE, alarm_type, oper_type, &k, &v);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-/*HandleDriverAlarms function when GETONEROW and UPDATEONEROW is SUCCESS for UNC_DEFAULT_FLOW alarm */
+/*HandleDriverAlarms function when GETONEROW and UPDATEONEROW
+ * is SUCCESS for UNC_DEFAULT_FLOW alarm */
 TEST_F(PortTest, HandleDriverAlarms_02) {
   key_port_t k;
   val_port_st v;
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  uint32_t alarm_type = UNC_DEFAULT_FLOW;
-  uint32_t oper_type = UNC_OP_DELETE;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  int ret = ktportobj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  uint32_t alarm_type  =  UNC_DEFAULT_FLOW;
+  uint32_t oper_type  =  UNC_OP_DELETE;
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  int ret  =  ktportobj.HandleDriverAlarms(
+    db_conn, UNC_DT_STATE, alarm_type, oper_type, &k, &v);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-/*HandleDriverAlarms function when GETONEROW and UPDATEONEROW is SUCCESS for UNC_PORT_DIRECTION alarm */
+/*HandleDriverAlarms function when GETONEROW and UPDATEONEROW
+ * is SUCCESS for UNC_PORT_DIRECTION alarm */
 TEST_F(PortTest, HandleDriverAlarms_03) {
   key_port_t k;
   val_port_st v;
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  uint32_t alarm_type = UNC_PORT_DIRECTION;
-  uint32_t oper_type = UNC_OP_DELETE;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  int ret = ktportobj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  uint32_t alarm_type  =  UNC_PORT_DIRECTION;
+  uint32_t oper_type  =  UNC_OP_DELETE;
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  int ret  =  ktportobj.HandleDriverAlarms(
+    db_conn, UNC_DT_STATE, alarm_type, oper_type, &k, &v);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-/*HandleDriverAlarms function when GETONEROW and UPDATEONEROW is SUCCESS for UNC_PORT_DIRECTION alarm */
+/*HandleDriverAlarms function when GETONEROW and UPDATEONEROW
+ * is SUCCESS for UNC_PORT_DIRECTION alarm */
 TEST_F(PortTest, HandleDriverAlarms_04) {
   key_port_t k;
   val_port_st v;
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  uint32_t alarm_type = UNC_PORT_DIRECTION;
-  uint32_t oper_type = UNC_OP_CREATE;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  int ret = ktportobj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  uint32_t alarm_type  =  UNC_PORT_DIRECTION;
+  uint32_t oper_type  =  UNC_OP_CREATE;
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  int ret  =  ktportobj.HandleDriverAlarms(
+    db_conn, UNC_DT_STATE, alarm_type, oper_type, &k, &v);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-/*HandleDriverAlarms function when GETONEROW and UPDATEONEROW is SUCCESS for UNC_PORT_CONGES alarm */
+/*HandleDriverAlarms function when GETONEROW
+ * and UPDATEONEROW is SUCCESS for UNC_PORT_CONGES alarm */
 TEST_F(PortTest, HandleDriverAlarms_05) {
   key_port_t k;
   val_port_st v;
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  uint32_t alarm_type = UNC_PORT_CONGES;
-  uint32_t oper_type = UNC_OP_CREATE;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  int ret = ktportobj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  uint32_t alarm_type  =  UNC_PORT_CONGES;
+  uint32_t oper_type  =  UNC_OP_CREATE;
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  int ret  =  ktportobj.HandleDriverAlarms(
+    db_conn, UNC_DT_STATE, alarm_type, oper_type, &k, &v);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-/*HandleDriverAlarms function when GETONEROW and UPDATEONEROW is SUCCESS for UNC_PORT_CONGES alarm */
+/*HandleDriverAlarms function when GETONEROW and
+ * UPDATEONEROW is SUCCESS for UNC_PORT_CONGES alarm */
 TEST_F(PortTest, HandleDriverAlarms_06) {
   key_port_t k;
   val_port_st v;
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  uint32_t alarm_type = UNC_PORT_CONGES;
-  uint32_t oper_type = UNC_OP_DELETE;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  int ret = ktportobj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  uint32_t alarm_type  =  UNC_PORT_CONGES;
+  uint32_t oper_type  =  UNC_OP_DELETE;
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  int ret  =  ktportobj.HandleDriverAlarms(
+    db_conn, UNC_DT_STATE, alarm_type, oper_type, &k, &v);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
-/*HandleDriverAlarms function when GETONEROW is Failed and UPDATEONEROW is SUCCESS for UNC_PORT_DIRECTION alarm */
+/*HandleDriverAlarms function when GETONEROW is Failed
+ * and UPDATEONEROW is SUCCESS for UNC_PORT_DIRECTION alarm */
 TEST_F(PortTest, HandleDriverAlarms_07) {
   key_port_t k;
   val_port_st v;
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  uint32_t alarm_type = UNC_PORT_DIRECTION;
-  uint32_t oper_type = UNC_OP_CREATE;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  int ret = ktportobj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  uint32_t alarm_type  =  UNC_PORT_DIRECTION;
+  uint32_t oper_type  =  UNC_OP_CREATE;
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  int ret  =  ktportobj.HandleDriverAlarms(
+    db_conn, UNC_DT_STATE, alarm_type, oper_type, &k, &v);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-/*HandleDriverAlarms function when GETONEROW is Failed and UPDATEONEROW is SUCCESS for UNC_PORT_DIRECTION alarm */
+/*HandleDriverAlarms function when GETONEROW is Failed
+ * and UPDATEONEROW is SUCCESS for UNC_PORT_DIRECTION alarm */
 TEST_F(PortTest, HandleDriverAlarms_08) {
   key_port_t k;
   val_port_st v;
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  uint32_t alarm_type = UNC_PORT_DIRECTION;
-  uint32_t oper_type = UNC_OP_DELETE;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  int ret = ktportobj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  uint32_t alarm_type  =  UNC_PORT_DIRECTION;
+  uint32_t oper_type  =  UNC_OP_DELETE;
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  int ret  =  ktportobj.HandleDriverAlarms(
+    db_conn, UNC_DT_STATE, alarm_type, oper_type, &k, &v);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-/*HandleDriverAlarms function when GETONEROW is Failed and UPDATEONEROW is SUCCESS for UNC_DEFAULT_FLOW alarm */
+/*HandleDriverAlarms function when GETONEROW is Failed
+ * and UPDATEONEROW is SUCCESS for UNC_DEFAULT_FLOW alarm */
 TEST_F(PortTest, HandleDriverAlarms_09) {
   key_port_t k;
   val_port_st v;
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  uint32_t alarm_type = UNC_DEFAULT_FLOW;
-  uint32_t oper_type = UNC_OP_CREATE;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  int ret = ktportobj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  uint32_t alarm_type  =  UNC_DEFAULT_FLOW;
+  uint32_t oper_type  =  UNC_OP_CREATE;
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  int ret  =  ktportobj.HandleDriverAlarms(
+    db_conn, UNC_DT_STATE, alarm_type, oper_type, &k, &v);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
-/*HandleDriverAlarms function when GETONEROW is Failed and UPDATEONEROW is SUCCESS for UNC_DEFAULT_FLOW alarm */
+
+/*HandleDriverAlarms function when GETONEROW is Failed
+ * and UPDATEONEROW is SUCCESS for UNC_DEFAULT_FLOW alarm */
 TEST_F(PortTest, HandleDriverAlarms_10) {
   key_port_t k;
   val_port_st v;
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  uint32_t alarm_type = UNC_DEFAULT_FLOW;
-  uint32_t oper_type = UNC_OP_DELETE;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  int ret = ktportobj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  uint32_t alarm_type  =  UNC_DEFAULT_FLOW;
+  uint32_t oper_type  =  UNC_OP_DELETE;
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  int ret  =  ktportobj.HandleDriverAlarms(
+    db_conn, UNC_DT_STATE, alarm_type, oper_type, &k, &v);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-/*HandleDriverAlarms function when GETONEROW is Failed and UPDATEONEROW is SUCCESS for UNC_PORT_CONGES alarm */
+/*HandleDriverAlarms function when GETONEROW is Failed
+ * and UPDATEONEROW is SUCCESS for UNC_PORT_CONGES alarm */
 TEST_F(PortTest, HandleDriverAlarms_11) {
   key_port_t k;
   val_port_st v;
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  uint32_t alarm_type = UNC_PORT_CONGES;
-  uint32_t oper_type = UNC_OP_CREATE;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  int ret = ktportobj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  uint32_t alarm_type  =  UNC_PORT_CONGES;
+  uint32_t oper_type  =  UNC_OP_CREATE;
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  int ret  =  ktportobj.HandleDriverAlarms(
+    db_conn, UNC_DT_STATE, alarm_type, oper_type, &k, &v);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-/*HandleDriverAlarms function when GETONEROW is Failed and UPDATEONEROW is SUCCESS for UNC_PORT_CONGES alarm */
+/*HandleDriverAlarms function when GETONEROW
+ * is Failed and UPDATEONEROW is SUCCESS for UNC_PORT_CONGES alarm */
 TEST_F(PortTest, HandleDriverAlarms_12) {
   key_port_t k;
   val_port_st v;
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  uint32_t alarm_type = UNC_PORT_CONGES;
-  uint32_t oper_type = UNC_OP_DELETE;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  int ret = ktportobj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  uint32_t alarm_type  =  UNC_PORT_CONGES;
+  uint32_t oper_type  =  UNC_OP_DELETE;
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_FAILED);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  int ret  =  ktportobj.HandleDriverAlarms(
+    db_conn, UNC_DT_STATE, alarm_type, oper_type, &k, &v);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-/*HandleDriverAlarms function when GETONEROW and UPDATEONEROW is SUCCESS for UNC_PORT_CONGES alarm */
+/*HandleDriverAlarms function when GETONEROW
+ * and UPDATEONEROW is SUCCESS for UNC_PORT_CONGES alarm */
 TEST_F(PortTest, HandleDriverAlarms_13) {
   key_port_t k;
   val_port_st v;
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  uint32_t alarm_type = UNC_PORT_CONGES;
-  uint32_t oper_type = UNC_OP_DELETE;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  int ret = ktportobj.HandleDriverAlarms(db_conn, UNC_DT_IMPORT, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  uint32_t alarm_type  =  UNC_PORT_CONGES;
+  uint32_t oper_type  =  UNC_OP_DELETE;
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  int ret  =  ktportobj.HandleDriverAlarms(
+    db_conn, UNC_DT_IMPORT, alarm_type, oper_type, &k, &v);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-/*HandleDriverAlarms function when GETONEROW and UPDATEONEROW is SUCCESS for UNC_PORT_CONGES alarm */
+/*HandleDriverAlarms function when GETONEROW
+ * and UPDATEONEROW is SUCCESS for UNC_PORT_CONGES alarm */
 TEST_F(PortTest, HandleDriverAlarms_14) {
   key_port_t k;
   val_port_st v;
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  uint32_t alarm_type = UNC_PORT_CONGES;
-  uint32_t oper_type = UNC_OP_DELETE;
-  OdbcmConnectionHandler *db_conn =NULL;
+  uint32_t alarm_type  =  UNC_PORT_CONGES;
+  uint32_t oper_type  =  UNC_OP_DELETE;
+  OdbcmConnectionHandler *db_conn  = NULL;
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  int ret = ktportobj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  int ret  =  ktportobj.HandleDriverAlarms(
+    db_conn, UNC_DT_STATE, alarm_type, oper_type, &k, &v);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 /* HandleDriverAlarms when GETONEROW and UPDATEONEROW are success */
@@ -1819,17 +2080,20 @@ TEST_F(PortTest, HandleDriverAlarm_15) {
   getKeyForKtPort1(k);
 
   Kt_Port ktportobj;
-  uint32_t alarm_type = UNC_PORT_CONGES;
-  uint32_t oper_type = UNC_OP_DELETE;
-  OdbcmConnectionHandler *db_conn =NULL;
+  uint32_t alarm_type  =  UNC_PORT_CONGES;
+  uint32_t oper_type  =  UNC_OP_DELETE;
+  OdbcmConnectionHandler *db_conn  = NULL;
   ServerSession sess;
   sess.stub_setAddOutput((uint32_t)UNC_OP_UPDATE);
   sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
   sess.stub_setAddOutput((uint32_t)UNC_KT_PORT);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  int ret = ktportobj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(UPPL_RC_FAILURE, ret);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
+  int ret  =  ktportobj.HandleDriverAlarms(
+    db_conn, UNC_DT_STATE, alarm_type, oper_type, &k, &v);
+  EXPECT_EQ(UNC_UPPL_RC_FAILURE, ret);
 }
 
 /*SubDomainOperStatusHandling when GETBULKROWS is success*/
@@ -1838,13 +2102,15 @@ TEST_F(PortTest, SubDomainOperStatusHandling_Dbneg_01) {
   Kt_Port ktportobj;
   memset(v.valid, '\0', sizeof(v.valid));
   memset(v.port.valid, '\0', sizeof(v.port.valid));
-  string controller_name = "Controller1";
-  string switch_id = "switch id1";
-  string physical_port_id = "Port1";
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret = ktportobj.SubDomainOperStatusHandling(db_conn, UNC_DT_STATE, controller_name, switch_id, physical_port_id);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  string controller_name  =  "Controller1";
+  string switch_id  =  "switch id1";
+  string physical_port_id  =  "Port1";
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
+  int ret  =  ktportobj.SubDomainOperStatusHandling(
+    db_conn, UNC_DT_STATE, controller_name, switch_id, physical_port_id);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /*SubDomainOperStatusHandling when GETBULKROWS is failed */
@@ -1853,13 +2119,15 @@ TEST_F(PortTest, SubDomainOperStatusHandling_Dbneg_02) {
   Kt_Port ktportobj;
   memset(v.valid, '\0', sizeof(v.valid));
   memset(v.port.valid, '\0', sizeof(v.port.valid));
-  string controller_name = "Controller1";
-  string switch_id = "switch id1";
-  string physical_port_id = "Port1";
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
-  int ret = ktportobj.SubDomainOperStatusHandling(db_conn, UNC_DT_STATE, controller_name, switch_id, physical_port_id);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  string controller_name  =  "Controller1";
+  string switch_id  =  "switch id1";
+  string physical_port_id  =  "Port1";
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
+  int ret  =  ktportobj.SubDomainOperStatusHandling(
+    db_conn, UNC_DT_STATE, controller_name, switch_id, physical_port_id);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /*NotifyOperStatus when GETBULKROWS is failed */
@@ -1870,10 +2138,12 @@ TEST_F(PortTest, NotifyOperStatus_01) {
 
   vector<OperStatusHolder> ref_oper_status;
   Kt_Port ktportobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
-  int ret = ktportobj.NotifyOperStatus(db_conn, UNC_DT_STATE, &k, &v, ref_oper_status);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
+  int ret  =  ktportobj.NotifyOperStatus(
+    db_conn, UNC_DT_STATE, &k, &v, ref_oper_status);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 /*GetPortValStructure function calling */
@@ -1885,14 +2155,15 @@ TEST_F(PortTest, GetPortValStructure_01) {
   val_port_st_t *val_port_valid_st(NULL);
   vector<TableAttrSchema> vect_table_attr_schema;
   vector<string> vect_prim_keys;
-  uint8_t operation_type=UNC_OP_UPDATE;
+  uint8_t operation_type = UNC_OP_UPDATE;
   stringstream valid;
   Kt_Port ktportobj;
-  OdbcmConnectionHandler *db_conn =NULL;
-  int ret = UPPL_RC_SUCCESS;
-  ktportobj.GetPortValStructure(db_conn, obj_val_port,vect_table_attr_schema, vect_prim_keys,
-                         operation_type, val_port_valid_st,valid);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  OdbcmConnectionHandler *db_conn  = NULL;
+  int ret  =  UNC_RC_SUCCESS;
+  ktportobj.GetPortValStructure(
+    db_conn, obj_val_port, vect_table_attr_schema, vect_prim_keys,
+                         operation_type, val_port_valid_st, valid);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /* UpdatePortValidFlag when there is no record in DB*/
@@ -1906,12 +2177,13 @@ TEST_F(PortTest, UpdatePortValidFlag_DbNeg_01) {
   val_port_st_t v_st;
   memset(&v_st, 0, sizeof(v_st));
 
-  unc_keytype_validflag_t new_valid_val = UNC_VF_VALID;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_RECORD_NOT_FOUND);
-  int ret =  ktportobj.UpdatePortValidFlag(db_conn, &k, &v, v_st,
+  unc_keytype_validflag_t new_valid_val  =  UNC_VF_VALID;
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_RECORD_NOT_FOUND);
+  int ret = ktportobj.UpdatePortValidFlag(db_conn, &k, &v, v_st,
                                            new_valid_val, UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 /* UpdatePortValidFlag when GETONEROW is success */
@@ -1925,12 +2197,13 @@ TEST_F(PortTest, UpdatePortValidFlag_Dbpos_02) {
   val_port_st_t v_st;
   memset(&v_st, 0, sizeof(v_st));
 
-  unc_keytype_validflag_t new_valid_val = UNC_VF_VALID;
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktportobj.UpdatePortValidFlag(db_conn, &k, &v, v_st,
+  unc_keytype_validflag_t new_valid_val  =  UNC_VF_VALID;
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktportobj.UpdatePortValidFlag(db_conn, &k, &v, v_st,
                                            new_valid_val, UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /*UpdatePortValidFlag when GETONEROW is success */
@@ -1945,9 +2218,10 @@ TEST_F(PortTest, UpdatePortValidFlag_NoFillValue_03) {
   memset(&v_st, 0, sizeof(v_st));
 
   unc_keytype_validflag_t new_valid_val(UNC_VF_INVALID);
-  OdbcmConnectionHandler *db_conn =NULL;
-  unc::uppl::ODBCManager::stub_setResultcode(unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  ktportobj.UpdatePortValidFlag(db_conn, &k, &v, v_st,
+  OdbcmConnectionHandler *db_conn  = NULL;
+  unc::uppl::ODBCManager::stub_setResultcode(
+    unc::uppl::ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  int ret = ktportobj.UpdatePortValidFlag(db_conn, &k, &v, v_st,
                                            new_valid_val, UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_UPDATE, ret);
 }
index 11a09545a3111b77e1d683af0e44246af48a962e..bcc2b369d88021b78b380bcf22c1b98f38d2edde 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 NEC Corporation
+ * Copyright (c) 2012-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -36,6 +36,7 @@
 #include <pfc/ipc_client.h>
 #include <pfc/ipc_pfcd.h>
 #include <physical_common_def.hh>
+#include <itc_read_request.hh>
 #include <unc/uppl_common.h>
 #include <unc/keytype.h>
 #include <odbcm_mgr.hh>
@@ -50,7 +51,6 @@
 #include <ipct_util.hh>
 #include <physicallayer.hh>
 #include "PhysicalLayerStub.hh"
-#include <itc_read_request.hh>
 #include "ut_util.hh"
 
 using namespace pfc;
@@ -61,11 +61,10 @@ using namespace unc::uppl::test;
 using namespace std;
 
 class SwitchTest
-  : public UpplTestEnv
-{
+  : public UpplTestEnv {
 };
 
-static char pkName1[] = "{0x10,0xbc}";
+static char pkName1[] = "{0x10, 0xbc}";
 static char pkName2[] = "controller1";
 
 static void getKeyForKtSwitch1(key_switch_t& k) {
@@ -79,11 +78,11 @@ static void getValForKtSwitch1(val_switch_t& v, bool zero) {
     memset(&v, 0, sizeof(v));
   }
 
-  // uint8_t description[128]
+  //  uint8_t description[128]
   pfc_strlcpy(reinterpret_cast<char *>(v.description), "switch description",
               sizeof(v.description));
 
-  // uint8_t model[16]
+  //  uint8_t model[16]
   pfc_strlcpy(reinterpret_cast<char *>(v.model), "switch model",
               sizeof(v.model));
 
@@ -96,10 +95,10 @@ static void getValForKtSwitch1(val_switch_t& v, bool zero) {
   inet_pton(AF_INET6, (const char *)ipv6_add.c_str(),
             &v.ipv6_address.s6_addr);
 
-  // uint8_t admin_status
+  //  uint8_t admin_status
   v.admin_status = 0;
 
-  // uint8_t domain_name[32]
+  //  uint8_t domain_name[32]
   pfc_strlcpy(reinterpret_cast<char *>(v.domain_name), "domain_name",
               sizeof(v.domain_name));
 }
@@ -112,17 +111,17 @@ static void getValForKtSwitch1(val_switch_st_t& v) {
   memset(&v, 0, sizeof(v));
   getValForKtSwitch1(v.switch_val, false);
 
-  // uint8_t manufacturer
+  //  uint8_t manufacturer
   pfc_strlcpy(reinterpret_cast<char *>(v.manufacturer), "NEC CORP",
               sizeof(v.manufacturer));
 
-  // uint8_t hardware
+  //  uint8_t hardware
   pfc_strlcpy(reinterpret_cast<char *>(v.hardware), "HW", sizeof(v.hardware));
 
-  // uint8_t software
+  //  uint8_t software
   pfc_strlcpy(reinterpret_cast<char *>(v.software), "SW", sizeof(v.software));
 
-  // uint64_t alarms_status
+  //  uint64_t alarms_status
   v.alarms_status = 0x01;
 }
 
@@ -140,29 +139,29 @@ static void getReqHeader(physical_request_header& rh,
 }
 
 /********TEST CASES***************/
-//Validating Key:ControllerId Not found, Operation:UNC_OP_CREATE
+// Validating Key:ControllerId Not found, Operation:UNC_OP_CREATE
 TEST_F(SwitchTest, PerformSyntxCheck_controllerId_notFound_01) {
   key_switch_t k;
   val_switch_st_t v;
   Kt_Switch KtSwitchObj;
-  char pkName1[] = "{0x10,0xbc}";
+  char pkName1[] = "{0x10, 0xbc}";
   memset(k.ctr_key.controller_name, '\0', 32);
   memset(k.switch_id, '\0', 256);
   memcpy(k.switch_id, pkName1, strlen(pkName1));
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret = KtSwitchObj.PerformSyntaxValidation(db_conn, &k, &v,
-                                                operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+                                                operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-//Validating Key:ControllerId Not found, Operation:UNC_OP_UPDATE
+// Validating Key:ControllerId Not found, Operation:UNC_OP_UPDATE
 TEST_F(SwitchTest, PerformSyntxCheck_controllerId_notFound_02) {
   key_switch_t k;
   val_switch_st_t v;
   Kt_Switch KtSwitchObj;
   physical_request_header rh;
-  char pkName1[] = "{0x10,0xbc}";
+  char pkName1[] = "{0x10, 0xbc}";
   memset(k.ctr_key.controller_name, '\0', 32);
   memset(k.switch_id, '\0', 256);
   memcpy(k.switch_id, pkName1, strlen(pkName1));
@@ -171,17 +170,17 @@ TEST_F(SwitchTest, PerformSyntxCheck_controllerId_notFound_02) {
   uint32_t operation = UNC_OP_UPDATE;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret = KtSwitchObj.PerformSyntaxValidation(db_conn, &k, &v,
-                                                operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+                                                operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-//Validating Key:ControllerId Not found, Operation:UNC_OP_DELETE
+// Validating Key:ControllerId Not found, Operation:UNC_OP_DELETE
 TEST_F(SwitchTest, PerformSyntxCheck_controllerId_notFound_03) {
   key_switch_t k;
   val_switch_st_t v;
   Kt_Switch KtSwitchObj;
   physical_request_header rh;
-  char pkName1[] = "{0x10,0xbc}";
+  char pkName1[] = "{0x10, 0xbc}";
   memset(k.ctr_key.controller_name, '\0', 32);
   memset(k.switch_id, '\0', 256);
   memcpy(k.switch_id, pkName1, strlen(pkName1));
@@ -190,17 +189,17 @@ TEST_F(SwitchTest, PerformSyntxCheck_controllerId_notFound_03) {
   uint32_t operation = UNC_OP_DELETE;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret = KtSwitchObj.PerformSyntaxValidation(db_conn, &k, &v,
-                                                operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+                                                operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-//Validating Key:ControllerId Not found, Operation:UNC_OP_READ
+// Validating Key:ControllerId Not found, Operation:UNC_OP_READ
 TEST_F(SwitchTest, PerformSyntxCheck_controllerId_notFound_04) {
   key_switch_t k;
   val_switch_st_t v;
   Kt_Switch KtSwitchObj;
   physical_request_header rh;
-  char pkName1[] = "{0x10,0xbc}";
+  char pkName1[] = "{0x10, 0xbc}";
   memset(k.ctr_key.controller_name, '\0', 32);
   memset(k.switch_id, '\0', 256);
   memcpy(k.switch_id, pkName1, strlen(pkName1));
@@ -209,11 +208,11 @@ TEST_F(SwitchTest, PerformSyntxCheck_controllerId_notFound_04) {
   uint32_t operation = UNC_OP_READ;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret = KtSwitchObj.PerformSyntaxValidation(db_conn, &k, &v,
-                                                operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+                                                operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-//Validating Key:SwitchId_notFound, Operation:UNC_OP_CREATE
+// Validating Key:SwitchId_notFound, Operation:UNC_OP_CREATE
 TEST_F(SwitchTest, PerformSyntxCheck_SwitchId_notFound_01) {
   key_switch_t k;
   val_switch_st_t v;
@@ -228,11 +227,11 @@ TEST_F(SwitchTest, PerformSyntxCheck_SwitchId_notFound_01) {
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret = KtSwitchObj.PerformSyntaxValidation(db_conn, &k, &v,
-                                                operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+                                                operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-//Validating Key:SwitchId_notFound, Operation:UNC_OP_UPDATE
+// Validating Key:SwitchId_notFound, Operation:UNC_OP_UPDATE
 TEST_F(SwitchTest, PerformSyntxCheck_SwitchId_notFound_02) {
   key_switch_t k;
   val_switch_st_t v;
@@ -247,11 +246,11 @@ TEST_F(SwitchTest, PerformSyntxCheck_SwitchId_notFound_02) {
   uint32_t operation = UNC_OP_UPDATE;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret = KtSwitchObj.PerformSyntaxValidation(db_conn, &k, &v,
-                                                operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+                                                operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-//Validating Key:SwitchId_notFound, Operation:UNC_OP_DELETE
+// Validating Key:SwitchId_notFound, Operation:UNC_OP_DELETE
 TEST_F(SwitchTest, PerformSyntxCheck_SwitchId_notFound_03) {
   key_switch_t k;
   val_switch_st_t v;
@@ -265,11 +264,16 @@ TEST_F(SwitchTest, PerformSyntxCheck_SwitchId_notFound_03) {
   rh.key_type = UNC_KT_SWITCH;
   uint32_t operation = UNC_OP_DELETE;
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret = KtSwitchObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+  int ret = KtSwitchObj.PerformSyntaxValidation(
+      db_conn,
+      &k,
+      &v,
+      operation,
+      UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-//Validating Key:SwitchId_notFound, Operation:UNC_OP_READ
+// Validating Key:SwitchId_notFound, Operation:UNC_OP_READ
 TEST_F(SwitchTest, PerformSyntxCheck_SwitchId_notFound_04) {
   key_switch_t k;
   val_switch_st_t v;
@@ -284,11 +288,11 @@ TEST_F(SwitchTest, PerformSyntxCheck_SwitchId_notFound_04) {
   uint32_t operation = UNC_OP_READ;
   OdbcmConnectionHandler *db_conn =NULL;
   int ret = KtSwitchObj.PerformSyntaxValidation(db_conn, &k, &v,
-                                                operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_CFG_SYNTAX, ret);
+                                                operation, UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_CFG_SYNTAX, ret);
 }
 
-//Validation of key and value struct-Success
+// Validation of key and value struct-Success
 TEST_F(SwitchTest, PerformSyntxCheck_ValStruct_success) {
   key_switch_t k;
   val_switch_t v;
@@ -297,12 +301,16 @@ TEST_F(SwitchTest, PerformSyntxCheck_ValStruct_success) {
   getValForKtSwitch1(v);
   uint32_t operation = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret = KtSwitchObj.PerformSyntaxValidation(db_conn,&k,&v,operation,UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = KtSwitchObj.PerformSyntaxValidation(db_conn,
+                                                &k,
+                                                &v,
+                                                operation,
+                                                UNC_DT_STATE);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /*******IsKeyExists*************/
-//No key given..Returning error
+// No key given..Returning error
 TEST_F(SwitchTest, IskeyExists_NoKey) {
   key_switch_t k;
   Kt_Switch KtSwitchObj;
@@ -313,16 +321,16 @@ TEST_F(SwitchTest, IskeyExists_NoKey) {
   rh.key_type = UNC_KT_SWITCH;
   vector<string> sw_vect_key_value;
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret = KtSwitchObj.IsKeyExists(db_conn,UNC_DT_STATE,sw_vect_key_value);
-  EXPECT_EQ(UPPL_RC_ERR_BAD_REQUEST, ret);
+  int ret = KtSwitchObj.IsKeyExists(db_conn, UNC_DT_STATE, sw_vect_key_value);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_BAD_REQUEST, ret);
 }
 
-//DB connection not available,Returns Error
+// DB connection not available, Returns Error
 TEST_F(SwitchTest, IskeyExists_Db_Connxn_Error) {
   key_switch_t k;
   Kt_Switch KtSwitchObj;
   physical_request_header rh;
-  char pkName1[] = "{0x10,0xbc}";
+  char pkName1[] = "{0x10, 0xbc}";
   char pkName2[] = "controller1";
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkName2, strlen(pkName2));
@@ -336,16 +344,16 @@ TEST_F(SwitchTest, IskeyExists_Db_Connxn_Error) {
   OdbcmConnectionHandler *db_conn =NULL;
   ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS,
                                   ODBCM_RC_CONNECTION_ERROR);
-  int ret = KtSwitchObj.IsKeyExists(db_conn,UNC_DT_STATE,sw_vect_key_value);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  int ret = KtSwitchObj.IsKeyExists(db_conn, UNC_DT_STATE, sw_vect_key_value);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-//DB returned success for Row exists
+// DB returned success for Row exists
 TEST_F(SwitchTest, IskeyExists_Success) {
   key_switch_t k;
   Kt_Switch KtSwitchObj;
   physical_request_header rh;
-  char pkName1[] = "{0x10,0xbc}";
+  char pkName1[] = "{0x10, 0xbc}";
   char pkName2[] = "controller1";
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkName2, strlen(pkName2));
@@ -357,17 +365,18 @@ TEST_F(SwitchTest, IskeyExists_Success) {
   sw_vect_key_value.push_back(pkName1);
   sw_vect_key_value.push_back(pkName2);
   OdbcmConnectionHandler *db_conn =NULL;
-  ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  int ret = KtSwitchObj.IsKeyExists(db_conn,UNC_DT_STATE,sw_vect_key_value);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS,
+                                  ODBCM_RC_ROW_EXISTS);
+  int ret = KtSwitchObj.IsKeyExists(db_conn, UNC_DT_STATE, sw_vect_key_value);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//DB Returned failure for IsRowExists
+// DB Returned failure for IsRowExists
 TEST_F(SwitchTest, IskeyExists_Error) {
   key_switch_t k;
   Kt_Switch KtSwitchObj;
   physical_request_header rh;
-  char pkName1[] = "{0x10,0xbc}";
+  char pkName1[] = "{0x10, 0xbc}";
   char pkName2[] = "controller1";
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkName2, strlen(pkName2));
@@ -380,18 +389,18 @@ TEST_F(SwitchTest, IskeyExists_Error) {
   sw_vect_key_value.push_back(pkName2);
   OdbcmConnectionHandler *db_conn =NULL;
   ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS, ODBCM_RC_FAILED);
-  int ret = KtSwitchObj.IsKeyExists(db_conn,UNC_DT_STATE,sw_vect_key_value);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  int ret = KtSwitchObj.IsKeyExists(db_conn, UNC_DT_STATE, sw_vect_key_value);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 /****DeleteKeyInstance****/
 
-//Delete operation on unsupported DB: STARTUP
+// Delete operation on unsupported DB: STARTUP
 TEST_F(SwitchTest, DeleteKeyInstance_UnsupportedDB_01) {
   key_switch_t k;
   Kt_Switch KtSwitchObj;
   physical_request_header rh;
-  char pkName1[] = "{0x10,0xbc}";
+  char pkName1[] = "{0x10, 0xbc}";
   char pkName2[] = "controller1";
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkName2, strlen(pkName2));
@@ -399,16 +408,19 @@ TEST_F(SwitchTest, DeleteKeyInstance_UnsupportedDB_01) {
   memcpy(k.switch_id, pkName1, strlen(pkName1));
   getReqHeader(rh, UNC_OP_READ_SIBLING_COUNT, UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret = KtSwitchObj.DeleteKeyInstance(db_conn, &k, UNC_DT_STARTUP, UNC_KT_SWITCH);  
-  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+  int ret = KtSwitchObj.DeleteKeyInstance(db_conn,
+                                          &k,
+                                          UNC_DT_STARTUP,
+                                          UNC_KT_SWITCH);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
-//Delete for unsupported DB UNC_DT_CANDIDATE
+// Delete for unsupported DB UNC_DT_CANDIDATE
 TEST_F(SwitchTest, DeleteKeyInstance_UnsupportedDB_02) {
   key_switch_t k;
   Kt_Switch KtSwitchObj;
   physical_request_header rh;
-  char pkName1[] = "{0x10,0xbc}";
+  char pkName1[] = "{0x10, 0xbc}";
   char pkName2[] = "controller1";
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkName2, strlen(pkName2));
@@ -416,16 +428,19 @@ TEST_F(SwitchTest, DeleteKeyInstance_UnsupportedDB_02) {
   memcpy(k.switch_id, pkName1, strlen(pkName1));
   getReqHeader(rh, UNC_OP_READ_SIBLING_COUNT, UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret = KtSwitchObj.DeleteKeyInstance(db_conn, &k, UNC_DT_CANDIDATE, UNC_KT_SWITCH);  
-  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+  int ret = KtSwitchObj.DeleteKeyInstance(db_conn,
+                                          &k,
+                                          UNC_DT_CANDIDATE,
+                                          UNC_KT_SWITCH);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
-//Delete for unsupported DB UNC_DT_RUNNING
+// Delete for unsupported DB UNC_DT_RUNNING
 TEST_F(SwitchTest, DeleteKeyInstance_UnsupportedDB_03) {
   key_switch_t k;
   Kt_Switch KtSwitchObj;
   physical_request_header rh;
-  char pkName1[] = "{0x10,0xbc}";
+  char pkName1[] = "{0x10, 0xbc}";
   char pkName2[] = "controller1";
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkName2, strlen(pkName2));
@@ -433,11 +448,14 @@ TEST_F(SwitchTest, DeleteKeyInstance_UnsupportedDB_03) {
   memcpy(k.switch_id, pkName1, strlen(pkName1));
   getReqHeader(rh, UNC_OP_READ_SIBLING_COUNT, UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret = KtSwitchObj.DeleteKeyInstance(db_conn, &k, UNC_DT_RUNNING, UNC_KT_SWITCH);  
-  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+  int ret = KtSwitchObj.DeleteKeyInstance(db_conn,
+                                          &k,
+                                          UNC_DT_RUNNING,
+                                          UNC_KT_SWITCH);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
-//Delete operation failed in switch common table
+// Delete operation failed in switch common table
 TEST_F(SwitchTest, DeleteKeyInstance_Fail_In_Db) {
   key_switch_t k;
   memset(&k, 0, sizeof(key_switch_t));
@@ -445,49 +463,64 @@ TEST_F(SwitchTest, DeleteKeyInstance_Fail_In_Db) {
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret = KtSwitchObj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, UNC_KT_SWITCH);
-  EXPECT_EQ(UPPL_RC_ERR_DB_DELETE, ret);
+  int ret = KtSwitchObj.DeleteKeyInstance(db_conn,
+                                          &k,
+                                          UNC_DT_STATE,
+                                          UNC_KT_SWITCH);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_DELETE, ret);
 }
 
-//Delete operation failed due to DB connection not available
-TEST_F(SwitchTest, DeleteKeyInstance_Db_Conxn_Error) { 
+// Delete operation failed due to DB connection not available
+TEST_F(SwitchTest, DeleteKeyInstance_Db_Conxn_Error) {
   key_switch_t k;
   memset(&k, 0, sizeof(key_switch_t));
   Kt_Switch KtSwitchObj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
-  ODBCManager::stub_setResultcode(ODBCManager::DELETEONEROW, ODBCM_RC_CONNECTION_ERROR);
-  int ret = KtSwitchObj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, UNC_KT_SWITCH);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  ODBCManager::stub_setResultcode(ODBCManager::DELETEONEROW,
+                                  ODBCM_RC_CONNECTION_ERROR);
+  int ret = KtSwitchObj.DeleteKeyInstance(db_conn,
+                                          &k,
+                                          UNC_DT_STATE,
+                                          UNC_KT_SWITCH);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
-//Row not Exixts to Delete
-TEST_F(SwitchTest, DeleteKeyInstance_RowNotExists) { 
+// Row not Exixts to Delete
+TEST_F(SwitchTest, DeleteKeyInstance_RowNotExists) {
   key_switch_t k;
   memset(&k, 0, sizeof(key_switch_t));
   Kt_Switch KtSwitchObj;
   OdbcmConnectionHandler *db_conn =NULL;
-  ODBCManager::stub_setResultcode(ODBCManager::DELETEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
-  int ret = KtSwitchObj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, UNC_KT_SWITCH);
-  EXPECT_EQ(UPPL_RC_ERR_DB_DELETE, ret);
+  ODBCManager::stub_setResultcode(ODBCManager::DELETEONEROW,
+                                  ODBCM_RC_ROW_NOT_EXISTS);
+  int ret = KtSwitchObj.DeleteKeyInstance(db_conn,
+                                          &k,
+                                          UNC_DT_STATE,
+                                          UNC_KT_SWITCH);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_DELETE, ret);
 }
 
-//DElete operation Success
-TEST_F(SwitchTest, DeleteKeyInstance_Success) { 
+// DElete operation Success
+TEST_F(SwitchTest, DeleteKeyInstance_Success) {
   key_switch_t k;
   memset(&k, 0, sizeof(key_switch_t));
   Kt_Switch KtSwitchObj;
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
-  ODBCManager::stub_setResultcode(ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
-  int ret = KtSwitchObj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, UNC_KT_SWITCH);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  ODBCManager::stub_setResultcode(ODBCManager::DELETEONEROW,
+                                  ODBCM_RC_SUCCESS);
+  int ret = KtSwitchObj.DeleteKeyInstance(db_conn,
+                                          &k,
+                                          UNC_DT_STATE,
+                                          UNC_KT_SWITCH);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//Delete Child classess Success
-TEST_F(SwitchTest, DeleteKeyInstance_Child_Del) { 
+// Delete Child classess Success
+TEST_F(SwitchTest, DeleteKeyInstance_Child_Del) {
   key_logical_port_t k;
   memset(&k, 0, sizeof(key_logical_port_t));
   Kt_Switch KtSwitchObj;
@@ -496,12 +529,15 @@ TEST_F(SwitchTest, DeleteKeyInstance_Child_Del) {
   OdbcmConnectionHandler *db_conn =NULL;
   ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   ODBCManager::stub_setResultcode(ODBCManager::DELETEONEROW, ODBCM_RC_SUCCESS);
-  int ret = KtSwitchObj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, UNC_KT_SWITCH);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = KtSwitchObj.DeleteKeyInstance(db_conn,
+                                          &k,
+                                          UNC_DT_STATE,
+                                          UNC_KT_SWITCH);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//Error Deleting port in DB
-TEST_F(SwitchTest, DeleteKeyInstance_Del_port) { 
+// Error Deleting port in DB
+TEST_F(SwitchTest, DeleteKeyInstance_Del_port) {
   key_port_t k;
   memset(&k, 0, sizeof(key_port_t));
   Kt_Switch KtSwitchObj;
@@ -510,12 +546,15 @@ TEST_F(SwitchTest, DeleteKeyInstance_Del_port) {
   OdbcmConnectionHandler *db_conn =NULL;
   ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   ODBCManager::stub_setResultcode(ODBCManager::DELETEONEROW, ODBCM_RC_FAILED);
-  int ret = KtSwitchObj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, UNC_KT_SWITCH);
-  EXPECT_EQ(UPPL_RC_ERR_DB_DELETE, ret);
+  int ret = KtSwitchObj.DeleteKeyInstance(db_conn,
+                                          &k,
+                                          UNC_DT_STATE,
+                                          UNC_KT_SWITCH);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_DELETE, ret);
 }
 
-//No Child Instance exist to delete
-TEST_F(SwitchTest, DeleteKeyInstance_NoChildInstance) { 
+// No Child Instance exist to delete
+TEST_F(SwitchTest, DeleteKeyInstance_NoChildInstance) {
   key_switch_t k;
   getKeyForKtSwitch1(k);
 
@@ -523,19 +562,24 @@ TEST_F(SwitchTest, DeleteKeyInstance_NoChildInstance) {
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_CREATE, UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
-  ODBCManager::stub_setResultcode(ODBCManager::DELETEONEROW, ODBCM_RC_ROW_NOT_EXISTS);
-  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret = KtSwitchObj.DeleteKeyInstance(db_conn, &k, UNC_DT_STATE, UNC_KT_SWITCH);
-  EXPECT_EQ(UPPL_RC_ERR_DB_DELETE, ret);
+  ODBCManager::stub_setResultcode(ODBCManager::DELETEONEROW,
+                                  ODBCM_RC_ROW_NOT_EXISTS);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW,
+                                  ODBCM_RC_SUCCESS);
+  int ret = KtSwitchObj.DeleteKeyInstance(db_conn,
+                                          &k,
+                                          UNC_DT_STATE,
+                                          UNC_KT_SWITCH);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_DELETE, ret);
 }
 
 /******PerformSemanticValidatin***********/
-//Key for parent not exists
+// Key for parent not exists
 TEST_F(SwitchTest, PerformSemanticValid_NoParentKey) {
   key_switch_t k;
   val_switch_st_t v;
   Kt_Switch KtSwitchObj;
-  char pkName1[] = "{0x10,0xbc}";
+  char pkName1[] = "{0x10, 0xbc}";
   char pkName2[] = "controller1";
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkName2, strlen(pkName2));
@@ -544,19 +588,24 @@ TEST_F(SwitchTest, PerformSemanticValid_NoParentKey) {
   OdbcmConnectionHandler *db_conn =NULL;
   uint32_t operation = UNC_OP_CREATE;
   vector<string> sw_vect_key_value;
-  
-  ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS, ODBCM_RC_SUCCESS);
-  int ret = KtSwitchObj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_STATE);
-  
-  EXPECT_EQ(UPPL_RC_ERR_PARENT_DOES_NOT_EXIST, ret);
+
+  ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS,
+                                  ODBCM_RC_SUCCESS);
+  int ret = KtSwitchObj.PerformSemanticValidation(db_conn,
+                                                  &k,
+                                                  &v,
+                                                  operation,
+                                                  UNC_DT_STATE);
+
+  EXPECT_EQ(UNC_UPPL_RC_ERR_PARENT_DOES_NOT_EXIST, ret);
 }
 
-//Update operation not allowed
+// Update operation not allowed
 TEST_F(SwitchTest, PerformSemanticValid_Upd_NotAllowed) {
   key_switch_t k;
   val_switch_st_t v;
   Kt_Switch KtSwitchObj;
-  char pkName1[] = "{0x10,0xbc}";
+  char pkName1[] = "{0x10, 0xbc}";
   char pkName2[] = "controller1";
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkName2, strlen(pkName2));
@@ -567,19 +616,24 @@ TEST_F(SwitchTest, PerformSemanticValid_Upd_NotAllowed) {
   vector<string> sw_vect_key_value;
   sw_vect_key_value.push_back(pkName1);
   sw_vect_key_value.push_back(pkName2);
-  
-  ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
-  int ret = KtSwitchObj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_STATE);
-  
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+
+  ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS,
+                                  ODBCM_RC_CONNECTION_ERROR);
+  int ret = KtSwitchObj.PerformSemanticValidation(db_conn,
+                                                  &k,
+                                                  &v,
+                                                  operation,
+                                                  UNC_DT_STATE);
+
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-//Delete operation not allowed
+// Delete operation not allowed
 TEST_F(SwitchTest, PerformSemanticValid_DEl_NotAllowed) {
   key_switch_t k;
   val_switch_st_t v;
   Kt_Switch KtSwitchObj;
-  char pkName1[] = "{0x10,0xbc}";
+  char pkName1[] = "{0x10, 0xbc}";
   char pkName2[] = "controller1";
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkName2, strlen(pkName2));
@@ -590,19 +644,24 @@ TEST_F(SwitchTest, PerformSemanticValid_DEl_NotAllowed) {
   vector<string> sw_vect_key_value;
   sw_vect_key_value.push_back(pkName1);
   sw_vect_key_value.push_back(pkName2);
-  
-  ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
-  int ret = KtSwitchObj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_STATE);
-  
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+
+  ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS,
+                                  ODBCM_RC_CONNECTION_ERROR);
+  int ret = KtSwitchObj.PerformSemanticValidation(db_conn,
+                                                  &k,
+                                                  &v,
+                                                  operation,
+                                                  UNC_DT_STATE);
+
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-//Read operation not allowed
+// Read operation not allowed
 TEST_F(SwitchTest, PerformSemanticValid_Read_NotAllowed) {
   key_switch_t k;
   val_switch_st_t v;
   Kt_Switch KtSwitchObj;
-  char pkName1[] = "{0x10,0xbc}";
+  char pkName1[] = "{0x10, 0xbc}";
   char pkName2[] = "controller1";
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkName2, strlen(pkName2));
@@ -613,20 +672,25 @@ TEST_F(SwitchTest, PerformSemanticValid_Read_NotAllowed) {
   vector<string> sw_vect_key_value;
   sw_vect_key_value.push_back(pkName1);
   sw_vect_key_value.push_back(pkName2);
-  
-  ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS, ODBCM_RC_CONNECTION_ERROR);
-  int ret = KtSwitchObj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_STATE);
-  
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+
+  ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS,
+                                  ODBCM_RC_CONNECTION_ERROR);
+  int ret = KtSwitchObj.PerformSemanticValidation(db_conn,
+                                                  &k,
+                                                  &v,
+                                                  operation,
+                                                  UNC_DT_STATE);
+
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
-//create operation not allowed for Already
-//existing key
+// create operation not allowed for Already
+// existing key
 TEST_F(SwitchTest, PerformSemanticValid_CREATE_NotAllowed) {
   key_switch_t k;
   val_switch_st_t v;
   Kt_Switch KtSwitchObj;
-  char pkName1[] = "{0x10,0xbc}";
+  char pkName1[] = "{0x10, 0xbc}";
   char pkName2[] = "controller1";
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkName2, strlen(pkName2));
@@ -637,19 +701,24 @@ TEST_F(SwitchTest, PerformSemanticValid_CREATE_NotAllowed) {
   vector<string> sw_vect_key_value;
   sw_vect_key_value.push_back(pkName1);
   sw_vect_key_value.push_back(pkName2);
-  
-  ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  int ret = KtSwitchObj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_STATE);
-  
-  EXPECT_EQ(UPPL_RC_ERR_INSTANCE_EXISTS, ret);
+
+  ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS,
+                                  ODBCM_RC_ROW_EXISTS);
+  int ret = KtSwitchObj.PerformSemanticValidation(db_conn,
+                                                  &k,
+                                                  &v,
+                                                  operation,
+                                                  UNC_DT_STATE);
+
+  EXPECT_EQ(UNC_UPPL_RC_ERR_INSTANCE_EXISTS, ret);
 }
 
-//PerformSemanticValid Success for update
+// PerformSemanticValid Success for update
 TEST_F(SwitchTest, PerformSemanticValid_Update_Success) {
   key_switch_t k;
   val_switch_st_t v;
   Kt_Switch KtSwitchObj;
-  char pkName1[] = "{0x10,0xbc}";
+  char pkName1[] = "{0x10, 0xbc}";
   char pkName2[] = "controller1";
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkName2, strlen(pkName2));
@@ -660,19 +729,24 @@ TEST_F(SwitchTest, PerformSemanticValid_Update_Success) {
   vector<string> sw_vect_key_value;
   sw_vect_key_value.push_back(pkName1);
   sw_vect_key_value.push_back(pkName2);
-  
-  ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  int ret = KtSwitchObj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_STATE);
-  
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+
+  ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS,
+                                  ODBCM_RC_ROW_EXISTS);
+  int ret = KtSwitchObj.PerformSemanticValidation(db_conn,
+                                                  &k,
+                                                  &v,
+                                                  operation,
+                                                  UNC_DT_STATE);
+
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//PerformSemanticValid Success for DELETE
+// PerformSemanticValid Success for DELETE
 TEST_F(SwitchTest, PerformSemanticValid_Delete_Success) {
   key_switch_t k;
   val_switch_st_t v;
   Kt_Switch KtSwitchObj;
-  char pkName1[] = "{0x10,0xbc}";
+  char pkName1[] = "{0x10, 0xbc}";
   char pkName2[] = "controller1";
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkName2, strlen(pkName2));
@@ -683,19 +757,24 @@ TEST_F(SwitchTest, PerformSemanticValid_Delete_Success) {
   vector<string> sw_vect_key_value;
   sw_vect_key_value.push_back(pkName1);
   sw_vect_key_value.push_back(pkName2);
-  
-  ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  int ret = KtSwitchObj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_STATE);
-  
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+
+  ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS,
+                                  ODBCM_RC_ROW_EXISTS);
+  int ret = KtSwitchObj.PerformSemanticValidation(db_conn,
+                                                  &k,
+                                                  &v,
+                                                  operation,
+                                                  UNC_DT_STATE);
+
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//PerformSemanticValid Success for READ
+// PerformSemanticValid Success for READ
 TEST_F(SwitchTest, PerformSemanticValid_Read_Success) {
   key_switch_t k;
   val_switch_st_t v;
   Kt_Switch KtSwitchObj;
-  char pkName1[] = "{0x10,0xbc}";
+  char pkName1[] = "{0x10, 0xbc}";
   char pkName2[] = "controller1";
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkName2, strlen(pkName2));
@@ -706,19 +785,24 @@ TEST_F(SwitchTest, PerformSemanticValid_Read_Success) {
   vector<string> sw_vect_key_value;
   sw_vect_key_value.push_back(pkName1);
   sw_vect_key_value.push_back(pkName2);
-  
-  ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  int ret = KtSwitchObj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_STATE);
-  
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+
+  ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS,
+                                  ODBCM_RC_ROW_EXISTS);
+  int ret = KtSwitchObj.PerformSemanticValidation(db_conn,
+                                                  &k,
+                                                  &v,
+                                                  operation,
+                                                  UNC_DT_STATE);
+
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//Parent Key Not exists, DB:UNC_DT_IMPORT
+// Parent Key Not exists, DB:UNC_DT_IMPORT
 TEST_F(SwitchTest, PerformSemanticValid_Create_In_IMPORT_Fail) {
   key_switch_t k;
   val_switch_st_t v;
   Kt_Switch KtSwitchObj;
-  char pkName1[] = "{0x10,0xbc}";
+  char pkName1[] = "{0x10, 0xbc}";
   char pkName2[] = "controller1";
   memset(k.ctr_key.controller_name, '\0', 32);
   memcpy(k.ctr_key.controller_name, pkName2, strlen(pkName2));
@@ -727,15 +811,19 @@ TEST_F(SwitchTest, PerformSemanticValid_Create_In_IMPORT_Fail) {
   OdbcmConnectionHandler *db_conn =NULL;
   uint32_t operation = UNC_OP_CREATE;
   vector<string> sw_vect_key_value;
-  
+
   ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS, ODBCM_RC_SUCCESS);
-  int ret = KtSwitchObj.PerformSemanticValidation(db_conn, &k, &v, operation, UNC_DT_IMPORT);
-  
-  EXPECT_EQ(UPPL_RC_ERR_PARENT_DOES_NOT_EXIST, ret);
+  int ret = KtSwitchObj.PerformSemanticValidation(db_conn,
+                                                  &k,
+                                                  &v,
+                                                  operation,
+                                                  UNC_DT_IMPORT);
+
+  EXPECT_EQ(UNC_UPPL_RC_ERR_PARENT_DOES_NOT_EXIST, ret);
 }
 
 /******ReadSwtchValFromDb******/
-//Operation Other Than Read -Success
+// Operation Other Than Read -Success
 TEST_F(SwitchTest, ReadSwtchValFromDb_NoREAD) {
   key_switch_t k;
   val_switch_st_t v;
@@ -747,11 +835,18 @@ TEST_F(SwitchTest, ReadSwtchValFromDb_NoREAD) {
   OdbcmConnectionHandler *db_conn = NULL;
   memset(k.ctr_key.controller_name, '\0', 32);
   memset(k.switch_id, '\0', 256);
-  int ret = KtSwitchObj.ReadSwitchValFromDB(db_conn, &k, &v, UNC_DT_STATE, operation_type, max_rep_ct, vect_val_switch_st, vect_switch_id);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
-}
-
-//No Record Found to read
+  int ret = KtSwitchObj.ReadSwitchValFromDB(db_conn,
+                                            &k,
+                                            &v,
+                                            UNC_DT_STATE,
+                                            operation_type,
+                                            max_rep_ct,
+                                            vect_val_switch_st,
+                                            vect_switch_id);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
+}
+
+// No Record Found to read
 TEST_F(SwitchTest, ReadSwtchValFromDb_NoRecordFound) {
   key_switch_t k;
   val_switch_st_t v;
@@ -764,12 +859,20 @@ TEST_F(SwitchTest, ReadSwtchValFromDb_NoRecordFound) {
   uint32_t operation_type = UNC_OP_READ;
   uint32_t max_rep_ct;
   OdbcmConnectionHandler *db_conn = NULL;
-  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_RECORD_NOT_FOUND);
-  int ret = KtSwitchObj.ReadSwitchValFromDB(db_conn, &k, &v, UNC_DT_STATE, operation_type, max_rep_ct, vect_val_switch_st, vect_switch_id);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
-}
-
-//Db connxn error in Read
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW,
+                                  ODBCM_RC_RECORD_NOT_FOUND);
+  int ret = KtSwitchObj.ReadSwitchValFromDB(db_conn,
+                                            &k,
+                                            &v,
+                                            UNC_DT_STATE,
+                                            operation_type,
+                                            max_rep_ct,
+                                            vect_val_switch_st,
+                                            vect_switch_id);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+}
+
+// Db connxn error in Read
 TEST_F(SwitchTest, ReadSwtchValFromDb_DbConnxnError) {
   key_switch_t k;
   val_switch_st_t v;
@@ -784,12 +887,20 @@ TEST_F(SwitchTest, ReadSwtchValFromDb_DbConnxnError) {
   OdbcmConnectionHandler *db_conn = NULL;
   memset(k.ctr_key.controller_name, '\0', 32);
   memset(k.switch_id, '\0', 256);
-  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_CONNECTION_ERROR);
-  int ret = KtSwitchObj.ReadSwitchValFromDB(db_conn, &k, &v, UNC_DT_STATE, operation_type, max_rep_ct, vect_val_switch_st, vect_switch_id);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
-}
-
-//Read operation failed with DB
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW,
+                                  ODBCM_RC_CONNECTION_ERROR);
+  int ret = KtSwitchObj.ReadSwitchValFromDB(db_conn,
+                                            &k,
+                                            &v,
+                                            UNC_DT_STATE,
+                                            operation_type,
+                                            max_rep_ct,
+                                            vect_val_switch_st,
+                                            vect_switch_id);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
+}
+
+// Read operation failed with DB
 TEST_F(SwitchTest, ReadSwtchValFromDb_Error_Db_Get) {
   key_switch_t k;
   val_switch_st_t v;
@@ -802,12 +913,20 @@ TEST_F(SwitchTest, ReadSwtchValFromDb_Error_Db_Get) {
   uint32_t operation_type = UNC_OP_READ;
   uint32_t max_rep_ct;
   OdbcmConnectionHandler *db_conn = NULL;
-  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  int ret = KtSwitchObj.ReadSwitchValFromDB(db_conn, &k, &v, UNC_DT_STATE, operation_type, max_rep_ct, vect_val_switch_st, vect_switch_id);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
-}
-
-//Read From DB Success
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW,
+                                  ODBCM_RC_FAILED);
+  int ret = KtSwitchObj.ReadSwitchValFromDB(db_conn,
+                                            &k,
+                                            &v,
+                                            UNC_DT_STATE,
+                                            operation_type,
+                                            max_rep_ct,
+                                            vect_val_switch_st,
+                                            vect_switch_id);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
+}
+
+// Read From DB Success
 TEST_F(SwitchTest, ReadSwtchValFromDb_READ_Success) {
   key_switch_t k;
   val_switch_st_t v;
@@ -820,12 +939,20 @@ TEST_F(SwitchTest, ReadSwtchValFromDb_READ_Success) {
   uint32_t operation_type = UNC_OP_READ;
   uint32_t max_rep_ct;
   OdbcmConnectionHandler *db_conn = NULL;
-  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret = KtSwitchObj.ReadSwitchValFromDB(db_conn, &k, &v, UNC_DT_STATE, operation_type, max_rep_ct, vect_val_switch_st, vect_switch_id);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
-}
-
-//ReadBulk operation failed
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW,
+                                  ODBCM_RC_SUCCESS);
+  int ret = KtSwitchObj.ReadSwitchValFromDB(db_conn,
+                                            &k,
+                                            &v,
+                                            UNC_DT_STATE,
+                                            operation_type,
+                                            max_rep_ct,
+                                            vect_val_switch_st,
+                                            vect_switch_id);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
+}
+
+// ReadBulk operation failed
 TEST_F(SwitchTest, ReadSwtchValFromDb_READBULK_NoInstance) {
   key_switch_t k;
   val_switch_st_t v;
@@ -838,12 +965,20 @@ TEST_F(SwitchTest, ReadSwtchValFromDb_READBULK_NoInstance) {
   uint32_t operation_type = UNC_OP_READ_BULK;
   uint32_t max_rep_ct;
   OdbcmConnectionHandler *db_conn = NULL;
-  ODBCManager::stub_setResultcode(ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
-  int ret = KtSwitchObj.ReadSwitchValFromDB(db_conn, &k, &v, UNC_DT_STATE, operation_type, max_rep_ct, vect_val_switch_st, vect_switch_id);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
-}
-
-//ReadBulk operation failed:Db conxn error
+  ODBCManager::stub_setResultcode(ODBCManager::GETBULKROWS,
+                                  ODBCM_RC_RECORD_NOT_FOUND);
+  int ret = KtSwitchObj.ReadSwitchValFromDB(db_conn,
+                                            &k,
+                                            &v,
+                                            UNC_DT_STATE,
+                                            operation_type,
+                                            max_rep_ct,
+                                            vect_val_switch_st,
+                                            vect_switch_id);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+}
+
+// ReadBulk operation failed:Db conxn error
 TEST_F(SwitchTest, ReadSwtchValFromDb_READBULK_07) {
   key_switch_t k;
   val_switch_st_t v;
@@ -856,12 +991,20 @@ TEST_F(SwitchTest, ReadSwtchValFromDb_READBULK_07) {
   uint32_t operation_type = UNC_OP_READ_BULK;
   uint32_t max_rep_ct;
   OdbcmConnectionHandler *db_conn = NULL;
-  ODBCManager::stub_setResultcode(ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
-  int ret = KtSwitchObj.ReadSwitchValFromDB(db_conn, &k, &v, UNC_DT_STATE, operation_type, max_rep_ct, vect_val_switch_st, vect_switch_id);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
-}
-
-//ReadBulk operation failed:Db err
+  ODBCManager::stub_setResultcode(ODBCManager::GETBULKROWS,
+                                  ODBCM_RC_CONNECTION_ERROR);
+  int ret = KtSwitchObj.ReadSwitchValFromDB(db_conn,
+                                            &k,
+                                            &v,
+                                            UNC_DT_STATE,
+                                            operation_type,
+                                            max_rep_ct,
+                                            vect_val_switch_st,
+                                            vect_switch_id);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
+}
+
+// ReadBulk operation failed:Db err
 TEST_F(SwitchTest, ReadSwtchValFromDb_READBULK_Db_Get) {
   key_switch_t k;
   val_switch_st_t v;
@@ -874,12 +1017,20 @@ TEST_F(SwitchTest, ReadSwtchValFromDb_READBULK_Db_Get) {
   uint32_t operation_type = UNC_OP_READ_BULK;
   uint32_t max_rep_ct;
   OdbcmConnectionHandler *db_conn = NULL;
-  ODBCManager::stub_setResultcode(ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
-  int ret = KtSwitchObj.ReadSwitchValFromDB(db_conn, &k, &v, UNC_DT_STATE, operation_type, max_rep_ct, vect_val_switch_st, vect_switch_id);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
-}
-
-//ReadBulk operation Success
+  ODBCManager::stub_setResultcode(ODBCManager::GETBULKROWS,
+                                  ODBCM_RC_FAILED);
+  int ret = KtSwitchObj.ReadSwitchValFromDB(db_conn,
+                                            &k,
+                                            &v,
+                                            UNC_DT_STATE,
+                                            operation_type,
+                                            max_rep_ct,
+                                            vect_val_switch_st,
+                                            vect_switch_id);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
+}
+
+// ReadBulk operation Success
 TEST_F(SwitchTest, ReadSwtchValFromDb_READBULK_Success) {
   key_switch_t k;
   val_switch_st_t v;
@@ -892,9 +1043,17 @@ TEST_F(SwitchTest, ReadSwtchValFromDb_READBULK_Success) {
   uint32_t operation_type = UNC_OP_READ_BULK;
   uint32_t max_rep_ct;
   OdbcmConnectionHandler *db_conn = NULL;
-  ODBCManager::stub_setResultcode(ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret = KtSwitchObj.ReadSwitchValFromDB(db_conn, &k, &v, UNC_DT_STATE, operation_type, max_rep_ct, vect_val_switch_st, vect_switch_id);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  ODBCManager::stub_setResultcode(ODBCManager::GETBULKROWS,
+                                  ODBCM_RC_SUCCESS);
+  int ret = KtSwitchObj.ReadSwitchValFromDB(db_conn,
+                                            &k,
+                                            &v,
+                                            UNC_DT_STATE,
+                                            operation_type,
+                                            max_rep_ct,
+                                            vect_val_switch_st,
+                                            vect_switch_id);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /********ReadInternal****/
@@ -913,9 +1072,14 @@ TEST_F(SwitchTest, ReadInternal) {
   v.push_back(&val);
 
   OdbcmConnectionHandler *db_conn = NULL;
-  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret = KtSwitchObj.ReadInternal(db_conn, k, v, UNC_DT_STATE, operation_type);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW,
+                                  ODBCM_RC_SUCCESS);
+  int ret = KtSwitchObj.ReadInternal(db_conn,
+                                     k,
+                                     v,
+                                     UNC_DT_STATE,
+                                     operation_type);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /*****ReadBulkInternal****/
@@ -930,8 +1094,14 @@ TEST_F(SwitchTest, ReadBulkInternal_MaxCt_01) {
   vector<val_switch_st_t> vect_val_switch;
   vector<key_switch_t> vect_switch_id;
   OdbcmConnectionHandler *db_conn = NULL;
-  int ret = KtSwitchObj.ReadBulkInternal(db_conn, &k, &v, UNC_DT_STATE, max_rep_ct, vect_val_switch, vect_switch_id);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = KtSwitchObj.ReadBulkInternal(db_conn,
+                                         &k,
+                                         &v,
+                                         UNC_DT_STATE,
+                                         max_rep_ct,
+                                         vect_val_switch,
+                                         vect_switch_id);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(SwitchTest, ReadBulkInternal_NoRecordFound_02) {
@@ -945,9 +1115,16 @@ TEST_F(SwitchTest, ReadBulkInternal_NoRecordFound_02) {
   vector<val_switch_st_t> vect_val_switch;
   vector<key_switch_t> vect_switch_id;
   OdbcmConnectionHandler *db_conn = NULL;
-  ODBCManager::stub_setResultcode(ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND);
-  int ret = KtSwitchObj.ReadBulkInternal(db_conn, &k, &v, UNC_DT_STATE, max_rep_ct, vect_val_switch, vect_switch_id);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  ODBCManager::stub_setResultcode(ODBCManager::GETBULKROWS,
+                                  ODBCM_RC_RECORD_NOT_FOUND);
+  int ret = KtSwitchObj.ReadBulkInternal(db_conn,
+                                         &k,
+                                         &v,
+                                         UNC_DT_STATE,
+                                         max_rep_ct,
+                                         vect_val_switch,
+                                         vect_switch_id);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 TEST_F(SwitchTest, ReadBulkInternal_ConnError_03) {
@@ -961,9 +1138,16 @@ TEST_F(SwitchTest, ReadBulkInternal_ConnError_03) {
   vector<val_switch_st_t> vect_val_switch;
   vector<key_switch_t> vect_switch_id;
   OdbcmConnectionHandler *db_conn = NULL;
-  ODBCManager::stub_setResultcode(ODBCManager::GETBULKROWS, ODBCM_RC_CONNECTION_ERROR);
-  int ret = KtSwitchObj.ReadBulkInternal(db_conn, &k, &v, UNC_DT_STATE, max_rep_ct, vect_val_switch, vect_switch_id);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  ODBCManager::stub_setResultcode(ODBCManager::GETBULKROWS,
+                                  ODBCM_RC_CONNECTION_ERROR);
+  int ret = KtSwitchObj.ReadBulkInternal(db_conn,
+                                         &k,
+                                         &v,
+                                         UNC_DT_STATE,
+                                         max_rep_ct,
+                                         vect_val_switch,
+                                         vect_switch_id);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 TEST_F(SwitchTest, ReadBulkInternal_DbGetError_04) {
@@ -978,8 +1162,14 @@ TEST_F(SwitchTest, ReadBulkInternal_DbGetError_04) {
   vector<key_switch_t> vect_switch_id;
   OdbcmConnectionHandler *db_conn = NULL;
   ODBCManager::stub_setResultcode(ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
-  int ret = KtSwitchObj.ReadBulkInternal(db_conn, &k, &v, UNC_DT_STATE, max_rep_ct, vect_val_switch, vect_switch_id);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  int ret = KtSwitchObj.ReadBulkInternal(db_conn,
+                                         &k,
+                                         &v,
+                                         UNC_DT_STATE,
+                                         max_rep_ct,
+                                         vect_val_switch,
+                                         vect_switch_id);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
 TEST_F(SwitchTest, ReadBulkInternal_Success_04) {
@@ -993,9 +1183,16 @@ TEST_F(SwitchTest, ReadBulkInternal_Success_04) {
   vector<val_switch_st_t> vect_val_switch;
   vector<key_switch_t> vect_switch_id;
   OdbcmConnectionHandler *db_conn = NULL;
-  ODBCManager::stub_setResultcode(ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
-  int ret = KtSwitchObj.ReadBulkInternal(db_conn, &k, &v, UNC_DT_STATE, max_rep_ct, vect_val_switch, vect_switch_id);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  ODBCManager::stub_setResultcode(ODBCManager::GETBULKROWS,
+                                  ODBCM_RC_SUCCESS);
+  int ret = KtSwitchObj.ReadBulkInternal(db_conn,
+                                         &k,
+                                         &v,
+                                         UNC_DT_STATE,
+                                         max_rep_ct,
+                                         vect_val_switch,
+                                         vect_switch_id);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /********ReadBulk********/
@@ -1010,8 +1207,15 @@ TEST_F(SwitchTest, ReadBulk_NoStateDb_01) {
   pfc_bool_t is_read_next(PFC_FALSE);
   OdbcmConnectionHandler *db_conn = NULL;
   ReadRequest *read_req = NULL;
-  int ret = KtSwitchObj.ReadBulk(db_conn, &k, UNC_DT_CANDIDATE, max_rep_ct, child_index, parent_call, is_read_next,read_req);
-  EXPECT_EQ(UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
+  int ret = KtSwitchObj.ReadBulk(db_conn,
+                                 &k,
+                                 UNC_DT_CANDIDATE,
+                                 max_rep_ct,
+                                 child_index,
+                                 parent_call,
+                                 is_read_next,
+                                 read_req);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_OPERATION_NOT_ALLOWED, ret);
 }
 
 TEST_F(SwitchTest, ReadBulk_Max_Rpct_01) {
@@ -1025,8 +1229,15 @@ TEST_F(SwitchTest, ReadBulk_Max_Rpct_01) {
   pfc_bool_t is_read_next(PFC_FALSE);
   OdbcmConnectionHandler *db_conn = NULL;
   ReadRequest *read_req = NULL;
-  int ret = KtSwitchObj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index, parent_call, is_read_next,read_req);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = KtSwitchObj.ReadBulk(db_conn,
+                                 &k,
+                                 UNC_DT_STATE,
+                                 max_rep_ct,
+                                 child_index,
+                                 parent_call,
+                                 is_read_next,
+                                 read_req);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(SwitchTest, ReadBulkInternal_Success) {
@@ -1044,7 +1255,7 @@ TEST_F(SwitchTest, ReadBulkInternal_Success) {
   int ret = KtSwitchObj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct,
                                  child_index, parent_call, is_read_next,
                                  &read_req);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(SwitchTest, ReadBulkInternal_NoRecordFound) {
@@ -1058,11 +1269,17 @@ TEST_F(SwitchTest, ReadBulkInternal_NoRecordFound) {
   pfc_bool_t is_read_next(PFC_FALSE);
   OdbcmConnectionHandler *db_conn = NULL;
   ReadRequest read_req;
-  ODBCManager::stub_setResultcode(ODBCManager::GETBULKROWS, ODBCM_RC_RECORD_NOT_FOUND); 
-  int ret = KtSwitchObj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct,
-                                 child_index, parent_call, is_read_next,
+  ODBCManager::stub_setResultcode(ODBCManager::GETBULKROWS
+                                  , ODBCM_RC_RECORD_NOT_FOUND);
+  int ret = KtSwitchObj.ReadBulk(db_conn,
+                                 &k,
+                                 UNC_DT_STATE,
+                                 max_rep_ct,
+                                 child_index,
+                                 parent_call,
+                                 is_read_next,
                                  &read_req);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(SwitchTest, ReadBulk_childkey) {
@@ -1076,9 +1293,17 @@ TEST_F(SwitchTest, ReadBulk_childkey) {
   pfc_bool_t is_read_next(PFC_FALSE);
   OdbcmConnectionHandler *db_conn = NULL;
   ReadRequest *read_req = NULL;
-  ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS, ODBCM_RC_ROW_EXISTS);
-  int ret = KtSwitchObj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct, child_index, parent_call, is_read_next,read_req);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  ODBCManager::stub_setResultcode(ODBCManager::ISROWEXISTS,
+                                  ODBCM_RC_ROW_EXISTS);
+  int ret = KtSwitchObj.ReadBulk(db_conn,
+                                 &k,
+                                 UNC_DT_STATE,
+                                 max_rep_ct,
+                                 child_index,
+                                 parent_call,
+                                 is_read_next,
+                                 read_req);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(SwitchTest, ReadBulk_SwitchExists_FALSE) {
@@ -1087,16 +1312,22 @@ TEST_F(SwitchTest, ReadBulk_SwitchExists_FALSE) {
 
   Kt_Switch KtSwitchObj;
   uint32_t max_rep_ct = 1;
-  int child_index (0);
+  int child_index(0);
   pfc_bool_t parent_call(PFC_FALSE);
   pfc_bool_t is_read_next(PFC_FALSE);
   OdbcmConnectionHandler *db_conn = NULL;
   ReadRequest read_req;
-  ODBCManager::stub_setResultcode(ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS); 
-  int ret = KtSwitchObj.ReadBulk(db_conn, &k, UNC_DT_STATE, max_rep_ct,
-                                 child_index, parent_call, is_read_next,
+  ODBCManager::stub_setResultcode(ODBCManager::GETBULKROWS,
+                                  ODBCM_RC_SUCCESS);
+  int ret = KtSwitchObj.ReadBulk(db_conn,
+                                 &k,
+                                 UNC_DT_STATE,
+                                 max_rep_ct,
+                                 child_index,
+                                 parent_call,
+                                 is_read_next,
                                  &read_req);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /********PerformRead******/
@@ -1121,8 +1352,87 @@ TEST_F(SwitchTest, PerformRead_01) {
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_SWITCH);
 
-  int ret =  KtSwitchObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =  KtSwitchObj.PerformRead(db_conn,
+                                     (uint32_t)0,
+                                     (uint32_t)0,
+                                     &k,
+                                     &v,
+                                     (uint32_t)UNC_DT_STATE,
+                                     (uint32_t)UNC_OP_READ,
+                                     sess,
+                                     (uint32_t)UNC_OPT1_DETAIL,
+                                     (uint32_t)UNC_OPT2_NONE,
+                                     (uint32_t)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+}
+
+TEST_F(SwitchTest, PerformRead_002_Invalid_option1) {
+  key_switch_t k;
+  val_switch_st_t v;
+  memset(&k, 0, sizeof(key_switch_t));
+  memset(&v, 0, sizeof(val_switch_st_t));
+  Kt_Switch KtSwitchObj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_READ, UNC_DT_CANDIDATE);
+  rh.key_type = UNC_KT_SWITCH;
+  OdbcmConnectionHandler *db_conn =NULL;
+  ServerSession sess;
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
+  sess.stub_setAddOutput((uint32_t)1);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);
+  sess.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
+  sess.stub_setAddOutput((uint32_t)UNC_UPPL_RC_ERR_INVALID_OPTION1);
+  sess.stub_setAddOutput((uint32_t)UNC_KT_SWITCH);
+  int ret =  KtSwitchObj.PerformRead(db_conn,
+                                     (uint32_t)0,
+                                     (uint32_t)0,
+                                     &k,
+                                     &v,
+                                     (uint32_t)UNC_DT_STATE,
+                                     (uint32_t)UNC_OP_READ,
+                                     sess,
+                                     (uint32_t)UNC_OPT1_NORMAL,
+                                     (uint32_t)UNC_OPT2_L2DOMAIN,
+                                     (uint32_t)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+}
+
+TEST_F(SwitchTest, PerformRead_002_Invalid_option2) {
+  key_switch_t k;
+  val_switch_st_t v;
+  memset(&k, 0, sizeof(key_switch_t));
+  memset(&v, 0, sizeof(val_switch_st_t));
+  Kt_Switch KtSwitchObj;
+  physical_request_header rh;
+  getReqHeader(rh, UNC_OP_READ, UNC_DT_CANDIDATE);
+  rh.key_type = UNC_KT_SWITCH;
+  OdbcmConnectionHandler *db_conn =NULL;
+  ServerSession sess;
+  pfc::core::ipc::ServerSession::set_rest(0);
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
+  sess.stub_setAddOutput((uint32_t)1);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);
+  sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);
+  sess.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
+  sess.stub_setAddOutput((uint32_t)UNC_UPPL_RC_ERR_INVALID_OPTION2);
+  sess.stub_setAddOutput((uint32_t)UNC_KT_SWITCH);
+  int ret =  KtSwitchObj.PerformRead(db_conn,
+                                     (uint32_t)0,
+                                     (uint32_t)0,
+                                     &k,
+                                     &v,
+                                     (uint32_t)UNC_DT_STATE,
+                                     (uint32_t)UNC_OP_READ,
+                                     sess,
+                                     (uint32_t)UNC_OPT1_NORMAL,
+                                     (uint32_t)UNC_OPT2_L2DOMAIN,
+                                     (uint32_t)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 TEST_F(SwitchTest, PerformRead_002) {
@@ -1136,6 +1446,7 @@ TEST_F(SwitchTest, PerformRead_002) {
   rh.key_type = UNC_KT_SWITCH;
   OdbcmConnectionHandler *db_conn =NULL;
   ServerSession sess;
+  pfc::core::ipc::ServerSession::set_rest(2);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_OP_READ);
@@ -1145,8 +1456,18 @@ TEST_F(SwitchTest, PerformRead_002) {
   sess.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_SWITCH);
-int ret =  KtSwitchObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_L2DOMAIN,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =  KtSwitchObj.PerformRead(db_conn,
+                                     (uint32_t)0,
+                                     (uint32_t)0,
+                                     &k,
+                                     &v,
+                                     (uint32_t)UNC_DT_STATE,
+                                     (uint32_t)UNC_OP_READ,
+                                     sess,
+                                     (uint32_t)UNC_OPT1_NORMAL,
+                                     (uint32_t)UNC_OPT2_L2DOMAIN,
+                                     (uint32_t)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 TEST_F(SwitchTest, PerformRead_ReadSwtVal_Succes_03) {
@@ -1168,11 +1489,21 @@ TEST_F(SwitchTest, PerformRead_ReadSwtVal_Succes_03) {
   sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);
   sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);
   sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
-  sess.stub_setAddOutput((uint32_t)0);
+  sess.stub_setAddOutput((uint32_t)UNC_UPPL_RC_ERR_INVALID_OPTION2);
   sess.stub_setAddOutput((uint32_t)UNC_KT_SWITCH);
   ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  KtSwitchObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_L2DOMAIN,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  KtSwitchObj.PerformRead(db_conn,
+                                     (uint32_t)0,
+                                     (uint32_t)0,
+                                     &k,
+                                     &v,
+                                     (uint32_t)UNC_DT_STATE,
+                                     (uint32_t)UNC_OP_READ,
+                                     sess,
+                                     (uint32_t)UNC_OPT1_NORMAL,
+                                     (uint32_t)UNC_OPT2_L2DOMAIN,
+                                     (uint32_t)1);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(SwitchTest, PerformRead_ReadSwtVal_OPT1_NoMatch) {
@@ -1194,11 +1525,20 @@ TEST_F(SwitchTest, PerformRead_ReadSwtVal_OPT1_NoMatch) {
   sess.stub_setAddOutput((uint32_t)UNC_OPT1_DETAIL);
   sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);
   sess.stub_setAddOutput((uint32_t)UNC_DT_STATE);
-  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_INVALID_OPTION1);
+  sess.stub_setAddOutput((uint32_t)UNC_UPPL_RC_ERR_INVALID_OPTION2);
   sess.stub_setAddOutput((uint32_t)UNC_KT_SWITCH);
-  //sess.stub_setAddOutput((uint32_t)key);
-  int ret =  KtSwitchObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_DETAIL,(uint32_t)UNC_OPT2_L2DOMAIN,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  KtSwitchObj.PerformRead(db_conn,
+                                     (uint32_t)0,
+                                     (uint32_t)0,
+                                     &k,
+                                     &v,
+                                     (uint32_t)UNC_DT_STATE,
+                                     (uint32_t)UNC_OP_READ,
+                                     sess,
+                                     (uint32_t)UNC_OPT1_DETAIL,
+                                     (uint32_t)UNC_OPT2_L2DOMAIN,
+                                     (uint32_t)1);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(SwitchTest, PerformRead_ReadSwtVal_DataType_NoMatch_Success) {
@@ -1219,11 +1559,21 @@ TEST_F(SwitchTest, PerformRead_ReadSwtVal_DataType_NoMatch_Success) {
   sess.stub_setAddOutput((uint32_t)UNC_OPT1_NORMAL);
   sess.stub_setAddOutput((uint32_t)UNC_OPT2_NONE);
   sess.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
-  sess.stub_setAddOutput((uint32_t)UPPL_RC_ERR_OPERATION_NOT_ALLOWED);
+  sess.stub_setAddOutput((uint32_t)UNC_UPPL_RC_ERR_INVALID_OPTION2);
   sess.stub_setAddOutput((uint32_t)UNC_KT_SWITCH);
-  
-  int ret =  KtSwitchObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_CANDIDATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_L2DOMAIN,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+
+  int ret =  KtSwitchObj.PerformRead(db_conn,
+                                     (uint32_t)0,
+                                     (uint32_t)0,
+                                     &k,
+                                     &v,
+                                     (uint32_t)UNC_DT_CANDIDATE,
+                                     (uint32_t)UNC_OP_READ,
+                                     sess,
+                                     (uint32_t)UNC_OPT1_NORMAL,
+                                     (uint32_t)UNC_OPT2_L2DOMAIN,
+                                     (uint32_t)1);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(SwitchTest, PerformRead_ReadSwtVal_addOutput_fail) {
@@ -1240,8 +1590,18 @@ TEST_F(SwitchTest, PerformRead_ReadSwtVal_addOutput_fail) {
   ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
 
   pfc::core::ipc::ServerSession::set_rest(2);
-  int ret =  KtSwitchObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_L2DOMAIN,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =  KtSwitchObj.PerformRead(db_conn,
+                                     (uint32_t)0,
+                                     (uint32_t)0,
+                                     &k,
+                                     &v,
+                                     (uint32_t)UNC_DT_STATE,
+                                     (uint32_t)UNC_OP_READ,
+                                     sess,
+                                     (uint32_t)UNC_OPT1_NORMAL,
+                                     (uint32_t)UNC_OPT2_L2DOMAIN,
+                                     (uint32_t)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 TEST_F(SwitchTest, PerformRead_005) {
@@ -1264,8 +1624,18 @@ TEST_F(SwitchTest, PerformRead_005) {
   sess.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_SWITCH);
-int ret =  KtSwitchObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_INVALID,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+int ret =  KtSwitchObj.PerformRead(db_conn,
+                                   (uint32_t)0,
+                                   (uint32_t)0,
+                                   &k,
+                                   &v,
+                                   (uint32_t)UNC_DT_STATE,
+                                   (uint32_t)UNC_OP_INVALID,
+                                   sess,
+                                   (uint32_t)UNC_OPT1_NORMAL,
+                                   (uint32_t)UNC_OPT2_NONE,
+                                   (uint32_t)1);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(SwitchTest, PerformRead_UnsupportDB_STARTUP) {
@@ -1288,8 +1658,18 @@ TEST_F(SwitchTest, PerformRead_UnsupportDB_STARTUP) {
   sess.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_SWITCH);
-int ret =  KtSwitchObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STARTUP,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =  KtSwitchObj.PerformRead(db_conn,
+                                     (uint32_t)0,
+                                     (uint32_t)0,
+                                     &k,
+                                     &v,
+                                     (uint32_t)UNC_DT_STARTUP,
+                                     (uint32_t)UNC_OP_READ,
+                                     sess,
+                                     (uint32_t)UNC_OPT1_NORMAL,
+                                     (uint32_t)UNC_OPT2_NONE,
+                                     (uint32_t)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 TEST_F(SwitchTest, PerformRead_UnsupportDb_CANDIDDATE) {
@@ -1312,8 +1692,18 @@ TEST_F(SwitchTest, PerformRead_UnsupportDb_CANDIDDATE) {
   sess.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_SWITCH);
-int ret =  KtSwitchObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_CANDIDATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =  KtSwitchObj.PerformRead(db_conn,
+                                    (uint32_t)0,
+                                    (uint32_t)0,
+                                    &k,
+                                    &v,
+                                    (uint32_t)UNC_DT_CANDIDATE,
+                                    (uint32_t)UNC_OP_READ,
+                                    sess,
+                                    (uint32_t)UNC_OPT1_NORMAL,
+                                    (uint32_t)UNC_OPT2_NONE,
+                                    (uint32_t)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 TEST_F(SwitchTest, PerformRead_GetOneRow_006) {
@@ -1336,8 +1726,18 @@ TEST_F(SwitchTest, PerformRead_GetOneRow_006) {
   sess.stub_setAddOutput((uint32_t)UNC_DT_CANDIDATE);
   sess.stub_setAddOutput((uint32_t)0);
   sess.stub_setAddOutput((uint32_t)UNC_KT_SWITCH);
-int ret =  KtSwitchObj.PerformRead(db_conn,(uint32_t)0,(uint32_t)0,&k,&v,(uint32_t)UNC_DT_STATE,(uint32_t)UNC_OP_READ,sess,(uint32_t)UNC_OPT1_NORMAL,(uint32_t)UNC_OPT2_NONE,(uint32_t)1);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  int ret =  KtSwitchObj.PerformRead(db_conn,
+                                     (uint32_t)0,
+                                     (uint32_t)0,
+                                     &k,
+                                     &v,
+                                     (uint32_t)UNC_DT_STATE,
+                                     (uint32_t)UNC_OP_READ,
+                                     sess,
+                                     (uint32_t)UNC_OPT1_NORMAL,
+                                     (uint32_t)UNC_OPT2_NONE,
+                                     (uint32_t)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 /*******PopulateSchemaForValidFlag*********/
@@ -1350,8 +1750,12 @@ TEST_F(SwitchTest, PopulateSchemaForValidFlag_Success) {
   string valid_new;
   OdbcmConnectionHandler *db_conn =NULL;
   ODBCManager::stub_setResultcode(ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  int ret =  KtSwitchObj.PopulateSchemaForValidFlag(db_conn, &k ,&v, valid_new, UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  KtSwitchObj.PopulateSchemaForValidFlag(db_conn,
+                                                    &k,
+                                                    &v,
+                                                    valid_new,
+                                                    UNC_DT_STATE);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(SwitchTest, PopulateSchemaForValidFlag_Failure) {
@@ -1362,13 +1766,18 @@ TEST_F(SwitchTest, PopulateSchemaForValidFlag_Failure) {
   Kt_Switch KtSwitchObj;
   string valid_new;
   OdbcmConnectionHandler *db_conn =NULL;
-  ODBCManager::stub_setResultcode(ODBCManager::UPDATEONEROW, ODBCM_RC_GENERAL_ERROR);
-  int ret =  KtSwitchObj.PopulateSchemaForValidFlag(db_conn, &k ,&v, valid_new, UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
+  ODBCManager::stub_setResultcode(ODBCManager::UPDATEONEROW,
+                                  ODBCM_RC_GENERAL_ERROR);
+  int ret =  KtSwitchObj.PopulateSchemaForValidFlag(db_conn,
+                                                    &k,
+                                                    &v,
+                                                    valid_new,
+                                                    UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
 /********SetOperSatus******/
-//Faliure of GetoneRow
+// Faliure of GetoneRow
 TEST_F(SwitchTest, SetOperStatus_001) {
   key_switch_t k;
   getKeyForKtSwitch1(k);
@@ -1379,8 +1788,11 @@ TEST_F(SwitchTest, SetOperStatus_001) {
   OdbcmConnectionHandler *db_conn =NULL;
 
   ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  int ret =  KtSwitchObj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplSwitchOperStatus)1);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  int ret =  KtSwitchObj.SetOperStatus(db_conn,
+                                       UNC_DT_STATE,
+                                       &k,
+                                       (UpplSwitchOperStatus)1);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
 TEST_F(SwitchTest, SetOperStatus_002) {
@@ -1392,9 +1804,13 @@ TEST_F(SwitchTest, SetOperStatus_002) {
   getReqHeader(rh, UNC_OP_READ, UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
 
-  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  KtSwitchObj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplSwitchOperStatus)0);
-  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW,
+                                  ODBCM_RC_SUCCESS);
+  int ret =  KtSwitchObj.SetOperStatus(db_conn,
+                                       UNC_DT_STATE,
+                                       &k,
+                                       (UpplSwitchOperStatus)0);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
 TEST_F(SwitchTest, SetOperStatus_004) {
@@ -1406,10 +1822,15 @@ TEST_F(SwitchTest, SetOperStatus_004) {
   getReqHeader(rh, UNC_OP_READ, UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
 
-  ODBCManager::stub_setResultcode(ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  KtSwitchObj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplSwitchOperStatus)0);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  ODBCManager::stub_setResultcode(ODBCManager::UPDATEONEROW,
+                                  ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW,
+                                  ODBCM_RC_SUCCESS);
+  int ret =  KtSwitchObj.SetOperStatus(db_conn,
+                                       UNC_DT_STATE,
+                                       &k,
+                                       (UpplSwitchOperStatus)0);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(SwitchTest, SetOperStatus_005) {
@@ -1420,20 +1841,25 @@ TEST_F(SwitchTest, SetOperStatus_005) {
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_READ, UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
-  int err=0;
+  int err = 0;
   ServerEvent ser_evt((pfc_ipcevtype_t)UPPL_EVENTS_KT_PORT, err);
   ser_evt.addOutput((uint32_t)UNC_OP_UPDATE);
   ser_evt.addOutput((uint32_t)UNC_DT_STATE);
   ser_evt.addOutput((uint32_t)UNC_KT_SWITCH);
-  ODBCManager::stub_setResultcode(ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  KtSwitchObj.SetOperStatus(db_conn,UNC_DT_STATE,&k,(UpplSwitchOperStatus)0);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+
+  ODBCManager::stub_setResultcode(ODBCManager::UPDATEONEROW,
+                                  ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW,
+                                  ODBCM_RC_SUCCESS);
+  int ret =  KtSwitchObj.SetOperStatus(db_conn,
+                                       UNC_DT_STATE,
+                                       &k,
+                                       (UpplSwitchOperStatus)0);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /******GetAlarmStatus******/
-//GetOneRow Success
+// GetOneRow Success
 TEST_F(SwitchTest, GetAlarmStatus_sucess_01) {
   key_switch_t k;
   getKeyForKtSwitch1(k);
@@ -1443,12 +1869,16 @@ TEST_F(SwitchTest, GetAlarmStatus_sucess_01) {
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_READ, UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
-  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  int ret =  KtSwitchObj.GetAlarmStatus(db_conn, UNC_DT_STATE, &k, alarm_status);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW,
+                                  ODBCM_RC_SUCCESS);
+  int ret =  KtSwitchObj.GetAlarmStatus(db_conn,
+                                        UNC_DT_STATE,
+                                        &k,
+                                        alarm_status);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//GetOneRow Failure
+// GetOneRow Failure
 TEST_F(SwitchTest, GetAlarmStatus_Nosuccess_01) {
   key_switch_t k;
   getKeyForKtSwitch1(k);
@@ -1458,14 +1888,18 @@ TEST_F(SwitchTest, GetAlarmStatus_Nosuccess_01) {
   physical_request_header rh;
   getReqHeader(rh, UNC_OP_READ, UNC_DT_STATE);
   OdbcmConnectionHandler *db_conn =NULL;
-  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  int ret =  KtSwitchObj.GetAlarmStatus(db_conn, UNC_DT_STATE, &k, alarm_status);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW,
+                                  ODBCM_RC_FAILED);
+  int ret =  KtSwitchObj.GetAlarmStatus(db_conn,
+                                        UNC_DT_STATE,
+                                        &k,
+                                        alarm_status);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
+
 /*****HandleDriverAlarms******/
 
-//Reading alarm status from db failed
+// Reading alarm status from db failed
 TEST_F(SwitchTest, HandleDriverAlarm_01) {
   key_switch_t k;
   val_switch_st_t v;
@@ -1477,12 +1911,17 @@ TEST_F(SwitchTest, HandleDriverAlarm_01) {
   uint32_t oper_type = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
   ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_FAILED);
-  int ret =  KtSwitchObj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret =  KtSwitchObj.HandleDriverAlarms(db_conn,
+                                            UNC_DT_STATE,
+                                            alarm_type,
+                                            oper_type,
+                                            &k,
+                                            &v);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
-//Error creating ServerEvent object
-//alarm_type:UNC_FLOW_ENT_FULL, oper_type:UNC_OP_CREATE
+// Error creating ServerEvent object
+// alarm_type:UNC_FLOW_ENT_FULL, oper_type:UNC_OP_CREATE
 TEST_F(SwitchTest, HandleDriverAlarm_02) {
   key_switch_t k;
   val_switch_st_t v;
@@ -1492,10 +1931,17 @@ TEST_F(SwitchTest, HandleDriverAlarm_02) {
   uint32_t alarm_type = UNC_FLOW_ENT_FULL;
   uint32_t oper_type = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
-  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  ODBCManager::stub_setResultcode(ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  int ret =  KtSwitchObj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW,
+                                  ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::UPDATEONEROW,
+                                  ODBCM_RC_SUCCESS);
+  int ret =  KtSwitchObj.HandleDriverAlarms(db_conn,
+                                            UNC_DT_STATE,
+                                            alarm_type,
+                                            oper_type,
+                                            &k,
+                                            &v);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 TEST_F(SwitchTest, HandleDriverAlarm_03) {
@@ -1508,10 +1954,17 @@ TEST_F(SwitchTest, HandleDriverAlarm_03) {
   uint32_t alarm_type = UNC_FLOW_ENT_FULL;
   uint32_t oper_type = UNC_OP_DELETE;
   OdbcmConnectionHandler *db_conn =NULL;
-  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  ODBCManager::stub_setResultcode(ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  int ret =  KtSwitchObj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW,
+                                  ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::UPDATEONEROW,
+                                  ODBCM_RC_SUCCESS);
+  int ret =  KtSwitchObj.HandleDriverAlarms(db_conn,
+                                            UNC_DT_STATE,
+                                            alarm_type,
+                                            oper_type,
+                                            &k,
+                                            &v);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(SwitchTest, HandleDriverAlarm_04) {
@@ -1523,10 +1976,17 @@ TEST_F(SwitchTest, HandleDriverAlarm_04) {
   uint32_t alarm_type = UNC_OFS_LACK_FEATURES;
   uint32_t oper_type = UNC_OP_CREATE;
   OdbcmConnectionHandler *db_conn =NULL;
-  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  ODBCManager::stub_setResultcode(ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  int ret =  KtSwitchObj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW,
+                                  ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::UPDATEONEROW,
+                                  ODBCM_RC_SUCCESS);
+  int ret =  KtSwitchObj.HandleDriverAlarms(db_conn,
+                                            UNC_DT_STATE,
+                                            alarm_type,
+                                            oper_type,
+                                            &k,
+                                            &v);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_IPC_WRITE_ERROR, ret);
 }
 
 TEST_F(SwitchTest, HandleDriverAlarm_05) {
@@ -1539,10 +1999,17 @@ TEST_F(SwitchTest, HandleDriverAlarm_05) {
   uint32_t alarm_type = UNC_OFS_LACK_FEATURES;
   uint32_t oper_type = UNC_OP_DELETE;
   OdbcmConnectionHandler *db_conn =NULL;
-  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
-  ODBCManager::stub_setResultcode(ODBCManager::UPDATEONEROW, ODBCM_RC_SUCCESS);
-  int ret =  KtSwitchObj.HandleDriverAlarms(db_conn, UNC_DT_STATE, alarm_type, oper_type, &k,&v);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW,
+                                  ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::UPDATEONEROW,
+                                  ODBCM_RC_SUCCESS);
+  int ret =  KtSwitchObj.HandleDriverAlarms(db_conn,
+                                            UNC_DT_STATE,
+                                            alarm_type,
+                                            oper_type,
+                                            &k,
+                                            &v);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /*****HandleOperStaus******/
@@ -1552,20 +2019,24 @@ TEST_F(SwitchTest, Handleoperstatus_BadRequest) {
   Kt_Switch KtSwitchObj;
   memset(&v, 0, sizeof(val_switch_st_t));
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret =  KtSwitchObj.HandleOperStatus(db_conn, UNC_DT_STATE, k, &v);
-  EXPECT_EQ(UPPL_RC_ERR_BAD_REQUEST, ret);
+  int ret =  KtSwitchObj.HandleOperStatus(db_conn,
+                                          UNC_DT_STATE,
+                                          k,
+                                          &v);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_BAD_REQUEST, ret);
 }
 
 TEST_F(SwitchTest, Handleoperstatus_GetOneRow_success) {
-  key_switch_t k ;
+  key_switch_t k;
   val_switch_st_t v;
   Kt_Switch KtSwitchObj;
   memset(&k, 0, sizeof(key_switch_t));
   memset(&v, 0, sizeof(val_switch_st_t));
   OdbcmConnectionHandler *db_conn =NULL;
-  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW,
+                                  ODBCM_RC_SUCCESS);
   int ret =  KtSwitchObj.HandleOperStatus(db_conn, UNC_DT_STATE, &k, &v);
-  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
 TEST_F(SwitchTest, Handleoperstatus_GetOneRow_Fail) {
@@ -1577,7 +2048,7 @@ TEST_F(SwitchTest, Handleoperstatus_GetOneRow_Fail) {
   OdbcmConnectionHandler *db_conn =NULL;
   ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_FAILED);
   int ret =  KtSwitchObj.HandleOperStatus(db_conn, UNC_DT_STATE, &k, &v);
-  EXPECT_EQ(UPPL_RC_ERR_DB_GET, ret);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_GET, ret);
 }
 
 TEST_F(SwitchTest, Handleoperstatus_GetBulkRow_Success) {
@@ -1590,7 +2061,7 @@ TEST_F(SwitchTest, Handleoperstatus_GetBulkRow_Success) {
   ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   ODBCManager::stub_setResultcode(ODBCManager::GETBULKROWS, ODBCM_RC_SUCCESS);
   int ret =  KtSwitchObj.HandleOperStatus(db_conn, UNC_DT_STATE, &k, &v);
-  EXPECT_EQ(UPPL_RC_ERR_DB_ACCESS, ret);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_ACCESS, ret);
 }
 
 TEST_F(SwitchTest, Handleoperstatus_GetBulkRow_Failure) {
@@ -1603,7 +2074,7 @@ TEST_F(SwitchTest, Handleoperstatus_GetBulkRow_Failure) {
   ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   ODBCManager::stub_setResultcode(ODBCManager::GETBULKROWS, ODBCM_RC_FAILED);
   int ret =  KtSwitchObj.HandleOperStatus(db_conn, UNC_DT_STATE, &k, &v);
-  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
 TEST_F(SwitchTest, GetSwitchValStructure) {
@@ -1617,16 +2088,21 @@ TEST_F(SwitchTest, GetSwitchValStructure) {
   Kt_Switch KtSwitchObj;
   memset(&k, 0, sizeof(key_switch_t));
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret = UPPL_RC_SUCCESS;
-  KtSwitchObj.GetSwitchValStructure(db_conn, obj_val_switch,vect_table_attr_schema, vect_prim_keys,
-                         operation_type, val_switch_valid_st,valid);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = UNC_RC_SUCCESS;
+  KtSwitchObj.GetSwitchValStructure(db_conn,
+                                    obj_val_switch,
+                                    vect_table_attr_schema,
+                                    vect_prim_keys,
+                                    operation_type,
+                                    val_switch_valid_st,
+                                    valid);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(SwitchTest, GetSwitchValStructure_valid) {
   key_switch_t k;
   val_switch_st_t obj_val_switch;
-  memset(&obj_val_switch,0,sizeof(obj_val_switch));
+  memset(&obj_val_switch, 0, sizeof(obj_val_switch));
   vector<TableAttrSchema> vect_table_attr_schema;
   vector<string> vect_prim_keys;
   uint8_t operation_type(UNC_OP_READ);
@@ -1636,10 +2112,15 @@ TEST_F(SwitchTest, GetSwitchValStructure_valid) {
   obj_val_switch.valid[kIdxSwitch] = UNC_VF_VALID;
   memset(&k, 0, sizeof(key_switch_t));
   OdbcmConnectionHandler *db_conn =NULL;
-  int ret = UPPL_RC_SUCCESS;
-  KtSwitchObj.GetSwitchValStructure(db_conn, &obj_val_switch,vect_table_attr_schema, vect_prim_keys,
-                         operation_type, val_switch_valid_st,valid);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  int ret = UNC_RC_SUCCESS;
+  KtSwitchObj.GetSwitchValStructure(db_conn,
+                                    &obj_val_switch,
+                                    vect_table_attr_schema,
+                                    vect_prim_keys,
+                                    operation_type,
+                                    val_switch_valid_st,
+                                    valid);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /*******UpdateSwitchValidFlag******/
@@ -1648,61 +2129,66 @@ TEST_F(SwitchTest, UpdateSwitchValidFlag) {
   key_switch_t k;
   val_switch_t v;
   val_switch_st_t v_st;
-  memset(&k, 0,sizeof(k));
-  memset(&v, 0,sizeof(v));
-  memset(&v_st, 0,sizeof(v_st));
+  memset(&k, 0, sizeof(k));
+  memset(&v, 0, sizeof(v));
+  memset(&v_st, 0, sizeof(v_st));
+
   Kt_Switch KtSwitchObj;
   unc_keytype_validflag_t new_valid_val = UNC_VF_VALID;
   OdbcmConnectionHandler *db_conn =NULL;
-  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_RECORD_NOT_FOUND);
-  int ret =  KtSwitchObj.UpdateSwitchValidFlag(db_conn, &k, &v, v_st,
-                                               new_valid_val, UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
+  ODBCManager::stub_setResultcode(ODBCManager::GETONEROW,
+                                  ODBCM_RC_RECORD_NOT_FOUND);
+  int ret =  KtSwitchObj.UpdateSwitchValidFlag(db_conn,
+                                               &k,
+                                               &v,
+                                               v_st,
+                                               new_valid_val,
+                                               UNC_DT_STATE);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_NO_SUCH_INSTANCE, ret);
 }
 
 TEST_F(SwitchTest, UpdateSwitchValidFlag_Success) {
   key_switch_t k;
   val_switch_t v;
   val_switch_st_t v_st;
-  memset(&k, 0,sizeof(k));
-  memset(&v, 0,sizeof(v));
-  memset(&v_st, 0,sizeof(v_st));
+  memset(&k, 0, sizeof(k));
+  memset(&v, 0, sizeof(v));
+  memset(&v_st, 0, sizeof(v_st));
+
   Kt_Switch KtSwitchObj;
   unc_keytype_validflag_t new_valid_val = UNC_VF_VALID;
   OdbcmConnectionHandler *db_conn =NULL;
   ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtSwitchObj.UpdateSwitchValidFlag(db_conn, &k, &v, v_st,
                                                new_valid_val, UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 TEST_F(SwitchTest, UpdateSwitchValidFlag_NoFillVal) {
   key_switch_t k;
   val_switch_t v;
   val_switch_st_t v_st;
-  memset(&k, 0,sizeof(k));
-  memset(&v, 0,sizeof(v));
-  memset(&v_st, 0,sizeof(v_st));
+  memset(&k, 0, sizeof(k));
+  memset(&v, 0, sizeof(v));
+  memset(&v_st, 0, sizeof(v_st));
+
   Kt_Switch KtSwitchObj;
   unc_keytype_validflag_t new_valid_val(UNC_VF_INVALID);
   OdbcmConnectionHandler *db_conn =NULL;
   ODBCManager::stub_setResultcode(ODBCManager::GETONEROW, ODBCM_RC_SUCCESS);
   int ret =  KtSwitchObj.UpdateSwitchValidFlag(db_conn, &k, &v, v_st,
                                                new_valid_val, UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_ERR_DB_UPDATE, ret);
+  EXPECT_EQ(UNC_UPPL_RC_ERR_DB_UPDATE, ret);
 }
 
 TEST_F(SwitchTest, UpdateSwitchValidFlag_ret_NULL) {
   key_switch_t k;
   val_switch_st_t v;
   val_switch_st_t v_st;
-  memset(&k, 0,sizeof(k));
-  memset(&v, 0,sizeof(v));
-  memset(&v_st, 0,sizeof(v_st));
+  memset(&k, 0, sizeof(k));
+  memset(&v, 0, sizeof(v));
+  memset(&v_st, 0, sizeof(v_st));
+
   Kt_Switch KtSwitchObj;
   unc_keytype_validflag_t new_valid_val(UNC_VF_INVALID);
   OdbcmConnectionHandler *db_conn =NULL;
@@ -1711,7 +2197,7 @@ TEST_F(SwitchTest, UpdateSwitchValidFlag_ret_NULL) {
   pfc_log_set_level(PFC_LOGLVL_VERBOSE);
   int ret =  KtSwitchObj.UpdateSwitchValidFlag(db_conn, &k, &v, v_st,
                                                new_valid_val, UNC_DT_STATE);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
 
 /********FrameValidValue*******/
@@ -1719,8 +2205,8 @@ TEST_F(SwitchTest, FrameValidValue) {
   string attr_value = "ctr";
   val_switch_st obj_val_switch;
   Kt_Switch KtSwitchObj;
-  int ret = UPPL_RC_SUCCESS;
+  int ret = UNC_RC_SUCCESS;
   obj_val_switch.valid[kIdxSwitch] = UNC_VF_VALID;
   KtSwitchObj.FrameValidValue(attr_value, obj_val_switch);
-  EXPECT_EQ(UPPL_RC_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
 }
index b47e39b1ddbe959eadcd6fd1e292f342fe412d46..120b228ba1d8b53df79ca6ea09ab1f3f713997b1 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013 NEC Corporation
+ * Copyright (c) 2013-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -7,8 +7,8 @@
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-#ifndef        _TEST_UPPL_UT_STUB_H
-#define        _TEST_UPPL_UT_STUB_H
+#ifndef _TEST_UPPL_UT_STUB_H
+#define _TEST_UPPL_UT_STUB_H
 
 /*
  * Include stub header files.
 
 #include "stub/clstat/clstat_api.h"
 
-#ifdef __cplusplus
+#ifdef __cplusplus
 #include "stub/include/cxx/pfcxx/ipc_server.hh"
 #include "stub/include/cxx/pfcxx/ipc_client.hh"
 #include "stub/include/cxx/pfcxx/module.hh"
 #include "stub/ODBC/include/odbcm_mgr.hh"
 #include "stub/tclib_module/tclib_module.hh"
-#endif /* __cplusplus */
+#include "stub/capa_module/capa_intf.hh"
+#endif /* __cplusplus */
 
-#endif /* !_TEST_UPPL_UT_STUB_H */
+#endif /* !_TEST_UPPL_UT_STUB_H */
index 649fa0dff4c076d16a6608d1351c743c08e97302..a87657d667401cd7a3d30d71ebd11c7fc72b85ea 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013 NEC Corporation
+ * Copyright (c) 2013-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -7,8 +7,8 @@
  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-#ifndef        _TEST_UPPL_UT_UTIL_HH
-#define        _TEST_UPPL_UT_UTIL_HH
+#ifndef _TEST_UPPL_UT_UTIL_HH
+#define _TEST_UPPL_UT_UTIL_HH
 
 /*
  * Miscellaneous utility.
@@ -25,15 +25,14 @@ namespace test {
  * Base class for test environment.
  */
 class UpplTestEnv
-  : public ::testing::Test
-{
-protected:
+  : public ::testing::Test {
+ protected:
   virtual void  SetUp();
   virtual void  TearDown();
 };
 
-}  // test
-}  // uppl
-}  // unc
+}  // namespace test
+}  // namespace uppl
+}  // namespace unc
 
-#endif /* !_TEST_UPPL_UT_UTIL_HH */
+#endif /* !_TEST_UPPL_UT_UTIL_HH */
index 5680edeb5ac20041e3d7c1fb4d27c45e8e6b9bcf..1bc7288a8f5201c01a893f0084cad6c1a7f19690 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013 NEC Corporation
+ * Copyright (c) 2013-2014 NEC Corporation
  * All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -24,8 +24,7 @@ using namespace pfc::core::ipc;
  * Set up test environment.
  */
 void
-UpplTestEnv::SetUp()
-{
+UpplTestEnv::SetUp() {
   TcLibModule::stub_loadtcLibModule();
   TcLibModule::stub_setTCApiCommonRetcode(TcLibModule::REGISTER,
                                           TC_API_COMMON_SUCCESS);
@@ -37,8 +36,7 @@ UpplTestEnv::SetUp()
  * Clean up test environment.
  */
 void
-UpplTestEnv::TearDown()
-{
+UpplTestEnv::TearDown() {
   ServerSession::clearStubData();
   ODBCManager::clearStubData();
   PhysicalLayerStub::unloadphysicallayer();
index 0ce95c720decffa3f75d1bbe04b6f56ff5f20ec0..4b82aea65cddb332348d2c2ede1c6cbb7dc0fb60 100644 (file)
@@ -63,7 +63,7 @@ TEST(print, check) {
   KeyTree_obj = NULL;
 }
 
-TEST(add_child_to_list, DRVAPI_RESPONSE_SUCCESS) {
+TEST(add_child_to_list, UNC_RC_SUCCESS) {
   ConfigNode *cfgnode_obj = new ConfigNode;
   uint32_t operation = 1;
   KeyTree *KeyTree_obj;
@@ -84,10 +84,10 @@ TEST(add_child_to_list, DRVAPI_RESPONSE_SUCCESS) {
   cfgnode_obj = NULL;
   cfgptr = NULL;
   KeyTree_obj = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 }
 
-TEST(add_child_to_list, DRVAPI_RESPONSE_FAILURE) {
+TEST(add_child_to_list, UNC_DRV_RC_ERR_GENERIC) {
   ConfigNode *cfgnode_obj = new ConfigNode;
   KeyTree *KeyTree_obj;
   KeyTree_obj = KeyTree::create_cache();
@@ -101,7 +101,7 @@ TEST(add_child_to_list, DRVAPI_RESPONSE_FAILURE) {
   cfgptr = NULL;
   KeyTree_obj = NULL;
   cfgnode_obj = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret, UNC_DRV_RC_ERR_GENERIC);
 }
 
 TEST(get_node_list, check) {
@@ -135,17 +135,17 @@ TEST(get_node_list, check) {
   ConfigNode *cfgptr = new CacheElementUtil<key_vtn, val_vtn, uint32_t>
                        (&key_obj, &val_obj, operation);
   int ret = cfg_obj->add_child_to_list(cfgptr);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 
   ConfigNode *cfgptr1 = new CacheElementUtil<key_vbr, val_vbr, uint32_t>
                         (&key1_obj, &val1_obj, operation);
   ret = cfg_obj->add_child_to_list(cfgptr);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 
   ConfigNode *cfgptr2 = new CacheElementUtil<key_vbr_if, pfcdrv_val_vbr_if,
                         uint32_t>(&key2_obj, &val2_obj, operation);
   ret = cfg_obj->add_child_to_list(cfgptr);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 
   ret = cfg_obj->get_node_list(value_list);
   delete cfg_obj;
@@ -158,7 +158,7 @@ TEST(get_node_list, check) {
   cfgptr1 = NULL;
   cfgptr = NULL;
   KeyTree_obj = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 }
 TEST(TypeToStrFun, keytype_switch_port) {
   std::string ret = TypeToStrFun(UNC_KT_VBR_VLANMAP);
@@ -179,7 +179,7 @@ TEST(delete_child_node, empty_switch_port) {
                                                   erased_key_list);
   delete KeyTree_obj;
   KeyTree_obj = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret, UNC_DRV_RC_ERR_GENERIC);
 }
 TEST(delete_child_node, switch_port_config_not_present) {
   int operation = 1;
@@ -197,7 +197,7 @@ TEST(delete_child_node, switch_port_config_not_present) {
   ConfigNode *cfgptr = new CacheElementUtil<key_switch, val_switch_st, uint32_t>
                        (&key_switch_obj, &val_switch, operation);
   uint32_t ret = KeyTree_obj->node_tree_.add_child_to_list(cfgptr);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 
   key_port key_obj;
   memcpy(key_obj.sw_key.ctr_key.controller_name, "odc1", sizeof(
@@ -216,7 +216,7 @@ TEST(delete_child_node, switch_port_config_not_present) {
   delete cfgptr1;
   cfgptr1 = NULL;
   cfgptr = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret, UNC_DRV_RC_ERR_GENERIC);
 }
 TEST(delete_child_node, delete_switch) {
   int operation = 1;
@@ -234,13 +234,13 @@ TEST(delete_child_node, delete_switch) {
   ConfigNode *cfgptr = new CacheElementUtil<key_switch, val_switch_st, uint32_t>
                        (&key_switch_obj, &val_switch, operation);
   uint32_t ret = KeyTree_obj->node_tree_.add_child_to_list(cfgptr);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 
   ret = KeyTree_obj->node_tree_.delete_child_node(cfgptr, erased_key_list);
   delete KeyTree_obj;
   KeyTree_obj = NULL;
   cfgptr = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 }
 TEST(TypeToStrFun, keytype_kt_link) {
   std::string ret = TypeToStrFun(UNC_KT_LINK);
index 3afe15242ffba8aa04ab57739e7a8113de397cee..53ba25ce4bd8e4f49611ba919a1fc71637b2a4e7 100644 (file)
@@ -32,7 +32,7 @@ TEST(append_commit_node, vtn) {
   delete KeyTree_obj;
   KeyTree_obj = NULL;
   cfgptr = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 }
 
 TEST(append_commit_node, vbr) {
@@ -65,7 +65,7 @@ TEST(append_commit_node, vbr) {
   delete KeyTree_obj;
   KeyTree_obj = NULL;
   cfgptr = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 }
 
 TEST(append_commit_node, Reterive_key_val) {
@@ -86,7 +86,7 @@ TEST(append_commit_node, Reterive_key_val) {
          sizeof(val1_obj.vbr_description));
 
   key_vlan_map key2_obj;
-  val_vlan_map_t val2_obj;
+  pfcdrv_val_vlan_map_t val2_obj;
   memcpy(key2_obj.vbr_key.vtn_key.vtn_name, "vtn1",
          sizeof(key2_obj.vbr_key.vtn_key.vtn_name));
   memcpy(key2_obj.vbr_key.vbridge_name, "vbr1",
@@ -94,21 +94,21 @@ TEST(append_commit_node, Reterive_key_val) {
   memcpy(key2_obj.logical_port_id, "SW-00:00:00:00:00:00:00:01",
          sizeof(key2_obj.logical_port_id));
   key2_obj.logical_port_id_valid = 1;
-  val2_obj. vlan_id = 100;
+  val2_obj.vm.vlan_id = 100;
 
   ConfigNode *cfgptr = new CacheElementUtil<key_vtn, val_vtn, uint32_t>
       (&key_obj, &val_obj, operation);
   int ret = KeyTree_obj->append_commit_node(cfgptr);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 
   ConfigNode *cfgptr1 = new CacheElementUtil<key_vbr, val_vbr, uint32_t>
       (&key1_obj, &val1_obj, operation);
   ret = KeyTree_obj->append_commit_node(cfgptr1);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
-  ConfigNode *cfgptr2 = new CacheElementUtil<key_vlan_map_t, val_vlan_map_t,
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
+  ConfigNode *cfgptr2 = new CacheElementUtil<key_vlan_map_t, pfcdrv_val_vlan_map_t,
              uint32_t>(&key2_obj, &val2_obj, operation);
   ret = KeyTree_obj->append_commit_node(cfgptr2);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 
   CommonIterator* itr_ptr = KeyTree_obj->create_iterator();
   cfgptr = itr_ptr->FirstItem();
@@ -130,14 +130,14 @@ TEST(append_commit_node, Reterive_key_val) {
       reinterpret_cast<char*>(tmp1_ptr->get_val_structure()->vbr_description));
 
   cfgptr2 = itr_ptr->NextItem();
-  CacheElementUtil<key_vlan_map, val_vlan_map, uint32_t> *tmp2_ptr =
-      static_cast<CacheElementUtil<key_vlan_map, val_vlan_map,
+  CacheElementUtil<key_vlan_map, pfcdrv_val_vlan_map_t, uint32_t> *tmp2_ptr =
+      static_cast<CacheElementUtil<key_vlan_map, pfcdrv_val_vlan_map_t,
       uint32_t>*> (cfgptr2);
 
   EXPECT_EQ(1, (tmp2_ptr->get_key_structure()->logical_port_id_valid));
   EXPECT_STREQ(reinterpret_cast<char*>(key2_obj.logical_port_id),
       reinterpret_cast<char*>(tmp2_ptr->get_key_structure()->logical_port_id));
-  EXPECT_EQ(100, (tmp2_ptr->get_val_structure()->vlan_id));
+  EXPECT_EQ(100, (tmp2_ptr->get_val_structure()->vm.vlan_id));
 
   delete itr_ptr;
   delete KeyTree_obj;
@@ -153,7 +153,7 @@ TEST(add_node_to_tree, null) {
   delete KeyTree_obj;
   KeyTree_obj = NULL;
   cfgptr = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret, UNC_DRV_RC_ERR_GENERIC);
 }
 
 TEST(add_node_to_tree, null_parent) {
@@ -174,7 +174,7 @@ TEST(add_node_to_tree, null_parent) {
   delete cfgptr;
   KeyTree_obj = NULL;
   cfgptr = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret, UNC_DRV_RC_ERR_GENERIC);
 }
 
 TEST(add_node_to_tree, parent_exist) {
@@ -206,10 +206,10 @@ TEST(add_node_to_tree, parent_exist) {
   KeyTree_obj = NULL;
   cfgptr = NULL;
   cfgptr1 = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 }
 
-TEST(add_child_to_hash, DRVAPI_RESPONSE_SUCCESS) {
+TEST(add_child_to_hash, UNC_RC_SUCCESS) {
   KeyTree* KeyTree_obj;
   KeyTree_obj = KeyTree::create_cache();
   int operation = 1;
@@ -226,7 +226,7 @@ TEST(add_child_to_hash, DRVAPI_RESPONSE_SUCCESS) {
   delete cfgptr;
   KeyTree_obj = NULL;
   cfgptr = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 }
 
 TEST(get_parenttype, vtn) {
@@ -284,21 +284,21 @@ TEST(append_audit_node, Node_not_exist) {
       (&key_obj, &val_obj, operation);
 
   int ret = KeyTree_obj->append_audit_node(cfgptr);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   ConfigNode *cfgptr1 = new CacheElementUtil<key_vbr, val_vbr, uint32_t>
       (&key1_obj, &val1_obj, operation);
   ret = KeyTree_obj->append_audit_node(cfgptr1);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   ConfigNode *cfgptr2 = new CacheElementUtil<key_vbr_if, pfcdrv_val_vbr_if_t,
              uint32_t>(&key2_obj, &val2_obj, operation);
   ret = KeyTree_obj->append_audit_node(cfgptr2);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   delete KeyTree_obj;
   KeyTree_obj = NULL;
   cfgptr2 = NULL;
   cfgptr1 = NULL;
   cfgptr = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 }
 
 TEST(append_audit_node, null) {
@@ -311,7 +311,7 @@ TEST(append_audit_node, null) {
   delete KeyTree_obj;
   KeyTree_obj = NULL;
   cfgptr = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret, UNC_DRV_RC_ERR_GENERIC);
 }
 
 TEST(append_audit_node, parent_not_exist) {
@@ -335,7 +335,7 @@ TEST(append_audit_node, parent_not_exist) {
   delete KeyTree_obj;
   KeyTree_obj = NULL;
   cfgptr1 = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret, UNC_DRV_RC_ERR_GENERIC);
 }
 
 TEST(append_audit_node, parent_exist_already) {
@@ -363,7 +363,7 @@ TEST(append_audit_node, parent_exist_already) {
   KeyTree_obj = NULL;
   cfgptr = NULL;
   cfgptr1 = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 }
 
 TEST(append_audit_configuration_list, vector_arg_sucess) {
@@ -399,7 +399,7 @@ TEST(append_audit_configuration_list, vector_arg_sucess) {
   KeyTree_obj = NULL;
   cfgptr1 = NULL;
   cfgptr = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 }
 
 TEST(append_audit_configuration_list, vector_arg_failure) {
@@ -416,7 +416,7 @@ TEST(append_audit_configuration_list, vector_arg_failure) {
   delete KeyTree_obj;
   KeyTree_obj = NULL;
   cfgptr = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret, UNC_DRV_RC_ERR_GENERIC);
 }
 
 TEST(append_audit_configuration_list, vector_arg_failure1) {
@@ -443,7 +443,7 @@ TEST(append_audit_configuration_list, vector_arg_failure1) {
   delete KeyTree_obj;
   KeyTree_obj = NULL;
   cfgptr = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret, UNC_DRV_RC_ERR_GENERIC);
 }
 
 TEST(clear_audit_commit_cache, check) {
@@ -463,7 +463,7 @@ TEST(clear_audit_commit_cache, check) {
   delete KeyTree_obj;
   KeyTree_obj = NULL;
   cfgptr = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 }
 
 TEST(clear_root_cache, check) {
@@ -483,7 +483,7 @@ TEST(clear_root_cache, check) {
   delete KeyTree_obj;
   KeyTree_obj = NULL;
   cfgptr = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 }
 
 TEST(get_node_from_hash, get_node) {
@@ -579,17 +579,17 @@ TEST(get_nodelist_keytree, check) {
   ConfigNode *cfgptr = new CacheElementUtil<key_vtn, val_vtn, uint32_t>
       (&key_obj, &val_obj, operation);
   int ret = KeyTree_obj->append_audit_node(cfgptr);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 
   ConfigNode *cfgptr1 = new CacheElementUtil<key_vbr, val_vbr, uint32_t>
       (&key1_obj, &val1_obj, operation);
   ret = KeyTree_obj->append_audit_node(cfgptr1);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 
   ConfigNode *cfgptr2 = new CacheElementUtil<key_vbr_if, pfcdrv_val_vbr_if_t,
              uint32_t>(&key2_obj, &val2_obj, operation);
   ret = KeyTree_obj->append_audit_node(cfgptr2);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 
   ret =  KeyTree_obj->get_nodelist_keytree();
 
@@ -598,7 +598,7 @@ TEST(get_nodelist_keytree, check) {
   cfgptr2 = NULL;
   cfgptr1 = NULL;
   cfgptr = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 }
 //  Append switch-port in keytree in bulk operation
 TEST(append_physical_attribute_configuration_list, append_single_switchNode) {
@@ -624,7 +624,7 @@ TEST(append_physical_attribute_configuration_list, append_single_switchNode) {
   delete KeyTree_obj;
   KeyTree_obj = NULL;
   cfgptr = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 }
 
 //  Append switch-port in keytree in bulk operation
@@ -669,7 +669,7 @@ TEST(append_physical_attribute_configuration_list, append_multiple_switchNode) {
   KeyTree_obj = NULL;
   cfgptr = NULL;
   cfgptrone = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 }
 //  Append switch-port in keytree with empty list
 TEST(append_physical_attribute_configuration_list, append_empty_list) {
@@ -685,7 +685,7 @@ TEST(append_physical_attribute_configuration_list, append_empty_list) {
   delete KeyTree_obj;
   KeyTree_obj = NULL;
   cfgptr = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret, UNC_DRV_RC_ERR_GENERIC);
 }
 //  Append port in keytree with  list ,which parent not found
 TEST(append_physical_attribute_configuration_list,
@@ -722,7 +722,7 @@ TEST(append_physical_attribute_configuration_list,
   }
   }
   vec_list.clear();
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret, UNC_DRV_RC_ERR_GENERIC);
 }
 //  Append one switch and one port individual to keytree with
 //  append_Physical_attribute_node method
@@ -742,7 +742,7 @@ TEST(append_Physical_attribute_node, switch_port_success) {
       new CacheElementUtil<key_switch, val_switch_st, uint32_t>
       (&key_switch_obj, &val_switch, operation);
   uint32_t ret = KeyTree_obj->append_Physical_attribute_node(cfgptr);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add port s2-eth3 to switch 0000-0000-0000-0001
   key_port key_obj;
   memcpy(key_obj.sw_key.ctr_key.controller_name, "odc1", sizeof(
@@ -764,7 +764,7 @@ TEST(append_Physical_attribute_node, switch_port_success) {
   KeyTree_obj = NULL;
   cfgptr = NULL;
   cfgptr1 = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 }
 //  Append switch/port in keytree with empty
 TEST(append_Physical_attribute_node, append_empty_switch) {
@@ -777,7 +777,7 @@ TEST(append_Physical_attribute_node, append_empty_switch) {
   delete KeyTree_obj;
   KeyTree_obj = NULL;
   cfgptr = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret, UNC_DRV_RC_ERR_GENERIC);
 }
 //  append port, which parent is not found in cache,return failure
 TEST(append_Physical_attribute_node, switch_port_failure) {
@@ -796,7 +796,7 @@ TEST(append_Physical_attribute_node, switch_port_failure) {
       new CacheElementUtil<key_switch, val_switch_st, uint32_t>
       (&key_switch_obj, &val_switch, operation);
   uint32_t ret = KeyTree_obj->append_Physical_attribute_node(cfgptr);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add port s2-eth3 to switch 0000-0000-0000-0002(whcih is not present
   //  in cache)
   key_port key_obj;
@@ -820,7 +820,7 @@ TEST(append_Physical_attribute_node, switch_port_failure) {
   cfgptr = NULL;
   delete cfgptr1;
   cfgptr1 = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret, UNC_DRV_RC_ERR_GENERIC);
 }
 //  append switch, which is already exist  in cache,ignore the configuration and
 //  return success
@@ -840,7 +840,7 @@ TEST(append_Physical_attribute_node, switch_port_exist_success) {
       new CacheElementUtil<key_switch, val_switch_st, uint32_t>
       (&key_switch_obj, &val_switch, operation);
   uint32_t ret = KeyTree_obj->append_Physical_attribute_node(cfgptr);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add another duplicate switch 0000-0000-0000-0001 to cache
   key_switch key_switch_obj1;
   val_switch_st val_switch1;
@@ -859,7 +859,7 @@ TEST(append_Physical_attribute_node, switch_port_exist_success) {
   KeyTree_obj = NULL;
   cfgptr = NULL;
   cfgptr1 = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 }
 //  Append one switch and two port to keytree with
 //  append_Physical_attribute_node method and update one port details
@@ -879,7 +879,7 @@ TEST(update_physical_attribute_node, update_port) {
       new CacheElementUtil<key_switch, val_switch_st, uint32_t>
       (&key_switch_obj, &val_switch, operation);
   uint32_t ret = KeyTree_obj->append_Physical_attribute_node(cfgptr);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add port s2-eth3 to switch 0000-0000-0000-0001
   key_port key_obj;
   memcpy(key_obj.sw_key.ctr_key.controller_name, "odc1", sizeof(
@@ -896,7 +896,7 @@ TEST(update_physical_attribute_node, update_port) {
       (&key_obj, &val_obj, operation);
 
   ret = KeyTree_obj->append_Physical_attribute_node(cfgptr1);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add port s1-eth4 to switch 0000-0000-0000-0001
   key_port key_obj1;
   memcpy(key_obj1.sw_key.ctr_key.controller_name, "odc1", sizeof(
@@ -913,7 +913,7 @@ TEST(update_physical_attribute_node, update_port) {
       (&key_obj1, &val_obj1, operation);
 
   ret = KeyTree_obj->append_Physical_attribute_node(cfgptr2);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 
   //  update port s2-eth3
   key_port key_obj2;
@@ -940,7 +940,7 @@ TEST(update_physical_attribute_node, update_port) {
   cfgptr2 = NULL;
   delete cfgptr3;
   cfgptr3 = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 }
 //  Append one switch and two port to keytree with
 //  append_Physical_attribute_node method and update switch detail
@@ -962,7 +962,7 @@ TEST(update_physical_attribute_node, update_switch) {
       new CacheElementUtil<key_switch, val_switch_st, uint32_t>
       (&key_switch_obj, &val_switch, operation);
   uint32_t ret = KeyTree_obj->append_Physical_attribute_node(cfgptr);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add port s2-eth3 to switch 0000-0000-0000-0001
   key_port key_obj;
   memcpy(key_obj.sw_key.ctr_key.controller_name, "odc1", sizeof(
@@ -979,7 +979,7 @@ TEST(update_physical_attribute_node, update_switch) {
       (&key_obj, &val_obj, operation);
 
   ret = KeyTree_obj->append_Physical_attribute_node(cfgptr1);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add port s1-eth4 to switch 0000-0000-0000-0001
   key_port key_obj1;
   memcpy(key_obj1.sw_key.ctr_key.controller_name, "odc1", sizeof(
@@ -996,7 +996,7 @@ TEST(update_physical_attribute_node, update_switch) {
       (&key_obj1, &val_obj1, operation);
 
   ret = KeyTree_obj->append_Physical_attribute_node(cfgptr2);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 
   //  update switch 0000-0000-0000-0001
   key_switch key_switch_obj1;
@@ -1021,7 +1021,7 @@ TEST(update_physical_attribute_node, update_switch) {
   cfgptr2 = NULL;
   delete cfgptr3;
   cfgptr3 = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 }
 //  Update switch/port in keytree with empty
 TEST(update_physical_attribute_node, append_empty_switch) {
@@ -1034,7 +1034,7 @@ TEST(update_physical_attribute_node, append_empty_switch) {
   delete KeyTree_obj;
   KeyTree_obj = NULL;
   cfgptr = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret, UNC_DRV_RC_ERR_GENERIC);
 }
 //  Append one switch and two port to keytree with
 //  append_Physical_attribute_node method and update  switch fail
@@ -1056,7 +1056,7 @@ TEST(update_physical_attribute_node, update_fail) {
       new CacheElementUtil<key_switch, val_switch_st, uint32_t>
       (&key_switch_obj, &val_switch, operation);
   uint32_t ret = KeyTree_obj->append_Physical_attribute_node(cfgptr);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add port s2-eth3 to switch 0000-0000-0000-0001
   key_port key_obj;
   memcpy(key_obj.sw_key.ctr_key.controller_name, "odc1", sizeof(
@@ -1073,7 +1073,7 @@ TEST(update_physical_attribute_node, update_fail) {
       (&key_obj, &val_obj, operation);
 
   ret = KeyTree_obj->append_Physical_attribute_node(cfgptr1);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add port s1-eth4 to switch 0000-0000-0000-0001
   key_port key_obj1;
   memcpy(key_obj1.sw_key.ctr_key.controller_name, "odc1", sizeof(
@@ -1090,7 +1090,7 @@ TEST(update_physical_attribute_node, update_fail) {
       (&key_obj1, &val_obj1, operation);
 
   ret = KeyTree_obj->append_Physical_attribute_node(cfgptr2);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 
   //  update switch 0000-0000-0000-0002(different switch,which not available in
   //  keytree)
@@ -1116,7 +1116,7 @@ TEST(update_physical_attribute_node, update_fail) {
   cfgptr2 = NULL;
   delete cfgptr3;
   cfgptr3 = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret, UNC_DRV_RC_ERR_GENERIC);
 }
 //  Append one switch and two port to keytree with
 //  append_Physical_attribute_node method and update any key_type other than
@@ -1139,7 +1139,7 @@ TEST(update_physical_attribute_node, update_fail_otherkey_type) {
       new CacheElementUtil<key_switch, val_switch_st, uint32_t>
       (&key_switch_obj, &val_switch, operation);
   uint32_t ret = KeyTree_obj->append_Physical_attribute_node(cfgptr);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add port s2-eth3 to switch 0000-0000-0000-0001
   key_port key_obj;
   memcpy(key_obj.sw_key.ctr_key.controller_name, "odc1", sizeof(
@@ -1156,7 +1156,7 @@ TEST(update_physical_attribute_node, update_fail_otherkey_type) {
       (&key_obj, &val_obj, operation);
 
   ret = KeyTree_obj->append_Physical_attribute_node(cfgptr1);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add port s1-eth4 to switch 0000-0000-0000-0001
   key_port key_obj1;
   memcpy(key_obj1.sw_key.ctr_key.controller_name, "odc1", sizeof(
@@ -1173,7 +1173,7 @@ TEST(update_physical_attribute_node, update_fail_otherkey_type) {
       (&key_obj1, &val_obj1, operation);
 
   ret = KeyTree_obj->append_Physical_attribute_node(cfgptr2);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  append vtn into keytree
   key_vtn vtn_key;
   memset(&vtn_key, 0, sizeof(vtn_key));
@@ -1187,7 +1187,7 @@ TEST(update_physical_attribute_node, update_fail_otherkey_type) {
       (&vtn_key, &vtn_val, operation);
 
   ret = KeyTree_obj->append_Physical_attribute_node(cfgptr3);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  update other key_type than kt_switch,kt_port
   key_vtn vtn_key1;
   memset(&vtn_key1, 0, sizeof(vtn_key1));
@@ -1209,7 +1209,7 @@ TEST(update_physical_attribute_node, update_fail_otherkey_type) {
   cfgptr3 = NULL;
   delete cfgptr4;
   cfgptr4 = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret, UNC_DRV_RC_ERR_GENERIC);
 }
 //  Delete switch/port in keytree with empty
 TEST(delete_physical_attribute_node, delete_empty_switch) {
@@ -1222,7 +1222,7 @@ TEST(delete_physical_attribute_node, delete_empty_switch) {
   delete KeyTree_obj;
   KeyTree_obj = NULL;
   cfgptr = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret, UNC_DRV_RC_ERR_GENERIC);
 }
 //  Try to delete a non-existing port,which parent not available in keytree
 TEST(delete_physical_attribute_node, parent_not_present_fail) {
@@ -1243,7 +1243,7 @@ TEST(delete_physical_attribute_node, parent_not_present_fail) {
       new CacheElementUtil<key_switch, val_switch_st, uint32_t>
       (&key_switch_obj, &val_switch, operation);
   uint32_t ret = KeyTree_obj->append_Physical_attribute_node(cfgptr);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add port s2-eth3 to switch 0000-0000-0000-0001
   key_port key_obj;
   memcpy(key_obj.sw_key.ctr_key.controller_name, "odc1", sizeof(
@@ -1260,7 +1260,7 @@ TEST(delete_physical_attribute_node, parent_not_present_fail) {
       (&key_obj, &val_obj, operation);
 
   ret = KeyTree_obj->append_Physical_attribute_node(cfgptr1);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add port s1-eth4 to switch 0000-0000-0000-0001
   key_port key_obj1;
   memcpy(key_obj1.sw_key.ctr_key.controller_name, "odc1", sizeof(
@@ -1277,7 +1277,7 @@ TEST(delete_physical_attribute_node, parent_not_present_fail) {
       (&key_obj1, &val_obj1, operation);
 
   ret = KeyTree_obj->append_Physical_attribute_node(cfgptr2);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  delete port which is not available in keytree
   key_port key_obj2;
   memcpy(key_obj2.sw_key.ctr_key.controller_name, "odc1", sizeof(
@@ -1301,7 +1301,7 @@ TEST(delete_physical_attribute_node, parent_not_present_fail) {
   cfgptr2 = NULL;
   delete cfgptr3;
   cfgptr3 = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret, UNC_DRV_RC_ERR_GENERIC);
 }
 //  Try to delete a non-existing port,which parent not available in keytree
 TEST(delete_physical_attribute_node, child_not_present_fail) {
@@ -1322,7 +1322,7 @@ TEST(delete_physical_attribute_node, child_not_present_fail) {
       new CacheElementUtil<key_switch, val_switch_st, uint32_t>
       (&key_switch_obj, &val_switch, operation);
   uint32_t ret = KeyTree_obj->append_Physical_attribute_node(cfgptr);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add port s2-eth3 to switch 0000-0000-0000-0001
   key_port key_obj;
   memcpy(key_obj.sw_key.ctr_key.controller_name, "odc1", sizeof(
@@ -1339,7 +1339,7 @@ TEST(delete_physical_attribute_node, child_not_present_fail) {
       (&key_obj, &val_obj, operation);
 
   ret = KeyTree_obj->append_Physical_attribute_node(cfgptr1);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add port s1-eth4 to switch 0000-0000-0000-0001
   key_port key_obj1;
   memcpy(key_obj1.sw_key.ctr_key.controller_name, "odc1", sizeof(
@@ -1356,7 +1356,7 @@ TEST(delete_physical_attribute_node, child_not_present_fail) {
       (&key_obj1, &val_obj1, operation);
 
   ret = KeyTree_obj->append_Physical_attribute_node(cfgptr2);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  delete port which is not available in keytree
   key_port key_obj2;
   memcpy(key_obj2.sw_key.ctr_key.controller_name, "odc1", sizeof(
@@ -1380,7 +1380,7 @@ TEST(delete_physical_attribute_node, child_not_present_fail) {
   cfgptr2 = NULL;
   delete cfgptr3;
   cfgptr3 = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret, UNC_DRV_RC_ERR_GENERIC);
 }
 //  Delete a existing port.
 TEST(delete_physical_attribute_node, delete_port) {
@@ -1400,7 +1400,7 @@ TEST(delete_physical_attribute_node, delete_port) {
   ConfigNode *cfgptr = new CacheElementUtil<key_switch, val_switch_st, uint32_t>
       (&key_switch_obj, &val_switch, operation);
   uint32_t ret = KeyTree_obj->append_Physical_attribute_node(cfgptr);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add port s2-eth3 to switch 0000-0000-0000-0001
   key_port key_obj;
   memcpy(key_obj.sw_key.ctr_key.controller_name, "odc1", sizeof(
@@ -1417,7 +1417,7 @@ TEST(delete_physical_attribute_node, delete_port) {
       (&key_obj, &val_obj, operation);
 
   ret = KeyTree_obj->append_Physical_attribute_node(cfgptr1);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add port s1-eth4 to switch 0000-0000-0000-0001
   key_port key_obj1;
   memcpy(key_obj1.sw_key.ctr_key.controller_name, "odc1", sizeof(
@@ -1434,7 +1434,7 @@ TEST(delete_physical_attribute_node, delete_port) {
       (&key_obj1, &val_obj1, operation);
 
   ret = KeyTree_obj->append_Physical_attribute_node(cfgptr2);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   CommonIterator* itr_ptr = KeyTree_obj->create_iterator();
   ConfigNode* cfgnode;
   for (cfgnode = itr_ptr->PhysicalNodeFirstItem();
@@ -1475,7 +1475,7 @@ TEST(delete_physical_attribute_node, delete_port) {
   cfgptr2 = NULL;
   delete cfgptr3;
   cfgptr3 = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 }
 //  Delete a existing switch having two-port configuration.
 TEST(delete_physical_attribute_node, delete_switch) {
@@ -1496,7 +1496,7 @@ TEST(delete_physical_attribute_node, delete_switch) {
       new CacheElementUtil<key_switch, val_switch_st, uint32_t>
       (&key_switch_obj, &val_switch, operation);
   uint32_t ret = KeyTree_obj->append_Physical_attribute_node(cfgptr);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add switch 0000-0000-0000-0002 to cache
   key_switch key_switch_obj1;
   val_switch_st val_switch1;
@@ -1511,7 +1511,7 @@ TEST(delete_physical_attribute_node, delete_switch) {
       new CacheElementUtil<key_switch, val_switch_st, uint32_t>
       (&key_switch_obj1, &val_switch1, operation);
   ret = KeyTree_obj->append_Physical_attribute_node(cfgptr_sw2);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add port s1-eth1 to switch 0000-0000-0000-0002
   key_port key_obj_sw2;
   memcpy(key_obj_sw2.sw_key.ctr_key.controller_name, "odc1", sizeof(
@@ -1527,7 +1527,7 @@ TEST(delete_physical_attribute_node, delete_switch) {
       (&key_obj_sw2, &val_obj_sw2, operation);
 
   ret = KeyTree_obj->append_Physical_attribute_node(cfgptr_sw2_port1);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add port s2-eth3 to switch 0000-0000-0000-0001
   key_port key_obj;
   memcpy(key_obj.sw_key.ctr_key.controller_name, "odc1", sizeof(
@@ -1544,7 +1544,7 @@ TEST(delete_physical_attribute_node, delete_switch) {
       (&key_obj, &val_obj, operation);
 
   ret = KeyTree_obj->append_Physical_attribute_node(cfgptr1);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add port s1-eth4 to switch 0000-0000-0000-0001
   key_port key_obj1;
   memcpy(key_obj1.sw_key.ctr_key.controller_name, "odc1", sizeof(
@@ -1561,7 +1561,7 @@ TEST(delete_physical_attribute_node, delete_switch) {
       (&key_obj1, &val_obj1, operation);
 
   ret = KeyTree_obj->append_Physical_attribute_node(cfgptr2);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   CommonIterator* itr_ptr = KeyTree_obj->create_iterator();
   ConfigNode* cfgnode;
   for (cfgnode = itr_ptr->PhysicalNodeFirstItem();
@@ -1605,7 +1605,7 @@ TEST(delete_physical_attribute_node, delete_switch) {
   cfgptr3 = NULL;
   cfgptr_sw2 = NULL;
   cfgptr_sw2_port1 = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 }
 //  delete failed other than switch/port
 TEST(delete_physical_attribute_node, delete_fail_otherkey_type) {
@@ -1626,7 +1626,7 @@ TEST(delete_physical_attribute_node, delete_fail_otherkey_type) {
       new CacheElementUtil<key_switch, val_switch_st, uint32_t>
       (&key_switch_obj, &val_switch, operation);
   uint32_t ret = KeyTree_obj->append_Physical_attribute_node(cfgptr);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add port s2-eth3 to switch 0000-0000-0000-0001
   key_port key_obj;
   memcpy(key_obj.sw_key.ctr_key.controller_name, "odc1", sizeof(
@@ -1643,7 +1643,7 @@ TEST(delete_physical_attribute_node, delete_fail_otherkey_type) {
       (&key_obj, &val_obj, operation);
 
   ret = KeyTree_obj->append_Physical_attribute_node(cfgptr1);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add port s1-eth4 to switch 0000-0000-0000-0001
   key_port key_obj1;
   memcpy(key_obj1.sw_key.ctr_key.controller_name, "odc1", sizeof(
@@ -1660,7 +1660,7 @@ TEST(delete_physical_attribute_node, delete_fail_otherkey_type) {
       (&key_obj1, &val_obj1, operation);
 
   ret = KeyTree_obj->append_Physical_attribute_node(cfgptr2);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 
   //  append vtn into keytree
 
@@ -1676,7 +1676,7 @@ TEST(delete_physical_attribute_node, delete_fail_otherkey_type) {
       (&vtn_key, &vtn_val, operation);
 
   ret = KeyTree_obj->append_Physical_attribute_node(cfgptr3);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 
   //  delete other key_type than kt_switch,kt_port
 
@@ -1700,7 +1700,7 @@ TEST(delete_physical_attribute_node, delete_fail_otherkey_type) {
   cfgptr3 = NULL;
   delete cfgptr4;
   cfgptr4 = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret, UNC_DRV_RC_ERR_GENERIC);
 }
 //  Try to find empty switch/port from keytree
 TEST(compare_is_physical_node_found, empty_switch_port_fail) {
@@ -1768,7 +1768,7 @@ TEST(compare_is_physical_node_found, switch_port_not_present_pass) {
   ConfigNode *cfgptr = new CacheElementUtil<key_switch, val_switch_st, uint32_t>
       (&key_switch_obj, &val_switch, operation);
   uint32_t ret = KeyTree_obj->append_Physical_attribute_node(cfgptr);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   key_switch key_switch_obj1;
   val_switch_st val_switch1;
   memcpy(key_switch_obj1.ctr_key.controller_name, "odc1", sizeof(
@@ -1830,7 +1830,7 @@ TEST(append_Physical_attribute_node, single_link_sucess) {
       new CacheElementUtil<key_switch, val_switch_st, uint32_t>
       (&key_switch_obj, &val_switch, operation);
   uint32_t ret = KeyTree_obj->append_Physical_attribute_node(cfgptr_switch01);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add port s1-eth1 to switch 0000-0000-0000-0001
   key_port key_obj;
   val_port_st val_obj;
@@ -1850,7 +1850,7 @@ TEST(append_Physical_attribute_node, single_link_sucess) {
 
   ret = KeyTree_obj->append_Physical_attribute_node(
       cfgptr_switch01_port_s1eth1);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add switch 0000-0000-0000-0002 to cache
   key_switch key_switch_obj_sw02;
   val_switch_st val_switch_sw02;
@@ -1864,7 +1864,7 @@ TEST(append_Physical_attribute_node, single_link_sucess) {
       new CacheElementUtil<key_switch, val_switch_st, uint32_t>
       (&key_switch_obj_sw02, &val_switch_sw02, operation);
   ret = KeyTree_obj->append_Physical_attribute_node(cfgptr_switch02);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add port s2-eth2 to switch 0000-0000-0000-0002
   key_port key_obj_s2eth2;
   val_port_st val_obj_s2eth2;
@@ -1884,7 +1884,7 @@ TEST(append_Physical_attribute_node, single_link_sucess) {
 
   ret = KeyTree_obj->append_Physical_attribute_node(
       cfgptr_switch02_port_s2eth2);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   // add one link between switch01 to switch02
   key_link  key_link_sw01sw02;
   val_link_st  val_link_sw01sw02;
@@ -1925,7 +1925,7 @@ TEST(append_Physical_attribute_node, single_link_sucess) {
   cfgptr_switch02 = NULL;
   cfgptr_switch02_port_s2eth2 = NULL;
   cfgptr_link_sw01sw02 = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 }
 //  Append twoswitches and two ports  to keytree with
 //  append_Physical_attribute_node method and create bidirectional link
@@ -1947,7 +1947,7 @@ TEST(append_Physical_attribute_node, bidirectional_link_sucess) {
       new CacheElementUtil<key_switch, val_switch_st, uint32_t>
       (&key_switch_obj, &val_switch, operation);
   uint32_t ret = KeyTree_obj->append_Physical_attribute_node(cfgptr_switch01);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add port s1-eth1 to switch 0000-0000-0000-0001
   key_port key_obj;
   val_port_st val_obj;
@@ -1967,7 +1967,7 @@ TEST(append_Physical_attribute_node, bidirectional_link_sucess) {
 
   ret = KeyTree_obj->append_Physical_attribute_node(
       cfgptr_switch01_port_s1eth1);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add switch 0000-0000-0000-0002 to cache
   key_switch key_switch_obj_sw02;
   val_switch_st val_switch_sw02;
@@ -1981,7 +1981,7 @@ TEST(append_Physical_attribute_node, bidirectional_link_sucess) {
       new CacheElementUtil<key_switch, val_switch_st, uint32_t>
       (&key_switch_obj_sw02, &val_switch_sw02, operation);
   ret = KeyTree_obj->append_Physical_attribute_node(cfgptr_switch02);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add port s2-eth2 to switch 0000-0000-0000-0002
   key_port key_obj_s2eth2;
   val_port_st val_obj_s2eth2;
@@ -2001,7 +2001,7 @@ TEST(append_Physical_attribute_node, bidirectional_link_sucess) {
 
   ret = KeyTree_obj->append_Physical_attribute_node(
       cfgptr_switch02_port_s2eth2);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   // add one link between switch01 to switch02
   key_link  key_link_sw01sw02;
   val_link_st  val_link_sw01sw02;
@@ -2025,7 +2025,7 @@ TEST(append_Physical_attribute_node, bidirectional_link_sucess) {
       new CacheElementUtil<key_link, val_link_st, uint32_t>
       (&key_link_sw01sw02, &val_link_sw01sw02, operation);
   ret = KeyTree_obj->append_Physical_attribute_node(cfgptr_link_sw01sw02);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   // add one link between switch02 to switch01
   key_link  key_link_sw02sw01;
   val_link_st  val_link_sw02sw01;
@@ -2067,7 +2067,7 @@ TEST(append_Physical_attribute_node, bidirectional_link_sucess) {
   cfgptr_switch02_port_s2eth2 = NULL;
   cfgptr_link_sw01sw02 = NULL;
   cfgptr_link_sw02sw01 = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 }
 //  Append twoswitches and two ports  to keytree with
 //  append_Physical_attribute_node method and create one link between
@@ -2089,7 +2089,7 @@ TEST(delete_physical_attribute_node, single_link__delete_sucess) {
       new CacheElementUtil<key_switch, val_switch_st, uint32_t>
       (&key_switch_obj, &val_switch, operation);
   uint32_t ret = KeyTree_obj->append_Physical_attribute_node(cfgptr_switch01);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add port s1-eth1 to switch 0000-0000-0000-0001
   key_port key_obj;
   val_port_st val_obj;
@@ -2109,7 +2109,7 @@ TEST(delete_physical_attribute_node, single_link__delete_sucess) {
 
   ret = KeyTree_obj->append_Physical_attribute_node(
       cfgptr_switch01_port_s1eth1);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add switch 0000-0000-0000-0002 to cache
   key_switch key_switch_obj_sw02;
   val_switch_st val_switch_sw02;
@@ -2123,7 +2123,7 @@ TEST(delete_physical_attribute_node, single_link__delete_sucess) {
       new CacheElementUtil<key_switch, val_switch_st, uint32_t>
       (&key_switch_obj_sw02, &val_switch_sw02, operation);
   ret = KeyTree_obj->append_Physical_attribute_node(cfgptr_switch02);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add port s2-eth2 to switch 0000-0000-0000-0002
   key_port key_obj_s2eth2;
   val_port_st val_obj_s2eth2;
@@ -2143,7 +2143,7 @@ TEST(delete_physical_attribute_node, single_link__delete_sucess) {
 
   ret = KeyTree_obj->append_Physical_attribute_node(
       cfgptr_switch02_port_s2eth2);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   // add one link between switch01 to switch02
   key_link  key_link_sw01sw02;
   val_link_st  val_link_sw01sw02;
@@ -2167,7 +2167,7 @@ TEST(delete_physical_attribute_node, single_link__delete_sucess) {
       new CacheElementUtil<key_link, val_link_st, uint32_t>
       (&key_link_sw01sw02, &val_link_sw01sw02, operation);
   ret = KeyTree_obj->append_Physical_attribute_node(cfgptr_link_sw01sw02);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   CommonIterator* itr_ptr = KeyTree_obj->create_iterator();
   ConfigNode* cfgnode;
   for (cfgnode = itr_ptr->PhysicalNodeFirstItem();
@@ -2221,7 +2221,7 @@ TEST(delete_physical_attribute_node, single_link__delete_sucess) {
   cfgptr_link_sw01sw02 = NULL;
   delete cfgptr_link_delete_sw01sw02;
   cfgptr_link_delete_sw01sw02 = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 }
 //  Append twoswitches and two ports  to keytree with
 //  append_Physical_attribute_node method and create bidirectional link
@@ -2243,7 +2243,7 @@ TEST(delete_physical_attribute_node, bidirectional_link_delete_sucess) {
       new CacheElementUtil<key_switch, val_switch_st, uint32_t>
       (&key_switch_obj, &val_switch, operation);
   uint32_t ret = KeyTree_obj->append_Physical_attribute_node(cfgptr_switch01);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add port s1-eth1 to switch 0000-0000-0000-0001
   key_port key_obj;
   val_port_st val_obj;
@@ -2263,7 +2263,7 @@ TEST(delete_physical_attribute_node, bidirectional_link_delete_sucess) {
 
   ret = KeyTree_obj->append_Physical_attribute_node(
       cfgptr_switch01_port_s1eth1);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add switch 0000-0000-0000-0002 to cache
   key_switch key_switch_obj_sw02;
   val_switch_st val_switch_sw02;
@@ -2277,7 +2277,7 @@ TEST(delete_physical_attribute_node, bidirectional_link_delete_sucess) {
       new CacheElementUtil<key_switch, val_switch_st, uint32_t>
       (&key_switch_obj_sw02, &val_switch_sw02, operation);
   ret = KeyTree_obj->append_Physical_attribute_node(cfgptr_switch02);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add port s2-eth2 to switch 0000-0000-0000-0002
   key_port key_obj_s2eth2;
   val_port_st val_obj_s2eth2;
@@ -2297,7 +2297,7 @@ TEST(delete_physical_attribute_node, bidirectional_link_delete_sucess) {
 
   ret = KeyTree_obj->append_Physical_attribute_node(
       cfgptr_switch02_port_s2eth2);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   // add one link between switch01 to switch02
   key_link  key_link_sw01sw02;
   val_link_st  val_link_sw01sw02;
@@ -2321,7 +2321,7 @@ TEST(delete_physical_attribute_node, bidirectional_link_delete_sucess) {
       new CacheElementUtil<key_link, val_link_st, uint32_t>
       (&key_link_sw01sw02, &val_link_sw01sw02, operation);
   ret = KeyTree_obj->append_Physical_attribute_node(cfgptr_link_sw01sw02);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   // add one link between switch02 to switch01
   key_link  key_link_sw02sw01;
   val_link_st  val_link_sw02sw01;
@@ -2345,7 +2345,7 @@ TEST(delete_physical_attribute_node, bidirectional_link_delete_sucess) {
       new CacheElementUtil<key_link, val_link_st, uint32_t>
       (&key_link_sw02sw01, &val_link_sw02sw01, operation);
   ret = KeyTree_obj->append_Physical_attribute_node(cfgptr_link_sw02sw01);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   CommonIterator* itr_ptr = KeyTree_obj->create_iterator();
   ConfigNode* cfgnode;
   for (cfgnode = itr_ptr->PhysicalNodeFirstItem();
@@ -2379,7 +2379,7 @@ TEST(delete_physical_attribute_node, bidirectional_link_delete_sucess) {
       (&key_link_delete_sw01sw02, &val_link_delete_sw01sw02, operation);
   ret = KeyTree_obj->delete_physical_attribute_node(
       cfgptr_link_delete_sw01sw02);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   // delete existing link between switch02 to switch01
   key_link  key_link_delete_sw02sw01;
   val_link_st  val_link_delete_sw02sw01;
@@ -2427,7 +2427,7 @@ TEST(delete_physical_attribute_node, bidirectional_link_delete_sucess) {
   cfgptr_link_delete_sw01sw02 = NULL;
   delete cfgptr_link_delete_sw02sw01;
   cfgptr_link_delete_sw02sw01 = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 }
 //  Append twoswitches and two ports  to keytree with
 //  append_Physical_attribute_node method and create one link between
@@ -2449,7 +2449,7 @@ TEST(update_physical_attribute_node, single_link_update_sucess) {
       new CacheElementUtil<key_switch, val_switch_st, uint32_t>
       (&key_switch_obj, &val_switch, operation);
   uint32_t ret = KeyTree_obj->append_Physical_attribute_node(cfgptr_switch01);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add port s1-eth1 to switch 0000-0000-0000-0001
   key_port key_obj;
   val_port_st val_obj;
@@ -2469,7 +2469,7 @@ TEST(update_physical_attribute_node, single_link_update_sucess) {
 
   ret = KeyTree_obj->append_Physical_attribute_node(
       cfgptr_switch01_port_s1eth1);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add switch 0000-0000-0000-0002 to cache
   key_switch key_switch_obj_sw02;
   val_switch_st val_switch_sw02;
@@ -2483,7 +2483,7 @@ TEST(update_physical_attribute_node, single_link_update_sucess) {
       new CacheElementUtil<key_switch, val_switch_st, uint32_t>
       (&key_switch_obj_sw02, &val_switch_sw02, operation);
   ret = KeyTree_obj->append_Physical_attribute_node(cfgptr_switch02);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   //  add port s2-eth2 to switch 0000-0000-0000-0002
   key_port key_obj_s2eth2;
   val_port_st val_obj_s2eth2;
@@ -2503,7 +2503,7 @@ TEST(update_physical_attribute_node, single_link_update_sucess) {
 
   ret = KeyTree_obj->append_Physical_attribute_node(
       cfgptr_switch02_port_s2eth2);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   // add one link between switch01 to switch02
   key_link  key_link_sw01sw02;
   val_link_st  val_link_sw01sw02;
@@ -2527,7 +2527,7 @@ TEST(update_physical_attribute_node, single_link_update_sucess) {
       new CacheElementUtil<key_link, val_link_st, uint32_t>
       (&key_link_sw01sw02, &val_link_sw01sw02, operation);
   ret = KeyTree_obj->append_Physical_attribute_node(cfgptr_link_sw01sw02);
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
   CacheElementUtil<key_link, val_link_st, uint32_t> *tmp_ptr_one =
       static_cast<CacheElementUtil<key_link, val_link_st, uint32_t>*> (
           cfgptr_link_sw01sw02);
@@ -2578,7 +2578,7 @@ TEST(update_physical_attribute_node, single_link_update_sucess) {
   cfgptr_link_sw01sw02 = NULL;
   delete cfgptr_link_update_sw01sw02;
   cfgptr_link_update_sw01sw02 = NULL;
-  EXPECT_EQ(ret, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret, UNC_RC_SUCCESS);
 }
 }  // namespace vtndrvcache
 }  // namespace unc
index 245d05d798b363adc2269b7ce20d4807eee1db9e..3a19c8ceb885eba3cb9aac5e290e9f63fa79a7bf 100644 (file)
@@ -31,9 +31,9 @@ TEST_F(ControllerFrameworkTest, GetControllerInst_success) {
   CtrObj->AddController(ctr_name, ctr_instance, drv_instance);
   controller *ctr(NULL);
   driver *drv(NULL);
-  drv_resp_code_t ret_code(CtrObj->GetControllerInstance(ctr_name, &ctr,
+  UncRespCode ret_code(CtrObj->GetControllerInstance(ctr_name, &ctr,
                                                          &drv));
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, ret_code);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret_code);
   EXPECT_EQ(ctr_instance, ctr);
   EXPECT_EQ(drv_instance, drv);
   delete CtrObj;
@@ -52,16 +52,16 @@ TEST_F(ControllerFrameworkTest, GetDriver_success) {
   CtrObj->AddController(ctr_name, ctr_instance, drv_instance);
   controller *ctr(NULL);
   driver *drv(NULL);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             CtrObj->GetControllerInstance(ctr_name, &ctr, &drv));
   EXPECT_EQ(ctr_instance, ctr);
   EXPECT_EQ(drv_instance, drv);
 
   ctr = NULL;
   drv = NULL;
-  drv_resp_code_t ret_code(CtrObj->GetDriverByControllerName(ctr_name, &ctr,
+  UncRespCode ret_code(CtrObj->GetDriverByControllerName(ctr_name, &ctr,
                                                              &drv));
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, ret_code);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret_code);
   EXPECT_EQ(ctr_instance, ctr);
   EXPECT_EQ(drv_instance, drv);
   delete CtrObj;
@@ -80,16 +80,16 @@ TEST_F(ControllerFrameworkTest, GetDriver_failure) {
   CtrObj->AddController(ctr_name, ctr_instance, drv_instance);
   controller *ctr(NULL);
   driver *drv(NULL);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             CtrObj->GetControllerInstance(ctr_name, &ctr, &drv));
   EXPECT_EQ(ctr_instance, ctr);
   EXPECT_EQ(drv_instance, drv);
 
   ctr = NULL;
   drv = NULL;
-  drv_resp_code_t ret_code(CtrObj->GetDriverByControllerName(ctr_name, &ctr,
+  UncRespCode ret_code(CtrObj->GetDriverByControllerName(ctr_name, &ctr,
                                                              &drv));
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, ret_code);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret_code);
   EXPECT_EQ(ctr_instance, ctr);
   EXPECT_EQ(drv_instance, drv);
   delete CtrObj;
@@ -109,9 +109,9 @@ TEST_F(ControllerFrameworkTest, PingController_success) {
   CtrObj->AddController(ctr_name, ctr_instance, drv_instance);
   driver *drv(NULL);
   controller *ctr(NULL);
-  drv_resp_code_t ret_code(CtrObj->GetDriverByControllerName(ctr_name, &ctr,
+  UncRespCode ret_code(CtrObj->GetDriverByControllerName(ctr_name, &ctr,
                                                              &drv));
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, ret_code);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret_code);
   EXPECT_EQ(ctr_instance, ctr);
   EXPECT_EQ(drv_instance, drv);
   fun_obj.PingController();
@@ -134,9 +134,9 @@ TEST_F(ControllerFrameworkTest, PingController_Failure) {
   CtrObj->AddController(ctr_name, ctr_instance, drv_instance);
   driver *drv(NULL);
   controller *ctr(NULL);
-  drv_resp_code_t ret_code(CtrObj->GetDriverByControllerName(ctr_name, &ctr,
+  UncRespCode ret_code(CtrObj->GetDriverByControllerName(ctr_name, &ctr,
                                                              &drv));
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, ret_code);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret_code);
   EXPECT_EQ(ctr_instance, ctr);
   EXPECT_EQ(drv_instance, drv);
 
@@ -160,16 +160,16 @@ TEST_F(ControllerFrameworkTest, GetDriver_AfterUpdate) {
   controller *ctr_instance = static_cast <controller*>(new OdcController());
   CtrObj->AddController(ctr_name_1, ctr_instance, drv_instance);
 
-  drv_resp_code_t ret_code;
+  UncRespCode ret_code;
   ret_code = CtrObj->UpdateControllerConfiguration(ctr_name_1, ctr_instance,
                                                    drv_instance, *key_ctr,
                                                    *val_ctr);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, ret_code);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret_code);
 
   driver *drv(NULL);
   controller *ctr(NULL);
   ret_code = CtrObj->GetDriverByControllerName(ctr_name_1, &ctr, &drv);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, ret_code);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret_code);
   EXPECT_EQ(ctr_instance, ctr);
   EXPECT_EQ(drv_instance, drv);
   delete CtrObj;
@@ -210,7 +210,7 @@ TEST_F(ControllerFrameworkTest, AddController_success) {
   driver *compare_drv_ptr(NULL);
   controller *ctr(NULL);
   controller *compare_ctr_ptr(NULL);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             CtrObj->GetDriverByControllerName(ctr_name, &ctr, &drv));
   EXPECT_EQ(compare_ctr_ptr, ctr);
   EXPECT_EQ(compare_drv_ptr, drv);
@@ -219,7 +219,7 @@ TEST_F(ControllerFrameworkTest, AddController_success) {
 
   drv = NULL;
   ctr = NULL;
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             CtrObj->GetDriverByControllerName(ctr_name, &ctr, &drv));
   EXPECT_EQ(ctr_instance, ctr);
   EXPECT_EQ(drv_instance, drv);
@@ -246,14 +246,14 @@ TEST_F(ControllerFrameworkTest, Add_MultiCtr_success) {
 
   controller *ctr(NULL);
   driver *drv(NULL);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             CtrObj->GetControllerInstance(ctr_name_1, &ctr, &drv));
   EXPECT_EQ(ctr_instance, ctr);
   EXPECT_EQ(drv_instance, drv);
 
   ctr = NULL;
   drv = NULL;
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             CtrObj->GetControllerInstance(ctr_name_2, &ctr, &drv));
   EXPECT_EQ(ctr_instance1, ctr);
   EXPECT_EQ(drv_instance1, drv);
@@ -278,15 +278,15 @@ TEST_F(ControllerFrameworkTest, UpdateCtr_success) {
 
   controller *ctr(NULL);
   driver* drv(NULL);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             CtrObj->GetControllerInstance(ctr_name_1, &ctr, &drv));
   EXPECT_EQ(ctr_instance, ctr);
   EXPECT_EQ(drv_instance, drv);
 
-  drv_resp_code_t ret_code;
+  UncRespCode ret_code;
   ret_code = CtrObj->UpdateControllerConfiguration(ctr_name_1, ctr, drv,
                                                    *key_ctr, *val_ctr);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, ret_code);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret_code);
   delete CtrObj;
   delete key_ctr;
   delete val_ctr;
@@ -310,24 +310,24 @@ TEST_F(ControllerFrameworkTest, RemoveCtr_success) {
   controller *ctr(NULL);
   driver *compare_drv_ptr(NULL);
   driver *drv(NULL);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             CtrObj->GetControllerInstance(ctr_name, &ctr, &drv));
   EXPECT_EQ(ctr_instance, ctr);
   EXPECT_EQ(drv_instance, drv);
 
-  drv_resp_code_t ret_code;
+  UncRespCode ret_code;
   ret_code = CtrObj->UpdateControllerConfiguration(ctr_name, ctr_instance,
                                                    drv_instance, *key_ctr,
                                                    *val_ctr);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, ret_code);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret_code);
 
   ret_code = CtrObj->RemoveControllerConfiguration(ctr_name, ctr_instance,
                                                    drv_instance);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, ret_code);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret_code);
 
   ctr = NULL;
   drv = NULL;
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             CtrObj->GetControllerInstance(ctr_name, &ctr, &drv));
   EXPECT_EQ(compare_ctr_ptr, ctr);
   EXPECT_EQ(compare_drv_ptr, drv);
@@ -354,24 +354,24 @@ TEST_F(ControllerFrameworkTest, RemoveCtr_Failure) {
 
   controller *ctr(NULL);
   driver *drv(NULL);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             CtrObj->GetControllerInstance(ctr_name, &ctr, &drv));
   EXPECT_EQ(ctr_instance, ctr);
   EXPECT_EQ(drv_instance, drv);
 
-  drv_resp_code_t ret_code;
+  UncRespCode ret_code;
   ret_code = CtrObj->UpdateControllerConfiguration(ctr_name, ctr_instance,
                                                    drv_instance, *key_ctr,
                                                    *val_ctr);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, ret_code);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret_code);
 
   ret_code = CtrObj->RemoveControllerConfiguration(ctr_unknown, ctr_instance,
                                                    drv_instance);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, ret_code);
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, ret_code);
 
   ctr = NULL;
   drv = NULL;
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             CtrObj->GetControllerInstance(ctr_name, &ctr, &drv));
   EXPECT_EQ(ctr_instance, ctr);
   EXPECT_EQ(drv_instance, drv);
@@ -391,10 +391,10 @@ TEST_F(ControllerFrameworkTest, RemoveController_List_Empty) {
   ControllerFramework *CtrObj = new ControllerFramework(taskq_, 1);
   OdcDriver *drv_instance = new OdcDriver();
   OdcController *ctr_instance = new OdcController();
-  drv_resp_code_t ret_code;
+  UncRespCode ret_code;
   ret_code = CtrObj->RemoveControllerConfiguration(ctr_name, ctr_instance,
                                                    drv_instance);
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE, ret_code);
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC, ret_code);
   delete taskq_;
   delete drv_instance;
   delete ctr_instance;
@@ -415,7 +415,7 @@ TEST_F(ControllerFrameworkTest, RegisterDriver_success) {
   OdcDriver *drv_instance = new OdcDriver();
   driver *compare_drv_ptr = NULL;
   EXPECT_EQ(compare_drv_ptr, CtrObj->GetDriverInstance(controller_type));
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+  EXPECT_EQ(UNC_RC_SUCCESS,
             CtrObj->RegisterDriver(controller_type, drv_instance));
   EXPECT_EQ(drv_instance, CtrObj->GetDriverInstance(controller_type));
 
@@ -449,7 +449,7 @@ TEST_F(ControllerFrameworkTest, RegisterDriver_MultipleEntry_success) {
   }
   for (tdp = testdrv; tdp < PFC_ARRAY_LIMIT(testdrv); tdp++) {
     tdp->driver = new OdcDriver();
-    EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS,
+    EXPECT_EQ(UNC_RC_SUCCESS,
               CtrObj->RegisterDriver(tdp->type, tdp->driver));
   }
   for (tdp = testdrv; tdp < PFC_ARRAY_LIMIT(testdrv); tdp++) {
@@ -472,7 +472,7 @@ TEST_F(ControllerFrameworkTest, RegisterDriver_DrvInst_NULL) {
   unc_keytype_ctrtype_t controller_type = UNC_CT_ODC;
   OdcDriver *drv_instance = NULL;
   driver *compare_drv_ptr = NULL;
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             CtrObj->RegisterDriver(controller_type, drv_instance));
   EXPECT_EQ(compare_drv_ptr, CtrObj->GetDriverInstance(controller_type));
   delete taskq_;
@@ -487,7 +487,7 @@ TEST_F(ControllerFrameworkTest, GetDriver_CtrName_NotFound) {
   ControllerFramework *CtrObj = new ControllerFramework(taskq_, 1);
   driver *drv_instance = static_cast <driver*>(new OdcDriver());
   controller *ctr_instance = static_cast <controller*>(new OdcController());
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             CtrObj->GetDriverByControllerName(ctr_name, &ctr_instance,
                                               &drv_instance));
   delete taskq_;
@@ -504,7 +504,7 @@ TEST_F(ControllerFrameworkTest, GetControllerInst_CtrName_NotFound) {
   ControllerFramework *CtrObj = new ControllerFramework(taskq_, 1);
   driver *drv_instance = static_cast <driver*>(new OdcDriver());
   controller *ctr_instance = static_cast <controller*>(new OdcController());
-  EXPECT_EQ(DRVAPI_RESPONSE_FAILURE,
+  EXPECT_EQ(UNC_DRV_RC_ERR_GENERIC,
             CtrObj->GetControllerInstance(ctr_name, &ctr_instance,
                                           &drv_instance));
   delete taskq_;
index e739e818283323dfb11e00564be40e335f9c7ae6..0f14875a44ddbf91891328b80233b6baea575331 100644 (file)
@@ -54,7 +54,7 @@ TEST(KT_VTN, Validate_Request1) {
   delete vtn_req;
   ctrl_int = NULL;
   vtn_req = NULL;
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret_val, UNC_DRV_RC_ERR_GENERIC);
 }
 
 
@@ -95,7 +95,7 @@ TEST(KT_VTN, Validate_Request12) {
   ctrl_int = NULL;
   vtn_req = NULL;
 
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret_val, UNC_DRV_RC_ERR_GENERIC);
 }
 
 TEST(KT_VTN, Validate_Request13) {
@@ -137,7 +137,7 @@ TEST(KT_VTN, Validate_Request13) {
   ctrl_int = NULL;
   vtn_req = NULL;
 
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret_val, UNC_DRV_RC_ERR_GENERIC);
 }
 
 
@@ -179,7 +179,7 @@ TEST(KT_VTN, Validate_Request14) {
   delete vtn_req;
   ctrl_int = NULL;
   vtn_req = NULL;
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret_val, UNC_DRV_RC_ERR_GENERIC);
 }
 
 TEST(KT_VTN, Validate_Request15) {
@@ -223,7 +223,7 @@ TEST(KT_VTN, Validate_Request15) {
   ctrl_int = NULL;
   vtn_req = NULL;
 
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret_val, UNC_DRV_RC_ERR_GENERIC);
 }
 
 TEST(KT_VTN, Validate_Request16) {
@@ -268,7 +268,7 @@ TEST(KT_VTN, Validate_Request16) {
   ctrl_int = NULL;
   vtn_req = NULL;
 
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret_val, UNC_DRV_RC_ERR_GENERIC);
 }
 
 TEST(KT_VTN, Validate_Request17) {
@@ -312,7 +312,7 @@ TEST(KT_VTN, Validate_Request17) {
   ctrl_int = NULL;
   vtn_req = NULL;
 
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret_val, UNC_DRV_RC_ERR_GENERIC);
 }
 
 
@@ -360,7 +360,7 @@ TEST(KT_VTN, Validate_Request18) {
   ctrl_int = NULL;
   vtn_req = NULL;
 
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret_val, UNC_DRV_RC_ERR_GENERIC);
 }
 
 
@@ -410,7 +410,7 @@ TEST(KT_VTN, Validate_Request19) {
   ctrl_int = NULL;
   vtn_req = NULL;
 
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret_val, UNC_DRV_RC_ERR_GENERIC);
 }
 
 TEST(KT_VTN, Validate_Request191) {
@@ -459,7 +459,7 @@ TEST(KT_VTN, Validate_Request191) {
   ctrl_int = NULL;
   vtn_req = NULL;
 
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret_val, UNC_DRV_RC_ERR_GENERIC);
 }
 
 TEST(KT_VTN, Validate_Request192) {
@@ -509,7 +509,7 @@ TEST(KT_VTN, Validate_Request192) {
   ctrl_int = NULL;
   vtn_req = NULL;
 
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret_val, UNC_DRV_RC_ERR_GENERIC);
 }
 
 TEST(KT_VTN, Validate_Request193) {
@@ -560,7 +560,7 @@ TEST(KT_VTN, Validate_Request193) {
   ctrl_int = NULL;
   vtn_req = NULL;
 
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret_val, UNC_DRV_RC_ERR_GENERIC);
 }
 
 TEST(KT_VTN, Validate_Request194) {
@@ -612,7 +612,7 @@ TEST(KT_VTN, Validate_Request194) {
   ctrl_int = NULL;
   vtn_req = NULL;
 
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret_val, UNC_RC_SUCCESS);
 }
 
 
@@ -666,7 +666,7 @@ TEST(KT_VTN, Validate_Request2) {
   ctrl_int = NULL;
   vtn_req = NULL;
 
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret_val, UNC_RC_SUCCESS);
 }
 
 TEST(KT_VTN, Validate_Request3) {
@@ -718,7 +718,7 @@ TEST(KT_VTN, Validate_Request3) {
   ctrl_int = NULL;
   vtn_req = NULL;
 
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret_val, UNC_RC_SUCCESS);
 }
 
 TEST(KT_VBR, Validate_Request1) {
@@ -770,7 +770,7 @@ TEST(KT_VBR, Validate_Request1) {
   ctrl_int = NULL;
   vbr_req = NULL;
 
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret_val, UNC_RC_SUCCESS);
 }
 
 TEST(KT_VBR, Validate_Request2) {
@@ -822,7 +822,7 @@ TEST(KT_VBR, Validate_Request2) {
   ctrl_int = NULL;
   vbr_req = NULL;
 
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret_val, UNC_RC_SUCCESS);
 }
 
 TEST(KT_VBR, Validate_Request3) {
@@ -874,7 +874,7 @@ TEST(KT_VBR, Validate_Request3) {
   ctrl_int = NULL;
   vbr_req = NULL;
 
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret_val, UNC_RC_SUCCESS);
 }
 
 TEST(KT_VBR_IF, Validate_Request1) {
@@ -927,7 +927,7 @@ TEST(KT_VBR_IF, Validate_Request1) {
   ctrl_int = NULL;
   vbrif_req = NULL;
 
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret_val, UNC_RC_SUCCESS);
 }
 
 TEST(KT_VBR_IF, Validate_Request2) {
@@ -979,7 +979,7 @@ TEST(KT_VBR_IF, Validate_Request2) {
   ctrl_int = NULL;
   vbrif_req = NULL;
 
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret_val, UNC_RC_SUCCESS);
 }
 
 TEST(KT_VBR_IF, Validate_Request3) {
@@ -1031,7 +1031,7 @@ TEST(KT_VBR_IF, Validate_Request3) {
   ctrl_int = NULL;
   vbrif_req = NULL;
 
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret_val, UNC_RC_SUCCESS);
 }
 
 
@@ -1081,7 +1081,7 @@ TEST(KT_CTR, Validate_Request1) {
   ctrl_int = NULL;
   ctr_req = NULL;
 
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret_val, UNC_DRV_RC_ERR_GENERIC);
 }
 
 TEST(KT_CTR, Validate_Request11) {
@@ -1132,7 +1132,7 @@ TEST(KT_CTR, Validate_Request11) {
   ctrl_int = NULL;
   ctr_req = NULL;
 
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret_val, UNC_DRV_RC_ERR_GENERIC);
 }
 
 TEST(KT_CTR, Validate_Request12) {
@@ -1187,7 +1187,7 @@ TEST(KT_CTR, Validate_Request12) {
   ctrl_int = NULL;
   ctr_req = NULL;
 
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret_val, UNC_RC_SUCCESS);
 }
 
 TEST(KT_CTR, Validate_Request13) {
@@ -1242,7 +1242,7 @@ TEST(KT_CTR, Validate_Request13) {
   ctrl_int = NULL;
   ctr_req = NULL;
 
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret_val, UNC_RC_SUCCESS);
 }
 TEST(KT_CTR, Validate_Request2) {
   unc::driver::kt_handler_map kt_map;
@@ -1295,7 +1295,7 @@ TEST(KT_CTR, Validate_Request2) {
   delete ctr_req;
   ctrl_int = NULL;
   ctr_req = NULL;
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret_val, UNC_RC_SUCCESS);
 }
 
 TEST(KT_CTR, Validate_Request21) {
@@ -1350,7 +1350,7 @@ TEST(KT_CTR, Validate_Request21) {
   delete ctr_req;
   ctrl_int = NULL;
   ctr_req = NULL;
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret_val, UNC_RC_SUCCESS);
 }
 
 
@@ -1405,7 +1405,7 @@ TEST(KT_CTR, Validate_Request3) {
   delete ctr_req;
   ctrl_int = NULL;
   ctr_req = NULL;
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret_val, UNC_RC_SUCCESS);
 }
 
 TEST(KT_CTR, Validate_Request31) {
@@ -1460,7 +1460,7 @@ TEST(KT_CTR, Validate_Request31) {
   delete ctr_req;
   ctrl_int = NULL;
   ctr_req = NULL;
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret_val, UNC_RC_SUCCESS);
 }
 
 TEST(KT_CTR, Validate_Request32) {
@@ -1515,7 +1515,7 @@ TEST(KT_CTR, Validate_Request32) {
   delete ctr_req;
   ctrl_int = NULL;
   ctr_req = NULL;
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret_val, UNC_RC_SUCCESS);
 }
 
 TEST(KT_CTR, Validate_Request4) {
@@ -1570,7 +1570,7 @@ TEST(KT_CTR, Validate_Request4) {
   delete ctr_req;
   ctrl_int = NULL;
   ctr_req = NULL;
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret_val, UNC_RC_SUCCESS);
 }
 
 TEST(GLOBAL_CREATE, execute_cmd1) {
@@ -1606,7 +1606,7 @@ TEST(GLOBAL_CREATE, execute_cmd1) {
     delete cfgptr;
     cfgptr = NULL;
   }
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret_val, UNC_RC_SUCCESS);
 }
 
 TEST(GLOBAL_DELETE, execute_cmd2) {
@@ -1642,7 +1642,7 @@ TEST(GLOBAL_DELETE, execute_cmd2) {
     delete cfgptr;
     cfgptr = NULL;
   }
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret_val, UNC_RC_SUCCESS);
 }
 
 TEST(GLOBAL_UPDATE, execute_cmd3) {
@@ -1678,7 +1678,7 @@ TEST(GLOBAL_UPDATE, execute_cmd3) {
     delete cfgptr;
     cfgptr = NULL;
   }
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret_val, UNC_RC_SUCCESS);
 }
 
 TEST(GLOBAL_DEFAULT, execute_cmd4) {
@@ -1714,7 +1714,7 @@ TEST(GLOBAL_DEFAULT, execute_cmd4) {
     delete cfgptr;
     cfgptr = NULL;
   }
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_INVALID_OPERATION);
+  EXPECT_EQ(ret_val, UNC_DRV_RC_INVALID_OPERATION);
 }
 
 
@@ -1771,7 +1771,7 @@ TEST(KT_ROOT, Validate_Request1) {
   delete root_req;
   ctrl_int = NULL;
   root_req = NULL;
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret_val, UNC_RC_SUCCESS);
 }
 
 TEST(KT_ROOT, Validate_Request2) {
@@ -1825,7 +1825,7 @@ TEST(KT_ROOT, Validate_Request2) {
   delete root_req;
   ctrl_int = NULL;
   root_req = NULL;
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret_val, UNC_DRV_RC_ERR_GENERIC);
 }
 
 TEST(KT_ROOT, Validate_Request3) {
@@ -1876,7 +1876,7 @@ TEST(KT_ROOT, Validate_Request3) {
   delete root_req;
   ctrl_int = NULL;
   root_req = NULL;
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret_val, UNC_DRV_RC_ERR_GENERIC);
 }
 
 TEST(KT_ROOT, Validate_Request4) {
@@ -1927,7 +1927,7 @@ TEST(KT_ROOT, Validate_Request4) {
   delete root_req;
   ctrl_int = NULL;
   root_req = NULL;
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_FAILURE);
+  EXPECT_EQ(ret_val, UNC_DRV_RC_ERR_GENERIC);
 }
 /*
 TEST(KT_VTN, ExecuteControllerStatusDown) {
@@ -1980,6 +1980,6 @@ TEST(KT_VTN, ExecuteControllerStatusDown) {
   ctrl_int = NULL;
   vtn_req = NULL;
 
-  EXPECT_EQ(ret_val, DRVAPI_RESPONSE_SUCCESS);
+  EXPECT_EQ(ret_val, UNC_RC_SUCCESS);
 }
 */
index bdb3b75dd8a594aff28141b922782beeb66cc2be..c54539fbf6203c92021ea7138e3d08ea1d546b63 100644 (file)
@@ -354,7 +354,7 @@ TEST_F(DriverTxnInterfaceTest, HandleCommitVoteCacheSuccess) {
       new unc::vtndrvcache::CacheElementUtil<key_vtn, val_vtn, uint32_t>
       (&key_obj, &val_obj, operation);
   uint32_t ret =  ctrl_ptr->controller_cache->append_commit_node(cfgptr);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
   typedef std::map <unc_key_type_t, unc::driver::KtHandler*> kt_handler_map;
 
   kt_handler_map map_kt_;
@@ -419,7 +419,7 @@ TEST_F(DriverTxnInterfaceTest, HandleCommitCacheSuccess) {
       new unc::vtndrvcache::CacheElementUtil<key_vtn, val_vtn, uint32_t>
       (&key_obj, &val_obj, operation);
   uint32_t ret =  ctrl_ptr->controller_cache->append_commit_node(cfgptr);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
   typedef std::map <unc_key_type_t, unc::driver::KtHandler*> kt_handler_map;
 
   kt_handler_map map_kt_;
@@ -462,7 +462,7 @@ TEST_F(DriverTxnInterfaceTest, HandleCommitCacheCmdFailure) {
       new unc::vtndrvcache::CacheElementUtil<key_vtn, val_vtn, uint32_t>
       (&key_obj, &val_obj, operation);
   uint32_t ret =  ctrl_ptr->controller_cache->append_commit_node(cfgptr);
-  EXPECT_EQ(DRVAPI_RESPONSE_SUCCESS, ret);
+  EXPECT_EQ(UNC_RC_SUCCESS, ret);
   typedef std::map <unc_key_type_t, unc::driver::KtHandler*> kt_handler_map;
 
   kt_handler_map map_kt_;
index b8c49fd644aa767043def2eb47c133f8de1b4270..4e8607cb5d493b2bb34c86a4bb933b0dc25ca890 100644 (file)
@@ -11,6 +11,8 @@
 
 import requests, json, collections, sys, time
 import vtn_testconfig
+import resp_code
+
 CONTROLLERDATA = vtn_testconfig.CONTROLLERDATA
 coordinator_url=vtn_testconfig.coordinator_url
 def_header=vtn_testconfig.coordinator_headers
@@ -20,9 +22,9 @@ def is_controller_deleted(controller_url=""):
     print url
     r = requests.get(url,headers=def_header)
     print r.status_code
-    if r.status_code != 200:
+    if r.status_code != resp_code.RESP_GET_SUCCESS:
         return 1
-    data=json.loads(r.text)
+    data=json.loads(r.content)
     print data['controller']
     if data['controller'] != None:
         return 1
@@ -38,10 +40,10 @@ def validate_controller_attributes(controller_id,ipaddr="",version="",
     print url
     print def_header
     r = requests.get(url,headers=def_header)
-    if r.status_code != 200:
+    if r.status_code != resp_code.RESP_GET_SUCCESS:
         return 1
 
-    data=json.loads(r.text)
+    data=json.loads(r.content)
     print data
     print data['controller']
 
@@ -146,8 +148,8 @@ def add_controller(controller_id,type,version,ipaddr="",auditstatus="",
     r = requests.post(url,data=json.dumps(add_data),headers=def_header)
     print r.status_code
     print r.headers
-    print r.text
-    if r.status_code == 200:
+    print r.content
+    if r.status_code == resp_code.RESP_CREATE_SUCCESS:
         return 0
     else:
         return 1
@@ -162,8 +164,8 @@ def delete_controller(controller_url=""):
     r = requests.delete(url,headers=def_header)
     print r.status_code
     print r.headers
-    print r.text
-    if r.status_code == 200:
+    print r.content
+    if r.status_code == resp_code.RESP_DELETE_SUCCESS:
         return 0
     else:
         return 1
@@ -215,8 +217,8 @@ def update_controller(controller_id,ipaddr="",version="",auditstatus="",
     r = requests.put(url,data=json.dumps(update_data),headers=def_header)
     print r.status_code
     print r.headers
-    print r.text
-    if r.status_code == 200:
+    print r.content
+    if r.status_code == resp_code.RESP_UPDATE_SUCCESS:
         return 0
     else:
         return 1
@@ -403,7 +405,7 @@ def check_controller_state(blockname,state):
     r = requests.get(url,headers=def_header)
     while(1):
         try:
-            data = json.loads(r.text)
+            data = json.loads(r.content)
             break
         except ValueError:
             continue
index d771b4f0b36b67aeb2bde37e5dbedd3f6838a3ac..d5a7e1f70c4d2c30e8eab071bfeaf7482fb93964 100644 (file)
@@ -80,7 +80,7 @@ def create_boundary(boundary_blockname, controller1_blockname, controller2_block
     print json.dumps(boundary_add)
     r = requests.post(url, data=json.dumps(boundary_add), headers=def_header)
     print r.status_code
-    if r.status_code != 200:
+    if r.status_code != resp_code.RESP_CREATE_SUCCESS:
          return 1
     else:
          return 0
@@ -93,7 +93,7 @@ def delete_boundary(blockname):
 
     r = requests.delete(url, headers=def_header)
     print r.status_code
-    if r.status_code != 200:
+    if r.status_code != resp_code.RESP_DELETE_SUCCESS:
          return 1
     else:
          return 0
@@ -108,12 +108,12 @@ def validate_boundary(blockname, presence="yes", position=0):
     print r.status_code
 
     if presence == "no":
-         if r.status_code == 404:
+         if r.status_code == resp_code.RESP_NOT_FOUND:
              return 0
-         if r.status_code != 200:
+         if r.status_code != resp_code.RESP_GET_SUCCESS:
              return 1
 
-    data = json.loads(r.text)
+    data = json.loads(r.content)
 
     if presence == "no":
       print data['boundaries']
@@ -163,7 +163,7 @@ def create_vlink(vlink_blockname, boundary_blockname, vtn_blockname):
     print json.dumps(vlink_add)
     r = requests.post(url, data=json.dumps(vlink_add), headers=def_header)
     print r.status_code
-    if r.status_code != 200:
+    if r.status_code != resp_code.RESP_CREATE_SUCCESS:
          return 1
     else:
          return 0
@@ -178,7 +178,7 @@ def delete_vlink(vlink_blockname, vtn_blockname):
 
     r = requests.delete(url, headers=def_header)
     print r.status_code
-    if r.status_code != 200:
+    if r.status_code != resp_code.RESP_DELETE_SUCCESS:
          return 1
     else:
          return 0
@@ -195,12 +195,12 @@ def validate_vlink(vlink_blockname, vtn_blockname, presence="yes", position=0):
     print r.status_code
 
     if presence == "no":
-         if r.status_code == 404:
+         if r.status_code == resp_code.RESP_NOT_FOUND:
              return 0
-         if r.status_code != 200:
+         if r.status_code != resp_code.RESP_GET_SUCCESS:
              return 1
 
-    data = json.loads(r.text)
+    data = json.loads(r.content)
 
     if presence == "no":
       print data['vlinks']
diff --git a/coordinator/test/vtn_ft/resp_code.py b/coordinator/test/vtn_ft/resp_code.py
new file mode 100644 (file)
index 0000000..2246078
--- /dev/null
@@ -0,0 +1,6 @@
+RESP_CREATE_SUCCESS = 201
+RESP_UPDATE_SUCCESS = 204
+RESP_DELETE_SUCCESS = 204
+RESP_GET_SUCCESS = 200
+RESP_NOT_FOUND = 404
+
index 69d736bad26a0149046ddd45bcea28868678a1b4..1232227a2029ad7dd4bface9588b1d475c530729 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2013 NEC Corporation
+# Copyright (c) 2013-2014 NEC Corporation
 # All rights reserved.
 #
 # This program and the accompanying materials are made available under the
@@ -11,6 +11,7 @@
 
 import requests, json, collections, sys, time, subprocess, controller, vtn_vbr
 import vtn_testconfig, pexpect, mininet_test
+import resp_code
 
 SWITCHDATA = vtn_testconfig.SWITCHDATA
 VTNVBRDATA = vtn_testconfig.VTNVBRDATA
@@ -34,13 +35,13 @@ def validate_switch_at_physical(switch_blockname,controller_blockname,presence="
     print r.status_code
 
     if presence == "no":
-        if r.status_code == 404:
+        if r.status_code == resp_code.RESP_NOT_FOUND:
             return 0
 
-    if r.status_code != 200:
+    if r.status_code != resp_code.RESP_GET_SUCCESS:
         return 1
 
-    data=json.loads(r.text)
+    data=json.loads(r.content)
     print data
 
     if data['switches'] == []:
@@ -75,7 +76,7 @@ def update_switch(switch_blockname, controller_blockname):
 
     r = requests.put(url,headers=controller_headers,auth=('admin','admin'))
     print r.status_code
-    if r.status_code != 201:
+    if r.status_code != resp_code.RESP_CREATE_SUCCESS:
         return 1
     else:
         return 0
@@ -94,13 +95,13 @@ def validate_update_switch(switch_blockname, controller_blockname,presence="yes"
     print r.status_code
 
     if presence == "no":
-        if r.status_code == 404:
+        if r.status_code == resp_code.RESP_NOT_FOUND:
             return 0
 
-    if r.status_code != 200:
+    if r.status_code != resp_code.RESP_GET_SUCCESS:
         return 1
 
-    data=json.loads(r.text)
+    data=json.loads(r.content)
     print data
 
     if data['switch'] == [ ] or data['switch'] == None:
@@ -130,13 +131,13 @@ def validate_switch_port(switch_blockname, port_blockname, controller_blockname,
     print r.status_code
 
     if presence == "no":
-        if r.status_code == 404:
+        if r.status_code == resp_code.RESP_NOT_FOUND:
             return 0
 
-    if r.status_code != 200:
+    if r.status_code != resp_code.RESP_GET_SUCCESS:
         return 1
 
-    data=json.loads(r.text)
+    data=json.loads(r.content)
 
     if presence == "no":
         print data['ports']
@@ -183,13 +184,13 @@ def validate_logical_port(port_blockname, controller_blockname, child, presence
     print r.status_code
 
     if presence == "no":
-      if r.status_code == 404:
+      if r.status_code == resp_code.RESP_NOT_FOUND:
           return 0
 
-    if r.status_code != 200:
+    if r.status_code != resp_code.RESP_GET_SUCCESS:
         return 1
 
-    data=json.loads(r.text)
+    data=json.loads(r.content)
 
     if presence == "no":
         print data['logical_ports']
@@ -248,10 +249,10 @@ def validate_link_down(controller_blockname, switch_blockname, port_blockname, s
     r = requests.get(url, headers=coordinator_headers,auth=('admin','adminpass'))
     print r.status_code
 
-    if r.status_code != 200:
+    if r.status_code != resp_code.RESP_GET_SUCCESS:
         return 1
 
-    data=json.loads(r.text)
+    data=json.loads(r.content)
 
     port_content = data['ports'][position]
     print port_content, '\n'
index 97b31ff5cfc14782e2b768a8bc1d1e585d3e15d3..00dbdf4791f6cfec92948896c8d4cfdda9d4413e 100644 (file)
@@ -11,6 +11,7 @@
 
 import requests, json, collections, time, controller, vtn_vbr
 import vtn_testconfig
+import resp_code
 
 CONTROLLERDATA=vtn_testconfig.CONTROLLERDATA
 VTNVBRDATA=vtn_testconfig.VTNVBRDATA
@@ -43,7 +44,7 @@ def create_vbrif(vtn_blockname,vbr_blockname,vbrif_blockname):
     vbrif_add['interface']['admin_status']=admin_status
     r = requests.post(url,data=json.dumps(vbrif_add),headers=def_header)
     print r.status_code
-    if r.status_code != 200:
+    if r.status_code != resp_code.RESP_CREATE_SUCCESS:
         return 1
     else:
         return 0
@@ -60,7 +61,7 @@ def delete_vbrif(vtn_blockname,vbr_blockname,vbrif_blockname):
 
     r = requests.delete(url,headers=def_header)
     print r.status_code
-    if r.status_code != 200:
+    if r.status_code != resp_code.RESP_DELETE_SUCCESS:
         return 1
     else:
         return 0
@@ -86,14 +87,14 @@ def validate_vbrif_at_controller(vtn_blockname, vbr_blockname, vbrif_blockname,
     print r.status_code
 
     if presence == "no":
-        if r.status_code == 404:
+        if r.status_code == resp_code.RESP_NOT_FOUND:
             return 0
 
-    if r.status_code != 200:
+    if r.status_code != resp_code.RESP_GET_SUCCESS:
         return 1
 
 
-    data=json.loads(r.text)
+    data=json.loads(r.content)
     print data
     if presence == "no":
         print data['interface']
@@ -149,7 +150,7 @@ def create_portmap(vtn_blockname,vbr_blockname,vbrif_blockname,vlan_tagged=1):
     print json.dumps(vbrif_add)
     r = requests.put(url,data=json.dumps(vbrif_add),headers=def_header)
     print r.status_code
-    if r.status_code != 200:
+    if r.status_code != resp_code.RESP_UPDATE_SUCCESS:
         return 1
     else:
         return 0
@@ -165,7 +166,7 @@ def delete_portmap(vtn_blockname,vbr_blockname,vbrif_blockname):
 
     r = requests.delete(url,headers=def_header)
     print r.status_code
-    if r.status_code != 200:
+    if r.status_code != resp_code.RESP_DELETE_SUCCESS:
         return 1
     else:
         return 0
@@ -191,15 +192,15 @@ def validate_vbrif_portmap_at_controller(vtn_blockname, vbr_blockname, vbrif_blo
     print r.status_code
 
     if presence == "no":
-        if r.status_code == 404:
+        if r.status_code == resp_code.RESP_NOT_FOUND:
             return 0
-        if r.status_code == 204:
+        if r.status_code == resp_code.RESP_DELETE_SUCCESS:
             return 0
-    if r.status_code != 200:
+    if r.status_code != resp_code.RESP_GET_SUCCESS:
         return 1
 
 
-    data=json.loads(r.text)
+    data=json.loads(r.content)
     print data
 
     vtn_content=data['node']['id']
index 6fa2fb88e3870bc897c375bc5b7a1ab9b43e2f65..a1d07107298db49f805472c01919e2f8ab0395af 100644 (file)
@@ -11,6 +11,7 @@
 
 import requests, json, collections, time, controller
 import vtn_testconfig
+import resp_code
 
 VTNVBRDATA=vtn_testconfig.VTNVBRDATA
 CONTROLLERDATA=vtn_testconfig.CONTROLLERDATA
@@ -35,7 +36,7 @@ def create_vtn(blockname):
     vtn_add['vtn']['description']=test_vtn_description
     r = requests.post(url,data=json.dumps(vtn_add),headers=def_header)
     print r.status_code
-    if r.status_code != 200:
+    if r.status_code != resp_code.RESP_CREATE_SUCCESS:
         return 1
     else:
         return 0
@@ -50,7 +51,7 @@ def delete_vtn(blockname):
 
     r = requests.delete(url,headers=def_header)
     print r.status_code
-    if r.status_code != 200:
+    if r.status_code != resp_code.RESP_DELETE_SUCCESS:
         return 1
     else:
         return 0
@@ -70,13 +71,13 @@ def validate_vtn_at_controller(vtn_blockname, controller_blockname, presence="ye
     print r.status_code
 
     if presence == "no":
-        if r.status_code == 404:
+        if r.status_code == resp_code.RESP_NOT_FOUND:
             return 0
-    if r.status_code != 200:
+    if r.status_code != resp_code.RESP_GET_SUCCESS:
         return 1
 
 
-    data=json.loads(r.text)
+    data=json.loads(r.content)
 
     print data
 
@@ -129,7 +130,7 @@ def create_vbr(vtn_blockname,vbr_blockname,controller_blockname):
 
     r = requests.post(url,data=json.dumps(vbr_add),headers=def_header)
     print r.status_code
-    if r.status_code != 200:
+    if r.status_code != resp_code.RESP_CREATE_SUCCESS:
         return 1
     else:
         return 0
@@ -150,7 +151,7 @@ def delete_vbr(vtn_blockname,vbr_blockname):
 
     r = requests.delete(url,headers=def_header)
     print r.status_code
-    if r.status_code != 200:
+    if r.status_code != resp_code.RESP_DELETE_SUCCESS:
         return 1
     else:
         return 0
@@ -173,14 +174,14 @@ def validate_vbr_at_controller(vtn_blockname, vbr_blockname,controller_blockname
     print r.status_code
 
     if presence == "no":
-        if r.status_code == 404:
+        if r.status_code == resp_code.RESP_NOT_FOUND:
             return 0
 
-    if r.status_code != 200:
+    if r.status_code != resp_code.RESP_GET_SUCCESS:
         return 1
 
 
-    data=json.loads(r.text)
+    data=json.loads(r.content)
 
     vtn_content=data['vbridge'][position]
 
@@ -241,7 +242,7 @@ def test_vtn_vbr():
 
     retval = delete_vbr('VtnOne','VbrOne')
     if retval != 0:
-        print "VBR/VTN Delete Failed"
+        print "VBR/VTN Delete Failed----"
         exit(1)
 
     retval=validate_vbr_at_controller('VtnOne','VbrOne','ControllerFirst',presence="no")
index 93c6d860c50ab3bda5c15627615eaac88b6b979b..b3d4f33e331a4fa68ec35ba3c3650a54679c90e2 100644 (file)
@@ -11,6 +11,7 @@
 
 import requests, json, collections, time, controller, vtn_vbr
 import vtn_testconfig
+import resp_code
 
 CONTROLLERDATA=vtn_testconfig.CONTROLLERDATA
 VTNVBRDATA=vtn_testconfig.VTNVBRDATA
@@ -52,7 +53,7 @@ def create_vlanmap(vtn_blockname,vbr_blockname,vlanmap_blockname,no_vlan=0):
     print json.dumps(vlan_map_add)
     r = requests.post(url,data=json.dumps(vlan_map_add),headers=def_header)
     print r.status_code
-    if r.status_code != 200:
+    if r.status_code != resp_code.RESP_CREATE_SUCCESS:
         return 1
     else:
         return 0
@@ -73,7 +74,7 @@ def delete_vlanmap(vtn_blockname,vbr_blockname,vlanmap_blockname,no_vlan=0):
 
     r = requests.delete(url,headers=def_header)
     print r.status_code
-    if r.status_code != 200:
+    if r.status_code != resp_code.RESP_DELETE_SUCCESS:
         return 1
     else:
         return 0
@@ -95,14 +96,14 @@ def validate_vlanmap_update(vtn_blockname, vbr_blockname, vlanmap_blockname,
     print r.status_code
 
     if presence == "no":
-        if r.status_code == 404:
+        if r.status_code == resp_code.RESP_NOT_FOUND:
             return 0
 
-    if r.status_code != 200:
+    if r.status_code != resp_code.RESP_GET_SUCCESS:
         return 1
 
 
-    data=json.loads(r.text)
+    data=json.loads(r.content)
     print data
     if presence == "no":
         print data['vlanmap']
@@ -153,14 +154,14 @@ def validate_vlanmap_at_controller(vtn_blockname, vbr_blockname, vlanmap_blockna
     print r.status_code
 
     if presence == "no":
-        if r.status_code == 404:
+        if r.status_code == resp_code.RESP_NOT_FOUND:
             return 0
 
-    if r.status_code != 200:
+    if r.status_code != resp_code.RESP_GET_SUCCESS:
         return 1
 
 
-    data=json.loads(r.text)
+    data=json.loads(r.content)
     print data
     if presence == "no":
         print data['vlanmap']
@@ -226,7 +227,7 @@ def update_vlanmap(vtn_blockname,vbr_blockname,vlanmap_blockname,update_id=0):
     print json.dumps(vlan_map_add)
     r = requests.put(url,data=json.dumps(vlan_map_add),headers=def_header)
     print r.status_code
-    if r.status_code != 200:
+    if r.status_code != resp_code.RESP_UPDATE_SUCCESS:
         return 1
     else:
         return 0